index-cceaeb3e.js 482 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. import{S as li,d as le,k as Dt,T as zt,U as Xt,V as Ht,W as ve,X as ci,Y as Ae,Z as ne,$ as re,a0 as hi,C as Yt,a1 as Oe,F as jt,a2 as $e,a3 as me,a4 as di,a5 as Ie,a6 as ui,a7 as fi,a8 as pi,a9 as gi,aa as mi,f as _t,ab as xi,ac as yi,ad as ae,L as se,ae as qe,af as vi,_ as ce,ag as je,ah as Re,ai as ze,aj as Ne,ak as We,al as ue,D as xe,am as bi,an as Gt,ao as ki,ap as Vt,aq as $t,o as wt,c as Et,a as Mt,ar as Ti,as as Si,at as Mi,b as Rt,r as Pt,B as fe,h as Le,v as Wt,i as dt,w as pt,t as pe,p as Me,s as Kt,l as kt,j as St,A as Lt,O as ye,m as Nt,au as we,y as oe,z as Qt,u as he,M as Ke,av as wi,I as Ci,q as _i,g as Ai,x as Fe,P as ie}from"./index-e497b666.js";import{r as Pi}from"./vue.runtime.esm-bundler-8d6a0dde.js";import{_ as Ee,A as Di}from"./Certificate-813c5f89.js";import{e as Oi}from"./Task-28f1f3c2.js";import{a as He,b as Ze,c as Li,d as Je,f as Ei,h as Bi,T as Ii,i as ji,j as Ri,k as zi,g as Ni}from"./TaskData-11f744cb.js";import{_ as Qe,a as ti,b as Wi,c as Fi}from"./Tabs-3c1baf8d.js";import{_ as ge}from"./DatePicker-02d3d64b.js";import{_ as Hi,a as Gi,b as Xi,c as Yi}from"./RadioGroup-6edab0a1.js";import{_ as Ce}from"./Space-84278c21.js";import{r as Ui,u as Vi,e as $i,a as Ge,b as qi}from"./xlsx-97c7c9c5.js";import{b as ei,_ as Ki,a as Zi,c as Ji,u as Qi}from"./index-f2c1e765.js";import{a as ii,b as ts,_ as si}from"./Upload-e16a41ce.js";import{_ as oi,p as es,g as is,c as ss,d as os}from"./VerifyTemplateMapData-c79050aa.js";import{_ as Be}from"./Popconfirm-7119bd46.js";import{A as ns}from"./Add-f2559956.js";import{_ as rs}from"./PageHeader-74caddbf.js";import"./get-slot-1efb97e5.js";let Xe=!1;function as(){if(li&&window.CSS&&!Xe&&(Xe=!0,"registerProperty"in(window==null?void 0:window.CSS)))try{CSS.registerProperty({name:"--n-color-start",syntax:"<color>",inherits:!1,initialValue:"#0000"}),CSS.registerProperty({name:"--n-color-end",syntax:"<color>",inherits:!1,initialValue:"#0000"})}catch{}}const ls=le({name:"Remove",render(){return Dt("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},Dt("line",{x1:"400",y1:"256",x2:"112",y2:"256",style:`
  2. fill: none;
  3. stroke: currentColor;
  4. stroke-linecap: round;
  5. stroke-linejoin: round;
  6. stroke-width: 32px;
  7. `}))}}),cs=zt("input-group",`
  8. display: inline-flex;
  9. width: 100%;
  10. flex-wrap: nowrap;
  11. vertical-align: bottom;
  12. `,[Xt(">",[zt("input",[Xt("&:not(:last-child)",`
  13. border-top-right-radius: 0!important;
  14. border-bottom-right-radius: 0!important;
  15. `),Xt("&:not(:first-child)",`
  16. border-top-left-radius: 0!important;
  17. border-bottom-left-radius: 0!important;
  18. margin-left: -1px!important;
  19. `)]),zt("button",[Xt("&:not(:last-child)",`
  20. border-top-right-radius: 0!important;
  21. border-bottom-right-radius: 0!important;
  22. `,[Ht("state-border, border",`
  23. border-top-right-radius: 0!important;
  24. border-bottom-right-radius: 0!important;
  25. `)]),Xt("&:not(:first-child)",`
  26. border-top-left-radius: 0!important;
  27. border-bottom-left-radius: 0!important;
  28. `,[Ht("state-border, border",`
  29. border-top-left-radius: 0!important;
  30. border-bottom-left-radius: 0!important;
  31. `)])]),Xt("*",[Xt("&:not(:last-child)",`
  32. border-top-right-radius: 0!important;
  33. border-bottom-right-radius: 0!important;
  34. `,[Xt(">",[zt("input",`
  35. border-top-right-radius: 0!important;
  36. border-bottom-right-radius: 0!important;
  37. `),zt("base-selection",[zt("base-selection-label",`
  38. border-top-right-radius: 0!important;
  39. border-bottom-right-radius: 0!important;
  40. `),zt("base-selection-tags",`
  41. border-top-right-radius: 0!important;
  42. border-bottom-right-radius: 0!important;
  43. `),Ht("box-shadow, border, state-border",`
  44. border-top-right-radius: 0!important;
  45. border-bottom-right-radius: 0!important;
  46. `)])])]),Xt("&:not(:first-child)",`
  47. margin-left: -1px!important;
  48. border-top-left-radius: 0!important;
  49. border-bottom-left-radius: 0!important;
  50. `,[Xt(">",[zt("input",`
  51. border-top-left-radius: 0!important;
  52. border-bottom-left-radius: 0!important;
  53. `),zt("base-selection",[zt("base-selection-label",`
  54. border-top-left-radius: 0!important;
  55. border-bottom-left-radius: 0!important;
  56. `),zt("base-selection-tags",`
  57. border-top-left-radius: 0!important;
  58. border-bottom-left-radius: 0!important;
  59. `),Ht("box-shadow, border, state-border",`
  60. border-top-left-radius: 0!important;
  61. border-bottom-left-radius: 0!important;
  62. `)])])])])])]),hs={},ds=le({name:"InputGroup",props:hs,setup(ut){const{mergedClsPrefixRef:lt}=ve(ut);return ci("-input-group",cs,lt),{mergedClsPrefix:lt}},render(){const{mergedClsPrefix:ut}=this;return Dt("div",{class:`${ut}-input-group`},this.$slots)}}),us=zt("divider",`
  63. position: relative;
  64. display: flex;
  65. width: 100%;
  66. box-sizing: border-box;
  67. font-size: 16px;
  68. color: var(--n-text-color);
  69. transition:
  70. color .3s var(--n-bezier),
  71. background-color .3s var(--n-bezier);
  72. `,[Ae("vertical",`
  73. margin-top: 24px;
  74. margin-bottom: 24px;
  75. `,[Ae("no-title",`
  76. display: flex;
  77. align-items: center;
  78. `)]),Ht("title",`
  79. display: flex;
  80. align-items: center;
  81. margin-left: 12px;
  82. margin-right: 12px;
  83. white-space: nowrap;
  84. font-weight: var(--n-font-weight);
  85. `),ne("title-position-left",[Ht("line",[ne("left",{width:"28px"})])]),ne("title-position-right",[Ht("line",[ne("right",{width:"28px"})])]),ne("dashed",[Ht("line",`
  86. background-color: #0000;
  87. height: 0px;
  88. width: 100%;
  89. border-style: dashed;
  90. border-width: 1px 0 0;
  91. `)]),ne("vertical",`
  92. display: inline-block;
  93. height: 1em;
  94. margin: 0 8px;
  95. vertical-align: middle;
  96. width: 1px;
  97. `),Ht("line",`
  98. border: none;
  99. transition: background-color .3s var(--n-bezier), border-color .3s var(--n-bezier);
  100. height: 1px;
  101. width: 100%;
  102. margin: 0;
  103. `),Ae("dashed",[Ht("line",{backgroundColor:"var(--n-color)"})]),ne("dashed",[Ht("line",{borderColor:"var(--n-color)"})]),ne("vertical",{backgroundColor:"var(--n-color)"})]),fs=Object.assign(Object.assign({},re.props),{titlePlacement:{type:String,default:"center"},dashed:Boolean,vertical:Boolean}),ps=le({name:"Divider",props:fs,setup(ut){const{mergedClsPrefixRef:lt,inlineThemeDisabled:A}=ve(ut),ct=re("Divider","-divider",us,hi,ut,lt),q=Yt(()=>{const{common:{cubicBezierEaseInOut:tt},self:{color:it,textColor:Z,fontWeight:st}}=ct.value;return{"--n-bezier":tt,"--n-color":it,"--n-text-color":Z,"--n-font-weight":st}}),Y=A?Oe("divider",void 0,q,ut):void 0;return{mergedClsPrefix:lt,cssVars:A?void 0:q,themeClass:Y==null?void 0:Y.themeClass,onRender:Y==null?void 0:Y.onRender}},render(){var ut;const{$slots:lt,titlePlacement:A,vertical:ct,dashed:q,cssVars:Y,mergedClsPrefix:tt}=this;return(ut=this.onRender)===null||ut===void 0||ut.call(this),Dt("div",{role:"separator",class:[`${tt}-divider`,this.themeClass,{[`${tt}-divider--vertical`]:ct,[`${tt}-divider--no-title`]:!lt.default,[`${tt}-divider--dashed`]:q,[`${tt}-divider--title-position-${A}`]:lt.default&&A}],style:Y},ct?null:Dt("div",{class:`${tt}-divider__line ${tt}-divider__line--left`}),!ct&&lt.default?Dt(jt,null,Dt("div",{class:`${tt}-divider__title`},this.$slots),Dt("div",{class:`${tt}-divider__line ${tt}-divider__line--right`})):null)}}),gs=ut=>{const{primaryColor:lt,successColor:A,warningColor:ct,errorColor:q,infoColor:Y,fontWeightStrong:tt}=ut;return{fontWeight:tt,rotate:"252deg",colorStartPrimary:me(lt,{alpha:.6}),colorEndPrimary:lt,colorStartInfo:me(Y,{alpha:.6}),colorEndInfo:Y,colorStartWarning:me(ct,{alpha:.6}),colorEndWarning:ct,colorStartError:me(q,{alpha:.6}),colorEndError:q,colorStartSuccess:me(A,{alpha:.6}),colorEndSuccess:A}},ms={name:"GradientText",common:$e,self:gs},xs=ms,ys=zt("gradient-text",`
  104. display: inline-block;
  105. font-weight: var(--n-font-weight);
  106. -webkit-background-clip: text;
  107. background-clip: text;
  108. color: #0000;
  109. white-space: nowrap;
  110. background-image: linear-gradient(var(--n-rotate), var(--n-color-start) 0%, var(--n-color-end) 100%);
  111. transition:
  112. --n-color-start .3s var(--n-bezier),
  113. --n-color-end .3s var(--n-bezier);
  114. `),vs=Object.assign(Object.assign({},re.props),{size:[String,Number],fontSize:[String,Number],type:{type:String,default:"primary"},color:[Object,String],gradient:[Object,String]}),bs=le({name:"GradientText",props:vs,setup(ut){as();const{mergedClsPrefixRef:lt,inlineThemeDisabled:A}=ve(ut),ct=Yt(()=>{const{type:st}=ut;return st==="danger"?"error":st}),q=Yt(()=>{let st=ut.size||ut.fontSize;return st&&(st=di(st)),st||void 0}),Y=Yt(()=>{const st=ut.color||ut.gradient;if(typeof st=="string")return st;if(st){const Q=st.deg||0,G=st.from,K=st.to;return`linear-gradient(${Q}deg, ${G} 0%, ${K} 100%)`}}),tt=re("GradientText","-gradient-text",ys,xs,ut,lt),it=Yt(()=>{const{value:st}=ct,{common:{cubicBezierEaseInOut:Q},self:{rotate:G,[Ie("colorStart",st)]:K,[Ie("colorEnd",st)]:O,fontWeight:S}}=tt.value;return{"--n-bezier":Q,"--n-rotate":G,"--n-color-start":K,"--n-color-end":O,"--n-font-weight":S}}),Z=A?Oe("gradient-text",Yt(()=>ct.value[0]),it,ut):void 0;return{mergedClsPrefix:lt,compatibleType:ct,styleFontSize:q,styleBgImage:Y,cssVars:A?void 0:it,themeClass:Z==null?void 0:Z.themeClass,onRender:Z==null?void 0:Z.onRender}},render(){const{mergedClsPrefix:ut,onRender:lt}=this;return lt==null||lt(),Dt("span",{class:[`${ut}-gradient-text`,`${ut}-gradient-text--${this.compatibleType}-type`,this.themeClass],style:[{fontSize:this.styleFontSize,backgroundImage:this.styleBgImage},this.cssVars]},this.$slots)}}),ks=ut=>{const{textColorDisabled:lt}=ut;return{iconColorDisabled:lt}},Ts=ui({name:"InputNumber",common:$e,peers:{Button:fi,Input:pi},self:ks}),Ss=Ts;function Ms(ut){return ut==null||typeof ut=="string"&&ut.trim()===""?null:Number(ut)}function ws(ut){return ut.includes(".")&&(/^(-)?\d+.*(\.|0)$/.test(ut)||/^\.\d+$/.test(ut))}function Pe(ut){return ut==null?!0:!Number.isNaN(ut)}function Ye(ut,lt){return ut==null?"":lt===void 0?String(ut):ut.toFixed(lt)}function De(ut){if(ut===null)return null;if(typeof ut=="number")return ut;{const lt=Number(ut);return Number.isNaN(lt)?null:lt}}const Cs=Xt([zt("input-number-suffix",`
  115. display: inline-block;
  116. margin-right: 10px;
  117. `),zt("input-number-prefix",`
  118. display: inline-block;
  119. margin-left: 10px;
  120. `)]),Ue=800,Ve=100,_s=Object.assign(Object.assign({},re.props),{autofocus:Boolean,loading:{type:Boolean,default:void 0},placeholder:String,defaultValue:{type:Number,default:null},value:Number,step:{type:[Number,String],default:1},min:[Number,String],max:[Number,String],size:String,disabled:{type:Boolean,default:void 0},validator:Function,bordered:{type:Boolean,default:void 0},showButton:{type:Boolean,default:!0},buttonPlacement:{type:String,default:"right"},readonly:Boolean,clearable:Boolean,keyboard:{type:Object,default:{}},updateValueOnInput:{type:Boolean,default:!0},parse:Function,format:Function,precision:Number,status:String,"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],onFocus:[Function,Array],onBlur:[Function,Array],onClear:[Function,Array],onChange:[Function,Array]}),_e=le({name:"InputNumber",props:_s,setup(ut){const{mergedBorderedRef:lt,mergedClsPrefixRef:A,mergedRtlRef:ct}=ve(ut),q=re("InputNumber","-input-number",Cs,Ss,ut,A),{localeRef:Y}=gi("InputNumber"),tt=mi(ut),{mergedSizeRef:it,mergedDisabledRef:Z,mergedStatusRef:st}=tt,Q=_t(null),G=_t(null),K=_t(null),O=_t(ut.defaultValue),S=xi(ut,"value"),w=yi(S,O),D=_t(""),b=j=>{const et=String(j).split(".")[1];return et?et.length:0},f=j=>{const et=[ut.min,ut.max,ut.step,j].map(ot=>ot===void 0?0:b(ot));return Math.max(...et)},I=ae(()=>{const{placeholder:j}=ut;return j!==void 0?j:Y.value.placeholder}),p=ae(()=>{const j=De(ut.step);return j!==null?j===0?1:Math.abs(j):1}),c=ae(()=>{const j=De(ut.min);return j!==null?j:null}),y=ae(()=>{const j=De(ut.max);return j!==null?j:null}),T=j=>{const{value:et}=w;if(j===et){h();return}const{"onUpdate:value":ot,onUpdateValue:J,onChange:at}=ut,{nTriggerFormInput:W,nTriggerFormChange:F}=tt;at&&ue(at,j),J&&ue(J,j),ot&&ue(ot,j),O.value=j,W(),F()},m=({offset:j,doUpdateIfValid:et,fixPrecision:ot,isInputing:J})=>{const{value:at}=D;if(J&&ws(at))return!1;const W=(ut.parse||Ms)(at);if(W===null)return et&&T(null),null;if(Pe(W)){const F=b(W),{precision:E}=ut;if(E!==void 0&&E<F&&!ot)return!1;let X=parseFloat((W+j).toFixed(E??f(W)));if(Pe(X)){const{value:U}=y,{value:nt}=c;if(U!==null&&X>U){if(!et||J)return!1;X=U}if(nt!==null&&X<nt){if(!et||J)return!1;X=nt}return ut.validator&&!ut.validator(X)?!1:(et&&T(X),X)}}return!1},h=()=>{const{value:j}=w;if(Pe(j)){const{format:et,precision:ot}=ut;et?D.value=et(j):j===null||ot===void 0||b(j)>ot?D.value=Ye(j,void 0):D.value=Ye(j,ot)}else D.value=String(j)};h();const x=ae(()=>m({offset:0,doUpdateIfValid:!1,isInputing:!1,fixPrecision:!1})===!1),l=ae(()=>{const{value:j}=w;if(ut.validator&&j===null)return!1;const{value:et}=p;return m({offset:-et,doUpdateIfValid:!1,isInputing:!1,fixPrecision:!1})!==!1}),u=ae(()=>{const{value:j}=w;if(ut.validator&&j===null)return!1;const{value:et}=p;return m({offset:+et,doUpdateIfValid:!1,isInputing:!1,fixPrecision:!1})!==!1});function r(j){const{onFocus:et}=ut,{nTriggerFormFocus:ot}=tt;et&&ue(et,j),ot()}function i(j){var et,ot;if(j.target===((et=Q.value)===null||et===void 0?void 0:et.wrapperElRef))return;const J=m({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0});if(J!==!1){const F=(ot=Q.value)===null||ot===void 0?void 0:ot.inputElRef;F&&(F.value=String(J||"")),w.value===J&&h()}else h();const{onBlur:at}=ut,{nTriggerFormBlur:W}=tt;at&&ue(at,j),W(),xe(()=>{h()})}function t(j){const{onClear:et}=ut;et&&ue(et,j)}function e(){const{value:j}=u;if(!j){d();return}const{value:et}=w;if(et===null)ut.validator||T(M());else{const{value:ot}=p;m({offset:ot,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})}}function s(){const{value:j}=l;if(!j){o();return}const{value:et}=w;if(et===null)ut.validator||T(M());else{const{value:ot}=p;m({offset:-ot,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})}}const n=r,a=i;function M(){if(ut.validator)return null;const{value:j}=c,{value:et}=y;return j!==null?Math.max(0,j):et!==null?Math.min(0,et):0}function g(j){t(j),T(null)}function k(j){var et,ot,J;!((et=K.value)===null||et===void 0)&&et.$el.contains(j.target)&&j.preventDefault(),!((ot=G.value)===null||ot===void 0)&&ot.$el.contains(j.target)&&j.preventDefault(),(J=Q.value)===null||J===void 0||J.activate()}let C=null,B=null,L=null;function o(){L&&(window.clearTimeout(L),L=null),C&&(window.clearInterval(C),C=null)}function d(){V&&(window.clearTimeout(V),V=null),B&&(window.clearInterval(B),B=null)}function N(){o(),L=window.setTimeout(()=>{C=window.setInterval(()=>{s()},Ve)},Ue),Re("mouseup",document,o,{once:!0})}let V=null;function R(){d(),V=window.setTimeout(()=>{B=window.setInterval(()=>{e()},Ve)},Ue),Re("mouseup",document,d,{once:!0})}const H=()=>{B||e()},v=()=>{C||s()};function P(j){var et,ot;if(j.key==="Enter"){if(j.target===((et=Q.value)===null||et===void 0?void 0:et.wrapperElRef))return;m({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})!==!1&&((ot=Q.value)===null||ot===void 0||ot.deactivate())}else if(j.key==="ArrowUp"){if(!u.value||ut.keyboard.ArrowUp===!1)return;j.preventDefault(),m({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})!==!1&&e()}else if(j.key==="ArrowDown"){if(!l.value||ut.keyboard.ArrowDown===!1)return;j.preventDefault(),m({offset:0,doUpdateIfValid:!0,isInputing:!1,fixPrecision:!0})!==!1&&s()}}function _(j){D.value=j,ut.updateValueOnInput&&!ut.format&&!ut.parse&&ut.precision===void 0&&m({offset:0,doUpdateIfValid:!0,isInputing:!0,fixPrecision:!1})}se(w,()=>{h()});const z={focus:()=>{var j;return(j=Q.value)===null||j===void 0?void 0:j.focus()},blur:()=>{var j;return(j=Q.value)===null||j===void 0?void 0:j.blur()}},$=qe("InputNumber",ct,A);return Object.assign(Object.assign({},z),{rtlEnabled:$,inputInstRef:Q,minusButtonInstRef:G,addButtonInstRef:K,mergedClsPrefix:A,mergedBordered:lt,uncontrolledValue:O,mergedValue:w,mergedPlaceholder:I,displayedValueInvalid:x,mergedSize:it,mergedDisabled:Z,displayedValue:D,addable:u,minusable:l,mergedStatus:st,handleFocus:n,handleBlur:a,handleClear:g,handleMouseDown:k,handleAddClick:H,handleMinusClick:v,handleAddMousedown:R,handleMinusMousedown:N,handleKeyDown:P,handleUpdateDisplayedValue:_,mergedTheme:q,inputThemeOverrides:{paddingSmall:"0 8px 0 10px",paddingMedium:"0 8px 0 12px",paddingLarge:"0 8px 0 14px"},buttonThemeOverrides:Yt(()=>{const{self:{iconColorDisabled:j}}=q.value,[et,ot,J,at]=vi(j);return{textColorTextDisabled:`rgb(${et}, ${ot}, ${J})`,opacityDisabled:`${at}`}})})},render(){const{mergedClsPrefix:ut,$slots:lt}=this,A=()=>Dt(We,{text:!0,disabled:!this.minusable||this.mergedDisabled||this.readonly,focusable:!1,theme:this.mergedTheme.peers.Button,themeOverrides:this.mergedTheme.peerOverrides.Button,builtinThemeOverrides:this.buttonThemeOverrides,onClick:this.handleMinusClick,onMousedown:this.handleMinusMousedown,ref:"minusButtonInstRef"},{icon:()=>ze(lt["minus-icon"],()=>[Dt(Ne,{clsPrefix:ut},{default:()=>Dt(ls,null)})])}),ct=()=>Dt(We,{text:!0,disabled:!this.addable||this.mergedDisabled||this.readonly,focusable:!1,theme:this.mergedTheme.peers.Button,themeOverrides:this.mergedTheme.peerOverrides.Button,builtinThemeOverrides:this.buttonThemeOverrides,onClick:this.handleAddClick,onMousedown:this.handleAddMousedown,ref:"addButtonInstRef"},{icon:()=>ze(lt["add-icon"],()=>[Dt(Ne,{clsPrefix:ut},{default:()=>Dt(ns,null)})])});return Dt("div",{class:[`${ut}-input-number`,this.rtlEnabled&&`${ut}-input-number--rtl`]},Dt(ce,{ref:"inputInstRef",autofocus:this.autofocus,status:this.mergedStatus,bordered:this.mergedBordered,loading:this.loading,value:this.displayedValue,onUpdateValue:this.handleUpdateDisplayedValue,theme:this.mergedTheme.peers.Input,themeOverrides:this.mergedTheme.peerOverrides.Input,builtinThemeOverrides:this.inputThemeOverrides,size:this.mergedSize,placeholder:this.mergedPlaceholder,disabled:this.mergedDisabled,readonly:this.readonly,textDecoration:this.displayedValueInvalid?"line-through":void 0,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeydown:this.handleKeyDown,onMousedown:this.handleMouseDown,onClear:this.handleClear,clearable:this.clearable,internalLoadingBeforeSuffix:!0},{prefix:()=>{var q;return this.showButton&&this.buttonPlacement==="both"?[A(),je(lt.prefix,Y=>Y?Dt("span",{class:`${ut}-input-number-prefix`},Y):null)]:(q=lt.prefix)===null||q===void 0?void 0:q.call(lt)},suffix:()=>{var q;return this.showButton?[je(lt.suffix,Y=>Y?Dt("span",{class:`${ut}-input-number-suffix`},Y):null),this.buttonPlacement==="right"?A():null,ct()]:(q=lt.suffix)===null||q===void 0?void 0:q.call(lt)}}))}}),As=zt("thing",`
  121. display: flex;
  122. transition: color .3s var(--n-bezier);
  123. font-size: var(--n-font-size);
  124. color: var(--n-text-color);
  125. `,[zt("thing-avatar",`
  126. margin-right: 12px;
  127. margin-top: 2px;
  128. `),zt("thing-avatar-header-wrapper",`
  129. display: flex;
  130. flex-wrap: nowrap;
  131. `,[zt("thing-header-wrapper",`
  132. flex: 1;
  133. `)]),zt("thing-main",`
  134. flex-grow: 1;
  135. `,[zt("thing-header",`
  136. display: flex;
  137. margin-bottom: 4px;
  138. justify-content: space-between;
  139. align-items: center;
  140. `,[Ht("title",`
  141. font-size: 16px;
  142. font-weight: var(--n-title-font-weight);
  143. transition: color .3s var(--n-bezier);
  144. color: var(--n-title-text-color);
  145. `)]),Ht("description",[Xt("&:not(:last-child)",`
  146. margin-bottom: 4px;
  147. `)]),Ht("content",[Xt("&:not(:first-child)",`
  148. margin-top: 12px;
  149. `)]),Ht("footer",[Xt("&:not(:first-child)",`
  150. margin-top: 12px;
  151. `)]),Ht("action",[Xt("&:not(:first-child)",`
  152. margin-top: 12px;
  153. `)])])]),Ps=Object.assign(Object.assign({},re.props),{title:String,titleExtra:String,description:String,descriptionStyle:[String,Object],content:String,contentStyle:[String,Object],contentIndented:Boolean}),Ds=le({name:"Thing",props:Ps,setup(ut,{slots:lt}){const{mergedClsPrefixRef:A,inlineThemeDisabled:ct,mergedRtlRef:q}=ve(ut),Y=re("Thing","-thing",As,bi,ut,A),tt=qe("Thing",q,A),it=Yt(()=>{const{self:{titleTextColor:st,textColor:Q,titleFontWeight:G,fontSize:K},common:{cubicBezierEaseInOut:O}}=Y.value;return{"--n-bezier":O,"--n-font-size":K,"--n-text-color":Q,"--n-title-font-weight":G,"--n-title-text-color":st}}),Z=ct?Oe("thing",void 0,it,ut):void 0;return()=>{var st;const{value:Q}=A,G=tt?tt.value:!1;return(st=Z==null?void 0:Z.onRender)===null||st===void 0||st.call(Z),Dt("div",{class:[`${Q}-thing`,Z==null?void 0:Z.themeClass,G&&`${Q}-thing--rtl`],style:ct?void 0:it.value},lt.avatar&&ut.contentIndented?Dt("div",{class:`${Q}-thing-avatar`},lt.avatar()):null,Dt("div",{class:`${Q}-thing-main`},!ut.contentIndented&&(lt.header||ut.title||lt["header-extra"]||ut.titleExtra||lt.avatar)?Dt("div",{class:`${Q}-thing-avatar-header-wrapper`},lt.avatar?Dt("div",{class:`${Q}-thing-avatar`},lt.avatar()):null,lt.header||ut.title||lt["header-extra"]||ut.titleExtra?Dt("div",{class:`${Q}-thing-header-wrapper`},Dt("div",{class:`${Q}-thing-header`},lt.header||ut.title?Dt("div",{class:`${Q}-thing-header__title`},lt.header?lt.header():ut.title):null,lt["header-extra"]||ut.titleExtra?Dt("div",{class:`${Q}-thing-header__extra`},lt["header-extra"]?lt["header-extra"]():ut.titleExtra):null),lt.description||ut.description?Dt("div",{class:`${Q}-thing-main__description`,style:ut.descriptionStyle},lt.description?lt.description():ut.description):null):null):Dt(jt,null,lt.header||ut.title||lt["header-extra"]||ut.titleExtra?Dt("div",{class:`${Q}-thing-header`},lt.header||ut.title?Dt("div",{class:`${Q}-thing-header__title`},lt.header?lt.header():ut.title):null,lt["header-extra"]||ut.titleExtra?Dt("div",{class:`${Q}-thing-header__extra`},lt["header-extra"]?lt["header-extra"]():ut.titleExtra):null):null,lt.description||ut.description?Dt("div",{class:`${Q}-thing-main__description`,style:ut.descriptionStyle},lt.description?lt.description():ut.description):null),lt.default||ut.content?Dt("div",{class:`${Q}-thing-main__content`,style:ut.contentStyle},lt.default?lt.default():ut.content):null,lt.footer?Dt("div",{class:`${Q}-thing-main__footer`},lt.footer()):null,lt.action?Dt("div",{class:`${Q}-thing-main__action`},lt.action()):null))}}}),Os=ut=>Gt.request({method:"POST",url:"/v3/Data/List",data:ut,baseURL:ki}),Ls=ut=>Gt.request({method:"POST",url:"/TaskDataCopy/Recover",data:ut,baseURL:localStorage.getItem("ping")?Vt:$t}),Es=ut=>Gt.request({method:"POST",url:"/TaskDataCopy/Del",data:ut,baseURL:localStorage.getItem("ping")?Vt:$t}),Bs=ut=>Gt.request({method:"POST",url:"/TaskDataCopy/Add",data:ut,baseURL:localStorage.getItem("ping")?Vt:$t}),Is=ut=>Gt.request({method:"POST",url:"/TaskDataCopy/List",data:ut,baseURL:localStorage.getItem("ping")?Vt:$t}),js=ut=>Gt.request({method:"POST",url:"/TaskData/DataGeometricScale",data:ut,baseURL:localStorage.getItem("ping")?Vt:$t}),Rs=ut=>Gt.request({method:"POST",url:"/TaskData/CopyFromPositionSN",data:ut,baseURL:localStorage.getItem("ping")?Vt:$t}),zs=ut=>Gt.request({method:"POST",url:"/TaskData/CopyFromPositionAverageSN",data:ut,baseURL:localStorage.getItem("ping")?Vt:$t}),Ns=ut=>Gt.request({method:"POST",url:"/TaskData/DataBatchDelete",data:ut,baseURL:localStorage.getItem("ping")?Vt:$t}),Ws=ut=>Gt.request({method:"POST",url:"/TaskData/DataRemoveDuplicates",data:ut,baseURL:localStorage.getItem("ping")?Vt:$t}),Fs=ut=>Gt.request({method:"POST",url:"/TaskData/RepairSensorData",data:ut,baseURL:localStorage.getItem("ping")?Vt:$t}),Hs=ut=>Gt.request({method:"POST",url:"/TaskData/DataSensorDataTrend",data:ut,baseURL:localStorage.getItem("ping")?Vt:$t}),Gs=ut=>Gt.request({method:"POST",url:"/TaskData/UpdateRand",data:ut,baseURL:localStorage.getItem("ping")?Vt:$t}),Xs=ut=>Gt.request({method:"POST",url:"/TaskData/DataSkewingInterval",data:ut,baseURL:localStorage.getItem("ping")?Vt:$t}),Ys=ut=>Gt.request({method:"POST",url:"/TaskData/UpdateFix",data:ut,baseURL:localStorage.getItem("ping")?Vt:$t}),Us=ut=>Gt.request({method:"POST",url:"/TaskData/DataSensorDataSmooth",data:ut,baseURL:localStorage.getItem("ping")?Vt:$t}),Vs={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},$s=Mt("path",{d:"M296 64h-80a7.91 7.91 0 0 0-8 8v24h96V72a7.91 7.91 0 0 0-8-8z",fill:"none"},null,-1),qs=Mt("path",{d:"M432 96h-96V72a40 40 0 0 0-40-40h-80a40 40 0 0 0-40 40v24H80a16 16 0 0 0 0 32h17l19 304.92c1.42 26.85 22 47.08 48 47.08h184c26.13 0 46.3-19.78 48-47l19-305h17a16 16 0 0 0 0-32zM192.57 416H192a16 16 0 0 1-16-15.43l-8-224a16 16 0 1 1 32-1.14l8 224A16 16 0 0 1 192.57 416zM272 400a16 16 0 0 1-32 0V176a16 16 0 0 1 32 0zm32-304h-96V72a7.91 7.91 0 0 1 8-8h80a7.91 7.91 0 0 1 8 8zm32 304.57A16 16 0 0 1 320 416h-.58A16 16 0 0 1 304 399.43l8-224a16 16 0 1 1 32 1.14z",fill:"currentColor"},null,-1),Ks=[$s,qs],Zs=le({name:"Trash",render:function(lt,A){return wt(),Et("svg",Vs,Ks)}});var Js={exports:{}};(function(ut,lt){(function(A,ct){ut.exports=ct(Ti,Pi)})(window,function(A,ct){return Y=[function(it,Z){it.exports=A},function(it,Z){it.exports=ct},function(it,Q,st){st.r(Q),st.d(Q,"Chart",function(){return c}),st.d(Q,"default",function(){return y});var Q=st(0),G=st.n(Q);function K(T,m){return function h(x,l,u){function r(i,t){!G.a.isObject(i,!u)||G.a.isClass(i)||G.a.isDOMElement(i)?x[t]=l[t]:x[t]=h(x[t]||G.a.isArray(i)?[]:{},i,u)}return G.a.isArray(l)?l.forEach(r):G.a.objectEach(l,r),x}({},T,m)}var O=st(1);function S(T){return(S=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(m){return typeof m}:function(m){return m&&typeof Symbol=="function"&&m.constructor===Symbol&&m!==Symbol.prototype?"symbol":typeof m})(T)}function w(T){return function(m){if(Array.isArray(m))return D(m)}(T)||function(m){if(typeof Symbol<"u"&&m[Symbol.iterator]!=null||m["@@iterator"]!=null)return Array.from(m)}(T)||function(m,h){var x;if(m)return typeof m=="string"?D(m,h):(x=(x=Object.prototype.toString.call(m).slice(8,-1))==="Object"&&m.constructor?m.constructor.name:x)==="Map"||x==="Set"?Array.from(m):x==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(x)?D(m,h):void 0}(T)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
  154. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function D(T,m){(m==null||m>T.length)&&(m=T.length);for(var h=0,x=new Array(m);h<m;h++)x[h]=T[h];return x}function b(T,m){var h,x=Object.keys(T);return Object.getOwnPropertySymbols&&(h=Object.getOwnPropertySymbols(T),m&&(h=h.filter(function(l){return Object.getOwnPropertyDescriptor(T,l).enumerable})),x.push.apply(x,h)),x}function f(T){for(var m=1;m<arguments.length;m++){var h=arguments[m]!=null?arguments[m]:{};m%2?b(Object(h),!0).forEach(function(x){var l,u;l=T,u=h[x=x],(x=function(r){return r=function(i,t){if(S(i)!=="object"||i===null)return i;var e=i[Symbol.toPrimitive];if(e===void 0)return(t==="string"?String:Number)(i);if(e=e.call(i,t||"default"),S(e)!=="object")return e;throw new TypeError("@@toPrimitive must return a primitive value.")}(r,"string"),S(r)==="symbol"?r:String(r)}(x))in l?Object.defineProperty(l,x,{value:u,enumerable:!0,configurable:!0,writable:!0}):l[x]=u}):Object.getOwnPropertyDescriptors?Object.defineProperties(T,Object.getOwnPropertyDescriptors(h)):b(Object(h)).forEach(function(x){Object.defineProperty(T,x,Object.getOwnPropertyDescriptor(h,x))})}return T}var I={template:'<div ref="chart"></div>',props:{constructorType:{type:String,default:"chart"},options:{type:Object,required:!0},callback:Function,updateArgs:{type:Array,default:function(){return[!0,!0]}},highcharts:{type:Object},deepCopyOnUpdate:{type:Boolean,default:!0}}},p=function(T,m){return m.split(".")[0]<3?f(f({},I),{},{render:function(h){return h("div",{ref:"chart"})},beforeDestroy:function(){this.chart&&this.chart.destroy()},watch:{options:{handler:function(h){var x;(x=this.chart).update.apply(x,[K(h,this.deepCopyOnUpdate)].concat(w(this.updateArgs)))},deep:!0}},mounted:function(){var h=this.highcharts||T;this.options&&h[this.constructorType]?this.chart=h[this.constructorType](this.$refs.chart,K(this.options,!0),this.callback||null):this.options?console.warn("'".concat(this.constructorType,"' constructor-type is incorrect. Sometimes this error is caused by the fact, that the corresponding module wasn't imported.")):console.warn('The "options" parameter was not passed.')}}):f(f({},I),{},{render:function(){return Object(O.h)("div",{ref:"chartContainer"})},setup:function(h){var x=Object(O.ref)(null),l=Object(O.ref)({});return Object(O.onMounted)(function(){var u=h.highcharts||T;h.options&&u[h.constructorType]?l.value=u[h.constructorType](x.value,K(h.options,!0),h.callback||null):h.options?console.warn("'".concat(h.constructorType,"' constructor-type is incorrect. Sometimes this error is caused by the fact, that the corresponding module wasn't imported.")):console.warn('The "options" parameter was not passed.')}),Object(O.watch)(function(){return h.options},function(u,r){var i;(i=l.value).update.apply(i,[K(u,h.deepCopyOnUpdate)].concat(w(h.updateArgs)))},{deep:!0}),Object(O.onBeforeUnmount)(function(){l.value&&l.value.destroy()}),{chart:l,chartContainer:x,props:h}}})},c=p(G.a,O.version||st.n(O).a.version);function y(T){var m=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{};T.component(m.tagName||"highcharts",p(m.highcharts||G.a,T.version))}}],tt={},q.m=Y,q.c=tt,q.d=function(it,Z,st){q.o(it,Z)||Object.defineProperty(it,Z,{enumerable:!0,get:st})},q.r=function(it){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(it,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(it,"__esModule",{value:!0})},q.t=function(it,Z){if(1&Z&&(it=q(it)),8&Z||4&Z&&typeof it=="object"&&it&&it.__esModule)return it;var st=Object.create(null);if(q.r(st),Object.defineProperty(st,"default",{enumerable:!0,value:it}),2&Z&&typeof it!="string")for(var Q in it)q.d(st,Q,function(G){return it[G]}.bind(null,Q));return st},q.n=function(it){var Z=it&&it.__esModule?function(){return it.default}:function(){return it};return q.d(Z,"a",Z),Z},q.o=function(it,Z){return Object.prototype.hasOwnProperty.call(it,Z)},q.p="",q(q.s=2);function q(it){var Z;return(tt[it]||(Z=tt[it]={i:it,l:!1,exports:{}},Y[it].call(Z.exports,Z,Z.exports,q),Z.l=!0,Z)).exports}var Y,tt})})(Js);var ni={exports:{}};/**
  155. * @license Highstock JS v11.1.0 (2023-06-05)
  156. *
  157. * (c) 2009-2021 Torstein Honsi
  158. *
  159. * License: www.highcharts.com/license
  160. */(function(ut){(function(lt,A){ut.exports?(A.default=A,ut.exports=lt.document?A(lt):A):(lt.Highcharts&&lt.Highcharts.error(16,!0),lt.Highcharts=A(lt))})(typeof window<"u"?window:Si,function(lt){var A={};function ct(q,Y,tt,it){q.hasOwnProperty(Y)||(q[Y]=it.apply(null,tt),typeof CustomEvent=="function"&&lt.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:Y,module:q[Y]}})))}return ct(A,"Core/Globals.js",[],function(){var q;return function(Y){Y.SVG_NS="http://www.w3.org/2000/svg",Y.product="Highcharts",Y.version="11.1.0",Y.win=typeof lt<"u"?lt:{},Y.doc=Y.win.document,Y.svg=Y.doc&&Y.doc.createElementNS&&!!Y.doc.createElementNS(Y.SVG_NS,"svg").createSVGRect,Y.userAgent=Y.win.navigator&&Y.win.navigator.userAgent||"",Y.isChrome=Y.userAgent.indexOf("Chrome")!==-1,Y.isFirefox=Y.userAgent.indexOf("Firefox")!==-1,Y.isMS=/(edge|msie|trident)/i.test(Y.userAgent)&&!Y.win.opera,Y.isSafari=!Y.isChrome&&Y.userAgent.indexOf("Safari")!==-1,Y.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(Y.userAgent),Y.isWebKit=Y.userAgent.indexOf("AppleWebKit")!==-1,Y.deg2rad=Math.PI*2/360,Y.hasBidiBug=Y.isFirefox&&parseInt(Y.userAgent.split("Firefox/")[1],10)<4,Y.hasTouch=!!Y.win.TouchEvent,Y.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],Y.noop=function(){},Y.supportsPassiveEvents=function(){let tt=!1;if(!Y.isMS){const it=Object.defineProperty({},"passive",{get:function(){tt=!0}});Y.win.addEventListener&&Y.win.removeEventListener&&(Y.win.addEventListener("testPassive",Y.noop,it),Y.win.removeEventListener("testPassive",Y.noop,it))}return tt}(),Y.charts=[],Y.dateFormats={},Y.seriesTypes={},Y.symbolSizes={},Y.chartCount=0}(q||(q={})),q}),ct(A,"Core/Utilities.js",[A["Core/Globals.js"]],function(q){const{charts:Y,doc:tt,win:it}=q;function Z(E,X,U,nt){const rt=X?"Highcharts error":"Highcharts warning";E===32&&(E=`${rt}: Deprecated member`);const ht=f(E);let ft=ht?`${rt} #${E}: www.highcharts.com/errors/${E}/`:E.toString();const mt=function(){if(X)throw new Error(ft);it.console&&Z.messages.indexOf(ft)===-1&&console.warn(ft)};if(typeof nt<"u"){let gt="";ht&&(ft+="?"),z(nt,function(xt,bt){gt+=`
  161. - ${bt}: ${xt}`,ht&&(ft+=encodeURI(bt)+"="+encodeURI(xt))}),ft+=gt}et(q,"displayError",{chart:U,code:E,message:ft,params:nt},mt),Z.messages.push(ft)}(function(E){E.messages=[]})(Z||(Z={}));function st(){let E,X=arguments,U={};const nt=function(ht,ft){return typeof ht!="object"&&(ht={}),z(ft,function(mt,gt){gt==="__proto__"||gt==="constructor"||(w(mt,!0)&&!b(mt)&&!D(mt)?ht[gt]=nt(ht[gt]||{},mt):ht[gt]=ft[gt])}),ht};X[0]===!0&&(U=X[1],X=Array.prototype.slice.call(X,2));const rt=X.length;for(E=0;E<rt;E++)U=nt(U,X[E]);return U}function Q(E,X,U){return E>X?E<U?E:U:X}function G(E,X,U,nt){const rt={};function ht(ft,mt,gt,xt){const bt=U?mt:ft;z(ft,function(Tt,vt){if(!xt&&nt&&nt.indexOf(vt)>-1&&mt[vt]){Tt=m(Tt),gt[vt]=[];for(let yt=0;yt<Math.max(Tt.length,mt[vt].length);yt++)mt[vt][yt]&&(Tt[yt]===void 0?gt[vt][yt]=mt[vt][yt]:(gt[vt][yt]={},ht(Tt[yt],mt[vt][yt],gt[vt][yt],xt+1)))}else w(Tt,!0)&&!Tt.nodeType?(gt[vt]=S(Tt)?[]:{},ht(Tt,mt[vt]||{},gt[vt],xt+1),Object.keys(gt[vt]).length===0&&!(vt==="colorAxis"&&xt===0)&&delete gt[vt]):(ft[vt]!==mt[vt]||vt in ft&&!(vt in mt))&&(gt[vt]=bt[vt])})}return ht(E,X,rt,0),rt}function K(E,X){return parseInt(E,X||10)}function O(E){return typeof E=="string"}function S(E){const X=Object.prototype.toString.call(E);return X==="[object Array]"||X==="[object Array Iterator]"}function w(E,X){return!!E&&typeof E=="object"&&(!X||!S(E))}function D(E){return w(E)&&typeof E.nodeType=="number"}function b(E){const X=E&&E.constructor;return!!(w(E,!0)&&!D(E)&&X&&X.name&&X.name!=="Object")}function f(E){return typeof E=="number"&&!isNaN(E)&&E<1/0&&E>-1/0}function I(E,X){let U=E.length;for(;U--;)if(E[U]===X){E.splice(U,1);break}}function p(E,X){const U=E.options.index,nt=X.length;let rt;for(rt=E.options.isInternal?nt:0;rt<nt+1;rt++)if(!X[rt]||f(U)&&U<u(X[rt].options.index,X[rt]._i)||X[rt].options.isInternal){X.splice(rt,0,E);break}return rt}function c(E,X){return E.indexOf(X)<0&&!!E.push(X)}function y(E){return typeof E<"u"&&E!==null}function T(E,X,U){const nt=O(X)&&!y(U);let rt;const ht=(ft,mt)=>{y(ft)?E.setAttribute(mt,ft):nt?(rt=E.getAttribute(mt),!rt&&mt==="class"&&(rt=E.getAttribute(mt+"Name"))):E.removeAttribute(mt)};return O(X)?ht(U,X):z(X,ht),rt}function m(E){return S(E)?E:[E]}function h(E,X,U){return X>0?setTimeout(E,X,U):(E.call(0,U),-1)}function x(E){y(E)&&clearTimeout(E)}function l(E,X){let U;E||(E={});for(U in X)E[U]=X[U];return E}function u(){const E=arguments,X=E.length;for(let U=0;U<X;U++){const nt=E[U];if(typeof nt<"u"&&nt!==null)return nt}}function r(E,X){q.isMS&&!q.svg&&X&&y(X.opacity)&&(X.filter=`alpha(opacity=${X.opacity*100})`),l(E.style,X)}function i(E,X,U,nt,rt){const ht=tt.createElement(E);return X&&l(ht,X),rt&&r(ht,{padding:"0",border:"none",margin:"0"}),U&&r(ht,U),nt&&nt.appendChild(ht),ht}function t(E,X){const U=function(){};return U.prototype=new E,l(U.prototype,X),U}function e(E,X,U){return new Array((X||2)+1-String(E).replace("-","").length).join(U||"0")+E}function s(E,X,U){return/%$/.test(E)?X*parseFloat(E)/100+(U||0):parseFloat(E)}function n(E,X,U){const nt=E[X];E[X]=function(){const rt=arguments,ht=this;return U.apply(this,[function(){return nt.apply(ht,arguments.length?arguments:rt)}].concat([].slice.call(arguments)))}}function a(E){return Math.pow(10,Math.floor(Math.log(E)/Math.LN10))}function M(E,X,U,nt,rt){let ht,ft=E;U=u(U,a(E));const mt=E/U;for(X||(X=rt?[1,1.2,1.5,2,2.5,3,4,5,6,8,10]:[1,2,2.5,5,10],nt===!1&&(U===1?X=X.filter(function(gt){return gt%1===0}):U<=.1&&(X=[1/U]))),ht=0;ht<X.length&&(ft=X[ht],!(rt&&ft*U>=E||!rt&&mt<=(X[ht]+(X[ht+1]||X[ht]))/2));ht++);return ft=o(ft*U,-Math.round(Math.log(.001)/Math.LN10)),ft}function g(E,X){const U=E.length;let nt,rt;for(rt=0;rt<U;rt++)E[rt].safeI=rt;for(E.sort(function(ht,ft){return nt=X(ht,ft),nt===0?ht.safeI-ft.safeI:nt}),rt=0;rt<U;rt++)delete E[rt].safeI}function k(E){let X=E.length,U=E[0];for(;X--;)E[X]<U&&(U=E[X]);return U}function C(E){let X=E.length,U=E[0];for(;X--;)E[X]>U&&(U=E[X]);return U}function B(E,X){z(E,function(U,nt){U&&U!==X&&U.destroy&&U.destroy(),delete E[nt]})}function L(E){E&&E.parentElement&&E.parentElement.removeChild(E)}function o(E,X){return E>1e14?E:parseFloat(E.toPrecision(X||14))}const d={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:24*36e5,week:7*24*36e5,month:28*24*36e5,year:364*24*36e5};Math.easeInOutSine=function(E){return-.5*(Math.cos(Math.PI*E)-1)};function N(E,X){const U=!X;let nt,rt,ht,ft;return E.forEach(mt=>{if(mt.length>1)for(rt=mt.length-1,ft=rt;ft>0;ft--)ht=mt[ft]-mt[ft-1],ht<0&&!U?(X==null||X(),X=void 0):ht&&(typeof nt>"u"||ht<nt)&&(nt=ht)}),nt}function V(E,X){const U=E.split(".");for(;U.length&&y(X);){const nt=U.shift();if(typeof nt>"u"||nt==="__proto__")return;if(nt==="this"){let ht;return w(X)&&(ht=X["@this"]),ht??X}const rt=X[nt];if(!y(rt)||typeof rt=="function"||typeof rt.nodeType=="number"||rt===it)return;X=rt}return X}function R(E,X,U){let nt;if(X==="width"){let ht=Math.min(E.offsetWidth,E.scrollWidth);const ft=E.getBoundingClientRect&&E.getBoundingClientRect().width;return ft<ht&&ft>=ht-1&&(ht=Math.floor(ft)),Math.max(0,ht-(R(E,"padding-left",!0)||0)-(R(E,"padding-right",!0)||0))}if(X==="height")return Math.max(0,Math.min(E.offsetHeight,E.scrollHeight)-(R(E,"padding-top",!0)||0)-(R(E,"padding-bottom",!0)||0));const rt=it.getComputedStyle(E,void 0);return rt&&(nt=rt.getPropertyValue(X),u(U,X!=="opacity")&&(nt=K(nt))),nt}function H(E,X,U){return Z(32,!1,void 0,{"Highcharts.inArray":"use Array.indexOf"}),X.indexOf(E,U)}const v=Array.prototype.find?function(E,X){return E.find(X)}:function(E,X){let U;const nt=E.length;for(U=0;U<nt;U++)if(X(E[U],U))return E[U]};function P(E){return Z(32,!1,void 0,{"Highcharts.keys":"use Object.keys"}),Object.keys(E)}function _(E){const X=tt.documentElement,U=E.parentElement||E.parentNode?E.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:U.top+(it.pageYOffset||X.scrollTop)-(X.clientTop||0),left:U.left+(it.pageXOffset||X.scrollLeft)-(X.clientLeft||0),width:U.width,height:U.height}}function z(E,X,U){for(const nt in E)Object.hasOwnProperty.call(E,nt)&&X.call(U||E[nt],E[nt],nt,E)}z({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(E,X){q[X]=function(U){return Z(32,!1,void 0,{[`Highcharts.${X}`]:`use Array.${E}`}),Array.prototype[E].apply(U,[].slice.call(arguments,1))}});function $(E,X,U,nt={}){const rt=typeof E=="function"&&E.prototype||E;Object.hasOwnProperty.call(rt,"hcEvents")||(rt.hcEvents={});const ht=rt.hcEvents;q.Point&&E instanceof q.Point&&E.series&&E.series.chart&&(E.series.chart.runTrackerClick=!0);const ft=E.addEventListener;ft&&ft.call(E,X,U,q.supportsPassiveEvents?{passive:nt.passive===void 0?X.indexOf("touch")!==-1:nt.passive,capture:!1}:!1),ht[X]||(ht[X]=[]);const mt={fn:U,order:typeof nt.order=="number"?nt.order:1/0};return ht[X].push(mt),ht[X].sort((gt,xt)=>gt.order-xt.order),function(){j(E,X,U)}}function j(E,X,U){function nt(ft,mt){const gt=E.removeEventListener;gt&&gt.call(E,ft,mt,!1)}function rt(ft){let mt,gt;E.nodeName&&(X?(mt={},mt[X]=!0):mt=ft,z(mt,function(xt,bt){if(ft[bt])for(gt=ft[bt].length;gt--;)nt(bt,ft[bt][gt].fn)}))}const ht=typeof E=="function"&&E.prototype||E;if(Object.hasOwnProperty.call(ht,"hcEvents")){const ft=ht.hcEvents;if(X){const mt=ft[X]||[];U?(ft[X]=mt.filter(function(gt){return U!==gt.fn}),nt(X,U)):(rt(ft),ft[X]=[])}else rt(ft),delete ht.hcEvents}}function et(E,X,U,nt){let rt;if(U=U||{},tt.createEvent&&(E.dispatchEvent||E.fireEvent&&E!==q))rt=tt.createEvent("Events"),rt.initEvent(X,!0,!0),U=l(rt,U),E.dispatchEvent?E.dispatchEvent(U):E.fireEvent(X,U);else if(E.hcEvents){U.target||l(U,{preventDefault:function(){U.defaultPrevented=!0},target:E,type:X});const ht=[];let ft=E,mt=!1;for(;ft.hcEvents;)Object.hasOwnProperty.call(ft,"hcEvents")&&ft.hcEvents[X]&&(ht.length&&(mt=!0),ht.unshift.apply(ht,ft.hcEvents[X])),ft=Object.getPrototypeOf(ft);mt&&ht.sort((gt,xt)=>gt.order-xt.order),ht.forEach(gt=>{gt.fn.call(E,U)===!1&&U.preventDefault()})}nt&&!U.defaultPrevented&&nt.call(E,U)}let ot;const J=function(){const E=Math.random().toString(36).substring(2,9)+"-";let X=0;return function(){return"highcharts-"+(ot?"":E)+X++}}();function at(E){return ot=u(E,ot)}function W(E){return typeof E=="function"}return it.jQuery&&(it.jQuery.fn.highcharts=function(){const E=[].slice.call(arguments);if(this[0])return E[0]?(new q[O(E[0])?E.shift():"Chart"](this[0],E[0],E[1]),this):Y[T(this[0],"data-highcharts-chart")]}),{addEvent:$,arrayMax:C,arrayMin:k,attr:T,clamp:Q,clearTimeout:x,correctFloat:o,createElement:i,css:r,defined:y,destroyObjectProperties:B,diffObjects:G,discardElement:L,erase:I,error:Z,extend:l,extendClass:t,find:v,fireEvent:et,getClosestDistance:N,getMagnitude:a,getNestedProperty:V,getStyle:R,inArray:H,insertItem:p,isArray:S,isClass:b,isDOMElement:D,isFunction:W,isNumber:f,isObject:w,isString:O,keys:P,merge:st,normalizeTickInterval:M,objectEach:z,offset:_,pad:e,pick:u,pInt:K,pushUnique:c,relativeLength:s,removeEvent:j,splat:m,stableSort:g,syncTimeout:h,timeUnits:d,uniqueKey:J,useSerialIds:at,wrap:n}}),ct(A,"Core/Chart/ChartDefaults.js",[],function(){return{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"}}),ct(A,"Core/Color/Color.js",[A["Core/Globals.js"],A["Core/Utilities.js"]],function(q,Y){const{isNumber:tt,merge:it,pInt:Z}=Y;class st{static parse(G){return G?new st(G):st.None}constructor(G){this.rgba=[NaN,NaN,NaN,NaN],this.input=G;const K=q.Color;if(K&&K!==st)return new K(G);this.init(G)}init(G){let K,O,S,w;if(typeof G=="object"&&typeof G.stops<"u")this.stops=G.stops.map(D=>new st(D[1]));else if(typeof G=="string"){if(this.input=G=st.names[G.toLowerCase()]||G,G.charAt(0)==="#"){const D=G.length,b=parseInt(G.substr(1),16);D===7?O=[(b&16711680)>>16,(b&65280)>>8,b&255,1]:D===4&&(O=[(b&3840)>>4|(b&3840)>>8,(b&240)>>4|b&240,(b&15)<<4|b&15,1])}if(!O)for(S=st.parsers.length;S--&&!O;)w=st.parsers[S],K=w.regex.exec(G),K&&(O=w.parse(K))}O&&(this.rgba=O)}get(G){const K=this.input,O=this.rgba;if(typeof K=="object"&&typeof this.stops<"u"){const S=it(K);return S.stops=[].slice.call(S.stops),this.stops.forEach((w,D)=>{S.stops[D]=[S.stops[D][0],w.get(G)]}),S}return O&&tt(O[0])?G==="rgb"||!G&&O[3]===1?"rgb("+O[0]+","+O[1]+","+O[2]+")":G==="a"?`${O[3]}`:"rgba("+O.join(",")+")":K}brighten(G){const K=this.rgba;if(this.stops)this.stops.forEach(function(O){O.brighten(G)});else if(tt(G)&&G!==0)for(let O=0;O<3;O++)K[O]+=Z(G*255),K[O]<0&&(K[O]=0),K[O]>255&&(K[O]=255);return this}setOpacity(G){return this.rgba[3]=G,this}tweenTo(G,K){const O=this.rgba,S=G.rgba;if(!tt(O[0])||!tt(S[0]))return G.input||"none";const w=S[3]!==1||O[3]!==1;return(w?"rgba(":"rgb(")+Math.round(S[0]+(O[0]-S[0])*(1-K))+","+Math.round(S[1]+(O[1]-S[1])*(1-K))+","+Math.round(S[2]+(O[2]-S[2])*(1-K))+(w?","+(S[3]+(O[3]-S[3])*(1-K)):"")+")"}}return st.names={white:"#ffffff",black:"#000000"},st.parsers=[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(Q){return[Z(Q[1]),Z(Q[2]),Z(Q[3]),parseFloat(Q[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(Q){return[Z(Q[1]),Z(Q[2]),Z(Q[3]),1]}}],st.None=new st(""),st}),ct(A,"Core/Color/Palettes.js",[],function(){return{colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"]}}),ct(A,"Core/Time.js",[A["Core/Globals.js"],A["Core/Utilities.js"]],function(q,Y){const{win:tt}=q,{defined:it,error:Z,extend:st,isObject:Q,merge:G,objectEach:K,pad:O,pick:S,splat:w,timeUnits:D}=Y,b=q.isSafari&&tt.Intl&&tt.Intl.DateTimeFormat.prototype.formatRange,f=q.isSafari&&tt.Intl&&!tt.Intl.DateTimeFormat.prototype.formatRange;class I{constructor(c){this.options={},this.useUTC=!1,this.variableTimezone=!1,this.Date=tt.Date,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.update(c)}get(c,y){if(this.variableTimezone||this.timezoneOffset){const T=y.getTime(),m=T-this.getTimezoneOffset(y);y.setTime(m);const h=y["getUTC"+c]();return y.setTime(T),h}return this.useUTC?y["getUTC"+c]():y["get"+c]()}set(c,y,T){if(this.variableTimezone||this.timezoneOffset){if(c==="Milliseconds"||c==="Seconds"||c==="Minutes"&&this.getTimezoneOffset(y)%36e5===0)return y["setUTC"+c](T);const m=this.getTimezoneOffset(y);let h=y.getTime()-m;y.setTime(h),y["setUTC"+c](T);const x=this.getTimezoneOffset(y);return h=y.getTime()+x,y.setTime(h)}return this.useUTC||b&&c==="FullYear"?y["setUTC"+c](T):y["set"+c](T)}update(c={}){const y=S(c.useUTC,!0);this.options=c=G(!0,this.options,c),this.Date=c.Date||tt.Date||Date,this.useUTC=y,this.timezoneOffset=y&&c.timezoneOffset||void 0,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.variableTimezone=y&&!!(c.getTimezoneOffset||c.timezone)}makeTime(c,y,T,m,h,x){let l,u,r;return this.useUTC?(l=this.Date.UTC.apply(0,arguments),u=this.getTimezoneOffset(l),l+=u,r=this.getTimezoneOffset(l),u!==r?l+=r-u:u-36e5===this.getTimezoneOffset(l-36e5)&&!f&&(l-=36e5)):l=new this.Date(c,y,S(T,1),S(m,0),S(h,0),S(x,0)).getTime(),l}timezoneOffsetFunction(){const c=this,y=this.options,T=y.getTimezoneOffset,m=y.moment||tt.moment;if(!this.useUTC)return function(h){return new Date(h.toString()).getTimezoneOffset()*6e4};if(y.timezone)if(!m)Z(25);else return function(h){return-m.tz(h,y.timezone).utcOffset()*6e4};return this.useUTC&&T?function(h){return T(h.valueOf())*6e4}:function(){return(c.timezoneOffset||0)*6e4}}dateFormat(c,y,T){if(!it(y)||isNaN(y))return q.defaultOptions.lang&&q.defaultOptions.lang.invalidDate||"";c=S(c,"%Y-%m-%d %H:%M:%S");const m=this,h=new this.Date(y),x=this.get("Hours",h),l=this.get("Day",h),u=this.get("Date",h),r=this.get("Month",h),i=this.get("FullYear",h),t=q.defaultOptions.lang,e=t&&t.weekdays,s=t&&t.shortWeekdays,n=st({a:s?s[l]:e[l].substr(0,3),A:e[l],d:O(u),e:O(u,2," "),w:l,b:t.shortMonths[r],B:t.months[r],m:O(r+1),o:r+1,y:i.toString().substr(2,2),Y:i,H:O(x),k:x,I:O(x%12||12),l:x%12||12,M:O(this.get("Minutes",h)),p:x<12?"AM":"PM",P:x<12?"am":"pm",S:O(h.getSeconds()),L:O(Math.floor(y%1e3),3)},q.dateFormats);return K(n,function(a,M){for(;c.indexOf("%"+M)!==-1;)c=c.replace("%"+M,typeof a=="function"?a.call(m,y):a)}),T?c.substr(0,1).toUpperCase()+c.substr(1):c}resolveDTLFormat(c){return Q(c,!0)?c:(c=w(c),{main:c[0],from:c[1],to:c[2]})}getTimeTicks(c,y,T,m){const h=this,x=h.Date,l=[],u={},r=new x(y),i=c.unitRange,t=c.count||1;let e,s,n,a;if(m=S(m,1),it(y)){h.set("Milliseconds",r,i>=D.second?0:t*Math.floor(h.get("Milliseconds",r)/t)),i>=D.second&&h.set("Seconds",r,i>=D.minute?0:t*Math.floor(h.get("Seconds",r)/t)),i>=D.minute&&h.set("Minutes",r,i>=D.hour?0:t*Math.floor(h.get("Minutes",r)/t)),i>=D.hour&&h.set("Hours",r,i>=D.day?0:t*Math.floor(h.get("Hours",r)/t)),i>=D.day&&h.set("Date",r,i>=D.month?1:Math.max(1,t*Math.floor(h.get("Date",r)/t))),i>=D.month&&(h.set("Month",r,i>=D.year?0:t*Math.floor(h.get("Month",r)/t)),s=h.get("FullYear",r)),i>=D.year&&(s-=s%t,h.set("FullYear",r,s)),i===D.week&&(a=h.get("Day",r),h.set("Date",r,h.get("Date",r)-a+m+(a<m?-7:0))),s=h.get("FullYear",r);const M=h.get("Month",r),g=h.get("Date",r),k=h.get("Hours",r);y=r.getTime(),(h.variableTimezone||!h.useUTC)&&it(T)&&(n=T-y>4*D.month||h.getTimezoneOffset(y)!==h.getTimezoneOffset(T));let C=r.getTime();for(e=1;C<T;)l.push(C),i===D.year?C=h.makeTime(s+e*t,0):i===D.month?C=h.makeTime(s,M+e*t):n&&(i===D.day||i===D.week)?C=h.makeTime(s,M,g+e*t*(i===D.day?1:7)):n&&i===D.hour&&t>1?C=h.makeTime(s,M,g,k+e*t):C+=i*t,e++;l.push(C),i<=D.hour&&l.length<1e4&&l.forEach(function(B){B%18e5===0&&h.dateFormat("%H%M%S%L",B)==="000000000"&&(u[B]="day")})}return l.info=st(c,{higherRanks:u,totalRange:i*t}),l}getDateFormat(c,y,T,m){const h=this.dateFormat("%m-%d %H:%M:%S.%L",y),x="01-01 00:00:00.000",l={millisecond:15,second:12,minute:9,hour:6,day:3};let u="millisecond",r=u;for(u in D){if(c===D.week&&+this.dateFormat("%w",y)===T&&h.substr(6)===x.substr(6)){u="week";break}if(D[u]>c){u=r;break}if(l[u]&&h.substr(l[u])!==x.substr(l[u]))break;u!=="week"&&(r=u)}return this.resolveDTLFormat(m[u]).main}}return I}),ct(A,"Core/Defaults.js",[A["Core/Chart/ChartDefaults.js"],A["Core/Color/Color.js"],A["Core/Globals.js"],A["Core/Color/Palettes.js"],A["Core/Time.js"],A["Core/Utilities.js"]],function(q,Y,tt,it,Z,st){const{isTouchDevice:Q,svg:G}=tt,{merge:K}=st,O={colors:it.colors,symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],decimalPoint:".",numericSymbols:["k","M","G","T","P","E"],resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:q,title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:"",align:"center",widthAdjust:-44},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:G,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %e %b, %H:%M:%S.%L",second:"%A, %e %b, %H:%M:%S",minute:"%A, %e %b, %H:%M",hour:"%A, %e %b, %H:%M",day:"%A, %e %b %Y",week:"Week from %A, %e %b %Y",month:"%B %Y",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1,snap:Q?25:10,headerFormat:'<span style="font-size: 0.8em">{point.key}</span><br/>',pointFormat:'<span style="color:{point.color}">●</span> {series.name}: <b>{point.y}</b><br/>',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}};O.chart.styledMode=!1;const S=new Z(O.time);function w(){return O}function D(f){return K(!0,O,f),(f.time||f.global)&&(tt.time?tt.time.update(K(O.global,O.time,f.global,f.time)):tt.time=S),O}return{defaultOptions:O,defaultTime:S,getOptions:w,setOptions:D}}),ct(A,"Core/Animation/Fx.js",[A["Core/Color/Color.js"],A["Core/Globals.js"],A["Core/Utilities.js"]],function(q,Y,tt){const{parse:it}=q,{win:Z}=Y,{isNumber:st,objectEach:Q}=tt;class G{constructor(O,S,w){this.pos=NaN,this.options=S,this.elem=O,this.prop=w}dSetter(){const O=this.paths,S=O&&O[0],w=O&&O[1],D=this.now||0;let b=[];if(D===1||!S||!w)b=this.toD||[];else if(S.length===w.length&&D<1)for(let f=0;f<w.length;f++){const I=S[f],p=w[f],c=[];for(let y=0;y<p.length;y++){const T=I[y],m=p[y];st(T)&&st(m)&&!(p[0]==="A"&&(y===4||y===5))?c[y]=T+D*(m-T):c[y]=m}b.push(c)}else b=w;this.elem.attr("d",b,void 0,!0)}update(){const O=this.elem,S=this.prop,w=this.now,D=this.options.step;this[S+"Setter"]?this[S+"Setter"]():O.attr?O.element&&O.attr(S,w,null,!0):O.style[S]=w+this.unit,D&&D.call(O,w,this)}run(O,S,w){const D=this,b=D.options,f=function(c){return f.stopped?!1:D.step(c)},I=Z.requestAnimationFrame||function(c){setTimeout(c,13)},p=function(){for(let c=0;c<G.timers.length;c++)G.timers[c]()||G.timers.splice(c--,1);G.timers.length&&I(p)};O===S&&!this.elem["forceAnimate:"+this.prop]?(delete b.curAnim[this.prop],b.complete&&Object.keys(b.curAnim).length===0&&b.complete.call(this.elem)):(this.startTime=+new Date,this.start=O,this.end=S,this.unit=w,this.now=this.start,this.pos=0,f.elem=this.elem,f.prop=this.prop,f()&&G.timers.push(f)===1&&I(p))}step(O){const S=+new Date,w=this.options,D=this.elem,b=w.complete,f=w.duration,I=w.curAnim;let p,c;return D.attr&&!D.element?p=!1:O||S>=f+this.startTime?(this.now=this.end,this.pos=1,this.update(),I[this.prop]=!0,c=!0,Q(I,function(y){y!==!0&&(c=!1)}),c&&b&&b.call(D),p=!1):(this.pos=w.easing((S-this.startTime)/f),this.now=this.start+(this.end-this.start)*this.pos,this.update(),p=!0),p}initPath(O,S,w){const D=O.startX,b=O.endX,f=w.slice(),I=O.isArea,p=I?2:1;let c,y,T,m,h=S&&S.slice();if(!h)return[f,f];function x(u,r){for(;u.length<y;){const i=u[0],t=r[y-u.length];if(t&&i[0]==="M"&&(t[0]==="C"?u[0]=["C",i[1],i[2],i[1],i[2],i[1],i[2]]:u[0]=["L",i[1],i[2]]),u.unshift(i),I){const e=u.pop();u.push(u[u.length-1],e)}}}function l(u,r){for(;u.length<y;){const i=u[Math.floor(u.length/p)-1].slice();if(i[0]==="C"&&(i[1]=i[5],i[2]=i[6]),!I)u.push(i);else{const t=u[Math.floor(u.length/p)].slice();u.splice(u.length/2,0,i,t)}}}if(D&&b&&b.length){for(T=0;T<D.length;T++)if(D[T]===b[0]){c=T;break}else if(D[0]===b[b.length-D.length+T]){c=T,m=!0;break}else if(D[D.length-1]===b[b.length-D.length+T]){c=D.length-T;break}typeof c>"u"&&(h=[])}return h.length&&st(c)&&(y=f.length+c*p,m?(x(h,f),l(f)):(x(f,h),l(h))),[h,f]}fillSetter(){G.prototype.strokeSetter.apply(this,arguments)}strokeSetter(){this.elem.attr(this.prop,it(this.start).tweenTo(it(this.end),this.pos),void 0,!0)}}return G.timers=[],G}),ct(A,"Core/Animation/AnimationUtilities.js",[A["Core/Animation/Fx.js"],A["Core/Utilities.js"]],function(q,Y){const{defined:tt,getStyle:it,isArray:Z,isNumber:st,isObject:Q,merge:G,objectEach:K,pick:O}=Y;function S(p,c){c.renderer.globalAnimation=O(p,c.options.chart.animation,!0)}function w(p){return Q(p)?G({duration:500,defer:0},p):{duration:p?500:0,defer:0}}function D(p,c,y){const T=w(c),m=y?[y]:p.series;let h=0,x=0;return m.forEach(u=>{const r=w(u.options.animation);h=c&&tt(c.defer)?T.defer:Math.max(h,r.duration+r.defer),x=Math.min(T.duration,r.duration)}),p.renderer.forExport&&(h=0),{defer:Math.max(0,h-x),duration:Math.min(h,x)}}function b(p,c,y){let T,m="",h,x,l;Q(y)||(l=arguments,y={duration:l[2],easing:l[3],complete:l[4]}),st(y.duration)||(y.duration=400),y.easing=typeof y.easing=="function"?y.easing:Math[y.easing]||Math.easeInOutSine,y.curAnim=G(c),K(c,function(u,r){f(p,r),x=new q(p,y,r),h=void 0,r==="d"&&Z(c.d)?(x.paths=x.initPath(p,p.pathArray,c.d),x.toD=c.d,T=0,h=1):p.attr?T=p.attr(r):(T=parseFloat(it(p,r))||0,r!=="opacity"&&(m="px")),h||(h=u),typeof h=="string"&&h.match("px")&&(h=h.replace(/px/g,"")),x.run(T,h,m)})}function f(p,c){let y=q.timers.length;for(;y--;)q.timers[y].elem===p&&(!c||c===q.timers[y].prop)&&(q.timers[y].stopped=!0)}return{animate:b,animObject:w,getDeferredAnimation:D,setAnimation:S,stop:f}}),ct(A,"Core/Renderer/HTML/AST.js",[A["Core/Globals.js"],A["Core/Utilities.js"]],function(q,Y){const{SVG_NS:tt,win:it}=q,{attr:Z,createElement:st,css:Q,error:G,isFunction:K,isString:O,objectEach:S,splat:w}=Y,{trustedTypes:D}=it,b=D&&K(D.createPolicy)&&D.createPolicy("highcharts",{createHTML:c=>c}),f=b?b.createHTML(""):"",I=function(){try{return!!new DOMParser().parseFromString(f,"text/html")}catch{return!1}}();class p{static filterUserAttributes(y){return S(y,(T,m)=>{let h=!0;p.allowedAttributes.indexOf(m)===-1&&(h=!1),["background","dynsrc","href","lowsrc","src"].indexOf(m)!==-1&&(h=O(T)&&p.allowedReferences.some(x=>T.indexOf(x)===0)),h||(G(33,!1,void 0,{"Invalid attribute in config":`${m}`}),delete y[m]),O(T)&&y[m]&&(y[m]=T.replace(/</g,"&lt;"))}),y}static parseStyle(y){return y.split(";").reduce((T,m)=>{const h=m.split(":").map(l=>l.trim()),x=h.shift();return x&&h.length&&(T[x.replace(/-([a-z])/g,l=>l[1].toUpperCase())]=h.join(":")),T},{})}static setElementHTML(y,T){y.innerHTML=p.emptyHTML,T&&new p(T).addToDOM(y)}constructor(y){this.nodes=typeof y=="string"?this.parseMarkup(y):y}addToDOM(y){function T(m,h){let x;return w(m).forEach(function(l){const u=l.tagName,r=l.textContent?q.doc.createTextNode(l.textContent):void 0,i=p.bypassHTMLFiltering;let t;if(u)if(u==="#text")t=r;else if(p.allowedTags.indexOf(u)!==-1||i){const e=u==="svg"?tt:h.namespaceURI||tt,s=q.doc.createElementNS(e,u),n=l.attributes||{};S(l,function(a,M){M!=="tagName"&&M!=="attributes"&&M!=="children"&&M!=="style"&&M!=="textContent"&&(n[M]=a)}),Z(s,i?n:p.filterUserAttributes(n)),l.style&&Q(s,l.style),r&&s.appendChild(r),T(l.children||[],s),t=s}else G(33,!1,void 0,{"Invalid tagName in config":u});t&&h.appendChild(t),x=t}),x}return T(this.nodes,y)}parseMarkup(y){const T=[];y=y.trim().replace(/ style=(["'])/g," data-style=$1");let m;if(I)m=new DOMParser().parseFromString(b?b.createHTML(y):y,"text/html");else{const x=st("div");x.innerHTML=y,m={body:x}}const h=(x,l)=>{const u=x.nodeName.toLowerCase(),r={tagName:u};u==="#text"&&(r.textContent=x.textContent||"");const i=x.attributes;if(i){const t={};[].forEach.call(i,e=>{e.name==="data-style"?r.style=p.parseStyle(e.value):t[e.name]=e.value}),r.attributes=t}if(x.childNodes.length){const t=[];[].forEach.call(x.childNodes,e=>{h(e,t)}),t.length&&(r.children=t)}l.push(r)};return[].forEach.call(m.body.childNodes,x=>h(x,T)),T}}return p.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","dx","dy","disabled","fill","flood-color","flood-opacity","height","href","id","in","markerHeight","markerWidth","offset","opacity","orient","padding","paddingLeft","paddingRight","patternUnits","r","refX","refY","role","scope","slope","src","startOffset","stdDeviation","stroke","stroke-linecap","stroke-width","style","tableValues","result","rowspan","summary","target","tabindex","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],p.allowedReferences=["https://","http://","mailto:","/","../","./","#"],p.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feDropShadow","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feOffset","feMerge","feMergeNode","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","text","textPath","thead","title","tbody","tspan","td","th","tr","u","ul","#text"],p.emptyHTML=f,p.bypassHTMLFiltering=!1,p}),ct(A,"Core/Templating.js",[A["Core/Defaults.js"],A["Core/Utilities.js"]],function(q,Y){const{defaultOptions:tt,defaultTime:it}=q,{extend:Z,getNestedProperty:st,isArray:Q,isNumber:G,isObject:K,isString:O,pick:S,pInt:w}=Y,D={add:(c,y)=>c+y,divide:(c,y)=>y!==0?c/y:"",eq:(c,y)=>c==y,each:function(c){const y=arguments[arguments.length-1];return Q(c)?c.map((T,m)=>f(y.body,Z(K(T)?T:{"@this":T},{"@index":m,"@first":m===0,"@last":m===c.length-1}))).join(""):!1},ge:(c,y)=>c>=y,gt:(c,y)=>c>y,if:c=>!!c,le:(c,y)=>c<=y,lt:(c,y)=>c<y,multiply:(c,y)=>c*y,ne:(c,y)=>c!=y,subtract:(c,y)=>c-y,unless:c=>!c};function b(c,y,T){return it.dateFormat(c,y,T)}function f(c="",y,T){const m=/\{([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= #\(\)]+)\}/g,h=/\(([a-zA-Z0-9\:\.\,;\-\/<>%_@"'= ]+)\)/g,x=[],l=/f$/,u=/\.([0-9])/,r=tt.lang,i=T&&T.time||it,t=T&&T.numberFormatter||I,e=(g="")=>{let k;return g==="true"?!0:g==="false"?!1:(k=Number(g)).toString()===g?k:st(g,y)};let s,n,a=0,M;for(;(s=m.exec(c))!==null;){const g=h.exec(s[1]);g&&(s=g,M=!0),(!n||!n.isBlock)&&(n={ctx:y,expression:s[1],find:s[0],isBlock:s[1].charAt(0)==="#",start:s.index,startInner:s.index+s[0].length,length:s[0].length});const k=s[1].split(" ")[0].replace("#","");D[k]&&(n.isBlock&&k===n.fn&&a++,n.fn||(n.fn=k));const C=s[1]==="else";if(n.isBlock&&n.fn&&(s[1]===`/${n.fn}`||C))if(a)C||a--;else{const B=n.startInner,L=c.substr(B,s.index-B);n.body===void 0?(n.body=L,n.startInner=s.index+s[0].length):n.elseBody=L,n.find+=L+s[0],C||(x.push(n),n=void 0)}else n.isBlock||x.push(n);if(g&&!(n!=null&&n.isBlock))break}return x.forEach(g=>{const{body:k,elseBody:C,expression:B,fn:L}=g;let o,d;if(L){const N=[g],V=B.split(" ");for(d=D[L].length;d--;)N.unshift(e(V[d+1]));o=D[L].apply(y,N),g.isBlock&&typeof o=="boolean"&&(o=f(o?k:C,y))}else{const N=B.split(":");if(o=e(N.shift()||""),N.length&&typeof o=="number"){const V=N.join(":");if(l.test(V)){const R=parseInt((V.match(u)||["","-1"])[1],10);o!==null&&(o=t(o,R,r.decimalPoint,V.indexOf(",")>-1?r.thousandsSep:""))}else o=i.dateFormat(V,o)}}c=c.replace(g.find,S(o,""))}),M?f(c,y,T):c}function I(c,y,T,m){c=+c||0,y=+y;let h,x;const l=tt.lang,u=(c.toString().split(".")[1]||"").split("e")[0].length,r=c.toString().split("e"),i=y;y===-1?y=Math.min(u,20):G(y)?y&&r[1]&&r[1]<0&&(x=y+ +r[1],x>=0?(r[0]=(+r[0]).toExponential(x).split("e")[0],y=x):(r[0]=r[0].split(".")[0]||0,y<20?c=(r[0]*Math.pow(10,r[1])).toFixed(y):c=0,r[1]=0)):y=2;const t=(Math.abs(r[1]?r[0]:c)+Math.pow(10,-Math.max(y,u)-1)).toFixed(y),e=String(w(t)),s=e.length>3?e.length%3:0;return T=S(T,l.decimalPoint),m=S(m,l.thousandsSep),h=c<0?"-":"",h+=s?e.substr(0,s)+m:"",+r[1]<0&&!i?h="0":h+=e.substr(s).replace(/(\d{3})(?=\d)/g,"$1"+m),y&&(h+=T+t.slice(-y)),r[1]&&+h!=0&&(h+="e"+r[1]),h}return{dateFormat:b,format:f,helpers:D,numberFormat:I}}),ct(A,"Core/Renderer/RendererUtilities.js",[A["Core/Utilities.js"]],function(q){const{clamp:Y,pick:tt,stableSort:it}=q;var Z;return function(st){function Q(G,K,O){const S=G,w=S.reducedLen||K,D=(m,h)=>(h.rank||0)-(m.rank||0),b=(m,h)=>m.target-h.target;let f,I=!0,p=[],c,y,T=0;for(f=G.length;f--;)T+=G[f].size;if(T>w){for(it(G,D),f=0,T=0;T<=w;)T+=G[f].size,f++;p=G.splice(f-1,G.length)}for(it(G,b),G=G.map(m=>({size:m.size,targets:[m.target],align:tt(m.align,.5)}));I;){for(f=G.length;f--;)c=G[f],y=(Math.min.apply(0,c.targets)+Math.max.apply(0,c.targets))/2,c.pos=Y(y-c.size*c.align,0,K-c.size);for(f=G.length,I=!1;f--;)f>0&&G[f-1].pos+G[f-1].size>G[f].pos&&(G[f-1].size+=G[f].size,G[f-1].targets=G[f-1].targets.concat(G[f].targets),G[f-1].align=.5,G[f-1].pos+G[f-1].size>K&&(G[f-1].pos=K-G[f-1].size),G.splice(f,1),I=!0)}return S.push.apply(S,p),f=0,G.some(m=>{let h=0;return(m.targets||[]).some(()=>(S[f].pos=m.pos+h,typeof O<"u"&&Math.abs(S[f].pos-S[f].target)>O?(S.slice(0,f+1).forEach(x=>delete x.pos),S.reducedLen=(S.reducedLen||K)-K*.1,S.reducedLen>K*.1&&Q(S,K,O),!0):(h+=S[f].size,f++,!1)))}),it(S,b),S}st.distribute=Q}(Z||(Z={})),Z}),ct(A,"Core/Renderer/SVG/SVGElement.js",[A["Core/Animation/AnimationUtilities.js"],A["Core/Color/Color.js"],A["Core/Globals.js"],A["Core/Utilities.js"]],function(q,Y,tt,it){const{animate:Z,animObject:st,stop:Q}=q,{deg2rad:G,doc:K,noop:O,svg:S,SVG_NS:w,win:D}=tt,{addEvent:b,attr:f,createElement:I,css:p,defined:c,erase:y,extend:T,fireEvent:m,isArray:h,isFunction:x,isObject:l,isString:u,merge:r,objectEach:i,pick:t,pInt:e,syncTimeout:s,uniqueKey:n}=it;class a{constructor(){this.element=void 0,this.onEvents={},this.opacity=1,this.renderer=void 0,this.SVG_NS=w}_defaultGetter(g){let k=t(this[g+"Value"],this[g],this.element?this.element.getAttribute(g):null,0);return/^[\-0-9\.]+$/.test(k)&&(k=parseFloat(k)),k}_defaultSetter(g,k,C){C.setAttribute(k,g)}add(g){const k=this.renderer,C=this.element;let B;return g&&(this.parentGroup=g),typeof this.textStr<"u"&&this.element.nodeName==="text"&&k.buildText(this),this.added=!0,(!g||g.handleZ||this.zIndex)&&(B=this.zIndexSetter()),B||(g?g.element:k.box).appendChild(C),this.onAdd&&this.onAdd(),this}addClass(g,k){const C=k?"":this.attr("class")||"";return g=(g||"").split(/ /g).reduce(function(B,L){return C.indexOf(L)===-1&&B.push(L),B},C?[C]:[]).join(" "),g!==C&&this.attr("class",g),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(g,k,C){const B={},L=this.renderer,o=L.alignedObjects;let d,N,V,R,H;g?(this.alignOptions=g,this.alignByTranslate=k,(!C||u(C))&&(this.alignTo=V=C||"renderer",y(o,this),o.push(this),C=void 0)):(g=this.alignOptions,k=this.alignByTranslate,V=this.alignTo),C=t(C,L[V],V==="scrollablePlotBox"?L.plotBox:void 0,L);const v=g.align,P=g.verticalAlign;return d=(C.x||0)+(g.x||0),N=(C.y||0)+(g.y||0),v==="right"?R=1:v==="center"&&(R=2),R&&(d+=(C.width-(g.width||0))/R),B[k?"translateX":"x"]=Math.round(d),P==="bottom"?H=1:P==="middle"&&(H=2),H&&(N+=(C.height-(g.height||0))/H),B[k?"translateY":"y"]=Math.round(N),this[this.placed?"animate":"attr"](B),this.placed=!0,this.alignAttr=B,this}alignSetter(g){const k={left:"start",center:"middle",right:"end"};k[g]&&(this.alignValue=g,this.element.setAttribute("text-anchor",k[g]))}animate(g,k,C){const B=st(t(k,this.renderer.globalAnimation,!0)),L=B.defer;return K.hidden&&(B.duration=0),B.duration!==0?(C&&(B.complete=C),s(()=>{this.element&&Z(this,g,B)},L)):(this.attr(g,void 0,C||B.complete),i(g,function(o,d){B.step&&B.step.call(this,o,{prop:d,pos:1,elem:this})},this)),this}applyTextOutline(g){const k=this.element;g.indexOf("contrast")!==-1&&(g=g.replace(/contrast/g,this.renderer.getContrast(k.style.fill)));const B=g.split(" "),L=B[B.length-1];let o=B[0];if(o&&o!=="none"&&tt.svg){this.fakeTS=!0,o=o.replace(/(^[\d\.]+)(.*?)$/g,function(H,v,P){return 2*Number(v)+P}),this.removeTextOutline();const d=K.createElementNS(w,"tspan");f(d,{class:"highcharts-text-outline",fill:L,stroke:L,"stroke-width":o,"stroke-linejoin":"round"});const N=k.querySelector("textPath")||k;[].forEach.call(N.childNodes,H=>{const v=H.cloneNode(!0);v.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(P=>v.removeAttribute(P)),d.appendChild(v)});let V=0;[].forEach.call(N.querySelectorAll("text tspan"),H=>{V+=Number(H.getAttribute("dy"))});const R=K.createElementNS(w,"tspan");R.textContent="​",f(R,{x:Number(k.getAttribute("x")),dy:-V}),d.appendChild(R),N.insertBefore(d,N.firstChild)}}attr(g,k,C,B){const L=this.element,o=a.symbolCustomAttribs;let d,N,V=this,R,H;return typeof g=="string"&&typeof k<"u"&&(d=g,g={},g[d]=k),typeof g=="string"?V=(this[g+"Getter"]||this._defaultGetter).call(this,g,L):(i(g,function(P,_){R=!1,B||Q(this,_),this.symbolName&&o.indexOf(_)!==-1&&(N||(this.symbolAttr(g),N=!0),R=!0),this.rotation&&(_==="x"||_==="y")&&(this.doTransform=!0),R||(H=this[_+"Setter"]||this._defaultSetter,H.call(this,P,_,L))},this),this.afterSetters()),C&&C.call(this),V}clip(g){return this.attr("clip-path",g?"url("+this.renderer.url+"#"+g.id+")":"none")}crisp(g,k){const C=this;k=k||g.strokeWidth||0;const B=Math.round(k)%2/2;return g.x=Math.floor(g.x||C.x||0)+B,g.y=Math.floor(g.y||C.y||0)+B,g.width=Math.floor((g.width||C.width||0)-2*B),g.height=Math.floor((g.height||C.height||0)-2*B),c(g.strokeWidth)&&(g.strokeWidth=k),g}complexColor(g,k,C){const B=this.renderer;let L,o,d,N,V,R,H,v,P,_,z=[],$;m(this.renderer,"complexColor",{args:arguments},function(){if(g.radialGradient?o="radialGradient":g.linearGradient&&(o="linearGradient"),o){if(d=g[o],V=B.gradients,R=g.stops,P=C.radialReference,h(d)&&(g[o]=d={x1:d[0],y1:d[1],x2:d[2],y2:d[3],gradientUnits:"userSpaceOnUse"}),o==="radialGradient"&&P&&!c(d.gradientUnits)&&(N=d,d=r(d,B.getRadialAttr(P,N),{gradientUnits:"userSpaceOnUse"})),i(d,function(j,et){et!=="id"&&z.push(et,j)}),i(R,function(j){z.push(j)}),z=z.join(","),V[z])_=V[z].attr("id");else{d.id=_=n();const j=V[z]=B.createElement(o).attr(d).add(B.defs);j.radAttr=N,j.stops=[],R.forEach(function(et){et[1].indexOf("rgba")===0?(L=Y.parse(et[1]),H=L.get("rgb"),v=L.get("a")):(H=et[1],v=1);const ot=B.createElement("stop").attr({offset:et[0],"stop-color":H,"stop-opacity":v}).add(j);j.stops.push(ot)})}$="url("+B.url+"#"+_+")",C.setAttribute(k,$),C.gradient=z,g.toString=function(){return $}}})}css(g){const k=this.styles,C={},B=this.element;let L,o=!k;if(k&&i(g,function(d,N){k&&k[N]!==d&&(C[N]=d,o=!0)}),o){k&&(g=T(k,C)),g.width===null||g.width==="auto"?delete this.textWidth:B.nodeName.toLowerCase()==="text"&&g.width&&(L=this.textWidth=e(g.width)),this.styles=g,L&&!S&&this.renderer.forExport&&delete g.width;const d=r(g);B.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","width"].forEach(N=>d&&delete d[N]),d.color&&(d.fill=d.color)),p(B,d)}return this.added&&(this.element.nodeName==="text"&&this.renderer.buildText(this),g.textOutline&&this.applyTextOutline(g.textOutline)),this}dashstyleSetter(g){let k,C=this["stroke-width"];if(C==="inherit"&&(C=1),g=g&&g.toLowerCase(),g){const B=g.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(k=B.length;k--;)B[k]=""+e(B[k])*t(C,NaN);g=B.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",g)}}destroy(){const g=this,k=g.element||{},C=g.renderer,B=k.ownerSVGElement;let L=k.nodeName==="SPAN"&&g.parentGroup||void 0,o,d;if(k.onclick=k.onmouseout=k.onmouseover=k.onmousemove=k.point=null,Q(g),g.clipPath&&B){const N=g.clipPath;[].forEach.call(B.querySelectorAll("[clip-path],[CLIP-PATH]"),function(V){V.getAttribute("clip-path").indexOf(N.element.id)>-1&&V.removeAttribute("clip-path")}),g.clipPath=N.destroy()}if(g.stops){for(d=0;d<g.stops.length;d++)g.stops[d].destroy();g.stops.length=0,g.stops=void 0}for(g.safeRemoveChild(k);L&&L.div&&L.div.childNodes.length===0;)o=L.parentGroup,g.safeRemoveChild(L.div),delete L.div,L=o;g.alignTo&&y(C.alignedObjects,g),i(g,function(N,V){g[V]&&g[V].parentGroup===g&&g[V].destroy&&g[V].destroy(),delete g[V]})}dSetter(g,k,C){h(g)&&(typeof g[0]=="string"&&(g=this.renderer.pathToSegments(g)),this.pathArray=g,g=g.reduce((B,L,o)=>!L||!L.join?(L||"").toString():(o?B+" ":"")+L.join(" "),"")),/(NaN| {2}|^$)/.test(g)&&(g="M 0 0"),this[k]!==g&&(C.setAttribute(k,g),this[k]=g)}fadeOut(g){const k=this;k.animate({opacity:0},{duration:t(g,150),complete:function(){k.hide()}})}fillSetter(g,k,C){typeof g=="string"?C.setAttribute(k,g):g&&this.complexColor(g,k,C)}getBBox(g,k){const C=this,{alignValue:B,element:L,renderer:o,styles:d,textStr:N}=C,{cache:V,cacheKeys:R}=o,H=L.namespaceURI===C.SVG_NS,v=t(k,C.rotation,0),P=o.styledMode?L&&a.prototype.getStyle.call(L,"font-size"):d&&d.fontSize;let _,z,$,j,et;if(c(N)&&(et=N.toString(),et.indexOf("<")===-1&&(et=et.replace(/[0-9]/g,"0")),et+=["",o.rootFontSize,P,v,C.textWidth,B,d&&d.textOverflow,d&&d.fontWeight].join(",")),et&&!g&&(_=V[et]),!_){if(H||o.forExport){try{j=this.fakeTS&&function(ot){const J=L.querySelector(".highcharts-text-outline");J&&p(J,{display:ot})},x(j)&&j("none"),_=L.getBBox?T({},L.getBBox()):{width:L.offsetWidth,height:L.offsetHeight,x:0,y:0},x(j)&&j("")}catch{}(!_||_.width<0)&&(_={x:0,y:0,width:0,height:0})}else _=C.htmlGetBBox();if(z=_.width,$=_.height,H&&(_.height=$={"11px,17":14,"13px,20":16}[`${P||""},${Math.round($)}`]||$),v){const ot=Number(L.getAttribute("y")||0)-_.y,J={right:1,center:.5}[B||0]||0,at=v*G,W=(v-90)*G,F=z*Math.cos(at),E=z*Math.sin(at),X=Math.cos(W),U=Math.sin(W),nt=_.x+J*(z-F),rt=_.y+ot-J*E,ht=nt+ot*X,ft=ht+F,mt=ft-$*X,gt=mt-F,xt=rt+ot*U,bt=xt+E,Tt=bt-$*U,vt=Tt-E;_.x=Math.min(ht,ft,mt,gt),_.y=Math.min(xt,bt,Tt,vt),_.width=Math.max(ht,ft,mt,gt)-_.x,_.height=Math.max(xt,bt,Tt,vt)-_.y}}if(et&&(N===""||_.height>0)){for(;R.length>250;)delete V[R.shift()];V[et]||R.push(et),V[et]=_}return _}getStyle(g){return D.getComputedStyle(this.element||this,"").getPropertyValue(g)}hasClass(g){return(""+this.attr("class")).split(" ").indexOf(g)!==-1}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}init(g,k){this.element=k==="span"?I(k):K.createElementNS(this.SVG_NS,k),this.renderer=g,m(this,"afterInit")}on(g,k){const{onEvents:C}=this;return C[g]&&C[g](),C[g]=b(this.element,g,k),this}opacitySetter(g,k,C){const B=Number(Number(g).toFixed(3));this.opacity=B,C.setAttribute(k,B)}removeClass(g){return this.attr("class",(""+this.attr("class")).replace(u(g)?new RegExp(`(^| )${g}( |$)`):g," ").replace(/ +/g," ").trim())}removeTextOutline(){const g=this.element.querySelector("tspan.highcharts-text-outline");g&&this.safeRemoveChild(g)}safeRemoveChild(g){const k=g.parentNode;k&&k.removeChild(g)}setRadialReference(g){const k=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=g,k&&k.radAttr&&k.animate(this.renderer.getRadialAttr(g,k.radAttr)),this}setTextPath(g,k){k=r(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},k);const C=this.renderer.url,B=this.text||this,L=B.textPath,{attributes:o,enabled:d}=k;if(g=g||L&&L.path,L&&L.undo(),g&&d){const N=b(B,"afterModifyTree",V=>{if(g&&d){let R=g.attr("id");R||g.attr("id",R=n());const H={x:0,y:0};c(o.dx)&&(H.dx=o.dx,delete o.dx),c(o.dy)&&(H.dy=o.dy,delete o.dy),B.attr(H),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());const v=V.nodes.slice(0);V.nodes.length=0,V.nodes[0]={tagName:"textPath",attributes:T(o,{"text-anchor":o.textAnchor,href:`${C}#${R}`}),children:v}}});B.textPath={path:g,undo:N}}else B.attr({dx:0,dy:0}),delete B.textPath;return this.added&&(B.textCache="",this.renderer.buildText(B)),this}shadow(g){var k;const{renderer:C}=this,B=r(((k=this.parentGroup)===null||k===void 0?void 0:k.rotation)===90?{offsetX:-1,offsetY:-1}:{},l(g)?g:{}),L=C.shadowDefinition(B);return this.attr({filter:g?`url(${C.url}#${L})`:"none"})}show(g=!0){return this.attr({visibility:g?"inherit":"visible"})}"stroke-widthSetter"(g,k,C){this[k]=g,C.setAttribute(k,g)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;const g=this.getStyle("stroke-width");let k=0,C;return g.indexOf("px")===g.length-2?k=e(g):g!==""&&(C=K.createElementNS(w,"rect"),f(C,{width:g,"stroke-width":0}),this.element.parentNode.appendChild(C),k=C.getBBox().width,C.parentNode.removeChild(C)),k}symbolAttr(g){const k=this;a.symbolCustomAttribs.forEach(function(C){k[C]=t(g[C],k[C])}),k.attr({d:k.renderer.symbols[k.symbolName](k.x,k.y,k.width,k.height,k)})}textSetter(g){g!==this.textStr&&(delete this.textPxLength,this.textStr=g,this.added&&this.renderer.buildText(this))}titleSetter(g){const k=this.element,C=k.getElementsByTagName("title")[0]||K.createElementNS(this.SVG_NS,"title");k.insertBefore?k.insertBefore(C,k.firstChild):k.appendChild(C),C.textContent=String(t(g,"")).replace(/<[^>]*>/g,"").replace(/&lt;/g,"<").replace(/&gt;/g,">")}toFront(){const g=this.element;return g.parentNode.appendChild(g),this}translate(g,k){return this.attr({translateX:g,translateY:k})}updateTransform(){const{element:g,matrix:k,rotation:C=0,scaleX:B,scaleY:L,translateX:o=0,translateY:d=0}=this,N=["translate("+o+","+d+")"];c(k)&&N.push("matrix("+k.join(",")+")"),C&&N.push("rotate("+C+" "+t(this.rotationOriginX,g.getAttribute("x"),0)+" "+t(this.rotationOriginY,g.getAttribute("y")||0)+")"),(c(B)||c(L))&&N.push("scale("+t(B,1)+" "+t(L,1)+")"),N.length&&!(this.text||this).textPath&&g.setAttribute("transform",N.join(" "))}visibilitySetter(g,k,C){g==="inherit"?C.removeAttribute(k):this[k]!==g&&C.setAttribute(k,g),this[k]=g}xGetter(g){return this.element.nodeName==="circle"&&(g==="x"?g="cx":g==="y"&&(g="cy")),this._defaultGetter(g)}zIndexSetter(g,k){const C=this.renderer,B=this.parentGroup,L=B||C,o=L.element||C.box,d=this.element,N=o===C.box;let V,R,H,v=!1,P,_=this.added,z;if(c(g)?(d.setAttribute("data-z-index",g),g=+g,this[k]===g&&(_=!1)):c(this[k])&&d.removeAttribute("data-z-index"),this[k]=g,_){for(g=this.zIndex,g&&B&&(B.handleZ=!0),V=o.childNodes,z=V.length-1;z>=0&&!v;z--)R=V[z],H=R.getAttribute("data-z-index"),P=!c(H),R!==d&&(g<0&&P&&!N&&!z?(o.insertBefore(d,V[z]),v=!0):(e(H)<=g||P&&(!c(g)||g>=0))&&(o.insertBefore(d,V[z+1]),v=!0));v||(o.insertBefore(d,V[N?3:0]),v=!0)}return v}}return a.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],a.prototype.strokeSetter=a.prototype.fillSetter,a.prototype.yGetter=a.prototype.xGetter,a.prototype.matrixSetter=a.prototype.rotationOriginXSetter=a.prototype.rotationOriginYSetter=a.prototype.rotationSetter=a.prototype.scaleXSetter=a.prototype.scaleYSetter=a.prototype.translateXSetter=a.prototype.translateYSetter=a.prototype.verticalAlignSetter=function(M,g){this[g]=M,this.doTransform=!0},a}),ct(A,"Core/Renderer/RendererRegistry.js",[A["Core/Globals.js"]],function(q){var Y;return function(tt){tt.rendererTypes={};let it;function Z(Q=it){return tt.rendererTypes[Q]||tt.rendererTypes[it]}tt.getRendererType=Z;function st(Q,G,K){tt.rendererTypes[Q]=G,(!it||K)&&(it=Q,q.Renderer=G)}tt.registerRendererType=st}(Y||(Y={})),Y}),ct(A,"Core/Renderer/SVG/SVGLabel.js",[A["Core/Renderer/SVG/SVGElement.js"],A["Core/Utilities.js"]],function(q,Y){const{defined:tt,extend:it,isNumber:Z,merge:st,pick:Q,removeEvent:G}=Y;class K extends q{constructor(S,w,D,b,f,I,p,c,y,T){super(),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.init(S,"g"),this.textStr=w,this.x=D,this.y=b,this.anchorX=I,this.anchorY=p,this.baseline=y,this.className=T,this.addClass(T==="button"?"highcharts-no-tooltip":"highcharts-label"),T&&this.addClass("highcharts-"+T),this.text=S.text(void 0,0,0,c).attr({zIndex:1});let m;typeof f=="string"&&(m=/^url\((.*?)\)$/.test(f),(m||this.renderer.symbols[f])&&(this.symbolKey=f)),this.bBox=K.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=S.styledMode||m,this.deferredAttr={},this.alignFactor=0}alignSetter(S){const w={left:0,center:.5,right:1}[S];w!==this.alignFactor&&(this.alignFactor=w,this.bBox&&Z(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(S,w){this.anchorX=S,this.boxAttr(w,Math.round(S)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(S,w){this.anchorY=S,this.boxAttr(w,S-this.ySetting)}boxAttr(S,w){this.box?this.box.attr(S,w):this.deferredAttr[S]=w}css(S){if(S){const w={};S=st(S),K.textProps.forEach(D=>{typeof S[D]<"u"&&(w[D]=S[D],delete S[D])}),this.text.css(w),"fontSize"in w||"fontWeight"in w?this.updateTextPadding():("width"in w||"textOverflow"in w)&&this.updateBoxSize()}return q.prototype.css.call(this,S)}destroy(){G(this.element,"mouseenter"),G(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),q.prototype.destroy.call(this)}fillSetter(S,w){S&&(this.needsBox=!0),this.fill=S,this.boxAttr(w,S)}getBBox(){this.textStr&&this.bBox.width===0&&this.bBox.height===0&&this.updateBoxSize();const S=this.padding,w=Q(this.paddingLeft,S);return{width:this.width,height:this.height,x:this.bBox.x-w,y:this.bBox.y-S}}getCrispAdjust(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(S){this.heightSetting=S}onAdd(){this.text.add(this),this.attr({text:Q(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&tt(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(S,w){Z(S)?S!==this[w]&&(this[w]=S,this.updateTextPadding()):this[w]=void 0}rSetter(S,w){this.boxAttr(w,S)}strokeSetter(S,w){this.stroke=S,this.boxAttr(w,S)}"stroke-widthSetter"(S,w){S&&(this.needsBox=!0),this["stroke-width"]=S,this.boxAttr(w,S)}"text-alignSetter"(S){this.textAlign=S}textSetter(S){typeof S<"u"&&this.text.attr({text:S}),this.updateTextPadding()}updateBoxSize(){const S=this.text,w={},D=this.padding,b=this.bBox=(!Z(this.widthSetting)||!Z(this.heightSetting)||this.textAlign)&&tt(S.textStr)?S.getBBox():K.emptyBBox;let f;this.width=this.getPaddedWidth(),this.height=(this.heightSetting||b.height||0)+2*D;const I=this.renderer.fontMetrics(S);if(this.baselineOffset=D+Math.min((this.text.firstLineMetrics||I).b,b.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-I.h)/2),this.needsBox&&!S.textPath){if(!this.box){const p=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();p.addClass((this.className==="button"?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),p.add(this)}f=this.getCrispAdjust(),w.x=f,w.y=(this.baseline?-this.baselineOffset:0)+f,w.width=Math.round(this.width),w.height=Math.round(this.height),this.box.attr(it(w,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){const S=this.text;if(!S.textPath){this.updateBoxSize();const w=this.baseline?0:this.baselineOffset;let D=Q(this.paddingLeft,this.padding);tt(this.widthSetting)&&this.bBox&&(this.textAlign==="center"||this.textAlign==="right")&&(D+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width)),(D!==S.x||w!==S.y)&&(S.attr("x",D),S.hasBoxWidthChanged&&(this.bBox=S.getBBox(!0)),typeof w<"u"&&S.attr("y",w)),S.x=D,S.y=w}}widthSetter(S){this.widthSetting=Z(S)?S:void 0}getPaddedWidth(){const S=this.padding,w=Q(this.paddingLeft,S),D=Q(this.paddingRight,S);return(this.widthSetting||this.bBox.width||0)+w+D}xSetter(S){this.x=S,this.alignFactor&&(S-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(S),this.attr("translateX",this.xSetting)}ySetter(S){this.ySetting=this.y=Math.round(S),this.attr("translateY",this.ySetting)}}return K.emptyBBox={width:0,height:0,x:0,y:0},K.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"],K}),ct(A,"Core/Renderer/SVG/Symbols.js",[A["Core/Utilities.js"]],function(q){const{defined:Y,isNumber:tt,pick:it}=q;function Z(b,f,I,p,c){const y=[];if(c){const T=c.start||0,m=it(c.r,I),h=it(c.r,p||I),x=.001,l=Math.abs((c.end||0)-T-2*Math.PI)<x,u=(c.end||0)-x,r=c.innerR,i=it(c.open,l),t=Math.cos(T),e=Math.sin(T),s=Math.cos(u),n=Math.sin(u),a=it(c.longArc,u-T-Math.PI<x?0:1);let M=["A",m,h,0,a,it(c.clockwise,1),b+m*s,f+h*n];M.params={start:T,end:u,cx:b,cy:f},y.push(["M",b+m*t,f+h*e],M),Y(r)&&(M=["A",r,r,0,a,Y(c.clockwise)?1-c.clockwise:0,b+r*t,f+r*e],M.params={start:u,end:T,cx:b,cy:f},y.push(i?["M",b+r*s,f+r*n]:["L",b+r*s,f+r*n],M)),i||y.push(["Z"])}return y}function st(b,f,I,p,c){const m=Math.min(c&&c.r||0,I,p),h=m+6,x=c&&c.anchorX,l=c&&c.anchorY||0,u=O(b,f,I,p,{r:m});return tt(x)&&(b+x>=I?l>f+h&&l<f+p-h?u.splice(3,1,["L",b+I,l-6],["L",b+I+6,l],["L",b+I,l+6],["L",b+I,f+p-m]):u.splice(3,1,["L",b+I,p/2],["L",x,l],["L",b+I,p/2],["L",b+I,f+p-m]):b+x<=0?l>f+h&&l<f+p-h?u.splice(7,1,["L",b,l+6],["L",b-6,l],["L",b,l-6],["L",b,f+m]):u.splice(7,1,["L",b,p/2],["L",x,l],["L",b,p/2],["L",b,f+m]):l&&l>p&&x>b+h&&x<b+I-h?u.splice(5,1,["L",x+6,f+p],["L",x,f+p+6],["L",x-6,f+p],["L",b+m,f+p]):l&&l<0&&x>b+h&&x<b+I-h&&u.splice(1,1,["L",x-6,f],["L",x,f-6],["L",x+6,f],["L",I-m,f])),u}function Q(b,f,I,p){return Z(b+I/2,f+p/2,I/2,p/2,{start:Math.PI*.5,end:Math.PI*2.5,open:!1})}function G(b,f,I,p){return[["M",b+I/2,f],["L",b+I,f+p/2],["L",b+I/2,f+p],["L",b,f+p/2],["Z"]]}function K(b,f,I,p,c){return c&&c.r?O(b,f,I,p,c):[["M",b,f],["L",b+I,f],["L",b+I,f+p],["L",b,f+p],["Z"]]}function O(b,f,I,p,c){const y=(c==null?void 0:c.r)||0;return[["M",b+y,f],["L",b+I-y,f],["A",y,y,0,0,1,b+I,f+y],["L",b+I,f+p-y],["A",y,y,0,0,1,b+I-y,f+p],["L",b+y,f+p],["A",y,y,0,0,1,b,f+p-y],["L",b,f+y],["A",y,y,0,0,1,b+y,f],["Z"]]}function S(b,f,I,p){return[["M",b+I/2,f],["L",b+I,f+p],["L",b,f+p],["Z"]]}function w(b,f,I,p){return[["M",b,f],["L",b+I,f],["L",b+I/2,f+p],["Z"]]}return{arc:Z,callout:st,circle:Q,diamond:G,rect:K,roundedRect:O,square:K,triangle:S,"triangle-down":w}}),ct(A,"Core/Renderer/SVG/TextBuilder.js",[A["Core/Renderer/HTML/AST.js"],A["Core/Globals.js"],A["Core/Utilities.js"]],function(q,Y,tt){const{doc:it,SVG_NS:Z,win:st}=Y,{attr:Q,extend:G,fireEvent:K,isString:O,objectEach:S,pick:w}=tt;class D{constructor(f){const I=f.styles;this.renderer=f.renderer,this.svgElement=f,this.width=f.textWidth,this.textLineHeight=I&&I.lineHeight,this.textOutline=I&&I.textOutline,this.ellipsis=!!(I&&I.textOverflow==="ellipsis"),this.noWrap=!!(I&&I.whiteSpace==="nowrap")}buildSVG(){const f=this.svgElement,I=f.element,p=f.renderer,c=w(f.textStr,"").toString(),y=c.indexOf("<")!==-1,T=I.childNodes,m=!f.added&&p.box,h=/<br.*?>/g,x=[c,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,f.getStyle("font-size"),this.width].join(",");if(x!==f.textCache){f.textCache=x,delete f.actualWidth;for(let l=T.length;l--;)I.removeChild(T[l]);if(!y&&!this.ellipsis&&!this.width&&!f.textPath&&(c.indexOf(" ")===-1||this.noWrap&&!h.test(c)))I.appendChild(it.createTextNode(this.unescapeEntities(c)));else if(c!==""){m&&m.appendChild(I);const l=new q(c);this.modifyTree(l.nodes),l.addToDOM(I),this.modifyDOM(),this.ellipsis&&(I.textContent||"").indexOf("…")!==-1&&f.attr("title",this.unescapeEntities(f.textStr||"",["&lt;","&gt;"])),m&&m.removeChild(I)}O(this.textOutline)&&f.applyTextOutline&&f.applyTextOutline(this.textOutline)}}modifyDOM(){const f=this.svgElement,I=Q(f.element,"x");f.firstLineMetrics=void 0;let p;for(;(p=f.element.firstChild)&&/^[\s\u200B]*$/.test(p.textContent||" ");)f.element.removeChild(p);[].forEach.call(f.element.querySelectorAll("tspan.highcharts-br"),(m,h)=>{m.nextSibling&&m.previousSibling&&(h===0&&m.previousSibling.nodeType===1&&(f.firstLineMetrics=f.renderer.fontMetrics(m.previousSibling)),Q(m,{dy:this.getLineHeight(m.nextSibling),x:I}))});const c=this.width||0;if(!c)return;const y=(m,h)=>{const x=m.textContent||"",l=x.replace(/([^\^])-/g,"$1- ").split(" "),u=!this.noWrap&&(l.length>1||f.element.childNodes.length>1),r=this.getLineHeight(h);let i=0,t=f.actualWidth;if(this.ellipsis)x&&this.truncate(m,x,void 0,0,Math.max(0,c-.8*r),(e,s)=>e.substring(0,s)+"…");else if(u){const e=[],s=[];for(;h.firstChild&&h.firstChild!==m;)s.push(h.firstChild),h.removeChild(h.firstChild);for(;l.length;)l.length&&!this.noWrap&&i>0&&(e.push(m.textContent||""),m.textContent=l.join(" ").replace(/- /g,"-")),this.truncate(m,void 0,l,i===0&&t||0,c,(n,a)=>l.slice(0,a).join(" ").replace(/- /g,"-")),t=f.actualWidth,i++;s.forEach(n=>{h.insertBefore(n,m)}),e.forEach(n=>{h.insertBefore(it.createTextNode(n),m);const a=it.createElementNS(Z,"tspan");a.textContent="​",Q(a,{dy:r,x:I}),h.insertBefore(a,m)})}},T=m=>{[].slice.call(m.childNodes).forEach(x=>{x.nodeType===st.Node.TEXT_NODE?y(x,m):(x.className.baseVal.indexOf("highcharts-br")!==-1&&(f.actualWidth=0),T(x))})};T(f.element)}getLineHeight(f){const I=f.nodeType===st.Node.TEXT_NODE?f.parentElement:f;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(I||this.svgElement.element).h}modifyTree(f){const I=(p,c)=>{const{attributes:y={},children:T,style:m={},tagName:h}=p,x=this.renderer.styledMode;if(h==="b"||h==="strong"?x?y.class="highcharts-strong":m.fontWeight="bold":(h==="i"||h==="em")&&(x?y.class="highcharts-emphasized":m.fontStyle="italic"),m&&m.color&&(m.fill=m.color),h==="br"){y.class="highcharts-br",p.textContent="​";const l=f[c+1];l&&l.textContent&&(l.textContent=l.textContent.replace(/^ +/gm,""))}else h==="a"&&T&&T.some(l=>l.tagName==="#text")&&(p.children=[{children:T,tagName:"tspan"}]);h!=="#text"&&h!=="a"&&(p.tagName="tspan"),G(p,{attributes:y,style:m}),T&&T.filter(l=>l.tagName!=="#text").forEach(I)};f.forEach(I),K(this.svgElement,"afterModifyTree",{nodes:f})}truncate(f,I,p,c,y,T){const m=this.svgElement,{renderer:h,rotation:x}=m,l=[];let u=p?1:0,r=(I||p||"").length,i=r,t,e;const s=function(n,a){const M=a||n,g=f.parentNode;if(g&&typeof l[M]>"u"&&g.getSubStringLength)try{l[M]=c+g.getSubStringLength(0,p?M+1:M)}catch{}return l[M]};if(m.rotation=0,e=s(f.textContent.length),c+e>y){for(;u<=r;)i=Math.ceil((u+r)/2),p&&(t=T(p,i)),e=s(i,t&&t.length-1),u===r?u=r+1:e>y?r=i-1:u=i;r===0?f.textContent="":I&&r===I.length-1||(f.textContent=t||T(I||p,i))}p&&p.splice(0,i),m.actualWidth=e,m.rotation=x}unescapeEntities(f,I){return S(this.renderer.escapes,function(p,c){(!I||I.indexOf(p)===-1)&&(f=f.toString().replace(new RegExp(p,"g"),c))}),f}}return D}),ct(A,"Core/Renderer/SVG/SVGRenderer.js",[A["Core/Renderer/HTML/AST.js"],A["Core/Color/Color.js"],A["Core/Globals.js"],A["Core/Renderer/RendererRegistry.js"],A["Core/Renderer/SVG/SVGElement.js"],A["Core/Renderer/SVG/SVGLabel.js"],A["Core/Renderer/SVG/Symbols.js"],A["Core/Renderer/SVG/TextBuilder.js"],A["Core/Utilities.js"]],function(q,Y,tt,it,Z,st,Q,G,K){const{charts:O,deg2rad:S,doc:w,isFirefox:D,isMS:b,isWebKit:f,noop:I,SVG_NS:p,symbolSizes:c,win:y}=tt,{addEvent:T,attr:m,createElement:h,css:x,defined:l,destroyObjectProperties:u,extend:r,isArray:i,isNumber:t,isObject:e,isString:s,merge:n,pick:a,pInt:M,uniqueKey:g}=K;let k;class C{constructor(L,o,d,N,V,R,H){this.alignedObjects=void 0,this.box=void 0,this.boxWrapper=void 0,this.cache=void 0,this.cacheKeys=void 0,this.chartIndex=void 0,this.defs=void 0,this.globalAnimation=void 0,this.gradients=void 0,this.height=void 0,this.imgCount=void 0,this.style=void 0,this.url=void 0,this.width=void 0,this.init(L,o,d,N,V,R,H)}init(L,o,d,N,V,R,H){const v=this,P=v.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),_=P.element;H||P.css(this.getStyle(N)),L.appendChild(_),m(L,"dir","ltr"),L.innerHTML.indexOf("xmlns")===-1&&m(_,"xmlns",this.SVG_NS),this.box=_,this.boxWrapper=P,v.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(w.createTextNode("Created with Highcharts 11.1.0")),v.defs=this.createElement("defs").add(),v.allowHTML=R,v.forExport=V,v.styledMode=H,v.gradients={},v.cache={},v.cacheKeys=[],v.imgCount=0,v.rootFontSize=P.getStyle("font-size"),v.setSize(o,d,!1);let $,j;D&&L.getBoundingClientRect&&($=function(){x(L,{left:0,top:0}),j=L.getBoundingClientRect(),x(L,{left:Math.ceil(j.left)-j.left+"px",top:Math.ceil(j.top)-j.top+"px"})},$(),v.unSubPixelFix=T(y,"resize",$))}definition(L){return new q([L]).addToDOM(this.defs.element)}getReferenceURL(){if((D||f)&&w.getElementsByTagName("base").length){if(!l(k)){const L=g(),d=new q([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:L},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${L})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(w.body);x(d,{position:"fixed",top:0,left:0,zIndex:9e5});const N=w.elementFromPoint(6,6);k=(N&&N.id)==="hitme",w.body.removeChild(d)}if(k)return y.location.href.split("#")[0].replace(/<[^>]*>/g,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20")}return""}getStyle(L){return this.style=r({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"1rem"},L),this.style}setStyle(L){this.boxWrapper.css(this.getStyle(L))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){const L=this,o=L.defs;return L.box=null,L.boxWrapper=L.boxWrapper.destroy(),u(L.gradients||{}),L.gradients=null,L.defs=o.destroy(),L.unSubPixelFix&&L.unSubPixelFix(),L.alignedObjects=null,null}createElement(L){const o=new this.Element;return o.init(this,L),o}getRadialAttr(L,o){return{cx:L[0]-L[2]/2+(o.cx||0)*L[2],cy:L[1]-L[2]/2+(o.cy||0)*L[2],r:(o.r||0)*L[2]}}shadowDefinition(L){const o=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(L).map(N=>L[N])].join("-").replace(/[^a-z0-9\-]/g,""),d=n({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},L);return this.defs.element.querySelector(`#${o}`)||this.definition({tagName:"filter",attributes:{id:o},children:[{tagName:"feDropShadow",attributes:{dx:d.offsetX,dy:d.offsetY,"flood-color":d.color,"flood-opacity":Math.min(d.opacity*5,1),stdDeviation:d.width/2}}]}),o}buildText(L){new G(L).buildSVG()}getContrast(L){const o=Y.parse(L).rgba.map(N=>{const V=N/255;return V<=.03928?V/12.92:Math.pow((V+.055)/1.055,2.4)}),d=.2126*o[0]+.7152*o[1]+.0722*o[2];return 1.05/(d+.05)>(d+.05)/.05?"#FFFFFF":"#000000"}button(L,o,d,N,V={},R,H,v,P,_){const z=this.label(L,o,d,P,void 0,void 0,_,void 0,"button"),$=this.styledMode,j=V.states||{};let et=0;V=n(V),delete V.states;const ot=n({color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},V.style);delete V.style;let J=q.filterUserAttributes(V);z.attr(n({padding:8,r:2},J));let at,W,F;return $||(J=n({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1},J),R=n(J,{fill:"#e6e6e6"},q.filterUserAttributes(R||j.hover||{})),at=R.style,delete R.style,H=n(J,{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},q.filterUserAttributes(H||j.select||{})),W=H.style,delete H.style,v=n(J,{style:{color:"#cccccc"}},q.filterUserAttributes(v||j.disabled||{})),F=v.style,delete v.style),T(z.element,b?"mouseover":"mouseenter",function(){et!==3&&z.setState(1)}),T(z.element,b?"mouseout":"mouseleave",function(){et!==3&&z.setState(et)}),z.setState=function(E){if(E!==1&&(z.state=et=E),z.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][E||0]),!$){z.attr([J,R,H,v][E||0]);const X=[ot,at,W,F][E||0];e(X)&&z.css(X)}},$||(z.attr(J).css(r({cursor:"default"},ot)),_&&z.text.css({pointerEvents:"none"})),z.on("touchstart",E=>E.stopPropagation()).on("click",function(E){et!==3&&N.call(z,E)})}crispLine(L,o,d="round"){const N=L[0],V=L[1];return l(N[1])&&N[1]===V[1]&&(N[1]=V[1]=Math[d](N[1])-o%2/2),l(N[2])&&N[2]===V[2]&&(N[2]=V[2]=Math[d](N[2])+o%2/2),L}path(L){const o=this.styledMode?{}:{fill:"none"};return i(L)?o.d=L:e(L)&&r(o,L),this.createElement("path").attr(o)}circle(L,o,d){const N=e(L)?L:typeof L>"u"?{}:{x:L,y:o,r:d},V=this.createElement("circle");return V.xSetter=V.ySetter=function(R,H,v){v.setAttribute("c"+H,R)},V.attr(N)}arc(L,o,d,N,V,R){let H;e(L)?(H=L,o=H.y,d=H.r,N=H.innerR,V=H.start,R=H.end,L=H.x):H={innerR:N,start:V,end:R};const v=this.symbol("arc",L,o,d,d,H);return v.r=d,v}rect(L,o,d,N,V,R){const H=e(L)?L:typeof L>"u"?{}:{x:L,y:o,r:V,width:Math.max(d||0,0),height:Math.max(N||0,0)},v=this.createElement("rect");return this.styledMode||(typeof R<"u"&&(H["stroke-width"]=R,r(H,v.crisp(H))),H.fill="none"),v.rSetter=function(P,_,z){v.r=P,m(z,{rx:P,ry:P})},v.rGetter=function(){return v.r||0},v.attr(H)}roundedRect(L){return this.symbol("roundedRect").attr(L)}setSize(L,o,d){const N=this;N.width=L,N.height=o,N.boxWrapper.animate({width:L,height:o},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:a(d,!0)?void 0:0}),N.alignElements()}g(L){const o=this.createElement("g");return L?o.attr({class:"highcharts-"+L}):o}image(L,o,d,N,V,R){const H={preserveAspectRatio:"none"};t(o)&&(H.x=o),t(d)&&(H.y=d),t(N)&&(H.width=N),t(V)&&(H.height=V);const v=this.createElement("image").attr(H),P=function(_){v.attr({href:L}),R.call(v,_)};if(R){v.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});const _=new y.Image;T(_,"load",P),_.src=L,_.complete&&P({})}else v.attr({href:L});return v}symbol(L,o,d,N,V,R){const H=this,v=/^url\((.*?)\)$/,P=v.test(L),_=!P&&(this.symbols[L]?L:"circle"),z=_&&this.symbols[_];let $,j,et,ot;if(z)typeof o=="number"&&(j=z.call(this.symbols,Math.round(o||0),Math.round(d||0),N||0,V||0,R)),$=this.path(j),H.styledMode||$.attr("fill","none"),r($,{symbolName:_||void 0,x:o,y:d,width:N,height:V}),R&&r($,R);else if(P){et=L.match(v)[1];const J=$=this.image(et);J.imgwidth=a(R&&R.width,c[et]&&c[et].width),J.imgheight=a(R&&R.height,c[et]&&c[et].height),ot=at=>at.attr({width:at.width,height:at.height}),["width","height"].forEach(function(at){J[at+"Setter"]=function(W,F){this[F]=W;const{alignByTranslate:E,element:X,width:U,height:nt,imgwidth:rt,imgheight:ht}=this;let ft=this["img"+F];if(l(ft)){let mt=1;R&&R.backgroundSize==="within"&&U&&nt?(mt=Math.min(U/rt,nt/ht),ft=Math.round(ft*mt),m(X,{width:Math.round(rt*mt),height:Math.round(ht*mt)})):X&&X.setAttribute(F,ft),E||this.translate(((U||0)-rt*mt)/2,((nt||0)-ht*mt)/2)}}}),l(o)&&J.attr({x:o,y:d}),J.isImg=!0,l(J.imgwidth)&&l(J.imgheight)?ot(J):(J.attr({width:0,height:0}),h("img",{onload:function(){const at=O[H.chartIndex];this.width===0&&(x(this,{position:"absolute",top:"-999em"}),w.body.appendChild(this)),c[et]={width:this.width,height:this.height},J.imgwidth=this.width,J.imgheight=this.height,J.element&&ot(J),this.parentNode&&this.parentNode.removeChild(this),H.imgCount--,!H.imgCount&&at&&!at.hasLoaded&&at.onload()},src:et}),this.imgCount++)}return $}clipRect(L,o,d,N){const V=g()+"-",R=this.createElement("clipPath").attr({id:V}).add(this.defs),H=this.rect(L,o,d,N,0).add(R);return H.id=V,H.clipPath=R,H.count=0,H}text(L,o,d,N){const V=this,R={};if(N&&(V.allowHTML||!V.forExport))return V.html(L,o,d);R.x=Math.round(o||0),d&&(R.y=Math.round(d)),l(L)&&(R.text=L);const H=V.createElement("text").attr(R);return(!N||V.forExport&&!V.allowHTML)&&(H.xSetter=function(v,P,_){const z=_.getElementsByTagName("tspan"),$=_.getAttribute(P);for(let j=0,et;j<z.length;j++)et=z[j],et.getAttribute(P)===$&&et.setAttribute(P,v);_.setAttribute(P,v)}),H}fontMetrics(L){const o=M(Z.prototype.getStyle.call(L,"font-size")||0),d=o<24?o+3:Math.round(o*1.2),N=Math.round(d*.8);return{h:d,b:N,f:o}}rotCorr(L,o,d){let N=L;return o&&d&&(N=Math.max(N*Math.cos(o*S),4)),{x:-L/3*Math.sin(o*S),y:N}}pathToSegments(L){const o=[],d=[],N={A:8,C:7,H:2,L:3,M:3,Q:5,S:5,T:3,V:2};for(let V=0;V<L.length;V++)s(d[0])&&t(L[V])&&d.length===N[d[0].toUpperCase()]&&L.splice(V,0,d[0].replace("M","L").replace("m","l")),typeof L[V]=="string"&&(d.length&&o.push(d.slice(0)),d.length=0),d.push(L[V]);return o.push(d.slice(0)),o}label(L,o,d,N,V,R,H,v,P){return new st(this,L,o,d,N,V,R,H,v,P)}alignElements(){this.alignedObjects.forEach(L=>L.align())}}return r(C.prototype,{Element:Z,SVG_NS:p,escapes:{"&":"&amp;","<":"&lt;",">":"&gt;","'":"&#39;",'"':"&quot;"},symbols:Q,draw:I}),it.registerRendererType("svg",C,!0),C}),ct(A,"Core/Renderer/HTML/HTMLElement.js",[A["Core/Globals.js"],A["Core/Renderer/SVG/SVGElement.js"],A["Core/Utilities.js"]],function(q,Y,tt){const{isFirefox:it,isMS:Z,isWebKit:st,win:Q}=q,{css:G,defined:K,extend:O,pick:S,pInt:w}=tt,D=[];class b extends Y{static compose(I){if(tt.pushUnique(D,I)){const p=b.prototype,c=I.prototype;c.getSpanCorrection=p.getSpanCorrection,c.htmlCss=p.htmlCss,c.htmlGetBBox=p.htmlGetBBox,c.htmlUpdateTransform=p.htmlUpdateTransform,c.setSpanRotation=p.setSpanRotation}return I}getSpanCorrection(I,p,c){this.xCorr=-I*c,this.yCorr=-p}htmlCss(I){const p=this,c=p.element,y=c.tagName==="SPAN"&&I&&"width"in I,T=S(y&&I.width,void 0);let m;return y&&(delete I.width,p.textWidth=T,m=!0),I&&I.textOverflow==="ellipsis"&&(I.whiteSpace="nowrap",I.overflow="hidden"),p.styles=O(p.styles,I),G(p.element,I),m&&p.htmlUpdateTransform(),p}htmlGetBBox(){const I=this,p=I.element;return{x:p.offsetLeft,y:p.offsetTop,width:p.offsetWidth,height:p.offsetHeight}}htmlUpdateTransform(){if(!this.added){this.alignOnAdd=!0;return}const I=this,p=I.renderer,c=I.element,y=I.translateX||0,T=I.translateY||0,m=I.x||0,h=I.y||0,x=I.textAlign||"left",l={left:0,center:.5,right:1}[x],u=I.styles,r=u&&u.whiteSpace;function i(){return I.textPxLength?I.textPxLength:(G(c,{width:"",whiteSpace:r||"nowrap"}),c.offsetWidth)}if(G(c,{marginLeft:y,marginTop:T}),c.tagName==="SPAN"){const t=I.rotation,e=I.textWidth&&w(I.textWidth),s=[t,x,c.innerHTML,I.textWidth,I.textAlign].join(",");let n,a=!1;if(e!==I.oldTextWidth){const M=i();(e>I.oldTextWidth||M>e)&&(/[ \-]/.test(c.textContent||c.innerText)||c.style.textOverflow==="ellipsis")&&(G(c,{width:M>e||t?e+"px":"auto",display:"block",whiteSpace:r||"normal"}),I.oldTextWidth=e,a=!0)}I.hasBoxWidthChanged=a,s!==I.cTT&&(n=p.fontMetrics(c).b,K(t)&&(t!==(I.oldRotation||0)||x!==I.oldAlign)&&I.setSpanRotation(t,l,n),I.getSpanCorrection(!K(t)&&I.textPxLength||c.offsetWidth,n,l,t,x)),G(c,{left:m+(I.xCorr||0)+"px",top:h+(I.yCorr||0)+"px"}),I.cTT=s,I.oldRotation=t,I.oldAlign=x}}setSpanRotation(I,p,c){const y=()=>Z&&!/Edge/.test(Q.navigator.userAgent)?"-ms-transform":st?"-webkit-transform":it?"MozTransform":Q.opera?"-o-transform":void 0,T={},m=y();m&&(T[m]=T.transform="rotate("+I+"deg)",T[m+(it?"Origin":"-origin")]=T.transformOrigin=p*100+"% "+c+"px",G(this.element,T))}}return b}),ct(A,"Core/Renderer/HTML/HTMLRenderer.js",[A["Core/Renderer/HTML/AST.js"],A["Core/Renderer/SVG/SVGElement.js"],A["Core/Renderer/SVG/SVGRenderer.js"],A["Core/Utilities.js"]],function(q,Y,tt,it){const{attr:Z,createElement:st,extend:Q,pick:G}=it,K=[];class O extends tt{static compose(w){if(it.pushUnique(K,w)){const D=O.prototype,b=w.prototype;b.html=D.html}return w}html(w,D,b){const f=this.createElement("span"),I=f.element,p=f.renderer,c=function(y,T){["opacity","visibility"].forEach(function(m){y[m+"Setter"]=function(h,x,l){const u=y.div?y.div.style:T;Y.prototype[m+"Setter"].call(this,h,x,l),u&&(u[x]=h)}}),y.addedSetters=!0};return f.textSetter=function(y){y!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,q.setElementHTML(this.element,G(y,"")),this.textStr=y,f.doTransform=!0)},c(f,f.element.style),f.xSetter=f.ySetter=f.alignSetter=f.rotationSetter=function(y,T){T==="align"?f.alignValue=f.textAlign=y:f[T]=y,f.doTransform=!0},f.afterSetters=function(){this.doTransform&&(this.htmlUpdateTransform(),this.doTransform=!1)},f.attr({text:w,x:Math.round(D),y:Math.round(b)}).css({position:"absolute"}),p.styledMode||f.css({fontFamily:this.style.fontFamily,fontSize:this.style.fontSize}),I.style.whiteSpace="nowrap",f.css=f.htmlCss,f.add=function(y){const T=p.box.parentNode,m=[];let h,x;if(this.parentGroup=y,y){if(h=y.div,!h){for(x=y;x;)m.push(x),x=x.parentGroup;m.reverse().forEach(function(l){const u=Z(l.element,"class");function r(e,s){l[s]=e,s==="translateX"?t.left=e+"px":t.top=e+"px",l.doTransform=!0}const i=l.styles||{};h=l.div=l.div||st("div",u?{className:u}:void 0,{position:"absolute",left:(l.translateX||0)+"px",top:(l.translateY||0)+"px",display:l.display,opacity:l.opacity,visibility:l.visibility},h||T);const t=h.style;Q(l,{classSetter:function(e){return function(s){this.element.setAttribute("class",s),e.className=s}}(h),css:function(e){return f.css.call(l,e),["cursor","pointerEvents"].forEach(s=>{e[s]&&(t[s]=e[s])}),l},on:function(){return m[0].div&&f.on.apply({element:m[0].div,onEvents:l.onEvents},arguments),l},translateXSetter:r,translateYSetter:r}),l.addedSetters||c(l),l.css(i)})}}else h=T;return h.appendChild(I),f.added=!0,f.alignOnAdd&&f.htmlUpdateTransform(),f},f}}return O}),ct(A,"Core/Axis/AxisDefaults.js",[],function(){var q;return function(Y){Y.defaultXAxisOptions={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e %b"},week:{main:"%e %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotation:void 0,autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,opposite:!1,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",rotation:0,useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},type:"linear",uniqueNames:!0,visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},Y.defaultYAxisOptions={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{rotation:270,text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){const{numberFormatter:tt}=this.axis.chart;return tt(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},Y.defaultLeftAxisOptions={title:{rotation:270}},Y.defaultRightAxisOptions={title:{rotation:90}},Y.defaultBottomAxisOptions={labels:{autoRotation:[-45]},margin:15,title:{rotation:0}},Y.defaultTopAxisOptions={labels:{autoRotation:[-45]},margin:15,title:{rotation:0}}}(q||(q={})),q}),ct(A,"Core/Foundation.js",[A["Core/Utilities.js"]],function(q){const{addEvent:Y,isFunction:tt,objectEach:it,removeEvent:Z}=q;var st;return function(Q){function G(K,O){K.eventOptions=K.eventOptions||{},it(O.events,function(S,w){K.eventOptions[w]!==S&&(K.eventOptions[w]&&(Z(K,w,K.eventOptions[w]),delete K.eventOptions[w]),tt(S)&&(K.eventOptions[w]=S,Y(K,w,S,{order:0})))})}Q.registerEventOptions=G}(st||(st={})),st}),ct(A,"Core/Axis/Tick.js",[A["Core/Templating.js"],A["Core/Globals.js"],A["Core/Utilities.js"]],function(q,Y,tt){const{deg2rad:it}=Y,{clamp:Z,correctFloat:st,defined:Q,destroyObjectProperties:G,extend:K,fireEvent:O,isNumber:S,merge:w,objectEach:D,pick:b}=tt;class f{constructor(p,c,y,T,m){this.isNew=!0,this.isNewLabel=!0,this.axis=p,this.pos=c,this.type=y||"",this.parameters=m||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,O(this,"init"),!y&&!T&&this.addLabel()}addLabel(){const p=this,c=p.axis,y=c.options,T=c.chart,m=c.categories,h=c.logarithmic,x=c.names,l=p.pos,u=b(p.options&&p.options.labels,y.labels),r=c.tickPositions,i=l===r[0],t=l===r[r.length-1],e=(!u.step||u.step===1)&&c.tickInterval===1,s=r.info;let n=p.label,a,M,g,k=this.parameters.category||(m?b(m[l],x[l],l):l);h&&S(k)&&(k=st(h.lin2log(k))),c.dateTime&&(s?(M=T.time.resolveDTLFormat(y.dateTimeLabelFormats[!y.grid&&s.higherRanks[l]||s.unitName]),a=M.main):S(k)&&(a=c.dateTime.getXDateFormat(k,y.dateTimeLabelFormats||{}))),p.isFirst=i,p.isLast=t;const C={axis:c,chart:T,dateTimeLabelFormat:a,isFirst:i,isLast:t,pos:l,tick:p,tickPositionInfo:s,value:k};O(this,"labelFormat",C);const B=d=>u.formatter?u.formatter.call(d,d):u.format?(d.text=c.defaultLabelFormatter.call(d,d),q.format(u.format,d,T)):c.defaultLabelFormatter.call(d,d),L=B.call(C,C),o=M&&M.list;o?p.shortenLabel=function(){for(g=0;g<o.length;g++)if(K(C,{dateTimeLabelFormat:o[g]}),n.attr({text:B.call(C,C)}),n.getBBox().width<c.getSlotWidth(p)-2*u.padding)return;n.attr({text:""})}:p.shortenLabel=void 0,e&&c._addedPlotLB&&p.moveLabel(L,u),!Q(n)&&!p.movedLabel?(p.label=n=p.createLabel({x:0,y:0},L,u),p.rotation=0):n&&n.textStr!==L&&!e&&(n.textWidth&&!u.style.width&&!n.styles.width&&n.css({width:null}),n.attr({text:L}),n.textPxLength=n.getBBox().width)}createLabel(p,c,y){const T=this.axis,m=T.chart,h=Q(c)&&y.enabled?m.renderer.text(c,p.x,p.y,y.useHTML).add(T.labelGroup):null;return h&&(m.styledMode||h.css(w(y.style)),h.textPxLength=h.getBBox().width),h}destroy(){G(this,this.axis)}getPosition(p,c,y,T){const m=this.axis,h=m.chart,x=T&&h.oldChartHeight||h.chartHeight,l={x:p?st(m.translate(c+y,void 0,void 0,T)+m.transB):m.left+m.offset+(m.opposite?(T&&h.oldChartWidth||h.chartWidth)-m.right-m.left:0),y:p?x-m.bottom+m.offset-(m.opposite?m.height:0):st(x-m.translate(c+y,void 0,void 0,T)-m.transB)};return l.y=Z(l.y,-1e5,1e5),O(this,"afterGetPosition",{pos:l}),l}getLabelPosition(p,c,y,T,m,h,x,l){const u=this.axis,r=u.transA,i=u.isLinked&&u.linkedParent?u.linkedParent.reversed:u.reversed,t=u.staggerLines,e=u.tickRotCorr||{x:0,y:0},s=!T&&!u.reserveSpaceDefault?-u.labelOffset*(u.labelAlign==="center"?.5:1):0,n=m.distance,a={};let M,g;return u.side===0?M=y.rotation?-n:-y.getBBox().height:u.side===2?M=e.y+n:M=Math.cos(y.rotation*it)*(e.y-y.getBBox(!1,0).height/2),Q(m.y)&&(M=u.side===0&&u.horiz?m.y+M:m.y),p=p+b(m.x,[0,1,0,-1][u.side]*n)+s+e.x-(h&&T?h*r*(i?-1:1):0),c=c+M-(h&&!T?h*r*(i?1:-1):0),t&&(g=x/(l||1)%t,u.opposite&&(g=t-g-1),c+=g*(u.labelOffset/t)),a.x=p,a.y=Math.round(c),O(this,"afterGetLabelPosition",{pos:a,tickmarkOffset:h,index:x}),a}getLabelSize(){return this.label?this.label.getBBox()[this.axis.horiz?"height":"width"]:0}getMarkPath(p,c,y,T,m,h){return h.crispLine([["M",p,c],["L",p+(m?0:-y),c+(m?y:0)]],T)}handleOverflow(p){const c=this,y=this.axis,T=y.options.labels,m=p.x,h=y.chart.chartWidth,x=y.chart.spacing,l=b(y.labelLeft,Math.min(y.pos,x[3])),u=b(y.labelRight,Math.max(y.isRadial?0:y.pos+y.len,h-x[1])),r=this.label,i=this.rotation,t={left:0,center:.5,right:1}[y.labelAlign||r.attr("align")],e=r.getBBox().width,s=y.getSlotWidth(c),n=t,a={};let M=s,g=1,k,C,B;!i&&T.overflow==="justify"?(k=m-t*e,C=m+(1-t)*e,k<l?M=p.x+M*(1-t)-l:C>u&&(M=u-p.x+M*t,g=-1),M=Math.min(s,M),M<s&&y.labelAlign==="center"&&(p.x+=g*(s-M-n*(s-Math.min(e,M)))),(e>M||y.autoRotation&&(r.styles||{}).width)&&(B=M)):i<0&&m-t*e<l?B=Math.round(m/Math.cos(i*it)-l):i>0&&m+t*e>u&&(B=Math.round((h-m)/Math.cos(i*it))),B&&(c.shortenLabel?c.shortenLabel():(a.width=Math.floor(B)+"px",(T.style||{}).textOverflow||(a.textOverflow="ellipsis"),r.css(a)))}moveLabel(p,c){const y=this,T=y.label,m=y.axis;let h=!1,x;T&&T.textStr===p?(y.movedLabel=T,h=!0,delete y.label):D(m.ticks,function(l){!h&&!l.isNew&&l!==y&&l.label&&l.label.textStr===p&&(y.movedLabel=l.label,h=!0,l.labelPos=y.movedLabel.xy,delete l.label)}),!h&&(y.labelPos||T)&&(x=y.labelPos||T.xy,y.movedLabel=y.createLabel(x,p,c),y.movedLabel&&y.movedLabel.attr({opacity:0}))}render(p,c,y){const T=this,m=T.axis,h=m.horiz,x=T.pos,l=b(T.tickmarkOffset,m.tickmarkOffset),u=T.getPosition(h,x,l,c),r=u.x,i=u.y,t=h&&r===m.pos+m.len||!h&&i===m.pos?-1:1,e=b(y,T.label&&T.label.newOpacity,1);y=b(y,1),this.isActive=!0,this.renderGridLine(c,y,t),this.renderMark(u,y,t),this.renderLabel(u,c,e,p),T.isNew=!1,O(this,"afterRender")}renderGridLine(p,c,y){const T=this,m=T.axis,h=m.options,x={},l=T.pos,u=T.type,r=b(T.tickmarkOffset,m.tickmarkOffset),i=m.chart.renderer;let t=T.gridLine,e,s=h.gridLineWidth,n=h.gridLineColor,a=h.gridLineDashStyle;T.type==="minor"&&(s=h.minorGridLineWidth,n=h.minorGridLineColor,a=h.minorGridLineDashStyle),t||(m.chart.styledMode||(x.stroke=n,x["stroke-width"]=s||0,x.dashstyle=a),u||(x.zIndex=1),p&&(c=0),T.gridLine=t=i.path().attr(x).addClass("highcharts-"+(u?u+"-":"")+"grid-line").add(m.gridGroup)),t&&(e=m.getPlotLinePath({value:l+r,lineWidth:t.strokeWidth()*y,force:"pass",old:p,acrossPanes:!1}),e&&t[p||T.isNew?"attr":"animate"]({d:e,opacity:c}))}renderMark(p,c,y){const T=this,m=T.axis,h=m.options,x=m.chart.renderer,l=T.type,u=m.tickSize(l?l+"Tick":"tick"),r=p.x,i=p.y,t=b(h[l!=="minor"?"tickWidth":"minorTickWidth"],!l&&m.isXAxis?1:0),e=h[l!=="minor"?"tickColor":"minorTickColor"];let s=T.mark;const n=!s;u&&(m.opposite&&(u[0]=-u[0]),s||(T.mark=s=x.path().addClass("highcharts-"+(l?l+"-":"")+"tick").add(m.axisGroup),m.chart.styledMode||s.attr({stroke:e,"stroke-width":t})),s[n?"attr":"animate"]({d:T.getMarkPath(r,i,u[0],s.strokeWidth()*y,m.horiz,x),opacity:c}))}renderLabel(p,c,y,T){const m=this,h=m.axis,x=h.horiz,l=h.options,u=m.label,r=l.labels,i=r.step,t=b(m.tickmarkOffset,h.tickmarkOffset),e=p.x,s=p.y;let n=!0;u&&S(e)&&(u.xy=p=m.getLabelPosition(e,s,u,x,r,t,T,i),m.isFirst&&!m.isLast&&!l.showFirstLabel||m.isLast&&!m.isFirst&&!l.showLastLabel?n=!1:x&&!r.step&&!r.rotation&&!c&&y!==0&&m.handleOverflow(p),i&&T%i&&(n=!1),n&&S(p.y)?(p.opacity=y,u[m.isNewLabel?"attr":"animate"](p).show(!0),m.isNewLabel=!1):(u.hide(),m.isNewLabel=!0))}replaceMovedLabel(){const p=this,c=p.label,y=p.axis;c&&!p.isNew&&(c.animate({opacity:0},void 0,c.destroy),delete p.label),y.isDirty=!0,p.label=p.movedLabel,delete p.movedLabel}}return f}),ct(A,"Core/Axis/Axis.js",[A["Core/Animation/AnimationUtilities.js"],A["Core/Axis/AxisDefaults.js"],A["Core/Color/Color.js"],A["Core/Defaults.js"],A["Core/Foundation.js"],A["Core/Globals.js"],A["Core/Axis/Tick.js"],A["Core/Utilities.js"]],function(q,Y,tt,it,Z,st,Q,G){const{animObject:K}=q,{defaultOptions:O}=it,{registerEventOptions:S}=Z,{deg2rad:w}=st,{arrayMax:D,arrayMin:b,clamp:f,correctFloat:I,defined:p,destroyObjectProperties:c,erase:y,error:T,extend:m,fireEvent:h,getClosestDistance:x,insertItem:l,isArray:u,isNumber:r,isString:i,merge:t,normalizeTickInterval:e,objectEach:s,pick:n,relativeLength:a,removeEvent:M,splat:g,syncTimeout:k}=G,C=(L,o)=>e(o,void 0,void 0,n(L.options.allowDecimals,o<.5||L.tickAmount!==void 0),!!L.tickAmount);class B{constructor(o,d,N){this.alternateBands=void 0,this.bottom=void 0,this.chart=void 0,this.closestPointRange=void 0,this.coll=void 0,this.eventOptions=void 0,this.hasNames=void 0,this.hasVisibleSeries=void 0,this.height=void 0,this.index=void 0,this.isLinked=void 0,this.labelEdge=void 0,this.labelFormatter=void 0,this.left=void 0,this.len=void 0,this.max=void 0,this.maxLabelLength=void 0,this.min=void 0,this.minorTickInterval=void 0,this.minorTicks=void 0,this.minPixelPadding=void 0,this.names=void 0,this.offset=void 0,this.options=void 0,this.overlap=void 0,this.paddedTicks=void 0,this.plotLinesAndBands=void 0,this.plotLinesAndBandsGroups=void 0,this.pointRange=void 0,this.pointRangePadding=void 0,this.pos=void 0,this.positiveValuesOnly=void 0,this.right=void 0,this.series=void 0,this.side=void 0,this.tickAmount=void 0,this.tickInterval=void 0,this.tickmarkOffset=void 0,this.tickPositions=void 0,this.tickRotCorr=void 0,this.ticks=void 0,this.top=void 0,this.transA=void 0,this.transB=void 0,this.translationSlope=void 0,this.userOptions=void 0,this.visible=void 0,this.width=void 0,this.zoomEnabled=void 0,this.init(o,d,N)}init(o,d,N=this.coll){const V=N==="xAxis",R=this;R.chart=o,R.horiz=R.isZAxis||(o.inverted?!V:V),R.isXAxis=V,R.coll=N,h(this,"init",{userOptions:d}),R.opposite=n(d.opposite,R.opposite),R.side=n(d.side,R.side,R.horiz?R.opposite?0:2:R.opposite?1:3),R.setOptions(d);const H=this.options,v=H.labels,P=H.type;R.userOptions=d,R.minPixelPadding=0,R.reversed=n(H.reversed,R.reversed),R.visible=H.visible,R.zoomEnabled=H.zoomEnabled,R.hasNames=P==="category"||H.categories===!0,R.categories=H.categories||(R.hasNames?[]:void 0),R.names||(R.names=[],R.names.keys={}),R.plotLinesAndBandsGroups={},R.positiveValuesOnly=!!R.logarithmic,R.isLinked=p(H.linkedTo),R.ticks={},R.labelEdge=[],R.minorTicks={},R.plotLinesAndBands=[],R.alternateBands={},R.len=0,R.minRange=R.userMinRange=H.minRange||H.maxZoom,R.range=H.range,R.offset=H.offset||0,R.max=null,R.min=null;const _=n(H.crosshair,g(o.options.tooltip.crosshairs)[V?0:1]);R.crosshair=_===!0?{}:_,o.axes.indexOf(R)===-1&&(V?o.axes.splice(o.xAxis.length,0,R):o.axes.push(R),l(this,o[this.coll])),o.orderItems(R.coll),R.series=R.series||[],o.inverted&&!R.isZAxis&&V&&typeof R.reversed>"u"&&(R.reversed=!0),R.labelRotation=r(v.rotation)?v.rotation:void 0,S(R,H),h(this,"afterInit")}setOptions(o){this.options=t(Y.defaultXAxisOptions,this.coll==="yAxis"&&Y.defaultYAxisOptions,[Y.defaultTopAxisOptions,Y.defaultRightAxisOptions,Y.defaultBottomAxisOptions,Y.defaultLeftAxisOptions][this.side],t(O[this.coll],o)),h(this,"afterSetOptions",{userOptions:o})}defaultLabelFormatter(o){const d=this.axis,N=this.chart,{numberFormatter:V}=N,R=r(this.value)?this.value:NaN,H=d.chart.time,v=d.categories,P=this.dateTimeLabelFormat,_=O.lang,z=_.numericSymbols,$=_.numericSymbolMagnitude||1e3,j=d.logarithmic?Math.abs(R):d.tickInterval;let et=z&&z.length,ot,J;if(v)J=`${this.value}`;else if(P)J=H.dateFormat(P,R);else if(et&&j>=1e3)for(;et--&&typeof J>"u";)ot=Math.pow($,et+1),j>=ot&&R*10%ot===0&&z[et]!==null&&R!==0&&(J=V(R/ot,-1)+z[et]);return typeof J>"u"&&(Math.abs(R)>=1e4?J=V(R,-1):J=V(R,-1,void 0,"")),J}getSeriesExtremes(){const o=this,d=o.chart;let N;h(this,"getSeriesExtremes",null,function(){o.hasVisibleSeries=!1,o.dataMin=o.dataMax=o.threshold=null,o.softThreshold=!o.isXAxis,o.series.forEach(function(V){if(V.visible||!d.options.chart.ignoreHiddenSeries){const R=V.options;let H,v=R.threshold,P,_;if(o.hasVisibleSeries=!0,o.positiveValuesOnly&&v<=0&&(v=null),o.isXAxis)H=V.xData,H&&H.length&&(H=o.logarithmic?H.filter(z=>z>0):H,N=V.getXExtremes(H),P=N.min,_=N.max,!r(P)&&!(P instanceof Date)&&(H=H.filter(r),N=V.getXExtremes(H),P=N.min,_=N.max),H.length&&(o.dataMin=Math.min(n(o.dataMin,P),P),o.dataMax=Math.max(n(o.dataMax,_),_)));else{const z=V.applyExtremes();r(z.dataMin)&&(P=z.dataMin,o.dataMin=Math.min(n(o.dataMin,P),P)),r(z.dataMax)&&(_=z.dataMax,o.dataMax=Math.max(n(o.dataMax,_),_)),p(v)&&(o.threshold=v),(!R.softThreshold||o.positiveValuesOnly)&&(o.softThreshold=!1)}}})}),h(this,"afterGetSeriesExtremes")}translate(o,d,N,V,R,H){const v=this.linkedParent||this,P=V&&v.old?v.old.min:v.min;if(!r(P))return NaN;const _=v.minPixelPadding,z=(v.isOrdinal||v.brokenAxis&&v.brokenAxis.hasBreaks||v.logarithmic&&R)&&v.lin2val;let $=1,j=0,et=V&&v.old?v.old.transA:v.transA,ot=0;if(et||(et=v.transA),N&&($*=-1,j=v.len),v.reversed&&($*=-1,j-=$*(v.sector||v.len)),d)o=o*$+j,o-=_,ot=o/et+P,z&&(ot=v.lin2val(ot));else{z&&(o=v.val2lin(o));const J=$*(o-P)*et;ot=(v.isRadial?J:I(J))+j+$*_+(r(H)?et*H:0)}return ot}toPixels(o,d){return this.translate(o,!1,!this.horiz,void 0,!0)+(d?0:this.pos)}toValue(o,d){return this.translate(o-(d?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(o){const d=this,N=d.chart,V=d.left,R=d.top,H=o.old,v=o.value,P=o.lineWidth,_=H&&N.oldChartHeight||N.chartHeight,z=H&&N.oldChartWidth||N.chartWidth,$=d.transB;let j=o.translatedValue,et=o.force,ot,J,at,W,F;function E(U,nt,rt){return et!=="pass"&&(U<nt||U>rt)&&(et?U=f(U,nt,rt):F=!0),U}const X={value:v,lineWidth:P,old:H,force:et,acrossPanes:o.acrossPanes,translatedValue:j};return h(this,"getPlotLinePath",X,function(U){j=n(j,d.translate(v,void 0,void 0,H)),j=f(j,-1e5,1e5),ot=at=Math.round(j+$),J=W=Math.round(_-j-$),r(j)?d.horiz?(J=R,W=_-d.bottom,ot=at=E(ot,V,V+d.width)):(ot=V,at=z-d.right,J=W=E(J,R,R+d.height)):(F=!0,et=!1),U.path=F&&!et?null:N.renderer.crispLine([["M",ot,J],["L",at,W]],P||1)}),X.path}getLinearTickPositions(o,d,N){const V=I(Math.floor(d/o)*o),R=I(Math.ceil(N/o)*o),H=[];let v,P,_;if(I(V+o)===V&&(_=20),this.single)return[d];for(v=V;v<=R&&(H.push(v),v=I(v+o,_),v!==P);)P=v;return H}getMinorTickInterval(){const o=this.options;return o.minorTicks===!0?n(o.minorTickInterval,"auto"):o.minorTicks===!1?null:o.minorTickInterval}getMinorTickPositions(){const o=this,d=o.options,N=o.tickPositions,V=o.minorTickInterval,R=o.pointRangePadding||0,H=o.min-R,v=o.max+R,P=v-H;let _=[],z;if(P&&P/V<o.len/3){const $=o.logarithmic;if($)this.paddedTicks.forEach(function(j,et,ot){et&&_.push.apply(_,$.getLogTickPositions(V,ot[et-1],ot[et],!0))});else if(o.dateTime&&this.getMinorTickInterval()==="auto")_=_.concat(o.getTimeTicks(o.dateTime.normalizeTimeTickInterval(V),H,v,d.startOfWeek));else for(z=H+(N[0]-H)%V;z<=v&&z!==_[0];z+=V)_.push(z)}return _.length!==0&&o.trimTicks(_),_}adjustForMinRange(){const o=this,d=o.options,N=o.logarithmic;let V=o.min,R=o.max,H,v,P,_,z,$;o.isXAxis&&typeof o.minRange>"u"&&!N&&(p(d.min)||p(d.max)||p(d.floor)||p(d.ceiling)?o.minRange=null:(P=x(o.series.map(j=>{var et;return(j.xIncrement?(et=j.xData)===null||et===void 0?void 0:et.slice(0,2):j.xData)||[]}))||0,o.minRange=Math.min(P*5,o.dataMax-o.dataMin))),R-V<o.minRange&&(v=o.dataMax-o.dataMin>=o.minRange,$=o.minRange,H=($-R+V)/2,_=[V-H,n(d.min,V-H)],v&&(_[2]=N?N.log2lin(o.dataMin):o.dataMin),V=D(_),z=[V+$,n(d.max,V+$)],v&&(z[2]=N?N.log2lin(o.dataMax):o.dataMax),R=b(z),R-V<$&&(_[0]=R-$,_[1]=n(d.min,R-$),V=D(_))),o.min=V,o.max=R}getClosest(){let o,d;if(this.categories)d=1;else{const N=[];this.series.forEach(function(V){var R;const H=V.closestPointRange,v=V.visible||!V.chart.options.chart.ignoreHiddenSeries;((R=V.xData)===null||R===void 0?void 0:R.length)===1?N.push(V.xData[0]):!V.noSharedTooltip&&p(H)&&v&&(d=p(d)?Math.min(d,H):H)}),N.length&&(N.sort((V,R)=>V-R),o=x([N]))}return o&&d?Math.min(o,d):o||d}nameToX(o){const d=u(this.options.categories),N=d?this.categories:this.names;let V=o.options.x,R;return o.series.requireSorting=!1,p(V)||(V=this.options.uniqueNames&&N?d?N.indexOf(o.name):n(N.keys[o.name],-1):o.series.autoIncrement()),V===-1?!d&&N&&(R=N.length):R=V,typeof R<"u"?(this.names[R]=o.name,this.names.keys[o.name]=R):o.x&&(R=o.x),R}updateNames(){const o=this,d=this.names;d.length>0&&(Object.keys(d.keys).forEach(function(V){delete d.keys[V]}),d.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(function(V){V.xIncrement=null,(!V.points||V.isDirtyData)&&(o.max=Math.max(o.max,V.xData.length-1),V.processData(),V.generatePoints()),V.data.forEach(function(R,H){let v;R&&R.options&&typeof R.name<"u"&&(v=o.nameToX(R),typeof v<"u"&&v!==R.x&&(R.x=v,V.xData[H]=v))})}))}setAxisTranslation(){const o=this,d=o.max-o.min,N=o.linkedParent,V=!!o.categories,R=o.isXAxis;let H=o.axisPointRange||0,v,P=0,_=0,z,$=o.transA;(R||V||H)&&(v=o.getClosest(),N?(P=N.minPointOffset,_=N.pointRangePadding):o.series.forEach(function(j){const et=V?1:R?n(j.options.pointRange,v,0):o.axisPointRange||0,ot=j.options.pointPlacement;if(H=Math.max(H,et),!o.single||V){const J=j.is("xrange")?!R:R;P=Math.max(P,J&&i(ot)?0:et/2),_=Math.max(_,J&&ot==="on"?0:et)}}),z=o.ordinal&&o.ordinal.slope&&v?o.ordinal.slope/v:1,o.minPointOffset=P=P*z,o.pointRangePadding=_=_*z,o.pointRange=Math.min(H,o.single&&V?1:d),R&&v&&(o.closestPointRange=v)),o.translationSlope=o.transA=$=o.staticScale||o.len/(d+_||1),o.transB=o.horiz?o.left:o.bottom,o.minPixelPadding=$*P,h(this,"afterSetAxisTranslation")}minFromRange(){const o=this;return o.max-o.range}setTickInterval(o){const d=this,N=d.chart,V=d.logarithmic,R=d.options,H=d.isXAxis,v=d.isLinked,P=R.tickPixelInterval,_=d.categories,z=d.softThreshold;let $=R.maxPadding,j=R.minPadding,et,ot,J=r(R.tickInterval)&&R.tickInterval>=0?R.tickInterval:void 0,at=r(d.threshold)?d.threshold:null,W,F,E,X;if(!d.dateTime&&!_&&!v&&this.getTickAmount(),E=n(d.userMin,R.min),X=n(d.userMax,R.max),v?(d.linkedParent=N[d.coll][R.linkedTo],ot=d.linkedParent.getExtremes(),d.min=n(ot.min,ot.dataMin),d.max=n(ot.max,ot.dataMax),R.type!==d.linkedParent.options.type&&T(11,1,N)):(z&&p(at)&&(d.dataMin>=at?(W=at,j=0):d.dataMax<=at&&(F=at,$=0)),d.min=n(E,W,d.dataMin),d.max=n(X,F,d.dataMax)),V&&(d.positiveValuesOnly&&!o&&Math.min(d.min,n(d.dataMin,d.min))<=0&&T(10,1,N),d.min=I(V.log2lin(d.min),16),d.max=I(V.log2lin(d.max),16)),d.range&&p(d.max)&&(d.userMin=d.min=E=Math.max(d.dataMin,d.minFromRange()),d.userMax=X=d.max,d.range=null),h(d,"foundExtremes"),d.beforePadding&&d.beforePadding(),d.adjustForMinRange(),r(d.userMin)||r(R.softMin)&&R.softMin<d.min&&(d.min=E=R.softMin),r(d.userMax)||r(R.softMax)&&R.softMax>d.max&&(d.max=X=R.softMax),!_&&!d.axisPointRange&&!(d.stacking&&d.stacking.usePercentage)&&!v&&p(d.min)&&p(d.max)&&(et=d.max-d.min,et&&(!p(E)&&j&&(d.min-=et*j),!p(X)&&$&&(d.max+=et*$))),!r(d.userMin)&&r(R.floor)&&(d.min=Math.max(d.min,R.floor)),!r(d.userMax)&&r(R.ceiling)&&(d.max=Math.min(d.max,R.ceiling)),z&&p(d.dataMin)&&(at=at||0,!p(E)&&d.min<at&&d.dataMin>=at?d.min=d.options.minRange?Math.min(at,d.max-d.minRange):at:!p(X)&&d.max>at&&d.dataMax<=at&&(d.max=d.options.minRange?Math.max(at,d.min+d.minRange):at)),r(d.min)&&r(d.max)&&!this.chart.polar&&d.min>d.max&&(p(d.options.min)?d.max=d.min:p(d.options.max)&&(d.min=d.max)),d.min===d.max||typeof d.min>"u"||typeof d.max>"u"?d.tickInterval=1:v&&d.linkedParent&&!J&&P===d.linkedParent.options.tickPixelInterval?d.tickInterval=J=d.linkedParent.tickInterval:d.tickInterval=n(J,this.tickAmount?(d.max-d.min)/Math.max(this.tickAmount-1,1):void 0,_?1:(d.max-d.min)*P/Math.max(d.len,P)),H&&!o){const nt=d.min!==(d.old&&d.old.min)||d.max!==(d.old&&d.old.max);d.series.forEach(function(rt){rt.forceCrop=rt.forceCropping&&rt.forceCropping(),rt.processData(nt)}),h(this,"postProcessData",{hasExtremesChanged:nt})}d.setAxisTranslation(),h(this,"initialAxisTranslation"),d.pointRange&&!J&&(d.tickInterval=Math.max(d.pointRange,d.tickInterval));const U=n(R.minTickInterval,d.dateTime&&!d.series.some(nt=>nt.noSharedTooltip)?d.closestPointRange:0);!J&&d.tickInterval<U&&(d.tickInterval=U),!d.dateTime&&!d.logarithmic&&!J&&(d.tickInterval=C(d,d.tickInterval)),this.tickAmount||(d.tickInterval=d.unsquish()),this.setTickPositions()}setTickPositions(){const o=this,d=this.options,N=d.tickPositions,V=d.tickPositioner,R=this.getMinorTickInterval(),H=this.hasVerticalPanning(),v=this.coll==="colorAxis",P=(v||!H)&&d.startOnTick,_=(v||!H)&&d.endOnTick;let z=[],$;if(this.tickmarkOffset=this.categories&&d.tickmarkPlacement==="between"&&this.tickInterval===1?.5:0,this.minorTickInterval=R==="auto"&&this.tickInterval?this.tickInterval/d.minorTicksPerMajor:R,this.single=this.min===this.max&&p(this.min)&&!this.tickAmount&&(parseInt(this.min,10)===this.min||d.allowDecimals!==!1),N)z=N.slice();else if(r(this.min)&&r(this.max)){if((!o.ordinal||!o.ordinal.positions)&&(this.max-this.min)/this.tickInterval>Math.max(2*this.len,200))z=[this.min,this.max],T(19,!1,this.chart);else if(o.dateTime)z=o.getTimeTicks(o.dateTime.normalizeTimeTickInterval(this.tickInterval,d.units),this.min,this.max,d.startOfWeek,o.ordinal&&o.ordinal.positions,this.closestPointRange,!0);else if(o.logarithmic)z=o.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{const j=this.tickInterval;let et=j;for(;et<=j*2&&(z=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&z.length>this.tickAmount);)this.tickInterval=C(this,et*=1.1)}z.length>this.len&&(z=[z[0],z[z.length-1]],z[0]===z[1]&&(z.length=1)),V&&(this.tickPositions=z,$=V.apply(o,[this.min,this.max]),$&&(z=$))}this.tickPositions=z,this.paddedTicks=z.slice(0),this.trimTicks(z,P,_),!this.isLinked&&r(this.min)&&r(this.max)&&(this.single&&z.length<2&&!this.categories&&!this.series.some(j=>j.is("heatmap")&&j.options.pointPlacement==="between")&&(this.min-=.5,this.max+=.5),!N&&!$&&this.adjustTickAmount()),h(this,"afterSetTickPositions")}trimTicks(o,d,N){const V=o[0],R=o[o.length-1],H=!this.isOrdinal&&this.minPointOffset||0;if(h(this,"trimTicks"),!this.isLinked){if(d&&V!==-1/0)this.min=V;else for(;this.min-H>o[0];)o.shift();if(N)this.max=R;else for(;this.max+H<o[o.length-1];)o.pop();o.length===0&&p(V)&&!this.options.tickPositions&&o.push((R+V)/2)}}alignToOthers(){const o=this,d=[this],N=o.options,V=this.coll==="yAxis"&&this.chart.options.chart.alignThresholds,R=[];let H;if(o.thresholdAlignment=void 0,(this.chart.options.chart.alignTicks!==!1&&N.alignTicks||V)&&N.startOnTick!==!1&&N.endOnTick!==!1&&!o.logarithmic){const v=_=>{const{horiz:z,options:$}=_;return[z?$.left:$.top,$.width,$.height,$.pane].join(",")},P=v(this);this.chart[this.coll].forEach(function(_){const{series:z}=_;z.length&&z.some($=>$.visible)&&_!==o&&v(_)===P&&(H=!0,d.push(_))})}if(H&&V){d.forEach(P=>{const _=P.getThresholdAlignment(o);r(_)&&R.push(_)});const v=R.length>1?R.reduce((P,_)=>P+=_,0)/R.length:void 0;d.forEach(P=>{P.thresholdAlignment=v})}return H}getThresholdAlignment(o){if((!r(this.dataMin)||this!==o&&this.series.some(d=>d.isDirty||d.isDirtyData))&&this.getSeriesExtremes(),r(this.threshold)){let d=f((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(d=1-d),d}}getTickAmount(){const o=this,d=this.options,N=d.tickPixelInterval;let V=d.tickAmount;!p(d.tickInterval)&&!V&&this.len<N&&!this.isRadial&&!o.logarithmic&&d.startOnTick&&d.endOnTick&&(V=2),!V&&this.alignToOthers()&&(V=Math.ceil(this.len/N)+1),V<4&&(this.finalTickAmt=V,V=5),this.tickAmount=V}adjustTickAmount(){const o=this,{finalTickAmt:d,max:N,min:V,options:R,tickPositions:H,tickAmount:v,thresholdAlignment:P}=o,_=H&&H.length,z=n(o.threshold,o.softThreshold?0:null);let $,j,et=o.tickInterval,ot;const J=()=>H.push(I(H[H.length-1]+et)),at=()=>H.unshift(I(H[0]-et));if(r(P)&&(ot=P<.5?Math.ceil(P*(v-1)):Math.floor(P*(v-1)),R.reversed&&(ot=v-1-ot)),o.hasData()&&r(V)&&r(N)){const W=()=>{o.transA*=(_-1)/(v-1),o.min=R.startOnTick?H[0]:Math.min(V,H[0]),o.max=R.endOnTick?H[H.length-1]:Math.max(N,H[H.length-1])};if(r(ot)&&r(o.threshold)){for(;H[ot]!==z||H.length!==v||H[0]>V||H[H.length-1]<N;){for(H.length=0,H.push(o.threshold);H.length<v;)H[ot]===void 0||H[ot]>o.threshold?at():J();if(et>o.tickInterval*8)break;et*=2}W()}else if(_<v){for(;H.length<v;)H.length%2||V===z?J():at();W()}if(p(d)){for(j=$=H.length;j--;)(d===3&&j%2===1||d<=2&&j>0&&j<$-1)&&H.splice(j,1);o.finalTickAmt=void 0}}}setScale(){const o=this;let d=!1,N=!1;o.series.forEach(function(R){d=d||R.isDirtyData||R.isDirty,N=N||R.xAxis&&R.xAxis.isDirty||!1}),o.setAxisSize();const V=o.len!==(o.old&&o.old.len);V||d||N||o.isLinked||o.forceRedraw||o.userMin!==(o.old&&o.old.userMin)||o.userMax!==(o.old&&o.old.userMax)||o.alignToOthers()?(o.stacking&&(o.stacking.resetStacks(),o.stacking.buildStacks()),o.forceRedraw=!1,o.userMinRange||(o.minRange=void 0),o.getSeriesExtremes(),o.setTickInterval(),o.isDirty||(o.isDirty=V||o.min!==(o.old&&o.old.min)||o.max!==(o.old&&o.old.max))):o.stacking&&o.stacking.cleanStacks(),d&&o.panningState&&(o.panningState.isDirty=!0),h(this,"afterSetScale")}setExtremes(o,d,N,V,R){const H=this,v=H.chart;N=n(N,!0),H.series.forEach(function(P){delete P.kdTree}),R=m(R,{min:o,max:d}),h(H,"setExtremes",R,function(){H.userMin=o,H.userMax=d,H.eventArgs=R,N&&v.redraw(V)})}zoom(o,d){const N=this,V=this.dataMin,R=this.dataMax,H=this.options,v=Math.min(V,n(H.min,V)),P=Math.max(R,n(H.max,R)),_={newMin:o,newMax:d};return h(this,"zoom",_,function(z){let $=z.newMin,j=z.newMax;($!==N.min||j!==N.max)&&(N.allowZoomOutside||(p(V)&&($<v&&($=v),$>P&&($=P)),p(R)&&(j<v&&(j=v),j>P&&(j=P))),N.displayBtn=typeof $<"u"||typeof j<"u",N.setExtremes($,j,!1,void 0,{trigger:"zoom"})),z.zoomed=!0}),_.zoomed}setAxisSize(){const o=this.chart,d=this.options,N=d.offsets||[0,0,0,0],V=this.horiz,R=this.width=Math.round(a(n(d.width,o.plotWidth-N[3]+N[1]),o.plotWidth)),H=this.height=Math.round(a(n(d.height,o.plotHeight-N[0]+N[2]),o.plotHeight)),v=this.top=Math.round(a(n(d.top,o.plotTop+N[0]),o.plotHeight,o.plotTop)),P=this.left=Math.round(a(n(d.left,o.plotLeft+N[3]),o.plotWidth,o.plotLeft));this.bottom=o.chartHeight-H-v,this.right=o.chartWidth-R-P,this.len=Math.max(V?R:H,0),this.pos=V?P:v}getExtremes(){const o=this,d=o.logarithmic;return{min:d?I(d.lin2log(o.min)):o.min,max:d?I(d.lin2log(o.max)):o.max,dataMin:o.dataMin,dataMax:o.dataMax,userMin:o.userMin,userMax:o.userMax}}getThreshold(o){const d=this,N=d.logarithmic,V=N?N.lin2log(d.min):d.min,R=N?N.lin2log(d.max):d.max;return o===null||o===-1/0?o=V:o===1/0?o=R:V>o?o=V:R<o&&(o=R),d.translate(o,0,1,0,1)}autoLabelAlign(o){const d=(n(o,0)-this.side*90+720)%360,N={align:"center"};return h(this,"autoLabelAlign",N,function(V){d>15&&d<165?V.align="right":d>195&&d<345&&(V.align="left")}),N.align}tickSize(o){const d=this.options,N=n(d[o==="tick"?"tickWidth":"minorTickWidth"],o==="tick"&&this.isXAxis&&!this.categories?1:0);let V=d[o==="tick"?"tickLength":"minorTickLength"],R;N&&V&&(d[o+"Position"]==="inside"&&(V=-V),R=[V,N]);const H={tickSize:R};return h(this,"afterTickSize",H),H.tickSize}labelMetrics(){const o=this.chart.renderer,d=this.ticks,N=d[Object.keys(d)[0]]||{};return this.chart.renderer.fontMetrics(N.label||N.movedLabel||o.box)}unsquish(){const o=this.options.labels,d=this.horiz,N=this.tickInterval,V=this.len/(((this.categories?1:0)+this.max-this.min)/N),R=o.rotation,H=this.labelMetrics().h*.75,v=Math.max(this.max-this.min,0),P=function(et){let ot=et/(V||1);return ot=ot>1?Math.ceil(ot):1,ot*N>v&&et!==1/0&&V!==1/0&&v&&(ot=Math.ceil(v/N)),I(ot*N)};let _=N,z,$=Number.MAX_VALUE,j;if(d){if(o.staggerLines||(r(R)?j=[R]:V<o.autoRotationLimit&&(j=o.autoRotation)),j){let et,ot;for(const J of j)(J===R||J&&J>=-90&&J<=90)&&(et=P(Math.abs(H/Math.sin(w*J))),ot=et+Math.abs(J/360),ot<$&&($=ot,z=J,_=et))}}else _=P(H);return this.autoRotation=j,this.labelRotation=n(z,r(R)?R:0),o.step?N:_}getSlotWidth(o){const d=this.chart,N=this.horiz,V=this.options.labels,R=Math.max(this.tickPositions.length-(this.categories?0:1),1),H=d.margin[3];if(o&&r(o.slotWidth))return o.slotWidth;if(N&&V.step<2)return V.rotation?0:(this.staggerLines||1)*this.len/R;if(!N){const v=V.style.width;if(v!==void 0)return parseInt(String(v),10);if(H)return H-d.spacing[3]}return d.chartWidth*.33}renderUnsquish(){const o=this.chart,d=o.renderer,N=this.tickPositions,V=this.ticks,R=this.options.labels,H=R.style,v=this.horiz,P=this.getSlotWidth(),_=Math.max(1,Math.round(P-2*R.padding)),z={},$=this.labelMetrics(),j=H.textOverflow;let et,ot,J=0,at,W,F;if(i(R.rotation)||(z.rotation=R.rotation||0),N.forEach(function(E){const X=V[E];X.movedLabel&&X.replaceMovedLabel(),X&&X.label&&X.label.textPxLength>J&&(J=X.label.textPxLength)}),this.maxLabelLength=J,this.autoRotation)J>_&&J>$.h?z.rotation=this.labelRotation:this.labelRotation=0;else if(P&&(et=_,!j))for(ot="clip",W=N.length;!v&&W--;)F=N[W],at=V[F].label,at&&(at.styles&&at.styles.textOverflow==="ellipsis"?at.css({textOverflow:"clip"}):at.textPxLength>P&&at.css({width:P+"px"}),at.getBBox().height>this.len/N.length-($.h-$.f)&&(at.specificTextOverflow="ellipsis"));z.rotation&&(et=J>o.chartHeight*.5?o.chartHeight*.33:J,j||(ot="ellipsis")),this.labelAlign=R.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(z.align=this.labelAlign),N.forEach(function(E){const X=V[E],U=X&&X.label,nt=H.width,rt={};U&&(U.attr(z),X.shortenLabel?X.shortenLabel():et&&!nt&&H.whiteSpace!=="nowrap"&&(et<U.textPxLength||U.element.tagName==="SPAN")?(rt.width=et+"px",j||(rt.textOverflow=U.specificTextOverflow||ot),U.css(rt)):U.styles&&U.styles.width&&!rt.width&&!nt&&U.css({width:null}),delete U.specificTextOverflow,X.rotation=z.rotation)},this),this.tickRotCorr=d.rotCorr($.b,this.labelRotation||0,this.side!==0)}hasData(){return this.series.some(function(o){return o.hasData()})||this.options.showEmpty&&p(this.min)&&p(this.max)}addTitle(o){const d=this,N=d.chart.renderer,V=d.horiz,R=d.opposite,H=d.options,v=H.title,P=d.chart.styledMode;let _;d.axisTitle||(_=v.textAlign,_||(_=(V?{low:"left",middle:"center",high:"right"}:{low:R?"right":"left",middle:"center",high:R?"left":"right"})[v.align]),d.axisTitle=N.text(v.text||"",0,0,v.useHTML).attr({zIndex:7,rotation:v.rotation,align:_}).addClass("highcharts-axis-title"),P||d.axisTitle.css(t(v.style)),d.axisTitle.add(d.axisGroup),d.axisTitle.isNew=!0),!P&&!v.style.width&&!d.isRadial&&d.axisTitle.css({width:d.len+"px"}),d.axisTitle[o?"show":"hide"](o)}generateTick(o){const d=this,N=d.ticks;N[o]?N[o].addLabel():N[o]=new Q(d,o)}getOffset(){const o=this,{chart:d,horiz:N,options:V,side:R,ticks:H,tickPositions:v,coll:P,axisParent:_}=o,z=d.renderer,$=d.inverted&&!o.isZAxis?[1,0,3,2][R]:R,j=o.hasData(),et=V.title,ot=V.labels,J=r(V.crossing),at=d.axisOffset,W=d.clipOffset,F=[-1,1,1,-1][R],E=V.className;let X,U=0,nt,rt=0,ht=0,ft,mt;if(o.showAxis=X=j||V.showEmpty,o.staggerLines=o.horiz&&ot.staggerLines||void 0,!o.axisGroup){const gt=(xt,bt,Tt)=>z.g(xt).attr({zIndex:Tt}).addClass(`highcharts-${P.toLowerCase()}${bt} `+(this.isRadial?`highcharts-radial-axis${bt} `:"")+(E||"")).add(_);o.gridGroup=gt("grid","-grid",V.gridZIndex),o.axisGroup=gt("axis","",V.zIndex),o.labelGroup=gt("axis-labels","-labels",ot.zIndex)}if(j||o.isLinked?(v.forEach(function(gt){o.generateTick(gt)}),o.renderUnsquish(),o.reserveSpaceDefault=R===0||R===2||{1:"left",3:"right"}[R]===o.labelAlign,n(ot.reserveSpace,J?!1:null,o.labelAlign==="center"?!0:null,o.reserveSpaceDefault)&&v.forEach(function(gt){ht=Math.max(H[gt].getLabelSize(),ht)}),o.staggerLines&&(ht*=o.staggerLines),o.labelOffset=ht*(o.opposite?-1:1)):s(H,function(gt,xt){gt.destroy(),delete H[xt]}),et&&et.text&&et.enabled!==!1&&(o.addTitle(X),X&&!J&&et.reserveSpace!==!1&&(o.titleOffset=U=o.axisTitle.getBBox()[N?"height":"width"],nt=et.offset,rt=p(nt)?0:n(et.margin,N?5:10))),o.renderLine(),o.offset=F*n(V.offset,at[R]?at[R]+(V.margin||0):0),o.tickRotCorr=o.tickRotCorr||{x:0,y:0},R===0?mt=-o.labelMetrics().h:R===2?mt=o.tickRotCorr.y:mt=0,ft=Math.abs(ht)+rt,ht&&(ft-=mt,ft+=F*(N?n(ot.y,o.tickRotCorr.y+F*ot.distance):n(ot.x,F*ot.distance))),o.axisTitleMargin=n(nt,ft),o.getMaxLabelDimensions&&(o.maxLabelDimensions=o.getMaxLabelDimensions(H,v)),P!=="colorAxis"){const gt=this.tickSize("tick");at[R]=Math.max(at[R],(o.axisTitleMargin||0)+U+F*o.offset,ft,v&&v.length&&gt?gt[0]+F*o.offset:0);const xt=!o.axisLine||V.offset?0:Math.floor(o.axisLine.strokeWidth()/2)*2;W[$]=Math.max(W[$],xt)}h(this,"afterGetOffset")}getLinePath(o){const d=this.chart,N=this.opposite,V=this.offset,R=this.horiz,H=this.left+(N?this.width:0)+V,v=d.chartHeight-this.bottom-(N?this.height:0)+V;return N&&(o*=-1),d.renderer.crispLine([["M",R?this.left:H,R?v:this.top],["L",R?d.chartWidth-this.right:H,R?v:d.chartHeight-this.bottom]],o)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(o){const d=this.horiz,N=this.left,V=this.top,R=this.len,H=this.options.title,v=d?N:V,P=this.opposite,_=this.offset,z=H.x,$=H.y,j=this.chart.renderer.fontMetrics(o),et=o?Math.max(o.getBBox(!1,0).height-j.h-1,0):0,ot={low:v+(d?0:R),middle:v+R/2,high:v+(d?R:0)}[H.align],J=(d?V+this.height:N)+(d?1:-1)*(P?-1:1)*(this.axisTitleMargin||0)+[-et,et,j.f,-et][this.side],at={x:d?ot+z:J+(P?this.width:0)+_+z,y:d?J+$-(P?this.height:0)+_:ot+$};return h(this,"afterGetTitlePosition",{titlePosition:at}),at}renderMinorTick(o,d){const N=this,V=N.minorTicks;V[o]||(V[o]=new Q(N,o,"minor")),d&&V[o].isNew&&V[o].render(null,!0),V[o].render(null,!1,1)}renderTick(o,d,N){const V=this,R=V.isLinked,H=V.ticks;(!R||o>=V.min&&o<=V.max||V.grid&&V.grid.isColumn)&&(H[o]||(H[o]=new Q(V,o)),N&&H[o].isNew&&H[o].render(d,!0,-1),H[o].render(d))}render(){const o=this,d=o.chart,N=o.logarithmic,V=d.renderer,R=o.options,H=o.isLinked,v=o.tickPositions,P=o.axisTitle,_=o.ticks,z=o.minorTicks,$=o.alternateBands,j=R.stackLabels,et=R.alternateGridColor,ot=R.crossing,J=o.tickmarkOffset,at=o.axisLine,W=o.showAxis,F=K(V.globalAnimation);let E,X;if(o.labelEdge.length=0,o.overlap=!1,[_,z,$].forEach(function(U){s(U,function(nt){nt.isActive=!1})}),r(ot)){const U=this.isXAxis?d.yAxis[0]:d.xAxis[0],nt=[1,-1,-1,1][this.side];if(U){let rt=U.toPixels(ot,!0);o.horiz&&(rt=U.len-rt),o.offset=nt*rt}}if(o.hasData()||H){const U=o.chart.hasRendered&&o.old&&r(o.old.min);o.minorTickInterval&&!o.categories&&o.getMinorTickPositions().forEach(function(nt){o.renderMinorTick(nt,U)}),v.length&&(v.forEach(function(nt,rt){o.renderTick(nt,rt,U)}),J&&(o.min===0||o.single)&&(_[-1]||(_[-1]=new Q(o,-1,null,!0)),_[-1].render(-1))),et&&v.forEach(function(nt,rt){X=typeof v[rt+1]<"u"?v[rt+1]+J:o.max-J,rt%2===0&&nt<o.max&&X<=o.max+(d.polar?-J:J)&&($[nt]||($[nt]=new st.PlotLineOrBand(o)),E=nt+J,$[nt].options={from:N?N.lin2log(E):E,to:N?N.lin2log(X):X,color:et,className:"highcharts-alternate-grid"},$[nt].render(),$[nt].isActive=!0)}),o._addedPlotLB||(o._addedPlotLB=!0,(R.plotLines||[]).concat(R.plotBands||[]).forEach(function(nt){o.addPlotBandOrLine(nt)}))}[_,z,$].forEach(function(U){const nt=[],rt=F.duration,ht=function(){let ft=nt.length;for(;ft--;)U[nt[ft]]&&!U[nt[ft]].isActive&&(U[nt[ft]].destroy(),delete U[nt[ft]])};s(U,function(ft,mt){ft.isActive||(ft.render(mt,!1,0),ft.isActive=!1,nt.push(mt))}),k(ht,U===$||!d.hasRendered||!rt?0:rt)}),at&&(at[at.isPlaced?"animate":"attr"]({d:this.getLinePath(at.strokeWidth())}),at.isPlaced=!0,at[W?"show":"hide"](W)),P&&W&&(P[P.isNew?"attr":"animate"](o.getTitlePosition(P)),P.isNew=!1),j&&j.enabled&&o.stacking&&o.stacking.renderStackTotals(),o.old={len:o.len,max:o.max,min:o.min,transA:o.transA,userMax:o.userMax,userMin:o.userMin},o.isDirty=!1,h(this,"afterRender")}redraw(){this.visible&&(this.render(),this.plotLinesAndBands.forEach(function(o){o.render()})),this.series.forEach(function(o){o.isDirty=!0})}getKeepProps(){return this.keepProps||B.keepProps}destroy(o){const d=this,N=d.plotLinesAndBands,V=this.eventOptions;if(h(this,"destroy",{keepEvents:o}),o||M(d),[d.ticks,d.minorTicks,d.alternateBands].forEach(function(R){c(R)}),N){let R=N.length;for(;R--;)N[R].destroy()}["axisLine","axisTitle","axisGroup","gridGroup","labelGroup","cross","scrollbar"].forEach(function(R){d[R]&&(d[R]=d[R].destroy())});for(const R in d.plotLinesAndBandsGroups)d.plotLinesAndBandsGroups[R]=d.plotLinesAndBandsGroups[R].destroy();s(d,function(R,H){d.getKeepProps().indexOf(H)===-1&&delete d[H]}),this.eventOptions=V}drawCrosshair(o,d){const N=this.crosshair,V=n(N&&N.snap,!0),R=this.chart;let H,v,P,_=this.cross,z;if(h(this,"drawCrosshair",{e:o,point:d}),o||(o=this.cross&&this.cross.e),!N||(p(d)||!V)===!1)this.hideCrosshair();else{if(V?p(d)&&(v=n(this.coll!=="colorAxis"?d.crosshairPos:null,this.isXAxis?d.plotX:this.len-d.plotY)):v=o&&(this.horiz?o.chartX-this.pos:this.len-o.chartY+this.pos),p(v)&&(z={value:d&&(this.isXAxis?d.x:n(d.stackY,d.y)),translatedValue:v},R.polar&&m(z,{isCrosshair:!0,chartX:o&&o.chartX,chartY:o&&o.chartY,point:d}),H=this.getPlotLinePath(z)||null),!p(H)){this.hideCrosshair();return}P=this.categories&&!this.isRadial,_||(this.cross=_=R.renderer.path().addClass("highcharts-crosshair highcharts-crosshair-"+(P?"category ":"thin ")+(N.className||"")).attr({zIndex:n(N.zIndex,2)}).add(),R.styledMode||(_.attr({stroke:N.color||(P?tt.parse("#ccd3ff").setOpacity(.25).get():"#cccccc"),"stroke-width":n(N.width,1)}).css({"pointer-events":"none"}),N.dashStyle&&_.attr({dashstyle:N.dashStyle}))),_.show().attr({d:H}),P&&!N.width&&_.attr({"stroke-width":this.transA}),this.cross.e=o}h(this,"afterDrawCrosshair",{e:o,point:d})}hideCrosshair(){this.cross&&this.cross.hide(),h(this,"afterHideCrosshair")}hasVerticalPanning(){const o=this.chart.options.chart.panning;return!!(o&&o.enabled&&/y/.test(o.type))}update(o,d){const N=this.chart;o=t(this.userOptions,o),this.destroy(!0),this.init(N,o),N.isDirtyBox=!0,n(d,!0)&&N.redraw()}remove(o){const d=this.chart,N=this.coll,V=this.series;let R=V.length;for(;R--;)V[R]&&V[R].remove(!1);y(d.axes,this),y(d[N]||[],this),d.orderItems(N),this.destroy(),d.isDirtyBox=!0,n(o,!0)&&d.redraw()}setTitle(o,d){this.update({title:o},d)}setCategories(o,d){this.update({categories:o},d)}}return B.defaultOptions=Y.defaultXAxisOptions,B.keepProps=["coll","extKey","hcEvents","names","series","userMax","userMin"],B}),ct(A,"Core/Axis/DateTimeAxis.js",[A["Core/Utilities.js"]],function(q){const{addEvent:Y,getMagnitude:tt,normalizeTickInterval:it,timeUnits:Z}=q;var st;return function(Q){const G=[];function K(D){if(q.pushUnique(G,D)){D.keepProps.push("dateTime");const b=D.prototype;b.getTimeTicks=O,Y(D,"init",S)}return D}Q.compose=K;function O(){return this.chart.time.getTimeTicks.apply(this.chart.time,arguments)}function S(D){const b=this;if(D.userOptions.type!=="datetime"){b.dateTime=void 0;return}b.dateTime||(b.dateTime=new w(b))}class w{constructor(b){this.axis=b}normalizeTimeTickInterval(b,f){const I=f||[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2]],["week",[1,2]],["month",[1,2,3,4,6]],["year",null]];let p=I[I.length-1],c=Z[p[0]],y=p[1],T;for(T=0;T<I.length;T++)if(p=I[T],c=Z[p[0]],y=p[1],I[T+1]){const h=(c*y[y.length-1]+Z[I[T+1][0]])/2;if(b<=h)break}c===Z.year&&b<5*c&&(y=[1,2,5]);const m=it(b/c,y,p[0]==="year"?Math.max(tt(b/c),1):1);return{unitRange:c,count:m,unitName:p[0]}}getXDateFormat(b,f){const{axis:I}=this,p=I.chart.time;return I.closestPointRange?p.getDateFormat(I.closestPointRange,b,I.options.startOfWeek,f)||p.resolveDTLFormat(f.year).main:p.resolveDTLFormat(f.day).main}}Q.Additions=w}(st||(st={})),st}),ct(A,"Core/Axis/LogarithmicAxis.js",[A["Core/Utilities.js"]],function(q){const{addEvent:Y,normalizeTickInterval:tt,pick:it}=q;var Z;return function(st){const Q=[];function G(w){return q.pushUnique(Q,w)&&(w.keepProps.push("logarithmic"),Y(w,"init",K),Y(w,"afterInit",O)),w}st.compose=G;function K(w){const D=this,b=w.userOptions;let f=D.logarithmic;b.type!=="logarithmic"?D.logarithmic=void 0:f||(f=D.logarithmic=new S(D))}function O(){const w=this,D=w.logarithmic;D&&(w.lin2val=function(b){return D.lin2log(b)},w.val2lin=function(b){return D.log2lin(b)})}class S{constructor(D){this.axis=D}getLogTickPositions(D,b,f,I){const p=this,c=p.axis,y=c.len,T=c.options;let m=[];if(I||(p.minorAutoInterval=void 0),D>=.5)D=Math.round(D),m=c.getLinearTickPositions(D,b,f);else if(D>=.08){const h=Math.floor(b);let x,l,u,r,i,t,e;for(D>.3?x=[1,2,4]:D>.15?x=[1,2,4,6,8]:x=[1,2,3,4,5,6,7,8,9],l=h;l<f+1&&!e;l++)for(r=x.length,u=0;u<r&&!e;u++)i=p.log2lin(p.lin2log(l)*x[u]),i>b&&(!I||t<=f)&&typeof t<"u"&&m.push(t),t>f&&(e=!0),t=i}else{const h=p.lin2log(b),x=p.lin2log(f),l=I?c.getMinorTickInterval():T.tickInterval,u=l==="auto"?null:l,r=T.tickPixelInterval/(I?5:1),i=I?y/c.tickPositions.length:y;D=it(u,p.minorAutoInterval,(x-h)*r/(i||1)),D=tt(D),m=c.getLinearTickPositions(D,h,x).map(p.log2lin),I||(p.minorAutoInterval=D/5)}return I||(c.tickInterval=D),m}lin2log(D){return Math.pow(10,D)}log2lin(D){return Math.log(D)/Math.LN10}}st.Additions=S}(Z||(Z={})),Z}),ct(A,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[A["Core/Utilities.js"]],function(q){const{erase:Y,extend:tt,isNumber:it}=q;var Z;return function(st){const Q=[];let G;function K(p){return this.addPlotBandOrLine(p,"plotBands")}function O(p,c){const y=this.userOptions;let T=new G(this,p);if(this.visible&&(T=T.render()),T){if(this._addedPlotLB||(this._addedPlotLB=!0,(y.plotLines||[]).concat(y.plotBands||[]).forEach(m=>{this.addPlotBandOrLine(m)})),c){const m=y[c]||[];m.push(p),y[c]=m}this.plotLinesAndBands.push(T)}return T}function S(p){return this.addPlotBandOrLine(p,"plotLines")}function w(p,c){return G||(G=p),q.pushUnique(Q,c)&&tt(c.prototype,{addPlotBand:K,addPlotLine:S,addPlotBandOrLine:O,getPlotBandPath:D,removePlotBand:b,removePlotLine:I,removePlotBandOrLine:f}),c}st.compose=w;function D(p,c,y=this.options){const T=this.getPlotLinePath({value:c,force:!0,acrossPanes:y.acrossPanes}),m=[],h=this.horiz,x=!it(this.min)||!it(this.max)||p<this.min&&c<this.min||p>this.max&&c>this.max;let l=this.getPlotLinePath({value:p,force:!0,acrossPanes:y.acrossPanes}),u,r=1,i;if(l&&T)for(x&&(i=l.toString()===T.toString(),r=0),u=0;u<l.length;u+=2){const t=l[u],e=l[u+1],s=T[u],n=T[u+1];(t[0]==="M"||t[0]==="L")&&(e[0]==="M"||e[0]==="L")&&(s[0]==="M"||s[0]==="L")&&(n[0]==="M"||n[0]==="L")&&(h&&s[1]===t[1]?(s[1]+=r,n[1]+=r):!h&&s[2]===t[2]&&(s[2]+=r,n[2]+=r),m.push(["M",t[1],t[2]],["L",e[1],e[2]],["L",n[1],n[2]],["L",s[1],s[2]],["Z"])),m.isFlat=i}else l=null;return m}function b(p){this.removePlotBandOrLine(p)}function f(p){const c=this.plotLinesAndBands,y=this.options,T=this.userOptions;if(c){let m=c.length;for(;m--;)c[m].id===p&&c[m].destroy();[y.plotLines||[],T.plotLines||[],y.plotBands||[],T.plotBands||[]].forEach(function(h){for(m=h.length;m--;)(h[m]||{}).id===p&&Y(h,h[m])})}}function I(p){this.removePlotBandOrLine(p)}}(Z||(Z={})),Z}),ct(A,"Core/Axis/PlotLineOrBand/PlotLineOrBand.js",[A["Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js"],A["Core/Utilities.js"]],function(q,Y){const{arrayMax:tt,arrayMin:it,defined:Z,destroyObjectProperties:st,erase:Q,fireEvent:G,merge:K,objectEach:O,pick:S}=Y;class w{static compose(b){return q.compose(w,b)}constructor(b,f){this.axis=b,f&&(this.options=f,this.id=f.id)}render(){G(this,"render");const b=this,f=b.axis,I=f.horiz,p=f.logarithmic,c=b.options,y=c.color,T=S(c.zIndex,0),m=c.events,h={},x=f.chart.renderer;let l=c.label,u=b.label,r=c.to,i=c.from,t=c.value,e=b.svgElem,s=[],n;const a=Z(i)&&Z(r),M=Z(t),g=!e,k={class:"highcharts-plot-"+(a?"band ":"line ")+(c.className||"")};let C=a?"bands":"lines";if(p&&(i=p.log2lin(i),r=p.log2lin(r),t=p.log2lin(t)),f.chart.styledMode||(M?(k.stroke=y||"#999999",k["stroke-width"]=S(c.width,1),c.dashStyle&&(k.dashstyle=c.dashStyle)):a&&(k.fill=y||"#e6e9ff",c.borderWidth&&(k.stroke=c.borderColor,k["stroke-width"]=c.borderWidth))),h.zIndex=T,C+="-"+T,n=f.plotLinesAndBandsGroups[C],n||(f.plotLinesAndBandsGroups[C]=n=x.g("plot-"+C).attr(h).add()),g&&(b.svgElem=e=x.path().attr(k).add(n)),M)s=f.getPlotLinePath({value:t,lineWidth:e.strokeWidth(),acrossPanes:c.acrossPanes});else if(a)s=f.getPlotBandPath(i,r,c);else return;return!b.eventsAdded&&m&&(O(m,function(B,L){e.on(L,function(o){m[L].apply(b,[o])})}),b.eventsAdded=!0),(g||!e.d)&&s&&s.length?e.attr({d:s}):e&&(s?(e.show(),e.animate({d:s})):e.d&&(e.hide(),u&&(b.label=u=u.destroy()))),l&&(Z(l.text)||Z(l.formatter))&&s&&s.length&&f.width>0&&f.height>0&&!s.isFlat?(l=K({align:I&&a&&"center",x:I?!a&&4:10,verticalAlign:!I&&a&&"middle",y:I?a?16:10:a?6:-4,rotation:I&&!a&&90},l),this.renderLabel(l,s,a,T)):u&&u.hide(),b}renderLabel(b,f,I,p){const c=this,y=c.axis,T=y.chart.renderer;let m=c.label;m||(c.label=m=T.text(this.getLabelText(b),0,0,b.useHTML).attr({align:b.textAlign||b.align,rotation:b.rotation,class:"highcharts-plot-"+(I?"band":"line")+"-label "+(b.className||""),zIndex:p}).add(),y.chart.styledMode||m.css(K({fontSize:"0.8em",textOverflow:"ellipsis"},b.style)));const h=f.xBounds||[f[0][1],f[1][1],I?f[2][1]:f[0][1]],x=f.yBounds||[f[0][2],f[1][2],I?f[2][2]:f[0][2]],l=it(h),u=it(x);if(m.align(b,!1,{x:l,y:u,width:tt(h)-l,height:tt(x)-u}),!m.alignValue||m.alignValue==="left"){const r=b.clip?y.width:y.chart.chartWidth;m.css({width:(m.rotation===90?y.height-(m.alignAttr.y-y.top):r-(m.alignAttr.x-y.left))+"px"})}m.show(!0)}getLabelText(b){return Z(b.formatter)?b.formatter.call(this):b.text}destroy(){Q(this.axis.plotLinesAndBands,this),delete this.axis,st(this)}}return w}),ct(A,"Core/Tooltip.js",[A["Core/Templating.js"],A["Core/Globals.js"],A["Core/Renderer/RendererUtilities.js"],A["Core/Renderer/RendererRegistry.js"],A["Core/Utilities.js"]],function(q,Y,tt,it,Z){const{format:st}=q,{doc:Q,isSafari:G}=Y,{distribute:K}=tt,{addEvent:O,clamp:S,css:w,discardElement:D,extend:b,fireEvent:f,isArray:I,isNumber:p,isString:c,merge:y,pick:T,splat:m,syncTimeout:h}=Z;class x{constructor(u,r){this.allowShared=!0,this.container=void 0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.now={},this.options={},this.outside=!1,this.chart=u,this.init(u,r)}bodyFormatter(u){return u.map(function(r){const i=r.series.tooltipOptions;return(i[(r.point.formatPrefix||"point")+"Formatter"]||r.point.tooltipFormatter).call(r.point,i[(r.point.formatPrefix||"point")+"Format"]||"")})}cleanSplit(u){this.chart.series.forEach(function(r){const i=r&&r.tt;i&&(!i.isActive||u?r.tt=i.destroy():i.isActive=!1)})}defaultFormatter(u){const r=this.points||m(this);let i;return i=[u.tooltipFooterHeaderFormatter(r[0])],i=i.concat(u.bodyFormatter(r)),i.push(u.tooltipFooterHeaderFormatter(r[0],!0)),i}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),D(this.container)),Z.clearTimeout(this.hideTimer),Z.clearTimeout(this.tooltipTimeout)}getAnchor(u,r){const i=this.chart,t=i.pointer,e=i.inverted,s=i.plotTop,n=i.plotLeft;let a;if(u=m(u),u[0].series&&u[0].series.yAxis&&!u[0].series.yAxis.options.reversedStacks&&(u=u.slice().reverse()),this.followPointer&&r)typeof r.chartX>"u"&&(r=t.normalize(r)),a=[r.chartX-n,r.chartY-s];else if(u[0].tooltipPos)a=u[0].tooltipPos;else{let M=0,g=0;u.forEach(function(k){const C=k.pos(!0);C&&(M+=C[0],g+=C[1])}),M/=u.length,g/=u.length,this.shared&&u.length>1&&r&&(e?M=r.chartX:g=r.chartY),a=[M-n,g-s]}return a.map(Math.round)}getClassName(u,r,i){const t=this.options,e=u.series,s=e.options;return[t.className,"highcharts-label",i&&"highcharts-tooltip-header",r?"highcharts-tooltip-box":"highcharts-tooltip",!i&&"highcharts-color-"+T(u.colorIndex,e.colorIndex),s&&s.className].filter(c).join(" ")}getLabel(){const u=this,r=this.chart.styledMode,i=this.options,t=this.split&&this.allowShared,e=i.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none");let s,n=this.chart.renderer;if(this.label){const a=!this.label.hasClass("highcharts-label");(!t&&a||t&&!a)&&this.destroy()}if(!this.label){if(this.outside){const a=this.chart.options.chart.style,M=it.getRendererType();this.container=s=Y.doc.createElement("div"),s.className="highcharts-tooltip-container",w(s,{position:"absolute",top:"1px",pointerEvents:e,zIndex:Math.max(this.options.style.zIndex||0,(a&&a.zIndex||0)+3)}),Y.doc.body.appendChild(s),this.renderer=n=new M(s,0,0,a,void 0,void 0,n.styledMode)}if(t?this.label=n.g("tooltip"):(this.label=n.label("",0,0,i.shape,void 0,void 0,i.useHTML,void 0,"tooltip").attr({padding:i.padding,r:i.borderRadius}),r||this.label.attr({fill:i.backgroundColor,"stroke-width":i.borderWidth||0}).css(i.style).css({pointerEvents:e})),u.outside){const a=this.label,{xSetter:M,ySetter:g}=a;a.xSetter=function(k){M.call(a,u.distance),s.style.left=k+"px"},a.ySetter=function(k){g.call(a,u.distance),s.style.top=k+"px"}}this.label.attr({zIndex:8}).shadow(i.shadow).add()}return this.label}getPlayingField(){const{body:u,documentElement:r}=Q,{chart:i,distance:t,outside:e}=this;return{width:e?Math.max(u.scrollWidth,r.scrollWidth,u.offsetWidth,r.offsetWidth,r.clientWidth)-2*t:i.chartWidth,height:e?Math.max(u.scrollHeight,r.scrollHeight,u.offsetHeight,r.offsetHeight,r.clientHeight):i.chartHeight}}getPosition(u,r,i){const t=this.chart,e=this.distance,s={},n=t.inverted&&i.h||0,a=this.outside,M=this.getPlayingField(),g=M.width,k=M.height,C=t.pointer.getChartPosition(),B=$=>$*C.scaleX,L=$=>$*C.scaleY,o=$=>{const j=$==="x";return[$,j?g:k,j?u:r].concat(a?[j?B(u):L(r),j?C.left-e+B(i.plotX+t.plotLeft):C.top-e+L(i.plotY+t.plotTop),0,j?g:k]:[j?u:r,j?i.plotX+t.plotLeft:i.plotY+t.plotTop,j?t.plotLeft:t.plotTop,j?t.plotLeft+t.plotWidth:t.plotTop+t.plotHeight])};let d=o("y"),N=o("x"),V,R=!!i.negative;!t.polar&&t.hoverSeries&&t.hoverSeries.yAxis&&t.hoverSeries.yAxis.reversed&&(R=!R);const H=!this.followPointer&&T(i.ttBelow,!t.inverted===R),v=function($,j,et,ot,J,at,W){const F=a?$==="y"?L(e):B(e):e,E=(et-ot)/2,X=ot<J-e,U=J+e+ot<j,nt=J-F-et+E,rt=J+F-E;if(H&&U)s[$]=rt;else if(!H&&X)s[$]=nt;else if(X)s[$]=Math.min(W-ot,nt-n<0?nt:nt-n);else if(U)s[$]=Math.max(at,rt+n+et>j?rt:rt+n);else return!1},P=function($,j,et,ot,J){let at;return J<e||J>j-e?at=!1:J<et/2?s[$]=1:J>j-ot/2?s[$]=j-ot-2:s[$]=J-et/2,at},_=function($){const j=d;d=N,N=j,V=$},z=function(){v.apply(0,d)!==!1?P.apply(0,N)===!1&&!V&&(_(!0),z()):V?s.x=s.y=0:(_(!0),z())};return(t.inverted||this.len>1)&&_(),z(),s}hide(u){const r=this;Z.clearTimeout(this.hideTimer),u=T(u,this.options.hideDelay),this.isHidden||(this.hideTimer=h(function(){r.getLabel().fadeOut(u&&void 0),r.isHidden=!0},u))}init(u,r){this.chart=u,this.options=r,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.split=r.split&&!u.inverted&&!u.polar,this.shared=r.shared||this.split,this.outside=T(r.outside,!!(u.scrollablePixelsX||u.scrollablePixelsY))}shouldStickOnContact(u){return!!(!this.followPointer&&this.options.stickOnContact&&(!u||this.chart.pointer.inClass(u.target,"highcharts-tooltip")))}move(u,r,i,t){const e=this,s=e.now,n=e.options.animation!==!1&&!e.isHidden&&(Math.abs(u-s.x)>1||Math.abs(r-s.y)>1),a=e.followPointer||e.len>1;b(s,{x:n?(2*s.x+u)/3:u,y:n?(s.y+r)/2:r,anchorX:a?void 0:n?(2*s.anchorX+i)/3:i,anchorY:a?void 0:n?(s.anchorY+t)/2:t}),e.getLabel().attr(s),e.drawTracker(),n&&(Z.clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){e&&e.move(u,r,i,t)},32))}refresh(u,r){const i=this,t=this.chart,e=i.options,s=t.pointer,n=m(u),a=n[0],M=[],g=e.format,k=e.formatter||i.defaultFormatter,C=i.shared,B=t.styledMode;let L={};if(!e.enabled||!a.series)return;Z.clearTimeout(this.hideTimer),i.allowShared=!(!I(u)&&u.series&&u.series.noSharedTooltip),i.followPointer=!i.split&&a.series.tooltipOptions.followPointer;const o=i.getAnchor(u,r),d=o[0],N=o[1];C&&i.allowShared?(s.applyInactiveState(n),n.forEach(function(H){H.setState("hover"),M.push(H.getLabelConfig())}),L=a.getLabelConfig(),L.points=M):L=a.getLabelConfig(),this.len=M.length;const V=c(g)?st(g,L,t):k.call(L,i),R=a.series;if(this.distance=T(R.tooltipOptions.distance,16),V===!1)this.hide();else{if(i.split&&i.allowShared)this.renderSplit(V,n);else{let H=d,v=N;if(r&&s.isDirectTouch&&(H=r.chartX-t.plotLeft,v=r.chartY-t.plotTop),t.polar||R.options.clip===!1||n.some(P=>s.isDirectTouch||P.series.shouldShowTooltip(H,v))){const P=i.getLabel();(!e.style.width||B)&&P.css({width:(this.outside?this.getPlayingField():t.spacingBox).width+"px"}),P.attr({text:V&&V.join?V.join(""):V}),P.addClass(i.getClassName(a),!0),B||P.attr({stroke:e.borderColor||a.color||R.color||"#666666"}),i.updatePosition({plotX:d,plotY:N,negative:a.negative,ttBelow:a.ttBelow,h:o[2]||0})}else{i.hide();return}}i.isHidden&&i.label&&i.label.attr({opacity:1}).show(),i.isHidden=!1}f(this,"refresh")}renderSplit(u,r){const i=this,{chart:t,chart:{chartWidth:e,chartHeight:s,plotHeight:n,plotLeft:a,plotTop:M,pointer:g,scrollablePixelsY:k=0,scrollablePixelsX:C,scrollingContainer:{scrollLeft:B,scrollTop:L}={scrollLeft:0,scrollTop:0},styledMode:o},distance:d,options:N,options:{positioner:V}}=i,R=i.outside&&typeof C!="number"?Q.documentElement.getBoundingClientRect():{left:B,right:B+e,top:L,bottom:L+s},H=i.getLabel(),v=this.renderer||t.renderer,P=!!(t.xAxis[0]&&t.xAxis[0].opposite),{left:_,top:z}=g.getChartPosition();let $=M+L,j=0,et=n-k;function ot(nt){const{isHeader:rt,plotX:ht=0,plotY:ft=0,series:mt}=nt;let gt,xt;if(rt)gt=a+ht,xt=M+n/2;else{const{xAxis:bt,yAxis:Tt}=mt;gt=bt.pos+S(ht,-d,bt.len+d),mt.shouldShowTooltip(0,Tt.pos-M+ft,{ignoreX:!0})&&(xt=Tt.pos+ft)}return gt=S(gt,R.left-d,R.right+d),{anchorX:gt,anchorY:xt}}function J(nt,rt,ht,ft,mt=!0){let gt,xt;return ht?(gt=P?0:et,xt=S(nt-ft/2,R.left,R.right-ft-(i.outside?_:0))):(gt=rt-$,xt=mt?nt-ft-d:nt+d,xt=S(xt,mt?xt:R.left,R.right)),{x:xt,y:gt}}function at(nt,rt,ht){var ft;let mt=nt;const{isHeader:gt,series:xt}=rt;if(!mt){const bt={padding:N.padding,r:N.borderRadius};o||(bt.fill=N.backgroundColor,bt["stroke-width"]=(ft=N.borderWidth)!==null&&ft!==void 0?ft:1),mt=v.label("",0,0,N[gt?"headerShape":"shape"],void 0,void 0,N.useHTML).addClass(i.getClassName(rt,!0,gt)).attr(bt).add(H)}return mt.isActive=!0,mt.attr({text:ht}),o||mt.css(N.style).attr({stroke:N.borderColor||rt.color||xt.color||"#333333"}),mt}c(u)&&(u=[!1,u]);let W=u.slice(0,r.length+1).reduce(function(nt,rt,ht){if(rt!==!1&&rt!==""){const ft=r[ht-1]||{isHeader:!0,plotX:r[0].plotX,plotY:n,series:{}},mt=ft.isHeader,gt=mt?i:ft.series,xt=gt.tt=at(gt.tt,ft,rt.toString()),bt=xt.getBBox(),Tt=bt.width+xt.strokeWidth();mt&&(j=bt.height,et+=j,P&&($-=j));const{anchorX:vt,anchorY:yt}=ot(ft);if(typeof yt=="number"){const Ct=bt.height+1,Ot=V?V.call(i,Tt,Ct,ft):J(vt,yt,mt,Tt);nt.push({align:V?0:void 0,anchorX:vt,anchorY:yt,boxWidth:Tt,point:ft,rank:T(Ot.rank,mt?1:0),size:Ct,target:Ot.y,tt:xt,x:Ot.x})}else xt.isActive=!1}return nt},[]);!V&&W.some(nt=>{const{outside:rt}=i,ht=(rt?_:0)+nt.anchorX;return ht<R.left&&ht+nt.boxWidth<R.right?!0:ht<_-R.left+nt.boxWidth&&R.right-ht>ht})&&(W=W.map(nt=>{const{x:rt,y:ht}=J(nt.anchorX,nt.anchorY,nt.point.isHeader,nt.boxWidth,!1);return b(nt,{target:ht,x:rt})})),i.cleanSplit(),K(W,et);const F={left:_,right:_};W.forEach(function(nt){const{x:rt,boxWidth:ht,isHeader:ft}=nt;ft||(i.outside&&_+rt<F.left&&(F.left=_+rt),!ft&&i.outside&&F.left+ht>F.right&&(F.right=_+rt))}),W.forEach(function(nt){const{x:rt,anchorX:ht,anchorY:ft,pos:mt,point:{isHeader:gt}}=nt,xt={visibility:typeof mt>"u"?"hidden":"inherit",x:rt,y:(mt||0)+$,anchorX:ht,anchorY:ft};if(i.outside&&rt<ht){const bt=_-F.left;bt>0&&(gt||(xt.x=rt+bt,xt.anchorX=ht+bt),gt&&(xt.x=(F.right-F.left)/2,xt.anchorX=ht+bt))}nt.tt.attr(xt)});const{container:E,outside:X,renderer:U}=i;if(X&&E&&U){const{width:nt,height:rt,x:ht,y:ft}=H.getBBox();U.setSize(nt+ht,rt+ft,!1),E.style.left=F.left+"px",E.style.top=z+"px"}G&&H.attr({opacity:H.opacity===1?.999:1})}drawTracker(){const u=this;if(!this.shouldStickOnContact()){u.tracker&&(u.tracker=u.tracker.destroy());return}const r=u.chart,i=u.label,t=u.shared?r.hoverPoints:r.hoverPoint;if(!i||!t)return;const e={x:0,y:0,width:0,height:0},s=this.getAnchor(t),n=i.getBBox();s[0]+=r.plotLeft-i.translateX,s[1]+=r.plotTop-i.translateY,e.x=Math.min(0,s[0]),e.y=Math.min(0,s[1]),e.width=s[0]<0?Math.max(Math.abs(s[0]),n.width-s[0]):Math.max(Math.abs(s[0]),n.width),e.height=s[1]<0?Math.max(Math.abs(s[1]),n.height-Math.abs(s[1])):Math.max(Math.abs(s[1]),n.height),u.tracker?u.tracker.attr(e):(u.tracker=i.renderer.rect(e).addClass("highcharts-tracker").add(i),r.styledMode||u.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(u){return u.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}tooltipFooterHeaderFormatter(u,r){const i=u.series,t=i.tooltipOptions,e=i.xAxis,s=e&&e.dateTime,n={isFooter:r,labelConfig:u};let a=t.xDateFormat,M=t[r?"footerFormat":"headerFormat"];return f(this,"headerFormatter",n,function(g){s&&!a&&p(u.key)&&(a=s.getXDateFormat(u.key,t.dateTimeLabelFormats)),s&&a&&(u.point&&u.point.tooltipDateKeys||["key"]).forEach(function(k){M=M.replace("{point."+k+"}","{point."+k+":"+a+"}")}),i.chart.styledMode&&(M=this.styledModeFormat(M)),g.text=st(M,{point:u,series:i},this.chart)}),n.text}update(u){this.destroy(),this.init(this.chart,y(!0,this.options,u))}updatePosition(u){const{chart:r,distance:i,options:t}=this,e=r.pointer,s=this.getLabel(),{left:n,top:a,scaleX:M,scaleY:g}=e.getChartPosition(),k=(t.positioner||this.getPosition).call(this,s.width,s.height,u);let C=(u.plotX||0)+r.plotLeft,B=(u.plotY||0)+r.plotTop,L;this.outside&&(t.positioner&&(k.x+=n-i,k.y+=a-i),L=(t.borderWidth||0)+2*i,this.renderer.setSize(s.width+L,s.height+L,!1),(M!==1||g!==1)&&(w(this.container,{transform:`scale(${M}, ${g})`}),C*=M,B*=g),C+=n-k.x,B+=a-k.y),this.move(Math.round(k.x),Math.round(k.y||0),C,B)}}return function(l){const u=[];function r(i){Z.pushUnique(u,i)&&O(i,"afterInit",function(){const t=this.chart;t.options.tooltip&&(t.tooltip=new l(t,t.options.tooltip))})}l.compose=r}(x||(x={})),x}),ct(A,"Core/Series/Point.js",[A["Core/Renderer/HTML/AST.js"],A["Core/Animation/AnimationUtilities.js"],A["Core/Defaults.js"],A["Core/Templating.js"],A["Core/Utilities.js"]],function(q,Y,tt,it,Z){const{animObject:st}=Y,{defaultOptions:Q}=tt,{format:G}=it,{addEvent:K,defined:O,erase:S,extend:w,fireEvent:D,getNestedProperty:b,isArray:f,isFunction:I,isNumber:p,isObject:c,merge:y,objectEach:T,pick:m,syncTimeout:h,removeEvent:x,uniqueKey:l}=Z;class u{constructor(){this.category=void 0,this.destroyed=!1,this.formatPrefix="point",this.id=void 0,this.isNull=!1,this.name=void 0,this.options=void 0,this.percentage=void 0,this.selected=!1,this.series=void 0,this.shapeArgs=void 0,this.total=void 0,this.visible=!0,this.x=void 0}animateBeforeDestroy(){const i=this,t={x:i.startXPos,opacity:0},e=i.getGraphicalProps();e.singular.forEach(function(s){const n=s==="dataLabel";i[s]=i[s].animate(n?{x:i[s].startXPos,y:i[s].startYPos,opacity:0}:t)}),e.plural.forEach(function(s){i[s].forEach(function(n){n.element&&n.animate(w({x:i.startXPos},n.startYPos?{x:n.startXPos,y:n.startYPos}:{}))})})}applyOptions(i,t){const e=this,s=e.series,n=s.options.pointValKey||s.pointValKey;return i=u.prototype.optionsToObject.call(this,i),w(e,i),e.options=e.options?w(e.options,i):i,i.group&&delete e.group,i.dataLabels&&delete e.dataLabels,n&&(e.y=u.prototype.getNestedProperty.call(e,n)),e.isNull=this.isValid&&!this.isValid(),e.formatPrefix=e.isNull?"null":"point",e.selected&&(e.state="select"),"name"in e&&typeof t>"u"&&s.xAxis&&s.xAxis.hasNames&&(e.x=s.xAxis.nameToX(e)),typeof e.x>"u"&&s?typeof t>"u"?e.x=s.autoIncrement():e.x=t:p(i.x)&&s.options.relativeXValue&&(e.x=s.autoIncrement(i.x)),e}destroy(){if(!this.destroyed){const i=this,t=i.series,e=t.chart,s=t.options.dataSorting,n=e.hoverPoints,a=i.series.chart.renderer.globalAnimation,M=st(a),g=()=>{(i.graphic||i.graphics||i.dataLabel||i.dataLabels)&&(x(i),i.destroyElements());for(const k in i)delete i[k]};i.legendItem&&e.legend.destroyItem(i),n&&(i.setState(),S(n,i),n.length||(e.hoverPoints=null)),i===e.hoverPoint&&i.onMouseOut(),!s||!s.enabled?g():(this.animateBeforeDestroy(),h(g,M.duration)),e.pointCount--}this.destroyed=!0}destroyElements(i){const t=this,e=t.getGraphicalProps(i);e.singular.forEach(function(s){t[s]=t[s].destroy()}),e.plural.forEach(function(s){t[s].forEach(function(n){n&&n.element&&n.destroy()}),delete t[s]})}firePointEvent(i,t,e){const s=this,n=this.series,a=n.options;(a.point.events[i]||s.options&&s.options.events&&s.options.events[i])&&s.importEvents(),i==="click"&&a.allowPointSelect&&(e=function(M){s.select&&s.select(null,M.ctrlKey||M.metaKey||M.shiftKey)}),D(s,i,t,e)}getClassName(){const i=this;return"highcharts-point"+(i.selected?" highcharts-point-select":"")+(i.negative?" highcharts-negative":"")+(i.isNull?" highcharts-null-point":"")+(typeof i.colorIndex<"u"?" highcharts-color-"+i.colorIndex:"")+(i.options.className?" "+i.options.className:"")+(i.zone&&i.zone.className?" "+i.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(i){const t=this,e=[],s={singular:[],plural:[]};let n,a;for(i=i||{graphic:1,dataLabel:1},i.graphic&&e.push("graphic"),i.dataLabel&&e.push("dataLabel","dataLabelPath","dataLabelUpper","connector"),a=e.length;a--;)n=e[a],t[n]&&s.singular.push(n);return["graphic","dataLabel","connector"].forEach(function(M){const g=M+"s";i[M]&&t[g]&&s.plural.push(g)}),s}getLabelConfig(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}}getNestedProperty(i){if(i)return i.indexOf("custom.")===0?b(i,this.options):this[i]}getZone(){const i=this.series,t=i.zones,e=i.zoneAxis||"y";let s,n=0;for(s=t[n];this[e]>=s.value;)s=t[++n];return this.nonZonedColor||(this.nonZonedColor=this.color),s&&s.color&&!this.options.color?this.color=s.color:this.color=this.nonZonedColor,s}hasNewShapeType(){const i=this;return(i.graphic&&(i.graphic.symbolName||i.graphic.element.nodeName))!==this.shapeType}init(i,t,e){return this.series=i,this.applyOptions(t,e),this.id=O(this.id)?this.id:l(),this.resolveColor(),i.chart.pointCount++,D(this,"afterInit"),this}isValid(){return this.x!==null&&p(this.y)}optionsToObject(i){const t=this.series,e=t.options.keys,s=e||t.pointArrayMap||["y"],n=s.length;let a={},M,g=0,k=0;if(p(i)||i===null)a[s[0]]=i;else if(f(i))for(!e&&i.length>n&&(M=typeof i[0],M==="string"?a.name=i[0]:M==="number"&&(a.x=i[0]),g++);k<n;)(!e||typeof i[g]<"u")&&(s[k].indexOf(".")>0?u.prototype.setNestedProperty(a,i[g],s[k]):a[s[k]]=i[g]),g++,k++;else typeof i=="object"&&(a=i,i.dataLabels&&(t._hasPointLabels=!0),i.marker&&(t._hasPointMarkers=!0));return a}pos(i,t=this.plotY){if(!this.destroyed){const{plotX:e,series:s}=this,{chart:n,xAxis:a,yAxis:M}=s;let g=0,k=0;if(p(e)&&p(t))return i&&(g=a?a.pos:n.plotLeft,k=M?M.pos:n.plotTop),n.inverted&&a&&M?[M.len-t+k,a.len-e+g]:[e+g,t+k]}}resolveColor(){const i=this.series,t=i.chart.options.chart,e=i.chart.styledMode;let s,n,a=t.colorCount,M;delete this.nonZonedColor,i.options.colorByPoint?(e||(n=i.options.colors||i.chart.options.colors,s=n[i.colorCounter],a=n.length),M=i.colorCounter,i.colorCounter++,i.colorCounter===a&&(i.colorCounter=0)):(e||(s=i.color),M=i.colorIndex),this.colorIndex=m(this.options.colorIndex,M),this.color=m(this.options.color,s)}setNestedProperty(i,t,e){return e.split(".").reduce(function(n,a,M,g){const k=g.length-1===M;return n[a]=k?t:c(n[a],!0)?n[a]:{},n[a]},i),i}shouldDraw(){return!this.isNull}tooltipFormatter(i){const t=this.series,e=t.tooltipOptions,s=m(e.valueDecimals,""),n=e.valuePrefix||"",a=e.valueSuffix||"";return t.chart.styledMode&&(i=t.chart.tooltip.styledModeFormat(i)),(t.pointArrayMap||["y"]).forEach(function(M){M="{point."+M,(n||a)&&(i=i.replace(RegExp(M+"}","g"),n+M+"}"+a)),i=i.replace(RegExp(M+"}","g"),M+":,."+s+"f}")}),G(i,{point:this,series:this.series},t.chart)}update(i,t,e,s){const n=this,a=n.series,M=n.graphic,g=a.chart,k=a.options;let C;t=m(t,!0);function B(){n.applyOptions(i);const L=M&&n.hasMockGraphic,o=n.y===null?!L:L;M&&o&&(n.graphic=M.destroy(),delete n.hasMockGraphic),c(i,!0)&&(M&&M.element&&i&&i.marker&&typeof i.marker.symbol<"u"&&(n.graphic=M.destroy()),i&&i.dataLabels&&n.dataLabel&&(n.dataLabel=n.dataLabel.destroy()),n.connector&&(n.connector=n.connector.destroy())),C=n.index,a.updateParallelArrays(n,C),k.data[C]=c(k.data[C],!0)||c(i,!0)?n.options:m(i,k.data[C]),a.isDirty=a.isDirtyData=!0,!a.fixedBox&&a.hasCartesianSeries&&(g.isDirtyBox=!0),k.legendType==="point"&&(g.isDirtyLegend=!0),t&&g.redraw(e)}s===!1?B():n.firePointEvent("update",{options:i},B)}remove(i,t){this.series.removePoint(this.series.data.indexOf(this),i,t)}select(i,t){const e=this,s=e.series,n=s.chart;i=m(i,!e.selected),this.selectedStaging=i,e.firePointEvent(i?"select":"unselect",{accumulate:t},function(){e.selected=e.options.selected=i,s.options.data[s.data.indexOf(e)]=e.options,e.setState(i&&"select"),t||n.getSelectedPoints().forEach(function(a){const M=a.series;a.selected&&a!==e&&(a.selected=a.options.selected=!1,M.options.data[M.data.indexOf(a)]=a.options,a.setState(n.hoverPoints&&M.options.inactiveOtherPoints?"inactive":""),a.firePointEvent("unselect"))})}),delete this.selectedStaging}onMouseOver(i){const t=this,e=t.series,s=e.chart,n=s.pointer;i=i?n.normalize(i):n.getChartCoordinatesFromPoint(t,s.inverted),n.runPointActions(i,t)}onMouseOut(){const i=this,t=i.series.chart;i.firePointEvent("mouseOut"),i.series.options.inactiveOtherPoints||(t.hoverPoints||[]).forEach(function(e){e.setState()}),t.hoverPoints=t.hoverPoint=null}importEvents(){if(!this.hasImportedEvents){const i=this,t=y(i.series.options.point,i.options),e=t.events;i.events=e,T(e,function(s,n){I(s)&&K(i,n,s)}),this.hasImportedEvents=!0}}setState(i,t){const e=this,s=e.series,n=e.state,a=s.options.states[i||"normal"]||{},M=Q.plotOptions[s.type].marker&&s.options.marker,g=M&&M.enabled===!1,k=M&&M.states&&M.states[i||"normal"]||{},C=k.enabled===!1,B=e.marker||{},L=s.chart,o=M&&s.markerAttribs;let d=s.halo,N,V,R,H=s.stateMarkerGraphic,v;if(i=i||"",i===e.state&&!t||e.selected&&i!=="select"||a.enabled===!1||i&&(C||g&&k.enabled===!1)||i&&B.states&&B.states[i]&&B.states[i].enabled===!1)return;if(e.state=i,o&&(N=s.markerAttribs(e,i)),e.graphic&&!e.hasMockGraphic){if(n&&e.graphic.removeClass("highcharts-point-"+n),i&&e.graphic.addClass("highcharts-point-"+i),!L.styledMode){V=s.pointAttribs(e,i),R=m(L.options.chart.animation,a.animation);const $=V.opacity;s.options.inactiveOtherPoints&&p($)&&((e.dataLabels||[]).forEach(function(j){j&&!j.hasClass("highcharts-data-label-hidden")&&j.animate({opacity:$},R)}),e.connector&&e.connector.animate({opacity:$},R)),e.graphic.animate(V,R)}N&&e.graphic.animate(N,m(L.options.chart.animation,k.animation,M.animation)),H&&H.hide()}else i&&k&&(v=B.symbol||s.symbol,H&&H.currentSymbol!==v&&(H=H.destroy()),N&&(H?H[t?"animate":"attr"]({x:N.x,y:N.y}):v&&(s.stateMarkerGraphic=H=L.renderer.symbol(v,N.x,N.y,N.width,N.height).add(s.markerGroup),H.currentSymbol=v)),!L.styledMode&&H&&e.state!=="inactive"&&H.attr(s.pointAttribs(e,i))),H&&(H[i&&e.isInside?"show":"hide"](),H.element.point=e,H.addClass(e.getClassName(),!0));const P=a.halo,_=e.graphic||H,z=_&&_.visibility||"inherit";P&&P.size&&_&&z!=="hidden"&&!e.isCluster?(d||(s.halo=d=L.renderer.path().add(_.parentGroup)),d.show()[t?"animate":"attr"]({d:e.haloPath(P.size)}),d.attr({class:"highcharts-halo highcharts-color-"+m(e.colorIndex,s.colorIndex)+(e.className?" "+e.className:""),visibility:z,zIndex:-1}),d.point=e,L.styledMode||d.attr(w({fill:e.color||s.color,"fill-opacity":P.opacity},q.filterUserAttributes(P.attributes||{})))):d&&d.point&&d.point.haloPath&&d.animate({d:d.point.haloPath(0)},null,d.hide),D(e,"afterSetState",{state:i})}haloPath(i){const t=this.pos();return t?this.series.chart.renderer.symbols.circle(Math.floor(t[0])-i,t[1]-i,i*2,i*2):[]}}return u}),ct(A,"Core/Pointer.js",[A["Core/Color/Color.js"],A["Core/Globals.js"],A["Core/Utilities.js"]],function(q,Y,tt){const{parse:it}=q,{charts:Z,noop:st}=Y,{addEvent:Q,attr:G,css:K,defined:O,extend:S,find:w,fireEvent:D,isNumber:b,isObject:f,objectEach:I,offset:p,pick:c,splat:y}=tt;class T{constructor(h,x){this.lastValidTouch={},this.pinchDown=[],this.runChartClick=!1,this.eventsToUnbind=[],this.chart=h,this.hasDragged=!1,this.options=x,this.init(h,x)}applyInactiveState(h){let x=[],l;(h||[]).forEach(function(u){l=u.series,x.push(l),l.linkedParent&&x.push(l.linkedParent),l.linkedSeries&&(x=x.concat(l.linkedSeries)),l.navigatorSeries&&x.push(l.navigatorSeries)}),this.chart.series.forEach(function(u){x.indexOf(u)===-1?u.setState("inactive",!0):u.options.inactiveOtherPoints&&u.setAllPointsToState("inactive")})}destroy(){const h=this;this.eventsToUnbind.forEach(x=>x()),this.eventsToUnbind=[],Y.chartCount||(T.unbindDocumentMouseUp&&(T.unbindDocumentMouseUp=T.unbindDocumentMouseUp()),T.unbindDocumentTouchEnd&&(T.unbindDocumentTouchEnd=T.unbindDocumentTouchEnd())),clearInterval(h.tooltipTimeout),I(h,function(x,l){h[l]=void 0})}getSelectionMarkerAttrs(h,x){const l={args:{chartX:h,chartY:x},attrs:{},shapeType:"rect"};return D(this,"getSelectionMarkerAttrs",l,u=>{const{chart:r,mouseDownX:i=0,mouseDownY:t=0,zoomHor:e,zoomVert:s}=this,n=u.attrs;let a;n.x=r.plotLeft,n.y=r.plotTop,n.width=e?1:r.plotWidth,n.height=s?1:r.plotHeight,e&&(a=h-i,n.width=Math.abs(a),n.x=(a>0?0:a)+i),s&&(a=x-t,n.height=Math.abs(a),n.y=(a>0?0:a)+t)}),l}drag(h){const x=this.chart,l=x.options.chart,u=x.plotLeft,r=x.plotTop,i=x.plotWidth,t=x.plotHeight,e=this.mouseDownX||0,s=this.mouseDownY||0,n=f(l.panning)?l.panning&&l.panning.enabled:l.panning,a=l.panKey&&h[l.panKey+"Key"];let M=h.chartX,g=h.chartY,k,C=this.selectionMarker;if(!(C&&C.touch)&&(M<u?M=u:M>u+i&&(M=u+i),g<r?g=r:g>r+t&&(g=r+t),this.hasDragged=Math.sqrt(Math.pow(e-M,2)+Math.pow(s-g,2)),this.hasDragged>10)){k=x.isInsidePlot(e-u,s-r,{visiblePlotOnly:!0});const{shapeType:B,attrs:L}=this.getSelectionMarkerAttrs(M,g);(x.hasCartesianSeries||x.mapView)&&(this.zoomX||this.zoomY)&&k&&!a&&(C||(this.selectionMarker=C=x.renderer[B](),C.attr({class:"highcharts-selection-marker",zIndex:7}).add(),x.styledMode||C.attr({fill:l.selectionMarkerFill||it("#334eff").setOpacity(.25).get()}))),C&&C.attr(L),k&&!C&&n&&x.pan(h,l.panning)}}dragStart(h){const x=this.chart;x.mouseIsDown=h.type,x.cancelClick=!1,x.mouseDownX=this.mouseDownX=h.chartX,x.mouseDownY=this.mouseDownY=h.chartY}getSelectionBox(h){const x={args:{marker:h},result:{}};return D(this,"getSelectionBox",x,l=>{l.result={x:h.attr?+h.attr("x"):h.x,y:h.attr?+h.attr("y"):h.y,width:h.attr?h.attr("width"):h.width,height:h.attr?h.attr("height"):h.height}}),x.result}drop(h){const x=this,l=this.chart,u=this.hasPinched;if(this.selectionMarker){const{x:r,y:i,width:t,height:e}=this.getSelectionBox(this.selectionMarker),s={originalEvent:h,xAxis:[],yAxis:[],x:r,y:i,width:t,height:e};l.mapView,(this.hasDragged||u)&&(l.axes.forEach(function(n){if(n.zoomEnabled&&O(n.min)&&(u||x[{xAxis:"zoomX",yAxis:"zoomY"}[n.coll]])&&b(r)&&b(i)&&b(t)&&b(e)){const a=n.horiz,M=h.type==="touchend"?n.minPixelPadding:0,g=n.toValue((a?r:i)+M),k=n.toValue((a?r+t:i+e)-M);s[n.coll].push({axis:n,min:Math.min(g,k),max:Math.max(g,k)})}}),console.log("放大",l,s),l.zoomBool==!1||l.zoomBool==null?D(l,"selection",s,function(n){l.zoom(S(n,u?{animation:!1}:null))}):D(l,"selection",s)),b(l.index)&&(this.selectionMarker=this.selectionMarker.destroy()),u&&this.scaleGroups()}l&&b(l.index)&&(K(l.container,{cursor:l._cursor}),l.cancelClick=this.hasDragged>10,l.mouseIsDown=this.hasDragged=this.hasPinched=!1,this.pinchDown=[])}findNearestKDPoint(h,x,l){let u;function r(i,t){const e=i.distX-t.distX,s=i.dist-t.dist,n=(t.series.group&&t.series.group.zIndex)-(i.series.group&&i.series.group.zIndex);let a;return e!==0&&x?a=e:s!==0?a=s:n!==0?a=n:a=i.series.index>t.series.index?-1:1,a}return h.forEach(function(i){const t=i.noSharedTooltip&&x,e=!t&&i.options.findNearestPointBy.indexOf("y")<0,s=i.searchPoint(l,e);f(s,!0)&&s.series&&(!f(u,!0)||r(u,s)>0)&&(u=s)}),u}getChartCoordinatesFromPoint(h,x){const l=h.series,u=l.xAxis,r=l.yAxis,i=h.shapeArgs;if(u&&r){let t=c(h.clientX,h.plotX),e=h.plotY||0;return h.isNode&&i&&b(i.x)&&b(i.y)&&(t=i.x,e=i.y),x?{chartX:r.len+r.pos-e,chartY:u.len+u.pos-t}:{chartX:t+u.pos,chartY:e+r.pos}}if(i&&i.x&&i.y)return{chartX:i.x,chartY:i.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;const{container:h}=this.chart,x=p(h);this.chartPosition={left:x.left,top:x.top,scaleX:1,scaleY:1};const l=h.offsetWidth,u=h.offsetHeight;return l>2&&u>2&&(this.chartPosition.scaleX=x.width/l,this.chartPosition.scaleY=x.height/u),this.chartPosition}getCoordinates(h){const x={xAxis:[],yAxis:[]};return this.chart.axes.forEach(function(l){x[l.isXAxis?"xAxis":"yAxis"].push({axis:l,value:l.toValue(h[l.horiz?"chartX":"chartY"])})}),x}getHoverData(h,x,l,u,r,i){const t=[],e=!!(u&&h),s=function(C){return C.visible&&!(!r&&C.directTouch)&&c(C.options.enableMouseTracking,!0)};let n=x,a,M={chartX:i?i.chartX:void 0,chartY:i?i.chartY:void 0,shared:r};D(this,"beforeGetHoverData",M),a=n&&!n.stickyTracking?[n]:l.filter(C=>C.stickyTracking&&(M.filter||s)(C));const k=e||!i?h:this.findNearestKDPoint(a,r,i);return n=k&&k.series,k&&(r&&!n.noSharedTooltip?(a=l.filter(function(C){return M.filter?M.filter(C):s(C)&&!C.noSharedTooltip}),a.forEach(function(C){let B=w(C.points,function(L){return L.x===k.x&&!L.isNull});f(B)&&(C.boosted&&C.boost&&(B=C.boost.getPoint(B)),t.push(B))})):t.push(k)),M={hoverPoint:k},D(this,"afterGetHoverData",M),{hoverPoint:M.hoverPoint,hoverSeries:n,hoverPoints:t}}getPointFromEvent(h){let x=h.target,l;for(;x&&!l;)l=x.point,x=x.parentNode;return l}onTrackerMouseOut(h){const x=this.chart,l=h.relatedTarget,u=x.hoverSeries;this.isDirectTouch=!1,u&&l&&!u.stickyTracking&&!this.inClass(l,"highcharts-tooltip")&&(!this.inClass(l,"highcharts-series-"+u.index)||!this.inClass(l,"highcharts-tracker"))&&u.onMouseOut()}inClass(h,x){let l=h,u;for(;l;){if(u=G(l,"class"),u){if(u.indexOf(x)!==-1)return!0;if(u.indexOf("highcharts-container")!==-1)return!1}l=l.parentElement}}init(h,x){this.options=x,this.chart=h,this.runChartClick=!!(x.chart.events&&x.chart.events.click),this.pinchDown=[],this.lastValidTouch={},this.setDOMEvents(),D(this,"afterInit")}normalize(h,x){const l=h.touches,u=l?l.length?l.item(0):c(l.changedTouches,h.changedTouches)[0]:h;x||(x=this.getChartPosition());let r=u.pageX-x.left,i=u.pageY-x.top;return r/=x.scaleX,i/=x.scaleY,S(h,{chartX:Math.round(r),chartY:Math.round(i)})}onContainerClick(h){const x=this.chart,l=x.hoverPoint,u=this.normalize(h),r=x.plotLeft,i=x.plotTop;x.cancelClick||(l&&this.inClass(u.target,"highcharts-tracker")?(D(l.series,"click",S(u,{point:l})),x.hoverPoint&&l.firePointEvent("click",u)):(S(u,this.getCoordinates(u)),x.isInsidePlot(u.chartX-r,u.chartY-i,{visiblePlotOnly:!0})&&D(x,"click",u)))}onContainerMouseDown(h){const x=((h.buttons||h.button)&1)===1;h=this.normalize(h),Y.isFirefox&&h.button!==0&&this.onContainerMouseMove(h),(typeof h.button>"u"||x)&&(this.zoomOption(h),x&&h.preventDefault&&h.preventDefault(),this.dragStart(h))}onContainerMouseLeave(h){const x=Z[c(T.hoverChartIndex,-1)];h=this.normalize(h),x&&h.relatedTarget&&!this.inClass(h.relatedTarget,"highcharts-tooltip")&&(x.pointer.reset(),x.pointer.chartPosition=void 0)}onContainerMouseEnter(h){delete this.chartPosition}onContainerMouseMove(h){const x=this.chart,l=x.tooltip,u=this.normalize(h);this.setHoverChartIndex(),(x.mouseIsDown==="mousedown"||this.touchSelect(u))&&this.drag(u),!x.openMenu&&(this.inClass(u.target,"highcharts-tracker")||x.isInsidePlot(u.chartX-x.plotLeft,u.chartY-x.plotTop,{visiblePlotOnly:!0}))&&!(l&&l.shouldStickOnContact(u))&&(this.inClass(u.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(u))}onDocumentTouchEnd(h){const x=Z[c(T.hoverChartIndex,-1)];x&&x.pointer.drop(h)}onContainerTouchMove(h){this.touchSelect(h)?this.onContainerMouseMove(h):this.touch(h)}onContainerTouchStart(h){this.touchSelect(h)?this.onContainerMouseDown(h):(this.zoomOption(h),this.touch(h,!0))}onDocumentMouseMove(h){const x=this.chart,l=x.tooltip,u=this.chartPosition,r=this.normalize(h,u);u&&!x.isInsidePlot(r.chartX-x.plotLeft,r.chartY-x.plotTop,{visiblePlotOnly:!0})&&!(l&&l.shouldStickOnContact(r))&&!this.inClass(r.target,"highcharts-tracker")&&this.reset()}onDocumentMouseUp(h){const x=Z[c(T.hoverChartIndex,-1)];x&&x.pointer.drop(h)}pinch(h){const x=this,l=x.chart,u=x.pinchDown,r=h.touches||[],i=r.length,t=x.lastValidTouch,e=x.hasZoom,s={},n=i===1&&(x.inClass(h.target,"highcharts-tracker")&&l.runTrackerClick||x.runChartClick),a={},M=x.chart.tooltip,g=i===1&&c(M&&M.options.followTouchMove,!0);let k=x.selectionMarker;i>1?x.initiated=!0:g&&(x.initiated=!1),e&&x.initiated&&!n&&h.cancelable!==!1&&h.preventDefault(),[].map.call(r,function(C){return x.normalize(C)}),h.type==="touchstart"?([].forEach.call(r,function(C,B){u[B]={chartX:C.chartX,chartY:C.chartY}}),t.x=[u[0].chartX,u[1]&&u[1].chartX],t.y=[u[0].chartY,u[1]&&u[1].chartY],l.axes.forEach(function(C){if(C.zoomEnabled){const B=l.bounds[C.horiz?"h":"v"],L=C.minPixelPadding,o=C.toPixels(Math.min(c(C.options.min,C.dataMin),C.dataMin)),d=C.toPixels(Math.max(c(C.options.max,C.dataMax),C.dataMax)),N=Math.min(o,d),V=Math.max(o,d);B.min=Math.min(C.pos,N-L),B.max=Math.max(C.pos+C.len,V+L)}}),x.res=!0):g?this.runPointActions(x.normalize(h)):u.length&&(D(l,"touchpan",{originalEvent:h},()=>{k||(x.selectionMarker=k=S({destroy:st,touch:!0},l.plotBox)),x.pinchTranslate(u,r,s,k,a,t),x.hasPinched=e,x.scaleGroups(s,a)}),x.res&&(x.res=!1,this.reset(!1,0)))}pinchTranslate(h,x,l,u,r,i){this.zoomHor&&this.pinchTranslateDirection(!0,h,x,l,u,r,i),this.zoomVert&&this.pinchTranslateDirection(!1,h,x,l,u,r,i)}pinchTranslateDirection(h,x,l,u,r,i,t,e){const s=this.chart,n=h?"x":"y",a=h?"X":"Y",M="chart"+a,g=h?"width":"height",k=s["plot"+(h?"Left":"Top")],C=s.inverted,B=s.bounds[h?"h":"v"],L=x.length===1,o=x[0][M],d=!L&&x[1][M],N=function(){typeof _=="number"&&Math.abs(o-d)>20&&(v=e||Math.abs(P-_)/Math.abs(o-d)),H=(k-P)/v+o,V=s["plot"+(h?"Width":"Height")]/v};let V,R,H,v=e||1,P=l[0][M],_=!L&&l[1][M],z;N(),R=H,R<B.min?(R=B.min,z=!0):R+V>B.max&&(R=B.max-V,z=!0),z?(P-=.8*(P-t[n][0]),typeof _=="number"&&(_-=.8*(_-t[n][1])),N()):t[n]=[P,_],C||(i[n]=H-k,i[g]=V);const $=C?h?"scaleY":"scaleX":"scale"+a,j=C?1/v:v;r[g]=V,r[n]=R,u[$]=v,u["translate"+a]=j*k+(P-j*o)}reset(h,x){const l=this,u=l.chart,r=u.hoverSeries,i=u.hoverPoint,t=u.hoverPoints,e=u.tooltip,s=e&&e.shared?t:i;h&&s&&y(s).forEach(function(n){n.series.isCartesian&&typeof n.plotX>"u"&&(h=!1)}),h?e&&s&&y(s).length&&(e.refresh(s),e.shared&&t?t.forEach(function(n){n.setState(n.state,!0),n.series.isCartesian&&(n.series.xAxis.crosshair&&n.series.xAxis.drawCrosshair(null,n),n.series.yAxis.crosshair&&n.series.yAxis.drawCrosshair(null,n))}):i&&(i.setState(i.state,!0),u.axes.forEach(function(n){n.crosshair&&i.series[n.coll]===n&&n.drawCrosshair(null,i)}))):(i&&i.onMouseOut(),t&&t.forEach(function(n){n.setState()}),r&&r.onMouseOut(),e&&e.hide(x),l.unDocMouseMove&&(l.unDocMouseMove=l.unDocMouseMove()),u.axes.forEach(function(n){n.hideCrosshair()}),l.hoverX=u.hoverPoints=u.hoverPoint=null)}runPointActions(h,x,l){const u=this,r=u.chart,i=r.series,t=r.tooltip&&r.tooltip.options.enabled?r.tooltip:void 0,e=t?t.shared:!1;let s=x||r.hoverPoint,n=s&&s.series||r.hoverSeries;const a=(!h||h.type!=="touchmove")&&(!!x||n&&n.directTouch&&u.isDirectTouch),M=this.getHoverData(s,n,i,a,e,h);s=M.hoverPoint,n=M.hoverSeries;const g=M.hoverPoints,k=n&&n.tooltipOptions.followPointer&&!n.tooltipOptions.split,C=e&&n&&!n.noSharedTooltip;if(s&&(l||s!==r.hoverPoint||t&&t.isHidden)){if((r.hoverPoints||[]).forEach(function(B){g.indexOf(B)===-1&&B.setState()}),r.hoverSeries!==n&&n.onMouseOver(),u.applyInactiveState(g),(g||[]).forEach(function(B){B.setState("hover")}),r.hoverPoint&&r.hoverPoint.firePointEvent("mouseOut"),!s.series)return;r.hoverPoints=g,r.hoverPoint=s,s.firePointEvent("mouseOver",void 0,()=>{t&&s&&t.refresh(C?g:s,h)})}else if(k&&t&&!t.isHidden){const B=t.getAnchor([{}],h);r.isInsidePlot(B[0],B[1],{visiblePlotOnly:!0})&&t.updatePosition({plotX:B[0],plotY:B[1]})}u.unDocMouseMove||(u.unDocMouseMove=Q(r.container.ownerDocument,"mousemove",function(B){const L=Z[T.hoverChartIndex];L&&L.pointer.onDocumentMouseMove(B)}),u.eventsToUnbind.push(u.unDocMouseMove)),r.axes.forEach(function(L){const o=c((L.crosshair||{}).snap,!0);let d;o&&(d=r.hoverPoint,(!d||d.series[L.coll]!==L)&&(d=w(g,N=>N.series&&N.series[L.coll]===L))),d||!o?L.drawCrosshair(h,d):L.hideCrosshair()})}scaleGroups(h,x){const l=this.chart;l.series.forEach(function(u){const r=h||u.getPlotBox();u.group&&(u.xAxis&&u.xAxis.zoomEnabled||l.mapView)&&(u.group.attr(r),u.markerGroup&&(u.markerGroup.attr(r),u.markerGroup.clip(x?l.clipRect:null)),u.dataLabelsGroup&&u.dataLabelsGroup.attr(r))}),l.clipRect.attr(x||l.clipBox)}setDOMEvents(){const h=this.chart.container,x=h.ownerDocument;h.onmousedown=this.onContainerMouseDown.bind(this),h.onmousemove=this.onContainerMouseMove.bind(this),h.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(Q(h,"mouseenter",this.onContainerMouseEnter.bind(this))),this.eventsToUnbind.push(Q(h,"mouseleave",this.onContainerMouseLeave.bind(this))),T.unbindDocumentMouseUp||(T.unbindDocumentMouseUp=Q(x,"mouseup",this.onDocumentMouseUp.bind(this)));let l=this.chart.renderTo.parentElement;for(;l&&l.tagName!=="BODY";)this.eventsToUnbind.push(Q(l,"scroll",()=>{delete this.chartPosition})),l=l.parentElement;Y.hasTouch&&(this.eventsToUnbind.push(Q(h,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1})),this.eventsToUnbind.push(Q(h,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),T.unbindDocumentTouchEnd||(T.unbindDocumentTouchEnd=Q(x,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1})))}setHoverChartIndex(){const h=this.chart,x=Y.charts[c(T.hoverChartIndex,-1)];x&&x!==h&&x.pointer.onContainerMouseLeave({relatedTarget:h.container}),(!x||!x.mouseIsDown)&&(T.hoverChartIndex=h.index)}touch(h,x){const l=this.chart;let u,r,i;this.setHoverChartIndex(),h.touches.length===1?(h=this.normalize(h),i=l.isInsidePlot(h.chartX-l.plotLeft,h.chartY-l.plotTop,{visiblePlotOnly:!0}),i&&!l.openMenu?(x&&this.runPointActions(h),h.type==="touchmove"&&(r=this.pinchDown,u=r[0]?Math.sqrt(Math.pow(r[0].chartX-h.chartX,2)+Math.pow(r[0].chartY-h.chartY,2))>=4:!1),c(u,!0)&&this.pinch(h)):x&&this.reset()):h.touches.length===2&&this.pinch(h)}touchSelect(h){return!!(this.chart.zooming.singleTouch&&h.touches&&h.touches.length===1)}zoomOption(h){const x=this.chart;x.options.chart;const l=x.inverted;let u=x.zooming.type||"",r,i;/touch/.test(h.type)&&(u=c(x.zooming.pinchType,u)),this.zoomX=r=/x/.test(u),this.zoomY=i=/y/.test(u),this.zoomHor=r&&!l||i&&l,this.zoomVert=i&&!l||r&&l,this.hasZoom=r||i}}return function(m){const h=[],x=[];function l(r){tt.pushUnique(x,r)&&Q(r,"beforeRender",function(){this.pointer=new m(this,this.options)})}m.compose=l;function u(){for(let r=0,i=h.length;r<i;++r)h[r]();h.length=0}m.dissolve=u}(T||(T={})),T}),ct(A,"Core/Legend/Legend.js",[A["Core/Animation/AnimationUtilities.js"],A["Core/Templating.js"],A["Core/Globals.js"],A["Core/Series/Point.js"],A["Core/Renderer/RendererUtilities.js"],A["Core/Utilities.js"]],function(q,Y,tt,it,Z,st){const{animObject:Q,setAnimation:G}=q,{format:K}=Y,{marginNames:O}=tt,{distribute:S}=Z,{addEvent:w,createElement:D,css:b,defined:f,discardElement:I,find:p,fireEvent:c,isNumber:y,merge:T,pick:m,relativeLength:h,stableSort:x,syncTimeout:l}=st;class u{constructor(i,t){this.allItems=[],this.box=void 0,this.contentGroup=void 0,this.display=!1,this.group=void 0,this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.options=void 0,this.padding=0,this.pages=[],this.proximate=!1,this.scrollGroup=void 0,this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=i,this.init(i,t)}init(i,t){this.chart=i,this.setOptions(t),t.enabled&&(this.render(),w(this.chart,"endResize",function(){this.legend.positionCheckboxes()}),w(this.chart,"render",()=>{this.proximate&&(this.proximatePositions(),this.positionItems())}))}setOptions(i){const t=m(i.padding,8);this.options=i,this.chart.styledMode||(this.itemStyle=i.itemStyle,this.itemHiddenStyle=T(this.itemStyle,i.itemHiddenStyle)),this.itemMarginTop=i.itemMarginTop,this.itemMarginBottom=i.itemMarginBottom,this.padding=t,this.initialItemY=t-5,this.symbolWidth=m(i.symbolWidth,16),this.pages=[],this.proximate=i.layout==="proximate"&&!this.chart.inverted,this.baseline=void 0}update(i,t){const e=this.chart;this.setOptions(T(!0,this.options,i)),this.destroy(),e.isDirtyLegend=e.isDirtyBox=!0,m(t,!0)&&e.redraw(),c(this,"afterUpdate")}colorizeItem(i,t){const{group:e,label:s,line:n,symbol:a}=i.legendItem||{};if(e&&e[t?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){const{itemHiddenStyle:M}=this,g=M.color,k=t&&i.color||g,C=i.options&&i.options.marker;let B={fill:k};s==null||s.css(T(t?this.itemStyle:M)),n==null||n.attr({stroke:k}),a&&(C&&a.isMarker&&(B=i.pointAttribs(),t||(B.stroke=B.fill=g)),a.attr(B))}c(this,"afterColorizeItem",{item:i,visible:t})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(i){const t=this,{group:e,x:s=0,y:n=0}=i.legendItem||{},a=t.options,M=a.symbolPadding,g=!a.rtl,k=i.checkbox;if(e&&e.element){const C={translateX:g?s:t.legendWidth-s-2*M-4,translateY:n},B=()=>{c(this,"afterPositionItem",{item:i})};e[f(e.translateY)?"animate":"attr"](C,void 0,B)}k&&(k.x=s,k.y=n)}destroyItem(i){const t=i.checkbox,e=i.legendItem||{};for(const s of["group","label","line","symbol"])e[s]&&(e[s]=e[s].destroy());t&&I(t),i.legendItem=void 0}destroy(){const i=this;for(const t of this.getAllItems())this.destroyItem(t);for(const t of["clipRect","up","down","pager","nav","box","title","group"])i[t]&&(i[t]=i[t].destroy());this.display=null}positionCheckboxes(){const i=this.group&&this.group.alignAttr,t=this.clipHeight||this.legendHeight,e=this.titleHeight;let s;i&&(s=i.translateY,this.allItems.forEach(function(n){const a=n.checkbox;let M;a&&(M=s+e+a.y+(this.scrollOffset||0)+3,b(a,{left:i.translateX+n.checkboxOffset+a.x-20+"px",top:M+"px",display:this.proximate||M>s-6&&M<s+t-6?"":"none"}))},this))}renderTitle(){const i=this.options,t=this.padding,e=i.title;let s,n=0;e.text&&(this.title||(this.title=this.chart.renderer.label(e.text,t-3,t-4,void 0,void 0,void 0,i.useHTML,void 0,"legend-title").attr({zIndex:1}),this.chart.styledMode||this.title.css(e.style),this.title.add(this.group)),e.width||this.title.css({width:this.maxLegendWidth+"px"}),s=this.title.getBBox(),n=s.height,this.offsetWidth=s.width,this.contentGroup.attr({translateY:n})),this.titleHeight=n}setText(i){const t=this.options;i.legendItem.label.attr({text:t.labelFormat?K(t.labelFormat,i,this.chart):t.labelFormatter.call(i)})}renderItem(i){const t=this,e=i.legendItem=i.legendItem||{},s=t.chart,n=s.renderer,a=t.options,M=a.layout==="horizontal",g=t.symbolWidth,k=a.symbolPadding||0,C=t.itemStyle,B=t.itemHiddenStyle,L=M?m(a.itemDistance,20):0,o=!a.rtl,d=!i.series,N=!d&&i.series.drawLegendSymbol?i.series:i,V=N.options,R=t.createCheckboxForItem&&V&&V.showCheckbox,H=a.useHTML,v=i.options.className;let P=e.label,_=g+k+L+(R?20:0);P||(e.group=n.g("legend-item").addClass("highcharts-"+N.type+"-series highcharts-color-"+i.colorIndex+(v?" "+v:"")+(d?" highcharts-series-"+i.index:"")).attr({zIndex:1}).add(t.scrollGroup),e.label=P=n.text("",o?g+k:-k,t.baseline||0,H),s.styledMode||P.css(T(i.visible?C:B)),P.attr({align:o?"left":"right",zIndex:2}).add(e.group),t.baseline||(t.fontMetrics=n.fontMetrics(P),t.baseline=t.fontMetrics.f+3+t.itemMarginTop,P.attr("y",t.baseline),t.symbolHeight=m(a.symbolHeight,t.fontMetrics.f),a.squareSymbol&&(t.symbolWidth=m(a.symbolWidth,Math.max(t.symbolHeight,16)),_=t.symbolWidth+k+L+(R?20:0),o&&P.attr("x",t.symbolWidth+k))),N.drawLegendSymbol(t,i),t.setItemEvents&&t.setItemEvents(i,P,H)),R&&!i.checkbox&&t.createCheckboxForItem&&t.createCheckboxForItem(i),t.colorizeItem(i,i.visible),(s.styledMode||!C.width)&&P.css({width:(a.itemWidth||t.widthOption||s.spacingBox.width)-_+"px"}),t.setText(i);const z=P.getBBox(),$=t.fontMetrics&&t.fontMetrics.h||0;i.itemWidth=i.checkboxOffset=a.itemWidth||e.labelWidth||z.width+_,t.maxItemWidth=Math.max(t.maxItemWidth,i.itemWidth),t.totalItemWidth+=i.itemWidth,t.itemHeight=i.itemHeight=Math.round(e.labelHeight||(z.height>$*1.5?z.height:$))}layoutItem(i){const t=this.options,e=this.padding,s=t.layout==="horizontal",n=i.itemHeight,a=this.itemMarginBottom,M=this.itemMarginTop,g=s?m(t.itemDistance,20):0,k=this.maxLegendWidth,C=t.alignColumns&&this.totalItemWidth>k?this.maxItemWidth:i.itemWidth,B=i.legendItem||{};s&&this.itemX-e+C>k&&(this.itemX=e,this.lastLineHeight&&(this.itemY+=M+this.lastLineHeight+a),this.lastLineHeight=0),this.lastItemY=M+this.itemY+a,this.lastLineHeight=Math.max(n,this.lastLineHeight),B.x=this.itemX,B.y=this.itemY,s?this.itemX+=C:(this.itemY+=M+n+a,this.lastLineHeight=n),this.offsetWidth=this.widthOption||Math.max((s?this.itemX-e-(i.checkbox?0:g):C)+e,this.offsetWidth)}getAllItems(){let i=[];return this.chart.series.forEach(function(t){const e=t&&t.options;t&&m(e.showInLegend,f(e.linkedTo)?!1:void 0,!0)&&(i=i.concat((t.legendItem||{}).labels||(e.legendType==="point"?t.data:t)))}),c(this,"afterGetAllItems",{allItems:i}),i}getAlignment(){const i=this.options;return this.proximate?i.align.charAt(0)+"tv":i.floating?"":i.align.charAt(0)+i.verticalAlign.charAt(0)+i.layout.charAt(0)}adjustMargins(i,t){const e=this.chart,s=this.options,n=this.getAlignment();n&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(a,M){a.test(n)&&!f(i[M])&&(e[O[M]]=Math.max(e[O[M]],e.legend[(M+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][M]*s[M%2?"x":"y"]+m(s.margin,12)+t[M]+(e.titleOffset[M]||0)))})}proximatePositions(){const i=this.chart,t=[],e=this.options.align==="left";this.allItems.forEach(function(n){let a,M,g=e,k,C;n.yAxis&&(n.xAxis.options.reversed&&(g=!g),n.points&&(a=p(g?n.points:n.points.slice(0).reverse(),function(B){return y(B.plotY)})),M=this.itemMarginTop+n.legendItem.label.getBBox().height+this.itemMarginBottom,C=n.yAxis.top-i.plotTop,n.visible?(k=a?a.plotY:n.yAxis.height,k+=C-.3*M):k=C+n.yAxis.height,t.push({target:k,size:M,item:n}))},this);let s;for(const n of S(t,i.plotHeight))s=n.item.legendItem||{},y(n.pos)&&(s.y=i.plotTop-i.spacing[0]+n.pos)}render(){const i=this,t=i.chart,e=t.renderer,s=i.options,n=i.padding,a=i.getAllItems();let M,g,k,C=i.group,B,L=i.box;i.itemX=n,i.itemY=i.initialItemY,i.offsetWidth=0,i.lastItemY=0,i.widthOption=h(s.width,t.spacingBox.width-n),B=t.spacingBox.width-2*n-s.x,["rm","lm"].indexOf(i.getAlignment().substring(0,2))>-1&&(B/=2),i.maxLegendWidth=i.widthOption||B,C||(i.group=C=e.g("legend").addClass(s.className||"").attr({zIndex:7}).add(),i.contentGroup=e.g().attr({zIndex:1}).add(C),i.scrollGroup=e.g().add(i.contentGroup)),i.renderTitle(),x(a,(o,d)=>(o.options&&o.options.legendIndex||0)-(d.options&&d.options.legendIndex||0)),s.reversed&&a.reverse(),i.allItems=a,i.display=M=!!a.length,i.lastLineHeight=0,i.maxItemWidth=0,i.totalItemWidth=0,i.itemHeight=0,a.forEach(i.renderItem,i),a.forEach(i.layoutItem,i),g=(i.widthOption||i.offsetWidth)+n,k=i.lastItemY+i.lastLineHeight+i.titleHeight,k=i.handleOverflow(k),k+=n,L||(i.box=L=e.rect().addClass("highcharts-legend-box").attr({r:s.borderRadius}).add(C)),t.styledMode||L.attr({stroke:s.borderColor,"stroke-width":s.borderWidth||0,fill:s.backgroundColor||"none"}).shadow(s.shadow),g>0&&k>0&&L[L.placed?"animate":"attr"](L.crisp.call({},{x:0,y:0,width:g,height:k},L.strokeWidth())),C[M?"show":"hide"](),t.styledMode&&C.getStyle("display")==="none"&&(g=k=0),i.legendWidth=g,i.legendHeight=k,M&&i.align(),this.proximate||this.positionItems(),c(this,"afterRender")}align(i=this.chart.spacingBox){const t=this.chart,e=this.options;let s=i.y;/(lth|ct|rth)/.test(this.getAlignment())&&t.titleOffset[0]>0?s+=t.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&t.titleOffset[2]>0&&(s-=t.titleOffset[2]),s!==i.y&&(i=T(i,{y:s})),t.hasRendered||(this.group.placed=!1),this.group.align(T(e,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":e.verticalAlign}),!0,i)}handleOverflow(i){const t=this,e=this.chart,s=e.renderer,n=this.options,a=n.y,M=n.verticalAlign==="top",g=this.padding,k=n.maxHeight,C=n.navigation,B=m(C.animation,!0),L=C.arrowSize||12,o=this.pages,d=this.allItems,N=function($){typeof $=="number"?z.attr({height:$}):z&&(t.clipRect=z.destroy(),t.contentGroup.clip()),t.contentGroup.div&&(t.contentGroup.div.style.clip=$?"rect("+g+"px,9999px,"+(g+$)+"px,0)":"auto")},V=function($){return t[$]=s.circle(0,0,L*1.3).translate(L/2,L/2).add(_),e.styledMode||t[$].attr("fill","rgba(0,0,0,0.0001)"),t[$]};let R,H,v,P=e.spacingBox.height+(M?-a:a)-g,_=this.nav,z=this.clipRect;return n.layout==="horizontal"&&n.verticalAlign!=="middle"&&!n.floating&&(P/=2),k&&(P=Math.min(P,k)),o.length=0,i&&P>0&&i>P&&C.enabled!==!1?(this.clipHeight=R=Math.max(P-20-this.titleHeight-g,0),this.currentPage=m(this.currentPage,1),this.fullHeight=i,d.forEach(($,j)=>{v=$.legendItem||{};const et=v.y||0,ot=Math.round(v.label.getBBox().height);let J=o.length;(!J||et-o[J-1]>R&&(H||et)!==o[J-1])&&(o.push(H||et),J++),v.pageIx=J-1,H&&((d[j-1].legendItem||{}).pageIx=J-1),j===d.length-1&&et+ot-o[J-1]>R&&et>o[J-1]&&(o.push(et),v.pageIx=J),et!==H&&(H=et)}),z||(z=t.clipRect=s.clipRect(0,g-2,9999,0),t.contentGroup.clip(z)),N(R),_||(this.nav=_=s.g().attr({zIndex:1}).add(this.group),this.up=s.symbol("triangle",0,0,L,L).add(_),V("upTracker").on("click",function(){t.scroll(-1,B)}),this.pager=s.text("",15,10).addClass("highcharts-legend-navigation"),!e.styledMode&&C.style&&this.pager.css(C.style),this.pager.add(_),this.down=s.symbol("triangle-down",0,0,L,L).add(_),V("downTracker").on("click",function(){t.scroll(1,B)})),t.scroll(0),i=P):_&&(N(),this.nav=_.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),i}scroll(i,t){const e=this.chart,s=this.pages,n=s.length,a=this.clipHeight,M=this.options.navigation,g=this.pager,k=this.padding;let C=this.currentPage+i;if(C>n&&(C=n),C>0){typeof t<"u"&&G(t,e),this.nav.attr({translateX:k,translateY:a+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach(function(L){L.attr({class:C===1?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),g.attr({text:C+"/"+n}),[this.down,this.downTracker].forEach(function(L){L.attr({x:18+this.pager.getBBox().width,class:C===n?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})},this),e.styledMode||(this.up.attr({fill:C===1?M.inactiveColor:M.activeColor}),this.upTracker.css({cursor:C===1?"default":"pointer"}),this.down.attr({fill:C===n?M.inactiveColor:M.activeColor}),this.downTracker.css({cursor:C===n?"default":"pointer"})),this.scrollOffset=-s[C-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=C,this.positionCheckboxes();const B=Q(m(t,e.renderer.globalAnimation,!0));l(()=>{c(this,"afterScroll",{currentPage:C})},B.duration)}}setItemEvents(i,t,e){const s=this,n=i.legendItem||{},a=s.chart.renderer.boxWrapper,M=i instanceof it,g="highcharts-legend-"+(M?"point":"series")+"-active",k=s.chart.styledMode,C=e?[t,n.symbol]:[n.group],B=L=>{s.allItems.forEach(o=>{i!==o&&[o].concat(o.linkedSeries||[]).forEach(d=>{d.setState(L,!M)})})};for(const L of C)L&&L.on("mouseover",function(){i.visible&&B("inactive"),i.setState("hover"),i.visible&&a.addClass(g),k||t.css(s.options.itemHoverStyle)}).on("mouseout",function(){s.chart.styledMode||t.css(T(i.visible?s.itemStyle:s.itemHiddenStyle)),B(""),a.removeClass(g),i.setState()}).on("click",function(o){const d="legendItemClick",N=function(){i.setVisible&&i.setVisible(),B(i.visible?"inactive":"")};a.removeClass(g),o={browserEvent:o},i.firePointEvent?i.firePointEvent(d,o,N):c(i,d,o,N)})}createCheckboxForItem(i){const t=this;i.checkbox=D("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:i.selected,defaultChecked:i.selected},t.options.itemCheckboxStyle,t.chart.container),w(i.checkbox,"click",function(e){const s=e.target;c(i.series||i,"checkboxClick",{checked:s.checked,item:i},function(){i.select()})})}}return function(r){const i=[];function t(e){st.pushUnique(i,e)&&w(e,"beforeMargins",function(){this.legend=new r(this,this.options.legend)})}r.compose=t}(u||(u={})),u}),ct(A,"Core/Legend/LegendSymbol.js",[A["Core/Utilities.js"]],function(q){const{extend:Y,merge:tt,pick:it}=q;var Z;return function(st){function Q(K,O){const S=this.legendItem=this.legendItem||{},w=this.options,D=K.symbolWidth,b=K.symbolHeight,f=b/2,I=this.chart.renderer,p=S.group,c=K.baseline-Math.round(K.fontMetrics.b*.3);let y={},T,m=w.marker,h=0;if(this.chart.styledMode||(y={"stroke-width":Math.min(w.lineWidth||0,24)},w.dashStyle?y.dashstyle=w.dashStyle:w.linecap!=="square"&&(y["stroke-linecap"]="round")),S.line=I.path().addClass("highcharts-graph").attr(y).add(p),y["stroke-linecap"]&&(h=Math.min(S.line.strokeWidth(),D)/2),D&&S.line.attr({d:[["M",h,c],["L",D-h,c]]}),m&&m.enabled!==!1&&D){let x=Math.min(it(m.radius,f),f);this.symbol.indexOf("url")===0&&(m=tt(m,{width:b,height:b}),x=0),S.symbol=T=I.symbol(this.symbol,D/2-x,c-x,2*x,2*x,Y({context:"legend"},m)).addClass("highcharts-point").add(p),T.isMarker=!0}}st.lineMarker=Q;function G(K,O){const S=O.legendItem||{},w=K.options,D=K.symbolHeight,b=w.squareSymbol,f=b?D:K.symbolWidth;S.symbol=this.chart.renderer.rect(b?(K.symbolWidth-D)/2:0,K.baseline-D+1,f,D,it(K.options.symbolRadius,D/2)).addClass("highcharts-point").attr({zIndex:3}).add(S.group)}st.rectangle=G}(Z||(Z={})),Z}),ct(A,"Core/Series/SeriesDefaults.js",[],function(){return{lineWidth:1,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){const{numberFormatter:Y}=this.series.chart;return typeof this.y!="number"?"":Y(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"}}),ct(A,"Core/Series/SeriesRegistry.js",[A["Core/Globals.js"],A["Core/Defaults.js"],A["Core/Series/Point.js"],A["Core/Utilities.js"]],function(q,Y,tt,it){const{defaultOptions:Z}=Y,{extendClass:st,merge:Q}=it;var G;return function(K){K.seriesTypes=q.seriesTypes;function O(w,D){const b=Z.plotOptions||{},f=D.defaultOptions,I=D.prototype;I.type=w,I.pointClass||(I.pointClass=tt),f&&(b[w]=f),K.seriesTypes[w]=D}K.registerSeriesType=O;function S(w,D,b,f,I){const p=Z.plotOptions||{};return D=D||"",p[w]=Q(p[D],b),O(w,st(K.seriesTypes[D]||function(){},f)),K.seriesTypes[w].prototype.type=w,I&&(K.seriesTypes[w].prototype.pointClass=st(tt,I)),K.seriesTypes[w]}K.seriesType=S}(G||(G={})),G}),ct(A,"Core/Series/Series.js",[A["Core/Animation/AnimationUtilities.js"],A["Core/Defaults.js"],A["Core/Foundation.js"],A["Core/Globals.js"],A["Core/Legend/LegendSymbol.js"],A["Core/Series/Point.js"],A["Core/Series/SeriesDefaults.js"],A["Core/Series/SeriesRegistry.js"],A["Core/Renderer/SVG/SVGElement.js"],A["Core/Utilities.js"]],function(q,Y,tt,it,Z,st,Q,G,K,O){const{animObject:S,setAnimation:w}=q,{defaultOptions:D}=Y,{registerEventOptions:b}=tt,{hasTouch:f,svg:I,win:p}=it,{seriesTypes:c}=G,{addEvent:y,arrayMax:T,arrayMin:m,clamp:h,correctFloat:x,defined:l,diffObjects:u,erase:r,error:i,extend:t,find:e,fireEvent:s,getClosestDistance:n,getNestedProperty:a,insertItem:M,isArray:g,isNumber:k,isString:C,merge:B,objectEach:L,pick:o,removeEvent:d,splat:N,syncTimeout:V}=O;class R{constructor(){this._i=void 0,this.chart=void 0,this.data=void 0,this.eventOptions=void 0,this.eventsToUnbind=void 0,this.index=void 0,this.linkedSeries=void 0,this.options=void 0,this.points=void 0,this.processedXData=void 0,this.processedYData=void 0,this.tooltipOptions=void 0,this.userOptions=void 0,this.xAxis=void 0,this.yAxis=void 0,this.zones=void 0}init(v,P){s(this,"init",{options:P});const _=this,z=v.series;this.eventsToUnbind=[],_.chart=v,_.options=_.setOptions(P);const $=_.options;_.linkedSeries=[],_.bindAxes(),t(_,{name:$.name,state:"",visible:$.visible!==!1,selected:$.selected===!0}),b(this,$);const j=$.events;(j&&j.click||$.point&&$.point.events&&$.point.events.click||$.allowPointSelect)&&(v.runTrackerClick=!0),_.getColor(),_.getSymbol(),_.parallelArrays.forEach(function(ot){_[ot+"Data"]||(_[ot+"Data"]=[])}),_.isCartesian&&(v.hasCartesianSeries=!0);let et;z.length&&(et=z[z.length-1]),_._i=o(et&&et._i,-1)+1,_.opacity=_.options.opacity,v.orderItems("series",M(this,z)),$.dataSorting&&$.dataSorting.enabled?_.setDataSortingOptions():!_.points&&!_.data&&_.setData($.data,!1),s(this,"afterInit")}is(v){return c[v]&&this instanceof c[v]}bindAxes(){const v=this,P=v.options,_=v.chart;let z;s(this,"bindAxes",null,function(){(v.axisTypes||[]).forEach(function($){_[$].forEach(function(j){z=j.options,(o(P[$],0)===j.index||typeof P[$]<"u"&&P[$]===z.id)&&(M(v,j.series),v[$]=j,j.isDirty=!0)}),!v[$]&&v.optionalAxis!==$&&i(18,!0,_)})}),s(this,"afterBindAxes")}updateParallelArrays(v,P,_){const z=v.series,$=k(P)?function(j){const et=j==="y"&&z.toYData?z.toYData(v):v[j];z[j+"Data"][P]=et}:function(j){Array.prototype[P].apply(z[j+"Data"],_)};z.parallelArrays.forEach($)}hasData(){return this.visible&&typeof this.dataMax<"u"&&typeof this.dataMin<"u"||this.visible&&this.yData&&this.yData.length>0}autoIncrement(v){const P=this.options,_=P.pointIntervalUnit,z=P.relativeXValue,$=this.chart.time;let j=this.xIncrement,et,ot;return j=o(j,P.pointStart,0),this.pointInterval=ot=o(this.pointInterval,P.pointInterval,1),z&&k(v)&&(ot*=v),_&&(et=new $.Date(j),_==="day"?$.set("Date",et,$.get("Date",et)+ot):_==="month"?$.set("Month",et,$.get("Month",et)+ot):_==="year"&&$.set("FullYear",et,$.get("FullYear",et)+ot),ot=et.getTime()-j),z&&k(v)?j+ot:(this.xIncrement=j+ot,j)}setDataSortingOptions(){const v=this.options;t(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),l(v.pointRange)||(v.pointRange=1)}setOptions(v){var P,_;const z=this.chart,$=z.options,j=$.plotOptions,et=z.userOptions||{},ot=B(v),J=z.styledMode,at={plotOptions:j,userOptions:ot};let W;s(this,"setOptions",at);const F=at.plotOptions[this.type],E=et.plotOptions||{},X=E.series||{},U=D.plotOptions[this.type]||{},nt=E[this.type]||{};this.userOptions=at.userOptions;const rt=B(F,j.series,nt,ot);this.tooltipOptions=B(D.tooltip,(P=D.plotOptions.series)===null||P===void 0?void 0:P.tooltip,U==null?void 0:U.tooltip,z.userOptions.tooltip,(_=E.series)===null||_===void 0?void 0:_.tooltip,nt.tooltip,ot.tooltip),this.stickyTracking=o(ot.stickyTracking,nt.stickyTracking,X.stickyTracking,this.tooltipOptions.shared&&!this.noSharedTooltip?!0:rt.stickyTracking),F.marker===null&&delete rt.marker,this.zoneAxis=rt.zoneAxis;const ht=this.zones=(rt.zones||[]).slice();return(rt.negativeColor||rt.negativeFillColor)&&!rt.zones&&(W={value:rt[this.zoneAxis+"Threshold"]||rt.threshold||0,className:"highcharts-negative"},J||(W.color=rt.negativeColor,W.fillColor=rt.negativeFillColor),ht.push(W)),ht.length&&l(ht[ht.length-1].value)&&ht.push(J?{}:{color:this.color,fillColor:this.fillColor}),s(this,"afterSetOptions",{options:rt}),rt}getName(){return o(this.options.name,"Series "+(this.index+1))}getCyclic(v,P,_){const z=this.chart,$=`${v}Index`,j=`${v}Counter`,et=(_==null?void 0:_.length)||z.options.chart.colorCount;let ot,J;P||(J=o(v==="color"?this.options.colorIndex:void 0,this[$]),l(J)?ot=J:(z.series.length||(z[j]=0),ot=z[j]%et,z[j]+=1),_&&(P=_[ot])),typeof ot<"u"&&(this[$]=ot),this[v]=P}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||D.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){const v=this.options.marker;this.getCyclic("symbol",v.symbol,this.chart.options.symbols)}findPointIndex(v,P){const _=v.id,z=v.x,$=this.points,j=this.options.dataSorting;let et,ot,J;if(_){const at=this.chart.get(_);at instanceof st&&(et=at)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let at=W=>!W.touched&&W.index===v.index;if(j&&j.matchByName?at=W=>!W.touched&&W.name===v.name:this.options.relativeXValue&&(at=W=>!W.touched&&W.options.x===v.x),et=e($,at),!et)return}return et&&(J=et&&et.index,typeof J<"u"&&(ot=!0)),typeof J>"u"&&k(z)&&(J=this.xData.indexOf(z,P)),J!==-1&&typeof J<"u"&&this.cropped&&(J=J>=this.cropStart?J-this.cropStart:J),!ot&&k(J)&&$[J]&&$[J].touched&&(J=void 0),J}updateData(v,P){const _=this.options,z=_.dataSorting,$=this.points,j=[],et=this.requireSorting,ot=v.length===$.length;let J,at,W,F,E=!0;if(this.xIncrement=null,v.forEach(function(X,U){const nt=l(X)&&this.pointClass.prototype.optionsToObject.call({series:this},X)||{};let rt;const ht=nt.x;nt.id||k(ht)?(rt=this.findPointIndex(nt,F),rt===-1||typeof rt>"u"?j.push(X):$[rt]&&X!==_.data[rt]?($[rt].update(X,!1,null,!1),$[rt].touched=!0,et&&(F=rt+1)):$[rt]&&($[rt].touched=!0),(!ot||U!==rt||z&&z.enabled||this.hasDerivedData)&&(J=!0)):j.push(X)},this),J)for(at=$.length;at--;)W=$[at],W&&!W.touched&&W.remove&&W.remove(!1,P);else ot&&(!z||!z.enabled)?(v.forEach(function(X,U){X!==$[U].y&&!$[U].destroyed&&$[U].update(X,!1,null,!1)}),j.length=0):E=!1;return $.forEach(function(X){X&&(X.touched=!1)}),E?(j.forEach(function(X){this.addPoint(X,!1,null,null,!1)},this),this.xIncrement===null&&this.xData&&this.xData.length&&(this.xIncrement=T(this.xData),this.autoIncrement()),!0):!1}setData(v,P=!0,_,z){var $;const j=this,et=j.points,ot=et&&et.length||0,J=j.options,at=j.chart,W=J.dataSorting,F=j.xAxis,E=J.turboThreshold,X=this.xData,U=this.yData,nt=j.pointArrayMap,rt=nt&&nt.length,ht=J.keys;let ft,mt,gt,xt=0,bt=1,Tt=null,vt;at.options.chart.allowMutatingData||(J.data&&delete j.options.data,j.userOptions.data&&delete j.userOptions.data,vt=B(!0,v)),v=vt||v||[];const yt=v.length;if(W&&W.enabled&&(v=this.sortData(v)),at.options.chart.allowMutatingData&&z!==!1&&yt&&ot&&!j.cropped&&!j.hasGroupedData&&j.visible&&!j.boosted&&(gt=this.updateData(v,_)),!gt){if(j.xIncrement=null,j.colorCounter=0,this.parallelArrays.forEach(function(Ct){j[Ct+"Data"].length=0}),E&&yt>E)if(Tt=j.getFirstValidPoint(v),k(Tt))for(ft=0;ft<yt;ft++)X[ft]=this.autoIncrement(),U[ft]=v[ft];else if(g(Tt))if(rt)if(Tt.length===rt)for(ft=0;ft<yt;ft++)X[ft]=this.autoIncrement(),U[ft]=v[ft];else for(ft=0;ft<yt;ft++)mt=v[ft],X[ft]=mt[0],U[ft]=mt.slice(1,rt+1);else if(ht&&(xt=ht.indexOf("x"),bt=ht.indexOf("y"),xt=xt>=0?xt:0,bt=bt>=0?bt:1),Tt.length===1&&(bt=0),xt===bt)for(ft=0;ft<yt;ft++)X[ft]=this.autoIncrement(),U[ft]=v[ft][bt];else for(ft=0;ft<yt;ft++)mt=v[ft],X[ft]=mt[xt],U[ft]=mt[bt];else i(12,!1,at);else for(ft=0;ft<yt;ft++)mt={series:j},j.pointClass.prototype.applyOptions.apply(mt,[v[ft]]),j.updateParallelArrays(mt,ft);for(U&&C(U[0])&&i(14,!0,at),j.data=[],j.options.data=j.userOptions.data=v,ft=ot;ft--;)($=et[ft])===null||$===void 0||$.destroy();F&&(F.minRange=F.userMinRange),j.isDirty=at.isDirtyBox=!0,j.isDirtyData=!!et,_=!1}J.legendType==="point"&&(this.processData(),this.generatePoints()),P&&at.redraw(_)}sortData(v){const P=this,_=P.options,z=_.dataSorting,$=z.sortKey||"y",j=function(ot,J){return l(J)&&ot.pointClass.prototype.optionsToObject.call({series:ot},J)||{}};return v.forEach(function(ot,J){v[J]=j(P,ot),v[J].index=J},this),v.concat().sort((ot,J)=>{const at=a($,ot),W=a($,J);return W<at?-1:W>at?1:0}).forEach(function(ot,J){ot.x=J},this),P.linkedSeries&&P.linkedSeries.forEach(function(ot){const J=ot.options,at=J.data;(!J.dataSorting||!J.dataSorting.enabled)&&at&&(at.forEach(function(W,F){at[F]=j(ot,W),v[F]&&(at[F].x=v[F].x,at[F].index=F)}),ot.setData(at,!1))}),v}getProcessedData(v){const P=this,_=P.xAxis,z=P.options,$=z.cropThreshold,j=v||P.getExtremesFromAll||z.getExtremesFromAll,et=_==null?void 0:_.logarithmic,ot=P.isCartesian;let J,at,W=0,F,E,X,U=P.xData,nt=P.yData,rt=!1;const ht=U.length;_&&(F=_.getExtremes(),E=F.min,X=F.max,rt=!!(_.categories&&!_.names.length)),ot&&P.sorted&&!j&&(!$||ht>$||P.forceCrop)&&(U[ht-1]<E||U[0]>X?(U=[],nt=[]):P.yData&&(U[0]<E||U[ht-1]>X)&&(J=this.cropData(P.xData,P.yData,E,X),U=J.xData,nt=J.yData,W=J.start,at=!0));const ft=n([et?U.map(et.log2lin):U],()=>P.requireSorting&&!rt&&i(15,!1,P.chart));return{xData:U,yData:nt,cropped:at,cropStart:W,closestPointRange:ft}}processData(v){const P=this,_=P.xAxis;if(P.isCartesian&&!P.isDirty&&!_.isDirty&&!P.yAxis.isDirty&&!v)return!1;const z=P.getProcessedData();P.cropped=z.cropped,P.cropStart=z.cropStart,P.processedXData=z.xData,P.processedYData=z.yData,P.closestPointRange=P.basePointRange=z.closestPointRange,s(P,"afterProcessData")}cropData(v,P,_,z,$){const j=v.length;let et,ot,J=0,at=j;for($=o($,this.cropShoulder),et=0;et<j;et++)if(v[et]>=_){J=Math.max(0,et-$);break}for(ot=et;ot<j;ot++)if(v[ot]>z){at=ot+$;break}return{xData:v.slice(J,at),yData:P.slice(J,at),start:J,end:at}}generatePoints(){const v=this,P=v.options,_=v.processedData||P.data,z=v.processedXData,$=v.processedYData,j=v.pointClass,et=z.length,ot=v.cropStart||0,J=v.hasGroupedData,at=P.keys,W=[],F=P.dataGrouping&&P.dataGrouping.groupAll?ot:0;let E,X,U,nt,rt=v.data;if(!rt&&!J){const ht=[];ht.length=_.length,rt=v.data=ht}for(at&&J&&(v.options.keys=!1),nt=0;nt<et;nt++)X=ot+nt,J?(U=new j().init(v,[z[nt]].concat(N($[nt]))),U.dataGroup=v.groupMap[F+nt],U.dataGroup.options&&(U.options=U.dataGroup.options,t(U,U.dataGroup.options),delete U.dataLabels)):(U=rt[X],!U&&typeof _[X]<"u"&&(rt[X]=U=new j().init(v,_[X],z[nt]))),U&&(U.index=J?F+nt:X,W[nt]=U);if(v.options.keys=at,rt&&(et!==(E=rt.length)||J))for(nt=0;nt<E;nt++)nt===ot&&!J&&(nt+=et),rt[nt]&&(rt[nt].destroyElements(),rt[nt].plotX=void 0);v.data=rt,v.points=W,s(this,"afterGeneratePoints")}getXExtremes(v){return{min:m(v),max:T(v)}}getExtremes(v,P){const _=this.xAxis,z=this.yAxis,$=this.processedXData||this.xData,j=[],et=this.requireSorting?this.cropShoulder:0,ot=z?z.positiveValuesOnly:!1;let J,at,W,F,E,X,U,nt=0,rt=0,ht=0;v=v||this.stackedYData||this.processedYData||[];const ft=v.length;for(_&&(J=_.getExtremes(),nt=J.min,rt=J.max),X=0;X<ft;X++)if(F=$[X],E=v[X],at=(k(E)||g(E))&&(E.length||E>0||!ot),W=P||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!_||($[X+et]||F)>=nt&&($[X-et]||F)<=rt,at&&W)if(U=E.length,U)for(;U--;)k(E[U])&&(j[ht++]=E[U]);else j[ht++]=E;const mt={activeYData:j,dataMin:m(j),dataMax:T(j)};return s(this,"afterGetExtremes",{dataExtremes:mt}),mt}applyExtremes(){const v=this.getExtremes();return this.dataMin=v.dataMin,this.dataMax=v.dataMax,v}getFirstValidPoint(v){const P=v.length;let _=0,z=null;for(;z===null&&_<P;)z=v[_],_++;return z}translate(){var v;this.processedXData||this.processData(),this.generatePoints();const P=this,_=P.options,z=_.stacking,$=P.xAxis,j=$.categories,et=P.enabledDataSorting,ot=P.yAxis,J=P.points,at=J.length,W=P.pointPlacementToXValue(),F=!!W,E=_.threshold,X=_.startFromThreshold?E:0;let U,nt,rt,ht,ft=Number.MAX_VALUE;function mt(gt){return h(gt,-1e5,1e5)}for(U=0;U<at;U++){const gt=J[U],xt=gt.x;let bt,Tt,vt=gt.y,yt=gt.low;const Ct=z&&((v=ot.stacking)===null||v===void 0?void 0:v.stacks[(P.negStacks&&vt<(X?0:E)?"-":"")+P.stackKey]);nt=$.translate(xt,!1,!1,!1,!0,W),gt.plotX=k(nt)?x(mt(nt)):void 0,z&&P.visible&&Ct&&Ct[xt]&&(ht=P.getStackIndicator(ht,xt,P.index),!gt.isNull&&ht.key&&(bt=Ct[xt],Tt=bt.points[ht.key]),bt&&g(Tt)&&(yt=Tt[0],vt=Tt[1],yt===X&&ht.key===Ct[xt].base&&(yt=o(k(E)?E:ot.min)),ot.positiveValuesOnly&&l(yt)&&yt<=0&&(yt=void 0),gt.total=gt.stackTotal=o(bt.total),gt.percentage=l(gt.y)&&bt.total?gt.y/bt.total*100:void 0,gt.stackY=vt,P.irregularWidths||bt.setOffset(P.pointXOffset||0,P.barW||0,void 0,void 0,void 0,P.xAxis))),gt.yBottom=l(yt)?mt(ot.translate(yt,!1,!0,!1,!0)):void 0,P.dataModify&&(vt=P.dataModify.modifyValue(vt,U));let Ot;k(vt)&&gt.plotX!==void 0&&(Ot=ot.translate(vt,!1,!0,!1,!0),Ot=k(Ot)?mt(Ot):void 0),gt.plotY=Ot,gt.isInside=this.isPointInside(gt),gt.clientX=F?x($.translate(xt,!1,!1,!1,!0,W)):nt,gt.negative=(gt.y||0)<(E||0),gt.category=o(j&&j[gt.x],gt.x),!gt.isNull&&gt.visible!==!1&&(typeof rt<"u"&&(ft=Math.min(ft,Math.abs(nt-rt))),rt=nt),gt.zone=this.zones.length?gt.getZone():void 0,!gt.graphic&&P.group&&et&&(gt.isNew=!0)}P.closestPointRangePx=ft,s(this,"afterTranslate")}getValidPoints(v,P,_){const z=this.chart;return(v||this.points||[]).filter(function($){const{plotX:j,plotY:et}=$;return!_&&($.isNull||!k(et))||P&&!z.isInsidePlot(j,et,{inverted:z.inverted})?!1:$.visible!==!1})}getClipBox(){const{chart:v,xAxis:P,yAxis:_}=this,z=B(v.clipBox);return P&&P.len!==v.plotSizeX&&(z.width=P.len),_&&_.len!==v.plotSizeY&&(z.height=_.len),z}getSharedClipKey(){return this.sharedClipKey=(this.options.xAxis||0)+","+(this.options.yAxis||0),this.sharedClipKey}setClip(){const{chart:v,group:P,markerGroup:_}=this,z=v.sharedClips,$=v.renderer,j=this.getClipBox(),et=this.getSharedClipKey();let ot=z[et];ot?ot.animate(j):z[et]=ot=$.clipRect(j),P&&P.clip(this.options.clip===!1?void 0:ot),_&&_.clip()}animate(v){const{chart:P,group:_,markerGroup:z}=this,$=P.inverted,j=S(this.options.animation),et=[this.getSharedClipKey(),j.duration,j.easing,j.defer].join(",");let ot=P.sharedClips[et],J=P.sharedClips[et+"m"];if(v&&_){const at=this.getClipBox();if(ot)ot.attr("height",at.height);else{at.width=0,$&&(at.x=P.plotHeight),ot=P.renderer.clipRect(at),P.sharedClips[et]=ot;const W={x:-99,y:-99,width:$?P.plotWidth+199:99,height:$?99:P.plotHeight+199};J=P.renderer.clipRect(W),P.sharedClips[et+"m"]=J}_.clip(ot),z&&z.clip(J)}else if(ot&&!ot.hasClass("highcharts-animating")){const at=this.getClipBox(),W=j.step;z&&z.element.childNodes.length&&(j.step=function(F,E){W&&W.apply(E,arguments),E.prop==="width"&&J&&J.element&&J.attr($?"height":"width",F+99)}),ot.addClass("highcharts-animating").animate(at,j)}}afterAnimate(){this.setClip(),L(this.chart.sharedClips,(v,P,_)=>{v&&!this.chart.container.querySelector(`[clip-path="url(#${v.id})"]`)&&(v.destroy(),delete _[P])}),this.finishedAnimating=!0,s(this,"afterAnimate")}drawPoints(v=this.points){const P=this,_=P.chart,z=_.styledMode,{colorAxis:$,options:j}=P,et=j.marker,ot=P[P.specialGroup||"markerGroup"],J=P.xAxis,at=o(et.enabled,!J||J.isRadial?!0:null,P.closestPointRangePx>=et.enabledThreshold*et.radius);let W,F,E,X,U,nt,rt;if(et.enabled!==!1||P._hasPointMarkers)for(W=0;W<v.length;W++)if(F=v[W],E=F.graphic,X=E?"animate":"attr",U=F.marker||{},nt=!!F.marker,(at&&typeof U.enabled>"u"||U.enabled)&&!F.isNull&&F.visible!==!1){const ft=o(U.symbol,P.symbol,"rect");rt=P.markerAttribs(F,F.selected&&"select"),P.enabledDataSorting&&(F.startXPos=J.reversed?-(rt.width||0):J.width);const mt=F.isInside!==!1;if(!E&&mt&&((rt.width||0)>0||F.hasImage)&&(F.graphic=E=_.renderer.symbol(ft,rt.x,rt.y,rt.width,rt.height,nt?U:et).add(ot),P.enabledDataSorting&&_.hasRendered&&(E.attr({x:F.startXPos}),X="animate")),E&&X==="animate"&&E[mt?"show":"hide"](mt).animate(rt),E){const gt=P.pointAttribs(F,z||!F.selected?void 0:"select");z?$&&E.css({fill:gt.fill}):E[X](gt)}E&&E.addClass(F.getClassName(),!0)}else E&&(F.graphic=E.destroy())}markerAttribs(v,P){const _=this.options,z=_.marker,$=v.marker||{},j=$.symbol||z.symbol,et={};let ot,J,at=o($.radius,z&&z.radius);P&&(ot=z.states[P],J=$.states&&$.states[P],at=o(J&&J.radius,ot&&ot.radius,at&&at+(ot&&ot.radiusPlus||0))),v.hasImage=j&&j.indexOf("url")===0,v.hasImage&&(at=0);const W=v.pos();return k(at)&&W&&(et.x=W[0]-at,et.y=W[1]-at,_.crisp&&(et.x=Math.floor(et.x))),at&&(et.width=et.height=2*at),et}pointAttribs(v,P){const _=this.options.marker,z=v&&v.options,$=z&&z.marker||{},j=z&&z.color,et=v&&v.color,ot=v&&v.zone&&v.zone.color;let J,at,W=this.color,F,E,X=o($.lineWidth,_.lineWidth),U=1;return W=j||ot||et||W,F=$.fillColor||_.fillColor||W,E=$.lineColor||_.lineColor||W,P=P||"normal",P&&(J=_.states[P]||{},at=$.states&&$.states[P]||{},X=o(at.lineWidth,J.lineWidth,X+o(at.lineWidthPlus,J.lineWidthPlus,0)),F=at.fillColor||J.fillColor||F,E=at.lineColor||J.lineColor||E,U=o(at.opacity,J.opacity,U)),{stroke:E,"stroke-width":X,fill:F,opacity:U}}destroy(v){const P=this,_=P.chart,z=/AppleWebKit\/533/.test(p.navigator.userAgent),$=P.data||[];let j,et,ot,J;for(s(P,"destroy",{keepEventsForUpdate:v}),this.removeEvents(v),(P.axisTypes||[]).forEach(function(at){J=P[at],J&&J.series&&(r(J.series,P),J.isDirty=J.forceRedraw=!0)}),P.legendItem&&P.chart.legend.destroyItem(P),et=$.length;et--;)ot=$[et],ot&&ot.destroy&&ot.destroy();P.clips&&P.clips.forEach(at=>at.destroy()),O.clearTimeout(P.animationTimeout),L(P,function(at,W){at instanceof K&&!at.survive&&(j=z&&W==="group"?"hide":"destroy",at[j]())}),_.hoverSeries===P&&(_.hoverSeries=void 0),r(_.series,P),_.orderItems("series"),L(P,function(at,W){(!v||W!=="hcEvents")&&delete P[W]})}applyZones(){const v=this,P=this.chart,_=P.renderer,z=this.zones,$=this.clips||[],j=this.graph,et=this.area,ot=Math.max(P.plotWidth,P.plotHeight),J=this[(this.zoneAxis||"y")+"Axis"],at=P.inverted;let W,F,E,X,U,nt,rt,ht,ft,mt,gt,xt=!1;z.length&&(j||et)&&J&&typeof J.min<"u"?(U=J.reversed,nt=J.horiz,j&&!this.showLine&&j.hide(),et&&et.hide(),X=J.getExtremes(),z.forEach(function(bt,Tt){W=U?nt?P.plotWidth:0:nt?0:J.toPixels(X.min)||0,W=h(o(F,W),0,ot),F=h(Math.round(J.toPixels(o(bt.value,X.max),!0)||0),0,ot),xt&&(W=F=J.toPixels(X.max)),rt=Math.abs(W-F),ht=Math.min(W,F),ft=Math.max(W,F),J.isXAxis?(E={x:at?ft:ht,y:0,width:rt,height:ot},nt||(E.x=P.plotHeight-E.x)):(E={x:0,y:at?ft:ht,width:ot,height:rt},nt&&(E.y=P.plotWidth-E.y)),$[Tt]?$[Tt].animate(E):$[Tt]=_.clipRect(E),mt=v["zone-area-"+Tt],gt=v["zone-graph-"+Tt],j&&gt&&gt.clip($[Tt]),et&&mt&&mt.clip($[Tt]),xt=bt.value>X.max,v.resetZones&&F===0&&(F=void 0)}),this.clips=$):v.visible&&(j&&j.show(),et&&et.show())}plotGroup(v,P,_,z,$){let j=this[v];const et=!j,ot={visibility:_,zIndex:z||.1};return typeof this.opacity<"u"&&!this.chart.styledMode&&this.state!=="inactive"&&(ot.opacity=this.opacity),et&&(this[v]=j=this.chart.renderer.g().add($)),j.addClass("highcharts-"+P+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(l(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(j.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),j.attr(ot)[et?"attr":"animate"](this.getPlotBox(P)),j}getPlotBox(v){let P=this.xAxis,_=this.yAxis;const z=this.chart,$=z.inverted&&!z.polar&&P&&this.invertible!==!1&&v==="series";return z.inverted&&(P=_,_=this.xAxis),{translateX:P?P.left:z.plotLeft,translateY:_?_.top:z.plotTop,rotation:$?90:0,rotationOriginX:$?(P.len-_.len)/2:0,rotationOriginY:$?(P.len+_.len)/2:0,scaleX:$?-1:1,scaleY:1}}removeEvents(v){const P=this;v||d(P),P.eventsToUnbind.length&&(P.eventsToUnbind.forEach(function(_){_()}),P.eventsToUnbind.length=0)}render(){const v=this,P=v.chart,_=v.options,z=S(_.animation),$=v.visible?"inherit":"hidden",j=_.zIndex,et=v.hasRendered,ot=P.seriesGroup;P.inverted;let J=v.finishedAnimating?0:z.duration;s(this,"render"),v.plotGroup("group","series",$,j,ot),v.markerGroup=v.plotGroup("markerGroup","markers",$,j,ot),_.clip!==!1&&v.setClip(),v.animate&&J&&v.animate(!0),v.drawGraph&&(v.drawGraph(),v.applyZones()),v.visible&&v.drawPoints(),v.drawDataLabels&&v.drawDataLabels(),v.redrawPoints&&v.redrawPoints(),v.drawTracker&&_.enableMouseTracking&&v.drawTracker(),v.animate&&J&&v.animate(),et||(J&&z.defer&&(J+=z.defer),v.animationTimeout=V(function(){v.afterAnimate()},J||0)),v.isDirty=!1,v.hasRendered=!0,s(v,"afterRender")}redraw(){const v=this.isDirty||this.isDirtyData;this.translate(),this.render(),v&&delete this.kdTree}searchPoint(v,P){const _=this,z=_.xAxis,$=_.yAxis,j=_.chart.inverted;return this.searchKDTree({clientX:j?z.len-v.chartY+z.pos:v.chartX-z.pos,plotY:j?$.len-v.chartX+$.pos:v.chartY-$.pos},P,v)}buildKDTree(v){this.buildingKdTree=!0;const P=this,_=P.options.findNearestPointBy.indexOf("y")>-1?2:1;function z(j,et,ot){const J=j&&j.length;let at,W;if(J)return at=P.kdAxisArray[et%ot],j.sort(function(F,E){return F[at]-E[at]}),W=Math.floor(J/2),{point:j[W],left:z(j.slice(0,W),et+1,ot),right:z(j.slice(W+1),et+1,ot)}}function $(){P.kdTree=z(P.getValidPoints(null,!P.directTouch),_,_),P.buildingKdTree=!1}delete P.kdTree,V($,P.options.kdNow||v&&v.type==="touchstart"?0:1)}searchKDTree(v,P,_){const z=this,$=this.kdAxisArray[0],j=this.kdAxisArray[1],et=P?"distX":"dist",ot=z.options.findNearestPointBy.indexOf("y")>-1?2:1;function J(W,F){const E=l(W[$])&&l(F[$])?Math.pow(W[$]-F[$],2):null,X=l(W[j])&&l(F[j])?Math.pow(W[j]-F[j],2):null,U=(E||0)+(X||0);F.dist=l(U)?Math.sqrt(U):Number.MAX_VALUE,F.distX=l(E)?Math.sqrt(E):Number.MAX_VALUE}function at(W,F,E,X){const U=F.point,nt=z.kdAxisArray[E%X];let rt,ht,ft=U;J(W,U);const mt=W[nt]-U[nt],gt=mt<0?"left":"right",xt=mt<0?"right":"left";return F[gt]&&(rt=at(W,F[gt],E+1,X),ft=rt[et]<ft[et]?rt:U),F[xt]&&Math.sqrt(mt*mt)<ft[et]&&(ht=at(W,F[xt],E+1,X),ft=ht[et]<ft[et]?ht:ft),ft}if(!this.kdTree&&!this.buildingKdTree&&this.buildKDTree(_),this.kdTree)return at(v,this.kdTree,ot,ot)}pointPlacementToXValue(){const{options:{pointPlacement:v,pointRange:P},xAxis:_}=this;let z=v;return z==="between"&&(z=_.reversed?-.5:.5),k(z)?z*(P||_.pointRange):0}isPointInside(v){const{chart:P,xAxis:_,yAxis:z}=this;return typeof v.plotY<"u"&&typeof v.plotX<"u"&&v.plotY>=0&&v.plotY<=(z?z.len:P.plotHeight)&&v.plotX>=0&&v.plotX<=(_?_.len:P.plotWidth)}drawTracker(){const v=this,P=v.options,_=P.trackByArea,z=[].concat(_?v.areaPath:v.graphPath),$=v.chart,j=$.pointer,et=$.renderer,ot=$.options.tooltip.snap,J=v.tracker,at=function(F){P.enableMouseTracking&&$.hoverSeries!==v&&v.onMouseOver()},W="rgba(192,192,192,"+(I?1e-4:.002)+")";J?J.attr({d:z}):v.graph&&(v.tracker=et.path(z).attr({visibility:v.visible?"inherit":"hidden",zIndex:2}).addClass(_?"highcharts-tracker-area":"highcharts-tracker-line").add(v.group),$.styledMode||v.tracker.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:W,fill:_?W:"none","stroke-width":v.graph.strokeWidth()+(_?0:2*ot)}),[v.tracker,v.markerGroup,v.dataLabelsGroup].forEach(function(F){F&&(F.addClass("highcharts-tracker").on("mouseover",at).on("mouseout",function(E){j.onTrackerMouseOut(E)}),P.cursor&&!$.styledMode&&F.css({cursor:P.cursor}),f&&F.on("touchstart",at))})),s(this,"afterDrawTracker")}addPoint(v,P,_,z,$){const j=this,et=j.options,ot=j.data,J=j.chart,at=j.xAxis,W=at&&at.hasNames&&at.names,F=et.data,E=j.xData;let X,U;P=o(P,!0);const nt={series:j};j.pointClass.prototype.applyOptions.apply(nt,[v]);const rt=nt.x;if(U=E.length,j.requireSorting&&rt<E[U-1])for(X=!0;U&&E[U-1]>rt;)U--;j.updateParallelArrays(nt,"splice",[U,0,0]),j.updateParallelArrays(nt,U),W&&nt.name&&(W[rt]=nt.name),F.splice(U,0,v),(X||j.processedData)&&(j.data.splice(U,0,null),j.processData()),et.legendType==="point"&&j.generatePoints(),_&&(ot[0]&&ot[0].remove?ot[0].remove(!1):(ot.shift(),j.updateParallelArrays(nt,"shift"),F.shift())),$!==!1&&s(j,"addPoint",{point:nt}),j.isDirty=!0,j.isDirtyData=!0,P&&J.redraw(z)}removePoint(v,P,_){const z=this,$=z.data,j=$[v],et=z.points,ot=z.chart,J=function(){et&&et.length===$.length&&et.splice(v,1),$.splice(v,1),z.options.data.splice(v,1),z.updateParallelArrays(j||{series:z},"splice",[v,1]),j&&j.destroy(),z.isDirty=!0,z.isDirtyData=!0,P&&ot.redraw()};w(_,ot),P=o(P,!0),j?j.firePointEvent("remove",null,J):J()}remove(v,P,_,z){const $=this,j=$.chart;function et(){$.destroy(z),j.isDirtyLegend=j.isDirtyBox=!0,j.linkSeries(z),o(v,!0)&&j.redraw(P)}_!==!1?s($,"remove",null,et):et()}update(v,P){v=u(v,this.userOptions),s(this,"update",{options:v});const _=this,z=_.chart,$=_.userOptions,j=_.initialType||_.type,et=z.options.plotOptions,ot=c[j].prototype,J=["group","markerGroup","dataLabelsGroup","transformGroup"],at=_.finishedAnimating&&{animation:!1},W={};let F,E,X=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],U=v.type||$.type||z.options.chart.type;const nt=!(this.hasDerivedData||U&&U!==this.type||typeof v.pointStart<"u"||typeof v.pointInterval<"u"||typeof v.relativeXValue<"u"||v.joinBy||v.mapData||_.hasOptionChanged("dataGrouping")||_.hasOptionChanged("pointStart")||_.hasOptionChanged("pointInterval")||_.hasOptionChanged("pointIntervalUnit")||_.hasOptionChanged("keys"));U=U||j,nt&&(X.push("data","isDirtyData","points","processedData","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","_hasPointLabels","clips","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX"),v.visible!==!1&&X.push("area","graph"),_.parallelArrays.forEach(function(ht){X.push(ht+"Data")}),v.data&&(v.dataSorting&&t(_.options.dataSorting,v.dataSorting),this.setData(v.data,!1))),v=B($,at,{index:typeof $.index>"u"?_.index:$.index,pointStart:o(et&&et.series&&et.series.pointStart,$.pointStart,_.xData[0])},!nt&&{data:_.options.data},v),nt&&v.data&&(v.data=_.options.data),X=J.concat(X),X.forEach(function(ht){X[ht]=_[ht],delete _[ht]});let rt=!1;if(c[U]){if(rt=U!==_.type,_.remove(!1,!1,!1,!0),rt)if(Object.setPrototypeOf)Object.setPrototypeOf(_,c[U].prototype);else{const ht=Object.hasOwnProperty.call(_,"hcEvents")&&_.hcEvents;for(E in ot)_[E]=void 0;t(_,c[U].prototype),ht?_.hcEvents=ht:delete _.hcEvents}}else i(17,!0,z,{missingModuleFor:U});if(X.forEach(function(ht){_[ht]=X[ht]}),_.init(z,v),nt&&this.points){if(F=_.options,F.visible===!1)W.graphic=1,W.dataLabel=1;else if(!_._hasPointLabels){const{marker:ht,dataLabels:ft}=F,mt=$.marker||{};ht&&(ht.enabled===!1||mt.symbol!==ht.symbol||mt.height!==ht.height||mt.width!==ht.width)&&(W.graphic=1),ft&&ft.enabled===!1&&(W.dataLabel=1)}for(const ht of this.points)ht&&ht.series&&(ht.resolveColor(),Object.keys(W).length&&ht.destroyElements(W),F.showInLegend===!1&&ht.legendItem&&z.legend.destroyItem(ht))}_.initialType=j,z.linkSeries(),rt&&_.linkedSeries.length&&(_.isDirtyData=!0),s(this,"afterUpdate"),o(P,!0)&&z.redraw(nt?void 0:!1)}setName(v){this.name=this.options.name=this.userOptions.name=v,this.chart.isDirtyLegend=!0}hasOptionChanged(v){const P=this.chart,_=this.options[v],z=P.options.plotOptions,$=this.userOptions[v];return $?_!==$:_!==o(z&&z[this.type]&&z[this.type][v],z&&z.series&&z.series[v],_)}onMouseOver(){const v=this,P=v.chart,_=P.hoverSeries;P.pointer.setHoverChartIndex(),_&&_!==v&&_.onMouseOut(),v.options.events.mouseOver&&s(v,"mouseOver"),v.setState("hover"),P.hoverSeries=v}onMouseOut(){const v=this,P=v.options,_=v.chart,z=_.tooltip,$=_.hoverPoint;_.hoverSeries=null,$&&$.onMouseOut(),v&&P.events.mouseOut&&s(v,"mouseOut"),z&&!v.stickyTracking&&(!z.shared||v.noSharedTooltip)&&z.hide(),_.series.forEach(function(j){j.setState("",!0)})}setState(v,P){const _=this,z=_.options,$=_.graph,j=z.inactiveOtherPoints,et=z.states,ot=o(et[v||"normal"]&&et[v||"normal"].animation,_.chart.options.chart.animation);let J,at=z.lineWidth,W=0,F=z.opacity;if(v=v||"",_.state!==v&&([_.group,_.markerGroup,_.dataLabelsGroup].forEach(function(E){E&&(_.state&&E.removeClass("highcharts-series-"+_.state),v&&E.addClass("highcharts-series-"+v))}),_.state=v,!_.chart.styledMode)){if(et[v]&&et[v].enabled===!1)return;if(v&&(at=et[v].lineWidth||at+(et[v].lineWidthPlus||0),F=o(et[v].opacity,F)),$&&!$.dashstyle&&k(at))for(J={"stroke-width":at},$.animate(J,ot);_["zone-graph-"+W];)_["zone-graph-"+W].animate(J,ot),W=W+1;j||[_.group,_.markerGroup,_.dataLabelsGroup,_.labelBySeries].forEach(function(E){E&&E.animate({opacity:F},ot)})}P&&j&&_.points&&_.setAllPointsToState(v||void 0)}setAllPointsToState(v){this.points.forEach(function(P){P.setState&&P.setState(v)})}setVisible(v,P){const _=this,z=_.chart,$=z.options.chart.ignoreHiddenSeries,j=_.visible;_.visible=v=_.options.visible=_.userOptions.visible=typeof v>"u"?!j:v;const et=v?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(function(ot){_[ot]&&_[ot][et]()}),(z.hoverSeries===_||(z.hoverPoint&&z.hoverPoint.series)===_)&&_.onMouseOut(),_.legendItem&&z.legend.colorizeItem(_,v),_.isDirty=!0,_.options.stacking&&z.series.forEach(function(ot){ot.options.stacking&&ot.visible&&(ot.isDirty=!0)}),_.linkedSeries.forEach(function(ot){ot.setVisible(v,!1)}),$&&(z.isDirtyBox=!0),s(_,et),P!==!1&&z.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(v){const P=this;P.selected=v=this.options.selected=typeof v>"u"?!P.selected:v,P.checkbox&&(P.checkbox.checked=v),s(P,v?"select":"unselect")}shouldShowTooltip(v,P,_={}){return _.series=this,_.visiblePlotOnly=!0,this.chart.isInsidePlot(v,P,_)}drawLegendSymbol(v,P){var _;(_=Z[this.options.legendSymbol||"rectangle"])===null||_===void 0||_.call(this,v,P)}}return R.defaultOptions=Q,R.types=G.seriesTypes,R.registerType=G.registerSeriesType,t(R.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,cropShoulder:1,directTouch:!1,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:st,requireSorting:!0,sorted:!0}),G.series=R,R}),ct(A,"Core/Chart/Chart.js",[A["Core/Animation/AnimationUtilities.js"],A["Core/Axis/Axis.js"],A["Core/Defaults.js"],A["Core/Templating.js"],A["Core/Foundation.js"],A["Core/Globals.js"],A["Core/Renderer/RendererRegistry.js"],A["Core/Series/Series.js"],A["Core/Series/SeriesRegistry.js"],A["Core/Renderer/SVG/SVGRenderer.js"],A["Core/Time.js"],A["Core/Utilities.js"],A["Core/Renderer/HTML/AST.js"]],function(q,Y,tt,it,Z,st,Q,G,K,O,S,w,D){const{animate:b,animObject:f,setAnimation:I}=q,{defaultOptions:p,defaultTime:c}=tt,{numberFormat:y}=it,{registerEventOptions:T}=Z,{charts:m,doc:h,marginNames:x,svg:l,win:u}=st,{seriesTypes:r}=K,{addEvent:i,attr:t,createElement:e,css:s,defined:n,diffObjects:a,discardElement:M,erase:g,error:k,extend:C,find:B,fireEvent:L,getStyle:o,isArray:d,isNumber:N,isObject:V,isString:R,merge:H,objectEach:v,pick:P,pInt:_,relativeLength:z,removeEvent:$,splat:j,syncTimeout:et,uniqueKey:ot}=w;class J{static chart(W,F,E){return new J(W,F,E)}constructor(W,F,E){this.axes=void 0,this.axisOffset=void 0,this.zoomBool=void 0,this.bounds=void 0,this.chartHeight=void 0,this.chartWidth=void 0,this.clipBox=void 0,this.colorCounter=void 0,this.container=void 0,this.eventOptions=void 0,this.index=void 0,this.isResizing=void 0,this.labelCollectors=void 0,this.margin=void 0,this.numberFormatter=void 0,this.options=void 0,this.plotBox=void 0,this.plotHeight=void 0,this.plotLeft=void 0,this.plotTop=void 0,this.plotWidth=void 0,this.pointCount=void 0,this.pointer=void 0,this.renderer=void 0,this.renderTo=void 0,this.series=void 0,this.sharedClips={},this.spacing=void 0,this.spacingBox=void 0,this.symbolCounter=void 0,this.time=void 0,this.titleOffset=void 0,this.userOptions=void 0,this.xAxis=void 0,this.yAxis=void 0,this.zooming=void 0,this.getArgs(W,F,E)}getArgs(W,F,E){R(W)||W.nodeName?(this.renderTo=W,this.init(F,E)):this.init(W,F)}setZoomOptions(){console.log("setZoomOptions");const W=this,F=W.options.chart,E=F.zooming;W.zooming=Object.assign(Object.assign({},E),{type:P(F.zoomType,E.type),key:P(F.zoomKey,E.key),pinchType:P(F.pinchType,E.pinchType),singleTouch:P(F.zoomBySingleTouch,E.singleTouch,!1),resetButton:H(E.resetButton,F.resetZoomButton)})}init(W,F){L(this,"init",{args:arguments},function(){const E=H(p,W),X=E.chart;this.userOptions=C({},W),this.margin=[],this.spacing=[],this.bounds={h:{},v:{}},this.labelCollectors=[],this.callback=F,this.isResizing=0,this.options=E,this.axes=[],this.series=[],this.time=W.time&&Object.keys(W.time).length?new S(W.time):st.time,this.numberFormatter=X.numberFormatter||y,this.styledMode=X.styledMode,this.hasCartesianSeries=X.showAxes;const U=this;U.index=m.length,m.push(U),st.chartCount++,T(this,X),U.xAxis=[],U.yAxis=[],U.pointCount=U.colorCounter=U.symbolCounter=0,this.setZoomOptions(),L(U,"afterInit"),U.firstRender()})}initSeries(W){const F=this,E=F.options.chart,X=W.type||E.type,U=r[X];U||k(17,!0,F,{missingModuleFor:X});const nt=new U;return typeof nt.init=="function"&&nt.init(F,W),nt}setSeriesData(){this.getSeriesOrderByLinks().forEach(function(W){!W.points&&!W.data&&W.enabledDataSorting&&W.setData(W.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(W,F){return W.linkedSeries.length||F.linkedSeries.length?F.linkedSeries.length-W.linkedSeries.length:0})}orderItems(W,F=0){const E=this[W],X=this.options[W]=j(this.options[W]).slice(),U=this.userOptions[W]=this.userOptions[W]?j(this.userOptions[W]).slice():[];if(this.hasRendered&&(X.splice(F),U.splice(F)),E)for(let nt=F,rt=E.length;nt<rt;++nt){const ht=E[nt];ht&&(ht.index=nt,ht instanceof G&&(ht.name=ht.getName()),ht.options.isInternal||(X[nt]=ht.options,U[nt]=ht.userOptions))}}isInsidePlot(W,F,E={}){const{inverted:X,plotBox:U,plotLeft:nt,plotTop:rt,scrollablePlotBox:ht}=this;let ft=0,mt=0;E.visiblePlotOnly&&this.scrollingContainer&&({scrollLeft:ft,scrollTop:mt}=this.scrollingContainer);const gt=E.series,xt=E.visiblePlotOnly&&ht||U,bt=E.inverted?F:W,Tt=E.inverted?W:F,vt={x:bt,y:Tt,isInsidePlot:!0,options:E};if(!E.ignoreX){const yt=gt&&(X&&!this.polar?gt.yAxis:gt.xAxis)||{pos:nt,len:1/0},Ct=E.paneCoordinates?yt.pos+bt:nt+bt;Ct>=Math.max(ft+nt,yt.pos)&&Ct<=Math.min(ft+nt+xt.width,yt.pos+yt.len)||(vt.isInsidePlot=!1)}if(!E.ignoreY&&vt.isInsidePlot){const yt=!X&&E.axis&&!E.axis.isXAxis&&E.axis||gt&&(X?gt.xAxis:gt.yAxis)||{pos:rt,len:1/0},Ct=E.paneCoordinates?yt.pos+Tt:rt+Tt;Ct>=Math.max(mt+rt,yt.pos)&&Ct<=Math.min(mt+rt+xt.height,yt.pos+yt.len)||(vt.isInsidePlot=!1)}return L(this,"afterIsInsidePlot",vt),vt.isInsidePlot}redraw(W){L(this,"beforeRedraw");const F=this,E=F.hasCartesianSeries?F.axes:F.colorAxis||[],X=F.series,U=F.pointer,nt=F.legend,rt=F.userOptions.legend,ht=F.renderer,ft=ht.isHidden(),mt=[];let gt,xt,bt,Tt=F.isDirtyBox,vt=F.isDirtyLegend,yt;for(ht.rootFontSize=ht.boxWrapper.getStyle("font-size"),F.setResponsive&&F.setResponsive(!1),I(F.hasRendered?W:!1,F),ft&&F.temporaryDisplay(),F.layOutTitles(!1),bt=X.length;bt--;)if(yt=X[bt],(yt.options.stacking||yt.options.centerInCategory)&&(xt=!0,yt.isDirty)){gt=!0;break}if(gt)for(bt=X.length;bt--;)yt=X[bt],yt.options.stacking&&(yt.isDirty=!0);X.forEach(function(Ct){Ct.isDirty&&(Ct.options.legendType==="point"?(typeof Ct.updateTotals=="function"&&Ct.updateTotals(),vt=!0):rt&&(rt.labelFormatter||rt.labelFormat)&&(vt=!0)),Ct.isDirtyData&&L(Ct,"updatedData")}),vt&&nt&&nt.options.enabled&&(nt.render(),F.isDirtyLegend=!1),xt&&F.getStacks(),E.forEach(function(Ct){Ct.updateNames(),Ct.setScale()}),F.getMargins(),E.forEach(function(Ct){Ct.isDirty&&(Tt=!0)}),E.forEach(function(Ct){const Ot=Ct.min+","+Ct.max;Ct.extKey!==Ot&&(Ct.extKey=Ot,mt.push(function(){L(Ct,"afterSetExtremes",C(Ct.eventArgs,Ct.getExtremes())),delete Ct.eventArgs})),(Tt||xt)&&Ct.redraw()}),Tt&&F.drawChartBox(),L(F,"predraw"),X.forEach(function(Ct){(Tt||Ct.isDirty)&&Ct.visible&&Ct.redraw(),Ct.isDirtyData=!1}),U&&U.reset(!0),ht.draw(),L(F,"redraw"),L(F,"render"),ft&&F.temporaryDisplay(!0),mt.forEach(function(Ct){Ct.call()})}get(W){const F=this.series;function E(U){return U.id===W||U.options&&U.options.id===W}let X=B(this.axes,E)||B(this.series,E);for(let U=0;!X&&U<F.length;U++)X=B(F[U].points||[],E);return X}getAxes(){const W=this.options;L(this,"getAxes");for(const F of["xAxis","yAxis"]){const E=W[F]=j(W[F]||{});for(const X of E)new Y(this,X,F)}L(this,"afterGetAxes")}getSelectedPoints(){return this.series.reduce((W,F)=>(F.getPointsCollection().forEach(E=>{P(E.selectedStaging,E.selected)&&W.push(E)}),W),[])}getSelectedSeries(){return this.series.filter(function(W){return W.selected})}setTitle(W,F,E){this.applyDescription("title",W),this.applyDescription("subtitle",F),this.applyDescription("caption",void 0),this.layOutTitles(E)}applyDescription(W,F){const E=this,X=this.options[W]=H(this.options[W],F);let U=this[W];U&&F&&(this[W]=U=U.destroy()),X&&!U&&(U=this.renderer.text(X.text,0,0,X.useHTML).attr({align:X.align,class:"highcharts-"+W,zIndex:X.zIndex||4}).add(),U.update=function(nt,rt){E.applyDescription(W,nt),E.layOutTitles(rt)},this.styledMode||U.css(C(W==="title"?{fontSize:this.options.isStock?"1em":"1.2em"}:{},X.style)),this[W]=U)}layOutTitles(W=!0){const F=[0,0,0],E=this.renderer,X=this.spacingBox;["title","subtitle","caption"].forEach(function(nt){const rt=this[nt],ht=this.options[nt],ft=ht.verticalAlign||"top",mt=nt==="title"?ft==="top"?-3:0:ft==="top"?F[0]+2:0;if(rt){rt.css({width:(ht.width||X.width+(ht.widthAdjust||0))+"px"});const gt=E.fontMetrics(rt).b,xt=Math.round(rt.getBBox(ht.useHTML).height);rt.align(C({y:ft==="bottom"?gt:mt+gt,height:xt},ht),!1,"spacingBox"),ht.floating||(ft==="top"?F[0]=Math.ceil(F[0]+xt):ft==="bottom"&&(F[2]=Math.ceil(F[2]+xt)))}},this),F[0]&&(this.options.title.verticalAlign||"top")==="top"&&(F[0]+=this.options.title.margin),F[2]&&this.options.caption.verticalAlign==="bottom"&&(F[2]+=this.options.caption.margin);const U=!this.titleOffset||this.titleOffset.join(",")!==F.join(",");this.titleOffset=F,L(this,"afterLayOutTitles"),!this.isDirtyBox&&U&&(this.isDirtyBox=this.isDirtyLegend=U,this.hasRendered&&W&&this.isDirtyBox&&this.redraw())}getContainerBox(){return{width:o(this.renderTo,"width",!0)||0,height:o(this.renderTo,"height",!0)||0}}getChartSize(){const W=this,F=W.options.chart,E=F.width,X=F.height,U=W.getContainerBox();W.chartWidth=Math.max(0,E||U.width||600),W.chartHeight=Math.max(0,z(X,W.chartWidth)||(U.height>1?U.height:400)),W.containerBox=U}temporaryDisplay(W){let F=this.renderTo,E;if(W)for(;F&&F.style;)F.hcOrigStyle&&(s(F,F.hcOrigStyle),delete F.hcOrigStyle),F.hcOrigDetached&&(h.body.removeChild(F),F.hcOrigDetached=!1),F=F.parentNode;else for(;F&&F.style&&(!h.body.contains(F)&&!F.parentNode&&(F.hcOrigDetached=!0,h.body.appendChild(F)),(o(F,"display",!1)==="none"||F.hcOricDetached)&&(F.hcOrigStyle={display:F.style.display,height:F.style.height,overflow:F.style.overflow},E={display:"block",overflow:"hidden"},F!==this.renderTo&&(E.height=0),s(F,E),F.offsetWidth||F.style.setProperty("display","block","important")),F=F.parentNode,F!==h.body););}setClassName(W){this.container.className="highcharts-container "+(W||"")}getContainer(){const W=this,F=W.options,E=F.chart,X="data-highcharts-chart",U=ot();let nt,rt=W.renderTo;rt||(W.renderTo=rt=E.renderTo),R(rt)&&(W.renderTo=rt=h.getElementById(rt)),rt||k(13,!0,W);const ht=_(t(rt,X));N(ht)&&m[ht]&&m[ht].hasRendered&&m[ht].destroy(),t(rt,X,W.index),rt.innerHTML=D.emptyHTML,!E.skipClone&&!rt.offsetWidth&&W.temporaryDisplay(),W.getChartSize();const ft=W.chartWidth,mt=W.chartHeight;s(rt,{overflow:"hidden"}),W.styledMode||(nt=C({position:"relative",overflow:"hidden",width:ft+"px",height:mt+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none"},E.style||{}));const gt=e("div",{id:U},nt,rt);W.container=gt,W._cursor=gt.style.cursor;const xt=E.renderer||!l?Q.getRendererType(E.renderer):O;if(W.renderer=new xt(gt,ft,mt,void 0,E.forExport,F.exporting&&F.exporting.allowHTML,W.styledMode),W.containerBox=W.getContainerBox(),I(void 0,W),W.setClassName(E.className),!W.styledMode)W.renderer.setStyle(E.style);else for(const bt in F.defs)this.renderer.definition(F.defs[bt]);W.renderer.chartIndex=W.index,L(this,"afterGetContainer")}getMargins(W){const{spacing:F,margin:E,titleOffset:X}=this;this.resetMargins(),X[0]&&!n(E[0])&&(this.plotTop=Math.max(this.plotTop,X[0]+F[0])),X[2]&&!n(E[2])&&(this.marginBottom=Math.max(this.marginBottom,X[2]+F[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(E,F),L(this,"getMargins"),W||this.getAxisMargins()}getAxisMargins(){const W=this,F=W.axisOffset=[0,0,0,0],E=W.colorAxis,X=W.margin,U=function(nt){nt.forEach(function(rt){rt.visible&&rt.getOffset()})};W.hasCartesianSeries?U(W.axes):E&&E.length&&U(E),x.forEach(function(nt,rt){n(X[rt])||(W[nt]+=F[rt])}),W.setChartSize()}getOptions(){return a(this.userOptions,p)}reflow(W){const F=this,E=F.options.chart,X=n(E.width)&&n(E.height),U=F.containerBox,nt=F.getContainerBox();delete F.pointer.chartPosition,!X&&!F.isPrinting&&U&&nt.width&&((nt.width!==U.width||nt.height!==U.height)&&(w.clearTimeout(F.reflowTimeout),F.reflowTimeout=et(function(){F.container&&F.setSize(void 0,void 0,!1)},W?100:0)),F.containerBox=nt)}setReflow(){const W=this,F=E=>{var X;!((X=W.options)===null||X===void 0)&&X.chart.reflow&&W.hasLoaded&&W.reflow(E)};if(typeof ResizeObserver=="function")new ResizeObserver(F).observe(W.renderTo);else{const E=i(u,"resize",F);i(this,"destroy",E)}}setSize(W,F,E){const X=this,U=X.renderer;X.isResizing+=1,I(E,X);const nt=U.globalAnimation;X.oldChartHeight=X.chartHeight,X.oldChartWidth=X.chartWidth,typeof W<"u"&&(X.options.chart.width=W),typeof F<"u"&&(X.options.chart.height=F),X.getChartSize(),X.styledMode||(nt?b:s)(X.container,{width:X.chartWidth+"px",height:X.chartHeight+"px"},nt),X.setChartSize(!0),U.setSize(X.chartWidth,X.chartHeight,nt),X.axes.forEach(function(rt){rt.isDirty=!0,rt.setScale()}),X.isDirtyLegend=!0,X.isDirtyBox=!0,X.layOutTitles(),X.getMargins(),X.redraw(nt),X.oldChartHeight=null,L(X,"resize"),et(function(){X&&L(X,"endResize",null,function(){X.isResizing-=1})},f(nt).duration)}setChartSize(W){const F=this,E=F.inverted,X=F.renderer,U=F.chartWidth,nt=F.chartHeight,rt=F.options.chart,ht=F.spacing,ft=F.clipOffset;let mt,gt,xt,bt;F.plotLeft=mt=Math.round(F.plotLeft),F.plotTop=gt=Math.round(F.plotTop),F.plotWidth=xt=Math.max(0,Math.round(U-mt-F.marginRight)),F.plotHeight=bt=Math.max(0,Math.round(nt-gt-F.marginBottom)),F.plotSizeX=E?bt:xt,F.plotSizeY=E?xt:bt,F.plotBorderWidth=rt.plotBorderWidth||0,F.spacingBox=X.spacingBox={x:ht[3],y:ht[0],width:U-ht[3]-ht[1],height:nt-ht[0]-ht[2]},F.plotBox=X.plotBox={x:mt,y:gt,width:xt,height:bt};const Tt=2*Math.floor(F.plotBorderWidth/2),vt=Math.ceil(Math.max(Tt,ft[3])/2),yt=Math.ceil(Math.max(Tt,ft[0])/2);F.clipBox={x:vt,y:yt,width:Math.floor(F.plotSizeX-Math.max(Tt,ft[1])/2-vt),height:Math.max(0,Math.floor(F.plotSizeY-Math.max(Tt,ft[2])/2-yt))},W||(F.axes.forEach(function(Ct){Ct.setAxisSize(),Ct.setAxisTranslation()}),X.alignElements()),L(F,"afterSetChartSize",{skipAxes:W})}resetMargins(){L(this,"resetMargins");const W=this,F=W.options.chart;["margin","spacing"].forEach(function(X){const U=F[X],nt=V(U)?U:[U,U,U,U];["Top","Right","Bottom","Left"].forEach(function(rt,ht){W[X][ht]=P(F[X+rt],nt[ht])})}),x.forEach(function(E,X){W[E]=P(W.margin[X],W.spacing[X])}),W.axisOffset=[0,0,0,0],W.clipOffset=[0,0,0,0]}drawChartBox(){const W=this,F=W.options.chart,E=W.renderer,X=W.chartWidth,U=W.chartHeight,nt=W.styledMode,rt=W.plotBGImage,ht=F.backgroundColor,ft=F.plotBackgroundColor,mt=F.plotBackgroundImage,gt=W.plotLeft,xt=W.plotTop,bt=W.plotWidth,Tt=W.plotHeight,vt=W.plotBox,yt=W.clipRect,Ct=W.clipBox;let Ot=W.chartBackground,It=W.plotBackground,te=W.plotBorder,ee,At,Zt,Ft="animate";Ot||(W.chartBackground=Ot=E.rect().addClass("highcharts-background").add(),Ft="attr"),nt?ee=At=Ot.strokeWidth():(ee=F.borderWidth||0,At=ee+(F.shadow?8:0),Zt={fill:ht||"none"},(ee||Ot["stroke-width"])&&(Zt.stroke=F.borderColor,Zt["stroke-width"]=ee),Ot.attr(Zt).shadow(F.shadow)),Ot[Ft]({x:At/2,y:At/2,width:X-At-ee%2,height:U-At-ee%2,r:F.borderRadius}),Ft="animate",It||(Ft="attr",W.plotBackground=It=E.rect().addClass("highcharts-plot-background").add()),It[Ft](vt),nt||(It.attr({fill:ft||"none"}).shadow(F.plotShadow),mt&&(rt?(mt!==rt.attr("href")&&rt.attr("href",mt),rt.animate(vt)):W.plotBGImage=E.image(mt,gt,xt,bt,Tt).add())),yt?yt.animate({width:Ct.width,height:Ct.height}):W.clipRect=E.clipRect(Ct),Ft="animate",te||(Ft="attr",W.plotBorder=te=E.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),nt||te.attr({stroke:F.plotBorderColor,"stroke-width":F.plotBorderWidth||0,fill:"none"}),te[Ft](te.crisp({x:gt,y:xt,width:bt,height:Tt},-te.strokeWidth())),W.isDirtyBox=!1,L(this,"afterDrawChartBox")}propFromSeries(){const W=this,F=W.options.chart,E=W.options.series;let X,U,nt;["inverted","angular","polar"].forEach(function(rt){for(U=r[F.type],nt=F[rt]||U&&U.prototype[rt],X=E&&E.length;!nt&&X--;)U=r[E[X].type],U&&U.prototype[rt]&&(nt=!0);W[rt]=nt})}linkSeries(W){const F=this,E=F.series;E.forEach(function(X){X.linkedSeries.length=0}),E.forEach(function(X){let U=X.options.linkedTo;R(U)&&(U===":previous"?U=F.series[X.index-1]:U=F.get(U),U&&U.linkedParent!==X&&(U.linkedSeries.push(X),X.linkedParent=U,U.enabledDataSorting&&X.setDataSortingOptions(),X.visible=P(X.options.visible,U.options.visible,X.visible)))}),L(this,"afterLinkSeries",{isUpdating:W})}renderSeries(){this.series.forEach(function(W){W.translate(),W.render()})}render(){const W=this,F=W.axes,E=W.colorAxis,X=W.renderer,U=function(gt){gt.forEach(function(xt){xt.visible&&xt.render()})};let nt=0;W.setTitle(),L(W,"beforeMargins"),W.getStacks&&W.getStacks(),W.getMargins(!0),W.setChartSize();const rt=W.plotWidth;F.some(function(gt){if(gt.horiz&&gt.visible&&gt.options.labels.enabled&&gt.series.length)return nt=21,!0}),W.plotHeight=Math.max(W.plotHeight-nt,0);const ht=W.plotHeight;F.forEach(function(gt){gt.setScale()}),W.getAxisMargins();const ft=rt/W.plotWidth>1.1,mt=ht/W.plotHeight>1.05;(ft||mt)&&(F.forEach(function(gt){(gt.horiz&&ft||!gt.horiz&&mt)&&gt.setTickInterval(!0)}),W.getMargins()),W.drawChartBox(),W.hasCartesianSeries?U(F):E&&E.length&&U(E),W.seriesGroup||(W.seriesGroup=X.g("series-group").attr({zIndex:3}).shadow(W.options.chart.seriesGroupShadow).add()),W.renderSeries(),W.addCredits(),W.setResponsive&&W.setResponsive(),W.hasRendered=!0}addCredits(W){const F=this,E=H(!0,this.options.credits,W);E.enabled&&!this.credits&&(this.credits=this.renderer.text(E.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){E.href&&(u.location.href=E.href)}).attr({align:E.position.align,zIndex:8}),F.styledMode||this.credits.css(E.style),this.credits.add().align(E.position),this.credits.update=function(X){F.credits=F.credits.destroy(),F.addCredits(X)})}destroy(){const W=this,F=W.axes,E=W.series,X=W.container,U=X&&X.parentNode;let nt;for(L(W,"destroy"),W.renderer.forExport?g(m,W):m[W.index]=void 0,st.chartCount--,W.renderTo.removeAttribute("data-highcharts-chart"),$(W),nt=F.length;nt--;)F[nt]=F[nt].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),nt=E.length;nt--;)E[nt]=E[nt].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach(function(rt){const ht=W[rt];ht&&ht.destroy&&(W[rt]=ht.destroy())}),X&&(X.innerHTML=D.emptyHTML,$(X),U&&M(X)),v(W,function(rt,ht){delete W[ht]})}firstRender(){const W=this,F=W.options;W.getContainer(),W.resetMargins(),W.setChartSize(),W.propFromSeries(),W.getAxes();const E=d(F.series)?F.series:[];F.series=[],E.forEach(function(X){W.initSeries(X)}),W.linkSeries(),W.setSeriesData(),L(W,"beforeRender"),W.render(),W.pointer.getChartPosition(),!W.renderer.imgCount&&!W.hasLoaded&&W.onload(),W.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(W){W&&typeof this.index<"u"&&W.apply(this,[this])},this),L(this,"load"),L(this,"render"),n(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){const{options:W,title:F}=this;W&&!this.accessibility&&(this.renderer.boxWrapper.attr({role:"img","aria-label":(F&&F.element.textContent||"").replace(/</g,"&lt;")}),W.accessibility&&W.accessibility.enabled===!1||k('Highcharts warning: Consider including the "accessibility.js" module to make your chart more usable for people with disabilities. Set the "accessibility.enabled" option to false to remove this warning. See https://www.highcharts.com/docs/accessibility/accessibility-module.',!1,this))}addSeries(W,F,E){const X=this;let U;return W&&(F=P(F,!0),L(X,"addSeries",{options:W},function(){U=X.initSeries(W),X.isDirtyLegend=!0,X.linkSeries(),U.enabledDataSorting&&U.setData(W.data,!1),L(X,"afterAddSeries",{series:U}),F&&X.redraw(E)})),U}addAxis(W,F,E,X){return this.createAxis(F?"xAxis":"yAxis",{axis:W,redraw:E,animation:X})}addColorAxis(W,F,E){return this.createAxis("colorAxis",{axis:W,redraw:F,animation:E})}createAxis(W,F){const E=new Y(this,F.axis,W);return P(F.redraw,!0)&&this.redraw(F.animation),E}showLoading(W){const F=this,E=F.options,X=E.loading,U=function(){nt&&s(nt,{left:F.plotLeft+"px",top:F.plotTop+"px",width:F.plotWidth+"px",height:F.plotHeight+"px"})};let nt=F.loadingDiv,rt=F.loadingSpan;nt||(F.loadingDiv=nt=e("div",{className:"highcharts-loading highcharts-loading-hidden"},null,F.container)),rt||(F.loadingSpan=rt=e("span",{className:"highcharts-loading-inner"},null,nt),i(F,"redraw",U)),nt.className="highcharts-loading",D.setElementHTML(rt,P(W,E.lang.loading,"")),F.styledMode||(s(nt,C(X.style,{zIndex:10})),s(rt,X.labelStyle),F.loadingShown||(s(nt,{opacity:0,display:""}),b(nt,{opacity:X.style.opacity||.5},{duration:X.showDuration||0}))),F.loadingShown=!0,U()}hideLoading(){const W=this.options,F=this.loadingDiv;F&&(F.className="highcharts-loading highcharts-loading-hidden",this.styledMode||b(F,{opacity:0},{duration:W.loading.hideDuration||100,complete:function(){s(F,{display:"none"})}})),this.loadingShown=!1}update(W,F,E,X){const U=this,nt={credits:"addCredits",title:"setTitle",subtitle:"setSubtitle",caption:"setCaption"},rt=W.isResponsiveOptions,ht=[];let ft,mt,gt;L(U,"update",{options:W}),rt||U.setResponsive(!1,!0),W=a(W,U.options),U.userOptions=H(U.userOptions,W);const xt=W.chart;xt&&(H(!0,U.options.chart,xt),this.setZoomOptions(),"className"in xt&&U.setClassName(xt.className),("inverted"in xt||"polar"in xt||"type"in xt)&&(U.propFromSeries(),ft=!0),"alignTicks"in xt&&(ft=!0),"events"in xt&&T(this,xt),v(xt,function(vt,yt){U.propsRequireUpdateSeries.indexOf("chart."+yt)!==-1&&(mt=!0),U.propsRequireDirtyBox.indexOf(yt)!==-1&&(U.isDirtyBox=!0),U.propsRequireReflow.indexOf(yt)!==-1&&(rt?U.isDirtyBox=!0:gt=!0)}),!U.styledMode&&xt.style&&U.renderer.setStyle(U.options.chart.style||{})),!U.styledMode&&W.colors&&(this.options.colors=W.colors),W.time&&(this.time===c&&(this.time=new S(W.time)),H(!0,U.options.time,W.time)),v(W,function(vt,yt){U[yt]&&typeof U[yt].update=="function"?U[yt].update(vt,!1):typeof U[nt[yt]]=="function"?U[nt[yt]](vt):yt!=="colors"&&U.collectionsWithUpdate.indexOf(yt)===-1&&H(!0,U.options[yt],W[yt]),yt!=="chart"&&U.propsRequireUpdateSeries.indexOf(yt)!==-1&&(mt=!0)}),this.collectionsWithUpdate.forEach(function(vt){W[vt]&&(j(W[vt]).forEach(function(yt,Ct){const Ot=n(yt.id);let It;Ot&&(It=U.get(yt.id)),!It&&U[vt]&&(It=U[vt][P(yt.index,Ct)],It&&(Ot&&n(It.options.id)||It.options.isInternal)&&(It=void 0)),It&&It.coll===vt&&(It.update(yt,!1),E&&(It.touched=!0)),!It&&E&&U.collectionsWithInit[vt]&&(U.collectionsWithInit[vt][0].apply(U,[yt].concat(U.collectionsWithInit[vt][1]||[]).concat([!1])).touched=!0)}),E&&U[vt].forEach(function(yt){!yt.touched&&!yt.options.isInternal?ht.push(yt):delete yt.touched}))}),ht.forEach(function(vt){vt.chart&&vt.remove&&vt.remove(!1)}),ft&&U.axes.forEach(function(vt){vt.update({},!1)}),mt&&U.getSeriesOrderByLinks().forEach(function(vt){vt.chart&&vt.update({},!1)},this);const bt=xt&&xt.width,Tt=xt&&(R(xt.height)?z(xt.height,bt||U.chartWidth):xt.height);gt||N(bt)&&bt!==U.chartWidth||N(Tt)&&Tt!==U.chartHeight?U.setSize(bt,Tt,X):P(F,!0)&&U.redraw(X),L(U,"afterUpdate",{options:W,redraw:F,animation:X})}setSubtitle(W,F){this.applyDescription("subtitle",W),this.layOutTitles(F)}setCaption(W,F){this.applyDescription("caption",W),this.layOutTitles(F)}showResetZoom(){const W=this,F=p.lang,E=W.zooming.resetButton,X=E.theme,U=E.relativeTo==="chart"||E.relativeTo==="spacingBox"?null:"scrollablePlotBox";function nt(){W.zoomOut()}L(this,"beforeShowResetZoom",null,function(){W.resetZoomButton=W.renderer.button(F.resetZoom,null,null,nt,X).attr({align:E.position.align,title:F.resetZoomTitle}).addClass("highcharts-reset-zoom").add().align(E.position,!1,U)}),L(this,"afterShowResetZoom")}zoomOut(){L(this,"selection",{resetSelection:!0},this.zoom)}zoom(W){const F=this,E=F.pointer;let X=!1,U;!W||W.resetSelection?(F.axes.forEach(function(rt){U=rt.zoom()}),E.initiated=!1):W.xAxis.concat(W.yAxis).forEach(function(rt){const ht=rt.axis,ft=ht.isXAxis;(E[ft?"zoomX":"zoomY"]&&n(E.mouseDownX)&&n(E.mouseDownY)&&F.isInsidePlot(E.mouseDownX-F.plotLeft,E.mouseDownY-F.plotTop,{axis:ht})||!n(F.inverted?E.mouseDownX:E.mouseDownY))&&(U=ht.zoom(rt.min,rt.max),ht.displayBtn&&(X=!0))});const nt=F.resetZoomButton;X&&!nt?F.showResetZoom():!X&&V(nt)&&(F.resetZoomButton=nt.destroy()),U&&F.redraw(P(F.options.chart.animation,W&&W.animation,F.pointCount<100))}pan(W,F){const E=this,X=E.hoverPoints,U=typeof F=="object"?F:{enabled:F,type:"x"},nt=E.options.chart;nt&&nt.panning&&(nt.panning=U);const rt=U.type;let ht;L(this,"pan",{originalEvent:W},function(){X&&X.forEach(function(gt){gt.setState()});let ft=E.xAxis;rt==="xy"?ft=ft.concat(E.yAxis):rt==="y"&&(ft=E.yAxis);const mt={};ft.forEach(function(gt){if(!gt.options.panningEnabled||gt.options.isInternal)return;const xt=gt.horiz,bt=W[xt?"chartX":"chartY"],Tt=xt?"mouseDownX":"mouseDownY",vt=E[Tt],yt=gt.minPointOffset||0,Ct=gt.reversed&&!E.inverted||!gt.reversed&&E.inverted?-1:1,Ot=gt.getExtremes(),It=gt.toValue(vt-bt,!0)+yt*Ct,te=gt.toValue(vt+gt.len-bt,!0)-(yt*Ct||gt.isXAxis&&gt.pointRangePadding||0),ee=te<It,At=gt.hasVerticalPanning();let Zt=ee?te:It,Ft=ee?It:te,Jt=gt.panningState,de;At&&!gt.isXAxis&&(!Jt||Jt.isDirty)&&gt.series.forEach(function(Te){const ai=Te.getProcessedData(!0),Se=Te.getExtremes(ai.yData,!0);Jt||(Jt={startMin:Number.MAX_VALUE,startMax:-Number.MAX_VALUE}),N(Se.dataMin)&&N(Se.dataMax)&&(Jt.startMin=Math.min(P(Te.options.threshold,1/0),Se.dataMin,Jt.startMin),Jt.startMax=Math.max(P(Te.options.threshold,-1/0),Se.dataMax,Jt.startMax))});const be=Math.min(P(Jt&&Jt.startMin,Ot.dataMin),yt?Ot.min:gt.toValue(gt.toPixels(Ot.min)-gt.minPixelPadding)),ke=Math.max(P(Jt&&Jt.startMax,Ot.dataMax),yt?Ot.max:gt.toValue(gt.toPixels(Ot.max)+gt.minPixelPadding));gt.panningState=Jt,gt.isOrdinal||(de=be-Zt,de>0&&(Ft+=de,Zt=be),de=Ft-ke,de>0&&(Ft=ke,Zt-=de),gt.series.length&&Zt!==Ot.min&&Ft!==Ot.max&&Zt>=be&&Ft<=ke&&(gt.setExtremes(Zt,Ft,!1,!1,{trigger:"pan"}),!E.resetZoomButton&&Zt!==be&&Ft!==ke&&rt.match("y")&&(E.showResetZoom(),gt.displayBtn=!1),ht=!0),mt[Tt]=bt)}),v(mt,(gt,xt)=>{E[xt]=gt}),ht&&E.redraw(!1),s(E.container,{cursor:"move"})})}}return C(J.prototype,{callbacks:[],collectionsWithInit:{xAxis:[J.prototype.addAxis,[!0]],yAxis:[J.prototype.addAxis,[!1]],series:[J.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]}),J}),ct(A,"Extensions/ScrollablePlotArea.js",[A["Core/Animation/AnimationUtilities.js"],A["Core/Axis/Axis.js"],A["Core/Chart/Chart.js"],A["Core/Series/Series.js"],A["Core/Renderer/RendererRegistry.js"],A["Core/Utilities.js"]],function(q,Y,tt,it,Z,st){const{stop:Q}=q,{addEvent:G,createElement:K,defined:O,merge:S,pick:w}=st;G(tt,"afterSetChartSize",function(D){let b=this.options.chart.scrollablePlotArea,f=b&&b.minWidth,I=b&&b.minHeight,p,c,y;this.renderer.forExport||(f?(this.scrollablePixelsX=p=Math.max(0,f-this.chartWidth),p&&(this.scrollablePlotBox=this.renderer.scrollablePlotBox=S(this.plotBox),this.plotBox.width=this.plotWidth+=p,this.inverted?this.clipBox.height+=p:this.clipBox.width+=p,y={1:{name:"right",value:p}})):I&&(this.scrollablePixelsY=c=Math.max(0,I-this.chartHeight),O(c)&&(this.scrollablePlotBox=this.renderer.scrollablePlotBox=S(this.plotBox),this.plotBox.height=this.plotHeight+=c,this.inverted?this.clipBox.width+=c:this.clipBox.height+=c,y={2:{name:"bottom",value:c}})),y&&!D.skipAxes&&this.axes.forEach(function(T){y[T.side]?T.getPlotLinePath=function(){let m=y[T.side].name,h=y[T.side].value,x=this[m],l;return this[m]=x-h,l=Y.prototype.getPlotLinePath.apply(this,arguments),this[m]=x,l}:(T.setAxisSize(),T.setAxisTranslation())}))}),G(tt,"render",function(){this.scrollablePixelsX||this.scrollablePixelsY?(this.setUpScrolling&&this.setUpScrolling(),this.applyFixed()):this.fixedDiv&&this.applyFixed()}),tt.prototype.setUpScrolling=function(){const D={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};this.scrollablePixelsX&&(D.overflowX="auto"),this.scrollablePixelsY&&(D.overflowY="auto"),this.scrollingParent=K("div",{className:"highcharts-scrolling-parent"},{position:"relative"},this.renderTo),this.scrollingContainer=K("div",{className:"highcharts-scrolling"},D,this.scrollingParent);let b;G(this.scrollingContainer,"scroll",()=>{this.pointer&&(delete this.pointer.chartPosition,this.hoverPoint&&(b=this.hoverPoint),this.pointer.runPointActions(void 0,b,!0))}),this.innerContainer=K("div",{className:"highcharts-inner-container"},null,this.scrollingContainer),this.innerContainer.appendChild(this.container),this.setUpScrolling=null},tt.prototype.moveFixedElements=function(){let D=this.container,b=this.fixedRenderer,f=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-credits",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-reset-zoom",".highcharts-drillup-button",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"],I;this.scrollablePixelsX&&!this.inverted?I=".highcharts-yaxis":this.scrollablePixelsX&&this.inverted||this.scrollablePixelsY&&!this.inverted?I=".highcharts-xaxis":this.scrollablePixelsY&&this.inverted&&(I=".highcharts-yaxis"),I&&f.push(`${I}:not(.highcharts-radial-axis)`,`${I}-labels:not(.highcharts-radial-axis-labels)`),f.forEach(function(p){[].forEach.call(D.querySelectorAll(p),function(c){(c.namespaceURI===b.SVG_NS?b.box:b.box.parentNode).appendChild(c),c.style.pointerEvents="auto"})})},tt.prototype.applyFixed=function(){const D=!this.fixedDiv,b=this.options.chart,f=b.scrollablePlotArea,I=Z.getRendererType();let p,c,y;D?(this.fixedDiv=K("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(b.style&&b.style.zIndex||0)+2,top:0},null,!0),this.scrollingContainer&&this.scrollingContainer.parentNode.insertBefore(this.fixedDiv,this.scrollingContainer),this.renderTo.style.overflow="visible",this.fixedRenderer=p=new I(this.fixedDiv,this.chartWidth,this.chartHeight,this.options.chart.style),this.scrollableMask=p.path().attr({fill:this.options.chart.backgroundColor||"#fff","fill-opacity":w(f.opacity,.85),zIndex:-1}).addClass("highcharts-scrollable-mask").add(),G(this,"afterShowResetZoom",this.moveFixedElements),G(this,"afterApplyDrilldown",this.moveFixedElements),G(this,"afterLayOutTitles",this.moveFixedElements)):this.fixedRenderer.setSize(this.chartWidth,this.chartHeight),(this.scrollableDirty||D)&&(this.scrollableDirty=!1,this.moveFixedElements()),c=this.chartWidth+(this.scrollablePixelsX||0),y=this.chartHeight+(this.scrollablePixelsY||0),Q(this.container),this.container.style.width=c+"px",this.container.style.height=y+"px",this.renderer.boxWrapper.attr({width:c,height:y,viewBox:[0,0,c,y].join(" ")}),this.chartBackground.attr({width:c,height:y}),this.scrollingContainer.style.height=this.chartHeight+"px",D&&(f.scrollPositionX&&(this.scrollingContainer.scrollLeft=this.scrollablePixelsX*f.scrollPositionX),f.scrollPositionY&&(this.scrollingContainer.scrollTop=this.scrollablePixelsY*f.scrollPositionY));let T=this.axisOffset,m=this.plotTop-T[0]-1,h=this.plotLeft-T[3]-1,x=this.plotTop+this.plotHeight+T[2]+1,l=this.plotLeft+this.plotWidth+T[1]+1,u=this.plotLeft+this.plotWidth-(this.scrollablePixelsX||0),r=this.plotTop+this.plotHeight-(this.scrollablePixelsY||0),i;this.scrollablePixelsX?i=[["M",0,m],["L",this.plotLeft-1,m],["L",this.plotLeft-1,x],["L",0,x],["Z"],["M",u,m],["L",this.chartWidth,m],["L",this.chartWidth,x],["L",u,x],["Z"]]:this.scrollablePixelsY?i=[["M",h,0],["L",h,this.plotTop-1],["L",l,this.plotTop-1],["L",l,0],["Z"],["M",h,r],["L",h,this.chartHeight],["L",l,this.chartHeight],["L",l,r],["Z"]]:i=[["M",0,0]],this.redrawTrigger!=="adjustHeight"&&this.scrollableMask.attr({d:i})},G(Y,"afterInit",function(){this.chart.scrollableDirty=!0}),G(it,"show",function(){this.chart.scrollableDirty=!0})}),ct(A,"Core/Axis/Stacking/StackItem.js",[A["Core/Templating.js"],A["Core/Series/SeriesRegistry.js"],A["Core/Utilities.js"]],function(q,Y,tt){const{format:it}=q,{series:Z}=Y,{destroyObjectProperties:st,fireEvent:Q,isNumber:G,merge:K,pick:O}=tt;class S{constructor(D,b,f,I,p){const c=D.chart.inverted,y=D.reversed;this.axis=D;const T=this.isNegative=!!f!=!!y;this.options=b=b||{},this.x=I,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=p,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:b.align||(c?T?"left":"right":"center"),verticalAlign:b.verticalAlign||(c?"middle":T?"bottom":"top"),y:b.y,x:b.x},this.textAlign=b.textAlign||(c?T?"right":"left":"center")}destroy(){st(this,this.axis)}render(D){const b=this.axis.chart,f=this.options,I=f.format,p=I?it(I,this,b):f.formatter.call(this);if(this.label)this.label.attr({text:p,visibility:"hidden"});else{this.label=b.renderer.label(p,null,void 0,f.shape,void 0,void 0,f.useHTML,!1,"stack-labels");const c={r:f.borderRadius||0,text:p,padding:O(f.padding,5),visibility:"hidden"};b.styledMode||(c.fill=f.backgroundColor,c.stroke=f.borderColor,c["stroke-width"]=f.borderWidth,this.label.css(f.style||{})),this.label.attr(c),this.label.added||this.label.add(D)}this.label.labelrank=b.plotSizeY,Q(this,"afterRender")}setOffset(D,b,f,I,p,c){const{alignOptions:y,axis:T,label:m,options:h,textAlign:x}=this,l=T.chart,u=this.getStackBox({xOffset:D,width:b,boxBottom:f,boxTop:I,defaultX:p,xAxis:c}),{verticalAlign:r}=y;if(m&&u){const i=m.getBBox(),t=m.padding;let e=O(h.overflow,"justify")==="justify",s;y.x=h.x||0,y.y=h.y||0;const{x:n,y:a}=this.adjustStackPosition({labelBox:i,verticalAlign:r,textAlign:x});u.x-=n,u.y-=a,m.align(y,!1,u),s=l.isInsidePlot(m.alignAttr.x+y.x+n,m.alignAttr.y+y.y+a),s||(e=!1),e&&Z.prototype.justifyDataLabel.call(T,m,y,m.alignAttr,i,u),m.attr({x:m.alignAttr.x,y:m.alignAttr.y,rotation:h.rotation,rotationOriginX:i.width/2,rotationOriginY:i.height/2}),O(!e&&h.crop,!0)&&(s=G(m.x)&&G(m.y)&&l.isInsidePlot(m.x-t+m.width,m.y)&&l.isInsidePlot(m.x+t,m.y)),m[s?"show":"hide"]()}Q(this,"afterSetOffset",{xOffset:D,width:b})}adjustStackPosition({labelBox:D,verticalAlign:b,textAlign:f}){const I={bottom:0,middle:1,top:2,right:1,center:0,left:-1},p=I[b],c=I[f];return{x:D.width/2+D.width/2*c,y:D.height/2*p}}getStackBox(D){const b=this,f=this.axis,I=f.chart,{boxTop:p,defaultX:c,xOffset:y,width:T,boxBottom:m}=D,h=f.stacking.usePercentage?100:O(p,this.total,0),x=f.toPixels(h),l=D.xAxis||I.xAxis[0],u=O(c,l.translate(this.x))+y,r=f.toPixels(m||G(f.min)&&f.logarithmic&&f.logarithmic.lin2log(f.min)||0),i=Math.abs(x-r),t=I.inverted,e=b.isNegative;return t?{x:(e?x:x-i)-I.plotLeft,y:l.height-u-T,width:i,height:T}:{x:u+l.transB-I.plotLeft,y:(e?x-i:x)-I.plotTop,width:T,height:i}}}return S}),ct(A,"Core/Axis/Stacking/StackingAxis.js",[A["Core/Animation/AnimationUtilities.js"],A["Core/Axis/Axis.js"],A["Core/Series/SeriesRegistry.js"],A["Core/Axis/Stacking/StackItem.js"],A["Core/Utilities.js"]],function(q,Y,tt,it,Z){const{getDeferredAnimation:st}=q,{series:{prototype:Q}}=tt,{addEvent:G,correctFloat:K,defined:O,destroyObjectProperties:S,fireEvent:w,isArray:D,isNumber:b,objectEach:f,pick:I}=Z;function p(){const i=this,t=i.inverted;i.yAxis.forEach(e=>{e.stacking&&e.stacking.stacks&&e.hasVisibleSeries&&(e.stacking.oldStacks=e.stacking.stacks)}),i.series.forEach(e=>{const s=e.xAxis&&e.xAxis.options||{};e.options.stacking&&(e.visible===!0||i.options.chart.ignoreHiddenSeries===!1)&&(e.stackKey=[e.type,I(e.options.stack,""),t?s.top:s.left,t?s.height:s.width].join(","))})}function c(){const i=this.stacking;if(!i)return;const t=i.stacks;f(t,function(e,s){S(e),t[s]=null}),i&&i.stackTotalGroup&&i.stackTotalGroup.destroy()}function y(){this.coll==="yAxis"&&!this.stacking&&(this.stacking=new u(this))}function T(i,t,e,s){return!O(i)||i.x!==t||s&&i.stackKey!==s?i={x:t,index:0,key:s,stackKey:s}:i.index++,i.key=[e,t,i.index].join(","),i}function m(){const i=this,t=i.yAxis,e=i.stackKey,s=t.stacking.stacks,n=i.processedXData,a=i.options.stacking,M=i[a+"Stacker"];let g;M&&[e,"-"+e].forEach(k=>{let C=n.length,B,L,o;for(;C--;)B=n[C],g=i.getStackIndicator(g,B,i.index,k),L=s[k]&&s[k][B],o=L&&L.points[g.key],o&&M.call(i,o,L,C)})}function h(i,t,e){const s=t.total?100/t.total:0;i[0]=K(i[0]*s),i[1]=K(i[1]*s),this.stackedYData[e]=i[1]}function x(){const i=this.yAxis.stacking;this.options.centerInCategory&&(this.is("column")||this.is("columnrange"))&&!this.options.stacking&&this.chart.series.length>1?Q.setStackedPoints.call(this,"group"):i&&f(i.stacks,(t,e)=>{e.slice(-5)==="group"&&(f(t,s=>s.destroy()),delete i.stacks[e])})}function l(i){const t=this.chart,e=i||this.options.stacking;if(!e||this.visible!==!0&&t.options.chart.ignoreHiddenSeries!==!1)return;const s=this,n=s.processedXData,a=s.processedYData,M=[],g=a.length,k=s.options,C=k.threshold,B=I(k.startFromThreshold&&C,0),L=k.stack,o=i?`${s.type},${e}`:s.stackKey,d="-"+o,N=s.negStacks,V=e==="group"?t.yAxis[0]:s.yAxis,R=V.stacking.stacks,H=V.stacking.oldStacks;let v,P,_,z,$,j,et,ot,J;for(V.stacking.stacksTouched+=1,et=0;et<g;et++)ot=n[et],J=a[et],v=s.getStackIndicator(v,ot,s.index),j=v.key,P=N&&J<(B?0:C),$=P?d:o,R[$]||(R[$]={}),R[$][ot]||(H[$]&&H[$][ot]?(R[$][ot]=H[$][ot],R[$][ot].total=null):R[$][ot]=new it(V,V.options.stackLabels,!!P,ot,L)),_=R[$][ot],J!==null?(_.points[j]=_.points[s.index]=[I(_.cumulative,B)],O(_.cumulative)||(_.base=j),_.touched=V.stacking.stacksTouched,v.index>0&&s.singleStacks===!1&&(_.points[j][0]=_.points[s.index+","+ot+",0"][0])):_.points[j]=_.points[s.index]=null,e==="percent"?(z=P?o:d,N&&R[z]&&R[z][ot]?(z=R[z][ot],_.total=z.total=Math.max(z.total,_.total)+Math.abs(J)||0):_.total=K(_.total+(Math.abs(J)||0))):e==="group"?(D(J)&&(J=J[0]),J!==null&&(_.total=(_.total||0)+1)):_.total=K(_.total+(J||0)),e==="group"?_.cumulative=(_.total||1)-1:_.cumulative=K(I(_.cumulative,B)+(J||0)),J!==null&&(_.points[j].push(_.cumulative),M[et]=_.cumulative,_.hasValidPoints=!0);e==="percent"&&(V.stacking.usePercentage=!0),e!=="group"&&(this.stackedYData=M),V.stacking.oldStacks={}}class u{constructor(t){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=t}buildStacks(){const t=this,e=t.axis,s=e.series,n=e.options.reversedStacks,a=s.length;let M,g;for(t.usePercentage=!1,g=a;g--;)M=s[n?g:a-g-1],M.setStackedPoints(),M.setGroupedPoints();for(g=0;g<a;g++)s[g].modifyStacks();w(e,"afterBuildStacks")}cleanStacks(){const t=this;let e;t.oldStacks&&(e=t.stacks=t.oldStacks),f(e,function(s){f(s,function(n){n.cumulative=n.total})})}resetStacks(){f(this.stacks,t=>{f(t,(e,s)=>{b(e.touched)&&e.touched<this.stacksTouched?(e.destroy(),delete t[s]):(e.total=null,e.cumulative=null)})})}renderStackTotals(){const t=this,e=t.axis,s=e.chart,n=s.renderer,a=t.stacks,M=e.options.stackLabels&&e.options.stackLabels.animation,g=st(s,M||!1),k=t.stackTotalGroup=t.stackTotalGroup||n.g("stack-labels").attr({zIndex:6,opacity:0}).add();k.translate(s.plotLeft,s.plotTop),f(a,function(C){f(C,function(B){B.render(k)})}),k.animate({opacity:1},g)}}var r;return function(i){const t=[];function e(s,n,a){if(Z.pushUnique(t,s)&&(G(s,"init",y),G(s,"destroy",c)),Z.pushUnique(t,n)){const M=n.prototype;M.getStacks=p}if(Z.pushUnique(t,a)){const M=a.prototype;M.getStackIndicator=T,M.modifyStacks=m,M.percentStacker=h,M.setGroupedPoints=x,M.setStackedPoints=l}}i.compose=e}(r||(r={})),r}),ct(A,"Series/Line/LineSeries.js",[A["Core/Series/Series.js"],A["Core/Series/SeriesRegistry.js"],A["Core/Utilities.js"]],function(q,Y,tt){const{defined:it,merge:Z}=tt;class st extends q{constructor(){super(...arguments),this.data=void 0,this.options=void 0,this.points=void 0}drawGraph(){const G=this,K=this.options,O=(this.gappedPath||this.getGraphPath).call(this),S=this.chart.styledMode;let w=[["graph","highcharts-graph"]];S||w[0].push(K.lineColor||this.color||"#cccccc",K.dashStyle),w=G.getZonesGraphs(w),w.forEach(function(D,b){const f=D[0];let I,p=G[f];const c=p?"animate":"attr";p?(p.endX=G.preventGraphAnimation?null:O.xMap,p.animate({d:O})):O.length&&(G[f]=p=G.chart.renderer.path(O).addClass(D[1]).attr({zIndex:1}).add(G.group)),p&&!S&&(I={stroke:D[2],"stroke-width":K.lineWidth||0,fill:G.fillGraph&&G.color||"none"},D[3]?I.dashstyle=D[3]:K.linecap!=="square"&&(I["stroke-linecap"]=I["stroke-linejoin"]="round"),p[c](I).shadow(b<2&&K.shadow)),p&&(p.startX=O.xMap,p.isArea=O.isArea)})}getGraphPath(G,K,O){const S=this,w=S.options,D=[],b=[];let f,I=w.step;G=G||S.points;const p=G.reversed;return p&&G.reverse(),I={right:1,center:2}[I]||I&&3,I&&p&&(I=4-I),G=this.getValidPoints(G,!1,!(w.connectNulls&&!K&&!O)),G.forEach(function(c,y){const T=c.plotX,m=c.plotY,h=G[y-1],x=c.isNull||typeof m!="number";let l;(c.leftCliff||h&&h.rightCliff)&&!O&&(f=!0),x&&!it(K)&&y>0?f=!w.connectNulls:x&&!K?f=!0:(y===0||f?l=[["M",c.plotX,c.plotY]]:S.getPointSpline?l=[S.getPointSpline(G,c,y)]:I?(I===1?l=[["L",h.plotX,m]]:I===2?l=[["L",(h.plotX+T)/2,h.plotY],["L",(h.plotX+T)/2,m]]:l=[["L",T,h.plotY]],l.push(["L",T,m])):l=[["L",T,m]],b.push(c.x),I&&(b.push(c.x),I===2&&b.push(c.x)),D.push.apply(D,l),f=!1)}),D.xMap=b,S.graphPath=D,D}getZonesGraphs(G){return this.zones.forEach(function(K,O){const S=["zone-graph-"+O,"highcharts-graph highcharts-zone-graph-"+O+" "+(K.className||"")];this.chart.styledMode||S.push(K.color||this.color,K.dashStyle||this.options.dashStyle),G.push(S)},this),G}}return st.defaultOptions=Z(q.defaultOptions,{legendSymbol:"lineMarker"}),Y.registerSeriesType("line",st),st}),ct(A,"Series/Area/AreaSeries.js",[A["Core/Color/Color.js"],A["Core/Series/SeriesRegistry.js"],A["Core/Utilities.js"]],function(q,Y,tt){const{seriesTypes:{line:it}}=Y,{extend:Z,merge:st,objectEach:Q,pick:G}=tt;class K extends it{constructor(){super(...arguments),this.data=void 0,this.options=void 0,this.points=void 0}drawGraph(){this.areaPath=[],super.drawGraph.apply(this);const S=this,w=this.areaPath,D=this.options,b=this.zones,f=[["area","highcharts-area",this.color,D.fillColor]];b.forEach(function(I,p){f.push(["zone-area-"+p,"highcharts-area highcharts-zone-area-"+p+" "+I.className,I.color||S.color,I.fillColor||D.fillColor])}),f.forEach(function(I){const p=I[0],c={};let y=S[p];const T=y?"animate":"attr";y?(y.endX=S.preventGraphAnimation?null:w.xMap,y.animate({d:w})):(c.zIndex=0,y=S[p]=S.chart.renderer.path(w).addClass(I[1]).add(S.group),y.isArea=!0),S.chart.styledMode||(I[3]?c.fill=I[3]:(c.fill=I[2],c["fill-opacity"]=G(D.fillOpacity,.75))),y[T](c),y.startX=w.xMap,y.shiftUnit=D.step?2:1})}getGraphPath(S){const w=it.prototype.getGraphPath,D=this.options,b=D.stacking,f=this.yAxis,I=[],p=[],c=this.index,y=f.stacking.stacks[this.stackKey],T=D.threshold,m=Math.round(f.getThreshold(D.threshold)),h=G(D.connectNulls,b==="percent"),x=function(a,M,g){const k=S[a],C=b&&y[k.x].points[c],B=k[g+"Null"]||0,L=k[g+"Cliff"]||0;let o,d,N=!0;L||B?(o=(B?C[0]:C[1])+L,d=C[0]+L,N=!!B):!b&&S[M]&&S[M].isNull&&(o=d=T),typeof o<"u"&&(p.push({plotX:l,plotY:o===null?m:f.getThreshold(o),isNull:N,isCliff:!0}),I.push({plotX:l,plotY:d===null?m:f.getThreshold(d),doCurve:!1}))};let l,u,r;S=S||this.points,b&&(S=this.getStackPoints(S));for(let a=0,M=S.length;a<M;++a)b||(S[a].leftCliff=S[a].rightCliff=S[a].leftNull=S[a].rightNull=void 0),u=S[a].isNull,l=G(S[a].rectPlotX,S[a].plotX),r=b?G(S[a].yBottom,m):m,(!u||h)&&(h||x(a,a-1,"left"),u&&!b&&h||(p.push(S[a]),I.push({x:a,plotX:l,plotY:r})),h||x(a,a+1,"right"));const i=w.call(this,p,!0,!0);I.reversed=!0;const t=w.call(this,I,!0,!0),e=t[0];e&&e[0]==="M"&&(t[0]=["L",e[1],e[2]]);const s=i.concat(t);s.length&&s.push(["Z"]);const n=w.call(this,p,!1,h);return s.xMap=i.xMap,this.areaPath=s,n}getStackPoints(S){const w=this,D=[],b=[],f=this.xAxis,I=this.yAxis,p=I.stacking.stacks[this.stackKey],c={},y=I.series,T=y.length,m=I.options.reversedStacks?1:-1,h=y.indexOf(w);if(S=S||this.points,this.options.stacking){for(let l=0;l<S.length;l++)S[l].leftNull=S[l].rightNull=void 0,c[S[l].x]=S[l];Q(p,function(l,u){l.total!==null&&b.push(u)}),b.sort(function(l,u){return l-u});const x=y.map(l=>l.visible);b.forEach(function(l,u){let r=0,i,t;if(c[l]&&!c[l].isNull)D.push(c[l]),[-1,1].forEach(function(e){const s=e===1?"rightNull":"leftNull",n=e===1?"rightCliff":"leftCliff",a=p[b[u+e]];let M=0;if(a){let g=h;for(;g>=0&&g<T;){const k=y[g].index;i=a.points[k],i||(k===w.index?c[l][s]=!0:x[g]&&(t=p[l].points[k],t&&(M-=t[1]-t[0]))),g+=m}}c[l][n]=M});else{let e=h;for(;e>=0&&e<T;){const s=y[e].index;if(i=p[l].points[s],i){r=i[1];break}e+=m}r=G(r,0),r=I.translate(r,0,1,0,1),D.push({isNull:!0,plotX:f.translate(l,0,0,0,1),x:l,plotY:r,yBottom:r})}})}return D}}return K.defaultOptions=st(it.defaultOptions,{threshold:0,legendSymbol:"rectangle"}),Z(K.prototype,{singleStacks:!1}),Y.registerSeriesType("area",K),K}),ct(A,"Series/Spline/SplineSeries.js",[A["Core/Series/SeriesRegistry.js"],A["Core/Utilities.js"]],function(q,Y){const{line:tt}=q.seriesTypes,{merge:it,pick:Z}=Y;class st extends tt{constructor(){super(...arguments),this.data=void 0,this.options=void 0,this.points=void 0}getPointSpline(G,K,O){const D=K.plotX||0,b=K.plotY||0,f=G[O-1],I=G[O+1];let p,c,y,T;function m(x){return x&&!x.isNull&&x.doCurve!==!1&&!K.isCliff}if(m(f)&&m(I)){const x=f.plotX||0,l=f.plotY||0,u=I.plotX||0,r=I.plotY||0;let i=0;p=(1.5*D+x)/2.5,c=(1.5*b+l)/2.5,y=(1.5*D+u)/2.5,T=(1.5*b+r)/2.5,y!==p&&(i=(T-c)*(y-D)/(y-p)+b-T),c+=i,T+=i,c>l&&c>b?(c=Math.max(l,b),T=2*b-c):c<l&&c<b&&(c=Math.min(l,b),T=2*b-c),T>r&&T>b?(T=Math.max(r,b),c=2*b-T):T<r&&T<b&&(T=Math.min(r,b),c=2*b-T),K.rightContX=y,K.rightContY=T}const h=["C",Z(f.rightContX,f.plotX,0),Z(f.rightContY,f.plotY,0),Z(p,D,0),Z(c,b,0),D,b];return f.rightContX=f.rightContY=void 0,h}}return st.defaultOptions=it(tt.defaultOptions),q.registerSeriesType("spline",st),st}),ct(A,"Series/AreaSpline/AreaSplineSeries.js",[A["Series/Spline/SplineSeries.js"],A["Core/Series/SeriesRegistry.js"],A["Core/Utilities.js"]],function(q,Y,tt){const{area:it,area:{prototype:Z}}=Y.seriesTypes,{extend:st,merge:Q}=tt;class G extends q{constructor(){super(...arguments),this.data=void 0,this.points=void 0,this.options=void 0}}return G.defaultOptions=Q(q.defaultOptions,it.defaultOptions),st(G.prototype,{getGraphPath:Z.getGraphPath,getStackPoints:Z.getStackPoints,drawGraph:Z.drawGraph}),Y.registerSeriesType("areaspline",G),G}),ct(A,"Series/Column/ColumnSeriesDefaults.js",[],function(){return{borderRadius:3,centerInCategory:!1,groupPadding:.2,marker:null,pointPadding:.1,minPointLength:0,cropThreshold:50,pointRange:null,states:{hover:{halo:!1,brightness:.1},select:{color:"#cccccc",borderColor:"#000000"}},dataLabels:{align:void 0,verticalAlign:void 0,y:void 0},startFromThreshold:!0,stickyTracking:!1,tooltip:{distance:6},threshold:0,borderColor:"#ffffff"}}),ct(A,"Series/Column/ColumnSeries.js",[A["Core/Animation/AnimationUtilities.js"],A["Core/Color/Color.js"],A["Series/Column/ColumnSeriesDefaults.js"],A["Core/Globals.js"],A["Core/Series/Series.js"],A["Core/Series/SeriesRegistry.js"],A["Core/Utilities.js"]],function(q,Y,tt,it,Z,st,Q){const{animObject:G}=q,{parse:K}=Y,{hasTouch:O,noop:S}=it,{clamp:w,defined:D,extend:b,fireEvent:f,isArray:I,isNumber:p,merge:c,pick:y,objectEach:T,relativeLength:m}=Q;class h extends Z{constructor(){super(...arguments),this.borderWidth=void 0,this.data=void 0,this.group=void 0,this.options=void 0,this.points=void 0}animate(l){const u=this,r=this.yAxis,i=r.pos,t=u.options,e=this.chart.inverted,s={},n=e?"translateX":"translateY";let a,M;l?(s.scaleY=.001,M=w(r.toPixels(t.threshold),i,i+r.len),e?s.translateX=M-r.len:s.translateY=M,u.clipBox&&u.setClip(),u.group.attr(s)):(a=Number(u.group.attr(n)),u.group.animate({scaleY:1},b(G(u.options.animation),{step:function(g,k){u.group&&(s[n]=a+k.pos*(i-a),u.group.attr(s))}})))}init(l,u){super.init.apply(this,arguments);const r=this;l=r.chart,l.hasRendered&&l.series.forEach(function(i){i.type===r.type&&(i.isDirty=!0)})}getColumnMetrics(){const l=this,u=l.options,r=l.xAxis,i=l.yAxis,t=r.options.reversedStacks,e=r.reversed&&!t||!r.reversed&&t,s={};let n,a=0;u.grouping===!1?a=1:l.chart.series.forEach(function(N){const V=N.yAxis,R=N.options;let H;N.type===l.type&&(N.visible||!l.chart.options.chart.ignoreHiddenSeries)&&i.len===V.len&&i.pos===V.pos&&(R.stacking&&R.stacking!=="group"?(n=N.stackKey,typeof s[n]>"u"&&(s[n]=a++),H=s[n]):R.grouping!==!1&&(H=a++),N.columnIndex=H)});const M=Math.min(Math.abs(r.transA)*(r.ordinal&&r.ordinal.slope||u.pointRange||r.closestPointRange||r.tickInterval||1),r.len),g=M*u.groupPadding,k=M-2*g,C=k/(a||1),B=Math.min(u.maxPointWidth||r.len,y(u.pointWidth,C*(1-2*u.pointPadding))),L=(C-B)/2,o=(l.columnIndex||0)+(e?1:0),d=L+(g+o*C-M/2)*(e?-1:1);return l.columnMetrics={width:B,offset:d,paddedWidth:C,columnCount:a},l.columnMetrics}crispCol(l,u,r,i){this.chart;const t=this.borderWidth,e=-(t%2?.5:0);let s,n=t%2?.5:1;this.options.crisp&&(s=Math.round(l+r)+e,l=Math.round(l)+e,r=s-l);const a=Math.round(u+i)+n,M=Math.abs(u)<=.5&&a>.5;return u=Math.round(u)+n,i=a-u,M&&i&&(u-=1,i+=1),{x:l,y:u,width:r,height:i}}adjustForMissingColumns(l,u,r,i){const t=this.options.stacking;if(!r.isNull&&i.columnCount>1){const e=this.yAxis.options.reversedStacks;let s=0,n=e?0:-i.columnCount;T(this.yAxis.stacking&&this.yAxis.stacking.stacks,M=>{if(typeof r.x=="number"){const g=M[r.x.toString()];if(g){const k=g.points[this.index];if(t)k&&(s=n),g.hasValidPoints&&(e?n++:n--);else if(I(k)){let C=Object.keys(g.points).filter(B=>!B.match(",")&&g.points[B]&&g.points[B].length>1).map(parseFloat).sort((B,L)=>L-B);s=C.indexOf(this.index),n=C.length}}}});const a=(n-1)*i.paddedWidth+u;l=(r.plotX||0)+a/2-u-s*i.paddedWidth}return l}translate(){const l=this,u=l.chart,r=l.options,i=l.dense=l.closestPointRange*l.xAxis.transA<2,t=l.borderWidth=y(r.borderWidth,i?0:1),e=l.xAxis,s=l.yAxis,n=r.threshold,a=y(r.minPointLength,5),M=l.getColumnMetrics(),g=M.width,k=l.pointXOffset=M.offset,C=l.dataMin,B=l.dataMax;let L=l.barW=Math.max(g,1+2*t),o=l.translatedThreshold=s.getThreshold(n);u.inverted&&(o-=.5),r.pointPadding&&(L=Math.ceil(L)),Z.prototype.translate.apply(l),l.points.forEach(function(d){const N=y(d.yBottom,o),V=999+Math.abs(N),R=d.plotX||0,H=w(d.plotY,-V,s.len+V);d.stackBox;let v,P=Math.min(H,N),_=Math.max(H,N)-P,z=g,$=R+k,j=L;a&&Math.abs(_)<a&&(_=a,v=!s.reversed&&!d.negative||s.reversed&&d.negative,p(n)&&p(B)&&d.y===n&&B<=n&&(s.min||0)<n&&(C!==B||(s.max||0)<=n)&&(v=!v,d.negative=!d.negative),P=Math.abs(P-o)>a?N-a:o-(v?a:0)),D(d.options.pointWidth)&&(z=j=Math.ceil(d.options.pointWidth),$-=Math.round((z-g)/2)),r.centerInCategory&&($=l.adjustForMissingColumns($,z,d,M)),d.barX=$,d.pointWidth=z,d.tooltipPos=u.inverted?[w(s.len+s.pos-u.plotLeft-H,s.pos-u.plotLeft,s.len+s.pos-u.plotLeft),e.len+e.pos-u.plotTop-$-j/2,_]:[e.left-u.plotLeft+$+j/2,w(H+s.pos-u.plotTop,s.pos-u.plotTop,s.len+s.pos-u.plotTop),_],d.shapeType=l.pointClass.prototype.shapeType||"roundedRect",d.shapeArgs=l.crispCol($,d.isNull?o:P,j,d.isNull?0:_)}),f(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(l,u){const r=this.options,i=this.pointAttrToOptions||{},t=i.stroke||"borderColor",e=i["stroke-width"]||"borderWidth";let s,n,a,M=l&&l.color||this.color,g=l&&l[t]||r[t]||M,k=l&&l.options.dashStyle||r.dashStyle,C=l&&l[e]||r[e]||this[e]||0,B=y(l&&l.opacity,r.opacity,1);l&&this.zones.length&&(n=l.getZone(),M=l.options.color||n&&(n.color||l.nonZonedColor)||this.color,n&&(g=n.borderColor||g,k=n.dashStyle||k,C=n.borderWidth||C)),u&&l&&(s=c(r.states[u],l.options.states&&l.options.states[u]||{}),a=s.brightness,M=s.color||typeof a<"u"&&K(M).brighten(s.brightness).get()||M,g=s[t]||g,C=s[e]||C,k=s.dashStyle||k,B=y(s.opacity,B));const L={fill:M,stroke:g,"stroke-width":C,opacity:B};return k&&(L.dashstyle=k),L}drawPoints(l=this.points){const u=this,r=this.chart,i=u.options,t=r.renderer,e=i.animationLimit||250;let s;l.forEach(function(n){const a=n.plotY;let M=n.graphic,g=!!M,k=M&&r.pointCount<e?"animate":"attr";p(a)&&n.y!==null?(s=n.shapeArgs,M&&n.hasNewShapeType()&&(M=M.destroy()),u.enabledDataSorting&&(n.startXPos=u.xAxis.reversed?-(s&&s.width||0):u.xAxis.width),M||(n.graphic=M=t[n.shapeType](s).add(n.group||u.group),M&&u.enabledDataSorting&&r.hasRendered&&r.pointCount<e&&(M.attr({x:n.startXPos}),g=!0,k="animate")),M&&g&&M[k](c(s)),r.styledMode||M[k](u.pointAttribs(n,n.selected&&"select")).shadow(n.allowShadow!==!1&&i.shadow),M&&(M.addClass(n.getClassName(),!0),M.attr({visibility:n.visible?"inherit":"hidden"}))):M&&(n.graphic=M.destroy())})}drawTracker(l=this.points){const u=this,r=u.chart,i=r.pointer,t=function(s){const n=i.getPointFromEvent(s);typeof n<"u"&&u.options.enableMouseTracking&&(i.isDirectTouch=!0,n.onMouseOver(s))};let e;l.forEach(function(s){e=I(s.dataLabels)?s.dataLabels:s.dataLabel?[s.dataLabel]:[],s.graphic&&(s.graphic.element.point=s),e.forEach(function(n){n.div?n.div.point=s:n.element.point=s})}),u._hasTracking||(u.trackerGroups.forEach(function(s){u[s]&&(u[s].addClass("highcharts-tracker").on("mouseover",t).on("mouseout",function(n){i.onTrackerMouseOut(n)}),O&&u[s].on("touchstart",t),!r.styledMode&&u.options.cursor&&u[s].css({cursor:u.options.cursor}))}),u._hasTracking=!0),f(this,"afterDrawTracker")}remove(){const l=this,u=l.chart;u.hasRendered&&u.series.forEach(function(r){r.type===l.type&&(r.isDirty=!0)}),Z.prototype.remove.apply(l,arguments)}}return h.defaultOptions=c(Z.defaultOptions,tt),b(h.prototype,{cropShoulder:0,directTouch:!0,getSymbol:S,negStacks:!0,trackerGroups:["group","dataLabelsGroup"]}),st.registerSeriesType("column",h),h}),ct(A,"Core/Series/DataLabel.js",[A["Core/Animation/AnimationUtilities.js"],A["Core/Templating.js"],A["Core/Utilities.js"]],function(q,Y,tt){const{getDeferredAnimation:it}=q,{format:Z}=Y,{defined:st,extend:Q,fireEvent:G,isArray:K,isString:O,merge:S,objectEach:w,pick:D,splat:b}=tt;var f;return function(I){const p=[];function c(i,t,e,s,n){const a=this,M=this.chart,g=this.isCartesian&&M.inverted,k=this.enabledDataSorting,C=i.plotX,B=i.plotY,L=e.rotation,o=e.align,d=st(C)&&st(B)&&M.isInsidePlot(C,Math.round(B),{inverted:g,paneCoordinates:!0,series:a}),N=z=>{k&&a.xAxis&&!v&&a.setDataLabelStartPos(i,t,n,d,z)};let V,R,H,v=D(e.overflow,k?"none":"justify")==="justify",P=this.visible&&i.visible!==!1&&st(C)&&(i.series.forceDL||k&&!v||d||D(e.inside,!!this.options.stacking)&&s&&M.isInsidePlot(C,g?s.x+1:s.y+s.height-1,{inverted:g,paneCoordinates:!0,series:a}));const _=i.pos();if(P&&_){L&&t.attr({align:o});let z=t.getBBox(!0),$=[0,0];if(V=M.renderer.fontMetrics(t).b,s=Q({x:_[0],y:Math.round(_[1]),width:0,height:0},s),Q(e,{width:z.width,height:z.height}),L?(v=!1,R=M.renderer.rotCorr(V,L),H={x:s.x+(e.x||0)+s.width/2+R.x,y:s.y+(e.y||0)+{top:0,middle:.5,bottom:1}[e.verticalAlign]*s.height},$=[z.x-Number(t.attr("x")),z.y-Number(t.attr("y"))],N(H),t[n?"attr":"animate"](H)):(N(s),t.align(e,void 0,s),H=t.alignAttr),v&&s.height>=0)this.justifyDataLabel(t,e,H,z,s,n);else if(D(e.crop,!0)){let{x:j,y:et}=H;j+=$[0],et+=$[1],P=M.isInsidePlot(j,et,{paneCoordinates:!0,series:a})&&M.isInsidePlot(j+z.width,et+z.height,{paneCoordinates:!0,series:a})}e.shape&&!L&&t[n?"attr":"animate"]({anchorX:_[0],anchorY:_[1]})}n&&k&&(t.placed=!1),!P&&(!k||v)?(t.hide(),t.placed=!1):t.show()}function y(i,t){const e=t.filter;if(e){const s=e.operator,n=i[e.property],a=e.value;return s===">"&&n>a||s==="<"&&n<a||s===">="&&n>=a||s==="<="&&n<=a||s==="=="&&n==a||s==="==="&&n===a}return!0}function T(i){if(tt.pushUnique(p,i)){const t=i.prototype;t.initDataLabelsGroup=m,t.initDataLabels=h,t.alignDataLabel=c,t.drawDataLabels=x,t.justifyDataLabel=l,t.setDataLabelStartPos=r}}I.compose=T;function m(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function h(i){const t=this,e=t.hasRendered||0,s=this.initDataLabelsGroup().attr({opacity:+e});return!e&&s&&(t.visible&&s.show(),t.options.animation?s.animate({opacity:1},i):s.attr({opacity:1})),s}function x(i=this.points){var t,e;const s=this,n=s.chart,a=s.options,M=n.renderer,{backgroundColor:g,plotBackgroundColor:k}=n.options.chart,C=n.options.plotOptions,B=M.getContrast(O(k)&&k||O(g)&&g||"#000000");let L=a.dataLabels,o,d;const N=b(L)[0],V=N.animation,R=N.defer?it(n,V,s):{defer:0,duration:0};L=u(u((t=C==null?void 0:C.series)===null||t===void 0?void 0:t.dataLabels,(e=C==null?void 0:C[s.type])===null||e===void 0?void 0:e.dataLabels),L),G(this,"drawDataLabels"),(K(L)||L.enabled||s._hasPointLabels)&&(d=this.initDataLabels(R),i.forEach(H=>{var v;const P=H.dataLabels||[];o=b(u(L,H.dlOptions||((v=H.options)===null||v===void 0?void 0:v.dataLabels))),o.forEach((z,$)=>{var j;const et=z.enabled&&(!H.isNull||H.dataLabelOnNull)&&y(H,z),ot=H.connectors?H.connectors[$]:H.connector,J=z.style||{};let at,W,F,E,X={},U=P[$],nt=!U;const rt=D(z.distance,H.labelDistance);if(et){if(W=D(z[H.formatPrefix+"Format"],z.format),at=H.getLabelConfig(),F=st(W)?Z(W,at,n):(z[H.formatPrefix+"Formatter"]||z.formatter).call(at,z),E=z.rotation,n.styledMode||(J.color=D(z.color,J.color,O(s.color)?s.color:void 0,"#000000"),J.color==="contrast"?(H.contrastColor=M.getContrast(H.color||s.color),J.color=!st(rt)&&z.inside||(rt||0)<0||a.stacking?H.contrastColor:B):delete H.contrastColor,a.cursor&&(J.cursor=a.cursor)),X={r:z.borderRadius||0,rotation:E,padding:z.padding,zIndex:1},!n.styledMode){const{backgroundColor:ht,borderColor:ft}=z;X.fill=ht==="auto"?H.color:ht,X.stroke=ft==="auto"?H.color:ft,X["stroke-width"]=z.borderWidth}w(X,(ht,ft)=>{typeof ht>"u"&&delete X[ft]})}if(U&&(!et||!st(F)||!!U.div!=!!z.useHTML||(!U.rotation||!z.rotation)&&U.rotation!==z.rotation)&&(U=void 0,nt=!0,ot&&H.connector&&(H.connector=H.connector.destroy(),H.connectors&&(H.connectors.length===1?delete H.connectors:delete H.connectors[$]))),et&&st(F)&&(U?X.text=F:(U=E?M.text(F,0,0,z.useHTML).addClass("highcharts-data-label"):M.label(F,0,0,z.shape,void 0,void 0,z.useHTML,void 0,"data-label"),U&&U.addClass(" highcharts-data-label-color-"+H.colorIndex+" "+(z.className||"")+(z.useHTML?" highcharts-tracker":""))),U)){U.options=z,U.attr(X),n.styledMode||U.css(J).shadow(z.shadow);const ht=z[H.formatPrefix+"TextPath"]||z.textPath;ht&&!z.useHTML&&(U.setTextPath(((j=H.getDataLabelPath)===null||j===void 0?void 0:j.call(H,U))||H.graphic,ht),H.dataLabelPath&&!ht.enabled&&(H.dataLabelPath=H.dataLabelPath.destroy())),U.added||U.add(d),s.alignDataLabel(H,U,z,void 0,nt),U.isActive=!0,P[$]&&P[$]!==U&&P[$].destroy(),P[$]=U}});let _=P.length;for(;_--;)P[_].isActive?P[_].isActive=!1:(P[_].destroy(),P.splice(_,1));H.dataLabel=P[0],H.dataLabels=P})),G(this,"afterDrawDataLabels")}function l(i,t,e,s,n,a){const M=this.chart,g=t.align,k=t.verticalAlign,C=i.box?0:i.padding||0;let{x:B=0,y:L=0}=t,o,d;return o=(e.x||0)+C,o<0&&(g==="right"&&B>=0?(t.align="left",t.inside=!0):B-=o,d=!0),o=(e.x||0)+s.width-C,o>M.plotWidth&&(g==="left"&&B<=0?(t.align="right",t.inside=!0):B+=M.plotWidth-o,d=!0),o=e.y+C,o<0&&(k==="bottom"&&L>=0?(t.verticalAlign="top",t.inside=!0):L-=o,d=!0),o=(e.y||0)+s.height-C,o>M.plotHeight&&(k==="top"&&L<=0?(t.verticalAlign="bottom",t.inside=!0):L+=M.plotHeight-o,d=!0),d&&(t.x=B,t.y=L,i.placed=!a,i.align(t,void 0,n)),d}function u(i,t){let e=[],s;if(K(i)&&!K(t))e=i.map(function(n){return S(n,t)});else if(K(t)&&!K(i))e=t.map(function(n){return S(i,n)});else if(!K(i)&&!K(t))e=S(i,t);else if(K(i)&&K(t))for(s=Math.max(i.length,t.length);s--;)e[s]=S(i[s],t[s]);return e}function r(i,t,e,s,n){const a=this.chart,M=a.inverted,g=this.xAxis,k=g.reversed,C=M?t.height/2:t.width/2,B=i.pointWidth,L=B?B/2:0;t.startXPos=M?n.x:k?-C-L:g.width-C+L,t.startYPos=M?k?this.yAxis.height-C+L:-C-L:n.y,s?t.visibility==="hidden"&&(t.show(),t.attr({opacity:0}).animate({opacity:1})):t.attr({opacity:1}).animate({opacity:0},void 0,t.hide),a.hasRendered&&(e&&t.attr({x:t.startXPos,y:t.startYPos}),t.placed=!0)}}(f||(f={})),f}),ct(A,"Series/Column/ColumnDataLabel.js",[A["Core/Series/DataLabel.js"],A["Core/Series/SeriesRegistry.js"],A["Core/Utilities.js"]],function(q,Y,tt){const{series:it}=Y,{merge:Z,pick:st}=tt;var Q;return function(G){const K=[];function O(w,D,b,f,I){let p=this.chart.inverted,c=w.series,y=(c.xAxis?c.xAxis.len:this.chart.plotSizeX)||0,T=(c.yAxis?c.yAxis.len:this.chart.plotSizeY)||0,m=w.dlBox||w.shapeArgs,h=st(w.below,w.plotY>st(this.translatedThreshold,T)),x=st(b.inside,!!this.options.stacking),l;m&&(f=Z(m),f.y<0&&(f.height+=f.y,f.y=0),l=f.y+f.height-T,l>0&&l<f.height&&(f.height-=l),p&&(f={x:T-f.y-f.height,y:y-f.x-f.width,width:f.height,height:f.width}),x||(p?(f.x+=h?0:f.width,f.width=0):(f.y+=h?f.height:0,f.height=0))),b.align=st(b.align,!p||x?"center":h?"right":"left"),b.verticalAlign=st(b.verticalAlign,p||x?"middle":h?"top":"bottom"),it.prototype.alignDataLabel.call(this,w,D,b,f,I),b.inside&&w.contrastColor&&D.css({color:w.contrastColor})}function S(w){q.compose(it),tt.pushUnique(K,w)&&(w.prototype.alignDataLabel=O)}G.compose=S}(Q||(Q={})),Q}),ct(A,"Series/Bar/BarSeries.js",[A["Series/Column/ColumnSeries.js"],A["Core/Series/SeriesRegistry.js"],A["Core/Utilities.js"]],function(q,Y,tt){const{extend:it,merge:Z}=tt;class st extends q{constructor(){super(...arguments),this.data=void 0,this.options=void 0,this.points=void 0}}return st.defaultOptions=Z(q.defaultOptions,{}),it(st.prototype,{inverted:!0}),Y.registerSeriesType("bar",st),st}),ct(A,"Series/Scatter/ScatterSeriesDefaults.js",[],function(){return{lineWidth:0,findNearestPointBy:"xy",jitter:{x:0,y:0},marker:{enabled:!0},tooltip:{headerFormat:'<span style="color:{point.color}">●</span> <span style="font-size: 0.8em"> {series.name}</span><br/>',pointFormat:"x: <b>{point.x}</b><br/>y: <b>{point.y}</b><br/>"}}}),ct(A,"Series/Scatter/ScatterSeries.js",[A["Series/Scatter/ScatterSeriesDefaults.js"],A["Core/Series/SeriesRegistry.js"],A["Core/Utilities.js"]],function(q,Y,tt){const{column:it,line:Z}=Y.seriesTypes,{addEvent:st,extend:Q,merge:G}=tt;class K extends Z{constructor(){super(...arguments),this.data=void 0,this.options=void 0,this.points=void 0}applyJitter(){const S=this,w=this.options.jitter,D=this.points.length;function b(f){const I=Math.sin(f)*1e4;return I-Math.floor(I)}w&&this.points.forEach(function(f,I){["x","y"].forEach(function(p,c){let y,T="plot"+p.toUpperCase(),m,h,x;w[p]&&!f.isNull&&(y=S[p+"Axis"],x=w[p]*y.transA,y&&!y.isLog&&(m=Math.max(0,f[T]-x),h=Math.min(y.len,f[T]+x),f[T]=m+(h-m)*b(I+c*D),p==="x"&&(f.clientX=f.plotX)))})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}return K.defaultOptions=G(Z.defaultOptions,q),Q(K.prototype,{drawTracker:it.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"],takeOrdinalPosition:!1}),st(K,"afterTranslate",function(){this.applyJitter()}),Y.registerSeriesType("scatter",K),K}),ct(A,"Series/CenteredUtilities.js",[A["Core/Globals.js"],A["Core/Series/Series.js"],A["Core/Utilities.js"]],function(q,Y,tt){const{deg2rad:it}=q,{fireEvent:Z,isNumber:st,pick:Q,relativeLength:G}=tt;var K;return function(O){function S(){const D=this.options,b=this.chart,f=2*(D.slicedOffset||0),I=b.plotWidth-2*f,p=b.plotHeight-2*f,c=D.center,y=Math.min(I,p),T=D.thickness;let m,h=D.size,x=D.innerSize||0,l,u;typeof h=="string"&&(h=parseFloat(h)),typeof x=="string"&&(x=parseFloat(x));const r=[Q(c[0],"50%"),Q(c[1],"50%"),Q(h&&h<0?void 0:D.size,"100%"),Q(x&&x<0?void 0:D.innerSize||0,"0%")];for(b.angular&&!(this instanceof Y)&&(r[3]=0),l=0;l<4;++l)u=r[l],m=l<2||l===2&&/%$/.test(u),r[l]=G(u,[I,p,y,r[2]][l])+(m?f:0);return r[3]>r[2]&&(r[3]=r[2]),st(T)&&T*2<r[2]&&T>0&&(r[3]=r[2]-T*2),Z(this,"afterGetCenter",{positions:r}),r}O.getCenter=S;function w(D,b){const f=st(D)?D:0,I=st(b)&&b>f&&b-f<360?b:f+360,p=-90;return{start:it*(f+p),end:it*(I+p)}}O.getStartAndEndRadians=w}(K||(K={})),K}),ct(A,"Series/Pie/PiePoint.js",[A["Core/Animation/AnimationUtilities.js"],A["Core/Series/Point.js"],A["Core/Utilities.js"]],function(q,Y,tt){const{setAnimation:it}=q,{addEvent:Z,defined:st,extend:Q,isNumber:G,pick:K,relativeLength:O}=tt;class S extends Y{constructor(){super(...arguments),this.labelDistance=void 0,this.options=void 0,this.series=void 0}getConnectorPath(){const D=this.labelPosition,b=this.series.options.dataLabels,f=this.connectorShapes;let I=b.connectorShape;return f[I]&&(I=f[I]),I.call(this,{x:D.computed.x,y:D.computed.y,alignment:D.alignment},D.connectorPosition,b)}getTranslate(){return this.sliced?this.slicedTranslation:{translateX:0,translateY:0}}haloPath(D){const b=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(b.x,b.y,b.r+D,b.r+D,{innerR:b.r-1,start:b.start,end:b.end,borderRadius:b.borderRadius})}init(){super.init.apply(this,arguments),this.name=K(this.name,"Slice");const D=b=>{this.slice(b.type==="select")};return Z(this,"select",D),Z(this,"unselect",D),this}isValid(){return G(this.y)&&this.y>=0}setVisible(D,b){const f=this.series,I=f.chart,p=f.options.ignoreHiddenPoint;b=K(b,p),D!==this.visible&&(this.visible=this.options.visible=D=typeof D>"u"?!this.visible:D,f.options.data[f.data.indexOf(this)]=this.options,["graphic","dataLabel","connector"].forEach(c=>{this[c]&&this[c][D?"show":"hide"](D)}),this.legendItem&&I.legend.colorizeItem(this,D),!D&&this.state==="hover"&&this.setState(""),p&&(f.isDirty=!0),b&&I.redraw())}slice(D,b,f){const I=this.series,p=I.chart;it(f,p),b=K(b,!0),this.sliced=this.options.sliced=D=st(D)?D:!this.sliced,I.options.data[I.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}return Q(S.prototype,{connectorShapes:{fixedOffset:function(w,D,b){const f=D.breakAt,I=D.touchingSliceAt,p=b.softConnector?["C",w.x+(w.alignment==="left"?-5:5),w.y,2*f.x-I.x,2*f.y-I.y,f.x,f.y]:["L",f.x,f.y];return[["M",w.x,w.y],p,["L",I.x,I.y]]},straight:function(w,D){const b=D.touchingSliceAt;return[["M",w.x,w.y],["L",b.x,b.y]]},crookedLine:function(w,D,b){const{breakAt:f,touchingSliceAt:I}=D,{series:p}=this,[c,y,T]=p.center,m=T/2,h=p.chart.plotWidth,x=p.chart.plotLeft,l=w.alignment==="left",{x:u,y:r}=w;let i=f.x;if(b.crookDistance){const e=O(b.crookDistance,1);i=l?c+m+(h+x-c-m)*(1-e):x+(c-m)*e}else i=c+(y-r)*Math.tan((this.angle||0)-Math.PI/2);const t=[["M",u,r]];return(l?i<=u&&i>=f.x:i>=u&&i<=f.x)&&t.push(["L",i,r]),t.push(["L",f.x,f.y],["L",I.x,I.y]),t}}}),S}),ct(A,"Series/Pie/PieSeriesDefaults.js",[],function(){return{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{allowOverlap:!0,connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}}),ct(A,"Series/Pie/PieSeries.js",[A["Series/CenteredUtilities.js"],A["Series/Column/ColumnSeries.js"],A["Core/Globals.js"],A["Series/Pie/PiePoint.js"],A["Series/Pie/PieSeriesDefaults.js"],A["Core/Series/Series.js"],A["Core/Series/SeriesRegistry.js"],A["Core/Renderer/SVG/Symbols.js"],A["Core/Utilities.js"]],function(q,Y,tt,it,Z,st,Q,G,K){const{getStartAndEndRadians:O}=q,{noop:S}=tt,{clamp:w,extend:D,fireEvent:b,merge:f,pick:I,relativeLength:p}=K;class c extends st{constructor(){super(...arguments),this.center=void 0,this.data=void 0,this.maxLabelDistance=void 0,this.options=void 0,this.points=void 0}animate(T){const m=this,h=m.points,x=m.startAngleRad;T||h.forEach(function(l){const u=l.graphic,r=l.shapeArgs;u&&r&&(u.attr({r:I(l.startR,m.center&&m.center[3]/2),start:x,end:x}),u.animate({r:r.r,start:r.start,end:r.end},m.options.animation))})}drawEmpty(){const T=this.startAngleRad,m=this.endAngleRad,h=this.options;let x,l;this.total===0&&this.center?(x=this.center[0],l=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(x,l,this.center[1]/2,0,T,m).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:G.arc(x,l,this.center[2]/2,0,{start:T,end:m,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":h.borderWidth,fill:h.fillColor||"none",stroke:h.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){const T=this.chart.renderer;this.points.forEach(function(m){m.graphic&&m.hasNewShapeType()&&(m.graphic=m.graphic.destroy()),m.graphic||(m.graphic=T[m.shapeType](m.shapeArgs).add(m.series.group),m.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(T,m,h){const x=this.center,l=this.radii?this.radii[h.index]||0:x[2]/2,u=Math.asin(w((T-x[1])/(l+h.labelDistance),-1,1));return x[0]+(m?-1:1)*(Math.cos(u)*(l+h.labelDistance))+(h.labelDistance>0?(m?-1:1)*this.options.dataLabels.padding:0)}hasData(){return!!this.processedXData.length}redrawPoints(){const T=this,m=T.chart;let h,x,l,u;this.drawEmpty(),T.group&&!m.styledMode&&T.group.shadow(T.options.shadow),T.points.forEach(function(r){const i={};x=r.graphic,!r.isNull&&x?(u=r.shapeArgs,h=r.getTranslate(),m.styledMode||(l=T.pointAttribs(r,r.selected&&"select")),r.delayedRendering?(x.setRadialReference(T.center).attr(u).attr(h),m.styledMode||x.attr(l).attr({"stroke-linejoin":"round"}),r.delayedRendering=!1):(x.setRadialReference(T.center),m.styledMode||f(!0,i,l),f(!0,i,u,h),x.animate(i)),x.attr({visibility:r.visible?"inherit":"hidden"}),x.addClass(r.getClassName(),!0)):x&&(r.graphic=x.destroy())})}sortByAngle(T,m){T.sort(function(h,x){return typeof h.angle<"u"&&(x.angle-h.angle)*m})}translate(T){b(this,"translate"),this.generatePoints();const m=this,h=1e3,x=m.options,l=x.slicedOffset,u=l+(x.borderWidth||0),r=O(x.startAngle,x.endAngle),i=m.startAngleRad=r.start,t=m.endAngleRad=r.end,e=t-i,s=m.points,n=x.dataLabels.distance,a=x.ignoreHiddenPoint,M=s.length;let g,k,C,B,L,o,d,N,V=0;for(T||(m.center=T=m.getCenter()),d=0;d<M;d++){N=s[d],k=i+V*e,N.isValid()&&(!a||N.visible)&&(V+=N.percentage/100),C=i+V*e;const R={x:T[0],y:T[1],r:T[2]/2,innerR:T[3]/2,start:Math.round(k*h)/h,end:Math.round(C*h)/h};N.shapeType="arc",N.shapeArgs=R,N.labelDistance=I(N.options.dataLabels&&N.options.dataLabels.distance,n),N.labelDistance=p(N.labelDistance,R.r),m.maxLabelDistance=Math.max(m.maxLabelDistance||0,N.labelDistance),B=(C+k)/2,B>1.5*Math.PI?B-=2*Math.PI:B<-Math.PI/2&&(B+=2*Math.PI),N.slicedTranslation={translateX:Math.round(Math.cos(B)*l),translateY:Math.round(Math.sin(B)*l)},L=Math.cos(B)*T[2]/2,o=Math.sin(B)*T[2]/2,N.tooltipPos=[T[0]+L*.7,T[1]+o*.7],N.half=B<-Math.PI/2||B>Math.PI/2?1:0,N.angle=B,g=Math.min(u,N.labelDistance/5),N.labelPosition={natural:{x:T[0]+L+Math.cos(B)*N.labelDistance,y:T[1]+o+Math.sin(B)*N.labelDistance},computed:{},alignment:N.labelDistance<0?"center":N.half?"right":"left",connectorPosition:{breakAt:{x:T[0]+L+Math.cos(B)*g,y:T[1]+o+Math.sin(B)*g},touchingSliceAt:{x:T[0]+L,y:T[1]+o}}}}b(m,"afterTranslate")}updateTotals(){const T=this.points,m=T.length,h=this.options.ignoreHiddenPoint;let x,l,u=0;for(x=0;x<m;x++)l=T[x],l.isValid()&&(!h||l.visible)&&(u+=l.y);for(this.total=u,x=0;x<m;x++)l=T[x],l.percentage=u>0&&(l.visible||!h)?l.y/u*100:0,l.total=u}}return c.defaultOptions=f(st.defaultOptions,Z),D(c.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:Y.prototype.drawTracker,getCenter:q.getCenter,getSymbol:S,isCartesian:!1,noSharedTooltip:!0,pointAttribs:Y.prototype.pointAttribs,pointClass:it,requireSorting:!1,searchPoint:S,trackerGroups:["group","dataLabelsGroup"]}),Q.registerSeriesType("pie",c),c}),ct(A,"Series/Pie/PieDataLabel.js",[A["Core/Series/DataLabel.js"],A["Core/Globals.js"],A["Core/Renderer/RendererUtilities.js"],A["Core/Series/SeriesRegistry.js"],A["Core/Utilities.js"]],function(q,Y,tt,it,Z){const{noop:st}=Y,{distribute:Q}=tt,{series:G}=it,{arrayMax:K,clamp:O,defined:S,merge:w,pick:D,relativeLength:b}=Z;var f;return function(I){const p=[],c={radialDistributionY:function(x){return x.top+x.distributeBox.pos},radialDistributionX:function(x,l,u,r){return x.getX(u<l.top+2||u>l.bottom-2?r:u,l.half,l)},justify:function(x,l,u){return u[0]+(x.half?-1:1)*(l+x.labelDistance)},alignToPlotEdges:function(x,l,u,r){const i=x.getBBox().width;return l?i+r:u-i-r},alignToConnectors:function(x,l,u,r){let i=0,t;return x.forEach(function(e){t=e.dataLabel.getBBox().width,t>i&&(i=t)}),l?i+r:u-i-r}};function y(x){if(q.compose(G),Z.pushUnique(p,x)){const l=x.prototype;l.dataLabelPositioners=c,l.alignDataLabel=st,l.drawDataLabels=T,l.placeDataLabels=m,l.verifyDataLabelOverflow=h}}I.compose=y;function T(){const x=this,l=x.data,u=x.chart,r=x.options.dataLabels||{},i=r.connectorPadding,t=u.plotWidth,e=u.plotHeight,s=u.plotLeft,n=Math.round(u.chartWidth/3),a=x.center,M=a[2]/2,g=a[1],k=[[],[]],C=[0,0,0,0],B=x.dataLabelPositioners;let L,o,d,N,V,R,H,v,P,_,z,$;!x.visible||!r.enabled&&!x._hasPointLabels||(l.forEach(function(j){j.dataLabel&&j.visible&&j.dataLabel.shortened&&(j.dataLabel.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),j.dataLabel.shortened=!1)}),G.prototype.drawDataLabels.apply(x),l.forEach(function(j){j.dataLabel&&(j.visible?(k[j.half].push(j),j.dataLabel._pos=null,!S(r.style.width)&&!S(j.options.dataLabels&&j.options.dataLabels.style&&j.options.dataLabels.style.width)&&j.dataLabel.getBBox().width>n&&(j.dataLabel.css({width:Math.round(n*.7)+"px"}),j.dataLabel.shortened=!0)):(j.dataLabel=j.dataLabel.destroy(),j.dataLabels&&j.dataLabels.length===1&&delete j.dataLabels))}),k.forEach((j,et)=>{const ot=j.length,J=[];let at,W,F,E,X=0,U;if(ot)for(x.sortByAngle(j,et-.5),x.maxLabelDistance>0&&(at=Math.max(0,g-M-x.maxLabelDistance),W=Math.min(g+M+x.maxLabelDistance,u.plotHeight),j.forEach(function(nt){nt.labelDistance>0&&nt.dataLabel&&(nt.top=Math.max(0,g-M-nt.labelDistance),nt.bottom=Math.min(g+M+nt.labelDistance,u.plotHeight),X=nt.dataLabel.getBBox().height||21,nt.distributeBox={target:nt.labelPosition.natural.y-nt.top+X/2,size:X,rank:nt.y},J.push(nt.distributeBox))}),U=W+X-at,Q(J,U,U/5)),z=0;z<ot;z++){if(L=j[z],R=L.labelPosition,N=L.dataLabel,_=L.visible===!1?"hidden":"inherit",F=R.natural.y,P=F,J&&S(L.distributeBox)&&(typeof L.distributeBox.pos>"u"?_="hidden":(H=L.distributeBox.size,P=B.radialDistributionY(L))),delete L.positionIndex,r.justify)v=B.justify(L,M,a);else switch(r.alignTo){case"connectors":v=B.alignToConnectors(j,et,t,s);break;case"plotEdges":v=B.alignToPlotEdges(N,et,t,s);break;default:v=B.radialDistributionX(x,L,P,F)}N._attr={visibility:_,align:R.alignment},$=L.options.dataLabels||{},N._pos={x:v+D($.x,r.x)+({left:i,right:-i}[R.alignment]||0),y:P+D($.y,r.y)-N.getBBox().height/2},R&&(R.computed.x=v,R.computed.y=P),D(r.crop,!0)&&(V=N.getBBox().width,E=null,v-V<i&&et===1?(E=Math.round(V-v+i),C[3]=Math.max(E,C[3])):v+V>t-i&&et===0&&(E=Math.round(v+V-t+i),C[1]=Math.max(E,C[1])),P-H/2<0?C[0]=Math.max(Math.round(-P+H/2),C[0]):P+H/2>e&&(C[2]=Math.max(Math.round(P+H/2-e),C[2])),N.sideOverflow=E)}}),(K(C)===0||this.verifyDataLabelOverflow(C))&&(this.placeDataLabels(),this.points.forEach(function(j){if($=w(r,j.options.dataLabels),o=D($.connectorWidth,1),o){let et;d=j.connector,N=j.dataLabel,N&&N._pos&&j.visible&&j.labelDistance>0?(_=N._attr.visibility,et=!d,et&&(j.connector=d=u.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+j.colorIndex+(j.className?" "+j.className:"")).add(x.dataLabelsGroup),u.styledMode||d.attr({"stroke-width":o,stroke:$.connectorColor||j.color||"#666666"})),d[et?"attr":"animate"]({d:j.getConnectorPath()}),d.attr("visibility",_)):d&&(j.connector=d.destroy())}})))}function m(){this.points.forEach(function(x){let l=x.dataLabel,u;l&&x.visible&&(u=l._pos,u?(l.sideOverflow&&(l._attr.width=Math.max(l.getBBox().width-l.sideOverflow,0),l.css({width:l._attr.width+"px",textOverflow:(this.options.dataLabels.style||{}).textOverflow||"ellipsis"}),l.shortened=!0),l.attr(l._attr),l[l.moved?"animate":"attr"](u),l.moved=!0):l&&l.attr({y:-9999})),delete x.distributeBox},this)}function h(x){let l=this.center,u=this.options,r=u.center,i=u.minSize||80,t=i,e=u.size!==null;return e||(r[0]!==null?t=Math.max(l[2]-Math.max(x[1],x[3]),i):(t=Math.max(l[2]-x[1]-x[3],i),l[0]+=(x[3]-x[1])/2),r[1]!==null?t=O(t,i,l[2]-Math.max(x[0],x[2])):(t=O(t,i,l[2]-x[0]-x[2]),l[1]+=(x[0]-x[2])/2),t<l[2]?(l[2]=t,l[3]=Math.min(u.thickness?Math.max(0,t-u.thickness*2):Math.max(0,b(u.innerSize||0,t)),t),this.translate(l),this.drawDataLabels&&this.drawDataLabels()):e=!0),e}}(f||(f={})),f}),ct(A,"Extensions/OverlappingDataLabels.js",[A["Core/Chart/Chart.js"],A["Core/Utilities.js"]],function(q,Y){const{addEvent:tt,fireEvent:it,isArray:Z,isNumber:st,objectEach:Q,pick:G}=Y;tt(q,"render",function(){let S=this,w=[];(this.labelCollectors||[]).forEach(function(D){w=w.concat(D())}),(this.yAxis||[]).forEach(function(D){D.stacking&&D.options.stackLabels&&!D.options.stackLabels.allowOverlap&&Q(D.stacking.stacks,function(b){Q(b,function(f){f.label&&w.push(f.label)})})}),(this.series||[]).forEach(function(D){const b=D.options.dataLabels;if(D.visible&&!(b.enabled===!1&&!D._hasPointLabels)){const f=I=>I.forEach(p=>{p.visible&&(Z(p.dataLabels)?p.dataLabels:p.dataLabel?[p.dataLabel]:[]).forEach(function(y){const T=y.options;y.labelrank=G(T.labelrank,p.labelrank,p.shapeArgs&&p.shapeArgs.height),T.allowOverlap?(y.oldOpacity=y.opacity,y.newOpacity=1,K(y,S)):w.push(y)})});f(D.nodes||[]),f(D.points)}}),this.hideOverlappingLabels(w)}),q.prototype.hideOverlappingLabels=function(O){let S=this,w=O.length,D=S.renderer,b,f,I,p,c,y,T,m=!1,h=function(l,u){return!(u.x>=l.x+l.width||u.x+u.width<=l.x||u.y>=l.y+l.height||u.y+u.height<=l.y)},x=function(l){let u,r,i,t=l.box?0:l.padding||0,e=0,s=0,n,a;if(l&&(!l.alignAttr||l.placed))return u=l.alignAttr||{x:l.attr("x"),y:l.attr("y")},r=l.parentGroup,l.width||(i=l.getBBox(),l.width=i.width,l.height=i.height,e=D.fontMetrics(l.element).h),n=l.width-2*t,a={left:"0",center:"0.5",right:"1"}[l.alignValue],a?s=+a*n:st(l.x)&&Math.round(l.x)!==l.translateX&&(s=l.x-l.translateX),{x:u.x+(r.translateX||0)+t-(s||0),y:u.y+(r.translateY||0)+t-e,width:l.width-2*t,height:l.height-2*t}};for(f=0;f<w;f++)b=O[f],b&&(b.oldOpacity=b.opacity,b.newOpacity=1,b.absoluteBox=x(b));for(O.sort(function(l,u){return(u.labelrank||0)-(l.labelrank||0)}),f=0;f<w;f++)for(p=O[f],y=p&&p.absoluteBox,I=f+1;I<w;++I)c=O[I],T=c&&c.absoluteBox,y&&T&&p!==c&&p.newOpacity!==0&&c.newOpacity!==0&&p.visibility!=="hidden"&&c.visibility!=="hidden"&&h(y,T)&&((p.labelrank<c.labelrank?p:c).newOpacity=0);O.forEach(function(l){K(l,S)&&(m=!0)}),m&&it(S,"afterHideAllOverlappingLabels")};function K(O,S){let w,D,b=!1;return O&&(D=O.newOpacity,O.oldOpacity!==D&&(O.alignAttr&&O.placed?(O[D?"removeClass":"addClass"]("highcharts-data-label-hidden"),w=function(){S.styledMode||O.css({pointerEvents:D?"auto":"none"})},b=!0,O.alignAttr.opacity=D,O[O.isOld?"animate":"attr"](O.alignAttr,null,w),it(S,"afterHideOverlappingLabel")):O.attr({opacity:D})),O.isOld=!0),b}}),ct(A,"Extensions/BorderRadius.js",[A["Core/Defaults.js"],A["Core/Series/Series.js"],A["Core/Series/SeriesRegistry.js"],A["Core/Renderer/SVG/SVGElement.js"],A["Core/Renderer/SVG/SVGRenderer.js"],A["Core/Utilities.js"]],function(q,Y,tt,it,Z,st){const{defaultOptions:Q}=q,{seriesTypes:G}=tt,{addEvent:K,extend:O,isObject:S,merge:w,relativeLength:D}=st,b={radius:0,scope:"stack",where:void 0},f=(c,y)=>(S(c)||(c={radius:c||0}),w(b,y,c)),I=(c,y,T)=>{const m=c[y];let h=c[y+1];h[0]==="Z"&&(h=c[0]);let x,l,u;if((m[0]==="M"||m[0]==="L")&&h[0]==="A"?(x=m,l=h,u=!0):m[0]==="A"&&(h[0]==="M"||h[0]==="L")&&(x=h,l=m),x&&l&&l.params){const r=l[1],i=l[5],t=l.params,{start:e,end:s,cx:n,cy:a}=t,M=i?r-T:r+T,g=M?Math.asin(T/M):0,k=i?g:-g,C=Math.cos(g)*M;u?(t.start=e+k,x[1]=n+C*Math.cos(e),x[2]=a+C*Math.sin(e),c.splice(y+1,0,["A",T,T,0,0,1,n+r*Math.cos(t.start),a+r*Math.sin(t.start)])):(t.end=s-k,l[6]=n+r*Math.cos(t.end),l[7]=a+r*Math.sin(t.end),c.splice(y+1,0,["A",T,T,0,0,1,n+C*Math.cos(s),a+C*Math.sin(s)])),l[4]=Math.abs(t.end-t.start)<Math.PI?0:1}};if(it.symbolCustomAttribs.indexOf("borderRadius")===-1){it.symbolCustomAttribs.push("borderRadius","brBoxHeight","brBoxY");const c=Z.prototype.symbols.arc;Z.prototype.symbols.arc=function(T,m,h,x,l={}){const u=c(T,m,h,x,l),{innerR:r=0,r:i=h,start:t=0,end:e=0}=l;if(l.open||!l.borderRadius)return u;const s=e-t,n=Math.sin(s/2),a=Math.max(Math.min(D(l.borderRadius||0,i-r),(i-r)/2,i*n/(1+n)),0),M=Math.min(a,2*(s/Math.PI)*r);let g=u.length-1;for(;g--;)I(u,g,g>1?M:a);return u};const y=Z.prototype.symbols.roundedRect;Z.prototype.symbols.roundedRect=function(T,m,h,x,l={}){const u=y(T,m,h,x,l),{r=0,brBoxHeight:i=x,brBoxY:t=m}=l,e=m-t,s=t+i-(m+x),n=e-r>-.1?0:r,a=s-r>-.1?0:r,M=Math.max(n&&e,0),g=Math.max(a&&s,0),k=[T+n,m],C=[T+h-n,m],B=[T+h,m+n],L=[T+h,m+x-a],o=[T+h-a,m+x],d=[T+a,m+x],N=[T,m+x-a],V=[T,m+n],R=(H,v)=>Math.sqrt(Math.pow(H,2)-Math.pow(v,2));if(M){const H=R(n,n-M);k[0]-=H,C[0]+=H,B[1]=V[1]=m+n-M}if(x<n-M){const H=R(n,n-M-x);B[0]=L[0]=T+h-n+H,o[0]=Math.min(B[0],o[0]),d[0]=Math.max(L[0],d[0]),N[0]=V[0]=T+n-H,B[1]=V[1]=m+x}if(g){const H=R(a,a-g);o[0]+=H,d[0]-=H,L[1]=N[1]=m+x-a+g}if(x<a-g){const H=R(a,a-g-x);B[0]=L[0]=T+h-a+H,C[0]=Math.min(B[0],C[0]),k[0]=Math.max(L[0],k[0]),N[0]=V[0]=T+a-H,L[1]=N[1]=m}return u.length=0,u.push(["M",...k],["L",...C],["A",n,n,0,0,1,...B],["L",...L],["A",a,a,0,0,1,...o],["L",...d],["A",a,a,0,0,1,...N],["L",...V],["A",n,n,0,0,1,...k],["Z"]),u},K(G.pie,"afterTranslate",function(){const T=f(this.options.borderRadius);for(const m of this.points){const h=m.shapeArgs;h&&(h.borderRadius=D(T.radius,(h.r||0)-(h.innerR||0)))}}),K(Y,"afterColumnTranslate",function(){var T,m;if(this.options.borderRadius&&!(this.chart.is3d&&this.chart.is3d())){const{options:h,yAxis:x}=this,l=h.stacking==="percent",u=(m=(T=Q.plotOptions)===null||T===void 0?void 0:T[this.type])===null||m===void 0?void 0:m.borderRadius,r=f(h.borderRadius,S(u)?u:{}),i=x.options.reversed;for(const t of this.points){const{shapeArgs:e}=t;if(t.shapeType==="roundedRect"&&e){const{width:s=0,height:n=0,y:a=0}=e;let M=a,g=n;if(r.scope==="stack"&&t.stackTotal){const L=x.translate(l?100:t.stackTotal,!1,!0,!1,!0),o=x.translate(h.threshold||0,!1,!0,!1,!0),d=this.crispCol(0,Math.min(L,o),0,Math.abs(L-o));M=d.y,g=d.height}const k=(t.negative?-1:1)*(i?-1:1)===-1;let C=r.where;!C&&this.is("waterfall")&&Math.abs((t.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(C="all"),C||(C="end");const B=Math.min(D(r.radius,s),s/2,C==="all"?n/2:1/0)||0;C==="end"&&(k&&(M-=B),g+=B),O(e,{brBoxHeight:g,brBoxY:M,r:B})}}}},{order:9})}return{optionsToObject:f}}),ct(A,"Core/Responsive.js",[A["Core/Utilities.js"]],function(q){const{diffObjects:Y,extend:tt,find:it,isArray:Z,isObject:st,merge:Q,objectEach:G,pick:K,splat:O,uniqueKey:S}=q;var w;return function(D){const b=[];function f(c){return q.pushUnique(b,c)&&tt(c.prototype,{matchResponsiveRule:I,setResponsive:p}),c}D.compose=f;function I(c,y){const T=c.condition;(T.callback||function(){return this.chartWidth<=K(T.maxWidth,Number.MAX_VALUE)&&this.chartHeight<=K(T.maxHeight,Number.MAX_VALUE)&&this.chartWidth>=K(T.minWidth,0)&&this.chartHeight>=K(T.minHeight,0)}).call(this)&&y.push(c._id)}function p(c,y){const T=this.options.responsive,m=this.currentResponsive;let h=[],x;!y&&T&&T.rules&&T.rules.forEach(r=>{typeof r._id>"u"&&(r._id=S()),this.matchResponsiveRule(r,h)},this);const l=Q(...h.map(r=>it((T||{}).rules||[],i=>i._id===r)).map(r=>r&&r.chartOptions));l.isResponsiveOptions=!0,h=h.toString()||void 0;const u=m&&m.ruleIds;h!==u&&(m&&this.update(m.undoOptions,c,!0),h?(x=Y(l,this.options,!0,this.collectionsWithUpdate),x.isResponsiveOptions=!0,this.currentResponsive={ruleIds:h,mergedOptions:l,undoOptions:x},this.update(l,c,!0)):this.currentResponsive=void 0)}}(w||(w={})),w}),ct(A,"masters/highcharts.src.js",[A["Core/Globals.js"],A["Core/Utilities.js"],A["Core/Defaults.js"],A["Core/Animation/Fx.js"],A["Core/Animation/AnimationUtilities.js"],A["Core/Renderer/HTML/AST.js"],A["Core/Templating.js"],A["Core/Renderer/RendererUtilities.js"],A["Core/Renderer/SVG/SVGElement.js"],A["Core/Renderer/SVG/SVGRenderer.js"],A["Core/Renderer/HTML/HTMLElement.js"],A["Core/Renderer/HTML/HTMLRenderer.js"],A["Core/Axis/Axis.js"],A["Core/Axis/DateTimeAxis.js"],A["Core/Axis/LogarithmicAxis.js"],A["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],A["Core/Axis/Tick.js"],A["Core/Tooltip.js"],A["Core/Series/Point.js"],A["Core/Pointer.js"],A["Core/Legend/Legend.js"],A["Core/Chart/Chart.js"],A["Core/Axis/Stacking/StackingAxis.js"],A["Core/Axis/Stacking/StackItem.js"],A["Core/Series/Series.js"],A["Core/Series/SeriesRegistry.js"],A["Series/Column/ColumnSeries.js"],A["Series/Column/ColumnDataLabel.js"],A["Series/Pie/PieSeries.js"],A["Series/Pie/PieDataLabel.js"],A["Core/Series/DataLabel.js"],A["Core/Responsive.js"],A["Core/Color/Color.js"],A["Core/Time.js"]],function(q,Y,tt,it,Z,st,Q,G,K,O,S,w,D,b,f,I,p,c,y,T,m,h,x,l,u,r,i,t,e,s,n,a,M,g){const k=q;return k.animate=Z.animate,k.animObject=Z.animObject,k.getDeferredAnimation=Z.getDeferredAnimation,k.setAnimation=Z.setAnimation,k.stop=Z.stop,k.timers=it.timers,k.AST=st,k.Axis=D,k.Chart=h,k.chart=h.chart,k.Fx=it,k.Legend=m,k.PlotLineOrBand=I,k.Point=y,k.Pointer=T,k.Series=u,k.StackItem=l,k.SVGElement=K,k.SVGRenderer=O,k.Templating=Q,k.Tick=p,k.Time=g,k.Tooltip=c,k.Color=M,k.color=M.parse,w.compose(O),S.compose(K),T.compose(h),m.compose(h),k.defaultOptions=tt.defaultOptions,k.getOptions=tt.getOptions,k.time=tt.defaultTime,k.setOptions=tt.setOptions,k.dateFormat=Q.dateFormat,k.format=Q.format,k.numberFormat=Q.numberFormat,k.addEvent=Y.addEvent,k.arrayMax=Y.arrayMax,k.arrayMin=Y.arrayMin,k.attr=Y.attr,k.clearTimeout=Y.clearTimeout,k.correctFloat=Y.correctFloat,k.createElement=Y.createElement,k.css=Y.css,k.defined=Y.defined,k.destroyObjectProperties=Y.destroyObjectProperties,k.discardElement=Y.discardElement,k.distribute=G.distribute,k.erase=Y.erase,k.error=Y.error,k.extend=Y.extend,k.extendClass=Y.extendClass,k.find=Y.find,k.fireEvent=Y.fireEvent,k.getMagnitude=Y.getMagnitude,k.getStyle=Y.getStyle,k.inArray=Y.inArray,k.isArray=Y.isArray,k.isClass=Y.isClass,k.isDOMElement=Y.isDOMElement,k.isFunction=Y.isFunction,k.isNumber=Y.isNumber,k.isObject=Y.isObject,k.isString=Y.isString,k.keys=Y.keys,k.merge=Y.merge,k.normalizeTickInterval=Y.normalizeTickInterval,k.objectEach=Y.objectEach,k.offset=Y.offset,k.pad=Y.pad,k.pick=Y.pick,k.pInt=Y.pInt,k.relativeLength=Y.relativeLength,k.removeEvent=Y.removeEvent,k.seriesType=r.seriesType,k.splat=Y.splat,k.stableSort=Y.stableSort,k.syncTimeout=Y.syncTimeout,k.timeUnits=Y.timeUnits,k.uniqueKey=Y.uniqueKey,k.useSerialIds=Y.useSerialIds,k.wrap=Y.wrap,t.compose(i),n.compose(u),b.compose(D),f.compose(D),s.compose(e),I.compose(D),a.compose(h),x.compose(D,h,u),c.compose(T),k}),ct(A,"Core/Axis/BrokenAxis.js",[A["Core/Axis/Stacking/StackItem.js"],A["Core/Utilities.js"]],function(q,Y){const{addEvent:tt,find:it,fireEvent:Z,isArray:st,isNumber:Q,pick:G}=Y;var K;return function(O){const S=[];function w(h,x){if(Y.pushUnique(S,h)&&(h.keepProps.push("brokenAxis"),tt(h,"init",I),tt(h,"afterInit",D),tt(h,"afterSetTickPositions",f),tt(h,"afterSetOptions",b)),Y.pushUnique(S,x)){const l=x.prototype;l.drawBreaks=y,l.gappedPath=T,tt(x,"afterGeneratePoints",p),tt(x,"afterRender",c)}return h}O.compose=w;function D(){typeof this.brokenAxis<"u"&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function b(){const h=this;h.brokenAxis&&h.brokenAxis.hasBreaks&&(h.options.ordinal=!1)}function f(){const h=this,x=h.brokenAxis;if(x&&x.hasBreaks){const l=h.tickPositions,u=h.tickPositions.info,r=[];for(let i=0;i<l.length;i++)x.isInAnyBreak(l[i])||r.push(l[i]);h.tickPositions=r,h.tickPositions.info=u}}function I(){const h=this;h.brokenAxis||(h.brokenAxis=new m(h))}function p(){const{isDirty:h,options:{connectNulls:x},points:l,xAxis:u,yAxis:r}=this;if(h){let i=l.length;for(;i--;){const t=l[i],s=!(t.y===null&&x===!1)&&(u&&u.brokenAxis&&u.brokenAxis.isInAnyBreak(t.x,!0)||r&&r.brokenAxis&&r.brokenAxis.isInAnyBreak(t.y,!0));t.visible=s?!1:t.options.visible!==!1}}}function c(){this.drawBreaks(this.xAxis,["x"]),this.drawBreaks(this.yAxis,G(this.pointArrayMap,["y"]))}function y(h,x){const l=this,u=l.points;let r,i,t,e;if(h&&h.brokenAxis&&h.brokenAxis.hasBreaks){const s=h.brokenAxis;x.forEach(function(n){r=s&&s.breakArray||[],i=h.isXAxis?h.min:G(l.options.threshold,h.min),u.forEach(function(a){e=G(a["stack"+n.toUpperCase()],a[n]),r.forEach(function(M){Q(i)&&Q(e)&&(t=!1,i<M.from&&e>M.to||i>M.from&&e<M.from?t="pointBreak":(i<M.from&&e>M.from&&e<M.to||i>M.from&&e>M.to&&e<M.from)&&(t="pointInBreak"),t&&Z(h,t,{point:a,brk:M}))})})})}}function T(){const h=this.currentDataGrouping,x=h&&h.gapSize,l=this.points.slice(),u=this.yAxis;let r=this.options.gapSize,i=l.length-1,t;if(r&&i>0){this.options.gapUnit!=="value"&&(r*=this.basePointRange),x&&x>r&&x>=this.basePointRange&&(r=x);let e,s;for(;i--;)if(s&&s.visible!==!1||(s=l[i+1]),e=l[i],!(s.visible===!1||e.visible===!1)){if(s.x-e.x>r){const n=(e.x+s.x)/2;l.splice(i+1,0,{isNull:!0,x:n}),u.stacking&&this.options.stacking&&(t=u.stacking.stacks[this.stackKey][n]=new q(u,u.options.stackLabels,!1,n,this.stack),t.total=0)}s=e}}return this.getGraphPath(l)}class m{static isInBreak(x,l){const u=x.repeat||1/0,r=x.from,i=x.to-x.from,t=l>=r?(l-r)%u:u-(r-l)%u;let e;return x.inclusive?e=t<=i:e=t<i&&t!==0,e}static lin2Val(x){const u=this.brokenAxis,r=u&&u.breakArray;if(!r||!Q(x))return x;let i=x,t,e;for(e=0;e<r.length&&(t=r[e],!(t.from>=i));e++)(t.to<i||m.isInBreak(t,i))&&(i+=t.len);return i}static val2Lin(x){const u=this.brokenAxis,r=u&&u.breakArray;if(!r||!Q(x))return x;let i=x,t,e;for(e=0;e<r.length;e++)if(t=r[e],t.to<=x)i-=t.len;else{if(t.from>=x)break;if(m.isInBreak(t,x)){i-=x-t.from;break}}return i}constructor(x){this.hasBreaks=!1,this.axis=x}findBreakAt(x,l){return it(l,function(u){return u.from<x&&x<u.to})}isInAnyBreak(x,l){const u=this,r=u.axis,i=r.options.breaks||[];let t=i.length,e,s,n;if(t&&Q(x)){for(;t--;)m.isInBreak(i[t],x)&&(e=!0,s||(s=G(i[t].showPoints,!r.isXAxis)));e&&l?n=e&&!s:n=e}return n}setBreaks(x,l){const u=this,r=u.axis,i=st(x)&&!!x.length;r.isDirty=u.hasBreaks!==i,u.hasBreaks=i,x!==r.options.breaks&&(r.options.breaks=r.userOptions.breaks=x),r.forceRedraw=!0,r.series.forEach(function(t){t.isDirty=!0}),!i&&r.val2lin===m.val2Lin&&(delete r.val2lin,delete r.lin2val),i&&(r.userOptions.ordinal=!1,r.lin2val=m.lin2Val,r.val2lin=m.val2Lin,r.setExtremes=function(t,e,s,n,a){if(u.hasBreaks){const M=this.options.breaks||[];let g;for(;g=u.findBreakAt(t,M);)t=g.to;for(;g=u.findBreakAt(e,M);)e=g.from;e<t&&(e=t)}r.constructor.prototype.setExtremes.call(this,t,e,s,n,a)},r.setAxisTranslation=function(){if(r.constructor.prototype.setAxisTranslation.call(this),u.unitLength=void 0,u.hasBreaks){const t=r.options.breaks||[],e=[],s=[],n=G(r.pointRangePadding,0);let a=0,M,g,k=r.userMin||r.min,C=r.userMax||r.max,B,L;t.forEach(function(o){g=o.repeat||1/0,Q(k)&&Q(C)&&(m.isInBreak(o,k)&&(k+=o.to%g-k%g),m.isInBreak(o,C)&&(C-=C%g-o.from%g))}),t.forEach(function(o){if(B=o.from,g=o.repeat||1/0,Q(k)&&Q(C)){for(;B-g>k;)B-=g;for(;B<k;)B+=g;for(L=B;L<C;L+=g)e.push({value:L,move:"in"}),e.push({value:L+o.to-o.from,move:"out",size:o.breakSize})}}),e.sort(function(o,d){return o.value===d.value?(o.move==="in"?0:1)-(d.move==="in"?0:1):o.value-d.value}),M=0,B=k,e.forEach(function(o){M+=o.move==="in"?1:-1,M===1&&o.move==="in"&&(B=o.value),M===0&&Q(B)&&(s.push({from:B,to:o.value,len:o.value-B-(o.size||0)}),a+=o.value-B-(o.size||0))}),u.breakArray=s,Q(k)&&Q(C)&&Q(r.min)&&(u.unitLength=C-k-a+n,Z(r,"afterBreaks"),r.staticScale?r.transA=r.staticScale:u.unitLength&&(r.transA*=(C-r.min+n)/u.unitLength),n&&(r.minPixelPadding=r.transA*(r.minPointOffset||0)),r.min=k,r.max=C)}}),G(l,!0)&&r.chart.redraw()}}O.Additions=m}(K||(K={})),K}),ct(A,"masters/modules/broken-axis.src.js",[A["Core/Globals.js"],A["Core/Axis/BrokenAxis.js"]],function(q,Y){const tt=q;Y.compose(tt.Axis,tt.Series)}),ct(A,"Extensions/DataGrouping/ApproximationRegistry.js",[],function(){return{}}),ct(A,"Extensions/DataGrouping/ApproximationDefaults.js",[A["Extensions/DataGrouping/ApproximationRegistry.js"],A["Core/Utilities.js"]],function(q,Y){const{arrayMax:tt,arrayMin:it,correctFloat:Z,extend:st,isNumber:Q}=Y;function G(y){const T=y.length;let m=p(y);return Q(m)&&T&&(m=Z(m/T)),m}function K(){const y=[];return[].forEach.call(arguments,function(T){y.push(G(T))}),typeof y[0]>"u"?void 0:y}function O(y){return y.length?y[y.length-1]:y.hasNulls?null:void 0}function S(y){return y.length?tt(y):y.hasNulls?null:void 0}function w(y,T,m){if(y=q.high(y),T=q.low(T),m=q.close(m),Q(y)||Q(T)||Q(m))return[y,T,m]}function D(y){return y.length?it(y):y.hasNulls?null:void 0}function b(y,T,m,h){if(y=q.open(y),T=q.high(T),m=q.low(m),h=q.close(h),Q(y)||Q(T)||Q(m)||Q(h))return[y,T,m,h]}function f(y){return y.length?y[0]:y.hasNulls?null:void 0}function I(y,T){if(y=q.low(y),T=q.high(T),Q(y)||Q(T))return[y,T];if(y===null&&T===null)return null}function p(y){let T=y.length,m;if(!T&&y.hasNulls)m=null;else if(T)for(m=0;T--;)m+=y[T];return m}const c={average:G,averages:K,close:O,high:S,hlc:w,low:D,ohlc:b,open:f,range:I,sum:p};return st(q,c),c}),ct(A,"Extensions/DataGrouping/DataGroupingDefaults.js",[],function(){return{common:{groupPixelWidth:2,dateTimeLabelFormats:{millisecond:["%A, %e %b, %H:%M:%S.%L","%A, %e %b, %H:%M:%S.%L","-%H:%M:%S.%L"],second:["%A, %e %b, %H:%M:%S","%A, %e %b, %H:%M:%S","-%H:%M:%S"],minute:["%A, %e %b, %H:%M","%A, %e %b, %H:%M","-%H:%M"],hour:["%A, %e %b, %H:%M","%A, %e %b, %H:%M","-%H:%M"],day:["%A, %e %b %Y","%A, %e %b","-%A, %e %b %Y"],week:["Week from %A, %e %b %Y","%A, %e %b","-%A, %e %b %Y"],month:["%B %Y","%B","-%B %Y"],year:["%Y","%Y","-%Y"]}},seriesSpecific:{line:{},spline:{},area:{},areaspline:{},arearange:{},column:{groupPixelWidth:10},columnrange:{groupPixelWidth:10},candlestick:{groupPixelWidth:10},ohlc:{groupPixelWidth:5},hlc:{groupPixelWidth:5},heikinashi:{groupPixelWidth:10}},units:[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1]],["week",[1]],["month",[1,3,6]],["year",null]]}}),ct(A,"Extensions/DataGrouping/DataGroupingAxisComposition.js",[A["Extensions/DataGrouping/DataGroupingDefaults.js"],A["Core/Utilities.js"]],function(q,Y){const{addEvent:tt,extend:it,merge:Z,pick:st}=Y,Q=[];let G;function K(f){const I=this,p=I.series;p.forEach(function(c){c.groupPixelWidth=void 0}),p.forEach(function(c){c.groupPixelWidth=I.getGroupPixelWidth&&I.getGroupPixelWidth(),c.groupPixelWidth&&(c.hasProcessed=!0),c.applyGrouping(!!f.hasExtremesChanged)})}function O(f){G=f,Y.pushUnique(Q,f)&&(tt(f,"afterSetScale",w),tt(f,"postProcessData",K),it(f.prototype,{applyGrouping:K,getGroupPixelWidth:S,setDataGrouping:D}))}function S(){const f=this.series;let I=f.length,p=0,c=!1,y,T;for(;I--;)T=f[I].options.dataGrouping,T&&(p=Math.max(p,st(T.groupPixelWidth,q.common.groupPixelWidth)),y=(f[I].processedXData||f[I].data).length,(f[I].groupPixelWidth||y>this.chart.plotSizeX/p||y&&T.forced)&&(c=!0));return c?p:0}function w(){this.series.forEach(function(f){f.hasProcessed=!1})}function D(f,I){const p=this;let c;if(I=st(I,!0),f||(f={forced:!1,units:null}),this instanceof G)for(c=this.series.length;c--;)this.series[c].update({dataGrouping:f},!1);else this.chart.options.series.forEach(function(y){y.dataGrouping=typeof f=="boolean"?f:Z(f,y.dataGrouping)});p.ordinal&&(p.ordinal.slope=void 0),I&&this.chart.redraw()}return{compose:O}}),ct(A,"Extensions/DataGrouping/DataGroupingSeriesComposition.js",[A["Extensions/DataGrouping/ApproximationRegistry.js"],A["Extensions/DataGrouping/DataGroupingDefaults.js"],A["Core/Axis/DateTimeAxis.js"],A["Core/Defaults.js"],A["Core/Series/SeriesRegistry.js"],A["Core/Utilities.js"]],function(q,Y,tt,it,Z,st){const{series:{prototype:Q}}=Z,{addEvent:G,defined:K,error:O,extend:S,isNumber:w,merge:D,pick:b}=st,f=Q.generatePoints,I=[];function p(t,e){K(e[0])&&w(t.min)&&w(t.dataMin)&&e[0]<t.min&&((!K(t.options.min)&&t.min<=t.dataMin||t.min===t.dataMin)&&(t.min=Math.min(e[0],t.min)),t.dataMin=Math.min(e[0],t.dataMin)),K(e[e.length-1])&&w(t.max)&&w(t.dataMax)&&e[e.length-1]>t.max&&((!K(t.options.max)&&w(t.dataMax)&&t.max>=t.dataMax||t.max===t.dataMax)&&(t.max=Math.max(e[e.length-1],t.max)),t.dataMax=Math.max(e[e.length-1],t.dataMax))}function c(t,e,s){const n=t.options,a=n.dataGrouping,M=t.currentDataGrouping&&t.currentDataGrouping.gapSize;let g;if(a&&t.xData&&M&&t.groupMap){const k=e.length-1,C=a.anchor,B=b(a.firstAnchor,C),L=b(a.lastAnchor,C);if(C&&C!=="start"){const o=M*{middle:.5,end:1}[C];for(g=e.length-1;g--&&g>0;)e[g]+=o}if(B&&B!=="start"&&t.xData[0]>=e[0]){const o=t.groupMap[0].start,d=t.groupMap[0].length;let N;w(o)&&w(d)&&(N=o+(d-1)),e[0]={middle:e[0]+.5*M,end:e[0]+M,firstPoint:t.xData[0],lastPoint:N&&t.xData[N]}[B]}if(L&&L!=="start"&&M&&e[k]>=s-M){const o=t.groupMap[t.groupMap.length-1].start;e[k]={middle:e[k]+.5*M,end:e[k]+M,firstPoint:o&&t.xData[o],lastPoint:t.xData[t.xData.length-1]}[L]}}}function y(t){const e=this,s=e.chart,n=e.options,a=n.dataGrouping,M=e.allowDG!==!1&&a&&b(a.enabled,s.options.isStock),g=e.visible||!s.options.chart.ignoreHiddenSeries,k=this.currentDataGrouping;let C,B,L=!1;M&&!e.requireSorting&&(e.requireSorting=L=!0);const o=r(e,t)===!1||!M;if(L&&(e.requireSorting=!1),!o){e.destroyGroupedData();const d=a.groupAll?e.xData:e.processedXData,N=a.groupAll?e.yData:e.processedYData,V=s.plotSizeX,R=e.xAxis,H=R.options.ordinal,v=e.groupPixelWidth;let P,_;if(v&&d&&d.length&&V){_=!0,e.isDirty=!0,e.points=null;const z=R.getExtremes(),$=z.min,j=z.max,et=H&&R.ordinal&&R.ordinal.getGroupIntervalFactor($,j,e)||1,ot=v*(j-$)/V*et,J=R.getTimeTicks(tt.Additions.prototype.normalizeTimeTickInterval(ot,a.units||Y.units),Math.min($,d[0]),Math.max(j,d[d.length-1]),R.options.startOfWeek,d,e.closestPointRange),at=Q.groupData.apply(e,[d,N,J,a.approximation]);let W=at.groupedXData,F=at.groupedYData,E=0;for(a&&a.smoothed&&W.length&&(a.firstAnchor="firstPoint",a.anchor="middle",a.lastAnchor="lastPoint",O(32,!1,s,{"dataGrouping.smoothed":"use dataGrouping.anchor"})),c(e,W,j),P=1;P<J.length;P++)(!J.info.segmentStarts||J.info.segmentStarts.indexOf(P)===-1)&&(E=Math.max(J[P]-J[P-1],E));C=J.info,C.gapSize=E,e.closestPointRange=J.info.totalRange,e.groupMap=at.groupMap,g&&p(R,W),a.groupAll&&(e.allGroupedData=F,B=e.cropData(W,F,R.min,R.max,1),W=B.xData,F=B.yData,e.cropStart=B.start),e.processedXData=W,e.processedYData=F}else e.groupMap=null;e.hasGroupedData=_,e.currentDataGrouping=C,e.preventGraphAnimation=(k&&k.totalRange)!==(C&&C.totalRange)}}function T(t){const e=t.prototype.pointClass;st.pushUnique(I,e)&&G(e,"update",function(){if(this.dataGroup)return O(24,!1,this.series.chart),!1}),st.pushUnique(I,t)&&(G(t,"afterSetOptions",u),G(t,"destroy",m),S(t.prototype,{applyGrouping:y,destroyGroupedData:m,generatePoints:h,getDGApproximation:x,groupData:l}))}function m(){this.groupedData&&(this.groupedData.forEach(function(t,e){t&&(this.groupedData[e]=t.destroy?t.destroy():null)},this),this.groupedData.length=0)}function h(){f.apply(this),this.destroyGroupedData(),this.groupedData=this.hasGroupedData?this.points:null}function x(){return this.is("arearange")?"range":this.is("ohlc")?"ohlc":this.is("hlc")?"hlc":this.is("column")||this.options.cumulative?"sum":"average"}function l(t,e,s,n){const a=this,M=a.data,g=a.options&&a.options.data,k=[],C=[],B=[],L=t.length,o=!!e,d=[],N=a.pointArrayMap,V=N&&N.length,R=["x"].concat(N||["y"]),H=this.options.dataGrouping&&this.options.dataGrouping.groupAll;let v,P,_,z=0,$=0;const j=typeof n=="function"?n:n&&q[n]?q[n]:q[a.getDGApproximation&&a.getDGApproximation()||"average"];if(V){let ot=N.length;for(;ot--;)d.push([])}else d.push([]);const et=V||1;for(let ot=0;ot<=L;ot++)if(!(t[ot]<s[0])){for(;typeof s[z+1]<"u"&&t[ot]>=s[z+1]||ot===L;){v=s[z],a.dataGroupInfo={start:H?$:a.cropStart+$,length:d[0].length},_=j.apply(a,d),a.pointClass&&!K(a.dataGroupInfo.options)&&(a.dataGroupInfo.options=D(a.pointClass.prototype.optionsToObject.call({series:a},a.options.data[a.cropStart+$])),R.forEach(function(J){delete a.dataGroupInfo.options[J]})),typeof _<"u"&&(k.push(v),C.push(_),B.push(a.dataGroupInfo)),$=ot;for(let J=0;J<et;J++)d[J].length=0,d[J].hasNulls=!1;if(z+=1,ot===L)break}if(ot===L)break;if(N){const J=a.options.dataGrouping&&a.options.dataGrouping.groupAll?ot:a.cropStart+ot,at=M&&M[J]||a.pointClass.prototype.applyOptions.apply({series:a},[g[J]]);let W;for(let F=0;F<V;F++)W=at[N[F]],w(W)?d[F].push(W):W===null&&(d[F].hasNulls=!0)}else P=o?e[ot]:null,w(P)?d[0].push(P):P===null&&(d[0].hasNulls=!0)}return{groupedXData:k,groupedYData:C,groupMap:B}}function u(t){const e=t.options,s=this.type,n=this.chart.options.plotOptions,a=this.useCommonDataGrouping&&Y.common,M=Y.seriesSpecific;let g=it.defaultOptions.plotOptions[s].dataGrouping;if(n&&(M[s]||a)){const k=this.chart.rangeSelector;g||(g=D(Y.common,M[s])),e.dataGrouping=D(a,g,n.series&&n.series.dataGrouping,n[s].dataGrouping,this.userOptions.dataGrouping,!e.isInternal&&k&&w(k.selected)&&k.buttonOptions[k.selected].dataGrouping)}}function r(t,e){return!(t.isCartesian&&!t.isDirty&&!t.xAxis.isDirty&&!t.yAxis.isDirty&&!e)}return{compose:T,groupData:l}}),ct(A,"Extensions/DataGrouping/DataGrouping.js",[A["Extensions/DataGrouping/DataGroupingAxisComposition.js"],A["Extensions/DataGrouping/DataGroupingDefaults.js"],A["Extensions/DataGrouping/DataGroupingSeriesComposition.js"],A["Core/Templating.js"],A["Core/Utilities.js"]],function(q,Y,tt,it,Z){const{format:st}=it,{addEvent:Q,extend:G,isNumber:K}=Z,O=[];function S(b,f,I){q.compose(b),tt.compose(f),I&&Z.pushUnique(O,I)&&Q(I,"headerFormatter",w)}function w(b){const f=this.chart,I=f.time,p=b.labelConfig,c=p.series,y=c.options,T=c.tooltipOptions,m=y.dataGrouping,h=c.xAxis;let x=T.xDateFormat,l,u,r,i,t,e=T[b.isFooter?"footerFormat":"headerFormat"];h&&h.options.type==="datetime"&&m&&K(p.key)&&(u=c.currentDataGrouping,r=m.dateTimeLabelFormats||Y.common.dateTimeLabelFormats,u?(i=r[u.unitName],u.count===1?x=i[0]:(x=i[1],l=i[2])):!x&&r&&h.dateTime&&(x=h.dateTime.getXDateFormat(p.x,T.dateTimeLabelFormats)),t=I.dateFormat(x,p.key),l&&(t+=I.dateFormat(l,p.key+u.totalRange-1)),c.chart.styledMode&&(e=this.styledModeFormat(e)),b.text=st(e,{point:G(p.point,{key:t}),series:c},f),b.preventDefault())}return{compose:S,groupData:tt.groupData}}),ct(A,"masters/modules/datagrouping.src.js",[A["Core/Globals.js"],A["Extensions/DataGrouping/ApproximationDefaults.js"],A["Extensions/DataGrouping/ApproximationRegistry.js"],A["Extensions/DataGrouping/DataGrouping.js"]],function(q,Y,tt,it){const Z=q;Z.dataGrouping={approximationDefaults:Y,approximations:tt},it.compose(Z.Axis,Z.Series,Z.Tooltip)}),ct(A,"Extensions/MouseWheelZoom/MouseWheelZoom.js",[A["Core/Utilities.js"]],function(q){const{addEvent:Y,isObject:tt,pick:it,defined:Z,merge:st}=q,Q=[],G={enabled:!0,sensitivity:1.1},K=p=>tt(p)?st(G,p):st(G,{enabled:Z(p)?p:!0}),O=function(p,c){return p.x+p.width>c.x+c.width&&(p.width>c.width?(p.width=c.width,p.x=c.x):p.x=c.x+c.width-p.width),p.width>c.width&&(p.width=c.width),p.x<c.x&&(p.x=c.x),p.y+p.height>c.y+c.height&&(p.height>c.height?(p.height=c.height,p.y=c.y):p.y=c.y+c.height-p.height),p.height>c.height&&(p.height=c.height),p.y<c.y&&(p.y=c.y),p};let S,w;const D=function(p,c,y,T,m,h,x){const l=p.xAxis[0],u=p.yAxis[0],r=it(x.type,p.options.chart.zooming.type,"x"),i=/x/.test(r),t=/y/.test(r);if(Z(l.max)&&Z(l.min)&&Z(u.max)&&Z(u.min)&&Z(l.dataMax)&&Z(l.dataMin)&&Z(u.dataMax)&&Z(u.dataMin)){if(t){Z(S)&&clearTimeout(S);const{startOnTick:_,endOnTick:z}=u.options;w||(w={startOnTick:_,endOnTick:z}),(_||z)&&u.setOptions({startOnTick:!1,endOnTick:!1}),S=setTimeout(()=>{if(w){u.setOptions(w);const{min:$,max:j}=u.getExtremes();u.forceRedraw=!0,u.setExtremes($,j),w=void 0}},400)}if(p.inverted){const _=u.pos+u.len;y=l.toValue(h),T=u.toValue(m);const z=m;m=h,h=_-z+u.pos}let e=m?(m-l.pos)/l.len:.5;(l.reversed&&!p.inverted||p.inverted&&!l.reversed)&&(e=1-e);let s=1-(h?(h-u.pos)/u.len:.5);u.reversed&&(s=1-s);const n=l.max-l.min,a=it(y,l.min+n/2),M=n*c,g=u.max-u.min,k=it(T,u.min+g/2),C=g*c,B=a-M*e,L=k-C*s,o=l.dataMax-l.dataMin,d=u.dataMax-u.dataMin,N=l.dataMin-o*l.options.minPadding,V=o+o*l.options.minPadding+o*l.options.maxPadding,R=u.dataMin-d*u.options.minPadding,H=d+d*u.options.minPadding+d*u.options.maxPadding,v=O({x:B,y:L,width:M,height:C},{x:N,y:R,width:V,height:H}),P=v.x<=N&&v.width>=V&&v.y<=R&&v.height>=H;Z(c)&&!P?(i&&l.setExtremes(v.x,v.x+v.width,!1),t&&u.setExtremes(v.y,v.y+v.height,!1)):(i&&l.setExtremes(void 0,void 0,!1),t&&u.setExtremes(void 0,void 0,!1)),p.redraw(!1)}};function b(){const p=this,c=K(p.options.chart.zooming.mouseWheel);c.enabled&&Y(this.container,"wheel",y=>{if(y=this.pointer.normalize(y),p.isInsidePlot(y.chartX-p.plotLeft,y.chartY-p.plotTop)){const T=it(c.sensitivity,1.1),m=y.detail||(y.deltaY||0)/120;D(p,Math.pow(T,m),p.xAxis[0].toValue(y.chartX),p.yAxis[0].toValue(y.chartY),y.chartX,y.chartY,c)}y.preventDefault&&y.preventDefault()})}function f(p){Q.indexOf(p)===-1&&(Q.push(p),Y(p,"afterGetContainer",b))}return{compose:f}}),ct(A,"masters/modules/mouse-wheel-zoom.src.js",[A["Core/Globals.js"],A["Extensions/MouseWheelZoom/MouseWheelZoom.js"]],function(q,Y){const tt=q;Y.compose(tt.Chart)}),ct(A,"Series/DataModifyComposition.js",[A["Core/Axis/Axis.js"],A["Core/Series/Point.js"],A["Core/Series/Series.js"],A["Core/Utilities.js"]],function(q,Y,tt,it){const{prototype:{tooltipFormatter:Z}}=Y,{addEvent:st,arrayMax:Q,arrayMin:G,correctFloat:K,defined:O,isArray:S,isNumber:w,isString:D,pick:b}=it;var f;return function(I){const p=[];function c(e,s,n){if(it.pushUnique(p,e)){const a=e.prototype;a.setCompare=x,a.setCumulative=r,st(e,"afterInit",m),st(e,"afterGetExtremes",h),st(e,"afterProcessData",l)}if(it.pushUnique(p,s)){const a=s.prototype;a.setCompare=u,a.setModifier=y,a.setCumulative=i}if(it.pushUnique(p,n)){const a=n.prototype;a.tooltipFormatter=T}return e}I.compose=c;function y(e,s,n){this.isXAxis||(this.series.forEach(function(a){e==="compare"&&typeof s!="boolean"?a.setCompare(s,!1):e==="cumulative"&&!D(s)&&a.setCumulative(s,!1)}),b(n,!0)&&this.chart.redraw())}function T(e){const s=this,{numberFormatter:n}=s.series.chart,a=function(M){e=e.replace("{point."+M+"}",(s[M]>0&&M==="change"?"+":"")+n(s[M],b(s.series.tooltipOptions.changeDecimals,2)))};return O(s.change)&&a("change"),O(s.cumulativeSum)&&a("cumulativeSum"),Z.apply(this,[e])}function m(){const e=this.options.compare;let s;(e==="percent"||e==="value"||this.options.cumulative)&&(s=new t(this),e==="percent"||e==="value"?s.initCompare(e):s.initCumulative()),this.dataModify=s}function h(e){const s=e.dataExtremes,n=s.activeYData;if(this.dataModify&&s){let a;this.options.compare?a=[this.dataModify.modifyValue(s.dataMin),this.dataModify.modifyValue(s.dataMax)]:this.options.cumulative&&S(n)&&n.length>=2&&(a=t.getCumulativeExtremes(n)),a&&(s.dataMin=G(a),s.dataMax=Q(a))}}function x(e,s){this.options.compare=this.userOptions.compare=e,this.update({},b(s,!0)),this.dataModify&&(e==="value"||e==="percent")?this.dataModify.initCompare(e):this.points.forEach(n=>{delete n.change})}function l(){const e=this;if(e.xAxis&&e.processedYData&&e.dataModify){const s=e.processedXData,n=e.processedYData,a=n.length,M=e.options.compareStart===!0?0:1;let g=-1,k;for(e.pointArrayMap&&(g=e.pointArrayMap.indexOf(e.options.pointValKey||e.pointValKey||"y")),k=0;k<a-M;k++){const C=n[k]&&g>-1?n[k][g]:n[k];if(w(C)&&C!==0&&s[k+M]>=(e.xAxis.min||0)){e.dataModify.compareValue=C;break}}}}function u(e,s){this.setModifier("compare",e,s)}function r(e,s){e=b(e,!1),this.options.cumulative=this.userOptions.cumulative=e,this.update({},b(s,!0)),this.dataModify?this.dataModify.initCumulative():this.points.forEach(n=>{delete n.cumulativeSum})}function i(e,s){this.setModifier("cumulative",e,s)}class t{constructor(s){this.series=s}modifyValue(){return 0}static getCumulativeExtremes(s){let n=1/0,a=-1/0;return s.reduce((M,g)=>{const k=M+g;return n=Math.min(n,k,M),a=Math.max(a,k,M),k}),[n,a]}initCompare(s){this.modifyValue=function(n,a){n===null&&(n=0);const M=this.compareValue;if(typeof n<"u"&&typeof M<"u"){if(s==="value")n-=M;else{const g=this.series.options.compareBase;n=100*(n/M)-(g===100?0:100)}if(typeof a<"u"){const g=this.series.points[a];g&&(g.change=n)}return n}return 0}}initCumulative(){this.modifyValue=function(s,n){if(s===null&&(s=0),s!==void 0&&n!==void 0){const a=n>0?this.series.points[n-1]:null;a&&a.cumulativeSum&&(s=K(a.cumulativeSum+s));const M=this.series.points[n];return M&&(M.cumulativeSum=s),s}return 0}}}I.Additions=t}(f||(f={})),f}),ct(A,"Core/Axis/NavigatorAxisComposition.js",[A["Core/Globals.js"],A["Core/Utilities.js"]],function(q,Y){const{isTouchDevice:tt}=q,{addEvent:it,correctFloat:Z,defined:st,isNumber:Q,pick:G}=Y,K=[];function O(){const D=this;D.navigatorAxis||(D.navigatorAxis=new w(D))}function S(D){console.log("onAxisZoom");const b=this,f=b.chart,I=f.options,p=I.navigator,c=b.navigatorAxis,y=f.zooming.pinchType,T=I.rangeSelector,m=f.zooming.type;if(b.isXAxis&&(p&&p.enabled||T&&T.enabled)){if(m==="y")D.zoomed=!1;else if((!tt&&m==="xy"||tt&&y==="xy")&&b.options.range){const h=c.previousZoom;st(D.newMin)?c.previousZoom=[b.min,b.max]:h&&(D.newMin=h[0],D.newMax=h[1],c.previousZoom=void 0)}}typeof D.zoomed<"u"&&D.preventDefault()}class w{static compose(b){Y.pushUnique(K,b)&&(b.keepProps.push("navigatorAxis"),it(b,"init",O),it(b,"zoom",S))}constructor(b){this.axis=b}destroy(){this.axis=void 0}toFixedRange(b,f,I,p){const c=this.axis,y=c.chart;let T=G(I,c.translate(b,!0,!c.horiz)),m=G(p,c.translate(f,!0,!c.horiz));const h=y&&y.fixedRange,x=(c.pointRange||0)/2;return st(I)||(T=Z(T+x)),st(p)||(m=Z(m-x)),h&&c.dataMin&&c.dataMax&&(m>=c.dataMax&&(T=Z(c.dataMax-h)),T<=c.dataMin&&(m=Z(c.dataMin+h))),(!Q(T)||!Q(m))&&(T=m=void 0),{min:T,max:m}}}return w}),ct(A,"Stock/Navigator/NavigatorDefaults.js",[A["Core/Color/Color.js"],A["Core/Series/SeriesRegistry.js"]],function(q,Y){const{parse:tt}=q,{seriesTypes:it}=Y;return{height:40,margin:25,maskInside:!0,handles:{width:7,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0,lineWidth:1,backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:tt("#667aff").setOpacity(.3).get(),outlineColor:"#999999",outlineWidth:1,series:{type:typeof it.areaspline>"u"?"line":"areaspline",fillOpacity:.05,lineWidth:1,compare:null,sonification:{enabled:!1},dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",units:[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2,3,4]],["week",[1,2,3]],["month",[1,3,6]],["year",null]]},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},threshold:null},xAxis:{overscroll:0,className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#000000",fontSize:"0.7em",opacity:.6,textOutline:"2px contrast"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}}}),ct(A,"Stock/Navigator/NavigatorSymbols.js",[],function(){function q(tt,it,Z,st,Q={}){const G=Q.width?Q.width/2:Z,K=Math.round(G/3)+.5;return st=Q.height||st,[["M",-G-1,.5],["L",G,.5],["L",G,st+.5],["L",-G-1,st+.5],["L",-G-1,.5],["M",-K,4],["L",-K,st-3],["M",K-1,4],["L",K-1,st-3]]}return{"navigator-handle":q}}),ct(A,"Stock/Navigator/NavigatorComposition.js",[A["Core/Defaults.js"],A["Core/Globals.js"],A["Core/Axis/NavigatorAxisComposition.js"],A["Stock/Navigator/NavigatorDefaults.js"],A["Stock/Navigator/NavigatorSymbols.js"],A["Core/Renderer/RendererRegistry.js"],A["Core/Utilities.js"]],function(q,Y,tt,it,Z,st,Q){const{defaultOptions:G,setOptions:K}=q,{isTouchDevice:O}=Y,{getRendererType:S}=st,{addEvent:w,extend:D,merge:b,pick:f}=Q,I=[];let p;function c(t,e,s,n){tt.compose(t),p=s,Q.pushUnique(I,e)&&(e.prototype.callbacks.push(l),w(e,"afterAddSeries",y),w(e,"afterSetChartSize",T),w(e,"afterUpdate",m),w(e,"beforeRender",h),w(e,"beforeShowResetZoom",x),w(e,"update",u)),Q.pushUnique(I,n)&&w(n,"afterUpdate",r),Q.pushUnique(I,S)&&D(S().prototype.symbols,Z),Q.pushUnique(I,K)&&D(G,{navigator:it})}function y(){this.navigator&&this.navigator.setBaseSeries(null,!1)}function T(){var t;const e=this.legend,s=this.navigator;let n,a,M;if(s){n=e&&e.options,a=s.xAxis,M=s.yAxis;const{scrollbarHeight:g,scrollButtonSize:k}=s;this.inverted?(s.left=s.opposite?this.chartWidth-g-s.height:this.spacing[3]+g,s.top=this.plotTop+k):(s.left=f(a.left,this.plotLeft+k),s.top=s.navigatorOptions.top||this.chartHeight-s.height-g-(((t=this.scrollbar)===null||t===void 0?void 0:t.options.margin)||0)-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(n&&n.verticalAlign==="bottom"&&n.layout!=="proximate"&&n.enabled&&!n.floating?e.legendHeight+f(n.margin,10):0)-(this.titleOffset?this.titleOffset[2]:0)),a&&M&&(this.inverted?a.options.left=M.options.left=s.left:a.options.top=M.options.top=s.top,a.setAxisSize(),M.setAxisSize())}}function m(t){!this.navigator&&!this.scroller&&(this.options.navigator.enabled||this.options.scrollbar.enabled)&&(this.scroller=this.navigator=new p(this),f(t.redraw,!0)&&this.redraw(t.animation))}function h(){const t=this.options;(t.navigator.enabled||t.scrollbar.enabled)&&(this.scroller=this.navigator=new p(this))}function x(){const t=this.options,e=t.navigator,s=t.rangeSelector;if((e&&e.enabled||s&&s.enabled)&&(!O&&this.zooming.type==="x"||O&&this.zooming.pinchType==="x"))return!1}function l(t){const e=t.navigator;if(e&&t.xAxis[0]){const s=t.xAxis[0].getExtremes();e.render(s.min,s.max)}}function u(t){const e=t.options.navigator||{},s=t.options.scrollbar||{};!this.navigator&&!this.scroller&&(e.enabled||s.enabled)&&(b(!0,this.options.navigator,e),b(!0,this.options.scrollbar,s),delete t.options.navigator,delete t.options.scrollbar)}function r(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}return{compose:c}}),ct(A,"Core/Axis/ScrollbarAxis.js",[A["Core/Utilities.js"]],function(q){const{addEvent:Y,defined:tt,pick:it}=q,Z=[];class st{static compose(G,K){if(!q.pushUnique(Z,G))return G;const O=S=>{const w=it(S.options&&S.options.min,S.min),D=it(S.options&&S.options.max,S.max);return{axisMin:w,axisMax:D,scrollMin:tt(S.dataMin)?Math.min(w,S.min,S.dataMin,it(S.threshold,1/0)):w,scrollMax:tt(S.dataMax)?Math.max(D,S.max,S.dataMax,it(S.threshold,-1/0)):D}};return Y(G,"afterInit",function(){const S=this;S.options&&S.options.scrollbar&&S.options.scrollbar.enabled&&(S.options.scrollbar.vertical=!S.horiz,S.options.startOnTick=S.options.endOnTick=!1,S.scrollbar=new K(S.chart.renderer,S.options.scrollbar,S.chart),Y(S.scrollbar,"changed",function(w){let{axisMin:D,axisMax:b,scrollMin:f,scrollMax:I}=O(S),p=I-f,c,y;if(!(!tt(D)||!tt(b)))if(S.horiz&&!S.reversed||!S.horiz&&S.reversed?(c=f+p*this.to,y=f+p*this.from):(c=f+p*(1-this.from),y=f+p*(1-this.to)),this.shouldUpdateExtremes(w.DOMType)){const T=w.DOMType==="mousemove"||w.DOMType==="touchmove"?!1:void 0;S.setExtremes(y,c,!0,T,w)}else this.setRange(this.from,this.to)}))}),Y(G,"afterRender",function(){let S=this,{scrollMin:w,scrollMax:D}=O(S),b=S.scrollbar,f=S.axisTitleMargin+(S.titleOffset||0),I=S.chart.scrollbarsOffsets,p=S.options.margin||0,c,y,T;if(b){if(S.horiz)S.opposite||(I[1]+=f),b.position(S.left,S.top+S.height+2+I[1]-(S.opposite?p:0),S.width,S.height),S.opposite||(I[1]+=p),c=1;else{S.opposite&&(I[0]+=f);let m;b.options.opposite?m=S.left+S.width+2+I[0]-(S.opposite?0:p):m=S.opposite?0:p,b.position(m,S.top,S.width,S.height),S.opposite&&(I[0]+=p),c=0}I[c]+=b.size+(b.options.margin||0),isNaN(w)||isNaN(D)||!tt(S.min)||!tt(S.max)||S.min===S.max?b.setRange(0,1):(y=(S.min-w)/(D-w),T=(S.max-w)/(D-w),S.horiz&&!S.reversed||!S.horiz&&S.reversed?b.setRange(y,T):b.setRange(1-T,1-y))}}),Y(G,"afterGetOffset",function(){const S=this,w=S.scrollbar,D=w&&!w.options.opposite,b=S.horiz?2:D?3:1;w&&(S.chart.scrollbarsOffsets=[0,0],S.chart.axisOffset[b]+=w.size+(w.options.margin||0))}),G}}return st}),ct(A,"Stock/Scrollbar/ScrollbarDefaults.js",[A["Core/Globals.js"]],function(q){return{height:10,barBorderRadius:5,buttonBorderRadius:0,buttonsEnabled:!1,liveRedraw:void 0,margin:void 0,minWidth:6,opposite:!0,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:0,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"none",trackBackgroundColor:"rgba(255, 255, 255, 0.001)",trackBorderColor:"#cccccc",trackBorderRadius:5,trackBorderWidth:1}}),ct(A,"Stock/Scrollbar/Scrollbar.js",[A["Core/Defaults.js"],A["Core/Globals.js"],A["Core/Axis/ScrollbarAxis.js"],A["Stock/Scrollbar/ScrollbarDefaults.js"],A["Core/Utilities.js"]],function(q,Y,tt,it,Z){const{defaultOptions:st}=q,{addEvent:Q,correctFloat:G,defined:K,destroyObjectProperties:O,fireEvent:S,merge:w,pick:D,removeEvent:b}=Z;class f{static compose(p){tt.compose(p,f)}static swapXY(p,c){return c&&p.forEach(y=>{const T=y.length;let m;for(let h=0;h<T;h+=2)m=y[h+1],typeof m=="number"&&(y[h+1]=y[h+2],y[h+2]=m)}),p}constructor(p,c,y){this._events=[],this.chart=void 0,this.chartX=0,this.chartY=0,this.from=0,this.group=void 0,this.options=void 0,this.renderer=void 0,this.scrollbar=void 0,this.scrollbarButtons=[],this.scrollbarGroup=void 0,this.scrollbarLeft=0,this.scrollbarRifles=void 0,this.scrollbarStrokeWidth=1,this.scrollbarTop=0,this.size=0,this.to=0,this.track=void 0,this.trackBorderWidth=1,this.userOptions=void 0,this.x=0,this.y=0,this.init(p,c,y)}addEvents(){const p=this.options.inverted?[1,0]:[0,1],c=this.scrollbarButtons,y=this.scrollbarGroup.element,T=this.track.element,m=this.mouseDownHandler.bind(this),h=this.mouseMoveHandler.bind(this),x=this.mouseUpHandler.bind(this),l=[[c[p[0]].element,"click",this.buttonToMinClick.bind(this)],[c[p[1]].element,"click",this.buttonToMaxClick.bind(this)],[T,"click",this.trackClick.bind(this)],[y,"mousedown",m],[y.ownerDocument,"mousemove",h],[y.ownerDocument,"mouseup",x]];Y.hasTouch&&l.push([y,"touchstart",m],[y.ownerDocument,"touchmove",h],[y.ownerDocument,"touchend",x]),l.forEach(function(u){Q.apply(null,u)}),this._events=l}buttonToMaxClick(p){const c=this,y=(c.to-c.from)*D(c.options.step,.2);c.updatePosition(c.from+y,c.to+y),S(c,"changed",{from:c.from,to:c.to,trigger:"scrollbar",DOMEvent:p})}buttonToMinClick(p){const c=this,y=G(c.to-c.from)*D(c.options.step,.2);c.updatePosition(G(c.from-y),G(c.to-y)),S(c,"changed",{from:c.from,to:c.to,trigger:"scrollbar",DOMEvent:p})}cursorToScrollbarPosition(p){const c=this,y=c.options,T=y.minWidth>c.calculatedWidth?y.minWidth:0;return{chartX:(p.chartX-c.x-c.xOffset)/(c.barWidth-T),chartY:(p.chartY-c.y-c.yOffset)/(c.barWidth-T)}}destroy(){const p=this,c=p.chart.scroller;p.removeEvents(),["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(y){p[y]&&p[y].destroy&&(p[y]=p[y].destroy())}),c&&p===c.scrollbar&&(c.scrollbar=null,O(c.scrollbarButtons))}drawScrollbarButton(p){const c=this,y=c.renderer,T=c.scrollbarButtons,m=c.options,h=c.size,x=y.g().add(c.group);if(T.push(x),m.buttonsEnabled){const l=y.rect().addClass("highcharts-scrollbar-button").add(x);c.chart.styledMode||l.attr({stroke:m.buttonBorderColor,"stroke-width":m.buttonBorderWidth,fill:m.buttonBackgroundColor}),l.attr(l.crisp({x:-.5,y:-.5,width:h+1,height:h+1,r:m.buttonBorderRadius},l.strokeWidth()));const u=y.path(f.swapXY([["M",h/2+(p?-1:1),h/2-3],["L",h/2+(p?-1:1),h/2+3],["L",h/2+(p?2:-2),h/2]],m.vertical)).addClass("highcharts-scrollbar-arrow").add(T[p]);c.chart.styledMode||u.attr({fill:m.buttonArrowColor})}}init(p,c,y){const T=this;T.scrollbarButtons=[],T.renderer=p,T.userOptions=c,T.options=w(it,st.scrollbar,c),T.options.margin=D(T.options.margin,10),T.chart=y,T.size=D(T.options.size,T.options.height),c.enabled&&(T.render(),T.addEvents())}mouseDownHandler(p){const c=this,y=c.chart.pointer.normalize(p),T=c.cursorToScrollbarPosition(y);c.chartX=T.chartX,c.chartY=T.chartY,c.initPositions=[c.from,c.to],c.grabbedCenter=!0}mouseMoveHandler(p){const c=this,y=c.chart.pointer.normalize(p),T=c.options,m=T.vertical?"chartY":"chartX",h=c.initPositions||[];let x,l,u;c.grabbedCenter&&(!p.touches||p.touches[0][m]!==0)&&(l=c.cursorToScrollbarPosition(y)[m],x=c[m],u=l-x,c.hasDragged=!0,c.updatePosition(h[0]+u,h[1]+u),c.hasDragged&&S(c,"changed",{from:c.from,to:c.to,trigger:"scrollbar",DOMType:p.type,DOMEvent:p}))}mouseUpHandler(p){const c=this;c.hasDragged&&S(c,"changed",{from:c.from,to:c.to,trigger:"scrollbar",DOMType:p.type,DOMEvent:p}),c.grabbedCenter=c.hasDragged=c.chartX=c.chartY=null}position(p,c,y,T){const m=this,h=m.options,{buttonsEnabled:x,margin:l=0,vertical:u}=h,r=m.rendered?"animate":"attr";let i=T,t=0;m.group.show(),m.x=p,m.y=c+this.trackBorderWidth,m.width=y,m.height=T,m.xOffset=i,m.yOffset=t,u?(m.width=m.yOffset=y=t=m.size,m.xOffset=i=0,m.yOffset=t=x?m.size:0,m.barWidth=T-(x?y*2:0),m.x=p=p+l):(m.height=T=m.size,m.xOffset=i=x?m.size:0,m.barWidth=y-(x?T*2:0),m.y=m.y+l),m.group[r]({translateX:p,translateY:m.y}),m.track[r]({width:y,height:T}),m.scrollbarButtons[1][r]({translateX:u?0:y-i,translateY:u?T-t:0})}removeEvents(){this._events.forEach(function(p){b.apply(null,p)}),this._events.length=0}render(){const p=this,c=p.renderer,y=p.options,T=p.size,m=p.chart.styledMode,h=c.g("scrollbar").attr({zIndex:y.zIndex}).hide().add();p.group=h,p.track=c.rect().addClass("highcharts-scrollbar-track").attr({r:y.trackBorderRadius||0,height:T,width:T}).add(h),m||p.track.attr({fill:y.trackBackgroundColor,stroke:y.trackBorderColor,"stroke-width":y.trackBorderWidth});const x=p.trackBorderWidth=p.track.strokeWidth();p.track.attr({x:-x%2/2,y:-x%2/2}),p.scrollbarGroup=c.g().add(h),p.scrollbar=c.rect().addClass("highcharts-scrollbar-thumb").attr({height:T-x,width:T-x,r:y.barBorderRadius||0}).add(p.scrollbarGroup),p.scrollbarRifles=c.path(f.swapXY([["M",-3,T/4],["L",-3,2*T/3],["M",0,T/4],["L",0,2*T/3],["M",3,T/4],["L",3,2*T/3]],y.vertical)).addClass("highcharts-scrollbar-rifles").add(p.scrollbarGroup),m||(p.scrollbar.attr({fill:y.barBackgroundColor,stroke:y.barBorderColor,"stroke-width":y.barBorderWidth}),p.scrollbarRifles.attr({stroke:y.rifleColor,"stroke-width":1})),p.scrollbarStrokeWidth=p.scrollbar.strokeWidth(),p.scrollbarGroup.translate(-p.scrollbarStrokeWidth%2/2,-p.scrollbarStrokeWidth%2/2),p.drawScrollbarButton(0),p.drawScrollbarButton(1)}setRange(p,c){const y=this,T=y.options,m=T.vertical,h=T.minWidth,x=y.barWidth,l=this.rendered&&!this.hasDragged&&!(this.chart.navigator&&this.chart.navigator.hasDragged)?"animate":"attr";if(!K(x))return;const u=x*Math.min(c,1);let r,i;p=Math.max(p,0),r=Math.ceil(x*p),y.calculatedWidth=i=G(u-r),i<h&&(r=(x-h+i)*p,i=h);const t=Math.floor(r+y.xOffset+y.yOffset),e=i/2-.5;y.from=p,y.to=c,m?(y.scrollbarGroup[l]({translateY:t}),y.scrollbar[l]({height:i}),y.scrollbarRifles[l]({translateY:e}),y.scrollbarTop=t,y.scrollbarLeft=0):(y.scrollbarGroup[l]({translateX:t}),y.scrollbar[l]({width:i}),y.scrollbarRifles[l]({translateX:e}),y.scrollbarLeft=t,y.scrollbarTop=0),i<=12?y.scrollbarRifles.hide():y.scrollbarRifles.show(),T.showFull===!1&&(p<=0&&c>=1?y.group.hide():y.group.show()),y.rendered=!0}shouldUpdateExtremes(p){return D(this.options.liveRedraw,Y.svg&&!Y.isTouchDevice&&!this.chart.boosted)||p==="mouseup"||p==="touchend"||!K(p)}trackClick(p){const c=this,y=c.chart.pointer.normalize(p),T=c.to-c.from,m=c.y+c.scrollbarTop,h=c.x+c.scrollbarLeft;c.options.vertical&&y.chartY>m||!c.options.vertical&&y.chartX>h?c.updatePosition(c.from+T,c.to+T):c.updatePosition(c.from-T,c.to-T),S(c,"changed",{from:c.from,to:c.to,trigger:"scrollbar",DOMEvent:p})}update(p){this.destroy(),this.init(this.chart.renderer,w(!0,this.options,p),this.chart)}updatePosition(p,c){c>1&&(p=G(1-G(c-p)),c=1),p<0&&(c=G(c-p),p=0),this.from=p,this.to=c}}return f.defaultOptions=it,st.scrollbar=w(!0,f.defaultOptions,st.scrollbar),f}),ct(A,"Stock/Navigator/Navigator.js",[A["Core/Axis/Axis.js"],A["Core/Defaults.js"],A["Core/Globals.js"],A["Core/Axis/NavigatorAxisComposition.js"],A["Stock/Navigator/NavigatorComposition.js"],A["Stock/Scrollbar/Scrollbar.js"],A["Core/Utilities.js"]],function(q,Y,tt,it,Z,st,Q){const{defaultOptions:G}=Y,{hasTouch:K,isTouchDevice:O}=tt,{addEvent:S,clamp:w,correctFloat:D,defined:b,destroyObjectProperties:f,erase:I,extend:p,find:c,isArray:y,isNumber:T,merge:m,pick:h,removeEvent:x,splat:l}=Q;function u(i,...t){const e=[].filter.call(t,T);if(e.length)return Math[i].apply(0,e)}class r{static compose(t,e,s){Z.compose(t,e,r,s)}constructor(t){this.baseSeries=void 0,this.chart=void 0,this.handles=void 0,this.height=void 0,this.left=void 0,this.navigatorEnabled=void 0,this.navigatorGroup=void 0,this.navigatorOptions=void 0,this.navigatorSeries=void 0,this.navigatorSize=void 0,this.opposite=void 0,this.outline=void 0,this.range=void 0,this.rendered=void 0,this.scrollbarHeight=0,this.scrollButtonSize=void 0,this.shades=void 0,this.size=void 0,this.top=void 0,this.xAxis=void 0,this.yAxis=void 0,this.zoomedMax=void 0,this.zoomedMin=void 0,this.init(t)}drawHandle(t,e,s,n){const a=this,M=a.navigatorOptions.handles.height;a.handles[e][n](s?{translateX:Math.round(a.left+a.height/2),translateY:Math.round(a.top+parseInt(t,10)+.5-M)}:{translateX:Math.round(a.left+parseInt(t,10)),translateY:Math.round(a.top+a.height/2-M/2-1)})}drawOutline(t,e,s,n){const a=this,M=a.navigatorOptions.maskInside,g=a.outline.strokeWidth(),k=g/2,C=g%2/2,B=a.scrollButtonSize,L=a.size,o=a.top,d=a.height,N=o-k,V=o+d;let R=a.left,H,v;s?(H=o+e+C,e=o+t+C,v=[["M",R+d,o-B-C],["L",R+d,H],["L",R,H],["M",R,e],["L",R+d,e],["L",R+d,o+L+B]],M&&v.push(["M",R+d,H-k],["L",R+d,e+k])):(R-=B,t+=R+B-C,e+=R+B-C,v=[["M",R,N],["L",t,N],["L",t,V],["M",e,V],["L",e,N],["L",R+L+B*2,o+k]],M&&v.push(["M",t-k,N],["L",e+k,N])),a.outline[n]({d:v})}drawMasks(t,e,s,n){const a=this,M=a.left,g=a.top,k=a.height;let C,B,L,o;s?(L=[M,M,M],o=[g,g+t,g+e],B=[k,k,k],C=[t,e-t,a.size-e]):(L=[M,M+t,M+e],o=[g,g,g],B=[t,e-t,a.size-e],C=[k,k,k]),a.shades.forEach((d,N)=>{d[n]({x:L[N],y:o[N],width:B[N],height:C[N]})})}renderElements(){const t=this,e=t.navigatorOptions,s=e.maskInside,n=t.chart,a=n.inverted,M=n.renderer,g={cursor:a?"ns-resize":"ew-resize"},k=t.navigatorGroup=M.g("navigator").attr({zIndex:8,visibility:"hidden"}).add();if([!s,s,!s].forEach((C,B)=>{const L=M.rect().addClass("highcharts-navigator-mask"+(B===1?"-inside":"-outside")).add(k);n.styledMode||(L.attr({fill:C?e.maskFill:"rgba(0,0,0,0)"}),B===1&&L.css(g)),t.shades[B]=L}),t.outline=M.path().addClass("highcharts-navigator-outline").add(k),n.styledMode||t.outline.attr({"stroke-width":e.outlineWidth,stroke:e.outlineColor}),e.handles&&e.handles.enabled){const C=e.handles,{height:B,width:L}=C;[0,1].forEach(o=>{t.handles[o]=M.symbol(C.symbols[o],-L/2-1,0,L,B,C),n.inverted&&t.handles[o].attr({rotation:90,rotationOriginX:Math.floor(-L/2),rotationOriginY:(B+L)/2}),t.handles[o].attr({zIndex:7-o}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][o]).add(k),n.styledMode||t.handles[o].attr({fill:C.backgroundColor,stroke:C.borderColor,"stroke-width":C.lineWidth}).css(g)})}}update(t){(this.series||[]).forEach(s=>{s.baseSeries&&delete s.baseSeries.navigatorSeries}),this.destroy();const e=this.chart.options;m(!0,e.navigator,t),this.init(this.chart)}render(t,e,s,n){const a=this,M=a.chart,g=a.xAxis,k=g.pointRange||0,C=g.navigatorAxis.fake?M.xAxis[0]:g,B=a.navigatorEnabled,L=a.rendered,o=M.inverted,d=M.xAxis[0].minRange,N=M.xAxis[0].options.maxRange,V=a.scrollButtonSize;let R,H,v,P=a.scrollbarHeight,_,z;if(this.hasDragged&&!b(s))return;if(t=D(t-k/2),e=D(e+k/2),!T(t)||!T(e))if(L)s=0,n=h(g.width,C.width);else return;a.left=h(g.left,M.plotLeft+V+(o?M.plotWidth:0));let $=a.size=_=h(g.len,(o?M.plotHeight:M.plotWidth)-2*V);o?R=P:R=_+2*V,s=h(s,g.toPixels(t,!0)),n=h(n,g.toPixels(e,!0)),(!T(s)||Math.abs(s)===1/0)&&(s=0,n=R);const j=g.toValue(s,!0),et=g.toValue(n,!0),ot=Math.abs(D(et-j));ot<d?this.grabbedLeft?s=g.toPixels(et-d-k,!0):this.grabbedRight&&(n=g.toPixels(j+d+k,!0)):b(N)&&D(ot-k)>N&&(this.grabbedLeft?s=g.toPixels(et-N-k,!0):this.grabbedRight&&(n=g.toPixels(j+N+k,!0))),a.zoomedMax=w(Math.max(s,n),0,$),a.zoomedMin=w(a.fixedWidth?a.zoomedMax-a.fixedWidth:Math.min(s,n),0,$),a.range=a.zoomedMax-a.zoomedMin,$=Math.round(a.zoomedMax);const J=Math.round(a.zoomedMin);B&&(a.navigatorGroup.attr({visibility:"inherit"}),z=L&&!a.hasDragged?"animate":"attr",a.drawMasks(J,$,o,z),a.drawOutline(J,$,o,z),a.navigatorOptions.handles.enabled&&(a.drawHandle(J,0,o,z),a.drawHandle($,1,o,z))),a.scrollbar&&(o?(v=a.top-V,H=a.left-P+(B||!C.opposite?0:(C.titleOffset||0)+C.axisTitleMargin),P=_+2*V):(v=a.top+(B?a.height:-P),H=a.left-V),a.scrollbar.position(H,v,R,P),a.scrollbar.setRange(a.zoomedMin/(_||1),a.zoomedMax/(_||1))),a.rendered=!0}addMouseEvents(){const t=this,e=t.chart,s=e.container;let n=[],a,M;t.mouseMoveHandler=a=function(g){t.onMouseMove(g)},t.mouseUpHandler=M=function(g){t.onMouseUp(g)},n=t.getPartsEvents("mousedown"),n.push(S(e.renderTo,"mousemove",a),S(s.ownerDocument,"mouseup",M)),K&&(n.push(S(e.renderTo,"touchmove",a),S(s.ownerDocument,"touchend",M)),n.concat(t.getPartsEvents("touchstart"))),t.eventsToUnbind=n,t.series&&t.series[0]&&n.push(S(t.series[0].xAxis,"foundExtremes",function(){e.navigator.modifyNavigatorAxisExtremes()}))}getPartsEvents(t){const e=this,s=[];return["shades","handles"].forEach(function(n){e[n].forEach(function(a,M){s.push(S(a.element,t,function(g){e[n+"Mousedown"](g,M)}))})}),s}shadesMousedown(t,e){t=this.chart.pointer.normalize(t);const s=this,n=s.chart,a=s.xAxis,M=s.zoomedMin,g=s.size,k=s.range;let C=s.left,B=t.chartX,L,o,d,N;n.inverted&&(B=t.chartY,C=s.top),e===1?(s.grabbedCenter=B,s.fixedWidth=k,s.dragOffset=B-M):(N=B-C-k/2,e===0?N=Math.max(0,N):e===2&&N+k>=g&&(N=g-k,s.reversedExtremes?(N-=k,o=s.getUnionExtremes().dataMin):L=s.getUnionExtremes().dataMax),N!==M&&(s.fixedWidth=k,d=a.navigatorAxis.toFixedRange(N,N+k,o,L),b(d.min)&&n.xAxis[0].setExtremes(Math.min(d.min,d.max),Math.max(d.min,d.max),!0,null,{trigger:"navigator"})))}handlesMousedown(t,e){t=this.chart.pointer.normalize(t);const s=this,n=s.chart,a=n.xAxis[0],M=s.reversedExtremes;e===0?(s.grabbedLeft=!0,s.otherHandlePos=s.zoomedMax,s.fixedExtreme=M?a.min:a.max):(s.grabbedRight=!0,s.otherHandlePos=s.zoomedMin,s.fixedExtreme=M?a.max:a.min),n.fixedRange=null}onMouseMove(t){const e=this,s=e.chart,n=e.navigatorSize,a=e.range,M=e.dragOffset,g=s.inverted;let k=e.left,C;(!t.touches||t.touches[0].pageX!==0)&&(t=s.pointer.normalize(t),C=t.chartX,g&&(k=e.top,C=t.chartY),e.grabbedLeft?(e.hasDragged=!0,e.render(0,0,C-k,e.otherHandlePos)):e.grabbedRight?(e.hasDragged=!0,e.render(0,0,e.otherHandlePos,C-k)):e.grabbedCenter&&(e.hasDragged=!0,C<M?C=M:C>n+M-a&&(C=n+M-a),e.render(0,0,C-M,C-M+a)),e.hasDragged&&e.scrollbar&&h(e.scrollbar.options.liveRedraw,!O&&!this.chart.boosted)&&(t.DOMType=t.type,setTimeout(function(){e.onMouseUp(t)},0)))}onMouseUp(t){const e=this,s=e.chart,n=e.xAxis,a=e.scrollbar,M=t.DOMEvent||t,g=s.inverted,k=e.rendered&&!e.hasDragged?"animate":"attr";let C,B,L,o,d,N;(e.hasDragged&&(!a||!a.hasDragged)||t.trigger==="scrollbar")&&(L=e.getUnionExtremes(),e.zoomedMin===e.otherHandlePos?o=e.fixedExtreme:e.zoomedMax===e.otherHandlePos&&(d=e.fixedExtreme),e.zoomedMax===e.size&&(d=e.reversedExtremes?L.dataMin:L.dataMax),e.zoomedMin===0&&(o=e.reversedExtremes?L.dataMax:L.dataMin),N=n.navigatorAxis.toFixedRange(e.zoomedMin,e.zoomedMax,o,d),b(N.min)&&s.xAxis[0].setExtremes(Math.min(N.min,N.max),Math.max(N.min,N.max),!0,e.hasDragged?!1:null,{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:M})),t.DOMType!=="mousemove"&&t.DOMType!=="touchmove"&&(e.grabbedLeft=e.grabbedRight=e.grabbedCenter=e.fixedWidth=e.fixedExtreme=e.otherHandlePos=e.hasDragged=e.dragOffset=null),e.navigatorEnabled&&T(e.zoomedMin)&&T(e.zoomedMax)&&(B=Math.round(e.zoomedMin),C=Math.round(e.zoomedMax),e.shades&&e.drawMasks(B,C,g,k),e.outline&&e.drawOutline(B,C,g,k),e.navigatorOptions.handles.enabled&&Object.keys(e.handles).length===e.handles.length&&(e.drawHandle(B,0,g,k),e.drawHandle(C,1,g,k)))}removeEvents(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(t){t()}),this.eventsToUnbind=void 0),this.removeBaseSeriesEvents()}removeBaseSeriesEvents(){const t=this.baseSeries||[];this.navigatorEnabled&&t[0]&&(this.navigatorOptions.adaptToUpdatedData!==!1&&t.forEach(function(e){x(e,"updatedData",this.updatedDataHandler)},this),t[0].xAxis&&x(t[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))}init(t){const e=t.options,s=e.navigator||{},n=s.enabled,a=e.scrollbar||{},M=a.enabled,g=n&&s.height||0,k=M&&a.height||0,C=a.buttonsEnabled&&k||0;this.handles=[],this.shades=[],this.chart=t,this.setBaseSeries(),this.height=g,this.scrollbarHeight=k,this.scrollButtonSize=C,this.scrollbarEnabled=M,this.navigatorEnabled=n,this.navigatorOptions=s,this.scrollbarOptions=a,this.opposite=h(s.opposite,!!(!n&&t.inverted));const B=this,L=B.baseSeries,o=t.xAxis.length,d=t.yAxis.length,N=L&&L[0]&&L[0].xAxis||t.xAxis[0]||{options:{}};if(t.isDirtyBox=!0,B.navigatorEnabled?(B.xAxis=new q(t,m({breaks:N.options.breaks,ordinal:N.options.ordinal},s.xAxis,{id:"navigator-x-axis",yAxis:"navigator-y-axis",type:"datetime",index:o,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1},t.inverted?{offsets:[C,0,-C,0],width:g}:{offsets:[0,-C,0,C],height:g}),"xAxis"),B.yAxis=new q(t,m(s.yAxis,{id:"navigator-y-axis",alignTicks:!1,offset:0,index:d,isInternal:!0,reversed:h(s.yAxis&&s.yAxis.reversed,t.yAxis[0]&&t.yAxis[0].reversed,!1),zoomEnabled:!1},t.inverted?{width:g}:{height:g}),"yAxis"),L||s.series.data?B.updateNavigatorSeries(!1):t.series.length===0&&(B.unbindRedraw=S(t,"beforeRedraw",function(){t.series.length>0&&!B.series&&(B.setBaseSeries(),B.unbindRedraw())})),B.reversedExtremes=t.inverted&&!B.xAxis.reversed||!t.inverted&&B.xAxis.reversed,B.renderElements(),B.addMouseEvents()):(B.xAxis={chart:t,navigatorAxis:{fake:!0},translate:function(V,R){const H=t.xAxis[0],v=H.getExtremes(),P=H.len-2*C,_=u("min",H.options.min,v.dataMin),z=u("max",H.options.max,v.dataMax)-_;return R?V*z/P+_:P*(V-_)/z},toPixels:function(V){return this.translate(V)},toValue:function(V){return this.translate(V,!0)}},B.xAxis.navigatorAxis.axis=B.xAxis,B.xAxis.navigatorAxis.toFixedRange=it.prototype.toFixedRange.bind(B.xAxis.navigatorAxis)),t.options.scrollbar.enabled){const V=m(t.options.scrollbar,{vertical:t.inverted});!T(V.margin)&&B.navigatorEnabled&&(V.margin=t.inverted?-3:3),t.scrollbar=B.scrollbar=new st(t.renderer,V,t),S(B.scrollbar,"changed",function(R){const H=B.size,v=H*this.to,P=H*this.from;B.hasDragged=B.scrollbar.hasDragged,B.render(0,0,P,v),this.shouldUpdateExtremes(R.DOMType)&&setTimeout(function(){B.onMouseUp(R)})})}B.addBaseSeriesEvents(),B.addChartEvents()}getUnionExtremes(t){const e=this.chart.xAxis[0],s=this.xAxis,n=s.options,a=e.options;let M;return(!t||e.dataMin!==null)&&(M={dataMin:h(n&&n.min,u("min",a.min,e.dataMin,s.dataMin,s.min)),dataMax:h(n&&n.max,u("max",a.max,e.dataMax,s.dataMax,s.max))}),M}setBaseSeries(t,e){const s=this.chart,n=this.baseSeries=[];t=t||s.options&&s.options.navigator.baseSeries||(s.series.length?c(s.series,a=>!a.options.isInternal).index:0),(s.series||[]).forEach((a,M)=>{!a.options.isInternal&&(a.options.showInNavigator||(M===t||a.options.id===t)&&a.options.showInNavigator!==!1)&&n.push(a)}),this.xAxis&&!this.xAxis.navigatorAxis.fake&&this.updateNavigatorSeries(!0,e)}updateNavigatorSeries(t,e){const s=this,n=s.chart,a=s.baseSeries,M={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:"navigator-x-axis",yAxis:"navigator-y-axis",showInLegend:!1,stacking:void 0,isInternal:!0,states:{inactive:{opacity:1}}},g=s.series=(s.series||[]).filter(o=>{const d=o.baseSeries;return a.indexOf(d)<0?(d&&(x(d,"updatedData",s.updatedDataHandler),delete d.navigatorSeries),o.chart&&o.destroy(),!1):!0});let k,C,B=s.navigatorOptions.series,L;a&&a.length&&a.forEach(o=>{const d=o.navigatorSeries,N=p({color:o.color,visible:o.visible},y(B)?G.navigator.series:B);if(d&&s.navigatorOptions.adaptToUpdatedData===!1)return;M.name="Navigator "+a.length,k=o.options||{},L=k.navigatorOptions||{},N.dataLabels=l(N.dataLabels),C=m(k,M,N,L),C.pointRange=h(N.pointRange,L.pointRange,G.plotOptions[C.type||"line"].pointRange);const V=L.data||N.data;s.hasNavigatorData=s.hasNavigatorData||!!V,C.data=V||k.data&&k.data.slice(0),d&&d.options?d.update(C,e):(o.navigatorSeries=n.initSeries(C),o.navigatorSeries.baseSeries=o,g.push(o.navigatorSeries))}),(B.data&&!(a&&a.length)||y(B))&&(s.hasNavigatorData=!1,B=l(B),B.forEach((o,d)=>{M.name="Navigator "+(g.length+1),C=m(G.navigator.series,{color:n.series[d]&&!n.series[d].options.isInternal&&n.series[d].color||n.options.colors[d]||n.options.colors[0]},M,o),C.data=o.data,C.data&&(s.hasNavigatorData=!0,g.push(n.initSeries(C)))})),t&&this.addBaseSeriesEvents()}addBaseSeriesEvents(){const t=this,e=t.baseSeries||[];e[0]&&e[0].xAxis&&e[0].eventsToUnbind.push(S(e[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes)),e.forEach(s=>{s.eventsToUnbind.push(S(s,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)})),s.eventsToUnbind.push(S(s,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)})),this.navigatorOptions.adaptToUpdatedData!==!1&&s.xAxis&&s.eventsToUnbind.push(S(s,"updatedData",this.updatedDataHandler)),s.eventsToUnbind.push(S(s,"remove",function(){this.navigatorSeries&&(I(t.series,this.navigatorSeries),b(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)}))})}getBaseSeriesMin(t){return this.baseSeries.reduce(function(e,s){return Math.min(e,s.xData&&s.xData.length?s.xData[0]:e)},t)}modifyNavigatorAxisExtremes(){const t=this.xAxis;if(typeof t.getExtremes<"u"){const e=this.getUnionExtremes(!0);e&&(e.dataMin!==t.min||e.dataMax!==t.max)&&(t.min=e.dataMin,t.max=e.dataMax)}}modifyBaseAxisExtremes(){const t=this,e=t.chart.navigator,s=t.getExtremes(),n=s.min,a=s.max,M=s.dataMin,g=s.dataMax,k=a-n,C=e.stickToMin,B=e.stickToMax,L=h(t.options.overscroll,0),o=e.series&&e.series[0],d=!!t.setExtremes,N=t.eventArgs&&t.eventArgs.trigger==="rangeSelectorButton";let V,R;N||(C&&(R=M,V=R+k),B&&(V=g+L,C||(R=Math.max(M,V-k,e.getBaseSeriesMin(o&&o.xData?o.xData[0]:-Number.MAX_VALUE)))),d&&(C||B)&&T(R)&&(t.min=t.userMin=R,t.max=t.userMax=V)),e.stickToMin=e.stickToMax=null}updatedDataHandler(){const t=this.chart.navigator,e=this,s=this.navigatorSeries,n=t.reversedExtremes?Math.round(t.zoomedMin)===0:Math.round(t.zoomedMax)>=Math.round(t.size);t.stickToMax=h(this.chart.options.navigator&&this.chart.options.navigator.stickToMax,n),t.stickToMin=t.shouldStickToMin(e,t),s&&!t.hasNavigatorData&&(s.options.pointStart=e.xData[0],s.setData(e.options.data,!1,null,!1))}shouldStickToMin(t,e){const s=e.getBaseSeriesMin(t.xData[0]),n=t.xAxis,a=n.max,M=n.min,g=n.options.range;let k=!0;return T(a)&&T(M)?g&&a-s>0?k=a-s<g:k=M<=s:k=!1,k}addChartEvents(){this.eventsToUnbind||(this.eventsToUnbind=[]),this.eventsToUnbind.push(S(this.chart,"redraw",function(){const t=this.navigator,e=t&&(t.baseSeries&&t.baseSeries[0]&&t.baseSeries[0].xAxis||this.xAxis[0]);e&&t.render(e.min,e.max)}),S(this.chart,"getMargins",function(){let t=this,e=t.navigator,s=e.opposite?"plotTop":"marginBottom";t.inverted&&(s=e.opposite?"marginRight":"plotLeft"),t[s]=(t[s]||0)+(e.navigatorEnabled||!t.inverted?e.height+e.scrollbarHeight:0)+e.navigatorOptions.margin}))}destroy(){this.removeEvents(),this.xAxis&&(I(this.chart.xAxis,this.xAxis),I(this.chart.axes,this.xAxis)),this.yAxis&&(I(this.chart.yAxis,this.yAxis),I(this.chart.axes,this.yAxis)),(this.series||[]).forEach(t=>{t.destroy&&t.destroy()}),["series","xAxis","yAxis","shades","outline","scrollbarTrack","scrollbarRifles","scrollbarGroup","scrollbar","navigatorGroup","rendered"].forEach(t=>{this[t]&&this[t].destroy&&this[t].destroy(),this[t]=null}),[this.handles].forEach(t=>{f(t)})}}return r}),ct(A,"Stock/RangeSelector/RangeSelectorDefaults.js",[],function(){return{lang:{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"",rangeSelectorTo:"→"},rangeSelector:{allButtonsEnabled:!1,buttons:void 0,buttonSpacing:5,dropdown:"responsive",enabled:void 0,verticalAlign:"top",buttonTheme:{width:28,height:18,padding:2,zIndex:7},floating:!1,x:0,y:0,height:void 0,inputBoxBorderColor:"none",inputBoxHeight:17,inputBoxWidth:void 0,inputDateFormat:"%e %b %Y",inputDateParser:void 0,inputEditDateFormat:"%Y-%m-%d",inputEnabled:!0,inputPosition:{align:"right",x:0,y:0},inputSpacing:5,selected:void 0,buttonPosition:{align:"left",x:0,y:0},inputStyle:{color:"#334eff",cursor:"pointer",fontSize:"0.8em"},labelStyle:{color:"#666666",fontSize:"0.8em"}}}}),ct(A,"Stock/RangeSelector/RangeSelectorComposition.js",[A["Core/Defaults.js"],A["Stock/RangeSelector/RangeSelectorDefaults.js"],A["Core/Utilities.js"]],function(q,Y,tt){const{defaultOptions:it,setOptions:Z}=q,{addEvent:st,defined:Q,extend:G,find:K,isNumber:O,merge:S,pick:w}=tt,D=[],b=[];let f;function I(){const r=this.range,i=r.type,t=this.max,e=this.chart.time,s=function(g,k){const C=i==="year"?"FullYear":"Month",B=new e.Date(g),L=e.get(C,B);return e.set(C,B,L+k),L===e.get(C,B)&&e.set("Date",B,0),B.getTime()-g};let n,a;O(r)?(n=t-r,a=r):r&&(n=t+s(t,-(r.count||1)),this.chart&&(this.chart.fixedRange=t-n));const M=w(this.dataMin,Number.MIN_VALUE);return O(n)||(n=M),n<=M&&(n=M,typeof a>"u"&&(a=s(n,r.count)),this.newMax=Math.min(n+a,w(this.dataMax,Number.MAX_VALUE))),O(t)?!O(r)&&r&&r._offsetMin&&(n+=r._offsetMin):n=void 0,n}function p(r,i,t){f=t,tt.pushUnique(b,r)&&(r.prototype.minFromRange=I),tt.pushUnique(b,i)&&(st(i,"afterGetContainer",c),st(i,"beforeRender",y),st(i,"destroy",m),st(i,"getMargins",h),st(i,"render",x),st(i,"update",l),i.prototype.callbacks.push(T)),tt.pushUnique(b,Z)&&(G(it,{rangeSelector:Y.rangeSelector}),G(it.lang,Y.lang))}function c(){this.options.rangeSelector&&this.options.rangeSelector.enabled&&(this.rangeSelector=new f(this))}function y(){const r=this,i=r.axes,t=r.rangeSelector;if(t){O(t.deferredYTDClick)&&(t.clickButton(t.deferredYTDClick),delete t.deferredYTDClick),i.forEach(s=>{s.updateNames(),s.setScale()}),r.getAxisMargins(),t.render();const e=t.options.verticalAlign;t.options.floating||(e==="bottom"?this.extraBottomMargin=!0:e!=="middle"&&(this.extraTopMargin=!0))}}function T(r){let i,t,e,s;const n=r.rangeSelector,a=()=>{n&&(i=r.xAxis[0].getExtremes(),t=r.legend,s=n&&n.options.verticalAlign,O(i.min)&&n.render(i.min,i.max),t.display&&s==="top"&&s===t.options.verticalAlign&&(e=S(r.spacingBox),t.options.layout==="vertical"?e.y=r.plotTop:e.y+=n.getHeight(),t.group.placed=!1,t.align(e)))};n&&(K(D,g=>g[0]===r)||D.push([r,[st(r.xAxis[0],"afterSetExtremes",function(g){n&&n.render(g.min,g.max)}),st(r,"redraw",a)]]),a())}function m(){for(let r=0,i=D.length;r<i;++r){const t=D[r];if(t[0]===this){t[1].forEach(e=>e()),D.splice(r,1);return}}}function h(){const r=this.rangeSelector;if(r){const i=r.getHeight();this.extraTopMargin&&(this.plotTop+=i),this.extraBottomMargin&&(this.marginBottom+=i)}}function x(){const r=this,i=r.rangeSelector;if(i&&!i.options.floating){i.render();const t=i.options.verticalAlign;t==="bottom"?this.extraBottomMargin=!0:t!=="middle"&&(this.extraTopMargin=!0)}}function l(r){const i=this,t=r.options,e=t.rangeSelector,s=this.extraBottomMargin,n=this.extraTopMargin;let a=i.rangeSelector;if(e&&e.enabled&&!Q(a)&&this.options.rangeSelector&&(this.options.rangeSelector.enabled=!0,this.rangeSelector=a=new f(this)),this.extraBottomMargin=!1,this.extraTopMargin=!1,a){T(this);const M=e&&e.verticalAlign||a.options&&a.options.verticalAlign;a.options.floating||(M==="bottom"?this.extraBottomMargin=!0:M!=="middle"&&(this.extraTopMargin=!0)),(this.extraBottomMargin!==s||this.extraTopMargin!==n)&&(this.isDirtyBox=!0)}}return{compose:p}}),ct(A,"Stock/RangeSelector/RangeSelector.js",[A["Core/Axis/Axis.js"],A["Core/Defaults.js"],A["Core/Globals.js"],A["Stock/RangeSelector/RangeSelectorComposition.js"],A["Core/Renderer/SVG/SVGElement.js"],A["Core/Utilities.js"]],function(q,Y,tt,it,Z,st){const{defaultOptions:Q}=Y,{addEvent:G,createElement:K,css:O,defined:S,destroyObjectProperties:w,discardElement:D,extend:b,fireEvent:f,isNumber:I,merge:p,objectEach:c,pad:y,pick:T,pInt:m,splat:h}=st;function x(u){if(u.indexOf("%L")!==-1)return"text";const i=["a","A","d","e","w","b","B","m","o","y","Y"].some(e=>u.indexOf("%"+e)!==-1),t=["H","k","I","l","M","S"].some(e=>u.indexOf("%"+e)!==-1);return i&&t?"datetime-local":i?"date":t?"time":"text"}class l{static compose(r,i){it.compose(r,i,l)}constructor(r){this.buttons=void 0,this.buttonOptions=l.prototype.defaultButtons,this.initialButtonGroupWidth=0,this.options=void 0,this.chart=r,this.init(r)}clickButton(r,i){const t=this,e=t.chart,s=t.buttonOptions[r],n=e.xAxis[0],a=e.scroller&&e.scroller.getUnionExtremes()||n||{},M=s.type,g=s.dataGrouping;let k=a.dataMin,C=a.dataMax,B,L=n&&Math.round(Math.min(n.max,T(C,n.max))),o,d=s._range,N,V,R,H,v,P=!0;if(!(k===null||C===null)){if(e.fixedRange=d,t.setSelected(r),g&&(this.forcedDataGrouping=!0,q.prototype.setDataGrouping.call(n||{chart:this.chart},g,!1),this.frozenStates=s.preserveDataGrouping),M==="month"||M==="year")n?(H={range:s,max:L,chart:e,dataMin:k,dataMax:C},B=n.minFromRange.call(H),I(H.newMax)&&(L=H.newMax),P=!1):d=s;else if(d)B=Math.max(L-d,k),L=Math.min(B+d,C),P=!1;else if(M==="ytd")if(n)(typeof C>"u"||typeof k>"u")&&(k=Number.MAX_VALUE,C=Number.MIN_VALUE,e.series.forEach(_=>{const z=_.xData;z&&(k=Math.min(z[0],k),C=Math.max(z[z.length-1],C))}),i=!1),v=t.getYTDExtremes(C,k,e.time.useUTC),B=N=v.min,L=v.max;else{t.deferredYTDClick=r;return}else M==="all"&&n&&(e.navigator&&e.navigator.baseSeries[0]&&(e.navigator.baseSeries[0].xAxis.options.range=void 0),B=k,L=C);P&&s._offsetMin&&S(B)&&(B+=s._offsetMin),s._offsetMax&&S(L)&&(L+=s._offsetMax),this.dropdown&&(this.dropdown.selectedIndex=r+1),n?n.setExtremes(B,L,T(i,!0),void 0,{trigger:"rangeSelectorButton",rangeSelectorButton:s}):(o=h(e.options.xAxis)[0],R=o.range,o.range=d,V=o.min,o.min=N,G(e,"load",function(){o.range=R,o.min=V})),f(this,"afterBtnClick")}}setSelected(r){this.selected=this.options.selected=r}init(r){const i=this,t=r.options.rangeSelector,e=t.buttons||i.defaultButtons.slice(),s=t.selected,n=function(){const a=i.minInput,M=i.maxInput;a&&a.blur&&f(a,"blur"),M&&M.blur&&f(M,"blur")};i.chart=r,i.options=t,i.buttons=[],i.buttonOptions=e,this.eventsToUnbind=[],this.eventsToUnbind.push(G(r.container,"mousedown",n)),this.eventsToUnbind.push(G(r,"resize",n)),e.forEach(i.computeButtonRange),typeof s<"u"&&e[s]&&this.clickButton(s,!1),this.eventsToUnbind.push(G(r,"load",function(){r.xAxis&&r.xAxis[0]&&G(r.xAxis[0],"setExtremes",function(a){this.max-this.min!==r.fixedRange&&a.trigger!=="rangeSelectorButton"&&a.trigger!=="updatedData"&&i.forcedDataGrouping&&!i.frozenStates&&this.setDataGrouping(!1,!1)})}))}updateButtonStates(){const r=this,i=this.chart,t=this.dropdown,e=i.xAxis[0],s=Math.round(e.max-e.min),n=!e.hasVisibleSeries,a=24*36e5,M=i.scroller&&i.scroller.getUnionExtremes()||e,g=M.dataMin,k=M.dataMax,C=r.getYTDExtremes(k,g,i.time.useUTC),B=C.min,L=C.max,o=r.selected,d=r.options.allButtonsEnabled,N=r.buttons;let V=I(o);r.buttonOptions.forEach((R,H)=>{const v=R._range,P=R.type,_=R.count||1,z=N[H],$=R._offsetMax-R._offsetMin,j=H===o,et=v>k-g,ot=v<e.minRange;let J=0,at=!1,W=!1,F=v===s;(P==="month"||P==="year")&&s+36e5>={month:28,year:365}[P]*a*_-$&&s-36e5<={month:31,year:366}[P]*a*_+$?F=!0:P==="ytd"?(F=L-B+$===s,at=!j):P==="all"&&(F=e.max-e.min>=k-g,W=!j&&V&&F);const E=!d&&(et||ot||W||n),X=j&&F||F&&!V&&!at||j&&r.frozenStates;E?J=3:X&&(V=!0,J=2),z.state!==J&&(z.setState(J),t&&(t.options[H+1].disabled=E,J===2&&(t.selectedIndex=H+1)),J===0&&o===H&&r.setSelected())})}computeButtonRange(r){const i=r.type,t=r.count||1,e={millisecond:1,second:1e3,minute:60*1e3,hour:3600*1e3,day:24*3600*1e3,week:7*24*3600*1e3};e[i]?r._range=e[i]*t:(i==="month"||i==="year")&&(r._range={month:30,year:365}[i]*24*36e5*t),r._offsetMin=T(r.offsetMin,0),r._offsetMax=T(r.offsetMax,0),r._range+=r._offsetMax-r._offsetMin}getInputValue(r){const i=r==="min"?this.minInput:this.maxInput,t=this.chart.options.rangeSelector,e=this.chart.time;return i?(i.type==="text"&&t.inputDateParser||this.defaultInputDateParser)(i.value,e.useUTC,e):0}setInputValue(r,i){const t=this.options,e=this.chart.time,s=r==="min"?this.minInput:this.maxInput,n=r==="min"?this.minDateBox:this.maxDateBox;if(s){const a=s.getAttribute("data-hc-time");let M=S(a)?Number(a):void 0;if(S(i)){const g=M;S(g)&&s.setAttribute("data-hc-time-previous",g),s.setAttribute("data-hc-time",i),M=i}s.value=e.dateFormat(this.inputTypeFormats[s.type]||t.inputEditDateFormat,M),n&&n.attr({text:e.dateFormat(t.inputDateFormat,M)})}}setInputExtremes(r,i,t){const e=r==="min"?this.minInput:this.maxInput;if(e){const s=this.inputTypeFormats[e.type],n=this.chart.time;if(s){const a=n.dateFormat(s,i);e.min!==a&&(e.min=a);const M=n.dateFormat(s,t);e.max!==M&&(e.max=M)}}}showInput(r){const i=r==="min"?this.minDateBox:this.maxDateBox,t=r==="min"?this.minInput:this.maxInput;if(t&&i&&this.inputGroup){const e=t.type==="text",{translateX:s,translateY:n}=this.inputGroup,{inputBoxWidth:a}=this.options;O(t,{width:e?i.width+(a?-2:20)+"px":"auto",height:i.height-2+"px",border:"2px solid silver"}),e&&a?O(t,{left:s+i.x+"px",top:n+"px"}):O(t,{left:Math.min(Math.round(i.x+s-(t.offsetWidth-i.width)/2),this.chart.chartWidth-t.offsetWidth)+"px",top:n-(t.offsetHeight-i.height)/2+"px"})}}hideInput(r){const i=r==="min"?this.minInput:this.maxInput;i&&O(i,{top:"-9999em",border:0,width:"1px",height:"1px"})}defaultInputDateParser(r,i,t){const e=a=>a.length>6&&(a.lastIndexOf("-")===a.length-6||a.lastIndexOf("+")===a.length-6);let s=r.split("/").join("-").split(" ").join("T");if(s.indexOf("T")===-1&&(s+="T00:00"),i)s+="Z";else if(tt.isSafari&&!e(s)){const a=new Date(s).getTimezoneOffset()/60;s+=a<=0?`+${y(-a)}:00`:`-${y(a)}:00`}let n=Date.parse(s);if(!I(n)){const a=r.split("-");n=Date.UTC(m(a[0]),m(a[1])-1,m(a[2]))}return t&&i&&I(n)&&(n+=t.getTimezoneOffset(n)),n}drawInput(r){const{chart:i,div:t,inputGroup:e}=this,s=this,n=i.renderer.style||{},a=i.renderer,M=i.options.rangeSelector,g=Q.lang,k=r==="min";function C(){const{maxInput:V,minInput:R}=s,H=i.xAxis[0],v=i.scroller&&i.scroller.xAxis?i.scroller.xAxis:H,P=v.dataMin,_=v.dataMax;let z=s.getInputValue(r);z!==Number(d.getAttribute("data-hc-time-previous"))&&I(z)&&(d.setAttribute("data-hc-time-previous",z),k&&V&&I(P)?z>Number(V.getAttribute("data-hc-time"))?z=void 0:z<P&&(z=P):R&&I(_)&&(z<Number(R.getAttribute("data-hc-time"))?z=void 0:z>_&&(z=_)),typeof z<"u"&&H.setExtremes(k?z:H.min,k?H.max:z,void 0,void 0,{trigger:"rangeSelectorInput"}))}const B=g[k?"rangeSelectorFrom":"rangeSelectorTo"]||"",L=a.label(B,0).addClass("highcharts-range-label").attr({padding:B?2:0,height:B?M.inputBoxHeight:0}).add(e),o=a.label("",0).addClass("highcharts-range-input").attr({padding:2,width:M.inputBoxWidth,height:M.inputBoxHeight,"text-align":"center"}).on("click",function(){s.showInput(r),s[r+"Input"].focus()});i.styledMode||o.attr({stroke:M.inputBoxBorderColor,"stroke-width":1}),o.add(e);const d=K("input",{name:r,className:"highcharts-range-selector"},void 0,t);d.setAttribute("type",x(M.inputDateFormat||"%e %b %Y")),i.styledMode||(L.css(p(n,M.labelStyle)),o.css(p({color:"#333333"},n,M.inputStyle)),O(d,b({position:"absolute",border:0,boxShadow:"0 0 15px rgba(0,0,0,0.3)",width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:n.fontSize,fontFamily:n.fontFamily,top:"-9999em"},M.inputStyle))),d.onfocus=()=>{s.showInput(r)},d.onblur=()=>{d===tt.doc.activeElement&&C(),s.hideInput(r),s.setInputValue(r),d.blur()};let N=!1;return d.onchange=()=>{N||(C(),s.hideInput(r),d.blur())},d.onkeypress=V=>{V.keyCode===13&&C()},d.onkeydown=V=>{N=!0,(V.keyCode===38||V.keyCode===40)&&C()},d.onkeyup=()=>{N=!1},{dateBox:o,input:d,label:L}}getPosition(){const r=this.chart,i=r.options.rangeSelector,t=i.verticalAlign==="top"?r.plotTop-r.axisOffset[0]:0;return{buttonTop:t+i.buttonPosition.y,inputTop:t+i.inputPosition.y-10}}getYTDExtremes(r,i,t){const e=this.chart.time,s=new e.Date(r),n=e.get("FullYear",s),a=t?e.Date.UTC(n,0,1):+new e.Date(n,0,1),M=Math.max(i,a),g=s.getTime();return{max:Math.min(r||g,g),min:M}}render(r,i){const t=this.chart,e=t.renderer,s=t.container,n=t.options,a=n.rangeSelector,M=T(n.chart.style&&n.chart.style.zIndex,0)+1,g=a.inputEnabled,k=this.rendered;if(a.enabled!==!1){if(!k&&(this.group=e.g("range-selector-group").attr({zIndex:7}).add(),this.div=K("div",void 0,{position:"relative",height:0,zIndex:M}),this.buttonOptions.length&&this.renderButtons(),s.parentNode&&s.parentNode.insertBefore(this.div,s),g)){this.inputGroup=e.g("input-group").add(this.group);const C=this.drawInput("min");this.minDateBox=C.dateBox,this.minLabel=C.label,this.minInput=C.input;const B=this.drawInput("max");this.maxDateBox=B.dateBox,this.maxLabel=B.label,this.maxInput=B.input}if(g){this.setInputValue("min",r),this.setInputValue("max",i);const C=t.scroller&&t.scroller.getUnionExtremes()||t.xAxis[0]||{};if(S(C.dataMin)&&S(C.dataMax)){const B=t.xAxis[0].minRange||0;this.setInputExtremes("min",C.dataMin,Math.min(C.dataMax,this.getInputValue("max"))-B),this.setInputExtremes("max",Math.max(C.dataMin,this.getInputValue("min"))+B,C.dataMax)}if(this.inputGroup){let B=0;[this.minLabel,this.minDateBox,this.maxLabel,this.maxDateBox].forEach(L=>{if(L){const{width:o}=L.getBBox();o&&(L.attr({x:B}),B+=o+a.inputSpacing)}})}}this.alignElements(),this.rendered=!0}}renderButtons(){const{buttons:r,chart:i,options:t}=this,e=Q.lang,s=i.renderer,n=p(t.buttonTheme),a=n&&n.states,M=n.width||28;delete n.width,delete n.states,this.buttonGroup=s.g("range-selector-buttons").add(this.group);const g=this.dropdown=K("select",void 0,{position:"absolute",width:"1px",height:"1px",padding:0,border:0,top:"-9999em",cursor:"pointer",opacity:1e-4},this.div);G(g,"touchstart",()=>{g.style.fontSize="16px"}),[[tt.isMS?"mouseover":"mouseenter"],[tt.isMS?"mouseout":"mouseleave"],["change","click"]].forEach(([k,C])=>{G(g,k,()=>{const B=r[this.currentButtonIndex()];B&&f(B.element,C||k)})}),this.zoomText=s.label(e&&e.rangeSelectorZoom||"",0).attr({padding:t.buttonTheme.padding,height:t.buttonTheme.height,paddingLeft:0,paddingRight:0}).add(this.buttonGroup),this.chart.styledMode||(this.zoomText.css(t.labelStyle),n["stroke-width"]=T(n["stroke-width"],0)),K("option",{textContent:this.zoomText.textStr,disabled:!0},void 0,g),this.buttonOptions.forEach((k,C)=>{K("option",{textContent:k.title||k.text},void 0,g),r[C]=s.button(k.text,0,0,B=>{const L=k.events&&k.events.click;let o;L&&(o=L.call(k,B)),o!==!1&&this.clickButton(C),this.isActive=!0},n,a&&a.hover,a&&a.select,a&&a.disabled).attr({"text-align":"center",width:M}).add(this.buttonGroup),k.title&&r[C].attr("title",k.title)})}alignElements(){const{buttonGroup:r,buttons:i,chart:t,group:e,inputGroup:s,options:n,zoomText:a}=this,M=t.options,g=M.exporting&&M.exporting.enabled!==!1&&M.navigation&&M.navigation.buttonOptions,{buttonPosition:k,inputPosition:C,verticalAlign:B}=n,L=(d,N)=>g&&this.titleCollision(t)&&B==="top"&&N.align==="right"&&N.y-d.getBBox().height-12<(g.y||0)+(g.height||0)+t.spacing[0]?-40:0;let o=t.plotLeft;if(e&&k&&C){let d=k.x-t.spacing[3];if(r){if(this.positionButtons(),!this.initialButtonGroupWidth){let $=0;a&&($+=a.getBBox().width+5),i.forEach((j,et)=>{$+=j.width,et!==i.length-1&&($+=n.buttonSpacing)}),this.initialButtonGroupWidth=$}o-=t.spacing[3],this.updateButtonStates();const z=L(r,k);this.alignButtonGroup(z),e.placed=r.placed=t.hasLoaded}let N=0;s&&(N=L(s,C),C.align==="left"?d=o:C.align==="right"&&(d=-Math.max(t.axisOffset[1],-N)),s.align({y:C.y,width:s.getBBox().width,align:C.align,x:C.x+d-2},!0,t.spacingBox),s.placed=t.hasLoaded),this.handleCollision(N),e.align({verticalAlign:B},!0,t.spacingBox);const V=e.alignAttr.translateY;let R=e.getBBox().height+20,H=0;if(B==="bottom"){const z=t.legend&&t.legend.options,$=z&&z.verticalAlign==="bottom"&&z.enabled&&!z.floating?t.legend.legendHeight+T(z.margin,10):0;R=R+$-20,H=V-R-(n.floating?0:n.y)-(t.titleOffset?t.titleOffset[2]:0)-10}B==="top"?(n.floating&&(H=0),t.titleOffset&&t.titleOffset[0]&&(H=t.titleOffset[0]),H+=t.margin[0]-t.spacing[0]||0):B==="middle"&&(C.y===k.y?H=V:(C.y||k.y)&&(C.y<0||k.y<0?H-=Math.min(C.y,k.y):H=V-R)),e.translate(n.x,n.y+Math.floor(H));const{minInput:v,maxInput:P,dropdown:_}=this;n.inputEnabled&&v&&P&&(v.style.marginTop=e.translateY+"px",P.style.marginTop=e.translateY+"px"),_&&(_.style.marginTop=e.translateY+"px")}}alignButtonGroup(r,i){const{chart:t,options:e,buttonGroup:s,buttons:n}=this,{buttonPosition:a}=e,M=t.plotLeft-t.spacing[3];let g=a.x-t.spacing[3];a.align==="right"?g+=r-M:a.align==="center"&&(g-=M/2),s&&s.align({y:a.y,width:T(i,this.initialButtonGroupWidth),align:a.align,x:g},!0,t.spacingBox)}positionButtons(){const{buttons:r,chart:i,options:t,zoomText:e}=this,s=i.hasLoaded?"animate":"attr",{buttonPosition:n}=t,a=i.plotLeft;let M=a;e&&e.visibility!=="hidden"&&(e[s]({x:T(a+n.x,a)}),M+=n.x+e.getBBox().width+5);for(let g=0,k=this.buttonOptions.length;g<k;++g)r[g].visibility!=="hidden"?(r[g][s]({x:M}),M+=r[g].width+t.buttonSpacing):r[g][s]({x:a})}handleCollision(r){const{chart:i,buttonGroup:t,inputGroup:e}=this,{buttonPosition:s,dropdown:n,inputPosition:a}=this.options,M=()=>{let C=0;return this.buttons.forEach(B=>{const L=B.getBBox();L.width>C&&(C=L.width)}),C},g=C=>{if(e&&t){const B=e.alignAttr.translateX+e.alignOptions.x-r+e.getBBox().x+2,L=e.alignOptions.width,o=t.alignAttr.translateX+t.getBBox().x;return o+C>B&&B+L>o&&s.y<a.y+e.getBBox().height}return!1},k=()=>{e&&t&&e.attr({translateX:e.alignAttr.translateX+(i.axisOffset[1]>=-r?0:-r),translateY:e.alignAttr.translateY+t.getBBox().height+10})};if(t){if(n==="always"){this.collapseButtons(r),g(M())&&k();return}n==="never"&&this.expandButtons()}e&&t?a.align===s.align||g(this.initialButtonGroupWidth+20)?n==="responsive"?(this.collapseButtons(r),g(M())&&k()):k():n==="responsive"&&this.expandButtons():t&&n==="responsive"&&(this.initialButtonGroupWidth>i.plotWidth?this.collapseButtons(r):this.expandButtons())}collapseButtons(r){const{buttons:i,buttonOptions:t,chart:e,dropdown:s,options:n,zoomText:a}=this,M=e.userOptions.rangeSelector&&e.userOptions.rangeSelector.buttonTheme||{},g=B=>({text:B?`${B} ▾`:"▾",width:"auto",paddingLeft:T(n.buttonTheme.paddingLeft,M.padding,8),paddingRight:T(n.buttonTheme.paddingRight,M.padding,8)});a&&a.hide();let k=!1;t.forEach((B,L)=>{const o=i[L];o.state!==2?o.hide():(o.show(),o.attr(g(B.text)),k=!0)}),k||(s&&(s.selectedIndex=0),i[0].show(),i[0].attr(g(this.zoomText&&this.zoomText.textStr)));const{align:C}=n.buttonPosition;this.positionButtons(),(C==="right"||C==="center")&&this.alignButtonGroup(r,i[this.currentButtonIndex()].getBBox().width),this.showDropdown()}expandButtons(){const{buttons:r,buttonOptions:i,options:t,zoomText:e}=this;this.hideDropdown(),e&&e.show(),i.forEach((s,n)=>{const a=r[n];a.show(),a.attr({text:s.text,width:t.buttonTheme.width||28,paddingLeft:T(t.buttonTheme.paddingLeft,"unset"),paddingRight:T(t.buttonTheme.paddingRight,"unset")}),a.state<2&&a.setState(0)}),this.positionButtons()}currentButtonIndex(){const{dropdown:r}=this;return r&&r.selectedIndex>0?r.selectedIndex-1:0}showDropdown(){const{buttonGroup:r,buttons:i,chart:t,dropdown:e}=this;if(r&&e){const{translateX:s,translateY:n}=r,a=i[this.currentButtonIndex()].getBBox();O(e,{left:t.plotLeft+s+"px",top:n+.5+"px",width:a.width+"px",height:a.height+"px"}),this.hasVisibleDropdown=!0}}hideDropdown(){const{dropdown:r}=this;r&&(O(r,{top:"-9999em",width:"1px",height:"1px"}),this.hasVisibleDropdown=!1)}getHeight(){const r=this,i=r.options,t=r.group,e=i.inputPosition,s=i.buttonPosition,n=i.y,a=s.y,M=e.y;let g=0;if(i.height)return i.height;this.alignElements(),g=t?t.getBBox(!0).height+13+n:0;const k=Math.min(M,a);return(M<0&&a<0||M>0&&a>0)&&(g+=Math.abs(k)),g}titleCollision(r){return!(r.options.title.text||r.options.subtitle.text)}update(r){const i=this.chart;p(!0,i.options.rangeSelector,r),this.destroy(),this.init(i),this.render()}destroy(){const r=this,i=r.minInput,t=r.maxInput;r.eventsToUnbind&&(r.eventsToUnbind.forEach(e=>e()),r.eventsToUnbind=void 0),w(r.buttons),i&&(i.onfocus=i.onblur=i.onchange=null),t&&(t.onfocus=t.onblur=t.onchange=null),c(r,function(e,s){e&&s!=="chart"&&(e instanceof Z?e.destroy():e instanceof lt.HTMLElement&&D(e)),e!==l.prototype[s]&&(r[s]=null)},this)}}return b(l.prototype,{defaultButtons:[{type:"month",count:1,text:"1m",title:"View 1 month"},{type:"month",count:3,text:"3m",title:"View 3 months"},{type:"month",count:6,text:"6m",title:"View 6 months"},{type:"ytd",text:"YTD",title:"View year to date"},{type:"year",count:1,text:"1y",title:"View 1 year"},{type:"all",text:"All",title:"View all"}],inputTypeFormats:{"datetime-local":"%Y-%m-%dT%H:%M:%S",date:"%Y-%m-%d",time:"%H:%M:%S"}}),l}),ct(A,"Core/Axis/OrdinalAxis.js",[A["Core/Axis/Axis.js"],A["Core/Globals.js"],A["Core/Series/Series.js"],A["Core/Utilities.js"]],function(q,Y,tt,it){const{addEvent:Z,correctFloat:st,css:Q,defined:G,error:K,pick:O,timeUnits:S}=it,w=[];var D;return function(b){function f(t,e,s){if(it.pushUnique(w,t)){const n=t.prototype;n.getTimeTicks=I,n.index2val=p,n.lin2val=c,n.val2lin=r,n.ordinal2lin=n.val2lin,Z(t,"afterInit",T),Z(t,"foundExtremes",m),Z(t,"afterSetScale",h),Z(t,"initialAxisTranslation",x)}return it.pushUnique(w,s)&&Z(s,"pan",l),it.pushUnique(w,e)&&Z(e,"updatedData",u),t}b.compose=f;function I(t,e,s,n,a=[],M=0,g){const k={},C=this.options.tickPixelInterval,B=this.chart.time,L=[];let o,d,N,V,R,H=0,v=[],P=-Number.MAX_VALUE;if(!this.options.ordinal&&!this.options.breaks||!a||a.length<3||typeof e>"u")return B.getTimeTicks.apply(B,arguments);const _=a.length;for(o=0;o<_;o++){if(R=o&&a[o-1]>s,a[o]<e&&(H=o),o===_-1||a[o+1]-a[o]>M*5||R){if(a[o]>P){for(d=B.getTimeTicks(t,a[H],a[o],n);d.length&&d[0]<=P;)d.shift();d.length&&(P=d[d.length-1]),L.push(v.length),v=v.concat(d)}H=o+1}if(R)break}if(d){if(V=d.info,g&&V.unitRange<=S.hour){for(o=v.length-1,H=1;H<o;H++)B.dateFormat("%d",v[H])!==B.dateFormat("%d",v[H-1])&&(k[v[H]]="day",N=!0);N&&(k[v[0]]="day"),V.higherRanks=k}V.segmentStarts=L,v.info=V}else K(12,!1,this.chart);if(g&&G(C)){const z=v.length,$=[],j=[];let et,ot,J,at,W,F=z;for(;F--;)ot=this.translate(v[F]),J&&(j[F]=J-ot),$[F]=J=ot;for(j.sort(),at=j[Math.floor(j.length/2)],at<C*.6&&(at=null),F=v[z-1]>s?z-1:z,J=void 0;F--;)ot=$[F],W=Math.abs(J-ot),J&&W<C*.8&&(at===null||W<at*.8)?(k[v[F]]&&!k[v[F+1]]?(et=F+1,J=ot):et=F,v.splice(et,1)):J=ot}return v}function p(t){const e=this,s=e.ordinal,n=s.positions;if(!n)return t;let a=n.length-1,M;return t<0?t=n[0]:t>a?t=n[a]:(a=Math.floor(t),M=t-a),typeof M<"u"&&typeof n[a]<"u"?n[a]+(M?M*(n[a+1]-n[a]):0):t}function c(t){const e=this,s=e.ordinal,n=e.old?e.old.min:e.min,a=e.old?e.old.transA:e.transA;let M=s.positions;if(!M)return t;const g=st((t-n)*a+e.minPixelPadding);if(t>=M[0]&&t<=M[M.length-1]||(s.extendedOrdinalPositions||(s.extendedOrdinalPositions=s.getExtendedPositions()),M=s.extendedOrdinalPositions),M&&M.length){const C=M.indexOf(t),B=C!==-1?C:st(s.getIndexOfPoint(g,M)),L=st(B%1);if(B>=0&&B<=M.length-1){const R=M[Math.floor(B)],H=M[Math.ceil(B)],v=H-R;return M[Math.floor(B)]+L*v}const o=M.length,d=M[0],N=M[o-1],V=(N-d)/(o-1);return B<0?d+V*B:N+V*(B-o)}return t}function y(t,e){const s=b.Additions.findIndexOf(t,e,!0);if(t[s]===e)return s;const n=(e-t[s])/(t[s+1]-t[s]);return s+n}function T(){const t=this;t.ordinal||(t.ordinal=new b.Additions(t))}function m(){const t=this;t.isXAxis&&G(t.options.overscroll)&&t.max===t.dataMax&&(!t.chart.mouseIsDown||t.isInternal)&&(!t.eventArgs||t.eventArgs&&t.eventArgs.trigger!=="navigator")&&(t.max+=t.options.overscroll,!t.isInternal&&G(t.userMin)&&(t.min+=t.options.overscroll))}function h(){const t=this;t.horiz&&!t.isDirty&&(t.isDirty=t.isOrdinal&&t.chart.navigator&&!t.chart.navigator.adaptToUpdatedData)}function x(){const t=this;t.ordinal&&(t.ordinal.beforeSetTickPositions(),t.tickInterval=t.ordinal.postProcessTickInterval(t.tickInterval))}function l(t){const e=this,s=e.xAxis[0],n=s.options.overscroll,a=t.originalEvent.chartX,M=e.options.chart.panning;let g=!1;if(M&&M.type!=="y"&&s.options.ordinal&&s.series.length){const k=e.mouseDownX,C=s.getExtremes(),B=C.dataMax,L=C.min,o=C.max,d=e.hoverPoints,N=s.closestPointRange||s.ordinal&&s.ordinal.overscrollPointsRange,V=s.translationSlope*(s.ordinal.slope||N),R=Math.round((k-a)/V),H=s.ordinal.getExtendedPositions(),v={ordinal:{positions:H,extendedOrdinalPositions:H}},P=s.index2val,_=s.val2lin;let z,$,j,et;v.ordinal.positions?Math.abs(R)>1&&(d&&d.forEach(function(ot){ot.setState()}),R<0?(j=v,et=s.ordinal.positions?s:v):(j=s.ordinal.positions?s:v,et=v),$=et.ordinal.positions,B>$[$.length-1]&&$.push(B),e.fixedRange=o-L,z=s.navigatorAxis.toFixedRange(void 0,void 0,P.apply(j,[_.apply(j,[L,!0])+R]),P.apply(et,[_.apply(et,[o,!0])+R])),z.min>=Math.min(C.dataMin,L)&&z.max<=Math.max(B,o)+n&&s.setExtremes(z.min,z.max,!0,!1,{trigger:"pan"}),e.mouseDownX=a,Q(e.container,{cursor:"move"})):g=!0}else g=!0;g||M&&/y/.test(M.type)?n&&(s.max=s.dataMax+n):t.preventDefault()}function u(){const t=this.xAxis;t&&t.options.ordinal&&(delete t.ordinal.index,delete t.ordinal.extendedOrdinalPositions)}function r(t,e){const s=this,n=s.ordinal,a=n.positions;let M=n.slope,g=n.extendedOrdinalPositions;if(!a)return t;const k=a.length;let C;if(a[0]<=t&&a[k-1]>=t)C=y(a,t);else{if(g||(g=n.getExtendedPositions&&n.getExtendedPositions(),n.extendedOrdinalPositions=g),!(g&&g.length))return t;const B=g.length;M||(M=(g[B-1]-g[0])/B);const L=y(g,a[0]);if(t>=g[0]&&t<=g[B-1])C=y(g,t)-L;else if(t<g[0]){const o=g[0]-t,d=o/M;C=-L-d}else C=(t-g[B-1])/M+B-L}return e?C:M*(C||0)+n.offset}class i{constructor(e){this.index={},this.axis=e}beforeSetTickPositions(){const e=this.axis,s=e.ordinal,n=e.getExtremes(),a=n.min,M=n.max,g=e.isXAxis&&!!e.options.breaks,k=e.options.ordinal,C=e.chart.options.chart.ignoreHiddenSeries;let B,L,o,d,N,V,R,H=[],v=Number.MAX_VALUE,P=!1,_=!1,z=!1;if(k||g){let $=0;if(e.series.forEach(function(j,et){if(L=[],et>0&&j.options.id!=="highcharts-navigator-series"&&j.processedXData.length>1&&(_=$!==j.processedXData[1]-j.processedXData[0]),$=j.processedXData[1]-j.processedXData[0],j.boosted&&(z=j.boosted),(!C||j.visible!==!1)&&(j.takeOrdinalPosition!==!1||g)&&(H=H.concat(j.processedXData),B=H.length,H.sort(function(ot,J){return ot-J}),v=Math.min(v,O(j.closestPointRange,v)),B)){for(et=0;et<B-1;)H[et]!==H[et+1]&&L.push(H[et+1]),et++;L[0]!==H[0]&&L.unshift(H[0]),H=L}}),_&&z&&(H.pop(),H.shift()),B=H.length,B>2){for(o=H[1]-H[0],R=B-1;R--&&!P;)H[R+1]-H[R]!==o&&(P=!0);!e.options.keepOrdinalPadding&&(H[0]-a>o||M-H[H.length-1]>o)&&(P=!0)}else e.options.overscroll&&(B===2?v=H[1]-H[0]:B===1?(v=e.options.overscroll,H=[H[0],H[0]+v]):v=s.overscrollPointsRange);P||e.forceOrdinal?(e.options.overscroll&&(s.overscrollPointsRange=v,H=H.concat(s.getOverscrollPositions())),s.positions=H,d=e.ordinal2lin(Math.max(a,H[0]),!0),N=Math.max(e.ordinal2lin(Math.min(M,H[H.length-1]),!0),1),s.slope=V=(M-a)/(N-d),s.offset=a-d*V):(s.overscrollPointsRange=O(e.closestPointRange,s.overscrollPointsRange),s.positions=e.ordinal.slope=s.offset=void 0)}e.isOrdinal=k&&P,s.groupIntervalFactor=null}static findIndexOf(e,s,n){let a=0,M=e.length-1,g;for(;a<M;)g=Math.ceil((a+M)/2),e[g]<=s?a=g:M=g-1;return e[a]===s||n?a:-1}getExtendedPositions(){const e=this,s=e.axis,n=s.constructor.prototype,a=s.chart,M=s.series[0].currentDataGrouping,g=M?M.count+M.unitName:"raw",k=s.options.overscroll,C=s.getExtremes();let B,L,o=e.index;return o||(o=e.index={}),o[g]||(B={series:[],chart:a,forceOrdinal:!1,getExtremes:function(){return{min:C.dataMin,max:C.dataMax+k}},getGroupPixelWidth:n.getGroupPixelWidth,getTimeTicks:n.getTimeTicks,options:{ordinal:!0},ordinal:{getGroupIntervalFactor:this.getGroupIntervalFactor},ordinal2lin:n.ordinal2lin,getIndexOfPoint:n.getIndexOfPoint,val2lin:n.val2lin},B.ordinal.axis=B,s.series.forEach(function(d){L={xAxis:B,xData:d.xData.slice(),chart:a,destroyGroupedData:Y.noop,getProcessedData:tt.prototype.getProcessedData,applyGrouping:tt.prototype.applyGrouping},L.xData=L.xData.concat(e.getOverscrollPositions()),L.options={dataGrouping:M?{firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",enabled:!0,forced:!0,approximation:"open",units:[[M.unitName,[M.count]]]}:{enabled:!1}},B.series.push(L),d.processData.apply(L)}),L.closestPointRange!==L.basePointRange&&L.currentDataGrouping&&(B.forceOrdinal=!0),s.ordinal.beforeSetTickPositions.apply({axis:B}),o[g]=B.ordinal.positions),o[g]}getGroupIntervalFactor(e,s,n){const a=this;a.axis;const M=n.processedXData,g=M.length,k=[];let C,B,L=a.groupIntervalFactor;if(!L){for(B=0;B<g-1;B++)k[B]=M[B+1]-M[B];k.sort(function(o,d){return o-d}),C=k[Math.floor(g/2)],e=Math.max(e,M[0]),s=Math.min(s,M[g-1]),a.groupIntervalFactor=L=g*C/(s-e)}return L}getIndexOfPoint(e,s){const n=this,a=n.axis,M=n.positions?n.positions[0]:0,g=function(L){return L.points.some(o=>!!o.isInside)};let k;a.series.forEach(L=>{var o;const d=(o=L.points)===null||o===void 0?void 0:o[0];G(d==null?void 0:d.plotX)&&(d.plotX<k||!G(k))&&g(L)&&(k=d.plotX)}),k??(k=a.minPixelPadding);const C=a.translationSlope*(n.slope||a.closestPointRange||n.overscrollPointsRange),B=st((e-k)/C);return i.findIndexOf(s,M,!0)+B}getOverscrollPositions(){const e=this,s=e.axis,n=s.options.overscroll,a=e.overscrollPointsRange,M=[];let g=s.dataMax;if(G(a))for(;g<=s.dataMax+n;)g+=a,M.push(g);return M}postProcessTickInterval(e){const s=this,n=s.axis,a=s.slope;let M;return a?n.options.breaks?M=n.closestPointRange||e:M=e/(a/n.closestPointRange):M=e,M}}b.Additions=i}(D||(D={})),D}),ct(A,"Series/HLC/HLCPoint.js",[A["Core/Series/SeriesRegistry.js"]],function(q){const{column:{prototype:{pointClass:Y}}}=q.seriesTypes;class tt extends Y{constructor(){super(...arguments),this.close=void 0,this.high=void 0,this.low=void 0,this.options=void 0,this.plotClose=void 0,this.series=void 0}}return tt}),ct(A,"Series/HLC/HLCSeriesDefaults.js",[],function(){return{lineWidth:1,tooltip:{pointFormat:'<span style="color:{point.color}">●</span> <b> {series.name}</b><br/>High: {point.high}<br/>Low: {point.low}<br/>Close: {point.close}<br/>'},threshold:null,states:{hover:{lineWidth:3}},stickyTracking:!0}}),ct(A,"Series/HLC/HLCSeries.js",[A["Series/HLC/HLCPoint.js"],A["Series/HLC/HLCSeriesDefaults.js"],A["Core/Series/SeriesRegistry.js"],A["Core/Utilities.js"]],function(q,Y,tt,it){const{column:Z}=tt.seriesTypes,{extend:st,merge:Q}=it;class G extends Z{constructor(){super(...arguments),this.data=void 0,this.options=void 0,this.points=void 0,this.yData=void 0}extendStem(O,S,w){const D=O[0],b=O[1];typeof D[2]=="number"&&(D[2]=Math.max(w+S,D[2])),typeof b[2]=="number"&&(b[2]=Math.min(w-S,b[2]))}getPointPath(O,S){const w=S.strokeWidth(),D=O.series,b=w%2/2,f=Math.round(O.plotX)-b,I=Math.round(O.shapeArgs.width/2);let p=O.plotClose;const c=[["M",f,Math.round(O.yBottom)],["L",f,Math.round(O.plotHigh)]];return O.close!==null&&(p=Math.round(O.plotClose)+b,c.push(["M",f,p],["L",f+I,p]),D.extendStem(c,w/2,p)),c}drawSinglePoint(O){const S=O.series,w=S.chart;let D,b=O.graphic;typeof O.plotY<"u"&&(b||(O.graphic=b=w.renderer.path().add(S.group)),w.styledMode||b.attr(S.pointAttribs(O,O.selected&&"select")),D=S.getPointPath(O,b),b[b?"animate":"attr"]({d:D}).addClass(O.getClassName(),!0))}drawPoints(){this.points.forEach(this.drawSinglePoint)}init(){super.init.apply(this,arguments),this.options.stacking=void 0}pointAttribs(O,S){const w=super.pointAttribs.call(this,O,S);return delete w.fill,w}toYData(O){return[O.high,O.low,O.close]}translate(){const O=this,S=O.yAxis,w=this.pointArrayMap&&this.pointArrayMap.slice()||[],D=w.map(b=>`plot${b.charAt(0).toUpperCase()+b.slice(1)}`);D.push("yBottom"),w.push("low"),super.translate.apply(O),O.points.forEach(function(b){w.forEach(function(f,I){let p=b[f];p!==null&&(O.dataModify&&(p=O.dataModify.modifyValue(p)),b[D[I]]=S.toPixels(p,!0))}),b.tooltipPos[1]=b.plotHigh+S.pos-O.chart.plotTop})}}return G.defaultOptions=Q(Z.defaultOptions,Y),st(G.prototype,{pointClass:q,animate:null,directTouch:!1,pointArrayMap:["high","low","close"],pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"},pointValKey:"close"}),tt.registerSeriesType("hlc",G),G}),ct(A,"Series/OHLC/OHLCPoint.js",[A["Core/Series/SeriesRegistry.js"]],function(q){const{seriesTypes:{hlc:Y}}=q;class tt extends Y.prototype.pointClass{constructor(){super(...arguments),this.open=void 0,this.options=void 0,this.plotOpen=void 0,this.series=void 0}getClassName(){return super.getClassName.call(this)+(this.open<this.close?" highcharts-point-up":" highcharts-point-down")}resolveUpColor(){this.open<this.close&&!this.options.color&&this.series.options.upColor&&(this.color=this.series.options.upColor)}resolveColor(){super.resolveColor(),this.resolveUpColor()}getZone(){const Z=super.getZone();return this.resolveUpColor(),Z}applyOptions(){return super.applyOptions.apply(this,arguments),this.resolveColor&&this.resolveColor(),this}}return tt}),ct(A,"Series/OHLC/OHLCSeriesDefaults.js",[],function(){return{tooltip:{pointFormat:'<span style="color:{point.color}">●</span> <b> {series.name}</b><br/>Open: {point.open}<br/>High: {point.high}<br/>Low: {point.low}<br/>Close: {point.close}<br/>'}}}),ct(A,"Series/OHLC/OHLCSeries.js",[A["Series/OHLC/OHLCPoint.js"],A["Series/OHLC/OHLCSeriesDefaults.js"],A["Core/Series/SeriesRegistry.js"],A["Core/Utilities.js"]],function(q,Y,tt,it){const{seriesTypes:{hlc:Z}}=tt,{addEvent:st,extend:Q,merge:G}=it,K=[];function O(D){const b=D.options,f=b.dataGrouping;f&&b.useOhlcData&&b.id!=="highcharts-navigator-series"&&(f.approximation="ohlc")}function S(D){const b=this,f=D.options;f.useOhlcData&&f.id!=="highcharts-navigator-series"&&Q(b,{pointValKey:w.prototype.pointValKey,pointArrayMap:w.prototype.pointArrayMap,toYData:w.prototype.toYData})}class w extends Z{constructor(){super(...arguments),this.data=void 0,this.options=void 0,this.points=void 0}static compose(b,...f){it.pushUnique(K,b)&&(st(b,"afterSetOptions",O),st(b,"init",S))}getPointPath(b,f){const I=super.getPointPath(b,f),p=f.strokeWidth(),c=p%2/2,y=Math.round(b.plotX)-c,T=Math.round(b.shapeArgs.width/2);let m=b.plotOpen;return b.open!==null&&(m=Math.round(b.plotOpen)+c,I.push(["M",y,m],["L",y-T,m]),super.extendStem(I,p/2,m)),I}pointAttribs(b,f){const I=super.pointAttribs.call(this,b,f),p=this.options;return delete I.fill,!b.options.color&&p.upColor&&b.open<b.close&&(I.stroke=p.upColor),I}toYData(b){return[b.open,b.high,b.low,b.close]}}return w.defaultOptions=G(Z.defaultOptions,Y),Q(w.prototype,{pointClass:q,pointArrayMap:["open","high","low","close"]}),tt.registerSeriesType("ohlc",w),w}),ct(A,"Series/Candlestick/CandlestickSeriesDefaults.js",[A["Core/Defaults.js"],A["Core/Utilities.js"]],function(q,Y){return{states:{hover:{lineWidth:2}},threshold:null,lineColor:"#000000",lineWidth:1,upColor:"#ffffff",stickyTracking:!0}}),ct(A,"Series/Candlestick/CandlestickSeries.js",[A["Series/Candlestick/CandlestickSeriesDefaults.js"],A["Core/Defaults.js"],A["Core/Series/SeriesRegistry.js"],A["Core/Utilities.js"]],function(q,Y,tt,it){const{defaultOptions:Z}=Y,{column:st,ohlc:Q}=tt.seriesTypes,{merge:G}=it;class K extends Q{constructor(){super(...arguments),this.data=void 0,this.options=void 0,this.points=void 0}pointAttribs(S,w){const D=st.prototype.pointAttribs.call(this,S,w),b=this.options,f=S.open<S.close,I=b.lineColor||this.color,p=S.color||this.color;if(D["stroke-width"]=b.lineWidth,D.fill=S.options.color||f&&b.upColor||p,D.stroke=S.options.lineColor||f&&b.upLineColor||I,w){const c=b.states[w];D.fill=c.color||D.fill,D.stroke=c.lineColor||D.stroke,D["stroke-width"]=c.lineWidth||D["stroke-width"]}return D}drawPoints(){const S=this,w=S.points,D=S.chart,b=S.yAxis.reversed;for(const f of w){let I=f.graphic,p,c,y,T,m,h,x,l,u,r;const i=!I;typeof f.plotY<"u"&&(I||(f.graphic=I=D.renderer.path().add(S.group)),S.chart.styledMode||I.attr(S.pointAttribs(f,f.selected&&"select")).shadow(S.options.shadow),x=I.strokeWidth()%2/2,l=Math.round(f.plotX)-x,p=f.plotOpen,c=f.plotClose,y=Math.min(p,c),T=Math.max(p,c),r=Math.round(f.shapeArgs.width/2),m=b?T!==f.yBottom:Math.round(y)!==Math.round(f.plotHigh),h=b?Math.round(y)!==Math.round(f.plotHigh):T!==f.yBottom,y=Math.round(y)+x,T=Math.round(T)+x,u=[],u.push(["M",l-r,T],["L",l-r,y],["L",l+r,y],["L",l+r,T],["Z"],["M",l,y],["L",l,m?Math.round(b?f.yBottom:f.plotHigh):y],["M",l,T],["L",l,h?Math.round(b?f.plotHigh:f.yBottom):T]),I[i?"attr":"animate"]({d:u}).addClass(f.getClassName(),!0))}}}return K.defaultOptions=G(Q.defaultOptions,Z.plotOptions,{tooltip:Q.defaultOptions.tooltip},q),tt.registerSeriesType("candlestick",K),K}),ct(A,"Series/Flags/FlagsPoint.js",[A["Core/Series/SeriesRegistry.js"],A["Core/Utilities.js"]],function(q,Y){const{column:{prototype:{pointClass:tt}}}=q.seriesTypes,{isNumber:it}=Y;class Z extends tt{constructor(){super(...arguments),this.options=void 0,this.series=void 0,this.ttBelow=!1}isValid(){return it(this.y)||typeof this.y>"u"}hasNewShapeType(){const Q=this.options.shape||this.series.options.shape;return this.graphic&&Q&&Q!==this.graphic.symbolKey}}return Z}),ct(A,"Series/Flags/FlagsSeriesDefaults.js",[],function(){return{pointRange:0,allowOverlapX:!1,shape:"flag",stackDistance:12,textAlign:"center",tooltip:{pointFormat:"{point.text}"},threshold:null,y:-30,fillColor:"#ffffff",lineWidth:1,states:{hover:{lineColor:"#000000",fillColor:"#ccd3ff"}},style:{fontSize:"0.7em",fontWeight:"bold"}}}),ct(A,"Series/Flags/FlagsSymbols.js",[A["Core/Renderer/RendererRegistry.js"]],function(q){var Y;return function(tt){const it=[];function Z(G){if(it.indexOf(G)===-1){it.push(G);const O=G.prototype.symbols;O.flag=st,Q(O,"circle"),Q(O,"square")}const K=q.getRendererType();it.indexOf(K)&&it.push(K)}tt.compose=Z;function st(G,K,O,S,w){const D=w&&w.anchorX||G,b=w&&w.anchorY||K,f=this.circle(D-1,b-1,2,2);return f.push(["M",D,b],["L",G,K+S],["L",G,K],["L",G+O,K],["L",G+O,K+S],["L",G,K+S],["Z"]),f}function Q(G,K){G[K+"pin"]=function(O,S,w,D,b){const f=b&&b.anchorX,I=b&&b.anchorY;let p;if(K==="circle"&&D>w&&(O-=Math.round((D-w)/2),w=D),p=G[K](O,S,w,D),f&&I){let c=f;if(K==="circle")c=O+w/2;else{const T=p[0],m=p[1];T[0]==="M"&&m[0]==="L"&&(c=(T[1]+m[1])/2)}const y=S>I?S:S+D;p.push(["M",c,y],["L",f,I]),p=p.concat(G.circle(f-1,I-1,2,2))}return p}}}(Y||(Y={})),Y}),ct(A,"Series/OnSeriesComposition.js",[A["Series/Column/ColumnSeries.js"],A["Core/Series/Series.js"],A["Core/Utilities.js"]],function(q,Y,tt){const{prototype:it}=q,{prototype:Z}=Y,{defined:st,stableSort:Q}=tt;var G;return function(K){const O=[];function S(b){if(tt.pushUnique(O,b)){const f=b.prototype;f.getPlotBox=w,f.translate=D}return b}K.compose=S;function w(b){return Z.getPlotBox.call(this.options.onSeries&&this.chart.get(this.options.onSeries)||this,b)}K.getPlotBox=w;function D(){it.translate.apply(this);const b=this,f=b.options,I=b.chart,p=b.points,c=f.onSeries,y=c&&I.get(c),T=y&&y.options.step,m=y&&y.points,h=I.inverted,x=b.xAxis,l=b.yAxis;let u=p.length-1,r,i,t=f.onKey||"y",e=m&&m.length,s=0,n,a,M,g,k;if(y&&y.visible&&e)for(s=(y.pointXOffset||0)+(y.barW||0)/2,g=y.currentDataGrouping,a=m[e-1].x+(g?g.totalRange:0),Q(p,(C,B)=>C.x-B.x),t="plot"+t[0].toUpperCase()+t.substr(1);e--&&p[u]&&(n=m[e],r=p[u],r.y=n.y,!(n.x<=r.x&&typeof n[t]<"u"&&(r.x<=a&&(r.plotY=n[t],n.x<r.x&&!T&&(M=m[e+1],M&&typeof M[t]<"u"&&(k=(r.x-n.x)/(M.x-n.x),r.plotY+=k*(M[t]-n[t]),r.y+=k*(M.y-n.y)))),u--,e++,u<0))););p.forEach((C,B)=>{let L;C.plotX+=s,(typeof C.plotY>"u"||h)&&(C.plotX>=0&&C.plotX<=x.len?h?(C.plotY=x.translate(C.x,0,1,0,1),C.plotX=st(C.y)?l.translate(C.y,0,0,0,1):0):C.plotY=(x.opposite?0:b.yAxis.len)+x.offset:C.shapeArgs={}),i=p[B-1],i&&i.plotX===C.plotX&&(typeof i.stackIndex>"u"&&(i.stackIndex=0),L=i.stackIndex+1),C.stackIndex=L}),this.onSeries=y}K.translate=D}(G||(G={})),G}),ct(A,"Series/Flags/FlagsSeries.js",[A["Series/Flags/FlagsPoint.js"],A["Series/Flags/FlagsSeriesDefaults.js"],A["Series/Flags/FlagsSymbols.js"],A["Core/Globals.js"],A["Series/OnSeriesComposition.js"],A["Core/Renderer/RendererUtilities.js"],A["Core/Series/SeriesRegistry.js"],A["Core/Renderer/SVG/SVGElement.js"],A["Core/Utilities.js"]],function(q,Y,tt,it,Z,st,Q,G,K){const{noop:O}=it,{distribute:S}=st,{series:w,seriesTypes:{column:D}}=Q,{addEvent:b,defined:f,extend:I,merge:p,objectEach:c,wrap:y}=K;class T extends D{constructor(){super(...arguments),this.data=void 0,this.options=void 0,this.points=void 0}animate(h){h&&this.setClip()}drawPoints(){const h=this,x=h.points,l=h.chart,u=l.renderer,r=l.inverted,i=h.options,t=i.y,e=h.yAxis,s={},n=[];let a,M,g,k,C,B,L,o,d,N,V;for(k=x.length;k--;)C=x[k],N=(r?C.plotY:C.plotX)>h.xAxis.len,a=C.plotX,L=C.stackIndex,g=C.options.shape||i.shape,M=C.plotY,typeof M<"u"&&(M=C.plotY+t-(typeof L<"u"&&L*i.stackDistance)),C.anchorX=L?void 0:C.plotX,o=L?void 0:C.plotY,V=g!=="flag",B=C.graphic,typeof M<"u"&&a>=0&&!N?(B&&C.hasNewShapeType()&&(B=B.destroy()),B||(B=C.graphic=u.label("",null,null,g,null,null,i.useHTML).addClass("highcharts-point").add(h.markerGroup),C.graphic.div&&(C.graphic.div.point=C),B.isNew=!0),B.attr({align:V?"center":"left",width:i.width,height:i.height,"text-align":i.textAlign}),l.styledMode||B.attr(h.pointAttribs(C)).css(p(i.style,C.style)).shadow(i.shadow),a>0&&(a-=B.strokeWidth()%2),d={y:M,anchorY:o},i.allowOverlapX&&(d.x=a,d.anchorX=C.anchorX),B.attr({text:C.options.title||i.title||"A"})[B.isNew?"attr":"animate"](d),i.allowOverlapX||(s[C.plotX]?s[C.plotX].size=Math.max(s[C.plotX].size,B.width):s[C.plotX]={align:V?.5:0,size:B.width,target:a,anchorX:a}),C.tooltipPos=[a,M+e.pos-l.plotTop]):B&&(C.graphic=B.destroy());if(!i.allowOverlapX){let R=100;c(s,function(H){H.plotX=H.anchorX,n.push(H),R=Math.max(H.size,R)}),S(n,r?e.len:this.xAxis.len,R);for(const H of x){const v=H.plotX,P=H.graphic,_=P&&s[v];_&&P&&(f(_.pos)?P[P.isNew?"attr":"animate"]({x:_.pos+(_.align||0)*_.size,anchorX:H.anchorX}).show().isNew=!1:P.hide().isNew=!0)}}i.useHTML&&h.markerGroup&&y(h.markerGroup,"on",function(R){return G.prototype.on.apply(R.apply(this,[].slice.call(arguments,1)),[].slice.call(arguments,1))})}drawTracker(){const h=this,x=h.points;super.drawTracker();for(const l of x){const u=l.graphic;u&&(l.unbindMouseOver&&l.unbindMouseOver(),l.unbindMouseOver=b(u.element,"mouseover",function(){l.stackIndex>0&&!l.raised&&(l._y=u.y,u.attr({y:l._y-8}),l.raised=!0);for(const r of x)r!==l&&r.raised&&r.graphic&&(r.graphic.attr({y:r._y}),r.raised=!1)}))}}pointAttribs(h,x){const l=this.options,u=h&&h.color||this.color;let r=l.lineColor,i=h&&h.lineWidth,t=h&&h.fillColor||l.fillColor;return x&&(t=l.states[x].fillColor,r=l.states[x].lineColor,i=l.states[x].lineWidth),{fill:t||u,stroke:r||u,"stroke-width":i||l.lineWidth||0}}setClip(){w.prototype.setClip.apply(this,arguments),this.options.clip!==!1&&this.sharedClipKey&&this.markerGroup&&this.markerGroup.clip(this.chart.sharedClips[this.sharedClipKey])}}return T.compose=tt.compose,T.defaultOptions=p(D.defaultOptions,Y),Z.compose(T),I(T.prototype,{allowDG:!1,forceCrop:!0,invertible:!1,noSharedTooltip:!0,pointClass:q,sorted:!1,takeOrdinalPosition:!1,trackerGroups:["markerGroup"],buildKDTree:O,init:w.prototype.init}),Q.registerSeriesType("flags",T),T}),ct(A,"Core/Chart/StockChart.js",[A["Core/Axis/Axis.js"],A["Core/Chart/Chart.js"],A["Core/Templating.js"],A["Core/Defaults.js"],A["Stock/Navigator/NavigatorDefaults.js"],A["Stock/RangeSelector/RangeSelectorDefaults.js"],A["Stock/Scrollbar/ScrollbarDefaults.js"],A["Core/Series/Series.js"],A["Core/Renderer/SVG/SVGRenderer.js"],A["Core/Utilities.js"]],function(q,Y,tt,it,Z,st,Q,G,K,O){const{format:S}=tt,{getOptions:w}=it,{addEvent:D,clamp:b,defined:f,extend:I,find:p,isNumber:c,isString:y,merge:T,pick:m,splat:h}=O;class x extends Y{init(i,t){const e=w(),s=i.xAxis,n=i.yAxis,a=m(i.navigator&&i.navigator.enabled,Z.enabled,!0);i.xAxis=i.yAxis=void 0;const M=T({chart:{panning:{enabled:!0,type:"x"},zooming:{pinchType:"x"}},navigator:{enabled:a},scrollbar:{enabled:m(Q.enabled,!0)},rangeSelector:{enabled:m(st.rangeSelector.enabled,!0)},title:{text:null},tooltip:{split:m(e.tooltip.split,!0),crosshairs:!0},legend:{enabled:!1}},i,{isStock:!0});i.xAxis=s,i.yAxis=n,M.xAxis=h(i.xAxis||{}).map(function(g,k){return T(l("xAxis",g),e.xAxis,e.xAxis&&e.xAxis[k],g,u("xAxis",i))}),M.yAxis=h(i.yAxis||{}).map(function(g,k){return T(l("yAxis",g),e.yAxis,e.yAxis&&e.yAxis[k],g)}),super.init(M,t)}createAxis(i,t){return t.axis=T(l(i,t.axis),t.axis,u(i,this.userOptions)),super.createAxis(i,t)}}(function(r){function i(t,e,s){return new r(t,e,s)}r.stockChart=i})(x||(x={}));function l(r,i){return r==="xAxis"?{minPadding:0,maxPadding:0,overscroll:0,ordinal:!0,title:{text:null},labels:{overflow:"justify"},showLastLabel:!0}:r==="yAxis"?{labels:{y:-2},opposite:m(i.opposite,!0),showLastLabel:!!(i.categories||i.type==="category"),title:{text:null}}:{}}function u(r,i){if(r==="xAxis"){const t=m(i.navigator&&i.navigator.enabled,Z.enabled,!0),e={type:"datetime",categories:void 0};return t&&(e.startOnTick=!1,e.endOnTick=!1),e}return{}}return D(G,"setOptions",function(r){let i;this.chart.options.isStock&&(this.is("column")||this.is("columnrange")?i={borderWidth:0,shadow:!1}:!this.is("scatter")&&!this.is("sma")&&(i={marker:{enabled:!1,radius:2}}),i&&(r.plotOptions[this.type]=T(r.plotOptions[this.type],i)))}),D(q,"autoLabelAlign",function(r){const{chart:i,options:t}=this,e=i._labelPanes=i._labelPanes||{},s=t.labels;if(i.options.isStock&&this.coll==="yAxis"){const n=t.top+","+t.height;!e[n]&&s.enabled&&(s.distance===15&&this.side===1&&(s.distance=0),typeof s.align>"u"&&(s.align="right"),e[n]=this,r.align="right",r.preventDefault())}}),D(q,"destroy",function(){const r=this.chart,i=this.options&&this.options.top+","+this.options.height;i&&r._labelPanes&&r._labelPanes[i]===this&&delete r._labelPanes[i]}),D(q,"getPlotLinePath",function(r){let i=this,t=this.isLinked&&!this.series?this.linkedParent.series:this.series,e=i.chart,s=e.renderer,n=i.left,a=i.top,M,g,k,C,B=[],L=[],o,d,N=r.translatedValue,V=r.value,R=r.force,H;function v(P){const _=P==="xAxis"?"yAxis":"xAxis",z=i.options[_];return c(z)?[e[_][z]]:y(z)?[e.get(z)]:t.map(function($){return $[_]})}(e.options.isStock&&r.acrossPanes!==!1&&i.coll==="xAxis"||i.coll==="yAxis")&&(r.preventDefault(),L=v(i.coll),o=i.isXAxis?e.yAxis:e.xAxis,o.forEach(function(P){if(!f(P.options.id)||P.options.id.indexOf("navigator")===-1){const _=P.isXAxis?"yAxis":"xAxis",z=f(P.options[_])?e[_][P.options[_]]:e[_][0];i===z&&L.push(P)}}),d=L.length?[]:[i.isXAxis?e.yAxis[0]:e.xAxis[0]],L.forEach(function(P){d.indexOf(P)===-1&&!p(d,function(_){return _.pos===P.pos&&_.len===P.len})&&d.push(P)}),H=m(N,i.translate(V,void 0,void 0,r.old)),c(H)&&(i.horiz?d.forEach(function(P){let _;g=P.pos,C=g+P.len,M=k=Math.round(H+i.transB),R!=="pass"&&(M<n||M>n+i.width)&&(R?M=k=b(M,n,n+i.width):_=!0),_||B.push(["M",M,g],["L",k,C])}):d.forEach(function(P){let _;M=P.pos,k=M+P.len,g=C=Math.round(a+i.height-H),R!=="pass"&&(g<a||g>a+i.height)&&(R?g=C=b(g,a,a+i.height):_=!0),_||B.push(["M",M,g],["L",k,C])})),r.path=B.length>0?s.crispPolyLine(B,r.lineWidth||1):null)}),K.prototype.crispPolyLine=function(r,i){for(let t=0;t<r.length;t=t+2){const e=r[t],s=r[t+1];e[1]===s[1]&&(e[1]=s[1]=Math.round(e[1])-i%2/2),e[2]===s[2]&&(e[2]=s[2]=Math.round(e[2])+i%2/2)}return r},D(q,"afterHideCrosshair",function(){this.crossLabel&&(this.crossLabel=this.crossLabel.hide())}),D(q,"afterDrawCrosshair",function(r){if(!this.crosshair||!this.crosshair.label||!this.crosshair.label.enabled||!this.cross||!c(this.min)||!c(this.max))return;let i=this.chart,t=this.logarithmic,e=this.crosshair.label,s=this.horiz,n=this.opposite,a=this.left,M=this.top,g=this.width,k=this.crossLabel,C,B,L,o=e.format,d="",N,V,R=this.options.tickPosition==="inside",H=this.crosshair.snap!==!1,v=0,P=r.e||this.cross&&this.cross.e,_=r.point,z=this.min,$=this.max;t&&(z=t.lin2log(z),$=t.lin2log($)),V=s?"center":n?this.labelAlign==="right"?"right":"left":this.labelAlign==="left"?"left":"center",k||(k=this.crossLabel=i.renderer.label("",0,void 0,e.shape||"callout").addClass("highcharts-crosshair-label highcharts-color-"+(_&&_.series?_.series.colorIndex:this.series[0]&&this.series[0].colorIndex)).attr({align:e.align||V,padding:m(e.padding,8),r:m(e.borderRadius,3),zIndex:2}).add(this.labelGroup),i.styledMode||k.attr({fill:e.backgroundColor||_&&_.series&&_.series.color||"#666666",stroke:e.borderColor||"","stroke-width":e.borderWidth||0}).css(I({color:"#ffffff",fontWeight:"normal",fontSize:"0.7em",textAlign:"center"},e.style||{}))),s?(C=H?(_.plotX||0)+a:P.chartX,B=M+(n?0:this.height)):(C=a+this.offset+(n?g:0),B=H?(_.plotY||0)+M:P.chartY),!o&&!e.formatter&&(this.dateTime&&(d="%b %d, %Y"),o="{value"+(d?":"+d:"")+"}");const j=H?this.isXAxis?_.x:_.y:this.toValue(s?P.chartX:P.chartY),et=_&&_.series?_.series.isPointInside(_):c(j)&&j>z&&j<$;let ot="";o?ot=S(o,{value:j},i):e.formatter&&c(j)&&(ot=e.formatter.call(this,j)),k.attr({text:ot,x:C,y:B,visibility:et?"inherit":"hidden"}),L=k.getBBox(),c(k.x)&&!s&&!n&&(C=k.x-L.width/2),c(k.y)&&(s?(R&&!n||!R&&n)&&(B=k.y-L.height):B=k.y-L.height/2),s?N={left:a-L.x,right:a+this.width-L.x}:N={left:this.labelAlign==="left"?a:0,right:this.labelAlign==="right"?a+this.width:i.chartWidth},k.translateX<N.left&&(v=N.left-k.translateX),k.translateX+L.width>=N.right&&(v=-(k.translateX+L.width-N.right)),k.attr({x:C+v,y:B,anchorX:s?C:this.opposite?0:i.chartWidth,anchorY:s?this.opposite?i.chartHeight:0:B+L.height/2})}),G.prototype.forceCropping=function(){const r=this.chart,i=this.options,t=i.dataGrouping;return this.allowDG!==!1&&t&&m(t.enabled,r.options.isStock)},D(Y,"update",function(r){const i=r.options;"scrollbar"in i&&this.navigator&&(T(!0,this.options.scrollbar,i.scrollbar),this.navigator.update({}),delete i.scrollbar)}),x}),ct(A,"masters/modules/stock.src.js",[A["Core/Globals.js"],A["Series/DataModifyComposition.js"],A["Stock/Navigator/Navigator.js"],A["Stock/RangeSelector/RangeSelector.js"],A["Stock/Scrollbar/Scrollbar.js"],A["Core/Axis/OrdinalAxis.js"],A["Series/OHLC/OHLCSeries.js"],A["Series/Flags/FlagsSeries.js"],A["Core/Chart/StockChart.js"]],function(q,Y,tt,it,Z,st,Q,G,K){const O=q;O.Navigator=tt,O.RangeSelector=it,O.Scrollbar=Z,O.StockChart=O.stockChart=K.stockChart,Y.compose(O.Series,O.Axis,O.Point),G.compose(O.Renderer),tt.compose(O.Axis,O.Chart,O.Series),Q.compose(O.Series),st.compose(O.Axis,O.Series,O.Chart),it.compose(O.Axis,O.Chart),Z.compose(O.Axis)}),ct(A,"masters/highstock.src.js",[A["masters/highcharts.src.js"]],function(q){return q.product="Highstock",q}),A["masters/highstock.src.js"]._modules=A,A["masters/highstock.src.js"]})})(ni);var Qs=ni.exports;const ri=Mi(Qs);function to(ut){return{all:ut=ut||new Map,on:function(lt,A){var ct=ut.get(lt);ct?ct.push(A):ut.set(lt,[A])},off:function(lt,A){var ct=ut.get(lt);ct&&(A?ct.splice(ct.indexOf(A)>>>0,1):ut.set(lt,[]))},emit:function(lt,A){var ct=ut.get(lt);ct&&ct.slice().map(function(q){q(A)}),(ct=ut.get("*"))&&ct.slice().map(function(q){q(lt,A)})}}}const qt=to();function Ut(ut){if(ut){var lt=new Date(ut);let A=lt.getFullYear(),ct=(lt.getMonth()+1).toString().padStart(2,"0"),q=lt.getDate().toString().padStart(2,"0"),Y=lt.getHours().toString().padStart(2,"0"),tt=lt.getMinutes().toString().padStart(2,"0"),it=lt.getSeconds().toString().padStart(2,"0");return A+"-"+ct+"-"+q+" "+Y+":"+tt+":"+it}else return"0000-00-00 00-00-00"}function Bt(ut){if(ut){var lt=new Date(ut);let A=lt.getFullYear(),ct=(lt.getMonth()+1).toString().padStart(2,"0"),q=lt.getDate().toString().padStart(2,"0"),Y=lt.getHours().toString().padStart(2,"0"),tt=lt.getMinutes().toString().padStart(2,"0");return lt.getSeconds().toString().padStart(2,"0"),A+"-"+ct+"-"+q+" "+Y+":"+tt}else return"0000-00-00 00-00"}const eo={style:{height:"100%"}},io=Mt("div",{id:"container",style:{"min-height":"500px"}},null,-1),so={style:{"text-align":"center","margin-top":"20px"}},oo=Mt("thead",null,[Mt("tr",null,[Mt("th",null,"编号"),Mt("th",null,"时间"),Mt("th",null,"备注")])],-1),no={__name:"highcharts-t",props:{dataList:{type:Array,default:()=>[]}},emits:["setTimeFun"],setup(ut,{emit:lt}){const A=ut,ct=Rt(),q=_t(!1),Y=Pt({tBottom:2,tTop:8}),tt=fe();Yt(()=>tt.state.plotLineList);const it=Pt({chartOptions:null,data:[]}),Z=()=>{it.chartOptions=new ri.stockChart("container",{chart:{zoomType:"x",events:{selection(O){console.log("框选",O),O.xAxis&&(qt.emit("onSelectionTime",O.xAxis),lt("setTimeFun",O.xAxis))}},panning:this,pinchType:"",panKey:"shift"},xAxis:{type:"datetime"},time:{useUTC:!1},boost:{useGPUTranslations:!0},tooltip:{formatter:function(){var O=Ut(this.points[0].x)+"<br/>";this.points.sort((S,w)=>w.y-S.y);for(let S in this.points)O+=`<br/><div style='color:${this.points[S].series.color}'>`+this.points[S].series.name+": "+this.points[S].y.toFixed(1)+"°C</div>";return O},shared:!1},yAxis:{opposite:!1,title:{},plotLines:[{color:"#FF1D00",dashStyle:"DashDot",value:Y.tTop,width:2,label:{text:`上限(${Y.tTop}°C`,align:"right"}},{color:"#FF1D00",dashStyle:"DashDot",value:Y.tBottom,width:2,label:{text:`下限(${Y.tBottom}°C`,align:"right"}}]},plotOptions:{series:{turboThreshold:0,marker:{enabled:!0,radius:3}}},legend:{enabled:!0},accessibility:{enabled:!1},rangeSelector:{buttons:[],selected:1,inputEnabled:!1},boost:{useGPUTranslations:!0,seriesThreshold:5},scrollbar:{enabled:!1},exporting:{enabled:!1},credits:{enabled:!1},series:it.data})};qt.on("onFormData",O=>{console.log("打印11111:",O)}),qt.on("onMessage",O=>{console.log("初值1111",O,A.dataList),Y.tTop=O.tTop!=""?O.tTop:null,Y.tBottom=O.tBottom!=""?O.tBottom:null,Q(),xe(()=>{Z()})});const st=_t([]),Q=()=>{st.value=[];for(const S of A.dataList)if(Y.tBottom==null&&Y.tTop!=null){const w=S.data.find(D=>Y.tTop<=D[1]);if(w!=null){var O={ids:w[4],times:Ut(w[0]),t:w[1]};st.value.push(O)}st.value.length!=0&&(q.value=!0)}else if(Y.tBottom!=null&&Y.tTop==null){const w=S.data.find(D=>Y.tBottom>=D[1]);if(w!=null){var O={ids:w[4],times:Ut(w[0]),t:w[1]};st.value.push(O)}st.value.length!=0&&(q.value=!0)}else if(Y.tBottom!=null&&Y.tTop!=null){const w=S.data.find(D=>Y.tBottom>=D[1]||Y.tTop<=D[1]);if(w!=null){var O={ids:w[4],times:Ut(w[0]),t:w[1]};st.value.push(O)}st.value.length!=0&&(q.value=!0)}else q.value=!1};Le(()=>{qt.off("onMessage")}),_t(null);const G=Yt(()=>A.dataList.length!=0?K():""),K=()=>{let O=A.dataList,S=[];for(const I of O)for(let p=0;p<I.data.length;p++)S.push(I.data[p][1]);if(S.length==0){ct.error("哎呀,没有可展示的数据哦");return}let w=S.reduce((I,p)=>I+p),D=Math.max(...S),b=Math.min(...S),f=(w/S.length).toFixed(1);return`最大值${D},最小值${b},平均值${f}`};return se(()=>tt.state.focuDatas,O=>{O!=null?it.chartOptions.zoomBool=!0:it.chartOptions.zoomBool=!1}),se(()=>A.dataList,O=>{console.log("123456",O),it.data=O,xe(()=>{console.log("89",it.chartOptions),Z()})},{deep:!0,immediate:!1}),Pt({xAxis:{type:"datetime"},time:{useUTC:!1},boost:{useGPUTranslations:!0},tooltip:{formatter:function(){var O=Ut(this.points[0].x)+"<br/>";for(let S in this.points)O+=`<br/><div style='color:${this.points[S].series.color}'>`+this.points[S].series.name+": "+this.points[S].y.toFixed(1)+"°C</div>";return O},shared:!1},yAxis:{opposite:!1,title:{},plotLines:[{color:"#FF1D00",dashStyle:"DashDot",value:Y.hTop,width:2,label:{text:`上限(${Y.hTop}Rh)`,align:"right"}},{color:"#FF1D00",dashStyle:"DashDot",value:Y.hBottom,width:2,label:{text:`下限(${Y.hBottom}Rh)`,align:"right"}}]},plotOptions:{series:{turboThreshold:0,marker:{enabled:!0,radius:3}}},legend:{enabled:!0},accessibility:{enabled:!1},rangeSelector:{buttons:[],selected:1,inputEnabled:!1},boost:{useGPUTranslations:!0,seriesThreshold:5},scrollbar:{enabled:!1},exporting:{enabled:!1},credits:{enabled:!1},chart:{zoomType:"x",panKey:"shift",events:{selection(O){O.xAxis&&(qt.emit("onSelectionTime",O.xAxis),lt("setTimeFun",O.xAxis))}}},series:[]}),(O,S)=>{const w=Ee,D=Me,b=Kt;return wt(),Et("div",eo,[Mt("input",{type:"text",onFocus:S[0]||(S[0]=(...f)=>O.focusFun&&O.focusFun(...f)),onBlur:S[1]||(S[1]=(...f)=>O.blurFun&&O.blurFun(...f))},null,32),io,Mt("div",so,Wt(G.value),1),dt(b,{show:q.value,"onUpdate:show":S[3]||(S[3]=f=>q.value=f)},{default:pt(()=>[dt(D,{style:{width:"600px"},title:"超标数据"},{"header-extra":pt(()=>[Mt("div",{style:{cursor:"pointer"},onClick:S[2]||(S[2]=f=>q.value=!1)},"关闭")]),default:pt(()=>[dt(w,{bordered:!1,"single-line":!1},{default:pt(()=>[oo,Mt("tbody",null,[(wt(!0),Et(jt,null,pe(st.value,(f,I)=>(wt(),Et("tr",{key:I},[Mt("td",null,Wt(f.ids),1),Mt("td",null,Wt(f.times),1),Mt("td",null,"当前温度:"+Wt(f.t),1)]))),128))])]),_:1})]),_:1})]),_:1},8,["show"])])}}},ro={style:{height:"100%"}},ao=Mt("div",{id:"container",style:{"min-height":"500px"}},null,-1),lo={style:{"text-align":"center","margin-top":"20px"}},co=Mt("thead",null,[Mt("tr",null,[Mt("th",null,"编号"),Mt("th",null,"时间"),Mt("th",null,"备注")])],-1),ho={__name:"highcharts-h",props:{dataList:{type:Array,default:()=>[]}},emits:["setTimeFun"],setup(ut,{emit:lt}){const A=ut,ct=Rt(),q=Pt({hBottom:null,hTop:null}),Y=fe();Yt(()=>Y.state.plotLineList);const tt=Pt({chartOptions:null,data:[]}),it=_t(!1),Z=()=>{tt.chartOptions=new ri.stockChart("container",{chart:{zoomType:"x",events:{selection(O){console.log("框选",O),O.xAxis&&(qt.emit("onSelectionTime",O.xAxis),lt("setTimeFun",O.xAxis))}},panning:this,pinchType:"",panKey:"shift"},xAxis:{type:"datetime"},time:{useUTC:!1},boost:{useGPUTranslations:!0},tooltip:{formatter:function(){var O=Ut(this.points[0].x)+"<br/>";for(let S in this.points)O+=`<br/><div style='color:${this.points[S].series.color}'>`+this.points[S].series.name+": "+this.points[S].y.toFixed(1)+"Rh</div>";return O},shared:!1},yAxis:{opposite:!1,title:{},plotLines:[{color:"#FF1D00",dashStyle:"DashDot",value:q.hTop,width:2,label:{text:`上限(${q.hTop}Rh`,align:"right"}},{color:"#FF1D00",dashStyle:"DashDot",value:q.hBottom,width:2,label:{text:`下限(${q.hBottom}Rh`,align:"right"}}]},plotOptions:{series:{turboThreshold:0,marker:{enabled:!0,radius:3}}},legend:{enabled:!0},accessibility:{enabled:!1},rangeSelector:{buttons:[],selected:1,inputEnabled:!1},boost:{useGPUTranslations:!0,seriesThreshold:5},scrollbar:{enabled:!1},exporting:{enabled:!1},credits:{enabled:!1},series:tt.data})};qt.on("onFormData",O=>{console.log("打印11111:",O)}),qt.on("onMessage",O=>{console.log("触发155"),q.hTop=O.hTop!=""?O.hTop:null,q.hBottom=O.hBottom!=""?O.hBottom:null,Q(),xe(()=>{Z()})});const st=_t([]),Q=()=>{st.value=[];for(const S of A.dataList)if(console.log("******",S),q.hBottom==null&&q.hTop!=null){const w=S.data.find(D=>q.hTop<=D[1]);if(w!=null){var O={ids:w[4],times:Ut(w[0]),t:w[1]};st.value.push(O)}console.log("设置了上限",st.value),st.value.length!=0&&(it.value=!0)}else if(q.hBottom!=null&&q.hTop==null){const w=S.data.find(D=>q.hBottom>=D[1]);if(w!=null){var O={ids:w[4],times:Ut(w[0]),t:w[1]};st.value.push(O)}st.value.length!=0&&(it.value=!0)}else if(q.hBottom!=null&&q.hTop!=null){const w=S.data.find(D=>q.hBottom>=D[1]||q.hTop<=D[1]);if(w!=null){var O={ids:w[4],times:Ut(w[0]),t:w[1]};st.value.push(O)}st.value.length!=0&&(it.value=!0),console.log("====",w)}else it.value=!1};Le(()=>{qt.off("onMessage")}),_t(null);const G=Yt(()=>A.dataList.length!=0?K():""),K=()=>{let O=A.dataList,S=[];for(const I of O)for(let p=0;p<I.data.length;p++)S.push(I.data[p][1]);if(S.length==0){ct.error("哎呀,没有可展示的数据哦");return}let w=S.reduce((I,p)=>I+p),D=Math.max(...S),b=Math.min(...S),f=(w/S.length).toFixed(1);return`最大值${D},最小值${b},平均值${f}`};return se(()=>Y.state.focuDatas,O=>{O!=null?tt.chartOptions.zoomBool=!0:tt.chartOptions.zoomBool=!1}),se(()=>A.dataList,O=>{tt.data=O,xe(()=>{Z()})},{deep:!0,immediate:!1}),Pt({xAxis:{type:"datetime"},time:{useUTC:!1},boost:{useGPUTranslations:!0},tooltip:{formatter:function(){var O=Ut(this.points[0].x)+"<br/>";this.points.sort((S,w)=>w.y-S.y);for(let S in this.points)O+=`<br/><div style='color:${this.points[S].series.color}'>`+this.points[S].series.name+": "+this.points[S].y.toFixed(1)+"Rh</div>";return O},shared:!1},yAxis:{opposite:!1,title:{},plotLines:[{color:"#FF1D00",dashStyle:"DashDot",value:q.hTop,width:2,label:{text:`上限(${q.hTop}Rh)`,align:"right"}},{color:"#FF1D00",dashStyle:"DashDot",value:q.hBottom,width:2,label:{text:`下限(${q.hBottom}Rh)`,align:"right"}}]},plotOptions:{series:{turboThreshold:0,marker:{enabled:!0,radius:3}}},legend:{enabled:!0},accessibility:{enabled:!1},rangeSelector:{buttons:[],selected:1,inputEnabled:!1},boost:{useGPUTranslations:!0,seriesThreshold:5},scrollbar:{enabled:!1},exporting:{enabled:!1},credits:{enabled:!1},chart:{zoomType:"x",panKey:"shift",events:{selection(O){O.xAxis&&(qt.emit("onSelectionTime",O.xAxis),lt("setTimeFun",O.xAxis))}}},series:[]}),(O,S)=>{const w=Ee,D=Me,b=Kt;return wt(),Et("div",ro,[Mt("input",{type:"text",onFocus:S[0]||(S[0]=(...f)=>O.focusFun&&O.focusFun(...f)),onBlur:S[1]||(S[1]=(...f)=>O.blurFun&&O.blurFun(...f))},null,32),ao,Mt("div",lo,Wt(G.value),1),dt(b,{show:it.value,"onUpdate:show":S[3]||(S[3]=f=>it.value=f)},{default:pt(()=>[dt(D,{style:{width:"600px"},title:"超标数据"},{"header-extra":pt(()=>[Mt("div",{style:{cursor:"pointer"},onClick:S[2]||(S[2]=f=>it.value=!1)},"关闭")]),default:pt(()=>[dt(w,{bordered:!1,"single-line":!1},{default:pt(()=>[co,Mt("tbody",null,[(wt(!0),Et(jt,null,pe(st.value,(f,I)=>(wt(),Et("tr",{key:I},[Mt("td",null,Wt(f.ids),1),Mt("td",null,Wt(f.times),1),Mt("td",null,"当前湿度:"+Wt(f.t),1)]))),128))])]),_:1})]),_:1})]),_:1},8,["show"])])}}},uo={style:{height:"350px","overflow-y":"auto"}},fo={style:{"margin-top":"20px"}},po={__name:"AddVue",props:{task:{required:!0,default:{}},classList:{required:!0,default:[]}},emits:["addFuns"],setup(ut,{emit:lt}){const A=ut,ct=_t("oasis"),q=Pt({cities:null,radioValue:null,chechboxVal:[]}),Y=Rt(),tt=b=>{ct.value=b},it=()=>{Di({page:1,page_z:999,T_task_id:A.task.T_task_id}).then(b=>{b.data.Code==200&&(q.chechboxVal=b.data.Data.List),console.log("111",b)})},Z=async()=>{if(!q.radioValue){Y.error("编号不能为空");return}const b=Ut(new Date),{data:f}=await He({T_task_id:A.task.T_task_id,T_sn:q.radioValue,T_id:q.cities,T_t:0,T_rh:0,T_time:b});f.Code==200&&(Y.success("添加成功"),Q.value=!1)},st=_t(!1),Q=_t(!1),G=()=>{console.log("1",q.cities),Q.value=!0,q.radioValue=null},K=Pt({T_sn:null,T_id:null,T_t:null,T_rh:null,T_time:null}),O=(b,f)=>{K.T_id=f.T_id,K.T_sn=f.T_sn},S=()=>{st.value=!0,q.cities=null,it(),Object.keys(K).forEach(b=>K[b]=null)},w=async()=>{const b=await D(K);if(console.log("999",K),b){Object.keys(K).forEach(I=>K[I]+="");const{data:f}=await He({T_task_id:A.task.T_task_id,...K});f.Code===200&&(st.value=!1,Y.success(f.Msg))}else{Y.error("所有选项都为必填哦");return}},D=b=>new Promise(f=>{const I=Object.keys(b).every(p=>b[p]!=null);f(I)});return(b,f)=>{const I=Nt,p=we,c=oe,y=ce,T=ge,m=Qt,h=Qe,x=Hi,l=Ce,u=Gi,r=ti,i=Kt;return wt(),Et(jt,null,[dt(I,{type:"primary",onClick:S},{default:pt(()=>[kt("添加数据")]),_:1}),dt(i,{show:St(st),"onUpdate:show":f[9]||(f[9]=t=>ye(st)?st.value=t:null),"show-icon":!1,preset:"dialog",title:"添加",style:{height:"550px"}},{default:pt(()=>[dt(r,{type:"line",animated:"","default-value":St(ct),"on-update:value":tt},{default:pt(()=>[dt(h,{name:"oasis",tab:"添加数据"},{default:pt(()=>[dt(m,{model:St(K),"label-width":"auto","show-require-mark":""},{default:pt(()=>[dt(c,{label:"测点",path:"T_id"},{default:pt(()=>[dt(p,{value:St(K).T_id,"onUpdate:value":[f[0]||(f[0]=t=>St(K).T_id=t),O],"label-field":"T_id","value-field":"T_id",options:ut.classList},null,8,["value","options"])]),_:1}),dt(c,{label:"温度",path:"T_t"},{default:pt(()=>[dt(y,{value:St(K).T_t,"onUpdate:value":f[1]||(f[1]=t=>St(K).T_t=t)},{suffix:pt(()=>[kt(" ℃ ")]),_:1},8,["value"])]),_:1}),dt(c,{label:"湿度",path:"T_rh"},{default:pt(()=>[dt(y,{value:St(K).T_rh,"onUpdate:value":f[2]||(f[2]=t=>St(K).T_rh=t)},{suffix:pt(()=>[kt(" % ")]),_:1},8,["value"])]),_:1}),dt(c,{label:"时间",path:"T_time"},{default:pt(()=>[dt(T,{"formatted-value":St(K).T_time,"onUpdate:formattedValue":f[3]||(f[3]=t=>St(K).T_time=t),"value-format":"yyyy-MM-dd HH:mm:ss",type:"datetime",clearable:"",class:"w-full"},null,8,["formatted-value"])]),_:1}),dt(c,null,{default:pt(()=>[dt(I,{type:"primary",style:{"margin-right":"20px"},onClick:w},{default:pt(()=>[kt(" 立即提交 ")]),_:1}),dt(I,{onClick:f[4]||(f[4]=t=>st.value=!1)},{default:pt(()=>[kt("取消")]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),dt(h,{name:"jaychou",tab:"添加终端"},{default:pt(()=>[Mt("div",uo,[dt(u,{value:St(q).cities,"onUpdate:value":f[5]||(f[5]=t=>St(q).cities=t),name:"radiogroup"},{default:pt(()=>[dt(l,{style:{display:"flex","flex-direction":"column"}},{default:pt(()=>[(wt(!0),Et(jt,null,pe(St(q).chechboxVal,t=>(wt(),Lt(x,{key:t.Id,value:t.T_layout_no,onChange:G},{default:pt(()=>[kt(Wt(t.T_layout_no),1)]),_:2},1032,["value"]))),128))]),_:1})]),_:1},8,["value"])])]),_:1})]),_:1},8,["default-value"]),dt(i,{show:St(Q),"onUpdate:show":f[8]||(f[8]=t=>ye(Q)?Q.value=t:null),"show-icon":!1,preset:"dialog",title:"",style:{height:"auto"}},{default:pt(()=>[dt(m,{"show-require-mark":""},{default:pt(()=>[dt(c,{label:"填写SN"},{default:pt(()=>[dt(y,{value:St(q).radioValue,"onUpdate:value":f[6]||(f[6]=t=>St(q).radioValue=t)},null,8,["value"])]),_:1})]),_:1}),Mt("div",fo,[dt(I,{type:"primary",style:{"margin-right":"20px"},onClick:Z},{default:pt(()=>[kt(" 立即提交 ")]),_:1}),dt(I,{onClick:f[7]||(f[7]=t=>Q.value=!1)},{default:pt(()=>[kt("取消")]),_:1})])]),_:1},8,["show"])]),_:1},8,["show"])],64)}}},go={style:{display:"flex","align-items":"center"}},mo={style:{"margin-left":"20px",color:"#2d8cf0"}},xo={style:{float:"right"}},yo={__name:"ImportVue",props:{task:{required:!0,default:{}}},emits:["importFiles"],setup(ut,{emit:lt}){const A=ut,ct=_t(!1),q=Rt(),Y=_t(0),tt=_t(!1),it=_t([]),Z=w=>new Promise(D=>{const b=new FileReader;b.readAsBinaryString(w),b.onload=f=>{D(f.target.result)}}),st=async({file:w})=>{const D=await Z(w.file),b=Ui(D,{type:"binary",cellDates:!0}),f=b.Sheets[b.SheetNames[0]];it.value=Vi.sheet_to_json(f),console.log("导入",it.value),it.value.forEach(I=>{I.记录时间=ei(I.记录时间,"YYYY-MM-DD HH:mm:ss").value})},Q=Pt({Time_start:null,Time_end:null,T_sn:"",T_id:"",page:1,page_z:9999}),G=()=>{Y.value=0,tt.value=!0,ct.value=!1};se(tt,w=>{w||(Y.value=0,it.value=[])});const K=async()=>{if(Y.value=0,it.value.length==0){q.error("没有可导入数据哦,检查文件是否为空数据");return}else{ct.value=!0;let w=100;for(let D=0;D<it.value.length;D+=w){let b=await O(it.value.slice(D,D+w));const f=await S(b);Y.value+=Number(f.data.Data),Y.value==it.value.length&&(q.success("数据导入完成"),lt("importFiles"))}}},O=w=>new Promise(D=>{const b=w.map(f=>f.SN+"|"+f.编号+"|"+f["温度℃"]+"|"+f["湿度%"]+"|"+f.记录时间);setTimeout(()=>{D(b.join("?"))},100)}),S=async w=>new Promise(D=>{setTimeout(()=>{const b=Ze({T_task_id:A.task.T_task_id,T_Data:w});D(b)},100)});return(w,D)=>{const b=Nt,f=ii,I=oe,p=Qt,c=Kt;return wt(),Et(jt,null,[dt(b,{type:"primary",onClick:G},{default:pt(()=>[kt("导入数据")]),_:1}),dt(c,{show:tt.value,"onUpdate:show":D[1]||(D[1]=y=>tt.value=y),"show-icon":!1,preset:"dialog",title:"导入","mask-closable":!1},{default:pt(()=>[dt(p,{model:St(Q),"label-width":"auto","show-require-mark":""},{default:pt(()=>[dt(I,{label:"数据"},{default:pt(()=>[dt(f,{"default-upload":!1,max:1,onChange:st},{default:pt(()=>[Mt("div",go,[dt(b,null,{default:pt(()=>[kt("上传文件")]),_:1}),Mt("div",mo,"进度:"+Wt(Y.value)+"/"+Wt(it.value.length),1)])]),_:1})]),_:1})]),_:1},8,["model"]),Mt("div",xo,[dt(b,{onClick:D[0]||(D[0]=y=>tt.value=!1)},{default:pt(()=>[kt(" 取消 ")]),_:1}),dt(b,{type:"primary",onClick:K,disabled:ct.value,style:{"margin-left":"20px"}},{default:pt(()=>[kt(" 确认 ")]),_:1},8,["disabled"])])]),_:1},8,["show"])],64)}}},vo={__name:"ExportPdf",props:{queryObj:{type:Object,default:()=>({})},pickleveTime:{type:Array,default:()=>[]},checkData:{type:Array,default:()=>[]}},setup(ut){const lt=ut,A=Rt(),ct=he(),q=Pt({T_task_id:"",T_snid:"",Time_start:null,Time_end:null}),Y=()=>{if(console.log("sds",lt.pickleveTime),lt.checkData==null||lt.checkData.length==0){A.error("请选择需要导出的设备");return}else q.T_task_id=lt.queryObj.T_task_id,q.T_snid=tt(lt.checkData),q.Time_start=lt.pickleveTime==null?"":Bt(lt.pickleveTime[0]),q.Time_end=lt.pickleveTime==null?"":Bt(lt.pickleveTime[1]),ct.success({title:"警告",content:"请选择你需要导出的内容【温度/湿度】",positiveText:"导出温度",negativeText:"导出湿度",style:{"line-height":"50px",display:"flex","flex-direction":"column","align-items":"center"},onPositiveClick:async()=>{const it=await $i(q);Ge(it,"温度")},onNegativeClick:async()=>{const it=await qi(q);Ge(it,"湿度")}})},tt=it=>(console.log("dataArr",it),it.map(st=>st.T_sn+","+st.T_id).join("|"));return(it,Z)=>{const st=Nt;return wt(),Lt(st,{type:"primary",onClick:Y},{default:pt(()=>[kt("导出PDF")]),_:1})}}},bo={class:"flex justify-end"},ko={class:"text-center font-bold"},To={class:"flex justify-end"},So={__name:"ImportPlatform",props:{task:{required:!0,default:{}}},setup(ut){const lt=ut,A=Rt();Ke();const ct=_t(!1),q=_t(!1),Y=_t(!1),tt=_t([]),it=_t(0),Z=Pt({Time_start:null,Time_end:null,T_sn:null,T_id:null,page:1,page_z:9999}),st=_t(0),Q=()=>{q.value=!0,Z.Time_start=null,Z.Time_end=null,Z.T_sn=null,Z.T_id=null,ct.value=!1,it.value=0,st.value=0};let G=_t(!1);const K=async()=>{if(G.value)return;if(G.value=!0,tt.value.length===0)return A.info("无数据");ct.value=!0;let b=tt.value,f=100;for(let I=0;I<b.length;I+=f){let p=await O(b.slice(I,I+f));const c=await S(p);st.value+=Number(c.data.Data),st.value==it.value&&(A.success("数据导入完成"),G.value=!1)}},O=b=>new Promise(f=>{const I=b.map(p=>p.T_sn+"-"+p.T_id+"|"+p.T_id+"|"+p.T_t+"|"+p.T_rh+"|"+p.T_time);f(I.join("?"))}),S=async b=>new Promise(f=>{setTimeout(()=>{const I=Ze({T_task_id:lt.task.T_task_id,T_Data:b});f(I)},100)}),w=async()=>{console.log("查询1",Z);const b=await D(Z);if(console.log("查询2",Z),b){const{data:f}=await Os({Time_start:Z.Time_start+"",Time_end:Z.Time_end+"",T_snid:`${Z.T_sn},${Z.T_id}|`,page:1,page_z:9999});tt.value=f.Data.Data||[],it.value=f.Data.Num||0}else A.error("搜索条件全部必填哦")},D=b=>new Promise(f=>{b.Time_start!=null&&b.Time_end!=null&&b.T_sn!=null&&b.T_id!=null?f(!0):f(!1)});return(b,f)=>{const I=Nt,p=ge,c=oe,y=ce,T=Qt,m=Me,h=ts,x=oi,l=Ki,u=Zi,r=Be,i=Ce,t=Kt;return wt(),Et(jt,null,[dt(I,{type:"primary",onClick:Q},{default:pt(()=>[kt("导入数据(冷链平台)")]),_:1}),dt(t,{style:{width:"30%"},show:St(q),"onUpdate:show":f[3]||(f[3]=e=>ye(q)?q.value=e:null),"show-icon":!1,preset:"dialog",title:"导入"},{default:pt(()=>[dt(i,{vertical:""},{default:pt(()=>[dt(m,null,{action:pt(()=>[Mt("div",bo,[dt(I,{type:"primary",onClick:w},{default:pt(()=>[kt("查询")]),_:1})])]),default:pt(()=>[dt(T,{model:St(Z),"label-placement":"left","label-width":"auto","show-require-mark":""},{default:pt(()=>[dt(c,{label:"起止时间"},{default:pt(()=>[dt(p,{"value-format":"yyyy.MM.dd HH:mm:ss",type:"datetimerange","onUpdate:formattedValue":f[0]||(f[0]=e=>{St(Z).Time_start=e[0],St(Z).Time_end=e[1]})})]),_:1}),dt(c,{label:"SN",path:"T_sn"},{default:pt(()=>[dt(y,{value:St(Z).T_sn,"onUpdate:value":f[1]||(f[1]=e=>St(Z).T_sn=e)},null,8,["value"])]),_:1}),dt(c,{label:"探头编号",path:"T_id"},{default:pt(()=>[dt(y,{value:St(Z).T_id,"onUpdate:value":f[2]||(f[2]=e=>St(Z).T_id=e)},null,8,["value"])]),_:1})]),_:1},8,["model"])]),_:1}),dt(m,{title:"数据总量"},{"header-extra":pt(()=>[dt(x,{show:St(Y)},{default:pt(()=>[dt(h,{type:"dashboard","gap-position":"bottom",percentage:100},{default:pt(()=>[Mt("span",ko,Wt(St(st))+"/"+Wt(St(it)),1)]),_:1})]),_:1},8,["show"])]),action:pt(()=>[Mt("div",To,[dt(r,{onPositiveClick:K},{trigger:pt(()=>[dt(I,{type:"primary",disabled:St(ct)},{default:pt(()=>[kt("导入")]),_:1},8,["disabled"])]),default:pt(()=>[kt(" 是否确认导入? ")]),_:1})])]),default:pt(()=>[dt(u,{bordered:"",class:"mt-auto"},{default:pt(()=>[dt(l,{label:"SN"},{default:pt(()=>[kt(Wt(St(Z).T_sn),1)]),_:1}),dt(l,{label:"探头编号"},{default:pt(()=>[kt(Wt(St(Z).T_id),1)]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,["show"])],64)}}},Mo={__name:"SetVue",emits:["submit"],setup(ut,{emit:lt}){const A=fe(),ct=()=>{qt.emit("onMessage",Y),A.commit("setplotData",Y)},q=_t(!1),Y=Pt({tTop:null,tBottom:null,hTop:null,hBottom:null}),tt=()=>{q.value=!0};return(it,Z)=>{const st=Nt,Q=ps,G=ce,K=oe,O=Qt,S=Kt;return wt(),Et(jt,null,[dt(st,{type:"primary",onClick:tt},{default:pt(()=>[kt("温湿度上下限设置")]),_:1}),dt(S,{show:St(q),"onUpdate:show":Z[4]||(Z[4]=w=>ye(q)?q.value=w:null),"show-icon":!1,preset:"dialog",title:"温湿度上下限设置","positive-text":"确认","negative-text":"取消",onPositiveClick:ct},{default:pt(()=>[dt(O,{model:St(Y),"label-width":"auto","show-require-mark":""},{default:pt(()=>[dt(Q,{"title-placement":"center"},{default:pt(()=>[kt(" 温度 ")]),_:1}),dt(K,{label:"上限",path:"value"},{default:pt(()=>[dt(G,{value:St(Y).tTop,"onUpdate:value":Z[0]||(Z[0]=w=>St(Y).tTop=w)},null,8,["value"])]),_:1}),dt(K,{label:"下限",path:"value"},{default:pt(()=>[dt(G,{value:St(Y).tBottom,"onUpdate:value":Z[1]||(Z[1]=w=>St(Y).tBottom=w)},null,8,["value"])]),_:1}),dt(Q,{"title-placement":"center"},{default:pt(()=>[kt(" 湿度 ")]),_:1}),dt(K,{label:"上限",path:"value"},{default:pt(()=>[dt(G,{value:St(Y).hTop,"onUpdate:value":Z[2]||(Z[2]=w=>St(Y).hTop=w)},null,8,["value"])]),_:1}),dt(K,{label:"下限",path:"value"},{default:pt(()=>[dt(G,{value:St(Y).hBottom,"onUpdate:value":Z[3]||(Z[3]=w=>St(Y).hBottom=w)},null,8,["value"])]),_:1})]),_:1},8,["model"])]),_:1},8,["show"])],64)}}},wo={__name:"ExportVue",props:{queryObj:{type:Object,default:()=>({})},pickleveTime:{type:Array,default:()=>[]},checkData:{type:Array,default:()=>[]}},setup(ut){const lt=ut,A=Rt();Yt(()=>lt.classList);const ct=Pt({T_task_id:"",T_sn_list:[],Time_start:null,Time_end:null}),q=async()=>{if(console.log("sds",lt.pickleveTime),lt.checkData==null||lt.checkData.length==0){A.error("请选择需要导出的设备");return}else ct.T_task_id=lt.queryObj.T_task_id,ct.Time_start=lt.pickleveTime==null?"":Bt(lt.pickleveTime[0]),ct.Time_end=lt.pickleveTime==null?"":Bt(lt.pickleveTime[1]),ct.T_sn_list=Y(lt.checkData),Li(ct).then(tt=>{console.log("请求完成",tt),tt.data.Code===200&&(location.href=tt.data.Data)})},Y=tt=>tt.map(Z=>Z.T_sn).join(",");return(tt,it)=>{const Z=Nt;return wt(),Lt(Z,{type:"primary",onClick:q},{default:pt(()=>[kt("导出数据")]),_:1})}}},Co={__name:"FormList",props:{task:{type:Object,default:()=>({})},classList:{type:Array,default:()=>[]},time:{type:String,default:null},temporalInterval:{type:Array,default:()=>[]}},setup(ut){const lt=ut,A=fe(),ct=Pt({fNum:null,obj:{}});se(()=>ct.fNum,K=>{console.log("开始存",K),A.commit("setfocuFun",K)},{deep:!0,immediate:!0}),wi(()=>{A.commit("setfocuFun",null)});const q=Pt({formList:[]});qt.emit("onFormData",ct);const Y=()=>{console.log("失去------------------------"),ct.fNum=null},tt=(K,O)=>{console.log("获得++++++++++++++++++++++++"),ct.fNum=O,ct.obj=K};se(()=>lt.time,K=>{console.log("单击",Bt(K),ct.fNum),ct.fNum!=null&&(console.log("继续单击",K,ct.fNum,ct.obj),ct.obj.T_label===7&&(q.formList[ct.fNum].T_value=Bt(K)),ct.obj.T_label===12&&(q.formList[ct.fNum].T_value[0]=Bt(K)),ct.fNum=null)}),qt.on("onSelectionTime",K=>{console.log("读取",K,parseInt(K[0].min),parseInt(K[0].max));let O=Bt(parseInt(K[0].min)),S=Bt(parseInt(K[0].max));ct.fNum!=null&&(ct.obj.T_label===9&&(q.formList[ct.fNum].T_value=[O,S]),ct.obj.T_label===13&&(q.formList[ct.fNum].T_value[0]=[O,S]))}),Le(()=>{qt.off("onSelectionTime")}),se(()=>q.formList,async(K,O)=>{if(console.log("最新",K,O),O.length!=0){const S=await it(),w=Ci();es({User_tokey:w,T_source:Z.T_source,T_task_id:Z.T_task_id,T_VerifyTemplate_id:Z.T_VerifyTemplate_id,VerifyTemplateMapData:S}),console.log("修改值",S)}},{deep:!0});const it=()=>{let K=[];return new Promise(O=>{q.formList.forEach(S=>{let w={...S};w.T_label==3||w.T_label==9?w.T_value!=null?w.T_value=w.T_value.join("|"):w.T_value=null:w.T_label==12?w.T_value=w.T_value.join("/"):w.T_label==13&&(w.T_value[0]!=null&&w.T_value[1]!=null?w.T_value=w.T_value[0].join("|")+"/"+w.T_value[1]:w.T_value[0]==null&&w.T_value[1]!=null?w.T_value="/"+w.T_value[1]:w.T_value[0]!=null&&w.T_value[1]==null?w.T_value=w.T_value[0].join("|")+"/":w.T_value=""),K.push(w)}),O(K)})},Z=Pt({T_source:3,T_task_id:lt.task.T_task_id,T_VerifyTemplate_id:lt.task.T_VerifyTemplate_id}),st=K=>{if(q.formList[K].T_value.length!==0)return q.formList[K].T_value=[];q.formList[K].T_value=lt.classList.map(O=>O.T_sn)},Q=K=>{const O=lt.classList.map(S=>S.T_sn);q.formList[K].T_value=O.filter(S=>!q.formList[K].T_value.includes(S))};return(async()=>{try{const{data:K}=await is(Z);q.formList=K.Data||[],q.formList.forEach(O=>{O.T_label===3?O.T_value==""||O.T_value==null?O.T_value=[]:O.T_value=O.T_value.split("|"):O.T_label==9?O.T_value==""||O.T_value==null?O.T_value=null:O.T_value=O.T_value.split("|"):O.T_label===12?O.T_value==""||O.T_value==null?O.T_value=[null,null]:O.T_value.split("/")[0]==""?O.T_value=[null,O.T_value.split("/")[1]]:O.T_value=[O.T_value.split("/")[0],O.T_value.split("/")[1]]:O.T_label===13?O.T_value==""||O.T_value==null||O.T_value=="null"?O.T_value=[null,null]:O.T_value.split("/")[0]==""?O.T_value=[null,O.T_value.split("/")[1]]:O.T_value=[O.T_value.split("/")[0].split("|"),O.T_value.split("/")[1]]:O.T_value=O.T_value?O.T_value:null})}catch(K){console.log(K)}})(),(K,O)=>{const S=Nt,w=Ce,D=we,b=ge,f=si,I=ii,p=ce,c=ss,y=os,T=Qt;return wt(),Lt(T,{"label-width":"auto"},{default:pt(()=>[dt(y,{cols:12,"x-gap":12},{default:pt(()=>[(wt(!0),Et(jt,null,pe(St(q).formList,(m,h)=>(wt(),Lt(c,{key:m.T_VerifyTemplateMap_id,span:12,label:m.T_name},{default:pt(()=>[m.T_label===3?(wt(),Lt(D,{key:0,value:m.T_value,"onUpdate:value":x=>m.T_value=x,multiple:"","label-field":"T_id","value-field":"T_sn","max-tag-count":"responsive",options:ut.classList},{action:pt(()=>[dt(w,null,{default:pt(()=>[dt(S,{class:"underline",text:"",onClick:x=>st(h)},{default:pt(()=>[kt("全选")]),_:2},1032,["onClick"]),dt(S,{class:"underline",text:"",onClick:x=>Q(h)},{default:pt(()=>[kt("反选")]),_:2},1032,["onClick"])]),_:2},1024)]),_:2},1032,["value","onUpdate:value","options"])):m.T_label===4?(wt(),Lt(D,{key:1,value:m.T_value,"onUpdate:value":x=>m.T_value=x,"label-field":"T_id","value-field":"T_sn",options:ut.classList},null,8,["value","onUpdate:value","options"])):m.T_label===7?(wt(),Lt(b,{key:2,onFocus:x=>tt(m,h),onBlur:Y,"formatted-value":m.T_value,"onUpdate:formattedValue":x=>m.T_value=x,"value-format":"yyyy-MM-dd HH:mm",type:"datetime",clearable:"",class:"w-full"},null,8,["onFocus","formatted-value","onUpdate:formattedValue"])):m.T_label===9?(wt(),Lt(b,{key:3,onFocus:x=>tt(m,h),onBlur:Y,"formatted-value":m.T_value,"onUpdate:formattedValue":x=>m.T_value=x,"value-format":"yyyy-MM-dd HH:mm",type:"datetimerange",clearable:"",class:"w-full"},null,8,["onFocus","formatted-value","onUpdate:formattedValue"])):m.T_label===10?(wt(),Et(jt,{key:4},[dt(f,{class:"mr-5",width:"100",src:m.T_value},null,8,["src"]),dt(I,{"list-type":"image-card",onChange:x=>K.handleChangeByIndex(x,h),"default-upload":!1,max:1},{default:pt(()=>[kt(" 点击上传 ")]),_:2},1032,["onChange"])],64)):m.T_label===11?(wt(),Et(jt,{key:5},[dt(f,{class:"mr-5",width:"100",src:m.T_value},null,8,["src"]),dt(w,null,{default:pt(()=>[dt(S,{onClick:()=>K.handleEdit(m)},{default:pt(()=>[kt("编辑")]),_:2},1032,["onClick"]),dt(S,{onClick:()=>K.handleRefresh(h)},{default:pt(()=>[kt("刷新")]),_:2},1032,["onClick"])]),_:2},1024)],64)):m.T_label===12?(wt(),Lt(w,{key:6,vertical:"",class:"w-full"},{default:pt(()=>[dt(b,{onFocus:x=>tt(m,h),onBlur:Y,"formatted-value":m.T_value[0],"onUpdate:formattedValue":x=>m.T_value[0]=x,format:"yyyy-MM-dd HH:mm","time-picker-props":{format:"HH:mm"},type:"datetime",clearable:""},null,8,["onFocus","formatted-value","onUpdate:formattedValue"]),dt(p,{value:m.T_value[1],"onUpdate:value":x=>m.T_value[1]=x,type:"text"},null,8,["value","onUpdate:value"])]),_:2},1024)):m.T_label===13?(wt(),Lt(w,{key:7,vertical:"",class:"w-full"},{default:pt(()=>[dt(b,{onFocus:x=>tt(m,h),onBlur:Y,"formatted-value":m.T_value[0],"onUpdate:formattedValue":x=>m.T_value[0]=x,format:"yyyy-MM-dd HH:mm","time-picker-props":{format:"HH:mm"},type:"datetimerange",clearable:""},null,8,["onFocus","formatted-value","onUpdate:formattedValue"]),dt(p,{value:m.T_value[1],"onUpdate:value":x=>m.T_value[1]=x,type:"text"},null,8,["value","onUpdate:value"])]),_:2},1024)):(wt(),Lt(p,{key:8,value:m.T_value,"onUpdate:value":x=>m.T_value=x},null,8,["value","onUpdate:value"]))]),_:2},1032,["label"]))),128))]),_:1})]),_:1})}}},_o={__name:"ratioZoom",props:{queryObj:{type:Object,default:()=>({})},pickleveTime:{type:Array,default:()=>[]},checkData:{type:Array,default:()=>[]}},emits:["ratioZoomFun"],setup(ut,{emit:lt}){const A=ut,ct=Rt();fe();const q=async()=>{var Q=/^([1-9]\d*(\.\d*[1-9][0-9])?)|(0\.\d*[1-9][0-9])|(0\.\d*[1-9])$/;if(!Q.test(Z.Temperature)){ct.error("温度比列格式为大于0【必填】");return}if(!Q.test(Z.Humidity)){ct.error("湿度比列格式为大于0【必填】");return}await tt(),Y(),console.log("sss",Z)},Y=async()=>{js(Z).then(Q=>{Q.data.Code==200&&(ct.success(Q.data.Msg),it.value=!1,lt("ratioZoomFun"))})},tt=()=>new Promise(Q=>{Z.StartTime=Ut(Z.StartTime),Z.EndTime=Ut(Z.EndTime);const K=[...A.checkData].map(O=>O.T_sn+","+O.T_id);Z.SN_List=K.join("|")+"|",Q()}),it=_t(!1),Z=Pt({Temperature:1,Humidity:1,T_task_id:"",SN_List:"",StartTime:null,EndTime:null}),st=()=>{if(A.checkData==null||A.checkData.length==0){ct.error("请选择需要设置等比缩放的设备");return}else if(A.pickleveTime==null){ct.error("请选择等比缩放时间");return}else Z.T_task_id=A.queryObj.T_task_id,Z.StartTime=new Date(A.pickleveTime[0]).getTime(),Z.EndTime=new Date(A.pickleveTime[1]).getTime(),it.value=!0};return(Q,G)=>{const K=Nt,O=ce,S=oe,w=Qt,D=Kt;return wt(),Et(jt,null,[dt(K,{onClick:st},{default:pt(()=>[kt("等比缩放")]),_:1}),dt(D,{show:St(it),"onUpdate:show":G[3]||(G[3]=b=>ye(it)?it.value=b:null),style:{width:"400px"},"show-icon":!1,preset:"card",title:"等比缩放"},{footer:pt(()=>[dt(K,{type:"primary",onClick:q},{default:pt(()=>[kt(" 立即提交 ")]),_:1}),dt(K,{onClick:G[2]||(G[2]=b=>it.value=!1),style:{"margin-left":"10px"}},{default:pt(()=>[kt("取消")]),_:1})]),default:pt(()=>[dt(w,{model:St(Z),"label-width":"auto","show-require-mark":""},{default:pt(()=>[dt(S,{label:"温度比列",path:"value"},{default:pt(()=>[dt(O,{value:St(Z).Temperature,"onUpdate:value":G[0]||(G[0]=b=>St(Z).Temperature=b)},null,8,["value"])]),_:1}),dt(S,{label:"湿度比列",path:"value"},{default:pt(()=>[dt(O,{value:St(Z).Humidity,"onUpdate:value":G[1]||(G[1]=b=>St(Z).Humidity=b)},null,8,["value"])]),_:1})]),_:1},8,["model"])]),_:1},8,["show"])],64)}}},Ao={style:{overflow:"hidden",display:"flex","flex-direction":"column"}},Po={style:{flex:"1","overflow-y":"auto"}},Do=Mt("thead",null,[Mt("tr",null,[Mt("th",null,"时间"),Mt("th",null,"操作")])],-1),Oo={style:{display:"flex","align-items":"center"}},Lo={__name:"OnFile",props:{task:{type:Object,default:()=>({})}},setup(ut){const lt=ut,A=Rt(),ct=he(),q=Pt({list:[]}),Y=async st=>{const{data:Q}=await Ls({T_task_id:lt.task.T_task_id,T_copy_id:st.T_copy_id});console.log("存档返回",Q),Q.Code==200&&Q.Msg=="ok!"&&(A.success("恢复成功"),Z())},tt=st=>{ct.warning({title:"提示",content:"删除存档,是否继续?",positiveText:"删除",negativeText:"取消",onPositiveClick:async()=>{const{data:Q}=await Es({T_copy_id:st.T_copy_id});console.log("存档返回",Q),Q.Code==200&&(A.success("删除存档成功"),Z())},onNegativeClick:()=>{A.warning("已取消删除存档")}})},it=async()=>{const{data:st}=await Bs({T_task_id:lt.task.T_task_id});console.log("存档返回",st),st.Code==200&&st.Msg=="ok!"&&(A.success("存档成功"),Z())},Z=async()=>{const{data:st}=await Is({T_task_id:lt.task.T_task_id,page:1,page_z:9999});st.Code==200&&(q.list=st.Data.List),console.log("返回",st)};return se(()=>lt.task,st=>{Z()},{deep:!0,immediate:!0}),(st,Q)=>{const G=Nt,K=Ee;return wt(),Et("div",Ao,[dt(G,{type:"primary",style:{"margin-bottom":"10px",width:"120px"},onClick:it},{default:pt(()=>[kt("备份存档")]),_:1}),Mt("div",Po,[dt(K,{bordered:!1,"single-line":!1,"max-height":250},{default:pt(()=>[Do,Mt("tbody",null,[(wt(!0),Et(jt,null,pe(St(q).list,(O,S)=>(wt(),Et("tr",{key:S},[Mt("td",null,Wt(O.T_time),1),Mt("td",Oo,[dt(G,{style:{"margin-right":"10px"},onClick:w=>Y(O)},{default:pt(()=>[kt("恢复")]),_:2},1032,["onClick"]),dt(G,{type:"error",onClick:w=>tt(O)},{default:pt(()=>[kt("删除")]),_:2},1032,["onClick"])])]))),128))])]),_:1})])])}}},Eo={style:{display:"flex","justify-content":"flex-end"}},Bo={__name:"editCopy",props:{queryObj:{type:Object,default:()=>({})},pickleveTime:{type:Array,default:()=>[]},checkData:{type:Array,default:()=>[]},classList:{type:Array,default:()=>[]}},setup(ut){const lt=ut,A=Rt(),ct=Yt(()=>{let S=[...lt.classList];return S.forEach(w=>{w.T_snid=w.T_sn+","+w.T_id}),S}),q=Pt({CopySN:"",CopyID:"",T_saveT:60,T_task_id:"",SN_List:""}),Y=_t(null),tt=Pt({StartTime:null,EndTime:null,CopyTime:null});se(()=>Y.value,S=>{S!=null?it.selectSn.required=!1:it.selectSn.required=!0});const it=Pt({CopyTime:{type:"number",required:!0,trigger:["blur","change"],message:"请选择结束时间"},selectSn:{required:!0,trigger:"blur",message:"请选择复制设备"}}),Z=_t(!1),st=()=>{if(console.log("sdsd",lt.pickleveTime,lt.queryObj),Object.keys(tt).forEach(S=>{tt[S]=null}),lt.checkData==null||lt.checkData.length==0){A.error("请选择需要复制的设备");return}else if(lt.checkData.length!=1){A.error("复制只能选择一项哦");return}else if(lt.pickleveTime==null){A.error("请选择复制时间");return}else q.T_task_id=lt.queryObj.T_task_id,tt.StartTime=new Date(lt.pickleveTime[0]).getTime(),tt.EndTime=new Date(lt.pickleveTime[1]).getTime(),it.selectSn.required=!0,Y.value=null,Z.value=!0},Q=_t(null),G=()=>{var S;(S=Q.value)==null||S.validate(w=>{w||K()})},K=async()=>{let S=await O();Rs(S).then(w=>{w.data.Code==200&&(A.success(w.data.Msg),Z.value=!1)})},O=()=>new Promise(S=>{q.CopySN=Y.value.split(",")[0],q.CopyID=Y.value.split(",")[1];let w={...tt},D=[...lt.checkData];Object.keys(w).forEach(f=>{w[f]=Bt(w[f])+":00"});const b=D.map(f=>f.T_sn+","+f.T_id);q.SN_List=b.join("|")+"|",console.log(q,w),S({...q,...w})});return(S,w)=>{const D=Nt,b=ge,f=oe,I=we,p=Qt,c=Kt;return wt(),Et(jt,null,[dt(D,{onClick:st},{default:pt(()=>[kt("复制到")]),_:1}),dt(c,{style:{width:"40%"},show:Z.value,"onUpdate:show":w[5]||(w[5]=y=>Z.value=y),title:"复制到:","mask-closable":!1,"show-icon":!1,preset:"dialog"},{default:pt(()=>[dt(p,{ref_key:"formRef",ref:Q,model:tt,rules:it,"label-placement":"left","require-mark-placement":"left","label-width":"100"},{default:pt(()=>[dt(f,{label:"开始时间"},{default:pt(()=>[dt(b,{value:tt.StartTime,"onUpdate:value":w[0]||(w[0]=y=>tt.StartTime=y),format:"yyyy-MM-dd HH:mm",disabled:"",type:"datetime",style:{width:"100%"}},null,8,["value"])]),_:1}),dt(f,{label:"结束时间"},{default:pt(()=>[dt(b,{value:tt.EndTime,"onUpdate:value":w[1]||(w[1]=y=>tt.EndTime=y),format:"yyyy-MM-dd HH:mm",disabled:"",type:"datetime",style:{width:"100%"}},null,8,["value"])]),_:1}),dt(f,{label:"复制到时间",path:"CopyTime"},{default:pt(()=>[dt(b,{value:tt.CopyTime,"onUpdate:value":w[2]||(w[2]=y=>tt.CopyTime=y),format:"yyyy-MM-dd HH:mm",type:"datetime",style:{width:"100%"}},null,8,["value"])]),_:1}),dt(f,{label:"复制到设备",path:"selectSn"},{default:pt(()=>[dt(I,{value:Y.value,"onUpdate:value":w[3]||(w[3]=y=>Y.value=y),"label-field":"T_id","value-field":"T_snid",options:St(ct)},null,8,["value","options"])]),_:1}),Mt("div",Eo,[dt(D,{onClick:w[4]||(w[4]=y=>Z.value=!1),style:{"margin-right":"10px"}},{default:pt(()=>[kt("取消")]),_:1}),dt(D,{type:"primary",onClick:G},{default:pt(()=>[kt("立即提交")]),_:1})])]),_:1},8,["model","rules"])]),_:1},8,["show"])],64)}}},Io={style:{display:"flex","justify-content":"flex-end"}},jo={__name:"AverageCopy",props:{queryObj:{type:Object,default:()=>({})},pickleveTime:{type:Array,default:()=>[]},checkData:{type:Array,default:()=>[]},classList:{type:Array,default:()=>[]}},setup(ut){const lt=ut,A=Rt(),ct=Yt(()=>{let S=[...lt.classList];return S.forEach(w=>{w.T_snid=w.T_sn+","+w.T_id}),S}),q=Pt({CopySN:"",CopyID:"",T_saveT:60,T_task_id:"",SN_List:""}),Y=_t(null),tt=Pt({StartTime:null,EndTime:null,CopyTime:null});se(()=>Y.value,S=>{S!=null?it.selectSn.required=!1:it.selectSn.required=!0});const it=Pt({CopyTime:{type:"number",required:!0,trigger:["blur","change"],message:"请选择结束时间"},selectSn:{required:!0,trigger:"blur",message:"请选择复制设备"}}),Z=_t(!1),st=()=>{if(Object.keys(tt).forEach(S=>{console.log(S),tt[S]=null}),lt.checkData==null||lt.checkData.length==0){A.error("请选择需要复制的设备");return}else if(lt.checkData.length!=2){A.error("平均复制到需要选择2项哦");return}else if(lt.pickleveTime==null){A.error("请选择复制时间");return}else q.T_task_id=lt.queryObj.T_task_id,tt.StartTime=new Date(lt.pickleveTime[0]).getTime(),tt.EndTime=new Date(lt.pickleveTime[1]).getTime(),console.log(tt,lt.queryObj,lt.checkData),it.selectSn.required=!0,Y.value=null,Z.value=!0},Q=_t(null),G=()=>{var S;(S=Q.value)==null||S.validate(w=>{w||K()})},K=async()=>{let S=await O();zs(S).then(w=>{w.data.Code==200&&(A.success(w.data.Msg),Z.value=!1)})},O=()=>new Promise(S=>{q.CopySN=Y.value.split(",")[0],q.CopyID=Y.value.split(",")[1];let w={...tt},D=[...lt.checkData];Object.keys(w).forEach(f=>{w[f]=Bt(w[f])+":00"});const b=D.map(f=>f.T_sn+","+f.T_id);q.SN_List=b.join("|")+"|",console.log(q,w),S({...q,...w})});return(S,w)=>{const D=Nt,b=ge,f=oe,I=we,p=Qt,c=Kt;return wt(),Et(jt,null,[dt(D,{onClick:st},{default:pt(()=>[kt("平均复制到")]),_:1}),dt(c,{style:{width:"40%"},show:Z.value,"onUpdate:show":w[5]||(w[5]=y=>Z.value=y),title:"平均复制到:","mask-closable":!1,"show-icon":!1,preset:"dialog"},{default:pt(()=>[dt(p,{ref_key:"formRef",ref:Q,model:tt,rules:it,"label-placement":"left","require-mark-placement":"left","label-width":"100"},{default:pt(()=>[dt(f,{label:"开始时间"},{default:pt(()=>[dt(b,{value:tt.StartTime,"onUpdate:value":w[0]||(w[0]=y=>tt.StartTime=y),format:"yyyy-MM-dd HH:mm",disabled:"",type:"datetime",style:{width:"100%"}},null,8,["value"])]),_:1}),dt(f,{label:"结束时间"},{default:pt(()=>[dt(b,{value:tt.EndTime,"onUpdate:value":w[1]||(w[1]=y=>tt.EndTime=y),format:"yyyy-MM-dd HH:mm",disabled:"",type:"datetime",style:{width:"100%"}},null,8,["value"])]),_:1}),dt(f,{label:"复制到时间",path:"CopyTime"},{default:pt(()=>[dt(b,{value:tt.CopyTime,"onUpdate:value":w[2]||(w[2]=y=>tt.CopyTime=y),format:"yyyy-MM-dd HH:mm",type:"datetime",style:{width:"100%"}},null,8,["value"])]),_:1}),dt(f,{label:"复制到设备",path:"selectSn"},{default:pt(()=>[dt(I,{value:Y.value,"onUpdate:value":w[3]||(w[3]=y=>Y.value=y),"label-field":"T_id","value-field":"T_snid",options:St(ct)},null,8,["value","options"])]),_:1}),Mt("div",Io,[dt(D,{onClick:w[4]||(w[4]=y=>Z.value=!1),style:{"margin-right":"10px"}},{default:pt(()=>[kt("取消")]),_:1}),dt(D,{type:"primary",onClick:G},{default:pt(()=>[kt("立即提交")]),_:1})])]),_:1},8,["model","rules"])]),_:1},8,["show"])],64)}}},Ro={__name:"editLeak",props:{queryObj:{type:Object,default:()=>({})},pickleveTime:{type:Array,default:()=>[]},checkData:{type:Array,default:()=>[]}},setup(ut){const lt=ut,A=Rt(),ct=Pt({T_saveT:60,T_task_id:"",SN_List:""}),q=Pt({StartTime:null,EndTime:null}),Y=he(),tt=()=>{if(lt.checkData==null||lt.checkData.length==0){A.error("请选择需要补漏的设备");return}else if(lt.pickleveTime==null){A.error("请选择补漏的时间");return}else ct.T_task_id=lt.queryObj.T_task_id,q.StartTime=new Date(lt.pickleveTime[0]).getTime(),q.EndTime=new Date(lt.pickleveTime[1]).getTime(),Y.warning({title:"提示",content:`确定对${Bt(q.StartTime)}至${Bt(q.EndTime)}进行数据补漏吗?`,positiveText:"立即补漏",negativeText:"取消",onPositiveClick:()=>{it()},onNegativeClick:()=>{A.error("已取消补漏")}})},it=async()=>{let st=await Z();Fs(st).then(Q=>{Q.data.Code==200&&A.success(Q.data.Msg)})},Z=()=>new Promise(st=>{let Q={...q},G=[...lt.checkData];Object.keys(Q).forEach(O=>{Q[O]=Bt(Q[O])+":00"});const K=G.map(O=>O.T_sn+","+O.T_id);ct.SN_List=K.join("|")+"|",console.log(ct,Q),st({...ct,...Q})});return(st,Q)=>{const G=Nt;return wt(),Lt(G,{onClick:tt},{default:pt(()=>[kt("补漏")]),_:1})}}},zo={__name:"editTendency",props:{queryObj:{type:Object,default:()=>({})},pickleveTime:{type:Array,default:()=>[]},checkData:{type:Array,default:()=>[]}},setup(ut){const lt=ut,A=Rt(),ct=Pt({T_saveT:60,T_task_id:"",SN_List:""}),q=Pt({StartTime:null,EndTime:null}),Y=he(),tt=()=>{if(lt.checkData==null||lt.checkData.length==0){A.error("请选择需要趋势的设备");return}else if(lt.pickleveTime==null){A.error("请选择趋势的时间");return}else ct.T_task_id=lt.queryObj.T_task_id,q.StartTime=new Date(lt.pickleveTime[0]).getTime(),q.EndTime=new Date(lt.pickleveTime[1]).getTime(),Y.warning({title:"提示",content:`确定对${lt.queryObj.Time_start}至${lt.queryObj.Time_end}进行趋势吗?`,positiveText:"立即提交",negativeText:"取消",onPositiveClick:()=>{it()},onNegativeClick:()=>{A.error("已取消趋势")}})},it=async()=>{let st=await Z();Hs(st).then(Q=>{Q.data.Code==200&&A.success(Q.data.Msg)})},Z=()=>new Promise(st=>{let Q={...q},G=[...lt.checkData];Object.keys(Q).forEach(O=>{Q[O]=Bt(Q[O])+":00"});const K=G.map(O=>O.T_sn+","+O.T_id);ct.SN_List=K.join("|")+"|",console.log(ct,Q),st({...ct,...Q})});return(st,Q)=>{const G=Nt;return wt(),Lt(G,{onClick:tt},{default:pt(()=>[kt("趋势")]),_:1})}}},No={style:{display:"flex","justify-content":"flex-end"}},Wo={__name:"editMath",props:{queryObj:{type:Object,default:()=>({})},pickleveTime:{type:Array,default:()=>[]},checkData:{type:Array,default:()=>[]}},setup(ut){const lt=ut,A=Rt();_t(0);const ct=Pt({TemperatureMin:0,TemperatureMax:0,HumidityMin:0,HumidityMax:0,T_task_id:"",SN_List:""}),q=Pt({StartTime:null,EndTime:null}),Y=_t(!1),tt=()=>{if(Object.keys(q).forEach(Q=>{console.log(Q),q[Q]=null}),lt.checkData==null||lt.checkData.length==0){A.error("请选择需要设置随机偏移的设备");return}else if(lt.pickleveTime==null){A.error("请选择随机偏移时间");return}else ct.T_task_id=lt.queryObj.T_task_id,q.StartTime=new Date(lt.pickleveTime[0]).getTime(),q.EndTime=new Date(lt.pickleveTime[1]).getTime(),Y.value=!0},it=()=>{Z()},Z=async()=>{let Q=await st();Gs(Q).then(G=>{G.data.Code==200&&(A.success(G.data.Msg),Y.value=!1)})},st=()=>new Promise(Q=>{let G={...q},K=[...lt.checkData],O={...ct};Object.keys(G).forEach(w=>{G[w]=Bt(G[w])+":00"});const S=K.map(w=>w.T_sn+","+w.T_id);ct.SN_List=S.join("|")+"|",O.TemperatureMin=O.TemperatureMin*100,O.TemperatureMax=O.TemperatureMax*100,O.HumidityMin=O.HumidityMin*100,O.HumidityMax=O.HumidityMax*100,Q({...O,...G})});return(Q,G)=>{const K=Nt,O=_e,S=oe,w=Qt,D=Kt;return wt(),Et(jt,null,[dt(K,{onClick:tt},{default:pt(()=>[kt("偏移(随机)")]),_:1}),dt(D,{show:Y.value,"onUpdate:show":G[5]||(G[5]=b=>Y.value=b),title:"偏移(随机)","mask-closable":!1,"show-icon":!1,preset:"dialog"},{default:pt(()=>[dt(w,{"label-placement":"left","label-width":"auto",style:{"margin-top":"20px"}},{default:pt(()=>[dt(S,{label:"最大温度"},{default:pt(()=>[dt(O,{value:ct.TemperatureMax,"onUpdate:value":G[0]||(G[0]=b=>ct.TemperatureMax=b),style:{width:"100%"}},{suffix:pt(()=>[kt(" °C ")]),_:1},8,["value"])]),_:1}),dt(S,{label:"最小温度"},{default:pt(()=>[dt(O,{value:ct.TemperatureMin,"onUpdate:value":G[1]||(G[1]=b=>ct.TemperatureMin=b),style:{width:"100%"}},{suffix:pt(()=>[kt(" °C ")]),_:1},8,["value"])]),_:1}),dt(S,{label:"最大湿度"},{default:pt(()=>[dt(O,{value:ct.HumidityMax,"onUpdate:value":G[2]||(G[2]=b=>ct.HumidityMax=b),style:{width:"100%"}},{suffix:pt(()=>[kt(" % ")]),_:1},8,["value"])]),_:1}),dt(S,{label:"最小湿度"},{default:pt(()=>[dt(O,{value:ct.HumidityMin,"onUpdate:value":G[3]||(G[3]=b=>ct.HumidityMin=b),style:{width:"100%"}},{suffix:pt(()=>[kt(" % ")]),_:1},8,["value"])]),_:1}),Mt("div",No,[dt(K,{onClick:G[4]||(G[4]=b=>Y.value=!1),style:{"margin-right":"10px"}},{default:pt(()=>[kt("取消")]),_:1}),dt(K,{type:"primary",onClick:it},{default:pt(()=>[kt("立即提交")]),_:1})])]),_:1})]),_:1},8,["show"])],64)}}},Fo={style:{display:"flex","justify-content":"flex-end"}},Ho={__name:"editFixation",props:{queryObj:{type:Object,default:()=>({})},pickleveTime:{type:Array,default:()=>[]},checkData:{type:Array,default:()=>[]}},setup(ut){const lt=ut,A=Rt();_t(0);const ct=Pt({FixTemperature:0,FixHumidity:0,T_task_id:"",SN_List:""}),q=Pt({StartTime:null,EndTime:null}),Y=_t(!1),tt=()=>{if(Object.keys(q).forEach(Q=>{console.log(Q),q[Q]=null}),lt.checkData==null||lt.checkData.length==0){A.error("请选择需要设置固定偏移的设备");return}else if(lt.pickleveTime==null){A.error("请选择固定偏移时间");return}else ct.T_task_id=lt.queryObj.T_task_id,q.StartTime=new Date(lt.pickleveTime[0]).getTime(),q.EndTime=new Date(lt.pickleveTime[1]).getTime(),Y.value=!0},it=()=>{Z()},Z=async()=>{let Q=await st();Ys(Q).then(G=>{G.data.Code==200&&(A.success(G.data.Msg),Y.value=!1)})},st=()=>new Promise(Q=>{let G={...q},K=[...lt.checkData];Object.keys(G).forEach(S=>{G[S]=Bt(G[S])+":00"});const O=K.map(S=>S.T_sn+","+S.T_id);ct.SN_List=O.join("|")+"|",Q({...ct,...G})});return(Q,G)=>{const K=Nt,O=_e,S=oe,w=Qt,D=Kt;return wt(),Et(jt,null,[dt(K,{onClick:tt},{default:pt(()=>[kt("偏移(固定)")]),_:1}),dt(D,{show:Y.value,"onUpdate:show":G[3]||(G[3]=b=>Y.value=b),title:"偏移(固定)","mask-closable":!1,"show-icon":!1,preset:"dialog"},{default:pt(()=>[dt(w,{"label-placement":"left","label-width":"auto",style:{"margin-top":"20px"}},{default:pt(()=>[dt(S,{label:"温度"},{default:pt(()=>[dt(O,{value:ct.FixTemperature,"onUpdate:value":G[0]||(G[0]=b=>ct.FixTemperature=b),style:{width:"100%"}},{suffix:pt(()=>[kt(" °C ")]),_:1},8,["value"])]),_:1}),dt(S,{label:"湿度"},{default:pt(()=>[dt(O,{value:ct.FixHumidity,"onUpdate:value":G[1]||(G[1]=b=>ct.FixHumidity=b),style:{width:"100%"}},{suffix:pt(()=>[kt(" % ")]),_:1},8,["value"])]),_:1}),Mt("div",Fo,[dt(K,{onClick:G[2]||(G[2]=b=>Y.value=!1),style:{"margin-right":"10px"}},{default:pt(()=>[kt("取消")]),_:1}),dt(K,{type:"primary",onClick:it},{default:pt(()=>[kt("立即提交")]),_:1})])]),_:1})]),_:1},8,["show"])],64)}}},Go={style:{display:"flex","justify-content":"flex-end"}},Xo={__name:"skewSection",props:{queryObj:{type:Object,default:()=>({})},pickleveTime:{type:Array,default:()=>[]},checkData:{type:Array,default:()=>[]}},setup(ut){const lt=ut,A=Rt();_t(0);const ct=Pt({TemperatureMin:0,TemperatureMax:0,T_task_id:"",SN_List:""}),q=Pt({StartTime:null,EndTime:null}),Y=_t(!1),tt=()=>{if(Object.keys(q).forEach(Q=>{console.log(Q),q[Q]=null}),lt.checkData==null||lt.checkData.length==0){A.error("请选择需要设置区间偏移的设备");return}else if(lt.pickleveTime==null){A.error("请选择区间偏移时间");return}else ct.T_task_id=lt.queryObj.T_task_id,q.StartTime=new Date(lt.pickleveTime[0]).getTime(),q.EndTime=new Date(lt.pickleveTime[1]).getTime(),Y.value=!0},it=()=>{Z()},Z=async()=>{let Q=await st();Xs(Q).then(G=>{G.data.Code==200&&(A.success(G.data.Msg),Y.value=!1)})},st=()=>new Promise(Q=>{let G={...q},K=[...lt.checkData];Object.keys(G).forEach(S=>{G[S]=Bt(G[S])+":00"});const O=K.map(S=>S.T_sn+","+S.T_id);ct.SN_List=O.join("|")+"|",Q({...ct,...G})});return(Q,G)=>{const K=Nt,O=_e,S=oe,w=Qt,D=Kt;return wt(),Et(jt,null,[dt(K,{onClick:tt},{default:pt(()=>[kt("偏移(区间)")]),_:1}),dt(D,{show:Y.value,"onUpdate:show":G[3]||(G[3]=b=>Y.value=b),title:"偏移(区间)","mask-closable":!1,"show-icon":!1,preset:"dialog"},{default:pt(()=>[dt(w,{"label-placement":"left","label-width":"auto",style:{"margin-top":"20px"}},{default:pt(()=>[dt(S,{label:"最小温度"},{default:pt(()=>[dt(O,{value:ct.TemperatureMin,"onUpdate:value":G[0]||(G[0]=b=>ct.TemperatureMin=b),style:{width:"100%"}},{suffix:pt(()=>[kt(" °C ")]),_:1},8,["value"])]),_:1}),dt(S,{label:"最大温度"},{default:pt(()=>[dt(O,{value:ct.TemperatureMax,"onUpdate:value":G[1]||(G[1]=b=>ct.TemperatureMax=b),style:{width:"100%"}},{suffix:pt(()=>[kt(" °C ")]),_:1},8,["value"])]),_:1}),Mt("div",Go,[dt(K,{onClick:G[2]||(G[2]=b=>Y.value=!1),style:{"margin-right":"10px"}},{default:pt(()=>[kt("取消")]),_:1}),dt(K,{type:"primary",onClick:it},{default:pt(()=>[kt("立即提交")]),_:1})])]),_:1})]),_:1},8,["show"])],64)}}},Yo={style:{display:"flex","justify-content":"flex-end"}},Uo={__name:"editSmooth",props:{queryObj:{type:Object,default:()=>({})},pickleveTime:{type:Array,default:()=>[]},checkData:{type:Array,default:()=>[]}},setup(ut){const lt=ut,A=Rt();_t(0);const ct=Pt({tRange:0,hRange:0,T_task_id:"",SN_List:""}),q=Pt({StartTime:null,EndTime:null}),Y=_t(!1),tt=()=>{if(Object.keys(q).forEach(Q=>{console.log(Q),q[Q]=null}),console.log("1111",lt.checkData),lt.checkData==null||lt.checkData.length==0){A.error("请选择需要设置平滑的设备");return}else if(lt.queryObj.Time_start==""&&lt.queryObj.Time_end==""){A.error("请选择平滑时间");return}else ct.T_task_id=lt.queryObj.T_task_id,q.StartTime=new Date(lt.pickleveTime[0]).getTime(),q.EndTime=new Date(lt.pickleveTime[1]).getTime(),Y.value=!0},it=()=>{Z()},Z=async()=>{let Q=await st();Us(Q).then(G=>{G.data.Code==200&&(A.success(G.data.Msg),Y.value=!1)})},st=()=>new Promise(Q=>{let G={...q},K=[...lt.checkData];Object.keys(G).forEach(S=>{G[S]=Bt(G[S])+":00"});const O=K.map(S=>S.T_sn+","+S.T_id);ct.SN_List=O.join("|")+"|",Q({...ct,...G})});return(Q,G)=>{const K=Nt,O=_e,S=oe,w=Qt,D=Kt;return wt(),Et(jt,null,[dt(K,{onClick:tt},{default:pt(()=>[kt("平滑")]),_:1}),dt(D,{show:Y.value,"onUpdate:show":G[3]||(G[3]=b=>Y.value=b),title:"平滑","mask-closable":!1,"show-icon":!1,preset:"dialog"},{default:pt(()=>[dt(w,{"label-placement":"left","label-width":"auto",style:{"margin-top":"20px"}},{default:pt(()=>[dt(S,{label:"温度"},{default:pt(()=>[dt(O,{value:ct.tRange,"onUpdate:value":G[0]||(G[0]=b=>ct.tRange=b),style:{width:"100%"}},{suffix:pt(()=>[kt(" °C ")]),_:1},8,["value"])]),_:1}),dt(S,{label:"湿度"},{default:pt(()=>[dt(O,{value:ct.hRange,"onUpdate:value":G[1]||(G[1]=b=>ct.hRange=b),style:{width:"100%"}},{suffix:pt(()=>[kt(" % ")]),_:1},8,["value"])]),_:1}),Mt("div",Yo,[dt(K,{onClick:G[2]||(G[2]=b=>Y.value=!1),style:{"margin-right":"10px"}},{default:pt(()=>[kt("取消")]),_:1}),dt(K,{type:"primary",onClick:it},{default:pt(()=>[kt("立即提交")]),_:1})])]),_:1})]),_:1},8,["show"])],64)}}},Vo={__name:"BesselCurve",props:{queryObj:{type:Object,default:()=>({})},pickleveTime:{type:Array,default:()=>[]},checkData:{type:Array,default:()=>[]}},setup(ut){const lt=ut,A=Rt(),ct=()=>{if(console.log(lt.queryObj),console.log(lt.pickleveTime),console.log(lt.classList),console.log(lt.checkData),lt.checkData==null){A.error("请选择需要生成的设备");return}else if(lt.checkData.length!=1){A.error("请选择一项进行曲线生成");return}else if(lt.pickleveTime==null){A.error("请选择曲线生成时间");return}else{let q=Bt(lt.pickleveTime[0]),Y=Bt(lt.pickleveTime[1]),tt=lt.queryObj.T_task_id,it=lt.checkData[0].T_sn,Z=lt.checkData[0].T_id;window.open(`http://coldverifylocal.coldbaozhida.com/CurveEditing/index.html?a_time=${q}&b_time=${Y}&T_task_id=${tt}&T_sn=${it}&T_id=${Z}`,"_blank")}};return(q,Y)=>{const tt=Nt;return wt(),Et("div",null,[dt(tt,{onClick:ct},{default:pt(()=>[kt("曲线生成")]),_:1})])}}},$o={__name:"deWeight",props:{queryObj:{type:Object,default:()=>({})},pickleveTime:{type:Array,default:()=>[]},checkData:{type:Array,default:()=>[]}},setup(ut){const lt=ut,A=Rt(),ct=he(),q=()=>{ct.warning({title:"提示",content:"确定去重操作吗?",positiveText:"立即去重",negativeText:"取消",onPositiveClick:()=>{Y()},onNegativeClick:()=>{A.info("已取消去重")}})},Y=async()=>{Ws({T_task_id:lt.queryObj.T_task_id}).then(tt=>{tt.data.Code==200&&A.success(tt.data.Msg+",请刷新一下界面")})};return(tt,it)=>{const Z=Nt;return wt(),Lt(Z,{onClick:q},{default:pt(()=>[kt("去重")]),_:1})}}},qo={__name:"deletionBatch",props:{queryObj:{type:Object,default:()=>({})},pickleveTime:{type:Array,default:()=>[]},checkData:{type:Array,default:()=>[]}},setup(ut){const lt=ut,A=Rt(),ct=Pt({T_task_id:"",SN_List:""}),q=Pt({StartTime:null,EndTime:null}),Y=he(),tt=()=>{if(console.log("是多少",lt),lt.checkData==null||lt.checkData.length==0){A.error("请选择需要批量删除的设备");return}else if(lt.pickleveTime==null){A.error("请选择时间区间");return}else ct.T_task_id=lt.queryObj.T_task_id,q.StartTime=new Date(lt.pickleveTime[0]).getTime(),q.EndTime=new Date(lt.pickleveTime[1]).getTime(),Y.warning({title:"提示",content:"确定批量删除操作吗?",positiveText:"立即删除",negativeText:"取消",onPositiveClick:()=>{it()},onNegativeClick:()=>{A.info("已取消")}})},it=async()=>{let st=await Z();Ns(st).then(Q=>{Q.data.Code==200&&A.success(Q.data.Msg+",请刷新一下界面")})},Z=()=>new Promise(st=>{let Q={...q},G=[...lt.checkData];Object.keys(Q).forEach(O=>{Q[O]=Bt(Q[O])+":00"});const K=G.map(O=>O.T_sn+","+O.T_id);ct.SN_List=K.join("|")+"|",console.log(ct,Q),st({...ct,...Q})});return(st,Q)=>{const G=Nt;return wt(),Lt(G,{onClick:tt},{default:pt(()=>[kt("批量删除")]),_:1})}}},Ko={__name:"DeleteTaskClass",props:{task:{type:Object,default:()=>({})},taskClass:{type:Object,default:()=>({})},getClassList:{type:Function,default:()=>{}}},setup(ut){const lt=ut,A=Rt(),ct=async()=>{try{const{data:q}=await Je({T_task_id:lt.task.T_task_id,T_sn:lt.taskClass.T_sn});q.Code===200&&(A.success(q.Msg),lt.getClassList())}catch(q){console.log(q)}};return(q,Y)=>{const tt=_i,it=Be;return wt(),Lt(it,{onPositiveClick:ct},{trigger:pt(()=>[dt(tt,{size:"20",style:{cursor:"pointer"}},{default:pt(()=>[dt(St(Zs))]),_:1})]),default:pt(()=>[kt(" 删除操作,是否继续。 ")]),_:1})}}},Zo={class:"h-full flex flex-col gap-y-3"},Jo={class:"flex-1 grid grid-cols-4 gap-x-3",style:{display:"flex"}},Qo={style:{}},tn={style:{display:"flex","justify-content":"space-between","align-items":"center","margin-bottom":"10px"}},en={style:{display:"flex","align-items":"center","justify-content":"space-between"}},sn=["onDblclick"],on={class:"h-full flex flex-col gap-y-3"},nn={style:{"padding-top":"20px"}},Sn={__name:"index",setup(ut){const lt=fe(),A=ei(Ji(),"YYYY-MM-DD HH:mm:ss"),ct=Ke(),{height:q}=Qi(),Y=_t(null),tt=Rt(),it=_t({T_task_id:null,SN_List:null,StartTime:null,EndTime:null,TemperatureMin:"2",TemperatureMax:"8"}),Z=_t(!1),st=_t(!1),Q=_t(!0),G=_t("");(async()=>{let J=!1,at=!1,W=!1;document.addEventListener("keydown",function(F){F.ctrlKey&&(J=!0),F.altKey&&(at=!0),F.shiftKey&&(W=!0),J&&at&&W&&F.key==="Enter"&&(Z.value=!Z.value)}),document.addEventListener("keyup",function(F){F.ctrlKey&&(J=!1),F.altKey&&(at=!1),F.shiftKey&&(W=!1)})})();const O=()=>{if(G.value="",it.value.T_task_id=a.T_task_id,$.value==null){tt.error("请选择设备");return}else if($.value.length==0){tt.error("请选择设备");return}else{const J=[];$.value.forEach(at=>{J.push(at.T_sn+","+at.T_id)}),it.value.SN_List=J.join("|")+"|"}if(g.pickleveTime==null){tt.error("请选择查询时间");return}else it.value.StartTime=Ut(g.pickleveTime[0]),it.value.EndTime=Ut(g.pickleveTime[1]);S()},S=async()=>{st.value=!0,Q.value=!0,(await Ii(it.value)).data.Code==200&&w()},w=async()=>{const J=await ji({T_task_id:it.value.T_task_id});if(J.data.Data.state==1)setTimeout(()=>{w()},500);else if(J.data.Data.state==2)Q.value=!1,G.value=J.data.Data.url;else{tt.error(J.data.Data.msg);return}},D=()=>{$.value=[],u.value=[],M()},b=window.sessionStorage.getItem("task")?JSON.parse(window.sessionStorage.getItem("task")):{},f=_t(null),I=J=>{J==null?(a.Time_start="",a.Time_end=""):(a.Time_start=J[0],a.Time_end=J[1])},p=()=>{$.value=[],u.value=[],M()},c=J=>{console.log("父亲",J),M()},y=()=>{console.log("失去焦点"),f.value=null},T=J=>{console.log("获取焦点",J),f.value=J},m=Pt({showModal:!1,title:""}),h=he(),x=()=>{if(console.log("checkValues.value",$.value),$.value)if($.value.length)h.warning({title:"提示",content:"批量删除操作,是否继续?",positiveText:"确认",negativeText:"取消",onPositiveClick:()=>{l()},onNegativeClick:()=>{tt.warning("已取消批量删除")}});else{tt.error("请选择至少一项在进行批量操作");return}else{tt.error("请选择至少一项在进行批量操作");return}},l=async()=>{var J=0;for(const at of $.value)await Je({T_task_id:a.T_task_id,T_sn:at.T_sn}),J+=1,J==$.value.length&&(M(),tt.success("批量删除完成"))},u=_t([]),r=async()=>{const{data:J}=await Oi({T_task_id:a.T_task_id,T_collection_state:4});J.Code==200&&J.Msg=="ok!"?tt.success("完成编辑"):tt.error("编辑失败")},i=Pt({T_sn:"",T_id:""}),t=_t(!1),e=J=>{console.log("双击",J),i.T_sn=J.T_sn,i.T_id=J.T_id,t.value=!0},s=async()=>{try{$.value=[];const{data:J}=await Ei({T_task_id:a.T_task_id,T_sn:i.T_sn,T_id:i.T_id});J.Code===200&&(tt.success(J.Msg),u.value=[],M())}catch(J){console.log(J)}},n=Pt({T_t:null,T_rh:null}),a=Pt({T_task_id:b.T_task_id,T_sn:"",T_id:"",Time_start:"",Time_end:"",page:1,page_z:9999}),M=async()=>{const{data:J}=await Bi({T_task_id:a.T_task_id});z.value=J.Data||[],console.log("发起",z.value)};M();const g=Pt({picktmSta:null,pickleveTime:null}),k=J=>{f.value==1?g.picktmSta=[parseInt(J[0].min),parseInt(J[0].max)]:f.value==2?g.pickleveTime=[parseInt(J[0].min),parseInt(J[0].max)]:(a.Time_start="",a.Time_end="")},C=_t(),B=async J=>{if($.value==null){tt.error("哎呀,请选择设备在查询哟");return}console.log("ee",g.picktmSta,g.pickleveTime),J==1&&g.picktmSta!=null?(a.Time_start=Bt(parseInt(g.picktmSta[0])),a.Time_end=Bt(parseInt(g.picktmSta[1]))):J==2&&g.pickleveTime!=null?(a.Time_start=Bt(parseInt(g.pickleveTime[0])),a.Time_end=Bt(parseInt(g.pickleveTime[1]))):(a.Time_start="",a.Time_end="");let at=[];for(let W=0;W<$.value.length;W++){a.T_id=$.value[W].T_id,a.T_sn=$.value[W].T_sn;const F=await H();C.value=F,at.push(R(F.data.Data.List))}u.value=at},L=_t("温度"),o=_t(""),d=_t({}),N=async()=>{const{data:J}=await Ri({T_task_id:a.T_task_id,Id:d.value[5]});J.Code===200&&(m.showModal=!1,tt.success(`${J.Msg},点击渲染或搜索更新数据`))},V=async()=>{console.log("88",L.value,d.value,n.T_t,n.T_rh);const{data:J}=await zi({T_task_id:a.T_task_id,Id:d.value[5],T_t:L.value=="温度"?n.T_t:d.value[2],T_rh:L.value=="湿度"?n.T_rh:d.value[2],T_time:Bt(d.value[0])});J.Code===200&&(m.showModal=!1,tt.success(`${J.Msg},点击渲染或搜索更新数据`))},R=J=>{let at={name:"",data:[],events:{click(W){o.value=W.point.x,j.value=="温度"?n.T_t=W.point.y:n.T_rh=W.point.y,lt.state.focuDatas==null&&(m.showModal=!0),a.T_id=W.point.series.name,m.title=j.value=="温度"?"温度":"湿度";let F=W.point.series.name;const E=u.value.find(X=>X.name==F);console.log("点击",E,E.data[W.point.index]),d.value=E.data[W.point.index],console.log("点击",W)}}};if(J!=null){let W=J.reverse();at.name=W[0].T_id,W.forEach(F=>{at.data.push([new Date(F.T_time).getTime(),j.value=="温度"?F.T_t:F.T_rh,j.value=="温度"?F.T_rh:F.T_t,F.T_sn,F.T_id,F.ID])})}else at.data=[];return at},H=()=>new Promise(J=>{const at=Ni(a);setTimeout(()=>{J(at)},500)}),v=_t(!1),P=async()=>{v.value?$.value=z.value:$.value=[]},_=()=>{$.value.length!=z.value.length?v.value=!1:v.value=!0},z=_t([]),$=_t(null),j=_t("温度"),et=J=>{L.value=J,B()},ot=_t("");return Ai(()=>{b.T_collection_state===0?ct.info({closable:!1,title:"未完成",meta:`当前时间:${A.value}`,duration:2500,keepAliveOnHover:!0}):b.T_collection_state===1?ct.info({closable:!1,title:"已完成",meta:`当前时间:${A.value}`,duration:2500,keepAliveOnHover:!0}):b.T_collection_state===2?ct.info({closable:!1,title:"处理中",meta:`当前时间:${A.value}`,duration:2500,keepAliveOnHover:!0}):b.T_collection_state===3&&ct.info({closable:!1,title:"已采集-无数据",meta:`当前时间:${A.value}`,duration:2500,keepAliveOnHover:!0})}),(J,at)=>{const W=Nt,F=rs,E=ge,X=Xi,U=Ce,nt=Ds,rt=Fi,ht=Yi,ft=bs,mt=Wi,gt=Qe,xt=ti,bt=Me,Tt=ce,vt=oe,yt=Qt,Ct=Be,Ot=ds,It=Kt,te=si,ee=oi;return wt(),Et(jt,null,[Mt("div",Zo,[dt(F,{onBack:J.$router.back},{title:pt(()=>[kt(" 数据查询 ")]),extra:pt(()=>[dt(W,{type:"primary",onClick:r},{default:pt(()=>[kt("完成编辑")]),_:1})]),_:1},8,["onBack"]),Mt("div",Jo,[dt(bt,{style:{width:"370px","flex-shrink":"0"}},{default:pt(()=>[dt(xt,{"display-directive":"show"},{default:pt(()=>[dt(gt,{name:"1",tab:"设备"},{default:pt(()=>[dt(mt,null,{header:pt(()=>[Mt("div",Qo,[Mt("div",tn,[dt(E,{format:"yyyy-MM-dd HH:mm",value:g.picktmSta,"onUpdate:value":at[0]||(at[0]=At=>g.picktmSta=At),"time-picker-props":{format:"HH:mm"},"onUpdate:formattedValue":I,onFocus:at[1]||(at[1]=At=>T(1)),onBlur:y,type:"datetimerange",clearable:""},null,8,["value"]),dt(W,{type:"primary",onClick:at[2]||(at[2]=At=>B(1)),style:{"margin-left":"10px"}},{default:pt(()=>[kt("渲染")]),_:1})]),Mt("div",en,[dt(X,{checked:v.value,"onUpdate:checked":[at[3]||(at[3]=At=>v.value=At),P],style:{"flex-shrink":"0"}},{default:pt(()=>[kt(" 全选 ")]),_:1},8,["checked"]),Mt("div",{onClick:x,style:{"text-decoration":"underline",color:"#2d8cf0",cursor:"pointer"}},"批量删除 ")])])]),footer:pt(()=>[dt(ft,{type:"info"},{default:pt(()=>[kt(" 传感器总数:"+Wt(z.value.length),1)]),_:1})]),default:pt(()=>[Mt("div",{style:Fe([{height:St(q)-400+"px"},{"overflow-y":"auto"}])},[dt(ht,{value:$.value,"onUpdate:value":[at[4]||(at[4]=At=>$.value=At),_]},{default:pt(()=>[(wt(!0),Et(jt,null,pe(z.value,At=>(wt(),Lt(rt,{key:At.T_id,class:"mr-5"},{prefix:pt(()=>[dt(X,{value:At},null,8,["value"])]),suffix:pt(()=>[dt(U,{wrap:!1},{default:pt(()=>[dt(Ko,{task:St(b),taskClass:At,getClassList:p},null,8,["task","taskClass"])]),_:2},1024)]),default:pt(()=>[dt(nt,null,{header:pt(()=>[Mt("div",{onDblclick:Zt=>e(At)},Wt(At.T_id),41,sn)]),description:pt(()=>[kt(Wt(At.T_sn),1)]),_:2},1024)]),_:2},1024))),128))]),_:1},8,["value"])],4)]),_:1})]),_:1}),dt(gt,{name:"2",tab:"表单"},{default:pt(()=>[dt(Co,{task:St(b),ref_key:"formRef",ref:Y,"class-list":z.value,time:o.value,"temporal-interval":ot.value},null,8,["task","class-list","time","temporal-interval"])]),_:1}),dt(gt,{name:"3",tab:"存档"},{default:pt(()=>[Mt("div",{style:Fe({height:St(q)-300+"px"})},[dt(Lo,{task:St(b)},null,8,["task"])],4)]),_:1})]),_:1})]),_:1}),dt(bt,{style:{flex:"1"}},{default:pt(()=>[Mt("div",on,[dt(U,{justify:"space-between"},{default:pt(()=>[dt(Ot,null,{default:pt(()=>[dt(E,{format:"yyyy-MM-dd HH:mm",value:g.pickleveTime,"onUpdate:value":at[5]||(at[5]=At=>g.pickleveTime=At),"time-picker-props":{format:"HH:mm"},onFocus:at[6]||(at[6]=At=>T(2)),onBlur:y,"onUpdate:formattedValue":I,type:"datetimerange",clearable:""},null,8,["value"]),dt(W,{type:"primary",onClick:at[7]||(at[7]=At=>B(2)),style:{"margin-right":"20px"}},{default:pt(()=>[kt("渲染")]),_:1}),dt(Ct,{onPositiveClick:O,"show-icon":!1},{trigger:pt(()=>[dt(W,{type:"primary"},{default:pt(()=>[kt("概况图")]),_:1})]),default:pt(()=>[Mt("div",nn,[dt(yt,{model:it.value,"label-width":"auto","label-placement":"left"},{default:pt(()=>[dt(vt,{label:"下限",path:"value"},{default:pt(()=>[dt(Tt,{value:it.value.TemperatureMin,"onUpdate:value":at[8]||(at[8]=At=>it.value.TemperatureMin=At)},null,8,["value"])]),_:1}),dt(vt,{label:"上限",path:"value"},{default:pt(()=>[dt(Tt,{value:it.value.TemperatureMax,"onUpdate:value":at[9]||(at[9]=At=>it.value.TemperatureMax=At)},null,8,["value"])]),_:1})]),_:1},8,["model"])])]),_:1})]),_:1}),dt(U,null,{default:pt(()=>[dt(wo,{queryObj:a,pickleveTime:g.pickleveTime,checkData:$.value},null,8,["queryObj","pickleveTime","checkData"]),dt(vo,{queryObj:a,pickleveTime:g.pickleveTime,checkData:$.value},null,8,["queryObj","pickleveTime","checkData"]),dt(yo,{onImportFiles:D,task:St(b)},null,8,["task"]),dt(So,{task:St(b)},null,8,["task"]),dt(po,{"class-list":z.value,onAddFuns:c,task:St(b)},null,8,["class-list","task"]),dt(Mo),Z.value?(wt(),Lt(_o,{key:0,onRatioZoomFun:at[10]||(at[10]=At=>B(1)),queryObj:a,pickleveTime:g.pickleveTime,checkData:$.value},null,8,["queryObj","pickleveTime","checkData"])):ie("",!0),Z.value?(wt(),Lt(Bo,{key:1,queryObj:a,pickleveTime:g.pickleveTime,checkData:$.value,classList:z.value},null,8,["queryObj","pickleveTime","checkData","classList"])):ie("",!0),Z.value?(wt(),Lt(jo,{key:2,queryObj:a,pickleveTime:g.pickleveTime,checkData:$.value,classList:z.value},null,8,["queryObj","pickleveTime","checkData","classList"])):ie("",!0),Z.value?(wt(),Lt(Ro,{key:3,queryObj:a,pickleveTime:g.pickleveTime,checkData:$.value},null,8,["queryObj","pickleveTime","checkData"])):ie("",!0),Z.value?(wt(),Lt(zo,{key:4,queryObj:a,pickleveTime:g.pickleveTime,checkData:$.value},null,8,["queryObj","pickleveTime","checkData"])):ie("",!0),Z.value?(wt(),Lt(Wo,{key:5,queryObj:a,pickleveTime:g.pickleveTime,checkData:$.value},null,8,["queryObj","pickleveTime","checkData"])):ie("",!0),Z.value?(wt(),Lt(Ho,{key:6,queryObj:a,pickleveTime:g.pickleveTime,checkData:$.value},null,8,["queryObj","pickleveTime","checkData"])):ie("",!0),Z.value?(wt(),Lt(Xo,{key:7,queryObj:a,pickleveTime:g.pickleveTime,checkData:$.value},null,8,["queryObj","pickleveTime","checkData"])):ie("",!0),Z.value?(wt(),Lt(Uo,{key:8,queryObj:a,pickleveTime:g.pickleveTime,checkData:$.value},null,8,["queryObj","pickleveTime","checkData"])):ie("",!0),Z.value?(wt(),Lt(Vo,{key:9,queryObj:a,pickleveTime:g.pickleveTime,checkData:$.value},null,8,["queryObj","pickleveTime","checkData"])):ie("",!0),Z.value?(wt(),Lt($o,{key:10,queryObj:a,pickleveTime:g.pickleveTime,checkData:$.value},null,8,["queryObj","pickleveTime","checkData"])):ie("",!0),Z.value?(wt(),Lt(qo,{key:11,queryObj:a,pickleveTime:g.pickleveTime,checkData:$.value},null,8,["queryObj","pickleveTime","checkData"])):ie("",!0)]),_:1})]),_:1}),dt(xt,{type:"segment",animated:"",value:j.value,"onUpdate:value":[at[11]||(at[11]=At=>j.value=At),et]},{default:pt(()=>[dt(gt,{name:"温度",tab:"温度"},{default:pt(()=>[dt(no,{dataList:u.value,onSetTimeFun:k},null,8,["dataList"])]),_:1}),dt(gt,{name:"湿度",tab:"湿度"},{default:pt(()=>[dt(ho,{dataList:u.value,onSetTimeFun:k},null,8,["dataList"])]),_:1})]),_:1},8,["value"])])]),_:1})])]),dt(It,{show:m.showModal,"onUpdate:show":at[14]||(at[14]=At=>m.showModal=At),title:m.title,"show-icon":!1,preset:"dialog"},{default:pt(()=>[m.title==="温度"?(wt(),Lt(vt,{key:0,"show-require-mark":""},{default:pt(()=>[dt(Tt,{value:n.T_t,"onUpdate:value":at[12]||(at[12]=At=>n.T_t=At)},null,8,["value"])]),_:1})):(wt(),Lt(vt,{key:1,"show-require-mark":""},{default:pt(()=>[dt(Tt,{value:n.T_rh,"onUpdate:value":at[13]||(at[13]=At=>n.T_rh=At)},null,8,["value"])]),_:1})),dt(U,{justify:"end"},{default:pt(()=>[dt(Ct,{onPositiveClick:N},{trigger:pt(()=>[dt(W,{type:"error"},{default:pt(()=>[kt("删除该点")]),_:1})]),default:pt(()=>[kt(" 是否确认删除? ")]),_:1}),dt(W,{type:"primary",onClick:V},{default:pt(()=>[kt("确定")]),_:1})]),_:1})]),_:1},8,["show","title"]),dt(It,{show:t.value,"onUpdate:show":at[17]||(at[17]=At=>t.value=At),preset:"dialog","positive-text":"确认","negative-text":"取消","show-icon":!1,onPositiveClick:s},{default:pt(()=>[dt(yt,{model:i,"label-width":"auto","show-require-mark":""},{default:pt(()=>[dt(vt,{label:"编号",path:"T_id"},{default:pt(()=>[dt(Tt,{value:i.T_id,"onUpdate:value":at[15]||(at[15]=At=>i.T_id=At)},null,8,["value"])]),_:1}),dt(vt,{label:"SN",path:"T_sn"},{default:pt(()=>[dt(Tt,{value:i.T_sn,"onUpdate:value":at[16]||(at[16]=At=>i.T_sn=At),disabled:"false"},null,8,["value"])]),_:1})]),_:1},8,["model"])]),_:1},8,["show"]),dt(It,{show:st.value,"onUpdate:show":at[18]||(at[18]=At=>st.value=At),title:"概况图",preset:"card",style:{"min-width":"500px","max-width":"600px","min-height":"300px"}},{default:pt(()=>[dt(ee,{show:Q.value},{description:pt(()=>[kt(" 加载中,请稍后... ")]),default:pt(()=>[dt(te,{width:"500",src:G.value,style:{border:"1px solid #ccc","min-height":"200px"}},null,8,["src"])]),_:1},8,["show"])]),_:1},8,["show"])],64)}}};export{Sn as default};