From 09ef709d8f1d445d26fb6d86ad292d2f87ea946c Mon Sep 17 00:00:00 2001 From: Matt Johnson Date: Fri, 17 Jul 2026 01:24:52 +0000 Subject: [PATCH] chore(dashboard): untrack committed frontend build output work/meshai/dashboard/static/ held committed vite build artifacts (index.html + hashed assets/*.js|css + copied public/ images) that were last built 2026-07-07 (PR #87), 13 frontend commits ago. Docker builds the frontend fresh and overwrites these on every image build, but the pip install -e . path (documented in README Quick start) ships this stale directory verbatim via [tool.setuptools.packages.find] include. The root .gitignore already had a rule for this ("meshai/dashboard/static/") but it silently stopped matching when 2e1fb325 moved the source tree into work/ -- gitignore patterns containing a "/" are anchored to the .gitignore's own directory, so the unprefixed pattern only ever matched a repo-root meshai/dashboard/static/ that hasn't existed since that move. Fixed by prefixing with work/, matching the existing work/data/secrets/.env convention elsewhere in the file. Every file under static/ is generated: assets/* and index.html come from `vite build` (outDir: ../meshai/dashboard/static, emptyOutDir: true, confirmed in dashboard-frontend/vite.config.ts), and the two PNGs are vite's copy of dashboard-frontend/public/*.png (byte-identical to the source). None of it is hand-authored, so the whole directory is untracked rather than partially. Blobs remain in git history; files remain on disk, just untracked. --- .gitignore | 9 +- .../dashboard/static/assets/index-BuD2nQeg.js | 455 ------------------ .../static/assets/index-oCy31pjB.css | 1 - work/meshai/dashboard/static/index.html | 17 - work/meshai/dashboard/static/meshai-icon.png | Bin 60118 -> 0 bytes work/meshai/dashboard/static/meshai-logo.png | Bin 423432 -> 0 bytes 6 files changed, 7 insertions(+), 475 deletions(-) delete mode 100644 work/meshai/dashboard/static/assets/index-BuD2nQeg.js delete mode 100644 work/meshai/dashboard/static/assets/index-oCy31pjB.css delete mode 100644 work/meshai/dashboard/static/index.html delete mode 100644 work/meshai/dashboard/static/meshai-icon.png delete mode 100644 work/meshai/dashboard/static/meshai-logo.png diff --git a/.gitignore b/.gitignore index dc50393..548a4f6 100644 --- a/.gitignore +++ b/.gitignore @@ -58,8 +58,13 @@ config.yaml *.pem *.key -# Frontend build output (built in Docker via multi-stage) -meshai/dashboard/static/ +# Frontend build output (built in Docker via multi-stage, or manually for +# the pip install path -- see README "Quick start"). Anchored with the +# work/ prefix: the bare "meshai/dashboard/static/" pattern silently +# stopped matching anything after 2e1fb325 moved the source tree into +# work/, which is how these build artifacts got committed in the first +# place. +work/meshai/dashboard/static/ # OS diff --git a/work/meshai/dashboard/static/assets/index-BuD2nQeg.js b/work/meshai/dashboard/static/assets/index-BuD2nQeg.js deleted file mode 100644 index 6bb3865..0000000 --- a/work/meshai/dashboard/static/assets/index-BuD2nQeg.js +++ /dev/null @@ -1,455 +0,0 @@ -function SY(e,t){for(var r=0;rn[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))n(a);new MutationObserver(a=>{for(const i of a)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function r(a){const i={};return a.integrity&&(i.integrity=a.integrity),a.referrerPolicy&&(i.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?i.credentials="include":a.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function n(a){if(a.ep)return;a.ep=!0;const i=r(a);fetch(a.href,i)}})();var CY=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function gN(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var XB={exports:{}},Yb={},qB={exports:{}},St={};/** - * @license React - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var mm=Symbol.for("react.element"),TY=Symbol.for("react.portal"),MY=Symbol.for("react.fragment"),AY=Symbol.for("react.strict_mode"),NY=Symbol.for("react.profiler"),kY=Symbol.for("react.provider"),LY=Symbol.for("react.context"),IY=Symbol.for("react.forward_ref"),PY=Symbol.for("react.suspense"),DY=Symbol.for("react.memo"),EY=Symbol.for("react.lazy"),pD=Symbol.iterator;function jY(e){return e===null||typeof e!="object"?null:(e=pD&&e[pD]||e["@@iterator"],typeof e=="function"?e:null)}var KB={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},JB=Object.assign,QB={};function Ld(e,t,r){this.props=e,this.context=t,this.refs=QB,this.updater=r||KB}Ld.prototype.isReactComponent={};Ld.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Ld.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function eF(){}eF.prototype=Ld.prototype;function mN(e,t,r){this.props=e,this.context=t,this.refs=QB,this.updater=r||KB}var yN=mN.prototype=new eF;yN.constructor=mN;JB(yN,Ld.prototype);yN.isPureReactComponent=!0;var gD=Array.isArray,tF=Object.prototype.hasOwnProperty,xN={current:null},rF={key:!0,ref:!0,__self:!0,__source:!0};function nF(e,t,r){var n,a={},i=null,o=null;if(t!=null)for(n in t.ref!==void 0&&(o=t.ref),t.key!==void 0&&(i=""+t.key),t)tF.call(t,n)&&!rF.hasOwnProperty(n)&&(a[n]=t[n]);var s=arguments.length-2;if(s===1)a.children=r;else if(1>>1,q=F[W];if(0>>1;Wa(se,$))cea(Ue,se)?(F[W]=Ue,F[ce]=$,W=ce):(F[W]=se,F[Q]=$,W=Q);else if(cea(Ue,$))F[W]=Ue,F[ce]=$,W=ce;else break e}}return Z}function a(F,Z){var $=F.sortIndex-Z.sortIndex;return $!==0?$:F.id-Z.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var l=[],u=[],c=1,h=null,d=3,v=!1,g=!1,m=!1,y=typeof setTimeout=="function"?setTimeout:null,x=typeof clearTimeout=="function"?clearTimeout:null,_=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function w(F){for(var Z=r(u);Z!==null;){if(Z.callback===null)n(u);else if(Z.startTime<=F)n(u),Z.sortIndex=Z.expirationTime,t(l,Z);else break;Z=r(u)}}function S(F){if(m=!1,w(F),!g)if(r(l)!==null)g=!0,V(C);else{var Z=r(u);Z!==null&&U(S,Z.startTime-F)}}function C(F,Z){g=!1,m&&(m=!1,x(I),I=-1),v=!0;var $=d;try{for(w(Z),h=r(l);h!==null&&(!(h.expirationTime>Z)||F&&!D());){var W=h.callback;if(typeof W=="function"){h.callback=null,d=h.priorityLevel;var q=W(h.expirationTime<=Z);Z=e.unstable_now(),typeof q=="function"?h.callback=q:h===r(l)&&n(l),w(Z)}else n(l);h=r(l)}if(h!==null)var re=!0;else{var Q=r(u);Q!==null&&U(S,Q.startTime-Z),re=!1}return re}finally{h=null,d=$,v=!1}}var M=!1,A=null,I=-1,k=5,P=-1;function D(){return!(e.unstable_now()-PF||125W?(F.sortIndex=$,t(u,F),r(l)===null&&F===r(u)&&(m?(x(I),I=-1):m=!0,U(S,$-W))):(F.sortIndex=q,t(l,F),g||v||(g=!0,V(C))),F},e.unstable_shouldYield=D,e.unstable_wrapCallback=function(F){var Z=d;return function(){var $=d;d=Z;try{return F.apply(this,arguments)}finally{d=$}}}})(lF);sF.exports=lF;var $Y=sF.exports;/** - * @license React - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var YY=O,Ta=$Y;function xe(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=1;r"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),r2=Object.prototype.hasOwnProperty,XY=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,yD={},xD={};function qY(e){return r2.call(xD,e)?!0:r2.call(yD,e)?!1:XY.test(e)?xD[e]=!0:(yD[e]=!0,!1)}function KY(e,t,r,n){if(r!==null&&r.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return n?!1:r!==null?!r.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function JY(e,t,r,n){if(t===null||typeof t>"u"||KY(e,t,r,n))return!0;if(n)return!1;if(r!==null)switch(r.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Zn(e,t,r,n,a,i,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=n,this.attributeNamespace=a,this.mustUseProperty=r,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=o}var cn={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){cn[e]=new Zn(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];cn[t]=new Zn(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){cn[e]=new Zn(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){cn[e]=new Zn(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){cn[e]=new Zn(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){cn[e]=new Zn(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){cn[e]=new Zn(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){cn[e]=new Zn(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){cn[e]=new Zn(e,5,!1,e.toLowerCase(),null,!1,!1)});var bN=/[\-:]([a-z])/g;function wN(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(bN,wN);cn[t]=new Zn(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(bN,wN);cn[t]=new Zn(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(bN,wN);cn[t]=new Zn(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){cn[e]=new Zn(e,1,!1,e.toLowerCase(),null,!1,!1)});cn.xlinkHref=new Zn("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){cn[e]=new Zn(e,1,!1,e.toLowerCase(),null,!0,!0)});function SN(e,t,r,n){var a=cn.hasOwnProperty(t)?cn[t]:null;(a!==null?a.type!==0:n||!(2s||a[o]!==i[s]){var l=` -`+a[o].replace(" at new "," at ");return e.displayName&&l.includes("")&&(l=l.replace("",e.displayName)),l}while(1<=o&&0<=s);break}}}finally{Vw=!1,Error.prepareStackTrace=r}return(e=e?e.displayName||e.name:"")?mp(e):""}function QY(e){switch(e.tag){case 5:return mp(e.type);case 16:return mp("Lazy");case 13:return mp("Suspense");case 19:return mp("SuspenseList");case 0:case 2:case 15:return e=Gw(e.type,!1),e;case 11:return e=Gw(e.type.render,!1),e;case 1:return e=Gw(e.type,!0),e;default:return""}}function o2(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case mf:return"Fragment";case gf:return"Portal";case n2:return"Profiler";case CN:return"StrictMode";case a2:return"Suspense";case i2:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case hF:return(e.displayName||"Context")+".Consumer";case cF:return(e._context.displayName||"Context")+".Provider";case TN:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case MN:return t=e.displayName||null,t!==null?t:o2(e.type)||"Memo";case rl:t=e._payload,e=e._init;try{return o2(e(t))}catch{}}return null}function eX(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return o2(t);case 8:return t===CN?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Ol(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function dF(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function tX(e){var t=dF(e)?"checked":"value",r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),n=""+e[t];if(!e.hasOwnProperty(t)&&typeof r<"u"&&typeof r.get=="function"&&typeof r.set=="function"){var a=r.get,i=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(o){n=""+o,i.call(this,o)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(o){n=""+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function ky(e){e._valueTracker||(e._valueTracker=tX(e))}function vF(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var r=t.getValue(),n="";return e&&(n=dF(e)?e.checked?"true":"false":e.value),e=n,e!==r?(t.setValue(e),!0):!1}function e_(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function s2(e,t){var r=t.checked;return fr({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:r??e._wrapperState.initialChecked})}function bD(e,t){var r=t.defaultValue==null?"":t.defaultValue,n=t.checked!=null?t.checked:t.defaultChecked;r=Ol(t.value!=null?t.value:r),e._wrapperState={initialChecked:n,initialValue:r,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function pF(e,t){t=t.checked,t!=null&&SN(e,"checked",t,!1)}function l2(e,t){pF(e,t);var r=Ol(t.value),n=t.type;if(r!=null)n==="number"?(r===0&&e.value===""||e.value!=r)&&(e.value=""+r):e.value!==""+r&&(e.value=""+r);else if(n==="submit"||n==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?u2(e,t.type,r):t.hasOwnProperty("defaultValue")&&u2(e,t.type,Ol(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function wD(e,t,r){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var n=t.type;if(!(n!=="submit"&&n!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,r||t===e.value||(e.value=t),e.defaultValue=t}r=e.name,r!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,r!==""&&(e.name=r)}function u2(e,t,r){(t!=="number"||e_(e.ownerDocument)!==e)&&(r==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+r&&(e.defaultValue=""+r))}var yp=Array.isArray;function jf(e,t,r,n){if(e=e.options,t){t={};for(var a=0;a"+t.valueOf().toString()+"",t=Ly.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function ug(e,t){if(t){var r=e.firstChild;if(r&&r===e.lastChild&&r.nodeType===3){r.nodeValue=t;return}}e.textContent=t}var jp={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rX=["Webkit","ms","Moz","O"];Object.keys(jp).forEach(function(e){rX.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),jp[t]=jp[e]})});function xF(e,t,r){return t==null||typeof t=="boolean"||t===""?"":r||typeof t!="number"||t===0||jp.hasOwnProperty(e)&&jp[e]?(""+t).trim():t+"px"}function _F(e,t){e=e.style;for(var r in t)if(t.hasOwnProperty(r)){var n=r.indexOf("--")===0,a=xF(r,t[r],n);r==="float"&&(r="cssFloat"),n?e.setProperty(r,a):e[r]=a}}var nX=fr({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function f2(e,t){if(t){if(nX[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(xe(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(xe(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(xe(61))}if(t.style!=null&&typeof t.style!="object")throw Error(xe(62))}}function d2(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var v2=null;function AN(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var p2=null,Rf=null,Of=null;function TD(e){if(e=_m(e)){if(typeof p2!="function")throw Error(xe(280));var t=e.stateNode;t&&(t=Qb(t),p2(e.stateNode,e.type,t))}}function bF(e){Rf?Of?Of.push(e):Of=[e]:Rf=e}function wF(){if(Rf){var e=Rf,t=Of;if(Of=Rf=null,TD(e),t)for(e=0;e>>=0,e===0?32:31-(vX(e)/pX|0)|0}var Iy=64,Py=4194304;function xp(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function a_(e,t){var r=e.pendingLanes;if(r===0)return 0;var n=0,a=e.suspendedLanes,i=e.pingedLanes,o=r&268435455;if(o!==0){var s=o&~a;s!==0?n=xp(s):(i&=o,i!==0&&(n=xp(i)))}else o=r&~a,o!==0?n=xp(o):i!==0&&(n=xp(i));if(n===0)return 0;if(t!==0&&t!==n&&!(t&a)&&(a=n&-n,i=t&-t,a>=i||a===16&&(i&4194240)!==0))return t;if(n&4&&(n|=r&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=n;0r;r++)t.push(e);return t}function ym(e,t,r){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Si(t),e[t]=r}function xX(e,t){var r=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var n=e.eventTimes;for(e=e.expirationTimes;0=Op),ED=" ",jD=!1;function GF(e,t){switch(e){case"keyup":return $X.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function HF(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var yf=!1;function XX(e,t){switch(e){case"compositionend":return HF(t);case"keypress":return t.which!==32?null:(jD=!0,ED);case"textInput":return e=t.data,e===ED&&jD?null:e;default:return null}}function qX(e,t){if(yf)return e==="compositionend"||!jN&&GF(e,t)?(e=FF(),yx=PN=ll=null,yf=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=BD(r)}}function $F(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?$F(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function YF(){for(var e=window,t=e_();t instanceof e.HTMLIFrameElement;){try{var r=typeof t.contentWindow.location.href=="string"}catch{r=!1}if(r)e=t.contentWindow;else break;t=e_(e.document)}return t}function RN(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function iq(e){var t=YF(),r=e.focusedElem,n=e.selectionRange;if(t!==r&&r&&r.ownerDocument&&$F(r.ownerDocument.documentElement,r)){if(n!==null&&RN(r)){if(t=n.start,e=n.end,e===void 0&&(e=t),"selectionStart"in r)r.selectionStart=t,r.selectionEnd=Math.min(e,r.value.length);else if(e=(t=r.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var a=r.textContent.length,i=Math.min(n.start,a);n=n.end===void 0?i:Math.min(n.end,a),!e.extend&&i>n&&(a=n,n=i,i=a),a=FD(r,i);var o=FD(r,n);a&&o&&(e.rangeCount!==1||e.anchorNode!==a.node||e.anchorOffset!==a.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(a.node,a.offset),e.removeAllRanges(),i>n?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}}for(t=[],e=r;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof r.focus=="function"&&r.focus(),r=0;r=document.documentMode,xf=null,b2=null,Bp=null,w2=!1;function VD(e,t,r){var n=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;w2||xf==null||xf!==e_(n)||(n=xf,"selectionStart"in n&&RN(n)?n={start:n.selectionStart,end:n.selectionEnd}:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}),Bp&&pg(Bp,n)||(Bp=n,n=s_(b2,"onSelect"),0wf||(e.current=N2[wf],N2[wf]=null,wf--)}function Qt(e,t){wf++,N2[wf]=e.current,e.current=t}var zl={},kn=ql(zl),ra=ql(!1),Cc=zl;function td(e,t){var r=e.type.contextTypes;if(!r)return zl;var n=e.stateNode;if(n&&n.__reactInternalMemoizedUnmaskedChildContext===t)return n.__reactInternalMemoizedMaskedChildContext;var a={},i;for(i in r)a[i]=t[i];return n&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function na(e){return e=e.childContextTypes,e!=null}function u_(){rr(ra),rr(kn)}function YD(e,t,r){if(kn.current!==zl)throw Error(xe(168));Qt(kn,t),Qt(ra,r)}function n6(e,t,r){var n=e.stateNode;if(t=t.childContextTypes,typeof n.getChildContext!="function")return r;n=n.getChildContext();for(var a in n)if(!(a in t))throw Error(xe(108,eX(e)||"Unknown",a));return fr({},r,n)}function c_(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||zl,Cc=kn.current,Qt(kn,e),Qt(ra,ra.current),!0}function XD(e,t,r){var n=e.stateNode;if(!n)throw Error(xe(169));r?(e=n6(e,t,Cc),n.__reactInternalMemoizedMergedChildContext=e,rr(ra),rr(kn),Qt(kn,e)):rr(ra),Qt(ra,r)}var rs=null,e1=!1,rS=!1;function a6(e){rs===null?rs=[e]:rs.push(e)}function mq(e){e1=!0,a6(e)}function Kl(){if(!rS&&rs!==null){rS=!0;var e=0,t=Ht;try{var r=rs;for(Ht=1;e>=o,a-=o,as=1<<32-Si(t)+a|r<I?(k=A,A=null):k=A.sibling;var P=d(x,A,w[I],S);if(P===null){A===null&&(A=k);break}e&&A&&P.alternate===null&&t(x,A),_=i(P,_,I),M===null?C=P:M.sibling=P,M=P,A=k}if(I===w.length)return r(x,A),or&&Uu(x,I),C;if(A===null){for(;II?(k=A,A=null):k=A.sibling;var D=d(x,A,P.value,S);if(D===null){A===null&&(A=k);break}e&&A&&D.alternate===null&&t(x,A),_=i(D,_,I),M===null?C=D:M.sibling=D,M=D,A=k}if(P.done)return r(x,A),or&&Uu(x,I),C;if(A===null){for(;!P.done;I++,P=w.next())P=h(x,P.value,S),P!==null&&(_=i(P,_,I),M===null?C=P:M.sibling=P,M=P);return or&&Uu(x,I),C}for(A=n(x,A);!P.done;I++,P=w.next())P=v(A,x,I,P.value,S),P!==null&&(e&&P.alternate!==null&&A.delete(P.key===null?I:P.key),_=i(P,_,I),M===null?C=P:M.sibling=P,M=P);return e&&A.forEach(function(z){return t(x,z)}),or&&Uu(x,I),C}function y(x,_,w,S){if(typeof w=="object"&&w!==null&&w.type===mf&&w.key===null&&(w=w.props.children),typeof w=="object"&&w!==null){switch(w.$$typeof){case Ny:e:{for(var C=w.key,M=_;M!==null;){if(M.key===C){if(C=w.type,C===mf){if(M.tag===7){r(x,M.sibling),_=a(M,w.props.children),_.return=x,x=_;break e}}else if(M.elementType===C||typeof C=="object"&&C!==null&&C.$$typeof===rl&&JD(C)===M.type){r(x,M.sibling),_=a(M,w.props),_.ref=Pv(x,M,w),_.return=x,x=_;break e}r(x,M);break}else t(x,M);M=M.sibling}w.type===mf?(_=vc(w.props.children,x.mode,S,w.key),_.return=x,x=_):(S=Ax(w.type,w.key,w.props,null,x.mode,S),S.ref=Pv(x,_,w),S.return=x,x=S)}return o(x);case gf:e:{for(M=w.key;_!==null;){if(_.key===M)if(_.tag===4&&_.stateNode.containerInfo===w.containerInfo&&_.stateNode.implementation===w.implementation){r(x,_.sibling),_=a(_,w.children||[]),_.return=x,x=_;break e}else{r(x,_);break}else t(x,_);_=_.sibling}_=cS(w,x.mode,S),_.return=x,x=_}return o(x);case rl:return M=w._init,y(x,_,M(w._payload),S)}if(yp(w))return g(x,_,w,S);if(Av(w))return m(x,_,w,S);By(x,w)}return typeof w=="string"&&w!==""||typeof w=="number"?(w=""+w,_!==null&&_.tag===6?(r(x,_.sibling),_=a(_,w),_.return=x,x=_):(r(x,_),_=uS(w,x.mode,S),_.return=x,x=_),o(x)):r(x,_)}return y}var nd=l6(!0),u6=l6(!1),d_=ql(null),v_=null,Tf=null,FN=null;function VN(){FN=Tf=v_=null}function GN(e){var t=d_.current;rr(d_),e._currentValue=t}function I2(e,t,r){for(;e!==null;){var n=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,n!==null&&(n.childLanes|=t)):n!==null&&(n.childLanes&t)!==t&&(n.childLanes|=t),e===r)break;e=e.return}}function Bf(e,t){v_=e,FN=Tf=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(ta=!0),e.firstContext=null)}function Qa(e){var t=e._currentValue;if(FN!==e)if(e={context:e,memoizedValue:t,next:null},Tf===null){if(v_===null)throw Error(xe(308));Tf=e,v_.dependencies={lanes:0,firstContext:e}}else Tf=Tf.next=e;return t}var ac=null;function HN(e){ac===null?ac=[e]:ac.push(e)}function c6(e,t,r,n){var a=t.interleaved;return a===null?(r.next=r,HN(t)):(r.next=a.next,a.next=r),t.interleaved=r,bs(e,n)}function bs(e,t){e.lanes|=t;var r=e.alternate;for(r!==null&&(r.lanes|=t),r=e,e=e.return;e!==null;)e.childLanes|=t,r=e.alternate,r!==null&&(r.childLanes|=t),r=e,e=e.return;return r.tag===3?r.stateNode:null}var nl=!1;function UN(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function h6(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function cs(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function wl(e,t,r){var n=e.updateQueue;if(n===null)return null;if(n=n.shared,It&2){var a=n.pending;return a===null?t.next=t:(t.next=a.next,a.next=t),n.pending=t,bs(e,r)}return a=n.interleaved,a===null?(t.next=t,HN(n)):(t.next=a.next,a.next=t),n.interleaved=t,bs(e,r)}function _x(e,t,r){if(t=t.updateQueue,t!==null&&(t=t.shared,(r&4194240)!==0)){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,kN(e,r)}}function QD(e,t){var r=e.updateQueue,n=e.alternate;if(n!==null&&(n=n.updateQueue,r===n)){var a=null,i=null;if(r=r.firstBaseUpdate,r!==null){do{var o={eventTime:r.eventTime,lane:r.lane,tag:r.tag,payload:r.payload,callback:r.callback,next:null};i===null?a=i=o:i=i.next=o,r=r.next}while(r!==null);i===null?a=i=t:i=i.next=t}else a=i=t;r={baseState:n.baseState,firstBaseUpdate:a,lastBaseUpdate:i,shared:n.shared,effects:n.effects},e.updateQueue=r;return}e=r.lastBaseUpdate,e===null?r.firstBaseUpdate=t:e.next=t,r.lastBaseUpdate=t}function p_(e,t,r,n){var a=e.updateQueue;nl=!1;var i=a.firstBaseUpdate,o=a.lastBaseUpdate,s=a.shared.pending;if(s!==null){a.shared.pending=null;var l=s,u=l.next;l.next=null,o===null?i=u:o.next=u,o=l;var c=e.alternate;c!==null&&(c=c.updateQueue,s=c.lastBaseUpdate,s!==o&&(s===null?c.firstBaseUpdate=u:s.next=u,c.lastBaseUpdate=l))}if(i!==null){var h=a.baseState;o=0,c=u=l=null,s=i;do{var d=s.lane,v=s.eventTime;if((n&d)===d){c!==null&&(c=c.next={eventTime:v,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var g=e,m=s;switch(d=t,v=r,m.tag){case 1:if(g=m.payload,typeof g=="function"){h=g.call(v,h,d);break e}h=g;break e;case 3:g.flags=g.flags&-65537|128;case 0:if(g=m.payload,d=typeof g=="function"?g.call(v,h,d):g,d==null)break e;h=fr({},h,d);break e;case 2:nl=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,d=a.effects,d===null?a.effects=[s]:d.push(s))}else v={eventTime:v,lane:d,tag:s.tag,payload:s.payload,callback:s.callback,next:null},c===null?(u=c=v,l=h):c=c.next=v,o|=d;if(s=s.next,s===null){if(s=a.shared.pending,s===null)break;d=s,s=d.next,d.next=null,a.lastBaseUpdate=d,a.shared.pending=null}}while(!0);if(c===null&&(l=h),a.baseState=l,a.firstBaseUpdate=u,a.lastBaseUpdate=c,t=a.shared.interleaved,t!==null){a=t;do o|=a.lane,a=a.next;while(a!==t)}else i===null&&(a.shared.lanes=0);Ac|=o,e.lanes=o,e.memoizedState=h}}function eE(e,t,r){if(e=t.effects,t.effects=null,e!==null)for(t=0;tr?r:4,e(!0);var n=aS.transition;aS.transition={};try{e(!1),t()}finally{Ht=r,aS.transition=n}}function N6(){return ei().memoizedState}function bq(e,t,r){var n=Cl(e);if(r={lane:n,action:r,hasEagerState:!1,eagerState:null,next:null},k6(e))L6(t,r);else if(r=c6(e,t,r,n),r!==null){var a=Fn();Ci(r,e,n,a),I6(r,t,n)}}function wq(e,t,r){var n=Cl(e),a={lane:n,action:r,hasEagerState:!1,eagerState:null,next:null};if(k6(e))L6(t,a);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var o=t.lastRenderedState,s=i(o,r);if(a.hasEagerState=!0,a.eagerState=s,Ii(s,o)){var l=t.interleaved;l===null?(a.next=a,HN(t)):(a.next=l.next,l.next=a),t.interleaved=a;return}}catch{}finally{}r=c6(e,t,a,n),r!==null&&(a=Fn(),Ci(r,e,n,a),I6(r,t,n))}}function k6(e){var t=e.alternate;return e===cr||t!==null&&t===cr}function L6(e,t){Fp=m_=!0;var r=e.pending;r===null?t.next=t:(t.next=r.next,r.next=t),e.pending=t}function I6(e,t,r){if(r&4194240){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,kN(e,r)}}var y_={readContext:Qa,useCallback:yn,useContext:yn,useEffect:yn,useImperativeHandle:yn,useInsertionEffect:yn,useLayoutEffect:yn,useMemo:yn,useReducer:yn,useRef:yn,useState:yn,useDebugValue:yn,useDeferredValue:yn,useTransition:yn,useMutableSource:yn,useSyncExternalStore:yn,useId:yn,unstable_isNewReconciler:!1},Sq={readContext:Qa,useCallback:function(e,t){return ro().memoizedState=[e,t===void 0?null:t],e},useContext:Qa,useEffect:rE,useImperativeHandle:function(e,t,r){return r=r!=null?r.concat([e]):null,Sx(4194308,4,S6.bind(null,t,e),r)},useLayoutEffect:function(e,t){return Sx(4194308,4,e,t)},useInsertionEffect:function(e,t){return Sx(4,2,e,t)},useMemo:function(e,t){var r=ro();return t=t===void 0?null:t,e=e(),r.memoizedState=[e,t],e},useReducer:function(e,t,r){var n=ro();return t=r!==void 0?r(t):t,n.memoizedState=n.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},n.queue=e,e=e.dispatch=bq.bind(null,cr,e),[n.memoizedState,e]},useRef:function(e){var t=ro();return e={current:e},t.memoizedState=e},useState:tE,useDebugValue:JN,useDeferredValue:function(e){return ro().memoizedState=e},useTransition:function(){var e=tE(!1),t=e[0];return e=_q.bind(null,e[1]),ro().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,r){var n=cr,a=ro();if(or){if(r===void 0)throw Error(xe(407));r=r()}else{if(r=t(),Kr===null)throw Error(xe(349));Mc&30||p6(n,t,r)}a.memoizedState=r;var i={value:r,getSnapshot:t};return a.queue=i,rE(m6.bind(null,n,i,e),[e]),n.flags|=2048,Sg(9,g6.bind(null,n,i,r,t),void 0,null),r},useId:function(){var e=ro(),t=Kr.identifierPrefix;if(or){var r=is,n=as;r=(n&~(1<<32-Si(n)-1)).toString(32)+r,t=":"+t+"R"+r,r=bg++,0<\/script>",e=e.removeChild(e.firstChild)):typeof n.is=="string"?e=o.createElement(r,{is:n.is}):(e=o.createElement(r),r==="select"&&(o=e,n.multiple?o.multiple=!0:n.size&&(o.size=n.size))):e=o.createElementNS(e,r),e[ao]=t,e[yg]=n,V6(e,t,!1,!1),t.stateNode=e;e:{switch(o=d2(r,n),r){case"dialog":tr("cancel",e),tr("close",e),a=n;break;case"iframe":case"object":case"embed":tr("load",e),a=n;break;case"video":case"audio":for(a=0;a<_p.length;a++)tr(_p[a],e);a=n;break;case"source":tr("error",e),a=n;break;case"img":case"image":case"link":tr("error",e),tr("load",e),a=n;break;case"details":tr("toggle",e),a=n;break;case"input":bD(e,n),a=s2(e,n),tr("invalid",e);break;case"option":a=n;break;case"select":e._wrapperState={wasMultiple:!!n.multiple},a=fr({},n,{value:void 0}),tr("invalid",e);break;case"textarea":SD(e,n),a=c2(e,n),tr("invalid",e);break;default:a=n}f2(r,a),s=a;for(i in s)if(s.hasOwnProperty(i)){var l=s[i];i==="style"?_F(e,l):i==="dangerouslySetInnerHTML"?(l=l?l.__html:void 0,l!=null&&yF(e,l)):i==="children"?typeof l=="string"?(r!=="textarea"||l!=="")&&ug(e,l):typeof l=="number"&&ug(e,""+l):i!=="suppressContentEditableWarning"&&i!=="suppressHydrationWarning"&&i!=="autoFocus"&&(lg.hasOwnProperty(i)?l!=null&&i==="onScroll"&&tr("scroll",e):l!=null&&SN(e,i,l,o))}switch(r){case"input":ky(e),wD(e,n,!1);break;case"textarea":ky(e),CD(e);break;case"option":n.value!=null&&e.setAttribute("value",""+Ol(n.value));break;case"select":e.multiple=!!n.multiple,i=n.value,i!=null?jf(e,!!n.multiple,i,!1):n.defaultValue!=null&&jf(e,!!n.multiple,n.defaultValue,!0);break;default:typeof a.onClick=="function"&&(e.onclick=l_)}switch(r){case"button":case"input":case"select":case"textarea":n=!!n.autoFocus;break e;case"img":n=!0;break e;default:n=!1}}n&&(t.flags|=4)}t.ref!==null&&(t.flags|=512,t.flags|=2097152)}return xn(t),null;case 6:if(e&&t.stateNode!=null)H6(e,t,e.memoizedProps,n);else{if(typeof n!="string"&&t.stateNode===null)throw Error(xe(166));if(r=ic(_g.current),ic(vo.current),zy(t)){if(n=t.stateNode,r=t.memoizedProps,n[ao]=t,(i=n.nodeValue!==r)&&(e=Sa,e!==null))switch(e.tag){case 3:Oy(n.nodeValue,r,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&Oy(n.nodeValue,r,(e.mode&1)!==0)}i&&(t.flags|=4)}else n=(r.nodeType===9?r:r.ownerDocument).createTextNode(n),n[ao]=t,t.stateNode=n}return xn(t),null;case 13:if(rr(ur),n=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(or&&xa!==null&&t.mode&1&&!(t.flags&128))s6(),rd(),t.flags|=98560,i=!1;else if(i=zy(t),n!==null&&n.dehydrated!==null){if(e===null){if(!i)throw Error(xe(318));if(i=t.memoizedState,i=i!==null?i.dehydrated:null,!i)throw Error(xe(317));i[ao]=t}else rd(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;xn(t),i=!1}else bi!==null&&($2(bi),bi=null),i=!0;if(!i)return t.flags&65536?t:null}return t.flags&128?(t.lanes=r,t):(n=n!==null,n!==(e!==null&&e.memoizedState!==null)&&n&&(t.child.flags|=8192,t.mode&1&&(e===null||ur.current&1?Br===0&&(Br=3):ik())),t.updateQueue!==null&&(t.flags|=4),xn(t),null);case 4:return ad(),B2(e,t),e===null&&gg(t.stateNode.containerInfo),xn(t),null;case 10:return GN(t.type._context),xn(t),null;case 17:return na(t.type)&&u_(),xn(t),null;case 19:if(rr(ur),i=t.memoizedState,i===null)return xn(t),null;if(n=(t.flags&128)!==0,o=i.rendering,o===null)if(n)Dv(i,!1);else{if(Br!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=g_(e),o!==null){for(t.flags|=128,Dv(i,!1),n=o.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),t.subtreeFlags=0,n=r,r=t.child;r!==null;)i=r,e=n,i.flags&=14680066,o=i.alternate,o===null?(i.childLanes=0,i.lanes=e,i.child=null,i.subtreeFlags=0,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null,i.stateNode=null):(i.childLanes=o.childLanes,i.lanes=o.lanes,i.child=o.child,i.subtreeFlags=0,i.deletions=null,i.memoizedProps=o.memoizedProps,i.memoizedState=o.memoizedState,i.updateQueue=o.updateQueue,i.type=o.type,e=o.dependencies,i.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),r=r.sibling;return Qt(ur,ur.current&1|2),t.child}e=e.sibling}i.tail!==null&&Cr()>od&&(t.flags|=128,n=!0,Dv(i,!1),t.lanes=4194304)}else{if(!n)if(e=g_(o),e!==null){if(t.flags|=128,n=!0,r=e.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),Dv(i,!0),i.tail===null&&i.tailMode==="hidden"&&!o.alternate&&!or)return xn(t),null}else 2*Cr()-i.renderingStartTime>od&&r!==1073741824&&(t.flags|=128,n=!0,Dv(i,!1),t.lanes=4194304);i.isBackwards?(o.sibling=t.child,t.child=o):(r=i.last,r!==null?r.sibling=o:t.child=o,i.last=o)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Cr(),t.sibling=null,r=ur.current,Qt(ur,n?r&1|2:r&1),t):(xn(t),null);case 22:case 23:return ak(),n=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==n&&(t.flags|=8192),n&&t.mode&1?pa&1073741824&&(xn(t),t.subtreeFlags&6&&(t.flags|=8192)):xn(t),null;case 24:return null;case 25:return null}throw Error(xe(156,t.tag))}function Iq(e,t){switch(zN(t),t.tag){case 1:return na(t.type)&&u_(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return ad(),rr(ra),rr(kn),$N(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return ZN(t),null;case 13:if(rr(ur),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(xe(340));rd()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return rr(ur),null;case 4:return ad(),null;case 10:return GN(t.type._context),null;case 22:case 23:return ak(),null;case 24:return null;default:return null}}var Vy=!1,Cn=!1,Pq=typeof WeakSet=="function"?WeakSet:Set,ze=null;function Mf(e,t){var r=e.ref;if(r!==null)if(typeof r=="function")try{r(null)}catch(n){gr(e,t,n)}else r.current=null}function F2(e,t,r){try{r()}catch(n){gr(e,t,n)}}var dE=!1;function Dq(e,t){if(S2=i_,e=YF(),RN(e)){if("selectionStart"in e)var r={start:e.selectionStart,end:e.selectionEnd};else e:{r=(r=e.ownerDocument)&&r.defaultView||window;var n=r.getSelection&&r.getSelection();if(n&&n.rangeCount!==0){r=n.anchorNode;var a=n.anchorOffset,i=n.focusNode;n=n.focusOffset;try{r.nodeType,i.nodeType}catch{r=null;break e}var o=0,s=-1,l=-1,u=0,c=0,h=e,d=null;t:for(;;){for(var v;h!==r||a!==0&&h.nodeType!==3||(s=o+a),h!==i||n!==0&&h.nodeType!==3||(l=o+n),h.nodeType===3&&(o+=h.nodeValue.length),(v=h.firstChild)!==null;)d=h,h=v;for(;;){if(h===e)break t;if(d===r&&++u===a&&(s=o),d===i&&++c===n&&(l=o),(v=h.nextSibling)!==null)break;h=d,d=h.parentNode}h=v}r=s===-1||l===-1?null:{start:s,end:l}}else r=null}r=r||{start:0,end:0}}else r=null;for(C2={focusedElem:e,selectionRange:r},i_=!1,ze=t;ze!==null;)if(t=ze,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,ze=e;else for(;ze!==null;){t=ze;try{var g=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(g!==null){var m=g.memoizedProps,y=g.memoizedState,x=t.stateNode,_=x.getSnapshotBeforeUpdate(t.elementType===t.type?m:yi(t.type,m),y);x.__reactInternalSnapshotBeforeUpdate=_}break;case 3:var w=t.stateNode.containerInfo;w.nodeType===1?w.textContent="":w.nodeType===9&&w.documentElement&&w.removeChild(w.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(xe(163))}}catch(S){gr(t,t.return,S)}if(e=t.sibling,e!==null){e.return=t.return,ze=e;break}ze=t.return}return g=dE,dE=!1,g}function Vp(e,t,r){var n=t.updateQueue;if(n=n!==null?n.lastEffect:null,n!==null){var a=n=n.next;do{if((a.tag&e)===e){var i=a.destroy;a.destroy=void 0,i!==void 0&&F2(t,r,i)}a=a.next}while(a!==n)}}function n1(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var r=t=t.next;do{if((r.tag&e)===e){var n=r.create;r.destroy=n()}r=r.next}while(r!==t)}}function V2(e){var t=e.ref;if(t!==null){var r=e.stateNode;switch(e.tag){case 5:e=r;break;default:e=r}typeof t=="function"?t(e):t.current=e}}function U6(e){var t=e.alternate;t!==null&&(e.alternate=null,U6(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[ao],delete t[yg],delete t[A2],delete t[pq],delete t[gq])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function W6(e){return e.tag===5||e.tag===3||e.tag===4}function vE(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||W6(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function G2(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?r.nodeType===8?r.parentNode.insertBefore(e,t):r.insertBefore(e,t):(r.nodeType===8?(t=r.parentNode,t.insertBefore(e,r)):(t=r,t.appendChild(e)),r=r._reactRootContainer,r!=null||t.onclick!==null||(t.onclick=l_));else if(n!==4&&(e=e.child,e!==null))for(G2(e,t,r),e=e.sibling;e!==null;)G2(e,t,r),e=e.sibling}function H2(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?r.insertBefore(e,t):r.appendChild(e);else if(n!==4&&(e=e.child,e!==null))for(H2(e,t,r),e=e.sibling;e!==null;)H2(e,t,r),e=e.sibling}var tn=null,_i=!1;function Us(e,t,r){for(r=r.child;r!==null;)Z6(e,t,r),r=r.sibling}function Z6(e,t,r){if(fo&&typeof fo.onCommitFiberUnmount=="function")try{fo.onCommitFiberUnmount(Xb,r)}catch{}switch(r.tag){case 5:Cn||Mf(r,t);case 6:var n=tn,a=_i;tn=null,Us(e,t,r),tn=n,_i=a,tn!==null&&(_i?(e=tn,r=r.stateNode,e.nodeType===8?e.parentNode.removeChild(r):e.removeChild(r)):tn.removeChild(r.stateNode));break;case 18:tn!==null&&(_i?(e=tn,r=r.stateNode,e.nodeType===8?tS(e.parentNode,r):e.nodeType===1&&tS(e,r),dg(e)):tS(tn,r.stateNode));break;case 4:n=tn,a=_i,tn=r.stateNode.containerInfo,_i=!0,Us(e,t,r),tn=n,_i=a;break;case 0:case 11:case 14:case 15:if(!Cn&&(n=r.updateQueue,n!==null&&(n=n.lastEffect,n!==null))){a=n=n.next;do{var i=a,o=i.destroy;i=i.tag,o!==void 0&&(i&2||i&4)&&F2(r,t,o),a=a.next}while(a!==n)}Us(e,t,r);break;case 1:if(!Cn&&(Mf(r,t),n=r.stateNode,typeof n.componentWillUnmount=="function"))try{n.props=r.memoizedProps,n.state=r.memoizedState,n.componentWillUnmount()}catch(s){gr(r,t,s)}Us(e,t,r);break;case 21:Us(e,t,r);break;case 22:r.mode&1?(Cn=(n=Cn)||r.memoizedState!==null,Us(e,t,r),Cn=n):Us(e,t,r);break;default:Us(e,t,r)}}function pE(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var r=e.stateNode;r===null&&(r=e.stateNode=new Pq),t.forEach(function(n){var a=Gq.bind(null,e,n);r.has(n)||(r.add(n),n.then(a,a))})}}function vi(e,t){var r=t.deletions;if(r!==null)for(var n=0;na&&(a=o),n&=~i}if(n=a,n=Cr()-n,n=(120>n?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*jq(n/1960))-n,10e?16:e,ul===null)var n=!1;else{if(e=ul,ul=null,b_=0,It&6)throw Error(xe(331));var a=It;for(It|=4,ze=e.current;ze!==null;){var i=ze,o=i.child;if(ze.flags&16){var s=i.deletions;if(s!==null){for(var l=0;lCr()-rk?dc(e,0):tk|=r),aa(e,t)}function eV(e,t){t===0&&(e.mode&1?(t=Py,Py<<=1,!(Py&130023424)&&(Py=4194304)):t=1);var r=Fn();e=bs(e,t),e!==null&&(ym(e,t,r),aa(e,r))}function Vq(e){var t=e.memoizedState,r=0;t!==null&&(r=t.retryLane),eV(e,r)}function Gq(e,t){var r=0;switch(e.tag){case 13:var n=e.stateNode,a=e.memoizedState;a!==null&&(r=a.retryLane);break;case 19:n=e.stateNode;break;default:throw Error(xe(314))}n!==null&&n.delete(t),eV(e,r)}var tV;tV=function(e,t,r){if(e!==null)if(e.memoizedProps!==t.pendingProps||ra.current)ta=!0;else{if(!(e.lanes&r)&&!(t.flags&128))return ta=!1,kq(e,t,r);ta=!!(e.flags&131072)}else ta=!1,or&&t.flags&1048576&&i6(t,f_,t.index);switch(t.lanes=0,t.tag){case 2:var n=t.type;Cx(e,t),e=t.pendingProps;var a=td(t,kn.current);Bf(t,r),a=XN(null,t,n,e,a,r);var i=qN();return t.flags|=1,typeof a=="object"&&a!==null&&typeof a.render=="function"&&a.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,na(n)?(i=!0,c_(t)):i=!1,t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,UN(t),a.updater=r1,t.stateNode=a,a._reactInternals=t,D2(t,n,e,r),t=R2(null,t,n,!0,i,r)):(t.tag=0,or&&i&&ON(t),jn(null,t,a,r),t=t.child),t;case 16:n=t.elementType;e:{switch(Cx(e,t),e=t.pendingProps,a=n._init,n=a(n._payload),t.type=n,a=t.tag=Uq(n),e=yi(n,e),a){case 0:t=j2(null,t,n,e,r);break e;case 1:t=cE(null,t,n,e,r);break e;case 11:t=lE(null,t,n,e,r);break e;case 14:t=uE(null,t,n,yi(n.type,e),r);break e}throw Error(xe(306,n,""))}return t;case 0:return n=t.type,a=t.pendingProps,a=t.elementType===n?a:yi(n,a),j2(e,t,n,a,r);case 1:return n=t.type,a=t.pendingProps,a=t.elementType===n?a:yi(n,a),cE(e,t,n,a,r);case 3:e:{if(z6(t),e===null)throw Error(xe(387));n=t.pendingProps,i=t.memoizedState,a=i.element,h6(e,t),p_(t,n,null,r);var o=t.memoizedState;if(n=o.element,i.isDehydrated)if(i={element:n,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){a=id(Error(xe(423)),t),t=hE(e,t,n,r,a);break e}else if(n!==a){a=id(Error(xe(424)),t),t=hE(e,t,n,r,a);break e}else for(xa=bl(t.stateNode.containerInfo.firstChild),Sa=t,or=!0,bi=null,r=u6(t,null,n,r),t.child=r;r;)r.flags=r.flags&-3|4096,r=r.sibling;else{if(rd(),n===a){t=ws(e,t,r);break e}jn(e,t,n,r)}t=t.child}return t;case 5:return f6(t),e===null&&L2(t),n=t.type,a=t.pendingProps,i=e!==null?e.memoizedProps:null,o=a.children,T2(n,a)?o=null:i!==null&&T2(n,i)&&(t.flags|=32),O6(e,t),jn(e,t,o,r),t.child;case 6:return e===null&&L2(t),null;case 13:return B6(e,t,r);case 4:return WN(t,t.stateNode.containerInfo),n=t.pendingProps,e===null?t.child=nd(t,null,n,r):jn(e,t,n,r),t.child;case 11:return n=t.type,a=t.pendingProps,a=t.elementType===n?a:yi(n,a),lE(e,t,n,a,r);case 7:return jn(e,t,t.pendingProps,r),t.child;case 8:return jn(e,t,t.pendingProps.children,r),t.child;case 12:return jn(e,t,t.pendingProps.children,r),t.child;case 10:e:{if(n=t.type._context,a=t.pendingProps,i=t.memoizedProps,o=a.value,Qt(d_,n._currentValue),n._currentValue=o,i!==null)if(Ii(i.value,o)){if(i.children===a.children&&!ra.current){t=ws(e,t,r);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var s=i.dependencies;if(s!==null){o=i.child;for(var l=s.firstContext;l!==null;){if(l.context===n){if(i.tag===1){l=cs(-1,r&-r),l.tag=2;var u=i.updateQueue;if(u!==null){u=u.shared;var c=u.pending;c===null?l.next=l:(l.next=c.next,c.next=l),u.pending=l}}i.lanes|=r,l=i.alternate,l!==null&&(l.lanes|=r),I2(i.return,r,t),s.lanes|=r;break}l=l.next}}else if(i.tag===10)o=i.type===t.type?null:i.child;else if(i.tag===18){if(o=i.return,o===null)throw Error(xe(341));o.lanes|=r,s=o.alternate,s!==null&&(s.lanes|=r),I2(o,r,t),o=i.sibling}else o=i.child;if(o!==null)o.return=i;else for(o=i;o!==null;){if(o===t){o=null;break}if(i=o.sibling,i!==null){i.return=o.return,o=i;break}o=o.return}i=o}jn(e,t,a.children,r),t=t.child}return t;case 9:return a=t.type,n=t.pendingProps.children,Bf(t,r),a=Qa(a),n=n(a),t.flags|=1,jn(e,t,n,r),t.child;case 14:return n=t.type,a=yi(n,t.pendingProps),a=yi(n.type,a),uE(e,t,n,a,r);case 15:return j6(e,t,t.type,t.pendingProps,r);case 17:return n=t.type,a=t.pendingProps,a=t.elementType===n?a:yi(n,a),Cx(e,t),t.tag=1,na(n)?(e=!0,c_(t)):e=!1,Bf(t,r),P6(t,n,a),D2(t,n,a,r),R2(null,t,n,!0,e,r);case 19:return F6(e,t,r);case 22:return R6(e,t,r)}throw Error(xe(156,t.tag))};function rV(e,t){return kF(e,t)}function Hq(e,t,r,n){this.tag=e,this.key=r,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=n,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ya(e,t,r,n){return new Hq(e,t,r,n)}function ok(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Uq(e){if(typeof e=="function")return ok(e)?1:0;if(e!=null){if(e=e.$$typeof,e===TN)return 11;if(e===MN)return 14}return 2}function Tl(e,t){var r=e.alternate;return r===null?(r=Ya(e.tag,t,e.key,e.mode),r.elementType=e.elementType,r.type=e.type,r.stateNode=e.stateNode,r.alternate=e,e.alternate=r):(r.pendingProps=t,r.type=e.type,r.flags=0,r.subtreeFlags=0,r.deletions=null),r.flags=e.flags&14680064,r.childLanes=e.childLanes,r.lanes=e.lanes,r.child=e.child,r.memoizedProps=e.memoizedProps,r.memoizedState=e.memoizedState,r.updateQueue=e.updateQueue,t=e.dependencies,r.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},r.sibling=e.sibling,r.index=e.index,r.ref=e.ref,r}function Ax(e,t,r,n,a,i){var o=2;if(n=e,typeof e=="function")ok(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case mf:return vc(r.children,a,i,t);case CN:o=8,a|=8;break;case n2:return e=Ya(12,r,t,a|2),e.elementType=n2,e.lanes=i,e;case a2:return e=Ya(13,r,t,a),e.elementType=a2,e.lanes=i,e;case i2:return e=Ya(19,r,t,a),e.elementType=i2,e.lanes=i,e;case fF:return i1(r,a,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case cF:o=10;break e;case hF:o=9;break e;case TN:o=11;break e;case MN:o=14;break e;case rl:o=16,n=null;break e}throw Error(xe(130,e==null?e:typeof e,""))}return t=Ya(o,r,t,a),t.elementType=e,t.type=n,t.lanes=i,t}function vc(e,t,r,n){return e=Ya(7,e,n,t),e.lanes=r,e}function i1(e,t,r,n){return e=Ya(22,e,n,t),e.elementType=fF,e.lanes=r,e.stateNode={isHidden:!1},e}function uS(e,t,r){return e=Ya(6,e,null,t),e.lanes=r,e}function cS(e,t,r){return t=Ya(4,e.children!==null?e.children:[],e.key,t),t.lanes=r,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Wq(e,t,r,n,a){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Uw(0),this.expirationTimes=Uw(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Uw(0),this.identifierPrefix=n,this.onRecoverableError=a,this.mutableSourceEagerHydrationData=null}function sk(e,t,r,n,a,i,o,s,l){return e=new Wq(e,t,r,s,l),t===1?(t=1,i===!0&&(t|=8)):t=0,i=Ya(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:n,isDehydrated:r,cache:null,transitions:null,pendingSuspenseBoundaries:null},UN(i),e}function Zq(e,t,r){var n=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(oV)}catch(e){console.error(e)}}oV(),oF.exports=Aa;var sV=oF.exports,SE=sV;t2.createRoot=SE.createRoot,t2.hydrateRoot=SE.hydrateRoot;/** - * @remix-run/router v1.23.3 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function Tg(){return Tg=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function hk(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function Jq(){return Math.random().toString(36).substr(2,8)}function TE(e,t){return{usr:e.state,key:e.key,idx:t}}function Y2(e,t,r,n){return r===void 0&&(r=null),Tg({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Dd(t):t,{state:r,key:t&&t.key||n||Jq()})}function C_(e){let{pathname:t="/",search:r="",hash:n=""}=e;return r&&r!=="?"&&(t+=r.charAt(0)==="?"?r:"?"+r),n&&n!=="#"&&(t+=n.charAt(0)==="#"?n:"#"+n),t}function Dd(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substr(r),e=e.substr(0,r));let n=e.indexOf("?");n>=0&&(t.search=e.substr(n),e=e.substr(0,n)),e&&(t.pathname=e)}return t}function Qq(e,t,r,n){n===void 0&&(n={});let{window:a=document.defaultView,v5Compat:i=!1}=n,o=a.history,s=cl.Pop,l=null,u=c();u==null&&(u=0,o.replaceState(Tg({},o.state,{idx:u}),""));function c(){return(o.state||{idx:null}).idx}function h(){s=cl.Pop;let y=c(),x=y==null?null:y-u;u=y,l&&l({action:s,location:m.location,delta:x})}function d(y,x){s=cl.Push;let _=Y2(m.location,y,x);u=c()+1;let w=TE(_,u),S=m.createHref(_);try{o.pushState(w,"",S)}catch(C){if(C instanceof DOMException&&C.name==="DataCloneError")throw C;a.location.assign(S)}i&&l&&l({action:s,location:m.location,delta:1})}function v(y,x){s=cl.Replace;let _=Y2(m.location,y,x);u=c();let w=TE(_,u),S=m.createHref(_);o.replaceState(w,"",S),i&&l&&l({action:s,location:m.location,delta:0})}function g(y){let x=a.location.origin!=="null"?a.location.origin:a.location.href,_=typeof y=="string"?y:C_(y);return _=_.replace(/ $/,"%20"),Tr(x,"No window.location.(origin|href) available to create URL for href: "+_),new URL(_,x)}let m={get action(){return s},get location(){return e(a,o)},listen(y){if(l)throw new Error("A history only accepts one active listener");return a.addEventListener(CE,h),l=y,()=>{a.removeEventListener(CE,h),l=null}},createHref(y){return t(a,y)},createURL:g,encodeLocation(y){let x=g(y);return{pathname:x.pathname,search:x.search,hash:x.hash}},push:d,replace:v,go(y){return o.go(y)}};return m}var ME;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(ME||(ME={}));function eK(e,t,r){return r===void 0&&(r="/"),tK(e,t,r)}function tK(e,t,r,n){let a=typeof t=="string"?Dd(t):t,i=fk(a.pathname||"/",r);if(i==null)return null;let o=lV(e);rK(o);let s=null,l=vK(i);for(let u=0;s==null&&u{let l={relativePath:s===void 0?i.path||"":s,caseSensitive:i.caseSensitive===!0,childrenIndex:o,route:i};l.relativePath.startsWith("/")&&(Tr(l.relativePath.startsWith(n),'Absolute route path "'+l.relativePath+'" nested under path '+('"'+n+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),l.relativePath=l.relativePath.slice(n.length));let u=Ml([n,l.relativePath]),c=r.concat(l);i.children&&i.children.length>0&&(Tr(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),lV(i.children,t,c,u)),!(i.path==null&&!i.index)&&t.push({path:u,score:uK(u,i.index),routesMeta:c})};return e.forEach((i,o)=>{var s;if(i.path===""||!((s=i.path)!=null&&s.includes("?")))a(i,o);else for(let l of uV(i.path))a(i,o,l)}),t}function uV(e){let t=e.split("/");if(t.length===0)return[];let[r,...n]=t,a=r.endsWith("?"),i=r.replace(/\?$/,"");if(n.length===0)return a?[i,""]:[i];let o=uV(n.join("/")),s=[];return s.push(...o.map(l=>l===""?i:[i,l].join("/"))),a&&s.push(...o),s.map(l=>e.startsWith("/")&&l===""?"/":l)}function rK(e){e.sort((t,r)=>t.score!==r.score?r.score-t.score:cK(t.routesMeta.map(n=>n.childrenIndex),r.routesMeta.map(n=>n.childrenIndex)))}const nK=/^:[\w-]+$/,aK=3,iK=2,oK=1,sK=10,lK=-2,AE=e=>e==="*";function uK(e,t){let r=e.split("/"),n=r.length;return r.some(AE)&&(n+=lK),t&&(n+=iK),r.filter(a=>!AE(a)).reduce((a,i)=>a+(nK.test(i)?aK:i===""?oK:sK),n)}function cK(e,t){return e.length===t.length&&e.slice(0,-1).every((n,a)=>n===t[a])?e[e.length-1]-t[t.length-1]:0}function hK(e,t,r){let{routesMeta:n}=e,a={},i="/",o=[];for(let s=0;s{let{paramName:d,isOptional:v}=c;if(d==="*"){let m=s[h]||"";o=i.slice(0,i.length-m.length).replace(/(.)\/+$/,"$1")}const g=s[h];return v&&!g?u[d]=void 0:u[d]=(g||"").replace(/%2F/g,"/"),u},{}),pathname:i,pathnameBase:o,pattern:e}}function dK(e,t,r){t===void 0&&(t=!1),r===void 0&&(r=!0),hk(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let n=[],a="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,s,l)=>(n.push({paramName:s,isOptional:l!=null}),l?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(n.push({paramName:"*"}),a+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?a+="\\/*$":e!==""&&e!=="/"&&(a+="(?:(?=\\/|$))"),[new RegExp(a,t?void 0:"i"),n]}function vK(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return hk(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function fk(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let r=t.endsWith("/")?t.length-1:t.length,n=e.charAt(r);return n&&n!=="/"?null:e.slice(r)||"/"}const pK=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,gK=e=>pK.test(e);function mK(e,t){t===void 0&&(t="/");let{pathname:r,search:n="",hash:a=""}=typeof e=="string"?Dd(e):e,i;if(r)if(gK(r))i=r;else{if(r.includes("//")){let o=r;r=cV(r),hk(!1,"Pathnames cannot have embedded double slashes - normalizing "+(o+" -> "+r))}r.startsWith("/")?i=NE(r.substring(1),"/"):i=NE(r,t)}else i=t;return{pathname:i,search:_K(n),hash:bK(a)}}function NE(e,t){let r=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(a=>{a===".."?r.length>1&&r.pop():a!=="."&&r.push(a)}),r.length>1?r.join("/"):"/"}function hS(e,t,r,n){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(n)+"]. Please separate it out to the ")+("`to."+r+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function yK(e){return e.filter((t,r)=>r===0||t.route.path&&t.route.path.length>0)}function dk(e,t){let r=yK(e);return t?r.map((n,a)=>a===r.length-1?n.pathname:n.pathnameBase):r.map(n=>n.pathnameBase)}function vk(e,t,r,n){n===void 0&&(n=!1);let a;typeof e=="string"?a=Dd(e):(a=Tg({},e),Tr(!a.pathname||!a.pathname.includes("?"),hS("?","pathname","search",a)),Tr(!a.pathname||!a.pathname.includes("#"),hS("#","pathname","hash",a)),Tr(!a.search||!a.search.includes("#"),hS("#","search","hash",a)));let i=e===""||a.pathname==="",o=i?"/":a.pathname,s;if(o==null)s=r;else{let h=t.length-1;if(!n&&o.startsWith("..")){let d=o.split("/");for(;d[0]==="..";)d.shift(),h-=1;a.pathname=d.join("/")}s=h>=0?t[h]:"/"}let l=mK(a,s),u=o&&o!=="/"&&o.endsWith("/"),c=(i||o===".")&&r.endsWith("/");return!l.pathname.endsWith("/")&&(u||c)&&(l.pathname+="/"),l}const cV=e=>e.replace(/\/\/+/g,"/"),Ml=e=>cV(e.join("/")),xK=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),_K=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,bK=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function wK(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const hV=["post","put","patch","delete"];new Set(hV);const SK=["get",...hV];new Set(SK);/** - * React Router v6.30.4 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function Mg(){return Mg=Object.assign?Object.assign.bind():function(e){for(var t=1;t{s.current=!0}),O.useCallback(function(u,c){if(c===void 0&&(c={}),!s.current)return;if(typeof u=="number"){n.go(u);return}let h=vk(u,JSON.parse(o),i,c.relative==="path");e==null&&t!=="/"&&(h.pathname=h.pathname==="/"?t:Ml([t,h.pathname])),(c.replace?n.replace:n.push)(h,c.state,c)},[t,n,o,i,e])}function vV(e,t){let{relative:r}=t===void 0?{}:t,{future:n}=O.useContext(Jl),{matches:a}=O.useContext(Ql),{pathname:i}=eu(),o=JSON.stringify(dk(a,n.v7_relativeSplatPath));return O.useMemo(()=>vk(e,JSON.parse(o),i,r==="path"),[e,o,i,r])}function AK(e,t){return NK(e,t)}function NK(e,t,r,n){Ed()||Tr(!1);let{navigator:a}=O.useContext(Jl),{matches:i}=O.useContext(Ql),o=i[i.length-1],s=o?o.params:{};o&&o.pathname;let l=o?o.pathnameBase:"/";o&&o.route;let u=eu(),c;if(t){var h;let y=typeof t=="string"?Dd(t):t;l==="/"||(h=y.pathname)!=null&&h.startsWith(l)||Tr(!1),c=y}else c=u;let d=c.pathname||"/",v=d;if(l!=="/"){let y=l.replace(/^\//,"").split("/");v="/"+d.replace(/^\//,"").split("/").slice(y.length).join("/")}let g=eK(e,{pathname:v}),m=DK(g&&g.map(y=>Object.assign({},y,{params:Object.assign({},s,y.params),pathname:Ml([l,a.encodeLocation?a.encodeLocation(y.pathname).pathname:y.pathname]),pathnameBase:y.pathnameBase==="/"?l:Ml([l,a.encodeLocation?a.encodeLocation(y.pathnameBase).pathname:y.pathnameBase])})),i,r,n);return t&&m?O.createElement(c1.Provider,{value:{location:Mg({pathname:"/",search:"",hash:"",state:null,key:"default"},c),navigationType:cl.Pop}},m):m}function kK(){let e=OK(),t=wK(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),r=e instanceof Error?e.stack:null,a={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return O.createElement(O.Fragment,null,O.createElement("h2",null,"Unexpected Application Error!"),O.createElement("h3",{style:{fontStyle:"italic"}},t),r?O.createElement("pre",{style:a},r):null,null)}const LK=O.createElement(kK,null);class IK extends O.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,r){return r.location!==t.location||r.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:r.error,location:r.location,revalidation:t.revalidation||r.revalidation}}componentDidCatch(t,r){console.error("React Router caught the following error during render",t,r)}render(){return this.state.error!==void 0?O.createElement(Ql.Provider,{value:this.props.routeContext},O.createElement(fV.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function PK(e){let{routeContext:t,match:r,children:n}=e,a=O.useContext(pk);return a&&a.static&&a.staticContext&&(r.route.errorElement||r.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=r.route.id),O.createElement(Ql.Provider,{value:t},n)}function DK(e,t,r,n){var a;if(t===void 0&&(t=[]),r===void 0&&(r=null),n===void 0&&(n=null),e==null){var i;if(!r)return null;if(r.errors)e=r.matches;else if((i=n)!=null&&i.v7_partialHydration&&t.length===0&&!r.initialized&&r.matches.length>0)e=r.matches;else return null}let o=e,s=(a=r)==null?void 0:a.errors;if(s!=null){let c=o.findIndex(h=>h.route.id&&(s==null?void 0:s[h.route.id])!==void 0);c>=0||Tr(!1),o=o.slice(0,Math.min(o.length,c+1))}let l=!1,u=-1;if(r&&n&&n.v7_partialHydration)for(let c=0;c=0?o=o.slice(0,u+1):o=[o[0]];break}}}return o.reduceRight((c,h,d)=>{let v,g=!1,m=null,y=null;r&&(v=s&&h.route.id?s[h.route.id]:void 0,m=h.route.errorElement||LK,l&&(u<0&&d===0?(BK("route-fallback"),g=!0,y=null):u===d&&(g=!0,y=h.route.hydrateFallbackElement||null)));let x=t.concat(o.slice(0,d+1)),_=()=>{let w;return v?w=m:g?w=y:h.route.Component?w=O.createElement(h.route.Component,null):h.route.element?w=h.route.element:w=c,O.createElement(PK,{match:h,routeContext:{outlet:c,matches:x,isDataRoute:r!=null},children:w})};return r&&(h.route.ErrorBoundary||h.route.errorElement||d===0)?O.createElement(IK,{location:r.location,revalidation:r.revalidation,component:m,error:v,children:_(),routeContext:{outlet:null,matches:x,isDataRoute:!0}}):_()},null)}var pV=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(pV||{}),gV=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(gV||{});function EK(e){let t=O.useContext(pk);return t||Tr(!1),t}function jK(e){let t=O.useContext(CK);return t||Tr(!1),t}function RK(e){let t=O.useContext(Ql);return t||Tr(!1),t}function mV(e){let t=RK(),r=t.matches[t.matches.length-1];return r.route.id||Tr(!1),r.route.id}function OK(){var e;let t=O.useContext(fV),r=jK(),n=mV();return t!==void 0?t:(e=r.errors)==null?void 0:e[n]}function zK(){let{router:e}=EK(pV.UseNavigateStable),t=mV(gV.UseNavigateStable),r=O.useRef(!1);return dV(()=>{r.current=!0}),O.useCallback(function(a,i){i===void 0&&(i={}),r.current&&(typeof a=="number"?e.navigate(a):e.navigate(a,Mg({fromRouteId:t},i)))},[e,t])}const kE={};function BK(e,t,r){kE[e]||(kE[e]=!0)}function FK(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function VK(e){let{to:t,replace:r,state:n,relative:a}=e;Ed()||Tr(!1);let{future:i,static:o}=O.useContext(Jl),{matches:s}=O.useContext(Ql),{pathname:l}=eu(),u=wm(),c=vk(t,dk(s,i.v7_relativeSplatPath),l,a==="path"),h=JSON.stringify(c);return O.useEffect(()=>u(JSON.parse(h),{replace:r,state:n,relative:a}),[u,h,a,r,n]),null}function Jt(e){Tr(!1)}function GK(e){let{basename:t="/",children:r=null,location:n,navigationType:a=cl.Pop,navigator:i,static:o=!1,future:s}=e;Ed()&&Tr(!1);let l=t.replace(/^\/*/,"/"),u=O.useMemo(()=>({basename:l,navigator:i,static:o,future:Mg({v7_relativeSplatPath:!1},s)}),[l,s,i,o]);typeof n=="string"&&(n=Dd(n));let{pathname:c="/",search:h="",hash:d="",state:v=null,key:g="default"}=n,m=O.useMemo(()=>{let y=fk(c,l);return y==null?null:{location:{pathname:y,search:h,hash:d,state:v,key:g},navigationType:a}},[l,c,h,d,v,g,a]);return m==null?null:O.createElement(Jl.Provider,{value:u},O.createElement(c1.Provider,{children:r,value:m}))}function HK(e){let{children:t,location:r}=e;return AK(X2(t),r)}new Promise(()=>{});function X2(e,t){t===void 0&&(t=[]);let r=[];return O.Children.forEach(e,(n,a)=>{if(!O.isValidElement(n))return;let i=[...t,a];if(n.type===O.Fragment){r.push.apply(r,X2(n.props.children,i));return}n.type!==Jt&&Tr(!1),!n.props.index||!n.props.children||Tr(!1);let o={id:n.props.id||i.join("-"),caseSensitive:n.props.caseSensitive,element:n.props.element,Component:n.props.Component,index:n.props.index,path:n.props.path,loader:n.props.loader,action:n.props.action,errorElement:n.props.errorElement,ErrorBoundary:n.props.ErrorBoundary,hasErrorBoundary:n.props.ErrorBoundary!=null||n.props.errorElement!=null,shouldRevalidate:n.props.shouldRevalidate,handle:n.props.handle,lazy:n.props.lazy};n.props.children&&(o.children=X2(n.props.children,i)),r.push(o)}),r}/** - * React Router DOM v6.30.4 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function q2(){return q2=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let n=e[r];return t.concat(Array.isArray(n)?n.map(a=>[r,a]):[[r,n]])},[]))}function $K(e,t){let r=K2(e);return t&&t.forEach((n,a)=>{r.has(a)||t.getAll(a).forEach(i=>{r.append(a,i)})}),r}const YK=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],XK="6";try{window.__reactRouterVersion=XK}catch{}const qK="startTransition",LE=FY[qK];function KK(e){let{basename:t,children:r,future:n,window:a}=e,i=O.useRef();i.current==null&&(i.current=Kq({window:a,v5Compat:!0}));let o=i.current,[s,l]=O.useState({action:o.action,location:o.location}),{v7_startTransition:u}=n||{},c=O.useCallback(h=>{u&&LE?LE(()=>l(h)):l(h)},[l,u]);return O.useLayoutEffect(()=>o.listen(c),[o,c]),O.useEffect(()=>FK(n),[n]),O.createElement(GK,{basename:t,children:r,location:s.location,navigationType:s.action,navigator:o,future:n})}const JK=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",QK=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Vf=O.forwardRef(function(t,r){let{onClick:n,relative:a,reloadDocument:i,replace:o,state:s,target:l,to:u,preventScrollReset:c,viewTransition:h}=t,d=UK(t,YK),{basename:v}=O.useContext(Jl),g,m=!1;if(typeof u=="string"&&QK.test(u)&&(g=u,JK))try{let w=new URL(window.location.href),S=u.startsWith("//")?new URL(w.protocol+u):new URL(u),C=fk(S.pathname,v);S.origin===w.origin&&C!=null?u=C+S.search+S.hash:m=!0}catch{}let y=TK(u,{relative:a}),x=eJ(u,{replace:o,state:s,target:l,preventScrollReset:c,relative:a,viewTransition:h});function _(w){n&&n(w),w.defaultPrevented||x(w)}return O.createElement("a",q2({},d,{href:g||y,onClick:m||i?n:_,ref:r,target:l}))});var IE;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(IE||(IE={}));var PE;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(PE||(PE={}));function eJ(e,t){let{target:r,replace:n,state:a,preventScrollReset:i,relative:o,viewTransition:s}=t===void 0?{}:t,l=wm(),u=eu(),c=vV(e,{relative:o});return O.useCallback(h=>{if(ZK(h,r)){h.preventDefault();let d=n!==void 0?n:C_(u)===C_(c);l(e,{replace:d,state:a,preventScrollReset:i,relative:o,viewTransition:s})}},[u,l,c,n,a,r,e,i,o,s])}function tJ(e){let t=O.useRef(K2(e)),r=O.useRef(!1),n=eu(),a=O.useMemo(()=>$K(n.search,r.current?null:t.current),[n.search]),i=wm(),o=O.useCallback((s,l)=>{const u=K2(typeof s=="function"?s(a):s);r.current=!0,i("?"+u,l)},[i,a]);return[a,o]}const yV=O.createContext({dirty:!1,setDirty:()=>{}});function rJ({children:e}){const[t,r]=O.useState(!1);return O.useEffect(()=>{const n=a=>{t&&(a.preventDefault(),a.returnValue="")};return window.addEventListener("beforeunload",n),()=>window.removeEventListener("beforeunload",n)},[t]),f.jsx(yV.Provider,{value:{dirty:t,setDirty:r},children:e})}function Ri(){return O.useContext(yV)}/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const nJ=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),xV=(...e)=>e.filter((t,r,n)=>!!t&&n.indexOf(t)===r).join(" ");/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */var aJ={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const iJ=O.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:r=2,absoluteStrokeWidth:n,className:a="",children:i,iconNode:o,...s},l)=>O.createElement("svg",{ref:l,...aJ,width:t,height:t,stroke:e,strokeWidth:n?Number(r)*24/Number(t):r,className:xV("lucide",a),...s},[...o.map(([u,c])=>O.createElement(u,c)),...Array.isArray(i)?i:[i]]));/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Ge=(e,t)=>{const r=O.forwardRef(({className:n,...a},i)=>O.createElement(iJ,{ref:i,iconNode:t,className:xV(`lucide-${nJ(e)}`,n),...a}));return r.displayName=`${e}`,r};/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Mo=Ge("Activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const DE=Ge("BellRing",[["path",{d:"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9",key:"1qo2s2"}],["path",{d:"M10.3 21a1.94 1.94 0 0 0 3.4 0",key:"qgo35s"}],["path",{d:"M4 2C2.8 3.7 2 5.7 2 8",key:"tap9e0"}],["path",{d:"M22 8c0-2.3-.8-4.3-2-6",key:"5bb3ad"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const _V=Ge("Bell",[["path",{d:"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9",key:"1qo2s2"}],["path",{d:"M10.3 21a1.94 1.94 0 0 0 3.4 0",key:"qgo35s"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const bV=Ge("BookOpen",[["path",{d:"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z",key:"vv98re"}],["path",{d:"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z",key:"1cyq3y"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const gk=Ge("Bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const oJ=Ge("Brain",[["path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",key:"l5xja"}],["path",{d:"M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z",key:"ep3f8r"}],["path",{d:"M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4",key:"1p4c4q"}],["path",{d:"M17.599 6.5a3 3 0 0 0 .399-1.375",key:"tmeiqw"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M19.938 10.5a4 4 0 0 1 .585.396",key:"1qfode"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M19.967 17.484A4 4 0 0 1 18 18",key:"159ez6"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const EE=Ge("Calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const h1=Ge("Car",[["path",{d:"M19 17h2c.6 0 1-.4 1-1v-3c0-.9-.7-1.7-1.5-1.9C18.7 10.6 16 10 16 10s-1.3-1.4-2.2-2.3c-.5-.4-1.1-.7-1.8-.7H5c-.6 0-1.1.4-1.4.9l-1.4 2.9A3.7 3.7 0 0 0 2 12v4c0 .6.4 1 1 1h2",key:"5owen"}],["circle",{cx:"7",cy:"17",r:"2",key:"u2ysq9"}],["path",{d:"M9 17h6",key:"r8uit2"}],["circle",{cx:"17",cy:"17",r:"2",key:"axvx0g"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Jr=Ge("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Sm=Ge("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const nh=Ge("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const sJ=Ge("ChevronUp",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ah=Ge("CircleAlert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const mk=Ge("CircleCheckBig",[["path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14",key:"g774vq"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const jE=Ge("CircleMinus",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 12h8",key:"1wcyev"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const wV=Ge("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const lJ=Ge("CloudLightning",[["path",{d:"M6 16.326A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 .5 8.973",key:"1cez44"}],["path",{d:"m13 12-3 5h4l-3 5",key:"1t22er"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ih=Ge("Cloud",[["path",{d:"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z",key:"p7xjir"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const uJ=Ge("Code",[["polyline",{points:"16 18 22 12 16 6",key:"z7tu5w"}],["polyline",{points:"8 6 2 12 8 18",key:"1eg1df"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const SV=Ge("Construction",[["rect",{x:"2",y:"6",width:"20",height:"8",rx:"1",key:"1estib"}],["path",{d:"M17 14v7",key:"7m2elx"}],["path",{d:"M7 14v7",key:"1cm7wv"}],["path",{d:"M17 3v3",key:"1v4jwn"}],["path",{d:"M7 3v3",key:"7o6guu"}],["path",{d:"M10 14 2.3 6.3",key:"1023jk"}],["path",{d:"m14 6 7.7 7.7",key:"1s8pl2"}],["path",{d:"m8 6 8 8",key:"hl96qh"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const CV=Ge("Cpu",[["rect",{width:"16",height:"16",x:"4",y:"4",rx:"2",key:"14l7u7"}],["rect",{width:"6",height:"6",x:"9",y:"9",rx:"1",key:"5aljv4"}],["path",{d:"M15 2v2",key:"13l42r"}],["path",{d:"M15 20v2",key:"15mkzm"}],["path",{d:"M2 15h2",key:"1gxd5l"}],["path",{d:"M2 9h2",key:"1bbxkp"}],["path",{d:"M20 15h2",key:"19e6y8"}],["path",{d:"M20 9h2",key:"19tzq7"}],["path",{d:"M9 2v2",key:"165o2o"}],["path",{d:"M9 20v2",key:"i2bqo8"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const cJ=Ge("Crosshair",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"22",x2:"18",y1:"12",y2:"12",key:"l9bcsi"}],["line",{x1:"6",x2:"2",y1:"12",y2:"12",key:"13hhkx"}],["line",{x1:"12",x2:"12",y1:"6",y2:"2",key:"10w3f3"}],["line",{x1:"12",x2:"12",y1:"22",y2:"18",key:"15g9kq"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const TV=Ge("Database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const f1=Ge("Droplets",[["path",{d:"M7 16.3c2.2 0 4-1.83 4-4.05 0-1.16-.57-2.26-1.71-3.19S7.29 6.75 7 5.3c-.29 1.45-1.14 2.84-2.29 3.76S3 11.1 3 12.25c0 2.22 1.8 4.05 4 4.05z",key:"1ptgy4"}],["path",{d:"M12.56 6.6A10.97 10.97 0 0 0 14 3.02c.5 2.5 2 4.9 4 6.5s3 3.5 3 5.5a6.98 6.98 0 0 1-11.91 4.97",key:"1sl1rz"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const kc=Ge("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const yk=Ge("EyeOff",[["path",{d:"M9.88 9.88a3 3 0 1 0 4.24 4.24",key:"1jxqfv"}],["path",{d:"M10.73 5.08A10.43 10.43 0 0 1 12 5c7 0 10 7 10 7a13.16 13.16 0 0 1-1.67 2.68",key:"9wicm4"}],["path",{d:"M6.61 6.61A13.526 13.526 0 0 0 2 12s3 7 10 7a9.74 9.74 0 0 0 5.39-1.61",key:"1jreej"}],["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Cm=Ge("Eye",[["path",{d:"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z",key:"rwhkz3"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const MV=Ge("Filter",[["polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3",key:"1yg77f"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Tm=Ge("Flame",[["path",{d:"M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z",key:"96xj49"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const hJ=Ge("History",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const d1=Ge("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const AV=Ge("Layers",[["path",{d:"m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z",key:"8b97xw"}],["path",{d:"m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65",key:"dd6zsq"}],["path",{d:"m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65",key:"ep9fru"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const NV=Ge("LayoutDashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const jd=Ge("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Rd=Ge("MapPin",[["path",{d:"M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z",key:"2oe9fu"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const kV=Ge("Map",[["path",{d:"M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z",key:"169xi5"}],["path",{d:"M15 5.764v15",key:"1pn4in"}],["path",{d:"M9 3.236v15",key:"1uimfh"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const xk=Ge("MessageSquare",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const sd=Ge("Mountain",[["path",{d:"m8 3 4 8 5-5 5 15H2L8 3z",key:"otkl63"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const fJ=Ge("MousePointer",[["path",{d:"m3 3 7.07 16.97 2.51-7.39 7.39-2.51L3 3z",key:"y2ucgo"}],["path",{d:"m13 13 6 6",key:"1nhxnf"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const _k=Ge("Network",[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Ti=Ge("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const oi=Ge("Radio",[["path",{d:"M4.9 19.1C1 15.2 1 8.8 4.9 4.9",key:"1vaf9d"}],["path",{d:"M7.8 16.2c-2.3-2.3-2.3-6.1 0-8.5",key:"u1ii0m"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"M16.2 7.8c2.3 2.3 2.3 6.1 0 8.5",key:"1j5fej"}],["path",{d:"M19.1 4.9C23 8.8 23 15.1 19.1 19",key:"10b0cb"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const zo=Ge("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const oa=Ge("RotateCcw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const dJ=Ge("RotateCw",[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const v1=Ge("Satellite",[["path",{d:"M13 7 9 3 5 7l4 4",key:"vyckw6"}],["path",{d:"m17 11 4 4-4 4-4-4",key:"rchckc"}],["path",{d:"m8 12 4 4 6-6-4-4Z",key:"1sshf7"}],["path",{d:"m16 8 3-3",key:"x428zp"}],["path",{d:"M9 21a6 6 0 0 0-6-6",key:"1iajcf"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const sa=Ge("Save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const p1=Ge("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const LV=Ge("Send",[["path",{d:"m22 2-7 20-4-9-9-4Z",key:"1q3vgg"}],["path",{d:"M22 2 11 13",key:"nzbqef"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const vJ=Ge("Server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const IV=Ge("Settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Ag=Ge("SlidersVertical",[["line",{x1:"4",x2:"4",y1:"21",y2:"14",key:"1p332r"}],["line",{x1:"4",x2:"4",y1:"10",y2:"3",key:"gb41h5"}],["line",{x1:"12",x2:"12",y1:"21",y2:"12",key:"hf2csr"}],["line",{x1:"12",x2:"12",y1:"8",y2:"3",key:"1kfi7u"}],["line",{x1:"20",x2:"20",y1:"21",y2:"16",key:"1lhrwl"}],["line",{x1:"20",x2:"20",y1:"12",y2:"3",key:"16vvfq"}],["line",{x1:"2",x2:"6",y1:"14",y2:"14",key:"1uebub"}],["line",{x1:"10",x2:"14",y1:"8",y2:"8",key:"1yglbp"}],["line",{x1:"18",x2:"22",y1:"16",y2:"16",key:"1jxqpz"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const PV=Ge("Snowflake",[["line",{x1:"2",x2:"22",y1:"12",y2:"12",key:"1dnqot"}],["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"m20 16-4-4 4-4",key:"rquw4f"}],["path",{d:"m4 8 4 4-4 4",key:"12s3z9"}],["path",{d:"m16 4-4 4-4-4",key:"1tumq1"}],["path",{d:"m8 20 4-4 4 4",key:"9p200w"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const DV=Ge("Sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const EV=Ge("Terminal",[["polyline",{points:"4 17 10 11 4 5",key:"akl6gq"}],["line",{x1:"12",x2:"20",y1:"19",y2:"19",key:"q2wloq"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const po=Ge("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Ao=Ge("TriangleAlert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const jV=Ge("Users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const pJ=Ge("Wifi",[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M2 8.82a15 15 0 0 1 20 0",key:"dnpr2z"}],["path",{d:"M5 12.859a10 10 0 0 1 14 0",key:"1x1e6c"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const tu=Ge("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);/** - * @license lucide-react v0.383.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const J2=Ge("Zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);async function gn(e){const t=await fetch(e);if(!t.ok)throw new Error(`API error: ${t.status} ${t.statusText}`);return t.json()}async function gJ(){return gn("/api/serial-ports")}async function RE(){return gn("/api/status")}async function mJ(){return gn("/api/health")}async function yJ(){return gn("/api/nodes")}async function xJ(){return gn("/api/edges")}async function _J(){return gn("/api/sources")}async function go(e){const t=e?`/api/config/${e}`:"/api/config";return gn(t)}async function Mi(e,t){const r=await fetch(`/api/config/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!r.ok)throw new Error(`API error: ${r.status} ${r.statusText}`);return r.json()}async function bJ(){return gn("/api/config/generic_sources")}async function wJ(e){const t=await fetch("/api/config/generic_sources",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),r=await t.json();if(!t.ok)throw new Error(r.detail||`Save failed (${t.status})`);return r}async function SJ(e,t,r){return(await fetch("/api/generic-sources/preview",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:e,items_path:t,headers:r})})).json()}async function CJ(){return gn("/api/alerts/active")}async function TJ(e=100,t,r){const n=new URLSearchParams;return n.set("limit",e.toString()),t&&t!=="all"&&n.set("transport",t),r&&r!=="all"&&n.set("category",r),gn(`/api/activity?${n.toString()}`)}async function RV(){return gn("/api/env/status")}async function OV(){return gn("/api/env/active")}async function MJ(){return gn("/api/env/swpc")}async function AJ(){return gn("/api/regions")}async function zV(){return gn("/api/meshcore/channels")}async function NJ(){return gn("/api/meshcore/contacts")}async function OE(){return gn("/api/meshcore/self")}async function kJ(){const e=await fetch("/api/meshcore/advert",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({})});if(!e.ok)throw new Error(`API error: ${e.status} ${e.statusText}`);return e.json()}async function BV(e){const t=await fetch("/api/mesh/test-send",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw new Error(`API error: ${t.status} ${t.statusText}`);return t.json()}function FV(){const[e,t]=O.useState(!1),[r,n]=O.useState(null),[a,i]=O.useState(null),[o,s]=O.useState(null),l=O.useRef(null),u=O.useRef(null),c=O.useRef(1e3),h=O.useCallback(()=>{var g;if(((g=l.current)==null?void 0:g.readyState)===WebSocket.OPEN)return;const v=`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/ws/live`;try{const m=new WebSocket(v);l.current=m,m.onopen=()=>{t(!0),c.current=1e3},m.onmessage=x=>{try{const _=JSON.parse(x.data);switch(s(_),_.type){case"health_update":n(_.data);break;case"alert_fired":i(_.data);break}}catch(_){console.error("Failed to parse WebSocket message:",_)}},m.onclose=()=>{t(!1),l.current=null;const x=Math.min(c.current,3e4);u.current=window.setTimeout(()=>{c.current=Math.min(x*2,3e4),h()},x)},m.onerror=()=>{m.close()};const y=setInterval(()=>{m.readyState===WebSocket.OPEN&&m.send("ping")},3e4);m.addEventListener("close",()=>{clearInterval(y)})}catch(m){console.error("Failed to create WebSocket:",m)}},[]);return O.useEffect(()=>(h(),()=>{u.current&&clearTimeout(u.current),l.current&&l.current.close()}),[h]),{connected:e,lastHealth:r,lastAlert:a,lastMessage:o}}const VV=O.createContext(null);function LJ(){const e=O.useContext(VV);if(!e)throw new Error("useToast must be used within a ToastProvider");return e}function IJ(e){switch(e==null?void 0:e.toLowerCase()){case"critical":case"emergency":return{bg:"bg-red-500/10",border:"border-red-500",icon:ah,iconColor:"text-red-500"};case"warning":return{bg:"bg-amber-500/10",border:"border-amber-500",icon:Ao,iconColor:"text-amber-500"};default:return{bg:"bg-sky-400/10",border:"border-sky-400",icon:d1,iconColor:"text-sky-400"}}}function PJ({toast:e,onDismiss:t,onNavigate:r}){const n=IJ(e.alert.severity),a=n.icon;return O.useEffect(()=>{const i=setTimeout(t,8e3);return()=>clearTimeout(i)},[t]),f.jsx("div",{className:`${n.bg} border ${n.border} shadow-lg overflow-hidden animate-slide-in cursor-pointer`,onClick:r,role:"alert",children:f.jsxs("div",{className:"flex items-start gap-3 p-4",children:[f.jsx("div",{className:`w-1 self-stretch -ml-4 -my-4 ${n.border.replace("border","bg")}`}),f.jsx(a,{size:18,className:n.iconColor}),f.jsxs("div",{className:"flex-1 min-w-0 pr-2",children:[f.jsx("div",{className:"text-sm font-medium text-slate-200 mb-0.5",children:e.alert.type.replace(/_/g," ").replace(/\b\w/g,i=>i.toUpperCase())}),f.jsx("div",{className:"text-sm text-slate-300 line-clamp-2",children:e.alert.message})]}),f.jsx("button",{onClick:i=>{i.stopPropagation(),t()},className:"text-slate-400 hover:text-slate-200 transition-colors",children:f.jsx(tu,{size:16})})]})})}function DJ({children:e}){const[t,r]=O.useState([]),n=wm(),a=O.useCallback(s=>{const l=`${Date.now()}-${Math.random().toString(36).substr(2,9)}`;r(u=>[...u,{id:l,alert:s}])},[]),i=O.useCallback(s=>{r(l=>l.filter(u=>u.id!==s))},[]),o=O.useCallback(()=>{n("/alerts")},[n]);return f.jsxs(VV.Provider,{value:{addToast:a},children:[e,f.jsx("div",{className:"fixed bottom-4 right-4 z-50 flex flex-col gap-2 max-w-sm w-full pointer-events-none",children:t.map(s=>f.jsx("div",{className:"pointer-events-auto",children:f.jsx(PJ,{toast:s,onDismiss:()=>i(s.id),onNavigate:o})},s.id))})]})}const g1="meshai.restartRequired.v1";function zE(){try{const e=localStorage.getItem(g1);if(!e)return{required:!1,changedKeys:[],ts:0};const t=JSON.parse(e);return{required:!!t.required,changedKeys:Array.isArray(t.changedKeys)?t.changedKeys:[],ts:Number(t.ts)||0}}catch{return{required:!1,changedKeys:[],ts:0}}}function ru(e){const t={required:!0,changedKeys:[...new Set(e)],ts:Date.now()};localStorage.setItem(g1,JSON.stringify(t)),window.dispatchEvent(new CustomEvent("meshai:restart-required",{detail:t}))}function BE(){localStorage.removeItem(g1),window.dispatchEvent(new CustomEvent("meshai:restart-required",{detail:{required:!1,changedKeys:[],ts:0}}))}function EJ(){const[e,t]=O.useState(()=>zE()),[r,n]=O.useState(!1),[a,i]=O.useState(null);O.useEffect(()=>{const l=c=>{const h=c.detail;t(h)},u=c=>{c.key===g1&&t(zE())};return window.addEventListener("meshai:restart-required",l),window.addEventListener("storage",u),()=>{window.removeEventListener("meshai:restart-required",l),window.removeEventListener("storage",u)}},[]);const o=O.useCallback(async()=>{n(!0),i(null);try{const l=await fetch("/api/restart",{method:"POST"});if(!l.ok&&l.status!==202){const u=await l.json().catch(()=>({}));throw new Error(u.detail||`HTTP ${l.status}`)}BE()}catch(l){i(String(l)),n(!1)}},[]),s=O.useCallback(()=>{BE()},[]);return e.required?f.jsxs("div",{className:"bg-yellow-900/40 border-b border-yellow-700 text-yellow-100 px-4 py-2 text-sm flex items-center gap-3",children:[f.jsx(Ao,{className:"w-4 h-4 flex-shrink-0 text-yellow-300"}),f.jsxs("div",{className:"flex-1 min-w-0",children:[f.jsx("strong",{children:"Restart required"}),e.changedKeys.length>0&&f.jsxs("span",{className:"text-yellow-300 ml-2",children:["(",e.changedKeys.length," key",e.changedKeys.length===1?"":"s",":"," ",f.jsxs("span",{className:"font-mono text-xs",children:[e.changedKeys.slice(0,3).join(", "),e.changedKeys.length>3?", …":""]}),")"]}),f.jsxs("span",{className:"ml-2 text-yellow-300/80",children:["for these changes to take effect. Click ",f.jsx("strong",{children:"Restart now"})," — it restarts the bot process in place (a few seconds; the dashboard briefly reconnects), NOT the container. Until then the runtime keeps its boot-time configuration. Restart-required keys include transport connections and anything under Config → environmental (feed_source, central URL), the LLM backend swap, and the dispatcher cold-start grace window. Other keys take effect on the next handler call."]}),a&&f.jsx("div",{className:"text-red-400 text-xs mt-1",children:a})]}),f.jsxs("button",{onClick:o,disabled:r,className:"flex items-center gap-1 px-3 py-1 bg-yellow-700 hover:bg-yellow-600 disabled:opacity-50 rounded text-white text-xs",children:[f.jsx(dJ,{className:`w-3 h-3 ${r?"animate-spin":""}`}),r?"Restarting…":"Restart now"]}),f.jsx("button",{onClick:s,className:"text-yellow-300 hover:text-white px-1",title:"Dismiss (you can still restart later)",children:f.jsx(tu,{className:"w-4 h-4"})})]}):null}const GV=[{header:"General",items:[{path:"/",label:"Dashboard",icon:NV},{path:"/config",label:"Settings",icon:IV},{path:"/environment",label:"Data Feeds",icon:ih},{path:"/activity",label:"Activity Log",icon:Mo},{path:"/places",label:"Places",icon:Rd},{path:"/coverage",label:"Coverage",icon:kV}]},{header:"Meshtastic",items:[{path:"/meshtastic/connection",label:"Connection",icon:pJ},{path:"/notifications",label:"Routing",icon:DE},{path:"/meshtastic/scheduled",label:"Scheduled Broadcasts",icon:EE},{path:"/meshtastic/nodes",label:"Nodes & Health",icon:Mo},{path:"/meshtastic/danger-zones",label:"Danger Zones",icon:Ao}]},{header:"MeshCore",items:[{path:"/meshcore/connection",label:"Connection",icon:_k},{path:"/meshcore/routing",label:"Routing",icon:DE},{path:"/meshcore/scheduled",label:"Scheduled Broadcasts",icon:EE},{path:"/meshcore/contacts",label:"Contacts & Companion",icon:jV},{path:"/meshcore/danger-zones",label:"Danger Zones",icon:Ao}]},{header:"Documentation",items:[{path:"/reference",label:"Reference",icon:bV}]}],jJ=[{path:"/adapter-config",label:"Adapter Config",icon:Ag},{path:"/gauge-sites",label:"Gauge Sites",icon:f1},{path:"/town-anchors",label:"Town Anchors",icon:Rd},{path:"/mesh",label:"Mesh",icon:oi},{path:"/meshtastic/sources",label:"Sources",icon:AV},{path:"/meshcore/companion",label:"Companion",icon:gk}],FE=[...GV.flatMap(e=>e.items),...jJ],VE={"/places":"Places","/meshtastic/scheduled":"Scheduled Broadcasts","/meshcore/scheduled":"Scheduled Broadcasts","/meshtastic/nodes":"Nodes & Health","/meshtastic/danger-zones":"Danger Zones","/meshcore/danger-zones":"Danger Zones","/meshcore/contacts":"Contacts & Companion","/meshcore/companion":"Contacts & Companion"};function RJ(e){const t=Math.floor(e/86400),r=Math.floor(e%86400/3600),n=Math.floor(e%3600/60);return t>0?`${t}d ${r}h`:r>0?`${r}h ${n}m`:`${n}m`}function OJ(e,t,r,n){const a=e.path.includes("?")?`${t}${r}`===e.path:t===e.path,i=e.icon;return f.jsxs(Vf,{to:e.path,onClick:o=>n(e.path,o),className:`flex items-center gap-3 px-5 py-3 text-sm font-sans transition-colors relative ${a?"text-white bg-transparent":"text-[#777] hover:text-white hover:bg-bg-hover"}`,children:[a&&f.jsx("div",{className:"absolute right-0 top-0 bottom-0 w-[2px] bg-[#f59e0b]"}),f.jsx(i,{size:16}),e.label]},e.path)}function zJ(e){const t=e.split("?")[0];if(VE[t])return VE[t];const r=FE.find(a=>a.path===e);if(r)return r.label;const n=FE.find(a=>a.path.split("?")[0]===t);return(n==null?void 0:n.label)||"Dashboard"}function BJ({children:e}){var y;const t=eu(),r=wm(),{dirty:n,setDirty:a}=Ri(),{connected:i,lastAlert:o}=FV(),{addToast:s}=LJ(),[l,u]=O.useState(null),[c,h]=O.useState(null),d=(x,_)=>{n&&(_.preventDefault(),window.confirm("You have unsaved changes. Discard them?")&&(a(!1),r(x)))};O.useEffect(()=>{if(o){const x=`${o.type}-${o.message}-${o.timestamp}`;x!==c&&(h(x),s(o))}},[o,c,s]);const[v,g]=O.useState(new Date);O.useEffect(()=>{RE().then(u).catch(console.error);const x=setInterval(()=>{RE().then(u).catch(console.error)},3e4);return()=>clearInterval(x)},[]),O.useEffect(()=>{const x=setInterval(()=>g(new Date),1e3);return()=>clearInterval(x)},[]);const m=v.toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"});return f.jsxs("div",{className:"flex h-screen overflow-hidden bg-bg text-white",children:[f.jsxs("aside",{className:"w-[220px] flex-shrink-0 bg-bg-card border-r border-border flex flex-col overflow-y-auto",children:[f.jsxs("div",{className:"bg-[#000000] px-4 py-3 border-b border-border flex flex-col items-center",children:[f.jsx("img",{src:"/meshai-logo.png",alt:"MeshAI",className:"w-[190px] block"}),f.jsxs("div",{className:"font-mono text-[10px] text-[#555] mt-1 self-start",children:["v",(l==null?void 0:l.version)||"..."]})]}),f.jsx("nav",{className:"flex-1 py-4",children:GV.map(x=>f.jsxs("div",{className:"mt-4",children:[f.jsx("div",{className:"px-5 pt-2 pb-1 text-[10px] font-sans font-semibold uppercase tracking-wider text-[#555]",children:x.header}),x.items.map(_=>OJ(_,t.pathname,t.search,d))]},x.header))}),f.jsxs("div",{className:"p-5 border-t border-border",children:[f.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[f.jsx("div",{className:`w-2 h-2 rounded-full ${l!=null&&l.connected?"bg-green-500":"bg-red-500"}`}),f.jsx("span",{className:"text-xs font-sans text-[#777]",children:l!=null&&l.connected?"Connected":"Disconnected"})]}),f.jsxs("div",{className:"text-xs font-mono text-[#666] truncate",children:[(y=l==null?void 0:l.connection_type)==null?void 0:y.toUpperCase(),": ",l==null?void 0:l.connection_target]}),f.jsxs("div",{className:"text-xs font-sans text-[#666] mt-1",children:["Uptime: ",f.jsx("span",{className:"font-mono",children:l?RJ(l.uptime_seconds):"..."})]})]})]}),f.jsxs("div",{className:"flex-1 flex flex-col overflow-hidden",children:[f.jsxs("header",{className:"h-14 flex-shrink-0 border-b border-border bg-bg-card flex items-center justify-between px-6",children:[f.jsx("h1",{className:"text-lg font-sans font-semibold text-white",children:zJ(t.pathname+t.search)}),f.jsxs("div",{className:"flex items-center gap-6",children:[f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx("div",{className:`w-2 h-2 rounded-full ${i?"bg-accent animate-pulse-slow":"bg-[#333]"}`}),f.jsx("span",{className:"text-xs font-sans text-[#777]",children:i?"Live":"Offline"})]}),f.jsxs("div",{className:"text-sm font-mono text-[#666]",children:[m," MT"]})]})]}),f.jsxs("main",{className:"flex-1 overflow-y-auto p-6",children:[f.jsx(EJ,{}),e]})]})]})}function FJ({health:e}){const t=e.score,r=e.tier,n=2*Math.PI*45,a=t/100*n;return f.jsx("div",{className:"flex flex-col items-center",children:f.jsxs("svg",{width:"140",height:"140",viewBox:"0 0 100 100",children:[f.jsx("circle",{cx:"50",cy:"50",r:"45",fill:"none",stroke:"#1e1e1e",strokeWidth:"8"}),f.jsx("circle",{cx:"50",cy:"50",r:"45",fill:"none",stroke:"#f59e0b",strokeWidth:"8",strokeLinecap:"round",strokeDasharray:n,strokeDashoffset:n-a,transform:"rotate(-90 50 50)",className:"transition-all duration-500"}),f.jsx("text",{x:"50",y:"46",textAnchor:"middle",className:"font-mono font-bold",style:{fontSize:"24px",fill:"#f59e0b"},children:t.toFixed(1)}),f.jsx("text",{x:"50",y:"62",textAnchor:"middle",className:"font-sans",style:{fontSize:"10px",fill:"#444"},children:r})]})})}function jv({label:e,value:t}){const r=n=>n>66?"bg-accent":n>33?"bg-accent-dim":"bg-red-500";return f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx("div",{className:"w-24 text-xs font-sans text-[#777] truncate",children:e}),f.jsx("div",{className:"flex-1 h-2 bg-border overflow-hidden",children:f.jsx("div",{className:`h-full ${r(t)} transition-all duration-300`,style:{width:`${t}%`}})}),f.jsx("div",{className:"w-12 text-right text-xs font-mono text-[#e0e0e0]",children:t.toFixed(1)})]})}function VJ({alert:e}){const r=(a=>{switch(a.toLowerCase()){case"critical":case"emergency":case"immediate":return{bg:"bg-red-500/5",border:"border-red-500",icon:ah,iconColor:"text-red-500"};case"warning":case"priority":return{bg:"bg-accent/5",border:"border-accent",icon:Ao,iconColor:"text-accent"};case"routine":default:return{bg:"bg-[#161616]",border:"border-[#333]",icon:d1,iconColor:"text-[#777]"}}})(e.severity),n=r.icon;return f.jsxs("div",{className:`p-3 ${r.bg} border-l-2 ${r.border} flex items-start gap-3`,children:[f.jsx(n,{size:16,className:r.iconColor}),f.jsxs("div",{className:"flex-1 min-w-0",children:[f.jsx("div",{className:"text-sm font-sans font-medium text-white",children:e.message}),f.jsx("div",{className:"text-[10px] font-mono text-[#666] mt-1",children:e.timestamp||"Just now"})]})]})}function GJ({source:e}){const t=()=>e.is_loaded?e.last_error?"bg-accent":"bg-green-500":"bg-red-500";return f.jsxs("div",{className:"flex items-center gap-3 p-2 bg-bg-hover",children:[f.jsx("div",{className:`w-2 h-2 rounded-full ${t()}`}),f.jsxs("div",{className:"flex-1 min-w-0",children:[f.jsx("div",{className:"text-sm font-sans font-medium text-white truncate",children:e.name}),f.jsxs("div",{className:"text-[10px] font-sans text-[#666]",children:[e.node_count," nodes · ",e.type]})]})]})}function Uy({icon:e,label:t,value:r,subvalue:n,accent:a}){return f.jsxs("div",{className:"bg-bg-card border border-border p-3",style:a?{borderTopWidth:"2px",borderTopColor:a}:void 0,children:[f.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[f.jsx(e,{size:14,style:{color:a||"#333"}}),f.jsx("span",{className:"text-[9px] font-sans uppercase tracking-widest text-[#666]",children:t})]}),f.jsx("div",{className:"font-mono text-xl",style:{color:a||"#e0e0e0"},children:r}),n&&f.jsx("div",{className:"text-[9px] font-sans mt-1 text-[#666]",children:n})]})}function HJ({bandConditions:e}){const t=i=>{switch(i){case"Good":return"bg-green-500";case"Fair":return"bg-accent";case"Poor":return"bg-red-500";default:return"bg-[#333]"}},r=i=>{switch(i){case"Good":return"text-green-500";case"Fair":return"text-accent";case"Poor":return"text-red-500";default:return"text-[#666]"}},n=i=>i?i.includes("Night")?"🌙":"☀️":"";if(!(e!=null&&e.enabled)||!(e!=null&&e.ratings))return f.jsxs("div",{className:"bg-bg-card border border-border p-4 flex flex-col h-full",children:[f.jsxs("h2",{className:"text-[10px] font-sans uppercase tracking-widest text-[#666] mb-3 flex items-center gap-2",children:[f.jsx(J2,{size:14}),"RF Propagation"]}),f.jsx("div",{className:"flex-1 flex items-center justify-center",children:f.jsx("div",{className:"text-center py-8",children:f.jsx("div",{className:"font-sans text-[#666]",children:"No band conditions data"})})})]});const a=["80-40m","30-20m","17-15m","12-10m"];return f.jsxs("div",{className:"bg-bg-card border border-border p-4 flex flex-col h-full",children:[f.jsxs("h2",{className:"text-[10px] font-sans uppercase tracking-widest text-[#666] mb-3 flex items-center gap-2",children:[f.jsx(J2,{size:14}),"RF Propagation"]}),f.jsxs("div",{className:"text-center mb-3",children:[f.jsx("span",{className:"text-lg",children:n(e.slot_label)}),f.jsx("span",{className:"text-sm font-sans text-[#777] ml-2",children:e.slot_label})]}),f.jsx("div",{className:"text-[10px] font-sans uppercase tracking-widest text-[#666] mb-2 flex items-center gap-1",children:"📡 Band Conditions"}),f.jsx("div",{className:"space-y-1.5",children:a.map(i=>{var s;const o=(s=e.ratings)==null?void 0:s[i];return f.jsxs("div",{className:"flex items-center justify-between px-2 py-1.5 bg-bg-hover",children:[f.jsx("span",{className:"text-sm font-mono text-[#777]",children:i}),f.jsxs("span",{className:"text-sm flex items-center gap-2",children:[f.jsx("span",{className:`inline-block w-2 h-2 rounded-full ${t(o)}`}),f.jsx("span",{className:`font-sans ${r(o)}`,children:o||"—"})]})]},i)})}),f.jsxs("div",{className:"mt-auto pt-3 border-t border-border text-[10px] font-sans text-[#666]",children:[e.source&&f.jsx("span",{children:e.source==="swpc_local"?"SWPC":"HamQSL"}),e.sent_at&&f.jsx("span",{className:"font-mono ml-2",children:new Date(e.sent_at*1e3).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})})]})]})}const GE=[{code:"wam",label:"Western North America"},{code:"eam",label:"Eastern North America"},{code:"enp",label:"Eastern North Pacific"},{code:"esp",label:"Eastern South Pacific"},{code:"gca",label:"Gulf-Caribbean"},{code:"nsa",label:"Northern South America"},{code:"csa",label:"Central South America"},{code:"sat",label:"South Atlantic"},{code:"nat",label:"North Atlantic"},{code:"ena",label:"Eastern North Atlantic"},{code:"nwe",label:"Northwestern Europe"},{code:"eur",label:"Europe"},{code:"eeu",label:"Eastern Europe"},{code:"saf",label:"South Africa"},{code:"mde",label:"Middle East"},{code:"nca",label:"North Central Asia"},{code:"ind",label:"Indian Ocean"},{code:"sea",label:"Southeast Asia"},{code:"fea",label:"Far East"},{code:"esi",label:"Eastern Siberia"},{code:"anz",label:"Australia & New Zealand"},{code:"oce",label:"Oceania"},{code:"wnp",label:"Western North Pacific"}];function UJ(){var c;const[e,t]=O.useState("wam"),[r,n]=O.useState(!1),[a,i]=O.useState(!1);O.useEffect(()=>{fetch("/api/adapter-config/dashboard/tropo_region").then(h=>h.ok?h.json():null).then(h=>{h!=null&&h.value&&typeof h.value=="string"&&t(h.value)}).catch(()=>{})},[]);const o=h=>{t(h),n(!1),i(!0),fetch("/api/adapter-config/dashboard/tropo_region",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({value:h})}).catch(()=>{}).finally(()=>i(!1))},s=new Date().toISOString().slice(0,10).replace(/-/g,""),l=`https://www.dxinfocentre.com/tr_map/fcst/${e}006.png?v${s}`,u=((c=GE.find(h=>h.code===e))==null?void 0:c.label)||e;return f.jsxs("div",{className:"bg-bg-card border border-border p-4 flex flex-col",children:[f.jsxs("div",{className:"flex items-center justify-between mb-3",children:[f.jsxs("h2",{className:"text-[10px] font-sans uppercase tracking-widest text-[#666] flex items-center gap-2",children:[f.jsx(oi,{size:14}),"Tropo Forecast (Hepburn)"]}),f.jsxs("div",{className:"flex items-center gap-2",children:[a&&f.jsx("span",{className:"text-xs font-sans text-[#666]",children:"saving..."}),f.jsx("select",{value:e,onChange:h=>o(h.target.value),className:"text-xs font-sans bg-bg-hover border border-border px-2 py-1 min-h-[36px] text-[#e0e0e0] focus:outline-none focus:border-accent",children:GE.map(h=>f.jsx("option",{value:h.code,children:h.label},h.code))})]})]}),f.jsxs("div",{className:"text-xs font-sans text-[#666] mb-2",children:[u," — 6-day forecast"]}),r?f.jsx("div",{className:"flex items-center justify-center h-48 text-[#666] text-sm font-sans",children:"Failed to load forecast image"}):f.jsx("img",{src:l,alt:`Hepburn tropo forecast — ${u}`,className:"w-full border border-border",onError:()=>n(!0)}),f.jsxs("div",{className:"text-[10px] font-sans text-[#666] mt-2",children:["Source: ",f.jsx("a",{href:"https://www.dxinfocentre.com/tropo.html",target:"_blank",rel:"noopener noreferrer",className:"text-sky-400 hover:text-sky-300",children:"dxinfocentre.com"})]})]})}const WJ={nws:{icon:ih,color:"text-sky-400",label:"NWS"},swpc:{icon:DV,color:"text-accent",label:"SWPC"},ducting:{icon:oi,color:"text-sky-500",label:"Tropo"},nifc:{icon:Tm,color:"text-red-500",label:"NIFC"},firms:{icon:v1,color:"text-red-400",label:"FIRMS"},avalanche:{icon:sd,color:"text-[#777]",label:"Avy"},usgs:{icon:f1,color:"text-sky-400",label:"USGS"},traffic:{icon:h1,color:"text-[#777]",label:"Traffic"},roads:{icon:SV,color:"text-accent-dim",label:"511"}},HE={routine:"bg-[#1e1e1e] text-[#777] border-[#222]",priority:"bg-accent/5 text-accent border-accent/30",immediate:"bg-red-500/5 text-red-500 border-red-500/30",info:"bg-sky-400/10 text-sky-400 border-sky-400/30",advisory:"bg-sky-400/10 text-sky-400 border-sky-400/30",moderate:"bg-accent/5 text-accent-dim border-accent-dim/30",watch:"bg-accent/5 text-accent border-accent/30",warning:"bg-accent/5 text-accent border-accent/30",severe:"bg-red-500/5 text-red-500 border-red-500/30",extreme:"bg-red-500/5 text-red-500 border-red-500/30",critical:"bg-red-500/5 text-red-500 border-red-500/30",emergency:"bg-red-500/5 text-red-500 border-red-500/30"};function ZJ({event:e,isLocal:t}){var h;const r=WJ[e.source]||{icon:d1,color:"text-[#777]",label:e.source},n=r.icon,a=HE[(h=e.severity)==null?void 0:h.toLowerCase()]||HE.info,i=d=>{const v=new Date(d*1e3),m=new Date().getTime()-v.getTime(),y=Math.floor(m/6e4);return y<1?"just now":y<60?`${y}m ago`:y<1440?`${Math.floor(y/60)}h ago`:v.toLocaleDateString(void 0,{month:"short",day:"numeric"})},o=e.event_type,s=e.area_desc,l=e.description;let u=e.headline;if(o&&s){const d=s.replace(/ County/g,"").split(";")[0];u=`${o} — ${d}`}else o&&(u=o);const c=l?l.split(". ")[0]:null;return f.jsxs("div",{className:`flex items-start gap-2 py-2 border-b border-border/50 last:border-0 ${t?"border-l-2 border-l-accent pl-2 -ml-2":""}`,children:[f.jsx(n,{size:14,className:`mt-0.5 flex-shrink-0 ${r.color}`}),f.jsxs("div",{className:"flex-1 min-w-0",children:[f.jsxs("div",{className:"flex items-center gap-2 mb-0.5",children:[f.jsx("span",{className:`px-1.5 py-0.5 text-[10px] font-sans uppercase tracking-wide border ${a}`,children:e.severity||"info"}),t&&f.jsx("span",{className:"px-1.5 py-0.5 text-[10px] font-sans uppercase tracking-wide bg-accent/5 text-accent border border-accent/30",title:"LOCAL: event coordinates fall inside the mesh's monitoring area (per the adapter's bbox config on Environment) — operators in this region are directly affected.",children:"LOCAL"}),f.jsx("span",{className:"text-[10px] font-sans text-[#666]",children:r.label}),f.jsx("span",{className:"text-[10px] font-mono text-[#666] ml-auto",children:i(e.fetched_at)})]}),f.jsx("div",{className:`text-sm font-sans font-medium truncate ${t?"text-white":"text-[#e0e0e0]"}`,children:u}),c&&f.jsx("div",{className:"text-[10px] font-sans text-[#666] truncate mt-0.5",children:c})]})]})}function $J({events:e,envStatus:t,embedded:r}){const n={immediate:0,priority:1,routine:2},a=O.useMemo(()=>{const s=new Set;return e.filter(u=>u.event_id?s.has(u.event_id)?!1:(s.add(u.event_id),!0):!0).sort((u,c)=>{var m,y;const h=u.is_local?1:0,d=c.is_local?1:0;if(h!==d)return d-h;const v=n[((m=u.severity)==null?void 0:m.toLowerCase())||"routine"]??2,g=n[((y=c.severity)==null?void 0:y.toLowerCase())||"routine"]??2;return v!==g?v-g:(c.fetched_at||0)-(u.fetched_at||0)})},[e]),i=O.useMemo(()=>{if(!(t!=null&&t.feeds))return null;const s=t.feeds.length,l=t.feeds.filter(d=>d.is_loaded&&!d.last_error).length,u=t.feeds.filter(d=>d.last_error).map(d=>d.source),c=Math.max(...t.feeds.map(d=>d.last_fetch||0)),h=c?Math.floor(Date.now()/1e3-c):null;return{total:s,active:l,errors:u,secAgo:h}},[t]),o=f.jsxs(f.Fragment,{children:[a.length>0?f.jsx("div",{className:"flex-1 overflow-y-auto max-h-80 pr-1 -mr-1",children:a.map((s,l)=>f.jsx(ZJ,{event:s,isLocal:s.is_local},s.event_id||l))}):f.jsx("div",{className:"flex-1 flex items-center justify-center",children:f.jsxs("div",{className:"text-center py-8",children:[f.jsx(mk,{size:24,className:"text-green-500 mx-auto mb-2"}),f.jsx("div",{className:"font-sans text-[#777]",children:"No active events"}),f.jsx("div",{className:"text-[10px] font-sans text-[#666]",children:"All clear"})]})}),i&&f.jsxs("div",{className:`text-[10px] font-sans mt-3 pt-3 border-t border-border ${i.errors.length>0?"text-red-500":"text-[#666]"}`,children:[f.jsx("span",{className:"font-mono",children:i.active})," of ",f.jsx("span",{className:"font-mono",children:i.total})," feeds active",i.secAgo!==null&&f.jsxs(f.Fragment,{children:[" · Last update ",f.jsxs("span",{className:"font-mono",children:[i.secAgo,"s"]})," ago"]}),i.errors.length>0&&f.jsxs("span",{className:"text-red-500",children:[" · ",i.errors.join(", "),": error"]})]})]});return r?f.jsx("div",{className:"flex flex-col h-full",children:o}):f.jsxs("div",{className:"bg-bg-card border border-border p-4 flex flex-col h-full",children:[f.jsxs("h2",{className:"text-[10px] font-sans uppercase tracking-widest text-[#666] mb-3 flex items-center gap-2",children:[f.jsx(Mo,{size:14}),"Live Event Feed"]}),o]})}function YJ(){var S,C,M,A,I,k;const[e,t]=O.useState(null),[r,n]=O.useState([]),[a,i]=O.useState([]),[o,s]=O.useState(null),[l,u]=O.useState([]),[c,h]=O.useState(null),[d,v]=O.useState("alerts"),[g,m]=O.useState(!0),[y,x]=O.useState(null),{lastHealth:_,lastMessage:w}=FV();return O.useEffect(()=>{Promise.all([mJ(),_J(),CJ(),RV(),OV().catch(()=>[]),MJ().catch(()=>null)]).then(([P,D,z,E,B,H])=>{t(P),n(D),i(z),s(E),u(B),h(H),m(!1),document.title="Dashboard — MeshAI"}).catch(P=>{x(P.message),m(!1),document.title="Dashboard — MeshAI"})},[]),O.useEffect(()=>{_&&t(_)},[_]),O.useEffect(()=>{(w==null?void 0:w.type)==="env_update"&&w.event&&u(P=>{const D=w.event,z=P.filter(E=>E.event_id!==D.event_id);return[D,...z].slice(0,100)})},[w]),g?f.jsx("div",{className:"flex items-center justify-center h-64",children:f.jsx("div",{className:"font-sans text-[#777]",children:"Loading..."})}):y?f.jsx("div",{className:"flex items-center justify-center h-64",children:f.jsxs("div",{className:"font-sans text-red-500",children:["Error: ",y]})}):f.jsxs("div",{className:"space-y-4",children:[f.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-4",children:[f.jsxs("div",{className:"bg-bg-card border border-border p-4",children:[f.jsx("h2",{className:"text-[10px] font-sans uppercase tracking-widest text-[#666] mb-3",children:"Mesh Health"}),e&&f.jsxs(f.Fragment,{children:[f.jsx(FJ,{health:e}),f.jsxs("div",{className:"mt-4 space-y-2",children:[f.jsx(jv,{label:"Infrastructure",value:((S=e.pillars)==null?void 0:S.infrastructure)??0}),f.jsx(jv,{label:"Utilization",value:((C=e.pillars)==null?void 0:C.utilization)??0}),f.jsx(jv,{label:"Coverage",value:((M=e.pillars)==null?void 0:M.coverage)??0}),f.jsx(jv,{label:"Behavior",value:((A=e.pillars)==null?void 0:A.behavior)??0}),f.jsx(jv,{label:"Power",value:((I=e.pillars)==null?void 0:I.power)??0})]})]})]}),f.jsxs("div",{className:"lg:col-span-2 space-y-4",children:[f.jsxs("div",{className:"bg-bg-card border border-border p-4",children:[f.jsxs("div",{className:"flex items-center gap-4 mb-3 border-b border-border",children:[f.jsx("button",{onClick:()=>v("alerts"),className:`py-2.5 -mb-px text-[10px] font-sans uppercase tracking-widest transition-colors border-b ${d==="alerts"?"border-accent text-white":"border-transparent text-[#777]"}`,children:"Active Alerts"}),f.jsx("button",{onClick:()=>v("feed"),className:`py-2.5 -mb-px text-[10px] font-sans uppercase tracking-widest transition-colors border-b ${d==="feed"?"border-accent text-white":"border-transparent text-[#777]"}`,children:"Event Feed"})]}),d==="alerts"?f.jsx(f.Fragment,{children:a.length>0?f.jsx("div",{className:"space-y-2 max-h-48 overflow-y-auto",children:a.map((P,D)=>f.jsx(VJ,{alert:P},D))}):(()=>{const P=l.filter(D=>D.severity==="immediate"||D.severity==="priority").sort((D,z)=>{const E={immediate:0,priority:1},B=(E[D.severity]??2)-(E[z.severity]??2);return B!==0?B:(z.fetched_at||0)-(D.fetched_at||0)}).slice(0,5);return P.length>0?f.jsx("div",{className:"space-y-2 max-h-48 overflow-y-auto",children:P.map((D,z)=>{const E=D.severity==="immediate"?{bg:"bg-red-500/5",border:"border-red-500",icon:ah,iconColor:"text-red-500"}:{bg:"bg-accent/5",border:"border-accent",icon:Ao,iconColor:"text-accent"},B=E.icon;return f.jsxs("div",{className:`p-3 ${E.bg} border-l-2 ${E.border} flex items-start gap-3`,children:[f.jsx(B,{size:16,className:E.iconColor}),f.jsxs("div",{className:"flex-1 min-w-0",children:[f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx("span",{className:"px-1.5 py-0.5 text-[10px] font-sans uppercase tracking-wide bg-[#1e1e1e] text-[#777] border border-[#222]",children:"ENV"}),f.jsx("span",{className:"text-[10px] font-sans text-[#666]",children:D.severity})]}),f.jsx("div",{className:"text-sm font-sans font-medium text-white mt-1",children:D.headline}),f.jsxs("div",{className:"text-[10px] font-mono text-[#666] mt-1",children:[D.source," · ",new Date(D.fetched_at*1e3).toLocaleTimeString()]})]})]},D.event_id||z)})}):f.jsxs("div",{className:"flex items-center gap-2 text-[#777] py-4",children:[f.jsx(mk,{size:16,className:"text-green-500"}),f.jsx("span",{className:"font-sans",children:"No active alerts"})]})})()}):f.jsx($J,{events:l,envStatus:o,embedded:!0})]}),f.jsxs("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-3",children:[f.jsx(Uy,{icon:oi,label:"Nodes Online",value:(e==null?void 0:e.total_nodes)||0,accent:"#22c55e",subvalue:`${(e==null?void 0:e.unlocated_count)||0} unlocated`}),f.jsx(Uy,{icon:CV,label:"Infrastructure",value:`${(e==null?void 0:e.infra_online)||0}/${(e==null?void 0:e.infra_total)||0}`,accent:"#38bdf8",subvalue:(e==null?void 0:e.infra_online)===(e==null?void 0:e.infra_total)?"All online":"Some offline"}),f.jsx(Uy,{icon:Mo,label:"Utilization",value:`${((k=e==null?void 0:e.util_percent)==null?void 0:k.toFixed(1))||0}%`,accent:"#f59e0b",subvalue:`${(e==null?void 0:e.flagged_nodes)||0} flagged`}),f.jsx(Uy,{icon:Rd,label:"Regions",value:(e==null?void 0:e.total_regions)||0,accent:"#333333",subvalue:`${(e==null?void 0:e.battery_warnings)||0} battery warnings`})]})]})]}),f.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-4",children:[f.jsxs("div",{className:"bg-bg-card border border-border p-4",children:[f.jsxs("h2",{className:"text-[10px] font-sans uppercase tracking-widest text-[#666] mb-3",children:["Mesh Sources (",f.jsx("span",{className:"font-mono",children:r.length}),")"]}),r.length>0?f.jsx("div",{className:"space-y-1",children:r.map((P,D)=>f.jsx(GJ,{source:P},D))}):f.jsx("div",{className:"font-sans text-[#666] py-4",children:"No sources configured"})]}),f.jsx(HJ,{bandConditions:c}),f.jsx(UJ,{})]})]})}/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */var Q2=function(e,t){return Q2=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,n){r.__proto__=n}||function(r,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(r[a]=n[a])},Q2(e,t)};function X(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");Q2(e,t);function r(){this.constructor=e}e.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)}var Up=function(){return Up=Object.assign||function(t){for(var r,n=1,a=arguments.length;n0&&i[i.length-1])&&(u[0]===6||u[0]===2)){r=0;continue}if(u[0]===3&&(!i||u[1]>i[0]&&u[1]"u"&&typeof self<"u"?ot.worker=!0:!ot.hasGlobalWindow||"Deno"in window||typeof navigator<"u"&&typeof navigator.userAgent=="string"&&navigator.userAgent.indexOf("Node.js")>-1?(ot.node=!0,ot.svgSupported=!0):JJ(navigator.userAgent,ot);function JJ(e,t){var r=t.browser,n=e.match(/Firefox\/([\d.]+)/),a=e.match(/MSIE\s([\d.]+)/)||e.match(/Trident\/.+?rv:(([\d.]+))/),i=e.match(/Edge?\/([\d.]+)/),o=/micromessenger/i.test(e);n&&(r.firefox=!0,r.version=n[1]),a&&(r.ie=!0,r.version=a[1]),i&&(r.edge=!0,r.version=i[1],r.newEdge=+i[1].split(".")[0]>18),o&&(r.weChat=!0),t.svgSupported=typeof SVGRect<"u",t.touchEventsSupported="ontouchstart"in window&&!r.ie&&!r.edge,t.pointerEventsSupported="onpointerdown"in window&&(r.edge||r.ie&&+r.version>=11);var s=t.domSupported=typeof document<"u";if(s){var l=document.documentElement.style;t.transform3dSupported=(r.ie&&"transition"in l||r.edge||"WebKitCSSMatrix"in window&&"m11"in new WebKitCSSMatrix||"MozPerspective"in l)&&!("OTransition"in l),t.transformSupported=t.transform3dSupported||r.ie&&+r.version>=9}}var bk=12,HV="sans-serif",Ss=bk+"px "+HV,QJ=20,eQ=100,tQ="007LLmW'55;N0500LLLLLLLLLL00NNNLzWW\\\\WQb\\0FWLg\\bWb\\WQ\\WrWWQ000CL5LLFLL0LL**F*gLLLL5F0LF\\FFF5.5N";function rQ(e){var t={};if(typeof JSON>"u")return t;for(var r=0;r=0)s=o*r.length;else for(var l=0;l=sQ&&(fS=0),fS++}function y1(){for(var e=[],t=0;t>1)%2;s.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",n[l]+":0",a[u]+":0",n[1-l]+":auto",a[1-u]+":auto",""].join("!important;"),e.appendChild(o),r.push(o)}return t.clearMarkers=function(){j(r,function(c){c.parentNode&&c.parentNode.removeChild(c)})},r}function MQ(e,t,r){for(var n=r?"invTrans":"trans",a=t[n],i=t.srcCoords,o=[],s=[],l=!0,u=0;u<4;u++){var c=e[u].getBoundingClientRect(),h=2*u,d=c.left,v=c.top;o.push(d,v),l=l&&i&&d===i[h]&&v===i[h+1],s.push(e[u].offsetLeft,e[u].offsetTop)}return l&&a?a:(t.srcCoords=o,t[n]=r?$E(s,o):$E(o,s))}function eG(e){return e.nodeName.toUpperCase()==="CANVAS"}var AQ=/([&<>"'])/g,NQ={"&":"&","<":"<",">":">",'"':""","'":"'"};function Tn(e){return e==null?"":(e+"").replace(AQ,function(t,r){return NQ[r]})}var kQ=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,vS=[],LQ=ot.browser.firefox&&+ot.browser.version.split(".")[0]<39;function aM(e,t,r,n){return r=r||{},n?YE(e,t,r):LQ&&t.layerX!=null&&t.layerX!==t.offsetX?(r.zrX=t.layerX,r.zrY=t.layerY):t.offsetX!=null?(r.zrX=t.offsetX,r.zrY=t.offsetY):YE(e,t,r),r}function YE(e,t,r){if(ot.domSupported&&e.getBoundingClientRect){var n=t.clientX,a=t.clientY;if(eG(e)){var i=e.getBoundingClientRect();r.zrX=n-i.left,r.zrY=a-i.top;return}else if(nM(vS,e,n,a)){r.zrX=vS[0],r.zrY=vS[1];return}}r.zrX=r.zrY=0}function Nk(e){return e||window.event}function Fa(e,t,r){if(t=Nk(t),t.zrX!=null)return t;var n=t.type,a=n&&n.indexOf("touch")>=0;if(a){var o=n!=="touchend"?t.targetTouches[0]:t.changedTouches[0];o&&aM(e,o,t,r)}else{aM(e,t,t,r);var i=IQ(t);t.zrDelta=i?i/120:-(t.detail||0)/3}var s=t.button;return t.which==null&&s!==void 0&&kQ.test(t.type)&&(t.which=s&1?1:s&2?3:s&4?2:0),t}function IQ(e){var t=e.wheelDelta;if(t)return t;var r=e.deltaX,n=e.deltaY;if(r==null||n==null)return t;var a=Math.abs(n!==0?n:r),i=n>0?-1:n<0?1:r>0?-1:1;return 3*a*i}function iM(e,t,r,n){e.addEventListener(t,r,n)}function PQ(e,t,r,n){e.removeEventListener(t,r,n)}var Cs=function(e){e.preventDefault(),e.stopPropagation(),e.cancelBubble=!0};function XE(e){return e.which===2||e.which===3}var DQ=function(){function e(){this._track=[]}return e.prototype.recognize=function(t,r,n){return this._doTrack(t,r,n),this._recognize(t)},e.prototype.clear=function(){return this._track.length=0,this},e.prototype._doTrack=function(t,r,n){var a=t.touches;if(a){for(var i={points:[],touches:[],target:r,event:t},o=0,s=a.length;o1&&n&&n.length>1){var i=qE(n)/qE(a);!isFinite(i)&&(i=1),t.pinchScale=i;var o=EQ(n);return t.pinchX=o[0],t.pinchY=o[1],{type:"pinch",target:e[0].target,event:t}}}}};function $t(){return[1,0,0,1,0,0]}function sh(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e[4]=0,e[5]=0,e}function Bl(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e}function Ca(e,t,r){var n=t[0]*r[0]+t[2]*r[1],a=t[1]*r[0]+t[3]*r[1],i=t[0]*r[2]+t[2]*r[3],o=t[1]*r[2]+t[3]*r[3],s=t[0]*r[4]+t[2]*r[5]+t[4],l=t[1]*r[4]+t[3]*r[5]+t[5];return e[0]=n,e[1]=a,e[2]=i,e[3]=o,e[4]=s,e[5]=l,e}function Pi(e,t,r){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4]+r[0],e[5]=t[5]+r[1],e}function js(e,t,r,n){n===void 0&&(n=[0,0]);var a=t[0],i=t[2],o=t[4],s=t[1],l=t[3],u=t[5],c=Math.sin(r),h=Math.cos(r);return e[0]=a*h+s*c,e[1]=-a*c+s*h,e[2]=i*h+l*c,e[3]=-i*c+h*l,e[4]=h*(o-n[0])+c*(u-n[1])+n[0],e[5]=h*(u-n[1])-c*(o-n[0])+n[1],e}function b1(e,t,r){var n=r[0],a=r[1];return e[0]=t[0]*n,e[1]=t[1]*a,e[2]=t[2]*n,e[3]=t[3]*a,e[4]=t[4]*n,e[5]=t[5]*a,e}function Ma(e,t){var r=t[0],n=t[2],a=t[4],i=t[1],o=t[3],s=t[5],l=r*o-i*n;return l?(l=1/l,e[0]=o*l,e[1]=-i*l,e[2]=-n*l,e[3]=r*l,e[4]=(n*s-o*a)*l,e[5]=(i*a-r*s)*l,e):null}function tG(e){var t=$t();return Bl(t,e),t}const jQ=Object.freeze(Object.defineProperty({__proto__:null,clone:tG,copy:Bl,create:$t,identity:sh,invert:Ma,mul:Ca,rotate:js,scale:b1,translate:Pi},Symbol.toStringTag,{value:"Module"}));var Pe=function(){function e(t,r){this.x=t||0,this.y=r||0}return e.prototype.copy=function(t){return this.x=t.x,this.y=t.y,this},e.prototype.clone=function(){return new e(this.x,this.y)},e.prototype.set=function(t,r){return this.x=t,this.y=r,this},e.prototype.equal=function(t){return t.x===this.x&&t.y===this.y},e.prototype.add=function(t){return this.x+=t.x,this.y+=t.y,this},e.prototype.scale=function(t){this.x*=t,this.y*=t},e.prototype.scaleAndAdd=function(t,r){this.x+=t.x*r,this.y+=t.y*r},e.prototype.sub=function(t){return this.x-=t.x,this.y-=t.y,this},e.prototype.dot=function(t){return this.x*t.x+this.y*t.y},e.prototype.len=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},e.prototype.lenSquare=function(){return this.x*this.x+this.y*this.y},e.prototype.normalize=function(){var t=this.len();return this.x/=t,this.y/=t,this},e.prototype.distance=function(t){var r=this.x-t.x,n=this.y-t.y;return Math.sqrt(r*r+n*n)},e.prototype.distanceSquare=function(t){var r=this.x-t.x,n=this.y-t.y;return r*r+n*n},e.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},e.prototype.transform=function(t){if(t){var r=this.x,n=this.y;return this.x=t[0]*r+t[2]*n+t[4],this.y=t[1]*r+t[3]*n+t[5],this}},e.prototype.toArray=function(t){return t[0]=this.x,t[1]=this.y,t},e.prototype.fromArray=function(t){this.x=t[0],this.y=t[1]},e.set=function(t,r,n){t.x=r,t.y=n},e.copy=function(t,r){t.x=r.x,t.y=r.y},e.len=function(t){return Math.sqrt(t.x*t.x+t.y*t.y)},e.lenSquare=function(t){return t.x*t.x+t.y*t.y},e.dot=function(t,r){return t.x*r.x+t.y*r.y},e.add=function(t,r,n){t.x=r.x+n.x,t.y=r.y+n.y},e.sub=function(t,r,n){t.x=r.x-n.x,t.y=r.y-n.y},e.scale=function(t,r,n){t.x=r.x*n,t.y=r.y*n},e.scaleAndAdd=function(t,r,n,a){t.x=r.x+n.x*a,t.y=r.y+n.y*a},e.lerp=function(t,r,n,a){var i=1-a;t.x=i*r.x+a*n.x,t.y=i*r.y+a*n.y},e}(),oc=Math.min,Nf=Math.max,oM=Math.abs,KE=["x","y"],RQ=["width","height"],pu=new Pe,gu=new Pe,mu=new Pe,yu=new Pe,ma=aG(),bp=ma.minTv,sM=ma.maxTv,Yp=[0,0],ke=function(){function e(t,r,n,a){gS(this,t,r,n,a)}return e.set=function(t,r,n,a,i){return a<0&&(r=r+a,a=-a),i<0&&(n=n+i,i=-i),t.x=r,t.y=n,t.width=a,t.height=i,t},e.prototype.union=function(t){var r=oc(t.x,this.x),n=oc(t.y,this.y);isFinite(this.x)&&isFinite(this.width)?this.width=Nf(t.x+t.width,this.x+this.width)-r:this.width=t.width,isFinite(this.y)&&isFinite(this.height)?this.height=Nf(t.y+t.height,this.y+this.height)-n:this.height=t.height,this.x=r,this.y=n},e.prototype.applyTransform=function(t){e.applyTransform(this,this,t)},e.prototype.calculateTransform=function(t){return rG($t(),this,t)},e.prototype.intersect=function(t,r,n){return e.intersect(this,t,r,n)},e.intersect=function(t,r,n,a){n&&Pe.set(n,0,0);var i=a&&a.outIntersectRect||null,o=a&&a.clamp;if(i&&(i.x=i.y=i.width=i.height=NaN),!t||!r)return!1;t instanceof e||(t=gS(zQ,t.x,t.y,t.width,t.height)),r instanceof e||(r=gS(BQ,r.x,r.y,r.width,r.height));var s=!!n;ma.reset(a,s);var l=ma.touchThreshold,u=t.x+l,c=t.x+t.width-l,h=t.y+l,d=t.y+t.height-l,v=r.x+l,g=r.x+r.width-l,m=r.y+l,y=r.y+r.height-l;if(u>c||h>d||v>g||m>y)return!1;var x=!(c=t.x&&r<=t.x+t.width&&n>=t.y&&n<=t.y+t.height},e.prototype.contain=function(t,r){return e.contain(this,t,r)},e.prototype.clone=function(){return new e(this.x,this.y,this.width,this.height)},e.prototype.copy=function(t){ud(this,t)},e.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},e.prototype.isFinite=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},e.prototype.isZero=function(){return this.width===0||this.height===0},e.create=function(t){return new e(t?t.x:0,t?t.y:0,t?t.width:0,t?t.height:0)},e.copy=function(t,r){return t.x=r.x,t.y=r.y,t.width=r.width,t.height=r.height,t},e.applyTransform=function(t,r,n){if(!n){t!==r&&ud(t,r);return}if(n[1]<1e-5&&n[1]>-1e-5&&n[2]<1e-5&&n[2]>-1e-5){var a=n[0],i=n[3],o=n[4],s=n[5];t.x=r.x*a+o,t.y=r.y*i+s,t.width=r.width*a,t.height=r.height*i,t.width<0&&(t.x+=t.width,t.width=-t.width),t.height<0&&(t.y+=t.height,t.height=-t.height);return}pu.x=mu.x=r.x,pu.y=yu.y=r.y,gu.x=yu.x=r.x+r.width,gu.y=mu.y=r.y+r.height,pu.transform(n),yu.transform(n),gu.transform(n),mu.transform(n),t.x=oc(pu.x,gu.x,mu.x,yu.x),t.y=oc(pu.y,gu.y,mu.y,yu.y);var l=Nf(pu.x,gu.x,mu.x,yu.x),u=Nf(pu.y,gu.y,mu.y,yu.y);t.width=l-t.x,t.height=u-t.y},e.calculateTransform=function(t,r,n){var a=n.width/r.width,i=n.height/r.height;return t=sh(t||[]),Pi(t,t,hs(mS,-r.x,-r.y)),b1(t,t,hs(mS,a,i)),Pi(t,t,hs(mS,n.x,n.y)),t},e}(),w1=ke.create,gS=ke.set,ud=ke.copy,rG=ke.calculateTransform,nG=ke.applyTransform,OQ=ke.contain,zQ=new ke(0,0,0,0),BQ=new ke(0,0,0,0),mS=[];function JE(e,t,r,n,a,i,o,s){var l=oM(t-r),u=oM(n-e),c=oc(l,u),h=KE[a],d=KE[1-a],v=RQ[a];t=u||!ma.bidirectional)&&(bp[h]=-u,bp[d]=0,ma.useDir&&ma.calcDirMTV())))}function aG(){var e=0,t=new Pe,r=new Pe,n={minTv:new Pe,maxTv:new Pe,useDir:!1,dirMinTv:new Pe,touchThreshold:0,bidirectional:!0,negativeSize:!1,reset:function(i,o){n.touchThreshold=0,i&&i.touchThreshold!=null&&(n.touchThreshold=Nf(0,i.touchThreshold)),n.negativeSize=!1,o&&(n.minTv.set(1/0,1/0),n.maxTv.set(0,0),n.useDir=!1,i&&i.direction!=null&&(n.useDir=!0,n.dirMinTv.copy(n.minTv),r.copy(n.minTv),e=i.direction,n.bidirectional=i.bidirectional==null||!!i.bidirectional,n.bidirectional||t.set(Math.cos(e),Math.sin(e))))},calcDirMTV:function(){var i=n.minTv,o=n.dirMinTv,s=i.y*i.y+i.x*i.x,l=Math.sin(e),u=Math.cos(e),c=l*i.y+u*i.x;if(a(c)){a(i.x)&&a(i.y)&&o.set(0,0);return}if(r.x=s*u/c,r.y=s*l/c,a(r.x)&&a(r.y)){o.set(0,0);return}(n.bidirectional||t.dot(r)>0)&&r.len()=0;h--){var d=i[h];d!==a&&!d.ignore&&!d.ignoreCoarsePointer&&(!d.parent||!d.parent.ignoreCoarsePointer)&&(yS.copy(d.getBoundingRect()),d.transform&&yS.applyTransform(d.transform),yS.intersect(c)&&s.push(d))}if(s.length)for(var v=4,g=Math.PI/12,m=Math.PI*2,y=0;y4)return;this._downPoint=null}this.dispatchToElement(i,e,t)}});function UQ(e,t,r){if(e[e.rectHover?"rectContain":"contain"](t,r)){for(var n=e,a=void 0,i=!1;n;){if(n.ignoreClip&&(i=!0),!i){var o=n.getClipPath();if(o&&!o.contain(t,r))return!1}n.silent&&(a=!0);var s=n.__hostTarget;n=s?n.ignoreHostSilent?null:s:n.parent}return a?iG:!0}return!1}function QE(e,t,r,n,a){for(var i=e.length-1;i>=0;i--){var o=e[i],s=void 0;if(o!==a&&!o.ignore&&(s=UQ(o,r,n))&&(!t.topTarget&&(t.topTarget=o),s!==iG)){t.target=o;break}}}function sG(e,t,r){var n=e.painter;return t<0||t>n.getWidth()||r<0||r>n.getHeight()}var lG=32,Ov=7;function WQ(e){for(var t=0;e>=lG;)t|=e&1,e>>=1;return e+t}function ej(e,t,r,n){var a=t+1;if(a===r)return 1;if(n(e[a++],e[t])<0){for(;a=0;)a++;return a-t}function ZQ(e,t,r){for(r--;t>>1,a(i,e[l])<0?s=l:o=l+1;var u=n-o;switch(u){case 3:e[o+3]=e[o+2];case 2:e[o+2]=e[o+1];case 1:e[o+1]=e[o];break;default:for(;u>0;)e[o+u]=e[o+u-1],u--}e[o]=i}}function xS(e,t,r,n,a,i){var o=0,s=0,l=1;if(i(e,t[r+a])>0){for(s=n-a;l0;)o=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s),o+=a,l+=a}else{for(s=a+1;ls&&(l=s);var u=o;o=a-l,l=a-u}for(o++;o>>1);i(e,t[r+c])>0?o=c+1:l=c}return l}function _S(e,t,r,n,a,i){var o=0,s=0,l=1;if(i(e,t[r+a])<0){for(s=a+1;ls&&(l=s);var u=o;o=a-l,l=a-u}else{for(s=n-a;l=0;)o=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s),o+=a,l+=a}for(o++;o>>1);i(e,t[r+c])<0?l=c:o=c+1}return l}function $Q(e,t){var r=Ov,n,a,i=0,o=[];n=[],a=[];function s(v,g){n[i]=v,a[i]=g,i+=1}function l(){for(;i>1;){var v=i-2;if(v>=1&&a[v-1]<=a[v]+a[v+1]||v>=2&&a[v-2]<=a[v]+a[v-1])a[v-1]a[v+1])break;c(v)}}function u(){for(;i>1;){var v=i-2;v>0&&a[v-1]=Ov||A>=Ov);if(I)break;C<0&&(C=0),C+=2}if(r=C,r<1&&(r=1),g===1){for(x=0;x=0;x--)e[M+x]=e[C+x];e[S]=o[w];return}for(var A=r;;){var I=0,k=0,P=!1;do if(t(o[w],e[_])<0){if(e[S--]=e[_--],I++,k=0,--g===0){P=!0;break}}else if(e[S--]=o[w--],k++,I=0,--y===1){P=!0;break}while((I|k)=0;x--)e[M+x]=e[C+x];if(g===0){P=!0;break}}if(e[S--]=o[w--],--y===1){P=!0;break}if(k=y-xS(e[_],o,0,y,y-1,t),k!==0){for(S-=k,w-=k,y-=k,M=S+1,C=w+1,x=0;x=Ov||k>=Ov);if(P)break;A<0&&(A=0),A+=2}if(r=A,r<1&&(r=1),y===1){for(S-=g,_-=g,M=S+1,C=_+1,x=g-1;x>=0;x--)e[M+x]=e[C+x];e[S]=o[w]}else{if(y===0)throw new Error;for(C=S-(y-1),x=0;xs&&(l=s),tj(e,r,r+l,r+i,t),i=l}o.pushRun(r,i),o.mergeRuns(),a-=i,r+=i}while(a!==0);o.forceMergeRuns()}}var Qn=1,wp=2,ff=4,rj=!1;function bS(){rj||(rj=!0,console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors"))}function nj(e,t){return e.zlevel===t.zlevel?e.z===t.z?e.z2-t.z2:e.z-t.z:e.zlevel-t.zlevel}var YQ=function(){function e(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=nj}return e.prototype.traverse=function(t,r){for(var n=0;n=0&&this._roots.splice(a,1)},e.prototype.delAllRoots=function(){this._roots=[],this._displayList=[],this._displayListLen=0},e.prototype.getRoots=function(){return this._roots},e.prototype.dispose=function(){this._displayList=null,this._roots=null},e}(),k_;k_=ot.hasGlobalWindow&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(e){return setTimeout(e,16)};var Xp={linear:function(e){return e},quadraticIn:function(e){return e*e},quadraticOut:function(e){return e*(2-e)},quadraticInOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)},cubicIn:function(e){return e*e*e},cubicOut:function(e){return--e*e*e+1},cubicInOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)},quarticIn:function(e){return e*e*e*e},quarticOut:function(e){return 1- --e*e*e*e},quarticInOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)},quinticIn:function(e){return e*e*e*e*e},quinticOut:function(e){return--e*e*e*e*e+1},quinticInOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)},sinusoidalIn:function(e){return 1-Math.cos(e*Math.PI/2)},sinusoidalOut:function(e){return Math.sin(e*Math.PI/2)},sinusoidalInOut:function(e){return .5*(1-Math.cos(Math.PI*e))},exponentialIn:function(e){return e===0?0:Math.pow(1024,e-1)},exponentialOut:function(e){return e===1?1:1-Math.pow(2,-10*e)},exponentialInOut:function(e){return e===0?0:e===1?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(-Math.pow(2,-10*(e-1))+2)},circularIn:function(e){return 1-Math.sqrt(1-e*e)},circularOut:function(e){return Math.sqrt(1- --e*e)},circularInOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)},elasticIn:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),-(r*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)))},elasticOut:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),r*Math.pow(2,-10*e)*Math.sin((e-t)*(2*Math.PI)/n)+1)},elasticInOut:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),(e*=2)<1?-.5*(r*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)):r*Math.pow(2,-10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)*.5+1)},backIn:function(e){var t=1.70158;return e*e*((t+1)*e-t)},backOut:function(e){var t=1.70158;return--e*e*((t+1)*e+t)+1},backInOut:function(e){var t=2.5949095;return(e*=2)<1?.5*(e*e*((t+1)*e-t)):.5*((e-=2)*e*((t+1)*e+t)+2)},bounceIn:function(e){return 1-Xp.bounceOut(1-e)},bounceOut:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},bounceInOut:function(e){return e<.5?Xp.bounceIn(e*2)*.5:Xp.bounceOut(e*2-1)*.5+.5}},Zy=Math.pow,Nl=Math.sqrt,L_=1e-8,uG=1e-4,aj=Nl(3),$y=1/3,io=nu(),Za=nu(),Hf=nu();function fl(e){return e>-L_&&eL_||e<-L_}function zr(e,t,r,n,a){var i=1-a;return i*i*(i*e+3*a*t)+a*a*(a*n+3*i*r)}function ij(e,t,r,n,a){var i=1-a;return 3*(((t-e)*i+2*(r-t)*a)*i+(n-r)*a*a)}function I_(e,t,r,n,a,i){var o=n+3*(t-r)-e,s=3*(r-t*2+e),l=3*(t-e),u=e-a,c=s*s-3*o*l,h=s*l-9*o*u,d=l*l-3*s*u,v=0;if(fl(c)&&fl(h))if(fl(s))i[0]=0;else{var g=-l/s;g>=0&&g<=1&&(i[v++]=g)}else{var m=h*h-4*c*d;if(fl(m)){var y=h/c,g=-s/o+y,x=-y/2;g>=0&&g<=1&&(i[v++]=g),x>=0&&x<=1&&(i[v++]=x)}else if(m>0){var _=Nl(m),w=c*s+1.5*o*(-h+_),S=c*s+1.5*o*(-h-_);w<0?w=-Zy(-w,$y):w=Zy(w,$y),S<0?S=-Zy(-S,$y):S=Zy(S,$y);var g=(-s-(w+S))/(3*o);g>=0&&g<=1&&(i[v++]=g)}else{var C=(2*c*s-3*o*h)/(2*Nl(c*c*c)),M=Math.acos(C)/3,A=Nl(c),I=Math.cos(M),g=(-s-2*A*I)/(3*o),x=(-s+A*(I+aj*Math.sin(M)))/(3*o),k=(-s+A*(I-aj*Math.sin(M)))/(3*o);g>=0&&g<=1&&(i[v++]=g),x>=0&&x<=1&&(i[v++]=x),k>=0&&k<=1&&(i[v++]=k)}}return v}function hG(e,t,r,n,a){var i=6*r-12*t+6*e,o=9*t+3*n-3*e-9*r,s=3*t-3*e,l=0;if(fl(o)){if(cG(i)){var u=-s/i;u>=0&&u<=1&&(a[l++]=u)}}else{var c=i*i-4*o*s;if(fl(c))a[0]=-i/(2*o);else if(c>0){var h=Nl(c),u=(-i+h)/(2*o),d=(-i-h)/(2*o);u>=0&&u<=1&&(a[l++]=u),d>=0&&d<=1&&(a[l++]=d)}}return l}function Fl(e,t,r,n,a,i){var o=(t-e)*a+e,s=(r-t)*a+t,l=(n-r)*a+r,u=(s-o)*a+o,c=(l-s)*a+s,h=(c-u)*a+u;i[0]=e,i[1]=o,i[2]=u,i[3]=h,i[4]=h,i[5]=c,i[6]=l,i[7]=n}function fG(e,t,r,n,a,i,o,s,l,u,c){var h,d=.005,v=1/0,g,m,y,x;io[0]=l,io[1]=u;for(var _=0;_<1;_+=.05)Za[0]=zr(e,r,a,o,_),Za[1]=zr(t,n,i,s,_),y=Al(io,Za),y=0&&y=0&&u<=1&&(a[l++]=u)}}else{var c=o*o-4*i*s;if(fl(c)){var u=-o/(2*i);u>=0&&u<=1&&(a[l++]=u)}else if(c>0){var h=Nl(c),u=(-o+h)/(2*i),d=(-o-h)/(2*i);u>=0&&u<=1&&(a[l++]=u),d>=0&&d<=1&&(a[l++]=d)}}return l}function dG(e,t,r){var n=e+r-2*t;return n===0?.5:(e-t)/n}function Lg(e,t,r,n,a){var i=(t-e)*n+e,o=(r-t)*n+t,s=(o-i)*n+i;a[0]=e,a[1]=i,a[2]=s,a[3]=s,a[4]=o,a[5]=r}function vG(e,t,r,n,a,i,o,s,l){var u,c=.005,h=1/0;io[0]=o,io[1]=s;for(var d=0;d<1;d+=.05){Za[0]=Xr(e,r,a,d),Za[1]=Xr(t,n,i,d);var v=Al(io,Za);v=0&&v=1?1:I_(0,n,i,1,l,s)&&zr(0,a,o,1,s[0])}}}var QQ=function(){function e(t){this._inited=!1,this._startTime=0,this._pausedTime=0,this._paused=!1,this._life=t.life||1e3,this._delay=t.delay||0,this.loop=t.loop||!1,this.onframe=t.onframe||ar,this.ondestroy=t.ondestroy||ar,this.onrestart=t.onrestart||ar,t.easing&&this.setEasing(t.easing)}return e.prototype.step=function(t,r){if(this._inited||(this._startTime=t+this._delay,this._inited=!0),this._paused){this._pausedTime+=r;return}var n=this._life,a=t-this._startTime-this._pausedTime,i=a/n;i<0&&(i=0),i=Math.min(i,1);var o=this.easingFunc,s=o?o(i):i;if(this.onframe(s),i===1)if(this.loop){var l=a%n;this._startTime=t-l,this._pausedTime=0,this.onrestart()}else return!0;return!1},e.prototype.pause=function(){this._paused=!0},e.prototype.resume=function(){this._paused=!1},e.prototype.setEasing=function(t){this.easing=t,this.easingFunc=Me(t)?t:Xp[t]||kk(t)},e}(),pG=function(){function e(t){this.value=t}return e}(),eee=function(){function e(){this._len=0}return e.prototype.insert=function(t){var r=new pG(t);return this.insertEntry(r),r},e.prototype.insertEntry=function(t){this.head?(this.tail.next=t,t.prev=this.tail,t.next=null,this.tail=t):this.head=this.tail=t,this._len++},e.prototype.remove=function(t){var r=t.prev,n=t.next;r?r.next=n:this.head=n,n?n.prev=r:this.tail=r,t.next=t.prev=null,this._len--},e.prototype.len=function(){return this._len},e.prototype.clear=function(){this.head=this.tail=null,this._len=0},e}(),cd=function(){function e(t){this._list=new eee,this._maxSize=10,this._map={},this._maxSize=t}return e.prototype.put=function(t,r){var n=this._list,a=this._map,i=null;if(a[t]==null){var o=n.len(),s=this._lastRemovedEntry;if(o>=this._maxSize&&o>0){var l=n.head;n.remove(l),delete a[l.key],i=l.value,this._lastRemovedEntry=l}s?s.value=r:s=new pG(r),s.key=t,n.insertEntry(s),a[t]=s}return i},e.prototype.get=function(t){var r=this._map[t],n=this._list;if(r!=null)return r!==n.tail&&(n.remove(r),n.insertEntry(r)),r.value},e.prototype.clear=function(){this._list.clear(),this._map={}},e.prototype.len=function(){return this._list.len()},e}(),oj={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function Ai(e){return e=Math.round(e),e<0?0:e>255?255:e}function tee(e){return e=Math.round(e),e<0?0:e>360?360:e}function Ig(e){return e<0?0:e>1?1:e}function kx(e){var t=e;return t.length&&t.charAt(t.length-1)==="%"?Ai(parseFloat(t)/100*255):Ai(parseInt(t,10))}function fs(e){var t=e;return t.length&&t.charAt(t.length-1)==="%"?Ig(parseFloat(t)/100):Ig(parseFloat(t))}function wS(e,t,r){return r<0?r+=1:r>1&&(r-=1),r*6<1?e+(t-e)*r*6:r*2<1?t:r*3<2?e+(t-e)*(2/3-r)*6:e}function dl(e,t,r){return e+(t-e)*r}function za(e,t,r,n,a){return e[0]=t,e[1]=r,e[2]=n,e[3]=a,e}function uM(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}var gG=new cd(20),Yy=null;function Fh(e,t){Yy&&uM(Yy,t),Yy=gG.put(e,Yy||t.slice())}function An(e,t){if(e){t=t||[];var r=gG.get(e);if(r)return uM(t,r);e=e+"";var n=e.replace(/ /g,"").toLowerCase();if(n in oj)return uM(t,oj[n]),Fh(e,t),t;var a=n.length;if(n.charAt(0)==="#"){if(a===4||a===5){var i=parseInt(n.slice(1,4),16);if(!(i>=0&&i<=4095)){za(t,0,0,0,1);return}return za(t,(i&3840)>>4|(i&3840)>>8,i&240|(i&240)>>4,i&15|(i&15)<<4,a===5?parseInt(n.slice(4),16)/15:1),Fh(e,t),t}else if(a===7||a===9){var i=parseInt(n.slice(1,7),16);if(!(i>=0&&i<=16777215)){za(t,0,0,0,1);return}return za(t,(i&16711680)>>16,(i&65280)>>8,i&255,a===9?parseInt(n.slice(7),16)/255:1),Fh(e,t),t}return}var o=n.indexOf("("),s=n.indexOf(")");if(o!==-1&&s+1===a){var l=n.substr(0,o),u=n.substr(o+1,s-(o+1)).split(","),c=1;switch(l){case"rgba":if(u.length!==4)return u.length===3?za(t,+u[0],+u[1],+u[2],1):za(t,0,0,0,1);c=fs(u.pop());case"rgb":if(u.length>=3)return za(t,kx(u[0]),kx(u[1]),kx(u[2]),u.length===3?c:fs(u[3])),Fh(e,t),t;za(t,0,0,0,1);return;case"hsla":if(u.length!==4){za(t,0,0,0,1);return}return u[3]=fs(u[3]),cM(u,t),Fh(e,t),t;case"hsl":if(u.length!==3){za(t,0,0,0,1);return}return cM(u,t),Fh(e,t),t;default:return}}za(t,0,0,0,1)}}function cM(e,t){var r=(parseFloat(e[0])%360+360)%360/360,n=fs(e[1]),a=fs(e[2]),i=a<=.5?a*(n+1):a+n-a*n,o=a*2-i;return t=t||[],za(t,Ai(wS(o,i,r+1/3)*255),Ai(wS(o,i,r)*255),Ai(wS(o,i,r-1/3)*255),1),e.length===4&&(t[3]=e[3]),t}function ree(e){if(e){var t=e[0]/255,r=e[1]/255,n=e[2]/255,a=Math.min(t,r,n),i=Math.max(t,r,n),o=i-a,s=(i+a)/2,l,u;if(o===0)l=0,u=0;else{s<.5?u=o/(i+a):u=o/(2-i-a);var c=((i-t)/6+o/2)/o,h=((i-r)/6+o/2)/o,d=((i-n)/6+o/2)/o;t===i?l=d-h:r===i?l=1/3+c-d:n===i&&(l=2/3+h-c),l<0&&(l+=1),l>1&&(l-=1)}var v=[l*360,u,s];return e[3]!=null&&v.push(e[3]),v}}function P_(e,t){var r=An(e);if(r){for(var n=0;n<3;n++)t<0?r[n]=r[n]*(1-t)|0:r[n]=(255-r[n])*t+r[n]|0,r[n]>255?r[n]=255:r[n]<0&&(r[n]=0);return qa(r,r.length===4?"rgba":"rgb")}}function nee(e){var t=An(e);if(t)return((1<<24)+(t[0]<<16)+(t[1]<<8)+ +t[2]).toString(16).slice(1)}function qp(e,t,r){if(!(!(t&&t.length)||!(e>=0&&e<=1))){r=r||[];var n=e*(t.length-1),a=Math.floor(n),i=Math.ceil(n),o=t[a],s=t[i],l=n-a;return r[0]=Ai(dl(o[0],s[0],l)),r[1]=Ai(dl(o[1],s[1],l)),r[2]=Ai(dl(o[2],s[2],l)),r[3]=Ig(dl(o[3],s[3],l)),r}}var aee=qp;function Lk(e,t,r){if(!(!(t&&t.length)||!(e>=0&&e<=1))){var n=e*(t.length-1),a=Math.floor(n),i=Math.ceil(n),o=An(t[a]),s=An(t[i]),l=n-a,u=qa([Ai(dl(o[0],s[0],l)),Ai(dl(o[1],s[1],l)),Ai(dl(o[2],s[2],l)),Ig(dl(o[3],s[3],l))],"rgba");return r?{color:u,leftIndex:a,rightIndex:i,value:n}:u}}var iee=Lk;function ds(e,t,r,n){var a=An(e);if(e)return a=ree(a),t!=null&&(a[0]=tee(Me(t)?t(a[0]):t)),r!=null&&(a[1]=fs(Me(r)?r(a[1]):r)),n!=null&&(a[2]=fs(Me(n)?n(a[2]):n)),qa(cM(a),"rgba")}function Pg(e,t){var r=An(e);if(r&&t!=null)return r[3]=Ig(t),qa(r,"rgba")}function qa(e,t){if(!(!e||!e.length)){var r=e[0]+","+e[1]+","+e[2];return(t==="rgba"||t==="hsva"||t==="hsla")&&(r+=","+e[3]),t+"("+r+")"}}function Dg(e,t){var r=An(e);return r?(.299*r[0]+.587*r[1]+.114*r[2])*r[3]/255+(1-r[3])*t:0}function oee(){return qa([Math.round(Math.random()*255),Math.round(Math.random()*255),Math.round(Math.random()*255)],"rgb")}var sj=new cd(100);function D_(e){if(ue(e)){var t=sj.get(e);return t||(t=P_(e,-.1),sj.put(e,t)),t}else if(Mm(e)){var r=te({},e);return r.colorStops=oe(e.colorStops,function(n){return{offset:n.offset,color:P_(n.color,-.1)}}),r}return e}const see=Object.freeze(Object.defineProperty({__proto__:null,fastLerp:qp,fastMapToColor:aee,lerp:Lk,lift:P_,liftColor:D_,lum:Dg,mapToColor:iee,modifyAlpha:Pg,modifyHSL:ds,parse:An,parseCssFloat:fs,parseCssInt:kx,random:oee,stringify:qa,toHex:nee},Symbol.toStringTag,{value:"Module"}));var E_=Math.round;function Eg(e){var t;if(!e||e==="transparent")e="none";else if(typeof e=="string"&&e.indexOf("rgba")>-1){var r=An(e);r&&(e="rgb("+r[0]+","+r[1]+","+r[2]+")",t=r[3])}return{color:e,opacity:t??1}}var lj=1e-4;function vl(e){return e-lj}function Xy(e){return E_(e*1e3)/1e3}function hM(e){return E_(e*1e4)/1e4}function lee(e){return"matrix("+Xy(e[0])+","+Xy(e[1])+","+Xy(e[2])+","+Xy(e[3])+","+hM(e[4])+","+hM(e[5])+")"}var uee={left:"start",right:"end",center:"middle",middle:"middle"};function cee(e,t,r){return r==="top"?e+=t/2:r==="bottom"&&(e-=t/2),e}function hee(e){return e&&(e.shadowBlur||e.shadowOffsetX||e.shadowOffsetY)}function fee(e){var t=e.style,r=e.getGlobalScale();return[t.shadowColor,(t.shadowBlur||0).toFixed(2),(t.shadowOffsetX||0).toFixed(2),(t.shadowOffsetY||0).toFixed(2),r[0],r[1]].join(",")}function mG(e){return e&&!!e.image}function dee(e){return e&&!!e.svgElement}function Ik(e){return mG(e)||dee(e)}function yG(e){return e.type==="linear"}function xG(e){return e.type==="radial"}function _G(e){return e&&(e.type==="linear"||e.type==="radial")}function S1(e){return"url(#"+e+")"}function bG(e){var t=e.getGlobalScale(),r=Math.max(t[0],t[1]);return Math.max(Math.ceil(Math.log(r)/Math.log(10)),1)}function wG(e){var t=e.x||0,r=e.y||0,n=(e.rotation||0)*Wp,a=_e(e.scaleX,1),i=_e(e.scaleY,1),o=e.skewX||0,s=e.skewY||0,l=[];return(t||r)&&l.push("translate("+t+"px,"+r+"px)"),n&&l.push("rotate("+n+")"),(a!==1||i!==1)&&l.push("scale("+a+","+i+")"),(o||s)&&l.push("skew("+E_(o*Wp)+"deg, "+E_(s*Wp)+"deg)"),l.join(" ")}var vee=function(){return typeof Buffer<"u"&&typeof Buffer.from=="function"?function(e){return Buffer.from(e).toString("base64")}:typeof btoa=="function"&&typeof unescape=="function"&&typeof encodeURIComponent=="function"?function(e){return btoa(unescape(encodeURIComponent(e)))}:function(e){return null}}(),fM=Array.prototype.slice;function es(e,t,r){return(t-e)*r+e}function SS(e,t,r,n){for(var a=t.length,i=0;in?t:e,i=Math.min(r,n),o=a[i-1]||{color:[0,0,0,0],offset:0},s=i;so;if(s)n.length=o;else for(var l=i;l=1},e.prototype.getAdditiveTrack=function(){return this._additiveTrack},e.prototype.addKeyframe=function(t,r,n){this._needsSort=!0;var a=this.keyframes,i=a.length,o=!1,s=cj,l=r;if(hn(r)){var u=yee(r);s=u,(u===1&&!ft(r[0])||u===2&&!ft(r[0][0]))&&(o=!0)}else if(ft(r)&&!un(r))s=Ky;else if(ue(r))if(!isNaN(+r))s=Ky;else{var c=An(r);c&&(l=c,s=Sp)}else if(Mm(r)){var h=te({},l);h.colorStops=oe(r.colorStops,function(v){return{offset:v.offset,color:An(v.color)}}),yG(r)?s=dM:xG(r)&&(s=vM),l=h}i===0?this.valType=s:(s!==this.valType||s===cj)&&(o=!0),this.discrete=this.discrete||o;var d={time:t,value:l,rawValue:r,percent:0};return n&&(d.easing=n,d.easingFunc=Me(n)?n:Xp[n]||kk(n)),a.push(d),d},e.prototype.prepare=function(t,r){var n=this.keyframes;this._needsSort&&n.sort(function(m,y){return m.time-y.time});for(var a=this.valType,i=n.length,o=n[i-1],s=this.discrete,l=Jy(a),u=hj(a),c=0;c=0&&!(o[c].percent<=r);c--);c=d(c,s-2)}else{for(c=h;cr);c++);c=d(c-1,s-2)}g=o[c+1],v=o[c]}if(v&&g){this._lastFr=c,this._lastFrP=r;var y=g.percent-v.percent,x=y===0?1:d((r-v.percent)/y,1);g.easingFunc&&(x=g.easingFunc(x));var _=n?this._additiveValue:u?zv:t[l];if((Jy(i)||u)&&!_&&(_=this._additiveValue=[]),this.discrete)t[l]=x<1?v.rawValue:g.rawValue;else if(Jy(i))i===Ix?SS(_,v[a],g[a],x):pee(_,v[a],g[a],x);else if(hj(i)){var w=v[a],S=g[a],C=i===dM;t[l]={type:C?"linear":"radial",x:es(w.x,S.x,x),y:es(w.y,S.y,x),colorStops:oe(w.colorStops,function(A,I){var k=S.colorStops[I];return{offset:es(A.offset,k.offset,x),color:Lx(SS([],A.color,k.color,x))}}),global:S.global},C?(t[l].x2=es(w.x2,S.x2,x),t[l].y2=es(w.y2,S.y2,x)):t[l].r=es(w.r,S.r,x)}else if(u)SS(_,v[a],g[a],x),n||(t[l]=Lx(_));else{var M=es(v[a],g[a],x);n?this._additiveValue=M:t[l]=M}n&&this._addToTarget(t)}}},e.prototype._addToTarget=function(t){var r=this.valType,n=this.propName,a=this._additiveValue;r===Ky?t[n]=t[n]+a:r===Sp?(An(t[n],zv),qy(zv,zv,a,1),t[n]=Lx(zv)):r===Ix?qy(t[n],t[n],a,1):r===SG&&uj(t[n],t[n],a,1)},e}(),Pk=function(){function e(t,r,n,a){if(this._tracks={},this._trackKeys=[],this._maxTime=0,this._started=0,this._clip=null,this._target=t,this._loop=r,r&&a){y1("Can' use additive animation on looped animation.");return}this._additiveAnimators=a,this._allowDiscrete=n}return e.prototype.getMaxTime=function(){return this._maxTime},e.prototype.getDelay=function(){return this._delay},e.prototype.getLoop=function(){return this._loop},e.prototype.getTarget=function(){return this._target},e.prototype.changeTarget=function(t){this._target=t},e.prototype.when=function(t,r,n){return this.whenWithKeys(t,r,at(r),n)},e.prototype.whenWithKeys=function(t,r,n,a){for(var i=this._tracks,o=0;o0&&l.addKeyframe(0,Kp(u),a),this._trackKeys.push(s)}l.addKeyframe(t,Kp(r[s]),a)}return this._maxTime=Math.max(this._maxTime,t),this},e.prototype.pause=function(){this._clip.pause(),this._paused=!0},e.prototype.resume=function(){this._clip.resume(),this._paused=!1},e.prototype.isPaused=function(){return!!this._paused},e.prototype.duration=function(t){return this._maxTime=t,this._force=!0,this},e.prototype._doneCallback=function(){this._setTracksFinished(),this._clip=null;var t=this._doneCbs;if(t)for(var r=t.length,n=0;n0)){this._started=1;for(var r=this,n=[],a=this._maxTime||0,i=0;i1){var s=o.pop();i.addKeyframe(s.time,t[a]),i.prepare(this._maxTime,i.getAdditiveTrack())}}}},e}();function kf(){return new Date().getTime()}var _ee=function(e){X(t,e);function t(r){var n=e.call(this)||this;return n._running=!1,n._time=0,n._pausedTime=0,n._pauseStart=0,n._paused=!1,r=r||{},n.stage=r.stage||{},n}return t.prototype.addClip=function(r){r.animation&&this.removeClip(r),this._head?(this._tail.next=r,r.prev=this._tail,r.next=null,this._tail=r):this._head=this._tail=r,r.animation=this},t.prototype.addAnimator=function(r){r.animation=this;var n=r.getClip();n&&this.addClip(n)},t.prototype.removeClip=function(r){if(r.animation){var n=r.prev,a=r.next;n?n.next=a:this._head=a,a?a.prev=n:this._tail=n,r.next=r.prev=r.animation=null}},t.prototype.removeAnimator=function(r){var n=r.getClip();n&&this.removeClip(n),r.animation=null},t.prototype.update=function(r){for(var n=kf()-this._pausedTime,a=n-this._time,i=this._head;i;){var o=i.next,s=i.step(n,a);s&&(i.ondestroy(),this.removeClip(i)),i=o}this._time=n,r||(this.trigger("frame",a),this.stage.update&&this.stage.update())},t.prototype._startLoop=function(){var r=this;this._running=!0;function n(){r._running&&(k_(n),!r._paused&&r.update())}k_(n)},t.prototype.start=function(){this._running||(this._time=kf(),this._pausedTime=0,this._startLoop())},t.prototype.stop=function(){this._running=!1},t.prototype.pause=function(){this._paused||(this._pauseStart=kf(),this._paused=!0)},t.prototype.resume=function(){this._paused&&(this._pausedTime+=kf()-this._pauseStart,this._paused=!1)},t.prototype.clear=function(){for(var r=this._head;r;){var n=r.next;r.prev=r.next=r.animation=null,r=n}this._head=this._tail=null},t.prototype.isFinished=function(){return this._head==null},t.prototype.animate=function(r,n){n=n||{},this.start();var a=new Pk(r,n.loop);return this.addAnimator(a),a},t}(si),bee=300,CS=ot.domSupported,TS=function(){var e=["click","dblclick","mousewheel","wheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],t=["touchstart","touchend","touchmove"],r={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},n=oe(e,function(a){var i=a.replace("mouse","pointer");return r.hasOwnProperty(i)?i:a});return{mouse:e,touch:t,pointer:n}}(),fj={mouse:["mousemove","mouseup"],pointer:["pointermove","pointerup"]},dj=!1;function pM(e){var t=e.pointerType;return t==="pen"||t==="touch"}function wee(e){e.touching=!0,e.touchTimer!=null&&(clearTimeout(e.touchTimer),e.touchTimer=null),e.touchTimer=setTimeout(function(){e.touching=!1,e.touchTimer=null},700)}function MS(e){e&&(e.zrByTouch=!0)}function See(e,t){return Fa(e.dom,new Cee(e,t),!0)}function CG(e,t){for(var r=t,n=!1;r&&r.nodeType!==9&&!(n=r.domBelongToZr||r!==t&&r===e.painterRoot);)r=r.parentNode;return n}var Cee=function(){function e(t,r){this.stopPropagation=ar,this.stopImmediatePropagation=ar,this.preventDefault=ar,this.type=r.type,this.target=this.currentTarget=t.dom,this.pointerType=r.pointerType,this.clientX=r.clientX,this.clientY=r.clientY}return e}(),mi={mousedown:function(e){e=Fa(this.dom,e),this.__mayPointerCapture=[e.zrX,e.zrY],this.trigger("mousedown",e)},mousemove:function(e){e=Fa(this.dom,e);var t=this.__mayPointerCapture;t&&(e.zrX!==t[0]||e.zrY!==t[1])&&this.__togglePointerCapture(!0),this.trigger("mousemove",e)},mouseup:function(e){e=Fa(this.dom,e),this.__togglePointerCapture(!1),this.trigger("mouseup",e)},mouseout:function(e){e=Fa(this.dom,e);var t=e.toElement||e.relatedTarget;CG(this,t)||(this.__pointerCapturing&&(e.zrEventControl="no_globalout"),this.trigger("mouseout",e))},wheel:function(e){dj=!0,e=Fa(this.dom,e),this.trigger("mousewheel",e)},mousewheel:function(e){dj||(e=Fa(this.dom,e),this.trigger("mousewheel",e))},touchstart:function(e){e=Fa(this.dom,e),MS(e),this.__lastTouchMoment=new Date,this.handler.processGesture(e,"start"),mi.mousemove.call(this,e),mi.mousedown.call(this,e)},touchmove:function(e){e=Fa(this.dom,e),MS(e),this.handler.processGesture(e,"change"),mi.mousemove.call(this,e)},touchend:function(e){e=Fa(this.dom,e),MS(e),this.handler.processGesture(e,"end"),mi.mouseup.call(this,e),+new Date-+this.__lastTouchMomentgj||e<-gj}var _u=[],Vh=[],NS=$t(),kS=Math.abs,Bo=function(){function e(){}return e.prototype.getLocalTransform=function(t){return Vl(this,t)},e.prototype.setPosition=function(t){this.x=t[0],this.y=t[1]},e.prototype.setScale=function(t){this.scaleX=t[0],this.scaleY=t[1]},e.prototype.setSkew=function(t){this.skewX=t[0],this.skewY=t[1]},e.prototype.setOrigin=function(t){this.originX=t[0],this.originY=t[1]},e.prototype.needLocalTransform=function(){return xu(this.rotation)||xu(this.x)||xu(this.y)||xu(this.scaleX-1)||xu(this.scaleY-1)||xu(this.skewX)||xu(this.skewY)},e.prototype.updateTransform=function(){var t=this.parent&&this.parent.transform,r=this.needLocalTransform(),n=this.transform;if(!(r||t)){n&&(pj(n),this.invTransform=null);return}n=n||$t(),r?this.getLocalTransform(n):pj(n),t&&(r?Ca(n,t,n):Bl(n,t)),this.transform=n,this._resolveGlobalScaleRatio(n),this.invTransform=this.invTransform||$t(),Ma(this.invTransform,n)},e.prototype._resolveGlobalScaleRatio=function(t){var r=this.globalScaleRatio;if(r!=null&&r!==1){this.getGlobalScale(_u);var n=_u[0]<0?-1:1,a=_u[1]<0?-1:1,i=((_u[0]-n)*r+n)/_u[0]||0,o=((_u[1]-a)*r+a)/_u[1]||0;t[0]*=i,t[1]*=i,t[2]*=o,t[3]*=o}},e.prototype.getComputedTransform=function(){for(var t=this,r=[];t;)r.push(t),t=t.parent;for(;t=r.pop();)t.updateTransform();return this.transform},e.prototype.setLocalTransform=function(t){if(t){var r=t[0]*t[0]+t[1]*t[1],n=t[2]*t[2]+t[3]*t[3],a=Math.atan2(t[1],t[0]),i=Math.PI/2+a-Math.atan2(t[3],t[2]);n=Math.sqrt(n)*Math.cos(i),r=Math.sqrt(r),this.skewX=i,this.skewY=0,this.rotation=-a,this.x=+t[4],this.y=+t[5],this.scaleX=r,this.scaleY=n,this.originX=0,this.originY=0}},e.prototype.decomposeTransform=function(){if(this.transform){var t=this.parent,r=this.transform;t&&t.transform&&(t.invTransform=t.invTransform||$t(),Ca(Vh,t.invTransform,r),r=Vh);var n=this.originX,a=this.originY;(n||a)&&(NS[4]=n,NS[5]=a,Ca(Vh,r,NS),Vh[4]-=n,Vh[5]-=a,r=Vh),this.setLocalTransform(r)}},e.prototype.getGlobalScale=function(t){var r=this.transform;return t=t||[],r?(t[0]=Math.sqrt(r[0]*r[0]+r[1]*r[1]),t[1]=Math.sqrt(r[2]*r[2]+r[3]*r[3]),r[0]<0&&(t[0]=-t[0]),r[3]<0&&(t[1]=-t[1]),t):(t[0]=1,t[1]=1,t)},e.prototype.transformCoordToLocal=function(t,r){var n=[t,r],a=this.invTransform;return a&&ir(n,n,a),n},e.prototype.transformCoordToGlobal=function(t,r){var n=[t,r],a=this.transform;return a&&ir(n,n,a),n},e.prototype.getLineScale=function(){var t=this.transform;return t&&kS(t[0]-1)>1e-10&&kS(t[3]-1)>1e-10?Math.sqrt(kS(t[0]*t[3]-t[2]*t[1])):1},e.prototype.copyTransform=function(t){No(this,t)},e.getLocalTransform=function(t,r){r=r||[];var n=t.originX||0,a=t.originY||0,i=t.scaleX,o=t.scaleY,s=t.anchorX,l=t.anchorY,u=t.rotation||0,c=t.x,h=t.y,d=t.skewX?Math.tan(t.skewX):0,v=t.skewY?Math.tan(-t.skewY):0;if(n||a||s||l){var g=n+s,m=a+l;r[4]=-g*i-d*m*o,r[5]=-m*o-v*g*i}else r[4]=r[5]=0;return r[0]=i,r[3]=o,r[1]=v*i,r[2]=d*o,u&&js(r,r,u),r[4]+=n+c,r[5]+=a+h,r},e.initDefaultProps=function(){var t=e.prototype;t.scaleX=t.scaleY=t.globalScaleRatio=1,t.x=t.y=t.originX=t.originY=t.skewX=t.skewY=t.rotation=t.anchorX=t.anchorY=0}(),e}(),Vl=Bo.getLocalTransform;function Uf(){return new Bo}var Ts=["x","y","originX","originY","anchorX","anchorY","rotation","scaleX","scaleY","skewX","skewY"];function No(e,t){return $V(e,t,Ts)}function yo(e){Qy||(Qy=new cd(100)),e=e||Ss;var t=Qy.get(e);return t||(t={font:e,strWidthCache:new cd(500),asciiWidthMap:null,asciiWidthMapTried:!1,stWideCharWidth:Vr.measureText("国",e).width,asciiCharWidth:Vr.measureText("a",e).width},Qy.put(e,t)),t}var Qy;function kee(e){if(!(LS>=mj)){e=e||Ss;for(var t=[],r=+new Date,n=0;n<=127;n++)t[n]=Vr.measureText(String.fromCharCode(n),e).width;var a=+new Date-r;return a>16?LS=mj:a>2&&LS++,t}}var LS=0,mj=5;function MG(e,t){return e.asciiWidthMapTried||(e.asciiWidthMap=kee(e.font),e.asciiWidthMapTried=!0),0<=t&&t<=127?e.asciiWidthMap!=null?e.asciiWidthMap[t]:e.asciiCharWidth:e.stWideCharWidth}function xo(e,t){var r=e.strWidthCache,n=r.get(t);return n==null&&(n=Vr.measureText(t,e.font).width,r.put(t,n)),n}function yj(e,t,r,n){var a=xo(yo(t),e),i=km(t),o=hd(0,a,r),s=pc(0,i,n),l=new ke(o,s,a,i);return l}function C1(e,t,r,n){var a=((e||"")+"").split(` -`),i=a.length;if(i===1)return yj(a[0],t,r,n);for(var o=new ke(0,0,0,0),s=0;s=0?parseFloat(e)/100*t:parseFloat(e):e}function R_(e,t,r){var n=t.position||"inside",a=t.distance!=null?t.distance:5,i=r.height,o=r.width,s=i/2,l=r.x,u=r.y,c="left",h="top";if(n instanceof Array)l+=ko(n[0],r.width),u+=ko(n[1],r.height),c=null,h=null;else switch(n){case"left":l-=a,u+=s,c="right",h="middle";break;case"right":l+=a+o,u+=s,h="middle";break;case"top":l+=o/2,u-=a,c="center",h="bottom";break;case"bottom":l+=o/2,u+=i+a,c="center";break;case"inside":l+=o/2,u+=s,c="center",h="middle";break;case"insideLeft":l+=a,u+=s,h="middle";break;case"insideRight":l+=o-a,u+=s,c="right",h="middle";break;case"insideTop":l+=o/2,u+=a,c="center";break;case"insideBottom":l+=o/2,u+=i-a,c="center",h="bottom";break;case"insideTopLeft":l+=a,u+=a;break;case"insideTopRight":l+=o-a,u+=a,c="right";break;case"insideBottomLeft":l+=a,u+=i-a,h="bottom";break;case"insideBottomRight":l+=o-a,u+=i-a,c="right",h="bottom";break}return e=e||{},e.x=l,e.y=u,e.align=c,e.verticalAlign=h,e}var IS="__zr_normal__",PS=Ts.concat(["ignore"]),Lee=ti(Ts,function(e,t){return e[t]=!0,e},{ignore:!1}),Gh={},Iee=new ke(0,0,0,0),e0=[],Dx=0,T1=1,M1=function(){function e(t){this.id=Ck(),this.animators=[],this.currentStates=[],this.states={},this._init(t)}return e.prototype._init=function(t){this.attr(t)},e.prototype.drift=function(t,r,n){switch(this.draggable){case"horizontal":r=0;break;case"vertical":t=0;break}var a=this.transform;a||(a=this.transform=[1,0,0,1,0,0]),a[4]+=t,a[5]+=r,this.decomposeTransform(),this.markRedraw()},e.prototype.beforeUpdate=function(){},e.prototype.afterUpdate=function(){},e.prototype.update=function(){this.updateTransform(),this.__dirty&&this.updateInnerText()},e.prototype.updateInnerText=function(t){var r=this._textContent;if(r&&(!r.ignore||t)){this.textConfig||(this.textConfig={});var n=this.textConfig,a=n.local,i=r.innerTransformable,o=void 0,s=void 0,l=!1;i.parent=a?this:null;var u=!1;i.copyTransform(r);var c=n.position!=null,h=n.autoOverflowArea,d=void 0;if((h||c)&&(d=Iee,n.layoutRect?d.copy(n.layoutRect):d.copy(this.getBoundingRect()),a||d.applyTransform(this.transform)),c){this.calculateTextPosition?this.calculateTextPosition(Gh,n,d):R_(Gh,n,d),i.x=Gh.x,i.y=Gh.y,o=Gh.align,s=Gh.verticalAlign;var v=n.origin;if(v&&n.rotation!=null){var g=void 0,m=void 0;v==="center"?(g=d.width*.5,m=d.height*.5):(g=ko(v[0],d.width),m=ko(v[1],d.height)),u=!0,i.originX=-i.x+g+(a?0:d.x),i.originY=-i.y+m+(a?0:d.y)}}n.rotation!=null&&(i.rotation=n.rotation);var y=n.offset;y&&(i.x+=y[0],i.y+=y[1],u||(i.originX=-y[0],i.originY=-y[1]));var x=this._innerTextDefaultStyle||(this._innerTextDefaultStyle={});if(h){var _=x.overflowRect=x.overflowRect||new ke(0,0,0,0);i.getLocalTransform(e0),Ma(e0,e0),ke.copy(_,d),_.applyTransform(e0)}else x.overflowRect=null;var w=n.inside==null?typeof n.position=="string"&&n.position.indexOf("inside")>=0:n.inside,S=void 0,C=void 0,M=void 0;w&&this.canBeInsideText()?(S=n.insideFill,C=n.insideStroke,(S==null||S==="auto")&&(S=this.getInsideTextFill()),(C==null||C==="auto")&&(C=this.getInsideTextStroke(S),M=!0)):(S=n.outsideFill,C=n.outsideStroke,(S==null||S==="auto")&&(S=this.getOutsideFill()),(C==null||C==="auto")&&(C=this.getOutsideStroke(S),M=!0)),S=S||"#000",(S!==x.fill||C!==x.stroke||M!==x.autoStroke||o!==x.align||s!==x.verticalAlign)&&(l=!0,x.fill=S,x.stroke=C,x.autoStroke=M,x.align=o,x.verticalAlign=s,r.setDefaultTextStyle(x)),r.__dirty|=Qn,l&&r.dirtyStyle(!0)}},e.prototype.canBeInsideText=function(){return!0},e.prototype.getInsideTextFill=function(){return"#fff"},e.prototype.getInsideTextStroke=function(t){return"#000"},e.prototype.getOutsideFill=function(){return this.__zr&&this.__zr.isDarkMode()?xM:yM},e.prototype.getOutsideStroke=function(t){var r=this.__zr&&this.__zr.getBackgroundColor(),n=typeof r=="string"&&An(r);n||(n=[255,255,255,1]);for(var a=n[3],i=this.__zr.isDarkMode(),o=0;o<3;o++)n[o]=n[o]*a+(i?0:255)*(1-a);return n[3]=1,qa(n,"rgba")},e.prototype.traverse=function(t,r){},e.prototype.attrKV=function(t,r){t==="textConfig"?this.setTextConfig(r):t==="textContent"?this.setTextContent(r):t==="clipPath"?this.setClipPath(r):t==="extra"?(this.extra=this.extra||{},te(this.extra,r)):this[t]=r},e.prototype.hide=function(){this.ignore=!0,this.markRedraw()},e.prototype.show=function(){this.ignore=!1,this.markRedraw()},e.prototype.attr=function(t,r){if(typeof t=="string")this.attrKV(t,r);else if(Ie(t))for(var n=t,a=at(n),i=0;i0},e.prototype.getState=function(t){return this.states[t]},e.prototype.ensureState=function(t){var r=this.states;return r[t]||(r[t]={}),r[t]},e.prototype.clearStates=function(t){this.useState(IS,!1,t)},e.prototype.useState=function(t,r,n,a){var i=t===IS,o=this.hasState();if(!(!o&&i)){var s=this.currentStates,l=this.stateTransition;if(!(Ve(s,t)>=0&&(r||s.length===1))){var u;if(this.stateProxy&&!i&&(u=this.stateProxy(t)),u||(u=this.states&&this.states[t]),!u&&!i){y1("State "+t+" not exists.");return}i||this.saveCurrentToNormalState(u);var c=this._textContent,h=xj(this,c,u,a);h&&!this.__inHover&&(this.__inHover=h),this._applyStateObj(t,u,this._normalState,r,bj(this,n,l),l);var d=this._textGuide;return c&&c.useState(t,r,n,!!h),d&&d.useState(t,r,n,!!h),i?(this.currentStates=[],this._normalState={}):r?this.currentStates.push(t):this.currentStates=[t],this._updateAnimationTargets(),this.markRedraw(),!h&&this.__inHover&&(this.__inHover=Dx,this.__dirty&=~Qn),u}}},e.prototype.useStates=function(t,r,n){if(!t.length)this.clearStates();else{var a=[],i=this.currentStates,o=t.length,s=o===i.length;if(s){for(var l=0;l=0){var n=this.currentStates.slice();n.splice(r,1),this.useStates(n)}},e.prototype.replaceState=function(t,r,n){var a=this.currentStates.slice(),i=Ve(a,t),o=Ve(a,r)>=0;i>=0?o?a.splice(i,1):a[i]=r:n&&!o&&a.push(r),this.useStates(a)},e.prototype.toggleState=function(t,r){r?this.useState(t,!0):this.removeState(t)},e.prototype._mergeStates=function(t){for(var r={},n,a=0;a=0&&i.splice(o,1)}),this.animators.push(t),n&&n.animation.addAnimator(t),n&&n.wakeUp()},e.prototype.updateDuringAnimation=function(t){this.markRedraw()},e.prototype.stopAnimation=function(t,r){for(var n=this.animators,a=n.length,i=[],o=0;o0&&r.during&&i[0].during(function(g,m){r.during(m)});for(var d=0;d0||a.force&&!o.length){var I=void 0,k=void 0,P=void 0;if(s){k={},d&&(I={});for(var S=0;S0}var Ne=function(e){X(t,e);function t(r){var n=e.call(this)||this;return n.isGroup=!0,n._children=[],n.attr(r),n}return t.prototype.childrenRef=function(){return this._children},t.prototype.children=function(){return this._children.slice()},t.prototype.childAt=function(r){return this._children[r]},t.prototype.childOfName=function(r){for(var n=this._children,a=0;a=0&&(a.splice(i,0,r),this._doAdd(r))}return this},t.prototype.replace=function(r,n){var a=Ve(this._children,r);return a>=0&&this.replaceAt(n,a),this},t.prototype.replaceAt=function(r,n){var a=this._children,i=a[n];if(r&&r!==this&&r.parent!==this&&r!==i){a[n]=r,i.parent=null;var o=this.__zr;o&&i.removeSelfFromZr(o),this._doAdd(r)}return this},t.prototype._doAdd=function(r){r.parent&&r.parent.remove(r),r.parent=this;var n=this.__zr;n&&n!==r.__zr&&r.addSelfToZr(n),n&&n.refresh()},t.prototype.remove=function(r){var n=this.__zr,a=this._children,i=Ve(a,r);return i<0?this:(a.splice(i,1),r.parent=null,n&&r.removeSelfFromZr(n),n&&n.refresh(),this)},t.prototype.removeAll=function(){for(var r=this._children,n=this.__zr,a=0;a0&&(this._stillFrameAccum++,this._stillFrameAccum>this._sleepAfterStill&&this.animation.stop())},e.prototype.setSleepAfterStill=function(t){this._sleepAfterStill=t},e.prototype.wakeUp=function(){this._disposed||(this.animation.start(),this._stillFrameAccum=0)},e.prototype.refreshHover=function(){this._needsRefreshHover=!0},e.prototype.refreshHoverImmediately=function(){this._disposed||this._refresh({animUpdate:!1,refresh:!1,refreshHover:!0})},e.prototype.resize=function(t){this._disposed||(t=t||{},this.painter.resize(t.width,t.height),this.handler.resize())},e.prototype.clearAnimation=function(){this._disposed||this.animation.clear()},e.prototype.getWidth=function(){if(!this._disposed)return this.painter.getWidth()},e.prototype.getHeight=function(){if(!this._disposed)return this.painter.getHeight()},e.prototype.setCursorStyle=function(t){this._disposed||this.handler.setCursorStyle(t)},e.prototype.findHover=function(t,r){if(!this._disposed)return this.handler.findHover(t,r)},e.prototype.on=function(t,r,n){return this._disposed||this.handler.on(t,r,n),this},e.prototype.off=function(t,r){this._disposed||this.handler.off(t,r)},e.prototype.trigger=function(t,r){this._disposed||this.handler.trigger(t,r)},e.prototype.clear=function(){if(!this._disposed){for(var t=this.storage.getRoots(),r=0;r0){if(e<=a)return o;if(e>=i)return s}else{if(e>=a)return o;if(e<=i)return s}else{if(e===a)return o;if(e===i)return s}return(e-a)/l*u+o}var fe=$ee;function $ee(e,t,r){switch(e){case"center":case"middle":e="50%";break;case"left":case"top":e="0%";break;case"right":case"bottom":e="100%";break}return B_(e,t,r)}function B_(e,t,r){return ue(e)?IG(e)?parseFloat(e)/100*t+(r||0):parseFloat(e):e==null?NaN:+e}function Yee(e){return ue(e)&&IG(e)}function IG(e){return!!Wee(e).match(/%$/)}function gt(e,t,r){return isNaN(t)?r?""+e:+e:(t=Mt(qe(0,t),O_),e=(+e).toFixed(t),r?e:+e)}function Xee(e,t,r){return t==null&&(t=10),gt(e,t,r)}function qr(e){return e.sort(function(t,r){return t-r}),e}function so(e){if(e=+e,isNaN(e))return 0;if(e>1e-14){for(var t=1,r=0;r<15;r++,t*=10)if(Lo(e*t)/t===e)return r}return PG(e)}function PG(e){var t=e.toString().toLowerCase(),r=t.indexOf("e"),n=r>0?+t.slice(r+1):0,a=r>0?r:t.length,i=t.indexOf("."),o=i<0?0:a-1-i;return qe(0,o-n)}function qee(e,t){var r=ri(Ic(e[1]-e[0])/jg),n=Lo(Ic(nr(t[1]-t[0]))/jg),a=Mt(qe(-r+n,0),O_);return isFinite(a)?a:O_}function Dk(e,t,r){var n=nr(e[1]-e[0]);if(!isFinite(n)||n===0)return NaN;var a=Ic(2*nr(r||1)*nr(n))/jg,i=Ic(nr(t))/jg,o=qe(0,lh(-a+i));return isFinite(o)||(o=NaN),o}function Kee(e,t,r){if(!e[t])return 0;var n=DG(e,r);return n[t]||0}function DG(e,t){var r=ti(e,function(v,g){return v+(isNaN(g)?0:g)},0);if(r===0)return[];for(var n=uh(10,t),a=oe(e,function(v){return(isNaN(v)?0:v)/r*n*100}),i=n*100,o=oe(a,function(v){return ri(v)}),s=ti(o,function(v,g){return v+g},0),l=oe(a,function(v,g){return v-o[g]});su&&(u=l[h],c=h);++o[c],l[c]=0,++s}return oe(o,function(v){return v/n})}function Zu(e,t){var r=qe(so(e),so(t)),n=e+t;return r>O_?n:gt(n,r)}var Rg=uh(2,53)-1;function Ek(e){var t=z_*2;return(e%t+t)%t}function Pc(e){return e>-wj&&e=10&&t++,t}var EG=2;function N1(e,t){var r=A1(e),n=uh(10,r),a=e/n,i;return t===EG?i=1:t?a<1.5?i=1:a<2.5?i=2:a<4?i=3:a<7?i=5:i=10:a<1?i=1:a<2?i=2:a<3?i=3:a<5?i=5:i=10,e=i*n,gt(e,-r)}function jx(e,t){var r=(e.length-1)*t+1,n=ri(r),a=+e[n-1],i=r-n;return i?a+i*(e[n]-a):a}function wM(e){e.sort(function(l,u){return s(l,u,0)?-1:1});for(var t=-1/0,r=1,n=0;n0?t.length:0),this.item=null,this.key=NaN,this},e.prototype.next=function(){return(this._step>0?this._idx=this._end)?(this.item=this._list[this._idx],this.key=this._idx=this._idx+this._step,!0):!1},e}();function jS(e){e.option=e.parentModel=e.ecModel=null}function sn(){return[1/0,-1/0]}function CM(e,t){Ms(t)&&(te[1]&&(e[1]=t))}function HG(e,t){Ms(t)&&te[1]&&(e[1]=t)}function mte(e,t){jc(t[0],t[1])&&(t[0]e[1]&&(e[1]=t[1]))}function Ms(e){return e!=null&&isFinite(e)}function jc(e,t){return Ms(e)&&Ms(t)&&e<=t}function yte(e){var t=e[1]-e[0];return isFinite(t)&&t>=0}function Rx(e){jc(e[0],e[1])&&e[0]>e[1]&&(e[0]=e[1])}function Fd(){var e="__ec_once_"+xte++;return function(t,r){ge(t,e)||(t[e]=1,r())}}var xte=Ok();function k1(e,t,r){var n=pe(),a=0;j(e,function(i){var o=t(i),s=n.get(o)||0;r&&r(i,s),!s&&!r&&(e[a++]=i),n.set(o,s+1)}),r||(e.length=a)}function _te(e){return e.value+""}function bte(e){return e+""}function _o(e,t){return _e(t,!0)?e.seriesIndex+2:0}function WG(e,t,r){var n=e.getData().count();return{progressiveRender:r.progressiveEnabled&&t.incrementalPrepareRender&&n>=r.threshold,large:e.get("large")&&n>=e.get("largeThreshold"),modDataCount:e.get("progressiveChunkMode")==="mod"?e.getData().count():null}}function Er(e,t){return{seriesType:e,overallReset:t}}function Lm(e){return{overallReset:e}}var wte=".",bu="___EC__COMPONENT__CONTAINER___",ZG="___EC__EXTENDED_CLASS___";function lo(e){var t={main:"",sub:""};if(e){var r=e.split(wte);t.main=r[0]||"",t.sub=r[1]||""}return t}function Ste(e){fn(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(e),'componentType "'+e+'" illegal')}function Cte(e){return!!(e&&e[ZG])}function Vk(e,t){e.$constructor=e,e.extend=function(r){var n=this,a;return Tte(n)?a=function(i){X(o,i);function o(){return i.apply(this,arguments)||this}return o}(n):(a=function(){(r.$constructor||n).apply(this,arguments)},Tk(a,this)),te(a.prototype,r),a[ZG]=!0,a.extend=this.extend,a.superCall=Nte,a.superApply=kte,a.superClass=n,a}}function Tte(e){return Me(e)&&/^class\s/.test(Function.prototype.toString.call(e))}function $G(e,t){e.extend=t.extend}var Mte=Math.round(Math.random()*10);function Ate(e){var t=["__\0is_clz",Mte++].join("_");e.prototype[t]=!0,e.isInstance=function(r){return!!(r&&r[t])}}function Nte(e,t){for(var r=[],n=2;n=0||i&&Ve(i,l)<0)){var u=n.getShallow(l,t);u!=null&&(o[e[s][0]]=u)}}return o}}var Lte=[["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]],Ite=Rc(Lte),Pte=function(){function e(){}return e.prototype.getAreaStyle=function(t,r){return Ite(this,t,r)},e}(),TM=new cd(50);function Dte(e){if(typeof e=="string"){var t=TM.get(e);return t&&t.image}else return e}function Gk(e,t,r,n,a){if(e)if(typeof e=="string"){if(t&&t.__zrImageSrc===e||!r)return t;var i=TM.get(e),o={hostEl:r,cb:n,cbPayload:a};return i?(t=i.image,!I1(t)&&i.pending.push(o)):(t=Vr.loadImage(e,Mj,Mj),t.__zrImageSrc=e,TM.put(e,t.__cachedImgObj={image:t,pending:[o]})),t}else return e;else return t}function Mj(){var e=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var t=0;t=s;u++)l-=s;var c=xo(o,r);return c>l&&(r="",c=0),l=e-c,a.ellipsis=r,a.ellipsisWidth=c,a.contentWidth=l,a.containerWidth=e,a}function qG(e,t,r){var n=r.containerWidth,a=r.contentWidth,i=r.fontMeasureInfo;if(!n){e.textLine="",e.isTruncated=!1;return}var o=xo(i,t);if(o<=n){e.textLine=t,e.isTruncated=!1;return}for(var s=0;;s++){if(o<=a||s>=r.maxIterations){t+=r.ellipsis;break}var l=s===0?jte(t,a,i):o>0?Math.floor(t.length*a/o):0;t=t.substr(0,l),o=xo(i,t)}t===""&&(t=r.placeholder),e.textLine=t,e.isTruncated=!0}function jte(e,t,r){for(var n=0,a=0,i=e.length;ay&&v){var w=Math.floor(y/d);g=g||x.length>w,x=x.slice(0,w),_=x.length*d}if(a&&c&&m!=null)for(var S=XG(m,u,t.ellipsis,{minChar:t.truncateMinChar,placeholder:t.placeholder}),C={},M=0;Mg&&OS(i,o.substring(g,y),t,v),OS(i,m[2],t,v,m[1]),g=RS.lastIndex}gh){var Z=i.lines.length;z>0?(k.tokens=k.tokens.slice(0,z),A(k,D,P),i.lines=i.lines.slice(0,I+1)):i.lines=i.lines.slice(0,I),i.isTruncated=i.isTruncated||i.lines.length0&&g+n.accumWidth>n.width&&(c=t.split(` -`),u=!0),n.accumWidth=g}else{var m=KG(t,l,n.width,n.breakAll,n.accumWidth);n.accumWidth=m.accumWidth+v,h=m.linesWidths,c=m.lines}}c||(c=t.split(` -`));for(var y=yo(l),x=0;x=32&&t<=591||t>=880&&t<=4351||t>=4608&&t<=5119||t>=7680&&t<=8303}var Vte=ti(",&?/;] ".split(""),function(e,t){return e[t]=!0,e},{});function Gte(e){return Fte(e)?!!Vte[e]:!0}function KG(e,t,r,n,a){for(var i=[],o=[],s="",l="",u=0,c=0,h=yo(t),d=0;dr:a+c+g>r){c?(s||l)&&(m?(s||(s=l,l="",u=0,c=u),i.push(s),o.push(c-u),l+=v,u+=g,s="",c=u):(l&&(s+=l,l="",u=0),i.push(s),o.push(c),s=v,c=g)):m?(i.push(l),o.push(u),l=v,u=g):(i.push(v),o.push(g));continue}c+=g,m?(l+=v,u+=g):(l&&(s+=l,l="",u=0),s+=v)}return l&&(s+=l),s&&(i.push(s),o.push(c)),i.length===1&&(c+=a),{accumWidth:c,lines:i,linesWidths:o}}function Nj(e,t,r,n,a,i){if(e.baseX=r,e.baseY=n,e.outerWidth=e.outerHeight=null,!!t){var o=t.width*2,s=t.height*2;ke.set(kj,hd(r,o,a),pc(n,s,i),o,s),ke.intersect(t,kj,null,Lj);var l=Lj.outIntersectRect;e.outerWidth=l.width,e.outerHeight=l.height,e.baseX=hd(l.x,l.width,a,!0),e.baseY=pc(l.y,l.height,i,!0)}}var kj=new ke(0,0,0,0),Lj={outIntersectRect:{},clamp:!0};function Hk(e){return e!=null?e+="":e=""}function Hte(e){var t=Hk(e.text),r=e.font,n=xo(yo(r),t),a=km(r);return MM(e,n,a,null)}function MM(e,t,r,n){var a=new ke(hd(e.x||0,t,e.textAlign),pc(e.y||0,r,e.textBaseline),t,r),i=n??(JG(e)?e.lineWidth:0);return i>0&&(a.x-=i/2,a.y-=i/2,a.width+=i,a.height+=i),a}function JG(e){var t=e.stroke;return t!=null&&t!=="none"&&e.lineWidth>0}var AM="__zr_style_"+Math.round(Math.random()*10),gc={shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,shadowColor:"#000",opacity:1,blend:"source-over"},P1={style:{shadowBlur:!0,shadowOffsetX:!0,shadowOffsetY:!0,shadowColor:!0,opacity:!0}};gc[AM]=!0;var Ij=["z","z2","invisible"],Ute=["invisible"],ai=function(e){X(t,e);function t(r){return e.call(this,r)||this}return t.prototype._init=function(r){for(var n=at(r),a=0;a1e-4){s[0]=e-r,s[1]=t-n,l[0]=e+r,l[1]=t+n;return}if(t0[0]=VS(a)*r+e,t0[1]=FS(a)*n+t,r0[0]=VS(i)*r+e,r0[1]=FS(i)*n+t,u(s,t0,r0),c(l,t0,r0),a=a%wu,a<0&&(a=a+wu),i=i%wu,i<0&&(i=i+wu),a>i&&!o?i+=wu:aa&&(n0[0]=VS(v)*r+e,n0[1]=FS(v)*n+t,u(s,n0,s),c(l,n0,l))}var zt={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},Su=[],Cu=[],$i=[],Ws=[],Yi=[],Xi=[],GS=Math.min,HS=Math.max,Tu=Math.cos,Mu=Math.sin,Yo=Math.abs,NM=Math.PI,el=NM*2,US=typeof Float32Array<"u",Bv=[];function WS(e){var t=Math.round(e/NM*1e8)/1e8;return t%2*NM}function E1(e,t){var r=WS(e[0]);r<0&&(r+=el);var n=r-e[0],a=e[1];a+=n,!t&&a-r>=el?a=r+el:t&&r-a>=el?a=r-el:!t&&r>a?a=r+(el-WS(r-a)):t&&r0&&(this._ux=Yo(n/j_/t)||0,this._uy=Yo(n/j_/r)||0)},e.prototype.setDPR=function(t){this.dpr=t},e.prototype.setContext=function(t){this._ctx=t},e.prototype.getContext=function(){return this._ctx},e.prototype.beginPath=function(){return this._ctx&&this._ctx.beginPath(),this.reset(),this},e.prototype.reset=function(){this._saveData&&(this._len=0),this._pathSegLen&&(this._pathSegLen=null,this._pathLen=0),this._version++},e.prototype.moveTo=function(t,r){return this._drawPendingPt(),this.addData(zt.M,t,r),this._ctx&&this._ctx.moveTo(t,r),this._x0=t,this._y0=r,this._xi=t,this._yi=r,this},e.prototype.lineTo=function(t,r){var n=Yo(t-this._xi),a=Yo(r-this._yi),i=n>this._ux||a>this._uy;if(this.addData(zt.L,t,r),this._ctx&&i&&this._ctx.lineTo(t,r),i)this._xi=t,this._yi=r,this._pendingPtDist=0;else{var o=n*n+a*a;o>this._pendingPtDist&&(this._pendingPtX=t,this._pendingPtY=r,this._pendingPtDist=o)}return this},e.prototype.bezierCurveTo=function(t,r,n,a,i,o){return this._drawPendingPt(),this.addData(zt.C,t,r,n,a,i,o),this._ctx&&this._ctx.bezierCurveTo(t,r,n,a,i,o),this._xi=i,this._yi=o,this},e.prototype.quadraticCurveTo=function(t,r,n,a){return this._drawPendingPt(),this.addData(zt.Q,t,r,n,a),this._ctx&&this._ctx.quadraticCurveTo(t,r,n,a),this._xi=n,this._yi=a,this},e.prototype.arc=function(t,r,n,a,i,o){this._drawPendingPt(),Bv[0]=a,Bv[1]=i,E1(Bv,o),a=Bv[0],i=Bv[1];var s=i-a;return this.addData(zt.A,t,r,n,n,a,s,0,o?0:1),this._ctx&&this._ctx.arc(t,r,n,a,i,o),this._xi=Tu(i)*n+t,this._yi=Mu(i)*n+r,this},e.prototype.arcTo=function(t,r,n,a,i){return this._drawPendingPt(),this._ctx&&this._ctx.arcTo(t,r,n,a,i),this},e.prototype.rect=function(t,r,n,a){return this._drawPendingPt(),this._ctx&&this._ctx.rect(t,r,n,a),this.addData(zt.R,t,r,n,a),this},e.prototype.closePath=function(){this._drawPendingPt(),this.addData(zt.Z);var t=this._ctx,r=this._x0,n=this._y0;return t&&t.closePath(),this._xi=r,this._yi=n,this},e.prototype.fill=function(t){t&&t.fill(),this.toStatic()},e.prototype.stroke=function(t){t&&t.stroke(),this.toStatic()},e.prototype.len=function(){return this._len},e.prototype.setData=function(t){if(this._saveData){var r=t.length;!(this.data&&this.data.length===r)&&US&&(this.data=new Float32Array(r));for(var n=0;n0&&o))for(var s=0;sc.length&&(this._expandData(),c=this.data);for(var h=0;h0&&(this._ctx&&this._ctx.lineTo(this._pendingPtX,this._pendingPtY),this._pendingPtDist=0)},e.prototype._expandData=function(){if(!(this.data instanceof Array)){for(var t=[],r=0;r11&&(this.data=new Float32Array(t)))}},e.prototype.getBoundingRect=function(){$i[0]=$i[1]=Yi[0]=Yi[1]=Number.MAX_VALUE,Ws[0]=Ws[1]=Xi[0]=Xi[1]=-Number.MAX_VALUE;var t=this.data,r=0,n=0,a=0,i=0,o;for(o=0;on||Yo(w)>a||d===r-1)&&(m=Math.sqrt(_*_+w*w),i=y,o=x);break}case zt.C:{var S=t[d++],C=t[d++],y=t[d++],x=t[d++],M=t[d++],A=t[d++];m=XQ(i,o,S,C,y,x,M,A,10),i=M,o=A;break}case zt.Q:{var S=t[d++],C=t[d++],y=t[d++],x=t[d++];m=KQ(i,o,S,C,y,x,10),i=y,o=x;break}case zt.A:var I=t[d++],k=t[d++],P=t[d++],D=t[d++],z=t[d++],E=t[d++],B=E+z;d+=1,g&&(s=Tu(z)*P+I,l=Mu(z)*D+k),m=HS(P,D)*GS(el,Math.abs(E)),i=Tu(B)*P+I,o=Mu(B)*D+k;break;case zt.R:{s=i=t[d++],l=o=t[d++];var H=t[d++],V=t[d++];m=H*2+V*2;break}case zt.Z:{var _=s-i,w=l-o;m=Math.sqrt(_*_+w*w),i=s,o=l;break}}m>=0&&(u[h++]=m,c+=m)}return this._pathLen=c,c},e.prototype.rebuildPath=function(t,r){var n=this.data,a=this._ux,i=this._uy,o=this._len,s,l,u,c,h,d,v=r<1,g,m,y=0,x=0,_,w=0,S,C;if(!(v&&(this._pathSegLen||this._calculateLength(),g=this._pathSegLen,m=this._pathLen,_=r*m,!_)))e:for(var M=0;M0&&(t.lineTo(S,C),w=0),A){case zt.M:s=u=n[M++],l=c=n[M++],t.moveTo(u,c);break;case zt.L:{h=n[M++],d=n[M++];var k=Yo(h-u),P=Yo(d-c);if(k>a||P>i){if(v){var D=g[x++];if(y+D>_){var z=(_-y)/D;t.lineTo(u*(1-z)+h*z,c*(1-z)+d*z);break e}y+=D}t.lineTo(h,d),u=h,c=d,w=0}else{var E=k*k+P*P;E>w&&(S=h,C=d,w=E)}break}case zt.C:{var B=n[M++],H=n[M++],V=n[M++],U=n[M++],F=n[M++],Z=n[M++];if(v){var D=g[x++];if(y+D>_){var z=(_-y)/D;Fl(u,B,V,F,z,Su),Fl(c,H,U,Z,z,Cu),t.bezierCurveTo(Su[1],Cu[1],Su[2],Cu[2],Su[3],Cu[3]);break e}y+=D}t.bezierCurveTo(B,H,V,U,F,Z),u=F,c=Z;break}case zt.Q:{var B=n[M++],H=n[M++],V=n[M++],U=n[M++];if(v){var D=g[x++];if(y+D>_){var z=(_-y)/D;Lg(u,B,V,z,Su),Lg(c,H,U,z,Cu),t.quadraticCurveTo(Su[1],Cu[1],Su[2],Cu[2]);break e}y+=D}t.quadraticCurveTo(B,H,V,U),u=V,c=U;break}case zt.A:var $=n[M++],W=n[M++],q=n[M++],re=n[M++],Q=n[M++],se=n[M++],ce=n[M++],Ue=!n[M++],ye=q>re?q:re,me=Yo(q-re)>.001,Oe=Q+se,be=!1;if(v){var D=g[x++];y+D>_&&(Oe=Q+se*(_-y)/D,be=!0),y+=D}if(me&&t.ellipse?t.ellipse($,W,q,re,ce,Q,Oe,Ue):t.arc($,W,ye,Q,Oe,Ue),be)break e;I&&(s=Tu(Q)*q+$,l=Mu(Q)*re+W),u=Tu(Oe)*q+$,c=Mu(Oe)*re+W;break;case zt.R:s=u=n[M],l=c=n[M+1],h=n[M++],d=n[M++];var we=n[M++],yt=n[M++];if(v){var D=g[x++];if(y+D>_){var nt=_-y;t.moveTo(h,d),t.lineTo(h+GS(nt,we),d),nt-=we,nt>0&&t.lineTo(h+we,d+GS(nt,yt)),nt-=yt,nt>0&&t.lineTo(h+HS(we-nt,0),d+yt),nt-=we,nt>0&&t.lineTo(h,d+HS(yt-nt,0));break e}y+=D}t.rect(h,d,we,yt);break;case zt.Z:if(v){var D=g[x++];if(y+D>_){var z=(_-y)/D;t.lineTo(u*(1-z)+s*z,c*(1-z)+l*z);break e}y+=D}t.closePath(),u=s,c=l}}},e.prototype.clone=function(){var t=new e,r=this.data;return t.data=r.slice?r.slice():Array.prototype.slice.call(r),t._len=this._len,t},e.prototype.canSave=function(){return!!this._saveData},e.CMD=zt,e.initDefaultProps=function(){var t=e.prototype;t._saveData=!0,t._ux=0,t._uy=0,t._pendingPtDist=0,t._version=0}(),e}();function al(e,t,r,n,a,i,o){if(a===0)return!1;var s=a,l=0,u=e;if(o>t+s&&o>n+s||oe+s&&i>r+s||it+h&&c>n+h&&c>i+h&&c>s+h||ce+h&&u>r+h&&u>a+h&&u>o+h||ut+u&&l>n+u&&l>i+u||le+u&&s>r+u&&s>a+u||sr||c+ua&&(a+=Fv);var d=Math.atan2(l,s);return d<0&&(d+=Fv),d>=n&&d<=a||d+Fv>=n&&d+Fv<=a}function ts(e,t,r,n,a,i){if(i>t&&i>n||ia?s:0}var Zs=Po.CMD,Au=Math.PI*2,Kte=1e-4;function Jte(e,t){return Math.abs(e-t)t&&u>n&&u>i&&u>s||u1&&Qte(),v=zr(t,n,i,s,Ga[0]),d>1&&(g=zr(t,n,i,s,Ga[1]))),d===2?yt&&s>n&&s>i||s=0&&u<=1){for(var c=0,h=Xr(t,n,i,u),d=0;dr||s<-r)return 0;var l=Math.sqrt(r*r-s*s);Rn[0]=-l,Rn[1]=l;var u=Math.abs(n-a);if(u<1e-4)return 0;if(u>=Au-1e-4){n=0,a=Au;var c=i?1:-1;return o>=Rn[0]+e&&o<=Rn[1]+e?c:0}if(n>a){var h=n;n=a,a=h}n<0&&(n+=Au,a+=Au);for(var d=0,v=0;v<2;v++){var g=Rn[v];if(g+e>o){var m=Math.atan2(s,g),c=i?1:-1;m<0&&(m=Au+m),(m>=n&&m<=a||m+Au>=n&&m+Au<=a)&&(m>Math.PI/2&&m1&&(r||(s+=ts(l,u,c,h,n,a))),y&&(l=i[g],u=i[g+1],c=l,h=u),m){case Zs.M:c=i[g++],h=i[g++],l=c,u=h;break;case Zs.L:if(r){if(al(l,u,i[g],i[g+1],t,n,a))return!0}else s+=ts(l,u,i[g],i[g+1],n,a)||0;l=i[g++],u=i[g++];break;case Zs.C:if(r){if(Xte(l,u,i[g++],i[g++],i[g++],i[g++],i[g],i[g+1],t,n,a))return!0}else s+=ere(l,u,i[g++],i[g++],i[g++],i[g++],i[g],i[g+1],n,a)||0;l=i[g++],u=i[g++];break;case Zs.Q:if(r){if(QG(l,u,i[g++],i[g++],i[g],i[g+1],t,n,a))return!0}else s+=tre(l,u,i[g++],i[g++],i[g],i[g+1],n,a)||0;l=i[g++],u=i[g++];break;case Zs.A:var x=i[g++],_=i[g++],w=i[g++],S=i[g++],C=i[g++],M=i[g++];g+=1;var A=!!(1-i[g++]);d=Math.cos(C)*w+x,v=Math.sin(C)*S+_,y?(c=d,h=v):s+=ts(l,u,d,v,n,a);var I=(n-x)*S/w+x;if(r){if(qte(x,_,S,C,C+M,A,t,I,a))return!0}else s+=rre(x,_,S,C,C+M,A,I,a);l=Math.cos(C+M)*w+x,u=Math.sin(C+M)*S+_;break;case Zs.R:c=l=i[g++],h=u=i[g++];var k=i[g++],P=i[g++];if(d=c+k,v=h+P,r){if(al(c,h,d,h,t,n,a)||al(d,h,d,v,t,n,a)||al(d,v,c,v,t,n,a)||al(c,v,c,h,t,n,a))return!0}else s+=ts(d,h,d,v,n,a),s+=ts(c,v,c,h,n,a);break;case Zs.Z:if(r){if(al(l,u,c,h,t,n,a))return!0}else s+=ts(l,u,c,h,n,a);l=c,u=h;break}}return!r&&!Jte(u,h)&&(s+=ts(l,u,c,h,n,a)||0),s!==0}function nre(e,t,r){return eH(e,0,!1,t,r)}function are(e,t,r,n){return eH(e,t,!0,r,n)}var F_=Le({fill:"#000",stroke:null,strokePercent:1,fillOpacity:1,strokeOpacity:1,lineDashOffset:0,lineWidth:1,lineCap:"butt",miterLimit:10,strokeNoScale:!1,strokeFirst:!1},gc),ire={style:Le({fill:!0,stroke:!0,strokePercent:!0,fillOpacity:!0,strokeOpacity:!0,lineDashOffset:!0,lineWidth:!0,miterLimit:!0},P1.style)},ZS=Ts.concat(["invisible","culling","z","z2","zlevel","parent"]),rt=function(e){X(t,e);function t(r){return e.call(this,r)||this}return t.prototype.update=function(){var r=this;e.prototype.update.call(this);var n=this.style;if(n.decal){var a=this._decalEl=this._decalEl||new t;a.buildPath===t.prototype.buildPath&&(a.buildPath=function(l){r.buildPath(l,r.shape)}),a.silent=!0;var i=a.style;for(var o in n)i[o]!==n[o]&&(i[o]=n[o]);i.fill=n.fill?n.decal:null,i.decal=null,i.shadowColor=null,n.strokeFirst&&(i.stroke=null);for(var s=0;s.5?yM:n>.2?Nee:xM}else if(r)return xM}return yM},t.prototype.getInsideTextStroke=function(r){var n=this.style.fill;if(ue(n)){var a=this.__zr,i=!!(a&&a.isDarkMode()),o=Dg(r,0)0))},t.prototype.hasFill=function(){var r=this.style,n=r.fill;return n!=null&&n!=="none"},t.prototype.getBoundingRect=function(){var r=this._rect,n=this.style,a=!r;if(a){var i=!1;this.path||(i=!0,this.createPathProxy());var o=this.path;(i||this.__dirty&ff)&&(o.beginPath(),this.buildPath(o,this.shape,!1),this.pathUpdated()),r=o.getBoundingRect()}if(this._rect=r,this.hasStroke()&&this.path&&this.path.len()>0){var s=this._rectStroke||(this._rectStroke=r.clone());if(this.__dirty||a){s.copy(r);var l=n.strokeNoScale?this.getLineScale():1,u=n.lineWidth;if(!this.hasFill()){var c=this.strokeContainThreshold;u=Math.max(u,c??4)}l>1e-10&&(s.width+=u/l,s.height+=u/l,s.x-=u/l/2,s.y-=u/l/2)}return s}return r},t.prototype.contain=function(r,n){var a=this.transformCoordToLocal(r,n),i=this.getBoundingRect(),o=this.style;if(r=a[0],n=a[1],i.contain(r,n)){var s=this.path;if(this.hasStroke()){var l=o.lineWidth,u=o.strokeNoScale?this.getLineScale():1;if(u>1e-10&&(this.hasFill()||(l=Math.max(l,this.strokeContainThreshold)),are(s,l/u,r,n)))return!0}if(this.hasFill())return nre(s,r,n)}return!1},t.prototype.dirtyShape=function(){this.__dirty|=ff,this._rect&&(this._rect=null),this._decalEl&&this._decalEl.dirtyShape(),this.markRedraw()},t.prototype.dirty=function(){this.dirtyStyle(),this.dirtyShape()},t.prototype.animateShape=function(r){return this.animate("shape",r)},t.prototype.updateDuringAnimation=function(r){r==="style"?this.dirtyStyle():r==="shape"?this.dirtyShape():this.markRedraw()},t.prototype.attrKV=function(r,n){r==="shape"?this.setShape(n):e.prototype.attrKV.call(this,r,n)},t.prototype.setShape=function(r,n){var a=this.shape;return a||(a=this.shape={}),typeof r=="string"?a[r]=n:te(a,r),this.dirtyShape(),this},t.prototype.shapeChanged=function(){return!!(this.__dirty&ff)},t.prototype.createStyle=function(r){return Nm(F_,r)},t.prototype._innerSaveToNormal=function(r){e.prototype._innerSaveToNormal.call(this,r);var n=this._normalState;r.shape&&!n.shape&&(n.shape=te({},this.shape))},t.prototype._applyStateObj=function(r,n,a,i,o,s){if(e.prototype._applyStateObj.call(this,r,n,a,i,o,s),this.__inHover!==T1){var l=!(n&&i),u;if(n&&n.shape?o?i?u=n.shape:(u=te({},a.shape),te(u,n.shape)):(u=te({},i?this.shape:a.shape),te(u,n.shape)):l&&(u=a.shape),u)if(o){this.shape=te({},this.shape);for(var c={},h=at(u),d=0;da&&(h=s+l,s*=a/h,l*=a/h),u+c>a&&(h=u+c,u*=a/h,c*=a/h),l+u>i&&(h=l+u,l*=i/h,u*=i/h),s+c>i&&(h=s+c,s*=i/h,c*=i/h),e.moveTo(r+s,n),e.lineTo(r+a-l,n),l!==0&&e.arc(r+a-l,n+l,l,-Math.PI/2,0),e.lineTo(r+a,n+i-u),u!==0&&e.arc(r+a-u,n+i-u,u,0,Math.PI/2),e.lineTo(r+c,n+i),c!==0&&e.arc(r+c,n+i-c,c,Math.PI/2,Math.PI),e.lineTo(r,n+s),s!==0&&e.arc(r+s,n+s,s,Math.PI,Math.PI*1.5),e.closePath()}var Lf=Math.round;function j1(e,t,r){if(t){var n=t.x1,a=t.x2,i=t.y1,o=t.y2;e.x1=n,e.x2=a,e.y1=i,e.y2=o;var s=r&&r.lineWidth;return s&&(Lf(n*2)===Lf(a*2)&&(e.x1=e.x2=wa(n,s,!0)),Lf(i*2)===Lf(o*2)&&(e.y1=e.y2=wa(i,s,!0))),e}}function tH(e,t,r){if(t){var n=t.x,a=t.y,i=t.width,o=t.height;e.x=n,e.y=a,e.width=i,e.height=o;var s=r&&r.lineWidth;return s&&(e.x=wa(n,s,!0),e.y=wa(a,s,!0),e.width=Math.max(wa(n+i,s,!1)-e.x,i===0?0:1),e.height=Math.max(wa(a+o,s,!1)-e.y,o===0?0:1)),e}}function wa(e,t,r){if(!t)return e;var n=Lf(e*2);return(n+Lf(t))%2===0?n/2:(n+(r?1:-1))/2}var hre=function(){function e(){this.x=0,this.y=0,this.width=0,this.height=0}return e}(),fre={},Ke=function(e){X(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new hre},t.prototype.buildPath=function(r,n){var a,i,o,s;if(this.subPixelOptimize){var l=tH(fre,n,this.style);a=l.x,i=l.y,o=l.width,s=l.height,l.r=n.r,n=l}else a=n.x,i=n.y,o=n.width,s=n.height;n.r?cre(r,n):r.rect(a,i,o,s)},t.prototype.isZeroArea=function(){return!this.shape.width||!this.shape.height},t}(rt);Ke.prototype.type="rect";var Rj={fill:"#000"},Oj=2,qi={},dre={style:Le({fill:!0,stroke:!0,fillOpacity:!0,strokeOpacity:!0,lineWidth:!0,fontSize:!0,lineHeight:!0,width:!0,height:!0,textShadowColor:!0,textShadowBlur:!0,textShadowOffsetX:!0,textShadowOffsetY:!0,backgroundColor:!0,padding:!0,borderColor:!0,borderWidth:!0,borderRadius:!0},P1.style)},ht=function(e){X(t,e);function t(r){var n=e.call(this)||this;return n.type="text",n._children=[],n._defaultStyle=Rj,n.attr(r),n}return t.prototype.childrenRef=function(){return this._children},t.prototype.update=function(){e.prototype.update.call(this),this.styleChanged()&&this._updateSubTexts();for(var r=0;r0,z=0;z=0&&(B=M[E],B.align==="right");)this._placeToken(B,r,I,x,z,"right",w),k-=B.width,z-=B.width,E--;for(D+=(c-(D-y)-(_-z)-k)/2;P<=E;)B=M[P],this._placeToken(B,r,I,x,D+B.width/2,"center",w),D+=B.width,P++;x+=I}},t.prototype._placeToken=function(r,n,a,i,o,s,l){var u=n.rich[r.styleName]||{};u.text=r.text;var c=r.verticalAlign,h=i+a/2;c==="top"?h=i+r.height/2:c==="bottom"&&(h=i+a-r.height/2);var d=!r.isLineHolder&&$S(u);d&&this._renderBackground(u,n,s==="right"?o-r.width:s==="center"?o-r.width/2:o,h-r.height/2,r.width,r.height);var v=!!u.backgroundColor,g=r.textPadding;g&&(o=Hj(o,s,g),h-=r.height/2-g[0]-r.innerHeight/2);var m=this._getOrCreateChild(fd),y=m.createStyle();m.useStyle(y);var x=this._defaultStyle,_=!1,w=0,S=!1,C=Gj("fill"in u?u.fill:"fill"in n?n.fill:(_=!0,x.fill)),M=Vj("stroke"in u?u.stroke:"stroke"in n?n.stroke:!v&&!l&&(!x.autoStroke||_)?(w=Oj,S=!0,x.stroke):null),A=u.textShadowBlur>0||n.textShadowBlur>0;y.text=r.text,y.x=o,y.y=h,A&&(y.shadowBlur=u.textShadowBlur||n.textShadowBlur||0,y.shadowColor=u.textShadowColor||n.textShadowColor||"transparent",y.shadowOffsetX=u.textShadowOffsetX||n.textShadowOffsetX||0,y.shadowOffsetY=u.textShadowOffsetY||n.textShadowOffsetY||0),y.textAlign=s,y.textBaseline="middle",y.font=r.font||Ss,y.opacity=ia(u.opacity,n.opacity,1),Bj(y,u),M&&(y.lineWidth=ia(u.lineWidth,n.lineWidth,w),y.lineDash=_e(u.lineDash,n.lineDash),y.lineDashOffset=n.lineDashOffset||0,y.stroke=M),C&&(y.fill=C),m.setBoundingRect(MM(y,r.contentWidth,r.contentHeight,S?0:null))},t.prototype._renderBackground=function(r,n,a,i,o,s){var l=r.backgroundColor,u=r.borderWidth,c=r.borderColor,h=l&&l.image,d=l&&!h,v=r.borderRadius,g=this,m,y;if(d||r.lineHeight||u&&c){m=this._getOrCreateChild(Ke),m.useStyle(m.createStyle()),m.style.fill=null;var x=m.shape;x.x=a,x.y=i,x.width=o,x.height=s,x.r=v,m.dirtyShape()}if(d){var _=m.style;_.fill=l||null,_.fillOpacity=_e(r.fillOpacity,1)}else if(h){y=this._getOrCreateChild(Ur),y.onload=function(){g.dirtyStyle()};var w=y.style;w.image=l.image,w.x=a,w.y=i,w.width=o,w.height=s}if(u&&c){var _=m.style;_.lineWidth=u,_.stroke=c,_.strokeOpacity=_e(r.strokeOpacity,1),_.lineDash=r.borderDash,_.lineDashOffset=r.borderDashOffset||0,m.strokeContainThreshold=0,m.hasFill()&&m.hasStroke()&&(_.strokeFirst=!0,_.lineWidth*=2)}var S=(m||y).style;S.shadowBlur=r.shadowBlur||0,S.shadowColor=r.shadowColor||"transparent",S.shadowOffsetX=r.shadowOffsetX||0,S.shadowOffsetY=r.shadowOffsetY||0,S.opacity=ia(r.opacity,n.opacity,1)},t.makeFont=function(r){var n="";return nH(r)&&(n=[r.fontStyle,r.fontWeight,rH(r.fontSize),r.fontFamily||"sans-serif"].join(" ")),n&&_a(n)||r.textFont||r.font},t}(ai),vre={left:!0,right:1,center:1},pre={top:1,bottom:1,middle:1},zj=["fontStyle","fontWeight","fontSize","fontFamily"];function rH(e){return typeof e=="string"&&(e.indexOf("px")!==-1||e.indexOf("rem")!==-1||e.indexOf("em")!==-1)?e:isNaN(+e)?bk+"px":e+"px"}function Bj(e,t){for(var r=0;r=0,i=!1;if(e instanceof rt){var o=uH(e),s=a&&o.selectFill||o.normalFill,l=a&&o.selectStroke||o.normalStroke;if(Hh(s)||Hh(l)){n=n||{};var u=n.style||{};u.fill==="inherit"?(i=!0,n=te({},n),u=te({},u),u.fill=s):!Hh(u.fill)&&Hh(s)?(i=!0,n=te({},n),u=te({},u),u.fill=D_(s)):!Hh(u.stroke)&&Hh(l)&&(i||(n=te({},n),u=te({},u)),u.stroke=D_(l)),n.style=u}}if(n&&n.z2==null){i||(n=te({},n));var c=e.z2EmphasisLift;n.z2=e.z2+(c??Gd)}return n}function Sre(e,t,r){if(r&&r.z2==null){r=te({},r);var n=e.z2SelectLift;r.z2=e.z2+(n??yre)}return r}function Cre(e,t,r){var n=Ve(e.currentStates,t)>=0,a=e.style.opacity,i=n?null:bre(e,["opacity"],t,{opacity:1});r=r||{};var o=r.style||{};return o.opacity==null&&(r=te({},r),o=te({opacity:n?a:i.opacity*.1},o),r.style=o),r}function YS(e,t){var r=this.states[e];if(this.style){if(e==="emphasis")return wre(this,e,t,r);if(e==="blur")return Cre(this,e,r);if(e==="select")return Sre(this,e,r)}return r}function Oc(e){e.stateProxy=YS;var t=e.getTextContent(),r=e.getTextGuideLine();t&&(t.stateProxy=YS),r&&(r.stateProxy=YS)}function Yj(e,t){!gH(e,t)&&!e.__highByOuter&&Rs(e,cH)}function Xj(e,t){!gH(e,t)&&!e.__highByOuter&&Rs(e,hH)}function As(e,t){e.__highByOuter|=1<<(t||0),Rs(e,cH)}function Ns(e,t){!(e.__highByOuter&=~(1<<(t||0)))&&Rs(e,hH)}function dH(e){Rs(e,$k)}function Yk(e){Rs(e,fH)}function vH(e){Rs(e,xre)}function pH(e){Rs(e,_re)}function gH(e,t){return e.__highDownSilentOnTouch&&t.zrByTouch}function mH(e){var t=e.getModel(),r=[],n=[];t.eachComponent(function(a,i){var o=Uk(i),s=lH(e,i),l=a==="series";!l&&n.push(s),o.isBlured&&(s.group.traverse(function(u){fH(u)}),l&&r.push(i)),o.isBlured=!1}),j(n,function(a){a&&a.toggleBlurSeries&&a.toggleBlurSeries(r,!1,t)})}function IM(e,t,r,n){var a=n.getModel();r=r||"coordinateSystem";function i(u,c){for(var h=0;h0){var s={dataIndex:o,seriesIndex:r.seriesIndex};i!=null&&(s.dataType=i),t.push(s)}})}),t}function Il(e,t,r){lc(e,!0),Rs(e,Oc),DM(e,t,r)}function Lre(e){lc(e,!1)}function Yt(e,t,r,n){n?Lre(e):Il(e,t,r)}function DM(e,t,r){var n=Ee(e);t!=null?(n.focus=t,n.blurScope=r):n.focus&&(n.focus=null)}var Kj=["emphasis","blur","select"],Ire={itemStyle:"getItemStyle",lineStyle:"getLineStyle",areaStyle:"getAreaStyle"};function Pr(e,t,r,n){r=r||"itemStyle";for(var a=0;a1&&(o*=XS(g),s*=XS(g));var m=(a===i?-1:1)*XS((o*o*(s*s)-o*o*(v*v)-s*s*(d*d))/(o*o*(v*v)+s*s*(d*d)))||0,y=m*o*v/s,x=m*-s*d/o,_=(e+r)/2+i0(h)*y-a0(h)*x,w=(t+n)/2+a0(h)*y+i0(h)*x,S=tR([1,0],[(d-y)/o,(v-x)/s]),C=[(d-y)/o,(v-x)/s],M=[(-1*d-y)/o,(-1*v-x)/s],A=tR(C,M);if(jM(C,M)<=-1&&(A=Vv),jM(C,M)>=1&&(A=0),A<0){var I=Math.round(A/Vv*1e6)/1e6;A=Vv*2+I%2*Vv}c.addData(u,_,w,o,s,S,A,h,i)}var Ore=/([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig,zre=/-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g;function Bre(e){var t=new Po;if(!e)return t;var r=0,n=0,a=r,i=n,o,s=Po.CMD,l=e.match(Ore);if(!l)return t;for(var u=0;uB*B+H*H&&(I=P,k=D),{cx:I,cy:k,x0:-c,y0:-h,x1:I*(a/C-1),y1:k*(a/C-1)}}function Zre(e){var t;if(ne(e)){var r=e.length;if(!r)return e;r===1?t=[e[0],e[0],0,0]:r===2?t=[e[0],e[0],e[1],e[1]]:r===3?t=e.concat(e[2]):t=e}else t=[e,e,e,e];return t}function $re(e,t){var r,n=Cp(t.r,0),a=Cp(t.r0||0,0),i=n>0,o=a>0;if(!(!i&&!o)){if(i||(n=a,a=0),a>n){var s=n;n=a,a=s}var l=t.startAngle,u=t.endAngle;if(!(isNaN(l)||isNaN(u))){var c=t.cx,h=t.cy,d=!!t.clockwise,v=nR(u-l),g=v>qS&&v%qS;if(g>gi&&(v=g),!(n>gi))e.moveTo(c,h);else if(v>qS-gi)e.moveTo(c+n*Wh(l),h+n*Nu(l)),e.arc(c,h,n,l,u,!d),a>gi&&(e.moveTo(c+a*Wh(u),h+a*Nu(u)),e.arc(c,h,a,u,l,d));else{var m=void 0,y=void 0,x=void 0,_=void 0,w=void 0,S=void 0,C=void 0,M=void 0,A=void 0,I=void 0,k=void 0,P=void 0,D=void 0,z=void 0,E=void 0,B=void 0,H=n*Wh(l),V=n*Nu(l),U=a*Wh(u),F=a*Nu(u),Z=v>gi;if(Z){var $=t.cornerRadius;$&&(r=Zre($),m=r[0],y=r[1],x=r[2],_=r[3]);var W=nR(n-a)/2;if(w=Ki(W,x),S=Ki(W,_),C=Ki(W,m),M=Ki(W,y),k=A=Cp(w,S),P=I=Cp(C,M),(A>gi||I>gi)&&(D=n*Wh(u),z=n*Nu(u),E=a*Wh(l),B=a*Nu(l),vgi){var me=Ki(x,k),Oe=Ki(_,k),be=o0(E,B,H,V,n,me,d),we=o0(D,z,U,F,n,Oe,d);e.moveTo(c+be.cx+be.x0,h+be.cy+be.y0),k0&&e.arc(c+be.cx,h+be.cy,me,_n(be.y0,be.x0),_n(be.y1,be.x1),!d),e.arc(c,h,n,_n(be.cy+be.y1,be.cx+be.x1),_n(we.cy+we.y1,we.cx+we.x1),!d),Oe>0&&e.arc(c+we.cx,h+we.cy,Oe,_n(we.y1,we.x1),_n(we.y0,we.x0),!d))}else e.moveTo(c+H,h+V),e.arc(c,h,n,l,u,!d);if(!(a>gi)||!Z)e.lineTo(c+U,h+F);else if(P>gi){var me=Ki(m,P),Oe=Ki(y,P),be=o0(U,F,D,z,a,-Oe,d),we=o0(H,V,E,B,a,-me,d);e.lineTo(c+be.cx+be.x0,h+be.cy+be.y0),P0&&e.arc(c+be.cx,h+be.cy,Oe,_n(be.y0,be.x0),_n(be.y1,be.x1),!d),e.arc(c,h,a,_n(be.cy+be.y1,be.cx+be.x1),_n(we.cy+we.y1,we.cx+we.x1),d),me>0&&e.arc(c+we.cx,h+we.cy,me,_n(we.y1,we.x1),_n(we.y0,we.x0),!d))}else e.lineTo(c+U,h+F),e.arc(c,h,a,u,l,d)}e.closePath()}}}var Yre=function(){function e(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=Math.PI*2,this.clockwise=!0,this.cornerRadius=0}return e}(),dn=function(e){X(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new Yre},t.prototype.buildPath=function(r,n){$re(r,n)},t.prototype.isZeroArea=function(){return this.shape.startAngle===this.shape.endAngle||this.shape.r===this.shape.r0},t}(rt);dn.prototype.type="sector";var Xre=function(){function e(){this.cx=0,this.cy=0,this.r=0,this.r0=0}return e}(),Hd=function(e){X(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new Xre},t.prototype.buildPath=function(r,n){var a=n.cx,i=n.cy,o=Math.PI*2;r.moveTo(a+n.r,i),r.arc(a,i,n.r,0,o,!1),r.moveTo(a+n.r0,i),r.arc(a,i,n.r0,0,o,!0)},t}(rt);Hd.prototype.type="ring";function qre(e,t,r,n){var a=[],i=[],o=[],s=[],l,u,c,h;if(n){c=[1/0,1/0],h=[-1/0,-1/0];for(var d=0,v=e.length;d=2){if(n){var i=qre(a,n,r,t.smoothConstraint);e.moveTo(a[0][0],a[0][1]);for(var o=a.length,s=0;s<(r?o:o-1);s++){var l=i[s*2],u=i[s*2+1],c=a[(s+1)%o];e.bezierCurveTo(l[0],l[1],u[0],u[1],c[0],c[1])}}else{e.moveTo(a[0][0],a[0][1]);for(var s=1,h=a.length;sLu[1]){if(i=!1,$r.negativeSize||n)return i;var l=s0(Lu[0]-ku[1]),u=s0(ku[0]-Lu[1]);KS(l,u)>u0.len()&&(l=u||!$r.bidirectional)&&(Pe.scale(l0,s,-u*a),$r.useDir&&$r.calcDirMTV()))}}return i},e.prototype._getProjMinMaxOnAxis=function(t,r,n){for(var a=this._axes[t],i=this._origin,o=r[0].dot(a)+i[t],s=o,l=o,u=1;u0){var h=c.duration,d=c.delay,v=c.easing,g={duration:h,delay:d||0,easing:v,done:i,force:!!i||!!o,setToFinal:!u,scope:e,during:o};s?t.animateFrom(r,g):t.animateTo(r,g)}else t.stopAnimation(),!s&&t.attr(r),o&&o(1),i&&i()}function mt(e,t,r,n,a,i){Jk("update",e,t,r,n,a,i)}function Ut(e,t,r,n,a,i){Jk("enter",e,t,r,n,a,i)}function Zf(e){if(!e.__zr)return!0;for(var t=0;tnr(i[1])?i[0]>0?"right":"left":i[1]>0?"bottom":"top"}function oR(e){return!e.isGroup}function hne(e){return e.shape!=null}function jm(e,t,r){if(!e||!t)return;function n(o){var s={};return o.traverse(function(l){oR(l)&&l.anid&&(s[l.anid]=l)}),s}function a(o){var s={x:o.x,y:o.y,rotation:o.rotation};return hne(o)&&(s.shape=Te(o.shape)),s}var i=n(e);t.traverse(function(o){if(oR(o)&&o.anid){var s=i[o.anid];if(s){var l=a(o);o.attr(a(s)),mt(o,l,r,Ee(o).dataIndex)}}})}function tL(e,t){return oe(e,function(r){var n=r[0];n=qe(n,t.x),n=Mt(n,t.x+t.width);var a=r[1];return a=qe(a,t.y),a=Mt(a,t.y+t.height),[n,a]})}function jH(e,t){var r=qe(e.x,t.x),n=Mt(e.x+e.width,t.x+t.width),a=qe(e.y,t.y),i=Mt(e.y+e.height,t.y+t.height);if(n>=r&&i>=a)return{x:r,y:a,width:n-r,height:i-a}}function $d(e,t,r){var n=te({rectHover:!0},t),a=n.style={strokeNoScale:!0};if(r=r||{x:-1,y:-1,width:2,height:2},e)return e.indexOf("image://")===0?(a.image=e.slice(8),Le(a,r),new Ur(n)):dd(e.replace("path://",""),n,r,"center")}function Tp(e,t,r,n,a){for(var i=0,o=a[a.length-1];i1)return!1;var y=JS(v,g,c,h)/d;return!(y<0||y>1)}function JS(e,t,r,n){return e*n-r*t}function fne(e){return e<=1e-6&&e>=-1e-6}function zc(e,t,r,n,a){return t==null||(ft(t)?Kt[0]=Kt[1]=Kt[2]=Kt[3]=t:(Kt[0]=t[0],Kt[1]=t[1],Kt[2]=t[2],Kt[3]=t[3]),n&&(Kt[0]=qe(0,Kt[0]),Kt[1]=qe(0,Kt[1]),Kt[2]=qe(0,Kt[2]),Kt[3]=qe(0,Kt[3])),r&&(Kt[0]=-Kt[0],Kt[1]=-Kt[1],Kt[2]=-Kt[2],Kt[3]=-Kt[3]),sR(e,Kt,"x","width",3,1,a&&a[0]||0),sR(e,Kt,"y","height",0,2,a&&a[1]||0)),e}var Kt=[0,0,0,0];function sR(e,t,r,n,a,i,o){var s=t[i]+t[a],l=e[n];e[n]+=s,o=qe(0,Mt(o,l)),e[n]=0?-t[a]:t[i]>=0?l+t[i]:nr(s)>1e-8?(l-o)*t[a]/s:0):e[r]-=t[a]}function Os(e){var t=e.itemTooltipOption,r=e.componentModel,n=e.itemName,a=ue(t)?{formatter:t}:t,i=r.mainType,o=r.componentIndex,s={componentType:i,name:n,$vars:["name"]};s[i+"Index"]=o;var l=e.formatterParamsExtra;l&&j(at(l),function(c){ge(s,c)||(s[c]=l[c],s.$vars.push(c))});var u=Ee(e.el);u.componentMainType=i,u.componentIndex=o,u.tooltipConfig={name:n,option:Le({content:n,encodeHTMLContent:!0,formatterParams:s},a)}}function OM(e,t){var r;e.isGroup&&(r=t(e)),r||e.traverse(t)}function au(e,t){if(e)if(ne(e))for(var r=0;rt&&(t=o),ot&&(r=t=0),{min:r,max:t}}function B1(e,t,r){zH(e,t,r,-1/0)}function zH(e,t,r,n){if(e.ignoreModelZ)return n;var a=e.getTextContent(),i=e.getTextGuideLine(),o=e.isGroup;if(o)for(var s=e.childrenRef(),l=0;l=0&&s.push(l)}),s}}function iu(e,t){return We(We({},e,!0),t,!0)}const Cne={time:{month:["January","February","March","April","May","June","July","August","September","October","November","December"],monthAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayOfWeekAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},legend:{selector:{all:"All",inverse:"Inv"}},toolbox:{brush:{title:{rect:"Box Select",polygon:"Lasso Select",lineX:"Horizontally Select",lineY:"Vertically Select",keep:"Keep Selections",clear:"Clear Selections"}},dataView:{title:"Data View",lang:["Data View","Close","Refresh"]},dataZoom:{title:{zoom:"Zoom",back:"Zoom Reset"}},magicType:{title:{line:"Switch to Line Chart",bar:"Switch to Bar Chart",stack:"Stack",tiled:"Tile"}},restore:{title:"Restore"},saveAsImage:{title:"Save as Image",lang:["Right Click to Save Image"]}},series:{typeNames:{pie:"Pie chart",bar:"Bar chart",line:"Line chart",scatter:"Scatter plot",effectScatter:"Ripple scatter plot",radar:"Radar chart",tree:"Tree",treemap:"Treemap",boxplot:"Boxplot",candlestick:"Candlestick",k:"K line chart",heatmap:"Heat map",map:"Map",parallel:"Parallel coordinate map",lines:"Line graph",graph:"Relationship graph",sankey:"Sankey diagram",funnel:"Funnel chart",gauge:"Gauge",pictorialBar:"Pictorial bar",themeRiver:"Theme River Map",sunburst:"Sunburst",custom:"Custom chart",chart:"Chart"}},aria:{general:{withTitle:'This is a chart about "{title}"',withoutTitle:"This is a chart"},series:{single:{prefix:"",withName:" with type {seriesType} named {seriesName}.",withoutName:" with type {seriesType}."},multiple:{prefix:". It consists of {seriesCount} series count.",withName:" The {seriesId} series is a {seriesType} representing {seriesName}.",withoutName:" The {seriesId} series is a {seriesType}.",separator:{middle:"",end:""}}},data:{allData:"The data is as follows: ",partialData:"The first {displayCnt} items are: ",withName:"the data for {name} is {value}",withoutName:"{value}",separator:{middle:", ",end:". "}}}},Tne={time:{month:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthAbbr:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayOfWeekAbbr:["日","一","二","三","四","五","六"]},legend:{selector:{all:"全选",inverse:"反选"}},toolbox:{brush:{title:{rect:"矩形选择",polygon:"圈选",lineX:"横向选择",lineY:"纵向选择",keep:"保持选择",clear:"清除选择"}},dataView:{title:"数据视图",lang:["数据视图","关闭","刷新"]},dataZoom:{title:{zoom:"区域缩放",back:"区域缩放还原"}},magicType:{title:{line:"切换为折线图",bar:"切换为柱状图",stack:"切换为堆叠",tiled:"切换为平铺"}},restore:{title:"还原"},saveAsImage:{title:"保存为图片",lang:["右键另存为图片"]}},series:{typeNames:{pie:"饼图",bar:"柱状图",line:"折线图",scatter:"散点图",effectScatter:"涟漪散点图",radar:"雷达图",tree:"树图",treemap:"矩形树图",boxplot:"箱型图",candlestick:"K线图",k:"K线图",heatmap:"热力图",map:"地图",parallel:"平行坐标图",lines:"线图",graph:"关系图",sankey:"桑基图",funnel:"漏斗图",gauge:"仪表盘图",pictorialBar:"象形柱图",themeRiver:"主题河流图",sunburst:"旭日图",custom:"自定义图表",chart:"图表"}},aria:{general:{withTitle:"这是一个关于“{title}”的图表。",withoutTitle:"这是一个图表,"},series:{single:{prefix:"",withName:"图表类型是{seriesType},表示{seriesName}。",withoutName:"图表类型是{seriesType}。"},multiple:{prefix:"它由{seriesCount}个图表系列组成。",withName:"第{seriesId}个系列是一个表示{seriesName}的{seriesType},",withoutName:"第{seriesId}个系列是一个{seriesType},",separator:{middle:";",end:"。"}}},data:{allData:"其数据是——",partialData:"其中,前{displayCnt}项是——",withName:"{name}的数据是{value}",withoutName:"{value}",separator:{middle:",",end:""}}}};var W_="ZH",oL="EN",$f=oL,Fx={},sL={},UH=ot.domSupported?function(){var e=(document.documentElement.lang||navigator.language||navigator.browserLanguage||$f).toUpperCase();return e.indexOf(W_)>-1?W_:$f}():$f;function lL(e,t){e=e.toUpperCase(),sL[e]=new tt(t),Fx[e]=t}function Mne(e){if(ue(e)){var t=Fx[e.toUpperCase()]||{};return e===W_||e===oL?Te(t):We(Te(t),Te(Fx[$f]),!1)}else return We(Te(e),Te(Fx[$f]),!1)}function FM(e){return sL[e]}function Ane(){return sL[$f]}lL(oL,Cne);lL(W_,Tne);var VM=null;function Nne(e){VM||(VM=e)}function xr(){return VM}function WH(e,t){var r=xr(),n=t.breakOption,a=t.breakParsed;return!a&&r&&(a=r.parseAxisBreakOption(n,e)),a}function Z_(e){var t=e.brk;return t?t.breaks:[]}function $_(e){var t=e.brk;return t?t.hasBreaks():!1}var uL=1e3,cL=uL*60,eg=cL*60,$a=eg*24,fR=$a*365,kne={year:/({yyyy}|{yy})/,month:/({MMMM}|{MMM}|{MM}|{M})/,day:/({dd}|{d})/,hour:/({HH}|{H}|{hh}|{h})/,minute:/({mm}|{m})/,second:/({ss}|{s})/,millisecond:/({SSS}|{S})/},Vx={year:"{yyyy}",month:"{MMM}",day:"{d}",hour:"{HH}:{mm}",minute:"{HH}:{mm}",second:"{HH}:{mm}:{ss}",millisecond:"{HH}:{mm}:{ss} {SSS}"},Lne="{yyyy}-{MM}-{dd} {HH}:{mm}:{ss} {SSS}",h0="{yyyy}-{MM}-{dd}",dR={year:"{yyyy}",month:"{yyyy}-{MM}",day:h0,hour:h0+" "+Vx.hour,minute:h0+" "+Vx.minute,second:h0+" "+Vx.second,millisecond:Lne},ga=["year","month","day","hour","minute","second","millisecond"],Ine=["year","half-year","quarter","month","week","half-week","day","half-day","quarter-day","hour","minute","second","millisecond"];function Pne(e){return!ue(e)&&!Me(e)?Dne(e):e}function Dne(e){e=e||{};var t={},r=!0;return j(ga,function(n){r&&(r=e[n]==null)}),j(ga,function(n,a){var i=e[n];t[n]={};for(var o=null,s=a;s>=0;s--){var l=ga[s],u=Ie(i)&&!ne(i)?i[l]:i,c=void 0;ne(u)?(c=u.slice(),o=c[0]||""):ue(u)?(o=u,c=[o]):(o==null?o=Vx[n]:kne[l].test(o)||(o=t[l][l][0]+" "+o),c=[o],r&&(c[1]="{primary|"+o+"}")),t[n][l]=c}}),t}function On(e,t){return e+="","0000".substr(0,t-e.length)+e}function tg(e){switch(e){case"half-year":case"quarter":return"month";case"week":case"half-week":return"day";case"half-day":case"quarter-day":return"hour";default:return e}}function Ene(e){return e===tg(e)}function jne(e){switch(e){case"year":case"month":return"day";case"millisecond":return"millisecond";default:return"second"}}function Rm(e,t,r,n){var a=Fo(e),i=a[ZH(r)](),o=a[hL(r)]()+1,s=Math.floor((o-1)/3)+1,l=a[fL(r)](),u=a["get"+(r?"UTC":"")+"Day"](),c=a[dL(r)](),h=(c-1)%12+1,d=a[vL(r)](),v=a[pL(r)](),g=a[gL(r)](),m=c>=12?"pm":"am",y=m.toUpperCase(),x=n instanceof tt?n:FM(n||UH)||Ane(),_=x.getModel("time"),w=_.get("month"),S=_.get("monthAbbr"),C=_.get("dayOfWeek"),M=_.get("dayOfWeekAbbr");return(t||"").replace(/{a}/g,m+"").replace(/{A}/g,y+"").replace(/{yyyy}/g,i+"").replace(/{yy}/g,On(i%100+"",2)).replace(/{Q}/g,s+"").replace(/{MMMM}/g,w[o-1]).replace(/{MMM}/g,S[o-1]).replace(/{MM}/g,On(o,2)).replace(/{M}/g,o+"").replace(/{dd}/g,On(l,2)).replace(/{d}/g,l+"").replace(/{eeee}/g,C[u]).replace(/{ee}/g,M[u]).replace(/{e}/g,u+"").replace(/{HH}/g,On(c,2)).replace(/{H}/g,c+"").replace(/{hh}/g,On(h+"",2)).replace(/{h}/g,h+"").replace(/{mm}/g,On(d,2)).replace(/{m}/g,d+"").replace(/{ss}/g,On(v,2)).replace(/{s}/g,v+"").replace(/{SSS}/g,On(g,3)).replace(/{S}/g,g+"")}function Rne(e,t,r,n,a){var i=null;if(ue(r))i=r;else if(Me(r)){var o={time:e.time,level:e.time?e.time.level:0},s=xr();s&&s.makeAxisLabelFormatterParamBreak(o,e.break),i=r(e.value,t,o)}else{var l=e.time;if(l){var u=r[l.lowerTimeUnit][l.upperTimeUnit];i=u[Math.min(l.level,u.length-1)]||""}else{var c=Yf(e.value,a);i=r[c][c][0]}}return Rm(new Date(e.value),i,a,n)}function Yf(e,t){var r=Fo(e),n=r[hL(t)]()+1,a=r[fL(t)](),i=r[dL(t)](),o=r[vL(t)](),s=r[pL(t)](),l=r[gL(t)](),u=l===0,c=u&&s===0,h=c&&o===0,d=h&&i===0,v=d&&a===1,g=v&&n===1;return g?"year":v?"month":d?"day":h?"hour":c?"minute":u?"second":"millisecond"}function Y_(e,t,r){switch(t){case"year":e[$H(r)](0);case"month":e[YH(r)](1);case"day":e[XH(r)](0);case"hour":e[qH(r)](0);case"minute":e[KH(r)](0);case"second":e[JH(r)](0)}return e}function ZH(e){return e?"getUTCFullYear":"getFullYear"}function hL(e){return e?"getUTCMonth":"getMonth"}function fL(e){return e?"getUTCDate":"getDate"}function dL(e){return e?"getUTCHours":"getHours"}function vL(e){return e?"getUTCMinutes":"getMinutes"}function pL(e){return e?"getUTCSeconds":"getSeconds"}function gL(e){return e?"getUTCMilliseconds":"getMilliseconds"}function One(e){return e?"setUTCFullYear":"setFullYear"}function $H(e){return e?"setUTCMonth":"setMonth"}function YH(e){return e?"setUTCDate":"setDate"}function XH(e){return e?"setUTCHours":"setHours"}function qH(e){return e?"setUTCMinutes":"setMinutes"}function KH(e){return e?"setUTCSeconds":"setSeconds"}function JH(e){return e?"setUTCMilliseconds":"setMilliseconds"}function zne(e,t,r,n,a,i,o,s){var l=new ht({style:{text:e,font:t,align:r,verticalAlign:n,padding:a,rich:i,overflow:o?"truncate":null,lineHeight:s}});return l.getBoundingRect()}function mL(e){if(!Rk(e))return ue(e)?e:"-";var t=(e+"").split(".");return t[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(t.length>1?"."+t[1]:"")}function yL(e,t){return e=(e||"").toLowerCase().replace(/-(.)/g,function(r,n){return n.toUpperCase()}),t&&e&&(e=e.charAt(0).toUpperCase()+e.slice(1)),e}var Xd=Am;function GM(e,t,r){var n="{yyyy}-{MM}-{dd} {HH}:{mm}:{ss}";function a(c){return c&&_a(c)?c:"-"}function i(c){return ni(c)}var o=t==="time",s=e instanceof Date;if(o||s){var l=o?Fo(e):e;if(isNaN(+l)){if(s)return"-"}else return Rm(l,n,r)}if(t==="ordinal")return T_(e)?a(e):ft(e)&&i(e)?e+"":"-";var u=Io(e);return i(u)?mL(u):T_(e)?a(e):typeof e=="boolean"?e+"":"-"}var vR=["a","b","c","d","e","f","g"],tC=function(e,t){return"{"+e+(t??"")+"}"};function xL(e,t,r){ne(t)||(t=[t]);var n=t.length;if(!n)return"";for(var a=t[0].$vars||[],i=0;i':'';var o=r.markerId||"markerX";return{renderMode:i,content:"{"+o+"|} ",style:a==="subItem"?{width:4,height:4,borderRadius:2,backgroundColor:n}:{width:10,height:10,borderRadius:5,backgroundColor:n}}}function Bne(e,t,r){(e==="week"||e==="month"||e==="quarter"||e==="half-year"||e==="year")&&(e=`MM-dd -yyyy`);var n=Fo(t),a=r?"getUTC":"get",i=n[a+"FullYear"](),o=n[a+"Month"]()+1,s=n[a+"Date"](),l=n[a+"Hours"](),u=n[a+"Minutes"](),c=n[a+"Seconds"](),h=n[a+"Milliseconds"]();return e=e.replace("MM",On(o,2)).replace("M",o).replace("yyyy",i).replace("yy",On(i%100+"",2)).replace("dd",On(s,2)).replace("d",s).replace("hh",On(l,2)).replace("h",l).replace("mm",On(u,2)).replace("m",u).replace("ss",On(c,2)).replace("s",c).replace("SSS",On(h,3)),e}function Fne(e){return e&&e.charAt(0).toUpperCase()+e.substr(1)}function Fc(e,t){return t=t||"transparent",ue(e)?e:Ie(e)&&e.colorStops&&(e.colorStops[0]||{}).color||t}function X_(e,t){if(t==="_blank"||t==="blank"){var r=window.open();r.opener=null,r.location.href=e}else window.open(e,t)}var Gx={},rC={},qd=function(){function e(){this._normalMasterList=[],this._nonSeriesBoxMasterList=[]}return e.prototype.create=function(t,r){this._nonSeriesBoxMasterList=n(Gx),this._normalMasterList=n(rC);function n(a,i){var o=[];return j(a,function(s,l){var u=s.create(t,r);o=o.concat(u||[])}),o}},e.prototype.update=function(t,r){j(this._normalMasterList,function(n){n.update&&n.update(t,r)})},e.prototype.getCoordinateSystems=function(){return this._normalMasterList.concat(this._nonSeriesBoxMasterList)},e.register=function(t,r){if(t==="matrix"||t==="calendar"){Gx[t]=r;return}rC[t]=r},e.get=function(t){return rC[t]||Gx[t]},e}();function Vne(e){return!!Gx[e]}var Gne=1,t7=2;function Hne(e){r7.set(e.fullType,{getCoord2:void 0}).getCoord2=e.getCoord2}var r7=pe();function n7(e){var t=e.getShallow("coord",!0),r=Gne;if(t==null){var n=r7.get(e.type);n&&n.getCoord2&&(r=t7,t=n.getCoord2(e))}return{coord:t,from:r}}var Xf=0,Hx=1,a7=2;function i7(e,t){var r=e.getShallow("coordinateSystem"),n=e.getShallow("coordinateSystemUsage",!0),a=Xf;if(r){var i=e.mainType==="series";n==null&&(n=i?"data":"box"),n==="data"?(a=Hx,i||(a=Xf)):n==="box"&&(a=a7,!i&&!Vne(r)&&(a=Xf))}return{coordSysType:r,kind:a}}function Om(e){var t=e.targetModel,r=e.coordSysType,n=e.coordSysProvider,a=e.isDefaultDataCoordSys;e.allowNotFound;var i=i7(t),o=i.kind,s=i.coordSysType;if(a&&o!==Hx&&(o=Hx,s=r),o===Xf||s!==r)return Xf;var l=n(r,t);return l?(o===Hx?t.coordinateSystem=l:t.boxCoordinateSystem=l,o):Xf}var o7=function(e,t){var r=t.getReferringComponents(e,sr).models[0];return r&&r.coordinateSystem},Ux=j,s7=["left","right","top","bottom","width","height"],uc=[["width","left","right"],["height","top","bottom"]];function _L(e,t,r,n,a){var i=0,o=0;n==null&&(n=1/0),a==null&&(a=1/0);var s=0;t.eachChild(function(l,u){var c=l.getBoundingRect(),h=t.childAt(u+1),d=h&&h.getBoundingRect(),v,g;if(e==="horizontal"){var m=c.width+(d?-d.x+c.x:0);v=i+m,v>n||l.newline?(i=0,v=m,o+=s+r,s=c.height):s=Math.max(s,c.height)}else{var y=c.height+(d?-d.y+c.y:0);g=o+y,g>a||l.newline?(i+=s+r,o=0,g=y,s=c.width):s=Math.max(s,c.width)}l.newline||(l.x=i,l.y=o,l.markRedraw(),e==="horizontal"?i=v+r:o=g+r)})}var xc=_L;Xe(_L,"vertical");Xe(_L,"horizontal");function l7(e,t){return{left:e.getShallow("left",t),top:e.getShallow("top",t),right:e.getShallow("right",t),bottom:e.getShallow("bottom",t),width:e.getShallow("width",t),height:e.getShallow("height",t)}}function Une(e,t){var r=jr(e,t,{enableLayoutOnlyByCenter:!0}),n=e.getBoxLayoutParams(),a,i;if(r.type===Ap.point)i=r.refPoint,a=Zt(n,{width:t.getWidth(),height:t.getHeight()});else{var o=e.get("center"),s=ne(o)?o:[o,o];a=Zt(n,r.refContainer),i=r.boxCoordFrom===t7?r.refPoint:[fe(s[0],a.width)+a.x,fe(s[1],a.height)+a.y]}return{viewRect:a,center:i}}function u7(e,t){var r=Une(e,t),n=r.viewRect,a=r.center,i=e.get("radius");ne(i)||(i=[0,i]);var o=fe(n.width,t.getWidth()),s=fe(n.height,t.getHeight()),l=Math.min(o,s),u=fe(i[0],l/2),c=fe(i[1],l/2);return{cx:a[0],cy:a[1],r0:u,r:c,viewRect:n}}function Zt(e,t,r){r=Xd(r||0);var n=t.width,a=t.height,i=fe(e.left,n),o=fe(e.top,a),s=fe(e.right,n),l=fe(e.bottom,a),u=fe(e.width,n),c=fe(e.height,a),h=r[2]+r[0],d=r[1]+r[3],v=e.aspect;switch(isNaN(u)&&(u=n-s-d-i),isNaN(c)&&(c=a-l-h-o),v!=null&&(isNaN(u)&&isNaN(c)&&(v>n/a?u=n*.8:c=a*.8),isNaN(u)&&(u=v*c),isNaN(c)&&(c=u/v)),isNaN(i)&&(i=n-s-u-d),isNaN(o)&&(o=a-l-c-h),e.left||e.right){case"center":i=n/2-u/2-r[3];break;case"right":i=n-u-d;break}switch(e.top||e.bottom){case"middle":case"center":o=a/2-c/2-r[0];break;case"bottom":o=a-c-h;break}i=i||0,o=o||0,isNaN(u)&&(u=n-d-i-(s||0)),isNaN(c)&&(c=a-h-o-(l||0));var g=new ke((t.x||0)+i+r[3],(t.y||0)+o+r[0],u,c);return g.margin=r,g}function c7(e,t,r){var n=e.getShallow("preserveAspect",!0);if(!n)return t;var a=t.width/t.height;if(Math.abs(Math.atan(r)-Math.atan(a))<1e-9)return t;var i=e.getShallow("preserveAspectAlign",!0),o=e.getShallow("preserveAspectVerticalAlign",!0),s={width:t.width,height:t.height},l=n==="cover";return a>r&&!l||a=m)return h;for(var y=0;y=0;l--)s=We(s,a[l],!0);n.defaultOption=s}return n.defaultOption},t.prototype.getReferringComponents=function(r,n){var a=r+"Index",i=r+"Id";return Bd(this.ecModel,r,{index:this.get(a,!0),id:this.get(i,!0)},n)},t.prototype.getBoxLayoutParams=function(){return l7(this,!1)},t.prototype.getZLevelKey=function(){return""},t.prototype.setZLevel=function(r){this.option.zlevel=r},t.protoInitialize=function(){var r=t.prototype;r.type="component",r.id="",r.name="",r.mainType="",r.subType="",r.componentIndex=0}(),t}(tt);$G(Qe,tt);L1(Qe);wne(Qe);Sne(Qe,$ne);function $ne(e){var t=[];return j(Qe.getClassesByMainType(e),function(r){t=t.concat(r.dependencies||r.prototype.dependencies||[])}),t=oe(t,function(r){return lo(r).main}),e!=="dataset"&&Ve(t,"dataset")<=0&&t.unshift("dataset"),t}var K={color:{},darkColor:{},size:{}},pr=K.color={theme:["#5070dd","#b6d634","#505372","#ff994d","#0ca8df","#ffd10a","#fb628b","#785db0","#3fbe95"],neutral00:"#fff",neutral05:"#f4f7fd",neutral10:"#e8ebf0",neutral15:"#dbdee4",neutral20:"#cfd2d7",neutral25:"#c3c5cb",neutral30:"#b7b9be",neutral35:"#aaacb2",neutral40:"#9ea0a5",neutral45:"#929399",neutral50:"#86878c",neutral55:"#797b7f",neutral60:"#6d6e73",neutral65:"#616266",neutral70:"#54555a",neutral75:"#48494d",neutral80:"#3c3c41",neutral85:"#303034",neutral90:"#232328",neutral95:"#17171b",neutral99:"#000",accent05:"#eff1f9",accent10:"#e0e4f2",accent15:"#d0d6ec",accent20:"#c0c9e6",accent25:"#b1bbdf",accent30:"#a1aed9",accent35:"#91a0d3",accent40:"#8292cc",accent45:"#7285c6",accent50:"#6578ba",accent55:"#5c6da9",accent60:"#536298",accent65:"#4a5787",accent70:"#404c76",accent75:"#374165",accent80:"#2e3654",accent85:"#252b43",accent90:"#1b2032",accent95:"#121521",transparent:"rgba(0,0,0,0)",highlight:"rgba(255,231,130,0.8)"};te(pr,{primary:pr.neutral80,secondary:pr.neutral70,tertiary:pr.neutral60,quaternary:pr.neutral50,disabled:pr.neutral20,border:pr.neutral30,borderTint:pr.neutral20,borderShade:pr.neutral40,background:pr.neutral05,backgroundTint:"rgba(234,237,245,0.5)",backgroundTransparent:"rgba(255,255,255,0)",backgroundShade:pr.neutral10,shadow:"rgba(0,0,0,0.2)",shadowTint:"rgba(129,130,136,0.2)",axisLine:pr.neutral70,axisLineTint:pr.neutral40,axisTick:pr.neutral70,axisTickMinor:pr.neutral60,axisLabel:pr.neutral70,axisSplitLine:pr.neutral15,axisMinorSplitLine:pr.neutral05});for(var Iu in pr)if(pr.hasOwnProperty(Iu)){var pR=pr[Iu];Iu==="theme"?K.darkColor.theme=pr.theme.slice():Iu==="highlight"?K.darkColor.highlight="rgba(255,231,130,0.4)":Iu.indexOf("accent")===0?K.darkColor[Iu]=ds(pR,null,function(e){return e*.5},function(e){return Math.min(1,1.3-e)}):K.darkColor[Iu]=ds(pR,null,function(e){return e*.9},function(e){return 1-Math.pow(e,1.5)})}K.size={xxs:2,xs:5,s:10,m:15,l:20,xl:30,xxl:40,xxxl:50};var f7="";typeof navigator<"u"&&(f7=navigator.platform||"");var Zh="rgba(0, 0, 0, 0.2)",d7=K.color.theme[0],Yne=ds(d7,null,null,.9);const v7={darkMode:"auto",colorBy:"series",color:K.color.theme,gradientColor:[Yne,d7],aria:{decal:{decals:[{color:Zh,dashArrayX:[1,0],dashArrayY:[2,5],symbolSize:1,rotation:Math.PI/6},{color:Zh,symbol:"circle",dashArrayX:[[8,8],[0,8,8,0]],dashArrayY:[6,0],symbolSize:.8},{color:Zh,dashArrayX:[1,0],dashArrayY:[4,3],rotation:-Math.PI/4},{color:Zh,dashArrayX:[[6,6],[0,6,6,0]],dashArrayY:[6,0]},{color:Zh,dashArrayX:[[1,0],[1,6]],dashArrayY:[1,0,6,0],rotation:Math.PI/4},{color:Zh,symbol:"triangle",dashArrayX:[[9,9],[0,9,9,0]],dashArrayY:[7,2],symbolSize:.75}]}},textStyle:{fontFamily:f7.match(/^Win/)?"Microsoft YaHei":"sans-serif",fontSize:12,fontStyle:"normal",fontWeight:"normal"},blendMode:null,stateAnimation:{duration:300,easing:"cubicOut"},animation:"auto",animationDuration:1e3,animationDurationUpdate:500,animationEasing:"cubicInOut",animationEasingUpdate:"cubicInOut",animationThreshold:2e3,progressiveThreshold:3e3,progressive:400,hoverLayerThreshold:3e3,useUTC:!1};var rn={Must:1,Might:2,Not:3},p7=Ze();function Xne(e){p7(e).datasetMap=pe()}function g7(e,t,r){var n={},a=wL(t);if(!a||!e)return n;var i=[],o=[],s=t.ecModel,l=p7(s).datasetMap,u=a.uid+"_"+r.seriesLayoutBy,c,h;e=e.slice(),j(e,function(m,y){var x=Ie(m)?m:e[y]={name:m};x.type==="ordinal"&&c==null&&(c=y,h=g(x)),n[x.name]=[]});var d=l.get(u)||l.set(u,{categoryWayDim:h,valueWayDim:0});j(e,function(m,y){var x=m.name,_=g(m);if(c==null){var w=d.valueWayDim;v(n[x],w,_),v(o,w,_),d.valueWayDim+=_}else if(c===y)v(n[x],0,_),v(i,0,_);else{var w=d.categoryWayDim;v(n[x],w,_),v(o,w,_),d.categoryWayDim+=_}});function v(m,y,x){for(var _=0;_t)return e[n];return e[r-1]}function x7(e,t,r,n,a,i,o){i=i||e;var s=t(i),l=s.paletteIdx||0,u=s.paletteNameMap=s.paletteNameMap||{};if(u.hasOwnProperty(a))return u[a];var c=o==null||!n?r:eae(n,o);if(c=c||r,!(!c||!c.length)){var h=c[l];return a&&(u[a]=h),s.paletteIdx=(l+1)%c.length,h}}function tae(e,t){t(e).paletteIdx=0,t(e).paletteNameMap={}}var f0,Gv,mR,yR="\0_ec_inner",rae=1,CL=function(e){X(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.init=function(r,n,a,i,o,s){i=i||{},this.option=null,this._theme=new tt(i),this._locale=new tt(o),this._optionManager=s},t.prototype.setOption=function(r,n,a){var i=bR(n);this._optionManager.setOption(r,a,i),this._resetOption(null,i)},t.prototype.resetOption=function(r,n){return this._resetOption(r,bR(n))},t.prototype._resetOption=function(r,n){var a=!1,i=this._optionManager;if(!r||r==="recreate"){var o=i.mountOption(r==="recreate");!this.option||r==="recreate"?mR(this,o):(this.restoreData(),this._mergeOption(o,n)),a=!0}if((r==="timeline"||r==="media")&&this.restoreData(),!r||r==="recreate"||r==="timeline"){var s=i.getTimelineOption(this);s&&(a=!0,this._mergeOption(s,n))}if(!r||r==="recreate"||r==="media"){var l=i.getMediaOption(this);l.length&&j(l,function(u){a=!0,this._mergeOption(u,n)},this)}return a},t.prototype.mergeOption=function(r){this._mergeOption(r,null)},t.prototype._mergeOption=function(r,n){var a=this.option,i=this._componentsMap,o=this._componentsCount,s=[],l=pe(),u=n&&n.replaceMergeMainTypeMap;Xne(this),j(r,function(h,d){h!=null&&(Qe.hasClass(d)?d&&(s.push(d),l.set(d,!0)):a[d]=a[d]==null?Te(h):We(a[d],h,!0))}),u&&u.each(function(h,d){Qe.hasClass(d)&&!l.get(d)&&(s.push(d),l.set(d,!0))}),Qe.topologicalTravel(s,Qe.getAllClassMainTypes(),c,this);function c(h){var d=Jne(this,h,jt(r[h])),v=i.get(h),g=v?u&&u.get(h)?"replaceMerge":"normalMerge":"replaceAll",m=BG(v,d,g);cte(m,h,Qe),a[h]=null,i.set(h,null),o.set(h,0);var y=[],x=[],_=0,w;j(m,function(S,C){var M=S.existing,A=S.newOption;if(!A)M&&(M.mergeOption({},this),M.optionUpdated({},!1));else{var I=h==="series",k=Qe.getClass(h,S.keyInfo.subType,!I);if(!k)return;if(h==="tooltip"){if(w)return;w=!0}if(M&&M.constructor===k)M.name=S.keyInfo.name,M.mergeOption(A,this),M.optionUpdated(A,!1);else{var P=te({componentIndex:C},S.keyInfo);M=new k(A,this,this,P),te(M,P),S.brandNew&&(M.__requireNewView=!0),M.init(A,this,this),M.optionUpdated(null,!0)}}M?(y.push(M.option),x.push(M),_++):(y.push(void 0),x.push(void 0))},this),a[h]=y,i.set(h,x),o.set(h,_),h==="series"&&f0(this)}this._seriesIndices||f0(this)},t.prototype.getOption=function(){var r=Te(this.option);return j(r,function(n,a){if(Qe.hasClass(a)){for(var i=jt(n),o=i.length,s=!1,l=o-1;l>=0;l--)i[l]&&!Og(i[l])?s=!0:(i[l]=null,!s&&o--);i.length=o,r[a]=i}}),delete r[yR],r},t.prototype.setTheme=function(r){this._theme=new tt(r),this._resetOption("recreate",null)},t.prototype.getTheme=function(){return this._theme},t.prototype.getLocaleModel=function(){return this._locale},t.prototype.setUpdatePayload=function(r){this._payload=r},t.prototype.getUpdatePayload=function(){return this._payload},t.prototype.getComponent=function(r,n){var a=this._componentsMap.get(r);if(a){var i=a[n||0];if(i)return i;if(n==null){for(var o=0;o=t:r==="max"?e<=t:e===t}function cae(e,t){return e.join(",")===t.join(",")}var pi=j,Hg=Ie,wR=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"];function nC(e){var t=e&&e.itemStyle;if(t)for(var r=0,n=wR.length;r0?r[o-1].seriesModel:null)}),_ae(r)}})}function _ae(e){j(e,function(t,r){var n=[],a=[NaN,NaN],i=[t.stackResultDimension,t.stackedOverDimension],o=t.data,s=t.isStackedByIndex,l=t.seriesModel.get("stackStrategy")||"samesign";o.modify(i,function(u,c,h){var d=o.get(t.stackedDimension,h);if(isNaN(d))return a;var v,g;s?g=o.getRawIndex(h):v=o.get(t.stackedByDimension,h);for(var m=NaN,y=r-1;y>=0;y--){var x=e[y];if(s||(g=x.data.rawIndexOf(x.stackedByDimension,v)),g>=0){var _=x.data.getByRawIndex(x.stackResultDimension,g);if(l==="all"||l==="positive"&&_>0||l==="negative"&&_<0||l==="samesign"&&d>=0&&_>0||l==="samesign"&&d<=0&&_<0){d=Zu(d,_),m=_;break}}}return n[0]=d,n[1]=m,n})})}var H1=function(){function e(t){this.data=t.data||(t.sourceFormat===Oi?{}:[]),this.sourceFormat=t.sourceFormat||iH,this.seriesLayoutBy=t.seriesLayoutBy||Ni,this.startIndex=t.startIndex||0,this.dimensionsDetectedCount=t.dimensionsDetectedCount,this.metaRawOption=t.metaRawOption;var r=this.dimensionsDefine=t.dimensionsDefine;if(r)for(var n=0;nm&&(m=w)}v[0]=g,v[1]=m}},a=function(){return this._data?this._data.length/this._dimSize:0};kR=(t={},t[Qr+"_"+Ni]={pure:!0,appendData:i},t[Qr+"_"+ch]={pure:!0,appendData:function(){throw new Error('Do not support appendData when set seriesLayoutBy: "row".')}},t[La]={pure:!0,appendData:i},t[Oi]={pure:!0,appendData:function(o){var s=this._data;j(o,function(l,u){for(var c=s[u]||(s[u]=[]),h=0;h<(l||[]).length;h++)c.push(l[h])})}},t[ka]={appendData:i},t[Ll]={persistent:!1,pure:!0,appendData:function(o){this._data=o},clean:function(){this._offset+=this.count(),this._data=null}},t);function i(o){for(var s=0;s=0&&(m=o.interpolatedValue[y])}return m!=null?m+"":""})}},e.prototype.getRawValue=function(t,r){return pd(this.getData(r),t)},e.prototype.formatTooltip=function(t,r,n){},e}();function DR(e){var t,r;return Ie(e)?e.type&&(r=e):t=e,{text:t,frag:r}}function rg(e){return new Nae(e)}var Nae=function(){function e(t){t=t||{},this._reset=t.reset,this._plan=t.plan,this._count=t.count,this._onDirty=t.onDirty,this._dirty=!0}return e.prototype.perform=function(t){var r=this._upstream,n=t&&t.skip;if(this._dirty&&r){var a=this.context;a.data=a.outputData=r.context.outputData}this.__pipeline&&(this.__pipeline.currentTask=this);var i;this._plan&&!n&&(i=this._plan(this.context));var o=c(this._modBy),s=this._modDataCount||0,l=c(t&&t.modBy),u=t&&t.modDataCount||0;(o!==l||s!==u)&&(i="reset");function c(_){return!(_>=1)&&(_=1),_}var h;(this._dirty||i==="reset")&&(this._dirty=!1,h=this._doReset(n)),this._modBy=l,this._modDataCount=u;var d=t&&t.step;if(r?this._dueEnd=r._outputDueEnd:this._dueEnd=this._count?this._count(this.context):1/0,this._progress){var v=this._dueIndex,g=Math.min(d!=null?this._dueIndex+d:1/0,this._dueEnd);if(!n&&(h||v1&&n>0?s:o}};return i;function o(){return t=e?null:lt},gte:function(e,t){return e>=t}},Lae=function(){function e(t,r){if(!ft(r)){var n="";bt(n)}this._opFn=k7[t],this._rvalFloat=Io(r)}return e.prototype.evaluate=function(t){return ft(t)?this._opFn(t,this._rvalFloat):this._opFn(Io(t),this._rvalFloat)},e}(),L7=function(){function e(t,r){var n=t==="desc";this._resultLT=n?1:-1,r==null&&(r=n?"min":"max"),this._incomparable=r==="min"?-1/0:1/0}return e.prototype.evaluate=function(t,r){var n=ft(t)?t:Io(t),a=ft(r)?r:Io(r),i=isNaN(n),o=isNaN(a);if(i&&(n=this._incomparable),o&&(a=this._incomparable),i&&o){var s=ue(t),l=ue(r);s&&(n=l?t:0),l&&(a=s?r:0)}return na?-this._resultLT:0},e}(),Iae=function(){function e(t,r){this._rval=r,this._isEQ=t,this._rvalTypeof=typeof r,this._rvalFloat=Io(r)}return e.prototype.evaluate=function(t){var r=t===this._rval;if(!r){var n=typeof t;n!==this._rvalTypeof&&(n==="number"||this._rvalTypeof==="number")&&(r=Io(t)===this._rvalFloat)}return this._isEQ?r:!r},e}();function Pae(e,t){return e==="eq"||e==="ne"?new Iae(e==="eq",t):ge(k7,e)?new Lae(e,t):null}function I7(e){var t="",r=-1/0,n=-1/0,a=1/0,i=1/0;return e&&(e.g!=null&&(t+="G"+e.g,r=e.g),e.ge!=null&&(t+="GE"+e.ge,n=e.ge),e.l!=null&&(t+="L"+e.l,a=e.l),e.le!=null&&(t+="LE"+e.le,i=e.le)),{key:t,g:r,ge:n,l:a,le:i}}function P7(e,t){return t>e.g&&t>=e.ge&&t65535?Gae:Hae}function Uae(e){var t=e.constructor;return t===Array?e.slice():new t(e)}function RR(e,t,r,n,a){var i=j7[r||"float"];if(a){var o=e[t],s=o&&o.length;if(s!==n){for(var l=new i(n),u=0;uy[1]&&(y[1]=m)}return this._rawCount=this._count=l,{start:s,end:l}},e.prototype._initDataFromProvider=function(t,r,n){for(var a=this._provider,i=this._chunks,o=this._dimensions,s=o.length,l=this._rawExtent,u=oe(o,function(_){return _.property}),c=0;cx[1]&&(x[1]=y)}}!a.persistent&&a.clean&&a.clean(),this._rawCount=this._count=r,this._extent=[]},e.prototype.count=function(){return this._count},e.prototype.get=function(t,r){if(!(r>=0&&r=0&&r=this._rawCount||t<0)return-1;if(!this._indices)return t;var r=this._indices,n=r[t];if(n!=null&&nt)i=o-1;else return o}return-1},e.prototype.getIndices=function(){var t,r=this._indices;if(r){var n=r.constructor,a=this._count;if(n===Array){t=new n(a);for(var i=0;i=h&&_<=d||isNaN(_))&&(l[u++]=m),m++}g=!0}else if(i===2){for(var y=v[a[0]],w=v[a[1]],S=t[a[1]][0],C=t[a[1]][1],x=0;x=h&&_<=d||isNaN(_))&&(M>=S&&M<=C||isNaN(M))&&(l[u++]=m),m++}g=!0}}if(!g)if(i===1)for(var x=0;x=h&&_<=d||isNaN(_))&&(l[u++]=A)}else for(var x=0;xt[P][1])&&(I=!1)}I&&(l[u++]=r.getRawIndex(x))}return ux[1]&&(x[1]=y)}}}},e.prototype.lttbDownSample=function(t,r){var n=this.clone([t],!0),a=n._chunks,i=a[t],o=this.count(),s=0,l=Math.floor(1/r),u=this.getRawIndex(0),c,h,d,v=new($h(this._rawCount))(Math.min((Math.ceil(o/l)+2)*2,o));v[s++]=u;for(var g=1;gc&&(c=h,d=S)}D>0&&Ds&&(m=s-c);for(var y=0;yg&&(g=_,v=c+y)}var w=this.getRawIndex(h),S=this.getRawIndex(v);hc-g&&(l=c-g,s.length=l);for(var m=0;mh[1]&&(h[1]=x),d[v++]=_}return i._count=v,i._indices=d,i._updateGetRawIdx(),i},e.prototype.each=function(t,r){if(this._count)for(var n=t.length,a=this._chunks,i=0,o=this.count();iv&&(v=y))}return l[c]=[d,v]},e.prototype.getRawDataItem=function(t){var r=this.getRawIndex(t);if(this._provider.persistent)return this._provider.getItem(r);for(var n=[],a=this._chunks,i=0;i=0?this._indices[t]:-1},e.prototype._updateGetRawIdx=function(){this.getRawIndex=this._indices?this._getRawIdx:this._getRawIdxIdentity},e.internalField=function(){function t(r,n,a,i){return Pl(r[i],this._dimensions[i])}oC={arrayRows:t,objectRows:function(r,n,a,i){return Pl(r[n],this._dimensions[i])},keyedColumns:t,original:function(r,n,a,i){var o=r&&(r.value==null?r:r.value);return Pl(o instanceof Array?o[i]:o,this._dimensions[i])},typedArray:function(r,n,a,i){return r[i]}}}(),e}(),R7=function(){function e(t){this._sourceList=[],this._storeList=[],this._upstreamSignList=[],this._versionSignBase=0,this._dirty=!0,this._sourceHost=t}return e.prototype.dirty=function(){this._setLocalSource([],[]),this._storeList=[],this._dirty=!0},e.prototype._setLocalSource=function(t,r){this._sourceList=t,this._upstreamSignList=r,this._versionSignBase++,this._versionSignBase>9e10&&(this._versionSignBase=0)},e.prototype._getVersionSign=function(){return this._sourceHost.uid+"_"+this._versionSignBase},e.prototype.prepareSource=function(){this._isDirty()&&(this._createSource(),this._dirty=!1)},e.prototype._createSource=function(){this._setLocalSource([],[]);var t=this._sourceHost,r=this._getUpstreamSourceManagers(),n=!!r.length,a,i;if(v0(t)){var o=t,s=void 0,l=void 0,u=void 0;if(n){var c=r[0];c.prepareSource(),u=c.getSource(),s=u.data,l=u.sourceFormat,i=[c._getVersionSign()]}else s=o.get("data",!0),l=Gn(s)?Ll:ka,i=[];var h=this._getSourceMetaRawOption()||{},d=u&&u.metaRawOption||{},v=_e(h.seriesLayoutBy,d.seriesLayoutBy)||null,g=_e(h.sourceHeader,d.sourceHeader),m=_e(h.dimensions,d.dimensions),y=v!==d.seriesLayoutBy||!!g!=!!d.sourceHeader||m;a=y?[WM(s,{seriesLayoutBy:v,sourceHeader:g,dimensions:m},l)]:[]}else{var x=t;if(n){var _=this._applyTransform(r);a=_.sourceList,i=_.upstreamSignList}else{var w=x.get("source",!0);a=[WM(w,this._getSourceMetaRawOption(),null)],i=[]}}this._setLocalSource(a,i)},e.prototype._applyTransform=function(t){var r=this._sourceHost,n=r.get("transform",!0),a=r.get("fromTransformResult",!0);if(a!=null){var i="";t.length!==1&&zR(i)}var o,s=[],l=[];return j(t,function(u){u.prepareSource();var c=u.getSource(a||0),h="";a!=null&&!c&&zR(h),s.push(c),l.push(u._getVersionSign())}),n?o=Fae(n,s,{datasetIndex:r.componentIndex}):a!=null&&(o=[bae(s[0])]),{sourceList:o,upstreamSignList:l}},e.prototype._isDirty=function(){if(this._dirty)return!0;for(var t=this._getUpstreamSourceManagers(),r=0;r1||r>0&&!e.noHeader;return j(e.blocks,function(a){var i=F7(a);i>=t&&(t=i+ +(n&&(!i||$M(a)&&!a.noHeader)))}),t}return 0}function Yae(e,t,r,n){var a=t.noHeader,i=qae(F7(t)),o=[],s=t.blocks||[];fn(!s||ne(s)),s=s||[];var l=e.orderMode;if(t.sortBlocks&&l){s=s.slice();var u={valueAsc:"asc",valueDesc:"desc"};if(ge(u,l)){var c=new L7(u[l],null);s.sort(function(m,y){return c.evaluate(m.sortParam,y.sortParam)})}else l==="seriesDesc"&&s.reverse()}j(s,function(m,y){var x=t.valueFormatter,_=B7(m)(x?te(te({},e),{valueFormatter:x}):e,m,y>0?i.html:0,n);_!=null&&o.push(_)});var h=e.renderMode==="richText"?o.join(i.richText):YM(n,o.join(""),a?r:i.html);if(a)return h;var d=GM(t.header,"ordinal",e.useUTC),v=z7(n,e.renderMode).nameStyle,g=O7(n);return e.renderMode==="richText"?V7(e,d,v)+i.richText+h:YM(n,'
'+Tn(d)+"
"+h,r)}function Xae(e,t,r,n){var a=e.renderMode,i=t.noName,o=t.noValue,s=!t.markerType,l=t.name,u=e.useUTC,c=t.valueFormatter||e.valueFormatter||function(S){return S=ne(S)?S:[S],oe(S,function(C,M){return GM(C,ne(v)?v[M]:v,u)})};if(!(i&&o)){var h=s?"":e.markupStyleCreator.makeTooltipMarker(t.markerType,t.markerColor||K.color.secondary,a),d=i?"":GM(l,"ordinal",u),v=t.valueType,g=o?[]:c(t.value,t.rawDataIndex),m=!s||!i,y=!s&&i,x=z7(n,a),_=x.nameStyle,w=x.valueStyle;return a==="richText"?(s?"":h)+(i?"":V7(e,d,_))+(o?"":Qae(e,g,m,y,w)):YM(n,(s?"":h)+(i?"":Kae(d,!s,_))+(o?"":Jae(g,m,y,w)),r)}}function BR(e,t,r,n,a,i){if(e){var o=B7(e),s={useUTC:a,renderMode:r,orderMode:n,markupStyleCreator:t,valueFormatter:e.valueFormatter};return o(s,e,0,i)}}function qae(e){return{html:Zae[e],richText:$ae[e]}}function YM(e,t,r){var n='
',a="margin: "+r+"px 0 0",i=O7(e);return'
'+t+n+"
"}function Kae(e,t,r){var n=t?"margin-left:2px":"";return''+Tn(e)+""}function Jae(e,t,r,n){var a=r?"10px":"20px",i=t?"float:right;margin-left:"+a:"";return e=ne(e)?e:[e],''+oe(e,function(o){return Tn(o)}).join("  ")+""}function V7(e,t,r){return e.markupStyleCreator.wrapRichTextStyle(t,r)}function Qae(e,t,r,n,a){var i=[a],o=n?10:20;return r&&i.push({padding:[0,0,0,o],align:"right"}),e.markupStyleCreator.wrapRichTextStyle(ne(t)?t.join(" "):t,i)}function G7(e,t){var r=e.getData().getItemVisual(t,"style"),n=r[e.visualDrawType];return Fc(n)}function H7(e,t){var r=e.get("padding");return r??(t==="richText"?[8,10]:10)}var sC=function(){function e(){this.richTextStyles={},this._nextStyleNameId=Ok()}return e.prototype._generateStyleName=function(){return"__EC_aUTo_"+this._nextStyleNameId++},e.prototype.makeTooltipMarker=function(t,r,n){var a=n==="richText"?this._generateStyleName():null,i=e7({color:r,type:t,renderMode:n,markerId:a});return ue(i)?i:(this.richTextStyles[a]=i.style,i.content)},e.prototype.wrapRichTextStyle=function(t,r){var n={};ne(r)?j(r,function(i){return te(n,i)}):te(n,r);var a=this._generateStyleName();return this.richTextStyles[a]=n,"{"+a+"|"+t+"}"},e}();function U7(e){var t=e.series,r=e.dataIndex,n=e.multipleSeries,a=t.getData(),i=a.mapDimensionsAll("defaultedTooltip"),o=i.length,s=t.getRawValue(r),l=ne(s),u=G7(t,r),c,h,d,v;if(o>1||l&&!o){var g=eie(s,t,r,i,u);c=g.inlineValues,h=g.inlineValueTypes,d=g.blocks,v=g.inlineValues[0]}else if(o){var m=a.getDimensionInfo(i[0]);v=c=pd(a,r,i[0]),h=m.type}else v=c=l?s[0]:s;var y=zk(t),x=y&&t.name||"",_=a.getName(r),w=n?x:_;return Mr("section",{header:x,noHeader:n||!y,sortParam:v,blocks:[Mr("nameValue",{markerType:"item",markerColor:u,name:w,noName:!_a(w),value:c,valueType:h,rawDataIndex:a.getRawIndex(r)})].concat(d||[])})}function eie(e,t,r,n,a){var i=t.getData(),o=ti(e,function(h,d,v){var g=i.getDimensionInfo(v);return h=h||g&&g.tooltip!==!1&&g.displayName!=null},!1),s=[],l=[],u=[];n.length?j(n,function(h){c(pd(i,r,h),h)}):j(e,c);function c(h,d){var v=i.getDimensionInfo(d);!v||v.otherDims.tooltip===!1||(o?u.push(Mr("nameValue",{markerType:"subItem",markerColor:a,name:v.displayName,value:h,valueType:v.type})):(s.push(h),l.push(v.type)))}return{inlineValues:s,inlineValueTypes:l,blocks:u}}var $s=Ze();function p0(e,t){return e.getName(t)||e.getId(t)}var Wx="__universalTransitionEnabled",Pt=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r._selectedDataIndicesMap={},r}return t.prototype.init=function(r,n,a){this.seriesIndex=this.componentIndex,this.dataTask=rg({count:rie,reset:nie}),this.dataTask.context={model:this},this.mergeDefaultAndTheme(r,a);var i=$s(this).sourceManager=new R7(this);i.prepareSource();var o=this.getInitialData(r,a);VR(o,this),this.dataTask.context.data=o,$s(this).dataBeforeProcessed=o,FR(this),this._initSelectedMapFromData(o)},t.prototype.mergeDefaultAndTheme=function(r,n){var a=Gg(this),i=a?vh(r):{},o=this.subType;Qe.hasClass(o)&&(o+="Series"),We(r,n.getTheme().get(this.subType)),We(r,this.getDefaultOption()),Dc(r,"label",["show"]),this.fillDataTextStyle(r.data),a&&Eo(r,i,a)},t.prototype.mergeOption=function(r,n){r=We(this.option,r,!0),this.fillDataTextStyle(r.data);var a=Gg(this);a&&Eo(this.option,r,a);var i=$s(this).sourceManager;i.dirty(),i.prepareSource();var o=this.getInitialData(r,n);VR(o,this),this.dataTask.dirty(),this.dataTask.context.data=o,$s(this).dataBeforeProcessed=o,FR(this),this._initSelectedMapFromData(o)},t.prototype.fillDataTextStyle=function(r){if(r&&!Gn(r))for(var n=["show"],a=0;a=0&&d<0)&&(h=C,d=S,v=0),S===d&&(c[v++]=y))}return c.length=v,c},t.prototype.formatTooltip=function(r,n,a){return U7({series:this,dataIndex:r,multipleSeries:n})},t.prototype.isAnimationEnabled=function(){var r=this.ecModel;if(ot.node&&!(r&&r.ssr))return!1;var n=this.getShallow("animation");return n&&this.getData().count()>this.getShallow("animationThreshold")&&(n=!1),!!n},t.prototype.restoreData=function(){this.dataTask.dirty()},t.prototype.getColorFromPalette=function(r,n,a){var i=this.ecModel,o=SL.prototype.getColorFromPalette.call(this,r,n,a);return o||(o=i.getColorFromPalette(r,n,a)),o},t.prototype.coordDimToDataDim=function(r){return this.getRawData().mapDimensionsAll(r)},t.prototype.getProgressive=function(){return this.get("progressive")},t.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},t.prototype.select=function(r,n){this._innerSelect(this.getData(n),r)},t.prototype.unselect=function(r,n){var a=this.option.selectedMap;if(a){var i=this.option.selectedMode,o=this.getData(n);if(i==="series"||a==="all"){this.option.selectedMap={},this._selectedDataIndicesMap={};return}for(var s=0;s=0&&a.push(o)}return a},t.prototype.isSelected=function(r,n){var a=this.option.selectedMap;if(!a)return!1;var i=this.getData(n);return(a==="all"||a[p0(i,r)])&&!i.getItemModel(r).get(["select","disabled"])},t.prototype.isUniversalTransitionEnabled=function(){if(this[Wx])return!0;var r=this.option.universalTransition;return r?r===!0?!0:r&&r.enabled:!1},t.prototype._innerSelect=function(r,n){var a,i,o=this.option,s=o.selectedMode,l=n.length;if(!(!s||!l)){if(s==="series")o.selectedMap="all";else if(s==="multiple"){Ie(o.selectedMap)||(o.selectedMap={});for(var u=o.selectedMap,c=0;c0&&this._innerSelect(r,n)}},t.registerClass=function(r){return Qe.registerClass(r)},t.protoInitialize=function(){var r=t.prototype;r.type="series.__base__",r.seriesIndex=0,r.ignoreStyleOnData=!1,r.hasSymbolVisual=!1,r.defaultSymbol="circle",r.visualStyleAccessPath="itemStyle",r.visualDrawType="fill"}(),t}(Qe);br(Pt,U1);br(Pt,SL);$G(Pt,Qe);function FR(e){var t=e.name;zk(e)||(e.name=tie(e)||t)}function tie(e){var t=e.getRawData(),r=t.mapDimensionsAll("seriesName"),n=[];return j(r,function(a){var i=t.getDimensionInfo(a);i.displayName&&n.push(i.displayName)}),n.join(" ")}function rie(e){return e.model.getRawData().count()}function nie(e){var t=e.model;return t.setData(t.getRawData().cloneShallow()),aie}function aie(e,t){t.outputData&&e.end>t.outputData.count()&&t.model.getRawData().cloneShallow(t.outputData)}function VR(e,t){j(ld(e.CHANGABLE_METHODS,e.DOWNSAMPLE_METHODS),function(r){e.wrapMethod(r,Xe(iie,t))})}function iie(e,t){var r=XM(e);return r&&r.setOutputEnd((t||this).count()),t}function XM(e){var t=(e.ecModel||{}).scheduler,r=t&&t.getPipeline(e.uid);if(r){var n=r.currentTask;if(n){var a=n.agentStubMap;a&&(n=a.get(e.uid))}return n}}var Rt=function(){function e(){this.group=new Ne,this.uid=dh("viewComponent")}return e.prototype.init=function(t,r){},e.prototype.render=function(t,r,n,a){},e.prototype.dispose=function(t,r){},e.prototype.updateView=function(t,r,n,a){},e.prototype.updateLayout=function(t,r,n,a){},e.prototype.updateVisual=function(t,r,n,a){},e.prototype.toggleBlurSeries=function(t,r,n){},e.prototype.eachRendered=function(t){var r=this.group;r&&r.traverse(t)},e}();Vk(Rt);L1(Rt);function ph(){var e=Ze();return function(t){var r=e(t),n=t.pipelineContext,a=!!r.large,i=!!r.progressiveRender,o=r.large=!!(n&&n.large),s=r.progressiveRender=!!(n&&n.progressiveRender);return(a!==o||i!==s)&&"reset"}}var W7=Ze(),oie=ph(),At=function(){function e(){this.group=new Ne,this.uid=dh("viewChart"),this.renderTask=rg({plan:sie,reset:lie}),this.renderTask.context={view:this}}return e.prototype.init=function(t,r){},e.prototype.render=function(t,r,n,a){},e.prototype.highlight=function(t,r,n,a){var i=t.getData(a&&a.dataType);i&&HR(i,a,"emphasis")},e.prototype.downplay=function(t,r,n,a){var i=t.getData(a&&a.dataType);i&&HR(i,a,"normal")},e.prototype.remove=function(t,r){this.group.removeAll()},e.prototype.dispose=function(t,r){},e.prototype.updateView=function(t,r,n,a){this.render(t,r,n,a)},e.prototype.updateVisual=function(t,r,n,a){this.render(t,r,n,a)},e.prototype.eachRendered=function(t){au(this.group,t)},e.markUpdateMethod=function(t,r){W7(t).updateMethod=r},e.protoInitialize=function(){var t=e.prototype;t.type="chart"}(),e}();function GR(e,t,r){e&&Bg(e)&&(t==="emphasis"?As:Ns)(e,r)}function HR(e,t,r){var n=Ec(e,t),a=t&&t.highlightKey!=null?Dre(t.highlightKey):null;n!=null?j(jt(n),function(i){GR(e.getItemGraphicEl(i),r,a)}):e.eachItemGraphicEl(function(i){GR(i,r,a)})}Vk(At);L1(At);function sie(e){return oie(e.model)}function lie(e){var t=e.model,r=e.ecModel,n=e.api,a=e.payload,i=t.pipelineContext.progressiveRender,o=e.view,s=a&&W7(a).updateMethod,l=i?"incrementalPrepareRender":s&&o[s]?s:"render";return l!=="render"&&o[l](t,r,n,a),uie[l]}var uie={incrementalPrepareRender:{progress:function(e,t){t.view.incrementalRender(e,t.model,t.ecModel,t.api,t.payload)}},render:{forceFirstProgress:!0,progress:function(e,t){t.view.render(t.model,t.ecModel,t.api,t.payload)}}},q_="\0__throttleOriginMethod",UR="\0__throttleRate",WR="\0__throttleType";function W1(e,t,r){var n,a=0,i=0,o=null,s,l,u,c;t=t||0;function h(){i=new Date().getTime(),o=null,e.apply(l,u||[])}var d=function(){for(var v=[],g=0;g=0?h():o=setTimeout(h,-s),a=n};return d.clear=function(){o&&(clearTimeout(o),o=null)},d.debounceNextCall=function(v){c=v},d}function Kd(e,t,r,n){var a=e[t];if(a){var i=a[q_]||a,o=a[WR],s=a[UR];if(s!==r||o!==n){if(r==null||!n)return e[t]=i;a=e[t]=W1(i,r,n==="debounce"),a[q_]=i,a[WR]=n,a[UR]=r}return a}}function Ug(e,t){var r=e[t];r&&r[q_]&&(r.clear&&r.clear(),e[t]=r[q_])}var ZR=Ze(),$R={itemStyle:Rc(HH,!0),lineStyle:Rc(GH,!0)},cie={lineStyle:"stroke",itemStyle:"fill"};function Z7(e,t){var r=e.visualStyleMapper||$R[t];return r||(console.warn("Unknown style type '"+t+"'."),$R.itemStyle)}function $7(e,t){var r=e.visualDrawType||cie[t];return r||(console.warn("Unknown style type '"+t+"'."),"fill")}var hie={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){var r=e.getData(),n=e.visualStyleAccessPath||"itemStyle",a=e.getModel(n),i=Z7(e,n),o=i(a),s=a.getShallow("decal");s&&(r.setVisual("decal",s),s.dirty=!0);var l=$7(e,n),u=o[l],c=Me(u)?u:null,h=o.fill==="auto"||o.stroke==="auto";if(!o[l]||c||h){var d=e.getColorFromPalette(e.name,null,t.getSeriesCount());o[l]||(o[l]=d,r.setVisual("colorFromPalette",!0)),o.fill=o.fill==="auto"||Me(o.fill)?d:o.fill,o.stroke=o.stroke==="auto"||Me(o.stroke)?d:o.stroke}if(r.setVisual("style",o),r.setVisual("drawType",l),!t.isSeriesFiltered(e)&&c)return r.setVisual("colorFromPalette",!1),{dataEach:function(v,g){var m=e.getDataParams(g),y=te({},o);y[l]=c(m),v.setItemVisual(g,"style",y)}}}},Uv=new tt,fie={createOnAllSeries:!0,reset:function(e,t){if(!e.ignoreStyleOnData){var r=e.getData(),n=e.visualStyleAccessPath||"itemStyle",a=Z7(e,n),i=r.getVisual("drawType");return{dataEach:r.hasItemOption?function(o,s){var l=o.getRawDataItem(s);if(l&&l[n]){Uv.option=l[n];var u=a(Uv),c=o.ensureUniqueItemVisual(s,"style");te(c,u),Uv.option.decal&&(o.setItemVisual(s,"decal",Uv.option.decal),Uv.option.decal.dirty=!0),i in u&&o.setItemVisual(s,"colorFromPalette",!1)}}:null}}}},die={performRawSeries:!0,overallReset:function(e){var t=pe();e.eachSeries(function(r){if(!r.isColorBySeries()){var n=r.type+"-"+r.getColorBy();ZR(r).scope=t.get(n)||t.set(n,{})}}),e.eachSeries(function(r){if(!r.isColorBySeries()){var n=r.getRawData(),a={},i=r.getData(),o=ZR(r).scope,s=r.visualStyleAccessPath||"itemStyle",l=$7(r,s);i.each(function(u){var c=i.getRawIndex(u);a[c]=u}),n.each(function(u){var c=a[u],h=i.getItemVisual(c,"colorFromPalette");if(h){var d=i.ensureUniqueItemVisual(c,"style"),v=n.getName(u)||u+"",g=n.count();d[l]=r.getColorFromPalette(v,o,g)}})}})}},g0=Math.PI;function vie(e,t){t=t||{},Le(t,{text:"loading",textColor:K.color.primary,fontSize:12,fontWeight:"normal",fontStyle:"normal",fontFamily:"sans-serif",maskColor:"rgba(255,255,255,0.8)",showSpinner:!0,color:K.color.theme[0],spinnerRadius:10,lineWidth:5,zlevel:0});var r=new Ne,n=new Ke({style:{fill:t.maskColor},zlevel:t.zlevel,z:1e4});r.add(n);var a=new ht({style:{text:t.text,fill:t.textColor,fontSize:t.fontSize,fontWeight:t.fontWeight,fontStyle:t.fontStyle,fontFamily:t.fontFamily},zlevel:t.zlevel,z:10001}),i=new Ke({style:{fill:"none"},textContent:a,textConfig:{position:"right",distance:10},zlevel:t.zlevel,z:10001});r.add(i);var o;return t.showSpinner&&(o=new Dm({shape:{startAngle:-g0/2,endAngle:-g0/2+.1,r:t.spinnerRadius},style:{stroke:t.color,lineCap:"round",lineWidth:t.lineWidth},zlevel:t.zlevel,z:10001}),o.animateShape(!0).when(1e3,{endAngle:g0*3/2}).start("circularInOut"),o.animateShape(!0).when(1e3,{startAngle:g0*3/2}).delay(300).start("circularInOut"),r.add(o)),r.resize=function(){var s=a.getBoundingRect().width,l=t.showSpinner?t.spinnerRadius:0,u=(e.getWidth()-l*2-(t.showSpinner&&s?10:0)-s)/2-(t.showSpinner&&s?0:5+s/2)+(t.showSpinner?0:s/2)+(s?0:l),c=e.getHeight()/2;t.showSpinner&&o.setShape({cx:u,cy:c}),i.setShape({x:u-l,y:c-l,width:l*2,height:l*2}),n.setShape({x:0,y:0,width:e.getWidth(),height:e.getHeight()})},r.resize(),r}var Y7=function(){function e(t,r,n,a){this._stageTaskMap=pe(),this.ecInstance=t,this.api=r,n=this._dataProcessorHandlers=n.slice(),a=this._visualHandlers=a.slice(),this._allHandlers=n.concat(a)}return e.prototype.restoreData=function(t,r){t.restoreData(r),this._stageTaskMap.each(function(n){var a=n.overallTask;a&&a.dirty()})},e.prototype.getPerformArgs=function(t,r){if(t.__pipeline){var n=this._pipelineMap.get(t.__pipeline.id),a=n.context,i=!r&&n.progressiveEnabled&&(!a||a.progressiveRender)&&t.__idxInPipeline>n.blockIndex,o=i?n.step:null,s=a&&a.modDataCount,l=s!=null?Math.ceil(s/o):null;return{step:o,modBy:l,modDataCount:s}}},e.prototype.getPipeline=function(t){return this._pipelineMap.get(t)},e.prototype.updateStreamModes=function(t,r){var n=this._pipelineMap.get(t.uid),a=t.__preparePipelineContext?t.__preparePipelineContext(r,n):WG(t,r,n);t.pipelineContext=n.context=a},e.prototype.restorePipelines=function(t,r){var n=this,a=n._pipelineMap=pe();r.eachSeries(function(i){var o=t.painter.type==="canvas"&&i.getProgressive(),s=i.uid;a.set(s,{id:s,head:null,tail:null,threshold:i.getProgressiveThreshold(),progressiveEnabled:o&&!(i.preventIncremental&&i.preventIncremental()),blockIndex:-1,step:Math.round(o||700),count:0}),n._pipe(i,i.dataTask)})},e.prototype.prepareStageTasks=function(){var t=this._stageTaskMap,r=this.api.getModel(),n=this.api;j(this._allHandlers,function(a){var i=t.get(a.uid)||t.set(a.uid,{}),o="";fn(!(a.reset&&a.overallReset),o),a.reset&&this._createSeriesStageTask(a,i,r,n),a.overallReset&&this._createOverallStageTask(a,i,r,n)},this)},e.prototype.prepareView=function(t,r,n,a){var i=t.renderTask,o=i.context;o.model=r,o.ecModel=n,o.api=a,i.__block=!t.incrementalPrepareRender,this._pipe(r,i)},e.prototype.performDataProcessorTasks=function(t,r){this._performStageTasks(this._dataProcessorHandlers,t,r,{block:!0})},e.prototype.performVisualTasks=function(t,r,n){this._performStageTasks(this._visualHandlers,t,r,n)},e.prototype._performStageTasks=function(t,r,n,a){a=a||{};var i=!1,o=this;j(t,function(l,u){if(!(a.visualType&&a.visualType!==l.visualType)){var c=o._stageTaskMap.get(l.uid),h=c.seriesTaskMap,d=c.overallTask;if(d){var v,g=d.agentStubMap;g.each(function(y){s(a,y)&&(y.dirty(),v=!0)}),v&&d.dirty(),o.updatePayload(d,n);var m=o.getPerformArgs(d,a.block);g.each(function(y){y.perform(m)}),d.perform(m)&&(i=!0)}else h&&h.each(function(y,x){s(a,y)&&y.dirty();var _=o.getPerformArgs(y,a.block);_.skip=!l.performRawSeries&&r.isSeriesFiltered(y.context.model),o.updatePayload(y,n),y.perform(_)&&(i=!0)})}});function s(l,u){return l.setDirty&&(!l.dirtyMap||l.dirtyMap.get(u.__pipeline.id))}this.unfinished=i||this.unfinished},e.prototype.performSeriesTasks=function(t){var r;t.eachSeries(function(n){r=n.dataTask.perform()||r}),this.unfinished=r||this.unfinished},e.prototype.plan=function(){this._pipelineMap.each(function(t){var r=t.tail;do{if(r.__block){t.blockIndex=r.__idxInPipeline;break}r=r.getUpstream()}while(r)})},e.prototype.updatePayload=function(t,r){r!=="remain"&&(t.context.payload=r)},e.prototype._createSeriesStageTask=function(t,r,n,a){var i=this,o=r.seriesTaskMap,s=r.seriesTaskMap=pe(),l=t.seriesType,u=t.getTargetSeries;t.createOnAllSeries?n.eachRawSeries(c):l?n.eachRawSeriesByType(l,c):u&&u(n,a).each(c);function c(h){var d=h.uid,v=s.set(d,o&&o.get(d)||rg({plan:xie,reset:_ie,count:wie}));v.context={model:h,ecModel:n,api:a,useClearVisual:t.isVisual&&!t.isLayout,plan:t.plan,reset:t.reset,scheduler:i},i._pipe(h,v)}},e.prototype._createOverallStageTask=function(t,r,n,a){var i=this,o=r.overallTask=r.overallTask||rg({reset:pie});o.context={ecModel:n,api:a,overallReset:t.overallReset,scheduler:i};var s=o.agentStubMap,l=o.agentStubMap=pe(),u=t.seriesType,c=t.getTargetSeries,h=t.dirtyOnOverallProgress,d=!1,v="";fn(!t.createOnAllSeries,v),u?n.eachRawSeriesByType(u,g):c?c(n,a).each(g):j(n.getSeries(),g);function g(m){var y=m.uid,x=l.set(y,s&&s.get(y)||(d=!0,rg({reset:gie,onDirty:yie})));x.context={model:m,dirtyOnOverallProgress:h},x.agent=o,x.__block=h,i._pipe(m,x)}d&&o.dirty()},e.prototype._pipe=function(t,r){var n=t.uid,a=this._pipelineMap.get(n);!a.head&&(a.head=r),a.tail&&a.tail.pipe(r),a.tail=r,r.__idxInPipeline=a.count++,r.__pipeline=a},e.wrapStageHandler=function(t,r){return Me(t)&&(t={overallReset:t,seriesType:Sie(t)}),t.uid=dh("stageHandler"),r&&(t.visualType=r),t},e}();function pie(e){e.overallReset(e.ecModel,e.api,e.payload)}function gie(e){return e.dirtyOnOverallProgress&&mie}function mie(){this.agent.dirty(),this.getDownstream().dirty()}function yie(){this.agent&&this.agent.dirty()}function xie(e){return e.plan?e.plan(e.model,e.ecModel,e.api,e.payload):null}function _ie(e){e.useClearVisual&&e.data.clearAllVisual();var t=e.resetDefines=jt(e.reset(e.model,e.ecModel,e.api,e.payload));return t.length>1?oe(t,function(r,n){return X7(n)}):bie}var bie=X7(0);function X7(e){return function(t,r){var n=r.data,a=r.resetDefines[e];if(a&&a.dataEach)for(var i=t.start;i0&&v===u.length-d.length){var g=u.slice(0,v);g!=="data"&&(r.mainType=g,r[d.toLowerCase()]=l,c=!0)}}s.hasOwnProperty(u)&&(n[u]=l,c=!0),c||(a[u]=l)})}return{cptQuery:r,dataQuery:n,otherQuery:a}},e.prototype.filter=function(t,r){var n=this.eventInfo;if(!n)return!0;var a=n.targetEl,i=n.packedEvent,o=n.model,s=n.view;if(!o||!s)return!0;var l=r.cptQuery,u=r.dataQuery;return c(l,o,"mainType")&&c(l,o,"subType")&&c(l,o,"index","componentIndex")&&c(l,o,"name")&&c(l,o,"id")&&c(u,i,"name")&&c(u,i,"dataIndex")&&c(u,i,"dataType")&&(!s.filterForExposedEvent||s.filterForExposedEvent(t,r.otherQuery,a,i));function c(h,d,v,g){return h[v]==null||d[g||v]===h[v]}},e.prototype.afterTrigger=function(){this.eventInfo=null},e}(),qM=["symbol","symbolSize","symbolRotate","symbolOffset"],qR=qM.concat(["symbolKeepAspect"]),Tie={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){var r=e.getData();if(e.legendIcon&&r.setVisual("legendIcon",e.legendIcon),!e.hasSymbolVisual)return;for(var n={},a={},i=!1,o=0;o=0&&hc(l)?l:.5;var u=e.createRadialGradient(o,s,0,o,s,l);return u}function KM(e,t,r){for(var n=t.type==="radial"?Uie(e,t,r):Hie(e,t,r),a=t.colorStops,i=0;i0)?null:e==="dashed"?[4*t,2*t]:e==="dotted"?[t]:ft(e)?[e]:ne(e)?e:null}function LL(e){var t=e.style,r=t.lineDash&&t.lineWidth>0&&Zie(t.lineDash,t.lineWidth),n=t.lineDashOffset;if(r){var a=t.strokeNoScale&&e.getLineScale?e.getLineScale():1;a&&a!==1&&(r=oe(r,function(i){return i/a}),n/=a)}return[r,n]}var $ie=new Po(!0);function Q_(e){var t=e.stroke;return!(t==null||t==="none"||!(e.lineWidth>0))}function KR(e){return typeof e=="string"&&e!=="none"}function eb(e){var t=e.fill;return t!=null&&t!=="none"}function JR(e,t){if(t.fillOpacity!=null&&t.fillOpacity!==1){var r=e.globalAlpha;e.globalAlpha=t.fillOpacity*t.opacity,e.fill(),e.globalAlpha=r}else e.fill()}function QR(e,t){if(t.strokeOpacity!=null&&t.strokeOpacity!==1){var r=e.globalAlpha;e.globalAlpha=t.strokeOpacity*t.opacity,e.stroke(),e.globalAlpha=r}else e.stroke()}function JM(e,t,r){var n=Gk(t.image,t.__image,r);if(I1(n)){var a=e.createPattern(n,t.repeat||"repeat");if(typeof DOMMatrix=="function"&&a&&a.setTransform){var i=new DOMMatrix;i.translateSelf(t.x||0,t.y||0),i.rotateSelf(0,0,(t.rotation||0)*Wp),i.scaleSelf(t.scaleX||1,t.scaleY||1),a.setTransform(i)}return a}}function Yie(e,t,r,n,a){var i,o=Q_(r),s=eb(r),l=r.strokePercent,u=l<1,c=!t.path;(!t.silent||u)&&c&&t.createPathProxy();var h=t.path||$ie,d=t.__dirty;if(!n){var v=r.fill,g=r.stroke,m=s&&!!v.colorStops,y=o&&!!g.colorStops,x=s&&!!v.image,_=o&&!!g.image,w=void 0,S=void 0,C=void 0,M=void 0,A=void 0;(m||y)&&(A=t.getBoundingRect()),m&&(w=d?KM(e,v,A):t.__canvasFillGradient,t.__canvasFillGradient=w),y&&(S=d?KM(e,g,A):t.__canvasStrokeGradient,t.__canvasStrokeGradient=S),x&&(C=d||!t.__canvasFillPattern?JM(e,v,t):t.__canvasFillPattern,t.__canvasFillPattern=C),_&&(M=d||!t.__canvasStrokePattern?JM(e,g,t):t.__canvasStrokePattern,t.__canvasStrokePattern=M),m?e.fillStyle=w:x&&(C?e.fillStyle=C:s=!1),y?e.strokeStyle=S:_&&(M?e.strokeStyle=M:o=!1)}var I=t.getGlobalScale();h.setScale(I[0],I[1],t.segmentIgnoreThreshold);var k,P;e.setLineDash&&r.lineDash&&(i=LL(t),k=i[0],P=i[1]);var D=!0;(c||d&ff)&&(h.setDPR(e.dpr),u?h.setContext(null):(h.setContext(e),D=!1),h.reset(),t.buildPath(h,t.shape,n),h.toStatic(),t.pathUpdated()),D&&h.rebuildPath(e,u?l:1),k&&(e.setLineDash(k),e.lineDashOffset=P),n?(a.batchFill=s,a.batchStroke=o):r.strokeFirst?(o&&QR(e,r),s&&JR(e,r)):(s&&JR(e,r),o&&QR(e,r)),k&&e.setLineDash([])}function Xie(e,t,r){var n=t.__image=Gk(r.image,t.__image,t,t.onload);if(!(!n||!I1(n))){var a=r.x||0,i=r.y||0,o=t.getWidth(),s=t.getHeight(),l=n.width/n.height;if(o==null&&s!=null?o=s*l:s==null&&o!=null?s=o/l:o==null&&s==null&&(o=n.width,s=n.height),r.sWidth&&r.sHeight){var u=r.sx||0,c=r.sy||0;e.drawImage(n,u,c,r.sWidth,r.sHeight,a,i,o,s)}else if(r.sx&&r.sy){var u=r.sx,c=r.sy,h=o-u,d=s-c;e.drawImage(n,u,c,h,d,a,i,o,s)}else e.drawImage(n,a,i,o,s)}}function qie(e,t,r){var n,a=r.text;if(a!=null&&(a+=""),a){e.font=r.font||Ss,e.textAlign=r.textAlign,e.textBaseline=r.textBaseline;var i=void 0,o=void 0;e.setLineDash&&r.lineDash&&(n=LL(t),i=n[0],o=n[1]),i&&(e.setLineDash(i),e.lineDashOffset=o),r.strokeFirst?(Q_(r)&&e.strokeText(a,r.x,r.y),eb(r)&&e.fillText(a,r.x,r.y)):(eb(r)&&e.fillText(a,r.x,r.y),Q_(r)&&e.strokeText(a,r.x,r.y)),i&&e.setLineDash([])}}var eO=["shadowBlur","shadowOffsetX","shadowOffsetY"],tO=[["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]];function oU(e,t,r,n,a){var i=!1;if(!n&&(r=r||{},t===r))return!1;if(n||t.opacity!==r.opacity){Bn(e,a),i=!0;var o=Math.max(Math.min(t.opacity,1),0);e.globalAlpha=isNaN(o)?gc.opacity:o}(n||t.blend!==r.blend)&&(i||(Bn(e,a),i=!0),e.globalCompositeOperation=t.blend||gc.blend);for(var s=0;s0&&r.unfinished);r.unfinished||this._zr.flush()}}},t.prototype.getDom=function(){return this._dom},t.prototype.getId=function(){return this.id},t.prototype.getZr=function(){return this._zr},t.prototype.isSSR=function(){return this._ssr},t.prototype.setOption=function(r,n,a){if(!this[kr]){if(this._disposed){this.id;return}var i,o,s;if(Ie(n)&&(a=n.lazyUpdate,i=n.silent,o=n.replaceMerge,s=n.transition,n=n.notMerge),this[kr]=!0,Kh(this),!this._model||n){var l=new oae(this._api),u=this._theme,c=this._model=new CL;c.scheduler=this._scheduler,c.ssr=this._ssr,c.init(null,null,null,u,this._locale,l)}this._model.setOption(r,{replaceMerge:o},rA);var h={seriesTransition:s,optionChanged:!0};if(a)this[Zr]={silent:i,updateParams:h},this[kr]=!1,this.getZr().wakeUp();else{try{Ru(this),qo.update.call(this,null,h)}catch(d){throw this[Zr]=null,this[kr]=!1,d}this._ssr||this._zr.flush(),this[Zr]=null,this[kr]=!1,Xh.call(this,i),qh.call(this,i)}}},t.prototype.setTheme=function(r,n){if(!this[kr]){if(this._disposed){this.id;return}var a=this._model;if(a){var i=n&&n.silent,o=null;this[Zr]&&(i==null&&(i=this[Zr].silent),o=this[Zr].updateParams,this[Zr]=null),this[kr]=!0,Kh(this);try{this._updateTheme(r),a.setTheme(this._theme),Ru(this),qo.update.call(this,{type:"setTheme"},o)}catch(s){throw this[kr]=!1,s}this[kr]=!1,Xh.call(this,i),qh.call(this,i)}}},t.prototype._updateTheme=function(r){ue(r)&&(r=bU[r]),r&&(r=Te(r),r&&b7(r,!0),this._theme=r)},t.prototype.getModel=function(){return this._model},t.prototype.getOption=function(){return this._model&&this._model.getOption()},t.prototype.getWidth=function(){return this._zr.getWidth()},t.prototype.getHeight=function(){return this._zr.getHeight()},t.prototype.getDevicePixelRatio=function(){return this._zr.painter.dpr||ot.hasGlobalWindow&&window.devicePixelRatio||1},t.prototype.getRenderedCanvas=function(r){return this.renderToCanvas(r)},t.prototype.renderToCanvas=function(r){r=r||{};var n=this._zr.painter;return n.getRenderedCanvas({backgroundColor:r.backgroundColor||this._model.get("backgroundColor"),pixelRatio:r.pixelRatio||this.getDevicePixelRatio()})},t.prototype.renderToSVGString=function(r){r=r||{};var n=this._zr.painter;return n.renderToString({useViewBox:r.useViewBox})},t.prototype.getSvgDataURL=function(){var r=this._zr,n=r.storage.getDisplayList();return j(n,function(a){a.stopAnimation(null,!0)}),r.painter.toDataURL()},t.prototype.getDataURL=function(r){if(this._disposed){this.id;return}r=r||{};var n=r.excludeComponents,a=this._model,i=[],o=this;j(n,function(l){a.eachComponent({mainType:l},function(u){var c=o._componentsMap[u.__viewId];c.group.ignore||(i.push(c),c.group.ignore=!0)})});var s=this._zr.painter.getType()==="svg"?this.getSvgDataURL():this.renderToCanvas(r).toDataURL("image/"+(r&&r.type||"png"));return j(i,function(l){l.group.ignore=!1}),s},t.prototype.getConnectedDataURL=function(r){if(this._disposed){this.id;return}var n=r.type==="svg",a=this.group,i=Math.min,o=Math.max,s=1/0;if(ab[a]){var l=s,u=s,c=-s,h=-s,d=[],v=r&&r.pixelRatio||this.getDevicePixelRatio();j(_c,function(w,S){if(w.group===a){var C=n?w.getZr().painter.getSvgDom().innerHTML:w.renderToCanvas(Te(r)),M=w.getDom().getBoundingClientRect();l=i(M.left,l),u=i(M.top,u),c=o(M.right,c),h=o(M.bottom,h),d.push({dom:C,left:M.left,top:M.top})}}),l*=v,u*=v,c*=v,h*=v;var g=c-l,m=h-u,y=Vr.createCanvas(),x=_M(y,{renderer:n?"svg":"canvas"});if(x.resize({width:g,height:m}),n){var _="";return j(d,function(w){var S=w.left-l,C=w.top-u;_+=''+w.dom+""}),x.painter.getSvgRoot().innerHTML=_,r.connectedBackgroundColor&&x.painter.setBackgroundColor(r.connectedBackgroundColor),x.refreshImmediately(),x.painter.toDataURL()}else return r.connectedBackgroundColor&&x.add(new Ke({shape:{x:0,y:0,width:g,height:m},style:{fill:r.connectedBackgroundColor}})),j(d,function(w){var S=new Ur({style:{x:w.left*v-l,y:w.top*v-u,image:w.dom}});x.add(S)}),x.refreshImmediately(),y.toDataURL("image/"+(r&&r.type||"png"))}else return this.getDataURL(r)},t.prototype.convertToPixel=function(r,n,a){return _0(this,"convertToPixel",r,n,a)},t.prototype.convertToLayout=function(r,n,a){return _0(this,"convertToLayout",r,n,a)},t.prototype.convertFromPixel=function(r,n,a){return _0(this,"convertFromPixel",r,n,a)},t.prototype.containPixel=function(r,n){if(this._disposed){this.id;return}var a=this._model,i,o=Wf(a,r);return j(o,function(s,l){l.indexOf("Models")>=0&&j(s,function(u){var c=u.coordinateSystem;if(c&&c.containPoint)i=i||!!c.containPoint(n);else if(l==="seriesModels"){var h=this._chartsMap[u.__viewId];h&&h.containPoint&&(i=i||h.containPoint(n,u))}},this)},this),!!i},t.prototype.getVisual=function(r,n){var a=this._model,i=Wf(a,r,{defaultMainType:"series"}),o=i.seriesModel,s=o.getData(),l=i.hasOwnProperty("dataIndexInside")?i.dataIndexInside:i.hasOwnProperty("dataIndex")?s.indexOfRawIndex(i.dataIndex):null;return l!=null?kL(s,l,n):zm(s,n)},t.prototype.getViewOfComponentModel=function(r){return this._componentsMap[r.__viewId]},t.prototype.getViewOfSeriesModel=function(r){return this._chartsMap[r.__viewId]},t.prototype._initEvents=function(){var r=this;j(boe,function(a){var i=function(o){var s=r.getModel(),l=o.target,u,c=a==="globalout";if(c?u={}:l&&cc(l,function(m){var y=Ee(m);if(y&&y.dataIndex!=null){var x=y.dataModel||s.getSeriesByIndex(y.seriesIndex);return u=x&&x.getDataParams(y.dataIndex,y.dataType,l)||{},!0}else if(y.eventData)return u=te({},y.eventData),!0},!0),u){var h=u.componentType,d=u.componentIndex;(h==="markLine"||h==="markPoint"||h==="markArea")&&(h="series",d=u.seriesIndex);var v=h&&d!=null&&s.getComponent(h,d),g=v&&r[v.mainType==="series"?"_chartsMap":"_componentsMap"][v.__viewId];u.event=o,u.type=a,r._$eventProcessor.eventInfo={targetEl:l,packedEvent:u,model:v,view:g},r.trigger(a,u)}};i.zrEventfulCallAtLast=!0,r._zr.on(a,i,r)});var n=this._messageCenter;j(eA,function(a,i){n.on(i,function(o){r.trigger(i,o)})}),Aie(n,this,this._api)},t.prototype.isDisposed=function(){return this._disposed},t.prototype.clear=function(){if(this._disposed){this.id;return}this.setOption({series:[]},!0)},t.prototype.dispose=function(){if(this._disposed){this.id;return}this._disposed=!0;var r=this.getDom();r&&VG(this.getDom(),EL,"");var n=this,a=n._api,i=n._model;j(n._componentsViews,function(o){o.dispose(i,a)}),j(n._chartsViews,function(o){o.dispose(i,a)}),n._zr.dispose(),n._dom=n._model=n._chartsMap=n._componentsMap=n._chartsViews=n._componentsViews=n._scheduler=n._api=n._zr=n._throttledZrFlush=n._theme=n._coordSysMgr=n._messageCenter=null,delete _c[n.id]},t.prototype.resize=function(r){if(!this[kr]){if(this._disposed){this.id;return}this._zr.resize(r);var n=this._model;if(this._loadingFX&&this._loadingFX.resize(),!!n){var a=n.resetOption("media"),i=r&&r.silent;this[Zr]&&(i==null&&(i=this[Zr].silent),a=!0,this[Zr]=null),this[kr]=!0,Kh(this);try{a&&Ru(this),qo.update.call(this,{type:"resize",animation:te({duration:0},r&&r.animation)})}catch(o){throw this[kr]=!1,o}this[kr]=!1,Xh.call(this,i),qh.call(this,i)}}},t.prototype.showLoading=function(r,n){if(this._disposed){this.id;return}if(Ie(r)&&(n=r,r=""),r=r||"default",this.hideLoading(),!!nA[r]){var a=nA[r](this._api,n),i=this._zr;this._loadingFX=a,i.add(a)}},t.prototype.hideLoading=function(){if(this._disposed){this.id;return}this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null},t.prototype.makeActionFromEvent=function(r){var n=te({},r);return n.type=QM[r.type],n},t.prototype.dispatchAction=function(r,n){if(this._disposed){this.id;return}if(Ie(n)||(n={silent:!!n}),!!rb[r.type]&&this._model){if(this[kr]){this._pendingActions.push(r);return}var a=n.silent;dC.call(this,r,a);var i=n.flush;i?this._zr.flush():i!==!1&&ot.browser.weChat&&this._throttledZrFlush(),Xh.call(this,a),qh.call(this,a)}},t.prototype.updateLabelLayout=function(){Ba.trigger("series:layoutlabels",this._model,this._api,{updatedSeries:[]})},t.prototype.appendData=function(r){if(this._disposed){this.id;return}var n=r.seriesIndex,a=this.getModel(),i=a.getSeriesByIndex(n);i.appendData(r),this._scheduler.unfinished=!0,this.getZr().wakeUp()},t.internalField=function(){Ru=function(h){Lie(h._model);var d=h._scheduler;d.restorePipelines(h._zr,h._model),d.prepareStageTasks(),hC(h,!0),hC(h,!1),d.plan()},hC=function(h,d){for(var v=h._model,g=h._scheduler,m=d?h._componentsViews:h._chartsViews,y=d?h._componentsMap:h._chartsMap,x=h._zr,_=h._api,w=0;w_e(d.get("hoverLayerThreshold"),v7.hoverLayerThreshold)&&!ot.node&&!ot.worker;(h._usingTHL||y)&&(d.eachSeries(function(x){if(!x.preventUsingHoverLayer){var _=h._chartsMap[x.__viewId];_.__alive&&_.eachRendered(function(w){var S=w.states.emphasis;S&&S.hoverLayer!==Zd&&(S.hoverLayer=y?IH:LH)})}}),h._usingTHL=y)}}function s(h,d){var v=h.get("blendMode")||null;d.eachRendered(function(g){g.isGroup||(g.style.blend=v)})}function l(h,d){if(!h.preventAutoZ){var v=Bc(h);d.eachRendered(function(g){return B1(g,v.z,v.zlevel),!0})}}function u(h,d){d.eachRendered(function(v){if(!Zf(v)){var g=v.getTextContent(),m=v.getTextGuideLine();v.stateTransition&&(v.stateTransition=null),g&&g.stateTransition&&(g.stateTransition=null),m&&m.stateTransition&&(m.stateTransition=null),v.hasState()?(v.prevStates=v.currentStates,v.clearStates()):v.prevStates&&(v.prevStates=null)}})}function c(h,d){var v=h.getModel("stateAnimation"),g=h.isAnimationEnabled(),m=v.get("duration"),y=m>0?{duration:m,delay:v.get("delay"),easing:v.get("easing")}:null;d.eachRendered(function(x){if(x.states&&x.states.emphasis){if(Zf(x))return;if(x instanceof rt&&Ere(x),x.__dirty){var _=x.prevStates;_&&x.useStates(_)}if(g){x.stateTransition=y;var w=x.getTextContent(),S=x.getTextGuideLine();w&&(w.stateTransition=y),S&&(S.stateTransition=y)}x.__dirty&&i(x)}})}pO=function(h){return new(function(d){X(v,d);function v(){return d!==null&&d.apply(this,arguments)||this}return v.prototype.getCoordinateSystems=function(){return h._coordSysMgr.getCoordinateSystems()},v.prototype.getComponentByElement=function(g){for(;g;){var m=g.__ecComponentInfo;if(m!=null)return h._model.getComponent(m.mainType,m.index);g=g.parent}},v.prototype.enterEmphasis=function(g,m){As(g,m),Ea(h)},v.prototype.leaveEmphasis=function(g,m){Ns(g,m),Ea(h)},v.prototype.enterBlur=function(g){dH(g),Ea(h)},v.prototype.leaveBlur=function(g){Yk(g),Ea(h)},v.prototype.enterSelect=function(g){vH(g),Ea(h)},v.prototype.leaveSelect=function(g){pH(g),Ea(h)},v.prototype.getModel=function(){return h.getModel()},v.prototype.getViewOfComponentModel=function(g){return h.getViewOfComponentModel(g)},v.prototype.getViewOfSeriesModel=function(g){return h.getViewOfSeriesModel(g)},v.prototype.getECUpdateCycleVersion=function(){return h[y0]},v.prototype.usingTHL=function(){return h._usingTHL},v}(sH))(h)},_U=function(h){function d(v,g){for(var m=0;m=0)){mO.push(r);var o=Y7.wrapStageHandler(r,a);o.__prio=t,o.__raw=r,e.push(o)}}function FL(e,t){nA[e]=t}function Ioe(e){UV({createCanvas:e})}function AU(e,t,r){var n=rU("registerMap");n&&n(e,t,r)}function Poe(e){var t=rU("getMap");return t&&t(e)}var NU=Bae;ou(PL,hie);ou($1,fie);ou($1,die);ou(PL,Tie);ou($1,Mie);ou(dU,aoe);OL(b7);zL(coe,yae);FL("default",vie);zi({type:mc,event:mc,update:mc},ar);zi({type:Ox,event:Ox,update:Ox},ar);zi({type:V_,event:Zk,update:V_,action:ar,refineEvent:VL,publishNonRefinedEvent:!0});zi({type:LM,event:Zk,update:LM,action:ar,refineEvent:VL,publishNonRefinedEvent:!0});zi({type:G_,event:Zk,update:G_,action:ar,refineEvent:VL,publishNonRefinedEvent:!0});function VL(e,t,r,n){return{eventContent:{selected:kre(r),isFromClick:t.isFromClick||!1}}}RL("default",{});RL("dark",J7);var Doe={},yO=[],Eoe={registerPreprocessor:OL,registerProcessor:zL,registerPostInit:SU,registerPostUpdate:CU,registerUpdateLifecycle:Y1,registerAction:zi,registerCoordinateSystem:TU,registerLayout:MU,registerVisual:ou,registerTransform:NU,registerLoading:FL,registerMap:AU,registerImpl:Nie,PRIORITY:vU,ComponentModel:Qe,ComponentView:Rt,SeriesModel:Pt,ChartView:At,registerComponentModel:function(e){Qe.registerClass(e)},registerComponentView:function(e){Rt.registerClass(e)},registerSeriesModel:function(e){Pt.registerClass(e)},registerChartView:function(e){At.registerClass(e)},registerCustomSeries:function(e,t){aU(e,t)},registerSubTypeDefaulter:function(e,t){Qe.registerSubTypeDefaulter(e,t)},registerPainter:function(e,t){NG(e,t)}};function $e(e){if(ne(e)){j(e,function(t){$e(t)});return}Ve(yO,e)>=0||(yO.push(e),Me(e)&&(e={install:e}),e.install(Eoe))}function Zv(e){return e==null?0:e.length||1}function xO(e){return e}var ks=function(){function e(t,r,n,a,i,o){this._old=t,this._new=r,this._oldKeyGetter=n||xO,this._newKeyGetter=a||xO,this.context=i,this._diffModeMultiple=o==="multiple"}return e.prototype.add=function(t){return this._add=t,this},e.prototype.update=function(t){return this._update=t,this},e.prototype.updateManyToOne=function(t){return this._updateManyToOne=t,this},e.prototype.updateOneToMany=function(t){return this._updateOneToMany=t,this},e.prototype.updateManyToMany=function(t){return this._updateManyToMany=t,this},e.prototype.remove=function(t){return this._remove=t,this},e.prototype.execute=function(){this[this._diffModeMultiple?"_executeMultiple":"_executeOneToOne"]()},e.prototype._executeOneToOne=function(){var t=this._old,r=this._new,n={},a=new Array(t.length),i=new Array(r.length);this._initIndexMap(t,null,a,"_oldKeyGetter"),this._initIndexMap(r,n,i,"_newKeyGetter");for(var o=0;o1){var c=l.shift();l.length===1&&(n[s]=l[0]),this._update&&this._update(c,o)}else u===1?(n[s]=null,this._update&&this._update(l,o)):this._remove&&this._remove(o)}this._performRestAdd(i,n)},e.prototype._executeMultiple=function(){var t=this._old,r=this._new,n={},a={},i=[],o=[];this._initIndexMap(t,n,i,"_oldKeyGetter"),this._initIndexMap(r,a,o,"_newKeyGetter");for(var s=0;s1&&d===1)this._updateManyToOne&&this._updateManyToOne(c,u),a[l]=null;else if(h===1&&d>1)this._updateOneToMany&&this._updateOneToMany(c,u),a[l]=null;else if(h===1&&d===1)this._update&&this._update(c,u),a[l]=null;else if(h>1&&d>1)this._updateManyToMany&&this._updateManyToMany(c,u),a[l]=null;else if(h>1)for(var v=0;v1)for(var s=0;s30}var $v=Ie,Ys=oe,Foe=typeof Int32Array>"u"?Array:Int32Array,Voe="e\0\0",_O=-1,Goe=["hasItemOption","_nameList","_idList","_invertedIndicesMap","_dimSummary","userOutput","_rawData","_dimValueGetter","_nameDimIdx","_idDimIdx","_nameRepeatCount"],Hoe=["_approximateExtent"],bO,w0,Yv,Xv,gC,qv,mC,Nn=function(){function e(t,r){this.type="list",this._dimOmitted=!1,this._nameList=[],this._idList=[],this._visual={},this._layout={},this._itemVisuals=[],this._itemLayouts=[],this._graphicEls=[],this._approximateExtent={},this._calculationInfo={},this.hasItemOption=!1,this.TRANSFERABLE_METHODS=["cloneShallow","downSample","minmaxDownSample","lttbDownSample","map"],this.CHANGABLE_METHODS=["filterSelf","selectRange"],this.DOWNSAMPLE_METHODS=["downSample","minmaxDownSample","lttbDownSample"];var n,a=!1;LU(t)?(n=t.dimensions,this._dimOmitted=t.isDimensionOmitted(),this._schema=t):(a=!0,n=t),n=n||["x","y"];for(var i={},o=[],s={},l=!1,u={},c=0;c=r)){var n=this._store,a=n.getProvider();this._updateOrdinalMeta();var i=this._nameList,o=this._idList,s=a.getSource().sourceFormat,l=s===ka;if(l&&!a.pure)for(var u=[],c=t;c0},e.prototype.ensureUniqueItemVisual=function(t,r){var n=this._itemVisuals,a=n[t];a||(a=n[t]={});var i=a[r];return i==null&&(i=this.getVisual(r),ne(i)?i=i.slice():$v(i)&&(i=te({},i)),a[r]=i),i},e.prototype.setItemVisual=function(t,r,n){var a=this._itemVisuals[t]||{};this._itemVisuals[t]=a,$v(r)?te(a,r):a[r]=n},e.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},e.prototype.setLayout=function(t,r){$v(t)?te(this._layout,t):this._layout[t]=r},e.prototype.getLayout=function(t){return this._layout[t]},e.prototype.getItemLayout=function(t){return this._itemLayouts[t]},e.prototype.setItemLayout=function(t,r,n){this._itemLayouts[t]=n?te(this._itemLayouts[t]||{},r):r},e.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},e.prototype.setItemGraphicEl=function(t,r){var n=this.hostModel&&this.hostModel.seriesIndex;kM(n,this.dataType,t,r),this._graphicEls[t]=r},e.prototype.getItemGraphicEl=function(t){return this._graphicEls[t]},e.prototype.eachItemGraphicEl=function(t,r){j(this._graphicEls,function(n,a){n&&t&&t.call(r,n,a)})},e.prototype.cloneShallow=function(t){return t||(t=new e(this._schema?this._schema:Ys(this.dimensions,this._getDimInfo,this),this.hostModel)),gC(t,this),t._store=this._store,t},e.prototype.wrapMethod=function(t,r){var n=this[t];Me(n)&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var a=n.apply(this,arguments);return r.apply(this,[a].concat(_1(arguments)))})},e.internalField=function(){bO=function(t){var r=t._invertedIndicesMap;j(r,function(n,a){var i=t._dimInfos[a],o=i.ordinalMeta,s=t._store;if(o){n=r[a]=new Foe(o.categories.length);for(var l=0;l1&&(l+="__ec__"+c),a[r]=l}}}(),e}();function Uoe(e,t){return ev(e,t).dimensions}function ev(e,t){TL(e)||(e=ML(e)),t=t||{};var r=t.coordDimensions||[],n=t.dimensionsDefine||e.dimensionsDefine||[],a=pe(),i=[],o=Woe(e,r,n,t.dimensionsCount),s=t.canOmitUnusedDimensions&&PU(o),l=n===e.dimensionsDefine,u=l?IU(e):GL(n),c=t.encodeDefine;!c&&t.encodeDefaulter&&(c=t.encodeDefaulter(e,o));for(var h=pe(c),d=new E7(o),v=0;v0&&(k.name=k.name+(P-1))}),new kU({source:e,dimensions:i,fullDimensionCount:o,dimensionOmitted:s})}function Woe(e,t,r,n){var a=Math.max(e.dimensionsDetectedCount||1,t.length,r.length,n||0);return j(t,function(i){var o;Ie(i)&&(o=i.dimsDef)&&(a=Math.max(a,o.length))}),a}function Zoe(e,t,r){if(r||t.hasKey(e)){for(var n=0;t.hasKey(e+n);)n++;e+=n}return t.set(e,!0),e}var $oe=function(){function e(t){this.coordSysDims=[],this.axisMap=pe(),this.categoryAxisMap=pe(),this.coordSysName=t}return e}();function Yoe(e){var t=e.get("coordinateSystem"),r=new $oe(t),n=Xoe[t];if(n)return n(e,r,r.axisMap,r.categoryAxisMap),r}var Xoe={cartesian2d:function(e,t,r,n){var a=e.getReferringComponents("xAxis",sr).models[0],i=e.getReferringComponents("yAxis",sr).models[0];t.coordSysDims=["x","y"],r.set("x",a),r.set("y",i),Jh(a)&&(n.set("x",a),t.firstCategoryDimIndex=0),Jh(i)&&(n.set("y",i),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=1))},singleAxis:function(e,t,r,n){var a=e.getReferringComponents("singleAxis",sr).models[0];t.coordSysDims=["single"],r.set("single",a),Jh(a)&&(n.set("single",a),t.firstCategoryDimIndex=0)},polar:function(e,t,r,n){var a=e.getReferringComponents("polar",sr).models[0],i=a.findAxisModel("radiusAxis"),o=a.findAxisModel("angleAxis");t.coordSysDims=["radius","angle"],r.set("radius",i),r.set("angle",o),Jh(i)&&(n.set("radius",i),t.firstCategoryDimIndex=0),Jh(o)&&(n.set("angle",o),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=1))},geo:function(e,t,r,n){t.coordSysDims=["lng","lat"]},parallel:function(e,t,r,n){var a=e.ecModel,i=a.getComponent("parallel",e.get("parallelIndex")),o=t.coordSysDims=i.dimensions.slice();j(i.parallelAxisIndex,function(s,l){var u=a.getComponent("parallelAxis",s),c=o[l];r.set(c,u),Jh(u)&&(n.set(c,u),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=l))})},matrix:function(e,t,r,n){var a=e.getReferringComponents("matrix",sr).models[0];t.coordSysDims=["x","y"];var i=a.getDimensionModel("x"),o=a.getDimensionModel("y");r.set("x",i),r.set("y",o),n.set("x",i),n.set("y",o)}};function Jh(e){return e.get("type")==="category"}function DU(e,t,r){r=r||{};var n=r.byIndex,a=r.stackedCoordDimension,i,o,s;qoe(t)?i=t:(o=t.schema,i=o.dimensions,s=t.store);var l=!!(e&&e.get("stack")),u,c,h,d,v=!0;function g(S){return S.type!=="ordinal"&&S.type!=="time"}if(j(i,function(S,C){ue(S)&&(i[C]=S={name:S}),g(S)||(v=!1)}),j(i,function(S,C){l&&!S.isExtraCoord&&(!n&&!u&&S.ordinalMeta&&(u=S),!c&&g(S)&&(!v||S.coordDim!=="x"&&S.coordDim!=="angle")&&(!a||a===S.coordDim)&&(c=S))}),c&&!n&&!u&&(n=!0),c){h="__\0ecstackresult_"+e.id,d="__\0ecstackedover_"+e.id,u&&(u.createInvertedIndices=!0);var m=c.coordDim,y=c.type,x=0;j(i,function(S){S.coordDim===m&&x++});var _={name:h,coordDim:m,coordDimIndex:x,type:y,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:i.length},w={name:d,coordDim:d,coordDimIndex:x+1,type:y,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:i.length+1};o?(s&&(_.storeDimIndex=s.ensureCalculationDimension(d,y),w.storeDimIndex=s.ensureCalculationDimension(h,y)),o.appendCalculationDimension(_),o.appendCalculationDimension(w)):(i.push(_),i.push(w))}return{stackedDimension:c&&c.name,stackedByDimension:u&&u.name,isStackedByIndex:n,stackedOverDimension:d,stackResultDimension:h}}function qoe(e){return!LU(e.schema)}function Ls(e,t){return!!t&&t===e.getCalculationInfo("stackedDimension")}function HL(e,t){return Ls(e,t)?e.getCalculationInfo("stackResultDimension"):t}function Koe(e,t){var r=e.get("coordinateSystem"),n=qd.get(r),a;return t&&t.coordSysDims&&(a=oe(t.coordSysDims,function(i){var o={name:i},s=t.axisMap.get(i);if(s){var l=s.get("type");o.type=ib(l)}return o})),a||(a=n&&(n.getDimensionsInfo?n.getDimensionsInfo():n.dimensions.slice())||["x","y"]),a}function Joe(e,t,r){var n,a;return r&&j(e,function(i,o){var s=i.coordDim,l=r.categoryAxisMap.get(s);l&&(n==null&&(n=o),i.ordinalMeta=l.getOrdinalMeta(),t&&(i.createInvertedIndices=!0)),i.otherDims.itemName!=null&&(a=!0)}),!a&&n!=null&&(e[n].otherDims.itemName=0),n}function Go(e,t,r){r=r||{};var n=t.getSourceManager(),a,i=!1;e?(i=!0,a=ML(e)):(a=n.getSource(),i=a.sourceFormat===ka);var o=Yoe(t),s=Koe(t,o),l=r.useEncodeDefaulter,u=Me(l)?l:l?Xe(g7,s,t):null,c={coordDimensions:s,generateCoord:r.generateCoord,encodeDefine:t.getEncode(),encodeDefaulter:u,canOmitUnusedDimensions:!i},h=ev(a,c),d=Joe(h.dimensions,r.createInvertedIndices,o),v=i?null:n.getSharedDataStore(h),g=DU(t,{schema:h,store:v}),m=new Nn(h,t);m.setCalculationInfo(g);var y=d!=null&&Qoe(a)?function(x,_,w,S){return S===d?w:this.defaultDimValueGetter(x,_,w,S)}:null;return m.hasItemOption=!1,m.initData(i?a:v,null,y),m}function Qoe(e){if(e.sourceFormat===ka){var t=ese(e.data||[]);return!ne(zd(t))}}function ese(e){for(var t=0;t=t[0]&&e<=t[1]},getExtent:function(){return this._extents[ea].slice()},getExtentUnsafe:function(e){return this._extents[e]},setExtent:function(e,t){wO(this._extents,ea,e,t)},setExtent2:function(e,t,r){var n=this._extents;n[e]||(n[e]=n[ea].slice()),wO(n,e,t,r)},freeze:function(){}};function wO(e,t,r,n){jc(r,n)&&(e[t][0]=r,e[t][1]=n)}function RU(e){return sb(e)||md(e)}function sb(e){return e.type==="interval"}function Bm(e){return e.type==="time"}function md(e){return e.type==="log"}function Ln(e){return e.type==="ordinal"}function ose(e){var t=A1(e),r=uh(10,t),n=Lo(e/r);return n?n===2?n=3:n===3?n=5:n*=2:n=1,gt(n*r,-t)}function Vc(e){return so(e)+2}function S0(e,t){return Ic(e)/Ic(t)}function yC(e,t,r){var n=r&&r.lookup;if(n){for(var a=0;a1&&i/o>2&&(a=Math.round(Math.ceil(a/o)*o)),a!==n[0]&&l(n[0],!0,!0);for(var s=a;s<=n[1];s+=o)l(s,!1,s===n[0]||s===n[1]);s-o!==n[1]&&l(n[1],!0,!0);function l(u,c,h){r({value:u,offInterval:c},h)}}var Xg=function(e){X(t,e);function t(r){var n=e.call(this)||this;n.type="ordinal",n.parse=t.parse,WL(n,t.decoratedMethods);var a=r.ordinalMeta;a||(a=new Zg({})),ne(a)&&(a=new Zg({categories:oe(a,function(o){return Ie(o)?o.value:o})})),n._ordinalMeta=a;var i=UL(null,null,r.extent||[0,a.categories.length-1]);return n._mapper=i.mapper,ZL(n),n}return t.parse=function(r){return r==null?r=NaN:ue(r)?(r=this._ordinalMeta.getOrdinal(r),r==null&&(r=NaN)):r=Lo(r),r},t.prototype.getTicks=function(){var r=[];return zU(this,0,function(n){r.push(n)}),r},t.prototype.getMinorTicks=function(r){},t.prototype.setSortInfo=function(r){if(r==null){this._ordinalNumbersByTick=this._ticksByOrdinalNumber=null;return}for(var n=r.ordinalNumbers,a=this._ordinalNumbersByTick=[],i=this._ticksByOrdinalNumber=[],o=0,s=this._ordinalMeta.categories.length,l=Mt(s,n.length);o=0&&r=0&&r=0&&ro[0]&&mo[1]||!isFinite(m)||!isFinite(o[1]))break}else{if(y>g)break;m=Mt(m,o[1]),y===g&&(m=o[1])}if(h.push({value:m}),m=gt(m+a,s),u){var x=u.calcNiceTickMultiple(m,v);x>=0&&(m=gt(m+x*a,s))}if(h.length>0&&m===h[h.length-1].value)break;if(h.length>d)return[]}var _=h.length?h[h.length-1].value:o[1];return i[1]>_&&h.push({value:r.expandToNicedExtent?gt(_+a,s):i[1]}),c&&l.pruneTicksByBreak(r.pruneByBreak,h,u.breaks,function(w){return w.value},n.interval,i),c&&r.breakTicks!=="none"&&l.addBreaksToTicks(h,u.breaks,i),h},t.prototype.getMinorTicks=function(r){return $L(this,r,Z_(this),this._cfg.interval)},t.prototype.getLabel=function(r,n){if(r==null)return"";var a=n&&n.precision;a==null?a=so(r.value)||0:a==="auto"&&(a=this._cfg.intervalPrecision);var i=gt(r.value,a,!0);return mL(i)},t.type="interval",t}(Bi);Bi.registerClass(Dl);var lse=function(e,t,r,n){for(;r>>1;e[a][1]16?16:e>7.5?7:e>3.5?4:e>1.5?2:1}function cse(e){var t=30*$a;return e/=t,e>6?6:e>3?3:e>2?2:1}function hse(e){return e/=eg,e>12?12:e>6?6:e>3.5?4:e>2?2:1}function SO(e,t){return e/=t?cL:uL,e>30?30:e>20?20:e>15?15:e>10?10:e>5?5:e>2?2:1}function fse(e){return qe(N1(e,!0),1)}function dse(e,t,r){var n=Math.max(0,Ve(ga,t)-1);return Y_(new Date(e),ga[n],r).getTime()}function vse(e,t){var r=new Date(0);r[e](1);var n=r.getTime();r[e](1+t);var a=r.getTime()-n;return function(i,o){return Math.max(0,Math.round((o-i)/a))}}function pse(e,t,r,n,a,i){var o=3e3,s=Ine,l=0;function u(V,U,F,Z,$,W,q){for(var re=vse($,V),Q=U,se=new Date(Q);Qo));)if(se[$](se[Z]()+V),Q=se.getTime(),i){var ce=i.calcNiceTickMultiple(Q,re);ce>0&&(se[$](se[Z]()+ce*V),Q=se.getTime())}q.push({value:Q,notAdd:Q>n[1]})}function c(V,U,F){var Z=[],$=!U.length;if(!FU(tg(V),n[0],n[1],r)){$&&(U=[{value:dse(n[0],V,r)},{value:n[1]}]);for(var W=0;W=n[0]&&q<=n[1]&&u(Q,q,re,se,ce,Ue,Z),V==="year"&&F.length>1&&W===0&&F.unshift({value:F[0].value-Q})}}for(var W=0;W=n[0]&&S<=n[1]&&v++)}var C=a/t;if(v>C*1.5&&g>C/1.5||(h.push(_),v>C||e===s[m]))break}d=[]}}}for(var M=wt(oe(h,function(V){return wt(V,function(U){return U.value>=n[0]&&U.value<=n[1]&&!U.notAdd})}),function(V){return V.length>0}),A=M.length-1,I=[],m=0;mn[0])&&I.unshift({value:n[0],time:{level:0,upperTimeUnit:B,lowerTimeUnit:B},notNice:!0}),(!E||E.values&&(i=s);var l=C0.length,u=Math.min(lse(C0,i,0,l),l-1),c=C0[u][1],h=C0[Math.max(u-1,0)][0];e.setTimeInterval({approxInterval:i,interval:c,minLevelUnit:h})};Bi.registerClass(BU);var T0=0,M0=1,mse=2,VU=function(e){X(t,e);function t(r){var n=e.call(this)||this;n.type="log",n.parse=Dl.parse,n.base=r.logBase||10;var a=[],i=[],o=n._lookup={from:a,to:i};a[T0]=a[M0]=i[T0]=i[M0]=NaN,WL(n,t.mapperMethods);var s=xr(),l=r.breakOption,u={lookup:o};return s&&s.parseAxisBreakOptionInwardTransform(l,n,{noNegative:!0},mse,u),n.powStub=new Dl({breakParsed:u.original}),n.intervalStub=new Dl({breakParsed:u.transformed}),ZL(n,n.intervalStub),n}return t.prototype.getTicks=function(r){var n=this.base,a=this.powStub,i=xr(),o=this.intervalStub,s=o.getExtent(),l=a.getExtent(),u={lookup:{from:s,to:l}};return oe(o.getTicks(r||{}),function(c){var h=c.value,d=yC(h,n,u),v;if(i){var g=i.getTicksBreakOutwardTransform(this,c,Z_(a),this._lookup);g&&(v=g.vBreak,d=g.tickVal)}return{value:d,break:v}},this)},t.prototype.getMinorTicks=function(r){return $L(this,r,Z_(this.powStub),this.intervalStub.getConfig().interval)},t.prototype.getLabel=function(r,n){return this.intervalStub.getLabel(r,n)},t.type="log",t.mapperMethods={needTransform:function(){return!0},normalize:function(r){return this.intervalStub.normalize(S0(r,this.base))},scale:function(r){return yC(this.intervalStub.scale(r),this.base,null)},transformIn:function(r,n){return r=S0(r,this.base),n&&n.depth===ps?r:this.intervalStub.transformIn(r,n)},transformOut:function(r,n){var a=n?n.depth:null;return CO.depth=a,TO.lookup=this._lookup,yC(a===ps?r:this.intervalStub.transformOut(r,CO),this.base,TO)},contain:function(r){return this.powStub.contain(r)},setExtent:function(r,n){this.setExtent2(ea,r,n)},setExtent2:function(r,n,a){if(!(!jc(n,a)||n<=0||a<=0)){var i=MO,o=MO;if(r===ea){var s=this._lookup;i=s.to,o=s.from}this.powStub.setExtent2(r,i[T0]=n,i[M0]=a);var l=this.base;this.intervalStub.setExtent2(r,o[T0]=S0(n,l),o[M0]=S0(a,l))}},getFilter:function(){return{g:0}},sanitize:function(r,n){return jc(n[0],n[1])&&ni(r)&&r<=0&&(r=n[0]),r},getDefaultStartValue:function(){return 1},getExtent:function(){return this.powStub.getExtent()},getExtentUnsafe:function(r,n){return n===null?this.powStub.getExtentUnsafe(r,null):this.intervalStub.getExtentUnsafe(r,n)}},t}(Bi);Bi.registerClass(VU);var CO={},TO={},MO=[],GU={value:1,category:1,time:1,log:1},HU=Ze();function Fm(e){var t=e.get("type");return(t==null||!ge(GU,t)&&!Bi.getClass(t))&&(t="value"),t}function tv(e,t,r){var n=xr(),a;switch(n&&(a=UU(e,t,r)),t){case"category":return new Xg({ordinalMeta:e.getOrdinalMeta?e.getOrdinalMeta():e.getCategories(),extent:sn()});case"time":return new BU({locale:e.ecModel.getLocaleModel(),useUTC:e.ecModel.get("useUTC"),breakOption:a});case"log":return new VU({logBase:e.get("logBase"),breakOption:a});case"value":return new Dl({breakOption:a});default:return new(Bi.getClass(t)||Dl)({})}}function yse(e,t,r){var n=e.getExtentUnsafe(ea,null),a=n[0],i=n[1];return jc(a,i)?a===t||i===t?_se:at?xse:iA:iA}var xse=1,_se=2,iA=3;function bse(e){HU(e).noOnMyZero=!0}function wse(e){return HU(e).noOnMyZero}function Vm(e){var t=e.getLabelModel().get("formatter");if(e.type==="time"){var r=Pne(t);return function(a,i){return e.scale.getFormattedLabel(a,i,r)}}else{if(ue(t))return function(a){var i=e.scale.getLabel(a),o=t.replace("{value}",i??"");return o};if(Me(t)){if(e.type==="category")return function(a,i){return t(lb(e,a),a.value-e.scale.getExtent()[0],null)};var n=xr();return function(a,i){var o=null;return n&&(o=n.makeAxisLabelFormatterParamBreak(o,a.break)),t(lb(e,a),i,o)}}else return function(a){return e.scale.getLabel(a)}}}function lb(e,t){var r=e.scale;return Ln(r)?r.getLabel(t):t.value}function YL(e){var t=e.get("interval");return t??"auto"}function Sse(e){return e.type==="category"&&YL(e.getLabelModel())===0}function Cse(e,t){var r={};return j(e.mapDimensionsAll(t),function(n){r[HL(e,n)]=!0}),at(r)}function yd(e){return e==="middle"||e==="center"}function qg(e){return e.getShallow("show")}function UU(e,t,r){var n=e.get("breaks",!0);if(n!=null)return!xr()||!r||!Tse(t)?void 0:n}function Tse(e){return e!=="category"}function WU(e,t,r,n,a,i){var o=md(e),s=o?e.intervalStub:e;if(s.setExtent(n[0],n[1]),o){var l=e.powStub,u={depth:ps},c=e.transformOut(n[0],u),h=e.transformOut(n[1],u),d=sse(r,n);t[0]&&!d[0]&&(c=a[0]),t[1]&&!d[1]&&(h=a[1]),l.setExtent(c,h)}s.setConfig(i)}function rv(e,t){return Ln(e)?e.getRawOrdinalNumber(t.value):t.value}function Gm(e,t){return Ln(e)&&!!t.get("boundaryGap")}var nv=function(){function e(){}return e.prototype.needIncludeZero=function(){return!this.option.scale},e.prototype.getCoordSysModel=function(){},e}(),Mse=Fd(),ub="|&",av=Ze(),ZU=-2,Ase=-1,Nse=Ze();function XL(e,t){var r=e.model,n=av(Jd(r.ecModel)).keyed,a=n&&n.get(t);return a&&a.get(r.uid)}function kse(e,t){return YU(XL(e,t))}function Lse(e,t){var r=[];return $U(e.model.ecModel,function(n){for(var a=0;a0&&h[1]>0&&!d[0]&&(h[0]=0),h[0]<0&&h[1]<0&&!d[1]&&(h[1]=0));var S=!1;h[0]>h[1]&&(h.reverse(),S=!0);var C=Kv(t,r.get("startValue",!0)),M=C!=null;!ni(C)&&a&&(C=t.getDefaultStartValue?t.getDefaultStartValue():0),ni(C)&&(M||!_||w)&&(Ch[1]&&!d[1]&&(h[1]=C,d[1]=!0));var A=this._i={scale:t,dataMM:c,noZoomEffMM:h,zoomMM:[],fixMM:d,zoomFixMM:[!1,!1],startValue:C,isBlank:x,incl0:w,tggAxInv:S,ctnShp:i};AO(A,h)}return e.prototype.makeNoZoom=function(){return this._i.noZoomEffMM.slice()},e.prototype.makeFinal=function(){var t=this._i,r=t.zoomMM,n=t.noZoomEffMM,a=t.zoomFixMM,i=t.fixMM,o={fixMM:i,zoomFixMM:a,isBlank:t.isBlank,incl0:t.incl0,tggAxInv:t.tggAxInv,ctnShp:t.ctnShp,effMM:n.slice()},s=o.effMM;return r[0]!=null&&(s[0]=r[0],i[0]=a[0]=!0),r[1]!=null&&(s[1]=r[1],i[1]=a[1]=!0),AO(t,s),o},e.prototype.makeRenderInfo=function(){return{startValue:this._i.startValue}},e.prototype.setZoomMM=function(t,r){this._i.zoomMM[t]=r},e}();function AO(e,t){var r=e.scale,n=e.dataMM;r.sanitize&&(t[0]=r.sanitize(t[0],n),t[1]=r.sanitize(t[1],n),Rx(t))}function Kv(e,t){return t==null?null:un(t)?NaN:e.parse(t)}function zse(e,t){var r;if(Ln(e))r=[0,0];else{var n=t.get("boundaryGap");typeof n=="boolean"&&(n=null),r=ne(n)?n:[n,n]}return[NO(r[0]),NO(r[1])]}function NO(e){return ko(typeof e=="boolean"?0:e,1)||0}function JU(e){var t=jse(e.scale);return t.extent||(t.extent=sn()),t}function Bse(e,t){JU(e).dimIdxInCoord=t.get(e.dim)}function Uc(e,t){var r=e.scale,n=e.model,a=e.dim;r.rawExtentInfo||Fse(r,e,a,n,t)}function Fse(e,t,r,n,a){var i=JU(t),o=i.extent,s=!1;Ise(t,function(c){if(c.boxCoordinateSystem){var h=n7(c).coord,d=i.dimIdxInCoord;if(d>=0){if(ne(h)){var v=h[d];v!=null&&!ne(v)&&CM(o,e.parse(v))}}}else if(c.coordinateSystem){var g=c.getData();if(g){var m=e.getFilter?e.getFilter():null;j(Cse(g,r),function(y){mte(o,g.getApproximateExtent(y,m))})}c.__requireStartValue&&c.__requireStartValue(t)&&(s=!0)}});var l=Gse(e,t,n),u=new KU(e,n,o,s,l);QU(e,u,a),i.extent=null}function Vse(e,t){var r=e.scale;QU(r,new KU(r,e.model,t,!1,!1),Ose)}function QU(e,t,r){e.rawExtentInfo=t,t.from=r}function J1(e,t){JL.set(e,t)}var JL=pe();function e8(e,t,r,n,a){e.rawExtentInfo||Vse({scale:e,model:t},a||sn());var i=e.rawExtentInfo.makeFinal(),o=i.effMM;return e.setExtent(o[0],o[1]),e.setBlank(i.isBlank),n&&i.tggAxInv&&r&&!r.get("legacyMinMaxDontInverseAxis")&&(n.inverse=!n.inverse),i}function Gse(e,t,r){var n=Gm(e,r),a=r.get("containShape",!0);if(a==null&&!n&&(a=!0),!a)return!1;var i=!1;return XU(t,function(o){i=!!JL.get(o)||i}),i}function Hse(e,t,r,n){if(r.ctnShp){var a;if(XU(e,function(s){var l=JL.get(s);if(l){var u=l(e,n);u&&(a=a||[0,0],HG(a,u[0]),UG(a,u[1]),bse(e))}}),!!a){var i=t.getExtent();if(Ln(t))e.onBand||t.setExtent2($g,Mt(i[0],i[0]+a[0]),qe(i[1],i[1]+a[1]));else{var o=i.slice();r.zoomFixMM[0]||(o[0]=Mt(o[0],t.transformOut(t.transformIn(o[0],null)+a[0],null))),r.zoomFixMM[1]||(o[1]=qe(o[1],t.transformOut(t.transformIn(o[1],null)+a[1],null))),(o[0]i[1])&&t.setExtent2($g,o[0],o[1])}}}}function kO(e,t){var r=md(e),n=r?e.intervalStub:e,a=t.fixMinMax||[],i=r?e.getExtent():null,o=n.getExtent(),s=OU(o,a,t.rawExtentResult);n.setExtent(s[0],s[1]),s=n.getExtent();var l=r?Wse(n,t):Use(n,t),u=l.intervalPrecision,c=l.interval,h=t.userInterval;h!=null&&(l.interval=h,l.intervalPrecision=Vc(h)),a[0]||(s[0]=gt(ri(s[0]/c)*c,u)),a[1]||(s[1]=gt(lh(s[1]/c)*c,u)),h!=null&&(l.niceExtent=s.slice()),WU(e,a,o,s,i,l)}function Use(e,t){var r=q1(t.splitNumber,5),n=X1(e),a=t.minInterval,i=t.maxInterval,o=N1(n/r,!0);a!=null&&oi&&(o=i);var s=Vc(o),l=e.getExtent(),u=[gt(lh(l[0]/o)*o,s),gt(ri(l[1]/o)*o,s)];return{interval:o,intervalPrecision:s,niceExtent:u}}function Wse(e,t){var r=q1(t.splitNumber,10),n=e.getExtent(),a=X1(e),i=qe(jk(a),1),o=r/a*i;o<=.5&&(i*=10);var s=Vc(i),l=[gt(lh(n[0]/i)*i,s),gt(ri(n[1]/i)*i,s)];return{intervalPrecision:s,interval:i,niceExtent:l}}function _d(e){var t=e.scale,r=e.model,n=r.axis,a=r.ecModel;t8(t,r,n,a,null)}function t8(e,t,r,n,a){var i=e8(e,t,n,r,a),o=sb(e)||Bm(e);r8(e,{splitNumber:t.get("splitNumber"),fixMinMax:i.fixMM,userInterval:t.get("interval"),minInterval:o?t.get("minInterval"):null,maxInterval:o?t.get("maxInterval"):null,rawExtentResult:i}),r&&n&&Hse(r,e,i,n)}function r8(e,t){Zse[e.type](e,t)}var Zse={interval:kO,log:kO,time:gse,ordinal:ar};function $se(e){return Go(null,e)}var Yse={isDimensionStacked:Ls,enableDataStack:DU,getStackedDimension:HL};function Xse(e,t){var r=t;t instanceof tt||(r=new tt(t));var n=Fm(r),a=tv(r,n,!1);return e[1]a&&(n=o,a=l)}if(n)return tle(n.exterior);var u=this.getBoundingRect();return[u.x+u.width/2,u.y+u.height/2]},t.prototype.getBoundingRect=function(r){var n=this._rect;if(n&&!r)return n;var a=[1/0,1/0],i=[-1/0,-1/0],o=this.geometries;return j(o,function(s){s.type==="polygon"?IO(s.exterior,a,i,r):j(s.points,function(l){IO(l,a,i,r)})}),isFinite(a[0])&&isFinite(a[1])&&isFinite(i[0])&&isFinite(i[1])||(a[0]=a[1]=i[0]=i[1]=0),n=new ke(a[0],a[1],i[0]-a[0],i[1]-a[1]),r||(this._rect=n),n},t.prototype.contain=function(r){var n=this.getBoundingRect(),a=this.geometries;if(!n.contain(r[0],r[1]))return!1;e:for(var i=0,o=a.length;i>1^-(s&1),l=l>>1^-(l&1),s+=a,l+=i,a=s,i=l,n.push([s/r,l/r])}return n}function lA(e,t){return e=nle(e),oe(wt(e.features,function(r){return r.geometry&&r.properties&&r.geometry.coordinates.length>0}),function(r){var n=r.properties,a=r.geometry,i=[];switch(a.type){case"Polygon":var o=a.coordinates;i.push(new PO(o[0],o.slice(1)));break;case"MultiPolygon":j(a.coordinates,function(l){l[0]&&i.push(new PO(l[0],l.slice(1)))});break;case"LineString":i.push(new DO([a.coordinates]));break;case"MultiLineString":i.push(new DO(a.coordinates))}var s=new a8(n[t||"name"],i,n.cp);return s.properties=n,s})}const ale=Object.freeze(Object.defineProperty({__proto__:null,MAX_SAFE_INTEGER:Rg,asc:qr,getPercentWithPrecision:Kee,getPixelPrecision:qee,getPrecision:so,getPrecisionSafe:PG,isNumeric:Rk,isRadianAroundZero:Pc,linearMap:xt,nice:N1,numericToNumber:Io,parseDate:Fo,parsePercent:fe,quantile:jx,quantity:jk,quantityExponent:A1,reformIntervals:wM,remRadian:Ek,round:Xee},Symbol.toStringTag,{value:"Module"})),ile=Object.freeze(Object.defineProperty({__proto__:null,format:Rm,parse:Fo,roundTime:Y_},Symbol.toStringTag,{value:"Module"})),ole=Object.freeze(Object.defineProperty({__proto__:null,Arc:Dm,BezierCurve:Ud,BoundingRect:ke,Circle:Vo,CompoundPath:Em,Ellipse:Pm,Group:Ne,Image:Ur,IncrementalDisplayable:NH,Line:yr,LinearGradient:hh,Polygon:vn,Polyline:en,RadialGradient:Kk,Rect:Ke,Ring:Hd,Sector:dn,Text:ht,clipPointsByRect:tL,clipRectByRect:jH,createIcon:$d,extendPath:DH,extendShape:PH,getShapeClass:Fg,getTransform:yc,initProps:Ut,makeImage:Qk,makePath:dd,mergePath:ya,registerShape:li,resizePath:eL,updateProps:mt},Symbol.toStringTag,{value:"Module"})),sle=Object.freeze(Object.defineProperty({__proto__:null,addCommas:mL,capitalFirst:Fne,encodeHTML:Tn,formatTime:Bne,formatTpl:xL,getTextRect:zne,getTooltipMarker:e7,normalizeCssArray:Xd,toCamelCase:yL,truncateText:Ete},Symbol.toStringTag,{value:"Module"})),lle=Object.freeze(Object.defineProperty({__proto__:null,bind:ve,clone:Te,curry:Xe,defaults:Le,each:j,extend:te,filter:wt,indexOf:Ve,inherits:Tk,isArray:ne,isFunction:Me,isObject:Ie,isString:ue,map:oe,merge:We,reduce:ti},Symbol.toStringTag,{value:"Module"}));var ule=Ze(),ng=Ze(),Di={estimate:1,determine:2};function cb(e){return{out:{noPxChangeTryDetermine:[]},kind:e}}function cle(e,t){var r=e.getLabelModel().get("customValues");if(r){var n=e.scale;return{labels:oe(o8(r,n),function(a,i){return{formattedLabel:Vm(e)(a,i),rawLabel:n.getLabel(a),tick:a}})}}return e.type==="category"?fle(e,t):vle(e)}function hle(e,t,r){var n=e.scale,a=e.getTickModel().get("customValues");return a?{ticks:o8(a,n)}:e.type==="category"?dle(e,t):{ticks:n.getTicks(r)}}function o8(e,t){var r=t.getExtent(),n=[];return j(e,function(a){a=t.parse(a),a>=r[0]&&a<=r[1]&&n.push(a)}),k1(n,bte,null),qr(n),oe(n,function(a){return{value:a}})}function fle(e,t){var r=e.getLabelModel(),n=s8(e,r,t);return!r.get("show")||e.scale.isBlank()?{labels:[]}:n}function s8(e,t,r){var n=gle(e),a=YL(t),i=r.kind===Di.estimate;if(!i){var o=u8(n,a);if(o)return o}var s,l;Me(a)?s=hb(e,a,!1):(l=a==="auto"?mle(e,r):a,s=hb(e,l,!1));var u={labels:s,labelCategoryInterval:l};return i?r.out.noPxChangeTryDetermine.push(function(){return uA(n,a,u),!0}):uA(n,a,u),u}function dle(e,t){var r=ple(e),n=YL(t),a=u8(r,n);if(a)return a;var i,o;if((!t.get("show")||e.scale.isBlank())&&(i=[]),Me(n))i=hb(e,n,!0);else if(n==="auto"){var s=s8(e,e.getLabelModel(),cb(Di.determine));o=s.labelCategoryInterval,i=oe(s.labels,function(l){return l.tick})}else o=n,i=hb(e,o,!0);return uA(r,n,{ticks:i,tickCategoryInterval:o})}function vle(e){var t=e.scale.getTicks(),r=Vm(e);return{labels:oe(t,function(n,a){return{formattedLabel:r(n,a),rawLabel:e.scale.getLabel(n),tick:n}})}}var ple=l8("axisTick"),gle=l8("axisLabel");function l8(e){return function(r){return ng(r)[e]||(ng(r)[e]={list:[]})}}function u8(e,t){for(var r=0;rc&&(u=Math.max(1,Math.floor(l/c)));for(var h=s[0],d=e.dataToCoord(h+1)-e.dataToCoord(h),v=Math.abs(d*Math.cos(i)),g=Math.abs(d*Math.sin(i)),m=0,y=0;h<=s[1];h+=u){var x=0,_=0,w=C1(a({value:h}),n.font,"center","top");x=w.width*1.3,_=w.height*1.3,m=Math.max(m,x,7),y=Math.max(y,_,7)}var S=m/v,C=y/g;isNaN(S)&&(S=1/0),isNaN(C)&&(C=1/0);var M=Math.max(0,Math.floor(Math.min(S,C)));if(r===Di.estimate)return t.out.noPxChangeTryDetermine.push(ve(xle,null,e,M,l)),M;var A=c8(e,M,l);return A??M}function xle(e,t,r){return c8(e,t,r)==null}function c8(e,t,r){var n=ule(e.model),a=e.getExtent(),i=n.lastAutoInterval,o=n.lastTickCount;if(i!=null&&o!=null&&Math.abs(i-t)<=1&&Math.abs(o-r)<=1&&i>t&&n.axisExtent0===a[0]&&n.axisExtent1===a[1])return i;n.lastTickCount=r,n.lastAutoInterval=t,n.axisExtent0=a[0],n.axisExtent1=a[1]}function _le(e){var t=e.getLabelModel();return{axisRotate:e.getRotate?e.getRotate():e.isHorizontal&&!e.isHorizontal()?90:0,labelRotate:t.get("rotate")||0,font:t.getFont()}}function hb(e,t,r){var n=Vm(e),a=e.scale,i=[],o=Me(t);return zU(a,o?0:t,function(s,l){var u=a.getLabel(s);if(o){var c=!!t(s.value,u);if(s.offInterval=!c,!c&&!l)return}i.push(r?s:{formattedLabel:n(s),rawLabel:u,tick:s})}),i}var ble=.8;function pn(e,t){t=t||{};var r={w:NaN,w2:NaN},n=e.scale,a=t.fromStat,i=t.min,o=ase(n);ni(o)||(o=NaN);var s=e.getExtent(),l=nr(s[1]-s[0]);return Ln(n)?wle(r,e,o,l):a&&Sle(r,e,o,l,a),i!=null&&(r.w=ni(r.w)?qe(i,r.w):i),r}function wle(e,t,r,n){var a=t.onBand,i=r+(a?1:0);i===0&&(i=1),e.w=n/i,!a&&r&&n&&(e.w2=e.w*r/n)}function Sle(e,t,r,n,a){var i=!1,o=-1/0;j(a.key?[kse(t,a.key)]:Lse(t,a.sers||[]),function(s){var l=s.liPosMinGap;l!=null&&(l>0?(l>o&&(o=l),i=!1):l===ZU&&(i=!0))}),ni(r)&&r>0&&ni(o)?(e.w=n/r*o,e.w2=o):i&&(e.w=n*ble,e.w2=e.w*r/n)}var EO=[0,1],ui=function(){function e(t,r,n){this.onBand=!1,this.inverse=!1,this.dim=t,this.scale=r,this._extent=n||[0,0]}return e.prototype.contain=function(t){var r=this._extent,n=Math.min(r[0],r[1]),a=Math.max(r[0],r[1]);return t>=n&&t<=a},e.prototype.containData=function(t){return this.scale.contain(this.scale.parse(t))},e.prototype.getExtent=function(){return this._extent.slice()},e.prototype.setExtent=function(t,r){var n=this._extent;n[0]=t,n[1]=r},e.prototype.dataToCoord=function(t,r){var n=this.scale;return t=n.normalize(n.parse(t)),xt(t,EO,jO(this),r)},e.prototype.coordToData=function(t,r){var n=xt(t,jO(this),EO,r);return this.scale.scale(n)},e.prototype.pointToData=function(t,r){},e.prototype.getTicksCoords=function(t){t=t||{};var r=t.tickModel||this.getTickModel(),n=hle(this,r,{breakTicks:t.breakTicks,pruneByBreak:t.pruneByBreak}),a=oe(n.ticks,function(s){return{coord:this.dataToCoord(rv(this.scale,s)),tick:s}},this),i=r.get("alignWithLabel"),o=Cle(this,a,i);return oe(a,function(s){return{coord:s.coord,tickValue:s.tick.value,onBand:o}})},e.prototype.getMinorTicksCoords=function(){if(Ln(this.scale))return[];var t=this.model.getModel("minorTick"),r=t.get("splitNumber");r>0&&r<100||(r=5);var n=this.scale.getMinorTicks(r),a=oe(n,function(i){return oe(i,function(o){return{coord:this.dataToCoord(o),tickValue:o}},this)},this);return a},e.prototype.getViewLabels=function(t){return t=t||cb(Di.determine),cle(this,t).labels},e.prototype.getLabelModel=function(){return this.model.getModel("axisLabel")},e.prototype.getTickModel=function(){return this.model.getModel("axisTick")},e.prototype.getBandWidth=function(){return pn(this,{min:1}).w},e.prototype.calculateCategoryInterval=function(t){return t=t||cb(Di.determine),yle(this,t)},e}();function jO(e){var t=e.getExtent();if(e.onBand){var r=t[1]-t[0],n=r/e.scale.count()/2;t[0]+=n,t[1]-=n}return t}function Cle(e,t,r){var n=t.length;if(!e.onBand||r||!n)return!1;var a=pn(e).w;if(!a)return!1;j(t,function(s){s.coord-=a/2});var i=e.scale.getExtent(),o=t[n-1];return o.tick.offInterval&&t.pop(),t.push({coord:o.coord+a,tick:{value:i[1]+1}}),!0}function Tle(e){var t=Qe.extend(e);return Qe.registerClass(t),t}function Mle(e){var t=Rt.extend(e);return Rt.registerClass(t),t}function Ale(e){var t=Pt.extend(e);return Pt.registerClass(t),t}function Nle(e){var t=At.extend(e);return At.registerClass(t),t}var Jv=Math.PI*2,Ou=Po.CMD,kle=["top","right","bottom","left"];function Lle(e,t,r,n,a){var i=r.width,o=r.height;switch(e){case"top":n.set(r.x+i/2,r.y-t),a.set(0,-1);break;case"bottom":n.set(r.x+i/2,r.y+o+t),a.set(0,1);break;case"left":n.set(r.x-t,r.y+o/2),a.set(-1,0);break;case"right":n.set(r.x+i+t,r.y+o/2),a.set(1,0);break}}function Ile(e,t,r,n,a,i,o,s,l){o-=e,s-=t;var u=Math.sqrt(o*o+s*s);o/=u,s/=u;var c=o*r+e,h=s*r+t;if(Math.abs(n-a)%Jv<1e-4)return l[0]=c,l[1]=h,u-r;if(i){var d=n;n=ba(a),a=ba(d)}else n=ba(n),a=ba(a);n>a&&(a+=Jv);var v=Math.atan2(s,o);if(v<0&&(v+=Jv),v>=n&&v<=a||v+Jv>=n&&v+Jv<=a)return l[0]=c,l[1]=h,u-r;var g=r*Math.cos(n)+e,m=r*Math.sin(n)+t,y=r*Math.cos(a)+e,x=r*Math.sin(a)+t,_=(g-o)*(g-o)+(m-s)*(m-s),w=(y-o)*(y-o)+(x-s)*(x-s);return _0){t=t/180*Math.PI,wi.fromArray(e[0]),Gt.fromArray(e[1]),mr.fromArray(e[2]),Pe.sub(uo,wi,Gt),Pe.sub(oo,mr,Gt);var r=uo.len(),n=oo.len();if(!(r<.001||n<.001)){uo.scale(1/r),oo.scale(1/n);var a=uo.dot(oo),i=Math.cos(t);if(i1&&Pe.copy(zn,mr),zn.toArray(e[1])}}}}function Ele(e,t,r){if(r<=180&&r>0){r=r/180*Math.PI,wi.fromArray(e[0]),Gt.fromArray(e[1]),mr.fromArray(e[2]),Pe.sub(uo,Gt,wi),Pe.sub(oo,mr,Gt);var n=uo.len(),a=oo.len();if(!(n<.001||a<.001)){uo.scale(1/n),oo.scale(1/a);var i=uo.dot(t),o=Math.cos(r);if(i=l)Pe.copy(zn,mr);else{zn.scaleAndAdd(oo,s/Math.tan(Math.PI/2-c));var h=mr.x!==Gt.x?(zn.x-Gt.x)/(mr.x-Gt.x):(zn.y-Gt.y)/(mr.y-Gt.y);if(isNaN(h))return;h<0?Pe.copy(zn,Gt):h>1&&Pe.copy(zn,mr)}zn.toArray(e[1])}}}}function bC(e,t,r,n){var a=r==="normal",i=a?e:e.ensureState(r);i.ignore=t;var o=n.get("smooth");o=o===!0?.3:Math.max(+o,0)||0,i.shape=i.shape||{},i.shape.smooth=o;var s=n.getModel("lineStyle").getLineStyle();a?e.useStyle(s):i.style=s}function jle(e,t){var r=t.smooth,n=t.points;if(n)if(e.moveTo(n[0][0],n[0][1]),r>0&&n.length>=3){var a=os(n[0],n[1]),i=os(n[1],n[2]);if(!a||!i){e.lineTo(n[1][0],n[1][1]),e.lineTo(n[2][0],n[2][1]);return}var o=Math.min(a,i)*r,s=$p([],n[1],n[0],o/a),l=$p([],n[1],n[2],o/i),u=$p([],s,l,.5);e.bezierCurveTo(s[0],s[1],s[0],s[1],u[0],u[1]),e.bezierCurveTo(l[0],l[1],l[0],l[1],n[2][0],n[2][1])}else for(var c=1;c0){S(P*k,0,i);var D=P+A;D<0&&C(-D*k,1)}else C(-A*k,1)}}function S(A,I,k){A!==0&&(c=!0);for(var P=I;P0)for(var D=0;D0;D--){var H=k[D-1]*B;S(-H,D,i)}}}function M(A){var I=A<0?-1:1;A=Math.abs(A);for(var k=Math.ceil(A/(i-1)),P=0;P0?S(k,0,P+1):S(-k,i-P-1,i),A-=k,A<=0)return}return c}function zle(e){for(var t=0;t=0&&n.attr(i.oldLayoutSelect),Ve(d,"emphasis")>=0&&n.attr(i.oldLayoutEmphasis)),mt(n,u,r,l)}else if(n.attr(u),!Yd(n).valueAnimation){var h=_e(n.style.opacity,1);n.style.opacity=0,Ut(n,{style:{opacity:h}},r,l)}if(i.oldLayout=u,n.states.select){var v=i.oldLayoutSelect={};A0(v,u,N0),A0(v,n.states.select,N0)}if(n.states.emphasis){var g=i.oldLayoutEmphasis={};A0(g,u,N0),A0(g,n.states.emphasis,N0)}VH(n,l,c,r,r)}if(a&&!a.ignore&&!a.invisible){var i=Vle(a),o=i.oldLayout,m={points:a.shape.points};o?(a.attr({shape:o}),mt(a,{shape:m},r)):(a.setShape(m),a.style.strokePercent=0,Ut(a,{style:{strokePercent:1}},r)),i.oldLayout=m}},e}(),CC=Ze();function Hle(e){e.registerUpdateLifecycle("series:beforeupdate",function(t,r,n){var a=CC(r).labelManager;a||(a=CC(r).labelManager=new Gle),a.clearLabels()}),e.registerUpdateLifecycle("series:layoutlabels",function(t,r,n){var a=CC(r).labelManager;j(n.updatedSeries,function(i){a.addLabelsOfSeries(r.getViewOfSeriesModel(i))}),a.updateLayoutConfig(r),a.layout(r),a.processLabelsOverall()})}var TC=Math.sin,MC=Math.cos,m8=Math.PI,zu=Math.PI*2,Ule=180/m8,y8=function(){function e(){}return e.prototype.reset=function(t){this._start=!0,this._d=[],this._str="",this._p=Math.pow(10,t||4)},e.prototype.moveTo=function(t,r){this._add("M",t,r)},e.prototype.lineTo=function(t,r){this._add("L",t,r)},e.prototype.bezierCurveTo=function(t,r,n,a,i,o){this._add("C",t,r,n,a,i,o)},e.prototype.quadraticCurveTo=function(t,r,n,a){this._add("Q",t,r,n,a)},e.prototype.arc=function(t,r,n,a,i,o){this.ellipse(t,r,n,n,0,a,i,o)},e.prototype.ellipse=function(t,r,n,a,i,o,s,l){var u=s-o,c=!l,h=Math.abs(u),d=vl(h-zu)||(c?u>=zu:-u>=zu),v=u>0?u%zu:u%zu+zu,g=!1;d?g=!0:vl(h)?g=!1:g=v>=m8==!!c;var m=t+n*MC(o),y=r+a*TC(o);this._start&&this._add("M",m,y);var x=Math.round(i*Ule);if(d){var _=1/this._p,w=(c?1:-1)*(zu-_);this._add("A",n,a,x,1,+c,t+n*MC(o+w),r+a*TC(o+w)),_>.01&&this._add("A",n,a,x,0,+c,m,y)}else{var S=t+n*MC(s),C=r+a*TC(s);this._add("A",n,a,x,+g,+c,S,C)}},e.prototype.rect=function(t,r,n,a){this._add("M",t,r),this._add("l",n,0),this._add("l",0,a),this._add("l",-n,0),this._add("Z")},e.prototype.closePath=function(){this._d.length>0&&this._add("Z")},e.prototype._add=function(t,r,n,a,i,o,s,l,u){for(var c=[],h=this._p,d=1;d"}function Qle(e){return""}function rI(e,t){t=t||{};var r=t.newline?` -`:"";function n(a){var i=a.children,o=a.tag,s=a.attrs,l=a.text;return Jle(o,s)+(o!=="style"?Tn(l):l||"")+(i?""+r+oe(i,function(u){return n(u)}).join(r)+r:"")+Qle(o)}return n(e)}function eue(e,t,r){r=r||{};var n=r.newline?` -`:"",a=" {"+n,i=n+"}",o=oe(at(e),function(l){return l+a+oe(at(e[l]),function(u){return u+":"+e[l][u]+";"}).join(n)+i}).join(n),s=oe(at(t),function(l){return"@keyframes "+l+a+oe(at(t[l]),function(u){return u+a+oe(at(t[l][u]),function(c){var h=t[l][u][c];return c==="d"&&(h='path("'+h+'")'),c+":"+h+";"}).join(n)+i}).join(n)+i}).join(n);return!o&&!s?"":[""].join(n)}function vA(e){return{zrId:e,shadowCache:{},patternCache:{},gradientCache:{},clipPathCache:{},defs:{},cssNodes:{},cssAnims:{},cssStyleCache:{},cssAnimIdx:0,shadowIdx:0,gradientIdx:0,patternIdx:0,clipPathIdx:0}}function VO(e,t,r,n){return Fr("svg","root",{width:e,height:t,xmlns:x8,"xmlns:xlink":_8,version:"1.1",baseProfile:"full",viewBox:n?"0 0 "+e+" "+t:!1},r)}var tue=0;function w8(){return tue++}var GO={cubicIn:"0.32,0,0.67,0",cubicOut:"0.33,1,0.68,1",cubicInOut:"0.65,0,0.35,1",quadraticIn:"0.11,0,0.5,0",quadraticOut:"0.5,1,0.89,1",quadraticInOut:"0.45,0,0.55,1",quarticIn:"0.5,0,0.75,0",quarticOut:"0.25,1,0.5,1",quarticInOut:"0.76,0,0.24,1",quinticIn:"0.64,0,0.78,0",quinticOut:"0.22,1,0.36,1",quinticInOut:"0.83,0,0.17,1",sinusoidalIn:"0.12,0,0.39,0",sinusoidalOut:"0.61,1,0.88,1",sinusoidalInOut:"0.37,0,0.63,1",exponentialIn:"0.7,0,0.84,0",exponentialOut:"0.16,1,0.3,1",exponentialInOut:"0.87,0,0.13,1",circularIn:"0.55,0,1,0.45",circularOut:"0,0.55,0.45,1",circularInOut:"0.85,0,0.15,1"},$u="transform-origin";function rue(e,t,r){var n=te({},e.shape);te(n,t),e.buildPath(r,n);var a=new y8;return a.reset(bG(e)),r.rebuildPath(a,1),a.generateStr(),a.getStr()}function nue(e,t){var r=t.originX,n=t.originY;(r||n)&&(e[$u]=r+"px "+n+"px")}var aue={fill:"fill",opacity:"opacity",lineWidth:"stroke-width",lineDashOffset:"stroke-dashoffset"};function S8(e,t){var r=t.zrId+"-ani-"+t.cssAnimIdx++;return t.cssAnims[r]=e,r}function iue(e,t,r){var n=e.shape.paths,a={},i,o;if(j(n,function(l){var u=vA(r.zrId);u.animation=!0,ew(l,{},u,!0);var c=u.cssAnims,h=u.cssNodes,d=at(c),v=d.length;if(v){o=d[v-1];var g=c[o];for(var m in g){var y=g[m];a[m]=a[m]||{d:""},a[m].d+=y.d||""}for(var x in h){var _=h[x].animation;_.indexOf(o)>=0&&(i=_)}}}),!!i){t.d=!1;var s=S8(a,r);return i.replace(o,s)}}function HO(e){return ue(e)?GO[e]?"cubic-bezier("+GO[e]+")":kk(e)?e:"":""}function ew(e,t,r,n){var a=e.animators,i=a.length,o=[];if(e instanceof Em){var s=iue(e,t,r);if(s)o.push(s);else if(!i)return}else if(!i)return;for(var l={},u=0;u0}).length){var Ue=S8(A,r);return Ue+" "+_[0]+" both"}}for(var y in l){var s=m(l[y]);s&&o.push(s)}if(o.length){var x=r.zrId+"-cls-"+w8();r.cssNodes["."+x]={animation:o.join(",")},t.class=x}}function oue(e,t,r){if(!e.ignore)if(e.isSilent()){var n={"pointer-events":"none"};UO(n,t,r)}else{var a=e.states.emphasis&&e.states.emphasis.style?e.states.emphasis.style:{},i=a.fill;if(!i){var o=e.style&&e.style.fill,s=e.states.select&&e.states.select.style&&e.states.select.style.fill,l=e.currentStates.indexOf("select")>=0&&s||o;l&&(i=D_(l))}var u=a.lineWidth;if(u){var c=!a.strokeNoScale&&e.transform?e.transform[0]:1;u=u/c}var n={cursor:"pointer"};i&&(n.fill=i),a.stroke&&(n.stroke=a.stroke),u&&(n["stroke-width"]=u),UO(n,t,r)}}function UO(e,t,r,n){var a=JSON.stringify(e),i=r.cssStyleCache[a];i||(i=r.zrId+"-cls-"+w8(),r.cssStyleCache[a]=i,r.cssNodes["."+i+":hover"]=e),t.class=t.class?t.class+" "+i:i}var Kg=Math.round;function C8(e){return e&&ue(e.src)}function T8(e){return e&&Me(e.toDataURL)}function nI(e,t,r,n){Xle(function(a,i){var o=a==="fill"||a==="stroke";o&&_G(i)?A8(t,e,a,n):o&&Ik(i)?N8(r,e,a,n):e[a]=i,o&&n.ssr&&i==="none"&&(e["pointer-events"]="visible")},t,r,!1),due(r,e,n)}function aI(e,t){var r=kG(t);r&&(r.each(function(n,a){n!=null&&(e[(FO+a).toLowerCase()]=n+"")}),t.isSilent()&&(e[FO+"silent"]="true"))}function WO(e){return vl(e[0]-1)&&vl(e[1])&&vl(e[2])&&vl(e[3]-1)}function sue(e){return vl(e[4])&&vl(e[5])}function iI(e,t,r){if(t&&!(sue(t)&&WO(t))){var n=1e4;e.transform=WO(t)?"translate("+Kg(t[4]*n)/n+" "+Kg(t[5]*n)/n+")":lee(t)}}function ZO(e,t,r){for(var n=e.points,a=[],i=0;i"u"){var y="Image width/height must been given explictly in svg-ssr renderer.";fn(d,y),fn(v,y)}else if(d==null||v==null){var x=function(P,D){if(P){var z=P.elm,E=d||D.width,B=v||D.height;P.tag==="pattern"&&(u?(B=1,E/=i.width):c&&(E=1,B/=i.height)),P.attrs.width=E,P.attrs.height=B,z&&(z.setAttribute("width",E),z.setAttribute("height",B))}},_=Gk(g,null,e,function(P){l||x(M,P),x(h,P)});_&&_.width&&_.height&&(d=d||_.width,v=v||_.height)}h=Fr("image","img",{href:g,width:d,height:v}),o.width=d,o.height=v}else a.svgElement&&(h=Te(a.svgElement),o.width=a.svgWidth,o.height=a.svgHeight);if(h){var w,S;l?w=S=1:u?(S=1,w=o.width/i.width):c?(w=1,S=o.height/i.height):o.patternUnits="userSpaceOnUse",w!=null&&!isNaN(w)&&(o.width=w),S!=null&&!isNaN(S)&&(o.height=S);var C=wG(a);C&&(o.patternTransform=C);var M=Fr("pattern","",o,[h]),A=rI(M),I=n.patternCache,k=I[A];k||(k=n.zrId+"-p"+n.patternIdx++,I[A]=k,o.id=k,M=n.defs[k]=Fr("pattern",k,o,[h])),t[r]=S1(k)}}function vue(e,t,r){var n=r.clipPathCache,a=r.defs,i=n[e.id];if(!i){i=r.zrId+"-c"+r.clipPathIdx++;var o={id:i};n[e.id]=i,a[i]=Fr("clipPath",i,o,[M8(e,r)])}t["clip-path"]=S1(i)}function XO(e){return document.createTextNode(e)}function ec(e,t,r){e.insertBefore(t,r)}function qO(e,t){e.removeChild(t)}function KO(e,t){e.appendChild(t)}function k8(e){return e.parentNode}function L8(e){return e.nextSibling}function AC(e,t){e.textContent=t}var JO=58,pue=120,gue=Fr("","");function pA(e){return e===void 0}function no(e){return e!==void 0}function mue(e,t,r){for(var n={},a=t;a<=r;++a){var i=e[a].key;i!==void 0&&(n[i]=a)}return n}function kp(e,t){var r=e.key===t.key,n=e.tag===t.tag;return n&&r}function Jg(e){var t,r=e.children,n=e.tag;if(no(n)){var a=e.elm=b8(n);if(oI(gue,e),ne(r))for(t=0;ti?(g=r[l+1]==null?null:r[l+1].elm,I8(e,g,r,a,l)):gb(e,t,n,i))}function df(e,t){var r=t.elm=e.elm,n=e.children,a=t.children;e!==t&&(oI(e,t),pA(t.text)?no(n)&&no(a)?n!==a&&yue(r,n,a):no(a)?(no(e.text)&&AC(r,""),I8(r,null,a,0,a.length-1)):no(n)?gb(r,n,0,n.length-1):no(e.text)&&AC(r,""):e.text!==t.text&&(no(n)&&gb(r,n,0,n.length-1),AC(r,t.text)))}function xue(e,t){if(kp(e,t))df(e,t);else{var r=e.elm,n=k8(r);Jg(t),n!==null&&(ec(n,t.elm,L8(r)),gb(n,[e],0,0))}return t}var _ue=0,bue=function(){function e(t,r,n){if(this.type="svg",this.configLayer=wue(),this.storage=r,this._opts=n=te({},n),this.root=t,this._id="zr"+_ue++,this._oldVNode=VO(n.width,n.height),t&&!n.ssr){var a=this._viewport=document.createElement("div");a.style.cssText="position:relative;overflow:hidden";var i=this._svgDom=this._oldVNode.elm=b8("svg");oI(null,this._oldVNode),a.appendChild(i),t.appendChild(a)}this.resize(n.width,n.height)}return e.prototype.getType=function(){return this.type},e.prototype.getViewportRoot=function(){return this._viewport},e.prototype.getViewportRootOffset=function(){var t=this.getViewportRoot();if(t)return{offsetLeft:t.offsetLeft||0,offsetTop:t.offsetTop||0}},e.prototype.getSvgDom=function(){return this._svgDom},e.prototype.refresh=function(){if(this.root){var t=this.renderToVNode({willUpdate:!0});t.attrs.style="position:absolute;left:0;top:0;user-select:none",xue(this._oldVNode,t),this._oldVNode=t}},e.prototype.renderOneToVNode=function(t){return YO(t,vA(this._id))},e.prototype.renderToVNode=function(t){t=t||{};var r=this.storage.getDisplayList(!0),n=this._width,a=this._height,i=vA(this._id);i.animation=t.animation,i.willUpdate=t.willUpdate,i.compress=t.compress,i.emphasis=t.emphasis,i.ssr=this._opts.ssr;var o=[],s=this._bgVNode=Sue(n,a,this._backgroundColor,i);s&&o.push(s);var l=t.compress?null:this._mainVNode=Fr("g","main",{},[]);this._paintList(r,i,l?l.children:o),l&&o.push(l);var u=oe(at(i.defs),function(d){return i.defs[d]});if(u.length&&o.push(Fr("defs","defs",{},u)),t.animation){var c=eue(i.cssNodes,i.cssAnims,{newline:!0});if(c){var h=Fr("style","stl",{},[],c);o.push(h)}}return VO(n,a,o,t.useViewBox)},e.prototype.renderToString=function(t){return t=t||{},rI(this.renderToVNode({animation:_e(t.cssAnimation,!0),emphasis:_e(t.cssEmphasis,!0),willUpdate:!1,compress:!0,useViewBox:_e(t.useViewBox,!0)}),{newline:!0})},e.prototype.setBackgroundColor=function(t){this._backgroundColor=t},e.prototype.getSvgRoot=function(){return this._mainVNode&&this._mainVNode.elm},e.prototype._paintList=function(t,r,n){for(var a=t.length,i=[],o=0,s,l,u=0,c=0;c=0&&!(d&&l&&d[m]===l[m]);m--);for(var y=g-1;y>m;y--)o--,s=i[o-1];for(var x=m+1;x=s)}}for(var h=e5(this),d=h.startIdx;d=0)&&(o=!0)}),!(!o&&!i.__dirty)){var s=n._opts.useDirtyRect&&!NC(i)?i.createRepaintRects(t,r,n._width,n._height):null,l=n._i.layerStack[0],u=!0;if(i.__dirty){u=!1,i.__dirty=!1;var c=i.zlevel===l.zl&&i.zlevel2===l.zl2?n._backgroundColor:null;i.clear(!1,c,s)}k0(i,function(h){var d=n._paintPerCursor(i,h,t,s,u);a=a&&d})}},L0),ot.wxa&&bn(this._i,function(i){i&&i.ctx&&i.ctx.draw&&i.ctx.draw()}),a},e.prototype._paintPerCursor=function(t,r,n,a,i){var o=t.ctx;if(a)if(!a.length)r.drawIdx=r.endIdx;else for(var s=this.dpr,l=0;l=r.endIdx},e.prototype._paintPerCursorInRect=function(t,r,n,a,i){for(var o={inHover:!1,allClipped:!1,prevEl:null,viewWidth:this._width,viewHeight:this._height,beforeBrushParam:{contentRetained:i}},s=t.ctx,l=NC(t),u=l&&Vr.getTime(),c=r.drawIdx,h=r.notClearIdx,d=h>=0?Math.min(h,c):c;d15){d++;break}}}}qf(s,o),r.drawIdx=Math.max(d,c)},e.prototype.getLayer=function(t,r){return this._ensureLayer(t,0,r)},e.prototype._ensureLayer=function(t,r,n){r=r||0;var a=this._singleCanvas;a&&!this._needsManuallyCompositing&&(t=Bu,r=0);var i=IC(this._i,t)[r];return i||(i=r5("zr_"+t+"."+r,this,t,r),this._layerConfig[t]&&We(i,this._layerConfig[t],!0),(n||a&&t!==Bu)&&(i.virtual=!0),this._insertLayer(i,t,r,!1),i.initContext()),i},e.prototype.insertLayer=function(t,r){this._insertLayer(r,t,0,!1)},e.prototype._insertLayer=function(t,r,n,a){var i=this._i,o=i.layers,s=i.layerStack,l=this._domRoot,u=null;if(!(o[r]&&o[r][n])&&Mue(t)){for(var c=s.length,h=0;h0&&(u=IC(i,s[h-1].zl)[s[h-1].zl2]),s.splice(h,0,{zl:r,zl2:n}),IC(i,r)[n]=t,!a&&!t.virtual)if(u){var d=u.dom;d.nextSibling?l.insertBefore(t.dom,d.nextSibling):l.appendChild(t.dom)}else l.firstChild?l.insertBefore(t.dom,l.firstChild):l.appendChild(t.dom);t.painter||(t.painter=this)}},e.prototype.eachLayer=function(t,r){return bn(this._i,function(n,a){t.call(r,n,a)})},e.prototype.eachBuiltinLayer=function(t,r){return bn(this._i,function(n,a){t.call(r,n,a)},ag)},e.prototype.eachOtherLayer=function(t,r){return bn(this._i,function(n,a){t.call(r,n,a)},gA)},e.prototype.getLayers=function(){var t={};return bn(this._i,function(r,n,a){t[r.id]=r}),t},e.prototype._updateLayerStatus=function(t,r){var n=this;if(n._singleCanvas)for(var a=1;a=0;w--){var S=_.get(x[w]);if(!S.used)y.__dirty=!0,_.removeKey(x[w]),x.splice(w,1);else{var C=S.endIdxNew;(NC(y)?C=0;a--){var i=r[a];if(i.zl===t){var o=n[t][i.zl2];if(o.__builtin__)continue;if(r.splice(a,1),n[t][i.zl2]=void 0,!o.virtual){var s=o.dom.parentNode;s&&s.removeChild(o.dom)}}}},e.prototype.resize=function(t,r){if(this._domRoot.style){var n=this._domRoot;n.style.display="none";var a=this._opts,i=this.root;t!=null&&(a.width=t),r!=null&&(a.height=r),t=Pf(i,0,a),r=Pf(i,1,a),n.style.display="",(this._width!==t||r!==this._height)&&(n.style.width=t+"px",n.style.height=r+"px",bn(this._i,function(o){o.resize(t,r)}),this.refresh({paintAll:!0})),this._width=t,this._height=r}else{if(t==null||r==null)return;this._width=t,this._height=r,this._ensureLayer(Bu).resize(t,r)}return this},e.prototype.clearLayer=function(t){j(this._i.layers[t],function(r){r&&!r.__builtin__&&r.clear()})},e.prototype.dispose=function(){this.root.innerHTML="",this.root=this.storage=this._domRoot=this._i=null},e.prototype.getRenderedCanvas=function(t){if(t=t||{},this._singleCanvas&&!this._compositeManually)return this._i.layers[Bu][0].dom;var r=new P8("image",this,t.pixelRatio||this.dpr);r.initContext(),r.clear(!1,t.backgroundColor||this._backgroundColor);var n=r.ctx;if(t.pixelRatio<=this.dpr){this.refresh();var a=r.dom.width,i=r.dom.height;bn(this._i,function(h){h.__builtin__?n.drawImage(h.dom,0,0,a,i):h.renderToCanvas&&(n.save(),h.renderToCanvas(n),n.restore())})}else{for(var o={inHover:!1,viewWidth:this._width,viewHeight:this._height,beforeBrushParam:{}},s=this.storage.getDisplayList(!0),l=0,u=s.length;l-1&&(u.style.stroke=u.style.fill,u.style.fill=K.color.neutral00,u.style.lineWidth=2),n},t.type="series.line",t.dependencies=["grid","polar"],t.defaultOption={z:3,coordinateSystem:"cartesian2d",legendHoverLink:!0,clip:!0,label:{position:"top"},endLabel:{show:!1,valueAnimation:!0,distance:8},lineStyle:{width:2,type:"solid"},emphasis:{scale:!0},step:!1,smooth:!1,smoothMonotone:null,symbol:"emptyCircle",symbolSize:6,symbolRotate:null,showSymbol:!0,showAllSymbol:"auto",connectNulls:!1,sampling:"none",animationEasing:"linear",progressive:0,hoverLayerThreshold:1/0,universalTransition:{divideShape:"clone"},triggerLineEvent:!1,triggerEvent:!1},t}(Pt);function bd(e,t){var r=e.mapDimensionsAll("defaultedLabel"),n=r.length;if(n===1){var a=pd(e,t,r[0]);return a!=null?a+"":null}else if(n){for(var i=[],o=0;o=0&&n.push(t[i])}return n.join(" ")}var Hm=function(e){X(t,e);function t(r,n,a,i){var o=e.call(this)||this;return o.updateData(r,n,a,i),o}return t.prototype._createSymbol=function(r,n,a,i,o,s){this.removeAll();var l=_r(r,-1,-1,2,2,null,s);l.attr({z2:_e(o,100),culling:!0,scaleX:i[0]/2,scaleY:i[1]/2}),l.drift=Due,this._symbolType=r,this.add(l)},t.prototype.stopSymbolAnimation=function(r){this.childAt(0).stopAnimation(null,r)},t.prototype.getSymbolType=function(){return this._symbolType},t.prototype.getSymbolPath=function(){return this.childAt(0)},t.prototype.highlight=function(){As(this.childAt(0))},t.prototype.downplay=function(){Ns(this.childAt(0))},t.prototype.setZ=function(r,n){var a=this.childAt(0);a.zlevel=r,a.z=n},t.prototype.setDraggable=function(r,n){var a=this.childAt(0);a.draggable=r,a.cursor=!n&&r?"move":a.cursor},t.prototype.updateData=function(r,n,a,i){this.silent=!1;var o=r.getItemVisual(n,"symbol")||"circle",s=r.hostModel,l=t.getSymbolSize(r,n),u=t.getSymbolZ2(r,n),c=o!==this._symbolType,h=i&&i.disableAnimation;if(c){var d=r.getItemVisual(n,"symbolKeepAspect");this._createSymbol(o,r,n,l,u,d)}else{var v=this.childAt(0);v.silent=!1;var g={scaleX:l[0]/2,scaleY:l[1]/2};h?v.attr(g):mt(v,g,s,n),ii(v)}if(this._updateCommon(r,n,l,a,i),c){var v=this.childAt(0);if(!h){var g={scaleX:this._sizeX,scaleY:this._sizeY,style:{opacity:v.style.opacity}};v.scaleX=v.scaleY=0,v.style.opacity=0,Ut(v,g,s,n)}}h&&this.childAt(0).stopAnimation("leave")},t.prototype._updateCommon=function(r,n,a,i,o){var s=this.childAt(0),l=r.hostModel,u,c,h,d,v,g,m,y,x;if(i&&(u=i.emphasisItemStyle,c=i.blurItemStyle,h=i.selectItemStyle,d=i.focus,v=i.blurScope,m=i.labelStatesModels,y=i.hoverScale,x=i.cursorStyle,g=i.emphasisDisabled),!i||r.hasItemOption){var _=i&&i.itemModel?i.itemModel:r.getItemModel(n),w=_.getModel("emphasis");u=w.getModel("itemStyle").getItemStyle(),h=_.getModel(["select","itemStyle"]).getItemStyle(),c=_.getModel(["blur","itemStyle"]).getItemStyle(),d=w.get("focus"),v=w.get("blurScope"),g=w.get("disabled"),m=Dr(_),y=w.getShallow("scale"),x=_.getShallow("cursor")}var S=r.getItemVisual(n,"symbolRotate");s.attr("rotation",(S||0)*Math.PI/180||0);var C=gh(r.getItemVisual(n,"symbolOffset"),a);C&&(s.x=C[0],s.y=C[1]),x&&s.attr("cursor",x);var M=r.getItemVisual(n,"style"),A=M.fill;if(s instanceof Ur){var I=s.style;s.useStyle(te({image:I.image,x:I.x,y:I.y,width:I.width,height:I.height},M))}else s.__isEmptyBrush?s.useStyle(te({},M)):s.useStyle(M),s.style.decal=null,s.setColor(A,o&&o.symbolInnerColor),s.style.strokeNoScale=!0;var k=r.getItemVisual(n,"liftZ"),P=this._z2;k!=null?P==null&&(this._z2=s.z2,s.z2+=k):P!=null&&(s.z2=P,this._z2=null);var D=o&&o.useNameLabel;Hr(s,m,{labelFetcher:l,labelDataIndex:n,defaultText:z,inheritColor:A,defaultOpacity:M.opacity});function z(H){return D?r.getName(H):bd(r,H)}this._sizeX=a[0]/2,this._sizeY=a[1]/2;var E=s.ensureState("emphasis");E.style=u,s.ensureState("select").style=h,s.ensureState("blur").style=c;var B=y==null||y===!0?Math.max(1.1,3/this._sizeY):isFinite(y)&&y>0?+y:1;E.scaleX=this._sizeX*B,E.scaleY=this._sizeY*B,this.setSymbolScale(1),Yt(this,d,v,g)},t.prototype.setSymbolScale=function(r){this.scaleX=this.scaleY=r},t.prototype.fadeOut=function(r,n,a){var i=this.childAt(0),o=Ee(this).dataIndex,s=a&&a.animation;if(this.silent=i.silent=!0,a&&a.fadeLabel){var l=i.getTextContent();l&&Gl(l,{style:{opacity:0}},n,{dataIndex:o,removeOpt:s,cb:function(){i.removeTextContent()}})}else i.removeTextContent();Gl(i,{style:{opacity:0},scaleX:0,scaleY:0},n,{dataIndex:o,cb:r,removeOpt:s})},t.getSymbolSize=function(r,n){return Qd(r.getItemVisual(n,"symbolSize"))},t.getSymbolZ2=function(r,n){return r.getItemVisual(n,"z2")},t}(Ne);function Due(e,t){this.parent.drift(e,t)}function I0(e,t,r,n){return t&&!isNaN(t[0])&&!isNaN(t[1])&&!(n&&n.isIgnore&&n.isIgnore(r))&&!(n&&n.clipShape&&!n.clipShape.contain(t[0],t[1]))&&e.getItemVisual(r,"symbol")!=="none"}function n5(e){return e!=null&&!Ie(e)&&(e={isIgnore:e}),e||{}}function a5(e){var t=e.hostModel,r=t.getModel("emphasis");return{emphasisItemStyle:r.getModel("itemStyle").getItemStyle(),blurItemStyle:t.getModel(["blur","itemStyle"]).getItemStyle(),selectItemStyle:t.getModel(["select","itemStyle"]).getItemStyle(),focus:r.get("focus"),blurScope:r.get("blurScope"),emphasisDisabled:r.get("disabled"),hoverScale:r.get("scale"),labelStatesModels:Dr(t),cursorStyle:t.get("cursor")}}function i5(e,t,r,n,a,i,o){var s=new e(t,r,n,a);return s.setPosition(i),t.setItemGraphicEl(r,s),o.add(s),s}var Um=function(){function e(t){this.group=new Ne,this._SymbolCtor=t||Hm}return e.prototype.updateData=function(t,r){this._progressiveEls=null,r=n5(r);var n=this.group,a=t.hostModel,i=this._data,o=this._SymbolCtor,s=r.disableAnimation,l=this._seriesScope=a5(t),u={disableAnimation:s},c=r.getSymbolPoint||function(h){return t.getItemLayout(h)};i||n.removeAll(),t.diff(i).add(function(h){var d=c(h);I0(t,d,h,r)&&i5(o,t,h,l,u,d,n)}).update(function(h,d){var v=i.getItemGraphicEl(d),g=c(h);if(!I0(t,g,h,r)){n.remove(v);return}var m=t.getItemVisual(h,"symbol")||"circle",y=v&&v.getSymbolType&&v.getSymbolType();if(!v||y&&y!==m)n.remove(v),v=new o(t,h,l,u),v.setPosition(g);else{v.updateData(t,h,l,u);var x={x:g[0],y:g[1]};s?v.attr(x):mt(v,x,a)}n.add(v),t.setItemGraphicEl(h,v)}).remove(function(h){var d=i.getItemGraphicEl(h);d&&d.fadeOut(function(){n.remove(d)},a)}).execute(),this._getSymbolPoint=c,this._data=t},e.prototype.updateLayout=function(t){var r=this._data;if(r)for(var n=this,a=r.getStore(),i=0,o=a.count();i0?r=n[0]:n[1]<0&&(r=n[1]),r}function O8(e,t,r,n){var a=NaN;e.stacked&&(a=r.get(r.getCalculationInfo("stackedOverDimension"),n)),isNaN(a)&&(a=e.valueStart);var i=e.baseDataOffset,o=[];return o[i]=r.get(e.baseDim,n),o[1-i]=a,t.dataToPoint(o)}function Ka(e,t){return!isFinite(e)||!isFinite(t)}var jue=typeof Float32Array!==Vd?Float32Array:void 0,Rue=typeof Float64Array!==Vd?Float64Array:void 0;function co(e){return sI({ctor:jue},e).arr}function sI(e,t){var r=e.arr,n=e.ctor;if(t>Rg&&(t=Rg),!r||e.typed&&r.length=a||m<0)break;if(Ka(x,_)){if(l){m+=i;continue}break}if(m===r)e[i>0?"moveTo":"lineTo"](x,_),h=x,d=_;else{var w=x-u,S=_-c;if(w*w+S*S<.5){m+=i;continue}if(o>0){for(var C=m+i,M=t[C*2],A=t[C*2+1];M===x&&A===_&&y=n||Ka(M,A))v=x,g=_;else{P=M-u,D=A-c;var B=x-u,H=M-x,V=_-c,U=A-_,F=void 0,Z=void 0;if(s==="x"){F=Math.abs(B),Z=Math.abs(H);var $=P>0?1:-1;v=x-$*F*o,g=_,z=x+$*Z*o,E=_}else if(s==="y"){F=Math.abs(V),Z=Math.abs(U);var W=D>0?1:-1;v=x,g=_-W*F*o,z=x,E=_+W*Z*o}else F=Math.sqrt(B*B+V*V),Z=Math.sqrt(H*H+U*U),k=Z/(Z+F),v=x-P*o*(1-k),g=_-D*o*(1-k),z=x+P*o*k,E=_+D*o*k,z=Xs(z,qs(M,x)),E=Xs(E,qs(A,_)),z=qs(z,Xs(M,x)),E=qs(E,Xs(A,_)),P=z-x,D=E-_,v=x-P*F/Z,g=_-D*F/Z,v=Xs(v,qs(u,x)),g=Xs(g,qs(c,_)),v=qs(v,Xs(u,x)),g=qs(g,Xs(c,_)),P=x-v,D=_-g,z=x+P*Z/F,E=_+D*Z/F}e.bezierCurveTo(h,d,v,g,x,_),h=z,d=E}else e.lineTo(x,_)}u=x,c=_,m+=i}return y}var z8=function(){function e(){this.smooth=0,this.smoothConstraint=!0}return e}(),Bue=function(e){X(t,e);function t(r){var n=e.call(this,r)||this;return n.type="ec-polyline",n}return t.prototype.getDefaultStyle=function(){return{stroke:K.color.neutral99,fill:null}},t.prototype.getDefaultShape=function(){return new z8},t.prototype.buildPath=function(r,n){var a=n.points,i=0,o=a.length/2;if(n.connectNulls){for(;o>0&&Ka(a[o*2-2],a[o*2-1]);o--);for(;i=0){var S=u?(g-l)*w+l:(v-s)*w+s;return u?[r,S]:[S,r]}s=v,l=g;break;case o.C:v=i[h++],g=i[h++],m=i[h++],y=i[h++],x=i[h++],_=i[h++];var C=u?I_(s,v,m,x,r,c):I_(l,g,y,_,r,c);if(C>0)for(var M=0;M=0){var S=u?zr(l,g,y,_,A):zr(s,v,m,x,A);return u?[r,S]:[S,r]}}s=x,l=_;break}}},t}(rt),Fue=function(e){X(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t}(z8),B8=function(e){X(t,e);function t(r){var n=e.call(this,r)||this;return n.type="ec-polygon",n}return t.prototype.getDefaultShape=function(){return new Fue},t.prototype.buildPath=function(r,n){var a=n.points,i=n.stackedOnPoints,o=0,s=a.length/2,l=n.smoothMonotone;if(n.connectNulls){for(;s>0&&Ka(a[s*2-2],a[s*2-1]);s--);for(;o=0,i=e.fill||K.color.neutral99;u5(n,t);var o=n.textFill==null;return a?o&&(n.textFill=r.insideFill||K.color.neutral00,!n.textStroke&&r.insideStroke&&(n.textStroke=r.insideStroke),!n.textStroke&&(n.textStroke=i),n.textStrokeWidth==null&&(n.textStrokeWidth=2)):(o&&(n.textFill=e.fill||r.outsideFill||K.color.neutral00),!n.textStroke&&r.outsideStroke&&(n.textStroke=r.outsideStroke)),n.text=t.text,n.rich=t.rich,j(t.rich,function(s){u5(s,s)}),n}function u5(e,t){t&&(ge(t,"fill")&&(e.textFill=t.fill),ge(t,"stroke")&&(e.textStroke=t.fill),ge(t,"lineWidth")&&(e.textStrokeWidth=t.lineWidth),ge(t,"font")&&(e.font=t.font),ge(t,"fontStyle")&&(e.fontStyle=t.fontStyle),ge(t,"fontWeight")&&(e.fontWeight=t.fontWeight),ge(t,"fontSize")&&(e.fontSize=t.fontSize),ge(t,"fontFamily")&&(e.fontFamily=t.fontFamily),ge(t,"align")&&(e.textAlign=t.align),ge(t,"verticalAlign")&&(e.textVerticalAlign=t.verticalAlign),ge(t,"lineHeight")&&(e.textLineHeight=t.lineHeight),ge(t,"width")&&(e.textWidth=t.width),ge(t,"height")&&(e.textHeight=t.height),ge(t,"backgroundColor")&&(e.textBackgroundColor=t.backgroundColor),ge(t,"padding")&&(e.textPadding=t.padding),ge(t,"borderColor")&&(e.textBorderColor=t.borderColor),ge(t,"borderWidth")&&(e.textBorderWidth=t.borderWidth),ge(t,"borderRadius")&&(e.textBorderRadius=t.borderRadius),ge(t,"shadowColor")&&(e.textBoxShadowColor=t.shadowColor),ge(t,"shadowBlur")&&(e.textBoxShadowBlur=t.shadowBlur),ge(t,"shadowOffsetX")&&(e.textBoxShadowOffsetX=t.shadowOffsetX),ge(t,"shadowOffsetY")&&(e.textBoxShadowOffsetY=t.shadowOffsetY),ge(t,"textShadowColor")&&(e.textShadowColor=t.textShadowColor),ge(t,"textShadowBlur")&&(e.textShadowBlur=t.textShadowBlur),ge(t,"textShadowOffsetX")&&(e.textShadowOffsetX=t.textShadowOffsetX),ge(t,"textShadowOffsetY")&&(e.textShadowOffsetY=t.textShadowOffsetY))}function c5(e,t){if(e.length===t.length){for(var r=0;rt){i?r.push(o(i,l,t)):a&&r.push(o(a,l,0),o(a,l,t));break}else a&&(r.push(o(a,l,0)),a=null),r.push(l),i=l}return r}function Hue(e,t,r){var n=e.getVisual("visualMeta");if(!(!n||!n.length||!e.count())&&t.type==="cartesian2d"){for(var a,i,o=n.length-1;o>=0;o--){var s=e.getDimensionInfo(n[o].dimension);if(a=s&&s.coordDim,a==="x"||a==="y"){i=n[o];break}}if(i){var l=t.getAxis(a),u=oe(i.stops,function(w){return{coord:l.toGlobalCoord(l.dataToCoord(w.value)),color:w.color}}),c=u.length,h=i.outerColors.slice();c&&u[0].coord>u[c-1].coord&&(u.reverse(),h.reverse());var d=Gue(u,a==="x"?r.getWidth():r.getHeight()),v=d.length;if(!v&&c)return u[0].coord<0?h[1]?h[1]:u[c-1].color:h[0]?h[0]:u[0].color;var g=10,m=d[0].coord-g,y=d[v-1].coord+g,x=y-m;if(x<.001)return"transparent";j(d,function(w){w.offset=(w.coord-m)/x}),d.push({offset:v?d[v-1].offset:.5,color:h[1]||"transparent"}),d.unshift({offset:v?d[0].offset:.5,color:h[0]||"transparent"});var _=new hh(0,0,0,0,d,!0);return _[a]=m,_[a+"2"]=y,_}}}function Uue(e,t,r){var n=e.get("showAllSymbol"),a=n==="auto";if(!(n&&!a)){var i=r.getAxesByScale("ordinal")[0];if(i&&!(a&&Wue(i,t))){var o=t.mapDimension(i.dim),s={};return j(i.getViewLabels(),function(l){l.tick.offInterval||(s[rv(i.scale,l.tick)]=1)}),function(l){return!s.hasOwnProperty(t.get(o,l))}}}}function Wue(e,t){var r=e.getExtent(),n=Math.abs(r[1]-r[0])/e.scale.count();isNaN(n)&&(n=0);for(var a=t.count(),i=Math.max(1,Math.round(a/5)),o=0;on)return!1;return!0}function Zue(e){for(var t=e.length/2;t>0&&Ka(e[t*2-2],e[t*2-1]);t--);return t-1}function v5(e,t){return[e[t*2],e[t*2+1]]}function $ue(e,t,r){for(var n=e.length/2,a=r==="x"?0:1,i,o,s=0,l=-1,u=0;u=t||i>=t&&o<=t){l=u;break}s=u,i=o}return{range:[s,l],t:(t-i)/(o-i)}}function W8(e){if(e.get(["endLabel","show"]))return!0;for(var t=0;t0&&r.get(["emphasis","lineStyle","width"])==="bolder"){var Z=g.getState("emphasis").style;Z.lineWidth=+g.style.lineWidth+1}Ee(g).seriesIndex=r.seriesIndex,Yt(g,V,U,F);var $=d5(r.get("smooth")),W=r.get("smoothMonotone");if(g.setShape({smooth:$,smoothMonotone:W,connectNulls:A}),m){var q=s.getCalculationInfo("stackedOnSeries"),re=0;m.useStyle(Le(u.getAreaStyle(),{fill:z,opacity:.7,lineJoin:"bevel",decal:s.getVisual("style").decal})),q&&(re=d5(q.get("smooth"))),m.setShape({smooth:$,stackedOnSmooth:re,smoothMonotone:W,connectNulls:A}),Pr(m,r,"areaStyle"),Ee(m).seriesIndex=r.seriesIndex,Yt(m,V,U,F)}var Q=this._changePolyState;s.eachItemGraphicEl(function(me){me&&(me.onHoverStateChange=Q)}),this._polyline.onHoverStateChange=Q,this._data=s,this._coordSys=i,this._stackedOnPoints=C,this._points=c,this._step=P,this._valueOrigin=w;var se=r.get("triggerEvent"),ce=r.get("triggerLineEvent"),Ue=ce===!0||se===!0||se==="line",ye=ce===!0||se===!0||se==="area";this.packEventData(r,g,Ue),m&&this.packEventData(r,m,ye)},t.prototype.packEventData=function(r,n,a){Ee(n).eventData=a?{componentType:"series",componentSubType:"line",componentIndex:r.componentIndex,seriesIndex:r.seriesIndex,seriesName:r.name,seriesType:"line",selfType:n===this._polygon?"area":"line"}:null},t.prototype.highlight=function(r,n,a,i){var o=r.getData(),s=Ec(o,i);if(this._changePolyState("emphasis"),!(s instanceof Array)&&s!=null&&s>=0){var l=o.getLayout("points"),u=o.getItemGraphicEl(s);if(!u){var c=l[s*2],h=l[s*2+1];if(Ka(c,h)||this._clipShapeForSymbol&&!this._clipShapeForSymbol.contain(c,h))return;var d=r.get("zlevel")||0,v=r.get("z")||0;u=new Hm(o,s),u.x=c,u.y=h,u.setZ(d,v);var g=u.getSymbolPath().getTextContent();g&&(g.zlevel=d,g.z=v,g.z2=this._polyline.z2+1),u.__temp=!0,o.setItemGraphicEl(s,u),u.stopSymbolAnimation(!0),this.group.add(u)}u.highlight()}else At.prototype.highlight.call(this,r,n,a,i)},t.prototype.downplay=function(r,n,a,i){var o=r.getData(),s=Ec(o,i);if(this._changePolyState("normal"),s!=null&&s>=0){var l=o.getItemGraphicEl(s);l&&(l.__temp?(o.setItemGraphicEl(s,null),this.group.remove(l)):l.downplay())}else At.prototype.downplay.call(this,r,n,a,i)},t.prototype._changePolyState=function(r){var n=this._polygon;H_(this._polyline,r),n&&H_(n,r)},t.prototype._newPolyline=function(r){var n=this._polyline;return n&&this._lineGroup.remove(n),n=new Bue({shape:{points:r},segmentIgnoreThreshold:2,z2:10}),this._lineGroup.add(n),this._polyline=n,n},t.prototype._newPolygon=function(r,n){var a=this._polygon;return a&&this._lineGroup.remove(a),a=new B8({shape:{points:r,stackedOnPoints:n},segmentIgnoreThreshold:2}),this._lineGroup.add(a),this._polygon=a,a},t.prototype._initSymbolLabelAnimation=function(r,n,a){var i,o,s=n.getBaseAxis(),l=s.inverse;n.type==="cartesian2d"?(i=s.isHorizontal(),o=!1):n.type==="polar"&&(i=s.dim==="angle",o=!0);var u=r.hostModel,c=u.get("animationDuration");Me(c)&&(c=c(null));var h=u.get("animationDelay")||0,d=Me(h)?h(null):h;r.eachItemGraphicEl(function(v,g){var m=v;if(m){var y=[v.x,v.y],x=void 0,_=void 0,w=void 0;if(a)if(o){var S=a,C=n.pointToCoord(y);i?(x=S.startAngle,_=S.endAngle,w=-C[1]/180*Math.PI):(x=S.r0,_=S.r,w=C[0])}else{var M=a;i?(x=M.x,_=M.x+M.width,w=v.x):(x=M.y+M.height,_=M.y,w=v.y)}var A=_===x?0:(w-x)/(_-x);l&&(A=1-A);var I=Me(h)?h(g):c*A+d,k=m.getSymbolPath(),P=k.getTextContent();m.attr({scaleX:0,scaleY:0}),m.animateTo({scaleX:1,scaleY:1},{duration:200,setToFinal:!0,delay:I}),P&&P.animateFrom({style:{opacity:0}},{duration:300,delay:I}),k.disableLabelAnimation=!0}})},t.prototype._initOrUpdateEndLabel=function(r,n,a){var i=r.getModel("endLabel");if(W8(r)){var o=r.getData(),s=this._polyline,l=o.getLayout("points");if(!l){s.removeTextContent(),this._endLabel=null;return}var u=this._endLabel;u||(u=this._endLabel=new ht({z2:200}),u.ignoreClip=!0,s.setTextContent(this._endLabel),s.disableLabelAnimation=!0);var c=Zue(l);c>=0&&(Hr(s,Dr(r,"endLabel"),{inheritColor:a,labelFetcher:r,labelDataIndex:c,defaultText:function(h,d,v){return v!=null?j8(o,v):bd(o,h)},enableTextSetter:!0},Yue(i,n)),s.textConfig.position=null)}else this._endLabel&&(this._polyline.removeTextContent(),this._endLabel=null)},t.prototype._endLabelOnDuring=function(r,n,a,i,o,s,l){var u=this._endLabel,c=this._polyline;if(u){r<1&&i.originalX==null&&(i.originalX=u.x,i.originalY=u.y);var h=a.getLayout("points"),d=a.hostModel,v=d.get("connectNulls"),g=s.get("precision"),m=s.get("distance")||0,y=l.getBaseAxis(),x=y.isHorizontal(),_=y.inverse,w=n.shape,S=_?x?w.x:w.y+w.height:x?w.x+w.width:w.y,C=(x?m:0)*(_?-1:1),M=(x?0:-m)*(_?-1:1),A=x?"x":"y",I=$ue(h,S,A),k=I.range,P=k[1]-k[0],D=void 0;if(P>=1){if(P>1&&!v){var z=v5(h,k[0]);u.attr({x:z[0]+C,y:z[1]+M}),o&&(D=d.getRawValue(k[0]))}else{var z=c.getPointOn(S,A);z&&u.attr({x:z[0]+C,y:z[1]+M});var E=d.getRawValue(k[0]),B=d.getRawValue(k[1]);o&&(D=GG(a,g,E,B,I.t))}i.lastFrameIndex=k[0]}else{var H=r===1||i.lastFrameIndex>0?k[0]:0,z=v5(h,H);o&&(D=d.getRawValue(H)),u.attr({x:z[0]+C,y:z[1]+M})}if(o){var V=Yd(u);typeof V.setLabelText=="function"&&V.setLabelText(D)}}},t.prototype._doUpdateAnimation=function(r,n,a,i,o,s,l){var u=this._polyline,c=this._polygon,h=r.hostModel,d=zue(this._data,r,this._stackedOnPoints,n,this._coordSys,a,this._valueOrigin),v=d.current,g=d.stackedOnCurrent,m=d.next,y=d.stackedOnNext;if(o&&(g=Ks(d.stackedOnCurrent,d.current,a,o,l),v=Ks(d.current,null,a,o,l),y=Ks(d.stackedOnNext,d.next,a,o,l),m=Ks(d.next,null,a,o,l)),f5(v,m)>3e3||c&&f5(g,y)>3e3){u.stopAnimation(),u.setShape({points:m}),c&&(c.stopAnimation(),c.setShape({points:m,stackedOnPoints:y}));return}u.shape.__points=d.current,u.shape.points=v;var x={shape:{points:m}};d.current!==v&&(x.shape.__points=d.next),u.stopAnimation(),mt(u,x,h),c&&(c.setShape({points:v,stackedOnPoints:g}),c.stopAnimation(),mt(c,{shape:{stackedOnPoints:y}},h),u.shape.points!==c.shape.points&&(c.shape.points=u.shape.points));for(var _=[],w=d.status,S=0;St&&(t=e[r]);return isFinite(t)?t:NaN},min:function(e){for(var t=1/0,r=0;r10&&o.type==="cartesian2d"&&i){var l=o.getBaseAxis(),u=o.getOtherAxis(l),c=l.getExtent(),h=n.getDevicePixelRatio(),d=Math.abs(c[1]-c[0])*(h||1),v=Math.round(s/d);if(isFinite(v)&&v>1){i==="lttb"?t.setData(a.lttbDownSample(a.mapDimension(u.dim),1/v)):i==="minmax"&&t.setData(a.minmaxDownSample(a.mapDimension(u.dim),1/v));var g=void 0;ue(i)?g=que[i]:Me(i)&&(g=i),g&&t.setData(a.downSample(a.mapDimension(u.dim),1/v,g,Kue))}}}}}function Jue(e){e.registerChartView(Xue),e.registerSeriesModel(Pue),e.registerLayout(Wm("line",!0)),e.registerVisual({seriesType:"line",reset:function(t){var r=t.getData(),n=t.getModel("lineStyle").getLineStyle();n&&!n.stroke&&(n.stroke=r.getVisual("style").fill),r.setVisual("legendLineStyle",n)}}),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,Z8("line"))}var $8=function(e){X(t,e);function t(r,n,a,i,o){var s=e.call(this,r,n,a)||this;return s.index=0,s.type=i||"value",s.position=o||"bottom",s}return t.prototype.isHorizontal=function(){var r=this.position;return r==="top"||r==="bottom"},t.prototype.getGlobalExtent=function(r){var n=this.getExtent();return n[0]=this.toGlobalCoord(n[0]),n[1]=this.toGlobalCoord(n[1]),r&&n[0]>n[1]&&n.reverse(),n},t.prototype.pointToData=function(r,n){return this.coordToData(this.toLocalCoord(r[this.dim==="x"?0:1]),n)},t.prototype.setCategorySortInfo=function(r){if(this.type!=="category")return!1;this.model.option.categorySortInfo=r,this.scale.setSortInfo(r)},t}(ui),yA=null;function Que(e){yA||(yA=e)}function Zm(){return yA}var tw="expandAxisBreak",Y8="collapseAxisBreak",X8="toggleAxisBreak",lI="axisbreakchanged",ece={type:tw,event:lI,update:"update",refineEvent:uI},tce={type:Y8,event:lI,update:"update",refineEvent:uI},rce={type:X8,event:lI,update:"update",refineEvent:uI};function uI(e,t,r,n){var a=[];return j(e,function(i){a=a.concat(i.eventBreaks)}),{eventContent:{breaks:a}}}function nce(e){e.registerAction(ece,t),e.registerAction(tce,t),e.registerAction(rce,t);function t(r,n){var a=[],i=Wf(n,r);function o(s,l){j(i[s],function(u){var c=u.updateAxisBreaks(r);j(c.breaks,function(h){var d;a.push(Le((d={},d[l]=u.componentIndex,d),h))})})}return o("xAxisModels","xAxisIndex"),o("yAxisModels","yAxisIndex"),o("singleAxisModels","singleAxisIndex"),{eventBreaks:a}}}var pl=Math.PI,ace=[[1,2,1,2],[5,3,5,3],[8,3,8,3]],ice=[[0,1,0,1],[0,3,0,3],[0,3,0,3]],$c=Ze(),q8=Ze(),K8=function(){function e(t){this.recordMap={},this.resolveAxisNameOverlap=t}return e.prototype.ensureRecord=function(t){var r=t.axis.dim,n=t.componentIndex,a=this.recordMap,i=a[r]||(a[r]=[]);return i[n]||(i[n]={ready:{}})},e}();function oce(e,t,r,n){var a=r.axis,i=t.ensureRecord(r),o=[],s,l=cI(e.axisName)&&yd(e.nameLocation);j(n,function(g){var m=jo(g);if(!(!m||m.label.ignore)){o.push(m);var y=i.transGroup;l&&(y.transform?Ma(Qv,y.transform):sh(Qv),m.transform&&Ca(Qv,Qv,m.transform),ke.copy(P0,m.localRect),P0.applyTransform(Qv),s?s.union(P0):ke.copy(s=new ke(0,0,0,0),P0))}});var u=Math.abs(i.dirVec.x)>.1?"x":"y",c=i.transGroup[u];if(o.sort(function(g,m){return Math.abs(g.label[u]-c)-Math.abs(m.label[u]-c)}),l&&s){var h=a.getExtent(),d=Math.min(h[0],h[1]),v=Math.max(h[0],h[1])-d;s.union(new ke(d,0,v,1))}i.stOccupiedRect=s,i.labelInfoList=o}var Qv=$t(),P0=new ke(0,0,0,0),J8=function(e,t,r,n,a,i){if(yd(e.nameLocation)){var o=i.stOccupiedRect;o&&Q8(Ole({},o,i.transGroup.transform),n,a)}else eW(i.labelInfoList,i.dirVec,n,a)};function Q8(e,t,r){var n=new Pe;Q1(e,t,n,{direction:Math.atan2(r.y,r.x),bidirectional:!1,touchThreshold:.05})&&cA(t,n)}function eW(e,t,r,n){for(var a=Pe.dot(n,t)>=0,i=0,o=e.length;i0?"top":"bottom",i="center"):Pc(a-pl)?(o=n>0?"bottom":"top",i="center"):(o="middle",a>0&&a0?"right":"left":i=n>0?"left":"right"),{rotation:a,textAlign:i,textVerticalAlign:o}},e.makeAxisEventDataBase=function(t){var r={componentType:t.mainType,componentIndex:t.componentIndex};return r[t.mainType+"Index"]=t.componentIndex,r},e.isLabelSilent=function(t){var r=t.get("tooltip");return t.get("silent")||!(t.get("triggerEvent")||r&&r.show)},e}(),sce=["axisLine","axisTickLabelEstimate","axisTickLabelDetermine","axisName"],lce={axisLine:function(e,t,r,n,a,i,o){var s=n.get(["axisLine","show"]);if(s==="auto"&&(s=!0,e.raw.axisLineAutoShow!=null&&(s=!!e.raw.axisLineAutoShow)),!!s){var l=n.axis.getExtent(),u=i.transform,c=[l[0],0],h=[l[1],0],d=c[0]>h[0];u&&(ir(c,c,u),ir(h,h,u));var v=te({lineCap:"round"},n.getModel(["axisLine","lineStyle"]).getLineStyle()),g={strokeContainThreshold:e.raw.strokeContainThreshold||5,silent:!0,z2:1,style:v};if(n.get(["axisLine","breakLine"])&&$_(n.axis.scale))Zm().buildAxisBreakLine(n,a,i,g);else{var m=new yr(te({shape:{x1:c[0],y1:c[1],x2:h[0],y2:h[1]}},g));vd(m.shape,m.style.lineWidth),m.anid="line",a.add(m)}var y=n.get(["axisLine","symbol"]);if(y!=null){var x=n.get(["axisLine","symbolSize"]);ue(y)&&(y=[y,y]),(ue(x)||ft(x))&&(x=[x,x]);var _=gh(n.get(["axisLine","symbolOffset"])||0,x),w=x[0],S=x[1];j([{rotate:e.rotation+Math.PI/2,offset:_[0],r:0},{rotate:e.rotation-Math.PI/2,offset:_[1],r:Math.sqrt((c[0]-h[0])*(c[0]-h[0])+(c[1]-h[1])*(c[1]-h[1]))}],function(C,M){if(y[M]!=="none"&&y[M]!=null){var A=_r(y[M],-w/2,-S/2,w,S,v.stroke,!0),I=C.r+C.offset,k=d?h:c;A.attr({rotation:C.rotate,x:k[0]+I*Math.cos(e.rotation),y:k[1]-I*Math.sin(e.rotation),silent:!0,z2:11}),a.add(A)}})}}},axisTickLabelEstimate:function(e,t,r,n,a,i,o,s){var l=g5(t,a,s);l&&p5(e,t,r,n,a,i,o,Di.estimate)},axisTickLabelDetermine:function(e,t,r,n,a,i,o,s){var l=g5(t,a,s);l&&p5(e,t,r,n,a,i,o,Di.determine);var u=fce(e,a,i,n);hce(e,t.labelLayoutList,u),dce(e,a,i,n,e.tickDirection)},axisName:function(e,t,r,n,a,i,o,s){var l=r.ensureRecord(n);t.nameEl&&(a.remove(t.nameEl),t.nameEl=l.nameLayout=l.nameLocation=null);var u=e.axisName;if(cI(u)){var c=e.nameLocation,h=e.nameDirection,d=n.getModel("nameTextStyle"),v=n.get("nameGap")||0,g=n.axis.getExtent(),m=n.axis.inverse?-1:1,y=new Pe(0,0),x=new Pe(0,0);c==="start"?(y.x=g[0]-m*v,x.x=-m):c==="end"?(y.x=g[1]+m*v,x.x=m):(y.x=(g[0]+g[1])/2,y.y=e.labelOffset+h*v,x.y=h);var _=$t();x.transform(js(_,_,e.rotation));var w=n.get("nameRotate");w!=null&&(w=w*pl/180);var S,C;yd(c)?S=Vn.innerTextLayout(e.rotation,w??e.rotation,h):(S=uce(e.rotation,c,w||0,g),C=e.raw.axisNameAvailableWidth,C!=null&&(C=Math.abs(C/Math.sin(S.rotation)),!isFinite(C)&&(C=null)));var M=d.getFont(),A=n.get("nameTruncate",!0)||{},I=A.ellipsis,k=Mn(e.raw.nameTruncateMaxWidth,A.maxWidth,C),P=s.nameMarginLevel||0,D=new ht({x:y.x,y:y.y,rotation:S.rotation,silent:Vn.isLabelSilent(n),style:Et(d,{text:u,font:M,overflow:"truncate",width:k,ellipsis:I,fill:d.getTextColor()||n.get(["axisLine","lineStyle","color"]),align:d.get("align")||S.textAlign,verticalAlign:d.get("verticalAlign")||S.textVerticalAlign}),z2:1});if(Os({el:D,componentModel:n,itemName:u}),D.__fullText=u,D.anid="name",n.get("triggerEvent")){var z=Vn.makeAxisEventDataBase(n);z.targetType="axisName",z.name=u,Ee(D).eventData=z}i.add(D),D.updateTransform(),t.nameEl=D;var E=l.nameLayout=jo({label:D,priority:D.z2,defaultAttr:{ignore:D.ignore},marginDefault:yd(c)?ace[P]:ice[P]});if(l.nameLocation=c,a.add(D),D.decomposeTransform(),e.shouldNameMoveOverlap&&E){var B=r.ensureRecord(n);r.resolveAxisNameOverlap(e,r,n,E,x,B)}}}};function p5(e,t,r,n,a,i,o,s){rW(t)||vce(e,t,a,s,n,o);var l=t.labelLayoutList;pce(e,n,l,i),yce(n,e.rotation,l);var u=e.optionHideOverlap;cce(n,l,u),u&&g8(wt(l,function(c){return c&&!c.label.ignore})),oce(e,r,n,l)}function uce(e,t,r,n){var a=Ek(r-e),i,o,s=n[0]>n[1],l=t==="start"&&!s||t!=="start"&&s;return Pc(a-pl/2)?(o=l?"bottom":"top",i="center"):Pc(a-pl*1.5)?(o=l?"top":"bottom",i="center"):(o="middle",apl/2?i=l?"left":"right":i=l?"right":"left"),{rotation:a,textAlign:i,textVerticalAlign:o}}function cce(e,t,r){var n=e.axis,a=e.get(["axisLabel","customValues"]);if(Sse(n))return;function i(u,c,h){var d=jo(t[c]),v=jo(t[h]),g=n.scale;if(!(!d||!v)){if(u==null){if(!r&&a)return;var m=$c(d.label).labelInfo.tick;if(Bm(g)&&m.notNice||Ln(g)&&m.offInterval){vf(d.label);return}}if(u===!1||d.suggestIgnore){vf(d.label);return}if(v.suggestIgnore){vf(v.label);return}var y=.1;if(!r){var x=[0,0,0,0];d=hA({marginForce:x},d),v=hA({marginForce:x},v)}Q1(d,v,null,{touchThreshold:y})&&vf(u?v.label:d.label)}}var o=e.get(["axisLabel","showMinLabel"]),s=e.get(["axisLabel","showMaxLabel"]),l=t.length;i(o,0,1),i(s,l-1,l-2)}function hce(e,t,r){e.showMinorTicks||j(t,function(n){if(n&&n.label.ignore)for(var a=0;a=0&&w(M,S,C.getStore())})}var v=0;if(d(function(w,S,C){n.set(S.uid,1),(!a||!a.hasKey(S.uid))&&(o=!0),v+=C.count()}),(!a||a.keys().length!==n.keys().length)&&(o=!0),!o&&i!=null){t.liPosMinGap=i;return}sI(Fu,v);var g=0;d(function(w,S,C){for(var M=0,A=C.count();M0&&_0?ZU:Ase,r.serUids=n}var Fu=sI({ctor:Rue},50);function rw(e){return function(t,r){var n=pn(t,{fromStat:{key:e}});if(ni(n.w2))return[-n.w2/2,n.w2/2]}}function bc(e){return e+ub}function mh(e,t){return e+ub+t}function hI(e){return Cce(),{liPosMinGap:!Ln(e.scale)}}var bo="bar",rm="pictorialBar";function nW(e,t,r,n){KL(e,{key:t,seriesType:r,coordSysType:n,getMetrics:hI})}function aW(e){var t=e.scale.rawExtentInfo.makeRenderInfo().startValue;return t}var iW={left:0,right:0,top:0,bottom:0},yb=["25%","25%"],Li="cartesian2d",Mce=function(e){X(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.mergeDefaultAndTheme=function(r,n){var a=vh(r.outerBounds);e.prototype.mergeDefaultAndTheme.apply(this,arguments),a&&r.outerBounds&&Eo(r.outerBounds,a)},t.prototype.mergeOption=function(r,n){e.prototype.mergeOption.apply(this,arguments),this.option.outerBounds&&r.outerBounds&&Eo(this.option.outerBounds,r.outerBounds)},t.type="grid",t.dependencies=["xAxis","yAxis"],t.layoutMode="box",t.defaultOption={show:!1,z:0,left:"15%",top:65,right:"10%",bottom:80,containLabel:!1,outerBoundsMode:"auto",outerBounds:iW,outerBoundsContain:"all",outerBoundsClampWidth:yb[0],outerBoundsClampHeight:yb[1],backgroundColor:K.color.transparent,borderWidth:1,borderColor:K.color.neutral30},t}(Qe),Ace=Fd(),_A="__ec_stack_";function oW(e){return e.get("stack")||_A+e.seriesIndex}function Nce(e){if(Ln(e.axis.scale)){for(var t=pn(e.axis),r=[],n=0;nw&&(w=_),w!==c&&(y.width=w,r-=w+u*w,n--)}}),c=(r-l)/(n+(n-1)*u),c=qe(c,0);var h=0,d;j(o,function(m){var y=s[m];y.width||(y.width=c),d=y,h+=y.width*(1+u)}),d&&(h-=d.width*u);var v={},g=-h/2;return j(o,function(m){var y=s[m];v[m]=v[m]||{bandWidth:t,offset:g,width:y.width},g+=y.width*(1+u)}),v}function lW(e){return{seriesType:e,overallReset:function(t){var r=mh(e,Li);qL(t,r,function(n){var a=kce(n,e);Gc(n,r,function(i){var o=a.columnMap[oW(i)];i.getData().setLayout({bandWidth:o.bandWidth,offset:o.offset,size:o.width})})})}}}function uW(e){return{seriesType:e,plan:ph(),reset:function(t){if(xce(t)){var r=t.getData(),n=t.coordinateSystem,a=n.getBaseAxis(),i=n.getOtherAxis(a),o=r.getDimensionIndex(r.mapDimension(i.dim)),s=r.getDimensionIndex(r.mapDimension(a.dim)),l=t.get("showBackground",!0),u=r.mapDimension(i.dim),c=r.getCalculationInfo("stackResultDimension"),h=Ls(r,u)&&!!r.getCalculationInfo("stackedOnSeries"),d=i.isHorizontal(),v=i.toGlobalCoord(i.dataToCoord(aW(i))),g=cW(t),m=t.get("barMinHeight")||0,y=c&&r.getDimensionIndex(c),x=r.getLayout("size"),_=r.getLayout("offset");return{progress:function(w,S){for(var C=w.count,M=g&&co(C*3),A=g&&l&&co(C*3),I=g&&co(C),k=n.master.getRect(),P=d?k.width:k.height,D,z=S.getStore(),E=0;(D=w.next())!=null;){var B=z.get(h?y:o,D),H=z.get(s,D),V=v,U=void 0;h&&(U=+B-z.get(o,D));var F=void 0,Z=void 0,$=void 0,W=void 0;if(d){var q=n.dataToPoint([B,H]);h&&(V=n.dataToPoint([U,H])[0]),F=V,Z=q[1]+_,$=q[0]-V,W=x,nr($)y){w=(M+_)/2;break}C===1&&(S=A-g[0].tickValue)}w==null&&(_?_&&(w=g[g.length-1].coord):w=g[0].coord),s[v]=d.toGlobalCoord(w)}});else{var l=this.getData(),u=l.getLayout("offset"),c=l.getLayout("size"),h=i.getBaseAxis().isHorizontal()?0:1;s[h]+=u+c/2}return s}return[NaN,NaN]},t.prototype.__requireStartValue=function(r){return this.getBaseAxis()!==r},t.type="series.__base_bar__",t.defaultOption={z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,barMinHeight:0,barMinAngle:0,large:!1,largeThreshold:400,progressive:3e3,progressiveChunkMode:"mod",defaultBarGap:"10%"},t}(Pt);Pt.registerClass(nm);var Pce=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.getInitialData=function(){return Go(null,this,{useEncodeDefaulter:!0,createInvertedIndices:!!this.get("realtimeSort",!0)||null})},t.prototype.getProgressive=function(){return this.get("large")?this.get("progressive"):!1},t.prototype.__preparePipelineContext=function(r,n){var a=WG(this,r,n);return a.progressiveRender&&(a.large=!0),a},t.prototype.brushSelector=function(r,n,a){return a.rect(n.getItemLayout(r))},t.type="series."+bo,t.dependencies=["grid","polar"],t.defaultOption=iu(nm.defaultOption,{clip:!0,roundCap:!1,showBackground:!1,backgroundStyle:{color:"rgba(180, 180, 180, 0.2)",borderColor:null,borderWidth:0,borderType:"solid",borderRadius:0,shadowBlur:0,shadowColor:null,shadowOffsetX:0,shadowOffsetY:0,opacity:1},select:{itemStyle:{borderColor:K.color.primary,borderWidth:2}},realtimeSort:!1}),t}(nm),Dce=function(){function e(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=Math.PI*2,this.clockwise=!0}return e}(),xb=function(e){X(t,e);function t(r){var n=e.call(this,r)||this;return n.type="sausage",n}return t.prototype.getDefaultShape=function(){return new Dce},t.prototype.buildPath=function(r,n){var a=n.cx,i=n.cy,o=Math.max(n.r0||0,0),s=Math.max(n.r,0),l=(s-o)*.5,u=o+l,c=n.startAngle,h=n.endAngle,d=n.clockwise,v=Math.PI*2,g=d?h-cMath.PI/2&&cs)return!0;s=h}return!1},t.prototype._isOrderDifferentInView=function(r,n){for(var a=n.scale,i=a.getExtent(),o=Math.max(0,i[0]),s=Math.min(i[1],a.getOrdinalMeta().categories.length-1);o<=s;++o)if(r.ordinalNumbers[o]!==a.getRawOrdinalNumber(o))return!0},t.prototype._updateSortWithinSameData=function(r,n,a,i){if(this._isOrderChangedWithinSameData(r,n,a)){var o=this._dataSort(r,a,n);this._isOrderDifferentInView(o,a)&&(this._removeOnRenderedListener(i),i.dispatchAction({type:"changeAxisOrder",componentType:a.dim+"Axis",axisId:a.index,sortInfo:o}))}},t.prototype._dispatchInitSort=function(r,n,a){var i=n.baseAxis,o=this._dataSort(r,i,function(s){return r.get(r.mapDimension(n.otherAxis.dim),s)});a.dispatchAction({type:"changeAxisOrder",componentType:i.dim+"Axis",isInitSort:!0,axisId:i.index,sortInfo:o})},t.prototype.remove=function(r,n){this._clear(this._model),this._removeOnRenderedListener(n)},t.prototype.dispose=function(r,n){this._removeOnRenderedListener(n)},t.prototype._removeOnRenderedListener=function(r){this._onRendered&&(r.getZr().off("rendered",this._onRendered),this._onRendered=null)},t.prototype._clear=function(r){var n=this.group,a=this._data;r&&r.isAnimationEnabled()&&a&&!this._isLargeDraw?(this._removeBackground(),this._backgroundEls=[],a.eachItemGraphicEl(function(i){vs(i,r,Ee(i).dataIndex)})):n.removeAll(),this._data=null,this._isFirstFrame=!0},t.prototype._removeBackground=function(){this.group.remove(this._backgroundGroup),this._backgroundGroup=null},t.type=bo,t}(At),m5={cartesian2d:function(e,t){var r=t.width<0?-1:1,n=t.height<0?-1:1;r<0&&(t.x+=t.width,t.width=-t.width),n<0&&(t.y+=t.height,t.height=-t.height);var a=e.x+e.width,i=e.y+e.height,o=DC(t.x,e.x),s=EC(t.x+t.width,a),l=DC(t.y,e.y),u=EC(t.y+t.height,i),c=sa?s:o,t.y=h&&l>i?u:l,t.width=c?0:s-o,t.height=h?0:u-l,r<0&&(t.x+=t.width,t.width=-t.width),n<0&&(t.y+=t.height,t.height=-t.height),c||h},polar:function(e,t){var r=t.r0<=t.r?1:-1;if(r<0){var n=t.r;t.r=t.r0,t.r0=n}var a=EC(t.r,e.r),i=DC(t.r0,e.r0);t.r=a,t.r0=i;var o=a-i<0;if(r<0){var n=t.r;t.r=t.r0,t.r0=n}return o}},y5={cartesian2d:function(e,t,r,n,a,i,o,s,l){var u=new Ke({shape:te({},n),z2:1});if(u.__dataIndex=r,u.name="item",i){var c=u.shape,h=a?"height":"width";c[h]=0}return u},polar:function(e,t,r,n,a,i,o,s,l){var u=!a&&l?xb:dn,c=new u({shape:n,z2:1});c.name="item";var h=fW(a);if(c.calculateTextPosition=Ece(h,{isRoundCap:u===xb}),i){var d=c.shape,v=a?"r":"endAngle",g={};d[v]=a?n.r0:n.startAngle,g[v]=n[v],(s?mt:Ut)(c,{shape:g},i)}return c}};function Oce(e,t){var r=e.get("realtimeSort",!0),n=t.getBaseAxis();if(r&&n.type==="category"&&t.type==="cartesian2d")return{baseAxis:n,otherAxis:t.getOtherAxis(n)}}function x5(e,t,r,n,a,i,o,s){var l,u;i?(u={x:n.x,width:n.width},l={y:n.y,height:n.height}):(u={y:n.y,height:n.height},l={x:n.x,width:n.width}),s||(o?mt:Ut)(r,{shape:l},t,a,null);var c=t?e.baseAxis.model:null;(o?mt:Ut)(r,{shape:u},c,a)}function _5(e,t){for(var r=0;r0?1:-1,o=n.height>0?1:-1;return{x:n.x+i*a/2,y:n.y+o*a/2,width:n.width-i*a,height:n.height-o*a}},polar:function(e,t,r){var n=e.getItemLayout(t);return{cx:n.cx,cy:n.cy,r0:n.r0,r:n.r,startAngle:n.startAngle,endAngle:n.endAngle,clockwise:n.clockwise}}};function Fce(e){return e.startAngle!=null&&e.endAngle!=null&&e.startAngle===e.endAngle}function fW(e){return function(t){var r=t?"Arc":"Angle";return function(n){switch(n){case"start":case"insideStart":case"end":case"insideEnd":return n+r;default:return n}}}(e)}function w5(e,t,r,n,a,i,o,s){var l=t.getItemVisual(r,"style");if(s){if(!i.get("roundCap")){var c=e.shape,h=ho(n.getModel("itemStyle"),c,!0);te(c,h),e.setShape(c)}}else{var u=n.get(["itemStyle","borderRadius"])||0;e.setShape("r",u)}e.useStyle(l);var d=n.getShallow("cursor");d&&e.attr("cursor",d);var v=s?o?a.r>=a.r0?"endArc":"startArc":a.endAngle>=a.startAngle?"endAngle":"startAngle":o?Wce(a,i.coordinateSystem):Zce(a,i.coordinateSystem),g=Dr(n);Hr(e,g,{labelFetcher:i,labelDataIndex:r,defaultText:bd(i.getData(),r),inheritColor:l.fill,defaultOpacity:l.opacity,defaultOutsidePosition:v});var m=e.getTextContent();if(s&&m){var y=n.get(["label","position"]);e.textConfig.inside=y==="middle"?!0:null,jce(e,y==="outside"?v:y,fW(o),n.get(["label","rotate"]))}FH(m,g,i.getRawValue(r),function(_){return j8(t,_)});var x=n.getModel(["emphasis"]);Yt(e,x.get("focus"),x.get("blurScope"),x.get("disabled")),Pr(e,n),Fce(a)&&(e.style.fill="none",e.style.stroke="none",j(e.states,function(_){_.style&&(_.style.fill=_.style.stroke="none")}))}function Vce(e,t){var r=e.get(["itemStyle","borderColor"]);if(!r||r==="none")return 0;var n=e.get(["itemStyle","borderWidth"])||0,a=isNaN(t.width)?Number.MAX_VALUE:Math.abs(t.width),i=isNaN(t.height)?Number.MAX_VALUE:Math.abs(t.height);return Math.min(n,a,i)}var Gce=function(){function e(){}return e}(),S5=function(e){X(t,e);function t(r){var n=e.call(this,r)||this;return n.type="largeBar",n}return t.prototype.getDefaultShape=function(){return new Gce},t.prototype.buildPath=function(r,n){for(var a=n.points,i=this.baseDimIdx,o=1-this.baseDimIdx,s=[],l=[],u=this.barWidth,c=0;c=0?r:null},30,!1);function Hce(e,t,r){for(var n=e.baseDimIdx,a=1-n,i=e.shape.points,o=e.largeDataIndices,s=[],l=[],u=e.barWidth,c=0,h=i.length/3;c=s[0]&&t<=s[0]+l[0]&&r>=s[1]&&r<=s[1]+l[1])return o[c]}return-1}function dW(e,t,r){if(Zc(r,"cartesian2d")){var n=t,a=r.getArea();return{x:e?n.x:a.x,y:e?a.y:n.y,width:e?n.width:a.width,height:e?a.height:n.height}}else{var a=r.getArea(),i=t;return{cx:a.cx,cy:a.cy,r0:e?a.r0:i.r0,r:e?a.r:i.r,startAngle:e?i.startAngle:0,endAngle:e?i.endAngle:Math.PI*2}}}function Uce(e,t,r){var n=e.type==="polar"?dn:Ke;return new n({shape:dW(t,r,e),silent:!0,z2:0})}function Wce(e,t){if(e.height===0){var r=t.getOtherAxis(t.getBaseAxis());return r.inverse?"bottom":"top"}return e.height>0?"bottom":"top"}function Zce(e,t){if(e.width===0){var r=t.getOtherAxis(t.getBaseAxis());return r.inverse?"left":"right"}return e.width>=0?"right":"left"}function $ce(e){e.registerChartView(Rce),e.registerSeriesModel(Pce),e.registerLayout(e.PRIORITY.VISUAL.LAYOUT,lW(bo)),e.registerLayout(e.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,uW(bo)),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,Z8(bo)),e.registerAction({type:"changeAxisOrder",event:"changeAxisOrder",update:"update"},function(t,r){var n=t.componentType||"series";r.eachComponent({mainType:n,query:t},function(a){t.sortInfo&&a.axis.setCategorySortInfo(t.sortInfo)})}),hW(e)}function $m(e){return{seriesType:e,reset:function(t,r){var n=r.findComponents({mainType:"legend"});if(!(!n||!n.length)){var a=t.getData();a.filterSelf(function(i){for(var o=a.getName(i),s=0;s=0},e.prototype.indexOfName=function(t){var r=this._getDataWithEncodedVisual();return r.indexOfName(t)},e.prototype.getItemVisual=function(t,r){var n=this._getDataWithEncodedVisual();return n.getItemVisual(t,r)},e}(),El="pie",Yce=Ze(),vW=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.init=function(r){e.prototype.init.apply(this,arguments),this.legendVisualProvider=new ov(ve(this.getData,this),ve(this.getRawData,this)),this._defaultLabelLine(r)},t.prototype.mergeOption=function(){e.prototype.mergeOption.apply(this,arguments)},t.prototype.getInitialData=function(){return iv(this,{coordDimensions:["value"],encodeDefaulter:Xe(bL,this)})},t.prototype.getDataParams=function(r){var n=this.getData(),a=Yce(n),i=a.seats;if(!i){var o=[];n.each(n.mapDimension("value"),function(l){o.push(l)}),i=a.seats=DG(o,n.hostModel.get("percentPrecision"))}var s=e.prototype.getDataParams.call(this,r);return s.percent=i[r]||0,s.$vars.push("percent"),s},t.prototype._defaultLabelLine=function(r){Dc(r,"labelLine",["show"]);var n=r.labelLine,a=r.emphasis.labelLine;n.show=n.show&&r.label.show,a.show=a.show&&r.emphasis.label.show},t.type="series."+El,t.defaultOption={z:2,legendHoverLink:!0,colorBy:"data",center:["50%","50%"],radius:[0,"50%"],clockwise:!0,startAngle:90,endAngle:"auto",padAngle:0,minAngle:0,minShowLabelAngle:0,selectedOffset:10,percentPrecision:2,stillShowZeroSum:!0,coordinateSystemUsage:"box",left:0,top:0,right:0,bottom:0,width:null,height:null,label:{rotate:0,show:!0,overflow:"truncate",position:"outer",alignTo:"none",edgeDistance:"25%",distanceToLabelLine:5},labelLine:{show:!0,length:15,length2:30,smooth:!1,minTurnAngle:90,maxSurfaceAngle:90,lineStyle:{width:1,type:"solid"}},itemStyle:{borderWidth:1,borderJoin:"round"},showEmptyCircle:!0,emptyCircleStyle:{color:"lightgray",opacity:1},labelLayout:{hideOverlap:!0},emphasis:{scale:!0,scaleSize:5},avoidLabelOverlap:!0,animationType:"expansion",animationDuration:1e3,animationTypeUpdate:"transition",animationEasingUpdate:"cubicInOut",animationDurationUpdate:500,animationEasing:"cubicInOut"},t}(Pt);Hne({fullType:vW.type,getCoord2:function(e){return e.getShallow("center")}});var Xce=Math.PI/180;function M5(e,t,r,n,a,i,o,s,l,u){if(e.length<2)return;function c(m){for(var y=m.rB,x=y*y,_=0;_r?x:y,C=Math.abs(w.label.y-r);if(C>=S.maxY){var M=w.label.x-t-w.len2*a,A=n+w.len,I=Math.abs(M)e.unconstrainedWidth?null:d:null;n.setStyle("width",v)}gW(i,n)}}}function gW(e,t){A5.rect=e,p8(A5,t,Kce)}var Kce={minMarginForce:[null,0,null,0],marginDefault:[1,0,1,0]},A5={};function jC(e){return e.position==="center"}function Jce(e){var t=e.getData(),r=[],n,a,i=!1,o=(e.get("minShowLabelAngle")||0)*Xce,s=t.getLayout("viewRect"),l=t.getLayout("r"),u=s.width,c=s.x,h=s.y,d=s.height;function v(M){M.ignore=!0}function g(M){if(!M.ignore)return!0;for(var A in M.states)if(M.states[A].ignore===!1)return!0;return!1}t.each(function(M){var A=t.getItemGraphicEl(M),I=A.shape,k=A.getTextContent(),P=A.getTextGuideLine(),D=t.getItemModel(M),z=D.getModel("label"),E=z.get("position")||D.get(["emphasis","label","position"]),B=z.get("distanceToLabelLine"),H=z.get("alignTo"),V=fe(z.get("edgeDistance"),u),U=z.get("bleedMargin");U==null&&(U=Math.min(u,d)>200?10:2);var F=D.getModel("labelLine"),Z=F.get("length");Z=fe(Z,u);var $=F.get("length2");if($=fe($,u),Math.abs(I.endAngle-I.startAngle)0?"right":"left":q>0?"left":"right"}var vt=Math.PI,dt=0,Ft=z.get("rotate");if(ft(Ft))dt=Ft*(vt/180);else if(E==="center")dt=0;else if(Ft==="radial"||Ft===!0){var dr=q<0?-W+vt:-W;dt=dr}else if(Ft==="tangential"||Ft==="tangential-noflip"&&E!=="outside"&&E!=="outer"){var Rr=Math.atan2(q,re);Rr<0&&(Rr=vt*2+Rr);var Xt=re>0;Xt&&Ft!=="tangential-noflip"&&(Rr=vt+Rr),dt=Rr-vt}if(i=!!dt,k.x=Q,k.y=se,k.rotation=dt,k.setStyle({verticalAlign:"middle"}),ye){k.setStyle({align:Ue});var Fi=k.states.select;Fi&&(Fi.x+=k.x,Fi.y+=k.y)}else{var mn=new ke(0,0,0,0);gW(mn,k),r.push({label:k,labelLine:P,position:E,len:Z,len2:$,minTurnAngle:F.get("minTurnAngle"),maxSurfaceAngle:F.get("maxSurfaceAngle"),surfaceNormal:new Pe(q,re),linePoints:ce,textAlign:Ue,labelDistance:B,labelAlignTo:H,edgeDistance:V,bleedMargin:U,rect:mn,unconstrainedWidth:mn.width,labelStyleWidth:k.style.width})}A.setTextConfig({inside:ye})}}),!i&&e.get("avoidLabelOverlap")&&qce(r,n,a,l,u,d,c,h);for(var m=0;mF?($=B+A*F/2,W=$):($=B+k,W=Z-k),n.setItemLayout(U,{angle:F,startAngle:$,endAngle:W,clockwise:w,cx:o,cy:s,r0:u,r:S?xt(V,M,[u,l]):l}),B=Z}),z0){for(var c=o.getItemLayout(0),h=1;isNaN(c&&c.startAngle)&&h=i.r0}},t.type=El,t}(At);function nhe(e){return{seriesType:e,reset:function(t,r){var n=t.getData();n.filterSelf(function(a){var i=n.mapDimension("value"),o=n.get(i,a);return!(ft(o)&&!isNaN(o)&&o<0)})}}}function ahe(e){e.registerChartView(rhe),e.registerSeriesModel(vW),eU(El,e.registerAction),e.registerLayout(Qce),e.registerProcessor($m(El)),e.registerProcessor(nhe(El))}var ihe=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.hasSymbolVisual=!0,r}return t.prototype.getInitialData=function(r,n){return Go(null,this,{useEncodeDefaulter:!0})},t.prototype.getProgressive=function(){var r=this.option.progressive;return r??(this.option.large?5e3:this.get("progressive"))},t.prototype.getProgressiveThreshold=function(){var r=this.option.progressiveThreshold;return r??(this.option.large?1e4:this.get("progressiveThreshold"))},t.prototype.brushSelector=function(r,n,a){return a.point(n.getItemLayout(r))},t.prototype.getZLevelKey=function(){return this.getData().count()>this.getProgressiveThreshold()?this.id:""},t.type="series.scatter",t.dependencies=["grid","polar","geo","singleAxis","calendar","matrix"],t.defaultOption={coordinateSystem:"cartesian2d",z:2,legendHoverLink:!0,symbolSize:10,large:!1,largeThreshold:2e3,itemStyle:{opacity:.8},emphasis:{scale:!0},clip:!0,select:{itemStyle:{borderColor:K.color.primary}},universalTransition:{divideShape:"clone"}},t}(Pt),yW=4,ohe=function(){function e(){}return e}(),she=function(e){X(t,e);function t(r){var n=e.call(this,r)||this;return n._off=0,n.hoverDataIdx=-1,n}return t.prototype.getDefaultShape=function(){return new ohe},t.prototype.reset=function(){this.notClear=!1,this._off=0},t.prototype.beforeBrush=function(r){r&&!r.contentRetained&&this.reset()},t.prototype.buildPath=function(r,n){var a=n.points,i=n.size,o=this.symbolProxy,s=o.shape,l=r.getContext?r.getContext():r,u=l&&i[0]=0;u--){var c=u*2,h=i[c]-s/2,d=i[c+1]-l/2;if(r>=h&&n>=d&&r<=h+s&&n<=d+l)return u}return-1},t.prototype.contain=function(r,n){var a=this.transformCoordToLocal(r,n),i=this.getBoundingRect();if(r=a[0],n=a[1],i.contain(r,n)){var o=this.hoverDataIdx=this.findDataIndex(r,n);return o>=0}return this.hoverDataIdx=-1,!1},t.prototype.getBoundingRect=function(){var r=this._rect;if(!r){for(var n=this.shape,a=n.points,i=n.size,o=i[0],s=i[1],l=1/0,u=1/0,c=-1/0,h=-1/0,d=0;d=0&&(u.dataIndex=h+(t.startIndex||0))})},e.prototype.remove=function(){this._clear()},e.prototype._clear=function(){this._newAdded=[],this.group.removeAll()},e}(),uhe=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,a){var i=r.getData(),o=this._updateSymbolDraw(i,r);o.updateData(i,RC(r)),this._finished=!0},t.prototype.incrementalPrepareRender=function(r,n,a){var i=r.getData(),o=this._updateSymbolDraw(i,r);o.incrementalPrepareUpdate(i),this._finished=!1},t.prototype.incrementalRender=function(r,n,a){this._symbolDraw.incrementalUpdate(r,n.getData(),_o(n),RC(n)),this._finished=r.end===n.getData().count()},t.prototype.updateTransform=function(r,n,a){var i=r.getData();if(this.group.dirty(),this._finished){var o=Wm("").reset(r,n,a);o.progress&&o.progress({start:0,end:i.count(),count:i.count()},i),this._symbolDraw.updateLayout(RC(r))}else return{update:!0}},t.prototype.eachRendered=function(r){this._symbolDraw&&this._symbolDraw.eachRendered(r)},t.prototype._updateSymbolDraw=function(r,n){var a=this._symbolDraw,i=n.pipelineContext,o=i.large;return(!a||o!==this._isLargeDraw)&&(a&&a.remove(),a=this._symbolDraw=o?new lhe:new Um,this._isLargeDraw=o,this.group.removeAll()),this.group.add(a.group),a},t.prototype.remove=function(r,n){this._symbolDraw&&this._symbolDraw.remove(!0),this._symbolDraw=null},t.prototype.dispose=function(){},t.type="scatter",t}(At);function RC(e){return{clipShape:G8(e)}}var bA=function(e){X(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.getCoordSysModel=function(){return this.getReferringComponents("grid",sr).models[0]},t.type="cartesian2dAxis",t}(Qe);br(bA,nv);var xW={show:!0,z:0,inverse:!1,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:"auto",onZeroAxisIndex:null,lineStyle:{color:K.color.axisLine,width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15],breakLine:!0},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12,color:K.color.axisLabel,textMargin:[0,3]},splitLine:{show:!0,showMinLine:!0,showMaxLine:!0,lineStyle:{color:K.color.axisSplitLine,width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:[K.color.backgroundTint,K.color.backgroundTransparent]}},breakArea:{show:!0,itemStyle:{color:K.color.neutral00,borderColor:K.color.border,borderWidth:1,borderType:[3,3],opacity:.6},zigzagAmplitude:4,zigzagMinSpan:4,zigzagMaxSpan:20,zigzagZ:100,expandOnClick:!0},breakLabelLayout:{moveOverlap:"auto"}},che=We({boundaryGap:!0,deduplication:null,jitter:0,jitterOverlap:!0,jitterMargin:2,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto",show:"auto"},axisLabel:{interval:"auto"}},xW),fI=We({boundaryGap:[0,0],axisLine:{show:"auto"},axisTick:{show:"auto"},splitNumber:5,minorTick:{show:!1,splitNumber:5,length:3,lineStyle:{}},minorSplitLine:{show:!1,lineStyle:{color:K.color.axisMinorSplitLine,width:1}}},xW),hhe=We({splitNumber:6,axisLabel:{rich:{primary:{fontWeight:"bold"}}},splitLine:{show:!1}},fI),fhe=Le({logBase:10},fI);const _W={category:che,value:fI,time:hhe,log:fhe};function wd(e,t,r,n){j(GU,function(a,i){var o=We(We({},_W[i],!0),n,!0),s=function(l){X(u,l);function u(){var c=l!==null&&l.apply(this,arguments)||this;return c.type=t+"Axis."+i,c}return u.prototype.mergeDefaultAndTheme=function(c,h){var d=Gg(this),v=d?vh(c):{},g=h.getTheme();We(c,g.get(i+"Axis")),We(c,this.getDefaultOption()),c.type=k5(c),d&&Eo(c,v,d)},u.prototype.optionUpdated=function(){var c=this.option;c.type==="category"&&(this.__ordinalMeta=Zg.createByAxisModel(this))},u.prototype.getCategories=function(c){var h=this.option;if(h.type==="category")return c?h.data:this.__ordinalMeta.categories},u.prototype.getOrdinalMeta=function(){return this.__ordinalMeta},u.prototype.updateAxisBreaks=function(c){var h=Zm();return h?h.updateModelAxisBreak(this,c):{breaks:[]}},u.type=t+"Axis."+i,u.defaultOption=o,u}(r);e.registerComponentModel(s)}),e.registerSubTypeDefaulter(t+"Axis",k5)}function k5(e){return e.type||(e.data?"category":"value")}var dhe=function(){function e(t){this.type="cartesian",this._dimList=[],this._axes={},this.name=t||""}return e.prototype.getAxis=function(t){return this._axes[t]},e.prototype.getAxes=function(){return oe(this._dimList,function(t){return this._axes[t]},this)},e.prototype.getAxesByScale=function(t){return t=t.toLowerCase(),wt(this.getAxes(),function(r){return r.scale.type===t})},e.prototype.addAxis=function(t){var r=t.dim;this._axes[r]=t,this._dimList.push(r)},e}(),$x=["x","y"];function L5(e){return(e.type==="interval"||e.type==="time")&&!$_(e)}var vhe=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=Li,r.dimensions=$x,r}return t.prototype.calcAffineTransform=function(){this._transform=this._invTransform=null;var r=this.getAxis("x").scale,n=this.getAxis("y").scale;if(!(!L5(r)||!L5(n))){var a=ob(r,null),i=ob(n,null),o=this.dataToPoint([a[0],i[0]]),s=this.dataToPoint([a[1],i[1]]),l=a[1]-a[0],u=i[1]-i[0];if(!(!l||!u)){var c=(s[0]-o[0])/l,h=(s[1]-o[1])/u,d=o[0]-a[0]*c,v=o[1]-i[0]*h,g=this._transform=[c,0,0,h,d,v];this._invTransform=Ma([],g)}}},t.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAxis("x")},t.prototype.containPoint=function(r){var n=this.getAxis("x"),a=this.getAxis("y");return n.contain(n.toLocalCoord(r[0]))&&a.contain(a.toLocalCoord(r[1]))},t.prototype.containData=function(r){return this.getAxis("x").containData(r[0])&&this.getAxis("y").containData(r[1])},t.prototype.containZone=function(r,n){var a=this.dataToPoint(r),i=this.dataToPoint(n),o=this.getArea(),s=new ke(a[0],a[1],i[0]-a[0],i[1]-a[1]);return o.intersect(s)},t.prototype.dataToPoint=function(r,n,a){a=a||[];var i=r[0],o=r[1];if(this._transform&&i!=null&&isFinite(i)&&o!=null&&isFinite(o))return ir(a,r,this._transform);var s=this.getAxis("x"),l=this.getAxis("y");return a[0]=s.toGlobalCoord(s.dataToCoord(i,n)),a[1]=l.toGlobalCoord(l.dataToCoord(o,n)),a},t.prototype.clampData=function(r,n){var a=this.getAxis("x").scale,i=this.getAxis("y").scale,o=a.getExtent(),s=i.getExtent(),l=a.parse(r[0]),u=i.parse(r[1]);return n=n||[],n[0]=Math.min(Math.max(Math.min(o[0],o[1]),l),Math.max(o[0],o[1])),n[1]=Math.min(Math.max(Math.min(s[0],s[1]),u),Math.max(s[0],s[1])),n},t.prototype.pointToData=function(r,n,a){if(a=a||[],this._invTransform)return ir(a,r,this._invTransform);var i=this.getAxis("x"),o=this.getAxis("y");return a[0]=i.coordToData(i.toLocalCoord(r[0]),n),a[1]=o.coordToData(o.toLocalCoord(r[1]),n),a},t.prototype.getOtherAxis=function(r){return this.getAxis(r.dim==="x"?"y":"x")},t.prototype.getArea=function(r){r=r||0;var n=this.getAxis("x").getGlobalExtent(),a=this.getAxis("y").getGlobalExtent(),i=Math.min(n[0],n[1])-r,o=Math.min(a[0],a[1])-r,s=Math.max(n[0],n[1])-i+r,l=Math.max(a[0],a[1])-o+r;return new ke(i,o,s,l)},t}(dhe);function bW(e,t){var r=e.scale,n=e.model,a=e8(r,n,n.ecModel,e,null),i=md(r),o=md(t)?t.intervalStub:t,s=i?r.intervalStub:r,l=r.base,u=o.getTicks(),c=o.getTicks({expandToNicedExtent:!0}),h=u.length-1,d,v,g;if(h===1)d=v=0,g=1;else if(h===2){var m=nr(u[0].value-u[1].value),y=nr(u[1].value-u[2].value);d=v=0,m===y?g=2:(g=1,m=A[1])return!0})):S[1]?(k=A[1],B(function(){if(F(),E=gt(z-P*g,D),H(),I<=A[0])return!0})):B(function(){E=gt(lh(A[0]/P)*P,D),z=gt(ri(A[1]/P)*P,D);var q=Lo((z-E)/P);if(q<=g){var re=g-q,Q=void 0,se=a.incl0||i;if(se&&A[0]===0)Q=[0,re];else if(se&&A[1]===0)Q=[re,0];else{var ce=ri(re/2);Q=re%2===0?[ce,ce]:I+k=A[1])return!0}})}WU(r,S,M,[I,k],C,{interval:P,intervalCount:g,intervalPrecision:D,niceExtent:[E,z]})}var I5=[[3,1],[0,2]],phe=function(){function e(t,r,n){this.type="grid",this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this.axisPointerEnabled=!0,this.dimensions=$x,this._initCartesian(t,r,n),this.model=t}return e.prototype.getRect=function(){return this._rect},e.prototype.update=function(t,r){var n=this._axesMap;j(this._axesList,function(o){Uc(o,xd);var s=o.scale;Ln(s)&&s.setSortInfo(o.model.get("categorySortInfo"))});function a(o){for(var s=at(o),l=[],u=s.length-1;u>=0;u--){var c=o[+s[u]];c.__alignTo?l.push(c):_d(c)}j(l,function(h){mhe(h,h.__alignTo)?_d(h):bW(h,h.__alignTo.scale)})}a(n.x),a(n.y);var i={};j(n.x,function(o){P5(n,"y",o,i)}),j(n.y,function(o){P5(n,"x",o,i)}),this.resize(this.model,r)},e.prototype.resize=function(t,r,n){var a=jr(t,r),i=this._rect=Zt(t.getBoxLayoutParams(),a.refContainer),o=this._axesMap,s=this._coordsList,l=t.get("containLabel");if(wA(o,i),!n){var u=_he(i,s,o,l,r),c=void 0;if(l)SA?(SA(this._axesList,i),wA(o,i)):c=R5(i.clone(),"axisLabel",null,i,o,u,a);else{var h=bhe(t,i,a),d=h.outerBoundsRect,v=h.parsedOuterBoundsContain,g=h.outerBoundsClamp;d&&(c=R5(d,v,g,i,o,u,a))}wW(i,o,Di.determine,null,c,a),j(this._coordsList,function(m){m.calcAffineTransform()})}},e.prototype.getAxis=function(t,r){var n=this._axesMap[t];if(n!=null)return n[r||0]},e.prototype.getAxes=function(){return this._axesList.slice()},e.prototype.getCartesian=function(t,r){if(t!=null&&r!=null){var n="x"+t+"y"+r;return this._coordsMap[n]}Ie(t)&&(r=t.yAxisIndex,t=t.xAxisIndex);for(var a=0,i=this._coordsList;a=0;a--){var i=e[+t[a]];RU(i.scale)&&UU(i.model,i.type,!0)==null&&(i.model.get("alignTicks")&&i.model.get("interval")==null?n.push(i):r=i)}r||(r=n.pop()),r&&j(n,function(o){o.__alignTo=r})}function mhe(e,t){return $_(e.scale)||$_(t.scale)||t.scale.getTicks().length<2}function yhe(e,t){var r=e.getExtent(),n=r[0]+r[1];e.toGlobalCoord=e.dim==="x"?function(a){return a+t}:function(a){return n-a+t},e.toLocalCoord=e.dim==="x"?function(a){return a-t}:function(a){return n-a+t}}function wA(e,t){j(e.x,function(r){return j5(r,t.x,t.width)}),j(e.y,function(r){return j5(r,t.y,t.height)})}function j5(e,t,r){var n=[0,r],a=e.inverse?1:0;e.setExtent(n[a],n[1-a]),yhe(e,t)}var SA;function xhe(e){SA=e}function R5(e,t,r,n,a,i,o){wW(n,a,Di.estimate,t,!1,o);var s=[0,0,0,0];u(0),u(1),c(n,0,NaN),c(n,1,NaN);var l=Es(s,function(d){return d>0})==null;return zc(n,s,!0,!0,r),wA(a,n),l;function u(d){j(a[Fe[d]],function(v){if(qg(v.model)){var g=i.ensureRecord(v.model),m=g.labelInfoList;if(m)for(var y=0;y0&&!un(v)&&v>1e-4&&(d/=v),d}}function _he(e,t,r,n,a){var i=new K8(whe);return j(r,function(o){return j(o,function(s){if(qg(s.model)){var l=!n;s.axisBuilder=bce(e,t,s.model,a,i,l)}})}),i}function wW(e,t,r,n,a,i){var o=r===Di.determine;j(t,function(u){return j(u,function(c){qg(c.model)&&(wce(c.axisBuilder,e,c.model),c.axisBuilder.build(o?{axisTickLabelDetermine:!0}:{axisTickLabelEstimate:!0},{noPxChange:a}))})});var s={x:0,y:0};l(0),l(1);function l(u){s[Fe[1-u]]=e[hr[u]]<=i.refContainer[hr[u]]*.5?0:1-u===1?2:1}j(t,function(u,c){return j(u,function(h){qg(h.model)&&((n==="all"||o)&&h.axisBuilder.build({axisName:!0},{nameMarginLevel:s[c]}),o&&h.axisBuilder.build({axisLine:!0}))})})}function bhe(e,t,r){var n,a=e.get("outerBoundsMode",!0);a==="same"?n=t.clone():(a==null||a==="auto")&&(n=Zt(e.get("outerBounds",!0)||iW,r.refContainer));var i=e.get("outerBoundsContain",!0),o;i==null||i==="auto"||Ve(["all","axisLabel"],i)<0?o="all":o=i;var s=[B_(_e(e.get("outerBoundsClampWidth",!0),yb[0]),t.width),B_(_e(e.get("outerBoundsClampHeight",!0),yb[1]),t.height)];return{outerBoundsRect:n,parsedOuterBoundsContain:o,outerBoundsClamp:s}}var whe=function(e,t,r,n,a,i){var o=r.axis.dim==="x"?"y":"x";J8(e,t,r,n,a,i),yd(e.nameLocation)||j(t.recordMap[o],function(s){s&&s.labelInfoList&&s.dirVec&&eW(s.labelInfoList,s.dirVec,n,a)})};function She(e,t){var r={axesInfo:{},seriesInvolved:!1,coordSysAxesInfo:{},coordSysMap:{}};return Che(r,e,t),r.seriesInvolved&&Mhe(r,e),r}function Che(e,t,r){var n=t.getComponent("tooltip"),a=t.getComponent("axisPointer"),i=a.get("link",!0)||[],o=[];j(r.getCoordinateSystems(),function(s){if(!s.axisPointerEnabled)return;var l=am(s.model),u=e.coordSysAxesInfo[l]={};e.coordSysMap[l]=s;var c=s.model,h=c.getModel("tooltip",n);if(j(s.getAxes(),Xe(m,!1,null)),s.getTooltipAxes&&n&&h.get("show")){var d=h.get("trigger")==="axis",v=h.get(["axisPointer","type"])==="cross",g=s.getTooltipAxes(h.get(["axisPointer","axis"]));(d||v)&&j(g.baseAxes,Xe(m,v?"cross":!0,d)),v&&j(g.otherAxes,Xe(m,"cross",!1))}function m(y,x,_){var w=_.model.getModel("axisPointer",a),S=w.get("show");if(!(!S||S==="auto"&&!y&&!CA(w))){x==null&&(x=w.get("triggerTooltip")),w=y?The(_,h,a,t,y,x):w;var C=w.get("snap"),M=w.get("triggerEmphasis"),A=am(_.model),I=x||C||_.type==="category",k=e.axesInfo[A]={key:A,axis:_,coordSys:s,axisPointerModel:w,triggerTooltip:x,triggerEmphasis:M,involveSeries:I,snap:C,useHandle:CA(w),seriesModels:[],linkGroup:null};u[A]=k,e.seriesInvolved=e.seriesInvolved||I;var P=Ahe(i,_);if(P!=null){var D=o[P]||(o[P]={axesInfo:{}});D.axesInfo[A]=k,D.mapper=i[P].mapper,k.linkGroup=D}}}})}function The(e,t,r,n,a,i){var o=t.getModel("axisPointer"),s=["type","snap","lineStyle","shadowStyle","label","animation","animationDurationUpdate","animationEasingUpdate","z"],l={};j(s,function(d){l[d]=Te(o.get(d))}),l.snap=e.type!=="category"&&!!i,o.get("type")==="cross"&&(l.type="line");var u=l.label||(l.label={});if(u.show==null&&(u.show=!1),a==="cross"){var c=o.get(["label","show"]);if(u.show=c??!0,!i){var h=l.lineStyle=o.get("crossStyle");h&&Le(u,h.textStyle)}}return e.model.getModel("axisPointer",new tt(l,r,n))}function Mhe(e,t){t.eachSeries(function(r){var n=r.coordinateSystem,a=r.get(["tooltip","trigger"],!0),i=r.get(["tooltip","show"],!0);!n||!n.model||a==="none"||a===!1||a==="item"||i===!1||r.get(["axisPointer","show"],!0)===!1||j(e.coordSysAxesInfo[am(n.model)],function(o){var s=o.axis;n.getAxis(s.dim)===s&&(o.seriesModels.push(r),o.seriesDataCount==null&&(o.seriesDataCount=0),o.seriesDataCount+=r.getData().count())})})}function Ahe(e,t){for(var r=t.model,n=t.dim,a=0;a=0||e===t}function Nhe(e){var t=dI(e);if(t){var r=t.axisPointerModel,n=t.axis.scale,a=r.option,i=r.get("status"),o=r.get("value");o!=null&&(o=n.parse(o));var s=CA(r);i==null&&(a.status=s?"show":"hide");var l=n.getExtent();(o==null||o>l[1])&&(o=l[1]),o0;return o&&s}var Rhe=Ze();function B5(e,t,r,n){if(e instanceof $8){var a=e.scale.type;if(a!=="ordinal")return r}var i=e.model,o=i.get("jitter");if(!(o>0))return r;var s=i.get("jitterOverlap"),l=i.get("jitterMargin")||0,u=Ln(e.scale)?pn(e).w:null;return s?NW(r,o,u,n):Ohe(e,t,r,n,o,l)}function NW(e,t,r,n){if(r===null)return e+(Math.random()-.5)*t;var a=r-n*2,i=Math.min(Math.max(0,t),a);return e+(Math.random()-.5)*i}function Ohe(e,t,r,n,a,i){var o=Rhe(e);o.items||(o.items=[]);var s=o.items,l=F5(s,t,r,n,a,i,1),u=F5(s,t,r,n,a,i,-1),c=Math.abs(l-r)a/2||h&&d>h/2-n?NW(r,a,h,n):(s.push({fixedCoord:t,floatCoord:c,r:n}),c)}function F5(e,t,r,n,a,i,o){for(var s=r,l=0;la/2)return Number.MAX_VALUE;if(o===1&&g>s||o===-1&&g0&&!m.min?m.min=0:m.min!=null&&m.min<0&&!m.max&&(m.max=0);var y=u;m.color!=null&&(y=Le({color:m.color},u));var x=We(Te(m),{boundaryGap:r,splitNumber:n,clockwise:a,scale:i,axisLine:o,axisTick:s,axisLabel:l,name:m.text,showName:c,nameLocation:"end",nameGap:d,nameTextStyle:y,triggerEvent:v},!1);if(ue(h)){var _=x.name;x.name=h.replace("{value}",_??"")}else Me(h)&&(x.name=h(x.name,x));var w=new tt(x,null,this.ecModel);return br(w,nv.prototype),w.mainType="radar",w.componentIndex=this.componentIndex,w.uid=dh("ec_radar"),w},this);this._indicatorModels=g},t.prototype.getIndicatorModels=function(){return this._indicatorModels},t.type=kW,t.defaultOption={z:0,center:["50%","50%"],radius:"50%",startAngle:90,clockwise:!1,axisName:{show:!0,color:K.color.axisLabel},boundaryGap:[0,0],splitNumber:LW,axisNameGap:15,scale:!1,shape:"polygon",axisLine:We({lineStyle:{color:K.color.neutral20}},ep.axisLine),axisLabel:O0(ep.axisLabel,!1),axisTick:O0(ep.axisTick,!1),splitLine:O0(ep.splitLine,!0),splitArea:O0(ep.splitArea,!0),indicator:[]},t}(Qe),Zhe=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,a){var i=this.group;i.removeAll(),this._buildAxes(r,a),this._buildSplitLineAndArea(r)},t.prototype._buildAxes=function(r,n){var a=r.coordinateSystem,i=a.getIndicatorAxes(),o=oe(i,function(s){var l=s.model.get("showName")?s.name:"",u=new Vn(s.model,n,{axisName:l,position:[a.cx,a.cy],rotation:s.angle,labelDirection:-1,tickDirection:-1,nameDirection:1});return u});j(o,function(s){s.build(),this.group.add(s.group)},this)},t.prototype._buildSplitLineAndArea=function(r){var n=r.coordinateSystem,a=n.getIndicatorAxes();if(!a.length)return;var i=r.get("shape"),o=r.getModel("splitLine"),s=r.getModel("splitArea"),l=o.getModel("lineStyle"),u=s.getModel("areaStyle"),c=o.get("show"),h=s.get("show"),d=l.get("color"),v=u.get("color"),g=ne(d)?d:[d],m=ne(v)?v:[v],y=[],x=[];function _(H,V,U){var F=U%V.length;return H[F]=H[F]||[],F}if(i==="circle")for(var w=a[0].getTicksCoords(),S=n.cx,C=n.cy,M=0;M3?1.4:o>1?1.2:1.1,c=i>0?u:1/u;this._checkTriggerMoveZoom(this,"zoom","zoomOnMouseWheel",r,{scale:c,originX:s,originY:l,isAvailableBehavior:null})}if(a){var h=Math.abs(i),d=(i>0?1:-1)*(h>3?.4:h>1?.15:.05);this._checkTriggerMoveZoom(this,"scrollMove","moveOnMouseWheel",r,{scrollDelta:d,originX:s,originY:l,isAvailableBehavior:null})}}}},t.prototype._pinchHandler=function(r){if(!(H5(this._zr,"globalPan")||tp(r))){var n=r.pinchScale>1?1.1:1/1.1;this._checkTriggerMoveZoom(this,"zoom",null,r,{scale:n,originX:r.pinchX,originY:r.pinchY,isAvailableBehavior:null})}},t.prototype._checkTriggerMoveZoom=function(r,n,a,i,o){r._checkPointer(i,o.originX,o.originY)&&(Cs(i.event),i.__ecRoamConsumed=!0,U5(r,n,a,i,o))},t}(si);function tp(e){return e.__ecRoamConsumed}var rfe=Ze();function aw(e){var t=rfe(e);return t.roam=t.roam||{},t.uniform=t.uniform||{},t}function rp(e,t,r,n){for(var a=aw(e),i=a.roam,o=i[t]=i[t]||[],s=0;s=4&&(c={x:parseFloat(d[0]||0),y:parseFloat(d[1]||0),width:parseFloat(d[2]),height:parseFloat(d[3])})}if(c&&s!=null&&l!=null&&(h=EW(c,{x:0,y:0,width:s,height:l}),!r.ignoreViewBox)){var v=a;a=new Ne,a.add(v),v.scaleX=v.scaleY=h.scale,v.x=h.x,v.y=h.y}return!r.ignoreRootClip&&s!=null&&l!=null&&a.setClipPath(new Ke({shape:{x:0,y:0,width:s,height:l}})),{root:a,width:s,height:l,viewBoxRect:c,viewBoxTransform:h,named:i}},e.prototype._parseNode=function(t,r,n,a,i,o){var s=t.nodeName.toLowerCase(),l,u=a;if(s==="defs"&&(i=!0),s==="text"&&(o=!0),s==="defs"||s==="switch")l=r;else{if(!i){var c=zC[s];if(c&&ge(zC,s)){l=c.call(this,t,r);var h=t.getAttribute("name");if(h){var d={name:h,namedFrom:null,svgNodeTagLower:s,el:l};n.push(d),s==="g"&&(u=d)}else a&&n.push({name:a.name,namedFrom:a,svgNodeTagLower:s,el:l});r.add(l)}}var v=$5[s];if(v&&ge($5,s)){var g=v.call(this,t),m=t.getAttribute("id");m&&(this._defs[m]=g)}}if(l&&l.isGroup)for(var y=t.firstChild;y;)y.nodeType===1?this._parseNode(y,l,n,u,i,o):y.nodeType===3&&o&&this._parseText(y,l),y=y.nextSibling},e.prototype._parseText=function(t,r){var n=new fd({style:{text:t.textContent},silent:!0,x:this._textX||0,y:this._textY||0});ja(r,n),va(t,n,this._defsUsePending,!1,!1),ofe(n,r);var a=n.style,i=a.fontSize;i&&i<9&&(a.fontSize=9,n.scaleX*=i/9,n.scaleY*=i/9);var o=(a.fontSize||a.fontFamily)&&[a.fontStyle,a.fontWeight,(a.fontSize||12)+"px",a.fontFamily||"sans-serif"].join(" ");a.font=o;var s=n.getBoundingRect();return this._textX+=s.width,r.add(n),n},e.internalField=function(){zC={g:function(t,r){var n=new Ne;return ja(r,n),va(t,n,this._defsUsePending,!1,!1),n},rect:function(t,r){var n=new Ke;return ja(r,n),va(t,n,this._defsUsePending,!1,!1),n.setShape({x:parseFloat(t.getAttribute("x")||"0"),y:parseFloat(t.getAttribute("y")||"0"),width:parseFloat(t.getAttribute("width")||"0"),height:parseFloat(t.getAttribute("height")||"0")}),n.silent=!0,n},circle:function(t,r){var n=new Vo;return ja(r,n),va(t,n,this._defsUsePending,!1,!1),n.setShape({cx:parseFloat(t.getAttribute("cx")||"0"),cy:parseFloat(t.getAttribute("cy")||"0"),r:parseFloat(t.getAttribute("r")||"0")}),n.silent=!0,n},line:function(t,r){var n=new yr;return ja(r,n),va(t,n,this._defsUsePending,!1,!1),n.setShape({x1:parseFloat(t.getAttribute("x1")||"0"),y1:parseFloat(t.getAttribute("y1")||"0"),x2:parseFloat(t.getAttribute("x2")||"0"),y2:parseFloat(t.getAttribute("y2")||"0")}),n.silent=!0,n},ellipse:function(t,r){var n=new Pm;return ja(r,n),va(t,n,this._defsUsePending,!1,!1),n.setShape({cx:parseFloat(t.getAttribute("cx")||"0"),cy:parseFloat(t.getAttribute("cy")||"0"),rx:parseFloat(t.getAttribute("rx")||"0"),ry:parseFloat(t.getAttribute("ry")||"0")}),n.silent=!0,n},polygon:function(t,r){var n=t.getAttribute("points"),a;n&&(a=q5(n));var i=new vn({shape:{points:a||[]},silent:!0});return ja(r,i),va(t,i,this._defsUsePending,!1,!1),i},polyline:function(t,r){var n=t.getAttribute("points"),a;n&&(a=q5(n));var i=new en({shape:{points:a||[]},silent:!0});return ja(r,i),va(t,i,this._defsUsePending,!1,!1),i},image:function(t,r){var n=new Ur;return ja(r,n),va(t,n,this._defsUsePending,!1,!1),n.setStyle({image:t.getAttribute("xlink:href")||t.getAttribute("href"),x:+t.getAttribute("x"),y:+t.getAttribute("y"),width:+t.getAttribute("width"),height:+t.getAttribute("height")}),n.silent=!0,n},text:function(t,r){var n=t.getAttribute("x")||"0",a=t.getAttribute("y")||"0",i=t.getAttribute("dx")||"0",o=t.getAttribute("dy")||"0";this._textX=parseFloat(n)+parseFloat(i),this._textY=parseFloat(a)+parseFloat(o);var s=new Ne;return ja(r,s),va(t,s,this._defsUsePending,!1,!0),s},tspan:function(t,r){var n=t.getAttribute("x"),a=t.getAttribute("y");n!=null&&(this._textX=parseFloat(n)),a!=null&&(this._textY=parseFloat(a));var i=t.getAttribute("dx")||"0",o=t.getAttribute("dy")||"0",s=new Ne;return ja(r,s),va(t,s,this._defsUsePending,!1,!0),this._textX+=parseFloat(i),this._textY+=parseFloat(o),s},path:function(t,r){var n=t.getAttribute("d")||"",a=wH(n);return ja(r,a),va(t,a,this._defsUsePending,!1,!1),a.silent=!0,a}}}(),e}(),$5={lineargradient:function(e){var t=parseInt(e.getAttribute("x1")||"0",10),r=parseInt(e.getAttribute("y1")||"0",10),n=parseInt(e.getAttribute("x2")||"10",10),a=parseInt(e.getAttribute("y2")||"0",10),i=new hh(t,r,n,a);return Y5(e,i),X5(e,i),i},radialgradient:function(e){var t=parseInt(e.getAttribute("cx")||"0",10),r=parseInt(e.getAttribute("cy")||"0",10),n=parseInt(e.getAttribute("r")||"0",10),a=new Kk(t,r,n);return Y5(e,a),X5(e,a),a}};function Y5(e,t){var r=e.getAttribute("gradientUnits");r==="userSpaceOnUse"&&(t.global=!0)}function X5(e,t){for(var r=e.firstChild;r;){if(r.nodeType===1&&r.nodeName.toLocaleLowerCase()==="stop"){var n=r.getAttribute("offset"),a=void 0;n&&n.indexOf("%")>0?a=parseInt(n,10)/100:n?a=parseFloat(n):a=0;var i={};DW(r,i,i);var o=i.stopColor||r.getAttribute("stop-color")||"#000000",s=i.stopOpacity||r.getAttribute("stop-opacity");if(s){var l=An(o),u=l&&l[3];u&&(l[3]*=fs(s),o=qa(l,"rgba"))}t.colorStops.push({offset:a,color:o})}r=r.nextSibling}}function ja(e,t){e&&e.__inheritedStyle&&(t.__inheritedStyle||(t.__inheritedStyle={}),Le(t.__inheritedStyle,e.__inheritedStyle))}function q5(e){for(var t=iw(e),r=[],n=0;n0;i-=2){var o=n[i],s=n[i-1],l=iw(o);switch(a=a||$t(),s){case"translate":Pi(a,a,[parseFloat(l[0]),parseFloat(l[1]||"0")]);break;case"scale":b1(a,a,[parseFloat(l[0]),parseFloat(l[1]||l[0])]);break;case"rotate":js(a,a,-parseFloat(l[0])*BC,[parseFloat(l[1]||"0"),parseFloat(l[2]||"0")]);break;case"skewX":var u=Math.tan(parseFloat(l[0])*BC);Ca(a,[1,0,u,1,0,0],a);break;case"skewY":var c=Math.tan(parseFloat(l[0])*BC);Ca(a,[1,c,0,1,0,0],a);break;case"matrix":a[0]=parseFloat(l[0]),a[1]=parseFloat(l[1]),a[2]=parseFloat(l[2]),a[3]=parseFloat(l[3]),a[4]=parseFloat(l[4]),a[5]=parseFloat(l[5]);break}}t.setLocalTransform(a)}}var J5=/([^\s:;]+)\s*:\s*([^:;]+)/g;function DW(e,t,r){var n=e.getAttribute("style");if(n){J5.lastIndex=0;for(var a;(a=J5.exec(n))!=null;){var i=a[1],o=ge(_b,i)?_b[i]:null;o&&(t[o]=a[2]);var s=ge(bb,i)?bb[i]:null;s&&(r[s]=a[2])}}}function ffe(e,t,r){for(var n=0;n1e-6;ip[0]=o?(a[0]-n.x)/i:a[0],ip[1]=o?(a[1]-n.y)/i:a[1],ir(ip,ip,e.mtRawInv);var s=Ofe(e,ip);o3(t,s,i),j(r,function(l){l!==t&&o3(l,s.slice(),i)})}var ip=[];function o3(e,t,r){var n=e.option;n.center=t,n.zoom=r}function xI(e,t){if(t){var r=t.min||0,n=t.max||1/0;e=Math.max(Math.min(n,e),r)}return e}function HW(e,t){var r=t.getShallow("nodeScaleRatio",!0)||1,n=e;return((n.zoom-1)*r+1)/(n.trans[Ro].scaleX||1)}function lw(e,t,r,n,a,i,o,s){var l=Cb(e);if(!l){r.disable();return}r.enable(_e(e.get("roam"),o),{api:t,zInfo:{component:e},triggerInfo:{roamTrigger:e.get("roamTrigger"),isInSelf:n,isInClip:function(c,h,d){return!a||a.contain(h,d)}}});function u(c){var h=e.mainType,d=aL(Le({type:WW(h,e.subType,oH)},c));s&&(d.componentType=h),d[h+"Id"]=e.id,t.dispatchAction(d)}r.off("pan").off("zoom").on("pan",function(c){i&&i("pan"),u({dx:c.dx,dy:c.dy})}).on("zoom",function(c){i&&i("zoom"),u({zoom:c.scale,originX:c.originX,originY:c.originY})})}function UW(e){return function(t,r,n){return HC.copy(e.getBoundingRect()),HC.applyTransform(e.getComputedTransform()),HC.contain(r,n)}}var HC=new ke(0,0,0,0);function _I(e,t,r){var n=WW(t,r,oH);e.registerAction({type:n,event:n,update:"none"},function(a,i,o){i.eachComponent(Fk(a,t,r),function(s){BW(a,s),FW(a,s,i,o)})})}function WW(e,t,r){return(e!==Do?e:t==="map"?"geo":t)+r}function ZW(e){return e.zoom!=null}function bI(e,t,r,n,a,i,o){var s=new ow(null,GW(e.ecModel,t));return sw(s,r,n,a,i),o?Sb(s,o.x,o.y,o.width,o.height):Sb(s,r,n,a,i),mI(s,e),s}var wI=["rect","circle","line","ellipse","polygon","polyline","path"],Bfe=pe(wI),Ffe=pe(wI.concat(["g"])),Vfe=pe(wI.concat(["g"])),$W=Ze();function V0(e){var t=e.getItemStyle(),r=e.get("areaColor");return r!=null&&(t.fill=r),t}function s3(e){var t=e.style;t&&(t.stroke=t.stroke||t.fill,t.fill=null)}var YW=function(){function e(t){var r=this.group=new Ne,n=this._transformGroup=new Ne;r.add(n),this.uid=dh("ec_map_draw"),this._controller=new xh(t.getZr()),n.add(this._regionsGroup=new Ne),n.add(this._svgGroup=new Ne)}return e.prototype.draw=function(t,r,n,a,i){var o=this,s=t.getData&&t.getData();Kf(t)&&r.eachComponent({mainType:"series",subType:"map"},function(m){!s&&m.getHostGeoModel()===t&&(s=m.getData())});var l=t.coordinateSystem,u=l.view,c=this._regionsGroup,h=this._transformGroup,d=!c.childAt(0)||i,v;l.shouldClip()?(v=pI(null,u),this.group.setClipPath(new Ke({shape:v.clone()}))):this.group.removeClipPath(),Hl(h,Xc,u,d?null:t);var g=s&&s.getVisual("visualMeta")&&s.getVisual("visualMeta").length>0;l.resourceType==="geoJSON"?this._buildGeoJSON(u,n,l,t,s,g):l.resourceType==="geoSVG"&&this._buildSVG(u,n,l,t,s,g),lw(t,n,this._controller,function(m,y,x){return t.coordinateSystem.containPoint([y,x])},v,function(){o._mouseDownFlag=!1},!1,!0),this._updateMapSelectHandler(t,c,n,a)},e.prototype.__updateOnOwnRoam=function(t){Hl(this._transformGroup,Xc,t.coordinateSystem.view,null)},e.prototype._buildGeoJSON=function(t,r,n,a,i,o){var s=this._regionsGroupByName=pe(),l=pe(),u=this._regionsGroup,c=n.projection,h=c&&c.stream,d=Vl(om(null,t,Yc));function v(y,x){return x&&(y=x(y)),y&&ir([],y,d)}function g(y){for(var x=[],_=!h&&c&&c.project,w=0;w=0)&&(c=e);var h=o?{normal:{align:"center",verticalAlign:"middle"}}:null;Hr(r,Dr(a),{labelFetcher:c,labelDataIndex:u,defaultText:n},h);var d=r.getTextContent();if(d&&($W(d).ignore=d.ignore,r.textConfig&&o)){var v=r.getBoundingRect().clone();r.textConfig.layoutRect=v,r.textConfig.position=[(o[0]-v.x)/v.width*100+"%",(o[1]-v.y)/v.height*100+"%"]}r.disableLabelAnimation=!0}else r.removeTextContent(),r.removeTextConfig(),r.disableLabelAnimation=null}function c3(e,t,r,n,a,i){t?t.setItemGraphicEl(i,r):Ee(r).eventData={componentType:"geo",componentIndex:e.componentIndex,geoIndex:e.componentIndex,name:n,region:a&&a.option||{}}}function h3(e,t,r,n,a){t||Os({el:r,componentModel:e,itemName:n,itemTooltipOption:a.get("tooltip")})}function f3(e,t,r,n){t.highDownSilentOnTouch=!!e.get("selectedMode");var a=n.getModel("emphasis"),i=a.get("focus");return Yt(t,i,a.get("blurScope"),a.get("disabled")),Kf(e)&&Pre(t,e,r),i}function d3(e,t,r){var n=[],a;function i(){a=[]}function o(){a.length&&(n.push(a),a=[])}var s=t({polygonStart:i,polygonEnd:o,lineStart:i,lineEnd:o,point:function(l,u){isFinite(l)&&isFinite(u)&&a.push([l,u])},sphere:function(){}});return!r&&s.polygonStart(),j(e,function(l){s.lineStart();for(var u=0;u-1&&(a.style.stroke=a.style.fill,a.style.fill=K.color.neutral00,a.style.lineWidth=2),a},t.prototype.__ownRoamView=function(){return Tb(this)?this.coordinateSystem.view:null},t.type="series."+qc,t.dependencies=["geo"],t.layoutMode="box",t.defaultOption={z:2,coordinateSystem:"geo",map:"",left:"center",top:"center",aspectScale:null,showLegendSymbol:!0,boundingCoords:null,center:null,zoom:1,scaleLimit:null,selectedMode:!0,label:{show:!1,color:K.color.tertiary},itemStyle:{borderWidth:.5,borderColor:K.color.border,areaColor:K.color.background},emphasis:{label:{show:!0,color:K.color.primary},itemStyle:{areaColor:K.color.highlight}},select:{label:{show:!0,color:K.color.primary},itemStyle:{color:K.color.highlight}},nameProperty:"name"},t}(Pt);function XW(e){return e.indexOf("i")===0}function Tb(e){return sm(e.seriesGroup)===e&&!e.getHostGeoModel()}function sm(e){return e.f[0]}function SI(e,t){var r={};return e.eachRawSeriesByType(qc,function(n){var a=n.getHostGeoModel(),i=a?"o"+a.id:"i"+n.getMapType(),o=r[i]=r[i]||{f:[],r:[]};!e.isSeriesFiltered(n)&&!t&&o.f.push(n),o.r.push(n)}),r}var Hfe=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=qc,r}return t.prototype.render=function(r,n,a,i){if(!(i&&i.type==="mapToggleSelect"&&i.from===this.uid)){var o=this.group;if(o.removeAll(),!r.getHostGeoModel()){var s=this._mapDraw;s&&i&&i.type==="geoRoam"&&s.resetForLabelLayout(),i&&i.type==="geoRoam"&&i.componentType==="series"&&i.seriesId===r.id?s&&o.add(s.group):Tb(r)?(s=s||(this._mapDraw=new YW(a)),o.add(s.group),s.draw(r,n,a,this,i)):this._clearMapDraw(),r.get("showLegendSymbol")&&n.getComponent("legend")&&this._renderSymbols(r)}}},t.prototype.__updateOnOwnRoam=function(r,n,a){var i=this._mapDraw;Tb(n)&&i&&i.__updateOnOwnRoam(n)},t.prototype.remove=function(){this._clearMapDraw(),this.group.removeAll()},t.prototype.dispose=function(){this._clearMapDraw()},t.prototype._clearMapDraw=function(){this._mapDraw&&this._mapDraw.remove(),this._mapDraw=null},t.prototype._renderSymbols=function(r){var n=r.originalData,a=this.group;n.each(n.mapDimension("value"),function(i,o){if(!isNaN(i)){var s=n.getItemLayout(o);if(!(!s||!s.point)){var l=s.point,u=s.offset,c=new Vo({style:{fill:r.getData().getVisual("style").fill},shape:{cx:l[0]+u*9,cy:l[1],r:3},silent:!0,z2:8+(u?0:Gd+1)});if(!u){var h=sm(r.seriesGroup).getData(),d=n.getName(o),v=h.indexOfName(d),g=n.getItemModel(o),m=g.getModel("label"),y=h.getItemGraphicEl(v);Hr(c,Dr(g),{labelFetcher:{getFormattedLabel:function(x,_){return r.getFormattedLabel(v,_)}},defaultText:d}),c.disableLabelAnimation=!0,m.get("position")||c.setTextConfig({position:"bottom"}),y.onHoverStateChange=function(x){H_(c,x)}}a.add(c)}}})},t.type=qc,t}(At),Ufe={geoJSON:{aspectScale:.75,invertLongitute:!0},geoSVG:{aspectScale:1,invertLongitute:!1}},qW=["lng","lat"],v3=function(e){X(t,e);function t(r,n,a){var i=e.call(this)||this;i.dimensions=qW,i.type="geo",i._nameCoordMap=pe(),i.name=r;var o=a.projection,s=Is.load(n,a.nameMap,a.nameProperty),l=Is.getGeoResource(n);i.resourceType=l?l.type:null;var u=i.regions=s.regions,c=Ufe[l.type];i._clip=a.clip;var h=o?!1:c.invertLongitute;i.view=new ow(h,GW(a.ecModel,a.api),i),i.map=n,i._regionsMap=s.regionsMap,i.regions=s.regions,i.projection=o;var d;if(o)for(var v=0;v1?(S.width=w,S.height=w/y):(S.height=w,S.width=w*y),S.y=_[1]-S.height/2,S.x=_[0]-S.width/2;else{var C=e.getBoxLayoutParams();C.aspect=y,S=Zt(C,m),S=c7(e,S,y)}Sb(r,S.x,S.y,S.width,S.height),mI(r,e)}function Wfe(e,t){j(t.get("geoCoord"),function(r,n){e.addGeoCoord(n,r)})}var Zfe=function(){function e(){this.dimensions=qW}return e.prototype.create=function(t,r){var n=[];function a(i){return{nameProperty:i.get("nameProperty"),aspectScale:i.get("aspectScale"),projection:i.get("projection"),clip:i.getShallow("clip",!0)}}return t.eachComponent("geo",function(i,o){var s=i.get("map"),l=new v3(s+o,s,te({nameMap:i.get("nameMap"),api:r,ecModel:t},a(i)));n.push(l),i.coordinateSystem=l,l.model=i,l.resize=g3,l.resize(i,r)}),t.eachSeries(function(i){Om({targetModel:i,coordSysType:"geo",coordSysProvider:function(){var o=i.subType===qc?i.getHostGeoModel():i.getReferringComponents("geo",sr).models[0];return o&&o.coordinateSystem},allowNotFound:!0})}),j(SI(t,!0),function(i,o){if(XW(o)){var s=i.r[0],l=[];j(i.r,function(d){l.push(d.get("nameMap")),d.seriesGroup=null});var u=o.slice(1),c=new v3(u,u,te({nameMap:x1(l),api:r,ecModel:t},a(s))),h;j(i.r,function(d){h=_e(h,d.get("scaleLimit"))}),n.push(c),c.resize=g3,c.resize(s,r),j(i.r,function(d){d.coordinateSystem=c,Wfe(c,d)})}}),n},e.prototype.getFilledRegions=function(t,r,n,a){for(var i=(t||[]).slice(),o=pe(),s=0;s=0;o--){var s=a[o];s.hierNode={defaultAncestor:null,ancestor:s,prelim:0,modifier:0,change:0,shift:0,i:o,thread:null},r.push(s)}}function nde(e,t){var r=e.isExpand?e.children:[],n=e.parentNode.children,a=e.hierNode.i?n[e.hierNode.i-1]:null;if(r.length){ide(e);var i=(r[0].hierNode.prelim+r[r.length-1].hierNode.prelim)/2;a?(e.hierNode.prelim=a.hierNode.prelim+t(e,a),e.hierNode.modifier=e.hierNode.prelim-i):e.hierNode.prelim=i}else a&&(e.hierNode.prelim=a.hierNode.prelim+t(e,a));e.parentNode.hierNode.defaultAncestor=ode(e,a,e.parentNode.hierNode.defaultAncestor||n[0],t)}function ade(e){var t=e.hierNode.prelim+e.parentNode.hierNode.modifier;e.setLayout({x:t},!0),e.hierNode.modifier+=e.parentNode.hierNode.modifier}function m3(e){return arguments.length?e:ude}function Lp(e,t){return e-=Math.PI/2,{x:t*Math.cos(e),y:t*Math.sin(e)}}function ide(e){for(var t=e.children,r=t.length,n=0,a=0;--r>=0;){var i=t[r];i.hierNode.prelim+=n,i.hierNode.modifier+=n,a+=i.hierNode.change,n+=i.hierNode.shift+a}}function ode(e,t,r,n){if(t){for(var a=e,i=e,o=i.parentNode.children[0],s=t,l=a.hierNode.modifier,u=i.hierNode.modifier,c=o.hierNode.modifier,h=s.hierNode.modifier;s=UC(s),i=WC(i),s&&i;){a=UC(a),o=WC(o),a.hierNode.ancestor=e;var d=s.hierNode.prelim+h-i.hierNode.prelim-u+n(s,i);d>0&&(lde(sde(s,e,r),e,d),u+=d,l+=d),h+=s.hierNode.modifier,u+=i.hierNode.modifier,l+=a.hierNode.modifier,c+=o.hierNode.modifier}s&&!UC(a)&&(a.hierNode.thread=s,a.hierNode.modifier+=h-l),i&&!WC(o)&&(o.hierNode.thread=i,o.hierNode.modifier+=u-c,r=e)}return r}function UC(e){var t=e.children;return t.length&&e.isExpand?t[t.length-1]:e.hierNode.thread}function WC(e){var t=e.children;return t.length&&e.isExpand?t[0]:e.hierNode.thread}function sde(e,t,r){return e.hierNode.ancestor.parentNode===t.parentNode?e.hierNode.ancestor:r}function lde(e,t,r){var n=r/(t.hierNode.i-e.hierNode.i);t.hierNode.change-=n,t.hierNode.shift+=r,t.hierNode.modifier+=r,t.hierNode.prelim+=r,e.hierNode.change+=n}function ude(e,t){return e.parentNode===t.parentNode?1:2}var Ja=Ze();function QW(e){var t=e.mainData,r=e.datas;r||(r={main:t},e.datasAttr={main:"data"}),e.datas=e.mainData=null,e9(t,r,e),j(r,function(n){j(t.TRANSFERABLE_METHODS,function(a){n.wrapMethod(a,Xe(cde,e))})}),t.wrapMethod("cloneShallow",Xe(fde,e)),j(t.CHANGABLE_METHODS,function(n){t.wrapMethod(n,Xe(hde,e))}),fn(r[t.dataType]===t)}function cde(e,t){if(pde(this)){var r=te({},Ja(this).datas);r[this.dataType]=t,e9(t,r,e)}else CI(t,this.dataType,Ja(this).mainData,e);return t}function hde(e,t){return e.struct&&e.struct.update(),t}function fde(e,t){return j(Ja(t).datas,function(r,n){r!==t&&CI(r.cloneShallow(),n,t,e)}),t}function dde(e){var t=Ja(this).mainData;return e==null||t==null?t:Ja(t).datas[e]}function vde(){var e=Ja(this).mainData;return e==null?[{data:e}]:oe(at(Ja(e).datas),function(t){return{type:t,data:Ja(e).datas[t]}})}function pde(e){return Ja(e).mainData===e}function e9(e,t,r){Ja(e).datas={},j(t,function(n,a){CI(n,a,e,r)})}function CI(e,t,r,n){Ja(r).datas[t]=e,Ja(e).mainData=r,e.dataType=t,n.struct&&(e[n.structAttr]=n.struct,n.struct[n.datasAttr[t]]=e),e.getLinkedData=dde,e.getLinkedDataAll=vde}var gde=function(){function e(t,r){this.depth=0,this.height=0,this.dataIndex=-1,this.children=[],this.viewChildren=[],this.isExpand=!1,this.name=t||"",this.hostTree=r}return e.prototype.isRemoved=function(){return this.dataIndex<0},e.prototype.eachNode=function(t,r,n){Me(t)&&(n=r,r=t,t=null),t=t||{},ue(t)&&(t={order:t});var a=t.order||"preorder",i=this[t.attr||"children"],o;a==="preorder"&&(o=r.call(n,this));for(var s=0;!o&&sr&&(r=a.height)}this.height=r+1},e.prototype.getNodeById=function(t){if(this.getId()===t)return this;for(var r=0,n=this.children,a=n.length;r=0&&this.hostTree.data.setItemLayout(this.dataIndex,t,r)},e.prototype.getLayout=function(){return this.hostTree.data.getItemLayout(this.dataIndex)},e.prototype.getModel=function(t){if(!(this.dataIndex<0)){var r=this.hostTree,n=r.data.getItemModel(this.dataIndex);return n.getModel(t)}},e.prototype.getLevelModel=function(){return(this.hostTree.levelModels||[])[this.depth]},e.prototype.setVisual=function(t,r){this.dataIndex>=0&&this.hostTree.data.setItemVisual(this.dataIndex,t,r)},e.prototype.getVisual=function(t){return this.hostTree.data.getItemVisual(this.dataIndex,t)},e.prototype.getRawIndex=function(){return this.hostTree.data.getRawIndex(this.dataIndex)},e.prototype.getId=function(){return this.hostTree.data.getId(this.dataIndex)},e.prototype.getChildIndex=function(){if(this.parentNode){for(var t=this.parentNode.children,r=0;r=0){var n=r.getData().tree.root,a=e.targetNode;if(ue(a)&&(a=n.getNodeById(a)),a&&n.contains(a))return{node:a};var i=e.targetNodeId;if(i!=null&&(a=n.getNodeById(i)))return{node:a}}}function t9(e){for(var t=[];e;)e=e.parentNode,e&&t.push(e);return t.reverse()}function MI(e,t){var r=t9(e);return Ve(r,t)>=0}function uw(e,t){for(var r=[];e;){var n=e.dataIndex;r.push({name:e.name,dataIndex:n,value:t.getRawValue(n)}),e=e.parentNode}return r.reverse(),r}var Kc="tree",yde=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.hasSymbolVisual=!0,r.ignoreStyleOnData=!0,r}return t.prototype.getInitialData=function(r){var n={name:r.name,children:r.data},a=r.leaves||{},i=new tt(a,this,this.ecModel),o=TI.createTree(n,this,s);function s(h){h.wrapMethod("getItemModel",function(d,v){var g=o.getNodeByDataIndex(v);return g&&g.children.length&&g.isExpand||(d.parentModel=i),d})}var l=0;o.eachNode("preorder",function(h){h.depth>l&&(l=h.depth)});var u=r.expandAndCollapse,c=u&&r.initialTreeDepth>=0?r.initialTreeDepth:l;return o.root.eachNode("preorder",function(h){var d=h.hostTree.data.getRawDataItem(h.dataIndex);h.isExpand=d&&d.collapsed!=null?!d.collapsed:h.depth<=c}),o.data},t.prototype.getOrient=function(){var r=this.get("orient");return r==="horizontal"?r="LR":r==="vertical"&&(r="TB"),r},t.prototype.formatTooltip=function(r,n,a){for(var i=this.getData().tree,o=i.root.children[0],s=i.getNodeByDataIndex(r),l=s.getValue(),u=s.name;s&&s!==o;)u=s.parentNode.name+"."+u,s=s.parentNode;return Mr("nameValue",{name:u,value:l,noValue:isNaN(l)||l==null})},t.prototype.getDataParams=function(r){var n=e.prototype.getDataParams.apply(this,arguments),a=this.getData().tree.getNodeByDataIndex(r);return n.treeAncestors=uw(a,this),n.collapsed=!a.isExpand,n},t.prototype.__ownRoamView=function(){return this.coordinateSystem},t.type="series."+Kc,t.layoutMode="box",t.defaultOption={z:2,coordinateSystemUsage:"box",left:"12%",top:"12%",right:"12%",bottom:"12%",layout:"orthogonal",edgeShape:"curve",edgeForkPosition:"50%",roam:!1,roamTrigger:"global",nodeScaleRatio:.4,center:null,zoom:1,orient:"LR",symbol:"emptyCircle",symbolSize:7,expandAndCollapse:!0,initialTreeDepth:2,lineStyle:{color:K.color.borderTint,width:1.5,curveness:.5},itemStyle:{color:"lightsteelblue",borderWidth:1.5},label:{show:!0},animationEasing:"linear",animationDuration:700,animationDurationUpdate:500},t}(Pt),xde=function(){function e(){this.parentPoint=[],this.childPoints=[]}return e}(),_de=function(e){X(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultStyle=function(){return{stroke:K.color.neutral99,fill:null}},t.prototype.getDefaultShape=function(){return new xde},t.prototype.buildPath=function(r,n){var a=n.childPoints,i=a.length,o=n.parentPoint,s=a[0],l=a[i-1];if(i===1){r.moveTo(o[0],o[1]),r.lineTo(s[0],s[1]);return}var u=n.orient,c=u==="TB"||u==="BT"?0:1,h=1-c,d=fe(n.forkPosition,1),v=[];v[c]=o[c],v[h]=o[h]+(l[h]-o[h])*d,r.moveTo(o[0],o[1]),r.lineTo(v[0],v[1]),r.moveTo(s[0],s[1]),v[c]=s[c],r.lineTo(v[0],v[1]),v[c]=l[c],r.lineTo(v[0],v[1]),r.lineTo(l[0],l[1]);for(var g=1;g_.x,C||(S=S-Math.PI));var A=C?"left":"right",I=s.getModel("label"),k=I.get("rotate"),P=k*(Math.PI/180),D=y.getTextContent();D&&(y.setTextConfig({position:I.get("position")||A,rotation:k==null?-S:P,origin:"center"}),D.setStyle("verticalAlign","middle"))}var z=s.get(["emphasis","focus"]),E=z==="relative"?ld(o.getAncestorsIndices(),o.getDescendantIndices()):z==="ancestor"?o.getAncestorsIndices():z==="descendant"?o.getDescendantIndices():null;E&&(Ee(r).focus=E),wde(a,o,c,r,g,v,m,n),r.__edge&&(r.onHoverStateChange=function(B){if(B!=="blur"){var H=o.parentNode&&e.getItemGraphicEl(o.parentNode.dataIndex);H&&H.hoverState===Im||H_(r.__edge,B)}})}function wde(e,t,r,n,a,i,o,s){var l=t.getModel(),u=e.get("edgeShape"),c=e.get("layout"),h=e.getOrient(),d=e.get(["lineStyle","curveness"]),v=e.get("edgeForkPosition"),g=l.getModel("lineStyle").getLineStyle(),m=n.__edge;if(u==="curve")t.parentNode&&t.parentNode!==r&&(m||(m=n.__edge=new Ud({shape:NA(c,h,d,a,a)})),mt(m,{shape:NA(c,h,d,i,o)},e));else if(u==="polyline"&&c==="orthogonal"&&t!==r&&t.children&&t.children.length!==0&&t.isExpand===!0){for(var y=t.children,x=[],_=0;_=0;i--)r.push(a[i])}}function Cde(e,t){e.eachSeriesByType("tree",function(r){Tde(r,t)})}function Tde(e,t){var r=jr(e,t).refContainer,n=Zt(e.getBoxLayoutParams(),r);e.layoutInfo=n;var a=e.get("layout"),i=0,o=0,s=null;a==="radial"?(i=2*Math.PI,o=Math.min(n.height,n.width)/2,s=m3(function(S,C){return(S.parentNode===C.parentNode?1:2)/S.depth})):(i=n.width,o=n.height,s=m3());var l=e.getData().tree.root,u=l.children[0];if(u){rde(l),Sde(u,nde,s),l.hierNode.modifier=-u.hierNode.prelim,op(u,ade);var c=u,h=u,d=u;op(u,function(S){var C=S.getLayout().x;Ch.getLayout().x&&(h=S),S.depth>d.depth&&(d=S)});var v=c===h?1:s(c,h)/2,g=v-c.getLayout().x,m=0,y=0,x=0,_=0;if(a==="radial")m=i/(h.getLayout().x+v+g),y=o/(d.depth-1||1),op(u,function(S){x=(S.getLayout().x+g)*m,_=(S.depth-1)*y;var C=Lp(x,_);S.setLayout({x:C.x,y:C.y,rawX:x,rawY:_},!0)});else{var w=e.getOrient();w==="RL"||w==="LR"?(y=o/(h.getLayout().x+v+g),m=i/(d.depth-1||1),op(u,function(S){_=(S.getLayout().x+g)*y,x=w==="LR"?(S.depth-1)*m:i-(S.depth-1)*m,S.setLayout({x,y:_},!0)})):(w==="TB"||w==="BT")&&(m=i/(h.getLayout().x+v+g),y=o/(d.depth-1||1),op(u,function(S){x=(S.getLayout().x+g)*m,_=w==="TB"?(S.depth-1)*y:o-(S.depth-1)*y,S.setLayout({x,y:_},!0)}))}}}function Mde(e){e.registerAction({type:"treeExpandAndCollapse",event:"treeExpandAndCollapse",update:"update"},function(t,r){r.eachComponent({mainType:Do,subType:Kc,query:t},function(n){var a=t.dataIndex,i=n.getData().tree,o=i.getNodeByDataIndex(a);o.isExpand=!o.isExpand})}),_I(e,Do,Kc)}var Ade=Er(Kc,Nde);function Nde(e){e.eachSeriesByType(Kc,function(t){var r=t.getData(),n=r.tree;n.eachNode(function(a){var i=a.getModel(),o=i.getModel("itemStyle").getItemStyle(),s=r.ensureUniqueItemVisual(a.dataIndex,"style");te(s,o)})})}function kde(e){e.registerChartView(bde),e.registerSeriesModel(yde),e.registerLayout(Cde),e.registerVisual(Ade),Mde(e)}var w3=["treemapZoomToNode","treemapRender","treemapMove"];function Lde(e){for(var t=0;t1;)i=i.parentNode;var o=UM(e.ecModel,i.name||i.dataIndex+"",n);a.setVisual("decal",o)})}var Ide=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.preventUsingHoverLayer=!0,r}return t.prototype.getInitialData=function(r,n){var a={name:r.name,children:r.data};a9(a);var i=r.levels||[],o=this.designatedVisualItemStyle={},s=new tt({itemStyle:o},this,n);i=r.levels=Pde(i,n);var l=oe(i||[],function(h){return new tt(h,s,n)},this),u=TI.createTree(a,this,c);function c(h){h.wrapMethod("getItemModel",function(d,v){var g=u.getNodeByDataIndex(v),m=g?l[g.depth]:null;return d.parentModel=m||s,d})}return u.data},t.prototype.optionUpdated=function(){this.resetViewRoot()},t.prototype.formatTooltip=function(r,n,a){var i=this.getData(),o=this.getRawValue(r),s=i.getName(r);return Mr("nameValue",{name:s,value:o})},t.prototype.getDataParams=function(r){var n=e.prototype.getDataParams.apply(this,arguments),a=this.getData().tree.getNodeByDataIndex(r);return n.treeAncestors=uw(a,this),n.treePathInfo=n.treeAncestors,n},t.prototype.setLayoutInfo=function(r){this.layoutInfo=this.layoutInfo||{},te(this.layoutInfo,r)},t.prototype.mapIdToIndex=function(r){var n=this._idIndexMap;n||(n=this._idIndexMap=pe(),this._idIndexMapCount=0);var a=n.get(r);return a==null&&n.set(r,a=this._idIndexMapCount++),a},t.prototype.getViewRoot=function(){return this._viewRoot},t.prototype.resetViewRoot=function(r){r?this._viewRoot=r:r=this._viewRoot;var n=this.getRawData().tree.root;(!r||r!==n&&!n.contains(r))&&(this._viewRoot=n)},t.prototype.enableAriaDecal=function(){n9(this)},t.type="series.treemap",t.layoutMode="box",t.defaultOption={progressive:0,coordinateSystemUsage:"box",left:K.size.l,top:K.size.xxxl,right:K.size.l,bottom:K.size.xxxl,sort:!0,clipWindow:"origin",squareRatio:.5*(1+Math.sqrt(5)),leafDepth:null,drillDownIcon:"▶",zoomToNodeRatio:.32*.32,scaleLimit:{max:5,min:.2},roam:!0,roamTrigger:"global",nodeClick:"zoomToNode",animation:!0,animationDurationUpdate:900,animationEasing:"quinticInOut",breadcrumb:{show:!0,height:22,left:"center",bottom:K.size.m,emptyItemWidth:25,itemStyle:{color:K.color.backgroundShade,textStyle:{color:K.color.secondary}},emphasis:{itemStyle:{color:K.color.background}}},label:{show:!0,distance:0,padding:5,position:"inside",color:K.color.neutral00,overflow:"truncate"},upperLabel:{show:!1,position:[0,"50%"],height:20,overflow:"truncate",verticalAlign:"middle"},itemStyle:{color:null,colorAlpha:null,colorSaturation:null,borderWidth:0,gapWidth:0,borderColor:K.color.neutral00,borderColorSaturation:null},emphasis:{upperLabel:{show:!0,position:[0,"50%"],overflow:"truncate",verticalAlign:"middle"}},visualDimension:0,visualMin:null,visualMax:null,color:[],colorAlpha:null,colorSaturation:null,colorMappingBy:"index",visibleMin:10,childrenVisibleMin:null,levels:[]},t}(Pt);function a9(e){var t=0;j(e.children,function(n){a9(n);var a=n.value;ne(a)&&(a=a[0]),t+=a});var r=e.value;ne(r)&&(r=r[0]),(r==null||isNaN(r))&&(r=t),r<0&&(r=0),ne(e.value)?e.value[0]=r:e.value=r}function Pde(e,t){var r=jt(t.get("color")),n=jt(t.get(["aria","decal","decals"]));if(r){e=e||[];var a,i;j(e,function(s){var l=new tt(s),u=l.get("color"),c=l.get("decal");(l.get(["itemStyle","color"])||u&&u!=="none")&&(a=!0),(l.get(["itemStyle","decal"])||c&&c!=="none")&&(i=!0)});var o=e[0]||(e[0]={});return a||(o.color=r.slice()),!i&&n&&(o.decal=n.slice()),e}}var Dde=8,S3=8,ZC=5,Ede=function(){function e(t){this.group=new Ne,t.add(this.group)}return e.prototype.render=function(t,r,n,a){var i=t.getModel("breadcrumb"),o=this.group;if(o.removeAll(),!(!i.get("show")||!n)){var s=i.getModel("itemStyle"),l=i.getModel("emphasis"),u=s.getModel("textStyle"),c=l.getModel(["itemStyle","textStyle"]),h=jr(t,r).refContainer,d={left:i.get("left"),right:i.get("right"),top:i.get("top"),bottom:i.get("bottom")},v={emptyItemWidth:i.get("emptyItemWidth"),totalWidth:0,renderList:[]},g=Zt(d,h);this._prepare(n,v,u),this._renderContent(t,v,g,s,l,u,c,a),G1(o,d,h)}},e.prototype._prepare=function(t,r,n){for(var a=t;a;a=a.parentNode){var i=Ir(a.getModel().get("name"),""),o=n.getTextRect(i),s=Math.max(o.width+Dde*2,r.emptyItemWidth);r.totalWidth+=s+S3,r.renderList.push({node:a,text:i,width:s})}},e.prototype._renderContent=function(t,r,n,a,i,o,s,l){for(var u=0,c=r.emptyItemWidth,h=t.get(["breadcrumb","height"]),d=r.totalWidth,v=r.renderList,g=i.getModel("itemStyle").getItemStyle(),m=v.length-1;m>=0;m--){var y=v[m],x=y.node,_=y.width,w=y.text;d>n.width&&(d-=_-c,_=c,w=null);var S=new vn({shape:{points:jde(u,0,_,h,m===v.length-1,m===0)},style:Le(a.getItemStyle(),{lineJoin:"bevel"}),textContent:new ht({style:Et(o,{text:w})}),textConfig:{position:"inside"},z2:Gd*1e4,onclick:Xe(l,x)});S.disableLabelAnimation=!0,S.getTextContent().ensureState("emphasis").style=Et(s,{text:w}),S.ensureState("emphasis").style=g,Yt(S,i.get("focus"),i.get("blurScope"),i.get("disabled")),this.group.add(S),Rde(S,t,x),u+=_+S3}},e.prototype.remove=function(){this.group.removeAll()},e}();function jde(e,t,r,n,a,i){var o=[[a?e:e-ZC,t],[e+r,t],[e+r,t+n],[a?e:e-ZC,t+n]];return!i&&o.splice(2,0,[e+r+ZC,t+n/2]),!a&&o.push([e,t+n/2]),o}function Rde(e,t,r){Ee(e).eventData={componentType:"series",componentSubType:"treemap",componentIndex:t.componentIndex,seriesIndex:t.seriesIndex,seriesName:t.name,seriesType:"treemap",selfType:"breadcrumb",nodeData:{dataIndex:r&&r.dataIndex,name:r&&r.name},treePathInfo:r&&uw(r,t)}}var Ode=function(){function e(){this._storage=[],this._elExistsMap={}}return e.prototype.add=function(t,r,n,a,i){return this._elExistsMap[t.id]?!1:(this._elExistsMap[t.id]=!0,this._storage.push({el:t,target:r,duration:n,delay:a,easing:i}),!0)},e.prototype.finished=function(t){return this._finishedCallback=t,this},e.prototype.start=function(){for(var t=this,r=this._storage.length,n=function(){r--,r<=0&&(t._storage.length=0,t._elExistsMap={},t._finishedCallback&&t._finishedCallback())},a=0,i=this._storage.length;a=0;l--){var u=a[n==="asc"?o-l-1:l].getValue();u/r*ts[1]&&(s[1]=u)})),{sum:n,dataExtent:s}}function $de(e,t,r){for(var n=0,a=1/0,i=0,o=void 0,s=e.length;in&&(n=o));var l=e.area*e.area,u=t*t*r;return l?um(u*n/l,l/(u*a)):1/0}function C3(e,t,r,n,a){var i=t===r.width?0:1,o=1-i,s=["x","y"],l=["width","height"],u=r[s[i]],c=t?e.area/t:0;(a||c>r[l[o]])&&(c=r[l[o]]);for(var h=0,d=e.length;hRg&&(c=Rg),a=l}cM3||Math.abs(r.dy)>M3)){var n=this.seriesModel.getData().tree.root;if(!n)return;var a=n.getLayout();if(!a)return;this.api.dispatchAction({type:"treemapMove",from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:a.x+r.dx,y:a.y+r.dy,width:a.width,height:a.height}})}},t.prototype._onZoom=function(r){var n=r.originX,a=r.originY,i=r.scale,o=this.seriesModel;if(this._state!=="animating"){var s=o.getData().tree.root;if(!s)return;var l=s.getLayout();if(!l)return;var u=new ke(l.x,l.y,l.width,l.height),c=o.layoutInfo,h=u9(c,l),d=h*i;d=c9(d,o);var v=d/h;n-=c.x,a-=c.y;var g=$t();Pi(g,g,[-n,-a]),b1(g,g,[v,v]),Pi(g,g,[n,a]),u.applyTransform(g),this.api.dispatchAction({type:"treemapRender",from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:u.x,y:u.y,width:u.width,height:u.height}})}},t.prototype._initEvents=function(r){var n=this;r.on("click",function(a){if(n._state==="ready"){var i=n.seriesModel.get("nodeClick",!0);if(i){var o=n.findTarget(a.offsetX,a.offsetY);if(o){var s=o.node;if(s.getLayout().isLeafRoot)n._rootToNode(o);else if(i==="zoomToNode")n._zoomToNode(o);else if(i==="link"){var l=s.hostTree.data.getItemModel(s.dataIndex),u=l.get("link",!0),c=l.get("target",!0)||"blank";u&&X_(u,c)}}}}},this)},t.prototype._renderBreadcrumb=function(r,n,a){var i=this;a||(a=r.get("leafDepth",!0)!=null?{node:r.getViewRoot()}:this.findTarget(n.getWidth()/2,n.getHeight()/2),a||(a={node:r.getData().tree.root})),(this._breadcrumb||(this._breadcrumb=new Ede(this.group))).render(r,n,a.node,function(o){i._state!=="animating"&&(MI(r.getViewRoot(),o)?i._rootToNode({node:o}):i._zoomToNode({node:o}))})},t.prototype.remove=function(){this._clearController(),this._containerGroup&&this._containerGroup.removeAll(),this._storage=sp(),this._state="ready",this._breadcrumb&&this._breadcrumb.remove()},t.prototype.dispose=function(){this._clearController()},t.prototype._zoomToNode=function(r){this.api.dispatchAction({type:"treemapZoomToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:r.node})},t.prototype._rootToNode=function(r){this.api.dispatchAction({type:"treemapRootToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:r.node})},t.prototype.findTarget=function(r,n){var a,i=this.seriesModel.getViewRoot();return i.eachNode({attr:"viewChildren",order:"preorder"},function(o){var s=this._storage.background[o.getRawIndex()];if(s){var l=s.transformCoordToLocal(r,n),u=s.shape;if(u.x<=l[0]&&l[0]<=u.x+u.width&&u.y<=l[1]&&l[1]<=u.y+u.height)a={node:o,offsetX:l[0],offsetY:l[1]};else return!1}},this),a},t.type="treemap",t}(At);function sp(){return{nodeGroup:[],background:[],content:[]}}function eve(e,t,r,n,a,i,o,s,l,u){if(!o)return;var c=o.getLayout(),h=e.getData(),d=o.getModel();if(h.setItemGraphicEl(o.dataIndex,null),!c||!c.isInView)return;var v=c.width,g=c.height,m=c.borderWidth,y=c.invisible,x=o.getRawIndex(),_=s&&s.getRawIndex(),w=o.viewChildren,S=c.upperHeight,C=w&&w.length,M=d.getModel("itemStyle"),A=d.getModel(["emphasis","itemStyle"]),I=d.getModel(["blur","itemStyle"]),k=d.getModel(["select","itemStyle"]),P=M.get("borderRadius")||0,D=se("nodeGroup",kA);if(!D)return;if(l.add(D),D.x=c.x||0,D.y=c.y||0,D.markRedraw(),Ab(D).nodeWidth=v,Ab(D).nodeHeight=g,c.isAboveViewRoot)return D;var z=se("background",T3,u,Kde);z&&$(D,z,C&&c.upperLabelHeight);var E=d.getModel("emphasis"),B=E.get("focus"),H=E.get("blurScope"),V=E.get("disabled"),U=B==="ancestor"?o.getAncestorsIndices():B==="descendant"?o.getDescendantIndices():B;if(C)Bg(D)&&lc(D,!1),z&&(lc(z,!V),h.setItemGraphicEl(o.dataIndex,z),DM(z,U,H));else{var F=se("content",T3,u,Jde);F&&W(D,F),z.disableMorphing=!0,z&&Bg(z)&&lc(z,!1),lc(D,!V),h.setItemGraphicEl(o.dataIndex,D);var Z=d.getShallow("cursor");Z&&F.attr("cursor",Z),DM(D,U,H)}return D;function $(ye,me,Oe){var be=Ee(me);if(be.dataIndex=o.dataIndex,be.seriesIndex=e.seriesIndex,me.setShape({x:0,y:0,width:v,height:g,r:P}),y)q(me);else{me.invisible=!1;var we=o.getVisual("style"),yt=we.stroke,nt=k3(M);nt.fill=yt;var vt=Xu(A);vt.fill=A.get("borderColor");var dt=Xu(I);dt.fill=I.get("borderColor");var Ft=Xu(k);if(Ft.fill=k.get("borderColor"),Oe){var dr=v-2*m;re(me,yt,we.opacity,{x:m,y:0,width:dr,height:S})}else me.removeTextContent();me.setStyle(nt),me.ensureState("emphasis").style=vt,me.ensureState("blur").style=dt,me.ensureState("select").style=Ft,Oc(me)}ye.add(me)}function W(ye,me){var Oe=Ee(me);Oe.dataIndex=o.dataIndex,Oe.seriesIndex=e.seriesIndex;var be=Math.max(v-2*m,0),we=Math.max(g-2*m,0);if(me.culling=!0,me.setShape({x:m,y:m,width:be,height:we,r:P}),y)q(me);else{me.invisible=!1;var yt=o.getVisual("style"),nt=yt.fill,vt=k3(M);vt.fill=nt,vt.decal=yt.decal;var dt=Xu(A),Ft=Xu(I),dr=Xu(k);re(me,nt,yt.opacity,null),me.setStyle(vt),me.ensureState("emphasis").style=dt,me.ensureState("blur").style=Ft,me.ensureState("select").style=dr,Oc(me)}ye.add(me)}function q(ye){!ye.invisible&&i.push(ye)}function re(ye,me,Oe,be){var we=d.getModel(be?N3:A3),yt=Ir(d.get("name"),null),nt=we.getShallow("show");Hr(ye,Dr(d,be?N3:A3),{defaultText:nt?yt:null,inheritColor:me,defaultOpacity:Oe,labelFetcher:e,labelDataIndex:o.dataIndex});var vt=ye.getTextContent();if(vt){var dt=vt.style,Ft=Am(dt.padding||0);be&&(ye.setTextConfig({layoutRect:be}),vt.disableLabelLayout=!0),vt.beforeUpdate=function(){var Rr=Math.max((be?be.width:ye.shape.width)-Ft[1]-Ft[3],0),Xt=Math.max((be?be.height:ye.shape.height)-Ft[0]-Ft[2],0);(dt.width!==Rr||dt.height!==Xt)&&vt.setStyle({width:Rr,height:Xt})},dt.truncateMinChar=2,dt.lineOverflow="truncate",Q(dt,be,c);var dr=vt.getState("emphasis");Q(dr?dr.style:null,be,c)}}function Q(ye,me,Oe){var be=ye?ye.text:null;if(!me&&Oe.isLeafRoot&&be!=null){var we=e.get("drillDownIcon",!0);ye.text=we?we+" "+be:be}}function se(ye,me,Oe,be){var we=_!=null&&r[ye][_],yt=a[ye];return we?(r[ye][_]=null,ce(yt,we)):y||(we=new me,we instanceof ai&&(we.z2=tve(Oe,be)),Ue(yt,we)),t[ye][x]=we}function ce(ye,me){var Oe=ye[x]={};me instanceof kA?(Oe.oldX=me.x,Oe.oldY=me.y):Oe.oldShape=te({},me.shape)}function Ue(ye,me){var Oe=ye[x]={},be=o.parentNode,we=me instanceof Ne;if(be&&(!n||n.direction==="drillDown")){var yt=0,nt=0,vt=a.background[be.getRawIndex()];!n&&vt&&vt.oldShape&&(yt=vt.oldShape.width,nt=vt.oldShape.height),we?(Oe.oldX=0,Oe.oldY=nt):Oe.oldShape={x:yt,y:nt,width:0,height:0}}Oe.fadein=!we}}function tve(e,t){return e*qde+t}var cm=j,rve=Ie,Nb=-1,Gr=function(){function e(t){var r=t.mappingMethod,n=t.type,a=this.option=Te(t);this.type=n,this.mappingMethod=r,this._normalizeData=ive[r];var i=e.visualHandlers[n];this.applyVisual=i.applyVisual,this.getColorMapper=i.getColorMapper,this._normalizedToVisual=i._normalizedToVisual[r],r==="piecewise"?($C(a),nve(a)):r==="category"?a.categories?ave(a):$C(a,!0):(fn(r!=="linear"||a.dataExtent),$C(a))}return e.prototype.mapValueToVisual=function(t){var r=this._normalizeData(t);return this._normalizedToVisual(r,t)},e.prototype.getNormalizer=function(){return ve(this._normalizeData,this)},e.listVisualTypes=function(){return at(e.visualHandlers)},e.isValidType=function(t){return e.visualHandlers.hasOwnProperty(t)},e.eachVisual=function(t,r,n){Ie(t)?j(t,r,n):r.call(n,t)},e.mapVisual=function(t,r,n){var a,i=ne(t)?[]:Ie(t)?{}:(a=!0,null);return e.eachVisual(t,function(o,s){var l=r.call(n,o,s);a?i=l:i[s]=l}),i},e.retrieveVisuals=function(t){var r={},n;return t&&cm(e.visualHandlers,function(a,i){t.hasOwnProperty(i)&&(r[i]=t[i],n=!0)}),n?r:null},e.prepareVisualTypes=function(t){if(ne(t))t=t.slice();else if(rve(t)){var r=[];cm(t,function(n,a){r.push(a)}),t=r}else return[];return t.sort(function(n,a){return a==="color"&&n!=="color"&&n.indexOf("color")===0?1:-1}),t},e.dependsOn=function(t,r){return r==="color"?!!(t&&t.indexOf(r)===0):t===r},e.findPieceIndex=function(t,r,n){for(var a,i=1/0,o=0,s=r.length;o=0;i--)n[i]==null&&(delete r[t[i]],t.pop())}function $C(e,t){var r=e.visual,n=[];Ie(r)?cm(r,function(i){n.push(i)}):r!=null&&n.push(r);var a={color:1,symbol:1};!t&&n.length===1&&!a.hasOwnProperty(e.type)&&(n[1]=n[0]),h9(e,n)}function G0(e){return{applyVisual:function(t,r,n){var a=this.mapValueToVisual(t);n("color",e(r("color"),a))},_normalizedToVisual:LA([0,1])}}function L3(e){var t=this.option.visual;return t[Math.round(xt(e,[0,1],[0,t.length-1],!0))]||{}}function lp(e){return function(t,r,n){n(e,this.mapValueToVisual(t))}}function Ip(e){var t=this.option.visual;return t[this.option.loop&&e!==Nb?e%t.length:e]}function qu(){return this.option.visual[0]}function LA(e){return{linear:function(t){return xt(t,e,this.option.visual,!0)},category:Ip,piecewise:function(t,r){var n=IA.call(this,r);return n==null&&(n=xt(t,e,this.option.visual,!0)),n},fixed:qu}}function IA(e){var t=this.option,r=t.pieceList;if(t.hasSpecialVisual){var n=Gr.findPieceIndex(e,r),a=r[n];if(a&&a.visual)return a.visual[this.type]}}function h9(e,t){return e.visual=t,e.type==="color"&&(e.parsedVisual=oe(t,function(r){var n=An(r);return n||[0,0,0,1]})),t}var ive={linear:function(e){return xt(e,this.option.dataExtent,[0,1],!0)},piecewise:function(e){var t=this.option.pieceList,r=Gr.findPieceIndex(e,t,!0);if(r!=null)return xt(r,[0,t.length-1],[0,1],!0)},category:function(e){var t=this.option.categories?this.option.categoryMap[e]:e;return t??Nb},fixed:ar};function H0(e,t,r){return e?t<=r:t=r.length||m===r[m.depth]){var x=hve(a,l,m,y,g,n);d9(m,x,r,n)}})}}}function lve(e,t,r){var n=te({},t),a=r.designatedVisualItemStyle;return j(["color","colorAlpha","colorSaturation"],function(i){a[i]=t[i];var o=e.get(i);a[i]=null,o!=null&&(n[i]=o)}),n}function I3(e){var t=YC(e,"color");if(t){var r=YC(e,"colorAlpha"),n=YC(e,"colorSaturation");return n&&(t=ds(t,null,null,n)),r&&(t=Pg(t,r)),t}}function uve(e,t){return t!=null?ds(t,null,null,e):null}function YC(e,t){var r=e[t];if(r!=null&&r!=="none")return r}function cve(e,t,r,n,a,i){if(!(!i||!i.length)){var o=XC(t,"color")||a.color!=null&&a.color!=="none"&&(XC(t,"colorAlpha")||XC(t,"colorSaturation"));if(o){var s=t.get("visualMin"),l=t.get("visualMax"),u=r.dataExtent.slice();s!=null&&su[1]&&(u[1]=l);var c=t.get("colorMappingBy"),h={type:o.name,dataExtent:u,visual:o.range};h.type==="color"&&(c==="index"||c==="id")?(h.mappingMethod="category",h.loop=!0):h.mappingMethod="linear";var d=new Gr(h);return f9(d).drColorMappingBy=c,d}}}function XC(e,t){var r=e.get(t);return ne(r)&&r.length?{name:t,range:r}:null}function hve(e,t,r,n,a,i){var o=te({},t);if(a){var s=a.type,l=s==="color"&&f9(a).drColorMappingBy,u=l==="index"?n:l==="id"?i.mapIdToIndex(r.getId()):r.getValue(e.get("visualDimension"));o[s]=a.mapValueToVisual(u)}return o}function fve(e){e.registerSeriesModel(Ide),e.registerChartView(Qde),e.registerVisual(sve),e.registerLayout(Gde),Lde(e)}function ef(e){return"_EC_"+e}var dve=function(){function e(t){this.type="graph",this.nodes=[],this.edges=[],this._nodesMap={},this._edgesMap={},this._directed=t||!1}return e.prototype.isDirected=function(){return this._directed},e.prototype.addNode=function(t,r){t=t==null?""+r:""+t;var n=this._nodesMap;if(!n[ef(t)]){var a=new Ku(t,r);return a.hostGraph=this,this.nodes.push(a),n[ef(t)]=a,a}},e.prototype.getNodeByIndex=function(t){var r=this.data.getRawIndex(t);return this.nodes[r]},e.prototype.getNodeById=function(t){return this._nodesMap[ef(t)]},e.prototype.addEdge=function(t,r,n){var a=this._nodesMap,i=this._edgesMap;if(ft(t)&&(t=this.nodes[t]),ft(r)&&(r=this.nodes[r]),t instanceof Ku||(t=a[ef(t)]),r instanceof Ku||(r=a[ef(r)]),!(!t||!r)){var o=t.id+"-"+r.id,s=new v9(t,r,n);return s.hostGraph=this,this._directed&&(t.outEdges.push(s),r.inEdges.push(s)),t.edges.push(s),t!==r&&r.edges.push(s),this.edges.push(s),i[o]=s,s}},e.prototype.getEdgeByIndex=function(t){var r=this.edgeData.getRawIndex(t);return this.edges[r]},e.prototype.getEdge=function(t,r){t instanceof Ku&&(t=t.id),r instanceof Ku&&(r=r.id);var n=this._edgesMap;return this._directed?n[t+"-"+r]:n[t+"-"+r]||n[r+"-"+t]},e.prototype.eachNode=function(t,r){for(var n=this.nodes,a=n.length,i=0;i=0&&t.call(r,n[i],i)},e.prototype.eachEdge=function(t,r){for(var n=this.edges,a=n.length,i=0;i=0&&n[i].node1.dataIndex>=0&&n[i].node2.dataIndex>=0&&t.call(r,n[i],i)},e.prototype.breadthFirstTraverse=function(t,r,n,a){if(r instanceof Ku||(r=this._nodesMap[ef(r)]),!!r){for(var i=n==="out"?"outEdges":n==="in"?"inEdges":"edges",o=0;o=0&&l.node2.dataIndex>=0});for(var i=0,o=a.length;i=0&&!t.hasKey(g)&&(t.set(g,!0),o.push(v.node1))}for(l=0;l=0&&!t.hasKey(w)&&(t.set(w,!0),s.push(_.node2))}}}return{edge:t.keys(),node:r.keys()}},e}(),v9=function(){function e(t,r,n){this.dataIndex=-1,this.node1=t,this.node2=r,this.dataIndex=n??-1}return e.prototype.getModel=function(t){if(!(this.dataIndex<0)){var r=this.hostGraph,n=r.edgeData.getItemModel(this.dataIndex);return n.getModel(t)}},e.prototype.getAdjacentDataIndices=function(){return{edge:[this.dataIndex],node:[this.node1.dataIndex,this.node2.dataIndex]}},e.prototype.getTrajectoryDataIndices=function(){var t=pe(),r=pe();t.set(this.dataIndex,!0);for(var n=[this.node1],a=[this.node2],i=0;i=0&&!t.hasKey(h)&&(t.set(h,!0),n.push(c.node1))}for(i=0;i=0&&!t.hasKey(m)&&(t.set(m,!0),a.push(g.node2))}return{edge:t.keys(),node:r.keys()}},e}();function p9(e,t){return{getValue:function(r){var n=this[e][t];return n.getStore().get(n.getDimensionIndex(r||"value"),this.dataIndex)},setVisual:function(r,n){this.dataIndex>=0&&this[e][t].setItemVisual(this.dataIndex,r,n)},getVisual:function(r){return this[e][t].getItemVisual(this.dataIndex,r)},setLayout:function(r,n){this.dataIndex>=0&&this[e][t].setItemLayout(this.dataIndex,r,n)},getLayout:function(){return this[e][t].getItemLayout(this.dataIndex)},getGraphicEl:function(){return this[e][t].getItemGraphicEl(this.dataIndex)},getRawIndex:function(){return this[e][t].getRawIndex(this.dataIndex)}}}br(Ku,p9("hostGraph","data"));br(v9,p9("hostGraph","edgeData"));function NI(e,t,r,n,a){for(var i=new dve(n),o=0;o "+d)),u++)}var v=r.get("coordinateSystem"),g;if(v==="cartesian2d"||v==="polar"||v==="matrix")g=Go(e,r);else{var m=qd.get(v),y=m?m.dimensions||[]:[];Ve(y,"value")<0&&y.concat(["value"]);var x=ev(e,{coordDimensions:y,encodeDefine:r.getEncode()}).dimensions;g=new Nn(x,r),g.initData(e)}var _=new Nn(["value"],r);return _.initData(l,s),a&&a(g,_),QW({mainData:g,struct:i,structAttr:"graph",datas:{node:g,edge:_},datasAttr:{node:"data",edge:"edgeData"}}),i.update(),i}var PA="-->",cw=function(e){return e.get("autoCurveness")||null},g9=function(e,t){var r=cw(e),n=20,a=[];if(ft(r))n=r;else if(ne(r)){e.__curvenessList=r;return}t>n&&(n=t);var i=n%2?n+2:n+3;a=[];for(var o=0;o "),value:o.value,noValue:o.value==null})}var h=U7({series:this,dataIndex:r,multipleSeries:n});return h},t.prototype._updateCategoriesData=function(){var r=oe(this.option.categories||[],function(a){return a.value!=null?a:te({value:0},a)}),n=new Nn(["value"],this);n.initData(r),this._categoriesData=n,this._categoriesModels=n.mapArray(function(a){return n.getItemModel(a)})},t.prototype.isAnimationEnabled=function(){return e.prototype.isAnimationEnabled.call(this)&&!(this.get("layout")==="force"&&this.get(["force","layoutAnimation"]))},t.prototype.__ownRoamView=function(){var r=this.coordinateSystem;return zW(r)&&r},t.type="series."+Un,t.dependencies=["grid","polar","geo","singleAxis","calendar"],t.defaultOption={z:2,coordinateSystem:"view",legendHoverLink:!0,layout:null,circular:{rotateLabel:!1},force:{initLayout:null,repulsion:[0,50],gravity:.1,friction:.6,edgeLength:30,layoutAnimation:!0},left:"center",top:"center",symbol:"circle",symbolSize:10,edgeSymbol:["none","none"],edgeSymbolSize:10,edgeLabel:{position:"middle",distance:5},draggable:!1,roam:!1,center:null,zoom:1,nodeScaleRatio:.6,label:{show:!1,formatter:"{b}"},itemStyle:{},lineStyle:{color:K.color.neutral50,width:1,opacity:.5},emphasis:{scale:!0,label:{show:!0}},select:{itemStyle:{borderColor:K.color.primary}}},t}(Pt);function U0(e){return e instanceof Array||(e=[e,e]),e}var xve=Er(Un,_ve);function _ve(e){e.eachSeriesByType(Un,function(t){var r=t.getGraph(),n=t.getEdgeData(),a=U0(t.get("edgeSymbol")),i=U0(t.get("edgeSymbolSize"));n.setVisual("fromSymbol",a&&a[0]),n.setVisual("toSymbol",a&&a[1]),n.setVisual("fromSymbolSize",i&&i[0]),n.setVisual("toSymbolSize",i&&i[1]),n.setVisual("style",t.getModel("lineStyle").getLineStyle()),n.each(function(o){var s=n.getItemModel(o),l=r.getEdgeByIndex(o),u=U0(s.getShallow("symbol",!0)),c=U0(s.getShallow("symbolSize",!0)),h=s.getModel("lineStyle").getLineStyle(),d=n.ensureUniqueItemVisual(o,"style");switch(te(d,h),d.stroke){case"source":{var v=l.node1.getVisual("style");d.stroke=v&&v.fill;break}case"target":{var v=l.node2.getVisual("style");d.stroke=v&&v.fill;break}}u[0]&&l.setVisual("fromSymbol",u[0]),u[1]&&l.setVisual("toSymbol",u[1]),c[0]&&l.setVisual("fromSymbolSize",c[0]),c[1]&&l.setVisual("toSymbolSize",c[1])})})}function y9(e){var t=e.coordinateSystem;if(!(t&&t.type!=="view")){var r=e.getGraph();r.eachNode(function(n){var a=n.getModel();n.setLayout([+a.get("x"),+a.get("y")])}),LI(r,e)}}function LI(e,t){e.eachEdge(function(r,n){var a=ia(r.getModel().get(["lineStyle","curveness"]),-kI(r,t,n,!0),0),i=mo(r.node1.getLayout()),o=mo(r.node2.getLayout()),s=[i,o];+a&&s.push([(i[0]+o[0])/2-(i[1]-o[1])*a,(i[1]+o[1])/2-(o[0]-i[0])*a]),r.setLayout(s)})}var bve=Er(Un,wve);function wve(e,t){e.eachSeriesByType(Un,function(r){var n=r.get("layout"),a=r.coordinateSystem;if(a&&a.type!=="view"){var i=r.getData(),o=[];j(a.dimensions,function(d){o=o.concat(i.mapDimensionsAll(d))});for(var s=0;s0&&(C[0]=-C[0],C[1]=-C[1]);var A=S[0]<0?-1:1;if(i.__position!=="start"&&i.__position!=="end"){var I=-Math.atan2(S[1],S[0]);h[0].8?"left":d[0]<-.8?"right":"center",m=d[1]>.8?"top":d[1]<-.8?"bottom":"middle";break;case"start":i.x=-d[0]*x+c[0],i.y=-d[1]*_+c[1],g=d[0]>.8?"right":d[0]<-.8?"left":"center",m=d[1]>.8?"bottom":d[1]<-.8?"top":"middle";break;case"insideStartTop":case"insideStart":case"insideStartBottom":i.x=x*A+c[0],i.y=c[1]+k,g=S[0]<0?"right":"left",i.originX=-x*A,i.originY=-k;break;case"insideMiddleTop":case"insideMiddle":case"insideMiddleBottom":case"middle":i.x=M[0],i.y=M[1]+k,g="center",i.originY=-k;break;case"insideEndTop":case"insideEnd":case"insideEndBottom":i.x=-x*A+h[0],i.y=h[1]+k,g=S[0]>=0?"right":"left",i.originX=x*A,i.originY=-k;break}i.scaleX=i.scaleY=o,i.setStyle({verticalAlign:i.__verticalAlign||m,align:i.__align||g})}},t}(Ne),DI=function(){function e(t){this.group=new Ne,this._LineCtor=t||PI}return e.prototype.updateData=function(t){var r=this;this._progressiveEls=null;var n=this,a=n.group,i=n._lineData;n._lineData=t,i||a.removeAll();var o=O3(t);t.diff(i).add(function(s){r._doAdd(t,s,o)}).update(function(s,l){r._doUpdate(i,t,l,s,o)}).remove(function(s){a.remove(i.getItemGraphicEl(s))}).execute()},e.prototype.updateLayout=function(){var t=this._lineData;t&&t.eachItemGraphicEl(function(r,n){r.updateLayout(t,n)},this)},e.prototype.incrementalPrepareUpdate=function(t){this._seriesScope=O3(t),this._lineData=null,this.group.removeAll()},e.prototype.incrementalUpdate=function(t,r,n){this._progressiveEls=[];function a(l){!l.isGroup&&!Pve(l)&&(l.incremental=n,l.ensureState("emphasis").hoverLayer=Zd)}for(var i=t.start;i0}function O3(e){var t=e.hostModel,r=t.getModel("emphasis");return{lineStyle:t.getModel("lineStyle").getLineStyle(),emphasisLineStyle:r.getModel(["lineStyle"]).getLineStyle(),blurLineStyle:t.getModel(["blur","lineStyle"]).getLineStyle(),selectLineStyle:t.getModel(["select","lineStyle"]).getLineStyle(),emphasisDisabled:r.get("disabled"),blurScope:r.get("blurScope"),focus:r.get("focus"),labelStatesModels:Dr(t)}}function z3(e){return isNaN(e[0])||isNaN(e[1])}function eT(e){return e&&!z3(e[0])&&!z3(e[1])}var tT=[],rT=[],nT=[],rf=Xr,aT=Al,B3=Math.abs;function F3(e,t,r){for(var n=e[0],a=e[1],i=e[2],o=1/0,s,l=r*r,u=.1,c=.1;c<=.9;c+=.1){tT[0]=rf(n[0],a[0],i[0],c),tT[1]=rf(n[1],a[1],i[1],c);var h=B3(aT(tT,t)-l);h=0?s=s+u:s=s-u:g>=0?s=s-u:s=s+u}return s}function iT(e,t){var r=[],n=Lg,a=[[],[],[]],i=[[],[]],o=[];t/=2,e.eachEdge(function(s,l){var u=s.getLayout(),c=s.getVisual("fromSymbol"),h=s.getVisual("toSymbol");u.__original||(u.__original=[mo(u[0]),mo(u[1])],u[2]&&u.__original.push(mo(u[2])));var d=u.__original;if(u[2]!=null){if(nn(a[0],d[0]),nn(a[1],d[2]),nn(a[2],d[1]),c&&c!=="none"){var v=Dp(s.node1),g=F3(a,d[0],v*t);n(a[0][0],a[1][0],a[2][0],g,r),a[0][0]=r[3],a[1][0]=r[4],n(a[0][1],a[1][1],a[2][1],g,r),a[0][1]=r[3],a[1][1]=r[4]}if(h&&h!=="none"){var v=Dp(s.node2),g=F3(a,d[1],v*t);n(a[0][0],a[1][0],a[2][0],g,r),a[1][0]=r[1],a[2][0]=r[2],n(a[0][1],a[1][1],a[2][1],g,r),a[1][1]=r[1],a[2][1]=r[2]}nn(u[0],a[0]),nn(u[1],a[2]),nn(u[2],a[1])}else{if(nn(i[0],d[0]),nn(i[1],d[1]),hl(o,i[1],i[0]),oh(o,o),c&&c!=="none"){var v=Dp(s.node1);M_(i[0],i[0],o,v*t)}if(h&&h!=="none"){var v=Dp(s.node2);M_(i[1],i[1],o,-v*t)}nn(u[0],i[0]),nn(u[1],i[1])}})}var w9=Ze();function Dve(e){if(e)return w9(e).bridge}function V3(e,t){e&&(w9(e).bridge=t)}var Eve=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=Un,r}return t.prototype.init=function(r,n){var a=new Um,i=new DI,o=this.group,s=new Ne;this._controller=new xh(n.getZr()),s.add(a.group),s.add(i.group),o.add(s),this._symbolDraw=a,this._lineDraw=i,this._mainGroup=s,this._firstRender=!0},t.prototype.render=function(r,n,a){var i=this,o=Cb(r),s=!1;this._model=r,this._api=a,this._active=!0;var l=this._mainGroup,u=this._getThumbnailInfo();u&&u.bridge.reset(a);var c=this._symbolDraw,h=this._lineDraw;o&&Hl(l,Ro,o,this._firstRender?null:r),iT(r.getGraph(),Pp(r));var d=r.getData();c.updateData(d);var v=r.getEdgeData();h.updateData(v),this._updateNodeAndLinkScale(),o&&lw(r,a,this._controller,function(S,C,M){return r.coordinateSystem.containPoint([C,M])},null),clearTimeout(this._layoutTimeout);var g=r.forceLayout,m=r.get(["force","layoutAnimation"]);g&&(s=!0,this._startForceLayoutIteration(g,a,m));var y=r.get("layout");d.graph.eachNode(function(S){var C=S.dataIndex,M=S.getGraphicEl(),A=S.getModel();if(M){M.off("drag").off("dragend");var I=A.get("draggable");I&&M.on("drag",function(P){switch(y){case"force":g.warmUp(),!i._layouting&&i._startForceLayoutIteration(g,a,m),g.setFixed(C),d.setItemLayout(C,[M.x,M.y]);break;case"circular":d.setItemLayout(C,[M.x,M.y]),S.setLayout({fixed:!0},!0),II(r,"symbolSize",S,[P.offsetX,P.offsetY]),i.updateLayout(r);break;case"none":default:d.setItemLayout(C,[M.x,M.y]),LI(r.getGraph(),r),i.updateLayout(r);break}}).on("dragend",function(){g&&g.setUnfixed(C)}),M.setDraggable(I,!!A.get("cursor"));var k=A.get(["emphasis","focus"]);k==="adjacency"&&(Ee(M).focus=S.getAdjacentDataIndices())}}),d.graph.eachEdge(function(S){var C=S.getGraphicEl(),M=S.getModel().get(["emphasis","focus"]);C&&M==="adjacency"&&(Ee(C).focus={edge:[S.dataIndex],node:[S.node1.dataIndex,S.node2.dataIndex]})});var x=r.get("layout")==="circular"&&r.get(["circular","rotateLabel"]),_=d.getLayout("cx"),w=d.getLayout("cy");d.graph.eachNode(function(S){x9(S,x,_,w)}),this._firstRender=!1,s||this._renderThumbnail(r,a,this._symbolDraw,this._lineDraw)},t.prototype.dispose=function(){this.remove(),this._controller&&this._controller.dispose()},t.prototype._startForceLayoutIteration=function(r,n,a){var i=this,o=!1;(function s(){r.step(function(l){i.updateLayout(i._model),(l||!o)&&(o=!0,i._renderThumbnail(i._model,n,i._symbolDraw,i._lineDraw)),(i._layouting=!l)&&(a?i._layoutTimeout=setTimeout(s,16):s())})})()},t.prototype.__updateOnOwnRoam=function(r,n,a){var i=Cb(n);!this._active||!i||(Hl(this._mainGroup,Ro,i,null),ZW(r)&&(this._updateNodeAndLinkScale(),iT(n.getGraph(),Pp(n)),this._lineDraw.updateLayout(),a.updateLabelLayout()),this._updateThumbnailWindow())},t.prototype._updateNodeAndLinkScale=function(){var r=this._model,n=r.getData(),a=Pp(r);n.eachItemGraphicEl(function(i,o){i&&i.setSymbolScale(a)})},t.prototype.updateLayout=function(r){this._active&&(iT(r.getGraph(),Pp(r)),this._symbolDraw.updateLayout(),this._lineDraw.updateLayout())},t.prototype.remove=function(){this._active=!1,clearTimeout(this._layoutTimeout),this._layouting=!1,this._layoutTimeout=null,this._symbolDraw&&this._symbolDraw.remove(),this._lineDraw&&this._lineDraw.remove(),this._controller&&this._controller.disable()},t.prototype._getThumbnailInfo=function(){var r=this._model,n=r.coordinateSystem;if(n.type==="view"){var a=Dve(r);if(a)return{bridge:a,coordSys:n}}},t.prototype._updateThumbnailWindow=function(){var r=this._getThumbnailInfo();r&&r.bridge.updateWindow(wb(null,r.coordSys),this._api)},t.prototype._renderThumbnail=function(r,n,a,i){var o=this._getThumbnailInfo();if(o){var s=new Ne,l=a.group.children(),u=i.group.children(),c=new Ne,h=new Ne;s.add(h),s.add(c);for(var d=0;d "),value:i.value,noValue:i.value==null})}return Mr("nameValue",{name:i.name,value:i.value,noValue:i.value==null})},t.prototype.getDataParams=function(r,n){var a=e.prototype.getDataParams.call(this,r,n);if(n==="node"){var i=this.getData(),o=this.getGraph().getNodeByIndex(r);if(a.name==null&&(a.name=i.getName(r)),a.value==null){var s=o.getLayout().value;a.value=s}}return a},t.type="series."+fm,t.defaultOption={z:2,coordinateSystem:"none",legendHoverLink:!0,colorBy:"data",left:0,top:0,right:0,bottom:0,width:null,height:null,center:["50%","50%"],radius:["70%","80%"],clockwise:!0,startAngle:90,endAngle:"auto",minAngle:0,padAngle:3,itemStyle:{borderRadius:[0,0,5,5]},lineStyle:{width:0,color:"source",opacity:.2},label:{show:!0,position:"outside",distance:5},emphasis:{focus:"adjacency",lineStyle:{opacity:.5}}},t}(Pt),G3=function(e){X(t,e);function t(r,n,a){var i=e.call(this)||this;Ee(i).dataType="node",i.z2=2;var o=new ht;return i.setTextContent(o),i.updateData(r,n,a,!0),i}return t.prototype.updateData=function(r,n,a,i){var o=this,s=r.graph.getNodeByIndex(n),l=r.hostModel,u=s.getModel(),c=u.getModel("emphasis"),h=r.getItemLayout(n),d=te(ho(u.getModel("itemStyle"),h,!0),h),v=this;if(isNaN(d.startAngle)){v.setShape(d);return}i?v.setShape(d):mt(v,{shape:d},l,n);var g=te(ho(u.getModel("itemStyle"),h,!0),h);o.setShape(g),o.useStyle(r.getItemVisual(n,"style")),Pr(o,u),this._updateLabel(l,u,s),r.setItemGraphicEl(n,v),Pr(v,u,"itemStyle");var m=c.get("focus");Yt(this,m==="adjacency"?s.getAdjacentDataIndices():m,c.get("blurScope"),c.get("disabled"))},t.prototype._updateLabel=function(r,n,a){var i=this.getTextContent(),o=a.getLayout(),s=(o.startAngle+o.endAngle)/2,l=Math.cos(s),u=Math.sin(s),c=n.getModel("label");i.ignore=!c.get("show");var h=Dr(n),d=a.getVisual("style");Hr(i,h,{labelFetcher:{getFormattedLabel:function(_,w,S,C,M,A){return r.getFormattedLabel(_,w,"node",C,ia(M,h.normal&&h.normal.get("formatter"),n.get("name")),A)}},labelDataIndex:a.dataIndex,defaultText:a.dataIndex+"",inheritColor:d.fill,defaultOpacity:d.opacity,defaultOutsidePosition:"startArc"});var v=c.get("position")||"outside",g=c.get("distance")||0,m;v==="outside"?m=o.r+g:m=(o.r+o.r0)/2,this.textConfig={inside:v!=="outside"};var y=v!=="outside"?c.get("align")||"center":l>0?"left":"right",x=v!=="outside"?c.get("verticalAlign")||"middle":u>0?"top":"bottom";i.attr({x:l*m+o.cx,y:u*m+o.cy,rotation:0,style:{align:y,verticalAlign:x}})},t}(dn),Vve=function(e){X(t,e);function t(r,n,a,i){var o=e.call(this)||this;return Ee(o).dataType="edge",o.updateData(r,n,a,i,!0),o}return t.prototype.buildPath=function(r,n){r.moveTo(n.s1[0],n.s1[1]);var a=.7,i=n.clockwise;r.arc(n.cx,n.cy,n.r,n.sStartAngle,n.sEndAngle,!i),r.bezierCurveTo((n.cx-n.s2[0])*a+n.s2[0],(n.cy-n.s2[1])*a+n.s2[1],(n.cx-n.t1[0])*a+n.t1[0],(n.cy-n.t1[1])*a+n.t1[1],n.t1[0],n.t1[1]),r.arc(n.cx,n.cy,n.r,n.tStartAngle,n.tEndAngle,!i),r.bezierCurveTo((n.cx-n.t2[0])*a+n.t2[0],(n.cy-n.t2[1])*a+n.t2[1],(n.cx-n.s1[0])*a+n.s1[0],(n.cy-n.s1[1])*a+n.s1[1],n.s1[0],n.s1[1]),r.closePath()},t.prototype.updateData=function(r,n,a,i,o){var s=r.hostModel,l=n.graph.getEdgeByIndex(a),u=l.getLayout(),c=l.node1.getModel(),h=n.getItemModel(l.dataIndex),d=h.getModel("lineStyle"),v=h.getModel("emphasis"),g=v.get("focus"),m=te(ho(c.getModel("itemStyle"),u,!0),u),y=this;if(isNaN(m.sStartAngle)||isNaN(m.tStartAngle)){y.setShape(m);return}o?(y.setShape(m),H3(y,l,r,d)):(ii(y),H3(y,l,r,d),mt(y,{shape:m},s,a)),Yt(this,g==="adjacency"?l.getAdjacentDataIndices():g,v.get("blurScope"),v.get("disabled")),Pr(y,h,"lineStyle"),n.setItemGraphicEl(l.dataIndex,y)},t}(rt);function H3(e,t,r,n){var a=t.node1,i=t.node2,o=e.style;e.setStyle(n.getLineStyle());var s=n.get("color");switch(s){case"source":o.fill=r.getItemVisual(a.dataIndex,"style").fill,o.decal=a.getVisual("style").decal;break;case"target":o.fill=r.getItemVisual(i.dataIndex,"style").fill,o.decal=i.getVisual("style").decal;break;case"gradient":var l=r.getItemVisual(a.dataIndex,"style").fill,u=r.getItemVisual(i.dataIndex,"style").fill;if(ue(l)&&ue(u)){var c=e.shape,h=(c.s1[0]+c.s2[0])/2,d=(c.s1[1]+c.s2[1])/2,v=(c.t1[0]+c.t2[0])/2,g=(c.t1[1]+c.t2[1])/2;o.fill=new hh(h,d,v,g,[{offset:0,color:l},{offset:1,color:u}],!0)}break}}var Gve=Math.PI/180,Hve=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=fm,r}return t.prototype.init=function(r,n){},t.prototype.render=function(r,n,a){var i=r.getData(),o=this._data,s=this.group,l=-r.get("startAngle")*Gve;if(i.diff(o).add(function(c){var h=i.getItemLayout(c);if(h){var d=new G3(i,c,l);Ee(d).dataIndex=c,s.add(d)}}).update(function(c,h){var d=o.getItemGraphicEl(h),v=i.getItemLayout(c);if(!v){d&&vs(d,r,h);return}d?d.updateData(i,c,l):d=new G3(i,c,l),s.add(d)}).remove(function(c){var h=o.getItemGraphicEl(c);h&&vs(h,r,c)}).execute(),!o){var u=r.get("center");this.group.scaleX=.01,this.group.scaleY=.01,this.group.originX=fe(u[0],a.getWidth()),this.group.originY=fe(u[1],a.getHeight()),Ut(this.group,{scaleX:1,scaleY:1},r)}this._data=i,this.renderEdges(r,l)},t.prototype.renderEdges=function(r,n){var a=r.getData(),i=r.getEdgeData(),o=this._edgeData,s=this.group;i.diff(o).add(function(l){var u=new Vve(a,i,l,n);Ee(u).dataIndex=l,s.add(u)}).update(function(l,u){var c=o.getItemGraphicEl(u);c.updateData(a,i,l,n),s.add(c)}).remove(function(l){var u=o.getItemGraphicEl(l);u&&vs(u,r,l)}).execute(),this._edgeData=i},t.prototype.dispose=function(){},t.type=fm,t}(At),oT=Math.PI/180,Uve=Er(fm,Wve);function Wve(e,t){e.eachSeriesByType(fm,function(r){Zve(r,t)})}function Zve(e,t){var r=e.getData(),n=r.graph,a=e.getEdgeData(),i=a.count();if(i){var o=u7(e,t),s=o.cx,l=o.cy,u=o.r,c=o.r0,h=Math.max((e.get("padAngle")||0)*oT,0),d=Math.max((e.get("minAngle")||0)*oT,0),v=-e.get("startAngle")*oT,g=v+Math.PI*2,m=e.get("clockwise"),y=m?1:-1,x=[v,g];E1(x,!m);var _=x[0],w=x[1],S=w-_,C=r.getSum("value")===0&&a.getSum("value")===0,M=[],A=0;n.eachEdge(function(F){var Z=C?1:F.getValue("value");C&&(Z>0||d)&&(A+=2);var $=F.node1.dataIndex,W=F.node2.dataIndex;M[$]=(M[$]||0)+Z,M[W]=(M[W]||0)+Z});var I=0;if(n.eachNode(function(F){var Z=F.getValue("value");isNaN(Z)||(M[F.dataIndex]=Math.max(Z,M[F.dataIndex]||0)),!C&&(M[F.dataIndex]>0||d)&&A++,I+=M[F.dataIndex]||0}),!(A===0||I===0)){h*A>=Math.abs(S)&&(h=Math.max(0,(Math.abs(S)-d*A)/A)),(h+d)*A>=Math.abs(S)&&(d=(Math.abs(S)-h*A)/A);var k=(S-h*A*y)/I,P=0,D=0,z=0;n.eachNode(function(F){var Z=M[F.dataIndex]||0,$=k*(I?Z:1)*y;Math.abs($)D){var B=P/D;n.eachNode(function(F){var Z=F.getLayout().angle;Math.abs(Z)>=d?F.setLayout({angle:Z*B,ratio:B},!0):F.setLayout({angle:d,ratio:d===0?1:Z/d},!0)})}else n.eachNode(function(F){if(!E){var Z=F.getLayout().angle,$=Math.min(Z/z,1),W=$*P;Z-Wd&&d>0){var $=E?1:Math.min(Z/z,1),W=Z-d,q=Math.min(W,Math.min(H,P*$));H-=q,F.setLayout({angle:Z-q,ratio:(Z-q)/Z},!0)}else d>0&&F.setLayout({angle:d,ratio:Z===0?1:d/Z},!0)}});var V=_,U=[];n.eachNode(function(F){var Z=Math.max(F.getLayout().angle,d);F.setLayout({cx:s,cy:l,r0:c,r:u,startAngle:V,endAngle:V+Z*y,clockwise:m},!0),U[F.dataIndex]=V,V+=(Z+h)*y}),n.eachEdge(function(F){var Z=C?1:F.getValue("value"),$=k*(I?Z:1)*y,W=F.node1.dataIndex,q=U[W]||0,re=Math.abs((F.node1.getLayout().ratio||1)*$),Q=q+re*y,se=[s+c*Math.cos(q),l+c*Math.sin(q)],ce=[s+c*Math.cos(Q),l+c*Math.sin(Q)],Ue=F.node2.dataIndex,ye=U[Ue]||0,me=Math.abs((F.node2.getLayout().ratio||1)*$),Oe=ye+me*y,be=[s+c*Math.cos(ye),l+c*Math.sin(ye)],we=[s+c*Math.cos(Oe),l+c*Math.sin(Oe)];F.setLayout({s1:se,s2:ce,sStartAngle:q,sEndAngle:Q,t1:be,t2:we,tStartAngle:ye,tEndAngle:Oe,cx:s,cy:l,r:c,value:Z,clockwise:m}),U[W]=Q,U[Ue]=Oe})}}}function $ve(e){e.registerChartView(Hve),e.registerSeriesModel(Fve),e.registerLayout(e.PRIORITY.VISUAL.POST_CHART_LAYOUT,Uve),e.registerProcessor($m("chord"))}var Yve=function(){function e(){this.angle=0,this.width=10,this.r=10,this.x=0,this.y=0}return e}(),Xve=function(e){X(t,e);function t(r){var n=e.call(this,r)||this;return n.type="pointer",n}return t.prototype.getDefaultShape=function(){return new Yve},t.prototype.buildPath=function(r,n){var a=Math.cos,i=Math.sin,o=n.r,s=n.width,l=n.angle,u=n.x-a(l)*s*(s>=o/3?1:2),c=n.y-i(l)*s*(s>=o/3?1:2);l=n.angle-Math.PI/2,r.moveTo(u,c),r.lineTo(n.x+a(l)*s,n.y+i(l)*s),r.lineTo(n.x+a(n.angle)*o,n.y+i(n.angle)*o),r.lineTo(n.x-a(l)*s,n.y-i(l)*s),r.lineTo(u,c)},t}(rt);function qve(e,t){var r=e.get("center"),n=t.getWidth(),a=t.getHeight(),i=Math.min(n,a),o=fe(r[0],t.getWidth()),s=fe(r[1],t.getHeight()),l=fe(e.get("radius"),i/2);return{cx:o,cy:s,r:l}}function W0(e,t){var r=e==null?"":e+"";return t&&(ue(t)?r=t.replace("{value}",r):Me(t)&&(r=t(e))),r}var Kve=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,a){this.group.removeAll();var i=r.get(["axisLine","lineStyle","color"]),o=qve(r,a);this._renderMain(r,n,a,i,o),this._data=r.getData()},t.prototype.dispose=function(){},t.prototype._renderMain=function(r,n,a,i,o){var s=this.group,l=r.get("clockwise"),u=-r.get("startAngle")/180*Math.PI,c=-r.get("endAngle")/180*Math.PI,h=r.getModel("axisLine"),d=h.get("roundCap"),v=d?xb:dn,g=h.get("show"),m=h.getModel("lineStyle"),y=m.get("width"),x=[u,c];E1(x,!l),u=x[0],c=x[1];for(var _=c-u,w=u,S=[],C=0;g&&C=k&&(P===0?0:i[P-1][0])Math.PI/2&&(Q+=Math.PI)):re==="tangential"?Q=-I-Math.PI/2:ft(re)&&(Q=re*Math.PI/180),Q===0?h.add(new ht({style:Et(w,{text:Z,x:W,y:q,verticalAlign:H<-.8?"top":H>.8?"bottom":"middle",align:B<-.4?"left":B>.4?"right":"center"},{inheritColor:$}),silent:!0})):h.add(new ht({style:Et(w,{text:Z,x:W,y:q,verticalAlign:"middle",align:"center"},{inheritColor:$}),silent:!0,originX:W,originY:q,rotation:Q}))}if(_.get("show")&&V!==S){var U=_.get("distance");U=U?U+c:c;for(var se=0;se<=C;se++){B=Math.cos(I),H=Math.sin(I);var ce=new yr({shape:{x1:B*(g-U)+d,y1:H*(g-U)+v,x2:B*(g-A-U)+d,y2:H*(g-A-U)+v},silent:!0,style:z});z.stroke==="auto"&&ce.setStyle({stroke:i((V+se/C)/S)}),h.add(ce),I+=P}I-=P}else I+=k}},t.prototype._renderPointer=function(r,n,a,i,o,s,l,u,c){var h=this.group,d=this._data,v=this._progressEls,g=[],m=r.get(["pointer","show"]),y=r.getModel("progress"),x=y.get("show"),_=r.getData(),w=_.mapDimension("value"),S=+r.get("min"),C=+r.get("max"),M=[S,C],A=[s,l];function I(P,D){var z=_.getItemModel(P),E=z.getModel("pointer"),B=fe(E.get("width"),o.r),H=fe(E.get("length"),o.r),V=r.get(["pointer","icon"]),U=E.get("offsetCenter"),F=fe(U[0],o.r),Z=fe(U[1],o.r),$=E.get("keepAspect"),W;return V?W=_r(V,F-B/2,Z-H,B,H,null,$):W=new Xve({shape:{angle:-Math.PI/2,width:B,r:H,x:F,y:Z}}),W.rotation=-(D+Math.PI/2),W.x=o.cx,W.y=o.cy,W}function k(P,D){var z=y.get("roundCap"),E=z?xb:dn,B=y.get("overlap"),H=B?y.get("width"):c/_.count(),V=B?o.r-H:o.r-(P+1)*H,U=B?o.r:o.r-P*H,F=new E({shape:{startAngle:s,endAngle:D,cx:o.cx,cy:o.cy,clockwise:u,r0:V,r:U}});return B&&(F.z2=xt(_.get(w,P),[S,C],[100,0],!0)),F}(x||m)&&(_.diff(d).add(function(P){var D=_.get(w,P);if(m){var z=I(P,s);Ut(z,{rotation:-((isNaN(+D)?A[0]:xt(D,M,A,!0))+Math.PI/2)},r),h.add(z),_.setItemGraphicEl(P,z)}if(x){var E=k(P,s),B=y.get("clip");Ut(E,{shape:{endAngle:xt(D,M,A,B)}},r),h.add(E),kM(r.seriesIndex,_.dataType,P,E),g[P]=E}}).update(function(P,D){var z=_.get(w,P);if(m){var E=d.getItemGraphicEl(D),B=E?E.rotation:s,H=I(P,B);H.rotation=B,mt(H,{rotation:-((isNaN(+z)?A[0]:xt(z,M,A,!0))+Math.PI/2)},r),h.add(H),_.setItemGraphicEl(P,H)}if(x){var V=v[D],U=V?V.shape.endAngle:s,F=k(P,U),Z=y.get("clip");mt(F,{shape:{endAngle:xt(z,M,A,Z)}},r),h.add(F),kM(r.seriesIndex,_.dataType,P,F),g[P]=F}}).execute(),_.each(function(P){var D=_.getItemModel(P),z=D.getModel("emphasis"),E=z.get("focus"),B=z.get("blurScope"),H=z.get("disabled"),V=i(xt(_.get(w,P),M,[0,1],!0));if(m){var U=_.getItemGraphicEl(P),F=_.getItemVisual(P,"style"),Z=F.fill;if(U instanceof Ur){var $=U.style;U.useStyle(te({image:$.image,x:$.x,y:$.y,width:$.width,height:$.height},F))}else U.useStyle(F),U.type!=="pointer"&&U.setColor(Z);U.setStyle(D.getModel(["pointer","itemStyle"]).getItemStyle()),U.style.fill==="auto"&&U.setStyle("fill",V),U.z2EmphasisLift=0,Pr(U,D),Yt(U,E,B,H)}if(x){var W=g[P];W.useStyle(_.getItemVisual(P,"style")),W.setStyle(D.getModel(["progress","itemStyle"]).getItemStyle()),W.style.fill==="auto"&&W.setStyle("fill",V),W.z2EmphasisLift=0,Pr(W,D),Yt(W,E,B,H)}}),this._progressEls=g)},t.prototype._renderAnchor=function(r,n){var a=r.getModel("anchor"),i=a.get("show");if(i){var o=a.get("size"),s=a.get("icon"),l=a.get("offsetCenter"),u=a.get("keepAspect"),c=_r(s,n.cx-o/2+fe(l[0],n.r),n.cy-o/2+fe(l[1],n.r),o,o,null,u);c.z2=a.get("showAbove")?1:0,c.setStyle(a.getModel("itemStyle").getItemStyle()),this.group.add(c)}},t.prototype._renderTitleAndDetail=function(r,n,a,i,o){var s=this,l=r.getData(),u=l.mapDimension("value"),c=+r.get("min"),h=+r.get("max"),d=new Ne,v=[],g=[],m=r.isAnimationEnabled(),y=r.get(["pointer","showAbove"]);l.diff(this._data).add(function(x){v[x]=new ht({silent:!0}),g[x]=new ht({silent:!0})}).update(function(x,_){v[x]=s._titleEls[_],g[x]=s._detailEls[_]}).execute(),l.each(function(x){var _=l.getItemModel(x),w=l.get(u,x),S=new Ne,C=i(xt(w,[c,h],[0,1],!0)),M=_.getModel("title");if(M.get("show")){var A=M.get("offsetCenter"),I=o.cx+fe(A[0],o.r),k=o.cy+fe(A[1],o.r),P=v[x];P.attr({z2:y?0:2,style:Et(M,{x:I,y:k,text:l.getName(x),align:"center",verticalAlign:"middle"},{inheritColor:C})}),S.add(P)}var D=_.getModel("detail");if(D.get("show")){var z=D.get("offsetCenter"),E=o.cx+fe(z[0],o.r),B=o.cy+fe(z[1],o.r),H=fe(D.get("width"),o.r),V=fe(D.get("height"),o.r),U=r.get(["progress","show"])?l.getItemVisual(x,"style").fill:C,P=g[x],F=D.get("formatter");P.attr({z2:y?0:2,style:Et(D,{x:E,y:B,text:W0(w,F),width:isNaN(H)?null:H,height:isNaN(V)?null:V,align:"center",verticalAlign:"middle"},{inheritColor:U})}),FH(P,{normal:D},w,function($){return W0($,F)}),m&&VH(P,x,l,r,{getFormattedLabel:function($,W,q,re,Q,se){return W0(se?se.interpolatedValue:w,F)}}),S.add(P)}d.add(S)}),this.group.add(d),this._titleEls=v,this._detailEls=g},t.type="gauge",t}(At),Jve=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.visualStyleAccessPath="itemStyle",r}return t.prototype.getInitialData=function(r,n){return iv(this,["value"])},t.type="series.gauge",t.defaultOption={z:2,colorBy:"data",center:["50%","50%"],legendHoverLink:!0,radius:"75%",startAngle:225,endAngle:-45,clockwise:!0,min:0,max:100,splitNumber:10,axisLine:{show:!0,roundCap:!1,lineStyle:{color:[[1,K.color.neutral10]],width:10}},progress:{show:!1,overlap:!0,width:10,roundCap:!1,clip:!0},splitLine:{show:!0,length:10,distance:10,lineStyle:{color:K.color.axisTick,width:3,type:"solid"}},axisTick:{show:!0,splitNumber:5,length:6,distance:10,lineStyle:{color:K.color.axisTickMinor,width:1,type:"solid"}},axisLabel:{show:!0,distance:15,color:K.color.axisLabel,fontSize:12,rotate:0},pointer:{icon:null,offsetCenter:[0,0],show:!0,showAbove:!0,length:"60%",width:6,keepAspect:!1},anchor:{show:!1,showAbove:!1,size:6,icon:"circle",offsetCenter:[0,0],keepAspect:!1,itemStyle:{color:K.color.neutral00,borderWidth:0,borderColor:K.color.theme[0]}},title:{show:!0,offsetCenter:[0,"20%"],color:K.color.secondary,fontSize:16,valueAnimation:!1},detail:{show:!0,backgroundColor:K.color.transparent,borderWidth:0,borderColor:K.color.neutral40,width:100,height:null,padding:[5,10],offsetCenter:[0,"40%"],color:K.color.primary,fontSize:30,fontWeight:"bold",lineHeight:30,valueAnimation:!1}},t}(Pt);function Qve(e){e.registerChartView(Kve),e.registerSeriesModel(Jve)}var Sd="funnel",epe=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.init=function(r){e.prototype.init.apply(this,arguments),this.legendVisualProvider=new ov(ve(this.getData,this),ve(this.getRawData,this)),this._defaultLabelLine(r)},t.prototype.getInitialData=function(r,n){return iv(this,{coordDimensions:["value"],encodeDefaulter:Xe(bL,this)})},t.prototype._defaultLabelLine=function(r){Dc(r,"labelLine",["show"]);var n=r.labelLine,a=r.emphasis.labelLine;n.show=n.show&&r.label.show,a.show=a.show&&r.emphasis.label.show},t.prototype.getDataParams=function(r){var n=this.getData(),a=e.prototype.getDataParams.call(this,r),i=n.mapDimension("value"),o=n.getSum(i);return a.percent=o?+(n.get(i,r)/o*100).toFixed(2):0,a.$vars.push("percent"),a},t.type="series."+Sd,t.defaultOption={coordinateSystemUsage:"box",z:2,legendHoverLink:!0,colorBy:"data",left:80,top:60,right:80,bottom:65,minSize:"0%",maxSize:"100%",sort:"descending",orient:"vertical",gap:0,funnelAlign:"center",label:{show:!0,position:"outer"},labelLine:{show:!0,length:20,lineStyle:{width:1}},itemStyle:{borderColor:K.color.neutral00,borderWidth:1},emphasis:{label:{show:!0}},select:{itemStyle:{borderColor:K.color.primary}}},t}(Pt),tpe=["itemStyle","opacity"],rpe=function(e){X(t,e);function t(r,n){var a=e.call(this)||this,i=a,o=new en,s=new ht;return i.setTextContent(s),a.setTextGuideLine(o),a.updateData(r,n,!0),a}return t.prototype.updateData=function(r,n,a){var i=this,o=r.hostModel,s=r.getItemModel(n),l=r.getItemLayout(n),u=s.getModel("emphasis"),c=s.get(tpe);c=c??1,a||ii(i),i.useStyle(r.getItemVisual(n,"style")),i.style.lineJoin="round",a?(i.setShape({points:l.points}),i.style.opacity=0,Ut(i,{style:{opacity:c}},o,n)):mt(i,{style:{opacity:c},shape:{points:l.points}},o,n),Pr(i,s),this._updateLabel(r,n),Yt(this,u.get("focus"),u.get("blurScope"),u.get("disabled"))},t.prototype._updateLabel=function(r,n){var a=this,i=this.getTextGuideLine(),o=a.getTextContent(),s=r.hostModel,l=r.getItemModel(n),u=r.getItemLayout(n),c=u.label,h=r.getItemVisual(n,"style"),d=h.fill;Hr(o,Dr(l),{labelFetcher:r.hostModel,labelDataIndex:n,defaultOpacity:h.opacity,defaultText:r.getName(n)},{normal:{align:c.textAlign,verticalAlign:c.verticalAlign}});var v=l.getModel("label"),g=v.get("color"),m=g==="inherit"?d:null;a.setTextConfig({local:!0,inside:!!c.inside,insideStroke:m,outsideFill:m});var y=c.linePoints;i.setShape({points:y}),a.textGuideLineConfig={anchor:y?new Pe(y[0][0],y[0][1]):null},mt(o,{style:{x:c.x,y:c.y}},s,n),o.attr({rotation:c.rotation,originX:c.x,originY:c.y,z2:10}),QL(a,eI(l),{stroke:d})},t}(vn),npe=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=Sd,r.ignoreLabelLineUpdate=!0,r}return t.prototype.render=function(r,n,a){var i=r.getData(),o=this._data,s=this.group;i.diff(o).add(function(l){var u=new rpe(i,l);i.setItemGraphicEl(l,u),s.add(u)}).update(function(l,u){var c=o.getItemGraphicEl(u);c.updateData(i,l),s.add(c),i.setItemGraphicEl(l,c)}).remove(function(l){var u=o.getItemGraphicEl(l);vs(u,r,l)}).execute(),this._data=i},t.prototype.remove=function(){this.group.removeAll(),this._data=null},t.prototype.dispose=function(){},t.type=Sd,t}(At);function ape(e,t){for(var r=e.mapDimension("value"),n=e.mapArray(r,function(l){return l}),a=[],i=t==="ascending",o=0,s=e.count();o-1&&(o="left"),r&&Ve(["left","right"],o)>-1&&(o="bottom")),o==="left"?(m=(u[3][0]+u[0][0])/2,y=(u[3][1]+u[0][1])/2,x=m-w,d=x-5,h="right"):o==="right"?(m=(u[1][0]+u[2][0])/2,y=(u[1][1]+u[2][1])/2,x=m+w,d=x+5,h="left"):o==="top"?(m=(u[3][0]+u[0][0])/2,y=(u[3][1]+u[0][1])/2,_=y-w,v=_-5,h="center"):o==="bottom"?(m=(u[1][0]+u[2][0])/2,y=(u[1][1]+u[2][1])/2,_=y+w,v=_+5,h="center"):o==="rightTop"?(m=r?u[3][0]:u[1][0],y=r?u[3][1]:u[1][1],r?(_=y-w,v=_-5,h="center"):(x=m+w,d=x+5,h="top")):o==="rightBottom"?(m=u[2][0],y=u[2][1],r?(_=y+w,v=_+5,h="center"):(x=m+w,d=x+5,h="bottom")):o==="leftTop"?(m=u[0][0],y=r?u[0][1]:u[1][1],r?(_=y-w,v=_-5,h="center"):(x=m-w,d=x-5,h="right")):o==="leftBottom"?(m=r?u[1][0]:u[3][0],y=r?u[1][1]:u[2][1],r?(_=y+w,v=_+5,h="center"):(x=m-w,d=x-5,h="right")):(m=(u[1][0]+u[2][0])/2,y=(u[1][1]+u[2][1])/2,r?(_=y+w,v=_+5,h="center"):(x=m+w,d=x+5,h="left")),r?(x=m,d=x):(_=y,v=_),g=[[m,y],[x,_]]}l.label={linePoints:g,x:d,y:v,verticalAlign:"middle",textAlign:h,inside:c}})}var ope=Er(Sd,spe);function spe(e,t){e.eachSeriesByType(Sd,function(r){var n=r.getData(),a=n.mapDimension("value"),i=r.get("sort"),o=jr(r,t),s=Zt(r.getBoxLayoutParams(),o.refContainer),l=S9(r),u=s.width,c=s.height,h=ape(n,i),d=s.x,v=s.y,g=l?[fe(r.get("minSize"),c),fe(r.get("maxSize"),c)]:[fe(r.get("minSize"),u),fe(r.get("maxSize"),u)],m=n.getDataExtent(a),y=r.get("min"),x=r.get("max");y==null&&(y=Math.min(m[0],0)),x==null&&(x=m[1]);var _=r.get("funnelAlign"),w=r.get("gap"),S=l?u:c,C=(S-w*(n.count()-1))/n.count(),M=function(H,V){if(l){var U=n.get(a,H)||0,F=xt(U,[y,x],g,!0),Z=void 0;switch(_){case"top":Z=v;break;case"center":Z=v+(c-F)/2;break;case"bottom":Z=v+(c-F);break}return[[V,Z],[V,Z+F]]}var $=n.get(a,H)||0,W=xt($,[y,x],g,!0),q;switch(_){case"left":q=d;break;case"center":q=d+(u-W)/2;break;case"right":q=d+u-W;break}return[[q,V],[q+W,V]]};i==="ascending"&&(C=-C,w=-w,l?d+=u:v+=c,h=h.reverse());for(var A=0;Abpe)return;var a=this._model.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX,e.offsetY]);a.behavior!=="none"&&this._dispatchExpand({axisExpandWindow:a.axisExpandWindow})}this._mouseDownPoint=null},mousemove:function(e){if(!(this._mouseDownPoint||!lT(this,"mousemove"))){var t=this._model,r=t.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX,e.offsetY]),n=r.behavior;n==="jump"&&this._throttledDispatchExpand.debounceNextCall(t.get("axisExpandDebounce")),this._throttledDispatchExpand(n==="none"?null:{axisExpandWindow:r.axisExpandWindow,animation:n==="jump"?null:{duration:0}})}}};function lT(e,t){var r=e._model;return r.get("axisExpandable")&&r.get("axisExpandTriggerOn")===t}var kb="parallel",jA=kb,Cpe=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.init=function(){e.prototype.init.apply(this,arguments),this.mergeOption({})},t.prototype.mergeOption=function(r){var n=this.option;r&&We(n,r,!0),this._initDimensions()},t.prototype.contains=function(r,n){var a=r.get("parallelIndex");return a!=null&&n.getComponent("parallel",a)===this},t.prototype.setAxisExpand=function(r){j(["axisExpandable","axisExpandCenter","axisExpandCount","axisExpandWidth","axisExpandWindow"],function(n){r.hasOwnProperty(n)&&(this.option[n]=r[n])},this)},t.prototype._initDimensions=function(){var r=this.dimensions=[],n=this.parallelAxisIndex=[],a=wt(this.ecModel.queryComponents({mainType:"parallelAxis"}),function(i){return(i.get("parallelIndex")||0)===this.componentIndex},this);j(a,function(i){r.push("dim"+i.get("dim")),n.push(i.componentIndex)})},t.type=jA,t.dependencies=["parallelAxis"],t.layoutMode="box",t.defaultOption={z:0,left:80,top:60,right:80,bottom:60,layout:"horizontal",axisExpandable:!1,axisExpandCenter:null,axisExpandCount:0,axisExpandWidth:50,axisExpandRate:17,axisExpandDebounce:50,axisExpandSlideTriggerArea:[-.15,.05,.4],axisExpandTriggerOn:"click",parallelAxisDefault:null},t}(Qe),Tpe=function(e){X(t,e);function t(r,n,a,i,o){var s=e.call(this,r,n,a)||this;return s.type=i||"value",s.axisIndex=o,s}return t.prototype.isHorizontal=function(){return this.coordinateSystem.getModel().get("layout")!=="horizontal"},t}(ui);function Ul(e,t,r,n,a,i){e=e||0;var o=Zu(r[1],-r[0]);if(a!=null&&(a=nf(a,[0,o])),i!=null&&(i=Math.max(i,a??0)),n==="all"){var s=Math.abs(Zu(t[1],-t[0]));s=nf(s,[0,o]),a=i=nf(s,[a,i]),n=0}t[0]=nf(t[0],r),t[1]=nf(t[1],r);var l=uT(t,n);t[n]+=e;var u=a||0,c=r.slice();l.sign<0?c[0]=Zu(c[0],u):c[1]=Zu(c[1],-u),t[n]=nf(t[n],c);var h;return h=uT(t,n),a!=null&&(h.sign!==l.sign||h.spani&&(t[1-n]=Zu(t[n],h.sign*i)),t}function uT(e,t){var r=e[t]-e[1-t];return{span:Math.abs(r),sign:r>0?-1:r<0?1:t?-1:1}}function nf(e,t){return Math.min(t[1]!=null?t[1]:1/0,Math.max(t[0]!=null?t[0]:-1/0,e))}var Mpe=function(){function e(t,r,n){this.type=kb,this._axesMap=pe(),this._axesLayout={},this.dimensions=t.dimensions,this._model=t,this._init(t,r,n)}return e.prototype._init=function(t,r,n){var a=t.dimensions,i=t.parallelAxisIndex;j(a,function(o,s){var l=i[s],u=r.getComponent("parallelAxis",l),c=Fm(u),h=this._axesMap.set(o,new Tpe(o,tv(u,c,!1),[0,0],c,l));h.onBand=Gm(h.scale,u),h.inverse=u.get("inverse"),u.axis=h,h.model=u,h.coordinateSystem=u.coordinateSystem=this},this)},e.prototype.update=function(t,r){j(this.dimensions,function(n){var a=this._axesMap.get(n);Uc(a,xd),_d(a)},this)},e.prototype.containPoint=function(t){var r=this._makeLayoutInfo(),n=r.axisBase,a=r.layoutBase,i=r.pixelDimIndex,o=t[1-i],s=t[i];return o>=n&&o<=n+r.axisLength&&s>=a&&s<=a+r.layoutLength},e.prototype.getModel=function(){return this._model},e.prototype.resize=function(t,r){var n=jr(t,r).refContainer;this._rect=Zt(t.getBoxLayoutParams(),n),this._layoutAxes()},e.prototype.getRect=function(){return this._rect},e.prototype._makeLayoutInfo=function(){var t=this._model,r=this._rect,n=["x","y"],a=["width","height"],i=t.get("layout"),o=i==="horizontal"?0:1,s=r[a[o]],l=[0,s],u=this.dimensions.length,c=Z0(t.get("axisExpandWidth"),l),h=Z0(t.get("axisExpandCount")||0,[0,u]),d=t.get("axisExpandable")&&u>3&&u>h&&h>1&&c>0&&s>0,v=t.get("axisExpandWindow"),g;if(v)g=Z0(v[1]-v[0],l),v[1]=v[0]+g;else{g=Z0(c*(h-1),l);var m=t.get("axisExpandCenter")||ri(u/2);v=[c*m-g/2],v[1]=v[0]+g}var y=(s-g)/(u-h);y<3&&(y=0);var x=[ri(gt(v[0]/c,1))+1,lh(gt(v[1]/c,1))-1],_=y/c*v[0];return{layout:i,pixelDimIndex:o,layoutBase:r[n[o]],layoutLength:s,axisBase:r[n[1-o]],axisLength:r[a[1-o]],axisExpandable:d,axisExpandWidth:c,axisCollapseWidth:y,axisExpandWindow:v,axisCount:u,winInnerIndices:x,axisExpandWindow0Pos:_}},e.prototype._layoutAxes=function(){var t=this._rect,r=this._axesMap,n=this.dimensions,a=this._makeLayoutInfo(),i=a.layout;r.each(function(o){var s=[0,a.axisLength],l=o.inverse?1:0;o.setExtent(s[l],s[1-l])}),j(n,function(o,s){var l=(a.axisExpandable?Npe:Ape)(s,a),u={horizontal:{x:l.position,y:a.axisLength},vertical:{x:0,y:l.position}},c={horizontal:z_/2,vertical:0},h=[u[i].x+t.x,u[i].y+t.y],d=c[i],v=$t();js(v,v,d),Pi(v,v,h),this._axesLayout[o]={position:h,rotation:d,transform:v,axisNameAvailableWidth:l.axisNameAvailableWidth,axisLabelShow:l.axisLabelShow,nameTruncateMaxWidth:l.nameTruncateMaxWidth,tickDirection:1,labelDirection:1}},this)},e.prototype.getAxis=function(t){return this._axesMap.get(t)},e.prototype.dataToPoint=function(t,r){return this.axisCoordToPoint(this._axesMap.get(r).dataToCoord(t),r)},e.prototype.eachActiveState=function(t,r,n,a){n==null&&(n=0),a==null&&(a=t.count());var i=this._axesMap,o=this.dimensions,s=[],l=[];j(o,function(y){s.push(t.mapDimension(y)),l.push(i.get(y).model)});for(var u=this.hasAxisBrushed(),c=n;ci*(1-h[0])?(u="jump",l=s-i*(1-h[2])):(l=s-i*h[1])>=0&&(l=s-i*(1-h[1]))<=0&&(l=0),l*=r.axisExpandWidth/c,l?Ul(l,a,o,"all"):u="none";else{var v=a[1]-a[0],g=o[1]*s/v;a=[qe(0,g-v/2)],a[1]=Mt(o[1],a[0]+v),a[0]=a[1]-v}return{axisExpandWindow:a,behavior:u}},e}();function Z0(e,t){return Mt(qe(e,t[0]),t[1])}function Ape(e,t){var r=t.layoutLength/(t.axisCount-1);return{position:r*e,axisNameAvailableWidth:r,axisLabelShow:!0}}function Npe(e,t){var r=t.layoutLength,n=t.axisExpandWidth,a=t.axisCount,i=t.axisCollapseWidth,o=t.winInnerIndices,s,l=i,u=!1,c;return e=0;a--)qr(n[a])},t.prototype.getActiveState=function(r){var n=this.activeIntervals;if(!n.length)return"normal";if(r==null||isNaN(+r))return"inactive";if(n.length===1){var a=n[0];if(a[0]<=r&&r<=a[1])return"active"}else for(var i=0,o=n.length;iDpe}function L9(e){var t=e.length-1;return t<0&&(t=0),[e[0],e[t]]}function I9(e,t,r,n){var a=new Ne;return a.add(new Ke({name:"main",style:zI(r),silent:!0,draggable:!0,cursor:"move",drift:Xe(Y3,e,t,a,["n","s","w","e"]),ondragend:Xe(Qc,t,{isEnd:!0})})),j(n,function(i){a.add(new Ke({name:i.join(""),style:{opacity:0},draggable:!0,silent:!0,invisible:!0,drift:Xe(Y3,e,t,a,i),ondragend:Xe(Qc,t,{isEnd:!0})}))}),a}function P9(e,t,r,n){var a=n.brushStyle.lineWidth||0,i=Cd(a,Epe),o=r[0][0],s=r[1][0],l=o-a/2,u=s-a/2,c=r[0][1],h=r[1][1],d=c-i+a/2,v=h-i+a/2,g=c-o,m=h-s,y=g+a,x=m+a;Jo(e,t,"main",o,s,g,m),n.transformable&&(Jo(e,t,"w",l,u,i,x),Jo(e,t,"e",d,u,i,x),Jo(e,t,"n",l,u,y,i),Jo(e,t,"s",l,v,y,i),Jo(e,t,"nw",l,u,i,i),Jo(e,t,"ne",d,u,i,i),Jo(e,t,"sw",l,v,i,i),Jo(e,t,"se",d,v,i,i))}function zA(e,t){var r=t.__brushOption,n=r.transformable,a=t.childAt(0);a.useStyle(zI(r)),a.attr({silent:!n,cursor:n?"move":"default"}),j([["w"],["e"],["n"],["s"],["s","e"],["s","w"],["n","e"],["n","w"]],function(i){var o=t.childOfName(i.join("")),s=i.length===1?BA(e,i[0]):Fpe(e,i);o&&o.attr({silent:!n,invisible:!n,cursor:n?Rpe[s]+"-resize":null})})}function Jo(e,t,r,n,a,i,o){var s=t.childOfName(r);s&&s.setShape(Gpe(BI(e,t,[[n,a],[n+i,a+o]])))}function zI(e){return Le({strokeNoScale:!0},e.brushStyle)}function D9(e,t,r,n){var a=[dm(e,r),dm(t,n)],i=[Cd(e,r),Cd(t,n)];return[[a[0],i[0]],[a[1],i[1]]]}function Bpe(e){return yc(e.group)}function BA(e,t){var r={w:"left",e:"right",n:"top",s:"bottom"},n={left:"w",right:"e",top:"n",bottom:"s"},a=z1(r[t],Bpe(e));return n[a]}function Fpe(e,t){var r=[BA(e,t[0]),BA(e,t[1])];return(r[0]==="e"||r[0]==="w")&&r.reverse(),r.join("")}function Y3(e,t,r,n,a,i){var o=r.__brushOption,s=e.toRectRange(o.range),l=E9(t,a,i);j(n,function(u){var c=jpe[u];s[c[0]][c[1]]+=l[c[0]]}),o.range=e.fromRectRange(D9(s[0][0],s[1][0],s[0][1],s[1][1])),jI(t,r),Qc(t,{isEnd:!1})}function Vpe(e,t,r,n){var a=t.__brushOption.range,i=E9(e,r,n);j(a,function(o){o[0]+=i[0],o[1]+=i[1]}),jI(e,t),Qc(e,{isEnd:!1})}function E9(e,t,r){var n=e.group,a=n.transformCoordToLocal(t,r),i=n.transformCoordToLocal(0,0);return[a[0]-i[0],a[1]-i[1]]}function BI(e,t,r){var n=k9(e,t);return n&&n!==Jc?n.clipPath(r,e._transform):Te(r)}function Gpe(e){var t=dm(e[0][0],e[1][0]),r=dm(e[0][1],e[1][1]),n=Cd(e[0][0],e[1][0]),a=Cd(e[0][1],e[1][1]);return{x:t,y:r,width:n-t,height:a-r}}function Hpe(e,t,r){if(!(!e._brushType||Wpe(e,t.offsetX,t.offsetY))){var n=e._zr,a=e._covers,i=OI(e,t,r);if(!e._dragging)for(var o=0;on.getWidth()||r<0||r>n.getHeight()}var hw={lineX:K3(0),lineY:K3(1),rect:{createCover:function(e,t){function r(n){return n}return I9({toRectRange:r,fromRectRange:r},e,t,[["w"],["e"],["n"],["s"],["s","e"],["s","w"],["n","e"],["n","w"]])},getCreatingRange:function(e){var t=L9(e);return D9(t[1][0],t[1][1],t[0][0],t[0][1])},updateCoverShape:function(e,t,r,n){P9(e,t,r,n)},updateCommon:zA,contain:VA},polygon:{createCover:function(e,t){var r=new Ne;return r.add(new en({name:"main",style:zI(t),silent:!0})),r},getCreatingRange:function(e){return e},endCreating:function(e,t){t.remove(t.childAt(0)),t.add(new vn({name:"main",draggable:!0,drift:Xe(Vpe,e,t),ondragend:Xe(Qc,e,{isEnd:!0})}))},updateCoverShape:function(e,t,r,n){t.childAt(0).setShape({points:BI(e,t,r)})},updateCommon:zA,contain:VA}};function K3(e){return{createCover:function(t,r){return I9({toRectRange:function(n){var a=[n,[0,100]];return e&&a.reverse(),a},fromRectRange:function(n){return n[e]}},t,r,[[["w"],["e"]],[["n"],["s"]]][e])},getCreatingRange:function(t){var r=L9(t),n=dm(r[0][e],r[1][e]),a=Cd(r[0][e],r[1][e]);return[n,a]},updateCoverShape:function(t,r,n,a){var i,o=k9(t,r);if(o!==Jc&&o.getLinearBrushOtherExtent)i=o.getLinearBrushOtherExtent(e);else{var s=t._zr;i=[0,[s.getWidth(),s.getHeight()][1-e]]}var l=[n,i];e&&l.reverse(),P9(t,r,l,a)},updateCommon:zA,contain:VA}}function R9(e){return e=FI(e),function(t){return tL(t,e)}}function O9(e,t){return e=FI(e),function(r){var n=t??r,a=n?e.width:e.height,i=n?e.x:e.y;return[i,i+(a||0)]}}function z9(e,t,r){var n=FI(e);return function(a,i){return n.contain(i[0],i[1])&&!IW(a,t,r)}}function FI(e){return ke.create(e)}var Zpe=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.init=function(r,n){e.prototype.init.apply(this,arguments),(this._brushController=new EI(n.getZr())).on("brush",ve(this._onBrush,this))},t.prototype.render=function(r,n,a,i){if(!$pe(r,n,i)){this.axisModel=r,this.api=a,this.group.removeAll();var o=this._axisGroup;if(this._axisGroup=new Ne,this.group.add(this._axisGroup),!!r.get("show")){var s=Xpe(r,n),l=s.coordinateSystem,u=r.getAreaSelectStyle(),c=u.width,h=r.axis.dim,d=l.getAxisLayout(h),v=te({strokeContainThreshold:c},d),g=new Vn(r,a,v);g.build(),this._axisGroup.add(g.group),this._refreshBrushController(v,u,r,s,c,a),jm(o,this._axisGroup,r)}}},t.prototype._refreshBrushController=function(r,n,a,i,o,s){var l=a.axis.getExtent(),u=l[1]-l[0],c=Math.min(30,Math.abs(u)*.1),h=ke.create({x:l[0],y:-o/2,width:u,height:o});h.x-=c,h.width+=2*c,this._brushController.mount({enableGlobalPan:!0,rotation:r.rotation,x:r.position[0],y:r.position[1]}).setPanels([{panelId:"pl",clipPath:R9(h),isTargetByCursor:z9(h,s,i),getLinearBrushOtherExtent:O9(h,0)}]).enableBrush({brushType:"lineX",brushStyle:n,removeOnClick:!0}).updateCovers(Ype(a))},t.prototype._onBrush=function(r){var n=r.areas,a=this.axisModel,i=a.axis,o=oe(n,function(s){return[i.coordToData(s.range[0],!0),i.coordToData(s.range[1],!0)]});(!a.option.realtime===r.isEnd||r.removeOnClick)&&this.api.dispatchAction({type:"axisAreaSelect",parallelAxisId:a.id,intervals:o})},t.prototype.dispose=function(){this._brushController.dispose()},t.type="parallelAxis",t}(Rt);function $pe(e,t,r){return r&&r.type==="axisAreaSelect"&&t.findComponents({mainType:"parallelAxis",query:r})[0]===e}function Ype(e){var t=e.axis;return oe(e.activeIntervals,function(r){return{brushType:"lineX",panelId:"pl",range:[t.dataToCoord(r[0],!0),t.dataToCoord(r[1],!0)]}})}function Xpe(e,t){return t.getComponent("parallel",e.get("parallelIndex"))}var qpe={type:"axisAreaSelect",event:"axisAreaSelected"};function Kpe(e){e.registerAction(qpe,function(t,r){r.eachComponent({mainType:"parallelAxis",query:t},function(n){n.axis.model.setActiveIntervals(t.intervals)})}),e.registerAction("parallelAxisExpand",function(t,r){r.eachComponent({mainType:"parallel",query:t},function(n){n.setAxisExpand(t)})})}var Jpe={type:"value",areaSelectStyle:{width:20,borderWidth:1,borderColor:"rgba(160,197,232)",color:"rgba(160,197,232)",opacity:.3},realtime:!0,z:10};function B9(e){e.registerComponentView(wpe),e.registerComponentModel(Cpe),e.registerCoordinateSystem("parallel",Lpe),e.registerPreprocessor(ype),e.registerComponentModel(RA),e.registerComponentView(Zpe),wd(e,"parallel",RA,Jpe),Kpe(e)}function Qpe(e){$e(B9),e.registerChartView(cpe),e.registerSeriesModel(dpe),e.registerVisual(e.PRIORITY.VISUAL.BRUSH,mpe)}var Ps="sankey",ege=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.getInitialData=function(r,n){var a=r.edges||r.links||[],i=r.data||r.nodes||[],o=r.levels||[];this.levelModels=[];for(var s=this.levelModels,l=0;l=0&&(s[o[l].depth]=new tt(o[l],this,n));var u=NI(i,a,this,!0,c);return u.data;function c(h,d){h.wrapMethod("getItemModel",function(v,g){var m=v.parentModel,y=m.getData().getItemLayout(g);if(y){var x=y.depth,_=m.levelModels[x];_&&(v.parentModel=_)}return v}),d.wrapMethod("getItemModel",function(v,g){var m=v.parentModel,y=m.getGraph().getEdgeByIndex(g),x=y.node1.getLayout();if(x){var _=x.depth,w=m.levelModels[_];w&&(v.parentModel=w)}return v})}},t.prototype.setNodePosition=function(r,n){var a=this.option.data||this.option.nodes,i=a[r];i.localX=n[0],i.localY=n[1]},t.prototype.getGraph=function(){return this.getData().graph},t.prototype.getEdgeData=function(){return this.getGraph().edgeData},t.prototype.formatTooltip=function(r,n,a){function i(v){return isNaN(v)||v==null}if(a==="edge"){var o=this.getDataParams(r,a),s=o.data,l=o.value,u=s.source+" -- "+s.target;return Mr("nameValue",{name:u,value:l,noValue:i(l)})}else{var c=this.getGraph().getNodeByIndex(r),h=c.getLayout().value,d=this.getDataParams(r,a).data.name;return Mr("nameValue",{name:d!=null?d+"":null,value:h,noValue:i(h)})}},t.prototype.optionUpdated=function(){},t.prototype.getDataParams=function(r,n){var a=e.prototype.getDataParams.call(this,r,n);if(a.value==null&&n==="node"){var i=this.getGraph().getNodeByIndex(r),o=i.getLayout().value;a.value=o}return a},t.prototype.__ownRoamView=function(){return this.coordinateSystem},t.type="series."+Ps,t.layoutMode="box",t.defaultOption={z:2,coordinateSystemUsage:"box",left:"5%",top:"5%",right:"20%",bottom:"5%",orient:"horizontal",nodeWidth:20,nodeGap:8,draggable:!0,layoutIterations:32,roam:!1,roamTrigger:"global",center:null,zoom:1,label:{show:!0,position:"right",fontSize:12},edgeLabel:{show:!1,fontSize:12},levels:[],nodeAlign:"justify",lineStyle:{color:K.color.neutral50,opacity:.2,curveness:.5},emphasis:{label:{show:!0},lineStyle:{opacity:.5}},select:{itemStyle:{borderColor:K.color.primary}},animationEasing:"linear",animationDuration:1e3},t}(Pt),tge=function(){function e(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.cpx1=0,this.cpy1=0,this.cpx2=0,this.cpy2=0,this.extent=0}return e}(),rge=function(e){X(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new tge},t.prototype.buildPath=function(r,n){var a=n.extent;r.moveTo(n.x1,n.y1),r.bezierCurveTo(n.cpx1,n.cpy1,n.cpx2,n.cpy2,n.x2,n.y2),n.orient==="vertical"?(r.lineTo(n.x2+a,n.y2),r.bezierCurveTo(n.cpx2+a,n.cpy2,n.cpx1+a,n.cpy1,n.x1+a,n.y1)):(r.lineTo(n.x2,n.y2+a),r.bezierCurveTo(n.cpx2,n.cpy2+a,n.cpx1,n.cpy1+a,n.x1,n.y1+a)),r.closePath()},t.prototype.highlight=function(){As(this)},t.prototype.downplay=function(){Ns(this)},t}(rt),nge=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=Ps,r._mainGroup=new Ne,r}return t.prototype.init=function(r,n){this._controller=new xh(n.getZr()),this.group.add(this._mainGroup),this._firstRender=!0},t.prototype.render=function(r,n,a){var i=r.getGraph(),o=this._mainGroup,s=r.layoutInfo,l=s.width,u=s.height,c=r.getData(),h=r.getData("edge"),d=r.get("orient");o.removeAll(),o.x=s.x,o.y=s.y,this._updateViewCoordSys(r,a),lw(r,a,this._controller,UW(o),null),i.eachEdge(function(v){var g=new rge,m=Ee(g);m.dataIndex=v.dataIndex,m.seriesIndex=r.seriesIndex,m.dataType="edge";var y=v.getModel(),x=y.getModel("lineStyle"),_=x.get("curveness"),w=v.node1.getLayout(),S=v.node1.getModel(),C=S.get("localX"),M=S.get("localY"),A=v.node2.getLayout(),I=v.node2.getModel(),k=I.get("localX"),P=I.get("localY"),D=v.getLayout(),z,E,B,H,V,U,F,Z;g.shape.extent=Math.max(1,D.dy),g.shape.orient=d,d==="vertical"?(z=(C!=null?C*l:w.x)+D.sy,E=(M!=null?M*u:w.y)+w.dy,B=(k!=null?k*l:A.x)+D.ty,H=P!=null?P*u:A.y,V=z,U=E*(1-_)+H*_,F=B,Z=E*_+H*(1-_)):(z=(C!=null?C*l:w.x)+w.dx,E=(M!=null?M*u:w.y)+D.sy,B=k!=null?k*l:A.x,H=(P!=null?P*u:A.y)+D.ty,V=z*(1-_)+B*_,U=E,F=z*_+B*(1-_),Z=H),g.setShape({x1:z,y1:E,x2:B,y2:H,cpx1:V,cpy1:U,cpx2:F,cpy2:Z}),g.useStyle(x.getItemStyle()),J3(g.style,d,v);var $=""+y.get("value"),W=Dr(y,"edgeLabel");Hr(g,W,{labelFetcher:{getFormattedLabel:function(Q,se,ce,Ue,ye,me){return r.getFormattedLabel(Q,se,"edge",Ue,ia(ye,W.normal&&W.normal.get("formatter"),$),me)}},labelDataIndex:v.dataIndex,defaultText:$}),g.setTextConfig({position:"inside"});var q=y.getModel("emphasis");Pr(g,y,"lineStyle",function(Q){var se=Q.getItemStyle();return J3(se,d,v),se}),o.add(g),h.setItemGraphicEl(v.dataIndex,g);var re=q.get("focus");Yt(g,re==="adjacency"?v.getAdjacentDataIndices():re==="trajectory"?v.getTrajectoryDataIndices():re,q.get("blurScope"),q.get("disabled"))}),i.eachNode(function(v){var g=v.getLayout(),m=v.getModel(),y=m.get("localX"),x=m.get("localY"),_=m.getModel("emphasis"),w=m.get(["itemStyle","borderRadius"])||0,S=new Ke({shape:{x:y!=null?y*l:g.x,y:x!=null?x*u:g.y,width:g.dx,height:g.dy,r:w},style:m.getModel("itemStyle").getItemStyle(),z2:10});Hr(S,Dr(m),{labelFetcher:{getFormattedLabel:function(M,A){return r.getFormattedLabel(M,A,"node")}},labelDataIndex:v.dataIndex,defaultText:v.id}),S.disableLabelAnimation=!0,S.setStyle("fill",v.getVisual("color")),S.setStyle("decal",v.getVisual("style").decal),Pr(S,m),o.add(S),c.setItemGraphicEl(v.dataIndex,S),Ee(S).dataType="node";var C=_.get("focus");Yt(S,C==="adjacency"?v.getAdjacentDataIndices():C==="trajectory"?v.getTrajectoryDataIndices():C,_.get("blurScope"),_.get("disabled"))}),c.eachItemGraphicEl(function(v,g){var m=c.getItemModel(g);m.get("draggable")&&(v.drift=function(y,x){this.shape.x+=y,this.shape.y+=x,this.dirty(),a.dispatchAction({type:"dragNode",seriesId:r.id,dataIndex:c.getRawIndex(g),localX:this.shape.x/l,localY:this.shape.y/u})},v.draggable=!0,v.cursor="move")}),!this._data&&r.isAnimationEnabled()&&o.setClipPath(age(o.getBoundingRect(),r,function(){o.removeClipPath()})),this._data=r.getData(),this._firstRender=!1},t.prototype.__updateOnOwnRoam=function(r,n,a){Hl(this.group,Ro,n.coordinateSystem,null)},t.prototype.dispose=function(){this._controller&&this._controller.dispose()},t.prototype._updateViewCoordSys=function(r,n){var a=r.layoutInfo,i=r.coordinateSystem=bI(r,n,a.x,a.y,a.width,a.height);Hl(this.group,Ro,i,this._firstRender?null:r)},t.type=Ps,t}(At);function J3(e,t,r){switch(e.fill){case"source":e.fill=r.node1.getVisual("color"),e.decal=r.node1.getVisual("style").decal;break;case"target":e.fill=r.node2.getVisual("color"),e.decal=r.node2.getVisual("style").decal;break;case"gradient":var n=r.node1.getVisual("color"),a=r.node2.getVisual("color");ue(n)&&ue(a)&&(e.fill=new hh(0,0,+(t==="horizontal"),+(t==="vertical"),[{color:n,offset:0},{color:a,offset:1}]))}}function age(e,t,r){var n=new Ke({shape:{x:e.x-10,y:e.y-10,width:0,height:e.height+20}});return Ut(n,{shape:{width:e.width+20}},t,r),n}var ige=Er(Ps,oge);function oge(e,t){e.eachSeriesByType(Ps,function(r){var n=r.get("nodeWidth"),a=r.get("nodeGap"),i=jr(r,t).refContainer,o=Zt(r.getBoxLayoutParams(),i);r.layoutInfo=o;var s=o.width,l=o.height,u=r.getGraph(),c=u.nodes,h=u.edges;lge(c);var d=wt(c,function(y){return y.getLayout().value===0}),v=d.length!==0?0:r.get("layoutIterations"),g=r.get("orient"),m=r.get("nodeAlign");sge(c,h,n,a,s,l,v,g,m)})}function sge(e,t,r,n,a,i,o,s,l){uge(e,t,r,a,i,s,l),dge(e,t,i,a,n,o,s),wge(e,s)}function lge(e){j(e,function(t){var r=jl(t.outEdges,Lb),n=jl(t.inEdges,Lb),a=t.getValue()||0,i=Math.max(r,n,a);t.setLayout({value:i},!0)})}function uge(e,t,r,n,a,i,o){for(var s=[],l=[],u=[],c=[],h=0,d=0;d=0;x&&y.depth>v&&(v=y.depth),m.setLayout({depth:x?y.depth:h},!0),i==="vertical"?m.setLayout({dy:r},!0):m.setLayout({dx:r},!0);for(var _=0;_h-1?v:h-1;o&&o!=="left"&&cge(e,o,i,A);var I=i==="vertical"?(a-r)/A:(n-r)/A;fge(e,I,i)}function F9(e){var t=e.hostGraph.data.getRawDataItem(e.dataIndex);return t.depth!=null&&t.depth>=0}function cge(e,t,r,n){if(t==="right"){for(var a=[],i=e,o=0;i.length;){for(var s=0;s0;i--)l*=.99,gge(s,l,o),cT(s,a,r,n,o),bge(s,l,o),cT(s,a,r,n,o)}function vge(e,t){var r=[],n=t==="vertical"?"y":"x",a=SM(e,function(i){return i.getLayout()[n]});return qr(a.keys),j(a.keys,function(i){r.push(a.buckets.get(i))}),r}function pge(e,t,r,n,a,i){var o=1/0;j(e,function(s){var l=s.length,u=0;j(s,function(h){u+=h.getLayout().value});var c=i==="vertical"?(n-(l-1)*a)/u:(r-(l-1)*a)/u;c0&&(s=l.getLayout()[i]+u,a==="vertical"?l.setLayout({x:s},!0):l.setLayout({y:s},!0)),c=l.getLayout()[i]+l.getLayout()[d]+t;var g=a==="vertical"?n:r;if(u=c-t-g,u>0){s=l.getLayout()[i]-u,a==="vertical"?l.setLayout({x:s},!0):l.setLayout({y:s},!0),c=s;for(var v=h-2;v>=0;--v)l=o[v],u=l.getLayout()[i]+l.getLayout()[d]+t-c,u>0&&(s=l.getLayout()[i]-u,a==="vertical"?l.setLayout({x:s},!0):l.setLayout({y:s},!0)),c=l.getLayout()[i]}})}function gge(e,t,r){j(e.slice().reverse(),function(n){j(n,function(a){if(a.outEdges.length){var i=jl(a.outEdges,mge,r)/jl(a.outEdges,Lb);if(isNaN(i)){var o=a.outEdges.length;i=o?jl(a.outEdges,yge,r)/o:0}if(r==="vertical"){var s=a.getLayout().x+(i-Wl(a,r))*t;a.setLayout({x:s},!0)}else{var l=a.getLayout().y+(i-Wl(a,r))*t;a.setLayout({y:l},!0)}}})})}function mge(e,t){return Wl(e.node2,t)*e.getValue()}function yge(e,t){return Wl(e.node2,t)}function xge(e,t){return Wl(e.node1,t)*e.getValue()}function _ge(e,t){return Wl(e.node1,t)}function Wl(e,t){return t==="vertical"?e.getLayout().x+e.getLayout().dx/2:e.getLayout().y+e.getLayout().dy/2}function Lb(e){return e.getValue()}function jl(e,t,r){for(var n=0,a=e.length,i=-1;++io&&(o=l)}),j(n,function(s){var l=new Gr({type:"color",mappingMethod:"linear",dataExtent:[i,o],visual:t.get("color")}),u=l.mapValueToVisual(s.getLayout().value),c=s.getModel().get(["itemStyle","color"]);c!=null?(s.setVisual("color",c),s.setVisual("style",{fill:c})):(s.setVisual("color",u),s.setVisual("style",{fill:u}))})}a.length&&j(a,function(s){var l=s.getModel().get("lineStyle");s.setVisual("style",l)})})}function Tge(e){e.registerChartView(nge),e.registerSeriesModel(ege),e.registerLayout(ige),e.registerVisual(Sge),e.registerAction({type:"dragNode",event:"dragnode",update:"update"},function(t,r){r.eachComponent({mainType:Do,subType:Ps,query:t},function(n){n.setNodePosition(t.dataIndex,[t.localX,t.localY])})}),_I(e,Do,Ps)}var V9=function(){function e(){}return e.prototype._hasEncodeRule=function(t){var r=this.getEncode();return r&&r.get(t)!=null},e.prototype.getInitialData=function(t,r){var n,a=r.getComponent("xAxis",this.get("xAxisIndex")),i=r.getComponent("yAxis",this.get("yAxisIndex")),o=a.get("type"),s=i.get("type"),l,u=t.layout;o==="category"?(u="horizontal",n=a.getOrdinalMeta(),l=!this._hasEncodeRule("x")):s==="category"&&(u="vertical",n=i.getOrdinalMeta(),l=!this._hasEncodeRule("y")),u||(u=s==="time"?"vertical":"horizontal"),this._layout=u;var c=["x","y"],h=u==="horizontal"?0:1,d=this._baseAxisDim=c[h],v=c[1-h],g=[a,i],m=g[h].get("type"),y=g[1-h].get("type"),x=t.data;if(x&&l){var _=[];j(x,function(C,M){var A;ne(C)?(A=C.slice(),C.unshift(M)):ne(C.value)?(A=te({},C),A.value=A.value.slice(),C.value.unshift(M)):A=C,_.push(A)}),t.data=_}var w=this.defaultValueDimensions,S=[{name:d,type:ib(m),ordinalMeta:n,otherDims:{tooltip:!1,itemName:0},dimsDef:["base"]},{name:v,type:ib(y),dimsDef:w.slice()}];return iv(this,{coordDimensions:S,dimensionsCount:w.length+1,encodeDefaulter:Xe(g7,S,this)})},e.prototype.getBaseAxis=function(){var t=this._baseAxisDim;return this.ecModel.getComponent(t+"Axis",this.get(t+"AxisIndex")).axis},e.prototype.getWhiskerBoxesLayout=function(){return this._layout},e}();function Ib(e,t){for(var r=t.ends.length,n=0,a=0;am){var S=[x,w];n.push(S)}}}return{boxData:r,outliers:n}}var Oge={type:"echarts:boxplot",transform:function(t){var r=t.upstream;if(r.sourceFormat!==Qr){var n="";bt(n)}var a=Rge(r.getRawData(),t.config);return[{dimensions:["ItemName","Low","Q1","Q2","Q3","High"],data:a.boxData},{data:a.outliers}]}};function zge(e){e.registerSeriesModel(G9),e.registerChartView(Mge),e.registerLayout(Ige),e.registerTransform(Oge),jge(e)}var Zl="candlestick",U9=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.defaultValueDimensions=[{name:"open",defaultTooltip:!0},{name:"close",defaultTooltip:!0},{name:"lowest",defaultTooltip:!0},{name:"highest",defaultTooltip:!0}],r}return t.prototype.getShadowDim=function(){return"open"},t.prototype.brushSelector=function(r,n,a){var i=n.getItemLayout(r);return i&&a.rect(i.brushRect)},t.type="series."+Zl,t.dependencies=["xAxis","yAxis","grid"],t.defaultOption={z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,layout:null,clip:!0,itemStyle:{color:"#eb5454",color0:"#47b262",borderColor:"#eb5454",borderColor0:"#47b262",borderColorDoji:null,borderWidth:1},emphasis:{itemStyle:{borderWidth:2}},barMaxWidth:null,barMinWidth:null,barWidth:null,large:!0,largeThreshold:600,progressive:3e3,progressiveThreshold:1e4,progressiveChunkMode:"mod",animationEasing:"linear",animationDuration:300},t}(Pt);br(U9,V9,!0);var Bge=["itemStyle","borderColor"],Fge=["itemStyle","borderColor0"],Vge=["itemStyle","borderColorDoji"],Gge=["itemStyle","color"],Hge=["itemStyle","color0"];function VI(e,t){return t.get(e>0?Gge:Hge)}function GI(e,t){return t.get(e===0?Vge:e>0?Bge:Fge)}var Uge={seriesType:Zl,plan:ph(),performRawSeries:!0,reset:function(e,t){if(!t.isSeriesFiltered(e)){var r=e.pipelineContext.large;return!r&&{progress:function(n,a){for(var i;(i=n.next())!=null;){var o=a.getItemModel(i),s=a.getItemLayout(i).sign,l=o.getItemStyle();l.fill=VI(s,o),l.stroke=GI(s,o)||l.fill;var u=a.ensureUniqueItemVisual(i,"style");te(u,l)}}}}}},Wge=["color","borderColor"],Zge=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,a){this.group.removeClipPath(),this._progressiveEls=null,this._updateDrawMode(r),this._isLargeDraw?this._renderLarge(r):this._renderNormal(r)},t.prototype.incrementalPrepareRender=function(r,n,a){this._clear(),this._updateDrawMode(r)},t.prototype.incrementalRender=function(r,n,a,i){this._progressiveEls=[],this._isLargeDraw?this._incrementalRenderLarge(r,n):this._incrementalRenderNormal(r,n)},t.prototype.eachRendered=function(r){au(this._progressiveEls||this.group,r)},t.prototype._updateDrawMode=function(r){var n=r.pipelineContext.large;(this._isLargeDraw==null||n!==this._isLargeDraw)&&(this._isLargeDraw=n,this._clear())},t.prototype._renderNormal=function(r){var n=r.getData(),a=this._data,i=this.group,o=n.getLayout("isSimpleBox"),s=r.get("clip",!0),l=r.coordinateSystem,u=l.getArea&&l.getArea(),c=s&&Wc(l,!1,r);this._data||i.removeAll();var h=ez(r);n.diff(a).add(function(d){if(n.hasValue(d)){var v=n.getItemLayout(d),g=s?Ib(u,v):Qg;if(g===tm)return;var m=hT(v,d,h,!0);Ut(m,{shape:{points:v.ends}},r,d),Df(g===em,m,c),fT(m,n,d,o),i.add(m),n.setItemGraphicEl(d,m)}}).update(function(d,v){var g=a.getItemGraphicEl(v);if(!n.hasValue(d)){i.remove(g);return}var m=n.getItemLayout(d),y=s?Ib(u,m):Qg;if(y===tm){i.remove(g);return}g?(mt(g,{shape:{points:m.ends}},r,d),ii(g)):g=hT(m,d,h),fT(g,n,d,o),Df(y===em,g,c),i.add(g),n.setItemGraphicEl(d,g)}).remove(function(d){var v=a.getItemGraphicEl(d);v&&i.remove(v)}).execute(),this._data=n},t.prototype._renderLarge=function(r){this._clear(),tz(r,this.group);var n=r.get("clip",!0)?Wc(r.coordinateSystem,!1,r):null;Df(!!n,this.group,n)},t.prototype._incrementalRenderNormal=function(r,n){for(var a=n.getData(),i=a.getLayout("isSimpleBox"),o=ez(n),s;(s=r.next())!=null;){var l=a.getItemLayout(s),u=hT(l,s,o);fT(u,a,s,i),u.incremental=_o(n),this.group.add(u),this._progressiveEls.push(u)}},t.prototype._incrementalRenderLarge=function(r,n){tz(n,this.group,this._progressiveEls,!0)},t.prototype.remove=function(r){this._clear()},t.prototype._clear=function(){this.group.removeAll(),Df(!1,this.group,null),this._data=null},t.type=Zl,t}(At),$ge=function(){function e(){}return e}(),Yge=function(e){X(t,e);function t(r){var n=e.call(this,r)||this;return n.type="normalCandlestickBox",n}return t.prototype.getDefaultShape=function(){return new $ge},t.prototype.buildPath=function(r,n){var a=n.points;this.__simpleBox?(r.moveTo(a[4][0],a[4][1]),r.lineTo(a[6][0],a[6][1])):(r.moveTo(a[0][0],a[0][1]),r.lineTo(a[1][0],a[1][1]),r.lineTo(a[2][0],a[2][1]),r.lineTo(a[3][0],a[3][1]),r.closePath(),r.moveTo(a[4][0],a[4][1]),r.lineTo(a[5][0],a[5][1]),r.moveTo(a[6][0],a[6][1]),r.lineTo(a[7][0],a[7][1]))},t}(rt);function hT(e,t,r,n){var a=e.ends;return new Yge({shape:{points:n?Xge(a,r,e):a},z2:100})}function fT(e,t,r,n){var a=t.getItemModel(r);e.useStyle(t.getItemVisual(r,"style")),e.style.strokeNoScale=!0;var i=a.getShallow("cursor");i&&e.attr("cursor",i),e.__simpleBox=n,Pr(e,a);var o=t.getItemLayout(r).sign;j(e.states,function(l,u){var c=a.getModel(u),h=VI(o,c),d=GI(o,c)||h,v=l.style||(l.style={});h&&(v.fill=h),d&&(v.stroke=d)});var s=a.getModel("emphasis");Yt(e,s.get("focus"),s.get("blurScope"),s.get("disabled"))}function Xge(e,t,r){return oe(e,function(n){return n=n.slice(),n[t]=r.initBaseline,n})}function ez(e){return e.getWhiskerBoxesLayout()==="horizontal"?1:0}var qge=function(){function e(){}return e}(),dT=function(e){X(t,e);function t(r){var n=e.call(this,r)||this;return n.type="largeCandlestickBox",n}return t.prototype.getDefaultShape=function(){return new qge},t.prototype.buildPath=function(r,n){for(var a=n.points,i=0;iC?D[i]:P[i],ends:B,brushRect:Z(M,A,w)})}function U(W,q){var re=[];return re[a]=q,re[i]=W,isNaN(q)||isNaN(W)?[NaN,NaN]:t.dataToPoint(re)}function F(W,q,re){var Q=q.slice(),se=q.slice();Q[a]=Bx(Q[a]+n/2,1,!1),se[a]=Bx(se[a]-n/2,1,!0),re?W.push(Q,se):W.push(se,Q)}function Z(W,q,re){var Q=U(W,re),se=U(q,re);return Q[a]-=n/2,se[a]-=n/2,{x:Q[0],y:Q[1],width:i?n:se[0]-Q[0],height:i?se[1]-Q[1]:n}}function $(W){return W[a]=Bx(W[a],1),W}}function g(m,y){for(var x=co(m.count*4),_=0,w,S=[],C=[],M,A=y.getStore(),I=!!e.get(["itemStyle","borderColorDoji"]);(M=m.next())!=null;){var k=A.get(s,M),P=A.get(u,M),D=A.get(c,M),z=A.get(h,M),E=A.get(d,M);if(isNaN(k)||isNaN(z)||isNaN(E)){x[_++]=NaN,_+=3;continue}x[_++]=rz(A,M,P,D,c,I),S[a]=k,S[i]=z,w=t.dataToPoint(S,null,C),x[_++]=w?w[0]:NaN,x[_++]=w?w[1]:NaN,S[i]=E,w=t.dataToPoint(S,null,C),x[_++]=w?w[1]:NaN}y.setLayout("largePoints",x)}}};function rz(e,t,r,n,a,i){var o;return r>n?o=-1:r0?e.get(a,t-1)<=n?1:-1:1,o}function eme(e,t){var r=e.getBaseAxis(),n=pn(r,{fromStat:{key:bc(Zl)},min:1}).w,a=fe(_e(e.get("barMaxWidth"),n),n),i=fe(_e(e.get("barMinWidth"),1),n),o=e.get("barWidth");return o!=null?fe(o,n):qe(Mt(n/2,a),i)}function tme(e){Jge(e,function(){var t=bc(Zl);KL(e,{key:t,seriesType:Zl,getMetrics:hI}),J1(t,rw(t))})}function rme(e){e.registerChartView(Zge),e.registerSeriesModel(U9),e.registerPreprocessor(Kge),e.registerVisual(Uge),e.registerLayout(Qge),tme(e)}function nz(e,t){var r=t.rippleEffectColor||t.color;e.eachChild(function(n){n.attr({z:t.z,zlevel:t.zlevel,style:{stroke:t.brushType==="stroke"?r:null,fill:t.brushType==="fill"?r:null}})})}var nme=function(e){X(t,e);function t(r,n){var a=e.call(this)||this,i=new Hm(r,n),o=new Ne;return a.add(i),a.add(o),a.updateData(r,n),a}return t.prototype.stopEffectAnimation=function(){this.childAt(1).removeAll()},t.prototype.startEffectAnimation=function(r){for(var n=r.symbolType,a=r.color,i=r.rippleNumber,o=this.childAt(1),s=0;s0&&(s=this._getLineLength(i)/c*1e3),s!==this._period||l!==this._loop||u!==this._roundTrip){i.stopAnimation();var d=void 0;Me(h)?d=h(a):d=h,i.__t>0&&(d=-s*i.__t),this._animateSymbol(i,s,d,l,u)}this._period=s,this._loop=l,this._roundTrip=u}},t.prototype._animateSymbol=function(r,n,a,i,o){if(n>0){r.__t=0;var s=this,l=r.animate("",i).when(o?n*2:n,{__t:o?2:1}).delay(a).during(function(){s._updateSymbolPosition(r)});i||l.done(function(){s.remove(r)}),l.start()}},t.prototype._getLineLength=function(r){return os(r.__p1,r.__cp1)+os(r.__cp1,r.__p2)},t.prototype._updateAnimationPoints=function(r,n){r.__p1=n[0],r.__p2=n[1],r.__cp1=n[2]||[(n[0][0]+n[1][0])/2,(n[0][1]+n[1][1])/2]},t.prototype.updateData=function(r,n,a){this.childAt(0).updateData(r,n,a),this._updateEffectSymbol(r,n)},t.prototype._updateSymbolPosition=function(r){var n=r.__p1,a=r.__p2,i=r.__cp1,o=r.__t<=1?r.__t:2-r.__t,s=[r.x,r.y],l=s.slice(),u=Xr,c=lM;s[0]=u(n[0],i[0],a[0],o),s[1]=u(n[1],i[1],a[1],o);var h=r.__t<=1?c(n[0],i[0],a[0],o):c(a[0],i[0],n[0],1-o),d=r.__t<=1?c(n[1],i[1],a[1],o):c(a[1],i[1],n[1],1-o);r.rotation=-Math.atan2(d,h)-Math.PI/2,(this._symbolType==="line"||this._symbolType==="rect"||this._symbolType==="roundRect")&&(r.__lastT!==void 0&&r.__lastT=0&&!(i[l]<=n);l--);l=Math.min(l,o-2)}else{for(l=s;ln);l++);l=Math.min(l-1,o-2)}var c=(n-i[l])/(i[l+1]-i[l]),h=a[l],d=a[l+1];r.x=h[0]*(1-c)+c*d[0],r.y=h[1]*(1-c)+c*d[1];var v=r.__t<=1?d[0]-h[0]:h[0]-d[0],g=r.__t<=1?d[1]-h[1]:h[1]-d[1];r.rotation=-Math.atan2(g,v)-Math.PI/2,this._lastFrame=l,this._lastFramePercent=n,r.ignore=!1}},t}(W9),lme=function(){function e(){this.polyline=!1,this.curveness=0,this.segs=[]}return e}(),ume=function(e){X(t,e);function t(r){var n=e.call(this,r)||this;return n._off=0,n.hoverDataIdx=-1,n}return t.prototype.reset=function(){this.notClear=!1,this._off=0},t.prototype.beforeBrush=function(r){r&&!r.contentRetained&&this.reset()},t.prototype.getDefaultStyle=function(){return{stroke:K.color.neutral99,fill:null}},t.prototype.getDefaultShape=function(){return new lme},t.prototype.buildPath=function(r,n){var a=n.segs,i=n.curveness,o;if(n.polyline)for(o=this._off;o0){r.moveTo(a[o++],a[o++]);for(var l=1;l0){var v=(u+h)/2-(c-d)*i,g=(c+d)/2-(h-u)*i;r.quadraticCurveTo(v,g,h,d)}else r.lineTo(h,d)}this.incremental&&(this._off=o,this.notClear=!0)},t.prototype.findDataIndex=function(r,n){var a=this.shape,i=a.segs,o=a.curveness,s=this.style.lineWidth;if(a.polyline)for(var l=0,u=0;u0)for(var h=i[u++],d=i[u++],v=1;v0){var y=(h+g)/2-(d-m)*o,x=(d+m)/2-(g-h)*o;if(QG(h,d,y,x,g,m,s,r,n))return l}else if(al(h,d,g,m,s,r,n))return l;l++}return-1},t.prototype.contain=function(r,n){var a=this.transformCoordToLocal(r,n),i=this.getBoundingRect();if(r=a[0],n=a[1],i.contain(r,n)){var o=this.hoverDataIdx=this.findDataIndex(r,n);return o>=0}return this.hoverDataIdx=-1,!1},t.prototype.getBoundingRect=function(){var r=this._rect;if(!r){for(var n=this.shape,a=n.segs,i=1/0,o=1/0,s=-1/0,l=-1/0,u=0;u0&&(o.dataIndex=l+t.__startIndex)})},e.prototype._clear=function(){this._newAdded=[],this.group.removeAll()},e}(),$9={seriesType:"lines",plan:ph(),reset:function(e){var t=e.coordinateSystem;if(t){var r=e.get("polyline"),n=e.pipelineContext.large;return{progress:function(a,i){var o=[];if(n){var s=void 0,l=a.end-a.start;if(r){for(var u=0,c=a.start;c0&&c&&u.configLayer(s,{motionBlur:!0,lastFrameAlpha:Math.max(Math.min(l/10+.9,1),0)}),o.updateData(i);var h=r.get("clip",!0)&&Wc(r.coordinateSystem,!1,r);h?this.group.setClipPath(h):this.group.removeClipPath(),this._lastZlevel=s,this._finished=!0},t.prototype.incrementalPrepareRender=function(r,n,a){var i=r.getData(),o=this._updateLineDraw(i,r);o.incrementalPrepareUpdate(i),this._clearLayer(a),this._finished=!1},t.prototype.incrementalRender=function(r,n,a){this._lineDraw.incrementalUpdate(r,n.getData(),_o(n)),this._finished=r.end===n.getData().count()},t.prototype.eachRendered=function(r){this._lineDraw&&this._lineDraw.eachRendered(r)},t.prototype.updateTransform=function(r,n,a){var i=r.getData(),o=this._lineDraw;if(!this._finished||!o||!o.updateLayout)return{update:!0};var s=$9.reset(r,n,a);s.progress&&s.progress({start:0,end:i.count(),count:i.count()},i),o.updateLayout(),this._clearLayer(a)},t.prototype._updateLineDraw=function(r,n){var a=this._lineDraw,i=this._showEffect(n),o=!!n.get("polyline"),s=n.pipelineContext,l=s.large;return(!a||i!==this._hasEffet||o!==this._isPolyline||l!==this._isLargeDraw)&&(a&&a.remove(),a=this._lineDraw=l?new cme:new DI(o?i?sme:Z9:i?W9:PI),this._hasEffet=i,this._isPolyline=o,this._isLargeDraw=l),this.group.add(a.group),a},t.prototype._showEffect=function(r){return!!r.get(["effect","show"])},t.prototype._clearLayer=function(r){var n=zM(r);n&&this._lastZlevel!=null&&n.getLayer(this._lastZlevel).clear(!0)},t.prototype.remove=function(r,n){this._lineDraw&&this._lineDraw.remove(),this._lineDraw=null,this._clearLayer(n)},t.prototype.dispose=function(r,n){this.remove(r,n)},t.type="lines",t}(At),fme=typeof Uint32Array>"u"?Array:Uint32Array,dme=typeof Float64Array>"u"?Array:Float64Array;function iz(e){var t=e.data;t&&t[0]&&t[0][0]&&t[0][0].coord&&(e.data=oe(t,function(r){var n=[r[0].coord,r[1].coord],a={coords:n};return r[0].name&&(a.fromName=r[0].name),r[1].name&&(a.toName=r[1].name),x1([a,r[0],r[1]])}))}var vme=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.visualStyleAccessPath="lineStyle",r.visualDrawType="stroke",r}return t.prototype.init=function(r){r.data=r.data||[],iz(r);var n=this._processFlatCoordsArray(r.data);this._flatCoords=n.flatCoords,this._flatCoordsOffset=n.flatCoordsOffset,n.flatCoords&&(r.data=new Float32Array(n.count)),e.prototype.init.apply(this,arguments)},t.prototype.mergeOption=function(r){if(iz(r),r.data){var n=this._processFlatCoordsArray(r.data);this._flatCoords=n.flatCoords,this._flatCoordsOffset=n.flatCoordsOffset,n.flatCoords&&(r.data=new Float32Array(n.count))}e.prototype.mergeOption.apply(this,arguments)},t.prototype.appendData=function(r){var n=this._processFlatCoordsArray(r.data);n.flatCoords&&(this._flatCoords?(this._flatCoords=ld(this._flatCoords,n.flatCoords),this._flatCoordsOffset=ld(this._flatCoordsOffset,n.flatCoordsOffset)):(this._flatCoords=n.flatCoords,this._flatCoordsOffset=n.flatCoordsOffset),r.data=new Float32Array(n.count)),this.getRawData().appendData(r.data)},t.prototype._getCoordsFromItemModel=function(r){var n=this.getData().getItemModel(r),a=n.option instanceof Array?n.option:n.getShallow("coords");return a},t.prototype.getLineCoordsCount=function(r){return this._flatCoordsOffset?this._flatCoordsOffset[r*2+1]:this._getCoordsFromItemModel(r).length},t.prototype.getLineCoords=function(r,n){if(this._flatCoordsOffset){for(var a=this._flatCoordsOffset[r*2],i=this._flatCoordsOffset[r*2+1],o=0;o ")}return Mr("nameValue",{name:l,value:o,noValue:o==null||isNaN(o)})},t.prototype.preventIncremental=function(){return!!this.get(["effect","show"])},t.prototype.getProgressive=function(){var r=this.option.progressive;return r??(this.option.large?1e4:this.get("progressive"))},t.prototype.getProgressiveThreshold=function(){var r=this.option.progressiveThreshold;return r??(this.option.large?2e4:this.get("progressiveThreshold"))},t.prototype.getZLevelKey=function(){var r=this.getModel("effect"),n=r.get("trailLength");return this.getData().count()>this.getProgressiveThreshold()?this.id:r.get("show")&&n>0?n+"":""},t.type="series.lines",t.dependencies=["grid","polar","geo","calendar"],t.defaultOption={coordinateSystem:"geo",z:2,legendHoverLink:!0,xAxisIndex:0,yAxisIndex:0,symbol:["none","none"],symbolSize:[10,10],geoIndex:0,effect:{show:!1,period:4,constantSpeed:0,symbol:"circle",symbolSize:3,loop:!0,trailLength:.2},large:!1,largeThreshold:2e3,polyline:!1,clip:!0,label:{show:!1,position:"end"},lineStyle:{opacity:.5}},t}(Pt);function $0(e){return e instanceof Array||(e=[e,e]),e}var pme={seriesType:"lines",reset:function(e){var t=$0(e.get("symbol")),r=$0(e.get("symbolSize")),n=e.getData();n.setVisual("fromSymbol",t&&t[0]),n.setVisual("toSymbol",t&&t[1]),n.setVisual("fromSymbolSize",r&&r[0]),n.setVisual("toSymbolSize",r&&r[1]);function a(i,o){var s=i.getItemModel(o),l=$0(s.getShallow("symbol",!0)),u=$0(s.getShallow("symbolSize",!0));l[0]&&i.setItemVisual(o,"fromSymbol",l[0]),l[1]&&i.setItemVisual(o,"toSymbol",l[1]),u[0]&&i.setItemVisual(o,"fromSymbolSize",u[0]),u[1]&&i.setItemVisual(o,"toSymbolSize",u[1])}return{dataEach:n.hasItemOption?a:null}}};function gme(e){e.registerChartView(hme),e.registerSeriesModel(vme),e.registerLayout($9),e.registerVisual(pme)}var mme=256,yme=function(){function e(){this.blurSize=30,this.pointSize=20,this.maxOpacity=1,this.minOpacity=0,this._gradientPixels={inRange:null,outOfRange:null};var t=Vr.createCanvas();this.canvas=t}return e.prototype.update=function(t,r,n,a,i,o){var s=this._getBrush(),l=this._getGradient(i,"inRange"),u=this._getGradient(i,"outOfRange"),c=this.pointSize+this.blurSize,h=this.canvas,d=h.getContext("2d"),v=t.length;h.width=r,h.height=n;for(var g=0;g0){var z=o(w)?l:u;w>0&&(w=w*P+I),C[M++]=z[D],C[M++]=z[D+1],C[M++]=z[D+2],C[M++]=z[D+3]*w*256}else M+=4}return d.putImageData(S,0,0),h},e.prototype._getBrush=function(){var t=this._brushCanvas||(this._brushCanvas=Vr.createCanvas()),r=this.pointSize+this.blurSize,n=r*2;t.width=n,t.height=n;var a=t.getContext("2d");return a.clearRect(0,0,n,n),a.shadowOffsetX=n,a.shadowBlur=this.blurSize,a.shadowColor=K.color.neutral99,a.beginPath(),a.arc(-r,r,this.pointSize,0,Math.PI*2,!0),a.closePath(),a.fill(),t},e.prototype._getGradient=function(t,r){for(var n=this._gradientPixels,a=n[r]||(n[r]=new Uint8ClampedArray(256*4)),i=[0,0,0,0],o=0,s=0;s<256;s++)t[r](s/255,!0,i),a[o++]=i[0],a[o++]=i[1],a[o++]=i[2],a[o++]=i[3];return a},e}();function xme(e,t,r){var n=e[1]-e[0];t=oe(t,function(o){return{interval:[(o.interval[0]-e[0])/n,(o.interval[1]-e[0])/n]}});var a=t.length,i=0;return function(o){var s;for(s=i;s=0;s--){var l=t[s].interval;if(l[0]<=o&&o<=l[1]){i=s;break}}return s>=0&&s=t[0]&&n<=t[1]}}var bme=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,a){var i;n.eachComponent("visualMap",function(s){s.eachTargetSeries(function(l){l===r&&(i=s)})}),this._progressiveEls=null,this.group.removeAll();var o=r.coordinateSystem;o.type==="cartesian2d"||o.type==="calendar"||o.type==="matrix"?this._renderOnGridLike(r,a,0,r.getData().count()):o5(o)&&this._renderOnGeo(o,r,i,a)},t.prototype.incrementalPrepareRender=function(r,n,a){this.group.removeAll()},t.prototype.incrementalRender=function(r,n,a,i){var o=n.coordinateSystem;o&&(o5(o)?this.render(n,a,i):(this._progressiveEls=[],this._renderOnGridLike(n,i,r.start,r.end,!0)))},t.prototype.eachRendered=function(r){au(this._progressiveEls||this.group,r)},t.prototype._renderOnGridLike=function(r,n,a,i,o){var s=r.coordinateSystem,l=Zc(s,"cartesian2d"),u=Zc(s,"matrix"),c,h,d,v;if(l){var g=s.getAxis("x"),m=s.getAxis("y");c=pn(g).w+.5,h=pn(m).w+.5,d=g.scale.getExtent(),v=m.scale.getExtent()}for(var y=this.group,x=r.getData(),_=r.getModel(["emphasis","itemStyle"]).getItemStyle(),w=r.getModel(["blur","itemStyle"]).getItemStyle(),S=r.getModel(["select","itemStyle"]).getItemStyle(),C=r.get(["itemStyle","borderRadius"]),M=Dr(r),A=r.getModel("emphasis"),I=A.get("focus"),k=A.get("blurScope"),P=A.get("disabled"),D=l||u?[x.mapDimension("x"),x.mapDimension("y"),x.mapDimension("value")]:[x.mapDimension("time"),x.mapDimension("value")],z=a;zd[1]||Vv[1])continue;var U=s.dataToPoint([H,V]);E=new Ke({shape:{x:U[0]-c/2,y:U[1]-h/2,width:c,height:h},style:B})}else if(u){var F=s.dataToLayout([x.get(D[0],z),x.get(D[1],z)]).rect;if(un(F.x))continue;E=new Ke({z2:1,shape:F,style:B})}else{if(isNaN(x.get(D[1],z)))continue;var Z=s.dataToLayout([x.get(D[0],z)]),F=Z.contentRect||Z.rect;if(un(F.x)||un(F.y))continue;E=new Ke({z2:1,shape:F,style:B})}if(x.hasItemOption){var $=x.getItemModel(z),W=$.getModel("emphasis");_=W.getModel("itemStyle").getItemStyle(),w=$.getModel(["blur","itemStyle"]).getItemStyle(),S=$.getModel(["select","itemStyle"]).getItemStyle(),C=$.get(["itemStyle","borderRadius"]),I=W.get("focus"),k=W.get("blurScope"),P=W.get("disabled"),M=Dr($)}E.shape.r=C;var q=r.getRawValue(z),re="-";q&&q[2]!=null&&(re=q[2]+""),Hr(E,M,{labelFetcher:r,labelDataIndex:z,defaultOpacity:B.opacity,defaultText:re}),E.ensureState("emphasis").style=_,E.ensureState("blur").style=w,E.ensureState("select").style=S,Yt(E,I,k,P),E.incremental=_o(r,o),o&&(E.states.emphasis.hoverLayer=Zd),y.add(E),x.setItemGraphicEl(z,E),this._progressiveEls&&this._progressiveEls.push(E)}},t.prototype._renderOnGeo=function(r,n,a,i){var o=a.targetVisuals.inRange,s=a.targetVisuals.outOfRange,l=n.getData(),u=this._hmLayer||this._hmLayer||new yme;u.blurSize=n.get("blurSize"),u.pointSize=n.get("pointSize"),u.minOpacity=n.get("minOpacity"),u.maxOpacity=n.get("maxOpacity");var c=r.getViewRect().clone(),h=r.getRoamTransform();c.applyTransform(h);var d=Math.max(c.x,0),v=Math.max(c.y,0),g=Math.min(c.width+c.x,i.getWidth()),m=Math.min(c.height+c.y,i.getHeight()),y=g-d,x=m-v,_=[l.mapDimension("lng"),l.mapDimension("lat"),l.mapDimension("value")],w=l.mapArray(_,function(A,I,k){var P=r.dataToPoint([A,I]);return P[0]-=d,P[1]-=v,P.push(k),P}),S=a.getExtent(),C=a.type==="visualMap.continuous"?_me(S,a.option.range):xme(S,a.getPieceList(),a.option.selected);u.update(w,y,x,o.color.getNormalizer(),{inRange:o.color.getColorMapper(),outOfRange:s.color.getColorMapper()},C);var M=new Ur({style:{width:y,height:x,x:d,y:v,image:u.canvas},silent:!0});this.group.add(M)},t.type="heatmap",t}(At),wme=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.getInitialData=function(r,n){return Go(null,this,{generateCoord:"value"})},t.prototype.preventIncremental=function(){var r=qd.get(this.get("coordinateSystem"));if(r&&r.dimensions)return r.dimensions[0]==="lng"&&r.dimensions[1]==="lat"},t.type="series.heatmap",t.dependencies=["grid","geo","calendar","matrix"],t.defaultOption={coordinateSystem:"cartesian2d",z:2,geoIndex:0,blurSize:30,pointSize:20,maxOpacity:1,minOpacity:0,select:{itemStyle:{borderColor:K.color.primary}}},t}(Pt);function Sme(e){e.registerChartView(bme),e.registerSeriesModel(wme)}var Cme=["itemStyle","borderWidth"],oz=[{xy:"x",wh:"width",index:0,posDesc:["left","right"]},{xy:"y",wh:"height",index:1,posDesc:["top","bottom"]}],pT=new Vo,Tme=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=rm,r}return t.prototype.render=function(r,n,a){var i=this.group,o=r.getData(),s=this._data,l=r.coordinateSystem,u=l.getBaseAxis(),c=u.isHorizontal(),h=l.master.getRect(),d={ecSize:{width:a.getWidth(),height:a.getHeight()},seriesModel:r,coordSys:l,coordSysExtent:[[h.x,h.x+h.width],[h.y,h.y+h.height]],isHorizontal:c,valueDim:oz[+c],categoryDim:oz[1-+c]};o.diff(s).add(function(g){if(o.hasValue(g)){var m=lz(o,g),y=sz(o,g,m,d),x=uz(o,d,y);o.setItemGraphicEl(g,x),i.add(x),hz(x,d,y)}}).update(function(g,m){var y=s.getItemGraphicEl(m);if(!o.hasValue(g)){i.remove(y);return}var x=lz(o,g),_=sz(o,g,x,d),w=Q9(o,_);y&&w!==y.__pictorialShapeStr&&(i.remove(y),o.setItemGraphicEl(g,null),y=null),y?Pme(y,d,_):y=uz(o,d,_,!0),o.setItemGraphicEl(g,y),y.__pictorialSymbolMeta=_,i.add(y),hz(y,d,_)}).remove(function(g){var m=s.getItemGraphicEl(g);m&&cz(s,g,m.__pictorialSymbolMeta.animationModel,m)}).execute();var v=r.get("clip",!0)?Wc(r.coordinateSystem,!1,r):null;return v?i.setClipPath(v):i.removeClipPath(),this._data=o,this.group},t.prototype.remove=function(r,n){var a=this.group,i=this._data;r.get("animation")?i&&i.eachItemGraphicEl(function(o){cz(i,Ee(o).dataIndex,r,o)}):a.removeAll()},t.type=rm,t}(At);function sz(e,t,r,n){var a=e.getItemLayout(t),i=r.get("symbolRepeat"),o=r.get("symbolClip"),s=r.get("symbolPosition")||"start",l=r.get("symbolRotate"),u=(l||0)*Math.PI/180||0,c=r.get("symbolPatternSize")||2,h=r.isAnimationEnabled(),d={dataIndex:t,layout:a,itemModel:r,symbolType:e.getItemVisual(t,"symbol")||"circle",style:e.getItemVisual(t,"style"),symbolClip:o,symbolRepeat:i,symbolRepeatDirection:r.get("symbolRepeatDirection"),symbolPatternSize:c,rotation:u,animationModel:h?r:null,hoverScale:h&&r.get(["emphasis","scale"]),z2:r.getShallow("z",!0)||0};Mme(r,i,a,n,d),Ame(e,t,a,i,o,d.boundingLength,d.pxSign,c,n,d),Nme(r,d.symbolScale,u,n,d);var v=d.symbolSize,g=gh(r.get("symbolOffset"),v);return kme(r,v,a,i,o,g,s,d.valueLineWidth,d.boundingLength,d.repeatCutLength,n,d),d}function Mme(e,t,r,n,a){var i=n.valueDim,o=e.get("symbolBoundingData"),s=n.coordSys.getOtherAxis(n.coordSys.getBaseAxis()),l=s.toGlobalCoord(s.dataToCoord(0)),u=1-+(r[i.wh]<=0),c;if(ne(o)){var h=[gT(s,o[0])-l,gT(s,o[1])-l];h[1]=0?1:-1:c>0?1:-1}function gT(e,t){return e.toGlobalCoord(e.dataToCoord(e.scale.parse(t)))}function Ame(e,t,r,n,a,i,o,s,l,u){var c=l.valueDim,h=l.categoryDim,d=Math.abs(r[h.wh]),v=e.getItemVisual(t,"symbolSize"),g;ne(v)?g=v.slice():v==null?g=["100%","100%"]:g=[v,v],g[h.index]=fe(g[h.index],d),g[c.index]=fe(g[c.index],n?d:Math.abs(i)),u.symbolSize=g;var m=u.symbolScale=[g[0]/s,g[1]/s];m[c.index]*=(l.isHorizontal?-1:1)*o}function Nme(e,t,r,n,a){var i=e.get(Cme)||0;i&&(pT.attr({scaleX:t[0],scaleY:t[1],rotation:r}),pT.updateTransform(),i/=pT.getLineScale(),i*=t[n.valueDim.index]),a.valueLineWidth=i||0}function kme(e,t,r,n,a,i,o,s,l,u,c,h){var d=c.categoryDim,v=c.valueDim,g=h.pxSign,m=Math.max(t[v.index]+s,0),y=m;if(n){var x=Math.abs(l),_=Mn(e.get("symbolMargin"),"15%")+"",w=!1;_.lastIndexOf("!")===_.length-1&&(w=!0,_=_.slice(0,_.length-1));var S=fe(_,t[v.index]),C=Math.max(m+S*2,0),M=w?0:S*2,A=Rk(n),I=A?n:fz((x+M)/C),k=x-I*m;S=k/2/(w?I:Math.max(I-1,1)),C=m+S*2,M=w?0:S*2,!A&&n!=="fixed"&&(I=u?fz((Math.abs(u)+M)/C):0),y=I*C-M,h.repeatTimes=I,h.symbolMargin=S}var P=g*(y/2),D=h.pathPosition=[];D[d.index]=r[d.wh]/2,D[v.index]=o==="start"?P:o==="end"?l-P:l/2,i&&(D[0]+=i[0],D[1]+=i[1]);var z=h.bundlePosition=[];z[d.index]=r[d.xy],z[v.index]=r[v.xy];var E=h.barRectShape=te({},r);E[v.wh]=g*Math.max(Math.abs(r[v.wh]),Math.abs(D[v.index]+P)),E[d.wh]=r[d.wh];var B=h.clipShape={};B[d.xy]=-r[d.xy],B[d.wh]=c.ecSize[d.wh],B[v.xy]=0,B[v.wh]=r[v.wh]}function Y9(e){var t=e.symbolPatternSize,r=_r(e.symbolType,-t/2,-t/2,t,t);return r.attr({culling:!0}),r.type!=="image"&&r.setStyle({strokeNoScale:!0}),r}function X9(e,t,r,n){var a=e.__pictorialBundle,i=r.symbolSize,o=r.valueLineWidth,s=r.pathPosition,l=t.valueDim,u=r.repeatTimes||0,c=0,h=i[t.valueDim.index]+o+r.symbolMargin*2;for(HI(e,function(m){m.__pictorialAnimationIndex=c,m.__pictorialRepeatTimes=u,c0:x<0)&&(_=u-1-m),y[l.index]=h*(_-u/2+.5)+s[l.index],{x:y[0],y:y[1],scaleX:r.symbolScale[0],scaleY:r.symbolScale[1],rotation:r.rotation}}}function q9(e,t,r,n){var a=e.__pictorialBundle,i=e.__pictorialMainPath;i?Jf(i,null,{x:r.pathPosition[0],y:r.pathPosition[1],scaleX:r.symbolScale[0],scaleY:r.symbolScale[1],rotation:r.rotation},r,n):(i=e.__pictorialMainPath=Y9(r),a.add(i),Jf(i,{x:r.pathPosition[0],y:r.pathPosition[1],scaleX:0,scaleY:0,rotation:r.rotation},{scaleX:r.symbolScale[0],scaleY:r.symbolScale[1]},r,n))}function K9(e,t,r){var n=te({},t.barRectShape),a=e.__pictorialBarRect;a?Jf(a,null,{shape:n},t,r):(a=e.__pictorialBarRect=new Ke({z2:2,shape:n,silent:!0,style:{stroke:"transparent",fill:"transparent",lineWidth:0}}),a.disableMorphing=!0,e.add(a))}function J9(e,t,r,n){if(r.symbolClip){var a=e.__pictorialClipPath,i=te({},r.clipShape),o=t.valueDim,s=r.animationModel,l=r.dataIndex;if(a)mt(a,{shape:i},s,l);else{i[o.wh]=0,a=new Ke({shape:i}),e.__pictorialBundle.setClipPath(a),e.__pictorialClipPath=a;var u={};u[o.wh]=r.clipShape[o.wh],fh[n?"updateProps":"initProps"](a,{shape:u},s,l)}}}function lz(e,t){var r=e.getItemModel(t);return r.getAnimationDelayParams=Lme,r.isAnimationEnabled=Ime,r}function Lme(e){return{index:e.__pictorialAnimationIndex,count:e.__pictorialRepeatTimes}}function Ime(){return this.parentModel.isAnimationEnabled()&&!!this.getShallow("animation")}function uz(e,t,r,n){var a=new Ne,i=new Ne;return a.add(i),a.__pictorialBundle=i,i.x=r.bundlePosition[0],i.y=r.bundlePosition[1],r.symbolRepeat?X9(a,t,r):q9(a,t,r),K9(a,r,n),J9(a,t,r,n),a.__pictorialShapeStr=Q9(e,r),a.__pictorialSymbolMeta=r,a}function Pme(e,t,r){var n=r.animationModel,a=r.dataIndex,i=e.__pictorialBundle;mt(i,{x:r.bundlePosition[0],y:r.bundlePosition[1]},n,a),r.symbolRepeat?X9(e,t,r,!0):q9(e,t,r,!0),K9(e,r,!0),J9(e,t,r,!0)}function cz(e,t,r,n){var a=n.__pictorialBarRect;a&&a.removeTextContent();var i=[];HI(n,function(o){i.push(o)}),n.__pictorialMainPath&&i.push(n.__pictorialMainPath),n.__pictorialClipPath&&(r=null),j(i,function(o){Gl(o,{scaleX:0,scaleY:0},r,t,function(){n.parent&&n.parent.remove(n)})}),e.setItemGraphicEl(t,null)}function Q9(e,t){return[e.getItemVisual(t.dataIndex,"symbol")||"none",!!t.symbolRepeat,!!t.symbolClip].join(":")}function HI(e,t,r){j(e.__pictorialBundle.children(),function(n){n!==e.__pictorialBarRect&&t.call(r,n)})}function Jf(e,t,r,n,a,i){t&&e.attr(t),n.symbolClip&&!a?r&&e.attr(r):r&&fh[a?"updateProps":"initProps"](e,r,n.animationModel,n.dataIndex,i)}function hz(e,t,r){var n=r.dataIndex,a=r.itemModel,i=a.getModel("emphasis"),o=i.getModel("itemStyle").getItemStyle(),s=a.getModel(["blur","itemStyle"]).getItemStyle(),l=a.getModel(["select","itemStyle"]).getItemStyle(),u=a.getShallow("cursor"),c=i.get("focus"),h=i.get("blurScope"),d=i.get("scale");HI(e,function(m){if(m instanceof Ur){var y=m.style;m.useStyle(te({image:y.image,x:y.x,y:y.y,width:y.width,height:y.height},r.style))}else m.useStyle(r.style);var x=m.ensureState("emphasis");x.style=o,d&&(x.scaleX=m.scaleX*1.1,x.scaleY=m.scaleY*1.1),m.ensureState("blur").style=s,m.ensureState("select").style=l,u&&(m.cursor=u),m.z2=r.z2});var v=t.valueDim.posDesc[+(r.boundingLength>0)],g=e.__pictorialBarRect;g.ignoreClip=!0,Hr(g,Dr(a),{labelFetcher:t.seriesModel,labelDataIndex:n,defaultText:bd(t.seriesModel.getData(),n),inheritColor:r.style.fill,defaultOpacity:r.style.opacity,defaultOutsidePosition:v}),Yt(e,c,h,i.get("disabled"))}function fz(e){var t=Math.round(e);return Math.abs(e-t)<1e-4?t:Math.ceil(e)}var Dme=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.hasSymbolVisual=!0,r.defaultSymbol="roundRect",r}return t.prototype.getInitialData=function(r){return r.stack=null,e.prototype.getInitialData.apply(this,arguments)},t.type="series."+rm,t.dependencies=["grid"],t.defaultOption=iu(nm.defaultOption,{symbol:"circle",symbolSize:null,symbolRotate:null,symbolPosition:null,symbolOffset:null,symbolMargin:null,symbolRepeat:!1,symbolRepeatDirection:"end",symbolClip:!1,symbolBoundingData:null,symbolPatternSize:400,barGap:"-100%",clip:!1,progressive:0,emphasis:{scale:!1},select:{itemStyle:{borderColor:K.color.primary}}}),t}(nm);function Eme(e){e.registerChartView(Tme),e.registerSeriesModel(Dme),e.registerLayout(e.PRIORITY.VISUAL.LAYOUT,lW(rm)),e.registerLayout(e.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,uW(rm)),hW(e)}var mT=2,Td="themeRiver",jme=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.init=function(r){e.prototype.init.apply(this,arguments),this.legendVisualProvider=new ov(ve(this.getData,this),ve(this.getRawData,this))},t.prototype.fixData=function(r){var n=r.length,a={},i=SM(r,function(d){return a.hasOwnProperty(d[0]+"")||(a[d[0]+""]=-1),d[2]}),o=[];i.buckets.each(function(d,v){o.push({name:v,dataList:d})});for(var s=o.length,l=0;li&&(i=s),n.push(s)}for(var u=0;ui&&(i=h)}return{y0:a,max:i}}function Vme(e){e.registerChartView(Rme),e.registerSeriesModel(jme),e.registerLayout(zme),e.registerProcessor($m(Td))}var Gme=2,Hme=4,vz=function(e){X(t,e);function t(r,n,a,i){var o=e.call(this)||this;o.z2=Gme,o.textConfig={inside:!0},Ee(o).seriesIndex=n.seriesIndex;var s=new ht({z2:Hme,silent:r.getModel().get(["label","silent"])});return o.setTextContent(s),o.updateData(!0,r,n,a,i),o}return t.prototype.updateData=function(r,n,a,i,o){this.node=n,n.piece=this,a=a||this._seriesModel,i=i||this._ecModel;var s=this;Ee(s).dataIndex=n.dataIndex;var l=n.getModel(),u=l.getModel("emphasis"),c=n.getLayout(),h=te({},c);h.label=null;var d=n.getVisual("style");d.lineJoin="bevel";var v=n.getVisual("decal");v&&(d.decal=gd(v,o));var g=ho(l.getModel("itemStyle"),h,!0);te(h,g),j(Hn,function(_){var w=s.ensureState(_),S=l.getModel([_,"itemStyle"]);w.style=S.getItemStyle();var C=ho(S,h);C&&(w.shape=C)}),r?(s.setShape(h),s.shape.r=c.r0,Ut(s,{shape:{r:c.r}},a,n.dataIndex)):(mt(s,{shape:h},a),ii(s)),s.useStyle(d),this._updateLabel(a);var m=l.getShallow("cursor");m&&s.attr("cursor",m),this._seriesModel=a||this._seriesModel,this._ecModel=i||this._ecModel;var y=u.get("focus"),x=y==="relative"?ld(n.getAncestorsIndices(),n.getDescendantIndices()):y==="ancestor"?n.getAncestorsIndices():y==="descendant"?n.getDescendantIndices():y;Yt(this,x,u.get("blurScope"),u.get("disabled"))},t.prototype._updateLabel=function(r){var n=this,a=this.node.getModel(),i=a.getModel("label"),o=this.node.getLayout(),s=o.endAngle-o.startAngle,l=(o.startAngle+o.endAngle)/2,u=Math.cos(l),c=Math.sin(l),h=this,d=h.getTextContent(),v=this.node.dataIndex,g=i.get("minAngle")/180*Math.PI,m=i.get("show")&&!(g!=null&&Math.abs(s)B&&!Pc(V-B)&&V0?(o.virtualPiece?o.virtualPiece.updateData(!1,_,r,n,a):(o.virtualPiece=new vz(_,r,n,a),c.add(o.virtualPiece)),w.piece.off("click"),o.virtualPiece.on("click",function(S){o._rootToNode(w.parentNode)})):o.virtualPiece&&(c.remove(o.virtualPiece),o.virtualPiece=null)}},t.prototype._initEvents=function(){var r=this;this.group.off("click"),this.group.on("click",function(n){var a=!1,i=r.seriesModel.getViewRoot();i.eachNode(function(o){if(!a&&o.piece&&o.piece===n.target){var s=o.getModel().get("nodeClick");if(s==="rootToNode")r._rootToNode(o);else if(s==="link"){var l=o.getModel(),u=l.get("link");if(u){var c=l.get("target",!0)||"_blank";X_(u,c)}}a=!0}})})},t.prototype._rootToNode=function(r){r!==this.seriesModel.getViewRoot()&&this.api.dispatchAction({type:GA,from:this.uid,seriesId:this.seriesModel.id,targetNode:r})},t.prototype.containPoint=function(r,n){var a=n.getData(),i=a.getItemLayout(0);if(i){var o=r[0]-i.cx,s=r[1]-i.cy,l=Math.sqrt(o*o+s*s);return l<=i.r&&l>=i.r0}},t.type=eh,t}(At),Yme=Er(eh,Xme);function Xme(e){var t={};function r(n,a,i){if(n.depth===0)return K.color.neutral50;for(var o=n;o&&o.depth>1;)o=o.parentNode;var s=a.getColorFromPalette(o.name||o.dataIndex+"",t);return n.depth>1&&ue(s)&&(s=P_(s,(n.depth-1)/(i-1)*.5)),s}e.eachSeriesByType(eh,function(n){var a=n.getData(),i=a.tree;i.eachNode(function(o){var s=o.getModel(),l=s.getModel("itemStyle").getItemStyle();l.fill||(l.fill=r(o,n,i.root.height));var u=a.ensureUniqueItemVisual(o.dataIndex,"style");te(u,l)})})}var gz=Math.PI/180,qme=Er(eh,Kme);function Kme(e,t){e.eachSeriesByType(eh,function(r){var n=r.get("center"),a=r.get("radius");ne(a)||(a=[0,a]),ne(n)||(n=[n,n]);var i=t.getWidth(),o=t.getHeight(),s=Math.min(i,o),l=fe(n[0],i),u=fe(n[1],o),c=fe(a[0],s/2),h=fe(a[1],s/2),d=-r.get("startAngle")*gz,v=r.get("minAngle")*gz,g=r.getData().tree.root,m=r.getViewRoot(),y=m.depth,x=r.get("sort");x!=null&&tZ(m,x);var _=0;j(m.children,function(H){!isNaN(H.getValue())&&_++});var w=m.getValue(),S=Math.PI/(w||_)*2,C=m.depth>0,M=m.height-(C?-1:1),A=(h-c)/(M||1),I=r.get("clockwise"),k=r.get("stillShowZeroSum"),P=I?1:-1,D=function(H,V){if(H){var U=V;if(H!==g){var F=H.getValue(),Z=w===0&&k?S:F*S;Zn[1]&&n.reverse(),{coordSys:{type:"polar",cx:e.cx,cy:e.cy,r:n[1],r0:n[0]},api:{coord:function(a){var i=t.dataToRadius(a[0]),o=r.dataToAngle(a[1]),s=e.coordToPoint([i,o]);return s.push(i,o*Math.PI/180),s},size:ve(lye,e)}}}function cye(e){var t=e.getRect(),r=e.getRangeInfo();return{coordSys:{type:"calendar",x:t.x,y:t.y,width:t.width,height:t.height,cellWidth:e.getCellWidth(),cellHeight:e.getCellHeight(),rangeInfo:{start:r.start,end:r.end,weeks:r.weeks,dayCount:r.allDay}},api:{coord:function(n,a){return e.dataToPoint(n,a)},layout:function(n,a){return e.dataToLayout(n,a)}}}}function hye(e){var t=e.getRect();return{coordSys:{type:"matrix",x:t.x,y:t.y,width:t.width,height:t.height},api:{coord:function(r,n){return e.dataToPoint(r,n)},layout:function(r,n){return e.dataToLayout(r,n)}}}}var rZ={position:["x","y"],scale:["scaleX","scaleY"],origin:["originX","originY"]},yz=at(rZ);ti(Ts,function(e,t){return e[t]=1,e},{});Ts.join(", ");var Pb=["","style","shape","extra"],Md=Ze();function UI(e,t,r,n,a){var i=e+"Animation",o=Wd(e,n,a)||{},s=Md(t).userDuring;return o.duration>0&&(o.during=s?ve(gye,{el:t,userDuring:s}):null,o.setToFinal=!0,o.scope=e),te(o,r[i]),o}function qx(e,t,r,n){n=n||{};var a=n.dataIndex,i=n.isInit,o=n.clearStyle,s=r.isAnimationEnabled(),l=Md(e),u=t.style;l.userDuring=t.during;var c={},h={};if(yye(e,t,h),e.type==="compound")for(var d=e.shape.paths,v=t.shape.paths,g=0;g0&&e.animateFrom(y,x)}else dye(e,t,a||0,r,c);nZ(e,t),u?e.dirty():e.markRedraw()}function nZ(e,t){for(var r=Md(e).leaveToProps,n=0;n0&&e.animateFrom(a,i)}}function vye(e,t){ge(t,"silent")&&(e.silent=t.silent),ge(t,"ignore")&&(e.ignore=t.ignore),e instanceof ai&&ge(t,"invisible")&&(e.invisible=t.invisible),e instanceof rt&&ge(t,"autoBatch")&&(e.autoBatch=t.autoBatch)}var eo={},pye={setTransform:function(e,t){return eo.el[e]=t,this},getTransform:function(e){return eo.el[e]},setShape:function(e,t){var r=eo.el,n=r.shape||(r.shape={});return n[e]=t,r.dirtyShape&&r.dirtyShape(),this},getShape:function(e){var t=eo.el.shape;if(t)return t[e]},setStyle:function(e,t){var r=eo.el,n=r.style;return n&&(n[e]=t,r.dirtyStyle&&r.dirtyStyle()),this},getStyle:function(e){var t=eo.el.style;if(t)return t[e]},setExtra:function(e,t){var r=eo.el.extra||(eo.el.extra={});return r[e]=t,this},getExtra:function(e){var t=eo.el.extra;if(t)return t[e]}};function gye(){var e=this,t=e.el;if(t){var r=Md(t).userDuring,n=e.userDuring;if(r!==n){e.el=e.userDuring=null;return}eo.el=t,n(pye)}}function xz(e,t,r,n){var a=r[e];if(a){var i=t[e],o;if(i){var s=r.transition,l=a.transition;if(l)if(!o&&(o=n[e]={}),wc(l))te(o,i);else for(var u=jt(l),c=0;c=0){!o&&(o=n[e]={});for(var v=at(i),c=0;c=0)){var d=e.getAnimationStyleProps(),v=d?d.style:null;if(v){!i&&(i=n.style={});for(var g=at(r),u=0;u=0?t.getStore().get(F,V):void 0}var Z=t.get(U.name,V),$=U&&U.ordinalMeta;return $?$.categories[Z]:Z}function A(H,V){V==null&&(V=c);var U=t.getItemVisual(V,"style"),F=U&&U.fill,Z=U&&U.opacity,$=w(V,gl).getItemStyle();F!=null&&($.fill=F),Z!=null&&($.opacity=Z);var W={inheritColor:ue(F)?F:K.color.neutral99},q=S(V,gl),re=Et(q,null,W,!1,!0);re.text=q.getShallow("show")?_e(e.getFormattedLabel(V,gl),bd(t,V)):null;var Q=U_(q,W,!1);return P(H,$),$=l5($,re,Q),H&&k($,H),$.legacy=!0,$}function I(H,V){V==null&&(V=c);var U=w(V,ms).getItemStyle(),F=S(V,ms),Z=Et(F,null,null,!0,!0);Z.text=F.getShallow("show")?ia(e.getFormattedLabel(V,ms),e.getFormattedLabel(V,gl),bd(t,V)):null;var $=U_(F,null,!0);return P(H,U),U=l5(U,Z,$),H&&k(U,H),U.legacy=!0,U}function k(H,V){for(var U in V)ge(V,U)&&(H[U]=V[U])}function P(H,V){H&&(H.textFill&&(V.textFill=H.textFill),H.textPosition&&(V.textPosition=H.textPosition))}function D(H,V){if(V==null&&(V=c),ge(mz,H)){var U=t.getItemVisual(V,"style");return U?U[mz[H]]:null}if(ge(eye,H))return t.getItemVisual(V,H)}function z(H){if(o.type==="cartesian2d"){var V=o.getBaseAxis();return Nce(Le({axis:V},H))}}function E(){return r.getCurrentSeriesIndices()}function B(H){return iL(H,r)}}function kye(e){var t={};return j(e.dimensions,function(r){var n=e.getDimensionInfo(r);if(!n.isExtraCoord){var a=n.coordDim,i=t[a]=t[a]||[];i[n.coordDimIndex]=e.getDimensionIndex(r)}}),t}function bT(e,t,r,n,a,i,o){if(!n){i.remove(t);return}var s=XI(e,t,r,n,a,i);return s&&o.setItemGraphicEl(r,s),s&&Yt(s,n.focus,n.blurScope,n.emphasisDisabled),s}function XI(e,t,r,n,a,i){var o=-1,s=t;t&&sZ(t,n,a)&&(o=Ve(i.childrenRef(),t),t=null);var l=!t,u=t;u?u.clearStates():(u=$I(n),s&&Tye(s,u)),n.morph===!1?u.disableMorphing=!0:u.disableMorphing&&(u.disableMorphing=!1),n.tooltipDisabled&&(u.tooltipDisabled=!0),Ra.normal.cfg=Ra.normal.conOpt=Ra.emphasis.cfg=Ra.emphasis.conOpt=Ra.blur.cfg=Ra.blur.conOpt=Ra.select.cfg=Ra.select.conOpt=null,Ra.isLegacy=!1,Iye(u,r,n,a,l,Ra),Lye(u,r,n,a,l),YI(e,u,r,n,Ra,a,l),ge(n,"info")&&(gs(u).info=n.info);for(var c=0;c<$l.length;c++){var h=$l[c];if(h!==gl){var d=Eb(n,h),v=qI(n,d,h);oZ(h,u,d,v,Ra)}}return Aye(u,n,a),n.type==="group"&&Pye(e,u,r,n,a),o>=0?i.replaceAt(u,o):i.add(u),u}function sZ(e,t,r){var n=gs(e),a=t.type,i=t.shape,o=t.style;return r.isUniversalTransitionEnabled()||a!=null&&a!==n.customGraphicType||a==="path"&&Rye(i)&&lZ(i)!==n.customPathData||a==="image"&&ge(o,"image")&&o.image!==n.customImagePath}function Lye(e,t,r,n,a){var i=r.clipPath;if(i===!1)e&&e.getClipPath()&&e.removeClipPath();else if(i){var o=e.getClipPath();o&&sZ(o,i,n)&&(o=null),o||(o=$I(i),e.setClipPath(o)),YI(null,o,t,i,null,n,a)}}function Iye(e,t,r,n,a,i){if(!(e.isGroup||e.type==="compoundPath")){bz(r,null,i),bz(r,ms,i);var o=i.normal.conOpt,s=i.emphasis.conOpt,l=i.blur.conOpt,u=i.select.conOpt;if(o!=null||s!=null||u!=null||l!=null){var c=e.getTextContent();if(o===!1)c&&e.removeTextContent();else{o=i.normal.conOpt=o||{type:"text"},c?c.clearStates():(c=$I(o),e.setTextContent(c)),YI(null,c,t,o,null,n,a);for(var h=o&&o.style,d=0;d<$l.length;d++){var v=$l[d];if(v!==gl){var g=i[v].conOpt;oZ(v,c,g,qI(o,g,v),null)}}h?c.dirty():c.markRedraw()}}}}function bz(e,t,r){var n=t?Eb(e,t):e,a=t?qI(e,n,ms):e.style,i=e.type,o=n?n.textConfig:null,s=e.textContent,l=s?t?Eb(s,t):s:null;if(a&&(r.isLegacy||H8(a,i,!!o,!!l))){r.isLegacy=!0;var u=U8(a,i,!t);!o&&u.textConfig&&(o=u.textConfig),!l&&u.textContent&&(l=u.textContent)}if(!t&&l){var c=l;!c.type&&(c.type="text")}var h=t?r[t]:r.normal;h.cfg=o,h.conOpt=l}function Eb(e,t){return t?e?e[t]:null:e}function qI(e,t,r){var n=t&&t.style;return n==null&&r===ms&&e&&(n=e.styleEmphasis),n}function Pye(e,t,r,n,a){var i=n.children,o=i?i.length:0,s=n.$mergeChildren,l=s==="byName"||n.diffChildrenByName,u=s===!1;if(!(!o&&!l&&!u)){if(l){Eye({api:e,oldChildren:t.children()||[],newChildren:i||[],dataIndex:r,seriesModel:a,group:t});return}u&&t.removeAll();for(var c=0;c=c;v--){var g=t.childAt(v);Dye(t,g,a)}}}function Dye(e,t,r){t&&fw(t,gs(e).option,r)}function Eye(e){new ks(e.oldChildren,e.newChildren,wz,wz,e).add(Sz).update(Sz).remove(jye).execute()}function wz(e,t){var r=e&&e.name;return r??Sye+t}function Sz(e,t){var r=this.context,n=e!=null?r.newChildren[e]:null,a=t!=null?r.oldChildren[t]:null;XI(r.api,a,r.dataIndex,n,r.seriesModel,r.group)}function jye(e){var t=this.context,r=t.oldChildren[e];r&&fw(r,gs(r).option,t.seriesModel)}function lZ(e){return e&&(e.pathData||e.d)}function Rye(e){return e&&(ge(e,"pathData")||ge(e,"d"))}function Oye(e){e.registerChartView(Mye),e.registerSeriesModel(tye)}var tc=Ze(),Cz=Te,wT=ve,KI=function(){function e(){this._dragging=!1,this.animationThreshold=15}return e.prototype.render=function(t,r,n,a){var i=r.get("value"),o=r.get("status");if(this._axisModel=t,this._axisPointerModel=r,this._api=n,!(!a&&this._lastValue===i&&this._lastStatus===o)){this._lastValue=i,this._lastStatus=o;var s=this._group,l=this._handle;if(!o||o==="hide"){s&&s.hide(),l&&l.hide();return}s&&s.show(),l&&l.show();var u={};this.makeElOption(u,i,t,r,n);var c=u.graphicKey;c!==this._lastGraphicKey&&this.clear(n),this._lastGraphicKey=c;var h=this._moveAnimation=this.determineAnimation(t,r);if(!s)s=this._group=new Ne,this.createPointerEl(s,u,t,r),this.createLabelEl(s,u,t,r),n.getZr().add(s);else{var d=Xe(Tz,r,h);this.updatePointerEl(s,u,d),this.updateLabelEl(s,u,d,r)}Az(s,r,!0),this._renderHandle(i)}},e.prototype.remove=function(t){this.clear(t)},e.prototype.dispose=function(t){this.clear(t)},e.prototype.determineAnimation=function(t,r){var n=r.get("animation"),a=t.axis,i=a.type==="category",o=r.get("snap");if(!o&&!i)return!1;if(n==="auto"||n==null){var s=this.animationThreshold;if(i&&pn(a).w>s)return!0;if(o){var l=dI(t).seriesDataCount,u=a.getExtent();return Math.abs(u[0]-u[1])/l>s}return!1}return n===!0},e.prototype.makeElOption=function(t,r,n,a,i){},e.prototype.createPointerEl=function(t,r,n,a){var i=r.pointer;if(i){var o=tc(t).pointerEl=new fh[i.type](Cz(r.pointer));t.add(o)}},e.prototype.createLabelEl=function(t,r,n,a){if(r.label){var i=tc(t).labelEl=new ht(Cz(r.label));t.add(i),Mz(i,a)}},e.prototype.updatePointerEl=function(t,r,n){var a=tc(t).pointerEl;a&&r.pointer&&(a.setStyle(r.pointer.style),n(a,{shape:r.pointer.shape}))},e.prototype.updateLabelEl=function(t,r,n,a){var i=tc(t).labelEl;i&&(i.setStyle(r.label.style),n(i,{x:r.label.x,y:r.label.y}),Mz(i,a))},e.prototype._renderHandle=function(t){if(!(this._dragging||!this.updateHandleTransform)){var r=this._axisPointerModel,n=this._api.getZr(),a=this._handle,i=r.getModel("handle"),o=r.get("status");if(!i.get("show")||!o||o==="hide"){a&&n.remove(a),this._handle=null;return}var s;this._handle||(s=!0,a=this._handle=$d(i.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(u){Cs(u.event)},onmousedown:wT(this._onHandleDragMove,this,0,0),drift:wT(this._onHandleDragMove,this),ondragend:wT(this._onHandleDragEnd,this)}),n.add(a)),Az(a,r,!1),a.setStyle(i.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var l=i.get("size");ne(l)||(l=[l,l]),a.scaleX=l[0]/2,a.scaleY=l[1]/2,Kd(this,"_doDispatchAxisPointer",i.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,s)}},e.prototype._moveHandleToValue=function(t,r){Tz(this._axisPointerModel,!r&&this._moveAnimation,this._handle,ST(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},e.prototype._onHandleDragMove=function(t,r){var n=this._handle;if(n){this._dragging=!0;var a=this.updateHandleTransform(ST(n),[t,r],this._axisModel,this._axisPointerModel);this._payloadInfo=a,n.stopAnimation(),n.attr(ST(a)),tc(n).lastProp=null,this._doDispatchAxisPointer()}},e.prototype._doDispatchAxisPointer=function(){var t=this._handle;if(t){var r=this._payloadInfo,n=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:r.cursorPoint[0],y:r.cursorPoint[1],tooltipOption:r.tooltipOption,axesInfo:[{axisDim:n.axis.dim,axisIndex:n.componentIndex}]})}},e.prototype._onHandleDragEnd=function(){this._dragging=!1;var t=this._handle;if(t){var r=this._axisPointerModel.get("value");this._moveHandleToValue(r),this._api.dispatchAction({type:"hideTip"})}},e.prototype.clear=function(t){this._lastValue=null,this._lastStatus=null;var r=t.getZr(),n=this._group,a=this._handle;r&&n&&(this._lastGraphicKey=null,n&&r.remove(n),a&&r.remove(a),this._group=null,this._handle=null,this._payloadInfo=null),Ug(this,"_doDispatchAxisPointer")},e.prototype.doClear=function(){},e.prototype.buildLabel=function(t,r,n){return n=n||0,{x:t[n],y:t[1-n],width:r[n],height:r[1-n]}},e}();function Tz(e,t,r,n){uZ(tc(r).lastProp,n)||(tc(r).lastProp=n,t?mt(r,n,e):(r.stopAnimation(),r.attr(n)))}function uZ(e,t){if(Ie(e)&&Ie(t)){var r=!0;return j(t,function(n,a){r=r&&uZ(e[a],n)}),!!r}else return e===t}function Mz(e,t){e[t.get(["label","show"])?"show":"hide"]()}function ST(e){return{x:e.x||0,y:e.y||0,rotation:e.rotation||0}}function Az(e,t,r){var n=t.get("z"),a=t.get("zlevel");e&&e.traverse(function(i){i.type!=="group"&&(n!=null&&(i.z=n),a!=null&&(i.zlevel=a),i.silent=r)})}function JI(e){var t=e.get("type"),r=e.getModel(t+"Style"),n;return t==="line"?(n=r.getLineStyle(),n.fill=null):t==="shadow"&&(n=r.getAreaStyle(),n.stroke=null),n}function cZ(e,t,r,n,a){var i=r.get("value"),o=hZ(i,t.axis,t.ecModel,r.get("seriesDataIndices"),{precision:r.get(["label","precision"]),formatter:r.get(["label","formatter"])}),s=r.getModel("label"),l=Xd(s.get("padding")||0),u=s.getFont(),c=C1(o,u),h=a.position,d=c.width+l[1]+l[3],v=c.height+l[0]+l[2],g=a.align;g==="right"&&(h[0]-=d),g==="center"&&(h[0]-=d/2);var m=a.verticalAlign;m==="bottom"&&(h[1]-=v),m==="middle"&&(h[1]-=v/2),zye(h,d,v,n);var y=s.get("backgroundColor");(!y||y==="auto")&&(y=t.get(["axisLine","lineStyle","color"])),e.label={x:h[0],y:h[1],style:Et(s,{text:o,font:u,fill:s.getTextColor(),padding:l,backgroundColor:y}),z2:10}}function zye(e,t,r,n){var a=n.getWidth(),i=n.getHeight();e[0]=Math.min(e[0]+t,a)-t,e[1]=Math.min(e[1]+r,i)-r,e[0]=Math.max(e[0],0),e[1]=Math.max(e[1],0)}function hZ(e,t,r,n,a){e=t.scale.parse(e);var i=t.scale.getLabel({value:e},{precision:a.precision}),o=a.formatter;if(o){var s={value:lb(t,{value:e}),axisDimension:t.dim,axisIndex:t.index,seriesData:[]};j(n,function(l){var u=r.getSeriesByIndex(l.seriesIndex),c=l.dataIndexInside,h=u&&u.getDataParams(c);h&&s.seriesData.push(h)}),ue(o)?i=o.replace("{value}",i):Me(o)&&(i=o(s))}return i}function QI(e,t,r){var n=$t();return js(n,n,r.rotation),Pi(n,n,r.position),ki([e.dataToCoord(t),(r.labelOffset||0)+(r.labelDirection||1)*(r.labelMargin||0)],n)}function fZ(e,t,r,n,a,i){var o=Vn.innerTextLayout(r.rotation,0,r.labelDirection);r.labelMargin=a.get(["label","margin"]),cZ(t,n,a,i,{position:QI(n.axis,e,r),align:o.textAlign,verticalAlign:o.textVerticalAlign})}function eP(e,t,r){return r=r||0,{x1:e[r],y1:e[1-r],x2:t[r],y2:t[1-r]}}function dZ(e,t,r){return r=r||0,{x:e[r],y:e[1-r],width:t[r],height:t[1-r]}}function Nz(e,t,r,n,a,i){return{cx:e,cy:t,r0:r,r:n,startAngle:a,endAngle:i,clockwise:!0}}function tP(e,t,r){return pn(e,{fromStat:{sers:oe(t,function(n){return r.getSeriesByIndex(n.seriesIndex)})},min:1}).w}function rP(e,t,r){return[qe(Mt(t[0],t[1]),e-r/2),Mt(e+r/2,qe(t[0],t[1]))]}var Bye=function(e){X(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.makeElOption=function(r,n,a,i,o){var s=a.axis,l=s.grid,u=i.get("type"),c=s.getGlobalExtent(),h=kz(l,s).getOtherAxis(s).getGlobalExtent(),d=s.toGlobalCoord(s.dataToCoord(n,!0));if(u&&u!=="none"){var v=JI(i),g=Fye[u](s,d,c,h,i.get("seriesDataIndices"),i.ecModel);g.style=v,r.graphicKey=g.type,r.pointer=g}var m=mb(l.getRect(),a);fZ(n,r,m,a,i,o)},t.prototype.getHandleTransform=function(r,n,a){var i=mb(n.axis.grid.getRect(),n,{labelInside:!1});i.labelMargin=a.get(["handle","margin"]);var o=QI(n.axis,r,i);return{x:o[0],y:o[1],rotation:i.rotation+(i.labelDirection<0?Math.PI:0)}},t.prototype.updateHandleTransform=function(r,n,a,i){var o=a.axis,s=o.grid,l=o.getGlobalExtent(!0),u=kz(s,o).getOtherAxis(o).getGlobalExtent(),c=o.dim==="x"?0:1,h=[r.x,r.y];h[c]+=n[c],h[c]=Mt(l[1],h[c]),h[c]=qe(l[0],h[c]);var d=(u[1]+u[0])/2,v=[d,d];v[c]=h[c];var g=[{verticalAlign:"middle"},{align:"center"}];return{x:h[0],y:h[1],rotation:r.rotation,cursorPoint:v,tooltipOption:g[c]}},t}(KI);function kz(e,t){var r={};return r[t.dim+"AxisIndex"]=t.index,e.getCartesian(r)}var Fye={line:function(e,t,r,n){var a=eP([t,n[0]],[t,n[1]],Lz(e));return{type:"Line",subPixelOptimize:!0,shape:a}},shadow:function(e,t,r,n,a,i){var o=tP(e,a,i),s=n[1]-n[0],l=rP(t,r,o),u=l[0],c=l[1];return{type:"Rect",shape:dZ([u,n[0]],[c-u,s],Lz(e))}}};function Lz(e){return e.dim==="x"?0:1}var Vye=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type="axisPointer",t.defaultOption={show:"auto",z:50,type:"line",snap:!1,triggerTooltip:!0,triggerEmphasis:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:K.color.border,width:1,type:"dashed"},shadowStyle:{color:K.color.shadowTint},label:{show:!0,formatter:null,precision:"auto",margin:3,color:K.color.neutral00,padding:[5,7,5,7],backgroundColor:K.color.accent60,borderColor:null,borderWidth:0,borderRadius:3},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:K.color.accent40,throttle:40}},t}(Qe),us=Ze(),Gye=j;function vZ(e,t,r){if(!ot.node){var n=t.getZr();us(n).records||(us(n).records={}),Hye(n,t);var a=us(n).records[e]||(us(n).records[e]={});a.handler=r}}function Hye(e,t){if(us(e).initialized)return;us(e).initialized=!0,r("click",Xe(CT,"click")),r("mousemove",Xe(CT,"mousemove")),r("mousewheel",Xe(CT,"mousewheel")),r("globalout",Wye);function r(n,a){e.on(n,function(i){var o=Zye(t);Gye(us(e).records,function(s){s&&a(s,i,o.dispatchAction)}),Uye(o.pendings,t)})}}function Uye(e,t){var r=e.showTip.length,n=e.hideTip.length,a;r?a=e.showTip[r-1]:n&&(a=e.hideTip[n-1]),a&&(a.dispatchAction=null,t.dispatchAction(a))}function Wye(e,t,r){e.handler("leave",null,r)}function CT(e,t,r,n){t.handler(e,r,n)}function Zye(e){var t={showTip:[],hideTip:[]},r=function(n){var a=t[n.type];a?a.push(n):(n.dispatchAction=r,e.dispatchAction(n))};return{dispatchAction:r,pendings:t}}function WA(e,t){if(!ot.node){var r=t.getZr(),n=(us(r).records||{})[e];n&&(us(r).records[e]=null)}}var $ye=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,a){var i=n.getComponent("tooltip"),o=r.get("triggerOn")||i&&i.get("triggerOn")||"mousemove|click|mousewheel";vZ("axisPointer",a,function(s,l,u){o!=="none"&&(s==="leave"||o.indexOf(s)>=0)&&u({type:"updateAxisPointer",currTrigger:s,x:l&&l.offsetX,y:l&&l.offsetY})})},t.prototype.remove=function(r,n){WA("axisPointer",n)},t.prototype.dispose=function(r,n){WA("axisPointer",n)},t.type="axisPointer",t}(Rt);function pZ(e,t){var r=[],n=e.seriesIndex,a;if(n==null||!(a=t.getSeriesByIndex(n)))return{point:[]};var i=a.getData(),o=Ec(i,e);if(o==null||o<0||ne(o))return{point:[]};var s=i.getItemGraphicEl(o),l=a.coordinateSystem;if(a.getTooltipPosition)r=a.getTooltipPosition(o)||[];else if(l&&l.dataToPoint)if(e.isStacked){var u=l.getBaseAxis(),c=l.getOtherAxis(u),h=c.dim,d=u.dim,v=h==="x"||h==="radius"?1:0,g=i.mapDimension(d),m=[];m[v]=i.get(g,o),m[1-v]=i.get(i.getCalculationInfo("stackResultDimension"),o),r=l.dataToPoint(m)||[]}else r=l.dataToPoint(i.getValues(oe(l.dimensions,function(x){return i.mapDimension(x)}),o))||[];else if(s){var y=s.getBoundingRect().clone();y.applyTransform(s.transform),r=[y.x+y.width/2,y.y+y.height/2]}return{point:r,el:s}}var Iz=Ze();function Yye(e,t,r){var n=e.currTrigger,a=[e.x,e.y],i=e,o=e.dispatchAction||ve(r.dispatchAction,r),s=t.getComponent("axisPointer").coordSysAxesInfo;if(s){Kx(a)&&(a=pZ({seriesIndex:i.seriesIndex,dataIndex:i.dataIndex},t).point);var l=Kx(a),u=i.axesInfo,c=s.axesInfo,h=n==="leave"||Kx(a),d={},v={},g={list:[],map:{}},m={showPointer:Xe(qye,v),showTooltip:Xe(Kye,g)};j(s.coordSysMap,function(x,_){var w=l||x.containPoint(a);j(s.coordSysAxesInfo[_],function(S,C){var M=S.axis,A=t0e(u,S);if(!h&&w&&(!u||A)){var I=A&&A.value;I==null&&!l&&(I=M.pointToData(a)),I!=null&&Pz(S,I,m,!1,d)}})});var y={};return j(c,function(x,_){var w=x.linkGroup;w&&!v[_]&&j(w.axesInfo,function(S,C){var M=v[C];if(S!==x&&M){var A=M.value;w.mapper&&(A=x.axis.scale.parse(w.mapper(A,Dz(S),Dz(x)))),y[x.key]=A}})}),j(y,function(x,_){Pz(c[_],x,m,!0,d)}),Jye(v,c,d),Qye(g,a,e,o),e0e(c,o,r),d}}function Pz(e,t,r,n,a){var i=e.axis;if(!(i.scale.isBlank()||!i.containData(t))){if(!e.involveSeries){r.showPointer(e,t);return}var o=Xye(t,e),s=o.payloadBatch,l=o.snapToValue;s[0]&&a.seriesIndex==null&&te(a,s[0]),!n&&e.snap&&i.containData(l)&&l!=null&&(t=l),r.showPointer(e,t,s),r.showTooltip(e,o,l)}}function Xye(e,t){var r=t.axis,n=r.dim,a=e,i=[],o=Number.MAX_VALUE,s=-1;return j(t.seriesModels,function(l,u){var c=l.getData().mapDimensionsAll(n),h,d;if(l.getAxisTooltipData){var v=l.getAxisTooltipData(c,e,r);d=v.dataIndices,h=v.nestestValue}else{if(d=l.indicesOfNearest(n,c[0],e,r.type==="category"?.5:null),!d.length)return;h=l.getData().get(c[0],d[0])}if(ni(h)){var g=e-h,m=Math.abs(g);m<=o&&((m=0&&s<0)&&(o=m,s=g,a=h,i.length=0),j(d,function(y){i.push({seriesIndex:l.seriesIndex,dataIndexInside:y,dataIndex:l.getData().getRawIndex(y)})}))}}),{payloadBatch:i,snapToValue:a}}function qye(e,t,r,n){e[t.key]={value:r,payloadBatch:n}}function Kye(e,t,r,n){var a=r.payloadBatch,i=t.axis,o=i.model,s=t.axisPointerModel;if(!(!t.triggerTooltip||!a.length)){var l=t.coordSys.model,u=am(l),c=e.map[u];c||(c=e.map[u]={coordSysId:l.id,coordSysIndex:l.componentIndex,coordSysType:l.type,coordSysMainType:l.mainType,dataByAxis:[]},e.list.push(c)),c.dataByAxis.push({axisDim:i.dim,axisIndex:o.componentIndex,axisType:o.type,axisId:o.id,value:n,valueLabelOpt:{precision:s.get(["label","precision"]),formatter:s.get(["label","formatter"])},seriesDataIndices:a.slice()})}}function Jye(e,t,r){var n=r.axesInfo=[];j(t,function(a,i){var o=a.axisPointerModel.option,s=e[i];s?(!a.useHandle&&(o.status="show"),o.value=s.value,o.seriesDataIndices=(s.payloadBatch||[]).slice()):!a.useHandle&&(o.status="hide"),o.status==="show"&&n.push({axisDim:a.axis.dim,axisIndex:a.axis.model.componentIndex,value:o.value})})}function Qye(e,t,r,n){if(Kx(t)||!e.list.length){n({type:"hideTip"});return}var a=((e.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};n({type:"showTip",escapeConnect:!0,x:t[0],y:t[1],tooltipOption:r.tooltipOption,position:r.position,dataIndexInside:a.dataIndexInside,dataIndex:a.dataIndex,seriesIndex:a.seriesIndex,dataByCoordSys:e.list})}function e0e(e,t,r){var n=r.getZr(),a="axisPointerLastHighlights",i=Iz(n)[a]||{},o=Iz(n)[a]={};j(e,function(c,h){var d=c.axisPointerModel.option;d.status==="show"&&c.triggerEmphasis&&j(d.seriesDataIndices,function(v){o[v.seriesIndex+"|"+v.dataIndex]=v})});var s=[],l=[];function u(c){return{seriesIndex:c.seriesIndex,dataIndex:c.dataIndex}}j(i,function(c,h){!o[h]&&l.push(u(c))}),j(o,function(c,h){!i[h]&&s.push(u(c))}),l.length&&r.dispatchAction({type:"downplay",escapeConnect:!0,notBlur:!0,batch:l}),s.length&&r.dispatchAction({type:"highlight",escapeConnect:!0,notBlur:!0,batch:s})}function t0e(e,t){for(var r=0;r<(e||[]).length;r++){var n=e[r];if(t.axis.dim===n.axisDim&&t.axis.model.componentIndex===n.axisIndex)return n}}function Dz(e){var t=e.axis.model,r={},n=r.axisDim=e.axis.dim;return r.axisIndex=r[n+"AxisIndex"]=t.componentIndex,r.axisName=r[n+"AxisName"]=t.name,r.axisId=r[n+"AxisId"]=t.id,r}function Kx(e){return!e||e[0]==null||isNaN(e[0])||e[1]==null||isNaN(e[1])}function Ym(e){yh.registerAxisPointerClass("CartesianAxisPointer",Bye),e.registerComponentModel(Vye),e.registerComponentView($ye),e.registerPreprocessor(function(t){if(t){(!t.axisPointer||t.axisPointer.length===0)&&(t.axisPointer={});var r=t.axisPointer.link;r&&!ne(r)&&(t.axisPointer.link=[r])}}),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,{overallReset:function(t,r){t.getComponent("axisPointer").coordSysAxesInfo=She(t,r)}}),e.registerAction({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},Yye)}function r0e(e){$e(AW),$e(Ym)}var n0e=function(e){X(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.makeElOption=function(r,n,a,i,o){var s=a.axis;s.dim==="angle"&&(this.animationThreshold=Math.PI/18);var l=s.polar,u=s.getExtent(),c=l.getOtherAxis(s).getExtent(),h=s.dataToCoord(n),d=i.get("type");if(d&&d!=="none"){var v=JI(i),g=i0e[d](s,l,h,u,c,i.get("seriesDataIndices"),i.ecModel);g.style=v,r.graphicKey=g.type,r.pointer=g}var m=i.get(["label","margin"]),y=a0e(n,a,i,l,m);cZ(r,a,i,o,y)},t}(KI);function a0e(e,t,r,n,a){var i=t.axis,o=i.dataToCoord(e),s=n.getAngleAxis().getExtent()[0];s=s/180*Math.PI;var l=n.getRadiusAxis().getExtent(),u,c,h;if(i.dim==="radius"){var d=$t();js(d,d,s),Pi(d,d,[n.cx,n.cy]),u=ki([o,-a],d);var v=t.getModel("axisLabel").get("rotate")||0,g=Vn.innerTextLayout(s,v*Math.PI/180,-1);c=g.textAlign,h=g.textVerticalAlign}else{var m=l[1];u=n.coordToPoint([m+a,o]);var y=n.cx,x=n.cy;c=Math.abs(u[0]-y)/m<.3?"center":u[0]>y?"left":"right",h=Math.abs(u[1]-x)/m<.3?"middle":u[1]>x?"top":"bottom"}return{position:u,align:c,verticalAlign:h}}var i0e={line:function(e,t,r,n,a){return e.dim==="angle"?{type:"Line",shape:eP(t.coordToPoint([a[0],r]),t.coordToPoint([a[1],r]))}:{type:"Circle",shape:{cx:t.cx,cy:t.cy,r}}},shadow:function(e,t,r,n,a,i,o){var s=Math.PI/180,l=tP(e,i,o),u;if(e.dim==="angle")u=Nz(t.cx,t.cy,a[0],a[1],(-r-l/2)*s,(-r+l/2)*s);else{var c=rP(r,n,l),h=c[0],d=c[1];u=Nz(t.cx,t.cy,h,d,0,Math.PI*2)}return{type:"Sector",shape:u}}},So="polar",Ez=So,o0e=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.findAxisModel=function(r){var n,a=this.ecModel;return a.eachComponent(r,function(i){i.getCoordSysModel()===this&&(n=i)},this),n},t.type=So,t.dependencies=["radiusAxis","angleAxis"],t.defaultOption={z:0,center:["50%","50%"],radius:"80%"},t}(Qe),nP=function(e){X(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.getCoordSysModel=function(){return this.getReferringComponents("polar",sr).models[0]},t.type="polarAxis",t}(Qe);br(nP,nv);var s0e=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type="angleAxis",t}(nP),l0e=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type="radiusAxis",t}(nP),aP=function(e){X(t,e);function t(r,n){return e.call(this,"radius",r,n)||this}return t.prototype.pointToData=function(r,n){return this.polar.pointToData(r,n)[this.dim==="radius"?0:1]},t}(ui);aP.prototype.dataToRadius=ui.prototype.dataToCoord;aP.prototype.radiusToData=ui.prototype.coordToData;var u0e=Ze(),iP=function(e){X(t,e);function t(r,n){return e.call(this,"angle",r,n||[0,360])||this}return t.prototype.pointToData=function(r,n){return this.polar.pointToData(r,n)[this.dim==="radius"?0:1]},t.prototype.calculateCategoryInterval=function(){var r=this,n=r.getLabelModel(),a=r.scale,i=a.getExtent(),o=a.count();if(i[1]-i[0]<1)return 0;var s=i[0],l=r.dataToCoord(s+1)-r.dataToCoord(s),u=Math.abs(l),c=C1(s==null?"":s+"",n.getFont(),"center","top"),h=Math.max(c.height,7),d=h/u;isNaN(d)&&(d=1/0);var v=Math.max(0,Math.floor(d)),g=u0e(r.model),m=g.lastAutoInterval,y=g.lastTickCount;return m!=null&&y!=null&&Math.abs(m-v)<=1&&Math.abs(y-o)<=1&&m>v?v=m:(g.lastTickCount=o,g.lastAutoInterval=v),v},t}(ui);iP.prototype.dataToAngle=ui.prototype.dataToCoord;iP.prototype.angleToData=ui.prototype.coordToData;var gZ=["radius","angle"],c0e=function(){function e(t){this.dimensions=gZ,this.type=So,this.cx=0,this.cy=0,this._radiusAxis=new aP,this._angleAxis=new iP,this.axisPointerEnabled=!0,this.name=t||"",this._radiusAxis.polar=this._angleAxis.polar=this}return e.prototype.containPoint=function(t){var r=this.pointToCoord(t);return this._radiusAxis.contain(r[0])&&this._angleAxis.contain(r[1])},e.prototype.containData=function(t){return this._radiusAxis.containData(t[0])&&this._angleAxis.containData(t[1])},e.prototype.getAxis=function(t){var r="_"+t+"Axis";return this[r]},e.prototype.getAxes=function(){return[this._radiusAxis,this._angleAxis]},e.prototype.getAxesByScale=function(t){var r=[],n=this._angleAxis,a=this._radiusAxis;return n.scale.type===t&&r.push(n),a.scale.type===t&&r.push(a),r},e.prototype.getAngleAxis=function(){return this._angleAxis},e.prototype.getRadiusAxis=function(){return this._radiusAxis},e.prototype.getOtherAxis=function(t){var r=this._angleAxis;return t===r?this._radiusAxis:r},e.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAngleAxis()},e.prototype.getTooltipAxes=function(t){var r=t!=null&&t!=="auto"?this.getAxis(t):this.getBaseAxis();return{baseAxes:[r],otherAxes:[this.getOtherAxis(r)]}},e.prototype.dataToPoint=function(t,r,n){return this.coordToPoint([this._radiusAxis.dataToRadius(t[0],r),this._angleAxis.dataToAngle(t[1],r)],n)},e.prototype.pointToData=function(t,r,n){n=n||[];var a=this.pointToCoord(t);return n[0]=this._radiusAxis.radiusToData(a[0],r),n[1]=this._angleAxis.angleToData(a[1],r),n},e.prototype.pointToCoord=function(t){var r=t[0]-this.cx,n=t[1]-this.cy,a=this.getAngleAxis(),i=a.getExtent(),o=Math.min(i[0],i[1]),s=Math.max(i[0],i[1]);a.inverse?o=s-360:s=o+360;var l=Math.sqrt(r*r+n*n);r/=l,n/=l;for(var u=Math.atan2(-n,r)/Math.PI*180,c=us;)u+=c*360;return[l,u]},e.prototype.coordToPoint=function(t,r){r=r||[];var n=t[0],a=t[1]/180*Math.PI;return r[0]=Math.cos(a)*n+this.cx,r[1]=-Math.sin(a)*n+this.cy,r},e.prototype.getArea=function(){var t=this.getAngleAxis(),r=this.getRadiusAxis(),n=r.getExtent().slice();n[0]>n[1]&&n.reverse();var a=t.getExtent(),i=Math.PI/180,o=1e-4;return{cx:this.cx,cy:this.cy,r0:n[0],r:n[1],startAngle:-a[0]*i,endAngle:-a[1]*i,clockwise:t.inverse,contain:function(s,l){var u=s-this.cx,c=l-this.cy,h=u*u+c*c,d=this.r,v=this.r0;return d!==v&&h-o<=d*d&&h+o>=v*v},x:this.cx-n[1],y:this.cy-n[1],width:n[1]*2,height:n[1]*2}},e.prototype.convertToPixel=function(t,r,n){var a=jz(r);return a===this?this.dataToPoint(n):null},e.prototype.convertFromPixel=function(t,r,n){var a=jz(r);return a===this?this.pointToData(n):null},e}();function jz(e){var t=e.seriesModel,r=e.polarModel;return r&&r.coordinateSystem||t&&t.coordinateSystem}function h0e(e,t,r){var n=t.get("center"),a=jr(t,r).refContainer;e.cx=fe(n[0],a.width)+a.x,e.cy=fe(n[1],a.height)+a.y;var i=e.getRadiusAxis(),o=Math.min(a.width,a.height)/2,s=t.get("radius");s==null?s=[0,"100%"]:ne(s)||(s=[0,s]);var l=[fe(s[0],o),fe(s[1],o)];i.inverse?i.setExtent(l[1],l[0]):i.setExtent(l[0],l[1])}function f0e(e,t){var r=this,n=r.getAngleAxis(),a=r.getRadiusAxis();if(Uc(n,xd),Uc(a,xd),_d(n),_d(a),n.type==="category"&&!n.onBand){var i=n.getExtent(),o=360/n.scale.count();n.inverse?i[1]+=o:i[1]-=o,n.setExtent(i[0],i[1])}}function d0e(e){return e.mainType==="angleAxis"}function Rz(e,t){var r;if(e.type=Fm(t),e.scale=tv(t,e.type,!1),e.onBand=Gm(e.scale,t),e.inverse=t.get("inverse"),d0e(t)){e.inverse=e.inverse!==t.get("clockwise");var n=t.get("startAngle"),a=(r=t.get("endAngle"))!==null&&r!==void 0?r:n+(e.inverse?-360:360);e.setExtent(n,a)}t.axis=e,e.model=t}var v0e={dimensions:gZ,create:function(e,t){var r=[];return e.eachComponent(Ez,function(n,a){var i=new c0e(a+"");i.update=f0e;var o=i.getRadiusAxis(),s=i.getAngleAxis(),l=n.findAxisModel("radiusAxis"),u=n.findAxisModel("angleAxis");Rz(o,l),Rz(s,u),h0e(i,n,t),r.push(i),n.coordinateSystem=i,i.model=n}),e.eachSeries(function(n){if(n.get("coordinateSystem")===So){var a=n.getReferringComponents(Ez,sr).models[0],i=n.coordinateSystem=a.coordinateSystem;i&&(Hc(i.getRadiusAxis(),n,So),Hc(i.getAngleAxis(),n,So))}}),r}},p0e=["axisLine","axisLabel","axisTick","minorTick","splitLine","minorSplitLine","splitArea"];function Y0(e,t,r){t[1]>t[0]&&(t=t.slice().reverse());var n=e.coordToPoint([t[0],r]),a=e.coordToPoint([t[1],r]);return{x1:n[0],y1:n[1],x2:a[0],y2:a[1]}}function X0(e){var t=e.getRadiusAxis();return t.inverse?0:1}function Oz(e){var t=e[0],r=e[e.length-1];t&&r&&Math.abs(Math.abs(t.coord-r.coord)-360)<1e-4&&e.pop()}var g0e=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.axisPointerClass="PolarAxisPointer",r}return t.prototype.render=function(r,n){if(this.group.removeAll(),!!r.get("show")){var a=r.axis,i=a.polar,o=i.getRadiusAxis().getExtent(),s=a.getTicksCoords({breakTicks:"none"}),l=a.getMinorTicksCoords(),u=[];j(a.getViewLabels(),function(c){if(!c.tick.offInterval){c=Te(c);var h=a.scale;c.coord=a.dataToCoord(rv(h,c.tick)),u.push(c)}}),Oz(u),Oz(s),j(p0e,function(c){r.get([c,"show"])&&(!a.scale.isBlank()||c==="axisLine")&&m0e[c](this.group,r,i,s,l,o,u)},this)}},t.type="angleAxis",t}(yh),m0e={axisLine:function(e,t,r,n,a,i){var o=t.getModel(["axisLine","lineStyle"]),s=r.getAngleAxis(),l=Math.PI/180,u=s.getExtent(),c=X0(r),h=c?0:1,d,v=Math.abs(u[1]-u[0])===360?"Circle":"Arc";i[h]===0?d=new fh[v]({shape:{cx:r.cx,cy:r.cy,r:i[c],startAngle:-u[0]*l,endAngle:-u[1]*l,clockwise:s.inverse},style:o.getLineStyle(),z2:1,silent:!0}):d=new Hd({shape:{cx:r.cx,cy:r.cy,r:i[c],r0:i[h]},style:o.getLineStyle(),z2:1,silent:!0}),d.style.fill=null,e.add(d)},axisTick:function(e,t,r,n,a,i){var o=t.getModel("axisTick"),s=(o.get("inside")?-1:1)*o.get("length"),l=i[X0(r)],u=oe(n,function(c){return new yr({shape:Y0(r,[l,l+s],c.coord)})});e.add(ya(u,{style:Le(o.getModel("lineStyle").getLineStyle(),{stroke:t.get(["axisLine","lineStyle","color"])})}))},minorTick:function(e,t,r,n,a,i){if(a.length){for(var o=t.getModel("axisTick"),s=t.getModel("minorTick"),l=(o.get("inside")?-1:1)*s.get("length"),u=i[X0(r)],c=[],h=0;hx?"left":"right",S=Math.abs(y[1]-_)/m<.3?"middle":y[1]>_?"top":"bottom";if(s&&s[g]){var C=s[g];Ie(C)&&C.textStyle&&(v=new tt(C.textStyle,l,l.ecModel))}var M=new ht({silent:Vn.isLabelSilent(t),style:Et(v,{x:y[0],y:y[1],fill:v.getTextColor()||t.get(["axisLine","lineStyle","color"]),text:h.formattedLabel,align:w,verticalAlign:S})});if(e.add(M),Os({el:M,componentModel:t,itemName:h.formattedLabel,formatterParamsExtra:{isTruncated:function(){return M.isTruncated},value:h.rawLabel,tickIndex:d}}),c){var A=Vn.makeAxisEventDataBase(t);A.targetType="axisLabel",A.value=h.rawLabel,Ee(M).eventData=A}},this)},splitLine:function(e,t,r,n,a,i){var o=t.getModel("splitLine"),s=o.getModel("lineStyle"),l=s.get("color"),u=0;l=l instanceof Array?l:[l];for(var c=[],h=0;h=0?"p":"n",k=w;x&&(n[i][A]||(n[i][A]={p:w,n:w}),k=n[i][A][I]);var P=void 0,D=void 0,z=void 0,E=void 0;if(c.dim==="radius"){var B=c.dataToCoord(M)-w,H=e.dataToCoord(A);nr(B)=E})}}function M0e(e,t){var r=mh(t,So),n=pn(e,{fromStat:{key:r},min:1}).w,a=n,i=0,o="20%",s="30%",l={};Gc(e,r,function(y){var x=mZ(y);l[x]||i++,l[x]=l[x]||{width:0,maxWidth:0};var _=fe(y.get("barWidth"),n),w=fe(y.get("barMaxWidth"),n),S=y.get("barGap"),C=y.get("barCategoryGap");_&&!l[x].width&&(_=Mt(a,_),l[x].width=_,a-=_),w&&(l[x].maxWidth=w),S!=null&&(s=S),C!=null&&(o=C)});var u={},c=fe(o,n),h=fe(s,1),d=(a-c)/(i+(i-1)*h);d=qe(d,0),j(l,function(y,x){var _=y.maxWidth;_&&_=r.y&&t[1]<=r.y+r.height:n.contain(n.toLocalCoord(t[1]))&&t[0]>=r.y&&t[0]<=r.y+r.height},e.prototype.pointToData=function(t,r,n){n=n||[];var a=this.getAxis();return n[0]=a.coordToData(a.toLocalCoord(t[a.orient==="horizontal"?0:1])),n},e.prototype.dataToPoint=function(t,r,n){var a=this.getAxis(),i=this.getRect();n=n||[];var o=a.orient==="horizontal"?0:1;return t instanceof Array&&(t=t[0]),n[o]=a.toGlobalCoord(a.dataToCoord(+t)),n[1-o]=o===0?i.y+i.height/2:i.x+i.width/2,n},e.prototype.convertToPixel=function(t,r,n){var a=zz(r);return a===this?this.dataToPoint(n):null},e.prototype.convertFromPixel=function(t,r,n){var a=zz(r);return a===this?this.pointToData(n):null},e}();function zz(e){var t=e.seriesModel,r=e.singleAxisModel;return r&&r.coordinateSystem||t&&t.coordinateSystem}function O0e(e,t){var r=[];return e.eachComponent(MA,function(n,a){var i=new R0e(n,e,t);i.name="single_"+a,i.resize(n,t),n.coordinateSystem=i,r.push(i)}),e.eachSeries(function(n){if(n.get("coordinateSystem")===Ehe){var a=n.getReferringComponents(MA,sr).models[0],i=n.coordinateSystem=a&&a.coordinateSystem;i&&Hc(i.getAxis(),n,nw)}}),r}var z0e={create:O0e,dimensions:yZ},Bz=["x","y"],B0e=["width","height"],F0e=function(e){X(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.makeElOption=function(r,n,a,i,o){var s=a.axis,l=s.coordinateSystem,u=jb(s),c=q0(l,u),h=q0(l,1-u),d=l.dataToPoint(n)[0],v=i.get("type");if(v&&v!=="none"){var g=JI(i),m=V0e[v](s,d,c,h,i.get("seriesDataIndices"),i.ecModel);m.style=g,r.graphicKey=m.type,r.pointer=m}var y=ZA(a);fZ(n,r,y,a,i,o)},t.prototype.getHandleTransform=function(r,n,a){var i=ZA(n,{labelInside:!1});i.labelMargin=a.get(["handle","margin"]);var o=QI(n.axis,r,i);return{x:o[0],y:o[1],rotation:i.rotation+(i.labelDirection<0?Math.PI:0)}},t.prototype.updateHandleTransform=function(r,n,a,i){var o=a.axis,s=o.coordinateSystem,l=jb(o),u=q0(s,l),c=[r.x,r.y];c[l]+=n[l],c[l]=Math.min(u[1],c[l]),c[l]=Math.max(u[0],c[l]);var h=q0(s,1-l),d=(h[1]+h[0])/2,v=[d,d];return v[l]=c[l],{x:c[0],y:c[1],rotation:r.rotation,cursorPoint:v,tooltipOption:{verticalAlign:"middle"}}},t}(KI),V0e={line:function(e,t,r,n){var a=eP([t,n[0]],[t,n[1]],jb(e));return{type:"Line",subPixelOptimize:!0,shape:a}},shadow:function(e,t,r,n,a,i){var o=tP(e,a,i),s=n[1]-n[0],l=rP(t,r,o),u=l[0],c=l[1];return{type:"Rect",shape:dZ([u,n[0]],[c-u,s],jb(e))}}};function jb(e){return e.isHorizontal()?0:1}function q0(e,t){var r=e.getRect();return[r[Bz[t]],r[Bz[t]]+r[B0e[t]]]}var G0e=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type="single",t}(Rt);function H0e(e){$e(Ym),yh.registerAxisPointerClass("SingleAxisPointer",F0e),e.registerComponentView(G0e),e.registerComponentView(D0e),e.registerComponentModel(Yx),wd(e,"single",Yx,Yx.defaultOption),e.registerCoordinateSystem("single",z0e)}var U0e=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.init=function(r,n,a){var i=vh(r);e.prototype.init.apply(this,arguments),Fz(r,i)},t.prototype.mergeOption=function(r){e.prototype.mergeOption.apply(this,arguments),Fz(this.option,r)},t.prototype.getCellSize=function(){return this.option.cellSize},t.type="calendar",t.layoutMode="box",t.defaultOption={z:2,left:80,top:60,cellSize:20,orient:"horizontal",splitLine:{show:!0,lineStyle:{color:K.color.axisLine,width:1,type:"solid"}},itemStyle:{color:K.color.neutral00,borderWidth:1,borderColor:K.color.neutral10},dayLabel:{show:!0,firstDay:0,position:"start",margin:K.size.s,color:K.color.secondary},monthLabel:{show:!0,position:"start",margin:K.size.s,align:"center",formatter:null,color:K.color.secondary},yearLabel:{show:!0,position:null,margin:K.size.xl,formatter:null,color:K.color.quaternary,fontFamily:"sans-serif",fontWeight:"bolder",fontSize:20}},t}(Qe);function Fz(e,t){var r=e.cellSize,n;ne(r)?n=r:n=e.cellSize=[r,r],n.length===1&&(n[1]=n[0]);var a=oe([0,1],function(i){return Wne(t,i)&&(n[i]="auto"),n[i]!=null&&n[i]!=="auto"});Eo(e,t,{type:"box",ignoreSize:a})}var W0e=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,a){var i=this.group;i.removeAll();var o=r.coordinateSystem,s=o.getRangeInfo(),l=o.getOrient(),u=n.getLocaleModel();this._renderDayRect(r,s,i),this._renderLines(r,s,l,i),this._renderYearText(r,s,l,i),this._renderMonthText(r,u,l,i),this._renderWeekText(r,u,s,l,i)},t.prototype._renderDayRect=function(r,n,a){for(var i=r.coordinateSystem,o=r.getModel("itemStyle").getItemStyle(),s=i.getCellWidth(),l=i.getCellHeight(),u=n.start.time;u<=n.end.time;u=i.getNextNDay(u,1).time){var c=i.dataToCalendarLayout([u],!1).tl,h=new Ke({shape:{x:c[0],y:c[1],width:s,height:l},cursor:"default",style:o});a.add(h)}},t.prototype._renderLines=function(r,n,a,i){var o=this,s=r.coordinateSystem,l=r.getModel(["splitLine","lineStyle"]).getLineStyle(),u=r.get(["splitLine","show"]),c=l.lineWidth;this._tlpoints=[],this._blpoints=[],this._firstDayOfMonth=[],this._firstDayPoints=[];for(var h=n.start,d=0;h.time<=n.end.time;d++){g(h.formatedDate),d===0&&(h=s.getDateInfo(n.start.y+"-"+n.start.m));var v=h.date;v.setMonth(v.getMonth()+1),h=s.getDateInfo(v)}g(s.getNextNDay(n.end.time,1).formatedDate);function g(m){o._firstDayOfMonth.push(s.getDateInfo(m)),o._firstDayPoints.push(s.dataToCalendarLayout([m],!1).tl);var y=o._getLinePointsOfOneWeek(r,m,a);o._tlpoints.push(y[0]),o._blpoints.push(y[y.length-1]),u&&o._drawSplitline(y,l,i)}u&&this._drawSplitline(o._getEdgesPoints(o._tlpoints,c,a),l,i),u&&this._drawSplitline(o._getEdgesPoints(o._blpoints,c,a),l,i)},t.prototype._getEdgesPoints=function(r,n,a){var i=[r[0].slice(),r[r.length-1].slice()],o=a==="horizontal"?0:1;return i[0][o]=i[0][o]-n/2,i[1][o]=i[1][o]+n/2,i},t.prototype._drawSplitline=function(r,n,a){var i=new en({z2:20,shape:{points:r},style:n});a.add(i)},t.prototype._getLinePointsOfOneWeek=function(r,n,a){for(var i=r.coordinateSystem,o=i.getDateInfo(n),s=[],l=0;l<7;l++){var u=i.getNextNDay(o.time,l),c=i.dataToCalendarLayout([u.time],!1);s[2*u.day]=c.tl,s[2*u.day+1]=c[a==="horizontal"?"bl":"tr"]}return s},t.prototype._formatterLabel=function(r,n){return ue(r)&&r?QH(r,n):Me(r)?r(n):n.nameMap},t.prototype._yearTextPositionControl=function(r,n,a,i,o){var s=n[0],l=n[1],u=["center","bottom"];i==="bottom"?(l+=o,u=["center","top"]):i==="left"?s-=o:i==="right"?(s+=o,u=["center","top"]):l-=o;var c=0;return(i==="left"||i==="right")&&(c=Math.PI/2),{rotation:c,x:s,y:l,style:{align:u[0],verticalAlign:u[1]}}},t.prototype._renderYearText=function(r,n,a,i){var o=r.getModel("yearLabel");if(o.get("show")){var s=o.get("margin"),l=o.get("position");l||(l=a!=="horizontal"?"top":"left");var u=[this._tlpoints[this._tlpoints.length-1],this._blpoints[0]],c=(u[0][0]+u[1][0])/2,h=(u[0][1]+u[1][1])/2,d=a==="horizontal"?0:1,v={top:[c,u[d][1]],bottom:[c,u[1-d][1]],left:[u[1-d][0],h],right:[u[d][0],h]},g=n.start.y;+n.end.y>+n.start.y&&(g=g+"-"+n.end.y);var m=o.get("formatter"),y={start:n.start.y,end:n.end.y,nameMap:g},x=this._formatterLabel(m,y),_=new ht({z2:30,style:Et(o,{text:x}),silent:o.get("silent")});_.attr(this._yearTextPositionControl(_,v[l],a,l,s)),i.add(_)}},t.prototype._monthTextPositionControl=function(r,n,a,i,o){var s="left",l="top",u=r[0],c=r[1];return a==="horizontal"?(c=c+o,n&&(s="center"),i==="start"&&(l="bottom")):(u=u+o,n&&(l="middle"),i==="start"&&(s="right")),{x:u,y:c,align:s,verticalAlign:l}},t.prototype._renderMonthText=function(r,n,a,i){var o=r.getModel("monthLabel");if(o.get("show")){var s=o.get("nameMap"),l=o.get("margin"),u=o.get("position"),c=o.get("align"),h=[this._tlpoints,this._blpoints];(!s||ue(s))&&(s&&(n=FM(s)||n),s=n.get(["time","monthAbbr"])||[]);var d=u==="start"?0:1,v=a==="horizontal"?0:1;l=u==="start"?-l:l;for(var g=c==="center",m=o.get("silent"),y=0;y=i.start.time&&a.times.end.time&&r.reverse(),r},e.prototype._getRangeInfo=function(t){var r=[this.getDateInfo(t[0]),this.getDateInfo(t[1])],n;r[0].time>r[1].time&&(n=!0,r.reverse());var a=Math.floor(r[1].time/TT)-Math.floor(r[0].time/TT)+1,i=new Date(r[0].time),o=i.getDate(),s=r[1].date.getDate();i.setDate(o+a-1);var l=i.getDate();if(l!==s)for(var u=i.getTime()-r[1].time>0?1:-1;(l=i.getDate())!==s&&(i.getTime()-r[1].time)*u>0;)a-=u,i.setDate(l-u);var c=Math.floor((a+r[0].day+6)/7),h=n?-c+1:c-1;return n&&r.reverse(),{range:[r[0].formatedDate,r[1].formatedDate],start:r[0],end:r[1],allDay:a,weeks:c,nthWeek:h,fweek:r[0].day,lweek:r[1].day}},e.prototype._getDateByWeeksAndDay=function(t,r,n){var a=this._getRangeInfo(n);if(t>a.weeks||t===0&&ra.lweek)return null;var i=(t-1)*7-a.fweek+r,o=new Date(a.start.time);return o.setDate(+a.start.d+i),this.getDateInfo(o)},e.create=function(t,r){var n=[];return t.eachComponent("calendar",function(a){var i=new e(a,t,r);n.push(i),a.coordinateSystem=i}),t.eachComponent(function(a,i){Om({targetModel:i,coordSysType:"calendar",coordSysProvider:o7})}),n},e.dimensions=["time","value"],e}();function MT(e){var t=e.calendarModel,r=e.seriesModel,n=t?t.coordinateSystem:r?r.coordinateSystem:null;return n}function $0e(e){e.registerComponentModel(U0e),e.registerComponentView(W0e),e.registerCoordinateSystem("calendar",Z0e)}var ns={level:1,leaf:2,nonLeaf:3},ys={none:0,all:1,body:2,corner:3};function $A(e,t,r){var n=t[Fe[r]].getCell(e);return!n&&ft(e)&&e<0&&(n=t[Fe[1-r]].getUnitLayoutInfo(r,Math.round(e))),n}function xZ(e){var t=e||[];return t[0]=t[0]||[],t[1]=t[1]||[],t[0][0]=t[0][1]=t[1][0]=t[1][1]=NaN,t}function _Z(e,t,r,n,a){Vz(e[0],t,a,r,n,0),Vz(e[1],t,a,r,n,1)}function Vz(e,t,r,n,a,i){e[0]=1/0,e[1]=-1/0;var o=n[i],s=ne(o)?o:[o],l=s.length,u=!!r;if(l>=1?(Gz(e,t,s,u,a,i,0),l>1&&Gz(e,t,s,u,a,i,l-1)):e[0]=e[1]=NaN,u){var c=-a[Fe[1-i]].getLocatorCount(i),h=a[Fe[i]].getLocatorCount(i)-1;r===ys.body?c=qe(0,c):r===ys.corner&&(h=Mt(-1,h)),h=t[0]&&e[0]<=t[1]}function Wz(e,t){e.id.set(t[0][0],t[1][0]),e.span.set(t[0][1]-e.id.x+1,t[1][1]-e.id.y+1)}function q0e(e,t){e[0][0]=t[0][0],e[0][1]=t[0][1],e[1][0]=t[1][0],e[1][1]=t[1][1]}function Zz(e,t,r,n){var a=$A(t[n][0],r,n),i=$A(t[n][1],r,n);e[Fe[n]]=e[hr[n]]=NaN,a&&i&&(e[Fe[n]]=a.xy,e[hr[n]]=i.xy+i.wh-a.xy)}function up(e,t,r,n){return e[Fe[t]]=r,e[Fe[1-t]]=n,e}function K0e(e){return e&&(e.type===ns.leaf||e.type===ns.nonLeaf)?e:null}function Rb(){return{x:NaN,y:NaN,width:NaN,height:NaN}}var $z=function(){function e(t,r){this._cells=[],this._levels=[],this.dim=t,this.dimIdx=t==="x"?0:1,this._model=r,this._uniqueValueGen=J0e(t);var n=r.get("data",!0),a=r.get("length",!0);if(n!=null&&!ne(n)&&(n=[]),n)this._initByDimModelData(n);else if(a!=null){n=Array(a);for(var i=0;i=1,w=r[Fe[n]],S=i.getLocatorCount(n)-1,C=new kl;for(o.resetLayoutIterator(C,n);C.next();)M(C.item);for(i.resetLayoutIterator(C,n);C.next();)M(C.item);function M(A){un(A.wh)&&(A.wh=x),A.xy=w,A.id[Fe[n]]===S&&!_&&(A.wh=r[Fe[n]]+r[hr[n]]-A.xy),w+=A.wh}}function e4(e,t){for(var r=t[Fe[e]].resetCellIterator();r.next();){var n=r.item;Ob(n.rect,e,n.id,n.span,t),Ob(n.rect,1-e,n.id,n.span,t),n.type===ns.nonLeaf&&(n.xy=n.rect[Fe[e]],n.wh=n.rect[hr[e]])}}function t4(e,t){e.travelExistingCells(function(r){var n=r.span;if(n){var a=r.spanRect,i=r.id;Ob(a,0,i,n,t),Ob(a,1,i,n,t)}})}function Ob(e,t,r,n,a){e[hr[t]]=0;var i=r[Fe[t]],o=i<0?a[Fe[1-t]]:a[Fe[t]],s=o.getUnitLayoutInfo(t,r[Fe[t]]);if(e[Fe[t]]=s.xy,e[hr[t]]=s.wh,n[Fe[t]]>1){var l=o.getUnitLayoutInfo(t,r[Fe[t]]+n[Fe[t]]-1);e[hr[t]]=l.xy+l.wh-s.xy}}function hxe(e,t,r){var n=B_(e,r[hr[t]]);return XA(n,r[hr[t]])}function XA(e,t){return Math.max(Math.min(e,_e(t,1/0)),0)}function kT(e){var t=e.matrixModel,r=e.seriesModel,n=t?t.coordinateSystem:r?r.coordinateSystem:null;return n}var an={inBody:1,inCorner:2,outside:3},Ji={x:null,y:null,point:[]};function r4(e,t,r,n,a){var i=r[Fe[t]],o=r[Fe[1-t]],s=i.getUnitLayoutInfo(t,i.getLocatorCount(t)-1),l=i.getUnitLayoutInfo(t,0),u=o.getUnitLayoutInfo(t,-o.getLocatorCount(t)),c=o.shouldShow()?o.getUnitLayoutInfo(t,-1):null,h=e.point[t]=n[t];if(!l&&!c){e[Fe[t]]=an.outside;return}if(a===ys.body){l?(e[Fe[t]]=an.inBody,h=Mt(s.xy+s.wh,qe(l.xy,h)),e.point[t]=h):e[Fe[t]]=an.outside;return}else if(a===ys.corner){c?(e[Fe[t]]=an.inCorner,h=Mt(c.xy+c.wh,qe(u.xy,h)),e.point[t]=h):e[Fe[t]]=an.outside;return}var d=l?l.xy:c?c.xy+c.wh:NaN,v=u?u.xy:d,g=s?s.xy+s.wh:d;if(hg){if(!a){e[Fe[t]]=an.outside;return}h=g}e.point[t]=h,e[Fe[t]]=d<=h&&h<=g?an.inBody:v<=h&&h<=d?an.inCorner:an.outside}function n4(e,t,r,n){var a=1-r;if(e[Fe[r]]!==an.outside)for(n[Fe[r]].resetCellIterator(NT);NT.next();){var i=NT.item;if(i4(e.point[r],i.rect,r)&&i4(e.point[a],i.rect,a)){t[r]=i.ordinal,t[a]=i.id[Fe[a]];return}}}function a4(e,t,r,n){if(e[Fe[r]]!==an.outside){var a=e[Fe[r]]===an.inCorner?n[Fe[1-r]]:n[Fe[r]];for(a.resetLayoutIterator(tx,r);tx.next();)if(fxe(e.point[r],tx.item)){t[r]=tx.item.id[Fe[r]];return}}}function fxe(e,t){return t.xy<=e&&e<=t.xy+t.wh}function i4(e,t,r){return t[Fe[r]]<=e&&e<=t[Fe[r]]+t[hr[r]]}function dxe(e){e.registerComponentModel(rxe),e.registerComponentView(sxe),e.registerCoordinateSystem("matrix",cxe)}function vxe(e,t){var r=e.existing;if(t.id=e.keyInfo.id,!t.type&&r&&(t.type=r.type),t.parentId==null){var n=t.parentOption;n?t.parentId=n.id:r&&(t.parentId=r.parentId)}t.parentOption=null}function o4(e,t){var r;return j(t,function(n){e[n]!=null&&e[n]!=="auto"&&(r=!0)}),r}function pxe(e,t,r){var n=te({},r),a=e[t],i=r.$action||"merge";i==="merge"?a?(We(a,n,!0),Eo(a,n,{ignoreSize:!0}),h7(r,a),rx(r,a),rx(r,a,"shape"),rx(r,a,"style"),rx(r,a,"extra"),r.clipPath=a.clipPath):e[t]=n:i==="replace"?e[t]=n:i==="remove"&&a&&(e[t]=null)}var wZ=["transition","enterFrom","leaveTo"],gxe=wZ.concat(["enterAnimation","updateAnimation","leaveAnimation"]);function rx(e,t,r){if(r&&(!e[r]&&t[r]&&(e[r]={}),e=e[r],t=t[r]),!(!e||!t))for(var n=r?wZ:gxe,a=0;a=0;c--){var h=a[c],d=Ir(h.id,null),v=d!=null?o.get(d):null;if(v){var g=v.parent,x=Ha(g),_=g===i?{width:s,height:l}:{width:x.width,height:x.height},w={},S=G1(v,h,_,null,{hv:h.hv,boundingMode:h.bounding},w);if(!Ha(v).isNew&&S){for(var C=h.transition,M={},A=0;A=0)?M[I]=k:v[I]=k}mt(v,M,r,0)}else v.attr(w)}}},t.prototype._clear=function(){var r=this,n=this._elMap;n.each(function(a){Jx(a,Ha(a).option,n,r._lastGraphicModel)}),this._elMap=pe()},t.prototype.dispose=function(){this._clear()},t.type="graphic",t}(Rt);function qA(e){var t=ge(s4,e)?s4[e]:Fg(e),r=new t({});return Ha(r).type=e,r}function l4(e,t,r,n){var a=qA(r);return t.add(a),n.set(e,a),Ha(a).id=e,Ha(a).isNew=!0,a}function Jx(e,t,r,n){var a=e&&e.parent;a&&(e.type==="group"&&e.traverse(function(i){Jx(i,t,r,n)}),fw(e,t,n),r.removeKey(Ha(e).id))}function u4(e,t,r,n){e.isGroup||j([["cursor",ai.prototype.cursor],["zlevel",n||0],["z",r||0],["z2",0]],function(a){var i=a[0];ge(t,i)?e[i]=_e(t[i],a[1]):e[i]==null&&(e[i]=a[1])}),j(at(t),function(a){if(a.indexOf("on")===0){var i=t[a];e[a]=Me(i)?i:null}}),ge(t,"draggable")&&(e.draggable=t.draggable),t.name!=null&&(e.name=t.name),t.id!=null&&(e.id=t.id)}function _xe(e){return e=te({},e),j(["id","parentId","$action","hv","bounding","textContent","clipPath"].concat(s7),function(t){delete e[t]}),e}function bxe(e,t,r){var n=Ee(e).eventData;!e.silent&&!e.ignore&&!n&&(n=Ee(e).eventData={componentType:"graphic",componentIndex:t.componentIndex,name:e.name}),n&&(n.info=r.info)}function wxe(e){e.registerComponentModel(yxe),e.registerComponentView(xxe),e.registerPreprocessor(function(t){var r=t.graphic;ne(r)?!r[0]||!r[0].elements?t.graphic=[{elements:r}]:t.graphic=[t.graphic[0]]:r&&!r.elements&&(t.graphic=[{elements:[r]}])})}var c4=["x","y","radius","angle","single"],Sxe=Ze(),Cxe=["cartesian2d","polar","singleAxis"];function Txe(e){var t=e.get("coordinateSystem");return Ve(Cxe,t)>=0}function ml(e){return e+"Axis"}function Mxe(e,t){var r=pe(),n=[],a=pe();e.eachComponent({mainType:"dataZoom",query:t},function(c){a.get(c.uid)||s(c)});var i;do i=!1,e.eachComponent("dataZoom",o);while(i);function o(c){!a.get(c.uid)&&l(c)&&(s(c),i=!0)}function s(c){a.set(c.uid,!0),n.push(c),u(c)}function l(c){var h=!1;return c.eachTargetAxis(function(d,v){var g=r.get(d);g&&g[v]&&(h=!0)}),h}function u(c){c.eachTargetAxis(function(h,d){(r.get(h)||r.set(h,[]))[d]=!0})}return n}function SZ(e){var t=e.ecModel,r={infoList:[],infoMap:pe()};return e.eachTargetAxis(function(n,a){var i=t.getComponent(ml(n),a);if(i){var o=i.getCoordSysModel();if(o){var s=o.uid,l=r.infoMap.get(s);l||(l={model:o,axisModels:[]},r.infoList.push(l),r.infoMap.set(s,l)),l.axisModels.push(i)}}}),r}function CZ(e){var t=Sxe(iU(e));return t.axisProxyMap||(t.axisProxyMap=pe())}function zb(e){if(e)return CZ(e.ecModel).get(e.uid)}function Axe(e,t){CZ(e.ecModel).set(e.uid,t)}function TZ(e,t){var r=t.getAxisModel().axis.__alignTo;return r&&e.getAxisProxy(r.dim,r.model.componentIndex)?zb(r.model):null}var LT=function(){function e(){this.indexList=[],this.indexMap=[]}return e.prototype.add=function(t){this.indexMap[t]||(this.indexList.push(t),this.indexMap[t]=!0)},e}(),vm=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r._autoThrottle=!0,r._noTarget=!0,r._rangePropMode=["percent","percent"],r}return t.prototype.init=function(r,n,a){var i=h4(r);this.settledOption=i,this.mergeDefaultAndTheme(r,a),this._doInit(i)},t.prototype.mergeOption=function(r){var n=h4(r);We(this.option,r,!0),We(this.settledOption,n,!0),this._doInit(n)},t.prototype._doInit=function(r){var n=this.option;this._setDefaultThrottle(r),this._updateRangeUse(r);var a=this.settledOption;j([["start","startValue"],["end","endValue"]],function(i,o){this._rangePropMode[o]==="value"&&(n[i[0]]=a[i[0]]=null)},this),this._resetTarget()},t.prototype._resetTarget=function(){var r=this.get("orient",!0),n=this._targetAxisInfoMap=pe(),a=this._fillSpecifiedTargetAxis(n);a?this._orient=r||this._makeAutoOrientByTargetAxis():(this._orient=r||"horizontal",this._fillAutoTargetAxisByOrient(n,this._orient)),this._noTarget=!0,n.each(function(i){i.indexList.length&&(this._noTarget=!1)},this)},t.prototype._fillSpecifiedTargetAxis=function(r){var n=!1;return j(c4,function(a){var i=this.getReferringComponents(ml(a),vte);if(i.specified){n=!0;var o=new LT;j(i.models,function(s){o.add(s.componentIndex)}),r.set(a,o)}},this),n},t.prototype._fillAutoTargetAxisByOrient=function(r,n){var a=this.ecModel,i=!0;if(i){var o=n==="vertical"?"y":"x",s=a.findComponents({mainType:o+"Axis"});l(s,o)}if(i){var s=a.findComponents({mainType:"singleAxis",filter:function(c){return c.get("orient",!0)===n}});l(s,"single")}function l(u,c){var h=u[0];if(h){var d=new LT;if(d.add(h.componentIndex),r.set(c,d),i=!1,c==="x"||c==="y"){var v=h.getReferringComponents("grid",sr).models[0];v&&j(u,function(g){h.componentIndex!==g.componentIndex&&v===g.getReferringComponents("grid",sr).models[0]&&d.add(g.componentIndex)})}}}i&&j(c4,function(u){if(i){var c=a.findComponents({mainType:ml(u),filter:function(d){return d.get("type",!0)==="category"}});if(c[0]){var h=new LT;h.add(c[0].componentIndex),r.set(u,h),i=!1}}},this)},t.prototype._makeAutoOrientByTargetAxis=function(){var r;return this.eachTargetAxis(function(n){!r&&(r=n)},this),r==="y"?"vertical":"horizontal"},t.prototype._setDefaultThrottle=function(r){if(r.hasOwnProperty("throttle")&&(this._autoThrottle=!1),this._autoThrottle){var n=this.ecModel.option;this.option.throttle=n.animation&&n.animationDurationUpdate>0?100:20}},t.prototype._updateRangeUse=function(r){var n=this._rangePropMode,a=this.get("rangeMode");j([["start","startValue"],["end","endValue"]],function(i,o){var s=r[i[0]]!=null,l=r[i[1]]!=null;s&&!l?n[o]="percent":!s&&l?n[o]="value":a?n[o]=a[o]:s&&(n[o]="percent")})},t.prototype.noTarget=function(){return this._noTarget},t.prototype.getFirstTargetAxisModel=function(){var r;return this.eachTargetAxis(function(n,a){r==null&&(r=this.ecModel.getComponent(ml(n),a))},this),r},t.prototype.eachTargetAxis=function(r,n){this._targetAxisInfoMap.each(function(a,i){j(a.indexList,function(o){r.call(n,i,o)})})},t.prototype.getAxisProxy=function(r,n){return zb(this.getAxisModel(r,n))},t.prototype.getAxisModel=function(r,n){var a=this._targetAxisInfoMap.get(r);if(a&&a.indexMap[n])return this.ecModel.getComponent(ml(r),n)},t.prototype.setRawRange=function(r){var n=this.option,a=this.settledOption;j([["start","startValue"],["end","endValue"]],function(i){(r[i[0]]!=null||r[i[1]]!=null)&&(n[i[0]]=a[i[0]]=r[i[0]],n[i[1]]=a[i[1]]=r[i[1]])},this),this._updateRangeUse(r)},t.prototype.setCalculatedRange=function(r){var n=this.option;j(["start","startValue","end","endValue"],function(a){n[a]=r[a]})},t.prototype.getPercentRange=function(){var r=this.findRepresentativeAxisProxy();if(r)return r.getWindow().percent},t.prototype.getValueRange=function(r,n){if(r==null&&n==null){var a=this.findRepresentativeAxisProxy();if(a)return a.getWindow().value}else return this.getAxisProxy(r,n).getWindow().value},t.prototype.findRepresentativeAxisProxy=function(r){if(r)return zb(r);for(var n,a=this._targetAxisInfoMap.keys(),i=0;io[1];if(w&&!S&&!C)return!0;w&&(y=!0),S&&(g=!0),C&&(m=!0)}return y&&g&&m})}else j(c,function(v){if(i==="empty")l.setData(u=u.map(v,function(m){return s(m)?m:NaN}));else{var g={};g[v]=o,u.selectRange(g)}});j(c,function(v){u.setApproximateExtent(o,v)})}});function s(l){return l>=o[0]&&l<=o[1]}},e.prototype._updateMinMaxSpan=function(){var t=this._minMaxSpan={},r=this._dataZoomModel,n=this._extent;j(["min","max"],function(a){var i=r.get(a+"Span"),o=r.get(a+"ValueSpan");o!=null&&(o=this.getAxisModel().axis.scale.parse(o)),o!=null?i=xt(n[0]+o,n,[0,100],!0):i!=null&&(o=xt(i,[0,100],n,!0)-n[0]),t[a+"Span"]=i,t[a+"ValueSpan"]=o},this)},e}(),Ixe={dirtyOnOverallProgress:!0,getTargetSeries:function(e){function t(a){e.eachComponent("dataZoom",function(i){i.eachTargetAxis(function(o,s){var l=e.getComponent(ml(o),s);a(o,s,l,i)})})}var r=[];t(function(a,i,o,s){if(!zb(o)){var l=new Lxe(a,i,s,e);r.push(l),Axe(o,l)}});var n=pe();return j(r,function(a){j(a.getTargetSeriesModels(),function(i){n.set(i.uid,i)})}),n},overallReset:function(e,t){e.eachComponent("dataZoom",function(r){var n=[];r.eachTargetAxis(function(a,i){var o=r.getAxisProxy(a,i),s=TZ(r,o);s?n.push([o,s]):o.reset(r,null)}),j(n,function(a){a[0].reset(r,a[1].getWindow().percentInverted)}),r.eachTargetAxis(function(a,i){r.getAxisProxy(a,i).filterData(r,t)})}),e.eachComponent("dataZoom",function(r){var n=r.findRepresentativeAxisProxy();if(n){var a=n.getWindow(),i=a.percent,o=a.value;r.setCalculatedRange({start:i[0],end:i[1],startValue:o[0],endValue:o[1]})}})}};function Pxe(e){e.registerAction("dataZoom",function(t,r){var n=Mxe(r,t);j(n,function(a){a.setRawRange({start:t.start,end:t.end,startValue:t.startValue,endValue:t.endValue})})})}var Dxe=Fd();function uP(e){Dxe(e,function(){e.registerProcessor(e.PRIORITY.PROCESSOR.FILTER,Ixe),Pxe(e),e.registerSubTypeDefaulter("dataZoom",function(){return"slider"})})}function Exe(e){e.registerComponentModel(Nxe),e.registerComponentView(kxe),uP(e)}var Co=function(){function e(){}return e}(),MZ={};function pf(e,t){MZ[e]=t}function AZ(e){return MZ[e]}var jxe=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.init=function(r,n,a){var i=a.getTheme().get("toolbox"),o=i?i.feature:null;o&&(this._themeFeatureOption=te({},o),i.feature={}),e.prototype.init.call(this,r,n,a),o&&(i.feature=o)},t.prototype.optionUpdated=function(){j(this.option.feature,function(r,n){var a=this._themeFeatureOption,i=AZ(n);i&&(i.getDefaultOption&&(i.defaultOption=i.getDefaultOption(this.ecModel)),a&&a[n]&&(We(r,a[n]),a[n]=null),We(r,i.defaultOption))},this)},t.type="toolbox",t.layoutMode={type:"box",ignoreSize:!0},t.defaultOption={show:!0,z:6,orient:"horizontal",left:"right",top:"top",backgroundColor:"transparent",borderColor:K.color.border,borderRadius:0,borderWidth:0,padding:K.size.m,itemSize:15,itemGap:K.size.s,showTitle:!0,iconStyle:{borderColor:K.color.accent50,color:"none"},emphasis:{iconStyle:{borderColor:K.color.accent70}},tooltip:{show:!1,position:"bottom"}},t}(Qe);function NZ(e,t){var r=Xd(t.get("padding")),n=t.getItemStyle(["color","opacity"]);n.fill=t.get("backgroundColor");var a=new Ke({shape:{x:e.x-r[3],y:e.y-r[0],width:e.width+r[1]+r[3],height:e.height+r[0]+r[2],r:t.get("borderRadius")},style:n,silent:!0,z2:-1});return a}var Rxe=function(e){X(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.render=function(r,n,a,i){var o=this.group;if(o.removeAll(),!r.get("show"))return;var s=+r.get("itemSize"),l=r.get("orient")==="vertical",u=r.get("feature")||{},c=this._features||(this._features=pe()),h=[];j(u,function(_,w){h.push(w)}),new ks(this._featureNames||[],h).add(d).update(d).remove(Xe(d,null)).execute(),this._featureNames=wt(h,function(_){return c.hasKey(_)});function d(_,w){var S=_!=null&&w==null,C=_!=null&&w!=null,M=_==null,A=S||C?h[_]:h[w],I=u[A],k=S||C?new tt(I,r,n):null,P=k&&k.get("show"),D;if(S){if(!P)return;if(Oxe(A))D={onclick:k.option.onclick,featureName:A};else{var z=AZ(A);if(!z)return;D=new z}c.set(A,D)}else D=c.get(A);if(M||!P){f4(D)&&D.dispose&&D.dispose(n,a),c.removeKey(A);return}i&&i.newTitle!=null&&i.featureName===A&&(I.title=i.newTitle),S&&(D.uid=dh("toolbox-feature")),D.model=k,D.ecModel=n,D.api=a,v(k,D,A),k.setIconStatus=function(E,B){var H=this.option,V=this.iconPaths;H.iconStatus=H.iconStatus||{},H.iconStatus[E]=B,V[E]&&(B==="emphasis"?As:Ns)(V[E])},f4(D)&&D.render&&D.render(k,n,a,i)}function v(_,w,S){var C=_.getModel("iconStyle"),M=_.getModel(["emphasis","iconStyle"]),A=w instanceof Co&&w.getIcons?w.getIcons():_.get("icon"),I=_.get("title")||{},k,P;ue(A)?(k={},k[S]=A):k=A,ue(I)?(P={},P[S]=I):P=I;var D=_.iconPaths={};j(k,function(z,E){var B=$d(z,{},{x:-s/2,y:-s/2,width:s,height:s});B.setStyle(C.getItemStyle());var H=B.ensureState("emphasis");H.style=M.getItemStyle();var V=new ht({style:{text:P[E],align:M.get("textAlign"),borderRadius:M.get("textBorderRadius"),padding:M.get("textPadding"),fill:null,font:iL({fontStyle:M.get("textFontStyle"),fontFamily:M.get("textFontFamily"),fontSize:M.get("textFontSize"),fontWeight:M.get("textFontWeight")},n)},ignore:!0});B.setTextContent(V),Os({el:B,componentModel:r,itemName:E,formatterParamsExtra:{title:P[E]}}),B.__title=P[E],B.on("mouseover",function(){var U=M.getItemStyle(),F=l?r.get("right")==null&&r.get("left")!=="right"?"right":"left":r.get("bottom")==null&&r.get("top")!=="bottom"?"bottom":"top";V.setStyle({fill:M.get("textFill")||U.fill||U.stroke||K.color.neutral99,backgroundColor:M.get("textBackgroundColor")}),B.setTextConfig({position:M.get("textPosition")||F}),V.ignore=!r.get("showTitle"),a.enterEmphasis(this)}).on("mouseout",function(){_.get(["iconStatus",E])!=="emphasis"&&a.leaveEmphasis(this),V.hide()}),(_.get(["iconStatus",E])==="emphasis"?As:Ns)(B),o.add(B),B.on("click",ve(w.onclick,w,n,a,E)),D[E]=B})}var g=jr(r,a).refContainer,m=r.getBoxLayoutParams(),y=r.get("padding"),x=Zt(m,g,y);xc(r.get("orient"),o,r.get("itemGap"),x.width,x.height),G1(o,m,g,y),o.add(NZ(o.getBoundingRect(),r)),l||o.eachChild(function(_){var w=_.__title,S=_.ensureState("emphasis"),C=S.textConfig||(S.textConfig={}),M=_.getTextContent(),A=M&&M.ensureState("emphasis");if(A&&!Me(A)&&w){var I=A.style||(A.style={}),k=C1(w,ht.makeFont(I)),P=_.x+o.x,D=_.y+o.y+s,z=!1;D+k.height>a.getHeight()&&(C.position="top",z=!0);var E=z?-5-k.height:s+10;P+k.width/2>a.getWidth()?(C.position=["100%",E],I.align="right"):P-k.width/2<0&&(C.position=[0,E],I.align="left")}})},t.prototype.updateView=function(r,n,a,i){j(this._features,function(o){o&&o instanceof Co&&o.updateView&&o.updateView(o.model,n,a,i)})},t.prototype.dispose=function(r,n){j(this._features,function(a){a&&a instanceof Co&&a.dispose&&a.dispose(r,n)})},t.type="toolbox",t}(Rt);function Oxe(e){return e.indexOf("my")===0}function f4(e){return e instanceof Co}var zxe=function(e){X(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.onclick=function(r,n){var a=this.model,i=a.get("name")||r.get("title.0.text")||"echarts",o=n.getZr().painter.getType()==="svg",s=o?"svg":a.get("type",!0)||"png",l=n.getConnectedDataURL({type:s,backgroundColor:a.get("backgroundColor",!0)||r.get("backgroundColor")||K.color.neutral00,connectedBackgroundColor:a.get("connectedBackgroundColor"),excludeComponents:a.get("excludeComponents"),pixelRatio:a.get("pixelRatio")}),u=ot.browser;if(typeof MouseEvent=="function"&&(u.newEdge||!u.ie&&!u.edge)){var c=document.createElement("a");c.download=i+"."+s,c.target="_blank",c.href=l;var h=new MouseEvent("click",{view:document.defaultView,bubbles:!0,cancelable:!1});c.dispatchEvent(h)}else if(window.navigator.msSaveOrOpenBlob||o){var d=l.split(","),v=d[0].indexOf("base64")>-1,g=o?decodeURIComponent(d[1]):d[1];v&&(g=window.atob(g));var m=i+"."+s;if(window.navigator.msSaveOrOpenBlob){for(var y=g.length,x=new Uint8Array(y);y--;)x[y]=g.charCodeAt(y);var _=new Blob([x]);window.navigator.msSaveOrOpenBlob(_,m)}else{var w=document.createElement("iframe");document.body.appendChild(w);var S=w.contentWindow,C=S.document;C.open("image/svg+xml","replace"),C.write(g),C.close(),S.focus(),C.execCommand("SaveAs",!0,m),document.body.removeChild(w)}}else{var M=a.get("lang"),A='',I=window.open();I.document.write(A),I.document.title=i}},t.getDefaultOption=function(r){var n={show:!0,icon:"M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0",title:r.getLocaleModel().get(["toolbox","saveAsImage","title"]),type:"png",connectedBackgroundColor:K.color.neutral00,name:"",excludeComponents:["toolbox"],lang:r.getLocaleModel().get(["toolbox","saveAsImage","lang"])};return n},t}(Co),d4="__ec_magicType_stack__",Bxe=[["line","bar"],["stack"]],Fxe=function(e){X(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.getIcons=function(){var r=this.model,n=r.get("icon"),a={};return j(r.get("type"),function(i){n[i]&&(a[i]=n[i])}),a},t.getDefaultOption=function(r){var n={show:!0,type:[],icon:{line:"M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4",bar:"M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7",stack:"M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z"},title:r.getLocaleModel().get(["toolbox","magicType","title"]),option:{},seriesIndex:{}};return n},t.prototype.onclick=function(r,n,a){var i=this.model,o=i.get(["seriesIndex",a]);if(v4[a]){var s={series:[]},l=function(h){var d=h.subType,v=h.id,g=v4[a](d,v,h,i);g&&(Le(g,h.option),s.series.push(g));var m=h.coordinateSystem;if(m&&m.type==="cartesian2d"&&(a==="line"||a==="bar")){var y=m.getAxesByScale("ordinal")[0];if(y){var x=y.dim,_=x+"Axis",w=h.getReferringComponents(_,sr).models[0],S=w.componentIndex;s[_]=s[_]||[];for(var C=0;C<=S;C++)s[_][S]=s[_][S]||{};s[_][S].boundaryGap=a==="bar"}}};j(Bxe,function(h){Ve(h,a)>=0&&j(h,function(d){i.setIconStatus(d,"normal")})}),i.setIconStatus(a,"emphasis"),r.eachComponent({mainType:"series",query:o==null?null:{seriesIndex:o}},l);var u,c=a;a==="stack"&&(u=We({stack:i.option.title.tiled,tiled:i.option.title.stack},i.option.title),i.get(["iconStatus",a])!=="emphasis"&&(c="tiled")),n.dispatchAction({type:"changeMagicType",currentType:c,newOption:s,newTitle:u,featureName:"magicType"})}},t}(Co),v4={line:function(e,t,r,n){if(e==="bar")return We({id:t,type:"line",data:r.get("data"),stack:r.get("stack"),markPoint:r.get("markPoint"),markLine:r.get("markLine")},n.get(["option","line"])||{},!0)},bar:function(e,t,r,n){if(e==="line")return We({id:t,type:"bar",data:r.get("data"),stack:r.get("stack"),markPoint:r.get("markPoint"),markLine:r.get("markLine")},n.get(["option","bar"])||{},!0)},stack:function(e,t,r,n){var a=r.get("stack")===d4;if(e==="line"||e==="bar")return n.setIconStatus("stack",a?"normal":"emphasis"),We({id:t,stack:a?"":d4},n.get(["option","stack"])||{},!0)}};zi({type:"changeMagicType",event:"magicTypeChanged",update:"prepareAndUpdate"},function(e,t){t.mergeOption(e.newOption)});var dw=new Array(60).join("-"),Ad=" ";function Vxe(e){var t={},r=[],n=[];return e.eachRawSeries(function(a){var i=a.coordinateSystem;if(i&&(i.type==="cartesian2d"||i.type==="polar")){var o=i.getBaseAxis();if(o.type==="category"){var s=Sce(o);t[s]||(t[s]={categoryAxis:o,valueAxis:i.getOtherAxis(o),series:[]},n.push({axisDim:o.dim,axisIndex:o.index})),t[s].series.push(a)}else r.push(a)}else r.push(a)}),{seriesGroupByCategoryAxis:t,other:r,meta:n}}function Gxe(e){var t=[];return j(e,function(r,n){var a=r.categoryAxis,i=r.valueAxis,o=i.dim,s=[" "].concat(oe(r.series,function(v){return v.name})),l=[a.model.getCategories()];j(r.series,function(v){var g=v.getRawData();l.push(v.getRawData().mapArray(g.mapDimension(o),function(m){return m}))});for(var u=[s.join(Ad)],c=0;c=0)return!0}var KA=new RegExp("["+Ad+"]+","g");function Zxe(e){for(var t=e.split(/\n+/g),r=Bb(t.shift()).split(KA),n=[],a=oe(r,function(l){return{name:l,data:[]}}),i=0;i=0;i--){var o=r[i];if(o[a])break}if(i<0){var s=e.queryComponents({mainType:"dataZoom",subType:"select",id:a})[0];if(s){var l=s.getPercentRange();r[0][a]={dataZoomId:a,start:l[0],end:l[1]}}}}),r.push(t)}function Jxe(e){var t=cP(e),r=t[t.length-1];t.length>1&&t.pop();var n={};return kZ(r,function(a,i){for(var o=t.length-1;o>=0;o--)if(a=t[o][i],a){n[i]=a;break}}),n}function Qxe(e){LZ(e).snapshots=null}function e_e(e){return cP(e).length}function cP(e){var t=LZ(e);return t.snapshots||(t.snapshots=[{}]),t.snapshots}var t_e=function(e){X(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.onclick=function(r,n){Qxe(r),n.dispatchAction({type:"restore",from:this.uid})},t.getDefaultOption=function(r){var n={show:!0,icon:"M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5",title:r.getLocaleModel().get(["toolbox","restore","title"])};return n},t}(Co);zi({type:"restore",event:"restore",update:"prepareAndUpdate"},function(e,t){t.resetOption("recreate")});var r_e=["grid","xAxis","yAxis","geo","graph","polar","radiusAxis","angleAxis","bmap"],hP=function(){function e(t,r,n){var a=this;this._targetInfoList=[];var i=p4(r,t);j(n_e,function(o,s){(!n||!n.include||Ve(n.include,s)>=0)&&o(i,a._targetInfoList)})}return e.prototype.setOutputRanges=function(t,r){return this.matchOutputRanges(t,r,function(n,a,i){if((n.coordRanges||(n.coordRanges=[])).push(a),!n.coordRange){n.coordRange=a;var o=IT[n.brushType](0,i,a);n.__rangeOffset={offset:x4[n.brushType](o.values,n.range,[1,1]),xyMinMax:o.xyMinMax}}}),t},e.prototype.matchOutputRanges=function(t,r,n){j(t,function(a){var i=this.findTargetInfo(a,r);i&&i!==!0&&j(i.coordSyses,function(o){var s=IT[a.brushType](1,o,a.range,!0);n(a,s.values,o,r)})},this)},e.prototype.setInputRanges=function(t,r){j(t,function(n){var a=this.findTargetInfo(n,r);if(n.range=n.range||[],a&&a!==!0){n.panelId=a.panelId;var i=IT[n.brushType](0,a.coordSys,n.coordRange),o=n.__rangeOffset;n.range=o?x4[n.brushType](i.values,o.offset,a_e(i.xyMinMax,o.xyMinMax)):i.values}},this)},e.prototype.makePanelOpts=function(t,r){return oe(this._targetInfoList,function(n){var a=n.getPanelRect();return{panelId:n.panelId,defaultBrushType:r?r(n):null,clipPath:R9(a),isTargetByCursor:z9(a,t,n.coordSysModel),getLinearBrushOtherExtent:O9(a)}})},e.prototype.controlSeries=function(t,r,n){var a=this.findTargetInfo(t,n);return a===!0||a&&Ve(a.coordSyses,r.coordinateSystem)>=0},e.prototype.findTargetInfo=function(t,r){for(var n=this._targetInfoList,a=p4(r,t),i=0;ie[1]&&e.reverse(),e}function p4(e,t){return Wf(e,t,{includeMainTypes:r_e})}var n_e={grid:function(e,t){var r=e.xAxisModels,n=e.yAxisModels,a=e.gridModels,i=pe(),o={},s={};!r&&!n&&!a||(j(r,function(l){var u=l.axis.grid.model;i.set(u.id,u),o[u.id]=!0}),j(n,function(l){var u=l.axis.grid.model;i.set(u.id,u),s[u.id]=!0}),j(a,function(l){i.set(l.id,l),o[l.id]=!0,s[l.id]=!0}),i.each(function(l){var u=l.coordinateSystem,c=[];j(u.getCartesians(),function(h,d){(Ve(r,h.getAxis("x").model)>=0||Ve(n,h.getAxis("y").model)>=0)&&c.push(h)}),t.push({panelId:"grid--"+l.id,gridModel:l,coordSysModel:l,coordSys:c[0],coordSyses:c,getPanelRect:m4.grid,xAxisDeclared:o[l.id],yAxisDeclared:s[l.id]})}))},geo:function(e,t){j(e.geoModels,function(r){var n=r.coordinateSystem;t.push({panelId:"geo--"+r.id,geoModel:r,coordSysModel:r,coordSys:n,coordSyses:[n],getPanelRect:m4.geo})})}},g4=[function(e,t){var r=e.xAxisModel,n=e.yAxisModel,a=e.gridModel;return!a&&r&&(a=r.axis.grid.model),!a&&n&&(a=n.axis.grid.model),a&&a===t.gridModel},function(e,t){var r=e.geoModel;return r&&r===t.geoModel}],m4={grid:function(){return this.coordSys.master.getRect().clone()},geo:function(){var e=this.coordSys.view,t=jW(null,e);return nG(t,t,wb(null,e)),t}},IT={lineX:Xe(y4,0),lineY:Xe(y4,1),rect:function(e,t,r,n){var a=e?t.pointToData([r[0][0],r[1][0]],n):t.dataToPoint([r[0][0],r[1][0]],n),i=e?t.pointToData([r[0][1],r[1][1]],n):t.dataToPoint([r[0][1],r[1][1]],n),o=[JA([a[0],i[0]]),JA([a[1],i[1]])];return{values:o,xyMinMax:o}},polygon:function(e,t,r,n){var a=[sn(),sn()],i=oe(r,function(o){var s=e?t.pointToData(o,n):t.dataToPoint(o,n);return a[0][0]=Math.min(a[0][0],s[0]),a[1][0]=Math.min(a[1][0],s[1]),a[0][1]=Math.max(a[0][1],s[0]),a[1][1]=Math.max(a[1][1],s[1]),s});return{values:i,xyMinMax:a}}};function y4(e,t,r,n){var a=r.getAxis(["x","y"][e]),i=JA(oe([0,1],function(s){return t?a.coordToData(a.toLocalCoord(n[s]),!0):a.toGlobalCoord(a.dataToCoord(n[s]))})),o=[];return o[e]=i,o[1-e]=[NaN,NaN],{values:i,xyMinMax:o}}var x4={lineX:Xe(_4,0),lineY:Xe(_4,1),rect:function(e,t,r){return[[e[0][0]-r[0]*t[0][0],e[0][1]-r[0]*t[0][1]],[e[1][0]-r[1]*t[1][0],e[1][1]-r[1]*t[1][1]]]},polygon:function(e,t,r){return oe(e,function(n,a){return[n[0]-r[0]*t[a][0],n[1]-r[1]*t[a][1]]})}};function _4(e,t,r,n){return[t[0]-n[e]*r[0],t[1]-n[e]*r[1]]}function a_e(e,t){var r=b4(e),n=b4(t),a=[r[0]/n[0],r[1]/n[1]];return isNaN(a[0])&&(a[0]=1),isNaN(a[1])&&(a[1]=1),a}function b4(e){return e?[e[0][1]-e[0][0],e[1][1]-e[1][0]]:[NaN,NaN]}var QA=j,i_e=ute("toolbox-dataZoom_"),o_e={x:"width",y:"height"},s_e=function(e){X(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.render=function(r,n,a,i){this._brushController||(this._brushController=new EI(a.getZr()),this._brushController.on("brush",ve(this._onBrush,this)).mount()),c_e(r,n,this,i,a),u_e(r,n)},t.prototype.onclick=function(r,n,a){l_e[a].call(this)},t.prototype.dispose=function(r,n){this._brushController&&this._brushController.dispose()},t.prototype._onBrush=function(r){var n=r.areas;if(!r.isEnd||!n.length)return;var a={},i=this.ecModel;this._brushController.updateCovers([]);var o=new hP(fP(this.model),i,{include:["grid"]});o.matchOutputRanges(n,i,function(u,c,h){if(h.type==="cartesian2d"){var d=h.master.getRect().clone(),v=u.brushType;v==="rect"?(s("x",h,d,c[0]),s("y",h,d,c[1])):s({lineX:"x",lineY:"y"}[v],h,d,c)}}),Kxe(i,a),this._dispatchZoomAction(a);function s(u,c,h,d){var v=c.getAxis(u),g=v.model,m=l(u,g,i),y=m.findRepresentativeAxisProxy(g).getMinMaxSpan(),x=v.scale.getExtent();(y.minValueSpan!=null||y.maxValueSpan!=null)&&(d=Ul(0,d.slice(),x,0,y.minValueSpan,y.maxValueSpan));var _=Dk(x,h[o_e[u]],.5);m&&(a[m.id]={dataZoomId:m.id,startValue:isFinite(_)?gt(d[0],_):d[0],endValue:isFinite(_)?gt(d[1],_):d[1]})}function l(u,c,h){var d;return h.eachComponent({mainType:"dataZoom",subType:"select"},function(v){var g=v.getAxisModel(u,c.componentIndex);g&&(d=v)}),d}},t.prototype._dispatchZoomAction=function(r){var n=[];QA(r,function(a,i){n.push(Te(a))}),n.length&&this.api.dispatchAction({type:"dataZoom",from:this.uid,batch:n})},t.getDefaultOption=function(r){var n={show:!0,filterMode:"filter",icon:{zoom:"M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1",back:"M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26"},title:r.getLocaleModel().get(["toolbox","dataZoom","title"]),brushStyle:{borderWidth:0,color:K.color.backgroundTint}};return n},t}(Co),l_e={zoom:function(){var e=!this._isZoomActive;this.api.dispatchAction({type:"takeGlobalCursor",key:"dataZoomSelect",dataZoomSelectActive:e})},back:function(){this._dispatchZoomAction(Jxe(this.ecModel))}};function fP(e){var t={xAxisIndex:e.get("xAxisIndex",!0),yAxisIndex:e.get("yAxisIndex",!0),xAxisId:e.get("xAxisId",!0),yAxisId:e.get("yAxisId",!0)};return t.xAxisIndex==null&&t.xAxisId==null&&(t.xAxisIndex="all"),t.yAxisIndex==null&&t.yAxisId==null&&(t.yAxisIndex="all"),t}function u_e(e,t){e.setIconStatus("back",e_e(t)>1?"emphasis":"normal")}function c_e(e,t,r,n,a){var i=r._isZoomActive;n&&n.type==="takeGlobalCursor"&&(i=n.key==="dataZoomSelect"?n.dataZoomSelectActive:!1),r._isZoomActive=i,e.setIconStatus("zoom",i?"emphasis":"normal");var o=new hP(fP(e),t,{include:["grid"]}),s=o.makePanelOpts(a,function(l){return l.xAxisDeclared&&!l.yAxisDeclared?"lineX":!l.xAxisDeclared&&l.yAxisDeclared?"lineY":"rect"});r._brushController.setPanels(s).enableBrush(i&&s.length?{brushType:"auto",brushStyle:e.getModel("brushStyle").getItemStyle()}:!1)}Kne("dataZoom",function(e){var t=e.getComponent("toolbox",0),r=["feature","dataZoom"];if(!t||t.get(r)==null)return;var n=t.getModel(r),a=[],i=fP(n),o=Wf(e,i);QA(o.xAxisModels,function(l){return s(l,"xAxis","xAxisIndex")}),QA(o.yAxisModels,function(l){return s(l,"yAxis","yAxisIndex")});function s(l,u,c){var h=l.componentIndex,d={type:"select",$fromToolbox:!0,filterMode:n.get("filterMode",!0)||"filter",id:i_e+u+h};d[c]=h,a.push(d)}return a});function h_e(e){e.registerComponentModel(jxe),e.registerComponentView(Rxe),pf("saveAsImage",zxe),pf("magicType",Fxe),pf("dataView",Xxe),pf("dataZoom",s_e),pf("restore",t_e),$e(Exe)}var f_e=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type="tooltip",t.dependencies=["axisPointer"],t.defaultOption={z:60,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove|click|mousewheel",alwaysShowContent:!1,renderMode:"auto",confine:null,showDelay:0,hideDelay:100,transitionDuration:.4,displayTransition:!0,enterable:!1,backgroundColor:K.color.neutral00,shadowBlur:10,shadowColor:"rgba(0, 0, 0, .2)",shadowOffsetX:1,shadowOffsetY:2,borderRadius:4,borderWidth:1,defaultBorderColor:K.color.border,padding:null,extraCssText:"",axisPointer:{type:"line",axis:"auto",animation:"auto",animationDurationUpdate:200,animationEasingUpdate:"exponentialOut",crossStyle:{color:K.color.borderShade,width:1,type:"dashed",textStyle:{}}},textStyle:{color:K.color.tertiary,fontSize:14}},t}(Qe);function IZ(e){var t=e.get("confine");return t!=null?!!t:e.get("renderMode")==="richText"}function PZ(e){if(ot.domSupported){for(var t=document.documentElement.style,r=0,n=e.length;r-1?(s+="top:50%",l+="translateY(-50%) rotate("+(u=i==="left"?-225:-45)+"deg)"):(s+="left:50%",l+="translateX(-50%) rotate("+(u=i==="top"?225:45)+"deg)");var c=u*Math.PI/180,h=o+a,d=h*Math.abs(Math.cos(c))+h*Math.abs(Math.sin(c)),v=Math.round(((d-Math.SQRT2*a)/2+Math.SQRT2*a-(d-h)/2)*100)/100;s+=";"+i+":-"+v+"px";var g=t+" solid "+a+"px;",m=["position:absolute;width:"+o+"px;height:"+o+"px;z-index:-1;",s+";"+l+";","border-bottom:"+g,"border-right:"+g,"background-color:"+n+";"];return'
'}function x_e(e,t,r){var n="cubic-bezier(0.23,1,0.32,1)",a="",i="";return r&&(a=" "+e/2+"s "+n,i="opacity"+a+",visibility"+a),t||(a=" "+e+"s "+n,i+=(i.length?",":"")+(ot.transformSupported?""+dP+a:",left"+a+",top"+a)),p_e+":"+i}function w4(e,t,r){var n=e.toFixed(0)+"px",a=t.toFixed(0)+"px";if(!ot.transformSupported)return r?"top:"+a+";left:"+n+";":[["top",a],["left",n]];var i=ot.transform3dSupported,o="translate"+(i?"3d":"")+"("+n+","+a+(i?",0":"")+")";return r?"top:0;left:0;"+dP+":"+o+";":[["top",0],["left",0],[DZ,o]]}function __e(e){var t=[],r=e.get("fontSize"),n=e.getTextColor();n&&t.push("color:"+n),t.push("font:"+e.getFont());var a=_e(e.get("lineHeight"),Math.round(r*3/2));r&&t.push("line-height:"+a+"px");var i=e.get("textShadowColor"),o=e.get("textShadowBlur")||0,s=e.get("textShadowOffsetX")||0,l=e.get("textShadowOffsetY")||0;return i&&o&&t.push("text-shadow:"+s+"px "+l+"px "+o+"px "+i),j(["decoration","align"],function(u){var c=e.get(u);c&&t.push("text-"+u+":"+c)}),t.join(";")}function b_e(e,t,r,n){var a=[],i=e.get("transitionDuration"),o=e.get("backgroundColor"),s=e.get("shadowBlur"),l=e.get("shadowColor"),u=e.get("shadowOffsetX"),c=e.get("shadowOffsetY"),h=e.getModel("textStyle"),d=H7(e,"html"),v=u+"px "+c+"px "+s+"px "+l;return a.push("box-shadow:"+v),t&&i>0&&a.push(x_e(i,r,n)),o&&a.push("background-color:"+o),j(["width","color","radius"],function(g){var m="border-"+g,y=yL(m),x=e.get(y);x!=null&&a.push(m+":"+x+(g==="color"?"":"px"))}),a.push(__e(h)),d!=null&&a.push("padding:"+Xd(d).join("px ")+"px"),a.join(";")+";"}function S4(e,t,r,n,a){var i=t&&t.painter;if(r){var o=i&&i.getViewportRoot();o&&SQ(e,o,r,n,a)}else{e[0]=n,e[1]=a;var s=i&&i.getViewportRootOffset();s&&(e[0]+=s.offsetLeft,e[1]+=s.offsetTop)}e[2]=e[0]/t.getWidth(),e[3]=e[1]/t.getHeight()}var w_e=function(){function e(t,r){if(this._show=!1,this._styleCoord=[0,0,0,0],this._enterable=!0,this._alwaysShowContent=!1,this._firstShow=!0,this._longHide=!0,ot.wxa)return null;var n=document.createElement("div");n.domBelongToZr=!0,this.el=n;var a=this._zr=t.getZr(),i=r.appendTo,o=i&&(ue(i)?document.querySelector(i):Lc(i)?i:Me(i)&&i(t.getDom()));S4(this._styleCoord,a,o,t.getWidth()/2,t.getHeight()/2),(o||t.getDom()).appendChild(n),this._api=t,this._container=o;var s=this;n.onmouseenter=function(){s._enterable&&(clearTimeout(s._hideTimeout),s._show=!0),s._inContent=!0},n.onmousemove=function(l){if(l=l||window.event,!s._enterable){var u=a.handler,c=a.painter.getViewportRoot();Fa(c,l,!0),u.dispatch("mousemove",l)}},n.onmouseleave=function(){s._inContent=!1,s._enterable&&s._show&&s.hideLater(s._hideDelay)}}return e.prototype.update=function(t){if(!this._container){var r=this._api.getDom(),n=v_e(r,"position"),a=r.style;a.position!=="absolute"&&n!=="absolute"&&(a.position="relative")}var i=t.get("alwaysShowContent");i&&this._moveIfResized(),this._alwaysShowContent=i,this._enableDisplayTransition=t.get("displayTransition")&&t.get("transitionDuration")>0,this.el.className=t.get("className")||""},e.prototype.show=function(t,r){clearTimeout(this._hideTimeout),clearTimeout(this._longHideTimeout);var n=this.el,a=n.style,i=this._styleCoord;n.innerHTML?a.cssText=g_e+b_e(t,!this._firstShow,this._longHide,this._enableDisplayTransition)+w4(i[0],i[1],!0)+("border-color:"+Fc(r)+";")+(t.get("extraCssText")||"")+(";pointer-events:"+(this._enterable?"auto":"none")):a.display="none",this._show=!0,this._firstShow=!1,this._longHide=!1},e.prototype.setContent=function(t,r,n,a,i){var o=this.el;if(t==null){o.innerHTML="";return}var s="";if(ue(i)&&n.get("trigger")==="item"&&!IZ(n)&&(s=y_e(n,a,i)),ue(t))o.innerHTML=t+s;else if(t){o.innerHTML="",ne(t)||(t=[t]);for(var l=0;l=0?this._tryShow(i,o):a==="leave"&&this._hide(o))},this))},t.prototype._keepShow=function(){var r=this._tooltipModel,n=this._ecModel,a=this._api,i=r.get("triggerOn");if(r.get("trigger")!=="axis"&&(this._lastDataByCoordSys=null,this._cbParamsList=null),this._lastX!=null&&this._lastY!=null&&i!=="none"&&i!=="click"){var o=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout(function(){!a.isDisposed()&&o.manuallyShowTip(r,n,a,{x:o._lastX,y:o._lastY,dataByCoordSys:o._lastDataByCoordSys})})}},t.prototype.manuallyShowTip=function(r,n,a,i){if(!(i.from===this.uid||ot.node||!a.getDom())){var o=M4(i,a);this._ticket="";var s=i.dataByCoordSys,l=k_e(i,n,a);if(l){var u=l.el.getBoundingRect().clone();u.applyTransform(l.el.transform),this._tryShow({offsetX:u.x+u.width/2,offsetY:u.y+u.height/2,target:l.el,position:i.position,positionDefault:"bottom"},o)}else if(i.tooltip&&i.x!=null&&i.y!=null){var c=C_e;c.x=i.x,c.y=i.y,c.update(),Ee(c).tooltipConfig={name:null,option:i.tooltip},this._tryShow({offsetX:i.x,offsetY:i.y,target:c},o)}else if(s)this._tryShow({offsetX:i.x,offsetY:i.y,position:i.position,dataByCoordSys:s,tooltipOption:i.tooltipOption},o);else if(i.seriesIndex!=null){if(this._manuallyAxisShowTip(r,n,a,i))return;var h=pZ(i,n),d=h.point[0],v=h.point[1];d!=null&&v!=null&&this._tryShow({offsetX:d,offsetY:v,target:h.el,position:i.position,positionDefault:"bottom"},o)}else i.x!=null&&i.y!=null&&(a.dispatchAction({type:"updateAxisPointer",x:i.x,y:i.y}),this._tryShow({offsetX:i.x,offsetY:i.y,position:i.position,target:a.getZr().findHover(i.x,i.y).target},o))}},t.prototype.manuallyHideTip=function(r,n,a,i){var o=this._tooltipContent;this._tooltipModel&&o.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=this._lastDataByCoordSys=null,this._cbParamsList=null,i.from!==this.uid&&this._hide(M4(i,a))},t.prototype._manuallyAxisShowTip=function(r,n,a,i){var o=i.seriesIndex,s=i.dataIndex,l=n.getComponent("axisPointer").coordSysAxesInfo;if(!(o==null||s==null||l==null)){var u=n.getSeriesByIndex(o);if(u){var c=u.getData(),h=hp([c.getItemModel(s),u,(u.coordinateSystem||{}).model],this._tooltipModel);if(h.get("trigger")==="axis")return a.dispatchAction({type:"updateAxisPointer",seriesIndex:o,dataIndex:s,position:i.position}),!0}}},t.prototype._tryShow=function(r,n){var a=r.target,i=this._tooltipModel;if(i){this._lastX=r.offsetX,this._lastY=r.offsetY;var o=r.dataByCoordSys;if(o&&o.length)this._showAxisTooltip(o,r);else if(a){var s=Ee(a);if(s.ssrType==="legend")return;this._lastDataByCoordSys=null,this._cbParamsList=null;var l,u;cc(a,function(c){if(c.tooltipDisabled)return l=u=null,!0;l||u||(Ee(c).dataIndex!=null?l=c:Ee(c).tooltipConfig!=null&&(u=c))},!0),l?this._showSeriesItemTooltip(r,l,n):u?this._showComponentItemTooltip(r,u,n):this._hide(n)}else this._lastDataByCoordSys=null,this._cbParamsList=null,this._hide(n)}},t.prototype._showOrMove=function(r,n){var a=r.get("showDelay");n=ve(n,this),clearTimeout(this._showTimout),a>0?this._showTimout=setTimeout(n,a):n()},t.prototype._showAxisTooltip=function(r,n){var a=this._ecModel,i=this._tooltipModel,o=[n.offsetX,n.offsetY],s=hp([n.tooltipOption],i),l=this._renderMode,u=[],c=Mr("section",{blocks:[],noHeader:!0}),h=[],d=new sC;j(r,function(_){j(_.dataByAxis,function(w){var S=a.getComponent(w.axisDim+"Axis",w.axisIndex),C=w.value,M=S.axis,A=M.scale.parse(C);if(!(!S||C==null)){var I=hZ(C,M,a,w.seriesDataIndices,w.valueLabelOpt),k=Mr("section",{header:I,noHeader:!_a(I),sortBlocks:!0,blocks:[]});c.blocks.push(k),j(w.seriesDataIndices,function(P){var D=a.getSeriesByIndex(P.seriesIndex),z=P.dataIndexInside,E=D.getDataParams(z);if(!(E.dataIndex<0)){E.axisDim=w.axisDim,E.axisIndex=w.axisIndex,E.axisType=w.axisType,E.axisId=w.axisId,E.axisValue=lb(S.axis,{value:A}),E.axisValueLabel=I,E.marker=d.makeTooltipMarker("item",Fc(E.color),l);var B=DR(D.formatTooltip(z,!0,null)),H=B.frag;if(H){var V=hp([D],i).get("valueFormatter");k.blocks.push(V?te({valueFormatter:V},H):H)}B.text&&h.push(B.text),u.push(E)}})}})}),c.blocks.reverse(),h.reverse();var v=n.position,g=s.get("order"),m=BR(c,d,l,g,a.get("useUTC"),s.get("textStyle"));m&&h.unshift(m);var y=l==="richText"?` - -`:"
",x=h.join(y);this._showOrMove(s,function(){this._updateContentNotChangedOnAxis(r,u)?this._updatePosition(s,v,o[0],o[1],this._tooltipContent,u):this._showTooltipContent(s,x,u,Math.random()+"",o[0],o[1],v,null,d)})},t.prototype._showSeriesItemTooltip=function(r,n,a){var i=this._ecModel,o=Ee(n),s=o.seriesIndex,l=i.getSeriesByIndex(s),u=o.dataModel||l,c=o.dataIndex,h=o.dataType,d=u.getData(h),v=this._renderMode,g=r.positionDefault,m=hp([d.getItemModel(c),u,l&&(l.coordinateSystem||{}).model],this._tooltipModel,g?{position:g}:null),y=m.get("trigger");if(!(y!=null&&y!=="item")){var x=u.getDataParams(c,h),_=new sC;x.marker=_.makeTooltipMarker("item",Fc(x.color),v);var w=DR(u.formatTooltip(c,!1,h)),S=m.get("order"),C=m.get("valueFormatter"),M=w.frag,A=M?BR(C?te({valueFormatter:C},M):M,_,v,S,i.get("useUTC"),m.get("textStyle")):w.text,I="item_"+u.name+"_"+c;this._showOrMove(m,function(){this._showTooltipContent(m,A,x,I,r.offsetX,r.offsetY,r.position,r.target,_)}),a({type:"showTip",dataIndexInside:c,dataIndex:d.getRawIndex(c),seriesIndex:s,from:this.uid})}},t.prototype._showComponentItemTooltip=function(r,n,a){var i=this._renderMode==="html",o=Ee(n),s=o.tooltipConfig,l=s.option||{},u=l.encodeHTMLContent;if(ue(l)){var c=l;l={content:c,formatter:c},u=!0}u&&i&&l.content&&(l=Te(l),l.content=Tn(l.content));var h=[l],d=this._ecModel.getComponent(o.componentMainType,o.componentIndex);d&&h.push(d),h.push({formatter:l.content});var v=r.positionDefault,g=hp(h,this._tooltipModel,v?{position:v}:null),m=g.get("content"),y=Math.random()+"",x=new sC;this._showOrMove(g,function(){var _=Te(g.get("formatterParams")||{});this._showTooltipContent(g,m,_,y,r.offsetX,r.offsetY,r.position,n,x)}),a({type:"showTip",from:this.uid})},t.prototype._showTooltipContent=function(r,n,a,i,o,s,l,u,c){if(this._ticket="",!(!r.get("showContent")||!r.get("show"))){var h=this._tooltipContent;h.setEnterable(r.get("enterable"));var d=r.get("formatter");l=l||r.get("position");var v=n,g=this._getNearestPoint([o,s],a,r.get("trigger"),r.get("borderColor"),r.get("defaultBorderColor",!0)),m=g.color;if(d)if(ue(d)){var y=r.ecModel.get("useUTC"),x=ne(a)?a[0]:a,_=x&&x.axisType&&x.axisType.indexOf("time")>=0;v=d,_&&(v=Rm(x.axisValue,v,y)),v=xL(v,a,!0)}else if(Me(d)){var w=ve(function(S,C){S===this._ticket&&(h.setContent(C,c,r,m,l),this._updatePosition(r,l,o,s,h,a,u))},this);this._ticket=i,v=d(a,i,w)}else v=d;h.setContent(v,c,r,m,l),h.show(r,m),this._updatePosition(r,l,o,s,h,a,u)}},t.prototype._getNearestPoint=function(r,n,a,i,o){if(a==="axis"||ne(n))return{color:i||o};if(!ne(n))return{color:i||n.color||n.borderColor}},t.prototype._updatePosition=function(r,n,a,i,o,s,l){var u=this._api.getWidth(),c=this._api.getHeight();n=n||r.get("position");var h=o.getSize(),d=r.get("align"),v=r.get("verticalAlign"),g=l&&l.getBoundingRect().clone();if(l&&g.applyTransform(l.transform),Me(n)&&(n=n([a,i],s,o.el,g,{viewSize:[u,c],contentSize:h.slice()})),ne(n))a=fe(n[0],u),i=fe(n[1],c);else if(Ie(n)){var m=n;m.width=h[0],m.height=h[1];var y=Zt(m,{width:u,height:c});a=y.x,i=y.y,d=null,v=null}else if(ue(n)&&l){var x=N_e(n,g,h,r.get("borderWidth"));a=x[0],i=x[1]}else{var x=M_e(a,i,o,u,c,d?null:20,v?null:20);a=x[0],i=x[1]}if(d&&(a-=A4(d)?h[0]/2:d==="right"?h[0]:0),v&&(i-=A4(v)?h[1]/2:v==="bottom"?h[1]:0),IZ(r)){var x=A_e(a,i,o,u,c);a=x[0],i=x[1]}o.moveTo(a,i)},t.prototype._updateContentNotChangedOnAxis=function(r,n){var a=this._lastDataByCoordSys,i=this._cbParamsList,o=!!a&&a.length===r.length;return o&&j(a,function(s,l){var u=s.dataByAxis||[],c=r[l]||{},h=c.dataByAxis||[];o=o&&u.length===h.length,o&&j(u,function(d,v){var g=h[v]||{},m=d.seriesDataIndices||[],y=g.seriesDataIndices||[];o=o&&d.value===g.value&&d.axisType===g.axisType&&d.axisId===g.axisId&&m.length===y.length,o&&j(m,function(x,_){var w=y[_];o=o&&x.seriesIndex===w.seriesIndex&&x.dataIndex===w.dataIndex}),i&&j(d.seriesDataIndices,function(x){var _=x.seriesIndex,w=n[_],S=i[_];w&&S&&S.data!==w.data&&(o=!1)})})}),this._lastDataByCoordSys=r,this._cbParamsList=n,!!o},t.prototype._hide=function(r){this._lastDataByCoordSys=null,this._cbParamsList=null,r({type:"hideTip",from:this.uid})},t.prototype.dispose=function(r,n){ot.node||!n.getDom()||(Ug(this,"_updatePosition"),this._tooltipContent.dispose(),WA("itemTooltip",n),this._tooltipContent=null,this._tooltipModel=null,this._lastDataByCoordSys=null,this._cbParamsList=null)},t.type="tooltip",t}(Rt);function hp(e,t,r){var n=t.ecModel,a;r?(a=new tt(r,n,n),a=new tt(t.option,a,n)):a=t;for(var i=e.length-1;i>=0;i--){var o=e[i];o&&(o instanceof tt&&(o=o.get("tooltip",!0)),ue(o)&&(o={formatter:o}),o&&(a=new tt(o,a,n)))}return a}function M4(e,t){return e.dispatchAction||ve(t.dispatchAction,t)}function M_e(e,t,r,n,a,i,o){var s=r.getSize(),l=s[0],u=s[1];return i!=null&&(e+l+i+2>n?e-=l+i:e+=i),o!=null&&(t+u+o>a?t-=u+o:t+=o),[e,t]}function A_e(e,t,r,n,a){var i=r.getSize(),o=i[0],s=i[1];return e=Math.min(e+o,n)-o,t=Math.min(t+s,a)-s,e=Math.max(e,0),t=Math.max(t,0),[e,t]}function N_e(e,t,r,n){var a=r[0],i=r[1],o=Math.ceil(Math.SQRT2*n)+8,s=0,l=0,u=t.width,c=t.height;switch(e){case"inside":s=t.x+u/2-a/2,l=t.y+c/2-i/2;break;case"top":s=t.x+u/2-a/2,l=t.y-i-o;break;case"bottom":s=t.x+u/2-a/2,l=t.y+c+o;break;case"left":s=t.x-a-o,l=t.y+c/2-i/2;break;case"right":s=t.x+u+o,l=t.y+c/2-i/2}return[s,l]}function A4(e){return e==="center"||e==="middle"}function k_e(e,t,r){var n=Bk(e).queryOptionMap,a=n.keys()[0];if(!(!a||a==="series")){var i=Bd(t,a,n.get(a),{useDefault:!1,enableAll:!1,enableNone:!1}),o=i.models[0];if(o){var s=r.getViewOfComponentModel(o),l;if(s.group.traverse(function(u){var c=Ee(u).tooltipConfig;if(c&&c.name===e.name)return l=u,!0}),l)return{componentMainType:a,componentIndex:o.componentIndex,el:l}}}}function L_e(e){$e(Ym),e.registerComponentModel(f_e),e.registerComponentView(T_e),e.registerAction({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},ar),e.registerAction({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},ar)}var I_e=["rect","polygon","keep","clear"];function P_e(e,t){var r=jt(e?e.brush:[]);if(r.length){var n=[];j(r,function(l){var u=l.hasOwnProperty("toolbox")?l.toolbox:[];u instanceof Array&&(n=n.concat(u))});var a=e&&e.toolbox;ne(a)&&(a=a[0]),a||(a={feature:{}},e.toolbox=[a]);var i=a.feature||(a.feature={}),o=i.brush||(i.brush={}),s=o.type||(o.type=[]);s.push.apply(s,n),k1(s,function(l){return l+""},null),t&&!s.length&&s.push.apply(s,I_e)}}var N4=j;function k4(e){if(e){for(var t in e)if(e.hasOwnProperty(t))return!0}}function eN(e,t,r){var n={};return N4(t,function(i){var o=n[i]=a();N4(e[i],function(s,l){if(Gr.isValidType(l)){var u={type:l,visual:s};r&&r(u,i),o[l]=new Gr(u),l==="opacity"&&(u=Te(u),u.type="colorAlpha",o.__hidden.__alphaForOpacity=new Gr(u))}})}),n;function a(){var i=function(){};i.prototype.__hidden=i.prototype;var o=new i;return o}}function jZ(e,t,r){var n;j(r,function(a){t.hasOwnProperty(a)&&k4(t[a])&&(n=!0)}),n&&j(r,function(a){t.hasOwnProperty(a)&&k4(t[a])?e[a]=Te(t[a]):delete e[a]})}function D_e(e,t,r,n,a,i){var o={};j(e,function(h){var d=Gr.prepareVisualTypes(t[h]);o[h]=d});var s;function l(h){return kL(r,s,h)}function u(h,d){Q7(r,s,h,d)}r.each(c);function c(h,d){s=h;var v=r.getRawDataItem(s);if(!(v&&v.visualMap===!1))for(var g=n.call(a,h),m=t[g],y=o[g],x=0,_=y.length;x<_;x++){var w=y[x];m[w]&&m[w].applyVisual(h,l,u)}}}function E_e(e,t,r,n){var a={};return j(e,function(i){var o=Gr.prepareVisualTypes(t[i]);a[i]=o}),{progress:function(o,s){var l;n!=null&&(l=s.getDimensionIndex(n));function u(C){return kL(s,h,C)}function c(C,M){Q7(s,h,C,M)}for(var h,d=s.getStore();(h=o.next())!=null;){var v=s.getRawDataItem(h);if(!(v&&v.visualMap===!1))for(var g=n!=null?d.get(l,h):h,m=r(g),y=t[m],x=a[m],_=0,w=x.length;_t[0][1]&&(t[0][1]=i[0]),i[1]t[1][1]&&(t[1][1]=i[1])}return t&&E4(t)}};function E4(e){return new ke(e[0][0],e[1][0],e[0][1]-e[0][0],e[1][1]-e[1][0])}var G_e=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.init=function(r,n){this.ecModel=r,this.api=n,this.model,(this._brushController=new EI(n.getZr())).on("brush",ve(this._onBrush,this)).mount()},t.prototype.render=function(r,n,a,i){this.model=r,this._updateController(r,n,a,i)},t.prototype.updateTransform=function(r,n,a,i){RZ(n),this._updateController(r,n,a,i)},t.prototype.updateVisual=function(r,n,a,i){this.updateTransform(r,n,a,i)},t.prototype.updateView=function(r,n,a,i){this._updateController(r,n,a,i)},t.prototype._updateController=function(r,n,a,i){(!i||i.$from!==r.id)&&this._brushController.setPanels(r.brushTargetManager.makePanelOpts(a)).enableBrush(r.brushOption).updateCovers(r.areas.slice())},t.prototype.dispose=function(){this._brushController.dispose()},t.prototype._onBrush=function(r){var n=this.model.id,a=this.model.brushTargetManager.setOutputRanges(r.areas,this.ecModel);(!r.isEnd||r.removeOnClick)&&this.api.dispatchAction({type:"brush",brushId:n,areas:Te(a),$from:n}),r.isEnd&&this.api.dispatchAction({type:"brushEnd",brushId:n,areas:Te(a),$from:n})},t.type="brush",t}(Rt),H_e=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.areas=[],r.brushOption={},r}return t.prototype.optionUpdated=function(r,n){var a=this.option;!n&&jZ(a,r,["inBrush","outOfBrush"]);var i=a.inBrush=a.inBrush||{};a.outOfBrush=a.outOfBrush||{color:this.option.defaultOutOfBrushColor},i.hasOwnProperty("liftZ")||(i.liftZ=5)},t.prototype.setAreas=function(r){r&&(this.areas=oe(r,function(n){return j4(this.option,n)},this))},t.prototype.setBrushOption=function(r){this.brushOption=j4(this.option,r),this.brushType=this.brushOption.brushType},t.type="brush",t.dependencies=["geo","grid","xAxis","yAxis","parallel","series"],t.defaultOption={seriesIndex:"all",brushType:"rect",brushMode:"single",transformable:!0,brushStyle:{borderWidth:1,color:K.color.backgroundTint,borderColor:K.color.borderTint},throttleType:"fixRate",throttleDelay:0,removeOnClick:!0,z:1e4,defaultOutOfBrushColor:K.color.disabled},t}(Qe);function j4(e,t){return We({brushType:e.brushType,brushMode:e.brushMode,transformable:e.transformable,brushStyle:new tt(e.brushStyle).getItemStyle(),removeOnClick:e.removeOnClick,z:e.z},t,!0)}var U_e=["rect","polygon","lineX","lineY","keep","clear"],W_e=function(e){X(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.render=function(r,n,a){var i,o,s;n.eachComponent({mainType:"brush"},function(l){i=l.brushType,o=l.brushOption.brushMode||"single",s=s||!!l.areas.length}),this._brushType=i,this._brushMode=o,j(r.get("type",!0),function(l){r.setIconStatus(l,(l==="keep"?o==="multiple":l==="clear"?s:l===i)?"emphasis":"normal")})},t.prototype.updateView=function(r,n,a){this.render(r,n,a)},t.prototype.getIcons=function(){var r=this.model,n=r.get("icon",!0),a={};return j(r.get("type",!0),function(i){n[i]&&(a[i]=n[i])}),a},t.prototype.onclick=function(r,n,a){var i=this._brushType,o=this._brushMode;a==="clear"?(n.dispatchAction({type:"axisAreaSelect",intervals:[]}),n.dispatchAction({type:"brush",command:"clear",areas:[]})):n.dispatchAction({type:"takeGlobalCursor",key:"brush",brushOption:{brushType:a==="keep"?i:i===a?!1:a,brushMode:a==="keep"?o==="multiple"?"single":"multiple":o}})},t.getDefaultOption=function(r){var n={show:!0,type:U_e.slice(),icon:{rect:"M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13",polygon:"M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2",lineX:"M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4",lineY:"M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4",keep:"M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z",clear:"M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2"},title:r.getLocaleModel().get(["toolbox","brush","title"])};return n},t}(Co);function Z_e(e){e.registerComponentView(G_e),e.registerComponentModel(H_e),e.registerPreprocessor(P_e),e.registerVisual(e.PRIORITY.VISUAL.BRUSH,R_e),e.registerAction({type:"brush",event:"brush",update:"updateVisual"},function(t,r){r.eachComponent({mainType:"brush",query:t},function(n){n.setAreas(t.areas)})}),e.registerAction({type:"brushSelect",event:"brushSelected",update:"none"},ar),e.registerAction({type:"brushEnd",event:"brushEnd",update:"none"},ar),pf("brush",W_e)}var $_e=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.layoutMode={type:"box",ignoreSize:!0},r}return t.type="title",t.defaultOption={z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:"center",top:K.size.m,backgroundColor:K.color.transparent,borderColor:K.color.primary,borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bold",color:K.color.primary},subtextStyle:{fontSize:12,color:K.color.quaternary}},t}(Qe),Y_e=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,a){if(this.group.removeAll(),!!r.get("show")){var i=this.group,o=r.getModel("textStyle"),s=r.getModel("subtextStyle"),l=r.get("textAlign"),u=_e(r.get("textBaseline"),r.get("textVerticalAlign")),c=new ht({style:Et(o,{text:r.get("text"),fill:o.getTextColor()},{disableBox:!0}),z2:10}),h=c.getBoundingRect(),d=r.get("subtext"),v=new ht({style:Et(s,{text:d,fill:s.getTextColor(),y:h.height+r.get("itemGap"),verticalAlign:"top"},{disableBox:!0}),z2:10}),g=r.get("link"),m=r.get("sublink"),y=r.get("triggerEvent",!0);c.silent=!g&&!y,v.silent=!m&&!y,g&&c.on("click",function(){X_(g,"_"+r.get("target"))}),m&&v.on("click",function(){X_(m,"_"+r.get("subtarget"))}),Ee(c).eventData=Ee(v).eventData=y?{componentType:"title",componentIndex:r.componentIndex}:null,i.add(c),d&&i.add(v);var x=i.getBoundingRect(),_=r.getBoxLayoutParams();_.width=x.width,_.height=x.height;var w=jr(r,a),S=Zt(_,w.refContainer,r.get("padding"));l||(l=r.get("left")||r.get("right"),l==="middle"&&(l="center"),l==="right"?S.x+=S.width:l==="center"&&(S.x+=S.width/2)),u||(u=r.get("top")||r.get("bottom"),u==="center"&&(u="middle"),u==="bottom"?S.y+=S.height:u==="middle"&&(S.y+=S.height/2),u=u||"top"),i.x=S.x,i.y=S.y,i.markRedraw();var C={align:l,verticalAlign:u};c.setStyle(C),v.setStyle(C),x=i.getBoundingRect();var M=S.margin,A=r.getItemStyle(["color","opacity"]);A.fill=r.get("backgroundColor");var I=new Ke({shape:{x:x.x-M[3],y:x.y-M[0],width:x.width+M[1]+M[3],height:x.height+M[0]+M[2],r:r.get("borderRadius")},style:A,subPixelOptimize:!0,silent:!0});i.add(I)}},t.type="title",t}(Rt);function X_e(e){e.registerComponentModel($_e),e.registerComponentView(Y_e)}var R4=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.layoutMode="box",r}return t.prototype.init=function(r,n,a){this.mergeDefaultAndTheme(r,a),this._initData()},t.prototype.mergeOption=function(r){e.prototype.mergeOption.apply(this,arguments),this._initData()},t.prototype.setCurrentIndex=function(r){r==null&&(r=this.option.currentIndex);var n=this._data.count();this.option.loop?r=(r%n+n)%n:(r>=n&&(r=n-1),r<0&&(r=0)),this.option.currentIndex=r},t.prototype.getCurrentIndex=function(){return this.option.currentIndex},t.prototype.isIndexMax=function(){return this.getCurrentIndex()>=this._data.count()-1},t.prototype.setPlayState=function(r){this.option.autoPlay=!!r},t.prototype.getPlayState=function(){return!!this.option.autoPlay},t.prototype._initData=function(){var r=this.option,n=r.data||[],a=r.axisType,i=this._names=[],o;a==="category"?(o=[],j(n,function(u,c){var h=Ir(zd(u),""),d;Ie(u)?(d=Te(u),d.value=c):d=c,o.push(d),i.push(h)})):o=n;var s={category:"ordinal",time:"time",value:"number"}[a]||"number",l=this._data=new Nn([{name:"value",type:s}],this);l.initData(o,i)},t.prototype.getData=function(){return this._data},t.prototype.getCategories=function(){if(this.get("axisType")==="category")return this._names.slice()},t.type="timeline",t.defaultOption={z:4,show:!0,axisType:"time",realtime:!0,left:"20%",top:null,right:"20%",bottom:0,width:null,height:40,padding:K.size.m,controlPosition:"left",autoPlay:!1,rewind:!1,loop:!0,playInterval:2e3,currentIndex:0,itemStyle:{},label:{color:K.color.secondary},data:[]},t}(Qe),OZ=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type="timeline.slider",t.defaultOption=iu(R4.defaultOption,{backgroundColor:"rgba(0,0,0,0)",borderColor:K.color.border,borderWidth:0,orient:"horizontal",inverse:!1,tooltip:{trigger:"item"},symbol:"circle",symbolSize:12,lineStyle:{show:!0,width:2,color:K.color.accent10},label:{position:"auto",show:!0,interval:"auto",rotate:0,color:K.color.tertiary},itemStyle:{color:K.color.accent20,borderWidth:0},checkpointStyle:{symbol:"circle",symbolSize:15,color:K.color.accent50,borderColor:K.color.accent50,borderWidth:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,shadowColor:"rgba(0, 0, 0, 0)",animation:!0,animationDuration:300,animationEasing:"quinticInOut"},controlStyle:{show:!0,showPlayBtn:!0,showPrevBtn:!0,showNextBtn:!0,itemSize:24,itemGap:12,position:"left",playIcon:"path://M15 0C23.2843 0 30 6.71573 30 15C30 23.2843 23.2843 30 15 30C6.71573 30 0 23.2843 0 15C0 6.71573 6.71573 0 15 0ZM15 3C8.37258 3 3 8.37258 3 15C3 21.6274 8.37258 27 15 27C21.6274 27 27 21.6274 27 15C27 8.37258 21.6274 3 15 3ZM11.5 10.6699C11.5 9.90014 12.3333 9.41887 13 9.80371L20.5 14.1338C21.1667 14.5187 21.1667 15.4813 20.5 15.8662L13 20.1963C12.3333 20.5811 11.5 20.0999 11.5 19.3301V10.6699Z",stopIcon:"path://M15 0C23.2843 0 30 6.71573 30 15C30 23.2843 23.2843 30 15 30C6.71573 30 0 23.2843 0 15C0 6.71573 6.71573 0 15 0ZM15 3C8.37258 3 3 8.37258 3 15C3 21.6274 8.37258 27 15 27C21.6274 27 27 21.6274 27 15C27 8.37258 21.6274 3 15 3ZM11.5 10C12.3284 10 13 10.6716 13 11.5V18.5C13 19.3284 12.3284 20 11.5 20C10.6716 20 10 19.3284 10 18.5V11.5C10 10.6716 10.6716 10 11.5 10ZM18.5 10C19.3284 10 20 10.6716 20 11.5V18.5C20 19.3284 19.3284 20 18.5 20C17.6716 20 17 19.3284 17 18.5V11.5C17 10.6716 17.6716 10 18.5 10Z",nextIcon:"path://M0.838834 18.7383C0.253048 18.1525 0.253048 17.2028 0.838834 16.617L7.55635 9.89949L0.838834 3.18198C0.253048 2.59619 0.253048 1.64645 0.838834 1.06066C1.42462 0.474874 2.37437 0.474874 2.96015 1.06066L10.7383 8.83883L10.8412 8.95277C11.2897 9.50267 11.2897 10.2963 10.8412 10.8462L10.7383 10.9602L2.96015 18.7383C2.37437 19.3241 1.42462 19.3241 0.838834 18.7383Z",prevIcon:"path://M10.9602 1.06066C11.5459 1.64645 11.5459 2.59619 10.9602 3.18198L4.24264 9.89949L10.9602 16.617C11.5459 17.2028 11.5459 18.1525 10.9602 18.7383C10.3744 19.3241 9.42462 19.3241 8.83883 18.7383L1.06066 10.9602L0.957771 10.8462C0.509245 10.2963 0.509245 9.50267 0.957771 8.95277L1.06066 8.83883L8.83883 1.06066C9.42462 0.474874 10.3744 0.474874 10.9602 1.06066Z",prevBtnSize:18,nextBtnSize:18,color:K.color.accent50,borderColor:K.color.accent50,borderWidth:0},emphasis:{label:{show:!0,color:K.color.accent60},itemStyle:{color:K.color.accent60,borderColor:K.color.accent60},controlStyle:{color:K.color.accent70,borderColor:K.color.accent70}},progress:{lineStyle:{color:K.color.accent30},itemStyle:{color:K.color.accent40}},data:[]}),t}(R4);br(OZ,U1.prototype);var q_e=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type="timeline",t}(Rt),K_e=function(e){X(t,e);function t(r,n,a,i){var o=e.call(this,r,n,a)||this;return o.type=i||"value",o}return t.prototype.getLabelModel=function(){return this.model.getModel("label")},t.prototype.isHorizontal=function(){return this.model.get("orient")==="horizontal"},t}(ui),DT=Math.PI,O4=Ze(),J_e=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.init=function(r,n){this.api=n},t.prototype.render=function(r,n,a){if(this.model=r,this.api=a,this.ecModel=n,this.group.removeAll(),r.get("show",!0)){var i=this._layout(r,a),o=this._createGroup("_mainGroup"),s=this._createGroup("_labelGroup"),l=this._axis=this._createAxis(i,r);r.formatTooltip=function(u){var c=l.scale.getLabel({value:u});return Mr("nameValue",{noName:!0,value:c})},j(["AxisLine","AxisTick","Control","CurrentPointer"],function(u){this["_render"+u](i,o,l,r)},this),this._renderAxisLabel(i,s,l,r),this._position(i,r)}this._doPlayStop(),this._updateTicksStatus()},t.prototype.remove=function(){this._clearTimer(),this.group.removeAll()},t.prototype.dispose=function(){this._clearTimer()},t.prototype._layout=function(r,n){var a=r.get(["label","position"]),i=r.get("orient"),o=Q_e(r,n),s;a==null||a==="auto"?s=i==="horizontal"?o.y+o.height/2=0||s==="+"?"left":"right"},u={horizontal:s>=0||s==="+"?"top":"bottom",vertical:"middle"},c={horizontal:0,vertical:DT/2},h=i==="vertical"?o.height:o.width,d=r.getModel("controlStyle"),v=d.get("show",!0),g=v?d.get("itemSize"):0,m=v?d.get("itemGap"):0,y=g+m,x=r.get(["label","rotate"])||0;x=x*DT/180;var _,w,S,C=d.get("position",!0),M=v&&d.get("showPlayBtn",!0),A=v&&d.get("showPrevBtn",!0),I=v&&d.get("showNextBtn",!0),k=0,P=h;C==="left"||C==="bottom"?(M&&(_=[0,0],k+=y),A&&(w=[k,0],k+=y),I&&(S=[P-g,0],P-=y)):(M&&(_=[P-g,0],P-=y),A&&(w=[0,0],k+=y),I&&(S=[P-g,0],P-=y));var D=[k,P];return r.get("inverse")&&D.reverse(),{viewRect:o,mainLength:h,orient:i,rotation:c[i],labelRotation:x,labelPosOpt:s,labelAlign:r.get(["label","align"])||l[i],labelBaseline:r.get(["label","verticalAlign"])||r.get(["label","baseline"])||u[i],playPosition:_,prevBtnPosition:w,nextBtnPosition:S,axisExtent:D,controlSize:g,controlGap:m}},t.prototype._position=function(r,n){var a=this._mainGroup,i=this._labelGroup,o=r.viewRect;if(r.orient==="vertical"){var s=$t(),l=o.x,u=o.y+o.height;Pi(s,s,[-l,-u]),js(s,s,-DT/2),Pi(s,s,[l,u]),o=o.clone(),o.applyTransform(s)}var c=_(o),h=_(a.getBoundingRect()),d=_(i.getBoundingRect()),v=[a.x,a.y],g=[i.x,i.y];g[0]=v[0]=c[0][0];var m=r.labelPosOpt;if(m==null||ue(m)){var y=m==="+"?0:1;w(v,h,c,1,y),w(g,d,c,1,1-y)}else{var y=m>=0?0:1;w(v,h,c,1,y),g[1]=v[1]+m}a.setPosition(v),i.setPosition(g),a.rotation=i.rotation=r.rotation,x(a),x(i);function x(S){S.originX=c[0][0]-S.x,S.originY=c[1][0]-S.y}function _(S){return[[S.x,S.x+S.width],[S.y,S.y+S.height]]}function w(S,C,M,A,I){S[A]+=M[A][I]-C[A][I]}},t.prototype._createAxis=function(r,n){var a=n.getData(),i=n.get("axisType")||n.get("type");i!=="category"&&i!=="time"&&(i="value");var o=tv(n,i,!1);o.getTicks=function(){return a.mapArray(["value"],function(u){return{value:u}})};var s=a.getDataExtent("value");o.setExtent(s[0],s[1]),r8(o,{fixMinMax:[!0,!0]});var l=new K_e("value",o,r.axisExtent,i);return l.model=n,l},t.prototype._createGroup=function(r){var n=this[r]=new Ne;return this.group.add(n),n},t.prototype._renderAxisLine=function(r,n,a,i){var o=a.getExtent();if(i.get(["lineStyle","show"])){var s=new yr({shape:{x1:o[0],y1:0,x2:o[1],y2:0},style:te({lineCap:"round"},i.getModel("lineStyle").getLineStyle()),silent:!0,z2:1});n.add(s);var l=this._progressLine=new yr({shape:{x1:o[0],x2:this._currentPointer?this._currentPointer.x:o[0],y1:0,y2:0},style:Le({lineCap:"round",lineWidth:s.style.lineWidth},i.getModel(["progress","lineStyle"]).getLineStyle()),silent:!0,z2:1});n.add(l)}},t.prototype._renderAxisTick=function(r,n,a,i){var o=this,s=i.getData(),l=a.scale.getTicks();this._tickSymbols=[],j(l,function(u){var c=a.dataToCoord(u.value),h=s.getItemModel(u.value),d=h.getModel("itemStyle"),v=h.getModel(["emphasis","itemStyle"]),g=h.getModel(["progress","itemStyle"]),m={x:c,y:0,onclick:ve(o._changeTimeline,o,u.value)},y=z4(h,d,n,m);y.ensureState("emphasis").style=v.getItemStyle(),y.ensureState("progress").style=g.getItemStyle(),Il(y);var x=Ee(y);h.get("tooltip")?(x.dataIndex=u.value,x.dataModel=i):x.dataIndex=x.dataModel=null,o._tickSymbols.push(y)})},t.prototype._renderAxisLabel=function(r,n,a,i){var o=this,s=a.getLabelModel();if(s.get("show")){var l=i.getData(),u=a.getViewLabels();this._tickLabels=[],j(u,function(c){if(!c.tick.offInterval){var h=c.tick.value,d=l.getItemModel(h),v=d.getModel("label"),g=d.getModel(["emphasis","label"]),m=d.getModel(["progress","label"]),y=a.dataToCoord(h),x=new ht({x:y,y:0,rotation:r.labelRotation-r.rotation,onclick:ve(o._changeTimeline,o,h),silent:!1,style:Et(v,{text:c.formattedLabel,align:r.labelAlign,verticalAlign:r.labelBaseline})});x.ensureState("emphasis").style=Et(g),x.ensureState("progress").style=Et(m),n.add(x),Il(x),O4(x).dataIndex=h,o._tickLabels.push(x)}})}},t.prototype._renderControl=function(r,n,a,i){var o=r.controlSize,s=r.rotation,l=i.getModel("controlStyle").getItemStyle(),u=i.getModel(["emphasis","controlStyle"]).getItemStyle(),c=i.getPlayState(),h=i.get("inverse",!0);d(r.nextBtnPosition,"next",ve(this._changeTimeline,this,h?"-":"+")),d(r.prevBtnPosition,"prev",ve(this._changeTimeline,this,h?"+":"-")),d(r.playPosition,c?"stop":"play",ve(this._handlePlayClick,this,!c),!0);function d(v,g,m,y){if(v){var x=ko(_e(i.get(["controlStyle",g+"BtnSize"]),o),o),_=[0,-x/2,x,x],w=ebe(i,g+"Icon",_,{x:v[0],y:v[1],originX:o/2,originY:0,rotation:y?-s:0,rectHover:!0,style:l,onclick:m});w.ensureState("emphasis").style=u,n.add(w),Il(w)}}},t.prototype._renderCurrentPointer=function(r,n,a,i){var o=i.getData(),s=i.getCurrentIndex(),l=o.getItemModel(s).getModel("checkpointStyle"),u=this,c={onCreate:function(h){h.draggable=!0,h.drift=ve(u._handlePointerDrag,u),h.ondragend=ve(u._handlePointerDragend,u),B4(h,u._progressLine,s,a,i,!0)},onUpdate:function(h){B4(h,u._progressLine,s,a,i)}};this._currentPointer=z4(l,l,this._mainGroup,{},this._currentPointer,c)},t.prototype._handlePlayClick=function(r){this._clearTimer(),this.api.dispatchAction({type:"timelinePlayChange",playState:r,from:this.uid})},t.prototype._handlePointerDrag=function(r,n,a){this._clearTimer(),this._pointerChangeTimeline([a.offsetX,a.offsetY])},t.prototype._handlePointerDragend=function(r){this._pointerChangeTimeline([r.offsetX,r.offsetY],!0)},t.prototype._pointerChangeTimeline=function(r,n){var a=this._toAxisCoord(r)[0],i=this._axis,o=qr(i.getExtent().slice());a>o[1]&&(a=o[1]),a=0&&(s[o]=+s[o].toFixed(g)),[s,v]}var ox={min:Xe(ix,"min"),max:Xe(ix,"max"),average:Xe(ix,"average"),median:Xe(ix,"median")};function pm(e,t){if(t){var r=e.getData(),n=e.coordinateSystem,a=n&&n.dimensions;if(!obe(t)&&!ne(t.coord)&&ne(a)){var i=zZ(t,r,n,e);if(t=Te(t),t.type&&ox[t.type]&&i.baseAxis&&i.valueAxis){var o=Ve(a,i.baseAxis.dim),s=Ve(a,i.valueAxis.dim),l=ox[t.type](r,i.valueAxis.dim,i.baseDataDim,i.valueDataDim,o,s);t.coord=l[0],t.value=l[1]}else t.coord=[t.xAxis!=null?t.xAxis:t.radiusAxis,t.yAxis!=null?t.yAxis:t.angleAxis]}if(t.coord==null||!ne(a)){t.coord=[];var u=e.getBaseAxis();if(u&&t.type&&ox[t.type]){var c=n.getOtherAxis(u);c&&(t.value=Fb(r,r.mapDimension(c.dim),t.type))}}else for(var h=t.coord,d=0;d<2;d++)ox[h[d]]&&(h[d]=Fb(r,r.mapDimension(a[d]),h[d]));return t}}function zZ(e,t,r,n){var a={};return e.valueIndex!=null||e.valueDim!=null?(a.valueDataDim=e.valueIndex!=null?t.getDimension(e.valueIndex):e.valueDim,a.valueAxis=r.getAxis(sbe(n,a.valueDataDim)),a.baseAxis=r.getOtherAxis(a.valueAxis),a.baseDataDim=t.mapDimension(a.baseAxis.dim)):(a.baseAxis=n.getBaseAxis(),a.valueAxis=r.getOtherAxis(a.baseAxis),a.baseDataDim=t.mapDimension(a.baseAxis.dim),a.valueDataDim=t.mapDimension(a.valueAxis.dim)),a}function sbe(e,t){var r=e.getData().getDimensionInfo(t);return r&&r.coordDim}function gm(e,t){return e&&e.containData&&t.coord&&!rN(t)?e.containData(t.coord):!0}function lbe(e,t,r){return e&&e.containZone&&t.coord&&r.coord&&!rN(t)&&!rN(r)?e.containZone(t.coord,r.coord):!0}function BZ(e,t){return e?function(r,n,a,i){var o=i<2?r.coord&&r.coord[i]:r.value;return Pl(o,t[i])}:function(r,n,a,i){return Pl(r.value,t[i])}}function Fb(e,t,r){if(r==="average"){var n=0,a=0;return e.each(t,function(i,o){isNaN(i)||(n+=i,a++)}),n/a}else return r==="median"?e.getMedian(t):e.getDataExtent(t)[r==="max"?1:0]}var ET=Ze(),pP=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.init=function(){this.markerGroupMap=pe()},t.prototype.render=function(r,n,a){var i=this,o=this.markerGroupMap;o.each(function(s){ET(s).keep=!1}),n.eachSeries(function(s){var l=Oo.getMarkerModelFromSeries(s,i.type);l&&i.renderSeries(s,l,n,a)}),o.each(function(s){!ET(s).keep&&i.group.remove(s.group)}),ube(n,o,this.type)},t.prototype.markKeep=function(r){ET(r).keep=!0},t.prototype.toggleBlurSeries=function(r,n){var a=this;j(r,function(i){var o=Oo.getMarkerModelFromSeries(i,a.type);if(o){var s=o.getData();s.eachItemGraphicEl(function(l){l&&(n?dH(l):Yk(l))})}})},t.type="marker",t}(Rt);function ube(e,t,r){e.eachSeries(function(n){var a=Oo.getMarkerModelFromSeries(n,r),i=t.get(n.id);if(a&&i&&i.group){var o=Bc(a),s=o.z,l=o.zlevel;B1(i.group,s,l)}})}function V4(e,t,r){var n=t.coordinateSystem,a=r.getWidth(),i=r.getHeight(),o=n&&n.getArea&&n.getArea();e.each(function(s){var l=e.getItemModel(s),u=l.get("relativeTo")==="coordinate",c=u?o?o.width:0:a,h=u?o?o.height:0:i,d=u&&o?o.x:0,v=u&&o?o.y:0,g,m=fe(l.get("x"),c)+d,y=fe(l.get("y"),h)+v;if(!isNaN(m)&&!isNaN(y))g=[m,y];else if(t.getMarkerPosition)g=t.getMarkerPosition(e.getValues(e.dimensions,s));else if(n){var x=e.get(n.dimensions[0],s),_=e.get(n.dimensions[1],s);g=n.dataToPoint([x,_])}isNaN(m)||(g[0]=m),isNaN(y)||(g[1]=y),e.setItemLayout(s,g)})}var cbe=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.updateTransform=function(r,n,a){n.eachSeries(function(i){var o=Oo.getMarkerModelFromSeries(i,"markPoint");o&&(V4(o.getData(),i,a),this.markerGroupMap.get(i.id).updateLayout())},this)},t.prototype.renderSeries=function(r,n,a,i){var o=r.coordinateSystem,s=r.id,l=r.getData(),u=this.markerGroupMap,c=u.get(s)||u.set(s,new Um),h=hbe(o,r,n);n.setData(h),V4(n.getData(),r,i),h.each(function(d){var v=h.getItemModel(d),g=v.getShallow("symbol"),m=v.getShallow("symbolSize"),y=v.getShallow("symbolRotate"),x=v.getShallow("symbolOffset"),_=v.getShallow("symbolKeepAspect");if(Me(g)||Me(m)||Me(y)||Me(x)){var w=n.getRawValue(d),S=n.getDataParams(d);Me(g)&&(g=g(w,S)),Me(m)&&(m=m(w,S)),Me(y)&&(y=y(w,S)),Me(x)&&(x=x(w,S))}var C=v.getModel("itemStyle").getItemStyle(),M=v.get("z2"),A=zm(l,"color");C.fill||(C.fill=A),h.setItemVisual(d,{z2:_e(M,0),symbol:g,symbolSize:m,symbolRotate:y,symbolOffset:x,symbolKeepAspect:_,style:C})}),c.updateData(h),this.group.add(c.group),h.eachItemGraphicEl(function(d){d.traverse(function(v){Ee(v).dataModel=n})}),this.markKeep(c),c.group.silent=n.get("silent")||r.get("silent")},t.type="markPoint",t}(pP);function hbe(e,t,r){var n;e?n=oe(e&&e.dimensions,function(s){var l=t.getData(),u=l.getDimensionInfo(l.mapDimension(s))||{};return te(te({},u),{name:s,ordinalMeta:null})}):n=[{name:"value",type:"float"}];var a=new Nn(n,r),i=oe(r.get("data"),Xe(pm,t));e&&(i=wt(i,Xe(gm,e)));var o=BZ(!!e,n);return a.initData(i,null,o),a}function fbe(e){e.registerComponentModel(ibe),e.registerComponentView(cbe),e.registerPreprocessor(function(t){vP(t.series,"markPoint")&&(t.markPoint=t.markPoint||{})})}var dbe=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.createMarkerModelFromSeries=function(r,n,a){return new t(r,n,a)},t.type="markLine",t.defaultOption={z:5,symbol:["circle","arrow"],symbolSize:[8,16],symbolOffset:0,precision:2,tooltip:{trigger:"item"},label:{show:!0,position:"end",distance:5},lineStyle:{type:"dashed"},emphasis:{label:{show:!0},lineStyle:{width:3}},animationEasing:"linear"},t}(Oo),sx=Ze(),vbe=function(e,t,r,n){var a=e.getData(),i;if(ne(n))i=n;else{var o=n.type;if(o==="min"||o==="max"||o==="average"||o==="median"||n.xAxis!=null||n.yAxis!=null){var s=void 0,l=void 0;if(n.yAxis!=null||n.xAxis!=null)s=t.getAxis(n.yAxis!=null?"y":"x"),l=Mn(n.yAxis,n.xAxis);else{var u=zZ(n,a,t,e);s=u.valueAxis;var c=HL(a,u.valueDataDim);l=Fb(a,c,o)}var h=s.dim==="x"?0:1,d=1-h,v=Te(n),g={coord:[]};v.type=null,v.coord=[],v.coord[d]=-1/0,g.coord[d]=1/0;var m=r.get("precision");m>=0&&ft(l)&&(l=+l.toFixed(Math.min(m,20))),v.coord[h]=g.coord[h]=l,i=[v,g,{type:o,valueIndex:n.valueIndex,value:l}]}else i=[]}var y=[pm(e,i[0]),pm(e,i[1]),te({},i[2])];return y[2].type=y[2].type||null,We(y[2],y[0]),We(y[2],y[1]),y};function Vb(e){return!isNaN(e)&&!isFinite(e)}function G4(e,t,r,n){var a=1-e,i=n.dimensions[e];return Vb(t[a])&&Vb(r[a])&&t[e]===r[e]&&n.getAxis(i).containData(t[e])}function pbe(e,t){if(e.type==="cartesian2d"){var r=t[0].coord,n=t[1].coord;if(r&&n&&(G4(1,r,n,e)||G4(0,r,n,e)))return!0}return gm(e,t[0])&&gm(e,t[1])}function jT(e,t,r,n,a){var i=n.coordinateSystem,o=e.getItemModel(t),s,l=fe(o.get("x"),a.getWidth()),u=fe(o.get("y"),a.getHeight());if(!isNaN(l)&&!isNaN(u))s=[l,u];else{if(n.getMarkerPosition)s=n.getMarkerPosition(e.getValues(e.dimensions,t));else{var c=i.dimensions,h=e.get(c[0],t),d=e.get(c[1],t);s=i.dataToPoint([h,d])}if(Zc(i,"cartesian2d")){var v=i.getAxis("x"),g=i.getAxis("y"),c=i.dimensions;Vb(e.get(c[0],t))?s[0]=v.toGlobalCoord(v.getExtent()[r?0:1]):Vb(e.get(c[1],t))&&(s[1]=g.toGlobalCoord(g.getExtent()[r?0:1]))}isNaN(l)||(s[0]=l),isNaN(u)||(s[1]=u)}e.setItemLayout(t,s)}var gbe=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.updateTransform=function(r,n,a){n.eachSeries(function(i){var o=Oo.getMarkerModelFromSeries(i,"markLine");if(o){var s=o.getData(),l=sx(o).from,u=sx(o).to;l.each(function(c){jT(l,c,!0,i,a),jT(u,c,!1,i,a)}),s.each(function(c){s.setItemLayout(c,[l.getItemLayout(c),u.getItemLayout(c)])}),this.markerGroupMap.get(i.id).updateLayout()}},this)},t.prototype.renderSeries=function(r,n,a,i){var o=r.coordinateSystem,s=r.id,l=r.getData(),u=this.markerGroupMap,c=u.get(s)||u.set(s,new DI);this.group.add(c.group);var h=mbe(o,r,n),d=h.from,v=h.to,g=h.line;sx(n).from=d,sx(n).to=v,n.setData(g);var m=n.get("symbol"),y=n.get("symbolSize"),x=n.get("symbolRotate"),_=n.get("symbolOffset");ne(m)||(m=[m,m]),ne(y)||(y=[y,y]),ne(x)||(x=[x,x]),ne(_)||(_=[_,_]),h.from.each(function(S){w(d,S,!0),w(v,S,!1)}),g.each(function(S){var C=g.getItemModel(S),M=C.getModel("lineStyle").getLineStyle();g.setItemLayout(S,[d.getItemLayout(S),v.getItemLayout(S)]);var A=C.get("z2");M.stroke==null&&(M.stroke=d.getItemVisual(S,"style").fill),g.setItemVisual(S,{z2:_e(A,0),fromSymbolKeepAspect:d.getItemVisual(S,"symbolKeepAspect"),fromSymbolOffset:d.getItemVisual(S,"symbolOffset"),fromSymbolRotate:d.getItemVisual(S,"symbolRotate"),fromSymbolSize:d.getItemVisual(S,"symbolSize"),fromSymbol:d.getItemVisual(S,"symbol"),toSymbolKeepAspect:v.getItemVisual(S,"symbolKeepAspect"),toSymbolOffset:v.getItemVisual(S,"symbolOffset"),toSymbolRotate:v.getItemVisual(S,"symbolRotate"),toSymbolSize:v.getItemVisual(S,"symbolSize"),toSymbol:v.getItemVisual(S,"symbol"),style:M})}),c.updateData(g),h.line.eachItemGraphicEl(function(S){Ee(S).dataModel=n,S.traverse(function(C){Ee(C).dataModel=n})});function w(S,C,M){var A=S.getItemModel(C);jT(S,C,M,r,i);var I=A.getModel("itemStyle").getItemStyle();I.fill==null&&(I.fill=zm(l,"color")),S.setItemVisual(C,{symbolKeepAspect:A.get("symbolKeepAspect"),symbolOffset:_e(A.get("symbolOffset",!0),_[M?0:1]),symbolRotate:_e(A.get("symbolRotate",!0),x[M?0:1]),symbolSize:_e(A.get("symbolSize"),y[M?0:1]),symbol:_e(A.get("symbol",!0),m[M?0:1]),style:I})}this.markKeep(c),c.group.silent=n.get("silent")||r.get("silent")},t.type="markLine",t}(pP);function mbe(e,t,r){var n;e?n=oe(e&&e.dimensions,function(u){var c=t.getData(),h=c.getDimensionInfo(c.mapDimension(u))||{};return te(te({},h),{name:u,ordinalMeta:null})}):n=[{name:"value",type:"float"}];var a=new Nn(n,r),i=new Nn(n,r),o=new Nn([],r),s=oe(r.get("data"),Xe(vbe,t,e,r));e&&(s=wt(s,Xe(pbe,e)));var l=BZ(!!e,n);return a.initData(oe(s,function(u){return u[0]}),null,l),i.initData(oe(s,function(u){return u[1]}),null,l),o.initData(oe(s,function(u){return u[2]})),o.hasItemOption=!0,{from:a,to:i,line:o}}function ybe(e){e.registerComponentModel(dbe),e.registerComponentView(gbe),e.registerPreprocessor(function(t){vP(t.series,"markLine")&&(t.markLine=t.markLine||{})})}var xbe=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.createMarkerModelFromSeries=function(r,n,a){return new t(r,n,a)},t.type="markArea",t.defaultOption={z:1,tooltip:{trigger:"item"},animation:!1,label:{show:!0,position:"top"},itemStyle:{borderWidth:0},emphasis:{label:{show:!0,position:"top"}}},t}(Oo),lx=Ze(),_be=function(e,t,r,n){var a=n[0],i=n[1];if(!(!a||!i)){var o=pm(e,a),s=pm(e,i),l=o.coord,u=s.coord;l[0]=Mn(l[0],-1/0),l[1]=Mn(l[1],-1/0),u[0]=Mn(u[0],1/0),u[1]=Mn(u[1],1/0);var c=x1([{},o,s]);return c.coord=[o.coord,s.coord],c.x0=o.x,c.y0=o.y,c.x1=s.x,c.y1=s.y,c}};function Gb(e){return!isNaN(e)&&!isFinite(e)}function H4(e,t,r,n){var a=1-e;return Gb(t[a])&&Gb(r[a])}function bbe(e,t){var r=t.coord[0],n=t.coord[1],a={coord:r,x:t.x0,y:t.y0},i={coord:n,x:t.x1,y:t.y1};return Zc(e,"cartesian2d")?r&&n&&(H4(1,r,n)||H4(0,r,n))?!0:lbe(e,a,i):gm(e,a)||gm(e,i)}function U4(e,t,r,n,a){var i=n.coordinateSystem,o=e.getItemModel(t),s,l=fe(o.get(r[0]),a.getWidth()),u=fe(o.get(r[1]),a.getHeight());if(!isNaN(l)&&!isNaN(u))s=[l,u];else{if(n.getMarkerPosition){var c=e.getValues(["x0","y0"],t),h=e.getValues(["x1","y1"],t),d=i.clampData(c),v=i.clampData(h),g=[];r[0]==="x0"?g[0]=d[0]>v[0]?h[0]:c[0]:g[0]=d[0]>v[0]?c[0]:h[0],r[1]==="y0"?g[1]=d[1]>v[1]?h[1]:c[1]:g[1]=d[1]>v[1]?c[1]:h[1],s=n.getMarkerPosition(g,r,!0)}else{var m=e.get(r[0],t),y=e.get(r[1],t),x=[m,y];i.clampData&&i.clampData(x,x),s=i.dataToPoint(x,!0)}if(Zc(i,"cartesian2d")){var _=i.getAxis("x"),w=i.getAxis("y"),m=e.get(r[0],t),y=e.get(r[1],t);Gb(m)?s[0]=_.toGlobalCoord(_.getExtent()[r[0]==="x0"?0:1]):Gb(y)&&(s[1]=w.toGlobalCoord(w.getExtent()[r[1]==="y0"?0:1]))}isNaN(l)||(s[0]=l),isNaN(u)||(s[1]=u)}return s}var W4=[["x0","y0"],["x1","y0"],["x1","y1"],["x0","y1"]],wbe=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.updateTransform=function(r,n,a){n.eachSeries(function(i){var o=Oo.getMarkerModelFromSeries(i,"markArea");if(o){var s=o.getData();s.each(function(l){var u=oe(W4,function(h){return U4(s,l,h,i,a)});s.setItemLayout(l,u);var c=s.getItemGraphicEl(l);c.setShape("points",u)})}},this)},t.prototype.renderSeries=function(r,n,a,i){var o=r.coordinateSystem,s=r.id,l=r.getData(),u=this.markerGroupMap,c=u.get(s)||u.set(s,{group:new Ne});this.group.add(c.group),this.markKeep(c);var h=Sbe(o,r,n);n.setData(h),h.each(function(d){var v=oe(W4,function(P){return U4(h,d,P,r,i)}),g=o.getAxis("x").scale,m=o.getAxis("y").scale,y=g.getExtent(),x=m.getExtent(),_=[g.parse(h.get("x0",d)),g.parse(h.get("x1",d))],w=[m.parse(h.get("y0",d)),m.parse(h.get("y1",d))];qr(_),qr(w);var S=!(y[0]>_[1]||y[1]<_[0]||x[0]>w[1]||x[1]=0},t.prototype.getOrient=function(){return this.get("orient")==="vertical"?{index:1,name:"vertical"}:{index:0,name:"horizontal"}},t.type="legend.plain",t.dependencies=["series"],t.defaultOption={z:4,show:!0,orient:"horizontal",left:"center",bottom:K.size.m,align:"auto",backgroundColor:K.color.transparent,borderColor:K.color.border,borderRadius:0,borderWidth:0,padding:5,itemGap:8,itemWidth:25,itemHeight:14,symbolRotate:"inherit",symbolKeepAspect:!0,inactiveColor:K.color.disabled,inactiveBorderColor:K.color.disabled,inactiveBorderWidth:"auto",itemStyle:{color:"inherit",opacity:"inherit",borderColor:"inherit",borderWidth:"auto",borderCap:"inherit",borderJoin:"inherit",borderDashOffset:"inherit",borderMiterLimit:"inherit"},lineStyle:{width:"auto",color:"inherit",inactiveColor:K.color.disabled,inactiveWidth:2,opacity:"inherit",type:"inherit",cap:"inherit",join:"inherit",dashOffset:"inherit",miterLimit:"inherit"},textStyle:{color:K.color.secondary},selectedMode:!0,selector:!1,selectorLabel:{show:!0,borderRadius:10,padding:[3,5,3,5],fontSize:12,fontFamily:"sans-serif",color:K.color.tertiary,borderWidth:1,borderColor:K.color.border},emphasis:{selectorLabel:{show:!0,color:K.color.quaternary}},selectorPosition:"auto",selectorItemGap:7,selectorButtonGap:10,tooltip:{show:!1},triggerEvent:!1},t}(Qe),of=Xe,aN=j,ux=Ne,FZ=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.newlineDisabled=!1,r}return t.prototype.init=function(){this.group.add(this._contentGroup=new ux),this.group.add(this._selectorGroup=new ux),this._isFirstRender=!0},t.prototype.getContentGroup=function(){return this._contentGroup},t.prototype.getSelectorGroup=function(){return this._selectorGroup},t.prototype.render=function(r,n,a){var i=this._isFirstRender;if(this._isFirstRender=!1,this.resetInner(),!!r.get("show",!0)){var o=r.get("align"),s=r.get("orient");(!o||o==="auto")&&(o=r.get("left")==="right"&&s==="vertical"?"right":"left");var l=r.get("selector",!0),u=r.get("selectorPosition",!0);l&&(!u||u==="auto")&&(u=s==="horizontal"?"end":"start"),this.renderInner(o,r,n,a,l,s,u);var c=jr(r,a).refContainer,h=r.getBoxLayoutParams(),d=r.get("padding"),v=Zt(h,c,d),g=this.layoutInner(r,o,v,i,l,u),m=Zt(Le({width:g.width,height:g.height},h),c,d);this.group.x=m.x-g.x,this.group.y=m.y-g.y,this.group.markRedraw(),this.group.add(this._backgroundEl=NZ(g,r))}},t.prototype.resetInner=function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl),this.getSelectorGroup().removeAll()},t.prototype.renderInner=function(r,n,a,i,o,s,l){var u=this.getContentGroup(),c=pe(),h=n.get("selectedMode"),d=n.get("triggerEvent"),v=[];a.eachRawSeries(function(g){!g.get("legendHoverLink")&&v.push(g.id)}),aN(n.getData(),function(g,m){var y=this,x=g.get("name");if(!this.newlineDisabled&&(x===""||x===` -`)){var _=new ux;_.newline=!0,u.add(_);return}var w=a.getSeriesByName(x)[0];if(!c.get(x))if(w){var S=w.getData(),C=S.getVisual("legendLineStyle")||{},M=S.getVisual("legendIcon"),A=S.getVisual("style"),I=this._createItem(w,x,m,g,n,r,C,A,M,h,i);I.on("click",of(Z4,x,null,i,v)).on("mouseover",of(iN,w.name,null,i,v)).on("mouseout",of(oN,w.name,null,i,v)),a.ssr&&I.eachChild(function(k){var P=Ee(k);P.seriesIndex=w.seriesIndex,P.dataIndex=m,P.ssrType="legend"}),d&&I.eachChild(function(k){y.packEventData(k,n,w,m,x)}),c.set(x,!0)}else a.eachRawSeries(function(k){var P=this;if(!c.get(x)&&k.legendVisualProvider){var D=k.legendVisualProvider;if(!D.containName(x))return;var z=D.indexOfName(x),E=D.getItemVisual(z,"style"),B=D.getItemVisual(z,"legendIcon"),H=An(E.fill);H&&H[3]===0&&(H[3]=.2,E=te(te({},E),{fill:qa(H,"rgba")}));var V=this._createItem(k,x,m,g,n,r,{},E,B,h,i);V.on("click",of(Z4,null,x,i,v)).on("mouseover",of(iN,null,x,i,v)).on("mouseout",of(oN,null,x,i,v)),a.ssr&&V.eachChild(function(U){var F=Ee(U);F.seriesIndex=k.seriesIndex,F.dataIndex=m,F.ssrType="legend"}),d&&V.eachChild(function(U){P.packEventData(U,n,k,m,x)}),c.set(x,!0)}},this)},this),o&&this._createSelector(o,n,i,s,l)},t.prototype.packEventData=function(r,n,a,i,o){var s={componentType:"legend",componentIndex:n.componentIndex,dataIndex:i,value:o,seriesIndex:a.seriesIndex};Ee(r).eventData=s},t.prototype._createSelector=function(r,n,a,i,o){var s=this.getSelectorGroup();aN(r,function(u){var c=u.type,h=new ht({style:{x:0,y:0,align:"center",verticalAlign:"middle"},onclick:function(){a.dispatchAction({type:c==="all"?"legendAllSelect":"legendInverseSelect",legendId:n.id})}});s.add(h);var d=n.getModel("selectorLabel"),v=n.getModel(["emphasis","selectorLabel"]);Hr(h,{normal:d,emphasis:v},{defaultText:u.title}),Il(h)})},t.prototype._createItem=function(r,n,a,i,o,s,l,u,c,h,d){var v=r.visualDrawType,g=o.get("itemWidth"),m=o.get("itemHeight"),y=o.isSelected(n),x=i.get("symbolRotate"),_=i.get("symbolKeepAspect"),w=i.get("icon");c=w||c||"roundRect";var S=Mbe(c,i,l,u,v,y,d),C=new ux,M=i.getModel("textStyle");if(Me(r.getLegendIcon)&&(!w||w==="inherit"))C.add(r.getLegendIcon({itemWidth:g,itemHeight:m,icon:c,iconRotate:x,itemStyle:S.itemStyle,lineStyle:S.lineStyle,symbolKeepAspect:_}));else{var A=w==="inherit"&&r.getData().getVisual("symbol")?x==="inherit"?r.getData().getVisual("symbolRotate"):x:0;C.add(Abe({itemWidth:g,itemHeight:m,icon:c,iconRotate:A,itemStyle:S.itemStyle,symbolKeepAspect:_}))}var I=s==="left"?g+5:-5,k=s,P=o.get("formatter"),D=n;ue(P)&&P?D=P.replace("{name}",n??""):Me(P)&&(D=P(n));var z=y?M.getTextColor():i.get("inactiveColor");C.add(new ht({style:Et(M,{text:D,x:I,y:m/2,fill:z,align:k,verticalAlign:"middle"},{inheritColor:z})}));var E=new Ke({shape:C.getBoundingRect(),style:{fill:"transparent"}}),B=i.getModel("tooltip");return B.get("show")&&Os({el:E,componentModel:o,itemName:n,itemTooltipOption:B.option}),C.add(E),C.eachChild(function(H){H.silent=!0}),E.silent=!h,this.getContentGroup().add(C),Il(C),C.__legendDataIndex=a,C},t.prototype.layoutInner=function(r,n,a,i,o,s){var l=this.getContentGroup(),u=this.getSelectorGroup();xc(r.get("orient"),l,r.get("itemGap"),a.width,a.height);var c=l.getBoundingRect(),h=[-c.x,-c.y];if(u.markRedraw(),l.markRedraw(),o){xc("horizontal",u,r.get("selectorItemGap",!0));var d=u.getBoundingRect(),v=[-d.x,-d.y],g=r.get("selectorButtonGap",!0),m=r.getOrient().index,y=m===0?"width":"height",x=m===0?"height":"width",_=m===0?"y":"x";s==="end"?v[m]+=c[y]+g:h[m]+=d[y]+g,v[1-m]+=c[x]/2-d[x]/2,u.x=v[0],u.y=v[1],l.x=h[0],l.y=h[1];var w={x:0,y:0};return w[y]=c[y]+g+d[y],w[x]=Math.max(c[x],d[x]),w[_]=Math.min(0,d[_]+v[1-m]),w}else return l.x=h[0],l.y=h[1],this.group.getBoundingRect()},t.prototype.remove=function(){this.getContentGroup().removeAll(),this._isFirstRender=!0},t.type="legend.plain",t}(Rt);function Mbe(e,t,r,n,a,i,o){function s(y,x){y.lineWidth==="auto"&&(y.lineWidth=x.lineWidth>0?2:0),aN(y,function(_,w){y[w]==="inherit"&&(y[w]=x[w])})}var l=t.getModel("itemStyle"),u=l.getItemStyle(),c=e.lastIndexOf("empty",0)===0?"fill":"stroke",h=l.getShallow("decal");u.decal=!h||h==="inherit"?n.decal:gd(h,o),u.fill==="inherit"&&(u.fill=n[a]),u.stroke==="inherit"&&(u.stroke=n[c]),u.opacity==="inherit"&&(u.opacity=(a==="fill"?n:r).opacity),s(u,n);var d=t.getModel("lineStyle"),v=d.getLineStyle();if(s(v,r),u.fill==="auto"&&(u.fill=n.fill),u.stroke==="auto"&&(u.stroke=n.fill),v.stroke==="auto"&&(v.stroke=n.fill),!i){var g=t.get("inactiveBorderWidth"),m=u[c];u.lineWidth=g==="auto"?n.lineWidth>0&&m?2:0:u.lineWidth,u.fill=t.get("inactiveColor"),u.stroke=t.get("inactiveBorderColor"),v.stroke=d.get("inactiveColor"),v.lineWidth=d.get("inactiveWidth")}return{itemStyle:u,lineStyle:v}}function Abe(e){var t=e.icon||"roundRect",r=_r(t,0,0,e.itemWidth,e.itemHeight,e.itemStyle.fill,e.symbolKeepAspect);return r.setStyle(e.itemStyle),r.rotation=(e.iconRotate||0)*Math.PI/180,r.setOrigin([e.itemWidth/2,e.itemHeight/2]),t.indexOf("empty")>-1&&(r.style.stroke=r.style.fill,r.style.fill=K.color.neutral00,r.style.lineWidth=2),r}function Z4(e,t,r,n){oN(e,t,r,n),r.dispatchAction({type:"legendToggleSelect",name:e??t}),iN(e,t,r,n)}function iN(e,t,r,n){r.usingTHL()||r.dispatchAction({type:"highlight",seriesName:e,name:t,excludeSeriesId:n})}function oN(e,t,r,n){r.usingTHL()||r.dispatchAction({type:"downplay",seriesName:e,name:t,excludeSeriesId:n})}function dp(e,t,r){var n=e==="allSelect"||e==="inverseSelect",a={},i=[];r.eachComponent({mainType:"legend",query:t},function(s){n?s[e]():s[e](t.name),$4(s,a),i.push(s.componentIndex)});var o={};return r.eachComponent("legend",function(s){j(a,function(l,u){s[l?"select":"unSelect"](u)}),$4(s,o)}),n?{selected:o,legendIndex:i}:{name:t.name,selected:o}}function $4(e,t){var r=t||{};return j(e.getData(),function(n){var a=n.get("name");if(!(a===` -`||a==="")){var i=e.isSelected(a);ge(r,a)?r[a]=r[a]&&i:r[a]=i}}),r}function Nbe(e){e.registerAction("legendToggleSelect","legendselectchanged",Xe(dp,"toggleSelected")),e.registerAction("legendAllSelect","legendselectall",Xe(dp,"allSelect")),e.registerAction("legendInverseSelect","legendinverseselect",Xe(dp,"inverseSelect")),e.registerAction("legendSelect","legendselected",Xe(dp,"select")),e.registerAction("legendUnSelect","legendunselected",Xe(dp,"unSelect"))}var kbe=Lm(Lbe);function Lbe(e){var t=e.findComponents({mainType:"legend"});t&&t.length&&e.filterSeries(function(r){for(var n=0;na[o],y=[-v.x,-v.y];n||(y[i]=c[u]);var x=[0,0],_=[-g.x,-g.y],w=_e(r.get("pageButtonGap",!0),r.get("itemGap",!0));if(m){var S=r.get("pageButtonPosition",!0);S==="end"?_[i]+=a[o]-g[o]:x[i]+=g[o]+w}_[1-i]+=v[s]/2-g[s]/2,c.setPosition(y),h.setPosition(x),d.setPosition(_);var C={x:0,y:0};if(C[o]=m?a[o]:v[o],C[s]=Math.max(v[s],g[s]),C[l]=Math.min(0,g[l]+_[1-i]),h.__rectSize=a[o],m){var M={x:0,y:0};M[o]=Math.max(a[o]-g[o]-w,0),M[s]=C[s],h.setClipPath(new Ke({shape:M})),h.__rectSize=M[o]}else d.eachChild(function(I){I.attr({invisible:!0,silent:!0})});var A=this._getPageInfo(r);return A.pageIndex!=null&&mt(c,{x:A.contentPosition[0],y:A.contentPosition[1]},m?r:null),this._updatePageInfoView(r,A),C},t.prototype._pageGo=function(r,n,a){var i=this._getPageInfo(n)[r];i!=null&&a.dispatchAction({type:"legendScroll",scrollDataIndex:i,legendId:n.id})},t.prototype._updatePageInfoView=function(r,n){var a=this._controllerGroup;j(["pagePrev","pageNext"],function(c){var h=c+"DataIndex",d=n[h]!=null,v=a.childOfName(c);v&&(v.setStyle("fill",d?r.get("pageIconColor",!0):r.get("pageIconInactiveColor",!0)),v.cursor=d?"pointer":"default")});var i=a.childOfName("pageText"),o=r.get("pageFormatter"),s=n.pageIndex,l=s!=null?s+1:0,u=n.pageCount;i&&o&&i.setStyle("text",ue(o)?o.replace("{current}",l==null?"":l+"").replace("{total}",u==null?"":u+""):o({current:l,total:u}))},t.prototype._getPageInfo=function(r){var n=r.get("scrollDataIndex",!0),a=this.getContentGroup(),i=this._containerGroup.__rectSize,o=r.getOrient().index,s=RT[o],l=OT[o],u=this._findTargetItemIndex(n),c=a.children(),h=c[u],d=c.length,v=d?1:0,g={contentPosition:[a.x,a.y],pageCount:v,pageIndex:v-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!h)return g;var m=S(h);g.contentPosition[o]=-m.s;for(var y=u+1,x=m,_=m,w=null;y<=d;++y)w=S(c[y]),(!w&&_.e>x.s+i||w&&!C(w,x.s))&&(_.i>x.i?x=_:x=w,x&&(g.pageNextDataIndex==null&&(g.pageNextDataIndex=x.i),++g.pageCount)),_=w;for(var y=u-1,x=m,_=m,w=null;y>=-1;--y)w=S(c[y]),(!w||!C(_,w.s))&&x.i<_.i&&(_=x,g.pagePrevDataIndex==null&&(g.pagePrevDataIndex=x.i),++g.pageCount,++g.pageIndex),x=w;return g;function S(M){if(M){var A=M.getBoundingRect(),I=A[l]+M[l];return{s:I,e:I+A[s],i:M.__legendDataIndex}}}function C(M,A){return M.e>=A&&M.s<=A+i}},t.prototype._findTargetItemIndex=function(r){if(!this._showController)return 0;var n,a=this.getContentGroup(),i;return a.eachChild(function(o,s){var l=o.__legendDataIndex;i==null&&l!=null&&(i=s),l===r&&(n=s)}),n??i},t.type="legend.scroll",t}(FZ);function Dbe(e){e.registerAction("legendScroll","legendscroll",function(t,r){var n=t.scrollDataIndex;n!=null&&r.eachComponent({mainType:"legend",subType:"scroll",query:t},function(a){a.setScrollDataIndex(n)})})}function Ebe(e){$e(VZ),e.registerComponentModel(Ibe),e.registerComponentView(Pbe),Dbe(e)}function jbe(e){$e(VZ),$e(Ebe)}var Rbe=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type="dataZoom.inside",t.defaultOption=iu(vm.defaultOption,{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}),t}(vm),gP=Ze();function Obe(e,t,r){gP(e).coordSysRecordMap.each(function(n){var a=n.dataZoomInfoMap.get(t.uid);a&&(a.getRange=r)})}function zbe(e,t){for(var r=gP(e).coordSysRecordMap,n=r.keys(),a=0;ai[a+n]&&(n=h),o=o&&c.get("preventDefaultMouseMove",!0),s=_e(c.get("cursorGrab",!0),s),l=_e(c.get("cursorGrabbing",!0),l)}),{controlType:n,opt:{zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!0,preventDefaultMouseMove:!!o,api:r,zInfo:{component:t.model},triggerInfo:{roamTrigger:null,isInSelf:t.containsPoint},cursorGrab:s,cursorGrabbing:l}}}function Hbe(e){e.registerUpdateLifecycle("coordsys:aftercreate",function(t,r){var n=gP(r),a=n.coordSysRecordMap||(n.coordSysRecordMap=pe());a.each(function(i){i.dataZoomInfoMap=null}),t.eachComponent({mainType:"dataZoom",subType:"inside"},function(i){var o=SZ(i);j(o.infoList,function(s){var l=s.model.uid,u=a.get(l)||a.set(l,Bbe(r,s.model)),c=u.dataZoomInfoMap||(u.dataZoomInfoMap=pe());c.set(i.uid,{dzReferCoordSysInfo:s,model:i,getRange:null})})}),a.each(function(i){var o=i.controller,s,l=i.dataZoomInfoMap;if(l){var u=l.keys()[0];u!=null&&(s=l.get(u))}if(!s){GZ(a,i);return}var c=Gbe(l,i,r);o.enable(c.controlType,c.opt),Kd(i,"dispatchAction",s.model.get("throttle",!0),"fixRate")})})}var Ube=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type="dataZoom.inside",r}return t.prototype.render=function(r,n,a){if(e.prototype.render.apply(this,arguments),r.noTarget()){this._clear();return}this.range=r.getPercentRange(),Obe(a,r,{pan:ve(zT.pan,this),zoom:ve(zT.zoom,this),scrollMove:ve(zT.scrollMove,this)})},t.prototype.dispose=function(){this._clear(),e.prototype.dispose.apply(this,arguments)},t.prototype._clear=function(){zbe(this.api,this.dataZoomModel),this.range=null},t.type="dataZoom.inside",t}(lP),zT={zoom:function(e,t,r,n){var a=this.range,i=a.slice(),o=e.axisModels[0];if(o){var s=BT[t](null,[n.originX,n.originY],o,r,e),l=(s.signal>0?s.pixelStart+s.pixelLength-s.pixel:s.pixel-s.pixelStart)/s.pixelLength*(i[1]-i[0])+i[0],u=Math.max(1/n.scale,0);i[0]=(i[0]-l)*u+l,i[1]=(i[1]-l)*u+l;var c=this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();if(Ul(0,i,[0,100],0,c.minSpan,c.maxSpan),this.range=i,a[0]!==i[0]||a[1]!==i[1])return i}},pan:q4(function(e,t,r,n,a,i){var o=BT[n]([i.oldX,i.oldY],[i.newX,i.newY],t,a,r);return o.signal*(e[1]-e[0])*o.pixel/o.pixelLength}),scrollMove:q4(function(e,t,r,n,a,i){var o=BT[n]([0,0],[i.scrollDelta,i.scrollDelta],t,a,r);return o.signal*(e[1]-e[0])*i.scrollDelta})};function q4(e){return function(t,r,n,a){var i=this.range,o=i.slice(),s=t.axisModels[0];if(s){var l=e(o,s,t,r,n,a);if(Ul(l,o,[0,100],"all"),this.range=o,i[0]!==o[0]||i[1]!==o[1])return o}}}var BT={grid:function(e,t,r,n,a){var i=r.axis,o={},s=a.model.coordinateSystem.getRect();return e=e||[0,0],i.dim==="x"?(o.pixel=t[0]-e[0],o.pixelLength=s.width,o.pixelStart=s.x,o.signal=i.inverse?1:-1):(o.pixel=t[1]-e[1],o.pixelLength=s.height,o.pixelStart=s.y,o.signal=i.inverse?-1:1),o},polar:function(e,t,r,n,a){var i=r.axis,o={},s=a.model.coordinateSystem,l=s.getRadiusAxis().getExtent(),u=s.getAngleAxis().getExtent();return e=e?s.pointToCoord(e):[0,0],t=s.pointToCoord(t),r.mainType==="radiusAxis"?(o.pixel=t[0]-e[0],o.pixelLength=l[1]-l[0],o.pixelStart=l[0],o.signal=i.inverse?1:-1):(o.pixel=t[1]-e[1],o.pixelLength=u[1]-u[0],o.pixelStart=u[0],o.signal=i.inverse?-1:1),o},singleAxis:function(e,t,r,n,a){var i=r.axis,o=a.model.coordinateSystem.getRect(),s={};return e=e||[0,0],i.orient==="horizontal"?(s.pixel=t[0]-e[0],s.pixelLength=o.width,s.pixelStart=o.x,s.signal=i.inverse?1:-1):(s.pixel=t[1]-e[1],s.pixelLength=o.height,s.pixelStart=o.y,s.signal=i.inverse?-1:1),s}};function HZ(e){uP(e),e.registerComponentModel(Rbe),e.registerComponentView(Ube),Hbe(e)}var Wbe=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type="dataZoom.slider",t.layoutMode="box",t.defaultOption=iu(vm.defaultOption,{show:!0,right:"ph",top:"ph",width:"ph",height:"ph",left:null,bottom:null,borderColor:K.color.accent10,borderRadius:0,backgroundColor:K.color.transparent,dataBackground:{lineStyle:{color:K.color.accent30,width:.5},areaStyle:{color:K.color.accent20,opacity:.2}},selectedDataBackground:{lineStyle:{color:K.color.accent40,width:.5},areaStyle:{color:K.color.accent20,opacity:.3}},fillerColor:"rgba(135,175,274,0.2)",handleIcon:"path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z",handleSize:"100%",handleStyle:{color:K.color.neutral00,borderColor:K.color.accent20},moveHandleSize:7,moveHandleIcon:"path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z",moveHandleStyle:{color:K.color.accent40,opacity:.5},showDetail:!0,showDataShadow:"auto",realtime:!0,zoomLock:!1,textStyle:{color:K.color.tertiary},brushSelect:!0,brushStyle:{color:K.color.accent30,opacity:.3},emphasis:{handleLabel:{show:!0},handleStyle:{borderColor:K.color.accent40},moveHandleStyle:{opacity:.8}},defaultLocationEdgeGap:15}),t}(vm),vp=Ke,Zbe=1,FT=30,$be=7,pp="horizontal",K4="vertical",Ybe=5,Xbe=["line","bar","candlestick","scatter"],qbe={easing:"cubicOut",duration:100,delay:0},Kbe=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r._displayables={},r}return t.prototype.init=function(r,n){this.api=n,this._onBrush=ve(this._onBrush,this),this._onBrushEnd=ve(this._onBrushEnd,this)},t.prototype.render=function(r,n,a,i){if(e.prototype.render.apply(this,arguments),Kd(this,"_dispatchZoomAction",r.get("throttle"),"fixRate"),this._orient=r.getOrient(),r.get("show")===!1){this.group.removeAll();return}if(r.noTarget()){this._clear(),this.group.removeAll();return}(!i||i.type!=="dataZoom"||i.from!==this.uid)&&this._buildView(),this._updateView()},t.prototype.dispose=function(){this._clear(),e.prototype.dispose.apply(this,arguments)},t.prototype._clear=function(){Ug(this,"_dispatchZoomAction");var r=this.api.getZr();r.off("mousemove",this._onBrush),r.off("mouseup",this._onBrushEnd)},t.prototype._buildView=function(){var r=this.group;r.removeAll(),this._brushing=!1,this._displayables.brushRect=null,this._resetLocation(),this._resetInterval();var n=this._displayables.sliderGroup=new Ne;this._renderBackground(),this._renderHandle(),this._renderDataShadow(),r.add(n),this._positionGroup()},t.prototype._resetLocation=function(){var r=this.dataZoomModel,n=this.api,a=r.get("brushSelect"),i=a?$be:0,o=jr(r,n).refContainer,s=this._findCoordRect(),l=r.get("defaultLocationEdgeGap",!0)||0,u=this._orient===pp?{right:o.width-s.x-s.width,top:o.height-FT-l-i,width:s.width,height:FT}:{right:l,top:s.y,width:FT,height:s.height},c=vh(r.option);j(["right","top","width","height"],function(d){c[d]==="ph"&&(c[d]=u[d])});var h=Zt(c,o);this._location={x:h.x,y:h.y},this._size=[h.width,h.height],this._orient===K4&&this._size.reverse()},t.prototype._positionGroup=function(){var r=this.group,n=this._location,a=this._orient,i=this.dataZoomModel.getFirstTargetAxisModel(),o=i&&i.get("inverse"),s=this._displayables.sliderGroup,l=(this._dataShadowInfo||{}).otherAxisInverse;s.attr(a===pp&&!o?{scaleY:l?1:-1,scaleX:1}:a===pp&&o?{scaleY:l?1:-1,scaleX:-1}:a===K4&&!o?{scaleY:l?-1:1,scaleX:1,rotation:Math.PI/2}:{scaleY:l?-1:1,scaleX:-1,rotation:Math.PI/2});var u=r.getBoundingRect([s]),c=isNaN(u.x)?0:u.x,h=isNaN(u.y)?0:u.y;r.x=n.x-c,r.y=n.y-h,r.markRedraw()},t.prototype._getViewExtent=function(){return[0,this._size[0]]},t.prototype._renderBackground=function(){var r=this.dataZoomModel,n=this._size,a=this._displayables.sliderGroup,i=r.get("brushSelect");a.add(new vp({silent:!0,shape:{x:0,y:0,width:n[0],height:n[1]},style:{fill:r.get("backgroundColor")},z2:-40}));var o=new vp({shape:{x:0,y:0,width:n[0],height:n[1]},style:{fill:"transparent"},z2:0,onclick:ve(this._onClickPanel,this)}),s=this.api.getZr();i?(o.on("mousedown",this._onBrushStart,this),o.cursor="crosshair",s.on("mousemove",this._onBrush),s.on("mouseup",this._onBrushEnd)):(s.off("mousemove",this._onBrush),s.off("mouseup",this._onBrushEnd)),a.add(o)},t.prototype._renderDataShadow=function(){var r=this._dataShadowInfo=this._prepareDataShadowInfo();if(this._displayables.dataShadowSegs=[],!r)return;var n=this._size,a=this._shadowSize||[],i=r.series,o=i.getRawData(),s=i.getShadowDim&&i.getShadowDim(),l=s&&o.getDimensionInfo(s)?i.getShadowDim():r.otherDim;if(l==null)return;var u=this._shadowPolygonPts,c=this._shadowPolylinePts;if(o!==this._shadowData||l!==this._shadowDim||n[0]!==a[0]||n[1]!==a[1]){var h=o.getDataExtent(r.thisDim),d=o.getDataExtent(l),v=(d[1]-d[0])*.3;d=[d[0]-v,d[1]+v];var g=[0,n[1]],m=[0,n[0]],y=[[n[0],0],[0,0]],x=[],_=m[1]/Math.max(1,o.count()-1),w=n[0]/(h[1]-h[0]),S=r.thisAxis.type==="time",C=-_,M=Math.round(o.count()/n[0]),A;o.each([r.thisDim,l],function(z,E,B){if(M>0&&B%M){S||(C+=_);return}C=S?(+z-h[0])*w:C+_;var H=E==null||isNaN(E)||E==="",V=H?0:xt(E,d,g,!0);H&&!A&&B?(y.push([y[y.length-1][0],0]),x.push([x[x.length-1][0],0])):!H&&A&&(y.push([C,0]),x.push([C,0])),H||(y.push([C,V]),x.push([C,V])),A=H}),u=this._shadowPolygonPts=y,c=this._shadowPolylinePts=x}this._shadowData=o,this._shadowDim=l,this._shadowSize=[n[0],n[1]];var I=this.dataZoomModel;function k(z){var E=I.getModel(z?"selectedDataBackground":"dataBackground"),B=new Ne,H=new vn({shape:{points:u},segmentIgnoreThreshold:1,style:E.getModel("areaStyle").getAreaStyle(),silent:!0,z2:-20}),V=new en({shape:{points:c},segmentIgnoreThreshold:1,style:E.getModel("lineStyle").getLineStyle(),silent:!0,z2:-19});return B.add(H),B.add(V),B}for(var P=0;P<3;P++){var D=k(P===1);this._displayables.sliderGroup.add(D),this._displayables.dataShadowSegs.push(D)}},t.prototype._prepareDataShadowInfo=function(){var r=this.dataZoomModel,n=r.get("showDataShadow");if(n!==!1){var a,i=this.ecModel;return r.eachTargetAxis(function(o,s){var l=r.getAxisProxy(o,s).getTargetSeriesModels();j(l,function(u){if(!a&&!(n!==!0&&Ve(Xbe,u.get("type"))<0)){var c=i.getComponent(ml(o),s).axis,h=Jbe(o),d,v=u.coordinateSystem;h!=null&&v.getOtherAxis&&(d=v.getOtherAxis(c).inverse),h=u.getData().mapDimension(h);var g=u.getData().mapDimension(o);a={thisAxis:c,series:u,thisDim:g,otherDim:h,otherAxisInverse:d}}},this)},this),a}},t.prototype._renderHandle=function(){var r=this.group,n=this._displayables,a=n.handles=[null,null],i=n.handleLabels=[null,null],o=this._displayables.sliderGroup,s=this._size,l=this.dataZoomModel,u=this.api,c=l.get("borderRadius")||0,h=l.get("brushSelect"),d=n.filler=new vp({silent:h,style:{fill:l.get("fillerColor")},textConfig:{position:"inside"}});o.add(d),o.add(new vp({silent:!0,subPixelOptimize:!0,shape:{x:0,y:0,width:s[0],height:s[1],r:c},style:{stroke:l.get("dataBackgroundColor")||l.get("borderColor"),lineWidth:Zbe,fill:K.color.transparent}})),j([0,1],function(w){var S=l.get("handleIcon");!J_[S]&&S.indexOf("path://")<0&&S.indexOf("image://")<0&&(S="path://"+S);var C=_r(S,-1,0,2,2,null,!0);C.attr({cursor:Qbe(this._orient),draggable:!0,drift:ve(this._onDragMove,this,w),ondragend:ve(this._onDragEnd,this),onmouseover:ve(this._onOverDataInfoTriggerArea,this,!0),onmouseout:ve(this._onOverDataInfoTriggerArea,this,!1),z2:5});var M=C.getBoundingRect(),A=l.get("handleSize");this._handleHeight=fe(A,this._size[1]),this._handleWidth=M.width/M.height*this._handleHeight,C.setStyle(l.getModel("handleStyle").getItemStyle()),C.style.strokeNoScale=!0,C.rectHover=!0,C.ensureState("emphasis").style=l.getModel(["emphasis","handleStyle"]).getItemStyle(),Il(C);var I=l.get("handleColor");I!=null&&(C.style.fill=I),o.add(a[w]=C);var k=l.getModel("textStyle"),P=l.get("handleLabel")||{},D=P.show||!1;r.add(i[w]=new ht({silent:!0,invisible:!D,style:Et(k,{x:0,y:0,text:"",verticalAlign:"middle",align:"center",fill:k.getTextColor(),font:k.getFont()}),z2:10}))},this);var v=d;if(h){var g=fe(l.get("moveHandleSize"),s[1]),m=n.moveHandle=new Ke({style:l.getModel("moveHandleStyle").getItemStyle(),silent:!0,shape:{r:[0,0,2,2],y:s[1]-.5,height:g}}),y=g*.8,x=n.moveHandleIcon=_r(l.get("moveHandleIcon"),-y/2,-y/2,y,y,K.color.neutral00,!0);x.silent=!0,x.y=s[1]+g/2-.5,m.ensureState("emphasis").style=l.getModel(["emphasis","moveHandleStyle"]).getItemStyle();var _=Math.min(s[1]/2,Math.max(g,10));v=n.moveZone=new Ke({invisible:!0,shape:{y:s[1]-_,height:g+_}}),v.on("mouseover",function(){u.enterEmphasis(m)}).on("mouseout",function(){u.leaveEmphasis(m)}),o.add(m),o.add(x),o.add(v)}v.attr({draggable:!0,cursor:"grab",drift:ve(this._onActualMoveZoneDrift,this),ondragstart:ve(this._onActualMoveZoneDragStart,this),ondragend:ve(this._onActualMoveZoneDragEnd,this),onmouseover:ve(this._onOverDataInfoTriggerArea,this,!0),onmouseout:ve(this._onOverDataInfoTriggerArea,this,!1)})},t.prototype._resetInterval=function(){var r=this._range=this.dataZoomModel.getPercentRange(),n=this._getViewExtent();this._handleEnds=[xt(r[0],[0,100],n,!0),xt(r[1],[0,100],n,!0)]},t.prototype._updateInterval=function(r,n){var a=this.dataZoomModel,i=this._handleEnds,o=this._getViewExtent(),s=a.findRepresentativeAxisProxy().getMinMaxSpan(),l=[0,100];Ul(n,i,o,a.get("zoomLock")?"all":r,s.minSpan!=null?xt(s.minSpan,l,o,!0):null,s.maxSpan!=null?xt(s.maxSpan,l,o,!0):null);var u=this._range,c=this._range=qr([xt(i[0],o,l,!0),xt(i[1],o,l,!0)]);return!u||u[0]!==c[0]||u[1]!==c[1]},t.prototype._updateView=function(r){var n=this._displayables,a=this._handleEnds,i=qr(a.slice()),o=this._size;j([0,1],function(v){var g=n.handles[v],m=this._handleHeight;g.attr({scaleX:m/2,scaleY:m/2,x:a[v]+(v?-1:1),y:o[1]/2-m/2})},this),n.filler.setShape({x:i[0],y:0,width:i[1]-i[0],height:o[1]});var s={x:i[0],width:i[1]-i[0]};n.moveHandle&&(n.moveHandle.setShape(s),n.moveZone.setShape(s),n.moveZone.getBoundingRect(),n.moveHandleIcon&&n.moveHandleIcon.attr("x",s.x+s.width/2));for(var l=n.dataShadowSegs,u=[0,i[0],i[1],o[0]],c=0;cn[0]||a[1]<0||a[1]>n[1])){var i=this._handleEnds,o=(i[0]+i[1])/2,s=this._updateInterval("all",a[0]-o);this._updateView(),s&&this._dispatchZoomAction(!1)}},t.prototype._onBrushStart=function(r){var n=r.offsetX,a=r.offsetY;this._brushStart=new Pe(n,a),this._brushing=!0,this._brushStartTime=+new Date},t.prototype._onBrushEnd=function(r){if(this._brushing){var n=this._displayables.brushRect;if(this._brushing=!1,!!n){n.attr("ignore",!0);var a=n.shape,i=+new Date;if(!(i-this._brushStartTime<200&&Math.abs(a.width)<5)){var o=this._getViewExtent(),s=[0,100],l=this._handleEnds=[a.x,a.x+a.width],u=this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();Ul(0,l,o,0,u.minSpan!=null?xt(u.minSpan,s,o,!0):null,u.maxSpan!=null?xt(u.maxSpan,s,o,!0):null),this._range=qr([xt(l[0],o,s,!0),xt(l[1],o,s,!0)]),this._updateView(),this._dispatchZoomAction(!1)}}}},t.prototype._onBrush=function(r){this._brushing&&(Cs(r.event),this._updateBrushRect(r.offsetX,r.offsetY))},t.prototype._updateBrushRect=function(r,n){var a=this._displayables,i=this.dataZoomModel,o=a.brushRect;o||(o=a.brushRect=new vp({silent:!0,style:i.getModel("brushStyle").getItemStyle()}),a.sliderGroup.add(o)),o.attr("ignore",!1);var s=this._brushStart,l=this._displayables.sliderGroup,u=l.transformCoordToLocal(r,n),c=l.transformCoordToLocal(s.x,s.y),h=this._size;u[0]=Math.max(Math.min(h[0],u[0]),0),o.setShape({x:c[0],y:0,width:u[0]-c[0],height:h[1]})},t.prototype._dispatchZoomAction=function(r){var n=this._range;this.api.dispatchAction({type:"dataZoom",from:this.uid,dataZoomId:this.dataZoomModel.id,animation:r?qbe:null,start:n[0],end:n[1]})},t.prototype._findCoordRect=function(){var r,n=SZ(this.dataZoomModel).infoList;if(!r&&n.length){var a=n[0].model.coordinateSystem;r=a.getRect&&a.getRect()}if(!r){var i=this.api.getWidth(),o=this.api.getHeight();r={x:i*.2,y:o*.2,width:i*.6,height:o*.6}}return r},t.type="dataZoom.slider",t}(lP);function J4(e,t,r,n){var a=e.get("labelFormatter"),i=e.get("labelPrecision");(i==null||i==="auto")&&(i=r.valuePrecision);var o=r.value[t],s=o==null||isNaN(o)?"":Ln(n)||Bm(n)?n.getLabel({value:Math.round(o)}):isFinite(i)?gt(o,i,!0):o+"";return Me(a)?a(o,s):ue(a)?a.replace("{value}",s):s}function Jbe(e){var t={x:"y",y:"x",radius:"angle",angle:"radius"};return t[e]}function Qbe(e){return e==="vertical"?"ns-resize":"ew-resize"}function UZ(e){e.registerComponentModel(Wbe),e.registerComponentView(Kbe),uP(e)}function e1e(e){$e(HZ),$e(UZ)}var WZ={get:function(e,t,r){var n=Te((t1e[e]||{})[t]);return r&&ne(n)?n[n.length-1]:n}},t1e={color:{active:["#006edd","#e0ffff"],inactive:[K.color.transparent]},colorHue:{active:[0,360],inactive:[0,0]},colorSaturation:{active:[.3,1],inactive:[0,0]},colorLightness:{active:[.9,.5],inactive:[0,0]},colorAlpha:{active:[.3,1],inactive:[0,0]},opacity:{active:[.3,1],inactive:[0,0]},symbol:{active:["circle","roundRect","diamond"],inactive:["none"]},symbolSize:{active:[10,50],inactive:[0,0]}},Q4=Gr.mapVisual,r1e=Gr.eachVisual,n1e=ne,VT=j,a1e=qr,i1e=xt,Hb=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.stateList=["inRange","outOfRange"],r.replacableOptionKeys=["inRange","outOfRange","target","controller","color"],r.layoutMode={type:"box",ignoreSize:!0},r.dataBound=[-1/0,1/0],r.targetVisuals={},r.controllerVisuals={},r}return t.prototype.init=function(r,n,a){this.mergeDefaultAndTheme(r,a)},t.prototype.optionUpdated=function(r,n){var a=this.option;!n&&jZ(a,r,this.replacableOptionKeys),this.textStyleModel=this.getModel("textStyle"),this.resetItemSize(),this.completeVisualOption()},t.prototype.resetVisual=function(r){var n=this.stateList;r=ve(r,this),this.controllerVisuals=eN(this.option.controller,n,r),this.targetVisuals=eN(this.option.target,n,r)},t.prototype.getItemSymbol=function(){return null},t.prototype.getTargetSeriesIndices=function(){var r=this,n=this.option.seriesTargets;if(n){var a=[];return VT(n,function(l){if(l.seriesIndex!=null)a.push(l.seriesIndex);else if(l.seriesId!=null){var u;r.ecModel.eachSeries(function(c){c.id===l.seriesId&&(u=c)}),u&&a.push(u.componentIndex)}}),a}var i=this.option.seriesId,o=this.option.seriesIndex;o==null&&i==null&&(o="all");var s=Bd(this.ecModel,"series",{index:o,id:i},{useDefault:!1,enableAll:!0,enableNone:!1}).models;return oe(s,function(l){return l.componentIndex})},t.prototype.eachTargetSeries=function(r,n){j(this.getTargetSeriesIndices(),function(a){var i=this.ecModel.getSeriesByIndex(a);i&&r.call(n,i)},this)},t.prototype.isTargetSeries=function(r){var n=!1;return this.eachTargetSeries(function(a){a===r&&(n=!0)}),n},t.prototype.formatValueText=function(r,n,a){var i=this.option,o=i.precision,s=this.dataBound,l=i.formatter,u;a=a||["<",">"],ne(r)&&(r=r.slice(),u=!0);var c=n?r:u?[h(r[0]),h(r[1])]:h(r);if(ue(l))return l.replace("{value}",u?c[0]:c).replace("{value2}",u?c[1]:c);if(Me(l))return u?l(r[0],r[1]):l(r);if(u)return r[0]===s[0]?a[0]+" "+c[1]:r[1]===s[1]?a[1]+" "+c[0]:c[0]+" - "+c[1];return c;function h(d){return d===s[0]?"min":d===s[1]?"max":(+d).toFixed(Math.min(o,20))}},t.prototype.resetExtent=function(){var r=this.option,n=a1e([r.min,r.max]);this._dataExtent=n},t.prototype.getDimension=function(r){var n=this,a=this.option.seriesTargets;if(a){var i=Es(a,function(o){return o.seriesIndex!=null&&o.seriesIndex===r||o.seriesId!=null&&o.seriesId===n.ecModel.getSeriesByIndex(r).id});if(i)return i.dimension}return this.option.dimension},t.prototype.getDataDimensionIndex=function(r){var n=r.hostModel.seriesIndex,a=this.getDimension(n);if(a!=null)return r.getDimensionIndex(a);for(var i=r.dimensions,o=i.length-1;o>=0;o--){var s=i[o],l=r.getDimensionInfo(s);if(!l.isCalculationCoord)return l.storeDimIndex}},t.prototype.getExtent=function(){return this._dataExtent.slice()},t.prototype.completeVisualOption=function(){var r=this.ecModel,n=this.option,a={inRange:n.inRange,outOfRange:n.outOfRange},i=n.target||(n.target={}),o=n.controller||(n.controller={});We(i,a),We(o,a);var s=this.isCategory();l.call(this,i),l.call(this,o),u.call(this,i,"inRange","outOfRange"),c.call(this,o);function l(h){n1e(n.color)&&!h.inRange&&(h.inRange={color:n.color.slice().reverse()}),h.inRange=h.inRange||{color:r.get("gradientColor")}}function u(h,d,v){var g=h[d],m=h[v];g&&!m&&(m=h[v]={},VT(g,function(y,x){if(Gr.isValidType(x)){var _=WZ.get(x,"inactive",s);_!=null&&(m[x]=_,x==="color"&&!m.hasOwnProperty("opacity")&&!m.hasOwnProperty("colorAlpha")&&(m.opacity=[0,0]))}}))}function c(h){var d=(h.inRange||{}).symbol||(h.outOfRange||{}).symbol,v=(h.inRange||{}).symbolSize||(h.outOfRange||{}).symbolSize,g=this.get("inactiveColor"),m=this.getItemSymbol(),y=m||"roundRect";VT(this.stateList,function(x){var _=this.itemSize,w=h[x];w||(w=h[x]={color:s?g:[g]}),w.symbol==null&&(w.symbol=d&&Te(d)||(s?y:[y])),w.symbolSize==null&&(w.symbolSize=v&&Te(v)||(s?_[0]:[_[0],_[0]])),w.symbol=Q4(w.symbol,function(M){return M==="none"?y:M});var S=w.symbolSize;if(S!=null){var C=-1/0;r1e(S,function(M){M>C&&(C=M)}),w.symbolSize=Q4(S,function(M){return i1e(M,[0,C],[0,_[0]],!0)})}},this)}},t.prototype.resetItemSize=function(){this.itemSize=[parseFloat(this.get("itemWidth")),parseFloat(this.get("itemHeight"))]},t.prototype.isCategory=function(){return!!this.option.categories},t.prototype.setSelected=function(r){},t.prototype.getSelected=function(){return null},t.prototype.getValueState=function(r){return null},t.prototype.getVisualMeta=function(r){return null},t.type="visualMap",t.dependencies=["series"],t.defaultOption={show:!0,z:4,min:0,max:200,left:0,right:null,top:null,bottom:0,itemWidth:null,itemHeight:null,inverse:!1,orient:"vertical",backgroundColor:K.color.transparent,borderColor:K.color.borderTint,contentColor:K.color.theme[0],inactiveColor:K.color.disabled,borderWidth:0,padding:K.size.m,textGap:10,precision:0,textStyle:{color:K.color.secondary}},t}(Qe),eB=[20,140],o1e=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.optionUpdated=function(r,n){e.prototype.optionUpdated.apply(this,arguments),this.resetExtent(),this.resetVisual(function(a){a.mappingMethod="linear",a.dataExtent=this.getExtent()}),this._resetRange()},t.prototype.resetItemSize=function(){e.prototype.resetItemSize.apply(this,arguments);var r=this.itemSize;(r[0]==null||isNaN(r[0]))&&(r[0]=eB[0]),(r[1]==null||isNaN(r[1]))&&(r[1]=eB[1])},t.prototype._resetRange=function(){var r=this.getExtent(),n=this.option.range;!n||n.auto?(r.auto=1,this.option.range=r):ne(n)&&(n[0]>n[1]&&n.reverse(),n[0]=Math.max(n[0],r[0]),n[1]=Math.min(n[1],r[1]))},t.prototype.completeVisualOption=function(){e.prototype.completeVisualOption.apply(this,arguments),j(this.stateList,function(r){var n=this.option.controller[r].symbolSize;n&&n[0]!==n[1]&&(n[0]=n[1]/3)},this)},t.prototype.setSelected=function(r){this.option.range=r.slice(),this._resetRange()},t.prototype.getSelected=function(){var r=this.getExtent(),n=qr((this.get("range")||[]).slice());return n[0]>r[1]&&(n[0]=r[1]),n[1]>r[1]&&(n[1]=r[1]),n[0]=a[1]||r<=n[1])?"inRange":"outOfRange"},t.prototype.findTargetDataIndices=function(r){var n=[];return this.eachTargetSeries(function(a){var i=[],o=a.getData();o.each(this.getDataDimensionIndex(o),function(s,l){r[0]<=s&&s<=r[1]&&i.push(l)},this),n.push({seriesId:a.id,dataIndex:i})},this),n},t.prototype.getVisualMeta=function(r){var n=tB(this,"outOfRange",this.getExtent()),a=tB(this,"inRange",this.option.range.slice()),i=[];function o(v,g){i.push({value:v,color:r(v,g)})}for(var s=0,l=0,u=a.length,c=n.length;lr[1])break;i.push({color:this.getControllerVisual(l,"color",n),offset:s/a})}return i.push({color:this.getControllerVisual(r[1],"color",n),offset:1}),i},t.prototype._createBarPoints=function(r,n){var a=this.visualMapModel.itemSize;return[[a[0]-n[0],r[0]],[a[0],r[0]],[a[0],r[1]],[a[0]-n[1],r[1]]]},t.prototype._createBarGroup=function(r){var n=this._orient,a=this.visualMapModel.get("inverse");return new Ne(n==="horizontal"&&!a?{scaleX:r==="bottom"?1:-1,rotation:Math.PI/2}:n==="horizontal"&&a?{scaleX:r==="bottom"?-1:1,rotation:-Math.PI/2}:n==="vertical"&&!a?{scaleX:r==="left"?1:-1,scaleY:-1}:{scaleX:r==="left"?1:-1})},t.prototype._updateHandle=function(r,n){if(this._useHandle){var a=this._shapes,i=this.visualMapModel,o=a.handleThumbs,s=a.handleLabels,l=i.itemSize,u=i.getExtent(),c=this._applyTransform("left",a.mainGroup);s1e([0,1],function(h){var d=o[h];d.setStyle("fill",n.handlesColor[h]),d.y=r[h];var v=to(r[h],[0,l[1]],u,!0),g=this.getControllerVisual(v,"symbolSize");d.scaleX=d.scaleY=g/l[0],d.x=l[0]-g/2;var m=ki(a.handleLabelPoints[h],yc(d,this.group));if(this._orient==="horizontal"){var y=c==="left"||c==="top"?(l[0]-g)/2:(l[0]-g)/-2;m[1]+=y}s[h].setStyle({x:m[0],y:m[1],text:i.formatValueText(this._dataInterval[h]),verticalAlign:"middle",align:this._orient==="vertical"?this._applyTransform("left",a.mainGroup):"center"})},this)}},t.prototype._showIndicator=function(r,n,a,i){var o=this.visualMapModel,s=o.getExtent(),l=o.itemSize,u=[0,l[1]],c=this._shapes,h=c.indicator;if(h){h.attr("invisible",!1);var d={convertOpacityToAlpha:!0},v=this.getControllerVisual(r,"color",d),g=this.getControllerVisual(r,"symbolSize"),m=to(r,s,u,!0),y=l[0]-g/2,x={x:h.x,y:h.y};h.y=m,h.x=y;var _=ki(c.indicatorLabelPoint,yc(h,this.group)),w=c.indicatorLabel;w.attr("invisible",!1);var S=this._applyTransform("left",c.mainGroup),C=this._orient,M=C==="horizontal";w.setStyle({text:(a||"")+o.formatValueText(n),verticalAlign:M?S:"middle",align:M?"center":S});var A={x:y,y:m,style:{fill:v}},I={style:{x:_[0],y:_[1]}};if(o.ecModel.isAnimationEnabled()&&!this._firstShowIndicator){var k={duration:100,easing:"cubicInOut",additive:!0};h.x=x.x,h.y=x.y,h.animateTo(A,k),w.animateTo(I,k)}else h.attr(A),w.attr(I);this._firstShowIndicator=!1;var P=this._shapes.handleLabels;if(P)for(var D=0;Do[1]&&(h[1]=1/0),n&&(h[0]===-1/0?this._showIndicator(c,h[1],"< ",l):h[1]===1/0?this._showIndicator(c,h[0],"> ",l):this._showIndicator(c,c,"≈ ",l));var d=this._hoverLinkDataIndices,v=[];(n||iB(a))&&(v=this._hoverLinkDataIndices=a.findTargetDataIndices(h));var g=fte(d,v);this._dispatchHighDown("downplay",Qx(g[0],a)),this._dispatchHighDown("highlight",Qx(g[1],a))}},t.prototype._hoverLinkFromSeriesMouseOver=function(r){var n;if(cc(r.target,function(l){var u=Ee(l);if(u.dataIndex!=null)return n=u,!0},!0),!!n){var a=this.ecModel.getSeriesByIndex(n.seriesIndex),i=this.visualMapModel;if(i.isTargetSeries(a)){var o=a.getData(n.dataType),s=o.getStore().get(i.getDataDimensionIndex(o),n.dataIndex);isNaN(s)||this._showIndicator(s,s)}}},t.prototype._hideIndicator=function(){var r=this._shapes;r.indicator&&r.indicator.attr("invisible",!0),r.indicatorLabel&&r.indicatorLabel.attr("invisible",!0);var n=this._shapes.handleLabels;if(n)for(var a=0;a=0&&(i.dimension=o,n.push(i))}}),e.getData().setVisual("visualMeta",n)}}];function p1e(e,t,r,n){for(var a=t.targetVisuals[n],i=Gr.prepareVisualTypes(a),o={color:zm(e.getData(),"color")},s=0,l=i.length;s0:t.splitNumber>0)||t.calculable)?"continuous":"piecewise"}),e.registerAction(f1e,d1e),j(v1e,function(t){e.registerVisual(e.PRIORITY.VISUAL.COMPONENT,t)}),e.registerPreprocessor(g1e))}function XZ(e){e.registerComponentModel(o1e),e.registerComponentView(c1e),YZ(e)}var m1e=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r._pieceList=[],r}return t.prototype.optionUpdated=function(r,n){e.prototype.optionUpdated.apply(this,arguments),this.resetExtent();var a=this._mode=this._determineMode();this._pieceList=[],y1e[this._mode].call(this,this._pieceList),this._resetSelected(r,n);var i=this.option.categories;this.resetVisual(function(o,s){a==="categories"?(o.mappingMethod="category",o.categories=Te(i)):(o.dataExtent=this.getExtent(),o.mappingMethod="piecewise",o.pieceList=oe(this._pieceList,function(l){return l=Te(l),s!=="inRange"&&(l.visual=null),l}))})},t.prototype.completeVisualOption=function(){var r=this.option,n={},a=Gr.listVisualTypes(),i=this.isCategory();j(r.pieces,function(s){j(a,function(l){s.hasOwnProperty(l)&&(n[l]=1)})}),j(n,function(s,l){var u=!1;j(this.stateList,function(c){u=u||o(r,c,l)||o(r.target,c,l)},this),!u&&j(this.stateList,function(c){(r[c]||(r[c]={}))[l]=WZ.get(l,c==="inRange"?"active":"inactive",i)})},this);function o(s,l,u){return s&&s[l]&&s[l].hasOwnProperty(u)}e.prototype.completeVisualOption.apply(this,arguments)},t.prototype._resetSelected=function(r,n){var a=this.option,i=this._pieceList,o=(n?a:r).selected||{};if(a.selected=o,j(i,function(l,u){var c=this.getSelectedMapKey(l);o.hasOwnProperty(c)||(o[c]=!0)},this),a.selectedMode==="single"){var s=!1;j(i,function(l,u){var c=this.getSelectedMapKey(l);o[c]&&(s?o[c]=!1:s=!0)},this)}},t.prototype.getItemSymbol=function(){return this.get("itemSymbol")},t.prototype.getSelectedMapKey=function(r){return this._mode==="categories"?r.value+"":r.index+""},t.prototype.getPieceList=function(){return this._pieceList},t.prototype._determineMode=function(){var r=this.option;return r.pieces&&r.pieces.length>0?"pieces":this.option.categories?"categories":"splitNumber"},t.prototype.setSelected=function(r){this.option.selected=Te(r)},t.prototype.getValueState=function(r){var n=Gr.findPieceIndex(r,this._pieceList);return n!=null&&this.option.selected[this.getSelectedMapKey(this._pieceList[n])]?"inRange":"outOfRange"},t.prototype.findTargetDataIndices=function(r){var n=[],a=this._pieceList;return this.eachTargetSeries(function(i){var o=[],s=i.getData();s.each(this.getDataDimensionIndex(s),function(l,u){var c=Gr.findPieceIndex(l,a);c===r&&o.push(u)},this),n.push({seriesId:i.id,dataIndex:o})},this),n},t.prototype.getRepresentValue=function(r){var n;if(this.isCategory())n=r.value;else if(r.value!=null)n=r.value;else{var a=r.interval||[];n=a[0]===-1/0&&a[1]===1/0?0:(a[0]+a[1])/2}return n},t.prototype.getVisualMeta=function(r){if(this.isCategory())return;var n=[],a=["",""],i=this;function o(c,h){var d=i.getRepresentValue({interval:c});h||(h=i.getValueState(d));var v=r(d,h);c[0]===-1/0?a[0]=v:c[1]===1/0?a[1]=v:n.push({value:c[0],color:v},{value:c[1],color:v})}var s=this._pieceList.slice();if(!s.length)s.push({interval:[-1/0,1/0]});else{var l=s[0].interval[0];l!==-1/0&&s.unshift({interval:[-1/0,l]}),l=s[s.length-1].interval[1],l!==1/0&&s.push({interval:[l,1/0]})}var u=-1/0;return j(s,function(c){var h=c.interval;h&&(h[0]>u&&o([u,h[0]],"outOfRange"),o(h.slice()),u=h[1])},this),{stops:n,outerColors:a}},t.type="visualMap.piecewise",t.defaultOption=iu(Hb.defaultOption,{selected:null,minOpen:!1,maxOpen:!1,align:"auto",itemWidth:20,itemHeight:14,itemSymbol:"roundRect",pieces:null,categories:null,splitNumber:5,selectedMode:"multiple",itemGap:10,hoverLink:!0}),t}(Hb),y1e={splitNumber:function(e){var t=this.option,r=Math.min(t.precision,20),n=this.getExtent(),a=t.splitNumber;a=Math.max(parseInt(a,10),1),t.splitNumber=a;for(var i=(n[1]-n[0])/a;+i.toFixed(r)!==i&&r<5;)r++;t.precision=r,i=+i.toFixed(r),t.minOpen&&e.push({interval:[-1/0,n[0]],close:[0,0]});for(var o=0,s=n[0];o","≥"][n[0]]];r.text=r.text||this.formatValueText(r.value!=null?r.value:r.interval,!1,a)},this)}};function uB(e,t){var r=e.inverse;(e.orient==="vertical"?!r:r)&&t.reverse()}var x1e=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.doRender=function(){var r=this.group;r.removeAll();var n=this.visualMapModel,a=n.get("textGap"),i=n.textStyleModel,o=this._getItemAlign(),s=n.itemSize,l=this._getViewData(),u=l.endsText,c=Mn(n.get("showLabel",!0),!u),h=!n.get("selectedMode");u&&this._renderEndsText(r,u[0],s,c,o),j(l.viewPieceList,function(d){var v=d.piece,g=new Ne;g.onclick=ve(this._onItemClick,this,v),this._enableHoverLink(g,d.indexInModelPieceList);var m=n.getRepresentValue(v);if(this._createItemSymbol(g,m,[0,0,s[0],s[1]],h),c){var y=this.visualMapModel.getValueState(m),x=i.get("align")||o;g.add(new ht({style:Et(i,{x:x==="right"?-a:s[0]+a,y:s[1]/2,text:v.text,verticalAlign:i.get("verticalAlign")||"middle",align:x,opacity:_e(i.get("opacity"),y==="outOfRange"?.5:1)}),silent:h}))}r.add(g)},this),u&&this._renderEndsText(r,u[1],s,c,o),xc(n.get("orient"),r,n.get("itemGap")),this.renderBackground(r),this.positionGroup(r)},t.prototype._enableHoverLink=function(r,n){var a=this;r.on("mouseover",function(){return i("highlight")}).on("mouseout",function(){return i("downplay")});var i=function(o){var s=a.visualMapModel;s.option.hoverLink&&a.api.dispatchAction({type:o,batch:Qx(s.findTargetDataIndices(n),s)})}},t.prototype._getItemAlign=function(){var r=this.visualMapModel,n=r.option;if(n.orient==="vertical")return $Z(r,this.api,r.itemSize);var a=n.align;return(!a||a==="auto")&&(a="left"),a},t.prototype._renderEndsText=function(r,n,a,i,o){if(n){var s=new Ne,l=this.visualMapModel.textStyleModel;s.add(new ht({style:Et(l,{x:i?o==="right"?a[0]:0:a[0]/2,y:a[1]/2,verticalAlign:"middle",align:i?o:"center",text:n})})),r.add(s)}},t.prototype._getViewData=function(){var r=this.visualMapModel,n=oe(r.getPieceList(),function(s,l){return{piece:s,indexInModelPieceList:l}}),a=r.get("text"),i=r.get("orient"),o=r.get("inverse");return(i==="horizontal"?o:!o)?n.reverse():a&&(a=a.slice().reverse()),{viewPieceList:n,endsText:a}},t.prototype._createItemSymbol=function(r,n,a,i){var o=_r(this.getControllerVisual(n,"symbol"),a[0],a[1],a[2],a[3],this.getControllerVisual(n,"color"));o.silent=i,r.add(o)},t.prototype._onItemClick=function(r){var n=this.visualMapModel,a=n.option,i=a.selectedMode;if(i){var o=Te(a.selected),s=n.getSelectedMapKey(r);i==="single"||i===!0?(o[s]=!0,j(o,function(l,u){o[u]=u===s})):o[s]=!o[s],this.api.dispatchAction({type:"selectDataRange",from:this.uid,visualMapId:this.visualMapModel.id,selected:o})}},t.type="visualMap.piecewise",t}(ZZ);function qZ(e){e.registerComponentModel(m1e),e.registerComponentView(x1e),YZ(e)}function _1e(e){$e(XZ),$e(qZ)}var b1e=function(){function e(t){this._thumbnailModel=t}return e.prototype.reset=function(t){this._renderVersion=t.getECUpdateCycleVersion()},e.prototype.renderContent=function(t){var r=t.api.getViewOfComponentModel(this._thumbnailModel);r&&(t.group.silent=!0,r.renderContent({group:t.group,targetTrans:t.targetTrans,z2Range:OH(t.group),roamType:t.roamType,viewportRect:t.viewportRect,renderVersion:this._renderVersion}))},e.prototype.updateWindow=function(t,r){var n=r.getViewOfComponentModel(this._thumbnailModel);n&&n.updateWindow({targetTrans:t,renderVersion:this._renderVersion})},e}(),w1e=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.preventAutoZ=!0,r}return t.prototype.optionUpdated=function(r,n){this._updateBridge()},t.prototype._updateBridge=function(){var r=this._birdge=this._birdge||new b1e(this);if(this._target=null,this.ecModel.eachSeries(function(a){V3(a,null)}),this.shouldShow()){var n=this.getTarget();V3(n.baseMapProvider,r)}},t.prototype.shouldShow=function(){return this.getShallow("show",!0)},t.prototype.getBridge=function(){return this._birdge},t.prototype.getTarget=function(){if(this._target)return this._target;var r=this.getReferringComponents("series",{useDefault:!1,enableAll:!1,enableNone:!1}).models[0];return r?r.subType!=="graph"&&(r=null):r=this.ecModel.queryComponents({mainType:"series",subType:"graph"})[0],this._target={baseMapProvider:r},this._target},t.type="thumbnail",t.layoutMode="box",t.dependencies=["series","geo"],t.defaultOption={show:!0,right:1,bottom:1,height:"25%",width:"25%",itemStyle:{borderColor:K.color.border,borderWidth:2},windowStyle:{borderWidth:1,color:K.color.neutral30,borderColor:K.color.neutral40,opacity:.3},z:10},t}(Qe),S1e=function(e){X(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,a){if(this._api=a,this._model=r,this._coordSys||(this._coordSys=new ow),!this._isEnabled()){this._clear();return}this._renderVersion=a.getECUpdateCycleVersion();var i=this.group;i.removeAll();var o=r.getModel("itemStyle"),s=o.getItemStyle();s.fill==null&&(s.fill=n.get("backgroundColor")||K.color.neutral00);var l=jr(r,a).refContainer,u=Zt(l7(r,!0),l),c=s.lineWidth||0,h=this._contentRect=zc(u.clone(),c/2,!0,!0),d=new Ne;i.add(d),d.setClipPath(new Ke({shape:h.plain()}));var v=this._targetGroup=new Ne;d.add(v);var g=u.plain();g.r=o.getShallow("borderRadius",!0),i.add(this._bgRect=new Ke({style:s,shape:g,silent:!1,cursor:"grab"}));var m=r.getModel("windowStyle"),y=m.getShallow("borderRadius",!0);d.add(this._windowRect=new Ke({shape:{x:0,y:0,width:0,height:0,r:y},style:m.getItemStyle(),silent:!1,cursor:"grab"})),this._dealRenderContent(),this._dealUpdateWindow(),hB(r,this)},t.prototype.renderContent=function(r){this._bridgeRendered=r,this._isEnabled()&&(this._dealRenderContent(),this._dealUpdateWindow(),hB(this._model,this))},t.prototype._dealRenderContent=function(){var r=this._bridgeRendered;if(!(!r||r.renderVersion!==this._renderVersion)){var n=this._targetGroup,a=this._coordSys,i=this._contentRect;if(n.removeAll(),!!r){var o=r.group,s=o.getBoundingRect();n.add(o),this._bgRect.z2=r.z2Range.min-10,sw(a,s.x,s.y,s.width,s.height);var l=Zt({left:"center",top:"center",aspect:s.width/s.height},i);Sb(a,l.x,l.y,l.width,l.height),om(o,a,Yc),o.dirty(),this._windowRect.z2=r.z2Range.max+10,this._resetRoamController(r.roamType)}}},t.prototype.updateWindow=function(r){var n=this._bridgeRendered;n&&n.renderVersion===r.renderVersion&&(n.targetTrans=r.targetTrans),this._isEnabled()&&this._dealUpdateWindow()},t.prototype._dealUpdateWindow=function(){var r=this._bridgeRendered;if(!(!r||r.renderVersion!==this._renderVersion)){var n=Ma([],r.targetTrans),a=Ca([],wb(null,this._coordSys),n);this._transThisToTarget=Ma([],a);var i=r.viewportRect;i?i=i.clone():i=new ke(0,0,this._api.getWidth(),this._api.getHeight()),i.applyTransform(a);var o=this._windowRect,s=o.shape.r;o.setShape(Le({r:s},i))}},t.prototype._resetRoamController=function(r){var n=this,a=this._api,i=this._roamController;if(i||(i=this._roamController=new xh(a.getZr())),!r||!this._isEnabled()){i.disable();return}i.enable(r,{api:a,zInfo:{component:this._model},triggerInfo:{roamTrigger:null,isInSelf:function(o,s,l){return n._contentRect.contain(s,l)}}}),i.off("pan").off("zoom").on("pan",ve(this._onPan,this)).on("zoom",ve(this._onZoom,this))},t.prototype._onPan=function(r){var n=this._transThisToTarget;if(!(!this._isEnabled()||!n)){var a=ir([],[r.oldX,r.oldY],n),i=ir([],[r.oldX-r.dx,r.oldY-r.dy],n);this._api.dispatchAction(cB(this._model.getTarget().baseMapProvider,{dx:i[0]-a[0],dy:i[1]-a[1]}))}},t.prototype._onZoom=function(r){var n=this._transThisToTarget;if(!(!this._isEnabled()||!n)){var a=ir([],[r.originX,r.originY],n);this._api.dispatchAction(cB(this._model.getTarget().baseMapProvider,{zoom:1/r.scale,originX:a[0],originY:a[1]}))}},t.prototype._isEnabled=function(){var r=this._model;if(!r||!r.shouldShow())return!1;var n=r.getTarget().baseMapProvider;return!!n},t.prototype._clear=function(){this.group.removeAll(),this._bridgeRendered=null,this._roamController&&this._roamController.disable()},t.prototype.remove=function(){this._clear()},t.prototype.dispose=function(){this._clear()},t.type="thumbnail",t}(Rt);function cB(e,t){var r=e.mainType==="series"?e.subType+"Roam":e.mainType+"Roam",n={type:r};return n[e.mainType+"Id"]=e.id,te(n,t),n}function hB(e,t){var r=Bc(e);B1(t.group,r.z,r.zlevel)}function C1e(e){e.registerComponentModel(w1e),e.registerComponentView(S1e)}var T1e={label:{enabled:!0},decal:{show:!1}},fB=Ze(),dB=Ze(),M1e=Lm(A1e);function A1e(e,t){var r=e.getModel("aria");if(!r.get("enabled"))return;var n=dB(e).scope||(dB(e).scope={}),a=Te(T1e);We(a.label,e.getLocaleModel().get("aria"),!1),We(r.option,a,!1),i(),o();function i(){var c=r.getModel("decal"),h=c.get("show");if(h){var d=pe();e.eachSeries(function(v){v.isColorBySeries()||(fB(v).scope=d.get(v.type)||d.set(v.type,{}))}),e.eachSeries(function(v){if(Me(v.enableAriaDecal)){v.enableAriaDecal();return}var g=v.getData();if(v.isColorBySeries()){var w=UM(v.ecModel,v.name,n,e.getSeriesCount()),S=g.getVisual("decal");g.setVisual("decal",C(S,w))}else{var m=v.getRawData(),y={},x=fB(v).scope;g.each(function(M){var A=g.getRawIndex(M);y[A]=M});var _=m.count();m.each(function(M){var A=y[M],I=m.getName(M)||M+"",k=UM(v.ecModel,I,x,_),P=g.getItemVisual(A,"decal");g.setItemVisual(A,"decal",C(P,k))})}function C(M,A){var I=M?te(te({},A),M):A;return I.dirty=!0,I}})}}function o(){var c=t.getZr().dom;if(c){var h=e.getLocaleModel().get("aria"),d=r.getModel("label");if(d.option=Le(d.option,h),!!d.get("enabled")){if(c.setAttribute("role","img"),d.get("description")){c.setAttribute("aria-label",d.get("description"));return}var v=e.getSeriesCount(),g=d.get(["data","maxCount"])||10,m=d.get(["series","maxCount"])||10,y=Math.min(v,m),x;if(!(v<1)){var _=l();if(_){var w=d.get(["general","withTitle"]);x=s(w,{title:_})}else x=d.get(["general","withoutTitle"]);var S=[],C=v>1?d.get(["series","multiple","prefix"]):d.get(["series","single","prefix"]);x+=s(C,{seriesCount:v}),e.eachSeries(function(k,P){if(P1?d.get(["series","multiple",E]):d.get(["series","single",E]),D=s(D,{seriesId:k.seriesIndex,seriesName:k.get("name"),seriesType:u(k.subType)});var B=k.getData();if(B.count()>g){var H=d.get(["data","partialData"]);D+=s(H,{displayCnt:g})}else D+=d.get(["data","allData"]);for(var V=d.get(["data","separator","middle"]),U=d.get(["data","separator","end"]),F=d.get(["data","excludeDimensionId"]),Z=[],$=0;$":"gt",">=":"gte","=":"eq","!=":"ne","<>":"ne"},L1e=function(){function e(t){var r=this._condVal=ue(t)?new RegExp(t):XV(t)?t:null;if(r==null){var n="";bt(n)}}return e.prototype.evaluate=function(t){var r=typeof t;return ue(r)?this._condVal.test(t):ft(r)?this._condVal.test(t+""):!1},e}(),I1e=function(){function e(){}return e.prototype.evaluate=function(){return this.value},e}(),P1e=function(){function e(){}return e.prototype.evaluate=function(){for(var t=this.children,r=0;r2&&n.push(a),a=[E,B]}function c(E,B,H,V){Ef(E,H)&&Ef(B,V)||a.push(E,B,H,V,H,V)}function h(E,B,H,V,U,F){var Z=Math.abs(B-E),$=Math.tan(Z/4)*4/3,W=BI:D2&&n.push(a),n}function lN(e,t,r,n,a,i,o,s,l,u){if(Ef(e,r)&&Ef(t,n)&&Ef(a,o)&&Ef(i,s)){l.push(o,s);return}var c=2/u,h=c*c,d=o-e,v=s-t,g=Math.sqrt(d*d+v*v);d/=g,v/=g;var m=r-e,y=n-t,x=a-o,_=i-s,w=m*m+y*y,S=x*x+_*_;if(w=0&&I=0){l.push(o,s);return}var k=[],P=[];Fl(e,r,a,o,.5,k),Fl(t,n,i,s,.5,P),lN(k[0],P[0],k[1],P[1],k[2],P[2],k[3],P[3],l,u),lN(k[4],P[4],k[5],P[5],k[6],P[6],k[7],P[7],l,u)}function Z1e(e,t){var r=sN(e),n=[];t=t||1;for(var a=0;a0)for(var u=0;uMath.abs(u),h=JZ([l,u],c?0:1,t),d=(c?s:u)/h.length,v=0;va,o=JZ([n,a],i?0:1,t),s=i?"width":"height",l=i?"height":"width",u=i?"x":"y",c=i?"y":"x",h=e[s]/o.length,d=0;d1?null:new Pe(m*l+e,m*u+t)}function X1e(e,t,r){var n=new Pe;Pe.sub(n,r,t),n.normalize();var a=new Pe;Pe.sub(a,e,t);var i=a.dot(n);return i}function lf(e,t){var r=e[e.length-1];r&&r[0]===t[0]&&r[1]===t[1]||e.push(t)}function q1e(e,t,r){for(var n=e.length,a=[],i=0;io?(u.x=c.x=s+i/2,u.y=l,c.y=l+o):(u.y=c.y=l+o/2,u.x=s,c.x=s+i),q1e(t,u,c)}function Ub(e,t,r,n){if(r===1)n.push(t);else{var a=Math.floor(r/2),i=e(t);Ub(e,i[0],a,n),Ub(e,i[1],r-a,n)}return n}function K1e(e,t){for(var r=[],n=0;n0;u/=2){var c=0,h=0;(e&u)>0&&(c=1),(t&u)>0&&(h=1),s+=u*u*(3*c^h),h===0&&(c===1&&(e=u-1-e,t=u-1-t),l=e,e=t,t=l)}return s}function $b(e){var t=1/0,r=1/0,n=-1/0,a=-1/0,i=oe(e,function(s){var l=s.getBoundingRect(),u=s.getComputedTransform(),c=l.x+l.width/2+(u?u[4]:0),h=l.y+l.height/2+(u?u[5]:0);return t=Math.min(c,t),r=Math.min(h,r),n=Math.max(c,n),a=Math.max(h,a),[c,h]}),o=oe(i,function(s,l){return{cp:s,z:owe(s[0],s[1],t,r,n,a),path:e[l]}});return o.sort(function(s,l){return s.z-l.z}).map(function(s){return s.path})}function t$(e){return ewe(e.path,e.count)}function uN(){return{fromIndividuals:[],toIndividuals:[],count:0}}function swe(e,t,r){var n=[];function a(C){for(var M=0;M=0;a--)if(!r[a].many.length){var l=r[s].many;if(l.length<=1)if(s)s=0;else return r;var i=l.length,u=Math.ceil(i/2);r[a].many=l.slice(u,i),r[s].many=l.slice(0,u),s++}return r}var uwe={clone:function(e){for(var t=[],r=1-Math.pow(1-e.path.style.opacity,1/e.count),n=0;n0))return;var s=n.getModel("universalTransition").get("delay"),l=te({setToFinal:!0},o),u,c;wB(e)&&(u=e,c=t),wB(t)&&(u=t,c=e);function h(x,_,w,S,C){var M=x.many,A=x.one;if(M.length===1&&!C){var I=_?M[0]:A,k=_?A:M[0];if(Wb(I))h({many:[I],one:k},!0,w,S,!0);else{var P=s?Le({delay:s(w,S)},l):l;yP(I,k,P),i(I,k,I,k,P)}}else for(var D=Le({dividePath:uwe[r],individualDelay:s&&function(U,F,Z,$){return s(U+w,S)}},l),z=_?swe(M,A,D):lwe(A,M,D),E=z.fromIndividuals,B=z.toIndividuals,H=E.length,V=0;Vt.length,v=u?SB(c,u):SB(d?t:e,[d?e:t]),g=0,m=0;mr$))for(var i=n.getIndices(),o=0;o0&&M.group.traverse(function(I){I instanceof rt&&!I.animators.length&&I.animateFrom({style:{opacity:0}},A)})})}function NB(e){var t=e.getModel("universalTransition").get("seriesKey");return t||e.id}function kB(e){return ne(e)?e.sort().join(","):e}function il(e){if(e.hostModel)return e.hostModel.getModel("universalTransition").get("divideShape")}function gwe(e,t){var r=pe(),n=pe(),a=pe();return j(e.oldSeries,function(i,o){var s=e.oldDataGroupIds[o],l=e.oldData[o],u=NB(i),c=kB(u);n.set(c,{dataGroupId:s,data:l}),ne(u)&&j(u,function(h){a.set(h,{key:c,dataGroupId:s,data:l})})}),j(t.updatedSeries,function(i){if(i.isUniversalTransitionEnabled()&&i.isAnimationEnabled()){var o=i.get("dataGroupId"),s=i.getData(),l=NB(i),u=kB(l),c=n.get(u);if(c)r.set(u,{oldSeries:[{dataGroupId:c.dataGroupId,divide:il(c.data),data:c.data}],newSeries:[{dataGroupId:o,divide:il(s),data:s}]});else if(ne(l)){var h=[];j(l,function(g){var m=n.get(g);m.data&&h.push({dataGroupId:m.dataGroupId,divide:il(m.data),data:m.data})}),h.length&&r.set(u,{oldSeries:h,newSeries:[{dataGroupId:o,data:s,divide:il(s)}]})}else{var d=a.get(l);if(d){var v=r.get(d.key);v||(v={oldSeries:[{dataGroupId:d.dataGroupId,data:d.data,divide:il(d.data)}],newSeries:[]},r.set(d.key,v)),v.newSeries.push({dataGroupId:o,data:s,divide:il(s)})}}}}),r}function LB(e,t){for(var r=0;r=0&&a.push({dataGroupId:t.oldDataGroupIds[s],data:t.oldData[s],divide:il(t.oldData[s]),groupIdDim:o.dimension})}),j(jt(e.to),function(o){var s=LB(r.updatedSeries,o);if(s>=0){var l=r.updatedSeries[s].getData();i.push({dataGroupId:t.oldDataGroupIds[s],data:l,divide:il(l),groupIdDim:o.dimension})}}),a.length>0&&i.length>0&&n$(a,i,n)}function ywe(e){e.registerUpdateLifecycle("series:beforeupdate",function(t,r,n){j(jt(n.seriesTransition),function(a){j(jt(a.to),function(i){for(var o=n.updatedSeries,s=0;ss.vmin?n+=s.vmin-a+(t-s.vmin)/(s.vmax-s.vmin)*s.gapReal:n+=t-a,a=s.vmax,i=!1;break}n+=s.vmin-a+s.gapReal,a=s.vmax}return i&&(n+=t-a),n},transformOut:function(t,r){if(r&&r.depth===ps)return t;for(var n=IB,a=PB,i=!0,o=0,s=0;su?o=l.vmin+(t-u)/(c-u)*(l.vmax-l.vmin):o=a+t-n,a=l.vmax,i=!1;break}n=c,a=l.vmax}return i&&(o=a+t-n),o}},e}();function _we(e,t){return new xwe(e,t)}var IB=0,PB=0;function bwe(e,t){var r=0,n={tpAbs:{span:0,val:0},tpPrct:{span:0,val:0}},a=function(){return{has:!1,span:NaN,inExtFrac:NaN,val:NaN}},i={S:{tpAbs:a(),tpPrct:a()},E:{tpAbs:a(),tpPrct:a()}};j(e.breaks,function(s){var l=s.gapParsed;l.type==="tpPrct"&&(r+=l.val);var u=xP(s,t);if(u){var c=u.vmin!==s.vmin,h=u.vmax!==s.vmax,d=u.vmax-u.vmin;if(!(c&&h))if(c||h){var v=c?"S":"E";i[v][l.type].has=!0,i[v][l.type].span=d,i[v][l.type].inExtFrac=d/(s.vmax-s.vmin),i[v][l.type].val=l.val}else n[l.type].span+=d,n[l.type].val+=l.val}});var o=r*(0+(t[1]-t[0])+(n.tpAbs.val-n.tpAbs.span)+(i.S.tpAbs.has?(i.S.tpAbs.val-i.S.tpAbs.span)*i.S.tpAbs.inExtFrac:0)+(i.E.tpAbs.has?(i.E.tpAbs.val-i.E.tpAbs.span)*i.E.tpAbs.inExtFrac:0)-n.tpPrct.span-(i.S.tpPrct.has?i.S.tpPrct.span*i.S.tpPrct.inExtFrac:0)-(i.E.tpPrct.has?i.E.tpPrct.span*i.E.tpPrct.inExtFrac:0))/(1-n.tpPrct.val-(i.S.tpPrct.has?i.S.tpPrct.val*i.S.tpPrct.inExtFrac:0)-(i.E.tpPrct.has?i.E.tpPrct.val*i.E.tpPrct.inExtFrac:0));j(e.breaks,function(s){var l=s.gapParsed;l.type==="tpPrct"&&(s.gapReal=r!==0?qe(o,0)*l.val/r:0),l.type==="tpAbs"&&(s.gapReal=l.val),s.gapReal==null&&(s.gapReal=0)})}function wwe(e,t,r,n,a,i){e!=="no"&&j(r,function(o){var s=xP(o,i);if(s)for(var l=t.length-1;l>=0;l--){var u=t[l],c=n(u),h=a*3/4;c>s.vmin-h&&ct[0]&&r=0&&o<1-1e-5}j(e,function(o){if(!(!o||o.start==null||o.end==null)&&!o.isExpanded){var s={breakOption:Te(o),vmin:t.parse(o.start),vmax:t.parse(o.end),gapParsed:{type:"tpAbs",val:0},gapReal:null};if(o.gap!=null){var l=!1;if(ue(o.gap)){var u=_a(o.gap);if(u.match(/%$/)){var c=parseFloat(u)/100;a(c)||(c=0),s.gapParsed.type="tpPrct",s.gapParsed.val=c,l=!0}}if(!l){var h=t.parse(o.gap);(!isFinite(h)||h<0)&&(h=0),s.gapParsed.type="tpAbs",s.gapParsed.val=h}}if(s.vmin===s.vmax&&(s.gapParsed.type="tpAbs",s.gapParsed.val=0),r&&r.noNegative&&j(["vmin","vmax"],function(v){s[v]<0&&(s[v]=0)}),s.vmin>s.vmax){var d=s.vmax;s.vmax=s.vmin,s.vmin=d}n.push(s)}}),n.sort(function(o,s){return o.vmin-s.vmin});var i=-1/0;return j(n,function(o,s){i>o.vmin&&(n[s]=null),i=o.vmax}),{breaks:wt(n,function(o){return!!o})}}function _P(e,t){return hN(t)===hN(e)}function hN(e){return e.start+"_\0_"+e.end}function Cwe(e,t,r){var n=[];j(e,function(i,o){var s=t(i);s&&s.type==="vmin"&&n.push([o])}),j(e,function(i,o){var s=t(i);if(s&&s.type==="vmax"){var l=Es(n,function(u){return _P(t(e[u[0]]).parsedBreak.breakOption,s.parsedBreak.breakOption)});l&&l.push(o)}});var a=[];return j(n,function(i){i.length===2&&a.push(r?i:[e[i[0]],e[i[1]]])}),a}function Twe(e,t,r,n){if(t.break){var a=t.break.parsedBreak,i=Es(r,function(c){return _P(c.breakOption,t.break.parsedBreak.breakOption)}),o={lookup:n,depth:ps},s=e.transformOut(a.vmin,o),l=e.transformOut(a.vmax,o),u={vmin:s,vmax:l,breakOption:a.breakOption,gapParsed:Te(i.gapParsed),gapReal:a.gapReal};return{tickVal:u[t.break.type],vBreak:{type:t.break.type,parsedBreak:u}}}}function Mwe(e,t,r,n,a){a.original=cN(e,t,r);var i=a.transformed=cN(e,t,r),o=a.lookup;i.breaks=oe(i.breaks,function(s,l){var u={depth:ps},c=t.transformIn(s.vmin,u),h=t.transformIn(s.vmax,u),d={type:s.gapParsed.type,val:s.gapParsed.type==="tpAbs"?t.transformIn(s.vmin+s.gapParsed.val,u)-c:s.gapParsed.val};return o.from[n+l]=c,o.to[n+l]=s.vmin,o.from[n+l+1]=h,o.to[n+l+1]=s.vmax,{vmin:c,vmax:h,gapParsed:d,gapReal:s.gapReal,breakOption:s.breakOption}})}var Awe={vmin:"start",vmax:"end"};function Nwe(e,t){return t&&(e=e||{},e.break={type:Awe[t.type],start:t.parsedBreak.vmin,end:t.parsedBreak.vmax}),e}function kwe(){Nne({createBreakScaleMapper:_we,pruneTicksByBreak:wwe,addBreaksToTicks:Swe,parseAxisBreakOption:cN,identifyAxisBreak:_P,serializeAxisBreakIdentifier:hN,retrieveAxisBreakPairs:Cwe,getTicksBreakOutwardTransform:Twe,parseAxisBreakOptionInwardTransform:Mwe,makeAxisLabelFormatterParamBreak:Nwe})}var DB=Ze();function Lwe(e,t){var r=Es(e,function(n){return xr().identifyAxisBreak(n.parsedBreak.breakOption,t.breakOption)});return r||e.push(r={zigzagRandomList:[],parsedBreak:t,shouldRemove:!1}),r}function Iwe(e){j(e,function(t){return t.shouldRemove=!0})}function Pwe(e){for(var t=e.length-1;t>=0;t--)e[t].shouldRemove&&e.splice(t,1)}function Dwe(e,t,r,n,a){var i=r.axis;if(i.scale.isBlank()||!xr())return;var o=xr().retrieveAxisBreakPairs(i.scale.getTicks({breakTicks:"only_break"}),function(k){return k.break},!1);if(!o.length)return;var s=r.getModel("breakArea"),l=s.get("zigzagAmplitude"),u=s.get("zigzagMinSpan"),c=s.get("zigzagMaxSpan");u=Math.max(2,u||0),c=Math.max(u,c||0);var h=s.get("expandOnClick"),d=s.get("zigzagZ"),v=s.getModel("itemStyle"),g=v.getItemStyle(),m=g.stroke,y=g.lineWidth,x=g.lineDash,_=g.fill,w=new Ne({ignoreModelZ:!0}),S=i.isHorizontal(),C=DB(t).visualList||(DB(t).visualList=[]);Iwe(C);for(var M=function(k){var P=o[k][0].break.parsedBreak,D=[];D[0]=i.toGlobalCoord(i.dataToCoord(P.vmin,!0)),D[1]=i.toGlobalCoord(i.dataToCoord(P.vmax,!0)),D[1]=F;ce&&(re=F);var Ue=[],ye=[];Ue[V]=D,ye[V]=z,!se&&!ce&&(Ue[V]+=q?-l:l,ye[V]-=q?l:-l),Ue[U]=re,ye[U]=re,$.push(Ue),W.push(ye);var me=void 0;if(Q_[1]&&_.reverse(),{coordPair:_,brkId:xr().serializeAxisBreakIdentifier(x.breakOption)}});l.sort(function(y,x){return y.coordPair[0]-x.coordPair[0]});for(var u=o[0],c=null,h=0;h=0?l[0].width:l[1].width),d=(h+c.x)/2-u.x,v=Math.min(d,d-c.x),g=Math.max(d,d-c.x),m=g<0?g:v>0?v:0;s=(d-m)/c.x}var y=new Pe,x=new Pe;Pe.scale(y,n,-s),Pe.scale(x,n,1-s),cA(r[0],y),cA(r[1],x)}function Rwe(e,t){var r={breaks:[]};return j(t.breaks,function(n){if(n){var a=Es(e.get("breaks",!0),function(s){return xr().identifyAxisBreak(s,n)});if(a){var i=t.type,o={isExpanded:!!a.isExpanded};a.isExpanded=i===tw?!0:i===Y8?!1:i===X8?!a.isExpanded:a.isExpanded,r.breaks.push({start:a.start,end:a.end,isExpanded:!!a.isExpanded,old:o})}}}),r}function Owe(){Que({adjustBreakLabelPair:jwe,buildAxisBreakLine:Ewe,rectCoordBuildBreakAxis:Dwe,updateModelAxisBreak:Rwe})}function zwe(e){nce(e),kwe(),Owe()}function Bwe(){xhe(Fwe)}function Fwe(e,t){j(e,function(r){if(!r.model.get(["axisLabel","inside"])){var n=Vwe(r);if(n){var a=r.isHorizontal()?"height":"width",i=r.model.get(["axisLabel","margin"]);t[a]-=n[a]+i,r.position==="top"?t.y+=n.height+i:r.position==="left"&&(t.x+=n.width+i)}}})}function Vwe(e){var t=e.model,r=e.scale;if(!t.get(["axisLabel","show"])||r.isBlank())return;var n,a,i=r.getExtent();r instanceof Xg?a=r.count():(n=r.getTicks(),a=n.length);var o=e.getLabelModel(),s=Vm(e),l,u=1;a>40&&(u=Math.ceil(a/40));for(var c=0;c1&&arguments[1]!==void 0?arguments[1]:60,a=null;return function(){for(var i=this,o=arguments.length,s=new Array(o),l=0;l12?"#22c55e":e>8?"#4ade80":e>5?"#f59e0b":e>3?"#f97316":"#ef4444"}function aSe(e){return e===null||e>46?0:e>44.5?1:e>43?2:3}function iSe(e){return e==="ROUTER"||e==="ROUTER_LATE"?30:e==="REPEATER"||e==="TRACKER"?25:e==="CLIENT_MUTE"?7:e==="CLIENT_BASE"?12:15}function oSe({nodes:e,edges:t,selectedNodeId:r,onSelectNode:n}){const a=O.useRef(null),[i,o]=O.useState("connected"),s=O.useMemo(()=>{const y=new Set;return t.forEach(x=>{y.add(x.from_node),y.add(x.to_node)}),y},[t]),l=O.useMemo(()=>{let y=e;return i==="connected"?y=y.filter(x=>s.has(x.node_num)):i==="infra"&&(y=y.filter(x=>RB.includes(x.role))),y},[e,i,s]),u=O.useMemo(()=>new Map(l.map(y=>[y.node_num,y])),[l]),c=O.useMemo(()=>t.filter(y=>u.has(y.from_node)&&u.has(y.to_node)),[t,u]),h=O.useMemo(()=>{const y=new Set;return r!==null&&c.forEach(x=>{x.from_node===r&&y.add(x.to_node),x.to_node===r&&y.add(x.from_node)}),y},[r,c]),d=O.useMemo(()=>{const y=l.map(_=>{const w=aSe(_.latitude),S=jB[w%jB.length],C=RB.includes(_.role),M=_.node_num===r,A=h.has(_.node_num),I=r===null||M||A;return{id:String(_.node_num),name:_.short_name,value:_.node_num,symbolSize:iSe(_.role),itemStyle:{color:C?S:"#111827",borderColor:S,borderWidth:C?0:2,opacity:I?1:.15},label:{show:!0,position:"bottom",distance:5,fontSize:10,fontFamily:"JetBrains Mono, monospace",color:I?"#94a3b8":"#94a3b820"},nodeNum:_.node_num,longName:_.long_name,role:_.role}}),x=c.map(_=>{const w=r===null||_.from_node===r||_.to_node===r;return{source:String(_.from_node),target:String(_.to_node),value:_.snr,lineStyle:{color:nSe(_.snr),width:w&&r!==null?2:1,opacity:r===null?.4:w?.6:.04}}});return{nodes:y,links:x}},[l,c,r,h]),v=O.useMemo(()=>({backgroundColor:"#111827",tooltip:{trigger:"item",backgroundColor:"#1e293b",borderColor:"#334155",textStyle:{color:"#e2e8f0",fontFamily:"JetBrains Mono, monospace",fontSize:11},formatter:y=>{if(y.data&&y.data.longName){const x=y.data;return`${x.name}
${x.longName}
Role: ${x.role}`}return""}},series:[{type:"graph",layout:"force",roam:!0,draggable:!0,animation:!1,data:d.nodes,links:d.links,force:{repulsion:200,edgeLength:[80,120],gravity:.1},emphasis:{focus:"adjacency",blurScope:"coordinateSystem",scale:1.1,lineStyle:{width:2}},blur:{itemStyle:{opacity:.15},lineStyle:{opacity:.04}},label:{show:!0,position:"bottom",distance:5,fontSize:10,fontFamily:"JetBrains Mono, monospace"},edgeLabel:{show:!1},edgeSymbol:["none","none"]}]}),[d]),g=O.useCallback(y=>{if(y.data&&"nodeNum"in y.data){const x=y.data.nodeNum;n(r===x?null:x??null)}},[r,n]),m=O.useMemo(()=>({click:g}),[g]);return O.useEffect(()=>{var x;const y=(x=a.current)==null?void 0:x.getEchartsInstance();y&&y.setOption(v,{notMerge:!1,lazyUpdate:!0})},[v]),f.jsxs("div",{className:"relative bg-bg-card border border-border overflow-hidden",children:[f.jsx(rSe,{ref:a,option:v,style:{height:"540px",width:"100%"},onEvents:m,opts:{renderer:"canvas"}}),f.jsxs("div",{className:"absolute top-4 left-4 flex items-center gap-2 bg-bg-card/90 backdrop-blur-sm border border-border rounded px-3 py-2",children:[f.jsx(MV,{size:14,className:"text-slate-500"}),f.jsx("div",{className:"flex gap-1",children:[{key:"connected",label:"Connected"},{key:"infra",label:"Infra"},{key:"all",label:"All"}].map(({key:y,label:x})=>f.jsx("button",{onClick:()=>o(y),className:`px-2 py-1 text-xs rounded transition-colors ${i===y?"bg-accent text-white":"bg-bg-hover text-slate-400 hover:text-slate-200"}`,children:x},y))}),f.jsxs("span",{className:"text-xs text-slate-500 ml-2",children:[l.length," nodes • ",c.length," edges"]})]}),f.jsxs("div",{className:"absolute bottom-4 left-4 bg-bg-card/90 backdrop-blur-sm border border-border rounded p-3",children:[f.jsx("div",{className:"text-xs text-slate-400 font-medium mb-2",children:"Edge Quality (SNR)"}),f.jsx("div",{className:"space-y-1",children:[{label:"Excellent (>12)",color:"#22c55e"},{label:"Good (8-12)",color:"#4ade80"},{label:"Fair (5-8)",color:"#f59e0b"},{label:"Marginal (3-5)",color:"#f97316"},{label:"Poor (<3)",color:"#ef4444"}].map(y=>f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx("div",{className:"w-4 h-0.5",style:{backgroundColor:y.color}}),f.jsx("span",{className:"text-xs text-slate-500",children:y.label})]},y.label))})]}),f.jsxs("div",{className:"absolute bottom-4 right-4 bg-bg-card/90 backdrop-blur-sm border border-border rounded p-3",children:[f.jsx("div",{className:"text-xs text-slate-400 font-medium mb-2",children:"Node Type"}),f.jsxs("div",{className:"space-y-2",children:[f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx("div",{className:"w-3 h-3 rounded-full bg-sky-400"}),f.jsx("span",{className:"text-xs text-slate-500",children:"Infrastructure"})]}),f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx("div",{className:"w-3 h-3 rounded-full bg-gray-900 border-2 border-sky-400"}),f.jsx("span",{className:"text-xs text-slate-500",children:"Client"})]})]})]})]})}function o$(e,t){const r=O.useRef(t);O.useEffect(function(){t!==r.current&&e.attributionControl!=null&&(r.current!=null&&e.attributionControl.removeAttribution(r.current),t!=null&&e.attributionControl.addAttribution(t)),r.current=t},[e,t])}function sSe(e,t,r){t.center!==r.center&&e.setLatLng(t.center),t.radius!=null&&t.radius!==r.radius&&e.setRadius(t.radius)}const lSe=1;function uSe(e){return Object.freeze({__version:lSe,map:e})}function CP(e,t){return Object.freeze({...e,...t})}const s$=O.createContext(null),l$=s$.Provider;function mw(){const e=O.useContext(s$);if(e==null)throw new Error("No context provided: useLeafletContext() can only be used in a descendant of ");return e}function cSe(e){function t(r,n){const{instance:a,context:i}=e(r).current;return O.useImperativeHandle(n,()=>a),r.children==null?null:Qf.createElement(l$,{value:i},r.children)}return O.forwardRef(t)}function hSe(e){function t(r,n){const[a,i]=O.useState(!1),{instance:o}=e(r,i).current;O.useImperativeHandle(n,()=>o),O.useEffect(function(){a&&o.update()},[o,a,r.children]);const s=o._contentNode;return s?sV.createPortal(r.children,s):null}return O.forwardRef(t)}function fSe(e){function t(r,n){const{instance:a}=e(r).current;return O.useImperativeHandle(n,()=>a),null}return O.forwardRef(t)}function TP(e,t){const r=O.useRef();O.useEffect(function(){return t!=null&&e.instance.on(t),r.current=t,function(){r.current!=null&&e.instance.off(r.current),r.current=null}},[e,t])}function yw(e,t){const r=e.pane??t.pane;return r?{...e,pane:r}:e}function dSe(e,t){return function(n,a){const i=mw(),o=e(yw(n,i),i);return o$(i.map,n.attribution),TP(o.current,n.eventHandlers),t(o.current,i,n,a),o}}var vN={exports:{}};/* @preserve - * Leaflet 1.9.4, a JS library for interactive maps. https://leafletjs.com - * (c) 2010-2023 Vladimir Agafonkin, (c) 2010-2011 CloudMade - */(function(e,t){(function(r,n){n(t)})(CY,function(r){var n="1.9.4";function a(p){var b,T,N,R;for(T=1,N=arguments.length;T"u"||!L||!L.Mixin)){p=w(p)?p:[p];for(var b=0;b0?Math.floor(p):Math.ceil(p)};F.prototype={clone:function(){return new F(this.x,this.y)},add:function(p){return this.clone()._add($(p))},_add:function(p){return this.x+=p.x,this.y+=p.y,this},subtract:function(p){return this.clone()._subtract($(p))},_subtract:function(p){return this.x-=p.x,this.y-=p.y,this},divideBy:function(p){return this.clone()._divideBy(p)},_divideBy:function(p){return this.x/=p,this.y/=p,this},multiplyBy:function(p){return this.clone()._multiplyBy(p)},_multiplyBy:function(p){return this.x*=p,this.y*=p,this},scaleBy:function(p){return new F(this.x*p.x,this.y*p.y)},unscaleBy:function(p){return new F(this.x/p.x,this.y/p.y)},round:function(){return this.clone()._round()},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},floor:function(){return this.clone()._floor()},_floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},ceil:function(){return this.clone()._ceil()},_ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},trunc:function(){return this.clone()._trunc()},_trunc:function(){return this.x=Z(this.x),this.y=Z(this.y),this},distanceTo:function(p){p=$(p);var b=p.x-this.x,T=p.y-this.y;return Math.sqrt(b*b+T*T)},equals:function(p){return p=$(p),p.x===this.x&&p.y===this.y},contains:function(p){return p=$(p),Math.abs(p.x)<=Math.abs(this.x)&&Math.abs(p.y)<=Math.abs(this.y)},toString:function(){return"Point("+d(this.x)+", "+d(this.y)+")"}};function $(p,b,T){return p instanceof F?p:w(p)?new F(p[0],p[1]):p==null?p:typeof p=="object"&&"x"in p&&"y"in p?new F(p.x,p.y):new F(p,b,T)}function W(p,b){if(p)for(var T=b?[p,b]:p,N=0,R=T.length;N=this.min.x&&T.x<=this.max.x&&b.y>=this.min.y&&T.y<=this.max.y},intersects:function(p){p=q(p);var b=this.min,T=this.max,N=p.min,R=p.max,G=R.x>=b.x&&N.x<=T.x,Y=R.y>=b.y&&N.y<=T.y;return G&&Y},overlaps:function(p){p=q(p);var b=this.min,T=this.max,N=p.min,R=p.max,G=R.x>b.x&&N.xb.y&&N.y=b.lat&&R.lat<=T.lat&&N.lng>=b.lng&&R.lng<=T.lng},intersects:function(p){p=Q(p);var b=this._southWest,T=this._northEast,N=p.getSouthWest(),R=p.getNorthEast(),G=R.lat>=b.lat&&N.lat<=T.lat,Y=R.lng>=b.lng&&N.lng<=T.lng;return G&&Y},overlaps:function(p){p=Q(p);var b=this._southWest,T=this._northEast,N=p.getSouthWest(),R=p.getNorthEast(),G=R.lat>b.lat&&N.latb.lng&&N.lng1,ny=function(){var p=!1;try{var b=Object.defineProperty({},"passive",{get:function(){p=!0}});window.addEventListener("testPassiveEventSupport",h,b),window.removeEventListener("testPassiveEventSupport",h,b)}catch{}return p}(),ay=function(){return!!document.createElement("canvas").getContext}(),bh=!!(document.createElementNS&&vt("svg").createSVGRect),iy=!!bh&&function(){var p=document.createElement("div");return p.innerHTML="",(p.firstChild&&p.firstChild.namespaceURI)==="http://www.w3.org/2000/svg"}(),oy=!bh&&function(){try{var p=document.createElement("div");p.innerHTML='';var b=p.firstChild;return b.style.behavior="url(#default#VML)",b&&typeof b.adj=="object"}catch{return!1}}(),sy=navigator.platform.indexOf("Mac")===0,ly=navigator.platform.indexOf("Linux")===0;function ha(p){return navigator.userAgent.toLowerCase().indexOf(p)>=0}var He={ie:dr,ielt9:Rr,edge:Xt,webkit:mn,android:Fi,android23:lv,androidStock:Ho,opera:lu,chrome:uv,gecko:Xm,safari:qm,phantom:cv,opera12:_h,win:_w,ie3d:Km,webkit3d:hv,gecko3d:Jm,any3d:ca,mobile:Vi,mobileWebkit:fv,mobileWebkit3d:Qm,msPointer:dv,pointer:vv,touch:ey,touchNative:pv,mobileOpera:ty,mobileGecko:gv,retina:ry,passiveEvents:ny,canvas:ay,svg:bh,vml:oy,inlineSvg:iy,mac:sy,linux:ly},uy=He.msPointer?"MSPointerDown":"pointerdown",Dt=He.msPointer?"MSPointerMove":"pointermove",cy=He.msPointer?"MSPointerUp":"pointerup",hy=He.msPointer?"MSPointerCancel":"pointercancel",mv={touchstart:uy,touchmove:Dt,touchend:cy,touchcancel:hy},fy={touchstart:Cw,touchmove:Sh,touchend:Sh,touchcancel:Sh},Ce={},$n=!1;function wh(p,b,T){return b==="touchstart"&&Sw(),fy[b]?(T=fy[b].bind(this,T),p.addEventListener(mv[b],T,!1),T):(console.warn("wrong event specified:",b),h)}function bw(p,b,T){if(!mv[b]){console.warn("wrong event specified:",b);return}p.removeEventListener(mv[b],T,!1)}function ww(p){Ce[p.pointerId]=p}function uu(p){Ce[p.pointerId]&&(Ce[p.pointerId]=p)}function dy(p){delete Ce[p.pointerId]}function Sw(){$n||(document.addEventListener(uy,ww,!0),document.addEventListener(Dt,uu,!0),document.addEventListener(cy,dy,!0),document.addEventListener(hy,dy,!0),$n=!0)}function Sh(p,b){if(b.pointerType!==(b.MSPOINTER_TYPE_MOUSE||"mouse")){b.touches=[];for(var T in Ce)b.touches.push(Ce[T]);b.changedTouches=[b],p(b)}}function Cw(p,b){b.MSPOINTER_TYPE_TOUCH&&b.pointerType===b.MSPOINTER_TYPE_TOUCH&&vr(b),Sh(p,b)}function Tw(p){var b={},T,N;for(N in p)T=p[N],b[N]=T&&T.bind?T.bind(p):T;return p=b,b.type="dblclick",b.detail=2,b.isTrusted=!1,b._simulated=!0,b}var zs=200;function Ar(p,b){p.addEventListener("dblclick",b);var T=0,N;function R(G){if(G.detail!==1){N=G.detail;return}if(!(G.pointerType==="mouse"||G.sourceCapabilities&&!G.sourceCapabilities.firesTouchEvents)){var Y=IP(G);if(!(Y.some(function(ae){return ae instanceof HTMLLabelElement&&ae.attributes.for})&&!Y.some(function(ae){return ae instanceof HTMLInputElement||ae instanceof HTMLSelectElement}))){var ee=Date.now();ee-T<=zs?(N++,N===2&&b(Tw(G))):N=1,T=ee}}}return p.addEventListener("click",R),{dblclick:b,simDblclick:R}}function Mw(p,b){p.removeEventListener("dblclick",b.dblclick),p.removeEventListener("click",b.simDblclick)}var Ch=je(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),Bs=je(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),yv=Bs==="webkitTransition"||Bs==="OTransition"?Bs+"End":"transitionend";function xv(p){return typeof p=="string"?document.getElementById(p):p}function Fs(p,b){var T=p.style[b]||p.currentStyle&&p.currentStyle[b];if((!T||T==="auto")&&document.defaultView){var N=document.defaultView.getComputedStyle(p,null);T=N?N[b]:null}return T==="auto"?null:T}function Tt(p,b,T){var N=document.createElement(p);return N.className=b||"",T&&T.appendChild(N),N}function qt(p){var b=p.parentNode;b&&b.removeChild(p)}function cu(p){for(;p.firstChild;)p.removeChild(p.firstChild)}function ie(p){var b=p.parentNode;b&&b.lastChild!==p&&b.appendChild(p)}function Je(p){var b=p.parentNode;b&&b.firstChild!==p&&b.insertBefore(p,b.firstChild)}function kt(p,b){if(p.classList!==void 0)return p.classList.contains(b);var T=In(p);return T.length>0&&new RegExp("(^|\\s)"+b+"(\\s|$)").test(T)}function Be(p,b){if(p.classList!==void 0)for(var T=g(b),N=0,R=T.length;N0?2*window.devicePixelRatio:1;function DP(p){return He.edge?p.wheelDeltaY/2:p.deltaY&&p.deltaMode===0?-p.deltaY/L$:p.deltaY&&p.deltaMode===1?-p.deltaY*20:p.deltaY&&p.deltaMode===2?-p.deltaY*60:p.deltaX||p.deltaZ?0:p.wheelDelta?(p.wheelDeltaY||p.wheelDelta)/2:p.detail&&Math.abs(p.detail)<32765?-p.detail*20:p.detail?p.detail/-32765*60:0}function Aw(p,b){var T=b.relatedTarget;if(!T)return!0;try{for(;T&&T!==p;)T=T.parentNode}catch{return!1}return T!==p}var I$={__proto__:null,on:st,off:Vt,stopPropagation:ct,disableScrollPropagation:pt,disableClickPropagation:Hi,preventDefault:vr,stop:du,getPropagationPath:IP,getMousePosition:PP,getWheelDelta:DP,isExternalTarget:Aw,addListener:st,removeListener:Vt},EP=U.extend({run:function(p,b,T,N){this.stop(),this._el=p,this._inProgress=!0,this._duration=T||.25,this._easeOutPower=1/Math.max(N||.5,.2),this._startPos=ut(p),this._offset=b.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(!0),this._complete())},_animate:function(){this._animId=D(this._animate,this),this._step()},_step:function(p){var b=+new Date-this._startTime,T=this._duration*1e3;bthis.options.maxZoom)?this.setZoom(p):this},panInsideBounds:function(p,b){this._enforcingBounds=!0;var T=this.getCenter(),N=this._limitCenter(T,this._zoom,Q(p));return T.equals(N)||this.panTo(N,b),this._enforcingBounds=!1,this},panInside:function(p,b){b=b||{};var T=$(b.paddingTopLeft||b.padding||[0,0]),N=$(b.paddingBottomRight||b.padding||[0,0]),R=this.project(this.getCenter()),G=this.project(p),Y=this.getPixelBounds(),ee=q([Y.min.add(T),Y.max.subtract(N)]),ae=ee.getSize();if(!ee.contains(G)){this._enforcingBounds=!0;var he=G.subtract(ee.getCenter()),De=ee.extend(G).getSize().subtract(ae);R.x+=he.x<0?-De.x:De.x,R.y+=he.y<0?-De.y:De.y,this.panTo(this.unproject(R),b),this._enforcingBounds=!1}return this},invalidateSize:function(p){if(!this._loaded)return this;p=a({animate:!1,pan:!0},p===!0?{animate:!0}:p);var b=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var T=this.getSize(),N=b.divideBy(2).round(),R=T.divideBy(2).round(),G=N.subtract(R);return!G.x&&!G.y?this:(p.animate&&p.pan?this.panBy(G):(p.pan&&this._rawPanBy(G),this.fire("move"),p.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(o(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:b,newSize:T}))},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(p){if(p=this._locateOptions=a({timeout:1e4,watch:!1},p),!("geolocation"in navigator))return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var b=o(this._handleGeolocationResponse,this),T=o(this._handleGeolocationError,this);return p.watch?this._locationWatchId=navigator.geolocation.watchPosition(b,T,p):navigator.geolocation.getCurrentPosition(b,T,p),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(p){if(this._container._leaflet_id){var b=p.code,T=p.message||(b===1?"permission denied":b===2?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:b,message:"Geolocation error: "+T+"."})}},_handleGeolocationResponse:function(p){if(this._container._leaflet_id){var b=p.coords.latitude,T=p.coords.longitude,N=new se(b,T),R=N.toBounds(p.coords.accuracy*2),G=this._locateOptions;if(G.setView){var Y=this.getBoundsZoom(R);this.setView(N,G.maxZoom?Math.min(Y,G.maxZoom):Y)}var ee={latlng:N,bounds:R,timestamp:p.timestamp};for(var ae in p.coords)typeof p.coords[ae]=="number"&&(ee[ae]=p.coords[ae]);this.fire("locationfound",ee)}},addHandler:function(p,b){if(!b)return this;var T=this[p]=new b(this);return this._handlers.push(T),this.options[p]&&T.enable(),this},remove:function(){if(this._initEvents(!0),this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch{this._container._leaflet_id=void 0,this._containerId=void 0}this._locationWatchId!==void 0&&this.stopLocate(),this._stop(),qt(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(z(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload");var p;for(p in this._layers)this._layers[p].remove();for(p in this._panes)qt(this._panes[p]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(p,b){var T="leaflet-pane"+(p?" leaflet-"+p.replace("Pane","")+"-pane":""),N=Tt("div",T,b||this._mapPane);return p&&(this._panes[p]=N),N},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter.clone():this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var p=this.getPixelBounds(),b=this.unproject(p.getBottomLeft()),T=this.unproject(p.getTopRight());return new re(b,T)},getMinZoom:function(){return this.options.minZoom===void 0?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return this.options.maxZoom===void 0?this._layersMaxZoom===void 0?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(p,b,T){p=Q(p),T=$(T||[0,0]);var N=this.getZoom()||0,R=this.getMinZoom(),G=this.getMaxZoom(),Y=p.getNorthWest(),ee=p.getSouthEast(),ae=this.getSize().subtract(T),he=q(this.project(ee,N),this.project(Y,N)).getSize(),De=He.any3d?this.options.zoomSnap:1,et=ae.x/he.x,_t=ae.y/he.y,Pn=b?Math.max(et,_t):Math.min(et,_t);return N=this.getScaleZoom(Pn,N),De&&(N=Math.round(N/(De/100))*(De/100),N=b?Math.ceil(N/De)*De:Math.floor(N/De)*De),Math.max(R,Math.min(G,N))},getSize:function(){return(!this._size||this._sizeChanged)&&(this._size=new F(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(p,b){var T=this._getTopLeftPoint(p,b);return new W(T,T.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(p){return this.options.crs.getProjectedBounds(p===void 0?this.getZoom():p)},getPane:function(p){return typeof p=="string"?this._panes[p]:p},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(p,b){var T=this.options.crs;return b=b===void 0?this._zoom:b,T.scale(p)/T.scale(b)},getScaleZoom:function(p,b){var T=this.options.crs;b=b===void 0?this._zoom:b;var N=T.zoom(p*T.scale(b));return isNaN(N)?1/0:N},project:function(p,b){return b=b===void 0?this._zoom:b,this.options.crs.latLngToPoint(ce(p),b)},unproject:function(p,b){return b=b===void 0?this._zoom:b,this.options.crs.pointToLatLng($(p),b)},layerPointToLatLng:function(p){var b=$(p).add(this.getPixelOrigin());return this.unproject(b)},latLngToLayerPoint:function(p){var b=this.project(ce(p))._round();return b._subtract(this.getPixelOrigin())},wrapLatLng:function(p){return this.options.crs.wrapLatLng(ce(p))},wrapLatLngBounds:function(p){return this.options.crs.wrapLatLngBounds(Q(p))},distance:function(p,b){return this.options.crs.distance(ce(p),ce(b))},containerPointToLayerPoint:function(p){return $(p).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(p){return $(p).add(this._getMapPanePos())},containerPointToLatLng:function(p){var b=this.containerPointToLayerPoint($(p));return this.layerPointToLatLng(b)},latLngToContainerPoint:function(p){return this.layerPointToContainerPoint(this.latLngToLayerPoint(ce(p)))},mouseEventToContainerPoint:function(p){return PP(p,this._container)},mouseEventToLayerPoint:function(p){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(p))},mouseEventToLatLng:function(p){return this.layerPointToLatLng(this.mouseEventToLayerPoint(p))},_initContainer:function(p){var b=this._container=xv(p);if(b){if(b._leaflet_id)throw new Error("Map container is already initialized.")}else throw new Error("Map container not found.");st(b,"scroll",this._onScroll,this),this._containerId=l(b)},_initLayout:function(){var p=this._container;this._fadeAnimated=this.options.fadeAnimation&&He.any3d,Be(p,"leaflet-container"+(He.touch?" leaflet-touch":"")+(He.retina?" leaflet-retina":"")+(He.ielt9?" leaflet-oldie":"")+(He.safari?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""));var b=Fs(p,"position");b!=="absolute"&&b!=="relative"&&b!=="fixed"&&b!=="sticky"&&(p.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var p=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),Re(this._mapPane,new F(0,0)),this.createPane("tilePane"),this.createPane("overlayPane"),this.createPane("shadowPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(Be(p.markerPane,"leaflet-zoom-hide"),Be(p.shadowPane,"leaflet-zoom-hide"))},_resetView:function(p,b,T){Re(this._mapPane,new F(0,0));var N=!this._loaded;this._loaded=!0,b=this._limitZoom(b),this.fire("viewprereset");var R=this._zoom!==b;this._moveStart(R,T)._move(p,b)._moveEnd(R),this.fire("viewreset"),N&&this.fire("load")},_moveStart:function(p,b){return p&&this.fire("zoomstart"),b||this.fire("movestart"),this},_move:function(p,b,T,N){b===void 0&&(b=this._zoom);var R=this._zoom!==b;return this._zoom=b,this._lastCenter=p,this._pixelOrigin=this._getNewPixelOrigin(p),N?T&&T.pinch&&this.fire("zoom",T):((R||T&&T.pinch)&&this.fire("zoom",T),this.fire("move",T)),this},_moveEnd:function(p){return p&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return z(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(p){Re(this._mapPane,this._getMapPanePos().subtract(p))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(p){this._targets={},this._targets[l(this._container)]=this;var b=p?Vt:st;b(this._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",this._handleDOMEvent,this),this.options.trackResize&&b(window,"resize",this._onResize,this),He.any3d&&this.options.transform3DLimit&&(p?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){z(this._resizeRequest),this._resizeRequest=D(function(){this.invalidateSize({debounceMoveend:!0})},this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var p=this._getMapPanePos();Math.max(Math.abs(p.x),Math.abs(p.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(p,b){for(var T=[],N,R=b==="mouseout"||b==="mouseover",G=p.target||p.srcElement,Y=!1;G;){if(N=this._targets[l(G)],N&&(b==="click"||b==="preclick")&&this._draggableMoved(N)){Y=!0;break}if(N&&N.listens(b,!0)&&(R&&!Aw(G,p)||(T.push(N),R))||G===this._container)break;G=G.parentNode}return!T.length&&!Y&&!R&&this.listens(b,!0)&&(T=[this]),T},_isClickDisabled:function(p){for(;p&&p!==this._container;){if(p._leaflet_disable_click)return!0;p=p.parentNode}},_handleDOMEvent:function(p){var b=p.target||p.srcElement;if(!(!this._loaded||b._leaflet_disable_events||p.type==="click"&&this._isClickDisabled(b))){var T=p.type;T==="mousedown"&&kh(b),this._fireDOMEvent(p,T)}},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(p,b,T){if(p.type==="click"){var N=a({},p);N.type="preclick",this._fireDOMEvent(N,N.type,T)}var R=this._findEventTargets(p,b);if(T){for(var G=[],Y=0;Y0?Math.round(p-b)/2:Math.max(0,Math.ceil(p))-Math.max(0,Math.floor(b))},_limitZoom:function(p){var b=this.getMinZoom(),T=this.getMaxZoom(),N=He.any3d?this.options.zoomSnap:1;return N&&(p=Math.round(p/N)*N),Math.max(b,Math.min(T,p))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){lt(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(p,b){var T=this._getCenterOffset(p)._trunc();return(b&&b.animate)!==!0&&!this.getSize().contains(T)?!1:(this.panBy(T,b),!0)},_createAnimProxy:function(){var p=this._proxy=Tt("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(p),this.on("zoomanim",function(b){var T=Ch,N=this._proxy.style[T];Ye(this._proxy,this.project(b.center,b.zoom),this.getZoomScale(b.zoom,1)),N===this._proxy.style[T]&&this._animatingZoom&&this._onZoomTransitionEnd()},this),this.on("load moveend",this._animMoveEnd,this),this._on("unload",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){qt(this._proxy),this.off("load moveend",this._animMoveEnd,this),delete this._proxy},_animMoveEnd:function(){var p=this.getCenter(),b=this.getZoom();Ye(this._proxy,this.project(p,b),this.getZoomScale(b,1))},_catchTransitionEnd:function(p){this._animatingZoom&&p.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(p,b,T){if(this._animatingZoom)return!0;if(T=T||{},!this._zoomAnimated||T.animate===!1||this._nothingToAnimate()||Math.abs(b-this._zoom)>this.options.zoomAnimationThreshold)return!1;var N=this.getZoomScale(b),R=this._getCenterOffset(p)._divideBy(1-1/N);return T.animate!==!0&&!this.getSize().contains(R)?!1:(D(function(){this._moveStart(!0,T.noMoveStart||!1)._animateZoom(p,b,!0)},this),!0)},_animateZoom:function(p,b,T,N){this._mapPane&&(T&&(this._animatingZoom=!0,this._animateToCenter=p,this._animateToZoom=b,Be(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:p,zoom:b,noUpdate:N}),this._tempFireZoomEvent||(this._tempFireZoomEvent=this._zoom!==this._animateToZoom),this._move(this._animateToCenter,this._animateToZoom,void 0,!0),setTimeout(o(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&<(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom,void 0,!0),this._tempFireZoomEvent&&this.fire("zoom"),delete this._tempFireZoomEvent,this.fire("move"),this._moveEnd(!0))}});function P$(p,b){return new Nt(p,b)}var fi=B.extend({options:{position:"topright"},initialize:function(p){m(this,p)},getPosition:function(){return this.options.position},setPosition:function(p){var b=this._map;return b&&b.removeControl(this),this.options.position=p,b&&b.addControl(this),this},getContainer:function(){return this._container},addTo:function(p){this.remove(),this._map=p;var b=this._container=this.onAdd(p),T=this.getPosition(),N=p._controlCorners[T];return Be(b,"leaflet-control"),T.indexOf("bottom")!==-1?N.insertBefore(b,N.firstChild):N.appendChild(b),this._map.on("unload",this.remove,this),this},remove:function(){return this._map?(qt(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null,this):this},_refocusOnMap:function(p){this._map&&p&&p.screenX>0&&p.screenY>0&&this._map.getContainer().focus()}}),bv=function(p){return new fi(p)};Nt.include({addControl:function(p){return p.addTo(this),this},removeControl:function(p){return p.remove(),this},_initControlPos:function(){var p=this._controlCorners={},b="leaflet-",T=this._controlContainer=Tt("div",b+"control-container",this._container);function N(R,G){var Y=b+R+" "+b+G;p[R+G]=Tt("div",Y,T)}N("top","left"),N("top","right"),N("bottom","left"),N("bottom","right")},_clearControlPos:function(){for(var p in this._controlCorners)qt(this._controlCorners[p]);qt(this._controlContainer),delete this._controlCorners,delete this._controlContainer}});var jP=fi.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(p,b,T,N){return T1,this._baseLayersList.style.display=p?"":"none"),this._separator.style.display=b&&p?"":"none",this},_onLayerChange:function(p){this._handlingClick||this._update();var b=this._getLayer(l(p.target)),T=b.overlay?p.type==="add"?"overlayadd":"overlayremove":p.type==="add"?"baselayerchange":null;T&&this._map.fire(T,b)},_createRadioElement:function(p,b){var T='",N=document.createElement("div");return N.innerHTML=T,N.firstChild},_addItem:function(p){var b=document.createElement("label"),T=this._map.hasLayer(p.layer),N;p.overlay?(N=document.createElement("input"),N.type="checkbox",N.className="leaflet-control-layers-selector",N.defaultChecked=T):N=this._createRadioElement("leaflet-base-layers_"+l(this),T),this._layerControlInputs.push(N),N.layerId=l(p.layer),st(N,"click",this._onInputClick,this);var R=document.createElement("span");R.innerHTML=" "+p.name;var G=document.createElement("span");b.appendChild(G),G.appendChild(N),G.appendChild(R);var Y=p.overlay?this._overlaysList:this._baseLayersList;return Y.appendChild(b),this._checkDisabledLayers(),b},_onInputClick:function(){if(!this._preventClick){var p=this._layerControlInputs,b,T,N=[],R=[];this._handlingClick=!0;for(var G=p.length-1;G>=0;G--)b=p[G],T=this._getLayer(b.layerId).layer,b.checked?N.push(T):b.checked||R.push(T);for(G=0;G=0;R--)b=p[R],T=this._getLayer(b.layerId).layer,b.disabled=T.options.minZoom!==void 0&&NT.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expandSafely:function(){var p=this._section;this._preventClick=!0,st(p,"click",vr),this.expand();var b=this;setTimeout(function(){Vt(p,"click",vr),b._preventClick=!1})}}),D$=function(p,b,T){return new jP(p,b,T)},Nw=fi.extend({options:{position:"topleft",zoomInText:'',zoomInTitle:"Zoom in",zoomOutText:'',zoomOutTitle:"Zoom out"},onAdd:function(p){var b="leaflet-control-zoom",T=Tt("div",b+" leaflet-bar"),N=this.options;return this._zoomInButton=this._createButton(N.zoomInText,N.zoomInTitle,b+"-in",T,this._zoomIn),this._zoomOutButton=this._createButton(N.zoomOutText,N.zoomOutTitle,b+"-out",T,this._zoomOut),this._updateDisabled(),p.on("zoomend zoomlevelschange",this._updateDisabled,this),T},onRemove:function(p){p.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(p){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(p.shiftKey?3:1))},_createButton:function(p,b,T,N,R){var G=Tt("a",T,N);return G.innerHTML=p,G.href="#",G.title=b,G.setAttribute("role","button"),G.setAttribute("aria-label",b),Hi(G),st(G,"click",du),st(G,"click",R,this),st(G,"click",this._refocusOnMap,this),G},_updateDisabled:function(){var p=this._map,b="leaflet-disabled";lt(this._zoomInButton,b),lt(this._zoomOutButton,b),this._zoomInButton.setAttribute("aria-disabled","false"),this._zoomOutButton.setAttribute("aria-disabled","false"),(this._disabled||p._zoom===p.getMinZoom())&&(Be(this._zoomOutButton,b),this._zoomOutButton.setAttribute("aria-disabled","true")),(this._disabled||p._zoom===p.getMaxZoom())&&(Be(this._zoomInButton,b),this._zoomInButton.setAttribute("aria-disabled","true"))}});Nt.mergeOptions({zoomControl:!0}),Nt.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new Nw,this.addControl(this.zoomControl))});var E$=function(p){return new Nw(p)},RP=fi.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(p){var b="leaflet-control-scale",T=Tt("div",b),N=this.options;return this._addScales(N,b+"-line",T),p.on(N.updateWhenIdle?"moveend":"move",this._update,this),p.whenReady(this._update,this),T},onRemove:function(p){p.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(p,b,T){p.metric&&(this._mScale=Tt("div",b,T)),p.imperial&&(this._iScale=Tt("div",b,T))},_update:function(){var p=this._map,b=p.getSize().y/2,T=p.distance(p.containerPointToLatLng([0,b]),p.containerPointToLatLng([this.options.maxWidth,b]));this._updateScales(T)},_updateScales:function(p){this.options.metric&&p&&this._updateMetric(p),this.options.imperial&&p&&this._updateImperial(p)},_updateMetric:function(p){var b=this._getRoundNum(p),T=b<1e3?b+" m":b/1e3+" km";this._updateScale(this._mScale,T,b/p)},_updateImperial:function(p){var b=p*3.2808399,T,N,R;b>5280?(T=b/5280,N=this._getRoundNum(T),this._updateScale(this._iScale,N+" mi",N/T)):(R=this._getRoundNum(b),this._updateScale(this._iScale,R+" ft",R/b))},_updateScale:function(p,b,T){p.style.width=Math.round(this.options.maxWidth*T)+"px",p.innerHTML=b},_getRoundNum:function(p){var b=Math.pow(10,(Math.floor(p)+"").length-1),T=p/b;return T=T>=10?10:T>=5?5:T>=3?3:T>=2?2:1,b*T}}),j$=function(p){return new RP(p)},R$='',kw=fi.extend({options:{position:"bottomright",prefix:''+(He.inlineSvg?R$+" ":"")+"Leaflet"},initialize:function(p){m(this,p),this._attributions={}},onAdd:function(p){p.attributionControl=this,this._container=Tt("div","leaflet-control-attribution"),Hi(this._container);for(var b in p._layers)p._layers[b].getAttribution&&this.addAttribution(p._layers[b].getAttribution());return this._update(),p.on("layeradd",this._addAttribution,this),this._container},onRemove:function(p){p.off("layeradd",this._addAttribution,this)},_addAttribution:function(p){p.layer.getAttribution&&(this.addAttribution(p.layer.getAttribution()),p.layer.once("remove",function(){this.removeAttribution(p.layer.getAttribution())},this))},setPrefix:function(p){return this.options.prefix=p,this._update(),this},addAttribution:function(p){return p?(this._attributions[p]||(this._attributions[p]=0),this._attributions[p]++,this._update(),this):this},removeAttribution:function(p){return p?(this._attributions[p]&&(this._attributions[p]--,this._update()),this):this},_update:function(){if(this._map){var p=[];for(var b in this._attributions)this._attributions[b]&&p.push(b);var T=[];this.options.prefix&&T.push(this.options.prefix),p.length&&T.push(p.join(", ")),this._container.innerHTML=T.join(' ')}}});Nt.mergeOptions({attributionControl:!0}),Nt.addInitHook(function(){this.options.attributionControl&&new kw().addTo(this)});var O$=function(p){return new kw(p)};fi.Layers=jP,fi.Zoom=Nw,fi.Scale=RP,fi.Attribution=kw,bv.layers=D$,bv.zoom=E$,bv.scale=j$,bv.attribution=O$;var Ui=B.extend({initialize:function(p){this._map=p},enable:function(){return this._enabled?this:(this._enabled=!0,this.addHooks(),this)},disable:function(){return this._enabled?(this._enabled=!1,this.removeHooks(),this):this},enabled:function(){return!!this._enabled}});Ui.addTo=function(p,b){return p.addHandler(b,this),this};var z$={Events:V},OP=He.touch?"touchstart mousedown":"mousedown",Gs=U.extend({options:{clickTolerance:3},initialize:function(p,b,T,N){m(this,N),this._element=p,this._dragStartTarget=b||p,this._preventOutline=T},enable:function(){this._enabled||(st(this._dragStartTarget,OP,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(Gs._dragging===this&&this.finishDrag(!0),Vt(this._dragStartTarget,OP,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(p){if(this._enabled&&(this._moved=!1,!kt(this._element,"leaflet-zoom-anim"))){if(p.touches&&p.touches.length!==1){Gs._dragging===this&&this.finishDrag();return}if(!(Gs._dragging||p.shiftKey||p.which!==1&&p.button!==1&&!p.touches)&&(Gs._dragging=this,this._preventOutline&&kh(this._element),Mh(),fa(),!this._moving)){this.fire("down");var b=p.touches?p.touches[0]:p,T=_v(this._element);this._startPoint=new F(b.clientX,b.clientY),this._startPos=ut(this._element),this._parentScale=Lh(T);var N=p.type==="mousedown";st(document,N?"mousemove":"touchmove",this._onMove,this),st(document,N?"mouseup":"touchend touchcancel",this._onUp,this)}}},_onMove:function(p){if(this._enabled){if(p.touches&&p.touches.length>1){this._moved=!0;return}var b=p.touches&&p.touches.length===1?p.touches[0]:p,T=new F(b.clientX,b.clientY)._subtract(this._startPoint);!T.x&&!T.y||Math.abs(T.x)+Math.abs(T.y)G&&(Y=ee,G=ae);G>T&&(b[Y]=1,Iw(p,b,T,N,Y),Iw(p,b,T,Y,R))}function G$(p,b){for(var T=[p[0]],N=1,R=0,G=p.length;Nb&&(T.push(p[N]),R=N);return Rb.max.x&&(T|=2),p.yb.max.y&&(T|=8),T}function H$(p,b){var T=b.x-p.x,N=b.y-p.y;return T*T+N*N}function wv(p,b,T,N){var R=b.x,G=b.y,Y=T.x-R,ee=T.y-G,ae=Y*Y+ee*ee,he;return ae>0&&(he=((p.x-R)*Y+(p.y-G)*ee)/ae,he>1?(R=T.x,G=T.y):he>0&&(R+=Y*he,G+=ee*he)),Y=p.x-R,ee=p.y-G,N?Y*Y+ee*ee:new F(R,G)}function Pa(p){return!w(p[0])||typeof p[0][0]!="object"&&typeof p[0][0]<"u"}function UP(p){return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."),Pa(p)}function WP(p,b){var T,N,R,G,Y,ee,ae,he;if(!p||p.length===0)throw new Error("latlngs not passed");Pa(p)||(console.warn("latlngs are not flat! Only the first ring will be used"),p=p[0]);var De=ce([0,0]),et=Q(p),_t=et.getNorthWest().distanceTo(et.getSouthWest())*et.getNorthEast().distanceTo(et.getNorthWest());_t<1700&&(De=Lw(p));var Pn=p.length,Wr=[];for(T=0;TN){ae=(G-N)/R,he=[ee.x-ae*(ee.x-Y.x),ee.y-ae*(ee.y-Y.y)];break}var Yn=b.unproject($(he));return ce([Yn.lat+De.lat,Yn.lng+De.lng])}var U$={__proto__:null,simplify:FP,pointToSegmentDistance:VP,closestPointOnSegment:F$,clipSegment:HP,_getEdgeIntersection:py,_getBitCode:vu,_sqClosestPointOnSegment:wv,isFlat:Pa,_flat:UP,polylineCenter:WP},Pw={project:function(p){return new F(p.lng,p.lat)},unproject:function(p){return new se(p.y,p.x)},bounds:new W([-180,-90],[180,90])},Dw={R:6378137,R_MINOR:6356752314245179e-9,bounds:new W([-2003750834279e-5,-1549657073972e-5],[2003750834279e-5,1876465623138e-5]),project:function(p){var b=Math.PI/180,T=this.R,N=p.lat*b,R=this.R_MINOR/T,G=Math.sqrt(1-R*R),Y=G*Math.sin(N),ee=Math.tan(Math.PI/4-N/2)/Math.pow((1-Y)/(1+Y),G/2);return N=-T*Math.log(Math.max(ee,1e-10)),new F(p.lng*b*T,N)},unproject:function(p){for(var b=180/Math.PI,T=this.R,N=this.R_MINOR/T,R=Math.sqrt(1-N*N),G=Math.exp(-p.y/T),Y=Math.PI/2-2*Math.atan(G),ee=0,ae=.1,he;ee<15&&Math.abs(ae)>1e-7;ee++)he=R*Math.sin(Y),he=Math.pow((1-he)/(1+he),R/2),ae=Math.PI/2-2*Math.atan(G*he)-Y,Y+=ae;return new se(Y*b,p.x*b/T)}},W$={__proto__:null,LonLat:Pw,Mercator:Dw,SphericalMercator:Oe},Z$=a({},ye,{code:"EPSG:3395",projection:Dw,transformation:function(){var p=.5/(Math.PI*Dw.R);return we(p,.5,-p,.5)}()}),ZP=a({},ye,{code:"EPSG:4326",projection:Pw,transformation:we(1/180,1,-1/180,.5)}),$$=a({},Ue,{projection:Pw,transformation:we(1,0,-1,0),scale:function(p){return Math.pow(2,p)},zoom:function(p){return Math.log(p)/Math.LN2},distance:function(p,b){var T=b.lng-p.lng,N=b.lat-p.lat;return Math.sqrt(T*T+N*N)},infinite:!0});Ue.Earth=ye,Ue.EPSG3395=Z$,Ue.EPSG3857=yt,Ue.EPSG900913=nt,Ue.EPSG4326=ZP,Ue.Simple=$$;var di=U.extend({options:{pane:"overlayPane",attribution:null,bubblingMouseEvents:!0},addTo:function(p){return p.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(p){return p&&p.removeLayer(this),this},getPane:function(p){return this._map.getPane(p?this.options[p]||p:this.options.pane)},addInteractiveTarget:function(p){return this._map._targets[l(p)]=this,this},removeInteractiveTarget:function(p){return delete this._map._targets[l(p)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(p){var b=p.target;if(b.hasLayer(this)){if(this._map=b,this._zoomAnimated=b._zoomAnimated,this.getEvents){var T=this.getEvents();b.on(T,this),this.once("remove",function(){b.off(T,this)},this)}this.onAdd(b),this.fire("add"),b.fire("layeradd",{layer:this})}}});Nt.include({addLayer:function(p){if(!p._layerAdd)throw new Error("The provided object is not a Layer.");var b=l(p);return this._layers[b]?this:(this._layers[b]=p,p._mapToAdd=this,p.beforeAdd&&p.beforeAdd(this),this.whenReady(p._layerAdd,p),this)},removeLayer:function(p){var b=l(p);return this._layers[b]?(this._loaded&&p.onRemove(this),delete this._layers[b],this._loaded&&(this.fire("layerremove",{layer:p}),p.fire("remove")),p._map=p._mapToAdd=null,this):this},hasLayer:function(p){return l(p)in this._layers},eachLayer:function(p,b){for(var T in this._layers)p.call(b,this._layers[T]);return this},_addLayers:function(p){p=p?w(p)?p:[p]:[];for(var b=0,T=p.length;bthis._layersMaxZoom&&this.setZoom(this._layersMaxZoom),this.options.minZoom===void 0&&this._layersMinZoom&&this.getZoom()=2&&b[0]instanceof se&&b[0].equals(b[T-1])&&b.pop(),b},_setLatLngs:function(p){Wo.prototype._setLatLngs.call(this,p),Pa(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return Pa(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var p=this._renderer._bounds,b=this.options.weight,T=new F(b,b);if(p=new W(p.min.subtract(T),p.max.add(T)),this._parts=[],!(!this._pxBounds||!this._pxBounds.intersects(p))){if(this.options.noClip){this._parts=this._rings;return}for(var N=0,R=this._rings.length,G;Np.y!=R.y>p.y&&p.x<(R.x-N.x)*(p.y-N.y)/(R.y-N.y)+N.x&&(b=!b);return b||Wo.prototype._containsPoint.call(this,p,!0)}});function tY(p,b){return new Eh(p,b)}var Zo=Uo.extend({initialize:function(p,b){m(this,b),this._layers={},p&&this.addData(p)},addData:function(p){var b=w(p)?p:p.features,T,N,R;if(b){for(T=0,N=b.length;T0&&R.push(R[0].slice()),R}function jh(p,b){return p.feature?a({},p.feature,{geometry:b}):by(b)}function by(p){return p.type==="Feature"||p.type==="FeatureCollection"?p:{type:"Feature",properties:{},geometry:p}}var Ow={toGeoJSON:function(p){return jh(this,{type:"Point",coordinates:Rw(this.getLatLng(),p)})}};gy.include(Ow),Ew.include(Ow),my.include(Ow),Wo.include({toGeoJSON:function(p){var b=!Pa(this._latlngs),T=_y(this._latlngs,b?1:0,!1,p);return jh(this,{type:(b?"Multi":"")+"LineString",coordinates:T})}}),Eh.include({toGeoJSON:function(p){var b=!Pa(this._latlngs),T=b&&!Pa(this._latlngs[0]),N=_y(this._latlngs,T?2:b?1:0,!0,p);return b||(N=[N]),jh(this,{type:(T?"Multi":"")+"Polygon",coordinates:N})}}),Ph.include({toMultiPoint:function(p){var b=[];return this.eachLayer(function(T){b.push(T.toGeoJSON(p).geometry.coordinates)}),jh(this,{type:"MultiPoint",coordinates:b})},toGeoJSON:function(p){var b=this.feature&&this.feature.geometry&&this.feature.geometry.type;if(b==="MultiPoint")return this.toMultiPoint(p);var T=b==="GeometryCollection",N=[];return this.eachLayer(function(R){if(R.toGeoJSON){var G=R.toGeoJSON(p);if(T)N.push(G.geometry);else{var Y=by(G);Y.type==="FeatureCollection"?N.push.apply(N,Y.features):N.push(Y)}}}),T?jh(this,{geometries:N,type:"GeometryCollection"}):{type:"FeatureCollection",features:N}}});function XP(p,b){return new Zo(p,b)}var rY=XP,wy=di.extend({options:{opacity:1,alt:"",interactive:!1,crossOrigin:!1,errorOverlayUrl:"",zIndex:1,className:""},initialize:function(p,b,T){this._url=p,this._bounds=Q(b),m(this,T)},onAdd:function(){this._image||(this._initImage(),this.options.opacity<1&&this._updateOpacity()),this.options.interactive&&(Be(this._image,"leaflet-interactive"),this.addInteractiveTarget(this._image)),this.getPane().appendChild(this._image),this._reset()},onRemove:function(){qt(this._image),this.options.interactive&&this.removeInteractiveTarget(this._image)},setOpacity:function(p){return this.options.opacity=p,this._image&&this._updateOpacity(),this},setStyle:function(p){return p.opacity&&this.setOpacity(p.opacity),this},bringToFront:function(){return this._map&&ie(this._image),this},bringToBack:function(){return this._map&&Je(this._image),this},setUrl:function(p){return this._url=p,this._image&&(this._image.src=p),this},setBounds:function(p){return this._bounds=Q(p),this._map&&this._reset(),this},getEvents:function(){var p={zoom:this._reset,viewreset:this._reset};return this._zoomAnimated&&(p.zoomanim=this._animateZoom),p},setZIndex:function(p){return this.options.zIndex=p,this._updateZIndex(),this},getBounds:function(){return this._bounds},getElement:function(){return this._image},_initImage:function(){var p=this._url.tagName==="IMG",b=this._image=p?this._url:Tt("img");if(Be(b,"leaflet-image-layer"),this._zoomAnimated&&Be(b,"leaflet-zoom-animated"),this.options.className&&Be(b,this.options.className),b.onselectstart=h,b.onmousemove=h,b.onload=o(this.fire,this,"load"),b.onerror=o(this._overlayOnError,this,"error"),(this.options.crossOrigin||this.options.crossOrigin==="")&&(b.crossOrigin=this.options.crossOrigin===!0?"":this.options.crossOrigin),this.options.zIndex&&this._updateZIndex(),p){this._url=b.src;return}b.src=this._url,b.alt=this.options.alt},_animateZoom:function(p){var b=this._map.getZoomScale(p.zoom),T=this._map._latLngBoundsToNewLayerBounds(this._bounds,p.zoom,p.center).min;Ye(this._image,T,b)},_reset:function(){var p=this._image,b=new W(this._map.latLngToLayerPoint(this._bounds.getNorthWest()),this._map.latLngToLayerPoint(this._bounds.getSouthEast())),T=b.getSize();Re(p,b.min),p.style.width=T.x+"px",p.style.height=T.y+"px"},_updateOpacity:function(){er(this._image,this.options.opacity)},_updateZIndex:function(){this._image&&this.options.zIndex!==void 0&&this.options.zIndex!==null&&(this._image.style.zIndex=this.options.zIndex)},_overlayOnError:function(){this.fire("error");var p=this.options.errorOverlayUrl;p&&this._url!==p&&(this._url=p,this._image.src=p)},getCenter:function(){return this._bounds.getCenter()}}),nY=function(p,b,T){return new wy(p,b,T)},qP=wy.extend({options:{autoplay:!0,loop:!0,keepAspectRatio:!0,muted:!1,playsInline:!0},_initImage:function(){var p=this._url.tagName==="VIDEO",b=this._image=p?this._url:Tt("video");if(Be(b,"leaflet-image-layer"),this._zoomAnimated&&Be(b,"leaflet-zoom-animated"),this.options.className&&Be(b,this.options.className),b.onselectstart=h,b.onmousemove=h,b.onloadeddata=o(this.fire,this,"load"),p){for(var T=b.getElementsByTagName("source"),N=[],R=0;R0?N:[b.src];return}w(this._url)||(this._url=[this._url]),!this.options.keepAspectRatio&&Object.prototype.hasOwnProperty.call(b.style,"objectFit")&&(b.style.objectFit="fill"),b.autoplay=!!this.options.autoplay,b.loop=!!this.options.loop,b.muted=!!this.options.muted,b.playsInline=!!this.options.playsInline;for(var G=0;GR?(b.height=R+"px",Be(p,G)):lt(p,G),this._containerWidth=this._container.offsetWidth},_animateZoom:function(p){var b=this._map._latLngToNewLayerPoint(this._latlng,p.zoom,p.center),T=this._getAnchor();Re(this._container,b.add(T))},_adjustPan:function(){if(this.options.autoPan){if(this._map._panAnim&&this._map._panAnim.stop(),this._autopanning){this._autopanning=!1;return}var p=this._map,b=parseInt(Fs(this._container,"marginBottom"),10)||0,T=this._container.offsetHeight+b,N=this._containerWidth,R=new F(this._containerLeft,-T-this._containerBottom);R._add(ut(this._container));var G=p.layerPointToContainerPoint(R),Y=$(this.options.autoPanPadding),ee=$(this.options.autoPanPaddingTopLeft||Y),ae=$(this.options.autoPanPaddingBottomRight||Y),he=p.getSize(),De=0,et=0;G.x+N+ae.x>he.x&&(De=G.x+N-he.x+ae.x),G.x-De-ee.x<0&&(De=G.x-ee.x),G.y+T+ae.y>he.y&&(et=G.y+T-he.y+ae.y),G.y-et-ee.y<0&&(et=G.y-ee.y),(De||et)&&(this.options.keepInView&&(this._autopanning=!0),p.fire("autopanstart").panBy([De,et]))}},_getAnchor:function(){return $(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}}),oY=function(p,b){return new Sy(p,b)};Nt.mergeOptions({closePopupOnClick:!0}),Nt.include({openPopup:function(p,b,T){return this._initOverlay(Sy,p,b,T).openOn(this),this},closePopup:function(p){return p=arguments.length?p:this._popup,p&&p.close(),this}}),di.include({bindPopup:function(p,b){return this._popup=this._initOverlay(Sy,this._popup,p,b),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(p){return this._popup&&(this instanceof Uo||(this._popup._source=this),this._popup._prepareOpen(p||this._latlng)&&this._popup.openOn(this._map)),this},closePopup:function(){return this._popup&&this._popup.close(),this},togglePopup:function(){return this._popup&&this._popup.toggle(this),this},isPopupOpen:function(){return this._popup?this._popup.isOpen():!1},setPopupContent:function(p){return this._popup&&this._popup.setContent(p),this},getPopup:function(){return this._popup},_openPopup:function(p){if(!(!this._popup||!this._map)){du(p);var b=p.layer||p.target;if(this._popup._source===b&&!(b instanceof Hs)){this._map.hasLayer(this._popup)?this.closePopup():this.openPopup(p.latlng);return}this._popup._source=b,this.openPopup(p.latlng)}},_movePopup:function(p){this._popup.setLatLng(p.latlng)},_onKeyPress:function(p){p.originalEvent.keyCode===13&&this._openPopup(p)}});var Cy=Wi.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,opacity:.9},onAdd:function(p){Wi.prototype.onAdd.call(this,p),this.setOpacity(this.options.opacity),p.fire("tooltipopen",{tooltip:this}),this._source&&(this.addEventParent(this._source),this._source.fire("tooltipopen",{tooltip:this},!0))},onRemove:function(p){Wi.prototype.onRemove.call(this,p),p.fire("tooltipclose",{tooltip:this}),this._source&&(this.removeEventParent(this._source),this._source.fire("tooltipclose",{tooltip:this},!0))},getEvents:function(){var p=Wi.prototype.getEvents.call(this);return this.options.permanent||(p.preclick=this.close),p},_initLayout:function(){var p="leaflet-tooltip",b=p+" "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=Tt("div",b),this._container.setAttribute("role","tooltip"),this._container.setAttribute("id","leaflet-tooltip-"+l(this))},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(p){var b,T,N=this._map,R=this._container,G=N.latLngToContainerPoint(N.getCenter()),Y=N.layerPointToContainerPoint(p),ee=this.options.direction,ae=R.offsetWidth,he=R.offsetHeight,De=$(this.options.offset),et=this._getAnchor();ee==="top"?(b=ae/2,T=he):ee==="bottom"?(b=ae/2,T=0):ee==="center"?(b=ae/2,T=he/2):ee==="right"?(b=0,T=he/2):ee==="left"?(b=ae,T=he/2):Y.xthis.options.maxZoom||TN?this._retainParent(R,G,Y,N):!1)},_retainChildren:function(p,b,T,N){for(var R=2*p;R<2*p+2;R++)for(var G=2*b;G<2*b+2;G++){var Y=new F(R,G);Y.z=T+1;var ee=this._tileCoordsToKey(Y),ae=this._tiles[ee];if(ae&&ae.active){ae.retain=!0;continue}else ae&&ae.loaded&&(ae.retain=!0);T+1this.options.maxZoom||this.options.minZoom!==void 0&&R1){this._setView(p,T);return}for(var et=R.min.y;et<=R.max.y;et++)for(var _t=R.min.x;_t<=R.max.x;_t++){var Pn=new F(_t,et);if(Pn.z=this._tileZoom,!!this._isValidTile(Pn)){var Wr=this._tiles[this._tileCoordsToKey(Pn)];Wr?Wr.current=!0:Y.push(Pn)}}if(Y.sort(function(Yn,Oh){return Yn.distanceTo(G)-Oh.distanceTo(G)}),Y.length!==0){this._loading||(this._loading=!0,this.fire("loading"));var Da=document.createDocumentFragment();for(_t=0;_tT.max.x)||!b.wrapLat&&(p.yT.max.y))return!1}if(!this.options.bounds)return!0;var N=this._tileCoordsToBounds(p);return Q(this.options.bounds).overlaps(N)},_keyToBounds:function(p){return this._tileCoordsToBounds(this._keyToTileCoords(p))},_tileCoordsToNwSe:function(p){var b=this._map,T=this.getTileSize(),N=p.scaleBy(T),R=N.add(T),G=b.unproject(N,p.z),Y=b.unproject(R,p.z);return[G,Y]},_tileCoordsToBounds:function(p){var b=this._tileCoordsToNwSe(p),T=new re(b[0],b[1]);return this.options.noWrap||(T=this._map.wrapLatLngBounds(T)),T},_tileCoordsToKey:function(p){return p.x+":"+p.y+":"+p.z},_keyToTileCoords:function(p){var b=p.split(":"),T=new F(+b[0],+b[1]);return T.z=+b[2],T},_removeTile:function(p){var b=this._tiles[p];b&&(qt(b.el),delete this._tiles[p],this.fire("tileunload",{tile:b.el,coords:this._keyToTileCoords(p)}))},_initTile:function(p){Be(p,"leaflet-tile");var b=this.getTileSize();p.style.width=b.x+"px",p.style.height=b.y+"px",p.onselectstart=h,p.onmousemove=h,He.ielt9&&this.options.opacity<1&&er(p,this.options.opacity)},_addTile:function(p,b){var T=this._getTilePos(p),N=this._tileCoordsToKey(p),R=this.createTile(this._wrapCoords(p),o(this._tileReady,this,p));this._initTile(R),this.createTile.length<2&&D(o(this._tileReady,this,p,null,R)),Re(R,T),this._tiles[N]={el:R,coords:p,current:!0},b.appendChild(R),this.fire("tileloadstart",{tile:R,coords:p})},_tileReady:function(p,b,T){b&&this.fire("tileerror",{error:b,tile:T,coords:p});var N=this._tileCoordsToKey(p);T=this._tiles[N],T&&(T.loaded=+new Date,this._map._fadeAnimated?(er(T.el,0),z(this._fadeFrame),this._fadeFrame=D(this._updateOpacity,this)):(T.active=!0,this._pruneTiles()),b||(Be(T.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:T.el,coords:p})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),He.ielt9||!this._map._fadeAnimated?D(this._pruneTiles,this):setTimeout(o(this._pruneTiles,this),250)))},_getTilePos:function(p){return p.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(p){var b=new F(this._wrapX?c(p.x,this._wrapX):p.x,this._wrapY?c(p.y,this._wrapY):p.y);return b.z=p.z,b},_pxBoundsToTileRange:function(p){var b=this.getTileSize();return new W(p.min.unscaleBy(b).floor(),p.max.unscaleBy(b).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var p in this._tiles)if(!this._tiles[p].loaded)return!1;return!0}});function uY(p){return new Cv(p)}var Rh=Cv.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1,referrerPolicy:!1},initialize:function(p,b){this._url=p,b=m(this,b),b.detectRetina&&He.retina&&b.maxZoom>0?(b.tileSize=Math.floor(b.tileSize/2),b.zoomReverse?(b.zoomOffset--,b.minZoom=Math.min(b.maxZoom,b.minZoom+1)):(b.zoomOffset++,b.maxZoom=Math.max(b.minZoom,b.maxZoom-1)),b.minZoom=Math.max(0,b.minZoom)):b.zoomReverse?b.minZoom=Math.min(b.maxZoom,b.minZoom):b.maxZoom=Math.max(b.minZoom,b.maxZoom),typeof b.subdomains=="string"&&(b.subdomains=b.subdomains.split("")),this.on("tileunload",this._onTileRemove)},setUrl:function(p,b){return this._url===p&&b===void 0&&(b=!0),this._url=p,b||this.redraw(),this},createTile:function(p,b){var T=document.createElement("img");return st(T,"load",o(this._tileOnLoad,this,b,T)),st(T,"error",o(this._tileOnError,this,b,T)),(this.options.crossOrigin||this.options.crossOrigin==="")&&(T.crossOrigin=this.options.crossOrigin===!0?"":this.options.crossOrigin),typeof this.options.referrerPolicy=="string"&&(T.referrerPolicy=this.options.referrerPolicy),T.alt="",T.src=this.getTileUrl(p),T},getTileUrl:function(p){var b={r:He.retina?"@2x":"",s:this._getSubdomain(p),x:p.x,y:p.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var T=this._globalTileRange.max.y-p.y;this.options.tms&&(b.y=T),b["-y"]=T}return _(this._url,a(b,this.options))},_tileOnLoad:function(p,b){He.ielt9?setTimeout(o(p,this,null,b),0):p(null,b)},_tileOnError:function(p,b,T){var N=this.options.errorTileUrl;N&&b.getAttribute("src")!==N&&(b.src=N),p(T,b)},_onTileRemove:function(p){p.tile.onload=null},_getZoomForUrl:function(){var p=this._tileZoom,b=this.options.maxZoom,T=this.options.zoomReverse,N=this.options.zoomOffset;return T&&(p=b-p),p+N},_getSubdomain:function(p){var b=Math.abs(p.x+p.y)%this.options.subdomains.length;return this.options.subdomains[b]},_abortLoading:function(){var p,b;for(p in this._tiles)if(this._tiles[p].coords.z!==this._tileZoom&&(b=this._tiles[p].el,b.onload=h,b.onerror=h,!b.complete)){b.src=C;var T=this._tiles[p].coords;qt(b),delete this._tiles[p],this.fire("tileabort",{tile:b,coords:T})}},_removeTile:function(p){var b=this._tiles[p];if(b)return b.el.setAttribute("src",C),Cv.prototype._removeTile.call(this,p)},_tileReady:function(p,b,T){if(!(!this._map||T&&T.getAttribute("src")===C))return Cv.prototype._tileReady.call(this,p,b,T)}});function QP(p,b){return new Rh(p,b)}var eD=Rh.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(p,b){this._url=p;var T=a({},this.defaultWmsParams);for(var N in b)N in this.options||(T[N]=b[N]);b=m(this,b);var R=b.detectRetina&&He.retina?2:1,G=this.getTileSize();T.width=G.x*R,T.height=G.y*R,this.wmsParams=T},onAdd:function(p){this._crs=this.options.crs||p.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var b=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[b]=this._crs.code,Rh.prototype.onAdd.call(this,p)},getTileUrl:function(p){var b=this._tileCoordsToNwSe(p),T=this._crs,N=q(T.project(b[0]),T.project(b[1])),R=N.min,G=N.max,Y=(this._wmsVersion>=1.3&&this._crs===ZP?[R.y,R.x,G.y,G.x]:[R.x,R.y,G.x,G.y]).join(","),ee=Rh.prototype.getTileUrl.call(this,p);return ee+y(this.wmsParams,ee,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+Y},setParams:function(p,b){return a(this.wmsParams,p),b||this.redraw(),this}});function cY(p,b){return new eD(p,b)}Rh.WMS=eD,QP.wms=cY;var $o=di.extend({options:{padding:.1},initialize:function(p){m(this,p),l(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),Be(this._container,"leaflet-zoom-animated")),this.getPane().appendChild(this._container),this._update(),this.on("update",this._updatePaths,this)},onRemove:function(){this.off("update",this._updatePaths,this),this._destroyContainer()},getEvents:function(){var p={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(p.zoomanim=this._onAnimZoom),p},_onAnimZoom:function(p){this._updateTransform(p.center,p.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(p,b){var T=this._map.getZoomScale(b,this._zoom),N=this._map.getSize().multiplyBy(.5+this.options.padding),R=this._map.project(this._center,b),G=N.multiplyBy(-T).add(R).subtract(this._map._getNewPixelOrigin(p,b));He.any3d?Ye(this._container,G,T):Re(this._container,G)},_reset:function(){this._update(),this._updateTransform(this._center,this._zoom);for(var p in this._layers)this._layers[p]._reset()},_onZoomEnd:function(){for(var p in this._layers)this._layers[p]._project()},_updatePaths:function(){for(var p in this._layers)this._layers[p]._update()},_update:function(){var p=this.options.padding,b=this._map.getSize(),T=this._map.containerPointToLayerPoint(b.multiplyBy(-p)).round();this._bounds=new W(T,T.add(b.multiplyBy(1+p*2)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),tD=$o.extend({options:{tolerance:0},getEvents:function(){var p=$o.prototype.getEvents.call(this);return p.viewprereset=this._onViewPreReset,p},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){$o.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var p=this._container=document.createElement("canvas");st(p,"mousemove",this._onMouseMove,this),st(p,"click dblclick mousedown mouseup contextmenu",this._onClick,this),st(p,"mouseout",this._handleMouseOut,this),p._leaflet_disable_events=!0,this._ctx=p.getContext("2d")},_destroyContainer:function(){z(this._redrawRequest),delete this._ctx,qt(this._container),Vt(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){var p;this._redrawBounds=null;for(var b in this._layers)p=this._layers[b],p._update();this._redraw()}},_update:function(){if(!(this._map._animatingZoom&&this._bounds)){$o.prototype._update.call(this);var p=this._bounds,b=this._container,T=p.getSize(),N=He.retina?2:1;Re(b,p.min),b.width=N*T.x,b.height=N*T.y,b.style.width=T.x+"px",b.style.height=T.y+"px",He.retina&&this._ctx.scale(2,2),this._ctx.translate(-p.min.x,-p.min.y),this.fire("update")}},_reset:function(){$o.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(p){this._updateDashArray(p),this._layers[l(p)]=p;var b=p._order={layer:p,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=b),this._drawLast=b,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(p){this._requestRedraw(p)},_removePath:function(p){var b=p._order,T=b.next,N=b.prev;T?T.prev=N:this._drawLast=N,N?N.next=T:this._drawFirst=T,delete p._order,delete this._layers[l(p)],this._requestRedraw(p)},_updatePath:function(p){this._extendRedrawBounds(p),p._project(),p._update(),this._requestRedraw(p)},_updateStyle:function(p){this._updateDashArray(p),this._requestRedraw(p)},_updateDashArray:function(p){if(typeof p.options.dashArray=="string"){var b=p.options.dashArray.split(/[, ]+/),T=[],N,R;for(R=0;R')}}catch{}return function(p){return document.createElement("<"+p+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}(),hY={_initContainer:function(){this._container=Tt("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||($o.prototype._update.call(this),this.fire("update"))},_initPath:function(p){var b=p._container=Tv("shape");Be(b,"leaflet-vml-shape "+(this.options.className||"")),b.coordsize="1 1",p._path=Tv("path"),b.appendChild(p._path),this._updateStyle(p),this._layers[l(p)]=p},_addPath:function(p){var b=p._container;this._container.appendChild(b),p.options.interactive&&p.addInteractiveTarget(b)},_removePath:function(p){var b=p._container;qt(b),p.removeInteractiveTarget(b),delete this._layers[l(p)]},_updateStyle:function(p){var b=p._stroke,T=p._fill,N=p.options,R=p._container;R.stroked=!!N.stroke,R.filled=!!N.fill,N.stroke?(b||(b=p._stroke=Tv("stroke")),R.appendChild(b),b.weight=N.weight+"px",b.color=N.color,b.opacity=N.opacity,N.dashArray?b.dashStyle=w(N.dashArray)?N.dashArray.join(" "):N.dashArray.replace(/( *, *)/g," "):b.dashStyle="",b.endcap=N.lineCap.replace("butt","flat"),b.joinstyle=N.lineJoin):b&&(R.removeChild(b),p._stroke=null),N.fill?(T||(T=p._fill=Tv("fill")),R.appendChild(T),T.color=N.fillColor||N.color,T.opacity=N.fillOpacity):T&&(R.removeChild(T),p._fill=null)},_updateCircle:function(p){var b=p._point.round(),T=Math.round(p._radius),N=Math.round(p._radiusY||T);this._setPath(p,p._empty()?"M0 0":"AL "+b.x+","+b.y+" "+T+","+N+" 0,"+65535*360)},_setPath:function(p,b){p._path.v=b},_bringToFront:function(p){ie(p._container)},_bringToBack:function(p){Je(p._container)}},Ty=He.vml?Tv:vt,Mv=$o.extend({_initContainer:function(){this._container=Ty("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=Ty("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){qt(this._container),Vt(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_update:function(){if(!(this._map._animatingZoom&&this._bounds)){$o.prototype._update.call(this);var p=this._bounds,b=p.getSize(),T=this._container;(!this._svgSize||!this._svgSize.equals(b))&&(this._svgSize=b,T.setAttribute("width",b.x),T.setAttribute("height",b.y)),Re(T,p.min),T.setAttribute("viewBox",[p.min.x,p.min.y,b.x,b.y].join(" ")),this.fire("update")}},_initPath:function(p){var b=p._path=Ty("path");p.options.className&&Be(b,p.options.className),p.options.interactive&&Be(b,"leaflet-interactive"),this._updateStyle(p),this._layers[l(p)]=p},_addPath:function(p){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(p._path),p.addInteractiveTarget(p._path)},_removePath:function(p){qt(p._path),p.removeInteractiveTarget(p._path),delete this._layers[l(p)]},_updatePath:function(p){p._project(),p._update()},_updateStyle:function(p){var b=p._path,T=p.options;b&&(T.stroke?(b.setAttribute("stroke",T.color),b.setAttribute("stroke-opacity",T.opacity),b.setAttribute("stroke-width",T.weight),b.setAttribute("stroke-linecap",T.lineCap),b.setAttribute("stroke-linejoin",T.lineJoin),T.dashArray?b.setAttribute("stroke-dasharray",T.dashArray):b.removeAttribute("stroke-dasharray"),T.dashOffset?b.setAttribute("stroke-dashoffset",T.dashOffset):b.removeAttribute("stroke-dashoffset")):b.setAttribute("stroke","none"),T.fill?(b.setAttribute("fill",T.fillColor||T.color),b.setAttribute("fill-opacity",T.fillOpacity),b.setAttribute("fill-rule",T.fillRule||"evenodd")):b.setAttribute("fill","none"))},_updatePoly:function(p,b){this._setPath(p,dt(p._parts,b))},_updateCircle:function(p){var b=p._point,T=Math.max(Math.round(p._radius),1),N=Math.max(Math.round(p._radiusY),1)||T,R="a"+T+","+N+" 0 1,0 ",G=p._empty()?"M0 0":"M"+(b.x-T)+","+b.y+R+T*2+",0 "+R+-T*2+",0 ";this._setPath(p,G)},_setPath:function(p,b){p._path.setAttribute("d",b)},_bringToFront:function(p){ie(p._path)},_bringToBack:function(p){Je(p._path)}});He.vml&&Mv.include(hY);function nD(p){return He.svg||He.vml?new Mv(p):null}Nt.include({getRenderer:function(p){var b=p.options.renderer||this._getPaneRenderer(p.options.pane)||this.options.renderer||this._renderer;return b||(b=this._renderer=this._createRenderer()),this.hasLayer(b)||this.addLayer(b),b},_getPaneRenderer:function(p){if(p==="overlayPane"||p===void 0)return!1;var b=this._paneRenderers[p];return b===void 0&&(b=this._createRenderer({pane:p}),this._paneRenderers[p]=b),b},_createRenderer:function(p){return this.options.preferCanvas&&rD(p)||nD(p)}});var aD=Eh.extend({initialize:function(p,b){Eh.prototype.initialize.call(this,this._boundsToLatLngs(p),b)},setBounds:function(p){return this.setLatLngs(this._boundsToLatLngs(p))},_boundsToLatLngs:function(p){return p=Q(p),[p.getSouthWest(),p.getNorthWest(),p.getNorthEast(),p.getSouthEast()]}});function fY(p,b){return new aD(p,b)}Mv.create=Ty,Mv.pointsToPath=dt,Zo.geometryToLayer=yy,Zo.coordsToLatLng=jw,Zo.coordsToLatLngs=xy,Zo.latLngToCoords=Rw,Zo.latLngsToCoords=_y,Zo.getFeature=jh,Zo.asFeature=by,Nt.mergeOptions({boxZoom:!0});var iD=Ui.extend({initialize:function(p){this._map=p,this._container=p._container,this._pane=p._panes.overlayPane,this._resetStateTimeout=0,p.on("unload",this._destroy,this)},addHooks:function(){st(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){Vt(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){qt(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){this._resetStateTimeout!==0&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(p){if(!p.shiftKey||p.which!==1&&p.button!==1)return!1;this._clearDeferredResetState(),this._resetState(),fa(),Mh(),this._startPoint=this._map.mouseEventToContainerPoint(p),st(document,{contextmenu:du,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(p){this._moved||(this._moved=!0,this._box=Tt("div","leaflet-zoom-box",this._container),Be(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(p);var b=new W(this._point,this._startPoint),T=b.getSize();Re(this._box,b.min),this._box.style.width=T.x+"px",this._box.style.height=T.y+"px"},_finish:function(){this._moved&&(qt(this._box),lt(this._container,"leaflet-crosshair")),hi(),Ah(),Vt(document,{contextmenu:du,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(p){if(!(p.which!==1&&p.button!==1)&&(this._finish(),!!this._moved)){this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(o(this._resetState,this),0);var b=new re(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(b).fire("boxzoomend",{boxZoomBounds:b})}},_onKeyDown:function(p){p.keyCode===27&&(this._finish(),this._clearDeferredResetState(),this._resetState())}});Nt.addInitHook("addHandler","boxZoom",iD),Nt.mergeOptions({doubleClickZoom:!0});var oD=Ui.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(p){var b=this._map,T=b.getZoom(),N=b.options.zoomDelta,R=p.originalEvent.shiftKey?T-N:T+N;b.options.doubleClickZoom==="center"?b.setZoom(R):b.setZoomAround(p.containerPoint,R)}});Nt.addInitHook("addHandler","doubleClickZoom",oD),Nt.mergeOptions({dragging:!0,inertia:!0,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var sD=Ui.extend({addHooks:function(){if(!this._draggable){var p=this._map;this._draggable=new Gs(p._mapPane,p._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),p.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),p.on("zoomend",this._onZoomEnd,this),p.whenReady(this._onZoomEnd,this))}Be(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){lt(this._map._container,"leaflet-grab"),lt(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var p=this._map;if(p._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var b=Q(this._map.options.maxBounds);this._offsetLimit=q(this._map.latLngToContainerPoint(b.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(b.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else this._offsetLimit=null;p.fire("movestart").fire("dragstart"),p.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(p){if(this._map.options.inertia){var b=this._lastTime=+new Date,T=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(T),this._times.push(b),this._prunePositions(b)}this._map.fire("move",p).fire("drag",p)},_prunePositions:function(p){for(;this._positions.length>1&&p-this._times[0]>50;)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var p=this._map.getSize().divideBy(2),b=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=b.subtract(p).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(p,b){return p-(p-b)*this._viscosity},_onPreDragLimit:function(){if(!(!this._viscosity||!this._offsetLimit)){var p=this._draggable._newPos.subtract(this._draggable._startPos),b=this._offsetLimit;p.xb.max.x&&(p.x=this._viscousLimit(p.x,b.max.x)),p.y>b.max.y&&(p.y=this._viscousLimit(p.y,b.max.y)),this._draggable._newPos=this._draggable._startPos.add(p)}},_onPreDragWrap:function(){var p=this._worldWidth,b=Math.round(p/2),T=this._initialWorldOffset,N=this._draggable._newPos.x,R=(N-b+T)%p+b-T,G=(N+b+T)%p-b-T,Y=Math.abs(R+T)0?G:-G))-b;this._delta=0,this._startTime=null,Y&&(p.options.scrollWheelZoom==="center"?p.setZoom(b+Y):p.setZoomAround(this._lastMousePos,b+Y))}});Nt.addInitHook("addHandler","scrollWheelZoom",uD);var dY=600;Nt.mergeOptions({tapHold:He.touchNative&&He.safari&&He.mobile,tapTolerance:15});var cD=Ui.extend({addHooks:function(){st(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){Vt(this._map._container,"touchstart",this._onDown,this)},_onDown:function(p){if(clearTimeout(this._holdTimeout),p.touches.length===1){var b=p.touches[0];this._startPos=this._newPos=new F(b.clientX,b.clientY),this._holdTimeout=setTimeout(o(function(){this._cancel(),this._isTapValid()&&(st(document,"touchend",vr),st(document,"touchend touchcancel",this._cancelClickPrevent),this._simulateEvent("contextmenu",b))},this),dY),st(document,"touchend touchcancel contextmenu",this._cancel,this),st(document,"touchmove",this._onMove,this)}},_cancelClickPrevent:function p(){Vt(document,"touchend",vr),Vt(document,"touchend touchcancel",p)},_cancel:function(){clearTimeout(this._holdTimeout),Vt(document,"touchend touchcancel contextmenu",this._cancel,this),Vt(document,"touchmove",this._onMove,this)},_onMove:function(p){var b=p.touches[0];this._newPos=new F(b.clientX,b.clientY)},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_simulateEvent:function(p,b){var T=new MouseEvent(p,{bubbles:!0,cancelable:!0,view:window,screenX:b.screenX,screenY:b.screenY,clientX:b.clientX,clientY:b.clientY});T._simulated=!0,b.target.dispatchEvent(T)}});Nt.addInitHook("addHandler","tapHold",cD),Nt.mergeOptions({touchZoom:He.touch,bounceAtZoomLimits:!0});var hD=Ui.extend({addHooks:function(){Be(this._map._container,"leaflet-touch-zoom"),st(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){lt(this._map._container,"leaflet-touch-zoom"),Vt(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(p){var b=this._map;if(!(!p.touches||p.touches.length!==2||b._animatingZoom||this._zooming)){var T=b.mouseEventToContainerPoint(p.touches[0]),N=b.mouseEventToContainerPoint(p.touches[1]);this._centerPoint=b.getSize()._divideBy(2),this._startLatLng=b.containerPointToLatLng(this._centerPoint),b.options.touchZoom!=="center"&&(this._pinchStartLatLng=b.containerPointToLatLng(T.add(N)._divideBy(2))),this._startDist=T.distanceTo(N),this._startZoom=b.getZoom(),this._moved=!1,this._zooming=!0,b._stop(),st(document,"touchmove",this._onTouchMove,this),st(document,"touchend touchcancel",this._onTouchEnd,this),vr(p)}},_onTouchMove:function(p){if(!(!p.touches||p.touches.length!==2||!this._zooming)){var b=this._map,T=b.mouseEventToContainerPoint(p.touches[0]),N=b.mouseEventToContainerPoint(p.touches[1]),R=T.distanceTo(N)/this._startDist;if(this._zoom=b.getScaleZoom(R,this._startZoom),!b.options.bounceAtZoomLimits&&(this._zoomb.getMaxZoom()&&R>1)&&(this._zoom=b._limitZoom(this._zoom)),b.options.touchZoom==="center"){if(this._center=this._startLatLng,R===1)return}else{var G=T._add(N)._divideBy(2)._subtract(this._centerPoint);if(R===1&&G.x===0&&G.y===0)return;this._center=b.unproject(b.project(this._pinchStartLatLng,this._zoom).subtract(G),this._zoom)}this._moved||(b._moveStart(!0,!1),this._moved=!0),z(this._animRequest);var Y=o(b._move,b,this._center,this._zoom,{pinch:!0,round:!1},void 0);this._animRequest=D(Y,this,!0),vr(p)}},_onTouchEnd:function(){if(!this._moved||!this._zooming){this._zooming=!1;return}this._zooming=!1,z(this._animRequest),Vt(document,"touchmove",this._onTouchMove,this),Vt(document,"touchend touchcancel",this._onTouchEnd,this),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))}});Nt.addInitHook("addHandler","touchZoom",hD),Nt.BoxZoom=iD,Nt.DoubleClickZoom=oD,Nt.Drag=sD,Nt.Keyboard=lD,Nt.ScrollWheelZoom=uD,Nt.TapHold=cD,Nt.TouchZoom=hD,r.Bounds=W,r.Browser=He,r.CRS=Ue,r.Canvas=tD,r.Circle=Ew,r.CircleMarker=my,r.Class=B,r.Control=fi,r.DivIcon=JP,r.DivOverlay=Wi,r.DomEvent=I$,r.DomUtil=vy,r.Draggable=Gs,r.Evented=U,r.FeatureGroup=Uo,r.GeoJSON=Zo,r.GridLayer=Cv,r.Handler=Ui,r.Icon=Dh,r.ImageOverlay=wy,r.LatLng=se,r.LatLngBounds=re,r.Layer=di,r.LayerGroup=Ph,r.LineUtil=U$,r.Map=Nt,r.Marker=gy,r.Mixin=z$,r.Path=Hs,r.Point=F,r.PolyUtil=B$,r.Polygon=Eh,r.Polyline=Wo,r.Popup=Sy,r.PosAnimation=EP,r.Projection=W$,r.Rectangle=aD,r.Renderer=$o,r.SVG=Mv,r.SVGOverlay=KP,r.TileLayer=Rh,r.Tooltip=Cy,r.Transformation=be,r.Util=E,r.VideoOverlay=qP,r.bind=o,r.bounds=q,r.canvas=rD,r.circle=Q$,r.circleMarker=J$,r.control=bv,r.divIcon=lY,r.extend=a,r.featureGroup=X$,r.geoJSON=XP,r.geoJson=rY,r.gridLayer=uY,r.icon=q$,r.imageOverlay=nY,r.latLng=ce,r.latLngBounds=Q,r.layerGroup=Y$,r.map=P$,r.marker=K$,r.point=$,r.polygon=tY,r.polyline=eY,r.popup=oY,r.rectangle=fY,r.setOptions=m,r.stamp=l,r.svg=nD,r.svgOverlay=iY,r.tileLayer=QP,r.tooltip=sY,r.transformation=we,r.version=n,r.videoOverlay=aY;var vY=window.L;r.noConflict=function(){return window.L=vY,this},window.L=r})})(vN,vN.exports);var su=vN.exports;const xw=gN(su);function sv(e,t,r){return Object.freeze({instance:e,context:t,container:r})}function MP(e,t){return t==null?function(n,a){const i=O.useRef();return i.current||(i.current=e(n,a)),i}:function(n,a){const i=O.useRef();i.current||(i.current=e(n,a));const o=O.useRef(n),{instance:s}=i.current;return O.useEffect(function(){o.current!==n&&(t(s,n,o.current),o.current=n)},[s,n,a]),i}}function u$(e,t){O.useEffect(function(){return(t.layerContainer??t.map).addLayer(e.instance),function(){var i;(i=t.layerContainer)==null||i.removeLayer(e.instance),t.map.removeLayer(e.instance)}},[t,e])}function vSe(e){return function(r){const n=mw(),a=e(yw(r,n),n);return o$(n.map,r.attribution),TP(a.current,r.eventHandlers),u$(a.current,n),a}}function pSe(e,t){const r=O.useRef();O.useEffect(function(){if(t.pathOptions!==r.current){const a=t.pathOptions??{};e.instance.setStyle(a),r.current=a}},[e,t])}function gSe(e){return function(r){const n=mw(),a=e(yw(r,n),n);return TP(a.current,r.eventHandlers),u$(a.current,n),pSe(a.current,r),a}}function c$(e,t){const r=MP(e),n=dSe(r,t);return hSe(n)}function AP(e,t){const r=MP(e,t),n=gSe(r);return cSe(n)}function mSe(e,t){const r=MP(e,t),n=vSe(r);return fSe(n)}function ySe(e,t,r){const{opacity:n,zIndex:a}=t;n!=null&&n!==r.opacity&&e.setOpacity(n),a!=null&&a!==r.zIndex&&e.setZIndex(a)}function NP(){return mw().map}function xSe(e){const t=NP();return O.useEffect(function(){return t.on(e),function(){t.off(e)}},[t,e]),t}const h$=AP(function({center:t,children:r,...n},a){const i=new su.CircleMarker(t,n);return sv(i,CP(a,{overlayContainer:i}))},sSe);function pN(){return pN=Object.assign||function(e){for(var t=1;t(v==null?void 0:v.map)??null,[v]);const m=O.useCallback(x=>{if(x!==null&&v===null){const _=new su.Map(x,c);r!=null&&u!=null?_.setView(r,u):e!=null&&_.fitBounds(e,t),l!=null&&_.whenReady(l),g(uSe(_))}},[]);O.useEffect(()=>()=>{v==null||v.map.remove()},[v]);const y=v?Qf.createElement(l$,{value:v},n):o??null;return Qf.createElement("div",pN({},d,{ref:m}),y)}const f$=O.forwardRef(_Se),bSe=AP(function({positions:t,...r},n){const a=new su.Polyline(t,r);return sv(a,CP(n,{overlayContainer:a}))},function(t,r,n){r.positions!==n.positions&&t.setLatLngs(r.positions)}),wSe=c$(function(t,r){const n=new su.Popup(t,r.overlayContainer);return sv(n,r)},function(t,r,{position:n},a){O.useEffect(function(){const{instance:o}=t;function s(u){u.popup===o&&(o.update(),a(!0))}function l(u){u.popup===o&&a(!1)}return r.map.on({popupopen:s,popupclose:l}),r.overlayContainer==null?(n!=null&&o.setLatLng(n),o.openOn(r.map)):r.overlayContainer.bindPopup(o),function(){var c;r.map.off({popupopen:s,popupclose:l}),(c=r.overlayContainer)==null||c.unbindPopup(),r.map.removeLayer(o)}},[t,r,a,n])}),SSe=AP(function({bounds:t,...r},n){const a=new su.Rectangle(t,r);return sv(a,CP(n,{overlayContainer:a}))},function(t,r,n){r.bounds!==n.bounds&&t.setBounds(r.bounds)}),d$=mSe(function({url:t,...r},n){const a=new su.TileLayer(t,yw(r,n));return sv(a,n)},function(t,r,n){ySe(t,r,n);const{url:a}=r;a!=null&&a!==n.url&&t.setUrl(a)}),CSe=c$(function(t,r){const n=new su.Tooltip(t,r.overlayContainer);return sv(n,r)},function(t,r,{position:n},a){O.useEffect(function(){const o=r.overlayContainer;if(o==null)return;const{instance:s}=t,l=c=>{c.tooltip===s&&(n!=null&&s.setLatLng(n),s.update(),a(!0))},u=c=>{c.tooltip===s&&a(!1)};return o.on({tooltipopen:l,tooltipclose:u}),o.bindTooltip(s),function(){o.off({tooltipopen:l,tooltipclose:u}),o._map!=null&&o.unbindTooltip()}},[t,r,a,n])}),v$="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=",p$="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAABSCAMAAAAhFXfZAAAC91BMVEVMaXEzeak2f7I4g7g3g7cua5gzeKg8hJo3grY4g7c3grU0gLI2frE0daAubJc2gbQwd6QzeKk2gLMtd5sxdKIua5g1frA2f7IydaM0e6w2fq41fK01eqo3grgubJgta5cxdKI1f7AydaQydaMxc6EubJgvbJkwcZ4ubZkwcJwubZgubJcydqUydKIxapgubJctbJcubZcubJcvbJYubJcvbZkubJctbJctbZcubJg2f7AubJcrbZcubJcubJcua5g3grY0fq8ubJcubJdEkdEwhsw6i88vhswuhcsuhMtBjMgthMsrg8srgss6is8qgcs8i9A9iMYtg8spgcoogMo7hcMngMonf8olfso4gr8kfck5iM8jfMk4iM8he8k1fro7itAgesk2hs8eecgzfLcofssdeMg0hc4cd8g2hcsxeLQbdsgZdcgxeLImfcszhM0vda4xgckzhM4xg84wf8Yxgs4udKsvfcQucqhUndROmdM1fK0wcZ8vb5w0eqpQm9MzeKhXoNVcpdYydKNWn9VZotVKltJFjsIwcJ1Rms9OlslLmtH///8+kc9epdYzd6dbo9VHkMM2f7FHmNBClM8ydqVcpNY9hro3gLM9hLczealQmcw3fa46f7A8gLMxc6I3eagyc6FIldJMl9JSnNRSntNNl9JPnNJFi75UnM9ZodVKksg8kM45jc09e6ZHltFBk883gbRBh7pDk9EwcaBzn784g7dKkcY2i81Om9M7j85Llc81is09g7Q4grY/j9A0eqxKmdFFltBEjcXf6fFImdBCiLxJl9FGlNFBi78yiMxVndEvbpo6js74+vx+psPP3+o/ks5HkcpGmNCjwdZCkNDM3ehYoNJEls+lxNkxh8xHks0+jdC1zd5Lg6r+/v/H2ufz9/o3jM3t8/edvdM/k89Th61OiLBSjbZklbaTt9BfptdjmL1AicBHj8hGk9FAgK1dkLNTjLRekrdClc/k7fM0icy0y9tgp9c4jc2NtM9Dlc8zicxeXZn3AAAAQ3RSTlMAHDdTb4yPA+LtnEQmC4L2EmHqB7XA0d0sr478x4/Yd5i1zOfyPkf1sLVq4Nh3FvjxopQ2/STNuFzUwFIwxKaejILpIBEV9wAABhVJREFUeF6s1NdyFEcYBeBeoQIhRAkLlRDGrhIgY3BJL8CVeKzuyXFzzjkn5ZxzzuScg3PO8cKzu70JkO0LfxdTU//pM9vTu7Xgf6KqOVTb9X7toRrVEfBf1HTVjZccrT/2by1VV928Yty9ZbVuucdz90frG8DBjl9pVApbOstvmMuvVgaNXSfAAd6pGxpy6yxf5ph43pS/4f3uoaGm2rdu72S9xzOvMymkZFq/ptDrk90mhW7e4zl7HLzhxGWPR20xmSxJ/VqldG5m9XhaVOA1DadsNh3Pu5L2N6QtPO/32JpqQBVVk20oy/Pi2s23WEvyfHbe1thadVQttvm7Llf65gGmXK67XtupyoM7HQhmXdLS8oGWJNeOJ3C5fG5XCEJnkez3/oFdsvgJ4l2ANZwhrJKk/7OSXa+3Vw2WJMlKnGkobouYk6T0TyX30klOUnTD9HJ5qpckL3EW/w4XF3Xd0FGywXUrstrclVsqz5Pd/sXFYyDnPdrLcQODmGOK47IZb4CmibmMn+MYRzFZ5jg33ZL/EJrWcszHmANy3ARBK/IXtciJy8VsitPSdE3uuHxzougojcUdr8/32atnz/ev3f/K5wtpxUTpcaI45zusVDpYtZi+jg0oU9b3x74h7+n9ABvYEZeKaVq0sh0AtLKsFtqNBdeT0MrSzwwlq9+x6xAO4tgOtSzbCjrNQQiNvQUbUEubvzBUeGw26yDCsRHCoLkTHDa7IdOLIThs/gHvChszh2CimE8peRs47cxANI0lYNB5y1DljpOF0IhzBDPOZnDOqYYbeGKECbPzWnXludPphw5c2YBq5zlwXphIbO4VDCZ0gnPfUO1TwZoYwAs2ExPCedAu9DAjfQUjzITQb3jNj0KG2Sgt6BHaQUdYzWz+XmBktOHwanXjaSTcwwziBcuMOtwBmqPrTOxFQR/DRKKPqyur0aiW6cULYsx6tBm0jXpR/AUWR6HRq9WVW6MRhIq5jLyjbaCTDCijyYJNpCajdyobP/eTw0iexBAKkJ3gA5KcQb2zBXsIBckn+xVv8jkZSaEFHE+jFEleAEfayRU0MouNoBmB/L50Ai/HSLIHxcrpCvnhSQAuakKp2C/YbCylJjXRVy/z3+Kv/RrNcCo+WUzlVEhzKffnTQnxeN9fWF88fiNCUdSTsaufaChKWInHeysygfpIqagoakW+vV20J8uyl6TyNKEZWV4oRSPyCkWpgOLSbkCObT8o2r6tlG58HQquf6O0v50tB7JM7F4EORd2dx/K0w/KHsVkLPaoYrwgP/y7krr3SSMA4zj+OBgmjYkxcdIJQyQRKgg2viX9Hddi9UBb29LrKR7CVVEEEXWojUkXNyfTNDE14W9gbHJNuhjDettN3ZvbOvdOqCD3Jp/9l+/wJE+9PkYGjx/fqkys3S2rMozM/o2106rfMUINo6hVqz+eu/hd1c4xTg0TAfy5kV+4UG6+IthHTU9woWmxuKNbTfuCSfovBCxq7EtHqvYL4Sm6F8GVxsSXHMQ07TOi1DKtZxjWaaIyi4CXWjxPccUw8WVbMYY5wxC1mzEyXMJWkllpRloi+Kkoq69sxBTlElF6aAxYUbjXNlhlDZilDnM4U5SlN5biRsRHnbx3mbeWjEh4mEyiuJDl5XcWVmX5GvNkFgLWZM5qwsop4/AWfLhU1cR7k1VVvcYCWRkOI6Xy5gmnphCYIkvzuNYzHzosq2oNk2RtSs8khfUOfHIDgR6ysYBaMpl4uEgk2U/oJTs9AaTSwma7dT69geAE2ZpEjUsn2ieJNHeKfrI3EcAGJ2ZaNgVuC8EBctCLc57P5u5led6IOBkIYkuQMrmmjChs4VkfOerHqSBkPzZlhe06RslZ3zMjk2sscqKwY0RcjKK+LWbzd7KiHhkncs/siFJ+V5eXxD34B8nVuJEpGJNmxN2gH3vSvp7J70tF+D1Ej8qUJD1TkErAND2GZwTFg/LubvmgiBG3SOvdlsqFQrkEzJCL1rstlnVFROixZoDDSuXQFHESwVGlcuQcMb/b42NgjLowh5MTDFE3vNB5qStRIErdCQEh6pLPR92anSUb/wAIhldAaDMpGgAAAABJRU5ErkJggg==",g$="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACkAAAApCAQAAAACach9AAACMUlEQVR4Ae3ShY7jQBAE0Aoz/f9/HTMzhg1zrdKUrJbdx+Kd2nD8VNudfsL/Th///dyQN2TH6f3y/BGpC379rV+S+qqetBOxImNQXL8JCAr2V4iMQXHGNJxeCfZXhSRBcQMfvkOWUdtfzlLgAENmZDcmo2TVmt8OSM2eXxBp3DjHSMFutqS7SbmemzBiR+xpKCNUIRkdkkYxhAkyGoBvyQFEJEefwSmmvBfJuJ6aKqKWnAkvGZOaZXTUgFqYULWNSHUckZuR1HIIimUExutRxwzOLROIG4vKmCKQt364mIlhSyzAf1m9lHZHJZrlAOMMztRRiKimp/rpdJDc9Awry5xTZCte7FHtuS8wJgeYGrex28xNTd086Dik7vUMscQOa8y4DoGtCCSkAKlNwpgNtphjrC6MIHUkR6YWxxs6Sc5xqn222mmCRFzIt8lEdKx+ikCtg91qS2WpwVfBelJCiQJwvzixfI9cxZQWgiSJelKnwBElKYtDOb2MFbhmUigbReQBV0Cg4+qMXSxXSyGUn4UbF8l+7qdSGnTC0XLCmahIgUHLhLOhpVCtw4CzYXvLQWQbJNmxoCsOKAxSgBJno75avolkRw8iIAFcsdc02e9iyCd8tHwmeSSoKTowIgvscSGZUOA7PuCN5b2BX9mQM7S0wYhMNU74zgsPBj3HU7wguAfnxxjFQGBE6pwN+GjME9zHY7zGp8wVxMShYX9NXvEWD3HbwJf4giO4CFIQxXScH1/TM+04kkBiAAAAAElFTkSuQmCC";delete xw.Icon.Default.prototype._getIconUrl;xw.Icon.Default.mergeOptions({iconUrl:v$,iconRetinaUrl:p$,shadowUrl:g$});const OB=["#3b82f6","#a78bfa","#06b6d4","#f59e0b","#22c55e","#ec4899","#8b5cf6","#14b8a6"],TSe=["ROUTER","ROUTER_LATE","REPEATER","TRACKER"];function MSe(e){return e>12?"#22c55e":e>8?"#4ade80":e>5?"#f59e0b":e>3?"#f97316":"#ef4444"}function ASe(e){return e===null||e>46?0:e>44.5?1:e>43?2:3}function NSe(e){if(!e)return"Unknown";const t=new Date(e),n=new Date().getTime()-t.getTime(),a=Math.floor(n/6e4),i=Math.floor(n/36e5),o=Math.floor(n/864e5);return a<1?"Just now":a<60?`${a}m ago`:i<24?`${i}h ago`:`${o}d ago`}function kSe({bounds:e}){const t=NP();return O.useEffect(()=>{e&&t.fitBounds(e,{padding:[50,50]})},[t,e]),null}function LSe({node:e}){const t=e.latitude!==null&&e.longitude!==null,r=e.battery_level!==null?e.battery_level>100||e.voltage&&e.voltage>4.1?"USB ⚡":`${e.battery_level.toFixed(0)}%`:"Unknown";return f.jsxs("div",{className:"min-w-[200px]",children:[f.jsx("div",{className:"font-semibold text-slate-800",children:e.short_name}),f.jsx("div",{className:"text-xs text-slate-600 mb-2",children:e.long_name}),f.jsxs("div",{className:"grid grid-cols-2 gap-x-4 gap-y-1 text-xs",children:[f.jsx("div",{className:"text-slate-500",children:"Role"}),f.jsx("div",{className:"text-slate-700 font-medium",children:e.role}),f.jsx("div",{className:"text-slate-500",children:"Hardware"}),f.jsx("div",{className:"text-slate-700",children:e.hardware||"Unknown"}),f.jsx("div",{className:"text-slate-500",children:"Battery"}),f.jsx("div",{className:"text-slate-700",children:r}),f.jsx("div",{className:"text-slate-500",children:"Last Heard"}),f.jsx("div",{className:"text-slate-700",children:NSe(e.last_heard)})]}),t&&f.jsxs("div",{className:"mt-3 pt-2 border-t border-slate-200 flex gap-2",children:[f.jsxs("a",{href:`https://www.google.com/maps?q=${e.latitude},${e.longitude}`,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-1 text-xs text-blue-600 hover:text-blue-800",children:[f.jsx(kc,{size:10}),"Google Maps"]}),f.jsxs("a",{href:`https://www.openstreetmap.org/?mlat=${e.latitude}&mlon=${e.longitude}&zoom=14`,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-1 text-xs text-blue-600 hover:text-blue-800",children:[f.jsx(kc,{size:10}),"OSM"]})]})]})}function ISe({nodes:e,edges:t,selectedNodeId:r,onSelectNode:n}){const a=O.useMemo(()=>e.filter(h=>h.latitude!==null&&h.longitude!==null),[e]),i=e.length-a.length,o=O.useMemo(()=>new Map(a.map(h=>[h.node_num,h])),[a]),s=O.useMemo(()=>t.filter(h=>o.has(h.from_node)&&o.has(h.to_node)),[t,o]),l=O.useMemo(()=>{if(a.length===0)return null;const h=a.map(v=>v.latitude),d=a.map(v=>v.longitude);return[[Math.min(...h),Math.min(...d)],[Math.max(...h),Math.max(...d)]]},[a]),u=[43.6,-114.4],c=O.useMemo(()=>{const h=new Set;return r!==null&&t.forEach(d=>{d.from_node===r&&h.add(d.to_node),d.to_node===r&&h.add(d.from_node)}),h},[r,t]);return f.jsxs("div",{className:"relative bg-bg-card border border-border overflow-hidden",children:[f.jsxs(f$,{center:u,zoom:7,style:{width:"100%",height:"540px"},className:"z-0",children:[f.jsx(d$,{url:"https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}{r}.png",attribution:'© OpenStreetMap, © CARTO'}),f.jsx(kSe,{bounds:l}),s.map((h,d)=>{const v=o.get(h.from_node),g=o.get(h.to_node),m=r===null||h.from_node===r||h.to_node===r;return f.jsx(bSe,{positions:[[v.latitude,v.longitude],[g.latitude,g.longitude]],color:MSe(h.snr),weight:m&&r!==null?2.5:1.5,opacity:r===null?.3:m?.6:.08},d)}),a.map(h=>{const d=h.node_num===r,v=c.has(h.node_num),g=r===null||d||v,m=TSe.includes(h.role),y=ASe(h.latitude),x=OB[y%OB.length];return f.jsxs(h$,{center:[h.latitude,h.longitude],radius:m?8:5,fillColor:m?x:"#111827",fillOpacity:g?.9:.2,stroke:!0,color:d?"#ffffff":x,weight:d?3:m?0:2,opacity:g?1:.3,eventHandlers:{click:()=>n(d?null:h.node_num)},children:[f.jsx(CSe,{direction:"top",offset:[0,-8],children:f.jsx("span",{className:"font-mono text-xs",children:h.short_name})}),f.jsx(wSe,{children:f.jsx(LSe,{node:h})})]},h.node_num)})]}),f.jsxs("div",{className:"absolute bottom-4 left-4 bg-bg-card/90 backdrop-blur-sm border border-border rounded px-3 py-2 text-xs text-slate-400 flex items-center gap-2",children:[f.jsx(Rd,{size:12}),f.jsxs("span",{children:["Showing ",a.length," of ",e.length," nodes",i>0&&f.jsxs("span",{className:"text-slate-500",children:[" (",i," without coordinates)"]})]})]})]})}const zB=["#3b82f6","#a78bfa","#06b6d4","#f59e0b","#22c55e","#ec4899","#8b5cf6","#14b8a6"],PSe=["ROUTER","ROUTER_LATE","REPEATER","TRACKER"];function BB(e){return e>12?"#22c55e":e>8?"#4ade80":e>5?"#f59e0b":e>3?"#f97316":"#ef4444"}function DSe(e){return e>12?"excellent":e>8?"good":e>5?"fair":e>3?"marginal":"poor"}function ESe(e){return e===null||e>46?0:e>44.5?1:e>43?2:3}function jSe(e){return["Northern ID","Central ID","SW Idaho","SC Idaho"][e]||"Unknown"}function RSe(e){if(!e)return"Unknown";const t=new Date(e),n=new Date().getTime()-t.getTime(),a=Math.floor(n/6e4),i=Math.floor(n/36e5),o=Math.floor(n/864e5);return a<1?"Just now":a<60?`${a}m ago`:i<24?`${i}h ago`:`${o}d ago`}function OSe(e){if(!e)return"bg-slate-500";const t=new Date(e),n=(new Date().getTime()-t.getTime())/36e5;return n<1?"bg-green-500":n<24?"bg-amber-500":"bg-slate-500"}function zSe({node:e,edges:t,nodes:r,onSelectNode:n}){const a=O.useMemo(()=>{if(!e)return[];const h=new Map(r.map(v=>[v.node_num,v])),d=[];return t.forEach(v=>{if(v.from_node===e.node_num){const g=h.get(v.to_node);g&&d.push({node:g,snr:v.snr,quality:v.quality})}else if(v.to_node===e.node_num){const g=h.get(v.from_node);g&&d.push({node:g,snr:v.snr,quality:v.quality})}}),d.sort((v,g)=>g.snr-v.snr)},[e,t,r]);if(!e)return f.jsxs("div",{className:"w-[250px] flex-shrink-0 bg-bg-card border-l border-border p-4 flex flex-col items-center justify-center h-[540px]",children:[f.jsx("div",{className:"w-12 h-12 rounded-full bg-bg-hover border border-border flex items-center justify-center mb-3",children:f.jsx(oi,{size:24,className:"text-slate-500"})}),f.jsx("p",{className:"text-sm text-slate-500 text-center",children:"Click a node to inspect"})]});const i=PSe.includes(e.role),o=ESe(e.latitude),s=zB[o%zB.length],l=e.latitude!==null&&e.longitude!==null,u=e.battery_level!==null?e.battery_level>100||e.voltage&&e.voltage>4.1?"USB":`${e.battery_level.toFixed(0)}%`:"—",c=e.battery_level!==null&&(e.battery_level>100||e.voltage&&e.voltage>4.1);return f.jsxs("div",{className:"w-[250px] flex-shrink-0 bg-bg-card border-l border-border flex flex-col h-[540px] overflow-hidden",children:[f.jsxs("div",{className:"p-4 border-b border-border",children:[f.jsx("div",{className:"inline-flex items-center px-2 py-0.5 rounded text-xs font-mono mb-2",style:{backgroundColor:`${s}20`,color:s},children:e.node_id_hex}),f.jsx("div",{className:"font-mono text-lg text-slate-100",children:e.short_name}),f.jsx("div",{className:"text-xs text-slate-500 truncate",children:e.long_name})]}),f.jsxs("div",{className:"p-4 border-b border-border grid grid-cols-2 gap-3",children:[f.jsxs("div",{children:[f.jsx("div",{className:"text-xs text-slate-500 mb-0.5",children:"Role"}),f.jsx("div",{className:`text-sm font-medium ${i?"text-accent":"text-slate-300"}`,children:e.role})]}),f.jsxs("div",{children:[f.jsx("div",{className:"text-xs text-slate-500 mb-0.5",children:"Region"}),f.jsx("div",{className:"text-sm text-slate-300",children:jSe(o)})]}),f.jsxs("div",{children:[f.jsx("div",{className:"text-xs text-slate-500 mb-0.5",children:"Battery"}),f.jsxs("div",{className:"text-sm text-slate-300 flex items-center gap-1",children:[c&&f.jsx(J2,{size:12,className:"text-amber-400"}),u]})]}),f.jsxs("div",{children:[f.jsx("div",{className:"text-xs text-slate-500 mb-0.5",children:"Status"}),f.jsxs("div",{className:"flex items-center gap-1.5",children:[f.jsx("div",{className:`w-2 h-2 rounded-full ${OSe(e.last_heard)}`}),f.jsx("span",{className:"text-sm text-slate-300",children:RSe(e.last_heard)})]})]}),f.jsxs("div",{className:"col-span-2",children:[f.jsx("div",{className:"text-xs text-slate-500 mb-0.5",children:"Hardware"}),f.jsx("div",{className:"text-sm text-slate-300 font-mono truncate",children:e.hardware||"Unknown"})]})]}),l&&f.jsxs("div",{className:"px-4 py-3 border-b border-border flex gap-3",children:[f.jsxs("a",{href:`https://www.google.com/maps?q=${e.latitude},${e.longitude}`,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-1 text-xs text-sky-400 hover:text-sky-300",children:[f.jsx(kc,{size:10}),"Google Maps"]}),f.jsxs("a",{href:`https://www.openstreetmap.org/?mlat=${e.latitude}&mlon=${e.longitude}&zoom=14`,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-1 text-xs text-sky-400 hover:text-sky-300",children:[f.jsx(kc,{size:10}),"OSM"]})]}),f.jsxs("div",{className:"flex-1 overflow-y-auto",children:[f.jsxs("div",{className:"px-4 py-2 text-xs text-slate-500 font-medium sticky top-0 bg-bg-card border-b border-border",children:["Neighbors (",a.length,")"]}),a.length>0?f.jsx("div",{className:"divide-y divide-border",children:a.map(h=>f.jsxs("button",{onClick:()=>n(h.node.node_num),className:"w-full px-4 py-2 text-left hover:bg-bg-hover transition-colors flex items-center gap-2",style:{borderLeftWidth:3,borderLeftColor:BB(h.snr)},children:[f.jsxs("div",{className:"flex-1 min-w-0",children:[f.jsx("div",{className:"text-sm text-slate-200 font-mono truncate",children:h.node.short_name}),f.jsx("div",{className:"text-xs text-slate-500 truncate",children:h.node.long_name})]}),f.jsxs("div",{className:"text-right flex-shrink-0",children:[f.jsxs("div",{className:"text-xs font-mono",style:{color:BB(h.snr)},children:[h.snr.toFixed(1)," dB"]}),f.jsx("div",{className:"text-xs text-slate-500",children:DSe(h.snr)})]})]},h.node.node_num))}):f.jsx("div",{className:"px-4 py-6 text-center text-sm text-slate-500",children:"No known neighbors"})]})]})}const FB=["ROUTER","ROUTER_LATE","REPEATER","TRACKER"];function BSe(e){if(!e)return"bg-slate-500";const t=new Date(e),n=(new Date().getTime()-t.getTime())/36e5;return n<1?"bg-green-500":n<24?"bg-amber-500":"bg-slate-500"}function FSe(e){if(!e)return"—";const t=new Date(e),n=new Date().getTime()-t.getTime(),a=Math.floor(n/6e4),i=Math.floor(n/36e5),o=Math.floor(n/864e5);return a<1?"Just now":a<60?`${a}m ago`:i<24?`${i}h ago`:`${o}d ago`}function VSe(e){return e.battery_level===null?"—":e.battery_level>100||e.voltage&&e.voltage>4.1?"USB ⚡":`${e.battery_level.toFixed(0)}%`}function VB(e){return e===null?"—":e>46?"Northern":e>44.5?"Central":e>43?"SW Idaho":"SC Idaho"}function GSe({nodes:e,selectedNodeId:t,onSelectNode:r}){const[n,a]=O.useState(""),[i,o]=O.useState("short_name"),[s,l]=O.useState("asc"),[u,c]=O.useState("all"),h=O.useMemo(()=>{let g=[...e];if(u==="infra"?g=g.filter(m=>FB.includes(m.role)):u==="online"&&(g=g.filter(m=>{if(!m.last_heard)return!1;const y=new Date(m.last_heard);return(new Date().getTime()-y.getTime())/36e5<1})),n){const m=n.toLowerCase();g=g.filter(y=>y.short_name.toLowerCase().includes(m)||y.long_name.toLowerCase().includes(m)||y.role.toLowerCase().includes(m)||VB(y.latitude).toLowerCase().includes(m))}return g.sort((m,y)=>{let x="",_="";switch(i){case"short_name":x=m.short_name.toLowerCase(),_=y.short_name.toLowerCase();break;case"role":x=m.role,_=y.role;break;case"battery_level":x=m.battery_level??-1,_=y.battery_level??-1;break;case"last_heard":x=m.last_heard?new Date(m.last_heard).getTime():0,_=y.last_heard?new Date(y.last_heard).getTime():0;break;case"hardware":x=m.hardware.toLowerCase(),_=y.hardware.toLowerCase();break}return x<_?s==="asc"?-1:1:x>_?s==="asc"?1:-1:0}),g},[e,n,i,s,u]),d=g=>{i===g?l(s==="asc"?"desc":"asc"):(o(g),l("asc"))},v=({field:g})=>i!==g?null:s==="asc"?f.jsx(sJ,{size:14,className:"inline ml-1"}):f.jsx(Sm,{size:14,className:"inline ml-1"});return f.jsxs("div",{className:"bg-bg-card border border-border overflow-hidden",children:[f.jsxs("div",{className:"p-3 border-b border-border flex items-center gap-3",children:[f.jsxs("div",{className:"relative flex-1 max-w-xs",children:[f.jsx(p1,{size:14,className:"absolute left-3 top-1/2 -translate-y-1/2 text-slate-500"}),f.jsx("input",{type:"text",placeholder:"Search nodes...",value:n,onChange:g=>a(g.target.value),className:"w-full pl-9 pr-3 py-1.5 bg-bg-hover border border-border rounded text-sm text-slate-200 placeholder-slate-500 focus:outline-none focus:border-accent"})]}),f.jsxs("div",{className:"flex items-center gap-1",children:[f.jsx(MV,{size:14,className:"text-slate-500 mr-1"}),["all","infra","online"].map(g=>f.jsx("button",{onClick:()=>c(g),className:`px-2 py-1 text-xs rounded transition-colors ${u===g?"bg-accent text-white":"bg-bg-hover text-slate-400 hover:text-slate-200"}`,children:g==="all"?"All":g==="infra"?"Infra":"Online"},g))]}),f.jsxs("div",{className:"text-xs text-slate-500 ml-auto",children:[h.length," of ",e.length," nodes"]})]}),f.jsxs("div",{className:"overflow-x-auto",children:[f.jsxs("table",{className:"w-full text-sm",children:[f.jsx("thead",{children:f.jsxs("tr",{className:"bg-bg-hover text-slate-400 text-xs",children:[f.jsx("th",{className:"w-8 px-3 py-2"}),f.jsxs("th",{className:"px-3 py-2 text-left cursor-pointer hover:text-slate-200",onClick:()=>d("short_name"),children:["Name ",f.jsx(v,{field:"short_name"})]}),f.jsxs("th",{className:"px-3 py-2 text-left cursor-pointer hover:text-slate-200",onClick:()=>d("role"),children:["Role ",f.jsx(v,{field:"role"})]}),f.jsx("th",{className:"px-3 py-2 text-left",children:"Region"}),f.jsxs("th",{className:"px-3 py-2 text-left cursor-pointer hover:text-slate-200",onClick:()=>d("battery_level"),children:[f.jsx("span",{title:"Battery percent (4.20V = 100%, 3.60V ~ 30% warning, 3.30V ~ 3% critical). USB ⚡ = USB-powered (>100% or >4.1V); no battery management applies.",children:"Battery"})," ",f.jsx(v,{field:"battery_level"})]}),f.jsxs("th",{className:"px-3 py-2 text-left cursor-pointer hover:text-slate-200",onClick:()=>d("last_heard"),children:[f.jsx("span",{title:"Status dot: green = heard in the last hour; amber = within 24h; slate = offline (past the configured threshold). See Reference → Mesh Health for thresholds by node type.",children:"Last Heard"})," ",f.jsx(v,{field:"last_heard"})]}),f.jsxs("th",{className:"px-3 py-2 text-left cursor-pointer hover:text-slate-200",onClick:()=>d("hardware"),children:["Hardware ",f.jsx(v,{field:"hardware"})]})]})}),f.jsx("tbody",{className:"divide-y divide-border",children:h.slice(0,100).map(g=>{const m=FB.includes(g.role),y=g.node_num===t;return f.jsxs("tr",{onClick:()=>r(g.node_num),className:`cursor-pointer transition-colors ${y?"bg-accent/10":"hover:bg-bg-hover"}`,children:[f.jsx("td",{className:"px-3 py-2",children:f.jsx("div",{className:`w-2 h-2 rounded-full ${BSe(g.last_heard)}`})}),f.jsxs("td",{className:"px-3 py-2",children:[f.jsx("div",{className:"font-mono text-slate-200",children:g.short_name}),f.jsx("div",{className:"text-xs text-slate-500 truncate max-w-[200px]",children:g.long_name})]}),f.jsx("td",{className:"px-3 py-2",children:f.jsx("span",{className:`inline-block px-1.5 py-0.5 rounded text-xs font-medium ${m?"bg-cyan-500/20 text-accent":"bg-slate-500/20 text-slate-400"}`,children:g.role})}),f.jsx("td",{className:"px-3 py-2 text-slate-400",children:VB(g.latitude)}),f.jsx("td",{className:"px-3 py-2 font-mono text-slate-300",children:VSe(g)}),f.jsx("td",{className:"px-3 py-2 text-slate-400",children:FSe(g.last_heard)}),f.jsx("td",{className:"px-3 py-2 font-mono text-xs text-slate-400 truncate max-w-[150px]",children:g.hardware||"—"})]},g.node_num)})})]}),h.length>100&&f.jsxs("div",{className:"px-3 py-2 text-xs text-slate-500 text-center border-t border-border",children:["Showing first 100 of ",h.length," nodes"]}),h.length===0&&f.jsx("div",{className:"px-3 py-8 text-sm text-slate-500 text-center",children:"No nodes match your filters"})]})]})}function m$(){const[e,t]=O.useState([]),[r,n]=O.useState([]),[a,i]=O.useState([]),[o,s]=O.useState(null),[l,u]=O.useState("topo"),[c,h]=O.useState(!0),[d,v]=O.useState(null);O.useEffect(()=>{document.title="Mesh — MeshAI",Promise.all([yJ(),xJ(),AJ()]).then(([y,x,_])=>{t(y),n(x),i(_),h(!1)}).catch(y=>{v(y.message),h(!1)})},[]);const g=O.useMemo(()=>e.find(y=>y.node_num===o)||null,[e,o]),m=O.useCallback(y=>{s(y)},[]);return c?f.jsx("div",{className:"flex items-center justify-center h-64",children:f.jsx("div",{className:"text-slate-400",children:"Loading mesh data..."})}):d?f.jsx("div",{className:"flex items-center justify-center h-64",children:f.jsxs("div",{className:"text-red-400",children:["Error: ",d]})}):f.jsxs("div",{className:"space-y-6",children:[f.jsxs("div",{className:"flex items-center justify-between",children:[f.jsxs("div",{className:"text-sm text-slate-400",children:[e.length," nodes • ",r.length," edges"]}),f.jsxs("div",{className:"flex items-center bg-bg-card border border-border p-1",children:[f.jsxs("button",{onClick:()=>u("topo"),className:`flex items-center gap-2 px-3 py-1.5 rounded text-sm transition-colors ${l==="topo"?"bg-accent text-white":"text-slate-400 hover:text-slate-200"}`,children:[f.jsx(_k,{size:14}),f.jsx("span",{title:"Force-directed graph of nodes + neighbor links. Edge weight reflects SNR; node color reflects status (green = active, amber = stale, slate = offline).",children:"Topology"})]}),f.jsxs("button",{onClick:()=>u("geo"),className:`flex items-center gap-2 px-3 py-1.5 rounded text-sm transition-colors ${l==="geo"?"bg-accent text-white":"text-slate-400 hover:text-slate-200"}`,children:[f.jsx(kV,{size:14}),f.jsx("span",{title:"Nodes plotted by lat/lon on a basemap. Nodes without a reported position are clustered at the top edge.",children:"Geographic"})]})]})]}),f.jsxs("div",{className:"flex gap-0",children:[f.jsx("div",{className:"flex-1 min-w-0",children:l==="topo"?f.jsx(oSe,{nodes:e,edges:r,selectedNodeId:o,onSelectNode:m}):f.jsx(ISe,{nodes:e,edges:r,selectedNodeId:o,onSelectNode:m})}),f.jsx(zSe,{node:g,edges:r,nodes:e,onSelectNode:m})]}),f.jsx(GSe,{nodes:e,selectedNodeId:o,onSelectNode:m})]})}function Ep({envVar:e,label:t="API Key",helper:r="",info:n=""}){const[a,i]=O.useState(null),[o,s]=O.useState(""),[l,u]=O.useState(!1),[c,h]=O.useState(!1),[d,v]=O.useState(""),[g,m]=O.useState(""),y=async()=>{try{const w=await fetch("/api/secrets");if(w.ok){const C=(await w.json()).find(M=>M.env_var===e);i(C?C.is_set:!1)}}catch{i(!1)}};O.useEffect(()=>{y()},[e]);const x=async()=>{if(o.trim()){h(!0),m(""),v("");try{const w=await fetch("/api/secrets/"+encodeURIComponent(e),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({value:o})});if(w.ok)s(""),u(!1),v("Saved — restart required to take effect"),await y();else{const S=await w.text();m("Save failed: "+(S||String(w.status)))}}catch{m("Save failed: network error")}finally{h(!1)}}},_=a?"env set — enter a new value to change":"not set — enter a value";return f.jsxs("div",{className:"space-y-1",children:[f.jsxs("label",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:[t,a===null?f.jsx("span",{className:"text-xs px-2 py-0.5 rounded ml-2 bg-slate-800 text-slate-500",children:"Loading"}):a?f.jsx("span",{className:"text-xs px-2 py-0.5 rounded ml-2 bg-green-500/10 text-green-400",children:"Set"}):f.jsx("span",{className:"text-xs px-2 py-0.5 rounded ml-2 bg-slate-800 text-slate-500",children:"Not set"})]}),f.jsxs("div",{className:"flex gap-2",children:[f.jsxs("div",{className:"relative flex-1",children:[f.jsx("input",{type:l?"text":"password",value:o,onChange:w=>s(w.target.value),placeholder:_,className:"w-full px-3 py-2 bg-[#0a0e17] border border-[#1e2a3a] rounded text-sm text-slate-200 font-mono focus:outline-none focus:border-accent placeholder-slate-600"}),f.jsx("button",{type:"button",onClick:()=>u(!l),className:"absolute right-2 top-1/2 -translate-y-1/2 text-slate-500 hover:text-slate-300",children:l?f.jsx(yk,{size:16}):f.jsx(Cm,{size:16})})]}),f.jsx("button",{type:"button",onClick:x,disabled:!o.trim()||c,className:"flex items-center gap-1.5 px-4 py-1.5 text-sm bg-accent text-white rounded hover:bg-accent/80 disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:c?"Saving…":"Save"})]}),r&&f.jsx("p",{className:"text-xs text-slate-600",children:r}),f.jsx("p",{className:"text-xs text-slate-600 font-mono",children:e}),d&&f.jsx("p",{className:"text-xs text-yellow-400",children:d}),g&&f.jsx("p",{className:"text-xs text-red-400",children:g})]})}function kP({label:e,value:t,onChange:r,helper:n,info:a,roleFilter:i,valueType:o="short_name"}){const[s,l]=O.useState([]),[u,c]=O.useState(!0),[h,d]=O.useState(""),[v,g]=O.useState(!1);O.useEffect(()=>{fetch("/api/nodes").then(S=>S.json()).then(S=>{l(S),c(!1)}).catch(()=>{l([]),c(!1)})},[]);const m=O.useMemo(()=>{let S=s;if(i&&(S=S.filter(C=>i==="ROUTER"||i==="infrastructure"?C.is_infrastructure||C.role==="ROUTER"||C.role==="ROUTER_CLIENT"||C.role==="REPEATER":C.role===i)),h.trim()){const C=h.toLowerCase();S=S.filter(M=>{var A,I,k,P;return((A=M.short_name)==null?void 0:A.toLowerCase().includes(C))||((I=M.long_name)==null?void 0:I.toLowerCase().includes(C))||((k=M.role)==null?void 0:k.toLowerCase().includes(C))||((P=M.node_id_hex)==null?void 0:P.toLowerCase().includes(C))})}return S.sort((C,M)=>(C.short_name||"").localeCompare(M.short_name||""))},[s,h,i]),y=S=>{switch(o){case"node_num":return String(S.node_num);case"node_id_hex":return S.node_id_hex;default:return S.short_name||String(S.node_num)}},x=S=>{const C=y(S);return t.includes(C)},_=S=>{const C=y(S);t.includes(C)?r(t.filter(M=>M!==C)):r([...t,C])},w=S=>{const C=[S.short_name];return S.long_name&&S.long_name!==S.short_name&&C.push(`— ${S.long_name}`),S.role&&C.push(`(${S.role})`),C.join(" ")};return!u&&s.length===0?f.jsxs("div",{className:"space-y-1",children:[f.jsx("label",{className:"block text-xs text-slate-500 uppercase tracking-wide",children:e}),f.jsx("input",{type:"text",value:t.join(", "),onChange:S=>r(S.target.value.split(",").map(C=>C.trim()).filter(Boolean)),placeholder:"Enter node IDs separated by commas",className:"w-full px-3 py-2 bg-[#0a0e17] border border-[#1e2a3a] rounded text-sm text-slate-200 font-mono focus:outline-none focus:border-accent"}),n&&f.jsx("p",{className:"text-xs text-slate-600",children:n})]}):f.jsxs("div",{className:"space-y-1",children:[f.jsx("label",{className:"block text-xs text-slate-500 uppercase tracking-wide",children:e}),t.length>0&&f.jsx("div",{className:"flex flex-wrap gap-2 mb-2",children:t.map(S=>{const C=s.find(M=>y(M)===S);return f.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-1 bg-accent/20 text-accent rounded text-sm",children:[C?C.short_name:S,f.jsx("button",{type:"button",onClick:()=>r(t.filter(M=>M!==S)),className:"hover:text-white",children:f.jsx(tu,{size:14})})]},S)})}),f.jsxs("div",{className:"relative",children:[f.jsxs("div",{className:"relative",children:[f.jsx(p1,{size:14,className:"absolute left-3 top-1/2 -translate-y-1/2 text-slate-500"}),f.jsx("input",{type:"text",value:h,onChange:S=>d(S.target.value),onFocus:()=>g(!0),placeholder:u?"Loading nodes...":"Search nodes...",className:"w-full pl-9 pr-3 py-2 bg-[#0a0e17] border border-[#1e2a3a] rounded text-sm text-slate-200 focus:outline-none focus:border-accent"})]}),v&&!u&&f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"fixed inset-0 z-40",onClick:()=>g(!1)}),f.jsx("div",{className:"absolute left-0 right-0 top-full mt-1 z-50 max-h-64 overflow-y-auto bg-[#0a0e17] border border-[#1e2a3a] shadow-xl",children:m.length===0?f.jsx("div",{className:"p-3 text-sm text-slate-500 text-center",children:"No nodes found"}):m.map(S=>f.jsxs("button",{type:"button",onClick:()=>_(S),className:`w-full flex items-center gap-2 px-3 py-2 text-left text-sm hover:bg-[#1e2a3a] ${x(S)?"bg-accent/10":""}`,children:[f.jsx("div",{className:`w-4 h-4 rounded border flex items-center justify-center ${x(S)?"bg-accent border-accent":"border-slate-600"}`,children:x(S)&&f.jsx(Jr,{size:12,className:"text-white"})}),f.jsx("span",{className:"text-slate-200",children:w(S)})]},S.node_num))})]})]}),n&&f.jsx("p",{className:"text-xs text-slate-600",children:n})]})}function LP(e){const[t,r]=O.useState([]),[n,a]=O.useState(!0);O.useEffect(()=>{fetch("/api/channels").then(d=>d.json()).then(d=>{r(d),a(!1)}).catch(()=>{r([]),a(!1)})},[]);const i=d=>{const v=d.role==="PRIMARY"?"Primary":d.role==="SECONDARY"?"Secondary":"";return`${d.index}: ${d.name}${v?` (${v})`:""}`};if(!n&&t.length===0)return e.mode==="single"?f.jsxs("div",{className:"space-y-1",children:[f.jsx("label",{className:"block text-xs text-slate-500 uppercase tracking-wide",children:e.label}),f.jsx("input",{type:"number",value:e.value,onChange:d=>e.onChange(Number(d.target.value)),min:e.includeDisabled?-1:0,max:7,className:"w-full px-3 py-2 bg-[#0a0e17] border border-[#1e2a3a] rounded text-sm text-slate-200 font-mono focus:outline-none focus:border-accent"}),e.helper&&f.jsx("p",{className:"text-xs text-slate-600",children:e.helper})]}):f.jsxs("div",{className:"space-y-1",children:[f.jsx("label",{className:"block text-xs text-slate-500 uppercase tracking-wide",children:e.label}),f.jsx("input",{type:"text",value:e.value.join(", "),onChange:d=>{const v=d.target.value.split(",").map(g=>parseInt(g.trim())).filter(g=>!isNaN(g));e.onChange(v)},placeholder:"Enter channel numbers separated by commas",className:"w-full px-3 py-2 bg-[#0a0e17] border border-[#1e2a3a] rounded text-sm text-slate-200 font-mono focus:outline-none focus:border-accent"}),e.helper&&f.jsx("p",{className:"text-xs text-slate-600",children:e.helper})]});if(e.mode==="single"){const{value:d,onChange:v,label:g,helper:m,includeDisabled:y}=e,x=t.filter(_=>_.enabled);return f.jsxs("div",{className:"space-y-1",children:[f.jsx("label",{className:"block text-xs text-slate-500 uppercase tracking-wide",children:g}),f.jsxs("select",{value:d,onChange:_=>v(Number(_.target.value)),className:"w-full px-3 py-2 bg-[#0a0e17] border border-[#1e2a3a] rounded text-sm text-slate-200 focus:outline-none focus:border-accent",children:[y&&f.jsx("option",{value:-1,children:"Disabled"}),x.map(_=>f.jsx("option",{value:_.index,children:i(_)},_.index))]}),m&&f.jsx("p",{className:"text-xs text-slate-600",children:m})]})}const{value:o,onChange:s,label:l,helper:u}=e,c=t.filter(d=>d.enabled),h=d=>{o.includes(d)?s(o.filter(v=>v!==d)):s([...o,d].sort((v,g)=>v-g))};return f.jsxs("div",{className:"space-y-1",children:[f.jsx("label",{className:"block text-xs text-slate-500 uppercase tracking-wide",children:l}),f.jsxs("div",{className:"border border-[#1e2a3a] p-2 space-y-1",children:[c.map(d=>f.jsxs("label",{onClick:()=>h(d.index),className:"flex items-center gap-2 p-2 rounded hover:bg-[#0a0e17] cursor-pointer",children:[f.jsx("div",{className:`w-4 h-4 rounded border flex items-center justify-center ${o.includes(d.index)?"bg-accent border-accent":"border-slate-600"}`,children:o.includes(d.index)&&f.jsx(Jr,{size:12,className:"text-white"})}),f.jsx("span",{className:"text-sm text-slate-200",children:i(d)})]},d.index)),c.length===0&&f.jsx("div",{className:"text-sm text-slate-500 p-2",children:"No channels available"})]}),u&&f.jsx("p",{className:"text-xs text-slate-600",children:u})]})}function y$({value:e,onChange:t,label:r="Serial Port",helper:n="Device path for your USB radio — click Detect to auto-fill a stable by-id path"}){const[a,i]=O.useState(null),[o,s]=O.useState(""),[l,u]=O.useState(!1),[c,h]=O.useState(null),d=async()=>{u(!0),h(null);try{const v=await gJ();i(v.ports),s(v.note||"")}catch(v){h(v instanceof Error?v.message:"Failed to list serial ports"),i([])}finally{u(!1)}};return f.jsxs("div",{className:"space-y-2",children:[f.jsxs("div",{className:"space-y-1",children:[f.jsx("label",{className:"block text-xs text-slate-500 uppercase tracking-wide",children:r}),f.jsxs("div",{className:"flex gap-2",children:[f.jsx("input",{type:"text",value:e,onChange:v=>t(v.target.value),placeholder:"/dev/serial/by-id/usb-... (or /dev/ttyACM0)",className:"flex-1 px-3 py-2 bg-[#0a0e17] border border-[#1e2a3a] rounded text-sm text-slate-200 font-mono focus:outline-none focus:border-accent placeholder-slate-600"}),f.jsxs("button",{type:"button",onClick:d,disabled:l,className:"flex items-center gap-2 px-3 py-2 bg-[#0a0e17] border border-[#1e2a3a] hover:border-accent disabled:opacity-50 disabled:cursor-not-allowed rounded text-sm text-slate-300 whitespace-nowrap transition-colors",children:[f.jsx(zo,{size:14,className:l?"animate-spin":""}),l?"Detecting...":"Detect USB devices"]})]}),n&&f.jsx("p",{className:"text-xs text-slate-600",children:n})]}),c&&f.jsx("div",{className:"p-3 text-sm bg-red-500/10 text-red-400 border border-red-500/20",children:c}),a!==null&&!c&&(a.length===0?f.jsx("div",{className:"text-sm text-slate-500 p-3 border border-[#1e2a3a] rounded",children:"No USB serial devices found — is the device passed through to the container?"}):f.jsx("div",{className:"border border-[#1e2a3a] rounded p-2 space-y-1",children:a.map(v=>{const g=e===v.stable_path,m=v.product||v.description||v.device;return f.jsxs("button",{type:"button",onClick:()=>t(v.stable_path),className:`w-full text-left flex items-start gap-2 p-2 rounded hover:bg-[#0a0e17] transition-colors ${g?"bg-[#0a0e17] ring-1 ring-accent":""}`,children:[f.jsx("div",{className:`mt-0.5 w-4 h-4 rounded-full border flex items-center justify-center flex-shrink-0 ${g?"bg-accent border-accent":"border-slate-600"}`,children:g&&f.jsx(Jr,{size:12,className:"text-white"})}),f.jsxs("div",{className:"min-w-0 flex-1",children:[f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx("span",{className:"text-sm text-slate-200 truncate",children:m}),v.likely_radio&&f.jsxs("span",{className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-[10px] uppercase tracking-wide bg-accent/15 text-accent border border-accent/30 flex-shrink-0",children:[f.jsx(oi,{size:10})," likely radio"]})]}),f.jsx("div",{className:"text-xs text-slate-500 font-mono truncate",children:v.stable_path}),v.manufacturer&&f.jsx("div",{className:"text-xs text-slate-600 truncate",children:v.manufacturer})]})]},v.stable_path+v.device)})})),o&&f.jsx("p",{className:"text-xs text-slate-600 italic",children:o})]})}const YT=[{key:"bot",label:"Bot",icon:gk},{key:"response",label:"Response",icon:xk},{key:"history",label:"History",icon:TV},{key:"memory",label:"Memory",icon:oJ},{key:"context",label:"Context",icon:Cm},{key:"commands",label:"Commands",icon:EV},{key:"llm",label:"LLM",icon:CV},{key:"weather",label:"Weather",icon:ih},{key:"knowledge",label:"Knowledge",icon:bV},{key:"mesh_intelligence",label:"Intelligence",icon:Mo},{key:"dashboard",label:"Dashboard",icon:NV}],la={bot:"Identity and behavior settings for the bot on the mesh network.",connection:"How MeshAI connects to your Meshtastic radio.",response:"Controls how quickly and how much the bot responds on the mesh.",history:"Conversation history storage and cleanup.",memory:"Short-term conversation memory management. Controls how the bot maintains context within a conversation.",context:"Passive channel monitoring. The bot listens to mesh channels and uses recent messages as context when responding.",commands:"Mesh commands available via the configured prefix. Toggle individual commands on or off.",llm:"AI model configuration. MeshAI uses an LLM to understand questions and generate responses.",weather:"Weather data for the !weather command. This is separate from NWS environmental alerts.",meshmonitor:"AIDA MeshMonitor integration. An additional data source for mesh network monitoring.",knowledge:"Knowledge base for answering questions from stored documents. Connects to Qdrant vector database or local SQLite.",mesh_sources:"Data sources for mesh network information. MeshAI can pull data from multiple sources simultaneously and merge them into a unified view.",mesh_intelligence:"Advanced mesh analysis: health scoring, region management, and automated alerting. The intelligence engine monitors your mesh and detects problems automatically.",dashboard:"Web dashboard settings. You're looking at it right now."},HSe=[{name:"help",description:"Show available commands and usage"},{name:"health",description:"Mesh network health overview with status dots"},{name:"status",description:"Quick mesh status summary"},{name:"region",description:"List regions or get detailed region breakdown"},{name:"neighbors",description:"Show top infrastructure neighbors with signal quality"},{name:"ping",description:"Test bot responsiveness"},{name:"clear",description:"Clear your conversation history"},{name:"reset",description:"Reset conversation context"},{name:"alerts",description:"Active NWS weather alerts for mesh area"},{name:"solar",description:"Space weather and HF propagation conditions"},{name:"hf",description:"HF radio propagation (alias for !solar)"},{name:"fire",description:"Active wildfires near the mesh"},{name:"avy",description:"Avalanche advisories for configured zones"},{name:"hotspots",description:"NASA FIRMS satellite fire detections"},{name:"streams",description:"USGS stream gauge readings"},{name:"roads",description:"Road conditions and closures"},{name:"traffic",description:"Traffic flow on monitored corridors"}],USe=[{value:"US-AL",label:"Alabama"},{value:"US-AK",label:"Alaska"},{value:"US-AZ",label:"Arizona"},{value:"US-AR",label:"Arkansas"},{value:"US-CA",label:"California"},{value:"US-CO",label:"Colorado"},{value:"US-CT",label:"Connecticut"},{value:"US-DE",label:"Delaware"},{value:"US-FL",label:"Florida"},{value:"US-GA",label:"Georgia"},{value:"US-HI",label:"Hawaii"},{value:"US-ID",label:"Idaho"},{value:"US-IL",label:"Illinois"},{value:"US-IN",label:"Indiana"},{value:"US-IA",label:"Iowa"},{value:"US-KS",label:"Kansas"},{value:"US-KY",label:"Kentucky"},{value:"US-LA",label:"Louisiana"},{value:"US-ME",label:"Maine"},{value:"US-MD",label:"Maryland"},{value:"US-MA",label:"Massachusetts"},{value:"US-MI",label:"Michigan"},{value:"US-MN",label:"Minnesota"},{value:"US-MS",label:"Mississippi"},{value:"US-MO",label:"Missouri"},{value:"US-MT",label:"Montana"},{value:"US-NE",label:"Nebraska"},{value:"US-NV",label:"Nevada"},{value:"US-NH",label:"New Hampshire"},{value:"US-NJ",label:"New Jersey"},{value:"US-NM",label:"New Mexico"},{value:"US-NY",label:"New York"},{value:"US-NC",label:"North Carolina"},{value:"US-ND",label:"North Dakota"},{value:"US-OH",label:"Ohio"},{value:"US-OK",label:"Oklahoma"},{value:"US-OR",label:"Oregon"},{value:"US-PA",label:"Pennsylvania"},{value:"US-RI",label:"Rhode Island"},{value:"US-SC",label:"South Carolina"},{value:"US-SD",label:"South Dakota"},{value:"US-TN",label:"Tennessee"},{value:"US-TX",label:"Texas"},{value:"US-UT",label:"Utah"},{value:"US-VT",label:"Vermont"},{value:"US-VA",label:"Virginia"},{value:"US-WA",label:"Washington"},{value:"US-WV",label:"West Virginia"},{value:"US-WI",label:"Wisconsin"},{value:"US-WY",label:"Wyoming"}];function Ei({info:e,link:t,linkText:r="Learn more"}){const[n,a]=O.useState(!1),i=O.useRef(null);return O.useEffect(()=>{if(!n)return;function o(l){i.current&&!i.current.contains(l.target)&&a(!1)}const s=setTimeout(()=>document.addEventListener("mousedown",o),0);return()=>{clearTimeout(s),document.removeEventListener("mousedown",o)}},[n]),f.jsxs("div",{className:"relative inline-block",ref:i,children:[f.jsx("button",{type:"button",onClick:o=>{o.stopPropagation(),a(!n)},className:"ml-1.5 w-4 h-4 rounded-full bg-slate-700 hover:bg-slate-600 text-slate-400 hover:text-slate-200 inline-flex items-center justify-center text-xs transition-colors",title:"More info",children:"?"}),n&&f.jsxs("div",{className:"absolute left-0 top-6 z-50 w-72 p-3 bg-[#1a2332] border border-[#2a3a4a] shadow-xl text-xs text-slate-300 leading-relaxed",children:[f.jsx("button",{type:"button",onClick:()=>a(!1),className:"absolute top-1 right-1 w-5 h-5 rounded hover:bg-slate-700 text-slate-500 hover:text-slate-300 inline-flex items-center justify-center transition-colors","aria-label":"Close",children:f.jsx(tu,{size:12})}),f.jsx("div",{className:"pr-4",children:e}),t&&f.jsxs("a",{href:t,target:"_blank",rel:"noopener noreferrer",className:"mt-2 flex items-center gap-1 text-accent hover:underline",onClick:o=>o.stopPropagation(),children:[r," ",f.jsx(kc,{size:10})]})]})]})}function ua({text:e}){return f.jsx("p",{className:"text-sm text-slate-500 mb-6 pb-4 border-b border-[#1e2a3a]",children:e})}function it({label:e,value:t,onChange:r,type:n="text",placeholder:a="",helper:i="",info:o="",infoLink:s=""}){const[l,u]=O.useState(!1),c=n==="password";return f.jsxs("div",{className:"space-y-1",children:[f.jsxs("label",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:[e,o&&f.jsx(Ei,{info:o,link:s})]}),f.jsxs("div",{className:"relative",children:[f.jsx("input",{type:c&&!l?"password":"text",value:t,onChange:h=>r(h.target.value),placeholder:a,className:"w-full px-3 py-2 bg-[#0a0e17] border border-[#1e2a3a] rounded text-sm text-slate-200 font-mono focus:outline-none focus:border-accent placeholder-slate-600"}),c&&f.jsx("button",{type:"button",onClick:()=>u(!l),className:"absolute right-2 top-1/2 -translate-y-1/2 text-slate-500 hover:text-slate-300",children:l?f.jsx(yk,{size:16}):f.jsx(Cm,{size:16})})]}),i&&f.jsx("p",{className:"text-xs text-slate-600",children:i})]})}function Se({label:e,value:t,onChange:r,min:n,max:a,step:i=1,helper:o="",info:s="",infoLink:l=""}){return f.jsxs("div",{className:"space-y-1",children:[f.jsxs("label",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:[e,s&&f.jsx(Ei,{info:s,link:l})]}),f.jsx("input",{type:"number",value:t,onChange:u=>r(Number(u.target.value)),min:n,max:a,step:i,className:"w-full px-3 py-2 bg-[#0a0e17] border border-[#1e2a3a] rounded text-sm text-slate-200 font-mono focus:outline-none focus:border-accent"}),o&&f.jsx("p",{className:"text-xs text-slate-600",children:o})]})}function Bt({label:e,checked:t,onChange:r,helper:n="",info:a="",infoLink:i=""}){return f.jsxs("div",{className:"flex items-center justify-between py-2",children:[f.jsxs("div",{children:[f.jsxs("span",{className:"flex items-center text-sm text-slate-300",children:[e,a&&f.jsx(Ei,{info:a,link:i})]}),n&&f.jsx("p",{className:"text-xs text-slate-600",children:n})]}),f.jsx("button",{type:"button",onClick:()=>r(!t),className:`relative w-11 h-6 rounded-full transition-colors ${t?"bg-accent":"bg-[#1e2a3a]"}`,children:f.jsx("span",{className:`absolute top-1 left-1 w-4 h-4 rounded-full bg-white transition-transform ${t?"translate-x-5":""}`})})]})}function on({label:e,value:t,onChange:r,options:n,helper:a="",info:i="",infoLink:o=""}){return f.jsxs("div",{className:"space-y-1",children:[f.jsxs("label",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:[e,i&&f.jsx(Ei,{info:i,link:o})]}),f.jsx("select",{value:t,onChange:s=>r(s.target.value),className:"w-full px-3 py-2 bg-[#0a0e17] border border-[#1e2a3a] rounded text-sm text-slate-200 focus:outline-none focus:border-accent",children:n.map(s=>f.jsx("option",{value:s.value,children:s.label},s.value))}),a&&f.jsx("p",{className:"text-xs text-slate-600",children:a})]})}function WSe({label:e,value:t,onChange:r,rows:n=4,helper:a="",info:i="",infoLink:o=""}){return f.jsxs("div",{className:"space-y-1",children:[f.jsxs("label",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:[e,i&&f.jsx(Ei,{info:i,link:o})]}),f.jsx("textarea",{value:t,onChange:s=>r(s.target.value),rows:n,className:"w-full px-3 py-2 bg-[#0a0e17] border border-[#1e2a3a] rounded text-sm text-slate-200 font-mono focus:outline-none focus:border-accent resize-y"}),a&&f.jsx("p",{className:"text-xs text-slate-600",children:a})]})}function En({label:e,value:t,onChange:r,helper:n="",info:a="",infoLink:i=""}){const[o,s]=O.useState(t.join(", "));O.useEffect(()=>{s(t.join(", "))},[t]);const l=()=>{const u=o.split(",").map(c=>c.trim()).filter(Boolean);r(u)};return f.jsxs("div",{className:"space-y-1",children:[f.jsxs("label",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:[e,a&&f.jsx(Ei,{info:a,link:i})]}),f.jsx("input",{type:"text",value:o,onChange:u=>s(u.target.value),onBlur:l,placeholder:"item1, item2, item3",className:"w-full px-3 py-2 bg-[#0a0e17] border border-[#1e2a3a] rounded text-sm text-slate-200 font-mono focus:outline-none focus:border-accent placeholder-slate-600"}),n&&f.jsx("p",{className:"text-xs text-slate-600",children:n})]})}function XT({label:e,value:t,onChange:r,helper:n="",info:a="",infoLink:i=""}){const[o,s]=O.useState(t.join(", "));O.useEffect(()=>{s(t.join(", "))},[t]);const l=()=>{const u=o.split(",").map(c=>parseInt(c.trim(),10)).filter(c=>!isNaN(c));r(u)};return f.jsxs("div",{className:"space-y-1",children:[f.jsxs("label",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:[e,a&&f.jsx(Ei,{info:a,link:i})]}),f.jsx("input",{type:"text",value:o,onChange:u=>s(u.target.value),onBlur:l,placeholder:"0, 1, 2",className:"w-full px-3 py-2 bg-[#0a0e17] border border-[#1e2a3a] rounded text-sm text-slate-200 font-mono focus:outline-none focus:border-accent placeholder-slate-600"}),n&&f.jsx("p",{className:"text-xs text-slate-600",children:n})]})}function wn({label:e,description:t,checked:r,onChange:n,threshold:a,onThresholdChange:i,thresholdLabel:o,thresholdMin:s,thresholdMax:l,thresholdStep:u=1,thresholdSuffix:c=""}){return f.jsxs("div",{className:"border border-[#1e2a3a] p-3 space-y-2",children:[f.jsxs("div",{className:"flex items-center justify-between",children:[f.jsxs("div",{className:"flex-1",children:[f.jsx("span",{className:"text-sm text-slate-300",children:e}),f.jsx("p",{className:"text-xs text-slate-600",children:t})]}),f.jsx("button",{type:"button",onClick:()=>n(!r),className:`relative w-11 h-6 rounded-full transition-colors flex-shrink-0 ml-3 ${r?"bg-accent":"bg-[#1e2a3a]"}`,children:f.jsx("span",{className:`absolute top-1 left-1 w-4 h-4 rounded-full bg-white transition-transform ${r?"translate-x-5":""}`})})]}),r&&a!==void 0&&i&&f.jsxs("div",{className:"flex items-center gap-2 pt-2 border-t border-[#1e2a3a]",children:[f.jsxs("span",{className:"text-xs text-slate-500",children:[o||"Threshold",":"]}),f.jsx("input",{type:"number",value:a,onChange:h=>i(Number(h.target.value)),min:s,max:l,step:u,className:"w-20 px-2 py-1 bg-[#0a0e17] border border-[#1e2a3a] rounded text-xs text-slate-200 font-mono"}),c&&f.jsx("span",{className:"text-xs text-slate-500",children:c})]})]})}function ZSe({data:e,onChange:t}){return f.jsxs("div",{className:"space-y-4",children:[f.jsx(ua,{text:la.bot}),f.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[f.jsx(it,{label:"Bot Name",value:e.name,onChange:r=>t({...e,name:r}),helper:"Name the bot responds to on the mesh",info:"When someone sends a message containing this name, the bot will respond. Also used as the sender name in broadcasts. Changing this requires a restart."}),f.jsx(it,{label:"Owner",value:e.owner,onChange:r=>t({...e,owner:r}),helper:"Your callsign or identifier",info:"Identifies the bot operator. Shown in !help responses and used for admin-level commands."}),f.jsx(it,{label:"Contact Email",value:e.contact_email||"",onChange:r=>t({...e,contact_email:r}),helper:"Used to synthesize the NWS User-Agent",info:"An email address identifying the operator; sent as the User-Agent when fetching NWS weather data (NWS requires a contact). Stored in local.yaml."})]}),f.jsx(Bt,{label:"Respond to DMs",checked:e.respond_to_dms,onChange:r=>t({...e,respond_to_dms:r}),helper:"Reply when someone sends a direct message",info:"When enabled, the bot responds to direct messages from any node. When disabled, the bot only responds to channel messages that mention its name."}),f.jsx(Bt,{label:"Filter BBS Protocols",checked:e.filter_bbs_protocols,onChange:r=>t({...e,filter_bbs_protocols:r}),helper:"Ignore BBS bulletin board traffic",info:"Filters out automated BBS protocol messages (advBBS, MAIL*, BOARD*) so the bot doesn't try to respond to machine-to-machine traffic."})]})}function $Se({data:e,onChange:t}){return f.jsxs("div",{className:"space-y-4",children:[f.jsx(ua,{text:la.connection}),f.jsx(on,{label:"Connection Type",value:e.type,onChange:r=>t({...e,type:r}),options:[{value:"serial",label:"Serial (USB)"},{value:"tcp",label:"TCP (Network)"}],helper:"Serial for USB-connected radios, TCP for network or meshtasticd",info:"Serial: direct USB connection to a Meshtastic radio. TCP: connect over the network to a radio's IP or to meshtasticd running on another machine."}),e.type==="serial"?f.jsx(y$,{label:"Serial Port",value:e.serial_port,onChange:r=>t({...e,serial_port:r}),helper:"Device path for your USB radio — Detect fills a stable by-id path"}):f.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[f.jsx(it,{label:"TCP Host",value:e.tcp_host,onChange:r=>t({...e,tcp_host:r}),placeholder:"192.168.1.100",helper:"IP address or hostname of the radio/meshtasticd"}),f.jsx(Se,{label:"TCP Port",value:e.tcp_port,onChange:r=>t({...e,tcp_port:r}),min:1,max:65535,helper:"Default 4403 for meshtasticd"})]}),f.jsx("div",{className:"pt-2",children:f.jsx(Vf,{to:"/meshcore/connection",className:"inline-flex items-center gap-1 text-xs text-slate-500 hover:text-accent transition-colors",children:"→ MeshCore connection"})})]})}function YSe({data:e,onChange:t}){return f.jsxs("div",{className:"space-y-4",children:[f.jsx(ua,{text:la.response}),f.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[f.jsx(Se,{label:"Delay Min (sec)",value:e.delay_min,onChange:r=>t({...e,delay_min:r}),min:0,step:.1,helper:"Minimum wait before responding",info:"Adds a random delay between min and max before the bot sends a response. Prevents the bot from appearing to respond instantly, which can feel unnatural on a radio network."}),f.jsx(Se,{label:"Delay Max (sec)",value:e.delay_max,onChange:r=>t({...e,delay_max:r}),min:0,step:.1,helper:"Maximum wait before responding",info:"Also prevents collisions with other traffic by staggering transmissions."})]}),f.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[f.jsx(Se,{label:"Max Length",value:e.max_length,onChange:r=>t({...e,max_length:r}),min:50,max:500,helper:"Maximum characters per response message",info:"Meshtastic packets have limited size. This caps how long each message chunk can be. The bot will split longer responses into multiple messages up to Max Messages."}),f.jsx(Se,{label:"Max Messages",value:e.max_messages,onChange:r=>t({...e,max_messages:r}),min:1,max:10,helper:"Maximum chunks per response",info:"If a response is longer than Max Length, the bot splits it into this many chunks at most. Higher values = more complete answers but more airtime used."})]})]})}function XSe({data:e,onChange:t}){return f.jsxs("div",{className:"space-y-4",children:[f.jsx(ua,{text:la.history}),f.jsx(it,{label:"Database Path",value:e.database,onChange:r=>t({...e,database:r}),helper:"SQLite file for storing conversation history",info:"Path to the SQLite database file. Created automatically if it doesn't exist. Stores all conversation history for context."}),f.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[f.jsx(Se,{label:"Max Messages Per User",value:e.max_messages_per_user,onChange:r=>t({...e,max_messages_per_user:r}),min:0,helper:"History limit per user (0 = unlimited)",info:"Limits how many messages are stored per user. Older messages are pruned when the limit is reached. Set to 0 for no limit."}),f.jsx(Se,{label:"Conversation Timeout (sec)",value:e.conversation_timeout,onChange:r=>t({...e,conversation_timeout:r}),min:0,helper:"Seconds before context resets",info:"If a user doesn't message for this long, their next message starts a new conversation context. The bot won't remember the previous topic."})]}),f.jsx(Bt,{label:"Auto Cleanup",checked:e.auto_cleanup,onChange:r=>t({...e,auto_cleanup:r}),helper:"Automatically prune old conversations"}),e.auto_cleanup&&f.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[f.jsx(Se,{label:"Cleanup Interval (hours)",value:e.cleanup_interval_hours,onChange:r=>t({...e,cleanup_interval_hours:r}),min:1,helper:"Hours between cleanup runs"}),f.jsx(Se,{label:"Max Age (days)",value:e.max_age_days,onChange:r=>t({...e,max_age_days:r}),min:1,helper:"Delete conversations older than this"})]})]})}function qSe({data:e,onChange:t}){return f.jsxs("div",{className:"space-y-4",children:[f.jsx(ua,{text:la.memory}),f.jsx(Bt,{label:"Enable Memory",checked:e.enabled,onChange:r=>t({...e,enabled:r}),helper:"Keep conversation context between messages"}),e.enabled&&f.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[f.jsx(Se,{label:"Window Size",value:e.window_size,onChange:r=>t({...e,window_size:r}),min:1,helper:"Recent message pairs kept in full",info:"The bot keeps this many recent exchanges (user message + bot response pairs) as full text in context. Older messages are summarized to save token space."}),f.jsx(Se,{label:"Summarize Threshold",value:e.summarize_threshold,onChange:r=>t({...e,summarize_threshold:r}),min:1,helper:"Messages before older context is summarized",info:"When the conversation exceeds this many messages, older ones outside the window are compressed into a summary by the LLM."})]})]})}function KSe({data:e,onChange:t}){return f.jsxs("div",{className:"space-y-4",children:[f.jsx(ua,{text:la.context}),f.jsx(Bt,{label:"Enable Passive Context",checked:e.enabled,onChange:r=>t({...e,enabled:r}),helper:"Listen to channel traffic for context",info:"When enabled, the bot monitors mesh channels and includes recent messages in its context. This lets the bot reference things other people said on the channel."}),e.enabled&&f.jsx(f.Fragment,{children:f.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[f.jsx(Se,{label:"Chat context retention (days)",value:Math.round((e.max_age??1209600)/86400),onChange:r=>t({...e,max_age:r*86400}),min:1,helper:"How long the bot remembers recent channel chat for context (applies to both meshes). Default 14 days."}),f.jsx(Se,{label:"Max Context Items",value:e.max_context_items,onChange:r=>t({...e,max_context_items:r}),min:1,helper:"Maximum recent messages to include"})]})})]})}function JSe({data:e,onChange:t}){const r=new Set(e.disabled_commands.map(s=>s.toLowerCase())),[n,a]=O.useState(()=>Object.entries(e.custom_commands||{}));O.useEffect(()=>{const s={};for(const[l,u]of n)l.trim()&&(s[l.trim()]=u);JSON.stringify(s)!==JSON.stringify(e.custom_commands||{})&&a(Object.entries(e.custom_commands||{}))},[e.custom_commands]);const i=s=>{a(s);const l={};for(const[u,c]of s)u.trim()&&(l[u.trim()]=c);t({...e,custom_commands:l})},o=s=>{const l=s.toLowerCase();r.has(l)?t({...e,disabled_commands:e.disabled_commands.filter(u=>u.toLowerCase()!==l)}):t({...e,disabled_commands:[...e.disabled_commands,s]})};return f.jsxs("div",{className:"space-y-4",children:[f.jsx(ua,{text:la.commands}),f.jsx(Bt,{label:"Enable Commands",checked:e.enabled,onChange:s=>t({...e,enabled:s}),helper:"Allow !commands on the mesh"}),e.enabled&&f.jsxs(f.Fragment,{children:[f.jsx(it,{label:"Command Prefix",value:e.prefix,onChange:s=>t({...e,prefix:s}),helper:"Character that triggers commands (e.g. ! for !help)",info:"Users type this character followed by the command name. Only single characters recommended."}),f.jsxs("div",{className:"space-y-2",children:[f.jsxs("label",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:["Available Commands",f.jsx(Ei,{info:"Toggle commands on or off. Disabled commands won't respond when users invoke them."})]}),f.jsx("div",{className:"grid gap-1",children:HSe.map(s=>{const l=!r.has(s.name.toLowerCase());return f.jsxs("div",{className:"flex items-center justify-between p-2 bg-[#0a0e17] border border-[#1e2a3a] rounded hover:border-[#2a3a4a] transition-colors",children:[f.jsxs("div",{className:"flex items-center gap-3",children:[f.jsxs("code",{className:"text-accent text-sm",children:["!",s.name]}),f.jsx("span",{className:"text-xs text-slate-500",children:s.description})]}),f.jsx("button",{type:"button",onClick:()=>o(s.name),className:`relative w-9 h-5 rounded-full transition-colors ${l?"bg-accent":"bg-[#1e2a3a]"}`,children:f.jsx("span",{className:`absolute top-0.5 left-0.5 w-4 h-4 rounded-full bg-white transition-transform ${l?"translate-x-4":""}`})})]},s.name)})})]}),f.jsxs("div",{className:"space-y-2",children:[f.jsxs("label",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:["Custom Commands",f.jsx(Ei,{info:"Define your own commands. When a user types the prefix followed by the name, the bot replies with the response text verbatim."})]}),n.map(([s,l],u)=>f.jsxs("div",{className:"flex items-start gap-2",children:[f.jsx("input",{type:"text",value:s,onChange:c=>{const h=n.map((d,v)=>v===u?[c.target.value,d[1]]:d);i(h)},placeholder:"name",className:"w-40 flex-shrink-0 px-3 py-2 bg-[#0a0e17] border border-[#1e2a3a] rounded text-sm text-slate-200 font-mono focus:outline-none focus:border-accent placeholder-slate-600"}),f.jsx("input",{type:"text",value:l,onChange:c=>{const h=n.map((d,v)=>v===u?[d[0],c.target.value]:d);i(h)},placeholder:"response text",className:"flex-1 px-3 py-2 bg-[#0a0e17] border border-[#1e2a3a] rounded text-sm text-slate-200 focus:outline-none focus:border-accent placeholder-slate-600"}),f.jsx("button",{type:"button",onClick:()=>i(n.filter((c,h)=>h!==u)),className:"p-2 text-red-400 hover:text-red-300 hover:bg-red-500/10 rounded flex-shrink-0","aria-label":"Remove custom command",children:f.jsx(po,{size:14})})]},u)),f.jsxs("button",{type:"button",onClick:()=>i([...n,["",""]]),className:"w-full py-2 border border-dashed border-[#1e2a3a] text-slate-500 hover:text-slate-300 hover:border-accent flex items-center justify-center gap-2 transition-colors",children:[f.jsx(Ti,{size:16})," Add Custom Command"]})]})]})]})}function QSe({data:e,onChange:t}){const r={openai:"OPENAI_API_KEY",anthropic:"ANTHROPIC_API_KEY",google:"GOOGLE_API_KEY"}[(e.backend||"").toLowerCase()]||"LLM_API_KEY";return f.jsxs("div",{className:"space-y-4",children:[f.jsx(ua,{text:la.llm}),f.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[f.jsx(on,{label:"Backend",value:e.backend,onChange:n=>t({...e,backend:n}),options:[{value:"openai",label:"OpenAI"},{value:"anthropic",label:"Anthropic"},{value:"google",label:"Google (Gemini)"}],helper:"LLM provider to use",info:"OpenAI: GPT models (gpt-4o, gpt-4o-mini). Anthropic: Claude models (claude-sonnet-4-20250514). Google: Gemini models. Can also point to compatible APIs like Ollama, LM Studio, or Open WebUI by changing the Base URL."}),f.jsx(it,{label:"Model",value:e.model,onChange:n=>t({...e,model:n}),placeholder:"gpt-4o-mini",helper:"Specific model name",info:"The specific model to use. Common choices: gpt-4o-mini (fast, cheap), gpt-4o (better, costs more), claude-sonnet-4-20250514 (Anthropic equivalent). For local models via Ollama, use the model name you pulled (e.g. llama3.1)."})]}),f.jsx(Ep,{envVar:r,label:"API Key",helper:"Secret stored in /data/secrets/.env; config holds the ${VAR} ref"}),f.jsx(it,{label:"Base URL",value:e.base_url,onChange:n=>t({...e,base_url:n}),placeholder:"https://api.openai.com/v1",helper:"API endpoint (change for local LLMs)",info:"Default API endpoint for the selected backend. Change this to point to a local LLM server (Ollama at http://localhost:11434/v1, Open WebUI, LM Studio, etc.) or a proxy."}),f.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[f.jsx(Se,{label:"Timeout (sec)",value:e.timeout,onChange:n=>t({...e,timeout:n}),min:5,max:120,helper:"Maximum seconds to wait for response"}),f.jsx(Se,{label:"Max Response Tokens",value:e.max_response_tokens,onChange:n=>t({...e,max_response_tokens:n}),min:100,helper:"Token limit for LLM responses"})]}),f.jsx(Bt,{label:"Use System Prompt",checked:e.use_system_prompt,onChange:n=>t({...e,use_system_prompt:n}),helper:"Enable custom system instructions"}),e.use_system_prompt&&f.jsx(WSe,{label:"System Prompt",value:e.system_prompt,onChange:n=>t({...e,system_prompt:n}),rows:6,helper:"Instructions that shape the bot's personality",info:"Instructions that shape the bot's personality and behavior. The bot always follows these instructions. MeshAI adds mesh health data and environmental context automatically — you don't need to include those here."}),f.jsx(Bt,{label:"Web Search",checked:e.web_search,onChange:n=>t({...e,web_search:n}),helper:"Enable web search tool (Open WebUI feature)"}),f.jsx(Bt,{label:"Google Grounding",checked:e.google_grounding,onChange:n=>t({...e,google_grounding:n}),helper:"Ground responses in web search (Gemini only)"})]})}function eCe({data:e,onChange:t}){return f.jsxs("div",{className:"space-y-4",children:[f.jsx(ua,{text:la.weather}),f.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[f.jsx(on,{label:"Primary Provider",value:e.primary,onChange:r=>t({...e,primary:r}),options:[{value:"openmeteo",label:"Open-Meteo"},{value:"wttr",label:"wttr.in"},{value:"llm",label:"LLM"}],helper:"Main weather data source"}),f.jsx(on,{label:"Fallback Provider",value:e.fallback,onChange:r=>t({...e,fallback:r}),options:[{value:"openmeteo",label:"Open-Meteo"},{value:"wttr",label:"wttr.in"},{value:"llm",label:"LLM"},{value:"none",label:"None"}],helper:"Backup if primary fails"})]}),f.jsx(it,{label:"Default Location",value:e.default_location,onChange:r=>t({...e,default_location:r}),placeholder:"Your city, state",helper:"Location when none specified"}),f.jsx(it,{label:"Open-Meteo base URL (advanced)",value:e.openmeteo.url,onChange:r=>t({...e,openmeteo:{...e.openmeteo,url:r}}),placeholder:"https://api.open-meteo.com/v1",helper:"Override the Open-Meteo API endpoint (leave default unless self-hosting)"}),f.jsx(it,{label:"wttr.in base URL (advanced)",value:e.wttr.url,onChange:r=>t({...e,wttr:{...e.wttr,url:r}}),placeholder:"https://wttr.in",helper:"Override the wttr.in endpoint (leave default unless self-hosting)"})]})}function tCe({data:e,onChange:t}){return f.jsxs("div",{className:"space-y-4",children:[f.jsx(ua,{text:la.meshmonitor}),f.jsx(Bt,{label:"Enable MeshMonitor",checked:e.enabled,onChange:r=>t({...e,enabled:r}),helper:"Connect to AIDA MeshMonitor instance",info:"MeshMonitor by Yeraze provides node data, battery info, telemetry, and auto-responder patterns. MeshAI uses this as a data source and avoids duplicate responses."}),e.enabled&&f.jsxs(f.Fragment,{children:[f.jsx(it,{label:"URL",value:e.url,onChange:r=>t({...e,url:r}),placeholder:"http://192.168.1.100:8080",helper:"MeshMonitor API endpoint",info:"Full URL to your MeshMonitor instance. Usually runs on port 8080."}),f.jsx(Bt,{label:"Inject Into Prompt",checked:e.inject_into_prompt,onChange:r=>t({...e,inject_into_prompt:r}),helper:"Tell LLM about MeshMonitor commands",info:"Adds MeshMonitor's auto-responder patterns to the LLM context so it knows what commands MeshMonitor handles."}),f.jsx(Se,{label:"Refresh Interval (sec)",value:e.refresh_interval,onChange:r=>t({...e,refresh_interval:r}),min:10,helper:"How often to fetch patterns"}),f.jsx(Bt,{label:"Polite Mode",checked:e.polite_mode,onChange:r=>t({...e,polite_mode:r}),helper:"Reduce polling frequency",info:"Reduces polling frequency for shared instances to be a good neighbor."})]})]})}function rCe({data:e,onChange:t}){return f.jsxs("div",{className:"space-y-4",children:[f.jsx(ua,{text:la.knowledge}),f.jsx(Bt,{label:"Enable Knowledge Base",checked:e.enabled,onChange:r=>t({...e,enabled:r}),helper:"Answer questions from stored documents",info:"Uses RAG (Retrieval-Augmented Generation) to answer questions from a knowledge base. Supports Qdrant vector database or local SQLite with FTS5."}),e.enabled&&f.jsxs(f.Fragment,{children:[f.jsx(on,{label:"Backend",value:e.backend,onChange:r=>t({...e,backend:r}),options:[{value:"auto",label:"Auto (Qdrant -> SQLite)"},{value:"qdrant",label:"Qdrant"},{value:"sqlite",label:"SQLite"}],helper:"Knowledge storage backend",info:"Auto tries Qdrant first, falls back to SQLite. Qdrant provides hybrid search with dense+sparse embeddings. SQLite uses FTS5 keyword search."}),(e.backend==="qdrant"||e.backend==="auto")&&f.jsxs(f.Fragment,{children:[f.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[f.jsx(it,{label:"Qdrant Host",value:e.qdrant_host,onChange:r=>t({...e,qdrant_host:r}),helper:"Qdrant server hostname",info:"IP or hostname of your Qdrant vector database server."}),f.jsx(Se,{label:"Qdrant Port",value:e.qdrant_port,onChange:r=>t({...e,qdrant_port:r}),helper:"Default 6333"})]}),f.jsx(it,{label:"Collection",value:e.qdrant_collection,onChange:r=>t({...e,qdrant_collection:r}),helper:"Qdrant collection name"}),f.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[f.jsx(it,{label:"TEI Host",value:e.tei_host,onChange:r=>t({...e,tei_host:r}),helper:"Text Embeddings Inference host",info:"TEI service for generating dense embeddings. Uses BAAI/bge-m3 model."}),f.jsx(Se,{label:"TEI Port",value:e.tei_port,onChange:r=>t({...e,tei_port:r}),helper:"Default 8090"})]}),f.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[f.jsx(it,{label:"Sparse Host",value:e.sparse_host,onChange:r=>t({...e,sparse_host:r}),placeholder:"localhost",helper:"SPLADE sparse-embedding service host",info:"Host of the SPLADE service that generates sparse (keyword-weighted) embeddings for hybrid search."}),f.jsx(Se,{label:"Sparse Port",value:e.sparse_port,onChange:r=>t({...e,sparse_port:r}),helper:"Default 8091"})]}),f.jsx(Bt,{label:"Use Sparse Embeddings",checked:e.use_sparse,onChange:r=>t({...e,use_sparse:r}),helper:"Enable hybrid search with sparse vectors",info:"Combines dense embeddings with sparse (keyword-based) embeddings using Reciprocal Rank Fusion for better search results."})]}),f.jsx(it,{label:"SQLite DB Path",value:e.db_path,onChange:r=>t({...e,db_path:r}),helper:"Local knowledge database file"}),f.jsx(Se,{label:"Top K Results",value:e.top_k,onChange:r=>t({...e,top_k:r}),min:1,max:20,helper:"Number of documents to retrieve"})]})]})}function nCe({source:e,onChange:t,onDelete:r}){const[n,a]=O.useState(!1),i={meshview:"Web-based mesh monitoring tool. Enter the full URL of a MeshView instance. No API key typically required.",meshmonitor:"AIDA MeshMonitor API. Provides node data and network statistics. Requires API token.",mqtt:"Subscribe directly to a Meshtastic MQTT broker for real-time packet data. This is push-based (instant) vs the polling approach of MeshView/MeshMonitor."};return f.jsxs("div",{className:"border border-[#1e2a3a] overflow-hidden",children:[f.jsxs("div",{className:"flex items-center justify-between p-3 bg-[#0a0e17] cursor-pointer",onClick:()=>a(!n),children:[f.jsxs("div",{className:"flex items-center gap-3",children:[n?f.jsx(Sm,{size:16}):f.jsx(nh,{size:16}),f.jsx("div",{className:`w-2 h-2 rounded-full ${e.enabled?"bg-green-500":"bg-slate-500"}`}),f.jsx("span",{className:"font-mono text-sm text-slate-200",children:e.name||"Unnamed Source"}),f.jsx("span",{className:"text-xs text-slate-500 bg-[#1e2a3a] px-2 py-0.5 rounded",children:e.type})]}),f.jsx("button",{onClick:o=>{o.stopPropagation(),r()},className:"p-1 text-red-400 hover:text-red-300 hover:bg-red-500/10 rounded",children:f.jsx(po,{size:14})})]}),n&&f.jsxs("div",{className:"p-4 space-y-4 border-t border-[#1e2a3a]",children:[f.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[f.jsx(it,{label:"Name",value:e.name,onChange:o=>t({...e,name:o}),helper:"Friendly name for this source"}),f.jsx(on,{label:"Type",value:e.type,onChange:o=>t({...e,type:o}),options:[{value:"meshview",label:"MeshView"},{value:"meshmonitor",label:"MeshMonitor"},{value:"mqtt",label:"MQTT Broker"}],info:i[e.type]||""})]}),e.type!=="mqtt"&&f.jsx(it,{label:"URL",value:e.url,onChange:o=>t({...e,url:o}),helper:"Full URL including protocol"}),e.type==="meshmonitor"&&f.jsx(it,{label:"API Token",value:e.api_token,onChange:o=>t({...e,api_token:o}),type:"password",helper:"Bearer token for authentication"}),e.type==="mqtt"&&f.jsxs(f.Fragment,{children:[f.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[f.jsx(it,{label:"Host",value:e.host||"",onChange:o=>t({...e,host:o}),helper:"MQTT broker hostname"}),f.jsx(Se,{label:"Port",value:e.port||1883,onChange:o=>t({...e,port:o}),min:1,max:65535,helper:"1883 plain, 8883 TLS"})]}),f.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[f.jsx(it,{label:"Username",value:e.username||"",onChange:o=>t({...e,username:o})}),f.jsx(it,{label:"Password",value:e.password||"",onChange:o=>t({...e,password:o}),type:"password"})]}),f.jsx(it,{label:"Topic Root",value:e.topic_root||"msh/US",onChange:o=>t({...e,topic_root:o}),helper:"Base topic to subscribe to"}),f.jsx(Bt,{label:"Use TLS",checked:e.use_tls||!1,onChange:o=>t({...e,use_tls:o}),helper:"Encrypt MQTT connection"})]}),f.jsx(Se,{label:"Refresh Interval (sec)",value:e.refresh_interval,onChange:o=>t({...e,refresh_interval:o}),min:10,helper:"Polling frequency"}),f.jsx(Bt,{label:"Enabled",checked:e.enabled,onChange:o=>t({...e,enabled:o})}),f.jsx(Bt,{label:"Polite Mode",checked:e.polite_mode,onChange:o=>t({...e,polite_mode:o}),helper:"Reduce polling for shared instances"})]})]})}function aCe({data:e,onChange:t}){const r=()=>{t([...e,{name:"New Source",type:"meshview",url:"",api_token:"",refresh_interval:30,polite_mode:!1,enabled:!0,host:"",port:1883,username:"",password:"",topic_root:"msh/US",use_tls:!1}])};return f.jsxs("div",{className:"space-y-4",children:[f.jsx(ua,{text:la.mesh_sources}),e.map((n,a)=>f.jsx(nCe,{source:n,onChange:i=>{const o=[...e];o[a]=i,t(o)},onDelete:()=>{confirm(`Delete source "${n.name}"?`)&&t(e.filter((i,o)=>o!==a))}},a)),f.jsxs("button",{onClick:r,className:"w-full py-2 border border-dashed border-[#1e2a3a] text-slate-500 hover:text-slate-300 hover:border-accent flex items-center justify-center gap-2 transition-colors",children:[f.jsx(Ti,{size:16})," Add Source"]})]})}function x$({data:e,onChange:t}){const[r,n]=O.useState(null);return f.jsxs("div",{className:"space-y-6",children:[f.jsx(ua,{text:la.mesh_intelligence}),f.jsx(Bt,{label:"Enable Mesh Intelligence",checked:e.enabled,onChange:a=>t({...e,enabled:a}),helper:"Activate health scoring and alerting"}),e.enabled&&f.jsxs(f.Fragment,{children:[f.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[f.jsx(Se,{label:"Locality Radius (miles)",value:e.locality_radius_miles,onChange:a=>t({...e,locality_radius_miles:a}),min:1,step:.5,helper:"Region assignment radius",info:"Nodes within this distance of a region anchor point are assigned to that region."}),f.jsx(Se,{label:"Offline Threshold (hours)",value:e.offline_threshold_hours,onChange:a=>t({...e,offline_threshold_hours:a}),min:1,helper:"Time until node marked offline",info:"A node is considered offline after not being heard for this many hours."})]}),f.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[f.jsx(Se,{label:"Packet Threshold",value:e.packet_threshold,onChange:a=>t({...e,packet_threshold:a}),min:0,helper:"Min packets per 24h to flag",info:"Minimum packets per 24 hours. Nodes below this are flagged as low activity."}),f.jsx(Se,{label:"Battery Warning %",value:e.battery_warning_percent,onChange:a=>t({...e,battery_warning_percent:a}),min:1,max:100,helper:"Global battery warning level"})]}),f.jsx(kP,{label:"Critical Nodes",value:e.critical_nodes,onChange:a=>t({...e,critical_nodes:a}),helper:"Critical infrastructure nodes",info:"Nodes that get priority alerting when they go offline.",roleFilter:"infrastructure"}),f.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[f.jsx(LP,{label:"Alert Channel",value:e.alert_channel,onChange:a=>t({...e,alert_channel:a}),helper:"Channel for broadcast alerts",info:"Meshtastic channel for broadcast alerts. Select Disabled to turn off channel broadcasting.",mode:"single",includeDisabled:!0}),f.jsx(Se,{label:"Alert Cooldown (min)",value:e.alert_cooldown_minutes,onChange:a=>t({...e,alert_cooldown_minutes:a}),min:1,helper:"Min time between repeat alerts",info:"Minimum minutes between repeated alerts for the same condition. Uses scaling cooldown (12h, 24h, 48h)."})]}),f.jsxs("div",{className:"space-y-2",children:[f.jsxs("label",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:["Regions",f.jsx(Ei,{info:"Regions group mesh nodes by geographic area. Each region has an anchor point (lat/lon) and nodes within the region radius are automatically assigned. Regions enable localized reports, alerts, and health scoring."})]}),e.regions.map((a,i)=>f.jsxs("div",{className:"border border-[#1e2a3a] overflow-hidden",children:[f.jsxs("div",{className:"flex items-center justify-between p-3 bg-[#0a0e17] cursor-pointer",onClick:()=>n(r===i?null:i),children:[f.jsxs("div",{className:"flex items-center gap-3",children:[r===i?f.jsx(Sm,{size:16}):f.jsx(nh,{size:16}),f.jsx("span",{className:"font-medium text-slate-200",children:a.name||"Unnamed Region"}),f.jsx("span",{className:"text-xs text-slate-500",children:a.local_name})]}),f.jsx("button",{onClick:o=>{if(o.stopPropagation(),confirm(`Delete region "${a.name||"Unnamed Region"}"?`)){const s=e.regions.filter((l,u)=>u!==i);t({...e,regions:s})}},className:"p-1 text-red-400 hover:text-red-300 hover:bg-red-500/10 rounded",children:f.jsx(po,{size:14})})]}),r===i&&f.jsxs("div",{className:"p-4 space-y-3 border-t border-[#1e2a3a]",children:[f.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[f.jsx(it,{label:"Name",value:a.name,onChange:o=>{const s=[...e.regions];s[i]={...a,name:o},t({...e,regions:s})}}),f.jsx(it,{label:"Local Name",value:a.local_name,onChange:o=>{const s=[...e.regions];s[i]={...a,local_name:o},t({...e,regions:s})}})]}),f.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[f.jsx(Se,{label:"Latitude",value:a.lat,onChange:o=>{const s=[...e.regions];s[i]={...a,lat:o},t({...e,regions:s})},step:1e-4}),f.jsx(Se,{label:"Longitude",value:a.lon,onChange:o=>{const s=[...e.regions];s[i]={...a,lon:o},t({...e,regions:s})},step:1e-4})]}),f.jsx(it,{label:"Description",value:a.description,onChange:o=>{const s=[...e.regions];s[i]={...a,description:o},t({...e,regions:s})}}),f.jsx(En,{label:"Aliases",value:a.aliases,onChange:o=>{const s=[...e.regions];s[i]={...a,aliases:o},t({...e,regions:s})}}),f.jsx(En,{label:"Cities",value:a.cities,onChange:o=>{const s=[...e.regions];s[i]={...a,cities:o},t({...e,regions:s})}})]})]},i)),f.jsxs("button",{onClick:()=>{const a={name:"",local_name:"",lat:0,lon:0,description:"",aliases:[],cities:[]};t({...e,regions:[...e.regions,a]}),n(e.regions.length)},className:"w-full py-2 border border-dashed border-[#1e2a3a] text-slate-500 hover:text-slate-300 hover:border-accent flex items-center justify-center gap-2 transition-colors",children:[f.jsx(Ti,{size:16})," Add Region"]})]}),f.jsxs("div",{className:"space-y-3",children:[f.jsxs("label",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:["Alert Rules",f.jsx(Ei,{info:"Configure which conditions trigger alerts. Each rule can have an optional threshold value."})]}),f.jsxs("div",{className:"space-y-2",children:[f.jsx("h4",{className:"text-xs text-slate-400 font-medium",children:"Infrastructure"}),f.jsx(wn,{label:"Infra Offline",description:"Alert when an infrastructure node (router/repeater) goes offline",checked:e.alert_rules.infra_offline,onChange:a=>t({...e,alert_rules:{...e.alert_rules,infra_offline:a}})}),f.jsx(wn,{label:"Infra Recovery",description:"Alert when an offline infrastructure node comes back online",checked:e.alert_rules.infra_recovery,onChange:a=>t({...e,alert_rules:{...e.alert_rules,infra_recovery:a}})}),f.jsx(wn,{label:"New Router",description:"Alert when a new router/repeater appears on the mesh",checked:e.alert_rules.new_router,onChange:a=>t({...e,alert_rules:{...e.alert_rules,new_router:a}})}),f.jsx(wn,{label:"Feeder Offline",description:"Alert when a data source (MeshView/MeshMonitor) stops responding",checked:e.alert_rules.feeder_offline,onChange:a=>t({...e,alert_rules:{...e.alert_rules,feeder_offline:a}})}),f.jsx(wn,{label:"Single Gateway",description:"Alert when an infrastructure node has only one connection path",checked:e.alert_rules.infra_single_gateway,onChange:a=>t({...e,alert_rules:{...e.alert_rules,infra_single_gateway:a}})}),f.jsx(wn,{label:"Region Blackout",description:"Alert when all infrastructure in a region goes offline",checked:e.alert_rules.region_total_blackout,onChange:a=>t({...e,alert_rules:{...e.alert_rules,region_total_blackout:a}})})]}),f.jsxs("div",{className:"space-y-2",children:[f.jsx("h4",{className:"text-xs text-slate-400 font-medium",children:"Power"}),f.jsx(wn,{label:"Battery Warning",description:"Alert when infra node battery drops below warning threshold",checked:e.alert_rules.battery_warning,onChange:a=>t({...e,alert_rules:{...e.alert_rules,battery_warning:a}}),threshold:e.alert_rules.battery_warning_threshold,onThresholdChange:a=>t({...e,alert_rules:{...e.alert_rules,battery_warning_threshold:a}}),thresholdLabel:"Below",thresholdMin:10,thresholdMax:90,thresholdSuffix:"%"}),f.jsx(wn,{label:"Battery Critical",description:"Alert at critical battery level",checked:e.alert_rules.battery_critical,onChange:a=>t({...e,alert_rules:{...e.alert_rules,battery_critical:a}}),threshold:e.alert_rules.battery_critical_threshold,onThresholdChange:a=>t({...e,alert_rules:{...e.alert_rules,battery_critical_threshold:a}}),thresholdLabel:"Below",thresholdMin:5,thresholdMax:50,thresholdSuffix:"%"}),f.jsx(wn,{label:"Battery Emergency",description:"Alert at emergency battery level",checked:e.alert_rules.battery_emergency,onChange:a=>t({...e,alert_rules:{...e.alert_rules,battery_emergency:a}}),threshold:e.alert_rules.battery_emergency_threshold,onThresholdChange:a=>t({...e,alert_rules:{...e.alert_rules,battery_emergency_threshold:a}}),thresholdLabel:"Below",thresholdMin:1,thresholdMax:25,thresholdSuffix:"%"}),f.jsx(wn,{label:"Battery Trend Declining",description:"Alert when battery shows a declining trend over 7 days",checked:e.alert_rules.battery_trend_declining,onChange:a=>t({...e,alert_rules:{...e.alert_rules,battery_trend_declining:a}})}),f.jsx(wn,{label:"Power Source Change",description:"Alert when a node switches between battery and USB power",checked:e.alert_rules.power_source_change,onChange:a=>t({...e,alert_rules:{...e.alert_rules,power_source_change:a}})}),f.jsx(wn,{label:"Solar Not Charging",description:"Alert when a solar-powered node isn't charging during daylight",checked:e.alert_rules.solar_not_charging,onChange:a=>t({...e,alert_rules:{...e.alert_rules,solar_not_charging:a}})})]}),f.jsxs("div",{className:"space-y-2",children:[f.jsx("h4",{className:"text-xs text-slate-400 font-medium",children:"Utilization"}),f.jsx(wn,{label:"High Utilization",description:"Alert when channel utilization stays high for extended periods",checked:e.alert_rules.sustained_high_util,onChange:a=>t({...e,alert_rules:{...e.alert_rules,sustained_high_util:a}}),threshold:e.alert_rules.high_util_threshold,onThresholdChange:a=>t({...e,alert_rules:{...e.alert_rules,high_util_threshold:a}}),thresholdLabel:"Above",thresholdMin:5,thresholdMax:50,thresholdSuffix:`% for ${e.alert_rules.high_util_hours}h`}),e.alert_rules.sustained_high_util&&f.jsx("div",{className:"pl-3",children:f.jsx(Se,{label:"High-Util Window (hours)",value:e.alert_rules.high_util_hours,onChange:a=>t({...e,alert_rules:{...e.alert_rules,high_util_hours:a}}),min:1,helper:"Sustained duration above the utilization threshold before alerting"})}),f.jsx(wn,{label:"Packet Flood",description:"Alert when a single node sends excessive packets",checked:e.alert_rules.packet_flood,onChange:a=>t({...e,alert_rules:{...e.alert_rules,packet_flood:a}}),threshold:e.alert_rules.packet_flood_threshold,onThresholdChange:a=>t({...e,alert_rules:{...e.alert_rules,packet_flood_threshold:a}}),thresholdLabel:"Over",thresholdMin:100,thresholdMax:2e3,thresholdSuffix:"pkts/24h"})]}),f.jsxs("div",{className:"space-y-2",children:[f.jsx("h4",{className:"text-xs text-slate-400 font-medium",children:"Health Scores"}),f.jsx(wn,{label:"Mesh Score Alert",description:"Alert when overall mesh health score drops below threshold",checked:e.alert_rules.mesh_score_alert,onChange:a=>t({...e,alert_rules:{...e.alert_rules,mesh_score_alert:a}}),threshold:e.alert_rules.mesh_score_threshold,onThresholdChange:a=>t({...e,alert_rules:{...e.alert_rules,mesh_score_threshold:a}}),thresholdLabel:"Below",thresholdMin:30,thresholdMax:90,thresholdSuffix:"/100"}),f.jsx(wn,{label:"Region Score Alert",description:"Alert when a region's health score drops below threshold",checked:e.alert_rules.region_score_alert,onChange:a=>t({...e,alert_rules:{...e.alert_rules,region_score_alert:a}}),threshold:e.alert_rules.region_score_threshold,onThresholdChange:a=>t({...e,alert_rules:{...e.alert_rules,region_score_threshold:a}}),thresholdLabel:"Below",thresholdMin:30,thresholdMax:90,thresholdSuffix:"/100"})]})]})]})]})}function iCe({data:e,onChange:t}){return f.jsxs("div",{className:"space-y-4",children:[f.jsx(ua,{text:la.dashboard}),f.jsx(Bt,{label:"Enable Dashboard",checked:e.enabled,onChange:r=>t({...e,enabled:r}),helper:"Run the web dashboard"}),e.enabled&&f.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[f.jsx(it,{label:"Host",value:e.host,onChange:r=>t({...e,host:r}),placeholder:"0.0.0.0",helper:"Network bind address",info:"0.0.0.0 = accessible from any device on the network. 127.0.0.1 = only accessible from this machine."}),f.jsx(Se,{label:"Port",value:e.port,onChange:r=>t({...e,port:r}),min:1,max:65535,helper:"Dashboard URL port",info:"Port number for the web dashboard URL. You access the dashboard at http://your-ip:port"})]})]})}function oCe({timezone:e,onSave:t}){const[r,n]=O.useState(e);return O.useEffect(()=>{n(e)},[e]),f.jsxs("div",{className:"space-y-4 mb-6 pb-6 border-b border-[#1e2a3a]",children:[f.jsx("label",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:"General"}),f.jsx(it,{label:"Timezone",value:r,onChange:a=>{n(a),t(a)},placeholder:"America/Boise",helper:"Global IANA timezone, e.g. America/Boise",info:"Global IANA timezone used for local time display across MeshAI. Saved immediately."})]})}function sCe(){var z;const{setDirty:e}=Ri(),[t,r]=O.useState(null),[n,a]=O.useState(null),[i,o]=O.useState("bot"),[s]=tJ();O.useEffect(()=>{const E=s.get("section");E&&YT.some(B=>B.key===E)&&o(E)},[s]);const[l,u]=O.useState(!0),[c,h]=O.useState(!1),[d,v]=O.useState(null),[g,m]=O.useState(null),[y,x]=O.useState(!1),[_,w]=O.useState(!1),S=O.useCallback(async()=>{try{const E=await fetch("/api/config");if(!E.ok)throw new Error("Failed to fetch config");const B=await E.json();r(B),a(JSON.parse(JSON.stringify(B))),w(!1),v(null)}catch(E){v(E instanceof Error?E.message:"Unknown error")}finally{u(!1)}},[]);O.useEffect(()=>{document.title="Config — MeshAI",S()},[S]),O.useEffect(()=>{t&&n&&w(JSON.stringify(t)!==JSON.stringify(n))},[t,n]),O.useEffect(()=>(e(_),()=>e(!1)),[_,e]);const C=async()=>{if(t){h(!0),v(null),m(null);try{const E=t[i],B=await fetch(`/api/config/${i}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(E)}),H=await B.json();if(!B.ok)throw new Error(H.detail||"Save failed");m(`${i} saved successfully`),a(JSON.parse(JSON.stringify(t))),w(!1),e(!1),H.restart_required&&(x(!0),ru(Array.isArray(H.changed_keys)?H.changed_keys:[])),setTimeout(()=>m(null),3e3)}catch(E){v(E instanceof Error?E.message:"Save failed")}finally{h(!1)}}},M=()=>{n&&(r(JSON.parse(JSON.stringify(n))),w(!1))},A=async()=>{try{await fetch("/api/restart",{method:"POST"}),x(!1),m("Restart initiated")}catch{v("Restart failed")}},I=(E,B)=>{t&&r({...t,[E]:B})},k=async E=>{try{const B=await fetch("/api/config/timezone",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(E)}),H=await B.json();if(!B.ok)throw new Error(H.detail||"Save failed");r(V=>V&&{...V,timezone:E}),a(V=>V&&{...V,timezone:E})}catch(B){v(B instanceof Error?B.message:"Timezone save failed")}};if(l)return f.jsx("div",{className:"flex items-center justify-center h-64",children:f.jsx("div",{className:"text-slate-400",children:"Loading configuration..."})});if(!t)return f.jsx("div",{className:"flex items-center justify-center h-64",children:f.jsx("div",{className:"text-red-400",children:"Failed to load configuration"})});const P=()=>{switch(i){case"bot":return f.jsxs(f.Fragment,{children:[f.jsx(oCe,{timezone:t.timezone,onSave:k}),f.jsx(ZSe,{data:t.bot,onChange:E=>I("bot",E)})]});case"response":return f.jsx(YSe,{data:t.response,onChange:E=>I("response",E)});case"history":return f.jsx(XSe,{data:t.history,onChange:E=>I("history",E)});case"memory":return f.jsx(qSe,{data:t.memory,onChange:E=>I("memory",E)});case"context":return f.jsx(KSe,{data:t.context,onChange:E=>I("context",E)});case"commands":return f.jsx(JSe,{data:t.commands,onChange:E=>I("commands",E)});case"llm":return f.jsx(QSe,{data:t.llm,onChange:E=>I("llm",E)});case"weather":return f.jsx(eCe,{data:t.weather,onChange:E=>I("weather",E)});case"knowledge":return f.jsx(rCe,{data:t.knowledge,onChange:E=>I("knowledge",E)});case"mesh_intelligence":return f.jsx(x$,{data:t.mesh_intelligence,onChange:E=>I("mesh_intelligence",E)});case"dashboard":return f.jsx(iCe,{data:t.dashboard,onChange:E=>I("dashboard",E)});default:return null}},D=((z=YT.find(E=>E.key===i))==null?void 0:z.label)||i;return f.jsxs("div",{className:"flex gap-6 h-[calc(100vh-8rem)]",children:[f.jsx("div",{className:"w-48 flex-shrink-0 space-y-1",children:YT.map(({key:E,label:B,icon:H})=>f.jsxs("button",{onClick:()=>o(E),className:`w-full flex items-center gap-2 px-3 py-2 rounded text-sm transition-colors ${i===E?"bg-accent text-white":"text-slate-400 hover:text-slate-200 hover:bg-bg-hover"}`,children:[f.jsx(H,{size:16}),f.jsx("span",{children:B}),_&&i===E&&f.jsx("span",{className:"ml-auto w-2 h-2 bg-amber-500 rounded-full"})]},E))}),f.jsxs("div",{className:"flex-1 flex flex-col min-w-0",children:[f.jsxs("div",{className:"flex items-center justify-between mb-6",children:[f.jsxs("div",{className:"flex items-center gap-3",children:[f.jsx(IV,{size:20,className:"text-slate-500"}),f.jsx("h2",{className:"text-lg font-semibold text-slate-200",children:D})]}),f.jsxs("div",{className:"flex items-center gap-2",children:[_&&f.jsxs("button",{onClick:M,className:"flex items-center gap-1.5 px-3 py-1.5 text-sm text-slate-400 hover:text-slate-200 bg-bg-hover rounded transition-colors",children:[f.jsx(oa,{size:14}),"Discard"]}),f.jsxs("button",{onClick:C,disabled:c||!_,className:"flex items-center gap-1.5 px-4 py-1.5 text-sm bg-accent text-white rounded hover:bg-accent/80 disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:[c?f.jsx(zo,{size:14,className:"animate-spin"}):f.jsx(sa,{size:14}),"Save"]})]})]}),y&&f.jsxs("div",{className:"flex items-center justify-between p-3 mb-4 bg-amber-500/10 border border-amber-500/30",children:[f.jsxs("div",{className:"flex items-center gap-2 text-amber-400",children:[f.jsx(Ao,{size:16}),f.jsx("span",{className:"text-sm",children:"Restart required for changes to take effect"})]}),f.jsx("button",{onClick:A,className:"px-3 py-1 text-sm bg-amber-500 text-white rounded hover:bg-amber-600 transition-colors",children:"Restart Now"})]}),d&&f.jsxs("div",{className:"flex items-center gap-2 p-3 mb-4 bg-red-500/10 border border-red-500/30 text-red-400",children:[f.jsx(tu,{size:16}),f.jsx("span",{className:"text-sm",children:d})]}),g&&f.jsxs("div",{className:"flex items-center gap-2 p-3 mb-4 bg-green-500/10 border border-green-500/30 text-green-400",children:[f.jsx(Jr,{size:16}),f.jsx("span",{className:"text-sm",children:g})]}),f.jsx("div",{className:"flex-1 overflow-y-auto pr-2",children:f.jsx("div",{className:"bg-bg-card border border-border p-6",children:P()})})]})]})}const lCe=["mesh_broadcast","mesh_dm"],uCe=["meshcore_broadcast","meshcore_dm"],cCe=["routine","priority","immediate"];function ji({info:e}){const[t,r]=O.useState(!1);return f.jsxs("div",{className:"relative inline-block",children:[f.jsx("button",{type:"button",onClick:n=>{n.stopPropagation(),r(!t)},className:"ml-1.5 w-4 h-4 rounded-full bg-slate-700 hover:bg-slate-600 text-slate-400 hover:text-slate-200 inline-flex items-center justify-center text-xs transition-colors",title:"More info",children:"?"}),t&&f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"fixed inset-0 z-40",onClick:()=>r(!1)}),f.jsx("div",{className:"absolute left-0 top-6 z-50 w-72 p-3 bg-[#1a2332] border border-[#2a3a4a] shadow-xl text-xs text-slate-300 leading-relaxed",children:e})]})]})}function hCe({label:e,value:t,onChange:r,type:n="text",placeholder:a="",helper:i="",info:o=""}){const[s,l]=O.useState(!1),u=n==="password";return f.jsxs("div",{className:"space-y-1",children:[f.jsxs("label",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:[e,o&&f.jsx(ji,{info:o})]}),f.jsxs("div",{className:"relative",children:[f.jsx("input",{type:u&&!s?"password":"text",value:t,onChange:c=>r(c.target.value),placeholder:a,className:"w-full px-3 py-2 bg-[#0a0e17] border border-[#1e2a3a] rounded text-sm text-slate-200 font-mono focus:outline-none focus:border-accent placeholder-slate-600"}),u&&f.jsx("button",{type:"button",onClick:()=>l(!s),className:"absolute right-2 top-1/2 -translate-y-1/2 text-slate-500 hover:text-slate-300",children:s?f.jsx(yk,{size:16}):f.jsx(Cm,{size:16})})]}),i&&f.jsx("p",{className:"text-xs text-slate-600",children:i})]})}function Nd({label:e,value:t,onChange:r,min:n,max:a,step:i=1,helper:o="",info:s=""}){return f.jsxs("div",{className:"space-y-1",children:[f.jsxs("label",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:[e,s&&f.jsx(ji,{info:s})]}),f.jsx("input",{type:"number",value:t,onChange:l=>r(Number(l.target.value)),min:n,max:a,step:i,className:"w-full px-3 py-2 bg-[#0a0e17] border border-[#1e2a3a] rounded text-sm text-slate-200 font-mono focus:outline-none focus:border-accent"}),o&&f.jsx("p",{className:"text-xs text-slate-600",children:o})]})}function kd({label:e,checked:t,onChange:r,helper:n="",info:a=""}){return f.jsxs("div",{className:"flex items-center justify-between py-2",children:[f.jsxs("div",{children:[f.jsxs("span",{className:"flex items-center text-sm text-slate-300",children:[e,a&&f.jsx(ji,{info:a})]}),n&&f.jsx("p",{className:"text-xs text-slate-600",children:n})]}),f.jsx("button",{type:"button",onClick:()=>r(!t),className:`relative w-11 h-6 rounded-full transition-colors ${t?"bg-accent":"bg-[#1e2a3a]"}`,children:f.jsx("span",{className:`absolute top-1 left-1 w-4 h-4 rounded-full bg-white transition-transform ${t?"translate-x-5":""}`})})]})}function gp({label:e,value:t,onChange:r,helper:n="",info:a=""}){return f.jsxs("div",{className:"space-y-1",children:[f.jsxs("label",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:[e,a&&f.jsx(ji,{info:a})]}),f.jsx("input",{type:"time",value:t,onChange:i=>r(i.target.value),className:"w-full px-3 py-2 bg-[#0a0e17] border border-[#1e2a3a] rounded text-sm text-slate-200 focus:outline-none focus:border-accent"}),n&&f.jsx("p",{className:"text-xs text-slate-600",children:n})]})}function _$({label:e,value:t,onChange:r,placeholder:n="Add item...",helper:a="",info:i=""}){const[o,s]=O.useState(""),l=()=>{o.trim()&&!t.includes(o.trim())&&(r([...t,o.trim()]),s(""))},u=c=>{r(t.filter((h,d)=>d!==c))};return f.jsxs("div",{className:"space-y-1",children:[f.jsxs("label",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:[e,i&&f.jsx(ji,{info:i})]}),f.jsxs("div",{className:"flex gap-2",children:[f.jsx("input",{type:"text",value:o,onChange:c=>s(c.target.value),onKeyDown:c=>c.key==="Enter"&&(c.preventDefault(),l()),className:"flex-1 px-3 py-2 bg-[#0a0e17] border border-[#1e2a3a] rounded text-sm text-slate-200 font-mono focus:outline-none focus:border-accent",placeholder:n}),f.jsx("button",{type:"button",onClick:l,className:"px-3 py-2 bg-accent hover:bg-accent/80 rounded text-sm text-white transition-colors",children:f.jsx(Ti,{size:16})})]}),t.length>0&&f.jsx("div",{className:"flex flex-wrap gap-2 mt-2",children:t.map((c,h)=>f.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-1 bg-[#1e2a3a] rounded text-sm text-slate-300",children:[c,f.jsx("button",{type:"button",onClick:()=>u(h),className:"text-slate-500 hover:text-red-400",children:f.jsx(tu,{size:14})})]},h))}),a&&f.jsx("p",{className:"text-xs text-slate-600",children:a})]})}function b$({channels:e,severityChannels:t,onChange:r}){const n=a=>a.replace("meshcore_","mc_").replace("mesh_","").replace(/_/g," ");return f.jsxs("table",{className:"text-xs w-full",children:[f.jsx("thead",{children:f.jsxs("tr",{children:[f.jsx("th",{className:"text-left text-slate-600 font-normal w-20",children:"severity"}),e.map(a=>f.jsx("th",{className:"text-slate-500 font-normal px-1 whitespace-nowrap",children:n(a)},a))]})}),f.jsx("tbody",{children:cCe.map(a=>f.jsxs("tr",{children:[f.jsx("td",{className:"text-slate-400 pr-2 whitespace-nowrap",children:a}),e.map(i=>{const o=(t[a]||[]).includes(i);return f.jsx("td",{className:"text-center",children:f.jsx("input",{type:"checkbox",checked:o,onChange:s=>{const l={...t},u=new Set(l[a]||[]);s.target.checked?u.add(i):u.delete(i),l[a]=Array.from(u),r(l)}})},i)})]},a))})]})}const Yl=[{key:"mesh_health",label:"Mesh Health",Icon:Mo},{key:"weather",label:"Weather",Icon:ih},{key:"fire",label:"Fire",Icon:Tm},{key:"rf_propagation",label:"RF Propagation",Icon:oi},{key:"roads",label:"Roads",Icon:h1},{key:"avalanche",label:"Avalanche",Icon:PV},{key:"satpass",label:"Satellite Passes",Icon:v1},{key:"seismic",label:"Seismic",Icon:sd},{key:"tracking",label:"Tracking",Icon:Rd}];function fCe(e){const t=new Set(Yl.map(n=>n.key)),r=[];for(const n of e)!n||!n.key||t.has(n.key)||(t.add(n.key),r.push({key:n.key,label:n.label||n.key,Icon:AV}));return[...Yl,...r]}let cx=null,qT=null;function w$(){const[e,t]=O.useState(cx??Yl);return O.useEffect(()=>{let r=!1;if(cx){t(cx);return}return qT||(qT=fetch("/api/notifications/families").then(n=>n.ok?n.json():[]).then(n=>{const a=fCe(Array.isArray(n)?n:[]);return cx=a,a}).catch(()=>Yl)),qT.then(n=>{r||t(n)}),()=>{r=!0}},[]),e}function dCe(e,t,r){const n=e?{...e}:{...t,name:r};n.name=t.name||n.name||r;const a=(e==null?void 0:e.severity_channels)||{},i=t.severity_channels||{},o=new Set([...Object.keys(a),...Object.keys(i)]),s={};return o.forEach(l=>{const u=(a[l]||[]).filter(h=>h.startsWith("meshcore_")),c=(i[l]||[]).filter(h=>!h.startsWith("meshcore_"));s[l]=[...u,...c]}),n.severity_channels=s,n.broadcast_channel=t.broadcast_channel,n.node_ids=t.node_ids,n}function vCe(e,t){const r=(t==null?void 0:t.enabled)??(e==null?void 0:e.enabled)??!1,n=(e==null?void 0:e.cells)||{},a=(t==null?void 0:t.cells)||{},i=new Set([...Object.keys(n),...Object.keys(a)]),o={};for(const s of i){const l=n[s]||{},u=a[s]||{},c=new Set([...Object.keys(l),...Object.keys(u)]),h={};for(const d of c){const v=l[d],g=u[d],m={mt:g!==void 0?g.mt:(v==null?void 0:v.mt)??null,mc:(v==null?void 0:v.mc)??null,min_severity:(g==null?void 0:g.min_severity)??(v==null?void 0:v.min_severity)??"routine",enabled:(g==null?void 0:g.enabled)??(v==null?void 0:v.enabled)??!0},y=m.mc;(m.mt!==null||y!==null&&y.trim()!=="")&&(h[d]=m)}Object.keys(h).length>0&&(o[s]=h)}return{enabled:r,cells:o}}function pCe({toggles:e,onChange:t,regions:r,regionRoutes:n,onRegionRoutesChange:a}){const i=w$(),o=(h,d)=>t({...e,[h]:{...e[h]||{},...d}}),[s,l]=O.useState({}),u=(h,d,v)=>{var y,x,_;const g=((x=(y=n==null?void 0:n.cells)==null?void 0:y[h])==null?void 0:x[d])??{mt:null,mc:null,min_severity:"routine",enabled:!0},m={...(n==null?void 0:n.cells)||{},[h]:{...((_=n==null?void 0:n.cells)==null?void 0:_[h])||{},[d]:{...g,mt:v}}};a({enabled:(n==null?void 0:n.enabled)??!1,cells:m})},c=h=>{var m;const d=((m=n==null?void 0:n.cells)==null?void 0:m[h])||{},v={};for(const[y,x]of Object.entries(d))v[y]={...x,mt:null};const g={...(n==null?void 0:n.cells)||{},[h]:v};a({enabled:(n==null?void 0:n.enabled)??!1,cells:g})};return f.jsxs("div",{className:"space-y-3",children:[f.jsxs("div",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:["Meshtastic Delivery",f.jsx(ji,{info:"Per-family Meshtastic delivery matrix. Choose which channels fire at each severity, the broadcast channel index, and DM node IDs. Family on/off and severity threshold are configured on the Data Feeds page."})]}),f.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:i.map(({key:h,label:d,Icon:v})=>{var w;const g=e[h]||{},m=((w=n==null?void 0:n.cells)==null?void 0:w[h])||{},y=r.some(S=>{var C;return((C=m[S])==null?void 0:C.mt)!=null}),x=s[h],_=x!==void 0?x:y;return f.jsxs("div",{className:"border border-[#1e2a3a] p-3 space-y-3",children:[f.jsxs("div",{className:"flex items-center gap-2 text-sm text-slate-200",children:[f.jsx(v,{size:15})," ",d]}),f.jsxs("div",{className:"space-y-3 p-3 bg-[#0a0e17] border border-[#1e2a3a]",children:[f.jsxs("div",{className:"flex items-center gap-2 text-xs font-medium text-slate-300",children:[f.jsx(oi,{size:13}),"Meshtastic"]}),f.jsx(b$,{channels:lCe,severityChannels:g.severity_channels||{},onChange:S=>o(h,{severity_channels:S})}),f.jsx(Nd,{label:"Broadcast channel",value:g.broadcast_channel??0,onChange:S=>o(h,{broadcast_channel:S}),min:0,helper:"Meshtastic channel index (0 = LongFast primary)",info:"The Meshtastic channel index used for mesh_broadcast delivery. 0 = primary channel."}),f.jsx(_$,{label:"DM node IDs",value:g.node_ids||[],onChange:S=>o(h,{node_ids:S}),placeholder:"!hex_id",helper:"Meshtastic DM recipients (hex node IDs)",info:"Hex node IDs for mesh_dm delivery (e.g. !a1b2c3d4). Used when mesh_dm is enabled for a severity."})]}),f.jsxs("div",{className:"border border-[#1e2a3a] p-3 space-y-2",children:[f.jsx(kd,{label:"Region-based routing",checked:_,onChange:S=>{l(C=>({...C,[h]:S})),S||c(h)},helper:"Route this family to different MT channels per region"}),_&&(r.length===0?f.jsxs("p",{className:"text-xs text-slate-500 italic",children:["No regions yet — add them on the"," ",f.jsx("a",{href:"/coverage",className:"text-accent hover:underline",children:"Coverage"})," page."]}):f.jsx("div",{className:"space-y-1.5 pt-1",children:r.map(S=>{const C=m[S]??{mt:null};return f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx("span",{className:"text-xs text-slate-400 flex-1 min-w-0 truncate",children:S}),f.jsx("input",{type:"number",value:C.mt!==null?C.mt:"",onChange:M=>{const A=M.target.value;u(h,S,A===""?null:parseInt(A,10))},min:0,max:7,placeholder:"ch",className:"w-16 px-2 py-1 bg-[#0a0e17] border border-[#1e2a3a] rounded text-xs text-slate-200 font-mono focus:outline-none focus:border-accent"})]},S)})}))]})]},h)})})]})}function gCe(){const{setDirty:e}=Ri(),t=w$(),[r,n]=O.useState(null),[a,i]=O.useState(null),[o,s]=O.useState([]),[l,u]=O.useState(!0),[c,h]=O.useState(!1),[d,v]=O.useState(null),[g,m]=O.useState(null),[y,x]=O.useState(!1),_=O.useCallback(async()=>{try{const[C,M]=await Promise.all([fetch("/api/config/notifications"),fetch("/api/notifications/regions")]);if(!C.ok)throw new Error("Failed to fetch notifications config");const A=await C.json(),I=M.ok?await M.json():[];n(A),i(JSON.parse(JSON.stringify(A))),s(Array.isArray(I)?I:[]),x(!1),v(null)}catch(C){v(C instanceof Error?C.message:"Unknown error")}finally{u(!1)}},[]);O.useEffect(()=>{document.title="Meshtastic Routing - MeshAI",_()},[_]),O.useEffect(()=>{r&&a&&x(JSON.stringify(r)!==JSON.stringify(a))},[r,a]),O.useEffect(()=>(e(y),()=>e(!1)),[y,e]);const w=async()=>{if(r){h(!0),v(null),m(null);try{const C=await fetch("/api/config/notifications");if(!C.ok)throw new Error("Failed to re-fetch notifications config");const M=await C.json(),A={...M,toggles:{...M.toggles||{}},region_routes:vCe(M.region_routes,r.region_routes)},I=r.toggles||{};for(const{key:D}of t){const z=I[D];z&&(A.toggles[D]=dCe((M.toggles||{})[D],z,D))}const k=await fetch("/api/config/notifications",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(A)}),P=await k.json();if(!k.ok)throw new Error(P.detail||"Save failed");n(A),i(JSON.parse(JSON.stringify(A))),x(!1),e(!1),m("Meshtastic routing saved successfully"),setTimeout(()=>m(null),3e3)}catch(C){v(C instanceof Error?C.message:"Save failed")}finally{h(!1)}}},S=()=>{a&&(n(JSON.parse(JSON.stringify(a))),x(!1))};return l?f.jsx("div",{className:"flex items-center justify-center h-64",children:f.jsx("div",{className:"text-slate-400",children:"Loading notifications config..."})}):r?f.jsxs("div",{className:"max-w-4xl mx-auto space-y-6",children:[f.jsxs("div",{className:"flex items-center justify-between",children:[f.jsx("div",{children:f.jsxs("p",{className:"text-sm text-slate-500",children:["Per-family Meshtastic delivery. Family gating (enable, severity threshold, freshness/cooldown) is on"," ",f.jsx("a",{href:"/environment",className:"text-accent hover:underline",children:"Data Feeds"}),". MeshCore delivery is on the"," ",f.jsx("a",{href:"/meshcore/routing",className:"text-accent hover:underline",children:"MeshCore Routing"})," page."]})}),f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx("button",{onClick:_,className:"p-2 text-slate-400 hover:text-slate-200 hover:bg-bg-hover rounded transition-colors",title:"Refresh",children:f.jsx(zo,{size:18})}),f.jsxs("button",{onClick:S,disabled:!y,className:"flex items-center gap-2 px-3 py-2 text-slate-400 hover:text-slate-200 disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:[f.jsx(oa,{size:16}),"Discard"]}),f.jsxs("button",{onClick:w,disabled:c||!y,className:"flex items-center gap-2 px-4 py-2 bg-accent hover:bg-accent/80 disabled:bg-slate-700 disabled:cursor-not-allowed rounded text-white transition-colors",children:[f.jsx(sa,{size:16}),c?"Saving...":"Save"]})]})]}),d&&f.jsx("div",{className:"p-3 text-sm bg-red-500/10 text-red-400 border border-red-500/20",children:d}),g&&f.jsxs("div",{className:"p-3 text-sm bg-green-500/10 text-green-400 border border-green-500/20",children:[f.jsx(Jr,{size:14,className:"inline mr-2"}),g]}),f.jsx("div",{className:"bg-bg-card border border-border p-6",children:r.toggles?f.jsx(pCe,{toggles:r.toggles,onChange:C=>n({...r,toggles:C}),regions:o,regionRoutes:r.region_routes,onRegionRoutesChange:C=>n({...r,region_routes:C})}):f.jsx("p",{className:"text-sm text-slate-500",children:"No family configuration found."})})]}):f.jsx("div",{className:"flex items-center justify-center h-64",children:f.jsx("div",{className:"text-red-400",children:"Failed to load notifications config"})})}const mCe={wfigs:["allowed_incident_types","freshness_seconds","cooldown_seconds","broadcast_on_acres","broadcast_on_contained"],fires:["digest_enabled","digest_schedule","digest_timezone"],tomtom_incidents:["min_magnitude","drop_non_present","drop_zero_magnitude"],itd_511:["min_severity","enabled_categories","enabled_sub_types"],wzdx:["broadcast","min_severity","sub_types"],nws:["broadcast_severities","duplicate_allowed_after_seconds"],avalanche:["min_danger_level"],swpc:["geomag_kp_floor","flare_class_floor","proton_pfu_floor"],satpass:["enabled","observers","min_elevation","norad_ids","max_broadcasts_per_hour","dry_run"]},yCe=1500;function S$({excludeKeys:e,hideLlmToggle:t}={}){const[r,n]=O.useState({}),[a,i]=O.useState({}),[o,s]=O.useState(!0),[l,u]=O.useState(null),[c,h]=O.useState({}),[d,v]=O.useState({}),[g,m]=O.useState({}),y=O.useCallback(async()=>{s(!0),u(null);try{const[M,A]=await Promise.all([fetch("/api/adapter-config"),fetch("/api/adapter-meta")]);if(!M.ok)throw new Error(`GET /adapter-config: ${M.status}`);if(!A.ok)throw new Error(`GET /adapter-meta: ${A.status}`);n(await M.json()),i(await A.json())}catch(M){u(String(M))}finally{s(!1)}},[]);O.useEffect(()=>{y()},[y]);const x=O.useCallback((M,A,I)=>{v(k=>({...k,[M]:A})),I&&m(k=>({...k,[M]:I})),A==="saved"&&setTimeout(()=>{v(k=>k[M]==="saved"?{...k,[M]:"idle"}:k)},yCe)},[]),_=O.useCallback(async(M,A,I)=>{const k=`${M}.${A}`;x(k,"saving");try{const P=await fetch(`/api/adapter-config/${M}/${A}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({value:I})});if(!P.ok){const E=(await P.json().catch(()=>({}))).detail||P.statusText;x(k,"error",String(E));return}const D=await P.json();n(z=>({...z,[M]:(z[M]||[]).map(E=>E.key===A?D:E)})),x(k,"saved")}catch(P){x(k,"error",String(P))}},[x]),w=O.useCallback(async(M,A)=>{const I=`${M}.${A}`;x(I,"saving");try{const k=await fetch(`/api/adapter-config/${M}/${A}/reset`,{method:"POST"});if(!k.ok){x(I,"error",`reset failed (${k.status})`);return}const P=await k.json();n(D=>({...D,[M]:(D[M]||[]).map(z=>z.key===A?P:z)})),x(I,"saved")}catch(k){x(I,"error",String(k))}},[x]),S=O.useCallback(async(M,A)=>{const I=`meta:${M}`;x(I,"saving");try{const k=await fetch(`/api/adapter-meta/${M}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(A)});if(!k.ok){const D=await k.json().catch(()=>({}));x(I,"error",String(D.detail||k.statusText));return}const P=await k.json();i(D=>({...D,[M]:P})),x(I,"saved")}catch(k){x(I,"error",String(k))}},[x]);if(o)return f.jsxs("div",{className:"p-6 flex items-center gap-2 text-[#777]",children:[f.jsx(jd,{className:"w-5 h-5 animate-spin"})," Loading adapter config…"]});if(l)return f.jsxs("div",{className:"p-6 text-red-400",children:[f.jsx(ah,{className:"w-5 h-5 inline mr-2"}),"Failed to load: ",l]});const C=Array.from(new Set([...Object.keys(a),...Object.keys(r)])).sort();return f.jsxs("div",{className:"p-6 space-y-4",children:[f.jsxs("div",{className:"flex items-center gap-2 text-white",children:[f.jsx(Ag,{className:"w-5 h-5"}),f.jsx("h1",{className:"text-xl font-semibold",children:"Adapter Config"}),f.jsxs("span",{className:"text-xs text-[#666] ml-2",children:[Object.entries(r).reduce((M,[A,I])=>M+(e!=null&&e[A]?I.filter(k=>!e[A].includes(k.key)).length:I.length),0)," settings across ",C.length," adapters"]})]}),f.jsxs("p",{className:"text-xs text-[#777] max-w-3xl",children:["Per-adapter tunables (thresholds, freshness windows, toggles, curation lists). Changes take effect on the next handler call -- no container restart needed. Sentence templates, emoji, and translation maps live in code by design — see the CODE rule under ",f.jsx("a",{href:"/reference#adapter-config",className:"text-accent hover:underline",children:"Adapter Config & the CODE Rule"})," in Reference. The ",f.jsx("strong",{children:"LLM context"})," toggle on each card gates whether that adapter's data lands in the system prompt when you DM the bot; broadcasts are unaffected."]}),C.map(M=>{var E;const A=a[M]||{display_name:M,include_in_llm_context:!0,description:""},I=r[M]||[],k=e!=null&&e[M]?I.filter(B=>!e[M].includes(B.key)):I,P=c[M]??!1,D=`meta:${M}`,z=d[D]||"idle";return f.jsxs("div",{className:"bg-bg-card border border-border",children:[f.jsxs("div",{className:"p-4 flex items-start gap-4",children:[f.jsx("button",{onClick:()=>h(B=>({...B,[M]:!B[M]})),className:"text-[#777] hover:text-white","aria-label":"toggle expand",children:P?f.jsx(Sm,{className:"w-5 h-5"}):f.jsx(nh,{className:"w-5 h-5"})}),f.jsxs("div",{className:"flex-1 min-w-0",children:[f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx("h2",{className:"text-base font-semibold text-white",children:A.display_name}),f.jsx("code",{className:"text-xs text-[#666]",children:M}),k.length>0&&f.jsxs("span",{className:"text-xs text-[#777] ml-1",children:["(",k.length," settings",(E=e==null?void 0:e[M])!=null&&E.length?`, ${e[M].length} curated`:"",")"]}),k.length===0&&f.jsx("span",{className:"text-xs text-[#666] ml-1 italic",children:I.length>0?"(all curated)":"(meta only)"})]}),A.description&&f.jsx("p",{className:"text-xs text-[#777] mt-1",children:A.description})]}),!t&&f.jsxs("label",{className:"flex items-center gap-2 text-xs text-[#e0e0e0] select-none",children:[f.jsx("input",{type:"checkbox",checked:A.include_in_llm_context,onChange:B=>S(M,{include_in_llm_context:B.target.checked}),className:"w-4 h-4 accent-[#f59e0b]"}),"LLM context",f.jsx(C$,{status:z,error:g[D]})]})]}),P&&k.length>0&&f.jsx("div",{className:"border-t border-border divide-y divide-border",children:k.map(B=>f.jsx(xCe,{row:B,status:d[`${M}.${B.key}`]||"idle",error:g[`${M}.${B.key}`],onCommit:H=>_(M,B.key,H),onReset:()=>w(M,B.key)},B.key))})]},M)})]})}function xCe({row:e,status:t,error:r,onCommit:n,onReset:a}){const[i,o]=O.useState(KT(e));O.useEffect(()=>{o(KT(e))},[e.value,e.type]);const s=i!==KT(e),l=JSON.stringify(e.value)===JSON.stringify(e.default),u=()=>{const c=_Ce(i,e.type);c.error||c.changed(e.value)&&n(c.value)};return f.jsxs("div",{className:"px-6 py-3 flex items-start gap-4",children:[f.jsxs("div",{className:"flex-1 min-w-0",children:[f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx("code",{className:"text-sm font-mono text-accent",children:e.key}),f.jsxs("span",{className:"text-xs text-[#666]",children:["[",e.type,"]"]}),!l&&f.jsx("span",{className:"text-xs text-accent",children:"edited"})]}),e.description&&f.jsx("p",{className:"text-xs text-[#777] mt-1",children:e.description})]}),f.jsxs("div",{className:"flex items-center gap-2 min-w-[280px] justify-end",children:[e.type==="bool"?f.jsx("input",{type:"checkbox",checked:e.value===!0,onChange:c=>n(c.target.checked),className:"w-5 h-5 accent-[#f59e0b]"}):e.type==="json"?f.jsx("textarea",{className:"w-72 h-20 bg-[#0d0d0d] border border-border px-2 py-1 text-xs font-mono text-white",value:i,onChange:c=>o(c.target.value),onBlur:u}):f.jsx("input",{type:e.type==="int"||e.type==="float"?"number":"text",step:e.type==="float"?"any":"1",className:"w-48 bg-[#0d0d0d] border border-border px-2 py-1 text-sm text-white",value:i,onChange:c=>o(c.target.value),onBlur:u,onKeyDown:c=>{c.key==="Enter"&&c.target.blur()}}),f.jsx(C$,{status:t,error:r,dirty:s}),f.jsx("button",{onClick:a,disabled:l,className:"text-[#777] hover:text-white disabled:opacity-30 disabled:cursor-not-allowed",title:"Reset to default",children:f.jsx(oa,{className:"w-4 h-4"})})]})]})}function C$({status:e,error:t,dirty:r}){return e==="saving"?f.jsx(jd,{className:"w-4 h-4 text-accent animate-spin"}):e==="saved"?f.jsx(Jr,{className:"w-4 h-4 text-green-500"}):e==="error"?f.jsx("span",{title:t,className:"text-red-400 cursor-help",children:f.jsx(ah,{className:"w-4 h-4"})}):r?f.jsx("span",{className:"w-2 h-2 bg-accent rounded-full",title:"unsaved"}):f.jsx("span",{className:"w-4 h-4"})}function KT(e){return e.type==="bool"?String(e.value===!0):e.type==="json"?JSON.stringify(e.value,null,2):e.value===null||e.value===void 0?"":String(e.value)}function _Ce(e,t){if(t==="int"){const r=Number(e);return!Number.isFinite(r)||!Number.isInteger(r)?{error:"expected integer",value:null,changed:()=>!1}:{error:null,value:r,changed:n=>n!==r}}if(t==="float"){const r=Number(e);return Number.isFinite(r)?{error:null,value:r,changed:n=>n!==r}:{error:"expected number",value:null,changed:()=>!1}}if(t==="str")return{error:null,value:e,changed:r=>r!==e};if(t==="json")try{const r=JSON.parse(e);return{error:null,value:r,changed:n=>JSON.stringify(n)!==JSON.stringify(r)}}catch{return{error:"invalid JSON",value:null,changed:()=>!1}}return{error:null,value:e,changed:()=>!0}}const bCe=["routine","priority","immediate"];function GB(e){return{name:`source_${e}`,enabled:!0,url:"",items_path:"features",id_path:"",lat_path:"",lon_path:"",geometry_path:"geometry",title_path:"",time_path:"",category:"generic_alert",poll_seconds:300,severity:"routine",field_mappings:[],summary_template:"",emoji:"",headers:{}}}function Oa({label:e,value:t,onChange:r,placeholder:n,type:a="text",mono:i=!1}){return f.jsxs("div",{className:"min-w-0",children:[f.jsx("label",{className:"text-xs text-[#777] mb-1 block",children:e}),f.jsx("input",{type:a,value:t,placeholder:n,onChange:o=>r(o.target.value),className:`w-full bg-[#0d0d0d] border border-border px-2 py-1.5 text-xs ${i?"font-mono":""} text-[#e0e0e0] placeholder:text-[#555]`})]})}function hx({children:e}){return f.jsx("div",{className:"text-[10px] font-sans font-medium uppercase tracking-widest text-[#666] pt-1",children:e})}function wCe(){const[e,t]=O.useState(null),[r,n]=O.useState(""),[a,i]=O.useState(!0),[o,s]=O.useState(!1),[l,u]=O.useState(null),[c,h]=O.useState(null),{setDirty:d}=Ri(),[v,g]=O.useState({}),[m,y]=O.useState({});O.useEffect(()=>{bJ().then(U=>{const Z=(Array.isArray(U)?U:[]).map(($,W)=>({...GB(W+1),...$}));t(Z),n(JSON.stringify(Z))}).catch(U=>u(U instanceof Error?U.message:String(U))).finally(()=>i(!1))},[]);const x=e!==null&&JSON.stringify(e)!==r;O.useEffect(()=>(d(x),()=>d(!1)),[x,d]);const _=(U,F)=>{t(Z=>Z&&Z.map(($,W)=>W===U?{...$,...F}:$))},w=()=>{t(U=>[...U??[],GB(((U==null?void 0:U.length)??0)+1)])},S=U=>{t(F=>F&&F.filter((Z,$)=>$!==U)),g(F=>{const Z={...F};return delete Z[U],Z})},C=U=>{t(F=>F&&F.map((Z,$)=>$===U?{...Z,field_mappings:[...Z.field_mappings,{source_path:"",dest_key:""}]}:Z))},M=(U,F,Z)=>{t($=>$&&$.map((W,q)=>q===U?{...W,field_mappings:W.field_mappings.map((re,Q)=>Q===F?{...re,...Z}:re)}:W))},A=(U,F)=>{t(Z=>Z&&Z.map(($,W)=>W===U?{...$,field_mappings:$.field_mappings.filter((q,re)=>re!==F)}:$))},I=U=>Object.entries(U.headers??{}),k=(U,F)=>{const Z={};for(const[$,W]of F)Z[$]=W;_(U,{headers:Z})},P=U=>{e&&k(U,[...I(e[U]),["",""]])},D=(U,F,Z,$)=>{if(!e)return;const W=I(e[U]);W[F]=[Z,$],k(U,W)},z=(U,F)=>{if(!e)return;const Z=I(e[U]);Z.splice(F,1),k(U,Z)},E=async U=>{if(!e)return;const F=e[U];y(Z=>({...Z,[U]:!0}));try{const Z=await SJ(F.url,F.items_path,F.headers);g($=>({...$,[U]:Z}))}catch(Z){g($=>({...$,[U]:{ok:!1,error:Z instanceof Error?Z.message:String(Z)}}))}finally{y(Z=>({...Z,[U]:!1}))}},B=()=>{r&&(t(JSON.parse(r)),g({}))},H=async()=>{if(e){s(!0),u(null),h(null);try{const U=await wJ(e);n(JSON.stringify(e)),h("Custom sources saved"),setTimeout(()=>h(null),3e3),U.restart_required&&ru(Array.isArray(U.changed_keys)?U.changed_keys:[])}catch(U){u(U instanceof Error?U.message:"Save failed")}finally{s(!1)}}};if(a)return f.jsx("div",{className:"flex items-center justify-center h-32 text-[#777]",children:"Loading custom sources…"});if(!e)return f.jsx("div",{className:"flex items-center justify-center h-32 text-red-400",children:l||"No config"});const V=f.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[f.jsxs("button",{onClick:B,className:"flex items-center gap-1 px-3 py-1.5 text-sm text-[#777] hover:text-white border border-border",children:[f.jsx(oa,{size:14})," Discard"]}),f.jsxs("button",{onClick:H,disabled:o,className:"flex items-center gap-1 px-3 py-1.5 text-sm bg-accent text-white disabled:opacity-50",children:[f.jsx(sa,{size:14})," ",o?"Saving…":"Save"]})]});return f.jsxs("div",{className:"space-y-6 max-w-4xl",children:[f.jsxs("div",{className:"flex items-start justify-between gap-4",children:[f.jsxs("p",{className:"text-sm text-[#777]",children:["Point MeshAI at any public REST or GeoJSON feed — no code. Each source polls a URL, maps its JSON fields to an event via dotted paths, and broadcasts through the normal coverage-gated pipeline. Use ",f.jsx("span",{className:"text-accent",children:"Preview"})," to fetch a URL and read its structure before filling in the paths. Once saved, a custom source becomes a routable family —"," ",f.jsx("a",{href:"/notifications",className:"text-accent hover:underline",children:"enable its family in Notifications"})," ","to route it to a channel."]}),x&&V]}),l&&f.jsx("div",{className:"text-sm text-red-400 bg-red-500/10 p-3",children:l}),c&&f.jsx("div",{className:"text-sm text-green-400 bg-green-500/10 p-3",children:c}),e.length===0&&f.jsx("div",{className:"border border-border p-6 text-center text-sm text-[#666]",children:"No custom sources yet. Click “Add source” to wire up a public feed."}),f.jsx("div",{className:"space-y-4",children:e.map((U,F)=>{const Z=v[F],$=m[F];return f.jsxs("div",{className:"border border-border p-4 space-y-4",children:[f.jsxs("div",{className:"flex items-center gap-3",children:[f.jsx("input",{type:"text",value:U.name,onChange:W=>_(F,{name:W.target.value}),placeholder:"source name (unique id)",className:"flex-1 bg-[#0d0d0d] border border-border px-2 py-1.5 text-sm font-medium text-[#e0e0e0]"}),f.jsxs("label",{className:"flex items-center gap-2 cursor-pointer select-none",children:[f.jsx("span",{className:"text-xs text-[#666]",children:"Enabled"}),f.jsx("button",{type:"button",onClick:()=>_(F,{enabled:!U.enabled}),className:`relative w-9 h-4 rounded-full transition-colors ${U.enabled?"bg-accent":"bg-[#333]"}`,children:f.jsx("span",{className:`absolute top-0.5 left-0.5 w-3 h-3 rounded-full bg-white transition-transform ${U.enabled?"translate-x-5":""}`})})]}),f.jsx("button",{onClick:()=>S(F),title:"Delete source",className:"flex items-center gap-1 px-2 py-1.5 text-xs text-[#777] hover:text-red-400 border border-border",children:f.jsx(po,{size:12})})]}),f.jsx(hx,{children:"Basics"}),f.jsxs("div",{className:"grid grid-cols-12 gap-2",children:[f.jsx("div",{className:"col-span-12",children:f.jsx(Oa,{label:"URL",value:U.url,onChange:W=>_(F,{url:W}),placeholder:"https://example.com/api/feed.geojson",mono:!0})}),f.jsx("div",{className:"col-span-3",children:f.jsx(Oa,{label:"Poll seconds",type:"number",value:U.poll_seconds,onChange:W=>_(F,{poll_seconds:parseInt(W,10)||0})})}),f.jsx("div",{className:"col-span-3",children:f.jsx(Oa,{label:"Category",value:U.category,onChange:W=>_(F,{category:W}),placeholder:"generic_alert"})}),f.jsxs("div",{className:"col-span-3",children:[f.jsx("label",{className:"text-xs text-[#777] mb-1 block",children:"Severity"}),f.jsx("select",{value:U.severity,onChange:W=>_(F,{severity:W.target.value}),className:"w-full bg-[#0d0d0d] border border-border px-2 py-1.5 text-xs text-[#e0e0e0]",children:bCe.map(W=>f.jsx("option",{value:W,children:W},W))})]}),f.jsx("div",{className:"col-span-3",children:f.jsx(Oa,{label:"Emoji",value:U.emoji??"",onChange:W=>_(F,{emoji:W}),placeholder:"⚡"})})]}),f.jsx(hx,{children:"Extraction"}),f.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[f.jsx(Oa,{label:"items_path (array of items)",value:U.items_path,onChange:W=>_(F,{items_path:W}),placeholder:"features · object.outages",mono:!0}),f.jsx(Oa,{label:"id_path (unique id, for dedup)",value:U.id_path,onChange:W=>_(F,{id_path:W}),placeholder:"id · omsOutageId · properties.id",mono:!0})]}),f.jsxs("div",{className:"border border-border p-3 space-y-2",children:[f.jsxs("div",{className:"flex items-center justify-between",children:[f.jsx("div",{className:"text-[10px] font-sans font-medium uppercase tracking-widest text-[#666]",children:"Headers (optional)"}),f.jsxs("button",{onClick:()=>P(F),className:"flex items-center gap-1 px-2 py-1 text-xs bg-accent/20 hover:bg-accent/30 text-accent border border-accent/30",children:[f.jsx(Ti,{size:12})," Add header"]})]}),f.jsxs("p",{className:"text-xs text-[#555]",children:["Custom request headers, e.g. ",f.jsx("code",{children:"User-Agent"})," or"," ",f.jsx("code",{children:"Authorization"}),". Leave empty for the default browser UA."]}),Object.entries(U.headers??{}).length>0&&f.jsx("div",{className:"space-y-2",children:Object.entries(U.headers??{}).map(([W,q],re)=>f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx("input",{type:"text",value:W,onChange:Q=>D(F,re,Q.target.value,q),placeholder:"header name (e.g. Authorization)",className:"flex-1 bg-[#0d0d0d] border border-border px-2 py-1.5 text-xs font-mono text-[#e0e0e0] placeholder:text-[#555]"}),f.jsx("span",{className:"text-[#555] text-xs",children:":"}),f.jsx("input",{type:"text",value:q,onChange:Q=>D(F,re,W,Q.target.value),placeholder:"value (e.g. Bearer …)",className:"flex-1 bg-[#0d0d0d] border border-border px-2 py-1.5 text-xs font-mono text-[#e0e0e0] placeholder:text-[#555]"}),f.jsx("button",{onClick:()=>z(F,re),title:"Remove header",className:"flex items-center px-2 py-1.5 text-xs text-[#777] hover:text-red-400 border border-border",children:f.jsx(po,{size:12})})]},re))})]}),f.jsx(hx,{children:"Location — GeoJSON geometry OR lat + lon paths"}),f.jsxs("div",{className:"grid grid-cols-3 gap-2",children:[f.jsx(Oa,{label:"geometry_path",value:U.geometry_path??"",onChange:W=>_(F,{geometry_path:W}),placeholder:"geometry",mono:!0}),f.jsx(Oa,{label:"lat_path",value:U.lat_path??"",onChange:W=>_(F,{lat_path:W}),placeholder:"properties.lat",mono:!0}),f.jsx(Oa,{label:"lon_path",value:U.lon_path??"",onChange:W=>_(F,{lon_path:W}),placeholder:"properties.lon",mono:!0})]}),f.jsx(hx,{children:"Display"}),f.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[f.jsx(Oa,{label:"title_path",value:U.title_path??"",onChange:W=>_(F,{title_path:W}),placeholder:"properties.headline",mono:!0}),f.jsx(Oa,{label:"time_path",value:U.time_path??"",onChange:W=>_(F,{time_path:W}),placeholder:"properties.updated",mono:!0}),f.jsx("div",{className:"col-span-2",children:f.jsx(Oa,{label:"summary_template — use {dest_key} tokens from your field mappings",value:U.summary_template??"",onChange:W=>_(F,{summary_template:W}),placeholder:"⚡ Power out — {customers} affected, ETA {eta}",mono:!0})})]}),f.jsxs("div",{className:"border border-border p-3 space-y-2",children:[f.jsxs("div",{className:"flex items-center justify-between",children:[f.jsx("div",{className:"text-[10px] font-sans font-medium uppercase tracking-widest text-[#666]",children:"Field Mappings"}),f.jsxs("button",{onClick:()=>C(F),className:"flex items-center gap-1 px-2 py-1 text-xs bg-accent/20 hover:bg-accent/30 text-accent border border-accent/30",children:[f.jsx(Ti,{size:12})," Add mapping"]})]}),U.field_mappings.length===0?f.jsxs("p",{className:"text-xs text-[#555]",children:["No mappings. Each mapping pulls a dotted ",f.jsx("code",{children:"source_path"})," from an item into a ",f.jsx("code",{children:"dest_key"})," you can reference in the summary template."]}):f.jsx("div",{className:"space-y-2",children:U.field_mappings.map((W,q)=>f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx("input",{type:"text",value:W.source_path,onChange:re=>M(F,q,{source_path:re.target.value}),placeholder:"source_path (e.g. properties.customers)",className:"flex-1 bg-[#0d0d0d] border border-border px-2 py-1.5 text-xs font-mono text-[#e0e0e0] placeholder:text-[#555]"}),f.jsx("span",{className:"text-[#555] text-xs",children:"→"}),f.jsx("input",{type:"text",value:W.dest_key,onChange:re=>M(F,q,{dest_key:re.target.value}),placeholder:"dest_key (e.g. customers)",className:"flex-1 bg-[#0d0d0d] border border-border px-2 py-1.5 text-xs font-mono text-[#e0e0e0] placeholder:text-[#555]"}),f.jsx("button",{onClick:()=>A(F,q),title:"Remove mapping",className:"flex items-center px-2 py-1.5 text-xs text-[#777] hover:text-red-400 border border-border",children:f.jsx(po,{size:12})})]},q))})]}),f.jsxs("div",{className:"border border-border p-3 space-y-2",children:[f.jsxs("div",{className:"flex items-center justify-between",children:[f.jsx("div",{className:"text-[10px] font-sans font-medium uppercase tracking-widest text-[#666]",children:"Preview"}),f.jsxs("button",{onClick:()=>E(F),disabled:!U.url||$,className:"flex items-center gap-1 px-2 py-1 text-xs bg-accent/20 hover:bg-accent/30 text-accent border border-accent/30 disabled:opacity-40",children:[$?f.jsx(jd,{size:12,className:"animate-spin"}):f.jsx(Cm,{size:12}),$?"Fetching…":"Preview"]})]}),Z&&f.jsxs("div",{className:"space-y-2",children:[Z.ok?f.jsxs("div",{className:"text-xs text-green-400",children:["HTTP ",Z.status??"200",typeof Z.item_count=="number"&&f.jsxs("span",{className:"text-[#999]",children:[" ","— items_path resolved ",Z.item_count," item",Z.item_count===1?"":"s"]})]}):f.jsx("div",{className:"text-xs text-red-400 break-words",children:Z.error}),Z.items_path_note&&f.jsx("div",{className:"text-xs text-amber-400 break-words",children:Z.items_path_note}),Z.first_item&&f.jsxs("div",{children:[f.jsx("div",{className:"text-[10px] uppercase tracking-widest text-[#555] mb-1",children:"First item"}),f.jsx("pre",{className:"bg-[#0d0d0d] border border-border p-2 text-[11px] font-mono text-[#bbb] overflow-auto max-h-48 whitespace-pre",children:Z.first_item})]}),Z.sample&&f.jsxs("details",{open:!Z.first_item,children:[f.jsx("summary",{className:"text-[10px] uppercase tracking-widest text-[#555] cursor-pointer",children:"Raw response"}),f.jsx("pre",{className:"mt-1 bg-[#0d0d0d] border border-border p-2 text-[11px] font-mono text-[#bbb] overflow-auto max-h-72 whitespace-pre",children:Z.sample})]})]})]})]},F)})}),f.jsxs("div",{className:"flex items-center justify-between gap-2 pb-2",children:[f.jsxs("button",{onClick:w,className:"flex items-center gap-1 px-3 py-1.5 text-sm bg-accent/20 hover:bg-accent/30 text-accent border border-accent/30",children:[f.jsx(Ti,{size:14})," Add source"]}),x&&V]})]})}const SCe={enabled:!1,observers:[],tle_groups:["weather","stations"],norad_ids:[],min_elevation_deg:10,window_hours:24,tle_refresh_seconds:21600,broadcast_lead_seconds:3600,feed_source:"central"};function CCe({feed:e}){const t=e.is_loaded?e.consecutive_errors>0?"bg-amber-500":"bg-green-500":"bg-red-500",r=e.is_loaded?e.consecutive_errors>0?`${e.consecutive_errors} errors`:"Healthy":"Not loaded",n=e.last_fetch?new Date(e.last_fetch*1e3).toLocaleTimeString():"Never";return f.jsxs("div",{className:"bg-bg-hover p-4",children:[f.jsxs("div",{className:"flex items-center justify-between mb-2",children:[f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx("div",{className:`w-2 h-2 rounded-full ${t}`}),f.jsx("span",{className:"text-sm font-medium text-white uppercase",children:e.source})]}),f.jsx("span",{className:"text-xs text-[#777]",children:r})]}),f.jsxs("div",{className:"text-xs font-mono text-[#666] space-y-1",children:[f.jsxs("div",{children:["Events: ",e.event_count]}),f.jsxs("div",{children:["Last fetch: ",n]}),e.last_error&&f.jsx("div",{className:"text-accent truncate",children:e.last_error})]})]})}function TCe({event:e}){const t=e.severity.toLowerCase(),r=t==="extreme"||t==="severe"||t==="immediate"?{bg:"bg-red-500/10",border:"border-red-500",Icon:ah,color:"text-red-500"}:t==="moderate"||t==="warning"||t==="priority"?{bg:"bg-accent/10",border:"border-amber-500",Icon:Ao,color:"text-accent"}:{bg:"bg-sky-400/10",border:"border-sky-400",Icon:d1,color:"text-sky-400"},n=r.Icon;return f.jsx("div",{className:`p-3 ${r.bg} border-l-2 ${r.border}`,children:f.jsxs("div",{className:"flex items-start gap-3",children:[f.jsx(n,{size:16,className:r.color}),f.jsxs("div",{className:"flex-1 min-w-0",children:[f.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[f.jsx("span",{className:"text-sm font-medium text-white",children:e.event_type}),f.jsx("span",{className:`text-xs px-1.5 py-0.5 ${r.bg} ${r.color}`,children:e.severity})]}),f.jsx("div",{className:"text-sm font-sans text-[#e0e0e0]",children:e.headline})]})]})})}function T$({value:e,onChange:t,disabled:r,centralDisabled:n}){const a="px-2 py-1 text-xs transition-colors";return f.jsxs("div",{className:`flex border border-border overflow-hidden ${r?"opacity-40":""}`,children:[f.jsx("button",{type:"button",disabled:r,onClick:()=>t("native"),className:`${a} ${e==="native"?"bg-accent text-white":"text-[#777] hover:text-white"}`,children:"native"}),f.jsx("button",{type:"button",disabled:r||n,title:n?"Central not available for this adapter":"",onClick:()=>{n||t("central")},className:`${a} ${n?"text-[#666] cursor-not-allowed":e==="central"?"bg-accent text-white":"text-[#777] hover:text-white"}`,children:"central"})]})}function MCe({title:e,subtitle:t,enabled:r,onEnabled:n,feedSource:a,onFeedSource:i,hasCentral:o,nativeOnly:s,hasKey:l,health:u,events:c,children:h,llmContext:d,onLlmContext:v}){const g=s||!o;return f.jsxs("div",{className:"border border-border p-4 space-y-3",children:[f.jsxs("div",{className:"flex items-center justify-between",children:[f.jsxs("div",{children:[f.jsx("span",{className:"text-sm font-medium text-[#e0e0e0]",children:e}),t&&f.jsx("p",{className:"text-xs text-[#666]",children:t})]}),f.jsxs("div",{className:"flex items-center gap-4",children:[v!==void 0&&f.jsxs("label",{className:"flex items-center gap-1.5 cursor-pointer select-none",title:"Include this adapter's data in LLM (bot) context",children:[f.jsx("input",{type:"checkbox",checked:d??!0,onChange:m=>v(m.target.checked),className:"w-3.5 h-3.5 accent-[#f59e0b]"}),f.jsx("span",{className:"text-[10px] uppercase tracking-wide text-[#666]",children:"LLM"})]}),f.jsxs("div",{className:"flex items-center gap-1",children:[f.jsx("span",{className:"text-[10px] uppercase tracking-wide text-[#666]",children:"source"}),f.jsx(T$,{value:a,onChange:i,disabled:!r,centralDisabled:g})]}),f.jsx(Bt,{label:"",checked:r,onChange:n})]})]}),!l&&f.jsx("div",{className:"text-xs text-accent bg-accent/10 p-2",children:"API key required — set it in the field below"}),s&&f.jsx("div",{className:"text-[11px] text-[#666]",children:"Central not available for this adapter — native only"}),f.jsx("div",{className:r?"space-y-3":"space-y-3 opacity-40 pointer-events-none select-none",children:h}),(u||c&&c.length>0)&&f.jsxs("div",{className:"pt-2 border-t border-border space-y-3",children:[f.jsx("div",{className:"text-[10px] uppercase tracking-wide text-[#666]",children:"Live status"}),u?f.jsx(CCe,{feed:u}):f.jsx("div",{className:"text-xs text-[#666]",children:"No status reported."}),c&&c.length>0&&f.jsx("div",{className:"space-y-2",children:c.slice(0,5).map((m,y)=>f.jsx(TCe,{event:m},y))})]})]})}const Hu={nws:{label:"NWS Weather Alerts",subtitle:"National Weather Service alerts",health:"nws",hasCentral:!0,nativeOnly:!1,hasKey:!0},fires:{label:"NIFC Fire Perimeters",subtitle:"Active wildfires (National Interagency Fire Center)",health:"nifc",hasCentral:!0,nativeOnly:!1,hasKey:!0},firms:{label:"NASA FIRMS Hotspots",subtitle:"Satellite thermal-anomaly detections",health:"firms",hasCentral:!0,nativeOnly:!1,hasKey:!1},swpc:{label:"NOAA Space Weather (SWPC)",subtitle:"Solar indices, geomagnetic storms",health:"swpc",hasCentral:!0,nativeOnly:!1,hasKey:!0},ducting:{label:"Tropospheric Ducting",subtitle:"VHF/UHF extended-range conditions",health:"ducting",hasCentral:!1,nativeOnly:!0,hasKey:!0},traffic:{label:"TomTom Traffic",subtitle:"Traffic flow on monitored corridors",health:"traffic",hasCentral:!0,nativeOnly:!1,hasKey:!0},roads511:{label:"511 Road Conditions",subtitle:"State DOT road events and closures",health:"roads511",hasCentral:!0,nativeOnly:!1,hasKey:!1},wzdx:{label:"WZDx Work Zones",subtitle:"Planned road work and construction events from ITD",health:"roads511",hasCentral:!0,nativeOnly:!1,hasKey:!0},usgs_quake:{label:"USGS Earthquakes",subtitle:"Seismic events from the USGS feed",health:"usgs_quake",hasCentral:!0,nativeOnly:!1,hasKey:!0},usgs:{label:"USGS Stream Gauges",subtitle:"River and stream water levels",health:"usgs",hasCentral:!0,nativeOnly:!1,hasKey:!0},avalanche:{label:"Avalanche Advisories",subtitle:"Backcountry avalanche danger ratings",health:"avalanche",hasCentral:!0,nativeOnly:!1,hasKey:!0},satpass:{label:"Satellite Passes",subtitle:"Observer pass alerts via Central",health:"satpass",hasCentral:!0,nativeOnly:!1,hasKey:!0}},ACe={firms:"FIRMS_MAP_KEY",roads511:"ROADS511_API_KEY",traffic:"TOMTOM_API_KEY"},JT=[{key:"central",label:"Central",icon:vJ,adapters:[]},{key:"weather",label:"Weather",icon:ih,adapters:["nws"]},{key:"fire",label:"Fire",icon:Tm,adapters:["fires","firms"]},{key:"rf",label:"RF Propagation",icon:oi,adapters:["swpc","ducting"]},{key:"roads",label:"Roads",icon:h1,adapters:["traffic","roads511","wzdx"]},{key:"geohazards",label:"Geohazards",icon:sd,adapters:["usgs_quake","usgs","avalanche"]},{key:"tracking",label:"Tracking",icon:v1,adapters:["satpass"]},{key:"mesh",label:"Mesh Health",icon:Mo,adapters:[]},{key:"family_settings",label:"Family Settings",icon:_V,adapters:[]}];function NCe(){var yv,xv,Fs,Tt,qt,cu;const[e,t]=O.useState(null),[r,n]=O.useState(""),[a,i]=O.useState(null),[o,s]=O.useState([]),[l,u]=O.useState(!0),[c,h]=O.useState(!1),[d,v]=O.useState(null),[g,m]=O.useState(null),[y,x]=O.useState(!1),[_,w]=O.useState("weather"),[S,C]=O.useState("nws"),[M,A]=O.useState("curated"),[I,k]=O.useState({}),[P,D]=O.useState({}),[z,E]=O.useState({allowed_incident_types:["WF"],freshness_seconds:0,cooldown_seconds:28800,broadcast_on_acres:!0,broadcast_on_contained:!0}),[B,H]=O.useState(""),[V,U]=O.useState({digest_enabled:!0,digest_schedule:["06:00","18:00"],digest_timezone:"America/Boise"}),[F,Z]=O.useState(""),[$,W]=O.useState({min_magnitude:4,drop_non_present:!0,drop_zero_magnitude:!0}),[q,re]=O.useState(""),[Q,se]=O.useState({min_severity:"None",enabled_categories:["incident","closure"],enabled_sub_types:["accident","road_closed","closure","lane_closed","vehicle_on_fire","flooding","debris"]}),[ce,Ue]=O.useState(""),[ye,me]=O.useState({broadcast:!1,min_severity:"Minor",sub_types:["road_works","lane_closed","road_closed"]}),[Oe,be]=O.useState(""),[we,yt]=O.useState({broadcast_severities:["Extreme","Severe"],duplicate_allowed_after_seconds:3600}),[nt,vt]=O.useState(""),[dt,Ft]=O.useState({min_danger_level:3}),[dr,Rr]=O.useState(""),[Xt,mn]=O.useState({geomag_kp_floor:7,flare_class_floor:"X1",proton_pfu_floor:10}),[Fi,lv]=O.useState(""),[Ot,Ho]=O.useState({enabled:!1,observers:[],min_elevation:30,norad_ids:[],max_broadcasts_per_hour:4,dry_run:!0}),[lu,uv]=O.useState(""),[Xm,qm]=O.useState(null),[cv,_h]=O.useState(null),[_w,Km]=O.useState(!1),[hv,Jm]=O.useState([]),[ca,Vi]=O.useState(null),[fv,Qm]=O.useState(""),[dv,vv]=O.useState(!1),[pv,ey]=O.useState(null),[ty,gv]=O.useState(null);O.useEffect(()=>{document.title="Environment — MeshAI",(async()=>{var ie,Je,kt,Be,lt,ci,In,er,J,je,Ye,Re,ut,fa,hi,Th,Vs,Mh,Ah,hu,Nh,kh,fu,_v,Lh,vy,st,da,Vt;try{const Gi=await(await fetch("/api/config/environmental")).json();Gi.satpass={...SCe,...Gi.satpass??{}},Gi.wzdx={states:["ID"],registry_url:"",...Gi.wzdx??{}},t(Gi),n(JSON.stringify(Gi));const Ia=Ct=>{const ct={};if(Array.isArray(Ct))for(const pt of Ct)ct[pt.key]={value:pt.value};return ct};try{const Ct=await fetch("/api/adapter-config/wfigs");if(Ct.ok){const ct=Ia(await Ct.json()),pt={allowed_incident_types:((ie=ct.allowed_incident_types)==null?void 0:ie.value)??["WF"],freshness_seconds:((Je=ct.freshness_seconds)==null?void 0:Je.value)??0,cooldown_seconds:((kt=ct.cooldown_seconds)==null?void 0:kt.value)??28800,broadcast_on_acres:((Be=ct.broadcast_on_acres)==null?void 0:Be.value)??!0,broadcast_on_contained:((lt=ct.broadcast_on_contained)==null?void 0:lt.value)??!0};E(pt),H(JSON.stringify(pt))}}catch{}try{const Ct=await fetch("/api/adapter-config/fires");if(Ct.ok){const ct=Ia(await Ct.json()),pt={digest_enabled:((ci=ct.digest_enabled)==null?void 0:ci.value)??!0,digest_schedule:((In=ct.digest_schedule)==null?void 0:In.value)??["06:00","18:00"],digest_timezone:((er=ct.digest_timezone)==null?void 0:er.value)??"America/Boise"};U(pt),Z(JSON.stringify(pt))}}catch{}try{const Ct=await fetch("/api/adapter-config/tomtom_incidents");if(Ct.ok){const ct=Ia(await Ct.json()),pt={min_magnitude:((J=ct.min_magnitude)==null?void 0:J.value)??4,drop_non_present:((je=ct.drop_non_present)==null?void 0:je.value)??!0,drop_zero_magnitude:((Ye=ct.drop_zero_magnitude)==null?void 0:Ye.value)??!0};W(pt),re(JSON.stringify(pt))}}catch{}try{const Ct=await fetch("/api/adapter-config/itd_511");if(Ct.ok){const ct=Ia(await Ct.json()),pt={min_severity:((Re=ct.min_severity)==null?void 0:Re.value)??"None",enabled_categories:((ut=ct.enabled_categories)==null?void 0:ut.value)??["incident","closure"],enabled_sub_types:((fa=ct.enabled_sub_types)==null?void 0:fa.value)??["accident","road_closed","closure","lane_closed","vehicle_on_fire","flooding","debris"]};se(pt),Ue(JSON.stringify(pt))}}catch{}try{const Ct=await fetch("/api/adapter-config/wzdx");if(Ct.ok){const ct=Ia(await Ct.json()),pt={broadcast:((hi=ct.broadcast)==null?void 0:hi.value)??!1,min_severity:((Th=ct.min_severity)==null?void 0:Th.value)??"Minor",sub_types:((Vs=ct.sub_types)==null?void 0:Vs.value)??["road_works","lane_closed","road_closed"]};me(pt),be(JSON.stringify(pt))}}catch{}try{const Ct=await fetch("/api/adapter-config/nws");if(Ct.ok){const ct=Ia(await Ct.json()),pt={broadcast_severities:((Mh=ct.broadcast_severities)==null?void 0:Mh.value)??["Extreme","Severe"],duplicate_allowed_after_seconds:((Ah=ct.duplicate_allowed_after_seconds)==null?void 0:Ah.value)??3600};yt(pt),vt(JSON.stringify(pt))}}catch{}try{const Ct=await fetch("/api/adapter-config/avalanche");if(Ct.ok){const pt={min_danger_level:((hu=Ia(await Ct.json()).min_danger_level)==null?void 0:hu.value)??3};Ft(pt),Rr(JSON.stringify(pt))}}catch{}try{const Ct=await fetch("/api/adapter-config/swpc");if(Ct.ok){const ct=Ia(await Ct.json()),pt={geomag_kp_floor:((Nh=ct.geomag_kp_floor)==null?void 0:Nh.value)??7,flare_class_floor:((kh=ct.flare_class_floor)==null?void 0:kh.value)??"X1",proton_pfu_floor:((fu=ct.proton_pfu_floor)==null?void 0:fu.value)??10};mn(pt),lv(JSON.stringify(pt))}}catch{}try{const Ct=await fetch("/api/adapter-meta");if(Ct.ok){const ct=await Ct.json(),pt={};for(const[Hi,vr]of Object.entries(ct))pt[Hi]=vr.include_in_llm_context??!0;k(pt)}}catch{}try{const Ct=await fetch("/api/adapter-config/satpass");if(Ct.ok){const ct=await Ct.json(),pt={};for(const vr of ct)pt[vr.key]=vr;const Hi={enabled:((_v=pt.enabled)==null?void 0:_v.value)??!1,observers:((Lh=pt.observers)==null?void 0:Lh.value)??[],min_elevation:((vy=pt.min_elevation)==null?void 0:vy.value)??30,norad_ids:((st=pt.norad_ids)==null?void 0:st.value)??[],max_broadcasts_per_hour:((da=pt.max_broadcasts_per_hour)==null?void 0:da.value)??4,dry_run:((Vt=pt.dry_run)==null?void 0:Vt.value)??!0};Ho(Hi),uv(JSON.stringify(Hi))}}catch{}}catch(Ih){v(Ih instanceof Error?Ih.message:"Failed to load config")}finally{u(!1)}})()},[]),O.useEffect(()=>{(async()=>{try{const ie=await fetch("/api/config/notifications");if(ie.ok){const Je=await ie.json();Vi(Je),Qm(JSON.stringify(Je))}}catch{}})()},[]),O.useEffect(()=>{(async()=>{try{const ie=await fetch("/api/config/coverage");if(ie.ok){const Je=await ie.json();Km(!!Je.enabled),Jm(Array.isArray(Je.excluded_adapters)?Je.excluded_adapters:[])}}catch{}})()},[]),O.useEffect(()=>{(async()=>{try{const ie=await fetch("/api/secrets");if(ie.ok){const Je=await ie.json(),kt={};for(const Be of Je)kt[Be.env_var]=Be.is_set;D(kt)}}catch{}})()},[]),O.useEffect(()=>{const ie=async()=>{try{i(await RV()),s(await OV())}catch{}};ie();const Je=setInterval(ie,3e4);return()=>clearInterval(Je)},[]);const ry=e!==null&&JSON.stringify(e)!==r,ny=JSON.stringify(z)!==B,ay=JSON.stringify(V)!==F,bh=JSON.stringify($)!==q,iy=JSON.stringify(Q)!==ce,oy=JSON.stringify(ye)!==Oe,sy=JSON.stringify(we)!==nt,ly=JSON.stringify(dt)!==dr,ha=JSON.stringify(Xt)!==Fi,He=JSON.stringify(Ot)!==lu,uy=ry||ny||ay||bh||iy||oy||sy||ly||ha||He,Dt=async(ie,Je,kt)=>{const Be=await fetch(`/api/adapter-config/${ie}/${Je}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({value:kt})});if(!Be.ok){const lt=await Be.json().catch(()=>({}));throw new Error(lt.detail||`Failed to save ${ie}.${Je}`)}},cy=async(ie,Je)=>{k(kt=>({...kt,[ie]:Je}));try{await fetch(`/api/adapter-meta/${ie}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({include_in_llm_context:Je})})}catch{}},hy=async()=>{if(e){h(!0),v(null),m(null);try{if(ry){const ie=await fetch("/api/config/environmental",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),Je=await ie.json();if(!ie.ok)throw new Error(Je.detail||"Save failed");n(JSON.stringify(e)),Je.restart_required&&x(!0)}if(ny){const ie=JSON.parse(B);z.freshness_seconds!==ie.freshness_seconds&&await Dt("wfigs","freshness_seconds",z.freshness_seconds),JSON.stringify(z.allowed_incident_types)!==JSON.stringify(ie.allowed_incident_types)&&await Dt("wfigs","allowed_incident_types",z.allowed_incident_types),z.cooldown_seconds!==ie.cooldown_seconds&&await Dt("wfigs","cooldown_seconds",z.cooldown_seconds),z.broadcast_on_acres!==ie.broadcast_on_acres&&await Dt("wfigs","broadcast_on_acres",z.broadcast_on_acres),z.broadcast_on_contained!==ie.broadcast_on_contained&&await Dt("wfigs","broadcast_on_contained",z.broadcast_on_contained),H(JSON.stringify(z))}if(ay){const ie=JSON.parse(F);V.digest_enabled!==ie.digest_enabled&&await Dt("fires","digest_enabled",V.digest_enabled),JSON.stringify(V.digest_schedule)!==JSON.stringify(ie.digest_schedule)&&await Dt("fires","digest_schedule",V.digest_schedule),V.digest_timezone!==ie.digest_timezone&&await Dt("fires","digest_timezone",V.digest_timezone),Z(JSON.stringify(V))}if(bh){const ie=JSON.parse(q);$.min_magnitude!==ie.min_magnitude&&await Dt("tomtom_incidents","min_magnitude",$.min_magnitude),$.drop_non_present!==ie.drop_non_present&&await Dt("tomtom_incidents","drop_non_present",$.drop_non_present),$.drop_zero_magnitude!==ie.drop_zero_magnitude&&await Dt("tomtom_incidents","drop_zero_magnitude",$.drop_zero_magnitude),re(JSON.stringify($))}if(iy){const ie=JSON.parse(ce);Q.min_severity!==ie.min_severity&&await Dt("itd_511","min_severity",Q.min_severity),JSON.stringify(Q.enabled_categories)!==JSON.stringify(ie.enabled_categories)&&await Dt("itd_511","enabled_categories",Q.enabled_categories),JSON.stringify(Q.enabled_sub_types)!==JSON.stringify(ie.enabled_sub_types)&&await Dt("itd_511","enabled_sub_types",Q.enabled_sub_types),Ue(JSON.stringify(Q))}if(oy){const ie=JSON.parse(Oe);ye.broadcast!==ie.broadcast&&await Dt("wzdx","broadcast",ye.broadcast),ye.min_severity!==ie.min_severity&&await Dt("wzdx","min_severity",ye.min_severity),JSON.stringify(ye.sub_types)!==JSON.stringify(ie.sub_types)&&await Dt("wzdx","sub_types",ye.sub_types),be(JSON.stringify(ye))}if(sy){const ie=JSON.parse(nt);JSON.stringify(we.broadcast_severities)!==JSON.stringify(ie.broadcast_severities)&&await Dt("nws","broadcast_severities",we.broadcast_severities),we.duplicate_allowed_after_seconds!==ie.duplicate_allowed_after_seconds&&await Dt("nws","duplicate_allowed_after_seconds",we.duplicate_allowed_after_seconds),vt(JSON.stringify(we))}if(ly){const ie=JSON.parse(dr);dt.min_danger_level!==ie.min_danger_level&&await Dt("avalanche","min_danger_level",dt.min_danger_level),Rr(JSON.stringify(dt))}if(ha){const ie=JSON.parse(Fi);Xt.geomag_kp_floor!==ie.geomag_kp_floor&&await Dt("swpc","geomag_kp_floor",Xt.geomag_kp_floor),Xt.flare_class_floor!==ie.flare_class_floor&&await Dt("swpc","flare_class_floor",Xt.flare_class_floor),Xt.proton_pfu_floor!==ie.proton_pfu_floor&&await Dt("swpc","proton_pfu_floor",Xt.proton_pfu_floor),lv(JSON.stringify(Xt))}if(He){const ie=JSON.parse(lu);Ot.enabled!==ie.enabled&&await Dt("satpass","enabled",Ot.enabled),JSON.stringify(Ot.observers)!==JSON.stringify(ie.observers)&&await Dt("satpass","observers",Ot.observers),Ot.min_elevation!==ie.min_elevation&&await Dt("satpass","min_elevation",Ot.min_elevation),JSON.stringify(Ot.norad_ids)!==JSON.stringify(ie.norad_ids)&&await Dt("satpass","norad_ids",Ot.norad_ids),Ot.max_broadcasts_per_hour!==ie.max_broadcasts_per_hour&&await Dt("satpass","max_broadcasts_per_hour",Ot.max_broadcasts_per_hour),Ot.dry_run!==ie.dry_run&&await Dt("satpass","dry_run",Ot.dry_run),uv(JSON.stringify(Ot))}m("Config saved"),setTimeout(()=>m(null),3e3)}catch(ie){v(ie instanceof Error?ie.message:"Save failed")}finally{h(!1)}}},mv=()=>{e&&t(JSON.parse(r)),E(JSON.parse(B||JSON.stringify(z))),U(JSON.parse(F||JSON.stringify(V))),W(JSON.parse(q||JSON.stringify($))),se(JSON.parse(ce||JSON.stringify(Q))),me(JSON.parse(Oe||JSON.stringify(ye))),yt(JSON.parse(nt||JSON.stringify(we))),Ft(JSON.parse(dr||JSON.stringify(dt))),mn(JSON.parse(Fi||JSON.stringify(Xt))),Ho(JSON.parse(lu||JSON.stringify(Ot))),qm(null),_h(null)},fy=async()=>{try{await fetch("/api/restart",{method:"POST"}),x(!1),m("Restart initiated")}catch{v("Restart failed")}},Ce=ie=>e&&t({...e,...ie}),$n=ie=>_w&&!hv.includes(ie),wh={nws:"nws",fires:"wfigs",firms:"firms",swpc:"swpc",ducting:"ducting",traffic:"tomtom_incidents",roads511:"itd_511",wzdx:"wzdx",usgs:"usgs",usgs_quake:"usgs_quake",avalanche:"avalanche",satpass:"satpass"},bw=(ca==null?void 0:ca.toggles)||{},ww=ca!==null&&JSON.stringify(ca)!==fv,uu=(ie,Je)=>{if(!ca)return;const kt=ca.toggles||{};Vi({...ca,toggles:{...kt,[ie]:{...kt[ie]||{},name:ie,...Je}}})},dy=async()=>{if(ca){vv(!0),ey(null),gv(null);try{const ie=await fetch("/api/config/notifications");if(!ie.ok)throw new Error("Failed to re-fetch notifications config");const Je=await ie.json(),kt={...Je,toggles:{...Je.toggles||{}}},Be=ca.toggles||{};for(const{key:In}of Yl){const er=Be[In];if(!er)continue;const J=(Je.toggles||{})[In]||{};kt.toggles[In]={...J,name:J.name||In,enabled:er.enabled,min_severity:er.min_severity,freshness_seconds:er.freshness_seconds??J.freshness_seconds??600,cooldown_seconds:er.cooldown_seconds??J.cooldown_seconds??0,regions:er.regions??J.regions??[]}}const lt=await fetch("/api/config/notifications",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(kt)}),ci=await lt.json();if(!lt.ok)throw new Error(ci.detail||"Save failed");Vi(kt),Qm(JSON.stringify(kt)),gv("Family settings saved"),setTimeout(()=>gv(null),3e3)}catch(ie){ey(ie instanceof Error?ie.message:"Save failed")}finally{vv(!1)}}},Sw=()=>{fv&&Vi(JSON.parse(fv))};if(l)return f.jsx("div",{className:"flex items-center justify-center h-64 text-[#777]",children:"Loading environmental config…"});if(!e)return f.jsx("div",{className:"flex items-center justify-center h-64 text-red-400",children:d||"No config"});const Sh=ie=>a==null?void 0:a.feeds.find(Je=>Je.source===Hu[ie].health),Cw=ie=>o.filter(Je=>Je.source===Hu[ie].health),Tw=ie=>{const Je=ACe[ie];if(!Je)return!0;const kt=P[Je];return kt===void 0?!0:kt},zs=JT.find(ie=>ie.key===_),Ar=zs.adapters.length===0?null:S&&zs.adapters.includes(S)?S:zs.adapters[0],Mw=ie=>{var Je,kt,Be,lt,ci,In,er;switch(ie){case"nws":return f.jsxs(f.Fragment,{children:[$n("nws")?f.jsxs("div",{className:"text-xs text-[#666] bg-bg-hover px-3 py-2 border border-border/50",children:["Geographic scope (zones, areas) is set by the"," ",f.jsx("a",{href:"/coverage",className:"text-accent hover:underline",children:"Coverage map"}),'. Enable "Use own config" for NWS on that page to edit zones here.']}):f.jsxs(f.Fragment,{children:[f.jsx(En,{label:"NWS Zones",value:e.nws_zones,onChange:J=>Ce({nws_zones:J}),helper:"Zone IDs like IDZ016, IDZ030",infoLink:"https://www.weather.gov/pimar/PubZone"}),f.jsx(En,{label:"NWS Areas",value:e.nws.areas??[],onChange:J=>Ce({nws:{...e.nws,areas:J}}),helper:"State codes NWS pulls, e.g. ID"})]}),e.nws.feed_source!=="central"&&f.jsxs(f.Fragment,{children:[f.jsx(it,{label:"User Agent",value:e.nws.user_agent,onChange:J=>Ce({nws:{...e.nws,user_agent:J}}),placeholder:"(MeshAI, you@email.com)",helper:"Format: (app_name, contact_email)"}),f.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[f.jsx(Se,{label:"Tick Seconds",value:e.nws.tick_seconds,onChange:J=>Ce({nws:{...e.nws,tick_seconds:J}}),min:30}),f.jsx(on,{label:"Min Severity",value:e.nws.severity_min,onChange:J=>Ce({nws:{...e.nws,severity_min:J}}),options:[{value:"minor",label:"Minor"},{value:"moderate",label:"Moderate"},{value:"severe",label:"Severe"},{value:"extreme",label:"Extreme"}]})]})]}),e.nws.feed_source==="central"&&f.jsxs("div",{className:"border-t border-border pt-4 mt-4",children:[f.jsx("div",{className:"text-[10px] font-sans font-medium uppercase tracking-widest text-[#666] mb-3",children:"Broadcast Filters"}),f.jsxs("div",{className:"mb-3",children:[f.jsx("div",{className:"text-xs font-sans text-[#777] mb-2",children:"Severities to broadcast"}),f.jsx("div",{className:"flex gap-6",children:["Extreme","Severe","Moderate","Minor"].map(J=>f.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[f.jsx("input",{type:"checkbox",checked:we.broadcast_severities.includes(J),onChange:je=>{const Ye=we.broadcast_severities;yt({...we,broadcast_severities:je.target.checked?[...Ye,J]:Ye.filter(Re=>Re!==J)})},className:"w-4 h-4 accent-[#f59e0b]"}),f.jsx("span",{className:"text-sm font-sans text-[#e0e0e0]",children:J})]},J))})]}),f.jsx(Se,{label:"Re-broadcast Cooldown (seconds)",value:we.duplicate_allowed_after_seconds,onChange:J=>yt({...we,duplicate_allowed_after_seconds:J}),min:0,helper:"Minimum seconds before the same alert ID can be re-broadcast"})]})]});case"swpc":return f.jsx("div",{className:"space-y-6",children:f.jsxs("div",{children:[f.jsx("div",{className:"text-[10px] font-sans font-medium uppercase tracking-widest text-[#666] mb-3",children:"Broadcast Thresholds"}),f.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[f.jsx(on,{label:"Geomag Kp Floor",value:String(Xt.geomag_kp_floor),onChange:J=>mn({...Xt,geomag_kp_floor:Number(J)}),options:[{value:"5",label:"5 — G1 Minor"},{value:"6",label:"6 — G2 Moderate"},{value:"7",label:"7 — G3 Strong"},{value:"8",label:"8 — G4 Severe"},{value:"9",label:"9 — G5 Extreme"}],helper:"Kp at or above this triggers geomag broadcast"}),f.jsx(on,{label:"Flare Class Floor",value:Xt.flare_class_floor,onChange:J=>mn({...Xt,flare_class_floor:J}),options:[{value:"M1",label:"M1 — R1 Minor"},{value:"M5",label:"M5 — R2 Moderate"},{value:"X1",label:"X1 — R3 Strong"},{value:"X10",label:"X10 — R4 Severe"}],helper:"X-ray flare class floor for broadcast"}),f.jsx(on,{label:"Proton pfu Floor",value:String(Xt.proton_pfu_floor),onChange:J=>mn({...Xt,proton_pfu_floor:Number(J)}),options:[{value:"10",label:"10 — S1 Minor"},{value:"100",label:"100 — S2 Moderate"},{value:"1000",label:"1000 — S3 Strong"},{value:"10000",label:"10000 — S4 Severe"}],helper:"Proton flux (pfu) at ≥10 MeV for broadcast"})]})]})});case"ducting":return f.jsxs("div",{className:"space-y-3",children:[f.jsx(Se,{label:"Tick Seconds",value:e.ducting.tick_seconds,onChange:J=>Ce({ducting:{...e.ducting,tick_seconds:J}}),min:60}),$n("ducting")?f.jsxs("div",{className:"text-xs text-[#666] bg-bg-hover px-3 py-2 border border-border/50",children:["Lat/lon is set by the"," ",f.jsx("a",{href:"/coverage",className:"text-accent hover:underline",children:"Coverage map"}),"."]}):f.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[f.jsx(Se,{label:"Latitude",value:e.ducting.latitude,onChange:J=>Ce({ducting:{...e.ducting,latitude:J}}),step:.01}),f.jsx(Se,{label:"Longitude",value:e.ducting.longitude,onChange:J=>Ce({ducting:{...e.ducting,longitude:J}}),step:.01})]})]});case"fires":return f.jsxs("div",{className:"space-y-6",children:[e.fires.feed_source!=="central"&&f.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[f.jsx(Se,{label:"Tick Seconds",value:e.fires.tick_seconds,onChange:J=>Ce({fires:{...e.fires,tick_seconds:J}}),min:60}),$n("fires")?f.jsxs("div",{className:"text-xs text-[#666] bg-bg-hover px-3 py-2 border border-border/50 self-end",children:["State scoped by"," ",f.jsx("a",{href:"/coverage",className:"text-accent hover:underline",children:"Coverage map"}),"."]}):f.jsx(on,{label:"State",value:e.fires.state,onChange:J=>Ce({fires:{...e.fires,state:J}}),options:USe})]}),f.jsxs("div",{children:[f.jsx("div",{className:"text-[10px] font-sans font-medium uppercase tracking-widest text-[#666] mb-3",children:"Incident Types"}),f.jsx("div",{className:"flex gap-6",children:[["WF","Wildfire"],["RX","Prescribed Burn"],["OTHER","Other"]].map(([J,je])=>{var Ye;return f.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[f.jsx("input",{type:"checkbox",checked:((Ye=z.allowed_incident_types)==null?void 0:Ye.includes(J))??J==="WF",onChange:Re=>{const ut=z.allowed_incident_types??["WF"];E({...z,allowed_incident_types:Re.target.checked?[...ut,J]:ut.filter(fa=>fa!==J)})},className:"w-4 h-4 accent-[#f59e0b]"}),f.jsx("span",{className:"text-sm font-sans text-[#e0e0e0]",children:je})]},J)})})]}),f.jsxs("div",{children:[f.jsx("div",{className:"text-[10px] font-sans font-medium uppercase tracking-widest text-[#666] mb-3",children:"Broadcast Triggers"}),f.jsxs("div",{className:"space-y-2",children:[f.jsxs("label",{className:"flex items-center justify-between",children:[f.jsx("span",{className:"text-sm font-sans text-[#e0e0e0]",children:"Broadcast on acres increase"}),f.jsx("input",{type:"checkbox",checked:z.broadcast_on_acres,onChange:J=>E({...z,broadcast_on_acres:J.target.checked}),className:"w-4 h-4 accent-[#f59e0b]"})]}),f.jsxs("label",{className:"flex items-center justify-between",children:[f.jsx("span",{className:"text-sm font-sans text-[#e0e0e0]",children:"Broadcast on containment increase"}),f.jsx("input",{type:"checkbox",checked:z.broadcast_on_contained,onChange:J=>E({...z,broadcast_on_contained:J.target.checked}),className:"w-4 h-4 accent-[#f59e0b]"})]})]})]}),f.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[f.jsx(Se,{label:"Update Cooldown (hours)",value:Math.round(z.cooldown_seconds/3600),onChange:J=>E({...z,cooldown_seconds:J*3600}),min:0,helper:"Minimum hours between updates for the same fire"}),f.jsx(Se,{label:"Freshness Window (hours)",value:Math.round(z.freshness_seconds/3600),onChange:J=>E({...z,freshness_seconds:J*3600}),min:0,helper:"0 = always broadcast regardless of event age"})]}),f.jsxs("div",{className:"border-t border-border pt-4 mt-2",children:[f.jsx("div",{className:"text-[10px] font-sans font-medium uppercase tracking-widest text-[#666] mb-3",children:"Fire Digest"}),f.jsxs("label",{className:"flex items-center justify-between",children:[f.jsx("span",{className:"text-sm font-sans text-[#e0e0e0]",children:"Enable daily digest"}),f.jsx("input",{type:"checkbox",checked:V.digest_enabled,onChange:J=>U({...V,digest_enabled:J.target.checked}),className:"w-4 h-4 accent-[#f59e0b]"})]}),V.digest_enabled&&f.jsxs("div",{className:"mt-3 space-y-3",children:[f.jsx(En,{label:"Schedule (HH:MM)",value:V.digest_schedule,onChange:J=>U({...V,digest_schedule:J}),helper:"Digest times in HH:MM format, e.g. 06:00 and 18:00"}),f.jsx(on,{label:"Timezone",value:V.digest_timezone,onChange:J=>U({...V,digest_timezone:J}),options:[{value:"America/Boise",label:"Mountain — America/Boise"},{value:"America/Los_Angeles",label:"Pacific — America/Los_Angeles"},{value:"America/Denver",label:"Mountain — America/Denver"},{value:"America/Chicago",label:"Central — America/Chicago"},{value:"America/New_York",label:"Eastern — America/New_York"},{value:"UTC",label:"UTC"}]})]})]})]});case"avalanche":return f.jsxs("div",{className:"space-y-6",children:[e.avalanche.feed_source!=="central"&&f.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[f.jsx(Se,{label:"Tick Seconds",value:e.avalanche.tick_seconds,onChange:J=>Ce({avalanche:{...e.avalanche,tick_seconds:J}}),min:60}),f.jsx(XT,{label:"Season Months",value:e.avalanche.season_months,onChange:J=>Ce({avalanche:{...e.avalanche,season_months:J}}),helper:"e.g., 12, 1, 2, 3, 4"})]}),$n("avalanche")?f.jsxs("div",{className:"text-xs text-[#666] bg-bg-hover px-3 py-2 border border-border/50",children:["Avalanche center IDs are set by the"," ",f.jsx("a",{href:"/coverage",className:"text-accent hover:underline",children:"Coverage map"}),"."]}):f.jsx(En,{label:"Center IDs",value:e.avalanche.center_ids,onChange:J=>Ce({avalanche:{...e.avalanche,center_ids:J}}),helper:"e.g., SNFAC",infoLink:"https://avalanche.org/avalanche-centers/"}),f.jsxs("div",{children:[f.jsx("div",{className:"text-[10px] font-sans font-medium uppercase tracking-widest text-[#666] mb-3",children:"Broadcast Settings"}),f.jsx("div",{className:"grid grid-cols-2 gap-4",children:f.jsx(on,{label:"Min Danger Level",value:String(dt.min_danger_level),onChange:J=>Ft({...dt,min_danger_level:Number(J)}),options:[{value:"3",label:"3 — Considerable"},{value:"4",label:"4 — High"},{value:"5",label:"5 — Extreme"}],helper:"Minimum avalanche danger level to broadcast"})})]})]});case"usgs":return f.jsxs(f.Fragment,{children:[f.jsx(Se,{label:"Tick Seconds",value:e.usgs.tick_seconds,onChange:J=>Ce({usgs:{...e.usgs,tick_seconds:J}}),min:900,helper:"Minimum 15 min (900s). tick_seconds is the native-mode poll interval; ignored when this adapter is set to feed_source=central."}),$n("usgs")?f.jsxs("div",{className:"text-xs text-[#666] bg-bg-hover px-3 py-2 border border-border/50",children:["Gauge site IDs are set by the"," ",f.jsx("a",{href:"/coverage",className:"text-accent hover:underline",children:"Coverage map"}),"."]}):f.jsx(En,{label:"Site IDs",value:e.usgs.sites,onChange:J=>Ce({usgs:{...e.usgs,sites:J}}),helper:"USGS gauge site numbers",infoLink:"https://waterdata.usgs.gov/nwis"}),f.jsxs("div",{children:[f.jsx("label",{className:"text-xs font-sans text-[#777] mb-1 block",children:"Flood Thresholds (advanced JSON)"}),f.jsx("textarea",{value:Xm??JSON.stringify(e.usgs.flood_thresholds??{},null,2),onChange:J=>{const je=J.target.value;qm(je);try{const Ye=JSON.parse(je);_h(null),Ce({usgs:{...e.usgs,flood_thresholds:Ye}})}catch(Ye){_h(Ye instanceof Error?Ye.message:"Invalid JSON")}},rows:6,spellCheck:!1,className:"w-full bg-[#0d0d0d] border border-border px-3 py-2 text-sm font-mono"}),cv&&f.jsxs("p",{className:"text-xs text-red-400 mt-1",children:["Invalid JSON — not saved: ",cv]}),f.jsxs("p",{className:"text-xs text-[#666] mt-1",children:["Per-site flood levels, shape ","{",'"site_id": ',"{",' "flow": X, "height": Y ',"}","}"]})]})]});case"usgs_quake":return f.jsxs("div",{className:"space-y-6",children:[e.usgs_quake.feed_source!=="central"&&f.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[f.jsx(Se,{label:"Tick Seconds",value:e.usgs_quake.tick_seconds,onChange:J=>Ce({usgs_quake:{...e.usgs_quake,tick_seconds:J}}),min:60}),f.jsx(it,{label:"Region Tag",value:e.usgs_quake.region,onChange:J=>Ce({usgs_quake:{...e.usgs_quake,region:J}})})]}),f.jsxs("div",{children:[f.jsx("div",{className:"text-[10px] font-sans font-medium uppercase tracking-widest text-[#666] mb-3",children:"Native Feed"}),f.jsxs("div",{className:"space-y-3",children:[f.jsx(it,{label:"Quake Feed URL",value:e.usgs_quake.feed_url,onChange:J=>Ce({usgs_quake:{...e.usgs_quake,feed_url:J}})}),f.jsx("div",{className:"grid grid-cols-2 gap-4",children:f.jsx(Se,{label:"Min Magnitude",value:e.usgs_quake.min_magnitude??2.5,onChange:J=>Ce({usgs_quake:{...e.usgs_quake,min_magnitude:J}}),step:.1,min:0,helper:"Native quake magnitude floor"})}),$n("usgs_quake")?f.jsxs("div",{className:"text-xs text-[#666] bg-bg-hover px-3 py-2 border border-border/50",children:["Bounding box is set by the"," ",f.jsx("a",{href:"/coverage",className:"text-accent hover:underline",children:"Coverage map"}),"."]}):f.jsx(XT,{label:"Bounding Box [W, S, E, N]",value:e.usgs_quake.bbox??[],onChange:J=>Ce({usgs_quake:{...e.usgs_quake,bbox:J}}),helper:"Four values: west, south, east, north"})]})]}),f.jsxs("div",{children:[f.jsx("div",{className:"text-[10px] font-sans font-medium uppercase tracking-widest text-[#666] mb-3",children:"Magnitude Thresholds"}),f.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[f.jsx(Se,{label:"Global Floor",value:e.usgs_quake.global_mag_floor,onChange:J=>Ce({usgs_quake:{...e.usgs_quake,global_mag_floor:J}}),step:.1,min:0,helper:"Broadcast anywhere at or above this magnitude"}),f.jsx(Se,{label:"Regional Floor",value:e.usgs_quake.regional_mag_floor,onChange:J=>Ce({usgs_quake:{...e.usgs_quake,regional_mag_floor:J}}),step:.1,min:0,helper:"Reduced floor within regional radius"}),f.jsx(Se,{label:"Regional Radius (mi)",value:e.usgs_quake.regional_radius_mi,onChange:J=>Ce({usgs_quake:{...e.usgs_quake,regional_radius_mi:J}}),min:50,helper:"Radius around region centroid for reduced floor"}),f.jsx(Se,{label:"Escalation Floor",value:e.usgs_quake.escalate_mag_floor,onChange:J=>Ce({usgs_quake:{...e.usgs_quake,escalate_mag_floor:J}}),step:.1,min:0,helper:"Magnitude at which broadcast uses warning emoji"})]})]}),f.jsxs("div",{children:[f.jsx("div",{className:"text-[10px] font-sans font-medium uppercase tracking-widest text-[#666] mb-3",children:"PAGER Alert Levels"}),f.jsx("div",{className:"text-xs text-[#666] mb-2",children:"Broadcast at any magnitude when USGS PAGER alert reaches these levels"}),f.jsx("div",{className:"flex gap-6",children:["green","yellow","orange","red"].map(J=>f.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[f.jsx("input",{type:"checkbox",checked:(e.usgs_quake.broadcast_pager_alerts??[]).includes(J),onChange:je=>{const Ye=e.usgs_quake.broadcast_pager_alerts??[];Ce({usgs_quake:{...e.usgs_quake,broadcast_pager_alerts:je.target.checked?[...Ye,J]:Ye.filter(Re=>Re!==J)}})},className:"w-4 h-4 accent-[#f59e0b]"}),f.jsx("span",{className:"text-sm font-sans text-[#e0e0e0] capitalize",children:J})]},J))})]})]});case"traffic":return f.jsxs(f.Fragment,{children:[f.jsx(Ep,{envVar:"TOMTOM_API_KEY",label:"API Key",helper:"developer.tomtom.com"}),f.jsx(Se,{label:"Tick Seconds",value:e.traffic.tick_seconds,onChange:J=>Ce({traffic:{...e.traffic,tick_seconds:J}}),min:60}),$n("traffic")?f.jsxs("div",{className:"text-xs text-[#666] bg-bg-hover px-3 py-2 border border-border/50",children:["Traffic corridors are set by the"," ",f.jsx("a",{href:"/coverage",className:"text-accent hover:underline",children:"Coverage map"}),"."]}):f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"text-xs text-[#666] mt-2",children:"Corridors:"}),(e.traffic.corridors||[]).map((J,je)=>f.jsxs("div",{className:"grid grid-cols-4 gap-2 items-end",children:[f.jsx(it,{label:"Name",value:J.name,onChange:Ye=>{const Re=[...e.traffic.corridors];Re[je]={...J,name:Ye},Ce({traffic:{...e.traffic,corridors:Re}})}}),f.jsx(Se,{label:"Lat",value:J.lat,onChange:Ye=>{const Re=[...e.traffic.corridors];Re[je]={...J,lat:Ye},Ce({traffic:{...e.traffic,corridors:Re}})},step:.01}),f.jsx(Se,{label:"Lon",value:J.lon,onChange:Ye=>{const Re=[...e.traffic.corridors];Re[je]={...J,lon:Ye},Ce({traffic:{...e.traffic,corridors:Re}})},step:.01}),f.jsx("button",{onClick:()=>Ce({traffic:{...e.traffic,corridors:e.traffic.corridors.filter((Ye,Re)=>Re!==je)}}),className:"px-2 py-2 text-xs text-red-400 hover:text-red-300 border border-red-400/30",children:"Remove"})]},je)),f.jsx("button",{onClick:()=>Ce({traffic:{...e.traffic,corridors:[...e.traffic.corridors||[],{name:"",lat:0,lon:0}]}}),className:"text-xs text-accent hover:underline",children:"+ Add Corridor"})]}),f.jsxs("div",{className:"border-t border-border pt-4 mt-4",children:[f.jsx("div",{className:"text-[10px] font-sans font-medium uppercase tracking-widest text-[#666] mb-3",children:"Broadcast Filters"}),f.jsx("div",{className:"grid grid-cols-2 gap-4",children:f.jsxs("div",{children:[f.jsx("label",{className:"text-xs font-sans text-[#777] mb-1 block",children:"Minimum Magnitude"}),f.jsxs("select",{value:$.min_magnitude,onChange:J=>W({...$,min_magnitude:parseInt(J.target.value)}),className:"w-full bg-[#0d0d0d] border border-border px-3 py-2 text-sm",children:[f.jsx("option",{value:1,children:"1 — Minor (all)"}),f.jsx("option",{value:2,children:"2 — Moderate (yellow+)"}),f.jsx("option",{value:3,children:"3 — Major (orange+)"}),f.jsx("option",{value:4,children:"4 — Severe (red only)"})]}),f.jsx("p",{className:"text-xs text-[#666] mt-1",children:"Drop TomTom incidents below this severity level"})]})}),f.jsxs("div",{className:"mt-3 space-y-2",children:[f.jsxs("label",{className:"flex items-center justify-between",children:[f.jsx("span",{className:"text-sm font-sans text-[#e0e0e0]",children:"Drop non-present time validity"}),f.jsx("input",{type:"checkbox",checked:$.drop_non_present,onChange:J=>W({...$,drop_non_present:J.target.checked}),className:"w-4 h-4 accent-[#f59e0b]"})]}),f.jsxs("label",{className:"flex items-center justify-between",children:[f.jsx("span",{className:"text-sm font-sans text-[#e0e0e0]",children:"Drop zero-magnitude events"}),f.jsx("input",{type:"checkbox",checked:$.drop_zero_magnitude,onChange:J=>W({...$,drop_zero_magnitude:J.target.checked}),className:"w-4 h-4 accent-[#f59e0b]"})]})]})]})]});case"roads511":return f.jsxs(f.Fragment,{children:[f.jsx(it,{label:"Base URL",value:e.roads511.base_url,onChange:J=>Ce({roads511:{...e.roads511,base_url:J}}),placeholder:"https://511.yourstate.gov/api/v2"}),f.jsx(Ep,{envVar:"ROADS511_API_KEY",label:"API Key",helper:"Leave unset if 511 needs no key"}),f.jsx(Se,{label:"Tick Seconds",value:e.roads511.tick_seconds,onChange:J=>Ce({roads511:{...e.roads511,tick_seconds:J}}),min:60}),f.jsx(En,{label:"Endpoints",value:e.roads511.endpoints,onChange:J=>Ce({roads511:{...e.roads511,endpoints:J}}),helper:"e.g., /get/event"}),$n("roads511")?f.jsxs("div",{className:"text-xs text-[#666] bg-bg-hover px-3 py-2 border border-border/50",children:["Bounding box is set by the"," ",f.jsx("a",{href:"/coverage",className:"text-accent hover:underline",children:"Coverage map"}),"."]}):f.jsx("div",{className:"grid grid-cols-4 gap-2",children:["West","South","East","North"].map((J,je)=>{var Ye;return f.jsx(Se,{label:J,value:((Ye=e.roads511.bbox)==null?void 0:Ye[je])??0,onChange:Re=>{const ut=[...e.roads511.bbox||[0,0,0,0]];ut[je]=Re,Ce({roads511:{...e.roads511,bbox:ut}})},step:.01},J)})}),f.jsxs("div",{className:"border-t border-border pt-4 mt-4",children:[f.jsx("div",{className:"text-[10px] font-sans font-medium uppercase tracking-widest text-[#666] mb-3",children:"Broadcast Filters"}),f.jsx("div",{className:"grid grid-cols-2 gap-4",children:f.jsxs("div",{children:[f.jsx("label",{className:"text-xs font-sans text-[#777] mb-1 block",children:"Minimum Severity"}),f.jsxs("select",{value:Q.min_severity,onChange:J=>se({...Q,min_severity:J.target.value}),className:"w-full bg-[#0d0d0d] border border-border px-3 py-2 text-sm",children:[f.jsx("option",{value:"None",children:"None (all)"}),f.jsx("option",{value:"Minor",children:"Minor+"}),f.jsx("option",{value:"Major",children:"Major only"})]}),f.jsx("p",{className:"text-xs text-[#666] mt-1",children:"Drop ITD 511 events below this severity"})]})}),f.jsxs("div",{className:"mt-4",children:[f.jsx("div",{className:"text-xs font-sans text-[#777] mb-2",children:"Categories"}),f.jsx("div",{className:"flex gap-6",children:[["incident","Incident"],["closure","Closure"],["special_event","Special Event"]].map(([J,je])=>f.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[f.jsx("input",{type:"checkbox",checked:Q.enabled_categories.includes(J),onChange:Ye=>{const Re=Q.enabled_categories;se({...Q,enabled_categories:Ye.target.checked?[...Re,J]:Re.filter(ut=>ut!==J)})},className:"w-4 h-4 accent-[#f59e0b]"}),f.jsx("span",{className:"text-sm font-sans text-[#e0e0e0]",children:je})]},J))})]}),f.jsxs("div",{className:"mt-4",children:[f.jsx("div",{className:"text-xs font-sans text-[#777] mb-2",children:"Sub-types"}),f.jsx("div",{className:"grid grid-cols-2 gap-2",children:[["accident","Crash"],["road_closed","Road Closed"],["lane_closed","Lane Closure"],["vehicle_on_fire","Vehicle Fire"],["flooding","Flooding"],["debris","Debris"],["road_works","Road Works"],["disabled_vehicle","Disabled Vehicle"]].map(([J,je])=>f.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[f.jsx("input",{type:"checkbox",checked:Q.enabled_sub_types.includes(J),onChange:Ye=>{const Re=Q.enabled_sub_types;se({...Q,enabled_sub_types:Ye.target.checked?[...Re,J]:Re.filter(ut=>ut!==J)})},className:"w-4 h-4 accent-[#f59e0b]"}),f.jsx("span",{className:"text-sm font-sans text-[#e0e0e0]",children:je})]},J))})]})]})]});case"wzdx":return f.jsxs(f.Fragment,{children:[((Je=e.wzdx)==null?void 0:Je.feed_source)!=="central"&&f.jsxs(f.Fragment,{children:[f.jsx(it,{label:"Base URL",value:((kt=e.wzdx)==null?void 0:kt.base_url)??"",onChange:J=>Ce({wzdx:{...e.wzdx,base_url:J}}),placeholder:"https://511.yourstate.gov/api/v2"}),f.jsx(Ep,{envVar:"WZDX_API_KEY",label:"API Key",helper:"Leave unset if not required"}),f.jsx(Se,{label:"Tick Seconds",value:((Be=e.wzdx)==null?void 0:Be.tick_seconds)??300,onChange:J=>Ce({wzdx:{...e.wzdx,tick_seconds:J}}),min:60}),f.jsx(En,{label:"Endpoints",value:((lt=e.wzdx)==null?void 0:lt.endpoints)??["/get/event"],onChange:J=>Ce({wzdx:{...e.wzdx,endpoints:J}}),helper:"e.g., /get/event"}),$n("wzdx")?f.jsxs("div",{className:"text-xs text-[#666] bg-bg-hover px-3 py-2 border border-border/50",children:["Bounding box and states are set by the"," ",f.jsx("a",{href:"/coverage",className:"text-accent hover:underline",children:"Coverage map"}),"."]}):f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"grid grid-cols-4 gap-2",children:["West","South","East","North"].map((J,je)=>{var Ye,Re;return f.jsx(Se,{label:J,value:((Re=(Ye=e.wzdx)==null?void 0:Ye.bbox)==null?void 0:Re[je])??0,onChange:ut=>{var hi;const fa=[...((hi=e.wzdx)==null?void 0:hi.bbox)||[0,0,0,0]];fa[je]=ut,Ce({wzdx:{...e.wzdx,bbox:fa}})},step:.01},J)})}),f.jsx("div",{className:"text-xs text-[#666]",children:"Bounding box [W,S,E,N] geographic filter"}),f.jsx(En,{label:"States",value:((ci=e.wzdx)==null?void 0:ci.states)??[],onChange:J=>Ce({wzdx:{...e.wzdx,states:J}}),helper:"2-letter state codes to include from the WZDx Feed Registry, e.g. ID, OR"})]}),f.jsx(it,{label:"Registry URL",value:((In=e.wzdx)==null?void 0:In.registry_url)??"",onChange:J=>Ce({wzdx:{...e.wzdx,registry_url:J}}),placeholder:"https://datahub.transportation.gov/resource/69qe-yiui.json?$limit=200",helper:"FHWA WZDx Feed Registry (Socrata) URL — lists every state DOT feed"}),f.jsx(Se,{label:"Registry TTL (sec)",value:((er=e.wzdx)==null?void 0:er.registry_ttl)??21600,onChange:J=>Ce({wzdx:{...e.wzdx,registry_ttl:J}}),min:0,helper:"How often to re-fetch the WZDx registry (default 21600 = 6h)"})]}),f.jsxs("div",{className:"border-t border-border pt-4 mt-4",children:[f.jsx("div",{className:"text-[10px] font-sans font-medium uppercase tracking-widest text-[#666] mb-3",children:"Broadcast Settings"}),f.jsxs("label",{className:"flex items-center justify-between",children:[f.jsx("span",{className:"text-sm font-sans text-[#e0e0e0]",children:"Broadcast work zone events"}),f.jsx("input",{type:"checkbox",checked:ye.broadcast,onChange:J=>me({...ye,broadcast:J.target.checked}),className:"w-4 h-4 accent-[#f59e0b]"})]}),ye.broadcast?f.jsxs("div",{className:"space-y-3 mt-3",children:[f.jsxs("div",{children:[f.jsx("label",{className:"text-xs font-sans text-[#777] mb-1 block",children:"Min Severity"}),f.jsxs("select",{value:ye.min_severity,onChange:J=>me({...ye,min_severity:J.target.value}),className:"w-full bg-[#0d0d0d] border border-border px-3 py-2 text-sm",children:[f.jsx("option",{value:"None",children:"None (all)"}),f.jsx("option",{value:"Minor",children:"Minor+"}),f.jsx("option",{value:"Major",children:"Major only"})]})]}),f.jsxs("div",{children:[f.jsx("div",{className:"text-xs font-sans text-[#777] mb-2",children:"Sub-types"}),f.jsx("div",{className:"flex gap-6",children:[["road_works","Road Works"],["lane_closed","Lane Closure"],["road_closed","Road Closed"]].map(([J,je])=>f.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[f.jsx("input",{type:"checkbox",checked:ye.sub_types.includes(J),onChange:Ye=>{const Re=ye.sub_types;me({...ye,sub_types:Ye.target.checked?[...Re,J]:Re.filter(ut=>ut!==J)})},className:"w-4 h-4 accent-[#f59e0b]"}),f.jsx("span",{className:"text-sm font-sans text-[#e0e0e0]",children:je})]},J))})]})]}):f.jsxs("p",{className:"text-xs text-[#666] mt-2",children:["Work zone events stored for LLM context only ","—"," no mesh broadcasts."]})]})]});case"firms":return f.jsxs(f.Fragment,{children:[f.jsx(Ep,{envVar:"FIRMS_MAP_KEY",label:"MAP Key",helper:"NASA FIRMS MAP_KEY"}),f.jsx(Se,{label:"Tick Seconds",value:e.firms.tick_seconds,onChange:J=>Ce({firms:{...e.firms,tick_seconds:J}}),min:300}),f.jsx(on,{label:"Satellite Source",value:e.firms.source,onChange:J=>Ce({firms:{...e.firms,source:J}}),options:[{value:"VIIRS_SNPP_NRT",label:"VIIRS SNPP (NRT)"},{value:"VIIRS_NOAA20_NRT",label:"VIIRS NOAA-20 (NRT)"},{value:"MODIS_NRT",label:"MODIS (NRT)"}]}),f.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[f.jsx(Se,{label:"Day Range",value:e.firms.day_range,onChange:J=>Ce({firms:{...e.firms,day_range:J}}),min:1,max:10}),f.jsx(on,{label:"Min Confidence",value:e.firms.confidence_min,onChange:J=>Ce({firms:{...e.firms,confidence_min:J}}),options:[{value:"low",label:"Low"},{value:"nominal",label:"Nominal"},{value:"high",label:"High"}]}),f.jsx(Se,{label:"Proximity (km)",value:e.firms.proximity_km,onChange:J=>Ce({firms:{...e.firms,proximity_km:J}}),step:.5})]}),$n("firms")?f.jsxs("div",{className:"text-xs text-[#666] bg-bg-hover px-3 py-2 border border-border/50",children:["Bounding box is set by the"," ",f.jsx("a",{href:"/coverage",className:"text-accent hover:underline",children:"Coverage map"}),"."]}):f.jsx("div",{className:"grid grid-cols-4 gap-2",children:["West","South","East","North"].map((J,je)=>{var Ye;return f.jsx(Se,{label:J,value:((Ye=e.firms.bbox)==null?void 0:Ye[je])??0,onChange:Re=>{const ut=[...e.firms.bbox||[0,0,0,0]];ut[je]=Re,Ce({firms:{...e.firms,bbox:ut}})},step:.01},J)})})]});case"satpass":{const J=e.satpass.enabled?Ot.dry_run?{label:"DRY RUN",color:"text-sky-400 bg-sky-400/10 border border-sky-400/30",desc:" — logging only, nothing transmits"}:{label:"⚠ LIVE",color:"text-amber-400 bg-amber-500/20 border-2 border-amber-500 font-bold animate-pulse",desc:" — transmitting to mesh"}:{label:"OFF",color:"text-[#777] bg-[#1a1a1a]",desc:""};return f.jsxs("div",{className:"space-y-6",children:[f.jsxs("div",{className:`px-4 py-2.5 text-sm rounded ${J.color}`,children:[f.jsx("span",{className:"font-semibold",children:J.label}),J.desc&&f.jsx("span",{className:"font-normal",children:J.desc})]}),f.jsxs("div",{children:[f.jsx("div",{className:"text-[10px] font-sans font-medium uppercase tracking-widest text-[#666] mb-3",children:"Safety Controls"}),f.jsxs("div",{className:"space-y-4",children:[f.jsxs("div",{className:"flex items-center justify-between",children:[f.jsxs("div",{children:[f.jsx("span",{className:"text-sm text-[#e0e0e0]",children:"Dry run — log instead of transmit"}),f.jsx("p",{className:"text-xs text-[#666]",children:"When enabled, passes are logged but never broadcast to mesh"})]}),f.jsx("button",{onClick:()=>Ho({...Ot,dry_run:!Ot.dry_run}),className:`relative w-10 h-5 rounded-full transition-colors ${Ot.dry_run?"bg-sky-500":"bg-[#333]"}`,children:f.jsx("span",{className:`absolute top-0.5 left-0.5 w-4 h-4 rounded-full bg-white transition-transform ${Ot.dry_run?"translate-x-5":""}`})})]}),f.jsx(Se,{label:"Max broadcasts / hour",value:Ot.max_broadcasts_per_hour,onChange:je=>Ho({...Ot,max_broadcasts_per_hour:je}),min:1,max:60,helper:"Rate cap — broadcasts exceeding this limit are dropped"})]})]}),f.jsxs("div",{children:[f.jsx("div",{className:"text-[10px] font-sans font-medium uppercase tracking-widest text-[#666] mb-3",children:"Pass Filters"}),f.jsx("div",{className:"grid grid-cols-2 gap-4",children:f.jsx(Se,{label:"Min Elevation (deg)",value:Ot.min_elevation,onChange:je=>Ho({...Ot,min_elevation:je}),min:0,max:90,helper:"Minimum max elevation for a pass to be broadcast"})})]}),f.jsx(En,{label:"Observer Locations",value:Ot.observers,onChange:je=>Ho({...Ot,observers:je}),helper:"Observer names to include (empty = all)"}),f.jsx(En,{label:"NORAD IDs",value:Ot.norad_ids,onChange:je=>Ho({...Ot,norad_ids:je}),helper:"NORAD catalog IDs to broadcast (empty = broadcast nothing, opt-in only)"}),f.jsxs("div",{className:"border-t border-border pt-4 mt-2 space-y-6",children:[f.jsx("div",{className:"text-[10px] font-sans font-medium uppercase tracking-widest text-[#666]",children:"Native satpass (SGP4) — no Central required"}),f.jsxs("div",{children:[f.jsx("div",{className:"text-xs text-[#777] mb-2",children:"Observers (ground stations the predictor computes passes for)"}),$n("satpass")?f.jsxs("div",{className:"text-xs text-[#666] bg-bg-hover px-3 py-2 border border-border/50",children:["Observer locations are set by the"," ",f.jsx("a",{href:"/coverage",className:"text-accent hover:underline",children:"Coverage map"}),"."]}):f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"space-y-2",children:(e.satpass.observers||[]).map((je,Ye)=>f.jsxs("div",{className:"grid grid-cols-6 gap-2 items-end",children:[f.jsx(it,{label:"Slug",value:je.slug,onChange:Re=>{const ut=[...e.satpass.observers];ut[Ye]={...je,slug:Re},Ce({satpass:{...e.satpass,observers:ut}})},placeholder:"tvly"}),f.jsx(it,{label:"Name",value:je.name,onChange:Re=>{const ut=[...e.satpass.observers];ut[Ye]={...je,name:Re},Ce({satpass:{...e.satpass,observers:ut}})},placeholder:"Treasure Valley"}),f.jsx(Se,{label:"Lat",value:je.lat,onChange:Re=>{const ut=[...e.satpass.observers];ut[Ye]={...je,lat:Re},Ce({satpass:{...e.satpass,observers:ut}})},step:1e-4}),f.jsx(Se,{label:"Lon",value:je.lon,onChange:Re=>{const ut=[...e.satpass.observers];ut[Ye]={...je,lon:Re},Ce({satpass:{...e.satpass,observers:ut}})},step:1e-4}),f.jsx(Se,{label:"Alt (m)",value:je.alt_m,onChange:Re=>{const ut=[...e.satpass.observers];ut[Ye]={...je,alt_m:Re},Ce({satpass:{...e.satpass,observers:ut}})},step:1}),f.jsx("button",{onClick:()=>Ce({satpass:{...e.satpass,observers:e.satpass.observers.filter((Re,ut)=>ut!==Ye)}}),className:"px-2 py-2 text-xs text-red-400 hover:text-red-300 border border-red-400/30",children:"Remove"})]},Ye))}),f.jsx("button",{onClick:()=>Ce({satpass:{...e.satpass,observers:[...e.satpass.observers||[],{slug:"",name:"",lat:0,lon:0,alt_m:0}]}}),className:"text-xs text-accent hover:underline mt-2",children:"+ Add Observer"})]})]}),f.jsx(En,{label:"TLE Groups",value:e.satpass.tle_groups,onChange:je=>Ce({satpass:{...e.satpass,tle_groups:je}}),helper:"Celestrak GP group selectors, e.g. weather, stations, amateur",infoLink:"https://celestrak.org/NORAD/elements/"}),f.jsx(XT,{label:"NORAD IDs (native)",value:e.satpass.norad_ids,onChange:je=>Ce({satpass:{...e.satpass,norad_ids:je}}),helper:"Specific NORAD catalog IDs to also fetch/predict, e.g. 25544, 33591"}),f.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[f.jsx(Se,{label:"Min Elevation (deg)",value:e.satpass.min_elevation_deg,onChange:je=>Ce({satpass:{...e.satpass,min_elevation_deg:je}}),min:0,max:90,helper:"Native SGP4 pass filter (separate from Central min elevation above)"}),f.jsx(Se,{label:"Window (hours)",value:e.satpass.window_hours,onChange:je=>Ce({satpass:{...e.satpass,window_hours:je}}),min:1,max:168,helper:"Hours ahead to predict passes"}),f.jsx(Se,{label:"TLE Refresh (sec)",value:e.satpass.tle_refresh_seconds,onChange:je=>Ce({satpass:{...e.satpass,tle_refresh_seconds:je}}),min:3600,helper:"How often to re-fetch TLEs (default 21600 = 6h)"}),f.jsx(Se,{label:"Broadcast Lead (sec)",value:e.satpass.broadcast_lead_seconds??3600,onChange:je=>Ce({satpass:{...e.satpass,broadcast_lead_seconds:je}}),min:0,helper:"How far ahead of a pass to announce"})]})]})]})}}},Ch=e,Bs=(ie,Je)=>{const kt=e[ie]||{};Ce({[ie]:{...kt,...Je}})};return f.jsxs("div",{className:"space-y-6",children:[f.jsxs("div",{className:"flex items-center justify-between",children:[f.jsx("h1",{className:"text-xl font-semibold text-white",children:"Data Feeds"}),f.jsx("div",{className:"flex items-center gap-3",children:M==="curated"&&f.jsxs(f.Fragment,{children:[f.jsx(Bt,{label:"Feeds Enabled",checked:e.enabled,onChange:ie=>Ce({enabled:ie})}),uy&&f.jsxs(f.Fragment,{children:[f.jsxs("button",{onClick:mv,className:"flex items-center gap-1 px-3 py-1.5 text-sm text-[#777] hover:text-white border border-border",children:[f.jsx(oa,{size:14})," Discard"]}),f.jsxs("button",{onClick:hy,disabled:c,className:"flex items-center gap-1 px-3 py-1.5 text-sm bg-accent text-white disabled:opacity-50",children:[f.jsx(sa,{size:14})," ",c?"Saving…":"Save"]})]})]})})]}),d&&f.jsx("div",{className:"text-sm text-red-400 bg-red-500/10 p-3",children:d}),g&&f.jsx("div",{className:"text-sm text-green-400 bg-green-500/10 p-3",children:g}),y&&f.jsxs("div",{className:"flex items-center justify-between text-sm text-accent bg-accent/10 border border-accent/30 p-3",children:[f.jsxs("span",{className:"flex items-center gap-2",children:[f.jsx(zo,{size:14})," A restart is required for some changes to take effect."]}),f.jsx("button",{onClick:fy,className:"px-3 py-1 bg-accent/20 hover:bg-amber-500/30",children:"Restart now"})]}),f.jsxs("div",{className:"flex gap-1 border-b border-border",children:[f.jsxs("button",{onClick:()=>A("curated"),className:`flex items-center gap-2 px-4 py-2 text-sm border-b-2 -mb-px transition-colors ${M==="curated"?"border-accent text-accent":"border-transparent text-[#777] hover:text-white"}`,children:[f.jsx(ih,{size:15})," Data Feeds"]}),f.jsxs("button",{onClick:()=>A("advanced"),className:`flex items-center gap-2 px-4 py-2 text-sm border-b-2 -mb-px transition-colors ${M==="advanced"?"border-accent text-accent":"border-transparent text-[#777] hover:text-white"}`,children:[f.jsx(Ag,{size:15})," Advanced (raw)"]})]}),M==="advanced"&&f.jsxs("div",{className:"-mx-6",children:[f.jsx("div",{className:"px-6 pb-2 text-xs text-[#777]",children:"Curated keys (owned by the Data Feeds panels above) are hidden here. Future or unknown keys from adapters will appear in this view."}),f.jsx(S$,{excludeKeys:mCe,hideLlmToggle:!0})]}),M==="curated"&&f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"flex gap-1 border-b border-border overflow-x-auto",children:JT.map(({key:ie,label:Je,icon:kt})=>f.jsxs("button",{onClick:()=>{w(ie);const Be=JT.find(lt=>lt.key===ie);C(Be.adapters[0]??null)},className:`flex items-center gap-2 px-4 py-2 text-sm whitespace-nowrap border-b-2 -mb-px transition-colors ${_===ie?"border-accent text-accent":"border-transparent text-[#777] hover:text-white"}`,children:[f.jsx(kt,{size:15})," ",Je]},ie))}),_==="central"&&e.central&&f.jsxs("div",{className:"border border-border p-4 space-y-3",children:[f.jsxs("div",{className:"flex items-center justify-between",children:[f.jsxs("div",{children:[f.jsx("span",{className:"text-sm font-medium text-[#e0e0e0]",children:"Central Connection"}),f.jsx("p",{className:"text-xs text-[#666]",children:'NATS JetStream source for any adapter set to "central"'})]}),f.jsx(Bt,{label:"",checked:!!e.central.enabled,onChange:ie=>Ce({central:{...e.central,enabled:ie}})})]}),f.jsxs("div",{className:e.central.enabled?"space-y-3":"space-y-3 opacity-40 pointer-events-none select-none",children:[f.jsx(it,{label:"URL",value:e.central.url||"",onChange:ie=>Ce({central:{...e.central,url:ie}}),placeholder:"nats://central.echo6.mesh:4222"}),f.jsx(it,{label:"Durable",value:e.central.durable||"",onChange:ie=>Ce({central:{...e.central,durable:ie}}),placeholder:"meshai-v04"}),f.jsx(Se,{label:"Connect Timeout (sec)",value:e.central.connect_timeout??10,onChange:ie=>Ce({central:{...e.central,connect_timeout:ie}}),step:.5,min:0,helper:"NATS connect timeout for the Central consumer"}),f.jsx(it,{label:"Region",value:e.central.region||"",onChange:ie=>Ce({central:{...e.central,region:ie}}),placeholder:"us.id",helper:"Central v0.9.20 region token (dotted, e.g. 'us.id'). Empty = bare wildcards (all-US firehose). Each adapter is either Central or native, never both — see Reference → OR-not-AND Architecture for why."})]})]}),_==="mesh"&&f.jsxs("div",{className:"border border-border p-4 space-y-3",children:[f.jsxs("div",{className:"flex items-center justify-between",children:[f.jsxs("div",{children:[f.jsx("span",{className:"text-sm font-medium text-[#e0e0e0]",children:"Mesh Health"}),f.jsx("p",{className:"text-xs text-[#666]",children:"Node/infra telemetry — sourced from the mesh, not an environmental feed."})]}),f.jsxs("div",{className:"flex items-center gap-1",children:[f.jsx("span",{className:"text-[10px] uppercase tracking-wide text-[#666]",children:"source"}),f.jsx(T$,{value:"native",onChange:()=>{},disabled:!1,centralDisabled:!0})]})]}),f.jsx("div",{className:"text-[11px] text-[#666]",children:"Central not available — reserved for a future migration."})]}),_==="family_settings"&&f.jsxs("div",{className:"space-y-4",children:[f.jsxs("p",{className:"text-xs text-[#777]",children:["Per-family gating: enable/disable each notification family, set its minimum severity threshold, freshness window, and cooldown. Delivery routing (which mesh channels, email, webhook) is configured on the ",f.jsx("a",{href:"/notifications",className:"text-accent hover:underline",children:"Meshtastic Routing"})," and"," ",f.jsx("a",{href:"/meshcore/routing",className:"text-accent hover:underline",children:"MeshCore Routing"})," pages."]}),pv&&f.jsx("div",{className:"text-sm text-red-400 bg-red-500/10 p-3",children:pv}),ty&&f.jsx("div",{className:"text-sm text-green-400 bg-green-500/10 p-3",children:ty}),ca===null?f.jsx("div",{className:"text-xs text-[#666] italic",children:"Loading family settings…"}):f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:Yl.map(({key:ie,label:Je,Icon:kt})=>{const Be=bw[ie]||{};return f.jsxs("div",{className:"border border-border p-3 space-y-3",children:[f.jsxs("div",{className:"flex items-center justify-between",children:[f.jsxs("div",{className:"flex items-center gap-2 text-sm text-[#e0e0e0]",children:[f.jsx(kt,{size:15})," ",Je]}),f.jsx(Bt,{label:"",checked:!!Be.enabled,onChange:lt=>uu(ie,{enabled:lt})})]}),f.jsxs("div",{className:Be.enabled?"space-y-3":"space-y-3 opacity-40 pointer-events-none select-none",children:[f.jsx(on,{label:"Min Severity",value:Be.min_severity||"priority",onChange:lt=>uu(ie,{min_severity:lt}),options:[{value:"routine",label:"Routine — informational"},{value:"priority",label:"Priority — needs attention"},{value:"immediate",label:"Immediate — act now"}]}),f.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[f.jsx(Se,{label:"Freshness (sec)",value:Be.freshness_seconds??600,onChange:lt=>uu(ie,{freshness_seconds:lt}),min:0,helper:"Drop events older than this"}),f.jsx(Se,{label:"Cooldown (sec)",value:Be.cooldown_seconds??0,onChange:lt=>uu(ie,{cooldown_seconds:lt}),min:0,helper:"0 = no throttle"})]}),f.jsx(En,{label:"Regions",value:Be.regions??[],onChange:lt=>uu(ie,{regions:lt}),helper:"Empty = all regions; otherwise only these region names"})]})]},ie)})}),ww&&f.jsxs("div",{className:"flex justify-end gap-2 pt-2",children:[f.jsxs("button",{onClick:Sw,className:"flex items-center gap-1 px-3 py-1.5 text-sm text-[#777] hover:text-white border border-border",children:[f.jsx(oa,{size:14})," Discard"]}),f.jsxs("button",{onClick:dy,disabled:dv,className:"flex items-center gap-1 px-3 py-1.5 text-sm bg-accent text-white disabled:opacity-50",children:[f.jsx(sa,{size:14})," ",dv?"Saving…":"Save"]})]})]})]}),zs.adapters.length>0&&Ar&&f.jsxs(f.Fragment,{children:[zs.adapters.length>1&&f.jsx("div",{className:"flex gap-1",children:zs.adapters.map(ie=>f.jsx("button",{onClick:()=>C(ie),className:`px-3 py-1.5 text-sm ${Ar===ie?"bg-bg-hover text-white":"text-[#777] hover:text-white"}`,children:Hu[ie].label},ie))}),f.jsx(MCe,{title:Hu[Ar].label,subtitle:Hu[Ar].subtitle,enabled:((yv=Ch[Ar])==null?void 0:yv.enabled)??!1,onEnabled:ie=>Bs(Ar,{enabled:ie}),feedSource:((xv=Ch[Ar])==null?void 0:xv.feed_source)??"native",onFeedSource:ie=>Bs(Ar,{feed_source:ie}),hasCentral:Hu[Ar].hasCentral,nativeOnly:Hu[Ar].nativeOnly,hasKey:Tw(Ar),health:Sh(Ar),events:Cw(Ar),llmContext:wh[Ar]!==void 0?I[wh[Ar]]??!0:void 0,onLlmContext:wh[Ar]!==void 0?ie=>cy(wh[Ar],ie):void 0,children:Mw(Ar)})]}),f.jsxs("div",{className:"pt-4 mt-2 border-t border-border space-y-4",children:[f.jsxs("div",{children:[f.jsxs("h2",{className:"text-base font-semibold text-white flex items-center gap-2",children:[f.jsx(Ag,{size:16})," Custom Sources"]}),f.jsx("p",{className:"text-xs text-[#666] mt-1",children:"Point MeshAI at any public REST/GeoJSON feed; it becomes a routable family in Notifications — sitting alongside the built-in feeds above."})]}),f.jsx(wCe,{})]}),f.jsxs("details",{className:"group border border-border p-4",children:[f.jsxs("summary",{className:"flex items-center gap-2 cursor-pointer text-sm font-medium text-[#e0e0e0] hover:text-white",children:[f.jsx(nh,{size:14,className:"group-open:rotate-90 transition-transform"}),"Advanced: Geocoder"]}),f.jsx("p",{className:"mt-2 text-xs text-[#666]",children:"Configures the Photon reverse-geocoder used to resolve place names."}),f.jsxs("div",{className:"mt-4 space-y-3 pl-6 border-l border-border",children:[f.jsx(it,{label:"Geocoder URL",value:((Fs=e.geocoder)==null?void 0:Fs.url)??"https://photon.komoot.io",onChange:ie=>Ce({geocoder:{...e.geocoder,url:ie}}),placeholder:"https://photon.komoot.io",helper:"Photon geocoding endpoint"}),f.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[f.jsx(Se,{label:"Timeout (s)",value:((Tt=e.geocoder)==null?void 0:Tt.timeout_seconds)??2,onChange:ie=>Ce({geocoder:{...e.geocoder,timeout_seconds:ie}}),min:0,step:.5,helper:"HTTP timeout per geocode request"}),f.jsx(Se,{label:"Search Radius (km)",value:((qt=e.geocoder)==null?void 0:qt.radius_km)??80,onChange:ie=>Ce({geocoder:{...e.geocoder,radius_km:ie}}),min:0,helper:"Bias radius around the configured center for results"}),f.jsx(Se,{label:"Result Limit",value:((cu=e.geocoder)==null?void 0:cu.limit)??10,onChange:ie=>Ce({geocoder:{...e.geocoder,limit:ie}}),min:1,helper:"Max candidate results to consider"})]})]})]})]})]})}function kCe(e){if(e==null||e==="")return"—";let t;if(typeof e=="number")t=new Date(e<1e12?e*1e3:e);else{const r=Number(e);t=Number.isFinite(r)&&e.trim()!==""?new Date(r<1e12?r*1e3:r):new Date(e)}return isNaN(t.getTime())?"—":t.toLocaleString()}function LCe(e){switch(e){case"meshtastic":return{label:"Meshtastic",cls:"bg-blue-500/15 text-blue-400 border border-blue-500/30"};case"meshcore":return{label:"MeshCore",cls:"bg-green-500/15 text-green-400 border border-green-500/30"};default:return{label:"Legacy",cls:"bg-slate-500/15 text-slate-400 border border-slate-600/40"}}}function ICe(e){return e==null||e===""?"—":typeof e=="number"?`ch ${e}`:e.startsWith("#")?e:`#${e}`}function PCe(e){if(!e)return"broadcast";const t=e.replace(/_/g," ").trim();return t.endsWith("s")?t.slice(0,-1):t}const DCe=[{value:"all",label:"All meshes"},{value:"meshtastic",label:"Meshtastic"},{value:"meshcore",label:"MeshCore"}],ECe=[{value:"all",label:"All types"},{value:"nws_alerts",label:"Weather"},{value:"fires",label:"Fires"},{value:"fire_digest_broadcasts",label:"Fire digest"},{value:"satpass_events",label:"Satellite"},{value:"band_conditions_broadcasts",label:"Band"},{value:"traffic_events",label:"Traffic"}],fx=100;function HB(){const[e,t]=O.useState([]),[r,n]=O.useState(!0),[a,i]=O.useState(null),[o,s]=O.useState("all"),[l,u]=O.useState("all"),[c,h]=O.useState(fx);return O.useEffect(()=>{document.title="Activity Log — MeshAI"},[]),O.useEffect(()=>{let d=!0;const v=()=>{TJ(c,o,l).then(m=>{d&&(t(m),i(null),n(!1))}).catch(m=>{d&&(i(m.message),n(!1))})};v();const g=setInterval(v,5e3);return()=>{d=!1,clearInterval(g)}},[c,o,l]),r?f.jsx("div",{className:"flex items-center justify-center h-64",children:f.jsx("div",{className:"text-slate-400",children:"Loading activity…"})}):a?f.jsx("div",{className:"flex items-center justify-center h-64",children:f.jsxs("div",{className:"text-red-400",children:["Error: ",a]})}):f.jsx("div",{className:"space-y-4",children:f.jsxs("div",{className:"bg-bg-card border border-border",children:[f.jsxs("div",{className:"p-4 border-b border-border flex items-center flex-wrap gap-2",children:[f.jsx(Mo,{size:14,className:"text-[#f59e0b]"}),f.jsx("h2",{className:"text-sm font-medium text-slate-300",children:"Activity Log"}),f.jsx("select",{value:o,onChange:d=>{s(d.target.value),h(fx)},className:"text-xs bg-bg-hover text-slate-300 border border-border rounded px-2 py-1",children:DCe.map(d=>f.jsx("option",{value:d.value,children:d.label},d.value))}),f.jsx("select",{value:l,onChange:d=>{u(d.target.value),h(fx)},className:"text-xs bg-bg-hover text-slate-300 border border-border rounded px-2 py-1",children:ECe.map(d=>f.jsx("option",{value:d.value,children:d.label},d.value))}),f.jsxs("span",{className:"text-xs text-slate-500 ml-auto",children:[e.length," broadcast",e.length===1?"":"s"," · newest first"]})]}),e.length===0?f.jsxs("div",{className:"flex items-center gap-2 text-slate-500 p-8",children:[f.jsx(oi,{size:18}),f.jsx("span",{children:"No outbound broadcasts recorded yet."})]}):f.jsx("ul",{className:"divide-y divide-border",children:e.map(d=>{const v=LCe(d.transport);return f.jsx("li",{className:"p-4 hover:bg-bg-hover transition-colors",children:f.jsxs("div",{className:"flex items-start gap-3",children:[f.jsx("div",{className:"pt-0.5",children:d.success===1?f.jsx(mk,{size:16,className:"text-green-500"}):d.success===0?f.jsx(jE,{size:16,className:"text-amber-500"}):f.jsx(jE,{size:16,className:"text-slate-600"})}),f.jsxs("div",{className:"flex-1 min-w-0",children:[f.jsxs("div",{className:"flex items-center flex-wrap gap-2 mb-1",children:[f.jsx("span",{className:`text-xs px-2 py-0.5 rounded-full ${v.cls}`,children:v.label}),f.jsx("span",{className:"text-xs px-2 py-0.5 rounded-full bg-bg-hover text-slate-400 border border-border",children:ICe(d.channel)}),f.jsx("span",{className:"text-xs px-2 py-0.5 rounded-full bg-[#f59e0b]/10 text-[#f59e0b]",children:PCe(d.source_event_table)}),d.success===1&&f.jsx("span",{className:"text-xs text-green-500",children:"Sent"}),d.success===0&&f.jsx("span",{className:"text-xs text-amber-500",children:"Skip"}),(d.success===null||d.success===void 0)&&f.jsx("span",{className:"text-xs text-slate-500",children:"—"})]}),f.jsx("div",{className:"text-sm text-slate-200 break-words whitespace-pre-wrap",children:d.text||f.jsx("span",{className:"text-slate-500 italic",children:"(no text)"})}),f.jsxs("div",{className:"flex items-center gap-1 mt-1.5 text-xs text-slate-500 font-mono",children:[f.jsx(wV,{size:12}),kCe(d.sent_at)]})]})]})},d.id)})}),e.length>=c&&f.jsx("div",{className:"p-3 border-t border-border flex justify-center",children:f.jsx("button",{onClick:()=>h(d=>d+fx),className:"text-xs px-3 py-1 rounded bg-bg-hover text-slate-300 border border-border hover:bg-bg-card transition-colors",children:"Load more"})})]})})}const UB=[{id:"stream-gauges",label:"Stream Gauges",icon:f1},{id:"wildfire",label:"Wildfire",icon:Tm},{id:"firms",label:"Satellite Fire Detection (FIRMS)",icon:v1},{id:"fire-tracker",label:"Fire Tracker (Fusion)",icon:cJ},{id:"weather-alerts",label:"Weather Alerts",icon:lJ},{id:"solar",label:"Solar & Geomagnetic",icon:DV},{id:"ducting",label:"Tropospheric Ducting",icon:oi},{id:"avalanche",label:"Avalanche Danger",icon:sd},{id:"traffic",label:"Traffic Flow",icon:h1},{id:"roads-511",label:"Road Conditions (511)",icon:SV},{id:"mesh-health",label:"Mesh Health",icon:Mo},{id:"broadcast-types",label:"Broadcast Types",icon:LV},{id:"reminders",label:"Reminder System",icon:wV},{id:"notifications",label:"Notifications",icon:_V},{id:"commands",label:"Commands",icon:EV},{id:"llm-dm",label:"LLM DM Queries",icon:xk},{id:"or-not-and",label:"OR-not-AND Architecture",icon:_k},{id:"adapter-config",label:"Adapter Config & CODE Rule",icon:Ag},{id:"curation",label:"Curation: Gauges & Towns",icon:TV},{id:"schema",label:"Schema Migrations",icon:hJ},{id:"api",label:"API Reference",icon:uJ}];function lr({color:e}){const t={green:"bg-green-500",yellow:"bg-yellow-500",orange:"bg-orange-500",red:"bg-red-500",black:"bg-slate-800 border border-slate-600"};return f.jsx("span",{className:`inline-block w-3 h-3 rounded-full ${t[e]}`})}function Lt({headers:e,rows:t}){return f.jsx("div",{className:"overflow-x-auto my-4",children:f.jsxs("table",{className:"w-full text-sm",children:[f.jsx("thead",{children:f.jsx("tr",{className:"bg-[#1a2332] border-b border-[#2a3a4a]",children:e.map((r,n)=>f.jsx("th",{className:"px-4 py-2 text-left text-slate-400 font-medium",children:r},n))})}),f.jsx("tbody",{children:t.map((r,n)=>f.jsx("tr",{className:`border-b border-[#1e2a3a] ${n%2===0?"bg-[#0d1219]":"bg-[#0a0e17]"}`,children:r.map((a,i)=>f.jsx("td",{className:"px-4 py-2 text-slate-300",children:a},i))},n))})]})})}function Wt({href:e,children:t}){return f.jsxs("a",{href:e,target:"_blank",rel:"noopener noreferrer",className:"text-accent hover:underline inline-flex items-center gap-1",children:[t," ",f.jsx(kc,{size:12})]})}function de({children:e}){return f.jsx("h3",{className:"text-lg font-semibold text-slate-200 mt-6 mb-3",children:e})}function Qs({children:e}){return f.jsx("h4",{className:"text-base font-medium text-slate-300 mt-4 mb-2",children:e})}function le({children:e}){return f.jsx("code",{className:"font-mono text-accent bg-[#1a2332] px-1 rounded",children:e})}function wr({id:e,title:t,children:r}){return f.jsxs("section",{id:e,className:"mb-12 scroll-mt-6",children:[f.jsx("h2",{className:"text-2xl font-bold text-slate-100 mb-4 pb-2 border-b border-[#2a3a4a]",children:t}),f.jsx("div",{className:"text-slate-300 leading-relaxed space-y-4",children:r})]})}function jCe(){const e=eu(),[t,r]=O.useState(""),[n,a]=O.useState("stream-gauges"),i=O.useRef(null);O.useEffect(()=>{const l=e.hash.replace("#","");if(l&&UB.find(u=>u.id===l)){a(l);const u=document.getElementById(l);u&&u.scrollIntoView({behavior:"smooth"})}},[e.hash]);const o=UB.filter(l=>l.label.toLowerCase().includes(t.toLowerCase())),s=l=>{a(l);const u=document.getElementById(l);u&&u.scrollIntoView({behavior:"smooth"}),window.history.replaceState(null,"",`#${l}`)};return f.jsxs("div",{className:"flex h-full -m-6",children:[f.jsxs("aside",{className:"w-64 flex-shrink-0 bg-bg-card border-r border-border overflow-y-auto",children:[f.jsx("div",{className:"p-4 border-b border-border",children:f.jsxs("div",{className:"relative",children:[f.jsx(p1,{size:16,className:"absolute left-3 top-1/2 -translate-y-1/2 text-slate-500"}),f.jsx("input",{type:"text",value:t,onChange:l=>r(l.target.value),placeholder:"Search topics...",className:"w-full pl-9 pr-3 py-2 bg-[#0a0e17] border border-[#1e2a3a] rounded text-sm text-slate-200 focus:outline-none focus:border-accent placeholder-slate-600"})]})}),f.jsx("nav",{className:"py-2",children:o.map(l=>{const u=l.icon,c=n===l.id;return f.jsxs("button",{onClick:()=>s(l.id),className:`w-full flex items-center gap-3 px-4 py-2.5 text-sm text-left transition-colors ${c?"text-accent bg-accent/10 border-l-2 border-accent":"text-slate-400 hover:text-slate-200 hover:bg-bg-hover border-l-2 border-transparent"}`,children:[f.jsx(u,{size:16}),l.label]},l.id)})})]}),f.jsx("div",{ref:i,className:"flex-1 overflow-y-auto p-6",children:f.jsxs("div",{className:"max-w-4xl",children:[f.jsx("p",{className:"text-slate-400 mb-8",children:"Everything you need to understand and configure MeshAI's monitoring and alerting systems."}),f.jsxs(wr,{id:"stream-gauges",title:"Stream Gauges",children:[f.jsx(de,{children:"What You're Looking At"}),f.jsx("p",{children:"MeshAI watches river and stream levels at gauges you configure. Each gauge reports two things:"}),f.jsxs("p",{children:[f.jsx("strong",{children:"Water Level (Gage Height)"}),` — how high the water is, measured in feet. Important: this is NOT the depth of the river. It's the height above a fixed measuring point that's different at every gauge. A reading of "10 feet" at one gauge means something completely different than "10 feet" at another. You can only compare readings from the SAME gauge over time.`]}),f.jsxs("p",{children:[f.jsx("strong",{children:"Flow (Discharge)"}),` — how much water is moving past the gauge, in cubic feet per second (CFS). Think of it as the river's "throughput." For scale:`]}),f.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[f.jsx("li",{children:"A small creek: 50-200 CFS"}),f.jsx("li",{children:"A mid-size river: 1,000-5,000 CFS"}),f.jsx("li",{children:"A big river in spring runoff: 10,000+ CFS"})]}),f.jsx(de,{children:"When Does It Flood?"}),f.jsxs("p",{children:["Flood levels are set by the ",f.jsx("strong",{children:"National Weather Service"}),', not USGS. NWS looks at each specific gauge location and decides "at what water level does the road flood? At what level do buildings get water?" Those levels are different everywhere.']}),f.jsxs("p",{children:[f.jsx("strong",{children:"Action Stage"})," — water is rising, time to start paying attention. Usually still inside the riverbanks."]}),f.jsxs("p",{children:[f.jsx("strong",{children:"Minor Flood"})," — low-lying roads start getting water on them. NWS issues a Flood Advisory."]}),f.jsxs("p",{children:[f.jsx("strong",{children:"Moderate Flood"})," — water in buildings near the river. Some people need to evacuate. NWS issues a Flood Warning."]}),f.jsxs("p",{children:[f.jsx("strong",{children:"Major Flood"})," — widespread flooding. Many people evacuating. Serious property damage."]}),f.jsx("p",{children:"MeshAI automatically looks up the flood levels for your gauge from NWS when you add a site. Some remote gauges don't have flood levels assigned — for those, you set them manually if you know what water levels cause problems in your area."}),f.jsx(de,{children:"Low Water / Drought"}),f.jsx("p",{children:`There's no official "drought stage" for most gauges. If you need to monitor low water (irrigation, fish habitat), set a manual low-water threshold based on what you know about your local river.`}),f.jsx(de,{children:"Setting It Up"}),f.jsxs("ol",{className:"list-decimal list-inside ml-4 space-y-1",children:[f.jsxs("li",{children:["Find your gauge at ",f.jsx(Wt,{href:"https://waterdata.usgs.gov/nwis",children:"waterdata.usgs.gov/nwis"})]}),f.jsxs("li",{children:["Copy the site number (like ",f.jsx(le,{children:"13090500"}),")"]}),f.jsx("li",{children:"Add it in Config → Environmental → USGS"}),f.jsx("li",{children:"MeshAI auto-fills the gauge name and flood levels from NWS"})]}),f.jsx("p",{children:"If NWS flood levels don't populate, your gauge may not have them. Set manual thresholds if you know your local conditions."}),f.jsx(de,{children:"Learn More"}),f.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[f.jsxs("li",{children:[f.jsx(Wt,{href:"https://waterdata.usgs.gov/nwis",children:"USGS Water Data"})," — find gauges near you"]}),f.jsxs("li",{children:[f.jsx(Wt,{href:"https://water.noaa.gov",children:"NWS Water Prediction Service"})," — flood forecasts and thresholds"]}),f.jsxs("li",{children:[f.jsx(Wt,{href:"https://www.usgs.gov/special-topics/water-science-school/science/how-streamflow-measured",children:"Understanding Streamflow"})," — USGS explainer"]})]})]}),f.jsxs(wr,{id:"wildfire",title:"Wildfire",children:[f.jsx(de,{children:"What You're Looking At"}),f.jsx("p",{children:"MeshAI tracks active wildfire perimeters from the National Interagency Fire Center (NIFC). For each fire, you see the name, size, how much is contained, and how far it is from your mesh nodes."}),f.jsx(de,{children:"Fire Size — How Big Is It?"}),f.jsx(Lt,{headers:["Size","What That Means"],rows:[["10 acres","Small fire. Usually handled quickly by initial crews."],["100 acres","Notable fire. Active firefighting effort."],["1,000 acres","Large fire. Major resources being deployed."],["10,000+ acres","Very large fire. Multiple teams, aircraft, heavy equipment."],["100,000+ acres","Mega-fire. These make the national news."]]}),f.jsx("p",{children:"For reference, 1,000 acres is about 1.5 square miles."}),f.jsx(de,{children:"Containment — Is It Under Control?"}),f.jsx("p",{children:"Containment means the percentage of the fire's edge where firefighters have built a control line (a cleared strip to stop the fire from spreading further). It does NOT mean the fire is out inside that line."}),f.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[f.jsxs("li",{children:[f.jsx("strong",{children:"0-30%"})," — Essentially uncontrolled. The fire goes where it wants."]}),f.jsxs("li",{children:[f.jsx("strong",{children:"50%"})," — Good progress, but half the edge can still grow."]}),f.jsxs("li",{children:[f.jsx("strong",{children:"80%+"})," — Well controlled. Major growth unlikely."]}),f.jsxs("li",{children:[f.jsx("strong",{children:"100%"}),' — The edge is fully controlled. But the fire may STILL be actively burning inside. "100% contained" does NOT mean "out."']})]}),f.jsx(de,{children:"How Far Away Should I Worry?"}),f.jsx(Lt,{headers:["Distance","What To Do"],rows:[[f.jsxs(f.Fragment,{children:[f.jsx(lr,{color:"red"})," Under 5 km (3 miles)"]}),f.jsxs(f.Fragment,{children:[f.jsx("strong",{children:"Immediate threat."})," This is evacuation-order range. Embers can fly this far in wind."]})],[f.jsxs(f.Fragment,{children:[f.jsx(lr,{color:"orange"})," 5-15 km (3-10 miles)"]}),f.jsxs(f.Fragment,{children:[f.jsx("strong",{children:"Prepare."})," The fire could reach you in hours under bad conditions. Have a plan."]})],[f.jsxs(f.Fragment,{children:[f.jsx(lr,{color:"yellow"})," 15-30 km (10-20 miles)"]}),f.jsxs(f.Fragment,{children:[f.jsx("strong",{children:"Watch."})," Smoke is likely. Wind shifts could change things fast."]})],[f.jsxs(f.Fragment,{children:[f.jsx(lr,{color:"green"})," Over 30 km (20 miles)"]}),f.jsxs(f.Fragment,{children:[f.jsx("strong",{children:"Awareness."})," Keep an eye on it, but no immediate threat."]})]]}),f.jsx("p",{children:"How fast can a fire travel? In grass with wind: up to 14 mph. In heavy timber: 1-6 mph. A fire 10 miles away could theoretically reach you in 1-2 hours under worst-case conditions, but typical spread is much slower."}),f.jsx(de,{children:"Which Matters More — Size or Distance?"}),f.jsxs("p",{children:[f.jsx("strong",{children:"Distance is the immediate concern."})," A small uncontained fire 10 km away is more dangerous right now than a huge fire 50 km away. But big fires have more energy and can grow fast under wind shifts — keep watching them."]}),f.jsx(de,{children:"Setting It Up"}),f.jsxs("p",{children:["Just configure your state code (like ",f.jsx(le,{children:"US-ID"})," for Idaho) in Config → Environmental → Fires. MeshAI polls NIFC every 10 minutes for active fires in that state and computes the distance to your mesh nodes automatically."]}),f.jsx(de,{children:"Learn More"}),f.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[f.jsxs("li",{children:[f.jsx(Wt,{href:"https://inciweb.nwcg.gov",children:"InciWeb"})," — detailed incident information"]}),f.jsxs("li",{children:[f.jsx(Wt,{href:"https://data-nifc.opendata.arcgis.com",children:"NIFC Fire Map"})," — raw perimeter data"]}),f.jsxs("li",{children:[f.jsx(Wt,{href:"https://www.ready.gov/wildfires",children:"Ready.gov Wildfires"})," — preparedness guide"]})]})]}),f.jsxs(wr,{id:"firms",title:"Satellite Fire Detection (FIRMS)",children:[f.jsx(de,{children:"What You're Looking At"}),f.jsx("p",{children:`NASA's VIIRS satellites orbit the Earth and look for heat signatures on the ground. When they see something hot — a fire, a factory, a sunlit building — they flag it as a "hotspot." MeshAI checks these detections for your area.`}),f.jsxs("p",{children:[f.jsx("strong",{children:"Why this matters"}),": satellite hotspots show up ",f.jsx("strong",{children:"hours before"})," official fire perimeters are mapped. If a new fire starts near your mesh, the satellite might see it before anyone on the ground reports it."]}),f.jsx(de,{children:"Confidence — Is It Really a Fire?"}),f.jsx("p",{children:"Each detection gets a confidence rating:"}),f.jsx(Lt,{headers:["Confidence","What It Means"],rows:[["High","Almost certainly a real fire. Strong heat signature."],["Nominal","Probably a real fire. Most actual fires get this rating."],["Low","Maybe a fire, maybe not. Could be a hot roof, sun reflecting off water, a factory, or a gas flare. Lots of false alarms."]]}),f.jsxs("p",{children:[f.jsx("strong",{children:"Recommendation"}),`: Set the filter to "Nominal + High." If you include "Low" you'll get alerts for every hot parking lot on a summer day.`]}),f.jsx(de,{children:"FRP — How Intense Is It?"}),f.jsx("p",{children:'FRP (Fire Radiative Power) measures the heat output in megawatts. Think of it as "how hot is this thing":'}),f.jsx(Lt,{headers:["FRP","What It Probably Is"],rows:[["Under 5 MW","Hot surface, small agricultural burn, gas flare, or warm ground"],["5-50 MW","An actual fire — brush fire, grass fire, typical wildfire"],["50-300 MW","Intense fire — trees fully burning, active fire front"],["Over 300 MW","Extreme fire — major wildfire in full force"]]}),f.jsx("p",{children:"Setting the minimum FRP to 5 MW filters out most industrial and agricultural false alarms."}),f.jsx(de,{children:"New Ignition Detection"}),f.jsxs("p",{children:["MeshAI cross-references satellite hotspots against known NIFC fire perimeters. If a hotspot is NOT near any known fire, it gets flagged as a ",f.jsx("strong",{children:"potential new ignition"})," — maybe a new fire just started. These get elevated priority regardless of confidence level."]}),f.jsx(de,{children:"Timing"}),f.jsxs("p",{children:["Satellite data arrives ",f.jsx("strong",{children:"1-3 hours"})," after the satellite passes overhead. Each location gets observed about ",f.jsx("strong",{children:"6 times per day"}),` across all satellites, so there are multi-hour gaps. This is not real-time — it's "pretty recent."`]}),f.jsx(de,{children:"Getting an API Key"}),f.jsxs("ol",{className:"list-decimal list-inside ml-4 space-y-1",children:[f.jsxs("li",{children:["Go to ",f.jsx(Wt,{href:"https://firms.modaps.eosdis.nasa.gov/api/area/",children:"FIRMS API page"})]}),f.jsx("li",{children:'Click "Get MAP_KEY"'}),f.jsx("li",{children:"Register for a free Earthdata account"}),f.jsx("li",{children:"Your key arrives by email"}),f.jsx("li",{children:"Enter it in Config → Environmental → FIRMS"})]}),f.jsx(de,{children:"Learn More"}),f.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[f.jsxs("li",{children:[f.jsx(Wt,{href:"https://firms.modaps.eosdis.nasa.gov",children:"FIRMS Fire Map"})," — see hotspots on a map"]}),f.jsxs("li",{children:[f.jsx(Wt,{href:"https://earthdata.nasa.gov/data/tools/firms/faq",children:"FIRMS FAQ"})," — how it works"]})]})]}),f.jsxs(wr,{id:"fire-tracker",title:"Fire Tracker (Fusion)",children:[f.jsx("p",{children:"FIRMS hotspots are fast but noisy; WFIGS incidents are accurate but slow. The Fire Tracker fuses both feeds and a per-pixel attribution graph so a single fire's name, declared acreage, real-time perimeter movement, and spotting events all land as separate broadcasts on the mesh."}),f.jsx(de,{children:"What you'll see on the mesh"}),f.jsx("p",{children:"Six fire-family alert categories, in order of when they fire during an incident's lifecycle:"}),f.jsx(Lt,{headers:["Category","Severity","Trigger","Example broadcast"],rows:[[f.jsx(le,{children:"unattributed_hotspot_cluster"}),"Priority","3+ FIRMS pixels within 1 mi over 60 min, no WFIGS match — possible new ignition before NIFC declares it",f.jsx("span",{className:"text-amber-300",children:"🔥 Possible new fire: 3 hotspots within 1 mi @ 42.93,-114.45 (combined 78 MW)"})],[f.jsx(le,{children:"wildfire_declared"}),"Priority","WFIGS first-sight of a new IRWIN incident — the official 'this is a fire and here is its name' record",f.jsx("span",{className:"text-amber-300",children:"🔥 New: Cache Peak Fire (WF), 3 mi N of Almo: 250 ac, 0% contained"})],[f.jsx(le,{children:"wildfire_growth"}),"Priority","Per-pass centroid drift >= 0.5 mi (configurable) between consecutive satellite passes — the fire's footprint moved",f.jsx("span",{className:"text-amber-300",children:"🔥 Cache Peak Fire moving NE 1.2 mi/h, ~3 mi from Almo"})],[f.jsx(le,{children:"wildfire_spotting"}),"Immediate","FIRMS pixel attributed to a tracked fire but >= 1.5 mi (configurable) outside its prior-pass convex-hull perimeter — ember spread",f.jsx("span",{className:"text-amber-300",children:"🔥 Possible spotting 2.1 mi NE of Cache Peak Fire perimeter"})],[f.jsx(le,{children:"wildfire_incident"}),"Priority","WFIGS acreage or containment increased on a fire already broadcast once (the Update path; the New path uses wildfire_declared)",f.jsx("span",{className:"text-amber-300",children:"🔥 Update: Cache Peak Fire: 1,847 ac, 23% contained"})],[f.jsx(le,{children:"wildfire_halted"}),"Routine","No FIRMS pixels attributed for 12+ hours (configurable) — fire stalled or out",f.jsx("span",{className:"text-amber-300",children:"🔥 Cache Peak Fire no growth in 14h"})]]}),f.jsx(de,{children:"Daily LLM digest"}),f.jsxs("p",{children:["Twice a day (default 06:00 and 18:00 Mountain Time) the bot runs an LLM summary across every active fire and the last 24 h of growth + spotting events, then broadcasts one terse line to the mesh. Shape:"," ",f.jsx("span",{className:"text-amber-300",children:'"Fires today: Cache Peak 1,847 ac +200 NE; Twin Peaks 320 ac stable; possible new fire 15 mi from Cache Peak."'})," ","Configure the schedule and timezone under ",f.jsx(le,{children:"fires.digest_*"})," ","keys on the Adapter Config page."]}),f.jsx(de,{children:"How attribution works"}),f.jsxs("p",{children:["When a FIRMS hotspot lands, the bot walks every active fire (those not yet tombstoned) and matches by Haversine distance to that fire's running centroid. If the pixel is within the fire's ",f.jsx(le,{children:"spread_radius_mi"})," ","(default 5 mi, per-fire override available) the pixel is attributed and appended to that fire's growth history. The centroid then re-computes as the median of the last 24 h of attributed pixels, so single-pixel outliers don't drag the perimeter around."]}),f.jsxs("p",{children:["Pixels that match no fire feed the cluster detector instead: if at least"," ",f.jsx(le,{children:"cluster_min_pixels"})," (default 3) lie within"," ",f.jsx(le,{children:"cluster_max_radius_mi"})," (default 1.0) over"," ",f.jsx(le,{children:"cluster_time_window_minutes"})," (default 60), the bot fires a single ",f.jsx(le,{children:"unattributed_hotspot_cluster"})," broadcast and marks the member pixels so a fourth arrival doesn't re-fire the same cluster."]}),f.jsx(de,{children:"How movement is computed"}),f.jsxs("p",{children:["Each VIIRS pass groups pixels into a ",f.jsx(le,{children:"pass_id"})," (satellite + 90-min bucket). When a pixel from a different bucket arrives, the prior pass closes: its convex hull becomes the perimeter, its median centroid becomes the comparison anchor, and the bot computes drift (Haversine to the previous pass's centroid), an 8-way compass bearing, and a wall-clock mi/h speed. If drift ≥ ",f.jsx(le,{children:"growth_drift_threshold_mi"})," the"," ",f.jsx(le,{children:"wildfire_growth"})," broadcast fires."]}),f.jsx(de,{children:"How spotting is detected"}),f.jsxs("p",{children:["Once a pass closes its perimeter (a GeoJSON polygon stored on the fire), every subsequent attributed pixel runs a point-in-polygon test. Pixels outside the polygon with a vertex distance ≥"," ",f.jsx(le,{children:"spotting_distance_threshold_mi"})," (default 1.5) fire the"," ",f.jsx(le,{children:"wildfire_spotting"})," broadcast at ",f.jsx("em",{children:"immediate"})," severity — spread beyond the existing perimeter is the most actionable fire signal we emit. A per-fire cooldown (",f.jsx(le,{children:"spotting_cooldown_seconds"}),", default 1 h) prevents an ember burst in the same area from spamming the mesh."]}),f.jsx(de,{children:"Tunable knobs (Adapter Config → fires)"}),f.jsx(Lt,{headers:["Key","Default","What it does"],rows:[[f.jsx(le,{children:"spread_radius_mi_default"}),"5.0 mi","Attribution radius for FIRMS → fire matching. Per-fire override in the fires.spread_radius_mi column."],[f.jsx(le,{children:"growth_drift_threshold_mi"}),"0.5 mi","Per-pass centroid drift at or above this fires wildfire_growth."],[f.jsx(le,{children:"halt_passes_threshold"}),"2","Consecutive empty satellite passes before wildfire_halted (documented; the time gate below is the operational rule)."],[f.jsx(le,{children:"halt_minimum_seconds"}),"43,200 (12 h)","Minimum elapsed seconds since the most recent attributed pixel before wildfire_halted can fire."],[f.jsx(le,{children:"spotting_distance_threshold_mi"}),"1.5 mi","Distance from prior-pass perimeter that fires wildfire_spotting."],[f.jsx(le,{children:"spotting_cooldown_seconds"}),"3,600 (1 h)","Minimum seconds between consecutive spotting broadcasts per fire."],[f.jsx(le,{children:"digest_enabled"}),"true","Master toggle for the twice-daily digest."],[f.jsx(le,{children:"digest_schedule"}),'["06:00","18:00"]',"Local-time slots for the digest."],[f.jsx(le,{children:"digest_timezone"}),"America/Boise","IANA tz for digest_schedule."],[f.jsx(le,{children:"digest_max_chars"}),"200","Hard cap on the digest wire (the LLM is told to fit; the chunker enforces)."]]})]}),f.jsxs(wr,{id:"weather-alerts",title:"Weather Alerts",children:[f.jsx(de,{children:"What You're Looking At"}),f.jsx("p",{children:"MeshAI watches for NWS (National Weather Service) alerts affecting your area — warnings, watches, and advisories."}),f.jsx(de,{children:"Alert Severity — How Serious Is It?"}),f.jsx(Lt,{headers:["Severity","What It Means","Example"],rows:[["Extreme","Life-threatening. The most serious events.","Tornado Emergency, Hurricane Warning, Tsunami Warning"],["Severe","Dangerous. Take protective action.","Tornado Warning, Flash Flood Warning, Blizzard Warning, Red Flag Warning"],["Moderate","Be prepared. Could become dangerous.","Winter Weather Advisory, Wind Advisory, Flood Watch, Heat Advisory"],["Minor","Good to know. Probably won't hurt anyone.","Special Weather Statement, Air Quality Alert"]]}),f.jsx(de,{children:"When Should I Act? (Urgency)"}),f.jsx(Lt,{headers:["Urgency","What It Means"],rows:[["Immediate","Do something NOW"],["Expected","Do something within the hour"],["Future","Coming in the next several hours"],["Past","It's over — NWS is clearing the alert"]]}),f.jsx(de,{children:"How Sure Are They? (Certainty)"}),f.jsx(Lt,{headers:["Certainty","What It Means"],rows:[["Observed","It's happening right now. Verified."],["Likely","More than 50% chance"],["Possible","Could happen, but less than 50%"],["Unlikely","Probably won't, but mentioned for awareness"]]}),f.jsx(de,{children:"These Are Separate Scales"}),f.jsx("p",{children:'A single alert has all three. A hurricane warning for next week is "Severe + Future + Likely." A tornado spotted on the ground is "Extreme + Immediate + Observed." An air quality advisory is "Minor + Expected + Possible."'}),f.jsx(de,{children:"What Minimum Severity Should I Set?"}),f.jsx(Lt,{headers:["Setting","What You Get","What You Miss"],rows:[["Minor","Everything — high volume","Nothing"],[f.jsxs(f.Fragment,{children:[f.jsx("strong",{children:"Moderate"})," ✓"]}),"Watches, Advisories, and Warnings","Special Weather Statements"],["Severe","Only Warnings — things happening NOW","Watches (which give you hours of advance warning)"],["Extreme","Only the rarest events","Most Tornado and Severe Thunderstorm Warnings"]]}),f.jsxs("p",{children:[f.jsx("strong",{children:"Moderate is recommended."})," It catches Watches (advance warning that conditions may worsen) and Advisories (conditions exist but aren't severe) while filtering out the informational stuff."]}),f.jsx(de,{children:"Finding Your NWS Zone"}),f.jsxs("ol",{className:"list-decimal list-inside ml-4 space-y-1",children:[f.jsxs("li",{children:["Go to ",f.jsx(Wt,{href:"https://www.weather.gov",children:"weather.gov"})]}),f.jsx("li",{children:"Enter your location"}),f.jsxs("li",{children:["Find your zone code at ",f.jsx(Wt,{href:"https://www.weather.gov/pimar/PubZone",children:"NWS Zone Map"})]}),f.jsxs("li",{children:["Zone codes look like: ",f.jsx(le,{children:"IDZ016"}),", ",f.jsx(le,{children:"UTZ040"}),", etc."]})]}),f.jsx(de,{children:"The User-Agent Field"}),f.jsx("p",{children:"NWS wants to know who's using their API — not for approval, just so they can contact you if something breaks. You make it up:"}),f.jsx("p",{children:f.jsx(le,{children:"(meshai, you@email.com)"})}),f.jsx("p",{children:"No registration. No waiting. Just type it in."}),f.jsx(de,{children:"Learn More"}),f.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[f.jsxs("li",{children:[f.jsx(Wt,{href:"https://alerts.weather.gov",children:"NWS Active Alerts"})," — see current alerts"]}),f.jsxs("li",{children:[f.jsx(Wt,{href:"https://www.weather.gov/documentation/services-web-api",children:"NWS API Docs"})," — technical details"]})]})]}),f.jsxs(wr,{id:"solar",title:"Solar & Geomagnetic Conditions",children:[f.jsx(de,{children:"What You're Looking At"}),f.jsx("p",{children:"MeshAI tracks space weather — solar activity and its effects on Earth's magnetic field. This matters for radio operators because the sun directly controls how well HF radio works, and major solar events can affect all radio communications."}),f.jsx(de,{children:"Solar Flux Index (SFI)"}),f.jsx("p",{children:'Think of SFI as a "how active is the sun" number. Higher = better for HF radio, but also higher risk of solar flares.'}),f.jsx(Lt,{headers:["SFI","What It Means for You"],rows:[["Below 70","Quiet sun. Higher HF bands (10m, 15m) are probably dead. Stick to lower bands."],["70-90","Getting better. Some openings on 15m and above, but inconsistent."],["90-120","Good. Most HF bands work. Reliable contacts on 20m and 15m."],["120-170","Great. All HF bands open. 10m works for worldwide contacts."],["Above 170","Excellent. Best HF conditions — but watch for flares."]]}),f.jsxs("p",{children:[f.jsx("strong",{children:"Quick rule"}),": SFI above 90 and Kp below 4 = good day for HF radio."]}),f.jsx(de,{children:"Kp Index"}),f.jsx("p",{children:"Kp measures how disturbed Earth's magnetic field is, on a 0-9 scale. Higher = more disturbance = worse for HF radio but better for aurora viewing."}),f.jsx(Lt,{headers:["Kp","What It Means for You"],rows:[["0-2","Quiet. Best HF conditions."],["3","Slightly unsettled. You probably won't notice."],["4","Active. Some noise and fading on HF, especially if you're at higher latitudes."],[f.jsx("strong",{children:"5"}),f.jsxs(f.Fragment,{children:[f.jsx("strong",{children:"Minor storm (G1)."})," HF noticeably degraded. Aurora visible at high latitudes (~60°N)."]})],[f.jsx("strong",{children:"6"}),f.jsxs(f.Fragment,{children:[f.jsx("strong",{children:"Moderate storm (G2)."})," HF getting rough. Aurora moving south (~55°N)."]})],[f.jsx("strong",{children:"7"}),f.jsxs(f.Fragment,{children:[f.jsx("strong",{children:"Strong storm (G3)."})," HF unreliable for 1-2 days. Aurora at mid-latitudes."]})],[f.jsx("strong",{children:"8-9"}),f.jsxs(f.Fragment,{children:[f.jsx("strong",{children:"Severe/Extreme storm."})," HF may black out completely. Aurora visible at very low latitudes. Power grid stress possible."]})]]}),f.jsx(de,{children:"R / S / G Scales"}),f.jsx("p",{children:"NOAA's shorthand for three types of space weather events:"}),f.jsx(Qs,{children:"R (Radio Blackouts) — from solar flares:"}),f.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[f.jsx("li",{children:"R1-R2: Brief HF disruption. You might not notice."}),f.jsx("li",{children:"R3: HF goes out for about an hour on the sunlit side of Earth."}),f.jsx("li",{children:"R4-R5: HF dead for hours. Serious."})]}),f.jsx(Qs,{children:"S (Solar Radiation Storms) — from energetic particles:"}),f.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[f.jsx("li",{children:"Mostly affects polar regions and satellites"}),f.jsx("li",{children:"S3+: Polar HF goes out entirely"})]}),f.jsx(Qs,{children:"G (Geomagnetic Storms) — from solar wind disturbances:"}),f.jsx("ul",{className:"list-disc list-inside ml-4 space-y-1",children:f.jsx("li",{children:"Same as the Kp scale: G1 = Kp 5, up to G5 = Kp 9"})}),f.jsx(de,{children:"Bz — The Storm Predictor"}),f.jsx("p",{children:"Bz measures the direction of the solar wind's magnetic field. When it points south (negative values), the solar wind can dump energy into Earth's magnetic field, causing storms."}),f.jsx(Lt,{headers:["Bz","What It Means"],rows:[["Positive","All good. Solar wind bouncing off."],["0 to -5","Slight coupling. Nothing dramatic."],["-5 to -10","Things starting to pick up. Storm possible."],["Below -10","Storm likely. Kp will start climbing."],["Below -20","Severe storm probable."]]}),f.jsx("p",{children:"Bz can change fast — minute to minute. What matters is whether it stays negative for hours, not brief dips."}),f.jsx(de,{children:"Learn More"}),f.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[f.jsxs("li",{children:[f.jsx(Wt,{href:"https://www.swpc.noaa.gov",children:"SWPC Space Weather Dashboard"})," — live data"]}),f.jsxs("li",{children:[f.jsx(Wt,{href:"https://www.swpc.noaa.gov/noaa-scales-explanation",children:"NOAA Space Weather Scales"})," — what R/S/G mean"]}),f.jsxs("li",{children:[f.jsx(Wt,{href:"https://www.hamqsl.com/solar.html",children:"HamQSL Solar Page"})," — ham-friendly display"]}),f.jsxs("li",{children:[f.jsx(Wt,{href:"https://www.swpc.noaa.gov/products/planetary-k-index",children:"Planetary K-Index"})," — live Kp"]})]})]}),f.jsxs(wr,{id:"ducting",title:"Tropospheric Ducting",children:[f.jsx(de,{children:"What You're Looking At"}),f.jsx("p",{children:'Sometimes the atmosphere creates an invisible "pipe" that traps radio signals and carries them much farther than normal. This is called tropospheric ducting. It mostly affects VHF and UHF frequencies.'}),f.jsx("p",{children:"MeshAI watches for these conditions by analyzing weather data (temperature and humidity at different altitudes) over your mesh area."}),f.jsx(de,{children:"How Do I Know If Ducting Is Happening?"}),f.jsx("p",{children:'MeshAI reports a "condition" based on the atmospheric profile:'}),f.jsx(Lt,{headers:["Condition","What It Means"],rows:[["Normal","Standard propagation. Nothing unusual."],["Super-refraction","Slightly enhanced range. You might hear a few more distant stations than usual."],["Surface Duct","Radio signals trapped near the ground. You may hear stations hundreds of km away that you've never heard before."],["Elevated Duct",'Same effect but the "pipe" is up in the atmosphere. Affects signals passing through that altitude.']]}),f.jsx(de,{children:"What You'll Actually Notice"}),f.jsx("p",{children:"When ducting happens on your mesh:"}),f.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[f.jsx("li",{children:"Distant repeaters you've never heard suddenly come in"}),f.jsx("li",{children:"Nodes appear from far outside your normal range"}),f.jsx("li",{children:"You hear FM radio stations from other cities"}),f.jsx("li",{children:"ADS-B flight tracking range gets much longer"}),f.jsx("li",{children:"There might be interference from distant stations on your frequency"})]}),f.jsx(de,{children:"The dM/dz Number"}),f.jsx("p",{children:`The dashboard shows a "dM/dz" value in "M-units/km." You don't need to understand the math — just know:`}),f.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[f.jsxs("li",{children:[f.jsx("strong",{children:"Around 118"})," = normal atmosphere"]}),f.jsxs("li",{children:[f.jsx("strong",{children:"Below 79"})," = enhanced propagation starting"]}),f.jsxs("li",{children:[f.jsx("strong",{children:"Below 0 (negative)"})," = ducting is happening"]}),f.jsxs("li",{children:[f.jsx("strong",{children:"Below -50"})," = strong ducting — classic VHF/UHF DX event"]})]}),f.jsx(de,{children:"When Does Ducting Happen?"}),f.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[f.jsx("li",{children:"Under high-pressure weather systems (clear, stable air)"}),f.jsx("li",{children:"When warm air sits on top of cool air (temperature inversion)"}),f.jsx("li",{children:"Most common in late summer and early fall"}),f.jsx("li",{children:"Strongest along coastlines and over water"}),f.jsx("li",{children:"In mountain valleys: cold air pooling in fall/winter can create surface ducts"})]}),f.jsx(de,{children:"Setting It Up"}),f.jsx("p",{children:"Just configure the latitude and longitude of the center of your mesh area in Config → Environmental → Ducting. MeshAI checks the atmospheric conditions there every 3 hours using free weather model data. No API key needed."}),f.jsx(de,{children:"Learn More"}),f.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[f.jsxs("li",{children:[f.jsx(Wt,{href:"https://dxinfocentre.com/tropo.html",children:"Tropo Forecast Maps (Hepburn)"})," — 6-day tropo prediction"]}),f.jsxs("li",{children:[f.jsx(Wt,{href:"https://dxmaps.com",children:"DX Maps"})," — real-time VHF/UHF propagation reports"]}),f.jsxs("li",{children:[f.jsx(Wt,{href:"https://en.wikipedia.org/wiki/Tropospheric_propagation",children:"Wikipedia: Tropospheric Propagation"})," — background"]})]})]}),f.jsxs(wr,{id:"avalanche",title:"Avalanche Danger",children:[f.jsx(de,{children:"What You're Looking At"}),f.jsx("p",{children:"MeshAI pulls avalanche forecasts from your regional avalanche center during winter months. The danger scale has 5 levels and it's the same across all of North America."}),f.jsx(de,{children:"The Danger Scale"}),f.jsx(Lt,{headers:["Level","Name","Color","What To Do"],rows:[["1","Low",f.jsx(lr,{color:"green"}),"Generally safe. Normal caution in steep terrain."],["2","Moderate",f.jsx(lr,{color:"yellow"}),"Be careful on specific terrain features. Evaluate conditions."],["3","Considerable",f.jsx(lr,{color:"orange"}),f.jsxs(f.Fragment,{children:[f.jsx("strong",{children:"DANGEROUS."}),` This is where most people die in avalanches — they see "3 out of 5" and think it's fine. It's not. Use extreme caution.`]})],["4","High",f.jsx(lr,{color:"red"}),f.jsxs(f.Fragment,{children:[f.jsx("strong",{children:"Very dangerous."})," Stay off anything steep."]})],["5","Extreme",f.jsx(lr,{color:"black"}),f.jsxs(f.Fragment,{children:[f.jsx("strong",{children:"Don't go out."})," Avalanches are happening on their own."]})]]}),f.jsx(de,{children:"The Most Important Thing to Know"}),f.jsxs("p",{children:[f.jsx("strong",{children:"Level 3 (Considerable) kills more people than any other level."}),' People look at "3 out of 5" and think "middle of the road, probably okay." In reality, the risk roughly doubles at each step up the scale. Level 3 is where dangerous conditions overlap with people thinking they can handle it.']}),f.jsx(de,{children:"Seasonal"}),f.jsx("p",{children:'MeshAI only checks avalanche conditions during winter months (configurable, default December through April). Outside season, it shows "off season" and saves API calls.'}),f.jsx(de,{children:"Finding Your Avalanche Center"}),f.jsxs("p",{children:["Go to ",f.jsx(Wt,{href:"https://avalanche.org/avalanche-centers/",children:"avalanche.org/avalanche-centers/"})," for a map. Common center codes:"]}),f.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[f.jsxs("li",{children:[f.jsx(le,{children:"SNFAC"})," — Sawtooth (central Idaho)"]}),f.jsxs("li",{children:[f.jsx(le,{children:"UAC"})," — Utah"]}),f.jsxs("li",{children:[f.jsx(le,{children:"NWAC"})," — Cascades/Olympics (WA/OR)"]}),f.jsxs("li",{children:[f.jsx(le,{children:"CAIC"})," — Colorado"]}),f.jsxs("li",{children:[f.jsx(le,{children:"SAC"})," — Sierra Nevada (CA)"]}),f.jsxs("li",{children:[f.jsx(le,{children:"GNFAC"})," — Gallatin (SW Montana)"]})]}),f.jsx(de,{children:"Learn More"}),f.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[f.jsxs("li",{children:[f.jsx(Wt,{href:"https://avalanche.org",children:"Avalanche.org"})," — US forecasts"]}),f.jsxs("li",{children:[f.jsx(Wt,{href:"https://avalanche.org/avalanche-encyclopedia/human/resources/north-american-public-avalanche-danger-scale/",children:"Avalanche Danger Scale"})," — full scale explanation"]}),f.jsxs("li",{children:[f.jsx(Wt,{href:"https://kbyg.org",children:"Know Before You Go"})," — avalanche awareness"]})]})]}),f.jsxs(wr,{id:"traffic",title:"Traffic Flow",children:[f.jsx(de,{children:"What You're Looking At"}),f.jsx("p",{children:"MeshAI monitors traffic speed on road segments you configure, using data from TomTom (real vehicles with navigation apps reporting their speed)."}),f.jsx(de,{children:"Speed Ratio — The Key Number"}),f.jsx("p",{children:'MeshAI compares current speed to "free-flow speed" (what traffic normally does when the road is empty). The ratio tells you how congested it is:'}),f.jsx(Lt,{headers:["Ratio","What It Means"],rows:[[f.jsxs(f.Fragment,{children:[f.jsx(lr,{color:"green"})," Above 85%"]}),"Normal. Traffic flowing fine."],[f.jsxs(f.Fragment,{children:[f.jsx(lr,{color:"yellow"})," 65-85%"]}),"Slow. Heavier than usual but moving."],[f.jsxs(f.Fragment,{children:[f.jsx(lr,{color:"orange"})," 40-65%"]}),"Congested. Significant delays."],[f.jsxs(f.Fragment,{children:[f.jsx(lr,{color:"red"})," Below 40%"]}),"Gridlock. Barely moving."]]}),f.jsxs("p",{children:[f.jsx("strong",{children:"Note"}),`: "free-flow speed" is NOT the speed limit. It's what traffic actually does on that road when nobody's in the way. Drivers often exceed speed limits on open highways.`]}),f.jsx(de,{children:"Confidence — Can You Trust the Data?"}),f.jsx("p",{children:"TomTom's confidence score tells you how much of the reading comes from real vehicles right now vs historical averages:"}),f.jsx(Lt,{headers:["Confidence","What It Means"],rows:[["Above 0.9","Very reliable — lots of real-time probe data"],["0.7-0.9","Good — mix of real-time and historical"],["Below 0.7",f.jsxs(f.Fragment,{children:[f.jsx("strong",{children:"Unreliable"})," — mostly guessing from historical patterns. Don't alert on this."]})]]}),f.jsx("p",{children:"Set minimum confidence to 0.7 to avoid false congestion alerts at night or on rural roads where few probe vehicles drive."}),f.jsx(de,{children:"Setting Up Corridors"}),f.jsx("p",{children:'Each "corridor" is a point on a road you want to monitor. To add one:'}),f.jsxs("ol",{className:"list-decimal list-inside ml-4 space-y-1",children:[f.jsx("li",{children:"Go to Google Maps, find the road"}),f.jsx("li",{children:`Right-click the road → "What's here?" → copy the coordinates`}),f.jsx("li",{children:"Add the corridor in Config with a name and those coordinates"}),f.jsx("li",{children:"TomTom finds the nearest road segment automatically"})]}),f.jsx(de,{children:"Getting an API Key"}),f.jsxs("ol",{className:"list-decimal list-inside ml-4 space-y-1",children:[f.jsxs("li",{children:["Sign up at ",f.jsx(Wt,{href:"https://developer.tomtom.com",children:"developer.tomtom.com"})," (free)"]}),f.jsx("li",{children:"Create an app → get your API key"}),f.jsx("li",{children:"Free tier: 2,500 requests/day (plenty for 5-10 corridors)"})]}),f.jsx(de,{children:"Learn More"}),f.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[f.jsxs("li",{children:[f.jsx(Wt,{href:"https://developer.tomtom.com",children:"TomTom Developer Portal"})," — API docs and key signup"]}),f.jsxs("li",{children:[f.jsx(Wt,{href:"https://www.tomtom.com/traffic-index/",children:"TomTom Traffic Index"})," — city congestion rankings"]})]})]}),f.jsxs(wr,{id:"roads-511",title:"Road Conditions (511)",children:[f.jsx(de,{children:"What You're Looking At"}),f.jsx("p",{children:"511 systems report road closures, construction, weather events, mountain pass conditions, and incidents. Every state runs their own 511 system — there is no national API."}),f.jsx(de,{children:"Setting It Up"}),f.jsx("p",{children:"You need to find YOUR state's 511 developer API. MeshAI does not include a default URL because every state is different. Some states have free public APIs, some require registration, and some don't have developer APIs at all."}),f.jsx("p",{children:"Configure in Config → Environmental → 511:"}),f.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[f.jsxs("li",{children:[f.jsx("strong",{children:"Base URL"})," — your state's API endpoint"]}),f.jsxs("li",{children:[f.jsx("strong",{children:"API Key"})," — if required by your state"]}),f.jsxs("li",{children:[f.jsx("strong",{children:"Endpoints"})," — which data feeds to poll (varies by state)"]})]}),f.jsx(de,{children:"Learn More"}),f.jsx("p",{children:"Check your state's 511 or DOT website for developer information."})]}),f.jsxs(wr,{id:"mesh-health",title:"Mesh Health",children:[f.jsx(de,{children:"Health Score"}),f.jsx("p",{children:"MeshAI computes a 0-100 health score for your mesh network by looking at five areas, each weighted differently:"}),f.jsx(Lt,{headers:["Pillar","Weight","What It Measures"],rows:[[f.jsx("strong",{children:"Infrastructure"}),"30%","Are your routers online?"],[f.jsx("strong",{children:"Utilization"}),"25%","Is the radio channel congested?"],[f.jsx("strong",{children:"Coverage"}),"20%","Do nodes have redundant paths to gateways?"],[f.jsx("strong",{children:"Behavior"}),"15%","Are any nodes flooding the channel?"],[f.jsx("strong",{children:"Power"}),"10%","Are battery-powered nodes running low?"]]}),f.jsx("p",{children:"The overall score is the weighted sum:"}),f.jsx("p",{className:"p-3 bg-slate-800 rounded font-mono text-sm",children:"Score = (Infrastructure × 30%) + (Utilization × 25%) + (Coverage × 20%) + (Behavior × 15%) + (Power × 10%)"}),f.jsx(de,{children:"How Each Pillar Is Calculated"}),f.jsx(Qs,{children:"Infrastructure (30%)"}),f.jsx("p",{children:"This is the simplest pillar — what percentage of your infrastructure nodes are currently online?"}),f.jsx("p",{className:"p-3 bg-slate-800 rounded font-mono text-sm",children:"(routers online ÷ total routers) × 100"}),f.jsxs("p",{children:["Only nodes with the ",f.jsx(le,{children:"ROUTER"}),", ",f.jsx(le,{children:"ROUTER_LATE"}),", or ",f.jsx(le,{children:"ROUTER_CLIENT"})," role count as infrastructure. Regular client nodes going offline doesn't affect this score. If you have 5 routers and 3 are online, infrastructure scores 60."]}),f.jsxs("p",{children:[f.jsx("strong",{children:"Special case:"})," If you have no routers at all (all clients), this pillar scores 100. You're not penalized for not having infrastructure — you just don't have any to track."]}),f.jsx(Qs,{children:"Utilization (25%)"}),f.jsxs("p",{children:["MeshAI reads the channel utilization that each router reports in its telemetry — this is the firmware's own measurement of how busy the radio channel is. MeshAI uses the ",f.jsx("strong",{children:"highest"})," value from any infrastructure node because the busiest router is the bottleneck for the whole mesh."]}),f.jsx("p",{children:f.jsx("strong",{children:"How it works:"})}),f.jsxs("ol",{className:"list-decimal list-inside space-y-1 ml-4",children:[f.jsxs("li",{children:["Collect ",f.jsx(le,{children:"channel_utilization"})," from all infrastructure nodes that report it"]}),f.jsx("li",{children:"If no infra nodes have telemetry, try all nodes"}),f.jsxs("li",{children:["Use the ",f.jsx("strong",{children:"maximum"})," value for scoring (busiest node = bottleneck)"]}),f.jsx("li",{children:"If no nodes report utilization (older firmware), fall back to packet count estimate"})]}),f.jsxs("p",{className:"mt-4",children:[f.jsx("strong",{children:"Fallback method"})," (when telemetry unavailable): estimates from packet counts using 200ms/packet airtime. This is less accurate — it assumes MediumFast preset and sums packets across all nodes."]}),f.jsx(Lt,{headers:["Channel Utilization","Score","What It Means"],rows:[["Under 20%","100","Channel is clear — this is the goal"],["20-25%","75-100","Slight degradation, occasional collisions"],["25-35%","50-75","Severe degradation — firmware throttling active"],["35-45%","25-50","Mesh struggling badly — reliability dropping"],["Over 45%","0-25","Mesh is effectively unusable"]]}),f.jsxs("p",{children:[f.jsx("strong",{children:"Special case:"})," If no utilization data is available (no telemetry and no packet data), this pillar scores 100. You're not penalized for missing data."]}),f.jsx(Qs,{children:"Coverage (20%)"}),f.jsx("p",{children:'Measures gateway redundancy — how many of your data sources can "see" each node. A node reported by all 3 of your gateways has full coverage. A node only seen by 1 gateway is a single point of failure.'}),f.jsxs("p",{className:"p-3 bg-slate-800 rounded font-mono text-sm",children:["coverage_ratio = average_gateways_per_node ÷ total_sources",f.jsx("br",{}),"single_gw_penalty = (single_gateway_nodes ÷ total_nodes) × 40"]}),f.jsx("p",{children:"If a node is seen by 2 out of 3 sources, its coverage ratio is 0.67. Infrastructure nodes with only single-gateway coverage get an extra penalty — they're critical but have no backup path."}),f.jsx(Lt,{headers:["Coverage Ratio","Base Score","After Penalty"],rows:[["100% (all sources)","100","100 minus single-gw penalty"],["70-99%","90","Minus penalties"],["50-69%","70","Minus penalties"],["Under 50%","50 or less","Heavy penalty"]]}),f.jsxs("p",{children:[f.jsx("strong",{children:"Special case:"})," With only 1 data source, this pillar can't score well — there's no redundancy to measure. Coverage becomes meaningful when you have 2+ sources (MeshMonitor + MQTT, multiple gateways, etc.)."]}),f.jsx(Qs,{children:"Behavior (15%)"}),f.jsx("p",{children:"Counts how many nodes are sending an unusually high number of non-text packets. This catches firmware bugs, stuck transmitters, and misconfigured nodes that are flooding the channel."}),f.jsxs("p",{children:[f.jsx("strong",{children:"What counts as flooding:"})," More than 500 non-text packets in 24 hours. Text messages don't count — the behavior pillar only flags telemetry, position, and routing packet floods."]}),f.jsx(Lt,{headers:["Flagged Nodes","Score"],rows:[["0","100"],["1","80"],["2-3","60"],["4-5","40"],["6+","20"]]}),f.jsx("p",{children:"A single misbehaving node only drops the score to 80. It takes multiple problem nodes to seriously hurt the behavior pillar."}),f.jsx(Qs,{children:"Power (10%)"}),f.jsx("p",{children:"Measures what fraction of battery-powered nodes are below the warning threshold (default 20%)."}),f.jsx("p",{className:"p-3 bg-slate-800 rounded font-mono text-sm",children:"100 × (1 − low_battery_nodes ÷ total_battery_nodes)"}),f.jsx("p",{children:"If 2 out of 10 battery nodes are below 20%, power scores 80."}),f.jsxs("p",{children:[f.jsx("strong",{children:"Important:"})," USB-powered nodes are excluded from this calculation. Many nodes report 100% battery even when running on wall power with no battery installed. Only nodes actually running on batteries affect this pillar."]}),f.jsx(de,{children:"Health Tiers"}),f.jsx(Lt,{headers:["Score","Tier","What It Means"],rows:[["90-100",f.jsxs(f.Fragment,{children:[f.jsx(lr,{color:"green"})," Healthy"]}),"Everything's working well."],["75-89",f.jsxs(f.Fragment,{children:[f.jsx(lr,{color:"yellow"})," Slight degradation"]}),"Some issues but the mesh is functional."],["50-74",f.jsxs(f.Fragment,{children:[f.jsx(lr,{color:"orange"})," Unhealthy"]}),"Multiple problems. Reliability is affected."],["25-49",f.jsxs(f.Fragment,{children:[f.jsx(lr,{color:"red"})," Warning"]}),"Significant issues. The mesh is struggling."],["0-24",f.jsxs(f.Fragment,{children:[f.jsx(lr,{color:"black"})," Critical"]}),"Major failures. Barely functional."]]}),f.jsx(de,{children:"Channel Utilization — Is the Radio Channel Full?"}),f.jsx("p",{children:"Meshtastic radios share one LoRa channel. If too many nodes are transmitting too often, they step on each other and messages get lost."}),f.jsx(Lt,{headers:["Utilization","What's Happening"],rows:[[f.jsxs(f.Fragment,{children:[f.jsx(lr,{color:"green"})," Under 25%"]}),"Healthy. The firmware itself starts throttling above 25% to protect the channel — so under 25% is the target."],[f.jsxs(f.Fragment,{children:[f.jsx(lr,{color:"yellow"})," 25-40%"]}),"Getting busy. Common on larger meshes. Worth watching."],[f.jsxs(f.Fragment,{children:[f.jsx(lr,{color:"orange"})," 40-50%"]}),"Congested. The firmware throttles GPS updates above 40%. Messages are colliding and retrying."],[f.jsxs(f.Fragment,{children:[f.jsx(lr,{color:"red"})," Over 50%"]}),"Serious problem. More time is spent retrying than communicating. Mesh reliability drops fast."],[f.jsxs(f.Fragment,{children:[f.jsx(lr,{color:"black"})," Over 65%"]}),"Documented failure point on busy LONG_FAST meshes. The mesh becomes unusable."]]}),f.jsx(de,{children:"Packet Flooding"}),f.jsx("p",{className:"p-3 bg-yellow-500/10 border border-yellow-500/30 rounded text-yellow-200",children:f.jsx("strong",{children:'⚠️ "Packet flooding" means a node sending too many RADIO PACKETS. This has nothing to do with water flooding.'})}),f.jsx("p",{children:"A normal Meshtastic node sends a packet every few minutes (announcing itself, reporting telemetry, updating position). If a node starts blasting packets every few seconds, something is wrong — firmware bug, stuck transmitter, or misconfiguration."}),f.jsx(Lt,{headers:["Packets per Minute","What It Means"],rows:[["1-5","Normal"],["5-10","Elevated — might be someone chatting a lot"],["10-20","Suspicious — worth investigating"],["Over 30","Something is broken. This node is actively hurting the mesh."]]}),f.jsx(de,{children:"Battery Levels"}),f.jsx("p",{children:"Most Meshtastic radios (T-Beam, RAK4631, Heltec V3) use a single lithium battery cell. The voltage tells you how much charge is left:"}),f.jsx(Lt,{headers:["Voltage","Charge","What To Do"],rows:[["4.20V","100%","Full"],["3.80V","~60%","Fine"],[f.jsx("strong",{children:"3.60V"}),f.jsx("strong",{children:"~30%"}),f.jsx(f.Fragment,{children:f.jsx("strong",{children:"⚠️ Warning — charge it soon"})})],[f.jsx("strong",{children:"3.50V"}),f.jsx("strong",{children:"~15%"}),f.jsx(f.Fragment,{children:f.jsx("strong",{children:"🔴 Low — charge it now"})})],[f.jsx("strong",{children:"3.40V"}),f.jsx("strong",{children:"~7%"}),f.jsx(f.Fragment,{children:f.jsx("strong",{children:"⚫ About to die"})})],["3.30V","~3%","Device shutting down"]]}),f.jsxs("p",{children:[f.jsx("strong",{children:"USB-powered nodes"})," report 100% battery even if there's no battery installed. Battery alerts only matter for nodes actually running on battery power."]}),f.jsx(de,{children:"Node Offline Detection"}),f.jsx("p",{children:`MeshAI marks a node as "offline" when it hasn't been heard for a configurable time period. Different node types need different thresholds:`}),f.jsx(Lt,{headers:["Node Type","Recommended Threshold","Why"],rows:[["Fixed infrastructure (wall power)",f.jsx("strong",{children:"2 hours"}),"These should always be transmitting. 2 hours of silence means something is wrong."],["Fixed client (wall power)","2-4 hours","Same logic, slightly more lenient."],["Mobile / vehicle","4-8 hours","They go behind mountains, into garages, out of range. Normal."],["Solar-powered","12-24 hours","May shut down at night when solar stops charging."]]}),f.jsxs("p",{children:[f.jsx("strong",{children:"Rule of thumb"}),`: set the threshold to about 4× the node's beacon interval. Too tight and nodes will constantly flap "offline/online" from normal gaps. Too loose and real outages go unnoticed.`]})]}),f.jsxs(wr,{id:"broadcast-types",title:"Broadcast Types",children:[f.jsx("p",{children:"Every broadcast the bot sends to the mesh carries a one-word prefix that tells you what kind of update it is. Three types:"}),f.jsx(Lt,{headers:["Prefix","What it means","When you see it"],rows:[[f.jsx(le,{children:"New:"}),"The first time the bot has ever broadcast about this event","Cache Peak Fire's WFIGS first-sight; FIRMS cluster's first 3-pixel detection; first NWS warning for a CAP id"],[f.jsx(le,{children:"Update:"}),"A material change on something the bot already announced","Cache Peak Fire's acreage grew; ITD 511 work zone's lane status changed; quake event's magnitude was revised"],[f.jsx(le,{children:"Active:"}),"A clock-driven reminder that an already-announced event is still live","Cache Peak Fire is still burning 8 hours later; an SWPC G3 storm is still in progress"]]}),f.jsx("p",{children:"The bot tracks first-broadcast time and last-broadcast time separately on every event row, so a New: prefix is only emitted once even after a container restart. Update: respects per-adapter cooldowns (WFIGS is 8 h by default; ITD 511 is per-incident). Active: is the reminder system, covered in the next section."})]}),f.jsxs(wr,{id:"reminders",title:"Reminder System",children:[f.jsxs("p",{children:["Some events stay live for days. A wildfire doesn't go out because WFIGS stopped publishing updates; a geomagnetic storm doesn't end because SWPC went quiet on the wire. The reminder system fires a clock-driven"," ",f.jsx(le,{children:"Active:"}),"-prefixed re-broadcast on a human-scale cadence so an operator who came on shift after the original announcement still sees the event."]}),f.jsx(de,{children:"Cadences"}),f.jsx(Lt,{headers:["Adapter","Reminder cadence","Termination"],rows:[[f.jsxs(f.Fragment,{children:[f.jsx(le,{children:"wfigs"})," (wildfires)"]}),"Every 8 h while the fire is still active","WFIGS publishes a tombstone (incident closed) → fires.tombstoned_at is stamped → reminder loop stops"],[f.jsxs(f.Fragment,{children:[f.jsx(le,{children:"swpc"})," (space weather)"]}),"Every 8 h while a Kp >= floor / X-class flare / proton-storm event is ongoing","The next SWPC envelope shows the storm has subsided"],[f.jsx(le,{children:"itd_511_work_zone"}),"Per-zone, configurable in the rule UI","WZDx publishes the zone with end_date in the past"]]}),f.jsx(de,{children:"The tombstone"}),f.jsxs("p",{children:["When a WFIGS update declares an incident closed, the bot stamps"," ",f.jsx(le,{children:"fires.tombstoned_at"})," with the close time. The reminder scheduler treats ",f.jsx(le,{children:"tombstoned_at IS NOT NULL"}),` as "stop broadcasting Active: for this fire," and the LLM context layer treats it as "this fire is in the closed-out archive." A subsequent FIRMS pixel inside that fire's spread radius does not re-open it — closure is authoritative from NIFC.`]}),f.jsx(de,{children:"Turning reminders off"}),f.jsxs("p",{children:["Per-adapter on/off lives in ",f.jsx(le,{children:"adapter_meta.reminder_enabled"})," ","and is exposed on the Adapter Config page. The reminders themselves flow through the same dispatcher gates as everything else, so they still respect cooldowns, the cold-start grace window, and your notification rules."]})]}),f.jsxs(wr,{id:"notifications",title:"Notifications",children:[f.jsx(de,{children:"How It Works"}),f.jsxs("ol",{className:"list-decimal list-inside ml-4 space-y-1",children:[f.jsxs("li",{children:[f.jsx("strong",{children:"Something happens"})," — a fire is detected, weather warning issued, node goes offline, etc."]}),f.jsxs("li",{children:[f.jsx("strong",{children:"MeshAI checks your rules"})," — does this event match any of your notification rules? Is it severe enough?"]}),f.jsxs("li",{children:[f.jsx("strong",{children:"If a rule matches"})," — MeshAI sends the notification through whatever delivery method that rule is configured for."]})]}),f.jsx(de,{children:"Building Rules"}),f.jsx("p",{children:"Each rule answers three questions:"}),f.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[f.jsxs("li",{children:[f.jsx("strong",{children:"WHEN"})," does it trigger? (which categories, what severity)"]}),f.jsxs("li",{children:[f.jsx("strong",{children:"WHERE"})," does it send? (mesh broadcast, email, webhook, etc.)"]}),f.jsxs("li",{children:[f.jsx("strong",{children:"HOW OFTEN"})," at most? (cooldown period)"]})]}),f.jsx("p",{children:'Use "Add from Template" to start with a pre-built rule and customize it, or build from scratch with "Add Rule."'}),f.jsx(de,{children:"Severity Levels — What Should I Set?"}),f.jsx(Lt,{headers:["Level","When It's Used","Notification Volume"],rows:[["Info","Routine stuff (ducting detected, new router appeared)","High — lots of messages"],["Advisory","Worth knowing (weather advisory, slow traffic, battery declining)","Moderate"],["Watch","Pay attention (fire within 50km, weather watch, stream rising)","Low-moderate"],[f.jsxs(f.Fragment,{children:[f.jsx("strong",{children:"Warning"})," ✓"]}),"Take action (fire within 15km, severe weather, critical battery)","Low — recommended for most rules"],["Emergency","Life safety (extreme weather, fire at infrastructure, total blackout)","Very rare"]]}),f.jsxs("p",{children:[f.jsx("strong",{children:'"Warning" is the sweet spot for most rules.'})," You get alerted when something actually needs your attention without being overwhelmed by every minor event."]}),f.jsx(de,{children:"Webhook — The Swiss Army Knife"}),f.jsx("p",{children:"A webhook sends your alert as an HTTP POST to any URL. This one delivery method works with:"}),f.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[f.jsxs("li",{children:[f.jsx("strong",{children:"Discord"})," — use a Discord webhook URL"]}),f.jsxs("li",{children:[f.jsx("strong",{children:"Slack"})," — use a Slack incoming webhook URL"]}),f.jsxs("li",{children:[f.jsx("strong",{children:"ntfy.sh"})," — POST to ",f.jsx(le,{children:"https://ntfy.sh/your-topic"})]}),f.jsxs("li",{children:[f.jsx("strong",{children:"Pushover"})," — POST to the Pushover API"]}),f.jsxs("li",{children:[f.jsx("strong",{children:"Home Assistant"})," — POST to an automation webhook URL"]}),f.jsx("li",{children:"Anything else that accepts HTTP POST"})]}),f.jsx("p",{children:"MeshAI doesn't need to know what's on the other end. Give it the URL and it works."})]}),f.jsxs(wr,{id:"commands",title:"Commands",children:[f.jsxs("p",{children:["All commands use the ",f.jsx(le,{children:"!"})," prefix (configurable). Send these as a direct message to MeshAI on your mesh."]}),f.jsx(de,{children:"Basic Commands"}),f.jsx(Lt,{headers:["Command","What It Does"],rows:[[f.jsx(le,{children:"!help"}),"Shows all available commands"],[f.jsx(le,{children:"!ping"}),"Tests if the bot is alive"],[f.jsx(le,{children:"!status"}),"Quick mesh summary (nodes online, health score)"],[f.jsx(le,{children:"!health"}),"Detailed health report with pillar scores"],[f.jsx(le,{children:"!weather"}),"Current weather for your area"]]}),f.jsx(de,{children:"Environmental Commands"}),f.jsx(Lt,{headers:["Command","What It Does"],rows:[[f.jsx(le,{children:"!alerts"}),"Active NWS weather alerts for your area"],[f.jsxs(f.Fragment,{children:[f.jsx(le,{children:"!solar"})," (or ",f.jsx(le,{children:"!hf"}),")"]}),"Current solar indices and RF conditions"],[f.jsx(le,{children:"!fire"}),"Active wildfires near your mesh"],[f.jsx(le,{children:"!avy"}),'Avalanche advisory (seasonal — shows "off season" in summer)'],[f.jsxs(f.Fragment,{children:[f.jsx(le,{children:"!streams"})," (or ",f.jsx(le,{children:"!gauges"}),")"]}),"Stream gauge readings"],[f.jsxs(f.Fragment,{children:[f.jsx(le,{children:"!roads"})," (or ",f.jsx(le,{children:"!traffic"}),")"]}),"Road conditions and traffic flow"],[f.jsx(le,{children:"!hotspots"}),"Satellite fire detections"]]}),f.jsx(de,{children:"Conversational"}),f.jsxs("p",{children:[`Bang commands are the short, predictable interface. For anything that doesn't map cleanly to a single command — "how's the mesh doing?", "is there any ducting?", "why didn\\'t I hear about anything today?" — you can DM the bot in plain English. The LLM DM path covers the same data the commands cover, plus the dispatcher drop audit, with honest "no data" answers when a feed is quiet. Full catalog under`," ",f.jsx("a",{href:"#llm-dm",className:"text-accent hover:underline",children:"LLM DM Queries"}),"."]})]}),f.jsxs(wr,{id:"llm-dm",title:"LLM DM (Natural-Language Queries)",children:[f.jsxs("p",{children:["Bang commands like ",f.jsx(le,{children:"!fire"})," are short and predictable — the right tool on a mesh-constrained interface. For anything else, you can DM the bot in plain English and it will answer from the same live environmental data the broadcast pipeline uses. Both paths work; pick whichever fits the question."]}),f.jsx(de,{children:"What it can answer"}),f.jsx("p",{children:"When you DM the bot a question, the env_reporter layer assembles up to seven data blocks and injects them into the LLM's system prompt. Each block maps to one adapter:"}),f.jsx(Lt,{headers:["Adapter block","Example question that hits it","What you get back"],rows:[[f.jsx(le,{children:"build_fires_detail"}),'"are there any fires near me?"',"Active WFIGS-declared fires, acreage, containment, declared_at, county/state"],[f.jsx(le,{children:"build_alerts_detail"}),'"any weather alerts?"',"Active NWS CAP alerts: type, severity, area, expiry"],[f.jsx(le,{children:"build_quakes_detail"}),'"any earthquakes nearby?"',"USGS quakes in the last 24h: magnitude, depth, place"],[f.jsx(le,{children:"build_traffic_detail"}),'"how is traffic on I-84?" / "any road closures?"',"TomTom + ITD 511 active incidents"],[f.jsx(le,{children:"build_gauges_detail"}),'"what is the snake river level?"',"USGS NWIS latest readings + flood stages"],[f.jsx(le,{children:"build_swpc_detail"}),'"what are the band conditions?" / "any space weather?"',"Recent SWPC events + band-conditions ratings"],[f.jsx(le,{children:"build_drop_audit"}),`"why didn't I hear about anything today?"`,"Event log: what envelopes the dispatcher filtered, by adapter + category"]]}),f.jsx(de,{children:"The grounding rule"}),f.jsxs("p",{children:["The bot is told to answer ",f.jsx("em",{children:"only"}),' from the blocks in the system prompt. If a block is empty (no recent quakes, no active NWS alerts), the response is honest about it: "No active weather alerts right now," not a fabricated "144 earthquakes worldwide in the past 24 hours." That clamp closes the failure mode where the LLM defaulted to its training data when local tables were quiet.']}),f.jsx(de,{children:"Excluding an adapter from LLM context"}),f.jsxs("p",{children:["The ",f.jsx(le,{children:"include_in_llm_context"})," toggle on each adapter's row in Adapter Config decides whether that adapter's ",f.jsx(le,{children:"build_*"})," ","block lands in the system prompt. Turn an adapter off here if you don't want the bot's natural-language answers to draw on it (e.g. you ingest TomTom for situational awareness but don't want it cited in DM answers). Broadcasts are unaffected — this toggle gates LLM context only."]}),f.jsx(de,{children:"What it can't answer"}),f.jsx("p",{children:`The bot has no general internet access. Questions that need data the env_reporter doesn't carry ("what's the weather forecast tomorrow", "who's the current president") fall back to whatever the configured LLM backend knows from training. The grounding clamp keeps the bot from inventing local data, but it can't keep the LLM from speculating about non-local topics.`})]}),f.jsxs(wr,{id:"or-not-and",title:"OR-not-AND Architecture",children:[f.jsx("p",{children:"Every environmental adapter pulls its data from one of two places:"}),f.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[f.jsxs("li",{children:[f.jsx("strong",{children:"Central"})," (canonical) — Central polls the upstream feed once on behalf of the whole fleet and re-publishes normalized envelopes over NATS JetStream. MeshAI subscribes. One Central poll, one canonical normalization, many subscribers."]}),f.jsxs("li",{children:[f.jsx("strong",{children:"Native"})," — MeshAI polls the upstream feed directly. Stays around for adapters Central doesn't carry yet (currently Tropospheric Ducting and Avalanche Center advisories) and for operators who don't run Central."]})]}),f.jsx(de,{children:"Why mutually exclusive"}),f.jsxs("p",{children:["An adapter is set to ",f.jsx("strong",{children:"either"})," Central ",f.jsx("strong",{children:"or"})," ","native, never both. Running both at the same time is what the codebase calls the ",f.jsx("em",{children:"AND-mode anti-pattern"}),": two independent poll loops on the same upstream feed, duplicate broadcasts, duplicate cursor state, no shared dedup. The Spokane-class leak (cross-state broadcasts that escaped the bbox filter in May 2026) was caused by an inadvertent AND-mode on the traffic adapter; the fix made the gate enforce mutual exclusion at boot and on every config save."]}),f.jsx(de,{children:"The per-adapter source toggle"}),f.jsxs("p",{children:["Set ",f.jsx(le,{children:"feed_source"})," on each adapter's row in Environment:"]}),f.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[f.jsxs("li",{children:[f.jsx(le,{children:"central"})," — disable the native poll loop, subscribe to the matching Central subject pattern."]}),f.jsxs("li",{children:[f.jsx(le,{children:"native"})," — disable the Central subscription for this adapter, run the native poller."]})]}),f.jsxs("p",{children:["On the GUI, adapters with ",f.jsx("em",{children:"no Central counterpart yet"}),` show their Central button disabled with a "native only" tooltip. That's not an AND state; the adapter is still single-source, just locked to native by upstream availability.`]}),f.jsx(de,{children:"Where this surfaces in tooltips"}),f.jsxs("p",{children:[`You'll see "AND-model anti-pattern" referenced in two places: the USGS-lookup button on Gauge Sites (disabled when the USGS adapter is on Central, because doing a one-off direct USGS poll from the GUI while the runtime is on Central is precisely the AND-mode this rule forbids) and the env_routes 404 response on`," ",f.jsxs(le,{children:["/api/env/usgs/lookup/","{site_id}"]})," in central-feed mode. Both surfaces refuse to fall back to a direct upstream call; the right answer is to enter values manually or source them from Central."]})]}),f.jsxs(wr,{id:"adapter-config",title:"Adapter Config & the CODE Rule",children:[f.jsx("p",{children:"The Adapter Config page is the single hub for ~50 GUI-editable knobs across the 13 adapters that touch the broadcast pipeline. Changes take effect on the next handler call — no container restart needed for most keys."}),f.jsx(de,{children:"The CONFIG-vs-CODE rule"}),f.jsx("p",{children:"Not everything tunable becomes a GUI row. The codebase splits along one rule:"}),f.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[f.jsxs("li",{children:[f.jsx("strong",{children:"CONFIG"})," (lives on this page) — where you send (channels), how often (cadences, schedules), thresholds (magnitude floors, severity gates, distance radii, cooldown durations, freshness windows), curation data (which sites, states, codes), toggles (enabled, include_in_llm_context)."]}),f.jsxs("li",{children:[f.jsx("strong",{children:"CODE"})," (stays in the handlers, not on the GUI) — sentence templates, emoji choices, mapping / translation functions (TomTom icon_map, ITD sub_type_map, Central adapter_map and category_map), rendering logic (anchor priority order, expires-buckets formatting, threshold-state labels), heuristic logic (band_conditions Kp/SFI → Good/Fair/Poor function)."]})]}),f.jsx("p",{children:"If you find yourself wanting to add a wire-string template or an emoji to the GUI, stop — that's CODE. If you want to change a threshold or a curation list, the GUI is the right place."}),f.jsx(de,{children:"Restart-required vs live"}),f.jsx("p",{children:"Most keys take effect on the next handler call (the env_store re-reads from the database). A short list requires a container restart, because they govern startup-only wiring:"}),f.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[f.jsxs("li",{children:["Anything under the ",f.jsx(le,{children:"environmental"})," section on the Config page (feed_source, central URL, etc.). The Spokane-fix gate runs at env_store boot and at CentralConsumer subscribe — both happen only at startup."]}),f.jsx("li",{children:"The LLM backend swap (Google → Anthropic → OpenAI)."}),f.jsx("li",{children:"The dispatcher cold-start grace window."})]}),f.jsx("p",{children:`When you save one of those keys via the GUI, a yellow Restart-Required banner surfaces at the top of the page with a "Restart now" button. Until you click it, the on-disk config and the running config intentionally disagree — that's the OR-not-AND gate refusing to transition mid-flight.`}),f.jsxs(de,{children:["The ",f.jsx(le,{children:"include_in_llm_context"})," toggle"]}),f.jsxs("p",{children:[`Each adapter's card on Adapter Config carries a per-adapter "LLM context" switch. When off, that adapter's `,f.jsx(le,{children:"build_*"})," ","env_reporter block is skipped during system-prompt assembly. Broadcasts are unaffected; this toggle is purely about what the LLM sees when you DM it. See the LLM DM section above for the seven adapter blocks this gates."]})]}),f.jsxs(wr,{id:"curation",title:"Curation: Gauge Sites & Town Anchors",children:[f.jsx("p",{children:"Two curation tables drive the broadcast text the bot puts on the mesh. Both are CRUD UIs with per-row enable/disable; both fall through to fallback chains when a row is missing or disabled."}),f.jsx(de,{children:"Gauge Sites"}),f.jsx("p",{children:"Stream gauge thresholds for the USGS NWIS handler. Each row pairs a USGS site_id with a human gauge name, lat/lon, and four NWS-AHPS flood thresholds in feet: Action, Minor, Moderate, Major. The handler compares an incoming gauge reading to those thresholds and emits the right broadcast severity."}),f.jsxs("p",{children:[f.jsx("strong",{children:"USGS lookup button"})," — when you add a new row in native-feed mode, the lookup queries the USGS Site Service plus NWS NWPS to auto-populate name, coordinates, and flood stages. In central-feed mode the button is disabled with a tooltip: a one-off direct USGS poll from the GUI while the runtime is on Central is the AND-mode anti-pattern the architecture forbids. Enter values manually or pull them from Central."]}),f.jsxs("p",{children:[f.jsx("strong",{children:"Disabled rows"})," are ignored at dispatch time. The corresponding gauge still ingests into ",f.jsx(le,{children:"gauge_readings"})," ","(so historical queries still work), it just doesn't broadcast."]}),f.jsx(de,{children:"Town Anchors"}),f.jsxs("p",{children:['Lookup table for the "X mi ',"<","bearing",">"," of ","<","town",">",'" suffix in broadcast text. When a fire or NWS alert renders, the bot walks an anchor chain to figure out where to say it is:']}),f.jsxs("ol",{className:"list-decimal list-inside ml-4 space-y-1",children:[f.jsx("li",{children:'Photon nearest-town lookup (the WFIGS path uses this — produces "near Long Creek Summit Home" style anchors)'}),f.jsx("li",{children:"Town Anchors table (your curated list)"}),f.jsx("li",{children:"Landclass label (county / federal-land identifier)"}),f.jsx("li",{children:"County + state fallback"}),f.jsx("li",{children:"Bare lat/lon coords"})]}),f.jsx("p",{children:'Each row carries a name (lowercased on save), state, lat/lon, and an enable flag. The "lowercased on save" rule keeps "Almo" / "ALMO" / "almo" from being three distinct rows. Disabled rows fall through to the next anchor in the chain — the broadcast text still goes out, it just uses a different anchor.'}),f.jsxs("p",{children:["Example broadcast text rendered from a Town Anchors row:"," ",f.jsx("span",{className:"text-amber-300",children:'"🔥 New: Cache Peak Fire (WF), 3 mi N of Almo: 250 ac, 0% contained, @ 42.118,-113.643"'})]})]}),f.jsxs(wr,{id:"schema",title:"Schema Migrations",children:[f.jsxs("p",{children:["MeshAI persists state in a single SQLite database (",f.jsx(le,{children:"/data/meshai.sqlite"}),") with WAL journaling. Schema migrations live in ",f.jsx(le,{children:"meshai/persistence/migrations/v*.sql"})," ","and apply automatically on container start. The runner reads the migrations directory, sorts by version, and applies anything past the current ",f.jsx(le,{children:"schema_meta.version"})," in order. Idempotent re-runs are no-ops."]}),f.jsx(de,{children:"v0.6 + v0.7 additions"}),f.jsx(Lt,{headers:["Migration","What it added"],rows:[[f.jsx(le,{children:"v11"}),"first_broadcast_at + last_broadcast_at split + reminder_enabled per adapter (the schema basis for New / Update / Active)"],[f.jsx(le,{children:"v12"}),"fires.tombstoned_at (WFIGS closure stamp; terminates the reminder loop)"],[f.jsx(le,{children:"v13"}),"Fire Tracker Phase 1 — fire_pixels table + spread_radius_mi + current_centroid_lat/lon + last_hotspot_at; firms_pixels attributed_at + cluster_broadcast_at"],[f.jsx(le,{children:"v14"}),"Fire Tracker Phase 2 — fire_passes table (per-satellite-pass centroid + drift) + last_pass_id + halt_broadcast_at on fires"],[f.jsx(le,{children:"v15"}),"Fire Tracker Phase 3 — fire_passes.perimeter_geojson (convex hull) + fires.last_spotting_broadcast_at"],[f.jsx(le,{children:"v16"}),"Fire Tracker Phase 4 — fire_digest_broadcasts table (idempotent twice-daily LLM digest)"]]}),f.jsx(de,{children:"When migrations fail"}),f.jsxs("p",{children:["A migration failure leaves the database at the prior version and raises in the runner. Container logs surface the SQL error;"," ",f.jsx(le,{children:"schema_meta.version"})," tells you where the last successful migration stopped. Re-running the container after the underlying issue is fixed picks up from there."]})]}),f.jsxs(wr,{id:"api",title:"API Reference",children:[f.jsxs("p",{children:["MeshAI's REST API is available at ",f.jsx(le,{children:"http://your-host:8080"}),". All endpoints return JSON."]}),f.jsx(de,{children:"System"}),f.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[f.jsxs("li",{children:[f.jsx(le,{children:"GET /api/status"})," — version, uptime, node count"]}),f.jsxs("li",{children:[f.jsx(le,{children:"GET /api/channels"})," — radio channel list"]}),f.jsxs("li",{children:[f.jsx(le,{children:"POST /api/restart"})," — restart the bot"]})]}),f.jsx(de,{children:"Mesh Data"}),f.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[f.jsxs("li",{children:[f.jsx(le,{children:"GET /api/health"})," — health score and pillars"]}),f.jsxs("li",{children:[f.jsx(le,{children:"GET /api/nodes"})," — all nodes with positions and telemetry"]}),f.jsxs("li",{children:[f.jsx(le,{children:"GET /api/edges"})," — neighbor links with signal quality"]}),f.jsxs("li",{children:[f.jsx(le,{children:"GET /api/regions"})," — region summaries"]}),f.jsxs("li",{children:[f.jsx(le,{children:"GET /api/sources"})," — data source health"]})]}),f.jsx(de,{children:"Configuration"}),f.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[f.jsxs("li",{children:[f.jsx(le,{children:"GET /api/config"})," — full config"]}),f.jsxs("li",{children:[f.jsxs(le,{children:["GET /api/config/","{section}"]})," — one section"]}),f.jsxs("li",{children:[f.jsxs(le,{children:["PUT /api/config/","{section}"]})," — update a section"]})]}),f.jsx(de,{children:"Environmental"}),f.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[f.jsxs("li",{children:[f.jsx(le,{children:"GET /api/env/status"})," — per-feed health"]}),f.jsxs("li",{children:[f.jsx(le,{children:"GET /api/env/active"})," — all active events"]}),f.jsxs("li",{children:[f.jsx(le,{children:"GET /api/env/swpc"})," — solar/geomagnetic data"]}),f.jsxs("li",{children:[f.jsx(le,{children:"GET /api/env/ducting"})," — atmospheric profile"]}),f.jsxs("li",{children:[f.jsx(le,{children:"GET /api/env/fires"})," — wildfire perimeters"]}),f.jsxs("li",{children:[f.jsx(le,{children:"GET /api/env/hotspots"})," — satellite fire detections"]})]}),f.jsx(de,{children:"Alerts"}),f.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[f.jsxs("li",{children:[f.jsx(le,{children:"GET /api/alerts/active"})," — current alerts"]}),f.jsxs("li",{children:[f.jsx(le,{children:"GET /api/alerts/history"})," — past alerts"]}),f.jsxs("li",{children:[f.jsx(le,{children:"GET /api/notifications/categories"})," — available alert categories"]})]}),f.jsx(de,{children:"Real-time"}),f.jsx("ul",{className:"list-disc list-inside ml-4 space-y-1",children:f.jsxs("li",{children:[f.jsx(le,{children:"ws://your-host:8080/ws/live"})," — WebSocket for live updates"]})})]})]})})]})}const QT={site_id:"",gauge_name:"",lat:0,lon:0,action_ft:null,flood_minor_ft:null,flood_moderate_ft:null,flood_major_ft:null,enabled:!0,updated_at:0};function M$(){const[e,t]=O.useState([]),[r,n]=O.useState(!0),[a,i]=O.useState(null),[o,s]=O.useState(null),[l,u]=O.useState(QT),[c,h]=O.useState(!1),[d,v]=O.useState("unknown"),g=O.useCallback(async()=>{n(!0),i(null);try{const S=await fetch("/api/gauge-sites");if(!S.ok)throw new Error(`GET: ${S.status}`);t(await S.json())}catch(S){i(String(S))}finally{n(!1)}},[]);O.useEffect(()=>{g()},[g]),O.useEffect(()=>{fetch("/api/config/environmental").then(S=>S.json()).then(S=>{var C;return v(((C=S==null?void 0:S.usgs)==null?void 0:C.feed_source)||"unknown")}).catch(()=>v("unknown"))},[]);const m=S=>{s(S.site_id),u({...S}),h(!1)},y=()=>{h(!0),s(null),u({...QT})},x=()=>{s(null),h(!1),u(QT)},_=async()=>{try{const S=c?"/api/gauge-sites":`/api/gauge-sites/${o}`,M=await fetch(S,{method:c?"POST":"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(l)});if(!M.ok){const A=await M.json().catch(()=>({}));alert(`save failed: ${A.detail||M.statusText}`);return}x(),g()}catch(S){alert(String(S))}},w=async S=>{if(!confirm(`Delete ${S}?`))return;const C=await fetch(`/api/gauge-sites/${S}`,{method:"DELETE"});if(!C.ok){alert(`delete failed: ${C.status}`);return}g()};return r?f.jsxs("div",{className:"p-6 text-slate-400",children:[f.jsx(jd,{className:"w-5 h-5 animate-spin inline mr-2"}),"Loading…"]}):a?f.jsxs("div",{className:"p-6 text-red-400",children:["Load failed: ",a]}):f.jsxs("div",{className:"p-6 space-y-4",children:[f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx(f1,{className:"w-5 h-5 text-accent"}),f.jsx("h1",{className:"text-xl font-semibold text-slate-100",children:"Gauge Sites"}),f.jsxs("span",{className:"text-xs text-slate-500 ml-2",children:[e.length," sites"]}),f.jsxs("button",{onClick:y,className:"ml-auto flex items-center gap-1 px-3 py-1 bg-[#f59e0b] hover:bg-[#d97706] text-black font-sans font-medium text-sm",children:[f.jsx(Ti,{className:"w-4 h-4"})," Add site"]})]}),f.jsx("p",{className:"text-xs text-slate-400 max-w-3xl",children:"NWS-AHPS stream gauge thresholds for the USGS NWIS handler. Each row pairs a USGS site_id with a human gauge name, lat/lon, and four flood thresholds (Action / Minor / Moderate / Major, all in feet). Disabled rows still ingest into gauge_readings -- they don't broadcast. The USGS lookup button auto-populates name + coords + thresholds from USGS Site Service + NWS NWPS when this adapter is on native feed_source; Central-feed mode disables it (see Reference → OR-not-AND for why). Changes take effect on the next event."}),c&&f.jsx(WB,{draft:l,setDraft:u,onSave:_,onCancel:x,adding:!0,feedSource:d}),f.jsx("div",{className:"bg-bg-card border border-border overflow-x-auto",children:f.jsxs("table",{className:"w-full text-sm text-slate-200",children:[f.jsx("thead",{className:"bg-[#161616] border-b border-border",children:f.jsxs("tr",{children:[f.jsx("th",{className:"px-3 py-2 font-sans text-[9px] uppercase tracking-widest text-[#666] text-left",children:"Site ID"}),f.jsx("th",{className:"px-3 py-2 font-sans text-[9px] uppercase tracking-widest text-[#666] text-left",children:"Name"}),f.jsx("th",{className:"px-3 py-2 font-sans text-[9px] uppercase tracking-widest text-[#666] text-right",children:"Lat,Lon"}),f.jsx("th",{className:"px-3 py-2 font-sans text-[9px] uppercase tracking-widest text-[#666] text-right",children:"Action"}),f.jsx("th",{className:"px-3 py-2 font-sans text-[9px] uppercase tracking-widest text-[#666] text-right",children:"Minor"}),f.jsx("th",{className:"px-3 py-2 font-sans text-[9px] uppercase tracking-widest text-[#666] text-right",children:"Moderate"}),f.jsx("th",{className:"px-3 py-2 font-sans text-[9px] uppercase tracking-widest text-[#666] text-right",children:"Major"}),f.jsx("th",{className:"px-3 py-2 font-sans text-[9px] uppercase tracking-widest text-[#666] text-center",children:"On"}),f.jsx("th",{className:"px-3 py-2 font-sans text-[9px] uppercase tracking-widest text-[#666]"})]})}),f.jsx("tbody",{className:"divide-y divide-border",children:e.map(S=>o===S.site_id?f.jsx("tr",{className:"bg-bg-card border-b border-border hover:bg-bg-hover",children:f.jsx("td",{colSpan:9,className:"px-3 py-2",children:f.jsx(WB,{draft:l,setDraft:u,onSave:_,onCancel:x,feedSource:d})})},S.site_id):f.jsxs("tr",{className:"hover:bg-bg-hover",children:[f.jsx("td",{className:"px-3 py-2 font-mono text-xs",children:S.site_id}),f.jsx("td",{className:"px-3 py-2",children:S.gauge_name}),f.jsxs("td",{className:"px-3 py-2 text-right text-xs",children:[S.lat.toFixed(3),",",S.lon.toFixed(3)]}),f.jsx("td",{className:"px-3 py-2 text-right",children:S.action_ft??"-"}),f.jsx("td",{className:"px-3 py-2 text-right",children:S.flood_minor_ft??"-"}),f.jsx("td",{className:"px-3 py-2 text-right",children:S.flood_moderate_ft??"-"}),f.jsx("td",{className:"px-3 py-2 text-right",children:S.flood_major_ft??"-"}),f.jsx("td",{className:"px-3 py-2 text-center",children:S.enabled?f.jsx(Jr,{className:"w-4 h-4 text-emerald-400 inline"}):f.jsx(tu,{className:"w-4 h-4 text-slate-500 inline"})}),f.jsxs("td",{className:"px-3 py-2 text-right",children:[f.jsx("button",{onClick:()=>m(S),className:"text-accent hover:text-accent text-xs mr-3",children:"Edit"}),f.jsx("button",{onClick:()=>w(S.site_id),className:"text-red-400 hover:text-red-300",children:f.jsx(po,{className:"w-4 h-4 inline"})})]})]},S.site_id))})]})})]})}function WB({draft:e,setDraft:t,onSave:r,onCancel:n,adding:a,feedSource:i}){const o=(g,m)=>t({...e,[g]:m}),[s,l]=O.useState(!1),[u,c]=O.useState(null),h=i!=="native"||!e.site_id.trim(),d=i!=="native"?"USGS lookup not available in central-feed mode (would be AND-model anti-pattern). Enter values manually.":e.site_id.trim()?"Auto-populate from USGS / NWS NWPS":"Enter a site_id first",v=async()=>{if(!h){l(!0),c(null);try{const g=e.site_id.replace(/^USGS-/i,""),m=await fetch(`/api/env/usgs/lookup/${encodeURIComponent(g)}`);if(m.status===404){const _=await m.json().catch(()=>({}));c(_.detail||"Lookup unavailable -- enter values manually"),l(!1);return}if(!m.ok){c(`Lookup failed (${m.status})`),l(!1);return}const y=await m.json(),x={...e};y.name&&!x.gauge_name&&(x.gauge_name=y.name),typeof y.lat=="number"&&(x.lat=y.lat),typeof y.lon=="number"&&(x.lon=y.lon),typeof y.action_ft=="number"&&(x.action_ft=y.action_ft),typeof y.flood_minor_ft=="number"&&(x.flood_minor_ft=y.flood_minor_ft),typeof y.flood_moderate_ft=="number"&&(x.flood_moderate_ft=y.flood_moderate_ft),typeof y.flood_major_ft=="number"&&(x.flood_major_ft=y.flood_major_ft),t(x)}catch(g){c(String(g))}finally{l(!1)}}};return f.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-2 p-3 bg-[#1a1a1a]",children:[f.jsxs("label",{className:"text-xs text-slate-400 col-span-2",children:["Site ID",f.jsxs("div",{className:"flex items-center gap-1 mt-1",children:[f.jsx("input",{className:"flex-1 bg-bg border border-border px-2 py-1 text-slate-100 font-mono text-xs",value:e.site_id,onChange:g=>o("site_id",g.target.value),disabled:!a}),f.jsxs("button",{type:"button",onClick:v,disabled:h||s,title:d,className:"px-2 py-1 bg-bg-hover hover:bg-[#333] disabled:opacity-30 disabled:cursor-not-allowed text-xs text-slate-100 flex items-center gap-1",children:[s?f.jsx(jd,{className:"w-3 h-3 animate-spin"}):f.jsx(p1,{className:"w-3 h-3"}),"USGS lookup"]})]}),u&&f.jsx("span",{className:"text-amber-400 text-xs mt-1 block",children:u})]}),f.jsxs("label",{className:"text-xs text-slate-400 col-span-2",children:["Gauge name",f.jsx("input",{className:"block w-full mt-1 bg-bg border border-border px-2 py-1 text-slate-100",value:e.gauge_name,onChange:g=>o("gauge_name",g.target.value)})]}),f.jsxs("label",{className:"text-xs text-slate-400",children:["Lat",f.jsx("input",{type:"number",step:"any",className:"block w-full mt-1 bg-bg border border-border px-2 py-1 text-slate-100",value:e.lat,onChange:g=>o("lat",parseFloat(g.target.value))})]}),f.jsxs("label",{className:"text-xs text-slate-400",children:["Lon",f.jsx("input",{type:"number",step:"any",className:"block w-full mt-1 bg-bg border border-border px-2 py-1 text-slate-100",value:e.lon,onChange:g=>o("lon",parseFloat(g.target.value))})]}),f.jsxs("label",{className:"text-xs text-slate-400",children:["Action ft",f.jsx("input",{type:"number",step:"any",className:"block w-full mt-1 bg-bg border border-border px-2 py-1 text-slate-100",value:e.action_ft??"",onChange:g=>o("action_ft",g.target.value===""?null:parseFloat(g.target.value))})]}),f.jsxs("label",{className:"text-xs text-slate-400",children:["Minor flood ft",f.jsx("input",{type:"number",step:"any",className:"block w-full mt-1 bg-bg border border-border px-2 py-1 text-slate-100",value:e.flood_minor_ft??"",onChange:g=>o("flood_minor_ft",g.target.value===""?null:parseFloat(g.target.value))})]}),f.jsxs("label",{className:"text-xs text-slate-400",children:["Moderate flood ft",f.jsx("input",{type:"number",step:"any",className:"block w-full mt-1 bg-bg border border-border px-2 py-1 text-slate-100",value:e.flood_moderate_ft??"",onChange:g=>o("flood_moderate_ft",g.target.value===""?null:parseFloat(g.target.value))})]}),f.jsxs("label",{className:"text-xs text-slate-400",children:["Major flood ft",f.jsx("input",{type:"number",step:"any",className:"block w-full mt-1 bg-bg border border-border px-2 py-1 text-slate-100",value:e.flood_major_ft??"",onChange:g=>o("flood_major_ft",g.target.value===""?null:parseFloat(g.target.value))})]}),f.jsxs("label",{className:"text-xs text-slate-300 col-span-2 flex items-center gap-2 mt-2",children:[f.jsx("input",{type:"checkbox",checked:e.enabled,onChange:g=>o("enabled",g.target.checked),className:"accent-[#f59e0b]"}),"Enabled"]}),f.jsxs("div",{className:"col-span-2 flex items-center justify-end gap-2 mt-2",children:[f.jsx("button",{onClick:n,className:"px-3 py-1 text-slate-300 hover:bg-bg-hover text-sm",children:"Cancel"}),f.jsx("button",{onClick:r,className:"px-3 py-1 bg-[#f59e0b] hover:bg-[#d97706] text-black font-sans font-medium text-sm",children:"Save"})]})]})}const e2={anchor_id:0,name:"",lat:0,lon:0,state:"ID",enabled:!0,updated_at:0};function A$(){const[e,t]=O.useState([]),[r,n]=O.useState(!0),[a,i]=O.useState(null),[o,s]=O.useState(null),[l,u]=O.useState(!1),[c,h]=O.useState(e2),d=O.useCallback(async()=>{n(!0),i(null);try{const _=await fetch("/api/town-anchors");if(!_.ok)throw new Error(`GET: ${_.status}`);t(await _.json())}catch(_){i(String(_))}finally{n(!1)}},[]);O.useEffect(()=>{d()},[d]);const v=_=>{s(_.anchor_id),h({..._}),u(!1)},g=()=>{u(!0),s(null),h({...e2})},m=()=>{s(null),u(!1),h(e2)},y=async()=>{const _=l?"/api/town-anchors":`/api/town-anchors/${o}`,S=await fetch(_,{method:l?"POST":"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(c)});if(!S.ok){const C=await S.json().catch(()=>({}));alert(`save failed: ${C.detail||S.statusText}`);return}m(),d()},x=async _=>{if(!confirm(`Delete anchor ${_}?`))return;const w=await fetch(`/api/town-anchors/${_}`,{method:"DELETE"});if(!w.ok){alert(`delete failed: ${w.status}`);return}d()};return r?f.jsxs("div",{className:"p-6 text-slate-400",children:[f.jsx(jd,{className:"w-5 h-5 animate-spin inline mr-2"}),"Loading…"]}):a?f.jsxs("div",{className:"p-6 text-red-400",children:["Load failed: ",a]}):f.jsxs("div",{className:"p-6 space-y-4",children:[f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx(Rd,{className:"w-5 h-5 text-accent"}),f.jsx("h1",{className:"text-xl font-semibold text-slate-100",children:"Town Anchors"}),f.jsxs("span",{className:"text-xs text-slate-500 ml-2",children:[e.length," towns"]}),f.jsxs("button",{onClick:g,className:"ml-auto flex items-center gap-1 px-3 py-1 bg-[#f59e0b] hover:bg-[#d97706] text-black font-sans font-medium text-sm",children:[f.jsx(Ti,{className:"w-4 h-4"})," Add town"]})]}),f.jsx("p",{className:"text-xs text-slate-400 max-w-3xl",children:`Lookup table for the "X mi of " suffix in the bot's broadcast text. When a fire or NWS alert renders, the bot walks: Photon nearest-town → this table → landclass → county/state → bare coords. Disabled rows fall through to the next anchor in the chain; the broadcast still goes out, it just uses a different anchor. Example: "3 mi N of Almo". See Reference → Curation: Gauges & Towns for the full chain.`}),l&&f.jsx(ZB,{draft:c,setDraft:h,onSave:y,onCancel:m,adding:!0}),f.jsx("div",{className:"bg-bg-card border border-border overflow-x-auto",children:f.jsxs("table",{className:"w-full text-sm text-slate-200",children:[f.jsx("thead",{className:"bg-[#161616] border-b border-border",children:f.jsxs("tr",{children:[f.jsx("th",{className:"px-3 py-2 font-sans text-[9px] uppercase tracking-widest text-[#666] text-left",children:"Name"}),f.jsx("th",{className:"px-3 py-2 font-sans text-[9px] uppercase tracking-widest text-[#666] text-right",children:"Lat"}),f.jsx("th",{className:"px-3 py-2 font-sans text-[9px] uppercase tracking-widest text-[#666] text-right",children:"Lon"}),f.jsx("th",{className:"px-3 py-2 font-sans text-[9px] uppercase tracking-widest text-[#666] text-center",children:"State"}),f.jsx("th",{className:"px-3 py-2 font-sans text-[9px] uppercase tracking-widest text-[#666] text-center",children:"On"}),f.jsx("th",{className:"px-3 py-2 font-sans text-[9px] uppercase tracking-widest text-[#666]"})]})}),f.jsx("tbody",{className:"divide-y divide-border",children:e.map(_=>o===_.anchor_id?f.jsx("tr",{className:"bg-bg-card border-b border-border hover:bg-bg-hover",children:f.jsx("td",{colSpan:6,className:"px-3 py-2",children:f.jsx(ZB,{draft:c,setDraft:h,onSave:y,onCancel:m})})},_.anchor_id):f.jsxs("tr",{className:"hover:bg-bg-hover",children:[f.jsx("td",{className:"px-3 py-2 capitalize",children:_.name}),f.jsx("td",{className:"px-3 py-2 text-right text-xs",children:_.lat.toFixed(4)}),f.jsx("td",{className:"px-3 py-2 text-right text-xs",children:_.lon.toFixed(4)}),f.jsx("td",{className:"px-3 py-2 text-center text-xs",children:_.state||"-"}),f.jsx("td",{className:"px-3 py-2 text-center",children:_.enabled?f.jsx(Jr,{className:"w-4 h-4 text-emerald-400 inline"}):f.jsx(tu,{className:"w-4 h-4 text-slate-500 inline"})}),f.jsxs("td",{className:"px-3 py-2 text-right",children:[f.jsx("button",{onClick:()=>v(_),className:"text-accent hover:text-accent text-xs mr-3",children:"Edit"}),f.jsx("button",{onClick:()=>x(_.anchor_id),className:"text-red-400 hover:text-red-300",children:f.jsx(po,{className:"w-4 h-4 inline"})})]})]},_.anchor_id))})]})})]})}function ZB({draft:e,setDraft:t,onSave:r,onCancel:n,adding:a}){const i=(o,s)=>t({...e,[o]:s});return f.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-2 p-3 bg-[#1a1a1a]",children:[f.jsxs("label",{className:"text-xs text-slate-400 col-span-2",children:["Name (lowercased on save)",f.jsx("input",{className:"block w-full mt-1 bg-bg border border-border px-2 py-1 text-slate-100",value:e.name,onChange:o=>i("name",o.target.value),disabled:!a})]}),f.jsxs("label",{className:"text-xs text-slate-400",children:["State",f.jsx("input",{className:"block w-full mt-1 bg-bg border border-border px-2 py-1 text-slate-100",value:e.state??"",onChange:o=>i("state",o.target.value)})]}),f.jsxs("label",{className:"text-xs text-slate-400 flex items-center gap-2",children:[f.jsx("input",{type:"checkbox",checked:e.enabled,onChange:o=>i("enabled",o.target.checked),className:"accent-[#f59e0b] mt-4"}),"Enabled"]}),f.jsxs("label",{className:"text-xs text-slate-400",children:["Lat",f.jsx("input",{type:"number",step:"any",className:"block w-full mt-1 bg-bg border border-border px-2 py-1 text-slate-100",value:e.lat,onChange:o=>i("lat",parseFloat(o.target.value))})]}),f.jsxs("label",{className:"text-xs text-slate-400",children:["Lon",f.jsx("input",{type:"number",step:"any",className:"block w-full mt-1 bg-bg border border-border px-2 py-1 text-slate-100",value:e.lon,onChange:o=>i("lon",parseFloat(o.target.value))})]}),f.jsxs("div",{className:"col-span-2 flex items-center justify-end gap-2 mt-2",children:[f.jsx("button",{onClick:n,className:"px-3 py-1 text-slate-300 hover:bg-bg-hover text-sm",children:"Cancel"}),f.jsx("button",{onClick:r,className:"px-3 py-1 bg-[#f59e0b] hover:bg-[#d97706] text-black font-sans font-medium text-sm",children:"Save"})]})]})}function RCe(e,t,r){const n=e?{...e}:{...t,name:r};n.name=n.name||r;const a=(e==null?void 0:e.severity_channels)||{},i=t.severity_channels||{},o=new Set([...Object.keys(a),...Object.keys(i)]),s={};return o.forEach(l=>{const u=(a[l]||[]).filter(h=>!h.startsWith("meshcore_")),c=(i[l]||[]).filter(h=>h.startsWith("meshcore_"));s[l]=[...u,...c]}),n.severity_channels=s,n.meshcore_channel=t.meshcore_channel??null,n.meshcore_dm_contacts=t.meshcore_dm_contacts||[],n}function OCe(e,t){const r=(t==null?void 0:t.enabled)??(e==null?void 0:e.enabled)??!1,n=(e==null?void 0:e.cells)||{},a=(t==null?void 0:t.cells)||{},i=new Set([...Object.keys(n),...Object.keys(a)]),o={};for(const s of i){const l=n[s]||{},u=a[s]||{},c=new Set([...Object.keys(l),...Object.keys(u)]),h={};for(const d of c){const v=l[d],g=u[d],m=g!==void 0?g.mc||null:(v==null?void 0:v.mc)??null,y={mt:(v==null?void 0:v.mt)??null,mc:m,min_severity:(g==null?void 0:g.min_severity)??(v==null?void 0:v.min_severity)??"routine",enabled:(g==null?void 0:g.enabled)??(v==null?void 0:v.enabled)??!0},x=y.mc;(y.mt!==null||x!==null&&x.trim()!=="")&&(h[d]=y)}Object.keys(h).length>0&&(o[s]=h)}return{enabled:r,cells:o}}function zCe(){const{setDirty:e}=Ri(),[t,r]=O.useState(null),[n,a]=O.useState(null),[i,o]=O.useState([]),[s,l]=O.useState(!0),[u,c]=O.useState(!1),[h,d]=O.useState(null),[v,g]=O.useState(null),[m,y]=O.useState(!1),[x,_]=O.useState({}),w=O.useCallback(async()=>{try{const[P,D]=await Promise.all([fetch("/api/config/notifications"),fetch("/api/notifications/regions")]);if(!P.ok)throw new Error("Failed to fetch notifications config");const z=await P.json(),E=D.ok?await D.json():[];r(z),a(JSON.parse(JSON.stringify(z))),o(Array.isArray(E)?E:[]),y(!1),d(null)}catch(P){d(P instanceof Error?P.message:"Unknown error")}finally{l(!1)}},[]);O.useEffect(()=>{document.title="MeshCore Routing - MeshAI",w()},[w]),O.useEffect(()=>{t&&n&&y(JSON.stringify(t)!==JSON.stringify(n))},[t,n]),O.useEffect(()=>(e(m),()=>e(!1)),[m,e]);const S=(P,D)=>{if(!t)return;const z=t.toggles||{};r({...t,toggles:{...z,[P]:{...z[P]||{},name:P,...D}}})},C=(P,D,z)=>{var H,V,U,F,Z,$,W;if(!t)return;const E=((U=(V=(H=t.region_routes)==null?void 0:H.cells)==null?void 0:V[P])==null?void 0:U[D])??{mt:null,mc:null,min_severity:"routine",enabled:!0},B={...((F=t.region_routes)==null?void 0:F.cells)||{},[P]:{...(($=(Z=t.region_routes)==null?void 0:Z.cells)==null?void 0:$[P])||{},[D]:{...E,mc:z}}};r({...t,region_routes:{enabled:((W=t.region_routes)==null?void 0:W.enabled)??!1,cells:B}})},M=P=>{var B,H,V,U;if(!t)return;const D=((H=(B=t.region_routes)==null?void 0:B.cells)==null?void 0:H[P])||{},z={};for(const[F,Z]of Object.entries(D))z[F]={...Z,mc:null};const E={...((V=t.region_routes)==null?void 0:V.cells)||{},[P]:z};r({...t,region_routes:{enabled:((U=t.region_routes)==null?void 0:U.enabled)??!1,cells:E}})},A=async()=>{if(t){c(!0),d(null),g(null);try{const P=await fetch("/api/config/notifications");if(!P.ok)throw new Error("Failed to re-fetch notifications config");const D=await P.json(),z={...D,toggles:{...D.toggles||{}},region_routes:OCe(D.region_routes,t.region_routes)},E=t.toggles||{};for(const{key:V}of Yl){const U=E[V];U&&(z.toggles[V]=RCe((D.toggles||{})[V],U,V))}const B=await fetch("/api/config/notifications",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(z)}),H=await B.json();if(!B.ok)throw new Error(H.detail||"Save failed");r(z),a(JSON.parse(JSON.stringify(z))),y(!1),e(!1),g("MeshCore routing saved successfully"),setTimeout(()=>g(null),3e3)}catch(P){d(P instanceof Error?P.message:"Save failed")}finally{c(!1)}}},I=()=>{n&&(r(JSON.parse(JSON.stringify(n))),y(!1))};if(s)return f.jsx("div",{className:"flex items-center justify-center h-64",children:f.jsx("div",{className:"text-slate-400",children:"Loading MeshCore routing..."})});if(!t)return f.jsx("div",{className:"flex items-center justify-center h-64",children:f.jsx("div",{className:"text-red-400",children:"Failed to load notifications config"})});const k=t.toggles||{};return f.jsxs("div",{className:"max-w-4xl mx-auto space-y-6",children:[f.jsxs("div",{className:"flex items-center justify-between",children:[f.jsx("div",{children:f.jsx("p",{className:"text-sm text-slate-500",children:"Per-family MeshCore delivery. Choose which channels fire at each severity, the MeshCore channel name, and DM contacts."})}),f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx("button",{onClick:w,className:"p-2 text-slate-400 hover:text-slate-200 hover:bg-bg-hover rounded transition-colors",title:"Refresh",children:f.jsx(zo,{size:18})}),f.jsxs("button",{onClick:I,disabled:!m,className:"flex items-center gap-2 px-3 py-2 text-slate-400 hover:text-slate-200 disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:[f.jsx(oa,{size:16}),"Discard"]}),f.jsxs("button",{onClick:A,disabled:u||!m,className:"flex items-center gap-2 px-4 py-2 bg-accent hover:bg-accent/80 disabled:bg-slate-700 disabled:cursor-not-allowed rounded text-white transition-colors",children:[f.jsx(sa,{size:16}),u?"Saving...":"Save"]})]})]}),f.jsxs("div",{className:"flex items-start gap-2 p-3 bg-[#0a0e17] border border-[#1e2a3a] rounded text-sm text-slate-400",children:[f.jsx(kc,{size:16,className:"text-accent mt-0.5 flex-shrink-0"}),f.jsxs("div",{children:["Family gating (enable, severity threshold, freshness/cooldown) is on"," ",f.jsx(Vf,{to:"/environment",className:"text-accent hover:underline",children:"Data Feeds"}),". Meshtastic delivery is on"," ",f.jsx(Vf,{to:"/notifications",className:"text-accent hover:underline",children:"Meshtastic Routing"}),". This page edits only the MeshCore delivery for each family."]})]}),h&&f.jsx("div",{className:"p-3 text-sm bg-red-500/10 text-red-400 border border-red-500/20",children:h}),v&&f.jsxs("div",{className:"p-3 text-sm bg-green-500/10 text-green-400 border border-green-500/20",children:[f.jsx(Jr,{size:14,className:"inline mr-2"}),v]}),f.jsxs("div",{className:"bg-bg-card border border-border p-6 space-y-4",children:[f.jsxs("div",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:["MeshCore Delivery",f.jsx(ji,{info:"For each notification family, choose which MeshCore channels fire at each severity, the MeshCore channel name to broadcast on, and the DM contacts to unicast to. Enabling a family and its severity threshold are configured on the Data Feeds page."})]}),f.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:Yl.map(({key:P,label:D,Icon:z})=>{var F,Z;const E=k[P]||{},B=((Z=(F=t.region_routes)==null?void 0:F.cells)==null?void 0:Z[P])||{},H=i.some($=>{var q;const W=(q=B[$])==null?void 0:q.mc;return W!=null&&W.trim()!==""}),V=x[P],U=V!==void 0?V:H;return f.jsxs("div",{className:"border border-[#1e2a3a] p-3 space-y-3",children:[f.jsxs("div",{className:"flex items-center gap-2 text-sm text-slate-200",children:[f.jsx(z,{size:15})," ",D]}),f.jsxs("div",{className:"space-y-3 p-3 bg-[#0a0e17] border border-[#1e2a3a]",children:[f.jsxs("div",{className:"flex items-center gap-2 text-xs font-medium text-slate-300",children:[f.jsx(xk,{size:13}),"MeshCore"]}),f.jsx(b$,{channels:uCe,severityChannels:E.severity_channels||{},onChange:$=>S(P,{severity_channels:$})}),f.jsxs("div",{className:"space-y-1",children:[f.jsx("label",{className:"text-xs text-slate-500 uppercase tracking-wide",children:"MeshCore channel name"}),f.jsx("input",{type:"text",value:E.meshcore_channel!=null?E.meshcore_channel:"",onChange:$=>S(P,{meshcore_channel:$.target.value===""?null:$.target.value}),placeholder:"AIDA",className:"w-full px-3 py-2 bg-[#0a0e17] border border-[#1e2a3a] rounded text-sm text-slate-200 font-mono focus:outline-none focus:border-accent"}),f.jsx("p",{className:"text-xs text-slate-600",children:"Channel name on your MeshCore companion (e.g. AIDA). Blank = not broadcast on MeshCore."})]}),f.jsx(_$,{label:"MeshCore DM contacts",value:E.meshcore_dm_contacts||[],onChange:$=>S(P,{meshcore_dm_contacts:$}),placeholder:"contact name or pubkey",helper:"MeshCore DM recipients (names or pubkeys)",info:"Contact names or pubkeys on the MeshCore companion. Used when meshcore_dm is enabled for a severity."})]}),f.jsxs("div",{className:"border border-[#1e2a3a] p-3 space-y-2",children:[f.jsx(kd,{label:"Region-based routing",checked:U,onChange:$=>{_(W=>({...W,[P]:$})),$||M(P)},helper:"Route this family to different MC channels per region"}),U&&(i.length===0?f.jsxs("p",{className:"text-xs text-slate-500 italic",children:["No regions yet — add them on the"," ",f.jsx(Vf,{to:"/coverage",className:"text-accent hover:underline",children:"Coverage"})," page."]}):f.jsx("div",{className:"space-y-1.5 pt-1",children:i.map($=>{const W=B[$]??{mc:null};return f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx("span",{className:"text-xs text-slate-400 flex-1 min-w-0 truncate",children:$}),f.jsx("input",{type:"text",value:W.mc??"",onChange:q=>{const re=q.target.value;C(P,$,re===""?null:re)},placeholder:"channel",className:"w-28 px-2 py-1 bg-[#0a0e17] border border-[#1e2a3a] rounded text-xs text-slate-200 font-mono focus:outline-none focus:border-accent"})]},$)})}))]})]},P)})})]})]})}function BCe(){const{setDirty:e}=Ri(),[t,r]=O.useState(null),[n,a]=O.useState(null),[i,o]=O.useState(null),[s,l]=O.useState(null),[u,c]=O.useState(!0),[h,d]=O.useState(!1),[v,g]=O.useState(null),[m,y]=O.useState(null),[x,_]=O.useState(!1),[w,S]=O.useState(!1),[C,M]=O.useState([]),[A,I]=O.useState(""),[k,P]=O.useState(""),[D,z]=O.useState(!1),[E,B]=O.useState(null),H=O.useCallback(async()=>{c(!0);try{const[W,q]=await Promise.all([go("connection"),go("meshcore_context")]);r(W),a(JSON.parse(JSON.stringify(W))),o(q),l(JSON.parse(JSON.stringify(q))),_(!1),g(null)}catch(W){g(W instanceof Error?W.message:"Unknown error")}finally{c(!1)}},[]);O.useEffect(()=>{document.title="MeshCore Connection - MeshAI",H()},[H]),O.useEffect(()=>{zV().then(W=>{S(W.active),M(W.channels),W.channels.length>0&&I(W.channels[0])}).catch(()=>{S(!1)})},[]);const V=async()=>{z(!0),B(null);try{const W=await BV({transport:"meshcore",channel:A,text:k.trim()||void 0});B(W)}catch(W){B({sent:!1,detail:W instanceof Error?W.message:"Send failed"})}finally{z(!1)}};O.useEffect(()=>{if(t&&n&&i&&s){const W=JSON.stringify(t)!==JSON.stringify(n)||JSON.stringify(i)!==JSON.stringify(s);_(W)}},[t,n,i,s]),O.useEffect(()=>(e(x),()=>e(!1)),[x,e]);const U=W=>r(q=>q&&{...q,...W}),F=async()=>{if(!(!t||!i)){d(!0),g(null),y(null);try{const W=await Promise.all([Mi("connection",t),Mi("meshcore_context",i)]);a(JSON.parse(JSON.stringify(t))),l(JSON.parse(JSON.stringify(i))),_(!1),e(!1),y("MeshCore connection saved successfully"),W.some(q=>q.restart_required)&&ru([]),setTimeout(()=>y(null),3e3)}catch(W){g(W instanceof Error?W.message:"Save failed")}finally{d(!1)}}},Z=()=>{n&&r(JSON.parse(JSON.stringify(n))),s&&o(JSON.parse(JSON.stringify(s))),_(!1)},$=W=>{o(q=>{if(!q)return q;const re=q.observe_channels??[],Q=re.includes(W)?re.filter(se=>se!==W):[...re,W];return{...q,observe_channels:Q}})};return u?f.jsx("div",{className:"flex items-center justify-center h-64",children:f.jsx("div",{className:"text-slate-400",children:"Loading MeshCore connection..."})}):t?f.jsxs("div",{className:"max-w-2xl mx-auto space-y-6",children:[f.jsxs("div",{className:"flex items-center justify-between",children:[f.jsx("div",{children:f.jsx("p",{className:"text-sm text-slate-500",children:"MeshCore node connection."})}),f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx("button",{onClick:H,className:"p-2 text-slate-400 hover:text-slate-200 hover:bg-bg-hover rounded transition-colors",title:"Refresh",children:f.jsx(zo,{size:18})}),f.jsxs("button",{onClick:Z,disabled:!x,className:"flex items-center gap-2 px-3 py-2 text-slate-400 hover:text-slate-200 disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:[f.jsx(oa,{size:16}),"Discard"]}),f.jsxs("button",{onClick:F,disabled:h||!x,className:"flex items-center gap-2 px-4 py-2 bg-accent hover:bg-accent/80 disabled:bg-slate-700 disabled:cursor-not-allowed rounded text-white transition-colors",children:[f.jsx(sa,{size:16}),h?"Saving...":"Save"]})]})]}),v&&f.jsx("div",{className:"p-3 text-sm bg-red-500/10 text-red-400 border border-red-500/20",children:v}),m&&f.jsxs("div",{className:"p-3 text-sm bg-green-500/10 text-green-400 border border-green-500/20",children:[f.jsx(Jr,{size:14,className:"inline mr-2"}),m]}),f.jsxs("div",{className:"bg-bg-card border border-border p-6 space-y-4",children:[f.jsx("div",{className:"text-xs text-slate-500 uppercase tracking-wide",children:"MeshCore Connection"}),f.jsx("p",{className:"text-xs text-slate-500",children:"Choose how MeshAI reaches your MeshCore node. TCP talks to a companion frame server; Serial connects to a USB-attached node; BLE pairs over Bluetooth. Meshtastic is always active."}),f.jsx(on,{label:"Connection Type",value:t.meshcore_conn_type??"tcp",onChange:W=>U({meshcore_conn_type:W}),options:[{value:"tcp",label:"TCP (companion)"},{value:"serial",label:"Serial (USB)"},{value:"ble",label:"BLE"}],helper:"TCP for a companion frame server, Serial for a USB node, BLE for Bluetooth"}),(t.meshcore_conn_type??"tcp")==="tcp"&&f.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[f.jsx(it,{label:"MeshCore Host",value:t.meshcore_host??"",onChange:W=>U({meshcore_host:W}),placeholder:"192.168.1.100",helper:"IP or hostname of the companion frame server",info:"The MeshCore companion (frame server) host. Active when non-empty in TCP mode."}),f.jsx(Se,{label:"MeshCore Port",value:t.meshcore_port??5525,onChange:W=>U({meshcore_port:W}),min:1,max:65535,helper:"MeshCore TCP port (default 5525)"})]}),(t.meshcore_conn_type??"tcp")==="serial"&&f.jsxs(f.Fragment,{children:[f.jsx(y$,{label:"MeshCore Serial Port",value:t.meshcore_serial_port??"",onChange:W=>U({meshcore_serial_port:W}),helper:"USB-attached MeshCore node — Detect fills a stable by-id path"}),f.jsx(Se,{label:"Baud Rate",value:t.meshcore_baud??115200,onChange:W=>U({meshcore_baud:W}),min:1200,helper:"Serial baud rate (default 115200)"})]}),(t.meshcore_conn_type??"tcp")==="ble"&&f.jsx(it,{label:"BLE Address",value:t.meshcore_ble_address??"",onChange:W=>U({meshcore_ble_address:W}),placeholder:"AA:BB:CC:DD:EE:FF",helper:"Leave blank to scan/pair the first available device"}),f.jsx("div",{className:"pt-2",children:f.jsx(Vf,{to:"/meshtastic/connection",className:"inline-flex items-center gap-1 text-xs text-slate-500 hover:text-accent transition-colors",children:"→ Meshtastic connection"})}),f.jsx(Bt,{label:"Auto-add contacts (AIDA adds any node it hears — required to DM anyone)",checked:t.meshcore_auto_add_contacts??!0,onChange:W=>U({meshcore_auto_add_contacts:W}),helper:"Enables firmware CMD 58 (set_autoadd_config) at connect so AIDA automatically adds every node it hears an advert from as a contact, enabling DM send/decrypt without manual contact exchange"}),f.jsxs("details",{className:"group",children:[f.jsxs("summary",{className:"flex items-center gap-2 cursor-pointer text-sm text-slate-400 hover:text-slate-200",children:[f.jsx(nh,{size:14,className:"group-open:rotate-90 transition-transform"}),"Advanced — MeshCore Reconnect"]}),f.jsxs("div",{className:"mt-4 space-y-4 pl-6 border-l border-[#1e2a3a]",children:[f.jsx(Bt,{label:"Auto-reconnect (MeshCore)",checked:t.meshcore_auto_reconnect??!0,onChange:W=>U({meshcore_auto_reconnect:W}),helper:"Automatically reconnect to the MeshCore companion if the link drops"}),f.jsx(Se,{label:"Max Reconnect Attempts",value:t.meshcore_max_reconnect_attempts??5,onChange:W=>U({meshcore_max_reconnect_attempts:W}),min:0,helper:"Maximum reconnect attempts before giving up (0 = unlimited)"})]})]})]}),i&&f.jsxs("div",{className:"bg-bg-card border border-border p-6 space-y-4",children:[f.jsx("div",{className:"text-xs text-slate-500 uppercase tracking-wide",children:"Bot behavior"}),f.jsx(Bt,{label:"Enable Passive Context",checked:!!i.enable_passive_context,onChange:W=>o({...i,enable_passive_context:W}),helper:"Listen to MeshCore channel traffic for context",info:"When enabled, the bot monitors MeshCore channels and includes recent messages in its context so it can reference what others said."}),f.jsxs("div",{className:"space-y-1",children:[f.jsx("label",{className:"block text-xs text-slate-500 uppercase tracking-wide",children:"Observe MeshCore Channels"}),f.jsxs("div",{className:"border border-[#1e2a3a] p-2 space-y-1",children:[C.map(W=>{const q=(i.observe_channels??[]).includes(W);return f.jsxs("label",{onClick:()=>$(W),className:"flex items-center gap-2 p-2 rounded hover:bg-[#0a0e17] cursor-pointer",children:[f.jsx("div",{className:`w-4 h-4 rounded border flex items-center justify-center ${q?"bg-accent border-accent":"border-slate-600"}`,children:q&&f.jsx(Jr,{size:12,className:"text-white"})}),f.jsx("span",{className:"text-sm text-slate-200",children:W})]},W)}),C.length===0&&f.jsxs("div",{className:"text-sm text-slate-500 p-2",children:["No channels available",w?"":" (MeshCore not connected)"]})]}),f.jsx("p",{className:"text-xs text-slate-600",children:"Choose which MeshCore channels feed MeshAI's context. Empty = none are watched — pick channels to include their chatter in what the bot knows about the mesh. Leave busy/public channels out to keep them out of context."})]}),f.jsx(En,{label:"Ignore MeshCore Contacts",value:i.ignore_contacts??[],onChange:W=>o({...i,ignore_contacts:W}),helper:"Contact names or pubkey prefixes to exclude from context (comma-separated)",info:"Messages from these MeshCore contacts won't be included in passive context. Enter contact names or public-key prefixes."}),f.jsx(Bt,{label:"Answer direct messages",checked:!!i.respond_to_dms,onChange:W=>o({...i,respond_to_dms:W}),helper:"When on, MeshAI replies to MeshCore direct messages using the LLM. Applies to MeshCore only."})]}),f.jsxs("div",{className:`bg-bg-card border border-border p-6 space-y-4${w?"":" opacity-60"}`,children:[f.jsx("div",{className:"text-xs text-slate-500 uppercase tracking-wide",children:"Send Test Message"}),w?f.jsxs(f.Fragment,{children:[f.jsxs("div",{className:"space-y-1",children:[f.jsx("label",{className:"text-xs text-slate-500 uppercase tracking-wide",children:"Channel"}),f.jsx("select",{value:A,onChange:W=>I(W.target.value),className:"w-full px-3 py-2 bg-[#0a0e17] border border-[#1e2a3a] rounded text-sm text-slate-200 focus:outline-none focus:border-accent",children:C.map(W=>f.jsx("option",{value:W,children:W},W))})]}),f.jsx(it,{label:"Message (optional)",value:k,onChange:P,placeholder:`🧪 MeshAI test — ${new Date().toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!1})}`}),f.jsx("button",{onClick:V,disabled:D,className:"flex items-center gap-2 px-4 py-2 bg-accent hover:bg-accent/80 disabled:bg-slate-700 disabled:cursor-not-allowed rounded text-white text-sm transition-colors",children:D?"Sending...":"Send test"}),E&&(E.sent?f.jsxs("div",{className:"p-3 text-sm bg-green-500/10 text-green-400 border border-green-500/20",children:[f.jsx(Jr,{size:14,className:"inline mr-2"}),E.detail]}):f.jsx("div",{className:"p-3 text-sm bg-red-500/10 text-red-400 border border-red-500/20",children:E.detail}))]}):f.jsx("p",{className:"text-sm text-slate-500",children:"MeshCore not connected"})]})]}):f.jsx("div",{className:"flex items-center justify-center h-64",children:f.jsx("div",{className:"text-red-400",children:"Failed to load connection config"})})}function FCe(e){const t=Math.floor(Date.now()/1e3-e);if(t<5)return"just now";if(t<60)return`${t}s ago`;const r=Math.floor(t/60);if(r<60)return`${r}m ago`;const n=Math.floor(r/60);return n<24?`${n}h ago`:`${Math.floor(n/24)}d ago`}function N$(){const[e,t]=O.useState(null),[r,n]=O.useState(null),[a,i]=O.useState(!0),[o,s]=O.useState(null),[l,u]=O.useState(!1),[c,h]=O.useState(null),[d,v]=O.useState(3),[g,m]=O.useState(!1),[y,x]=O.useState(!1);O.useEffect(()=>{document.title="Companion & Channels - MeshAI"},[]),O.useEffect(()=>{let M=!1;return(async()=>{i(!0),s(null);try{const[A,I]=await Promise.all([OE(),zV()]);if(M)return;t(A),n(I)}catch(A){if(M)return;s(A instanceof Error?A.message:"Failed to load companion status")}finally{M||i(!1)}})(),()=>{M=!0}},[]),O.useEffect(()=>{(async()=>{try{const M=await fetch("/api/config/connection");if(M.ok){const I=(await M.json()).meshcore_advert_interval_seconds;typeof I=="number"&&v(I>0?I/3600:0)}}catch{}})()},[]);const _=O.useCallback(async()=>{u(!0),h(null);try{const M=await kJ();if(h(M),M.sent)try{const A=await OE();t(A)}catch{}}catch(M){h({sent:!1,detail:M instanceof Error?M.message:"Request failed"})}finally{u(!1)}},[]),w=O.useCallback(async()=>{m(!0),x(!1);try{const M=Math.round(d*3600);await Mi("connection",{meshcore_advert_interval_seconds:M}),x(!0),setTimeout(()=>x(!1),2e3)}catch{}finally{m(!1)}},[d]),S=(e==null?void 0:e.connected)===!0,C=r!=null&&r.active?r.channels:[];return f.jsxs("div",{className:"max-w-3xl mx-auto space-y-4",children:[f.jsxs("div",{className:"flex items-center gap-4",children:[f.jsx("div",{className:"flex-shrink-0 w-12 h-12 rounded-lg bg-[#0a0e17] border border-[#1e2a3a] flex items-center justify-center",children:f.jsx(gk,{size:24,className:"text-accent"})}),f.jsxs("div",{children:[f.jsx("h2",{className:"text-xl font-semibold text-slate-100",children:"Companion & Channels"}),f.jsx("p",{className:"text-sm text-[#777]",children:"Live status for the AIDA MeshCore companion and its joined channels."})]})]}),a?f.jsx("div",{className:"flex items-center justify-center h-32",children:f.jsx("div",{className:"text-slate-400",children:"Loading..."})}):o?f.jsx("div",{className:"p-3 text-sm bg-red-500/10 text-red-400 border border-red-500/20",children:o}):f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"bg-bg-card border border-border p-6",children:S?f.jsxs("div",{className:"space-y-4",children:[f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx("span",{className:"w-2.5 h-2.5 rounded-full bg-green-500"}),f.jsx("span",{className:"text-sm font-medium text-green-400",children:"Connected"})]}),f.jsxs("dl",{className:"grid grid-cols-1 sm:grid-cols-2 gap-x-8 gap-y-4 text-sm",children:[f.jsxs("div",{children:[f.jsx("dt",{className:"text-[#777] mb-1",children:"Node name"}),f.jsx("dd",{className:"text-slate-100",children:(e==null?void 0:e.name)??"unnamed"})]}),f.jsxs("div",{children:[f.jsx("dt",{className:"text-[#777] mb-1",children:"Host"}),f.jsxs("dd",{className:"text-slate-100 font-mono",children:[(e==null?void 0:e.host)??"—",(e==null?void 0:e.port)!=null?`:${e.port}`:""]})]}),f.jsxs("div",{className:"sm:col-span-2",children:[f.jsx("dt",{className:"text-[#777] mb-1",children:"Public key"}),f.jsx("dd",{className:"text-slate-100 font-mono text-xs break-all",children:(e==null?void 0:e.pubkey)??"—"})]}),f.jsxs("div",{children:[f.jsx("dt",{className:"text-[#777] mb-1",children:"Channels joined"}),f.jsx("dd",{className:"text-slate-100",children:(e==null?void 0:e.channel_count)??0})]}),(e==null?void 0:e.last_advert_sent)!=null&&f.jsxs("div",{children:[f.jsx("dt",{className:"text-[#777] mb-1",children:"Last advertised"}),f.jsx("dd",{className:"text-slate-100",children:FCe(e.last_advert_sent)})]})]}),f.jsxs("div",{className:"pt-2 border-t border-border space-y-2",children:[f.jsxs("div",{className:"flex items-center gap-3",children:[f.jsxs("button",{onClick:_,disabled:l,className:"flex items-center gap-2 px-3 py-1.5 text-sm bg-accent/10 hover:bg-accent/20 text-accent border border-accent/30 rounded disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:[f.jsx(oi,{size:14}),l?"Sending…":"Send Advert"]}),c!=null&&f.jsx("span",{className:`text-sm ${c.sent?"text-green-400":"text-red-400"}`,children:c.sent?"Advert sent":c.detail})]}),f.jsx("p",{className:"text-xs text-[#555]",children:"Announce this node to the mesh so others can discover and DM it."})]})]}):f.jsxs("div",{className:"space-y-2",children:[f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx("span",{className:"w-2.5 h-2.5 rounded-full bg-slate-600"}),f.jsx("span",{className:"text-sm font-medium text-slate-400",children:"Not connected"})]}),f.jsx("p",{className:"text-sm text-[#777] leading-relaxed max-w-prose",children:"The MeshCore companion is offline or inactive. No node identity or channel membership is available while the companion is disconnected."})]})}),f.jsxs("div",{className:"bg-bg-card border border-border",children:[f.jsx("div",{className:"px-4 py-3 border-b border-border",children:f.jsx("h3",{className:"text-sm font-medium text-slate-200",children:"Advertising"})}),f.jsx("div",{className:"px-4 py-4 space-y-4",children:f.jsxs("div",{className:"space-y-1",children:[f.jsx("label",{className:"text-xs font-medium text-[#777] uppercase tracking-wide",children:"Auto-advert interval"}),f.jsxs("div",{className:"flex items-center gap-3",children:[f.jsxs("select",{value:d,onChange:M=>v(Number(M.target.value)),className:"bg-[#0a0e17] border border-[#1e2a3a] text-slate-200 text-sm rounded px-2 py-1.5 focus:outline-none focus:border-accent",children:[f.jsx("option",{value:0,children:"Disabled"}),f.jsx("option",{value:1,children:"Every 1 hour"}),f.jsx("option",{value:3,children:"Every 3 hours (default)"}),f.jsx("option",{value:6,children:"Every 6 hours"}),f.jsx("option",{value:12,children:"Every 12 hours"}),f.jsx("option",{value:24,children:"Every 24 hours"})]}),f.jsx("button",{onClick:w,disabled:g,className:"px-3 py-1.5 text-sm bg-accent/10 hover:bg-accent/20 text-accent border border-accent/30 rounded disabled:opacity-50 transition-colors",children:g?"Saving…":y?"Saved":"Save"})]}),f.jsxs("p",{className:"text-xs text-[#555]",children:["AIDA sends a flood advertisement at this interval so it stays discoverable. Stored in ",f.jsx("code",{className:"text-accent/80",children:"connection.meshcore_advert_interval_seconds"}),"."]})]})})]}),f.jsxs("div",{className:"bg-bg-card border border-border",children:[f.jsx("div",{className:"px-4 py-3 border-b border-border",children:f.jsx("h3",{className:"text-sm font-medium text-slate-200",children:"Channels"})}),C.length>0?f.jsx("ul",{className:"divide-y divide-border",children:C.map(M=>f.jsx("li",{className:"px-4 py-2.5 text-sm text-slate-200 font-mono",children:M},M))}):f.jsx("div",{className:"px-4 py-3 text-sm text-[#777]",children:"No channels"})]})]})]})}function VCe(){const{setDirty:e}=Ri(),[t,r]=O.useState(null),[n,a]=O.useState(null),[i,o]=O.useState(null),[s,l]=O.useState(null),[u,c]=O.useState(null),[h,d]=O.useState(null),[v,g]=O.useState(!0),[m,y]=O.useState(!1),[x,_]=O.useState(null),[w,S]=O.useState(null),[C,M]=O.useState(!1),[A,I]=O.useState(0),[k,P]=O.useState(""),[D,z]=O.useState(!1),[E,B]=O.useState(null),H=async()=>{z(!0),B(null);try{const Z=await BV({transport:"meshtastic",channel:A,text:k.trim()||void 0});B(Z)}catch(Z){B({sent:!1,detail:Z instanceof Error?Z.message:"Send failed"})}finally{z(!1)}},V=O.useCallback(async()=>{g(!0);try{const[Z,$,W]=await Promise.all([go("connection"),go("context"),go("bot")]);r(Z),a(JSON.parse(JSON.stringify(Z))),o($),l(JSON.parse(JSON.stringify($))),c(W),d(JSON.parse(JSON.stringify(W))),M(!1),_(null)}catch(Z){_(Z instanceof Error?Z.message:"Unknown error")}finally{g(!1)}},[]);O.useEffect(()=>{document.title="Meshtastic Connection - MeshAI",V()},[V]),O.useEffect(()=>{if(t&&n&&i&&s&&u&&h){const Z=JSON.stringify(t)!==JSON.stringify(n)||JSON.stringify(i)!==JSON.stringify(s)||JSON.stringify(u)!==JSON.stringify(h);M(Z)}},[t,n,i,s,u,h]),O.useEffect(()=>(e(C),()=>e(!1)),[C,e]);const U=async()=>{if(!(!t||!i||!u)){y(!0),_(null),S(null);try{const Z=await Promise.all([Mi("connection",t),Mi("context",i),Mi("bot",u)]);a(JSON.parse(JSON.stringify(t))),l(JSON.parse(JSON.stringify(i))),d(JSON.parse(JSON.stringify(u))),M(!1),e(!1),S("Meshtastic connection saved successfully"),Z.some($=>$.restart_required)&&ru([]),setTimeout(()=>S(null),3e3)}catch(Z){_(Z instanceof Error?Z.message:"Save failed")}finally{y(!1)}}},F=()=>{n&&r(JSON.parse(JSON.stringify(n))),s&&o(JSON.parse(JSON.stringify(s))),h&&c(JSON.parse(JSON.stringify(h))),M(!1)};return v?f.jsx("div",{className:"flex items-center justify-center h-64",children:f.jsx("div",{className:"text-slate-400",children:"Loading Meshtastic connection..."})}):t?f.jsxs("div",{className:"max-w-2xl mx-auto space-y-6",children:[f.jsxs("div",{className:"flex items-center justify-between",children:[f.jsx("div",{children:f.jsx("p",{className:"text-sm text-slate-500",children:"Connection to your Meshtastic radio (serial or TCP)."})}),f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx("button",{onClick:V,className:"p-2 text-slate-400 hover:text-slate-200 hover:bg-bg-hover rounded transition-colors",title:"Refresh",children:f.jsx(zo,{size:18})}),f.jsxs("button",{onClick:F,disabled:!C,className:"flex items-center gap-2 px-3 py-2 text-slate-400 hover:text-slate-200 disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:[f.jsx(oa,{size:16}),"Discard"]}),f.jsxs("button",{onClick:U,disabled:m||!C,className:"flex items-center gap-2 px-4 py-2 bg-accent hover:bg-accent/80 disabled:bg-slate-700 disabled:cursor-not-allowed rounded text-white transition-colors",children:[f.jsx(sa,{size:16}),m?"Saving...":"Save"]})]})]}),x&&f.jsx("div",{className:"p-3 text-sm bg-red-500/10 text-red-400 border border-red-500/20",children:x}),w&&f.jsxs("div",{className:"p-3 text-sm bg-green-500/10 text-green-400 border border-green-500/20",children:[f.jsx(Jr,{size:14,className:"inline mr-2"}),w]}),f.jsx("div",{className:"bg-bg-card border border-border p-6",children:f.jsx($Se,{data:t,onChange:r})}),f.jsx("div",{className:"bg-bg-card border border-border p-6",children:f.jsxs("details",{className:"group",children:[f.jsxs("summary",{className:"flex items-center gap-2 cursor-pointer text-sm text-slate-400 hover:text-slate-200",children:[f.jsx(nh,{size:14,className:"group-open:rotate-90 transition-transform"}),"Advanced — Reconnect & Packet Tuning"]}),f.jsxs("div",{className:"mt-4 space-y-4 pl-6 border-l border-[#1e2a3a]",children:[f.jsx(Bt,{label:"Auto-reconnect",checked:t.reconnect??!0,onChange:Z=>r({...t,reconnect:Z}),helper:"Automatically reconnect if the mesh link drops"}),f.jsx(Se,{label:"Reconnect Initial Delay (s)",value:t.reconnect_initial_delay??2,onChange:Z=>r({...t,reconnect_initial_delay:Z}),min:0,step:.5,helper:"Backoff delay before the first reconnect attempt"}),f.jsx(Se,{label:"Reconnect Max Delay (s)",value:t.reconnect_max_delay??60,onChange:Z=>r({...t,reconnect_max_delay:Z}),min:0,helper:"Ceiling for exponential reconnect backoff"}),f.jsx(Se,{label:"Reconnect Health Interval (s)",value:t.reconnect_health_interval??30,onChange:Z=>r({...t,reconnect_health_interval:Z}),min:1,helper:"How often the socket-probe watchdog checks link health"}),f.jsx(Se,{label:"Mesh Max Chars",value:t.mesh_max_chars??140,onChange:Z=>r({...t,mesh_max_chars:Z}),min:1,helper:"Per-packet character budget for the transport"})]})]})}),i&&u&&f.jsxs("div",{className:"bg-bg-card border border-border p-6 space-y-4",children:[f.jsx("div",{className:"text-xs text-slate-500 uppercase tracking-wide",children:"Bot behavior"}),f.jsx(Bt,{label:"Enable Passive Context",checked:!!i.enabled,onChange:Z=>o({...i,enabled:Z}),helper:"Listen to channel traffic for context",info:"When enabled, the bot monitors mesh channels and includes recent messages in its context. This lets the bot reference things other people said on the channel."}),f.jsx(LP,{label:"Observe Channels",value:i.observe_channels??[],onChange:Z=>o({...i,observe_channels:Z}),helper:"Channels to monitor (empty = all)",info:"Meshtastic channels to listen on. Leave empty to monitor all channels.",mode:"multi"}),f.jsx(kP,{label:"Ignore Nodes",value:i.ignore_nodes??[],onChange:Z=>o({...i,ignore_nodes:Z}),helper:"Nodes to exclude from context",info:"Messages from these nodes won't be included in passive context. Useful for filtering out noisy automated nodes."}),f.jsx(Bt,{label:"Answer direct messages",checked:!!u.respond_to_dms,onChange:Z=>c({...u,respond_to_dms:Z}),helper:"When on, MeshAI replies to Meshtastic direct messages using the LLM. Applies to Meshtastic only."})]}),f.jsxs("div",{className:"bg-bg-card border border-border p-6 space-y-4",children:[f.jsx("div",{className:"text-xs text-slate-500 uppercase tracking-wide",children:"Send Test Message"}),f.jsx(Se,{label:"Channel Index",value:A,onChange:I,min:0,max:7,helper:"Meshtastic channel number (0 = primary)"}),f.jsx(it,{label:"Message (optional)",value:k,onChange:P,placeholder:`🧪 MeshAI test — ${new Date().toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!1})}`}),f.jsx("button",{onClick:H,disabled:D,className:"flex items-center gap-2 px-4 py-2 bg-accent hover:bg-accent/80 disabled:bg-slate-700 disabled:cursor-not-allowed rounded text-white text-sm transition-colors",children:D?"Sending...":"Send test"}),E&&(E.sent?f.jsxs("div",{className:"p-3 text-sm bg-green-500/10 text-green-400 border border-green-500/20",children:[f.jsx(Jr,{size:14,className:"inline mr-2"}),E.detail]}):f.jsx("div",{className:"p-3 text-sm bg-red-500/10 text-red-400 border border-red-500/20",children:E.detail}))]})]}):f.jsx("div",{className:"flex items-center justify-center h-64",children:f.jsx("div",{className:"text-red-400",children:"Failed to load connection config"})})}function k$(){const{setDirty:e}=Ri(),[t,r]=O.useState(null),[n,a]=O.useState(null),[i,o]=O.useState(null),[s,l]=O.useState(null),[u,c]=O.useState(!0),[h,d]=O.useState(!1),[v,g]=O.useState(null),[m,y]=O.useState(null),[x,_]=O.useState(!1),w=O.useCallback(async()=>{c(!0);try{const[M,A]=await Promise.all([go("meshmonitor"),go("mesh_sources")]);r(M),a(JSON.parse(JSON.stringify(M))),o(A),l(JSON.parse(JSON.stringify(A))),_(!1),g(null)}catch(M){g(M instanceof Error?M.message:"Unknown error")}finally{c(!1)}},[]);O.useEffect(()=>{document.title="Meshtastic Sources - MeshAI",w()},[w]),O.useEffect(()=>{if(t&&n&&i&&s){const M=JSON.stringify(t)!==JSON.stringify(n),A=JSON.stringify(i)!==JSON.stringify(s);_(M||A)}},[t,n,i,s]),O.useEffect(()=>(e(x),()=>e(!1)),[x,e]);const S=async()=>{if(!(!t||!i)){d(!0),g(null),y(null);try{const[M,A]=await Promise.all([Mi("meshmonitor",t),Mi("mesh_sources",i)]);a(JSON.parse(JSON.stringify(t))),l(JSON.parse(JSON.stringify(i))),_(!1),e(!1),y("Meshtastic sources saved successfully"),(M.restart_required||A.restart_required)&&ru([]),setTimeout(()=>y(null),3e3)}catch(M){g(M instanceof Error?M.message:"Save failed")}finally{d(!1)}}},C=()=>{n&&r(JSON.parse(JSON.stringify(n))),s&&o(JSON.parse(JSON.stringify(s))),_(!1)};return u?f.jsx("div",{className:"flex items-center justify-center h-64",children:f.jsx("div",{className:"text-slate-400",children:"Loading Meshtastic sources..."})}):!t||!i?f.jsx("div",{className:"flex items-center justify-center h-64",children:f.jsx("div",{className:"text-red-400",children:"Failed to load sources config"})}):f.jsxs("div",{className:"max-w-2xl mx-auto space-y-6",children:[f.jsxs("div",{className:"flex items-center justify-between",children:[f.jsx("div",{children:f.jsx("p",{className:"text-sm text-slate-500",children:"MeshMonitor integration and mesh awareness data sources."})}),f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx("button",{onClick:w,className:"p-2 text-slate-400 hover:text-slate-200 hover:bg-bg-hover rounded transition-colors",title:"Refresh",children:f.jsx(zo,{size:18})}),f.jsxs("button",{onClick:C,disabled:!x,className:"flex items-center gap-2 px-3 py-2 text-slate-400 hover:text-slate-200 disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:[f.jsx(oa,{size:16}),"Discard"]}),f.jsxs("button",{onClick:S,disabled:h||!x,className:"flex items-center gap-2 px-4 py-2 bg-accent hover:bg-accent/80 disabled:bg-slate-700 disabled:cursor-not-allowed rounded text-white transition-colors",children:[f.jsx(sa,{size:16}),h?"Saving...":"Save"]})]})]}),v&&f.jsx("div",{className:"p-3 text-sm bg-red-500/10 text-red-400 border border-red-500/20",children:v}),m&&f.jsxs("div",{className:"p-3 text-sm bg-green-500/10 text-green-400 border border-green-500/20",children:[f.jsx(Jr,{size:14,className:"inline mr-2"}),m]}),f.jsx("div",{className:"bg-bg-card border border-border p-6",children:f.jsx(tCe,{data:t,onChange:r})}),f.jsx("div",{className:"bg-bg-card border border-border p-6",children:f.jsx(aCe,{data:i,onChange:o})})]})}const GCe=[{key:"gauge-sites",label:"Gauge Sites"},{key:"town-anchors",label:"Town Anchors"}];function HCe(){const[e,t]=O.useState("gauge-sites");return O.useEffect(()=>{document.title="Places - MeshAI"},[]),f.jsxs("div",{className:"space-y-4",children:[f.jsx("div",{className:"flex gap-1 border-b border-border",children:GCe.map(({key:r,label:n})=>f.jsx("button",{onClick:()=>t(r),className:`px-4 py-2 text-sm whitespace-nowrap border-b-2 -mb-px transition-colors ${e===r?"border-accent text-accent":"border-transparent text-[#777] hover:text-white"}`,children:n},r))}),e==="gauge-sites"&&f.jsx(M$,{}),e==="town-anchors"&&f.jsx(A$,{})]})}const UCe=[{key:"nodes",label:"Nodes"},{key:"sources",label:"Sources"},{key:"health",label:"Health"}];function WCe(){const[e,t]=O.useState("nodes"),{setDirty:r}=Ri(),[n,a]=O.useState(null),[i,o]=O.useState(null),[s,l]=O.useState(!1),[u,c]=O.useState(!1),[h,d]=O.useState(null),[v,g]=O.useState(null),[m,y]=O.useState(!1);O.useEffect(()=>{document.title="Nodes & Health - MeshAI"},[]);const x=O.useCallback(async()=>{l(!0),d(null);try{const S=await go("mesh_intelligence");a(S),o(JSON.parse(JSON.stringify(S))),y(!1)}catch(S){d(S instanceof Error?S.message:"Failed to load mesh intelligence config")}finally{l(!1)}},[]);O.useEffect(()=>{e==="health"&&n===null&&!s&&x()},[e,n,s,x]),O.useEffect(()=>{n&&i&&y(JSON.stringify(n)!==JSON.stringify(i))},[n,i]),O.useEffect(()=>(r(m),()=>r(!1)),[m,r]);const _=async()=>{if(n){c(!0),d(null),g(null);try{const S=await Mi("mesh_intelligence",n);o(JSON.parse(JSON.stringify(n))),y(!1),r(!1),g("Mesh intelligence saved successfully"),S.restart_required&&ru([]),setTimeout(()=>g(null),3e3)}catch(S){d(S instanceof Error?S.message:"Save failed")}finally{c(!1)}}},w=()=>{i&&a(JSON.parse(JSON.stringify(i))),y(!1)};return f.jsxs("div",{className:"space-y-4",children:[f.jsx("div",{className:"flex gap-1 border-b border-border",children:UCe.map(({key:S,label:C})=>f.jsx("button",{onClick:()=>t(S),className:`px-4 py-2 text-sm whitespace-nowrap border-b-2 -mb-px transition-colors ${e===S?"border-accent text-accent":"border-transparent text-[#777] hover:text-white"}`,children:C},S))}),e==="nodes"&&f.jsx(m$,{}),e==="sources"&&f.jsx(k$,{}),e==="health"&&f.jsxs("div",{className:"max-w-2xl mx-auto space-y-6",children:[f.jsxs("div",{className:"flex items-center justify-between",children:[f.jsx("div",{children:f.jsx("p",{className:"text-sm text-slate-500",children:"Mesh health scoring, region management, and automated alerting."})}),f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx("button",{onClick:x,className:"p-2 text-slate-400 hover:text-slate-200 hover:bg-bg-hover rounded transition-colors",title:"Refresh",children:f.jsx(zo,{size:18})}),f.jsxs("button",{onClick:w,disabled:!m,className:"flex items-center gap-2 px-3 py-2 text-slate-400 hover:text-slate-200 disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:[f.jsx(oa,{size:16}),"Discard"]}),f.jsxs("button",{onClick:_,disabled:u||!m,className:"flex items-center gap-2 px-4 py-2 bg-accent hover:bg-accent/80 disabled:bg-slate-700 disabled:cursor-not-allowed rounded text-white transition-colors",children:[f.jsx(sa,{size:16}),u?"Saving...":"Save"]})]})]}),h&&f.jsx("div",{className:"p-3 text-sm bg-red-500/10 text-red-400 border border-red-500/20",children:h}),v&&f.jsxs("div",{className:"p-3 text-sm bg-green-500/10 text-green-400 border border-green-500/20",children:[f.jsx(Jr,{size:14,className:"inline mr-2"}),v]}),s?f.jsx("div",{className:"flex items-center justify-center h-32",children:f.jsx("div",{className:"text-slate-400",children:"Loading..."})}):n?f.jsx("div",{className:"bg-bg-card border border-border p-6",children:f.jsx(x$,{data:n,onChange:a})}):f.jsx("div",{className:"flex items-center justify-center h-32",children:f.jsx("div",{className:"text-red-400",children:"Failed to load config"})})]})]})}function ZCe(e){if(e==null)return"—";const t=Math.floor(Date.now()/1e3)-e;if(t<0)return"just now";if(t<60)return`${t}s ago`;const r=Math.floor(t/60);if(r<60)return`${r}m ago`;const n=Math.floor(r/60);return n<24?`${n}h ago`:`${Math.floor(n/24)}d ago`}const $Ce={chat:{label:"Chat",className:"bg-sky-500/15 text-sky-400"},repeater:{label:"Repeater",className:"bg-amber-500/15 text-amber-400"},room:{label:"Room",className:"bg-violet-500/15 text-violet-400"},sensor:{label:"Sensor",className:"bg-emerald-500/15 text-emerald-400"}};function YCe({type:e}){const t=e&&$Ce[e]||{label:e??"unknown",className:"bg-slate-600/30 text-slate-400"};return f.jsx("span",{className:`px-2 py-0.5 text-[10px] uppercase tracking-wide rounded ${t.className}`,children:t.label})}function XCe(e){return e.name?e.name:e.pubkey?`${e.pubkey.slice(0,12)}…`:"unnamed"}function qCe(e){return e.length>12?`${e.slice(0,12)}…`:e}function KCe(e){return e.lat!=null&&e.lon!=null?`${e.lat.toFixed(4)}, ${e.lon.toFixed(4)}`:"—"}function JCe(){const[e,t]=O.useState(null),[r,n]=O.useState(!0),[a,i]=O.useState(null);return O.useEffect(()=>{document.title="MeshCore Contacts - MeshAI"},[]),O.useEffect(()=>{let o=!1;return(async()=>{n(!0),i(null);try{const s=await NJ();o||t(s)}catch(s){o||i(s instanceof Error?s.message:"Failed to load contacts")}finally{o||n(!1)}})(),()=>{o=!0}},[]),f.jsxs("div",{className:"max-w-4xl mx-auto space-y-4",children:[f.jsxs("div",{className:"flex items-center gap-4",children:[f.jsx("div",{className:"flex-shrink-0 w-12 h-12 rounded-lg bg-[#0a0e17] border border-[#1e2a3a] flex items-center justify-center",children:f.jsx(jV,{size:24,className:"text-accent"})}),f.jsxs("div",{children:[f.jsx("h2",{className:"text-xl font-semibold text-slate-100",children:"MeshCore Contacts"}),f.jsx("p",{className:"text-sm text-[#777]",children:"The companion's known contact roster — names, types, and last-heard times."})]})]}),r?f.jsx("div",{className:"flex items-center justify-center h-32",children:f.jsx("div",{className:"text-slate-400",children:"Loading..."})}):a?f.jsx("div",{className:"p-3 text-sm bg-red-500/10 text-red-400 border border-red-500/20",children:a}):e&&e.active===!1?f.jsx("div",{className:"bg-bg-card border border-border p-6",children:f.jsx("p",{className:"text-sm text-[#777] leading-relaxed max-w-prose",children:"The MeshCore companion is not connected. The contact roster is unavailable until the companion comes online."})}):e&&e.contacts.length===0?f.jsx("div",{className:"bg-bg-card border border-border p-6",children:f.jsx("p",{className:"text-sm text-[#777] leading-relaxed max-w-prose",children:"No contacts yet. The companion is connected but has not discovered any nodes so far."})}):f.jsx("div",{className:"bg-bg-card border border-border overflow-x-auto",children:f.jsxs("table",{className:"w-full text-sm",children:[f.jsx("thead",{children:f.jsxs("tr",{className:"border-b border-border text-left text-[11px] uppercase tracking-wide text-[#777]",children:[f.jsx("th",{className:"px-4 py-2.5 font-medium",children:"Name"}),f.jsx("th",{className:"px-4 py-2.5 font-medium",children:"Type"}),f.jsx("th",{className:"px-4 py-2.5 font-medium",children:"Last heard"}),f.jsx("th",{className:"px-4 py-2.5 font-medium",children:"Position"}),f.jsx("th",{className:"px-4 py-2.5 font-medium",children:"Pubkey"})]})}),f.jsx("tbody",{className:"divide-y divide-border",children:((e==null?void 0:e.contacts)??[]).map(o=>f.jsxs("tr",{className:"hover:bg-bg-hover",children:[f.jsx("td",{className:"px-4 py-2.5 text-slate-100",children:XCe(o)}),f.jsx("td",{className:"px-4 py-2.5",children:f.jsx(YCe,{type:o.type})}),f.jsx("td",{className:"px-4 py-2.5 text-slate-300",children:ZCe(o.last_advert)}),f.jsx("td",{className:"px-4 py-2.5 text-slate-300 font-mono text-xs",children:KCe(o)}),f.jsx("td",{className:"px-4 py-2.5 text-slate-400 font-mono text-xs",children:qCe(o.pubkey)})]},o.pubkey))})]})}),f.jsx("p",{className:"text-xs text-[#777]",children:"Telemetry auto-poll is coming in the next pass."})]})}const QCe=[{key:"contacts",label:"Contacts"},{key:"companion",label:"Companion"}];function eTe(){const[e,t]=O.useState("contacts");return O.useEffect(()=>{document.title="Contacts & Companion - MeshAI"},[]),f.jsxs("div",{className:"space-y-4",children:[f.jsx("div",{className:"flex gap-1 border-b border-border",children:QCe.map(({key:r,label:n})=>f.jsx("button",{onClick:()=>t(r),className:`px-4 py-2 text-sm whitespace-nowrap border-b-2 -mb-px transition-colors ${e===r?"border-accent text-accent":"border-transparent text-[#777] hover:text-white"}`,children:n},r))}),e==="contacts"&&f.jsx(JCe,{}),e==="companion"&&f.jsx(N$,{})]})}function $B({family:e="meshtastic"}){const{setDirty:t}=Ri(),[r,n]=O.useState(null),[a,i]=O.useState(null),[o,s]=O.useState({digest_enabled:!0,digest_schedule:["06:00","18:00"],digest_timezone:"America/Boise"}),[l,u]=O.useState(""),[c,h]=O.useState(!0),[d,v]=O.useState(!1),[g,m]=O.useState(null),[y,x]=O.useState(null),[_,w]=O.useState(!1),S=O.useCallback(async()=>{var k,P,D;h(!0),m(null);try{const z=await go("notifications");n(z),i(JSON.parse(JSON.stringify(z)));try{const E=await fetch("/api/adapter-config/fires");if(E.ok){const B=await E.json(),H={digest_enabled:((k=B.digest_enabled)==null?void 0:k.value)??!0,digest_schedule:((P=B.digest_schedule)==null?void 0:P.value)??["06:00","18:00"],digest_timezone:((D=B.digest_timezone)==null?void 0:D.value)??"America/Boise"};s(H),u(JSON.stringify(H))}}catch{u(JSON.stringify(o))}w(!1)}catch(z){m(z instanceof Error?z.message:"Failed to load config")}finally{h(!1)}},[]);O.useEffect(()=>{document.title="Scheduled Broadcasts - MeshAI",S()},[S]),O.useEffect(()=>{if(r&&a){const k=JSON.stringify(r)!==JSON.stringify(a),P=JSON.stringify(o)!==l;w(k||P)}},[r,a,o,l]),O.useEffect(()=>(t(_),()=>t(!1)),[_,t]);const C=async(k,P,D)=>{const z=await fetch(`/api/adapter-config/${k}/${P}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({value:D})});if(!z.ok){const E=await z.json().catch(()=>({}));throw new Error(E.detail||`Failed to save ${k}.${P}`)}},M=async()=>{if(r){v(!0),m(null),x(null);try{const k=await Mi("notifications",r);i(JSON.parse(JSON.stringify(r))),k.restart_required&&ru([]);const P=l?JSON.parse(l):null;(!P||o.digest_enabled!==P.digest_enabled)&&await C("fires","digest_enabled",o.digest_enabled),(!P||JSON.stringify(o.digest_schedule)!==JSON.stringify(P.digest_schedule))&&await C("fires","digest_schedule",o.digest_schedule),(!P||o.digest_timezone!==P.digest_timezone)&&await C("fires","digest_timezone",o.digest_timezone),u(JSON.stringify(o)),w(!1),t(!1),x("Scheduled broadcasts saved successfully"),setTimeout(()=>x(null),3e3)}catch(k){m(k instanceof Error?k.message:"Save failed")}finally{v(!1)}}},A=()=>{a&&n(JSON.parse(JSON.stringify(a))),l&&s(JSON.parse(l)),w(!1)},I=e==="meshcore"?"MeshCore scheduled broadcasts and band condition reports.":"Meshtastic scheduled broadcasts and band condition reports.";return c?f.jsx("div",{className:"flex items-center justify-center h-64",children:f.jsx("div",{className:"text-slate-400",children:"Loading scheduled broadcasts..."})}):r?f.jsxs("div",{className:"max-w-2xl mx-auto space-y-6",children:[f.jsxs("div",{className:"flex items-center justify-between",children:[f.jsx("div",{children:f.jsx("p",{className:"text-sm text-slate-500",children:I})}),f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx("button",{onClick:S,className:"p-2 text-slate-400 hover:text-slate-200 hover:bg-bg-hover rounded transition-colors",title:"Refresh",children:f.jsx(zo,{size:18})}),f.jsxs("button",{onClick:A,disabled:!_,className:"flex items-center gap-2 px-3 py-2 text-slate-400 hover:text-slate-200 disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:[f.jsx(oa,{size:16}),"Discard"]}),f.jsxs("button",{onClick:M,disabled:d||!_,className:"flex items-center gap-2 px-4 py-2 bg-accent hover:bg-accent/80 disabled:bg-slate-700 disabled:cursor-not-allowed rounded text-white transition-colors",children:[f.jsx(sa,{size:16}),d?"Saving...":"Save"]})]})]}),g&&f.jsx("div",{className:"p-3 text-sm bg-red-500/10 text-red-400 border border-red-500/20",children:g}),y&&f.jsxs("div",{className:"p-3 text-sm bg-green-500/10 text-green-400 border border-green-500/20",children:[f.jsx(Jr,{size:14,className:"inline mr-2"}),y]}),f.jsxs("div",{className:"bg-bg-card border border-border p-6 space-y-4",children:[f.jsx("div",{className:"flex items-center gap-2",children:f.jsx("label",{className:"text-xs text-slate-500 uppercase tracking-wide",children:"Cold-start grace"})}),f.jsx(Nd,{label:"Grace period (seconds)",value:r.cold_start_grace_seconds??60,onChange:k=>n({...r,cold_start_grace_seconds:k}),min:0,max:600,helper:"Suppress broadcasts for this many seconds after the first event arrives",info:"When meshai starts seeing events for the first time, suppress mesh broadcasts for this many seconds to absorb any JetStream backlog. Persistence rows still get written; only broadcasts are suppressed."})]}),f.jsxs("div",{className:"bg-bg-card border border-border p-6 space-y-4",children:[f.jsx("div",{className:"flex items-center gap-2",children:f.jsx("label",{className:"text-xs text-slate-500 uppercase tracking-wide",children:"Band Conditions (HF propagation)"})}),f.jsx(kd,{label:"Enable scheduled band-conditions broadcasts",checked:r.band_conditions_enabled??!0,onChange:k=>n({...r,band_conditions_enabled:k}),helper:"3x/day HF propagation summary (Day/Night ratings per band group). The daily fire digest (twice-daily LLM summary of active fires + the last 24h of growth/spotting) is configured separately under Adapter Config -> fires.digest_*. See Reference -> Fire Tracker (Fusion) and Reference -> Broadcast Types for the New/Update/Active prefix system.",info:"Source priority: (1) recent SWPC readings persisted locally; (2) HamQSL.com fallback; (3) silent skip if both fail. Persistence rows are written either way for an audit trail."}),(r.band_conditions_enabled??!0)&&f.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[f.jsx(gp,{label:"Slot 1",value:(r.band_conditions_schedule??["06:00","14:00","22:00"])[0]||"06:00",onChange:k=>{const P=[...r.band_conditions_schedule??["06:00","14:00","22:00"]];P[0]=k,n({...r,band_conditions_schedule:P})},helper:"Morning (default 06:00 MT)"}),f.jsx(gp,{label:"Slot 2",value:(r.band_conditions_schedule??["06:00","14:00","22:00"])[1]||"14:00",onChange:k=>{const P=[...r.band_conditions_schedule??["06:00","14:00","22:00"]];P[1]=k,n({...r,band_conditions_schedule:P})},helper:"Afternoon (default 14:00 MT)"}),f.jsx(gp,{label:"Slot 3",value:(r.band_conditions_schedule??["06:00","14:00","22:00"])[2]||"22:00",onChange:k=>{const P=[...r.band_conditions_schedule??["06:00","14:00","22:00"]];P[2]=k,n({...r,band_conditions_schedule:P})},helper:"Night (default 22:00 MT)"})]}),f.jsx("p",{className:"text-xs text-slate-600",children:"All times are Mountain Time (America/Boise). DST handled automatically."})]}),f.jsxs("div",{className:"bg-bg-card border border-border p-6 space-y-4",children:[f.jsx("div",{className:"flex items-center gap-2",children:f.jsxs("label",{className:"text-xs text-slate-500 uppercase tracking-wide",children:["Fire Digest",f.jsx(ji,{info:"Twice-daily LLM summary of active fires + last 24h of growth/spotting events. Configured per the fires adapter."})]})}),f.jsx(kd,{label:"Enable fire digest broadcasts",checked:o.digest_enabled,onChange:k=>s({...o,digest_enabled:k}),helper:"Send a twice-daily digest of active fire conditions to the mesh"}),o.digest_enabled&&f.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[f.jsx(gp,{label:"Digest Slot 1",value:(o.digest_schedule??["06:00","18:00"])[0]||"06:00",onChange:k=>{const P=[...o.digest_schedule??["06:00","18:00"]];P[0]=k,s({...o,digest_schedule:P})},helper:"Morning digest (default 06:00 MT)"}),f.jsx(gp,{label:"Digest Slot 2",value:(o.digest_schedule??["06:00","18:00"])[1]||"18:00",onChange:k=>{const P=[...o.digest_schedule??["06:00","18:00"]];P[1]=k,s({...o,digest_schedule:P})},helper:"Evening digest (default 18:00 MT)"})]}),f.jsxs("div",{className:"space-y-1",children:[f.jsx("label",{className:"text-xs text-slate-500 uppercase tracking-wide",children:"Timezone"}),f.jsx("input",{type:"text",value:o.digest_timezone,onChange:k=>s({...o,digest_timezone:k.target.value}),placeholder:"America/Boise",className:"w-full px-3 py-2 bg-[#0a0e17] border border-[#1e2a3a] rounded text-sm text-slate-200 focus:outline-none focus:border-accent"}),f.jsx("p",{className:"text-xs text-slate-600",children:"IANA timezone name (e.g. America/Boise). DST handled automatically."})]})]})]}):f.jsx("div",{className:"flex items-center justify-center h-64",children:f.jsx("div",{className:"text-red-400",children:"Failed to load config"})})}function tTe({info:e}){const[t,r]=O.useState(!1);return f.jsxs("div",{className:"relative inline-block",children:[f.jsx("button",{type:"button",onClick:n=>{n.stopPropagation(),r(!t)},className:"ml-1.5 w-4 h-4 rounded-full bg-slate-700 hover:bg-slate-600 text-slate-400 hover:text-slate-200 inline-flex items-center justify-center text-xs transition-colors",title:"More info",children:"?"}),t&&f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"fixed inset-0 z-40",onClick:()=>r(!1)}),f.jsx("div",{className:"absolute left-0 top-6 z-50 w-72 p-3 bg-[#1a2332] border border-[#2a3a4a] shadow-xl text-xs text-slate-300 leading-relaxed",children:e})]})]})}function rTe({label:e,value:t,onChange:r,helper:n,info:a,keyPlaceholder:i="Key",valuePlaceholder:o="Value"}){const[s,l]=O.useState(()=>Object.entries(t||{}));O.useEffect(()=>{const c={};for(const[h,d]of s)h.trim()&&(c[h.trim()]=d);JSON.stringify(c)!==JSON.stringify(t||{})&&l(Object.entries(t||{}))},[t]);const u=c=>{l(c),r(Object.fromEntries(c.filter(([h])=>h.trim())))};return f.jsxs("div",{className:"space-y-2",children:[f.jsxs("label",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:[e,a&&f.jsx(tTe,{info:a})]}),s.map(([c,h],d)=>f.jsxs("div",{className:"flex items-start gap-2",children:[f.jsx("input",{type:"text",value:c,onChange:v=>u(s.map((g,m)=>m===d?[v.target.value,g[1]]:g)),placeholder:i,className:"w-40 flex-shrink-0 px-3 py-2 bg-[#0a0e17] border border-[#1e2a3a] rounded text-sm text-slate-200 font-mono focus:outline-none focus:border-accent placeholder-slate-600"}),f.jsx("input",{type:"text",value:h,onChange:v=>u(s.map((g,m)=>m===d?[g[0],v.target.value]:g)),placeholder:o,className:"flex-1 px-3 py-2 bg-[#0a0e17] border border-[#1e2a3a] rounded text-sm text-slate-200 focus:outline-none focus:border-accent placeholder-slate-600"}),f.jsx("button",{type:"button",onClick:()=>u(s.filter((v,g)=>g!==d)),className:"p-2 text-red-400 hover:text-red-300 hover:bg-red-500/10 rounded flex-shrink-0","aria-label":"Remove header",children:f.jsx(po,{size:14})})]},d)),f.jsxs("button",{type:"button",onClick:()=>u([...s,["",""]]),className:"w-full py-2 border border-dashed border-[#1e2a3a] text-slate-500 hover:text-slate-300 hover:border-accent flex items-center justify-center gap-2 transition-colors",children:[f.jsx(Ti,{size:16})," Add Header"]}),n&&f.jsx("p",{className:"text-xs text-slate-600",children:n})]})}const nTe=["CLIENT_BASE","ROUTER","ROUTER_LATE"],aTe=[{value:"mesh_dm",label:"Mesh DM (unicast to nodes)"},{value:"mesh_broadcast",label:"Mesh Broadcast (channel)"},{value:"email",label:"Email"},{value:"webhook",label:"Webhook"},{value:"none",label:"(None / log only)"}],iTe=[{key:"fire",label:"Fire",description:"Active wildfires (radius from fire perimeter).",Icon:Tm,showAcres:!0},{key:"weather",label:"Weather",description:"Severe weather warnings near a node.",Icon:ih},{key:"snow",label:"Snow (sub-gate of Weather)",description:"Snow-category weather events.",Icon:PV},{key:"flood",label:"Flood (sub-gate of Seismic)",description:"Stream/flood gauge events.",Icon:Mo},{key:"avalanche",label:"Avalanche",description:"Avalanche advisories near a node.",Icon:sd},{key:"seismic",label:"Seismic",description:"Earthquakes and seismic events near a node.",Icon:sd}];function hf(){return{enabled:!1,buffer_mi:5,min_acres:0}}function YB(){return{enabled:!1,dry_run:!0,monitor_roles:["ROUTER","ROUTER_LATE","CLIENT_BASE"],default_buffer_mi:5,cooldown_minutes:360,fire:hf(),weather:hf(),snow:hf(),flood:hf(),avalanche:hf(),seismic:hf(),delivery_type:"mesh_dm",node_ids:[],broadcast_channel:null,webhook_url:"",webhook_headers:{}}}function oTe({label:e,value:t,onChange:r,options:n,info:a=""}){return f.jsxs("div",{className:"space-y-1",children:[f.jsxs("label",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:[e,a&&f.jsx(ji,{info:a})]}),f.jsx("select",{value:t,onChange:i=>r(i.target.value),className:"w-full px-3 py-2 bg-[#0a0e17] border border-[#1e2a3a] rounded text-sm text-slate-200 focus:outline-none focus:border-accent",children:n.map(i=>f.jsx("option",{value:i.value,children:i.label},i.value))})]})}function sTe({meta:e,cfg:t,onChange:r}){const{Icon:n}=e;return f.jsxs("div",{className:`border border-[#1e2a3a] p-3 space-y-2 ${e.tabled?"opacity-50":""}`,children:[f.jsxs("div",{className:"flex items-center justify-between",children:[f.jsxs("div",{className:"flex items-start gap-2 flex-1",children:[f.jsx(n,{size:15,className:"text-slate-400 mt-0.5 flex-shrink-0"}),f.jsxs("div",{className:"flex-1",children:[f.jsx("span",{className:"text-sm text-slate-300",children:e.label}),f.jsx("p",{className:"text-xs text-slate-600",children:e.description}),e.tabled&&f.jsx("span",{className:"inline-block mt-1 px-2 py-0.5 text-[10px] uppercase tracking-wide rounded bg-slate-700 text-slate-300",children:"Tabled — needs snowfall + elevation pipeline"})]})]}),f.jsx("button",{type:"button",disabled:e.tabled,onClick:()=>{e.tabled||r({...t,enabled:!t.enabled})},className:`relative w-11 h-6 rounded-full transition-colors flex-shrink-0 ml-3 ${t.enabled?"bg-accent":"bg-[#1e2a3a]"} ${e.tabled?"cursor-not-allowed":""}`,children:f.jsx("span",{className:`absolute top-1 left-1 w-4 h-4 rounded-full bg-white transition-transform ${t.enabled?"translate-x-5":""}`})})]}),t.enabled&&!e.tabled&&f.jsxs("div",{className:`grid gap-3 pt-2 border-t border-[#1e2a3a] ${e.showAcres?"grid-cols-2":"grid-cols-1"}`,children:[f.jsx(Nd,{label:"Buffer (mi)",value:t.buffer_mi??0,onChange:a=>r({...t,buffer_mi:a}),min:0,step:.5}),e.showAcres&&f.jsx(Nd,{label:"Min Acres",value:t.min_acres??0,onChange:a=>r({...t,min_acres:a}),min:0,step:1})]})]})}function lTe(){const[e,t]=O.useState(!1),[r,n]=O.useState(null),[a,i]=O.useState(!0),[o,s]=O.useState(!1),[l,u]=O.useState(null),[c,h]=O.useState(null),d=O.useCallback(async()=>{i(!0),u(null);try{const y=await go("danger_zones"),x=YB();n({...x,...y,fire:{...x.fire,...y.fire||{}},weather:{...x.weather,...y.weather||{}},snow:{...x.snow,...y.snow||{}},flood:{...x.flood,...y.flood||{}},avalanche:{...x.avalanche,...y.avalanche||{}},seismic:{...x.seismic,...y.seismic||{}},monitor_roles:y.monitor_roles??x.monitor_roles,node_ids:y.node_ids??x.node_ids,webhook_headers:y.webhook_headers??x.webhook_headers})}catch(y){u(y instanceof Error?y.message:"Failed to load danger zones config"),n(YB())}finally{i(!1)}},[]);O.useEffect(()=>{d()},[d]);const v=async()=>{if(r){s(!0),u(null),h(null);try{await Mi("danger_zones",r),h("Danger Zones config saved"),setTimeout(()=>h(null),3e3)}catch(y){u(y instanceof Error?y.message:"Save failed")}finally{s(!1)}}},g=y=>n(x=>x&&{...x,...y}),m=y=>{if(!r)return;const x=r.monitor_roles||[];g({monitor_roles:x.includes(y)?x.filter(_=>_!==y):[...x,y]})};return f.jsxs("div",{className:"bg-bg-card border border-border",children:[f.jsxs("button",{type:"button",onClick:()=>t(y=>!y),className:"w-full flex items-center justify-between p-4 text-left",children:[f.jsxs("div",{className:"flex items-center gap-3",children:[f.jsx(Ao,{size:18,className:"text-amber-400"}),f.jsxs("div",{children:[f.jsx("div",{className:"text-sm font-medium text-slate-200",children:"Danger Zones"}),f.jsx("div",{className:"text-xs text-slate-500",children:"Alert when monitored infrastructure nodes are in/near a hazard"})]})]}),f.jsxs("div",{className:"flex items-center gap-2",children:[r&&f.jsx("span",{className:`text-xs px-2 py-0.5 rounded ${r.enabled?r.dry_run?"bg-yellow-500/10 text-yellow-400":"bg-green-500/10 text-green-400":"bg-slate-800 text-slate-500"}`,children:r.enabled?r.dry_run?"Dry-run":"Live":"Disabled"}),e?f.jsx(Sm,{size:18,className:"text-slate-500"}):f.jsx(nh,{size:18,className:"text-slate-500"})]})]}),e&&f.jsxs("div",{className:"p-6 pt-0 space-y-6",children:[f.jsxs("div",{className:"flex items-start gap-2 p-3 bg-amber-500/10 border border-amber-500/20",children:[f.jsx(ah,{size:16,className:"text-amber-400 mt-0.5 flex-shrink-0"}),f.jsxs("div",{className:"text-xs text-amber-200/90 leading-relaxed",children:["Ships disabled; when enabled, defaults to dry-run / log-only — no mesh traffic until you turn dry-run off. Requires ",f.jsx("span",{className:"font-medium",children:"Enable Notifications"})," (above) and environmental feeds to be on, since hazard events only flow when those are active."]})]}),l&&f.jsx("div",{className:"p-3 text-sm bg-red-500/10 text-red-400 border border-red-500/20",children:l}),c&&f.jsxs("div",{className:"p-3 text-sm bg-green-500/10 text-green-400 border border-green-500/20",children:[f.jsx(Jr,{size:14,className:"inline mr-2"}),c]}),a||!r?f.jsx("div",{className:"text-sm text-slate-500",children:"Loading danger zones config..."}):f.jsxs(f.Fragment,{children:[f.jsx(kd,{label:"Enable Danger Zones",checked:r.enabled,onChange:y=>g({enabled:y}),helper:"Master switch for the infrastructure danger-zone correlator"}),f.jsx(kd,{label:"Dry-run (log only)",checked:r.dry_run,onChange:y=>g({dry_run:y}),helper:"When on, matches are logged but nothing is sent to the mesh. Turn off only after verifying dry-run output."}),f.jsxs("div",{className:"space-y-2",children:[f.jsxs("label",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:["Monitored Roles",f.jsx(ji,{info:"Which Meshtastic node roles to correlate against hazards. Only nodes that have a GPS position are scanned."})]}),f.jsx("div",{className:"flex flex-wrap gap-2",children:nTe.map(y=>{const x=(r.monitor_roles||[]).includes(y);return f.jsx("button",{type:"button",onClick:()=>m(y),className:`px-3 py-1.5 rounded text-sm transition-colors ${x?"bg-accent text-white":"bg-[#1e2a3a] text-slate-400 hover:text-slate-200"}`,children:y},y)})})]}),f.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[f.jsx(Nd,{label:"Default Buffer (mi)",value:r.default_buffer_mi,onChange:y=>g({default_buffer_mi:y}),min:0,step:.5,helper:"Buffer used when a family has none set"}),f.jsx(Nd,{label:"Cooldown (min)",value:r.cooldown_minutes,onChange:y=>g({cooldown_minutes:y}),min:0,helper:"Min time between repeat alerts per node+family"})]}),f.jsxs("div",{className:"space-y-3",children:[f.jsxs("label",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:["Hazard Families",f.jsx(ji,{info:"Enable each hazard family to monitor, with its own buffer distance and severity threshold. Snow is a sub-gate of Weather; Flood a sub-gate of Seismic."})]}),iTe.map(y=>f.jsx(sTe,{meta:y,cfg:r[y.key],onChange:x=>g({[y.key]:x})},y.key))]}),f.jsxs("div",{className:"space-y-4 p-4 bg-[#0a0e17] border border-[#1e2a3a]",children:[f.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium text-slate-300",children:[f.jsx(LV,{size:14}),"DELIVERY"]}),f.jsx(oTe,{label:"Delivery Method",value:r.delivery_type||"mesh_dm",onChange:y=>g({delivery_type:y}),options:aTe,info:"Where danger-zone alerts get delivered. Mesh DM unicasts to specific nodes; broadcast sends to a channel. Has no effect while dry-run is on."}),r.delivery_type==="mesh_dm"&&f.jsx(kP,{label:"Recipient Nodes",value:r.node_ids||[],onChange:y=>g({node_ids:y}),helper:"Nodes that receive direct messages",valueType:"node_id_hex"}),r.delivery_type==="mesh_broadcast"&&f.jsx(LP,{label:"Broadcast Channel",value:r.broadcast_channel??0,onChange:y=>g({broadcast_channel:y}),helper:"Select the mesh radio channel",mode:"single"}),r.delivery_type==="webhook"&&f.jsxs(f.Fragment,{children:[f.jsx(hCe,{label:"Webhook URL",value:r.webhook_url||"",onChange:y=>g({webhook_url:y}),placeholder:"https://discord.com/api/webhooks/...",helper:"POST alert as JSON"}),f.jsx(rTe,{label:"Webhook Headers",value:r.webhook_headers||{},onChange:y=>g({webhook_headers:y}),helper:"Custom HTTP headers sent with the danger-zone webhook",keyPlaceholder:"Header",valuePlaceholder:"Value"})]}),r.delivery_type==="email"&&f.jsx("p",{className:"text-xs text-slate-600",children:"Email delivery uses the SMTP settings configured for notification rules."})]}),f.jsx("div",{className:"flex justify-end",children:f.jsxs("button",{type:"button",onClick:v,disabled:o,className:"flex items-center gap-2 px-4 py-2 bg-accent hover:bg-accent/80 disabled:bg-slate-700 disabled:cursor-not-allowed rounded text-white transition-colors",children:[f.jsx(sa,{size:16}),o?"Saving...":"Save Danger Zones"]})})]})]})]})}function uTe(){return O.useEffect(()=>{document.title="Danger Zones - MeshAI"},[]),f.jsxs("div",{className:"max-w-2xl mx-auto space-y-6",children:[f.jsx("p",{className:"text-sm text-slate-500",children:"Alert infrastructure nodes when they are within a configurable buffer distance of an active hazard."}),f.jsx(lTe,{})]})}function cTe(){return O.useEffect(()=>{document.title="Danger Zones - MeshAI"},[]),f.jsx("div",{className:"max-w-3xl mx-auto",children:f.jsx("div",{className:"bg-bg-card border border-border p-8",children:f.jsxs("div",{className:"flex items-start gap-4",children:[f.jsx("div",{className:"flex-shrink-0 w-12 h-12 rounded-lg bg-[#0a0e17] border border-[#1e2a3a] flex items-center justify-center",children:f.jsx(Ao,{size:24,className:"text-accent"})}),f.jsxs("div",{className:"space-y-3",children:[f.jsxs("div",{className:"flex items-center gap-3",children:[f.jsx("h2",{className:"text-xl font-semibold text-slate-100",children:"MeshCore Danger Zones"}),f.jsx("span",{className:"px-2 py-0.5 text-[10px] uppercase tracking-wide rounded bg-slate-700 text-slate-300",children:"Coming soon"})]}),f.jsx("p",{className:"text-sm text-slate-400 leading-relaxed max-w-prose",children:"MeshCore danger zone alerting will correlate infrastructure node positions with active hazards and deliver targeted DMs via the MeshCore companion. This becomes available once the MeshCore delivery pipeline supports infrastructure-targeted messaging."})]})]})})})}delete xw.Icon.Default.prototype._getIconUrl;xw.Icon.Default.mergeOptions({iconUrl:v$,iconRetinaUrl:p$,shadowUrl:g$});const dx=e=>Math.round(e*1e6)/1e6,vx=["#f59e0b","#60a5fa","#34d399","#a78bfa","#f87171","#fb923c"],hTe=[{key:"fires",label:"NIFC Fire Perimeters"},{key:"nws",label:"NWS Weather Alerts"},{key:"wzdx",label:"WZDx Work Zones"},{key:"usgs_quake",label:"USGS Earthquakes"},{key:"firms",label:"NASA FIRMS Hotspots"},{key:"roads511",label:"511 Road Conditions"},{key:"usgs",label:"USGS Stream Gauges"},{key:"avalanche",label:"Avalanche Advisories"},{key:"traffic",label:"TomTom Traffic"},{key:"satpass",label:"Satellite Passes"},{key:"ducting",label:"Tropospheric Ducting"}];function fTe({bounds:e}){const t=NP(),r=O.useRef(!1);return O.useEffect(()=>{!r.current&&e&&(t.fitBounds(e,{padding:[40,40]}),r.current=!0)},[t,e]),null}function dTe({mode:e,firstCorner:t,onFirstClick:r,onSecondClick:n}){return xSe({click(a){const i=[a.latlng.lat,a.latlng.lng];e==="awaiting-first"?r(i):e==="awaiting-second"&&n(i)}}),t?f.jsx(h$,{center:t,radius:6,pathOptions:{color:"#f59e0b",fillColor:"#f59e0b",fillOpacity:1}}):null}function vTe(){const[e,t]=O.useState(null),[r,n]=O.useState(""),[a,i]=O.useState(!0),[o,s]=O.useState(!1),[l,u]=O.useState(null),[c,h]=O.useState(null),{setDirty:d}=Ri(),[v,g]=O.useState("idle"),[m,y]=O.useState(null);O.useEffect(()=>{document.title="Coverage — MeshAI",fetch("/api/config").then(E=>{if(!E.ok)throw new Error("Failed to fetch config");return E.json()}).then(E=>{const B=E.coverage??{bbox:[],enabled:!0,excluded_adapters:[],areas:[]};let H=Array.isArray(B.areas)?B.areas:[];if(H.length===0&&Array.isArray(B.bbox)&&B.bbox.length===4){const[U,F,Z,$]=B.bbox;H=[{name:"Area 1",west:U,south:F,east:Z,north:$}]}const V={bbox:Array.isArray(B.bbox)?B.bbox:[],enabled:B.enabled??!0,excluded_adapters:Array.isArray(B.excluded_adapters)?B.excluded_adapters:[],areas:H};t(V),n(JSON.stringify(V))}).catch(E=>u(E instanceof Error?E.message:String(E))).finally(()=>i(!1))},[]);const x=e!==null&&JSON.stringify(e)!==r;O.useEffect(()=>(d(x),()=>d(!1)),[x,d]);const _=(e==null?void 0:e.areas)??[],w=_.length>0?[[Math.min(..._.map(E=>E.south)),Math.min(..._.map(E=>E.west))],[Math.max(..._.map(E=>E.north)),Math.max(..._.map(E=>E.east))]]:null,S=[39.5,-98.35],C=O.useCallback(E=>{y(E),g("awaiting-second")},[]),M=O.useCallback(E=>{if(!m)return;const[B,H]=m,[V,U]=E;t(F=>{if(!F)return F;const Z={name:`Area ${F.areas.length+1}`,west:dx(Math.min(H,U)),south:dx(Math.min(B,V)),east:dx(Math.max(H,U)),north:dx(Math.max(B,V))};return{...F,areas:[...F.areas,Z]}}),y(null),g("idle")},[m]),A=(E,B,H)=>{t(V=>{if(!V)return V;const U=V.areas.map((F,Z)=>{if(Z!==E)return F;if(B==="name")return{...F,name:H};const $=parseFloat(H);return isNaN($)?F:{...F,[B]:$}});return{...V,areas:U}})},I=E=>{t(B=>B&&{...B,areas:B.areas.filter((H,V)=>V!==E)})},k=E=>{if(!e)return;const B=e.excluded_adapters??[];t({...e,excluded_adapters:B.includes(E)?B.filter(H=>H!==E):[...B,E]})},P=()=>{r&&(t(JSON.parse(r)),g("idle"),y(null))},D=async()=>{if(e){s(!0),u(null),h(null);try{const E=await fetch("/api/config/coverage",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({areas:e.areas,bbox:[],enabled:e.enabled,excluded_adapters:e.excluded_adapters})}),B=await E.json();if(!E.ok)throw new Error(B.detail||"Save failed");n(JSON.stringify(e)),h("Coverage saved"),setTimeout(()=>h(null),3e3),B.restart_required&&ru(Array.isArray(B.changed_keys)?B.changed_keys:[])}catch(E){u(E instanceof Error?E.message:"Save failed")}finally{s(!1)}}};if(a)return f.jsx("div",{className:"flex items-center justify-center h-64 text-[#777]",children:"Loading coverage config…"});if(!e)return f.jsx("div",{className:"flex items-center justify-center h-64 text-red-400",children:l||"No config"});const z=v==="awaiting-first"?"Click the first corner of the new area on the map…":v==="awaiting-second"?"Click the opposite corner to complete the area…":_.length>0?`${_.length} area${_.length!==1?"s":""} defined`:"No areas defined — draw one on the map or enter coordinates below.";return f.jsxs("div",{className:"space-y-6 max-w-4xl",children:[f.jsxs("div",{className:"flex items-start justify-between gap-4",children:[f.jsxs("p",{className:"text-sm text-[#777]",children:[`Define one or more bounding boxes that scope every native adapter's geographic focus (set-union of all areas). Adapters with "Use own config" on ignore these areas and use the geographic settings on the`," ",f.jsx("a",{href:"/environment",className:"text-accent hover:underline",children:"Data Feeds"})," ","page."]}),x&&f.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[f.jsxs("button",{onClick:P,className:"flex items-center gap-1 px-3 py-1.5 text-sm text-[#777] hover:text-white border border-border",children:[f.jsx(oa,{size:14})," Discard"]}),f.jsxs("button",{onClick:D,disabled:o,className:"flex items-center gap-1 px-3 py-1.5 text-sm bg-accent text-white disabled:opacity-50",children:[f.jsx(sa,{size:14})," ",o?"Saving…":"Save"]})]})]}),l&&f.jsx("div",{className:"text-sm text-red-400 bg-red-500/10 p-3",children:l}),c&&f.jsx("div",{className:"text-sm text-green-400 bg-green-500/10 p-3",children:c}),f.jsxs("div",{className:"border border-border p-4 flex items-center justify-between",children:[f.jsxs("div",{children:[f.jsx("span",{className:"text-sm font-medium text-[#e0e0e0]",children:"Use coverage areas to scope all adapters"}),f.jsx("p",{className:"text-xs text-[#666] mt-0.5",children:"When disabled, every adapter uses its own geographic config regardless of the areas below."})]}),f.jsx("button",{type:"button",onClick:()=>t({...e,enabled:!e.enabled}),className:`relative w-10 h-5 rounded-full transition-colors ${e.enabled?"bg-accent":"bg-[#333]"}`,children:f.jsx("span",{className:`absolute top-0.5 left-0.5 w-4 h-4 rounded-full bg-white transition-transform ${e.enabled?"translate-x-5":""}`})})]}),f.jsxs("div",{className:"border border-border overflow-hidden",children:[f.jsxs("div",{className:"bg-bg-card border-b border-border px-4 py-2 flex items-center justify-between gap-4",children:[f.jsx("span",{className:"text-xs text-[#777] min-w-0 truncate font-mono",children:z}),f.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[v!=="idle"&&f.jsx("button",{onClick:()=>{g("idle"),y(null)},className:"px-2 py-1 text-xs text-[#777] hover:text-white border border-border",children:"Cancel"}),f.jsxs("button",{onClick:()=>g("awaiting-first"),disabled:v!=="idle",className:"flex items-center gap-1 px-2 py-1 text-xs bg-accent/20 hover:bg-accent/30 text-accent border border-accent/30 disabled:opacity-40",children:[f.jsx(fJ,{size:12}),"Add area"]})]})]}),f.jsxs(f$,{center:S,zoom:4,style:{width:"100%",height:"400px"},className:"z-0",children:[f.jsx(d$,{url:"https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}{r}.png",attribution:'© OpenStreetMap, © CARTO'}),f.jsx(fTe,{bounds:w}),_.map((E,B)=>{const H=vx[B%vx.length],V=[[E.south,E.west],[E.north,E.east]];return f.jsx(SSe,{bounds:V,pathOptions:{color:H,fillColor:H,fillOpacity:.08,weight:2}},B)}),f.jsx(dTe,{mode:v,firstCorner:m,onFirstClick:C,onSecondClick:M})]})]}),f.jsxs("div",{className:"border border-border p-4 space-y-4",children:[f.jsxs("div",{className:"flex items-center justify-between",children:[f.jsx("div",{className:"text-xs font-sans font-medium uppercase tracking-widest text-[#666]",children:"Coverage Areas"}),f.jsxs("button",{onClick:()=>g("awaiting-first"),disabled:v!=="idle",className:"flex items-center gap-1 px-2 py-1 text-xs bg-accent/20 hover:bg-accent/30 text-accent border border-accent/30 disabled:opacity-40",children:[f.jsx(Ti,{size:12})," Add area"]})]}),_.length===0?f.jsx("p",{className:"text-xs text-[#555]",children:'No areas defined. Draw one on the map or click "Add area" to start.'}):f.jsx("div",{className:"space-y-3",children:_.map((E,B)=>{const H=vx[B%vx.length];return f.jsxs("div",{className:"border border-border p-3 space-y-2",children:[f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx("span",{className:"w-3 h-3 rounded-sm flex-shrink-0",style:{backgroundColor:H}}),f.jsx("input",{type:"text",value:E.name,onChange:V=>A(B,"name",V.target.value),className:"flex-1 bg-[#0d0d0d] border border-border px-2 py-1 text-sm font-medium text-[#e0e0e0]",placeholder:"Area name"}),f.jsx("button",{onClick:()=>I(B),title:"Delete area",className:"flex items-center gap-1 px-2 py-1 text-xs text-[#777] hover:text-red-400 border border-border",children:f.jsx(po,{size:12})})]}),f.jsx("div",{className:"grid grid-cols-4 gap-2",children:["west","south","east","north"].map(V=>f.jsxs("div",{children:[f.jsx("label",{className:"text-xs text-[#777] mb-1 block capitalize",children:V}),f.jsx("input",{type:"number",step:"0.000001",value:E[V],onChange:U=>A(B,V,U.target.value),className:"w-full bg-[#0d0d0d] border border-border px-2 py-1.5 text-xs font-mono"})]},V))})]},B)})}),f.jsx("p",{className:"text-xs text-[#666]",children:"Decimal degrees. W/E = longitude; S/N = latitude. Each area is a bounding box; the coverage filter uses the set-union of all areas. Drawn coordinates are rounded to 6 decimal places."})]}),f.jsxs("div",{className:"border border-border p-4 space-y-4",children:[f.jsxs("div",{children:[f.jsx("div",{className:"text-xs font-sans font-medium uppercase tracking-widest text-[#666] mb-1",children:"Adapter Overrides"}),f.jsxs("p",{className:"text-xs text-[#777]",children:['Toggle "Use own config" to have that adapter ignore the coverage areas. Its geographic settings (state, bbox, corridors, observers…) then become active on the'," ",f.jsx("a",{href:"/environment",className:"text-accent hover:underline",children:"Data Feeds"})," ","page."]})]}),f.jsx("div",{className:"divide-y divide-border",children:hTe.map(({key:E,label:B})=>{var V;const H=((V=e.excluded_adapters)==null?void 0:V.includes(E))??!1;return f.jsxs("div",{className:"flex items-center justify-between py-2.5",children:[f.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[f.jsx("span",{className:"text-sm text-[#e0e0e0]",children:B}),H?f.jsx("span",{className:"text-[10px] text-accent/70 uppercase tracking-wide",children:"own config"}):f.jsx("span",{className:"text-[10px] text-[#555] uppercase tracking-wide",children:"coverage areas"})]}),f.jsxs("div",{className:"flex items-center gap-3 flex-shrink-0",children:[H&&f.jsx("a",{href:"/environment",className:"text-xs text-accent hover:underline",children:"Configure"}),f.jsxs("label",{className:"flex items-center gap-2 cursor-pointer select-none",children:[f.jsx("span",{className:"text-xs text-[#666] whitespace-nowrap",children:"Use own config"}),f.jsx("button",{type:"button",onClick:()=>k(E),className:`relative w-8 h-4 rounded-full transition-colors ${H?"bg-accent":"bg-[#333]"}`,children:f.jsx("span",{className:`absolute top-0.5 left-0.5 w-3 h-3 rounded-full bg-white transition-transform ${H?"translate-x-4":""}`})})]})]})]},E)})})]}),x&&f.jsxs("div",{className:"flex justify-end gap-2 pb-2",children:[f.jsxs("button",{onClick:P,className:"flex items-center gap-1 px-3 py-1.5 text-sm text-[#777] hover:text-white border border-border",children:[f.jsx(oa,{size:14})," Discard"]}),f.jsxs("button",{onClick:D,disabled:o,className:"flex items-center gap-1 px-3 py-1.5 text-sm bg-accent text-white disabled:opacity-50",children:[f.jsx(sa,{size:14})," ",o?"Saving…":"Save"]})]})]})}function pTe(){return f.jsx(rJ,{children:f.jsx(DJ,{children:f.jsx(BJ,{children:f.jsxs(HK,{children:[f.jsx(Jt,{path:"/",element:f.jsx(YJ,{})}),f.jsx(Jt,{path:"/environment",element:f.jsx(NCe,{})}),f.jsx(Jt,{path:"/config",element:f.jsx(sCe,{})}),f.jsx(Jt,{path:"/alerts",element:f.jsx(HB,{})}),f.jsx(Jt,{path:"/activity",element:f.jsx(HB,{})}),f.jsx(Jt,{path:"/notifications",element:f.jsx(gCe,{})}),f.jsx(Jt,{path:"/reference",element:f.jsx(jCe,{})}),f.jsx(Jt,{path:"/adapter-config",element:f.jsx(S$,{})}),f.jsx(Jt,{path:"/places",element:f.jsx(HCe,{})}),f.jsx(Jt,{path:"/coverage",element:f.jsx(vTe,{})}),f.jsx(Jt,{path:"/data-sources",element:f.jsx(VK,{to:"/environment",replace:!0})}),f.jsx(Jt,{path:"/gauge-sites",element:f.jsx(M$,{})}),f.jsx(Jt,{path:"/town-anchors",element:f.jsx(A$,{})}),f.jsx(Jt,{path:"/mesh",element:f.jsx(m$,{})}),f.jsx(Jt,{path:"/meshtastic/connection",element:f.jsx(VCe,{})}),f.jsx(Jt,{path:"/meshtastic/sources",element:f.jsx(k$,{})}),f.jsx(Jt,{path:"/meshtastic/scheduled",element:f.jsx($B,{family:"meshtastic"})}),f.jsx(Jt,{path:"/meshtastic/nodes",element:f.jsx(WCe,{})}),f.jsx(Jt,{path:"/meshtastic/danger-zones",element:f.jsx(uTe,{})}),f.jsx(Jt,{path:"/meshcore/connection",element:f.jsx(BCe,{})}),f.jsx(Jt,{path:"/meshcore/routing",element:f.jsx(zCe,{})}),f.jsx(Jt,{path:"/meshcore/scheduled",element:f.jsx($B,{family:"meshcore"})}),f.jsx(Jt,{path:"/meshcore/contacts",element:f.jsx(eTe,{})}),f.jsx(Jt,{path:"/meshcore/companion",element:f.jsx(N$,{})}),f.jsx(Jt,{path:"/meshcore/danger-zones",element:f.jsx(cTe,{})})]})})})})}t2.createRoot(document.getElementById("root")).render(f.jsx(Qf.StrictMode,{children:f.jsx(KK,{children:f.jsx(pTe,{})})})); diff --git a/work/meshai/dashboard/static/assets/index-oCy31pjB.css b/work/meshai/dashboard/static/assets/index-oCy31pjB.css deleted file mode 100644 index 74c643b..0000000 --- a/work/meshai/dashboard/static/assets/index-oCy31pjB.css +++ /dev/null @@ -1 +0,0 @@ -@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap";@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&display=swap";.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::-moz-selection{background:transparent}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none!important;max-height:none!important;width:auto;padding:0}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:#ffffff80}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px #000000a6;border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px #0006;background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;box-sizing:border-box;background:#fffc;text-shadow:1px 1px #fff}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678,M12=.70710678,M21=-.70710678,M22=.70710678)}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,system-ui,-apple-system,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:JetBrains Mono,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.bottom-0{bottom:0}.bottom-4{bottom:1rem}.left-0{left:0}.left-0\.5{left:.125rem}.left-1{left:.25rem}.left-3{left:.75rem}.left-4{left:1rem}.right-0{right:0}.right-1{right:.25rem}.right-2{right:.5rem}.right-4{right:1rem}.top-0{top:0}.top-0\.5{top:.125rem}.top-1{top:.25rem}.top-1\/2{top:50%}.top-4{top:1rem}.top-6{top:1.5rem}.top-full{top:100%}.z-0{z-index:0}.z-40{z-index:40}.z-50{z-index:50}.col-span-12{grid-column:span 12 / span 12}.col-span-2{grid-column:span 2 / span 2}.col-span-3{grid-column:span 3 / span 3}.-m-6{margin:-1.5rem}.-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.-my-4{margin-top:-1rem;margin-bottom:-1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-4{margin-top:1rem;margin-bottom:1rem}.-mb-px{margin-bottom:-1px}.-ml-2{margin-left:-.5rem}.-ml-4{margin-left:-1rem}.-mr-1{margin-right:-.25rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-12{margin-bottom:3rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-1\.5{margin-left:.375rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-auto{margin-top:auto}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.\!table{display:table!important}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0\.5{height:.125rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-\[540px\]{height:540px}.h-\[calc\(100vh-8rem\)\]{height:calc(100vh - 8rem)}.h-full{height:100%}.h-screen{height:100vh}.max-h-48{max-height:12rem}.max-h-64{max-height:16rem}.max-h-72{max-height:18rem}.max-h-80{max-height:20rem}.min-h-\[36px\]{min-height:36px}.w-1{width:.25rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-40{width:10rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-64{width:16rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[190px\]{width:190px}.w-\[220px\]{width:220px}.w-\[250px\]{width:250px}.w-\[2px\]{width:2px}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[200px\]{min-width:200px}.min-w-\[280px\]{min-width:280px}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-\[150px\]{max-width:150px}.max-w-\[200px\]{max-width:200px}.max-w-prose{max-width:65ch}.max-w-sm{max-width:24rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-4{--tw-translate-x: 1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-5{--tw-translate-x: 1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-y{resize:vertical}.scroll-mt-6{scroll-margin-top:1.5rem}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.gap-y-1{row-gap:.25rem}.gap-y-4{row-gap:1rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-border>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(30 30 30 / var(--tw-divide-opacity, 1))}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-stretch{align-self:stretch}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:0}.rounded-full{border-radius:9999px}.rounded-lg,.rounded-sm{border-radius:0}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-\[\#1e2a3a\]{--tw-border-opacity: 1;border-color:rgb(30 42 58 / var(--tw-border-opacity, 1))}.border-\[\#222\]{--tw-border-opacity: 1;border-color:rgb(34 34 34 / var(--tw-border-opacity, 1))}.border-\[\#2a3a4a\]{--tw-border-opacity: 1;border-color:rgb(42 58 74 / var(--tw-border-opacity, 1))}.border-\[\#333\]{--tw-border-opacity: 1;border-color:rgb(51 51 51 / var(--tw-border-opacity, 1))}.border-accent{--tw-border-opacity: 1;border-color:rgb(245 158 11 / var(--tw-border-opacity, 1))}.border-accent-dim\/30{border-color:#d977064d}.border-accent\/30{border-color:#f59e0b4d}.border-amber-500{--tw-border-opacity: 1;border-color:rgb(245 158 11 / var(--tw-border-opacity, 1))}.border-amber-500\/20{border-color:#f59e0b33}.border-amber-500\/30{border-color:#f59e0b4d}.border-blue-500\/30{border-color:#3b82f64d}.border-border{--tw-border-opacity: 1;border-color:rgb(30 30 30 / var(--tw-border-opacity, 1))}.border-border\/50{border-color:#1e1e1e80}.border-green-500\/20{border-color:#22c55e33}.border-green-500\/30{border-color:#22c55e4d}.border-red-400\/30{border-color:#f871714d}.border-red-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.border-red-500\/20{border-color:#ef444433}.border-red-500\/30{border-color:#ef44444d}.border-sky-400{--tw-border-opacity: 1;border-color:rgb(56 189 248 / var(--tw-border-opacity, 1))}.border-sky-400\/30{border-color:#38bdf84d}.border-slate-200{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.border-slate-600{--tw-border-opacity: 1;border-color:rgb(71 85 105 / var(--tw-border-opacity, 1))}.border-slate-600\/40{border-color:#47556966}.border-transparent{border-color:transparent}.border-yellow-500\/30{border-color:#eab3084d}.border-yellow-700{--tw-border-opacity: 1;border-color:rgb(161 98 7 / var(--tw-border-opacity, 1))}.border-l-accent{--tw-border-opacity: 1;border-left-color:rgb(245 158 11 / var(--tw-border-opacity, 1))}.bg-\[\#000000\]{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-\[\#0a0e17\]{--tw-bg-opacity: 1;background-color:rgb(10 14 23 / var(--tw-bg-opacity, 1))}.bg-\[\#0d0d0d\]{--tw-bg-opacity: 1;background-color:rgb(13 13 13 / var(--tw-bg-opacity, 1))}.bg-\[\#0d1219\]{--tw-bg-opacity: 1;background-color:rgb(13 18 25 / var(--tw-bg-opacity, 1))}.bg-\[\#161616\]{--tw-bg-opacity: 1;background-color:rgb(22 22 22 / var(--tw-bg-opacity, 1))}.bg-\[\#1a1a1a\]{--tw-bg-opacity: 1;background-color:rgb(26 26 26 / var(--tw-bg-opacity, 1))}.bg-\[\#1a2332\]{--tw-bg-opacity: 1;background-color:rgb(26 35 50 / var(--tw-bg-opacity, 1))}.bg-\[\#1e1e1e\]{--tw-bg-opacity: 1;background-color:rgb(30 30 30 / var(--tw-bg-opacity, 1))}.bg-\[\#1e2a3a\]{--tw-bg-opacity: 1;background-color:rgb(30 42 58 / var(--tw-bg-opacity, 1))}.bg-\[\#333\]{--tw-bg-opacity: 1;background-color:rgb(51 51 51 / var(--tw-bg-opacity, 1))}.bg-\[\#f59e0b\]{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-\[\#f59e0b\]\/10{background-color:#f59e0b1a}.bg-accent{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-accent-dim{--tw-bg-opacity: 1;background-color:rgb(217 119 6 / var(--tw-bg-opacity, 1))}.bg-accent\/10{background-color:#f59e0b1a}.bg-accent\/15{background-color:#f59e0b26}.bg-accent\/20{background-color:#f59e0b33}.bg-accent\/5{background-color:#f59e0b0d}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-amber-500\/10{background-color:#f59e0b1a}.bg-amber-500\/15{background-color:#f59e0b26}.bg-amber-500\/20{background-color:#f59e0b33}.bg-bg{--tw-bg-opacity: 1;background-color:rgb(17 17 17 / var(--tw-bg-opacity, 1))}.bg-bg-card{--tw-bg-opacity: 1;background-color:rgb(13 13 13 / var(--tw-bg-opacity, 1))}.bg-bg-card\/90{background-color:#0d0d0de6}.bg-bg-hover{--tw-bg-opacity: 1;background-color:rgb(22 22 22 / var(--tw-bg-opacity, 1))}.bg-blue-500\/15{background-color:#3b82f626}.bg-border{--tw-bg-opacity: 1;background-color:rgb(30 30 30 / var(--tw-bg-opacity, 1))}.bg-cyan-500\/20{background-color:#06b6d433}.bg-emerald-500\/15{background-color:#10b98126}.bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-green-500\/10{background-color:#22c55e1a}.bg-green-500\/15{background-color:#22c55e26}.bg-orange-500{--tw-bg-opacity: 1;background-color:rgb(249 115 22 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-500\/10{background-color:#ef44441a}.bg-red-500\/5{background-color:#ef44440d}.bg-sky-400{--tw-bg-opacity: 1;background-color:rgb(56 189 248 / var(--tw-bg-opacity, 1))}.bg-sky-400\/10{background-color:#38bdf81a}.bg-sky-500{--tw-bg-opacity: 1;background-color:rgb(14 165 233 / var(--tw-bg-opacity, 1))}.bg-sky-500\/15{background-color:#0ea5e926}.bg-slate-500{--tw-bg-opacity: 1;background-color:rgb(100 116 139 / var(--tw-bg-opacity, 1))}.bg-slate-500\/15{background-color:#64748b26}.bg-slate-500\/20{background-color:#64748b33}.bg-slate-600{--tw-bg-opacity: 1;background-color:rgb(71 85 105 / var(--tw-bg-opacity, 1))}.bg-slate-600\/30{background-color:#4755694d}.bg-slate-700{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.bg-slate-800{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-violet-500\/15{background-color:#8b5cf626}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-yellow-500{--tw-bg-opacity: 1;background-color:rgb(234 179 8 / var(--tw-bg-opacity, 1))}.bg-yellow-500\/10{background-color:#eab3081a}.bg-yellow-700{--tw-bg-opacity: 1;background-color:rgb(161 98 7 / var(--tw-bg-opacity, 1))}.bg-yellow-900\/40{background-color:#713f1266}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-6{padding-left:1.5rem}.pl-9{padding-left:2.25rem}.pr-1{padding-right:.25rem}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pt-0{padding-top:0}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:JetBrains Mono,monospace}.font-sans{font-family:Inter,system-ui,-apple-system,sans-serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.leading-relaxed{line-height:1.625}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-\[\#555\]{--tw-text-opacity: 1;color:rgb(85 85 85 / var(--tw-text-opacity, 1))}.text-\[\#666\]{--tw-text-opacity: 1;color:rgb(102 102 102 / var(--tw-text-opacity, 1))}.text-\[\#777\]{--tw-text-opacity: 1;color:rgb(119 119 119 / var(--tw-text-opacity, 1))}.text-\[\#999\]{--tw-text-opacity: 1;color:rgb(153 153 153 / var(--tw-text-opacity, 1))}.text-\[\#bbb\]{--tw-text-opacity: 1;color:rgb(187 187 187 / var(--tw-text-opacity, 1))}.text-\[\#e0e0e0\]{--tw-text-opacity: 1;color:rgb(224 224 224 / var(--tw-text-opacity, 1))}.text-\[\#f59e0b\],.text-accent{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-accent-dim{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-accent\/70{color:#f59e0bb3}.text-accent\/80{color:#f59e0bcc}.text-amber-200\/90{color:#fde68ae6}.text-amber-300{--tw-text-opacity: 1;color:rgb(252 211 77 / var(--tw-text-opacity, 1))}.text-amber-400{--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.text-amber-500{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-emerald-400{--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity, 1))}.text-green-400{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-sky-400{--tw-text-opacity: 1;color:rgb(56 189 248 / var(--tw-text-opacity, 1))}.text-sky-500{--tw-text-opacity: 1;color:rgb(14 165 233 / var(--tw-text-opacity, 1))}.text-slate-100{--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity, 1))}.text-slate-200{--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity, 1))}.text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-slate-700{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.text-slate-800{--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1))}.text-violet-400{--tw-text-opacity: 1;color:rgb(167 139 250 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-100{--tw-text-opacity: 1;color:rgb(254 249 195 / var(--tw-text-opacity, 1))}.text-yellow-200{--tw-text-opacity: 1;color:rgb(254 240 138 / var(--tw-text-opacity, 1))}.text-yellow-300{--tw-text-opacity: 1;color:rgb(253 224 71 / var(--tw-text-opacity, 1))}.text-yellow-300\/80{color:#fde047cc}.text-yellow-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.placeholder-slate-500::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(100 116 139 / var(--tw-placeholder-opacity, 1))}.placeholder-slate-500::placeholder{--tw-placeholder-opacity: 1;color:rgb(100 116 139 / var(--tw-placeholder-opacity, 1))}.placeholder-slate-600::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(71 85 105 / var(--tw-placeholder-opacity, 1))}.placeholder-slate-600::placeholder{--tw-placeholder-opacity: 1;color:rgb(71 85 105 / var(--tw-placeholder-opacity, 1))}.accent-\[\#f59e0b\]{accent-color:#f59e0b}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-accent{--tw-ring-opacity: 1;--tw-ring-color: rgb(245 158 11 / var(--tw-ring-opacity, 1))}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}body{background:#111;margin:0;font-family:Inter,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#111}::-webkit-scrollbar-thumb{background:#2a2a2a;border-radius:0}::-webkit-scrollbar-thumb:hover{background:#2a2a2a}.font-mono{font-family:JetBrains Mono,monospace}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-pulse-slow{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes slide-in{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.animate-slide-in{animation:slide-in .3s ease-out}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.placeholder\:text-\[\#555\]::-moz-placeholder{--tw-text-opacity: 1;color:rgb(85 85 85 / var(--tw-text-opacity, 1))}.placeholder\:text-\[\#555\]::placeholder{--tw-text-opacity: 1;color:rgb(85 85 85 / var(--tw-text-opacity, 1))}.last\:border-0:last-child{border-width:0px}.hover\:border-\[\#2a3a4a\]:hover{--tw-border-opacity: 1;border-color:rgb(42 58 74 / var(--tw-border-opacity, 1))}.hover\:border-accent:hover{--tw-border-opacity: 1;border-color:rgb(245 158 11 / var(--tw-border-opacity, 1))}.hover\:bg-\[\#0a0e17\]:hover{--tw-bg-opacity: 1;background-color:rgb(10 14 23 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#1e2a3a\]:hover{--tw-bg-opacity: 1;background-color:rgb(30 42 58 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#333\]:hover{--tw-bg-opacity: 1;background-color:rgb(51 51 51 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#d97706\]:hover{--tw-bg-opacity: 1;background-color:rgb(217 119 6 / var(--tw-bg-opacity, 1))}.hover\:bg-accent\/20:hover{background-color:#f59e0b33}.hover\:bg-accent\/30:hover{background-color:#f59e0b4d}.hover\:bg-accent\/80:hover{background-color:#f59e0bcc}.hover\:bg-amber-500\/30:hover{background-color:#f59e0b4d}.hover\:bg-amber-600:hover{--tw-bg-opacity: 1;background-color:rgb(217 119 6 / var(--tw-bg-opacity, 1))}.hover\:bg-bg-card:hover{--tw-bg-opacity: 1;background-color:rgb(13 13 13 / var(--tw-bg-opacity, 1))}.hover\:bg-bg-hover:hover{--tw-bg-opacity: 1;background-color:rgb(22 22 22 / var(--tw-bg-opacity, 1))}.hover\:bg-red-500\/10:hover{background-color:#ef44441a}.hover\:bg-slate-600:hover{--tw-bg-opacity: 1;background-color:rgb(71 85 105 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-700:hover{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.hover\:bg-yellow-600:hover{--tw-bg-opacity: 1;background-color:rgb(202 138 4 / var(--tw-bg-opacity, 1))}.hover\:text-accent:hover{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.hover\:text-blue-800:hover{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.hover\:text-red-300:hover{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.hover\:text-red-400:hover{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.hover\:text-sky-300:hover{--tw-text-opacity: 1;color:rgb(125 211 252 / var(--tw-text-opacity, 1))}.hover\:text-slate-200:hover{--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity, 1))}.hover\:text-slate-300:hover{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.focus\:border-accent:focus{--tw-border-opacity: 1;border-color:rgb(245 158 11 / var(--tw-border-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-slate-700:disabled{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.group[open] .group-open\:rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@media (min-width: 640px){.sm\:col-span-2{grid-column:span 2 / span 2}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width: 1024px){.lg\:col-span-2{grid-column:span 2 / span 2}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}} diff --git a/work/meshai/dashboard/static/index.html b/work/meshai/dashboard/static/index.html deleted file mode 100644 index c35398f..0000000 --- a/work/meshai/dashboard/static/index.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - MeshAI Dashboard - - - - - - - -
- - diff --git a/work/meshai/dashboard/static/meshai-icon.png b/work/meshai/dashboard/static/meshai-icon.png deleted file mode 100644 index ef05a19d8146244a85f71a0b08998a237af80119..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60118 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 diff --git a/work/meshai/dashboard/static/meshai-logo.png b/work/meshai/dashboard/static/meshai-logo.png deleted file mode 100644 index 2bd667d1679014eaccfc2835f693723660304435..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 423432 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

Dz7LqxF^dKm{@M|GJX4FM2zGHz7z&9DKMl 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 JPDHLkV1nlu@v;B_