From bc2e4871418f374b68dadfecb128e6d34ded8f28 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 +- .../static/assets/index-CTVGSJxQ.css | 1 - .../dashboard/static/assets/index-FgUiz9s3.js | 480 ------------------ 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(+), 500 deletions(-) delete mode 100644 work/meshai/dashboard/static/assets/index-CTVGSJxQ.css delete mode 100644 work/meshai/dashboard/static/assets/index-FgUiz9s3.js 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 86ec69d..8cdcbe1 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/ # Node (frontend deps, reinstalled via package-lock.json / npm ci) node_modules/ diff --git a/work/meshai/dashboard/static/assets/index-CTVGSJxQ.css b/work/meshai/dashboard/static/assets/index-CTVGSJxQ.css deleted file mode 100644 index 1f29d10..0000000 --- a/work/meshai/dashboard/static/assets/index-CTVGSJxQ.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}.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-\[180px\]{min-width:180px}.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-5xl{max-width:64rem}.max-w-\[150px\]{max-width:150px}.max-w-\[16rem\]{max-width:16rem}.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,.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-2{-moz-column-gap:.5rem;column-gap:.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-accent\/40{border-color:#f59e0b66}.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-amber-500\/40{border-color:#f59e0b66}.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-red-500\/40{border-color:#ef444466}.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-\[\#0a0e17\]\/40{background-color:#0a0e1766}.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-orange-500\/15{background-color:#f9731626}.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\/20{background-color:#ef444433}.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-2\.5{padding-left:.625rem;padding-right:.625rem}.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-300\/70{color:#fcd34db3}.text-amber-300\/80{color:#fcd34dcc}.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-orange-400{--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.text-red-300{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.text-red-300\/70{color:#fca5a5b3}.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-accent{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\:border-accent\/40:hover{border-color:#f59e0b66}.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\/25:hover{background-color:#f59e0b40}.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-red-500\/30:hover{background-color:#ef44444d}.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-slate-400:hover{--tw-text-opacity: 1;color:rgb(148 163 184 / 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/assets/index-FgUiz9s3.js b/work/meshai/dashboard/static/assets/index-FgUiz9s3.js deleted file mode 100644 index bb10109..0000000 --- a/work/meshai/dashboard/static/assets/index-FgUiz9s3.js +++ /dev/null @@ -1,480 +0,0 @@ -function jY(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 EY=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function _N(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var aF={exports:{}},$b={},iF={exports:{}},Dt={};/** - * @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 km=Symbol.for("react.element"),RY=Symbol.for("react.portal"),OY=Symbol.for("react.fragment"),zY=Symbol.for("react.strict_mode"),BY=Symbol.for("react.profiler"),FY=Symbol.for("react.provider"),VY=Symbol.for("react.context"),GY=Symbol.for("react.forward_ref"),HY=Symbol.for("react.suspense"),UY=Symbol.for("react.memo"),WY=Symbol.for("react.lazy"),_D=Symbol.iterator;function $Y(e){return e===null||typeof e!="object"?null:(e=_D&&e[_D]||e["@@iterator"],typeof e=="function"?e:null)}var oF={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},sF=Object.assign,lF={};function Kf(e,t,r){this.props=e,this.context=t,this.refs=lF,this.updater=r||oF}Kf.prototype.isReactComponent={};Kf.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")};Kf.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function uF(){}uF.prototype=Kf.prototype;function bN(e,t,r){this.props=e,this.context=t,this.refs=lF,this.updater=r||oF}var wN=bN.prototype=new uF;wN.constructor=bN;sF(wN,Kf.prototype);wN.isPureReactComponent=!0;var bD=Array.isArray,cF=Object.prototype.hasOwnProperty,SN={current:null},hF={key:!0,ref:!0,__self:!0,__source:!0};function dF(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)cF.call(t,n)&&!hF.hasOwnProperty(n)&&(a[n]=t[n]);var s=arguments.length-2;if(s===1)a.children=r;else if(1>>1,J=F[Z];if(0>>1;Za(le,$))dea(He,le)?(F[Z]=He,F[de]=$,Z=de):(F[Z]=le,F[Q]=$,Z=Q);else if(dea(He,$))F[Z]=He,F[de]=$,Z=de;else break e}}return W}function a(F,W){var $=F.sortIndex-W.sortIndex;return $!==0?$:F.id-W.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,f=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 W=r(u);W!==null;){if(W.callback===null)n(u);else if(W.startTime<=F)n(u),W.sortIndex=W.expirationTime,t(l,W);else break;W=r(u)}}function S(F){if(m=!1,w(F),!g)if(r(l)!==null)g=!0,V(C);else{var W=r(u);W!==null&&U(S,W.startTime-F)}}function C(F,W){g=!1,m&&(m=!1,x(k),k=-1),v=!0;var $=f;try{for(w(W),h=r(l);h!==null&&(!(h.expirationTime>W)||F&&!j());){var Z=h.callback;if(typeof Z=="function"){h.callback=null,f=h.priorityLevel;var J=Z(h.expirationTime<=W);W=e.unstable_now(),typeof J=="function"?h.callback=J:h===r(l)&&n(l),w(W)}else n(l);h=r(l)}if(h!==null)var re=!0;else{var Q=r(u);Q!==null&&U(S,Q.startTime-W),re=!1}return re}finally{h=null,f=$,v=!1}}var M=!1,A=null,k=-1,I=5,P=-1;function j(){return!(e.unstable_now()-PF||125Z?(F.sortIndex=$,t(u,F),r(l)===null&&F===r(u)&&(m?(x(k),k=-1):m=!0,U(S,$-Z))):(F.sortIndex=J,t(l,F),g||v||(g=!0,V(C))),F},e.unstable_shouldYield=j,e.unstable_wrapCallback=function(F){var W=f;return function(){var $=f;f=W;try{return F.apply(this,arguments)}finally{f=$}}}})(mF);gF.exports=mF;var aX=gF.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 iX=E,Ra=aX;function Ce(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"),oT=Object.prototype.hasOwnProperty,oX=/^[: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]*$/,SD={},CD={};function sX(e){return oT.call(CD,e)?!0:oT.call(SD,e)?!1:oX.test(e)?CD[e]=!0:(SD[e]=!0,!1)}function lX(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 uX(e,t,r,n){if(t===null||typeof t>"u"||lX(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 ia(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 xn={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){xn[e]=new ia(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];xn[t]=new ia(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){xn[e]=new ia(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){xn[e]=new ia(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){xn[e]=new ia(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){xn[e]=new ia(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){xn[e]=new ia(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){xn[e]=new ia(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){xn[e]=new ia(e,5,!1,e.toLowerCase(),null,!1,!1)});var TN=/[\-:]([a-z])/g;function MN(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(TN,MN);xn[t]=new ia(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(TN,MN);xn[t]=new ia(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(TN,MN);xn[t]=new ia(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){xn[e]=new ia(e,1,!1,e.toLowerCase(),null,!1,!1)});xn.xlinkHref=new ia("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){xn[e]=new ia(e,1,!1,e.toLowerCase(),null,!0,!0)});function AN(e,t,r,n){var a=xn.hasOwnProperty(t)?xn[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:"")?kp(e):""}function cX(e){switch(e.tag){case 5:return kp(e.type);case 16:return kp("Lazy");case 13:return kp("Suspense");case 19:return kp("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 cT(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 zd:return"Fragment";case Od:return"Portal";case sT:return"Profiler";case NN:return"StrictMode";case lT:return"Suspense";case uT:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case _F:return(e.displayName||"Context")+".Consumer";case xF:return(e._context.displayName||"Context")+".Provider";case kN:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case LN:return t=e.displayName||null,t!==null?t:cT(e.type)||"Memo";case bl:t=e._payload,e=e._init;try{return cT(e(t))}catch{}}return null}function hX(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 cT(t);case 8:return t===NN?"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 ru(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function wF(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function dX(e){var t=wF(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 Ay(e){e._valueTracker||(e._valueTracker=dX(e))}function SF(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var r=t.getValue(),n="";return e&&(n=wF(e)?e.checked?"true":"false":e.value),e=n,e!==r?(t.setValue(e),!0):!1}function Jx(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 hT(e,t){var r=t.checked;return br({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:r??e._wrapperState.initialChecked})}function MD(e,t){var r=t.defaultValue==null?"":t.defaultValue,n=t.checked!=null?t.checked:t.defaultChecked;r=ru(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 CF(e,t){t=t.checked,t!=null&&AN(e,"checked",t,!1)}function dT(e,t){CF(e,t);var r=ru(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")?fT(e,t.type,r):t.hasOwnProperty("defaultValue")&&fT(e,t.type,ru(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function AD(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 fT(e,t,r){(t!=="number"||Jx(e.ownerDocument)!==e)&&(r==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+r&&(e.defaultValue=""+r))}var Lp=Array.isArray;function rf(e,t,r,n){if(e=e.options,t){t={};for(var a=0;a"+t.valueOf().toString()+"",t=Ny.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function bg(e,t){if(t){var r=e.firstChild;if(r&&r===e.lastChild&&r.nodeType===3){r.nodeValue=t;return}}e.textContent=t}var Zp={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},fX=["Webkit","ms","Moz","O"];Object.keys(Zp).forEach(function(e){fX.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Zp[t]=Zp[e]})});function NF(e,t,r){return t==null||typeof t=="boolean"||t===""?"":r||typeof t!="number"||t===0||Zp.hasOwnProperty(e)&&Zp[e]?(""+t).trim():t+"px"}function kF(e,t){e=e.style;for(var r in t)if(t.hasOwnProperty(r)){var n=r.indexOf("--")===0,a=NF(r,t[r],n);r==="float"&&(r="cssFloat"),n?e.setProperty(r,a):e[r]=a}}var vX=br({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 gT(e,t){if(t){if(vX[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(Ce(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(Ce(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(Ce(61))}if(t.style!=null&&typeof t.style!="object")throw Error(Ce(62))}}function mT(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 yT=null;function IN(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var xT=null,nf=null,af=null;function LD(e){if(e=Pm(e)){if(typeof xT!="function")throw Error(Ce(280));var t=e.stateNode;t&&(t=Kb(t),xT(e.stateNode,e.type,t))}}function LF(e){nf?af?af.push(e):af=[e]:nf=e}function IF(){if(nf){var e=nf,t=af;if(af=nf=null,LD(e),t)for(e=0;e>>=0,e===0?32:31-(TX(e)/MX|0)|0}var ky=64,Ly=4194304;function Ip(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 r_(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=Ip(s):(i&=o,i!==0&&(n=Ip(i)))}else o=r&~a,o!==0?n=Ip(o):i!==0&&(n=Ip(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 Lm(e,t,r){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Ri(t),e[t]=r}function LX(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=Xp),BD=" ",FD=!1;function KF(e,t){switch(e){case"keyup":return aq.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function JF(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Bd=!1;function oq(e,t){switch(e){case"compositionend":return JF(t);case"keypress":return t.which!==32?null:(FD=!0,BD);case"textInput":return e=t.data,e===BD&&FD?null:e;default:return null}}function sq(e,t){if(Bd)return e==="compositionend"||!BN&&KF(e,t)?(e=XF(),gx=RN=Al=null,Bd=!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=UD(r)}}function r6(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?r6(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function n6(){for(var e=window,t=Jx();t instanceof e.HTMLIFrameElement;){try{var r=typeof t.contentWindow.location.href=="string"}catch{r=!1}if(r)e=t.contentWindow;else break;t=Jx(e.document)}return t}function FN(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 gq(e){var t=n6(),r=e.focusedElem,n=e.selectionRange;if(t!==r&&r&&r.ownerDocument&&r6(r.ownerDocument.documentElement,r)){if(n!==null&&FN(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=WD(r,i);var o=WD(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,Fd=null,TT=null,Kp=null,MT=!1;function $D(e,t,r){var n=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;MT||Fd==null||Fd!==Jx(n)||(n=Fd,"selectionStart"in n&&FN(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}),Kp&&Ag(Kp,n)||(Kp=n,n=i_(TT,"onSelect"),0Hd||(e.current=PT[Hd],PT[Hd]=null,Hd--)}function sr(e,t){Hd++,PT[Hd]=e.current,e.current=t}var nu={},Vn=pu(nu),pa=pu(!1),Zc=nu;function Sf(e,t){var r=e.type.contextTypes;if(!r)return nu;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 ga(e){return e=e.childContextTypes,e!=null}function s_(){ur(pa),ur(Vn)}function QD(e,t,r){if(Vn.current!==nu)throw Error(Ce(168));sr(Vn,t),sr(pa,r)}function d6(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(Ce(108,hX(e)||"Unknown",a));return br({},r,n)}function l_(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||nu,Zc=Vn.current,sr(Vn,e),sr(pa,pa.current),!0}function ej(e,t,r){var n=e.stateNode;if(!n)throw Error(Ce(169));r?(e=d6(e,t,Zc),n.__reactInternalMemoizedMergedChildContext=e,ur(pa),ur(Vn),sr(Vn,e)):ur(pa),sr(pa,r)}var xs=null,Jb=!1,rS=!1;function f6(e){xs===null?xs=[e]:xs.push(e)}function Nq(e){Jb=!0,f6(e)}function gu(){if(!rS&&xs!==null){rS=!0;var e=0,t=Jt;try{var r=xs;for(Jt=1;e>=o,a-=o,bs=1<<32-Ri(t)+a|r<k?(I=A,A=null):I=A.sibling;var P=f(x,A,w[k],S);if(P===null){A===null&&(A=I);break}e&&A&&P.alternate===null&&t(x,A),_=i(P,_,k),M===null?C=P:M.sibling=P,M=P,A=I}if(k===w.length)return r(x,A),vr&&fc(x,k),C;if(A===null){for(;kk?(I=A,A=null):I=A.sibling;var j=f(x,A,P.value,S);if(j===null){A===null&&(A=I);break}e&&A&&j.alternate===null&&t(x,A),_=i(j,_,k),M===null?C=j:M.sibling=j,M=j,A=I}if(P.done)return r(x,A),vr&&fc(x,k),C;if(A===null){for(;!P.done;k++,P=w.next())P=h(x,P.value,S),P!==null&&(_=i(P,_,k),M===null?C=P:M.sibling=P,M=P);return vr&&fc(x,k),C}for(A=n(x,A);!P.done;k++,P=w.next())P=v(A,x,k,P.value,S),P!==null&&(e&&P.alternate!==null&&A.delete(P.key===null?k:P.key),_=i(P,_,k),M===null?C=P:M.sibling=P,M=P);return e&&A.forEach(function(z){return t(x,z)}),vr&&fc(x,k),C}function y(x,_,w,S){if(typeof w=="object"&&w!==null&&w.type===zd&&w.key===null&&(w=w.props.children),typeof w=="object"&&w!==null){switch(w.$$typeof){case My:e:{for(var C=w.key,M=_;M!==null;){if(M.key===C){if(C=w.type,C===zd){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===bl&&nj(C)===M.type){r(x,M.sibling),_=a(M,w.props),_.ref=Uv(x,M,w),_.return=x,x=_;break e}r(x,M);break}else t(x,M);M=M.sibling}w.type===zd?(_=Oc(w.props.children,x.mode,S,w.key),_.return=x,x=_):(S=Tx(w.type,w.key,w.props,null,x.mode,S),S.ref=Uv(x,_,w),S.return=x,x=S)}return o(x);case Od: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 bl:return M=w._init,y(x,_,M(w._payload),S)}if(Lp(w))return g(x,_,w,S);if(Bv(w))return m(x,_,w,S);Oy(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 Tf=m6(!0),y6=m6(!1),h_=pu(null),d_=null,$d=null,UN=null;function WN(){UN=$d=d_=null}function $N(e){var t=h_.current;ur(h_),e._currentValue=t}function ET(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 sf(e,t){d_=e,UN=$d=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(va=!0),e.firstContext=null)}function fi(e){var t=e._currentValue;if(UN!==e)if(e={context:e,memoizedValue:t,next:null},$d===null){if(d_===null)throw Error(Ce(308));$d=e,d_.dependencies={lanes:0,firstContext:e}}else $d=$d.next=e;return t}var Ac=null;function ZN(e){Ac===null?Ac=[e]:Ac.push(e)}function x6(e,t,r,n){var a=t.interleaved;return a===null?(r.next=r,ZN(t)):(r.next=a.next,a.next=r),t.interleaved=r,zs(e,n)}function zs(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 wl=!1;function YN(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function _6(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 As(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Vl(e,t,r){var n=e.updateQueue;if(n===null)return null;if(n=n.shared,Ht&2){var a=n.pending;return a===null?t.next=t:(t.next=a.next,a.next=t),n.pending=t,zs(e,r)}return a=n.interleaved,a===null?(t.next=t,ZN(n)):(t.next=a.next,a.next=t),n.interleaved=t,zs(e,r)}function yx(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,DN(e,r)}}function aj(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 f_(e,t,r,n){var a=e.updateQueue;wl=!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 f=s.lane,v=s.eventTime;if((n&f)===f){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(f=t,v=r,m.tag){case 1:if(g=m.payload,typeof g=="function"){h=g.call(v,h,f);break e}h=g;break e;case 3:g.flags=g.flags&-65537|128;case 0:if(g=m.payload,f=typeof g=="function"?g.call(v,h,f):g,f==null)break e;h=br({},h,f);break e;case 2:wl=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,f=a.effects,f===null?a.effects=[s]:f.push(s))}else v={eventTime:v,lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},c===null?(u=c=v,l=h):c=c.next=v,o|=f;if(s=s.next,s===null){if(s=a.shared.pending,s===null)break;f=s,s=f.next,f.next=null,a.lastBaseUpdate=f,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);qc|=o,e.lanes=o,e.memoizedState=h}}function ij(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{Jt=r,aS.transition=n}}function O6(){return vi().memoizedState}function Pq(e,t,r){var n=Hl(e);if(r={lane:n,action:r,hasEagerState:!1,eagerState:null,next:null},z6(e))B6(t,r);else if(r=x6(e,t,r,n),r!==null){var a=Qn();Oi(r,e,n,a),F6(r,t,n)}}function Dq(e,t,r){var n=Hl(e),a={lane:n,action:r,hasEagerState:!1,eagerState:null,next:null};if(z6(e))B6(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,Gi(s,o)){var l=t.interleaved;l===null?(a.next=a,ZN(t)):(a.next=l.next,l.next=a),t.interleaved=a;return}}catch{}finally{}r=x6(e,t,a,n),r!==null&&(a=Qn(),Oi(r,e,n,a),F6(r,t,n))}}function z6(e){var t=e.alternate;return e===xr||t!==null&&t===xr}function B6(e,t){Jp=p_=!0;var r=e.pending;r===null?t.next=t:(t.next=r.next,r.next=t),e.pending=t}function F6(e,t,r){if(r&4194240){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,DN(e,r)}}var g_={readContext:fi,useCallback:Nn,useContext:Nn,useEffect:Nn,useImperativeHandle:Nn,useInsertionEffect:Nn,useLayoutEffect:Nn,useMemo:Nn,useReducer:Nn,useRef:Nn,useState:Nn,useDebugValue:Nn,useDeferredValue:Nn,useTransition:Nn,useMutableSource:Nn,useSyncExternalStore:Nn,useId:Nn,unstable_isNewReconciler:!1},jq={readContext:fi,useCallback:function(e,t){return po().memoizedState=[e,t===void 0?null:t],e},useContext:fi,useEffect:sj,useImperativeHandle:function(e,t,r){return r=r!=null?r.concat([e]):null,_x(4194308,4,P6.bind(null,t,e),r)},useLayoutEffect:function(e,t){return _x(4194308,4,e,t)},useInsertionEffect:function(e,t){return _x(4,2,e,t)},useMemo:function(e,t){var r=po();return t=t===void 0?null:t,e=e(),r.memoizedState=[e,t],e},useReducer:function(e,t,r){var n=po();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=Pq.bind(null,xr,e),[n.memoizedState,e]},useRef:function(e){var t=po();return e={current:e},t.memoizedState=e},useState:oj,useDebugValue:rk,useDeferredValue:function(e){return po().memoizedState=e},useTransition:function(){var e=oj(!1),t=e[0];return e=Iq.bind(null,e[1]),po().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,r){var n=xr,a=po();if(vr){if(r===void 0)throw Error(Ce(407));r=r()}else{if(r=t(),sn===null)throw Error(Ce(349));Xc&30||C6(n,t,r)}a.memoizedState=r;var i={value:r,getSnapshot:t};return a.queue=i,sj(M6.bind(null,n,i,e),[e]),n.flags|=2048,Eg(9,T6.bind(null,n,i,r,t),void 0,null),r},useId:function(){var e=po(),t=sn.identifierPrefix;if(vr){var r=ws,n=bs;r=(n&~(1<<32-Ri(n)-1)).toString(32)+r,t=":"+t+"R"+r,r=Dg++,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[mo]=t,e[Lg]=n,q6(e,t,!1,!1),t.stateNode=e;e:{switch(o=mT(r,n),r){case"dialog":lr("cancel",e),lr("close",e),a=n;break;case"iframe":case"object":case"embed":lr("load",e),a=n;break;case"video":case"audio":for(a=0;aNf&&(t.flags|=128,n=!0,Wv(i,!1),t.lanes=4194304)}else{if(!n)if(e=v_(o),e!==null){if(t.flags|=128,n=!0,r=e.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),Wv(i,!0),i.tail===null&&i.tailMode==="hidden"&&!o.alternate&&!vr)return kn(t),null}else 2*Dr()-i.renderingStartTime>Nf&&r!==1073741824&&(t.flags|=128,n=!0,Wv(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=Dr(),t.sibling=null,r=yr.current,sr(yr,n?r&1|2:r&1),t):(kn(t),null);case 22:case 23:return lk(),n=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==n&&(t.flags|=8192),n&&t.mode&1?Ta&1073741824&&(kn(t),t.subtreeFlags&6&&(t.flags|=8192)):kn(t),null;case 24:return null;case 25:return null}throw Error(Ce(156,t.tag))}function Gq(e,t){switch(GN(t),t.tag){case 1:return ga(t.type)&&s_(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Mf(),ur(pa),ur(Vn),KN(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return qN(t),null;case 13:if(ur(yr),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(Ce(340));Cf()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return ur(yr),null;case 4:return Mf(),null;case 10:return $N(t.type._context),null;case 22:case 23:return lk(),null;case 24:return null;default:return null}}var By=!1,Rn=!1,Hq=typeof WeakSet=="function"?WeakSet:Set,Ve=null;function Zd(e,t){var r=e.ref;if(r!==null)if(typeof r=="function")try{r(null)}catch(n){Sr(e,t,n)}else r.current=null}function UT(e,t,r){try{r()}catch(n){Sr(e,t,n)}}var yj=!1;function Uq(e,t){if(AT=n_,e=n6(),FN(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,f=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;)f=h,h=v;for(;;){if(h===e)break t;if(f===r&&++u===a&&(s=o),f===i&&++c===n&&(l=o),(v=h.nextSibling)!==null)break;h=f,f=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(NT={focusedElem:e,selectionRange:r},n_=!1,Ve=t;Ve!==null;)if(t=Ve,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,Ve=e;else for(;Ve!==null;){t=Ve;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:Ii(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(Ce(163))}}catch(S){Sr(t,t.return,S)}if(e=t.sibling,e!==null){e.return=t.return,Ve=e;break}Ve=t.return}return g=yj,yj=!1,g}function Qp(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&&UT(t,r,i)}a=a.next}while(a!==n)}}function t1(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 WT(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 Q6(e){var t=e.alternate;t!==null&&(e.alternate=null,Q6(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[mo],delete t[Lg],delete t[IT],delete t[Mq],delete t[Aq])),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 eV(e){return e.tag===5||e.tag===3||e.tag===4}function xj(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||eV(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 $T(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=o_));else if(n!==4&&(e=e.child,e!==null))for($T(e,t,r),e=e.sibling;e!==null;)$T(e,t,r),e=e.sibling}function ZT(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(ZT(e,t,r),e=e.sibling;e!==null;)ZT(e,t,r),e=e.sibling}var dn=null,Di=!1;function ul(e,t,r){for(r=r.child;r!==null;)tV(e,t,r),r=r.sibling}function tV(e,t,r){if(To&&typeof To.onCommitFiberUnmount=="function")try{To.onCommitFiberUnmount(Zb,r)}catch{}switch(r.tag){case 5:Rn||Zd(r,t);case 6:var n=dn,a=Di;dn=null,ul(e,t,r),dn=n,Di=a,dn!==null&&(Di?(e=dn,r=r.stateNode,e.nodeType===8?e.parentNode.removeChild(r):e.removeChild(r)):dn.removeChild(r.stateNode));break;case 18:dn!==null&&(Di?(e=dn,r=r.stateNode,e.nodeType===8?tS(e.parentNode,r):e.nodeType===1&&tS(e,r),Tg(e)):tS(dn,r.stateNode));break;case 4:n=dn,a=Di,dn=r.stateNode.containerInfo,Di=!0,ul(e,t,r),dn=n,Di=a;break;case 0:case 11:case 14:case 15:if(!Rn&&(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)&&UT(r,t,o),a=a.next}while(a!==n)}ul(e,t,r);break;case 1:if(!Rn&&(Zd(r,t),n=r.stateNode,typeof n.componentWillUnmount=="function"))try{n.props=r.memoizedProps,n.state=r.memoizedState,n.componentWillUnmount()}catch(s){Sr(r,t,s)}ul(e,t,r);break;case 21:ul(e,t,r);break;case 22:r.mode&1?(Rn=(n=Rn)||r.memoizedState!==null,ul(e,t,r),Rn=n):ul(e,t,r);break;default:ul(e,t,r)}}function _j(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var r=e.stateNode;r===null&&(r=e.stateNode=new Hq),t.forEach(function(n){var a=Qq.bind(null,e,n);r.has(n)||(r.add(n),n.then(a,a))})}}function Ai(e,t){var r=t.deletions;if(r!==null)for(var n=0;na&&(a=o),n&=~i}if(n=a,n=Dr()-n,n=(120>n?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*$q(n/1960))-n,10e?16:e,Nl===null)var n=!1;else{if(e=Nl,Nl=null,x_=0,Ht&6)throw Error(Ce(331));var a=Ht;for(Ht|=4,Ve=e.current;Ve!==null;){var i=Ve,o=i.child;if(Ve.flags&16){var s=i.deletions;if(s!==null){for(var l=0;lDr()-ok?Rc(e,0):ik|=r),ma(e,t)}function uV(e,t){t===0&&(e.mode&1?(t=Ly,Ly<<=1,!(Ly&130023424)&&(Ly=4194304)):t=1);var r=Qn();e=zs(e,t),e!==null&&(Lm(e,t,r),ma(e,r))}function Jq(e){var t=e.memoizedState,r=0;t!==null&&(r=t.retryLane),uV(e,r)}function Qq(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(Ce(314))}n!==null&&n.delete(t),uV(e,r)}var cV;cV=function(e,t,r){if(e!==null)if(e.memoizedProps!==t.pendingProps||pa.current)va=!0;else{if(!(e.lanes&r)&&!(t.flags&128))return va=!1,Fq(e,t,r);va=!!(e.flags&131072)}else va=!1,vr&&t.flags&1048576&&v6(t,c_,t.index);switch(t.lanes=0,t.tag){case 2:var n=t.type;bx(e,t),e=t.pendingProps;var a=Sf(t,Vn.current);sf(t,r),a=QN(null,t,n,e,a,r);var i=ek();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,ga(n)?(i=!0,l_(t)):i=!1,t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,YN(t),a.updater=e1,t.stateNode=a,a._reactInternals=t,OT(t,n,e,r),t=FT(null,t,n,!0,i,r)):(t.tag=0,vr&&i&&VN(t),Yn(null,t,a,r),t=t.child),t;case 16:n=t.elementType;e:{switch(bx(e,t),e=t.pendingProps,a=n._init,n=a(n._payload),t.type=n,a=t.tag=tK(n),e=Ii(n,e),a){case 0:t=BT(null,t,n,e,r);break e;case 1:t=pj(null,t,n,e,r);break e;case 11:t=fj(null,t,n,e,r);break e;case 14:t=vj(null,t,n,Ii(n.type,e),r);break e}throw Error(Ce(306,n,""))}return t;case 0:return n=t.type,a=t.pendingProps,a=t.elementType===n?a:Ii(n,a),BT(e,t,n,a,r);case 1:return n=t.type,a=t.pendingProps,a=t.elementType===n?a:Ii(n,a),pj(e,t,n,a,r);case 3:e:{if(Z6(t),e===null)throw Error(Ce(387));n=t.pendingProps,i=t.memoizedState,a=i.element,_6(e,t),f_(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=Af(Error(Ce(423)),t),t=gj(e,t,n,r,a);break e}else if(n!==a){a=Af(Error(Ce(424)),t),t=gj(e,t,n,r,a);break e}else for(ka=Fl(t.stateNode.containerInfo.firstChild),Da=t,vr=!0,ji=null,r=y6(t,null,n,r),t.child=r;r;)r.flags=r.flags&-3|4096,r=r.sibling;else{if(Cf(),n===a){t=Bs(e,t,r);break e}Yn(e,t,n,r)}t=t.child}return t;case 5:return b6(t),e===null&&jT(t),n=t.type,a=t.pendingProps,i=e!==null?e.memoizedProps:null,o=a.children,kT(n,a)?o=null:i!==null&&kT(n,i)&&(t.flags|=32),$6(e,t),Yn(e,t,o,r),t.child;case 6:return e===null&&jT(t),null;case 13:return Y6(e,t,r);case 4:return XN(t,t.stateNode.containerInfo),n=t.pendingProps,e===null?t.child=Tf(t,null,n,r):Yn(e,t,n,r),t.child;case 11:return n=t.type,a=t.pendingProps,a=t.elementType===n?a:Ii(n,a),fj(e,t,n,a,r);case 7:return Yn(e,t,t.pendingProps,r),t.child;case 8:return Yn(e,t,t.pendingProps.children,r),t.child;case 12:return Yn(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,sr(h_,n._currentValue),n._currentValue=o,i!==null)if(Gi(i.value,o)){if(i.children===a.children&&!pa.current){t=Bs(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=As(-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),ET(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(Ce(341));o.lanes|=r,s=o.alternate,s!==null&&(s.lanes|=r),ET(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}Yn(e,t,a.children,r),t=t.child}return t;case 9:return a=t.type,n=t.pendingProps.children,sf(t,r),a=fi(a),n=n(a),t.flags|=1,Yn(e,t,n,r),t.child;case 14:return n=t.type,a=Ii(n,t.pendingProps),a=Ii(n.type,a),vj(e,t,n,a,r);case 15:return U6(e,t,t.type,t.pendingProps,r);case 17:return n=t.type,a=t.pendingProps,a=t.elementType===n?a:Ii(n,a),bx(e,t),t.tag=1,ga(n)?(e=!0,l_(t)):e=!1,sf(t,r),V6(t,n,a),OT(t,n,a,r),FT(null,t,n,!0,e,r);case 19:return X6(e,t,r);case 22:return W6(e,t,r)}throw Error(Ce(156,t.tag))};function hV(e,t){return zF(e,t)}function eK(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 oi(e,t,r,n){return new eK(e,t,r,n)}function ck(e){return e=e.prototype,!(!e||!e.isReactComponent)}function tK(e){if(typeof e=="function")return ck(e)?1:0;if(e!=null){if(e=e.$$typeof,e===kN)return 11;if(e===LN)return 14}return 2}function Ul(e,t){var r=e.alternate;return r===null?(r=oi(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 Tx(e,t,r,n,a,i){var o=2;if(n=e,typeof e=="function")ck(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case zd:return Oc(r.children,a,i,t);case NN:o=8,a|=8;break;case sT:return e=oi(12,r,t,a|2),e.elementType=sT,e.lanes=i,e;case lT:return e=oi(13,r,t,a),e.elementType=lT,e.lanes=i,e;case uT:return e=oi(19,r,t,a),e.elementType=uT,e.lanes=i,e;case bF:return n1(r,a,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case xF:o=10;break e;case _F:o=9;break e;case kN:o=11;break e;case LN:o=14;break e;case bl:o=16,n=null;break e}throw Error(Ce(130,e==null?e:typeof e,""))}return t=oi(o,r,t,a),t.elementType=e,t.type=n,t.lanes=i,t}function Oc(e,t,r,n){return e=oi(7,e,n,t),e.lanes=r,e}function n1(e,t,r,n){return e=oi(22,e,n,t),e.elementType=bF,e.lanes=r,e.stateNode={isHidden:!1},e}function uS(e,t,r){return e=oi(6,e,null,t),e.lanes=r,e}function cS(e,t,r){return t=oi(4,e.children!==null?e.children:[],e.key,t),t.lanes=r,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function rK(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 hk(e,t,r,n,a,i,o,s,l){return e=new rK(e,t,r,s,l),t===1?(t=1,i===!0&&(t|=8)):t=0,i=oi(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:n,isDehydrated:r,cache:null,transitions:null,pendingSuspenseBoundaries:null},YN(i),e}function nK(e,t,r){var n=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(pV)}catch(e){console.error(e)}}pV(),pF.exports=za;var gV=pF.exports,Nj=gV;iT.createRoot=Nj.createRoot,iT.hydrateRoot=Nj.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 Og(){return Og=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function pk(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function uK(){return Math.random().toString(36).substr(2,8)}function Lj(e,t){return{usr:e.state,key:e.key,idx:t}}function JT(e,t,r,n){return r===void 0&&(r=null),Og({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?ev(t):t,{state:r,key:t&&t.key||n||uK()})}function w_(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 ev(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 cK(e,t,r,n){n===void 0&&(n={});let{window:a=document.defaultView,v5Compat:i=!1}=n,o=a.history,s=kl.Pop,l=null,u=c();u==null&&(u=0,o.replaceState(Og({},o.state,{idx:u}),""));function c(){return(o.state||{idx:null}).idx}function h(){s=kl.Pop;let y=c(),x=y==null?null:y-u;u=y,l&&l({action:s,location:m.location,delta:x})}function f(y,x){s=kl.Push;let _=JT(m.location,y,x);u=c()+1;let w=Lj(_,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=kl.Replace;let _=JT(m.location,y,x);u=c();let w=Lj(_,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:w_(y);return _=_.replace(/ $/,"%20"),jr(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(kj,h),l=y,()=>{a.removeEventListener(kj,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:f,replace:v,go(y){return o.go(y)}};return m}var Ij;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(Ij||(Ij={}));function hK(e,t,r){return r===void 0&&(r="/"),dK(e,t,r)}function dK(e,t,r,n){let a=typeof t=="string"?ev(t):t,i=gk(a.pathname||"/",r);if(i==null)return null;let o=mV(e);fK(o);let s=null,l=TK(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("/")&&(jr(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=Wl([n,l.relativePath]),c=r.concat(l);i.children&&i.children.length>0&&(jr(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),mV(i.children,t,c,u)),!(i.path==null&&!i.index)&&t.push({path:u,score:_K(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 yV(i.path))a(i,o,l)}),t}function yV(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=yV(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 fK(e){e.sort((t,r)=>t.score!==r.score?r.score-t.score:bK(t.routesMeta.map(n=>n.childrenIndex),r.routesMeta.map(n=>n.childrenIndex)))}const vK=/^:[\w-]+$/,pK=3,gK=2,mK=1,yK=10,xK=-2,Pj=e=>e==="*";function _K(e,t){let r=e.split("/"),n=r.length;return r.some(Pj)&&(n+=xK),t&&(n+=gK),r.filter(a=>!Pj(a)).reduce((a,i)=>a+(vK.test(i)?pK:i===""?mK:yK),n)}function bK(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 wK(e,t,r){let{routesMeta:n}=e,a={},i="/",o=[];for(let s=0;s{let{paramName:f,isOptional:v}=c;if(f==="*"){let m=s[h]||"";o=i.slice(0,i.length-m.length).replace(/(.)\/+$/,"$1")}const g=s[h];return v&&!g?u[f]=void 0:u[f]=(g||"").replace(/%2F/g,"/"),u},{}),pathname:i,pathnameBase:o,pattern:e}}function CK(e,t,r){t===void 0&&(t=!1),r===void 0&&(r=!0),pk(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 TK(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return pk(!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 gk(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 MK=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,AK=e=>MK.test(e);function NK(e,t){t===void 0&&(t="/");let{pathname:r,search:n="",hash:a=""}=typeof e=="string"?ev(e):e,i;if(r)if(AK(r))i=r;else{if(r.includes("//")){let o=r;r=xV(r),pk(!1,"Pathnames cannot have embedded double slashes - normalizing "+(o+" -> "+r))}r.startsWith("/")?i=Dj(r.substring(1),"/"):i=Dj(r,t)}else i=t;return{pathname:i,search:IK(n),hash:PK(a)}}function Dj(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 kK(e){return e.filter((t,r)=>r===0||t.route.path&&t.route.path.length>0)}function mk(e,t){let r=kK(e);return t?r.map((n,a)=>a===r.length-1?n.pathname:n.pathnameBase):r.map(n=>n.pathnameBase)}function yk(e,t,r,n){n===void 0&&(n=!1);let a;typeof e=="string"?a=ev(e):(a=Og({},e),jr(!a.pathname||!a.pathname.includes("?"),hS("?","pathname","search",a)),jr(!a.pathname||!a.pathname.includes("#"),hS("#","pathname","hash",a)),jr(!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 f=o.split("/");for(;f[0]==="..";)f.shift(),h-=1;a.pathname=f.join("/")}s=h>=0?t[h]:"/"}let l=NK(a,s),u=o&&o!=="/"&&o.endsWith("/"),c=(i||o===".")&&r.endsWith("/");return!l.pathname.endsWith("/")&&(u||c)&&(l.pathname+="/"),l}const xV=e=>e.replace(/\/\/+/g,"/"),Wl=e=>xV(e.join("/")),LK=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),IK=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,PK=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function DK(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const _V=["post","put","patch","delete"];new Set(_V);const jK=["get",..._V];new Set(jK);/** - * 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 zg(){return zg=Object.assign?Object.assign.bind():function(e){for(var t=1;t{s.current=!0}),E.useCallback(function(u,c){if(c===void 0&&(c={}),!s.current)return;if(typeof u=="number"){n.go(u);return}let h=yk(u,JSON.parse(o),i,c.relative==="path");e==null&&t!=="/"&&(h.pathname=h.pathname==="/"?t:Wl([t,h.pathname])),(c.replace?n.replace:n.push)(h,c.state,c)},[t,n,o,i,e])}function SV(e,t){let{relative:r}=t===void 0?{}:t,{future:n}=E.useContext(mu),{matches:a}=E.useContext(yu),{pathname:i}=xu(),o=JSON.stringify(mk(a,n.v7_relativeSplatPath));return E.useMemo(()=>yk(e,JSON.parse(o),i,r==="path"),[e,o,i,r])}function zK(e,t){return BK(e,t)}function BK(e,t,r,n){tv()||jr(!1);let{navigator:a}=E.useContext(mu),{matches:i}=E.useContext(yu),o=i[i.length-1],s=o?o.params:{};o&&o.pathname;let l=o?o.pathnameBase:"/";o&&o.route;let u=xu(),c;if(t){var h;let y=typeof t=="string"?ev(t):t;l==="/"||(h=y.pathname)!=null&&h.startsWith(l)||jr(!1),c=y}else c=u;let f=c.pathname||"/",v=f;if(l!=="/"){let y=l.replace(/^\//,"").split("/");v="/"+f.replace(/^\//,"").split("/").slice(y.length).join("/")}let g=hK(e,{pathname:v}),m=UK(g&&g.map(y=>Object.assign({},y,{params:Object.assign({},s,y.params),pathname:Wl([l,a.encodeLocation?a.encodeLocation(y.pathname).pathname:y.pathname]),pathnameBase:y.pathnameBase==="/"?l:Wl([l,a.encodeLocation?a.encodeLocation(y.pathnameBase).pathname:y.pathnameBase])})),i,r,n);return t&&m?E.createElement(l1.Provider,{value:{location:zg({pathname:"/",search:"",hash:"",state:null,key:"default"},c),navigationType:kl.Pop}},m):m}function FK(){let e=YK(),t=DK(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 E.createElement(E.Fragment,null,E.createElement("h2",null,"Unexpected Application Error!"),E.createElement("h3",{style:{fontStyle:"italic"}},t),r?E.createElement("pre",{style:a},r):null,null)}const VK=E.createElement(FK,null);class GK extends E.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?E.createElement(yu.Provider,{value:this.props.routeContext},E.createElement(bV.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function HK(e){let{routeContext:t,match:r,children:n}=e,a=E.useContext(xk);return a&&a.static&&a.staticContext&&(r.route.errorElement||r.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=r.route.id),E.createElement(yu.Provider,{value:t},n)}function UK(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||jr(!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,f)=>{let v,g=!1,m=null,y=null;r&&(v=s&&h.route.id?s[h.route.id]:void 0,m=h.route.errorElement||VK,l&&(u<0&&f===0?(qK("route-fallback"),g=!0,y=null):u===f&&(g=!0,y=h.route.hydrateFallbackElement||null)));let x=t.concat(o.slice(0,f+1)),_=()=>{let w;return v?w=m:g?w=y:h.route.Component?w=E.createElement(h.route.Component,null):h.route.element?w=h.route.element:w=c,E.createElement(HK,{match:h,routeContext:{outlet:c,matches:x,isDataRoute:r!=null},children:w})};return r&&(h.route.ErrorBoundary||h.route.errorElement||f===0)?E.createElement(GK,{location:r.location,revalidation:r.revalidation,component:m,error:v,children:_(),routeContext:{outlet:null,matches:x,isDataRoute:!0}}):_()},null)}var CV=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(CV||{}),TV=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}(TV||{});function WK(e){let t=E.useContext(xk);return t||jr(!1),t}function $K(e){let t=E.useContext(EK);return t||jr(!1),t}function ZK(e){let t=E.useContext(yu);return t||jr(!1),t}function MV(e){let t=ZK(),r=t.matches[t.matches.length-1];return r.route.id||jr(!1),r.route.id}function YK(){var e;let t=E.useContext(bV),r=$K(),n=MV();return t!==void 0?t:(e=r.errors)==null?void 0:e[n]}function XK(){let{router:e}=WK(CV.UseNavigateStable),t=MV(TV.UseNavigateStable),r=E.useRef(!1);return wV(()=>{r.current=!0}),E.useCallback(function(a,i){i===void 0&&(i={}),r.current&&(typeof a=="number"?e.navigate(a):e.navigate(a,zg({fromRouteId:t},i)))},[e,t])}const jj={};function qK(e,t,r){jj[e]||(jj[e]=!0)}function KK(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function Ej(e){let{to:t,replace:r,state:n,relative:a}=e;tv()||jr(!1);let{future:i,static:o}=E.useContext(mu),{matches:s}=E.useContext(yu),{pathname:l}=xu(),u=jm(),c=yk(t,mk(s,i.v7_relativeSplatPath),l,a==="path"),h=JSON.stringify(c);return E.useEffect(()=>u(JSON.parse(h),{replace:r,state:n,relative:a}),[u,h,a,r,n]),null}function nr(e){jr(!1)}function JK(e){let{basename:t="/",children:r=null,location:n,navigationType:a=kl.Pop,navigator:i,static:o=!1,future:s}=e;tv()&&jr(!1);let l=t.replace(/^\/*/,"/"),u=E.useMemo(()=>({basename:l,navigator:i,static:o,future:zg({v7_relativeSplatPath:!1},s)}),[l,s,i,o]);typeof n=="string"&&(n=ev(n));let{pathname:c="/",search:h="",hash:f="",state:v=null,key:g="default"}=n,m=E.useMemo(()=>{let y=gk(c,l);return y==null?null:{location:{pathname:y,search:h,hash:f,state:v,key:g},navigationType:a}},[l,c,h,f,v,g,a]);return m==null?null:E.createElement(mu.Provider,{value:u},E.createElement(l1.Provider,{children:r,value:m}))}function QK(e){let{children:t,location:r}=e;return zK(QT(t),r)}new Promise(()=>{});function QT(e,t){t===void 0&&(t=[]);let r=[];return E.Children.forEach(e,(n,a)=>{if(!E.isValidElement(n))return;let i=[...t,a];if(n.type===E.Fragment){r.push.apply(r,QT(n.props.children,i));return}n.type!==nr&&jr(!1),!n.props.index||!n.props.children||jr(!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=QT(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 eM(){return eM=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 nJ(e,t){let r=tM(e);return t&&t.forEach((n,a)=>{r.has(a)||t.getAll(a).forEach(i=>{r.append(a,i)})}),r}const aJ=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],iJ="6";try{window.__reactRouterVersion=iJ}catch{}const oJ="startTransition",Rj=KY[oJ];function sJ(e){let{basename:t,children:r,future:n,window:a}=e,i=E.useRef();i.current==null&&(i.current=lK({window:a,v5Compat:!0}));let o=i.current,[s,l]=E.useState({action:o.action,location:o.location}),{v7_startTransition:u}=n||{},c=E.useCallback(h=>{u&&Rj?Rj(()=>l(h)):l(h)},[l,u]);return E.useLayoutEffect(()=>o.listen(c),[o,c]),E.useEffect(()=>KK(n),[n]),E.createElement(JK,{basename:t,children:r,location:s.location,navigationType:s.action,navigator:o,future:n})}const lJ=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",uJ=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,uf=E.forwardRef(function(t,r){let{onClick:n,relative:a,reloadDocument:i,replace:o,state:s,target:l,to:u,preventScrollReset:c,viewTransition:h}=t,f=eJ(t,aJ),{basename:v}=E.useContext(mu),g,m=!1;if(typeof u=="string"&&uJ.test(u)&&(g=u,lJ))try{let w=new URL(window.location.href),S=u.startsWith("//")?new URL(w.protocol+u):new URL(u),C=gk(S.pathname,v);S.origin===w.origin&&C!=null?u=C+S.search+S.hash:m=!0}catch{}let y=RK(u,{relative:a}),x=cJ(u,{replace:o,state:s,target:l,preventScrollReset:c,relative:a,viewTransition:h});function _(w){n&&n(w),w.defaultPrevented||x(w)}return E.createElement("a",eM({},f,{href:g||y,onClick:m||i?n:_,ref:r,target:l}))});var Oj;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(Oj||(Oj={}));var zj;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(zj||(zj={}));function cJ(e,t){let{target:r,replace:n,state:a,preventScrollReset:i,relative:o,viewTransition:s}=t===void 0?{}:t,l=jm(),u=xu(),c=SV(e,{relative:o});return E.useCallback(h=>{if(rJ(h,r)){h.preventDefault();let f=n!==void 0?n:w_(u)===w_(c);l(e,{replace:f,state:a,preventScrollReset:i,relative:o,viewTransition:s})}},[u,l,c,n,a,r,e,i,o,s])}function hJ(e){let t=E.useRef(tM(e)),r=E.useRef(!1),n=xu(),a=E.useMemo(()=>nJ(n.search,r.current?null:t.current),[n.search]),i=jm(),o=E.useCallback((s,l)=>{const u=tM(typeof s=="function"?s(a):s);r.current=!0,i("?"+u,l)},[i,a]);return[a,o]}const AV=E.createContext({dirty:!1,setDirty:()=>{}});function dJ({children:e}){const[t,r]=E.useState(!1);return E.useEffect(()=>{const n=a=>{t&&(a.preventDefault(),a.returnValue="")};return window.addEventListener("beforeunload",n),()=>window.removeEventListener("beforeunload",n)},[t]),d.jsx(AV.Provider,{value:{dirty:t,setDirty:r},children:e})}function $i(){return E.useContext(AV)}/** - * @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=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),NV=(...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 vJ={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 pJ=E.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:r=2,absoluteStrokeWidth:n,className:a="",children:i,iconNode:o,...s},l)=>E.createElement("svg",{ref:l,...vJ,width:t,height:t,stroke:e,strokeWidth:n?Number(r)*24/Number(t):r,className:NV("lucide",a),...s},[...o.map(([u,c])=>E.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=E.forwardRef(({className:n,...a},i)=>E.createElement(pJ,{ref:i,iconNode:t,className:NV(`lucide-${fJ(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 Oo=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 Bj=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 kV=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 LV=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 _k=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 gJ=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 Fj=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 u1=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 Yr=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 Em=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 Ah=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 mJ=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 Nh=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 bk=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 Vj=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 IV=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 yJ=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 kh=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 xJ=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 PV=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 DV=Ge("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);/** - * @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("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 _J=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 EV=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 bJ=Ge("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]]);/** - * @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 c1=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 Jc=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 h1=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 rv=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 RV=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 Rm=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 wJ=Ge("Hash",[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]]);/** - * @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("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 CJ=Ge("Home",[["path",{d:"m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"y5dka4"}],["polyline",{points:"9 22 9 12 15 12 15 22",key:"e2us08"}]]);/** - * @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 OV=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 zV=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 nv=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 av=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 BV=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 wk=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 kf=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 TJ=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 Sk=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 li=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 bi=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 Zi=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 xa=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 MJ=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 f1=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 _a=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 v1=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 FV=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 AJ=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 VV=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 Ck=Ge("Siren",[["path",{d:"M7 18v-6a5 5 0 1 1 10 0v6",key:"pcx96s"}],["path",{d:"M5 21a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-1a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2z",key:"1b4s83"}],["path",{d:"M21 12h1",key:"jtio3y"}],["path",{d:"M18.5 4.5 18 5",key:"g5sp9y"}],["path",{d:"M2 12h1",key:"1uaihz"}],["path",{d:"M12 2v1",key:"11qlp1"}],["path",{d:"m4.929 4.929.707.707",key:"1i51kw"}],["path",{d:"M12 12v6",key:"3ahymv"}]]);/** - * @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 Bg=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 GV=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 HV=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 UV=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 ui=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 pi=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 WV=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 NJ=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 _u=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 rM=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 Nr(e){const t=await fetch(e);if(!t.ok)throw new Error(`API error: ${t.status} ${t.statusText}`);return t.json()}async function kJ(){return Nr("/api/serial-ports")}async function Gj(){return Nr("/api/status")}async function LJ(){return Nr("/api/health")}async function IJ(){return Nr("/api/nodes")}async function PJ(){return Nr("/api/edges")}async function DJ(){return Nr("/api/sources")}async function Ao(e){const t=e?`/api/config/${e}`:"/api/config";return Nr(t)}async function ja(e,t){const r=await fetch(`/api/config/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!r.ok){let n="";try{const a=await r.json();typeof(a==null?void 0:a.detail)=="string"?n=a.detail:(a==null?void 0:a.detail)!=null&&(n=JSON.stringify(a.detail))}catch{}throw new Error(n?`${n} (${r.status})`:`API error: ${r.status} ${r.statusText}`)}return r.json()}async function jJ(){return Nr("/api/config/generic_sources")}async function EJ(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 RJ(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 OJ(){return Nr("/api/alerts/active")}async function zJ(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),Nr(`/api/activity?${n.toString()}`)}async function $V(){return Nr("/api/env/status")}async function ZV(){return Nr("/api/env/active")}async function BJ(){return Nr("/api/env/swpc")}async function FJ(){return Nr("/api/regions")}async function VJ(){return Nr("/api/meshcore/channels")}async function YV(){return Nr("/api/meshcore/channels/detail")}async function GJ(e,t){const r=await fetch("/api/meshcore/channels",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e,key:t||void 0})});if(!r.ok){const n=await r.json().catch(()=>null);throw new Error((n==null?void 0:n.detail)||`API error: ${r.status} ${r.statusText}`)}return r.json()}async function HJ(e){const t=await fetch(`/api/meshcore/channels/${encodeURIComponent(e)}`,{method:"DELETE"});if(!t.ok){const r=await t.json().catch(()=>null);throw new Error((r==null?void 0:r.detail)||`API error: ${t.status} ${t.statusText}`)}return t.json()}async function UJ(){return Nr("/api/meshcore/rooms")}async function WJ(e,t){const r=await fetch(`/api/meshcore/room-password/${encodeURIComponent(e)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({value:t})});if(!r.ok)throw new Error(`API error: ${r.status} ${r.statusText}`);return r.json()}async function $J(e){const t=await fetch(`/api/meshcore/room-password/${encodeURIComponent(e)}`,{method:"DELETE"});if(!t.ok)throw new Error(`API error: ${t.status} ${t.statusText}`);return t.json()}async function Hj(){return Nr("/api/meshcore/contacts")}async function Uj(){return Nr("/api/meshcore/self")}async function ZJ(){const e=await fetch("/api/meshcore/contacts/refresh",{method:"POST"});if(!e.ok){const t=await e.json().catch(()=>null);throw new Error((t==null?void 0:t.detail)||`API error: ${e.status} ${e.statusText}`)}return e.json()}async function YJ(e){const t=await fetch("/api/meshcore/contacts/import",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contacts:e})});if(!t.ok){const r=await t.json().catch(()=>null);throw new Error((r==null?void 0:r.detail)||`API error: ${t.status} ${t.statusText}`)}return t.json()}async function XJ(e){const t=await fetch(`/api/meshcore/contacts/${encodeURIComponent(e)}`,{method:"DELETE"});if(!t.ok){const r=await t.json().catch(()=>null);throw new Error((r==null?void 0:r.detail)||`API error: ${t.status} ${t.statusText}`)}return t.json()}async function qJ(){return Nr("/api/meshcore/route-health")}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 JJ(){return Nr("/api/config/connection")}async function QJ(){return Nr("/api/meshcore/telemetry")}async function eQ(e){const t=await fetch("/api/meshcore/telemetry/poll",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contact:e})});if(!t.ok)throw new Error(`API error: ${t.status} ${t.statusText}`);return t.json()}async function XV(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 qV(){const[e,t]=E.useState(!1),[r,n]=E.useState(null),[a,i]=E.useState(null),[o,s]=E.useState(null),l=E.useRef(null),u=E.useRef(null),c=E.useRef(1e3),h=E.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 E.useEffect(()=>(h(),()=>{u.current&&clearTimeout(u.current),l.current&&l.current.close()}),[h]),{connected:e,lastHealth:r,lastAlert:a,lastMessage:o}}const KV=E.createContext(null);function tQ(){const e=E.useContext(KV);if(!e)throw new Error("useToast must be used within a ToastProvider");return e}function rQ(e){switch(e==null?void 0:e.toLowerCase()){case"critical":case"emergency":return{bg:"bg-red-500/10",border:"border-red-500",icon:Nh,iconColor:"text-red-500"};case"warning":return{bg:"bg-amber-500/10",border:"border-amber-500",icon:pi,iconColor:"text-amber-500"};default:return{bg:"bg-sky-400/10",border:"border-sky-400",icon:d1,iconColor:"text-sky-400"}}}function nQ({toast:e,onDismiss:t,onNavigate:r}){const n=rQ(e.alert.severity),a=n.icon;return E.useEffect(()=>{const i=setTimeout(t,8e3);return()=>clearTimeout(i)},[t]),d.jsx("div",{className:`${n.bg} border ${n.border} shadow-lg overflow-hidden animate-slide-in cursor-pointer`,onClick:r,role:"alert",children:d.jsxs("div",{className:"flex items-start gap-3 p-4",children:[d.jsx("div",{className:`w-1 self-stretch -ml-4 -my-4 ${n.border.replace("border","bg")}`}),d.jsx(a,{size:18,className:n.iconColor}),d.jsxs("div",{className:"flex-1 min-w-0 pr-2",children:[d.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())}),d.jsx("div",{className:"text-sm text-slate-300 line-clamp-2",children:e.alert.message})]}),d.jsx("button",{onClick:i=>{i.stopPropagation(),t()},className:"text-slate-400 hover:text-slate-200 transition-colors",children:d.jsx(_u,{size:16})})]})})}function aQ({children:e}){const[t,r]=E.useState([]),n=jm(),a=E.useCallback(s=>{const l=`${Date.now()}-${Math.random().toString(36).substr(2,9)}`;r(u=>[...u,{id:l,alert:s}])},[]),i=E.useCallback(s=>{r(l=>l.filter(u=>u.id!==s))},[]),o=E.useCallback(()=>{n("/alerts")},[n]);return d.jsxs(KV.Provider,{value:{addToast:a},children:[e,d.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=>d.jsx("div",{className:"pointer-events-auto",children:d.jsx(nQ,{toast:s,onDismiss:()=>i(s.id),onNavigate:o})},s.id))})]})}const p1="meshai.restartRequired.v1";function Wj(){try{const e=localStorage.getItem(p1);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 bu(e){const t={required:!0,changedKeys:[...new Set(e)],ts:Date.now()};localStorage.setItem(p1,JSON.stringify(t)),window.dispatchEvent(new CustomEvent("meshai:restart-required",{detail:t}))}function $j(){localStorage.removeItem(p1),window.dispatchEvent(new CustomEvent("meshai:restart-required",{detail:{required:!1,changedKeys:[],ts:0}}))}function iQ(){const[e,t]=E.useState(()=>Wj()),[r,n]=E.useState(!1),[a,i]=E.useState(null);E.useEffect(()=>{const l=c=>{const h=c.detail;t(h)},u=c=>{c.key===p1&&t(Wj())};return window.addEventListener("meshai:restart-required",l),window.addEventListener("storage",u),()=>{window.removeEventListener("meshai:restart-required",l),window.removeEventListener("storage",u)}},[]);const o=E.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}`)}$j()}catch(l){i(String(l)),n(!1)}},[]),s=E.useCallback(()=>{$j()},[]);return e.required?d.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:[d.jsx(pi,{className:"w-4 h-4 flex-shrink-0 text-yellow-300"}),d.jsxs("div",{className:"flex-1 min-w-0",children:[d.jsx("strong",{children:"Restart required"}),e.changedKeys.length>0&&d.jsxs("span",{className:"text-yellow-300 ml-2",children:["(",e.changedKeys.length," key",e.changedKeys.length===1?"":"s",":"," ",d.jsxs("span",{className:"font-mono text-xs",children:[e.changedKeys.slice(0,3).join(", "),e.changedKeys.length>3?", …":""]}),")"]}),d.jsxs("span",{className:"ml-2 text-yellow-300/80",children:["for these changes to take effect. Click ",d.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&&d.jsx("div",{className:"text-red-400 text-xs mt-1",children:a})]}),d.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:[d.jsx(MJ,{className:`w-3 h-3 ${r?"animate-spin":""}`}),r?"Restarting…":"Restart now"]}),d.jsx("button",{onClick:s,className:"text-yellow-300 hover:text-white px-1",title:"Dismiss (you can still restart later)",children:d.jsx(_u,{className:"w-4 h-4"})})]}):null}const JV=[{header:"General",items:[{path:"/",label:"Dashboard",icon:zV},{path:"/config",label:"Settings",icon:VV},{path:"/environment",label:"Data Feeds",icon:kh},{path:"/activity",label:"Activity Log",icon:Oo},{path:"/places",label:"Places",icon:av},{path:"/coverage",label:"Coverage",icon:BV}]},{header:"Meshtastic",items:[{path:"/meshtastic/connection",label:"Connection",icon:NJ},{path:"/meshtastic/routing",label:"Routing",icon:Bj},{path:"/meshtastic/scheduled",label:"Scheduled Broadcasts",icon:Fj},{path:"/meshtastic/nodes",label:"Nodes & Health",icon:Oo},{path:"/meshtastic/danger-zones",label:"Danger Zones",icon:pi}]},{header:"MeshCore",items:[{path:"/meshcore/connection",label:"Connection",icon:Sk},{path:"/meshcore/routing",label:"Routing",icon:Bj},{path:"/meshcore/scheduled",label:"Scheduled Broadcasts",icon:Fj},{path:"/meshcore/contacts",label:"Contacts & Companion",icon:WV},{path:"/meshcore/danger-zones",label:"Danger Zones",icon:pi}]},{header:"Documentation",items:[{path:"/reference",label:"Reference",icon:LV}]}],oQ=[{path:"/adapter-config",label:"Adapter Config",icon:Bg},{path:"/gauge-sites",label:"Gauge Sites",icon:c1},{path:"/town-anchors",label:"Town Anchors",icon:av},{path:"/mesh",label:"Mesh",icon:bi},{path:"/meshtastic/sources",label:"Sources",icon:OV},{path:"/meshcore/companion",label:"Companion",icon:_k}],Zj=[...JV.flatMap(e=>e.items),...oQ],Yj={"/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 sQ(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 lQ(e,t,r,n){const a=e.path.includes("?")?`${t}${r}`===e.path:t===e.path,i=e.icon;return d.jsxs(uf,{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&&d.jsx("div",{className:"absolute right-0 top-0 bottom-0 w-[2px] bg-[#f59e0b]"}),d.jsx(i,{size:16}),e.label]},e.path)}function uQ(e){const t=e.split("?")[0];if(Yj[t])return Yj[t];const r=Zj.find(a=>a.path===e);if(r)return r.label;const n=Zj.find(a=>a.path.split("?")[0]===t);return(n==null?void 0:n.label)||"Dashboard"}function cQ({children:e}){var y;const t=xu(),r=jm(),{dirty:n,setDirty:a}=$i(),{connected:i,lastAlert:o}=qV(),{addToast:s}=tQ(),[l,u]=E.useState(null),[c,h]=E.useState(null),f=(x,_)=>{n&&(_.preventDefault(),window.confirm("You have unsaved changes. Discard them?")&&(a(!1),r(x)))};E.useEffect(()=>{if(o){const x=`${o.type}-${o.message}-${o.timestamp}`;x!==c&&(h(x),s(o))}},[o,c,s]);const[v,g]=E.useState(new Date);E.useEffect(()=>{Gj().then(u).catch(console.error);const x=setInterval(()=>{Gj().then(u).catch(console.error)},3e4);return()=>clearInterval(x)},[]),E.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 d.jsxs("div",{className:"flex h-screen overflow-hidden bg-bg text-white",children:[d.jsxs("aside",{className:"w-[220px] flex-shrink-0 bg-bg-card border-r border-border flex flex-col overflow-y-auto",children:[d.jsxs("div",{className:"bg-[#000000] px-4 py-3 border-b border-border flex flex-col items-center",children:[d.jsx("img",{src:"/meshai-logo.png",alt:"MeshAI",className:"w-[190px] block"}),d.jsxs("div",{className:"font-mono text-[10px] text-[#555] mt-1 self-start",children:["v",(l==null?void 0:l.version)||"..."]})]}),d.jsx("nav",{className:"flex-1 py-4",children:JV.map(x=>d.jsxs("div",{className:"mt-4",children:[d.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(_=>lQ(_,t.pathname,t.search,f))]},x.header))}),d.jsxs("div",{className:"p-5 border-t border-border",children:[d.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[d.jsx("div",{className:`w-2 h-2 rounded-full ${l!=null&&l.connected?"bg-green-500":"bg-red-500"}`}),d.jsx("span",{className:"text-xs font-sans text-[#777]",children:l!=null&&l.connected?"Connected":"Disconnected"})]}),d.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]}),d.jsxs("div",{className:"text-xs font-sans text-[#666] mt-1",children:["Uptime: ",d.jsx("span",{className:"font-mono",children:l?sQ(l.uptime_seconds):"..."})]})]})]}),d.jsxs("div",{className:"flex-1 flex flex-col overflow-hidden",children:[d.jsxs("header",{className:"h-14 flex-shrink-0 border-b border-border bg-bg-card flex items-center justify-between px-6",children:[d.jsx("h1",{className:"text-lg font-sans font-semibold text-white",children:uQ(t.pathname+t.search)}),d.jsxs("div",{className:"flex items-center gap-6",children:[d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx("div",{className:`w-2 h-2 rounded-full ${i?"bg-accent animate-pulse-slow":"bg-[#333]"}`}),d.jsx("span",{className:"text-xs font-sans text-[#777]",children:i?"Live":"Offline"})]}),d.jsxs("div",{className:"text-sm font-mono text-[#666]",children:[m," MT"]})]})]}),d.jsxs("main",{className:"flex-1 overflow-y-auto p-6",children:[d.jsx(iQ,{}),e]})]})]})}function hQ({health:e}){const t=e.score,r=e.tier,n=2*Math.PI*45,a=t/100*n;return d.jsx("div",{className:"flex flex-col items-center",children:d.jsxs("svg",{width:"140",height:"140",viewBox:"0 0 100 100",children:[d.jsx("circle",{cx:"50",cy:"50",r:"45",fill:"none",stroke:"#1e1e1e",strokeWidth:"8"}),d.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"}),d.jsx("text",{x:"50",y:"46",textAnchor:"middle",className:"font-mono font-bold",style:{fontSize:"24px",fill:"#f59e0b"},children:t.toFixed(1)}),d.jsx("text",{x:"50",y:"62",textAnchor:"middle",className:"font-sans",style:{fontSize:"10px",fill:"#444"},children:r})]})})}function Zv({label:e,value:t}){const r=n=>n>66?"bg-accent":n>33?"bg-accent-dim":"bg-red-500";return d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx("div",{className:"w-24 text-xs font-sans text-[#777] truncate",children:e}),d.jsx("div",{className:"flex-1 h-2 bg-border overflow-hidden",children:d.jsx("div",{className:`h-full ${r(t)} transition-all duration-300`,style:{width:`${t}%`}})}),d.jsx("div",{className:"w-12 text-right text-xs font-mono text-[#e0e0e0]",children:t.toFixed(1)})]})}function dQ({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:Nh,iconColor:"text-red-500"};case"warning":case"priority":return{bg:"bg-accent/5",border:"border-accent",icon:pi,iconColor:"text-accent"};case"routine":default:return{bg:"bg-[#161616]",border:"border-[#333]",icon:d1,iconColor:"text-[#777]"}}})(e.severity),n=r.icon;return d.jsxs("div",{className:`p-3 ${r.bg} border-l-2 ${r.border} flex items-start gap-3`,children:[d.jsx(n,{size:16,className:r.iconColor}),d.jsxs("div",{className:"flex-1 min-w-0",children:[d.jsx("div",{className:"text-sm font-sans font-medium text-white",children:e.message}),d.jsx("div",{className:"text-[10px] font-mono text-[#666] mt-1",children:e.timestamp||"Just now"})]})]})}function fQ({source:e}){const t=()=>e.is_loaded?e.last_error?"bg-accent":"bg-green-500":"bg-red-500";return d.jsxs("div",{className:"flex items-center gap-3 p-2 bg-bg-hover",children:[d.jsx("div",{className:`w-2 h-2 rounded-full ${t()}`}),d.jsxs("div",{className:"flex-1 min-w-0",children:[d.jsx("div",{className:"text-sm font-sans font-medium text-white truncate",children:e.name}),d.jsxs("div",{className:"text-[10px] font-sans text-[#666]",children:[e.node_count," nodes · ",e.type]})]})]})}function Gy({icon:e,label:t,value:r,subvalue:n,accent:a}){return d.jsxs("div",{className:"bg-bg-card border border-border p-3",style:a?{borderTopWidth:"2px",borderTopColor:a}:void 0,children:[d.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[d.jsx(e,{size:14,style:{color:a||"#333"}}),d.jsx("span",{className:"text-[9px] font-sans uppercase tracking-widest text-[#666]",children:t})]}),d.jsx("div",{className:"font-mono text-xl",style:{color:a||"#e0e0e0"},children:r}),n&&d.jsx("div",{className:"text-[9px] font-sans mt-1 text-[#666]",children:n})]})}function vQ({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 d.jsxs("div",{className:"bg-bg-card border border-border p-4 flex flex-col h-full",children:[d.jsxs("h2",{className:"text-[10px] font-sans uppercase tracking-widest text-[#666] mb-3 flex items-center gap-2",children:[d.jsx(rM,{size:14}),"RF Propagation"]}),d.jsx("div",{className:"flex-1 flex items-center justify-center",children:d.jsx("div",{className:"text-center py-8",children:d.jsx("div",{className:"font-sans text-[#666]",children:"No band conditions data"})})})]});const a=["80-40m","30-20m","17-15m","12-10m"];return d.jsxs("div",{className:"bg-bg-card border border-border p-4 flex flex-col h-full",children:[d.jsxs("h2",{className:"text-[10px] font-sans uppercase tracking-widest text-[#666] mb-3 flex items-center gap-2",children:[d.jsx(rM,{size:14}),"RF Propagation"]}),d.jsxs("div",{className:"text-center mb-3",children:[d.jsx("span",{className:"text-lg",children:n(e.slot_label)}),d.jsx("span",{className:"text-sm font-sans text-[#777] ml-2",children:e.slot_label})]}),d.jsx("div",{className:"text-[10px] font-sans uppercase tracking-widest text-[#666] mb-2 flex items-center gap-1",children:"📡 Band Conditions"}),d.jsx("div",{className:"space-y-1.5",children:a.map(i=>{var s;const o=(s=e.ratings)==null?void 0:s[i];return d.jsxs("div",{className:"flex items-center justify-between px-2 py-1.5 bg-bg-hover",children:[d.jsx("span",{className:"text-sm font-mono text-[#777]",children:i}),d.jsxs("span",{className:"text-sm flex items-center gap-2",children:[d.jsx("span",{className:`inline-block w-2 h-2 rounded-full ${t(o)}`}),d.jsx("span",{className:`font-sans ${r(o)}`,children:o||"—"})]})]},i)})}),d.jsxs("div",{className:"mt-auto pt-3 border-t border-border text-[10px] font-sans text-[#666]",children:[e.source&&d.jsx("span",{children:e.source==="swpc_local"?"SWPC":"HamQSL"}),e.sent_at&&d.jsx("span",{className:"font-mono ml-2",children:new Date(e.sent_at*1e3).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})})]})]})}const Xj=[{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 pQ(){var c;const[e,t]=E.useState("wam"),[r,n]=E.useState(!1),[a,i]=E.useState(!1);E.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=Xj.find(h=>h.code===e))==null?void 0:c.label)||e;return d.jsxs("div",{className:"bg-bg-card border border-border p-4 flex flex-col",children:[d.jsxs("div",{className:"flex items-center justify-between mb-3",children:[d.jsxs("h2",{className:"text-[10px] font-sans uppercase tracking-widest text-[#666] flex items-center gap-2",children:[d.jsx(bi,{size:14}),"Tropo Forecast (Hepburn)"]}),d.jsxs("div",{className:"flex items-center gap-2",children:[a&&d.jsx("span",{className:"text-xs font-sans text-[#666]",children:"saving..."}),d.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:Xj.map(h=>d.jsx("option",{value:h.code,children:h.label},h.code))})]})]}),d.jsxs("div",{className:"text-xs font-sans text-[#666] mb-2",children:[u," — 6-day forecast"]}),r?d.jsx("div",{className:"flex items-center justify-center h-48 text-[#666] text-sm font-sans",children:"Failed to load forecast image"}):d.jsx("img",{src:l,alt:`Hepburn tropo forecast — ${u}`,className:"w-full border border-border",onError:()=>n(!0)}),d.jsxs("div",{className:"text-[10px] font-sans text-[#666] mt-2",children:["Source: ",d.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 gQ={nws:{icon:kh,color:"text-sky-400",label:"NWS"},swpc:{icon:HV,color:"text-accent",label:"SWPC"},ducting:{icon:bi,color:"text-sky-500",label:"Tropo"},nifc:{icon:Rm,color:"text-red-500",label:"NIFC"},firms:{icon:f1,color:"text-red-400",label:"FIRMS"},avalanche:{icon:kf,color:"text-[#777]",label:"Avy"},usgs:{icon:c1,color:"text-sky-400",label:"USGS"},traffic:{icon:u1,color:"text-[#777]",label:"Traffic"},roads:{icon:PV,color:"text-accent-dim",label:"511"},ipaws:{icon:Ck,color:"text-red-500",label:"IPAWS"}},qj={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 mQ({event:e,isLocal:t}){var h;const r=gQ[e.source]||{icon:d1,color:"text-[#777]",label:e.source},n=r.icon,a=qj[(h=e.severity)==null?void 0:h.toLowerCase()]||qj.info,i=f=>{const v=new Date(f*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 f=s.replace(/ County/g,"").split(";")[0];u=`${o} — ${f}`}else o&&(u=o);const c=l?l.split(". ")[0]:null;return d.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:[d.jsx(n,{size:14,className:`mt-0.5 flex-shrink-0 ${r.color}`}),d.jsxs("div",{className:"flex-1 min-w-0",children:[d.jsxs("div",{className:"flex items-center gap-2 mb-0.5",children:[d.jsx("span",{className:`px-1.5 py-0.5 text-[10px] font-sans uppercase tracking-wide border ${a}`,children:e.severity||"info"}),t&&d.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"}),d.jsx("span",{className:"text-[10px] font-sans text-[#666]",children:r.label}),d.jsx("span",{className:"text-[10px] font-mono text-[#666] ml-auto",children:i(e.fetched_at)})]}),d.jsx("div",{className:`text-sm font-sans font-medium truncate ${t?"text-white":"text-[#e0e0e0]"}`,children:u}),c&&d.jsx("div",{className:"text-[10px] font-sans text-[#666] truncate mt-0.5",children:c})]})]})}function yQ({events:e,envStatus:t,embedded:r}){const n={immediate:0,priority:1,routine:2},a=E.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,f=c.is_local?1:0;if(h!==f)return f-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=E.useMemo(()=>{if(!(t!=null&&t.feeds))return null;const s=t.feeds.length,l=t.feeds.filter(f=>f.is_loaded&&!f.last_error).length,u=t.feeds.filter(f=>f.last_error).map(f=>f.source),c=Math.max(...t.feeds.map(f=>f.last_fetch||0)),h=c?Math.floor(Date.now()/1e3-c):null;return{total:s,active:l,errors:u,secAgo:h}},[t]),o=d.jsxs(d.Fragment,{children:[a.length>0?d.jsx("div",{className:"flex-1 overflow-y-auto max-h-80 pr-1 -mr-1",children:a.map((s,l)=>d.jsx(mQ,{event:s,isLocal:s.is_local},s.event_id||l))}):d.jsx("div",{className:"flex-1 flex items-center justify-center",children:d.jsxs("div",{className:"text-center py-8",children:[d.jsx(bk,{size:24,className:"text-green-500 mx-auto mb-2"}),d.jsx("div",{className:"font-sans text-[#777]",children:"No active events"}),d.jsx("div",{className:"text-[10px] font-sans text-[#666]",children:"All clear"})]})}),i&&d.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:[d.jsx("span",{className:"font-mono",children:i.active})," of ",d.jsx("span",{className:"font-mono",children:i.total})," feeds active",i.secAgo!==null&&d.jsxs(d.Fragment,{children:[" · Last update ",d.jsxs("span",{className:"font-mono",children:[i.secAgo,"s"]})," ago"]}),i.errors.length>0&&d.jsxs("span",{className:"text-red-500",children:[" · ",i.errors.join(", "),": error"]})]})]});return r?d.jsx("div",{className:"flex flex-col h-full",children:o}):d.jsxs("div",{className:"bg-bg-card border border-border p-4 flex flex-col h-full",children:[d.jsxs("h2",{className:"text-[10px] font-sans uppercase tracking-widest text-[#666] mb-3 flex items-center gap-2",children:[d.jsx(Oo,{size:14}),"Live Event Feed"]}),o]})}function xQ(){var S,C,M,A,k,I;const[e,t]=E.useState(null),[r,n]=E.useState([]),[a,i]=E.useState([]),[o,s]=E.useState(null),[l,u]=E.useState([]),[c,h]=E.useState(null),[f,v]=E.useState("alerts"),[g,m]=E.useState(!0),[y,x]=E.useState(null),{lastHealth:_,lastMessage:w}=qV();return E.useEffect(()=>{Promise.all([LJ(),DJ(),OJ(),$V(),ZV().catch(()=>[]),BJ().catch(()=>null)]).then(([P,j,z,D,B,H])=>{t(P),n(j),i(z),s(D),u(B),h(H),m(!1),document.title="Dashboard — MeshAI"}).catch(P=>{x(P.message),m(!1),document.title="Dashboard — MeshAI"})},[]),E.useEffect(()=>{_&&t(_)},[_]),E.useEffect(()=>{(w==null?void 0:w.type)==="env_update"&&w.event&&u(P=>{const j=w.event,z=P.filter(D=>D.event_id!==j.event_id);return[j,...z].slice(0,100)})},[w]),g?d.jsx("div",{className:"flex items-center justify-center h-64",children:d.jsx("div",{className:"font-sans text-[#777]",children:"Loading..."})}):y?d.jsx("div",{className:"flex items-center justify-center h-64",children:d.jsxs("div",{className:"font-sans text-red-500",children:["Error: ",y]})}):d.jsxs("div",{className:"space-y-4",children:[d.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-4",children:[d.jsxs("div",{className:"bg-bg-card border border-border p-4",children:[d.jsx("h2",{className:"text-[10px] font-sans uppercase tracking-widest text-[#666] mb-3",children:"Mesh Health"}),e&&d.jsxs(d.Fragment,{children:[d.jsx(hQ,{health:e}),d.jsxs("div",{className:"mt-4 space-y-2",children:[d.jsx(Zv,{label:"Infrastructure",value:((S=e.pillars)==null?void 0:S.infrastructure)??0}),d.jsx(Zv,{label:"Utilization",value:((C=e.pillars)==null?void 0:C.utilization)??0}),d.jsx(Zv,{label:"Coverage",value:((M=e.pillars)==null?void 0:M.coverage)??0}),d.jsx(Zv,{label:"Behavior",value:((A=e.pillars)==null?void 0:A.behavior)??0}),d.jsx(Zv,{label:"Power",value:((k=e.pillars)==null?void 0:k.power)??0})]})]})]}),d.jsxs("div",{className:"lg:col-span-2 space-y-4",children:[d.jsxs("div",{className:"bg-bg-card border border-border p-4",children:[d.jsxs("div",{className:"flex items-center gap-4 mb-3 border-b border-border",children:[d.jsx("button",{onClick:()=>v("alerts"),className:`py-2.5 -mb-px text-[10px] font-sans uppercase tracking-widest transition-colors border-b ${f==="alerts"?"border-accent text-white":"border-transparent text-[#777]"}`,children:"Active Alerts"}),d.jsx("button",{onClick:()=>v("feed"),className:`py-2.5 -mb-px text-[10px] font-sans uppercase tracking-widest transition-colors border-b ${f==="feed"?"border-accent text-white":"border-transparent text-[#777]"}`,children:"Event Feed"})]}),f==="alerts"?d.jsx(d.Fragment,{children:a.length>0?d.jsx("div",{className:"space-y-2 max-h-48 overflow-y-auto",children:a.map((P,j)=>d.jsx(dQ,{alert:P},j))}):(()=>{const P=l.filter(j=>j.severity==="immediate"||j.severity==="priority").sort((j,z)=>{const D={immediate:0,priority:1},B=(D[j.severity]??2)-(D[z.severity]??2);return B!==0?B:(z.fetched_at||0)-(j.fetched_at||0)}).slice(0,5);return P.length>0?d.jsx("div",{className:"space-y-2 max-h-48 overflow-y-auto",children:P.map((j,z)=>{const D=j.severity==="immediate"?{bg:"bg-red-500/5",border:"border-red-500",icon:Nh,iconColor:"text-red-500"}:{bg:"bg-accent/5",border:"border-accent",icon:pi,iconColor:"text-accent"},B=D.icon;return d.jsxs("div",{className:`p-3 ${D.bg} border-l-2 ${D.border} flex items-start gap-3`,children:[d.jsx(B,{size:16,className:D.iconColor}),d.jsxs("div",{className:"flex-1 min-w-0",children:[d.jsxs("div",{className:"flex items-center gap-2",children:[d.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"}),d.jsx("span",{className:"text-[10px] font-sans text-[#666]",children:j.severity})]}),d.jsx("div",{className:"text-sm font-sans font-medium text-white mt-1",children:j.headline}),d.jsxs("div",{className:"text-[10px] font-mono text-[#666] mt-1",children:[j.source," · ",new Date(j.fetched_at*1e3).toLocaleTimeString()]})]})]},j.event_id||z)})}):d.jsxs("div",{className:"flex items-center gap-2 text-[#777] py-4",children:[d.jsx(bk,{size:16,className:"text-green-500"}),d.jsx("span",{className:"font-sans",children:"No active alerts"})]})})()}):d.jsx(yQ,{events:l,envStatus:o,embedded:!0})]}),d.jsxs("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-3",children:[d.jsx(Gy,{icon:bi,label:"Nodes Online",value:(e==null?void 0:e.total_nodes)||0,accent:"#22c55e",subvalue:`${(e==null?void 0:e.unlocated_count)||0} unlocated`}),d.jsx(Gy,{icon:jV,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"}),d.jsx(Gy,{icon:Oo,label:"Utilization",value:`${((I=e==null?void 0:e.util_percent)==null?void 0:I.toFixed(1))||0}%`,accent:"#f59e0b",subvalue:`${(e==null?void 0:e.flagged_nodes)||0} flagged`}),d.jsx(Gy,{icon:av,label:"Regions",value:(e==null?void 0:e.total_regions)||0,accent:"#333333",subvalue:`${(e==null?void 0:e.battery_warnings)||0} battery warnings`})]})]})]}),d.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-4",children:[d.jsxs("div",{className:"bg-bg-card border border-border p-4",children:[d.jsxs("h2",{className:"text-[10px] font-sans uppercase tracking-widest text-[#666] mb-3",children:["Mesh Sources (",d.jsx("span",{className:"font-mono",children:r.length}),")"]}),r.length>0?d.jsx("div",{className:"space-y-1",children:r.map((P,j)=>d.jsx(fQ,{source:P},j))}):d.jsx("div",{className:"font-sans text-[#666] py-4",children:"No sources configured"})]}),d.jsx(vQ,{bandConditions:c}),d.jsx(pQ,{})]})]})}/*! ***************************************************************************** -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 nM=function(e,t){return nM=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])},nM(e,t)};function q(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");nM(e,t);function r(){this.constructor=e}e.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)}var rg=function(){return rg=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"?xt.worker=!0:!xt.hasGlobalWindow||"Deno"in window||typeof navigator<"u"&&typeof navigator.userAgent=="string"&&navigator.userAgent.indexOf("Node.js")>-1?(xt.node=!0,xt.svgSupported=!0):SQ(navigator.userAgent,xt);function SQ(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 Tk=12,QV="sans-serif",Fs=Tk+"px "+QV,CQ=20,TQ=100,MQ="007LLmW'55;N0500LLLLLLLLLL00NNNLzWW\\\\WQb\\0FWLg\\bWb\\WQ\\WrWWQ000CL5LLFLL0LL**F*gLLLL5F0LF\\FFF5.5N";function AQ(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=PQ&&(dS=0),dS++}function m1(){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(){R(r,function(c){c.parentNode&&c.parentNode.removeChild(c)})},r}function KQ(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,f=c.left,v=c.top;o.push(f,v),l=l&&i&&f===i[h]&&v===i[h+1],s.push(e[u].offsetLeft,e[u].offsetTop)}return l&&a?a:(t.srcCoords=o,t[n]=r?eE(s,o):eE(o,s))}function cG(e){return e.nodeName.toUpperCase()==="CANVAS"}var JQ=/([&<>"'])/g,QQ={"&":"&","<":"<",">":">",'"':""","'":"'"};function On(e){return e==null?"":(e+"").replace(JQ,function(t,r){return QQ[r]})}var eee=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,vS=[],tee=xt.browser.firefox&&+xt.browser.version.split(".")[0]<39;function lM(e,t,r,n){return r=r||{},n?tE(e,t,r):tee&&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):tE(e,t,r),r}function tE(e,t,r){if(xt.domSupported&&e.getBoundingClientRect){var n=t.clientX,a=t.clientY;if(cG(e)){var i=e.getBoundingClientRect();r.zrX=n-i.left,r.zrY=a-i.top;return}else if(sM(vS,e,n,a)){r.zrX=vS[0],r.zrY=vS[1];return}}r.zrX=r.zrY=0}function Pk(e){return e||window.event}function Ja(e,t,r){if(t=Pk(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&&lM(e,o,t,r)}else{lM(e,t,t,r);var i=ree(t);t.zrDelta=i?i/120:-(t.detail||0)/3}var s=t.button;return t.which==null&&s!==void 0&&eee.test(t.type)&&(t.which=s&1?1:s&2?3:s&4?2:0),t}function ree(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 uM(e,t,r,n){e.addEventListener(t,r,n)}function nee(e,t,r,n){e.removeEventListener(t,r,n)}var Vs=function(e){e.preventDefault(),e.stopPropagation(),e.cancelBubble=!0};function rE(e){return e.which===2||e.which===3}var aee=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=nE(n)/nE(a);!isFinite(i)&&(i=1),t.pinchScale=i;var o=iee(n);return t.pinchX=o[0],t.pinchY=o[1],{type:"pinch",target:e[0].target,event:t}}}}};function ar(){return[1,0,0,1,0,0]}function Ih(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e[4]=0,e[5]=0,e}function au(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 Ea(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 Hi(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 _1(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 Oa(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 hG(e){var t=ar();return au(t,e),t}const oee=Object.freeze(Object.defineProperty({__proto__:null,clone:hG,copy:au,create:ar,identity:Ih,invert:Oa,mul:Ea,rotate:Js,scale:_1,translate:Hi},Symbol.toStringTag,{value:"Module"}));var Oe=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}(),kc=Math.min,Xd=Math.max,cM=Math.abs,aE=["x","y"],see=["width","height"],zu=new Oe,Bu=new Oe,Fu=new Oe,Vu=new Oe,Aa=vG(),Dp=Aa.minTv,hM=Aa.maxTv,og=[0,0],je=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=kc(t.x,this.x),n=kc(t.y,this.y);isFinite(this.x)&&isFinite(this.width)?this.width=Xd(t.x+t.width,this.x+this.width)-r:this.width=t.width,isFinite(this.y)&&isFinite(this.height)?this.height=Xd(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 dG(ar(),this,t)},e.prototype.intersect=function(t,r,n){return e.intersect(this,t,r,n)},e.intersect=function(t,r,n,a){n&&Oe.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(uee,t.x,t.y,t.width,t.height)),r instanceof e||(r=gS(cee,r.x,r.y,r.width,r.height));var s=!!n;Aa.reset(a,s);var l=Aa.touchThreshold,u=t.x+l,c=t.x+t.width-l,h=t.y+l,f=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>f||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){If(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&&If(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}zu.x=Fu.x=r.x,zu.y=Vu.y=r.y,Bu.x=Vu.x=r.x+r.width,Bu.y=Fu.y=r.y+r.height,zu.transform(n),Vu.transform(n),Bu.transform(n),Fu.transform(n),t.x=kc(zu.x,Bu.x,Fu.x,Vu.x),t.y=kc(zu.y,Bu.y,Fu.y,Vu.y);var l=Xd(zu.x,Bu.x,Fu.x,Vu.x),u=Xd(zu.y,Bu.y,Fu.y,Vu.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=Ih(t||[]),Hi(t,t,Ns(mS,-r.x,-r.y)),_1(t,t,Ns(mS,a,i)),Hi(t,t,Ns(mS,n.x,n.y)),t},e}(),b1=je.create,gS=je.set,If=je.copy,dG=je.calculateTransform,fG=je.applyTransform,lee=je.contain,uee=new je(0,0,0,0),cee=new je(0,0,0,0),mS=[];function iE(e,t,r,n,a,i,o,s){var l=cM(t-r),u=cM(n-e),c=kc(l,u),h=aE[a],f=aE[1-a],v=see[a];t=u||!Aa.bidirectional)&&(Dp[h]=-u,Dp[f]=0,Aa.useDir&&Aa.calcDirMTV())))}function vG(){var e=0,t=new Oe,r=new Oe,n={minTv:new Oe,maxTv:new Oe,useDir:!1,dirMinTv:new Oe,touchThreshold:0,bidirectional:!0,negativeSize:!1,reset:function(i,o){n.touchThreshold=0,i&&i.touchThreshold!=null&&(n.touchThreshold=Xd(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 f=i[h];f!==a&&!f.ignore&&!f.ignoreCoarsePointer&&(!f.parent||!f.parent.ignoreCoarsePointer)&&(yS.copy(f.getBoundingRect()),f.transform&&yS.applyTransform(f.transform),yS.intersect(c)&&s.push(f))}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 pee(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?pG:!0}return!1}function oE(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=pee(o,r,n))&&(!t.topTarget&&(t.topTarget=o),s!==pG)){t.target=o;break}}}function mG(e,t,r){var n=e.painter;return t<0||t>n.getWidth()||r<0||r>n.getHeight()}var yG=32,Xv=7;function gee(e){for(var t=0;e>=yG;)t|=e&1,e>>=1;return e+t}function sE(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 mee(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 yee(e,t){var r=Xv,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]=Xv||A>=Xv);if(k)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 k=0,I=0,P=!1;do if(t(o[w],e[_])<0){if(e[S--]=e[_--],k++,I=0,--g===0){P=!0;break}}else if(e[S--]=o[w--],I++,k=0,--y===1){P=!0;break}while((k|I)=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(I=y-xS(e[_],o,0,y,y-1,t),I!==0){for(S-=I,w-=I,y-=I,M=S+1,C=w+1,x=0;x=Xv||I>=Xv);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),lE(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 da=1,jp=2,Dd=4,uE=!1;function bS(){uE||(uE=!0,console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors"))}function cE(e,t){return e.zlevel===t.zlevel?e.z===t.z?e.z2-t.z2:e.z-t.z:e.zlevel-t.zlevel}var xee=function(){function e(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=cE}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}(),A_;A_=xt.hasGlobalWindow&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(e){return setTimeout(e,16)};var sg={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-sg.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?sg.bounceIn(e*2)*.5:sg.bounceOut(e*2-1)*.5+.5}},Uy=Math.pow,Zl=Math.sqrt,N_=1e-8,xG=1e-4,hE=Zl(3),Wy=1/3,yo=wu(),ai=wu(),hf=wu();function Il(e){return e>-N_&&eN_||e<-N_}function $r(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 dE(e,t,r,n,a){var i=1-a;return 3*(((t-e)*i+2*(r-t)*a)*i+(n-r)*a*a)}function k_(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,f=l*l-3*s*u,v=0;if(Il(c)&&Il(h))if(Il(s))i[0]=0;else{var g=-l/s;g>=0&&g<=1&&(i[v++]=g)}else{var m=h*h-4*c*f;if(Il(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 _=Zl(m),w=c*s+1.5*o*(-h+_),S=c*s+1.5*o*(-h-_);w<0?w=-Uy(-w,Wy):w=Uy(w,Wy),S<0?S=-Uy(-S,Wy):S=Uy(S,Wy);var g=(-s-(w+S))/(3*o);g>=0&&g<=1&&(i[v++]=g)}else{var C=(2*c*s-3*o*h)/(2*Zl(c*c*c)),M=Math.acos(C)/3,A=Zl(c),k=Math.cos(M),g=(-s-2*A*k)/(3*o),x=(-s+A*(k+hE*Math.sin(M)))/(3*o),I=(-s+A*(k-hE*Math.sin(M)))/(3*o);g>=0&&g<=1&&(i[v++]=g),x>=0&&x<=1&&(i[v++]=x),I>=0&&I<=1&&(i[v++]=I)}}return v}function bG(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(Il(o)){if(_G(i)){var u=-s/i;u>=0&&u<=1&&(a[l++]=u)}}else{var c=i*i-4*o*s;if(Il(c))a[0]=-i/(2*o);else if(c>0){var h=Zl(c),u=(-i+h)/(2*o),f=(-i-h)/(2*o);u>=0&&u<=1&&(a[l++]=u),f>=0&&f<=1&&(a[l++]=f)}}return l}function iu(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 wG(e,t,r,n,a,i,o,s,l,u,c){var h,f=.005,v=1/0,g,m,y,x;yo[0]=l,yo[1]=u;for(var _=0;_<1;_+=.05)ai[0]=$r(e,r,a,o,_),ai[1]=$r(t,n,i,s,_),y=$l(yo,ai),y=0&&y=0&&u<=1&&(a[l++]=u)}}else{var c=o*o-4*i*s;if(Il(c)){var u=-o/(2*i);u>=0&&u<=1&&(a[l++]=u)}else if(c>0){var h=Zl(c),u=(-o+h)/(2*i),f=(-o-h)/(2*i);u>=0&&u<=1&&(a[l++]=u),f>=0&&f<=1&&(a[l++]=f)}}return l}function SG(e,t,r){var n=e+r-2*t;return n===0?.5:(e-t)/n}function Gg(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 CG(e,t,r,n,a,i,o,s,l){var u,c=.005,h=1/0;yo[0]=o,yo[1]=s;for(var f=0;f<1;f+=.05){ai[0]=an(e,r,a,f),ai[1]=an(t,n,i,f);var v=$l(yo,ai);v=0&&v=1?1:k_(0,n,i,1,l,s)&&$r(0,a,o,1,s[0])}}}var Cee=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||hr,this.ondestroy=t.ondestroy||hr,this.onrestart=t.onrestart||hr,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=Le(t)?t:sg[t]||Dk(t)},e}(),TG=function(){function e(t){this.value=t}return e}(),Tee=function(){function e(){this._len=0}return e.prototype.insert=function(t){var r=new TG(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}(),Pf=function(){function e(t){this._list=new Tee,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 TG(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}(),fE={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 zi(e){return e=Math.round(e),e<0?0:e>255?255:e}function Mee(e){return e=Math.round(e),e<0?0:e>360?360:e}function Hg(e){return e<0?0:e>1?1:e}function Ax(e){var t=e;return t.length&&t.charAt(t.length-1)==="%"?zi(parseFloat(t)/100*255):zi(parseInt(t,10))}function ks(e){var t=e;return t.length&&t.charAt(t.length-1)==="%"?Hg(parseFloat(t)/100):Hg(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 Pl(e,t,r){return e+(t-e)*r}function qa(e,t,r,n,a){return e[0]=t,e[1]=r,e[2]=n,e[3]=a,e}function fM(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}var MG=new Pf(20),$y=null;function ld(e,t){$y&&fM($y,t),$y=MG.put(e,$y||t.slice())}function Bn(e,t){if(e){t=t||[];var r=MG.get(e);if(r)return fM(t,r);e=e+"";var n=e.replace(/ /g,"").toLowerCase();if(n in fE)return fM(t,fE[n]),ld(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)){qa(t,0,0,0,1);return}return qa(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),ld(e,t),t}else if(a===7||a===9){var i=parseInt(n.slice(1,7),16);if(!(i>=0&&i<=16777215)){qa(t,0,0,0,1);return}return qa(t,(i&16711680)>>16,(i&65280)>>8,i&255,a===9?parseInt(n.slice(7),16)/255:1),ld(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?qa(t,+u[0],+u[1],+u[2],1):qa(t,0,0,0,1);c=ks(u.pop());case"rgb":if(u.length>=3)return qa(t,Ax(u[0]),Ax(u[1]),Ax(u[2]),u.length===3?c:ks(u[3])),ld(e,t),t;qa(t,0,0,0,1);return;case"hsla":if(u.length!==4){qa(t,0,0,0,1);return}return u[3]=ks(u[3]),vM(u,t),ld(e,t),t;case"hsl":if(u.length!==3){qa(t,0,0,0,1);return}return vM(u,t),ld(e,t),t;default:return}}qa(t,0,0,0,1)}}function vM(e,t){var r=(parseFloat(e[0])%360+360)%360/360,n=ks(e[1]),a=ks(e[2]),i=a<=.5?a*(n+1):a+n-a*n,o=a*2-i;return t=t||[],qa(t,zi(wS(o,i,r+1/3)*255),zi(wS(o,i,r)*255),zi(wS(o,i,r-1/3)*255),1),e.length===4&&(t[3]=e[3]),t}function Aee(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,f=((i-n)/6+o/2)/o;t===i?l=f-h:r===i?l=1/3+c-f: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 L_(e,t){var r=Bn(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 ci(r,r.length===4?"rgba":"rgb")}}function Nee(e){var t=Bn(e);if(t)return((1<<24)+(t[0]<<16)+(t[1]<<8)+ +t[2]).toString(16).slice(1)}function lg(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]=zi(Pl(o[0],s[0],l)),r[1]=zi(Pl(o[1],s[1],l)),r[2]=zi(Pl(o[2],s[2],l)),r[3]=Hg(Pl(o[3],s[3],l)),r}}var kee=lg;function jk(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=Bn(t[a]),s=Bn(t[i]),l=n-a,u=ci([zi(Pl(o[0],s[0],l)),zi(Pl(o[1],s[1],l)),zi(Pl(o[2],s[2],l)),Hg(Pl(o[3],s[3],l))],"rgba");return r?{color:u,leftIndex:a,rightIndex:i,value:n}:u}}var Lee=jk;function Ls(e,t,r,n){var a=Bn(e);if(e)return a=Aee(a),t!=null&&(a[0]=Mee(Le(t)?t(a[0]):t)),r!=null&&(a[1]=ks(Le(r)?r(a[1]):r)),n!=null&&(a[2]=ks(Le(n)?n(a[2]):n)),ci(vM(a),"rgba")}function Ug(e,t){var r=Bn(e);if(r&&t!=null)return r[3]=Hg(t),ci(r,"rgba")}function ci(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 Wg(e,t){var r=Bn(e);return r?(.299*r[0]+.587*r[1]+.114*r[2])*r[3]/255+(1-r[3])*t:0}function Iee(){return ci([Math.round(Math.random()*255),Math.round(Math.random()*255),Math.round(Math.random()*255)],"rgb")}var vE=new Pf(100);function I_(e){if(ve(e)){var t=vE.get(e);return t||(t=L_(e,-.1),vE.put(e,t)),t}else if(Om(e)){var r=te({},e);return r.colorStops=oe(e.colorStops,function(n){return{offset:n.offset,color:L_(n.color,-.1)}}),r}return e}const Pee=Object.freeze(Object.defineProperty({__proto__:null,fastLerp:lg,fastMapToColor:kee,lerp:jk,lift:L_,liftColor:I_,lum:Wg,mapToColor:Lee,modifyAlpha:Ug,modifyHSL:Ls,parse:Bn,parseCssFloat:ks,parseCssInt:Ax,random:Iee,stringify:ci,toHex:Nee},Symbol.toStringTag,{value:"Module"}));var P_=Math.round;function $g(e){var t;if(!e||e==="transparent")e="none";else if(typeof e=="string"&&e.indexOf("rgba")>-1){var r=Bn(e);r&&(e="rgb("+r[0]+","+r[1]+","+r[2]+")",t=r[3])}return{color:e,opacity:t??1}}var pE=1e-4;function Dl(e){return e-pE}function Zy(e){return P_(e*1e3)/1e3}function pM(e){return P_(e*1e4)/1e4}function Dee(e){return"matrix("+Zy(e[0])+","+Zy(e[1])+","+Zy(e[2])+","+Zy(e[3])+","+pM(e[4])+","+pM(e[5])+")"}var jee={left:"start",right:"end",center:"middle",middle:"middle"};function Eee(e,t,r){return r==="top"?e+=t/2:r==="bottom"&&(e-=t/2),e}function Ree(e){return e&&(e.shadowBlur||e.shadowOffsetX||e.shadowOffsetY)}function Oee(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 AG(e){return e&&!!e.image}function zee(e){return e&&!!e.svgElement}function Ek(e){return AG(e)||zee(e)}function NG(e){return e.type==="linear"}function kG(e){return e.type==="radial"}function LG(e){return e&&(e.type==="linear"||e.type==="radial")}function w1(e){return"url(#"+e+")"}function IG(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 PG(e){var t=e.x||0,r=e.y||0,n=(e.rotation||0)*ng,a=Te(e.scaleX,1),i=Te(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("+P_(o*ng)+"deg, "+P_(s*ng)+"deg)"),l.join(" ")}var Bee=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}}(),gM=Array.prototype.slice;function ms(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=mE,l=r;if(_n(r)){var u=Hee(r);s=u,(u===1&&!Tt(r[0])||u===2&&!Tt(r[0][0]))&&(o=!0)}else if(Tt(r)&&!yn(r))s=Xy;else if(ve(r))if(!isNaN(+r))s=Xy;else{var c=Bn(r);c&&(l=c,s=Ep)}else if(Om(r)){var h=te({},l);h.colorStops=oe(r.colorStops,function(v){return{offset:v.offset,color:Bn(v.color)}}),NG(r)?s=mM:kG(r)&&(s=yM),l=h}i===0?this.valType=s:(s!==this.valType||s===mE)&&(o=!0),this.discrete=this.discrete||o;var f={time:t,value:l,rawValue:r,percent:0};return n&&(f.easing=n,f.easingFunc=Le(n)?n:sg[n]||Dk(n)),a.push(f),f},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=qy(a),u=yE(a),c=0;c=0&&!(o[c].percent<=r);c--);c=f(c,s-2)}else{for(c=h;cr);c++);c=f(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:f((r-v.percent)/y,1);g.easingFunc&&(x=g.easingFunc(x));var _=n?this._additiveValue:u?qv:t[l];if((qy(i)||u)&&!_&&(_=this._additiveValue=[]),this.discrete)t[l]=x<1?v.rawValue:g.rawValue;else if(qy(i))i===kx?SS(_,v[a],g[a],x):Fee(_,v[a],g[a],x);else if(yE(i)){var w=v[a],S=g[a],C=i===mM;t[l]={type:C?"linear":"radial",x:ms(w.x,S.x,x),y:ms(w.y,S.y,x),colorStops:oe(w.colorStops,function(A,k){var I=S.colorStops[k];return{offset:ms(A.offset,I.offset,x),color:Nx(SS([],A.color,I.color,x))}}),global:S.global},C?(t[l].x2=ms(w.x2,S.x2,x),t[l].y2=ms(w.y2,S.y2,x)):t[l].r=ms(w.r,S.r,x)}else if(u)SS(_,v[a],g[a],x),n||(t[l]=Nx(_));else{var M=ms(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===Xy?t[n]=t[n]+a:r===Ep?(Bn(t[n],qv),Yy(qv,qv,a,1),t[n]=Nx(qv)):r===kx?Yy(t[n],t[n],a,1):r===DG&&gE(t[n],t[n],a,1)},e}(),Rk=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){m1("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,mt(r),n)},e.prototype.whenWithKeys=function(t,r,n,a){for(var i=this._tracks,o=0;o0&&l.addKeyframe(0,ug(u),a),this._trackKeys.push(s)}l.addKeyframe(t,ug(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 qd(){return new Date().getTime()}var Wee=function(e){q(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=qd()-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&&(A_(n),!r._paused&&r.update())}A_(n)},t.prototype.start=function(){this._running||(this._time=qd(),this._pausedTime=0,this._startLoop())},t.prototype.stop=function(){this._running=!1},t.prototype.pause=function(){this._paused||(this._pauseStart=qd(),this._paused=!0)},t.prototype.resume=function(){this._paused&&(this._pausedTime+=qd()-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 Rk(r,n.loop);return this.addAnimator(a),a},t}(wi),$ee=300,CS=xt.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}}(),xE={mouse:["mousemove","mouseup"],pointer:["pointermove","pointerup"]},_E=!1;function xM(e){var t=e.pointerType;return t==="pen"||t==="touch"}function Zee(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 Yee(e,t){return Ja(e.dom,new Xee(e,t),!0)}function jG(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 Xee=function(){function e(t,r){this.stopPropagation=hr,this.stopImmediatePropagation=hr,this.preventDefault=hr,this.type=r.type,this.target=this.currentTarget=t.dom,this.pointerType=r.pointerType,this.clientX=r.clientX,this.clientY=r.clientY}return e}(),Li={mousedown:function(e){e=Ja(this.dom,e),this.__mayPointerCapture=[e.zrX,e.zrY],this.trigger("mousedown",e)},mousemove:function(e){e=Ja(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=Ja(this.dom,e),this.__togglePointerCapture(!1),this.trigger("mouseup",e)},mouseout:function(e){e=Ja(this.dom,e);var t=e.toElement||e.relatedTarget;jG(this,t)||(this.__pointerCapturing&&(e.zrEventControl="no_globalout"),this.trigger("mouseout",e))},wheel:function(e){_E=!0,e=Ja(this.dom,e),this.trigger("mousewheel",e)},mousewheel:function(e){_E||(e=Ja(this.dom,e),this.trigger("mousewheel",e))},touchstart:function(e){e=Ja(this.dom,e),MS(e),this.__lastTouchMoment=new Date,this.handler.processGesture(e,"start"),Li.mousemove.call(this,e),Li.mousedown.call(this,e)},touchmove:function(e){e=Ja(this.dom,e),MS(e),this.handler.processGesture(e,"change"),Li.mousemove.call(this,e)},touchend:function(e){e=Ja(this.dom,e),MS(e),this.handler.processGesture(e,"end"),Li.mouseup.call(this,e),+new Date-+this.__lastTouchMoment<$ee&&Li.click.call(this,e)},pointerdown:function(e){Li.mousedown.call(this,e)},pointermove:function(e){xM(e)||Li.mousemove.call(this,e)},pointerup:function(e){Li.mouseup.call(this,e)},pointerout:function(e){xM(e)||Li.mouseout.call(this,e)}};R(["click","dblclick","contextmenu"],function(e){Li[e]=function(t){t=Ja(this.dom,t),this.trigger(e,t)}});var _M={pointermove:function(e){xM(e)||_M.mousemove.call(this,e)},pointerup:function(e){_M.mouseup.call(this,e)},mousemove:function(e){this.trigger("mousemove",e)},mouseup:function(e){var t=this.__pointerCapturing;this.__togglePointerCapture(!1),this.trigger("mouseup",e),t&&(e.zrEventControl="only_globalout",this.trigger("mouseout",e))}};function qee(e,t){var r=t.domHandlers;xt.pointerEventsSupported?R(TS.pointer,function(n){Lx(t,n,function(a){r[n].call(e,a)})}):(xt.touchEventsSupported&&R(TS.touch,function(n){Lx(t,n,function(a){r[n].call(e,a),Zee(t)})}),R(TS.mouse,function(n){Lx(t,n,function(a){a=Pk(a),t.touching||r[n].call(e,a)})}))}function Kee(e,t){xt.pointerEventsSupported?R(xE.pointer,r):xt.touchEventsSupported||R(xE.mouse,r);function r(n){function a(i){i=Pk(i),jG(e,i.target)||(i=Yee(e,i),t.domHandlers[n].call(e,i))}Lx(t,n,a,{capture:!0})}}function Lx(e,t,r,n){e.mounted[t]=r,e.listenerOpts[t]=n,uM(e.domTarget,t,r,n)}function AS(e){var t=e.mounted;for(var r in t)t.hasOwnProperty(r)&&nee(e.domTarget,r,t[r],e.listenerOpts[r]);e.mounted={}}var bE=function(){function e(t,r){this.mounted={},this.listenerOpts={},this.touching=!1,this.domTarget=t,this.domHandlers=r}return e}(),Jee=function(e){q(t,e);function t(r,n){var a=e.call(this)||this;return a.__pointerCapturing=!1,a.dom=r,a.painterRoot=n,a._localHandlerScope=new bE(r,Li),CS&&(a._globalHandlerScope=new bE(document,_M)),qee(a,a._localHandlerScope),a}return t.prototype.dispose=function(){AS(this._localHandlerScope),CS&&AS(this._globalHandlerScope)},t.prototype.setCursor=function(r){this.dom.style&&(this.dom.style.cursor=r||"default")},t.prototype.__togglePointerCapture=function(r){if(this.__mayPointerCapture=null,CS&&+this.__pointerCapturing^+r){this.__pointerCapturing=r;var n=this._globalHandlerScope;r?Kee(this,n):AS(n)}},t}(wi),EG=1;xt.hasGlobalWindow&&(EG=Math.max(window.devicePixelRatio||window.screen&&window.screen.deviceXDPI/window.screen.logicalXDPI||1,1));var D_=EG,bM=.4,wM="#333",SM="#ccc",Qee="#eee",wE=Ih,SE=5e-5;function Gu(e){return e>SE||e<-SE}var Hu=[],ud=[],NS=ar(),kS=Math.abs,Xo=function(){function e(){}return e.prototype.getLocalTransform=function(t){return ou(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 Gu(this.rotation)||Gu(this.x)||Gu(this.y)||Gu(this.scaleX-1)||Gu(this.scaleY-1)||Gu(this.skewX)||Gu(this.skewY)},e.prototype.updateTransform=function(){var t=this.parent&&this.parent.transform,r=this.needLocalTransform(),n=this.transform;if(!(r||t)){n&&(wE(n),this.invTransform=null);return}n=n||ar(),r?this.getLocalTransform(n):wE(n),t&&(r?Ea(n,t,n):au(n,t)),this.transform=n,this._resolveGlobalScaleRatio(n),this.invTransform=this.invTransform||ar(),Oa(this.invTransform,n)},e.prototype._resolveGlobalScaleRatio=function(t){var r=this.globalScaleRatio;if(r!=null&&r!==1){this.getGlobalScale(Hu);var n=Hu[0]<0?-1:1,a=Hu[1]<0?-1:1,i=((Hu[0]-n)*r+n)/Hu[0]||0,o=((Hu[1]-a)*r+a)/Hu[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||ar(),Ea(ud,t.invTransform,r),r=ud);var n=this.originX,a=this.originY;(n||a)&&(NS[4]=n,NS[5]=a,Ea(ud,r,NS),ud[4]-=n,ud[5]-=a,r=ud),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&&dr(n,n,a),n},e.prototype.transformCoordToGlobal=function(t,r){var n=[t,r],a=this.transform;return a&&dr(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){zo(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,f=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-f*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]=f*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}(),ou=Xo.getLocalTransform;function df(){return new Xo}var Gs=["x","y","originX","originY","anchorX","anchorY","rotation","scaleX","scaleY","skewX","skewY"];function zo(e,t){return nG(e,t,Gs)}function ko(e){Ky||(Ky=new Pf(100)),e=e||Fs;var t=Ky.get(e);return t||(t={font:e,strWidthCache:new Pf(500),asciiWidthMap:null,asciiWidthMapTried:!1,stWideCharWidth:qr.measureText("国",e).width,asciiCharWidth:qr.measureText("a",e).width},Ky.put(e,t)),t}var Ky;function ete(e){if(!(LS>=CE)){e=e||Fs;for(var t=[],r=+new Date,n=0;n<=127;n++)t[n]=qr.measureText(String.fromCharCode(n),e).width;var a=+new Date-r;return a>16?LS=CE:a>2&&LS++,t}}var LS=0,CE=5;function RG(e,t){return e.asciiWidthMapTried||(e.asciiWidthMap=ete(e.font),e.asciiWidthMapTried=!0),0<=t&&t<=127?e.asciiWidthMap!=null?e.asciiWidthMap[t]:e.asciiCharWidth:e.stWideCharWidth}function Lo(e,t){var r=e.strWidthCache,n=r.get(t);return n==null&&(n=qr.measureText(t,e.font).width,r.put(t,n)),n}function TE(e,t,r,n){var a=Lo(ko(t),e),i=Fm(t),o=Df(0,a,r),s=zc(0,i,n),l=new je(o,s,a,i);return l}function S1(e,t,r,n){var a=((e||"")+"").split(` -`),i=a.length;if(i===1)return TE(a[0],t,r,n);for(var o=new je(0,0,0,0),s=0;s=0?parseFloat(e)/100*t:parseFloat(e):e}function j_(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+=Bo(n[0],r.width),u+=Bo(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=Gs.concat(["ignore"]),tte=gi(Gs,function(e,t){return e[t]=!0,e},{ignore:!1}),cd={},rte=new je(0,0,0,0),Jy=[],Ix=0,C1=1,T1=function(){function e(t){this.id=Nk(),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,f=void 0;if((h||c)&&(f=rte,n.layoutRect?f.copy(n.layoutRect):f.copy(this.getBoundingRect()),a||f.applyTransform(this.transform)),c){this.calculateTextPosition?this.calculateTextPosition(cd,n,f):j_(cd,n,f),i.x=cd.x,i.y=cd.y,o=cd.align,s=cd.verticalAlign;var v=n.origin;if(v&&n.rotation!=null){var g=void 0,m=void 0;v==="center"?(g=f.width*.5,m=f.height*.5):(g=Bo(v[0],f.width),m=Bo(v[1],f.height)),u=!0,i.originX=-i.x+g+(a?0:f.x),i.originY=-i.y+m+(a?0:f.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 je(0,0,0,0);i.getLocalTransform(Jy),Oa(Jy,Jy),je.copy(_,f),_.applyTransform(Jy)}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|=da,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()?SM:wM},e.prototype.getOutsideStroke=function(t){var r=this.__zr&&this.__zr.getBackgroundColor(),n=typeof r=="string"&&Bn(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,ci(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(Re(t))for(var n=t,a=mt(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(!(Ye(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){m1("State "+t+" not exists.");return}i||this.saveCurrentToNormalState(u);var c=this._textContent,h=ME(this,c,u,a);h&&!this.__inHover&&(this.__inHover=h),this._applyStateObj(t,u,this._normalState,r,NE(this,n,l),l);var f=this._textGuide;return c&&c.useState(t,r,n,!!h),f&&f.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=Ix,this.__dirty&=~da),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=Ye(a,t),o=Ye(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 f=0;f0||a.force&&!o.length){var k=void 0,I=void 0,P=void 0;if(s){I={},f&&(k={});for(var S=0;S0}var De=function(e){q(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=Ye(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=Ye(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 me=yte;function yte(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 O_(e,t,r)}function O_(e,t,r){return ve(e)?VG(e)?parseFloat(e)/100*t+(r||0):parseFloat(e):e==null?NaN:+e}function xte(e){return ve(e)&&VG(e)}function VG(e){return!!gte(e).match(/%$/)}function Mt(e,t,r){return isNaN(t)?r?""+e:+e:(t=Et(at(0,t),E_),e=(+e).toFixed(t),r?e:+e)}function _te(e,t,r){return t==null&&(t=10),Mt(e,t,r)}function on(e){return e.sort(function(t,r){return t-r}),e}function _o(e){if(e=+e,isNaN(e))return 0;if(e>1e-14){for(var t=1,r=0;r<15;r++,t*=10)if(Fo(e*t)/t===e)return r}return GG(e)}function GG(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 at(0,o-n)}function bte(e,t){var r=mi(eh(e[1]-e[0])/Zg),n=Fo(eh(cr(t[1]-t[0]))/Zg),a=Et(at(-r+n,0),E_);return isFinite(a)?a:E_}function Ok(e,t,r){var n=cr(e[1]-e[0]);if(!isFinite(n)||n===0)return NaN;var a=eh(2*cr(r||1)*cr(n))/Zg,i=eh(cr(t))/Zg,o=at(0,Ph(-a+i));return isFinite(o)||(o=NaN),o}function wte(e,t,r){if(!e[t])return 0;var n=HG(e,r);return n[t]||0}function HG(e,t){var r=gi(e,function(v,g){return v+(isNaN(g)?0:g)},0);if(r===0)return[];for(var n=Dh(10,t),a=oe(e,function(v){return(isNaN(v)?0:v)/r*n*100}),i=n*100,o=oe(a,function(v){return mi(v)}),s=gi(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 pc(e,t){var r=at(_o(e),_o(t)),n=e+t;return r>E_?n:Mt(n,r)}var Yg=Dh(2,53)-1;function zk(e){var t=R_*2;return(e%t+t)%t}function th(e){return e>-kE&&e=10&&t++,t}var UG=2;function A1(e,t){var r=M1(e),n=Dh(10,r),a=e/n,i;return t===UG?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,Mt(e,-r)}function Dx(e,t){var r=(e.length-1)*t+1,n=mi(r),a=+e[n-1],i=r-n;return i?a+i*(e[n]-a):a}function MM(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 ES(e){e.option=e.parentModel=e.ecModel=null}function gn(){return[1/0,-1/0]}function NM(e,t){Hs(t)&&(te[1]&&(e[1]=t))}function QG(e,t){Hs(t)&&te[1]&&(e[1]=t)}function Gte(e,t){ah(t[0],t[1])&&(t[0]e[1]&&(e[1]=t[1]))}function Hs(e){return e!=null&&isFinite(e)}function ah(e,t){return Hs(e)&&Hs(t)&&e<=t}function Hte(e){var t=e[1]-e[0];return isFinite(t)&&t>=0}function jx(e){ah(e[0],e[1])&&e[0]>e[1]&&(e[0]=e[1])}function lv(){var e="__ec_once_"+Ute++;return function(t,r){Se(t,e)||(t[e]=1,r())}}var Ute=Vk();function N1(e,t,r){var n=we(),a=0;R(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 Wte(e){return e.value+""}function $te(e){return e+""}function Io(e,t){return Te(t,!0)?e.seriesIndex+2:0}function t7(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 Hr(e,t){return{seriesType:e,overallReset:t}}function Vm(e){return{overallReset:e}}var Zte=".",Uu="___EC__COMPONENT__CONTAINER___",r7="___EC__EXTENDED_CLASS___";function bo(e){var t={main:"",sub:""};if(e){var r=e.split(Zte);t.main=r[0]||"",t.sub=r[1]||""}return t}function Yte(e){bn(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(e),'componentType "'+e+'" illegal')}function Xte(e){return!!(e&&e[r7])}function Wk(e,t){e.$constructor=e,e.extend=function(r){var n=this,a;return qte(n)?a=function(i){q(o,i);function o(){return i.apply(this,arguments)||this}return o}(n):(a=function(){(r.$constructor||n).apply(this,arguments)},kk(a,this)),te(a.prototype,r),a[r7]=!0,a.extend=this.extend,a.superCall=Qte,a.superApply=ere,a.superClass=n,a}}function qte(e){return Le(e)&&/^class\s/.test(Function.prototype.toString.call(e))}function n7(e,t){e.extend=t.extend}var Kte=Math.round(Math.random()*10);function Jte(e){var t=["__\0is_clz",Kte++].join("_");e.prototype[t]=!0,e.isInstance=function(r){return!!(r&&r[t])}}function Qte(e,t){for(var r=[],n=2;n=0||i&&Ye(i,l)<0)){var u=n.getShallow(l,t);u!=null&&(o[e[s][0]]=u)}}return o}}var tre=[["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]],rre=ih(tre),nre=function(){function e(){}return e.prototype.getAreaStyle=function(t,r){return rre(this,t,r)},e}(),kM=new Pf(50);function are(e){if(typeof e=="string"){var t=kM.get(e);return t&&t.image}else return e}function $k(e,t,r,n,a){if(e)if(typeof e=="string"){if(t&&t.__zrImageSrc===e||!r)return t;var i=kM.get(e),o={hostEl:r,cb:n,cbPayload:a};return i?(t=i.image,!L1(t)&&i.pending.push(o)):(t=qr.loadImage(e,DE,DE),t.__zrImageSrc=e,kM.put(e,t.__cachedImgObj={image:t,pending:[o]})),t}else return e;else return t}function DE(){var e=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var t=0;t=s;u++)l-=s;var c=Lo(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 o7(e,t,r){var n=r.containerWidth,a=r.contentWidth,i=r.fontMeasureInfo;if(!n){e.textLine="",e.isTruncated=!1;return}var o=Lo(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?ore(t,a,i):o>0?Math.floor(t.length*a/o):0;t=t.substr(0,l),o=Lo(i,t)}t===""&&(t=r.placeholder),e.textLine=t,e.isTruncated=!0}function ore(e,t,r){for(var n=0,a=0,i=e.length;ay&&v){var w=Math.floor(y/f);g=g||x.length>w,x=x.slice(0,w),_=x.length*f}if(a&&c&&m!=null)for(var S=i7(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 W=i.lines.length;z>0?(I.tokens=I.tokens.slice(0,z),A(I,j,P),i.lines=i.lines.slice(0,k+1)):i.lines=i.lines.slice(0,k),i.isTruncated=i.isTruncated||i.lines.length0&&g+n.accumWidth>n.width&&(c=t.split(` -`),u=!0),n.accumWidth=g}else{var m=s7(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=ko(l),x=0;x=32&&t<=591||t>=880&&t<=4351||t>=4608&&t<=5119||t>=7680&&t<=8303}var dre=gi(",&?/;] ".split(""),function(e,t){return e[t]=!0,e},{});function fre(e){return hre(e)?!!dre[e]:!0}function s7(e,t,r,n,a){for(var i=[],o=[],s="",l="",u=0,c=0,h=ko(t),f=0;fr: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 EE(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;je.set(RE,Df(r,o,a),zc(n,s,i),o,s),je.intersect(t,RE,null,OE);var l=OE.outIntersectRect;e.outerWidth=l.width,e.outerHeight=l.height,e.baseX=Df(l.x,l.width,a,!0),e.baseY=zc(l.y,l.height,i,!0)}}var RE=new je(0,0,0,0),OE={outIntersectRect:{},clamp:!0};function Zk(e){return e!=null?e+="":e=""}function vre(e){var t=Zk(e.text),r=e.font,n=Lo(ko(r),t),a=Fm(r);return LM(e,n,a,null)}function LM(e,t,r,n){var a=new je(Df(e.x||0,t,e.textAlign),zc(e.y||0,r,e.textBaseline),t,r),i=n??(l7(e)?e.lineWidth:0);return i>0&&(a.x-=i/2,a.y-=i/2,a.width+=i,a.height+=i),a}function l7(e){var t=e.stroke;return t!=null&&t!=="none"&&e.lineWidth>0}var IM="__zr_style_"+Math.round(Math.random()*10),Bc={shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,shadowColor:"#000",opacity:1,blend:"source-over"},I1={style:{shadowBlur:!0,shadowOffsetX:!0,shadowOffsetY:!0,shadowColor:!0,opacity:!0}};Bc[IM]=!0;var zE=["z","z2","invisible"],pre=["invisible"],xi=function(e){q(t,e);function t(r){return e.call(this,r)||this}return t.prototype._init=function(r){for(var n=mt(r),a=0;a1e-4){s[0]=e-r,s[1]=t-n,l[0]=e+r,l[1]=t+n;return}if(Qy[0]=VS(a)*r+e,Qy[1]=FS(a)*n+t,e0[0]=VS(i)*r+e,e0[1]=FS(i)*n+t,u(s,Qy,e0),c(l,Qy,e0),a=a%Wu,a<0&&(a=a+Wu),i=i%Wu,i<0&&(i=i+Wu),a>i&&!o?i+=Wu:aa&&(t0[0]=VS(v)*r+e,t0[1]=FS(v)*n+t,u(s,t0,s),c(l,t0,l))}var Xt={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},$u=[],Zu=[],io=[],cl=[],oo=[],so=[],GS=Math.min,HS=Math.max,Yu=Math.cos,Xu=Math.sin,hs=Math.abs,PM=Math.PI,xl=PM*2,US=typeof Float32Array<"u",Kv=[];function WS(e){var t=Math.round(e/PM*1e8)/1e8;return t%2*PM}function D1(e,t){var r=WS(e[0]);r<0&&(r+=xl);var n=r-e[0],a=e[1];a+=n,!t&&a-r>=xl?a=r+xl:t&&r-a>=xl?a=r-xl:!t&&r>a?a=r+(xl-WS(r-a)):t&&r0&&(this._ux=hs(n/D_/t)||0,this._uy=hs(n/D_/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(Xt.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=hs(t-this._xi),a=hs(r-this._yi),i=n>this._ux||a>this._uy;if(this.addData(Xt.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(Xt.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(Xt.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(),Kv[0]=a,Kv[1]=i,D1(Kv,o),a=Kv[0],i=Kv[1];var s=i-a;return this.addData(Xt.A,t,r,n,n,a,s,0,o?0:1),this._ctx&&this._ctx.arc(t,r,n,a,i,o),this._xi=Yu(i)*n+t,this._yi=Xu(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(Xt.R,t,r,n,a),this},e.prototype.closePath=function(){this._drawPendingPt(),this.addData(Xt.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(){io[0]=io[1]=oo[0]=oo[1]=Number.MAX_VALUE,cl[0]=cl[1]=so[0]=so[1]=-Number.MAX_VALUE;var t=this.data,r=0,n=0,a=0,i=0,o;for(o=0;on||hs(w)>a||f===r-1)&&(m=Math.sqrt(_*_+w*w),i=y,o=x);break}case Xt.C:{var S=t[f++],C=t[f++],y=t[f++],x=t[f++],M=t[f++],A=t[f++];m=_ee(i,o,S,C,y,x,M,A,10),i=M,o=A;break}case Xt.Q:{var S=t[f++],C=t[f++],y=t[f++],x=t[f++];m=wee(i,o,S,C,y,x,10),i=y,o=x;break}case Xt.A:var k=t[f++],I=t[f++],P=t[f++],j=t[f++],z=t[f++],D=t[f++],B=D+z;f+=1,g&&(s=Yu(z)*P+k,l=Xu(z)*j+I),m=HS(P,j)*GS(xl,Math.abs(D)),i=Yu(B)*P+k,o=Xu(B)*j+I;break;case Xt.R:{s=i=t[f++],l=o=t[f++];var H=t[f++],V=t[f++];m=H*2+V*2;break}case Xt.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,f,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 Xt.M:s=u=n[M++],l=c=n[M++],t.moveTo(u,c);break;case Xt.L:{h=n[M++],f=n[M++];var I=hs(h-u),P=hs(f-c);if(I>a||P>i){if(v){var j=g[x++];if(y+j>_){var z=(_-y)/j;t.lineTo(u*(1-z)+h*z,c*(1-z)+f*z);break e}y+=j}t.lineTo(h,f),u=h,c=f,w=0}else{var D=I*I+P*P;D>w&&(S=h,C=f,w=D)}break}case Xt.C:{var B=n[M++],H=n[M++],V=n[M++],U=n[M++],F=n[M++],W=n[M++];if(v){var j=g[x++];if(y+j>_){var z=(_-y)/j;iu(u,B,V,F,z,$u),iu(c,H,U,W,z,Zu),t.bezierCurveTo($u[1],Zu[1],$u[2],Zu[2],$u[3],Zu[3]);break e}y+=j}t.bezierCurveTo(B,H,V,U,F,W),u=F,c=W;break}case Xt.Q:{var B=n[M++],H=n[M++],V=n[M++],U=n[M++];if(v){var j=g[x++];if(y+j>_){var z=(_-y)/j;Gg(u,B,V,z,$u),Gg(c,H,U,z,Zu),t.quadraticCurveTo($u[1],Zu[1],$u[2],Zu[2]);break e}y+=j}t.quadraticCurveTo(B,H,V,U),u=V,c=U;break}case Xt.A:var $=n[M++],Z=n[M++],J=n[M++],re=n[M++],Q=n[M++],le=n[M++],de=n[M++],He=!n[M++],ye=J>re?J:re,ne=hs(J-re)>.001,xe=Q+le,he=!1;if(v){var j=g[x++];y+j>_&&(xe=Q+le*(_-y)/j,he=!0),y+=j}if(ne&&t.ellipse?t.ellipse($,Z,J,re,de,Q,xe,He):t.arc($,Z,ye,Q,xe,He),he)break e;k&&(s=Yu(Q)*J+$,l=Xu(Q)*re+Z),u=Yu(xe)*J+$,c=Xu(xe)*re+Z;break;case Xt.R:s=u=n[M],l=c=n[M+1],h=n[M++],f=n[M++];var ge=n[M++],tt=n[M++];if(v){var j=g[x++];if(y+j>_){var Ue=_-y;t.moveTo(h,f),t.lineTo(h+GS(Ue,ge),f),Ue-=ge,Ue>0&&t.lineTo(h+ge,f+GS(Ue,tt)),Ue-=tt,Ue>0&&t.lineTo(h+HS(ge-Ue,0),f+tt),Ue-=ge,Ue>0&&t.lineTo(h,f+HS(tt-Ue,0));break e}y+=j}t.rect(h,f,ge,tt);break;case Xt.Z:if(v){var j=g[x++];if(y+j>_){var z=(_-y)/j;t.lineTo(u*(1-z)+s*z,c*(1-z)+l*z);break e}y+=j}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=Xt,e.initDefaultProps=function(){var t=e.prototype;t._saveData=!0,t._ux=0,t._uy=0,t._pendingPtDist=0,t._version=0}(),e}();function Sl(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+=Jv);var f=Math.atan2(l,s);return f<0&&(f+=Jv),f>=n&&f<=a||f+Jv>=n&&f+Jv<=a}function ys(e,t,r,n,a,i){if(i>t&&i>n||ia?s:0}var hl=Go.CMD,qu=Math.PI*2,wre=1e-4;function Sre(e,t){return Math.abs(e-t)t&&u>n&&u>i&&u>s||u1&&Cre(),v=$r(t,n,i,s,ei[0]),f>1&&(g=$r(t,n,i,s,ei[1]))),f===2?yt&&s>n&&s>i||s=0&&u<=1){for(var c=0,h=an(t,n,i,u),f=0;fr||s<-r)return 0;var l=Math.sqrt(r*r-s*s);Xn[0]=-l,Xn[1]=l;var u=Math.abs(n-a);if(u<1e-4)return 0;if(u>=qu-1e-4){n=0,a=qu;var c=i?1:-1;return o>=Xn[0]+e&&o<=Xn[1]+e?c:0}if(n>a){var h=n;n=a,a=h}n<0&&(n+=qu,a+=qu);for(var f=0,v=0;v<2;v++){var g=Xn[v];if(g+e>o){var m=Math.atan2(s,g),c=i?1:-1;m<0&&(m=qu+m),(m>=n&&m<=a||m+qu>=n&&m+qu<=a)&&(m>Math.PI/2&&m1&&(r||(s+=ys(l,u,c,h,n,a))),y&&(l=i[g],u=i[g+1],c=l,h=u),m){case hl.M:c=i[g++],h=i[g++],l=c,u=h;break;case hl.L:if(r){if(Sl(l,u,i[g],i[g+1],t,n,a))return!0}else s+=ys(l,u,i[g],i[g+1],n,a)||0;l=i[g++],u=i[g++];break;case hl.C:if(r){if(_re(l,u,i[g++],i[g++],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++],i[g],i[g+1],n,a)||0;l=i[g++],u=i[g++];break;case hl.Q:if(r){if(u7(l,u,i[g++],i[g++],i[g],i[g+1],t,n,a))return!0}else s+=Mre(l,u,i[g++],i[g++],i[g],i[g+1],n,a)||0;l=i[g++],u=i[g++];break;case hl.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++]);f=Math.cos(C)*w+x,v=Math.sin(C)*S+_,y?(c=f,h=v):s+=ys(l,u,f,v,n,a);var k=(n-x)*S/w+x;if(r){if(bre(x,_,S,C,C+M,A,t,k,a))return!0}else s+=Are(x,_,S,C,C+M,A,k,a);l=Math.cos(C+M)*w+x,u=Math.sin(C+M)*S+_;break;case hl.R:c=l=i[g++],h=u=i[g++];var I=i[g++],P=i[g++];if(f=c+I,v=h+P,r){if(Sl(c,h,f,h,t,n,a)||Sl(f,h,f,v,t,n,a)||Sl(f,v,c,v,t,n,a)||Sl(c,v,c,h,t,n,a))return!0}else s+=ys(f,h,f,v,n,a),s+=ys(c,v,c,h,n,a);break;case hl.Z:if(r){if(Sl(l,u,c,h,t,n,a))return!0}else s+=ys(l,u,c,h,n,a);l=c,u=h;break}}return!r&&!Sre(u,h)&&(s+=ys(l,u,c,h,n,a)||0),s!==0}function Nre(e,t,r){return c7(e,0,!1,t,r)}function kre(e,t,r,n){return c7(e,t,!0,r,n)}var z_=Ee({fill:"#000",stroke:null,strokePercent:1,fillOpacity:1,strokeOpacity:1,lineDashOffset:0,lineWidth:1,lineCap:"butt",miterLimit:10,strokeNoScale:!1,strokeFirst:!1},Bc),Lre={style:Ee({fill:!0,stroke:!0,strokePercent:!0,fillOpacity:!0,strokeOpacity:!0,lineDashOffset:!0,lineWidth:!0,miterLimit:!0},I1.style)},$S=Gs.concat(["invisible","culling","z","z2","zlevel","parent"]),pt=function(e){q(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<$S.length;++s)a[$S[s]]=this[$S[s]];a.__dirty|=da}else this._decalEl&&(this._decalEl=null)},t.prototype.getDecalElement=function(){return this._decalEl},t.prototype._init=function(r){var n=mt(r);this.shape=this.getDefaultShape();var a=this.getDefaultStyle();a&&this.useStyle(a);for(var i=0;i.5?wM:n>.2?Qee:SM}else if(r)return SM}return wM},t.prototype.getInsideTextStroke=function(r){var n=this.style.fill;if(ve(n)){var a=this.__zr,i=!!(a&&a.isDarkMode()),o=Wg(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&Dd)&&(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)),kre(s,l/u,r,n)))return!0}if(this.hasFill())return Nre(s,r,n)}return!1},t.prototype.dirtyShape=function(){this.__dirty|=Dd,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&Dd)},t.prototype.createStyle=function(r){return Bm(z_,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!==C1){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=mt(u),f=0;fa&&(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 Kd=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&&(Kd(n*2)===Kd(a*2)&&(e.x1=e.x2=Pa(n,s,!0)),Kd(i*2)===Kd(o*2)&&(e.y1=e.y2=Pa(i,s,!0))),e}}function h7(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=Pa(n,s,!0),e.y=Pa(a,s,!0),e.width=Math.max(Pa(n+i,s,!1)-e.x,i===0?0:1),e.height=Math.max(Pa(a+o,s,!1)-e.y,o===0?0:1)),e}}function Pa(e,t,r){if(!t)return e;var n=Kd(e*2);return(n+Kd(t))%2===0?n/2:(n+(r?1:-1))/2}var Rre=function(){function e(){this.x=0,this.y=0,this.width=0,this.height=0}return e}(),Ore={},it=function(e){q(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new Rre},t.prototype.buildPath=function(r,n){var a,i,o,s;if(this.subPixelOptimize){var l=h7(Ore,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?Ere(r,n):r.rect(a,i,o,s)},t.prototype.isZeroArea=function(){return!this.shape.width||!this.shape.height},t}(pt);it.prototype.type="rect";var HE={fill:"#000"},UE=2,lo={},zre={style:Ee({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},I1.style)},wt=function(e){q(t,e);function t(r){var n=e.call(this)||this;return n.type="text",n._children=[],n._defaultStyle=HE,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[D],B.align==="right");)this._placeToken(B,r,k,x,z,"right",w),I-=B.width,z-=B.width,D--;for(j+=(c-(j-y)-(_-z)-I)/2;P<=D;)B=M[P],this._placeToken(B,r,k,x,j+B.width/2,"center",w),j+=B.width,P++;x+=k}},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 f=!r.isLineHolder&&ZS(u);f&&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=qE(o,s,g),h-=r.height/2-g[0]-r.innerHeight/2);var m=this._getOrCreateChild(jf),y=m.createStyle();m.useStyle(y);var x=this._defaultStyle,_=!1,w=0,S=!1,C=XE("fill"in u?u.fill:"fill"in n?n.fill:(_=!0,x.fill)),M=YE("stroke"in u?u.stroke:"stroke"in n?n.stroke:!v&&!l&&(!x.autoStroke||_)?(w=UE,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||Fs,y.opacity=ya(u.opacity,n.opacity,1),$E(y,u),M&&(y.lineWidth=ya(u.lineWidth,n.lineWidth,w),y.lineDash=Te(u.lineDash,n.lineDash),y.lineDashOffset=n.lineDashOffset||0,y.stroke=M),C&&(y.fill=C),m.setBoundingRect(LM(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,f=l&&!h,v=r.borderRadius,g=this,m,y;if(f||r.lineHeight||u&&c){m=this._getOrCreateChild(it),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(f){var _=m.style;_.fill=l||null,_.fillOpacity=Te(r.fillOpacity,1)}else if(h){y=this._getOrCreateChild(Qr),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=Te(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=ya(r.opacity,n.opacity,1)},t.makeFont=function(r){var n="";return f7(r)&&(n=[r.fontStyle,r.fontWeight,d7(r.fontSize),r.fontFamily||"sans-serif"].join(" ")),n&&La(n)||r.textFont||r.font},t}(xi),Bre={left:!0,right:1,center:1},Fre={top:1,bottom:1,middle:1},WE=["fontStyle","fontWeight","fontSize","fontFamily"];function d7(e){return typeof e=="string"&&(e.indexOf("px")!==-1||e.indexOf("rem")!==-1||e.indexOf("em")!==-1)?e:isNaN(+e)?Tk+"px":e+"px"}function $E(e,t){for(var r=0;r=0,i=!1;if(e instanceof pt){var o=x7(e),s=a&&o.selectFill||o.normalFill,l=a&&o.selectStroke||o.normalStroke;if(hd(s)||hd(l)){n=n||{};var u=n.style||{};u.fill==="inherit"?(i=!0,n=te({},n),u=te({},u),u.fill=s):!hd(u.fill)&&hd(s)?(i=!0,n=te({},n),u=te({},u),u.fill=I_(s)):!hd(u.stroke)&&hd(l)&&(i||(n=te({},n),u=te({},u)),u.stroke=I_(l)),n.style=u}}if(n&&n.z2==null){i||(n=te({},n));var c=e.z2EmphasisLift;n.z2=e.z2+(c??cv)}return n}function Yre(e,t,r){if(r&&r.z2==null){r=te({},r);var n=e.z2SelectLift;r.z2=e.z2+(n??Hre)}return r}function Xre(e,t,r){var n=Ye(e.currentStates,t)>=0,a=e.style.opacity,i=n?null:$re(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 Zre(this,e,t,r);if(e==="blur")return Xre(this,e,r);if(e==="select")return Yre(this,e,r)}return r}function oh(e){e.stateProxy=YS;var t=e.getTextContent(),r=e.getTextGuideLine();t&&(t.stateProxy=YS),r&&(r.stateProxy=YS)}function tR(e,t){!M7(e,t)&&!e.__highByOuter&&Qs(e,_7)}function rR(e,t){!M7(e,t)&&!e.__highByOuter&&Qs(e,b7)}function Us(e,t){e.__highByOuter|=1<<(t||0),Qs(e,_7)}function Ws(e,t){!(e.__highByOuter&=~(1<<(t||0)))&&Qs(e,b7)}function S7(e){Qs(e,Kk)}function Jk(e){Qs(e,w7)}function C7(e){Qs(e,Ure)}function T7(e){Qs(e,Wre)}function M7(e,t){return e.__highDownSilentOnTouch&&t.zrByTouch}function A7(e){var t=e.getModel(),r=[],n=[];t.eachComponent(function(a,i){var o=Yk(i),s=y7(e,i),l=a==="series";!l&&n.push(s),o.isBlured&&(s.group.traverse(function(u){w7(u)}),l&&r.push(i)),o.isBlured=!1}),R(n,function(a){a&&a.toggleBlurSeries&&a.toggleBlurSeries(r,!1,t)})}function EM(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 ql(e,t,r){Ic(e,!0),Qs(e,oh),OM(e,t,r)}function tne(e){Ic(e,!1)}function ir(e,t,r,n){n?tne(e):ql(e,t,r)}function OM(e,t,r){var n=Be(e);t!=null?(n.focus=t,n.blurScope=r):n.focus&&(n.focus=null)}var aR=["emphasis","blur","select"],rne={itemStyle:"getItemStyle",lineStyle:"getLineStyle",areaStyle:"getAreaStyle"};function Vr(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*(f*f))/(o*o*(v*v)+s*s*(f*f)))||0,y=m*o*v/s,x=m*-s*f/o,_=(e+r)/2+n0(h)*y-r0(h)*x,w=(t+n)/2+r0(h)*y+n0(h)*x,S=lR([1,0],[(f-y)/o,(v-x)/s]),C=[(f-y)/o,(v-x)/s],M=[(-1*f-y)/o,(-1*v-x)/s],A=lR(C,M);if(BM(C,M)<=-1&&(A=Qv),BM(C,M)>=1&&(A=0),A<0){var k=Math.round(A/Qv*1e6)/1e6;A=Qv*2+k%2*Qv}c.addData(u,_,w,o,s,S,A,h,i)}var lne=/([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig,une=/-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g;function cne(e){var t=new Go;if(!e)return t;var r=0,n=0,a=r,i=n,o,s=Go.CMD,l=e.match(lne);if(!l)return t;for(var u=0;uB*B+H*H&&(k=P,I=j),{cx:k,cy:I,x0:-c,y0:-h,x1:k*(a/C-1),y1:I*(a/C-1)}}function mne(e){var t;if(ae(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 yne(e,t){var r,n=Rp(t.r,0),a=Rp(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,f=!!t.clockwise,v=cR(u-l),g=v>qS&&v%qS;if(g>ki&&(v=g),!(n>ki))e.moveTo(c,h);else if(v>qS-ki)e.moveTo(c+n*fd(l),h+n*Ku(l)),e.arc(c,h,n,l,u,!f),a>ki&&(e.moveTo(c+a*fd(u),h+a*Ku(u)),e.arc(c,h,a,u,l,f));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,k=void 0,I=void 0,P=void 0,j=void 0,z=void 0,D=void 0,B=void 0,H=n*fd(l),V=n*Ku(l),U=a*fd(u),F=a*Ku(u),W=v>ki;if(W){var $=t.cornerRadius;$&&(r=mne($),m=r[0],y=r[1],x=r[2],_=r[3]);var Z=cR(n-a)/2;if(w=uo(Z,x),S=uo(Z,_),C=uo(Z,m),M=uo(Z,y),I=A=Rp(w,S),P=k=Rp(C,M),(A>ki||k>ki)&&(j=n*fd(u),z=n*Ku(u),D=a*fd(l),B=a*Ku(l),vki){var ne=uo(x,I),xe=uo(_,I),he=a0(D,B,H,V,n,ne,f),ge=a0(j,z,U,F,n,xe,f);e.moveTo(c+he.cx+he.x0,h+he.cy+he.y0),I0&&e.arc(c+he.cx,h+he.cy,ne,Ln(he.y0,he.x0),Ln(he.y1,he.x1),!f),e.arc(c,h,n,Ln(he.cy+he.y1,he.cx+he.x1),Ln(ge.cy+ge.y1,ge.cx+ge.x1),!f),xe>0&&e.arc(c+ge.cx,h+ge.cy,xe,Ln(ge.y1,ge.x1),Ln(ge.y0,ge.x0),!f))}else e.moveTo(c+H,h+V),e.arc(c,h,n,l,u,!f);if(!(a>ki)||!W)e.lineTo(c+U,h+F);else if(P>ki){var ne=uo(m,P),xe=uo(y,P),he=a0(U,F,j,z,a,-xe,f),ge=a0(H,V,D,B,a,-ne,f);e.lineTo(c+he.cx+he.x0,h+he.cy+he.y0),P0&&e.arc(c+he.cx,h+he.cy,xe,Ln(he.y0,he.x0),Ln(he.y1,he.x1),!f),e.arc(c,h,a,Ln(he.cy+he.y1,he.cx+he.x1),Ln(ge.cy+ge.y1,ge.cx+ge.x1),f),ne>0&&e.arc(c+ge.cx,h+ge.cy,ne,Ln(ge.y1,ge.x1),Ln(ge.y0,ge.x0),!f))}else e.lineTo(c+U,h+F),e.arc(c,h,a,u,l,f)}e.closePath()}}}var xne=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}(),wn=function(e){q(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new xne},t.prototype.buildPath=function(r,n){yne(r,n)},t.prototype.isZeroArea=function(){return this.shape.startAngle===this.shape.endAngle||this.shape.r===this.shape.r0},t}(pt);wn.prototype.type="sector";var _ne=function(){function e(){this.cx=0,this.cy=0,this.r=0,this.r0=0}return e}(),hv=function(e){q(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new _ne},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}(pt);hv.prototype.type="ring";function bne(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 f=0,v=e.length;f=2){if(n){var i=bne(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;sQu[1]){if(i=!1,rn.negativeSize||n)return i;var l=i0(Qu[0]-Ju[1]),u=i0(Ju[0]-Qu[1]);KS(l,u)>s0.len()&&(l=u||!rn.bidirectional)&&(Oe.scale(o0,s,-u*a),rn.useDir&&rn.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,f=c.delay,v=c.easing,g={duration:h,delay:f||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 At(e,t,r,n,a,i){rL("update",e,t,r,n,a,i)}function Qt(e,t,r,n,a,i){rL("enter",e,t,r,n,a,i)}function vf(e){if(!e.__zr)return!0;for(var t=0;tcr(i[1])?i[0]>0?"right":"left":i[1]>0?"bottom":"top"}function fR(e){return!e.isGroup}function Rne(e){return e.shape!=null}function $m(e,t,r){if(!e||!t)return;function n(o){var s={};return o.traverse(function(l){fR(l)&&l.anid&&(s[l.anid]=l)}),s}function a(o){var s={x:o.x,y:o.y,rotation:o.rotation};return Rne(o)&&(s.shape=ke(o.shape)),s}var i=n(e);t.traverse(function(o){if(fR(o)&&o.anid){var s=i[o.anid];if(s){var l=a(o);o.attr(a(s)),At(o,l,r,Be(o).dataIndex)}}})}function iL(e,t){return oe(e,function(r){var n=r[0];n=at(n,t.x),n=Et(n,t.x+t.width);var a=r[1];return a=at(a,t.y),a=Et(a,t.y+t.height),[n,a]})}function W7(e,t){var r=at(e.x,t.x),n=Et(e.x+e.width,t.x+t.width),a=at(e.y,t.y),i=Et(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 pv(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),Ee(a,r),new Qr(n)):Ef(e.replace("path://",""),n,r,"center")}function Op(e,t,r,n,a){for(var i=0,o=a[a.length-1];i1)return!1;var y=JS(v,g,c,h)/f;return!(y<0||y>1)}function JS(e,t,r,n){return e*n-r*t}function One(e){return e<=1e-6&&e>=-1e-6}function sh(e,t,r,n,a){return t==null||(Tt(t)?or[0]=or[1]=or[2]=or[3]=t:(or[0]=t[0],or[1]=t[1],or[2]=t[2],or[3]=t[3]),n&&(or[0]=at(0,or[0]),or[1]=at(0,or[1]),or[2]=at(0,or[2]),or[3]=at(0,or[3])),r&&(or[0]=-or[0],or[1]=-or[1],or[2]=-or[2],or[3]=-or[3]),vR(e,or,"x","width",3,1,a&&a[0]||0),vR(e,or,"y","height",0,2,a&&a[1]||0)),e}var or=[0,0,0,0];function vR(e,t,r,n,a,i,o){var s=t[i]+t[a],l=e[n];e[n]+=s,o=at(0,Et(o,l)),e[n]=0?-t[a]:t[i]>=0?l+t[i]:cr(s)>1e-8?(l-o)*t[a]/s:0):e[r]-=t[a]}function el(e){var t=e.itemTooltipOption,r=e.componentModel,n=e.itemName,a=ve(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&&R(mt(l),function(c){Se(s,c)||(s[c]=l[c],s.$vars.push(c))});var u=Be(e.el);u.componentMainType=i,u.componentIndex=o,u.tooltipConfig={name:n,option:Ee({content:n,encodeHTMLContent:!0,formatterParams:s},a)}}function VM(e,t){var r;e.isGroup&&(r=t(e)),r||e.traverse(t)}function Su(e,t){if(e)if(ae(e))for(var r=0;rt&&(t=o),ot&&(r=t=0),{min:r,max:t}}function z1(e,t,r){Y7(e,t,r,-1/0)}function Y7(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 Cu(e,t){return Je(Je({},e,!0),t,!0)}const Xne={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:". "}}}},qne={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 H_="ZH",cL="EN",pf=cL,zx={},hL={},eH=xt.domSupported?function(){var e=(document.documentElement.lang||navigator.language||navigator.browserLanguage||pf).toUpperCase();return e.indexOf(H_)>-1?H_:pf}():pf;function dL(e,t){e=e.toUpperCase(),hL[e]=new vt(t),zx[e]=t}function Kne(e){if(ve(e)){var t=zx[e.toUpperCase()]||{};return e===H_||e===cL?ke(t):Je(ke(t),ke(zx[pf]),!1)}else return Je(ke(e),ke(zx[pf]),!1)}function UM(e){return hL[e]}function Jne(){return hL[pf]}dL(cL,Xne);dL(H_,qne);var WM=null;function Qne(e){WM||(WM=e)}function Mr(){return WM}function tH(e,t){var r=Mr(),n=t.breakOption,a=t.breakParsed;return!a&&r&&(a=r.parseAxisBreakOption(n,e)),a}function U_(e){var t=e.brk;return t?t.breaks:[]}function W_(e){var t=e.brk;return t?t.hasBreaks():!1}var fL=1e3,vL=fL*60,dg=vL*60,ii=dg*24,xR=ii*365,eae={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})/},Bx={year:"{yyyy}",month:"{MMM}",day:"{d}",hour:"{HH}:{mm}",minute:"{HH}:{mm}",second:"{HH}:{mm}:{ss}",millisecond:"{HH}:{mm}:{ss} {SSS}"},tae="{yyyy}-{MM}-{dd} {HH}:{mm}:{ss} {SSS}",u0="{yyyy}-{MM}-{dd}",_R={year:"{yyyy}",month:"{yyyy}-{MM}",day:u0,hour:u0+" "+Bx.hour,minute:u0+" "+Bx.minute,second:u0+" "+Bx.second,millisecond:tae},Ma=["year","month","day","hour","minute","second","millisecond"],rae=["year","half-year","quarter","month","week","half-week","day","half-day","quarter-day","hour","minute","second","millisecond"];function nae(e){return!ve(e)&&!Le(e)?aae(e):e}function aae(e){e=e||{};var t={},r=!0;return R(Ma,function(n){r&&(r=e[n]==null)}),R(Ma,function(n,a){var i=e[n];t[n]={};for(var o=null,s=a;s>=0;s--){var l=Ma[s],u=Re(i)&&!ae(i)?i[l]:i,c=void 0;ae(u)?(c=u.slice(),o=c[0]||""):ve(u)?(o=u,c=[o]):(o==null?o=Bx[n]:eae[l].test(o)||(o=t[l][l][0]+" "+o),c=[o],r&&(c[1]="{primary|"+o+"}")),t[n][l]=c}}),t}function qn(e,t){return e+="","0000".substr(0,t-e.length)+e}function fg(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 iae(e){return e===fg(e)}function oae(e){switch(e){case"year":case"month":return"day";case"millisecond":return"millisecond";default:return"second"}}function Zm(e,t,r,n){var a=qo(e),i=a[rH(r)](),o=a[pL(r)]()+1,s=Math.floor((o-1)/3)+1,l=a[gL(r)](),u=a["get"+(r?"UTC":"")+"Day"](),c=a[mL(r)](),h=(c-1)%12+1,f=a[yL(r)](),v=a[xL(r)](),g=a[_L(r)](),m=c>=12?"pm":"am",y=m.toUpperCase(),x=n instanceof vt?n:UM(n||eH)||Jne(),_=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,qn(i%100+"",2)).replace(/{Q}/g,s+"").replace(/{MMMM}/g,w[o-1]).replace(/{MMM}/g,S[o-1]).replace(/{MM}/g,qn(o,2)).replace(/{M}/g,o+"").replace(/{dd}/g,qn(l,2)).replace(/{d}/g,l+"").replace(/{eeee}/g,C[u]).replace(/{ee}/g,M[u]).replace(/{e}/g,u+"").replace(/{HH}/g,qn(c,2)).replace(/{H}/g,c+"").replace(/{hh}/g,qn(h+"",2)).replace(/{h}/g,h+"").replace(/{mm}/g,qn(f,2)).replace(/{m}/g,f+"").replace(/{ss}/g,qn(v,2)).replace(/{s}/g,v+"").replace(/{SSS}/g,qn(g,3)).replace(/{S}/g,g+"")}function sae(e,t,r,n,a){var i=null;if(ve(r))i=r;else if(Le(r)){var o={time:e.time,level:e.time?e.time.level:0},s=Mr();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=gf(e.value,a);i=r[c][c][0]}}return Zm(new Date(e.value),i,a,n)}function gf(e,t){var r=qo(e),n=r[pL(t)]()+1,a=r[gL(t)](),i=r[mL(t)](),o=r[yL(t)](),s=r[xL(t)](),l=r[_L(t)](),u=l===0,c=u&&s===0,h=c&&o===0,f=h&&i===0,v=f&&a===1,g=v&&n===1;return g?"year":v?"month":f?"day":h?"hour":c?"minute":u?"second":"millisecond"}function $_(e,t,r){switch(t){case"year":e[nH(r)](0);case"month":e[aH(r)](1);case"day":e[iH(r)](0);case"hour":e[oH(r)](0);case"minute":e[sH(r)](0);case"second":e[lH(r)](0)}return e}function rH(e){return e?"getUTCFullYear":"getFullYear"}function pL(e){return e?"getUTCMonth":"getMonth"}function gL(e){return e?"getUTCDate":"getDate"}function mL(e){return e?"getUTCHours":"getHours"}function yL(e){return e?"getUTCMinutes":"getMinutes"}function xL(e){return e?"getUTCSeconds":"getSeconds"}function _L(e){return e?"getUTCMilliseconds":"getMilliseconds"}function lae(e){return e?"setUTCFullYear":"setFullYear"}function nH(e){return e?"setUTCMonth":"setMonth"}function aH(e){return e?"setUTCDate":"setDate"}function iH(e){return e?"setUTCHours":"setHours"}function oH(e){return e?"setUTCMinutes":"setMinutes"}function sH(e){return e?"setUTCSeconds":"setSeconds"}function lH(e){return e?"setUTCMilliseconds":"setMilliseconds"}function uae(e,t,r,n,a,i,o,s){var l=new wt({style:{text:e,font:t,align:r,verticalAlign:n,padding:a,rich:i,overflow:o?"truncate":null,lineHeight:s}});return l.getBoundingRect()}function bL(e){if(!Fk(e))return ve(e)?e:"-";var t=(e+"").split(".");return t[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(t.length>1?"."+t[1]:"")}function wL(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 mv=zm;function $M(e,t,r){var n="{yyyy}-{MM}-{dd} {HH}:{mm}:{ss}";function a(c){return c&&La(c)?c:"-"}function i(c){return yi(c)}var o=t==="time",s=e instanceof Date;if(o||s){var l=o?qo(e):e;if(isNaN(+l)){if(s)return"-"}else return Zm(l,n,r)}if(t==="ordinal")return S_(e)?a(e):Tt(e)&&i(e)?e+"":"-";var u=Vo(e);return i(u)?bL(u):S_(e)?a(e):typeof e=="boolean"?e+"":"-"}var bR=["a","b","c","d","e","f","g"],tC=function(e,t){return"{"+e+(t??"")+"}"};function SL(e,t,r){ae(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 cae(e,t,r){(e==="week"||e==="month"||e==="quarter"||e==="half-year"||e==="year")&&(e=`MM-dd -yyyy`);var n=qo(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",qn(o,2)).replace("M",o).replace("yyyy",i).replace("yy",qn(i%100+"",2)).replace("dd",qn(s,2)).replace("d",s).replace("hh",qn(l,2)).replace("h",l).replace("mm",qn(u,2)).replace("m",u).replace("ss",qn(c,2)).replace("s",c).replace("SSS",qn(h,3)),e}function hae(e){return e&&e.charAt(0).toUpperCase()+e.substr(1)}function uh(e,t){return t=t||"transparent",ve(e)?e:Re(e)&&e.colorStops&&(e.colorStops[0]||{}).color||t}function Z_(e,t){if(t==="_blank"||t==="blank"){var r=window.open();r.opener=null,r.location.href=e}else window.open(e,t)}var Fx={},rC={},yv=function(){function e(){this._normalMasterList=[],this._nonSeriesBoxMasterList=[]}return e.prototype.create=function(t,r){this._nonSeriesBoxMasterList=n(Fx),this._normalMasterList=n(rC);function n(a,i){var o=[];return R(a,function(s,l){var u=s.create(t,r);o=o.concat(u||[])}),o}},e.prototype.update=function(t,r){R(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"){Fx[t]=r;return}rC[t]=r},e.get=function(t){return rC[t]||Fx[t]},e}();function dae(e){return!!Fx[e]}var fae=1,hH=2;function vae(e){dH.set(e.fullType,{getCoord2:void 0}).getCoord2=e.getCoord2}var dH=we();function fH(e){var t=e.getShallow("coord",!0),r=fae;if(t==null){var n=dH.get(e.type);n&&n.getCoord2&&(r=hH,t=n.getCoord2(e))}return{coord:t,from:r}}var mf=0,Vx=1,vH=2;function pH(e,t){var r=e.getShallow("coordinateSystem"),n=e.getShallow("coordinateSystemUsage",!0),a=mf;if(r){var i=e.mainType==="series";n==null&&(n=i?"data":"box"),n==="data"?(a=Vx,i||(a=mf)):n==="box"&&(a=vH,!i&&!dae(r)&&(a=mf))}return{coordSysType:r,kind:a}}function Ym(e){var t=e.targetModel,r=e.coordSysType,n=e.coordSysProvider,a=e.isDefaultDataCoordSys;e.allowNotFound;var i=pH(t),o=i.kind,s=i.coordSysType;if(a&&o!==Vx&&(o=Vx,s=r),o===mf||s!==r)return mf;var l=n(r,t);return l?(o===Vx?t.coordinateSystem=l:t.boxCoordinateSystem=l,o):mf}var gH=function(e,t){var r=t.getReferringComponents(e,pr).models[0];return r&&r.coordinateSystem},Gx=R,mH=["left","right","top","bottom","width","height"],Pc=[["width","left","right"],["height","top","bottom"]];function CL(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),f=h&&h.getBoundingRect(),v,g;if(e==="horizontal"){var m=c.width+(f?-f.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+(f?-f.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 Gc=CL;nt(CL,"vertical");nt(CL,"horizontal");function yH(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 pae(e,t){var r=Ur(e,t,{enableLayoutOnlyByCenter:!0}),n=e.getBoxLayoutParams(),a,i;if(r.type===Bp.point)i=r.refPoint,a=tr(n,{width:t.getWidth(),height:t.getHeight()});else{var o=e.get("center"),s=ae(o)?o:[o,o];a=tr(n,r.refContainer),i=r.boxCoordFrom===hH?r.refPoint:[me(s[0],a.width)+a.x,me(s[1],a.height)+a.y]}return{viewRect:a,center:i}}function xH(e,t){var r=pae(e,t),n=r.viewRect,a=r.center,i=e.get("radius");ae(i)||(i=[0,i]);var o=me(n.width,t.getWidth()),s=me(n.height,t.getHeight()),l=Math.min(o,s),u=me(i[0],l/2),c=me(i[1],l/2);return{cx:a[0],cy:a[1],r0:u,r:c,viewRect:n}}function tr(e,t,r){r=mv(r||0);var n=t.width,a=t.height,i=me(e.left,n),o=me(e.top,a),s=me(e.right,n),l=me(e.bottom,a),u=me(e.width,n),c=me(e.height,a),h=r[2]+r[0],f=r[1]+r[3],v=e.aspect;switch(isNaN(u)&&(u=n-s-f-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-f),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-f;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-f-i-(s||0)),isNaN(c)&&(c=a-h-o-(l||0));var g=new je((t.x||0)+i+r[3],(t.y||0)+o+r[0],u,c);return g.margin=r,g}function _H(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=Je(s,a[l],!0);n.defaultOption=s}return n.defaultOption},t.prototype.getReferringComponents=function(r,n){var a=r+"Index",i=r+"Id";return sv(this.ecModel,r,{index:this.get(a,!0),id:this.get(i,!0)},n)},t.prototype.getBoxLayoutParams=function(){return yH(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}(vt);n7(ht,vt);k1(ht);Zne(ht);Yne(ht,yae);function yae(e){var t=[];return R(ht.getClassesByMainType(e),function(r){t=t.concat(r.dependencies||r.prototype.dependencies||[])}),t=oe(t,function(r){return bo(r).main}),e!=="dataset"&&Ye(t,"dataset")<=0&&t.unshift("dataset"),t}var K={color:{},darkColor:{},size:{}},wr=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(wr,{primary:wr.neutral80,secondary:wr.neutral70,tertiary:wr.neutral60,quaternary:wr.neutral50,disabled:wr.neutral20,border:wr.neutral30,borderTint:wr.neutral20,borderShade:wr.neutral40,background:wr.neutral05,backgroundTint:"rgba(234,237,245,0.5)",backgroundTransparent:"rgba(255,255,255,0)",backgroundShade:wr.neutral10,shadow:"rgba(0,0,0,0.2)",shadowTint:"rgba(129,130,136,0.2)",axisLine:wr.neutral70,axisLineTint:wr.neutral40,axisTick:wr.neutral70,axisTickMinor:wr.neutral60,axisLabel:wr.neutral70,axisSplitLine:wr.neutral15,axisMinorSplitLine:wr.neutral05});for(var ec in wr)if(wr.hasOwnProperty(ec)){var wR=wr[ec];ec==="theme"?K.darkColor.theme=wr.theme.slice():ec==="highlight"?K.darkColor.highlight="rgba(255,231,130,0.4)":ec.indexOf("accent")===0?K.darkColor[ec]=Ls(wR,null,function(e){return e*.5},function(e){return Math.min(1,1.3-e)}):K.darkColor[ec]=Ls(wR,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 wH="";typeof navigator<"u"&&(wH=navigator.platform||"");var vd="rgba(0, 0, 0, 0.2)",SH=K.color.theme[0],xae=Ls(SH,null,null,.9);const CH={darkMode:"auto",colorBy:"series",color:K.color.theme,gradientColor:[xae,SH],aria:{decal:{decals:[{color:vd,dashArrayX:[1,0],dashArrayY:[2,5],symbolSize:1,rotation:Math.PI/6},{color:vd,symbol:"circle",dashArrayX:[[8,8],[0,8,8,0]],dashArrayY:[6,0],symbolSize:.8},{color:vd,dashArrayX:[1,0],dashArrayY:[4,3],rotation:-Math.PI/4},{color:vd,dashArrayX:[[6,6],[0,6,6,0]],dashArrayY:[6,0]},{color:vd,dashArrayX:[[1,0],[1,6]],dashArrayY:[1,0,6,0],rotation:Math.PI/4},{color:vd,symbol:"triangle",dashArrayX:[[9,9],[0,9,9,0]],dashArrayY:[7,2],symbolSize:.75}]}},textStyle:{fontFamily:wH.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 fn={Must:1,Might:2,Not:3},TH=Qe();function _ae(e){TH(e).datasetMap=we()}function MH(e,t,r){var n={},a=ML(t);if(!a||!e)return n;var i=[],o=[],s=t.ecModel,l=TH(s).datasetMap,u=a.uid+"_"+r.seriesLayoutBy,c,h;e=e.slice(),R(e,function(m,y){var x=Re(m)?m:e[y]={name:m};x.type==="ordinal"&&c==null&&(c=y,h=g(x)),n[x.name]=[]});var f=l.get(u)||l.set(u,{categoryWayDim:h,valueWayDim:0});R(e,function(m,y){var x=m.name,_=g(m);if(c==null){var w=f.valueWayDim;v(n[x],w,_),v(o,w,_),f.valueWayDim+=_}else if(c===y)v(n[x],0,_),v(i,0,_);else{var w=f.categoryWayDim;v(n[x],w,_),v(o,w,_),f.categoryWayDim+=_}});function v(m,y,x){for(var _=0;_t)return e[n];return e[r-1]}function kH(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:Tae(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 Mae(e,t){t(e).paletteIdx=0,t(e).paletteNameMap={}}var c0,ep,CR,TR="\0_ec_inner",Aae=1,NL=function(e){q(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 vt(i),this._locale=new vt(o),this._optionManager=s},t.prototype.setOption=function(r,n,a){var i=NR(n);this._optionManager.setOption(r,a,i),this._resetOption(null,i)},t.prototype.resetOption=function(r,n){return this._resetOption(r,NR(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"?CR(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&&R(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=we(),u=n&&n.replaceMergeMainTypeMap;_ae(this),R(r,function(h,f){h!=null&&(ht.hasClass(f)?f&&(s.push(f),l.set(f,!0)):a[f]=a[f]==null?ke(h):Je(a[f],h,!0))}),u&&u.each(function(h,f){ht.hasClass(f)&&!l.get(f)&&(s.push(f),l.set(f,!0))}),ht.topologicalTravel(s,ht.getAllClassMainTypes(),c,this);function c(h){var f=Sae(this,h,Zt(r[h])),v=i.get(h),g=v?u&&u.get(h)?"replaceMerge":"normalMerge":"replaceAll",m=XG(v,f,g);Ete(m,h,ht),a[h]=null,i.set(h,null),o.set(h,0);var y=[],x=[],_=0,w;R(m,function(S,C){var M=S.existing,A=S.newOption;if(!A)M&&(M.mergeOption({},this),M.optionUpdated({},!1));else{var k=h==="series",I=ht.getClass(h,S.keyInfo.subType,!k);if(!I)return;if(h==="tooltip"){if(w)return;w=!0}if(M&&M.constructor===I)M.name=S.keyInfo.name,M.mergeOption(A,this),M.optionUpdated(A,!1);else{var P=te({componentIndex:C},S.keyInfo);M=new I(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"&&c0(this)}this._seriesIndices||c0(this)},t.prototype.getOption=function(){var r=ke(this.option);return R(r,function(n,a){if(ht.hasClass(a)){for(var i=Zt(n),o=i.length,s=!1,l=o-1;l>=0;l--)i[l]&&!Xg(i[l])?s=!0:(i[l]=null,!s&&o--);i.length=o,r[a]=i}}),delete r[TR],r},t.prototype.setTheme=function(r){this._theme=new vt(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 Eae(e,t){return e.join(",")===t.join(",")}var Ni=R,tm=Re,kR=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"];function nC(e){var t=e&&e.itemStyle;if(t)for(var r=0,n=kR.length;r0?r[o-1].seriesModel:null)}),Wae(r)}})}function Wae(e){R(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 f=o.get(t.stackedDimension,h);if(isNaN(f))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"&&f>=0&&_>0||l==="samesign"&&f<=0&&_<0){f=pc(f,_),m=_;break}}}return n[0]=f,n[1]=m,n})})}var G1=function(){function e(t){this.data=t.data||(t.sourceFormat===Yi?{}:[]),this.sourceFormat=t.sourceFormat||p7,this.seriesLayoutBy=t.seriesLayoutBy||Bi,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};RR=(t={},t[ln+"_"+Bi]={pure:!0,appendData:i},t[ln+"_"+jh]={pure:!0,appendData:function(){throw new Error('Do not support appendData when set seriesLayoutBy: "row".')}},t[Va]={pure:!0,appendData:i},t[Yi]={pure:!0,appendData:function(o){var s=this._data;R(o,function(l,u){for(var c=s[u]||(s[u]=[]),h=0;h<(l||[]).length;h++)c.push(l[h])})}},t[Fa]={appendData:i},t[Xl]={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 Of(this.getData(r),t)},e.prototype.formatTooltip=function(t,r,n){},e}();function FR(e){var t,r;return Re(e)?e.type&&(r=e):t=e,{text:t,frag:r}}function vg(e){return new Qae(e)}var Qae=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 f=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(f!=null?this._dueIndex+f: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}},tie=function(){function e(t,r){if(!Tt(r)){var n="";Lt(n)}this._opFn=BH[t],this._rvalFloat=Vo(r)}return e.prototype.evaluate=function(t){return Tt(t)?this._opFn(t,this._rvalFloat):this._opFn(Vo(t),this._rvalFloat)},e}(),FH=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=Tt(t)?t:Vo(t),a=Tt(r)?r:Vo(r),i=isNaN(n),o=isNaN(a);if(i&&(n=this._incomparable),o&&(a=this._incomparable),i&&o){var s=ve(t),l=ve(r);s&&(n=l?t:0),l&&(a=s?r:0)}return na?-this._resultLT:0},e}(),rie=function(){function e(t,r){this._rval=r,this._isEQ=t,this._rvalTypeof=typeof r,this._rvalFloat=Vo(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=Vo(t)===this._rvalFloat)}return this._isEQ?r:!r},e}();function nie(e,t){return e==="eq"||e==="ne"?new rie(e==="eq",t):Se(BH,e)?new tie(e,t):null}function VH(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 GH(e,t){return t>e.g&&t>=e.ge&&t65535?fie:vie}function pie(e){var t=e.constructor;return t===Array?e.slice():new t(e)}function HR(e,t,r,n,a){var i=WH[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&&_<=f||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&&_<=f||isNaN(_))&&(M>=S&&M<=C||isNaN(M))&&(l[u++]=m),m++}g=!0}}if(!g)if(i===1)for(var x=0;x=h&&_<=f||isNaN(_))&&(l[u++]=A)}else for(var x=0;xt[P][1])&&(k=!1)}k&&(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,f,v=new(pd(this._rawCount))(Math.min((Math.ceil(o/l)+2)*2,o));v[s++]=u;for(var g=1;gc&&(c=h,f=S)}j>0&&js&&(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),f[v++]=_}return i._count=v,i._indices=f,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]=[f,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 Kl(r[i],this._dimensions[i])}oC={arrayRows:t,objectRows:function(r,n,a,i){return Kl(r[n],this._dimensions[i])},keyedColumns:t,original:function(r,n,a,i){var o=r&&(r.value==null?r:r.value);return Kl(o instanceof Array?o[i]:o,this._dimensions[i])},typedArray:function(r,n,a,i){return r[i]}}}(),e}(),$H=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(d0(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=ta(s)?Xl:Fa,i=[];var h=this._getSourceMetaRawOption()||{},f=u&&u.metaRawOption||{},v=Te(h.seriesLayoutBy,f.seriesLayoutBy)||null,g=Te(h.sourceHeader,f.sourceHeader),m=Te(h.dimensions,f.dimensions),y=v!==f.seriesLayoutBy||!!g!=!!f.sourceHeader||m;a=y?[XM(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=[XM(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&&WR(i)}var o,s=[],l=[];return R(t,function(u){u.prepareSource();var c=u.getSource(a||0),h="";a!=null&&!c&&WR(h),s.push(c),l.push(u._getVersionSign())}),n?o=hie(n,s,{datasetIndex:r.componentIndex}):a!=null&&(o=[$ae(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 R(e.blocks,function(a){var i=qH(a);i>=t&&(t=i+ +(n&&(!i||KM(a)&&!a.noHeader)))}),t}return 0}function xie(e,t,r,n){var a=t.noHeader,i=bie(qH(t)),o=[],s=t.blocks||[];bn(!s||ae(s)),s=s||[];var l=e.orderMode;if(t.sortBlocks&&l){s=s.slice();var u={valueAsc:"asc",valueDesc:"desc"};if(Se(u,l)){var c=new FH(u[l],null);s.sort(function(m,y){return c.evaluate(m.sortParam,y.sortParam)})}else l==="seriesDesc"&&s.reverse()}R(s,function(m,y){var x=t.valueFormatter,_=XH(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):JM(n,o.join(""),a?r:i.html);if(a)return h;var f=$M(t.header,"ordinal",e.useUTC),v=YH(n,e.renderMode).nameStyle,g=ZH(n);return e.renderMode==="richText"?KH(e,f,v)+i.richText+h:JM(n,'
'+On(f)+"
"+h,r)}function _ie(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=ae(S)?S:[S],oe(S,function(C,M){return $M(C,ae(v)?v[M]:v,u)})};if(!(i&&o)){var h=s?"":e.markupStyleCreator.makeTooltipMarker(t.markerType,t.markerColor||K.color.secondary,a),f=i?"":$M(l,"ordinal",u),v=t.valueType,g=o?[]:c(t.value,t.rawDataIndex),m=!s||!i,y=!s&&i,x=YH(n,a),_=x.nameStyle,w=x.valueStyle;return a==="richText"?(s?"":h)+(i?"":KH(e,f,_))+(o?"":Cie(e,g,m,y,w)):JM(n,(s?"":h)+(i?"":wie(f,!s,_))+(o?"":Sie(g,m,y,w)),r)}}function $R(e,t,r,n,a,i){if(e){var o=XH(e),s={useUTC:a,renderMode:r,orderMode:n,markupStyleCreator:t,valueFormatter:e.valueFormatter};return o(s,e,0,i)}}function bie(e){return{html:mie[e],richText:yie[e]}}function JM(e,t,r){var n='
',a="margin: "+r+"px 0 0",i=ZH(e);return'
'+t+n+"
"}function wie(e,t,r){var n=t?"margin-left:2px":"";return''+On(e)+""}function Sie(e,t,r,n){var a=r?"10px":"20px",i=t?"float:right;margin-left:"+a:"";return e=ae(e)?e:[e],''+oe(e,function(o){return On(o)}).join("  ")+""}function KH(e,t,r){return e.markupStyleCreator.wrapRichTextStyle(t,r)}function Cie(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(ae(t)?t.join(" "):t,i)}function JH(e,t){var r=e.getData().getItemVisual(t,"style"),n=r[e.visualDrawType];return uh(n)}function QH(e,t){var r=e.get("padding");return r??(t==="richText"?[8,10]:10)}var sC=function(){function e(){this.richTextStyles={},this._nextStyleNameId=Vk()}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=cH({color:r,type:t,renderMode:n,markerId:a});return ve(i)?i:(this.richTextStyles[a]=i.style,i.content)},e.prototype.wrapRichTextStyle=function(t,r){var n={};ae(r)?R(r,function(i){return te(n,i)}):te(n,r);var a=this._generateStyleName();return this.richTextStyles[a]=n,"{"+a+"|"+t+"}"},e}();function eU(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=ae(s),u=JH(t,r),c,h,f,v;if(o>1||l&&!o){var g=Tie(s,t,r,i,u);c=g.inlineValues,h=g.inlineValueTypes,f=g.blocks,v=g.inlineValues[0]}else if(o){var m=a.getDimensionInfo(i[0]);v=c=Of(a,r,i[0]),h=m.type}else v=c=l?s[0]:s;var y=Gk(t),x=y&&t.name||"",_=a.getName(r),w=n?x:_;return Er("section",{header:x,noHeader:n||!y,sortParam:v,blocks:[Er("nameValue",{markerType:"item",markerColor:u,name:w,noName:!La(w),value:c,valueType:h,rawDataIndex:a.getRawIndex(r)})].concat(f||[])})}function Tie(e,t,r,n,a){var i=t.getData(),o=gi(e,function(h,f,v){var g=i.getDimensionInfo(v);return h=h||g&&g.tooltip!==!1&&g.displayName!=null},!1),s=[],l=[],u=[];n.length?R(n,function(h){c(Of(i,r,h),h)}):R(e,c);function c(h,f){var v=i.getDimensionInfo(f);!v||v.otherDims.tooltip===!1||(o?u.push(Er("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 dl=Qe();function f0(e,t){return e.getName(t)||e.getId(t)}var Hx="__universalTransitionEnabled",Ut=function(e){q(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=vg({count:Aie,reset:Nie}),this.dataTask.context={model:this},this.mergeDefaultAndTheme(r,a);var i=dl(this).sourceManager=new $H(this);i.prepareSource();var o=this.getInitialData(r,a);YR(o,this),this.dataTask.context.data=o,dl(this).dataBeforeProcessed=o,ZR(this),this._initSelectedMapFromData(o)},t.prototype.mergeDefaultAndTheme=function(r,n){var a=em(this),i=a?zh(r):{},o=this.subType;ht.hasClass(o)&&(o+="Series"),Je(r,n.getTheme().get(this.subType)),Je(r,this.getDefaultOption()),rh(r,"label",["show"]),this.fillDataTextStyle(r.data),a&&Uo(r,i,a)},t.prototype.mergeOption=function(r,n){r=Je(this.option,r,!0),this.fillDataTextStyle(r.data);var a=em(this);a&&Uo(this.option,r,a);var i=dl(this).sourceManager;i.dirty(),i.prepareSource();var o=this.getInitialData(r,n);YR(o,this),this.dataTask.dirty(),this.dataTask.context.data=o,dl(this).dataBeforeProcessed=o,ZR(this),this._initSelectedMapFromData(o)},t.prototype.fillDataTextStyle=function(r){if(r&&!ta(r))for(var n=["show"],a=0;a=0&&f<0)&&(h=C,f=S,v=0),S===f&&(c[v++]=y))}return c.length=v,c},t.prototype.formatTooltip=function(r,n,a){return eU({series:this,dataIndex:r,multipleSeries:n})},t.prototype.isAnimationEnabled=function(){var r=this.ecModel;if(xt.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=AL.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[f0(i,r)])&&!i.getItemModel(r).get(["select","disabled"])},t.prototype.isUniversalTransitionEnabled=function(){if(this[Hx])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"){Re(o.selectedMap)||(o.selectedMap={});for(var u=o.selectedMap,c=0;c0&&this._innerSelect(r,n)}},t.registerClass=function(r){return ht.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}(ht);kr(Ut,H1);kr(Ut,AL);n7(Ut,ht);function ZR(e){var t=e.name;Gk(e)||(e.name=Mie(e)||t)}function Mie(e){var t=e.getRawData(),r=t.mapDimensionsAll("seriesName"),n=[];return R(r,function(a){var i=t.getDimensionInfo(a);i.displayName&&n.push(i.displayName)}),n.join(" ")}function Aie(e){return e.model.getRawData().count()}function Nie(e){var t=e.model;return t.setData(t.getRawData().cloneShallow()),kie}function kie(e,t){t.outputData&&e.end>t.outputData.count()&&t.model.getRawData().cloneShallow(t.outputData)}function YR(e,t){R(Lf(e.CHANGABLE_METHODS,e.DOWNSAMPLE_METHODS),function(r){e.wrapMethod(r,nt(Lie,t))})}function Lie(e,t){var r=QM(e);return r&&r.setOutputEnd((t||this).count()),t}function QM(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 Yt=function(){function e(){this.group=new De,this.uid=Oh("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}();Wk(Yt);k1(Yt);function Bh(){var e=Qe();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 tU=Qe(),Iie=Bh(),Rt=function(){function e(){this.group=new De,this.uid=Oh("viewChart"),this.renderTask=vg({plan:Pie,reset:Die}),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&&qR(i,a,"emphasis")},e.prototype.downplay=function(t,r,n,a){var i=t.getData(a&&a.dataType);i&&qR(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){Su(this.group,t)},e.markUpdateMethod=function(t,r){tU(t).updateMethod=r},e.protoInitialize=function(){var t=e.prototype;t.type="chart"}(),e}();function XR(e,t,r){e&&Kg(e)&&(t==="emphasis"?Us:Ws)(e,r)}function qR(e,t,r){var n=nh(e,t),a=t&&t.highlightKey!=null?ane(t.highlightKey):null;n!=null?R(Zt(n),function(i){XR(e.getItemGraphicEl(i),r,a)}):e.eachItemGraphicEl(function(i){XR(i,r,a)})}Wk(Rt);k1(Rt);function Pie(e){return Iie(e.model)}function Die(e){var t=e.model,r=e.ecModel,n=e.api,a=e.payload,i=t.pipelineContext.progressiveRender,o=e.view,s=a&&tU(a).updateMethod,l=i?"incrementalPrepareRender":s&&o[s]?s:"render";return l!=="render"&&o[l](t,r,n,a),jie[l]}var jie={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)}}},Y_="\0__throttleOriginMethod",KR="\0__throttleRate",JR="\0__throttleType";function U1(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 f=function(){for(var v=[],g=0;g=0?h():o=setTimeout(h,-s),a=n};return f.clear=function(){o&&(clearTimeout(o),o=null)},f.debounceNextCall=function(v){c=v},f}function xv(e,t,r,n){var a=e[t];if(a){var i=a[Y_]||a,o=a[JR],s=a[KR];if(s!==r||o!==n){if(r==null||!n)return e[t]=i;a=e[t]=U1(i,r,n==="debounce"),a[Y_]=i,a[JR]=n,a[KR]=r}return a}}function rm(e,t){var r=e[t];r&&r[Y_]&&(r.clear&&r.clear(),e[t]=r[Y_])}var QR=Qe(),eO={itemStyle:ih(Q7,!0),lineStyle:ih(J7,!0)},Eie={lineStyle:"stroke",itemStyle:"fill"};function rU(e,t){var r=e.visualStyleMapper||eO[t];return r||(console.warn("Unknown style type '"+t+"'."),eO.itemStyle)}function nU(e,t){var r=e.visualDrawType||Eie[t];return r||(console.warn("Unknown style type '"+t+"'."),"fill")}var Rie={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){var r=e.getData(),n=e.visualStyleAccessPath||"itemStyle",a=e.getModel(n),i=rU(e,n),o=i(a),s=a.getShallow("decal");s&&(r.setVisual("decal",s),s.dirty=!0);var l=nU(e,n),u=o[l],c=Le(u)?u:null,h=o.fill==="auto"||o.stroke==="auto";if(!o[l]||c||h){var f=e.getColorFromPalette(e.name,null,t.getSeriesCount());o[l]||(o[l]=f,r.setVisual("colorFromPalette",!0)),o.fill=o.fill==="auto"||Le(o.fill)?f:o.fill,o.stroke=o.stroke==="auto"||Le(o.stroke)?f: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)}}}},rp=new vt,Oie={createOnAllSeries:!0,reset:function(e,t){if(!e.ignoreStyleOnData){var r=e.getData(),n=e.visualStyleAccessPath||"itemStyle",a=rU(e,n),i=r.getVisual("drawType");return{dataEach:r.hasItemOption?function(o,s){var l=o.getRawDataItem(s);if(l&&l[n]){rp.option=l[n];var u=a(rp),c=o.ensureUniqueItemVisual(s,"style");te(c,u),rp.option.decal&&(o.setItemVisual(s,"decal",rp.option.decal),rp.option.decal.dirty=!0),i in u&&o.setItemVisual(s,"colorFromPalette",!1)}}:null}}}},zie={performRawSeries:!0,overallReset:function(e){var t=we();e.eachSeries(function(r){if(!r.isColorBySeries()){var n=r.type+"-"+r.getColorBy();QR(r).scope=t.get(n)||t.set(n,{})}}),e.eachSeries(function(r){if(!r.isColorBySeries()){var n=r.getRawData(),a={},i=r.getData(),o=QR(r).scope,s=r.visualStyleAccessPath||"itemStyle",l=nU(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 f=i.ensureUniqueItemVisual(c,"style"),v=n.getName(u)||u+"",g=n.count();f[l]=r.getColorFromPalette(v,o,g)}})}})}},v0=Math.PI;function Bie(e,t){t=t||{},Ee(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 De,n=new it({style:{fill:t.maskColor},zlevel:t.zlevel,z:1e4});r.add(n);var a=new wt({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 it({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 Um({shape:{startAngle:-v0/2,endAngle:-v0/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:v0*3/2}).start("circularInOut"),o.animateShape(!0).when(1e3,{startAngle:v0*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 aU=function(){function e(t,r,n,a){this._stageTaskMap=we(),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):t7(t,r,n);t.pipelineContext=n.context=a},e.prototype.restorePipelines=function(t,r){var n=this,a=n._pipelineMap=we();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;R(this._allHandlers,function(a){var i=t.get(a.uid)||t.set(a.uid,{}),o="";bn(!(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;R(t,function(l,u){if(!(a.visualType&&a.visualType!==l.visualType)){var c=o._stageTaskMap.get(l.uid),h=c.seriesTaskMap,f=c.overallTask;if(f){var v,g=f.agentStubMap;g.each(function(y){s(a,y)&&(y.dirty(),v=!0)}),v&&f.dirty(),o.updatePayload(f,n);var m=o.getPerformArgs(f,a.block);g.each(function(y){y.perform(m)}),f.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=we(),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 f=h.uid,v=s.set(f,o&&o.get(f)||vg({plan:Uie,reset:Wie,count:Zie}));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||vg({reset:Fie});o.context={ecModel:n,api:a,overallReset:t.overallReset,scheduler:i};var s=o.agentStubMap,l=o.agentStubMap=we(),u=t.seriesType,c=t.getTargetSeries,h=t.dirtyOnOverallProgress,f=!1,v="";bn(!t.createOnAllSeries,v),u?n.eachRawSeriesByType(u,g):c?c(n,a).each(g):R(n.getSeries(),g);function g(m){var y=m.uid,x=l.set(y,s&&s.get(y)||(f=!0,vg({reset:Vie,onDirty:Hie})));x.context={model:m,dirtyOnOverallProgress:h},x.agent=o,x.__block=h,i._pipe(m,x)}f&&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 Le(t)&&(t={overallReset:t,seriesType:Yie(t)}),t.uid=Oh("stageHandler"),r&&(t.visualType=r),t},e}();function Fie(e){e.overallReset(e.ecModel,e.api,e.payload)}function Vie(e){return e.dirtyOnOverallProgress&&Gie}function Gie(){this.agent.dirty(),this.getDownstream().dirty()}function Hie(){this.agent&&this.agent.dirty()}function Uie(e){return e.plan?e.plan(e.model,e.ecModel,e.api,e.payload):null}function Wie(e){e.useClearVisual&&e.data.clearAllVisual();var t=e.resetDefines=Zt(e.reset(e.model,e.ecModel,e.api,e.payload));return t.length>1?oe(t,function(r,n){return iU(n)}):$ie}var $ie=iU(0);function iU(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-f.length){var g=u.slice(0,v);g!=="data"&&(r.mainType=g,r[f.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,f,v,g){return h[v]==null||f[g||v]===h[v]}},e.prototype.afterTrigger=function(){this.eventInfo=null},e}(),eA=["symbol","symbolSize","symbolRotate","symbolOffset"],nO=eA.concat(["symbolKeepAspect"]),qie={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&&jc(l)?l:.5;var u=e.createRadialGradient(o,s,0,o,s,l);return u}function tA(e,t,r){for(var n=t.type==="radial"?poe(e,t,r):voe(e,t,r),a=t.colorStops,i=0;i0)?null:e==="dashed"?[4*t,2*t]:e==="dotted"?[t]:Tt(e)?[e]:ae(e)?e:null}function jL(e){var t=e.style,r=t.lineDash&&t.lineWidth>0&&moe(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 yoe=new Go(!0);function K_(e){var t=e.stroke;return!(t==null||t==="none"||!(e.lineWidth>0))}function aO(e){return typeof e=="string"&&e!=="none"}function J_(e){var t=e.fill;return t!=null&&t!=="none"}function iO(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 oO(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 rA(e,t,r){var n=$k(t.image,t.__image,r);if(L1(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)*ng),i.scaleSelf(t.scaleX||1,t.scaleY||1),a.setTransform(i)}return a}}function xoe(e,t,r,n,a){var i,o=K_(r),s=J_(r),l=r.strokePercent,u=l<1,c=!t.path;(!t.silent||u)&&c&&t.createPathProxy();var h=t.path||yoe,f=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=f?tA(e,v,A):t.__canvasFillGradient,t.__canvasFillGradient=w),y&&(S=f?tA(e,g,A):t.__canvasStrokeGradient,t.__canvasStrokeGradient=S),x&&(C=f||!t.__canvasFillPattern?rA(e,v,t):t.__canvasFillPattern,t.__canvasFillPattern=C),_&&(M=f||!t.__canvasStrokePattern?rA(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 k=t.getGlobalScale();h.setScale(k[0],k[1],t.segmentIgnoreThreshold);var I,P;e.setLineDash&&r.lineDash&&(i=jL(t),I=i[0],P=i[1]);var j=!0;(c||f&Dd)&&(h.setDPR(e.dpr),u?h.setContext(null):(h.setContext(e),j=!1),h.reset(),t.buildPath(h,t.shape,n),h.toStatic(),t.pathUpdated()),j&&h.rebuildPath(e,u?l:1),I&&(e.setLineDash(I),e.lineDashOffset=P),n?(a.batchFill=s,a.batchStroke=o):r.strokeFirst?(o&&oO(e,r),s&&iO(e,r)):(s&&iO(e,r),o&&oO(e,r)),I&&e.setLineDash([])}function _oe(e,t,r){var n=t.__image=$k(r.image,t.__image,t,t.onload);if(!(!n||!L1(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,f=s-c;e.drawImage(n,u,c,h,f,a,i,o,s)}else e.drawImage(n,a,i,o,s)}}function boe(e,t,r){var n,a=r.text;if(a!=null&&(a+=""),a){e.font=r.font||Fs,e.textAlign=r.textAlign,e.textBaseline=r.textBaseline;var i=void 0,o=void 0;e.setLineDash&&r.lineDash&&(n=jL(t),i=n[0],o=n[1]),i&&(e.setLineDash(i),e.lineDashOffset=o),r.strokeFirst?(K_(r)&&e.strokeText(a,r.x,r.y),J_(r)&&e.fillText(a,r.x,r.y)):(J_(r)&&e.fillText(a,r.x,r.y),K_(r)&&e.strokeText(a,r.x,r.y)),i&&e.setLineDash([])}}var sO=["shadowBlur","shadowOffsetX","shadowOffsetY"],lO=[["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]];function gU(e,t,r,n,a){var i=!1;if(!n&&(r=r||{},t===r))return!1;if(n||t.opacity!==r.opacity){Jn(e,a),i=!0;var o=Math.max(Math.min(t.opacity,1),0);e.globalAlpha=isNaN(o)?Bc.opacity:o}(n||t.blend!==r.blend)&&(i||(Jn(e,a),i=!0),e.globalCompositeOperation=t.blend||Bc.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[zr]){if(this._disposed){this.id;return}var i,o,s;if(Re(n)&&(a=n.lazyUpdate,i=n.silent,o=n.replaceMerge,s=n.transition,n=n.notMerge),this[zr]=!0,xd(this),!this._model||n){var l=new Iae(this._api),u=this._theme,c=this._model=new NL;c.scheduler=this._scheduler,c.ssr=this._ssr,c.init(null,null,null,u,this._locale,l)}this._model.setOption(r,{replaceMerge:o},oA);var h={seriesTransition:s,optionChanged:!0};if(a)this[tn]={silent:i,updateParams:h},this[zr]=!1,this.getZr().wakeUp();else{try{ic(this),fs.update.call(this,null,h)}catch(f){throw this[tn]=null,this[zr]=!1,f}this._ssr||this._zr.flush(),this[tn]=null,this[zr]=!1,md.call(this,i),yd.call(this,i)}}},t.prototype.setTheme=function(r,n){if(!this[zr]){if(this._disposed){this.id;return}var a=this._model;if(a){var i=n&&n.silent,o=null;this[tn]&&(i==null&&(i=this[tn].silent),o=this[tn].updateParams,this[tn]=null),this[zr]=!0,xd(this);try{this._updateTheme(r),a.setTheme(this._theme),ic(this),fs.update.call(this,{type:"setTheme"},o)}catch(s){throw this[zr]=!1,s}this[zr]=!1,md.call(this,i),yd.call(this,i)}}},t.prototype._updateTheme=function(r){ve(r)&&(r=IU[r]),r&&(r=ke(r),r&&IH(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||xt.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 R(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;R(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 R(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(rb[a]){var l=s,u=s,c=-s,h=-s,f=[],v=r&&r.pixelRatio||this.getDevicePixelRatio();R(Hc,function(w,S){if(w.group===a){var C=n?w.getZr().painter.getSvgDom().innerHTML:w.renderToCanvas(ke(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),f.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=qr.createCanvas(),x=CM(y,{renderer:n?"svg":"canvas"});if(x.resize({width:g,height:m}),n){var _="";return R(f,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 it({shape:{x:0,y:0,width:g,height:m},style:{fill:r.connectedBackgroundColor}})),R(f,function(w){var S=new Qr({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 y0(this,"convertToPixel",r,n,a)},t.prototype.convertToLayout=function(r,n,a){return y0(this,"convertToLayout",r,n,a)},t.prototype.convertFromPixel=function(r,n,a){return y0(this,"convertFromPixel",r,n,a)},t.prototype.containPixel=function(r,n){if(this._disposed){this.id;return}var a=this._model,i,o=ff(a,r);return R(o,function(s,l){l.indexOf("Models")>=0&&R(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=ff(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?DL(s,l,n):Xm(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;R($oe,function(a){var i=function(o){var s=r.getModel(),l=o.target,u,c=a==="globalout";if(c?u={}:l&&Dc(l,function(m){var y=Be(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,f=u.componentIndex;(h==="markLine"||h==="markPoint"||h==="markArea")&&(h="series",f=u.seriesIndex);var v=h&&f!=null&&s.getComponent(h,f),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;R(aA,function(a,i){n.on(i,function(o){r.trigger(i,o)})}),Jie(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&&KG(this.getDom(),zL,"");var n=this,a=n._api,i=n._model;R(n._componentsViews,function(o){o.dispose(i,a)}),R(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 Hc[n.id]},t.prototype.resize=function(r){if(!this[zr]){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[tn]&&(i==null&&(i=this[tn].silent),a=!0,this[tn]=null),this[zr]=!0,xd(this);try{a&&ic(this),fs.update.call(this,{type:"resize",animation:te({duration:0},r&&r.animation)})}catch(o){throw this[zr]=!1,o}this[zr]=!1,md.call(this,i),yd.call(this,i)}}},t.prototype.showLoading=function(r,n){if(this._disposed){this.id;return}if(Re(r)&&(n=r,r=""),r=r||"default",this.hideLoading(),!!sA[r]){var a=sA[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=nA[r.type],n},t.prototype.dispatchAction=function(r,n){if(this._disposed){this.id;return}if(Re(n)||(n={silent:!!n}),!!eb[r.type]&&this._model){if(this[zr]){this._pendingActions.push(r);return}var a=n.silent;fC.call(this,r,a);var i=n.flush;i?this._zr.flush():i!==!1&&xt.browser.weChat&&this._throttledZrFlush(),md.call(this,a),yd.call(this,a)}},t.prototype.updateLabelLayout=function(){Ka.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(){ic=function(h){toe(h._model);var f=h._scheduler;f.restorePipelines(h._zr,h._model),f.prepareStageTasks(),hC(h,!0),hC(h,!1),f.plan()},hC=function(h,f){for(var v=h._model,g=h._scheduler,m=f?h._componentsViews:h._chartsViews,y=f?h._componentsMap:h._chartsMap,x=h._zr,_=h._api,w=0;wTe(f.get("hoverLayerThreshold"),CH.hoverLayerThreshold)&&!xt.node&&!xt.worker;(h._usingTHL||y)&&(f.eachSeries(function(x){if(!x.preventUsingHoverLayer){var _=h._chartsMap[x.__viewId];_.__alive&&_.eachRendered(function(w){var S=w.states.emphasis;S&&S.hoverLayer!==vv&&(S.hoverLayer=y?V7:F7)})}}),h._usingTHL=y)}}function s(h,f){var v=h.get("blendMode")||null;f.eachRendered(function(g){g.isGroup||(g.style.blend=v)})}function l(h,f){if(!h.preventAutoZ){var v=lh(h);f.eachRendered(function(g){return z1(g,v.z,v.zlevel),!0})}}function u(h,f){f.eachRendered(function(v){if(!vf(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,f){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;f.eachRendered(function(x){if(x.states&&x.states.emphasis){if(vf(x))return;if(x instanceof pt&&ine(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)}})}wO=function(h){return new(function(f){q(v,f);function v(){return f!==null&&f.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){Us(g,m),$a(h)},v.prototype.leaveEmphasis=function(g,m){Ws(g,m),$a(h)},v.prototype.enterBlur=function(g){S7(g),$a(h)},v.prototype.leaveBlur=function(g){Jk(g),$a(h)},v.prototype.enterSelect=function(g){C7(g),$a(h)},v.prototype.leaveSelect=function(g){T7(g),$a(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[g0]},v.prototype.usingTHL=function(){return h._usingTHL},v}(m7))(h)},LU=function(h){function f(v,g){for(var m=0;m=0)){CO.push(r);var o=aU.wrapStageHandler(r,a);o.__prio=t,o.__raw=r,e.push(o)}}function UL(e,t){sA[e]=t}function rse(e){eG({createCanvas:e})}function OU(e,t,r){var n=dU("registerMap");n&&n(e,t,r)}function nse(e){var t=dU("getMap");return t&&t(e)}var zU=cie;Tu(RL,Rie);Tu($1,Oie);Tu($1,zie);Tu(RL,qie);Tu($1,Kie);Tu(SU,koe);VL(IH);GL(Eoe,Hae);UL("default",Bie);Xi({type:Fc,event:Fc,update:Fc},hr);Xi({type:Ex,event:Ex,update:Ex},hr);Xi({type:B_,event:qk,update:B_,action:hr,refineEvent:WL,publishNonRefinedEvent:!0});Xi({type:jM,event:qk,update:jM,action:hr,refineEvent:WL,publishNonRefinedEvent:!0});Xi({type:F_,event:qk,update:F_,action:hr,refineEvent:WL,publishNonRefinedEvent:!0});function WL(e,t,r,n){return{eventContent:{selected:ene(r),isFromClick:t.isFromClick||!1}}}FL("default",{});FL("dark",lU);var ase={},TO=[],ise={registerPreprocessor:VL,registerProcessor:GL,registerPostInit:DU,registerPostUpdate:jU,registerUpdateLifecycle:Z1,registerAction:Xi,registerCoordinateSystem:EU,registerLayout:RU,registerVisual:Tu,registerTransform:zU,registerLoading:UL,registerMap:OU,registerImpl:Qie,PRIORITY:CU,ComponentModel:ht,ComponentView:Yt,SeriesModel:Ut,ChartView:Rt,registerComponentModel:function(e){ht.registerClass(e)},registerComponentView:function(e){Yt.registerClass(e)},registerSeriesModel:function(e){Ut.registerClass(e)},registerChartView:function(e){Rt.registerClass(e)},registerCustomSeries:function(e,t){vU(e,t)},registerSubTypeDefaulter:function(e,t){ht.registerSubTypeDefaulter(e,t)},registerPainter:function(e,t){zG(e,t)}};function rt(e){if(ae(e)){R(e,function(t){rt(t)});return}Ye(TO,e)>=0||(TO.push(e),Le(e)&&(e={install:e}),e.install(ise))}function ap(e){return e==null?0:e.length||1}function MO(e){return e}var $s=function(){function e(t,r,n,a,i,o){this._old=t,this._new=r,this._oldKeyGetter=n||MO,this._newKeyGetter=a||MO,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&&f===1)this._updateManyToOne&&this._updateManyToOne(c,u),a[l]=null;else if(h===1&&f>1)this._updateOneToMany&&this._updateOneToMany(c,u),a[l]=null;else if(h===1&&f===1)this._update&&this._update(c,u),a[l]=null;else if(h>1&&f>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 ip=Re,fl=oe,hse=typeof Int32Array>"u"?Array:Int32Array,dse="e\0\0",AO=-1,fse=["hasItemOption","_nameList","_idList","_invertedIndicesMap","_dimSummary","userOutput","_rawData","_dimValueGetter","_nameDimIdx","_idDimIdx","_nameRepeatCount"],vse=["_approximateExtent"],NO,_0,op,sp,gC,lp,mC,Fn=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;FU(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===Fa;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),ae(i)?i=i.slice():ip(i)&&(i=te({},i)),a[r]=i),i},e.prototype.setItemVisual=function(t,r,n){var a=this._itemVisuals[t]||{};this._itemVisuals[t]=a,ip(r)?te(a,r):a[r]=n},e.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},e.prototype.setLayout=function(t,r){ip(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;DM(n,this.dataType,t,r),this._graphicEls[t]=r},e.prototype.getItemGraphicEl=function(t){return this._graphicEls[t]},e.prototype.eachItemGraphicEl=function(t,r){R(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:fl(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];Le(n)&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var a=n.apply(this,arguments);return r.apply(this,[a].concat(x1(arguments)))})},e.internalField=function(){NO=function(t){var r=t._invertedIndicesMap;R(r,function(n,a){var i=t._dimInfos[a],o=i.ordinalMeta,s=t._store;if(o){n=r[a]=new hse(o.categories.length);for(var l=0;l1&&(l+="__ec__"+c),a[r]=l}}}(),e}();function pse(e,t){return wv(e,t).dimensions}function wv(e,t){kL(e)||(e=LL(e)),t=t||{};var r=t.coordDimensions||[],n=t.dimensionsDefine||e.dimensionsDefine||[],a=we(),i=[],o=gse(e,r,n,t.dimensionsCount),s=t.canOmitUnusedDimensions&&GU(o),l=n===e.dimensionsDefine,u=l?VU(e):$L(n),c=t.encodeDefine;!c&&t.encodeDefaulter&&(c=t.encodeDefaulter(e,o));for(var h=we(c),f=new UH(o),v=0;v0&&(I.name=I.name+(P-1))}),new BU({source:e,dimensions:i,fullDimensionCount:o,dimensionOmitted:s})}function gse(e,t,r,n){var a=Math.max(e.dimensionsDetectedCount||1,t.length,r.length,n||0);return R(t,function(i){var o;Re(i)&&(o=i.dimsDef)&&(a=Math.max(a,o.length))}),a}function mse(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 yse=function(){function e(t){this.coordSysDims=[],this.axisMap=we(),this.categoryAxisMap=we(),this.coordSysName=t}return e}();function xse(e){var t=e.get("coordinateSystem"),r=new yse(t),n=_se[t];if(n)return n(e,r,r.axisMap,r.categoryAxisMap),r}var _se={cartesian2d:function(e,t,r,n){var a=e.getReferringComponents("xAxis",pr).models[0],i=e.getReferringComponents("yAxis",pr).models[0];t.coordSysDims=["x","y"],r.set("x",a),r.set("y",i),_d(a)&&(n.set("x",a),t.firstCategoryDimIndex=0),_d(i)&&(n.set("y",i),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=1))},singleAxis:function(e,t,r,n){var a=e.getReferringComponents("singleAxis",pr).models[0];t.coordSysDims=["single"],r.set("single",a),_d(a)&&(n.set("single",a),t.firstCategoryDimIndex=0)},polar:function(e,t,r,n){var a=e.getReferringComponents("polar",pr).models[0],i=a.findAxisModel("radiusAxis"),o=a.findAxisModel("angleAxis");t.coordSysDims=["radius","angle"],r.set("radius",i),r.set("angle",o),_d(i)&&(n.set("radius",i),t.firstCategoryDimIndex=0),_d(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();R(i.parallelAxisIndex,function(s,l){var u=a.getComponent("parallelAxis",s),c=o[l];r.set(c,u),_d(u)&&(n.set(c,u),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=l))})},matrix:function(e,t,r,n){var a=e.getReferringComponents("matrix",pr).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 _d(e){return e.get("type")==="category"}function HU(e,t,r){r=r||{};var n=r.byIndex,a=r.stackedCoordDimension,i,o,s;bse(t)?i=t:(o=t.schema,i=o.dimensions,s=t.store);var l=!!(e&&e.get("stack")),u,c,h,f,v=!0;function g(S){return S.type!=="ordinal"&&S.type!=="time"}if(R(i,function(S,C){ve(S)&&(i[C]=S={name:S}),g(S)||(v=!1)}),R(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,f="__\0ecstackedover_"+e.id,u&&(u.createInvertedIndices=!0);var m=c.coordDim,y=c.type,x=0;R(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:f,coordDim:f,coordDimIndex:x+1,type:y,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:i.length+1};o?(s&&(_.storeDimIndex=s.ensureCalculationDimension(f,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:f,stackResultDimension:h}}function bse(e){return!FU(e.schema)}function Zs(e,t){return!!t&&t===e.getCalculationInfo("stackedDimension")}function ZL(e,t){return Zs(e,t)?e.getCalculationInfo("stackResultDimension"):t}function wse(e,t){var r=e.get("coordinateSystem"),n=yv.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=nb(l)}return o})),a||(a=n&&(n.getDimensionsInfo?n.getDimensionsInfo():n.dimensions.slice())||["x","y"]),a}function Sse(e,t,r){var n,a;return r&&R(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 Jo(e,t,r){r=r||{};var n=t.getSourceManager(),a,i=!1;e?(i=!0,a=LL(e)):(a=n.getSource(),i=a.sourceFormat===Fa);var o=xse(t),s=wse(t,o),l=r.useEncodeDefaulter,u=Le(l)?l:l?nt(MH,s,t):null,c={coordDimensions:s,generateCoord:r.generateCoord,encodeDefine:t.getEncode(),encodeDefaulter:u,canOmitUnusedDimensions:!i},h=wv(a,c),f=Sse(h.dimensions,r.createInvertedIndices,o),v=i?null:n.getSharedDataStore(h),g=HU(t,{schema:h,store:v}),m=new Fn(h,t);m.setCalculationInfo(g);var y=f!=null&&Cse(a)?function(x,_,w,S){return S===f?w:this.defaultDimValueGetter(x,_,w,S)}:null;return m.hasItemOption=!1,m.initData(i?a:v,null,y),m}function Cse(e){if(e.sourceFormat===Fa){var t=Tse(e.data||[]);return!ae(ov(t))}}function Tse(e){for(var t=0;t=t[0]&&e<=t[1]},getExtent:function(){return this._extents[fa].slice()},getExtentUnsafe:function(e){return this._extents[e]},setExtent:function(e,t){kO(this._extents,fa,e,t)},setExtent2:function(e,t,r){var n=this._extents;n[e]||(n[e]=n[fa].slice()),kO(n,e,t,r)},freeze:function(){}};function kO(e,t,r,n){ah(r,n)&&(e[t][0]=r,e[t][1]=n)}function $U(e){return ib(e)||Bf(e)}function ib(e){return e.type==="interval"}function qm(e){return e.type==="time"}function Bf(e){return e.type==="log"}function Gn(e){return e.type==="ordinal"}function Ise(e){var t=M1(e),r=Dh(10,t),n=Fo(e/r);return n?n===2?n=3:n===3?n=5:n*=2:n=1,Mt(n*r,-t)}function ch(e){return _o(e)+2}function b0(e,t){return eh(e)/eh(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 sm=function(e){q(t,e);function t(r){var n=e.call(this)||this;n.type="ordinal",n.parse=t.parse,XL(n,t.decoratedMethods);var a=r.ordinalMeta;a||(a=new am({})),ae(a)&&(a=new am({categories:oe(a,function(o){return Re(o)?o.value:o})})),n._ordinalMeta=a;var i=YL(null,null,r.extent||[0,a.categories.length-1]);return n._mapper=i.mapper,qL(n),n}return t.parse=function(r){return r==null?r=NaN:ve(r)?(r=this._ordinalMeta.getOrdinal(r),r==null&&(r=NaN)):r=Fo(r),r},t.prototype.getTicks=function(){var r=[];return YU(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=Et(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=Et(m,o[1]),y===g&&(m=o[1])}if(h.push({value:m}),m=Mt(m+a,s),u){var x=u.calcNiceTickMultiple(m,v);x>=0&&(m=Mt(m+x*a,s))}if(h.length>0&&m===h[h.length-1].value)break;if(h.length>f)return[]}var _=h.length?h[h.length-1].value:o[1];return i[1]>_&&h.push({value:r.expandToNicedExtent?Mt(_+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 KL(this,r,U_(this),this._cfg.interval)},t.prototype.getLabel=function(r,n){if(r==null)return"";var a=n&&n.precision;a==null?a=_o(r.value)||0:a==="auto"&&(a=this._cfg.intervalPrecision);var i=Mt(r.value,a,!0);return bL(i)},t.type="interval",t}(qi);qi.registerClass(Jl);var Dse=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 Ese(e){var t=30*ii;return e/=t,e>6?6:e>3?3:e>2?2:1}function Rse(e){return e/=dg,e>12?12:e>6?6:e>3.5?4:e>2?2:1}function LO(e,t){return e/=t?vL:fL,e>30?30:e>20?20:e>15?15:e>10?10:e>5?5:e>2?2:1}function Ose(e){return at(A1(e,!0),1)}function zse(e,t,r){var n=Math.max(0,Ye(Ma,t)-1);return $_(new Date(e),Ma[n],r).getTime()}function Bse(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 Fse(e,t,r,n,a,i){var o=3e3,s=rae,l=0;function u(V,U,F,W,$,Z,J){for(var re=Bse($,V),Q=U,le=new Date(Q);Qo));)if(le[$](le[W]()+V),Q=le.getTime(),i){var de=i.calcNiceTickMultiple(Q,re);de>0&&(le[$](le[W]()+de*V),Q=le.getTime())}J.push({value:Q,notAdd:Q>n[1]})}function c(V,U,F){var W=[],$=!U.length;if(!qU(fg(V),n[0],n[1],r)){$&&(U=[{value:zse(n[0],V,r)},{value:n[1]}]);for(var Z=0;Z=n[0]&&J<=n[1]&&u(Q,J,re,le,de,He,W),V==="year"&&F.length>1&&Z===0&&F.unshift({value:F[0].value-Q})}}for(var Z=0;Z=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}f=[]}}}for(var M=It(oe(h,function(V){return It(V,function(U){return U.value>=n[0]&&U.value<=n[1]&&!U.notAdd})}),function(V){return V.length>0}),A=M.length-1,k=[],m=0;mn[0])&&k.unshift({value:n[0],time:{level:0,upperTimeUnit:B,lowerTimeUnit:B},notNice:!0}),(!D||D.values&&(i=s);var l=w0.length,u=Math.min(Dse(w0,i,0,l),l-1),c=w0[u][1],h=w0[Math.max(u-1,0)][0];e.setTimeInterval({approxInterval:i,interval:c,minLevelUnit:h})};qi.registerClass(XU);var S0=0,C0=1,Gse=2,KU=function(e){q(t,e);function t(r){var n=e.call(this)||this;n.type="log",n.parse=Jl.parse,n.base=r.logBase||10;var a=[],i=[],o=n._lookup={from:a,to:i};a[S0]=a[C0]=i[S0]=i[C0]=NaN,XL(n,t.mapperMethods);var s=Mr(),l=r.breakOption,u={lookup:o};return s&&s.parseAxisBreakOptionInwardTransform(l,n,{noNegative:!0},Gse,u),n.powStub=new Jl({breakParsed:u.original}),n.intervalStub=new Jl({breakParsed:u.transformed}),qL(n,n.intervalStub),n}return t.prototype.getTicks=function(r){var n=this.base,a=this.powStub,i=Mr(),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,f=yC(h,n,u),v;if(i){var g=i.getTicksBreakOutwardTransform(this,c,U_(a),this._lookup);g&&(v=g.vBreak,f=g.tickVal)}return{value:f,break:v}},this)},t.prototype.getMinorTicks=function(r){return KL(this,r,U_(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(b0(r,this.base))},scale:function(r){return yC(this.intervalStub.scale(r),this.base,null)},transformIn:function(r,n){return r=b0(r,this.base),n&&n.depth===Ps?r:this.intervalStub.transformIn(r,n)},transformOut:function(r,n){var a=n?n.depth:null;return IO.depth=a,PO.lookup=this._lookup,yC(a===Ps?r:this.intervalStub.transformOut(r,IO),this.base,PO)},contain:function(r){return this.powStub.contain(r)},setExtent:function(r,n){this.setExtent2(fa,r,n)},setExtent2:function(r,n,a){if(!(!ah(n,a)||n<=0||a<=0)){var i=DO,o=DO;if(r===fa){var s=this._lookup;i=s.to,o=s.from}this.powStub.setExtent2(r,i[S0]=n,i[C0]=a);var l=this.base;this.intervalStub.setExtent2(r,o[S0]=b0(n,l),o[C0]=b0(a,l))}},getFilter:function(){return{g:0}},sanitize:function(r,n){return ah(n[0],n[1])&&yi(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}(qi);qi.registerClass(KU);var IO={},PO={},DO=[],JU={value:1,category:1,time:1,log:1},QU=Qe();function Km(e){var t=e.get("type");return(t==null||!Se(JU,t)&&!qi.getClass(t))&&(t="value"),t}function Sv(e,t,r){var n=Mr(),a;switch(n&&(a=eW(e,t,r)),t){case"category":return new sm({ordinalMeta:e.getOrdinalMeta?e.getOrdinalMeta():e.getCategories(),extent:gn()});case"time":return new XU({locale:e.ecModel.getLocaleModel(),useUTC:e.ecModel.get("useUTC"),breakOption:a});case"log":return new KU({logBase:e.get("logBase"),breakOption:a});case"value":return new Jl({breakOption:a});default:return new(qi.getClass(t)||Jl)({})}}function Hse(e,t,r){var n=e.getExtentUnsafe(fa,null),a=n[0],i=n[1];return ah(a,i)?a===t||i===t?Wse:at?Use:uA:uA}var Use=1,Wse=2,uA=3;function $se(e){QU(e).noOnMyZero=!0}function Zse(e){return QU(e).noOnMyZero}function Jm(e){var t=e.getLabelModel().get("formatter");if(e.type==="time"){var r=nae(t);return function(a,i){return e.scale.getFormattedLabel(a,i,r)}}else{if(ve(t))return function(a){var i=e.scale.getLabel(a),o=t.replace("{value}",i??"");return o};if(Le(t)){if(e.type==="category")return function(a,i){return t(ob(e,a),a.value-e.scale.getExtent()[0],null)};var n=Mr();return function(a,i){var o=null;return n&&(o=n.makeAxisLabelFormatterParamBreak(o,a.break)),t(ob(e,a),i,o)}}else return function(a){return e.scale.getLabel(a)}}}function ob(e,t){var r=e.scale;return Gn(r)?r.getLabel(t):t.value}function JL(e){var t=e.get("interval");return t??"auto"}function Yse(e){return e.type==="category"&&JL(e.getLabelModel())===0}function Xse(e,t){var r={};return R(e.mapDimensionsAll(t),function(n){r[ZL(e,n)]=!0}),mt(r)}function Ff(e){return e==="middle"||e==="center"}function lm(e){return e.getShallow("show")}function eW(e,t,r){var n=e.get("breaks",!0);if(n!=null)return!Mr()||!r||!qse(t)?void 0:n}function qse(e){return e!=="category"}function tW(e,t,r,n,a,i){var o=Bf(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),f=Pse(r,n);t[0]&&!f[0]&&(c=a[0]),t[1]&&!f[1]&&(h=a[1]),l.setExtent(c,h)}s.setConfig(i)}function Cv(e,t){return Gn(e)?e.getRawOrdinalNumber(t.value):t.value}function Qm(e,t){return Gn(e)&&!!t.get("boundaryGap")}var Tv=function(){function e(){}return e.prototype.needIncludeZero=function(){return!this.option.scale},e.prototype.getCoordSysModel=function(){},e}(),Kse=lv(),sb="|&",Mv=Qe(),rW=-2,Jse=-1,Qse=Qe();function QL(e,t){var r=e.model,n=Mv(_v(r.ecModel)).keyed,a=n&&n.get(t);return a&&a.get(r.uid)}function ele(e,t){return aW(QL(e,t))}function tle(e,t){var r=[];return nW(e.model.ecModel,function(n){for(var a=0;a0&&h[1]>0&&!f[0]&&(h[0]=0),h[0]<0&&h[1]<0&&!f[1]&&(h[1]=0));var S=!1;h[0]>h[1]&&(h.reverse(),S=!0);var C=up(t,r.get("startValue",!0)),M=C!=null;!yi(C)&&a&&(C=t.getDefaultStartValue?t.getDefaultStartValue():0),yi(C)&&(M||!_||w)&&(Ch[1]&&!f[1]&&(h[1]=C,f[1]=!0));var A=this._i={scale:t,dataMM:c,noZoomEffMM:h,zoomMM:[],fixMM:f,zoomFixMM:[!1,!1],startValue:C,isBlank:x,incl0:w,tggAxInv:S,ctnShp:i};jO(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),jO(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 jO(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),jx(t))}function up(e,t){return t==null?null:yn(t)?NaN:e.parse(t)}function ule(e,t){var r;if(Gn(e))r=[0,0];else{var n=t.get("boundaryGap");typeof n=="boolean"&&(n=null),r=ae(n)?n:[n,n]}return[EO(r[0]),EO(r[1])]}function EO(e){return Bo(typeof e=="boolean"?0:e,1)||0}function lW(e){var t=ole(e.scale);return t.extent||(t.extent=gn()),t}function cle(e,t){lW(e).dimIdxInCoord=t.get(e.dim)}function fh(e,t){var r=e.scale,n=e.model,a=e.dim;r.rawExtentInfo||hle(r,e,a,n,t)}function hle(e,t,r,n,a){var i=lW(t),o=i.extent,s=!1;rle(t,function(c){if(c.boxCoordinateSystem){var h=fH(c).coord,f=i.dimIdxInCoord;if(f>=0){if(ae(h)){var v=h[f];v!=null&&!ae(v)&&NM(o,e.parse(v))}}}else if(c.coordinateSystem){var g=c.getData();if(g){var m=e.getFilter?e.getFilter():null;R(Xse(g,r),function(y){Gte(o,g.getApproximateExtent(y,m))})}c.__requireStartValue&&c.__requireStartValue(t)&&(s=!0)}});var l=fle(e,t,n),u=new sW(e,n,o,s,l);uW(e,u,a),i.extent=null}function dle(e,t){var r=e.scale;uW(r,new sW(r,e.model,t,!1,!1),lle)}function uW(e,t,r){e.rawExtentInfo=t,t.from=r}function K1(e,t){rI.set(e,t)}var rI=we();function cW(e,t,r,n,a){e.rawExtentInfo||dle({scale:e,model:t},a||gn());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 fle(e,t,r){var n=Qm(e,r),a=r.get("containShape",!0);if(a==null&&!n&&(a=!0),!a)return!1;var i=!1;return iW(t,function(o){i=!!rI.get(o)||i}),i}function vle(e,t,r,n){if(r.ctnShp){var a;if(iW(e,function(s){var l=rI.get(s);if(l){var u=l(e,n);u&&(a=a||[0,0],QG(a,u[0]),e7(a,u[1]),$se(e))}}),!!a){var i=t.getExtent();if(Gn(t))e.onBand||t.setExtent2(im,Et(i[0],i[0]+a[0]),at(i[1],i[1]+a[1]));else{var o=i.slice();r.zoomFixMM[0]||(o[0]=Et(o[0],t.transformOut(t.transformIn(o[0],null)+a[0],null))),r.zoomFixMM[1]||(o[1]=at(o[1],t.transformOut(t.transformIn(o[1],null)+a[1],null))),(o[0]i[1])&&t.setExtent2(im,o[0],o[1])}}}}function RO(e,t){var r=Bf(e),n=r?e.intervalStub:e,a=t.fixMinMax||[],i=r?e.getExtent():null,o=n.getExtent(),s=ZU(o,a,t.rawExtentResult);n.setExtent(s[0],s[1]),s=n.getExtent();var l=r?gle(n,t):ple(n,t),u=l.intervalPrecision,c=l.interval,h=t.userInterval;h!=null&&(l.interval=h,l.intervalPrecision=ch(h)),a[0]||(s[0]=Mt(mi(s[0]/c)*c,u)),a[1]||(s[1]=Mt(Ph(s[1]/c)*c,u)),h!=null&&(l.niceExtent=s.slice()),tW(e,a,o,s,i,l)}function ple(e,t){var r=X1(t.splitNumber,5),n=Y1(e),a=t.minInterval,i=t.maxInterval,o=A1(n/r,!0);a!=null&&oi&&(o=i);var s=ch(o),l=e.getExtent(),u=[Mt(Ph(l[0]/o)*o,s),Mt(mi(l[1]/o)*o,s)];return{interval:o,intervalPrecision:s,niceExtent:u}}function gle(e,t){var r=X1(t.splitNumber,10),n=e.getExtent(),a=Y1(e),i=at(Bk(a),1),o=r/a*i;o<=.5&&(i*=10);var s=ch(i),l=[Mt(Ph(n[0]/i)*i,s),Mt(mi(n[1]/i)*i,s)];return{intervalPrecision:s,interval:i,niceExtent:l}}function Gf(e){var t=e.scale,r=e.model,n=r.axis,a=r.ecModel;hW(t,r,n,a,null)}function hW(e,t,r,n,a){var i=cW(e,t,n,r,a),o=ib(e)||qm(e);dW(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&&vle(r,e,i,n)}function dW(e,t){mle[e.type](e,t)}var mle={interval:RO,log:RO,time:Vse,ordinal:hr};function yle(e){return Jo(null,e)}var xle={isDimensionStacked:Zs,enableDataStack:HU,getStackedDimension:ZL};function _le(e,t){var r=t;t instanceof vt||(r=new vt(t));var n=Km(r),a=Sv(r,n,!1);return e[1]a&&(n=o,a=l)}if(n)return Mle(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 R(o,function(s){s.type==="polygon"?zO(s.exterior,a,i,r):R(s.points,function(l){zO(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 je(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 dA(e,t){return e=Nle(e),oe(It(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 BO(o[0],o.slice(1)));break;case"MultiPolygon":R(a.coordinates,function(l){l[0]&&i.push(new BO(l[0],l.slice(1)))});break;case"LineString":i.push(new FO([a.coordinates]));break;case"MultiLineString":i.push(new FO(a.coordinates))}var s=new vW(n[t||"name"],i,n.cp);return s.properties=n,s})}const kle=Object.freeze(Object.defineProperty({__proto__:null,MAX_SAFE_INTEGER:Yg,asc:on,getPercentWithPrecision:wte,getPixelPrecision:bte,getPrecision:_o,getPrecisionSafe:GG,isNumeric:Fk,isRadianAroundZero:th,linearMap:Nt,nice:A1,numericToNumber:Vo,parseDate:qo,parsePercent:me,quantile:Dx,quantity:Bk,quantityExponent:M1,reformIntervals:MM,remRadian:zk,round:_te},Symbol.toStringTag,{value:"Module"})),Lle=Object.freeze(Object.defineProperty({__proto__:null,format:Zm,parse:qo,roundTime:$_},Symbol.toStringTag,{value:"Module"})),Ile=Object.freeze(Object.defineProperty({__proto__:null,Arc:Um,BezierCurve:dv,BoundingRect:je,Circle:Ko,CompoundPath:Wm,Ellipse:Hm,Group:De,Image:Qr,IncrementalDisplayable:z7,Line:Tr,LinearGradient:Eh,Polygon:Sn,Polyline:un,RadialGradient:tL,Rect:it,Ring:hv,Sector:wn,Text:wt,clipPointsByRect:iL,clipRectByRect:W7,createIcon:pv,extendPath:H7,extendShape:G7,getShapeClass:Jg,getTransform:Vc,initProps:Qt,makeImage:nL,makePath:Ef,mergePath:Na,registerShape:Si,resizePath:aL,updateProps:At},Symbol.toStringTag,{value:"Module"})),Ple=Object.freeze(Object.defineProperty({__proto__:null,addCommas:bL,capitalFirst:hae,encodeHTML:On,formatTime:cae,formatTpl:SL,getTextRect:uae,getTooltipMarker:cH,normalizeCssArray:mv,toCamelCase:wL,truncateText:ire},Symbol.toStringTag,{value:"Module"})),Dle=Object.freeze(Object.defineProperty({__proto__:null,bind:be,clone:ke,curry:nt,defaults:Ee,each:R,extend:te,filter:It,indexOf:Ye,inherits:kk,isArray:ae,isFunction:Le,isObject:Re,isString:ve,map:oe,merge:Je,reduce:gi},Symbol.toStringTag,{value:"Module"}));var jle=Qe(),pg=Qe(),Ui={estimate:1,determine:2};function lb(e){return{out:{noPxChangeTryDetermine:[]},kind:e}}function Ele(e,t){var r=e.getLabelModel().get("customValues");if(r){var n=e.scale;return{labels:oe(gW(r,n),function(a,i){return{formattedLabel:Jm(e)(a,i),rawLabel:n.getLabel(a),tick:a}})}}return e.type==="category"?Ole(e,t):Ble(e)}function Rle(e,t,r){var n=e.scale,a=e.getTickModel().get("customValues");return a?{ticks:gW(a,n)}:e.type==="category"?zle(e,t):{ticks:n.getTicks(r)}}function gW(e,t){var r=t.getExtent(),n=[];return R(e,function(a){a=t.parse(a),a>=r[0]&&a<=r[1]&&n.push(a)}),N1(n,$te,null),on(n),oe(n,function(a){return{value:a}})}function Ole(e,t){var r=e.getLabelModel(),n=mW(e,r,t);return!r.get("show")||e.scale.isBlank()?{labels:[]}:n}function mW(e,t,r){var n=Vle(e),a=JL(t),i=r.kind===Ui.estimate;if(!i){var o=xW(n,a);if(o)return o}var s,l;Le(a)?s=ub(e,a,!1):(l=a==="auto"?Gle(e,r):a,s=ub(e,l,!1));var u={labels:s,labelCategoryInterval:l};return i?r.out.noPxChangeTryDetermine.push(function(){return fA(n,a,u),!0}):fA(n,a,u),u}function zle(e,t){var r=Fle(e),n=JL(t),a=xW(r,n);if(a)return a;var i,o;if((!t.get("show")||e.scale.isBlank())&&(i=[]),Le(n))i=ub(e,n,!0);else if(n==="auto"){var s=mW(e,e.getLabelModel(),lb(Ui.determine));o=s.labelCategoryInterval,i=oe(s.labels,function(l){return l.tick})}else o=n,i=ub(e,o,!0);return fA(r,n,{ticks:i,tickCategoryInterval:o})}function Ble(e){var t=e.scale.getTicks(),r=Jm(e);return{labels:oe(t,function(n,a){return{formattedLabel:r(n,a),rawLabel:e.scale.getLabel(n),tick:n}})}}var Fle=yW("axisTick"),Vle=yW("axisLabel");function yW(e){return function(r){return pg(r)[e]||(pg(r)[e]={list:[]})}}function xW(e,t){for(var r=0;rc&&(u=Math.max(1,Math.floor(l/c)));for(var h=s[0],f=e.dataToCoord(h+1)-e.dataToCoord(h),v=Math.abs(f*Math.cos(i)),g=Math.abs(f*Math.sin(i)),m=0,y=0;h<=s[1];h+=u){var x=0,_=0,w=S1(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===Ui.estimate)return t.out.noPxChangeTryDetermine.push(be(Ule,null,e,M,l)),M;var A=_W(e,M,l);return A??M}function Ule(e,t,r){return _W(e,t,r)==null}function _W(e,t,r){var n=jle(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 Wle(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 ub(e,t,r){var n=Jm(e),a=e.scale,i=[],o=Le(t);return YU(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 $le=.8;function Cn(e,t){t=t||{};var r={w:NaN,w2:NaN},n=e.scale,a=t.fromStat,i=t.min,o=kse(n);yi(o)||(o=NaN);var s=e.getExtent(),l=cr(s[1]-s[0]);return Gn(n)?Zle(r,e,o,l):a&&Yle(r,e,o,l,a),i!=null&&(r.w=yi(r.w)?at(i,r.w):i),r}function Zle(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 Yle(e,t,r,n,a){var i=!1,o=-1/0;R(a.key?[ele(t,a.key)]:tle(t,a.sers||[]),function(s){var l=s.liPosMinGap;l!=null&&(l>0?(l>o&&(o=l),i=!1):l===rW&&(i=!0))}),yi(r)&&r>0&&yi(o)?(e.w=n/r*o,e.w2=o):i&&(e.w=n*$le,e.w2=e.w*r/n)}var VO=[0,1],Ci=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)),Nt(t,VO,GO(this),r)},e.prototype.coordToData=function(t,r){var n=Nt(t,GO(this),VO,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=Rle(this,r,{breakTicks:t.breakTicks,pruneByBreak:t.pruneByBreak}),a=oe(n.ticks,function(s){return{coord:this.dataToCoord(Cv(this.scale,s)),tick:s}},this),i=r.get("alignWithLabel"),o=Xle(this,a,i);return oe(a,function(s){return{coord:s.coord,tickValue:s.tick.value,onBand:o}})},e.prototype.getMinorTicksCoords=function(){if(Gn(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||lb(Ui.determine),Ele(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 Cn(this,{min:1}).w},e.prototype.calculateCategoryInterval=function(t){return t=t||lb(Ui.determine),Hle(this,t)},e}();function GO(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 Xle(e,t,r){var n=t.length;if(!e.onBand||r||!n)return!1;var a=Cn(e).w;if(!a)return!1;R(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 qle(e){var t=ht.extend(e);return ht.registerClass(t),t}function Kle(e){var t=Yt.extend(e);return Yt.registerClass(t),t}function Jle(e){var t=Ut.extend(e);return Ut.registerClass(t),t}function Qle(e){var t=Rt.extend(e);return Rt.registerClass(t),t}var cp=Math.PI*2,oc=Go.CMD,eue=["top","right","bottom","left"];function tue(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 rue(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)%cp<1e-4)return l[0]=c,l[1]=h,u-r;if(i){var f=n;n=Ia(a),a=Ia(f)}else n=Ia(n),a=Ia(a);n>a&&(a+=cp);var v=Math.atan2(s,o);if(v<0&&(v+=cp),v>=n&&v<=a||v+cp>=n&&v+cp<=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,Ei.fromArray(e[0]),Kt.fromArray(e[1]),Cr.fromArray(e[2]),Oe.sub(wo,Ei,Kt),Oe.sub(xo,Cr,Kt);var r=wo.len(),n=xo.len();if(!(r<.001||n<.001)){wo.scale(1/r),xo.scale(1/n);var a=wo.dot(xo),i=Math.cos(t);if(i1&&Oe.copy(Kn,Cr),Kn.toArray(e[1])}}}}function iue(e,t,r){if(r<=180&&r>0){r=r/180*Math.PI,Ei.fromArray(e[0]),Kt.fromArray(e[1]),Cr.fromArray(e[2]),Oe.sub(wo,Kt,Ei),Oe.sub(xo,Cr,Kt);var n=wo.len(),a=xo.len();if(!(n<.001||a<.001)){wo.scale(1/n),xo.scale(1/a);var i=wo.dot(t),o=Math.cos(r);if(i=l)Oe.copy(Kn,Cr);else{Kn.scaleAndAdd(xo,s/Math.tan(Math.PI/2-c));var h=Cr.x!==Kt.x?(Kn.x-Kt.x)/(Cr.x-Kt.x):(Kn.y-Kt.y)/(Cr.y-Kt.y);if(isNaN(h))return;h<0?Oe.copy(Kn,Kt):h>1&&Oe.copy(Kn,Cr)}Kn.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 oue(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=Ss(n[0],n[1]),i=Ss(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=ig([],n[1],n[0],o/a),l=ig([],n[1],n[2],o/i),u=ig([],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*I,0,i);var j=P+A;j<0&&C(-j*I,1)}else C(-A*I,1)}}function S(A,k,I){A!==0&&(c=!0);for(var P=k;P0)for(var j=0;j0;j--){var H=I[j-1]*B;S(-H,j,i)}}}function M(A){var k=A<0?-1:1;A=Math.abs(A);for(var I=Math.ceil(A/(i-1)),P=0;P0?S(I,0,P+1):S(-I,i-P-1,i),A-=I,A<=0)return}return c}function uue(e){for(var t=0;t=0&&n.attr(i.oldLayoutSelect),Ye(f,"emphasis")>=0&&n.attr(i.oldLayoutEmphasis)),At(n,u,r,l)}else if(n.attr(u),!gv(n).valueAnimation){var h=Te(n.style.opacity,1);n.style.opacity=0,Qt(n,{style:{opacity:h}},r,l)}if(i.oldLayout=u,n.states.select){var v=i.oldLayoutSelect={};T0(v,u,M0),T0(v,n.states.select,M0)}if(n.states.emphasis){var g=i.oldLayoutEmphasis={};T0(g,u,M0),T0(g,n.states.emphasis,M0)}K7(n,l,c,r,r)}if(a&&!a.ignore&&!a.invisible){var i=due(a),o=i.oldLayout,m={points:a.shape.points};o?(a.attr({shape:o}),At(a,{shape:m},r)):(a.setShape(m),a.style.strokePercent=0,Qt(a,{style:{strokePercent:1}},r)),i.oldLayout=m}},e}(),CC=Qe();function vue(e){e.registerUpdateLifecycle("series:beforeupdate",function(t,r,n){var a=CC(r).labelManager;a||(a=CC(r).labelManager=new fue),a.clearLabels()}),e.registerUpdateLifecycle("series:layoutlabels",function(t,r,n){var a=CC(r).labelManager;R(n.updatedSeries,function(i){a.addLabelsOfSeries(r.getViewOfSeriesModel(i))}),a.updateLayoutConfig(r),a.layout(r),a.processLabelsOverall()})}var TC=Math.sin,MC=Math.cos,AW=Math.PI,sc=Math.PI*2,pue=180/AW,NW=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),f=Dl(h-sc)||(c?u>=sc:-u>=sc),v=u>0?u%sc:u%sc+sc,g=!1;f?g=!0:Dl(h)?g=!1:g=v>=AW==!!c;var m=t+n*MC(o),y=r+a*TC(o);this._start&&this._add("M",m,y);var x=Math.round(i*pue);if(f){var _=1/this._p,w=(c?1:-1)*(sc-_);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,f=1;f"}function Cue(e){return""}function oI(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 Sue(o,s)+(o!=="style"?On(l):l||"")+(i?""+r+oe(i,function(u){return n(u)}).join(r)+r:"")+Cue(o)}return n(e)}function Tue(e,t,r){r=r||{};var n=r.newline?` -`:"",a=" {"+n,i=n+"}",o=oe(mt(e),function(l){return l+a+oe(mt(e[l]),function(u){return u+":"+e[l][u]+";"}).join(n)+i}).join(n),s=oe(mt(t),function(l){return"@keyframes "+l+a+oe(mt(t[l]),function(u){return u+a+oe(mt(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 yA(e){return{zrId:e,shadowCache:{},patternCache:{},gradientCache:{},clipPathCache:{},defs:{},cssNodes:{},cssAnims:{},cssStyleCache:{},cssAnimIdx:0,shadowIdx:0,gradientIdx:0,patternIdx:0,clipPathIdx:0}}function YO(e,t,r,n){return Xr("svg","root",{width:e,height:t,xmlns:kW,"xmlns:xlink":LW,version:"1.1",baseProfile:"full",viewBox:n?"0 0 "+e+" "+t:!1},r)}var Mue=0;function PW(){return Mue++}var XO={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"},gc="transform-origin";function Aue(e,t,r){var n=te({},e.shape);te(n,t),e.buildPath(r,n);var a=new NW;return a.reset(IG(e)),r.rebuildPath(a,1),a.generateStr(),a.getStr()}function Nue(e,t){var r=t.originX,n=t.originY;(r||n)&&(e[gc]=r+"px "+n+"px")}var kue={fill:"fill",opacity:"opacity",lineWidth:"stroke-width",lineDashOffset:"stroke-dashoffset"};function DW(e,t){var r=t.zrId+"-ani-"+t.cssAnimIdx++;return t.cssAnims[r]=e,r}function Lue(e,t,r){var n=e.shape.paths,a={},i,o;if(R(n,function(l){var u=yA(r.zrId);u.animation=!0,Q1(l,{},u,!0);var c=u.cssAnims,h=u.cssNodes,f=mt(c),v=f.length;if(v){o=f[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=DW(a,r);return i.replace(o,s)}}function qO(e){return ve(e)?XO[e]?"cubic-bezier("+XO[e]+")":Dk(e)?e:"":""}function Q1(e,t,r,n){var a=e.animators,i=a.length,o=[];if(e instanceof Wm){var s=Lue(e,t,r);if(s)o.push(s);else if(!i)return}else if(!i)return;for(var l={},u=0;u0}).length){var He=DW(A,r);return He+" "+_[0]+" both"}}for(var y in l){var s=m(l[y]);s&&o.push(s)}if(o.length){var x=r.zrId+"-cls-"+PW();r.cssNodes["."+x]={animation:o.join(",")},t.class=x}}function Iue(e,t,r){if(!e.ignore)if(e.isSilent()){var n={"pointer-events":"none"};KO(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=I_(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),KO(n,t,r)}}function KO(e,t,r,n){var a=JSON.stringify(e),i=r.cssStyleCache[a];i||(i=r.zrId+"-cls-"+PW(),r.cssStyleCache[a]=i,r.cssNodes["."+i+":hover"]=e),t.class=t.class?t.class+" "+i:i}var um=Math.round;function jW(e){return e&&ve(e.src)}function EW(e){return e&&Le(e.toDataURL)}function sI(e,t,r,n){_ue(function(a,i){var o=a==="fill"||a==="stroke";o&&LG(i)?OW(t,e,a,n):o&&Ek(i)?zW(r,e,a,n):e[a]=i,o&&n.ssr&&i==="none"&&(e["pointer-events"]="visible")},t,r,!1),zue(r,e,n)}function lI(e,t){var r=BG(t);r&&(r.each(function(n,a){n!=null&&(e[(ZO+a).toLowerCase()]=n+"")}),t.isSilent()&&(e[ZO+"silent"]="true"))}function JO(e){return Dl(e[0]-1)&&Dl(e[1])&&Dl(e[2])&&Dl(e[3]-1)}function Pue(e){return Dl(e[4])&&Dl(e[5])}function uI(e,t,r){if(t&&!(Pue(t)&&JO(t))){var n=1e4;e.transform=JO(t)?"translate("+um(t[4]*n)/n+" "+um(t[5]*n)/n+")":Dee(t)}}function QO(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.";bn(f,y),bn(v,y)}else if(f==null||v==null){var x=function(P,j){if(P){var z=P.elm,D=f||j.width,B=v||j.height;P.tag==="pattern"&&(u?(B=1,D/=i.width):c&&(D=1,B/=i.height)),P.attrs.width=D,P.attrs.height=B,z&&(z.setAttribute("width",D),z.setAttribute("height",B))}},_=$k(g,null,e,function(P){l||x(M,P),x(h,P)});_&&_.width&&_.height&&(f=f||_.width,v=v||_.height)}h=Xr("image","img",{href:g,width:f,height:v}),o.width=f,o.height=v}else a.svgElement&&(h=ke(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=PG(a);C&&(o.patternTransform=C);var M=Xr("pattern","",o,[h]),A=oI(M),k=n.patternCache,I=k[A];I||(I=n.zrId+"-p"+n.patternIdx++,k[A]=I,o.id=I,M=n.defs[I]=Xr("pattern",I,o,[h])),t[r]=w1(I)}}function Bue(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]=Xr("clipPath",i,o,[RW(e,r)])}t["clip-path"]=w1(i)}function r5(e){return document.createTextNode(e)}function Sc(e,t,r){e.insertBefore(t,r)}function n5(e,t){e.removeChild(t)}function a5(e,t){e.appendChild(t)}function BW(e){return e.parentNode}function FW(e){return e.nextSibling}function AC(e,t){e.textContent=t}var i5=58,Fue=120,Vue=Xr("","");function xA(e){return e===void 0}function go(e){return e!==void 0}function Gue(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 Vp(e,t){var r=e.key===t.key,n=e.tag===t.tag;return n&&r}function cm(e){var t,r=e.children,n=e.tag;if(go(n)){var a=e.elm=IW(n);if(cI(Vue,e),ae(r))for(t=0;ti?(g=r[l+1]==null?null:r[l+1].elm,VW(e,g,r,a,l)):vb(e,t,n,i))}function jd(e,t){var r=t.elm=e.elm,n=e.children,a=t.children;e!==t&&(cI(e,t),xA(t.text)?go(n)&&go(a)?n!==a&&Hue(r,n,a):go(a)?(go(e.text)&&AC(r,""),VW(r,null,a,0,a.length-1)):go(n)?vb(r,n,0,n.length-1):go(e.text)&&AC(r,""):e.text!==t.text&&(go(n)&&vb(r,n,0,n.length-1),AC(r,t.text)))}function Uue(e,t){if(Vp(e,t))jd(e,t);else{var r=e.elm,n=BW(r);cm(t),n!==null&&(Sc(n,t.elm,FW(r)),vb(n,[e],0,0))}return t}var Wue=0,$ue=function(){function e(t,r,n){if(this.type="svg",this.configLayer=Zue(),this.storage=r,this._opts=n=te({},n),this.root=t,this._id="zr"+Wue++,this._oldVNode=YO(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=IW("svg");cI(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",Uue(this._oldVNode,t),this._oldVNode=t}},e.prototype.renderOneToVNode=function(t){return t5(t,yA(this._id))},e.prototype.renderToVNode=function(t){t=t||{};var r=this.storage.getDisplayList(!0),n=this._width,a=this._height,i=yA(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=Yue(n,a,this._backgroundColor,i);s&&o.push(s);var l=t.compress?null:this._mainVNode=Xr("g","main",{},[]);this._paintList(r,i,l?l.children:o),l&&o.push(l);var u=oe(mt(i.defs),function(f){return i.defs[f]});if(u.length&&o.push(Xr("defs","defs",{},u)),t.animation){var c=Tue(i.cssNodes,i.cssAnims,{newline:!0});if(c){var h=Xr("style","stl",{},[],c);o.push(h)}}return YO(n,a,o,t.useViewBox)},e.prototype.renderToString=function(t){return t=t||{},oI(this.renderToVNode({animation:Te(t.cssAnimation,!0),emphasis:Te(t.cssEmphasis,!0),willUpdate:!1,compress:!0,useViewBox:Te(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&&!(f&&l&&f[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=s5(this),f=h.startIdx;f=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)}A0(i,function(h){var f=n._paintPerCursor(i,h,t,s,u);a=a&&f})}},N0),xt.wxa&&In(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&&qr.getTime(),c=r.drawIdx,h=r.notClearIdx,f=h>=0?Math.min(h,c):c;f15){f++;break}}}}yf(s,o),r.drawIdx=Math.max(f,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=lc,r=0);var i=IC(this._i,t)[r];return i||(i=u5("zr_"+t+"."+r,this,t,r),this._layerConfig[t]&&Je(i,this._layerConfig[t],!0),(n||a&&t!==lc)&&(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])&&Kue(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 f=u.dom;f.nextSibling?l.insertBefore(t.dom,f.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 In(this._i,function(n,a){t.call(r,n,a)})},e.prototype.eachBuiltinLayer=function(t,r){return In(this._i,function(n,a){t.call(r,n,a)},gg)},e.prototype.eachOtherLayer=function(t,r){return In(this._i,function(n,a){t.call(r,n,a)},_A)},e.prototype.getLayers=function(){var t={};return In(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=Qd(i,0,a),r=Qd(i,1,a),n.style.display="",(this._width!==t||r!==this._height)&&(n.style.width=t+"px",n.style.height=r+"px",In(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(lc).resize(t,r)}return this},e.prototype.clearLayer=function(t){R(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[lc][0].dom;var r=new GW("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;In(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}(Ut);function Hf(e,t){var r=e.mapDimensionsAll("defaultedLabel"),n=r.length;if(n===1){var a=Of(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 ey=function(e){q(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=Ar(r,-1,-1,2,2,null,s);l.attr({z2:Te(o,100),culling:!0,scaleX:i[0]/2,scaleY:i[1]/2}),l.drift=ace,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(){Us(this.childAt(0))},t.prototype.downplay=function(){Ws(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 f=r.getItemVisual(n,"symbolKeepAspect");this._createSymbol(o,r,n,l,u,f)}else{var v=this.childAt(0);v.silent=!1;var g={scaleX:l[0]/2,scaleY:l[1]/2};h?v.attr(g):At(v,g,s,n),_i(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,Qt(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,f,v,g,m,y,x;if(i&&(u=i.emphasisItemStyle,c=i.blurItemStyle,h=i.selectItemStyle,f=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(),f=w.get("focus"),v=w.get("blurScope"),g=w.get("disabled"),m=Gr(_),y=w.getShallow("scale"),x=_.getShallow("cursor")}var S=r.getItemVisual(n,"symbolRotate");s.attr("rotation",(S||0)*Math.PI/180||0);var C=Fh(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 Qr){var k=s.style;s.useStyle(te({image:k.image,x:k.x,y:k.y,width:k.width,height:k.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 I=r.getItemVisual(n,"liftZ"),P=this._z2;I!=null?P==null&&(this._z2=s.z2,s.z2+=I):P!=null&&(s.z2=P,this._z2=null);var j=o&&o.useNameLabel;Jr(s,m,{labelFetcher:l,labelDataIndex:n,defaultText:z,inheritColor:A,defaultOpacity:M.opacity});function z(H){return j?r.getName(H):Hf(r,H)}this._sizeX=a[0]/2,this._sizeY=a[1]/2;var D=s.ensureState("emphasis");D.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;D.scaleX=this._sizeX*B,D.scaleY=this._sizeY*B,this.setSymbolScale(1),ir(this,f,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=Be(this).dataIndex,s=a&&a.animation;if(this.silent=i.silent=!0,a&&a.fadeLabel){var l=i.getTextContent();l&&su(l,{style:{opacity:0}},n,{dataIndex:o,removeOpt:s,cb:function(){i.removeTextContent()}})}else i.removeTextContent();su(i,{style:{opacity:0},scaleX:0,scaleY:0},n,{dataIndex:o,cb:r,removeOpt:s})},t.getSymbolSize=function(r,n){return bv(r.getItemVisual(n,"symbolSize"))},t.getSymbolZ2=function(r,n){return r.getItemVisual(n,"z2")},t}(De);function ace(e,t){this.parent.drift(e,t)}function k0(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 c5(e){return e!=null&&!Re(e)&&(e={isIgnore:e}),e||{}}function h5(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:Gr(t),cursorStyle:t.get("cursor")}}function d5(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 ty=function(){function e(t){this.group=new De,this._SymbolCtor=t||ey}return e.prototype.updateData=function(t,r){this._progressiveEls=null,r=c5(r);var n=this.group,a=t.hostModel,i=this._data,o=this._SymbolCtor,s=r.disableAnimation,l=this._seriesScope=h5(t),u={disableAnimation:s},c=r.getSymbolPoint||function(h){return t.getItemLayout(h)};i||n.removeAll(),t.diff(i).add(function(h){var f=c(h);k0(t,f,h,r)&&d5(o,t,h,l,u,f,n)}).update(function(h,f){var v=i.getItemGraphicEl(f),g=c(h);if(!k0(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):At(v,x,a)}n.add(v),t.setItemGraphicEl(h,v)}).remove(function(h){var f=i.getItemGraphicEl(h);f&&f.fadeOut(function(){n.remove(f)},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 ZW(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 hi(e,t){return!isFinite(e)||!isFinite(t)}var oce=typeof Float32Array!==uv?Float32Array:void 0,sce=typeof Float64Array!==uv?Float64Array:void 0;function So(e){return hI({ctor:oce},e).arr}function hI(e,t){var r=e.arr,n=e.ctor;if(t>Yg&&(t=Yg),!r||e.typed&&r.length=a||m<0)break;if(hi(x,_)){if(l){m+=i;continue}break}if(m===r)e[i>0?"moveTo":"lineTo"](x,_),h=x,f=_;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||hi(M,A))v=x,g=_;else{P=M-u,j=A-c;var B=x-u,H=M-x,V=_-c,U=A-_,F=void 0,W=void 0;if(s==="x"){F=Math.abs(B),W=Math.abs(H);var $=P>0?1:-1;v=x-$*F*o,g=_,z=x+$*W*o,D=_}else if(s==="y"){F=Math.abs(V),W=Math.abs(U);var Z=j>0?1:-1;v=x,g=_-Z*F*o,z=x,D=_+Z*W*o}else F=Math.sqrt(B*B+V*V),W=Math.sqrt(H*H+U*U),I=W/(W+F),v=x-P*o*(1-I),g=_-j*o*(1-I),z=x+P*o*I,D=_+j*o*I,z=vl(z,pl(M,x)),D=vl(D,pl(A,_)),z=pl(z,vl(M,x)),D=pl(D,vl(A,_)),P=z-x,j=D-_,v=x-P*F/W,g=_-j*F/W,v=vl(v,pl(u,x)),g=vl(g,pl(c,_)),v=pl(v,vl(u,x)),g=pl(g,vl(c,_)),P=x-v,j=_-g,z=x+P*W/F,D=_+j*W/F}e.bezierCurveTo(h,f,v,g,x,_),h=z,f=D}else e.lineTo(x,_)}u=x,c=_,m+=i}return y}var YW=function(){function e(){this.smooth=0,this.smoothConstraint=!0}return e}(),cce=function(e){q(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 YW},t.prototype.buildPath=function(r,n){var a=n.points,i=0,o=a.length/2;if(n.connectNulls){for(;o>0&&hi(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?k_(s,v,m,x,r,c):k_(l,g,y,_,r,c);if(C>0)for(var M=0;M=0){var S=u?$r(l,g,y,_,A):$r(s,v,m,x,A);return u?[r,S]:[S,r]}}s=x,l=_;break}}},t}(pt),hce=function(e){q(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t}(YW),XW=function(e){q(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 hce},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&&hi(a[s*2-2],a[s*2-1]);s--);for(;o=0,i=e.fill||K.color.neutral99;g5(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,R(t.rich,function(s){g5(s,s)}),n}function g5(e,t){t&&(Se(t,"fill")&&(e.textFill=t.fill),Se(t,"stroke")&&(e.textStroke=t.fill),Se(t,"lineWidth")&&(e.textStrokeWidth=t.lineWidth),Se(t,"font")&&(e.font=t.font),Se(t,"fontStyle")&&(e.fontStyle=t.fontStyle),Se(t,"fontWeight")&&(e.fontWeight=t.fontWeight),Se(t,"fontSize")&&(e.fontSize=t.fontSize),Se(t,"fontFamily")&&(e.fontFamily=t.fontFamily),Se(t,"align")&&(e.textAlign=t.align),Se(t,"verticalAlign")&&(e.textVerticalAlign=t.verticalAlign),Se(t,"lineHeight")&&(e.textLineHeight=t.lineHeight),Se(t,"width")&&(e.textWidth=t.width),Se(t,"height")&&(e.textHeight=t.height),Se(t,"backgroundColor")&&(e.textBackgroundColor=t.backgroundColor),Se(t,"padding")&&(e.textPadding=t.padding),Se(t,"borderColor")&&(e.textBorderColor=t.borderColor),Se(t,"borderWidth")&&(e.textBorderWidth=t.borderWidth),Se(t,"borderRadius")&&(e.textBorderRadius=t.borderRadius),Se(t,"shadowColor")&&(e.textBoxShadowColor=t.shadowColor),Se(t,"shadowBlur")&&(e.textBoxShadowBlur=t.shadowBlur),Se(t,"shadowOffsetX")&&(e.textBoxShadowOffsetX=t.shadowOffsetX),Se(t,"shadowOffsetY")&&(e.textBoxShadowOffsetY=t.shadowOffsetY),Se(t,"textShadowColor")&&(e.textShadowColor=t.textShadowColor),Se(t,"textShadowBlur")&&(e.textShadowBlur=t.textShadowBlur),Se(t,"textShadowOffsetX")&&(e.textShadowOffsetX=t.textShadowOffsetX),Se(t,"textShadowOffsetY")&&(e.textShadowOffsetY=t.textShadowOffsetY))}function m5(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 vce(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 f=fce(u,a==="x"?r.getWidth():r.getHeight()),v=f.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=f[0].coord-g,y=f[v-1].coord+g,x=y-m;if(x<.001)return"transparent";R(f,function(w){w.offset=(w.coord-m)/x}),f.push({offset:v?f[v-1].offset:.5,color:h[1]||"transparent"}),f.unshift({offset:v?f[0].offset:.5,color:h[0]||"transparent"});var _=new Eh(0,0,0,0,f,!0);return _[a]=m,_[a+"2"]=y,_}}}function pce(e,t,r){var n=e.get("showAllSymbol"),a=n==="auto";if(!(n&&!a)){var i=r.getAxesByScale("ordinal")[0];if(i&&!(a&&gce(i,t))){var o=t.mapDimension(i.dim),s={};return R(i.getViewLabels(),function(l){l.tick.offInterval||(s[Cv(i.scale,l.tick)]=1)}),function(l){return!s.hasOwnProperty(t.get(o,l))}}}}function gce(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 mce(e){for(var t=e.length/2;t>0&&hi(e[t*2-2],e[t*2-1]);t--);return t-1}function b5(e,t){return[e[t*2],e[t*2+1]]}function yce(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 t8(e){if(e.get(["endLabel","show"]))return!0;for(var t=0;t0&&r.get(["emphasis","lineStyle","width"])==="bolder"){var W=g.getState("emphasis").style;W.lineWidth=+g.style.lineWidth+1}Be(g).seriesIndex=r.seriesIndex,ir(g,V,U,F);var $=_5(r.get("smooth")),Z=r.get("smoothMonotone");if(g.setShape({smooth:$,smoothMonotone:Z,connectNulls:A}),m){var J=s.getCalculationInfo("stackedOnSeries"),re=0;m.useStyle(Ee(u.getAreaStyle(),{fill:z,opacity:.7,lineJoin:"bevel",decal:s.getVisual("style").decal})),J&&(re=_5(J.get("smooth"))),m.setShape({smooth:$,stackedOnSmooth:re,smoothMonotone:Z,connectNulls:A}),Vr(m,r,"areaStyle"),Be(m).seriesIndex=r.seriesIndex,ir(m,V,U,F)}var Q=this._changePolyState;s.eachItemGraphicEl(function(ne){ne&&(ne.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 le=r.get("triggerEvent"),de=r.get("triggerLineEvent"),He=de===!0||le===!0||le==="line",ye=de===!0||le===!0||le==="area";this.packEventData(r,g,He),m&&this.packEventData(r,m,ye)},t.prototype.packEventData=function(r,n,a){Be(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=nh(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(hi(c,h)||this._clipShapeForSymbol&&!this._clipShapeForSymbol.contain(c,h))return;var f=r.get("zlevel")||0,v=r.get("z")||0;u=new ey(o,s),u.x=c,u.y=h,u.setZ(f,v);var g=u.getSymbolPath().getTextContent();g&&(g.zlevel=f,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 Rt.prototype.highlight.call(this,r,n,a,i)},t.prototype.downplay=function(r,n,a,i){var o=r.getData(),s=nh(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 Rt.prototype.downplay.call(this,r,n,a,i)},t.prototype._changePolyState=function(r){var n=this._polygon;V_(this._polyline,r),n&&V_(n,r)},t.prototype._newPolyline=function(r){var n=this._polyline;return n&&this._lineGroup.remove(n),n=new cce({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 XW({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");Le(c)&&(c=c(null));var h=u.get("animationDelay")||0,f=Le(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 k=Le(h)?h(g):c*A+f,I=m.getSymbolPath(),P=I.getTextContent();m.attr({scaleX:0,scaleY:0}),m.animateTo({scaleX:1,scaleY:1},{duration:200,setToFinal:!0,delay:k}),P&&P.animateFrom({style:{opacity:0}},{duration:300,delay:k}),I.disableLabelAnimation=!0}})},t.prototype._initOrUpdateEndLabel=function(r,n,a){var i=r.getModel("endLabel");if(t8(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 wt({z2:200}),u.ignoreClip=!0,s.setTextContent(this._endLabel),s.disableLabelAnimation=!0);var c=mce(l);c>=0&&(Jr(s,Gr(r,"endLabel"),{inheritColor:a,labelFetcher:r,labelDataIndex:c,defaultText:function(h,f,v){return v!=null?WW(o,v):Hf(o,h)},enableTextSetter:!0},xce(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"),f=a.hostModel,v=f.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",k=yce(h,S,A),I=k.range,P=I[1]-I[0],j=void 0;if(P>=1){if(P>1&&!v){var z=b5(h,I[0]);u.attr({x:z[0]+C,y:z[1]+M}),o&&(j=f.getRawValue(I[0]))}else{var z=c.getPointOn(S,A);z&&u.attr({x:z[0]+C,y:z[1]+M});var D=f.getRawValue(I[0]),B=f.getRawValue(I[1]);o&&(j=JG(a,g,D,B,k.t))}i.lastFrameIndex=I[0]}else{var H=r===1||i.lastFrameIndex>0?I[0]:0,z=b5(h,H);o&&(j=f.getRawValue(H)),u.attr({x:z[0]+C,y:z[1]+M})}if(o){var V=gv(u);typeof V.setLabelText=="function"&&V.setLabelText(j)}}},t.prototype._doUpdateAnimation=function(r,n,a,i,o,s,l){var u=this._polyline,c=this._polygon,h=r.hostModel,f=uce(this._data,r,this._stackedOnPoints,n,this._coordSys,a,this._valueOrigin),v=f.current,g=f.stackedOnCurrent,m=f.next,y=f.stackedOnNext;if(o&&(g=gl(f.stackedOnCurrent,f.current,a,o,l),v=gl(f.current,null,a,o,l),y=gl(f.stackedOnNext,f.next,a,o,l),m=gl(f.next,null,a,o,l)),x5(v,m)>3e3||c&&x5(g,y)>3e3){u.stopAnimation(),u.setShape({points:m}),c&&(c.stopAnimation(),c.setShape({points:m,stackedOnPoints:y}));return}u.shape.__points=f.current,u.shape.points=v;var x={shape:{points:m}};f.current!==v&&(x.shape.__points=f.next),u.stopAnimation(),At(u,x,h),c&&(c.setShape({points:v,stackedOnPoints:g}),c.stopAnimation(),At(c,{shape:{stackedOnPoints:y}},h),u.shape.points!==c.shape.points&&(c.shape.points=u.shape.points));for(var _=[],w=f.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(),f=Math.abs(c[1]-c[0])*(h||1),v=Math.round(s/f);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;ve(i)?g=bce[i]:Le(i)&&(g=i),g&&t.setData(a.downSample(a.mapDimension(u.dim),1/v,g,wce))}}}}}function Sce(e){e.registerChartView(_ce),e.registerSeriesModel(nce),e.registerLayout(ry("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,r8("line"))}var n8=function(e){q(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}(Ci),wA=null;function Cce(e){wA||(wA=e)}function ny(){return wA}var ew="expandAxisBreak",a8="collapseAxisBreak",i8="toggleAxisBreak",dI="axisbreakchanged",Tce={type:ew,event:dI,update:"update",refineEvent:fI},Mce={type:a8,event:dI,update:"update",refineEvent:fI},Ace={type:i8,event:dI,update:"update",refineEvent:fI};function fI(e,t,r,n){var a=[];return R(e,function(i){a=a.concat(i.eventBreaks)}),{eventContent:{breaks:a}}}function Nce(e){e.registerAction(Tce,t),e.registerAction(Mce,t),e.registerAction(Ace,t);function t(r,n){var a=[],i=ff(n,r);function o(s,l){R(i[s],function(u){var c=u.updateAxisBreaks(r);R(c.breaks,function(h){var f;a.push(Ee((f={},f[l]=u.componentIndex,f),h))})})}return o("xAxisModels","xAxisIndex"),o("yAxisModels","yAxisIndex"),o("singleAxisModels","singleAxisIndex"),{eventBreaks:a}}}var jl=Math.PI,kce=[[1,2,1,2],[5,3,5,3],[8,3,8,3]],Lce=[[0,1,0,1],[0,3,0,3],[0,3,0,3]],gh=Qe(),o8=Qe(),s8=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 Ice(e,t,r,n){var a=r.axis,i=t.ensureRecord(r),o=[],s,l=vI(e.axisName)&&Ff(e.nameLocation);R(n,function(g){var m=Wo(g);if(!(!m||m.label.ignore)){o.push(m);var y=i.transGroup;l&&(y.transform?Oa(hp,y.transform):Ih(hp),m.transform&&Ea(hp,hp,m.transform),je.copy(L0,m.localRect),L0.applyTransform(hp),s?s.union(L0):je.copy(s=new je(0,0,0,0),L0))}});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(),f=Math.min(h[0],h[1]),v=Math.max(h[0],h[1])-f;s.union(new je(f,0,v,1))}i.stOccupiedRect=s,i.labelInfoList=o}var hp=ar(),L0=new je(0,0,0,0),l8=function(e,t,r,n,a,i){if(Ff(e.nameLocation)){var o=i.stOccupiedRect;o&&u8(lue({},o,i.transGroup.transform),n,a)}else c8(i.labelInfoList,i.dirVec,n,a)};function u8(e,t,r){var n=new Oe;J1(e,t,n,{direction:Math.atan2(r.y,r.x),bidirectional:!1,touchThreshold:.05})&&vA(t,n)}function c8(e,t,r,n){for(var a=Oe.dot(n,t)>=0,i=0,o=e.length;i0?"top":"bottom",i="center"):th(a-jl)?(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}(),Pce=["axisLine","axisTickLabelEstimate","axisTickLabelDetermine","axisName"],Dce={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],f=c[0]>h[0];u&&(dr(c,c,u),dr(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"])&&W_(n.axis.scale))ny().buildAxisBreakLine(n,a,i,g);else{var m=new Tr(te({shape:{x1:c[0],y1:c[1],x2:h[0],y2:h[1]}},g));Rf(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"]);ve(y)&&(y=[y,y]),(ve(x)||Tt(x))&&(x=[x,x]);var _=Fh(n.get(["axisLine","symbolOffset"])||0,x),w=x[0],S=x[1];R([{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=Ar(y[M],-w/2,-S/2,w,S,v.stroke,!0),k=C.r+C.offset,I=f?h:c;A.attr({rotation:C.rotate,x:I[0]+k*Math.cos(e.rotation),y:I[1]-k*Math.sin(e.rotation),silent:!0,z2:11}),a.add(A)}})}}},axisTickLabelEstimate:function(e,t,r,n,a,i,o,s){var l=S5(t,a,s);l&&w5(e,t,r,n,a,i,o,Ui.estimate)},axisTickLabelDetermine:function(e,t,r,n,a,i,o,s){var l=S5(t,a,s);l&&w5(e,t,r,n,a,i,o,Ui.determine);var u=Oce(e,a,i,n);Rce(e,t.labelLayoutList,u),zce(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(vI(u)){var c=e.nameLocation,h=e.nameDirection,f=n.getModel("nameTextStyle"),v=n.get("nameGap")||0,g=n.axis.getExtent(),m=n.axis.inverse?-1:1,y=new Oe(0,0),x=new Oe(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 _=ar();x.transform(Js(_,_,e.rotation));var w=n.get("nameRotate");w!=null&&(w=w*jl/180);var S,C;Ff(c)?S=ea.innerTextLayout(e.rotation,w??e.rotation,h):(S=jce(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=f.getFont(),A=n.get("nameTruncate",!0)||{},k=A.ellipsis,I=zn(e.raw.nameTruncateMaxWidth,A.maxWidth,C),P=s.nameMarginLevel||0,j=new wt({x:y.x,y:y.y,rotation:S.rotation,silent:ea.isLabelSilent(n),style:$t(f,{text:u,font:M,overflow:"truncate",width:I,ellipsis:k,fill:f.getTextColor()||n.get(["axisLine","lineStyle","color"]),align:f.get("align")||S.textAlign,verticalAlign:f.get("verticalAlign")||S.textVerticalAlign}),z2:1});if(el({el:j,componentModel:n,itemName:u}),j.__fullText=u,j.anid="name",n.get("triggerEvent")){var z=ea.makeAxisEventDataBase(n);z.targetType="axisName",z.name=u,Be(j).eventData=z}i.add(j),j.updateTransform(),t.nameEl=j;var D=l.nameLayout=Wo({label:j,priority:j.z2,defaultAttr:{ignore:j.ignore},marginDefault:Ff(c)?kce[P]:Lce[P]});if(l.nameLocation=c,a.add(j),j.decomposeTransform(),e.shouldNameMoveOverlap&&D){var B=r.ensureRecord(n);r.resolveAxisNameOverlap(e,r,n,D,x,B)}}}};function w5(e,t,r,n,a,i,o,s){d8(t)||Bce(e,t,a,s,n,o);var l=t.labelLayoutList;Fce(e,n,l,i),Hce(n,e.rotation,l);var u=e.optionHideOverlap;Ece(n,l,u),u&&MW(It(l,function(c){return c&&!c.label.ignore})),Ice(e,r,n,l)}function jce(e,t,r,n){var a=zk(r-e),i,o,s=n[0]>n[1],l=t==="start"&&!s||t!=="start"&&s;return th(a-jl/2)?(o=l?"bottom":"top",i="center"):th(a-jl*1.5)?(o=l?"top":"bottom",i="center"):(o="middle",ajl/2?i=l?"left":"right":i=l?"right":"left"),{rotation:a,textAlign:i,textVerticalAlign:o}}function Ece(e,t,r){var n=e.axis,a=e.get(["axisLabel","customValues"]);if(Yse(n))return;function i(u,c,h){var f=Wo(t[c]),v=Wo(t[h]),g=n.scale;if(!(!f||!v)){if(u==null){if(!r&&a)return;var m=gh(f.label).labelInfo.tick;if(qm(g)&&m.notNice||Gn(g)&&m.offInterval){Ed(f.label);return}}if(u===!1||f.suggestIgnore){Ed(f.label);return}if(v.suggestIgnore){Ed(v.label);return}var y=.1;if(!r){var x=[0,0,0,0];f=pA({marginForce:x},f),v=pA({marginForce:x},v)}J1(f,v,null,{touchThreshold:y})&&Ed(u?v.label:f.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 Rce(e,t,r){e.showMinorTicks||R(t,function(n){if(n&&n.label.ignore)for(var a=0;a=0&&w(M,S,C.getStore())})}var v=0;if(f(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}hI(uc,v);var g=0;f(function(w,S,C){for(var M=0,A=C.count();M0&&_0?rW:Jse,r.serUids=n}var uc=hI({ctor:sce},50);function tw(e){return function(t,r){var n=Cn(t,{fromStat:{key:e}});if(yi(n.w2))return[-n.w2/2,n.w2/2]}}function Uc(e){return e+sb}function Vh(e,t){return e+sb+t}function pI(e){return Xce(),{liPosMinGap:!Gn(e.scale)}}var Po="bar",vm="pictorialBar";function f8(e,t,r,n){tI(e,{key:t,seriesType:r,coordSysType:n,getMetrics:pI})}function v8(e){var t=e.scale.rawExtentInfo.makeRenderInfo().startValue;return t}var p8={left:0,right:0,top:0,bottom:0},gb=["25%","25%"],Vi="cartesian2d",Kce=function(e){q(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.mergeDefaultAndTheme=function(r,n){var a=zh(r.outerBounds);e.prototype.mergeDefaultAndTheme.apply(this,arguments),a&&r.outerBounds&&Uo(r.outerBounds,a)},t.prototype.mergeOption=function(r,n){e.prototype.mergeOption.apply(this,arguments),this.option.outerBounds&&r.outerBounds&&Uo(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:p8,outerBoundsContain:"all",outerBoundsClampWidth:gb[0],outerBoundsClampHeight:gb[1],backgroundColor:K.color.transparent,borderWidth:1,borderColor:K.color.neutral30},t}(ht),Jce=lv(),CA="__ec_stack_";function g8(e){return e.get("stack")||CA+e.seriesIndex}function Qce(e){if(Gn(e.axis.scale)){for(var t=Cn(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=at(c,0);var h=0,f;R(o,function(m){var y=s[m];y.width||(y.width=c),f=y,h+=y.width*(1+u)}),f&&(h-=f.width*u);var v={},g=-h/2;return R(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 y8(e){return{seriesType:e,overallReset:function(t){var r=Vh(e,Vi);eI(t,r,function(n){var a=ehe(n,e);hh(n,r,function(i){var o=a.columnMap[g8(i)];i.getData().setLayout({bandWidth:o.bandWidth,offset:o.offset,size:o.width})})})}}}function x8(e){return{seriesType:e,plan:Bh(),reset:function(t){if(Uce(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=Zs(r,u)&&!!r.getCalculationInfo("stackedOnSeries"),f=i.isHorizontal(),v=i.toGlobalCoord(i.dataToCoord(v8(i))),g=_8(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&&So(C*3),A=g&&l&&So(C*3),k=g&&So(C),I=n.master.getRect(),P=f?I.width:I.height,j,z=S.getStore(),D=0;(j=w.next())!=null;){var B=z.get(h?y:o,j),H=z.get(s,j),V=v,U=void 0;h&&(U=+B-z.get(o,j));var F=void 0,W=void 0,$=void 0,Z=void 0;if(f){var J=n.dataToPoint([B,H]);h&&(V=n.dataToPoint([U,H])[0]),F=V,W=J[1]+_,$=J[0]-V,Z=x,cr($)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]=f.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}(Ut);Ut.registerClass(pm);var nhe=function(e){q(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 Jo(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=t7(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."+Po,t.dependencies=["grid","polar"],t.defaultOption=Cu(pm.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}(pm),ahe=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}(),mb=function(e){q(t,e);function t(r){var n=e.call(this,r)||this;return n.type="sausage",n}return t.prototype.getDefaultShape=function(){return new ahe},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,f=n.clockwise,v=Math.PI*2,g=f?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){Is(i,r,Be(i).dataIndex)})):n.removeAll(),this._data=null,this._isFirstFrame=!0},t.prototype._removeBackground=function(){this.group.remove(this._backgroundGroup),this._backgroundGroup=null},t.type=Po,t}(Rt),C5={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=jC(t.x+t.width,a),l=DC(t.y,e.y),u=jC(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=jC(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}},T5={cartesian2d:function(e,t,r,n,a,i,o,s,l){var u=new it({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?mb:wn,c=new u({shape:n,z2:1});c.name="item";var h=w8(a);if(c.calculateTextPosition=ihe(h,{isRoundCap:u===mb}),i){var f=c.shape,v=a?"r":"endAngle",g={};f[v]=a?n.r0:n.startAngle,g[v]=n[v],(s?At:Qt)(c,{shape:g},i)}return c}};function lhe(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 M5(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?At:Qt)(r,{shape:l},t,a,null);var c=t?e.baseAxis.model:null;(o?At:Qt)(r,{shape:u},c,a)}function A5(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 hhe(e){return e.startAngle!=null&&e.endAngle!=null&&e.startAngle===e.endAngle}function w8(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 k5(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=Co(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 f=n.getShallow("cursor");f&&e.attr("cursor",f);var v=s?o?a.r>=a.r0?"endArc":"startArc":a.endAngle>=a.startAngle?"endAngle":"startAngle":o?ghe(a,i.coordinateSystem):mhe(a,i.coordinateSystem),g=Gr(n);Jr(e,g,{labelFetcher:i,labelDataIndex:r,defaultText:Hf(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,ohe(e,y==="outside"?v:y,w8(o),n.get(["label","rotate"]))}q7(m,g,i.getRawValue(r),function(_){return WW(t,_)});var x=n.getModel(["emphasis"]);ir(e,x.get("focus"),x.get("blurScope"),x.get("disabled")),Vr(e,n),hhe(a)&&(e.style.fill="none",e.style.stroke="none",R(e.states,function(_){_.style&&(_.style.fill=_.style.stroke="none")}))}function dhe(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 fhe=function(){function e(){}return e}(),L5=function(e){q(t,e);function t(r){var n=e.call(this,r)||this;return n.type="largeBar",n}return t.prototype.getDefaultShape=function(){return new fhe},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 vhe(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 S8(e,t,r){if(ph(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 phe(e,t,r){var n=e.type==="polar"?wn:it;return new n({shape:S8(t,r,e),silent:!0,z2:0})}function ghe(e,t){if(e.height===0){var r=t.getOtherAxis(t.getBaseAxis());return r.inverse?"bottom":"top"}return e.height>0?"bottom":"top"}function mhe(e,t){if(e.width===0){var r=t.getOtherAxis(t.getBaseAxis());return r.inverse?"left":"right"}return e.width>=0?"right":"left"}function yhe(e){e.registerChartView(she),e.registerSeriesModel(nhe),e.registerLayout(e.PRIORITY.VISUAL.LAYOUT,y8(Po)),e.registerLayout(e.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,x8(Po)),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,r8(Po)),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)})}),b8(e)}function ay(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}(),Ql="pie",xhe=Qe(),C8=function(e){q(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 Nv(be(this.getData,this),be(this.getRawData,this)),this._defaultLabelLine(r)},t.prototype.mergeOption=function(){e.prototype.mergeOption.apply(this,arguments)},t.prototype.getInitialData=function(){return Av(this,{coordDimensions:["value"],encodeDefaulter:nt(TL,this)})},t.prototype.getDataParams=function(r){var n=this.getData(),a=xhe(n),i=a.seats;if(!i){var o=[];n.each(n.mapDimension("value"),function(l){o.push(l)}),i=a.seats=HG(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){rh(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."+Ql,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}(Ut);vae({fullType:C8.type,getCoord2:function(e){return e.getShallow("center")}});var _he=Math.PI/180;function D5(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,k=Math.abs(M)e.unconstrainedWidth?null:f:null;n.setStyle("width",v)}M8(i,n)}}}function M8(e,t){j5.rect=e,TW(j5,t,whe)}var whe={minMarginForce:[null,0,null,0],marginDefault:[1,0,1,0]},j5={};function EC(e){return e.position==="center"}function She(e){var t=e.getData(),r=[],n,a,i=!1,o=(e.get("minShowLabelAngle")||0)*_he,s=t.getLayout("viewRect"),l=t.getLayout("r"),u=s.width,c=s.x,h=s.y,f=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),k=A.shape,I=A.getTextContent(),P=A.getTextGuideLine(),j=t.getItemModel(M),z=j.getModel("label"),D=z.get("position")||j.get(["emphasis","label","position"]),B=z.get("distanceToLabelLine"),H=z.get("alignTo"),V=me(z.get("edgeDistance"),u),U=z.get("bleedMargin");U==null&&(U=Math.min(u,f)>200?10:2);var F=j.getModel("labelLine"),W=F.get("length");W=me(W,u);var $=F.get("length2");if($=me($,u),Math.abs(k.endAngle-k.startAngle)0?"right":"left":J>0?"left":"right"}var qe=Math.PI,Fe=0,_t=z.get("rotate");if(Tt(_t))Fe=_t*(qe/180);else if(D==="center")Fe=0;else if(_t==="radial"||_t===!0){var bt=J<0?-Z+qe:-Z;Fe=bt}else if(_t==="tangential"||_t==="tangential-noflip"&&D!=="outside"&&D!=="outer"){var et=Math.atan2(J,re);et<0&&(et=qe*2+et);var Ke=re>0;Ke&&_t!=="tangential-noflip"&&(et=qe+et),Fe=et-qe}if(i=!!Fe,I.x=Q,I.y=le,I.rotation=Fe,I.setStyle({verticalAlign:"middle"}),ye){I.setStyle({align:He});var ce=I.states.select;ce&&(ce.x+=I.x,ce.y+=I.y)}else{var St=new je(0,0,0,0);M8(St,I),r.push({label:I,labelLine:P,position:D,len:W,len2:$,minTurnAngle:F.get("minTurnAngle"),maxSurfaceAngle:F.get("maxSurfaceAngle"),surfaceNormal:new Oe(J,re),linePoints:de,textAlign:He,labelDistance:B,labelAlignTo:H,edgeDistance:V,bleedMargin:U,rect:St,unconstrainedWidth:St.width,labelStyleWidth:I.style.width})}A.setTextConfig({inside:ye})}}),!i&&e.get("avoidLabelOverlap")&&bhe(r,n,a,l,u,f,c,h);for(var m=0;mF?($=B+A*F/2,Z=$):($=B+I,Z=W-I),n.setItemLayout(U,{angle:F,startAngle:$,endAngle:Z,clockwise:w,cx:o,cy:s,r0:u,r:S?Nt(V,M,[u,l]):l}),B=W}),z0){for(var c=o.getItemLayout(0),h=1;isNaN(c&&c.startAngle)&&h=i.r0}},t.type=Ql,t}(Rt);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!(Tt(o)&&!isNaN(o)&&o<0)})}}}function khe(e){e.registerChartView(Ahe),e.registerSeriesModel(C8),cU(Ql,e.registerAction),e.registerLayout(Che),e.registerProcessor(ay(Ql)),e.registerProcessor(Nhe(Ql))}var Lhe=function(e){q(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 Jo(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}(Ut),N8=4,Ihe=function(){function e(){}return e}(),Phe=function(e){q(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 Ihe},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,f=i[c+1]-l/2;if(r>=h&&n>=f&&r<=h+s&&n<=f+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,f=0;f=0&&(u.dataIndex=h+(t.startIndex||0))})},e.prototype.remove=function(){this._clear()},e.prototype._clear=function(){this._newAdded=[],this.group.removeAll()},e}(),jhe=function(e){q(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(),Io(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=ry("").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 Dhe:new ty,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}(Rt);function RC(e){return{clipShape:JW(e)}}var TA=function(e){q(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.getCoordSysModel=function(){return this.getReferringComponents("grid",pr).models[0]},t.type="cartesian2dAxis",t}(ht);kr(TA,Tv);var k8={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"}},Ehe=Je({boundaryGap:!0,deduplication:null,jitter:0,jitterOverlap:!0,jitterMargin:2,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto",show:"auto"},axisLabel:{interval:"auto"}},k8),gI=Je({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}}},k8),Rhe=Je({splitNumber:6,axisLabel:{rich:{primary:{fontWeight:"bold"}}},splitLine:{show:!1}},gI),Ohe=Ee({logBase:10},gI);const L8={category:Ehe,value:gI,time:Rhe,log:Ohe};function Uf(e,t,r,n){R(JU,function(a,i){var o=Je(Je({},L8[i],!0),n,!0),s=function(l){q(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 f=em(this),v=f?zh(c):{},g=h.getTheme();Je(c,g.get(i+"Axis")),Je(c,this.getDefaultOption()),c.type=R5(c),f&&Uo(c,v,f)},u.prototype.optionUpdated=function(){var c=this.option;c.type==="category"&&(this.__ordinalMeta=am.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=ny();return h?h.updateModelAxisBreak(this,c):{breaks:[]}},u.type=t+"Axis."+i,u.defaultOption=o,u}(r);e.registerComponentModel(s)}),e.registerSubTypeDefaulter(t+"Axis",R5)}function R5(e){return e.type||(e.data?"category":"value")}var zhe=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(),It(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}(),Wx=["x","y"];function O5(e){return(e.type==="interval"||e.type==="time")&&!W_(e)}var Bhe=function(e){q(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=Vi,r.dimensions=Wx,r}return t.prototype.calcAffineTransform=function(){this._transform=this._invTransform=null;var r=this.getAxis("x").scale,n=this.getAxis("y").scale;if(!(!O5(r)||!O5(n))){var a=ab(r,null),i=ab(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,f=o[0]-a[0]*c,v=o[1]-i[0]*h,g=this._transform=[c,0,0,h,f,v];this._invTransform=Oa([],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 je(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 dr(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 dr(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 je(i,o,s,l)},t}(zhe);function I8(e,t){var r=e.scale,n=e.model,a=cW(r,n,n.ecModel,e,null),i=Bf(r),o=Bf(t)?t.intervalStub:t,s=i?r.intervalStub:r,l=r.base,u=o.getTicks(),c=o.getTicks({expandToNicedExtent:!0}),h=u.length-1,f,v,g;if(h===1)f=v=0,g=1;else if(h===2){var m=cr(u[0].value-u[1].value),y=cr(u[1].value-u[2].value);f=v=0,m===y?g=2:(g=1,m=A[1])return!0})):S[1]?(I=A[1],B(function(){if(F(),D=Mt(z-P*g,j),H(),k<=A[0])return!0})):B(function(){D=Mt(Ph(A[0]/P)*P,j),z=Mt(mi(A[1]/P)*P,j);var J=Fo((z-D)/P);if(J<=g){var re=g-J,Q=void 0,le=a.incl0||i;if(le&&A[0]===0)Q=[0,re];else if(le&&A[1]===0)Q=[re,0];else{var de=mi(re/2);Q=re%2===0?[de,de]:k+I=A[1])return!0}})}tW(r,S,M,[k,I],C,{interval:P,intervalCount:g,intervalPrecision:j,niceExtent:[D,z]})}var z5=[[3,1],[0,2]],Fhe=function(){function e(t,r,n){this.type="grid",this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this.axisPointerEnabled=!0,this.dimensions=Wx,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;R(this._axesList,function(o){fh(o,Vf);var s=o.scale;Gn(s)&&s.setSortInfo(o.model.get("categorySortInfo"))});function a(o){for(var s=mt(o),l=[],u=s.length-1;u>=0;u--){var c=o[+s[u]];c.__alignTo?l.push(c):Gf(c)}R(l,function(h){Ghe(h,h.__alignTo)?Gf(h):I8(h,h.__alignTo.scale)})}a(n.x),a(n.y);var i={};R(n.x,function(o){B5(n,"y",o,i)}),R(n.y,function(o){B5(n,"x",o,i)}),this.resize(this.model,r)},e.prototype.resize=function(t,r,n){var a=Ur(t,r),i=this._rect=tr(t.getBoxLayoutParams(),a.refContainer),o=this._axesMap,s=this._coordsList,l=t.get("containLabel");if(MA(o,i),!n){var u=Whe(i,s,o,l,r),c=void 0;if(l)AA?(AA(this._axesList,i),MA(o,i)):c=H5(i.clone(),"axisLabel",null,i,o,u,a);else{var h=$he(t,i,a),f=h.outerBoundsRect,v=h.parsedOuterBoundsContain,g=h.outerBoundsClamp;f&&(c=H5(f,v,g,i,o,u,a))}P8(i,o,Ui.determine,null,c,a),R(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]}Re(t)&&(r=t.yAxisIndex,t=t.xAxisIndex);for(var a=0,i=this._coordsList;a=0;a--){var i=e[+t[a]];$U(i.scale)&&eW(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&&R(n,function(o){o.__alignTo=r})}function Ghe(e,t){return W_(e.scale)||W_(t.scale)||t.scale.getTicks().length<2}function Hhe(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 MA(e,t){R(e.x,function(r){return G5(r,t.x,t.width)}),R(e.y,function(r){return G5(r,t.y,t.height)})}function G5(e,t,r){var n=[0,r],a=e.inverse?1:0;e.setExtent(n[a],n[1-a]),Hhe(e,t)}var AA;function Uhe(e){AA=e}function H5(e,t,r,n,a,i,o){P8(n,a,Ui.estimate,t,!1,o);var s=[0,0,0,0];u(0),u(1),c(n,0,NaN),c(n,1,NaN);var l=Ks(s,function(f){return f>0})==null;return sh(n,s,!0,!0,r),MA(a,n),l;function u(f){R(a[We[f]],function(v){if(lm(v.model)){var g=i.ensureRecord(v.model),m=g.labelInfoList;if(m)for(var y=0;y0&&!yn(v)&&v>1e-4&&(f/=v),f}}function Whe(e,t,r,n,a){var i=new s8(Zhe);return R(r,function(o){return R(o,function(s){if(lm(s.model)){var l=!n;s.axisBuilder=$ce(e,t,s.model,a,i,l)}})}),i}function P8(e,t,r,n,a,i){var o=r===Ui.determine;R(t,function(u){return R(u,function(c){lm(c.model)&&(Zce(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[We[1-u]]=e[_r[u]]<=i.refContainer[_r[u]]*.5?0:1-u===1?2:1}R(t,function(u,c){return R(u,function(h){lm(h.model)&&((n==="all"||o)&&h.axisBuilder.build({axisName:!0},{nameMarginLevel:s[c]}),o&&h.axisBuilder.build({axisLine:!0}))})})}function $he(e,t,r){var n,a=e.get("outerBoundsMode",!0);a==="same"?n=t.clone():(a==null||a==="auto")&&(n=tr(e.get("outerBounds",!0)||p8,r.refContainer));var i=e.get("outerBoundsContain",!0),o;i==null||i==="auto"||Ye(["all","axisLabel"],i)<0?o="all":o=i;var s=[O_(Te(e.get("outerBoundsClampWidth",!0),gb[0]),t.width),O_(Te(e.get("outerBoundsClampHeight",!0),gb[1]),t.height)];return{outerBoundsRect:n,parsedOuterBoundsContain:o,outerBoundsClamp:s}}var Zhe=function(e,t,r,n,a,i){var o=r.axis.dim==="x"?"y":"x";l8(e,t,r,n,a,i),Ff(e.nameLocation)||R(t.recordMap[o],function(s){s&&s.labelInfoList&&s.dirVec&&c8(s.labelInfoList,s.dirVec,n,a)})};function Yhe(e,t){var r={axesInfo:{},seriesInvolved:!1,coordSysAxesInfo:{},coordSysMap:{}};return Xhe(r,e,t),r.seriesInvolved&&Khe(r,e),r}function Xhe(e,t,r){var n=t.getComponent("tooltip"),a=t.getComponent("axisPointer"),i=a.get("link",!0)||[],o=[];R(r.getCoordinateSystems(),function(s){if(!s.axisPointerEnabled)return;var l=gm(s.model),u=e.coordSysAxesInfo[l]={};e.coordSysMap[l]=s;var c=s.model,h=c.getModel("tooltip",n);if(R(s.getAxes(),nt(m,!1,null)),s.getTooltipAxes&&n&&h.get("show")){var f=h.get("trigger")==="axis",v=h.get(["axisPointer","type"])==="cross",g=s.getTooltipAxes(h.get(["axisPointer","axis"]));(f||v)&&R(g.baseAxes,nt(m,v?"cross":!0,f)),v&&R(g.otherAxes,nt(m,"cross",!1))}function m(y,x,_){var w=_.model.getModel("axisPointer",a),S=w.get("show");if(!(!S||S==="auto"&&!y&&!NA(w))){x==null&&(x=w.get("triggerTooltip")),w=y?qhe(_,h,a,t,y,x):w;var C=w.get("snap"),M=w.get("triggerEmphasis"),A=gm(_.model),k=x||C||_.type==="category",I=e.axesInfo[A]={key:A,axis:_,coordSys:s,axisPointerModel:w,triggerTooltip:x,triggerEmphasis:M,involveSeries:k,snap:C,useHandle:NA(w),seriesModels:[],linkGroup:null};u[A]=I,e.seriesInvolved=e.seriesInvolved||k;var P=Jhe(i,_);if(P!=null){var j=o[P]||(o[P]={axesInfo:{}});j.axesInfo[A]=I,j.mapper=i[P].mapper,I.linkGroup=j}}}})}function qhe(e,t,r,n,a,i){var o=t.getModel("axisPointer"),s=["type","snap","lineStyle","shadowStyle","label","animation","animationDurationUpdate","animationEasingUpdate","z"],l={};R(s,function(f){l[f]=ke(o.get(f))}),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&&Ee(u,h.textStyle)}}return e.model.getModel("axisPointer",new vt(l,r,n))}function Khe(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||R(e.coordSysAxesInfo[gm(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 Jhe(e,t){for(var r=t.model,n=t.dim,a=0;a=0||e===t}function Qhe(e){var t=mI(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=NA(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 sde=Qe();function $5(e,t,r,n){if(e instanceof n8){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=Gn(e.scale)?Cn(e).w:null;return s?z8(r,o,u,n):lde(e,t,r,n,o,l)}function z8(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 lde(e,t,r,n,a,i){var o=sde(e);o.items||(o.items=[]);var s=o.items,l=Z5(s,t,r,n,a,i,1),u=Z5(s,t,r,n,a,i,-1),c=Math.abs(l-r)a/2||h&&f>h/2-n?z8(r,a,h,n):(s.push({fixedCoord:t,floatCoord:c,r:n}),c)}function Z5(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=Ee({color:m.color},u));var x=Je(ke(m),{boundaryGap:r,splitNumber:n,clockwise:a,scale:i,axisLine:o,axisTick:s,axisLabel:l,name:m.text,showName:c,nameLocation:"end",nameGap:f,nameTextStyle:y,triggerEvent:v},!1);if(ve(h)){var _=x.name;x.name=h.replace("{value}",_??"")}else Le(h)&&(x.name=h(x.name,x));var w=new vt(x,null,this.ecModel);return kr(w,Tv.prototype),w.mainType="radar",w.componentIndex=this.componentIndex,w.uid=Oh("ec_radar"),w},this);this._indicatorModels=g},t.prototype.getIndicatorModels=function(){return this._indicatorModels},t.type=B8,t.defaultOption={z:0,center:["50%","50%"],radius:"50%",startAngle:90,clockwise:!1,axisName:{show:!0,color:K.color.axisLabel},boundaryGap:[0,0],splitNumber:F8,axisNameGap:15,scale:!1,shape:"polygon",axisLine:Je({lineStyle:{color:K.color.neutral20}},dp.axisLine),axisLabel:E0(dp.axisLabel,!1),axisTick:E0(dp.axisTick,!1),splitLine:E0(dp.splitLine,!0),splitArea:E0(dp.splitArea,!0),indicator:[]},t}(ht),mde=function(e){q(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 ea(s.model,n,{axisName:l,position:[a.cx,a.cy],rotation:s.angle,labelDirection:-1,tickDirection:-1,nameDirection:1});return u});R(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"),f=l.get("color"),v=u.get("color"),g=ae(f)?f:[f],m=ae(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),f=(i>0?1:-1)*(h>3?.4:h>1?.15:.05);this._checkTriggerMoveZoom(this,"scrollMove","moveOnMouseWheel",r,{scrollDelta:f,originX:s,originY:l,isAvailableBehavior:null})}}}},t.prototype._pinchHandler=function(r){if(!(q5(this._zr,"globalPan")||fp(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)&&(Vs(i.event),i.__ecRoamConsumed=!0,K5(r,n,a,i,o))},t}(wi);function fp(e){return e.__ecRoamConsumed}var Ade=Qe();function nw(e){var t=Ade(e);return t.roam=t.roam||{},t.uniform=t.uniform||{},t}function vp(e,t,r,n){for(var a=nw(e),i=a.roam,o=i[t]=i[t]||[],s=0;s=4&&(c={x:parseFloat(f[0]||0),y:parseFloat(f[1]||0),width:parseFloat(f[2]),height:parseFloat(f[3])})}if(c&&s!=null&&l!=null&&(h=U8(c,{x:0,y:0,width:s,height:l}),!r.ignoreViewBox)){var v=a;a=new De,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 it({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&&Se(zC,s)){l=c.call(this,t,r);var h=t.getAttribute("name");if(h){var f={name:h,namedFrom:null,svgNodeTagLower:s,el:l};n.push(f),s==="g"&&(u=f)}else a&&n.push({name:a.name,namedFrom:a,svgNodeTagLower:s,el:l});r.add(l)}}var v=e3[s];if(v&&Se(e3,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 jf({style:{text:t.textContent},silent:!0,x:this._textX||0,y:this._textY||0});Za(r,n),Ca(t,n,this._defsUsePending,!1,!1),Ide(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 De;return Za(r,n),Ca(t,n,this._defsUsePending,!1,!1),n},rect:function(t,r){var n=new it;return Za(r,n),Ca(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 Ko;return Za(r,n),Ca(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 Tr;return Za(r,n),Ca(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 Hm;return Za(r,n),Ca(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=n3(n));var i=new Sn({shape:{points:a||[]},silent:!0});return Za(r,i),Ca(t,i,this._defsUsePending,!1,!1),i},polyline:function(t,r){var n=t.getAttribute("points"),a;n&&(a=n3(n));var i=new un({shape:{points:a||[]},silent:!0});return Za(r,i),Ca(t,i,this._defsUsePending,!1,!1),i},image:function(t,r){var n=new Qr;return Za(r,n),Ca(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 De;return Za(r,s),Ca(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 De;return Za(r,s),Ca(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=P7(n);return Za(r,a),Ca(t,a,this._defsUsePending,!1,!1),a.silent=!0,a}}}(),e}(),e3={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 Eh(t,r,n,a);return t3(e,i),r3(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 tL(t,r,n);return t3(e,a),r3(e,a),a}};function t3(e,t){var r=e.getAttribute("gradientUnits");r==="userSpaceOnUse"&&(t.global=!0)}function r3(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={};H8(r,i,i);var o=i.stopColor||r.getAttribute("stop-color")||"#000000",s=i.stopOpacity||r.getAttribute("stop-opacity");if(s){var l=Bn(o),u=l&&l[3];u&&(l[3]*=ks(s),o=ci(l,"rgba"))}t.colorStops.push({offset:a,color:o})}r=r.nextSibling}}function Za(e,t){e&&e.__inheritedStyle&&(t.__inheritedStyle||(t.__inheritedStyle={}),Ee(t.__inheritedStyle,e.__inheritedStyle))}function n3(e){for(var t=aw(e),r=[],n=0;n0;i-=2){var o=n[i],s=n[i-1],l=aw(o);switch(a=a||ar(),s){case"translate":Hi(a,a,[parseFloat(l[0]),parseFloat(l[1]||"0")]);break;case"scale":_1(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);Ea(a,[1,0,u,1,0,0],a);break;case"skewY":var c=Math.tan(parseFloat(l[0])*BC);Ea(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 i3=/([^\s:;]+)\s*:\s*([^:;]+)/g;function H8(e,t,r){var n=e.getAttribute("style");if(n){i3.lastIndex=0;for(var a;(a=i3.exec(n))!=null;){var i=a[1],o=Se(yb,i)?yb[i]:null;o&&(t[o]=a[2]);var s=Se(xb,i)?xb[i]:null;s&&(r[s]=a[2])}}}function Ode(e,t,r){for(var n=0;n1e-6;mp[0]=o?(a[0]-n.x)/i:a[0],mp[1]=o?(a[1]-n.y)/i:a[1],dr(mp,mp,e.mtRawInv);var s=lfe(e,mp);f3(t,s,i),R(r,function(l){l!==t&&f3(l,s.slice(),i)})}var mp=[];function f3(e,t,r){var n=e.option;n.center=t,n.zoom=r}function SI(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 Q8(e,t){var r=t.getShallow("nodeScaleRatio",!0)||1,n=e;return((n.zoom-1)*r+1)/(n.trans[$o].scaleX||1)}function sw(e,t,r,n,a,i,o,s){var l=wb(e);if(!l){r.disable();return}r.enable(Te(e.get("roam"),o),{api:t,zInfo:{component:e},triggerInfo:{roamTrigger:e.get("roamTrigger"),isInSelf:n,isInClip:function(c,h,f){return!a||a.contain(h,f)}}});function u(c){var h=e.mainType,f=lL(Ee({type:t9(h,e.subType,g7)},c));s&&(f.componentType=h),f[h+"Id"]=e.id,t.dispatchAction(f)}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 e9(e){return function(t,r,n){return HC.copy(e.getBoundingRect()),HC.applyTransform(e.getComputedTransform()),HC.contain(r,n)}}var HC=new je(0,0,0,0);function CI(e,t,r){var n=t9(t,r,g7);e.registerAction({type:n,event:n,update:"none"},function(a,i,o){i.eachComponent(Uk(a,t,r),function(s){X8(a,s),q8(a,s,i,o)})})}function t9(e,t,r){return(e!==Ho?e:t==="map"?"geo":t)+r}function r9(e){return e.zoom!=null}function TI(e,t,r,n,a,i,o){var s=new iw(null,J8(e.ecModel,t));return ow(s,r,n,a,i),o?bb(s,o.x,o.y,o.width,o.height):bb(s,r,n,a,i),bI(s,e),s}var MI=["rect","circle","line","ellipse","polygon","polyline","path"],cfe=we(MI),hfe=we(MI.concat(["g"])),dfe=we(MI.concat(["g"])),n9=Qe();function B0(e){var t=e.getItemStyle(),r=e.get("areaColor");return r!=null&&(t.fill=r),t}function v3(e){var t=e.style;t&&(t.stroke=t.stroke||t.fill,t.fill=null)}var a9=function(){function e(t){var r=this.group=new De,n=this._transformGroup=new De;r.add(n),this.uid=Oh("ec_map_draw"),this._controller=new Hh(t.getZr()),n.add(this._regionsGroup=new De),n.add(this._svgGroup=new De)}return e.prototype.draw=function(t,r,n,a,i){var o=this,s=t.getData&&t.getData();xf(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,f=!c.childAt(0)||i,v;l.shouldClip()?(v=xI(null,u),this.group.setClipPath(new it({shape:v.clone()}))):this.group.removeClipPath(),lu(h,yh,u,f?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),sw(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){lu(this._transformGroup,yh,t.coordinateSystem.view,null)},e.prototype._buildGeoJSON=function(t,r,n,a,i,o){var s=this._regionsGroupByName=we(),l=we(),u=this._regionsGroup,c=n.projection,h=c&&c.stream,f=ou(ym(null,t,mh));function v(y,x){return x&&(y=x(y)),y&&dr([],y,f)}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;Jr(r,Gr(a),{labelFetcher:c,labelDataIndex:u,defaultText:n},h);var f=r.getTextContent();if(f&&(n9(f).ignore=f.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 m3(e,t,r,n,a,i){t?t.setItemGraphicEl(i,r):Be(r).eventData={componentType:"geo",componentIndex:e.componentIndex,geoIndex:e.componentIndex,name:n,region:a&&a.option||{}}}function y3(e,t,r,n,a){t||el({el:r,componentModel:e,itemName:n,itemTooltipOption:a.get("tooltip")})}function x3(e,t,r,n){t.highDownSilentOnTouch=!!e.get("selectedMode");var a=n.getModel("emphasis"),i=a.get("focus");return ir(t,i,a.get("blurScope"),a.get("disabled")),xf(e)&&nne(t,e,r),i}function _3(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(),R(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 Sb(this)?this.coordinateSystem.view:null},t.type="series."+xh,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}(Ut);function i9(e){return e.indexOf("i")===0}function Sb(e){return xm(e.seriesGroup)===e&&!e.getHostGeoModel()}function xm(e){return e.f[0]}function AI(e,t){var r={};return e.eachRawSeriesByType(xh,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 vfe=function(e){q(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=xh,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):Sb(r)?(s=s||(this._mapDraw=new a9(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;Sb(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 Ko({style:{fill:r.getData().getVisual("style").fill},shape:{cx:l[0]+u*9,cy:l[1],r:3},silent:!0,z2:8+(u?0:cv+1)});if(!u){var h=xm(r.seriesGroup).getData(),f=n.getName(o),v=h.indexOfName(f),g=n.getItemModel(o),m=g.getModel("label"),y=h.getItemGraphicEl(v);Jr(c,Gr(g),{labelFetcher:{getFormattedLabel:function(x,_){return r.getFormattedLabel(v,_)}},defaultText:f}),c.disableLabelAnimation=!0,m.get("position")||c.setTextConfig({position:"bottom"}),y.onHoverStateChange=function(x){V_(c,x)}}a.add(c)}}})},t.type=xh,t}(Rt),pfe={geoJSON:{aspectScale:.75,invertLongitute:!0},geoSVG:{aspectScale:1,invertLongitute:!1}},o9=["lng","lat"],b3=function(e){q(t,e);function t(r,n,a){var i=e.call(this)||this;i.dimensions=o9,i.type="geo",i._nameCoordMap=we(),i.name=r;var o=a.projection,s=Ys.load(n,a.nameMap,a.nameProperty),l=Ys.getGeoResource(n);i.resourceType=l?l.type:null;var u=i.regions=s.regions,c=pfe[l.type];i._clip=a.clip;var h=o?!1:c.invertLongitute;i.view=new iw(h,J8(a.ecModel,a.api),i),i.map=n,i._regionsMap=s.regionsMap,i.regions=s.regions,i.projection=o;var f;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=tr(C,m),S=_H(e,S,y)}bb(r,S.x,S.y,S.width,S.height),bI(r,e)}function gfe(e,t){R(t.get("geoCoord"),function(r,n){e.addGeoCoord(n,r)})}var mfe=function(){function e(){this.dimensions=o9}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 b3(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=S3,l.resize(i,r)}),t.eachSeries(function(i){Ym({targetModel:i,coordSysType:"geo",coordSysProvider:function(){var o=i.subType===xh?i.getHostGeoModel():i.getReferringComponents("geo",pr).models[0];return o&&o.coordinateSystem},allowNotFound:!0})}),R(AI(t,!0),function(i,o){if(i9(o)){var s=i.r[0],l=[];R(i.r,function(f){l.push(f.get("nameMap")),f.seriesGroup=null});var u=o.slice(1),c=new b3(u,u,te({nameMap:y1(l),api:r,ecModel:t},a(s))),h;R(i.r,function(f){h=Te(h,f.get("scaleLimit"))}),n.push(c),c.resize=S3,c.resize(s,r),R(i.r,function(f){f.coordinateSystem=c,gfe(c,f)})}}),n},e.prototype.getFilledRegions=function(t,r,n,a){for(var i=(t||[]).slice(),o=we(),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 Nfe(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){Lfe(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=Ife(e,a,e.parentNode.hierNode.defaultAncestor||n[0],t)}function kfe(e){var t=e.hierNode.prelim+e.parentNode.hierNode.modifier;e.setLayout({x:t},!0),e.hierNode.modifier+=e.parentNode.hierNode.modifier}function C3(e){return arguments.length?e:jfe}function Gp(e,t){return e-=Math.PI/2,{x:t*Math.cos(e),y:t*Math.sin(e)}}function Lfe(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 Ife(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 f=s.hierNode.prelim+h-i.hierNode.prelim-u+n(s,i);f>0&&(Dfe(Pfe(s,e,r),e,f),u+=f,l+=f),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 Pfe(e,t,r){return e.hierNode.ancestor.parentNode===t.parentNode?e.hierNode.ancestor:r}function Dfe(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 jfe(e,t){return e.parentNode===t.parentNode?1:2}var di=Qe();function u9(e){var t=e.mainData,r=e.datas;r||(r={main:t},e.datasAttr={main:"data"}),e.datas=e.mainData=null,c9(t,r,e),R(r,function(n){R(t.TRANSFERABLE_METHODS,function(a){n.wrapMethod(a,nt(Efe,e))})}),t.wrapMethod("cloneShallow",nt(Ofe,e)),R(t.CHANGABLE_METHODS,function(n){t.wrapMethod(n,nt(Rfe,e))}),bn(r[t.dataType]===t)}function Efe(e,t){if(Ffe(this)){var r=te({},di(this).datas);r[this.dataType]=t,c9(t,r,e)}else NI(t,this.dataType,di(this).mainData,e);return t}function Rfe(e,t){return e.struct&&e.struct.update(),t}function Ofe(e,t){return R(di(t).datas,function(r,n){r!==t&&NI(r.cloneShallow(),n,t,e)}),t}function zfe(e){var t=di(this).mainData;return e==null||t==null?t:di(t).datas[e]}function Bfe(){var e=di(this).mainData;return e==null?[{data:e}]:oe(mt(di(e).datas),function(t){return{type:t,data:di(e).datas[t]}})}function Ffe(e){return di(e).mainData===e}function c9(e,t,r){di(e).datas={},R(t,function(n,a){NI(n,a,e,r)})}function NI(e,t,r,n){di(r).datas[t]=e,di(e).mainData=r,e.dataType=t,n.struct&&(e[n.structAttr]=n.struct,n.struct[n.datasAttr[t]]=e),e.getLinkedData=zfe,e.getLinkedDataAll=Bfe}var Vfe=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){Le(t)&&(n=r,r=t,t=null),t=t||{},ve(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(ve(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 h9(e){for(var t=[];e;)e=e.parentNode,e&&t.push(e);return t.reverse()}function LI(e,t){var r=h9(e);return Ye(r,t)>=0}function lw(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 _h="tree",Hfe=function(e){q(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 vt(a,this,this.ecModel),o=kI.createTree(n,this,s);function s(h){h.wrapMethod("getItemModel",function(f,v){var g=o.getNodeByDataIndex(v);return g&&g.children.length&&g.isExpand||(f.parentModel=i),f})}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 f=h.hostTree.data.getRawDataItem(h.dataIndex);h.isExpand=f&&f.collapsed!=null?!f.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 Er("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=lw(a,this),n.collapsed=!a.isExpand,n},t.prototype.__ownRoamView=function(){return this.coordinateSystem},t.type="series."+_h,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}(Ut),Ufe=function(){function e(){this.parentPoint=[],this.childPoints=[]}return e}(),Wfe=function(e){q(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 Ufe},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,f=me(n.forkPosition,1),v=[];v[c]=o[c],v[h]=o[h]+(l[h]-o[h])*f,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",k=s.getModel("label"),I=k.get("rotate"),P=I*(Math.PI/180),j=y.getTextContent();j&&(y.setTextConfig({position:k.get("position")||A,rotation:I==null?-S:P,origin:"center"}),j.setStyle("verticalAlign","middle"))}var z=s.get(["emphasis","focus"]),D=z==="relative"?Lf(o.getAncestorsIndices(),o.getDescendantIndices()):z==="ancestor"?o.getAncestorsIndices():z==="descendant"?o.getDescendantIndices():null;D&&(Be(r).focus=D),Zfe(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===Gm||V_(r.__edge,B)}})}function Zfe(e,t,r,n,a,i,o,s){var l=t.getModel(),u=e.get("edgeShape"),c=e.get("layout"),h=e.getOrient(),f=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 dv({shape:PA(c,h,f,a,a)})),At(m,{shape:PA(c,h,f,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 Xfe(e,t){e.eachSeriesByType("tree",function(r){qfe(r,t)})}function qfe(e,t){var r=Ur(e,t).refContainer,n=tr(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=C3(function(S,C){return(S.parentNode===C.parentNode?1:2)/S.depth})):(i=n.width,o=n.height,s=C3());var l=e.getData().tree.root,u=l.children[0];if(u){Afe(l),Yfe(u,Nfe,s),l.hierNode.modifier=-u.hierNode.prelim,yp(u,kfe);var c=u,h=u,f=u;yp(u,function(S){var C=S.getLayout().x;Ch.getLayout().x&&(h=S),S.depth>f.depth&&(f=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/(f.depth-1||1),yp(u,function(S){x=(S.getLayout().x+g)*m,_=(S.depth-1)*y;var C=Gp(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/(f.depth-1||1),yp(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/(f.depth-1||1),yp(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 Kfe(e){e.registerAction({type:"treeExpandAndCollapse",event:"treeExpandAndCollapse",update:"update"},function(t,r){r.eachComponent({mainType:Ho,subType:_h,query:t},function(n){var a=t.dataIndex,i=n.getData().tree,o=i.getNodeByDataIndex(a);o.isExpand=!o.isExpand})}),CI(e,Ho,_h)}var Jfe=Hr(_h,Qfe);function Qfe(e){e.eachSeriesByType(_h,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 eve(e){e.registerChartView($fe),e.registerSeriesModel(Hfe),e.registerLayout(Xfe),e.registerVisual(Jfe),Kfe(e)}var k3=["treemapZoomToNode","treemapRender","treemapMove"];function tve(e){for(var t=0;t1;)i=i.parentNode;var o=YM(e.ecModel,i.name||i.dataIndex+"",n);a.setVisual("decal",o)})}var rve=function(e){q(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};v9(a);var i=r.levels||[],o=this.designatedVisualItemStyle={},s=new vt({itemStyle:o},this,n);i=r.levels=nve(i,n);var l=oe(i||[],function(h){return new vt(h,s,n)},this),u=kI.createTree(a,this,c);function c(h){h.wrapMethod("getItemModel",function(f,v){var g=u.getNodeByDataIndex(v),m=g?l[g.depth]:null;return f.parentModel=m||s,f})}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 Er("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=lw(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=we(),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(){f9(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}(Ut);function v9(e){var t=0;R(e.children,function(n){v9(n);var a=n.value;ae(a)&&(a=a[0]),t+=a});var r=e.value;ae(r)&&(r=r[0]),(r==null||isNaN(r))&&(r=t),r<0&&(r=0),ae(e.value)?e.value[0]=r:e.value=r}function nve(e,t){var r=Zt(t.get("color")),n=Zt(t.get(["aria","decal","decals"]));if(r){e=e||[];var a,i;R(e,function(s){var l=new vt(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 ave=8,L3=8,$C=5,ive=function(){function e(t){this.group=new De,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=Ur(t,r).refContainer,f={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=tr(f,h);this._prepare(n,v,u),this._renderContent(t,v,g,s,l,u,c,a),V1(o,f,h)}},e.prototype._prepare=function(t,r,n){for(var a=t;a;a=a.parentNode){var i=Fr(a.getModel().get("name"),""),o=n.getTextRect(i),s=Math.max(o.width+ave*2,r.emptyItemWidth);r.totalWidth+=s+L3,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"]),f=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;f>n.width&&(f-=_-c,_=c,w=null);var S=new Sn({shape:{points:ove(u,0,_,h,m===v.length-1,m===0)},style:Ee(a.getItemStyle(),{lineJoin:"bevel"}),textContent:new wt({style:$t(o,{text:w})}),textConfig:{position:"inside"},z2:cv*1e4,onclick:nt(l,x)});S.disableLabelAnimation=!0,S.getTextContent().ensureState("emphasis").style=$t(s,{text:w}),S.ensureState("emphasis").style=g,ir(S,i.get("focus"),i.get("blurScope"),i.get("disabled")),this.group.add(S),sve(S,t,x),u+=_+L3}},e.prototype.remove=function(){this.group.removeAll()},e}();function ove(e,t,r,n,a,i){var o=[[a?e:e-$C,t],[e+r,t],[e+r,t+n],[a?e:e-$C,t+n]];return!i&&o.splice(2,0,[e+r+$C,t+n/2]),!a&&o.push([e,t+n/2]),o}function sve(e,t,r){Be(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&&lw(r,t)}}var lve=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 yve(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?bm(u*n/l,l/(u*a)):1/0}function I3(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,f=e.length;hYg&&(c=Yg),a=l}cD3||Math.abs(r.dy)>D3)){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 je(l.x,l.y,l.width,l.height),c=o.layoutInfo,h=x9(c,l),f=h*i;f=_9(f,o);var v=f/h;n-=c.x,a-=c.y;var g=ar();Hi(g,g,[-n,-a]),_1(g,g,[v,v]),Hi(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&&Z_(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 ive(this.group))).render(r,n,a.node,function(o){i._state!=="animating"&&(LI(r.getViewRoot(),o)?i._rootToNode({node:o}):i._zoomToNode({node:o}))})},t.prototype.remove=function(){this._clearController(),this._containerGroup&&this._containerGroup.removeAll(),this._storage=xp(),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}(Rt);function xp(){return{nodeGroup:[],background:[],content:[]}}function Tve(e,t,r,n,a,i,o,s,l,u){if(!o)return;var c=o.getLayout(),h=e.getData(),f=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=f.getModel("itemStyle"),A=f.getModel(["emphasis","itemStyle"]),k=f.getModel(["blur","itemStyle"]),I=f.getModel(["select","itemStyle"]),P=M.get("borderRadius")||0,j=le("nodeGroup",DA);if(!j)return;if(l.add(j),j.x=c.x||0,j.y=c.y||0,j.markRedraw(),Tb(j).nodeWidth=v,Tb(j).nodeHeight=g,c.isAboveViewRoot)return j;var z=le("background",P3,u,wve);z&&$(j,z,C&&c.upperLabelHeight);var D=f.getModel("emphasis"),B=D.get("focus"),H=D.get("blurScope"),V=D.get("disabled"),U=B==="ancestor"?o.getAncestorsIndices():B==="descendant"?o.getDescendantIndices():B;if(C)Kg(j)&&Ic(j,!1),z&&(Ic(z,!V),h.setItemGraphicEl(o.dataIndex,z),OM(z,U,H));else{var F=le("content",P3,u,Sve);F&&Z(j,F),z.disableMorphing=!0,z&&Kg(z)&&Ic(z,!1),Ic(j,!V),h.setItemGraphicEl(o.dataIndex,j);var W=f.getShallow("cursor");W&&F.attr("cursor",W),OM(j,U,H)}return j;function $(ye,ne,xe){var he=Be(ne);if(he.dataIndex=o.dataIndex,he.seriesIndex=e.seriesIndex,ne.setShape({x:0,y:0,width:v,height:g,r:P}),y)J(ne);else{ne.invisible=!1;var ge=o.getVisual("style"),tt=ge.stroke,Ue=R3(M);Ue.fill=tt;var qe=yc(A);qe.fill=A.get("borderColor");var Fe=yc(k);Fe.fill=k.get("borderColor");var _t=yc(I);if(_t.fill=I.get("borderColor"),xe){var bt=v-2*m;re(ne,tt,ge.opacity,{x:m,y:0,width:bt,height:S})}else ne.removeTextContent();ne.setStyle(Ue),ne.ensureState("emphasis").style=qe,ne.ensureState("blur").style=Fe,ne.ensureState("select").style=_t,oh(ne)}ye.add(ne)}function Z(ye,ne){var xe=Be(ne);xe.dataIndex=o.dataIndex,xe.seriesIndex=e.seriesIndex;var he=Math.max(v-2*m,0),ge=Math.max(g-2*m,0);if(ne.culling=!0,ne.setShape({x:m,y:m,width:he,height:ge,r:P}),y)J(ne);else{ne.invisible=!1;var tt=o.getVisual("style"),Ue=tt.fill,qe=R3(M);qe.fill=Ue,qe.decal=tt.decal;var Fe=yc(A),_t=yc(k),bt=yc(I);re(ne,Ue,tt.opacity,null),ne.setStyle(qe),ne.ensureState("emphasis").style=Fe,ne.ensureState("blur").style=_t,ne.ensureState("select").style=bt,oh(ne)}ye.add(ne)}function J(ye){!ye.invisible&&i.push(ye)}function re(ye,ne,xe,he){var ge=f.getModel(he?E3:j3),tt=Fr(f.get("name"),null),Ue=ge.getShallow("show");Jr(ye,Gr(f,he?E3:j3),{defaultText:Ue?tt:null,inheritColor:ne,defaultOpacity:xe,labelFetcher:e,labelDataIndex:o.dataIndex});var qe=ye.getTextContent();if(qe){var Fe=qe.style,_t=zm(Fe.padding||0);he&&(ye.setTextConfig({layoutRect:he}),qe.disableLabelLayout=!0),qe.beforeUpdate=function(){var et=Math.max((he?he.width:ye.shape.width)-_t[1]-_t[3],0),Ke=Math.max((he?he.height:ye.shape.height)-_t[0]-_t[2],0);(Fe.width!==et||Fe.height!==Ke)&&qe.setStyle({width:et,height:Ke})},Fe.truncateMinChar=2,Fe.lineOverflow="truncate",Q(Fe,he,c);var bt=qe.getState("emphasis");Q(bt?bt.style:null,he,c)}}function Q(ye,ne,xe){var he=ye?ye.text:null;if(!ne&&xe.isLeafRoot&&he!=null){var ge=e.get("drillDownIcon",!0);ye.text=ge?ge+" "+he:he}}function le(ye,ne,xe,he){var ge=_!=null&&r[ye][_],tt=a[ye];return ge?(r[ye][_]=null,de(tt,ge)):y||(ge=new ne,ge instanceof xi&&(ge.z2=Mve(xe,he)),He(tt,ge)),t[ye][x]=ge}function de(ye,ne){var xe=ye[x]={};ne instanceof DA?(xe.oldX=ne.x,xe.oldY=ne.y):xe.oldShape=te({},ne.shape)}function He(ye,ne){var xe=ye[x]={},he=o.parentNode,ge=ne instanceof De;if(he&&(!n||n.direction==="drillDown")){var tt=0,Ue=0,qe=a.background[he.getRawIndex()];!n&&qe&&qe.oldShape&&(tt=qe.oldShape.width,Ue=qe.oldShape.height),ge?(xe.oldX=0,xe.oldY=Ue):xe.oldShape={x:tt,y:Ue,width:0,height:0}}xe.fadein=!ge}}function Mve(e,t){return e*bve+t}var wm=R,Ave=Re,Mb=-1,Kr=function(){function e(t){var r=t.mappingMethod,n=t.type,a=this.option=ke(t);this.type=n,this.mappingMethod=r,this._normalizeData=Lve[r];var i=e.visualHandlers[n];this.applyVisual=i.applyVisual,this.getColorMapper=i.getColorMapper,this._normalizedToVisual=i._normalizedToVisual[r],r==="piecewise"?(ZC(a),Nve(a)):r==="category"?a.categories?kve(a):ZC(a,!0):(bn(r!=="linear"||a.dataExtent),ZC(a))}return e.prototype.mapValueToVisual=function(t){var r=this._normalizeData(t);return this._normalizedToVisual(r,t)},e.prototype.getNormalizer=function(){return be(this._normalizeData,this)},e.listVisualTypes=function(){return mt(e.visualHandlers)},e.isValidType=function(t){return e.visualHandlers.hasOwnProperty(t)},e.eachVisual=function(t,r,n){Re(t)?R(t,r,n):r.call(n,t)},e.mapVisual=function(t,r,n){var a,i=ae(t)?[]:Re(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&&wm(e.visualHandlers,function(a,i){t.hasOwnProperty(i)&&(r[i]=t[i],n=!0)}),n?r:null},e.prepareVisualTypes=function(t){if(ae(t))t=t.slice();else if(Ave(t)){var r=[];wm(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 ZC(e,t){var r=e.visual,n=[];Re(r)?wm(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]),b9(e,n)}function F0(e){return{applyVisual:function(t,r,n){var a=this.mapValueToVisual(t);n("color",e(r("color"),a))},_normalizedToVisual:jA([0,1])}}function O3(e){var t=this.option.visual;return t[Math.round(Nt(e,[0,1],[0,t.length-1],!0))]||{}}function _p(e){return function(t,r,n){n(e,this.mapValueToVisual(t))}}function Hp(e){var t=this.option.visual;return t[this.option.loop&&e!==Mb?e%t.length:e]}function xc(){return this.option.visual[0]}function jA(e){return{linear:function(t){return Nt(t,e,this.option.visual,!0)},category:Hp,piecewise:function(t,r){var n=EA.call(this,r);return n==null&&(n=Nt(t,e,this.option.visual,!0)),n},fixed:xc}}function EA(e){var t=this.option,r=t.pieceList;if(t.hasSpecialVisual){var n=Kr.findPieceIndex(e,r),a=r[n];if(a&&a.visual)return a.visual[this.type]}}function b9(e,t){return e.visual=t,e.type==="color"&&(e.parsedVisual=oe(t,function(r){var n=Bn(r);return n||[0,0,0,1]})),t}var Lve={linear:function(e){return Nt(e,this.option.dataExtent,[0,1],!0)},piecewise:function(e){var t=this.option.pieceList,r=Kr.findPieceIndex(e,t,!0);if(r!=null)return Nt(r,[0,t.length-1],[0,1],!0)},category:function(e){var t=this.option.categories?this.option.categoryMap[e]:e;return t??Mb},fixed:hr};function V0(e,t,r){return e?t<=r:t=r.length||m===r[m.depth]){var x=Rve(a,l,m,y,g,n);S9(m,x,r,n)}})}}}function Dve(e,t,r){var n=te({},t),a=r.designatedVisualItemStyle;return R(["color","colorAlpha","colorSaturation"],function(i){a[i]=t[i];var o=e.get(i);a[i]=null,o!=null&&(n[i]=o)}),n}function z3(e){var t=YC(e,"color");if(t){var r=YC(e,"colorAlpha"),n=YC(e,"colorSaturation");return n&&(t=Ls(t,null,null,n)),r&&(t=Ug(t,r)),t}}function jve(e,t){return t!=null?Ls(t,null,null,e):null}function YC(e,t){var r=e[t];if(r!=null&&r!=="none")return r}function Eve(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 f=new Kr(h);return w9(f).drColorMappingBy=c,f}}}function XC(e,t){var r=e.get(t);return ae(r)&&r.length?{name:t,range:r}:null}function Rve(e,t,r,n,a,i){var o=te({},t);if(a){var s=a.type,l=s==="color"&&w9(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 Ove(e){e.registerSeriesModel(rve),e.registerChartView(Cve),e.registerVisual(Pve),e.registerLayout(fve),tve(e)}function wd(e){return"_EC_"+e}var zve=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[wd(t)]){var a=new _c(t,r);return a.hostGraph=this,this.nodes.push(a),n[wd(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[wd(t)]},e.prototype.addEdge=function(t,r,n){var a=this._nodesMap,i=this._edgesMap;if(Tt(t)&&(t=this.nodes[t]),Tt(r)&&(r=this.nodes[r]),t instanceof _c||(t=a[wd(t)]),r instanceof _c||(r=a[wd(r)]),!(!t||!r)){var o=t.id+"-"+r.id,s=new C9(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 _c&&(t=t.id),r instanceof _c&&(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 _c||(r=this._nodesMap[wd(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}(),C9=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=we(),r=we();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 T9(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)}}}kr(_c,T9("hostGraph","data"));kr(C9,T9("hostGraph","edgeData"));function PI(e,t,r,n,a){for(var i=new zve(n),o=0;o "+f)),u++)}var v=r.get("coordinateSystem"),g;if(v==="cartesian2d"||v==="polar"||v==="matrix")g=Jo(e,r);else{var m=yv.get(v),y=m?m.dimensions||[]:[];Ye(y,"value")<0&&y.concat(["value"]);var x=wv(e,{coordDimensions:y,encodeDefine:r.getEncode()}).dimensions;g=new Fn(x,r),g.initData(e)}var _=new Fn(["value"],r);return _.initData(l,s),a&&a(g,_),u9({mainData:g,struct:i,structAttr:"graph",datas:{node:g,edge:_},datasAttr:{node:"data",edge:"edgeData"}}),i.update(),i}var RA="-->",uw=function(e){return e.get("autoCurveness")||null},M9=function(e,t){var r=uw(e),n=20,a=[];if(Tt(r))n=r;else if(ae(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=eU({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 Fn(["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 Y8(r)&&r},t.type="series."+na,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}(Ut);function G0(e){return e instanceof Array||(e=[e,e]),e}var Uve=Hr(na,Wve);function Wve(e){e.eachSeriesByType(na,function(t){var r=t.getGraph(),n=t.getEdgeData(),a=G0(t.get("edgeSymbol")),i=G0(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=G0(s.getShallow("symbol",!0)),c=G0(s.getShallow("symbolSize",!0)),h=s.getModel("lineStyle").getLineStyle(),f=n.ensureUniqueItemVisual(o,"style");switch(te(f,h),f.stroke){case"source":{var v=l.node1.getVisual("style");f.stroke=v&&v.fill;break}case"target":{var v=l.node2.getVisual("style");f.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 N9(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")])}),jI(r,e)}}function jI(e,t){e.eachEdge(function(r,n){var a=ya(r.getModel().get(["lineStyle","curveness"]),-DI(r,t,n,!0),0),i=No(r.node1.getLayout()),o=No(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 $ve=Hr(na,Zve);function Zve(e,t){e.eachSeriesByType(na,function(r){var n=r.get("layout"),a=r.coordinateSystem;if(a&&a.type!=="view"){var i=r.getData(),o=[];R(a.dimensions,function(f){o=o.concat(i.mapDimensionsAll(f))});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 k=-Math.atan2(S[1],S[0]);h[0].8?"left":f[0]<-.8?"right":"center",m=f[1]>.8?"top":f[1]<-.8?"bottom":"middle";break;case"start":i.x=-f[0]*x+c[0],i.y=-f[1]*_+c[1],g=f[0]>.8?"right":f[0]<-.8?"left":"center",m=f[1]>.8?"bottom":f[1]<-.8?"top":"middle";break;case"insideStartTop":case"insideStart":case"insideStartBottom":i.x=x*A+c[0],i.y=c[1]+I,g=S[0]<0?"right":"left",i.originX=-x*A,i.originY=-I;break;case"insideMiddleTop":case"insideMiddle":case"insideMiddleBottom":case"middle":i.x=M[0],i.y=M[1]+I,g="center",i.originY=-I;break;case"insideEndTop":case"insideEnd":case"insideEndBottom":i.x=-x*A+h[0],i.y=h[1]+I,g=S[0]>=0?"right":"left",i.originX=x*A,i.originY=-I;break}i.scaleX=i.scaleY=o,i.setStyle({verticalAlign:i.__verticalAlign||m,align:i.__align||g})}},t}(De),OI=function(){function e(t){this.group=new De,this._LineCtor=t||RI}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=U3(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=U3(t),this._lineData=null,this.group.removeAll()},e.prototype.incrementalUpdate=function(t,r,n){this._progressiveEls=[];function a(l){!l.isGroup&&!npe(l)&&(l.incremental=n,l.ensureState("emphasis").hoverLayer=vv)}for(var i=t.start;i0}function U3(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:Gr(t)}}function W3(e){return isNaN(e[0])||isNaN(e[1])}function e2(e){return e&&!W3(e[0])&&!W3(e[1])}var t2=[],r2=[],n2=[],Cd=an,a2=$l,$3=Math.abs;function Z3(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){t2[0]=Cd(n[0],a[0],i[0],c),t2[1]=Cd(n[1],a[1],i[1],c);var h=$3(a2(t2,t)-l);h=0?s=s+u:s=s-u:g>=0?s=s-u:s=s+u}return s}function i2(e,t){var r=[],n=Gg,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=[No(u[0]),No(u[1])],u[2]&&u.__original.push(No(u[2])));var f=u.__original;if(u[2]!=null){if(vn(a[0],f[0]),vn(a[1],f[2]),vn(a[2],f[1]),c&&c!=="none"){var v=Wp(s.node1),g=Z3(a,f[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=Wp(s.node2),g=Z3(a,f[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]}vn(u[0],a[0]),vn(u[1],a[2]),vn(u[2],a[1])}else{if(vn(i[0],f[0]),vn(i[1],f[1]),Ll(o,i[1],i[0]),Lh(o,o),c&&c!=="none"){var v=Wp(s.node1);C_(i[0],i[0],o,v*t)}if(h&&h!=="none"){var v=Wp(s.node2);C_(i[1],i[1],o,-v*t)}vn(u[0],i[0]),vn(u[1],i[1])}})}var P9=Qe();function ape(e){if(e)return P9(e).bridge}function Y3(e,t){e&&(P9(e).bridge=t)}var ipe=function(e){q(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=na,r}return t.prototype.init=function(r,n){var a=new ty,i=new OI,o=this.group,s=new De;this._controller=new Hh(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=wb(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&&lu(l,$o,o,this._firstRender?null:r),i2(r.getGraph(),Up(r));var f=r.getData();c.updateData(f);var v=r.getEdgeData();h.updateData(v),this._updateNodeAndLinkScale(),o&&sw(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");f.graph.eachNode(function(S){var C=S.dataIndex,M=S.getGraphicEl(),A=S.getModel();if(M){M.off("drag").off("dragend");var k=A.get("draggable");k&&M.on("drag",function(P){switch(y){case"force":g.warmUp(),!i._layouting&&i._startForceLayoutIteration(g,a,m),g.setFixed(C),f.setItemLayout(C,[M.x,M.y]);break;case"circular":f.setItemLayout(C,[M.x,M.y]),S.setLayout({fixed:!0},!0),EI(r,"symbolSize",S,[P.offsetX,P.offsetY]),i.updateLayout(r);break;case"none":default:f.setItemLayout(C,[M.x,M.y]),jI(r.getGraph(),r),i.updateLayout(r);break}}).on("dragend",function(){g&&g.setUnfixed(C)}),M.setDraggable(k,!!A.get("cursor"));var I=A.get(["emphasis","focus"]);I==="adjacency"&&(Be(M).focus=S.getAdjacentDataIndices())}}),f.graph.eachEdge(function(S){var C=S.getGraphicEl(),M=S.getModel().get(["emphasis","focus"]);C&&M==="adjacency"&&(Be(C).focus={edge:[S.dataIndex],node:[S.node1.dataIndex,S.node2.dataIndex]})});var x=r.get("layout")==="circular"&&r.get(["circular","rotateLabel"]),_=f.getLayout("cx"),w=f.getLayout("cy");f.graph.eachNode(function(S){k9(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=wb(n);!this._active||!i||(lu(this._mainGroup,$o,i,null),r9(r)&&(this._updateNodeAndLinkScale(),i2(n.getGraph(),Up(n)),this._lineDraw.updateLayout(),a.updateLabelLayout()),this._updateThumbnailWindow())},t.prototype._updateNodeAndLinkScale=function(){var r=this._model,n=r.getData(),a=Up(r);n.eachItemGraphicEl(function(i,o){i&&i.setSymbolScale(a)})},t.prototype.updateLayout=function(r){this._active&&(i2(r.getGraph(),Up(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=ape(r);if(a)return{bridge:a,coordSys:n}}},t.prototype._updateThumbnailWindow=function(){var r=this._getThumbnailInfo();r&&r.bridge.updateWindow(_b(null,r.coordSys),this._api)},t.prototype._renderThumbnail=function(r,n,a,i){var o=this._getThumbnailInfo();if(o){var s=new De,l=a.group.children(),u=i.group.children(),c=new De,h=new De;s.add(h),s.add(c);for(var f=0;f "),value:i.value,noValue:i.value==null})}return Er("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."+Cm,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}(Ut),X3=function(e){q(t,e);function t(r,n,a){var i=e.call(this)||this;Be(i).dataType="node",i.z2=2;var o=new wt;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),f=te(Co(u.getModel("itemStyle"),h,!0),h),v=this;if(isNaN(f.startAngle)){v.setShape(f);return}i?v.setShape(f):At(v,{shape:f},l,n);var g=te(Co(u.getModel("itemStyle"),h,!0),h);o.setShape(g),o.useStyle(r.getItemVisual(n,"style")),Vr(o,u),this._updateLabel(l,u,s),r.setItemGraphicEl(n,v),Vr(v,u,"itemStyle");var m=c.get("focus");ir(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=Gr(n),f=a.getVisual("style");Jr(i,h,{labelFetcher:{getFormattedLabel:function(_,w,S,C,M,A){return r.getFormattedLabel(_,w,"node",C,ya(M,h.normal&&h.normal.get("formatter"),n.get("name")),A)}},labelDataIndex:a.dataIndex,defaultText:a.dataIndex+"",inheritColor:f.fill,defaultOpacity:f.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}(wn),dpe=function(e){q(t,e);function t(r,n,a,i){var o=e.call(this)||this;return Be(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),f=h.getModel("lineStyle"),v=h.getModel("emphasis"),g=v.get("focus"),m=te(Co(c.getModel("itemStyle"),u,!0),u),y=this;if(isNaN(m.sStartAngle)||isNaN(m.tStartAngle)){y.setShape(m);return}o?(y.setShape(m),q3(y,l,r,f)):(_i(y),q3(y,l,r,f),At(y,{shape:m},s,a)),ir(this,g==="adjacency"?l.getAdjacentDataIndices():g,v.get("blurScope"),v.get("disabled")),Vr(y,h,"lineStyle"),n.setItemGraphicEl(l.dataIndex,y)},t}(pt);function q3(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(ve(l)&&ve(u)){var c=e.shape,h=(c.s1[0]+c.s2[0])/2,f=(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 Eh(h,f,v,g,[{offset:0,color:l},{offset:1,color:u}],!0)}break}}var fpe=Math.PI/180,vpe=function(e){q(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=Cm,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")*fpe;if(i.diff(o).add(function(c){var h=i.getItemLayout(c);if(h){var f=new X3(i,c,l);Be(f).dataIndex=c,s.add(f)}}).update(function(c,h){var f=o.getItemGraphicEl(h),v=i.getItemLayout(c);if(!v){f&&Is(f,r,h);return}f?f.updateData(i,c,l):f=new X3(i,c,l),s.add(f)}).remove(function(c){var h=o.getItemGraphicEl(c);h&&Is(h,r,c)}).execute(),!o){var u=r.get("center");this.group.scaleX=.01,this.group.scaleY=.01,this.group.originX=me(u[0],a.getWidth()),this.group.originY=me(u[1],a.getHeight()),Qt(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 dpe(a,i,l,n);Be(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&&Is(u,r,l)}).execute(),this._edgeData=i},t.prototype.dispose=function(){},t.type=Cm,t}(Rt),o2=Math.PI/180,ppe=Hr(Cm,gpe);function gpe(e,t){e.eachSeriesByType(Cm,function(r){mpe(r,t)})}function mpe(e,t){var r=e.getData(),n=r.graph,a=e.getEdgeData(),i=a.count();if(i){var o=xH(e,t),s=o.cx,l=o.cy,u=o.r,c=o.r0,h=Math.max((e.get("padAngle")||0)*o2,0),f=Math.max((e.get("minAngle")||0)*o2,0),v=-e.get("startAngle")*o2,g=v+Math.PI*2,m=e.get("clockwise"),y=m?1:-1,x=[v,g];D1(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 W=C?1:F.getValue("value");C&&(W>0||f)&&(A+=2);var $=F.node1.dataIndex,Z=F.node2.dataIndex;M[$]=(M[$]||0)+W,M[Z]=(M[Z]||0)+W});var k=0;if(n.eachNode(function(F){var W=F.getValue("value");isNaN(W)||(M[F.dataIndex]=Math.max(W,M[F.dataIndex]||0)),!C&&(M[F.dataIndex]>0||f)&&A++,k+=M[F.dataIndex]||0}),!(A===0||k===0)){h*A>=Math.abs(S)&&(h=Math.max(0,(Math.abs(S)-f*A)/A)),(h+f)*A>=Math.abs(S)&&(f=(Math.abs(S)-h*A)/A);var I=(S-h*A*y)/k,P=0,j=0,z=0;n.eachNode(function(F){var W=M[F.dataIndex]||0,$=I*(k?W:1)*y;Math.abs($)j){var B=P/j;n.eachNode(function(F){var W=F.getLayout().angle;Math.abs(W)>=f?F.setLayout({angle:W*B,ratio:B},!0):F.setLayout({angle:f,ratio:f===0?1:W/f},!0)})}else n.eachNode(function(F){if(!D){var W=F.getLayout().angle,$=Math.min(W/z,1),Z=$*P;W-Zf&&f>0){var $=D?1:Math.min(W/z,1),Z=W-f,J=Math.min(Z,Math.min(H,P*$));H-=J,F.setLayout({angle:W-J,ratio:(W-J)/W},!0)}else f>0&&F.setLayout({angle:f,ratio:W===0?1:f/W},!0)}});var V=_,U=[];n.eachNode(function(F){var W=Math.max(F.getLayout().angle,f);F.setLayout({cx:s,cy:l,r0:c,r:u,startAngle:V,endAngle:V+W*y,clockwise:m},!0),U[F.dataIndex]=V,V+=(W+h)*y}),n.eachEdge(function(F){var W=C?1:F.getValue("value"),$=I*(k?W:1)*y,Z=F.node1.dataIndex,J=U[Z]||0,re=Math.abs((F.node1.getLayout().ratio||1)*$),Q=J+re*y,le=[s+c*Math.cos(J),l+c*Math.sin(J)],de=[s+c*Math.cos(Q),l+c*Math.sin(Q)],He=F.node2.dataIndex,ye=U[He]||0,ne=Math.abs((F.node2.getLayout().ratio||1)*$),xe=ye+ne*y,he=[s+c*Math.cos(ye),l+c*Math.sin(ye)],ge=[s+c*Math.cos(xe),l+c*Math.sin(xe)];F.setLayout({s1:le,s2:de,sStartAngle:J,sEndAngle:Q,t1:he,t2:ge,tStartAngle:ye,tEndAngle:xe,cx:s,cy:l,r:c,value:W,clockwise:m}),U[Z]=Q,U[He]=xe})}}}function ype(e){e.registerChartView(vpe),e.registerSeriesModel(hpe),e.registerLayout(e.PRIORITY.VISUAL.POST_CHART_LAYOUT,ppe),e.registerProcessor(ay("chord"))}var xpe=function(){function e(){this.angle=0,this.width=10,this.r=10,this.x=0,this.y=0}return e}(),_pe=function(e){q(t,e);function t(r){var n=e.call(this,r)||this;return n.type="pointer",n}return t.prototype.getDefaultShape=function(){return new xpe},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}(pt);function bpe(e,t){var r=e.get("center"),n=t.getWidth(),a=t.getHeight(),i=Math.min(n,a),o=me(r[0],t.getWidth()),s=me(r[1],t.getHeight()),l=me(e.get("radius"),i/2);return{cx:o,cy:s,r:l}}function H0(e,t){var r=e==null?"":e+"";return t&&(ve(t)?r=t.replace("{value}",r):Le(t)&&(r=t(e))),r}var wpe=function(e){q(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=bpe(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"),f=h.get("roundCap"),v=f?mb:wn,g=h.get("show"),m=h.getModel("lineStyle"),y=m.get("width"),x=[u,c];D1(x,!l),u=x[0],c=x[1];for(var _=c-u,w=u,S=[],C=0;g&&C=I&&(P===0?0:i[P-1][0])Math.PI/2&&(Q+=Math.PI)):re==="tangential"?Q=-k-Math.PI/2:Tt(re)&&(Q=re*Math.PI/180),Q===0?h.add(new wt({style:$t(w,{text:W,x:Z,y:J,verticalAlign:H<-.8?"top":H>.8?"bottom":"middle",align:B<-.4?"left":B>.4?"right":"center"},{inheritColor:$}),silent:!0})):h.add(new wt({style:$t(w,{text:W,x:Z,y:J,verticalAlign:"middle",align:"center"},{inheritColor:$}),silent:!0,originX:Z,originY:J,rotation:Q}))}if(_.get("show")&&V!==S){var U=_.get("distance");U=U?U+c:c;for(var le=0;le<=C;le++){B=Math.cos(k),H=Math.sin(k);var de=new Tr({shape:{x1:B*(g-U)+f,y1:H*(g-U)+v,x2:B*(g-A-U)+f,y2:H*(g-A-U)+v},silent:!0,style:z});z.stroke==="auto"&&de.setStyle({stroke:i((V+le/C)/S)}),h.add(de),k+=P}k-=P}else k+=I}},t.prototype._renderPointer=function(r,n,a,i,o,s,l,u,c){var h=this.group,f=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 k(P,j){var z=_.getItemModel(P),D=z.getModel("pointer"),B=me(D.get("width"),o.r),H=me(D.get("length"),o.r),V=r.get(["pointer","icon"]),U=D.get("offsetCenter"),F=me(U[0],o.r),W=me(U[1],o.r),$=D.get("keepAspect"),Z;return V?Z=Ar(V,F-B/2,W-H,B,H,null,$):Z=new _pe({shape:{angle:-Math.PI/2,width:B,r:H,x:F,y:W}}),Z.rotation=-(j+Math.PI/2),Z.x=o.cx,Z.y=o.cy,Z}function I(P,j){var z=y.get("roundCap"),D=z?mb:wn,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 D({shape:{startAngle:s,endAngle:j,cx:o.cx,cy:o.cy,clockwise:u,r0:V,r:U}});return B&&(F.z2=Nt(_.get(w,P),[S,C],[100,0],!0)),F}(x||m)&&(_.diff(f).add(function(P){var j=_.get(w,P);if(m){var z=k(P,s);Qt(z,{rotation:-((isNaN(+j)?A[0]:Nt(j,M,A,!0))+Math.PI/2)},r),h.add(z),_.setItemGraphicEl(P,z)}if(x){var D=I(P,s),B=y.get("clip");Qt(D,{shape:{endAngle:Nt(j,M,A,B)}},r),h.add(D),DM(r.seriesIndex,_.dataType,P,D),g[P]=D}}).update(function(P,j){var z=_.get(w,P);if(m){var D=f.getItemGraphicEl(j),B=D?D.rotation:s,H=k(P,B);H.rotation=B,At(H,{rotation:-((isNaN(+z)?A[0]:Nt(z,M,A,!0))+Math.PI/2)},r),h.add(H),_.setItemGraphicEl(P,H)}if(x){var V=v[j],U=V?V.shape.endAngle:s,F=I(P,U),W=y.get("clip");At(F,{shape:{endAngle:Nt(z,M,A,W)}},r),h.add(F),DM(r.seriesIndex,_.dataType,P,F),g[P]=F}}).execute(),_.each(function(P){var j=_.getItemModel(P),z=j.getModel("emphasis"),D=z.get("focus"),B=z.get("blurScope"),H=z.get("disabled"),V=i(Nt(_.get(w,P),M,[0,1],!0));if(m){var U=_.getItemGraphicEl(P),F=_.getItemVisual(P,"style"),W=F.fill;if(U instanceof Qr){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(W);U.setStyle(j.getModel(["pointer","itemStyle"]).getItemStyle()),U.style.fill==="auto"&&U.setStyle("fill",V),U.z2EmphasisLift=0,Vr(U,j),ir(U,D,B,H)}if(x){var Z=g[P];Z.useStyle(_.getItemVisual(P,"style")),Z.setStyle(j.getModel(["progress","itemStyle"]).getItemStyle()),Z.style.fill==="auto"&&Z.setStyle("fill",V),Z.z2EmphasisLift=0,Vr(Z,j),ir(Z,D,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=Ar(s,n.cx-o/2+me(l[0],n.r),n.cy-o/2+me(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"),f=new De,v=[],g=[],m=r.isAnimationEnabled(),y=r.get(["pointer","showAbove"]);l.diff(this._data).add(function(x){v[x]=new wt({silent:!0}),g[x]=new wt({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 De,C=i(Nt(w,[c,h],[0,1],!0)),M=_.getModel("title");if(M.get("show")){var A=M.get("offsetCenter"),k=o.cx+me(A[0],o.r),I=o.cy+me(A[1],o.r),P=v[x];P.attr({z2:y?0:2,style:$t(M,{x:k,y:I,text:l.getName(x),align:"center",verticalAlign:"middle"},{inheritColor:C})}),S.add(P)}var j=_.getModel("detail");if(j.get("show")){var z=j.get("offsetCenter"),D=o.cx+me(z[0],o.r),B=o.cy+me(z[1],o.r),H=me(j.get("width"),o.r),V=me(j.get("height"),o.r),U=r.get(["progress","show"])?l.getItemVisual(x,"style").fill:C,P=g[x],F=j.get("formatter");P.attr({z2:y?0:2,style:$t(j,{x:D,y:B,text:H0(w,F),width:isNaN(H)?null:H,height:isNaN(V)?null:V,align:"center",verticalAlign:"middle"},{inheritColor:U})}),q7(P,{normal:j},w,function($){return H0($,F)}),m&&K7(P,x,l,r,{getFormattedLabel:function($,Z,J,re,Q,le){return H0(le?le.interpolatedValue:w,F)}}),S.add(P)}f.add(S)}),this.group.add(f),this._titleEls=v,this._detailEls=g},t.type="gauge",t}(Rt),Spe=function(e){q(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 Av(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}(Ut);function Cpe(e){e.registerChartView(wpe),e.registerSeriesModel(Spe)}var Wf="funnel",Tpe=function(e){q(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 Nv(be(this.getData,this),be(this.getRawData,this)),this._defaultLabelLine(r)},t.prototype.getInitialData=function(r,n){return Av(this,{coordDimensions:["value"],encodeDefaulter:nt(TL,this)})},t.prototype._defaultLabelLine=function(r){rh(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."+Wf,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}(Ut),Mpe=["itemStyle","opacity"],Ape=function(e){q(t,e);function t(r,n){var a=e.call(this)||this,i=a,o=new un,s=new wt;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(Mpe);c=c??1,a||_i(i),i.useStyle(r.getItemVisual(n,"style")),i.style.lineJoin="round",a?(i.setShape({points:l.points}),i.style.opacity=0,Qt(i,{style:{opacity:c}},o,n)):At(i,{style:{opacity:c},shape:{points:l.points}},o,n),Vr(i,s),this._updateLabel(r,n),ir(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"),f=h.fill;Jr(o,Gr(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"?f: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 Oe(y[0][0],y[0][1]):null},At(o,{style:{x:c.x,y:c.y}},s,n),o.attr({rotation:c.rotation,originX:c.x,originY:c.y,z2:10}),nI(a,aI(l),{stroke:f})},t}(Sn),Npe=function(e){q(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=Wf,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 Ape(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);Is(u,r,l)}).execute(),this._data=i},t.prototype.remove=function(){this.group.removeAll(),this._data=null},t.prototype.dispose=function(){},t.type=Wf,t}(Rt);function kpe(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&&Ye(["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,f=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,f=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,f=x+5,h="top")):o==="rightBottom"?(m=u[2][0],y=u[2][1],r?(_=y+w,v=_+5,h="center"):(x=m+w,f=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,f=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,f=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,f=x+5,h="left")),r?(x=m,f=x):(_=y,v=_),g=[[m,y],[x,_]]}l.label={linePoints:g,x:f,y:v,verticalAlign:"middle",textAlign:h,inside:c}})}var Ipe=Hr(Wf,Ppe);function Ppe(e,t){e.eachSeriesByType(Wf,function(r){var n=r.getData(),a=n.mapDimension("value"),i=r.get("sort"),o=Ur(r,t),s=tr(r.getBoxLayoutParams(),o.refContainer),l=D9(r),u=s.width,c=s.height,h=kpe(n,i),f=s.x,v=s.y,g=l?[me(r.get("minSize"),c),me(r.get("maxSize"),c)]:[me(r.get("minSize"),u),me(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=Nt(U,[y,x],g,!0),W=void 0;switch(_){case"top":W=v;break;case"center":W=v+(c-F)/2;break;case"bottom":W=v+(c-F);break}return[[V,W],[V,W+F]]}var $=n.get(a,H)||0,Z=Nt($,[y,x],g,!0),J;switch(_){case"left":J=f;break;case"center":J=f+(u-Z)/2;break;case"right":J=f+u-Z;break}return[[J,V],[J+Z,V]]};i==="ascending"&&(C=-C,w=-w,l?f+=u:v+=c,h=h.reverse());for(var A=0;A$pe)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||!l2(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 l2(e,t){var r=e._model;return r.get("axisExpandable")&&r.get("axisExpandTriggerOn")===t}var Ab="parallel",BA=Ab,Xpe=function(e){q(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&&Je(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){R(["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=It(this.ecModel.queryComponents({mainType:"parallelAxis"}),function(i){return(i.get("parallelIndex")||0)===this.componentIndex},this);R(a,function(i){r.push("dim"+i.get("dim")),n.push(i.componentIndex)})},t.type=BA,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}(ht),qpe=function(e){q(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}(Ci);function uu(e,t,r,n,a,i){e=e||0;var o=pc(r[1],-r[0]);if(a!=null&&(a=Td(a,[0,o])),i!=null&&(i=Math.max(i,a??0)),n==="all"){var s=Math.abs(pc(t[1],-t[0]));s=Td(s,[0,o]),a=i=Td(s,[a,i]),n=0}t[0]=Td(t[0],r),t[1]=Td(t[1],r);var l=u2(t,n);t[n]+=e;var u=a||0,c=r.slice();l.sign<0?c[0]=pc(c[0],u):c[1]=pc(c[1],-u),t[n]=Td(t[n],c);var h;return h=u2(t,n),a!=null&&(h.sign!==l.sign||h.spani&&(t[1-n]=pc(t[n],h.sign*i)),t}function u2(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 Td(e,t){return Math.min(t[1]!=null?t[1]:1/0,Math.max(t[0]!=null?t[0]:-1/0,e))}var Kpe=function(){function e(t,r,n){this.type=Ab,this._axesMap=we(),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;R(a,function(o,s){var l=i[s],u=r.getComponent("parallelAxis",l),c=Km(u),h=this._axesMap.set(o,new qpe(o,Sv(u,c,!1),[0,0],c,l));h.onBand=Qm(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){R(this.dimensions,function(n){var a=this._axesMap.get(n);fh(a,Vf),Gf(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=Ur(t,r).refContainer;this._rect=tr(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=U0(t.get("axisExpandWidth"),l),h=U0(t.get("axisExpandCount")||0,[0,u]),f=t.get("axisExpandable")&&u>3&&u>h&&h>1&&c>0&&s>0,v=t.get("axisExpandWindow"),g;if(v)g=U0(v[1]-v[0],l),v[1]=v[0]+g;else{g=U0(c*(h-1),l);var m=t.get("axisExpandCenter")||mi(u/2);v=[c*m-g/2],v[1]=v[0]+g}var y=(s-g)/(u-h);y<3&&(y=0);var x=[mi(Mt(v[0]/c,1))+1,Ph(Mt(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:f,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])}),R(n,function(o,s){var l=(a.axisExpandable?Qpe:Jpe)(s,a),u={horizontal:{x:l.position,y:a.axisLength},vertical:{x:0,y:l.position}},c={horizontal:R_/2,vertical:0},h=[u[i].x+t.x,u[i].y+t.y],f=c[i],v=ar();Js(v,v,f),Hi(v,v,h),this._axesLayout[o]={position:h,rotation:f,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=[];R(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?uu(l,a,o,"all"):u="none";else{var v=a[1]-a[0],g=o[1]*s/v;a=[at(0,g-v/2)],a[1]=Et(o[1],a[0]+v),a[0]=a[1]-v}return{axisExpandWindow:a,behavior:u}},e}();function U0(e,t){return Et(at(e,t[0]),t[1])}function Jpe(e,t){var r=t.layoutLength/(t.axisCount-1);return{position:r*e,axisNameAvailableWidth:r,axisLabelShow:!0}}function Qpe(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--)on(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;iage}function F9(e){var t=e.length-1;return t<0&&(t=0),[e[0],e[t]]}function V9(e,t,r,n){var a=new De;return a.add(new it({name:"main",style:GI(r),silent:!0,draggable:!0,cursor:"move",drift:nt(t4,e,t,a,["n","s","w","e"]),ondragend:nt(wh,t,{isEnd:!0})})),R(n,function(i){a.add(new it({name:i.join(""),style:{opacity:0},draggable:!0,silent:!0,invisible:!0,drift:nt(t4,e,t,a,i),ondragend:nt(wh,t,{isEnd:!0})}))}),a}function G9(e,t,r,n){var a=n.brushStyle.lineWidth||0,i=$f(a,ige),o=r[0][0],s=r[1][0],l=o-a/2,u=s-a/2,c=r[0][1],h=r[1][1],f=c-i+a/2,v=h-i+a/2,g=c-o,m=h-s,y=g+a,x=m+a;ps(e,t,"main",o,s,g,m),n.transformable&&(ps(e,t,"w",l,u,i,x),ps(e,t,"e",f,u,i,x),ps(e,t,"n",l,u,y,i),ps(e,t,"s",l,v,y,i),ps(e,t,"nw",l,u,i,i),ps(e,t,"ne",f,u,i,i),ps(e,t,"sw",l,v,i,i),ps(e,t,"se",f,v,i,i))}function GA(e,t){var r=t.__brushOption,n=r.transformable,a=t.childAt(0);a.useStyle(GI(r)),a.attr({silent:!n,cursor:n?"move":"default"}),R([["w"],["e"],["n"],["s"],["s","e"],["s","w"],["n","e"],["n","w"]],function(i){var o=t.childOfName(i.join("")),s=i.length===1?HA(e,i[0]):hge(e,i);o&&o.attr({silent:!n,invisible:!n,cursor:n?sge[s]+"-resize":null})})}function ps(e,t,r,n,a,i,o){var s=t.childOfName(r);s&&s.setShape(fge(HI(e,t,[[n,a],[n+i,a+o]])))}function GI(e){return Ee({strokeNoScale:!0},e.brushStyle)}function H9(e,t,r,n){var a=[Tm(e,r),Tm(t,n)],i=[$f(e,r),$f(t,n)];return[[a[0],i[0]],[a[1],i[1]]]}function cge(e){return Vc(e.group)}function HA(e,t){var r={w:"left",e:"right",n:"top",s:"bottom"},n={left:"w",right:"e",top:"n",bottom:"s"},a=O1(r[t],cge(e));return n[a]}function hge(e,t){var r=[HA(e,t[0]),HA(e,t[1])];return(r[0]==="e"||r[0]==="w")&&r.reverse(),r.join("")}function t4(e,t,r,n,a,i){var o=r.__brushOption,s=e.toRectRange(o.range),l=U9(t,a,i);R(n,function(u){var c=oge[u];s[c[0]][c[1]]+=l[c[0]]}),o.range=e.fromRectRange(H9(s[0][0],s[1][0],s[0][1],s[1][1])),BI(t,r),wh(t,{isEnd:!1})}function dge(e,t,r,n){var a=t.__brushOption.range,i=U9(e,r,n);R(a,function(o){o[0]+=i[0],o[1]+=i[1]}),BI(e,t),wh(e,{isEnd:!1})}function U9(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 HI(e,t,r){var n=B9(e,t);return n&&n!==bh?n.clipPath(r,e._transform):ke(r)}function fge(e){var t=Tm(e[0][0],e[1][0]),r=Tm(e[0][1],e[1][1]),n=$f(e[0][0],e[1][0]),a=$f(e[0][1],e[1][1]);return{x:t,y:r,width:n-t,height:a-r}}function vge(e,t,r){if(!(!e._brushType||gge(e,t.offsetX,t.offsetY))){var n=e._zr,a=e._covers,i=VI(e,t,r);if(!e._dragging)for(var o=0;on.getWidth()||r<0||r>n.getHeight()}var cw={lineX:a4(0),lineY:a4(1),rect:{createCover:function(e,t){function r(n){return n}return V9({toRectRange:r,fromRectRange:r},e,t,[["w"],["e"],["n"],["s"],["s","e"],["s","w"],["n","e"],["n","w"]])},getCreatingRange:function(e){var t=F9(e);return H9(t[1][0],t[1][1],t[0][0],t[0][1])},updateCoverShape:function(e,t,r,n){G9(e,t,r,n)},updateCommon:GA,contain:WA},polygon:{createCover:function(e,t){var r=new De;return r.add(new un({name:"main",style:GI(t),silent:!0})),r},getCreatingRange:function(e){return e},endCreating:function(e,t){t.remove(t.childAt(0)),t.add(new Sn({name:"main",draggable:!0,drift:nt(dge,e,t),ondragend:nt(wh,e,{isEnd:!0})}))},updateCoverShape:function(e,t,r,n){t.childAt(0).setShape({points:HI(e,t,r)})},updateCommon:GA,contain:WA}};function a4(e){return{createCover:function(t,r){return V9({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=F9(t),n=Tm(r[0][e],r[1][e]),a=$f(r[0][e],r[1][e]);return[n,a]},updateCoverShape:function(t,r,n,a){var i,o=B9(t,r);if(o!==bh&&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(),G9(t,r,l,a)},updateCommon:GA,contain:WA}}function $9(e){return e=UI(e),function(t){return iL(t,e)}}function Z9(e,t){return e=UI(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 Y9(e,t,r){var n=UI(e);return function(a,i){return n.contain(i[0],i[1])&&!V8(a,t,r)}}function UI(e){return je.create(e)}var mge=function(e){q(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 zI(n.getZr())).on("brush",be(this._onBrush,this))},t.prototype.render=function(r,n,a,i){if(!yge(r,n,i)){this.axisModel=r,this.api=a,this.group.removeAll();var o=this._axisGroup;if(this._axisGroup=new De,this.group.add(this._axisGroup),!!r.get("show")){var s=_ge(r,n),l=s.coordinateSystem,u=r.getAreaSelectStyle(),c=u.width,h=r.axis.dim,f=l.getAxisLayout(h),v=te({strokeContainThreshold:c},f),g=new ea(r,a,v);g.build(),this._axisGroup.add(g.group),this._refreshBrushController(v,u,r,s,c,a),$m(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=je.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:$9(h),isTargetByCursor:Y9(h,s,i),getLinearBrushOtherExtent:Z9(h,0)}]).enableBrush({brushType:"lineX",brushStyle:n,removeOnClick:!0}).updateCovers(xge(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}(Yt);function yge(e,t,r){return r&&r.type==="axisAreaSelect"&&t.findComponents({mainType:"parallelAxis",query:r})[0]===e}function xge(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 _ge(e,t){return t.getComponent("parallel",e.get("parallelIndex"))}var bge={type:"axisAreaSelect",event:"axisAreaSelected"};function wge(e){e.registerAction(bge,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 Sge={type:"value",areaSelectStyle:{width:20,borderWidth:1,borderColor:"rgba(160,197,232)",color:"rgba(160,197,232)",opacity:.3},realtime:!0,z:10};function X9(e){e.registerComponentView(Zpe),e.registerComponentModel(Xpe),e.registerCoordinateSystem("parallel",tge),e.registerPreprocessor(Hpe),e.registerComponentModel(FA),e.registerComponentView(mge),Uf(e,"parallel",FA,Sge),wge(e)}function Cge(e){rt(X9),e.registerChartView(Epe),e.registerSeriesModel(zpe),e.registerVisual(e.PRIORITY.VISUAL.BRUSH,Gpe)}var Xs="sankey",Tge=function(e){q(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 vt(o[l],this,n));var u=PI(i,a,this,!0,c);return u.data;function c(h,f){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}),f.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 Er("nameValue",{name:u,value:l,noValue:i(l)})}else{var c=this.getGraph().getNodeByIndex(r),h=c.getLayout().value,f=this.getDataParams(r,a).data.name;return Er("nameValue",{name:f!=null?f+"":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."+Xs,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}(Ut),Mge=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}(),Age=function(e){q(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new Mge},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(){Us(this)},t.prototype.downplay=function(){Ws(this)},t}(pt),Nge=function(e){q(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=Xs,r._mainGroup=new De,r}return t.prototype.init=function(r,n){this._controller=new Hh(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"),f=r.get("orient");o.removeAll(),o.x=s.x,o.y=s.y,this._updateViewCoordSys(r,a),sw(r,a,this._controller,e9(o),null),i.eachEdge(function(v){var g=new Age,m=Be(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(),k=v.node2.getModel(),I=k.get("localX"),P=k.get("localY"),j=v.getLayout(),z,D,B,H,V,U,F,W;g.shape.extent=Math.max(1,j.dy),g.shape.orient=f,f==="vertical"?(z=(C!=null?C*l:w.x)+j.sy,D=(M!=null?M*u:w.y)+w.dy,B=(I!=null?I*l:A.x)+j.ty,H=P!=null?P*u:A.y,V=z,U=D*(1-_)+H*_,F=B,W=D*_+H*(1-_)):(z=(C!=null?C*l:w.x)+w.dx,D=(M!=null?M*u:w.y)+j.sy,B=I!=null?I*l:A.x,H=(P!=null?P*u:A.y)+j.ty,V=z*(1-_)+B*_,U=D,F=z*_+B*(1-_),W=H),g.setShape({x1:z,y1:D,x2:B,y2:H,cpx1:V,cpy1:U,cpx2:F,cpy2:W}),g.useStyle(x.getItemStyle()),i4(g.style,f,v);var $=""+y.get("value"),Z=Gr(y,"edgeLabel");Jr(g,Z,{labelFetcher:{getFormattedLabel:function(Q,le,de,He,ye,ne){return r.getFormattedLabel(Q,le,"edge",He,ya(ye,Z.normal&&Z.normal.get("formatter"),$),ne)}},labelDataIndex:v.dataIndex,defaultText:$}),g.setTextConfig({position:"inside"});var J=y.getModel("emphasis");Vr(g,y,"lineStyle",function(Q){var le=Q.getItemStyle();return i4(le,f,v),le}),o.add(g),h.setItemGraphicEl(v.dataIndex,g);var re=J.get("focus");ir(g,re==="adjacency"?v.getAdjacentDataIndices():re==="trajectory"?v.getTrajectoryDataIndices():re,J.get("blurScope"),J.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 it({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});Jr(S,Gr(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),Vr(S,m),o.add(S),c.setItemGraphicEl(v.dataIndex,S),Be(S).dataType="node";var C=_.get("focus");ir(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(kge(o.getBoundingRect(),r,function(){o.removeClipPath()})),this._data=r.getData(),this._firstRender=!1},t.prototype.__updateOnOwnRoam=function(r,n,a){lu(this.group,$o,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=TI(r,n,a.x,a.y,a.width,a.height);lu(this.group,$o,i,this._firstRender?null:r)},t.type=Xs,t}(Rt);function i4(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");ve(n)&&ve(a)&&(e.fill=new Eh(0,0,+(t==="horizontal"),+(t==="vertical"),[{color:n,offset:0},{color:a,offset:1}]))}}function kge(e,t,r){var n=new it({shape:{x:e.x-10,y:e.y-10,width:0,height:e.height+20}});return Qt(n,{shape:{width:e.width+20}},t,r),n}var Lge=Hr(Xs,Ige);function Ige(e,t){e.eachSeriesByType(Xs,function(r){var n=r.get("nodeWidth"),a=r.get("nodeGap"),i=Ur(r,t).refContainer,o=tr(r.getBoxLayoutParams(),i);r.layoutInfo=o;var s=o.width,l=o.height,u=r.getGraph(),c=u.nodes,h=u.edges;Dge(c);var f=It(c,function(y){return y.getLayout().value===0}),v=f.length!==0?0:r.get("layoutIterations"),g=r.get("orient"),m=r.get("nodeAlign");Pge(c,h,n,a,s,l,v,g,m)})}function Pge(e,t,r,n,a,i,o,s,l){jge(e,t,r,a,i,s,l),zge(e,t,i,a,n,o,s),Zge(e,s)}function Dge(e){R(e,function(t){var r=eu(t.outEdges,Nb),n=eu(t.inEdges,Nb),a=t.getValue()||0,i=Math.max(r,n,a);t.setLayout({value:i},!0)})}function jge(e,t,r,n,a,i,o){for(var s=[],l=[],u=[],c=[],h=0,f=0;f=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"&&Ege(e,o,i,A);var k=i==="vertical"?(a-r)/A:(n-r)/A;Oge(e,k,i)}function q9(e){var t=e.hostGraph.data.getRawDataItem(e.dataIndex);return t.depth!=null&&t.depth>=0}function Ege(e,t,r,n){if(t==="right"){for(var a=[],i=e,o=0;i.length;){for(var s=0;s0;i--)l*=.99,Vge(s,l,o),c2(s,a,r,n,o),$ge(s,l,o),c2(s,a,r,n,o)}function Bge(e,t){var r=[],n=t==="vertical"?"y":"x",a=AM(e,function(i){return i.getLayout()[n]});return on(a.keys),R(a.keys,function(i){r.push(a.buckets.get(i))}),r}function Fge(e,t,r,n,a,i){var o=1/0;R(e,function(s){var l=s.length,u=0;R(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()[f]+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()[f]+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 Vge(e,t,r){R(e.slice().reverse(),function(n){R(n,function(a){if(a.outEdges.length){var i=eu(a.outEdges,Gge,r)/eu(a.outEdges,Nb);if(isNaN(i)){var o=a.outEdges.length;i=o?eu(a.outEdges,Hge,r)/o:0}if(r==="vertical"){var s=a.getLayout().x+(i-cu(a,r))*t;a.setLayout({x:s},!0)}else{var l=a.getLayout().y+(i-cu(a,r))*t;a.setLayout({y:l},!0)}}})})}function Gge(e,t){return cu(e.node2,t)*e.getValue()}function Hge(e,t){return cu(e.node2,t)}function Uge(e,t){return cu(e.node1,t)*e.getValue()}function Wge(e,t){return cu(e.node1,t)}function cu(e,t){return t==="vertical"?e.getLayout().x+e.getLayout().dx/2:e.getLayout().y+e.getLayout().dy/2}function Nb(e){return e.getValue()}function eu(e,t,r){for(var n=0,a=e.length,i=-1;++io&&(o=l)}),R(n,function(s){var l=new Kr({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&&R(a,function(s){var l=s.getModel().get("lineStyle");s.setVisual("style",l)})})}function qge(e){e.registerChartView(Nge),e.registerSeriesModel(Tge),e.registerLayout(Lge),e.registerVisual(Yge),e.registerAction({type:"dragNode",event:"dragnode",update:"update"},function(t,r){r.eachComponent({mainType:Ho,subType:Xs,query:t},function(n){n.setNodePosition(t.dataIndex,[t.localX,t.localY])})}),CI(e,Ho,Xs)}var K9=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,f=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 _=[];R(x,function(C,M){var A;ae(C)?(A=C.slice(),C.unshift(M)):ae(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:f,type:nb(m),ordinalMeta:n,otherDims:{tooltip:!1,itemName:0},dimsDef:["base"]},{name:v,type:nb(y),dimsDef:w.slice()}];return Av(this,{coordDimensions:S,dimensionsCount:w.length+1,encodeDefaulter:nt(MH,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 kb(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 lme={type:"echarts:boxplot",transform:function(t){var r=t.upstream;if(r.sourceFormat!==ln){var n="";Lt(n)}var a=sme(r.getRawData(),t.config);return[{dimensions:["ItemName","Low","Q1","Q2","Q3","High"],data:a.boxData},{data:a.outliers}]}};function ume(e){e.registerSeriesModel(J9),e.registerChartView(Kge),e.registerLayout(rme),e.registerTransform(lme),ome(e)}var hu="candlestick",e$=function(e){q(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."+hu,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}(Ut);kr(e$,K9,!0);var cme=["itemStyle","borderColor"],hme=["itemStyle","borderColor0"],dme=["itemStyle","borderColorDoji"],fme=["itemStyle","color"],vme=["itemStyle","color0"];function WI(e,t){return t.get(e>0?fme:vme)}function $I(e,t){return t.get(e===0?dme:e>0?cme:hme)}var pme={seriesType:hu,plan:Bh(),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=WI(s,o),l.stroke=$I(s,o)||l.fill;var u=a.ensureUniqueItemVisual(i,"style");te(u,l)}}}}}},gme=["color","borderColor"],mme=function(e){q(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){Su(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&&vh(l,!1,r);this._data||i.removeAll();var h=s4(r);n.diff(a).add(function(f){if(n.hasValue(f)){var v=n.getItemLayout(f),g=s?kb(u,v):hm;if(g===fm)return;var m=h2(v,f,h,!0);Qt(m,{shape:{points:v.ends}},r,f),ef(g===dm,m,c),d2(m,n,f,o),i.add(m),n.setItemGraphicEl(f,m)}}).update(function(f,v){var g=a.getItemGraphicEl(v);if(!n.hasValue(f)){i.remove(g);return}var m=n.getItemLayout(f),y=s?kb(u,m):hm;if(y===fm){i.remove(g);return}g?(At(g,{shape:{points:m.ends}},r,f),_i(g)):g=h2(m,f,h),d2(g,n,f,o),ef(y===dm,g,c),i.add(g),n.setItemGraphicEl(f,g)}).remove(function(f){var v=a.getItemGraphicEl(f);v&&i.remove(v)}).execute(),this._data=n},t.prototype._renderLarge=function(r){this._clear(),l4(r,this.group);var n=r.get("clip",!0)?vh(r.coordinateSystem,!1,r):null;ef(!!n,this.group,n)},t.prototype._incrementalRenderNormal=function(r,n){for(var a=n.getData(),i=a.getLayout("isSimpleBox"),o=s4(n),s;(s=r.next())!=null;){var l=a.getItemLayout(s),u=h2(l,s,o);d2(u,a,s,i),u.incremental=Io(n),this.group.add(u),this._progressiveEls.push(u)}},t.prototype._incrementalRenderLarge=function(r,n){l4(n,this.group,this._progressiveEls,!0)},t.prototype.remove=function(r){this._clear()},t.prototype._clear=function(){this.group.removeAll(),ef(!1,this.group,null),this._data=null},t.type=hu,t}(Rt),yme=function(){function e(){}return e}(),xme=function(e){q(t,e);function t(r){var n=e.call(this,r)||this;return n.type="normalCandlestickBox",n}return t.prototype.getDefaultShape=function(){return new yme},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}(pt);function h2(e,t,r,n){var a=e.ends;return new xme({shape:{points:n?_me(a,r,e):a},z2:100})}function d2(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,Vr(e,a);var o=t.getItemLayout(r).sign;R(e.states,function(l,u){var c=a.getModel(u),h=WI(o,c),f=$I(o,c)||h,v=l.style||(l.style={});h&&(v.fill=h),f&&(v.stroke=f)});var s=a.getModel("emphasis");ir(e,s.get("focus"),s.get("blurScope"),s.get("disabled"))}function _me(e,t,r){return oe(e,function(n){return n=n.slice(),n[t]=r.initBaseline,n})}function s4(e){return e.getWhiskerBoxesLayout()==="horizontal"?1:0}var bme=function(){function e(){}return e}(),f2=function(e){q(t,e);function t(r){var n=e.call(this,r)||this;return n.type="largeCandlestickBox",n}return t.prototype.getDefaultShape=function(){return new bme},t.prototype.buildPath=function(r,n){for(var a=n.points,i=0;iC?j[i]:P[i],ends:B,brushRect:W(M,A,w)})}function U(Z,J){var re=[];return re[a]=J,re[i]=Z,isNaN(J)||isNaN(Z)?[NaN,NaN]:t.dataToPoint(re)}function F(Z,J,re){var Q=J.slice(),le=J.slice();Q[a]=Ox(Q[a]+n/2,1,!1),le[a]=Ox(le[a]-n/2,1,!0),re?Z.push(Q,le):Z.push(le,Q)}function W(Z,J,re){var Q=U(Z,re),le=U(J,re);return Q[a]-=n/2,le[a]-=n/2,{x:Q[0],y:Q[1],width:i?n:le[0]-Q[0],height:i?le[1]-Q[1]:n}}function $(Z){return Z[a]=Ox(Z[a],1),Z}}function g(m,y){for(var x=So(m.count*4),_=0,w,S=[],C=[],M,A=y.getStore(),k=!!e.get(["itemStyle","borderColorDoji"]);(M=m.next())!=null;){var I=A.get(s,M),P=A.get(u,M),j=A.get(c,M),z=A.get(h,M),D=A.get(f,M);if(isNaN(I)||isNaN(z)||isNaN(D)){x[_++]=NaN,_+=3;continue}x[_++]=u4(A,M,P,j,c,k),S[a]=I,S[i]=z,w=t.dataToPoint(S,null,C),x[_++]=w?w[0]:NaN,x[_++]=w?w[1]:NaN,S[i]=D,w=t.dataToPoint(S,null,C),x[_++]=w?w[1]:NaN}y.setLayout("largePoints",x)}}};function u4(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 Tme(e,t){var r=e.getBaseAxis(),n=Cn(r,{fromStat:{key:Uc(hu)},min:1}).w,a=me(Te(e.get("barMaxWidth"),n),n),i=me(Te(e.get("barMinWidth"),1),n),o=e.get("barWidth");return o!=null?me(o,n):at(Et(n/2,a),i)}function Mme(e){Sme(e,function(){var t=Uc(hu);tI(e,{key:t,seriesType:hu,getMetrics:pI}),K1(t,tw(t))})}function Ame(e){e.registerChartView(mme),e.registerSeriesModel(e$),e.registerPreprocessor(wme),e.registerVisual(pme),e.registerLayout(Cme),Mme(e)}function c4(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){q(t,e);function t(r,n){var a=e.call(this)||this,i=new ey(r,n),o=new De;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 f=void 0;Le(h)?f=h(a):f=h,i.__t>0&&(f=-s*i.__t),this._animateSymbol(i,s,f,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 Ss(r.__p1,r.__cp1)+Ss(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=an,c=dM;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),f=r.__t<=1?c(n[1],i[1],a[1],o):c(a[1],i[1],n[1],1-o);r.rotation=-Math.atan2(f,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],f=a[l+1];r.x=h[0]*(1-c)+c*f[0],r.y=h[1]*(1-c)+c*f[1];var v=r.__t<=1?f[0]-h[0]:h[0]-f[0],g=r.__t<=1?f[1]-h[1]:h[1]-f[1];r.rotation=-Math.atan2(g,v)-Math.PI/2,this._lastFrame=l,this._lastFramePercent=n,r.ignore=!1}},t}(t$),Dme=function(){function e(){this.polyline=!1,this.curveness=0,this.segs=[]}return e}(),jme=function(e){q(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 Dme},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-f)*i,g=(c+f)/2-(h-u)*i;r.quadraticCurveTo(v,g,h,f)}else r.lineTo(h,f)}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++],f=i[u++],v=1;v0){var y=(h+g)/2-(f-m)*o,x=(f+m)/2-(g-h)*o;if(u7(h,f,y,x,g,m,s,r,n))return l}else if(Sl(h,f,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}(),n$={seriesType:"lines",plan:Bh(),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)&&vh(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(),Io(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=n$.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 Eme:new OI(o?i?Pme:r$:i?t$:RI),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=GM(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}(Rt),Ome=typeof Uint32Array>"u"?Array:Uint32Array,zme=typeof Float64Array>"u"?Array:Float64Array;function d4(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),y1([a,r[0],r[1]])}))}var Bme=function(e){q(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||[],d4(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(d4(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=Lf(this._flatCoords,n.flatCoords),this._flatCoordsOffset=Lf(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 Er("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}(Ut);function W0(e){return e instanceof Array||(e=[e,e]),e}var Fme={seriesType:"lines",reset:function(e){var t=W0(e.get("symbol")),r=W0(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=W0(s.getShallow("symbol",!0)),u=W0(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 Vme(e){e.registerChartView(Rme),e.registerSeriesModel(Bme),e.registerLayout(n$),e.registerVisual(Fme)}var Gme=256,Hme=function(){function e(){this.blurSize=30,this.pointSize=20,this.maxOpacity=1,this.minOpacity=0,this._gradientPixels={inRange:null,outOfRange:null};var t=qr.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,f=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+k),C[M++]=z[j],C[M++]=z[j+1],C[M++]=z[j+2],C[M++]=z[j+3]*w*256}else M+=4}return f.putImageData(S,0,0),h},e.prototype._getBrush=function(){var t=this._brushCanvas||(this._brushCanvas=qr.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 Ume(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 $me=function(e){q(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()):f5(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&&(f5(o)?this.render(n,a,i):(this._progressiveEls=[],this._renderOnGridLike(n,i,r.start,r.end,!0)))},t.prototype.eachRendered=function(r){Su(this._progressiveEls||this.group,r)},t.prototype._renderOnGridLike=function(r,n,a,i,o){var s=r.coordinateSystem,l=ph(s,"cartesian2d"),u=ph(s,"matrix"),c,h,f,v;if(l){var g=s.getAxis("x"),m=s.getAxis("y");c=Cn(g).w+.5,h=Cn(m).w+.5,f=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=Gr(r),A=r.getModel("emphasis"),k=A.get("focus"),I=A.get("blurScope"),P=A.get("disabled"),j=l||u?[x.mapDimension("x"),x.mapDimension("y"),x.mapDimension("value")]:[x.mapDimension("time"),x.mapDimension("value")],z=a;zf[1]||Vv[1])continue;var U=s.dataToPoint([H,V]);D=new it({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(j[0],z),x.get(j[1],z)]).rect;if(yn(F.x))continue;D=new it({z2:1,shape:F,style:B})}else{if(isNaN(x.get(j[1],z)))continue;var W=s.dataToLayout([x.get(j[0],z)]),F=W.contentRect||W.rect;if(yn(F.x)||yn(F.y))continue;D=new it({z2:1,shape:F,style:B})}if(x.hasItemOption){var $=x.getItemModel(z),Z=$.getModel("emphasis");_=Z.getModel("itemStyle").getItemStyle(),w=$.getModel(["blur","itemStyle"]).getItemStyle(),S=$.getModel(["select","itemStyle"]).getItemStyle(),C=$.get(["itemStyle","borderRadius"]),k=Z.get("focus"),I=Z.get("blurScope"),P=Z.get("disabled"),M=Gr($)}D.shape.r=C;var J=r.getRawValue(z),re="-";J&&J[2]!=null&&(re=J[2]+""),Jr(D,M,{labelFetcher:r,labelDataIndex:z,defaultOpacity:B.opacity,defaultText:re}),D.ensureState("emphasis").style=_,D.ensureState("blur").style=w,D.ensureState("select").style=S,ir(D,k,I,P),D.incremental=Io(r,o),o&&(D.states.emphasis.hoverLayer=vv),y.add(D),x.setItemGraphicEl(z,D),this._progressiveEls&&this._progressiveEls.push(D)}},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 Hme;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 f=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-f,x=m-v,_=[l.mapDimension("lng"),l.mapDimension("lat"),l.mapDimension("value")],w=l.mapArray(_,function(A,k,I){var P=r.dataToPoint([A,k]);return P[0]-=f,P[1]-=v,P.push(I),P}),S=a.getExtent(),C=a.type==="visualMap.continuous"?Wme(S,a.option.range):Ume(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 Qr({style:{width:y,height:x,x:f,y:v,image:u.canvas},silent:!0});this.group.add(M)},t.type="heatmap",t}(Rt),Zme=function(e){q(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 Jo(null,this,{generateCoord:"value"})},t.prototype.preventIncremental=function(){var r=yv.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}(Ut);function Yme(e){e.registerChartView($me),e.registerSeriesModel(Zme)}var Xme=["itemStyle","borderWidth"],f4=[{xy:"x",wh:"width",index:0,posDesc:["left","right"]},{xy:"y",wh:"height",index:1,posDesc:["top","bottom"]}],p2=new Ko,qme=function(e){q(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=vm,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(),f={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:f4[+c],categoryDim:f4[1-+c]};o.diff(s).add(function(g){if(o.hasValue(g)){var m=p4(o,g),y=v4(o,g,m,f),x=g4(o,f,y);o.setItemGraphicEl(g,x),i.add(x),y4(x,f,y)}}).update(function(g,m){var y=s.getItemGraphicEl(m);if(!o.hasValue(g)){i.remove(y);return}var x=p4(o,g),_=v4(o,g,x,f),w=u$(o,_);y&&w!==y.__pictorialShapeStr&&(i.remove(y),o.setItemGraphicEl(g,null),y=null),y?nye(y,f,_):y=g4(o,f,_,!0),o.setItemGraphicEl(g,y),y.__pictorialSymbolMeta=_,i.add(y),y4(y,f,_)}).remove(function(g){var m=s.getItemGraphicEl(g);m&&m4(s,g,m.__pictorialSymbolMeta.animationModel,m)}).execute();var v=r.get("clip",!0)?vh(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){m4(i,Be(o).dataIndex,r,o)}):a.removeAll()},t.type=vm,t}(Rt);function v4(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(),f={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};Kme(r,i,a,n,f),Jme(e,t,a,i,o,f.boundingLength,f.pxSign,c,n,f),Qme(r,f.symbolScale,u,n,f);var v=f.symbolSize,g=Fh(r.get("symbolOffset"),v);return eye(r,v,a,i,o,g,s,f.valueLineWidth,f.boundingLength,f.repeatCutLength,n,f),f}function Kme(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(ae(o)){var h=[g2(s,o[0])-l,g2(s,o[1])-l];h[1]=0?1:-1:c>0?1:-1}function g2(e,t){return e.toGlobalCoord(e.dataToCoord(e.scale.parse(t)))}function Jme(e,t,r,n,a,i,o,s,l,u){var c=l.valueDim,h=l.categoryDim,f=Math.abs(r[h.wh]),v=e.getItemVisual(t,"symbolSize"),g;ae(v)?g=v.slice():v==null?g=["100%","100%"]:g=[v,v],g[h.index]=me(g[h.index],f),g[c.index]=me(g[c.index],n?f: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 Qme(e,t,r,n,a){var i=e.get(Xme)||0;i&&(p2.attr({scaleX:t[0],scaleY:t[1],rotation:r}),p2.updateTransform(),i/=p2.getLineScale(),i*=t[n.valueDim.index]),a.valueLineWidth=i||0}function eye(e,t,r,n,a,i,o,s,l,u,c,h){var f=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),_=zn(e.get("symbolMargin"),"15%")+"",w=!1;_.lastIndexOf("!")===_.length-1&&(w=!0,_=_.slice(0,_.length-1));var S=me(_,t[v.index]),C=Math.max(m+S*2,0),M=w?0:S*2,A=Fk(n),k=A?n:x4((x+M)/C),I=x-k*m;S=I/2/(w?k:Math.max(k-1,1)),C=m+S*2,M=w?0:S*2,!A&&n!=="fixed"&&(k=u?x4((Math.abs(u)+M)/C):0),y=k*C-M,h.repeatTimes=k,h.symbolMargin=S}var P=g*(y/2),j=h.pathPosition=[];j[f.index]=r[f.wh]/2,j[v.index]=o==="start"?P:o==="end"?l-P:l/2,i&&(j[0]+=i[0],j[1]+=i[1]);var z=h.bundlePosition=[];z[f.index]=r[f.xy],z[v.index]=r[v.xy];var D=h.barRectShape=te({},r);D[v.wh]=g*Math.max(Math.abs(r[v.wh]),Math.abs(j[v.index]+P)),D[f.wh]=r[f.wh];var B=h.clipShape={};B[f.xy]=-r[f.xy],B[f.wh]=c.ecSize[f.wh],B[v.xy]=0,B[v.wh]=r[v.wh]}function a$(e){var t=e.symbolPatternSize,r=Ar(e.symbolType,-t/2,-t/2,t,t);return r.attr({culling:!0}),r.type!=="image"&&r.setStyle({strokeNoScale:!0}),r}function i$(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(ZI(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 o$(e,t,r,n){var a=e.__pictorialBundle,i=e.__pictorialMainPath;i?_f(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=a$(r),a.add(i),_f(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 s$(e,t,r){var n=te({},t.barRectShape),a=e.__pictorialBarRect;a?_f(a,null,{shape:n},t,r):(a=e.__pictorialBarRect=new it({z2:2,shape:n,silent:!0,style:{stroke:"transparent",fill:"transparent",lineWidth:0}}),a.disableMorphing=!0,e.add(a))}function l$(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)At(a,{shape:i},s,l);else{i[o.wh]=0,a=new it({shape:i}),e.__pictorialBundle.setClipPath(a),e.__pictorialClipPath=a;var u={};u[o.wh]=r.clipShape[o.wh],Rh[n?"updateProps":"initProps"](a,{shape:u},s,l)}}}function p4(e,t){var r=e.getItemModel(t);return r.getAnimationDelayParams=tye,r.isAnimationEnabled=rye,r}function tye(e){return{index:e.__pictorialAnimationIndex,count:e.__pictorialRepeatTimes}}function rye(){return this.parentModel.isAnimationEnabled()&&!!this.getShallow("animation")}function g4(e,t,r,n){var a=new De,i=new De;return a.add(i),a.__pictorialBundle=i,i.x=r.bundlePosition[0],i.y=r.bundlePosition[1],r.symbolRepeat?i$(a,t,r):o$(a,t,r),s$(a,r,n),l$(a,t,r,n),a.__pictorialShapeStr=u$(e,r),a.__pictorialSymbolMeta=r,a}function nye(e,t,r){var n=r.animationModel,a=r.dataIndex,i=e.__pictorialBundle;At(i,{x:r.bundlePosition[0],y:r.bundlePosition[1]},n,a),r.symbolRepeat?i$(e,t,r,!0):o$(e,t,r,!0),s$(e,r,!0),l$(e,t,r,!0)}function m4(e,t,r,n){var a=n.__pictorialBarRect;a&&a.removeTextContent();var i=[];ZI(n,function(o){i.push(o)}),n.__pictorialMainPath&&i.push(n.__pictorialMainPath),n.__pictorialClipPath&&(r=null),R(i,function(o){su(o,{scaleX:0,scaleY:0},r,t,function(){n.parent&&n.parent.remove(n)})}),e.setItemGraphicEl(t,null)}function u$(e,t){return[e.getItemVisual(t.dataIndex,"symbol")||"none",!!t.symbolRepeat,!!t.symbolClip].join(":")}function ZI(e,t,r){R(e.__pictorialBundle.children(),function(n){n!==e.__pictorialBarRect&&t.call(r,n)})}function _f(e,t,r,n,a,i){t&&e.attr(t),n.symbolClip&&!a?r&&e.attr(r):r&&Rh[a?"updateProps":"initProps"](e,r,n.animationModel,n.dataIndex,i)}function y4(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"),f=i.get("scale");ZI(e,function(m){if(m instanceof Qr){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,f&&(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,Jr(g,Gr(a),{labelFetcher:t.seriesModel,labelDataIndex:n,defaultText:Hf(t.seriesModel.getData(),n),inheritColor:r.style.fill,defaultOpacity:r.style.opacity,defaultOutsidePosition:v}),ir(e,c,h,i.get("disabled"))}function x4(e){var t=Math.round(e);return Math.abs(e-t)<1e-4?t:Math.ceil(e)}var aye=function(e){q(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."+vm,t.dependencies=["grid"],t.defaultOption=Cu(pm.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}(pm);function iye(e){e.registerChartView(qme),e.registerSeriesModel(aye),e.registerLayout(e.PRIORITY.VISUAL.LAYOUT,y8(vm)),e.registerLayout(e.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,x8(vm)),b8(e)}var m2=2,Zf="themeRiver",oye=function(e){q(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 Nv(be(this.getData,this),be(this.getRawData,this))},t.prototype.fixData=function(r){var n=r.length,a={},i=AM(r,function(f){return a.hasOwnProperty(f[0]+"")||(a[f[0]+""]=-1),f[2]}),o=[];i.buckets.each(function(f,v){o.push({name:v,dataList:f})});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 dye(e){e.registerChartView(sye),e.registerSeriesModel(oye),e.registerLayout(uye),e.registerProcessor(ay(Zf))}var fye=2,vye=4,b4=function(e){q(t,e);function t(r,n,a,i){var o=e.call(this)||this;o.z2=fye,o.textConfig={inside:!0},Be(o).seriesIndex=n.seriesIndex;var s=new wt({z2:vye,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;Be(s).dataIndex=n.dataIndex;var l=n.getModel(),u=l.getModel("emphasis"),c=n.getLayout(),h=te({},c);h.label=null;var f=n.getVisual("style");f.lineJoin="bevel";var v=n.getVisual("decal");v&&(f.decal=zf(v,o));var g=Co(l.getModel("itemStyle"),h,!0);te(h,g),R(ra,function(_){var w=s.ensureState(_),S=l.getModel([_,"itemStyle"]);w.style=S.getItemStyle();var C=Co(S,h);C&&(w.shape=C)}),r?(s.setShape(h),s.shape.r=c.r0,Qt(s,{shape:{r:c.r}},a,n.dataIndex)):(At(s,{shape:h},a),_i(s)),s.useStyle(f),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"?Lf(n.getAncestorsIndices(),n.getDescendantIndices()):y==="ancestor"?n.getAncestorsIndices():y==="descendant"?n.getDescendantIndices():y;ir(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,f=h.getTextContent(),v=this.node.dataIndex,g=i.get("minAngle")/180*Math.PI,m=i.get("show")&&!(g!=null&&Math.abs(s)B&&!th(V-B)&&V0?(o.virtualPiece?o.virtualPiece.updateData(!1,_,r,n,a):(o.virtualPiece=new b4(_,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";Z_(u,c)}}a=!0}})})},t.prototype._rootToNode=function(r){r!==this.seriesModel.getViewRoot()&&this.api.dispatchAction({type:$A,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=Sh,t}(Rt),xye=Hr(Sh,_ye);function _ye(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&&ve(s)&&(s=L_(s,(n.depth-1)/(i-1)*.5)),s}e.eachSeriesByType(Sh,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 S4=Math.PI/180,bye=Hr(Sh,wye);function wye(e,t){e.eachSeriesByType(Sh,function(r){var n=r.get("center"),a=r.get("radius");ae(a)||(a=[0,a]),ae(n)||(n=[n,n]);var i=t.getWidth(),o=t.getHeight(),s=Math.min(i,o),l=me(n[0],i),u=me(n[1],o),c=me(a[0],s/2),h=me(a[1],s/2),f=-r.get("startAngle")*S4,v=r.get("minAngle")*S4,g=r.getData().tree.root,m=r.getViewRoot(),y=m.depth,x=r.get("sort");x!=null&&h$(m,x);var _=0;R(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),k=r.get("clockwise"),I=r.get("stillShowZeroSum"),P=k?1:-1,j=function(H,V){if(H){var U=V;if(H!==g){var F=H.getValue(),W=w===0&&I?S:F*S;Wn[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:be(Dye,e)}}}function Eye(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 Rye(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 d$={position:["x","y"],scale:["scaleX","scaleY"],origin:["originX","originY"]},T4=mt(d$);gi(Gs,function(e,t){return e[t]=1,e},{});Gs.join(", ");var Lb=["","style","shape","extra"],Yf=Qe();function YI(e,t,r,n,a){var i=e+"Animation",o=fv(e,n,a)||{},s=Yf(t).userDuring;return o.duration>0&&(o.during=s?be(Vye,{el:t,userDuring:s}):null,o.setToFinal=!0,o.scope=e),te(o,r[i]),o}function Yx(e,t,r,n){n=n||{};var a=n.dataIndex,i=n.isInit,o=n.clearStyle,s=r.isAnimationEnabled(),l=Yf(e),u=t.style;l.userDuring=t.during;var c={},h={};if(Hye(e,t,h),e.type==="compound")for(var f=e.shape.paths,v=t.shape.paths,g=0;g0&&e.animateFrom(y,x)}else zye(e,t,a||0,r,c);f$(e,t),u?e.dirty():e.markRedraw()}function f$(e,t){for(var r=Yf(e).leaveToProps,n=0;n0&&e.animateFrom(a,i)}}function Bye(e,t){Se(t,"silent")&&(e.silent=t.silent),Se(t,"ignore")&&(e.ignore=t.ignore),e instanceof xi&&Se(t,"invisible")&&(e.invisible=t.invisible),e instanceof pt&&Se(t,"autoBatch")&&(e.autoBatch=t.autoBatch)}var fo={},Fye={setTransform:function(e,t){return fo.el[e]=t,this},getTransform:function(e){return fo.el[e]},setShape:function(e,t){var r=fo.el,n=r.shape||(r.shape={});return n[e]=t,r.dirtyShape&&r.dirtyShape(),this},getShape:function(e){var t=fo.el.shape;if(t)return t[e]},setStyle:function(e,t){var r=fo.el,n=r.style;return n&&(n[e]=t,r.dirtyStyle&&r.dirtyStyle()),this},getStyle:function(e){var t=fo.el.style;if(t)return t[e]},setExtra:function(e,t){var r=fo.el.extra||(fo.el.extra={});return r[e]=t,this},getExtra:function(e){var t=fo.el.extra;if(t)return t[e]}};function Vye(){var e=this,t=e.el;if(t){var r=Yf(t).userDuring,n=e.userDuring;if(r!==n){e.el=e.userDuring=null;return}fo.el=t,n(Fye)}}function M4(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=Zt(l),c=0;c=0){!o&&(o=n[e]={});for(var v=mt(i),c=0;c=0)){var f=e.getAnimationStyleProps(),v=f?f.style:null;if(v){!i&&(i=n.style={});for(var g=mt(r),u=0;u=0?t.getStore().get(F,V):void 0}var W=t.get(U.name,V),$=U&&U.ordinalMeta;return $?$.categories[W]:W}function A(H,V){V==null&&(V=c);var U=t.getItemVisual(V,"style"),F=U&&U.fill,W=U&&U.opacity,$=w(V,El).getItemStyle();F!=null&&($.fill=F),W!=null&&($.opacity=W);var Z={inheritColor:ve(F)?F:K.color.neutral99},J=S(V,El),re=$t(J,null,Z,!1,!0);re.text=J.getShallow("show")?Te(e.getFormattedLabel(V,El),Hf(t,V)):null;var Q=G_(J,Z,!1);return P(H,$),$=p5($,re,Q),H&&I($,H),$.legacy=!0,$}function k(H,V){V==null&&(V=c);var U=w(V,js).getItemStyle(),F=S(V,js),W=$t(F,null,null,!0,!0);W.text=F.getShallow("show")?ya(e.getFormattedLabel(V,js),e.getFormattedLabel(V,El),Hf(t,V)):null;var $=G_(F,null,!0);return P(H,U),U=p5(U,W,$),H&&I(U,H),U.legacy=!0,U}function I(H,V){for(var U in V)Se(V,U)&&(H[U]=V[U])}function P(H,V){H&&(H.textFill&&(V.textFill=H.textFill),H.textPosition&&(V.textPosition=H.textPosition))}function j(H,V){if(V==null&&(V=c),Se(C4,H)){var U=t.getItemVisual(V,"style");return U?U[C4[H]]:null}if(Se(Tye,H))return t.getItemVisual(V,H)}function z(H){if(o.type==="cartesian2d"){var V=o.getBaseAxis();return Qce(Ee({axis:V},H))}}function D(){return r.getCurrentSeriesIndices()}function B(H){return uL(H,r)}}function e0e(e){var t={};return R(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 b2(e,t,r,n,a,i,o){if(!n){i.remove(t);return}var s=QI(e,t,r,n,a,i);return s&&o.setItemGraphicEl(r,s),s&&ir(s,n.focus,n.blurScope,n.emphasisDisabled),s}function QI(e,t,r,n,a,i){var o=-1,s=t;t&&m$(t,n,a)&&(o=Ye(i.childrenRef(),t),t=null);var l=!t,u=t;u?u.clearStates():(u=KI(n),s&&qye(s,u)),n.morph===!1?u.disableMorphing=!0:u.disableMorphing&&(u.disableMorphing=!1),n.tooltipDisabled&&(u.tooltipDisabled=!0),Ya.normal.cfg=Ya.normal.conOpt=Ya.emphasis.cfg=Ya.emphasis.conOpt=Ya.blur.cfg=Ya.blur.conOpt=Ya.select.cfg=Ya.select.conOpt=null,Ya.isLegacy=!1,r0e(u,r,n,a,l,Ya),t0e(u,r,n,a,l),JI(e,u,r,n,Ya,a,l),Se(n,"info")&&(Ds(u).info=n.info);for(var c=0;c=0?i.replaceAt(u,o):i.add(u),u}function m$(e,t,r){var n=Ds(e),a=t.type,i=t.shape,o=t.style;return r.isUniversalTransitionEnabled()||a!=null&&a!==n.customGraphicType||a==="path"&&s0e(i)&&y$(i)!==n.customPathData||a==="image"&&Se(o,"image")&&o.image!==n.customImagePath}function t0e(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&&m$(o,i,n)&&(o=null),o||(o=KI(i),e.setClipPath(o)),JI(null,o,t,i,null,n,a)}}function r0e(e,t,r,n,a,i){if(!(e.isGroup||e.type==="compoundPath")){N4(r,null,i),N4(r,js,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=KI(o),e.setTextContent(c)),JI(null,c,t,o,null,n,a);for(var h=o&&o.style,f=0;f=c;v--){var g=t.childAt(v);a0e(t,g,a)}}}function a0e(e,t,r){t&&hw(t,Ds(e).option,r)}function i0e(e){new $s(e.oldChildren,e.newChildren,k4,k4,e).add(L4).update(L4).remove(o0e).execute()}function k4(e,t){var r=e&&e.name;return r??Yye+t}function L4(e,t){var r=this.context,n=e!=null?r.newChildren[e]:null,a=t!=null?r.oldChildren[t]:null;QI(r.api,a,r.dataIndex,n,r.seriesModel,r.group)}function o0e(e){var t=this.context,r=t.oldChildren[e];r&&hw(r,Ds(r).option,t.seriesModel)}function y$(e){return e&&(e.pathData||e.d)}function s0e(e){return e&&(Se(e,"pathData")||Se(e,"d"))}function l0e(e){e.registerChartView(Kye),e.registerSeriesModel(Mye)}var Cc=Qe(),I4=ke,w2=be,tP=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 De,this.createPointerEl(s,u,t,r),this.createLabelEl(s,u,t,r),n.getZr().add(s);else{var f=nt(P4,r,h);this.updatePointerEl(s,u,f),this.updateLabelEl(s,u,f,r)}j4(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&&Cn(a).w>s)return!0;if(o){var l=mI(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=Cc(t).pointerEl=new Rh[i.type](I4(r.pointer));t.add(o)}},e.prototype.createLabelEl=function(t,r,n,a){if(r.label){var i=Cc(t).labelEl=new wt(I4(r.label));t.add(i),D4(i,a)}},e.prototype.updatePointerEl=function(t,r,n){var a=Cc(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=Cc(t).labelEl;i&&(i.setStyle(r.label.style),n(i,{x:r.label.x,y:r.label.y}),D4(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=pv(i.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(u){Vs(u.event)},onmousedown:w2(this._onHandleDragMove,this,0,0),drift:w2(this._onHandleDragMove,this),ondragend:w2(this._onHandleDragEnd,this)}),n.add(a)),j4(a,r,!1),a.setStyle(i.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var l=i.get("size");ae(l)||(l=[l,l]),a.scaleX=l[0]/2,a.scaleY=l[1]/2,xv(this,"_doDispatchAxisPointer",i.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,s)}},e.prototype._moveHandleToValue=function(t,r){P4(this._axisPointerModel,!r&&this._moveAnimation,this._handle,S2(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(S2(n),[t,r],this._axisModel,this._axisPointerModel);this._payloadInfo=a,n.stopAnimation(),n.attr(S2(a)),Cc(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),rm(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 P4(e,t,r,n){x$(Cc(r).lastProp,n)||(Cc(r).lastProp=n,t?At(r,n,e):(r.stopAnimation(),r.attr(n)))}function x$(e,t){if(Re(e)&&Re(t)){var r=!0;return R(t,function(n,a){r=r&&x$(e[a],n)}),!!r}else return e===t}function D4(e,t){e[t.get(["label","show"])?"show":"hide"]()}function S2(e){return{x:e.x||0,y:e.y||0,rotation:e.rotation||0}}function j4(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 rP(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 _$(e,t,r,n,a){var i=r.get("value"),o=b$(i,t.axis,t.ecModel,r.get("seriesDataIndices"),{precision:r.get(["label","precision"]),formatter:r.get(["label","formatter"])}),s=r.getModel("label"),l=mv(s.get("padding")||0),u=s.getFont(),c=S1(o,u),h=a.position,f=c.width+l[1]+l[3],v=c.height+l[0]+l[2],g=a.align;g==="right"&&(h[0]-=f),g==="center"&&(h[0]-=f/2);var m=a.verticalAlign;m==="bottom"&&(h[1]-=v),m==="middle"&&(h[1]-=v/2),u0e(h,f,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:$t(s,{text:o,font:u,fill:s.getTextColor(),padding:l,backgroundColor:y}),z2:10}}function u0e(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 b$(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:ob(t,{value:e}),axisDimension:t.dim,axisIndex:t.index,seriesData:[]};R(n,function(l){var u=r.getSeriesByIndex(l.seriesIndex),c=l.dataIndexInside,h=u&&u.getDataParams(c);h&&s.seriesData.push(h)}),ve(o)?i=o.replace("{value}",i):Le(o)&&(i=o(s))}return i}function nP(e,t,r){var n=ar();return Js(n,n,r.rotation),Hi(n,n,r.position),Fi([e.dataToCoord(t),(r.labelOffset||0)+(r.labelDirection||1)*(r.labelMargin||0)],n)}function w$(e,t,r,n,a,i){var o=ea.innerTextLayout(r.rotation,0,r.labelDirection);r.labelMargin=a.get(["label","margin"]),_$(t,n,a,i,{position:nP(n.axis,e,r),align:o.textAlign,verticalAlign:o.textVerticalAlign})}function aP(e,t,r){return r=r||0,{x1:e[r],y1:e[1-r],x2:t[r],y2:t[1-r]}}function S$(e,t,r){return r=r||0,{x:e[r],y:e[1-r],width:t[r],height:t[1-r]}}function E4(e,t,r,n,a,i){return{cx:e,cy:t,r0:r,r:n,startAngle:a,endAngle:i,clockwise:!0}}function iP(e,t,r){return Cn(e,{fromStat:{sers:oe(t,function(n){return r.getSeriesByIndex(n.seriesIndex)})},min:1}).w}function oP(e,t,r){return[at(Et(t[0],t[1]),e-r/2),Et(e+r/2,at(t[0],t[1]))]}var c0e=function(e){q(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=R4(l,s).getOtherAxis(s).getGlobalExtent(),f=s.toGlobalCoord(s.dataToCoord(n,!0));if(u&&u!=="none"){var v=rP(i),g=h0e[u](s,f,c,h,i.get("seriesDataIndices"),i.ecModel);g.style=v,r.graphicKey=g.type,r.pointer=g}var m=pb(l.getRect(),a);w$(n,r,m,a,i,o)},t.prototype.getHandleTransform=function(r,n,a){var i=pb(n.axis.grid.getRect(),n,{labelInside:!1});i.labelMargin=a.get(["handle","margin"]);var o=nP(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=R4(s,o).getOtherAxis(o).getGlobalExtent(),c=o.dim==="x"?0:1,h=[r.x,r.y];h[c]+=n[c],h[c]=Et(l[1],h[c]),h[c]=at(l[0],h[c]);var f=(u[1]+u[0])/2,v=[f,f];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}(tP);function R4(e,t){var r={};return r[t.dim+"AxisIndex"]=t.index,e.getCartesian(r)}var h0e={line:function(e,t,r,n){var a=aP([t,n[0]],[t,n[1]],O4(e));return{type:"Line",subPixelOptimize:!0,shape:a}},shadow:function(e,t,r,n,a,i){var o=iP(e,a,i),s=n[1]-n[0],l=oP(t,r,o),u=l[0],c=l[1];return{type:"Rect",shape:S$([u,n[0]],[c-u,s],O4(e))}}};function O4(e){return e.dim==="x"?0:1}var d0e=function(e){q(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}(ht),Ms=Qe(),f0e=R;function C$(e,t,r){if(!xt.node){var n=t.getZr();Ms(n).records||(Ms(n).records={}),v0e(n,t);var a=Ms(n).records[e]||(Ms(n).records[e]={});a.handler=r}}function v0e(e,t){if(Ms(e).initialized)return;Ms(e).initialized=!0,r("click",nt(C2,"click")),r("mousemove",nt(C2,"mousemove")),r("mousewheel",nt(C2,"mousewheel")),r("globalout",g0e);function r(n,a){e.on(n,function(i){var o=m0e(t);f0e(Ms(e).records,function(s){s&&a(s,i,o.dispatchAction)}),p0e(o.pendings,t)})}}function p0e(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 g0e(e,t,r){e.handler("leave",null,r)}function C2(e,t,r,n){t.handler(e,r,n)}function m0e(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 XA(e,t){if(!xt.node){var r=t.getZr(),n=(Ms(r).records||{})[e];n&&(Ms(r).records[e]=null)}}var y0e=function(e){q(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";C$("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){XA("axisPointer",n)},t.prototype.dispose=function(r,n){XA("axisPointer",n)},t.type="axisPointer",t}(Yt);function T$(e,t){var r=[],n=e.seriesIndex,a;if(n==null||!(a=t.getSeriesByIndex(n)))return{point:[]};var i=a.getData(),o=nh(i,e);if(o==null||o<0||ae(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,f=u.dim,v=h==="x"||h==="radius"?1:0,g=i.mapDimension(f),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 z4=Qe();function x0e(e,t,r){var n=e.currTrigger,a=[e.x,e.y],i=e,o=e.dispatchAction||be(r.dispatchAction,r),s=t.getComponent("axisPointer").coordSysAxesInfo;if(s){Xx(a)&&(a=T$({seriesIndex:i.seriesIndex,dataIndex:i.dataIndex},t).point);var l=Xx(a),u=i.axesInfo,c=s.axesInfo,h=n==="leave"||Xx(a),f={},v={},g={list:[],map:{}},m={showPointer:nt(b0e,v),showTooltip:nt(w0e,g)};R(s.coordSysMap,function(x,_){var w=l||x.containPoint(a);R(s.coordSysAxesInfo[_],function(S,C){var M=S.axis,A=M0e(u,S);if(!h&&w&&(!u||A)){var k=A&&A.value;k==null&&!l&&(k=M.pointToData(a)),k!=null&&B4(S,k,m,!1,f)}})});var y={};return R(c,function(x,_){var w=x.linkGroup;w&&!v[_]&&R(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,F4(S),F4(x)))),y[x.key]=A}})}),R(y,function(x,_){B4(c[_],x,m,!0,f)}),S0e(v,c,f),C0e(g,a,e,o),T0e(c,o,r),f}}function B4(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=_0e(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 _0e(e,t){var r=t.axis,n=r.dim,a=e,i=[],o=Number.MAX_VALUE,s=-1;return R(t.seriesModels,function(l,u){var c=l.getData().mapDimensionsAll(n),h,f;if(l.getAxisTooltipData){var v=l.getAxisTooltipData(c,e,r);f=v.dataIndices,h=v.nestestValue}else{if(f=l.indicesOfNearest(n,c[0],e,r.type==="category"?.5:null),!f.length)return;h=l.getData().get(c[0],f[0])}if(yi(h)){var g=e-h,m=Math.abs(g);m<=o&&((m=0&&s<0)&&(o=m,s=g,a=h,i.length=0),R(f,function(y){i.push({seriesIndex:l.seriesIndex,dataIndexInside:y,dataIndex:l.getData().getRawIndex(y)})}))}}),{payloadBatch:i,snapToValue:a}}function b0e(e,t,r,n){e[t.key]={value:r,payloadBatch:n}}function w0e(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=gm(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 S0e(e,t,r){var n=r.axesInfo=[];R(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 C0e(e,t,r,n){if(Xx(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 T0e(e,t,r){var n=r.getZr(),a="axisPointerLastHighlights",i=z4(n)[a]||{},o=z4(n)[a]={};R(e,function(c,h){var f=c.axisPointerModel.option;f.status==="show"&&c.triggerEmphasis&&R(f.seriesDataIndices,function(v){o[v.seriesIndex+"|"+v.dataIndex]=v})});var s=[],l=[];function u(c){return{seriesIndex:c.seriesIndex,dataIndex:c.dataIndex}}R(i,function(c,h){!o[h]&&l.push(u(c))}),R(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 M0e(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 F4(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 Xx(e){return!e||e[0]==null||isNaN(e[0])||e[1]==null||isNaN(e[1])}function iy(e){Gh.registerAxisPointerClass("CartesianAxisPointer",c0e),e.registerComponentModel(d0e),e.registerComponentView(y0e),e.registerPreprocessor(function(t){if(t){(!t.axisPointer||t.axisPointer.length===0)&&(t.axisPointer={});var r=t.axisPointer.link;r&&!ae(r)&&(t.axisPointer.link=[r])}}),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,{overallReset:function(t,r){t.getComponent("axisPointer").coordSysAxesInfo=Yhe(t,r)}}),e.registerAction({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},x0e)}function A0e(e){rt(O8),rt(iy)}var N0e=function(e){q(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),f=i.get("type");if(f&&f!=="none"){var v=rP(i),g=L0e[f](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=k0e(n,a,i,l,m);_$(r,a,i,o,y)},t}(tP);function k0e(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 f=ar();Js(f,f,s),Hi(f,f,[n.cx,n.cy]),u=Fi([o,-a],f);var v=t.getModel("axisLabel").get("rotate")||0,g=ea.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 L0e={line:function(e,t,r,n,a){return e.dim==="angle"?{type:"Line",shape:aP(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=iP(e,i,o),u;if(e.dim==="angle")u=E4(t.cx,t.cy,a[0],a[1],(-r-l/2)*s,(-r+l/2)*s);else{var c=oP(r,n,l),h=c[0],f=c[1];u=E4(t.cx,t.cy,h,f,0,Math.PI*2)}return{type:"Sector",shape:u}}},jo="polar",V4=jo,I0e=function(e){q(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=jo,t.dependencies=["radiusAxis","angleAxis"],t.defaultOption={z:0,center:["50%","50%"],radius:"80%"},t}(ht),sP=function(e){q(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.getCoordSysModel=function(){return this.getReferringComponents("polar",pr).models[0]},t.type="polarAxis",t}(ht);kr(sP,Tv);var P0e=function(e){q(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type="angleAxis",t}(sP),D0e=function(e){q(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type="radiusAxis",t}(sP),lP=function(e){q(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}(Ci);lP.prototype.dataToRadius=Ci.prototype.dataToCoord;lP.prototype.radiusToData=Ci.prototype.coordToData;var j0e=Qe(),uP=function(e){q(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=S1(s==null?"":s+"",n.getFont(),"center","top"),h=Math.max(c.height,7),f=h/u;isNaN(f)&&(f=1/0);var v=Math.max(0,Math.floor(f)),g=j0e(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}(Ci);uP.prototype.dataToAngle=Ci.prototype.dataToCoord;uP.prototype.angleToData=Ci.prototype.coordToData;var M$=["radius","angle"],E0e=function(){function e(t){this.dimensions=M$,this.type=jo,this.cx=0,this.cy=0,this._radiusAxis=new lP,this._angleAxis=new uP,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,f=this.r,v=this.r0;return f!==v&&h-o<=f*f&&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=G4(r);return a===this?this.dataToPoint(n):null},e.prototype.convertFromPixel=function(t,r,n){var a=G4(r);return a===this?this.pointToData(n):null},e}();function G4(e){var t=e.seriesModel,r=e.polarModel;return r&&r.coordinateSystem||t&&t.coordinateSystem}function R0e(e,t,r){var n=t.get("center"),a=Ur(t,r).refContainer;e.cx=me(n[0],a.width)+a.x,e.cy=me(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%"]:ae(s)||(s=[0,s]);var l=[me(s[0],o),me(s[1],o)];i.inverse?i.setExtent(l[1],l[0]):i.setExtent(l[0],l[1])}function O0e(e,t){var r=this,n=r.getAngleAxis(),a=r.getRadiusAxis();if(fh(n,Vf),fh(a,Vf),Gf(n),Gf(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 z0e(e){return e.mainType==="angleAxis"}function H4(e,t){var r;if(e.type=Km(t),e.scale=Sv(t,e.type,!1),e.onBand=Qm(e.scale,t),e.inverse=t.get("inverse"),z0e(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 B0e={dimensions:M$,create:function(e,t){var r=[];return e.eachComponent(V4,function(n,a){var i=new E0e(a+"");i.update=O0e;var o=i.getRadiusAxis(),s=i.getAngleAxis(),l=n.findAxisModel("radiusAxis"),u=n.findAxisModel("angleAxis");H4(o,l),H4(s,u),R0e(i,n,t),r.push(i),n.coordinateSystem=i,i.model=n}),e.eachSeries(function(n){if(n.get("coordinateSystem")===jo){var a=n.getReferringComponents(V4,pr).models[0],i=n.coordinateSystem=a.coordinateSystem;i&&(dh(i.getRadiusAxis(),n,jo),dh(i.getAngleAxis(),n,jo))}}),r}},F0e=["axisLine","axisLabel","axisTick","minorTick","splitLine","minorSplitLine","splitArea"];function $0(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 Z0(e){var t=e.getRadiusAxis();return t.inverse?0:1}function U4(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 V0e=function(e){q(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=[];R(a.getViewLabels(),function(c){if(!c.tick.offInterval){c=ke(c);var h=a.scale;c.coord=a.dataToCoord(Cv(h,c.tick)),u.push(c)}}),U4(u),U4(s),R(F0e,function(c){r.get([c,"show"])&&(!a.scale.isBlank()||c==="axisLine")&&G0e[c](this.group,r,i,s,l,o,u)},this)}},t.type="angleAxis",t}(Gh),G0e={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=Z0(r),h=c?0:1,f,v=Math.abs(u[1]-u[0])===360?"Circle":"Arc";i[h]===0?f=new Rh[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}):f=new hv({shape:{cx:r.cx,cy:r.cy,r:i[c],r0:i[h]},style:o.getLineStyle(),z2:1,silent:!0}),f.style.fill=null,e.add(f)},axisTick:function(e,t,r,n,a,i){var o=t.getModel("axisTick"),s=(o.get("inside")?-1:1)*o.get("length"),l=i[Z0(r)],u=oe(n,function(c){return new Tr({shape:$0(r,[l,l+s],c.coord)})});e.add(Na(u,{style:Ee(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[Z0(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];Re(C)&&C.textStyle&&(v=new vt(C.textStyle,l,l.ecModel))}var M=new wt({silent:ea.isLabelSilent(t),style:$t(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),el({el:M,componentModel:t,itemName:h.formattedLabel,formatterParamsExtra:{isTruncated:function(){return M.isTruncated},value:h.rawLabel,tickIndex:f}}),c){var A=ea.makeAxisEventDataBase(t);A.targetType="axisLabel",A.value=h.rawLabel,Be(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",I=w;x&&(n[i][A]||(n[i][A]={p:w,n:w}),I=n[i][A][k]);var P=void 0,j=void 0,z=void 0,D=void 0;if(c.dim==="radius"){var B=c.dataToCoord(M)-w,H=e.dataToCoord(A);cr(B)=D})}}function K0e(e,t){var r=Vh(t,jo),n=Cn(e,{fromStat:{key:r},min:1}).w,a=n,i=0,o="20%",s="30%",l={};hh(e,r,function(y){var x=A$(y);l[x]||i++,l[x]=l[x]||{width:0,maxWidth:0};var _=me(y.get("barWidth"),n),w=me(y.get("barMaxWidth"),n),S=y.get("barGap"),C=y.get("barCategoryGap");_&&!l[x].width&&(_=Et(a,_),l[x].width=_,a-=_),w&&(l[x].maxWidth=w),S!=null&&(s=S),C!=null&&(o=C)});var u={},c=me(o,n),h=me(s,1),f=(a-c)/(i+(i-1)*h);f=at(f,0),R(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=W4(r);return a===this?this.dataToPoint(n):null},e.prototype.convertFromPixel=function(t,r,n){var a=W4(r);return a===this?this.pointToData(n):null},e}();function W4(e){var t=e.seriesModel,r=e.singleAxisModel;return r&&r.coordinateSystem||t&&t.coordinateSystem}function lxe(e,t){var r=[];return e.eachComponent(LA,function(n,a){var i=new sxe(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")===ide){var a=n.getReferringComponents(LA,pr).models[0],i=n.coordinateSystem=a&&a.coordinateSystem;i&&dh(i.getAxis(),n,rw)}}),r}var uxe={create:lxe,dimensions:N$},$4=["x","y"],cxe=["width","height"],hxe=function(e){q(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=Db(s),c=Y0(l,u),h=Y0(l,1-u),f=l.dataToPoint(n)[0],v=i.get("type");if(v&&v!=="none"){var g=rP(i),m=dxe[v](s,f,c,h,i.get("seriesDataIndices"),i.ecModel);m.style=g,r.graphicKey=m.type,r.pointer=m}var y=qA(a);w$(n,r,y,a,i,o)},t.prototype.getHandleTransform=function(r,n,a){var i=qA(n,{labelInside:!1});i.labelMargin=a.get(["handle","margin"]);var o=nP(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=Db(o),u=Y0(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=Y0(s,1-l),f=(h[1]+h[0])/2,v=[f,f];return v[l]=c[l],{x:c[0],y:c[1],rotation:r.rotation,cursorPoint:v,tooltipOption:{verticalAlign:"middle"}}},t}(tP),dxe={line:function(e,t,r,n){var a=aP([t,n[0]],[t,n[1]],Db(e));return{type:"Line",subPixelOptimize:!0,shape:a}},shadow:function(e,t,r,n,a,i){var o=iP(e,a,i),s=n[1]-n[0],l=oP(t,r,o),u=l[0],c=l[1];return{type:"Rect",shape:S$([u,n[0]],[c-u,s],Db(e))}}};function Db(e){return e.isHorizontal()?0:1}function Y0(e,t){var r=e.getRect();return[r[$4[t]],r[$4[t]]+r[cxe[t]]]}var fxe=function(e){q(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type="single",t}(Yt);function vxe(e){rt(iy),Gh.registerAxisPointerClass("SingleAxisPointer",hxe),e.registerComponentView(fxe),e.registerComponentView(axe),e.registerComponentModel($x),Uf(e,"single",$x,$x.defaultOption),e.registerCoordinateSystem("single",uxe)}var pxe=function(e){q(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=zh(r);e.prototype.init.apply(this,arguments),Z4(r,i)},t.prototype.mergeOption=function(r){e.prototype.mergeOption.apply(this,arguments),Z4(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}(ht);function Z4(e,t){var r=e.cellSize,n;ae(r)?n=r:n=e.cellSize=[r,r],n.length===1&&(n[1]=n[0]);var a=oe([0,1],function(i){return gae(t,i)&&(n[i]="auto"),n[i]!=null&&n[i]!=="auto"});Uo(e,t,{type:"box",ignoreSize:a})}var gxe=function(e){q(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 it({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,f=0;h.time<=n.end.time;f++){g(h.formatedDate),f===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 un({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 ve(r)&&r?uH(r,n):Le(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,f=a==="horizontal"?0:1,v={top:[c,u[f][1]],bottom:[c,u[1-f][1]],left:[u[1-f][0],h],right:[u[f][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 wt({z2:30,style:$t(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||ve(s))&&(s&&(n=UM(s)||n),s=n.get(["time","monthAbbr"])||[]);var f=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/T2)-Math.floor(r[0].time/T2)+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){Ym({targetModel:i,coordSysType:"calendar",coordSysProvider:gH})}),n},e.dimensions=["time","value"],e}();function M2(e){var t=e.calendarModel,r=e.seriesModel,n=t?t.coordinateSystem:r?r.coordinateSystem:null;return n}function yxe(e){e.registerComponentModel(pxe),e.registerComponentView(gxe),e.registerCoordinateSystem("calendar",mxe)}var _s={level:1,leaf:2,nonLeaf:3},Es={none:0,all:1,body:2,corner:3};function KA(e,t,r){var n=t[We[r]].getCell(e);return!n&&Tt(e)&&e<0&&(n=t[We[1-r]].getUnitLayoutInfo(r,Math.round(e))),n}function k$(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 L$(e,t,r,n,a){Y4(e[0],t,a,r,n,0),Y4(e[1],t,a,r,n,1)}function Y4(e,t,r,n,a,i){e[0]=1/0,e[1]=-1/0;var o=n[i],s=ae(o)?o:[o],l=s.length,u=!!r;if(l>=1?(X4(e,t,s,u,a,i,0),l>1&&X4(e,t,s,u,a,i,l-1)):e[0]=e[1]=NaN,u){var c=-a[We[1-i]].getLocatorCount(i),h=a[We[i]].getLocatorCount(i)-1;r===Es.body?c=at(0,c):r===Es.corner&&(h=Et(-1,h)),h=t[0]&&e[0]<=t[1]}function J4(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 bxe(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 Q4(e,t,r,n){var a=KA(t[n][0],r,n),i=KA(t[n][1],r,n);e[We[n]]=e[_r[n]]=NaN,a&&i&&(e[We[n]]=a.xy,e[_r[n]]=i.xy+i.wh-a.xy)}function bp(e,t,r,n){return e[We[t]]=r,e[We[1-t]]=n,e}function wxe(e){return e&&(e.type===_s.leaf||e.type===_s.nonLeaf)?e:null}function jb(){return{x:NaN,y:NaN,width:NaN,height:NaN}}var ez=function(){function e(t,r){this._cells=[],this._levels=[],this.dim=t,this.dimIdx=t==="x"?0:1,this._model=r,this._uniqueValueGen=Sxe(t);var n=r.get("data",!0),a=r.get("length",!0);if(n!=null&&!ae(n)&&(n=[]),n)this._initByDimModelData(n);else if(a!=null){n=Array(a);for(var i=0;i=1,w=r[We[n]],S=i.getLocatorCount(n)-1,C=new Yl;for(o.resetLayoutIterator(C,n);C.next();)M(C.item);for(i.resetLayoutIterator(C,n);C.next();)M(C.item);function M(A){yn(A.wh)&&(A.wh=x),A.xy=w,A.id[We[n]]===S&&!_&&(A.wh=r[We[n]]+r[_r[n]]-A.xy),w+=A.wh}}function sz(e,t){for(var r=t[We[e]].resetCellIterator();r.next();){var n=r.item;Eb(n.rect,e,n.id,n.span,t),Eb(n.rect,1-e,n.id,n.span,t),n.type===_s.nonLeaf&&(n.xy=n.rect[We[e]],n.wh=n.rect[_r[e]])}}function lz(e,t){e.travelExistingCells(function(r){var n=r.span;if(n){var a=r.spanRect,i=r.id;Eb(a,0,i,n,t),Eb(a,1,i,n,t)}})}function Eb(e,t,r,n,a){e[_r[t]]=0;var i=r[We[t]],o=i<0?a[We[1-t]]:a[We[t]],s=o.getUnitLayoutInfo(t,r[We[t]]);if(e[We[t]]=s.xy,e[_r[t]]=s.wh,n[We[t]]>1){var l=o.getUnitLayoutInfo(t,r[We[t]]+n[We[t]]-1);e[_r[t]]=l.xy+l.wh-s.xy}}function Rxe(e,t,r){var n=O_(e,r[_r[t]]);return QA(n,r[_r[t]])}function QA(e,t){return Math.max(Math.min(e,Te(t,1/0)),0)}function k2(e){var t=e.matrixModel,r=e.seriesModel,n=t?t.coordinateSystem:r?r.coordinateSystem:null;return n}var pn={inBody:1,inCorner:2,outside:3},co={x:null,y:null,point:[]};function uz(e,t,r,n,a){var i=r[We[t]],o=r[We[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[We[t]]=pn.outside;return}if(a===Es.body){l?(e[We[t]]=pn.inBody,h=Et(s.xy+s.wh,at(l.xy,h)),e.point[t]=h):e[We[t]]=pn.outside;return}else if(a===Es.corner){c?(e[We[t]]=pn.inCorner,h=Et(c.xy+c.wh,at(u.xy,h)),e.point[t]=h):e[We[t]]=pn.outside;return}var f=l?l.xy:c?c.xy+c.wh:NaN,v=u?u.xy:f,g=s?s.xy+s.wh:f;if(hg){if(!a){e[We[t]]=pn.outside;return}h=g}e.point[t]=h,e[We[t]]=f<=h&&h<=g?pn.inBody:v<=h&&h<=f?pn.inCorner:pn.outside}function cz(e,t,r,n){var a=1-r;if(e[We[r]]!==pn.outside)for(n[We[r]].resetCellIterator(N2);N2.next();){var i=N2.item;if(dz(e.point[r],i.rect,r)&&dz(e.point[a],i.rect,a)){t[r]=i.ordinal,t[a]=i.id[We[a]];return}}}function hz(e,t,r,n){if(e[We[r]]!==pn.outside){var a=e[We[r]]===pn.inCorner?n[We[1-r]]:n[We[r]];for(a.resetLayoutIterator(Q0,r);Q0.next();)if(Oxe(e.point[r],Q0.item)){t[r]=Q0.item.id[We[r]];return}}}function Oxe(e,t){return t.xy<=e&&e<=t.xy+t.wh}function dz(e,t,r){return t[We[r]]<=e&&e<=t[We[r]]+t[_r[r]]}function zxe(e){e.registerComponentModel(Axe),e.registerComponentView(Pxe),e.registerCoordinateSystem("matrix",Exe)}function Bxe(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 fz(e,t){var r;return R(t,function(n){e[n]!=null&&e[n]!=="auto"&&(r=!0)}),r}function Fxe(e,t,r){var n=te({},r),a=e[t],i=r.$action||"merge";i==="merge"?a?(Je(a,n,!0),Uo(a,n,{ignoreSize:!0}),bH(r,a),ex(r,a),ex(r,a,"shape"),ex(r,a,"style"),ex(r,a,"extra"),r.clipPath=a.clipPath):e[t]=n:i==="replace"?e[t]=n:i==="remove"&&a&&(e[t]=null)}var P$=["transition","enterFrom","leaveTo"],Vxe=P$.concat(["enterAnimation","updateAnimation","leaveAnimation"]);function ex(e,t,r){if(r&&(!e[r]&&t[r]&&(e[r]={}),e=e[r],t=t[r]),!(!e||!t))for(var n=r?P$:Vxe,a=0;a=0;c--){var h=a[c],f=Fr(h.id,null),v=f!=null?o.get(f):null;if(v){var g=v.parent,x=ti(g),_=g===i?{width:s,height:l}:{width:x.width,height:x.height},w={},S=V1(v,h,_,null,{hv:h.hv,boundingMode:h.bounding},w);if(!ti(v).isNew&&S){for(var C=h.transition,M={},A=0;A=0)?M[k]=I:v[k]=I}At(v,M,r,0)}else v.attr(w)}}},t.prototype._clear=function(){var r=this,n=this._elMap;n.each(function(a){qx(a,ti(a).option,n,r._lastGraphicModel)}),this._elMap=we()},t.prototype.dispose=function(){this._clear()},t.type="graphic",t}(Yt);function eN(e){var t=Se(vz,e)?vz[e]:Jg(e),r=new t({});return ti(r).type=e,r}function pz(e,t,r,n){var a=eN(r);return t.add(a),n.set(e,a),ti(a).id=e,ti(a).isNew=!0,a}function qx(e,t,r,n){var a=e&&e.parent;a&&(e.type==="group"&&e.traverse(function(i){qx(i,t,r,n)}),hw(e,t,n),r.removeKey(ti(e).id))}function gz(e,t,r,n){e.isGroup||R([["cursor",xi.prototype.cursor],["zlevel",n||0],["z",r||0],["z2",0]],function(a){var i=a[0];Se(t,i)?e[i]=Te(t[i],a[1]):e[i]==null&&(e[i]=a[1])}),R(mt(t),function(a){if(a.indexOf("on")===0){var i=t[a];e[a]=Le(i)?i:null}}),Se(t,"draggable")&&(e.draggable=t.draggable),t.name!=null&&(e.name=t.name),t.id!=null&&(e.id=t.id)}function Wxe(e){return e=te({},e),R(["id","parentId","$action","hv","bounding","textContent","clipPath"].concat(mH),function(t){delete e[t]}),e}function $xe(e,t,r){var n=Be(e).eventData;!e.silent&&!e.ignore&&!n&&(n=Be(e).eventData={componentType:"graphic",componentIndex:t.componentIndex,name:e.name}),n&&(n.info=r.info)}function Zxe(e){e.registerComponentModel(Hxe),e.registerComponentView(Uxe),e.registerPreprocessor(function(t){var r=t.graphic;ae(r)?!r[0]||!r[0].elements?t.graphic=[{elements:r}]:t.graphic=[t.graphic[0]]:r&&!r.elements&&(t.graphic=[{elements:[r]}])})}var mz=["x","y","radius","angle","single"],Yxe=Qe(),Xxe=["cartesian2d","polar","singleAxis"];function qxe(e){var t=e.get("coordinateSystem");return Ye(Xxe,t)>=0}function Rl(e){return e+"Axis"}function Kxe(e,t){var r=we(),n=[],a=we();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(f,v){var g=r.get(f);g&&g[v]&&(h=!0)}),h}function u(c){c.eachTargetAxis(function(h,f){(r.get(h)||r.set(h,[]))[f]=!0})}return n}function D$(e){var t=e.ecModel,r={infoList:[],infoMap:we()};return e.eachTargetAxis(function(n,a){var i=t.getComponent(Rl(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 j$(e){var t=Yxe(pU(e));return t.axisProxyMap||(t.axisProxyMap=we())}function Rb(e){if(e)return j$(e.ecModel).get(e.uid)}function Jxe(e,t){j$(e.ecModel).set(e.uid,t)}function E$(e,t){var r=t.getAxisModel().axis.__alignTo;return r&&e.getAxisProxy(r.dim,r.model.componentIndex)?Rb(r.model):null}var L2=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}(),Mm=function(e){q(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=yz(r);this.settledOption=i,this.mergeDefaultAndTheme(r,a),this._doInit(i)},t.prototype.mergeOption=function(r){var n=yz(r);Je(this.option,r,!0),Je(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;R([["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=we(),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 R(mz,function(a){var i=this.getReferringComponents(Rl(a),Bte);if(i.specified){n=!0;var o=new L2;R(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 f=new L2;if(f.add(h.componentIndex),r.set(c,f),i=!1,c==="x"||c==="y"){var v=h.getReferringComponents("grid",pr).models[0];v&&R(u,function(g){h.componentIndex!==g.componentIndex&&v===g.getReferringComponents("grid",pr).models[0]&&f.add(g.componentIndex)})}}}i&&R(mz,function(u){if(i){var c=a.findComponents({mainType:Rl(u),filter:function(f){return f.get("type",!0)==="category"}});if(c[0]){var h=new L2;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");R([["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(Rl(n),a))},this),r},t.prototype.eachTargetAxis=function(r,n){this._targetAxisInfoMap.each(function(a,i){R(a.indexList,function(o){r.call(n,i,o)})})},t.prototype.getAxisProxy=function(r,n){return Rb(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(Rl(r),n)},t.prototype.setRawRange=function(r){var n=this.option,a=this.settledOption;R([["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;R(["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 Rb(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 R(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)}});R(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;R(["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=Nt(n[0]+o,n,[0,100],!0):i!=null&&(o=Nt(i,[0,100],n,!0)-n[0]),t[a+"Span"]=i,t[a+"ValueSpan"]=o},this)},e}(),r_e={dirtyOnOverallProgress:!0,getTargetSeries:function(e){function t(a){e.eachComponent("dataZoom",function(i){i.eachTargetAxis(function(o,s){var l=e.getComponent(Rl(o),s);a(o,s,l,i)})})}var r=[];t(function(a,i,o,s){if(!Rb(o)){var l=new t_e(a,i,s,e);r.push(l),Jxe(o,l)}});var n=we();return R(r,function(a){R(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=E$(r,o);s?n.push([o,s]):o.reset(r,null)}),R(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 n_e(e){e.registerAction("dataZoom",function(t,r){var n=Kxe(r,t);R(n,function(a){a.setRawRange({start:t.start,end:t.end,startValue:t.startValue,endValue:t.endValue})})})}var a_e=lv();function fP(e){a_e(e,function(){e.registerProcessor(e.PRIORITY.PROCESSOR.FILTER,r_e),n_e(e),e.registerSubTypeDefaulter("dataZoom",function(){return"slider"})})}function i_e(e){e.registerComponentModel(Qxe),e.registerComponentView(e_e),fP(e)}var Eo=function(){function e(){}return e}(),R$={};function Rd(e,t){R$[e]=t}function O$(e){return R$[e]}var o_e=function(e){q(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(){R(this.option.feature,function(r,n){var a=this._themeFeatureOption,i=O$(n);i&&(i.getDefaultOption&&(i.defaultOption=i.getDefaultOption(this.ecModel)),a&&a[n]&&(Je(r,a[n]),a[n]=null),Je(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}(ht);function z$(e,t){var r=mv(t.get("padding")),n=t.getItemStyle(["color","opacity"]);n.fill=t.get("backgroundColor");var a=new it({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 s_e=function(e){q(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=we()),h=[];R(u,function(_,w){h.push(w)}),new $s(this._featureNames||[],h).add(f).update(f).remove(nt(f,null)).execute(),this._featureNames=It(h,function(_){return c.hasKey(_)});function f(_,w){var S=_!=null&&w==null,C=_!=null&&w!=null,M=_==null,A=S||C?h[_]:h[w],k=u[A],I=S||C?new vt(k,r,n):null,P=I&&I.get("show"),j;if(S){if(!P)return;if(l_e(A))j={onclick:I.option.onclick,featureName:A};else{var z=O$(A);if(!z)return;j=new z}c.set(A,j)}else j=c.get(A);if(M||!P){xz(j)&&j.dispose&&j.dispose(n,a),c.removeKey(A);return}i&&i.newTitle!=null&&i.featureName===A&&(k.title=i.newTitle),S&&(j.uid=Oh("toolbox-feature")),j.model=I,j.ecModel=n,j.api=a,v(I,j,A),I.setIconStatus=function(D,B){var H=this.option,V=this.iconPaths;H.iconStatus=H.iconStatus||{},H.iconStatus[D]=B,V[D]&&(B==="emphasis"?Us:Ws)(V[D])},xz(j)&&j.render&&j.render(I,n,a,i)}function v(_,w,S){var C=_.getModel("iconStyle"),M=_.getModel(["emphasis","iconStyle"]),A=w instanceof Eo&&w.getIcons?w.getIcons():_.get("icon"),k=_.get("title")||{},I,P;ve(A)?(I={},I[S]=A):I=A,ve(k)?(P={},P[S]=k):P=k;var j=_.iconPaths={};R(I,function(z,D){var B=pv(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 wt({style:{text:P[D],align:M.get("textAlign"),borderRadius:M.get("textBorderRadius"),padding:M.get("textPadding"),fill:null,font:uL({fontStyle:M.get("textFontStyle"),fontFamily:M.get("textFontFamily"),fontSize:M.get("textFontSize"),fontWeight:M.get("textFontWeight")},n)},ignore:!0});B.setTextContent(V),el({el:B,componentModel:r,itemName:D,formatterParamsExtra:{title:P[D]}}),B.__title=P[D],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",D])!=="emphasis"&&a.leaveEmphasis(this),V.hide()}),(_.get(["iconStatus",D])==="emphasis"?Us:Ws)(B),o.add(B),B.on("click",be(w.onclick,w,n,a,D)),j[D]=B})}var g=Ur(r,a).refContainer,m=r.getBoxLayoutParams(),y=r.get("padding"),x=tr(m,g,y);Gc(r.get("orient"),o,r.get("itemGap"),x.width,x.height),V1(o,m,g,y),o.add(z$(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&&!Le(A)&&w){var k=A.style||(A.style={}),I=S1(w,wt.makeFont(k)),P=_.x+o.x,j=_.y+o.y+s,z=!1;j+I.height>a.getHeight()&&(C.position="top",z=!0);var D=z?-5-I.height:s+10;P+I.width/2>a.getWidth()?(C.position=["100%",D],k.align="right"):P-I.width/2<0&&(C.position=[0,D],k.align="left")}})},t.prototype.updateView=function(r,n,a,i){R(this._features,function(o){o&&o instanceof Eo&&o.updateView&&o.updateView(o.model,n,a,i)})},t.prototype.dispose=function(r,n){R(this._features,function(a){a&&a instanceof Eo&&a.dispose&&a.dispose(r,n)})},t.type="toolbox",t}(Yt);function l_e(e){return e.indexOf("my")===0}function xz(e){return e instanceof Eo}var u_e=function(e){q(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=xt.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 f=l.split(","),v=f[0].indexOf("base64")>-1,g=o?decodeURIComponent(f[1]):f[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='',k=window.open();k.document.write(A),k.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}(Eo),_z="__ec_magicType_stack__",c_e=[["line","bar"],["stack"]],h_e=function(e){q(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 R(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(bz[a]){var s={series:[]},l=function(h){var f=h.subType,v=h.id,g=bz[a](f,v,h,i);g&&(Ee(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(_,pr).models[0],S=w.componentIndex;s[_]=s[_]||[];for(var C=0;C<=S;C++)s[_][S]=s[_][S]||{};s[_][S].boundaryGap=a==="bar"}}};R(c_e,function(h){Ye(h,a)>=0&&R(h,function(f){i.setIconStatus(f,"normal")})}),i.setIconStatus(a,"emphasis"),r.eachComponent({mainType:"series",query:o==null?null:{seriesIndex:o}},l);var u,c=a;a==="stack"&&(u=Je({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}(Eo),bz={line:function(e,t,r,n){if(e==="bar")return Je({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 Je({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")===_z;if(e==="line"||e==="bar")return n.setIconStatus("stack",a?"normal":"emphasis"),Je({id:t,stack:a?"":_z},n.get(["option","stack"])||{},!0)}};Xi({type:"changeMagicType",event:"magicTypeChanged",update:"prepareAndUpdate"},function(e,t){t.mergeOption(e.newOption)});var dw=new Array(60).join("-"),Xf=" ";function d_e(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=Yce(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 f_e(e){var t=[];return R(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()];R(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(Xf)],c=0;c=0)return!0}var tN=new RegExp("["+Xf+"]+","g");function m_e(e){for(var t=e.split(/\n+/g),r=Ob(t.shift()).split(tN),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 S_e(e){var t=vP(e),r=t[t.length-1];t.length>1&&t.pop();var n={};return B$(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 C_e(e){F$(e).snapshots=null}function T_e(e){return vP(e).length}function vP(e){var t=F$(e);return t.snapshots||(t.snapshots=[{}]),t.snapshots}var M_e=function(e){q(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.onclick=function(r,n){C_e(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}(Eo);Xi({type:"restore",event:"restore",update:"prepareAndUpdate"},function(e,t){t.resetOption("recreate")});var A_e=["grid","xAxis","yAxis","geo","graph","polar","radiusAxis","angleAxis","bmap"],pP=function(){function e(t,r,n){var a=this;this._targetInfoList=[];var i=wz(r,t);R(N_e,function(o,s){(!n||!n.include||Ye(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=I2[n.brushType](0,i,a);n.__rangeOffset={offset:Mz[n.brushType](o.values,n.range,[1,1]),xyMinMax:o.xyMinMax}}}),t},e.prototype.matchOutputRanges=function(t,r,n){R(t,function(a){var i=this.findTargetInfo(a,r);i&&i!==!0&&R(i.coordSyses,function(o){var s=I2[a.brushType](1,o,a.range,!0);n(a,s.values,o,r)})},this)},e.prototype.setInputRanges=function(t,r){R(t,function(n){var a=this.findTargetInfo(n,r);if(n.range=n.range||[],a&&a!==!0){n.panelId=a.panelId;var i=I2[n.brushType](0,a.coordSys,n.coordRange),o=n.__rangeOffset;n.range=o?Mz[n.brushType](i.values,o.offset,k_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:$9(a),isTargetByCursor:Y9(a,t,n.coordSysModel),getLinearBrushOtherExtent:Z9(a)}})},e.prototype.controlSeries=function(t,r,n){var a=this.findTargetInfo(t,n);return a===!0||a&&Ye(a.coordSyses,r.coordinateSystem)>=0},e.prototype.findTargetInfo=function(t,r){for(var n=this._targetInfoList,a=wz(r,t),i=0;ie[1]&&e.reverse(),e}function wz(e,t){return ff(e,t,{includeMainTypes:A_e})}var N_e={grid:function(e,t){var r=e.xAxisModels,n=e.yAxisModels,a=e.gridModels,i=we(),o={},s={};!r&&!n&&!a||(R(r,function(l){var u=l.axis.grid.model;i.set(u.id,u),o[u.id]=!0}),R(n,function(l){var u=l.axis.grid.model;i.set(u.id,u),s[u.id]=!0}),R(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=[];R(u.getCartesians(),function(h,f){(Ye(r,h.getAxis("x").model)>=0||Ye(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:Cz.grid,xAxisDeclared:o[l.id],yAxisDeclared:s[l.id]})}))},geo:function(e,t){R(e.geoModels,function(r){var n=r.coordinateSystem;t.push({panelId:"geo--"+r.id,geoModel:r,coordSysModel:r,coordSys:n,coordSyses:[n],getPanelRect:Cz.geo})})}},Sz=[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}],Cz={grid:function(){return this.coordSys.master.getRect().clone()},geo:function(){var e=this.coordSys.view,t=W8(null,e);return fG(t,t,_b(null,e)),t}},I2={lineX:nt(Tz,0),lineY:nt(Tz,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=[rN([a[0],i[0]]),rN([a[1],i[1]])];return{values:o,xyMinMax:o}},polygon:function(e,t,r,n){var a=[gn(),gn()],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 Tz(e,t,r,n){var a=r.getAxis(["x","y"][e]),i=rN(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 Mz={lineX:nt(Az,0),lineY:nt(Az,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 Az(e,t,r,n){return[t[0]-n[e]*r[0],t[1]-n[e]*r[1]]}function k_e(e,t){var r=Nz(e),n=Nz(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 Nz(e){return e?[e[0][1]-e[0][0],e[1][1]-e[1][0]]:[NaN,NaN]}var nN=R,L_e=jte("toolbox-dataZoom_"),I_e={x:"width",y:"height"},P_e=function(e){q(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 zI(a.getZr()),this._brushController.on("brush",be(this._onBrush,this)).mount()),E_e(r,n,this,i,a),j_e(r,n)},t.prototype.onclick=function(r,n,a){D_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 pP(gP(this.model),i,{include:["grid"]});o.matchOutputRanges(n,i,function(u,c,h){if(h.type==="cartesian2d"){var f=h.master.getRect().clone(),v=u.brushType;v==="rect"?(s("x",h,f,c[0]),s("y",h,f,c[1])):s({lineX:"x",lineY:"y"}[v],h,f,c)}}),w_e(i,a),this._dispatchZoomAction(a);function s(u,c,h,f){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)&&(f=uu(0,f.slice(),x,0,y.minValueSpan,y.maxValueSpan));var _=Ok(x,h[I_e[u]],.5);m&&(a[m.id]={dataZoomId:m.id,startValue:isFinite(_)?Mt(f[0],_):f[0],endValue:isFinite(_)?Mt(f[1],_):f[1]})}function l(u,c,h){var f;return h.eachComponent({mainType:"dataZoom",subType:"select"},function(v){var g=v.getAxisModel(u,c.componentIndex);g&&(f=v)}),f}},t.prototype._dispatchZoomAction=function(r){var n=[];nN(r,function(a,i){n.push(ke(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}(Eo),D_e={zoom:function(){var e=!this._isZoomActive;this.api.dispatchAction({type:"takeGlobalCursor",key:"dataZoomSelect",dataZoomSelectActive:e})},back:function(){this._dispatchZoomAction(S_e(this.ecModel))}};function gP(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 j_e(e,t){e.setIconStatus("back",T_e(t)>1?"emphasis":"normal")}function E_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 pP(gP(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)}wae("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=gP(n),o=ff(e,i);nN(o.xAxisModels,function(l){return s(l,"xAxis","xAxisIndex")}),nN(o.yAxisModels,function(l){return s(l,"yAxis","yAxisIndex")});function s(l,u,c){var h=l.componentIndex,f={type:"select",$fromToolbox:!0,filterMode:n.get("filterMode",!0)||"filter",id:L_e+u+h};f[c]=h,a.push(f)}return a});function R_e(e){e.registerComponentModel(o_e),e.registerComponentView(s_e),Rd("saveAsImage",u_e),Rd("magicType",h_e),Rd("dataView",__e),Rd("dataZoom",P_e),Rd("restore",M_e),rt(i_e)}var O_e=function(e){q(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}(ht);function V$(e){var t=e.get("confine");return t!=null?!!t:e.get("renderMode")==="richText"}function G$(e){if(xt.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,f=h*Math.abs(Math.cos(c))+h*Math.abs(Math.sin(c)),v=Math.round(((f-Math.SQRT2*a)/2+Math.SQRT2*a-(f-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 U_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?",":"")+(xt.transformSupported?""+mP+a:",left"+a+",top"+a)),F_e+":"+i}function kz(e,t,r){var n=e.toFixed(0)+"px",a=t.toFixed(0)+"px";if(!xt.transformSupported)return r?"top:"+a+";left:"+n+";":[["top",a],["left",n]];var i=xt.transform3dSupported,o="translate"+(i?"3d":"")+"("+n+","+a+(i?",0":"")+")";return r?"top:0;left:0;"+mP+":"+o+";":[["top",0],["left",0],[H$,o]]}function W_e(e){var t=[],r=e.get("fontSize"),n=e.getTextColor();n&&t.push("color:"+n),t.push("font:"+e.getFont());var a=Te(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),R(["decoration","align"],function(u){var c=e.get(u);c&&t.push("text-"+u+":"+c)}),t.join(";")}function $_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"),f=QH(e,"html"),v=u+"px "+c+"px "+s+"px "+l;return a.push("box-shadow:"+v),t&&i>0&&a.push(U_e(i,r,n)),o&&a.push("background-color:"+o),R(["width","color","radius"],function(g){var m="border-"+g,y=wL(m),x=e.get(y);x!=null&&a.push(m+":"+x+(g==="color"?"":"px"))}),a.push(W_e(h)),f!=null&&a.push("padding:"+mv(f).join("px ")+"px"),a.join(";")+";"}function Lz(e,t,r,n,a){var i=t&&t.painter;if(r){var o=i&&i.getViewportRoot();o&&YQ(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 Z_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,xt.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&&(ve(i)?document.querySelector(i):Qc(i)?i:Le(i)&&i(t.getDom()));Lz(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();Ja(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=B_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=V_e+$_e(t,!this._firstShow,this._longHide,this._enableDisplayTransition)+kz(i[0],i[1],!0)+("border-color:"+uh(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(ve(i)&&n.get("trigger")==="item"&&!V$(n)&&(s=H_e(n,a,i)),ve(t))o.innerHTML=t+s;else if(t){o.innerHTML="",ae(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||xt.node||!a.getDom())){var o=Dz(i,a);this._ticket="";var s=i.dataByCoordSys,l=ebe(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=X_e;c.x=i.x,c.y=i.y,c.update(),Be(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=T$(i,n),f=h.point[0],v=h.point[1];f!=null&&v!=null&&this._tryShow({offsetX:f,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(Dz(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=Sp([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=Be(a);if(s.ssrType==="legend")return;this._lastDataByCoordSys=null,this._cbParamsList=null;var l,u;Dc(a,function(c){if(c.tooltipDisabled)return l=u=null,!0;l||u||(Be(c).dataIndex!=null?l=c:Be(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=be(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=Sp([n.tooltipOption],i),l=this._renderMode,u=[],c=Er("section",{blocks:[],noHeader:!0}),h=[],f=new sC;R(r,function(_){R(_.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 k=b$(C,M,a,w.seriesDataIndices,w.valueLabelOpt),I=Er("section",{header:k,noHeader:!La(k),sortBlocks:!0,blocks:[]});c.blocks.push(I),R(w.seriesDataIndices,function(P){var j=a.getSeriesByIndex(P.seriesIndex),z=P.dataIndexInside,D=j.getDataParams(z);if(!(D.dataIndex<0)){D.axisDim=w.axisDim,D.axisIndex=w.axisIndex,D.axisType=w.axisType,D.axisId=w.axisId,D.axisValue=ob(S.axis,{value:A}),D.axisValueLabel=k,D.marker=f.makeTooltipMarker("item",uh(D.color),l);var B=FR(j.formatTooltip(z,!0,null)),H=B.frag;if(H){var V=Sp([j],i).get("valueFormatter");I.blocks.push(V?te({valueFormatter:V},H):H)}B.text&&h.push(B.text),u.push(D)}})}})}),c.blocks.reverse(),h.reverse();var v=n.position,g=s.get("order"),m=$R(c,f,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,f)})},t.prototype._showSeriesItemTooltip=function(r,n,a){var i=this._ecModel,o=Be(n),s=o.seriesIndex,l=i.getSeriesByIndex(s),u=o.dataModel||l,c=o.dataIndex,h=o.dataType,f=u.getData(h),v=this._renderMode,g=r.positionDefault,m=Sp([f.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",uh(x.color),v);var w=FR(u.formatTooltip(c,!1,h)),S=m.get("order"),C=m.get("valueFormatter"),M=w.frag,A=M?$R(C?te({valueFormatter:C},M):M,_,v,S,i.get("useUTC"),m.get("textStyle")):w.text,k="item_"+u.name+"_"+c;this._showOrMove(m,function(){this._showTooltipContent(m,A,x,k,r.offsetX,r.offsetY,r.position,r.target,_)}),a({type:"showTip",dataIndexInside:c,dataIndex:f.getRawIndex(c),seriesIndex:s,from:this.uid})}},t.prototype._showComponentItemTooltip=function(r,n,a){var i=this._renderMode==="html",o=Be(n),s=o.tooltipConfig,l=s.option||{},u=l.encodeHTMLContent;if(ve(l)){var c=l;l={content:c,formatter:c},u=!0}u&&i&&l.content&&(l=ke(l),l.content=On(l.content));var h=[l],f=this._ecModel.getComponent(o.componentMainType,o.componentIndex);f&&h.push(f),h.push({formatter:l.content});var v=r.positionDefault,g=Sp(h,this._tooltipModel,v?{position:v}:null),m=g.get("content"),y=Math.random()+"",x=new sC;this._showOrMove(g,function(){var _=ke(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 f=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(f)if(ve(f)){var y=r.ecModel.get("useUTC"),x=ae(a)?a[0]:a,_=x&&x.axisType&&x.axisType.indexOf("time")>=0;v=f,_&&(v=Zm(x.axisValue,v,y)),v=SL(v,a,!0)}else if(Le(f)){var w=be(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=f(a,i,w)}else v=f;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"||ae(n))return{color:i||o};if(!ae(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(),f=r.get("align"),v=r.get("verticalAlign"),g=l&&l.getBoundingRect().clone();if(l&&g.applyTransform(l.transform),Le(n)&&(n=n([a,i],s,o.el,g,{viewSize:[u,c],contentSize:h.slice()})),ae(n))a=me(n[0],u),i=me(n[1],c);else if(Re(n)){var m=n;m.width=h[0],m.height=h[1];var y=tr(m,{width:u,height:c});a=y.x,i=y.y,f=null,v=null}else if(ve(n)&&l){var x=Q_e(n,g,h,r.get("borderWidth"));a=x[0],i=x[1]}else{var x=K_e(a,i,o,u,c,f?null:20,v?null:20);a=x[0],i=x[1]}if(f&&(a-=jz(f)?h[0]/2:f==="right"?h[0]:0),v&&(i-=jz(v)?h[1]/2:v==="bottom"?h[1]:0),V$(r)){var x=J_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&&R(a,function(s,l){var u=s.dataByAxis||[],c=r[l]||{},h=c.dataByAxis||[];o=o&&u.length===h.length,o&&R(u,function(f,v){var g=h[v]||{},m=f.seriesDataIndices||[],y=g.seriesDataIndices||[];o=o&&f.value===g.value&&f.axisType===g.axisType&&f.axisId===g.axisId&&m.length===y.length,o&&R(m,function(x,_){var w=y[_];o=o&&x.seriesIndex===w.seriesIndex&&x.dataIndex===w.dataIndex}),i&&R(f.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){xt.node||!n.getDom()||(rm(this,"_updatePosition"),this._tooltipContent.dispose(),XA("itemTooltip",n),this._tooltipContent=null,this._tooltipModel=null,this._lastDataByCoordSys=null,this._cbParamsList=null)},t.type="tooltip",t}(Yt);function Sp(e,t,r){var n=t.ecModel,a;r?(a=new vt(r,n,n),a=new vt(t.option,a,n)):a=t;for(var i=e.length-1;i>=0;i--){var o=e[i];o&&(o instanceof vt&&(o=o.get("tooltip",!0)),ve(o)&&(o={formatter:o}),o&&(a=new vt(o,a,n)))}return a}function Dz(e,t){return e.dispatchAction||be(t.dispatchAction,t)}function K_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 J_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 Q_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 jz(e){return e==="center"||e==="middle"}function ebe(e,t,r){var n=Hk(e).queryOptionMap,a=n.keys()[0];if(!(!a||a==="series")){var i=sv(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=Be(u).tooltipConfig;if(c&&c.name===e.name)return l=u,!0}),l)return{componentMainType:a,componentIndex:o.componentIndex,el:l}}}}function tbe(e){rt(iy),e.registerComponentModel(O_e),e.registerComponentView(q_e),e.registerAction({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},hr),e.registerAction({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},hr)}var rbe=["rect","polygon","keep","clear"];function nbe(e,t){var r=Zt(e?e.brush:[]);if(r.length){var n=[];R(r,function(l){var u=l.hasOwnProperty("toolbox")?l.toolbox:[];u instanceof Array&&(n=n.concat(u))});var a=e&&e.toolbox;ae(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),N1(s,function(l){return l+""},null),t&&!s.length&&s.push.apply(s,rbe)}}var Ez=R;function Rz(e){if(e){for(var t in e)if(e.hasOwnProperty(t))return!0}}function aN(e,t,r){var n={};return Ez(t,function(i){var o=n[i]=a();Ez(e[i],function(s,l){if(Kr.isValidType(l)){var u={type:l,visual:s};r&&r(u,i),o[l]=new Kr(u),l==="opacity"&&(u=ke(u),u.type="colorAlpha",o.__hidden.__alphaForOpacity=new Kr(u))}})}),n;function a(){var i=function(){};i.prototype.__hidden=i.prototype;var o=new i;return o}}function W$(e,t,r){var n;R(r,function(a){t.hasOwnProperty(a)&&Rz(t[a])&&(n=!0)}),n&&R(r,function(a){t.hasOwnProperty(a)&&Rz(t[a])?e[a]=ke(t[a]):delete e[a]})}function abe(e,t,r,n,a,i){var o={};R(e,function(h){var f=Kr.prepareVisualTypes(t[h]);o[h]=f});var s;function l(h){return DL(r,s,h)}function u(h,f){uU(r,s,h,f)}r.each(c);function c(h,f){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 ibe(e,t,r,n){var a={};return R(e,function(i){var o=Kr.prepareVisualTypes(t[i]);a[i]=o}),{progress:function(o,s){var l;n!=null&&(l=s.getDimensionIndex(n));function u(C){return DL(s,h,C)}function c(C,M){uU(s,h,C,M)}for(var h,f=s.getStore();(h=o.next())!=null;){var v=s.getRawDataItem(h);if(!(v&&v.visualMap===!1))for(var g=n!=null?f.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&&Vz(t)}};function Vz(e){return new je(e[0][0],e[1][0],e[0][1]-e[0][0],e[1][1]-e[1][0])}var fbe=function(e){q(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 zI(n.getZr())).on("brush",be(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){$$(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:ke(a),$from:n}),r.isEnd&&this.api.dispatchAction({type:"brushEnd",brushId:n,areas:ke(a),$from:n})},t.type="brush",t}(Yt),vbe=function(e){q(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&&W$(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 Gz(this.option,n)},this))},t.prototype.setBrushOption=function(r){this.brushOption=Gz(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}(ht);function Gz(e,t){return Je({brushType:e.brushType,brushMode:e.brushMode,transformable:e.transformable,brushStyle:new vt(e.brushStyle).getItemStyle(),removeOnClick:e.removeOnClick,z:e.z},t,!0)}var pbe=["rect","polygon","lineX","lineY","keep","clear"],gbe=function(e){q(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,R(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 R(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:pbe.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}(Eo);function mbe(e){e.registerComponentView(fbe),e.registerComponentModel(vbe),e.registerPreprocessor(nbe),e.registerVisual(e.PRIORITY.VISUAL.BRUSH,sbe),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"},hr),e.registerAction({type:"brushEnd",event:"brushEnd",update:"none"},hr),Rd("brush",gbe)}var ybe=function(e){q(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}(ht),xbe=function(e){q(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=Te(r.get("textBaseline"),r.get("textVerticalAlign")),c=new wt({style:$t(o,{text:r.get("text"),fill:o.getTextColor()},{disableBox:!0}),z2:10}),h=c.getBoundingRect(),f=r.get("subtext"),v=new wt({style:$t(s,{text:f,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(){Z_(g,"_"+r.get("target"))}),m&&v.on("click",function(){Z_(m,"_"+r.get("subtarget"))}),Be(c).eventData=Be(v).eventData=y?{componentType:"title",componentIndex:r.componentIndex}:null,i.add(c),f&&i.add(v);var x=i.getBoundingRect(),_=r.getBoxLayoutParams();_.width=x.width,_.height=x.height;var w=Ur(r,a),S=tr(_,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 k=new it({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(k)}},t.type="title",t}(Yt);function _be(e){e.registerComponentModel(ybe),e.registerComponentView(xbe)}var Hz=function(e){q(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=[],R(n,function(u,c){var h=Fr(ov(u),""),f;Re(u)?(f=ke(u),f.value=c):f=c,o.push(f),i.push(h)})):o=n;var s={category:"ordinal",time:"time",value:"number"}[a]||"number",l=this._data=new Fn([{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}(ht),Z$=function(e){q(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=Cu(Hz.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}(Hz);kr(Z$,H1.prototype);var bbe=function(e){q(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type="timeline",t}(Yt),wbe=function(e){q(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}(Ci),D2=Math.PI,Uz=Qe(),Sbe=function(e){q(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 Er("nameValue",{noName:!0,value:c})},R(["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=Cbe(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:D2/2},h=i==="vertical"?o.height:o.width,f=r.getModel("controlStyle"),v=f.get("show",!0),g=v?f.get("itemSize"):0,m=v?f.get("itemGap"):0,y=g+m,x=r.get(["label","rotate"])||0;x=x*D2/180;var _,w,S,C=f.get("position",!0),M=v&&f.get("showPlayBtn",!0),A=v&&f.get("showPrevBtn",!0),k=v&&f.get("showNextBtn",!0),I=0,P=h;C==="left"||C==="bottom"?(M&&(_=[0,0],I+=y),A&&(w=[I,0],I+=y),k&&(S=[P-g,0],P-=y)):(M&&(_=[P-g,0],P-=y),A&&(w=[0,0],I+=y),k&&(S=[P-g,0],P-=y));var j=[I,P];return r.get("inverse")&&j.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:j,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=ar(),l=o.x,u=o.y+o.height;Hi(s,s,[-l,-u]),Js(s,s,-D2/2),Hi(s,s,[l,u]),o=o.clone(),o.applyTransform(s)}var c=_(o),h=_(a.getBoundingRect()),f=_(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||ve(m)){var y=m==="+"?0:1;w(v,h,c,1,y),w(g,f,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,k){S[A]+=M[A][k]-C[A][k]}},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=Sv(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]),dW(o,{fixMinMax:[!0,!0]});var l=new wbe("value",o,r.axisExtent,i);return l.model=n,l},t.prototype._createGroup=function(r){var n=this[r]=new De;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 Tr({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 Tr({shape:{x1:o[0],x2:this._currentPointer?this._currentPointer.x:o[0],y1:0,y2:0},style:Ee({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=[],R(l,function(u){var c=a.dataToCoord(u.value),h=s.getItemModel(u.value),f=h.getModel("itemStyle"),v=h.getModel(["emphasis","itemStyle"]),g=h.getModel(["progress","itemStyle"]),m={x:c,y:0,onclick:be(o._changeTimeline,o,u.value)},y=Wz(h,f,n,m);y.ensureState("emphasis").style=v.getItemStyle(),y.ensureState("progress").style=g.getItemStyle(),ql(y);var x=Be(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=[],R(u,function(c){if(!c.tick.offInterval){var h=c.tick.value,f=l.getItemModel(h),v=f.getModel("label"),g=f.getModel(["emphasis","label"]),m=f.getModel(["progress","label"]),y=a.dataToCoord(h),x=new wt({x:y,y:0,rotation:r.labelRotation-r.rotation,onclick:be(o._changeTimeline,o,h),silent:!1,style:$t(v,{text:c.formattedLabel,align:r.labelAlign,verticalAlign:r.labelBaseline})});x.ensureState("emphasis").style=$t(g),x.ensureState("progress").style=$t(m),n.add(x),ql(x),Uz(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);f(r.nextBtnPosition,"next",be(this._changeTimeline,this,h?"-":"+")),f(r.prevBtnPosition,"prev",be(this._changeTimeline,this,h?"+":"-")),f(r.playPosition,c?"stop":"play",be(this._handlePlayClick,this,!c),!0);function f(v,g,m,y){if(v){var x=Bo(Te(i.get(["controlStyle",g+"BtnSize"]),o),o),_=[0,-x/2,x,x],w=Tbe(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),ql(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=be(u._handlePointerDrag,u),h.ondragend=be(u._handlePointerDragend,u),$z(h,u._progressLine,s,a,i,!0)},onUpdate:function(h){$z(h,u._progressLine,s,a,i)}};this._currentPointer=Wz(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=on(i.getExtent().slice());a>o[1]&&(a=o[1]),a=0&&(s[o]=+s[o].toFixed(g)),[s,v]}var ax={min:nt(nx,"min"),max:nt(nx,"max"),average:nt(nx,"average"),median:nt(nx,"median")};function Am(e,t){if(t){var r=e.getData(),n=e.coordinateSystem,a=n&&n.dimensions;if(!Ibe(t)&&!ae(t.coord)&&ae(a)){var i=Y$(t,r,n,e);if(t=ke(t),t.type&&ax[t.type]&&i.baseAxis&&i.valueAxis){var o=Ye(a,i.baseAxis.dim),s=Ye(a,i.valueAxis.dim),l=ax[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||!ae(a)){t.coord=[];var u=e.getBaseAxis();if(u&&t.type&&ax[t.type]){var c=n.getOtherAxis(u);c&&(t.value=zb(r,r.mapDimension(c.dim),t.type))}}else for(var h=t.coord,f=0;f<2;f++)ax[h[f]]&&(h[f]=zb(r,r.mapDimension(a[f]),h[f]));return t}}function Y$(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(Pbe(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 Pbe(e,t){var r=e.getData().getDimensionInfo(t);return r&&r.coordDim}function Nm(e,t){return e&&e.containData&&t.coord&&!oN(t)?e.containData(t.coord):!0}function Dbe(e,t,r){return e&&e.containZone&&t.coord&&r.coord&&!oN(t)&&!oN(r)?e.containZone(t.coord,r.coord):!0}function X$(e,t){return e?function(r,n,a,i){var o=i<2?r.coord&&r.coord[i]:r.value;return Kl(o,t[i])}:function(r,n,a,i){return Kl(r.value,t[i])}}function zb(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 j2=Qe(),xP=function(e){q(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=we()},t.prototype.render=function(r,n,a){var i=this,o=this.markerGroupMap;o.each(function(s){j2(s).keep=!1}),n.eachSeries(function(s){var l=Zo.getMarkerModelFromSeries(s,i.type);l&&i.renderSeries(s,l,n,a)}),o.each(function(s){!j2(s).keep&&i.group.remove(s.group)}),jbe(n,o,this.type)},t.prototype.markKeep=function(r){j2(r).keep=!0},t.prototype.toggleBlurSeries=function(r,n){var a=this;R(r,function(i){var o=Zo.getMarkerModelFromSeries(i,a.type);if(o){var s=o.getData();s.eachItemGraphicEl(function(l){l&&(n?S7(l):Jk(l))})}})},t.type="marker",t}(Yt);function jbe(e,t,r){e.eachSeries(function(n){var a=Zo.getMarkerModelFromSeries(n,r),i=t.get(n.id);if(a&&i&&i.group){var o=lh(a),s=o.z,l=o.zlevel;z1(i.group,s,l)}})}function Yz(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,f=u&&o?o.x:0,v=u&&o?o.y:0,g,m=me(l.get("x"),c)+f,y=me(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 Ebe=function(e){q(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=Zo.getMarkerModelFromSeries(i,"markPoint");o&&(Yz(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 ty),h=Rbe(o,r,n);n.setData(h),Yz(n.getData(),r,i),h.each(function(f){var v=h.getItemModel(f),g=v.getShallow("symbol"),m=v.getShallow("symbolSize"),y=v.getShallow("symbolRotate"),x=v.getShallow("symbolOffset"),_=v.getShallow("symbolKeepAspect");if(Le(g)||Le(m)||Le(y)||Le(x)){var w=n.getRawValue(f),S=n.getDataParams(f);Le(g)&&(g=g(w,S)),Le(m)&&(m=m(w,S)),Le(y)&&(y=y(w,S)),Le(x)&&(x=x(w,S))}var C=v.getModel("itemStyle").getItemStyle(),M=v.get("z2"),A=Xm(l,"color");C.fill||(C.fill=A),h.setItemVisual(f,{z2:Te(M,0),symbol:g,symbolSize:m,symbolRotate:y,symbolOffset:x,symbolKeepAspect:_,style:C})}),c.updateData(h),this.group.add(c.group),h.eachItemGraphicEl(function(f){f.traverse(function(v){Be(v).dataModel=n})}),this.markKeep(c),c.group.silent=n.get("silent")||r.get("silent")},t.type="markPoint",t}(xP);function Rbe(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 Fn(n,r),i=oe(r.get("data"),nt(Am,t));e&&(i=It(i,nt(Nm,e)));var o=X$(!!e,n);return a.initData(i,null,o),a}function Obe(e){e.registerComponentModel(Lbe),e.registerComponentView(Ebe),e.registerPreprocessor(function(t){yP(t.series,"markPoint")&&(t.markPoint=t.markPoint||{})})}var zbe=function(e){q(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}(Zo),ix=Qe(),Bbe=function(e,t,r,n){var a=e.getData(),i;if(ae(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=zn(n.yAxis,n.xAxis);else{var u=Y$(n,a,t,e);s=u.valueAxis;var c=ZL(a,u.valueDataDim);l=zb(a,c,o)}var h=s.dim==="x"?0:1,f=1-h,v=ke(n),g={coord:[]};v.type=null,v.coord=[],v.coord[f]=-1/0,g.coord[f]=1/0;var m=r.get("precision");m>=0&&Tt(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=[Am(e,i[0]),Am(e,i[1]),te({},i[2])];return y[2].type=y[2].type||null,Je(y[2],y[0]),Je(y[2],y[1]),y};function Bb(e){return!isNaN(e)&&!isFinite(e)}function Xz(e,t,r,n){var a=1-e,i=n.dimensions[e];return Bb(t[a])&&Bb(r[a])&&t[e]===r[e]&&n.getAxis(i).containData(t[e])}function Fbe(e,t){if(e.type==="cartesian2d"){var r=t[0].coord,n=t[1].coord;if(r&&n&&(Xz(1,r,n,e)||Xz(0,r,n,e)))return!0}return Nm(e,t[0])&&Nm(e,t[1])}function E2(e,t,r,n,a){var i=n.coordinateSystem,o=e.getItemModel(t),s,l=me(o.get("x"),a.getWidth()),u=me(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),f=e.get(c[1],t);s=i.dataToPoint([h,f])}if(ph(i,"cartesian2d")){var v=i.getAxis("x"),g=i.getAxis("y"),c=i.dimensions;Bb(e.get(c[0],t))?s[0]=v.toGlobalCoord(v.getExtent()[r?0:1]):Bb(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 Vbe=function(e){q(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=Zo.getMarkerModelFromSeries(i,"markLine");if(o){var s=o.getData(),l=ix(o).from,u=ix(o).to;l.each(function(c){E2(l,c,!0,i,a),E2(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 OI);this.group.add(c.group);var h=Gbe(o,r,n),f=h.from,v=h.to,g=h.line;ix(n).from=f,ix(n).to=v,n.setData(g);var m=n.get("symbol"),y=n.get("symbolSize"),x=n.get("symbolRotate"),_=n.get("symbolOffset");ae(m)||(m=[m,m]),ae(y)||(y=[y,y]),ae(x)||(x=[x,x]),ae(_)||(_=[_,_]),h.from.each(function(S){w(f,S,!0),w(v,S,!1)}),g.each(function(S){var C=g.getItemModel(S),M=C.getModel("lineStyle").getLineStyle();g.setItemLayout(S,[f.getItemLayout(S),v.getItemLayout(S)]);var A=C.get("z2");M.stroke==null&&(M.stroke=f.getItemVisual(S,"style").fill),g.setItemVisual(S,{z2:Te(A,0),fromSymbolKeepAspect:f.getItemVisual(S,"symbolKeepAspect"),fromSymbolOffset:f.getItemVisual(S,"symbolOffset"),fromSymbolRotate:f.getItemVisual(S,"symbolRotate"),fromSymbolSize:f.getItemVisual(S,"symbolSize"),fromSymbol:f.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){Be(S).dataModel=n,S.traverse(function(C){Be(C).dataModel=n})});function w(S,C,M){var A=S.getItemModel(C);E2(S,C,M,r,i);var k=A.getModel("itemStyle").getItemStyle();k.fill==null&&(k.fill=Xm(l,"color")),S.setItemVisual(C,{symbolKeepAspect:A.get("symbolKeepAspect"),symbolOffset:Te(A.get("symbolOffset",!0),_[M?0:1]),symbolRotate:Te(A.get("symbolRotate",!0),x[M?0:1]),symbolSize:Te(A.get("symbolSize"),y[M?0:1]),symbol:Te(A.get("symbol",!0),m[M?0:1]),style:k})}this.markKeep(c),c.group.silent=n.get("silent")||r.get("silent")},t.type="markLine",t}(xP);function Gbe(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 Fn(n,r),i=new Fn(n,r),o=new Fn([],r),s=oe(r.get("data"),nt(Bbe,t,e,r));e&&(s=It(s,nt(Fbe,e)));var l=X$(!!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 Hbe(e){e.registerComponentModel(zbe),e.registerComponentView(Vbe),e.registerPreprocessor(function(t){yP(t.series,"markLine")&&(t.markLine=t.markLine||{})})}var Ube=function(e){q(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}(Zo),ox=Qe(),Wbe=function(e,t,r,n){var a=n[0],i=n[1];if(!(!a||!i)){var o=Am(e,a),s=Am(e,i),l=o.coord,u=s.coord;l[0]=zn(l[0],-1/0),l[1]=zn(l[1],-1/0),u[0]=zn(u[0],1/0),u[1]=zn(u[1],1/0);var c=y1([{},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 Fb(e){return!isNaN(e)&&!isFinite(e)}function qz(e,t,r,n){var a=1-e;return Fb(t[a])&&Fb(r[a])}function $be(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 ph(e,"cartesian2d")?r&&n&&(qz(1,r,n)||qz(0,r,n))?!0:Dbe(e,a,i):Nm(e,a)||Nm(e,i)}function Kz(e,t,r,n,a){var i=n.coordinateSystem,o=e.getItemModel(t),s,l=me(o.get(r[0]),a.getWidth()),u=me(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),f=i.clampData(c),v=i.clampData(h),g=[];r[0]==="x0"?g[0]=f[0]>v[0]?h[0]:c[0]:g[0]=f[0]>v[0]?c[0]:h[0],r[1]==="y0"?g[1]=f[1]>v[1]?h[1]:c[1]:g[1]=f[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(ph(i,"cartesian2d")){var _=i.getAxis("x"),w=i.getAxis("y"),m=e.get(r[0],t),y=e.get(r[1],t);Fb(m)?s[0]=_.toGlobalCoord(_.getExtent()[r[0]==="x0"?0:1]):Fb(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 Jz=[["x0","y0"],["x1","y0"],["x1","y1"],["x0","y1"]],Zbe=function(e){q(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=Zo.getMarkerModelFromSeries(i,"markArea");if(o){var s=o.getData();s.each(function(l){var u=oe(Jz,function(h){return Kz(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 De});this.group.add(c.group),this.markKeep(c);var h=Ybe(o,r,n);n.setData(h),h.each(function(f){var v=oe(Jz,function(P){return Kz(h,f,P,r,i)}),g=o.getAxis("x").scale,m=o.getAxis("y").scale,y=g.getExtent(),x=m.getExtent(),_=[g.parse(h.get("x0",f)),g.parse(h.get("x1",f))],w=[m.parse(h.get("y0",f)),m.parse(h.get("y1",f))];on(_),on(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}(ht),Ad=nt,lN=R,sx=De,q$=function(e){q(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 sx),this.group.add(this._selectorGroup=new sx),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=Ur(r,a).refContainer,h=r.getBoxLayoutParams(),f=r.get("padding"),v=tr(h,c,f),g=this.layoutInner(r,o,v,i,l,u),m=tr(Ee({width:g.width,height:g.height},h),c,f);this.group.x=m.x-g.x,this.group.y=m.y-g.y,this.group.markRedraw(),this.group.add(this._backgroundEl=z$(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=we(),h=n.get("selectedMode"),f=n.get("triggerEvent"),v=[];a.eachRawSeries(function(g){!g.get("legendHoverLink")&&v.push(g.id)}),lN(n.getData(),function(g,m){var y=this,x=g.get("name");if(!this.newlineDisabled&&(x===""||x===` -`)){var _=new sx;_.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"),k=this._createItem(w,x,m,g,n,r,C,A,M,h,i);k.on("click",Ad(Qz,x,null,i,v)).on("mouseover",Ad(uN,w.name,null,i,v)).on("mouseout",Ad(cN,w.name,null,i,v)),a.ssr&&k.eachChild(function(I){var P=Be(I);P.seriesIndex=w.seriesIndex,P.dataIndex=m,P.ssrType="legend"}),f&&k.eachChild(function(I){y.packEventData(I,n,w,m,x)}),c.set(x,!0)}else a.eachRawSeries(function(I){var P=this;if(!c.get(x)&&I.legendVisualProvider){var j=I.legendVisualProvider;if(!j.containName(x))return;var z=j.indexOfName(x),D=j.getItemVisual(z,"style"),B=j.getItemVisual(z,"legendIcon"),H=Bn(D.fill);H&&H[3]===0&&(H[3]=.2,D=te(te({},D),{fill:ci(H,"rgba")}));var V=this._createItem(I,x,m,g,n,r,{},D,B,h,i);V.on("click",Ad(Qz,null,x,i,v)).on("mouseover",Ad(uN,null,x,i,v)).on("mouseout",Ad(cN,null,x,i,v)),a.ssr&&V.eachChild(function(U){var F=Be(U);F.seriesIndex=I.seriesIndex,F.dataIndex=m,F.ssrType="legend"}),f&&V.eachChild(function(U){P.packEventData(U,n,I,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};Be(r).eventData=s},t.prototype._createSelector=function(r,n,a,i,o){var s=this.getSelectorGroup();lN(r,function(u){var c=u.type,h=new wt({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 f=n.getModel("selectorLabel"),v=n.getModel(["emphasis","selectorLabel"]);Jr(h,{normal:f,emphasis:v},{defaultText:u.title}),ql(h)})},t.prototype._createItem=function(r,n,a,i,o,s,l,u,c,h,f){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=Kbe(c,i,l,u,v,y,f),C=new sx,M=i.getModel("textStyle");if(Le(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(Jbe({itemWidth:g,itemHeight:m,icon:c,iconRotate:A,itemStyle:S.itemStyle,symbolKeepAspect:_}))}var k=s==="left"?g+5:-5,I=s,P=o.get("formatter"),j=n;ve(P)&&P?j=P.replace("{name}",n??""):Le(P)&&(j=P(n));var z=y?M.getTextColor():i.get("inactiveColor");C.add(new wt({style:$t(M,{text:j,x:k,y:m/2,fill:z,align:I,verticalAlign:"middle"},{inheritColor:z})}));var D=new it({shape:C.getBoundingRect(),style:{fill:"transparent"}}),B=i.getModel("tooltip");return B.get("show")&&el({el:D,componentModel:o,itemName:n,itemTooltipOption:B.option}),C.add(D),C.eachChild(function(H){H.silent=!0}),D.silent=!h,this.getContentGroup().add(C),ql(C),C.__legendDataIndex=a,C},t.prototype.layoutInner=function(r,n,a,i,o,s){var l=this.getContentGroup(),u=this.getSelectorGroup();Gc(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){Gc("horizontal",u,r.get("selectorItemGap",!0));var f=u.getBoundingRect(),v=[-f.x,-f.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]+=f[y]+g,v[1-m]+=c[x]/2-f[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+f[y],w[x]=Math.max(c[x],f[x]),w[_]=Math.min(0,f[_]+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}(Yt);function Kbe(e,t,r,n,a,i,o){function s(y,x){y.lineWidth==="auto"&&(y.lineWidth=x.lineWidth>0?2:0),lN(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:zf(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 f=t.getModel("lineStyle"),v=f.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=f.get("inactiveColor"),v.lineWidth=f.get("inactiveWidth")}return{itemStyle:u,lineStyle:v}}function Jbe(e){var t=e.icon||"roundRect",r=Ar(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 Qz(e,t,r,n){cN(e,t,r,n),r.dispatchAction({type:"legendToggleSelect",name:e??t}),uN(e,t,r,n)}function uN(e,t,r,n){r.usingTHL()||r.dispatchAction({type:"highlight",seriesName:e,name:t,excludeSeriesId:n})}function cN(e,t,r,n){r.usingTHL()||r.dispatchAction({type:"downplay",seriesName:e,name:t,excludeSeriesId:n})}function Tp(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),eB(s,a),i.push(s.componentIndex)});var o={};return r.eachComponent("legend",function(s){R(a,function(l,u){s[l?"select":"unSelect"](u)}),eB(s,o)}),n?{selected:o,legendIndex:i}:{name:t.name,selected:o}}function eB(e,t){var r=t||{};return R(e.getData(),function(n){var a=n.get("name");if(!(a===` -`||a==="")){var i=e.isSelected(a);Se(r,a)?r[a]=r[a]&&i:r[a]=i}}),r}function Qbe(e){e.registerAction("legendToggleSelect","legendselectchanged",nt(Tp,"toggleSelected")),e.registerAction("legendAllSelect","legendselectall",nt(Tp,"allSelect")),e.registerAction("legendInverseSelect","legendinverseselect",nt(Tp,"inverseSelect")),e.registerAction("legendSelect","legendselected",nt(Tp,"select")),e.registerAction("legendUnSelect","legendunselected",nt(Tp,"unSelect"))}var e1e=Vm(t1e);function t1e(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=Te(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),f.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 it({shape:M})),h.__rectSize=M[o]}else f.eachChild(function(k){k.attr({invisible:!0,silent:!0})});var A=this._getPageInfo(r);return A.pageIndex!=null&&At(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;R(["pagePrev","pageNext"],function(c){var h=c+"DataIndex",f=n[h]!=null,v=a.childOfName(c);v&&(v.setStyle("fill",f?r.get("pageIconColor",!0):r.get("pageIconInactiveColor",!0)),v.cursor=f?"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",ve(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=R2[o],l=O2[o],u=this._findTargetItemIndex(n),c=a.children(),h=c[u],f=c.length,v=f?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<=f;++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(),k=A[l]+M[l];return{s:k,e:k+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}(q$);function a1e(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 i1e(e){rt(K$),e.registerComponentModel(r1e),e.registerComponentView(n1e),a1e(e)}function o1e(e){rt(K$),rt(i1e)}var s1e=function(e){q(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=Cu(Mm.defaultOption,{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}),t}(Mm),_P=Qe();function l1e(e,t,r){_P(e).coordSysRecordMap.each(function(n){var a=n.dataZoomInfoMap.get(t.uid);a&&(a.getRange=r)})}function u1e(e,t){for(var r=_P(e).coordSysRecordMap,n=r.keys(),a=0;ai[a+n]&&(n=h),o=o&&c.get("preventDefaultMouseMove",!0),s=Te(c.get("cursorGrab",!0),s),l=Te(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 v1e(e){e.registerUpdateLifecycle("coordsys:aftercreate",function(t,r){var n=_P(r),a=n.coordSysRecordMap||(n.coordSysRecordMap=we());a.each(function(i){i.dataZoomInfoMap=null}),t.eachComponent({mainType:"dataZoom",subType:"inside"},function(i){var o=D$(i);R(o.infoList,function(s){var l=s.model.uid,u=a.get(l)||a.set(l,c1e(r,s.model)),c=u.dataZoomInfoMap||(u.dataZoomInfoMap=we());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){J$(a,i);return}var c=f1e(l,i,r);o.enable(c.controlType,c.opt),xv(i,"dispatchAction",s.model.get("throttle",!0),"fixRate")})})}var p1e=function(e){q(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(),l1e(a,r,{pan:be(z2.pan,this),zoom:be(z2.zoom,this),scrollMove:be(z2.scrollMove,this)})},t.prototype.dispose=function(){this._clear(),e.prototype.dispose.apply(this,arguments)},t.prototype._clear=function(){u1e(this.api,this.dataZoomModel),this.range=null},t.type="dataZoom.inside",t}(dP),z2={zoom:function(e,t,r,n){var a=this.range,i=a.slice(),o=e.axisModels[0];if(o){var s=B2[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(uu(0,i,[0,100],0,c.minSpan,c.maxSpan),this.range=i,a[0]!==i[0]||a[1]!==i[1])return i}},pan:nB(function(e,t,r,n,a,i){var o=B2[n]([i.oldX,i.oldY],[i.newX,i.newY],t,a,r);return o.signal*(e[1]-e[0])*o.pixel/o.pixelLength}),scrollMove:nB(function(e,t,r,n,a,i){var o=B2[n]([0,0],[i.scrollDelta,i.scrollDelta],t,a,r);return o.signal*(e[1]-e[0])*i.scrollDelta})};function nB(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(uu(l,o,[0,100],"all"),this.range=o,i[0]!==o[0]||i[1]!==o[1])return o}}}var B2={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 Q$(e){fP(e),e.registerComponentModel(s1e),e.registerComponentView(p1e),v1e(e)}var g1e=function(e){q(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=Cu(Mm.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}(Mm),Mp=it,m1e=1,F2=30,y1e=7,Ap="horizontal",aB="vertical",x1e=5,_1e=["line","bar","candlestick","scatter"],b1e={easing:"cubicOut",duration:100,delay:0},w1e=function(e){q(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=be(this._onBrush,this),this._onBrushEnd=be(this._onBrushEnd,this)},t.prototype.render=function(r,n,a,i){if(e.prototype.render.apply(this,arguments),xv(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(){rm(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 De;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?y1e:0,o=Ur(r,n).refContainer,s=this._findCoordRect(),l=r.get("defaultLocationEdgeGap",!0)||0,u=this._orient===Ap?{right:o.width-s.x-s.width,top:o.height-F2-l-i,width:s.width,height:F2}:{right:l,top:s.y,width:F2,height:s.height},c=zh(r.option);R(["right","top","width","height"],function(f){c[f]==="ph"&&(c[f]=u[f])});var h=tr(c,o);this._location={x:h.x,y:h.y},this._size=[h.width,h.height],this._orient===aB&&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===Ap&&!o?{scaleY:l?1:-1,scaleX:1}:a===Ap&&o?{scaleY:l?1:-1,scaleX:-1}:a===aB&&!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 Mp({silent:!0,shape:{x:0,y:0,width:n[0],height:n[1]},style:{fill:r.get("backgroundColor")},z2:-40}));var o=new Mp({shape:{x:0,y:0,width:n[0],height:n[1]},style:{fill:"transparent"},z2:0,onclick:be(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),f=o.getDataExtent(l),v=(f[1]-f[0])*.3;f=[f[0]-v,f[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,D,B){if(M>0&&B%M){S||(C+=_);return}C=S?(+z-h[0])*w:C+_;var H=D==null||isNaN(D)||D==="",V=H?0:Nt(D,f,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 k=this.dataZoomModel;function I(z){var D=k.getModel(z?"selectedDataBackground":"dataBackground"),B=new De,H=new Sn({shape:{points:u},segmentIgnoreThreshold:1,style:D.getModel("areaStyle").getAreaStyle(),silent:!0,z2:-20}),V=new un({shape:{points:c},segmentIgnoreThreshold:1,style:D.getModel("lineStyle").getLineStyle(),silent:!0,z2:-19});return B.add(H),B.add(V),B}for(var P=0;P<3;P++){var j=I(P===1);this._displayables.sliderGroup.add(j),this._displayables.dataShadowSegs.push(j)}},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();R(l,function(u){if(!a&&!(n!==!0&&Ye(_1e,u.get("type"))<0)){var c=i.getComponent(Rl(o),s).axis,h=S1e(o),f,v=u.coordinateSystem;h!=null&&v.getOtherAxis&&(f=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:f}}},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"),f=n.filler=new Mp({silent:h,style:{fill:l.get("fillerColor")},textConfig:{position:"inside"}});o.add(f),o.add(new Mp({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:m1e,fill:K.color.transparent}})),R([0,1],function(w){var S=l.get("handleIcon");!q_[S]&&S.indexOf("path://")<0&&S.indexOf("image://")<0&&(S="path://"+S);var C=Ar(S,-1,0,2,2,null,!0);C.attr({cursor:C1e(this._orient),draggable:!0,drift:be(this._onDragMove,this,w),ondragend:be(this._onDragEnd,this),onmouseover:be(this._onOverDataInfoTriggerArea,this,!0),onmouseout:be(this._onOverDataInfoTriggerArea,this,!1),z2:5});var M=C.getBoundingRect(),A=l.get("handleSize");this._handleHeight=me(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(),ql(C);var k=l.get("handleColor");k!=null&&(C.style.fill=k),o.add(a[w]=C);var I=l.getModel("textStyle"),P=l.get("handleLabel")||{},j=P.show||!1;r.add(i[w]=new wt({silent:!0,invisible:!j,style:$t(I,{x:0,y:0,text:"",verticalAlign:"middle",align:"center",fill:I.getTextColor(),font:I.getFont()}),z2:10}))},this);var v=f;if(h){var g=me(l.get("moveHandleSize"),s[1]),m=n.moveHandle=new it({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=Ar(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 it({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:be(this._onActualMoveZoneDrift,this),ondragstart:be(this._onActualMoveZoneDragStart,this),ondragend:be(this._onActualMoveZoneDragEnd,this),onmouseover:be(this._onOverDataInfoTriggerArea,this,!0),onmouseout:be(this._onOverDataInfoTriggerArea,this,!1)})},t.prototype._resetInterval=function(){var r=this._range=this.dataZoomModel.getPercentRange(),n=this._getViewExtent();this._handleEnds=[Nt(r[0],[0,100],n,!0),Nt(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];uu(n,i,o,a.get("zoomLock")?"all":r,s.minSpan!=null?Nt(s.minSpan,l,o,!0):null,s.maxSpan!=null?Nt(s.maxSpan,l,o,!0):null);var u=this._range,c=this._range=on([Nt(i[0],o,l,!0),Nt(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=on(a.slice()),o=this._size;R([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 Oe(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();uu(0,l,o,0,u.minSpan!=null?Nt(u.minSpan,s,o,!0):null,u.maxSpan!=null?Nt(u.maxSpan,s,o,!0):null),this._range=on([Nt(l[0],o,s,!0),Nt(l[1],o,s,!0)]),this._updateView(),this._dispatchZoomAction(!1)}}}},t.prototype._onBrush=function(r){this._brushing&&(Vs(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 Mp({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?b1e:null,start:n[0],end:n[1]})},t.prototype._findCoordRect=function(){var r,n=D$(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}(dP);function iB(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)?"":Gn(n)||qm(n)?n.getLabel({value:Math.round(o)}):isFinite(i)?Mt(o,i,!0):o+"";return Le(a)?a(o,s):ve(a)?a.replace("{value}",s):s}function S1e(e){var t={x:"y",y:"x",radius:"angle",angle:"radius"};return t[e]}function C1e(e){return e==="vertical"?"ns-resize":"ew-resize"}function eZ(e){e.registerComponentModel(g1e),e.registerComponentView(w1e),fP(e)}function T1e(e){rt(Q$),rt(eZ)}var tZ={get:function(e,t,r){var n=ke((M1e[e]||{})[t]);return r&&ae(n)?n[n.length-1]:n}},M1e={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]}},oB=Kr.mapVisual,A1e=Kr.eachVisual,N1e=ae,V2=R,k1e=on,L1e=Nt,Vb=function(e){q(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&&W$(a,r,this.replacableOptionKeys),this.textStyleModel=this.getModel("textStyle"),this.resetItemSize(),this.completeVisualOption()},t.prototype.resetVisual=function(r){var n=this.stateList;r=be(r,this),this.controllerVisuals=aN(this.option.controller,n,r),this.targetVisuals=aN(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 V2(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=sv(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){R(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||["<",">"],ae(r)&&(r=r.slice(),u=!0);var c=n?r:u?[h(r[0]),h(r[1])]:h(r);if(ve(l))return l.replace("{value}",u?c[0]:c).replace("{value2}",u?c[1]:c);if(Le(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(f){return f===s[0]?"min":f===s[1]?"max":(+f).toFixed(Math.min(o,20))}},t.prototype.resetExtent=function(){var r=this.option,n=k1e([r.min,r.max]);this._dataExtent=n},t.prototype.getDimension=function(r){var n=this,a=this.option.seriesTargets;if(a){var i=Ks(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={});Je(i,a),Je(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,f,v){var g=h[f],m=h[v];g&&!m&&(m=h[v]={},V2(g,function(y,x){if(Kr.isValidType(x)){var _=tZ.get(x,"inactive",s);_!=null&&(m[x]=_,x==="color"&&!m.hasOwnProperty("opacity")&&!m.hasOwnProperty("colorAlpha")&&(m.opacity=[0,0]))}}))}function c(h){var f=(h.inRange||{}).symbol||(h.outOfRange||{}).symbol,v=(h.inRange||{}).symbolSize||(h.outOfRange||{}).symbolSize,g=this.get("inactiveColor"),m=this.getItemSymbol(),y=m||"roundRect";V2(this.stateList,function(x){var _=this.itemSize,w=h[x];w||(w=h[x]={color:s?g:[g]}),w.symbol==null&&(w.symbol=f&&ke(f)||(s?y:[y])),w.symbolSize==null&&(w.symbolSize=v&&ke(v)||(s?_[0]:[_[0],_[0]])),w.symbol=oB(w.symbol,function(M){return M==="none"?y:M});var S=w.symbolSize;if(S!=null){var C=-1/0;A1e(S,function(M){M>C&&(C=M)}),w.symbolSize=oB(S,function(M){return L1e(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}(ht),sB=[20,140],I1e=function(e){q(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]=sB[0]),(r[1]==null||isNaN(r[1]))&&(r[1]=sB[1])},t.prototype._resetRange=function(){var r=this.getExtent(),n=this.option.range;!n||n.auto?(r.auto=1,this.option.range=r):ae(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),R(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=on((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=lB(this,"outOfRange",this.getExtent()),a=lB(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 De(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);P1e([0,1],function(h){var f=o[h];f.setStyle("fill",n.handlesColor[h]),f.y=r[h];var v=vo(r[h],[0,l[1]],u,!0),g=this.getControllerVisual(v,"symbolSize");f.scaleX=f.scaleY=g/l[0],f.x=l[0]-g/2;var m=Fi(a.handleLabelPoints[h],Vc(f,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 f={convertOpacityToAlpha:!0},v=this.getControllerVisual(r,"color",f),g=this.getControllerVisual(r,"symbolSize"),m=vo(r,s,u,!0),y=l[0]-g/2,x={x:h.x,y:h.y};h.y=m,h.x=y;var _=Fi(c.indicatorLabelPoint,Vc(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}},k={style:{x:_[0],y:_[1]}};if(o.ecModel.isAnimationEnabled()&&!this._firstShowIndicator){var I={duration:100,easing:"cubicInOut",additive:!0};h.x=x.x,h.y=x.y,h.animateTo(A,I),w.animateTo(k,I)}else h.attr(A),w.attr(k);this._firstShowIndicator=!1;var P=this._shapes.handleLabels;if(P)for(var j=0;jo[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 f=this._hoverLinkDataIndices,v=[];(n||dB(a))&&(v=this._hoverLinkDataIndices=a.findTargetDataIndices(h));var g=Ote(f,v);this._dispatchHighDown("downplay",Kx(g[0],a)),this._dispatchHighDown("highlight",Kx(g[1],a))}},t.prototype._hoverLinkFromSeriesMouseOver=function(r){var n;if(Dc(r.target,function(l){var u=Be(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 F1e(e,t,r,n){for(var a=t.targetVisuals[n],i=Kr.prepareVisualTypes(a),o={color:Xm(e.getData(),"color")},s=0,l=i.length;s0:t.splitNumber>0)||t.calculable)?"continuous":"piecewise"}),e.registerAction(O1e,z1e),R(B1e,function(t){e.registerVisual(e.PRIORITY.VISUAL.COMPONENT,t)}),e.registerPreprocessor(V1e))}function iZ(e){e.registerComponentModel(I1e),e.registerComponentView(E1e),aZ(e)}var G1e=function(e){q(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=[],H1e[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=ke(i)):(o.dataExtent=this.getExtent(),o.mappingMethod="piecewise",o.pieceList=oe(this._pieceList,function(l){return l=ke(l),s!=="inRange"&&(l.visual=null),l}))})},t.prototype.completeVisualOption=function(){var r=this.option,n={},a=Kr.listVisualTypes(),i=this.isCategory();R(r.pieces,function(s){R(a,function(l){s.hasOwnProperty(l)&&(n[l]=1)})}),R(n,function(s,l){var u=!1;R(this.stateList,function(c){u=u||o(r,c,l)||o(r.target,c,l)},this),!u&&R(this.stateList,function(c){(r[c]||(r[c]={}))[l]=tZ.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,R(i,function(l,u){var c=this.getSelectedMapKey(l);o.hasOwnProperty(c)||(o[c]=!0)},this),a.selectedMode==="single"){var s=!1;R(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=ke(r)},t.prototype.getValueState=function(r){var n=Kr.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=Kr.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 f=i.getRepresentValue({interval:c});h||(h=i.getValueState(f));var v=r(f,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 R(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=Cu(Vb.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}(Vb),H1e={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 gB(e,t){var r=e.inverse;(e.orient==="vertical"?!r:r)&&t.reverse()}var U1e=function(e){q(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=zn(n.get("showLabel",!0),!u),h=!n.get("selectedMode");u&&this._renderEndsText(r,u[0],s,c,o),R(l.viewPieceList,function(f){var v=f.piece,g=new De;g.onclick=be(this._onItemClick,this,v),this._enableHoverLink(g,f.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 wt({style:$t(i,{x:x==="right"?-a:s[0]+a,y:s[1]/2,text:v.text,verticalAlign:i.get("verticalAlign")||"middle",align:x,opacity:Te(i.get("opacity"),y==="outOfRange"?.5:1)}),silent:h}))}r.add(g)},this),u&&this._renderEndsText(r,u[1],s,c,o),Gc(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:Kx(s.findTargetDataIndices(n),s)})}},t.prototype._getItemAlign=function(){var r=this.visualMapModel,n=r.option;if(n.orient==="vertical")return nZ(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 De,l=this.visualMapModel.textStyleModel;s.add(new wt({style:$t(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=Ar(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=ke(a.selected),s=n.getSelectedMapKey(r);i==="single"||i===!0?(o[s]=!0,R(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}(rZ);function oZ(e){e.registerComponentModel(G1e),e.registerComponentView(U1e),aZ(e)}function W1e(e){rt(iZ),rt(oZ)}var $1e=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:Z7(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}(),Z1e=function(e){q(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 $1e(this);if(this._target=null,this.ecModel.eachSeries(function(a){Y3(a,null)}),this.shouldShow()){var n=this.getTarget();Y3(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}(ht),Y1e=function(e){q(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 iw),!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=Ur(r,a).refContainer,u=tr(yH(r,!0),l),c=s.lineWidth||0,h=this._contentRect=sh(u.clone(),c/2,!0,!0),f=new De;i.add(f),f.setClipPath(new it({shape:h.plain()}));var v=this._targetGroup=new De;f.add(v);var g=u.plain();g.r=o.getShallow("borderRadius",!0),i.add(this._bgRect=new it({style:s,shape:g,silent:!1,cursor:"grab"}));var m=r.getModel("windowStyle"),y=m.getShallow("borderRadius",!0);f.add(this._windowRect=new it({shape:{x:0,y:0,width:0,height:0,r:y},style:m.getItemStyle(),silent:!1,cursor:"grab"})),this._dealRenderContent(),this._dealUpdateWindow(),yB(r,this)},t.prototype.renderContent=function(r){this._bridgeRendered=r,this._isEnabled()&&(this._dealRenderContent(),this._dealUpdateWindow(),yB(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,ow(a,s.x,s.y,s.width,s.height);var l=tr({left:"center",top:"center",aspect:s.width/s.height},i);bb(a,l.x,l.y,l.width,l.height),ym(o,a,mh),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=Oa([],r.targetTrans),a=Ea([],_b(null,this._coordSys),n);this._transThisToTarget=Oa([],a);var i=r.viewportRect;i?i=i.clone():i=new je(0,0,this._api.getWidth(),this._api.getHeight()),i.applyTransform(a);var o=this._windowRect,s=o.shape.r;o.setShape(Ee({r:s},i))}},t.prototype._resetRoamController=function(r){var n=this,a=this._api,i=this._roamController;if(i||(i=this._roamController=new Hh(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",be(this._onPan,this)).on("zoom",be(this._onZoom,this))},t.prototype._onPan=function(r){var n=this._transThisToTarget;if(!(!this._isEnabled()||!n)){var a=dr([],[r.oldX,r.oldY],n),i=dr([],[r.oldX-r.dx,r.oldY-r.dy],n);this._api.dispatchAction(mB(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=dr([],[r.originX,r.originY],n);this._api.dispatchAction(mB(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}(Yt);function mB(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 yB(e,t){var r=lh(e);z1(t.group,r.z,r.zlevel)}function X1e(e){e.registerComponentModel(Z1e),e.registerComponentView(Y1e)}var q1e={label:{enabled:!0},decal:{show:!1}},xB=Qe(),_B=Qe(),K1e=Vm(J1e);function J1e(e,t){var r=e.getModel("aria");if(!r.get("enabled"))return;var n=_B(e).scope||(_B(e).scope={}),a=ke(q1e);Je(a.label,e.getLocaleModel().get("aria"),!1),Je(r.option,a,!1),i(),o();function i(){var c=r.getModel("decal"),h=c.get("show");if(h){var f=we();e.eachSeries(function(v){v.isColorBySeries()||(xB(v).scope=f.get(v.type)||f.set(v.type,{}))}),e.eachSeries(function(v){if(Le(v.enableAriaDecal)){v.enableAriaDecal();return}var g=v.getData();if(v.isColorBySeries()){var w=YM(v.ecModel,v.name,n,e.getSeriesCount()),S=g.getVisual("decal");g.setVisual("decal",C(S,w))}else{var m=v.getRawData(),y={},x=xB(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],k=m.getName(M)||M+"",I=YM(v.ecModel,k,x,_),P=g.getItemVisual(A,"decal");g.setItemVisual(A,"decal",C(P,I))})}function C(M,A){var k=M?te(te({},A),M):A;return k.dirty=!0,k}})}}function o(){var c=t.getZr().dom;if(c){var h=e.getLocaleModel().get("aria"),f=r.getModel("label");if(f.option=Ee(f.option,h),!!f.get("enabled")){if(c.setAttribute("role","img"),f.get("description")){c.setAttribute("aria-label",f.get("description"));return}var v=e.getSeriesCount(),g=f.get(["data","maxCount"])||10,m=f.get(["series","maxCount"])||10,y=Math.min(v,m),x;if(!(v<1)){var _=l();if(_){var w=f.get(["general","withTitle"]);x=s(w,{title:_})}else x=f.get(["general","withoutTitle"]);var S=[],C=v>1?f.get(["series","multiple","prefix"]):f.get(["series","single","prefix"]);x+=s(C,{seriesCount:v}),e.eachSeries(function(I,P){if(P1?f.get(["series","multiple",D]):f.get(["series","single",D]),j=s(j,{seriesId:I.seriesIndex,seriesName:I.get("name"),seriesType:u(I.subType)});var B=I.getData();if(B.count()>g){var H=f.get(["data","partialData"]);j+=s(H,{displayCnt:g})}else j+=f.get(["data","allData"]);for(var V=f.get(["data","separator","middle"]),U=f.get(["data","separator","end"]),F=f.get(["data","excludeDimensionId"]),W=[],$=0;$":"gt",">=":"gte","=":"eq","!=":"ne","<>":"ne"},twe=function(){function e(t){var r=this._condVal=ve(t)?new RegExp(t):iG(t)?t:null;if(r==null){var n="";Lt(n)}}return e.prototype.evaluate=function(t){var r=typeof t;return ve(r)?this._condVal.test(t):Tt(r)?this._condVal.test(t+""):!1},e}(),rwe=function(){function e(){}return e.prototype.evaluate=function(){return this.value},e}(),nwe=function(){function e(){}return e.prototype.evaluate=function(){for(var t=this.children,r=0;r2&&n.push(a),a=[D,B]}function c(D,B,H,V){tf(D,H)&&tf(B,V)||a.push(D,B,H,V,H,V)}function h(D,B,H,V,U,F){var W=Math.abs(B-D),$=Math.tan(W/4)*4/3,Z=Bk:j2&&n.push(a),n}function dN(e,t,r,n,a,i,o,s,l,u){if(tf(e,r)&&tf(t,n)&&tf(a,o)&&tf(i,s)){l.push(o,s);return}var c=2/u,h=c*c,f=o-e,v=s-t,g=Math.sqrt(f*f+v*v);f/=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&&k=0){l.push(o,s);return}var I=[],P=[];iu(e,r,a,o,.5,I),iu(t,n,i,s,.5,P),dN(I[0],P[0],I[1],P[1],I[2],P[2],I[3],P[3],l,u),dN(I[4],P[4],I[5],P[5],I[6],P[6],I[7],P[7],l,u)}function mwe(e,t){var r=hN(e),n=[];t=t||1;for(var a=0;a0)for(var u=0;uMath.abs(u),h=lZ([l,u],c?0:1,t),f=(c?s:u)/h.length,v=0;va,o=lZ([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,f=0;f1?null:new Oe(m*l+e,m*u+t)}function _we(e,t,r){var n=new Oe;Oe.sub(n,r,t),n.normalize();var a=new Oe;Oe.sub(a,e,t);var i=a.dot(n);return i}function kd(e,t){var r=e[e.length-1];r&&r[0]===t[0]&&r[1]===t[1]||e.push(t)}function bwe(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),bwe(t,u,c)}function Gb(e,t,r,n){if(r===1)n.push(t);else{var a=Math.floor(r/2),i=e(t);Gb(e,i[0],a,n),Gb(e,i[1],r-a,n)}return n}function wwe(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 Wb(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:Iwe(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 hZ(e){return Twe(e.path,e.count)}function fN(){return{fromIndividuals:[],toIndividuals:[],count:0}}function Pwe(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 jwe={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;kB(e)&&(u=e,c=t),kB(t)&&(u=t,c=e);function h(x,_,w,S,C){var M=x.many,A=x.one;if(M.length===1&&!C){var k=_?M[0]:A,I=_?A:M[0];if(Hb(k))h({many:[k],one:I},!0,w,S,!0);else{var P=s?Ee({delay:s(w,S)},l):l;wP(k,I,P),i(k,I,k,I,P)}}else for(var j=Ee({dividePath:jwe[r],individualDelay:s&&function(U,F,W,$){return s(U+w,S)}},l),z=_?Pwe(M,A,j):Dwe(A,M,j),D=z.fromIndividuals,B=z.toIndividuals,H=D.length,V=0;Vt.length,v=u?LB(c,u):LB(f?t:e,[f?e:t]),g=0,m=0;mdZ))for(var i=n.getIndices(),o=0;o0&&M.group.traverse(function(k){k instanceof pt&&!k.animators.length&&k.animateFrom({style:{opacity:0}},A)})})}function EB(e){var t=e.getModel("universalTransition").get("seriesKey");return t||e.id}function RB(e){return ae(e)?e.sort().join(","):e}function Cl(e){if(e.hostModel)return e.hostModel.getModel("universalTransition").get("divideShape")}function Vwe(e,t){var r=we(),n=we(),a=we();return R(e.oldSeries,function(i,o){var s=e.oldDataGroupIds[o],l=e.oldData[o],u=EB(i),c=RB(u);n.set(c,{dataGroupId:s,data:l}),ae(u)&&R(u,function(h){a.set(h,{key:c,dataGroupId:s,data:l})})}),R(t.updatedSeries,function(i){if(i.isUniversalTransitionEnabled()&&i.isAnimationEnabled()){var o=i.get("dataGroupId"),s=i.getData(),l=EB(i),u=RB(l),c=n.get(u);if(c)r.set(u,{oldSeries:[{dataGroupId:c.dataGroupId,divide:Cl(c.data),data:c.data}],newSeries:[{dataGroupId:o,divide:Cl(s),data:s}]});else if(ae(l)){var h=[];R(l,function(g){var m=n.get(g);m.data&&h.push({dataGroupId:m.dataGroupId,divide:Cl(m.data),data:m.data})}),h.length&&r.set(u,{oldSeries:h,newSeries:[{dataGroupId:o,data:s,divide:Cl(s)}]})}else{var f=a.get(l);if(f){var v=r.get(f.key);v||(v={oldSeries:[{dataGroupId:f.dataGroupId,data:f.data,divide:Cl(f.data)}],newSeries:[]},r.set(f.key,v)),v.newSeries.push({dataGroupId:o,data:s,divide:Cl(s)})}}}}),r}function OB(e,t){for(var r=0;r=0&&a.push({dataGroupId:t.oldDataGroupIds[s],data:t.oldData[s],divide:Cl(t.oldData[s]),groupIdDim:o.dimension})}),R(Zt(e.to),function(o){var s=OB(r.updatedSeries,o);if(s>=0){var l=r.updatedSeries[s].getData();i.push({dataGroupId:t.oldDataGroupIds[s],data:l,divide:Cl(l),groupIdDim:o.dimension})}}),a.length>0&&i.length>0&&fZ(a,i,n)}function Hwe(e){e.registerUpdateLifecycle("series:beforeupdate",function(t,r,n){R(Zt(n.seriesTransition),function(a){R(Zt(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=zB,a=BB,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 Wwe(e,t){return new Uwe(e,t)}var zB=0,BB=0;function $we(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()}};R(e.breaks,function(s){var l=s.gapParsed;l.type==="tpPrct"&&(r+=l.val);var u=SP(s,t);if(u){var c=u.vmin!==s.vmin,h=u.vmax!==s.vmax,f=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=f,i[v][l.type].inExtFrac=f/(s.vmax-s.vmin),i[v][l.type].val=l.val}else n[l.type].span+=f,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));R(e.breaks,function(s){var l=s.gapParsed;l.type==="tpPrct"&&(s.gapReal=r!==0?at(o,0)*l.val/r:0),l.type==="tpAbs"&&(s.gapReal=l.val),s.gapReal==null&&(s.gapReal=0)})}function Zwe(e,t,r,n,a,i){e!=="no"&&R(r,function(o){var s=SP(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}R(e,function(o){if(!(!o||o.start==null||o.end==null)&&!o.isExpanded){var s={breakOption:ke(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(ve(o.gap)){var u=La(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&&R(["vmin","vmax"],function(v){s[v]<0&&(s[v]=0)}),s.vmin>s.vmax){var f=s.vmax;s.vmax=s.vmin,s.vmin=f}n.push(s)}}),n.sort(function(o,s){return o.vmin-s.vmin});var i=-1/0;return R(n,function(o,s){i>o.vmin&&(n[s]=null),i=o.vmax}),{breaks:It(n,function(o){return!!o})}}function CP(e,t){return pN(t)===pN(e)}function pN(e){return e.start+"_\0_"+e.end}function Xwe(e,t,r){var n=[];R(e,function(i,o){var s=t(i);s&&s.type==="vmin"&&n.push([o])}),R(e,function(i,o){var s=t(i);if(s&&s.type==="vmax"){var l=Ks(n,function(u){return CP(t(e[u[0]]).parsedBreak.breakOption,s.parsedBreak.breakOption)});l&&l.push(o)}});var a=[];return R(n,function(i){i.length===2&&a.push(r?i:[e[i[0]],e[i[1]]])}),a}function qwe(e,t,r,n){if(t.break){var a=t.break.parsedBreak,i=Ks(r,function(c){return CP(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:ke(i.gapParsed),gapReal:a.gapReal};return{tickVal:u[t.break.type],vBreak:{type:t.break.type,parsedBreak:u}}}}function Kwe(e,t,r,n,a){a.original=vN(e,t,r);var i=a.transformed=vN(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),f={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:f,gapReal:s.gapReal,breakOption:s.breakOption}})}var Jwe={vmin:"start",vmax:"end"};function Qwe(e,t){return t&&(e=e||{},e.break={type:Jwe[t.type],start:t.parsedBreak.vmin,end:t.parsedBreak.vmax}),e}function eSe(){Qne({createBreakScaleMapper:Wwe,pruneTicksByBreak:Zwe,addBreaksToTicks:Ywe,parseAxisBreakOption:vN,identifyAxisBreak:CP,serializeAxisBreakIdentifier:pN,retrieveAxisBreakPairs:Xwe,getTicksBreakOutwardTransform:qwe,parseAxisBreakOptionInwardTransform:Kwe,makeAxisLabelFormatterParamBreak:Qwe})}var FB=Qe();function tSe(e,t){var r=Ks(e,function(n){return Mr().identifyAxisBreak(n.parsedBreak.breakOption,t.breakOption)});return r||e.push(r={zigzagRandomList:[],parsedBreak:t,shouldRemove:!1}),r}function rSe(e){R(e,function(t){return t.shouldRemove=!0})}function nSe(e){for(var t=e.length-1;t>=0;t--)e[t].shouldRemove&&e.splice(t,1)}function aSe(e,t,r,n,a){var i=r.axis;if(i.scale.isBlank()||!Mr())return;var o=Mr().retrieveAxisBreakPairs(i.scale.getTicks({breakTicks:"only_break"}),function(I){return I.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"),f=s.get("zigzagZ"),v=s.getModel("itemStyle"),g=v.getItemStyle(),m=g.stroke,y=g.lineWidth,x=g.lineDash,_=g.fill,w=new De({ignoreModelZ:!0}),S=i.isHorizontal(),C=FB(t).visualList||(FB(t).visualList=[]);rSe(C);for(var M=function(I){var P=o[I][0].break.parsedBreak,j=[];j[0]=i.toGlobalCoord(i.dataToCoord(P.vmin,!0)),j[1]=i.toGlobalCoord(i.dataToCoord(P.vmax,!0)),j[1]=F;de&&(re=F);var He=[],ye=[];He[V]=j,ye[V]=z,!le&&!de&&(He[V]+=J?-l:l,ye[V]-=J?l:-l),He[U]=re,ye[U]=re,$.push(He),Z.push(ye);var ne=void 0;if(Q_[1]&&_.reverse(),{coordPair:_,brkId:Mr().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),f=(h+c.x)/2-u.x,v=Math.min(f,f-c.x),g=Math.max(f,f-c.x),m=g<0?g:v>0?v:0;s=(f-m)/c.x}var y=new Oe,x=new Oe;Oe.scale(y,n,-s),Oe.scale(x,n,1-s),vA(r[0],y),vA(r[1],x)}function sSe(e,t){var r={breaks:[]};return R(t.breaks,function(n){if(n){var a=Ks(e.get("breaks",!0),function(s){return Mr().identifyAxisBreak(s,n)});if(a){var i=t.type,o={isExpanded:!!a.isExpanded};a.isExpanded=i===ew?!0:i===a8?!1:i===i8?!a.isExpanded:a.isExpanded,r.breaks.push({start:a.start,end:a.end,isExpanded:!!a.isExpanded,old:o})}}}),r}function lSe(){Cce({adjustBreakLabelPair:oSe,buildAxisBreakLine:iSe,rectCoordBuildBreakAxis:aSe,updateModelAxisBreak:sSe})}function uSe(e){Nce(e),eSe(),lSe()}function cSe(){Uhe(hSe)}function hSe(e,t){R(e,function(r){if(!r.model.get(["axisLabel","inside"])){var n=dSe(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 dSe(e){var t=e.model,r=e.scale;if(!t.get(["axisLabel","show"])||r.isBlank())return;var n,a,i=r.getExtent();r instanceof sm?a=r.count():(n=r.getTicks(),a=n.length);var o=e.getLabelModel(),s=Jm(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 kSe(e){return e===null||e>46?0:e>44.5?1:e>43?2:3}function LSe(e){return e==="ROUTER"||e==="ROUTER_LATE"?30:e==="REPEATER"||e==="TRACKER"?25:e==="CLIENT_MUTE"?7:e==="CLIENT_BASE"?12:15}function ISe({nodes:e,edges:t,selectedNodeId:r,onSelectNode:n}){const a=E.useRef(null),[i,o]=E.useState("connected"),s=E.useMemo(()=>{const y=new Set;return t.forEach(x=>{y.add(x.from_node),y.add(x.to_node)}),y},[t]),l=E.useMemo(()=>{let y=e;return i==="connected"?y=y.filter(x=>s.has(x.node_num)):i==="infra"&&(y=y.filter(x=>HB.includes(x.role))),y},[e,i,s]),u=E.useMemo(()=>new Map(l.map(y=>[y.node_num,y])),[l]),c=E.useMemo(()=>t.filter(y=>u.has(y.from_node)&&u.has(y.to_node)),[t,u]),h=E.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]),f=E.useMemo(()=>{const y=l.map(_=>{const w=kSe(_.latitude),S=GB[w%GB.length],C=HB.includes(_.role),M=_.node_num===r,A=h.has(_.node_num),k=r===null||M||A;return{id:String(_.node_num),name:_.short_name,value:_.node_num,symbolSize:LSe(_.role),itemStyle:{color:C?S:"#111827",borderColor:S,borderWidth:C?0:2,opacity:k?1:.15},label:{show:!0,position:"bottom",distance:5,fontSize:10,fontFamily:"JetBrains Mono, monospace",color:k?"#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=E.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:f.nodes,links:f.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"]}]}),[f]),g=E.useCallback(y=>{if(y.data&&"nodeNum"in y.data){const x=y.data.nodeNum;n(r===x?null:x??null)}},[r,n]),m=E.useMemo(()=>({click:g}),[g]);return E.useEffect(()=>{var x;const y=(x=a.current)==null?void 0:x.getEchartsInstance();y&&y.setOption(v,{notMerge:!1,lazyUpdate:!0})},[v]),d.jsxs("div",{className:"relative bg-bg-card border border-border overflow-hidden",children:[d.jsx(ASe,{ref:a,option:v,style:{height:"540px",width:"100%"},onEvents:m,opts:{renderer:"canvas"}}),d.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:[d.jsx(RV,{size:14,className:"text-slate-500"}),d.jsx("div",{className:"flex gap-1",children:[{key:"connected",label:"Connected"},{key:"infra",label:"Infra"},{key:"all",label:"All"}].map(({key:y,label:x})=>d.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))}),d.jsxs("span",{className:"text-xs text-slate-500 ml-2",children:[l.length," nodes • ",c.length," edges"]})]}),d.jsxs("div",{className:"absolute bottom-4 left-4 bg-bg-card/90 backdrop-blur-sm border border-border rounded p-3",children:[d.jsx("div",{className:"text-xs text-slate-400 font-medium mb-2",children:"Edge Quality (SNR)"}),d.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=>d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx("div",{className:"w-4 h-0.5",style:{backgroundColor:y.color}}),d.jsx("span",{className:"text-xs text-slate-500",children:y.label})]},y.label))})]}),d.jsxs("div",{className:"absolute bottom-4 right-4 bg-bg-card/90 backdrop-blur-sm border border-border rounded p-3",children:[d.jsx("div",{className:"text-xs text-slate-400 font-medium mb-2",children:"Node Type"}),d.jsxs("div",{className:"space-y-2",children:[d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx("div",{className:"w-3 h-3 rounded-full bg-sky-400"}),d.jsx("span",{className:"text-xs text-slate-500",children:"Infrastructure"})]}),d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx("div",{className:"w-3 h-3 rounded-full bg-gray-900 border-2 border-sky-400"}),d.jsx("span",{className:"text-xs text-slate-500",children:"Client"})]})]})]})]})}function gZ(e,t){const r=E.useRef(t);E.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 PSe(e,t,r){t.center!==r.center&&e.setLatLng(t.center),t.radius!=null&&t.radius!==r.radius&&e.setRadius(t.radius)}const DSe=1;function jSe(e){return Object.freeze({__version:DSe,map:e})}function NP(e,t){return Object.freeze({...e,...t})}const mZ=E.createContext(null),yZ=mZ.Provider;function gw(){const e=E.useContext(mZ);if(e==null)throw new Error("No context provided: useLeafletContext() can only be used in a descendant of ");return e}function ESe(e){function t(r,n){const{instance:a,context:i}=e(r).current;return E.useImperativeHandle(n,()=>a),r.children==null?null:bf.createElement(yZ,{value:i},r.children)}return E.forwardRef(t)}function RSe(e){function t(r,n){const[a,i]=E.useState(!1),{instance:o}=e(r,i).current;E.useImperativeHandle(n,()=>o),E.useEffect(function(){a&&o.update()},[o,a,r.children]);const s=o._contentNode;return s?gV.createPortal(r.children,s):null}return E.forwardRef(t)}function OSe(e){function t(r,n){const{instance:a}=e(r).current;return E.useImperativeHandle(n,()=>a),null}return E.forwardRef(t)}function kP(e,t){const r=E.useRef();E.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 mw(e,t){const r=e.pane??t.pane;return r?{...e,pane:r}:e}function zSe(e,t){return function(n,a){const i=gw(),o=e(mw(n,i),i);return gZ(i.map,n.attribution),kP(o.current,n.eventHandlers),t(o.current,i,n,a),o}}var yN={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)})(EY,function(r){var n="1.9.4";function a(p){var b,T,N,O;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=W(this.x),this.y=W(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("+f(this.x)+", "+f(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 Z(p,b){if(p)for(var T=b?[p,b]:p,N=0,O=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=J(p);var b=this.min,T=this.max,N=p.min,O=p.max,G=O.x>=b.x&&N.x<=T.x,X=O.y>=b.y&&N.y<=T.y;return G&&X},overlaps:function(p){p=J(p);var b=this.min,T=this.max,N=p.min,O=p.max,G=O.x>b.x&&N.xb.y&&N.y=b.lat&&O.lat<=T.lat&&N.lng>=b.lng&&O.lng<=T.lng},intersects:function(p){p=Q(p);var b=this._southWest,T=this._northEast,N=p.getSouthWest(),O=p.getNorthEast(),G=O.lat>=b.lat&&N.lat<=T.lat,X=O.lng>=b.lng&&N.lng<=T.lng;return G&&X},overlaps:function(p){p=Q(p);var b=this._southWest,T=this._northEast,N=p.getSouthWest(),O=p.getNorthEast(),G=O.lat>b.lat&&N.latb.lng&&N.lng1,Xe=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}(),lt=function(){return!!document.createElement("canvas").getContext}(),Pt=!!(document.createElementNS&&qe("svg").createSVGRect),fr=!!Pt&&function(){var p=document.createElement("div");return p.innerHTML="",(p.firstChild&&p.firstChild.namespaceURI)==="http://www.w3.org/2000/svg"}(),Tn=!Pt&&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}}(),Ct=navigator.platform.indexOf("Mac")===0,as=navigator.platform.indexOf("Linux")===0;function Mn(p){return navigator.userAgent.toLowerCase().indexOf(p)>=0}var $e={ie:bt,ielt9:et,edge:Ke,webkit:St,android:ce,android23:st,androidStock:Ft,opera:jt,chrome:Lr,gecko:Qo,safari:tl,phantom:Ki,opera12:Uh,win:Hn,ie3d:es,webkit3d:ts,gecko3d:Au,any3d:Wh,mobile:Ga,mobileWebkit:$h,mobileWebkit3d:Nu,msPointer:ku,pointer:rl,touch:Iu,touchNative:Lu,mobileOpera:rs,mobileGecko:ns,retina:ue,passiveEvents:Xe,canvas:lt,svg:Pt,vml:Tn,inlineSvg:fr,mac:Ct,linux:as},Zh=$e.msPointer?"MSPointerDown":"pointerdown",Me=$e.msPointer?"MSPointerMove":"pointermove",Un=$e.msPointer?"MSPointerUp":"pointerup",Pu=$e.msPointer?"MSPointerCancel":"pointercancel",Lv={touchstart:Zh,touchmove:Me,touchend:Un,touchcancel:Pu},oy={touchstart:ly,touchmove:Yh,touchend:Yh,touchcancel:Yh},Ha={},sy=!1;function xw(p,b,T){return b==="touchstart"&&Rr(),oy[b]?(T=oy[b].bind(this,T),p.addEventListener(Lv[b],T,!1),T):(console.warn("wrong event specified:",b),h)}function _w(p,b,T){if(!Lv[b]){console.warn("wrong event specified:",b);return}p.removeEventListener(Lv[b],T,!1)}function bw(p){Ha[p.pointerId]=p}function ww(p){Ha[p.pointerId]&&(Ha[p.pointerId]=p)}function is(p){delete Ha[p.pointerId]}function Rr(){sy||(document.addEventListener(Zh,bw,!0),document.addEventListener(Me,ww,!0),document.addEventListener(Un,is,!0),document.addEventListener(Pu,is,!0),sy=!0)}function Yh(p,b){if(b.pointerType!==(b.MSPOINTER_TYPE_MOUSE||"mouse")){b.touches=[];for(var T in Ha)b.touches.push(Ha[T]);b.changedTouches=[b],p(b)}}function ly(p,b){b.MSPOINTER_TYPE_TOUCH&&b.pointerType===b.MSPOINTER_TYPE_TOUCH&&hn(b),Yh(p,b)}function uy(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 cy=200;function hy(p,b){p.addEventListener("dblclick",b);var T=0,N;function O(G){if(G.detail!==1){N=G.detail;return}if(!(G.pointerType==="mouse"||G.sourceCapabilities&&!G.sourceCapabilities.firesTouchEvents)){var X=RP(G);if(!(X.some(function(ie){return ie instanceof HTMLLabelElement&&ie.attributes.for})&&!X.some(function(ie){return ie instanceof HTMLInputElement||ie instanceof HTMLSelectElement}))){var ee=Date.now();ee-T<=cy?(N++,N===2&&b(uy(G))):N=1,T=ee}}}return p.addEventListener("click",O),{dblclick:b,simDblclick:O}}function dy(p,b){p.removeEventListener("dblclick",b.dblclick),p.removeEventListener("click",b.simDblclick)}var Xh=Ji(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),nl=Ji(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),Iv=nl==="webkitTransition"||nl==="OTransition"?nl+"End":"transitionend";function se(p){return typeof p=="string"?document.getElementById(p):p}function ut(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 Ze(p,b,T){var N=document.createElement(p);return N.className=b||"",T&&T.appendChild(N),N}function yt(p){var b=p.parentNode;b&&b.removeChild(p)}function rr(p){for(;p.firstChild;)p.removeChild(p.firstChild)}function oa(p){var b=p.parentNode;b&&b.lastChild!==p&&b.appendChild(p)}function cn(p){var b=p.parentNode;b&&b.firstChild!==p&&b.insertBefore(p,b.firstChild)}function An(p,b){if(p.classList!==void 0)return p.classList.contains(b);var T=ot(p);return T.length>0&&new RegExp("(^|\\s)"+b+"(\\s|$)").test(T)}function Y(p,b){if(p.classList!==void 0)for(var T=g(b),N=0,O=T.length;N0?2*window.devicePixelRatio:1;function zP(p){return $e.edge?p.wheelDeltaY/2:p.deltaY&&p.deltaMode===0?-p.deltaY/VZ: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 GZ={__proto__:null,on:Ie,off:Wt,stopPropagation:Eu,disableScrollPropagation:Mw,disableClickPropagation:Pv,preventDefault:hn,stop:Ru,getPropagationPath:RP,getMousePosition:OP,getWheelDelta:zP,isExternalTarget:Aw,addListener:Ie,removeListener:Wt},BP=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=eo(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=j(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]),O=this.project(this.getCenter()),G=this.project(p),X=this.getPixelBounds(),ee=J([X.min.add(T),X.max.subtract(N)]),ie=ee.getSize();if(!ee.contains(G)){this._enforcingBounds=!0;var pe=G.subtract(ee.getCenter()),ze=ee.extend(G).getSize().subtract(ie);O.x+=pe.x<0?-ze.x:ze.x,O.y+=pe.y<0?-ze.y:ze.y,this.panTo(this.unproject(O),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(),O=T.divideBy(2).round(),G=N.subtract(O);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 le(b,T),O=N.toBounds(p.coords.accuracy*2),G=this._locateOptions;if(G.setView){var X=this.getBoundsZoom(O);this.setView(N,G.maxZoom?Math.min(X,G.maxZoom):X)}var ee={latlng:N,bounds:O,timestamp:p.timestamp};for(var ie in p.coords)typeof p.coords[ie]=="number"&&(ee[ie]=p.coords[ie]);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(),yt(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)yt(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=Ze("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,O=this.getMinZoom(),G=this.getMaxZoom(),X=p.getNorthWest(),ee=p.getSouthEast(),ie=this.getSize().subtract(T),pe=J(this.project(ee,N),this.project(X,N)).getSize(),ze=$e.any3d?this.options.zoomSnap:1,ft=ie.x/pe.x,kt=ie.y/pe.y,$n=b?Math.max(ft,kt):Math.min(ft,kt);return N=this.getScaleZoom($n,N),ze&&(N=Math.round(N/(ze/100))*(ze/100),N=b?Math.ceil(N/ze)*ze:Math.floor(N/ze)*ze),Math.max(O,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 Z(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(de(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(de(p))._round();return b._subtract(this.getPixelOrigin())},wrapLatLng:function(p){return this.options.crs.wrapLatLng(de(p))},wrapLatLngBounds:function(p){return this.options.crs.wrapLatLngBounds(Q(p))},distance:function(p,b){return this.options.crs.distance(de(p),de(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(de(p)))},mouseEventToContainerPoint:function(p){return OP(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=se(p);if(b){if(b._leaflet_id)throw new Error("Map container is already initialized.")}else throw new Error("Map container not found.");Ie(b,"scroll",this._onScroll,this),this._containerId=l(b)},_initLayout:function(){var p=this._container;this._fadeAnimated=this.options.fadeAnimation&&$e.any3d,Y(p,"leaflet-container"+($e.touch?" leaflet-touch":"")+($e.retina?" leaflet-retina":"")+($e.ielt9?" leaflet-oldie":"")+($e.safari?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""));var b=ut(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),gr(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||(Y(p.markerPane,"leaflet-zoom-hide"),Y(p.shadowPane,"leaflet-zoom-hide"))},_resetView:function(p,b,T){gr(this._mapPane,new F(0,0));var N=!this._loaded;this._loaded=!0,b=this._limitZoom(b),this.fire("viewprereset");var O=this._zoom!==b;this._moveStart(O,T)._move(p,b)._moveEnd(O),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 O=this._zoom!==b;return this._zoom=b,this._lastCenter=p,this._pixelOrigin=this._getNewPixelOrigin(p),N?T&&T.pinch&&this.fire("zoom",T):((O||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){gr(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?Wt:Ie;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),$e.any3d&&this.options.transform3DLimit&&(p?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){z(this._resizeRequest),this._resizeRequest=j(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,O=b==="mouseout"||b==="mouseover",G=p.target||p.srcElement,X=!1;G;){if(N=this._targets[l(G)],N&&(b==="click"||b==="preclick")&&this._draggableMoved(N)){X=!0;break}if(N&&N.listens(b,!0)&&(O&&!Aw(G,p)||(T.push(N),O))||G===this._container)break;G=G.parentNode}return!T.length&&!X&&!O&&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"&&ju(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 O=this._findEventTargets(p,b);if(T){for(var G=[],X=0;X0?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=$e.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(){Ae(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=Ze("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(p),this.on("zoomanim",function(b){var T=Xh,N=this._proxy.style[T];Qi(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(){yt(this._proxy),this.off("load moveend",this._animMoveEnd,this),delete this._proxy},_animMoveEnd:function(){var p=this.getCenter(),b=this.getZoom();Qi(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),O=this._getCenterOffset(p)._divideBy(1-1/N);return T.animate!==!0&&!this.getSize().contains(O)?!1:(j(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,Y(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&&Ae(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 HZ(p,b){return new zt(p,b)}var Ti=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 Y(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?(yt(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()}}),Dv=function(p){return new Ti(p)};zt.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=Ze("div",b+"control-container",this._container);function N(O,G){var X=b+O+" "+b+G;p[O+G]=Ze("div",X,T)}N("top","left"),N("top","right"),N("bottom","left"),N("bottom","right")},_clearControlPos:function(){for(var p in this._controlCorners)yt(this._controlCorners[p]);yt(this._controlContainer),delete this._controlCorners,delete this._controlContainer}});var FP=Ti.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),Ie(N,"click",this._onInputClick,this);var O=document.createElement("span");O.innerHTML=" "+p.name;var G=document.createElement("span");b.appendChild(G),G.appendChild(N),G.appendChild(O);var X=p.overlay?this._overlaysList:this._baseLayersList;return X.appendChild(b),this._checkDisabledLayers(),b},_onInputClick:function(){if(!this._preventClick){var p=this._layerControlInputs,b,T,N=[],O=[];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||O.push(T);for(G=0;G=0;O--)b=p[O],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,Ie(p,"click",hn),this.expand();var b=this;setTimeout(function(){Wt(p,"click",hn),b._preventClick=!1})}}),UZ=function(p,b,T){return new FP(p,b,T)},Nw=Ti.extend({options:{position:"topleft",zoomInText:'',zoomInTitle:"Zoom in",zoomOutText:'',zoomOutTitle:"Zoom out"},onAdd:function(p){var b="leaflet-control-zoom",T=Ze("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,O){var G=Ze("a",T,N);return G.innerHTML=p,G.href="#",G.title=b,G.setAttribute("role","button"),G.setAttribute("aria-label",b),Pv(G),Ie(G,"click",Ru),Ie(G,"click",O,this),Ie(G,"click",this._refocusOnMap,this),G},_updateDisabled:function(){var p=this._map,b="leaflet-disabled";Ae(this._zoomInButton,b),Ae(this._zoomOutButton,b),this._zoomInButton.setAttribute("aria-disabled","false"),this._zoomOutButton.setAttribute("aria-disabled","false"),(this._disabled||p._zoom===p.getMinZoom())&&(Y(this._zoomOutButton,b),this._zoomOutButton.setAttribute("aria-disabled","true")),(this._disabled||p._zoom===p.getMaxZoom())&&(Y(this._zoomInButton,b),this._zoomInButton.setAttribute("aria-disabled","true"))}});zt.mergeOptions({zoomControl:!0}),zt.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new Nw,this.addControl(this.zoomControl))});var WZ=function(p){return new Nw(p)},VP=Ti.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(p){var b="leaflet-control-scale",T=Ze("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=Ze("div",b,T)),p.imperial&&(this._iScale=Ze("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,O;b>5280?(T=b/5280,N=this._getRoundNum(T),this._updateScale(this._iScale,N+" mi",N/T)):(O=this._getRoundNum(b),this._updateScale(this._iScale,O+" ft",O/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}}),$Z=function(p){return new VP(p)},ZZ='',kw=Ti.extend({options:{position:"bottomright",prefix:''+($e.inlineSvg?ZZ+" ":"")+"Leaflet"},initialize:function(p){m(this,p),this._attributions={}},onAdd:function(p){p.attributionControl=this,this._container=Ze("div","leaflet-control-attribution"),Pv(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(' ')}}});zt.mergeOptions({attributionControl:!0}),zt.addInitHook(function(){this.options.attributionControl&&new kw().addTo(this)});var YZ=function(p){return new kw(p)};Ti.Layers=FP,Ti.Zoom=Nw,Ti.Scale=VP,Ti.Attribution=kw,Dv.layers=UZ,Dv.zoom=WZ,Dv.scale=$Z,Dv.attribution=YZ;var ro=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}});ro.addTo=function(p,b){return p.addHandler(b,this),this};var XZ={Events:V},GP=$e.touch?"touchstart mousedown":"mousedown",sl=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||(Ie(this._dragStartTarget,GP,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(sl._dragging===this&&this.finishDrag(!0),Wt(this._dragStartTarget,GP,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(p){if(this._enabled&&(this._moved=!1,!An(this._element,"leaflet-zoom-anim"))){if(p.touches&&p.touches.length!==1){sl._dragging===this&&this.finishDrag();return}if(!(sl._dragging||p.shiftKey||p.which!==1&&p.button!==1&&!p.touches)&&(sl._dragging=this,this._preventOutline&&ju(this._element),Kh(),al(),!this._moving)){this.fire("down");var b=p.touches?p.touches[0]:p,T=to(this._element);this._startPoint=new F(b.clientX,b.clientY),this._startPos=eo(this._element),this._parentScale=Vt(T);var N=p.type==="mousedown";Ie(document,N?"mousemove":"touchmove",this._onMove,this),Ie(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&&(X=ee,G=ie);G>T&&(b[X]=1,Iw(p,b,T,N,X),Iw(p,b,T,X,O))}function QZ(p,b){for(var T=[p[0]],N=1,O=0,G=p.length;Nb&&(T.push(p[N]),O=N);return Ob.max.x&&(T|=2),p.yb.max.y&&(T|=8),T}function eY(p,b){var T=b.x-p.x,N=b.y-p.y;return T*T+N*N}function jv(p,b,T,N){var O=b.x,G=b.y,X=T.x-O,ee=T.y-G,ie=X*X+ee*ee,pe;return ie>0&&(pe=((p.x-O)*X+(p.y-G)*ee)/ie,pe>1?(O=T.x,G=T.y):pe>0&&(O+=X*pe,G+=ee*pe)),X=p.x-O,ee=p.y-G,N?X*X+ee*ee:new F(O,G)}function Ua(p){return!w(p[0])||typeof p[0][0]!="object"&&typeof p[0][0]<"u"}function XP(p){return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."),Ua(p)}function qP(p,b){var T,N,O,G,X,ee,ie,pe;if(!p||p.length===0)throw new Error("latlngs not passed");Ua(p)||(console.warn("latlngs are not flat! Only the first ring will be used"),p=p[0]);var ze=de([0,0]),ft=Q(p),kt=ft.getNorthWest().distanceTo(ft.getSouthWest())*ft.getNorthEast().distanceTo(ft.getNorthWest());kt<1700&&(ze=Lw(p));var $n=p.length,en=[];for(T=0;T<$n;T++){var Wa=de(p[T]);en.push(b.project(de([Wa.lat-ze.lat,Wa.lng-ze.lng])))}for(T=0,N=0;T<$n-1;T++)N+=en[T].distanceTo(en[T+1])/2;if(N===0)pe=en[0];else for(T=0,G=0;T<$n-1;T++)if(X=en[T],ee=en[T+1],O=X.distanceTo(ee),G+=O,G>N){ie=(G-N)/O,pe=[ee.x-ie*(ee.x-X.x),ee.y-ie*(ee.y-X.y)];break}var sa=b.unproject($(pe));return de([sa.lat+ze.lat,sa.lng+ze.lng])}var tY={__proto__:null,simplify:WP,pointToSegmentDistance:$P,closestPointOnSegment:KZ,clipSegment:YP,_getEdgeIntersection:fy,_getBitCode:Ou,_sqClosestPointOnSegment:jv,isFlat:Ua,_flat:XP,polylineCenter:qP},Pw={project:function(p){return new F(p.lng,p.lat)},unproject:function(p){return new le(p.y,p.x)},bounds:new Z([-180,-90],[180,90])},Dw={R:6378137,R_MINOR:6356752314245179e-9,bounds:new Z([-2003750834279e-5,-1549657073972e-5],[2003750834279e-5,1876465623138e-5]),project:function(p){var b=Math.PI/180,T=this.R,N=p.lat*b,O=this.R_MINOR/T,G=Math.sqrt(1-O*O),X=G*Math.sin(N),ee=Math.tan(Math.PI/4-N/2)/Math.pow((1-X)/(1+X),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,O=Math.sqrt(1-N*N),G=Math.exp(-p.y/T),X=Math.PI/2-2*Math.atan(G),ee=0,ie=.1,pe;ee<15&&Math.abs(ie)>1e-7;ee++)pe=O*Math.sin(X),pe=Math.pow((1-pe)/(1+pe),O/2),ie=Math.PI/2-2*Math.atan(G*pe)-X,X+=ie;return new le(X*b,p.x*b/T)}},rY={__proto__:null,LonLat:Pw,Mercator:Dw,SphericalMercator:xe},nY=a({},ye,{code:"EPSG:3395",projection:Dw,transformation:function(){var p=.5/(Math.PI*Dw.R);return ge(p,.5,-p,.5)}()}),KP=a({},ye,{code:"EPSG:4326",projection:Pw,transformation:ge(1/180,1,-1/180,.5)}),aY=a({},He,{projection:Pw,transformation:ge(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});He.Earth=ye,He.EPSG3395=nY,He.EPSG3857=tt,He.EPSG900913=Ue,He.EPSG4326=KP,He.Simple=aY;var Mi=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})}}});zt.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 le&&b[0].equals(b[T-1])&&b.pop(),b},_setLatLngs:function(p){ls.prototype._setLatLngs.call(this,p),Ua(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return Ua(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 Z(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,O=this._rings.length,G;Np.y!=O.y>p.y&&p.x<(O.x-N.x)*(p.y-N.y)/(O.y-N.y)+N.x&&(b=!b);return b||ls.prototype._containsPoint.call(this,p,!0)}});function dY(p,b){return new rd(p,b)}var us=ss.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,O;if(b){for(T=0,N=b.length;T0&&O.push(O[0].slice()),O}function nd(p,b){return p.feature?a({},p.feature,{geometry:b}):xy(b)}function xy(p){return p.type==="Feature"||p.type==="FeatureCollection"?p:{type:"Feature",properties:{},geometry:p}}var Ow={toGeoJSON:function(p){return nd(this,{type:"Point",coordinates:Rw(this.getLatLng(),p)})}};vy.include(Ow),jw.include(Ow),py.include(Ow),ls.include({toGeoJSON:function(p){var b=!Ua(this._latlngs),T=yy(this._latlngs,b?1:0,!1,p);return nd(this,{type:(b?"Multi":"")+"LineString",coordinates:T})}}),rd.include({toGeoJSON:function(p){var b=!Ua(this._latlngs),T=b&&!Ua(this._latlngs[0]),N=yy(this._latlngs,T?2:b?1:0,!0,p);return b||(N=[N]),nd(this,{type:(T?"Multi":"")+"Polygon",coordinates:N})}}),ed.include({toMultiPoint:function(p){var b=[];return this.eachLayer(function(T){b.push(T.toGeoJSON(p).geometry.coordinates)}),nd(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(O){if(O.toGeoJSON){var G=O.toGeoJSON(p);if(T)N.push(G.geometry);else{var X=xy(G);X.type==="FeatureCollection"?N.push.apply(N,X.features):N.push(X)}}}),T?nd(this,{geometries:N,type:"GeometryCollection"}):{type:"FeatureCollection",features:N}}});function eD(p,b){return new us(p,b)}var fY=eD,_y=Mi.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&&(Y(this._image,"leaflet-interactive"),this.addInteractiveTarget(this._image)),this.getPane().appendChild(this._image),this._reset()},onRemove:function(){yt(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&&oa(this._image),this},bringToBack:function(){return this._map&&cn(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:Ze("img");if(Y(b,"leaflet-image-layer"),this._zoomAnimated&&Y(b,"leaflet-zoom-animated"),this.options.className&&Y(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;Qi(this._image,T,b)},_reset:function(){var p=this._image,b=new Z(this._map.latLngToLayerPoint(this._bounds.getNorthWest()),this._map.latLngToLayerPoint(this._bounds.getSouthEast())),T=b.getSize();gr(p,b.min),p.style.width=T.x+"px",p.style.height=T.y+"px"},_updateOpacity:function(){dt(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()}}),vY=function(p,b,T){return new _y(p,b,T)},tD=_y.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:Ze("video");if(Y(b,"leaflet-image-layer"),this._zoomAnimated&&Y(b,"leaflet-zoom-animated"),this.options.className&&Y(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=[],O=0;O0?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;GO?(b.height=O+"px",Y(p,G)):Ae(p,G),this._containerWidth=this._container.offsetWidth},_animateZoom:function(p){var b=this._map._latLngToNewLayerPoint(this._latlng,p.zoom,p.center),T=this._getAnchor();gr(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(ut(this._container,"marginBottom"),10)||0,T=this._container.offsetHeight+b,N=this._containerWidth,O=new F(this._containerLeft,-T-this._containerBottom);O._add(eo(this._container));var G=p.layerPointToContainerPoint(O),X=$(this.options.autoPanPadding),ee=$(this.options.autoPanPaddingTopLeft||X),ie=$(this.options.autoPanPaddingBottomRight||X),pe=p.getSize(),ze=0,ft=0;G.x+N+ie.x>pe.x&&(ze=G.x+N-pe.x+ie.x),G.x-ze-ee.x<0&&(ze=G.x-ee.x),G.y+T+ie.y>pe.y&&(ft=G.y+T-pe.y+ie.y),G.y-ft-ee.y<0&&(ft=G.y-ee.y),(ze||ft)&&(this.options.keepInView&&(this._autopanning=!0),p.fire("autopanstart").panBy([ze,ft]))}},_getAnchor:function(){return $(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}}),mY=function(p,b){return new by(p,b)};zt.mergeOptions({closePopupOnClick:!0}),zt.include({openPopup:function(p,b,T){return this._initOverlay(by,p,b,T).openOn(this),this},closePopup:function(p){return p=arguments.length?p:this._popup,p&&p.close(),this}}),Mi.include({bindPopup:function(p,b){return this._popup=this._initOverlay(by,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 ss||(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)){Ru(p);var b=p.layer||p.target;if(this._popup._source===b&&!(b instanceof ll)){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 wy=no.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,opacity:.9},onAdd:function(p){no.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){no.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=no.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=Ze("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,O=this._container,G=N.latLngToContainerPoint(N.getCenter()),X=N.layerPointToContainerPoint(p),ee=this.options.direction,ie=O.offsetWidth,pe=O.offsetHeight,ze=$(this.options.offset),ft=this._getAnchor();ee==="top"?(b=ie/2,T=pe):ee==="bottom"?(b=ie/2,T=0):ee==="center"?(b=ie/2,T=pe/2):ee==="right"?(b=0,T=pe/2):ee==="left"?(b=ie,T=pe/2):X.xthis.options.maxZoom||TN?this._retainParent(O,G,X,N):!1)},_retainChildren:function(p,b,T,N){for(var O=2*p;O<2*p+2;O++)for(var G=2*b;G<2*b+2;G++){var X=new F(O,G);X.z=T+1;var ee=this._tileCoordsToKey(X),ie=this._tiles[ee];if(ie&&ie.active){ie.retain=!0;continue}else ie&&ie.loaded&&(ie.retain=!0);T+1this.options.maxZoom||this.options.minZoom!==void 0&&O1){this._setView(p,T);return}for(var ft=O.min.y;ft<=O.max.y;ft++)for(var kt=O.min.x;kt<=O.max.x;kt++){var $n=new F(kt,ft);if($n.z=this._tileZoom,!!this._isValidTile($n)){var en=this._tiles[this._tileCoordsToKey($n)];en?en.current=!0:X.push($n)}}if(X.sort(function(sa,id){return sa.distanceTo(G)-id.distanceTo(G)}),X.length!==0){this._loading||(this._loading=!0,this.fire("loading"));var Wa=document.createDocumentFragment();for(kt=0;ktT.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),O=N.add(T),G=b.unproject(N,p.z),X=b.unproject(O,p.z);return[G,X]},_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&&(yt(b.el),delete this._tiles[p],this.fire("tileunload",{tile:b.el,coords:this._keyToTileCoords(p)}))},_initTile:function(p){Y(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,$e.ielt9&&this.options.opacity<1&&dt(p,this.options.opacity)},_addTile:function(p,b){var T=this._getTilePos(p),N=this._tileCoordsToKey(p),O=this.createTile(this._wrapCoords(p),o(this._tileReady,this,p));this._initTile(O),this.createTile.length<2&&j(o(this._tileReady,this,p,null,O)),gr(O,T),this._tiles[N]={el:O,coords:p,current:!0},b.appendChild(O),this.fire("tileloadstart",{tile:O,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?(dt(T.el,0),z(this._fadeFrame),this._fadeFrame=j(this._updateOpacity,this)):(T.active=!0,this._pruneTiles()),b||(Y(T.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:T.el,coords:p})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),$e.ielt9||!this._map._fadeAnimated?j(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 Z(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 _Y(p){return new Rv(p)}var ad=Rv.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&&$e.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 Ie(T,"load",o(this._tileOnLoad,this,b,T)),Ie(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:$e.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){$e.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;yt(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),Rv.prototype._removeTile.call(this,p)},_tileReady:function(p,b,T){if(!(!this._map||T&&T.getAttribute("src")===C))return Rv.prototype._tileReady.call(this,p,b,T)}});function aD(p,b){return new ad(p,b)}var iD=ad.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 O=b.detectRetina&&$e.retina?2:1,G=this.getTileSize();T.width=G.x*O,T.height=G.y*O,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,ad.prototype.onAdd.call(this,p)},getTileUrl:function(p){var b=this._tileCoordsToNwSe(p),T=this._crs,N=J(T.project(b[0]),T.project(b[1])),O=N.min,G=N.max,X=(this._wmsVersion>=1.3&&this._crs===KP?[O.y,O.x,G.y,G.x]:[O.x,O.y,G.x,G.y]).join(","),ee=ad.prototype.getTileUrl.call(this,p);return ee+y(this.wmsParams,ee,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+X},setParams:function(p,b){return a(this.wmsParams,p),b||this.redraw(),this}});function bY(p,b){return new iD(p,b)}ad.WMS=iD,aD.wms=bY;var cs=Mi.extend({options:{padding:.1},initialize:function(p){m(this,p),l(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),Y(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),O=this._map.project(this._center,b),G=N.multiplyBy(-T).add(O).subtract(this._map._getNewPixelOrigin(p,b));$e.any3d?Qi(this._container,G,T):gr(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 Z(T,T.add(b.multiplyBy(1+p*2)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),oD=cs.extend({options:{tolerance:0},getEvents:function(){var p=cs.prototype.getEvents.call(this);return p.viewprereset=this._onViewPreReset,p},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){cs.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var p=this._container=document.createElement("canvas");Ie(p,"mousemove",this._onMouseMove,this),Ie(p,"click dblclick mousedown mouseup contextmenu",this._onClick,this),Ie(p,"mouseout",this._handleMouseOut,this),p._leaflet_disable_events=!0,this._ctx=p.getContext("2d")},_destroyContainer:function(){z(this._redrawRequest),delete this._ctx,yt(this._container),Wt(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)){cs.prototype._update.call(this);var p=this._bounds,b=this._container,T=p.getSize(),N=$e.retina?2:1;gr(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",$e.retina&&this._ctx.scale(2,2),this._ctx.translate(-p.min.x,-p.min.y),this.fire("update")}},_reset:function(){cs.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,O;for(O=0;O')}}catch{}return function(p){return document.createElement("<"+p+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}(),wY={_initContainer:function(){this._container=Ze("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(cs.prototype._update.call(this),this.fire("update"))},_initPath:function(p){var b=p._container=Ov("shape");Y(b,"leaflet-vml-shape "+(this.options.className||"")),b.coordsize="1 1",p._path=Ov("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;yt(b),p.removeInteractiveTarget(b),delete this._layers[l(p)]},_updateStyle:function(p){var b=p._stroke,T=p._fill,N=p.options,O=p._container;O.stroked=!!N.stroke,O.filled=!!N.fill,N.stroke?(b||(b=p._stroke=Ov("stroke")),O.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&&(O.removeChild(b),p._stroke=null),N.fill?(T||(T=p._fill=Ov("fill")),O.appendChild(T),T.color=N.fillColor||N.color,T.opacity=N.fillOpacity):T&&(O.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){oa(p._container)},_bringToBack:function(p){cn(p._container)}},Sy=$e.vml?Ov:qe,zv=cs.extend({_initContainer:function(){this._container=Sy("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=Sy("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){yt(this._container),Wt(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_update:function(){if(!(this._map._animatingZoom&&this._bounds)){cs.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)),gr(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=Sy("path");p.options.className&&Y(b,p.options.className),p.options.interactive&&Y(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){yt(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,Fe(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,O="a"+T+","+N+" 0 1,0 ",G=p._empty()?"M0 0":"M"+(b.x-T)+","+b.y+O+T*2+",0 "+O+-T*2+",0 ";this._setPath(p,G)},_setPath:function(p,b){p._path.setAttribute("d",b)},_bringToFront:function(p){oa(p._path)},_bringToBack:function(p){cn(p._path)}});$e.vml&&zv.include(wY);function lD(p){return $e.svg||$e.vml?new zv(p):null}zt.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&&sD(p)||lD(p)}});var uD=rd.extend({initialize:function(p,b){rd.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 SY(p,b){return new uD(p,b)}zv.create=Sy,zv.pointsToPath=Fe,us.geometryToLayer=gy,us.coordsToLatLng=Ew,us.coordsToLatLngs=my,us.latLngToCoords=Rw,us.latLngsToCoords=yy,us.getFeature=nd,us.asFeature=xy,zt.mergeOptions({boxZoom:!0});var cD=ro.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(){Ie(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){Wt(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){yt(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(),al(),Kh(),this._startPoint=this._map.mouseEventToContainerPoint(p),Ie(document,{contextmenu:Ru,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(p){this._moved||(this._moved=!0,this._box=Ze("div","leaflet-zoom-box",this._container),Y(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(p);var b=new Z(this._point,this._startPoint),T=b.getSize();gr(this._box,b.min),this._box.style.width=T.x+"px",this._box.style.height=T.y+"px"},_finish:function(){this._moved&&(yt(this._box),Ae(this._container,"leaflet-crosshair")),il(),Jh(),Wt(document,{contextmenu:Ru,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())}});zt.addInitHook("addHandler","boxZoom",cD),zt.mergeOptions({doubleClickZoom:!0});var hD=ro.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,O=p.originalEvent.shiftKey?T-N:T+N;b.options.doubleClickZoom==="center"?b.setZoom(O):b.setZoomAround(p.containerPoint,O)}});zt.addInitHook("addHandler","doubleClickZoom",hD),zt.mergeOptions({dragging:!0,inertia:!0,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var dD=ro.extend({addHooks:function(){if(!this._draggable){var p=this._map;this._draggable=new sl(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))}Y(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){Ae(this._map._container,"leaflet-grab"),Ae(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=J(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,O=(N-b+T)%p+b-T,G=(N+b+T)%p-b-T,X=Math.abs(O+T)0?G:-G))-b;this._delta=0,this._startTime=null,X&&(p.options.scrollWheelZoom==="center"?p.setZoom(b+X):p.setZoomAround(this._lastMousePos,b+X))}});zt.addInitHook("addHandler","scrollWheelZoom",vD);var CY=600;zt.mergeOptions({tapHold:$e.touchNative&&$e.safari&&$e.mobile,tapTolerance:15});var pD=ro.extend({addHooks:function(){Ie(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){Wt(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()&&(Ie(document,"touchend",hn),Ie(document,"touchend touchcancel",this._cancelClickPrevent),this._simulateEvent("contextmenu",b))},this),CY),Ie(document,"touchend touchcancel contextmenu",this._cancel,this),Ie(document,"touchmove",this._onMove,this)}},_cancelClickPrevent:function p(){Wt(document,"touchend",hn),Wt(document,"touchend touchcancel",p)},_cancel:function(){clearTimeout(this._holdTimeout),Wt(document,"touchend touchcancel contextmenu",this._cancel,this),Wt(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)}});zt.addInitHook("addHandler","tapHold",pD),zt.mergeOptions({touchZoom:$e.touch,bounceAtZoomLimits:!0});var gD=ro.extend({addHooks:function(){Y(this._map._container,"leaflet-touch-zoom"),Ie(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){Ae(this._map._container,"leaflet-touch-zoom"),Wt(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(),Ie(document,"touchmove",this._onTouchMove,this),Ie(document,"touchend touchcancel",this._onTouchEnd,this),hn(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]),O=T.distanceTo(N)/this._startDist;if(this._zoom=b.getScaleZoom(O,this._startZoom),!b.options.bounceAtZoomLimits&&(this._zoomb.getMaxZoom()&&O>1)&&(this._zoom=b._limitZoom(this._zoom)),b.options.touchZoom==="center"){if(this._center=this._startLatLng,O===1)return}else{var G=T._add(N)._divideBy(2)._subtract(this._centerPoint);if(O===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 X=o(b._move,b,this._center,this._zoom,{pinch:!0,round:!1},void 0);this._animRequest=j(X,this,!0),hn(p)}},_onTouchEnd:function(){if(!this._moved||!this._zooming){this._zooming=!1;return}this._zooming=!1,z(this._animRequest),Wt(document,"touchmove",this._onTouchMove,this),Wt(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))}});zt.addInitHook("addHandler","touchZoom",gD),zt.BoxZoom=cD,zt.DoubleClickZoom=hD,zt.Drag=dD,zt.Keyboard=fD,zt.ScrollWheelZoom=vD,zt.TapHold=pD,zt.TouchZoom=gD,r.Bounds=Z,r.Browser=$e,r.CRS=He,r.Canvas=oD,r.Circle=jw,r.CircleMarker=py,r.Class=B,r.Control=Ti,r.DivIcon=nD,r.DivOverlay=no,r.DomEvent=GZ,r.DomUtil=Ot,r.Draggable=sl,r.Evented=U,r.FeatureGroup=ss,r.GeoJSON=us,r.GridLayer=Rv,r.Handler=ro,r.Icon=td,r.ImageOverlay=_y,r.LatLng=le,r.LatLngBounds=re,r.Layer=Mi,r.LayerGroup=ed,r.LineUtil=tY,r.Map=zt,r.Marker=vy,r.Mixin=XZ,r.Path=ll,r.Point=F,r.PolyUtil=qZ,r.Polygon=rd,r.Polyline=ls,r.Popup=by,r.PosAnimation=BP,r.Projection=rY,r.Rectangle=uD,r.Renderer=cs,r.SVG=zv,r.SVGOverlay=rD,r.TileLayer=ad,r.Tooltip=wy,r.Transformation=he,r.Util=D,r.VideoOverlay=tD,r.bind=o,r.bounds=J,r.canvas=sD,r.circle=cY,r.circleMarker=uY,r.control=Dv,r.divIcon=xY,r.extend=a,r.featureGroup=oY,r.geoJSON=eD,r.geoJson=fY,r.gridLayer=_Y,r.icon=sY,r.imageOverlay=vY,r.latLng=de,r.latLngBounds=Q,r.layerGroup=iY,r.map=HZ,r.marker=lY,r.point=$,r.polygon=dY,r.polyline=hY,r.popup=mY,r.rectangle=SY,r.setOptions=m,r.stamp=l,r.svg=lD,r.svgOverlay=gY,r.tileLayer=aD,r.tooltip=yY,r.transformation=ge,r.version=n,r.videoOverlay=pY;var TY=window.L;r.noConflict=function(){return window.L=TY,this},window.L=r})})(yN,yN.exports);var Mu=yN.exports;const yw=_N(Mu);function kv(e,t,r){return Object.freeze({instance:e,context:t,container:r})}function LP(e,t){return t==null?function(n,a){const i=E.useRef();return i.current||(i.current=e(n,a)),i}:function(n,a){const i=E.useRef();i.current||(i.current=e(n,a));const o=E.useRef(n),{instance:s}=i.current;return E.useEffect(function(){o.current!==n&&(t(s,n,o.current),o.current=n)},[s,n,a]),i}}function xZ(e,t){E.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 BSe(e){return function(r){const n=gw(),a=e(mw(r,n),n);return gZ(n.map,r.attribution),kP(a.current,r.eventHandlers),xZ(a.current,n),a}}function FSe(e,t){const r=E.useRef();E.useEffect(function(){if(t.pathOptions!==r.current){const a=t.pathOptions??{};e.instance.setStyle(a),r.current=a}},[e,t])}function VSe(e){return function(r){const n=gw(),a=e(mw(r,n),n);return kP(a.current,r.eventHandlers),xZ(a.current,n),FSe(a.current,r),a}}function _Z(e,t){const r=LP(e),n=zSe(r,t);return RSe(n)}function IP(e,t){const r=LP(e,t),n=VSe(r);return ESe(n)}function GSe(e,t){const r=LP(e,t),n=BSe(r);return OSe(n)}function HSe(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 PP(){return gw().map}function USe(e){const t=PP();return E.useEffect(function(){return t.on(e),function(){t.off(e)}},[t,e]),t}const bZ=IP(function({center:t,children:r,...n},a){const i=new Mu.CircleMarker(t,n);return kv(i,NP(a,{overlayContainer:i}))},PSe);function xN(){return xN=Object.assign||function(e){for(var t=1;t(v==null?void 0:v.map)??null,[v]);const m=E.useCallback(x=>{if(x!==null&&v===null){const _=new Mu.Map(x,c);r!=null&&u!=null?_.setView(r,u):e!=null&&_.fitBounds(e,t),l!=null&&_.whenReady(l),g(jSe(_))}},[]);E.useEffect(()=>()=>{v==null||v.map.remove()},[v]);const y=v?bf.createElement(yZ,{value:v},n):o??null;return bf.createElement("div",xN({},f,{ref:m}),y)}const wZ=E.forwardRef(WSe),$Se=IP(function({positions:t,...r},n){const a=new Mu.Polyline(t,r);return kv(a,NP(n,{overlayContainer:a}))},function(t,r,n){r.positions!==n.positions&&t.setLatLngs(r.positions)}),ZSe=_Z(function(t,r){const n=new Mu.Popup(t,r.overlayContainer);return kv(n,r)},function(t,r,{position:n},a){E.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])}),YSe=IP(function({bounds:t,...r},n){const a=new Mu.Rectangle(t,r);return kv(a,NP(n,{overlayContainer:a}))},function(t,r,n){r.bounds!==n.bounds&&t.setBounds(r.bounds)}),SZ=GSe(function({url:t,...r},n){const a=new Mu.TileLayer(t,mw(r,n));return kv(a,n)},function(t,r,n){HSe(t,r,n);const{url:a}=r;a!=null&&a!==n.url&&t.setUrl(a)}),XSe=_Z(function(t,r){const n=new Mu.Tooltip(t,r.overlayContainer);return kv(n,r)},function(t,r,{position:n},a){E.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])}),CZ="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=",TZ="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAABSCAMAAAAhFXfZAAAC91BMVEVMaXEzeak2f7I4g7g3g7cua5gzeKg8hJo3grY4g7c3grU0gLI2frE0daAubJc2gbQwd6QzeKk2gLMtd5sxdKIua5g1frA2f7IydaM0e6w2fq41fK01eqo3grgubJgta5cxdKI1f7AydaQydaMxc6EubJgvbJkwcZ4ubZkwcJwubZgubJcydqUydKIxapgubJctbJcubZcubJcvbJYubJcvbZkubJctbJctbZcubJg2f7AubJcrbZcubJcubJcua5g3grY0fq8ubJcubJdEkdEwhsw6i88vhswuhcsuhMtBjMgthMsrg8srgss6is8qgcs8i9A9iMYtg8spgcoogMo7hcMngMonf8olfso4gr8kfck5iM8jfMk4iM8he8k1fro7itAgesk2hs8eecgzfLcofssdeMg0hc4cd8g2hcsxeLQbdsgZdcgxeLImfcszhM0vda4xgckzhM4xg84wf8Yxgs4udKsvfcQucqhUndROmdM1fK0wcZ8vb5w0eqpQm9MzeKhXoNVcpdYydKNWn9VZotVKltJFjsIwcJ1Rms9OlslLmtH///8+kc9epdYzd6dbo9VHkMM2f7FHmNBClM8ydqVcpNY9hro3gLM9hLczealQmcw3fa46f7A8gLMxc6I3eagyc6FIldJMl9JSnNRSntNNl9JPnNJFi75UnM9ZodVKksg8kM45jc09e6ZHltFBk883gbRBh7pDk9EwcaBzn784g7dKkcY2i81Om9M7j85Llc81is09g7Q4grY/j9A0eqxKmdFFltBEjcXf6fFImdBCiLxJl9FGlNFBi78yiMxVndEvbpo6js74+vx+psPP3+o/ks5HkcpGmNCjwdZCkNDM3ehYoNJEls+lxNkxh8xHks0+jdC1zd5Lg6r+/v/H2ufz9/o3jM3t8/edvdM/k89Th61OiLBSjbZklbaTt9BfptdjmL1AicBHj8hGk9FAgK1dkLNTjLRekrdClc/k7fM0icy0y9tgp9c4jc2NtM9Dlc8zicxeXZn3AAAAQ3RSTlMAHDdTb4yPA+LtnEQmC4L2EmHqB7XA0d0sr478x4/Yd5i1zOfyPkf1sLVq4Nh3FvjxopQ2/STNuFzUwFIwxKaejILpIBEV9wAABhVJREFUeF6s1NdyFEcY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",MZ="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACkAAAApCAQAAAACach9AAACMUlEQVR4Ae3ShY7jQBAE0Aoz/f9/HTMzhg1zrdKUrJbdx+Kd2nD8VNudfsL/Th///dyQN2TH6f3y/BGpC379rV+S+qqetBOxImNQXL8JCAr2V4iMQXHGNJxeCfZXhSRBcQMfvkOWUdtfzlLgAENmZDcmo2TVmt8OSM2eXxBp3DjHSMFutqS7SbmemzBiR+xpKCNUIRkdkkYxhAkyGoBvyQFEJEefwSmmvBfJuJ6aKqKWnAkvGZOaZXTUgFqYULWNSHUckZuR1HIIimUExutRxwzOLROIG4vKmCKQt364mIlhSyzAf1m9lHZHJZrlAOMMztRRiKimp/rpdJDc9Awry5xTZCte7FHtuS8wJgeYGrex28xNTd086Dik7vUMscQOa8y4DoGtCCSkAKlNwpgNtphjrC6MIHUkR6YWxxs6Sc5xqn222mmCRFzIt8lEdKx+ikCtg91qS2WpwVfBelJCiQJwvzixfI9cxZQWgiSJelKnwBElKYtDOb2MFbhmUigbReQBV0Cg4+qMXSxXSyGUn4UbF8l+7qdSGnTC0XLCmahIgUHLhLOhpVCtw4CzYXvLQWQbJNmxoCsOKAxSgBJno75avolkRw8iIAFcsdc02e9iyCd8tHwmeSSoKTowIgvscSGZUOA7PuCN5b2BX9mQM7S0wYhMNU74zgsPBj3HU7wguAfnxxjFQGBE6pwN+GjME9zHY7zGp8wVxMShYX9NXvEWD3HbwJf4giO4CFIQxXScH1/TM+04kkBiAAAAAElFTkSuQmCC";delete yw.Icon.Default.prototype._getIconUrl;yw.Icon.Default.mergeOptions({iconUrl:CZ,iconRetinaUrl:TZ,shadowUrl:MZ});const UB=["#3b82f6","#a78bfa","#06b6d4","#f59e0b","#22c55e","#ec4899","#8b5cf6","#14b8a6"],qSe=["ROUTER","ROUTER_LATE","REPEATER","TRACKER"];function KSe(e){return e>12?"#22c55e":e>8?"#4ade80":e>5?"#f59e0b":e>3?"#f97316":"#ef4444"}function JSe(e){return e===null||e>46?0:e>44.5?1:e>43?2:3}function QSe(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 eCe({bounds:e}){const t=PP();return E.useEffect(()=>{e&&t.fitBounds(e,{padding:[50,50]})},[t,e]),null}function tCe({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 d.jsxs("div",{className:"min-w-[200px]",children:[d.jsx("div",{className:"font-semibold text-slate-800",children:e.short_name}),d.jsx("div",{className:"text-xs text-slate-600 mb-2",children:e.long_name}),d.jsxs("div",{className:"grid grid-cols-2 gap-x-4 gap-y-1 text-xs",children:[d.jsx("div",{className:"text-slate-500",children:"Role"}),d.jsx("div",{className:"text-slate-700 font-medium",children:e.role}),d.jsx("div",{className:"text-slate-500",children:"Hardware"}),d.jsx("div",{className:"text-slate-700",children:e.hardware||"Unknown"}),d.jsx("div",{className:"text-slate-500",children:"Battery"}),d.jsx("div",{className:"text-slate-700",children:r}),d.jsx("div",{className:"text-slate-500",children:"Last Heard"}),d.jsx("div",{className:"text-slate-700",children:QSe(e.last_heard)})]}),t&&d.jsxs("div",{className:"mt-3 pt-2 border-t border-slate-200 flex gap-2",children:[d.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:[d.jsx(Jc,{size:10}),"Google Maps"]}),d.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:[d.jsx(Jc,{size:10}),"OSM"]})]})]})}function rCe({nodes:e,edges:t,selectedNodeId:r,onSelectNode:n}){const a=E.useMemo(()=>e.filter(h=>h.latitude!==null&&h.longitude!==null),[e]),i=e.length-a.length,o=E.useMemo(()=>new Map(a.map(h=>[h.node_num,h])),[a]),s=E.useMemo(()=>t.filter(h=>o.has(h.from_node)&&o.has(h.to_node)),[t,o]),l=E.useMemo(()=>{if(a.length===0)return null;const h=a.map(v=>v.latitude),f=a.map(v=>v.longitude);return[[Math.min(...h),Math.min(...f)],[Math.max(...h),Math.max(...f)]]},[a]),u=[43.6,-114.4],c=E.useMemo(()=>{const h=new Set;return r!==null&&t.forEach(f=>{f.from_node===r&&h.add(f.to_node),f.to_node===r&&h.add(f.from_node)}),h},[r,t]);return d.jsxs("div",{className:"relative bg-bg-card border border-border overflow-hidden",children:[d.jsxs(wZ,{center:u,zoom:7,style:{width:"100%",height:"540px"},className:"z-0",children:[d.jsx(SZ,{url:"https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}{r}.png",attribution:'© OpenStreetMap, © CARTO'}),d.jsx(eCe,{bounds:l}),s.map((h,f)=>{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 d.jsx($Se,{positions:[[v.latitude,v.longitude],[g.latitude,g.longitude]],color:KSe(h.snr),weight:m&&r!==null?2.5:1.5,opacity:r===null?.3:m?.6:.08},f)}),a.map(h=>{const f=h.node_num===r,v=c.has(h.node_num),g=r===null||f||v,m=qSe.includes(h.role),y=JSe(h.latitude),x=UB[y%UB.length];return d.jsxs(bZ,{center:[h.latitude,h.longitude],radius:m?8:5,fillColor:m?x:"#111827",fillOpacity:g?.9:.2,stroke:!0,color:f?"#ffffff":x,weight:f?3:m?0:2,opacity:g?1:.3,eventHandlers:{click:()=>n(f?null:h.node_num)},children:[d.jsx(XSe,{direction:"top",offset:[0,-8],children:d.jsx("span",{className:"font-mono text-xs",children:h.short_name})}),d.jsx(ZSe,{children:d.jsx(tCe,{node:h})})]},h.node_num)})]}),d.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:[d.jsx(av,{size:12}),d.jsxs("span",{children:["Showing ",a.length," of ",e.length," nodes",i>0&&d.jsxs("span",{className:"text-slate-500",children:[" (",i," without coordinates)"]})]})]})]})}const WB=["#3b82f6","#a78bfa","#06b6d4","#f59e0b","#22c55e","#ec4899","#8b5cf6","#14b8a6"],nCe=["ROUTER","ROUTER_LATE","REPEATER","TRACKER"];function $B(e){return e>12?"#22c55e":e>8?"#4ade80":e>5?"#f59e0b":e>3?"#f97316":"#ef4444"}function aCe(e){return e>12?"excellent":e>8?"good":e>5?"fair":e>3?"marginal":"poor"}function iCe(e){return e===null||e>46?0:e>44.5?1:e>43?2:3}function oCe(e){return["Northern ID","Central ID","SW Idaho","SC Idaho"][e]||"Unknown"}function sCe(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 lCe(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 uCe({node:e,edges:t,nodes:r,onSelectNode:n}){const a=E.useMemo(()=>{if(!e)return[];const h=new Map(r.map(v=>[v.node_num,v])),f=[];return t.forEach(v=>{if(v.from_node===e.node_num){const g=h.get(v.to_node);g&&f.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&&f.push({node:g,snr:v.snr,quality:v.quality})}}),f.sort((v,g)=>g.snr-v.snr)},[e,t,r]);if(!e)return d.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:[d.jsx("div",{className:"w-12 h-12 rounded-full bg-bg-hover border border-border flex items-center justify-center mb-3",children:d.jsx(bi,{size:24,className:"text-slate-500"})}),d.jsx("p",{className:"text-sm text-slate-500 text-center",children:"Click a node to inspect"})]});const i=nCe.includes(e.role),o=iCe(e.latitude),s=WB[o%WB.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 d.jsxs("div",{className:"w-[250px] flex-shrink-0 bg-bg-card border-l border-border flex flex-col h-[540px] overflow-hidden",children:[d.jsxs("div",{className:"p-4 border-b border-border",children:[d.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}),d.jsx("div",{className:"font-mono text-lg text-slate-100",children:e.short_name}),d.jsx("div",{className:"text-xs text-slate-500 truncate",children:e.long_name})]}),d.jsxs("div",{className:"p-4 border-b border-border grid grid-cols-2 gap-3",children:[d.jsxs("div",{children:[d.jsx("div",{className:"text-xs text-slate-500 mb-0.5",children:"Role"}),d.jsx("div",{className:`text-sm font-medium ${i?"text-accent":"text-slate-300"}`,children:e.role})]}),d.jsxs("div",{children:[d.jsx("div",{className:"text-xs text-slate-500 mb-0.5",children:"Region"}),d.jsx("div",{className:"text-sm text-slate-300",children:oCe(o)})]}),d.jsxs("div",{children:[d.jsx("div",{className:"text-xs text-slate-500 mb-0.5",children:"Battery"}),d.jsxs("div",{className:"text-sm text-slate-300 flex items-center gap-1",children:[c&&d.jsx(rM,{size:12,className:"text-amber-400"}),u]})]}),d.jsxs("div",{children:[d.jsx("div",{className:"text-xs text-slate-500 mb-0.5",children:"Status"}),d.jsxs("div",{className:"flex items-center gap-1.5",children:[d.jsx("div",{className:`w-2 h-2 rounded-full ${lCe(e.last_heard)}`}),d.jsx("span",{className:"text-sm text-slate-300",children:sCe(e.last_heard)})]})]}),d.jsxs("div",{className:"col-span-2",children:[d.jsx("div",{className:"text-xs text-slate-500 mb-0.5",children:"Hardware"}),d.jsx("div",{className:"text-sm text-slate-300 font-mono truncate",children:e.hardware||"Unknown"})]})]}),l&&d.jsxs("div",{className:"px-4 py-3 border-b border-border flex gap-3",children:[d.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:[d.jsx(Jc,{size:10}),"Google Maps"]}),d.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:[d.jsx(Jc,{size:10}),"OSM"]})]}),d.jsxs("div",{className:"flex-1 overflow-y-auto",children:[d.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?d.jsx("div",{className:"divide-y divide-border",children:a.map(h=>d.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:$B(h.snr)},children:[d.jsxs("div",{className:"flex-1 min-w-0",children:[d.jsx("div",{className:"text-sm text-slate-200 font-mono truncate",children:h.node.short_name}),d.jsx("div",{className:"text-xs text-slate-500 truncate",children:h.node.long_name})]}),d.jsxs("div",{className:"text-right flex-shrink-0",children:[d.jsxs("div",{className:"text-xs font-mono",style:{color:$B(h.snr)},children:[h.snr.toFixed(1)," dB"]}),d.jsx("div",{className:"text-xs text-slate-500",children:aCe(h.snr)})]})]},h.node.node_num))}):d.jsx("div",{className:"px-4 py-6 text-center text-sm text-slate-500",children:"No known neighbors"})]})]})}const ZB=["ROUTER","ROUTER_LATE","REPEATER","TRACKER"];function cCe(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 hCe(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 dCe(e){return e.battery_level===null?"—":e.battery_level>100||e.voltage&&e.voltage>4.1?"USB ⚡":`${e.battery_level.toFixed(0)}%`}function YB(e){return e===null?"—":e>46?"Northern":e>44.5?"Central":e>43?"SW Idaho":"SC Idaho"}function fCe({nodes:e,selectedNodeId:t,onSelectNode:r}){const[n,a]=E.useState(""),[i,o]=E.useState("short_name"),[s,l]=E.useState("asc"),[u,c]=E.useState("all"),h=E.useMemo(()=>{let g=[...e];if(u==="infra"?g=g.filter(m=>ZB.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)||YB(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]),f=g=>{i===g?l(s==="asc"?"desc":"asc"):(o(g),l("asc"))},v=({field:g})=>i!==g?null:s==="asc"?d.jsx(mJ,{size:14,className:"inline ml-1"}):d.jsx(Em,{size:14,className:"inline ml-1"});return d.jsxs("div",{className:"bg-bg-card border border-border overflow-hidden",children:[d.jsxs("div",{className:"p-3 border-b border-border flex items-center gap-3",children:[d.jsxs("div",{className:"relative flex-1 max-w-xs",children:[d.jsx(v1,{size:14,className:"absolute left-3 top-1/2 -translate-y-1/2 text-slate-500"}),d.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"})]}),d.jsxs("div",{className:"flex items-center gap-1",children:[d.jsx(RV,{size:14,className:"text-slate-500 mr-1"}),["all","infra","online"].map(g=>d.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))]}),d.jsxs("div",{className:"text-xs text-slate-500 ml-auto",children:[h.length," of ",e.length," nodes"]})]}),d.jsxs("div",{className:"overflow-x-auto",children:[d.jsxs("table",{className:"w-full text-sm",children:[d.jsx("thead",{children:d.jsxs("tr",{className:"bg-bg-hover text-slate-400 text-xs",children:[d.jsx("th",{className:"w-8 px-3 py-2"}),d.jsxs("th",{className:"px-3 py-2 text-left cursor-pointer hover:text-slate-200",onClick:()=>f("short_name"),children:["Name ",d.jsx(v,{field:"short_name"})]}),d.jsxs("th",{className:"px-3 py-2 text-left cursor-pointer hover:text-slate-200",onClick:()=>f("role"),children:["Role ",d.jsx(v,{field:"role"})]}),d.jsx("th",{className:"px-3 py-2 text-left",children:"Region"}),d.jsxs("th",{className:"px-3 py-2 text-left cursor-pointer hover:text-slate-200",onClick:()=>f("battery_level"),children:[d.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"})," ",d.jsx(v,{field:"battery_level"})]}),d.jsxs("th",{className:"px-3 py-2 text-left cursor-pointer hover:text-slate-200",onClick:()=>f("last_heard"),children:[d.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"})," ",d.jsx(v,{field:"last_heard"})]}),d.jsxs("th",{className:"px-3 py-2 text-left cursor-pointer hover:text-slate-200",onClick:()=>f("hardware"),children:["Hardware ",d.jsx(v,{field:"hardware"})]})]})}),d.jsx("tbody",{className:"divide-y divide-border",children:h.slice(0,100).map(g=>{const m=ZB.includes(g.role),y=g.node_num===t;return d.jsxs("tr",{onClick:()=>r(g.node_num),className:`cursor-pointer transition-colors ${y?"bg-accent/10":"hover:bg-bg-hover"}`,children:[d.jsx("td",{className:"px-3 py-2",children:d.jsx("div",{className:`w-2 h-2 rounded-full ${cCe(g.last_heard)}`})}),d.jsxs("td",{className:"px-3 py-2",children:[d.jsx("div",{className:"font-mono text-slate-200",children:g.short_name}),d.jsx("div",{className:"text-xs text-slate-500 truncate max-w-[200px]",children:g.long_name})]}),d.jsx("td",{className:"px-3 py-2",children:d.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})}),d.jsx("td",{className:"px-3 py-2 text-slate-400",children:YB(g.latitude)}),d.jsx("td",{className:"px-3 py-2 font-mono text-slate-300",children:dCe(g)}),d.jsx("td",{className:"px-3 py-2 text-slate-400",children:hCe(g.last_heard)}),d.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&&d.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&&d.jsx("div",{className:"px-3 py-8 text-sm text-slate-500 text-center",children:"No nodes match your filters"})]})]})}function AZ(){const[e,t]=E.useState([]),[r,n]=E.useState([]),[a,i]=E.useState([]),[o,s]=E.useState(null),[l,u]=E.useState("topo"),[c,h]=E.useState(!0),[f,v]=E.useState(null);E.useEffect(()=>{document.title="Mesh — MeshAI",Promise.all([IJ(),PJ(),FJ()]).then(([y,x,_])=>{t(y),n(x),i(_),h(!1)}).catch(y=>{v(y.message),h(!1)})},[]);const g=E.useMemo(()=>e.find(y=>y.node_num===o)||null,[e,o]),m=E.useCallback(y=>{s(y)},[]);return c?d.jsx("div",{className:"flex items-center justify-center h-64",children:d.jsx("div",{className:"text-slate-400",children:"Loading mesh data..."})}):f?d.jsx("div",{className:"flex items-center justify-center h-64",children:d.jsxs("div",{className:"text-red-400",children:["Error: ",f]})}):d.jsxs("div",{className:"space-y-6",children:[d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsxs("div",{className:"text-sm text-slate-400",children:[e.length," nodes • ",r.length," edges"]}),d.jsxs("div",{className:"flex items-center bg-bg-card border border-border p-1",children:[d.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:[d.jsx(Sk,{size:14}),d.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"})]}),d.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:[d.jsx(BV,{size:14}),d.jsx("span",{title:"Nodes plotted by lat/lon on a basemap. Nodes without a reported position are clustered at the top edge.",children:"Geographic"})]})]})]}),d.jsxs("div",{className:"flex gap-0",children:[d.jsx("div",{className:"flex-1 min-w-0",children:l==="topo"?d.jsx(ISe,{nodes:e,edges:r,selectedNodeId:o,onSelectNode:m}):d.jsx(rCe,{nodes:e,edges:r,selectedNodeId:o,onSelectNode:m})}),d.jsx(uCe,{node:g,edges:r,nodes:e,onSelectNode:m})]}),d.jsx(fCe,{nodes:e,selectedNodeId:o,onSelectNode:m})]})}function $p({envVar:e,label:t="API Key",helper:r="",info:n=""}){const[a,i]=E.useState(null),[o,s]=E.useState(""),[l,u]=E.useState(!1),[c,h]=E.useState(!1),[f,v]=E.useState(""),[g,m]=E.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)}};E.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 d.jsxs("div",{className:"space-y-1",children:[d.jsxs("label",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:[t,a===null?d.jsx("span",{className:"text-xs px-2 py-0.5 rounded ml-2 bg-slate-800 text-slate-500",children:"Loading"}):a?d.jsx("span",{className:"text-xs px-2 py-0.5 rounded ml-2 bg-green-500/10 text-green-400",children:"Set"}):d.jsx("span",{className:"text-xs px-2 py-0.5 rounded ml-2 bg-slate-800 text-slate-500",children:"Not set"})]}),d.jsxs("div",{className:"flex gap-2",children:[d.jsxs("div",{className:"relative flex-1",children:[d.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"}),d.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?d.jsx(h1,{size:16}):d.jsx(rv,{size:16})})]}),d.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&&d.jsx("p",{className:"text-xs text-slate-600",children:r}),d.jsx("p",{className:"text-xs text-slate-600 font-mono",children:e}),f&&d.jsx("p",{className:"text-xs text-yellow-400",children:f}),g&&d.jsx("p",{className:"text-xs text-red-400",children:g})]})}function DP({label:e,value:t,onChange:r,helper:n,info:a,roleFilter:i,valueType:o="short_name"}){const[s,l]=E.useState([]),[u,c]=E.useState(!0),[h,f]=E.useState(""),[v,g]=E.useState(!1);E.useEffect(()=>{fetch("/api/nodes").then(S=>S.json()).then(S=>{l(S),c(!1)}).catch(()=>{l([]),c(!1)})},[]);const m=E.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,k,I,P;return((A=M.short_name)==null?void 0:A.toLowerCase().includes(C))||((k=M.long_name)==null?void 0:k.toLowerCase().includes(C))||((I=M.role)==null?void 0:I.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?d.jsxs("div",{className:"space-y-1",children:[d.jsx("label",{className:"block text-xs text-slate-500 uppercase tracking-wide",children:e}),d.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&&d.jsx("p",{className:"text-xs text-slate-600",children:n})]}):d.jsxs("div",{className:"space-y-1",children:[d.jsx("label",{className:"block text-xs text-slate-500 uppercase tracking-wide",children:e}),t.length>0&&d.jsx("div",{className:"flex flex-wrap gap-2 mb-2",children:t.map(S=>{const C=s.find(M=>y(M)===S);return d.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,d.jsx("button",{type:"button",onClick:()=>r(t.filter(M=>M!==S)),className:"hover:text-white",children:d.jsx(_u,{size:14})})]},S)})}),d.jsxs("div",{className:"relative",children:[d.jsxs("div",{className:"relative",children:[d.jsx(v1,{size:14,className:"absolute left-3 top-1/2 -translate-y-1/2 text-slate-500"}),d.jsx("input",{type:"text",value:h,onChange:S=>f(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&&d.jsxs(d.Fragment,{children:[d.jsx("div",{className:"fixed inset-0 z-40",onClick:()=>g(!1)}),d.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?d.jsx("div",{className:"p-3 text-sm text-slate-500 text-center",children:"No nodes found"}):m.map(S=>d.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:[d.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)&&d.jsx(Yr,{size:12,className:"text-white"})}),d.jsx("span",{className:"text-slate-200",children:w(S)})]},S.node_num))})]})]}),n&&d.jsx("p",{className:"text-xs text-slate-600",children:n})]})}function jP(e){const[t,r]=E.useState([]),[n,a]=E.useState(!0);E.useEffect(()=>{fetch("/api/channels").then(f=>f.json()).then(f=>{r(f),a(!1)}).catch(()=>{r([]),a(!1)})},[]);const i=f=>{const v=f.role==="PRIMARY"?"Primary":f.role==="SECONDARY"?"Secondary":"";return`${f.index}: ${f.name}${v?` (${v})`:""}`};if(!n&&t.length===0)return e.mode==="single"?d.jsxs("div",{className:"space-y-1",children:[d.jsx("label",{className:"block text-xs text-slate-500 uppercase tracking-wide",children:e.label}),d.jsx("input",{type:"number",value:e.value,onChange:f=>e.onChange(Number(f.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&&d.jsx("p",{className:"text-xs text-slate-600",children:e.helper})]}):d.jsxs("div",{className:"space-y-1",children:[d.jsx("label",{className:"block text-xs text-slate-500 uppercase tracking-wide",children:e.label}),d.jsx("input",{type:"text",value:e.value.join(", "),onChange:f=>{const v=f.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&&d.jsx("p",{className:"text-xs text-slate-600",children:e.helper})]});if(e.mode==="single"){const{value:f,onChange:v,label:g,helper:m,includeDisabled:y}=e,x=t.filter(_=>_.enabled);return d.jsxs("div",{className:"space-y-1",children:[d.jsx("label",{className:"block text-xs text-slate-500 uppercase tracking-wide",children:g}),d.jsxs("select",{value:f,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&&d.jsx("option",{value:-1,children:"Disabled"}),x.map(_=>d.jsx("option",{value:_.index,children:i(_)},_.index))]}),m&&d.jsx("p",{className:"text-xs text-slate-600",children:m})]})}const{value:o,onChange:s,label:l,helper:u}=e,c=t.filter(f=>f.enabled),h=f=>{o.includes(f)?s(o.filter(v=>v!==f)):s([...o,f].sort((v,g)=>v-g))};return d.jsxs("div",{className:"space-y-1",children:[d.jsx("label",{className:"block text-xs text-slate-500 uppercase tracking-wide",children:l}),d.jsxs("div",{className:"border border-[#1e2a3a] p-2 space-y-1",children:[c.map(f=>d.jsxs("label",{onClick:()=>h(f.index),className:"flex items-center gap-2 p-2 rounded hover:bg-[#0a0e17] cursor-pointer",children:[d.jsx("div",{className:`w-4 h-4 rounded border flex items-center justify-center ${o.includes(f.index)?"bg-accent border-accent":"border-slate-600"}`,children:o.includes(f.index)&&d.jsx(Yr,{size:12,className:"text-white"})}),d.jsx("span",{className:"text-sm text-slate-200",children:i(f)})]},f.index)),c.length===0&&d.jsx("div",{className:"text-sm text-slate-500 p-2",children:"No channels available"})]}),u&&d.jsx("p",{className:"text-xs text-slate-600",children:u})]})}function NZ({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]=E.useState(null),[o,s]=E.useState(""),[l,u]=E.useState(!1),[c,h]=E.useState(null),f=async()=>{u(!0),h(null);try{const v=await kJ();i(v.ports),s(v.note||"")}catch(v){h(v instanceof Error?v.message:"Failed to list serial ports"),i([])}finally{u(!1)}};return d.jsxs("div",{className:"space-y-2",children:[d.jsxs("div",{className:"space-y-1",children:[d.jsx("label",{className:"block text-xs text-slate-500 uppercase tracking-wide",children:r}),d.jsxs("div",{className:"flex gap-2",children:[d.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"}),d.jsxs("button",{type:"button",onClick:f,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:[d.jsx(Zi,{size:14,className:l?"animate-spin":""}),l?"Detecting...":"Detect USB devices"]})]}),n&&d.jsx("p",{className:"text-xs text-slate-600",children:n})]}),c&&d.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?d.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?"}):d.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 d.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:[d.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&&d.jsx(Yr,{size:12,className:"text-white"})}),d.jsxs("div",{className:"min-w-0 flex-1",children:[d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx("span",{className:"text-sm text-slate-200 truncate",children:m}),v.likely_radio&&d.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:[d.jsx(bi,{size:10})," likely radio"]})]}),d.jsx("div",{className:"text-xs text-slate-500 font-mono truncate",children:v.stable_path}),v.manufacturer&&d.jsx("div",{className:"text-xs text-slate-600 truncate",children:v.manufacturer})]})]},v.stable_path+v.device)})})),o&&d.jsx("p",{className:"text-xs text-slate-600 italic",children:o})]})}const Y2=[{key:"bot",label:"Bot",icon:_k},{key:"response",label:"Response",icon:wk},{key:"history",label:"History",icon:EV},{key:"memory",label:"Memory",icon:gJ},{key:"context",label:"Context",icon:rv},{key:"commands",label:"Commands",icon:UV},{key:"llm",label:"LLM",icon:jV},{key:"weather",label:"Weather",icon:kh},{key:"knowledge",label:"Knowledge",icon:LV},{key:"mesh_intelligence",label:"Intelligence",icon:Oo},{key:"dashboard",label:"Dashboard",icon:zV}],ba={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."},vCe=[{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"}],pCe=[{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 Wi({info:e,link:t,linkText:r="Learn more"}){const[n,a]=E.useState(!1),i=E.useRef(null);return E.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]),d.jsxs("div",{className:"relative inline-block",ref:i,children:[d.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&&d.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:[d.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:d.jsx(_u,{size:12})}),d.jsx("div",{className:"pr-4",children:e}),t&&d.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," ",d.jsx(Jc,{size:10})]})]})]})}function wa({text:e}){return d.jsx("p",{className:"text-sm text-slate-500 mb-6 pb-4 border-b border-[#1e2a3a]",children:e})}function gt({label:e,value:t,onChange:r,type:n="text",placeholder:a="",helper:i="",info:o="",infoLink:s=""}){const[l,u]=E.useState(!1),c=n==="password";return d.jsxs("div",{className:"space-y-1",children:[d.jsxs("label",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:[e,o&&d.jsx(Wi,{info:o,link:s})]}),d.jsxs("div",{className:"relative",children:[d.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&&d.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?d.jsx(h1,{size:16}):d.jsx(rv,{size:16})})]}),i&&d.jsx("p",{className:"text-xs text-slate-600",children:i})]})}function Ne({label:e,value:t,onChange:r,min:n,max:a,step:i=1,helper:o="",info:s="",infoLink:l=""}){return d.jsxs("div",{className:"space-y-1",children:[d.jsxs("label",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:[e,s&&d.jsx(Wi,{info:s,link:l})]}),d.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&&d.jsx("p",{className:"text-xs text-slate-600",children:o})]})}function qt({label:e,checked:t,onChange:r,helper:n="",info:a="",infoLink:i=""}){return d.jsxs("div",{className:"flex items-center justify-between py-2",children:[d.jsxs("div",{children:[d.jsxs("span",{className:"flex items-center text-sm text-slate-300",children:[e,a&&d.jsx(Wi,{info:a,link:i})]}),n&&d.jsx("p",{className:"text-xs text-slate-600",children:n})]}),d.jsx("button",{type:"button",onClick:()=>r(!t),className:`relative w-11 h-6 rounded-full transition-colors ${t?"bg-accent":"bg-[#1e2a3a]"}`,children:d.jsx("span",{className:`absolute top-1 left-1 w-4 h-4 rounded-full bg-white transition-transform ${t?"translate-x-5":""}`})})]})}function jn({label:e,value:t,onChange:r,options:n,helper:a="",info:i="",infoLink:o=""}){return d.jsxs("div",{className:"space-y-1",children:[d.jsxs("label",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:[e,i&&d.jsx(Wi,{info:i,link:o})]}),d.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=>d.jsx("option",{value:s.value,children:s.label},s.value))}),a&&d.jsx("p",{className:"text-xs text-slate-600",children:a})]})}function gCe({label:e,value:t,onChange:r,rows:n=4,helper:a="",info:i="",infoLink:o=""}){return d.jsxs("div",{className:"space-y-1",children:[d.jsxs("label",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:[e,i&&d.jsx(Wi,{info:i,link:o})]}),d.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&&d.jsx("p",{className:"text-xs text-slate-600",children:a})]})}function Dn({label:e,value:t,onChange:r,helper:n="",info:a="",infoLink:i=""}){const[o,s]=E.useState(t.join(", "));E.useEffect(()=>{s(t.join(", "))},[t]);const l=()=>{const u=o.split(",").map(c=>c.trim()).filter(Boolean);r(u)};return d.jsxs("div",{className:"space-y-1",children:[d.jsxs("label",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:[e,a&&d.jsx(Wi,{info:a,link:i})]}),d.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&&d.jsx("p",{className:"text-xs text-slate-600",children:n})]})}function X2({label:e,value:t,onChange:r,helper:n="",info:a="",infoLink:i=""}){const[o,s]=E.useState(t.join(", "));E.useEffect(()=>{s(t.join(", "))},[t]);const l=()=>{const u=o.split(",").map(c=>parseInt(c.trim(),10)).filter(c=>!isNaN(c));r(u)};return d.jsxs("div",{className:"space-y-1",children:[d.jsxs("label",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:[e,a&&d.jsx(Wi,{info:a,link:i})]}),d.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&&d.jsx("p",{className:"text-xs text-slate-600",children:n})]})}function Pn({label:e,description:t,checked:r,onChange:n,threshold:a,onThresholdChange:i,thresholdLabel:o,thresholdMin:s,thresholdMax:l,thresholdStep:u=1,thresholdSuffix:c=""}){return d.jsxs("div",{className:"border border-[#1e2a3a] p-3 space-y-2",children:[d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsxs("div",{className:"flex-1",children:[d.jsx("span",{className:"text-sm text-slate-300",children:e}),d.jsx("p",{className:"text-xs text-slate-600",children:t})]}),d.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:d.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&&d.jsxs("div",{className:"flex items-center gap-2 pt-2 border-t border-[#1e2a3a]",children:[d.jsxs("span",{className:"text-xs text-slate-500",children:[o||"Threshold",":"]}),d.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&&d.jsx("span",{className:"text-xs text-slate-500",children:c})]})]})}function mCe({data:e,onChange:t}){return d.jsxs("div",{className:"space-y-4",children:[d.jsx(wa,{text:ba.bot}),d.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[d.jsx(gt,{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."}),d.jsx(gt,{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."}),d.jsx(gt,{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."})]}),d.jsx(qt,{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."}),d.jsx(qt,{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 yCe({data:e,onChange:t}){return d.jsxs("div",{className:"space-y-4",children:[d.jsx(wa,{text:ba.connection}),d.jsx(jn,{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"?d.jsx(NZ,{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"}):d.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[d.jsx(gt,{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"}),d.jsx(Ne,{label:"TCP Port",value:e.tcp_port,onChange:r=>t({...e,tcp_port:r}),min:1,max:65535,helper:"Default 4403 for meshtasticd"})]}),d.jsx("div",{className:"pt-2",children:d.jsx(uf,{to:"/meshcore/connection",className:"inline-flex items-center gap-1 text-xs text-slate-500 hover:text-accent transition-colors",children:"→ MeshCore connection"})})]})}function xCe({data:e,onChange:t}){return d.jsxs("div",{className:"space-y-4",children:[d.jsx(wa,{text:ba.response}),d.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[d.jsx(Ne,{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."}),d.jsx(Ne,{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."})]}),d.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[d.jsx(Ne,{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."}),d.jsx(Ne,{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 _Ce({data:e,onChange:t}){return d.jsxs("div",{className:"space-y-4",children:[d.jsx(wa,{text:ba.history}),d.jsx(gt,{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."}),d.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[d.jsx(Ne,{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."}),d.jsx(Ne,{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."})]}),d.jsx(qt,{label:"Auto Cleanup",checked:e.auto_cleanup,onChange:r=>t({...e,auto_cleanup:r}),helper:"Automatically prune old conversations"}),e.auto_cleanup&&d.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[d.jsx(Ne,{label:"Cleanup Interval (hours)",value:e.cleanup_interval_hours,onChange:r=>t({...e,cleanup_interval_hours:r}),min:1,helper:"Hours between cleanup runs"}),d.jsx(Ne,{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 bCe({data:e,onChange:t}){return d.jsxs("div",{className:"space-y-4",children:[d.jsx(wa,{text:ba.memory}),d.jsx(qt,{label:"Enable Memory",checked:e.enabled,onChange:r=>t({...e,enabled:r}),helper:"Keep conversation context between messages"}),e.enabled&&d.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[d.jsx(Ne,{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."}),d.jsx(Ne,{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 wCe({data:e,onChange:t}){return d.jsxs("div",{className:"space-y-4",children:[d.jsx(wa,{text:ba.context}),d.jsx(qt,{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&&d.jsx(d.Fragment,{children:d.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[d.jsx(Ne,{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."}),d.jsx(Ne,{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 SCe({data:e,onChange:t}){const r=new Set(e.disabled_commands.map(s=>s.toLowerCase())),[n,a]=E.useState(()=>Object.entries(e.custom_commands||{}));E.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 d.jsxs("div",{className:"space-y-4",children:[d.jsx(wa,{text:ba.commands}),d.jsx(qt,{label:"Enable Commands",checked:e.enabled,onChange:s=>t({...e,enabled:s}),helper:"Allow !commands on the mesh"}),e.enabled&&d.jsxs(d.Fragment,{children:[d.jsx(gt,{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."}),d.jsxs("div",{className:"space-y-2",children:[d.jsxs("label",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:["Available Commands",d.jsx(Wi,{info:"Toggle commands on or off. Disabled commands won't respond when users invoke them."})]}),d.jsx("div",{className:"grid gap-1",children:vCe.map(s=>{const l=!r.has(s.name.toLowerCase());return d.jsxs("div",{className:"flex items-center justify-between p-2 bg-[#0a0e17] border border-[#1e2a3a] rounded hover:border-[#2a3a4a] transition-colors",children:[d.jsxs("div",{className:"flex items-center gap-3",children:[d.jsxs("code",{className:"text-accent text-sm",children:["!",s.name]}),d.jsx("span",{className:"text-xs text-slate-500",children:s.description})]}),d.jsx("button",{type:"button",onClick:()=>o(s.name),className:`relative w-9 h-5 rounded-full transition-colors ${l?"bg-accent":"bg-[#1e2a3a]"}`,children:d.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)})})]}),d.jsxs("div",{className:"space-y-2",children:[d.jsxs("label",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:["Custom Commands",d.jsx(Wi,{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)=>d.jsxs("div",{className:"flex items-start gap-2",children:[d.jsx("input",{type:"text",value:s,onChange:c=>{const h=n.map((f,v)=>v===u?[c.target.value,f[1]]:f);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"}),d.jsx("input",{type:"text",value:l,onChange:c=>{const h=n.map((f,v)=>v===u?[f[0],c.target.value]:f);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"}),d.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:d.jsx(ui,{size:14})})]},u)),d.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:[d.jsx(li,{size:16})," Add Custom Command"]})]})]})]})}function CCe({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 d.jsxs("div",{className:"space-y-4",children:[d.jsx(wa,{text:ba.llm}),d.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[d.jsx(jn,{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."}),d.jsx(gt,{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)."})]}),d.jsx($p,{envVar:r,label:"API Key",helper:"Secret stored in /data/secrets/.env; config holds the ${VAR} ref"}),d.jsx(gt,{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."}),d.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[d.jsx(Ne,{label:"Timeout (sec)",value:e.timeout,onChange:n=>t({...e,timeout:n}),min:5,max:120,helper:"Maximum seconds to wait for response"}),d.jsx(Ne,{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"})]}),d.jsx(qt,{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&&d.jsx(gCe,{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."}),d.jsx(qt,{label:"Web Search",checked:e.web_search,onChange:n=>t({...e,web_search:n}),helper:"Enable web search tool (Open WebUI feature)"}),d.jsx(qt,{label:"Google Grounding",checked:e.google_grounding,onChange:n=>t({...e,google_grounding:n}),helper:"Ground responses in web search (Gemini only)"})]})}function TCe({data:e,onChange:t}){return d.jsxs("div",{className:"space-y-4",children:[d.jsx(wa,{text:ba.weather}),d.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[d.jsx(jn,{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"}),d.jsx(jn,{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"})]}),d.jsx(gt,{label:"Default Location",value:e.default_location,onChange:r=>t({...e,default_location:r}),placeholder:"Your city, state",helper:"Location when none specified"}),d.jsx(gt,{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)"}),d.jsx(gt,{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 MCe({data:e,onChange:t}){return d.jsxs("div",{className:"space-y-4",children:[d.jsx(wa,{text:ba.meshmonitor}),d.jsx(qt,{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&&d.jsxs(d.Fragment,{children:[d.jsx(gt,{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."}),d.jsx(qt,{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."}),d.jsx(Ne,{label:"Refresh Interval (sec)",value:e.refresh_interval,onChange:r=>t({...e,refresh_interval:r}),min:10,helper:"How often to fetch patterns"}),d.jsx(qt,{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 ACe({data:e,onChange:t}){return d.jsxs("div",{className:"space-y-4",children:[d.jsx(wa,{text:ba.knowledge}),d.jsx(qt,{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&&d.jsxs(d.Fragment,{children:[d.jsx(jn,{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")&&d.jsxs(d.Fragment,{children:[d.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[d.jsx(gt,{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."}),d.jsx(Ne,{label:"Qdrant Port",value:e.qdrant_port,onChange:r=>t({...e,qdrant_port:r}),helper:"Default 6333"})]}),d.jsx(gt,{label:"Collection",value:e.qdrant_collection,onChange:r=>t({...e,qdrant_collection:r}),helper:"Qdrant collection name"}),d.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[d.jsx(gt,{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."}),d.jsx(Ne,{label:"TEI Port",value:e.tei_port,onChange:r=>t({...e,tei_port:r}),helper:"Default 8090"})]}),d.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[d.jsx(gt,{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."}),d.jsx(Ne,{label:"Sparse Port",value:e.sparse_port,onChange:r=>t({...e,sparse_port:r}),helper:"Default 8091"})]}),d.jsx(qt,{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."})]}),d.jsx(gt,{label:"SQLite DB Path",value:e.db_path,onChange:r=>t({...e,db_path:r}),helper:"Local knowledge database file"}),d.jsx(Ne,{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]=E.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 d.jsxs("div",{className:"border border-[#1e2a3a] overflow-hidden",children:[d.jsxs("div",{className:"flex items-center justify-between p-3 bg-[#0a0e17] cursor-pointer",onClick:()=>a(!n),children:[d.jsxs("div",{className:"flex items-center gap-3",children:[n?d.jsx(Em,{size:16}):d.jsx(Ah,{size:16}),d.jsx("div",{className:`w-2 h-2 rounded-full ${e.enabled?"bg-green-500":"bg-slate-500"}`}),d.jsx("span",{className:"font-mono text-sm text-slate-200",children:e.name||"Unnamed Source"}),d.jsx("span",{className:"text-xs text-slate-500 bg-[#1e2a3a] px-2 py-0.5 rounded",children:e.type})]}),d.jsx("button",{onClick:o=>{o.stopPropagation(),r()},className:"p-1 text-red-400 hover:text-red-300 hover:bg-red-500/10 rounded",children:d.jsx(ui,{size:14})})]}),n&&d.jsxs("div",{className:"p-4 space-y-4 border-t border-[#1e2a3a]",children:[d.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[d.jsx(gt,{label:"Name",value:e.name,onChange:o=>t({...e,name:o}),helper:"Friendly name for this source"}),d.jsx(jn,{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"&&d.jsx(gt,{label:"URL",value:e.url,onChange:o=>t({...e,url:o}),helper:"Full URL including protocol"}),e.type==="meshmonitor"&&d.jsx(gt,{label:"API Token",value:e.api_token,onChange:o=>t({...e,api_token:o}),type:"password",helper:"Bearer token for authentication"}),e.type==="mqtt"&&d.jsxs(d.Fragment,{children:[d.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[d.jsx(gt,{label:"Host",value:e.host||"",onChange:o=>t({...e,host:o}),helper:"MQTT broker hostname"}),d.jsx(Ne,{label:"Port",value:e.port||1883,onChange:o=>t({...e,port:o}),min:1,max:65535,helper:"1883 plain, 8883 TLS"})]}),d.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[d.jsx(gt,{label:"Username",value:e.username||"",onChange:o=>t({...e,username:o})}),d.jsx(gt,{label:"Password",value:e.password||"",onChange:o=>t({...e,password:o}),type:"password"})]}),d.jsx(gt,{label:"Topic Root",value:e.topic_root||"msh/US",onChange:o=>t({...e,topic_root:o}),helper:"Base topic to subscribe to"}),d.jsx(qt,{label:"Use TLS",checked:e.use_tls||!1,onChange:o=>t({...e,use_tls:o}),helper:"Encrypt MQTT connection"})]}),d.jsx(Ne,{label:"Refresh Interval (sec)",value:e.refresh_interval,onChange:o=>t({...e,refresh_interval:o}),min:10,helper:"Polling frequency"}),d.jsx(qt,{label:"Enabled",checked:e.enabled,onChange:o=>t({...e,enabled:o})}),d.jsx(qt,{label:"Polite Mode",checked:e.polite_mode,onChange:o=>t({...e,polite_mode:o}),helper:"Reduce polling for shared instances"})]})]})}function kCe({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 d.jsxs("div",{className:"space-y-4",children:[d.jsx(wa,{text:ba.mesh_sources}),e.map((n,a)=>d.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)),d.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:[d.jsx(li,{size:16})," Add Source"]})]})}function kZ({data:e,onChange:t}){const[r,n]=E.useState(null);return d.jsxs("div",{className:"space-y-6",children:[d.jsx(wa,{text:ba.mesh_intelligence}),d.jsx(qt,{label:"Enable Mesh Intelligence",checked:e.enabled,onChange:a=>t({...e,enabled:a}),helper:"Activate health scoring and alerting"}),e.enabled&&d.jsxs(d.Fragment,{children:[d.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[d.jsx(Ne,{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."}),d.jsx(Ne,{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."})]}),d.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[d.jsx(Ne,{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."}),d.jsx(Ne,{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"})]}),d.jsx(DP,{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"}),d.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[d.jsx(jP,{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}),d.jsx(Ne,{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)."})]}),d.jsxs("div",{className:"space-y-2",children:[d.jsxs("label",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:["Regions",d.jsx(Wi,{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)=>d.jsxs("div",{className:"border border-[#1e2a3a] overflow-hidden",children:[d.jsxs("div",{className:"flex items-center justify-between p-3 bg-[#0a0e17] cursor-pointer",onClick:()=>n(r===i?null:i),children:[d.jsxs("div",{className:"flex items-center gap-3",children:[r===i?d.jsx(Em,{size:16}):d.jsx(Ah,{size:16}),d.jsx("span",{className:"font-medium text-slate-200",children:a.name||"Unnamed Region"}),d.jsx("span",{className:"text-xs text-slate-500",children:a.local_name})]}),d.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:d.jsx(ui,{size:14})})]}),r===i&&d.jsxs("div",{className:"p-4 space-y-3 border-t border-[#1e2a3a]",children:[d.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[d.jsx(gt,{label:"Name",value:a.name,onChange:o=>{const s=[...e.regions];s[i]={...a,name:o},t({...e,regions:s})}}),d.jsx(gt,{label:"Local Name",value:a.local_name,onChange:o=>{const s=[...e.regions];s[i]={...a,local_name:o},t({...e,regions:s})}})]}),d.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[d.jsx(Ne,{label:"Latitude",value:a.lat,onChange:o=>{const s=[...e.regions];s[i]={...a,lat:o},t({...e,regions:s})},step:1e-4}),d.jsx(Ne,{label:"Longitude",value:a.lon,onChange:o=>{const s=[...e.regions];s[i]={...a,lon:o},t({...e,regions:s})},step:1e-4})]}),d.jsx(gt,{label:"Description",value:a.description,onChange:o=>{const s=[...e.regions];s[i]={...a,description:o},t({...e,regions:s})}}),d.jsx(Dn,{label:"Aliases",value:a.aliases,onChange:o=>{const s=[...e.regions];s[i]={...a,aliases:o},t({...e,regions:s})}}),d.jsx(Dn,{label:"Cities",value:a.cities,onChange:o=>{const s=[...e.regions];s[i]={...a,cities:o},t({...e,regions:s})}})]})]},i)),d.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:[d.jsx(li,{size:16})," Add Region"]})]}),d.jsxs("div",{className:"space-y-3",children:[d.jsxs("label",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:["Alert Rules",d.jsx(Wi,{info:"Configure which conditions trigger alerts. Each rule can have an optional threshold value."})]}),d.jsxs("div",{className:"space-y-2",children:[d.jsx("h4",{className:"text-xs text-slate-400 font-medium",children:"Infrastructure"}),d.jsx(Pn,{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}})}),d.jsx(Pn,{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}})}),d.jsx(Pn,{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}})}),d.jsx(Pn,{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}})}),d.jsx(Pn,{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}})}),d.jsx(Pn,{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}})})]}),d.jsxs("div",{className:"space-y-2",children:[d.jsx("h4",{className:"text-xs text-slate-400 font-medium",children:"Power"}),d.jsx(Pn,{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:"%"}),d.jsx(Pn,{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:"%"}),d.jsx(Pn,{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:"%"}),d.jsx(Pn,{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}})}),d.jsx(Pn,{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}})}),d.jsx(Pn,{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}})})]}),d.jsxs("div",{className:"space-y-2",children:[d.jsx("h4",{className:"text-xs text-slate-400 font-medium",children:"Utilization"}),d.jsx(Pn,{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&&d.jsx("div",{className:"pl-3",children:d.jsx(Ne,{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"})}),d.jsx(Pn,{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"})]}),d.jsxs("div",{className:"space-y-2",children:[d.jsx("h4",{className:"text-xs text-slate-400 font-medium",children:"Health Scores"}),d.jsx(Pn,{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"}),d.jsx(Pn,{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 LCe({data:e,onChange:t}){return d.jsxs("div",{className:"space-y-4",children:[d.jsx(wa,{text:ba.dashboard}),d.jsx(qt,{label:"Enable Dashboard",checked:e.enabled,onChange:r=>t({...e,enabled:r}),helper:"Run the web dashboard"}),e.enabled&&d.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[d.jsx(gt,{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."}),d.jsx(Ne,{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 ICe({timezone:e,onSave:t}){const[r,n]=E.useState(e);return E.useEffect(()=>{n(e)},[e]),d.jsxs("div",{className:"space-y-4 mb-6 pb-6 border-b border-[#1e2a3a]",children:[d.jsx("label",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:"General"}),d.jsx(gt,{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 PCe(){var z;const{setDirty:e}=$i(),[t,r]=E.useState(null),[n,a]=E.useState(null),[i,o]=E.useState("bot"),[s]=hJ();E.useEffect(()=>{const D=s.get("section");D&&Y2.some(B=>B.key===D)&&o(D)},[s]);const[l,u]=E.useState(!0),[c,h]=E.useState(!1),[f,v]=E.useState(null),[g,m]=E.useState(null),[y,x]=E.useState(!1),[_,w]=E.useState(!1),S=E.useCallback(async()=>{try{const D=await fetch("/api/config");if(!D.ok)throw new Error("Failed to fetch config");const B=await D.json();r(B),a(JSON.parse(JSON.stringify(B))),w(!1),v(null)}catch(D){v(D instanceof Error?D.message:"Unknown error")}finally{u(!1)}},[]);E.useEffect(()=>{document.title="Config — MeshAI",S()},[S]),E.useEffect(()=>{t&&n&&w(JSON.stringify(t)!==JSON.stringify(n))},[t,n]),E.useEffect(()=>(e(_),()=>e(!1)),[_,e]);const C=async()=>{if(t){h(!0),v(null),m(null);try{const D=t[i],B=await fetch(`/api/config/${i}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(D)}),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),bu(Array.isArray(H.changed_keys)?H.changed_keys:[])),setTimeout(()=>m(null),3e3)}catch(D){v(D instanceof Error?D.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")}},k=(D,B)=>{t&&r({...t,[D]:B})},I=async D=>{try{const B=await fetch("/api/config/timezone",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(D)}),H=await B.json();if(!B.ok)throw new Error(H.detail||"Save failed");r(V=>V&&{...V,timezone:D}),a(V=>V&&{...V,timezone:D})}catch(B){v(B instanceof Error?B.message:"Timezone save failed")}};if(l)return d.jsx("div",{className:"flex items-center justify-center h-64",children:d.jsx("div",{className:"text-slate-400",children:"Loading configuration..."})});if(!t)return d.jsx("div",{className:"flex items-center justify-center h-64",children:d.jsx("div",{className:"text-red-400",children:"Failed to load configuration"})});const P=()=>{switch(i){case"bot":return d.jsxs(d.Fragment,{children:[d.jsx(ICe,{timezone:t.timezone,onSave:I}),d.jsx(mCe,{data:t.bot,onChange:D=>k("bot",D)})]});case"response":return d.jsx(xCe,{data:t.response,onChange:D=>k("response",D)});case"history":return d.jsx(_Ce,{data:t.history,onChange:D=>k("history",D)});case"memory":return d.jsx(bCe,{data:t.memory,onChange:D=>k("memory",D)});case"context":return d.jsx(wCe,{data:t.context,onChange:D=>k("context",D)});case"commands":return d.jsx(SCe,{data:t.commands,onChange:D=>k("commands",D)});case"llm":return d.jsx(CCe,{data:t.llm,onChange:D=>k("llm",D)});case"weather":return d.jsx(TCe,{data:t.weather,onChange:D=>k("weather",D)});case"knowledge":return d.jsx(ACe,{data:t.knowledge,onChange:D=>k("knowledge",D)});case"mesh_intelligence":return d.jsx(kZ,{data:t.mesh_intelligence,onChange:D=>k("mesh_intelligence",D)});case"dashboard":return d.jsx(LCe,{data:t.dashboard,onChange:D=>k("dashboard",D)});default:return null}},j=((z=Y2.find(D=>D.key===i))==null?void 0:z.label)||i;return d.jsxs("div",{className:"flex gap-6 h-[calc(100vh-8rem)]",children:[d.jsx("div",{className:"w-48 flex-shrink-0 space-y-1",children:Y2.map(({key:D,label:B,icon:H})=>d.jsxs("button",{onClick:()=>o(D),className:`w-full flex items-center gap-2 px-3 py-2 rounded text-sm transition-colors ${i===D?"bg-accent text-white":"text-slate-400 hover:text-slate-200 hover:bg-bg-hover"}`,children:[d.jsx(H,{size:16}),d.jsx("span",{children:B}),_&&i===D&&d.jsx("span",{className:"ml-auto w-2 h-2 bg-amber-500 rounded-full"})]},D))}),d.jsxs("div",{className:"flex-1 flex flex-col min-w-0",children:[d.jsxs("div",{className:"flex items-center justify-between mb-6",children:[d.jsxs("div",{className:"flex items-center gap-3",children:[d.jsx(VV,{size:20,className:"text-slate-500"}),d.jsx("h2",{className:"text-lg font-semibold text-slate-200",children:j})]}),d.jsxs("div",{className:"flex items-center gap-2",children:[_&&d.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:[d.jsx(xa,{size:14}),"Discard"]}),d.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?d.jsx(Zi,{size:14,className:"animate-spin"}):d.jsx(_a,{size:14}),"Save"]})]})]}),y&&d.jsxs("div",{className:"flex items-center justify-between p-3 mb-4 bg-amber-500/10 border border-amber-500/30",children:[d.jsxs("div",{className:"flex items-center gap-2 text-amber-400",children:[d.jsx(pi,{size:16}),d.jsx("span",{className:"text-sm",children:"Restart required for changes to take effect"})]}),d.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"})]}),f&&d.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:[d.jsx(_u,{size:16}),d.jsx("span",{className:"text-sm",children:f})]}),g&&d.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:[d.jsx(Yr,{size:16}),d.jsx("span",{className:"text-sm",children:g})]}),d.jsx("div",{className:"flex-1 overflow-y-auto pr-2",children:d.jsx("div",{className:"bg-bg-card border border-border p-6",children:P()})})]})]})}const DCe=["mesh_broadcast","mesh_dm"],jCe=["meshcore_broadcast","meshcore_dm"],ECe=["routine","priority","immediate"];function Yo({info:e}){const[t,r]=E.useState(!1);return d.jsxs("div",{className:"relative inline-block",children:[d.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&&d.jsxs(d.Fragment,{children:[d.jsx("div",{className:"fixed inset-0 z-40",onClick:()=>r(!1)}),d.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 RCe({label:e,value:t,onChange:r,type:n="text",placeholder:a="",helper:i="",info:o=""}){const[s,l]=E.useState(!1),u=n==="password";return d.jsxs("div",{className:"space-y-1",children:[d.jsxs("label",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:[e,o&&d.jsx(Yo,{info:o})]}),d.jsxs("div",{className:"relative",children:[d.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&&d.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?d.jsx(h1,{size:16}):d.jsx(rv,{size:16})})]}),i&&d.jsx("p",{className:"text-xs text-slate-600",children:i})]})}function qf({label:e,value:t,onChange:r,min:n,max:a,step:i=1,helper:o="",info:s=""}){return d.jsxs("div",{className:"space-y-1",children:[d.jsxs("label",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:[e,s&&d.jsx(Yo,{info:s})]}),d.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&&d.jsx("p",{className:"text-xs text-slate-600",children:o})]})}function Ch({label:e,checked:t,onChange:r,helper:n="",info:a=""}){return d.jsxs("div",{className:"flex items-center justify-between py-2",children:[d.jsxs("div",{children:[d.jsxs("span",{className:"flex items-center text-sm text-slate-300",children:[e,a&&d.jsx(Yo,{info:a})]}),n&&d.jsx("p",{className:"text-xs text-slate-600",children:n})]}),d.jsx("button",{type:"button",onClick:()=>r(!t),className:`relative w-11 h-6 rounded-full transition-colors ${t?"bg-accent":"bg-[#1e2a3a]"}`,children:d.jsx("span",{className:`absolute top-1 left-1 w-4 h-4 rounded-full bg-white transition-transform ${t?"translate-x-5":""}`})})]})}function q2({label:e,value:t,onChange:r,helper:n="",info:a=""}){return d.jsxs("div",{className:"space-y-1",children:[d.jsxs("label",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:[e,a&&d.jsx(Yo,{info:a})]}),d.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&&d.jsx("p",{className:"text-xs text-slate-600",children:n})]})}function LZ({label:e,value:t,onChange:r,placeholder:n="Add item...",helper:a="",info:i=""}){const[o,s]=E.useState(""),l=()=>{o.trim()&&!t.includes(o.trim())&&(r([...t,o.trim()]),s(""))},u=c=>{r(t.filter((h,f)=>f!==c))};return d.jsxs("div",{className:"space-y-1",children:[d.jsxs("label",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:[e,i&&d.jsx(Yo,{info:i})]}),d.jsxs("div",{className:"flex gap-2",children:[d.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}),d.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:d.jsx(li,{size:16})})]}),t.length>0&&d.jsx("div",{className:"flex flex-wrap gap-2 mt-2",children:t.map((c,h)=>d.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-1 bg-[#1e2a3a] rounded text-sm text-slate-300",children:[c,d.jsx("button",{type:"button",onClick:()=>u(h),className:"text-slate-500 hover:text-red-400",children:d.jsx(_u,{size:14})})]},h))}),a&&d.jsx("p",{className:"text-xs text-slate-600",children:a})]})}function IZ({channels:e,severityChannels:t,onChange:r}){const n=a=>a.replace("meshcore_","mc_").replace("mesh_","").replace(/_/g," ");return d.jsxs("table",{className:"text-xs w-full",children:[d.jsx("thead",{children:d.jsxs("tr",{children:[d.jsx("th",{className:"text-left text-slate-600 font-normal w-20",children:"severity"}),e.map(a=>d.jsx("th",{className:"text-slate-500 font-normal px-1 whitespace-nowrap",children:n(a)},a))]})}),d.jsx("tbody",{children:ECe.map(a=>d.jsxs("tr",{children:[d.jsx("td",{className:"text-slate-400 pr-2 whitespace-nowrap",children:a}),e.map(i=>{const o=(t[a]||[]).includes(i);return d.jsx("td",{className:"text-center",children:d.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 fu=[{key:"mesh_health",label:"Mesh Health",Icon:Oo},{key:"weather",label:"Weather",Icon:kh},{key:"fire",label:"Fire",Icon:Rm},{key:"emergency",label:"Emergency",Icon:Ck},{key:"rf_propagation",label:"RF Propagation",Icon:bi},{key:"roads",label:"Roads",Icon:u1},{key:"avalanche",label:"Avalanche",Icon:GV},{key:"satpass",label:"Satellite Passes",Icon:f1},{key:"seismic",label:"Seismic",Icon:kf},{key:"tracking",label:"Tracking",Icon:av}];function OCe(e){const t=new Set(fu.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:OV}));return[...fu,...r]}let lx=null,K2=null;function PZ(){const[e,t]=E.useState(lx??fu);return E.useEffect(()=>{let r=!1;if(lx){t(lx);return}return K2||(K2=fetch("/api/notifications/families").then(n=>n.ok?n.json():[]).then(n=>{const a=OCe(Array.isArray(n)?n:[]);return lx=a,a}).catch(()=>fu)),K2.then(n=>{r||t(n)}),()=>{r=!0}},[]),e}function zCe(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 BCe(e,t){const r=(t==null?void 0:t.mt_enabled)??(t==null?void 0:t.enabled)??!1,n=(e==null?void 0:e.mc_enabled)??!1,a=(e==null?void 0:e.cells)||{},i=(t==null?void 0:t.cells)||{},o=new Set([...Object.keys(a),...Object.keys(i)]),s={};for(const l of o){const u=a[l]||{},c=i[l]||{},h=new Set([...Object.keys(u),...Object.keys(c)]),f={};for(const v of h){const g=u[v],m=c[v],y={mt:m!==void 0?m.mt:(g==null?void 0:g.mt)??null,mc:(g==null?void 0:g.mc)??null,min_severity:(m==null?void 0:m.min_severity)??(g==null?void 0:g.min_severity)??"routine",enabled:(m==null?void 0:m.enabled)??(g==null?void 0:g.enabled)??!0},x=y.mc;(y.mt!==null||x!==null&&x.trim()!=="")&&(f[v]=y)}Object.keys(f).length>0&&(s[l]=f)}return{mt_enabled:r,mc_enabled:n,cells:s}}function FCe({toggles:e,onChange:t,regions:r,regionRoutes:n,onRegionRoutesChange:a}){const i=PZ(),o=(h,f)=>t({...e,[h]:{...e[h]||{},...f}}),[s,l]=E.useState({}),u=(h,f,v)=>{var y,x,_;const g=((x=(y=n==null?void 0:n.cells)==null?void 0:y[h])==null?void 0:x[f])??{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])||{},[f]:{...g,mt:v}}};a({mt_enabled:(n==null?void 0:n.mt_enabled)??(n==null?void 0:n.enabled)??!1,mc_enabled:(n==null?void 0:n.mc_enabled)??!1,cells:m})},c=h=>{var m;const f=((m=n==null?void 0:n.cells)==null?void 0:m[h])||{},v={};for(const[y,x]of Object.entries(f))v[y]={...x,mt:null};const g={...(n==null?void 0:n.cells)||{},[h]:v};a({mt_enabled:(n==null?void 0:n.mt_enabled)??(n==null?void 0:n.enabled)??!1,mc_enabled:(n==null?void 0:n.mc_enabled)??!1,cells:g})};return d.jsxs("div",{className:"space-y-3",children:[d.jsxs("div",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:["Meshtastic Delivery",d.jsx(Yo,{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."})]}),d.jsx("div",{className:"border border-[#1e2a3a] p-3",children:d.jsx(Ch,{label:"Enable Meshtastic region routing",checked:(n==null?void 0:n.mt_enabled)??(n==null?void 0:n.enabled)??!1,onChange:h=>a({mt_enabled:h,mc_enabled:(n==null?void 0:n.mc_enabled)??!1,cells:(n==null?void 0:n.cells)||{}}),helper:"Master switch for per-region Meshtastic channel routing. When off, families deliver only to their default Meshtastic channels."})}),d.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:i.map(({key:h,label:f,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 d.jsxs("div",{className:"border border-[#1e2a3a] p-3 space-y-3",children:[d.jsxs("div",{className:"flex items-center gap-2 text-sm text-slate-200",children:[d.jsx(v,{size:15})," ",f]}),d.jsxs("div",{className:"space-y-3 p-3 bg-[#0a0e17] border border-[#1e2a3a]",children:[d.jsxs("div",{className:"flex items-center gap-2 text-xs font-medium text-slate-300",children:[d.jsx(bi,{size:13}),"Meshtastic"]}),d.jsx(IZ,{channels:DCe,severityChannels:g.severity_channels||{},onChange:S=>o(h,{severity_channels:S})}),d.jsx(qf,{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."}),d.jsx(LZ,{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."})]}),d.jsxs("div",{className:"border border-[#1e2a3a] p-3 space-y-2",children:[d.jsx(Ch,{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?d.jsxs("p",{className:"text-xs text-slate-500 italic",children:["No regions yet — add them on the"," ",d.jsx("a",{href:"/coverage",className:"text-accent hover:underline",children:"Coverage"})," page."]}):d.jsx("div",{className:"space-y-1.5 pt-1",children:r.map(S=>{const C=m[S]??{mt:null};return d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx("span",{className:"text-xs text-slate-400 flex-1 min-w-0 truncate",children:S}),d.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 VCe(){const{setDirty:e}=$i(),t=PZ(),[r,n]=E.useState(null),[a,i]=E.useState(null),[o,s]=E.useState([]),[l,u]=E.useState(!0),[c,h]=E.useState(!1),[f,v]=E.useState(null),[g,m]=E.useState(null),[y,x]=E.useState(!1),_=E.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(),k=M.ok?await M.json():[];n(A),i(JSON.parse(JSON.stringify(A))),s(Array.isArray(k)?k:[]),x(!1),v(null)}catch(C){v(C instanceof Error?C.message:"Unknown error")}finally{u(!1)}},[]);E.useEffect(()=>{document.title="Meshtastic Routing - MeshAI",_()},[_]),E.useEffect(()=>{r&&a&&x(JSON.stringify(r)!==JSON.stringify(a))},[r,a]),E.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:BCe(M.region_routes,r.region_routes)},k=r.toggles||{};for(const{key:j}of t){const z=k[j];z&&(A.toggles[j]=zCe((M.toggles||{})[j],z,j))}const I=await fetch("/api/config/notifications",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(A)}),P=await I.json();if(!I.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?d.jsx("div",{className:"flex items-center justify-center h-64",children:d.jsx("div",{className:"text-slate-400",children:"Loading notifications config..."})}):r?d.jsxs("div",{className:"max-w-4xl mx-auto space-y-6",children:[d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsx("div",{children:d.jsxs("p",{className:"text-sm text-slate-500",children:["Per-family Meshtastic delivery. Family gating (enable, severity threshold, freshness/cooldown) is on"," ",d.jsx("a",{href:"/environment",className:"text-accent hover:underline",children:"Data Feeds"}),". MeshCore delivery is on the"," ",d.jsx("a",{href:"/meshcore/routing",className:"text-accent hover:underline",children:"MeshCore Routing"})," page."]})}),d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx("button",{onClick:_,className:"p-2 text-slate-400 hover:text-slate-200 hover:bg-bg-hover rounded transition-colors",title:"Refresh",children:d.jsx(Zi,{size:18})}),d.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:[d.jsx(xa,{size:16}),"Discard"]}),d.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:[d.jsx(_a,{size:16}),c?"Saving...":"Save"]})]})]}),f&&d.jsx("div",{className:"p-3 text-sm bg-red-500/10 text-red-400 border border-red-500/20",children:f}),g&&d.jsxs("div",{className:"p-3 text-sm bg-green-500/10 text-green-400 border border-green-500/20",children:[d.jsx(Yr,{size:14,className:"inline mr-2"}),g]}),d.jsx("div",{className:"bg-bg-card border border-border p-6",children:r.toggles?d.jsx(FCe,{toggles:r.toggles,onChange:C=>n({...r,toggles:C}),regions:o,regionRoutes:r.region_routes,onRegionRoutesChange:C=>n({...r,region_routes:C})}):d.jsx("p",{className:"text-sm text-slate-500",children:"No family configuration found."})})]}):d.jsx("div",{className:"flex items-center justify-center h-64",children:d.jsx("div",{className:"text-red-400",children:"Failed to load notifications config"})})}const GCe={wfigs:["allowed_incident_types","freshness_seconds","cooldown_seconds","broadcast_on_acres","broadcast_on_contained"],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"]},HCe=1500;function DZ({excludeKeys:e,hideLlmToggle:t}={}){const[r,n]=E.useState({}),[a,i]=E.useState({}),[o,s]=E.useState(!0),[l,u]=E.useState(null),[c,h]=E.useState({}),[f,v]=E.useState({}),[g,m]=E.useState({}),y=E.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)}},[]);E.useEffect(()=>{y()},[y]);const x=E.useCallback((M,A,k)=>{v(I=>({...I,[M]:A})),k&&m(I=>({...I,[M]:k})),A==="saved"&&setTimeout(()=>{v(I=>I[M]==="saved"?{...I,[M]:"idle"}:I)},HCe)},[]),_=E.useCallback(async(M,A,k)=>{const I=`${M}.${A}`;x(I,"saving");try{const P=await fetch(`/api/adapter-config/${M}/${A}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({value:k})});if(!P.ok){const D=(await P.json().catch(()=>({}))).detail||P.statusText;x(I,"error",String(D));return}const j=await P.json();n(z=>({...z,[M]:(z[M]||[]).map(D=>D.key===A?j:D)})),x(I,"saved")}catch(P){x(I,"error",String(P))}},[x]),w=E.useCallback(async(M,A)=>{const k=`${M}.${A}`;x(k,"saving");try{const I=await fetch(`/api/adapter-config/${M}/${A}/reset`,{method:"POST"});if(!I.ok){x(k,"error",`reset failed (${I.status})`);return}const P=await I.json();n(j=>({...j,[M]:(j[M]||[]).map(z=>z.key===A?P:z)})),x(k,"saved")}catch(I){x(k,"error",String(I))}},[x]),S=E.useCallback(async(M,A)=>{const k=`meta:${M}`;x(k,"saving");try{const I=await fetch(`/api/adapter-meta/${M}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(A)});if(!I.ok){const j=await I.json().catch(()=>({}));x(k,"error",String(j.detail||I.statusText));return}const P=await I.json();i(j=>({...j,[M]:P})),x(k,"saved")}catch(I){x(k,"error",String(I))}},[x]);if(o)return d.jsxs("div",{className:"p-6 flex items-center gap-2 text-[#777]",children:[d.jsx(nv,{className:"w-5 h-5 animate-spin"})," Loading adapter config…"]});if(l)return d.jsxs("div",{className:"p-6 text-red-400",children:[d.jsx(Nh,{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 d.jsxs("div",{className:"p-6 space-y-4",children:[d.jsxs("div",{className:"flex items-center gap-2 text-white",children:[d.jsx(Bg,{className:"w-5 h-5"}),d.jsx("h1",{className:"text-xl font-semibold",children:"Adapter Config"}),d.jsxs("span",{className:"text-xs text-[#666] ml-2",children:[Object.entries(r).reduce((M,[A,k])=>M+(e!=null&&e[A]?k.filter(I=>!e[A].includes(I.key)).length:k.length),0)," settings across ",C.length," adapters"]})]}),d.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 ",d.jsx("a",{href:"/reference#adapter-config",className:"text-accent hover:underline",children:"Adapter Config & the CODE Rule"})," in Reference. The ",d.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 D;const A=a[M]||{display_name:M,include_in_llm_context:!0,description:""},k=r[M]||[],I=e!=null&&e[M]?k.filter(B=>!e[M].includes(B.key)):k,P=c[M]??!1,j=`meta:${M}`,z=f[j]||"idle";return d.jsxs("div",{className:"bg-bg-card border border-border",children:[d.jsxs("div",{className:"p-4 flex items-start gap-4",children:[d.jsx("button",{onClick:()=>h(B=>({...B,[M]:!B[M]})),className:"text-[#777] hover:text-white","aria-label":"toggle expand",children:P?d.jsx(Em,{className:"w-5 h-5"}):d.jsx(Ah,{className:"w-5 h-5"})}),d.jsxs("div",{className:"flex-1 min-w-0",children:[d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx("h2",{className:"text-base font-semibold text-white",children:A.display_name}),d.jsx("code",{className:"text-xs text-[#666]",children:M}),I.length>0&&d.jsxs("span",{className:"text-xs text-[#777] ml-1",children:["(",I.length," settings",(D=e==null?void 0:e[M])!=null&&D.length?`, ${e[M].length} curated`:"",")"]}),I.length===0&&d.jsx("span",{className:"text-xs text-[#666] ml-1 italic",children:k.length>0?"(all curated)":"(meta only)"})]}),A.description&&d.jsx("p",{className:"text-xs text-[#777] mt-1",children:A.description})]}),!t&&d.jsxs("label",{className:"flex items-center gap-2 text-xs text-[#e0e0e0] select-none",children:[d.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",d.jsx(jZ,{status:z,error:g[j]})]})]}),P&&I.length>0&&d.jsx("div",{className:"border-t border-border divide-y divide-border",children:I.map(B=>d.jsx(UCe,{row:B,status:f[`${M}.${B.key}`]||"idle",error:g[`${M}.${B.key}`],onCommit:H=>_(M,B.key,H),onReset:()=>w(M,B.key)},B.key))})]},M)})]})}function UCe({row:e,status:t,error:r,onCommit:n,onReset:a}){const[i,o]=E.useState(J2(e));E.useEffect(()=>{o(J2(e))},[e.value,e.type]);const s=i!==J2(e),l=JSON.stringify(e.value)===JSON.stringify(e.default),u=()=>{const c=WCe(i,e.type);c.error||c.changed(e.value)&&n(c.value)};return d.jsxs("div",{className:"px-6 py-3 flex items-start gap-4",children:[d.jsxs("div",{className:"flex-1 min-w-0",children:[d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx("code",{className:"text-sm font-mono text-accent",children:e.key}),d.jsxs("span",{className:"text-xs text-[#666]",children:["[",e.type,"]"]}),!l&&d.jsx("span",{className:"text-xs text-accent",children:"edited"})]}),e.description&&d.jsx("p",{className:"text-xs text-[#777] mt-1",children:e.description})]}),d.jsxs("div",{className:"flex items-center gap-2 min-w-[280px] justify-end",children:[e.type==="bool"?d.jsx("input",{type:"checkbox",checked:e.value===!0,onChange:c=>n(c.target.checked),className:"w-5 h-5 accent-[#f59e0b]"}):e.type==="json"?d.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}):d.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()}}),d.jsx(jZ,{status:t,error:r,dirty:s}),d.jsx("button",{onClick:a,disabled:l,className:"text-[#777] hover:text-white disabled:opacity-30 disabled:cursor-not-allowed",title:"Reset to default",children:d.jsx(xa,{className:"w-4 h-4"})})]})]})}function jZ({status:e,error:t,dirty:r}){return e==="saving"?d.jsx(nv,{className:"w-4 h-4 text-accent animate-spin"}):e==="saved"?d.jsx(Yr,{className:"w-4 h-4 text-green-500"}):e==="error"?d.jsx("span",{title:t,className:"text-red-400 cursor-help",children:d.jsx(Nh,{className:"w-4 h-4"})}):r?d.jsx("span",{className:"w-2 h-2 bg-accent rounded-full",title:"unsaved"}):d.jsx("span",{className:"w-4 h-4"})}function J2(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 WCe(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 $Ce=["routine","priority","immediate"];function XB(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 Xa({label:e,value:t,onChange:r,placeholder:n,type:a="text",mono:i=!1}){return d.jsxs("div",{className:"min-w-0",children:[d.jsx("label",{className:"text-xs text-[#777] mb-1 block",children:e}),d.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 ux({children:e}){return d.jsx("div",{className:"text-[10px] font-sans font-medium uppercase tracking-widest text-[#666] pt-1",children:e})}function ZCe(){const[e,t]=E.useState(null),[r,n]=E.useState(""),[a,i]=E.useState(!0),[o,s]=E.useState(!1),[l,u]=E.useState(null),[c,h]=E.useState(null),{setDirty:f}=$i(),[v,g]=E.useState({}),[m,y]=E.useState({});E.useEffect(()=>{jJ().then(U=>{const W=(Array.isArray(U)?U:[]).map(($,Z)=>({...XB(Z+1),...$}));t(W),n(JSON.stringify(W))}).catch(U=>u(U instanceof Error?U.message:String(U))).finally(()=>i(!1))},[]);const x=e!==null&&JSON.stringify(e)!==r;E.useEffect(()=>(f(x),()=>f(!1)),[x,f]);const _=(U,F)=>{t(W=>W&&W.map(($,Z)=>Z===U?{...$,...F}:$))},w=()=>{t(U=>[...U??[],XB(((U==null?void 0:U.length)??0)+1)])},S=U=>{t(F=>F&&F.filter((W,$)=>$!==U)),g(F=>{const W={...F};return delete W[U],W})},C=U=>{t(F=>F&&F.map((W,$)=>$===U?{...W,field_mappings:[...W.field_mappings,{source_path:"",dest_key:""}]}:W))},M=(U,F,W)=>{t($=>$&&$.map((Z,J)=>J===U?{...Z,field_mappings:Z.field_mappings.map((re,Q)=>Q===F?{...re,...W}:re)}:Z))},A=(U,F)=>{t(W=>W&&W.map(($,Z)=>Z===U?{...$,field_mappings:$.field_mappings.filter((J,re)=>re!==F)}:$))},k=U=>Object.entries(U.headers??{}),I=(U,F)=>{const W={};for(const[$,Z]of F)W[$]=Z;_(U,{headers:W})},P=U=>{e&&I(U,[...k(e[U]),["",""]])},j=(U,F,W,$)=>{if(!e)return;const Z=k(e[U]);Z[F]=[W,$],I(U,Z)},z=(U,F)=>{if(!e)return;const W=k(e[U]);W.splice(F,1),I(U,W)},D=async U=>{if(!e)return;const F=e[U];y(W=>({...W,[U]:!0}));try{const W=await RJ(F.url,F.items_path,F.headers);g($=>({...$,[U]:W}))}catch(W){g($=>({...$,[U]:{ok:!1,error:W instanceof Error?W.message:String(W)}}))}finally{y(W=>({...W,[U]:!1}))}},B=()=>{r&&(t(JSON.parse(r)),g({}))},H=async()=>{if(e){s(!0),u(null),h(null);try{const U=await EJ(e);n(JSON.stringify(e)),h("Custom sources saved"),setTimeout(()=>h(null),3e3),U.restart_required&&bu(Array.isArray(U.changed_keys)?U.changed_keys:[])}catch(U){u(U instanceof Error?U.message:"Save failed")}finally{s(!1)}}};if(a)return d.jsx("div",{className:"flex items-center justify-center h-32 text-[#777]",children:"Loading custom sources…"});if(!e)return d.jsx("div",{className:"flex items-center justify-center h-32 text-red-400",children:l||"No config"});const V=d.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[d.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:[d.jsx(xa,{size:14})," Discard"]}),d.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:[d.jsx(_a,{size:14})," ",o?"Saving…":"Save"]})]});return d.jsxs("div",{className:"space-y-6 max-w-4xl",children:[d.jsxs("div",{className:"flex items-start justify-between gap-4",children:[d.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 ",d.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 —"," ",d.jsx("a",{href:"/meshtastic/routing",className:"text-accent hover:underline",children:"enable its family in Notifications"})," ","to route it to a channel."]}),x&&V]}),l&&d.jsx("div",{className:"text-sm text-red-400 bg-red-500/10 p-3",children:l}),c&&d.jsx("div",{className:"text-sm text-green-400 bg-green-500/10 p-3",children:c}),e.length===0&&d.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."}),d.jsx("div",{className:"space-y-4",children:e.map((U,F)=>{const W=v[F],$=m[F];return d.jsxs("div",{className:"border border-border p-4 space-y-4",children:[d.jsxs("div",{className:"flex items-center gap-3",children:[d.jsx("input",{type:"text",value:U.name,onChange:Z=>_(F,{name:Z.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]"}),d.jsxs("label",{className:"flex items-center gap-2 cursor-pointer select-none",children:[d.jsx("span",{className:"text-xs text-[#666]",children:"Enabled"}),d.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:d.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":""}`})})]}),d.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:d.jsx(ui,{size:12})})]}),d.jsx(ux,{children:"Basics"}),d.jsxs("div",{className:"grid grid-cols-12 gap-2",children:[d.jsx("div",{className:"col-span-12",children:d.jsx(Xa,{label:"URL",value:U.url,onChange:Z=>_(F,{url:Z}),placeholder:"https://example.com/api/feed.geojson",mono:!0})}),d.jsx("div",{className:"col-span-3",children:d.jsx(Xa,{label:"Poll seconds",type:"number",value:U.poll_seconds,onChange:Z=>_(F,{poll_seconds:parseInt(Z,10)||0})})}),d.jsx("div",{className:"col-span-3",children:d.jsx(Xa,{label:"Category",value:U.category,onChange:Z=>_(F,{category:Z}),placeholder:"generic_alert"})}),d.jsxs("div",{className:"col-span-3",children:[d.jsx("label",{className:"text-xs text-[#777] mb-1 block",children:"Severity"}),d.jsx("select",{value:U.severity,onChange:Z=>_(F,{severity:Z.target.value}),className:"w-full bg-[#0d0d0d] border border-border px-2 py-1.5 text-xs text-[#e0e0e0]",children:$Ce.map(Z=>d.jsx("option",{value:Z,children:Z},Z))})]}),d.jsx("div",{className:"col-span-3",children:d.jsx(Xa,{label:"Emoji",value:U.emoji??"",onChange:Z=>_(F,{emoji:Z}),placeholder:"⚡"})})]}),d.jsx(ux,{children:"Extraction"}),d.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[d.jsx(Xa,{label:"items_path (array of items)",value:U.items_path,onChange:Z=>_(F,{items_path:Z}),placeholder:"features · object.outages",mono:!0}),d.jsx(Xa,{label:"id_path (unique id, for dedup)",value:U.id_path,onChange:Z=>_(F,{id_path:Z}),placeholder:"id · omsOutageId · properties.id",mono:!0})]}),d.jsxs("div",{className:"border border-border p-3 space-y-2",children:[d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsx("div",{className:"text-[10px] font-sans font-medium uppercase tracking-widest text-[#666]",children:"Headers (optional)"}),d.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:[d.jsx(li,{size:12})," Add header"]})]}),d.jsxs("p",{className:"text-xs text-[#555]",children:["Custom request headers, e.g. ",d.jsx("code",{children:"User-Agent"})," or"," ",d.jsx("code",{children:"Authorization"}),". Leave empty for the default browser UA."]}),Object.entries(U.headers??{}).length>0&&d.jsx("div",{className:"space-y-2",children:Object.entries(U.headers??{}).map(([Z,J],re)=>d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx("input",{type:"text",value:Z,onChange:Q=>j(F,re,Q.target.value,J),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]"}),d.jsx("span",{className:"text-[#555] text-xs",children:":"}),d.jsx("input",{type:"text",value:J,onChange:Q=>j(F,re,Z,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]"}),d.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:d.jsx(ui,{size:12})})]},re))})]}),d.jsx(ux,{children:"Location — GeoJSON geometry OR lat + lon paths"}),d.jsxs("div",{className:"grid grid-cols-3 gap-2",children:[d.jsx(Xa,{label:"geometry_path",value:U.geometry_path??"",onChange:Z=>_(F,{geometry_path:Z}),placeholder:"geometry",mono:!0}),d.jsx(Xa,{label:"lat_path",value:U.lat_path??"",onChange:Z=>_(F,{lat_path:Z}),placeholder:"properties.lat",mono:!0}),d.jsx(Xa,{label:"lon_path",value:U.lon_path??"",onChange:Z=>_(F,{lon_path:Z}),placeholder:"properties.lon",mono:!0})]}),d.jsx(ux,{children:"Display"}),d.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[d.jsx(Xa,{label:"title_path",value:U.title_path??"",onChange:Z=>_(F,{title_path:Z}),placeholder:"properties.headline",mono:!0}),d.jsx(Xa,{label:"time_path",value:U.time_path??"",onChange:Z=>_(F,{time_path:Z}),placeholder:"properties.updated",mono:!0}),d.jsx("div",{className:"col-span-2",children:d.jsx(Xa,{label:"summary_template — use {dest_key} tokens from your field mappings",value:U.summary_template??"",onChange:Z=>_(F,{summary_template:Z}),placeholder:"⚡ Power out — {customers} affected, ETA {eta}",mono:!0})})]}),d.jsxs("div",{className:"border border-border p-3 space-y-2",children:[d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsx("div",{className:"text-[10px] font-sans font-medium uppercase tracking-widest text-[#666]",children:"Field Mappings"}),d.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:[d.jsx(li,{size:12})," Add mapping"]})]}),U.field_mappings.length===0?d.jsxs("p",{className:"text-xs text-[#555]",children:["No mappings. Each mapping pulls a dotted ",d.jsx("code",{children:"source_path"})," from an item into a ",d.jsx("code",{children:"dest_key"})," you can reference in the summary template."]}):d.jsx("div",{className:"space-y-2",children:U.field_mappings.map((Z,J)=>d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx("input",{type:"text",value:Z.source_path,onChange:re=>M(F,J,{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]"}),d.jsx("span",{className:"text-[#555] text-xs",children:"→"}),d.jsx("input",{type:"text",value:Z.dest_key,onChange:re=>M(F,J,{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]"}),d.jsx("button",{onClick:()=>A(F,J),title:"Remove mapping",className:"flex items-center px-2 py-1.5 text-xs text-[#777] hover:text-red-400 border border-border",children:d.jsx(ui,{size:12})})]},J))})]}),d.jsxs("div",{className:"border border-border p-3 space-y-2",children:[d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsx("div",{className:"text-[10px] font-sans font-medium uppercase tracking-widest text-[#666]",children:"Preview"}),d.jsxs("button",{onClick:()=>D(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:[$?d.jsx(nv,{size:12,className:"animate-spin"}):d.jsx(rv,{size:12}),$?"Fetching…":"Preview"]})]}),W&&d.jsxs("div",{className:"space-y-2",children:[W.ok?d.jsxs("div",{className:"text-xs text-green-400",children:["HTTP ",W.status??"200",typeof W.item_count=="number"&&d.jsxs("span",{className:"text-[#999]",children:[" ","— items_path resolved ",W.item_count," item",W.item_count===1?"":"s"]})]}):d.jsx("div",{className:"text-xs text-red-400 break-words",children:W.error}),W.items_path_note&&d.jsx("div",{className:"text-xs text-amber-400 break-words",children:W.items_path_note}),W.first_item&&d.jsxs("div",{children:[d.jsx("div",{className:"text-[10px] uppercase tracking-widest text-[#555] mb-1",children:"First item"}),d.jsx("pre",{className:"bg-[#0d0d0d] border border-border p-2 text-[11px] font-mono text-[#bbb] overflow-auto max-h-48 whitespace-pre",children:W.first_item})]}),W.sample&&d.jsxs("details",{open:!W.first_item,children:[d.jsx("summary",{className:"text-[10px] uppercase tracking-widest text-[#555] cursor-pointer",children:"Raw response"}),d.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:W.sample})]})]})]})]},F)})}),d.jsxs("div",{className:"flex items-center justify-between gap-2 pb-2",children:[d.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:[d.jsx(li,{size:14})," Add source"]}),x&&V]})]})}const YCe={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"},XCe={enabled:!1,tick_seconds:60,base_url:"https://apps.fema.gov/IPAWSOPEN_EAS_SERVICE/rest",user_agent:"",state_fips:["16","53","41","32","49","56","30"],same_codes:[],exclude_weather:!0,drop_senders:["noaa.gov","nws","weather.gov"],status_actual_only:!0,feed_source:"native"};function qCe({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 d.jsxs("div",{className:"bg-bg-hover p-4",children:[d.jsxs("div",{className:"flex items-center justify-between mb-2",children:[d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx("div",{className:`w-2 h-2 rounded-full ${t}`}),d.jsx("span",{className:"text-sm font-medium text-white uppercase",children:e.source})]}),d.jsx("span",{className:"text-xs text-[#777]",children:r})]}),d.jsxs("div",{className:"text-xs font-mono text-[#666] space-y-1",children:[d.jsxs("div",{children:["Events: ",e.event_count]}),d.jsxs("div",{children:["Last fetch: ",n]}),e.last_error&&d.jsx("div",{className:"text-accent truncate",children:e.last_error})]})]})}function KCe({event:e}){const t=e.severity.toLowerCase(),r=t==="extreme"||t==="severe"||t==="immediate"?{bg:"bg-red-500/10",border:"border-red-500",Icon:Nh,color:"text-red-500"}:t==="moderate"||t==="warning"||t==="priority"?{bg:"bg-accent/10",border:"border-amber-500",Icon:pi,color:"text-accent"}:{bg:"bg-sky-400/10",border:"border-sky-400",Icon:d1,color:"text-sky-400"},n=r.Icon;return d.jsx("div",{className:`p-3 ${r.bg} border-l-2 ${r.border}`,children:d.jsxs("div",{className:"flex items-start gap-3",children:[d.jsx(n,{size:16,className:r.color}),d.jsxs("div",{className:"flex-1 min-w-0",children:[d.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[d.jsx("span",{className:"text-sm font-medium text-white",children:e.event_type}),d.jsx("span",{className:`text-xs px-1.5 py-0.5 ${r.bg} ${r.color}`,children:e.severity})]}),d.jsx("div",{className:"text-sm font-sans text-[#e0e0e0]",children:e.headline})]})]})})}function EZ({value:e,onChange:t,disabled:r,centralDisabled:n}){const a="px-2 py-1 text-xs transition-colors";return d.jsxs("div",{className:`flex border border-border overflow-hidden ${r?"opacity-40":""}`,children:[d.jsx("button",{type:"button",disabled:r,onClick:()=>t("native"),className:`${a} ${e==="native"?"bg-accent text-white":"text-[#777] hover:text-white"}`,children:"native"}),d.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 JCe({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:f,onLlmContext:v}){const g=s||!o;return d.jsxs("div",{className:"border border-border p-4 space-y-3",children:[d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsxs("div",{children:[d.jsx("span",{className:"text-sm font-medium text-[#e0e0e0]",children:e}),t&&d.jsx("p",{className:"text-xs text-[#666]",children:t})]}),d.jsxs("div",{className:"flex items-center gap-4",children:[v!==void 0&&d.jsxs("label",{className:"flex items-center gap-1.5 cursor-pointer select-none",title:"Include this adapter's data in LLM (bot) context",children:[d.jsx("input",{type:"checkbox",checked:f??!0,onChange:m=>v(m.target.checked),className:"w-3.5 h-3.5 accent-[#f59e0b]"}),d.jsx("span",{className:"text-[10px] uppercase tracking-wide text-[#666]",children:"LLM"})]}),d.jsxs("div",{className:"flex items-center gap-1",children:[d.jsx("span",{className:"text-[10px] uppercase tracking-wide text-[#666]",children:"source"}),d.jsx(EZ,{value:a,onChange:i,disabled:!r,centralDisabled:g})]}),d.jsx(qt,{label:"",checked:r,onChange:n})]})]}),!l&&d.jsx("div",{className:"text-xs text-accent bg-accent/10 p-2",children:"API key required — set it in the field below"}),s&&d.jsx("div",{className:"text-[11px] text-[#666]",children:"Central not available for this adapter — native only"}),d.jsx("div",{className:r?"space-y-3":"space-y-3 opacity-40 pointer-events-none select-none",children:h}),(u||c&&c.length>0)&&d.jsxs("div",{className:"pt-2 border-t border-border space-y-3",children:[d.jsx("div",{className:"text-[10px] uppercase tracking-wide text-[#666]",children:"Live status"}),u?d.jsx(qCe,{feed:u}):d.jsx("div",{className:"text-xs text-[#666]",children:"No status reported."}),c&&c.length>0&&d.jsx("div",{className:"space-y-2",children:c.slice(0,5).map((m,y)=>d.jsx(KCe,{event:m},y))})]})]})}const dc={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},ipaws:{label:"FEMA IPAWS civil alerts",subtitle:"Evacuations, AMBER, HazMat, 911 outages (non-weather)",health:"ipaws",hasCentral:!1,nativeOnly:!0,hasKey:!1}},QCe={firms:"FIRMS_MAP_KEY",roads511:"ROADS511_API_KEY",traffic:"TOMTOM_API_KEY"},Q2=[{key:"central",label:"Central",icon:AJ,adapters:[]},{key:"weather",label:"Weather",icon:kh,adapters:["nws"]},{key:"fire",label:"Fire",icon:Rm,adapters:["fires","firms"]},{key:"rf",label:"RF Propagation",icon:bi,adapters:["swpc","ducting"]},{key:"roads",label:"Roads",icon:u1,adapters:["traffic","roads511","wzdx"]},{key:"geohazards",label:"Geohazards",icon:kf,adapters:["usgs_quake","usgs","avalanche"]},{key:"emergency",label:"Emergency",icon:Ck,adapters:["ipaws"]},{key:"tracking",label:"Tracking",icon:f1,adapters:["satpass"]},{key:"mesh",label:"Mesh Health",icon:Oo,adapters:[]},{key:"family_settings",label:"Family Settings",icon:kV,adapters:[]}];function e2e(){var cy,hy,dy,Xh,nl,Iv;const[e,t]=E.useState(null),[r,n]=E.useState(""),[a,i]=E.useState(null),[o,s]=E.useState([]),[l,u]=E.useState(!0),[c,h]=E.useState(!1),[f,v]=E.useState(null),[g,m]=E.useState(null),[y,x]=E.useState(!1),[_,w]=E.useState("weather"),[S,C]=E.useState("nws"),[M,A]=E.useState("curated"),[k,I]=E.useState({}),[P,j]=E.useState({}),[z,D]=E.useState({allowed_incident_types:["WF"],freshness_seconds:0,cooldown_seconds:28800,broadcast_on_acres:!0,broadcast_on_contained:!0}),[B,H]=E.useState(""),[V,U]=E.useState({min_magnitude:4,drop_non_present:!0,drop_zero_magnitude:!0}),[F,W]=E.useState(""),[$,Z]=E.useState({min_severity:"None",enabled_categories:["incident","closure"],enabled_sub_types:["accident","road_closed","closure","lane_closed","vehicle_on_fire","flooding","debris"]}),[J,re]=E.useState(""),[Q,le]=E.useState({broadcast:!1,min_severity:"Minor",sub_types:["road_works","lane_closed","road_closed"]}),[de,He]=E.useState(""),[ye,ne]=E.useState({broadcast_severities:["Extreme","Severe"],duplicate_allowed_after_seconds:3600}),[xe,he]=E.useState(""),[ge,tt]=E.useState({min_danger_level:3}),[Ue,qe]=E.useState(""),[Fe,_t]=E.useState({geomag_kp_floor:7,flare_class_floor:"X1",proton_pfu_floor:10}),[bt,et]=E.useState(""),[Ke,St]=E.useState({enabled:!1,observers:[],min_elevation:30,norad_ids:[],max_broadcasts_per_hour:4,dry_run:!0}),[ce,st]=E.useState(""),[Bt,Ft]=E.useState(null),[jt,Lr]=E.useState(null),[Qo,tl]=E.useState(!1),[Ki,Uh]=E.useState([]),[Hn,es]=E.useState(null),[ts,Au]=E.useState(""),[Wh,Ga]=E.useState(!1),[$h,Nu]=E.useState(null),[ku,rl]=E.useState(null);E.useEffect(()=>{document.title="Environment — MeshAI",(async()=>{var se,ut,Ze,yt,rr,oa,cn,An,Y,Ae,ct,ot,dt,os,Ji,Qi,gr,eo,al,il,qh,ol,Kh,Jh,Du,Qh;try{const Sa=await(await fetch("/api/config/environmental")).json();Sa.satpass={...YCe,...Sa.satpass??{}},Sa.wzdx={states:["ID"],registry_url:"",...Sa.wzdx??{}},Sa.ipaws={...XCe,...Sa.ipaws??{}},t(Sa),n(JSON.stringify(Sa));const to=Vt=>{const Ot={};if(Array.isArray(Vt))for(const Ie of Vt)Ot[Ie.key]={value:Ie.value};return Ot};try{const Vt=await fetch("/api/adapter-config/wfigs");if(Vt.ok){const Ot=to(await Vt.json()),Ie={allowed_incident_types:((se=Ot.allowed_incident_types)==null?void 0:se.value)??["WF"],freshness_seconds:((ut=Ot.freshness_seconds)==null?void 0:ut.value)??0,cooldown_seconds:((Ze=Ot.cooldown_seconds)==null?void 0:Ze.value)??28800,broadcast_on_acres:((yt=Ot.broadcast_on_acres)==null?void 0:yt.value)??!0,broadcast_on_contained:((rr=Ot.broadcast_on_contained)==null?void 0:rr.value)??!0};D(Ie),H(JSON.stringify(Ie))}}catch{}try{const Vt=await fetch("/api/adapter-config/tomtom_incidents");if(Vt.ok){const Ot=to(await Vt.json()),Ie={min_magnitude:((oa=Ot.min_magnitude)==null?void 0:oa.value)??4,drop_non_present:((cn=Ot.drop_non_present)==null?void 0:cn.value)??!0,drop_zero_magnitude:((An=Ot.drop_zero_magnitude)==null?void 0:An.value)??!0};U(Ie),W(JSON.stringify(Ie))}}catch{}try{const Vt=await fetch("/api/adapter-config/itd_511");if(Vt.ok){const Ot=to(await Vt.json()),Ie={min_severity:((Y=Ot.min_severity)==null?void 0:Y.value)??"None",enabled_categories:((Ae=Ot.enabled_categories)==null?void 0:Ae.value)??["incident","closure"],enabled_sub_types:((ct=Ot.enabled_sub_types)==null?void 0:ct.value)??["accident","road_closed","closure","lane_closed","vehicle_on_fire","flooding","debris"]};Z(Ie),re(JSON.stringify(Ie))}}catch{}try{const Vt=await fetch("/api/adapter-config/wzdx");if(Vt.ok){const Ot=to(await Vt.json()),Ie={broadcast:((ot=Ot.broadcast)==null?void 0:ot.value)??!1,min_severity:((dt=Ot.min_severity)==null?void 0:dt.value)??"Minor",sub_types:((os=Ot.sub_types)==null?void 0:os.value)??["road_works","lane_closed","road_closed"]};le(Ie),He(JSON.stringify(Ie))}}catch{}try{const Vt=await fetch("/api/adapter-config/nws");if(Vt.ok){const Ot=to(await Vt.json()),Ie={broadcast_severities:((Ji=Ot.broadcast_severities)==null?void 0:Ji.value)??["Extreme","Severe"],duplicate_allowed_after_seconds:((Qi=Ot.duplicate_allowed_after_seconds)==null?void 0:Qi.value)??3600};ne(Ie),he(JSON.stringify(Ie))}}catch{}try{const Vt=await fetch("/api/adapter-config/avalanche");if(Vt.ok){const Ie={min_danger_level:((gr=to(await Vt.json()).min_danger_level)==null?void 0:gr.value)??3};tt(Ie),qe(JSON.stringify(Ie))}}catch{}try{const Vt=await fetch("/api/adapter-config/swpc");if(Vt.ok){const Ot=to(await Vt.json()),Ie={geomag_kp_floor:((eo=Ot.geomag_kp_floor)==null?void 0:eo.value)??7,flare_class_floor:((al=Ot.flare_class_floor)==null?void 0:al.value)??"X1",proton_pfu_floor:((il=Ot.proton_pfu_floor)==null?void 0:il.value)??10};_t(Ie),et(JSON.stringify(Ie))}}catch{}try{const Vt=await fetch("/api/adapter-meta");if(Vt.ok){const Ot=await Vt.json(),Ie={};for(const[Wn,Wt]of Object.entries(Ot))Ie[Wn]=Wt.include_in_llm_context??!0;I(Ie)}}catch{}try{const Vt=await fetch("/api/adapter-config/satpass");if(Vt.ok){const Ot=await Vt.json(),Ie={};for(const Wt of Ot)Ie[Wt.key]=Wt;const Wn={enabled:((qh=Ie.enabled)==null?void 0:qh.value)??!1,observers:((ol=Ie.observers)==null?void 0:ol.value)??[],min_elevation:((Kh=Ie.min_elevation)==null?void 0:Kh.value)??30,norad_ids:((Jh=Ie.norad_ids)==null?void 0:Jh.value)??[],max_broadcasts_per_hour:((Du=Ie.max_broadcasts_per_hour)==null?void 0:Du.value)??4,dry_run:((Qh=Ie.dry_run)==null?void 0:Qh.value)??!0};St(Wn),st(JSON.stringify(Wn))}}catch{}}catch(ju){v(ju instanceof Error?ju.message:"Failed to load config")}finally{u(!1)}})()},[]),E.useEffect(()=>{(async()=>{try{const se=await fetch("/api/config/notifications");if(se.ok){const ut=await se.json();es(ut),Au(JSON.stringify(ut))}}catch{}})()},[]),E.useEffect(()=>{(async()=>{try{const se=await fetch("/api/config/coverage");if(se.ok){const ut=await se.json();tl(!!ut.enabled),Uh(Array.isArray(ut.excluded_adapters)?ut.excluded_adapters:[])}}catch{}})()},[]),E.useEffect(()=>{(async()=>{try{const se=await fetch("/api/secrets");if(se.ok){const ut=await se.json(),Ze={};for(const yt of ut)Ze[yt.env_var]=yt.is_set;j(Ze)}}catch{}})()},[]),E.useEffect(()=>{const se=async()=>{try{i(await $V()),s(await ZV())}catch{}};se();const ut=setInterval(se,3e4);return()=>clearInterval(ut)},[]);const Lu=e!==null&&JSON.stringify(e)!==r,Iu=JSON.stringify(z)!==B,rs=JSON.stringify(V)!==F,ns=JSON.stringify($)!==J,ue=JSON.stringify(Q)!==de,Xe=JSON.stringify(ye)!==xe,lt=JSON.stringify(ge)!==Ue,Pt=JSON.stringify(Fe)!==bt,fr=JSON.stringify(Ke)!==ce,Tn=Lu||Iu||rs||ns||ue||Xe||lt||Pt||fr,Ct=async(se,ut,Ze)=>{const yt=await fetch(`/api/adapter-config/${se}/${ut}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({value:Ze})});if(!yt.ok){const rr=await yt.json().catch(()=>({}));throw new Error(rr.detail||`Failed to save ${se}.${ut}`)}},as=async(se,ut)=>{I(Ze=>({...Ze,[se]:ut}));try{await fetch(`/api/adapter-meta/${se}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({include_in_llm_context:ut})})}catch{}},Mn=async()=>{if(e){h(!0),v(null),m(null);try{if(Lu){const se=await fetch("/api/config/environmental",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),ut=await se.json();if(!se.ok)throw new Error(ut.detail||"Save failed");n(JSON.stringify(e)),ut.restart_required&&x(!0)}if(Iu){const se=JSON.parse(B);z.freshness_seconds!==se.freshness_seconds&&await Ct("wfigs","freshness_seconds",z.freshness_seconds),JSON.stringify(z.allowed_incident_types)!==JSON.stringify(se.allowed_incident_types)&&await Ct("wfigs","allowed_incident_types",z.allowed_incident_types),z.cooldown_seconds!==se.cooldown_seconds&&await Ct("wfigs","cooldown_seconds",z.cooldown_seconds),z.broadcast_on_acres!==se.broadcast_on_acres&&await Ct("wfigs","broadcast_on_acres",z.broadcast_on_acres),z.broadcast_on_contained!==se.broadcast_on_contained&&await Ct("wfigs","broadcast_on_contained",z.broadcast_on_contained),H(JSON.stringify(z))}if(rs){const se=JSON.parse(F);V.min_magnitude!==se.min_magnitude&&await Ct("tomtom_incidents","min_magnitude",V.min_magnitude),V.drop_non_present!==se.drop_non_present&&await Ct("tomtom_incidents","drop_non_present",V.drop_non_present),V.drop_zero_magnitude!==se.drop_zero_magnitude&&await Ct("tomtom_incidents","drop_zero_magnitude",V.drop_zero_magnitude),W(JSON.stringify(V))}if(ns){const se=JSON.parse(J);$.min_severity!==se.min_severity&&await Ct("itd_511","min_severity",$.min_severity),JSON.stringify($.enabled_categories)!==JSON.stringify(se.enabled_categories)&&await Ct("itd_511","enabled_categories",$.enabled_categories),JSON.stringify($.enabled_sub_types)!==JSON.stringify(se.enabled_sub_types)&&await Ct("itd_511","enabled_sub_types",$.enabled_sub_types),re(JSON.stringify($))}if(ue){const se=JSON.parse(de);Q.broadcast!==se.broadcast&&await Ct("wzdx","broadcast",Q.broadcast),Q.min_severity!==se.min_severity&&await Ct("wzdx","min_severity",Q.min_severity),JSON.stringify(Q.sub_types)!==JSON.stringify(se.sub_types)&&await Ct("wzdx","sub_types",Q.sub_types),He(JSON.stringify(Q))}if(Xe){const se=JSON.parse(xe);JSON.stringify(ye.broadcast_severities)!==JSON.stringify(se.broadcast_severities)&&await Ct("nws","broadcast_severities",ye.broadcast_severities),ye.duplicate_allowed_after_seconds!==se.duplicate_allowed_after_seconds&&await Ct("nws","duplicate_allowed_after_seconds",ye.duplicate_allowed_after_seconds),he(JSON.stringify(ye))}if(lt){const se=JSON.parse(Ue);ge.min_danger_level!==se.min_danger_level&&await Ct("avalanche","min_danger_level",ge.min_danger_level),qe(JSON.stringify(ge))}if(Pt){const se=JSON.parse(bt);Fe.geomag_kp_floor!==se.geomag_kp_floor&&await Ct("swpc","geomag_kp_floor",Fe.geomag_kp_floor),Fe.flare_class_floor!==se.flare_class_floor&&await Ct("swpc","flare_class_floor",Fe.flare_class_floor),Fe.proton_pfu_floor!==se.proton_pfu_floor&&await Ct("swpc","proton_pfu_floor",Fe.proton_pfu_floor),et(JSON.stringify(Fe))}if(fr){const se=JSON.parse(ce);Ke.enabled!==se.enabled&&await Ct("satpass","enabled",Ke.enabled),JSON.stringify(Ke.observers)!==JSON.stringify(se.observers)&&await Ct("satpass","observers",Ke.observers),Ke.min_elevation!==se.min_elevation&&await Ct("satpass","min_elevation",Ke.min_elevation),JSON.stringify(Ke.norad_ids)!==JSON.stringify(se.norad_ids)&&await Ct("satpass","norad_ids",Ke.norad_ids),Ke.max_broadcasts_per_hour!==se.max_broadcasts_per_hour&&await Ct("satpass","max_broadcasts_per_hour",Ke.max_broadcasts_per_hour),Ke.dry_run!==se.dry_run&&await Ct("satpass","dry_run",Ke.dry_run),st(JSON.stringify(Ke))}m("Config saved"),setTimeout(()=>m(null),3e3)}catch(se){v(se instanceof Error?se.message:"Save failed")}finally{h(!1)}}},$e=()=>{e&&t(JSON.parse(r)),D(JSON.parse(B||JSON.stringify(z))),U(JSON.parse(F||JSON.stringify(V))),Z(JSON.parse(J||JSON.stringify($))),le(JSON.parse(de||JSON.stringify(Q))),ne(JSON.parse(xe||JSON.stringify(ye))),tt(JSON.parse(Ue||JSON.stringify(ge))),_t(JSON.parse(bt||JSON.stringify(Fe))),St(JSON.parse(ce||JSON.stringify(Ke))),Ft(null),Lr(null)},Zh=async()=>{try{await fetch("/api/restart",{method:"POST"}),x(!1),m("Restart initiated")}catch{v("Restart failed")}},Me=se=>e&&t({...e,...se}),Un=se=>Qo&&!Ki.includes(se),Pu={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",ipaws:"ipaws"},Lv=(Hn==null?void 0:Hn.toggles)||{},oy=Hn!==null&&JSON.stringify(Hn)!==ts,Ha=(se,ut)=>{if(!Hn)return;const Ze=Hn.toggles||{};es({...Hn,toggles:{...Ze,[se]:{...Ze[se]||{},name:se,...ut}}})},sy=async()=>{if(Hn){Ga(!0),Nu(null),rl(null);try{const se=await fetch("/api/config/notifications");if(!se.ok)throw new Error("Failed to re-fetch notifications config");const ut=await se.json(),Ze={...ut,toggles:{...ut.toggles||{}}},yt=Hn.toggles||{};for(const{key:cn}of fu){const An=yt[cn];if(!An)continue;const Y=(ut.toggles||{})[cn]||{};Ze.toggles[cn]={...Y,name:Y.name||cn,enabled:An.enabled,min_severity:An.min_severity,freshness_seconds:An.freshness_seconds??Y.freshness_seconds??600,cooldown_seconds:An.cooldown_seconds??Y.cooldown_seconds??0,regions:An.regions??Y.regions??[]}}const rr=await fetch("/api/config/notifications",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(Ze)}),oa=await rr.json();if(!rr.ok)throw new Error(oa.detail||"Save failed");es(Ze),Au(JSON.stringify(Ze)),rl("Family settings saved"),setTimeout(()=>rl(null),3e3)}catch(se){Nu(se instanceof Error?se.message:"Save failed")}finally{Ga(!1)}}},xw=()=>{ts&&es(JSON.parse(ts))};if(l)return d.jsx("div",{className:"flex items-center justify-center h-64 text-[#777]",children:"Loading environmental config…"});if(!e)return d.jsx("div",{className:"flex items-center justify-center h-64 text-red-400",children:f||"No config"});const _w=se=>a==null?void 0:a.feeds.find(ut=>ut.source===dc[se].health),bw=se=>o.filter(ut=>ut.source===dc[se].health),ww=se=>{const ut=QCe[se];if(!ut)return!0;const Ze=P[ut];return Ze===void 0?!0:Ze},is=Q2.find(se=>se.key===_),Rr=is.adapters.length===0?null:S&&is.adapters.includes(S)?S:is.adapters[0],Yh=se=>{var ut,Ze,yt,rr,oa,cn,An;switch(se){case"nws":return d.jsxs(d.Fragment,{children:[Un("nws")?d.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"," ",d.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.']}):d.jsxs(d.Fragment,{children:[d.jsx(Dn,{label:"NWS Zones",value:e.nws_zones,onChange:Y=>Me({nws_zones:Y}),helper:"Zone IDs like IDZ016, IDZ030",infoLink:"https://www.weather.gov/pimar/PubZone"}),d.jsx(Dn,{label:"NWS Areas",value:e.nws.areas??[],onChange:Y=>Me({nws:{...e.nws,areas:Y}}),helper:"State codes NWS pulls, e.g. ID"})]}),e.nws.feed_source!=="central"&&d.jsxs(d.Fragment,{children:[d.jsx(gt,{label:"User Agent",value:e.nws.user_agent,onChange:Y=>Me({nws:{...e.nws,user_agent:Y}}),placeholder:"(MeshAI, you@email.com)",helper:"Format: (app_name, contact_email)"}),d.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[d.jsx(Ne,{label:"Tick Seconds",value:e.nws.tick_seconds,onChange:Y=>Me({nws:{...e.nws,tick_seconds:Y}}),min:30}),d.jsx(jn,{label:"Min Severity",value:e.nws.severity_min,onChange:Y=>Me({nws:{...e.nws,severity_min:Y}}),options:[{value:"minor",label:"Minor"},{value:"moderate",label:"Moderate"},{value:"severe",label:"Severe"},{value:"extreme",label:"Extreme"}]})]})]}),e.nws.feed_source==="central"&&d.jsxs("div",{className:"border-t border-border pt-4 mt-4",children:[d.jsx("div",{className:"text-[10px] font-sans font-medium uppercase tracking-widest text-[#666] mb-3",children:"Broadcast Filters"}),d.jsxs("div",{className:"mb-3",children:[d.jsx("div",{className:"text-xs font-sans text-[#777] mb-2",children:"Severities to broadcast"}),d.jsx("div",{className:"flex gap-6",children:["Extreme","Severe","Moderate","Minor"].map(Y=>d.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[d.jsx("input",{type:"checkbox",checked:ye.broadcast_severities.includes(Y),onChange:Ae=>{const ct=ye.broadcast_severities;ne({...ye,broadcast_severities:Ae.target.checked?[...ct,Y]:ct.filter(ot=>ot!==Y)})},className:"w-4 h-4 accent-[#f59e0b]"}),d.jsx("span",{className:"text-sm font-sans text-[#e0e0e0]",children:Y})]},Y))})]}),d.jsx(Ne,{label:"Re-broadcast Cooldown (seconds)",value:ye.duplicate_allowed_after_seconds,onChange:Y=>ne({...ye,duplicate_allowed_after_seconds:Y}),min:0,helper:"Minimum seconds before the same alert ID can be re-broadcast"})]})]});case"swpc":return d.jsx("div",{className:"space-y-6",children:d.jsxs("div",{children:[d.jsx("div",{className:"text-[10px] font-sans font-medium uppercase tracking-widest text-[#666] mb-3",children:"Broadcast Thresholds"}),d.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[d.jsx(jn,{label:"Geomag Kp Floor",value:String(Fe.geomag_kp_floor),onChange:Y=>_t({...Fe,geomag_kp_floor:Number(Y)}),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"}),d.jsx(jn,{label:"Flare Class Floor",value:Fe.flare_class_floor,onChange:Y=>_t({...Fe,flare_class_floor:Y}),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"}),d.jsx(jn,{label:"Proton pfu Floor",value:String(Fe.proton_pfu_floor),onChange:Y=>_t({...Fe,proton_pfu_floor:Number(Y)}),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 d.jsxs("div",{className:"space-y-3",children:[d.jsx(Ne,{label:"Tick Seconds",value:e.ducting.tick_seconds,onChange:Y=>Me({ducting:{...e.ducting,tick_seconds:Y}}),min:60}),Un("ducting")?d.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"," ",d.jsx("a",{href:"/coverage",className:"text-accent hover:underline",children:"Coverage map"}),"."]}):d.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[d.jsx(Ne,{label:"Latitude",value:e.ducting.latitude,onChange:Y=>Me({ducting:{...e.ducting,latitude:Y}}),step:.01}),d.jsx(Ne,{label:"Longitude",value:e.ducting.longitude,onChange:Y=>Me({ducting:{...e.ducting,longitude:Y}}),step:.01})]})]});case"fires":return d.jsxs("div",{className:"space-y-6",children:[e.fires.feed_source!=="central"&&d.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[d.jsx(Ne,{label:"Tick Seconds",value:e.fires.tick_seconds,onChange:Y=>Me({fires:{...e.fires,tick_seconds:Y}}),min:60}),Un("fires")?d.jsxs("div",{className:"text-xs text-[#666] bg-bg-hover px-3 py-2 border border-border/50 self-end",children:["State scoped by"," ",d.jsx("a",{href:"/coverage",className:"text-accent hover:underline",children:"Coverage map"}),"."]}):d.jsx(jn,{label:"State",value:e.fires.state,onChange:Y=>Me({fires:{...e.fires,state:Y}}),options:pCe})]}),d.jsxs("div",{children:[d.jsx("div",{className:"text-[10px] font-sans font-medium uppercase tracking-widest text-[#666] mb-3",children:"Incident Types"}),d.jsx("div",{className:"flex gap-6",children:[["WF","Wildfire"],["RX","Prescribed Burn"],["OTHER","Other"]].map(([Y,Ae])=>{var ct;return d.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[d.jsx("input",{type:"checkbox",checked:((ct=z.allowed_incident_types)==null?void 0:ct.includes(Y))??Y==="WF",onChange:ot=>{const dt=z.allowed_incident_types??["WF"];D({...z,allowed_incident_types:ot.target.checked?[...dt,Y]:dt.filter(os=>os!==Y)})},className:"w-4 h-4 accent-[#f59e0b]"}),d.jsx("span",{className:"text-sm font-sans text-[#e0e0e0]",children:Ae})]},Y)})})]}),d.jsxs("div",{children:[d.jsx("div",{className:"text-[10px] font-sans font-medium uppercase tracking-widest text-[#666] mb-3",children:"Broadcast Triggers"}),d.jsxs("div",{className:"space-y-2",children:[d.jsxs("label",{className:"flex items-center justify-between",children:[d.jsx("span",{className:"text-sm font-sans text-[#e0e0e0]",children:"Broadcast on acres increase"}),d.jsx("input",{type:"checkbox",checked:z.broadcast_on_acres,onChange:Y=>D({...z,broadcast_on_acres:Y.target.checked}),className:"w-4 h-4 accent-[#f59e0b]"})]}),d.jsxs("label",{className:"flex items-center justify-between",children:[d.jsx("span",{className:"text-sm font-sans text-[#e0e0e0]",children:"Broadcast on containment increase"}),d.jsx("input",{type:"checkbox",checked:z.broadcast_on_contained,onChange:Y=>D({...z,broadcast_on_contained:Y.target.checked}),className:"w-4 h-4 accent-[#f59e0b]"})]})]})]}),d.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[d.jsx(Ne,{label:"Update Cooldown (hours)",value:Math.round(z.cooldown_seconds/3600),onChange:Y=>D({...z,cooldown_seconds:Y*3600}),min:0,helper:"Minimum hours between updates for the same fire"}),d.jsx(Ne,{label:"Freshness Window (hours)",value:Math.round(z.freshness_seconds/3600),onChange:Y=>D({...z,freshness_seconds:Y*3600}),min:0,helper:"0 = always broadcast regardless of event age"})]})]});case"avalanche":return d.jsxs("div",{className:"space-y-6",children:[e.avalanche.feed_source!=="central"&&d.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[d.jsx(Ne,{label:"Tick Seconds",value:e.avalanche.tick_seconds,onChange:Y=>Me({avalanche:{...e.avalanche,tick_seconds:Y}}),min:60}),d.jsx(X2,{label:"Season Months",value:e.avalanche.season_months,onChange:Y=>Me({avalanche:{...e.avalanche,season_months:Y}}),helper:"e.g., 12, 1, 2, 3, 4"})]}),Un("avalanche")?d.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"," ",d.jsx("a",{href:"/coverage",className:"text-accent hover:underline",children:"Coverage map"}),"."]}):d.jsx(Dn,{label:"Center IDs",value:e.avalanche.center_ids,onChange:Y=>Me({avalanche:{...e.avalanche,center_ids:Y}}),helper:"e.g., SNFAC",infoLink:"https://avalanche.org/avalanche-centers/"}),d.jsxs("div",{children:[d.jsx("div",{className:"text-[10px] font-sans font-medium uppercase tracking-widest text-[#666] mb-3",children:"Broadcast Settings"}),d.jsx("div",{className:"grid grid-cols-2 gap-4",children:d.jsx(jn,{label:"Min Danger Level",value:String(ge.min_danger_level),onChange:Y=>tt({...ge,min_danger_level:Number(Y)}),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 d.jsxs(d.Fragment,{children:[d.jsx(Ne,{label:"Tick Seconds",value:e.usgs.tick_seconds,onChange:Y=>Me({usgs:{...e.usgs,tick_seconds:Y}}),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."}),Un("usgs")?d.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"," ",d.jsx("a",{href:"/coverage",className:"text-accent hover:underline",children:"Coverage map"}),"."]}):d.jsx(Dn,{label:"Site IDs",value:e.usgs.sites,onChange:Y=>Me({usgs:{...e.usgs,sites:Y}}),helper:"USGS gauge site numbers",infoLink:"https://waterdata.usgs.gov/nwis"}),d.jsxs("div",{children:[d.jsx("label",{className:"text-xs font-sans text-[#777] mb-1 block",children:"Flood Thresholds (advanced JSON)"}),d.jsx("textarea",{value:Bt??JSON.stringify(e.usgs.flood_thresholds??{},null,2),onChange:Y=>{const Ae=Y.target.value;Ft(Ae);try{const ct=JSON.parse(Ae);Lr(null),Me({usgs:{...e.usgs,flood_thresholds:ct}})}catch(ct){Lr(ct instanceof Error?ct.message:"Invalid JSON")}},rows:6,spellCheck:!1,className:"w-full bg-[#0d0d0d] border border-border px-3 py-2 text-sm font-mono"}),jt&&d.jsxs("p",{className:"text-xs text-red-400 mt-1",children:["Invalid JSON — not saved: ",jt]}),d.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 d.jsxs("div",{className:"space-y-6",children:[e.usgs_quake.feed_source!=="central"&&d.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[d.jsx(Ne,{label:"Tick Seconds",value:e.usgs_quake.tick_seconds,onChange:Y=>Me({usgs_quake:{...e.usgs_quake,tick_seconds:Y}}),min:60}),d.jsx(gt,{label:"Region Tag",value:e.usgs_quake.region,onChange:Y=>Me({usgs_quake:{...e.usgs_quake,region:Y}})})]}),d.jsxs("div",{children:[d.jsx("div",{className:"text-[10px] font-sans font-medium uppercase tracking-widest text-[#666] mb-3",children:"Native Feed"}),d.jsxs("div",{className:"space-y-3",children:[d.jsx(gt,{label:"Quake Feed URL",value:e.usgs_quake.feed_url,onChange:Y=>Me({usgs_quake:{...e.usgs_quake,feed_url:Y}})}),d.jsx("div",{className:"grid grid-cols-2 gap-4",children:d.jsx(Ne,{label:"Min Magnitude",value:e.usgs_quake.min_magnitude??2.5,onChange:Y=>Me({usgs_quake:{...e.usgs_quake,min_magnitude:Y}}),step:.1,min:0,helper:"Native quake magnitude floor"})}),Un("usgs_quake")?d.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"," ",d.jsx("a",{href:"/coverage",className:"text-accent hover:underline",children:"Coverage map"}),"."]}):d.jsx(X2,{label:"Bounding Box [W, S, E, N]",value:e.usgs_quake.bbox??[],onChange:Y=>Me({usgs_quake:{...e.usgs_quake,bbox:Y}}),helper:"Four values: west, south, east, north"})]})]}),d.jsxs("div",{children:[d.jsx("div",{className:"text-[10px] font-sans font-medium uppercase tracking-widest text-[#666] mb-3",children:"Magnitude Thresholds"}),d.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[d.jsx(Ne,{label:"Global Floor",value:e.usgs_quake.global_mag_floor,onChange:Y=>Me({usgs_quake:{...e.usgs_quake,global_mag_floor:Y}}),step:.1,min:0,helper:"Broadcast anywhere at or above this magnitude"}),d.jsx(Ne,{label:"Regional Floor",value:e.usgs_quake.regional_mag_floor,onChange:Y=>Me({usgs_quake:{...e.usgs_quake,regional_mag_floor:Y}}),step:.1,min:0,helper:"Reduced floor within regional radius"}),d.jsx(Ne,{label:"Regional Radius (mi)",value:e.usgs_quake.regional_radius_mi,onChange:Y=>Me({usgs_quake:{...e.usgs_quake,regional_radius_mi:Y}}),min:50,helper:"Radius around region centroid for reduced floor"}),d.jsx(Ne,{label:"Escalation Floor",value:e.usgs_quake.escalate_mag_floor,onChange:Y=>Me({usgs_quake:{...e.usgs_quake,escalate_mag_floor:Y}}),step:.1,min:0,helper:"Magnitude at which broadcast uses warning emoji"})]})]}),d.jsxs("div",{children:[d.jsx("div",{className:"text-[10px] font-sans font-medium uppercase tracking-widest text-[#666] mb-3",children:"PAGER Alert Levels"}),d.jsx("div",{className:"text-xs text-[#666] mb-2",children:"Broadcast at any magnitude when USGS PAGER alert reaches these levels"}),d.jsx("div",{className:"flex gap-6",children:["green","yellow","orange","red"].map(Y=>d.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[d.jsx("input",{type:"checkbox",checked:(e.usgs_quake.broadcast_pager_alerts??[]).includes(Y),onChange:Ae=>{const ct=e.usgs_quake.broadcast_pager_alerts??[];Me({usgs_quake:{...e.usgs_quake,broadcast_pager_alerts:Ae.target.checked?[...ct,Y]:ct.filter(ot=>ot!==Y)}})},className:"w-4 h-4 accent-[#f59e0b]"}),d.jsx("span",{className:"text-sm font-sans text-[#e0e0e0] capitalize",children:Y})]},Y))})]})]});case"traffic":return d.jsxs(d.Fragment,{children:[d.jsx($p,{envVar:"TOMTOM_API_KEY",label:"API Key",helper:"developer.tomtom.com"}),d.jsx(Ne,{label:"Tick Seconds",value:e.traffic.tick_seconds,onChange:Y=>Me({traffic:{...e.traffic,tick_seconds:Y}}),min:60}),Un("traffic")?d.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"," ",d.jsx("a",{href:"/coverage",className:"text-accent hover:underline",children:"Coverage map"}),"."]}):d.jsxs(d.Fragment,{children:[d.jsx("div",{className:"text-xs text-[#666] mt-2",children:"Corridors:"}),(e.traffic.corridors||[]).map((Y,Ae)=>d.jsxs("div",{className:"grid grid-cols-4 gap-2 items-end",children:[d.jsx(gt,{label:"Name",value:Y.name,onChange:ct=>{const ot=[...e.traffic.corridors];ot[Ae]={...Y,name:ct},Me({traffic:{...e.traffic,corridors:ot}})}}),d.jsx(Ne,{label:"Lat",value:Y.lat,onChange:ct=>{const ot=[...e.traffic.corridors];ot[Ae]={...Y,lat:ct},Me({traffic:{...e.traffic,corridors:ot}})},step:.01}),d.jsx(Ne,{label:"Lon",value:Y.lon,onChange:ct=>{const ot=[...e.traffic.corridors];ot[Ae]={...Y,lon:ct},Me({traffic:{...e.traffic,corridors:ot}})},step:.01}),d.jsx("button",{onClick:()=>Me({traffic:{...e.traffic,corridors:e.traffic.corridors.filter((ct,ot)=>ot!==Ae)}}),className:"px-2 py-2 text-xs text-red-400 hover:text-red-300 border border-red-400/30",children:"Remove"})]},Ae)),d.jsx("button",{onClick:()=>Me({traffic:{...e.traffic,corridors:[...e.traffic.corridors||[],{name:"",lat:0,lon:0}]}}),className:"text-xs text-accent hover:underline",children:"+ Add Corridor"})]}),d.jsxs("div",{className:"border-t border-border pt-4 mt-4",children:[d.jsx("div",{className:"text-[10px] font-sans font-medium uppercase tracking-widest text-[#666] mb-3",children:"Broadcast Filters"}),d.jsx("div",{className:"grid grid-cols-2 gap-4",children:d.jsxs("div",{children:[d.jsx("label",{className:"text-xs font-sans text-[#777] mb-1 block",children:"Minimum Magnitude"}),d.jsxs("select",{value:V.min_magnitude,onChange:Y=>U({...V,min_magnitude:parseInt(Y.target.value)}),className:"w-full bg-[#0d0d0d] border border-border px-3 py-2 text-sm",children:[d.jsx("option",{value:1,children:"1 — Minor (all)"}),d.jsx("option",{value:2,children:"2 — Moderate (yellow+)"}),d.jsx("option",{value:3,children:"3 — Major (orange+)"}),d.jsx("option",{value:4,children:"4 — Severe (red only)"})]}),d.jsx("p",{className:"text-xs text-[#666] mt-1",children:"Drop TomTom incidents below this severity level"})]})}),d.jsxs("div",{className:"mt-3 space-y-2",children:[d.jsxs("label",{className:"flex items-center justify-between",children:[d.jsx("span",{className:"text-sm font-sans text-[#e0e0e0]",children:"Drop non-present time validity"}),d.jsx("input",{type:"checkbox",checked:V.drop_non_present,onChange:Y=>U({...V,drop_non_present:Y.target.checked}),className:"w-4 h-4 accent-[#f59e0b]"})]}),d.jsxs("label",{className:"flex items-center justify-between",children:[d.jsx("span",{className:"text-sm font-sans text-[#e0e0e0]",children:"Drop zero-magnitude events"}),d.jsx("input",{type:"checkbox",checked:V.drop_zero_magnitude,onChange:Y=>U({...V,drop_zero_magnitude:Y.target.checked}),className:"w-4 h-4 accent-[#f59e0b]"})]})]})]})]});case"roads511":return d.jsxs(d.Fragment,{children:[d.jsx(gt,{label:"Base URL",value:e.roads511.base_url,onChange:Y=>Me({roads511:{...e.roads511,base_url:Y}}),placeholder:"https://511.yourstate.gov/api/v2"}),d.jsx($p,{envVar:"ROADS511_API_KEY",label:"API Key",helper:"Leave unset if 511 needs no key"}),d.jsx(Ne,{label:"Tick Seconds",value:e.roads511.tick_seconds,onChange:Y=>Me({roads511:{...e.roads511,tick_seconds:Y}}),min:60}),d.jsx(Dn,{label:"Endpoints",value:e.roads511.endpoints,onChange:Y=>Me({roads511:{...e.roads511,endpoints:Y}}),helper:"e.g., /get/event"}),Un("roads511")?d.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"," ",d.jsx("a",{href:"/coverage",className:"text-accent hover:underline",children:"Coverage map"}),"."]}):d.jsx("div",{className:"grid grid-cols-4 gap-2",children:["West","South","East","North"].map((Y,Ae)=>{var ct;return d.jsx(Ne,{label:Y,value:((ct=e.roads511.bbox)==null?void 0:ct[Ae])??0,onChange:ot=>{const dt=[...e.roads511.bbox||[0,0,0,0]];dt[Ae]=ot,Me({roads511:{...e.roads511,bbox:dt}})},step:.01},Y)})}),d.jsxs("div",{className:"border-t border-border pt-4 mt-4",children:[d.jsx("div",{className:"text-[10px] font-sans font-medium uppercase tracking-widest text-[#666] mb-3",children:"Broadcast Filters"}),d.jsx("div",{className:"grid grid-cols-2 gap-4",children:d.jsxs("div",{children:[d.jsx("label",{className:"text-xs font-sans text-[#777] mb-1 block",children:"Minimum Severity"}),d.jsxs("select",{value:$.min_severity,onChange:Y=>Z({...$,min_severity:Y.target.value}),className:"w-full bg-[#0d0d0d] border border-border px-3 py-2 text-sm",children:[d.jsx("option",{value:"None",children:"None (all)"}),d.jsx("option",{value:"Minor",children:"Minor+"}),d.jsx("option",{value:"Major",children:"Major only"})]}),d.jsx("p",{className:"text-xs text-[#666] mt-1",children:"Drop ITD 511 events below this severity"})]})}),d.jsxs("div",{className:"mt-4",children:[d.jsx("div",{className:"text-xs font-sans text-[#777] mb-2",children:"Categories"}),d.jsx("div",{className:"flex gap-6",children:[["incident","Incident"],["closure","Closure"],["special_event","Special Event"]].map(([Y,Ae])=>d.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[d.jsx("input",{type:"checkbox",checked:$.enabled_categories.includes(Y),onChange:ct=>{const ot=$.enabled_categories;Z({...$,enabled_categories:ct.target.checked?[...ot,Y]:ot.filter(dt=>dt!==Y)})},className:"w-4 h-4 accent-[#f59e0b]"}),d.jsx("span",{className:"text-sm font-sans text-[#e0e0e0]",children:Ae})]},Y))})]}),d.jsxs("div",{className:"mt-4",children:[d.jsx("div",{className:"text-xs font-sans text-[#777] mb-2",children:"Sub-types"}),d.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(([Y,Ae])=>d.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[d.jsx("input",{type:"checkbox",checked:$.enabled_sub_types.includes(Y),onChange:ct=>{const ot=$.enabled_sub_types;Z({...$,enabled_sub_types:ct.target.checked?[...ot,Y]:ot.filter(dt=>dt!==Y)})},className:"w-4 h-4 accent-[#f59e0b]"}),d.jsx("span",{className:"text-sm font-sans text-[#e0e0e0]",children:Ae})]},Y))})]})]})]});case"wzdx":return d.jsxs(d.Fragment,{children:[((ut=e.wzdx)==null?void 0:ut.feed_source)!=="central"&&d.jsxs(d.Fragment,{children:[d.jsx(gt,{label:"Base URL",value:((Ze=e.wzdx)==null?void 0:Ze.base_url)??"",onChange:Y=>Me({wzdx:{...e.wzdx,base_url:Y}}),placeholder:"https://511.yourstate.gov/api/v2"}),d.jsx($p,{envVar:"WZDX_API_KEY",label:"API Key",helper:"Leave unset if not required"}),d.jsx(Ne,{label:"Tick Seconds",value:((yt=e.wzdx)==null?void 0:yt.tick_seconds)??300,onChange:Y=>Me({wzdx:{...e.wzdx,tick_seconds:Y}}),min:60}),d.jsx(Dn,{label:"Endpoints",value:((rr=e.wzdx)==null?void 0:rr.endpoints)??["/get/event"],onChange:Y=>Me({wzdx:{...e.wzdx,endpoints:Y}}),helper:"e.g., /get/event"}),Un("wzdx")?d.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"," ",d.jsx("a",{href:"/coverage",className:"text-accent hover:underline",children:"Coverage map"}),"."]}):d.jsxs(d.Fragment,{children:[d.jsx("div",{className:"grid grid-cols-4 gap-2",children:["West","South","East","North"].map((Y,Ae)=>{var ct,ot;return d.jsx(Ne,{label:Y,value:((ot=(ct=e.wzdx)==null?void 0:ct.bbox)==null?void 0:ot[Ae])??0,onChange:dt=>{var Ji;const os=[...((Ji=e.wzdx)==null?void 0:Ji.bbox)||[0,0,0,0]];os[Ae]=dt,Me({wzdx:{...e.wzdx,bbox:os}})},step:.01},Y)})}),d.jsx("div",{className:"text-xs text-[#666]",children:"Bounding box [W,S,E,N] geographic filter"}),d.jsx(Dn,{label:"States",value:((oa=e.wzdx)==null?void 0:oa.states)??[],onChange:Y=>Me({wzdx:{...e.wzdx,states:Y}}),helper:"2-letter state codes to include from the WZDx Feed Registry, e.g. ID, OR"})]}),d.jsx(gt,{label:"Registry URL",value:((cn=e.wzdx)==null?void 0:cn.registry_url)??"",onChange:Y=>Me({wzdx:{...e.wzdx,registry_url:Y}}),placeholder:"https://datahub.transportation.gov/resource/69qe-yiui.json?$limit=200",helper:"FHWA WZDx Feed Registry (Socrata) URL — lists every state DOT feed"}),d.jsx(Ne,{label:"Registry TTL (sec)",value:((An=e.wzdx)==null?void 0:An.registry_ttl)??21600,onChange:Y=>Me({wzdx:{...e.wzdx,registry_ttl:Y}}),min:0,helper:"How often to re-fetch the WZDx registry (default 21600 = 6h)"})]}),d.jsxs("div",{className:"border-t border-border pt-4 mt-4",children:[d.jsx("div",{className:"text-[10px] font-sans font-medium uppercase tracking-widest text-[#666] mb-3",children:"Broadcast Settings"}),d.jsxs("label",{className:"flex items-center justify-between",children:[d.jsx("span",{className:"text-sm font-sans text-[#e0e0e0]",children:"Broadcast work zone events"}),d.jsx("input",{type:"checkbox",checked:Q.broadcast,onChange:Y=>le({...Q,broadcast:Y.target.checked}),className:"w-4 h-4 accent-[#f59e0b]"})]}),Q.broadcast?d.jsxs("div",{className:"space-y-3 mt-3",children:[d.jsxs("div",{children:[d.jsx("label",{className:"text-xs font-sans text-[#777] mb-1 block",children:"Min Severity"}),d.jsxs("select",{value:Q.min_severity,onChange:Y=>le({...Q,min_severity:Y.target.value}),className:"w-full bg-[#0d0d0d] border border-border px-3 py-2 text-sm",children:[d.jsx("option",{value:"None",children:"None (all)"}),d.jsx("option",{value:"Minor",children:"Minor+"}),d.jsx("option",{value:"Major",children:"Major only"})]})]}),d.jsxs("div",{children:[d.jsx("div",{className:"text-xs font-sans text-[#777] mb-2",children:"Sub-types"}),d.jsx("div",{className:"flex gap-6",children:[["road_works","Road Works"],["lane_closed","Lane Closure"],["road_closed","Road Closed"]].map(([Y,Ae])=>d.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[d.jsx("input",{type:"checkbox",checked:Q.sub_types.includes(Y),onChange:ct=>{const ot=Q.sub_types;le({...Q,sub_types:ct.target.checked?[...ot,Y]:ot.filter(dt=>dt!==Y)})},className:"w-4 h-4 accent-[#f59e0b]"}),d.jsx("span",{className:"text-sm font-sans text-[#e0e0e0]",children:Ae})]},Y))})]})]}):d.jsxs("p",{className:"text-xs text-[#666] mt-2",children:["Work zone events stored for LLM context only ","—"," no mesh broadcasts."]})]})]});case"firms":return d.jsxs(d.Fragment,{children:[d.jsx($p,{envVar:"FIRMS_MAP_KEY",label:"MAP Key",helper:"NASA FIRMS MAP_KEY"}),d.jsx(Ne,{label:"Tick Seconds",value:e.firms.tick_seconds,onChange:Y=>Me({firms:{...e.firms,tick_seconds:Y}}),min:300}),d.jsx(jn,{label:"Satellite Source",value:e.firms.source,onChange:Y=>Me({firms:{...e.firms,source:Y}}),options:[{value:"VIIRS_SNPP_NRT",label:"VIIRS SNPP (NRT)"},{value:"VIIRS_NOAA20_NRT",label:"VIIRS NOAA-20 (NRT)"},{value:"MODIS_NRT",label:"MODIS (NRT)"}]}),d.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[d.jsx(Ne,{label:"Day Range",value:e.firms.day_range,onChange:Y=>Me({firms:{...e.firms,day_range:Y}}),min:1,max:10}),d.jsx(jn,{label:"Min Confidence",value:e.firms.confidence_min,onChange:Y=>Me({firms:{...e.firms,confidence_min:Y}}),options:[{value:"low",label:"Low"},{value:"nominal",label:"Nominal"},{value:"high",label:"High"}]}),d.jsx(Ne,{label:"Proximity (km)",value:e.firms.proximity_km,onChange:Y=>Me({firms:{...e.firms,proximity_km:Y}}),step:.5})]}),Un("firms")?d.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"," ",d.jsx("a",{href:"/coverage",className:"text-accent hover:underline",children:"Coverage map"}),"."]}):d.jsx("div",{className:"grid grid-cols-4 gap-2",children:["West","South","East","North"].map((Y,Ae)=>{var ct;return d.jsx(Ne,{label:Y,value:((ct=e.firms.bbox)==null?void 0:ct[Ae])??0,onChange:ot=>{const dt=[...e.firms.bbox||[0,0,0,0]];dt[Ae]=ot,Me({firms:{...e.firms,bbox:dt}})},step:.01},Y)})})]});case"ipaws":return d.jsxs(d.Fragment,{children:[d.jsx("div",{className:"text-[11px] text-[#666]",children:"Keyless FEMA IPAWS-OPEN EAS feed. Broadcasts NON-weather civil emergencies (evacuation orders, AMBER, HazMat, 911 outages, law-enforcement/shelter-in-place). Weather CAP is dropped so it never double-broadcasts the NWS adapter."}),d.jsx(gt,{label:"Base URL",value:e.ipaws.base_url,onChange:Y=>Me({ipaws:{...e.ipaws,base_url:Y}}),placeholder:"https://apps.fema.gov/IPAWSOPEN_EAS_SERVICE/rest",helper:"IPAWS-OPEN EAS REST root — Atom index at /feed, per-alert CAP at /eas/. Point at the Conduit proxy in prod."}),d.jsx(gt,{label:"User Agent",value:e.ipaws.user_agent,onChange:Y=>Me({ipaws:{...e.ipaws,user_agent:Y}}),placeholder:"meshai-ipaws/1.0 (you@email.com)",helper:"Sent on every FEMA request. Blank uses the built-in default."}),d.jsx(Ne,{label:"Tick Seconds",value:e.ipaws.tick_seconds,onChange:Y=>Me({ipaws:{...e.ipaws,tick_seconds:Y}}),min:30}),Un("ipaws")?d.jsxs("div",{className:"text-xs text-[#666] bg-bg-hover px-3 py-2 border border-border/50",children:["Region scope (state FIPS / SAME codes) is set by the"," ",d.jsx("a",{href:"/coverage",className:"text-accent hover:underline",children:"Coverage map"}),"."]}):d.jsxs(d.Fragment,{children:[d.jsx(Dn,{label:"State FIPS",value:e.ipaws.state_fips,onChange:Y=>Me({ipaws:{...e.ipaws,state_fips:Y}}),helper:"Coarse pre-fetch gate — 2-digit state FIPS to keep, e.g. 16 (ID), 41 (OR), 53 (WA)"}),d.jsx(Dn,{label:"SAME Codes",value:e.ipaws.same_codes,onChange:Y=>Me({ipaws:{...e.ipaws,same_codes:Y}}),helper:"Optional fine gate — 6-digit SAME county codes, e.g. 016001. Empty = all counties in the FIPS states."})]}),d.jsxs("div",{className:"border-t border-border pt-4 mt-4",children:[d.jsx("div",{className:"text-[10px] font-sans font-medium uppercase tracking-widest text-[#666] mb-3",children:"Broadcast Filters"}),d.jsxs("div",{className:"space-y-2",children:[d.jsxs("label",{className:"flex items-center justify-between",children:[d.jsx("span",{className:"text-sm font-sans text-[#e0e0e0]",children:"Exclude weather-sourced alerts"}),d.jsx("input",{type:"checkbox",checked:e.ipaws.exclude_weather,onChange:Y=>Me({ipaws:{...e.ipaws,exclude_weather:Y.target.checked}}),className:"w-4 h-4 accent-[#f59e0b]"})]}),d.jsx("p",{className:"text-xs text-[#666]",children:"Drop NWS/NOAA-originated CAP so weather stays on the NWS adapter (no double-broadcast)."}),d.jsxs("label",{className:"flex items-center justify-between pt-2",children:[d.jsx("span",{className:"text-sm font-sans text-[#e0e0e0]",children:"Actual status only"}),d.jsx("input",{type:"checkbox",checked:e.ipaws.status_actual_only,onChange:Y=>Me({ipaws:{...e.ipaws,status_actual_only:Y.target.checked}}),className:"w-4 h-4 accent-[#f59e0b]"})]}),d.jsx("p",{className:"text-xs text-[#666]",children:"Skip Test / Exercise / System messages — broadcast only status=Actual alerts."})]})]})]});case"satpass":{const Y=e.satpass.enabled?Ke.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 d.jsxs("div",{className:"space-y-6",children:[d.jsxs("div",{className:`px-4 py-2.5 text-sm rounded ${Y.color}`,children:[d.jsx("span",{className:"font-semibold",children:Y.label}),Y.desc&&d.jsx("span",{className:"font-normal",children:Y.desc})]}),d.jsxs("div",{children:[d.jsx("div",{className:"text-[10px] font-sans font-medium uppercase tracking-widest text-[#666] mb-3",children:"Safety Controls"}),d.jsxs("div",{className:"space-y-4",children:[d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsxs("div",{children:[d.jsx("span",{className:"text-sm text-[#e0e0e0]",children:"Dry run — log instead of transmit"}),d.jsx("p",{className:"text-xs text-[#666]",children:"When enabled, passes are logged but never broadcast to mesh"})]}),d.jsx("button",{onClick:()=>St({...Ke,dry_run:!Ke.dry_run}),className:`relative w-10 h-5 rounded-full transition-colors ${Ke.dry_run?"bg-sky-500":"bg-[#333]"}`,children:d.jsx("span",{className:`absolute top-0.5 left-0.5 w-4 h-4 rounded-full bg-white transition-transform ${Ke.dry_run?"translate-x-5":""}`})})]}),d.jsx(Ne,{label:"Max broadcasts / hour",value:Ke.max_broadcasts_per_hour,onChange:Ae=>St({...Ke,max_broadcasts_per_hour:Ae}),min:1,max:60,helper:"Rate cap — broadcasts exceeding this limit are dropped"})]})]}),d.jsxs("div",{children:[d.jsx("div",{className:"text-[10px] font-sans font-medium uppercase tracking-widest text-[#666] mb-3",children:"Pass Filters"}),d.jsx("div",{className:"grid grid-cols-2 gap-4",children:d.jsx(Ne,{label:"Min Elevation (deg)",value:Ke.min_elevation,onChange:Ae=>St({...Ke,min_elevation:Ae}),min:0,max:90,helper:"Minimum max elevation for a pass to be broadcast"})})]}),d.jsx(Dn,{label:"Observer Locations",value:Ke.observers,onChange:Ae=>St({...Ke,observers:Ae}),helper:"Observer names to include (empty = all)"}),d.jsx(Dn,{label:"NORAD IDs",value:Ke.norad_ids,onChange:Ae=>St({...Ke,norad_ids:Ae}),helper:"NORAD catalog IDs to broadcast (empty = broadcast nothing, opt-in only)"}),d.jsxs("div",{className:"border-t border-border pt-4 mt-2 space-y-6",children:[d.jsx("div",{className:"text-[10px] font-sans font-medium uppercase tracking-widest text-[#666]",children:"Native satpass (SGP4) — no Central required"}),d.jsxs("div",{children:[d.jsx("div",{className:"text-xs text-[#777] mb-2",children:"Observers (ground stations the predictor computes passes for)"}),Un("satpass")?d.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"," ",d.jsx("a",{href:"/coverage",className:"text-accent hover:underline",children:"Coverage map"}),"."]}):d.jsxs(d.Fragment,{children:[d.jsx("div",{className:"space-y-2",children:(e.satpass.observers||[]).map((Ae,ct)=>d.jsxs("div",{className:"grid grid-cols-6 gap-2 items-end",children:[d.jsx(gt,{label:"Slug",value:Ae.slug,onChange:ot=>{const dt=[...e.satpass.observers];dt[ct]={...Ae,slug:ot},Me({satpass:{...e.satpass,observers:dt}})},placeholder:"tvly"}),d.jsx(gt,{label:"Name",value:Ae.name,onChange:ot=>{const dt=[...e.satpass.observers];dt[ct]={...Ae,name:ot},Me({satpass:{...e.satpass,observers:dt}})},placeholder:"Treasure Valley"}),d.jsx(Ne,{label:"Lat",value:Ae.lat,onChange:ot=>{const dt=[...e.satpass.observers];dt[ct]={...Ae,lat:ot},Me({satpass:{...e.satpass,observers:dt}})},step:1e-4}),d.jsx(Ne,{label:"Lon",value:Ae.lon,onChange:ot=>{const dt=[...e.satpass.observers];dt[ct]={...Ae,lon:ot},Me({satpass:{...e.satpass,observers:dt}})},step:1e-4}),d.jsx(Ne,{label:"Alt (m)",value:Ae.alt_m,onChange:ot=>{const dt=[...e.satpass.observers];dt[ct]={...Ae,alt_m:ot},Me({satpass:{...e.satpass,observers:dt}})},step:1}),d.jsx("button",{onClick:()=>Me({satpass:{...e.satpass,observers:e.satpass.observers.filter((ot,dt)=>dt!==ct)}}),className:"px-2 py-2 text-xs text-red-400 hover:text-red-300 border border-red-400/30",children:"Remove"})]},ct))}),d.jsx("button",{onClick:()=>Me({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"})]})]}),d.jsx(Dn,{label:"TLE Groups",value:e.satpass.tle_groups,onChange:Ae=>Me({satpass:{...e.satpass,tle_groups:Ae}}),helper:"Celestrak GP group selectors, e.g. weather, stations, amateur",infoLink:"https://celestrak.org/NORAD/elements/"}),d.jsx(X2,{label:"NORAD IDs (native)",value:e.satpass.norad_ids,onChange:Ae=>Me({satpass:{...e.satpass,norad_ids:Ae}}),helper:"Specific NORAD catalog IDs to also fetch/predict, e.g. 25544, 33591"}),d.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[d.jsx(Ne,{label:"Min Elevation (deg)",value:e.satpass.min_elevation_deg,onChange:Ae=>Me({satpass:{...e.satpass,min_elevation_deg:Ae}}),min:0,max:90,helper:"Native SGP4 pass filter (separate from Central min elevation above)"}),d.jsx(Ne,{label:"Window (hours)",value:e.satpass.window_hours,onChange:Ae=>Me({satpass:{...e.satpass,window_hours:Ae}}),min:1,max:168,helper:"Hours ahead to predict passes"}),d.jsx(Ne,{label:"TLE Refresh (sec)",value:e.satpass.tle_refresh_seconds,onChange:Ae=>Me({satpass:{...e.satpass,tle_refresh_seconds:Ae}}),min:3600,helper:"How often to re-fetch TLEs (default 21600 = 6h)"}),d.jsx(Ne,{label:"Broadcast Lead (sec)",value:e.satpass.broadcast_lead_seconds??3600,onChange:Ae=>Me({satpass:{...e.satpass,broadcast_lead_seconds:Ae}}),min:0,helper:"How far ahead of a pass to announce"})]})]})]})}}},ly=e,uy=(se,ut)=>{const Ze=e[se]||{};Me({[se]:{...Ze,...ut}})};return d.jsxs("div",{className:"space-y-6",children:[d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsx("h1",{className:"text-xl font-semibold text-white",children:"Data Feeds"}),d.jsx("div",{className:"flex items-center gap-3",children:M==="curated"&&d.jsxs(d.Fragment,{children:[d.jsx(qt,{label:"Feeds Enabled",checked:e.enabled,onChange:se=>Me({enabled:se})}),Tn&&d.jsxs(d.Fragment,{children:[d.jsxs("button",{onClick:$e,className:"flex items-center gap-1 px-3 py-1.5 text-sm text-[#777] hover:text-white border border-border",children:[d.jsx(xa,{size:14})," Discard"]}),d.jsxs("button",{onClick:Mn,disabled:c,className:"flex items-center gap-1 px-3 py-1.5 text-sm bg-accent text-white disabled:opacity-50",children:[d.jsx(_a,{size:14})," ",c?"Saving…":"Save"]})]})]})})]}),f&&d.jsx("div",{className:"text-sm text-red-400 bg-red-500/10 p-3",children:f}),g&&d.jsx("div",{className:"text-sm text-green-400 bg-green-500/10 p-3",children:g}),y&&d.jsxs("div",{className:"flex items-center justify-between text-sm text-accent bg-accent/10 border border-accent/30 p-3",children:[d.jsxs("span",{className:"flex items-center gap-2",children:[d.jsx(Zi,{size:14})," A restart is required for some changes to take effect."]}),d.jsx("button",{onClick:Zh,className:"px-3 py-1 bg-accent/20 hover:bg-amber-500/30",children:"Restart now"})]}),d.jsxs("div",{className:"flex gap-1 border-b border-border",children:[d.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:[d.jsx(kh,{size:15})," Data Feeds"]}),d.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:[d.jsx(Bg,{size:15})," Advanced (raw)"]})]}),M==="advanced"&&d.jsxs("div",{className:"-mx-6",children:[d.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."}),d.jsx(DZ,{excludeKeys:GCe,hideLlmToggle:!0})]}),M==="curated"&&d.jsxs(d.Fragment,{children:[d.jsx("div",{className:"flex gap-1 border-b border-border overflow-x-auto",children:Q2.map(({key:se,label:ut,icon:Ze})=>d.jsxs("button",{onClick:()=>{w(se);const yt=Q2.find(rr=>rr.key===se);C(yt.adapters[0]??null)},className:`flex items-center gap-2 px-4 py-2 text-sm whitespace-nowrap border-b-2 -mb-px transition-colors ${_===se?"border-accent text-accent":"border-transparent text-[#777] hover:text-white"}`,children:[d.jsx(Ze,{size:15})," ",ut]},se))}),_==="central"&&e.central&&d.jsxs("div",{className:"border border-border p-4 space-y-3",children:[d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsxs("div",{children:[d.jsx("span",{className:"text-sm font-medium text-[#e0e0e0]",children:"Central Connection"}),d.jsx("p",{className:"text-xs text-[#666]",children:'NATS JetStream source for any adapter set to "central"'})]}),d.jsx(qt,{label:"",checked:!!e.central.enabled,onChange:se=>Me({central:{...e.central,enabled:se}})})]}),d.jsxs("div",{className:e.central.enabled?"space-y-3":"space-y-3 opacity-40 pointer-events-none select-none",children:[d.jsx(gt,{label:"URL",value:e.central.url||"",onChange:se=>Me({central:{...e.central,url:se}}),placeholder:"nats://central.echo6.mesh:4222"}),d.jsx(gt,{label:"Durable",value:e.central.durable||"",onChange:se=>Me({central:{...e.central,durable:se}}),placeholder:"meshai-v04"}),d.jsx(Ne,{label:"Connect Timeout (sec)",value:e.central.connect_timeout??10,onChange:se=>Me({central:{...e.central,connect_timeout:se}}),step:.5,min:0,helper:"NATS connect timeout for the Central consumer"}),d.jsx(gt,{label:"Region",value:e.central.region||"",onChange:se=>Me({central:{...e.central,region:se}}),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"&&d.jsxs("div",{className:"border border-border p-4 space-y-3",children:[d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsxs("div",{children:[d.jsx("span",{className:"text-sm font-medium text-[#e0e0e0]",children:"Mesh Health"}),d.jsx("p",{className:"text-xs text-[#666]",children:"Node/infra telemetry — sourced from the mesh, not an environmental feed."})]}),d.jsxs("div",{className:"flex items-center gap-1",children:[d.jsx("span",{className:"text-[10px] uppercase tracking-wide text-[#666]",children:"source"}),d.jsx(EZ,{value:"native",onChange:()=>{},disabled:!1,centralDisabled:!0})]})]}),d.jsx("div",{className:"text-[11px] text-[#666]",children:"Central not available — reserved for a future migration."})]}),_==="family_settings"&&d.jsxs("div",{className:"space-y-4",children:[d.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 ",d.jsx("a",{href:"/meshtastic/routing",className:"text-accent hover:underline",children:"Meshtastic Routing"})," and"," ",d.jsx("a",{href:"/meshcore/routing",className:"text-accent hover:underline",children:"MeshCore Routing"})," pages."]}),$h&&d.jsx("div",{className:"text-sm text-red-400 bg-red-500/10 p-3",children:$h}),ku&&d.jsx("div",{className:"text-sm text-green-400 bg-green-500/10 p-3",children:ku}),Hn===null?d.jsx("div",{className:"text-xs text-[#666] italic",children:"Loading family settings…"}):d.jsxs(d.Fragment,{children:[d.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:fu.map(({key:se,label:ut,Icon:Ze})=>{const yt=Lv[se]||{};return d.jsxs("div",{className:"border border-border p-3 space-y-3",children:[d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsxs("div",{className:"flex items-center gap-2 text-sm text-[#e0e0e0]",children:[d.jsx(Ze,{size:15})," ",ut]}),d.jsx(qt,{label:"",checked:!!yt.enabled,onChange:rr=>Ha(se,{enabled:rr})})]}),d.jsxs("div",{className:yt.enabled?"space-y-3":"space-y-3 opacity-40 pointer-events-none select-none",children:[d.jsx(jn,{label:"Min Severity",value:yt.min_severity||"priority",onChange:rr=>Ha(se,{min_severity:rr}),options:[{value:"routine",label:"Routine — informational"},{value:"priority",label:"Priority — needs attention"},{value:"immediate",label:"Immediate — act now"}]}),d.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[d.jsx(Ne,{label:"Freshness (sec)",value:yt.freshness_seconds??600,onChange:rr=>Ha(se,{freshness_seconds:rr}),min:0,helper:"Drop events older than this"}),d.jsx(Ne,{label:"Cooldown (sec)",value:yt.cooldown_seconds??0,onChange:rr=>Ha(se,{cooldown_seconds:rr}),min:0,helper:"0 = no throttle"})]}),d.jsx(Dn,{label:"Regions",value:yt.regions??[],onChange:rr=>Ha(se,{regions:rr}),helper:"Empty = all regions; otherwise only these region names"})]})]},se)})}),oy&&d.jsxs("div",{className:"flex justify-end gap-2 pt-2",children:[d.jsxs("button",{onClick:xw,className:"flex items-center gap-1 px-3 py-1.5 text-sm text-[#777] hover:text-white border border-border",children:[d.jsx(xa,{size:14})," Discard"]}),d.jsxs("button",{onClick:sy,disabled:Wh,className:"flex items-center gap-1 px-3 py-1.5 text-sm bg-accent text-white disabled:opacity-50",children:[d.jsx(_a,{size:14})," ",Wh?"Saving…":"Save"]})]})]})]}),is.adapters.length>0&&Rr&&d.jsxs(d.Fragment,{children:[is.adapters.length>1&&d.jsx("div",{className:"flex gap-1",children:is.adapters.map(se=>d.jsx("button",{onClick:()=>C(se),className:`px-3 py-1.5 text-sm ${Rr===se?"bg-bg-hover text-white":"text-[#777] hover:text-white"}`,children:dc[se].label},se))}),d.jsx(JCe,{title:dc[Rr].label,subtitle:dc[Rr].subtitle,enabled:((cy=ly[Rr])==null?void 0:cy.enabled)??!1,onEnabled:se=>uy(Rr,{enabled:se}),feedSource:((hy=ly[Rr])==null?void 0:hy.feed_source)??"native",onFeedSource:se=>uy(Rr,{feed_source:se}),hasCentral:dc[Rr].hasCentral,nativeOnly:dc[Rr].nativeOnly,hasKey:ww(Rr),health:_w(Rr),events:bw(Rr),llmContext:Pu[Rr]!==void 0?k[Pu[Rr]]??!0:void 0,onLlmContext:Pu[Rr]!==void 0?se=>as(Pu[Rr],se):void 0,children:Yh(Rr)})]}),d.jsxs("div",{className:"pt-4 mt-2 border-t border-border space-y-4",children:[d.jsxs("div",{children:[d.jsxs("h2",{className:"text-base font-semibold text-white flex items-center gap-2",children:[d.jsx(Bg,{size:16})," Custom Sources"]}),d.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."})]}),d.jsx(ZCe,{})]}),d.jsxs("details",{className:"group border border-border p-4",children:[d.jsxs("summary",{className:"flex items-center gap-2 cursor-pointer text-sm font-medium text-[#e0e0e0] hover:text-white",children:[d.jsx(Ah,{size:14,className:"group-open:rotate-90 transition-transform"}),"Advanced: Geocoder"]}),d.jsx("p",{className:"mt-2 text-xs text-[#666]",children:"Configures the Photon reverse-geocoder used to resolve place names."}),d.jsxs("div",{className:"mt-4 space-y-3 pl-6 border-l border-border",children:[d.jsx(gt,{label:"Geocoder URL",value:((dy=e.geocoder)==null?void 0:dy.url)??"https://photon.komoot.io",onChange:se=>Me({geocoder:{...e.geocoder,url:se}}),placeholder:"https://photon.komoot.io",helper:"Photon geocoding endpoint"}),d.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[d.jsx(Ne,{label:"Timeout (s)",value:((Xh=e.geocoder)==null?void 0:Xh.timeout_seconds)??2,onChange:se=>Me({geocoder:{...e.geocoder,timeout_seconds:se}}),min:0,step:.5,helper:"HTTP timeout per geocode request"}),d.jsx(Ne,{label:"Search Radius (km)",value:((nl=e.geocoder)==null?void 0:nl.radius_km)??80,onChange:se=>Me({geocoder:{...e.geocoder,radius_km:se}}),min:0,helper:"Bias radius around the configured center for results"}),d.jsx(Ne,{label:"Result Limit",value:((Iv=e.geocoder)==null?void 0:Iv.limit)??10,onChange:se=>Me({geocoder:{...e.geocoder,limit:se}}),min:1,helper:"Max candidate results to consider"})]})]})]})]})]})}function t2e(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 r2e(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 n2e(e){return e==null||e===""?"—":typeof e=="number"?`ch ${e}`:e.startsWith("#")?e:`#${e}`}const a2e={nws_alerts:"Weather",fires:"Fire",fire_digest_broadcasts:"Fire digest",satpass_events:"Satellite",band_conditions_broadcasts:"Band",traffic_events:"Traffic",quake_events:"Quake",swpc_events:"Space Wx",gauge_readings:"Hydro",event_log:"Avalanche",ipaws_alerts:"Emergency"},i2e=[["🚨","Emergency"],["🔥","Fire"],["🚧","Traffic"],["⚠️ Road Incident","Traffic"],["🚫","Traffic"],["⛷","Avalanche"],["🌊","Hydro"],["🧲","Space Wx"],["☀️","Space Wx"],["🌐","Quake"],["⏳","Weather"],["🌡️","Weather"],["🌬️","Weather"],["⛈️","Weather"],["🌩️","Weather"]];function o2e(e,t){if(e)return a2e[e]??e.replace(/_/g," ").replace(/s$/,"");if(t){for(const[r,n]of i2e)if(t.startsWith(r))return n}return"broadcast"}const s2e=[{value:"all",label:"All meshes"},{value:"meshtastic",label:"Meshtastic"},{value:"meshcore",label:"MeshCore"}],l2e=[{value:"all",label:"All types"},{value:"nws_alerts",label:"Weather"},{value:"fires",label:"Fires"},{value:"satpass_events",label:"Satellite"},{value:"band_conditions_broadcasts",label:"Band"},{value:"traffic_events",label:"Traffic"},{value:"ipaws_alerts",label:"Emergency"}],cx=100;function qB(){const[e,t]=E.useState([]),[r,n]=E.useState(!0),[a,i]=E.useState(null),[o,s]=E.useState("all"),[l,u]=E.useState("all"),[c,h]=E.useState(cx);return E.useEffect(()=>{document.title="Activity Log — MeshAI"},[]),E.useEffect(()=>{let f=!0;const v=()=>{zJ(c,o,l).then(m=>{f&&(t(m),i(null),n(!1))}).catch(m=>{f&&(i(m.message),n(!1))})};v();const g=setInterval(v,5e3);return()=>{f=!1,clearInterval(g)}},[c,o,l]),r?d.jsx("div",{className:"flex items-center justify-center h-64",children:d.jsx("div",{className:"text-slate-400",children:"Loading activity…"})}):a?d.jsx("div",{className:"flex items-center justify-center h-64",children:d.jsxs("div",{className:"text-red-400",children:["Error: ",a]})}):d.jsx("div",{className:"space-y-4",children:d.jsxs("div",{className:"bg-bg-card border border-border",children:[d.jsxs("div",{className:"p-4 border-b border-border flex items-center flex-wrap gap-2",children:[d.jsx(Oo,{size:14,className:"text-[#f59e0b]"}),d.jsx("h2",{className:"text-sm font-medium text-slate-300",children:"Activity Log"}),d.jsx("select",{value:o,onChange:f=>{s(f.target.value),h(cx)},className:"text-xs bg-bg-hover text-slate-300 border border-border rounded px-2 py-1",children:s2e.map(f=>d.jsx("option",{value:f.value,children:f.label},f.value))}),d.jsx("select",{value:l,onChange:f=>{u(f.target.value),h(cx)},className:"text-xs bg-bg-hover text-slate-300 border border-border rounded px-2 py-1",children:l2e.map(f=>d.jsx("option",{value:f.value,children:f.label},f.value))}),d.jsxs("span",{className:"text-xs text-slate-500 ml-auto",children:[e.length," broadcast",e.length===1?"":"s"," · newest first"]})]}),e.length===0?d.jsxs("div",{className:"flex items-center gap-2 text-slate-500 p-8",children:[d.jsx(bi,{size:18}),d.jsx("span",{children:"No outbound broadcasts recorded yet."})]}):d.jsx("ul",{className:"divide-y divide-border",children:e.map(f=>{const v=r2e(f.transport);return d.jsx("li",{className:"p-4 hover:bg-bg-hover transition-colors",children:d.jsxs("div",{className:"flex items-start gap-3",children:[d.jsx("div",{className:"pt-0.5",children:f.success===1?d.jsx(bk,{size:16,className:"text-green-500"}):f.success===0?d.jsx(Vj,{size:16,className:"text-amber-500"}):d.jsx(Vj,{size:16,className:"text-slate-600"})}),d.jsxs("div",{className:"flex-1 min-w-0",children:[d.jsxs("div",{className:"flex items-center flex-wrap gap-2 mb-1",children:[d.jsx("span",{className:`text-xs px-2 py-0.5 rounded-full ${v.cls}`,children:v.label}),d.jsx("span",{className:"text-xs px-2 py-0.5 rounded-full bg-bg-hover text-slate-400 border border-border",children:n2e(f.channel)}),d.jsx("span",{className:"text-xs px-2 py-0.5 rounded-full bg-[#f59e0b]/10 text-[#f59e0b]",children:o2e(f.source_event_table,f.text)}),f.success===1&&d.jsx("span",{className:"text-xs text-green-500",children:"Sent"}),f.success===0&&d.jsx("span",{className:"text-xs text-amber-500",children:"Skip"}),(f.success===null||f.success===void 0)&&d.jsx("span",{className:"text-xs text-slate-500",children:"—"})]}),d.jsx("div",{className:"text-sm text-slate-200 break-words whitespace-pre-wrap",children:f.text||d.jsx("span",{className:"text-slate-500 italic",children:"(no text)"})}),d.jsxs("div",{className:"flex items-center gap-1 mt-1.5 text-xs text-slate-500 font-mono",children:[d.jsx(IV,{size:12}),t2e(f.sent_at)]})]})]})},f.id)})}),e.length>=c&&d.jsx("div",{className:"p-3 border-t border-border flex justify-center",children:d.jsx("button",{onClick:()=>h(f=>f+cx),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 KB=[{id:"stream-gauges",label:"Stream Gauges",icon:c1},{id:"wildfire",label:"Wildfire",icon:Rm},{id:"firms",label:"Satellite Fire Detection (FIRMS)",icon:f1},{id:"fire-tracker",label:"Fire Tracker (Fusion)",icon:_J},{id:"weather-alerts",label:"Weather Alerts",icon:yJ},{id:"solar",label:"Solar & Geomagnetic",icon:HV},{id:"ducting",label:"Tropospheric Ducting",icon:bi},{id:"avalanche",label:"Avalanche Danger",icon:kf},{id:"traffic",label:"Traffic Flow",icon:u1},{id:"roads-511",label:"Road Conditions (511)",icon:PV},{id:"mesh-health",label:"Mesh Health",icon:Oo},{id:"broadcast-types",label:"Broadcast Types",icon:FV},{id:"reminders",label:"Reminder System",icon:IV},{id:"notifications",label:"Notifications",icon:kV},{id:"commands",label:"Commands",icon:UV},{id:"llm-dm",label:"LLM DM Queries",icon:wk},{id:"or-not-and",label:"OR-not-AND Architecture",icon:Sk},{id:"adapter-config",label:"Adapter Config & CODE Rule",icon:Bg},{id:"curation",label:"Curation: Gauges & Towns",icon:EV},{id:"schema",label:"Schema Migrations",icon:SJ},{id:"api",label:"API Reference",icon:xJ}];function mr({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 d.jsx("span",{className:`inline-block w-3 h-3 rounded-full ${t[e]}`})}function Gt({headers:e,rows:t}){return d.jsx("div",{className:"overflow-x-auto my-4",children:d.jsxs("table",{className:"w-full text-sm",children:[d.jsx("thead",{children:d.jsx("tr",{className:"bg-[#1a2332] border-b border-[#2a3a4a]",children:e.map((r,n)=>d.jsx("th",{className:"px-4 py-2 text-left text-slate-400 font-medium",children:r},n))})}),d.jsx("tbody",{children:t.map((r,n)=>d.jsx("tr",{className:`border-b border-[#1e2a3a] ${n%2===0?"bg-[#0d1219]":"bg-[#0a0e17]"}`,children:r.map((a,i)=>d.jsx("td",{className:"px-4 py-2 text-slate-300",children:a},i))},n))})]})})}function er({href:e,children:t}){return d.jsxs("a",{href:e,target:"_blank",rel:"noopener noreferrer",className:"text-accent hover:underline inline-flex items-center gap-1",children:[t," ",d.jsx(Jc,{size:12})]})}function _e({children:e}){return d.jsx("h3",{className:"text-lg font-semibold text-slate-200 mt-6 mb-3",children:e})}function yl({children:e}){return d.jsx("h4",{className:"text-base font-medium text-slate-300 mt-4 mb-2",children:e})}function fe({children:e}){return d.jsx("code",{className:"font-mono text-accent bg-[#1a2332] px-1 rounded",children:e})}function Ir({id:e,title:t,children:r}){return d.jsxs("section",{id:e,className:"mb-12 scroll-mt-6",children:[d.jsx("h2",{className:"text-2xl font-bold text-slate-100 mb-4 pb-2 border-b border-[#2a3a4a]",children:t}),d.jsx("div",{className:"text-slate-300 leading-relaxed space-y-4",children:r})]})}function u2e(){const e=xu(),[t,r]=E.useState(""),[n,a]=E.useState("stream-gauges"),i=E.useRef(null);E.useEffect(()=>{const l=e.hash.replace("#","");if(l&&KB.find(u=>u.id===l)){a(l);const u=document.getElementById(l);u&&u.scrollIntoView({behavior:"smooth"})}},[e.hash]);const o=KB.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 d.jsxs("div",{className:"flex h-full -m-6",children:[d.jsxs("aside",{className:"w-64 flex-shrink-0 bg-bg-card border-r border-border overflow-y-auto",children:[d.jsx("div",{className:"p-4 border-b border-border",children:d.jsxs("div",{className:"relative",children:[d.jsx(v1,{size:16,className:"absolute left-3 top-1/2 -translate-y-1/2 text-slate-500"}),d.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"})]})}),d.jsx("nav",{className:"py-2",children:o.map(l=>{const u=l.icon,c=n===l.id;return d.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:[d.jsx(u,{size:16}),l.label]},l.id)})})]}),d.jsx("div",{ref:i,className:"flex-1 overflow-y-auto p-6",children:d.jsxs("div",{className:"max-w-4xl",children:[d.jsx("p",{className:"text-slate-400 mb-8",children:"Everything you need to understand and configure MeshAI's monitoring and alerting systems."}),d.jsxs(Ir,{id:"stream-gauges",title:"Stream Gauges",children:[d.jsx(_e,{children:"What You're Looking At"}),d.jsx("p",{children:"MeshAI watches river and stream levels at gauges you configure. Each gauge reports two things:"}),d.jsxs("p",{children:[d.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.`]}),d.jsxs("p",{children:[d.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:`]}),d.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[d.jsx("li",{children:"A small creek: 50-200 CFS"}),d.jsx("li",{children:"A mid-size river: 1,000-5,000 CFS"}),d.jsx("li",{children:"A big river in spring runoff: 10,000+ CFS"})]}),d.jsx(_e,{children:"When Does It Flood?"}),d.jsxs("p",{children:["Flood levels are set by the ",d.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.']}),d.jsxs("p",{children:[d.jsx("strong",{children:"Action Stage"})," — water is rising, time to start paying attention. Usually still inside the riverbanks."]}),d.jsxs("p",{children:[d.jsx("strong",{children:"Minor Flood"})," — low-lying roads start getting water on them. NWS issues a Flood Advisory."]}),d.jsxs("p",{children:[d.jsx("strong",{children:"Moderate Flood"})," — water in buildings near the river. Some people need to evacuate. NWS issues a Flood Warning."]}),d.jsxs("p",{children:[d.jsx("strong",{children:"Major Flood"})," — widespread flooding. Many people evacuating. Serious property damage."]}),d.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."}),d.jsx(_e,{children:"Low Water / Drought"}),d.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.`}),d.jsx(_e,{children:"Setting It Up"}),d.jsxs("ol",{className:"list-decimal list-inside ml-4 space-y-1",children:[d.jsxs("li",{children:["Find your gauge at ",d.jsx(er,{href:"https://waterdata.usgs.gov/nwis",children:"waterdata.usgs.gov/nwis"})]}),d.jsxs("li",{children:["Copy the site number (like ",d.jsx(fe,{children:"13090500"}),")"]}),d.jsx("li",{children:"Add it in Config → Environmental → USGS"}),d.jsx("li",{children:"MeshAI auto-fills the gauge name and flood levels from NWS"})]}),d.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."}),d.jsx(_e,{children:"Learn More"}),d.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[d.jsxs("li",{children:[d.jsx(er,{href:"https://waterdata.usgs.gov/nwis",children:"USGS Water Data"})," — find gauges near you"]}),d.jsxs("li",{children:[d.jsx(er,{href:"https://water.noaa.gov",children:"NWS Water Prediction Service"})," — flood forecasts and thresholds"]}),d.jsxs("li",{children:[d.jsx(er,{href:"https://www.usgs.gov/special-topics/water-science-school/science/how-streamflow-measured",children:"Understanding Streamflow"})," — USGS explainer"]})]})]}),d.jsxs(Ir,{id:"wildfire",title:"Wildfire",children:[d.jsx(_e,{children:"What You're Looking At"}),d.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."}),d.jsx(_e,{children:"Fire Size — How Big Is It?"}),d.jsx(Gt,{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."]]}),d.jsx("p",{children:"For reference, 1,000 acres is about 1.5 square miles."}),d.jsx(_e,{children:"Containment — Is It Under Control?"}),d.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."}),d.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[d.jsxs("li",{children:[d.jsx("strong",{children:"0-30%"})," — Essentially uncontrolled. The fire goes where it wants."]}),d.jsxs("li",{children:[d.jsx("strong",{children:"50%"})," — Good progress, but half the edge can still grow."]}),d.jsxs("li",{children:[d.jsx("strong",{children:"80%+"})," — Well controlled. Major growth unlikely."]}),d.jsxs("li",{children:[d.jsx("strong",{children:"100%"}),' — The edge is fully controlled. But the fire may STILL be actively burning inside. "100% contained" does NOT mean "out."']})]}),d.jsx(_e,{children:"How Far Away Should I Worry?"}),d.jsx(Gt,{headers:["Distance","What To Do"],rows:[[d.jsxs(d.Fragment,{children:[d.jsx(mr,{color:"red"})," Under 5 km (3 miles)"]}),d.jsxs(d.Fragment,{children:[d.jsx("strong",{children:"Immediate threat."})," This is evacuation-order range. Embers can fly this far in wind."]})],[d.jsxs(d.Fragment,{children:[d.jsx(mr,{color:"orange"})," 5-15 km (3-10 miles)"]}),d.jsxs(d.Fragment,{children:[d.jsx("strong",{children:"Prepare."})," The fire could reach you in hours under bad conditions. Have a plan."]})],[d.jsxs(d.Fragment,{children:[d.jsx(mr,{color:"yellow"})," 15-30 km (10-20 miles)"]}),d.jsxs(d.Fragment,{children:[d.jsx("strong",{children:"Watch."})," Smoke is likely. Wind shifts could change things fast."]})],[d.jsxs(d.Fragment,{children:[d.jsx(mr,{color:"green"})," Over 30 km (20 miles)"]}),d.jsxs(d.Fragment,{children:[d.jsx("strong",{children:"Awareness."})," Keep an eye on it, but no immediate threat."]})]]}),d.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."}),d.jsx(_e,{children:"Which Matters More — Size or Distance?"}),d.jsxs("p",{children:[d.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."]}),d.jsx(_e,{children:"Setting It Up"}),d.jsxs("p",{children:["Just configure your state code (like ",d.jsx(fe,{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."]}),d.jsx(_e,{children:"Learn More"}),d.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[d.jsxs("li",{children:[d.jsx(er,{href:"https://inciweb.nwcg.gov",children:"InciWeb"})," — detailed incident information"]}),d.jsxs("li",{children:[d.jsx(er,{href:"https://data-nifc.opendata.arcgis.com",children:"NIFC Fire Map"})," — raw perimeter data"]}),d.jsxs("li",{children:[d.jsx(er,{href:"https://www.ready.gov/wildfires",children:"Ready.gov Wildfires"})," — preparedness guide"]})]})]}),d.jsxs(Ir,{id:"firms",title:"Satellite Fire Detection (FIRMS)",children:[d.jsx(_e,{children:"What You're Looking At"}),d.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.`}),d.jsxs("p",{children:[d.jsx("strong",{children:"Why this matters"}),": satellite hotspots show up ",d.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."]}),d.jsx(_e,{children:"Confidence — Is It Really a Fire?"}),d.jsx("p",{children:"Each detection gets a confidence rating:"}),d.jsx(Gt,{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."]]}),d.jsxs("p",{children:[d.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.`]}),d.jsx(_e,{children:"FRP — How Intense Is It?"}),d.jsx("p",{children:'FRP (Fire Radiative Power) measures the heat output in megawatts. Think of it as "how hot is this thing":'}),d.jsx(Gt,{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"]]}),d.jsx("p",{children:"Setting the minimum FRP to 5 MW filters out most industrial and agricultural false alarms."}),d.jsx(_e,{children:"New Ignition Detection"}),d.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 ",d.jsx("strong",{children:"potential new ignition"})," — maybe a new fire just started. These get elevated priority regardless of confidence level."]}),d.jsx(_e,{children:"Timing"}),d.jsxs("p",{children:["Satellite data arrives ",d.jsx("strong",{children:"1-3 hours"})," after the satellite passes overhead. Each location gets observed about ",d.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."`]}),d.jsx(_e,{children:"Getting an API Key"}),d.jsxs("ol",{className:"list-decimal list-inside ml-4 space-y-1",children:[d.jsxs("li",{children:["Go to ",d.jsx(er,{href:"https://firms.modaps.eosdis.nasa.gov/api/area/",children:"FIRMS API page"})]}),d.jsx("li",{children:'Click "Get MAP_KEY"'}),d.jsx("li",{children:"Register for a free Earthdata account"}),d.jsx("li",{children:"Your key arrives by email"}),d.jsx("li",{children:"Enter it in Config → Environmental → FIRMS"})]}),d.jsx(_e,{children:"Learn More"}),d.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[d.jsxs("li",{children:[d.jsx(er,{href:"https://firms.modaps.eosdis.nasa.gov",children:"FIRMS Fire Map"})," — see hotspots on a map"]}),d.jsxs("li",{children:[d.jsx(er,{href:"https://earthdata.nasa.gov/data/tools/firms/faq",children:"FIRMS FAQ"})," — how it works"]})]})]}),d.jsxs(Ir,{id:"fire-tracker",title:"Fire Tracker (Fusion)",children:[d.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."}),d.jsx(_e,{children:"What you'll see on the mesh"}),d.jsx("p",{children:"Six fire-family alert categories, in order of when they fire during an incident's lifecycle:"}),d.jsx(Gt,{headers:["Category","Severity","Trigger","Example broadcast"],rows:[[d.jsx(fe,{children:"unattributed_hotspot_cluster"}),"Priority","3+ FIRMS pixels within 1 mi over 60 min, no WFIGS match — possible new ignition before NIFC declares it",d.jsx("span",{className:"text-amber-300",children:"🔥 Possible new fire: 3 hotspots within 1 mi @ 42.93,-114.45 (combined 78 MW)"})],[d.jsx(fe,{children:"wildfire_declared"}),"Priority","WFIGS first-sight of a new IRWIN incident — the official 'this is a fire and here is its name' record",d.jsx("span",{className:"text-amber-300",children:"🔥 New: Cache Peak Fire (WF), 3 mi N of Almo: 250 ac, 0% contained"})],[d.jsx(fe,{children:"wildfire_growth"}),"Priority","Per-pass centroid drift >= 0.5 mi (configurable) between consecutive satellite passes — the fire's footprint moved",d.jsx("span",{className:"text-amber-300",children:"🔥 Cache Peak Fire moving NE 1.2 mi/h, ~3 mi from Almo"})],[d.jsx(fe,{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",d.jsx("span",{className:"text-amber-300",children:"🔥 Possible spotting 2.1 mi NE of Cache Peak Fire perimeter"})],[d.jsx(fe,{children:"wildfire_incident"}),"Priority","WFIGS acreage or containment increased on a fire already broadcast once (the Update path; the New path uses wildfire_declared)",d.jsx("span",{className:"text-amber-300",children:"🔥 Update: Cache Peak Fire: 1,847 ac, 23% contained"})],[d.jsx(fe,{children:"wildfire_halted"}),"Routine","No FIRMS pixels attributed for 12+ hours (configurable) — fire stalled or out",d.jsx("span",{className:"text-amber-300",children:"🔥 Cache Peak Fire no growth in 14h"})]]}),d.jsx(_e,{children:"How attribution works"}),d.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 ",d.jsx(fe,{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."]}),d.jsxs("p",{children:["Pixels that match no fire feed the cluster detector instead: if at least"," ",d.jsx(fe,{children:"cluster_min_pixels"})," (default 3) lie within"," ",d.jsx(fe,{children:"cluster_max_radius_mi"})," (default 1.0) over"," ",d.jsx(fe,{children:"cluster_time_window_minutes"})," (default 60), the bot fires a single ",d.jsx(fe,{children:"unattributed_hotspot_cluster"})," broadcast and marks the member pixels so a fourth arrival doesn't re-fire the same cluster."]}),d.jsx(_e,{children:"How movement is computed"}),d.jsxs("p",{children:["Each VIIRS pass groups pixels into a ",d.jsx(fe,{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 ≥ ",d.jsx(fe,{children:"growth_drift_threshold_mi"})," the"," ",d.jsx(fe,{children:"wildfire_growth"})," broadcast fires."]}),d.jsx(_e,{children:"How spotting is detected"}),d.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 ≥"," ",d.jsx(fe,{children:"spotting_distance_threshold_mi"})," (default 1.5) fire the"," ",d.jsx(fe,{children:"wildfire_spotting"})," broadcast at ",d.jsx("em",{children:"immediate"})," severity — spread beyond the existing perimeter is the most actionable fire signal we emit. A per-fire cooldown (",d.jsx(fe,{children:"spotting_cooldown_seconds"}),", default 1 h) prevents an ember burst in the same area from spamming the mesh."]}),d.jsx(_e,{children:"Tunable knobs (Adapter Config → fires)"}),d.jsx(Gt,{headers:["Key","Default","What it does"],rows:[[d.jsx(fe,{children:"spread_radius_mi_default"}),"5.0 mi","Attribution radius for FIRMS → fire matching. Per-fire override in the fires.spread_radius_mi column."],[d.jsx(fe,{children:"growth_drift_threshold_mi"}),"0.5 mi","Per-pass centroid drift at or above this fires wildfire_growth."],[d.jsx(fe,{children:"halt_passes_threshold"}),"2","Consecutive empty satellite passes before wildfire_halted (documented; the time gate below is the operational rule)."],[d.jsx(fe,{children:"halt_minimum_seconds"}),"43,200 (12 h)","Minimum elapsed seconds since the most recent attributed pixel before wildfire_halted can fire."],[d.jsx(fe,{children:"spotting_distance_threshold_mi"}),"1.5 mi","Distance from prior-pass perimeter that fires wildfire_spotting."],[d.jsx(fe,{children:"spotting_cooldown_seconds"}),"3,600 (1 h)","Minimum seconds between consecutive spotting broadcasts per fire."]]})]}),d.jsxs(Ir,{id:"weather-alerts",title:"Weather Alerts",children:[d.jsx(_e,{children:"What You're Looking At"}),d.jsx("p",{children:"MeshAI watches for NWS (National Weather Service) alerts affecting your area — warnings, watches, and advisories."}),d.jsx(_e,{children:"Alert Severity — How Serious Is It?"}),d.jsx(Gt,{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"]]}),d.jsx(_e,{children:"When Should I Act? (Urgency)"}),d.jsx(Gt,{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"]]}),d.jsx(_e,{children:"How Sure Are They? (Certainty)"}),d.jsx(Gt,{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"]]}),d.jsx(_e,{children:"These Are Separate Scales"}),d.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."'}),d.jsx(_e,{children:"What Minimum Severity Should I Set?"}),d.jsx(Gt,{headers:["Setting","What You Get","What You Miss"],rows:[["Minor","Everything — high volume","Nothing"],[d.jsxs(d.Fragment,{children:[d.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"]]}),d.jsxs("p",{children:[d.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."]}),d.jsx(_e,{children:"Finding Your NWS Zone"}),d.jsxs("ol",{className:"list-decimal list-inside ml-4 space-y-1",children:[d.jsxs("li",{children:["Go to ",d.jsx(er,{href:"https://www.weather.gov",children:"weather.gov"})]}),d.jsx("li",{children:"Enter your location"}),d.jsxs("li",{children:["Find your zone code at ",d.jsx(er,{href:"https://www.weather.gov/pimar/PubZone",children:"NWS Zone Map"})]}),d.jsxs("li",{children:["Zone codes look like: ",d.jsx(fe,{children:"IDZ016"}),", ",d.jsx(fe,{children:"UTZ040"}),", etc."]})]}),d.jsx(_e,{children:"The User-Agent Field"}),d.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:"}),d.jsx("p",{children:d.jsx(fe,{children:"(meshai, you@email.com)"})}),d.jsx("p",{children:"No registration. No waiting. Just type it in."}),d.jsx(_e,{children:"Learn More"}),d.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[d.jsxs("li",{children:[d.jsx(er,{href:"https://alerts.weather.gov",children:"NWS Active Alerts"})," — see current alerts"]}),d.jsxs("li",{children:[d.jsx(er,{href:"https://www.weather.gov/documentation/services-web-api",children:"NWS API Docs"})," — technical details"]})]})]}),d.jsxs(Ir,{id:"solar",title:"Solar & Geomagnetic Conditions",children:[d.jsx(_e,{children:"What You're Looking At"}),d.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."}),d.jsx(_e,{children:"Solar Flux Index (SFI)"}),d.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.'}),d.jsx(Gt,{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."]]}),d.jsxs("p",{children:[d.jsx("strong",{children:"Quick rule"}),": SFI above 90 and Kp below 4 = good day for HF radio."]}),d.jsx(_e,{children:"Kp Index"}),d.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."}),d.jsx(Gt,{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."],[d.jsx("strong",{children:"5"}),d.jsxs(d.Fragment,{children:[d.jsx("strong",{children:"Minor storm (G1)."})," HF noticeably degraded. Aurora visible at high latitudes (~60°N)."]})],[d.jsx("strong",{children:"6"}),d.jsxs(d.Fragment,{children:[d.jsx("strong",{children:"Moderate storm (G2)."})," HF getting rough. Aurora moving south (~55°N)."]})],[d.jsx("strong",{children:"7"}),d.jsxs(d.Fragment,{children:[d.jsx("strong",{children:"Strong storm (G3)."})," HF unreliable for 1-2 days. Aurora at mid-latitudes."]})],[d.jsx("strong",{children:"8-9"}),d.jsxs(d.Fragment,{children:[d.jsx("strong",{children:"Severe/Extreme storm."})," HF may black out completely. Aurora visible at very low latitudes. Power grid stress possible."]})]]}),d.jsx(_e,{children:"R / S / G Scales"}),d.jsx("p",{children:"NOAA's shorthand for three types of space weather events:"}),d.jsx(yl,{children:"R (Radio Blackouts) — from solar flares:"}),d.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[d.jsx("li",{children:"R1-R2: Brief HF disruption. You might not notice."}),d.jsx("li",{children:"R3: HF goes out for about an hour on the sunlit side of Earth."}),d.jsx("li",{children:"R4-R5: HF dead for hours. Serious."})]}),d.jsx(yl,{children:"S (Solar Radiation Storms) — from energetic particles:"}),d.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[d.jsx("li",{children:"Mostly affects polar regions and satellites"}),d.jsx("li",{children:"S3+: Polar HF goes out entirely"})]}),d.jsx(yl,{children:"G (Geomagnetic Storms) — from solar wind disturbances:"}),d.jsx("ul",{className:"list-disc list-inside ml-4 space-y-1",children:d.jsx("li",{children:"Same as the Kp scale: G1 = Kp 5, up to G5 = Kp 9"})}),d.jsx(_e,{children:"Bz — The Storm Predictor"}),d.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."}),d.jsx(Gt,{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."]]}),d.jsx("p",{children:"Bz can change fast — minute to minute. What matters is whether it stays negative for hours, not brief dips."}),d.jsx(_e,{children:"Learn More"}),d.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[d.jsxs("li",{children:[d.jsx(er,{href:"https://www.swpc.noaa.gov",children:"SWPC Space Weather Dashboard"})," — live data"]}),d.jsxs("li",{children:[d.jsx(er,{href:"https://www.swpc.noaa.gov/noaa-scales-explanation",children:"NOAA Space Weather Scales"})," — what R/S/G mean"]}),d.jsxs("li",{children:[d.jsx(er,{href:"https://www.hamqsl.com/solar.html",children:"HamQSL Solar Page"})," — ham-friendly display"]}),d.jsxs("li",{children:[d.jsx(er,{href:"https://www.swpc.noaa.gov/products/planetary-k-index",children:"Planetary K-Index"})," — live Kp"]})]})]}),d.jsxs(Ir,{id:"ducting",title:"Tropospheric Ducting",children:[d.jsx(_e,{children:"What You're Looking At"}),d.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.'}),d.jsx("p",{children:"MeshAI watches for these conditions by analyzing weather data (temperature and humidity at different altitudes) over your mesh area."}),d.jsx(_e,{children:"How Do I Know If Ducting Is Happening?"}),d.jsx("p",{children:'MeshAI reports a "condition" based on the atmospheric profile:'}),d.jsx(Gt,{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.']]}),d.jsx(_e,{children:"What You'll Actually Notice"}),d.jsx("p",{children:"When ducting happens on your mesh:"}),d.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[d.jsx("li",{children:"Distant repeaters you've never heard suddenly come in"}),d.jsx("li",{children:"Nodes appear from far outside your normal range"}),d.jsx("li",{children:"You hear FM radio stations from other cities"}),d.jsx("li",{children:"ADS-B flight tracking range gets much longer"}),d.jsx("li",{children:"There might be interference from distant stations on your frequency"})]}),d.jsx(_e,{children:"The dM/dz Number"}),d.jsx("p",{children:`The dashboard shows a "dM/dz" value in "M-units/km." You don't need to understand the math — just know:`}),d.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[d.jsxs("li",{children:[d.jsx("strong",{children:"Around 118"})," = normal atmosphere"]}),d.jsxs("li",{children:[d.jsx("strong",{children:"Below 79"})," = enhanced propagation starting"]}),d.jsxs("li",{children:[d.jsx("strong",{children:"Below 0 (negative)"})," = ducting is happening"]}),d.jsxs("li",{children:[d.jsx("strong",{children:"Below -50"})," = strong ducting — classic VHF/UHF DX event"]})]}),d.jsx(_e,{children:"When Does Ducting Happen?"}),d.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[d.jsx("li",{children:"Under high-pressure weather systems (clear, stable air)"}),d.jsx("li",{children:"When warm air sits on top of cool air (temperature inversion)"}),d.jsx("li",{children:"Most common in late summer and early fall"}),d.jsx("li",{children:"Strongest along coastlines and over water"}),d.jsx("li",{children:"In mountain valleys: cold air pooling in fall/winter can create surface ducts"})]}),d.jsx(_e,{children:"Setting It Up"}),d.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."}),d.jsx(_e,{children:"Learn More"}),d.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[d.jsxs("li",{children:[d.jsx(er,{href:"https://dxinfocentre.com/tropo.html",children:"Tropo Forecast Maps (Hepburn)"})," — 6-day tropo prediction"]}),d.jsxs("li",{children:[d.jsx(er,{href:"https://dxmaps.com",children:"DX Maps"})," — real-time VHF/UHF propagation reports"]}),d.jsxs("li",{children:[d.jsx(er,{href:"https://en.wikipedia.org/wiki/Tropospheric_propagation",children:"Wikipedia: Tropospheric Propagation"})," — background"]})]})]}),d.jsxs(Ir,{id:"avalanche",title:"Avalanche Danger",children:[d.jsx(_e,{children:"What You're Looking At"}),d.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."}),d.jsx(_e,{children:"The Danger Scale"}),d.jsx(Gt,{headers:["Level","Name","Color","What To Do"],rows:[["1","Low",d.jsx(mr,{color:"green"}),"Generally safe. Normal caution in steep terrain."],["2","Moderate",d.jsx(mr,{color:"yellow"}),"Be careful on specific terrain features. Evaluate conditions."],["3","Considerable",d.jsx(mr,{color:"orange"}),d.jsxs(d.Fragment,{children:[d.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",d.jsx(mr,{color:"red"}),d.jsxs(d.Fragment,{children:[d.jsx("strong",{children:"Very dangerous."})," Stay off anything steep."]})],["5","Extreme",d.jsx(mr,{color:"black"}),d.jsxs(d.Fragment,{children:[d.jsx("strong",{children:"Don't go out."})," Avalanches are happening on their own."]})]]}),d.jsx(_e,{children:"The Most Important Thing to Know"}),d.jsxs("p",{children:[d.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.']}),d.jsx(_e,{children:"Seasonal"}),d.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.'}),d.jsx(_e,{children:"Finding Your Avalanche Center"}),d.jsxs("p",{children:["Go to ",d.jsx(er,{href:"https://avalanche.org/avalanche-centers/",children:"avalanche.org/avalanche-centers/"})," for a map. Common center codes:"]}),d.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[d.jsxs("li",{children:[d.jsx(fe,{children:"SNFAC"})," — Sawtooth (central Idaho)"]}),d.jsxs("li",{children:[d.jsx(fe,{children:"UAC"})," — Utah"]}),d.jsxs("li",{children:[d.jsx(fe,{children:"NWAC"})," — Cascades/Olympics (WA/OR)"]}),d.jsxs("li",{children:[d.jsx(fe,{children:"CAIC"})," — Colorado"]}),d.jsxs("li",{children:[d.jsx(fe,{children:"SAC"})," — Sierra Nevada (CA)"]}),d.jsxs("li",{children:[d.jsx(fe,{children:"GNFAC"})," — Gallatin (SW Montana)"]})]}),d.jsx(_e,{children:"Learn More"}),d.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[d.jsxs("li",{children:[d.jsx(er,{href:"https://avalanche.org",children:"Avalanche.org"})," — US forecasts"]}),d.jsxs("li",{children:[d.jsx(er,{href:"https://avalanche.org/avalanche-encyclopedia/human/resources/north-american-public-avalanche-danger-scale/",children:"Avalanche Danger Scale"})," — full scale explanation"]}),d.jsxs("li",{children:[d.jsx(er,{href:"https://kbyg.org",children:"Know Before You Go"})," — avalanche awareness"]})]})]}),d.jsxs(Ir,{id:"traffic",title:"Traffic Flow",children:[d.jsx(_e,{children:"What You're Looking At"}),d.jsx("p",{children:"MeshAI monitors traffic speed on road segments you configure, using data from TomTom (real vehicles with navigation apps reporting their speed)."}),d.jsx(_e,{children:"Speed Ratio — The Key Number"}),d.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:'}),d.jsx(Gt,{headers:["Ratio","What It Means"],rows:[[d.jsxs(d.Fragment,{children:[d.jsx(mr,{color:"green"})," Above 85%"]}),"Normal. Traffic flowing fine."],[d.jsxs(d.Fragment,{children:[d.jsx(mr,{color:"yellow"})," 65-85%"]}),"Slow. Heavier than usual but moving."],[d.jsxs(d.Fragment,{children:[d.jsx(mr,{color:"orange"})," 40-65%"]}),"Congested. Significant delays."],[d.jsxs(d.Fragment,{children:[d.jsx(mr,{color:"red"})," Below 40%"]}),"Gridlock. Barely moving."]]}),d.jsxs("p",{children:[d.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.`]}),d.jsx(_e,{children:"Confidence — Can You Trust the Data?"}),d.jsx("p",{children:"TomTom's confidence score tells you how much of the reading comes from real vehicles right now vs historical averages:"}),d.jsx(Gt,{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",d.jsxs(d.Fragment,{children:[d.jsx("strong",{children:"Unreliable"})," — mostly guessing from historical patterns. Don't alert on this."]})]]}),d.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."}),d.jsx(_e,{children:"Setting Up Corridors"}),d.jsx("p",{children:'Each "corridor" is a point on a road you want to monitor. To add one:'}),d.jsxs("ol",{className:"list-decimal list-inside ml-4 space-y-1",children:[d.jsx("li",{children:"Go to Google Maps, find the road"}),d.jsx("li",{children:`Right-click the road → "What's here?" → copy the coordinates`}),d.jsx("li",{children:"Add the corridor in Config with a name and those coordinates"}),d.jsx("li",{children:"TomTom finds the nearest road segment automatically"})]}),d.jsx(_e,{children:"Getting an API Key"}),d.jsxs("ol",{className:"list-decimal list-inside ml-4 space-y-1",children:[d.jsxs("li",{children:["Sign up at ",d.jsx(er,{href:"https://developer.tomtom.com",children:"developer.tomtom.com"})," (free)"]}),d.jsx("li",{children:"Create an app → get your API key"}),d.jsx("li",{children:"Free tier: 2,500 requests/day (plenty for 5-10 corridors)"})]}),d.jsx(_e,{children:"Learn More"}),d.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[d.jsxs("li",{children:[d.jsx(er,{href:"https://developer.tomtom.com",children:"TomTom Developer Portal"})," — API docs and key signup"]}),d.jsxs("li",{children:[d.jsx(er,{href:"https://www.tomtom.com/traffic-index/",children:"TomTom Traffic Index"})," — city congestion rankings"]})]})]}),d.jsxs(Ir,{id:"roads-511",title:"Road Conditions (511)",children:[d.jsx(_e,{children:"What You're Looking At"}),d.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."}),d.jsx(_e,{children:"Setting It Up"}),d.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."}),d.jsx("p",{children:"Configure in Config → Environmental → 511:"}),d.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[d.jsxs("li",{children:[d.jsx("strong",{children:"Base URL"})," — your state's API endpoint"]}),d.jsxs("li",{children:[d.jsx("strong",{children:"API Key"})," — if required by your state"]}),d.jsxs("li",{children:[d.jsx("strong",{children:"Endpoints"})," — which data feeds to poll (varies by state)"]})]}),d.jsx(_e,{children:"Learn More"}),d.jsx("p",{children:"Check your state's 511 or DOT website for developer information."})]}),d.jsxs(Ir,{id:"mesh-health",title:"Mesh Health",children:[d.jsx(_e,{children:"Health Score"}),d.jsx("p",{children:"MeshAI computes a 0-100 health score for your mesh network by looking at five areas, each weighted differently:"}),d.jsx(Gt,{headers:["Pillar","Weight","What It Measures"],rows:[[d.jsx("strong",{children:"Infrastructure"}),"30%","Are your routers online?"],[d.jsx("strong",{children:"Utilization"}),"25%","Is the radio channel congested?"],[d.jsx("strong",{children:"Coverage"}),"20%","Do nodes have redundant paths to gateways?"],[d.jsx("strong",{children:"Behavior"}),"15%","Are any nodes flooding the channel?"],[d.jsx("strong",{children:"Power"}),"10%","Are battery-powered nodes running low?"]]}),d.jsx("p",{children:"The overall score is the weighted sum:"}),d.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%)"}),d.jsx(_e,{children:"How Each Pillar Is Calculated"}),d.jsx(yl,{children:"Infrastructure (30%)"}),d.jsx("p",{children:"This is the simplest pillar — what percentage of your infrastructure nodes are currently online?"}),d.jsx("p",{className:"p-3 bg-slate-800 rounded font-mono text-sm",children:"(routers online ÷ total routers) × 100"}),d.jsxs("p",{children:["Only nodes with the ",d.jsx(fe,{children:"ROUTER"}),", ",d.jsx(fe,{children:"ROUTER_LATE"}),", or ",d.jsx(fe,{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."]}),d.jsxs("p",{children:[d.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."]}),d.jsx(yl,{children:"Utilization (25%)"}),d.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 ",d.jsx("strong",{children:"highest"})," value from any infrastructure node because the busiest router is the bottleneck for the whole mesh."]}),d.jsx("p",{children:d.jsx("strong",{children:"How it works:"})}),d.jsxs("ol",{className:"list-decimal list-inside space-y-1 ml-4",children:[d.jsxs("li",{children:["Collect ",d.jsx(fe,{children:"channel_utilization"})," from all infrastructure nodes that report it"]}),d.jsx("li",{children:"If no infra nodes have telemetry, try all nodes"}),d.jsxs("li",{children:["Use the ",d.jsx("strong",{children:"maximum"})," value for scoring (busiest node = bottleneck)"]}),d.jsx("li",{children:"If no nodes report utilization (older firmware), fall back to packet count estimate"})]}),d.jsxs("p",{className:"mt-4",children:[d.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."]}),d.jsx(Gt,{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"]]}),d.jsxs("p",{children:[d.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."]}),d.jsx(yl,{children:"Coverage (20%)"}),d.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.'}),d.jsxs("p",{className:"p-3 bg-slate-800 rounded font-mono text-sm",children:["coverage_ratio = average_gateways_per_node ÷ total_sources",d.jsx("br",{}),"single_gw_penalty = (single_gateway_nodes ÷ total_nodes) × 40"]}),d.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."}),d.jsx(Gt,{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"]]}),d.jsxs("p",{children:[d.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.)."]}),d.jsx(yl,{children:"Behavior (15%)"}),d.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."}),d.jsxs("p",{children:[d.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."]}),d.jsx(Gt,{headers:["Flagged Nodes","Score"],rows:[["0","100"],["1","80"],["2-3","60"],["4-5","40"],["6+","20"]]}),d.jsx("p",{children:"A single misbehaving node only drops the score to 80. It takes multiple problem nodes to seriously hurt the behavior pillar."}),d.jsx(yl,{children:"Power (10%)"}),d.jsx("p",{children:"Measures what fraction of battery-powered nodes are below the warning threshold (default 20%)."}),d.jsx("p",{className:"p-3 bg-slate-800 rounded font-mono text-sm",children:"100 × (1 − low_battery_nodes ÷ total_battery_nodes)"}),d.jsx("p",{children:"If 2 out of 10 battery nodes are below 20%, power scores 80."}),d.jsxs("p",{children:[d.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."]}),d.jsx(_e,{children:"Health Tiers"}),d.jsx(Gt,{headers:["Score","Tier","What It Means"],rows:[["90-100",d.jsxs(d.Fragment,{children:[d.jsx(mr,{color:"green"})," Healthy"]}),"Everything's working well."],["75-89",d.jsxs(d.Fragment,{children:[d.jsx(mr,{color:"yellow"})," Slight degradation"]}),"Some issues but the mesh is functional."],["50-74",d.jsxs(d.Fragment,{children:[d.jsx(mr,{color:"orange"})," Unhealthy"]}),"Multiple problems. Reliability is affected."],["25-49",d.jsxs(d.Fragment,{children:[d.jsx(mr,{color:"red"})," Warning"]}),"Significant issues. The mesh is struggling."],["0-24",d.jsxs(d.Fragment,{children:[d.jsx(mr,{color:"black"})," Critical"]}),"Major failures. Barely functional."]]}),d.jsx(_e,{children:"Channel Utilization — Is the Radio Channel Full?"}),d.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."}),d.jsx(Gt,{headers:["Utilization","What's Happening"],rows:[[d.jsxs(d.Fragment,{children:[d.jsx(mr,{color:"green"})," Under 25%"]}),"Healthy. The firmware itself starts throttling above 25% to protect the channel — so under 25% is the target."],[d.jsxs(d.Fragment,{children:[d.jsx(mr,{color:"yellow"})," 25-40%"]}),"Getting busy. Common on larger meshes. Worth watching."],[d.jsxs(d.Fragment,{children:[d.jsx(mr,{color:"orange"})," 40-50%"]}),"Congested. The firmware throttles GPS updates above 40%. Messages are colliding and retrying."],[d.jsxs(d.Fragment,{children:[d.jsx(mr,{color:"red"})," Over 50%"]}),"Serious problem. More time is spent retrying than communicating. Mesh reliability drops fast."],[d.jsxs(d.Fragment,{children:[d.jsx(mr,{color:"black"})," Over 65%"]}),"Documented failure point on busy LONG_FAST meshes. The mesh becomes unusable."]]}),d.jsx(_e,{children:"Packet Flooding"}),d.jsx("p",{className:"p-3 bg-yellow-500/10 border border-yellow-500/30 rounded text-yellow-200",children:d.jsx("strong",{children:'⚠️ "Packet flooding" means a node sending too many RADIO PACKETS. This has nothing to do with water flooding.'})}),d.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."}),d.jsx(Gt,{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."]]}),d.jsx(_e,{children:"Battery Levels"}),d.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:"}),d.jsx(Gt,{headers:["Voltage","Charge","What To Do"],rows:[["4.20V","100%","Full"],["3.80V","~60%","Fine"],[d.jsx("strong",{children:"3.60V"}),d.jsx("strong",{children:"~30%"}),d.jsx(d.Fragment,{children:d.jsx("strong",{children:"⚠️ Warning — charge it soon"})})],[d.jsx("strong",{children:"3.50V"}),d.jsx("strong",{children:"~15%"}),d.jsx(d.Fragment,{children:d.jsx("strong",{children:"🔴 Low — charge it now"})})],[d.jsx("strong",{children:"3.40V"}),d.jsx("strong",{children:"~7%"}),d.jsx(d.Fragment,{children:d.jsx("strong",{children:"⚫ About to die"})})],["3.30V","~3%","Device shutting down"]]}),d.jsxs("p",{children:[d.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."]}),d.jsx(_e,{children:"Node Offline Detection"}),d.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:`}),d.jsx(Gt,{headers:["Node Type","Recommended Threshold","Why"],rows:[["Fixed infrastructure (wall power)",d.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."]]}),d.jsxs("p",{children:[d.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.`]})]}),d.jsxs(Ir,{id:"broadcast-types",title:"Broadcast Types",children:[d.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:"}),d.jsx(Gt,{headers:["Prefix","What it means","When you see it"],rows:[[d.jsx(fe,{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"],[d.jsx(fe,{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"],[d.jsx(fe,{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"]]}),d.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."})]}),d.jsxs(Ir,{id:"reminders",title:"Reminder System",children:[d.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"," ",d.jsx(fe,{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."]}),d.jsx(_e,{children:"Cadences"}),d.jsx(Gt,{headers:["Adapter","Reminder cadence","Termination"],rows:[[d.jsxs(d.Fragment,{children:[d.jsx(fe,{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"],[d.jsxs(d.Fragment,{children:[d.jsx(fe,{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"],[d.jsx(fe,{children:"itd_511_work_zone"}),"Per-zone, configurable in the rule UI","WZDx publishes the zone with end_date in the past"]]}),d.jsx(_e,{children:"The tombstone"}),d.jsxs("p",{children:["When a WFIGS update declares an incident closed, the bot stamps"," ",d.jsx(fe,{children:"fires.tombstoned_at"})," with the close time. The reminder scheduler treats ",d.jsx(fe,{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.`]}),d.jsx(_e,{children:"Turning reminders off"}),d.jsxs("p",{children:["Per-adapter on/off lives in ",d.jsx(fe,{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."]})]}),d.jsxs(Ir,{id:"notifications",title:"Notifications",children:[d.jsx(_e,{children:"How It Works"}),d.jsxs("ol",{className:"list-decimal list-inside ml-4 space-y-1",children:[d.jsxs("li",{children:[d.jsx("strong",{children:"Something happens"})," — a fire is detected, weather warning issued, node goes offline, etc."]}),d.jsxs("li",{children:[d.jsx("strong",{children:"MeshAI checks your rules"})," — does this event match any of your notification rules? Is it severe enough?"]}),d.jsxs("li",{children:[d.jsx("strong",{children:"If a rule matches"})," — MeshAI sends the notification through whatever delivery method that rule is configured for."]})]}),d.jsx(_e,{children:"Building Rules"}),d.jsx("p",{children:"Each rule answers three questions:"}),d.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[d.jsxs("li",{children:[d.jsx("strong",{children:"WHEN"})," does it trigger? (which categories, what severity)"]}),d.jsxs("li",{children:[d.jsx("strong",{children:"WHERE"})," does it send? (mesh broadcast, email, webhook, etc.)"]}),d.jsxs("li",{children:[d.jsx("strong",{children:"HOW OFTEN"})," at most? (cooldown period)"]})]}),d.jsx("p",{children:'Use "Add from Template" to start with a pre-built rule and customize it, or build from scratch with "Add Rule."'}),d.jsx(_e,{children:"Severity Levels — What Should I Set?"}),d.jsx(Gt,{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"],[d.jsxs(d.Fragment,{children:[d.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"]]}),d.jsxs("p",{children:[d.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."]}),d.jsx(_e,{children:"Webhook — The Swiss Army Knife"}),d.jsx("p",{children:"A webhook sends your alert as an HTTP POST to any URL. This one delivery method works with:"}),d.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[d.jsxs("li",{children:[d.jsx("strong",{children:"Discord"})," — use a Discord webhook URL"]}),d.jsxs("li",{children:[d.jsx("strong",{children:"Slack"})," — use a Slack incoming webhook URL"]}),d.jsxs("li",{children:[d.jsx("strong",{children:"ntfy.sh"})," — POST to ",d.jsx(fe,{children:"https://ntfy.sh/your-topic"})]}),d.jsxs("li",{children:[d.jsx("strong",{children:"Pushover"})," — POST to the Pushover API"]}),d.jsxs("li",{children:[d.jsx("strong",{children:"Home Assistant"})," — POST to an automation webhook URL"]}),d.jsx("li",{children:"Anything else that accepts HTTP POST"})]}),d.jsx("p",{children:"MeshAI doesn't need to know what's on the other end. Give it the URL and it works."})]}),d.jsxs(Ir,{id:"commands",title:"Commands",children:[d.jsxs("p",{children:["All commands use the ",d.jsx(fe,{children:"!"})," prefix (configurable). Send these as a direct message to MeshAI on your mesh."]}),d.jsx(_e,{children:"Basic Commands"}),d.jsx(Gt,{headers:["Command","What It Does"],rows:[[d.jsx(fe,{children:"!help"}),"Shows all available commands"],[d.jsx(fe,{children:"!ping"}),"Tests if the bot is alive"],[d.jsx(fe,{children:"!status"}),"Quick mesh summary (nodes online, health score)"],[d.jsx(fe,{children:"!health"}),"Detailed health report with pillar scores"],[d.jsx(fe,{children:"!weather"}),"Current weather for your area"]]}),d.jsx(_e,{children:"Environmental Commands"}),d.jsx(Gt,{headers:["Command","What It Does"],rows:[[d.jsx(fe,{children:"!alerts"}),"Active NWS weather alerts for your area"],[d.jsxs(d.Fragment,{children:[d.jsx(fe,{children:"!solar"})," (or ",d.jsx(fe,{children:"!hf"}),")"]}),"Current solar indices and RF conditions"],[d.jsx(fe,{children:"!fire"}),"Active wildfires near your mesh"],[d.jsx(fe,{children:"!avy"}),'Avalanche advisory (seasonal — shows "off season" in summer)'],[d.jsxs(d.Fragment,{children:[d.jsx(fe,{children:"!streams"})," (or ",d.jsx(fe,{children:"!gauges"}),")"]}),"Stream gauge readings"],[d.jsxs(d.Fragment,{children:[d.jsx(fe,{children:"!roads"})," (or ",d.jsx(fe,{children:"!traffic"}),")"]}),"Road conditions and traffic flow"],[d.jsx(fe,{children:"!hotspots"}),"Satellite fire detections"]]}),d.jsx(_e,{children:"Conversational"}),d.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`," ",d.jsx("a",{href:"#llm-dm",className:"text-accent hover:underline",children:"LLM DM Queries"}),"."]})]}),d.jsxs(Ir,{id:"llm-dm",title:"LLM DM (Natural-Language Queries)",children:[d.jsxs("p",{children:["Bang commands like ",d.jsx(fe,{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."]}),d.jsx(_e,{children:"What it can answer"}),d.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:"}),d.jsx(Gt,{headers:["Adapter block","Example question that hits it","What you get back"],rows:[[d.jsx(fe,{children:"build_fires_detail"}),'"are there any fires near me?"',"Active WFIGS-declared fires, acreage, containment, declared_at, county/state"],[d.jsx(fe,{children:"build_alerts_detail"}),'"any weather alerts?"',"Active NWS CAP alerts: type, severity, area, expiry"],[d.jsx(fe,{children:"build_quakes_detail"}),'"any earthquakes nearby?"',"USGS quakes in the last 24h: magnitude, depth, place"],[d.jsx(fe,{children:"build_traffic_detail"}),'"how is traffic on I-84?" / "any road closures?"',"TomTom + ITD 511 active incidents"],[d.jsx(fe,{children:"build_gauges_detail"}),'"what is the snake river level?"',"USGS NWIS latest readings + flood stages"],[d.jsx(fe,{children:"build_swpc_detail"}),'"what are the band conditions?" / "any space weather?"',"Recent SWPC events + band-conditions ratings"],[d.jsx(fe,{children:"build_drop_audit"}),`"why didn't I hear about anything today?"`,"Event log: what envelopes the dispatcher filtered, by adapter + category"]]}),d.jsx(_e,{children:"The grounding rule"}),d.jsxs("p",{children:["The bot is told to answer ",d.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.']}),d.jsx(_e,{children:"Excluding an adapter from LLM context"}),d.jsxs("p",{children:["The ",d.jsx(fe,{children:"include_in_llm_context"})," toggle on each adapter's row in Adapter Config decides whether that adapter's ",d.jsx(fe,{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."]}),d.jsx(_e,{children:"What it can't answer"}),d.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.`})]}),d.jsxs(Ir,{id:"or-not-and",title:"OR-not-AND Architecture",children:[d.jsx("p",{children:"Every environmental adapter pulls its data from one of two places:"}),d.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[d.jsxs("li",{children:[d.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."]}),d.jsxs("li",{children:[d.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."]})]}),d.jsx(_e,{children:"Why mutually exclusive"}),d.jsxs("p",{children:["An adapter is set to ",d.jsx("strong",{children:"either"})," Central ",d.jsx("strong",{children:"or"})," ","native, never both. Running both at the same time is what the codebase calls the ",d.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."]}),d.jsx(_e,{children:"The per-adapter source toggle"}),d.jsxs("p",{children:["Set ",d.jsx(fe,{children:"feed_source"})," on each adapter's row in Environment:"]}),d.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[d.jsxs("li",{children:[d.jsx(fe,{children:"central"})," — disable the native poll loop, subscribe to the matching Central subject pattern."]}),d.jsxs("li",{children:[d.jsx(fe,{children:"native"})," — disable the Central subscription for this adapter, run the native poller."]})]}),d.jsxs("p",{children:["On the GUI, adapters with ",d.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.`]}),d.jsx(_e,{children:"Where this surfaces in tooltips"}),d.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`," ",d.jsxs(fe,{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."]})]}),d.jsxs(Ir,{id:"adapter-config",title:"Adapter Config & the CODE Rule",children:[d.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."}),d.jsx(_e,{children:"The CONFIG-vs-CODE rule"}),d.jsx("p",{children:"Not everything tunable becomes a GUI row. The codebase splits along one rule:"}),d.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[d.jsxs("li",{children:[d.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)."]}),d.jsxs("li",{children:[d.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)."]})]}),d.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."}),d.jsx(_e,{children:"Restart-required vs live"}),d.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:"}),d.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[d.jsxs("li",{children:["Anything under the ",d.jsx(fe,{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."]}),d.jsx("li",{children:"The LLM backend swap (Google → Anthropic → OpenAI)."}),d.jsx("li",{children:"The dispatcher cold-start grace window."})]}),d.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.`}),d.jsxs(_e,{children:["The ",d.jsx(fe,{children:"include_in_llm_context"})," toggle"]}),d.jsxs("p",{children:[`Each adapter's card on Adapter Config carries a per-adapter "LLM context" switch. When off, that adapter's `,d.jsx(fe,{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."]})]}),d.jsxs(Ir,{id:"curation",title:"Curation: Gauge Sites & Town Anchors",children:[d.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."}),d.jsx(_e,{children:"Gauge Sites"}),d.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."}),d.jsxs("p",{children:[d.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."]}),d.jsxs("p",{children:[d.jsx("strong",{children:"Disabled rows"})," are ignored at dispatch time. The corresponding gauge still ingests into ",d.jsx(fe,{children:"gauge_readings"})," ","(so historical queries still work), it just doesn't broadcast."]}),d.jsx(_e,{children:"Town Anchors"}),d.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:']}),d.jsxs("ol",{className:"list-decimal list-inside ml-4 space-y-1",children:[d.jsx("li",{children:'Photon nearest-town lookup (the WFIGS path uses this — produces "near Long Creek Summit Home" style anchors)'}),d.jsx("li",{children:"Town Anchors table (your curated list)"}),d.jsx("li",{children:"Landclass label (county / federal-land identifier)"}),d.jsx("li",{children:"County + state fallback"}),d.jsx("li",{children:"Bare lat/lon coords"})]}),d.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.'}),d.jsxs("p",{children:["Example broadcast text rendered from a Town Anchors row:"," ",d.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"'})]})]}),d.jsxs(Ir,{id:"schema",title:"Schema Migrations",children:[d.jsxs("p",{children:["MeshAI persists state in a single SQLite database (",d.jsx(fe,{children:"/data/meshai.sqlite"}),") with WAL journaling. Schema migrations live in ",d.jsx(fe,{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 ",d.jsx(fe,{children:"schema_meta.version"})," in order. Idempotent re-runs are no-ops."]}),d.jsx(_e,{children:"v0.6 + v0.7 additions"}),d.jsx(Gt,{headers:["Migration","What it added"],rows:[[d.jsx(fe,{children:"v11"}),"first_broadcast_at + last_broadcast_at split + reminder_enabled per adapter (the schema basis for New / Update / Active)"],[d.jsx(fe,{children:"v12"}),"fires.tombstoned_at (WFIGS closure stamp; terminates the reminder loop)"],[d.jsx(fe,{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"],[d.jsx(fe,{children:"v14"}),"Fire Tracker Phase 2 — fire_passes table (per-satellite-pass centroid + drift) + last_pass_id + halt_broadcast_at on fires"],[d.jsx(fe,{children:"v15"}),"Fire Tracker Phase 3 — fire_passes.perimeter_geojson (convex hull) + fires.last_spotting_broadcast_at"],[d.jsx(fe,{children:"v16"}),"Fire Tracker Phase 4 — fire_digest_broadcasts table (idempotent twice-daily LLM digest)"]]}),d.jsx(_e,{children:"When migrations fail"}),d.jsxs("p",{children:["A migration failure leaves the database at the prior version and raises in the runner. Container logs surface the SQL error;"," ",d.jsx(fe,{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."]})]}),d.jsxs(Ir,{id:"api",title:"API Reference",children:[d.jsxs("p",{children:["MeshAI's REST API is available at ",d.jsx(fe,{children:"http://your-host:8080"}),". All endpoints return JSON."]}),d.jsx(_e,{children:"System"}),d.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[d.jsxs("li",{children:[d.jsx(fe,{children:"GET /api/status"})," — version, uptime, node count"]}),d.jsxs("li",{children:[d.jsx(fe,{children:"GET /api/channels"})," — radio channel list"]}),d.jsxs("li",{children:[d.jsx(fe,{children:"POST /api/restart"})," — restart the bot"]})]}),d.jsx(_e,{children:"Mesh Data"}),d.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[d.jsxs("li",{children:[d.jsx(fe,{children:"GET /api/health"})," — health score and pillars"]}),d.jsxs("li",{children:[d.jsx(fe,{children:"GET /api/nodes"})," — all nodes with positions and telemetry"]}),d.jsxs("li",{children:[d.jsx(fe,{children:"GET /api/edges"})," — neighbor links with signal quality"]}),d.jsxs("li",{children:[d.jsx(fe,{children:"GET /api/regions"})," — region summaries"]}),d.jsxs("li",{children:[d.jsx(fe,{children:"GET /api/sources"})," — data source health"]})]}),d.jsx(_e,{children:"Configuration"}),d.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[d.jsxs("li",{children:[d.jsx(fe,{children:"GET /api/config"})," — full config"]}),d.jsxs("li",{children:[d.jsxs(fe,{children:["GET /api/config/","{section}"]})," — one section"]}),d.jsxs("li",{children:[d.jsxs(fe,{children:["PUT /api/config/","{section}"]})," — update a section"]})]}),d.jsx(_e,{children:"Environmental"}),d.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[d.jsxs("li",{children:[d.jsx(fe,{children:"GET /api/env/status"})," — per-feed health"]}),d.jsxs("li",{children:[d.jsx(fe,{children:"GET /api/env/active"})," — all active events"]}),d.jsxs("li",{children:[d.jsx(fe,{children:"GET /api/env/swpc"})," — solar/geomagnetic data"]}),d.jsxs("li",{children:[d.jsx(fe,{children:"GET /api/env/ducting"})," — atmospheric profile"]}),d.jsxs("li",{children:[d.jsx(fe,{children:"GET /api/env/fires"})," — wildfire perimeters"]}),d.jsxs("li",{children:[d.jsx(fe,{children:"GET /api/env/hotspots"})," — satellite fire detections"]})]}),d.jsx(_e,{children:"Alerts"}),d.jsxs("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[d.jsxs("li",{children:[d.jsx(fe,{children:"GET /api/alerts/active"})," — current alerts"]}),d.jsxs("li",{children:[d.jsx(fe,{children:"GET /api/alerts/history"})," — past alerts"]}),d.jsxs("li",{children:[d.jsx(fe,{children:"GET /api/notifications/categories"})," — available alert categories"]})]}),d.jsx(_e,{children:"Real-time"}),d.jsx("ul",{className:"list-disc list-inside ml-4 space-y-1",children:d.jsxs("li",{children:[d.jsx(fe,{children:"ws://your-host:8080/ws/live"})," — WebSocket for live updates"]})})]})]})})]})}const eT={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 RZ(){const[e,t]=E.useState([]),[r,n]=E.useState(!0),[a,i]=E.useState(null),[o,s]=E.useState(null),[l,u]=E.useState(eT),[c,h]=E.useState(!1),[f,v]=E.useState("unknown"),g=E.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)}},[]);E.useEffect(()=>{g()},[g]),E.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({...eT})},x=()=>{s(null),h(!1),u(eT)},_=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?d.jsxs("div",{className:"p-6 text-slate-400",children:[d.jsx(nv,{className:"w-5 h-5 animate-spin inline mr-2"}),"Loading…"]}):a?d.jsxs("div",{className:"p-6 text-red-400",children:["Load failed: ",a]}):d.jsxs("div",{className:"p-6 space-y-4",children:[d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx(c1,{className:"w-5 h-5 text-accent"}),d.jsx("h1",{className:"text-xl font-semibold text-slate-100",children:"Gauge Sites"}),d.jsxs("span",{className:"text-xs text-slate-500 ml-2",children:[e.length," sites"]}),d.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:[d.jsx(li,{className:"w-4 h-4"})," Add site"]})]}),d.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&&d.jsx(JB,{draft:l,setDraft:u,onSave:_,onCancel:x,adding:!0,feedSource:f}),d.jsx("div",{className:"bg-bg-card border border-border overflow-x-auto",children:d.jsxs("table",{className:"w-full text-sm text-slate-200",children:[d.jsx("thead",{className:"bg-[#161616] border-b border-border",children:d.jsxs("tr",{children:[d.jsx("th",{className:"px-3 py-2 font-sans text-[9px] uppercase tracking-widest text-[#666] text-left",children:"Site ID"}),d.jsx("th",{className:"px-3 py-2 font-sans text-[9px] uppercase tracking-widest text-[#666] text-left",children:"Name"}),d.jsx("th",{className:"px-3 py-2 font-sans text-[9px] uppercase tracking-widest text-[#666] text-right",children:"Lat,Lon"}),d.jsx("th",{className:"px-3 py-2 font-sans text-[9px] uppercase tracking-widest text-[#666] text-right",children:"Action"}),d.jsx("th",{className:"px-3 py-2 font-sans text-[9px] uppercase tracking-widest text-[#666] text-right",children:"Minor"}),d.jsx("th",{className:"px-3 py-2 font-sans text-[9px] uppercase tracking-widest text-[#666] text-right",children:"Moderate"}),d.jsx("th",{className:"px-3 py-2 font-sans text-[9px] uppercase tracking-widest text-[#666] text-right",children:"Major"}),d.jsx("th",{className:"px-3 py-2 font-sans text-[9px] uppercase tracking-widest text-[#666] text-center",children:"On"}),d.jsx("th",{className:"px-3 py-2 font-sans text-[9px] uppercase tracking-widest text-[#666]"})]})}),d.jsx("tbody",{className:"divide-y divide-border",children:e.map(S=>o===S.site_id?d.jsx("tr",{className:"bg-bg-card border-b border-border hover:bg-bg-hover",children:d.jsx("td",{colSpan:9,className:"px-3 py-2",children:d.jsx(JB,{draft:l,setDraft:u,onSave:_,onCancel:x,feedSource:f})})},S.site_id):d.jsxs("tr",{className:"hover:bg-bg-hover",children:[d.jsx("td",{className:"px-3 py-2 font-mono text-xs",children:S.site_id}),d.jsx("td",{className:"px-3 py-2",children:S.gauge_name}),d.jsxs("td",{className:"px-3 py-2 text-right text-xs",children:[S.lat.toFixed(3),",",S.lon.toFixed(3)]}),d.jsx("td",{className:"px-3 py-2 text-right",children:S.action_ft??"-"}),d.jsx("td",{className:"px-3 py-2 text-right",children:S.flood_minor_ft??"-"}),d.jsx("td",{className:"px-3 py-2 text-right",children:S.flood_moderate_ft??"-"}),d.jsx("td",{className:"px-3 py-2 text-right",children:S.flood_major_ft??"-"}),d.jsx("td",{className:"px-3 py-2 text-center",children:S.enabled?d.jsx(Yr,{className:"w-4 h-4 text-emerald-400 inline"}):d.jsx(_u,{className:"w-4 h-4 text-slate-500 inline"})}),d.jsxs("td",{className:"px-3 py-2 text-right",children:[d.jsx("button",{onClick:()=>m(S),className:"text-accent hover:text-accent text-xs mr-3",children:"Edit"}),d.jsx("button",{onClick:()=>w(S.site_id),className:"text-red-400 hover:text-red-300",children:d.jsx(ui,{className:"w-4 h-4 inline"})})]})]},S.site_id))})]})})]})}function JB({draft:e,setDraft:t,onSave:r,onCancel:n,adding:a,feedSource:i}){const o=(g,m)=>t({...e,[g]:m}),[s,l]=E.useState(!1),[u,c]=E.useState(null),h=i!=="native"||!e.site_id.trim(),f=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 d.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-2 p-3 bg-[#1a1a1a]",children:[d.jsxs("label",{className:"text-xs text-slate-400 col-span-2",children:["Site ID",d.jsxs("div",{className:"flex items-center gap-1 mt-1",children:[d.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}),d.jsxs("button",{type:"button",onClick:v,disabled:h||s,title:f,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?d.jsx(nv,{className:"w-3 h-3 animate-spin"}):d.jsx(v1,{className:"w-3 h-3"}),"USGS lookup"]})]}),u&&d.jsx("span",{className:"text-amber-400 text-xs mt-1 block",children:u})]}),d.jsxs("label",{className:"text-xs text-slate-400 col-span-2",children:["Gauge name",d.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)})]}),d.jsxs("label",{className:"text-xs text-slate-400",children:["Lat",d.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))})]}),d.jsxs("label",{className:"text-xs text-slate-400",children:["Lon",d.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))})]}),d.jsxs("label",{className:"text-xs text-slate-400",children:["Action ft",d.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))})]}),d.jsxs("label",{className:"text-xs text-slate-400",children:["Minor flood ft",d.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))})]}),d.jsxs("label",{className:"text-xs text-slate-400",children:["Moderate flood ft",d.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))})]}),d.jsxs("label",{className:"text-xs text-slate-400",children:["Major flood ft",d.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))})]}),d.jsxs("label",{className:"text-xs text-slate-300 col-span-2 flex items-center gap-2 mt-2",children:[d.jsx("input",{type:"checkbox",checked:e.enabled,onChange:g=>o("enabled",g.target.checked),className:"accent-[#f59e0b]"}),"Enabled"]}),d.jsxs("div",{className:"col-span-2 flex items-center justify-end gap-2 mt-2",children:[d.jsx("button",{onClick:n,className:"px-3 py-1 text-slate-300 hover:bg-bg-hover text-sm",children:"Cancel"}),d.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 tT={anchor_id:0,name:"",lat:0,lon:0,state:"ID",enabled:!0,updated_at:0};function OZ(){const[e,t]=E.useState([]),[r,n]=E.useState(!0),[a,i]=E.useState(null),[o,s]=E.useState(null),[l,u]=E.useState(!1),[c,h]=E.useState(tT),f=E.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)}},[]);E.useEffect(()=>{f()},[f]);const v=_=>{s(_.anchor_id),h({..._}),u(!1)},g=()=>{u(!0),s(null),h({...tT})},m=()=>{s(null),u(!1),h(tT)},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(),f()},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}f()};return r?d.jsxs("div",{className:"p-6 text-slate-400",children:[d.jsx(nv,{className:"w-5 h-5 animate-spin inline mr-2"}),"Loading…"]}):a?d.jsxs("div",{className:"p-6 text-red-400",children:["Load failed: ",a]}):d.jsxs("div",{className:"p-6 space-y-4",children:[d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx(av,{className:"w-5 h-5 text-accent"}),d.jsx("h1",{className:"text-xl font-semibold text-slate-100",children:"Town Anchors"}),d.jsxs("span",{className:"text-xs text-slate-500 ml-2",children:[e.length," towns"]}),d.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:[d.jsx(li,{className:"w-4 h-4"})," Add town"]})]}),d.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&&d.jsx(QB,{draft:c,setDraft:h,onSave:y,onCancel:m,adding:!0}),d.jsx("div",{className:"bg-bg-card border border-border overflow-x-auto",children:d.jsxs("table",{className:"w-full text-sm text-slate-200",children:[d.jsx("thead",{className:"bg-[#161616] border-b border-border",children:d.jsxs("tr",{children:[d.jsx("th",{className:"px-3 py-2 font-sans text-[9px] uppercase tracking-widest text-[#666] text-left",children:"Name"}),d.jsx("th",{className:"px-3 py-2 font-sans text-[9px] uppercase tracking-widest text-[#666] text-right",children:"Lat"}),d.jsx("th",{className:"px-3 py-2 font-sans text-[9px] uppercase tracking-widest text-[#666] text-right",children:"Lon"}),d.jsx("th",{className:"px-3 py-2 font-sans text-[9px] uppercase tracking-widest text-[#666] text-center",children:"State"}),d.jsx("th",{className:"px-3 py-2 font-sans text-[9px] uppercase tracking-widest text-[#666] text-center",children:"On"}),d.jsx("th",{className:"px-3 py-2 font-sans text-[9px] uppercase tracking-widest text-[#666]"})]})}),d.jsx("tbody",{className:"divide-y divide-border",children:e.map(_=>o===_.anchor_id?d.jsx("tr",{className:"bg-bg-card border-b border-border hover:bg-bg-hover",children:d.jsx("td",{colSpan:6,className:"px-3 py-2",children:d.jsx(QB,{draft:c,setDraft:h,onSave:y,onCancel:m})})},_.anchor_id):d.jsxs("tr",{className:"hover:bg-bg-hover",children:[d.jsx("td",{className:"px-3 py-2 capitalize",children:_.name}),d.jsx("td",{className:"px-3 py-2 text-right text-xs",children:_.lat.toFixed(4)}),d.jsx("td",{className:"px-3 py-2 text-right text-xs",children:_.lon.toFixed(4)}),d.jsx("td",{className:"px-3 py-2 text-center text-xs",children:_.state||"-"}),d.jsx("td",{className:"px-3 py-2 text-center",children:_.enabled?d.jsx(Yr,{className:"w-4 h-4 text-emerald-400 inline"}):d.jsx(_u,{className:"w-4 h-4 text-slate-500 inline"})}),d.jsxs("td",{className:"px-3 py-2 text-right",children:[d.jsx("button",{onClick:()=>v(_),className:"text-accent hover:text-accent text-xs mr-3",children:"Edit"}),d.jsx("button",{onClick:()=>x(_.anchor_id),className:"text-red-400 hover:text-red-300",children:d.jsx(ui,{className:"w-4 h-4 inline"})})]})]},_.anchor_id))})]})})]})}function QB({draft:e,setDraft:t,onSave:r,onCancel:n,adding:a}){const i=(o,s)=>t({...e,[o]:s});return d.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-2 p-3 bg-[#1a1a1a]",children:[d.jsxs("label",{className:"text-xs text-slate-400 col-span-2",children:["Name (lowercased on save)",d.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})]}),d.jsxs("label",{className:"text-xs text-slate-400",children:["State",d.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)})]}),d.jsxs("label",{className:"text-xs text-slate-400 flex items-center gap-2",children:[d.jsx("input",{type:"checkbox",checked:e.enabled,onChange:o=>i("enabled",o.target.checked),className:"accent-[#f59e0b] mt-4"}),"Enabled"]}),d.jsxs("label",{className:"text-xs text-slate-400",children:["Lat",d.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))})]}),d.jsxs("label",{className:"text-xs text-slate-400",children:["Lon",d.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))})]}),d.jsxs("div",{className:"col-span-2 flex items-center justify-end gap-2 mt-2",children:[d.jsx("button",{onClick:n,className:"px-3 py-1 text-slate-300 hover:bg-bg-hover text-sm",children:"Cancel"}),d.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 c2e(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 h2e(e,t){const r=(t==null?void 0:t.mc_enabled)??!1,n=(e==null?void 0:e.mt_enabled)??(e==null?void 0:e.enabled)??!1,a=(e==null?void 0:e.cells)||{},i=(t==null?void 0:t.cells)||{},o=new Set([...Object.keys(a),...Object.keys(i)]),s={};for(const l of o){const u=a[l]||{},c=i[l]||{},h=new Set([...Object.keys(u),...Object.keys(c)]),f={};for(const v of h){const g=u[v],m=c[v],y=m!==void 0?m.mc||null:(g==null?void 0:g.mc)??null,x={mt:(g==null?void 0:g.mt)??null,mc:y,min_severity:(m==null?void 0:m.min_severity)??(g==null?void 0:g.min_severity)??"routine",enabled:(m==null?void 0:m.enabled)??(g==null?void 0:g.enabled)??!0},_=x.mc;(x.mt!==null||_!==null&&_.trim()!=="")&&(f[v]=x)}Object.keys(f).length>0&&(s[l]=f)}return{mt_enabled:n,mc_enabled:r,cells:s}}function d2e(){var ye;const{setDirty:e}=$i(),[t,r]=E.useState(null),[n,a]=E.useState(null),[i,o]=E.useState([]),[s,l]=E.useState(!0),[u,c]=E.useState(!1),[h,f]=E.useState(null),[v,g]=E.useState(null),[m,y]=E.useState(!1),[x,_]=E.useState([]),[w,S]=E.useState(!1),[C,M]=E.useState(null),[A,k]=E.useState(""),[I,P]=E.useState(null),[j,z]=E.useState({}),[D,B]=E.useState({}),H=(ne,xe)=>`${ne}|${xe}`,V=E.useCallback(async()=>{try{const[ne,xe]=await Promise.all([fetch("/api/config/notifications"),fetch("/api/notifications/regions")]);if(!ne.ok)throw new Error("Failed to fetch notifications config");const he=await ne.json(),ge=xe.ok?await xe.json():[];r(he),a(JSON.parse(JSON.stringify(he))),o(Array.isArray(ge)?ge:[]),y(!1),f(null)}catch(ne){f(ne instanceof Error?ne.message:"Unknown error")}finally{l(!1)}},[]);E.useEffect(()=>{document.title="MeshCore Routing - MeshAI",V()},[V]);const U=E.useCallback(async()=>{try{const ne=await UJ();_(ne.active?ne.rooms:[]),S(ne.active)}catch{_([]),S(!1)}},[]);E.useEffect(()=>{U()},[U]),E.useEffect(()=>{t&&n&&y(JSON.stringify(t)!==JSON.stringify(n))},[t,n]),E.useEffect(()=>(e(m),()=>e(!1)),[m,e]);const F=(ne,xe)=>{if(!t)return;const he=t.toggles||{};r({...t,toggles:{...he,[ne]:{...he[ne]||{},name:ne,...xe}}})},W="room:",$=ne=>typeof ne=="string"&&ne.startsWith(W),Z=ne=>ne.slice(W.length),J=ne=>x.find(xe=>xe.pubkey===ne),re=(ne,xe,he)=>{var Ue,qe,Fe,_t,bt,et,Ke,St,ce;if(!t)return;const ge=((Fe=(qe=(Ue=t.region_routes)==null?void 0:Ue.cells)==null?void 0:qe[ne])==null?void 0:Fe[xe])??{mt:null,mc:null,min_severity:"routine",enabled:!0},tt={...((_t=t.region_routes)==null?void 0:_t.cells)||{},[ne]:{...((et=(bt=t.region_routes)==null?void 0:bt.cells)==null?void 0:et[ne])||{},[xe]:{...ge,mc:he}}};r({...t,region_routes:{mt_enabled:((Ke=t.region_routes)==null?void 0:Ke.mt_enabled)??((St=t.region_routes)==null?void 0:St.enabled)??!1,mc_enabled:((ce=t.region_routes)==null?void 0:ce.mc_enabled)??!1,cells:tt}})},Q=ne=>{var tt,Ue,qe,Fe,_t,bt;if(!t)return;const xe=((Ue=(tt=t.region_routes)==null?void 0:tt.cells)==null?void 0:Ue[ne])||{},he={};for(const[et,Ke]of Object.entries(xe))he[et]={...Ke,mc:null};const ge={...((qe=t.region_routes)==null?void 0:qe.cells)||{},[ne]:he};r({...t,region_routes:{mt_enabled:((Fe=t.region_routes)==null?void 0:Fe.mt_enabled)??((_t=t.region_routes)==null?void 0:_t.enabled)??!1,mc_enabled:((bt=t.region_routes)==null?void 0:bt.mc_enabled)??!1,cells:ge}})},le=async()=>{if(t){c(!0),f(null),g(null);try{const ne=await fetch("/api/config/notifications");if(!ne.ok)throw new Error("Failed to re-fetch notifications config");const xe=await ne.json(),he={...xe,toggles:{...xe.toggles||{}},region_routes:h2e(xe.region_routes,t.region_routes)},ge=t.toggles||{};for(const{key:qe}of fu){const Fe=ge[qe];Fe&&(he.toggles[qe]=c2e((xe.toggles||{})[qe],Fe,qe))}const tt=await fetch("/api/config/notifications",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(he)}),Ue=await tt.json();if(!tt.ok)throw new Error(Ue.detail||"Save failed");r(he),a(JSON.parse(JSON.stringify(he))),y(!1),e(!1),g("MeshCore routing saved successfully"),setTimeout(()=>g(null),3e3)}catch(ne){f(ne instanceof Error?ne.message:"Save failed")}finally{c(!1)}}},de=()=>{n&&(r(JSON.parse(JSON.stringify(n))),y(!1))};if(s)return d.jsx("div",{className:"flex items-center justify-center h-64",children:d.jsx("div",{className:"text-slate-400",children:"Loading MeshCore routing..."})});if(!t)return d.jsx("div",{className:"flex items-center justify-center h-64",children:d.jsx("div",{className:"text-red-400",children:"Failed to load notifications config"})});const He=t.toggles||{};return d.jsxs("div",{className:"max-w-4xl mx-auto space-y-6",children:[d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsx("div",{children:d.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."})}),d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx("button",{onClick:V,className:"p-2 text-slate-400 hover:text-slate-200 hover:bg-bg-hover rounded transition-colors",title:"Refresh",children:d.jsx(Zi,{size:18})}),d.jsxs("button",{onClick:de,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:[d.jsx(xa,{size:16}),"Discard"]}),d.jsxs("button",{onClick:le,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:[d.jsx(_a,{size:16}),u?"Saving...":"Save"]})]})]}),d.jsxs("div",{className:"flex items-start gap-2 p-3 bg-[#0a0e17] border border-[#1e2a3a] rounded text-sm text-slate-400",children:[d.jsx(Jc,{size:16,className:"text-accent mt-0.5 flex-shrink-0"}),d.jsxs("div",{children:["Family gating (enable, severity threshold, freshness/cooldown) is on"," ",d.jsx(uf,{to:"/environment",className:"text-accent hover:underline",children:"Data Feeds"}),". Meshtastic delivery is on"," ",d.jsx(uf,{to:"/meshtastic/routing",className:"text-accent hover:underline",children:"Meshtastic Routing"}),". This page edits only the MeshCore delivery for each family."]})]}),h&&d.jsx("div",{className:"p-3 text-sm bg-red-500/10 text-red-400 border border-red-500/20",children:h}),v&&d.jsxs("div",{className:"p-3 text-sm bg-green-500/10 text-green-400 border border-green-500/20",children:[d.jsx(Yr,{size:14,className:"inline mr-2"}),v]}),d.jsxs("div",{className:"bg-bg-card border border-border p-6 space-y-4",children:[d.jsxs("div",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:["MeshCore Delivery",d.jsx(Yo,{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."})]}),d.jsx("div",{className:"border border-[#1e2a3a] p-3",children:d.jsx(Ch,{label:"Enable MeshCore region routing",checked:((ye=t.region_routes)==null?void 0:ye.mc_enabled)??!1,onChange:ne=>{var xe,he,ge;return r({...t,region_routes:{mt_enabled:((xe=t.region_routes)==null?void 0:xe.mt_enabled)??((he=t.region_routes)==null?void 0:he.enabled)??!1,mc_enabled:ne,cells:((ge=t.region_routes)==null?void 0:ge.cells)||{}}})},helper:"Master switch for per-region MeshCore channel routing. When off, families deliver only to their default MeshCore channels."})}),d.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:fu.map(({key:ne,label:xe,Icon:he})=>{var _t,bt;const ge=He[ne]||{},tt=((bt=(_t=t.region_routes)==null?void 0:_t.cells)==null?void 0:bt[ne])||{},Ue=i.some(et=>{var St;const Ke=(St=tt[et])==null?void 0:St.mc;return Ke!=null&&Ke.trim()!==""}),qe=j[ne],Fe=qe!==void 0?qe:Ue;return d.jsxs("div",{className:"border border-[#1e2a3a] p-3 space-y-3",children:[d.jsxs("div",{className:"flex items-center gap-2 text-sm text-slate-200",children:[d.jsx(he,{size:15})," ",xe]}),d.jsxs("div",{className:"space-y-3 p-3 bg-[#0a0e17] border border-[#1e2a3a]",children:[d.jsxs("div",{className:"flex items-center gap-2 text-xs font-medium text-slate-300",children:[d.jsx(wk,{size:13}),"MeshCore"]}),d.jsx(IZ,{channels:jCe,severityChannels:ge.severity_channels||{},onChange:et=>F(ne,{severity_channels:et})}),d.jsxs("div",{className:"space-y-1",children:[d.jsx("label",{className:"text-xs text-slate-500 uppercase tracking-wide",children:"MeshCore channel name"}),d.jsx("input",{type:"text",value:ge.meshcore_channel!=null?ge.meshcore_channel:"",onChange:et=>F(ne,{meshcore_channel:et.target.value===""?null:et.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"}),d.jsx("p",{className:"text-xs text-slate-600",children:"Channel name on your MeshCore companion (e.g. AIDA). Blank = not broadcast on MeshCore."})]}),d.jsx(LZ,{label:"MeshCore DM contacts",value:ge.meshcore_dm_contacts||[],onChange:et=>F(ne,{meshcore_dm_contacts:et}),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."})]}),d.jsxs("div",{className:"border border-[#1e2a3a] p-3 space-y-2",children:[d.jsx(Ch,{label:"Region-based routing",checked:Fe,onChange:et=>{z(Ke=>({...Ke,[ne]:et})),et||Q(ne)},helper:"Route this family to different MC channels per region"}),Fe&&(i.length===0?d.jsxs("p",{className:"text-xs text-slate-500 italic",children:["No regions yet — add them on the"," ",d.jsx(uf,{to:"/coverage",className:"text-accent hover:underline",children:"Coverage"})," page."]}):d.jsx("div",{className:"space-y-1.5 pt-1",children:i.map(et=>{const St=(tt[et]??{mc:null}).mc??"",ce=H(ne,et),Bt=(D[ce]??($(St)?"room":"channel"))==="room",Ft=$(St)?J(Z(St)):void 0;return d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx("span",{className:"text-xs text-slate-400 flex-1 min-w-0 truncate",children:et}),d.jsxs("div",{className:"flex border border-[#1e2a3a] rounded overflow-hidden",children:[d.jsx("button",{type:"button",title:"Target a channel",onClick:()=>{B(jt=>({...jt,[ce]:"channel"})),$(St)&&re(ne,et,null)},className:`px-1.5 py-1 flex items-center ${Bt?"text-slate-500 hover:text-slate-300":"bg-accent text-white"}`,children:d.jsx(wJ,{size:12})}),d.jsx("button",{type:"button",title:w?"Target a room server":"MeshCore not connected",disabled:!w&&!$(St),onClick:()=>{B(jt=>({...jt,[ce]:"room"})),$(St)||re(ne,et,null)},className:`px-1.5 py-1 flex items-center ${Bt?"bg-accent text-white":"text-slate-500 hover:text-slate-300"} disabled:opacity-40 disabled:cursor-not-allowed`,children:d.jsx(CJ,{size:12})})]}),Bt?d.jsxs(d.Fragment,{children:[w||Ft?d.jsxs("div",{className:"flex items-center gap-1 w-40",children:[d.jsxs("select",{value:Ft?Ft.pubkey:"",onChange:jt=>{const Lr=jt.target.value;re(ne,et,Lr===""?null:W+Lr)},className:"flex-1 min-w-0 px-1.5 py-1 bg-[#0a0e17] border border-[#1e2a3a] rounded text-xs text-slate-200 focus:outline-none focus:border-accent",children:[d.jsx("option",{value:"",children:"room…"}),!Ft&&$(St)&&d.jsxs("option",{value:Z(St),children:[Z(St).slice(0,10),"…"]}),x.map(jt=>d.jsx("option",{value:jt.pubkey,children:jt.name||jt.pubkey.slice(0,10)+"…"},jt.pubkey))]}),Ft&&d.jsx("span",{title:Ft.path_established?"Path established":"No path yet — first send discovers it",className:`text-[10px] ${Ft.path_established?"text-green-500":"text-slate-600"}`,children:"●"})]}):d.jsx("span",{className:"w-40 text-xs text-slate-600 italic truncate",children:"MeshCore not connected"}),Z(St)&&(()=>{var tl;const jt=Z(St),Lr=((tl=x.find(Ki=>Ki.pubkey===jt))==null?void 0:tl.password_set)??!1,Qo=C===jt;return d.jsxs("div",{className:"flex items-center gap-1",children:[d.jsx("button",{type:"button",title:Lr?"Room password: set":"Room password: not set","aria-label":Lr?"Room password: set":"Room password: not set",onClick:()=>{P(null),Qo?M(null):(M(jt),k(""))},className:`px-1 py-1 text-xs ${Lr?"text-accent":"text-slate-600 hover:text-slate-400"}`,children:Lr?"🔒":"🔓"}),Qo&&d.jsxs("div",{className:"flex items-center gap-1",children:[d.jsx("input",{type:"password",value:A,onChange:Ki=>k(Ki.target.value),placeholder:"room password",className:"w-28 px-1.5 py-1 bg-[#0a0e17] border border-[#1e2a3a] rounded text-xs text-slate-200 focus:outline-none focus:border-accent"}),d.jsx("button",{type:"button",title:"Save room password",onClick:async()=>{try{P(null),await WJ(jt,A),await U(),M(null),k("")}catch{P("save failed")}},className:"px-1.5 py-1 bg-accent hover:bg-accent/80 rounded text-xs text-white",children:"Save"}),d.jsx("button",{type:"button",title:"Clear room password",onClick:async()=>{try{P(null),await $J(jt),await U(),M(null),k("")}catch{P("clear failed")}},className:"px-1.5 py-1 border border-[#1e2a3a] rounded text-xs text-slate-400 hover:text-slate-200",children:"Clear"}),d.jsx("button",{type:"button",title:"Cancel",onClick:()=>{M(null),P(null)},className:"px-1.5 py-1 border border-[#1e2a3a] rounded text-xs text-slate-500 hover:text-slate-300",children:"Cancel"}),I&&d.jsx("span",{className:"text-[10px] text-red-400",children:I})]})]})})()]}):d.jsx("input",{type:"text",value:St,onChange:jt=>{const Lr=jt.target.value;re(ne,et,Lr===""?null:Lr)},placeholder:"channel",className:"w-40 px-2 py-1 bg-[#0a0e17] border border-[#1e2a3a] rounded text-xs text-slate-200 font-mono focus:outline-none focus:border-accent"})]},et)})}))]})]},ne)})})]})]})}function f2e(){const{setDirty:e}=$i(),[t,r]=E.useState(null),[n,a]=E.useState(null),[i,o]=E.useState(null),[s,l]=E.useState(null),[u,c]=E.useState(!0),[h,f]=E.useState(!1),[v,g]=E.useState(null),[m,y]=E.useState(null),[x,_]=E.useState(!1),[w,S]=E.useState(!1),[C,M]=E.useState([]),[A,k]=E.useState({}),[I,P]=E.useState(new Set),[j,z]=E.useState(null),[D,B]=E.useState(""),[H,V]=E.useState(""),[U,F]=E.useState(!1),[W,$]=E.useState(null),[Z,J]=E.useState(""),[re,Q]=E.useState(""),[le,de]=E.useState(!1),[He,ye]=E.useState(null),[ne,xe]=E.useState(null),he=E.useCallback(async()=>{c(!0);try{const[ce,st]=await Promise.all([Ao("connection"),Ao("meshcore_context")]);r(ce),a(JSON.parse(JSON.stringify(ce))),o(st),l(JSON.parse(JSON.stringify(st))),_(!1),g(null)}catch(ce){g(ce instanceof Error?ce.message:"Unknown error")}finally{c(!1)}},[]);E.useEffect(()=>{document.title="MeshCore Connection - MeshAI",he()},[he]);const ge=E.useCallback(async()=>{try{const ce=await YV(),st=ce.channels.map(Ft=>Ft.name),Bt={};for(const Ft of ce.channels)Bt[Ft.name]=Ft.key;S(ce.active),M(st),k(Bt),B(Ft=>Ft&&st.includes(Ft)?Ft:st[0]??"")}catch{try{const ce=await VJ();S(ce.active),M(ce.channels),k({}),B(st=>st&&ce.channels.includes(st)?st:ce.channels[0]??"")}catch{S(!1)}}},[]);E.useEffect(()=>{ge()},[ge]);const tt=ce=>{P(st=>{const Bt=new Set(st);return Bt.has(ce)?Bt.delete(ce):Bt.add(ce),Bt})},Ue=async(ce,st)=>{try{await navigator.clipboard.writeText(st),z(ce),setTimeout(()=>z(Bt=>Bt===ce?null:Bt),1500)}catch{P(Bt=>new Set(Bt).add(ce))}},qe=async()=>{const ce=Z.trim();if(ce){de(!0),xe(null);try{await GJ(ce,re.trim()),J(""),Q(""),await ge()}catch(st){xe(st instanceof Error?st.message:"Failed to add channel")}finally{de(!1)}}},Fe=async ce=>{ye(ce),xe(null);try{await HJ(ce),o(st=>!st||!(st.observe_channels??[]).includes(ce)?st:{...st,observe_channels:(st.observe_channels??[]).filter(Bt=>Bt!==ce)}),await ge()}catch(st){xe(st instanceof Error?st.message:"Failed to remove channel")}finally{ye(null)}},_t=async()=>{F(!0),$(null);try{const ce=await XV({transport:"meshcore",channel:D,text:H.trim()||void 0});$(ce)}catch(ce){$({sent:!1,detail:ce instanceof Error?ce.message:"Send failed"})}finally{F(!1)}};E.useEffect(()=>{if(t&&n&&i&&s){const ce=JSON.stringify(t)!==JSON.stringify(n)||JSON.stringify(i)!==JSON.stringify(s);_(ce)}},[t,n,i,s]),E.useEffect(()=>(e(x),()=>e(!1)),[x,e]);const bt=ce=>r(st=>st&&{...st,...ce}),et=async()=>{if(!(!t||!i)){f(!0),g(null),y(null);try{const ce=await Promise.all([ja("connection",t),ja("meshcore_context",i)]);a(JSON.parse(JSON.stringify(t))),l(JSON.parse(JSON.stringify(i))),_(!1),e(!1),y("MeshCore connection saved successfully"),ce.some(st=>st.restart_required)&&bu([]),setTimeout(()=>y(null),3e3)}catch(ce){g(ce instanceof Error?ce.message:"Save failed")}finally{f(!1)}}},Ke=()=>{n&&r(JSON.parse(JSON.stringify(n))),s&&o(JSON.parse(JSON.stringify(s))),_(!1)},St=ce=>{o(st=>{if(!st)return st;const Bt=st.observe_channels??[],Ft=Bt.includes(ce)?Bt.filter(jt=>jt!==ce):[...Bt,ce];return{...st,observe_channels:Ft}})};return u?d.jsx("div",{className:"flex items-center justify-center h-64",children:d.jsx("div",{className:"text-slate-400",children:"Loading MeshCore connection..."})}):t?d.jsxs("div",{className:"max-w-2xl mx-auto space-y-6",children:[d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsx("div",{children:d.jsx("p",{className:"text-sm text-slate-500",children:"MeshCore node connection."})}),d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx("button",{onClick:he,className:"p-2 text-slate-400 hover:text-slate-200 hover:bg-bg-hover rounded transition-colors",title:"Refresh",children:d.jsx(Zi,{size:18})}),d.jsxs("button",{onClick:Ke,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:[d.jsx(xa,{size:16}),"Discard"]}),d.jsxs("button",{onClick:et,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:[d.jsx(_a,{size:16}),h?"Saving...":"Save"]})]})]}),v&&d.jsx("div",{className:"p-3 text-sm bg-red-500/10 text-red-400 border border-red-500/20",children:v}),m&&d.jsxs("div",{className:"p-3 text-sm bg-green-500/10 text-green-400 border border-green-500/20",children:[d.jsx(Yr,{size:14,className:"inline mr-2"}),m]}),d.jsxs("div",{className:"bg-bg-card border border-border p-6 space-y-4",children:[d.jsx("div",{className:"text-xs text-slate-500 uppercase tracking-wide",children:"MeshCore Connection"}),d.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."}),d.jsx(jn,{label:"Connection Type",value:t.meshcore_conn_type??"tcp",onChange:ce=>bt({meshcore_conn_type:ce}),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"&&d.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[d.jsx(gt,{label:"MeshCore Host",value:t.meshcore_host??"",onChange:ce=>bt({meshcore_host:ce}),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."}),d.jsx(Ne,{label:"MeshCore Port",value:t.meshcore_port??5525,onChange:ce=>bt({meshcore_port:ce}),min:1,max:65535,helper:"MeshCore TCP port (default 5525)"})]}),(t.meshcore_conn_type??"tcp")==="serial"&&d.jsxs(d.Fragment,{children:[d.jsx(NZ,{label:"MeshCore Serial Port",value:t.meshcore_serial_port??"",onChange:ce=>bt({meshcore_serial_port:ce}),helper:"USB-attached MeshCore node — Detect fills a stable by-id path"}),d.jsx(Ne,{label:"Baud Rate",value:t.meshcore_baud??115200,onChange:ce=>bt({meshcore_baud:ce}),min:1200,helper:"Serial baud rate (default 115200)"})]}),(t.meshcore_conn_type??"tcp")==="ble"&&d.jsx(gt,{label:"BLE Address",value:t.meshcore_ble_address??"",onChange:ce=>bt({meshcore_ble_address:ce}),placeholder:"AA:BB:CC:DD:EE:FF",helper:"Leave blank to scan/pair the first available device"}),d.jsx("div",{className:"pt-2",children:d.jsx(uf,{to:"/meshtastic/connection",className:"inline-flex items-center gap-1 text-xs text-slate-500 hover:text-accent transition-colors",children:"→ Meshtastic connection"})}),d.jsx(qt,{label:"Auto-add contacts (AIDA adds any node it hears — required to DM anyone)",checked:t.meshcore_auto_add_contacts??!0,onChange:ce=>bt({meshcore_auto_add_contacts:ce}),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"}),d.jsxs("details",{className:"group",children:[d.jsxs("summary",{className:"flex items-center gap-2 cursor-pointer text-sm text-slate-400 hover:text-slate-200",children:[d.jsx(Ah,{size:14,className:"group-open:rotate-90 transition-transform"}),"Advanced — MeshCore Reconnect"]}),d.jsxs("div",{className:"mt-4 space-y-4 pl-6 border-l border-[#1e2a3a]",children:[d.jsx(qt,{label:"Auto-reconnect (MeshCore)",checked:t.meshcore_auto_reconnect??!0,onChange:ce=>bt({meshcore_auto_reconnect:ce}),helper:"Automatically reconnect to the MeshCore companion if the link drops"}),d.jsx(Ne,{label:"Max Reconnect Attempts",value:t.meshcore_max_reconnect_attempts??5,onChange:ce=>bt({meshcore_max_reconnect_attempts:ce}),min:0,helper:"Maximum reconnect attempts before giving up (0 = unlimited)"})]})]})]}),i&&d.jsxs("div",{className:"bg-bg-card border border-border p-6 space-y-4",children:[d.jsx("div",{className:"text-xs text-slate-500 uppercase tracking-wide",children:"Bot behavior"}),d.jsx(qt,{label:"Enable Passive Context",checked:!!i.enable_passive_context,onChange:ce=>o({...i,enable_passive_context:ce}),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."}),d.jsxs("div",{className:"space-y-1",children:[d.jsx("label",{className:"block text-xs text-slate-500 uppercase tracking-wide",children:"Observe MeshCore Channels"}),d.jsxs("div",{className:"border border-[#1e2a3a] p-2 space-y-1",children:[C.map(ce=>{const st=(i.observe_channels??[]).includes(ce),Bt=A[ce]??null,Ft=I.has(ce);return d.jsxs("div",{className:"flex items-center gap-2 p-2 rounded hover:bg-[#0a0e17]",children:[d.jsxs("label",{onClick:()=>St(ce),className:"flex items-center gap-2 cursor-pointer shrink-0",children:[d.jsx("div",{className:`w-4 h-4 rounded border flex items-center justify-center ${st?"bg-accent border-accent":"border-slate-600"}`,children:st&&d.jsx(Yr,{size:12,className:"text-white"})}),d.jsx("span",{className:"text-sm text-slate-200",children:ce})]}),d.jsx("div",{className:"flex items-center gap-1 flex-1 min-w-0 justify-end",children:Bt?d.jsxs(d.Fragment,{children:[d.jsx("code",{title:Ft?Bt:"Key hidden — click the eye to reveal",className:"text-xs font-mono text-slate-400 truncate max-w-[16rem]",children:Ft?Bt:"••••••••••••••••"}),d.jsx("button",{type:"button",title:Ft?"Hide key":"Reveal key","aria-label":Ft?`Hide key for ${ce}`:`Reveal key for ${ce}`,onClick:()=>tt(ce),className:"p-1 text-slate-600 hover:text-slate-300",children:Ft?d.jsx(h1,{size:14}):d.jsx(rv,{size:14})}),d.jsx("button",{type:"button",title:"Copy key to clipboard","aria-label":`Copy key for ${ce}`,onClick:()=>Ue(ce,Bt),className:"p-1 text-slate-600 hover:text-accent",children:j===ce?d.jsx(Yr,{size:14,className:"text-green-400"}):d.jsx(DV,{size:14})})]}):d.jsx("span",{className:"text-xs font-mono text-slate-600",title:"No retrievable key for this channel",children:"—"})}),d.jsx("button",{type:"button",title:`Remove channel '${ce}' from the companion`,"aria-label":`Remove channel ${ce}`,disabled:He===ce,onClick:()=>Fe(ce),className:"p-1 text-slate-600 hover:text-red-400 disabled:opacity-50 disabled:cursor-not-allowed shrink-0",children:d.jsx(ui,{size:14})})]},ce)}),C.length===0&&d.jsxs("div",{className:"text-sm text-slate-500 p-2",children:["No channels available",w?"":" (MeshCore not connected)"]})]}),d.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. Each channel's key (PSK) is shown on the right — reveal and copy it to share with people who want to join."}),d.jsxs("div",{className:"flex items-end gap-2 pt-2",children:[d.jsxs("div",{className:"flex-1 space-y-1",children:[d.jsx("label",{className:"block text-xs text-slate-500 uppercase tracking-wide",children:"Name"}),d.jsx("input",{type:"text",value:Z,onChange:ce=>J(ce.target.value),placeholder:"#channel-name",disabled:!w,className:"w-full px-2 py-1.5 bg-[#0a0e17] border border-[#1e2a3a] rounded text-sm text-slate-200 focus:outline-none focus:border-accent disabled:opacity-50"})]}),d.jsxs("div",{className:"flex-1 space-y-1",children:[d.jsx("label",{className:"block text-xs text-slate-500 uppercase tracking-wide",children:"Key"}),d.jsx("input",{type:"text",value:re,onChange:ce=>Q(ce.target.value),placeholder:"PSK hex (32 chars) — leave blank for public #channel",disabled:!w,className:"w-full px-2 py-1.5 bg-[#0a0e17] border border-[#1e2a3a] rounded text-sm text-slate-200 focus:outline-none focus:border-accent disabled:opacity-50"})]}),d.jsx("button",{type:"button",onClick:qe,disabled:!w||le||!Z.trim(),className:"px-3 py-1.5 bg-accent hover:bg-accent/80 disabled:opacity-50 disabled:cursor-not-allowed rounded text-sm text-white whitespace-nowrap",children:le?"Saving…":"Save"})]}),ne&&d.jsx("p",{className:"text-xs text-red-400",children:ne})]}),d.jsx(Dn,{label:"Ignore MeshCore Contacts",value:i.ignore_contacts??[],onChange:ce=>o({...i,ignore_contacts:ce}),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."}),d.jsx(qt,{label:"Answer direct messages",checked:!!i.respond_to_dms,onChange:ce=>o({...i,respond_to_dms:ce}),helper:"When on, MeshAI replies to MeshCore direct messages using the LLM. Applies to MeshCore only."})]}),d.jsxs("div",{className:`bg-bg-card border border-border p-6 space-y-4${w?"":" opacity-60"}`,children:[d.jsx("div",{className:"text-xs text-slate-500 uppercase tracking-wide",children:"Send Test Message"}),w?d.jsxs(d.Fragment,{children:[d.jsxs("div",{className:"space-y-1",children:[d.jsx("label",{className:"text-xs text-slate-500 uppercase tracking-wide",children:"Channel"}),d.jsx("select",{value:D,onChange:ce=>B(ce.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(ce=>d.jsx("option",{value:ce,children:ce},ce))})]}),d.jsx(gt,{label:"Message (optional)",value:H,onChange:V,placeholder:`🧪 MeshAI test — ${new Date().toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!1})}`}),d.jsx("button",{onClick:_t,disabled:U,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:U?"Sending...":"Send test"}),W&&(W.sent?d.jsxs("div",{className:"p-3 text-sm bg-green-500/10 text-green-400 border border-green-500/20",children:[d.jsx(Yr,{size:14,className:"inline mr-2"}),W.detail]}):d.jsx("div",{className:"p-3 text-sm bg-red-500/10 text-red-400 border border-red-500/20",children:W.detail}))]}):d.jsx("p",{className:"text-sm text-slate-500",children:"MeshCore not connected"})]})]}):d.jsx("div",{className:"flex items-center justify-center h-64",children:d.jsx("div",{className:"text-red-400",children:"Failed to load connection config"})})}const v2e={serial:"bg-emerald-500/15 text-emerald-400",tcp:"bg-sky-500/15 text-sky-400",ble:"bg-violet-500/15 text-violet-400"};function p2e(e){return e?e.target?e.target:e.conn_type==="serial"?e.serial_port?`${e.serial_port}@${e.baud??115200}`:"serial":e.conn_type==="ble"?e.ble_address||"ble":e.host?`${e.host}${e.port!=null?`:${e.port}`:""}`:"—":"—"}function g2e(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 zZ(){const[e,t]=E.useState(null),[r,n]=E.useState(null),[a,i]=E.useState(!0),[o,s]=E.useState(null),[l,u]=E.useState(null),[c,h]=E.useState(!1),[f,v]=E.useState(null),[g,m]=E.useState(24),[y,x]=E.useState(!1),[_,w]=E.useState(!1),[S,C]=E.useState(null),[M,A]=E.useState(null);E.useEffect(()=>{document.title="Companion & Channels - MeshAI"},[]),E.useEffect(()=>{let D=!1;return(async()=>{i(!0),s(null);try{const[B,H]=await Promise.all([Uj(),YV()]);if(D)return;t(B),n(H)}catch(B){if(D)return;s(B instanceof Error?B.message:"Failed to load companion status")}finally{D||i(!1)}})(),()=>{D=!0}},[]),E.useEffect(()=>{(async()=>{try{const D=await fetch("/api/config/connection");if(D.ok){const B=await D.json();A(B);const H=B.meshcore_advert_interval_seconds;typeof H=="number"&&m(H>0?H/3600:0)}}catch{}})()},[]);const k=E.useCallback(async()=>{h(!0),v(null);try{const D=await KJ();if(v(D),D.sent)try{const B=await Uj();t(B)}catch{}}catch(D){v({sent:!1,detail:D instanceof Error?D.message:"Request failed"})}finally{h(!1)}},[]),I=E.useCallback(async()=>{x(!0),w(!1),C(null);try{const D=Math.round(g*3600),B=M??{};await ja("connection",{...B,meshcore_advert_interval_seconds:D}),A({...B,meshcore_advert_interval_seconds:D}),w(!0),setTimeout(()=>w(!1),2e3)}catch(D){C(D instanceof Error?D.message:"Save failed")}finally{x(!1)}},[g,M]),P=E.useCallback(async D=>{try{await navigator.clipboard.writeText(D),u(D),setTimeout(()=>u(B=>B===D?null:B),1500)}catch{}},[]),j=(e==null?void 0:e.connected)===!0,z=r!=null&&r.active?r.channels:[];return d.jsxs("div",{className:"max-w-3xl mx-auto space-y-4",children:[d.jsxs("div",{className:"flex items-center gap-4",children:[d.jsx("div",{className:"flex-shrink-0 w-12 h-12 rounded-lg bg-[#0a0e17] border border-[#1e2a3a] flex items-center justify-center",children:d.jsx(_k,{size:24,className:"text-accent"})}),d.jsxs("div",{children:[d.jsx("h2",{className:"text-xl font-semibold text-slate-100",children:"Companion & Channels"}),d.jsx("p",{className:"text-sm text-[#777]",children:"Live status for the AIDA MeshCore companion and its joined channels."})]})]}),a?d.jsx("div",{className:"flex items-center justify-center h-32",children:d.jsx("div",{className:"text-slate-400",children:"Loading..."})}):o?d.jsx("div",{className:"p-3 text-sm bg-red-500/10 text-red-400 border border-red-500/20",children:o}):d.jsxs(d.Fragment,{children:[d.jsx("div",{className:"bg-bg-card border border-border p-6",children:j?d.jsxs("div",{className:"space-y-4",children:[d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx("span",{className:"w-2.5 h-2.5 rounded-full bg-green-500"}),d.jsx("span",{className:"text-sm font-medium text-green-400",children:"Connected"})]}),d.jsxs("dl",{className:"grid grid-cols-1 sm:grid-cols-2 gap-x-8 gap-y-4 text-sm",children:[d.jsxs("div",{children:[d.jsx("dt",{className:"text-[#777] mb-1",children:"Node name"}),d.jsx("dd",{className:"text-slate-100",children:(e==null?void 0:e.name)??"unnamed"})]}),d.jsxs("div",{children:[d.jsx("dt",{className:"text-[#777] mb-1",children:"Connection"}),d.jsxs("dd",{className:"flex items-center gap-2",children:[d.jsx("span",{className:`px-1.5 py-0.5 text-[10px] uppercase tracking-wide rounded ${v2e[(e==null?void 0:e.conn_type)??""]??"bg-slate-600/30 text-slate-400"}`,children:(e==null?void 0:e.conn_type)??"unknown"}),d.jsx("span",{className:"text-slate-100 font-mono text-xs break-all",children:p2e(e)})]})]}),d.jsxs("div",{className:"sm:col-span-2",children:[d.jsx("dt",{className:"text-[#777] mb-1",children:"Public key"}),d.jsx("dd",{className:"text-slate-100 font-mono text-xs break-all",children:(e==null?void 0:e.pubkey)??"—"})]}),d.jsxs("div",{children:[d.jsx("dt",{className:"text-[#777] mb-1",children:"Channels joined"}),d.jsx("dd",{className:"text-slate-100",children:(e==null?void 0:e.channel_count)??0})]}),(e==null?void 0:e.last_advert_sent)!=null&&d.jsxs("div",{children:[d.jsx("dt",{className:"text-[#777] mb-1",children:"Last advertised"}),d.jsx("dd",{className:"text-slate-100",children:g2e(e.last_advert_sent)})]})]}),d.jsxs("div",{className:"pt-2 border-t border-border space-y-2",children:[d.jsxs("div",{className:"flex items-center gap-3",children:[d.jsxs("button",{onClick:k,disabled:c,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:[d.jsx(bi,{size:14}),c?"Sending…":"Send Advert"]}),f!=null&&d.jsx("span",{className:`text-sm ${f.sent?"text-green-400":"text-red-400"}`,children:f.sent?"Advert sent":f.detail})]}),d.jsx("p",{className:"text-xs text-[#555]",children:"Announce this node to the mesh so others can discover and DM it."})]})]}):d.jsxs("div",{className:"space-y-2",children:[d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx("span",{className:"w-2.5 h-2.5 rounded-full bg-slate-600"}),d.jsx("span",{className:"text-sm font-medium text-slate-400",children:"Not connected"})]}),d.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."})]})}),d.jsxs("div",{className:"bg-bg-card border border-border",children:[d.jsxs("div",{className:"px-4 py-3 border-b border-border",children:[d.jsx("h3",{className:"text-sm font-medium text-slate-200",children:"Channels"}),d.jsx("p",{className:"text-xs text-[#555] mt-1",children:"Key = the channel PSK; enter it (or the # name) on a companion radio to join."})]}),z.length>0?d.jsx("div",{className:"overflow-x-auto",children:d.jsxs("table",{className:"w-full text-sm text-slate-200",children:[d.jsx("thead",{className:"bg-[#161616] border-b border-border",children:d.jsxs("tr",{children:[d.jsx("th",{className:"px-3 py-2 font-sans text-[9px] uppercase tracking-widest text-[#666] text-left",children:"Name"}),d.jsx("th",{className:"px-3 py-2 font-sans text-[9px] uppercase tracking-widest text-[#666] text-left",children:"On-air hash"}),d.jsx("th",{className:"px-3 py-2 font-sans text-[9px] uppercase tracking-widest text-[#666] text-left",children:"Key"})]})}),d.jsx("tbody",{className:"divide-y divide-border",children:z.map(D=>d.jsxs("tr",{className:"hover:bg-bg-hover",children:[d.jsx("td",{className:"px-3 py-2 font-mono",children:D.name}),d.jsx("td",{className:"px-3 py-2 font-mono text-xs text-[#999]",children:D.hash!=null?`0x${D.hash}`:"—"}),d.jsx("td",{className:"px-3 py-2",children:D.key!=null?d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx("span",{className:"font-mono text-xs text-[#999] break-all",children:D.key}),d.jsx("button",{onClick:()=>P(D.key),className:"flex-shrink-0 px-2 py-0.5 text-[10px] bg-accent/10 hover:bg-accent/20 text-accent border border-accent/30 rounded transition-colors",title:"Copy key to clipboard",children:l===D.key?"Copied":"Copy"})]}):d.jsx("span",{className:"text-xs text-[#777]",children:"—"})})]},D.name))})]})}):d.jsx("div",{className:"px-4 py-3 text-sm text-[#777]",children:"No channels"})]}),d.jsxs("div",{className:"bg-bg-card border border-border",children:[d.jsx("div",{className:"px-4 py-3 border-b border-border",children:d.jsx("h3",{className:"text-sm font-medium text-slate-200",children:"Advertising"})}),d.jsx("div",{className:"px-4 py-4 space-y-4",children:d.jsxs("div",{className:"space-y-1",children:[d.jsx("label",{className:"text-xs font-medium text-[#777] uppercase tracking-wide",children:"Auto-advert interval"}),d.jsxs("div",{className:"flex items-center gap-3",children:[d.jsxs("select",{value:g,onChange:D=>m(Number(D.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:[d.jsx("option",{value:0,children:"Disabled"}),d.jsx("option",{value:1,children:"Every 1 hour"}),d.jsx("option",{value:3,children:"Every 3 hours"}),d.jsx("option",{value:6,children:"Every 6 hours"}),d.jsx("option",{value:12,children:"Every 12 hours"}),d.jsx("option",{value:24,children:"Every 24 hours (default)"})]}),d.jsx("button",{onClick:I,disabled:y,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:y?"Saving…":_?"Saved":"Save"})]}),S&&d.jsxs("p",{className:"text-xs text-red-400",role:"alert",children:["Save failed — ",S]}),d.jsxs("p",{className:"text-xs text-[#555]",children:["AIDA sends a flood advertisement at this interval so it stays discoverable. Stored in ",d.jsx("code",{className:"text-accent/80",children:"connection.meshcore_advert_interval_seconds"}),"."]})]})})]})]})]})}function m2e(){const{setDirty:e}=$i(),[t,r]=E.useState(null),[n,a]=E.useState(null),[i,o]=E.useState(null),[s,l]=E.useState(null),[u,c]=E.useState(null),[h,f]=E.useState(null),[v,g]=E.useState(!0),[m,y]=E.useState(!1),[x,_]=E.useState(null),[w,S]=E.useState(null),[C,M]=E.useState(!1),[A,k]=E.useState(0),[I,P]=E.useState(""),[j,z]=E.useState(!1),[D,B]=E.useState(null),H=async()=>{z(!0),B(null);try{const W=await XV({transport:"meshtastic",channel:A,text:I.trim()||void 0});B(W)}catch(W){B({sent:!1,detail:W instanceof Error?W.message:"Send failed"})}finally{z(!1)}},V=E.useCallback(async()=>{g(!0);try{const[W,$,Z]=await Promise.all([Ao("connection"),Ao("context"),Ao("bot")]);r(W),a(JSON.parse(JSON.stringify(W))),o($),l(JSON.parse(JSON.stringify($))),c(Z),f(JSON.parse(JSON.stringify(Z))),M(!1),_(null)}catch(W){_(W instanceof Error?W.message:"Unknown error")}finally{g(!1)}},[]);E.useEffect(()=>{document.title="Meshtastic Connection - MeshAI",V()},[V]),E.useEffect(()=>{if(t&&n&&i&&s&&u&&h){const W=JSON.stringify(t)!==JSON.stringify(n)||JSON.stringify(i)!==JSON.stringify(s)||JSON.stringify(u)!==JSON.stringify(h);M(W)}},[t,n,i,s,u,h]),E.useEffect(()=>(e(C),()=>e(!1)),[C,e]);const U=async()=>{if(!(!t||!i||!u)){y(!0),_(null),S(null);try{const W=await Promise.all([ja("connection",t),ja("context",i),ja("bot",u)]);a(JSON.parse(JSON.stringify(t))),l(JSON.parse(JSON.stringify(i))),f(JSON.parse(JSON.stringify(u))),M(!1),e(!1),S("Meshtastic connection saved successfully"),W.some($=>$.restart_required)&&bu([]),setTimeout(()=>S(null),3e3)}catch(W){_(W instanceof Error?W.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?d.jsx("div",{className:"flex items-center justify-center h-64",children:d.jsx("div",{className:"text-slate-400",children:"Loading Meshtastic connection..."})}):t?d.jsxs("div",{className:"max-w-2xl mx-auto space-y-6",children:[d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsx("div",{children:d.jsx("p",{className:"text-sm text-slate-500",children:"Connection to your Meshtastic radio (serial or TCP)."})}),d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx("button",{onClick:V,className:"p-2 text-slate-400 hover:text-slate-200 hover:bg-bg-hover rounded transition-colors",title:"Refresh",children:d.jsx(Zi,{size:18})}),d.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:[d.jsx(xa,{size:16}),"Discard"]}),d.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:[d.jsx(_a,{size:16}),m?"Saving...":"Save"]})]})]}),x&&d.jsx("div",{className:"p-3 text-sm bg-red-500/10 text-red-400 border border-red-500/20",children:x}),w&&d.jsxs("div",{className:"p-3 text-sm bg-green-500/10 text-green-400 border border-green-500/20",children:[d.jsx(Yr,{size:14,className:"inline mr-2"}),w]}),d.jsx("div",{className:"bg-bg-card border border-border p-6",children:d.jsx(yCe,{data:t,onChange:r})}),d.jsx("div",{className:"bg-bg-card border border-border p-6",children:d.jsxs("details",{className:"group",children:[d.jsxs("summary",{className:"flex items-center gap-2 cursor-pointer text-sm text-slate-400 hover:text-slate-200",children:[d.jsx(Ah,{size:14,className:"group-open:rotate-90 transition-transform"}),"Advanced — Reconnect & Packet Tuning"]}),d.jsxs("div",{className:"mt-4 space-y-4 pl-6 border-l border-[#1e2a3a]",children:[d.jsx(qt,{label:"Auto-reconnect",checked:t.reconnect??!0,onChange:W=>r({...t,reconnect:W}),helper:"Automatically reconnect if the mesh link drops"}),d.jsx(Ne,{label:"Reconnect Initial Delay (s)",value:t.reconnect_initial_delay??2,onChange:W=>r({...t,reconnect_initial_delay:W}),min:0,step:.5,helper:"Backoff delay before the first reconnect attempt"}),d.jsx(Ne,{label:"Reconnect Max Delay (s)",value:t.reconnect_max_delay??60,onChange:W=>r({...t,reconnect_max_delay:W}),min:0,helper:"Ceiling for exponential reconnect backoff"}),d.jsx(Ne,{label:"Reconnect Health Interval (s)",value:t.reconnect_health_interval??30,onChange:W=>r({...t,reconnect_health_interval:W}),min:1,helper:"How often the socket-probe watchdog checks link health"}),d.jsx(Ne,{label:"Mesh Max Chars",value:t.mesh_max_chars??140,onChange:W=>r({...t,mesh_max_chars:W}),min:1,helper:"Per-packet character budget for the transport"})]})]})}),i&&u&&d.jsxs("div",{className:"bg-bg-card border border-border p-6 space-y-4",children:[d.jsx("div",{className:"text-xs text-slate-500 uppercase tracking-wide",children:"Bot behavior"}),d.jsx(qt,{label:"Enable Passive Context",checked:!!i.enabled,onChange:W=>o({...i,enabled:W}),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."}),d.jsx(jP,{label:"Observe Channels",value:i.observe_channels??[],onChange:W=>o({...i,observe_channels:W}),helper:"Channels to monitor (empty = all)",info:"Meshtastic channels to listen on. Leave empty to monitor all channels.",mode:"multi"}),d.jsx(DP,{label:"Ignore Nodes",value:i.ignore_nodes??[],onChange:W=>o({...i,ignore_nodes:W}),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."}),d.jsx(qt,{label:"Answer direct messages",checked:!!u.respond_to_dms,onChange:W=>c({...u,respond_to_dms:W}),helper:"When on, MeshAI replies to Meshtastic direct messages using the LLM. Applies to Meshtastic only."})]}),d.jsxs("div",{className:"bg-bg-card border border-border p-6 space-y-4",children:[d.jsx("div",{className:"text-xs text-slate-500 uppercase tracking-wide",children:"Send Test Message"}),d.jsx(Ne,{label:"Channel Index",value:A,onChange:k,min:0,max:7,helper:"Meshtastic channel number (0 = primary)"}),d.jsx(gt,{label:"Message (optional)",value:I,onChange:P,placeholder:`🧪 MeshAI test — ${new Date().toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!1})}`}),d.jsx("button",{onClick:H,disabled:j,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:j?"Sending...":"Send test"}),D&&(D.sent?d.jsxs("div",{className:"p-3 text-sm bg-green-500/10 text-green-400 border border-green-500/20",children:[d.jsx(Yr,{size:14,className:"inline mr-2"}),D.detail]}):d.jsx("div",{className:"p-3 text-sm bg-red-500/10 text-red-400 border border-red-500/20",children:D.detail}))]})]}):d.jsx("div",{className:"flex items-center justify-center h-64",children:d.jsx("div",{className:"text-red-400",children:"Failed to load connection config"})})}function BZ(){const{setDirty:e}=$i(),[t,r]=E.useState(null),[n,a]=E.useState(null),[i,o]=E.useState(null),[s,l]=E.useState(null),[u,c]=E.useState(!0),[h,f]=E.useState(!1),[v,g]=E.useState(null),[m,y]=E.useState(null),[x,_]=E.useState(!1),w=E.useCallback(async()=>{c(!0);try{const[M,A]=await Promise.all([Ao("meshmonitor"),Ao("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)}},[]);E.useEffect(()=>{document.title="Meshtastic Sources - MeshAI",w()},[w]),E.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]),E.useEffect(()=>(e(x),()=>e(!1)),[x,e]);const S=async()=>{if(!(!t||!i)){f(!0),g(null),y(null);try{const[M,A]=await Promise.all([ja("meshmonitor",t),ja("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)&&bu([]),setTimeout(()=>y(null),3e3)}catch(M){g(M instanceof Error?M.message:"Save failed")}finally{f(!1)}}},C=()=>{n&&r(JSON.parse(JSON.stringify(n))),s&&o(JSON.parse(JSON.stringify(s))),_(!1)};return u?d.jsx("div",{className:"flex items-center justify-center h-64",children:d.jsx("div",{className:"text-slate-400",children:"Loading Meshtastic sources..."})}):!t||!i?d.jsx("div",{className:"flex items-center justify-center h-64",children:d.jsx("div",{className:"text-red-400",children:"Failed to load sources config"})}):d.jsxs("div",{className:"max-w-2xl mx-auto space-y-6",children:[d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsx("div",{children:d.jsx("p",{className:"text-sm text-slate-500",children:"MeshMonitor integration and mesh awareness data sources."})}),d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx("button",{onClick:w,className:"p-2 text-slate-400 hover:text-slate-200 hover:bg-bg-hover rounded transition-colors",title:"Refresh",children:d.jsx(Zi,{size:18})}),d.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:[d.jsx(xa,{size:16}),"Discard"]}),d.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:[d.jsx(_a,{size:16}),h?"Saving...":"Save"]})]})]}),v&&d.jsx("div",{className:"p-3 text-sm bg-red-500/10 text-red-400 border border-red-500/20",children:v}),m&&d.jsxs("div",{className:"p-3 text-sm bg-green-500/10 text-green-400 border border-green-500/20",children:[d.jsx(Yr,{size:14,className:"inline mr-2"}),m]}),d.jsx("div",{className:"bg-bg-card border border-border p-6",children:d.jsx(MCe,{data:t,onChange:r})}),d.jsx("div",{className:"bg-bg-card border border-border p-6",children:d.jsx(kCe,{data:i,onChange:o})})]})}const y2e=[{key:"gauge-sites",label:"Gauge Sites"},{key:"town-anchors",label:"Town Anchors"}];function x2e(){const[e,t]=E.useState("gauge-sites");return E.useEffect(()=>{document.title="Places - MeshAI"},[]),d.jsxs("div",{className:"space-y-4",children:[d.jsx("div",{className:"flex gap-1 border-b border-border",children:y2e.map(({key:r,label:n})=>d.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"&&d.jsx(RZ,{}),e==="town-anchors"&&d.jsx(OZ,{})]})}const _2e=[{key:"nodes",label:"Nodes"},{key:"sources",label:"Sources"},{key:"health",label:"Health"}];function b2e(){const[e,t]=E.useState("nodes"),{setDirty:r}=$i(),[n,a]=E.useState(null),[i,o]=E.useState(null),[s,l]=E.useState(!1),[u,c]=E.useState(!1),[h,f]=E.useState(null),[v,g]=E.useState(null),[m,y]=E.useState(!1);E.useEffect(()=>{document.title="Nodes & Health - MeshAI"},[]);const x=E.useCallback(async()=>{l(!0),f(null);try{const S=await Ao("mesh_intelligence");a(S),o(JSON.parse(JSON.stringify(S))),y(!1)}catch(S){f(S instanceof Error?S.message:"Failed to load mesh intelligence config")}finally{l(!1)}},[]);E.useEffect(()=>{e==="health"&&n===null&&!s&&x()},[e,n,s,x]),E.useEffect(()=>{n&&i&&y(JSON.stringify(n)!==JSON.stringify(i))},[n,i]),E.useEffect(()=>(r(m),()=>r(!1)),[m,r]);const _=async()=>{if(n){c(!0),f(null),g(null);try{const S=await ja("mesh_intelligence",n);o(JSON.parse(JSON.stringify(n))),y(!1),r(!1),g("Mesh intelligence saved successfully"),S.restart_required&&bu([]),setTimeout(()=>g(null),3e3)}catch(S){f(S instanceof Error?S.message:"Save failed")}finally{c(!1)}}},w=()=>{i&&a(JSON.parse(JSON.stringify(i))),y(!1)};return d.jsxs("div",{className:"space-y-4",children:[d.jsx("div",{className:"flex gap-1 border-b border-border",children:_2e.map(({key:S,label:C})=>d.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"&&d.jsx(AZ,{}),e==="sources"&&d.jsx(BZ,{}),e==="health"&&d.jsxs("div",{className:"max-w-2xl mx-auto space-y-6",children:[d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsx("div",{children:d.jsx("p",{className:"text-sm text-slate-500",children:"Mesh health scoring, region management, and automated alerting."})}),d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx("button",{onClick:x,className:"p-2 text-slate-400 hover:text-slate-200 hover:bg-bg-hover rounded transition-colors",title:"Refresh",children:d.jsx(Zi,{size:18})}),d.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:[d.jsx(xa,{size:16}),"Discard"]}),d.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:[d.jsx(_a,{size:16}),u?"Saving...":"Save"]})]})]}),h&&d.jsx("div",{className:"p-3 text-sm bg-red-500/10 text-red-400 border border-red-500/20",children:h}),v&&d.jsxs("div",{className:"p-3 text-sm bg-green-500/10 text-green-400 border border-green-500/20",children:[d.jsx(Yr,{size:14,className:"inline mr-2"}),v]}),s?d.jsx("div",{className:"flex items-center justify-center h-32",children:d.jsx("div",{className:"text-slate-400",children:"Loading..."})}):n?d.jsx("div",{className:"bg-bg-card border border-border p-6",children:d.jsx(kZ,{data:n,onChange:a})}):d.jsx("div",{className:"flex items-center justify-center h-32",children:d.jsx("div",{className:"text-red-400",children:"Failed to load config"})})]})]})}const w2e=15e3,Np=5,FZ=14,S2e=FZ*86400;function rT(e){return e.last_advert==null||e.last_advert<=0?!1:Math.floor(Date.now()/1e3)-e.last_advert>S2e}const C2e={room_not_found:"no room server with this key is on the companion",channel_not_found:"this channel is not on the companion",not_a_room:"this key belongs to a contact that is not a room server"};function eF(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`}function T2e(e){if(!e)return"—";const t=Date.parse(e);if(Number.isNaN(t))return"—";const r=Math.floor((Date.now()-t)/1e3);if(r<5)return"just now";if(r<60)return`${r}s ago`;const n=Math.floor(r/60);if(n<60)return`${n}m ago`;const a=Math.floor(n/60);return a<24?`${a}h ago`:`${Math.floor(a/24)}d ago`}const M2e={1:{label:"Chat",className:"bg-sky-500/15 text-sky-400"},2:{label:"Repeater",className:"bg-amber-500/15 text-amber-400"},3:{label:"Room",className:"bg-violet-500/15 text-violet-400"},4:{label:"Sensor",className:"bg-emerald-500/15 text-emerald-400"}};function A2e({type:e}){const t=e!=null&&M2e[e]||{label:"Unknown",className:"bg-slate-600/30 text-slate-400"};return d.jsx("span",{className:`px-2 py-0.5 text-[10px] uppercase tracking-wide rounded ${t.className}`,children:t.label})}function tF(e){return e.name?e.name:e.pubkey?`${e.pubkey.slice(0,12)}…`:"unnamed"}function nT(e){return e.pubkey||e.name||""}function aT(e){return e.length>12?`${e.slice(0,12)}…`:e}function N2e(e){return e.lat!=null&&e.lon!=null?`${e.lat.toFixed(4)}, ${e.lon.toFixed(4)}`:"—"}const k2e=[{key:"battery_pct",label:"Battery",unit:"%",digits:0},{key:"voltage",label:"Voltage",unit:"V",digits:2},{key:"temperature",label:"Temp",unit:"°C",digits:1},{key:"humidity",label:"Humidity",unit:"%",digits:0},{key:"current",label:"Current",unit:"A",digits:2},{key:"illuminance",label:"Light",unit:"lx",digits:0},{key:"barometer",label:"Pressure",unit:"hPa",digits:1},{key:"power",label:"Power",unit:"W",digits:1},{key:"altitude",label:"Alt",unit:"m",digits:0},{key:"distance",label:"Dist",unit:"m",digits:0}];function L2e({data:e,polledLabel:t}){const r=k2e.flatMap(n=>{const a=e[n.key];return typeof a!="number"||Number.isNaN(a)?[]:[d.jsxs("span",{className:"px-2 py-0.5 text-xs rounded bg-[#0a0e17] border border-[#1e2a3a] text-slate-200",children:[d.jsx("span",{className:"text-[#777]",children:n.label})," ",a.toFixed(n.digits),n.unit]},n.key)]});return d.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[r.length>0?r:d.jsx("span",{className:"text-xs text-[#777]",children:"Telemetry received (no standard sensor fields)"}),d.jsxs("span",{className:"text-[11px] text-[#777] ml-1",children:["polled ",t]})]})}function I2e(){const[e,t]=E.useState(null),[r,n]=E.useState(!0),[a,i]=E.useState(null),[o,s]=E.useState(null),[l,u]=E.useState(null),[c,h]=E.useState(null),[f,v]=E.useState(!1),[g,m]=E.useState(null),[y,x]=E.useState(null),[_,w]=E.useState(null),[S,C]=E.useState(!1),[M,A]=E.useState(""),[k,I]=E.useState(""),[P,j]=E.useState(1),[z,D]=E.useState(!1),[B,H]=E.useState(null),[V,U]=E.useState(null),[F,W]=E.useState(null),[$,Z]=E.useState(null),[J,re]=E.useState(""),[Q,le]=E.useState("all"),[de,He]=E.useState("name"),[ye,ne]=E.useState(!0),[xe,he]=E.useState(null),[ge,tt]=E.useState(null),[Ue,qe]=E.useState(null),[Fe,_t]=E.useState({}),[bt,et]=E.useState(null),[Ke,St]=E.useState(30),[ce,st]=E.useState(!1),[Bt,Ft]=E.useState(!1);E.useEffect(()=>{document.title="MeshCore Contacts - MeshAI"},[]),E.useEffect(()=>{let ue=!1;return(async()=>{n(!0),i(null);try{const Xe=await Hj();ue||(t(Xe),w(Xe.last_synced_at??null))}catch(Xe){ue||i(Xe instanceof Error?Xe.message:"Failed to load contacts")}finally{ue||n(!1)}})(),()=>{ue=!0}},[]);const jt=E.useCallback(async()=>{try{const ue=await qJ();h(ue)}catch{}},[]);E.useEffect(()=>{jt()},[jt]),E.useEffect(()=>{let ue=!1;return(async()=>{try{const Xe=await JJ();if(ue)return;s(Xe);const lt=Xe.meshcore_telemetry_interval_seconds;typeof lt=="number"&<>0&&St(Math.max(Np,Math.round(lt/60)))}catch{}})(),()=>{ue=!0}},[]),E.useEffect(()=>{let ue=!1;const Xe=async()=>{try{const Pt=await QJ();ue||u(Pt)}catch{}};Xe();const lt=setInterval(Xe,w2e);return()=>{ue=!0,clearInterval(lt)}},[]);const Lr=(o==null?void 0:o.meshcore_telemetry_contacts)??[],Qo=E.useCallback(ue=>((l==null?void 0:l.entries)??[]).find(lt=>lt.contact===ue.pubkey||ue.name!=null&<.contact===ue.name),[l]),tl=E.useCallback(ue=>Lr.includes(ue.pubkey)||ue.name!=null&&Lr.includes(ue.name),[Lr]),Ki=E.useCallback(async(ue,Xe)=>{if(!o)return;const lt=nT(ue);if(!lt)return;et(null),he(lt);const Pt=o.meshcore_telemetry_contacts??[];let fr;Xe?fr=Pt.includes(lt)?Pt:[...Pt,lt]:fr=Pt.filter(Ct=>Ct!==ue.pubkey&&Ct!==ue.name);const Tn={...o,meshcore_telemetry_contacts:fr};try{await ja("connection",Tn),s(Tn),tt(lt),setTimeout(()=>tt(Ct=>Ct===lt?null:Ct),1500)}catch(Ct){et(Ct instanceof Error?Ct.message:"Failed to save")}finally{he(Ct=>Ct===lt?null:Ct)}},[o]),Uh=E.useCallback(async ue=>{const Xe=nT(ue);if(Xe){qe(Xe);try{const lt=await eQ(Xe);_t(Pt=>({...Pt,[Xe]:lt}))}catch(lt){_t(Pt=>({...Pt,[Xe]:{available:!1,contact:Xe,detail:lt instanceof Error?lt.message:"Poll failed"}}))}finally{qe(lt=>lt===Xe?null:lt)}}},[]),Hn=E.useCallback(async()=>{v(!0),m(null),x(null),et(null);try{const ue=await ZJ();t({active:ue.active,contacts:ue.contacts}),w(ue.last_synced_at),m(ue.stats),x(ue.channel_stats),jt()}catch(ue){et(ue instanceof Error?ue.message:"Resync failed")}finally{v(!1)}},[jt]),es=E.useCallback(async()=>{var lt;const ue=k.trim().toLowerCase(),Xe=M.trim();if(!/^[0-9a-f]{64}$/.test(ue)){H("Pubkey must be exactly 64 hex characters (the full key, not a prefix)");return}if(!Xe){H("A name is required");return}D(!0),H(null);try{const Pt=await YJ([{pubkey:ue,name:Xe,type:P,flags:0,out_path_len:-1,out_path:"",last_advert:0}]);if(Pt.failed>0){H(((lt=Pt.errors[0])==null?void 0:lt.detail)||"Add failed");return}C(!1),A(""),I("");const fr=await Hj();t(fr),w(fr.last_synced_at??null),jt()}catch(Pt){H(Pt instanceof Error?Pt.message:"Add failed")}finally{D(!1)}},[k,M,P,jt]),ts=E.useCallback(()=>{window.location.href="/api/meshcore/contacts/export"},[]),Au=E.useCallback(async ue=>{W(ue.pubkey),et(null);try{const Xe=await XJ(ue.pubkey);t(lt=>({active:!0,contacts:Xe.contacts,last_synced_at:(lt==null?void 0:lt.last_synced_at)??null})),U(null),jt()}catch(Xe){et(Xe instanceof Error?Xe.message:"Delete failed")}finally{W(Xe=>Xe===ue.pubkey?null:Xe)}},[jt]),Wh=E.useCallback(async ue=>{try{await navigator.clipboard.writeText(ue)}catch{}},[]),Ga=E.useCallback(ue=>{He(Xe=>Xe===ue?(ne(lt=>!lt),Xe):(ne(!0),ue))},[]),$h=E.useMemo(()=>{const ue=new Set;for(const Xe of(c==null?void 0:c.collisions)??[])ue.add(Xe.name);return ue},[c]),Nu=E.useMemo(()=>{let ue=(e==null?void 0:e.contacts)??[];const Xe=J.trim().toLowerCase();return Xe&&(ue=ue.filter(Pt=>(Pt.name??"").toLowerCase().includes(Xe)||Pt.pubkey.toLowerCase().includes(Xe))),Q==="rooms"?ue=ue.filter(Pt=>Pt.type===3):Q==="stale"&&(ue=ue.filter(rT)),[...ue].sort((Pt,fr)=>{let Tn=0;return de==="name"?Tn=(Pt.name??"").localeCompare(fr.name??""):de==="type"?Tn=(Pt.type??0)-(fr.type??0):Tn=(Pt.last_advert??0)-(fr.last_advert??0),ye?Tn:-Tn})},[e,J,Q,de,ye]),ku=E.useMemo(()=>((e==null?void 0:e.contacts)??[]).filter(rT).length,[e]),rl=E.useMemo(()=>((e==null?void 0:e.contacts)??[]).filter(ue=>ue.type===3).length,[e]),Lu=E.useCallback(async()=>{if(!o)return;const ue=Math.max(Np,Math.round(Ke)||Np),Xe={...o,meshcore_telemetry_interval_seconds:ue*60};st(!0),Ft(!1),et(null);try{await ja("connection",Xe),s(Xe),St(ue),Ft(!0),setTimeout(()=>Ft(!1),2e3)}catch(lt){et(lt instanceof Error?lt.message:"Failed to save interval")}finally{st(!1)}},[o,Ke]),Iu=(e==null?void 0:e.active)!==!1,rs=(c==null?void 0:c.dangling)??[],ns=(c==null?void 0:c.collisions)??[];return d.jsxs("div",{className:"max-w-5xl mx-auto space-y-4",children:[d.jsxs("div",{className:"flex items-center gap-4",children:[d.jsx("div",{className:"flex-shrink-0 w-12 h-12 rounded-lg bg-[#0a0e17] border border-[#1e2a3a] flex items-center justify-center",children:d.jsx(WV,{size:24,className:"text-accent"})}),d.jsxs("div",{children:[d.jsx("h2",{className:"text-xl font-semibold text-slate-100",children:"MeshCore Contacts"}),d.jsx("p",{className:"text-sm text-[#777]",children:"The companion's known contact roster — names, types, last-heard times, and telemetry auto-poll."})]})]}),rs.length>0&&d.jsx("div",{className:"border border-red-500/40 bg-red-500/10 p-4 space-y-2",children:d.jsxs("div",{className:"flex items-start gap-3",children:[d.jsx(pi,{size:18,className:"text-red-400 flex-shrink-0 mt-0.5"}),d.jsxs("div",{className:"space-y-2 min-w-0",children:[d.jsxs("h3",{className:"text-sm font-semibold text-red-300",children:[rs.length," routing ",rs.length===1?"cell points":"cells point"," at a destination that no longer exists"]}),d.jsx("p",{className:"text-xs text-red-300/70 max-w-prose",children:"These cells cannot be delivered — a send to a missing room or channel fails silently. Fix the target on the Routing page, or resync if the roster is stale."}),d.jsx("ul",{className:"space-y-1",children:rs.map(ue=>d.jsxs("li",{className:"text-xs text-slate-200 flex flex-wrap items-center gap-x-2 gap-y-1",children:[d.jsx("span",{className:"px-1.5 py-0.5 rounded bg-red-500/20 text-red-300 uppercase tracking-wide text-[10px]",children:ue.family}),d.jsx("span",{className:"text-slate-300",children:ue.region}),d.jsx("span",{className:"text-[#777]",children:"→"}),d.jsx("span",{className:"font-mono text-[11px] text-red-300 break-all",children:ue.target}),d.jsxs("span",{className:"text-[#777]",children:["— ",C2e[ue.reason]??ue.reason]}),!ue.enabled&&d.jsx("span",{className:"px-1.5 py-0.5 rounded bg-slate-600/30 text-slate-400 text-[10px] uppercase tracking-wide",children:"disabled"})]},`${ue.family}-${ue.region}-${ue.target}`))})]})]})}),ns.length>0&&d.jsx("div",{className:"border border-amber-500/40 bg-amber-500/10 p-4",children:d.jsxs("div",{className:"flex items-start gap-3",children:[d.jsx(pi,{size:18,className:"text-amber-400 flex-shrink-0 mt-0.5"}),d.jsxs("div",{className:"space-y-2 min-w-0",children:[d.jsxs("h3",{className:"text-sm font-semibold text-amber-300",children:[ns.length," duplicated ",ns.length===1?"name":"names"," on the roster"]}),d.jsx("p",{className:"text-xs text-amber-300/70 max-w-prose",children:"These names each map to more than one public key. A name alone cannot identify them — always confirm the key before routing to or deleting one."}),d.jsx("ul",{className:"space-y-1",children:ns.map(ue=>d.jsxs("li",{className:"text-xs text-slate-200",children:[d.jsx("span",{className:"text-slate-100",children:ue.name})," ",d.jsxs("span",{className:"text-[#777]",children:["×",ue.count]}),d.jsx("span",{className:"ml-2 font-mono text-[11px] text-amber-300/80",children:ue.contacts.map(Xe=>aT(Xe.pubkey)).join(" · ")})]},ue.name))})]})]})}),Iu&&d.jsxs("div",{className:"bg-bg-card border border-border p-4 space-y-3",children:[d.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[d.jsxs("button",{onClick:Hn,disabled:f,className:"flex items-center gap-2 px-3 py-1.5 text-sm rounded bg-accent/15 text-accent hover:bg-accent/25 disabled:opacity-50",title:"Refetch the full roster from the companion and drop entries it no longer has",children:[d.jsx(Zi,{size:14,className:f?"animate-spin":void 0}),f?"Resyncing…":"Resync from node"]}),d.jsxs("button",{onClick:ts,className:"flex items-center gap-2 px-3 py-1.5 text-sm rounded bg-[#0a0e17] border border-[#1e2a3a] text-slate-200 hover:border-accent/40",title:"Download the roster as JSON",children:[d.jsx(bJ,{size:14}),"Export JSON"]}),d.jsxs("button",{onClick:()=>{C(ue=>!ue),H(null)},className:"flex items-center gap-2 px-3 py-1.5 text-sm rounded bg-[#0a0e17] border border-[#1e2a3a] text-slate-200 hover:border-accent/40",title:"Add a contact by public key",children:[d.jsx(li,{size:14}),"Add contact"]}),d.jsxs("span",{className:"text-xs text-[#777]",children:["Last synced ",_!=null?eF(_):"unknown"]}),g&&d.jsxs("span",{className:"text-xs text-slate-300",children:[d.jsxs("span",{className:"text-emerald-400",children:["+",g.added," added"]})," · ",d.jsxs("span",{className:"text-red-400",children:["−",g.removed," removed"]})," · ",d.jsxs("span",{className:"text-[#777]",children:[g.updated," updated"]})," · ",d.jsxs("span",{className:"text-[#777]",children:[g.after," total"]}),y&&d.jsxs("span",{className:"text-[#777]",children:[" · ","channels ",y.after,y.added.length>0&&d.jsxs("span",{className:"text-emerald-400",children:[" +",y.added.length]}),y.removed.length>0&&d.jsxs("span",{className:"text-red-400",children:[" −",y.removed.length]})]})]})]}),S&&d.jsxs("div",{className:"border border-[#1e2a3a] bg-[#0a0e17] p-3 space-y-2",children:[d.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[d.jsx("input",{value:M,onChange:ue=>A(ue.target.value),placeholder:"Name",className:"w-40 px-2 py-1 text-sm bg-bg-card border border-[#1e2a3a] rounded text-slate-100 placeholder:text-[#555]"}),d.jsx("input",{value:k,onChange:ue=>I(ue.target.value),placeholder:"Full 64-character hex public key",className:"flex-1 min-w-[280px] px-2 py-1 text-sm font-mono bg-bg-card border border-[#1e2a3a] rounded text-slate-100 placeholder:text-[#555]"}),d.jsxs("select",{value:P,onChange:ue=>j(Number(ue.target.value)),className:"px-2 py-1 text-sm bg-bg-card border border-[#1e2a3a] rounded text-slate-200",children:[d.jsx("option",{value:1,children:"Chat"}),d.jsx("option",{value:2,children:"Repeater"}),d.jsx("option",{value:3,children:"Room"}),d.jsx("option",{value:4,children:"Sensor"})]}),d.jsx("button",{onClick:es,disabled:z,className:"px-3 py-1 text-sm rounded bg-accent/15 text-accent hover:bg-accent/25 disabled:opacity-50",children:z?"Adding…":"Add"}),d.jsx("button",{onClick:()=>C(!1),className:"px-2 py-1 text-sm text-[#777] hover:text-slate-200",children:"Cancel"})]}),B&&d.jsx("p",{className:"text-xs text-red-400",children:B}),d.jsx("p",{className:"text-xs text-[#777] max-w-prose",children:"Writes the contact straight to the companion — nothing is transmitted. Use this when a node has been rebuilt with a new keypair, or is not yet in range to advert."})]}),d.jsx("p",{className:"text-xs text-[#777] max-w-prose",children:"The roster and channel list are a snapshot cached from the companion at connect. Resync re-reads both from the node and reconciles them — the only action that removes entries the companion has dropped, or picks up a channel added on the radio."})]}),Iu&&o&&d.jsxs("div",{className:"bg-bg-card border border-border p-4 space-y-2",children:[d.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[d.jsx("label",{className:"text-sm text-slate-200",children:"Auto-poll every"}),d.jsx("input",{type:"number",min:Np,value:Ke,onChange:ue=>St(Number(ue.target.value)),className:"w-20 px-2 py-1 text-sm bg-[#0a0e17] border border-[#1e2a3a] rounded text-slate-100"}),d.jsx("span",{className:"text-sm text-slate-300",children:"minutes"}),d.jsx("button",{onClick:Lu,disabled:ce,className:"px-3 py-1 text-sm rounded bg-accent/15 text-accent hover:bg-accent/25 disabled:opacity-50",children:ce?"Saving…":Bt?"Saved":"Save"})]}),d.jsxs("p",{className:"text-xs text-[#777] max-w-prose",children:["Polls only the nodes you select below. Keep this list small — telemetry uses mesh airtime. Minimum ",Np," minutes."]})]}),bt&&d.jsx("div",{className:"p-3 text-sm bg-red-500/10 text-red-400 border border-red-500/20",children:bt}),r?d.jsx("div",{className:"flex items-center justify-center h-32",children:d.jsx("div",{className:"text-slate-400",children:"Loading..."})}):a?d.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?d.jsx("div",{className:"bg-bg-card border border-border p-6",children:d.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?d.jsx("div",{className:"bg-bg-card border border-border p-6",children:d.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."})}):d.jsxs("div",{className:"bg-bg-card border border-border",children:[d.jsxs("div",{className:"flex flex-wrap items-center gap-3 px-4 py-3 border-b border-border",children:[d.jsx("input",{type:"search",value:J,onChange:ue=>re(ue.target.value),placeholder:"Search name or pubkey…",className:"flex-1 min-w-[180px] px-2 py-1 text-sm bg-[#0a0e17] border border-[#1e2a3a] rounded text-slate-100 placeholder:text-[#555]"}),d.jsx("div",{className:"flex gap-1",children:[{key:"all",label:`All ${(e==null?void 0:e.contacts.length)??0}`},{key:"rooms",label:`Rooms ${rl}`},{key:"stale",label:`Stale ${ku}`}].map(({key:ue,label:Xe})=>d.jsx("button",{onClick:()=>le(ue),className:`px-2.5 py-1 text-xs rounded border transition-colors ${Q===ue?"border-accent/40 bg-accent/15 text-accent":"border-[#1e2a3a] bg-[#0a0e17] text-[#777] hover:text-slate-200"}`,children:Xe},ue))})]}),d.jsxs("div",{className:"overflow-x-auto",children:[d.jsxs("table",{className:"w-full text-sm",children:[d.jsx("thead",{children:d.jsxs("tr",{className:"border-b border-border text-left text-[11px] uppercase tracking-wide text-[#777]",children:[d.jsx("th",{className:"px-4 py-2.5 font-medium",children:d.jsxs("button",{onClick:()=>Ga("name"),className:"hover:text-slate-200 uppercase",children:["Name",de==="name"?ye?" ▲":" ▼":""]})}),d.jsx("th",{className:"px-4 py-2.5 font-medium",children:d.jsxs("button",{onClick:()=>Ga("type"),className:"hover:text-slate-200 uppercase",children:["Type",de==="type"?ye?" ▲":" ▼":""]})}),d.jsx("th",{className:"px-4 py-2.5 font-medium",children:d.jsxs("button",{onClick:()=>Ga("last_advert"),className:"hover:text-slate-200 uppercase",children:["Last heard",de==="last_advert"?ye?" ▲":" ▼":""]})}),d.jsx("th",{className:"px-4 py-2.5 font-medium",children:"Position"}),d.jsx("th",{className:"px-4 py-2.5 font-medium",children:"Pubkey"}),d.jsx("th",{className:"px-4 py-2.5 font-medium",children:"Auto-poll"}),d.jsx("th",{className:"px-4 py-2.5 font-medium"})]})}),d.jsx("tbody",{className:"divide-y divide-border",children:Nu.map(ue=>{const Xe=nT(ue),lt=Qo(ue),Pt=tl(ue),fr=Fe[Xe],Tn=lt!=null&<.available===!1,Ct=xe===Xe||Tn&&!Pt;let as=null,Mn="",$e=!1;fr?fr.available&&fr.data?(as=fr.data,Mn="just now"):$e=!0:lt&&(lt.available&<.data?(as=lt.data,Mn=T2e(lt.polled_at)):$e=!0);const Zh=as!=null||$e;return d.jsxs(E.Fragment,{children:[d.jsxs("tr",{className:"hover:bg-bg-hover",children:[d.jsx("td",{className:"px-4 py-2.5 text-slate-100",children:d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx("span",{children:tF(ue)}),ue.name!=null&&$h.has(ue.name)&&d.jsx("span",{className:"px-1.5 py-0.5 text-[10px] uppercase tracking-wide rounded bg-amber-500/15 text-amber-400",title:"Another contact advertises this same name with a different key — check the pubkey",children:"dup name"})]})}),d.jsx("td",{className:"px-4 py-2.5",children:d.jsx(A2e,{type:ue.type})}),d.jsx("td",{className:"px-4 py-2.5",children:d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx("span",{className:"text-slate-300",children:eF(ue.last_advert)}),rT(ue)&&d.jsx("span",{className:"px-1.5 py-0.5 text-[10px] uppercase tracking-wide rounded bg-orange-500/15 text-orange-400",title:`Not heard from in over ${FZ} days`,children:"stale"})]})}),d.jsx("td",{className:"px-4 py-2.5 text-slate-300 font-mono text-xs",children:N2e(ue)}),d.jsx("td",{className:"px-4 py-2.5 text-slate-400 font-mono text-xs",children:d.jsxs("div",{className:"flex items-center gap-1.5",children:[d.jsx("button",{onClick:()=>Z(Me=>Me===ue.pubkey?null:ue.pubkey),className:"hover:text-accent",title:ue.pubkey,children:$===ue.pubkey?ue.pubkey:aT(ue.pubkey)}),d.jsx("button",{onClick:()=>Wh(ue.pubkey),className:"text-[#555] hover:text-accent flex-shrink-0",title:"Copy full pubkey",children:d.jsx(DV,{size:11})})]})}),d.jsx("td",{className:"px-4 py-2.5",children:d.jsxs("label",{className:`inline-flex items-center gap-2 ${Ct?"opacity-50":"cursor-pointer"}`,title:Tn&&!Pt?"no telemetry available":void 0,children:[d.jsx("input",{type:"checkbox",checked:Pt,disabled:Ct,onChange:Me=>Ki(ue,Me.target.checked),className:"accent-accent"}),d.jsx("span",{className:"text-xs text-slate-300",children:xe===Xe?"saving…":ge===Xe?"saved":Tn&&!Pt?"no telemetry":"auto-poll"})]})}),d.jsx("td",{className:"px-4 py-2.5",children:d.jsxs("div",{className:"flex items-center justify-end gap-1.5",children:[d.jsx("button",{onClick:()=>Uh(ue),disabled:Ue===Xe,className:"px-2 py-1 text-xs rounded bg-accent/15 text-accent hover:bg-accent/25 disabled:opacity-50",children:Ue===Xe?"Polling…":"Poll now"}),V===ue.pubkey?d.jsxs(d.Fragment,{children:[d.jsx("button",{onClick:()=>Au(ue),disabled:F===ue.pubkey,className:"px-2 py-1 text-xs rounded bg-red-500/20 text-red-300 hover:bg-red-500/30 disabled:opacity-50",children:F===ue.pubkey?"Deleting…":"Confirm"}),d.jsx("button",{onClick:()=>U(null),className:"px-2 py-1 text-xs rounded text-[#777] hover:text-slate-200",children:"Cancel"})]}):d.jsx("button",{onClick:()=>U(ue.pubkey),className:"p-1 rounded text-[#555] hover:text-red-400 hover:bg-red-500/10",title:"Remove this contact from the companion",children:d.jsx(ui,{size:13})})]})})]}),V===ue.pubkey&&d.jsx("tr",{className:"bg-red-500/5",children:d.jsx("td",{colSpan:7,className:"px-4 py-2 border-t border-red-500/20",children:d.jsxs("span",{className:"text-xs text-red-300",children:["Remove ",d.jsx("span",{className:"text-slate-100",children:tF(ue)})," ",d.jsx("span",{className:"font-mono text-[11px]",children:aT(ue.pubkey)})," ","from the companion? It will only return if the node advertises again."]})})}),Zh&&d.jsx("tr",{className:"bg-[#0a0e17]/40",children:d.jsx("td",{colSpan:7,className:"px-4 py-2 border-t border-border/50",children:as?d.jsx(L2e,{data:as,polledLabel:Mn}):d.jsxs("span",{className:"text-xs text-[#777]",children:["no telemetry",fr!=null&&fr.detail?` — ${fr.detail}`:""]})})})]},ue.pubkey)})})]}),Nu.length===0&&d.jsx("div",{className:"px-4 py-6 text-sm text-[#777]",children:"No contacts match this filter."})]})]})]})}const P2e=[{key:"contacts",label:"Contacts"},{key:"companion",label:"Companion"}];function D2e(){const[e,t]=E.useState("contacts");return E.useEffect(()=>{document.title="Contacts & Companion - MeshAI"},[]),d.jsxs("div",{className:"space-y-4",children:[d.jsx("div",{className:"flex gap-1 border-b border-border",children:P2e.map(({key:r,label:n})=>d.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"&&d.jsx(I2e,{}),e==="companion"&&d.jsx(zZ,{})]})}function rF({family:e="meshtastic"}){const{setDirty:t}=$i(),[r,n]=E.useState(null),[a,i]=E.useState(null),[o,s]=E.useState(!0),[l,u]=E.useState(!1),[c,h]=E.useState(null),[f,v]=E.useState(null),[g,m]=E.useState(!1),y=E.useCallback(async()=>{s(!0),h(null);try{const S=await Ao("notifications");n(S),i(JSON.parse(JSON.stringify(S))),m(!1)}catch(S){h(S instanceof Error?S.message:"Failed to load config")}finally{s(!1)}},[]);E.useEffect(()=>{document.title="Scheduled Broadcasts - MeshAI",y()},[y]),E.useEffect(()=>{if(r&&a){const S=JSON.stringify(r)!==JSON.stringify(a);m(S)}},[r,a]),E.useEffect(()=>(t(g),()=>t(!1)),[g,t]);const x=async()=>{if(r){u(!0),h(null),v(null);try{const S=await ja("notifications",r);i(JSON.parse(JSON.stringify(r))),S.restart_required&&bu([]),m(!1),t(!1),v("Scheduled broadcasts saved successfully"),setTimeout(()=>v(null),3e3)}catch(S){h(S instanceof Error?S.message:"Save failed")}finally{u(!1)}}},_=()=>{a&&n(JSON.parse(JSON.stringify(a))),m(!1)},w=e==="meshcore"?"MeshCore scheduled broadcasts and band condition reports.":"Meshtastic scheduled broadcasts and band condition reports.";return o?d.jsx("div",{className:"flex items-center justify-center h-64",children:d.jsx("div",{className:"text-slate-400",children:"Loading scheduled broadcasts..."})}):r?d.jsxs("div",{className:"max-w-2xl mx-auto space-y-6",children:[d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsx("div",{children:d.jsx("p",{className:"text-sm text-slate-500",children:w})}),d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx("button",{onClick:y,className:"p-2 text-slate-400 hover:text-slate-200 hover:bg-bg-hover rounded transition-colors",title:"Refresh",children:d.jsx(Zi,{size:18})}),d.jsxs("button",{onClick:_,disabled:!g,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:[d.jsx(xa,{size:16}),"Discard"]}),d.jsxs("button",{onClick:x,disabled:l||!g,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:[d.jsx(_a,{size:16}),l?"Saving...":"Save"]})]})]}),c&&d.jsx("div",{className:"p-3 text-sm bg-red-500/10 text-red-400 border border-red-500/20",children:c}),f&&d.jsxs("div",{className:"p-3 text-sm bg-green-500/10 text-green-400 border border-green-500/20",children:[d.jsx(Yr,{size:14,className:"inline mr-2"}),f]}),d.jsxs("div",{className:"bg-bg-card border border-border p-6 space-y-4",children:[d.jsx("div",{className:"flex items-center gap-2",children:d.jsx("label",{className:"text-xs text-slate-500 uppercase tracking-wide",children:"Cold-start grace"})}),d.jsx(qf,{label:"Grace period (seconds)",value:r.cold_start_grace_seconds??60,onChange:S=>n({...r,cold_start_grace_seconds:S}),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."})]}),d.jsxs("div",{className:"bg-bg-card border border-border p-6 space-y-4",children:[d.jsx("div",{className:"flex items-center gap-2",children:d.jsx("label",{className:"text-xs text-slate-500 uppercase tracking-wide",children:"Band Conditions (HF propagation)"})}),d.jsx(Ch,{label:"Enable scheduled band-conditions broadcasts",checked:r.band_conditions_enabled??!0,onChange:S=>n({...r,band_conditions_enabled:S}),helper:"3x/day HF propagation summary (Day/Night ratings per band group). 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)&&d.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[d.jsx(q2,{label:"Slot 1",value:(r.band_conditions_schedule??["06:00","14:00","22:00"])[0]||"06:00",onChange:S=>{const C=[...r.band_conditions_schedule??["06:00","14:00","22:00"]];C[0]=S,n({...r,band_conditions_schedule:C})},helper:"Morning (default 06:00 MT)"}),d.jsx(q2,{label:"Slot 2",value:(r.band_conditions_schedule??["06:00","14:00","22:00"])[1]||"14:00",onChange:S=>{const C=[...r.band_conditions_schedule??["06:00","14:00","22:00"]];C[1]=S,n({...r,band_conditions_schedule:C})},helper:"Afternoon (default 14:00 MT)"}),d.jsx(q2,{label:"Slot 3",value:(r.band_conditions_schedule??["06:00","14:00","22:00"])[2]||"22:00",onChange:S=>{const C=[...r.band_conditions_schedule??["06:00","14:00","22:00"]];C[2]=S,n({...r,band_conditions_schedule:C})},helper:"Night (default 22:00 MT)"})]}),d.jsx("p",{className:"text-xs text-slate-600",children:"All times are Mountain Time (America/Boise). DST handled automatically."})]})]}):d.jsx("div",{className:"flex items-center justify-center h-64",children:d.jsx("div",{className:"text-red-400",children:"Failed to load config"})})}function j2e({info:e}){const[t,r]=E.useState(!1);return d.jsxs("div",{className:"relative inline-block",children:[d.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&&d.jsxs(d.Fragment,{children:[d.jsx("div",{className:"fixed inset-0 z-40",onClick:()=>r(!1)}),d.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 E2e({label:e,value:t,onChange:r,helper:n,info:a,keyPlaceholder:i="Key",valuePlaceholder:o="Value"}){const[s,l]=E.useState(()=>Object.entries(t||{}));E.useEffect(()=>{const c={};for(const[h,f]of s)h.trim()&&(c[h.trim()]=f);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 d.jsxs("div",{className:"space-y-2",children:[d.jsxs("label",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:[e,a&&d.jsx(j2e,{info:a})]}),s.map(([c,h],f)=>d.jsxs("div",{className:"flex items-start gap-2",children:[d.jsx("input",{type:"text",value:c,onChange:v=>u(s.map((g,m)=>m===f?[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"}),d.jsx("input",{type:"text",value:h,onChange:v=>u(s.map((g,m)=>m===f?[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"}),d.jsx("button",{type:"button",onClick:()=>u(s.filter((v,g)=>g!==f)),className:"p-2 text-red-400 hover:text-red-300 hover:bg-red-500/10 rounded flex-shrink-0","aria-label":"Remove header",children:d.jsx(ui,{size:14})})]},f)),d.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:[d.jsx(li,{size:16})," Add Header"]}),n&&d.jsx("p",{className:"text-xs text-slate-600",children:n})]})}const R2e=["CLIENT_BASE","ROUTER","ROUTER_LATE"],O2e=[{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)"}],z2e=[{key:"fire",label:"Fire",description:"Active wildfires (radius from fire perimeter).",Icon:Rm,showAcres:!0},{key:"weather",label:"Weather",description:"Severe weather warnings near a node.",Icon:kh},{key:"snow",label:"Snow (sub-gate of Weather)",description:"Snow-category weather events.",Icon:GV},{key:"flood",label:"Flood (sub-gate of Seismic)",description:"Stream/flood gauge events.",Icon:Oo},{key:"avalanche",label:"Avalanche",description:"Avalanche advisories near a node.",Icon:kf},{key:"seismic",label:"Seismic",description:"Earthquakes and seismic events near a node.",Icon:kf}];function Pd(){return{enabled:!1,buffer_mi:5,min_acres:0}}function nF(){return{enabled:!1,dry_run:!0,monitor_roles:["ROUTER","ROUTER_LATE","CLIENT_BASE"],default_buffer_mi:5,cooldown_minutes:360,fire:Pd(),weather:Pd(),snow:Pd(),flood:Pd(),avalanche:Pd(),seismic:Pd(),delivery_type:"mesh_dm",node_ids:[],broadcast_channel:null,webhook_url:"",webhook_headers:{}}}function B2e({label:e,value:t,onChange:r,options:n,info:a=""}){return d.jsxs("div",{className:"space-y-1",children:[d.jsxs("label",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:[e,a&&d.jsx(Yo,{info:a})]}),d.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=>d.jsx("option",{value:i.value,children:i.label},i.value))})]})}function F2e({meta:e,cfg:t,onChange:r}){const{Icon:n}=e;return d.jsxs("div",{className:`border border-[#1e2a3a] p-3 space-y-2 ${e.tabled?"opacity-50":""}`,children:[d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsxs("div",{className:"flex items-start gap-2 flex-1",children:[d.jsx(n,{size:15,className:"text-slate-400 mt-0.5 flex-shrink-0"}),d.jsxs("div",{className:"flex-1",children:[d.jsx("span",{className:"text-sm text-slate-300",children:e.label}),d.jsx("p",{className:"text-xs text-slate-600",children:e.description}),e.tabled&&d.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"})]})]}),d.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:d.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&&d.jsxs("div",{className:`grid gap-3 pt-2 border-t border-[#1e2a3a] ${e.showAcres?"grid-cols-2":"grid-cols-1"}`,children:[d.jsx(qf,{label:"Buffer (mi)",value:t.buffer_mi??0,onChange:a=>r({...t,buffer_mi:a}),min:0,step:.5}),e.showAcres&&d.jsx(qf,{label:"Min Acres",value:t.min_acres??0,onChange:a=>r({...t,min_acres:a}),min:0,step:1})]})]})}function V2e(){const[e,t]=E.useState(!1),[r,n]=E.useState(null),[a,i]=E.useState(!0),[o,s]=E.useState(!1),[l,u]=E.useState(null),[c,h]=E.useState(null),f=E.useCallback(async()=>{i(!0),u(null);try{const y=await Ao("danger_zones"),x=nF();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(nF())}finally{i(!1)}},[]);E.useEffect(()=>{f()},[f]);const v=async()=>{if(r){s(!0),u(null),h(null);try{await ja("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 d.jsxs("div",{className:"bg-bg-card border border-border",children:[d.jsxs("button",{type:"button",onClick:()=>t(y=>!y),className:"w-full flex items-center justify-between p-4 text-left",children:[d.jsxs("div",{className:"flex items-center gap-3",children:[d.jsx(pi,{size:18,className:"text-amber-400"}),d.jsxs("div",{children:[d.jsx("div",{className:"text-sm font-medium text-slate-200",children:"Danger Zones"}),d.jsx("div",{className:"text-xs text-slate-500",children:"Alert when monitored infrastructure nodes are in/near a hazard"})]})]}),d.jsxs("div",{className:"flex items-center gap-2",children:[r&&d.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?d.jsx(Em,{size:18,className:"text-slate-500"}):d.jsx(Ah,{size:18,className:"text-slate-500"})]})]}),e&&d.jsxs("div",{className:"p-6 pt-0 space-y-6",children:[d.jsxs("div",{className:"flex items-start gap-2 p-3 bg-amber-500/10 border border-amber-500/20",children:[d.jsx(Nh,{size:16,className:"text-amber-400 mt-0.5 flex-shrink-0"}),d.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 ",d.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&&d.jsx("div",{className:"p-3 text-sm bg-red-500/10 text-red-400 border border-red-500/20",children:l}),c&&d.jsxs("div",{className:"p-3 text-sm bg-green-500/10 text-green-400 border border-green-500/20",children:[d.jsx(Yr,{size:14,className:"inline mr-2"}),c]}),a||!r?d.jsx("div",{className:"text-sm text-slate-500",children:"Loading danger zones config..."}):d.jsxs(d.Fragment,{children:[d.jsx(Ch,{label:"Enable Danger Zones",checked:r.enabled,onChange:y=>g({enabled:y}),helper:"Master switch for the infrastructure danger-zone correlator"}),d.jsx(Ch,{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."}),d.jsxs("div",{className:"space-y-2",children:[d.jsxs("label",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:["Monitored Roles",d.jsx(Yo,{info:"Which Meshtastic node roles to correlate against hazards. Only nodes that have a GPS position are scanned."})]}),d.jsx("div",{className:"flex flex-wrap gap-2",children:R2e.map(y=>{const x=(r.monitor_roles||[]).includes(y);return d.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)})})]}),d.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[d.jsx(qf,{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"}),d.jsx(qf,{label:"Cooldown (min)",value:r.cooldown_minutes,onChange:y=>g({cooldown_minutes:y}),min:0,helper:"Min time between repeat alerts per node+family"})]}),d.jsxs("div",{className:"space-y-3",children:[d.jsxs("label",{className:"flex items-center text-xs text-slate-500 uppercase tracking-wide",children:["Hazard Families",d.jsx(Yo,{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."})]}),z2e.map(y=>d.jsx(F2e,{meta:y,cfg:r[y.key],onChange:x=>g({[y.key]:x})},y.key))]}),d.jsxs("div",{className:"space-y-4 p-4 bg-[#0a0e17] border border-[#1e2a3a]",children:[d.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium text-slate-300",children:[d.jsx(FV,{size:14}),"DELIVERY"]}),d.jsx(B2e,{label:"Delivery Method",value:r.delivery_type||"mesh_dm",onChange:y=>g({delivery_type:y}),options:O2e,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"&&d.jsx(DP,{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"&&d.jsx(jP,{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"&&d.jsxs(d.Fragment,{children:[d.jsx(RCe,{label:"Webhook URL",value:r.webhook_url||"",onChange:y=>g({webhook_url:y}),placeholder:"https://discord.com/api/webhooks/...",helper:"POST alert as JSON"}),d.jsx(E2e,{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"&&d.jsx("p",{className:"text-xs text-slate-600",children:"Email delivery uses the SMTP settings configured for notification rules."})]}),d.jsx("div",{className:"flex justify-end",children:d.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:[d.jsx(_a,{size:16}),o?"Saving...":"Save Danger Zones"]})})]})]})]})}function G2e(){return E.useEffect(()=>{document.title="Danger Zones - MeshAI"},[]),d.jsxs("div",{className:"max-w-2xl mx-auto space-y-6",children:[d.jsx("p",{className:"text-sm text-slate-500",children:"Alert infrastructure nodes when they are within a configurable buffer distance of an active hazard."}),d.jsx(V2e,{})]})}function H2e(){return E.useEffect(()=>{document.title="Danger Zones - MeshAI"},[]),d.jsx("div",{className:"max-w-3xl mx-auto",children:d.jsx("div",{className:"bg-bg-card border border-border p-8",children:d.jsxs("div",{className:"flex items-start gap-4",children:[d.jsx("div",{className:"flex-shrink-0 w-12 h-12 rounded-lg bg-[#0a0e17] border border-[#1e2a3a] flex items-center justify-center",children:d.jsx(pi,{size:24,className:"text-accent"})}),d.jsxs("div",{className:"space-y-3",children:[d.jsxs("div",{className:"flex items-center gap-3",children:[d.jsx("h2",{className:"text-xl font-semibold text-slate-100",children:"MeshCore Danger Zones"}),d.jsx("span",{className:"px-2 py-0.5 text-[10px] uppercase tracking-wide rounded bg-slate-700 text-slate-300",children:"Coming soon"})]}),d.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 yw.Icon.Default.prototype._getIconUrl;yw.Icon.Default.mergeOptions({iconUrl:CZ,iconRetinaUrl:TZ,shadowUrl:MZ});const hx=e=>Math.round(e*1e6)/1e6,dx=["#f59e0b","#60a5fa","#34d399","#a78bfa","#f87171","#fb923c"],U2e=[{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 W2e({bounds:e}){const t=PP(),r=E.useRef(!1);return E.useEffect(()=>{!r.current&&e&&(t.fitBounds(e,{padding:[40,40]}),r.current=!0)},[t,e]),null}function $2e({mode:e,firstCorner:t,onFirstClick:r,onSecondClick:n}){return USe({click(a){const i=[a.latlng.lat,a.latlng.lng];e==="awaiting-first"?r(i):e==="awaiting-second"&&n(i)}}),t?d.jsx(bZ,{center:t,radius:6,pathOptions:{color:"#f59e0b",fillColor:"#f59e0b",fillOpacity:1}}):null}function Z2e(){const[e,t]=E.useState(null),[r,n]=E.useState(""),[a,i]=E.useState(!0),[o,s]=E.useState(!1),[l,u]=E.useState(null),[c,h]=E.useState(null),{setDirty:f}=$i(),[v,g]=E.useState("idle"),[m,y]=E.useState(null);E.useEffect(()=>{document.title="Coverage — MeshAI",fetch("/api/config").then(D=>{if(!D.ok)throw new Error("Failed to fetch config");return D.json()}).then(D=>{const B=D.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,W,$]=B.bbox;H=[{name:"Area 1",west:U,south:F,east:W,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(D=>u(D instanceof Error?D.message:String(D))).finally(()=>i(!1))},[]);const x=e!==null&&JSON.stringify(e)!==r;E.useEffect(()=>(f(x),()=>f(!1)),[x,f]);const _=(e==null?void 0:e.areas)??[],w=_.length>0?[[Math.min(..._.map(D=>D.south)),Math.min(..._.map(D=>D.west))],[Math.max(..._.map(D=>D.north)),Math.max(..._.map(D=>D.east))]]:null,S=[39.5,-98.35],C=E.useCallback(D=>{y(D),g("awaiting-second")},[]),M=E.useCallback(D=>{if(!m)return;const[B,H]=m,[V,U]=D;t(F=>{if(!F)return F;const W={name:`Area ${F.areas.length+1}`,west:hx(Math.min(H,U)),south:hx(Math.min(B,V)),east:hx(Math.max(H,U)),north:hx(Math.max(B,V))};return{...F,areas:[...F.areas,W]}}),y(null),g("idle")},[m]),A=(D,B,H)=>{t(V=>{if(!V)return V;const U=V.areas.map((F,W)=>{if(W!==D)return F;if(B==="name")return{...F,name:H};const $=parseFloat(H);return isNaN($)?F:{...F,[B]:$}});return{...V,areas:U}})},k=D=>{t(B=>B&&{...B,areas:B.areas.filter((H,V)=>V!==D)})},I=D=>{if(!e)return;const B=e.excluded_adapters??[];t({...e,excluded_adapters:B.includes(D)?B.filter(H=>H!==D):[...B,D]})},P=()=>{r&&(t(JSON.parse(r)),g("idle"),y(null))},j=async()=>{if(e){s(!0),u(null),h(null);try{const D=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 D.json();if(!D.ok)throw new Error(B.detail||"Save failed");n(JSON.stringify(e)),h("Coverage saved"),setTimeout(()=>h(null),3e3),B.restart_required&&bu(Array.isArray(B.changed_keys)?B.changed_keys:[])}catch(D){u(D instanceof Error?D.message:"Save failed")}finally{s(!1)}}};if(a)return d.jsx("div",{className:"flex items-center justify-center h-64 text-[#777]",children:"Loading coverage config…"});if(!e)return d.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 d.jsxs("div",{className:"space-y-6 max-w-4xl",children:[d.jsxs("div",{className:"flex items-start justify-between gap-4",children:[d.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`," ",d.jsx("a",{href:"/environment",className:"text-accent hover:underline",children:"Data Feeds"})," ","page."]}),x&&d.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[d.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:[d.jsx(xa,{size:14})," Discard"]}),d.jsxs("button",{onClick:j,disabled:o,className:"flex items-center gap-1 px-3 py-1.5 text-sm bg-accent text-white disabled:opacity-50",children:[d.jsx(_a,{size:14})," ",o?"Saving…":"Save"]})]})]}),l&&d.jsx("div",{className:"text-sm text-red-400 bg-red-500/10 p-3",children:l}),c&&d.jsx("div",{className:"text-sm text-green-400 bg-green-500/10 p-3",children:c}),d.jsxs("div",{className:"border border-border p-4 flex items-center justify-between",children:[d.jsxs("div",{children:[d.jsx("span",{className:"text-sm font-medium text-[#e0e0e0]",children:"Use coverage areas to scope all adapters"}),d.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."})]}),d.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:d.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":""}`})})]}),d.jsxs("div",{className:"border border-border overflow-hidden",children:[d.jsxs("div",{className:"bg-bg-card border-b border-border px-4 py-2 flex items-center justify-between gap-4",children:[d.jsx("span",{className:"text-xs text-[#777] min-w-0 truncate font-mono",children:z}),d.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[v!=="idle"&&d.jsx("button",{onClick:()=>{g("idle"),y(null)},className:"px-2 py-1 text-xs text-[#777] hover:text-white border border-border",children:"Cancel"}),d.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:[d.jsx(TJ,{size:12}),"Add area"]})]})]}),d.jsxs(wZ,{center:S,zoom:4,style:{width:"100%",height:"400px"},className:"z-0",children:[d.jsx(SZ,{url:"https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}{r}.png",attribution:'© OpenStreetMap, © CARTO'}),d.jsx(W2e,{bounds:w}),_.map((D,B)=>{const H=dx[B%dx.length],V=[[D.south,D.west],[D.north,D.east]];return d.jsx(YSe,{bounds:V,pathOptions:{color:H,fillColor:H,fillOpacity:.08,weight:2}},B)}),d.jsx($2e,{mode:v,firstCorner:m,onFirstClick:C,onSecondClick:M})]})]}),d.jsxs("div",{className:"border border-border p-4 space-y-4",children:[d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsx("div",{className:"text-xs font-sans font-medium uppercase tracking-widest text-[#666]",children:"Coverage Areas"}),d.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:[d.jsx(li,{size:12})," Add area"]})]}),_.length===0?d.jsx("p",{className:"text-xs text-[#555]",children:'No areas defined. Draw one on the map or click "Add area" to start.'}):d.jsx("div",{className:"space-y-3",children:_.map((D,B)=>{const H=dx[B%dx.length];return d.jsxs("div",{className:"border border-border p-3 space-y-2",children:[d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx("span",{className:"w-3 h-3 rounded-sm flex-shrink-0",style:{backgroundColor:H}}),d.jsx("input",{type:"text",value:D.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"}),d.jsx("button",{onClick:()=>k(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:d.jsx(ui,{size:12})})]}),d.jsx("div",{className:"grid grid-cols-4 gap-2",children:["west","south","east","north"].map(V=>d.jsxs("div",{children:[d.jsx("label",{className:"text-xs text-[#777] mb-1 block capitalize",children:V}),d.jsx("input",{type:"number",step:"0.000001",value:D[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)})}),d.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."})]}),d.jsxs("div",{className:"border border-border p-4 space-y-4",children:[d.jsxs("div",{children:[d.jsx("div",{className:"text-xs font-sans font-medium uppercase tracking-widest text-[#666] mb-1",children:"Adapter Overrides"}),d.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'," ",d.jsx("a",{href:"/environment",className:"text-accent hover:underline",children:"Data Feeds"})," ","page."]})]}),d.jsx("div",{className:"divide-y divide-border",children:U2e.map(({key:D,label:B})=>{var V;const H=((V=e.excluded_adapters)==null?void 0:V.includes(D))??!1;return d.jsxs("div",{className:"flex items-center justify-between py-2.5",children:[d.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[d.jsx("span",{className:"text-sm text-[#e0e0e0]",children:B}),H?d.jsx("span",{className:"text-[10px] text-accent/70 uppercase tracking-wide",children:"own config"}):d.jsx("span",{className:"text-[10px] text-[#555] uppercase tracking-wide",children:"coverage areas"})]}),d.jsxs("div",{className:"flex items-center gap-3 flex-shrink-0",children:[H&&d.jsx("a",{href:"/environment",className:"text-xs text-accent hover:underline",children:"Configure"}),d.jsxs("label",{className:"flex items-center gap-2 cursor-pointer select-none",children:[d.jsx("span",{className:"text-xs text-[#666] whitespace-nowrap",children:"Use own config"}),d.jsx("button",{type:"button",onClick:()=>I(D),className:`relative w-8 h-4 rounded-full transition-colors ${H?"bg-accent":"bg-[#333]"}`,children:d.jsx("span",{className:`absolute top-0.5 left-0.5 w-3 h-3 rounded-full bg-white transition-transform ${H?"translate-x-4":""}`})})]})]})]},D)})})]}),x&&d.jsxs("div",{className:"flex justify-end gap-2 pb-2",children:[d.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:[d.jsx(xa,{size:14})," Discard"]}),d.jsxs("button",{onClick:j,disabled:o,className:"flex items-center gap-1 px-3 py-1.5 text-sm bg-accent text-white disabled:opacity-50",children:[d.jsx(_a,{size:14})," ",o?"Saving…":"Save"]})]})]})}function Y2e(){return d.jsx(dJ,{children:d.jsx(aQ,{children:d.jsx(cQ,{children:d.jsxs(QK,{children:[d.jsx(nr,{path:"/",element:d.jsx(xQ,{})}),d.jsx(nr,{path:"/environment",element:d.jsx(e2e,{})}),d.jsx(nr,{path:"/config",element:d.jsx(PCe,{})}),d.jsx(nr,{path:"/alerts",element:d.jsx(qB,{})}),d.jsx(nr,{path:"/activity",element:d.jsx(qB,{})}),d.jsx(nr,{path:"/meshtastic/routing",element:d.jsx(VCe,{})}),d.jsx(nr,{path:"/notifications",element:d.jsx(Ej,{to:"/meshtastic/routing",replace:!0})}),d.jsx(nr,{path:"/reference",element:d.jsx(u2e,{})}),d.jsx(nr,{path:"/adapter-config",element:d.jsx(DZ,{})}),d.jsx(nr,{path:"/places",element:d.jsx(x2e,{})}),d.jsx(nr,{path:"/coverage",element:d.jsx(Z2e,{})}),d.jsx(nr,{path:"/data-sources",element:d.jsx(Ej,{to:"/environment",replace:!0})}),d.jsx(nr,{path:"/gauge-sites",element:d.jsx(RZ,{})}),d.jsx(nr,{path:"/town-anchors",element:d.jsx(OZ,{})}),d.jsx(nr,{path:"/mesh",element:d.jsx(AZ,{})}),d.jsx(nr,{path:"/meshtastic/connection",element:d.jsx(m2e,{})}),d.jsx(nr,{path:"/meshtastic/sources",element:d.jsx(BZ,{})}),d.jsx(nr,{path:"/meshtastic/scheduled",element:d.jsx(rF,{family:"meshtastic"})}),d.jsx(nr,{path:"/meshtastic/nodes",element:d.jsx(b2e,{})}),d.jsx(nr,{path:"/meshtastic/danger-zones",element:d.jsx(G2e,{})}),d.jsx(nr,{path:"/meshcore/connection",element:d.jsx(f2e,{})}),d.jsx(nr,{path:"/meshcore/routing",element:d.jsx(d2e,{})}),d.jsx(nr,{path:"/meshcore/scheduled",element:d.jsx(rF,{family:"meshcore"})}),d.jsx(nr,{path:"/meshcore/contacts",element:d.jsx(D2e,{})}),d.jsx(nr,{path:"/meshcore/companion",element:d.jsx(zZ,{})}),d.jsx(nr,{path:"/meshcore/danger-zones",element:d.jsx(H2e,{})})]})})})})}iT.createRoot(document.getElementById("root")).render(d.jsx(bf.StrictMode,{children:d.jsx(sJ,{children:d.jsx(Y2e,{})})})); diff --git a/work/meshai/dashboard/static/index.html b/work/meshai/dashboard/static/index.html deleted file mode 100644 index 60b9d5d..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_