From ac208c8a5fda63cd4314e91a0812ebd981d3d5ab Mon Sep 17 00:00:00 2001 From: unanmed <90094606+unanmed@users.noreply.github.com> Date: Wed, 4 Jan 2023 17:13:13 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20=20@=2033c14?= =?UTF-8?q?7421e9366de328ae57a77cd9b8504f3716c=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...y.6dcd3163.js => index-legacy.b0ca823e.js} | 2 +- .../{index.72c5a971.js => index.83ced8af.js} | 2 +- index.html | 4 +- libs/control.js | 41 +------ libs/maps.js | 6 +- project/enemys.js | 18 ++-- project/floors/MT22.js | 7 +- project/floors/MT23.js | 4 +- project/fonts/normal.ttf | Bin 3600540 -> 3623352 bytes project/functions.js | 49 ++++++--- project/icons.js | 6 +- project/items.js | 32 +++--- project/maps.js | 4 + project/materials/enemys.png | Bin 119574 -> 125852 bytes project/plugins.js | 101 ++++++++++++++++-- 15 files changed, 174 insertions(+), 102 deletions(-) rename assets/{index-legacy.6dcd3163.js => index-legacy.b0ca823e.js} (93%) rename assets/{index.72c5a971.js => index.83ced8af.js} (78%) diff --git a/assets/index-legacy.6dcd3163.js b/assets/index-legacy.b0ca823e.js similarity index 93% rename from assets/index-legacy.6dcd3163.js rename to assets/index-legacy.b0ca823e.js index b40f8b1..7a6883b 100644 --- a/assets/index-legacy.6dcd3163.js +++ b/assets/index-legacy.b0ca823e.js @@ -17,4 +17,4 @@ function noop(){}const uid=(()=>{let t=0;return()=>t++})();function isNullOrUnde * https://www.chartjs.org * (c) 2022 Chart.js Contributors * Released under the MIT License - */class Animator{constructor(){this._request=null,this._charts=new Map,this._running=!1,this._lastDate=void 0}_notify(t,e,n,a){const o=e.listeners[a],i=e.duration;o.forEach((a=>a({chart:t,initial:e.initial,numSteps:i,currentStep:Math.min(n-e.start,i)})))}_refresh(){this._request||(this._running=!0,this._request=requestAnimFrame.call(window,(()=>{this._update(),this._request=null,this._running&&this._refresh()})))}_update(t=Date.now()){let e=0;this._charts.forEach(((n,a)=>{if(!n.running||!n.items.length)return;const o=n.items;let i,r=o.length-1,l=!1;for(;r>=0;--r)i=o[r],i._active?(i._total>n.duration&&(n.duration=i._total),i.tick(t),l=!0):(o[r]=o[o.length-1],o.pop());l&&(a.draw(),this._notify(a,n,t,"progress")),o.length||(n.running=!1,this._notify(a,n,t,"complete"),n.initial=!1),e+=o.length})),this._lastDate=t,0===e&&(this._running=!1)}_getAnims(t){const e=this._charts;let n=e.get(t);return n||(n={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},e.set(t,n)),n}listen(t,e,n){this._getAnims(t).listeners[e].push(n)}add(t,e){e&&e.length&&this._getAnims(t).items.push(...e)}has(t){return this._getAnims(t).items.length>0}start(t){const e=this._charts.get(t);e&&(e.running=!0,e.start=Date.now(),e.duration=e.items.reduce(((t,e)=>Math.max(t,e._duration)),0),this._refresh())}running(t){if(!this._running)return!1;const e=this._charts.get(t);return!!(e&&e.running&&e.items.length)}stop(t){const e=this._charts.get(t);if(!e||!e.items.length)return;const n=e.items;let a=n.length-1;for(;a>=0;--a)n[a].cancel();e.items=[],this._notify(t,e,Date.now(),"complete")}remove(t){return this._charts.delete(t)}}var animator=new Animator;const transparent="transparent",interpolators={boolean:(t,e,n)=>n>.5?e:t,color(t,e,n){const a=color(t||transparent),o=a.valid&&color(e||transparent);return o&&o.valid?o.mix(a,n).hexString():e},number:(t,e,n)=>t+(e-t)*n};class Animation{constructor(t,e,n,a){const o=e[n];a=resolve([t.to,a,o,t.from]);const i=resolve([t.from,o,a]);this._active=!0,this._fn=t.fn||interpolators[t.type||typeof i],this._easing=effects$1[t.easing]||effects$1.linear,this._start=Math.floor(Date.now()+(t.delay||0)),this._duration=this._total=Math.floor(t.duration),this._loop=!!t.loop,this._target=e,this._prop=n,this._from=i,this._to=a,this._promises=void 0}active(){return this._active}update(t,e,n){if(this._active){this._notify(!1);const a=this._target[this._prop],o=n-this._start,i=this._duration-o;this._start=n,this._duration=Math.floor(Math.max(i,t.duration)),this._total+=o,this._loop=!!t.loop,this._to=resolve([t.to,e,a,t.from]),this._from=resolve([t.from,a,e])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(t){const e=t-this._start,n=this._duration,a=this._prop,o=this._from,i=this._loop,r=this._to;let l;if(this._active=o!==r&&(i||e1?2-l:l,l=this._easing(Math.min(1,Math.max(0,l))),this._target[a]=this._fn(o,r,l))}wait(){const t=this._promises||(this._promises=[]);return new Promise(((e,n)=>{t.push({res:e,rej:n})}))}_notify(t){const e=t?"res":"rej",n=this._promises||[];for(let a=0;a{const o=t[a];if(!isObject(o))return;const i={};for(const t of e)i[t]=o[t];(isArray(o.properties)&&o.properties||[a]).forEach((t=>{t!==a&&n.has(t)||n.set(t,i)}))}))}_animateOptions(t,e){const n=e.options,a=resolveTargetOptions(t,n);if(!a)return[];const o=this._createAnimations(a,n);return n.$shared&&awaitAll(t.options.$animations,n).then((()=>{t.options=n}),(()=>{})),o}_createAnimations(t,e){const n=this._properties,a=[],o=t.$animations||(t.$animations={}),i=Object.keys(e),r=Date.now();let l;for(l=i.length-1;l>=0;--l){const s=i[l];if("$"===s.charAt(0))continue;if("options"===s){a.push(...this._animateOptions(t,e));continue}const c=e[s];let d=o[s];const p=n.get(s);if(d){if(p&&d.active()){d.update(p,c,r);continue}d.cancel()}p&&p.duration?(o[s]=d=new Animation(p,t,s,c),a.push(d)):t[s]=c}return a}update(t,e){if(0===this._properties.size)return void Object.assign(t,e);const n=this._createAnimations(t,e);return n.length?(animator.add(this._chart,n),!0):void 0}}function awaitAll(t,e){const n=[],a=Object.keys(e);for(let o=0;o0||!n&&e<0)return o.index}return null}function updateStacks(t,e){const{chart:n,_cachedMeta:a}=t,o=n._stacks||(n._stacks={}),{iScale:i,vScale:r,index:l}=a,s=i.axis,c=r.axis,d=getStackKey(i,r,a),p=e.length;let u;for(let h=0;hn[t].axis===e)).shift()}function createDatasetContext(t,e){return createContext(t,{active:!1,dataset:void 0,datasetIndex:e,index:e,mode:"default",type:"dataset"})}function createDataContext(t,e,n){return createContext(t,{active:!1,dataIndex:e,parsed:void 0,raw:void 0,element:n,index:e,mode:"default",type:"data"})}function clearStacks(t,e){const n=t.controller.index,a=t.vScale&&t.vScale.axis;if(a){e=e||t._parsed;for(const t of e){const e=t._stacks;if(!e||void 0===e[a]||void 0===e[a][n])return;delete e[a][n]}}}const isDirectUpdateMode=t=>"reset"===t||"none"===t,cloneIfNotShared=(t,e)=>e?t:Object.assign({},t),createStack=(t,e,n)=>t&&!e.hidden&&e._stacked&&{keys:getSortedDatasetIndices(n,!0),values:null};class DatasetController{constructor(t,e){this.chart=t,this._ctx=t.ctx,this.index=e,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const t=this._cachedMeta;this.configure(),this.linkScales(),t._stacked=isStacked(t.vScale,t),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(t){this.index!==t&&clearStacks(this._cachedMeta),this.index=t}linkScales(){const t=this.chart,e=this._cachedMeta,n=this.getDataset(),a=(t,e,n,a)=>"x"===t?e:"r"===t?a:n,o=e.xAxisID=valueOrDefault(n.xAxisID,getFirstScaleId(t,"x")),i=e.yAxisID=valueOrDefault(n.yAxisID,getFirstScaleId(t,"y")),r=e.rAxisID=valueOrDefault(n.rAxisID,getFirstScaleId(t,"r")),l=e.indexAxis,s=e.iAxisID=a(l,o,i,r),c=e.vAxisID=a(l,i,o,r);e.xScale=this.getScaleForId(o),e.yScale=this.getScaleForId(i),e.rScale=this.getScaleForId(r),e.iScale=this.getScaleForId(s),e.vScale=this.getScaleForId(c)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(t){return this.chart.scales[t]}_getOtherScale(t){const e=this._cachedMeta;return t===e.iScale?e.vScale:e.iScale}reset(){this._update("reset")}_destroy(){const t=this._cachedMeta;this._data&&unlistenArrayEvents(this._data,this),t._stacked&&clearStacks(t)}_dataCheck(){const t=this.getDataset(),e=t.data||(t.data=[]),n=this._data;if(isObject(e))this._data=convertObjectDataToArray(e);else if(n!==e){if(n){unlistenArrayEvents(n,this);const t=this._cachedMeta;clearStacks(t),t._parsed=[]}e&&Object.isExtensible(e)&&listenArrayEvents(e,this),this._syncList=[],this._data=e}}addElements(){const t=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(t.dataset=new this.datasetElementType)}buildOrUpdateElements(t){const e=this._cachedMeta,n=this.getDataset();let a=!1;this._dataCheck();const o=e._stacked;e._stacked=isStacked(e.vScale,e),e.stack!==n.stack&&(a=!0,clearStacks(e),e.stack=n.stack),this._resyncElements(t),(a||o!==e._stacked)&&updateStacks(this,e._parsed)}configure(){const t=this.chart.config,e=t.datasetScopeKeys(this._type),n=t.getOptionScopes(this.getDataset(),e,!0);this.options=t.createResolver(n,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(t,e){const{_cachedMeta:n,_data:a}=this,{iScale:o,_stacked:i}=n,r=o.axis;let l,s,c,d=0===t&&e===a.length||n._sorted,p=t>0&&n._parsed[t-1];if(!1===this._parsing)n._parsed=a,n._sorted=!0,c=a;else{c=isArray(a[t])?this.parseArrayData(n,a,t,e):isObject(a[t])?this.parseObjectData(n,a,t,e):this.parsePrimitiveData(n,a,t,e);const o=()=>null===s[r]||p&&s[r]e||d=0;--p)if(!h()){this.updateRangeFromParsed(s,t,u,l);break}return s}getAllParsedValues(t){const e=this._cachedMeta._parsed,n=[];let a,o,i;for(a=0,o=e.length;a=0&&tthis.getContext(n,a)),d);return h.$shared&&(h.$shared=l,o[i]=Object.freeze(cloneIfNotShared(h,l))),h}_resolveAnimations(t,e,n){const a=this.chart,o=this._cachedDataOpts,i=`animation-${e}`,r=o[i];if(r)return r;let l;if(!1!==a.options.animation){const a=this.chart.config,o=a.datasetAnimationScopeKeys(this._type,e),i=a.getOptionScopes(this.getDataset(),o);l=a.createResolver(i,this.getContext(t,n,e))}const s=new Animations(a,l&&l.animations);return l&&l._cacheable&&(o[i]=Object.freeze(s)),s}getSharedOptions(t){if(t.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},t))}includeOptions(t,e){return!e||isDirectUpdateMode(t)||this.chart._animationsDisabled}_getSharedOptions(t,e){const n=this.resolveDataElementOptions(t,e),a=this._sharedOptions,o=this.getSharedOptions(n),i=this.includeOptions(e,o)||o!==a;return this.updateSharedOptions(o,e,n),{sharedOptions:o,includeOptions:i}}updateElement(t,e,n,a){isDirectUpdateMode(a)?Object.assign(t,n):this._resolveAnimations(e,a).update(t,n)}updateSharedOptions(t,e,n){t&&!isDirectUpdateMode(e)&&this._resolveAnimations(void 0,e).update(t,n)}_setStyle(t,e,n,a){t.active=a;const o=this.getStyle(e,a);this._resolveAnimations(e,n,a).update(t,{options:!a&&this.getSharedOptions(o)||o})}removeHoverStyle(t,e,n){this._setStyle(t,n,"active",!1)}setHoverStyle(t,e,n){this._setStyle(t,n,"active",!0)}_removeDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!1)}_setDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!0)}_resyncElements(t){const e=this._data,n=this._cachedMeta.data;for(const[r,l,s]of this._syncList)this[r](l,s);this._syncList=[];const a=n.length,o=e.length,i=Math.min(o,a);i&&this.parse(0,i),o>a?this._insertElements(a,o-a,t):o{for(t.length+=e,r=t.length-1;r>=i;r--)t[r]=t[r-e]};for(l(o),r=t;rt-e)))}return t._cache.$bar}function computeMinSampleSize(t){const e=t.iScale,n=getAllScaleValues(e,t.type);let a,o,i,r,l=e._length;const s=()=>{32767!==i&&-32768!==i&&(defined(r)&&(l=Math.min(l,Math.abs(i-r)||l)),r=i)};for(a=0,o=n.length;a0?o[t-1]:null,l=tMath.abs(l)&&(s=l,c=r),e[n.axis]=c,e._custom={barStart:s,barEnd:c,start:o,end:i,min:r,max:l}}function parseValue(t,e,n,a){return isArray(t)?parseFloatBar(t,e,n,a):e[n.axis]=n.parse(t,a),e}function parseArrayOrPrimitive(t,e,n,a){const o=t.iScale,i=t.vScale,r=o.getLabels(),l=o===i,s=[];let c,d,p,u;for(c=n,d=n+a;c=n?1:-1)}function borderProps(t){let e,n,a,o,i;return t.horizontal?(e=t.base>t.x,n="left",a="right"):(e=t.baset.controller.options.grouped)),o=n.options.stacked,i=[],r=t=>{const n=t.controller.getParsed(e),a=n&&n[t.vScale.axis];if(isNullOrUndef(a)||isNaN(a))return!0};for(const l of a)if((void 0===e||!r(l))&&((!1===o||-1===i.indexOf(l.stack)||void 0===o&&void 0===l.stack)&&i.push(l.stack),l.index===t))break;return i.length||i.push(void 0),i}_getStackCount(t){return this._getStacks(void 0,t).length}_getStackIndex(t,e,n){const a=this._getStacks(t,n),o=void 0!==e?a.indexOf(e):-1;return-1===o?a.length-1:o}_getRuler(){const t=this.options,e=this._cachedMeta,n=e.iScale,a=[];let o,i;for(o=0,i=e.data.length;o=0;--n)e=Math.max(e,t[n].size(this.resolveDataElementOptions(n))/2);return e>0&&e}getLabelAndValue(t){const e=this._cachedMeta,n=this.chart.data.labels||[],{xScale:a,yScale:o}=e,i=this.getParsed(t),r=a.getLabelForValue(i.x),l=o.getLabelForValue(i.y),s=i._custom;return{label:n[t]||"",value:"("+r+", "+l+(s?", "+s:"")+")"}}update(t){const e=this._cachedMeta.data;this.updateElements(e,0,e.length,t)}updateElements(t,e,n,a){const o="reset"===a,{iScale:i,vScale:r}=this._cachedMeta,{sharedOptions:l,includeOptions:s}=this._getSharedOptions(e,a),c=i.axis,d=r.axis;for(let p=e;p_angleBetween(t,l,s,!0)?1:Math.max(e,e*n,a,a*n),m=(t,e,a)=>_angleBetween(t,l,s,!0)?-1:Math.min(e,e*n,a,a*n),g=h(0,c,p),b=h(HALF_PI,d,u),f=m(PI,c,p),x=m(PI+HALF_PI,d,u);a=(g-f)/2,o=(b-x)/2,i=-(g+f)/2,r=-(b+x)/2}return{ratioX:a,ratioY:o,offsetX:i,offsetY:r}}_defineProperty(BubbleController,"id","bubble"),_defineProperty(BubbleController,"defaults",{datasetElementType:!1,dataElementType:"point",animations:{numbers:{type:"number",properties:["x","y","borderWidth","radius"]}}}),_defineProperty(BubbleController,"overrides",{scales:{x:{type:"linear"},y:{type:"linear"}}});class DoughnutController extends DatasetController{constructor(t,e){super(t,e),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(t,e){const n=this.getDataset().data,a=this._cachedMeta;if(!1===this._parsing)a._parsed=n;else{let o,i,r=t=>+n[t];if(isObject(n[t])){const{key:t="value"}=this._parsing;r=e=>+resolveObjectKey(n[e],t)}for(o=t,i=t+e;o0&&!isNaN(t)?TAU*(Math.abs(t)/e):0}getLabelAndValue(t){const e=this._cachedMeta,n=this.chart,a=n.data.labels||[],o=formatNumber(e._parsed[t],n.options.locale);return{label:a[t]||"",value:o}}getMaxBorderWidth(t){let e=0;const n=this.chart;let a,o,i,r,l;if(!t)for(a=0,o=n.data.datasets.length;a"spacing"!==t,_indexable:t=>"spacing"!==t}),_defineProperty(DoughnutController,"overrides",{aspectRatio:1,plugins:{legend:{labels:{generateLabels(t){const e=t.data;if(e.labels.length&&e.datasets.length){const{labels:{pointStyle:n,color:a}}=t.legend.options;return e.labels.map(((e,o)=>{const i=t.getDatasetMeta(0).controller.getStyle(o);return{text:e,fillStyle:i.backgroundColor,strokeStyle:i.borderColor,fontColor:a,lineWidth:i.borderWidth,pointStyle:n,hidden:!t.getDataVisibility(o),index:o}}))}return[]}},onClick(t,e,n){n.chart.toggleDataVisibility(e.index),n.chart.update()}}}});class LineController extends DatasetController{initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(t){const e=this._cachedMeta,{dataset:n,data:a=[],_dataset:o}=e,i=this.chart._animationsDisabled;let{start:r,count:l}=_getStartAndCountOfVisiblePoints(e,a,i);this._drawStart=r,this._drawCount=l,_scaleRangesChanged(e)&&(r=0,l=a.length),n._chart=this.chart,n._datasetIndex=this.index,n._decimated=!!o._decimated,n.points=a;const s=this.resolveDatasetElementOptions(t);this.options.showLine||(s.borderWidth=0),s.segment=this.options.segment,this.updateElement(n,void 0,{animated:!i,options:s},t),this.updateElements(a,r,l,t)}updateElements(t,e,n,a){const o="reset"===a,{iScale:i,vScale:r,_stacked:l,_dataset:s}=this._cachedMeta,{sharedOptions:c,includeOptions:d}=this._getSharedOptions(e,a),p=i.axis,u=r.axis,{spanGaps:h,segment:m}=this.options,g=isNumber(h)?h:Number.POSITIVE_INFINITY,b=this.chart._animationsDisabled||o||"none"===a,f=e+n,x=t.length;let v=e>0&&this.getParsed(e-1);for(let w=0;w=f){h.skip=!0;continue}const x=this.getParsed(w),y=isNullOrUndef(x[u]),k=h[p]=i.getPixelForValue(x[p],w),_=h[u]=o||y?r.getBasePixel():r.getPixelForValue(l?this.applyStack(r,x,l):x[u],w);h.skip=isNaN(k)||isNaN(_)||y,h.stop=w>0&&Math.abs(x[p]-v[p])>g,m&&(h.parsed=x,h.raw=s.data[w]),d&&(h.options=c||this.resolveDataElementOptions(w,n.active?"active":a)),b||this.updateElement(n,w,h,a),v=x}}getMaxOverflow(){const t=this._cachedMeta,e=t.dataset,n=e.options&&e.options.borderWidth||0,a=t.data||[];if(!a.length)return n;const o=a[0].size(this.resolveDataElementOptions(0)),i=a[a.length-1].size(this.resolveDataElementOptions(a.length-1));return Math.max(n,o,i)/2}draw(){const t=this._cachedMeta;t.dataset.updateControlPoints(this.chart.chartArea,t.iScale.axis),super.draw()}}_defineProperty(LineController,"id","line"),_defineProperty(LineController,"defaults",{datasetElementType:"line",dataElementType:"point",showLine:!0,spanGaps:!1}),_defineProperty(LineController,"overrides",{scales:{_index_:{type:"category"},_value_:{type:"linear"}}});class PolarAreaController extends DatasetController{constructor(t,e){super(t,e),this.innerRadius=void 0,this.outerRadius=void 0}getLabelAndValue(t){const e=this._cachedMeta,n=this.chart,a=n.data.labels||[],o=formatNumber(e._parsed[t].r,n.options.locale);return{label:a[t]||"",value:o}}parseObjectData(t,e,n,a){return _parseObjectDataRadialScale.bind(this)(t,e,n,a)}update(t){const e=this._cachedMeta.data;this._updateRadius(),this.updateElements(e,0,e.length,t)}getMinMax(){const t=this._cachedMeta,e={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY};return t.data.forEach(((t,n)=>{const a=this.getParsed(n).r;!isNaN(a)&&this.chart.getDataVisibility(n)&&(ae.max&&(e.max=a))})),e}_updateRadius(){const t=this.chart,e=t.chartArea,n=t.options,a=Math.min(e.right-e.left,e.bottom-e.top),o=Math.max(a/2,0),i=(o-Math.max(n.cutoutPercentage?o/100*n.cutoutPercentage:1,0))/t.getVisibleDatasetCount();this.outerRadius=o-i*this.index,this.innerRadius=this.outerRadius-i}updateElements(t,e,n,a){const o="reset"===a,i=this.chart,r=i.options.animation,l=this._cachedMeta.rScale,s=l.xCenter,c=l.yCenter,d=l.getIndexAngle(0)-.5*PI;let p,u=d;const h=360/this.countVisibleElements();for(p=0;p{!isNaN(this.getParsed(n).r)&&this.chart.getDataVisibility(n)&&e++})),e}_computeAngle(t,e,n){return this.chart.getDataVisibility(t)?toRadians(this.resolveDataElementOptions(t,e).angle||n):0}}_defineProperty(PolarAreaController,"id","polarArea"),_defineProperty(PolarAreaController,"defaults",{dataElementType:"arc",animation:{animateRotate:!0,animateScale:!0},animations:{numbers:{type:"number",properties:["x","y","startAngle","endAngle","innerRadius","outerRadius"]}},indexAxis:"r",startAngle:0}),_defineProperty(PolarAreaController,"overrides",{aspectRatio:1,plugins:{legend:{labels:{generateLabels(t){const e=t.data;if(e.labels.length&&e.datasets.length){const{labels:{pointStyle:n,color:a}}=t.legend.options;return e.labels.map(((e,o)=>{const i=t.getDatasetMeta(0).controller.getStyle(o);return{text:e,fillStyle:i.backgroundColor,strokeStyle:i.borderColor,fontColor:a,lineWidth:i.borderWidth,pointStyle:n,hidden:!t.getDataVisibility(o),index:o}}))}return[]}},onClick(t,e,n){n.chart.toggleDataVisibility(e.index),n.chart.update()}}},scales:{r:{type:"radialLinear",angleLines:{display:!1},beginAtZero:!0,grid:{circular:!0},pointLabels:{display:!1},startAngle:0}}});class PieController extends DoughnutController{}_defineProperty(PieController,"id","pie"),_defineProperty(PieController,"defaults",{cutout:0,rotation:0,circumference:360,radius:"100%"});class RadarController extends DatasetController{getLabelAndValue(t){const e=this._cachedMeta.vScale,n=this.getParsed(t);return{label:e.getLabels()[t],value:""+e.getLabelForValue(n[e.axis])}}parseObjectData(t,e,n,a){return _parseObjectDataRadialScale.bind(this)(t,e,n,a)}update(t){const e=this._cachedMeta,n=e.dataset,a=e.data||[],o=e.iScale.getLabels();if(n.points=a,"resize"!==t){const e=this.resolveDatasetElementOptions(t);this.options.showLine||(e.borderWidth=0);const i={_loop:!0,_fullLoop:o.length===a.length,options:e};this.updateElement(n,void 0,i,t)}this.updateElements(a,0,a.length,t)}updateElements(t,e,n,a){const o=this._cachedMeta.rScale,i="reset"===a;for(let r=e;r0&&this.getParsed(e-1);for(let v=e;v0&&Math.abs(n[u]-x[u])>b,g&&(c.parsed=n,c.raw=s.data[v]),p&&(c.options=d||this.resolveDataElementOptions(v,e.active?"active":a)),f||this.updateElement(e,v,c,a),x=n}this.updateSharedOptions(d,a,c)}getMaxOverflow(){const t=this._cachedMeta,e=t.data||[];if(!this.options.showLine){let t=0;for(let n=e.length-1;n>=0;--n)t=Math.max(t,e[n].size(this.resolveDataElementOptions(n))/2);return t>0&&t}const n=t.dataset,a=n.options&&n.options.borderWidth||0;if(!e.length)return a;const o=e[0].size(this.resolveDataElementOptions(0)),i=e[e.length-1].size(this.resolveDataElementOptions(e.length-1));return Math.max(a,o,i)/2}}_defineProperty(ScatterController,"id","scatter"),_defineProperty(ScatterController,"defaults",{datasetElementType:!1,dataElementType:"point",showLine:!1,fill:!1}),_defineProperty(ScatterController,"overrides",{interaction:{mode:"point"},scales:{x:{type:"linear"},y:{type:"linear"}}});var controllers=Object.freeze({__proto__:null,BarController:BarController,BubbleController:BubbleController,DoughnutController:DoughnutController,LineController:LineController,PolarAreaController:PolarAreaController,PieController:PieController,RadarController:RadarController,ScatterController:ScatterController});function abstract(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}class DateAdapterBase{static override(t){Object.assign(DateAdapterBase.prototype,t)}constructor(t){this.options=t||{}}init(){}formats(){return abstract()}parse(){return abstract()}format(){return abstract()}add(){return abstract()}diff(){return abstract()}startOf(){return abstract()}endOf(){return abstract()}}var adapters={_date:DateAdapterBase};function binarySearch(t,e,n,a){const{controller:o,data:i,_sorted:r}=t,l=o._cachedMeta.iScale;if(l&&e===l.axis&&"r"!==e&&r&&i.length){const t=l._reversePixels?_rlookupByKey:_lookupByKey;if(!a)return t(i,e,n);if(o._sharedOptions){const a=i[0],o="function"==typeof a.getRange&&a.getRange(e);if(o){const a=t(i,e,n-o),r=t(i,e,n+o);return{lo:a.lo,hi:r.hi}}}}return{lo:0,hi:i.length-1}}function evaluateInteractionItems(t,e,n,a,o){const i=t.getSortedVisibleDatasetMetas(),r=n[e];for(let l=0,s=i.length;l{t[r](e[n],o)&&(i.push({element:t,datasetIndex:a,index:s}),l=l||t.inRange(e.x,e.y,o))})),a&&!l?[]:i}var Interaction={evaluateInteractionItems:evaluateInteractionItems,modes:{index(t,e,n,a){const o=getRelativePosition(e,t),i=n.axis||"x",r=n.includeInvisible||!1,l=n.intersect?getIntersectItems(t,o,i,a,r):getNearestItems(t,o,i,!1,a,r),s=[];return l.length?(t.getSortedVisibleDatasetMetas().forEach((t=>{const e=l[0].index,n=t.data[e];n&&!n.skip&&s.push({element:n,datasetIndex:t.index,index:e})})),s):[]},dataset(t,e,n,a){const o=getRelativePosition(e,t),i=n.axis||"xy",r=n.includeInvisible||!1;let l=n.intersect?getIntersectItems(t,o,i,a,r):getNearestItems(t,o,i,!1,a,r);if(l.length>0){const e=l[0].datasetIndex,n=t.getDatasetMeta(e).data;l=[];for(let t=0;tgetIntersectItems(t,getRelativePosition(e,t),n.axis||"xy",a,n.includeInvisible||!1),nearest(t,e,n,a){const o=getRelativePosition(e,t),i=n.axis||"xy",r=n.includeInvisible||!1;return getNearestItems(t,o,i,n.intersect,a,r)},x:(t,e,n,a)=>getAxisItems(t,getRelativePosition(e,t),"x",n.intersect,a),y:(t,e,n,a)=>getAxisItems(t,getRelativePosition(e,t),"y",n.intersect,a)}};const STATIC_POSITIONS=["left","top","right","bottom"];function filterByPosition(t,e){return t.filter((t=>t.pos===e))}function filterDynamicPositionByAxis(t,e){return t.filter((t=>-1===STATIC_POSITIONS.indexOf(t.pos)&&t.box.axis===e))}function sortByWeight(t,e){return t.sort(((t,n)=>{const a=e?n:t,o=e?t:n;return a.weight===o.weight?a.index-o.index:a.weight-o.weight}))}function wrapBoxes(t){const e=[];let n,a,o,i,r,l;for(n=0,a=(t||[]).length;nt.box.fullSize)),!0),a=sortByWeight(filterByPosition(e,"left"),!0),o=sortByWeight(filterByPosition(e,"right")),i=sortByWeight(filterByPosition(e,"top"),!0),r=sortByWeight(filterByPosition(e,"bottom")),l=filterDynamicPositionByAxis(e,"x"),s=filterDynamicPositionByAxis(e,"y");return{fullSize:n,leftAndTop:a.concat(i),rightAndBottom:o.concat(s).concat(r).concat(l),chartArea:filterByPosition(e,"chartArea"),vertical:a.concat(o).concat(s),horizontal:i.concat(r).concat(l)}}function getCombinedMax(t,e,n,a){return Math.max(t[n],e[n])+Math.max(t[a],e[a])}function updateMaxPadding(t,e){t.top=Math.max(t.top,e.top),t.left=Math.max(t.left,e.left),t.bottom=Math.max(t.bottom,e.bottom),t.right=Math.max(t.right,e.right)}function updateDims(t,e,n,a){const{pos:o,box:i}=n,r=t.maxPadding;if(!isObject(o)){n.size&&(t[o]-=n.size);const e=a[n.stack]||{size:0,count:1};e.size=Math.max(e.size,n.horizontal?i.height:i.width),n.size=e.size/e.count,t[o]+=n.size}i.getPadding&&updateMaxPadding(r,i.getPadding());const l=Math.max(0,e.outerWidth-getCombinedMax(r,t,"left","right")),s=Math.max(0,e.outerHeight-getCombinedMax(r,t,"top","bottom")),c=l!==t.w,d=s!==t.h;return t.w=l,t.h=s,n.horizontal?{same:c,other:d}:{same:d,other:c}}function handleMaxPadding(t){const e=t.maxPadding;function n(n){const a=Math.max(e[n]-t[n],0);return t[n]+=a,a}t.y+=n("top"),t.x+=n("left"),n("right"),n("bottom")}function getMargins(t,e){const n=e.maxPadding;function a(t){const a={left:0,top:0,right:0,bottom:0};return t.forEach((t=>{a[t]=Math.max(e[t],n[t])})),a}return a(t?["left","right"]:["top","bottom"])}function fitBoxes(t,e,n,a){const o=[];let i,r,l,s,c,d;for(i=0,r=t.length,c=0;i{"function"==typeof t.beforeLayout&&t.beforeLayout()}));const d=s.reduce(((t,e)=>e.box.options&&!1===e.box.options.display?t:t+1),0)||1,p=Object.freeze({outerWidth:e,outerHeight:n,padding:o,availableWidth:i,availableHeight:r,vBoxMaxWidth:i/2/d,hBoxMaxHeight:r/2}),u=Object.assign({},o);updateMaxPadding(u,toPadding(a));const h=Object.assign({maxPadding:u,w:i,h:r,x:o.left,y:o.top},o),m=setLayoutDims(s.concat(c),p);fitBoxes(l.fullSize,h,p,m),fitBoxes(s,h,p,m),fitBoxes(c,h,p,m)&&fitBoxes(s,h,p,m),handleMaxPadding(h),placeBoxes(l.leftAndTop,h,p,m),h.x+=h.w,h.y+=h.h,placeBoxes(l.rightAndBottom,h,p,m),t.chartArea={left:h.left,top:h.top,right:h.left+h.w,bottom:h.top+h.h,height:h.h,width:h.w},each(l.chartArea,(e=>{const n=e.box;Object.assign(n,t.chartArea),n.update(h.w,h.h,{left:0,top:0,right:0,bottom:0})}))}};class BasePlatform{acquireContext(t,e){}releaseContext(t){return!1}addEventListener(t,e,n){}removeEventListener(t,e,n){}getDevicePixelRatio(){return 1}getMaximumSize(t,e,n,a){return e=Math.max(0,e||t.width),n=n||t.height,{width:e,height:Math.max(0,a?Math.floor(e/a):n)}}isAttached(t){return!0}updateConfig(t){}}class BasicPlatform extends BasePlatform{acquireContext(t){return t&&t.getContext&&t.getContext("2d")||null}updateConfig(t){t.options.animation=!1}}const EXPANDO_KEY="$chartjs",EVENT_TYPES={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},isNullOrEmpty=t=>null===t||""===t;function initCanvas(t,e){const n=t.style,a=t.getAttribute("height"),o=t.getAttribute("width");if(t[EXPANDO_KEY]={initial:{height:a,width:o,style:{display:n.display,height:n.height,width:n.width}}},n.display=n.display||"block",n.boxSizing=n.boxSizing||"border-box",isNullOrEmpty(o)){const e=readUsedSize(t,"width");void 0!==e&&(t.width=e)}if(isNullOrEmpty(a))if(""===t.style.height)t.height=t.width/(e||2);else{const e=readUsedSize(t,"height");void 0!==e&&(t.height=e)}return t}const eventListenerOptions=!!supportsEventListenerOptions&&{passive:!0};function addListener(t,e,n){t.addEventListener(e,n,eventListenerOptions)}function removeListener(t,e,n){t.canvas.removeEventListener(e,n,eventListenerOptions)}function fromNativeEvent(t,e){const n=EVENT_TYPES[t.type]||t.type,{x:a,y:o}=getRelativePosition(t,e);return{type:n,chart:e,native:t,x:void 0!==a?a:null,y:void 0!==o?o:null}}function nodeListContains(t,e){for(const n of t)if(n===e||n.contains(e))return!0}function createAttachObserver(t,e,n){const a=t.canvas,o=new MutationObserver((t=>{let e=!1;for(const n of t)e=e||nodeListContains(n.addedNodes,a),e=e&&!nodeListContains(n.removedNodes,a);e&&n()}));return o.observe(document,{childList:!0,subtree:!0}),o}function createDetachObserver(t,e,n){const a=t.canvas,o=new MutationObserver((t=>{let e=!1;for(const n of t)e=e||nodeListContains(n.removedNodes,a),e=e&&!nodeListContains(n.addedNodes,a);e&&n()}));return o.observe(document,{childList:!0,subtree:!0}),o}const drpListeningCharts=new Map;let oldDevicePixelRatio=0;function onWindowResize(){const t=window.devicePixelRatio;t!==oldDevicePixelRatio&&(oldDevicePixelRatio=t,drpListeningCharts.forEach(((e,n)=>{n.currentDevicePixelRatio!==t&&e()})))}function listenDevicePixelRatioChanges(t,e){drpListeningCharts.size||window.addEventListener("resize",onWindowResize),drpListeningCharts.set(t,e)}function unlistenDevicePixelRatioChanges(t){drpListeningCharts.delete(t),drpListeningCharts.size||window.removeEventListener("resize",onWindowResize)}function createResizeObserver(t,e,n){const a=t.canvas,o=a&&_getParentNode(a);if(!o)return;const i=throttled(((t,e)=>{const a=o.clientWidth;n(t,e),a{const e=t[0],n=e.contentRect.width,a=e.contentRect.height;0===n&&0===a||i(n,a)}));return r.observe(o),listenDevicePixelRatioChanges(t,i),r}function releaseObserver(t,e,n){n&&n.disconnect(),"resize"===e&&unlistenDevicePixelRatioChanges(t)}function createProxyAndListen(t,e,n){const a=t.canvas,o=throttled((e=>{null!==t.ctx&&n(fromNativeEvent(e,t))}),t);return addListener(a,e,o),o}class DomPlatform extends BasePlatform{acquireContext(t,e){const n=t&&t.getContext&&t.getContext("2d");return n&&n.canvas===t?(initCanvas(t,e),n):null}releaseContext(t){const e=t.canvas;if(!e[EXPANDO_KEY])return!1;const n=e[EXPANDO_KEY].initial;["height","width"].forEach((t=>{const a=n[t];isNullOrUndef(a)?e.removeAttribute(t):e.setAttribute(t,a)}));const a=n.style||{};return Object.keys(a).forEach((t=>{e.style[t]=a[t]})),e.width=e.width,delete e[EXPANDO_KEY],!0}addEventListener(t,e,n){this.removeEventListener(t,e);const a=t.$proxies||(t.$proxies={}),o={attach:createAttachObserver,detach:createDetachObserver,resize:createResizeObserver}[e]||createProxyAndListen;a[e]=o(t,e,n)}removeEventListener(t,e){const n=t.$proxies||(t.$proxies={}),a=n[e];if(!a)return;({attach:releaseObserver,detach:releaseObserver,resize:releaseObserver}[e]||removeListener)(t,e,a),n[e]=void 0}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(t,e,n,a){return getMaximumSize(t,e,n,a)}isAttached(t){const e=_getParentNode(t);return!(!e||!e.isConnected)}}function _detectPlatform(t){return!_isDomSupported()||"undefined"!=typeof OffscreenCanvas&&t instanceof OffscreenCanvas?BasicPlatform:DomPlatform}class Element{constructor(){_defineProperty(this,"active",!1)}tooltipPosition(t){const{x:e,y:n}=this.getProps(["x","y"],t);return{x:e,y:n}}hasValue(){return isNumber(this.x)&&isNumber(this.y)}getProps(t,e){const n=this.$animations;if(!e||!n)return this;const a={};return t.forEach((t=>{a[t]=n[t]&&n[t].active()?n[t]._to:this[t]})),a}}function autoSkip(t,e){const n=t.options.ticks,a=determineMaxTicks(t),o=Math.min(n.maxTicksLimit||a,a),i=n.major.enabled?getMajorIndices(e):[],r=i.length,l=i[0],s=i[r-1],c=[];if(r>o)return skipMajors(e,c,i,r/o),c;const d=calculateSpacing(i,e,o);if(r>0){let t,n;const a=r>1?Math.round((s-l)/(r-1)):null;for(skip(e,c,d,isNullOrUndef(a)?0:l-a,l),t=0,n=r-1;to)return t}return Math.max(o,1)}function getMajorIndices(t){const e=[];let n,a;for(n=0,a=t.length;n"left"===t?"right":"right"===t?"left":t,offsetFromEdge=(t,e,n)=>"top"===e||"left"===e?t[e]+n:t[e]-n;function sample(t,e){const n=[],a=t.length/e,o=t.length;let i=0;for(;ir+l)))return c}function garbageCollect(t,e){each(t,(t=>{const n=t.gc,a=n.length/2;let o;if(a>e){for(o=0;oa?a:n,a=o&&n>a?n:a,{min:finiteOrDefault(n,finiteOrDefault(a,n)),max:finiteOrDefault(a,finiteOrDefault(n,a))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels||[]}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){callback(this.options.beforeUpdate,[this])}update(t,e,n){const{beginAtZero:a,grace:o,ticks:i}=this.options,r=i.sampleSize;this.beforeUpdate(),this.maxWidth=t,this.maxHeight=e,this._margins=n=Object.assign({left:0,right:0,top:0,bottom:0},n),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+n.left+n.right:this.height+n.top+n.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=_addGrace(this,o,a),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const l=r=o||n<=1||!this.isHorizontal())return void(this.labelRotation=a);const c=this._getLabelSizes(),d=c.widest.width,p=c.highest.height,u=_limitValue(this.chart.width-d,0,this.maxWidth);i=t.offset?this.maxWidth/n:u/(n-1),d+6>i&&(i=u/(n-(t.offset?.5:1)),r=this.maxHeight-getTickMarkLength(t.grid)-e.padding-getTitleHeight(t.title,this.chart.options.font),l=Math.sqrt(d*d+p*p),s=toDegrees(Math.min(Math.asin(_limitValue((c.highest.height+6)/i,-1,1)),Math.asin(_limitValue(r/l,-1,1))-Math.asin(_limitValue(p/l,-1,1)))),s=Math.max(a,Math.min(o,s))),this.labelRotation=s}afterCalculateLabelRotation(){callback(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){callback(this.options.beforeFit,[this])}fit(){const t={width:0,height:0},{chart:e,options:{ticks:n,title:a,grid:o}}=this,i=this._isVisible(),r=this.isHorizontal();if(i){const i=getTitleHeight(a,e.options.font);if(r?(t.width=this.maxWidth,t.height=getTickMarkLength(o)+i):(t.height=this.maxHeight,t.width=getTickMarkLength(o)+i),n.display&&this.ticks.length){const{first:e,last:a,widest:o,highest:i}=this._getLabelSizes(),l=2*n.padding,s=toRadians(this.labelRotation),c=Math.cos(s),d=Math.sin(s);if(r){const e=n.mirror?0:d*o.width+c*i.height;t.height=Math.min(this.maxHeight,t.height+e+l)}else{const e=n.mirror?0:c*o.width+d*i.height;t.width=Math.min(this.maxWidth,t.width+e+l)}this._calculatePadding(e,a,d,c)}}this._handleMargins(),r?(this.width=this._length=e.width-this._margins.left-this._margins.right,this.height=t.height):(this.width=t.width,this.height=this._length=e.height-this._margins.top-this._margins.bottom)}_calculatePadding(t,e,n,a){const{ticks:{align:o,padding:i},position:r}=this.options,l=0!==this.labelRotation,s="top"!==r&&"x"===this.axis;if(this.isHorizontal()){const r=this.getPixelForTick(0)-this.left,c=this.right-this.getPixelForTick(this.ticks.length-1);let d=0,p=0;l?s?(d=a*t.width,p=n*e.height):(d=n*t.height,p=a*e.width):"start"===o?p=e.width:"end"===o?d=t.width:"inner"!==o&&(d=t.width/2,p=e.width/2),this.paddingLeft=Math.max((d-r+i)*this.width/(this.width-r),0),this.paddingRight=Math.max((p-c+i)*this.width/(this.width-c),0)}else{let n=e.height/2,a=t.height/2;"start"===o?(n=0,a=t.height):"end"===o&&(n=e.height,a=0),this.paddingTop=n+i,this.paddingBottom=a+i}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){callback(this.options.afterFit,[this])}isHorizontal(){const{axis:t,position:e}=this.options;return"top"===e||"bottom"===e||"x"===t}isFullSize(){return this.options.fullSize}_convertTicksToLabels(t){let e,n;for(this.beforeTickToLabelConversion(),this.generateTickLabels(t),e=0,n=t.length;e({width:o[t]||0,height:i[t]||0});return{first:y(0),last:y(e-1),widest:y(v),highest:y(w),widths:o,heights:i}}getLabelForValue(t){return t}getPixelForValue(t,e){return NaN}getValueForPixel(t){}getPixelForTick(t){const e=this.ticks;return t<0||t>e.length-1?null:this.getPixelForValue(e[t].value)}getPixelForDecimal(t){this._reversePixels&&(t=1-t);const e=this._startPixel+t*this._length;return _int16Range(this._alignToPixels?_alignPixel(this.chart,e,0):e)}getDecimalForPixel(t){const e=(t-this._startPixel)/this._length;return this._reversePixels?1-e:e}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:t,max:e}=this;return t<0&&e<0?e:t>0&&e>0?t:0}getContext(t){const e=this.ticks||[];if(t>=0&&tr*a?r/n:l/a:l*a0}_computeGridLineItems(t){const e=this.axis,n=this.chart,a=this.options,{grid:o,position:i,border:r}=a,l=o.offset,s=this.isHorizontal(),c=this.ticks.length+(l?1:0),d=getTickMarkLength(o),p=[],u=r.setContext(this.getContext()),h=u.display?u.width:0,m=h/2,g=function(t){return _alignPixel(n,t,h)};let b,f,x,v,w,y,k,_,z,S,M,C;if("top"===i)b=g(this.bottom),y=this.bottom-d,_=b-m,S=g(t.top)+m,C=t.bottom;else if("bottom"===i)b=g(this.top),S=t.top,C=g(t.bottom)-m,y=b+m,_=this.top+d;else if("left"===i)b=g(this.right),w=this.right-d,k=b-m,z=g(t.left)+m,M=t.right;else if("right"===i)b=g(this.left),z=t.left,M=g(t.right)-m,w=b+m,k=this.left+d;else if("x"===e){if("center"===i)b=g((t.top+t.bottom)/2+.5);else if(isObject(i)){const t=Object.keys(i)[0],e=i[t];b=g(this.chart.scales[t].getPixelForValue(e))}S=t.top,C=t.bottom,y=b+m,_=y+d}else if("y"===e){if("center"===i)b=g((t.left+t.right)/2);else if(isObject(i)){const t=Object.keys(i)[0],e=i[t];b=g(this.chart.scales[t].getPixelForValue(e))}w=b-m,k=w-d,z=t.left,M=t.right}const B=valueOrDefault(a.ticks.maxTicksLimit,c),D=Math.max(1,Math.ceil(c/B));for(f=0;fe.value===t));if(n>=0){return e.setContext(this.getContext(n)).lineWidth}return 0}drawGrid(t){const e=this.options.grid,n=this.ctx,a=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(t));let o,i;const r=(t,e,a)=>{a.width&&a.color&&(n.save(),n.lineWidth=a.width,n.strokeStyle=a.color,n.setLineDash(a.borderDash||[]),n.lineDashOffset=a.borderDashOffset,n.beginPath(),n.moveTo(t.x,t.y),n.lineTo(e.x,e.y),n.stroke(),n.restore())};if(e.display)for(o=0,i=a.length;o{this.drawBackground(),this.drawGrid(t),this.drawTitle()}},{z:a,draw:()=>{this.drawBorder()}},{z:e,draw:t=>{this.drawLabels(t)}}]:[{z:e,draw:t=>{this.draw(t)}}]}getMatchingVisibleMetas(t){const e=this.chart.getSortedVisibleDatasetMetas(),n=this.axis+"AxisID",a=[];let o,i;for(o=0,i=e.length;o{const a=n.split("."),o=a.pop(),i=[t].concat(a).join("."),r=e[n].split("."),l=r.pop(),s=r.join(".");defaults.route(i,o,s,l)}))}function isIChartComponent(t){return"id"in t&&"defaults"in t}class Registry{constructor(){this.controllers=new TypedRegistry(DatasetController,"datasets",!0),this.elements=new TypedRegistry(Element,"elements"),this.plugins=new TypedRegistry(Object,"plugins"),this.scales=new TypedRegistry(Scale,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...t){this._each("register",t)}remove(...t){this._each("unregister",t)}addControllers(...t){this._each("register",t,this.controllers)}addElements(...t){this._each("register",t,this.elements)}addPlugins(...t){this._each("register",t,this.plugins)}addScales(...t){this._each("register",t,this.scales)}getController(t){return this._get(t,this.controllers,"controller")}getElement(t){return this._get(t,this.elements,"element")}getPlugin(t){return this._get(t,this.plugins,"plugin")}getScale(t){return this._get(t,this.scales,"scale")}removeControllers(...t){this._each("unregister",t,this.controllers)}removeElements(...t){this._each("unregister",t,this.elements)}removePlugins(...t){this._each("unregister",t,this.plugins)}removeScales(...t){this._each("unregister",t,this.scales)}_each(t,e,n){[...e].forEach((e=>{const a=n||this._getRegistryForType(e);n||a.isForType(e)||a===this.plugins&&e.id?this._exec(t,a,e):each(e,(e=>{const a=n||this._getRegistryForType(e);this._exec(t,a,e)}))}))}_exec(t,e,n){const a=_capitalize(t);callback(n["before"+a],[],n),e[t](n),callback(n["after"+a],[],n)}_getRegistryForType(t){for(let e=0;et.filter((t=>!e.some((e=>t.plugin.id===e.plugin.id))));this._notify(a(e,n),t,"stop"),this._notify(a(n,e),t,"start")}}function allPlugins(t){const e={},n=[],a=Object.keys(registry.plugins.items);for(let i=0;i1&&determineAxis(t[0].toLowerCase(),e))return t;throw new Error(`Cannot determine type of '${name}' axis. Please provide 'axis' or 'position' option.`)}function mergeScaleConfig(t,e){const n=overrides[t.type]||{scales:{}},a=e.scales||{},o=getIndexAxis(t.type,e),i=Object.create(null);return Object.keys(a).forEach((t=>{const e=a[t];if(!isObject(e))return console.error(`Invalid scale configuration for scale: ${t}`);if(e._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${t}`);const r=determineAxis(t,e),l=getDefaultScaleIDFromAxis(r,o),s=n.scales||{};i[t]=mergeIf(Object.create(null),[{axis:r},e,s[r],s[l]])})),t.data.datasets.forEach((n=>{const o=n.type||t.type,r=n.indexAxis||getIndexAxis(o,e),l=(overrides[o]||{}).scales||{};Object.keys(l).forEach((t=>{const e=getAxisFromDefaultScaleID(t,r),o=n[e+"AxisID"]||e;i[o]=i[o]||Object.create(null),mergeIf(i[o],[{axis:e},a[o],l[t]])}))})),Object.keys(i).forEach((t=>{const e=i[t];mergeIf(e,[defaults.scales[e.type],defaults.scale])})),i}function initOptions(t){const e=t.options||(t.options={});e.plugins=valueOrDefault(e.plugins,{}),e.scales=mergeScaleConfig(t,e)}function initData(t){return(t=t||{}).datasets=t.datasets||[],t.labels=t.labels||[],t}function initConfig(t){return(t=t||{}).data=initData(t.data),initOptions(t),t}const keyCache=new Map,keysCached=new Set;function cachedKeys(t,e){let n=keyCache.get(t);return n||(n=e(),keyCache.set(t,n),keysCached.add(n)),n}const addIfFound=(t,e,n)=>{const a=resolveObjectKey(e,n);void 0!==a&&t.add(a)};class Config{constructor(t){this._config=initConfig(t),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(t){this._config.type=t}get data(){return this._config.data}set data(t){this._config.data=initData(t)}get options(){return this._config.options}set options(t){this._config.options=t}get plugins(){return this._config.plugins}update(){const t=this._config;this.clearCache(),initOptions(t)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(t){return cachedKeys(t,(()=>[[`datasets.${t}`,""]]))}datasetAnimationScopeKeys(t,e){return cachedKeys(`${t}.transition.${e}`,(()=>[[`datasets.${t}.transitions.${e}`,`transitions.${e}`],[`datasets.${t}`,""]]))}datasetElementScopeKeys(t,e){return cachedKeys(`${t}-${e}`,(()=>[[`datasets.${t}.elements.${e}`,`datasets.${t}`,`elements.${e}`,""]]))}pluginScopeKeys(t){const e=t.id;return cachedKeys(`${this.type}-plugin-${e}`,(()=>[[`plugins.${e}`,...t.additionalOptionScopes||[]]]))}_cachedScopes(t,e){const n=this._scopeCache;let a=n.get(t);return a&&!e||(a=new Map,n.set(t,a)),a}getOptionScopes(t,e,n){const{options:a,type:o}=this,i=this._cachedScopes(t,n),r=i.get(e);if(r)return r;const l=new Set;e.forEach((e=>{t&&(l.add(t),e.forEach((e=>addIfFound(l,t,e)))),e.forEach((t=>addIfFound(l,a,t))),e.forEach((t=>addIfFound(l,overrides[o]||{},t))),e.forEach((t=>addIfFound(l,defaults,t))),e.forEach((t=>addIfFound(l,descriptors,t)))}));const s=Array.from(l);return 0===s.length&&s.push(Object.create(null)),keysCached.has(e)&&i.set(e,s),s}chartOptionScopes(){const{options:t,type:e}=this;return[t,overrides[e]||{},defaults.datasets[e]||{},{type:e},defaults,descriptors]}resolveNamedOptions(t,e,n,a=[""]){const o={$shared:!0},{resolver:i,subPrefixes:r}=getResolver(this._resolverCache,t,a);let l=i;if(needContext(i,e)){o.$shared=!1;l=_attachContext(i,n=isFunction(n)?n():n,this.createResolver(t,n,r))}for(const s of e)o[s]=l[s];return o}createResolver(t,e,n=[""],a){const{resolver:o}=getResolver(this._resolverCache,t,n);return isObject(e)?_attachContext(o,e,void 0,a):o}}function getResolver(t,e,n){let a=t.get(e);a||(a=new Map,t.set(e,a));const o=n.join();let i=a.get(o);if(!i){i={resolver:_createResolver(e,n),subPrefixes:n.filter((t=>!t.toLowerCase().includes("hover")))},a.set(o,i)}return i}const hasFunction=t=>isObject(t)&&Object.getOwnPropertyNames(t).reduce(((e,n)=>e||isFunction(t[n])),!1);function needContext(t,e){const{isScriptable:n,isIndexable:a}=_descriptors(t);for(const o of e){const e=n(o),i=a(o),r=(i||e)&&t[o];if(e&&(isFunction(r)||hasFunction(r))||i&&isArray(r))return!0}return!1}var version="4.0.1";const KNOWN_POSITIONS=["top","bottom","left","right","chartArea"];function positionIsHorizontal(t,e){return"top"===t||"bottom"===t||-1===KNOWN_POSITIONS.indexOf(t)&&"x"===e}function compare2Level(t,e){return function(n,a){return n[t]===a[t]?n[e]-a[e]:n[t]-a[t]}}function onAnimationsComplete(t){const e=t.chart,n=e.options.animation;e.notifyPlugins("afterRender"),callback(n&&n.onComplete,[t],e)}function onAnimationProgress(t){const e=t.chart,n=e.options.animation;callback(n&&n.onProgress,[t],e)}function getCanvas(t){return _isDomSupported()&&"string"==typeof t?t=document.getElementById(t):t&&t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas),t}const instances={},getChart=t=>{const e=getCanvas(t);return Object.values(instances).filter((t=>t.canvas===e)).pop()};function moveNumericKeys(t,e,n){const a=Object.keys(t);for(const o of a){const a=+o;if(a>=e){const i=t[o];delete t[o],(n>0||a>e)&&(t[a+n]=i)}}}function determineLastEvent(t,e,n,a){return n&&"mouseout"!==t.type?a?e:t:null}function getDatasetArea(t){const{xScale:e,yScale:n}=t;if(e&&n)return{left:e.left,right:e.right,top:n.top,bottom:n.bottom}}class Chart{static register(...t){registry.add(...t),invalidatePlugins()}static unregister(...t){registry.remove(...t),invalidatePlugins()}constructor(t,e){const n=this.config=new Config(e),a=getCanvas(t),o=getChart(a);if(o)throw new Error("Canvas is already in use. Chart with ID '"+o.id+"' must be destroyed before the canvas with ID '"+o.canvas.id+"' can be reused.");const i=n.createResolver(n.chartOptionScopes(),this.getContext());this.platform=new(n.platform||_detectPlatform(a)),this.platform.updateConfig(n);const r=this.platform.acquireContext(a,i.aspectRatio),l=r&&r.canvas,s=l&&l.height,c=l&&l.width;this.id=uid(),this.ctx=r,this.canvas=l,this.width=c,this.height=s,this._options=i,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new PluginService,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=debounce((t=>this.update(t)),i.resizeDelay||0),this._dataChanges=[],instances[this.id]=this,r&&l?(animator.listen(this,"complete",onAnimationsComplete),animator.listen(this,"progress",onAnimationProgress),this._initialize(),this.attached&&this.update()):console.error("Failed to create chart: can't acquire context from the given item")}get aspectRatio(){const{options:{aspectRatio:t,maintainAspectRatio:e},width:n,height:a,_aspectRatio:o}=this;return isNullOrUndef(t)?e&&o?o:a?n/a:null:t}get data(){return this.config.data}set data(t){this.config.data=t}get options(){return this._options}set options(t){this.config.options=t}get registry(){return registry}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():retinaScale(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return clearCanvas(this.canvas,this.ctx),this}stop(){return animator.stop(this),this}resize(t,e){animator.running(this)?this._resizeBeforeDraw={width:t,height:e}:this._resize(t,e)}_resize(t,e){const n=this.options,a=this.canvas,o=n.maintainAspectRatio&&this.aspectRatio,i=this.platform.getMaximumSize(a,t,e,o),r=n.devicePixelRatio||this.platform.getDevicePixelRatio(),l=this.width?"resize":"attach";this.width=i.width,this.height=i.height,this._aspectRatio=this.aspectRatio,retinaScale(this,r,!0)&&(this.notifyPlugins("resize",{size:i}),callback(n.onResize,[this,i],this),this.attached&&this._doResize(l)&&this.render())}ensureScalesHaveIDs(){each(this.options.scales||{},((t,e)=>{t.id=e}))}buildOrUpdateScales(){const t=this.options,e=t.scales,n=this.scales,a=Object.keys(n).reduce(((t,e)=>(t[e]=!1,t)),{});let o=[];e&&(o=o.concat(Object.keys(e).map((t=>{const n=e[t],a=determineAxis(t,n),o="r"===a,i="x"===a;return{options:n,dposition:o?"chartArea":i?"bottom":"left",dtype:o?"radialLinear":i?"category":"linear"}})))),each(o,(e=>{const o=e.options,i=o.id,r=determineAxis(i,o),l=valueOrDefault(o.type,e.dtype);void 0!==o.position&&positionIsHorizontal(o.position,r)===positionIsHorizontal(e.dposition)||(o.position=e.dposition),a[i]=!0;let s=null;if(i in n&&n[i].type===l)s=n[i];else{s=new(registry.getScale(l))({id:i,type:l,ctx:this.ctx,chart:this}),n[s.id]=s}s.init(o,t)})),each(a,((t,e)=>{t||delete n[e]})),each(n,(t=>{layouts.configure(this,t,t.options),layouts.addBox(this,t)}))}_updateMetasets(){const t=this._metasets,e=this.data.datasets.length,n=t.length;if(t.sort(((t,e)=>t.index-e.index)),n>e){for(let t=e;te.length&&delete this._stacks,t.forEach(((t,n)=>{0===e.filter((e=>e===t._dataset)).length&&this._destroyDatasetMeta(n)}))}buildOrUpdateControllers(){const t=[],e=this.data.datasets;let n,a;for(this._removeUnreferencedMetasets(),n=0,a=e.length;n{this.getDatasetMeta(e).controller.reset()}),this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(t){const e=this.config;e.update();const n=this._options=e.createResolver(e.chartOptionScopes(),this.getContext()),a=this._animationsDisabled=!n.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),!1===this.notifyPlugins("beforeUpdate",{mode:t,cancelable:!0}))return;const o=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let i=0;for(let s=0,c=this.data.datasets.length;s{t.reset()})),this._updateDatasets(t),this.notifyPlugins("afterUpdate",{mode:t}),this._layers.sort(compare2Level("z","_idx"));const{_active:r,_lastEvent:l}=this;l?this._eventHandler(l,!0):r.length&&this._updateHoverStyles(r,r,!0),this.render()}_updateScales(){each(this.scales,(t=>{layouts.removeBox(this,t)})),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const t=this.options,e=new Set(Object.keys(this._listeners)),n=new Set(t.events);setsEqual(e,n)&&!!this._responsiveListeners===t.responsive||(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:t}=this,e=this._getUniformDataChanges()||[];for(const{method:n,start:a,count:o}of e){moveNumericKeys(t,a,"_removeElements"===n?-o:o)}}_getUniformDataChanges(){const t=this._dataChanges;if(!t||!t.length)return;this._dataChanges=[];const e=this.data.datasets.length,n=e=>new Set(t.filter((t=>t[0]===e)).map(((t,e)=>e+","+t.splice(1).join(",")))),a=n(0);for(let o=1;ot.split(","))).map((t=>({method:t[1],start:+t[2],count:+t[3]})))}_updateLayout(t){if(!1===this.notifyPlugins("beforeLayout",{cancelable:!0}))return;layouts.update(this,this.width,this.height,t);const e=this.chartArea,n=e.width<=0||e.height<=0;this._layers=[],each(this.boxes,(t=>{n&&"chartArea"===t.position||(t.configure&&t.configure(),this._layers.push(...t._layers()))}),this),this._layers.forEach(((t,e)=>{t._idx=e})),this.notifyPlugins("afterLayout")}_updateDatasets(t){if(!1!==this.notifyPlugins("beforeDatasetsUpdate",{mode:t,cancelable:!0})){for(let t=0,e=this.data.datasets.length;t=0;--e)this._drawDataset(t[e]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(t){const e=this.ctx,n=t._clip,a=!n.disabled,o=getDatasetArea(t)||this.chartArea,i={meta:t,index:t.index,cancelable:!0};!1!==this.notifyPlugins("beforeDatasetDraw",i)&&(a&&clipArea(e,{left:!1===n.left?0:o.left-n.left,right:!1===n.right?this.width:o.right+n.right,top:!1===n.top?0:o.top-n.top,bottom:!1===n.bottom?this.height:o.bottom+n.bottom}),t.controller.draw(),a&&unclipArea(e),i.cancelable=!1,this.notifyPlugins("afterDatasetDraw",i))}isPointInArea(t){return _isPointInArea(t,this.chartArea,this._minPadding)}getElementsAtEventForMode(t,e,n,a){const o=Interaction.modes[e];return"function"==typeof o?o(this,t,n,a):[]}getDatasetMeta(t){const e=this.data.datasets[t],n=this._metasets;let a=n.filter((t=>t&&t._dataset===e)).pop();return a||(a={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:e&&e.order||0,index:t,_dataset:e,_parsed:[],_sorted:!1},n.push(a)),a}getContext(){return this.$context||(this.$context=createContext(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(t){const e=this.data.datasets[t];if(!e)return!1;const n=this.getDatasetMeta(t);return"boolean"==typeof n.hidden?!n.hidden:!e.hidden}setDatasetVisibility(t,e){this.getDatasetMeta(t).hidden=!e}toggleDataVisibility(t){this._hiddenIndices[t]=!this._hiddenIndices[t]}getDataVisibility(t){return!this._hiddenIndices[t]}_updateVisibility(t,e,n){const a=n?"show":"hide",o=this.getDatasetMeta(t),i=o.controller._resolveAnimations(void 0,a);defined(e)?(o.data[e].hidden=!n,this.update()):(this.setDatasetVisibility(t,n),i.update(o,{visible:n}),this.update((e=>e.datasetIndex===t?a:void 0)))}hide(t,e){this._updateVisibility(t,e,!1)}show(t,e){this._updateVisibility(t,e,!0)}_destroyDatasetMeta(t){const e=this._metasets[t];e&&e.controller&&e.controller._destroy(),delete this._metasets[t]}_stop(){let t,e;for(this.stop(),animator.remove(this),t=0,e=this.data.datasets.length;t{e.addEventListener(this,n,a),t[n]=a},a=(t,e,n)=>{t.offsetX=e,t.offsetY=n,this._eventHandler(t)};each(this.options.events,(t=>n(t,a)))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const t=this._responsiveListeners,e=this.platform,n=(n,a)=>{e.addEventListener(this,n,a),t[n]=a},a=(n,a)=>{t[n]&&(e.removeEventListener(this,n,a),delete t[n])},o=(t,e)=>{this.canvas&&this.resize(t,e)};let i;const r=()=>{a("attach",r),this.attached=!0,this.resize(),n("resize",o),n("detach",i)};i=()=>{this.attached=!1,a("resize",o),this._stop(),this._resize(0,0),n("attach",r)},e.isAttached(this.canvas)?r():i()}unbindEvents(){each(this._listeners,((t,e)=>{this.platform.removeEventListener(this,e,t)})),this._listeners={},each(this._responsiveListeners,((t,e)=>{this.platform.removeEventListener(this,e,t)})),this._responsiveListeners=void 0}updateHoverStyle(t,e,n){const a=n?"set":"remove";let o,i,r,l;for("dataset"===e&&(o=this.getDatasetMeta(t[0].datasetIndex),o.controller["_"+a+"DatasetHoverStyle"]()),r=0,l=t.length;r{const n=this.getDatasetMeta(t);if(!n)throw new Error("No dataset found at index "+t);return{datasetIndex:t,element:n.data[e],index:e}}));!_elementsEqual(n,e)&&(this._active=n,this._lastEvent=null,this._updateHoverStyles(n,e))}notifyPlugins(t,e,n){return this._plugins.notify(this,t,e,n)}isPluginEnabled(t){return 1===this._plugins._cache.filter((e=>e.plugin.id===t)).length}_updateHoverStyles(t,e,n){const a=this.options.hover,o=(t,e)=>t.filter((t=>!e.some((e=>t.datasetIndex===e.datasetIndex&&t.index===e.index)))),i=o(e,t),r=n?t:o(t,e);i.length&&this.updateHoverStyle(i,a.mode,!1),r.length&&a.mode&&this.updateHoverStyle(r,a.mode,!0)}_eventHandler(t,e){const n={event:t,replay:e,cancelable:!0,inChartArea:this.isPointInArea(t)},a=e=>(e.options.events||this.options.events).includes(t.native.type);if(!1===this.notifyPlugins("beforeEvent",n,a))return;const o=this._handleEvent(t,e,n.inChartArea);return n.cancelable=!1,this.notifyPlugins("afterEvent",n,a),(o||n.changed)&&this.render(),this}_handleEvent(t,e,n){const{_active:a=[],options:o}=this,i=e,r=this._getActiveElements(t,a,n,i),l=_isClickEvent(t),s=determineLastEvent(t,this._lastEvent,n,l);n&&(this._lastEvent=null,callback(o.onHover,[t,r,this],this),l&&callback(o.onClick,[t,r,this],this));const c=!_elementsEqual(r,a);return(c||e)&&(this._active=r,this._updateHoverStyles(r,a,e)),this._lastEvent=s,c}_getActiveElements(t,e,n,a){if("mouseout"===t.type)return[];if(!n)return e;const o=this.options.hover;return this.getElementsAtEventForMode(t,o.mode,o,a)}}function invalidatePlugins(){return each(Chart.instances,(t=>t._plugins.invalidate()))}_defineProperty(Chart,"defaults",defaults),_defineProperty(Chart,"instances",instances),_defineProperty(Chart,"overrides",overrides),_defineProperty(Chart,"registry",registry),_defineProperty(Chart,"version",version),_defineProperty(Chart,"getChart",getChart);var Chart$1=Chart;function clipArc(t,e,n){const{startAngle:a,pixelMargin:o,x:i,y:r,outerRadius:l,innerRadius:s}=e;let c=o/l;t.beginPath(),t.arc(i,r,l,a-c,n+c),s>o?(c=o/s,t.arc(i,r,s,n+c,a-c,!0)):t.arc(i,r,o,n+HALF_PI,a-HALF_PI),t.closePath(),t.clip()}function toRadiusCorners(t){return _readValueToProps(t,["outerStart","outerEnd","innerStart","innerEnd"])}function parseBorderRadius$1(t,e,n,a){const o=toRadiusCorners(t.options.borderRadius),i=(n-e)/2,r=Math.min(i,a*e/2),l=t=>{const e=(n-Math.min(i,t))*a/2;return _limitValue(t,0,Math.min(i,e))};return{outerStart:l(o.outerStart),outerEnd:l(o.outerEnd),innerStart:_limitValue(o.innerStart,0,r),innerEnd:_limitValue(o.innerEnd,0,r)}}function rThetaToXY(t,e,n,a){return{x:n+t*Math.cos(e),y:a+t*Math.sin(e)}}function pathArc(t,e,n,a,o,i){const{x:r,y:l,startAngle:s,pixelMargin:c,innerRadius:d}=e,p=Math.max(e.outerRadius+a+n-c,0),u=d>0?d+a+n+c:0;let h=0;const m=o-s;if(a){const t=((d>0?d-a:0)+(p>0?p-a:0))/2;h=(m-(0!==t?m*t/(t+a):m))/2}const g=(m-Math.max(.001,m*p-n/PI)/p)/2,b=s+g+h,f=o-g-h,{outerStart:x,outerEnd:v,innerStart:w,innerEnd:y}=parseBorderRadius$1(e,u,p,f-b),k=p-x,_=p-v,z=b+x/k,S=f-v/_,M=u+w,C=u+y,B=b+w/M,D=f-y/C;if(t.beginPath(),i){const e=(z+S)/2;if(t.arc(r,l,p,z,e),t.arc(r,l,p,e,S),v>0){const e=rThetaToXY(_,S,r,l);t.arc(e.x,e.y,v,S,f+HALF_PI)}const n=rThetaToXY(C,f,r,l);if(t.lineTo(n.x,n.y),y>0){const e=rThetaToXY(C,D,r,l);t.arc(e.x,e.y,y,f+HALF_PI,D+Math.PI)}const a=(f-y/u+(b+w/u))/2;if(t.arc(r,l,u,f-y/u,a,!0),t.arc(r,l,u,a,b+w/u,!0),w>0){const e=rThetaToXY(M,B,r,l);t.arc(e.x,e.y,w,B+Math.PI,b-HALF_PI)}const o=rThetaToXY(k,b,r,l);if(t.lineTo(o.x,o.y),x>0){const e=rThetaToXY(k,z,r,l);t.arc(e.x,e.y,x,b-HALF_PI,z)}}else{t.moveTo(r,l);const e=Math.cos(z)*p+r,n=Math.sin(z)*p+l;t.lineTo(e,n);const a=Math.cos(S)*p+r,o=Math.sin(S)*p+l;t.lineTo(a,o)}t.closePath()}function drawArc(t,e,n,a,o){const{fullCircles:i,startAngle:r,circumference:l}=e;let s=e.endAngle;if(i){pathArc(t,e,n,a,s,o);for(let e=0;e=TAU||_angleBetween(o,r,l),h=_isBetween(i,s+p,c+p);return u&&h}getCenterPoint(t){const{x:e,y:n,startAngle:a,endAngle:o,innerRadius:i,outerRadius:r}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius","circumference"],t),{offset:l,spacing:s}=this.options,c=(a+o)/2,d=(i+r+s+l)/2;return{x:e+Math.cos(c)*d,y:n+Math.sin(c)*d}}tooltipPosition(t){return this.getCenterPoint(t)}draw(t){const{options:e,circumference:n}=this,a=(e.offset||0)/4,o=(e.spacing||0)/2,i=e.circular;if(this.pixelMargin="inner"===e.borderAlign?.33:0,this.fullCircles=n>TAU?Math.floor(n/TAU):0,0===n||this.innerRadius<0||this.outerRadius<0)return;t.save();const r=(this.startAngle+this.endAngle)/2;t.translate(Math.cos(r)*a,Math.sin(r)*a);const l=a*(1-Math.sin(Math.min(PI,n||0)));t.fillStyle=e.backgroundColor,t.strokeStyle=e.borderColor,drawArc(t,this,l,o,i),drawBorder(t,this,l,o,i),t.restore()}}function setStyle(t,e,n=e){t.lineCap=valueOrDefault(n.borderCapStyle,e.borderCapStyle),t.setLineDash(valueOrDefault(n.borderDash,e.borderDash)),t.lineDashOffset=valueOrDefault(n.borderDashOffset,e.borderDashOffset),t.lineJoin=valueOrDefault(n.borderJoinStyle,e.borderJoinStyle),t.lineWidth=valueOrDefault(n.borderWidth,e.borderWidth),t.strokeStyle=valueOrDefault(n.borderColor,e.borderColor)}function lineTo(t,e,n){t.lineTo(n.x,n.y)}function getLineMethod(t){return t.stepped?_steppedLineTo:t.tension||"monotone"===t.cubicInterpolationMode?_bezierCurveTo:lineTo}function pathVars(t,e,n={}){const a=t.length,{start:o=0,end:i=a-1}=n,{start:r,end:l}=e,s=Math.max(o,r),c=Math.min(i,l),d=ol&&i>l;return{count:a,start:s,loop:e.loop,ilen:c(r+(c?l-t:t))%i,v=()=>{h!==m&&(t.lineTo(b,m),t.lineTo(b,h),t.lineTo(b,g))};for(s&&(p=o[x(0)],t.moveTo(p.x,p.y)),d=0;d<=l;++d){if(p=o[x(d)],p.skip)continue;const e=p.x,n=p.y,a=0|e;a===u?(nm&&(m=n),b=(f*b+e)/++f):(v(),t.lineTo(e,n),u=a,f=0,h=m=n),g=n}v()}function _getSegmentMethod(t){const e=t.options,n=e.borderDash&&e.borderDash.length;return!(t._decimated||t._loop||e.tension||"monotone"===e.cubicInterpolationMode||e.stepped||n)?fastPathSegment:pathSegment}function _getInterpolationMethod(t){return t.stepped?_steppedInterpolation:t.tension||"monotone"===t.cubicInterpolationMode?_bezierInterpolation:_pointInLine}function strokePathWithCache(t,e,n,a){let o=e._path;o||(o=e._path=new Path2D,e.path(o,n,a)&&o.closePath()),setStyle(t,e.options),t.stroke(o)}function strokePathDirect(t,e,n,a){const{segments:o,options:i}=e,r=_getSegmentMethod(e);for(const l of o)setStyle(t,i,l.style),t.beginPath(),r(t,e,l,{start:n,end:n+a-1})&&t.closePath(),t.stroke()}_defineProperty(ArcElement,"id","arc"),_defineProperty(ArcElement,"defaults",{borderAlign:"center",borderColor:"#fff",borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0}),_defineProperty(ArcElement,"defaultRoutes",{backgroundColor:"backgroundColor"});const usePath2D="function"==typeof Path2D;function draw(t,e,n,a){usePath2D&&!e.options.segment?strokePathWithCache(t,e,n,a):strokePathDirect(t,e,n,a)}class LineElement extends Element{constructor(t){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,t&&Object.assign(this,t)}updateControlPoints(t,e){const n=this.options;if((n.tension||"monotone"===n.cubicInterpolationMode)&&!n.stepped&&!this._pointsUpdated){const a=n.spanGaps?this._loop:this._fullLoop;_updateBezierControlPoints(this._points,n,t,a,e),this._pointsUpdated=!0}}set points(t){this._points=t,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=_computeSegments(this,this.options.segment))}first(){const t=this.segments,e=this.points;return t.length&&e[t[0].start]}last(){const t=this.segments,e=this.points,n=t.length;return n&&e[t[n-1].end]}interpolate(t,e){const n=this.options,a=t[e],o=this.points,i=_boundSegments(this,{property:e,start:a,end:a});if(!i.length)return;const r=[],l=_getInterpolationMethod(n);let s,c;for(s=0,c=i.length;s"borderDash"!==t&&"fill"!==t});class PointElement extends Element{constructor(t){super(),this.options=void 0,this.parsed=void 0,this.skip=void 0,this.stop=void 0,t&&Object.assign(this,t)}inRange(t,e,n){const a=this.options,{x:o,y:i}=this.getProps(["x","y"],n);return Math.pow(t-o,2)+Math.pow(e-i,2)t.replace("rgb(","rgba(").replace(")",", 0.5)")));function getBorderColor(t){return BORDER_COLORS[t%BORDER_COLORS.length]}function getBackgroundColor(t){return BACKGROUND_COLORS[t%BACKGROUND_COLORS.length]}function createDefaultDatasetColorizer(){return(t,e)=>{t.borderColor=getBorderColor(e),t.backgroundColor=getBackgroundColor(e)}}function createDoughnutDatasetColorizer(){let t=0;return e=>{e.backgroundColor=e.data.map((()=>getBorderColor(t++)))}}function createPolarAreaDatasetColorizer(){let t=0;return e=>{e.backgroundColor=e.data.map((()=>getBackgroundColor(t++)))}}function getColorizer(t){return"doughnut"===t||"pie"===t?createDoughnutDatasetColorizer():"polarArea"===t?createPolarAreaDatasetColorizer():createDefaultDatasetColorizer()}function containsColorsDefinitions(t){let e;for(e in t)if(t[e].borderColor||t[e].backgroundColor)return!0;return!1}var plugin_colors={id:"colors",defaults:{enabled:!0},beforeLayout(t,e,n){if(!n.enabled)return;const{type:a,options:{elements:o},data:{datasets:i}}=t.config;if(containsColorsDefinitions(i)||o&&containsColorsDefinitions(o))return;const r=getColorizer(a);i.forEach(r)}};function lttbDecimation(t,e,n,a,o){const i=o.samples||a;if(i>=n)return t.slice(e,e+n);const r=[],l=(n-2)/(i-2);let s=0;const c=e+n-1;let d,p,u,h,m,g=e;for(r[s++]=t[g],d=0;du&&(u=h,p=t[a],m=a);r[s++]=p,g=m}return r[s++]=t[c],r}function minMaxDecimation(t,e,n,a){let o,i,r,l,s,c,d,p,u,h,m=0,g=0;const b=[],f=e+n-1,x=t[e].x,v=t[f].x-x;for(o=e;oh&&(h=l,d=o),m=(g*m+i.x)/++g;else{const n=o-1;if(!isNullOrUndef(c)&&!isNullOrUndef(d)){const e=Math.min(c,d),a=Math.max(c,d);e!==p&&e!==n&&b.push({...t[e],x:m}),a!==p&&a!==n&&b.push({...t[a],x:m})}o>0&&n!==p&&b.push(t[n]),b.push(i),s=e,g=0,u=h=l,c=d=p=o}}return b}function cleanDecimatedDataset(t){if(t._decimated){const e=t._data;delete t._decimated,delete t._data,Object.defineProperty(t,"data",{value:e})}}function cleanDecimatedData(t){t.data.datasets.forEach((t=>{cleanDecimatedDataset(t)}))}function getStartAndCountOfVisiblePointsSimplified(t,e){const n=e.length;let a,o=0;const{iScale:i}=t,{min:r,max:l,minDefined:s,maxDefined:c}=i.getUserBounds();return s&&(o=_limitValue(_lookupByKey(e,i.axis,r).lo,0,n-1)),a=c?_limitValue(_lookupByKey(e,i.axis,l).hi+1,o,n)-o:n-o,{start:o,count:a}}var plugin_decimation={id:"decimation",defaults:{algorithm:"min-max",enabled:!1},beforeElementsUpdate:(t,e,n)=>{if(!n.enabled)return void cleanDecimatedData(t);const a=t.width;t.data.datasets.forEach(((e,o)=>{const{_data:i,indexAxis:r}=e,l=t.getDatasetMeta(o),s=i||e.data;if("y"===resolve([r,t.options.indexAxis]))return;if(!l.controller.supportsDecimation)return;const c=t.scales[l.xAxisID];if("linear"!==c.type&&"time"!==c.type)return;if(t.options.parsing)return;let{start:d,count:p}=getStartAndCountOfVisiblePointsSimplified(l,s);if(p<=(n.threshold||4*a))return void cleanDecimatedDataset(e);let u;switch(isNullOrUndef(i)&&(e._data=s,delete e.data,Object.defineProperty(e,"data",{configurable:!0,enumerable:!0,get:function(){return this._decimated},set:function(t){this._data=t}})),n.algorithm){case"lttb":u=lttbDecimation(s,d,p,a,n);break;case"min-max":u=minMaxDecimation(s,d,p,a);break;default:throw new Error(`Unsupported decimation algorithm '${n.algorithm}'`)}e._decimated=u}))},destroy(t){cleanDecimatedData(t)}};function _segments(t,e,n){const a=t.segments,o=t.points,i=e.points,r=[];for(const l of a){let{start:t,end:a}=l;a=_findSegmentEnd(t,a,o);const s=_getBounds(n,o[t],o[a],l.loop);if(!e.segments){r.push({source:l,target:s,start:o[t],end:o[a]});continue}const c=_boundSegments(e,s);for(const e of c){const t=_getBounds(n,i[e.start],i[e.end],e.loop),a=_boundSegment(l,o,t);for(const o of a)r.push({source:o,target:e,start:{[n]:_getEdge(s,t,"start",Math.max)},end:{[n]:_getEdge(s,t,"end",Math.min)}})}}return r}function _getBounds(t,e,n,a){if(a)return;let o=e[t],i=n[t];return"angle"===t&&(o=_normalizeAngle(o),i=_normalizeAngle(i)),{property:t,start:o,end:i}}function _pointsFromSegments(t,e){const{x:n=null,y:a=null}=t||{},o=e.points,i=[];return e.segments.forEach((({start:t,end:e})=>{e=_findSegmentEnd(t,e,o);const r=o[t],l=o[e];null!==a?(i.push({x:r.x,y:a}),i.push({x:l.x,y:a})):null!==n&&(i.push({x:n,y:r.y}),i.push({x:n,y:l.y}))})),i}function _findSegmentEnd(t,e,n){for(;e>t;e--){const t=n[e];if(!isNaN(t.x)&&!isNaN(t.y))break}return e}function _getEdge(t,e,n,a){return t&&e?a(t[n],e[n]):t?t[n]:e?e[n]:0}function _createBoundaryLine(t,e){let n=[],a=!1;return isArray(t)?(a=!0,n=t):n=_pointsFromSegments(t,e),n.length?new LineElement({points:n,options:{tension:0},_loop:a,_fullLoop:a}):null}function _shouldApplyFill(t){return t&&!1!==t.fill}function _resolveTarget(t,e,n){let a=t[e].fill;const o=[e];let i;if(!n)return a;for(;!1!==a&&-1===o.indexOf(a);){if(!isNumberFinite(a))return a;if(i=t[a],!i)return!1;if(i.visible)return a;o.push(a),a=i.fill}return!1}function _decodeFill(t,e,n){const a=parseFillOption(t);if(isObject(a))return!isNaN(a.value)&&a;let o=parseFloat(a);return isNumberFinite(o)&&Math.floor(o)===o?decodeTargetIndex(a[0],e,o,n):["origin","start","end","stack","shape"].indexOf(a)>=0&&a}function decodeTargetIndex(t,e,n,a){return"-"!==t&&"+"!==t||(n=e+n),!(n===e||n<0||n>=a)&&n}function _getTargetPixel(t,e){let n=null;return"start"===t?n=e.bottom:"end"===t?n=e.top:isObject(t)?n=e.getPixelForValue(t.value):e.getBasePixel&&(n=e.getBasePixel()),n}function _getTargetValue(t,e,n){let a;return a="start"===t?n:"end"===t?e.options.reverse?e.min:e.max:isObject(t)?t.value:e.getBaseValue(),a}function parseFillOption(t){const e=t.options,n=e.fill;let a=valueOrDefault(n&&n.target,n);return void 0===a&&(a=!!e.backgroundColor),!1!==a&&null!==a&&(!0===a?"origin":a)}function _buildStackLine(t){const{scale:e,index:n,line:a}=t,o=[],i=a.segments,r=a.points,l=getLinesBelow(e,n);l.push(_createBoundaryLine({x:null,y:e.bottom},a));for(let s=0;s=0;--r){const e=o[r].$filler;e&&(e.line.updateControlPoints(i,e.axis),a&&e.fill&&_drawfill(t.ctx,e,i))}},beforeDatasetsDraw(t,e,n){if("beforeDatasetsDraw"!==n.drawTime)return;const a=t.getSortedVisibleDatasetMetas();for(let o=a.length-1;o>=0;--o){const e=a[o].$filler;_shouldApplyFill(e)&&_drawfill(t.ctx,e,t.chartArea)}},beforeDatasetDraw(t,e,n){const a=e.meta.$filler;_shouldApplyFill(a)&&"beforeDatasetDraw"===n.drawTime&&_drawfill(t.ctx,a,t.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};const getBoxSize=(t,e)=>{let{boxHeight:n=e,boxWidth:a=e}=t;return t.usePointStyle&&(n=Math.min(n,e),a=t.pointStyleWidth||Math.min(a,e)),{boxWidth:a,boxHeight:n,itemHeight:Math.max(e,n)}},itemsEqual=(t,e)=>null!==t&&null!==e&&t.datasetIndex===e.datasetIndex&&t.index===e.index;class Legend extends Element{constructor(t){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e,n){this.maxWidth=t,this.maxHeight=e,this._margins=n,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const t=this.options.labels||{};let e=callback(t.generateLabels,[this.chart],this)||[];t.filter&&(e=e.filter((e=>t.filter(e,this.chart.data)))),t.sort&&(e=e.sort(((e,n)=>t.sort(e,n,this.chart.data)))),this.options.reverse&&e.reverse(),this.legendItems=e}fit(){const{options:t,ctx:e}=this;if(!t.display)return void(this.width=this.height=0);const n=t.labels,a=toFont(n.font),o=a.size,i=this._computeTitleHeight(),{boxWidth:r,itemHeight:l}=getBoxSize(n,o);let s,c;e.font=a.string,this.isHorizontal()?(s=this.maxWidth,c=this._fitRows(i,o,r,l)+10):(c=this.maxHeight,s=this._fitCols(i,a,r,l)+10),this.width=Math.min(s,t.maxWidth||this.maxWidth),this.height=Math.min(c,t.maxHeight||this.maxHeight)}_fitRows(t,e,n,a){const{ctx:o,maxWidth:i,options:{labels:{padding:r}}}=this,l=this.legendHitBoxes=[],s=this.lineWidths=[0],c=a+r;let d=t;o.textAlign="left",o.textBaseline="middle";let p=-1,u=-c;return this.legendItems.forEach(((t,h)=>{const m=n+e/2+o.measureText(t.text).width;(0===h||s[s.length-1]+m+2*r>i)&&(d+=c,s[s.length-(h>0?0:1)]=0,u+=c,p++),l[h]={left:0,top:u,row:p,width:m,height:a},s[s.length-1]+=m+r})),d}_fitCols(t,e,n,a){const{ctx:o,maxHeight:i,options:{labels:{padding:r}}}=this,l=this.legendHitBoxes=[],s=this.columnSizes=[],c=i-t;let d=r,p=0,u=0,h=0,m=0;return this.legendItems.forEach(((t,i)=>{const{itemWidth:g,itemHeight:b}=calculateItemSize(n,e,o,t,a);i>0&&u+b+2*r>c&&(d+=p+r,s.push({width:p,height:u}),h+=p+r,m++,p=u=0),l[i]={left:h,top:u,col:m,width:g,height:b},p=Math.max(p,g),u+=b+r})),d+=p,s.push({width:p,height:u}),d}adjustHitBoxes(){if(!this.options.display)return;const t=this._computeTitleHeight(),{legendHitBoxes:e,options:{align:n,labels:{padding:a},rtl:o}}=this,i=getRtlAdapter(o,this.left,this.width);if(this.isHorizontal()){let o=0,r=_alignStartEnd(n,this.left+a,this.right-this.lineWidths[o]);for(const l of e)o!==l.row&&(o=l.row,r=_alignStartEnd(n,this.left+a,this.right-this.lineWidths[o])),l.top+=this.top+t+a,l.left=i.leftForLtr(i.x(r),l.width),r+=l.width+a}else{let o=0,r=_alignStartEnd(n,this.top+t+a,this.bottom-this.columnSizes[o].height);for(const l of e)l.col!==o&&(o=l.col,r=_alignStartEnd(n,this.top+t+a,this.bottom-this.columnSizes[o].height)),l.top=r,l.left+=this.left+a,l.left=i.leftForLtr(i.x(l.left),l.width),r+=l.height+a}}isHorizontal(){return"top"===this.options.position||"bottom"===this.options.position}draw(){if(this.options.display){const t=this.ctx;clipArea(t,this),this._draw(),unclipArea(t)}}_draw(){const{options:t,columnSizes:e,lineWidths:n,ctx:a}=this,{align:o,labels:i}=t,r=defaults.color,l=getRtlAdapter(t.rtl,this.left,this.width),s=toFont(i.font),{padding:c}=i,d=s.size,p=d/2;let u;this.drawTitle(),a.textAlign=l.textAlign("left"),a.textBaseline="middle",a.lineWidth=.5,a.font=s.string;const{boxWidth:h,boxHeight:m,itemHeight:g}=getBoxSize(i,d),b=this.isHorizontal(),f=this._computeTitleHeight();u=b?{x:_alignStartEnd(o,this.left+c,this.right-n[0]),y:this.top+c+f,line:0}:{x:this.left+c,y:_alignStartEnd(o,this.top+f+c,this.bottom-e[0].height),line:0},overrideTextDirection(this.ctx,t.textDirection);const x=g+c;this.legendItems.forEach(((v,w)=>{a.strokeStyle=v.fontColor,a.fillStyle=v.fontColor;const y=a.measureText(v.text).width,k=l.textAlign(v.textAlign||(v.textAlign=i.textAlign)),_=h+p+y;let z=u.x,S=u.y;l.setWidth(this.width),b?w>0&&z+_+c>this.right&&(S=u.y+=x,u.line++,z=u.x=_alignStartEnd(o,this.left+c,this.right-n[u.line])):w>0&&S+x>this.bottom&&(z=u.x=z+e[u.line].width+c,u.line++,S=u.y=_alignStartEnd(o,this.top+f+c,this.bottom-e[u.line].height));if(function(t,e,n){if(isNaN(h)||h<=0||isNaN(m)||m<0)return;a.save();const o=valueOrDefault(n.lineWidth,1);if(a.fillStyle=valueOrDefault(n.fillStyle,r),a.lineCap=valueOrDefault(n.lineCap,"butt"),a.lineDashOffset=valueOrDefault(n.lineDashOffset,0),a.lineJoin=valueOrDefault(n.lineJoin,"miter"),a.lineWidth=o,a.strokeStyle=valueOrDefault(n.strokeStyle,r),a.setLineDash(valueOrDefault(n.lineDash,[])),i.usePointStyle){const r={radius:m*Math.SQRT2/2,pointStyle:n.pointStyle,rotation:n.rotation,borderWidth:o},s=l.xPlus(t,h/2);drawPointLegend(a,r,s,e+p,i.pointStyleWidth&&h)}else{const i=e+Math.max((d-m)/2,0),r=l.leftForLtr(t,h),s=toTRBLCorners(n.borderRadius);a.beginPath(),Object.values(s).some((t=>0!==t))?addRoundedRectPath(a,{x:r,y:i,w:h,h:m,radius:s}):a.rect(r,i,h,m),a.fill(),0!==o&&a.stroke()}a.restore()}(l.x(z),S,v),z=_textX(k,z+h+p,b?z+_:this.right,t.rtl),function(t,e,n){renderText(a,n.text,t,e+g/2,s,{strikethrough:n.hidden,textAlign:l.textAlign(n.textAlign)})}(l.x(z),S,v),b)u.x+=_+c;else if("string"!=typeof v.text){const t=s.lineHeight;u.y+=calculateLegendItemHeight(v,t)}else u.y+=x})),restoreTextDirection(this.ctx,t.textDirection)}drawTitle(){const t=this.options,e=t.title,n=toFont(e.font),a=toPadding(e.padding);if(!e.display)return;const o=getRtlAdapter(t.rtl,this.left,this.width),i=this.ctx,r=e.position,l=n.size/2,s=a.top+l;let c,d=this.left,p=this.width;if(this.isHorizontal())p=Math.max(...this.lineWidths),c=this.top+s,d=_alignStartEnd(t.align,d,this.right-p);else{const e=this.columnSizes.reduce(((t,e)=>Math.max(t,e.height)),0);c=s+_alignStartEnd(t.align,this.top,this.bottom-e-t.labels.padding-this._computeTitleHeight())}const u=_alignStartEnd(r,d,d+p);i.textAlign=o.textAlign(_toLeftRightCenter(r)),i.textBaseline="middle",i.strokeStyle=e.color,i.fillStyle=e.color,i.font=n.string,renderText(i,e.text,u,c,n)}_computeTitleHeight(){const t=this.options.title,e=toFont(t.font),n=toPadding(t.padding);return t.display?e.lineHeight+n.height:0}_getLegendItemAt(t,e){let n,a,o;if(_isBetween(t,this.left,this.right)&&_isBetween(e,this.top,this.bottom))for(o=this.legendHitBoxes,n=0;nt.length>e.length?t:e))),e+n.size/2+a.measureText(o).width}function calculateItemHeight(t,e,n){let a=t;return"string"!=typeof e.text&&(a=calculateLegendItemHeight(e,n)),a}function calculateLegendItemHeight(t,e){return e*(t.text?t.text.length+.5:0)}function isListened(t,e){return!("mousemove"!==t&&"mouseout"!==t||!e.onHover&&!e.onLeave)||!(!e.onClick||"click"!==t&&"mouseup"!==t)}var plugin_legend={id:"legend",_element:Legend,start(t,e,n){const a=t.legend=new Legend({ctx:t.ctx,options:n,chart:t});layouts.configure(t,a,n),layouts.addBox(t,a)},stop(t){layouts.removeBox(t,t.legend),delete t.legend},beforeUpdate(t,e,n){const a=t.legend;layouts.configure(t,a,n),a.options=n},afterUpdate(t){const e=t.legend;e.buildLabels(),e.adjustHitBoxes()},afterEvent(t,e){e.replay||t.legend.handleEvent(e.event)},defaults:{display:!0,position:"top",align:"center",fullSize:!0,reverse:!1,weight:1e3,onClick(t,e,n){const a=e.datasetIndex,o=n.chart;o.isDatasetVisible(a)?(o.hide(a),e.hidden=!0):(o.show(a),e.hidden=!1)},onHover:null,onLeave:null,labels:{color:t=>t.chart.options.color,boxWidth:40,padding:10,generateLabels(t){const e=t.data.datasets,{labels:{usePointStyle:n,pointStyle:a,textAlign:o,color:i,useBorderRadius:r,borderRadius:l}}=t.legend.options;return t._getSortedDatasetMetas().map((t=>{const s=t.controller.getStyle(n?0:void 0),c=toPadding(s.borderWidth);return{text:e[t.index].label,fillStyle:s.backgroundColor,fontColor:i,hidden:!t.visible,lineCap:s.borderCapStyle,lineDash:s.borderDash,lineDashOffset:s.borderDashOffset,lineJoin:s.borderJoinStyle,lineWidth:(c.width+c.height)/4,strokeStyle:s.borderColor,pointStyle:a||s.pointStyle,rotation:s.rotation,textAlign:o||s.textAlign,borderRadius:r&&(l||s.borderRadius),datasetIndex:t.index}}),this)}},title:{color:t=>t.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:t=>!t.startsWith("on"),labels:{_scriptable:t=>!["generateLabels","filter","sort"].includes(t)}}};class Title extends Element{constructor(t){super(),this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e){const n=this.options;if(this.left=0,this.top=0,!n.display)return void(this.width=this.height=this.right=this.bottom=0);this.width=this.right=t,this.height=this.bottom=e;const a=isArray(n.text)?n.text.length:1;this._padding=toPadding(n.padding);const o=a*toFont(n.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=o:this.width=o}isHorizontal(){const t=this.options.position;return"top"===t||"bottom"===t}_drawArgs(t){const{top:e,left:n,bottom:a,right:o,options:i}=this,r=i.align;let l,s,c,d=0;return this.isHorizontal()?(s=_alignStartEnd(r,n,o),c=e+t,l=o-n):("left"===i.position?(s=n+t,c=_alignStartEnd(r,a,e),d=-.5*PI):(s=o-t,c=_alignStartEnd(r,e,a),d=.5*PI),l=a-e),{titleX:s,titleY:c,maxWidth:l,rotation:d}}draw(){const t=this.ctx,e=this.options;if(!e.display)return;const n=toFont(e.font),a=n.lineHeight/2+this._padding.top,{titleX:o,titleY:i,maxWidth:r,rotation:l}=this._drawArgs(a);renderText(t,e.text,0,0,n,{color:e.color,maxWidth:r,rotation:l,textAlign:_toLeftRightCenter(e.align),textBaseline:"middle",translation:[o,i]})}}function createTitle(t,e){const n=new Title({ctx:t.ctx,options:e,chart:t});layouts.configure(t,n,e),layouts.addBox(t,n),t.titleBlock=n}var plugin_title={id:"title",_element:Title,start(t,e,n){createTitle(t,n)},stop(t){const e=t.titleBlock;layouts.removeBox(t,e),delete t.titleBlock},beforeUpdate(t,e,n){const a=t.titleBlock;layouts.configure(t,a,n),a.options=n},defaults:{align:"center",display:!1,font:{weight:"bold"},fullSize:!0,padding:10,position:"top",text:"",weight:2e3},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const map=new WeakMap;var plugin_subtitle={id:"subtitle",start(t,e,n){const a=new Title({ctx:t.ctx,options:n,chart:t});layouts.configure(t,a,n),layouts.addBox(t,a),map.set(t,a)},stop(t){layouts.removeBox(t,map.get(t)),map.delete(t)},beforeUpdate(t,e,n){const a=map.get(t);layouts.configure(t,a,n),a.options=n},defaults:{align:"center",display:!1,font:{weight:"normal"},fullSize:!0,padding:0,position:"top",text:"",weight:1500},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const positioners={average(t){if(!t.length)return!1;let e,n,a=0,o=0,i=0;for(e=0,n=t.length;e-1?t.split("\n"):t}function createTooltipItem(t,e){const{element:n,datasetIndex:a,index:o}=e,i=t.getDatasetMeta(a).controller,{label:r,value:l}=i.getLabelAndValue(o);return{chart:t,label:r,parsed:i.getParsed(o),raw:t.data.datasets[a].data[o],formattedValue:l,dataset:i.getDataset(),dataIndex:o,datasetIndex:a,element:n}}function getTooltipSize(t,e){const n=t.chart.ctx,{body:a,footer:o,title:i}=t,{boxWidth:r,boxHeight:l}=e,s=toFont(e.bodyFont),c=toFont(e.titleFont),d=toFont(e.footerFont),p=i.length,u=o.length,h=a.length,m=toPadding(e.padding);let g=m.height,b=0,f=a.reduce(((t,e)=>t+e.before.length+e.lines.length+e.after.length),0);if(f+=t.beforeBody.length+t.afterBody.length,p&&(g+=p*c.lineHeight+(p-1)*e.titleSpacing+e.titleMarginBottom),f){g+=h*(e.displayColors?Math.max(l,s.lineHeight):s.lineHeight)+(f-h)*s.lineHeight+(f-1)*e.bodySpacing}u&&(g+=e.footerMarginTop+u*d.lineHeight+(u-1)*e.footerSpacing);let x=0;const v=function(t){b=Math.max(b,n.measureText(t).width+x)};return n.save(),n.font=c.string,each(t.title,v),n.font=s.string,each(t.beforeBody.concat(t.afterBody),v),x=e.displayColors?r+2+e.boxPadding:0,each(a,(t=>{each(t.before,v),each(t.lines,v),each(t.after,v)})),x=0,n.font=d.string,each(t.footer,v),n.restore(),b+=m.width,{width:b,height:g}}function determineYAlign(t,e){const{y:n,height:a}=e;return nt.height-a/2?"bottom":"center"}function doesNotFitWithAlign(t,e,n,a){const{x:o,width:i}=a,r=n.caretSize+n.caretPadding;return"left"===t&&o+i+r>e.width||("right"===t&&o-i-r<0||void 0)}function determineXAlign(t,e,n,a){const{x:o,width:i}=n,{width:r,chartArea:{left:l,right:s}}=t;let c="center";return"center"===a?c=o<=(l+s)/2?"left":"right":o<=i/2?c="left":o>=r-i/2&&(c="right"),doesNotFitWithAlign(c,t,e,n)&&(c="center"),c}function determineAlignment(t,e,n){const a=n.yAlign||e.yAlign||determineYAlign(t,n);return{xAlign:n.xAlign||e.xAlign||determineXAlign(t,e,n,a),yAlign:a}}function alignX(t,e){let{x:n,width:a}=t;return"right"===e?n-=a:"center"===e&&(n-=a/2),n}function alignY(t,e,n){let{y:a,height:o}=t;return"top"===e?a+=n:a-="bottom"===e?o+n:o/2,a}function getBackgroundPoint(t,e,n,a){const{caretSize:o,caretPadding:i,cornerRadius:r}=t,{xAlign:l,yAlign:s}=n,c=o+i,{topLeft:d,topRight:p,bottomLeft:u,bottomRight:h}=toTRBLCorners(r);let m=alignX(e,l);const g=alignY(e,s,c);return"center"===s?"left"===l?m+=c:"right"===l&&(m-=c):"left"===l?m-=Math.max(d,u)+o:"right"===l&&(m+=Math.max(p,h)+o),{x:_limitValue(m,0,a.width-e.width),y:_limitValue(g,0,a.height-e.height)}}function getAlignedX(t,e,n){const a=toPadding(n.padding);return"center"===e?t.x+t.width/2:"right"===e?t.x+t.width-a.right:t.x+a.left}function getBeforeAfterBodyLines(t){return pushOrConcat([],splitNewlines(t))}function createTooltipContext(t,e,n){return createContext(t,{tooltip:e,tooltipItems:n,type:"tooltip"})}function overrideCallbacks(t,e){const n=e&&e.dataset&&e.dataset.tooltip&&e.dataset.tooltip.callbacks;return n?t.override(n):t}const defaultCallbacks={beforeTitle:noop,title(t){if(t.length>0){const e=t[0],n=e.chart.data.labels,a=n?n.length:0;if(this&&this.options&&"dataset"===this.options.mode)return e.dataset.label||"";if(e.label)return e.label;if(a>0&&e.dataIndex{const e={before:[],lines:[],after:[]},o=overrideCallbacks(n,t);pushOrConcat(e.before,splitNewlines(invokeCallbackWithFallback(o,"beforeLabel",this,t))),pushOrConcat(e.lines,invokeCallbackWithFallback(o,"label",this,t)),pushOrConcat(e.after,splitNewlines(invokeCallbackWithFallback(o,"afterLabel",this,t))),a.push(e)})),a}getAfterBody(t,e){return getBeforeAfterBodyLines(invokeCallbackWithFallback(e.callbacks,"afterBody",this,t))}getFooter(t,e){const{callbacks:n}=e,a=invokeCallbackWithFallback(n,"beforeFooter",this,t),o=invokeCallbackWithFallback(n,"footer",this,t),i=invokeCallbackWithFallback(n,"afterFooter",this,t);let r=[];return r=pushOrConcat(r,splitNewlines(a)),r=pushOrConcat(r,splitNewlines(o)),r=pushOrConcat(r,splitNewlines(i)),r}_createItems(t){const e=this._active,n=this.chart.data,a=[],o=[],i=[];let r,l,s=[];for(r=0,l=e.length;rt.filter(e,a,o,n)))),t.itemSort&&(s=s.sort(((e,a)=>t.itemSort(e,a,n)))),each(s,(e=>{const n=overrideCallbacks(t.callbacks,e);a.push(invokeCallbackWithFallback(n,"labelColor",this,e)),o.push(invokeCallbackWithFallback(n,"labelPointStyle",this,e)),i.push(invokeCallbackWithFallback(n,"labelTextColor",this,e))})),this.labelColors=a,this.labelPointStyles=o,this.labelTextColors=i,this.dataPoints=s,s}update(t,e){const n=this.options.setContext(this.getContext()),a=this._active;let o,i=[];if(a.length){const t=positioners[n.position].call(this,a,this._eventPosition);i=this._createItems(n),this.title=this.getTitle(i,n),this.beforeBody=this.getBeforeBody(i,n),this.body=this.getBody(i,n),this.afterBody=this.getAfterBody(i,n),this.footer=this.getFooter(i,n);const e=this._size=getTooltipSize(this,n),r=Object.assign({},t,e),l=determineAlignment(this.chart,n,r),s=getBackgroundPoint(n,r,l,this.chart);this.xAlign=l.xAlign,this.yAlign=l.yAlign,o={opacity:1,x:s.x,y:s.y,width:e.width,height:e.height,caretX:t.x,caretY:t.y}}else 0!==this.opacity&&(o={opacity:0});this._tooltipItems=i,this.$context=void 0,o&&this._resolveAnimations().update(this,o),t&&n.external&&n.external.call(this,{chart:this.chart,tooltip:this,replay:e})}drawCaret(t,e,n,a){const o=this.getCaretPosition(t,n,a);e.lineTo(o.x1,o.y1),e.lineTo(o.x2,o.y2),e.lineTo(o.x3,o.y3)}getCaretPosition(t,e,n){const{xAlign:a,yAlign:o}=this,{caretSize:i,cornerRadius:r}=n,{topLeft:l,topRight:s,bottomLeft:c,bottomRight:d}=toTRBLCorners(r),{x:p,y:u}=t,{width:h,height:m}=e;let g,b,f,x,v,w;return"center"===o?(v=u+m/2,"left"===a?(g=p,b=g-i,x=v+i,w=v-i):(g=p+h,b=g+i,x=v-i,w=v+i),f=g):(b="left"===a?p+Math.max(l,c)+i:"right"===a?p+h-Math.max(s,d)-i:this.caretX,"top"===o?(x=u,v=x-i,g=b-i,f=b+i):(x=u+m,v=x+i,g=b+i,f=b-i),w=x),{x1:g,x2:b,x3:f,y1:x,y2:v,y3:w}}drawTitle(t,e,n){const a=this.title,o=a.length;let i,r,l;if(o){const s=getRtlAdapter(n.rtl,this.x,this.width);for(t.x=getAlignedX(this,n.titleAlign,n),e.textAlign=s.textAlign(n.titleAlign),e.textBaseline="middle",i=toFont(n.titleFont),r=n.titleSpacing,e.fillStyle=n.titleColor,e.font=i.string,l=0;l0!==t))?(t.beginPath(),t.fillStyle=o.multiKeyBackground,addRoundedRectPath(t,{x:e,y:m,w:s,h:l,radius:r}),t.fill(),t.stroke(),t.fillStyle=i.backgroundColor,t.beginPath(),addRoundedRectPath(t,{x:n,y:m+1,w:s-2,h:l-2,radius:r}),t.fill()):(t.fillStyle=o.multiKeyBackground,t.fillRect(e,m,s,l),t.strokeRect(e,m,s,l),t.fillStyle=i.backgroundColor,t.fillRect(n,m+1,s-2,l-2))}t.fillStyle=this.labelTextColors[n]}drawBody(t,e,n){const{body:a}=this,{bodySpacing:o,bodyAlign:i,displayColors:r,boxHeight:l,boxWidth:s,boxPadding:c}=n,d=toFont(n.bodyFont);let p=d.lineHeight,u=0;const h=getRtlAdapter(n.rtl,this.x,this.width),m=function(n){e.fillText(n,h.x(t.x+u),t.y+p/2),t.y+=p+o},g=h.textAlign(i);let b,f,x,v,w,y,k;for(e.textAlign=i,e.textBaseline="middle",e.font=d.string,t.x=getAlignedX(this,g,n),e.fillStyle=n.bodyColor,each(this.beforeBody,m),u=r&&"right"!==g?"center"===i?s/2+c:s+2+c:0,v=0,y=a.length;v0&&e.stroke()}_updateAnimationTarget(t){const e=this.chart,n=this.$animations,a=n&&n.x,o=n&&n.y;if(a||o){const n=positioners[t.position].call(this,this._active,this._eventPosition);if(!n)return;const i=this._size=getTooltipSize(this,t),r=Object.assign({},n,this._size),l=determineAlignment(e,t,r),s=getBackgroundPoint(t,r,l,e);a._to===s.x&&o._to===s.y||(this.xAlign=l.xAlign,this.yAlign=l.yAlign,this.width=i.width,this.height=i.height,this.caretX=n.x,this.caretY=n.y,this._resolveAnimations().update(this,s))}}_willRender(){return!!this.opacity}draw(t){const e=this.options.setContext(this.getContext());let n=this.opacity;if(!n)return;this._updateAnimationTarget(e);const a={width:this.width,height:this.height},o={x:this.x,y:this.y};n=Math.abs(n)<.001?0:n;const i=toPadding(e.padding),r=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;e.enabled&&r&&(t.save(),t.globalAlpha=n,this.drawBackground(o,t,a,e),overrideTextDirection(t,e.textDirection),o.y+=i.top,this.drawTitle(o,t,e),this.drawBody(o,t,e),this.drawFooter(o,t,e),restoreTextDirection(t,e.textDirection),t.restore())}getActiveElements(){return this._active||[]}setActiveElements(t,e){const n=this._active,a=t.map((({datasetIndex:t,index:e})=>{const n=this.chart.getDatasetMeta(t);if(!n)throw new Error("Cannot find a dataset at index "+t);return{datasetIndex:t,element:n.data[e],index:e}})),o=!_elementsEqual(n,a),i=this._positionChanged(a,e);(o||i)&&(this._active=a,this._eventPosition=e,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(t,e,n=!0){if(e&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const a=this.options,o=this._active||[],i=this._getActiveElements(t,o,e,n),r=this._positionChanged(i,t),l=e||!_elementsEqual(i,o)||r;return l&&(this._active=i,(a.enabled||a.external)&&(this._eventPosition={x:t.x,y:t.y},this.update(!0,e))),l}_getActiveElements(t,e,n,a){const o=this.options;if("mouseout"===t.type)return[];if(!a)return e;const i=this.chart.getElementsAtEventForMode(t,o.mode,o,n);return o.reverse&&i.reverse(),i}_positionChanged(t,e){const{caretX:n,caretY:a,options:o}=this,i=positioners[o.position].call(this,t,e);return!1!==i&&(n!==i.x||a!==i.y)}}_defineProperty(Tooltip,"positioners",positioners);var plugin_tooltip={id:"tooltip",_element:Tooltip,positioners:positioners,afterInit(t,e,n){n&&(t.tooltip=new Tooltip({chart:t,options:n}))},beforeUpdate(t,e,n){t.tooltip&&t.tooltip.initialize(n)},reset(t,e,n){t.tooltip&&t.tooltip.initialize(n)},afterDraw(t){const e=t.tooltip;if(e&&e._willRender()){const n={tooltip:e};if(!1===t.notifyPlugins("beforeTooltipDraw",{...n,cancelable:!0}))return;e.draw(t.ctx),t.notifyPlugins("afterTooltipDraw",n)}},afterEvent(t,e){if(t.tooltip){const n=e.replay;t.tooltip.handleEvent(e.event,n,e.inChartArea)&&(e.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(t,e)=>e.bodyFont.size,boxWidth:(t,e)=>e.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:defaultCallbacks},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:t=>"filter"!==t&&"itemSort"!==t&&"external"!==t,_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]},plugins=Object.freeze({__proto__:null,Colors:plugin_colors,Decimation:plugin_decimation,Filler:index$3,Legend:plugin_legend,SubTitle:plugin_subtitle,Title:plugin_title,Tooltip:plugin_tooltip});const addIfString=(t,e,n,a)=>("string"==typeof e?(n=t.push(e)-1,a.unshift({index:n,label:e})):isNaN(e)&&(n=null),n);function findOrAddLabel(t,e,n,a){const o=t.indexOf(e);if(-1===o)return addIfString(t,e,n,a);return o!==t.lastIndexOf(e)?n:o}const validIndex=(t,e)=>null===t?null:_limitValue(Math.round(t),0,e);function _getLabelForValue(t){const e=this.getLabels();return t>=0&&te.length-1?null:this.getPixelForValue(e[t].value)}getValueForPixel(t){return Math.round(this._startValue+this.getDecimalForPixel(t)*this._valueRange)}getBasePixel(){return this.bottom}}function generateTicks$1(t,e){const n=[],{bounds:a,step:o,min:i,max:r,precision:l,count:s,maxTicks:c,maxDigits:d,includeBounds:p}=t,u=o||1,h=c-1,{min:m,max:g}=e,b=!isNullOrUndef(i),f=!isNullOrUndef(r),x=!isNullOrUndef(s),v=(g-m)/(d+1);let w,y,k,_,z=niceNum((g-m)/h/u)*u;if(z<1e-14&&!b&&!f)return[{value:m},{value:g}];_=Math.ceil(g/z)-Math.floor(m/z),_>h&&(z=niceNum(_*z/h/u)*u),isNullOrUndef(l)||(w=Math.pow(10,l),z=Math.ceil(z*w)/w),"ticks"===a?(y=Math.floor(m/z)*z,k=Math.ceil(g/z)*z):(y=m,k=g),b&&f&&o&&almostWhole((r-i)/o,z/1e3)?(_=Math.round(Math.min((r-i)/z,c)),z=(r-i)/_,y=i,k=r):x?(y=b?i:y,k=f?r:k,_=s-1,z=(k-y)/_):(_=(k-y)/z,_=almostEquals(_,Math.round(_),z/1e3)?Math.round(_):Math.ceil(_));const S=Math.max(_decimalPlaces(z),_decimalPlaces(y));w=Math.pow(10,isNullOrUndef(l)?S:l),y=Math.round(y*w)/w,k=Math.round(k*w)/w;let M=0;for(b&&(p&&y!==i?(n.push({value:i}),ya=e?a:t,r=t=>o=n?o:t;if(t){const t=sign(a),e=sign(o);t<0&&e<0?r(0):t>0&&e>0&&i(0)}if(a===o){let e=0===o?1:Math.abs(.05*o);r(o+e),t||i(a-e)}this.min=a,this.max=o}getTickLimit(){const t=this.options.ticks;let e,{maxTicksLimit:n,stepSize:a}=t;return a?(e=Math.ceil(this.max/a)-Math.floor(this.min/a)+1,e>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${a} would result generating up to ${e} ticks. Limiting to 1000.`),e=1e3)):(e=this.computeTickLimit(),n=n||11),n&&(e=Math.min(n,e)),e}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const t=this.options,e=t.ticks;let n=this.getTickLimit();n=Math.max(2,n);const a=generateTicks$1({maxTicks:n,bounds:t.bounds,min:t.min,max:t.max,precision:e.precision,step:e.stepSize,count:e.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:e.minRotation||0,includeBounds:!1!==e.includeBounds},this._range||this);return"ticks"===t.bounds&&_setMinAndMaxByKey(a,this,"value"),t.reverse?(a.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),a}configure(){const t=this.ticks;let e=this.min,n=this.max;if(super.configure(),this.options.offset&&t.length){const a=(n-e)/Math.max(t.length-1,1)/2;e-=a,n+=a}this._startValue=e,this._endValue=n,this._valueRange=n-e}getLabelForValue(t){return formatNumber(t,this.chart.options.locale,this.options.ticks.format)}}class LinearScale extends LinearScaleBase{determineDataLimits(){const{min:t,max:e}=this.getMinMax(!0);this.min=isNumberFinite(t)?t:0,this.max=isNumberFinite(e)?e:1,this.handleTickRangeOptions()}computeTickLimit(){const t=this.isHorizontal(),e=t?this.width:this.height,n=toRadians(this.options.ticks.minRotation),a=(t?Math.sin(n):Math.cos(n))||.001,o=this._resolveTickFontOptions(0);return Math.ceil(e/Math.min(40,o.lineHeight/a))}getPixelForValue(t){return null===t?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getValueForPixel(t){return this._startValue+this.getDecimalForPixel(t)*this._valueRange}}_defineProperty(LinearScale,"id","linear"),_defineProperty(LinearScale,"defaults",{ticks:{callback:Ticks.formatters.numeric}});const log10Floor=t=>Math.floor(log10(t)),changeExponent=(t,e)=>Math.pow(10,log10Floor(t)+e);function isMajor(t){return 1===t/Math.pow(10,log10Floor(t))}function steps(t,e,n){const a=Math.pow(10,n),o=Math.floor(t/a);return Math.ceil(e/a)-o}function startExp(t,e){let n=log10Floor(e-t);for(;steps(t,e,n)>10;)n++;for(;steps(t,e,n)<10;)n--;return Math.min(n,log10Floor(t))}function generateTicks(t,{min:e,max:n}){e=finiteOrDefault(t.min,e);const a=[],o=log10Floor(e);let i=startExp(e,n),r=i<0?Math.pow(10,Math.abs(i)):1;const l=Math.pow(10,i),s=o>i?Math.pow(10,o):0,c=Math.round((e-s)*r)/r,d=Math.floor((e-s)/l/10)*l*10;let p=Math.floor((c-d)/Math.pow(10,i)),u=finiteOrDefault(t.min,Math.round((s+d+p*Math.pow(10,i))*r)/r);for(;u=10?p=p<15?15:20:p++,p>=20&&(i++,p=2,r=i>=0?1:r),u=Math.round((s+d+p*Math.pow(10,i))*r)/r;const h=finiteOrDefault(t.max,u);return a.push({value:h,major:isMajor(h),significand:p}),a}class LogarithmicScale extends Scale{constructor(t){super(t),this.start=void 0,this.end=void 0,this._startValue=void 0,this._valueRange=0}parse(t,e){const n=LinearScaleBase.prototype.parse.apply(this,[t,e]);if(0!==n)return isNumberFinite(n)&&n>0?n:null;this._zero=!0}determineDataLimits(){const{min:t,max:e}=this.getMinMax(!0);this.min=isNumberFinite(t)?Math.max(0,t):null,this.max=isNumberFinite(e)?Math.max(0,e):null,this.options.beginAtZero&&(this._zero=!0),this._zero&&this.min!==this._suggestedMin&&!isNumberFinite(this._userMin)&&(this.min=t===changeExponent(this.min,0)?changeExponent(this.min,-1):changeExponent(this.min,0)),this.handleTickRangeOptions()}handleTickRangeOptions(){const{minDefined:t,maxDefined:e}=this.getUserBounds();let n=this.min,a=this.max;const o=e=>n=t?n:e,i=t=>a=e?a:t;n===a&&(n<=0?(o(1),i(10)):(o(changeExponent(n,-1)),i(changeExponent(a,1)))),n<=0&&o(changeExponent(a,-1)),a<=0&&i(changeExponent(n,1)),this.min=n,this.max=a}buildTicks(){const t=this.options,e=generateTicks({min:this._userMin,max:this._userMax},this);return"ticks"===t.bounds&&_setMinAndMaxByKey(e,this,"value"),t.reverse?(e.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),e}getLabelForValue(t){return void 0===t?"0":formatNumber(t,this.chart.options.locale,this.options.ticks.format)}configure(){const t=this.min;super.configure(),this._startValue=log10(t),this._valueRange=log10(this.max)-log10(t)}getPixelForValue(t){return void 0!==t&&0!==t||(t=this.min),null===t||isNaN(t)?NaN:this.getPixelForDecimal(t===this.min?0:(log10(t)-this._startValue)/this._valueRange)}getValueForPixel(t){const e=this.getDecimalForPixel(t);return Math.pow(10,this._startValue+e*this._valueRange)}}function getTickBackdropHeight(t){const e=t.ticks;if(e.display&&t.display){const t=toPadding(e.backdropPadding);return valueOrDefault(e.font&&e.font.size,defaults.font.size)+t.height}return 0}function measureLabelSize(t,e,n){return n=isArray(n)?n:[n],{w:_longestText(t,e.string,n),h:n.length*e.lineHeight}}function determineLimits(t,e,n,a,o){return t===a||t===o?{start:e-n/2,end:e+n/2}:to?{start:e-n,end:e}:{start:e,end:e+n}}function fitWithPointLabels(t){const e={l:t.left+t._padding.left,r:t.right-t._padding.right,t:t.top+t._padding.top,b:t.bottom-t._padding.bottom},n=Object.assign({},e),a=[],o=[],i=t._pointLabels.length,r=t.options.pointLabels,l=r.centerPointLabels?PI/i:0;for(let s=0;se.r&&(l=(a.end-e.r)/i,t.r=Math.max(t.r,e.r+l)),o.starte.b&&(s=(o.end-e.b)/r,t.b=Math.max(t.b,e.b+s))}function buildPointLabelItems(t,e,n){const a=[],o=t._pointLabels.length,i=t.options,r=getTickBackdropHeight(i)/2,l=t.drawingArea,s=i.pointLabels.centerPointLabels?PI/o:0;for(let c=0;c270||n<90)&&(t-=e),t}function drawPointLabels(t,e){const{ctx:n,options:{pointLabels:a}}=t;for(let o=e-1;o>=0;o--){const e=a.setContext(t.getPointLabelContext(o)),i=toFont(e.font),{x:r,y:l,textAlign:s,left:c,top:d,right:p,bottom:u}=t._pointLabelItems[o],{backdropColor:h}=e;if(!isNullOrUndef(h)){const t=toTRBLCorners(e.borderRadius),a=toPadding(e.backdropPadding);n.fillStyle=h;const o=c-a.left,i=d-a.top,r=p-c+a.width,l=u-d+a.height;Object.values(t).some((t=>0!==t))?(n.beginPath(),addRoundedRectPath(n,{x:o,y:i,w:r,h:l,radius:t}),n.fill()):n.fillRect(o,i,r,l)}renderText(n,t._pointLabels[o],r,l+i.lineHeight/2,i,{color:e.color,textAlign:s,textBaseline:"middle"})}}function pathRadiusLine(t,e,n,a){const{ctx:o}=t;if(n)o.arc(t.xCenter,t.yCenter,e,0,TAU);else{let n=t.getPointPosition(0,e);o.moveTo(n.x,n.y);for(let i=1;i{const n=callback(this.options.pointLabels.callback,[t,e],this);return n||0===n?n:""})).filter(((t,e)=>this.chart.getDataVisibility(e)))}fit(){const t=this.options;t.display&&t.pointLabels.display?fitWithPointLabels(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(t,e,n,a){this.xCenter+=Math.floor((t-e)/2),this.yCenter+=Math.floor((n-a)/2),this.drawingArea-=Math.min(this.drawingArea/2,Math.max(t,e,n,a))}getIndexAngle(t){return _normalizeAngle(t*(TAU/(this._pointLabels.length||1))+toRadians(this.options.startAngle||0))}getDistanceFromCenterForValue(t){if(isNullOrUndef(t))return NaN;const e=this.drawingArea/(this.max-this.min);return this.options.reverse?(this.max-t)*e:(t-this.min)*e}getValueForDistanceFromCenter(t){if(isNullOrUndef(t))return NaN;const e=t/(this.drawingArea/(this.max-this.min));return this.options.reverse?this.max-e:this.min+e}getPointLabelContext(t){const e=this._pointLabels||[];if(t>=0&&t{if(0!==e){l=this.getDistanceFromCenterForValue(t.value);const n=this.getContext(e),r=a.setContext(n),s=o.setContext(n);drawRadiusLine(this,r,l,i,s)}})),n.display){for(t.save(),r=i-1;r>=0;r--){const a=n.setContext(this.getPointLabelContext(r)),{color:o,lineWidth:i}=a;i&&o&&(t.lineWidth=i,t.strokeStyle=o,t.setLineDash(a.borderDash),t.lineDashOffset=a.borderDashOffset,l=this.getDistanceFromCenterForValue(e.ticks.reverse?this.min:this.max),s=this.getPointPosition(r,l),t.beginPath(),t.moveTo(this.xCenter,this.yCenter),t.lineTo(s.x,s.y),t.stroke())}t.restore()}}drawBorder(){}drawLabels(){const t=this.ctx,e=this.options,n=e.ticks;if(!n.display)return;const a=this.getIndexAngle(0);let o,i;t.save(),t.translate(this.xCenter,this.yCenter),t.rotate(a),t.textAlign="center",t.textBaseline="middle",this.ticks.forEach(((a,r)=>{if(0===r&&!e.reverse)return;const l=n.setContext(this.getContext(r)),s=toFont(l.font);if(o=this.getDistanceFromCenterForValue(this.ticks[r].value),l.showLabelBackdrop){t.font=s.string,i=t.measureText(a.label).width,t.fillStyle=l.backdropColor;const e=toPadding(l.backdropPadding);t.fillRect(-i/2-e.left,-o-s.size/2-e.top,i+e.width,s.size+e.height)}renderText(t,a.label,0,-o,s,{color:l.color})})),t.restore()}drawTitle(){}}_defineProperty(RadialLinearScale,"id","radialLinear"),_defineProperty(RadialLinearScale,"defaults",{display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,lineWidth:1,borderDash:[],borderDashOffset:0},grid:{circular:!1},startAngle:0,ticks:{showLabelBackdrop:!0,callback:Ticks.formatters.numeric},pointLabels:{backdropColor:void 0,backdropPadding:2,display:!0,font:{size:10},callback:t=>t,padding:5,centerPointLabels:!1}}),_defineProperty(RadialLinearScale,"defaultRoutes",{"angleLines.color":"borderColor","pointLabels.color":"color","ticks.color":"color"}),_defineProperty(RadialLinearScale,"descriptors",{angleLines:{_fallback:"grid"}});const INTERVALS={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},UNITS=Object.keys(INTERVALS);function sorter(t,e){return t-e}function parse(t,e){if(isNullOrUndef(e))return null;const n=t._adapter,{parser:a,round:o,isoWeekday:i}=t._parseOpts;let r=e;return"function"==typeof a&&(r=a(r)),isNumberFinite(r)||(r="string"==typeof a?n.parse(r,a):n.parse(r)),null===r?null:(o&&(r="week"!==o||!isNumber(i)&&!0!==i?n.startOf(r,o):n.startOf(r,"isoWeek",i)),+r)}function determineUnitForAutoTicks(t,e,n,a){const o=UNITS.length;for(let i=UNITS.indexOf(t);i=UNITS.indexOf(n);i--){const n=UNITS[i];if(INTERVALS[n].common&&t._adapter.diff(o,a,n)>=e-1)return n}return UNITS[n?UNITS.indexOf(n):0]}function determineMajorUnit(t){for(let e=UNITS.indexOf(t)+1,n=UNITS.length;e=e?n[a]:n[o]]=!0}}else t[e]=!0}function setMajorTicks(t,e,n,a){const o=t._adapter,i=+o.startOf(e[0].value,a),r=e[e.length-1].value;let l,s;for(l=i;l<=r;l=+o.add(l,1,a))s=n[l],s>=0&&(e[s].major=!0);return e}function ticksFromTimestamps(t,e,n){const a=[],o={},i=e.length;let r,l;for(r=0;r+t.value)))}initOffsets(t=[]){let e,n,a=0,o=0;this.options.offset&&t.length&&(e=this.getDecimalForValue(t[0]),a=1===t.length?1-e:(this.getDecimalForValue(t[1])-e)/2,n=this.getDecimalForValue(t[t.length-1]),o=1===t.length?n:(n-this.getDecimalForValue(t[t.length-2]))/2);const i=t.length<3?.5:.25;a=_limitValue(a,0,i),o=_limitValue(o,0,i),this._offsets={start:a,end:o,factor:1/(a+1+o)}}_generate(){const t=this._adapter,e=this.min,n=this.max,a=this.options,o=a.time,i=o.unit||determineUnitForAutoTicks(o.minUnit,e,n,this._getLabelCapacity(e)),r=valueOrDefault(a.ticks.stepSize,1),l="week"===i&&o.isoWeekday,s=isNumber(l)||!0===l,c={};let d,p,u=e;if(s&&(u=+t.startOf(u,"isoWeek",l)),u=+t.startOf(u,s?"day":i),t.diff(n,e,i)>1e5*r)throw new Error(e+" and "+n+" are too far apart with stepSize of "+r+" "+i);const h="data"===a.ticks.source&&this.getDataTimestamps();for(d=u,p=0;dt-e)).map((t=>+t))}getLabelForValue(t){const e=this._adapter,n=this.options.time;return n.tooltipFormat?e.format(t,n.tooltipFormat):e.format(t,n.displayFormats.datetime)}_tickFormatFunction(t,e,n,a){const o=this.options,i=o.ticks.callback;if(i)return callback(i,[t,e,n],this);const r=o.time.displayFormats,l=this._unit,s=this._majorUnit,c=l&&r[l],d=s&&r[s],p=n[e],u=s&&d&&p&&p.major;return this._adapter.format(t,a||(u?d:c))}generateTickLabels(t){let e,n,a;for(e=0,n=t.length;e0?r:1}getDataTimestamps(){let t,e,n=this._cache.data||[];if(n.length)return n;const a=this.getMatchingVisibleMetas();if(this._normalized&&a.length)return this._cache.data=a[0].controller.getAllParsedValues(this);for(t=0,e=a.length;t=t[l].pos&&e<=t[s].pos&&({lo:l,hi:s}=_lookupByKey(t,"pos",e)),({pos:a,time:i}=t[l]),({pos:o,time:r}=t[s])):(e>=t[l].time&&e<=t[s].time&&({lo:l,hi:s}=_lookupByKey(t,"time",e)),({time:a,pos:i}=t[l]),({time:o,pos:r}=t[s]));const c=o-a;return c?i+(r-i)*(e-a)/c:i}_defineProperty(TimeScale,"id","time"),_defineProperty(TimeScale,"defaults",{bounds:"data",adapters:{},time:{parser:!1,unit:!1,round:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{source:"auto",callback:!1,major:{enabled:!1}}});class TimeSeriesScale extends TimeScale{constructor(t){super(t),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const t=this._getTimestampsForTable(),e=this._table=this.buildLookupTable(t);this._minPos=interpolate(e,this.min),this._tableRange=interpolate(e,this.max)-this._minPos,super.initOffsets(t)}buildLookupTable(t){const{min:e,max:n}=this,a=[],o=[];let i,r,l,s,c;for(i=0,r=t.length;i=e&&s<=n&&a.push(s);if(a.length<2)return[{time:e,pos:0},{time:n,pos:1}];for(i=0,r=a.length;i(pushScopeId("data-v-fd1701ae"),t=t(),popScopeId(),t),_hoisted_1$h={id:"critical-main"},_hoisted_2$f={id:"critical"},_hoisted_3$f=_withScopeId$8((()=>createBaseVNode("div",{class:"des"},"加攻伤害",-1))),_hoisted_4$c={class:"slider-div"},_hoisted_5$b={id:"def"},_hoisted_6$a=_withScopeId$8((()=>createBaseVNode("div",{class:"des"},"加防伤害",-1))),_hoisted_7$7={class:"slider-div"},_hoisted_8$6={id:"now-damage"},_hoisted_9$6={style:{"font-family":"'Fira Code'"}},_sfc_main$h=defineComponent({__name:"enemyCritical",setup(t){const e=ref(),n=ref(),a=core.plugin.bookDetailEnemy,o=Math.ceil;let i=getCriticalDamage(a),r=getDefDamage(a);const l=ref(i),s=ref(r),c=ref(0),d=ref(0),p=core.getDamageInfo(a),u=core.formatBigNumber,h=core.status.thisMap.ratio,m=computed((()=>{const t=core.getDamageInfo(a,{atk:core.status.hero.atk+c.value*h,def:core.status.hero.def+d.value*h});return has(t)?has(p)?[p.damage-t.damage,t.damage]:[-t.damage,t.damage]:["???","???"]}));function g(t,e){const n={type:"line",data:b(e),options:{elements:{point:{radius:5,hoverRadius:7},line:{borderJoinStyle:"round"}},scales:{y:{grid:{color:"#ddd3"}}},plugins:{legend:{display:!1}}}};return new Chart$1(t,n)}function b(t){return{datasets:[{data:t.map((t=>t[1])),label:"怪物伤害"}],labels:t.map((t=>Math.round(t[0]/h)))}}const f=lodash.exports.debounce(((t,e)=>{l.value=getCriticalDamage(a,c.value*h,d.value*h),s.value=getDefDamage(a,d.value*h,c.value*h),l.value.length>i.length&&(i=l.value),s.value.length>r.length&&(r=s.value),t.data=b(l.value),e.data=b(s.value),t.update("resize"),e.update("resize")}),200);return onMounted((()=>{const t=document.getElementById("critical-main"),a=getComputedStyle(t),o=parseFloat(a.width),i=window.innerHeight/5,r=e.value,p=n.value;setCanvasSize(r,o,i),setCanvasSize(p,o,i);const u=g(r,l.value),h=g(p,s.value);watch(c,(t=>{f(u,h)})),watch(d,(t=>{f(u,h)}))})),(t,a)=>{const l=__unplugin_components_0,s=__unplugin_components_1;return openBlock(),createElementBlock("div",_hoisted_1$h,[createBaseVNode("div",_hoisted_2$f,[_hoisted_3$f,createBaseVNode("canvas",{ref_key:"critical",ref:e,class:"chart"},null,512),createBaseVNode("div",_hoisted_4$c,[createBaseVNode("span",null,"加攻次数    "+toDisplayString(c.value),1),createVNode(l,{class:"slider",value:c.value,"onUpdate:value":a[0]||(a[0]=t=>c.value=t),max:unref(o)((unref(i).at(-1)?.[0]??2)/unref(h))-1},null,8,["value","max"]),createBaseVNode("span",null,"最大值    "+toDisplayString(unref(o)((unref(i).at(-1)?.[0]??2)/unref(h))-1),1)])]),createVNode(s,{dashed:"",style:{width:"100%","border-color":"#ddd4",margin:"1vh 0 1vh 0"}}),createBaseVNode("div",_hoisted_5$b,[_hoisted_6$a,createBaseVNode("canvas",{ref_key:"def",ref:n,class:"chart"},null,512),createBaseVNode("div",_hoisted_7$7,[createBaseVNode("span",null,"加防次数    "+toDisplayString(d.value),1),createVNode(l,{class:"slider",value:d.value,"onUpdate:value":a[1]||(a[1]=t=>d.value=t),max:unref(o)((unref(r).at(-1)?.[0]??2)/unref(h))-1},null,8,["value","max"]),createBaseVNode("span",null,"最大值    "+toDisplayString(unref(o)((unref(r).at(-1)?.[0]??2)/unref(h))-1),1)])]),createBaseVNode("div",_hoisted_8$6,[createBaseVNode("div",null,[createBaseVNode("span",null,"当前加攻"+toDisplayString(unref(isMobile)?"":"    "),1),createBaseVNode("span",null,toDisplayString(unref(u)(c.value*unref(h))),1)]),createBaseVNode("div",null,[createBaseVNode("span",null,"当前加防"+toDisplayString(unref(isMobile)?"":"    "),1),createBaseVNode("span",null,toDisplayString(unref(u)(d.value*unref(h))),1)]),createBaseVNode("div",null,[createBaseVNode("span",null,"当前减伤"+toDisplayString(unref(isMobile)?"":"    "),1),createBaseVNode("span",null,[createBaseVNode("span",_hoisted_9$6,toDisplayString(unref(m)[0]<0&&"???"===unref(m)[1]?"=>":""),1),createTextVNode(toDisplayString(unref(m)[0]<0&&"???"===unref(m)[1]?unref(u)(-unref(m)[0]):unref(u)(unref(m)[0])),1)])]),createBaseVNode("div",null,[createBaseVNode("span",null,"当前伤害"+toDisplayString(unref(isMobile)?"":"    "),1),createBaseVNode("span",null,toDisplayString(unref(u)(unref(m)[1])),1)])])])}}}),enemyCritical_vue_vue_type_style_index_0_scoped_fd1701ae_lang="",EnemyCritical=_export_sfc(_sfc_main$h,[["__scopeId","data-v-fd1701ae"]]),showMarkedEnemy=ref(!1),markedEnemy=reactive([]),markInfo={},criticalReached={},enemyDamageInfo={};function markEnemy$1(t){hasMarkedEnemy(t)||(markedEnemy.push(t),markInfo[t]={nextCritical:core.nextCriticals(t,1)[0]?.[0]??0+core.status.hero.atk},criticalReached[t]={0:!0},enemyDamageInfo[t]={1:!1,2:!1,3:!1},getMarkInfo(t,!0),checkMarkedEnemy(!0))}function hasMarkedEnemy(t){return markedEnemy.includes(t)}function unmarkEnemy(t){const e=markedEnemy.indexOf(t);-1!==e&&(markedEnemy.splice(e,1),checkMarkedEnemy())}function getMarkedEnemy(){return markedEnemy}function getMarkInfo(t,e=!1){const n=criticalReached[t],a=markInfo[t];if(core.status.hero.atk>=a.nextCritical){n[a.nextCritical]||e||tip$1("success",`踩到了${core.material.enemys[t].name}的临界!`),n[a.nextCritical]=!0;const o=core.nextCriticals(t,1)[0]?.[0],i=(o??0)+core.status.hero.atk;a.nextCritical=i}}function checkMarkedEnemy(t=!1){checkMarkedStatus.value=!checkMarkedStatus.value;const e=core.status.hero.hp;getMarkedEnemy().forEach((n=>{getMarkInfo(n);const a=core.getDamageInfo(n)?.damage??-1;if(-1===a)return;const o=enemyDamageInfo[n],i=core.material.enemys[n].name;a<=0?t||tip$1("success",`${i}已经零伤了!`):a(core.isPlaying()&&(flags.mouseLoc=[t,e]),!1)),150),{checkMarkedEnemy:checkMarkedEnemy,checkStatus:checkMarkedStatus,markEnemy:markEnemy$1,hasMarkedEnemy:hasMarkedEnemy,unmarkEnemy:unmarkEnemy,showMarkedEnemy:showMarkedEnemy}}const _withScopeId$7=t=>(pushScopeId("data-v-90e08ea9"),t=t(),popScopeId(),t),_hoisted_1$g={id:"enemy-target"},_hoisted_2$e={id:"enemy-desc"},_hoisted_3$e=_withScopeId$7((()=>createBaseVNode("span",null,"怪物描述",-1))),_hoisted_4$b={id:"mark-target"},_hoisted_5$a=["onClick"],_sfc_main$g=defineComponent({__name:"enemyTarget",setup(t){const e=core.plugin.bookDetailEnemy,n=ref(hasMarkedEnemy(e.id));function a(){n.value&&unmarkEnemy(e.id),n.value||markEnemy$1(e.id),n.value=!n.value}return(t,o)=>{const i=__unplugin_components_1;return openBlock(),createElementBlock("div",_hoisted_1$g,[createBaseVNode("div",_hoisted_2$e,[_hoisted_3$e,createVNode(Scroll,{id:"enemy-desc-scroll"},{default:withCtx((()=>[createBaseVNode("span",null,toDisplayString(unref(e).description),1)])),_:1})]),createVNode(i,{dashed:"",style:{"border-color":"#ddd4"}}),createBaseVNode("div",null,[createBaseVNode("div",_hoisted_4$b,[createBaseVNode("span",{id:"mark-info",style:normalizeStyle({color:n.value?"lightgreen":"lightcoral"})},toDisplayString(n.value?"已标记该怪物":"未标记该怪物"),5),createBaseVNode("span",{class:"button-text",onClick:withModifiers(a,["stop"])},toDisplayString(n.value?"取消标记该怪物":"标记该怪物为目标"),9,_hoisted_5$a)])])])}}}),enemyTarget_vue_vue_type_style_index_0_scoped_90e08ea9_lang="",EnemyTarget=_export_sfc(_sfc_main$g,[["__scopeId","data-v-90e08ea9"]]),_withScopeId$6=t=>(pushScopeId("data-v-9c1bd474"),t=t(),popScopeId(),t),_hoisted_1$f={id:"detail"},_hoisted_2$d={id:"detail-more"},_hoisted_3$d={key:0,id:"special-more",class:"detial-more"},_hoisted_4$a={key:1,id:"special-more",class:"detial-more"},_hoisted_5$9={key:2,id:"special-more",class:"detial-more"},_hoisted_6$9=_withScopeId$6((()=>createBaseVNode("span",null,null,-1))),_sfc_main$f=defineComponent({__name:"bookDetail",emits:["close"],setup(t,{emit:e}){const n=core.plugin.bookDetailEnemy,a=ref(core.plugin.bookDetailPos),o=ref("special");let i;function r(t,e){t.stopPropagation(),o.value=e}function l(){a.value=core.plugin.bookDetailPos,i.style.opacity="0",e("close")}function s(t){keycode(t.keyCode)===KeyCode.Enter&&l()}return onMounted((async()=>{a.value=0,i=document.getElementById("detail"),i.style.opacity="1";const t=getComputedStyle(i);let e=!1,n=[0,0];await S(600),useDrag(i,((t,a)=>{(t-n[0])**2+(a-n[1])**2>=100&&(e=!0)}),((a,o)=>{n=[a,o],o>4*parseFloat(t.height)/5&&(e=!0)}),(()=>{!1===e&&"critical"!==o.value&&l(),e=!1})),document.addEventListener("keyup",s)})),onUnmounted((()=>{document.removeEventListener("keyup",s)})),(t,e)=>{const i=__unplugin_components_1;return openBlock(),createElementBlock("div",_hoisted_1$f,[createBaseVNode("div",{id:"info",style:normalizeStyle({top:`${a.value}px`})},[createVNode(EnemyOne,{enemy:unref(n)},null,8,["enemy"]),createVNode(i,{dashed:"",style:{margin:"2vh 0 2vh 0","border-color":"#ddd4",width:"100%"}})],4),createVNode(Transition,{name:"detail"},{default:withCtx((()=>["special"===o.value?(openBlock(),createBlock(EnemySpecial,{key:0})):"critical"===o.value?(openBlock(),createBlock(EnemyCritical,{key:1})):"target"===o.value?(openBlock(),createBlock(EnemyTarget,{key:2})):createCommentVNode("",!0)])),_:1}),createBaseVNode("div",_hoisted_2$d,[createVNode(Transition,{name:"detail"},{default:withCtx((()=>["special"===o.value?(openBlock(),createElementBlock("div",_hoisted_3$d,[createBaseVNode("span",{id:"enemy-target",class:"button-text more",onClick:e[0]||(e[0]=t=>r(t,"target"))},[createVNode(unref(LeftOutlined)),createTextVNode(" 怪物更多信息")]),createBaseVNode("span",{id:"critical-more",class:"button-text more",onClick:e[1]||(e[1]=t=>r(t,"critical"))},[createTextVNode("详细临界信息 "),createVNode(unref(RightOutlined))])])):"critical"===o.value?(openBlock(),createElementBlock("div",_hoisted_4$a,[createBaseVNode("span",{id:"enemy-pos",class:"button-text more",onClick:e[2]||(e[2]=t=>r(t,"special"))},[createVNode(unref(LeftOutlined)),createTextVNode(" 怪物特殊属性")])])):"target"===o.value?(openBlock(),createElementBlock("div",_hoisted_5$9,[_hoisted_6$9,createBaseVNode("span",{id:"enemy-pos",class:"button-text more",onClick:e[3]||(e[3]=t=>r(t,"special"))},[createTextVNode("怪物特殊属性 "),createVNode(unref(RightOutlined))])])):createCommentVNode("",!0)])),_:1})])])}}}),bookDetail_vue_vue_type_style_index_0_scoped_9c1bd474_lang="",BookDetail=_export_sfc(_sfc_main$f,[["__scopeId","data-v-9c1bd474"]]),_withScopeId$5=t=>(pushScopeId("data-v-e7143bcf"),t=t(),popScopeId(),t),_hoisted_1$e={id:"book"},_hoisted_2$c={id:"tools"},_hoisted_3$c={key:0,id:"none"},_hoisted_4$9=_withScopeId$5((()=>createBaseVNode("div",null,"本层无怪物",-1))),_hoisted_5$8=[_hoisted_4$9],_hoisted_6$8={class:"enemy"},_sfc_main$e=defineComponent({__name:"book",setup(t){const e=core.floorIds[core.status.event?.ui?.index]??core.status.floorId;e!==core.status.floorId&&core.status.checkBlock&&(core.status.checkBlock.cache={});const n=core.getCurrentEnemys(e),a=ref(0),o=ref(!1),i=ref(!1),r=ref(0);function l(t,e){if(o.value)return;const n=e*window.innerHeight*.2-a.value;core.plugin.bookDetailEnemy=t,core.plugin.bookDetailPos=n,i.value=!0,async function(){const t=document.getElementById("book");t.style.opacity="0",await S(600),t.style.display="none"}()}async function s(){!async function(){const t=document.getElementById("book");t.style.display="flex",await S(50),t.style.opacity="1"}(),await S(600),i.value=!1}async function c(){noClosePanel.value=!0,core.plugin.bookOpened.value=!1,core.plugin.transition.value?await S(650):await S(100),core.events.recoverEvents(core.status.event.interval)||(has(core.status.event.ui)?(core.status.boxAnimateObjs=[],core.ui._drawViewMaps(core.status.event.ui)):core.ui.closePanel())}function d(){const t=window.innerHeight,e=r.value*t*.2-a.value;e<0&&(a.value+=e-20),e>.655*t&&(a.value+=e-.655*t+20)}function p(t){const e=keycode(t.keyCode);e!==KeyCode.KeyX&&e!==KeyCode.Escape||c(),e!==KeyCode.Enter||i.value||l(n[r.value],r.value)}function u(t){const e=keycode(t.keyCode);i.value||(e===KeyCode.DownArrow&&(r.value0&&r.value--,d()),e!==KeyCode.LeftArrow&&e!==KeyCode.PageUp||(r.value<=4?r.value=0:r.value-=5,d()),e!==KeyCode.RightArrow&&e!==KeyCode.PageDown||(r.value>=n.length-5?r.value=n.length-1:r.value+=5,d()))}return n.forEach((t=>{const e=t.specialText.length;t.toShowSpecial=lodash.exports.cloneDeep(t.specialText),t.toShowColor=lodash.exports.cloneDeep(t.specialColor),e>=3&&(t.toShowSpecial=t.specialText.slice(0,2).concat(["..."]),t.toShowColor=t.specialColor.slice(0,2).concat(["#fff"])),t.toShowColor=t.toShowColor.map((t=>"string"==typeof t?t:core.arrayToRGBA(t))),t.damageColor=getDamageColor(t.damage)})),onMounted((async()=>{core.plugin.transition.value?await S(600):await S(50),document.addEventListener("keyup",p),document.addEventListener("keydown",u)})),onUnmounted((async()=>{document.removeEventListener("keyup",p),document.removeEventListener("keydown",u)})),(t,e)=>{const d=__unplugin_components_1;return openBlock(),createElementBlock(Fragment,null,[createBaseVNode("div",_hoisted_1$e,[createBaseVNode("div",_hoisted_2$c,[createBaseVNode("span",{id:"back",class:"button-text tools",onClick:c},[createVNode(unref(LeftOutlined)),createTextVNode("返回游戏")])]),0===unref(n).length?(openBlock(),createElementBlock("div",_hoisted_3$c,_hoisted_5$8)):(openBlock(),createBlock(Scroll,{key:1,style:{width:"100%",height:"94%","font-family":"normal"},now:a.value,"onUpdate:now":e[0]||(e[0]=t=>a.value=t),drag:o.value,"onUpdate:drag":e[1]||(e[1]=t=>o.value=t)},{default:withCtx((()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(n),((t,e)=>(openBlock(),createElementBlock("div",_hoisted_6$8,[(openBlock(),createBlock(EnemyOne,{selected:e===r.value,enemy:t,key:e,onSelect:n=>l(t,e),onHover:t=>r.value=e},null,8,["selected","enemy","onSelect","onHover"])),createVNode(d,{dashed:"",style:{width:"100%","border-color":"#ddd4"}})])))),256))])),_:1},8,["now","drag"]))]),i.value?(openBlock(),createBlock(BookDetail,{key:0,onClose:e[2]||(e[2]=t=>s())})):createCommentVNode("",!0)],64)}}}),book_vue_vue_type_style_index_0_scoped_e7143bcf_lang="",Book=_export_sfc(_sfc_main$e,[["__scopeId","data-v-e7143bcf"]]),clsMap={tools:"消耗道具",constants:"永久道具",all:"全部道具"};function getClsName(t){return clsMap[t]}function getItems(t){const e=core.status.hero.items,n=["book"];if("all"===t)return{tools:Object.entries(e.tools).filter((t=>!n.includes(t[0]))),constants:Object.entries(e.constants).filter((t=>!n.includes(t[0])))};const a=e[t];return Object.entries(a)}const _withScopeId$4=t=>(pushScopeId("data-v-88c6bbe5"),t=t(),popScopeId(),t),_hoisted_1$d={id:"toolbox"},_hoisted_2$b={id:"tools"},_hoisted_3$b={id:"toolbox-main"},_hoisted_4$8={class:"item-main"},_hoisted_5$7={class:"item-info"},_hoisted_6$7={key:0,class:"item-type"},_hoisted_7$6={key:1,id:"item-type-mobile"},_hoisted_8$5=["selected"],_hoisted_9$5=["selected"],_hoisted_10$5=["selected","onClick"],_hoisted_11$5={class:"item-icon"},_hoisted_12$4={class:"item-name"},_hoisted_13$4={id:"detail"},_hoisted_14$4={id:"info"},_hoisted_15$3={id:"basic-info"},_hoisted_16$3={style:{"border-bottom":"1px solid #ddd4"}},_hoisted_17$2=_withScopeId$4((()=>createBaseVNode("span",{style:{"margin-top":"2vh"}},"点击该物品以使用",-1))),_hoisted_18$2={id:"desc"},_hoisted_19$2=_withScopeId$4((()=>createBaseVNode("span",null,"道具描述",-1))),_hoisted_20$2={key:0},_hoisted_21$2=["innerHTML"],_sfc_main$d=defineComponent({__name:"toolbox",setup(t){const e=ref("tools"),n=getItems("all"),a=computed((()=>isMobile?[e.value]:["tools","constants"])),o=core.material.items,i=ref(n[a.value[0]][0]?.[0]??"none"),r=ref(0);watch(r,(t=>{s(n[e.value][t][0],!0)})),watch(e,(t=>{has(n[t][r.value])?s(n[t][r.value][0],!0):i.value="none"}));const l=computed((()=>{const t=i.value;return"none"===t?ref("没有选择道具"):type(o[t].text,25,C("sin","out"),!0)}));async function s(t,a=!1){i.value!==t||a||d(t),r.value=n[e.value].findIndex((e=>e[0]===t)),i.value=t}function c(){core.plugin.toolOpened.value=!1}async function d(t){if("none"!==t)if(core.canUseItem(t)){const e=core.plugin.transition.value;core.plugin.transition.value=!1,c(),await S(50),core.useItem(t),core.plugin.transition.value=e}else message.warn({content:"当前无法使用该道具!",class:"antdv-message"})}async function p(){const t=core.plugin.transition.value;core.plugin.transition.value=!1,c(),await S(50),core.plugin.equipOpened.value=!0,core.plugin.transition.value=t}function u(t){const e=keycode(t.keyCode);e!==KeyCode.Escape&&e!==KeyCode.KeyX&&e!==KeyCode.KeyT||c(),e!==KeyCode.Enter&&e!==KeyCode.KeyC||d(i.value)}function h(t){const a=keycode(t.keyCode),o=n[e.value].length;if(a===KeyCode.DownArrow&&r.value0&&r.value--,a===KeyCode.RightArrow){const t=n.constants.length;"tools"===e.value&&(r.value>=t&&(r.value=t-1),e.value="constants")}if(a===KeyCode.LeftArrow){const t=n.tools.length;"constants"===e.value&&(r.value>=t&&(r.value=t-1),e.value="tools")}}return onMounted((async()=>{core.plugin.transition.value?await S(600):await S(50),document.addEventListener("keyup",u),document.addEventListener("keydown",h)})),onUnmounted((()=>{document.removeEventListener("keyup",u),document.removeEventListener("keydown",h)})),(t,r)=>{const d=__unplugin_components_1;return openBlock(),createElementBlock("div",_hoisted_1$d,[createBaseVNode("div",_hoisted_2$b,[createBaseVNode("span",{class:"button-text tools",onClick:c},[createVNode(unref(LeftOutlined)),createTextVNode(" 返回游戏")]),createBaseVNode("span",{class:"button-text tools",onClick:p},[createTextVNode("装备栏 "),createVNode(unref(RightOutlined))])]),createBaseVNode("div",_hoisted_3$b,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(a),(t=>(openBlock(),createElementBlock("div",_hoisted_4$8,[createBaseVNode("div",_hoisted_5$7,[unref(isMobile)?(openBlock(),createElementBlock("div",_hoisted_7$6,[createBaseVNode("span",{class:"button-text",onClick:r[0]||(r[0]=t=>e.value="tools"),selected:"tools"===e.value},"消耗道具",8,_hoisted_8$5),createVNode(d,{dashed:"",style:{"border-color":"#ddd4",height:"100%"},type:"vertical"}),createBaseVNode("span",{class:"button-text",onClick:r[1]||(r[1]=t=>e.value="constants"),selected:"constants"===e.value},"永久道具",8,_hoisted_9$5)])):(openBlock(),createElementBlock("div",_hoisted_6$7,toDisplayString(unref(getClsName)(t)),1)),createVNode(d,{dashed:"",style:{margin:"1vh 0 1vh 0","border-color":"#ddd4"}}),createVNode(Scroll,{class:"item-list"},{default:withCtx((()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(n)[t],(([n,a])=>(openBlock(),createElementBlock("div",{class:"item selectable",selected:i.value===n,onClick:a=>{e.value=t,s(n)}},[createBaseVNode("div",_hoisted_11$5,[createVNode(_sfc_main$l,{id:n,width:32,height:32,noborder:!0},null,8,["id"]),createBaseVNode("span",_hoisted_12$4,toDisplayString(unref(o)[n].name),1)]),createBaseVNode("span",null,"× "+toDisplayString(a),1)],8,_hoisted_10$5)))),256))])),_:2},1024)]),createVNode(d,{dashed:"",type:unref(isMobile)?"horizontal":"vertical",class:"divider",style:{"border-color":"#ddd4",margin:"1%"}},null,8,["type"])])))),256)),createBaseVNode("div",_hoisted_13$4,[createBaseVNode("div",_hoisted_14$4,[createVNode(_sfc_main$l,{id:i.value,width:32,height:32},null,8,["id"]),createBaseVNode("div",_hoisted_15$3,[createBaseVNode("span",_hoisted_16$3,toDisplayString("none"===i.value?"没有道具":unref(o)[i.value].name),1),createBaseVNode("span",null,toDisplayString("none"===i.value?"永久道具":unref(getClsName)(unref(o)[i.value].cls)??"永久道具"),1)])]),_hoisted_17$2,createVNode(d,{dashed:"",style:{"border-color":"#ddd4"}}),createBaseVNode("div",_hoisted_18$2,[_hoisted_19$2,createVNode(Scroll,{id:"desc-text"},{default:withCtx((()=>[unref(l).value.startsWith("!!html")?(openBlock(),createElementBlock("div",{key:1,innerHTML:unref(l).value.slice(6)},null,8,_hoisted_21$2)):(openBlock(),createElementBlock("div",_hoisted_20$2,toDisplayString(unref(l).value),1))])),_:1})])])])])}}}),toolbox_vue_vue_type_style_index_0_scoped_88c6bbe5_lang="",Toolbox=_export_sfc(_sfc_main$d,[["__scopeId","data-v-88c6bbe5"]]),index$2="",index$1="";function getEquips(){return Object.entries(core.status.hero.items.equips)}function getAddStatus(t){const e=Object.assign({},t.value,t.percentage),n=Object.keys(e);return createVNode("div",{class:"equip-add-detail"},[n.map((e=>{const n=(t.value[e]??0)+core.status.hero[e]*(t.percentage[e]??0);return createVNode("span",{style:"display: flex"},[createVNode("span",{style:"flex-basis: 50%"},[core.getStatusLabel(e)]),createTextVNode("    "),createVNode("span",{style:{color:n>0?"lightgreen":"lightsalmon"}},[n>0?`+${n}`:n])])}))])}function getNowStatus(t,e=!1){return createVNode("div",{id:"hero-status"},[["hp","lv","atk","def","mdef","mana","hpmax","money"].map((n=>{let a;a="lv"===n?core.getLvName()??"":core.getRealStatus(n)?.toString();let o=0;if(has(t)){o+=t.value[n]??0;const e=t.percentage[n]*core.getStatus(n);o+=isNaN(e)?0:e}return e&&(o=-o),createVNode("div",{class:"hero-status-one"},[createVNode("span",{class:"hero-status-label"},[core.getStatusLabel(n)]),createVNode("div",{class:"hero-status-value"},[createVNode("span",{style:"margin-right: 20%"},[a]),0!==o&&createVNode("span",{style:{color:o>0?"lightgreen":"lightsalmon"}},[o>0?"+"+o:"-"+-o])])])}))])}const _hoisted_1$c={id:"equipbox"},_hoisted_2$a={id:"tools"},_hoisted_3$a={id:"equipbox-main"},_hoisted_4$7={id:"equip-list"},_hoisted_5$6={id:"filter"},_hoisted_6$6={key:0},_hoisted_7$5={key:1},_hoisted_8$4=["selected","onMousedown","onTouchstart","onClick"],_hoisted_9$4={class:"equip-icon"},_hoisted_10$4={class:"equip-name"},_hoisted_11$4={id:"equip-status"},_hoisted_12$3={id:"equip-status-main"},_hoisted_13$3={id:"equip-now"},_hoisted_14$3={id:"equip-now-div"},_hoisted_15$2=["draged","access","selected","onMouseenter","onClick"],_hoisted_16$2={key:0,id:"equip-hero"},_hoisted_17$1={id:"hero-icon"},_hoisted_18$1={id:"hero-status"},_hoisted_19$1={id:"equip-desc"},_hoisted_20$1={id:"equip-icon"},_hoisted_21$1={id:"equip-type"},_hoisted_22$1={id:"equip-add"},_hoisted_23$1={id:"equip-desc-text"},_hoisted_24$1={key:0},_hoisted_25$1=["innerHTML"],_hoisted_26$1={id:"icon-drag"},_sfc_main$c=defineComponent({__name:"equipbox",setup(t){const e=ref(getEquips()),n=ref("all"),a=core.material.items,o=ref(0),i=ref(!1),r=core.status.globalAttribute.equipName,l=ref(core.status.hero.equipment),s=ref(!1),c=ref(!1),d=ref(-1),p=ref("down"),u=ref("none"),h=ref("value"),m=["none","atk","def","hpmax","mana"],g=core.getStatusLabel;watch(p,(t=>{o.value=w.value.length-o.value-1})),watch(u,(t=>{o.value=0})),watch(h,(t=>{o.value=0}));const b=computed((()=>{const t=w.value[o.value],e={name:"没有选择装备",cls:"equip",text:"没有选择装备",equip:{type:"无",value:{},percentage:{},animate:""}};if(i.value){const t=l.value[o.value],n=core.material.items[t];return has(n)?n:e}return has(t)?a[t[0]]:e})),f=computed((()=>getAddStatus(b.value.equip,i.value))),x=computed((()=>b.value.text.startsWith("!!html")?ref(b.value.text):type(b.value.text,25,C("sin","out"),!0))),v=computed((()=>getNowStatus(b.value.equip,i.value))),w=computed((()=>{const t=p.value,o=u.value,i=h.value,r=e.value.filter((t=>{const e=a[t[0]].equip,r=e.type;return!("none"!==o&&!has(e[i][o]))&&("all"===n.value||("string"==typeof r?r===n.value:core.status.globalAttribute.equipName[r]===n.value))}));return"none"===o?r:"down"===t?r.sort(((t,e)=>{const n=a[t[0]].equip,r=a[e[0]].equip;return n[i][o]-r[i][o]})):r.sort(((t,e)=>{const n=a[t[0]].equip;return a[e[0]].equip[i][o]-n[i][o]}))}));function y(){core.plugin.equipOpened.value=!1}function k(t,e=!1){t===o.value||e||(s.value=!1),e&&(s.value=!1),e&&i.value===e&&o.value===t&&(core.unloadEquip(t),z()),i.value=e,o.value=t}function _(t){if(t<0)return!1;const e=b.value.equip?.type;return!!core.canEquip(w.value[o.value]?.[0])&&(!!has(e)&&("number"==typeof e?t===e:r[t]===e))}function z(){l.value=core.status.hero.equipment,e.value=getEquips()}function M(){useDrag(Array.from(document.querySelectorAll(".equip")),A,((t,e)=>{B=t,D=e}),(()=>{c.value&&(c.value=!1,function(){const t=d.value;if(t<0)return;if(!_(t))return void tip$1("warn","无法装备!");const e=l.value[t],n=w.value[o.value]?.[0];core.items._realLoadEquip(t,n,e),z()}())}),!0)}let[B,D]=[0,0];function A(t,e,n){if((t-B)**2+(e-D)**2>100&&!c.value&&(c.value=!0),c.value){const n=document.getElementById("icon-drag");n.style.left=t-24+"px",n.style.top=e-24+"px"}}function O(t){t.stopPropagation(),d.value=-1}async function P(){const t=core.plugin.transition.value;core.plugin.transition.value=!1,y(),await S(50),core.plugin.toolOpened.value=!0,core.plugin.transition.value=t}function N(t){const e=keycode(t.keyCode);e!==KeyCode.KeyQ&&e!==KeyCode.KeyX&&e!==KeyCode.Escape||y()}return watch(w,(t=>{M()})),onMounted((async()=>{M(),core.plugin.transition.value?await S(600):await S(50),document.addEventListener("keyup",N)})),onUnmounted((()=>{cancelGlobalDrag(A),document.removeEventListener("keyup",N)})),(t,e)=>{const n=SelectOption,S=__unplugin_components_1$1,M=__unplugin_components_1;return openBlock(),createElementBlock(Fragment,null,[createBaseVNode("div",_hoisted_1$c,[createBaseVNode("div",_hoisted_2$a,[createBaseVNode("span",{class:"button-text tools",onClick:y},[createVNode(unref(LeftOutlined)),createTextVNode(" 返回游戏")]),createBaseVNode("span",{class:"button-text tools",onClick:P},[createTextVNode("道具栏 "),createVNode(unref(RightOutlined))])]),createBaseVNode("div",_hoisted_3$a,[createBaseVNode("div",_hoisted_4$7,[createBaseVNode("div",_hoisted_5$6,[createVNode(S,{value:u.value,"onUpdate:value":e[0]||(e[0]=t=>u.value=t),class:"select"},{default:withCtx((()=>[(openBlock(),createElementBlock(Fragment,null,renderList(m,(t=>createVNode(n,{value:t},{default:withCtx((()=>[createTextVNode(toDisplayString("none"===t?"所有":unref(g)(t)),1)])),_:2},1032,["value"]))),64))])),_:1},8,["value"]),createVNode(M,{type:"vertical",class:"divider"}),createVNode(S,{value:h.value,"onUpdate:value":e[1]||(e[1]=t=>h.value=t),class:"select"},{default:withCtx((()=>[createVNode(n,{value:"value"},{default:withCtx((()=>[createTextVNode("数值")])),_:1}),createVNode(n,{value:"percentage"},{default:withCtx((()=>[createTextVNode("百分比")])),_:1})])),_:1},8,["value"]),createVNode(M,{type:"vertical",class:"divider"}),createBaseVNode("span",{onClick:e[2]||(e[2]=t=>{"down"===p.value?p.value="up":p.value="down"}),class:"button-text",id:"sort-type"},["down"===p.value?(openBlock(),createElementBlock("span",_hoisted_6$6,[createVNode(unref(SortAscendingOutlined))])):(openBlock(),createElementBlock("span",_hoisted_7$5,[createVNode(unref(SortDescendingOutlined))]))])]),createVNode(M,{dashed:"",style:{"border-color":"#ddd4",margin:"1vh 0 1vh 0"}}),createVNode(Scroll,{id:"equip-scroll"},{default:withCtx((()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(w),(([t,e],n)=>(openBlock(),createElementBlock("div",{class:"equip selectable",selected:o.value===n&&!i.value,onMousedown:t=>k(n),onTouchstart:t=>k(n),onClick:t=>function(t){if(t===o.value&&s.value){const t=w.value[o.value]?.[0];if(!core.canEquip(t))return void tip$1("warn","无法装备!");core.loadEquip(t),z(),s.value=!1}s.value=!0}(n)},[createBaseVNode("div",_hoisted_9$4,[createVNode(_sfc_main$l,{id:t??"none",width:32,height:32,noborder:!0},null,8,["id"]),createBaseVNode("span",_hoisted_10$4,toDisplayString(unref(a)[t].name),1)]),createBaseVNode("span",null,"× "+toDisplayString(e),1)],40,_hoisted_8$4)))),256))])),_:1})]),createBaseVNode("div",_hoisted_11$4,[createVNode(M,{class:"divider",type:unref(isMobile)?"horizontal":"vertical",dashed:"",style:{"border-color":"#ddd4"}},null,8,["type"]),createBaseVNode("div",_hoisted_12$3,[createBaseVNode("div",_hoisted_13$3,[createVNode(Scroll,{style:normalizeStyle({height:unref(isMobile)?"10vh":"30vh"})},{default:withCtx((()=>[createBaseVNode("div",_hoisted_14$3,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(r),((t,e)=>(openBlock(),createElementBlock("div",{class:"equip-now-one draginable selectable",draged:c.value,access:_(e),selected:i.value&&o.value===e,onMouseenter:t=>{return n=e,t.stopPropagation(),void(d.value=n);var n},onMouseleave:O,onClick:t=>k(e,!0)},[createVNode(_sfc_main$l,{id:l.value[e]??"none"},null,8,["id"]),createBaseVNode("span",null,toDisplayString(t),1)],40,_hoisted_15$2)))),256))])])),_:1},8,["style"])]),createVNode(M,{dashed:"",style:{"border-color":"#ddd4",margin:"1vh 0 1vh 0"}}),unref(isMobile)?createCommentVNode("",!0):(openBlock(),createElementBlock("div",_hoisted_16$2,[createBaseVNode("div",_hoisted_17$1,[createVNode(_sfc_main$l,{id:"hero",width:48,height:64,noborder:""})]),createBaseVNode("div",_hoisted_18$1,[(openBlock(),createBlock(resolveDynamicComponent(unref(v))))])]))]),unref(isMobile)?createCommentVNode("",!0):(openBlock(),createBlock(M,{key:0,class:"divider",type:"vertical",dashed:"",style:{"border-color":"#ddd4"}}))]),createBaseVNode("div",_hoisted_19$1,[createBaseVNode("div",_hoisted_20$1,[createVNode(_sfc_main$l,{id:i.value?l.value[o.value]??"none":unref(w)[o.value]?.[0]??"none"},null,8,["id"]),createBaseVNode("span",null,toDisplayString(unref(b).name),1)]),createBaseVNode("div",_hoisted_21$1,[createBaseVNode("span",null,"装备孔:"+toDisplayString(unref(b).equip?.type),1)]),createVNode(M,{dashed:"",style:{"border-color":"#ddd4",margin:"1vh 0 1vh 0"}}),createBaseVNode("div",_hoisted_22$1,[createBaseVNode("span",{style:normalizeStyle({"font-size":unref(isMobile)?"3.8vw":"3vh"}),id:"title"},"增减属性",4),createVNode(Scroll,{style:{width:"100%",height:"100%"}},{default:withCtx((()=>[(openBlock(),createBlock(resolveDynamicComponent(unref(f))))])),_:1})]),createVNode(M,{dashed:"",style:{"border-color":"#ddd4",margin:"1vh 0 1vh 0"}}),createBaseVNode("div",_hoisted_23$1,[createBaseVNode("span",{style:normalizeStyle({"font-size":unref(isMobile)?"3.8vw":"3vh"}),id:"title"},"装备介绍",4),createVNode(Scroll,{id:"desc-text",style:{height:"100%",width:"100%"}},{default:withCtx((()=>[unref(x).value.startsWith("!!html")?(openBlock(),createElementBlock("div",{key:1,innerHTML:unref(x).value.slice(6)},null,8,_hoisted_25$1)):(openBlock(),createElementBlock("div",_hoisted_24$1,toDisplayString(unref(x).value),1))])),_:1})])])])]),createBaseVNode("div",_hoisted_26$1,[c.value?(openBlock(),createBlock(_sfc_main$l,{key:0,class:"drag-icon",id:unref(w)[o.value]?.[0]??"none",width:48,height:48,noborder:""},null,8,["id"])):createCommentVNode("",!0)])],64)}}}),equipbox_vue_vue_type_style_index_0_scoped_4fac9519_lang="",Equipbox=_export_sfc(_sfc_main$c,[["__scopeId","data-v-4fac9519"]]),transition$2=ref(!1),itemDetail$1=ref(!0),autoSkill$1=ref(!0),autoScale$1=ref(!0);function reset(){const t=core.getLocalStorage("transition",!1);transition$2.value=t,core.plugin.transition.value=transition$2.value,autoScale$1.value=core.getLocalStorage("autoScale",!0)}function resetFlag(){flags.autoSkill??=!0,flags.itemDetail??=!0,itemDetail$1.value=!!flags.itemDetail,autoSkill$1.value=!!flags.autoSkill}function init$5(){return{resetSettings:reset,resetFlagSettings:resetFlag}}watch(transition$2,(t=>{core.plugin.transition.value=t,core.setLocalStorage("transition",t)})),watch(itemDetail$1,(t=>{flags.itemDetail=t,core.updateStatusBar()})),watch(autoSkill$1,(t=>{flags.autoSkill=t,core.updateStatusBar(),core.status.route.push(`set:autoSkill:${t}`)})),watch(autoScale$1,(t=>{core.setLocalStorage("autoScale",t)}));const transition$1={text:"界面动画",desc:["是否展示当一个ui界面,如怪物手册等的打开与关闭时的动画。当此项开启时,","所有界面被打开或关闭时都会展示动画,否则会直接展示出来"]},itemDetail={text:"宝石血瓶显伤",desc:["是否在地图上显示宝石血瓶装备等增加的属性值"]},autoSkill={text:"自动切换技能",desc:["开启后,打怪物的时候会自动选择伤害最低的技能。同时显伤也会显示此状态下的伤害,","临界也会考虑技能在内"]},autoScale={text:"自动放缩",desc:["开启后,每次进入游戏时会自动缩放游戏画面至合适值。该项只对电脑端有效。","
","
","缩放原则如下:","
","1. 首先尝试缩放至最大缩放比例","
","2. 如果缩放后游戏画面高度高于页面高度的95%,那么缩小一个缩放比例,否则保持最大比例"]},settingInfo={transition:transition$1,itemDetail:itemDetail,autoSkill:autoSkill,autoScale:autoScale},_hoisted_1$b={class:"colomn"},_hoisted_2$9={class:"tools"},_hoisted_3$9=["id"],_sfc_main$b=defineComponent({__name:"colomn",props:{width:null,height:null,left:null,right:null},emits:["close"],setup(t,{emit:e}){const n=t,a=(1e8*Math.random()).toFixed(0);let o,i,r;function l(){o=document.getElementById(`column-${a}`),i=document.getElementById(`column-left-${a}`),r=document.getElementById(`column-right-${a}`),has(n.width)&&!isMobile&&(o.style.width=`${n.width}%`),has(n.height)&&(o.style.height=`${n.height}%`),has(n.left)&&(i.style.flexBasis=`${n.left}%`),has(n.right)&&(r.style.flexBasis=`${n.right}%`)}function s(t){const n=keycode(t.keyCode);n!==KeyCode.Escape&&n!==KeyCode.KeyX||e("close")}return onMounted((async()=>{l(),await S(50),core.plugin.transition.value&&await S(600),document.addEventListener("keyup",s)})),onUpdated(l),onUnmounted((()=>{document.removeEventListener("keyup",s)})),(t,n)=>{const o=__unplugin_components_1;return openBlock(),createElementBlock("div",_hoisted_1$b,[createBaseVNode("div",_hoisted_2$9,[createBaseVNode("span",{class:"button-text",onClick:n[0]||(n[0]=t=>e("close"))},[createVNode(unref(LeftOutlined)),createTextVNode(" 返回游戏")])]),createBaseVNode("div",{class:"column-main",id:`column-${unref(a)}`},[createVNode(Scroll,{class:"column-left",id:`column-left-${unref(a)}`},{default:withCtx((()=>[renderSlot(t.$slots,"left",{},void 0,!0)])),_:3},8,["id"]),createVNode(o,{class:"divider",dashed:"",style:{"border-color":"#ddd4"},type:unref(isMobile)?"horizontal":"vertical"},null,8,["type"]),createVNode(Scroll,{class:"column-right",id:`column-right-${unref(a)}`},{default:withCtx((()=>[renderSlot(t.$slots,"right",{},void 0,!0)])),_:3},8,["id"])],8,_hoisted_3$9)])}}}),colomn_vue_vue_type_style_index_0_scoped_682173f1_lang="",Column=_export_sfc(_sfc_main$b,[["__scopeId","data-v-682173f1"]]),_hoisted_1$a={id:"setting-list"},_hoisted_2$8=["selected"],_hoisted_3$8=["selected"],_hoisted_4$6=["selected"],_hoisted_5$5=["selected"],_hoisted_6$5=["innerHTML"],_sfc_main$a=defineComponent({__name:"settings",setup(t){const e=ref("transition"),n=computed((()=>splitText(settingInfo[e.value].desc)));function a(){core.plugin.settingsOpened.value=!1}function o(t){e.value===t?"transition"===t?transition$2.value=!transition$2.value:"itemDetail"===t?itemDetail$1.value=!itemDetail$1.value:"autoSkill"===t?autoSkill$1.value=!autoSkill$1.value:"autoScale"===t&&(autoScale$1.value=!autoScale$1.value):e.value=t}return(t,i)=>(openBlock(),createBlock(Column,{width:60,height:60,onClose:a},{left:withCtx((()=>[createBaseVNode("div",_hoisted_1$a,[createBaseVNode("span",{class:"selectable",selected:"transition"===e.value,onClick:i[0]||(i[0]=t=>o("transition"))},"界面动画:   "+toDisplayString(unref(transition$2)?"ON":"OFF"),9,_hoisted_2$8),createBaseVNode("span",{class:"selectable",selected:"itemDetail"===e.value,onClick:i[1]||(i[1]=t=>o("itemDetail"))},"宝石血瓶显伤:   "+toDisplayString(unref(itemDetail$1)?"ON":"OFF"),9,_hoisted_3$8),createBaseVNode("span",{class:"selectable",selected:"autoSkill"===e.value,onClick:i[2]||(i[2]=t=>o("autoSkill"))},"自动切换技能:   "+toDisplayString(unref(autoSkill$1)?"ON":"OFF"),9,_hoisted_4$6),createBaseVNode("span",{class:"selectable",selected:"autoScale"===e.value,onClick:i[3]||(i[3]=t=>o("autoScale"))},"自动放缩:   "+toDisplayString(unref(autoScale$1)?"ON":"OFF"),9,_hoisted_5$5)])])),right:withCtx((()=>[createBaseVNode("span",{innerHTML:unref(n)},null,8,_hoisted_6$5)])),_:1}))}}),settings_vue_vue_type_style_index_0_scoped_1a46d8ac_lang="",Settings=_export_sfc(_sfc_main$a,[["__scopeId","data-v-1a46d8ac"]]),tip={text:"注意事项",condition:"true",desc:["这里显示本塔中需要注意的事项。","
","
",'1. ',"本百科全书字数很多,可以选择性地阅读。","
","
",'2. 本塔中几乎所有 ui 都可以纵向滚动,如果发现显示不全,',"可以尝试上下拖动,就像浏览网页一样。电脑端还可以使用滚轮上下滚动。","大部分可以纵向滚动的 ui 都会在右方有一个滚动条,也可以拖动它进行滚动,例如本百科全书的条目列表和","条目说明都是可以通过上述方式滚动的。","
","
",'3. 本百科全书的内容会随着游戏的推进而增加新内容,',"同时每次增加新内容时都会有提示。","
","
","4. 本塔主要面向电脑端设计,",'建议使用电脑游玩以获得更好的游戏体验。但是手机依然可以游玩本塔,',"但部分操作可能不是很方便,ui 也可能不是很美观,不过依然可以完整体验本游戏。","
","
",'5. 对于手机端,可以点击右下角的难度文字来切换工具栏至数字键。',"这样,你可以更加方便地进行使用技能等操作。","
","
","6. 本塔中几乎所有 ui 在打开时都会有一个0.6s的动画,如果不想要,可以在开头捡的系统设置里面关闭(默认关闭)。","同时,几乎所有 ui 的退出按钮都在左上角。"]},tutorial={text:"新手教程",condition:"true",desc:["本条目是魔塔游戏的新手教程,如果对魔塔有一定的了解,可以直接忽略。","
","
",'魔塔是一种固定数值rpg游戏,在打怪的时候,遵循我打你一下,你打我一下',"的原则,造成的伤害是己方攻击减去对方防御,最后怪物的伤害便是你在战斗中失去的生命值。当然,为了游戏体验,","战斗过程会被省略。","
","
","宝石可以增加你的属性,在大部分魔塔中,红宝石增加攻击,蓝宝石增加防御,本塔也不例外。血瓶可以增加你的生命值。",'一般情况下,拾取宝物的优先级是红宝石 > 蓝宝石 > 血瓶,',"但部分情况可能不是这样,这需要你自己的游玩经验等。","
","
","本塔还拥有升级机制,升级时能够给你增加大量的属性,因此,一般情况下当你接近升级时,需要尽快打怪升级。","
","
","然后是门。在魔塔中,很多门都不是必开的门,它们的作用一般是可以躲开怪物拿宝石,或者门里面有血瓶等。","当你血量足够时,这些门可以不用开,不然可能会有必开的门无法开启导致卡关。对于钥匙,每种颜色的钥匙开对应颜色的门,",'价值是红 > 蓝 > 黄。',"
","
","为了更加方便,本塔增加了宝石血瓶显示数据的功能,这样你可以清晰地知道每个宝石增加了多少属性。","
","
","下面是勇士基础属性的说明:","
",'1. 生命值:',"勇士的血量,当它归零时,游戏结束","
",'2. 攻击:',"勇士的攻击,攻击越高,每回合对怪物造成的伤害越高","
",'3. 防御:',"勇士的防御,防御越高,怪物每回合对你造成的伤害越低","
",'4. 经验:',"勇士的经验,到达一定值后会升级。本塔在状态栏中显示为距离升级剩余的经验","
",'5. 金币:',"勇士的金币,可以用于购买物品。本塔中在进入第二章后会有用","
",'6. 护盾:',"勇士的护盾,用处是能够在战后减少同等数值的伤害,在本塔中可以使伤害变为负值。本塔中,在点开无上之盾技能后,","智慧会充当护盾。更多信息可以查看“勇士属性”条目。"]},noun={text:"名词解释",condition:"true",desc:["本条目会解释诸如临界等魔塔术语,对魔塔有一定了解的可以直接忽略。","
","
",'1. 临界:',"在魔塔中,临界是一个非常重要的东西。首先,我们很容易可以得到,吃攻击时只有当减少了战斗回合数时怪物的伤害会减少,",'那么,吃攻击时怪物的减伤是不连续的。而距离下一次减少怪物的伤害需要加的攻击的量',"便是临界。当我们吃一个攻击恰好使怪物伤害减少时,称为“踩临界”。一般情况下,踩临界的减伤要比吃防御要高,","因此,当能踩到临界时,我们应当先踩临界,再吃防御。","
","
",'2. 加防:',"加防指的是加防对怪物的减伤。在本塔中,会以“n防”的形式显示在怪物手册或其他地方。在本塔中,一般你不需要刻意计算",'临界与加防减伤,你可以在怪物手册中查看减伤折线图,',"更多信息请查看“怪物手册”条目。","
","
",'3. 咸鱼:',"一般来讲,开不必开的门,或者使用不必使用的道具被称为咸鱼,或者是咸门,咸道具。一般情况下,说“咸”便是指咸鱼。","一般情况下,门后面有宝石且无法通过其他方式进入的都是必开门,而只有血瓶的都是咸鱼门。"]},shortcut={text:"快捷键",condition:"true",desc:["这里包含本塔中所有的快捷键。对于手机端,可以点击工具栏的难度的位置切换工具栏至数字键。","
","
","下面是样板中的所有快捷键:","
",'X:打开怪物手册',"
",'S:打开存档界面',"
",'D:打开读档界面',"
",'A或5:读取自动存档',"
",'W或6:撤销读取的自动存档',"
",'Q:打开装备栏',"
",'T:打开道具栏',"
",'G:打开楼层传送器',"
",'Z或单击勇士:勇士转向',"
",'空格或双击勇士或7:轻按(拾取勇士周围的宝物但不移动勇士)',"
",'Esc:打开游戏菜单',"
",'R:打开录像回放菜单',"
",'N:询问是否返回游戏主菜单',"
",'V:打开快捷商店',"
",'B:打开数据统计界面',"
",'Alt + 数字键:快速换装',"
",'PgUp或PgDn:浏览地图',"
",'P:打开评论区',"
","
","下面是本塔中新增的快捷键:","
",'M:快速标记怪物',"
",'J:打开技能树']},extraAttr={text:"勇士属性",condition:"true",desc:["这里只对本塔中新增的勇士属性进行说明。","
","
",'1. 智慧:',"智慧是该塔的核心属性之一。智慧可用于智慧加点,该功能会在进入第一章后开启。使用智慧可以点技能树。","除此之外,智慧也有其它功能。例如点开无上之盾技能后智慧还可以充当护盾,第二章点开学习技能后可以使用智慧学习怪物技能等。","
","
",'2. 生命回复:',"生命回复指的是勇士每回合回复的生命值。当与怪物战斗时,勇士每回合都会回复对应量的生命值。因此,当吃攻击时,","与怪物战斗的回合数可能会减少,导致生命回复的总回复量减少。不过大部分情况下不需要在意这一点,","减少一回合并不会对吸的血造成很大的影响,除了一些特殊情况。","该项会显示在状态栏的生命值右方偏下的位置。","
","
",'3. 额外攻击:',"额外攻击指的是勇士每回合的额外造成的伤害。一般情况下,当勇士破了怪物的防御时,该项便会起作用。","额外攻击相当于魔攻,无法通过一般方式减免。当勇士攻击怪物时,每回合都会附加对应量的伤害,对坚固怪同样有效。","额外攻击会显示在状态栏的攻击右方偏下的位置。"]},statusBar={text:"状态栏",condition:"true",desc:["在本塔中,状态栏与游戏画面是分开的。你可以自由拖动状态栏,也可以修改其大小。","具体方法如下:点击一下状态栏之后,左上角的拖拽图标会放大,此时你可以按住它拖动状态栏。","你可以直接将鼠标放到状态栏的边框上,然后直接拖动以改变状态栏的大小。手机端可以先点击一下状态栏使边框","变宽,然后拖动。电脑端点击状态栏也可以使边框变宽。如果你想折叠状态栏,完全可以拖动状态栏的下边框,","然后直接拖动至上方,这时状态栏便会变成一条线,相当于折叠了状态栏","
","
","状态栏可以纵向滚动,如果你发现状态栏显示不全,可以尝试拉大状态栏,或者纵向拖动状态栏,就像网页上下滚动一样。","电脑端还可以使用滚轮上下滚动。","
","
","如果你觉得状态栏有些碍事,你完全可以将其缩小,或者把它放到不碍事的地方。","
","
","状态栏上面可能会有按钮,你可以直接点击。","
","
","对状态栏布局的说明。","
","本塔的状态栏的布局较为灵活。它是横向的布局,在状态栏较宽时可以看到,属性会横向依次显示。按照显示顺序,","状态栏显示项依次为:","
","1. 楼层名,点击后进入浏览地图界面","
","2. 勇士等级","
","3. 当前开启的技能","
","4. 当前勇士生命值,右方偏下为每回合回复的生命值,当点开治愈之泉技能时,右方偏上会显示距离增加生命回复剩余血瓶数","
","5. 当前勇士的攻击,右方偏下为勇士的额外攻击","
","6. 当前勇士的防御","
","7. 当前勇士的智慧,可以用于智慧加点等","
","8. 当前勇士的金币","
","9. 当前勇士距离升级剩余经验数","
","10. 三色钥匙","
","11. 打开技能树(进入第一章后开启)","
","12. 查看勇士的技能(进入第一章后开启)"]},markEnemy={text:"标记怪物",condition:"true",desc:["标记怪物可以使你能够更加方便地了解一个怪物的情况。","
","你可以通过以下两种方式标记怪物:","
","1. 打开怪物手册,选中怪物,进入怪物更多信息栏,点击标记怪物。","
",'2. 将鼠标移动到你想要标记的怪物上面,',"按下M键,即可标记怪物,注意浏览地图中不能用该方式标记。","手机端暂时没有快速标记怪物的方式。","
","
","当一个怪物被标记后,怪物会有以下行为:","
","1. 当勇士恰好能打败怪物时,会进行提示","
","2. 当怪物的伤害恰好低于勇士生命值的2/3或1/3时,会进行提示","
","3. 当勇士恰好踩到怪物的临界时,会进行提示","
","4. 当怪物零伤时,会进行提示","
","5. 被标记的怪物会出现类似于状态栏的盒子,可以随意拖动和改变大小。你也可以选择关闭这个盒子,","被关闭后可以通过重新标记来打开。这个盒子会显示标记的怪物的临界与伤害信息等,与状态栏一样,可以纵向滚动。","
","
","这个功能可以用于标记boss或者较强的挡路怪,当这些怪能够攻击时你可以直接收到信息,不需要再时刻费心注意怪物的伤害。","
","
","注意,标记的怪物是不计入存档的,同时标记的怪物只在本次游戏中有效,刷新页面后便会消失。"]},book={text:"怪物手册",condition:"true",desc:["本塔的怪物手册功能很多,下面一一介绍。","
","
","怪物手册打开的时候有一个0.6秒的动画,如果不想要可以在开头捡的系统设置里面关闭(默认关闭)。","
","
","打开怪物手册后,怪物手册的布局与样板自带的类似。与样板不同的是,这里的怪物手册不再是翻页式结构。","这里的怪物手册是滚动式结构,你可以像浏览网页一样,用手指或鼠标上下滚动或者拖动右边的滚动条,电脑端还可以使用滚轮。","对于电脑端,还可以使用键盘操作。上和下可以上下选择怪物,左和右可以向上或向下移动5个怪物。这些操作与样板都类似。","
","
","点击一个怪物或者按下回车空格后,将进入怪物详细信息界面。这个界面分为多个栏,分别是特殊属性栏,详细临界栏,更多信息栏。","进入怪物详细信息后默认在特殊属性栏,该栏可以查看怪物的特殊属性。","注意特殊属性依然可以纵向滚动。在特殊属性下方,","是怪物的临界表,可以粗略地查看怪物的临界信息。在下方,你可以点击详细临界信息进入详细临界栏。","
","
","在详细临界栏中,怪物的伤害会以可视化折线图的方式显示出来,从而你可以更为清晰地看出怪物减伤趋势。","除了查看怪物伤害曲线,你还可以规划宝石。每个折线图下方都有一个滑动条,你可以拖动来模拟吃宝石。","注意,拖动时,滑动条左边会显示当前的加攻或加防次数,这个数值指的是在勇士所在地图中需要吃的最弱的宝石数量。","例如,当前勇士所在地图中最弱的宝石加2点攻击,加攻次数为3,那么勇士的攻击增加量就为6。","勇士增加的攻击数值也会在下方显示。当加攻次数和加防次数改变时,折线图也会变化。",'当前状态下怪物的伤害以及减伤总量也会在下方显示。',"注意在此栏中无法通过点击屏幕回到怪物手册界面,更多信息请查看最后一段。","
","
","在特殊属性栏,点击下方的怪物更多信息可以进入更多信息栏。此栏中,你可以查看怪物描述。但这不是这一栏的核心功能。","这一栏的核心功能是标记怪物。被标记的怪物会有一些非常方便的行为,这些行为可以在“标记怪物”条目中查看。","
","
","注意,在怪物详细信息中,除详细临界栏外均可以通过点击屏幕返回到怪物手册界面。",'如果你是电脑端,在任意栏目中按下X键会退出怪物手册,返回游戏,','按下回车(Enter)键会回到怪物手册界面。']},fly={text:"楼层传送器",condition:"true",desc:["楼传界面打开时会有一个0.6秒的动画,如果不想要可以在开头捡的系统设置里面关闭。(默认关闭)","
","
",'本塔的楼层传送器是一个集分区、小地图、楼层传送于一体的多功能楼传。',"下面是楼传的具体说明:","
","
","首先,对于电脑端,最左侧显示区域信息,手机端则在上方的左侧。","
","
","然后,区域的右侧是小地图栏,这一栏会显示楼层的平面结构。你可以拖动,也可以使用滚轮或者双指放缩,当放缩到一定大小时,","会显示地图的缩略图。直接点击地图也可以选中地图,再次点击会传送至目标地图。","
","
","对于电脑端,最右侧是当前选中的地图的缩略图,手机则在下方,点击缩略图也可以传送。缩略图的下方是当前选中的地图名,","左右各有两个按钮,表示后退10层、后退1层、前进1层、前进10层,与样板的楼传的按钮功能类似。","
","
","最下方是设置按钮,可以切换无边框模式,电脑端还可以切换传统按键模式,传统按键模式下按键遵循样板的楼传按键方式。",'对于非传统模式,上下左右可以移动地图,','PageUp和PageDown可以前进1层或后退1层。']},tools={text:"道具栏与装备栏",condition:"true",desc:["道具栏与装备栏打开时会有一个0.6秒的动画,如果不想要可以在开头捡的系统设置里面关闭。(默认关闭)","
","
","本塔的道具栏没有特别之处,这里不需要说明。主要是装备栏。","
","
","本塔的装备栏手机和电脑端不同,电脑端比手机端多了一个勇士属性的显示。在装备栏的装备列表栏,","上方有两个选择框与一个排序方式的选项。这三个可以筛选你拥有的装备并进行排序,从而让你能够更清楚地知道哪个装备更强。","第一个选择框可以筛选装备增加的属性,如果装备不增加选择的属性,那么会不显示。第二个选择框可以筛选增加的属性的方式,","有数值增加和百分比增加两种。在这个选择框右边有一个图标,这个图标可以改变武器的排序方式,有升序和降序两种,默认为升序。","例如,你拥有两个装备,分别增加10攻击和20攻击,三者你分别选择了攻击,数值,升序,那么增加10攻击的装备会排在上面,","而增加20攻击的装备会排在下面。","
","
","对于电脑端,如果你想装装备,可以直接拖动装备至装备孔,也可以选中装备后再次点击。手机端暂时无法拖动装备。当选中一个装备后,","电脑端和手机端均会显示装备增加或减少的属性,注意有的装备可能不增加属性但是有特殊功能。对于电脑端,","还会直接在勇士属性栏显示增加或减少的属性。"]},skillTree={text:"技能树",condition:"flags.chapter > 0",desc:['打开技能树可以点击状态栏的',"技能树按钮(如果发现没有显示可以尝试上下滚动状态栏),还可以按",'快捷键J打开。',"
","
","技能树是本塔的主要玩法之一。它可以让你使用智慧来学习技能,增加属性等。智慧在状态栏显示在防御的下一项,","绿宝石可以增加勇士的智慧。","
","
","打开技能树页面后,你可以在上方看到技能的名称与描述,下方会显示技能树,以及升级要求等。点击一个技能可以选中技能,","再次点击可以升级技能。注意,前置技能栏可以上下滚动,因此如果发现显示不全,可以尝试上下滚动前置技能栏","
","
","注意,技能在点开之后是无法取消的,因此,加点时请慎重加点。注意,部分技能是必点技能,这些技能会在技能说明中明确指出,","这些技能一般需要尽早点出。"]},desc={tip:tip,tutorial:tutorial,noun:noun,shortcut:shortcut,extraAttr:extraAttr,statusBar:statusBar,markEnemy:markEnemy,book:book,fly:fly,tools:tools,skillTree:skillTree},_hoisted_1$9={id:"desc-list"},_hoisted_2$7=["selected","onClick"],_hoisted_3$7={key:0},_hoisted_4$5=["innerHTML"],_sfc_main$9=defineComponent({__name:"desc",setup(__props){const selected=ref(Object.keys(desc)[0]);function exit(){core.plugin.descOpened.value=!1}const content=computed((()=>splitText(desc[selected.value].desc)));function click(key){eval(desc[key].condition)&&(selected.value=key)}function show(condition){return eval(condition)}return(t,e)=>(openBlock(),createBlock(Column,{onClose:exit,width:80,height:80,left:30,right:70},{left:withCtx((()=>[createBaseVNode("div",_hoisted_1$9,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(desc),((t,e)=>(openBlock(),createElementBlock("div",{class:"selectable",selected:selected.value===e,onClick:t=>click(e)},[show(t.condition)?(openBlock(),createElementBlock("span",_hoisted_3$7,toDisplayString(t.text),1)):createCommentVNode("",!0)],8,_hoisted_2$7)))),256))])])),right:withCtx((()=>[createBaseVNode("span",{innerHTML:unref(content)},null,8,_hoisted_4$5)])),_:1}))}}),desc_vue_vue_type_style_index_0_scoped_68d53667_lang="",Desc=_export_sfc(_sfc_main$9,[["__scopeId","data-v-68d53667"]]),none={text:"无",opened:"true",desc:["当前未选择技能"]},blade={text:"1:断灭之刃",opened:"core.getSkillLevel(2) > 0",desc:['快捷键1,开启后勇士攻击增加${level:2 * 10}%,',"同时防御减少${level:2 * 10}%。","
","
","当前等级:${level:2}"]},jump={text:"2:跳跃",opened:"flags.skill2 === true",desc:['快捷键2,消耗200点生命值,困难消耗400点,一个地图只能使用3次,',"如果前方为可通行的地面,则不能使用该技能,如果前方为怪物,则将怪物移至勇士视线上第一个不能通行的方块后","如果前方为障碍物,则直接跳到该障碍物的后方。"]},shield={text:"3:铸剑为盾",opened:"core.getSkillLevel(10) > 0",desc:['快捷键3,开启后勇士防御增加${level:10 * 10}%,',"同时攻击减少${level:10 * 10}%。","
","
","当前等级:${level:10}"]},skills={none:none,blade:blade,jump:jump,shield:shield},_hoisted_1$8={id:"skill-list"},_hoisted_2$6=["selected","selectable","onClick"],_hoisted_3$6=["innerHTML"],_sfc_main$8=defineComponent({__name:"skill",setup(__props){const selected=ref("none");function skillOpened(skill){return eval(skills[skill].opened)}function select(t){skillOpened(t)&&(selected.value=t)}const content=computed((()=>eval("`"+skills[selected.value].desc.map(((t,e,n)=>/^\d+\./.test(t)?`${" ".repeat(12)}${t}`:has(n[e-1])&&"
"!==t&&"
"===n[e-1]||0===e?`${" ".repeat(8)}${t}`:t)).join("").replace(/level:(\d+)/g,"core.getSkillLevel($1)")+"`")));function exit(){core.plugin.skillOpened.value=!1}return(t,e)=>(openBlock(),createBlock(Column,{onClose:exit,width:70,height:70},{left:withCtx((()=>[createBaseVNode("div",_hoisted_1$8,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(skills),((t,e)=>(openBlock(),createElementBlock("span",{class:"selectable skill-item",selected:e===selected.value,selectable:skillOpened(e),onClick:t=>select(e)},toDisplayString(t.text),9,_hoisted_2$6)))),256))])])),right:withCtx((()=>[createBaseVNode("span",{innerHTML:unref(content)},null,8,_hoisted_3$6)])),_:1}))}}),skill_vue_vue_type_style_index_0_scoped_9f619ff1_lang="",Skill=_export_sfc(_sfc_main$8,[["__scopeId","data-v-9f619ff1"]]),_withScopeId$3=t=>(pushScopeId("data-v-b1be4e88"),t=t(),popScopeId(),t),_hoisted_1$7={id:"skill-tree"},_hoisted_2$5={id:"tools"},_hoisted_3$5={id:"skill-title"},_hoisted_4$4={id:"skill-info"},_hoisted_5$4=["innerHTML"],_hoisted_6$4={id:"skill-effect"},_hoisted_7$4=["innerHTML"],_hoisted_8$3=["innerHTML"],_hoisted_9$3={id:"skill-bottom"},_hoisted_10$3=_withScopeId$3((()=>createBaseVNode("canvas",{id:"skill-canvas"},null,-1))),_hoisted_11$3={id:"skill-upgrade-info"},_hoisted_12$2={id:"skill-level"},_hoisted_13$2={key:1,id:"skill-consume",style:{color:"gold"}},_hoisted_14$2={id:"skill-front"},_hoisted_15$1=_withScopeId$3((()=>createBaseVNode("span",null,"前置技能",-1))),_hoisted_16$1={id:"skill-chapter"},_sfc_main$7=defineComponent({__name:"skillTree",setup(__props){let canvas,ctx;const selected=ref(0),chapter=ref("chapter1"),update=ref(!1),chapterDict={chapter1:"第一章",chapter2:"第二章"};flags.skillTree??=0;const chapterList=Object.keys(core.plugin.skills);selected.value=core.plugin.skills[chapterList[flags.skillTree]][0].index,chapter.value=chapterList[flags.skillTree],watch(selected,draw),watch(update,(()=>mdef.value=core.status.hero.mdef));const mdef=ref(core.status.hero.mdef),skill=computed((()=>(update.value,core.getSkillFromIndex(selected.value)))),skills=computed((()=>core.plugin.skills[chapter.value])),desc=computed((()=>eval("`"+splitText(skill.value.desc).replace(/level(:\d+)?/g,((t,e)=>e?`core.getSkillLevel(${e})`:`core.getSkillLevel(${skill.value.index})`))+"`"))),effect=computed((()=>[0,1].map((v=>eval("`"+(0===v?"当前效果:":"下一级效果:")+skill.value.effect.join("").replace(/level(:\d+)?/g,((t,e)=>e?`(core.getSkillLevel(${e}) + ${v})`:`(core.getSkillLevel(${skill.value.index}) + ${v})`))+"`"))))),dict=computed((()=>{const t={};return skills.value.forEach(((e,n)=>{t[e.index]=n})),t})),front=computed((()=>skill.value.front.map((t=>`${core.getSkillLevel(t[0])>=t[1]?"a":"b"}${t[1]}级 ${skills.value[dict.value[t[0]]].title}`)))),consume=computed((()=>(update.value,core.getSkillConsume(selected.value)))),level=computed((()=>(update.value,core.getSkillLevel(selected.value))));function exit(){core.plugin.skillTreeOpened.value=!1}function resize(){const t=getComputedStyle(canvas);canvas.width=parseFloat(t.width)*devicePixelRatio,canvas.height=parseFloat(t.height)*devicePixelRatio}function draw(){const t=dict.value,e=canvas.width/11;ctx.clearRect(0,0,canvas.width,canvas.height),skills.value.forEach((n=>{const[a,o]=n.loc.map((t=>2*t-1));n.front.forEach((([i],r)=>{const l=skills.value[t[i]];ctx.beginPath(),ctx.moveTo(a*e+e/2,o*e+e/2),ctx.lineTo(...l.loc.map((t=>(2*t-1)*e+e/2))),core.getSkillLevel(l.index){const[n,a]=t.loc.map((t=>2*t-1)),o=core.getSkillLevel(t.index);ctx.save(),ctx.lineWidth=.06*e,selected.value===t.index?(ctx.strokeStyle="#ff0",ctx.lineWidth*=2):0===o?ctx.strokeStyle="#888":o===t.max?ctx.strokeStyle="#F7FF68":ctx.strokeStyle="#00FF69",ctx.strokeRect(n*e,a*e,e,e);const i=core.material.images.images[`skill${t.index}.png`];ctx.drawImage(i,n*e,a*e,e,e),selected.value===t.index&&(ctx.fillStyle="#ff04",ctx.fillRect(n*e,a*e,e,e)),ctx.restore()}))}function click(t){const e=t.offsetX,n=t.offsetY,a=canvas.width/devicePixelRatio/11,o=Math.floor(e/a),i=Math.floor(n/a);if(o%2!=1||i%2!=1)return;const r=Math.floor(o/2)+1,l=Math.floor(i/2)+1,s=skills.value.find((t=>t.loc[0]===r&&t.loc[1]===l));s&&(selected.value!==s.index?selected.value=s.index:upgrade(s.index))}function upgrade(t){core.upgradeSkill(t)?(tip$1("success","升级成功!"),update.value=!update.value,core.status.route.push(`skill:${selected.value}`)):tip$1("error","升级失败!")}function key(t){const e=keycode(t.keyCode);e!==KeyCode.Escape&&e!==KeyCode.KeyX&&e!==KeyCode.KeyJ||exit(),e!==KeyCode.Space&&e!==KeyCode.Enter&&e!==KeyCode.KeyC||upgrade(selected.value)}function selectChapter(t){const e=chapterList.indexOf(chapter.value)+t;has(chapterList[e])&&flags.chapter>e&&(selected.value=core.plugin.skills[chapterList[e]][0].index,chapter.value=chapterList[e],update.value=!update.value,flags.skillTree=e,draw())}return onMounted((async()=>{canvas=document.getElementById("skill-canvas"),ctx=canvas.getContext("2d"),resize(),draw(),await S(50),core.plugin.transition.value&&await S(600),canvas.addEventListener("click",click),document.addEventListener("keyup",key)})),onUnmounted((()=>{document.removeEventListener("keyup",key)})),(t,e)=>{const n=__unplugin_components_1;return openBlock(),createElementBlock("div",_hoisted_1$7,[createBaseVNode("div",_hoisted_2$5,[createBaseVNode("span",{id:"back",class:"button-text tools",onClick:exit},[createVNode(unref(LeftOutlined)),createTextVNode("返回游戏")])]),createBaseVNode("span",_hoisted_3$5,toDisplayString(unref(skill).title),1),createVNode(n,{dashed:"",style:{"border-color":"#ddd4"},id:"divider"}),createBaseVNode("div",_hoisted_4$4,[createVNode(Scroll,{id:"skill-desc","no-scroll":!0},{default:withCtx((()=>[createBaseVNode("span",{innerHTML:unref(desc)},null,8,_hoisted_5$4)])),_:1}),createBaseVNode("div",_hoisted_6$4,[unref(level)>0?(openBlock(),createElementBlock("span",{key:0,innerHTML:unref(effect)[0]},null,8,_hoisted_7$4)):createCommentVNode("",!0),unref(level)[createBaseVNode("div",_hoisted_14$2,[_hoisted_15$1,(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(front),(t=>(openBlock(),createElementBlock("span",{style:normalizeStyle({color:t.startsWith("a")?"#fff":"#f44"})},toDisplayString(t.slice(1)),5)))),256))])])),_:1}),createVNode(n,{dashed:"",class:"upgrade-divider"}),createBaseVNode("div",_hoisted_16$1,[createBaseVNode("span",{class:"button-text",onClick:e[0]||(e[0]=t=>selectChapter(-1))},[createVNode(unref(LeftOutlined))]),createTextVNode("    "),createBaseVNode("span",null,toDisplayString(chapterDict[chapter.value]),1),createTextVNode("    "),createBaseVNode("span",{class:"button-text",onClick:e[1]||(e[1]=t=>selectChapter(1))},[createVNode(unref(RightOutlined))])])])])])}}}),skillTree_vue_vue_type_style_index_0_scoped_b1be4e88_lang="",SkillTree=_export_sfc(_sfc_main$7,[["__scopeId","data-v-b1be4e88"]]),index="";function init$4(){return{splitArea:splitArea,getMapDrawData:getMapDrawData}}let area={};const bfsCache={},drawCache={},arrow={leftPortal:"left",rightPortal:"right",upPortal:"up",downPortal:"down"};function splitArea(){area={};const t=[];for(const e of core.floorIds){if(t.includes(e)||core.status.maps[e].deleted)continue;const n=getMapData(e,!0);if(t.push(...n.maps),n.maps.length>0){const t=core.status.maps[e].title;area[t]=n.maps}}}function getArea(){return area}function getMapDrawData(t,e=5,n=1,a=!1){const o=`${t},${e},${n}`;if(drawCache[o]&&!a)return drawCache[o];const{link:i,maps:r}=getMapData(t,a),l={},s=[],c=core.status.maps[t];let d=-c.width/2,p=c.width/2,u=-c.height/2,h=c.height/2;for(const[g,b]of Object.entries(i)){const[t,a,o,i]=g.split(","),[r,c,m]=b.split(","),f=core.status.maps[t],x=core.status.maps[r],v=parseInt(a),w=parseInt(o),y=parseInt(c),k=parseInt(m),_=f.width,z=f.height,S=x.width,M=x.height;l[t]??=[0,0];const[C,B]=l[t];if(!l[r]){const t=C+(v-_/2)-(y-S/2)+(2*n+e)*core.utils.scan[i].x,a=B+(w-z/2)-(k-M/2)+(2*n+e)*core.utils.scan[i].y;l[r]=[t,a]}const[D,A]=l[r];s.push([C+(v-_/2+.5),B+(w-z/2+.5),D+(y-S/2+.5),A+(k-M/2+.5)]);const O=D-S/2,P=D+S/2,N=A-M/2,E=A+M/2;Op&&(p=P),Nh&&(h=E)}Object.values(l).forEach((t=>{t[0]-=d,t[1]-=u})),s.forEach((t=>{t[0]-=d,t[2]-=d,t[1]-=u,t[3]-=u})),d-=5,p+=5,u-=5,h+=5;const m={locs:l,line:s,width:p-d,height:h-u};return drawCache[o]=m}function getMapData(t,e=!1){if(has(bfsCache[t])&&!e)return bfsCache[t];const n=[t],a={[t]:!0},o=[t],i={};for(;n.length>0;){const t=n.shift(),e=core.floors[t].changeFloor,r=core.getMapBlocksObj(t);for(const[l,s]of Object.entries(e)){const e=s.floorId;if(e.startsWith(":"))continue;const c=r[l].event.id;if(c in arrow&&!a[e]){const a=`${t},${l},${arrow[c]}`,r=`${e},${s.loc[0]},${s.loc[1]}`;i[a]=r,n.push(e),o.push(e)}}a[t]=!0}const r={maps:o,link:i};return bfsCache[t]=r}const _withScopeId$2=t=>(pushScopeId("data-v-581299e6"),t=t(),popScopeId(),t),_hoisted_1$6={id:"fly"},_hoisted_2$4={id:"tools"},_hoisted_3$4={id:"fly-settings"},_hoisted_4$3={id:"fly-border"},_hoisted_5$3=_withScopeId$2((()=>createBaseVNode("span",null,"无边框模式",-1))),_hoisted_6$3={key:0,id:"fly-tradition"},_hoisted_7$3=_withScopeId$2((()=>createBaseVNode("span",null,"传统按键模式",-1))),_hoisted_8$2={id:"fly-main"},_hoisted_9$2={id:"fly-left"},_hoisted_10$2={id:"area-list"},_hoisted_11$2=["selected","onClick"],_hoisted_12$1={id:"fly-right"},_hoisted_13$1={id:"fly-tools"},_hoisted_14$1={id:"fly-now"},_sfc_main$6=defineComponent({__name:"fly",setup(t){const e=getArea(),n=ref(Object.keys(e).find((t=>e[t].includes(core.status.floorId)))),a=ref(core.status.floorId),o=ref(!1),i=ref(!1);let r=isMobile?1.5:3,l=0,s=0,c={},d={};o.value=core.getLocalStorage("noBorder")??!1,i.value=core.getLocalStorage("flyTradition")??!1;const p=computed((()=>core.status.maps[a.value]));watch(a,M),watch(n,(t=>{l=0,s=0,r=3,B=3,e[t]&&!e[t].includes(a.value)&&(a.value=e[t].find((t=>t===core.status.floorId))??e[t][0])})),watch(o,(t=>{core.setLocalStorage("noBorder",t),c={},w()})),watch(i,(t=>{core.setLocalStorage("flyTradition",t)}));const u=document.createElement("canvas"),h=u.getContext("2d");let m,g,b,f;function x(){core.plugin.flyOpened.value=!1}const v=computed((()=>core.status.maps[a.value].title));function w(t=!1){const e=o.value?.5:1,n=getMapDrawData(a.value,o.value?0:5,e,t),i=h,l=r*devicePixelRatio;u.width=n.width*l,u.height=n.height*l,i.lineWidth=e*devicePixelRatio/2,i.strokeStyle="#fff",i.scale(l,l),i.translate(5,5),o.value||n.line.forEach((([t,e,n,a])=>{i.beginPath(),i.moveTo(t,e),i.lineTo(n,a),i.stroke()}));for(const[a,[r,s]]of Object.entries(n.locs))o.value||y(a,r,s),z(a,r,s);k()}function y(t,e,n){const i=o.value?.5:1,r=h;r.lineWidth=i*devicePixelRatio;const l=core.status.maps[t];core.hasVisitedFloor(t)?r.fillStyle="#000":r.fillStyle="#d0d",t===a.value?r.strokeStyle="gold":r.strokeStyle="#fff",r.strokeRect(e-l.width/2,n-l.height/2,l.width,l.height),r.fillRect(e-l.width/2,n-l.height/2,l.width,l.height),t===a.value&&(r.fillStyle="#ff04",r.fillRect(e-l.width/2,n-l.height/2,l.width,l.height))}function k(t=1){g.clearRect(0,0,m.width,m.height),g.drawImage(u,0,0,u.width,u.height,l*devicePixelRatio+(m.width-u.width)/2,s*devicePixelRatio+(m.height-u.height)/2,u.width,u.height)}function _(t,e,n){const a=core.status.maps[t],i=r*devicePixelRatio,p=l*devicePixelRatio+(m.width-u.width)/2+5*i,h=s*devicePixelRatio+(m.height-u.height)/2+5*i,g=p+(e-a.width/2)*i,b=h+(n-a.height/2)*i,f=g+a.width*i,x=b+a.height*i;return d[t]=[g,b,f,x],!(c[t]||!o.value&&r<=4||f<0||x<0||g>m.width||b>m.height)}function z(t,e,n,o=!1){if(!o&&!_(t,e,n))return;const i=core.status.maps[t];c[t]=!0;const r=h;core.drawThumbnail(t,void 0,{all:!0,inFlyMap:!0,x:e-i.width/2,y:n-i.height/2,w:i.width,h:i.height,ctx:r,damage:!0}),core.hasVisitedFloor(t)||(r.fillStyle="#d0d6",r.fillRect(e-i.width/2,n-i.height/2,i.width,i.height),r.fillStyle="#000"),a.value===t&&(r.fillStyle="#ff04",r.fillRect(e-i.width/2,n-i.height/2,i.width,i.height),r.fillStyle="#000")}function M(){c={},w(),function(){let t=b.width,e=b.height,n=0,o=0;const i=p.value.width/p.value.height;i>1&&(e=t/i,o=b.height/2-e/2),i<1&&(t=e*i,n=b.width/2-t/2),f.fillStyle="#000",f.fillRect(0,0,b.width,b.height),core.drawThumbnail(a.value,void 0,{ctx:f,all:!0,damage:!0,inFlyMap:!0,x:n,y:o,w:t,h:e})}()}function C(){core.flyTo(a.value)?x():tip$1("error",`无法飞往${p.value.title}`)}let B=r;const D=lodash.exports.debounce((t=>{m.style.transform="",c={},w(),B=t}),200);function A(t){l*=t,s*=t,r*=t,D(r),m.style.transform=`scale(${r/B})`,d={}}let O=0,P=0,N=!1,E=0,L=0;function I(t,e){if(F)return;l+=t-O,s+=e-P,O=t,P=e,function(){const t=o.value?.5:1,e=getMapDrawData(a.value,o.value?0:5,t);for(const[n,[a,o]]of Object.entries(e.locs))_(n,a,o)&&z(n,a,o,!0)}(),k(),(Math.abs(t-E)>10||Math.abs(e-L)>10)&&(N=!0)}function T(t){if(N)return;const e=t.offsetX*devicePixelRatio,n=t.offsetY*devicePixelRatio;for(const[o,[i,r,l,s]]of Object.entries(d))e>=i&&e<=l&&n>=r&&n<=s&&(o===a.value?C():a.value=o)}function V(t){const o=core.floorIds.indexOf(a.value);let i=o+t;i<0&&(i=0),i>=core.floorIds.length&&(i=core.floorIds.length-1);if(core.status.maps[core.floorIds[i]].deleted)for(;i!==o;){i-=Math.sign(t);if(!core.status.maps[core.floorIds[i]].deleted)break}var r;a.value=core.floorIds[i],r=a.value,n.value=Object.keys(e).find((t=>e[t].includes(r))),$(a.value)}function j(t){const e=getMapData(a.value);for(const[n,o]of Object.entries(e.link)){if(!n.startsWith(a.value))continue;if(n.split(",")[3]===t){const t=o.split(",")[0];return $(t),void(a.value=t)}}}function $(t){const e=getMapDrawData(t,o.value?0:5,o.value?.5:1);if(!e.locs[t])return;const[n,a]=e.locs[t];l=(-n+e.width/2-5)*r,s=(-a+e.height/2-5)*r}function R(t){const e=keycode(t.keyCode);e!==KeyCode.Enter&&e!==KeyCode.Space&&e!==KeyCode.KeyC||C(),e!==KeyCode.Escape&&e!==KeyCode.KeyX&&e!==KeyCode.KeyG||x(),i.value?(e===KeyCode.UpArrow&&V(1),e===KeyCode.DownArrow&&V(-1),e===KeyCode.LeftArrow&&V(-10),e===KeyCode.RightArrow&&V(10),e===KeyCode.PageUp&&V(10),e===KeyCode.PageDown&&V(-10)):(e===KeyCode.LeftArrow&&j("left"),e===KeyCode.RightArrow&&j("right"),e===KeyCode.UpArrow&&j("up"),e===KeyCode.DownArrow&&j("down"),e===KeyCode.PageUp&&V(1),e===KeyCode.PageDown&&V(-1))}let F=!1,K=0;function U(t){t.touches.length>=2&&(F=!0,K=Math.sqrt((t.touches[0].clientX-t.touches[1].clientX)**2+(t.touches[0].clientY-t.touches[1].clientY)**2))}function H(t){t.touches.length<2&&(F=!1)}function W(t){if(!F)return;const e=Math.sqrt((t.touches[0].clientX-t.touches[1].clientX)**2+(t.touches[0].clientY-t.touches[1].clientY)**2);A(e/K),K=e}return onMounted((async()=>{m=document.getElementById("fly-map"),g=m.getContext("2d"),b=document.getElementById("fly-thumbnail"),f=b.getContext("2d");const t=getComputedStyle(m),e=getComputedStyle(b);m.width=parseFloat(t.width)*devicePixelRatio,m.height=parseFloat(t.height)*devicePixelRatio,b.width=parseFloat(e.width)*devicePixelRatio,b.height=parseFloat(e.width)*devicePixelRatio,Array.from(document.getElementsByClassName("fly-settings")).forEach((t=>{t.addEventListener("click",(e=>t.blur()))})),$(a.value),M(),useDrag(m,I,((t,e)=>{O=t,P=e,E=t,L=e}),(()=>{setTimeout((()=>{N=!1}),50)}),!0),useWheel(m,((t,e)=>{A(.1*-Math.sign(e)+1)})),await S(50),core.plugin.transition.value&&await S(600),document.addEventListener("keyup",R),m.addEventListener("touchstart",U),m.addEventListener("touchend",H),m.addEventListener("touchend",W)})),onUnmounted((()=>{cancelGlobalDrag(I),document.removeEventListener("keyup",R)})),(t,a)=>{const r=__unplugin_components_0$1,l=__unplugin_components_1;return openBlock(),createElementBlock("div",_hoisted_1$6,[createBaseVNode("div",_hoisted_2$4,[createBaseVNode("span",{class:"button-text",onClick:x},[createVNode(unref(LeftOutlined)),createTextVNode(" 返回游戏")])]),createBaseVNode("div",_hoisted_3$4,[createBaseVNode("div",_hoisted_4$3,[_hoisted_5$3,createVNode(r,{class:"fly-settings",checked:o.value,"onUpdate:checked":a[0]||(a[0]=t=>o.value=t),"checked-children":"ON","un-checked-children":"OFF"},null,8,["checked"])]),unref(isMobile)?createCommentVNode("",!0):(openBlock(),createElementBlock("div",_hoisted_6$3,[_hoisted_7$3,createVNode(r,{class:"fly-settings",checked:i.value,"onUpdate:checked":a[1]||(a[1]=t=>i.value=t),"checked-children":"ON","un-checked-children":"OFF"},null,8,["checked"])]))]),createBaseVNode("div",_hoisted_8$2,[createBaseVNode("div",_hoisted_9$2,[createVNode(Scroll,{id:"fly-area"},{default:withCtx((()=>[createBaseVNode("div",_hoisted_10$2,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(e),((t,e)=>(openBlock(),createElementBlock("span",{selected:n.value===e,class:"selectable",onClick:t=>n.value=e},toDisplayString(e),9,_hoisted_11$2)))),256))])])),_:1}),createVNode(l,{type:"vertical",dashed:"",id:"divider-left"}),createBaseVNode("div",{id:"fly-map-div"},[createBaseVNode("canvas",{id:"fly-map",onClick:T})])]),createVNode(l,{id:"divider-right",dashed:"",type:unref(isMobile)?"horizontal":"vertical"},null,8,["type"]),createBaseVNode("div",_hoisted_12$1,[createBaseVNode("canvas",{id:"fly-thumbnail",onClick:C}),createBaseVNode("div",_hoisted_13$1,[createVNode(unref(DoubleLeftOutlined),{onClick:a[2]||(a[2]=t=>V(-10)),class:"button-text"}),createVNode(unref(LeftOutlined),{onClick:a[3]||(a[3]=t=>V(-1)),class:"button-text"}),createBaseVNode("span",_hoisted_14$1,toDisplayString(unref(v)),1),createVNode(unref(RightOutlined),{onClick:a[4]||(a[4]=t=>V(1)),class:"button-text"}),createVNode(unref(DoubleRightOutlined),{onClick:a[5]||(a[5]=t=>V(10)),class:"button-text"})])])])])}}}),fly_vue_vue_type_style_index_0_scoped_581299e6_lang="",Fly=_export_sfc(_sfc_main$6,[["__scopeId","data-v-581299e6"]]),bookOpened=ref(!1),toolOpened=ref(!1),equipOpened=ref(!1),showStatusBar=ref(!1),settingsOpened=ref(!1),descOpened=ref(!1),skillOpened=ref(!1),skillTreeOpened=ref(!1),flyOpened=ref(!1),transition=ref(!0),noClosePanel=ref(!1);let app;const UI_LIST=[[bookOpened,Book],[toolOpened,Toolbox],[equipOpened,Equipbox],[settingsOpened,Settings],[descOpened,Desc],[skillOpened,Skill],[skillTreeOpened,SkillTree],[flyOpened,Fly]],uiStack=ref([]);function init$3(){return app=document.getElementById("root"),UI_LIST.forEach((([t,e])=>{watch(t,(t=>{if(!0===t)uiStack.value.push(markRaw(e)),showApp();else{const t=uiStack.value.findIndex((t=>t===e));1===uiStack.value.length?hideApp(t):uiStack.value.splice(t,1)}}))})),{uiStack:uiStack,transition:transition,bookOpened:bookOpened,toolOpened:toolOpened,equipOpened:equipOpened,showStatusBar:showStatusBar,settingsOpened:settingsOpened,descOpened:descOpened,skillOpened:skillOpened,skillTreeOpened:skillTreeOpened,flyOpened:flyOpened}}async function showApp(){core.lockControl(),transition.value?app.style.transition="all 0.6s linear":app.style.transition="none",app.style.display="flex",await S(50),app.style.opacity="1"}async function hideApp(t){transition.value?(app.style.transition="all 0.6s linear",app.style.opacity="0",await S(600)):(app.style.transition="",app.style.opacity="0"),uiStack.value.splice(t,1),app.style.display="none",noClosePanel.value||core.closePanel(),noClosePanel.value=!1}const status=ref(!1);function init$2(){return{statusBarStatus:status}}const chapterShowed=ref(!1),chapterContent=ref("");function init$1(){return{chapterShowed:chapterShowed,chapterContent:chapterContent}}const ani=new R;ani.register("rect",0);const path1={MT16:[[23,23],[0,23]],MT15:[[63,4],[61,4],[61,5],[58,5],[58,8],[54,8],[54,11],[51,11],[51,8],[45,8],[45,4],[47,4],[47,6],[51,6],[51,5],[52,5],[52,3],[50,3],[50,5],[48,5],[48,3],[35,3],[35,5],[31,5],[31,7],[34,7],[34,9],[31,9],[31,11],[12,11],[12,8],[1,8],[1,7],[0,7]],MT14:[[127,7],[126,7],[126,8],[124,8],[124,7],[115.2,7],[115.2,9.2],[110.2,9.2],[110.2,11],[109.8,11],[109.8,8.8],[111.8,8.8],[111.8,7],[104,7],[104,3],[100,3],[100,4],[98,4],[98,3],[96,3],[96,6],[95,6],[95,7],[88,7],[88,6],[85,6],[85,8],[83,8],[83,9],[81,9],[81,11],[72,11],[72,5],[68,5],[68,8],[67,8],[67,10],[65,10],[65,11],[62,11],[62,9],[60,9],[60,11],[57,11],[57,9],[54,9]]},camera1=[["MT16",0,10,0,1600,C("sin","in")],["MT15",45,0,0,2324,C("sin","in")],["MT15",40,0,2324,1992,C("sin","out")],["MT15",41,0,5312,498,C("sin","in-out")],["MT15",37,0,5810,1660,C("sin","in")],["MT15",29,0,7470,830,C("sin","out")],["MT15",25,0,11454,996,C("sin","in")],["MT15",12,0,12450,996,j()],["MT15",0,0,13446,1470,C("sin","out")],["MT14",109,0,0,1328,C("sin","in")],["MT14",104,0,1328,332,C("sin","out")],["MT14",92,0,5478,2822,C("sin","in")],["MT14",84,0,8300,1992,j()],["MT14",74,0,10292,2988,j()],["MT14",65,0,13280,2988,j()],["MT14",58,0,16268,1992,j()],["MT14",47,0,18260,3320,j()],["MT14",36,0,21580,3320,j()],["MT14",0,0,24900,9960,j()]];function init1(){const t=[];["MT13","MT14","MT15"].forEach((e=>{core.status.maps[e].cannotMoveDirectly=!0,core.extractBlocks(e),core.status.maps[e].blocks.forEach((n=>{["animates","items"].includes(n.event.cls)&&!n.event.id.endsWith("Portal")&&t.push([n.x,n.y,e])}))})),t.forEach((t=>{core.removeBlock(...t)}))}function chaseShake(t){t.ani.mode(shake2(2/32,O(1,1,1,1,1,1,1,1,1,1,1,1)),!0).time(5e4).shake(1,0)}async function wolfMove(t){core.moveBlock(23,17,Array(6).fill("down"),80),await S(550),core.setBlock(508,23,23)}function judgeFail1(t){t.ani.ticker.add((()=>{core.status.hero.loc.x>core.bigmap.offsetX/32+17&&(t.end(),ani.time(750).apply("rect",0),core.lose("逃跑失败"))}))}function drawBack(t){t.on("MT15",0,(()=>{ani.mode(C("sin","out")).time(1500).absolute().apply("rect",64);const t=core.createCanvas("chaseBack",0,0,480,480,120);t.fillStyle="#000";const e=()=>{t||ani.ticker.remove(e),core.clearMap(t),t.fillRect(0,0,480,ani.value.rect),t.fillRect(0,480,480,-ani.value.rect)};ani.ticker.add(e)}))}function para1(t){t.on("MT15",830,(()=>{for(let t=53;t<58;t++)for(let e=3;e<8;e++)core.setBlock(336,t,e);core.drawAnimate("explosion3",55,5),core.drawAnimate("stone",55,5)})),t.on("MT15",1080,(()=>{core.setBlock(336,58,9),core.setBlock(336,59,9),core.drawAnimate("explosion1",58,9),core.drawAnimate("explosion1",59,9)})),t.on("MT15",1190,(()=>{core.setBlock(336,53,8),core.setBlock(336,52,8),core.drawAnimate("explosion1",53,8),core.drawAnimate("explosion1",52,8)})),t.on("MT15",1580,(()=>{core.setBlock(336,51,7),core.drawAnimate("explosion1",51,7)})),t.on("MT15",1830,(()=>{core.setBlock(336,47,7),core.setBlock(336,49,9),core.drawAnimate("explosion1",49,9),core.drawAnimate("explosion1",47,7)}))}function para2(t){t.onHeroLoc("MT15",(()=>{core.setBlock(336,45,9),core.drawAnimate("explosion1",45,9)}),45,8),t.onHeroLoc("MT15",(()=>{core.setBlock(336,44,6),core.drawAnimate("explosion1",44,6)}),45,6),t.onHeroLoc("MT15",(()=>{core.setBlock(336,44,4),core.drawAnimate("explosion1",44,4),core.drawAnimate("explosion1",48,6),core.removeBlock(48,6)}),45,4),t.onHeroLoc("MT15",(()=>{core.setBlock(336,41,4),core.setBlock(336,32,6),core.drawAnimate("explosion1",41,4),core.drawAnimate("explosion1",32,6)}),41,3),t.onHeroLoc("MT15",(()=>{core.drawAnimate("explosion3",37,7),core.vibrate("vertical",1e3,25,10);for(let t=36;t<42;t++)for(let e=4;e<11;e++)core.setBlock(336,t,e)}),35,3),t.onHeroLoc("MT15",(()=>{core.vibrate("vertical",1e4,25,1),core.removeBlock(34,8),core.removeBlock(33,8),core.drawAnimate("explosion1",34,8),core.drawAnimate("explosion1",33,8)}),31,5),t.onHeroLoc("MT15",(()=>{core.setBlock(336,32,9),core.drawAnimate("explosion1",32,9)}),33,7),t.onHeroLoc("MT15",(()=>{core.removeBlock(32,9),core.drawAnimate("explosion1",32,9)}),[33,34,34],9);for(let e=19;e<31;e++){const n=e;t.onHeroLoc("MT15",(()=>{core.setBlock(336,n+1,11),core.drawAnimate("explosion1",n+1,11)}),n,11)}}function para3(t){t.onHeroLoc("MT14",(()=>{core.setBlock(336,126,6),core.setBlock(336,124,6),core.setBlock(336,124,9),core.setBlock(336,126,9),core.drawAnimate("explosion1",126,6),core.drawAnimate("explosion1",124,6),core.drawAnimate("explosion1",124,9),core.drawAnimate("explosion1",126,9)}),126,7),t.onHeroLoc("MT14",(()=>{core.setBlock(508,127,7),core.jumpBlock(127,7,112,7,500,!0),setTimeout((()=>{core.setBlock(509,112,7)}),520),core.drawHeroAnimate("amazed"),core.setBlock(336,121,6),core.setBlock(336,122,6),core.setBlock(336,120,8),core.setBlock(336,121,8),core.setBlock(336,122,8),core.drawAnimate("explosion1",121,6),core.drawAnimate("explosion1",122,6),core.drawAnimate("explosion1",120,8),core.drawAnimate("explosion1",121,8),core.drawAnimate("explosion1",122,8)}),123,7),t.onHeroLoc("MT14",(()=>{core.setBlock(336,109,11),core.removeBlock(112,8),core.drawAnimate("explosion1",109,11),core.drawAnimate("explosion1",112,8),core.insertAction([{type:"moveHero",time:400,steps:["backward:1"]}]),t.onHeroLoc("MT14",(()=>{core.jumpBlock(112,7,110,4,500,!0),core.drawHeroAnimate("amazed"),setTimeout((()=>{core.setBlock(506,110,4)}),540)}),112,8)}),110,10),t.onHeroLoc("MT14",(()=>{core.setBlock(336,117,6),core.setBlock(336,116,6),core.setBlock(336,115,6),core.setBlock(336,114,6),core.setBlock(336,117,8),core.setBlock(336,116,8),core.drawAnimate("explosion1",117,6),core.drawAnimate("explosion1",116,6),core.drawAnimate("explosion1",115,6),core.drawAnimate("explosion1",114,6),core.drawAnimate("explosion1",116,8),core.drawAnimate("explosion1",117,8)}),118,7),t.onHeroLoc("MT14",(()=>{core.setBlock(336,112,8),core.setBlock(336,113,7),core.drawAnimate("explosion1",112,8),core.drawAnimate("explosion1",113,7)}),112,7),t.onHeroLoc("MT14",(()=>{for(let t=111;t<=115;t++)core.setBlock(336,t,10),core.drawAnimate("explosion1",t,10);core.setBlock(336,112,8),core.drawAnimate("explosion1",112,8)}),115,7),t.onHeroLoc("MT14",(()=>{core.jumpBlock(97,4,120,-3,2e3);for(let t=109;t<=120;t++)for(let e=3;e<=11;e++)7!=e&&core.setBlock(336,t,e);core.drawAnimate("explosion2",119,7),core.removeBlock(105,7),core.drawAnimate("explosion1",105,7)}),110,7),t.onHeroLoc("MT14",(()=>{core.setBlock(336,95,3),core.setBlock(336,93,6),core.drawAnimate("explosion1",95,3),core.drawAnimate("explosion1",93,6)}),97,3),t.onHeroLoc("MT14",(()=>{core.setBlock(336,87,4),core.setBlock(336,88,5),core.drawAnimate("explosion1",87,4),core.drawAnimate("explosion1",88,5)}),88,6),t.onHeroLoc("MT14",(()=>{core.setBlock(336,84,6),core.setBlock(336,85,5),core.setBlock(336,86,8),core.drawAnimate("explosion1",84,6),core.drawAnimate("explosion1",85,5),core.drawAnimate("explosion1",86,8)}),86,6),t.onHeroLoc("MT14",(()=>{core.setBlock(336,81,8),core.setBlock(336,82,11),core.drawAnimate("explosion1",81,8),core.drawAnimate("explosion1",82,11)}),81,9),t.onHeroLoc("MT14",(()=>{core.setBlock(336,73,8),core.setBlock(336,72,4),core.drawAnimate("explosion1",73,8),core.drawAnimate("explosion1",72,4)}),72,11),t.onHeroLoc("MT14",(()=>{for(let t=74;t<86;t++)for(let e=3;e<12;e++)core.setBlock(336,t,e);core.drawAnimate("explosion2",79,7),core.vibrate("vertical",4e3,25,15)}),71,7),t.onHeroLoc("MT14",(()=>{core.setBlock(336,68,4),core.setBlock(336,67,6),core.drawAnimate("explosion1",68,4),core.drawAnimate("explosion1",67,6)}),68,5),t.onHeroLoc("MT14",(()=>{for(let t=65;t<=72;t++)for(let e=3;e<=9;e++)core.setBlock(336,t,e);core.setBlock(336,72,10),core.setBlock(336,72,11),core.drawAnimate("explosion3",69,5)}),67,10),t.onHeroLoc("MT14",(()=>{core.setBlock(336,63,9),core.setBlock(336,60,8),core.setBlock(336,56,11),core.drawAnimate("explosion1",63,9),core.drawAnimate("explosion1",60,8),core.drawAnimate("explosion1",56,11)}),64,11),t.onHeroLoc("MT14",(()=>{for(let t=58;t<=64;t++)for(let e=3;e<=11;e++)core.setBlock(336,t,e);core.drawAnimate("explosion2",61,7)}),57,9);for(let e=21;e<49;e++)t.onHeroLoc("MT14",(()=>{for(let t=3;t<=11;t++)core.setBlock(336,e+4,t),core.drawAnimate("explosion1",e+4,t)}),e);t.onHeroLoc("MT14",(async()=>{flags.finishChase1=!0,core.autoFixRouteBoss(),core.showStatusBar(),ani.time(750).apply("rect",0),t.end(),await S(750),ani.ticker.destroy(),core.deleteCanvas("chaseBack")}),21)}function getChaseDataByIndex(t){if(1===t)return init1(),{camera:camera1,fns:[para1,para2,para3,chaseShake,wolfMove,drawBack,judgeFail1],path:path1};throw new ReferenceError("Deliver wrong chase index.")}function init(){return{startChase:startChase}}function shake2(t,e){let n=0;return a=>(n+=Math.PI/2,Math.sin(n)*t*e(a))}class Chase{constructor(t,e,n,a=!1){_defineProperty(this,"ani",new R),_defineProperty(this,"path",void 0),_defineProperty(this,"showPath",!1),this.path=t,flags.__lockViewport__=!0,flags.onChase=!0,flags.chaseTime={[core.status.floorId]:Date.now()},this.ani.absolute().time(0).move(core.bigmap.offsetX/32,core.bigmap.offsetY/32),e.forEach((t=>t(this)));const o=[],i=core.createCanvas("chasePath",0,0,0,0,35);for(const[r,l,s,c,d,p,u]of n)o.includes(r)||(this.on(r,0,(()=>{flags.__lockViewport__=!1,core.drawHero(),flags.__lockViewport__=!0,this.ani.time(0).move(core.bigmap.offsetX/32,core.bigmap.offsetY/32)}),!0),o.push(r)),has(u)?this.on(r,c,(()=>{this.ani.time(d).mode(p).moveAs(u)})):this.on(r,c,(()=>{this.ani.time(d).mode(p).move(l,s)}));if(this.ani.ticker.add((()=>{flags.floorChanging||(core.setViewport(32*this.ani.x,32*this.ani.y),core.relocateCanvas(i,32*-this.ani.x,32*-this.ani.y))})),a)for(const[r,l]of Object.entries(t))this.on(r,0,(()=>{const t=core.status.maps[r];core.resizeCanvas(i,32*t.width,32*t.height),i.beginPath(),i.moveTo(32*l[0][0]+16,32*l[1][1]+24),i.lineJoin="round",i.lineWidth=4,i.strokeStyle="cyan",i.globalAlpha=.3,l.forEach(((t,e,n)=>{if(0===e)return;const[a,o]=t;i.lineTo(32*a+16,32*o+24)})),i.stroke()}))}on(t,e,n,a=!1){const o=()=>{flags.chaseTime?.[t]&&Date.now()-(flags.chaseTime?.[t]??0)>=e&&(n(this),this.ani.ticker.remove(o))};this.ani.ticker.add(o,a)}onHeroLoc(t,e,n,a,o=0){if(1===o)return"number"==typeof n&&(n=[n]),"number"==typeof a&&(a=[a]),void n.forEach((n=>{a.forEach((a=>{this.onHeroLoc(t,e,n,a)}))}));const i=()=>{if((()=>{if(core.status.floorId!==t)return!1;if(has(n))if("number"==typeof n){if(core.status.hero.loc.x!==n)return!1}else if(!n.includes(core.status.hero.loc.x))return!1;if(has(a))if("number"==typeof a){if(core.status.hero.loc.y!==a)return!1}else if(!a.includes(core.status.hero.loc.y))return!1;return!0})()){e(this);try{this.ani.ticker.remove(i)}catch{}}};this.ani.ticker.add(i)}setPathShowStatus(t){this.showPath=t}end(){this.ani.ticker.destroy(),delete flags.onChase,delete flags.chase,flags.__lockViewport__=!1,core.deleteCanvas("chasePath")}}async function startChase(t){const e=getChaseDataByIndex(t);flags.chaseIndex=t,flags.onChase=!0,await S(20),flags.chase=new Chase(e.path,e.fns,e.camera,0===flags.chaseHard)}function forward(){const t=[init$a(),init$3(),init$7(),init$8(),init$9(),init$2(),init$6(),init$5(),init$1(),init$4(),init()];!async function(){for(const e of t)for(const t in e){const n=e[t];t in core.plugin||(core.plugin[t]=n),n instanceof Function&&(t in core||t.startsWith("_")||(core[t]=n))}console.log("插件转发完成!")}()}main.forward=forward;const _hoisted_1$5={id:"ui"},_sfc_main$5=defineComponent({__name:"App",setup:t=>(t,e)=>(openBlock(),createElementBlock("div",_hoisted_1$5,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(uiStack),(t=>(openBlock(),createBlock(resolveDynamicComponent(t))))),256))]))}),App_vue_vue_type_style_index_0_scoped_9668aeb3_lang="",App=_export_sfc(_sfc_main$5,[["__scopeId","data-v-9668aeb3"]]),_imports_0="/HumanBreak/project/images/skill.png",_imports_1="/HumanBreak/project/images/hp.png",_imports_2="/HumanBreak/project/images/atk.png",_imports_3="/HumanBreak/project/images/def.png",_imports_4="/HumanBreak/project/images/IQ.png",_imports_5="/HumanBreak/project/images/money.png",_imports_6="/HumanBreak/project/images/exp.png",_hoisted_1$4=["id"],_hoisted_2$3=["id"],_hoisted_3$3=["id","selected"],_hoisted_4$2=["id","selected"],_hoisted_5$2=["id","selected"],_hoisted_6$2=["id","selected"],_hoisted_7$2=["id","selected"],_sfc_main$4=defineComponent({__name:"box",props:{resizable:{type:Boolean},left:null,top:null,width:null,height:null},emits:["update:left","update:top","update:width","update:height"],setup(t,{emit:e}){const n=t,a=(1e8*Math.random()).toFixed(0),o=ref(!1);let i,r,l,s,c,d,p=0;const u=ref(isMobile?window.innerWidth-100:.175*window.innerWidth),h=ref(isMobile?250:window.innerHeight-100),m=ref(50),g=ref(50);async function b(){o.value=!0,p=window.setTimeout((()=>{o.value=!1}),4e3)}watch(m,(t=>e("update:left",t))),watch(g,(t=>e("update:top",t))),watch(u,(t=>e("update:width",t))),watch(h,(t=>e("update:height",t)));let f=0,x=0;function v(t,e){const n=getComputedStyle(i),a=parseFloat(n.left),r=parseFloat(n.top);m.value=a+t-f,g.value=r+e-x,i.style.left=`${m.value}px`,i.style.top=`${g.value}px`,o.value=!0,clearTimeout(p),f=t,x=e}let w=m.value+u.value;function y(t,e){i.style.left=`${t}px`,u.value=w-t,m.value=t,i.style.width=`${u.value}px`}let k=g.value+h.value;function _(t,e){i.style.top=`${e}px`,h.value=k-e,g.value=e,i.style.height=`${h.value}px`}function z(t,e){const n=getComputedStyle(i);u.value=t-parseFloat(n.left),i.style.width=`${u.value}px`}function M(t,e){const n=getComputedStyle(i);h.value=e-parseFloat(n.top),i.style.height=`${h.value}px`}function C(){i=document.getElementById(`box-${a}`),document.getElementById(`box-move-${a}`),r=document.getElementById(`border-left-${a}`),s=document.getElementById(`border-top-${a}`),l=document.getElementById(`border-right-${a}`),c=document.getElementById(`border-bottom-${a}`),d=document.getElementById(`box-drag-${a}`),i&&(has(n.left)&&(m.value=n.left),has(n.top)&&(g.value=n.top),has(n.width)&&(u.value=n.width),has(n.height)&&(h.value=n.height),i.style.left=`${m.value}px`,i.style.top=`${g.value}px`,i.style.width=`${u.value}px`,i.style.height=`${h.value}px`)}return onUpdated(C),onMounted((async()=>{await S(50),C(),i&&(useDrag(d,v,((t,e)=>{f=t,x=e}),(()=>{o.value=!1}),!0),n.resizable&&(useDrag(r,y,((t,e)=>{w=m.value+u.value}),void 0,!0),useDrag(s,_,((t,e)=>{k=g.value+h.value}),void 0,!0),useDrag(l,z,void 0,void 0,!0),useDrag(c,M,void 0,void 0,!0)))})),onUnmounted((()=>{cancelGlobalDrag(v),n.resizable&&(cancelGlobalDrag(y),cancelGlobalDrag(_),cancelGlobalDrag(z),cancelGlobalDrag(M))})),(e,n)=>(openBlock(),createElementBlock("div",{id:`box-${unref(a)}`,class:"box"},[createBaseVNode("div",{id:`box-main-${unref(a)}`,class:"box-main",onClick:b},[renderSlot(e.$slots,"default",{},void 0,!0)],8,_hoisted_2$3),createBaseVNode("div",{id:`box-move-${unref(a)}`,class:"box-move",selected:o.value},[createVNode(unref(DragOutlined),{id:`box-drag-${unref(a)}`,class:"box-drag",style:{right:"0",bottom:"0",position:"absolute"}},null,8,["id"])],8,_hoisted_3$3),createBaseVNode("div",{class:"border border-vertical border-left",id:`border-left-${unref(a)}`,selected:o.value&&t.resizable},null,8,_hoisted_4$2),createBaseVNode("div",{class:"border border-horizontal border-top",id:`border-top-${unref(a)}`,selected:o.value&&t.resizable},null,8,_hoisted_5$2),createBaseVNode("div",{class:"border border-vertical border-right",id:`border-right-${unref(a)}`,selected:o.value&&t.resizable},null,8,_hoisted_6$2),createBaseVNode("div",{class:"border border-horizontal border-bottom",id:`border-bottom-${unref(a)}`,selected:o.value&&t.resizable},null,8,_hoisted_7$2)],8,_hoisted_1$4))}}),box_vue_vue_type_style_index_0_scoped_c65890c4_lang="",Box=_export_sfc(_sfc_main$4,[["__scopeId","data-v-c65890c4"]]),_withScopeId$1=t=>(pushScopeId("data-v-8d174b23"),t=t(),popScopeId(),t),_hoisted_1$3={id:"status-bar"},_hoisted_2$2={id:"status-div"},_hoisted_3$2={id:"status-lv"},_hoisted_4$1={id:"status-skill",class:"status-item"},_hoisted_5$1=_withScopeId$1((()=>createBaseVNode("img",{src:_imports_0,class:"status-icon"},null,-1))),_hoisted_6$1={id:"status-hp",class:"status-item"},_hoisted_7$1=_withScopeId$1((()=>createBaseVNode("img",{src:_imports_1,class:"status-icon"},null,-1))),_hoisted_8$1={class:"status-item-bold"},_hoisted_9$1={id:"status-hpmax",class:"status-extra status-item-bold"},_hoisted_10$1={key:0,id:"status-spring",class:"status-extra"},_hoisted_11$1={id:"status-atk",class:"status-item"},_hoisted_12=_withScopeId$1((()=>createBaseVNode("img",{src:_imports_2,class:"status-icon"},null,-1))),_hoisted_13={class:"status-item-bold"},_hoisted_14={id:"status-mana",class:"status-extra status-item-bold"},_hoisted_15={id:"status-def",class:"status-item status-item-bold"},_hoisted_16=_withScopeId$1((()=>createBaseVNode("img",{src:_imports_3,class:"status-icon"},null,-1))),_hoisted_17={id:"status-mdef",class:"status-item status-item-bold"},_hoisted_18=_withScopeId$1((()=>createBaseVNode("img",{src:_imports_4,class:"status-icon"},null,-1))),_hoisted_19={id:"status-money",class:"status-item status-item-bold"},_hoisted_20=_withScopeId$1((()=>createBaseVNode("img",{src:_imports_5,class:"status-icon"},null,-1))),_hoisted_21={id:"status-exp",class:"status-item status-item-bold"},_hoisted_22=_withScopeId$1((()=>createBaseVNode("img",{src:_imports_6,class:"status-icon"},null,-1))),_hoisted_23={id:"status-key",class:"status-item status-item-bold"},_hoisted_24={style:{color:"#fca","padding-left":"10%"}},_hoisted_25={style:{color:"#aad"}},_hoisted_26={style:{color:"#f88","padding-right":"10%"}},_hoisted_27={key:0,class:"status-item"},_hoisted_28={key:1,class:"status-item"},_sfc_main$3=defineComponent({__name:"statusBar",setup(t){const e=ref(isMobile?window.innerWidth-100:.175*window.innerWidth),n=ref(isMobile?250:window.innerHeight-100),a=ref(!1),o=core.formatBigNumber;watch(e,(t=>a.value=!a.value)),watch(n,(t=>a.value=!a.value));const i=shallowReactive({}),r=shallowReactive([]),l=ref(),s=ref(),c=ref("无"),d=ref(0),p=ref(),u=ref(core.getFlag("chapter",0)>0),h=["hp","atk","def","mdef","hpmax","mana","money","exp","lv"];function m(t){t.stopPropagation(),core.useItem("skill1")}function g(t){t.stopPropagation(),core.useItem("cross")}function b(t){t.stopPropagation(),core.ui._drawViewMaps()}return watch(status,(function(){h.forEach((t=>{i[t]=core.getRealStatus(t)})),r[0]=core.itemCount("yellowKey"),r[1]=core.itemCount("blueKey"),r[2]=core.itemCount("redKey"),l.value=core.status.thisMap?.title,s.value=core.getLvName(i.lv),flags.blade&&flags.bladeOn?(c.value="断灭之刃",i.atk*=1+core.getSkillLevel(2)/10,i.def*=1-core.getSkillLevel(2)/10):flags.shield&&flags.shieldOn?(c.value="铸剑为盾",i.def*=1+core.getSkillLevel(10)/10,i.atk*=1-core.getSkillLevel(10)/10):c.value="无";d.value=core.getNextLvUpNeed()??0,core.hasFlag("spring")&&(p.value=50-flags.springCount);u.value=core.getFlag("chapter",0)>0})),(t,h)=>(openBlock(),createElementBlock("div",_hoisted_1$3,[createVNode(Box,{resizable:!0,width:e.value,"onUpdate:width":h[1]||(h[1]=t=>e.value=t),height:n.value,"onUpdate:height":h[2]||(h[2]=t=>n.value=t)},{default:withCtx((()=>[createVNode(Scroll,{id:"status-main",update:a.value,"onUpdate:update":h[0]||(h[0]=t=>a.value=t),"no-scroll":!0},{default:withCtx((()=>[createBaseVNode("div",_hoisted_2$2,[createBaseVNode("span",{id:"status-floor",onClick:b,class:"button-text"},toDisplayString(l.value),1),createBaseVNode("span",_hoisted_3$2,toDisplayString(s.value),1),createBaseVNode("div",_hoisted_4$1,[_hoisted_5$1,createBaseVNode("span",null,toDisplayString(c.value),1)]),createBaseVNode("div",_hoisted_6$1,[_hoisted_7$1,createBaseVNode("span",_hoisted_8$1,toDisplayString(unref(o)(unref(i).hp)),1),createBaseVNode("span",_hoisted_9$1,"+"+toDisplayString(unref(o)(unref(i).hpmax))+"/t",1),unref(has)(p.value)?(openBlock(),createElementBlock("span",_hoisted_10$1,"剩余"+toDisplayString(p.value),1)):createCommentVNode("",!0)]),createBaseVNode("div",_hoisted_11$1,[_hoisted_12,createBaseVNode("span",_hoisted_13,toDisplayString(unref(o)(unref(i).atk)),1),createBaseVNode("span",_hoisted_14,"+"+toDisplayString(unref(o)(unref(i).mana)),1)]),createBaseVNode("div",_hoisted_15,[_hoisted_16,createBaseVNode("span",null,toDisplayString(unref(o)(unref(i).def)),1)]),createBaseVNode("div",_hoisted_17,[_hoisted_18,createBaseVNode("span",null,toDisplayString(unref(o)(unref(i).mdef)),1)]),createBaseVNode("div",_hoisted_19,[_hoisted_20,createBaseVNode("span",null,toDisplayString(unref(o)(unref(i).money)),1)]),createBaseVNode("div",_hoisted_21,[_hoisted_22,createBaseVNode("span",null,toDisplayString(unref(o)(d.value)),1)]),createBaseVNode("div",_hoisted_23,[createBaseVNode("span",_hoisted_24,toDisplayString(unref(r)[0]?.toString().padStart(2,"0")),1),createBaseVNode("span",_hoisted_25,toDisplayString(unref(r)[1]?.toString().padStart(2,"0")),1),createBaseVNode("span",_hoisted_26,toDisplayString(unref(r)[2]?.toString().padStart(2,"0")),1)]),u.value?(openBlock(),createElementBlock("div",_hoisted_27,[createBaseVNode("span",{id:"skill-tree",class:"button-text",onClick:m},"技能树")])):createCommentVNode("",!0),u.value?(openBlock(),createElementBlock("div",_hoisted_28,[createBaseVNode("span",{id:"status-skill",class:"button-text",onClick:g},"查看技能")])):createCommentVNode("",!0)])])),_:1},8,["update"])])),_:1},8,["width","height"])]))}}),statusBar_vue_vue_type_style_index_0_scoped_8d174b23_lang="",StatusBar=_export_sfc(_sfc_main$3,[["__scopeId","data-v-8d174b23"]]),_hoisted_1$2={id:"marked-enemy"},_hoisted_2$1={class:"marked-main"},_hoisted_3$1={class:"marked-info"},_hoisted_4={class:"marked-name marked-item"},_hoisted_5={class:"marked-damage marked-item"},_hoisted_6={class:"marked-critical marked-item"},_hoisted_7={class:"marked-critical-damage marked-item"},_hoisted_8={class:"marked-def marked-item"},_hoisted_9={class:"marked-button"},_hoisted_10=["onClick"],_hoisted_11=["onClick"],_sfc_main$2=defineComponent({__name:"markedEnemy",setup(t){const e=core.status.thisMap?.ratio??1;let n=getMarkedEnemy();watch(checkMarkedStatus,(function(){n.push(...n.splice(0,n.length));for(const t in a)n.includes(t)||delete a[t]}));const a=reactive({});function o(t){return has(a[t])||(a[t]={left:window.innerWidth-300,top:100,width:200,height:150,hidden:!1}),a[t]}function i(t){return core.formatBigNumber(core.getDamageInfo(t)?.damage)??"???"}function r(t){return core.nextCriticals(t,1)[0]?.map((t=>core.formatBigNumber(t)))??[0,0]}function l(t){return core.formatBigNumber(core.getDefDamage(t,e))}return(t,a)=>(openBlock(),createElementBlock("div",_hoisted_1$2,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(n),(t=>(openBlock(),createElementBlock("div",null,[o(t).hidden?createCommentVNode("",!0):(openBlock(),createBlock(Box,{key:t,left:o(t).left,"onUpdate:left":e=>o(t).left=e,top:o(t).top,"onUpdate:top":e=>o(t).top=e,width:o(t).width,"onUpdate:width":e=>o(t).width=e,height:o(t).height,"onUpdate:height":e=>o(t).height=e,resizable:!0},{default:withCtx((()=>[createVNode(Scroll,{class:"box-scroll","no-scroll":!0},{default:withCtx((()=>{return[createBaseVNode("div",_hoisted_2$1,[createBaseVNode("div",_hoisted_3$1,[createVNode(_sfc_main$l,{id:t,width:24,height:24},null,8,["id"]),createBaseVNode("span",_hoisted_4,toDisplayString((n=t,core.material.enemys[n].name)),1)]),createBaseVNode("span",_hoisted_5,"伤害:"+toDisplayString(i(t)),1),createBaseVNode("span",_hoisted_6,"临界:"+toDisplayString(r(t)[0]),1),createBaseVNode("span",_hoisted_7,"减伤:"+toDisplayString(r(t)[1]),1),createBaseVNode("span",_hoisted_8,toDisplayString(unref(e))+"防:"+toDisplayString(l(t)),1),createBaseVNode("div",_hoisted_9,[createBaseVNode("span",{class:"marked-hide button-text",onClick:withModifiers((e=>o(t).hidden=!0),["stop"])},"隐藏盒子",8,_hoisted_10),createBaseVNode("span",{class:"marked-cancel button-text",onClick:withModifiers((e=>unref(unmarkEnemy)(t)),["stop"])},"取消标记",8,_hoisted_11)])])];var n})),_:2},1024)])),_:2},1032,["left","onUpdate:left","top","onUpdate:top","width","onUpdate:width","height","onUpdate:height"]))])))),256))]))}}),markedEnemy_vue_vue_type_style_index_0_scoped_5d5d9f17_lang="",MarkedEnemy=_export_sfc(_sfc_main$2,[["__scopeId","data-v-5d5d9f17"]]),_withScopeId=t=>(pushScopeId("data-v-74e3c165"),t=t(),popScopeId(),t),_hoisted_1$1={id:"chapter"},_hoisted_2=_withScopeId((()=>createBaseVNode("canvas",{id:"chapter-back"},null,-1))),_hoisted_3={id:"chapter-text"},_sfc_main$1=defineComponent({__name:"chapter",props:{chapter:null},setup(t){const e=t;let n,a,o;return onMounted((async()=>{n=document.getElementById("chapter-back"),a=n.getContext("2d"),o=document.getElementById("chapter-text");const t=new R,i=window.innerWidth*devicePixelRatio,r=window.innerHeight*devicePixelRatio;a.font="5vh scroll";const l=a.measureText(e.chapter).width,s=.05*r;t.register("rect",0),t.register("line",-10),t.register("lineOpacity",1),t.register("rect2",r/2),t.register("text",window.innerWidth+10+l),n.width=i,n.height=r,n.style.width=`${window.innerWidth}px`,n.style.height=`${window.innerHeight}px`,o.style.left=`${i+10}px`,o.style.top=window.innerHeight/2-.025*r+"px",o.style.height=.05*r+"px",o.style.width=`${l}px`;let c=!1,d=!1;t.ticker.add((e=>{has(e)&&!isNaN(e)&&(d?(e>=4050&&(chapterShowed.value=!1,t.ticker.destroy()),!c&&e>=1500&&(c=!0,core.playSound("chapter.mp3")),a.restore(),a.save(),o.style.left=`${t.value.text}px`,a.fillStyle="#000",a.clearRect(0,0,i,r),e<=2e3?(a.fillRect(0,r/2,i,-t.value.rect),a.fillRect(0,r/2,i,t.value.rect)):e>=2e3&&e<=3050&&(a.fillRect(0,0,i,t.value.rect2),a.fillRect(0,r,i,-t.value.rect2)),a.shadowColor="#fff",a.shadowBlur=3,a.shadowOffsetX=0,a.shadowOffsetY=0,a.lineWidth=3,a.strokeStyle="#fff",a.fillStyle="#fff",a.globalAlpha=t.value.lineOpacity,a.beginPath(),a.moveTo(0,r/2-s),a.lineTo(t.value.line,r/2-s),a.stroke(),a.beginPath(),a.moveTo(i,r/2+s),a.lineTo(i-t.value.line,r/2+s),a.stroke(),a.shadowBlur=0,a.filter="blur(5px)",a.beginPath(),a.arc(t.value.line,r/2-s,10,0,2*Math.PI),a.fill(),a.beginPath(),a.arc(i-t.value.line,r/2+s,10,0,2*Math.PI),a.fill()):d=!0)})),t.mode(C("tan","center")).time(3e3).absolute().apply("line",i+10).mode(C("sin","in")).time(1e3).apply("rect",r/2).mode(C("tan","center")).time(3e3).apply("text",2*-l-10),await S(2e3),t.mode(C("sin","in")).time(1e3).apply("rect2",0),await S(1e3),t.mode(C("sin","out")).time(1e3).apply("lineOpacity",0)})),(e,n)=>(openBlock(),createElementBlock("div",_hoisted_1$1,[_hoisted_2,createBaseVNode("span",_hoisted_3,toDisplayString(t.chapter),1)]))}}),chapter_vue_vue_type_style_index_0_scoped_74e3c165_lang="",Chapter=_export_sfc(_sfc_main$1,[["__scopeId","data-v-74e3c165"]]),_hoisted_1={id:"non-ui"},_sfc_main=defineComponent({__name:"App2",setup:t=>(t,e)=>(openBlock(),createElementBlock("div",_hoisted_1,[unref(showStatusBar)?(openBlock(),createBlock(StatusBar,{key:0})):createCommentVNode("",!0),unref(showMarkedEnemy)?(openBlock(),createBlock(MarkedEnemy,{key:1})):createCommentVNode("",!0),unref(chapterShowed)?(openBlock(),createBlock(Chapter,{key:2,chapter:unref(chapterContent)},null,8,["chapter"])):createCommentVNode("",!0)]))}),App2_vue_vue_type_style_index_0_scoped_7a936755_lang="",App2=_export_sfc(_sfc_main,[["__scopeId","data-v-7a936755"]]),styles="",antd_dark="";createApp(App).mount("#root"),createApp(App2).mount("#root2")}}}))})(); + */class Animator{constructor(){this._request=null,this._charts=new Map,this._running=!1,this._lastDate=void 0}_notify(t,e,n,a){const o=e.listeners[a],i=e.duration;o.forEach((a=>a({chart:t,initial:e.initial,numSteps:i,currentStep:Math.min(n-e.start,i)})))}_refresh(){this._request||(this._running=!0,this._request=requestAnimFrame.call(window,(()=>{this._update(),this._request=null,this._running&&this._refresh()})))}_update(t=Date.now()){let e=0;this._charts.forEach(((n,a)=>{if(!n.running||!n.items.length)return;const o=n.items;let i,r=o.length-1,l=!1;for(;r>=0;--r)i=o[r],i._active?(i._total>n.duration&&(n.duration=i._total),i.tick(t),l=!0):(o[r]=o[o.length-1],o.pop());l&&(a.draw(),this._notify(a,n,t,"progress")),o.length||(n.running=!1,this._notify(a,n,t,"complete"),n.initial=!1),e+=o.length})),this._lastDate=t,0===e&&(this._running=!1)}_getAnims(t){const e=this._charts;let n=e.get(t);return n||(n={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},e.set(t,n)),n}listen(t,e,n){this._getAnims(t).listeners[e].push(n)}add(t,e){e&&e.length&&this._getAnims(t).items.push(...e)}has(t){return this._getAnims(t).items.length>0}start(t){const e=this._charts.get(t);e&&(e.running=!0,e.start=Date.now(),e.duration=e.items.reduce(((t,e)=>Math.max(t,e._duration)),0),this._refresh())}running(t){if(!this._running)return!1;const e=this._charts.get(t);return!!(e&&e.running&&e.items.length)}stop(t){const e=this._charts.get(t);if(!e||!e.items.length)return;const n=e.items;let a=n.length-1;for(;a>=0;--a)n[a].cancel();e.items=[],this._notify(t,e,Date.now(),"complete")}remove(t){return this._charts.delete(t)}}var animator=new Animator;const transparent="transparent",interpolators={boolean:(t,e,n)=>n>.5?e:t,color(t,e,n){const a=color(t||transparent),o=a.valid&&color(e||transparent);return o&&o.valid?o.mix(a,n).hexString():e},number:(t,e,n)=>t+(e-t)*n};class Animation{constructor(t,e,n,a){const o=e[n];a=resolve([t.to,a,o,t.from]);const i=resolve([t.from,o,a]);this._active=!0,this._fn=t.fn||interpolators[t.type||typeof i],this._easing=effects$1[t.easing]||effects$1.linear,this._start=Math.floor(Date.now()+(t.delay||0)),this._duration=this._total=Math.floor(t.duration),this._loop=!!t.loop,this._target=e,this._prop=n,this._from=i,this._to=a,this._promises=void 0}active(){return this._active}update(t,e,n){if(this._active){this._notify(!1);const a=this._target[this._prop],o=n-this._start,i=this._duration-o;this._start=n,this._duration=Math.floor(Math.max(i,t.duration)),this._total+=o,this._loop=!!t.loop,this._to=resolve([t.to,e,a,t.from]),this._from=resolve([t.from,a,e])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(t){const e=t-this._start,n=this._duration,a=this._prop,o=this._from,i=this._loop,r=this._to;let l;if(this._active=o!==r&&(i||e1?2-l:l,l=this._easing(Math.min(1,Math.max(0,l))),this._target[a]=this._fn(o,r,l))}wait(){const t=this._promises||(this._promises=[]);return new Promise(((e,n)=>{t.push({res:e,rej:n})}))}_notify(t){const e=t?"res":"rej",n=this._promises||[];for(let a=0;a{const o=t[a];if(!isObject(o))return;const i={};for(const t of e)i[t]=o[t];(isArray(o.properties)&&o.properties||[a]).forEach((t=>{t!==a&&n.has(t)||n.set(t,i)}))}))}_animateOptions(t,e){const n=e.options,a=resolveTargetOptions(t,n);if(!a)return[];const o=this._createAnimations(a,n);return n.$shared&&awaitAll(t.options.$animations,n).then((()=>{t.options=n}),(()=>{})),o}_createAnimations(t,e){const n=this._properties,a=[],o=t.$animations||(t.$animations={}),i=Object.keys(e),r=Date.now();let l;for(l=i.length-1;l>=0;--l){const s=i[l];if("$"===s.charAt(0))continue;if("options"===s){a.push(...this._animateOptions(t,e));continue}const c=e[s];let d=o[s];const p=n.get(s);if(d){if(p&&d.active()){d.update(p,c,r);continue}d.cancel()}p&&p.duration?(o[s]=d=new Animation(p,t,s,c),a.push(d)):t[s]=c}return a}update(t,e){if(0===this._properties.size)return void Object.assign(t,e);const n=this._createAnimations(t,e);return n.length?(animator.add(this._chart,n),!0):void 0}}function awaitAll(t,e){const n=[],a=Object.keys(e);for(let o=0;o0||!n&&e<0)return o.index}return null}function updateStacks(t,e){const{chart:n,_cachedMeta:a}=t,o=n._stacks||(n._stacks={}),{iScale:i,vScale:r,index:l}=a,s=i.axis,c=r.axis,d=getStackKey(i,r,a),p=e.length;let u;for(let h=0;hn[t].axis===e)).shift()}function createDatasetContext(t,e){return createContext(t,{active:!1,dataset:void 0,datasetIndex:e,index:e,mode:"default",type:"dataset"})}function createDataContext(t,e,n){return createContext(t,{active:!1,dataIndex:e,parsed:void 0,raw:void 0,element:n,index:e,mode:"default",type:"data"})}function clearStacks(t,e){const n=t.controller.index,a=t.vScale&&t.vScale.axis;if(a){e=e||t._parsed;for(const t of e){const e=t._stacks;if(!e||void 0===e[a]||void 0===e[a][n])return;delete e[a][n]}}}const isDirectUpdateMode=t=>"reset"===t||"none"===t,cloneIfNotShared=(t,e)=>e?t:Object.assign({},t),createStack=(t,e,n)=>t&&!e.hidden&&e._stacked&&{keys:getSortedDatasetIndices(n,!0),values:null};class DatasetController{constructor(t,e){this.chart=t,this._ctx=t.ctx,this.index=e,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const t=this._cachedMeta;this.configure(),this.linkScales(),t._stacked=isStacked(t.vScale,t),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(t){this.index!==t&&clearStacks(this._cachedMeta),this.index=t}linkScales(){const t=this.chart,e=this._cachedMeta,n=this.getDataset(),a=(t,e,n,a)=>"x"===t?e:"r"===t?a:n,o=e.xAxisID=valueOrDefault(n.xAxisID,getFirstScaleId(t,"x")),i=e.yAxisID=valueOrDefault(n.yAxisID,getFirstScaleId(t,"y")),r=e.rAxisID=valueOrDefault(n.rAxisID,getFirstScaleId(t,"r")),l=e.indexAxis,s=e.iAxisID=a(l,o,i,r),c=e.vAxisID=a(l,i,o,r);e.xScale=this.getScaleForId(o),e.yScale=this.getScaleForId(i),e.rScale=this.getScaleForId(r),e.iScale=this.getScaleForId(s),e.vScale=this.getScaleForId(c)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(t){return this.chart.scales[t]}_getOtherScale(t){const e=this._cachedMeta;return t===e.iScale?e.vScale:e.iScale}reset(){this._update("reset")}_destroy(){const t=this._cachedMeta;this._data&&unlistenArrayEvents(this._data,this),t._stacked&&clearStacks(t)}_dataCheck(){const t=this.getDataset(),e=t.data||(t.data=[]),n=this._data;if(isObject(e))this._data=convertObjectDataToArray(e);else if(n!==e){if(n){unlistenArrayEvents(n,this);const t=this._cachedMeta;clearStacks(t),t._parsed=[]}e&&Object.isExtensible(e)&&listenArrayEvents(e,this),this._syncList=[],this._data=e}}addElements(){const t=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(t.dataset=new this.datasetElementType)}buildOrUpdateElements(t){const e=this._cachedMeta,n=this.getDataset();let a=!1;this._dataCheck();const o=e._stacked;e._stacked=isStacked(e.vScale,e),e.stack!==n.stack&&(a=!0,clearStacks(e),e.stack=n.stack),this._resyncElements(t),(a||o!==e._stacked)&&updateStacks(this,e._parsed)}configure(){const t=this.chart.config,e=t.datasetScopeKeys(this._type),n=t.getOptionScopes(this.getDataset(),e,!0);this.options=t.createResolver(n,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(t,e){const{_cachedMeta:n,_data:a}=this,{iScale:o,_stacked:i}=n,r=o.axis;let l,s,c,d=0===t&&e===a.length||n._sorted,p=t>0&&n._parsed[t-1];if(!1===this._parsing)n._parsed=a,n._sorted=!0,c=a;else{c=isArray(a[t])?this.parseArrayData(n,a,t,e):isObject(a[t])?this.parseObjectData(n,a,t,e):this.parsePrimitiveData(n,a,t,e);const o=()=>null===s[r]||p&&s[r]e||d=0;--p)if(!h()){this.updateRangeFromParsed(s,t,u,l);break}return s}getAllParsedValues(t){const e=this._cachedMeta._parsed,n=[];let a,o,i;for(a=0,o=e.length;a=0&&tthis.getContext(n,a)),d);return h.$shared&&(h.$shared=l,o[i]=Object.freeze(cloneIfNotShared(h,l))),h}_resolveAnimations(t,e,n){const a=this.chart,o=this._cachedDataOpts,i=`animation-${e}`,r=o[i];if(r)return r;let l;if(!1!==a.options.animation){const a=this.chart.config,o=a.datasetAnimationScopeKeys(this._type,e),i=a.getOptionScopes(this.getDataset(),o);l=a.createResolver(i,this.getContext(t,n,e))}const s=new Animations(a,l&&l.animations);return l&&l._cacheable&&(o[i]=Object.freeze(s)),s}getSharedOptions(t){if(t.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},t))}includeOptions(t,e){return!e||isDirectUpdateMode(t)||this.chart._animationsDisabled}_getSharedOptions(t,e){const n=this.resolveDataElementOptions(t,e),a=this._sharedOptions,o=this.getSharedOptions(n),i=this.includeOptions(e,o)||o!==a;return this.updateSharedOptions(o,e,n),{sharedOptions:o,includeOptions:i}}updateElement(t,e,n,a){isDirectUpdateMode(a)?Object.assign(t,n):this._resolveAnimations(e,a).update(t,n)}updateSharedOptions(t,e,n){t&&!isDirectUpdateMode(e)&&this._resolveAnimations(void 0,e).update(t,n)}_setStyle(t,e,n,a){t.active=a;const o=this.getStyle(e,a);this._resolveAnimations(e,n,a).update(t,{options:!a&&this.getSharedOptions(o)||o})}removeHoverStyle(t,e,n){this._setStyle(t,n,"active",!1)}setHoverStyle(t,e,n){this._setStyle(t,n,"active",!0)}_removeDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!1)}_setDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!0)}_resyncElements(t){const e=this._data,n=this._cachedMeta.data;for(const[r,l,s]of this._syncList)this[r](l,s);this._syncList=[];const a=n.length,o=e.length,i=Math.min(o,a);i&&this.parse(0,i),o>a?this._insertElements(a,o-a,t):o{for(t.length+=e,r=t.length-1;r>=i;r--)t[r]=t[r-e]};for(l(o),r=t;rt-e)))}return t._cache.$bar}function computeMinSampleSize(t){const e=t.iScale,n=getAllScaleValues(e,t.type);let a,o,i,r,l=e._length;const s=()=>{32767!==i&&-32768!==i&&(defined(r)&&(l=Math.min(l,Math.abs(i-r)||l)),r=i)};for(a=0,o=n.length;a0?o[t-1]:null,l=tMath.abs(l)&&(s=l,c=r),e[n.axis]=c,e._custom={barStart:s,barEnd:c,start:o,end:i,min:r,max:l}}function parseValue(t,e,n,a){return isArray(t)?parseFloatBar(t,e,n,a):e[n.axis]=n.parse(t,a),e}function parseArrayOrPrimitive(t,e,n,a){const o=t.iScale,i=t.vScale,r=o.getLabels(),l=o===i,s=[];let c,d,p,u;for(c=n,d=n+a;c=n?1:-1)}function borderProps(t){let e,n,a,o,i;return t.horizontal?(e=t.base>t.x,n="left",a="right"):(e=t.baset.controller.options.grouped)),o=n.options.stacked,i=[],r=t=>{const n=t.controller.getParsed(e),a=n&&n[t.vScale.axis];if(isNullOrUndef(a)||isNaN(a))return!0};for(const l of a)if((void 0===e||!r(l))&&((!1===o||-1===i.indexOf(l.stack)||void 0===o&&void 0===l.stack)&&i.push(l.stack),l.index===t))break;return i.length||i.push(void 0),i}_getStackCount(t){return this._getStacks(void 0,t).length}_getStackIndex(t,e,n){const a=this._getStacks(t,n),o=void 0!==e?a.indexOf(e):-1;return-1===o?a.length-1:o}_getRuler(){const t=this.options,e=this._cachedMeta,n=e.iScale,a=[];let o,i;for(o=0,i=e.data.length;o=0;--n)e=Math.max(e,t[n].size(this.resolveDataElementOptions(n))/2);return e>0&&e}getLabelAndValue(t){const e=this._cachedMeta,n=this.chart.data.labels||[],{xScale:a,yScale:o}=e,i=this.getParsed(t),r=a.getLabelForValue(i.x),l=o.getLabelForValue(i.y),s=i._custom;return{label:n[t]||"",value:"("+r+", "+l+(s?", "+s:"")+")"}}update(t){const e=this._cachedMeta.data;this.updateElements(e,0,e.length,t)}updateElements(t,e,n,a){const o="reset"===a,{iScale:i,vScale:r}=this._cachedMeta,{sharedOptions:l,includeOptions:s}=this._getSharedOptions(e,a),c=i.axis,d=r.axis;for(let p=e;p_angleBetween(t,l,s,!0)?1:Math.max(e,e*n,a,a*n),m=(t,e,a)=>_angleBetween(t,l,s,!0)?-1:Math.min(e,e*n,a,a*n),g=h(0,c,p),b=h(HALF_PI,d,u),f=m(PI,c,p),x=m(PI+HALF_PI,d,u);a=(g-f)/2,o=(b-x)/2,i=-(g+f)/2,r=-(b+x)/2}return{ratioX:a,ratioY:o,offsetX:i,offsetY:r}}_defineProperty(BubbleController,"id","bubble"),_defineProperty(BubbleController,"defaults",{datasetElementType:!1,dataElementType:"point",animations:{numbers:{type:"number",properties:["x","y","borderWidth","radius"]}}}),_defineProperty(BubbleController,"overrides",{scales:{x:{type:"linear"},y:{type:"linear"}}});class DoughnutController extends DatasetController{constructor(t,e){super(t,e),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(t,e){const n=this.getDataset().data,a=this._cachedMeta;if(!1===this._parsing)a._parsed=n;else{let o,i,r=t=>+n[t];if(isObject(n[t])){const{key:t="value"}=this._parsing;r=e=>+resolveObjectKey(n[e],t)}for(o=t,i=t+e;o0&&!isNaN(t)?TAU*(Math.abs(t)/e):0}getLabelAndValue(t){const e=this._cachedMeta,n=this.chart,a=n.data.labels||[],o=formatNumber(e._parsed[t],n.options.locale);return{label:a[t]||"",value:o}}getMaxBorderWidth(t){let e=0;const n=this.chart;let a,o,i,r,l;if(!t)for(a=0,o=n.data.datasets.length;a"spacing"!==t,_indexable:t=>"spacing"!==t}),_defineProperty(DoughnutController,"overrides",{aspectRatio:1,plugins:{legend:{labels:{generateLabels(t){const e=t.data;if(e.labels.length&&e.datasets.length){const{labels:{pointStyle:n,color:a}}=t.legend.options;return e.labels.map(((e,o)=>{const i=t.getDatasetMeta(0).controller.getStyle(o);return{text:e,fillStyle:i.backgroundColor,strokeStyle:i.borderColor,fontColor:a,lineWidth:i.borderWidth,pointStyle:n,hidden:!t.getDataVisibility(o),index:o}}))}return[]}},onClick(t,e,n){n.chart.toggleDataVisibility(e.index),n.chart.update()}}}});class LineController extends DatasetController{initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(t){const e=this._cachedMeta,{dataset:n,data:a=[],_dataset:o}=e,i=this.chart._animationsDisabled;let{start:r,count:l}=_getStartAndCountOfVisiblePoints(e,a,i);this._drawStart=r,this._drawCount=l,_scaleRangesChanged(e)&&(r=0,l=a.length),n._chart=this.chart,n._datasetIndex=this.index,n._decimated=!!o._decimated,n.points=a;const s=this.resolveDatasetElementOptions(t);this.options.showLine||(s.borderWidth=0),s.segment=this.options.segment,this.updateElement(n,void 0,{animated:!i,options:s},t),this.updateElements(a,r,l,t)}updateElements(t,e,n,a){const o="reset"===a,{iScale:i,vScale:r,_stacked:l,_dataset:s}=this._cachedMeta,{sharedOptions:c,includeOptions:d}=this._getSharedOptions(e,a),p=i.axis,u=r.axis,{spanGaps:h,segment:m}=this.options,g=isNumber(h)?h:Number.POSITIVE_INFINITY,b=this.chart._animationsDisabled||o||"none"===a,f=e+n,x=t.length;let v=e>0&&this.getParsed(e-1);for(let w=0;w=f){h.skip=!0;continue}const x=this.getParsed(w),y=isNullOrUndef(x[u]),k=h[p]=i.getPixelForValue(x[p],w),_=h[u]=o||y?r.getBasePixel():r.getPixelForValue(l?this.applyStack(r,x,l):x[u],w);h.skip=isNaN(k)||isNaN(_)||y,h.stop=w>0&&Math.abs(x[p]-v[p])>g,m&&(h.parsed=x,h.raw=s.data[w]),d&&(h.options=c||this.resolveDataElementOptions(w,n.active?"active":a)),b||this.updateElement(n,w,h,a),v=x}}getMaxOverflow(){const t=this._cachedMeta,e=t.dataset,n=e.options&&e.options.borderWidth||0,a=t.data||[];if(!a.length)return n;const o=a[0].size(this.resolveDataElementOptions(0)),i=a[a.length-1].size(this.resolveDataElementOptions(a.length-1));return Math.max(n,o,i)/2}draw(){const t=this._cachedMeta;t.dataset.updateControlPoints(this.chart.chartArea,t.iScale.axis),super.draw()}}_defineProperty(LineController,"id","line"),_defineProperty(LineController,"defaults",{datasetElementType:"line",dataElementType:"point",showLine:!0,spanGaps:!1}),_defineProperty(LineController,"overrides",{scales:{_index_:{type:"category"},_value_:{type:"linear"}}});class PolarAreaController extends DatasetController{constructor(t,e){super(t,e),this.innerRadius=void 0,this.outerRadius=void 0}getLabelAndValue(t){const e=this._cachedMeta,n=this.chart,a=n.data.labels||[],o=formatNumber(e._parsed[t].r,n.options.locale);return{label:a[t]||"",value:o}}parseObjectData(t,e,n,a){return _parseObjectDataRadialScale.bind(this)(t,e,n,a)}update(t){const e=this._cachedMeta.data;this._updateRadius(),this.updateElements(e,0,e.length,t)}getMinMax(){const t=this._cachedMeta,e={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY};return t.data.forEach(((t,n)=>{const a=this.getParsed(n).r;!isNaN(a)&&this.chart.getDataVisibility(n)&&(ae.max&&(e.max=a))})),e}_updateRadius(){const t=this.chart,e=t.chartArea,n=t.options,a=Math.min(e.right-e.left,e.bottom-e.top),o=Math.max(a/2,0),i=(o-Math.max(n.cutoutPercentage?o/100*n.cutoutPercentage:1,0))/t.getVisibleDatasetCount();this.outerRadius=o-i*this.index,this.innerRadius=this.outerRadius-i}updateElements(t,e,n,a){const o="reset"===a,i=this.chart,r=i.options.animation,l=this._cachedMeta.rScale,s=l.xCenter,c=l.yCenter,d=l.getIndexAngle(0)-.5*PI;let p,u=d;const h=360/this.countVisibleElements();for(p=0;p{!isNaN(this.getParsed(n).r)&&this.chart.getDataVisibility(n)&&e++})),e}_computeAngle(t,e,n){return this.chart.getDataVisibility(t)?toRadians(this.resolveDataElementOptions(t,e).angle||n):0}}_defineProperty(PolarAreaController,"id","polarArea"),_defineProperty(PolarAreaController,"defaults",{dataElementType:"arc",animation:{animateRotate:!0,animateScale:!0},animations:{numbers:{type:"number",properties:["x","y","startAngle","endAngle","innerRadius","outerRadius"]}},indexAxis:"r",startAngle:0}),_defineProperty(PolarAreaController,"overrides",{aspectRatio:1,plugins:{legend:{labels:{generateLabels(t){const e=t.data;if(e.labels.length&&e.datasets.length){const{labels:{pointStyle:n,color:a}}=t.legend.options;return e.labels.map(((e,o)=>{const i=t.getDatasetMeta(0).controller.getStyle(o);return{text:e,fillStyle:i.backgroundColor,strokeStyle:i.borderColor,fontColor:a,lineWidth:i.borderWidth,pointStyle:n,hidden:!t.getDataVisibility(o),index:o}}))}return[]}},onClick(t,e,n){n.chart.toggleDataVisibility(e.index),n.chart.update()}}},scales:{r:{type:"radialLinear",angleLines:{display:!1},beginAtZero:!0,grid:{circular:!0},pointLabels:{display:!1},startAngle:0}}});class PieController extends DoughnutController{}_defineProperty(PieController,"id","pie"),_defineProperty(PieController,"defaults",{cutout:0,rotation:0,circumference:360,radius:"100%"});class RadarController extends DatasetController{getLabelAndValue(t){const e=this._cachedMeta.vScale,n=this.getParsed(t);return{label:e.getLabels()[t],value:""+e.getLabelForValue(n[e.axis])}}parseObjectData(t,e,n,a){return _parseObjectDataRadialScale.bind(this)(t,e,n,a)}update(t){const e=this._cachedMeta,n=e.dataset,a=e.data||[],o=e.iScale.getLabels();if(n.points=a,"resize"!==t){const e=this.resolveDatasetElementOptions(t);this.options.showLine||(e.borderWidth=0);const i={_loop:!0,_fullLoop:o.length===a.length,options:e};this.updateElement(n,void 0,i,t)}this.updateElements(a,0,a.length,t)}updateElements(t,e,n,a){const o=this._cachedMeta.rScale,i="reset"===a;for(let r=e;r0&&this.getParsed(e-1);for(let v=e;v0&&Math.abs(n[u]-x[u])>b,g&&(c.parsed=n,c.raw=s.data[v]),p&&(c.options=d||this.resolveDataElementOptions(v,e.active?"active":a)),f||this.updateElement(e,v,c,a),x=n}this.updateSharedOptions(d,a,c)}getMaxOverflow(){const t=this._cachedMeta,e=t.data||[];if(!this.options.showLine){let t=0;for(let n=e.length-1;n>=0;--n)t=Math.max(t,e[n].size(this.resolveDataElementOptions(n))/2);return t>0&&t}const n=t.dataset,a=n.options&&n.options.borderWidth||0;if(!e.length)return a;const o=e[0].size(this.resolveDataElementOptions(0)),i=e[e.length-1].size(this.resolveDataElementOptions(e.length-1));return Math.max(a,o,i)/2}}_defineProperty(ScatterController,"id","scatter"),_defineProperty(ScatterController,"defaults",{datasetElementType:!1,dataElementType:"point",showLine:!1,fill:!1}),_defineProperty(ScatterController,"overrides",{interaction:{mode:"point"},scales:{x:{type:"linear"},y:{type:"linear"}}});var controllers=Object.freeze({__proto__:null,BarController:BarController,BubbleController:BubbleController,DoughnutController:DoughnutController,LineController:LineController,PolarAreaController:PolarAreaController,PieController:PieController,RadarController:RadarController,ScatterController:ScatterController});function abstract(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}class DateAdapterBase{static override(t){Object.assign(DateAdapterBase.prototype,t)}constructor(t){this.options=t||{}}init(){}formats(){return abstract()}parse(){return abstract()}format(){return abstract()}add(){return abstract()}diff(){return abstract()}startOf(){return abstract()}endOf(){return abstract()}}var adapters={_date:DateAdapterBase};function binarySearch(t,e,n,a){const{controller:o,data:i,_sorted:r}=t,l=o._cachedMeta.iScale;if(l&&e===l.axis&&"r"!==e&&r&&i.length){const t=l._reversePixels?_rlookupByKey:_lookupByKey;if(!a)return t(i,e,n);if(o._sharedOptions){const a=i[0],o="function"==typeof a.getRange&&a.getRange(e);if(o){const a=t(i,e,n-o),r=t(i,e,n+o);return{lo:a.lo,hi:r.hi}}}}return{lo:0,hi:i.length-1}}function evaluateInteractionItems(t,e,n,a,o){const i=t.getSortedVisibleDatasetMetas(),r=n[e];for(let l=0,s=i.length;l{t[r](e[n],o)&&(i.push({element:t,datasetIndex:a,index:s}),l=l||t.inRange(e.x,e.y,o))})),a&&!l?[]:i}var Interaction={evaluateInteractionItems:evaluateInteractionItems,modes:{index(t,e,n,a){const o=getRelativePosition(e,t),i=n.axis||"x",r=n.includeInvisible||!1,l=n.intersect?getIntersectItems(t,o,i,a,r):getNearestItems(t,o,i,!1,a,r),s=[];return l.length?(t.getSortedVisibleDatasetMetas().forEach((t=>{const e=l[0].index,n=t.data[e];n&&!n.skip&&s.push({element:n,datasetIndex:t.index,index:e})})),s):[]},dataset(t,e,n,a){const o=getRelativePosition(e,t),i=n.axis||"xy",r=n.includeInvisible||!1;let l=n.intersect?getIntersectItems(t,o,i,a,r):getNearestItems(t,o,i,!1,a,r);if(l.length>0){const e=l[0].datasetIndex,n=t.getDatasetMeta(e).data;l=[];for(let t=0;tgetIntersectItems(t,getRelativePosition(e,t),n.axis||"xy",a,n.includeInvisible||!1),nearest(t,e,n,a){const o=getRelativePosition(e,t),i=n.axis||"xy",r=n.includeInvisible||!1;return getNearestItems(t,o,i,n.intersect,a,r)},x:(t,e,n,a)=>getAxisItems(t,getRelativePosition(e,t),"x",n.intersect,a),y:(t,e,n,a)=>getAxisItems(t,getRelativePosition(e,t),"y",n.intersect,a)}};const STATIC_POSITIONS=["left","top","right","bottom"];function filterByPosition(t,e){return t.filter((t=>t.pos===e))}function filterDynamicPositionByAxis(t,e){return t.filter((t=>-1===STATIC_POSITIONS.indexOf(t.pos)&&t.box.axis===e))}function sortByWeight(t,e){return t.sort(((t,n)=>{const a=e?n:t,o=e?t:n;return a.weight===o.weight?a.index-o.index:a.weight-o.weight}))}function wrapBoxes(t){const e=[];let n,a,o,i,r,l;for(n=0,a=(t||[]).length;nt.box.fullSize)),!0),a=sortByWeight(filterByPosition(e,"left"),!0),o=sortByWeight(filterByPosition(e,"right")),i=sortByWeight(filterByPosition(e,"top"),!0),r=sortByWeight(filterByPosition(e,"bottom")),l=filterDynamicPositionByAxis(e,"x"),s=filterDynamicPositionByAxis(e,"y");return{fullSize:n,leftAndTop:a.concat(i),rightAndBottom:o.concat(s).concat(r).concat(l),chartArea:filterByPosition(e,"chartArea"),vertical:a.concat(o).concat(s),horizontal:i.concat(r).concat(l)}}function getCombinedMax(t,e,n,a){return Math.max(t[n],e[n])+Math.max(t[a],e[a])}function updateMaxPadding(t,e){t.top=Math.max(t.top,e.top),t.left=Math.max(t.left,e.left),t.bottom=Math.max(t.bottom,e.bottom),t.right=Math.max(t.right,e.right)}function updateDims(t,e,n,a){const{pos:o,box:i}=n,r=t.maxPadding;if(!isObject(o)){n.size&&(t[o]-=n.size);const e=a[n.stack]||{size:0,count:1};e.size=Math.max(e.size,n.horizontal?i.height:i.width),n.size=e.size/e.count,t[o]+=n.size}i.getPadding&&updateMaxPadding(r,i.getPadding());const l=Math.max(0,e.outerWidth-getCombinedMax(r,t,"left","right")),s=Math.max(0,e.outerHeight-getCombinedMax(r,t,"top","bottom")),c=l!==t.w,d=s!==t.h;return t.w=l,t.h=s,n.horizontal?{same:c,other:d}:{same:d,other:c}}function handleMaxPadding(t){const e=t.maxPadding;function n(n){const a=Math.max(e[n]-t[n],0);return t[n]+=a,a}t.y+=n("top"),t.x+=n("left"),n("right"),n("bottom")}function getMargins(t,e){const n=e.maxPadding;function a(t){const a={left:0,top:0,right:0,bottom:0};return t.forEach((t=>{a[t]=Math.max(e[t],n[t])})),a}return a(t?["left","right"]:["top","bottom"])}function fitBoxes(t,e,n,a){const o=[];let i,r,l,s,c,d;for(i=0,r=t.length,c=0;i{"function"==typeof t.beforeLayout&&t.beforeLayout()}));const d=s.reduce(((t,e)=>e.box.options&&!1===e.box.options.display?t:t+1),0)||1,p=Object.freeze({outerWidth:e,outerHeight:n,padding:o,availableWidth:i,availableHeight:r,vBoxMaxWidth:i/2/d,hBoxMaxHeight:r/2}),u=Object.assign({},o);updateMaxPadding(u,toPadding(a));const h=Object.assign({maxPadding:u,w:i,h:r,x:o.left,y:o.top},o),m=setLayoutDims(s.concat(c),p);fitBoxes(l.fullSize,h,p,m),fitBoxes(s,h,p,m),fitBoxes(c,h,p,m)&&fitBoxes(s,h,p,m),handleMaxPadding(h),placeBoxes(l.leftAndTop,h,p,m),h.x+=h.w,h.y+=h.h,placeBoxes(l.rightAndBottom,h,p,m),t.chartArea={left:h.left,top:h.top,right:h.left+h.w,bottom:h.top+h.h,height:h.h,width:h.w},each(l.chartArea,(e=>{const n=e.box;Object.assign(n,t.chartArea),n.update(h.w,h.h,{left:0,top:0,right:0,bottom:0})}))}};class BasePlatform{acquireContext(t,e){}releaseContext(t){return!1}addEventListener(t,e,n){}removeEventListener(t,e,n){}getDevicePixelRatio(){return 1}getMaximumSize(t,e,n,a){return e=Math.max(0,e||t.width),n=n||t.height,{width:e,height:Math.max(0,a?Math.floor(e/a):n)}}isAttached(t){return!0}updateConfig(t){}}class BasicPlatform extends BasePlatform{acquireContext(t){return t&&t.getContext&&t.getContext("2d")||null}updateConfig(t){t.options.animation=!1}}const EXPANDO_KEY="$chartjs",EVENT_TYPES={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},isNullOrEmpty=t=>null===t||""===t;function initCanvas(t,e){const n=t.style,a=t.getAttribute("height"),o=t.getAttribute("width");if(t[EXPANDO_KEY]={initial:{height:a,width:o,style:{display:n.display,height:n.height,width:n.width}}},n.display=n.display||"block",n.boxSizing=n.boxSizing||"border-box",isNullOrEmpty(o)){const e=readUsedSize(t,"width");void 0!==e&&(t.width=e)}if(isNullOrEmpty(a))if(""===t.style.height)t.height=t.width/(e||2);else{const e=readUsedSize(t,"height");void 0!==e&&(t.height=e)}return t}const eventListenerOptions=!!supportsEventListenerOptions&&{passive:!0};function addListener(t,e,n){t.addEventListener(e,n,eventListenerOptions)}function removeListener(t,e,n){t.canvas.removeEventListener(e,n,eventListenerOptions)}function fromNativeEvent(t,e){const n=EVENT_TYPES[t.type]||t.type,{x:a,y:o}=getRelativePosition(t,e);return{type:n,chart:e,native:t,x:void 0!==a?a:null,y:void 0!==o?o:null}}function nodeListContains(t,e){for(const n of t)if(n===e||n.contains(e))return!0}function createAttachObserver(t,e,n){const a=t.canvas,o=new MutationObserver((t=>{let e=!1;for(const n of t)e=e||nodeListContains(n.addedNodes,a),e=e&&!nodeListContains(n.removedNodes,a);e&&n()}));return o.observe(document,{childList:!0,subtree:!0}),o}function createDetachObserver(t,e,n){const a=t.canvas,o=new MutationObserver((t=>{let e=!1;for(const n of t)e=e||nodeListContains(n.removedNodes,a),e=e&&!nodeListContains(n.addedNodes,a);e&&n()}));return o.observe(document,{childList:!0,subtree:!0}),o}const drpListeningCharts=new Map;let oldDevicePixelRatio=0;function onWindowResize(){const t=window.devicePixelRatio;t!==oldDevicePixelRatio&&(oldDevicePixelRatio=t,drpListeningCharts.forEach(((e,n)=>{n.currentDevicePixelRatio!==t&&e()})))}function listenDevicePixelRatioChanges(t,e){drpListeningCharts.size||window.addEventListener("resize",onWindowResize),drpListeningCharts.set(t,e)}function unlistenDevicePixelRatioChanges(t){drpListeningCharts.delete(t),drpListeningCharts.size||window.removeEventListener("resize",onWindowResize)}function createResizeObserver(t,e,n){const a=t.canvas,o=a&&_getParentNode(a);if(!o)return;const i=throttled(((t,e)=>{const a=o.clientWidth;n(t,e),a{const e=t[0],n=e.contentRect.width,a=e.contentRect.height;0===n&&0===a||i(n,a)}));return r.observe(o),listenDevicePixelRatioChanges(t,i),r}function releaseObserver(t,e,n){n&&n.disconnect(),"resize"===e&&unlistenDevicePixelRatioChanges(t)}function createProxyAndListen(t,e,n){const a=t.canvas,o=throttled((e=>{null!==t.ctx&&n(fromNativeEvent(e,t))}),t);return addListener(a,e,o),o}class DomPlatform extends BasePlatform{acquireContext(t,e){const n=t&&t.getContext&&t.getContext("2d");return n&&n.canvas===t?(initCanvas(t,e),n):null}releaseContext(t){const e=t.canvas;if(!e[EXPANDO_KEY])return!1;const n=e[EXPANDO_KEY].initial;["height","width"].forEach((t=>{const a=n[t];isNullOrUndef(a)?e.removeAttribute(t):e.setAttribute(t,a)}));const a=n.style||{};return Object.keys(a).forEach((t=>{e.style[t]=a[t]})),e.width=e.width,delete e[EXPANDO_KEY],!0}addEventListener(t,e,n){this.removeEventListener(t,e);const a=t.$proxies||(t.$proxies={}),o={attach:createAttachObserver,detach:createDetachObserver,resize:createResizeObserver}[e]||createProxyAndListen;a[e]=o(t,e,n)}removeEventListener(t,e){const n=t.$proxies||(t.$proxies={}),a=n[e];if(!a)return;({attach:releaseObserver,detach:releaseObserver,resize:releaseObserver}[e]||removeListener)(t,e,a),n[e]=void 0}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(t,e,n,a){return getMaximumSize(t,e,n,a)}isAttached(t){const e=_getParentNode(t);return!(!e||!e.isConnected)}}function _detectPlatform(t){return!_isDomSupported()||"undefined"!=typeof OffscreenCanvas&&t instanceof OffscreenCanvas?BasicPlatform:DomPlatform}class Element{constructor(){_defineProperty(this,"active",!1)}tooltipPosition(t){const{x:e,y:n}=this.getProps(["x","y"],t);return{x:e,y:n}}hasValue(){return isNumber(this.x)&&isNumber(this.y)}getProps(t,e){const n=this.$animations;if(!e||!n)return this;const a={};return t.forEach((t=>{a[t]=n[t]&&n[t].active()?n[t]._to:this[t]})),a}}function autoSkip(t,e){const n=t.options.ticks,a=determineMaxTicks(t),o=Math.min(n.maxTicksLimit||a,a),i=n.major.enabled?getMajorIndices(e):[],r=i.length,l=i[0],s=i[r-1],c=[];if(r>o)return skipMajors(e,c,i,r/o),c;const d=calculateSpacing(i,e,o);if(r>0){let t,n;const a=r>1?Math.round((s-l)/(r-1)):null;for(skip(e,c,d,isNullOrUndef(a)?0:l-a,l),t=0,n=r-1;to)return t}return Math.max(o,1)}function getMajorIndices(t){const e=[];let n,a;for(n=0,a=t.length;n"left"===t?"right":"right"===t?"left":t,offsetFromEdge=(t,e,n)=>"top"===e||"left"===e?t[e]+n:t[e]-n;function sample(t,e){const n=[],a=t.length/e,o=t.length;let i=0;for(;ir+l)))return c}function garbageCollect(t,e){each(t,(t=>{const n=t.gc,a=n.length/2;let o;if(a>e){for(o=0;oa?a:n,a=o&&n>a?n:a,{min:finiteOrDefault(n,finiteOrDefault(a,n)),max:finiteOrDefault(a,finiteOrDefault(n,a))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels||[]}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){callback(this.options.beforeUpdate,[this])}update(t,e,n){const{beginAtZero:a,grace:o,ticks:i}=this.options,r=i.sampleSize;this.beforeUpdate(),this.maxWidth=t,this.maxHeight=e,this._margins=n=Object.assign({left:0,right:0,top:0,bottom:0},n),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+n.left+n.right:this.height+n.top+n.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=_addGrace(this,o,a),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const l=r=o||n<=1||!this.isHorizontal())return void(this.labelRotation=a);const c=this._getLabelSizes(),d=c.widest.width,p=c.highest.height,u=_limitValue(this.chart.width-d,0,this.maxWidth);i=t.offset?this.maxWidth/n:u/(n-1),d+6>i&&(i=u/(n-(t.offset?.5:1)),r=this.maxHeight-getTickMarkLength(t.grid)-e.padding-getTitleHeight(t.title,this.chart.options.font),l=Math.sqrt(d*d+p*p),s=toDegrees(Math.min(Math.asin(_limitValue((c.highest.height+6)/i,-1,1)),Math.asin(_limitValue(r/l,-1,1))-Math.asin(_limitValue(p/l,-1,1)))),s=Math.max(a,Math.min(o,s))),this.labelRotation=s}afterCalculateLabelRotation(){callback(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){callback(this.options.beforeFit,[this])}fit(){const t={width:0,height:0},{chart:e,options:{ticks:n,title:a,grid:o}}=this,i=this._isVisible(),r=this.isHorizontal();if(i){const i=getTitleHeight(a,e.options.font);if(r?(t.width=this.maxWidth,t.height=getTickMarkLength(o)+i):(t.height=this.maxHeight,t.width=getTickMarkLength(o)+i),n.display&&this.ticks.length){const{first:e,last:a,widest:o,highest:i}=this._getLabelSizes(),l=2*n.padding,s=toRadians(this.labelRotation),c=Math.cos(s),d=Math.sin(s);if(r){const e=n.mirror?0:d*o.width+c*i.height;t.height=Math.min(this.maxHeight,t.height+e+l)}else{const e=n.mirror?0:c*o.width+d*i.height;t.width=Math.min(this.maxWidth,t.width+e+l)}this._calculatePadding(e,a,d,c)}}this._handleMargins(),r?(this.width=this._length=e.width-this._margins.left-this._margins.right,this.height=t.height):(this.width=t.width,this.height=this._length=e.height-this._margins.top-this._margins.bottom)}_calculatePadding(t,e,n,a){const{ticks:{align:o,padding:i},position:r}=this.options,l=0!==this.labelRotation,s="top"!==r&&"x"===this.axis;if(this.isHorizontal()){const r=this.getPixelForTick(0)-this.left,c=this.right-this.getPixelForTick(this.ticks.length-1);let d=0,p=0;l?s?(d=a*t.width,p=n*e.height):(d=n*t.height,p=a*e.width):"start"===o?p=e.width:"end"===o?d=t.width:"inner"!==o&&(d=t.width/2,p=e.width/2),this.paddingLeft=Math.max((d-r+i)*this.width/(this.width-r),0),this.paddingRight=Math.max((p-c+i)*this.width/(this.width-c),0)}else{let n=e.height/2,a=t.height/2;"start"===o?(n=0,a=t.height):"end"===o&&(n=e.height,a=0),this.paddingTop=n+i,this.paddingBottom=a+i}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){callback(this.options.afterFit,[this])}isHorizontal(){const{axis:t,position:e}=this.options;return"top"===e||"bottom"===e||"x"===t}isFullSize(){return this.options.fullSize}_convertTicksToLabels(t){let e,n;for(this.beforeTickToLabelConversion(),this.generateTickLabels(t),e=0,n=t.length;e({width:o[t]||0,height:i[t]||0});return{first:y(0),last:y(e-1),widest:y(v),highest:y(w),widths:o,heights:i}}getLabelForValue(t){return t}getPixelForValue(t,e){return NaN}getValueForPixel(t){}getPixelForTick(t){const e=this.ticks;return t<0||t>e.length-1?null:this.getPixelForValue(e[t].value)}getPixelForDecimal(t){this._reversePixels&&(t=1-t);const e=this._startPixel+t*this._length;return _int16Range(this._alignToPixels?_alignPixel(this.chart,e,0):e)}getDecimalForPixel(t){const e=(t-this._startPixel)/this._length;return this._reversePixels?1-e:e}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:t,max:e}=this;return t<0&&e<0?e:t>0&&e>0?t:0}getContext(t){const e=this.ticks||[];if(t>=0&&tr*a?r/n:l/a:l*a0}_computeGridLineItems(t){const e=this.axis,n=this.chart,a=this.options,{grid:o,position:i,border:r}=a,l=o.offset,s=this.isHorizontal(),c=this.ticks.length+(l?1:0),d=getTickMarkLength(o),p=[],u=r.setContext(this.getContext()),h=u.display?u.width:0,m=h/2,g=function(t){return _alignPixel(n,t,h)};let b,f,x,v,w,y,k,_,z,S,M,C;if("top"===i)b=g(this.bottom),y=this.bottom-d,_=b-m,S=g(t.top)+m,C=t.bottom;else if("bottom"===i)b=g(this.top),S=t.top,C=g(t.bottom)-m,y=b+m,_=this.top+d;else if("left"===i)b=g(this.right),w=this.right-d,k=b-m,z=g(t.left)+m,M=t.right;else if("right"===i)b=g(this.left),z=t.left,M=g(t.right)-m,w=b+m,k=this.left+d;else if("x"===e){if("center"===i)b=g((t.top+t.bottom)/2+.5);else if(isObject(i)){const t=Object.keys(i)[0],e=i[t];b=g(this.chart.scales[t].getPixelForValue(e))}S=t.top,C=t.bottom,y=b+m,_=y+d}else if("y"===e){if("center"===i)b=g((t.left+t.right)/2);else if(isObject(i)){const t=Object.keys(i)[0],e=i[t];b=g(this.chart.scales[t].getPixelForValue(e))}w=b-m,k=w-d,z=t.left,M=t.right}const B=valueOrDefault(a.ticks.maxTicksLimit,c),D=Math.max(1,Math.ceil(c/B));for(f=0;fe.value===t));if(n>=0){return e.setContext(this.getContext(n)).lineWidth}return 0}drawGrid(t){const e=this.options.grid,n=this.ctx,a=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(t));let o,i;const r=(t,e,a)=>{a.width&&a.color&&(n.save(),n.lineWidth=a.width,n.strokeStyle=a.color,n.setLineDash(a.borderDash||[]),n.lineDashOffset=a.borderDashOffset,n.beginPath(),n.moveTo(t.x,t.y),n.lineTo(e.x,e.y),n.stroke(),n.restore())};if(e.display)for(o=0,i=a.length;o{this.drawBackground(),this.drawGrid(t),this.drawTitle()}},{z:a,draw:()=>{this.drawBorder()}},{z:e,draw:t=>{this.drawLabels(t)}}]:[{z:e,draw:t=>{this.draw(t)}}]}getMatchingVisibleMetas(t){const e=this.chart.getSortedVisibleDatasetMetas(),n=this.axis+"AxisID",a=[];let o,i;for(o=0,i=e.length;o{const a=n.split("."),o=a.pop(),i=[t].concat(a).join("."),r=e[n].split("."),l=r.pop(),s=r.join(".");defaults.route(i,o,s,l)}))}function isIChartComponent(t){return"id"in t&&"defaults"in t}class Registry{constructor(){this.controllers=new TypedRegistry(DatasetController,"datasets",!0),this.elements=new TypedRegistry(Element,"elements"),this.plugins=new TypedRegistry(Object,"plugins"),this.scales=new TypedRegistry(Scale,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...t){this._each("register",t)}remove(...t){this._each("unregister",t)}addControllers(...t){this._each("register",t,this.controllers)}addElements(...t){this._each("register",t,this.elements)}addPlugins(...t){this._each("register",t,this.plugins)}addScales(...t){this._each("register",t,this.scales)}getController(t){return this._get(t,this.controllers,"controller")}getElement(t){return this._get(t,this.elements,"element")}getPlugin(t){return this._get(t,this.plugins,"plugin")}getScale(t){return this._get(t,this.scales,"scale")}removeControllers(...t){this._each("unregister",t,this.controllers)}removeElements(...t){this._each("unregister",t,this.elements)}removePlugins(...t){this._each("unregister",t,this.plugins)}removeScales(...t){this._each("unregister",t,this.scales)}_each(t,e,n){[...e].forEach((e=>{const a=n||this._getRegistryForType(e);n||a.isForType(e)||a===this.plugins&&e.id?this._exec(t,a,e):each(e,(e=>{const a=n||this._getRegistryForType(e);this._exec(t,a,e)}))}))}_exec(t,e,n){const a=_capitalize(t);callback(n["before"+a],[],n),e[t](n),callback(n["after"+a],[],n)}_getRegistryForType(t){for(let e=0;et.filter((t=>!e.some((e=>t.plugin.id===e.plugin.id))));this._notify(a(e,n),t,"stop"),this._notify(a(n,e),t,"start")}}function allPlugins(t){const e={},n=[],a=Object.keys(registry.plugins.items);for(let i=0;i1&&determineAxis(t[0].toLowerCase(),e))return t;throw new Error(`Cannot determine type of '${name}' axis. Please provide 'axis' or 'position' option.`)}function mergeScaleConfig(t,e){const n=overrides[t.type]||{scales:{}},a=e.scales||{},o=getIndexAxis(t.type,e),i=Object.create(null);return Object.keys(a).forEach((t=>{const e=a[t];if(!isObject(e))return console.error(`Invalid scale configuration for scale: ${t}`);if(e._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${t}`);const r=determineAxis(t,e),l=getDefaultScaleIDFromAxis(r,o),s=n.scales||{};i[t]=mergeIf(Object.create(null),[{axis:r},e,s[r],s[l]])})),t.data.datasets.forEach((n=>{const o=n.type||t.type,r=n.indexAxis||getIndexAxis(o,e),l=(overrides[o]||{}).scales||{};Object.keys(l).forEach((t=>{const e=getAxisFromDefaultScaleID(t,r),o=n[e+"AxisID"]||e;i[o]=i[o]||Object.create(null),mergeIf(i[o],[{axis:e},a[o],l[t]])}))})),Object.keys(i).forEach((t=>{const e=i[t];mergeIf(e,[defaults.scales[e.type],defaults.scale])})),i}function initOptions(t){const e=t.options||(t.options={});e.plugins=valueOrDefault(e.plugins,{}),e.scales=mergeScaleConfig(t,e)}function initData(t){return(t=t||{}).datasets=t.datasets||[],t.labels=t.labels||[],t}function initConfig(t){return(t=t||{}).data=initData(t.data),initOptions(t),t}const keyCache=new Map,keysCached=new Set;function cachedKeys(t,e){let n=keyCache.get(t);return n||(n=e(),keyCache.set(t,n),keysCached.add(n)),n}const addIfFound=(t,e,n)=>{const a=resolveObjectKey(e,n);void 0!==a&&t.add(a)};class Config{constructor(t){this._config=initConfig(t),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(t){this._config.type=t}get data(){return this._config.data}set data(t){this._config.data=initData(t)}get options(){return this._config.options}set options(t){this._config.options=t}get plugins(){return this._config.plugins}update(){const t=this._config;this.clearCache(),initOptions(t)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(t){return cachedKeys(t,(()=>[[`datasets.${t}`,""]]))}datasetAnimationScopeKeys(t,e){return cachedKeys(`${t}.transition.${e}`,(()=>[[`datasets.${t}.transitions.${e}`,`transitions.${e}`],[`datasets.${t}`,""]]))}datasetElementScopeKeys(t,e){return cachedKeys(`${t}-${e}`,(()=>[[`datasets.${t}.elements.${e}`,`datasets.${t}`,`elements.${e}`,""]]))}pluginScopeKeys(t){const e=t.id;return cachedKeys(`${this.type}-plugin-${e}`,(()=>[[`plugins.${e}`,...t.additionalOptionScopes||[]]]))}_cachedScopes(t,e){const n=this._scopeCache;let a=n.get(t);return a&&!e||(a=new Map,n.set(t,a)),a}getOptionScopes(t,e,n){const{options:a,type:o}=this,i=this._cachedScopes(t,n),r=i.get(e);if(r)return r;const l=new Set;e.forEach((e=>{t&&(l.add(t),e.forEach((e=>addIfFound(l,t,e)))),e.forEach((t=>addIfFound(l,a,t))),e.forEach((t=>addIfFound(l,overrides[o]||{},t))),e.forEach((t=>addIfFound(l,defaults,t))),e.forEach((t=>addIfFound(l,descriptors,t)))}));const s=Array.from(l);return 0===s.length&&s.push(Object.create(null)),keysCached.has(e)&&i.set(e,s),s}chartOptionScopes(){const{options:t,type:e}=this;return[t,overrides[e]||{},defaults.datasets[e]||{},{type:e},defaults,descriptors]}resolveNamedOptions(t,e,n,a=[""]){const o={$shared:!0},{resolver:i,subPrefixes:r}=getResolver(this._resolverCache,t,a);let l=i;if(needContext(i,e)){o.$shared=!1;l=_attachContext(i,n=isFunction(n)?n():n,this.createResolver(t,n,r))}for(const s of e)o[s]=l[s];return o}createResolver(t,e,n=[""],a){const{resolver:o}=getResolver(this._resolverCache,t,n);return isObject(e)?_attachContext(o,e,void 0,a):o}}function getResolver(t,e,n){let a=t.get(e);a||(a=new Map,t.set(e,a));const o=n.join();let i=a.get(o);if(!i){i={resolver:_createResolver(e,n),subPrefixes:n.filter((t=>!t.toLowerCase().includes("hover")))},a.set(o,i)}return i}const hasFunction=t=>isObject(t)&&Object.getOwnPropertyNames(t).reduce(((e,n)=>e||isFunction(t[n])),!1);function needContext(t,e){const{isScriptable:n,isIndexable:a}=_descriptors(t);for(const o of e){const e=n(o),i=a(o),r=(i||e)&&t[o];if(e&&(isFunction(r)||hasFunction(r))||i&&isArray(r))return!0}return!1}var version="4.0.1";const KNOWN_POSITIONS=["top","bottom","left","right","chartArea"];function positionIsHorizontal(t,e){return"top"===t||"bottom"===t||-1===KNOWN_POSITIONS.indexOf(t)&&"x"===e}function compare2Level(t,e){return function(n,a){return n[t]===a[t]?n[e]-a[e]:n[t]-a[t]}}function onAnimationsComplete(t){const e=t.chart,n=e.options.animation;e.notifyPlugins("afterRender"),callback(n&&n.onComplete,[t],e)}function onAnimationProgress(t){const e=t.chart,n=e.options.animation;callback(n&&n.onProgress,[t],e)}function getCanvas(t){return _isDomSupported()&&"string"==typeof t?t=document.getElementById(t):t&&t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas),t}const instances={},getChart=t=>{const e=getCanvas(t);return Object.values(instances).filter((t=>t.canvas===e)).pop()};function moveNumericKeys(t,e,n){const a=Object.keys(t);for(const o of a){const a=+o;if(a>=e){const i=t[o];delete t[o],(n>0||a>e)&&(t[a+n]=i)}}}function determineLastEvent(t,e,n,a){return n&&"mouseout"!==t.type?a?e:t:null}function getDatasetArea(t){const{xScale:e,yScale:n}=t;if(e&&n)return{left:e.left,right:e.right,top:n.top,bottom:n.bottom}}class Chart{static register(...t){registry.add(...t),invalidatePlugins()}static unregister(...t){registry.remove(...t),invalidatePlugins()}constructor(t,e){const n=this.config=new Config(e),a=getCanvas(t),o=getChart(a);if(o)throw new Error("Canvas is already in use. Chart with ID '"+o.id+"' must be destroyed before the canvas with ID '"+o.canvas.id+"' can be reused.");const i=n.createResolver(n.chartOptionScopes(),this.getContext());this.platform=new(n.platform||_detectPlatform(a)),this.platform.updateConfig(n);const r=this.platform.acquireContext(a,i.aspectRatio),l=r&&r.canvas,s=l&&l.height,c=l&&l.width;this.id=uid(),this.ctx=r,this.canvas=l,this.width=c,this.height=s,this._options=i,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new PluginService,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=debounce((t=>this.update(t)),i.resizeDelay||0),this._dataChanges=[],instances[this.id]=this,r&&l?(animator.listen(this,"complete",onAnimationsComplete),animator.listen(this,"progress",onAnimationProgress),this._initialize(),this.attached&&this.update()):console.error("Failed to create chart: can't acquire context from the given item")}get aspectRatio(){const{options:{aspectRatio:t,maintainAspectRatio:e},width:n,height:a,_aspectRatio:o}=this;return isNullOrUndef(t)?e&&o?o:a?n/a:null:t}get data(){return this.config.data}set data(t){this.config.data=t}get options(){return this._options}set options(t){this.config.options=t}get registry(){return registry}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():retinaScale(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return clearCanvas(this.canvas,this.ctx),this}stop(){return animator.stop(this),this}resize(t,e){animator.running(this)?this._resizeBeforeDraw={width:t,height:e}:this._resize(t,e)}_resize(t,e){const n=this.options,a=this.canvas,o=n.maintainAspectRatio&&this.aspectRatio,i=this.platform.getMaximumSize(a,t,e,o),r=n.devicePixelRatio||this.platform.getDevicePixelRatio(),l=this.width?"resize":"attach";this.width=i.width,this.height=i.height,this._aspectRatio=this.aspectRatio,retinaScale(this,r,!0)&&(this.notifyPlugins("resize",{size:i}),callback(n.onResize,[this,i],this),this.attached&&this._doResize(l)&&this.render())}ensureScalesHaveIDs(){each(this.options.scales||{},((t,e)=>{t.id=e}))}buildOrUpdateScales(){const t=this.options,e=t.scales,n=this.scales,a=Object.keys(n).reduce(((t,e)=>(t[e]=!1,t)),{});let o=[];e&&(o=o.concat(Object.keys(e).map((t=>{const n=e[t],a=determineAxis(t,n),o="r"===a,i="x"===a;return{options:n,dposition:o?"chartArea":i?"bottom":"left",dtype:o?"radialLinear":i?"category":"linear"}})))),each(o,(e=>{const o=e.options,i=o.id,r=determineAxis(i,o),l=valueOrDefault(o.type,e.dtype);void 0!==o.position&&positionIsHorizontal(o.position,r)===positionIsHorizontal(e.dposition)||(o.position=e.dposition),a[i]=!0;let s=null;if(i in n&&n[i].type===l)s=n[i];else{s=new(registry.getScale(l))({id:i,type:l,ctx:this.ctx,chart:this}),n[s.id]=s}s.init(o,t)})),each(a,((t,e)=>{t||delete n[e]})),each(n,(t=>{layouts.configure(this,t,t.options),layouts.addBox(this,t)}))}_updateMetasets(){const t=this._metasets,e=this.data.datasets.length,n=t.length;if(t.sort(((t,e)=>t.index-e.index)),n>e){for(let t=e;te.length&&delete this._stacks,t.forEach(((t,n)=>{0===e.filter((e=>e===t._dataset)).length&&this._destroyDatasetMeta(n)}))}buildOrUpdateControllers(){const t=[],e=this.data.datasets;let n,a;for(this._removeUnreferencedMetasets(),n=0,a=e.length;n{this.getDatasetMeta(e).controller.reset()}),this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(t){const e=this.config;e.update();const n=this._options=e.createResolver(e.chartOptionScopes(),this.getContext()),a=this._animationsDisabled=!n.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),!1===this.notifyPlugins("beforeUpdate",{mode:t,cancelable:!0}))return;const o=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let i=0;for(let s=0,c=this.data.datasets.length;s{t.reset()})),this._updateDatasets(t),this.notifyPlugins("afterUpdate",{mode:t}),this._layers.sort(compare2Level("z","_idx"));const{_active:r,_lastEvent:l}=this;l?this._eventHandler(l,!0):r.length&&this._updateHoverStyles(r,r,!0),this.render()}_updateScales(){each(this.scales,(t=>{layouts.removeBox(this,t)})),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const t=this.options,e=new Set(Object.keys(this._listeners)),n=new Set(t.events);setsEqual(e,n)&&!!this._responsiveListeners===t.responsive||(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:t}=this,e=this._getUniformDataChanges()||[];for(const{method:n,start:a,count:o}of e){moveNumericKeys(t,a,"_removeElements"===n?-o:o)}}_getUniformDataChanges(){const t=this._dataChanges;if(!t||!t.length)return;this._dataChanges=[];const e=this.data.datasets.length,n=e=>new Set(t.filter((t=>t[0]===e)).map(((t,e)=>e+","+t.splice(1).join(",")))),a=n(0);for(let o=1;ot.split(","))).map((t=>({method:t[1],start:+t[2],count:+t[3]})))}_updateLayout(t){if(!1===this.notifyPlugins("beforeLayout",{cancelable:!0}))return;layouts.update(this,this.width,this.height,t);const e=this.chartArea,n=e.width<=0||e.height<=0;this._layers=[],each(this.boxes,(t=>{n&&"chartArea"===t.position||(t.configure&&t.configure(),this._layers.push(...t._layers()))}),this),this._layers.forEach(((t,e)=>{t._idx=e})),this.notifyPlugins("afterLayout")}_updateDatasets(t){if(!1!==this.notifyPlugins("beforeDatasetsUpdate",{mode:t,cancelable:!0})){for(let t=0,e=this.data.datasets.length;t=0;--e)this._drawDataset(t[e]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(t){const e=this.ctx,n=t._clip,a=!n.disabled,o=getDatasetArea(t)||this.chartArea,i={meta:t,index:t.index,cancelable:!0};!1!==this.notifyPlugins("beforeDatasetDraw",i)&&(a&&clipArea(e,{left:!1===n.left?0:o.left-n.left,right:!1===n.right?this.width:o.right+n.right,top:!1===n.top?0:o.top-n.top,bottom:!1===n.bottom?this.height:o.bottom+n.bottom}),t.controller.draw(),a&&unclipArea(e),i.cancelable=!1,this.notifyPlugins("afterDatasetDraw",i))}isPointInArea(t){return _isPointInArea(t,this.chartArea,this._minPadding)}getElementsAtEventForMode(t,e,n,a){const o=Interaction.modes[e];return"function"==typeof o?o(this,t,n,a):[]}getDatasetMeta(t){const e=this.data.datasets[t],n=this._metasets;let a=n.filter((t=>t&&t._dataset===e)).pop();return a||(a={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:e&&e.order||0,index:t,_dataset:e,_parsed:[],_sorted:!1},n.push(a)),a}getContext(){return this.$context||(this.$context=createContext(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(t){const e=this.data.datasets[t];if(!e)return!1;const n=this.getDatasetMeta(t);return"boolean"==typeof n.hidden?!n.hidden:!e.hidden}setDatasetVisibility(t,e){this.getDatasetMeta(t).hidden=!e}toggleDataVisibility(t){this._hiddenIndices[t]=!this._hiddenIndices[t]}getDataVisibility(t){return!this._hiddenIndices[t]}_updateVisibility(t,e,n){const a=n?"show":"hide",o=this.getDatasetMeta(t),i=o.controller._resolveAnimations(void 0,a);defined(e)?(o.data[e].hidden=!n,this.update()):(this.setDatasetVisibility(t,n),i.update(o,{visible:n}),this.update((e=>e.datasetIndex===t?a:void 0)))}hide(t,e){this._updateVisibility(t,e,!1)}show(t,e){this._updateVisibility(t,e,!0)}_destroyDatasetMeta(t){const e=this._metasets[t];e&&e.controller&&e.controller._destroy(),delete this._metasets[t]}_stop(){let t,e;for(this.stop(),animator.remove(this),t=0,e=this.data.datasets.length;t{e.addEventListener(this,n,a),t[n]=a},a=(t,e,n)=>{t.offsetX=e,t.offsetY=n,this._eventHandler(t)};each(this.options.events,(t=>n(t,a)))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const t=this._responsiveListeners,e=this.platform,n=(n,a)=>{e.addEventListener(this,n,a),t[n]=a},a=(n,a)=>{t[n]&&(e.removeEventListener(this,n,a),delete t[n])},o=(t,e)=>{this.canvas&&this.resize(t,e)};let i;const r=()=>{a("attach",r),this.attached=!0,this.resize(),n("resize",o),n("detach",i)};i=()=>{this.attached=!1,a("resize",o),this._stop(),this._resize(0,0),n("attach",r)},e.isAttached(this.canvas)?r():i()}unbindEvents(){each(this._listeners,((t,e)=>{this.platform.removeEventListener(this,e,t)})),this._listeners={},each(this._responsiveListeners,((t,e)=>{this.platform.removeEventListener(this,e,t)})),this._responsiveListeners=void 0}updateHoverStyle(t,e,n){const a=n?"set":"remove";let o,i,r,l;for("dataset"===e&&(o=this.getDatasetMeta(t[0].datasetIndex),o.controller["_"+a+"DatasetHoverStyle"]()),r=0,l=t.length;r{const n=this.getDatasetMeta(t);if(!n)throw new Error("No dataset found at index "+t);return{datasetIndex:t,element:n.data[e],index:e}}));!_elementsEqual(n,e)&&(this._active=n,this._lastEvent=null,this._updateHoverStyles(n,e))}notifyPlugins(t,e,n){return this._plugins.notify(this,t,e,n)}isPluginEnabled(t){return 1===this._plugins._cache.filter((e=>e.plugin.id===t)).length}_updateHoverStyles(t,e,n){const a=this.options.hover,o=(t,e)=>t.filter((t=>!e.some((e=>t.datasetIndex===e.datasetIndex&&t.index===e.index)))),i=o(e,t),r=n?t:o(t,e);i.length&&this.updateHoverStyle(i,a.mode,!1),r.length&&a.mode&&this.updateHoverStyle(r,a.mode,!0)}_eventHandler(t,e){const n={event:t,replay:e,cancelable:!0,inChartArea:this.isPointInArea(t)},a=e=>(e.options.events||this.options.events).includes(t.native.type);if(!1===this.notifyPlugins("beforeEvent",n,a))return;const o=this._handleEvent(t,e,n.inChartArea);return n.cancelable=!1,this.notifyPlugins("afterEvent",n,a),(o||n.changed)&&this.render(),this}_handleEvent(t,e,n){const{_active:a=[],options:o}=this,i=e,r=this._getActiveElements(t,a,n,i),l=_isClickEvent(t),s=determineLastEvent(t,this._lastEvent,n,l);n&&(this._lastEvent=null,callback(o.onHover,[t,r,this],this),l&&callback(o.onClick,[t,r,this],this));const c=!_elementsEqual(r,a);return(c||e)&&(this._active=r,this._updateHoverStyles(r,a,e)),this._lastEvent=s,c}_getActiveElements(t,e,n,a){if("mouseout"===t.type)return[];if(!n)return e;const o=this.options.hover;return this.getElementsAtEventForMode(t,o.mode,o,a)}}function invalidatePlugins(){return each(Chart.instances,(t=>t._plugins.invalidate()))}_defineProperty(Chart,"defaults",defaults),_defineProperty(Chart,"instances",instances),_defineProperty(Chart,"overrides",overrides),_defineProperty(Chart,"registry",registry),_defineProperty(Chart,"version",version),_defineProperty(Chart,"getChart",getChart);var Chart$1=Chart;function clipArc(t,e,n){const{startAngle:a,pixelMargin:o,x:i,y:r,outerRadius:l,innerRadius:s}=e;let c=o/l;t.beginPath(),t.arc(i,r,l,a-c,n+c),s>o?(c=o/s,t.arc(i,r,s,n+c,a-c,!0)):t.arc(i,r,o,n+HALF_PI,a-HALF_PI),t.closePath(),t.clip()}function toRadiusCorners(t){return _readValueToProps(t,["outerStart","outerEnd","innerStart","innerEnd"])}function parseBorderRadius$1(t,e,n,a){const o=toRadiusCorners(t.options.borderRadius),i=(n-e)/2,r=Math.min(i,a*e/2),l=t=>{const e=(n-Math.min(i,t))*a/2;return _limitValue(t,0,Math.min(i,e))};return{outerStart:l(o.outerStart),outerEnd:l(o.outerEnd),innerStart:_limitValue(o.innerStart,0,r),innerEnd:_limitValue(o.innerEnd,0,r)}}function rThetaToXY(t,e,n,a){return{x:n+t*Math.cos(e),y:a+t*Math.sin(e)}}function pathArc(t,e,n,a,o,i){const{x:r,y:l,startAngle:s,pixelMargin:c,innerRadius:d}=e,p=Math.max(e.outerRadius+a+n-c,0),u=d>0?d+a+n+c:0;let h=0;const m=o-s;if(a){const t=((d>0?d-a:0)+(p>0?p-a:0))/2;h=(m-(0!==t?m*t/(t+a):m))/2}const g=(m-Math.max(.001,m*p-n/PI)/p)/2,b=s+g+h,f=o-g-h,{outerStart:x,outerEnd:v,innerStart:w,innerEnd:y}=parseBorderRadius$1(e,u,p,f-b),k=p-x,_=p-v,z=b+x/k,S=f-v/_,M=u+w,C=u+y,B=b+w/M,D=f-y/C;if(t.beginPath(),i){const e=(z+S)/2;if(t.arc(r,l,p,z,e),t.arc(r,l,p,e,S),v>0){const e=rThetaToXY(_,S,r,l);t.arc(e.x,e.y,v,S,f+HALF_PI)}const n=rThetaToXY(C,f,r,l);if(t.lineTo(n.x,n.y),y>0){const e=rThetaToXY(C,D,r,l);t.arc(e.x,e.y,y,f+HALF_PI,D+Math.PI)}const a=(f-y/u+(b+w/u))/2;if(t.arc(r,l,u,f-y/u,a,!0),t.arc(r,l,u,a,b+w/u,!0),w>0){const e=rThetaToXY(M,B,r,l);t.arc(e.x,e.y,w,B+Math.PI,b-HALF_PI)}const o=rThetaToXY(k,b,r,l);if(t.lineTo(o.x,o.y),x>0){const e=rThetaToXY(k,z,r,l);t.arc(e.x,e.y,x,b-HALF_PI,z)}}else{t.moveTo(r,l);const e=Math.cos(z)*p+r,n=Math.sin(z)*p+l;t.lineTo(e,n);const a=Math.cos(S)*p+r,o=Math.sin(S)*p+l;t.lineTo(a,o)}t.closePath()}function drawArc(t,e,n,a,o){const{fullCircles:i,startAngle:r,circumference:l}=e;let s=e.endAngle;if(i){pathArc(t,e,n,a,s,o);for(let e=0;e=TAU||_angleBetween(o,r,l),h=_isBetween(i,s+p,c+p);return u&&h}getCenterPoint(t){const{x:e,y:n,startAngle:a,endAngle:o,innerRadius:i,outerRadius:r}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius","circumference"],t),{offset:l,spacing:s}=this.options,c=(a+o)/2,d=(i+r+s+l)/2;return{x:e+Math.cos(c)*d,y:n+Math.sin(c)*d}}tooltipPosition(t){return this.getCenterPoint(t)}draw(t){const{options:e,circumference:n}=this,a=(e.offset||0)/4,o=(e.spacing||0)/2,i=e.circular;if(this.pixelMargin="inner"===e.borderAlign?.33:0,this.fullCircles=n>TAU?Math.floor(n/TAU):0,0===n||this.innerRadius<0||this.outerRadius<0)return;t.save();const r=(this.startAngle+this.endAngle)/2;t.translate(Math.cos(r)*a,Math.sin(r)*a);const l=a*(1-Math.sin(Math.min(PI,n||0)));t.fillStyle=e.backgroundColor,t.strokeStyle=e.borderColor,drawArc(t,this,l,o,i),drawBorder(t,this,l,o,i),t.restore()}}function setStyle(t,e,n=e){t.lineCap=valueOrDefault(n.borderCapStyle,e.borderCapStyle),t.setLineDash(valueOrDefault(n.borderDash,e.borderDash)),t.lineDashOffset=valueOrDefault(n.borderDashOffset,e.borderDashOffset),t.lineJoin=valueOrDefault(n.borderJoinStyle,e.borderJoinStyle),t.lineWidth=valueOrDefault(n.borderWidth,e.borderWidth),t.strokeStyle=valueOrDefault(n.borderColor,e.borderColor)}function lineTo(t,e,n){t.lineTo(n.x,n.y)}function getLineMethod(t){return t.stepped?_steppedLineTo:t.tension||"monotone"===t.cubicInterpolationMode?_bezierCurveTo:lineTo}function pathVars(t,e,n={}){const a=t.length,{start:o=0,end:i=a-1}=n,{start:r,end:l}=e,s=Math.max(o,r),c=Math.min(i,l),d=ol&&i>l;return{count:a,start:s,loop:e.loop,ilen:c(r+(c?l-t:t))%i,v=()=>{h!==m&&(t.lineTo(b,m),t.lineTo(b,h),t.lineTo(b,g))};for(s&&(p=o[x(0)],t.moveTo(p.x,p.y)),d=0;d<=l;++d){if(p=o[x(d)],p.skip)continue;const e=p.x,n=p.y,a=0|e;a===u?(nm&&(m=n),b=(f*b+e)/++f):(v(),t.lineTo(e,n),u=a,f=0,h=m=n),g=n}v()}function _getSegmentMethod(t){const e=t.options,n=e.borderDash&&e.borderDash.length;return!(t._decimated||t._loop||e.tension||"monotone"===e.cubicInterpolationMode||e.stepped||n)?fastPathSegment:pathSegment}function _getInterpolationMethod(t){return t.stepped?_steppedInterpolation:t.tension||"monotone"===t.cubicInterpolationMode?_bezierInterpolation:_pointInLine}function strokePathWithCache(t,e,n,a){let o=e._path;o||(o=e._path=new Path2D,e.path(o,n,a)&&o.closePath()),setStyle(t,e.options),t.stroke(o)}function strokePathDirect(t,e,n,a){const{segments:o,options:i}=e,r=_getSegmentMethod(e);for(const l of o)setStyle(t,i,l.style),t.beginPath(),r(t,e,l,{start:n,end:n+a-1})&&t.closePath(),t.stroke()}_defineProperty(ArcElement,"id","arc"),_defineProperty(ArcElement,"defaults",{borderAlign:"center",borderColor:"#fff",borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0}),_defineProperty(ArcElement,"defaultRoutes",{backgroundColor:"backgroundColor"});const usePath2D="function"==typeof Path2D;function draw(t,e,n,a){usePath2D&&!e.options.segment?strokePathWithCache(t,e,n,a):strokePathDirect(t,e,n,a)}class LineElement extends Element{constructor(t){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,t&&Object.assign(this,t)}updateControlPoints(t,e){const n=this.options;if((n.tension||"monotone"===n.cubicInterpolationMode)&&!n.stepped&&!this._pointsUpdated){const a=n.spanGaps?this._loop:this._fullLoop;_updateBezierControlPoints(this._points,n,t,a,e),this._pointsUpdated=!0}}set points(t){this._points=t,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=_computeSegments(this,this.options.segment))}first(){const t=this.segments,e=this.points;return t.length&&e[t[0].start]}last(){const t=this.segments,e=this.points,n=t.length;return n&&e[t[n-1].end]}interpolate(t,e){const n=this.options,a=t[e],o=this.points,i=_boundSegments(this,{property:e,start:a,end:a});if(!i.length)return;const r=[],l=_getInterpolationMethod(n);let s,c;for(s=0,c=i.length;s"borderDash"!==t&&"fill"!==t});class PointElement extends Element{constructor(t){super(),this.options=void 0,this.parsed=void 0,this.skip=void 0,this.stop=void 0,t&&Object.assign(this,t)}inRange(t,e,n){const a=this.options,{x:o,y:i}=this.getProps(["x","y"],n);return Math.pow(t-o,2)+Math.pow(e-i,2)t.replace("rgb(","rgba(").replace(")",", 0.5)")));function getBorderColor(t){return BORDER_COLORS[t%BORDER_COLORS.length]}function getBackgroundColor(t){return BACKGROUND_COLORS[t%BACKGROUND_COLORS.length]}function createDefaultDatasetColorizer(){return(t,e)=>{t.borderColor=getBorderColor(e),t.backgroundColor=getBackgroundColor(e)}}function createDoughnutDatasetColorizer(){let t=0;return e=>{e.backgroundColor=e.data.map((()=>getBorderColor(t++)))}}function createPolarAreaDatasetColorizer(){let t=0;return e=>{e.backgroundColor=e.data.map((()=>getBackgroundColor(t++)))}}function getColorizer(t){return"doughnut"===t||"pie"===t?createDoughnutDatasetColorizer():"polarArea"===t?createPolarAreaDatasetColorizer():createDefaultDatasetColorizer()}function containsColorsDefinitions(t){let e;for(e in t)if(t[e].borderColor||t[e].backgroundColor)return!0;return!1}var plugin_colors={id:"colors",defaults:{enabled:!0},beforeLayout(t,e,n){if(!n.enabled)return;const{type:a,options:{elements:o},data:{datasets:i}}=t.config;if(containsColorsDefinitions(i)||o&&containsColorsDefinitions(o))return;const r=getColorizer(a);i.forEach(r)}};function lttbDecimation(t,e,n,a,o){const i=o.samples||a;if(i>=n)return t.slice(e,e+n);const r=[],l=(n-2)/(i-2);let s=0;const c=e+n-1;let d,p,u,h,m,g=e;for(r[s++]=t[g],d=0;du&&(u=h,p=t[a],m=a);r[s++]=p,g=m}return r[s++]=t[c],r}function minMaxDecimation(t,e,n,a){let o,i,r,l,s,c,d,p,u,h,m=0,g=0;const b=[],f=e+n-1,x=t[e].x,v=t[f].x-x;for(o=e;oh&&(h=l,d=o),m=(g*m+i.x)/++g;else{const n=o-1;if(!isNullOrUndef(c)&&!isNullOrUndef(d)){const e=Math.min(c,d),a=Math.max(c,d);e!==p&&e!==n&&b.push({...t[e],x:m}),a!==p&&a!==n&&b.push({...t[a],x:m})}o>0&&n!==p&&b.push(t[n]),b.push(i),s=e,g=0,u=h=l,c=d=p=o}}return b}function cleanDecimatedDataset(t){if(t._decimated){const e=t._data;delete t._decimated,delete t._data,Object.defineProperty(t,"data",{value:e})}}function cleanDecimatedData(t){t.data.datasets.forEach((t=>{cleanDecimatedDataset(t)}))}function getStartAndCountOfVisiblePointsSimplified(t,e){const n=e.length;let a,o=0;const{iScale:i}=t,{min:r,max:l,minDefined:s,maxDefined:c}=i.getUserBounds();return s&&(o=_limitValue(_lookupByKey(e,i.axis,r).lo,0,n-1)),a=c?_limitValue(_lookupByKey(e,i.axis,l).hi+1,o,n)-o:n-o,{start:o,count:a}}var plugin_decimation={id:"decimation",defaults:{algorithm:"min-max",enabled:!1},beforeElementsUpdate:(t,e,n)=>{if(!n.enabled)return void cleanDecimatedData(t);const a=t.width;t.data.datasets.forEach(((e,o)=>{const{_data:i,indexAxis:r}=e,l=t.getDatasetMeta(o),s=i||e.data;if("y"===resolve([r,t.options.indexAxis]))return;if(!l.controller.supportsDecimation)return;const c=t.scales[l.xAxisID];if("linear"!==c.type&&"time"!==c.type)return;if(t.options.parsing)return;let{start:d,count:p}=getStartAndCountOfVisiblePointsSimplified(l,s);if(p<=(n.threshold||4*a))return void cleanDecimatedDataset(e);let u;switch(isNullOrUndef(i)&&(e._data=s,delete e.data,Object.defineProperty(e,"data",{configurable:!0,enumerable:!0,get:function(){return this._decimated},set:function(t){this._data=t}})),n.algorithm){case"lttb":u=lttbDecimation(s,d,p,a,n);break;case"min-max":u=minMaxDecimation(s,d,p,a);break;default:throw new Error(`Unsupported decimation algorithm '${n.algorithm}'`)}e._decimated=u}))},destroy(t){cleanDecimatedData(t)}};function _segments(t,e,n){const a=t.segments,o=t.points,i=e.points,r=[];for(const l of a){let{start:t,end:a}=l;a=_findSegmentEnd(t,a,o);const s=_getBounds(n,o[t],o[a],l.loop);if(!e.segments){r.push({source:l,target:s,start:o[t],end:o[a]});continue}const c=_boundSegments(e,s);for(const e of c){const t=_getBounds(n,i[e.start],i[e.end],e.loop),a=_boundSegment(l,o,t);for(const o of a)r.push({source:o,target:e,start:{[n]:_getEdge(s,t,"start",Math.max)},end:{[n]:_getEdge(s,t,"end",Math.min)}})}}return r}function _getBounds(t,e,n,a){if(a)return;let o=e[t],i=n[t];return"angle"===t&&(o=_normalizeAngle(o),i=_normalizeAngle(i)),{property:t,start:o,end:i}}function _pointsFromSegments(t,e){const{x:n=null,y:a=null}=t||{},o=e.points,i=[];return e.segments.forEach((({start:t,end:e})=>{e=_findSegmentEnd(t,e,o);const r=o[t],l=o[e];null!==a?(i.push({x:r.x,y:a}),i.push({x:l.x,y:a})):null!==n&&(i.push({x:n,y:r.y}),i.push({x:n,y:l.y}))})),i}function _findSegmentEnd(t,e,n){for(;e>t;e--){const t=n[e];if(!isNaN(t.x)&&!isNaN(t.y))break}return e}function _getEdge(t,e,n,a){return t&&e?a(t[n],e[n]):t?t[n]:e?e[n]:0}function _createBoundaryLine(t,e){let n=[],a=!1;return isArray(t)?(a=!0,n=t):n=_pointsFromSegments(t,e),n.length?new LineElement({points:n,options:{tension:0},_loop:a,_fullLoop:a}):null}function _shouldApplyFill(t){return t&&!1!==t.fill}function _resolveTarget(t,e,n){let a=t[e].fill;const o=[e];let i;if(!n)return a;for(;!1!==a&&-1===o.indexOf(a);){if(!isNumberFinite(a))return a;if(i=t[a],!i)return!1;if(i.visible)return a;o.push(a),a=i.fill}return!1}function _decodeFill(t,e,n){const a=parseFillOption(t);if(isObject(a))return!isNaN(a.value)&&a;let o=parseFloat(a);return isNumberFinite(o)&&Math.floor(o)===o?decodeTargetIndex(a[0],e,o,n):["origin","start","end","stack","shape"].indexOf(a)>=0&&a}function decodeTargetIndex(t,e,n,a){return"-"!==t&&"+"!==t||(n=e+n),!(n===e||n<0||n>=a)&&n}function _getTargetPixel(t,e){let n=null;return"start"===t?n=e.bottom:"end"===t?n=e.top:isObject(t)?n=e.getPixelForValue(t.value):e.getBasePixel&&(n=e.getBasePixel()),n}function _getTargetValue(t,e,n){let a;return a="start"===t?n:"end"===t?e.options.reverse?e.min:e.max:isObject(t)?t.value:e.getBaseValue(),a}function parseFillOption(t){const e=t.options,n=e.fill;let a=valueOrDefault(n&&n.target,n);return void 0===a&&(a=!!e.backgroundColor),!1!==a&&null!==a&&(!0===a?"origin":a)}function _buildStackLine(t){const{scale:e,index:n,line:a}=t,o=[],i=a.segments,r=a.points,l=getLinesBelow(e,n);l.push(_createBoundaryLine({x:null,y:e.bottom},a));for(let s=0;s=0;--r){const e=o[r].$filler;e&&(e.line.updateControlPoints(i,e.axis),a&&e.fill&&_drawfill(t.ctx,e,i))}},beforeDatasetsDraw(t,e,n){if("beforeDatasetsDraw"!==n.drawTime)return;const a=t.getSortedVisibleDatasetMetas();for(let o=a.length-1;o>=0;--o){const e=a[o].$filler;_shouldApplyFill(e)&&_drawfill(t.ctx,e,t.chartArea)}},beforeDatasetDraw(t,e,n){const a=e.meta.$filler;_shouldApplyFill(a)&&"beforeDatasetDraw"===n.drawTime&&_drawfill(t.ctx,a,t.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};const getBoxSize=(t,e)=>{let{boxHeight:n=e,boxWidth:a=e}=t;return t.usePointStyle&&(n=Math.min(n,e),a=t.pointStyleWidth||Math.min(a,e)),{boxWidth:a,boxHeight:n,itemHeight:Math.max(e,n)}},itemsEqual=(t,e)=>null!==t&&null!==e&&t.datasetIndex===e.datasetIndex&&t.index===e.index;class Legend extends Element{constructor(t){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e,n){this.maxWidth=t,this.maxHeight=e,this._margins=n,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const t=this.options.labels||{};let e=callback(t.generateLabels,[this.chart],this)||[];t.filter&&(e=e.filter((e=>t.filter(e,this.chart.data)))),t.sort&&(e=e.sort(((e,n)=>t.sort(e,n,this.chart.data)))),this.options.reverse&&e.reverse(),this.legendItems=e}fit(){const{options:t,ctx:e}=this;if(!t.display)return void(this.width=this.height=0);const n=t.labels,a=toFont(n.font),o=a.size,i=this._computeTitleHeight(),{boxWidth:r,itemHeight:l}=getBoxSize(n,o);let s,c;e.font=a.string,this.isHorizontal()?(s=this.maxWidth,c=this._fitRows(i,o,r,l)+10):(c=this.maxHeight,s=this._fitCols(i,a,r,l)+10),this.width=Math.min(s,t.maxWidth||this.maxWidth),this.height=Math.min(c,t.maxHeight||this.maxHeight)}_fitRows(t,e,n,a){const{ctx:o,maxWidth:i,options:{labels:{padding:r}}}=this,l=this.legendHitBoxes=[],s=this.lineWidths=[0],c=a+r;let d=t;o.textAlign="left",o.textBaseline="middle";let p=-1,u=-c;return this.legendItems.forEach(((t,h)=>{const m=n+e/2+o.measureText(t.text).width;(0===h||s[s.length-1]+m+2*r>i)&&(d+=c,s[s.length-(h>0?0:1)]=0,u+=c,p++),l[h]={left:0,top:u,row:p,width:m,height:a},s[s.length-1]+=m+r})),d}_fitCols(t,e,n,a){const{ctx:o,maxHeight:i,options:{labels:{padding:r}}}=this,l=this.legendHitBoxes=[],s=this.columnSizes=[],c=i-t;let d=r,p=0,u=0,h=0,m=0;return this.legendItems.forEach(((t,i)=>{const{itemWidth:g,itemHeight:b}=calculateItemSize(n,e,o,t,a);i>0&&u+b+2*r>c&&(d+=p+r,s.push({width:p,height:u}),h+=p+r,m++,p=u=0),l[i]={left:h,top:u,col:m,width:g,height:b},p=Math.max(p,g),u+=b+r})),d+=p,s.push({width:p,height:u}),d}adjustHitBoxes(){if(!this.options.display)return;const t=this._computeTitleHeight(),{legendHitBoxes:e,options:{align:n,labels:{padding:a},rtl:o}}=this,i=getRtlAdapter(o,this.left,this.width);if(this.isHorizontal()){let o=0,r=_alignStartEnd(n,this.left+a,this.right-this.lineWidths[o]);for(const l of e)o!==l.row&&(o=l.row,r=_alignStartEnd(n,this.left+a,this.right-this.lineWidths[o])),l.top+=this.top+t+a,l.left=i.leftForLtr(i.x(r),l.width),r+=l.width+a}else{let o=0,r=_alignStartEnd(n,this.top+t+a,this.bottom-this.columnSizes[o].height);for(const l of e)l.col!==o&&(o=l.col,r=_alignStartEnd(n,this.top+t+a,this.bottom-this.columnSizes[o].height)),l.top=r,l.left+=this.left+a,l.left=i.leftForLtr(i.x(l.left),l.width),r+=l.height+a}}isHorizontal(){return"top"===this.options.position||"bottom"===this.options.position}draw(){if(this.options.display){const t=this.ctx;clipArea(t,this),this._draw(),unclipArea(t)}}_draw(){const{options:t,columnSizes:e,lineWidths:n,ctx:a}=this,{align:o,labels:i}=t,r=defaults.color,l=getRtlAdapter(t.rtl,this.left,this.width),s=toFont(i.font),{padding:c}=i,d=s.size,p=d/2;let u;this.drawTitle(),a.textAlign=l.textAlign("left"),a.textBaseline="middle",a.lineWidth=.5,a.font=s.string;const{boxWidth:h,boxHeight:m,itemHeight:g}=getBoxSize(i,d),b=this.isHorizontal(),f=this._computeTitleHeight();u=b?{x:_alignStartEnd(o,this.left+c,this.right-n[0]),y:this.top+c+f,line:0}:{x:this.left+c,y:_alignStartEnd(o,this.top+f+c,this.bottom-e[0].height),line:0},overrideTextDirection(this.ctx,t.textDirection);const x=g+c;this.legendItems.forEach(((v,w)=>{a.strokeStyle=v.fontColor,a.fillStyle=v.fontColor;const y=a.measureText(v.text).width,k=l.textAlign(v.textAlign||(v.textAlign=i.textAlign)),_=h+p+y;let z=u.x,S=u.y;l.setWidth(this.width),b?w>0&&z+_+c>this.right&&(S=u.y+=x,u.line++,z=u.x=_alignStartEnd(o,this.left+c,this.right-n[u.line])):w>0&&S+x>this.bottom&&(z=u.x=z+e[u.line].width+c,u.line++,S=u.y=_alignStartEnd(o,this.top+f+c,this.bottom-e[u.line].height));if(function(t,e,n){if(isNaN(h)||h<=0||isNaN(m)||m<0)return;a.save();const o=valueOrDefault(n.lineWidth,1);if(a.fillStyle=valueOrDefault(n.fillStyle,r),a.lineCap=valueOrDefault(n.lineCap,"butt"),a.lineDashOffset=valueOrDefault(n.lineDashOffset,0),a.lineJoin=valueOrDefault(n.lineJoin,"miter"),a.lineWidth=o,a.strokeStyle=valueOrDefault(n.strokeStyle,r),a.setLineDash(valueOrDefault(n.lineDash,[])),i.usePointStyle){const r={radius:m*Math.SQRT2/2,pointStyle:n.pointStyle,rotation:n.rotation,borderWidth:o},s=l.xPlus(t,h/2);drawPointLegend(a,r,s,e+p,i.pointStyleWidth&&h)}else{const i=e+Math.max((d-m)/2,0),r=l.leftForLtr(t,h),s=toTRBLCorners(n.borderRadius);a.beginPath(),Object.values(s).some((t=>0!==t))?addRoundedRectPath(a,{x:r,y:i,w:h,h:m,radius:s}):a.rect(r,i,h,m),a.fill(),0!==o&&a.stroke()}a.restore()}(l.x(z),S,v),z=_textX(k,z+h+p,b?z+_:this.right,t.rtl),function(t,e,n){renderText(a,n.text,t,e+g/2,s,{strikethrough:n.hidden,textAlign:l.textAlign(n.textAlign)})}(l.x(z),S,v),b)u.x+=_+c;else if("string"!=typeof v.text){const t=s.lineHeight;u.y+=calculateLegendItemHeight(v,t)}else u.y+=x})),restoreTextDirection(this.ctx,t.textDirection)}drawTitle(){const t=this.options,e=t.title,n=toFont(e.font),a=toPadding(e.padding);if(!e.display)return;const o=getRtlAdapter(t.rtl,this.left,this.width),i=this.ctx,r=e.position,l=n.size/2,s=a.top+l;let c,d=this.left,p=this.width;if(this.isHorizontal())p=Math.max(...this.lineWidths),c=this.top+s,d=_alignStartEnd(t.align,d,this.right-p);else{const e=this.columnSizes.reduce(((t,e)=>Math.max(t,e.height)),0);c=s+_alignStartEnd(t.align,this.top,this.bottom-e-t.labels.padding-this._computeTitleHeight())}const u=_alignStartEnd(r,d,d+p);i.textAlign=o.textAlign(_toLeftRightCenter(r)),i.textBaseline="middle",i.strokeStyle=e.color,i.fillStyle=e.color,i.font=n.string,renderText(i,e.text,u,c,n)}_computeTitleHeight(){const t=this.options.title,e=toFont(t.font),n=toPadding(t.padding);return t.display?e.lineHeight+n.height:0}_getLegendItemAt(t,e){let n,a,o;if(_isBetween(t,this.left,this.right)&&_isBetween(e,this.top,this.bottom))for(o=this.legendHitBoxes,n=0;nt.length>e.length?t:e))),e+n.size/2+a.measureText(o).width}function calculateItemHeight(t,e,n){let a=t;return"string"!=typeof e.text&&(a=calculateLegendItemHeight(e,n)),a}function calculateLegendItemHeight(t,e){return e*(t.text?t.text.length+.5:0)}function isListened(t,e){return!("mousemove"!==t&&"mouseout"!==t||!e.onHover&&!e.onLeave)||!(!e.onClick||"click"!==t&&"mouseup"!==t)}var plugin_legend={id:"legend",_element:Legend,start(t,e,n){const a=t.legend=new Legend({ctx:t.ctx,options:n,chart:t});layouts.configure(t,a,n),layouts.addBox(t,a)},stop(t){layouts.removeBox(t,t.legend),delete t.legend},beforeUpdate(t,e,n){const a=t.legend;layouts.configure(t,a,n),a.options=n},afterUpdate(t){const e=t.legend;e.buildLabels(),e.adjustHitBoxes()},afterEvent(t,e){e.replay||t.legend.handleEvent(e.event)},defaults:{display:!0,position:"top",align:"center",fullSize:!0,reverse:!1,weight:1e3,onClick(t,e,n){const a=e.datasetIndex,o=n.chart;o.isDatasetVisible(a)?(o.hide(a),e.hidden=!0):(o.show(a),e.hidden=!1)},onHover:null,onLeave:null,labels:{color:t=>t.chart.options.color,boxWidth:40,padding:10,generateLabels(t){const e=t.data.datasets,{labels:{usePointStyle:n,pointStyle:a,textAlign:o,color:i,useBorderRadius:r,borderRadius:l}}=t.legend.options;return t._getSortedDatasetMetas().map((t=>{const s=t.controller.getStyle(n?0:void 0),c=toPadding(s.borderWidth);return{text:e[t.index].label,fillStyle:s.backgroundColor,fontColor:i,hidden:!t.visible,lineCap:s.borderCapStyle,lineDash:s.borderDash,lineDashOffset:s.borderDashOffset,lineJoin:s.borderJoinStyle,lineWidth:(c.width+c.height)/4,strokeStyle:s.borderColor,pointStyle:a||s.pointStyle,rotation:s.rotation,textAlign:o||s.textAlign,borderRadius:r&&(l||s.borderRadius),datasetIndex:t.index}}),this)}},title:{color:t=>t.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:t=>!t.startsWith("on"),labels:{_scriptable:t=>!["generateLabels","filter","sort"].includes(t)}}};class Title extends Element{constructor(t){super(),this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e){const n=this.options;if(this.left=0,this.top=0,!n.display)return void(this.width=this.height=this.right=this.bottom=0);this.width=this.right=t,this.height=this.bottom=e;const a=isArray(n.text)?n.text.length:1;this._padding=toPadding(n.padding);const o=a*toFont(n.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=o:this.width=o}isHorizontal(){const t=this.options.position;return"top"===t||"bottom"===t}_drawArgs(t){const{top:e,left:n,bottom:a,right:o,options:i}=this,r=i.align;let l,s,c,d=0;return this.isHorizontal()?(s=_alignStartEnd(r,n,o),c=e+t,l=o-n):("left"===i.position?(s=n+t,c=_alignStartEnd(r,a,e),d=-.5*PI):(s=o-t,c=_alignStartEnd(r,e,a),d=.5*PI),l=a-e),{titleX:s,titleY:c,maxWidth:l,rotation:d}}draw(){const t=this.ctx,e=this.options;if(!e.display)return;const n=toFont(e.font),a=n.lineHeight/2+this._padding.top,{titleX:o,titleY:i,maxWidth:r,rotation:l}=this._drawArgs(a);renderText(t,e.text,0,0,n,{color:e.color,maxWidth:r,rotation:l,textAlign:_toLeftRightCenter(e.align),textBaseline:"middle",translation:[o,i]})}}function createTitle(t,e){const n=new Title({ctx:t.ctx,options:e,chart:t});layouts.configure(t,n,e),layouts.addBox(t,n),t.titleBlock=n}var plugin_title={id:"title",_element:Title,start(t,e,n){createTitle(t,n)},stop(t){const e=t.titleBlock;layouts.removeBox(t,e),delete t.titleBlock},beforeUpdate(t,e,n){const a=t.titleBlock;layouts.configure(t,a,n),a.options=n},defaults:{align:"center",display:!1,font:{weight:"bold"},fullSize:!0,padding:10,position:"top",text:"",weight:2e3},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const map=new WeakMap;var plugin_subtitle={id:"subtitle",start(t,e,n){const a=new Title({ctx:t.ctx,options:n,chart:t});layouts.configure(t,a,n),layouts.addBox(t,a),map.set(t,a)},stop(t){layouts.removeBox(t,map.get(t)),map.delete(t)},beforeUpdate(t,e,n){const a=map.get(t);layouts.configure(t,a,n),a.options=n},defaults:{align:"center",display:!1,font:{weight:"normal"},fullSize:!0,padding:0,position:"top",text:"",weight:1500},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const positioners={average(t){if(!t.length)return!1;let e,n,a=0,o=0,i=0;for(e=0,n=t.length;e-1?t.split("\n"):t}function createTooltipItem(t,e){const{element:n,datasetIndex:a,index:o}=e,i=t.getDatasetMeta(a).controller,{label:r,value:l}=i.getLabelAndValue(o);return{chart:t,label:r,parsed:i.getParsed(o),raw:t.data.datasets[a].data[o],formattedValue:l,dataset:i.getDataset(),dataIndex:o,datasetIndex:a,element:n}}function getTooltipSize(t,e){const n=t.chart.ctx,{body:a,footer:o,title:i}=t,{boxWidth:r,boxHeight:l}=e,s=toFont(e.bodyFont),c=toFont(e.titleFont),d=toFont(e.footerFont),p=i.length,u=o.length,h=a.length,m=toPadding(e.padding);let g=m.height,b=0,f=a.reduce(((t,e)=>t+e.before.length+e.lines.length+e.after.length),0);if(f+=t.beforeBody.length+t.afterBody.length,p&&(g+=p*c.lineHeight+(p-1)*e.titleSpacing+e.titleMarginBottom),f){g+=h*(e.displayColors?Math.max(l,s.lineHeight):s.lineHeight)+(f-h)*s.lineHeight+(f-1)*e.bodySpacing}u&&(g+=e.footerMarginTop+u*d.lineHeight+(u-1)*e.footerSpacing);let x=0;const v=function(t){b=Math.max(b,n.measureText(t).width+x)};return n.save(),n.font=c.string,each(t.title,v),n.font=s.string,each(t.beforeBody.concat(t.afterBody),v),x=e.displayColors?r+2+e.boxPadding:0,each(a,(t=>{each(t.before,v),each(t.lines,v),each(t.after,v)})),x=0,n.font=d.string,each(t.footer,v),n.restore(),b+=m.width,{width:b,height:g}}function determineYAlign(t,e){const{y:n,height:a}=e;return n
t.height-a/2?"bottom":"center"}function doesNotFitWithAlign(t,e,n,a){const{x:o,width:i}=a,r=n.caretSize+n.caretPadding;return"left"===t&&o+i+r>e.width||("right"===t&&o-i-r<0||void 0)}function determineXAlign(t,e,n,a){const{x:o,width:i}=n,{width:r,chartArea:{left:l,right:s}}=t;let c="center";return"center"===a?c=o<=(l+s)/2?"left":"right":o<=i/2?c="left":o>=r-i/2&&(c="right"),doesNotFitWithAlign(c,t,e,n)&&(c="center"),c}function determineAlignment(t,e,n){const a=n.yAlign||e.yAlign||determineYAlign(t,n);return{xAlign:n.xAlign||e.xAlign||determineXAlign(t,e,n,a),yAlign:a}}function alignX(t,e){let{x:n,width:a}=t;return"right"===e?n-=a:"center"===e&&(n-=a/2),n}function alignY(t,e,n){let{y:a,height:o}=t;return"top"===e?a+=n:a-="bottom"===e?o+n:o/2,a}function getBackgroundPoint(t,e,n,a){const{caretSize:o,caretPadding:i,cornerRadius:r}=t,{xAlign:l,yAlign:s}=n,c=o+i,{topLeft:d,topRight:p,bottomLeft:u,bottomRight:h}=toTRBLCorners(r);let m=alignX(e,l);const g=alignY(e,s,c);return"center"===s?"left"===l?m+=c:"right"===l&&(m-=c):"left"===l?m-=Math.max(d,u)+o:"right"===l&&(m+=Math.max(p,h)+o),{x:_limitValue(m,0,a.width-e.width),y:_limitValue(g,0,a.height-e.height)}}function getAlignedX(t,e,n){const a=toPadding(n.padding);return"center"===e?t.x+t.width/2:"right"===e?t.x+t.width-a.right:t.x+a.left}function getBeforeAfterBodyLines(t){return pushOrConcat([],splitNewlines(t))}function createTooltipContext(t,e,n){return createContext(t,{tooltip:e,tooltipItems:n,type:"tooltip"})}function overrideCallbacks(t,e){const n=e&&e.dataset&&e.dataset.tooltip&&e.dataset.tooltip.callbacks;return n?t.override(n):t}const defaultCallbacks={beforeTitle:noop,title(t){if(t.length>0){const e=t[0],n=e.chart.data.labels,a=n?n.length:0;if(this&&this.options&&"dataset"===this.options.mode)return e.dataset.label||"";if(e.label)return e.label;if(a>0&&e.dataIndex{const e={before:[],lines:[],after:[]},o=overrideCallbacks(n,t);pushOrConcat(e.before,splitNewlines(invokeCallbackWithFallback(o,"beforeLabel",this,t))),pushOrConcat(e.lines,invokeCallbackWithFallback(o,"label",this,t)),pushOrConcat(e.after,splitNewlines(invokeCallbackWithFallback(o,"afterLabel",this,t))),a.push(e)})),a}getAfterBody(t,e){return getBeforeAfterBodyLines(invokeCallbackWithFallback(e.callbacks,"afterBody",this,t))}getFooter(t,e){const{callbacks:n}=e,a=invokeCallbackWithFallback(n,"beforeFooter",this,t),o=invokeCallbackWithFallback(n,"footer",this,t),i=invokeCallbackWithFallback(n,"afterFooter",this,t);let r=[];return r=pushOrConcat(r,splitNewlines(a)),r=pushOrConcat(r,splitNewlines(o)),r=pushOrConcat(r,splitNewlines(i)),r}_createItems(t){const e=this._active,n=this.chart.data,a=[],o=[],i=[];let r,l,s=[];for(r=0,l=e.length;rt.filter(e,a,o,n)))),t.itemSort&&(s=s.sort(((e,a)=>t.itemSort(e,a,n)))),each(s,(e=>{const n=overrideCallbacks(t.callbacks,e);a.push(invokeCallbackWithFallback(n,"labelColor",this,e)),o.push(invokeCallbackWithFallback(n,"labelPointStyle",this,e)),i.push(invokeCallbackWithFallback(n,"labelTextColor",this,e))})),this.labelColors=a,this.labelPointStyles=o,this.labelTextColors=i,this.dataPoints=s,s}update(t,e){const n=this.options.setContext(this.getContext()),a=this._active;let o,i=[];if(a.length){const t=positioners[n.position].call(this,a,this._eventPosition);i=this._createItems(n),this.title=this.getTitle(i,n),this.beforeBody=this.getBeforeBody(i,n),this.body=this.getBody(i,n),this.afterBody=this.getAfterBody(i,n),this.footer=this.getFooter(i,n);const e=this._size=getTooltipSize(this,n),r=Object.assign({},t,e),l=determineAlignment(this.chart,n,r),s=getBackgroundPoint(n,r,l,this.chart);this.xAlign=l.xAlign,this.yAlign=l.yAlign,o={opacity:1,x:s.x,y:s.y,width:e.width,height:e.height,caretX:t.x,caretY:t.y}}else 0!==this.opacity&&(o={opacity:0});this._tooltipItems=i,this.$context=void 0,o&&this._resolveAnimations().update(this,o),t&&n.external&&n.external.call(this,{chart:this.chart,tooltip:this,replay:e})}drawCaret(t,e,n,a){const o=this.getCaretPosition(t,n,a);e.lineTo(o.x1,o.y1),e.lineTo(o.x2,o.y2),e.lineTo(o.x3,o.y3)}getCaretPosition(t,e,n){const{xAlign:a,yAlign:o}=this,{caretSize:i,cornerRadius:r}=n,{topLeft:l,topRight:s,bottomLeft:c,bottomRight:d}=toTRBLCorners(r),{x:p,y:u}=t,{width:h,height:m}=e;let g,b,f,x,v,w;return"center"===o?(v=u+m/2,"left"===a?(g=p,b=g-i,x=v+i,w=v-i):(g=p+h,b=g+i,x=v-i,w=v+i),f=g):(b="left"===a?p+Math.max(l,c)+i:"right"===a?p+h-Math.max(s,d)-i:this.caretX,"top"===o?(x=u,v=x-i,g=b-i,f=b+i):(x=u+m,v=x+i,g=b+i,f=b-i),w=x),{x1:g,x2:b,x3:f,y1:x,y2:v,y3:w}}drawTitle(t,e,n){const a=this.title,o=a.length;let i,r,l;if(o){const s=getRtlAdapter(n.rtl,this.x,this.width);for(t.x=getAlignedX(this,n.titleAlign,n),e.textAlign=s.textAlign(n.titleAlign),e.textBaseline="middle",i=toFont(n.titleFont),r=n.titleSpacing,e.fillStyle=n.titleColor,e.font=i.string,l=0;l0!==t))?(t.beginPath(),t.fillStyle=o.multiKeyBackground,addRoundedRectPath(t,{x:e,y:m,w:s,h:l,radius:r}),t.fill(),t.stroke(),t.fillStyle=i.backgroundColor,t.beginPath(),addRoundedRectPath(t,{x:n,y:m+1,w:s-2,h:l-2,radius:r}),t.fill()):(t.fillStyle=o.multiKeyBackground,t.fillRect(e,m,s,l),t.strokeRect(e,m,s,l),t.fillStyle=i.backgroundColor,t.fillRect(n,m+1,s-2,l-2))}t.fillStyle=this.labelTextColors[n]}drawBody(t,e,n){const{body:a}=this,{bodySpacing:o,bodyAlign:i,displayColors:r,boxHeight:l,boxWidth:s,boxPadding:c}=n,d=toFont(n.bodyFont);let p=d.lineHeight,u=0;const h=getRtlAdapter(n.rtl,this.x,this.width),m=function(n){e.fillText(n,h.x(t.x+u),t.y+p/2),t.y+=p+o},g=h.textAlign(i);let b,f,x,v,w,y,k;for(e.textAlign=i,e.textBaseline="middle",e.font=d.string,t.x=getAlignedX(this,g,n),e.fillStyle=n.bodyColor,each(this.beforeBody,m),u=r&&"right"!==g?"center"===i?s/2+c:s+2+c:0,v=0,y=a.length;v0&&e.stroke()}_updateAnimationTarget(t){const e=this.chart,n=this.$animations,a=n&&n.x,o=n&&n.y;if(a||o){const n=positioners[t.position].call(this,this._active,this._eventPosition);if(!n)return;const i=this._size=getTooltipSize(this,t),r=Object.assign({},n,this._size),l=determineAlignment(e,t,r),s=getBackgroundPoint(t,r,l,e);a._to===s.x&&o._to===s.y||(this.xAlign=l.xAlign,this.yAlign=l.yAlign,this.width=i.width,this.height=i.height,this.caretX=n.x,this.caretY=n.y,this._resolveAnimations().update(this,s))}}_willRender(){return!!this.opacity}draw(t){const e=this.options.setContext(this.getContext());let n=this.opacity;if(!n)return;this._updateAnimationTarget(e);const a={width:this.width,height:this.height},o={x:this.x,y:this.y};n=Math.abs(n)<.001?0:n;const i=toPadding(e.padding),r=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;e.enabled&&r&&(t.save(),t.globalAlpha=n,this.drawBackground(o,t,a,e),overrideTextDirection(t,e.textDirection),o.y+=i.top,this.drawTitle(o,t,e),this.drawBody(o,t,e),this.drawFooter(o,t,e),restoreTextDirection(t,e.textDirection),t.restore())}getActiveElements(){return this._active||[]}setActiveElements(t,e){const n=this._active,a=t.map((({datasetIndex:t,index:e})=>{const n=this.chart.getDatasetMeta(t);if(!n)throw new Error("Cannot find a dataset at index "+t);return{datasetIndex:t,element:n.data[e],index:e}})),o=!_elementsEqual(n,a),i=this._positionChanged(a,e);(o||i)&&(this._active=a,this._eventPosition=e,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(t,e,n=!0){if(e&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const a=this.options,o=this._active||[],i=this._getActiveElements(t,o,e,n),r=this._positionChanged(i,t),l=e||!_elementsEqual(i,o)||r;return l&&(this._active=i,(a.enabled||a.external)&&(this._eventPosition={x:t.x,y:t.y},this.update(!0,e))),l}_getActiveElements(t,e,n,a){const o=this.options;if("mouseout"===t.type)return[];if(!a)return e;const i=this.chart.getElementsAtEventForMode(t,o.mode,o,n);return o.reverse&&i.reverse(),i}_positionChanged(t,e){const{caretX:n,caretY:a,options:o}=this,i=positioners[o.position].call(this,t,e);return!1!==i&&(n!==i.x||a!==i.y)}}_defineProperty(Tooltip,"positioners",positioners);var plugin_tooltip={id:"tooltip",_element:Tooltip,positioners:positioners,afterInit(t,e,n){n&&(t.tooltip=new Tooltip({chart:t,options:n}))},beforeUpdate(t,e,n){t.tooltip&&t.tooltip.initialize(n)},reset(t,e,n){t.tooltip&&t.tooltip.initialize(n)},afterDraw(t){const e=t.tooltip;if(e&&e._willRender()){const n={tooltip:e};if(!1===t.notifyPlugins("beforeTooltipDraw",{...n,cancelable:!0}))return;e.draw(t.ctx),t.notifyPlugins("afterTooltipDraw",n)}},afterEvent(t,e){if(t.tooltip){const n=e.replay;t.tooltip.handleEvent(e.event,n,e.inChartArea)&&(e.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(t,e)=>e.bodyFont.size,boxWidth:(t,e)=>e.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:defaultCallbacks},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:t=>"filter"!==t&&"itemSort"!==t&&"external"!==t,_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]},plugins=Object.freeze({__proto__:null,Colors:plugin_colors,Decimation:plugin_decimation,Filler:index$3,Legend:plugin_legend,SubTitle:plugin_subtitle,Title:plugin_title,Tooltip:plugin_tooltip});const addIfString=(t,e,n,a)=>("string"==typeof e?(n=t.push(e)-1,a.unshift({index:n,label:e})):isNaN(e)&&(n=null),n);function findOrAddLabel(t,e,n,a){const o=t.indexOf(e);if(-1===o)return addIfString(t,e,n,a);return o!==t.lastIndexOf(e)?n:o}const validIndex=(t,e)=>null===t?null:_limitValue(Math.round(t),0,e);function _getLabelForValue(t){const e=this.getLabels();return t>=0&&te.length-1?null:this.getPixelForValue(e[t].value)}getValueForPixel(t){return Math.round(this._startValue+this.getDecimalForPixel(t)*this._valueRange)}getBasePixel(){return this.bottom}}function generateTicks$1(t,e){const n=[],{bounds:a,step:o,min:i,max:r,precision:l,count:s,maxTicks:c,maxDigits:d,includeBounds:p}=t,u=o||1,h=c-1,{min:m,max:g}=e,b=!isNullOrUndef(i),f=!isNullOrUndef(r),x=!isNullOrUndef(s),v=(g-m)/(d+1);let w,y,k,_,z=niceNum((g-m)/h/u)*u;if(z<1e-14&&!b&&!f)return[{value:m},{value:g}];_=Math.ceil(g/z)-Math.floor(m/z),_>h&&(z=niceNum(_*z/h/u)*u),isNullOrUndef(l)||(w=Math.pow(10,l),z=Math.ceil(z*w)/w),"ticks"===a?(y=Math.floor(m/z)*z,k=Math.ceil(g/z)*z):(y=m,k=g),b&&f&&o&&almostWhole((r-i)/o,z/1e3)?(_=Math.round(Math.min((r-i)/z,c)),z=(r-i)/_,y=i,k=r):x?(y=b?i:y,k=f?r:k,_=s-1,z=(k-y)/_):(_=(k-y)/z,_=almostEquals(_,Math.round(_),z/1e3)?Math.round(_):Math.ceil(_));const S=Math.max(_decimalPlaces(z),_decimalPlaces(y));w=Math.pow(10,isNullOrUndef(l)?S:l),y=Math.round(y*w)/w,k=Math.round(k*w)/w;let M=0;for(b&&(p&&y!==i?(n.push({value:i}),ya=e?a:t,r=t=>o=n?o:t;if(t){const t=sign(a),e=sign(o);t<0&&e<0?r(0):t>0&&e>0&&i(0)}if(a===o){let e=0===o?1:Math.abs(.05*o);r(o+e),t||i(a-e)}this.min=a,this.max=o}getTickLimit(){const t=this.options.ticks;let e,{maxTicksLimit:n,stepSize:a}=t;return a?(e=Math.ceil(this.max/a)-Math.floor(this.min/a)+1,e>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${a} would result generating up to ${e} ticks. Limiting to 1000.`),e=1e3)):(e=this.computeTickLimit(),n=n||11),n&&(e=Math.min(n,e)),e}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const t=this.options,e=t.ticks;let n=this.getTickLimit();n=Math.max(2,n);const a=generateTicks$1({maxTicks:n,bounds:t.bounds,min:t.min,max:t.max,precision:e.precision,step:e.stepSize,count:e.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:e.minRotation||0,includeBounds:!1!==e.includeBounds},this._range||this);return"ticks"===t.bounds&&_setMinAndMaxByKey(a,this,"value"),t.reverse?(a.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),a}configure(){const t=this.ticks;let e=this.min,n=this.max;if(super.configure(),this.options.offset&&t.length){const a=(n-e)/Math.max(t.length-1,1)/2;e-=a,n+=a}this._startValue=e,this._endValue=n,this._valueRange=n-e}getLabelForValue(t){return formatNumber(t,this.chart.options.locale,this.options.ticks.format)}}class LinearScale extends LinearScaleBase{determineDataLimits(){const{min:t,max:e}=this.getMinMax(!0);this.min=isNumberFinite(t)?t:0,this.max=isNumberFinite(e)?e:1,this.handleTickRangeOptions()}computeTickLimit(){const t=this.isHorizontal(),e=t?this.width:this.height,n=toRadians(this.options.ticks.minRotation),a=(t?Math.sin(n):Math.cos(n))||.001,o=this._resolveTickFontOptions(0);return Math.ceil(e/Math.min(40,o.lineHeight/a))}getPixelForValue(t){return null===t?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getValueForPixel(t){return this._startValue+this.getDecimalForPixel(t)*this._valueRange}}_defineProperty(LinearScale,"id","linear"),_defineProperty(LinearScale,"defaults",{ticks:{callback:Ticks.formatters.numeric}});const log10Floor=t=>Math.floor(log10(t)),changeExponent=(t,e)=>Math.pow(10,log10Floor(t)+e);function isMajor(t){return 1===t/Math.pow(10,log10Floor(t))}function steps(t,e,n){const a=Math.pow(10,n),o=Math.floor(t/a);return Math.ceil(e/a)-o}function startExp(t,e){let n=log10Floor(e-t);for(;steps(t,e,n)>10;)n++;for(;steps(t,e,n)<10;)n--;return Math.min(n,log10Floor(t))}function generateTicks(t,{min:e,max:n}){e=finiteOrDefault(t.min,e);const a=[],o=log10Floor(e);let i=startExp(e,n),r=i<0?Math.pow(10,Math.abs(i)):1;const l=Math.pow(10,i),s=o>i?Math.pow(10,o):0,c=Math.round((e-s)*r)/r,d=Math.floor((e-s)/l/10)*l*10;let p=Math.floor((c-d)/Math.pow(10,i)),u=finiteOrDefault(t.min,Math.round((s+d+p*Math.pow(10,i))*r)/r);for(;u=10?p=p<15?15:20:p++,p>=20&&(i++,p=2,r=i>=0?1:r),u=Math.round((s+d+p*Math.pow(10,i))*r)/r;const h=finiteOrDefault(t.max,u);return a.push({value:h,major:isMajor(h),significand:p}),a}class LogarithmicScale extends Scale{constructor(t){super(t),this.start=void 0,this.end=void 0,this._startValue=void 0,this._valueRange=0}parse(t,e){const n=LinearScaleBase.prototype.parse.apply(this,[t,e]);if(0!==n)return isNumberFinite(n)&&n>0?n:null;this._zero=!0}determineDataLimits(){const{min:t,max:e}=this.getMinMax(!0);this.min=isNumberFinite(t)?Math.max(0,t):null,this.max=isNumberFinite(e)?Math.max(0,e):null,this.options.beginAtZero&&(this._zero=!0),this._zero&&this.min!==this._suggestedMin&&!isNumberFinite(this._userMin)&&(this.min=t===changeExponent(this.min,0)?changeExponent(this.min,-1):changeExponent(this.min,0)),this.handleTickRangeOptions()}handleTickRangeOptions(){const{minDefined:t,maxDefined:e}=this.getUserBounds();let n=this.min,a=this.max;const o=e=>n=t?n:e,i=t=>a=e?a:t;n===a&&(n<=0?(o(1),i(10)):(o(changeExponent(n,-1)),i(changeExponent(a,1)))),n<=0&&o(changeExponent(a,-1)),a<=0&&i(changeExponent(n,1)),this.min=n,this.max=a}buildTicks(){const t=this.options,e=generateTicks({min:this._userMin,max:this._userMax},this);return"ticks"===t.bounds&&_setMinAndMaxByKey(e,this,"value"),t.reverse?(e.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),e}getLabelForValue(t){return void 0===t?"0":formatNumber(t,this.chart.options.locale,this.options.ticks.format)}configure(){const t=this.min;super.configure(),this._startValue=log10(t),this._valueRange=log10(this.max)-log10(t)}getPixelForValue(t){return void 0!==t&&0!==t||(t=this.min),null===t||isNaN(t)?NaN:this.getPixelForDecimal(t===this.min?0:(log10(t)-this._startValue)/this._valueRange)}getValueForPixel(t){const e=this.getDecimalForPixel(t);return Math.pow(10,this._startValue+e*this._valueRange)}}function getTickBackdropHeight(t){const e=t.ticks;if(e.display&&t.display){const t=toPadding(e.backdropPadding);return valueOrDefault(e.font&&e.font.size,defaults.font.size)+t.height}return 0}function measureLabelSize(t,e,n){return n=isArray(n)?n:[n],{w:_longestText(t,e.string,n),h:n.length*e.lineHeight}}function determineLimits(t,e,n,a,o){return t===a||t===o?{start:e-n/2,end:e+n/2}:to?{start:e-n,end:e}:{start:e,end:e+n}}function fitWithPointLabels(t){const e={l:t.left+t._padding.left,r:t.right-t._padding.right,t:t.top+t._padding.top,b:t.bottom-t._padding.bottom},n=Object.assign({},e),a=[],o=[],i=t._pointLabels.length,r=t.options.pointLabels,l=r.centerPointLabels?PI/i:0;for(let s=0;se.r&&(l=(a.end-e.r)/i,t.r=Math.max(t.r,e.r+l)),o.starte.b&&(s=(o.end-e.b)/r,t.b=Math.max(t.b,e.b+s))}function buildPointLabelItems(t,e,n){const a=[],o=t._pointLabels.length,i=t.options,r=getTickBackdropHeight(i)/2,l=t.drawingArea,s=i.pointLabels.centerPointLabels?PI/o:0;for(let c=0;c270||n<90)&&(t-=e),t}function drawPointLabels(t,e){const{ctx:n,options:{pointLabels:a}}=t;for(let o=e-1;o>=0;o--){const e=a.setContext(t.getPointLabelContext(o)),i=toFont(e.font),{x:r,y:l,textAlign:s,left:c,top:d,right:p,bottom:u}=t._pointLabelItems[o],{backdropColor:h}=e;if(!isNullOrUndef(h)){const t=toTRBLCorners(e.borderRadius),a=toPadding(e.backdropPadding);n.fillStyle=h;const o=c-a.left,i=d-a.top,r=p-c+a.width,l=u-d+a.height;Object.values(t).some((t=>0!==t))?(n.beginPath(),addRoundedRectPath(n,{x:o,y:i,w:r,h:l,radius:t}),n.fill()):n.fillRect(o,i,r,l)}renderText(n,t._pointLabels[o],r,l+i.lineHeight/2,i,{color:e.color,textAlign:s,textBaseline:"middle"})}}function pathRadiusLine(t,e,n,a){const{ctx:o}=t;if(n)o.arc(t.xCenter,t.yCenter,e,0,TAU);else{let n=t.getPointPosition(0,e);o.moveTo(n.x,n.y);for(let i=1;i{const n=callback(this.options.pointLabels.callback,[t,e],this);return n||0===n?n:""})).filter(((t,e)=>this.chart.getDataVisibility(e)))}fit(){const t=this.options;t.display&&t.pointLabels.display?fitWithPointLabels(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(t,e,n,a){this.xCenter+=Math.floor((t-e)/2),this.yCenter+=Math.floor((n-a)/2),this.drawingArea-=Math.min(this.drawingArea/2,Math.max(t,e,n,a))}getIndexAngle(t){return _normalizeAngle(t*(TAU/(this._pointLabels.length||1))+toRadians(this.options.startAngle||0))}getDistanceFromCenterForValue(t){if(isNullOrUndef(t))return NaN;const e=this.drawingArea/(this.max-this.min);return this.options.reverse?(this.max-t)*e:(t-this.min)*e}getValueForDistanceFromCenter(t){if(isNullOrUndef(t))return NaN;const e=t/(this.drawingArea/(this.max-this.min));return this.options.reverse?this.max-e:this.min+e}getPointLabelContext(t){const e=this._pointLabels||[];if(t>=0&&t{if(0!==e){l=this.getDistanceFromCenterForValue(t.value);const n=this.getContext(e),r=a.setContext(n),s=o.setContext(n);drawRadiusLine(this,r,l,i,s)}})),n.display){for(t.save(),r=i-1;r>=0;r--){const a=n.setContext(this.getPointLabelContext(r)),{color:o,lineWidth:i}=a;i&&o&&(t.lineWidth=i,t.strokeStyle=o,t.setLineDash(a.borderDash),t.lineDashOffset=a.borderDashOffset,l=this.getDistanceFromCenterForValue(e.ticks.reverse?this.min:this.max),s=this.getPointPosition(r,l),t.beginPath(),t.moveTo(this.xCenter,this.yCenter),t.lineTo(s.x,s.y),t.stroke())}t.restore()}}drawBorder(){}drawLabels(){const t=this.ctx,e=this.options,n=e.ticks;if(!n.display)return;const a=this.getIndexAngle(0);let o,i;t.save(),t.translate(this.xCenter,this.yCenter),t.rotate(a),t.textAlign="center",t.textBaseline="middle",this.ticks.forEach(((a,r)=>{if(0===r&&!e.reverse)return;const l=n.setContext(this.getContext(r)),s=toFont(l.font);if(o=this.getDistanceFromCenterForValue(this.ticks[r].value),l.showLabelBackdrop){t.font=s.string,i=t.measureText(a.label).width,t.fillStyle=l.backdropColor;const e=toPadding(l.backdropPadding);t.fillRect(-i/2-e.left,-o-s.size/2-e.top,i+e.width,s.size+e.height)}renderText(t,a.label,0,-o,s,{color:l.color})})),t.restore()}drawTitle(){}}_defineProperty(RadialLinearScale,"id","radialLinear"),_defineProperty(RadialLinearScale,"defaults",{display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,lineWidth:1,borderDash:[],borderDashOffset:0},grid:{circular:!1},startAngle:0,ticks:{showLabelBackdrop:!0,callback:Ticks.formatters.numeric},pointLabels:{backdropColor:void 0,backdropPadding:2,display:!0,font:{size:10},callback:t=>t,padding:5,centerPointLabels:!1}}),_defineProperty(RadialLinearScale,"defaultRoutes",{"angleLines.color":"borderColor","pointLabels.color":"color","ticks.color":"color"}),_defineProperty(RadialLinearScale,"descriptors",{angleLines:{_fallback:"grid"}});const INTERVALS={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},UNITS=Object.keys(INTERVALS);function sorter(t,e){return t-e}function parse(t,e){if(isNullOrUndef(e))return null;const n=t._adapter,{parser:a,round:o,isoWeekday:i}=t._parseOpts;let r=e;return"function"==typeof a&&(r=a(r)),isNumberFinite(r)||(r="string"==typeof a?n.parse(r,a):n.parse(r)),null===r?null:(o&&(r="week"!==o||!isNumber(i)&&!0!==i?n.startOf(r,o):n.startOf(r,"isoWeek",i)),+r)}function determineUnitForAutoTicks(t,e,n,a){const o=UNITS.length;for(let i=UNITS.indexOf(t);i=UNITS.indexOf(n);i--){const n=UNITS[i];if(INTERVALS[n].common&&t._adapter.diff(o,a,n)>=e-1)return n}return UNITS[n?UNITS.indexOf(n):0]}function determineMajorUnit(t){for(let e=UNITS.indexOf(t)+1,n=UNITS.length;e=e?n[a]:n[o]]=!0}}else t[e]=!0}function setMajorTicks(t,e,n,a){const o=t._adapter,i=+o.startOf(e[0].value,a),r=e[e.length-1].value;let l,s;for(l=i;l<=r;l=+o.add(l,1,a))s=n[l],s>=0&&(e[s].major=!0);return e}function ticksFromTimestamps(t,e,n){const a=[],o={},i=e.length;let r,l;for(r=0;r+t.value)))}initOffsets(t=[]){let e,n,a=0,o=0;this.options.offset&&t.length&&(e=this.getDecimalForValue(t[0]),a=1===t.length?1-e:(this.getDecimalForValue(t[1])-e)/2,n=this.getDecimalForValue(t[t.length-1]),o=1===t.length?n:(n-this.getDecimalForValue(t[t.length-2]))/2);const i=t.length<3?.5:.25;a=_limitValue(a,0,i),o=_limitValue(o,0,i),this._offsets={start:a,end:o,factor:1/(a+1+o)}}_generate(){const t=this._adapter,e=this.min,n=this.max,a=this.options,o=a.time,i=o.unit||determineUnitForAutoTicks(o.minUnit,e,n,this._getLabelCapacity(e)),r=valueOrDefault(a.ticks.stepSize,1),l="week"===i&&o.isoWeekday,s=isNumber(l)||!0===l,c={};let d,p,u=e;if(s&&(u=+t.startOf(u,"isoWeek",l)),u=+t.startOf(u,s?"day":i),t.diff(n,e,i)>1e5*r)throw new Error(e+" and "+n+" are too far apart with stepSize of "+r+" "+i);const h="data"===a.ticks.source&&this.getDataTimestamps();for(d=u,p=0;dt-e)).map((t=>+t))}getLabelForValue(t){const e=this._adapter,n=this.options.time;return n.tooltipFormat?e.format(t,n.tooltipFormat):e.format(t,n.displayFormats.datetime)}_tickFormatFunction(t,e,n,a){const o=this.options,i=o.ticks.callback;if(i)return callback(i,[t,e,n],this);const r=o.time.displayFormats,l=this._unit,s=this._majorUnit,c=l&&r[l],d=s&&r[s],p=n[e],u=s&&d&&p&&p.major;return this._adapter.format(t,a||(u?d:c))}generateTickLabels(t){let e,n,a;for(e=0,n=t.length;e0?r:1}getDataTimestamps(){let t,e,n=this._cache.data||[];if(n.length)return n;const a=this.getMatchingVisibleMetas();if(this._normalized&&a.length)return this._cache.data=a[0].controller.getAllParsedValues(this);for(t=0,e=a.length;t=t[l].pos&&e<=t[s].pos&&({lo:l,hi:s}=_lookupByKey(t,"pos",e)),({pos:a,time:i}=t[l]),({pos:o,time:r}=t[s])):(e>=t[l].time&&e<=t[s].time&&({lo:l,hi:s}=_lookupByKey(t,"time",e)),({time:a,pos:i}=t[l]),({time:o,pos:r}=t[s]));const c=o-a;return c?i+(r-i)*(e-a)/c:i}_defineProperty(TimeScale,"id","time"),_defineProperty(TimeScale,"defaults",{bounds:"data",adapters:{},time:{parser:!1,unit:!1,round:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{source:"auto",callback:!1,major:{enabled:!1}}});class TimeSeriesScale extends TimeScale{constructor(t){super(t),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const t=this._getTimestampsForTable(),e=this._table=this.buildLookupTable(t);this._minPos=interpolate(e,this.min),this._tableRange=interpolate(e,this.max)-this._minPos,super.initOffsets(t)}buildLookupTable(t){const{min:e,max:n}=this,a=[],o=[];let i,r,l,s,c;for(i=0,r=t.length;i=e&&s<=n&&a.push(s);if(a.length<2)return[{time:e,pos:0},{time:n,pos:1}];for(i=0,r=a.length;i(pushScopeId("data-v-fd1701ae"),t=t(),popScopeId(),t),_hoisted_1$h={id:"critical-main"},_hoisted_2$f={id:"critical"},_hoisted_3$f=_withScopeId$8((()=>createBaseVNode("div",{class:"des"},"加攻伤害",-1))),_hoisted_4$c={class:"slider-div"},_hoisted_5$b={id:"def"},_hoisted_6$a=_withScopeId$8((()=>createBaseVNode("div",{class:"des"},"加防伤害",-1))),_hoisted_7$7={class:"slider-div"},_hoisted_8$6={id:"now-damage"},_hoisted_9$6={style:{"font-family":"'Fira Code'"}},_sfc_main$h=defineComponent({__name:"enemyCritical",setup(t){const e=ref(),n=ref(),a=core.plugin.bookDetailEnemy,o=Math.ceil;let i=getCriticalDamage(a),r=getDefDamage(a);const l=ref(i),s=ref(r),c=ref(0),d=ref(0),p=core.getDamageInfo(a),u=core.formatBigNumber,h=core.status.thisMap.ratio,m=computed((()=>{const t=core.getDamageInfo(a,{atk:core.status.hero.atk+c.value*h,def:core.status.hero.def+d.value*h});return has(t)?has(p)?[p.damage-t.damage,t.damage]:[-t.damage,t.damage]:["???","???"]}));function g(t,e){const n={type:"line",data:b(e),options:{elements:{point:{radius:5,hoverRadius:7},line:{borderJoinStyle:"round"}},scales:{y:{grid:{color:"#ddd3"}}},plugins:{legend:{display:!1}}}};return new Chart$1(t,n)}function b(t){return{datasets:[{data:t.map((t=>t[1])),label:"怪物伤害"}],labels:t.map((t=>Math.round(t[0]/h)))}}const f=lodash.exports.debounce(((t,e)=>{l.value=getCriticalDamage(a,c.value*h,d.value*h),s.value=getDefDamage(a,d.value*h,c.value*h),l.value.length>i.length&&(i=l.value),s.value.length>r.length&&(r=s.value),t.data=b(l.value),e.data=b(s.value),t.update("resize"),e.update("resize")}),200);return onMounted((()=>{const t=document.getElementById("critical-main"),a=getComputedStyle(t),o=parseFloat(a.width),i=window.innerHeight/5,r=e.value,p=n.value;setCanvasSize(r,o,i),setCanvasSize(p,o,i);const u=g(r,l.value),h=g(p,s.value);watch(c,(t=>{f(u,h)})),watch(d,(t=>{f(u,h)}))})),(t,a)=>{const l=__unplugin_components_0,s=__unplugin_components_1;return openBlock(),createElementBlock("div",_hoisted_1$h,[createBaseVNode("div",_hoisted_2$f,[_hoisted_3$f,createBaseVNode("canvas",{ref_key:"critical",ref:e,class:"chart"},null,512),createBaseVNode("div",_hoisted_4$c,[createBaseVNode("span",null,"加攻次数    "+toDisplayString(c.value),1),createVNode(l,{class:"slider",value:c.value,"onUpdate:value":a[0]||(a[0]=t=>c.value=t),max:unref(o)((unref(i).at(-1)?.[0]??2)/unref(h))-1},null,8,["value","max"]),createBaseVNode("span",null,"最大值    "+toDisplayString(unref(o)((unref(i).at(-1)?.[0]??2)/unref(h))-1),1)])]),createVNode(s,{dashed:"",style:{width:"100%","border-color":"#ddd4",margin:"1vh 0 1vh 0"}}),createBaseVNode("div",_hoisted_5$b,[_hoisted_6$a,createBaseVNode("canvas",{ref_key:"def",ref:n,class:"chart"},null,512),createBaseVNode("div",_hoisted_7$7,[createBaseVNode("span",null,"加防次数    "+toDisplayString(d.value),1),createVNode(l,{class:"slider",value:d.value,"onUpdate:value":a[1]||(a[1]=t=>d.value=t),max:unref(o)((unref(r).at(-1)?.[0]??2)/unref(h))-1},null,8,["value","max"]),createBaseVNode("span",null,"最大值    "+toDisplayString(unref(o)((unref(r).at(-1)?.[0]??2)/unref(h))-1),1)])]),createBaseVNode("div",_hoisted_8$6,[createBaseVNode("div",null,[createBaseVNode("span",null,"当前加攻"+toDisplayString(unref(isMobile)?"":"    "),1),createBaseVNode("span",null,toDisplayString(unref(u)(c.value*unref(h))),1)]),createBaseVNode("div",null,[createBaseVNode("span",null,"当前加防"+toDisplayString(unref(isMobile)?"":"    "),1),createBaseVNode("span",null,toDisplayString(unref(u)(d.value*unref(h))),1)]),createBaseVNode("div",null,[createBaseVNode("span",null,"当前减伤"+toDisplayString(unref(isMobile)?"":"    "),1),createBaseVNode("span",null,[createBaseVNode("span",_hoisted_9$6,toDisplayString(unref(m)[0]<0&&"???"===unref(m)[1]?"=>":""),1),createTextVNode(toDisplayString(unref(m)[0]<0&&"???"===unref(m)[1]?unref(u)(-unref(m)[0]):unref(u)(unref(m)[0])),1)])]),createBaseVNode("div",null,[createBaseVNode("span",null,"当前伤害"+toDisplayString(unref(isMobile)?"":"    "),1),createBaseVNode("span",null,toDisplayString(unref(u)(unref(m)[1])),1)])])])}}}),enemyCritical_vue_vue_type_style_index_0_scoped_fd1701ae_lang="",EnemyCritical=_export_sfc(_sfc_main$h,[["__scopeId","data-v-fd1701ae"]]),showMarkedEnemy=ref(!1),markedEnemy=reactive([]),markInfo={},criticalReached={},enemyDamageInfo={};function markEnemy$1(t){hasMarkedEnemy(t)||(markedEnemy.push(t),markInfo[t]={nextCritical:core.nextCriticals(t,1)[0]?.[0]??0+core.status.hero.atk},criticalReached[t]={0:!0},enemyDamageInfo[t]={1:!1,2:!1,3:!1},getMarkInfo(t,!0),checkMarkedEnemy(!0))}function hasMarkedEnemy(t){return markedEnemy.includes(t)}function unmarkEnemy(t){const e=markedEnemy.indexOf(t);-1!==e&&(markedEnemy.splice(e,1),checkMarkedEnemy())}function getMarkedEnemy(){return markedEnemy}function getMarkInfo(t,e=!1){const n=criticalReached[t],a=markInfo[t];if(core.status.hero.atk>=a.nextCritical){n[a.nextCritical]||e||tip$1("success",`踩到了${core.material.enemys[t].name}的临界!`),n[a.nextCritical]=!0;const o=core.nextCriticals(t,1)[0]?.[0],i=(o??0)+core.status.hero.atk;a.nextCritical=i}}function checkMarkedEnemy(t=!1){checkMarkedStatus.value=!checkMarkedStatus.value;const e=core.status.hero.hp;getMarkedEnemy().forEach((n=>{getMarkInfo(n);const a=core.getDamageInfo(n)?.damage??-1;if(-1===a)return;const o=enemyDamageInfo[n],i=core.material.enemys[n].name;a<=0?t||tip$1("success",`${i}已经零伤了!`):a(core.isPlaying()&&(flags.mouseLoc=[t,e]),!1)),150),{checkMarkedEnemy:checkMarkedEnemy,checkStatus:checkMarkedStatus,markEnemy:markEnemy$1,hasMarkedEnemy:hasMarkedEnemy,unmarkEnemy:unmarkEnemy,showMarkedEnemy:showMarkedEnemy}}const _withScopeId$7=t=>(pushScopeId("data-v-90e08ea9"),t=t(),popScopeId(),t),_hoisted_1$g={id:"enemy-target"},_hoisted_2$e={id:"enemy-desc"},_hoisted_3$e=_withScopeId$7((()=>createBaseVNode("span",null,"怪物描述",-1))),_hoisted_4$b={id:"mark-target"},_hoisted_5$a=["onClick"],_sfc_main$g=defineComponent({__name:"enemyTarget",setup(t){const e=core.plugin.bookDetailEnemy,n=ref(hasMarkedEnemy(e.id));function a(){n.value&&unmarkEnemy(e.id),n.value||markEnemy$1(e.id),n.value=!n.value}return(t,o)=>{const i=__unplugin_components_1;return openBlock(),createElementBlock("div",_hoisted_1$g,[createBaseVNode("div",_hoisted_2$e,[_hoisted_3$e,createVNode(Scroll,{id:"enemy-desc-scroll"},{default:withCtx((()=>[createBaseVNode("span",null,toDisplayString(unref(e).description),1)])),_:1})]),createVNode(i,{dashed:"",style:{"border-color":"#ddd4"}}),createBaseVNode("div",null,[createBaseVNode("div",_hoisted_4$b,[createBaseVNode("span",{id:"mark-info",style:normalizeStyle({color:n.value?"lightgreen":"lightcoral"})},toDisplayString(n.value?"已标记该怪物":"未标记该怪物"),5),createBaseVNode("span",{class:"button-text",onClick:withModifiers(a,["stop"])},toDisplayString(n.value?"取消标记该怪物":"标记该怪物为目标"),9,_hoisted_5$a)])])])}}}),enemyTarget_vue_vue_type_style_index_0_scoped_90e08ea9_lang="",EnemyTarget=_export_sfc(_sfc_main$g,[["__scopeId","data-v-90e08ea9"]]),_withScopeId$6=t=>(pushScopeId("data-v-9c1bd474"),t=t(),popScopeId(),t),_hoisted_1$f={id:"detail"},_hoisted_2$d={id:"detail-more"},_hoisted_3$d={key:0,id:"special-more",class:"detial-more"},_hoisted_4$a={key:1,id:"special-more",class:"detial-more"},_hoisted_5$9={key:2,id:"special-more",class:"detial-more"},_hoisted_6$9=_withScopeId$6((()=>createBaseVNode("span",null,null,-1))),_sfc_main$f=defineComponent({__name:"bookDetail",emits:["close"],setup(t,{emit:e}){const n=core.plugin.bookDetailEnemy,a=ref(core.plugin.bookDetailPos),o=ref("special");let i;function r(t,e){t.stopPropagation(),o.value=e}function l(){a.value=core.plugin.bookDetailPos,i.style.opacity="0",e("close")}function s(t){keycode(t.keyCode)===KeyCode.Enter&&l()}return onMounted((async()=>{a.value=0,i=document.getElementById("detail"),i.style.opacity="1";const t=getComputedStyle(i);let e=!1,n=[0,0];await S(600),useDrag(i,((t,a)=>{(t-n[0])**2+(a-n[1])**2>=100&&(e=!0)}),((a,o)=>{n=[a,o],o>4*parseFloat(t.height)/5&&(e=!0)}),(()=>{!1===e&&"critical"!==o.value&&l(),e=!1})),document.addEventListener("keyup",s)})),onUnmounted((()=>{document.removeEventListener("keyup",s)})),(t,e)=>{const i=__unplugin_components_1;return openBlock(),createElementBlock("div",_hoisted_1$f,[createBaseVNode("div",{id:"info",style:normalizeStyle({top:`${a.value}px`})},[createVNode(EnemyOne,{enemy:unref(n)},null,8,["enemy"]),createVNode(i,{dashed:"",style:{margin:"2vh 0 2vh 0","border-color":"#ddd4",width:"100%"}})],4),createVNode(Transition,{name:"detail"},{default:withCtx((()=>["special"===o.value?(openBlock(),createBlock(EnemySpecial,{key:0})):"critical"===o.value?(openBlock(),createBlock(EnemyCritical,{key:1})):"target"===o.value?(openBlock(),createBlock(EnemyTarget,{key:2})):createCommentVNode("",!0)])),_:1}),createBaseVNode("div",_hoisted_2$d,[createVNode(Transition,{name:"detail"},{default:withCtx((()=>["special"===o.value?(openBlock(),createElementBlock("div",_hoisted_3$d,[createBaseVNode("span",{id:"enemy-target",class:"button-text more",onClick:e[0]||(e[0]=t=>r(t,"target"))},[createVNode(unref(LeftOutlined)),createTextVNode(" 怪物更多信息")]),createBaseVNode("span",{id:"critical-more",class:"button-text more",onClick:e[1]||(e[1]=t=>r(t,"critical"))},[createTextVNode("详细临界信息 "),createVNode(unref(RightOutlined))])])):"critical"===o.value?(openBlock(),createElementBlock("div",_hoisted_4$a,[createBaseVNode("span",{id:"enemy-pos",class:"button-text more",onClick:e[2]||(e[2]=t=>r(t,"special"))},[createVNode(unref(LeftOutlined)),createTextVNode(" 怪物特殊属性")])])):"target"===o.value?(openBlock(),createElementBlock("div",_hoisted_5$9,[_hoisted_6$9,createBaseVNode("span",{id:"enemy-pos",class:"button-text more",onClick:e[3]||(e[3]=t=>r(t,"special"))},[createTextVNode("怪物特殊属性 "),createVNode(unref(RightOutlined))])])):createCommentVNode("",!0)])),_:1})])])}}}),bookDetail_vue_vue_type_style_index_0_scoped_9c1bd474_lang="",BookDetail=_export_sfc(_sfc_main$f,[["__scopeId","data-v-9c1bd474"]]),_withScopeId$5=t=>(pushScopeId("data-v-e7143bcf"),t=t(),popScopeId(),t),_hoisted_1$e={id:"book"},_hoisted_2$c={id:"tools"},_hoisted_3$c={key:0,id:"none"},_hoisted_4$9=_withScopeId$5((()=>createBaseVNode("div",null,"本层无怪物",-1))),_hoisted_5$8=[_hoisted_4$9],_hoisted_6$8={class:"enemy"},_sfc_main$e=defineComponent({__name:"book",setup(t){const e=core.floorIds[core.status.event?.ui?.index]??core.status.floorId;e!==core.status.floorId&&core.status.checkBlock&&(core.status.checkBlock.cache={});const n=core.getCurrentEnemys(e),a=ref(0),o=ref(!1),i=ref(!1),r=ref(0);function l(t,e){if(o.value)return;const n=e*window.innerHeight*.2-a.value;core.plugin.bookDetailEnemy=t,core.plugin.bookDetailPos=n,i.value=!0,async function(){const t=document.getElementById("book");t.style.opacity="0",await S(600),t.style.display="none"}()}async function s(){!async function(){const t=document.getElementById("book");t.style.display="flex",await S(50),t.style.opacity="1"}(),await S(600),i.value=!1}async function c(){noClosePanel.value=!0,core.plugin.bookOpened.value=!1,core.plugin.transition.value?await S(650):await S(100),core.events.recoverEvents(core.status.event.interval)||(has(core.status.event.ui)?(core.status.boxAnimateObjs=[],core.ui._drawViewMaps(core.status.event.ui)):core.ui.closePanel())}function d(){const t=window.innerHeight,e=r.value*t*.2-a.value;e<0&&(a.value+=e-20),e>.655*t&&(a.value+=e-.655*t+20)}function p(t){const e=keycode(t.keyCode);e!==KeyCode.KeyX&&e!==KeyCode.Escape||c(),e!==KeyCode.Enter||i.value||l(n[r.value],r.value)}function u(t){const e=keycode(t.keyCode);i.value||(e===KeyCode.DownArrow&&(r.value0&&r.value--,d()),e!==KeyCode.LeftArrow&&e!==KeyCode.PageUp||(r.value<=4?r.value=0:r.value-=5,d()),e!==KeyCode.RightArrow&&e!==KeyCode.PageDown||(r.value>=n.length-5?r.value=n.length-1:r.value+=5,d()))}return n.forEach((t=>{const e=t.specialText.length;t.toShowSpecial=lodash.exports.cloneDeep(t.specialText),t.toShowColor=lodash.exports.cloneDeep(t.specialColor),e>=3&&(t.toShowSpecial=t.specialText.slice(0,2).concat(["..."]),t.toShowColor=t.specialColor.slice(0,2).concat(["#fff"])),t.toShowColor=t.toShowColor.map((t=>"string"==typeof t?t:core.arrayToRGBA(t))),t.damageColor=getDamageColor(t.damage)})),onMounted((async()=>{core.plugin.transition.value?await S(600):await S(50),document.addEventListener("keyup",p),document.addEventListener("keydown",u)})),onUnmounted((async()=>{document.removeEventListener("keyup",p),document.removeEventListener("keydown",u)})),(t,e)=>{const d=__unplugin_components_1;return openBlock(),createElementBlock(Fragment,null,[createBaseVNode("div",_hoisted_1$e,[createBaseVNode("div",_hoisted_2$c,[createBaseVNode("span",{id:"back",class:"button-text tools",onClick:c},[createVNode(unref(LeftOutlined)),createTextVNode("返回游戏")])]),0===unref(n).length?(openBlock(),createElementBlock("div",_hoisted_3$c,_hoisted_5$8)):(openBlock(),createBlock(Scroll,{key:1,style:{width:"100%",height:"94%","font-family":"normal"},now:a.value,"onUpdate:now":e[0]||(e[0]=t=>a.value=t),drag:o.value,"onUpdate:drag":e[1]||(e[1]=t=>o.value=t)},{default:withCtx((()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(n),((t,e)=>(openBlock(),createElementBlock("div",_hoisted_6$8,[(openBlock(),createBlock(EnemyOne,{selected:e===r.value,enemy:t,key:e,onSelect:n=>l(t,e),onHover:t=>r.value=e},null,8,["selected","enemy","onSelect","onHover"])),createVNode(d,{dashed:"",style:{width:"100%","border-color":"#ddd4"}})])))),256))])),_:1},8,["now","drag"]))]),i.value?(openBlock(),createBlock(BookDetail,{key:0,onClose:e[2]||(e[2]=t=>s())})):createCommentVNode("",!0)],64)}}}),book_vue_vue_type_style_index_0_scoped_e7143bcf_lang="",Book=_export_sfc(_sfc_main$e,[["__scopeId","data-v-e7143bcf"]]),clsMap={tools:"消耗道具",constants:"永久道具",all:"全部道具"};function getClsName(t){return clsMap[t]}function getItems(t){const e=core.status.hero.items,n=["book"];if("all"===t)return{tools:Object.entries(e.tools).filter((t=>!n.includes(t[0]))),constants:Object.entries(e.constants).filter((t=>!n.includes(t[0])))};const a=e[t];return Object.entries(a)}const _withScopeId$4=t=>(pushScopeId("data-v-88c6bbe5"),t=t(),popScopeId(),t),_hoisted_1$d={id:"toolbox"},_hoisted_2$b={id:"tools"},_hoisted_3$b={id:"toolbox-main"},_hoisted_4$8={class:"item-main"},_hoisted_5$7={class:"item-info"},_hoisted_6$7={key:0,class:"item-type"},_hoisted_7$6={key:1,id:"item-type-mobile"},_hoisted_8$5=["selected"],_hoisted_9$5=["selected"],_hoisted_10$5=["selected","onClick"],_hoisted_11$5={class:"item-icon"},_hoisted_12$4={class:"item-name"},_hoisted_13$4={id:"detail"},_hoisted_14$4={id:"info"},_hoisted_15$3={id:"basic-info"},_hoisted_16$3={style:{"border-bottom":"1px solid #ddd4"}},_hoisted_17$2=_withScopeId$4((()=>createBaseVNode("span",{style:{"margin-top":"2vh"}},"点击该物品以使用",-1))),_hoisted_18$2={id:"desc"},_hoisted_19$2=_withScopeId$4((()=>createBaseVNode("span",null,"道具描述",-1))),_hoisted_20$2={key:0},_hoisted_21$2=["innerHTML"],_sfc_main$d=defineComponent({__name:"toolbox",setup(t){const e=ref("tools"),n=getItems("all"),a=computed((()=>isMobile?[e.value]:["tools","constants"])),o=core.material.items,i=ref(n[a.value[0]][0]?.[0]??"none"),r=ref(0);watch(r,(t=>{s(n[e.value][t][0],!0)})),watch(e,(t=>{has(n[t][r.value])?s(n[t][r.value][0],!0):i.value="none"}));const l=computed((()=>{const t=i.value;return"none"===t?ref("没有选择道具"):type(o[t].text,25,C("sin","out"),!0)}));async function s(t,a=!1){i.value!==t||a||d(t),r.value=n[e.value].findIndex((e=>e[0]===t)),i.value=t}function c(){core.plugin.toolOpened.value=!1}async function d(t){if("none"!==t)if(core.canUseItem(t)){const e=core.plugin.transition.value;core.plugin.transition.value=!1,c(),await S(50),core.useItem(t),core.plugin.transition.value=e}else message.warn({content:"当前无法使用该道具!",class:"antdv-message"})}async function p(){const t=core.plugin.transition.value;core.plugin.transition.value=!1,c(),await S(50),core.plugin.equipOpened.value=!0,core.plugin.transition.value=t}function u(t){const e=keycode(t.keyCode);e!==KeyCode.Escape&&e!==KeyCode.KeyX&&e!==KeyCode.KeyT||c(),e!==KeyCode.Enter&&e!==KeyCode.KeyC||d(i.value)}function h(t){const a=keycode(t.keyCode),o=n[e.value].length;if(a===KeyCode.DownArrow&&r.value0&&r.value--,a===KeyCode.RightArrow){const t=n.constants.length;"tools"===e.value&&(r.value>=t&&(r.value=t-1),e.value="constants")}if(a===KeyCode.LeftArrow){const t=n.tools.length;"constants"===e.value&&(r.value>=t&&(r.value=t-1),e.value="tools")}}return onMounted((async()=>{core.plugin.transition.value?await S(600):await S(50),document.addEventListener("keyup",u),document.addEventListener("keydown",h)})),onUnmounted((()=>{document.removeEventListener("keyup",u),document.removeEventListener("keydown",h)})),(t,r)=>{const d=__unplugin_components_1;return openBlock(),createElementBlock("div",_hoisted_1$d,[createBaseVNode("div",_hoisted_2$b,[createBaseVNode("span",{class:"button-text tools",onClick:c},[createVNode(unref(LeftOutlined)),createTextVNode(" 返回游戏")]),createBaseVNode("span",{class:"button-text tools",onClick:p},[createTextVNode("装备栏 "),createVNode(unref(RightOutlined))])]),createBaseVNode("div",_hoisted_3$b,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(a),(t=>(openBlock(),createElementBlock("div",_hoisted_4$8,[createBaseVNode("div",_hoisted_5$7,[unref(isMobile)?(openBlock(),createElementBlock("div",_hoisted_7$6,[createBaseVNode("span",{class:"button-text",onClick:r[0]||(r[0]=t=>e.value="tools"),selected:"tools"===e.value},"消耗道具",8,_hoisted_8$5),createVNode(d,{dashed:"",style:{"border-color":"#ddd4",height:"100%"},type:"vertical"}),createBaseVNode("span",{class:"button-text",onClick:r[1]||(r[1]=t=>e.value="constants"),selected:"constants"===e.value},"永久道具",8,_hoisted_9$5)])):(openBlock(),createElementBlock("div",_hoisted_6$7,toDisplayString(unref(getClsName)(t)),1)),createVNode(d,{dashed:"",style:{margin:"1vh 0 1vh 0","border-color":"#ddd4"}}),createVNode(Scroll,{class:"item-list"},{default:withCtx((()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(n)[t],(([n,a])=>(openBlock(),createElementBlock("div",{class:"item selectable",selected:i.value===n,onClick:a=>{e.value=t,s(n)}},[createBaseVNode("div",_hoisted_11$5,[createVNode(_sfc_main$l,{id:n,width:32,height:32,noborder:!0},null,8,["id"]),createBaseVNode("span",_hoisted_12$4,toDisplayString(unref(o)[n].name),1)]),createBaseVNode("span",null,"× "+toDisplayString(a),1)],8,_hoisted_10$5)))),256))])),_:2},1024)]),createVNode(d,{dashed:"",type:unref(isMobile)?"horizontal":"vertical",class:"divider",style:{"border-color":"#ddd4",margin:"1%"}},null,8,["type"])])))),256)),createBaseVNode("div",_hoisted_13$4,[createBaseVNode("div",_hoisted_14$4,[createVNode(_sfc_main$l,{id:i.value,width:32,height:32},null,8,["id"]),createBaseVNode("div",_hoisted_15$3,[createBaseVNode("span",_hoisted_16$3,toDisplayString("none"===i.value?"没有道具":unref(o)[i.value].name),1),createBaseVNode("span",null,toDisplayString("none"===i.value?"永久道具":unref(getClsName)(unref(o)[i.value].cls)??"永久道具"),1)])]),_hoisted_17$2,createVNode(d,{dashed:"",style:{"border-color":"#ddd4"}}),createBaseVNode("div",_hoisted_18$2,[_hoisted_19$2,createVNode(Scroll,{id:"desc-text"},{default:withCtx((()=>[unref(l).value.startsWith("!!html")?(openBlock(),createElementBlock("div",{key:1,innerHTML:unref(l).value.slice(6)},null,8,_hoisted_21$2)):(openBlock(),createElementBlock("div",_hoisted_20$2,toDisplayString(unref(l).value),1))])),_:1})])])])])}}}),toolbox_vue_vue_type_style_index_0_scoped_88c6bbe5_lang="",Toolbox=_export_sfc(_sfc_main$d,[["__scopeId","data-v-88c6bbe5"]]),index$2="",index$1="";function getEquips(){return Object.entries(core.status.hero.items.equips)}function getAddStatus(t){const e=Object.assign({},t.value,t.percentage),n=Object.keys(e);return createVNode("div",{class:"equip-add-detail"},[n.map((e=>{const n=(t.value[e]??0)+core.status.hero[e]*(t.percentage[e]??0);return createVNode("span",{style:"display: flex"},[createVNode("span",{style:"flex-basis: 50%"},[core.getStatusLabel(e)]),createTextVNode("    "),createVNode("span",{style:{color:n>0?"lightgreen":"lightsalmon"}},[n>0?`+${n}`:n])])}))])}function getNowStatus(t,e=!1){return createVNode("div",{id:"hero-status"},[["hp","lv","atk","def","mdef","mana","hpmax","money"].map((n=>{let a;a="lv"===n?core.getLvName()??"":core.getRealStatus(n)?.toString();let o=0;if(has(t)){o+=t.value[n]??0;const e=t.percentage[n]*core.getStatus(n);o+=isNaN(e)?0:e}return e&&(o=-o),createVNode("div",{class:"hero-status-one"},[createVNode("span",{class:"hero-status-label"},[core.getStatusLabel(n)]),createVNode("div",{class:"hero-status-value"},[createVNode("span",{style:"margin-right: 20%"},[a]),0!==o&&createVNode("span",{style:{color:o>0?"lightgreen":"lightsalmon"}},[o>0?"+"+o:"-"+-o])])])}))])}const _hoisted_1$c={id:"equipbox"},_hoisted_2$a={id:"tools"},_hoisted_3$a={id:"equipbox-main"},_hoisted_4$7={id:"equip-list"},_hoisted_5$6={id:"filter"},_hoisted_6$6={key:0},_hoisted_7$5={key:1},_hoisted_8$4=["selected","onMousedown","onTouchstart","onClick"],_hoisted_9$4={class:"equip-icon"},_hoisted_10$4={class:"equip-name"},_hoisted_11$4={id:"equip-status"},_hoisted_12$3={id:"equip-status-main"},_hoisted_13$3={id:"equip-now"},_hoisted_14$3={id:"equip-now-div"},_hoisted_15$2=["draged","access","selected","onMouseenter","onClick"],_hoisted_16$2={key:0,id:"equip-hero"},_hoisted_17$1={id:"hero-icon"},_hoisted_18$1={id:"hero-status"},_hoisted_19$1={id:"equip-desc"},_hoisted_20$1={id:"equip-icon"},_hoisted_21$1={id:"equip-type"},_hoisted_22$1={id:"equip-add"},_hoisted_23$1={id:"equip-desc-text"},_hoisted_24$1={key:0},_hoisted_25$1=["innerHTML"],_hoisted_26$1={id:"icon-drag"},_sfc_main$c=defineComponent({__name:"equipbox",setup(t){const e=ref(getEquips()),n=ref("all"),a=core.material.items,o=ref(0),i=ref(!1),r=core.status.globalAttribute.equipName,l=ref(core.status.hero.equipment),s=ref(!1),c=ref(!1),d=ref(-1),p=ref("down"),u=ref("none"),h=ref("value"),m=["none","atk","def","hpmax","mana"],g=core.getStatusLabel;watch(p,(t=>{o.value=w.value.length-o.value-1})),watch(u,(t=>{o.value=0})),watch(h,(t=>{o.value=0}));const b=computed((()=>{const t=w.value[o.value],e={name:"没有选择装备",cls:"equip",text:"没有选择装备",equip:{type:"无",value:{},percentage:{},animate:""}};if(i.value){const t=l.value[o.value],n=core.material.items[t];return has(n)?n:e}return has(t)?a[t[0]]:e})),f=computed((()=>getAddStatus(b.value.equip,i.value))),x=computed((()=>b.value.text.startsWith("!!html")?ref(b.value.text):type(b.value.text,25,C("sin","out"),!0))),v=computed((()=>getNowStatus(b.value.equip,i.value))),w=computed((()=>{const t=p.value,o=u.value,i=h.value,r=e.value.filter((t=>{const e=a[t[0]].equip,r=e.type;return!("none"!==o&&!has(e[i][o]))&&("all"===n.value||("string"==typeof r?r===n.value:core.status.globalAttribute.equipName[r]===n.value))}));return"none"===o?r:"down"===t?r.sort(((t,e)=>{const n=a[t[0]].equip,r=a[e[0]].equip;return n[i][o]-r[i][o]})):r.sort(((t,e)=>{const n=a[t[0]].equip;return a[e[0]].equip[i][o]-n[i][o]}))}));function y(){core.plugin.equipOpened.value=!1}function k(t,e=!1){t===o.value||e||(s.value=!1),e&&(s.value=!1),e&&i.value===e&&o.value===t&&(core.unloadEquip(t),z()),i.value=e,o.value=t}function _(t){if(t<0)return!1;const e=b.value.equip?.type;return!!core.canEquip(w.value[o.value]?.[0])&&(!!has(e)&&("number"==typeof e?t===e:r[t]===e))}function z(){l.value=core.status.hero.equipment,e.value=getEquips()}function M(){useDrag(Array.from(document.querySelectorAll(".equip")),A,((t,e)=>{B=t,D=e}),(()=>{c.value&&(c.value=!1,function(){const t=d.value;if(t<0)return;if(!_(t))return void tip$1("warn","无法装备!");const e=l.value[t],n=w.value[o.value]?.[0];core.items._realLoadEquip(t,n,e),z()}())}),!0)}let[B,D]=[0,0];function A(t,e,n){if((t-B)**2+(e-D)**2>100&&!c.value&&(c.value=!0),c.value){const n=document.getElementById("icon-drag");n.style.left=t-24+"px",n.style.top=e-24+"px"}}function O(t){t.stopPropagation(),d.value=-1}async function P(){const t=core.plugin.transition.value;core.plugin.transition.value=!1,y(),await S(50),core.plugin.toolOpened.value=!0,core.plugin.transition.value=t}function N(t){const e=keycode(t.keyCode);e!==KeyCode.KeyQ&&e!==KeyCode.KeyX&&e!==KeyCode.Escape||y()}return watch(w,(t=>{M()})),onMounted((async()=>{M(),core.plugin.transition.value?await S(600):await S(50),document.addEventListener("keyup",N)})),onUnmounted((()=>{cancelGlobalDrag(A),document.removeEventListener("keyup",N)})),(t,e)=>{const n=SelectOption,S=__unplugin_components_1$1,M=__unplugin_components_1;return openBlock(),createElementBlock(Fragment,null,[createBaseVNode("div",_hoisted_1$c,[createBaseVNode("div",_hoisted_2$a,[createBaseVNode("span",{class:"button-text tools",onClick:y},[createVNode(unref(LeftOutlined)),createTextVNode(" 返回游戏")]),createBaseVNode("span",{class:"button-text tools",onClick:P},[createTextVNode("道具栏 "),createVNode(unref(RightOutlined))])]),createBaseVNode("div",_hoisted_3$a,[createBaseVNode("div",_hoisted_4$7,[createBaseVNode("div",_hoisted_5$6,[createVNode(S,{value:u.value,"onUpdate:value":e[0]||(e[0]=t=>u.value=t),class:"select"},{default:withCtx((()=>[(openBlock(),createElementBlock(Fragment,null,renderList(m,(t=>createVNode(n,{value:t},{default:withCtx((()=>[createTextVNode(toDisplayString("none"===t?"所有":unref(g)(t)),1)])),_:2},1032,["value"]))),64))])),_:1},8,["value"]),createVNode(M,{type:"vertical",class:"divider"}),createVNode(S,{value:h.value,"onUpdate:value":e[1]||(e[1]=t=>h.value=t),class:"select"},{default:withCtx((()=>[createVNode(n,{value:"value"},{default:withCtx((()=>[createTextVNode("数值")])),_:1}),createVNode(n,{value:"percentage"},{default:withCtx((()=>[createTextVNode("百分比")])),_:1})])),_:1},8,["value"]),createVNode(M,{type:"vertical",class:"divider"}),createBaseVNode("span",{onClick:e[2]||(e[2]=t=>{"down"===p.value?p.value="up":p.value="down"}),class:"button-text",id:"sort-type"},["down"===p.value?(openBlock(),createElementBlock("span",_hoisted_6$6,[createVNode(unref(SortAscendingOutlined))])):(openBlock(),createElementBlock("span",_hoisted_7$5,[createVNode(unref(SortDescendingOutlined))]))])]),createVNode(M,{dashed:"",style:{"border-color":"#ddd4",margin:"1vh 0 1vh 0"}}),createVNode(Scroll,{id:"equip-scroll"},{default:withCtx((()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(w),(([t,e],n)=>(openBlock(),createElementBlock("div",{class:"equip selectable",selected:o.value===n&&!i.value,onMousedown:t=>k(n),onTouchstart:t=>k(n),onClick:t=>function(t){if(t===o.value&&s.value){const t=w.value[o.value]?.[0];if(!core.canEquip(t))return void tip$1("warn","无法装备!");core.loadEquip(t),z(),s.value=!1}s.value=!0}(n)},[createBaseVNode("div",_hoisted_9$4,[createVNode(_sfc_main$l,{id:t??"none",width:32,height:32,noborder:!0},null,8,["id"]),createBaseVNode("span",_hoisted_10$4,toDisplayString(unref(a)[t].name),1)]),createBaseVNode("span",null,"× "+toDisplayString(e),1)],40,_hoisted_8$4)))),256))])),_:1})]),createBaseVNode("div",_hoisted_11$4,[createVNode(M,{class:"divider",type:unref(isMobile)?"horizontal":"vertical",dashed:"",style:{"border-color":"#ddd4"}},null,8,["type"]),createBaseVNode("div",_hoisted_12$3,[createBaseVNode("div",_hoisted_13$3,[createVNode(Scroll,{style:normalizeStyle({height:unref(isMobile)?"10vh":"30vh"})},{default:withCtx((()=>[createBaseVNode("div",_hoisted_14$3,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(r),((t,e)=>(openBlock(),createElementBlock("div",{class:"equip-now-one draginable selectable",draged:c.value,access:_(e),selected:i.value&&o.value===e,onMouseenter:t=>{return n=e,t.stopPropagation(),void(d.value=n);var n},onMouseleave:O,onClick:t=>k(e,!0)},[createVNode(_sfc_main$l,{id:l.value[e]??"none"},null,8,["id"]),createBaseVNode("span",null,toDisplayString(t),1)],40,_hoisted_15$2)))),256))])])),_:1},8,["style"])]),createVNode(M,{dashed:"",style:{"border-color":"#ddd4",margin:"1vh 0 1vh 0"}}),unref(isMobile)?createCommentVNode("",!0):(openBlock(),createElementBlock("div",_hoisted_16$2,[createBaseVNode("div",_hoisted_17$1,[createVNode(_sfc_main$l,{id:"hero",width:48,height:64,noborder:""})]),createBaseVNode("div",_hoisted_18$1,[(openBlock(),createBlock(resolveDynamicComponent(unref(v))))])]))]),unref(isMobile)?createCommentVNode("",!0):(openBlock(),createBlock(M,{key:0,class:"divider",type:"vertical",dashed:"",style:{"border-color":"#ddd4"}}))]),createBaseVNode("div",_hoisted_19$1,[createBaseVNode("div",_hoisted_20$1,[createVNode(_sfc_main$l,{id:i.value?l.value[o.value]??"none":unref(w)[o.value]?.[0]??"none"},null,8,["id"]),createBaseVNode("span",null,toDisplayString(unref(b).name),1)]),createBaseVNode("div",_hoisted_21$1,[createBaseVNode("span",null,"装备孔:"+toDisplayString(unref(b).equip?.type),1)]),createVNode(M,{dashed:"",style:{"border-color":"#ddd4",margin:"1vh 0 1vh 0"}}),createBaseVNode("div",_hoisted_22$1,[createBaseVNode("span",{style:normalizeStyle({"font-size":unref(isMobile)?"3.8vw":"3vh"}),id:"title"},"增减属性",4),createVNode(Scroll,{style:{width:"100%",height:"100%"}},{default:withCtx((()=>[(openBlock(),createBlock(resolveDynamicComponent(unref(f))))])),_:1})]),createVNode(M,{dashed:"",style:{"border-color":"#ddd4",margin:"1vh 0 1vh 0"}}),createBaseVNode("div",_hoisted_23$1,[createBaseVNode("span",{style:normalizeStyle({"font-size":unref(isMobile)?"3.8vw":"3vh"}),id:"title"},"装备介绍",4),createVNode(Scroll,{id:"desc-text",style:{height:"100%",width:"100%"}},{default:withCtx((()=>[unref(x).value.startsWith("!!html")?(openBlock(),createElementBlock("div",{key:1,innerHTML:unref(x).value.slice(6)},null,8,_hoisted_25$1)):(openBlock(),createElementBlock("div",_hoisted_24$1,toDisplayString(unref(x).value),1))])),_:1})])])])]),createBaseVNode("div",_hoisted_26$1,[c.value?(openBlock(),createBlock(_sfc_main$l,{key:0,class:"drag-icon",id:unref(w)[o.value]?.[0]??"none",width:48,height:48,noborder:""},null,8,["id"])):createCommentVNode("",!0)])],64)}}}),equipbox_vue_vue_type_style_index_0_scoped_4fac9519_lang="",Equipbox=_export_sfc(_sfc_main$c,[["__scopeId","data-v-4fac9519"]]),transition$2=ref(!1),itemDetail$1=ref(!0),autoSkill$1=ref(!0),autoScale$1=ref(!0);function reset(){const t=core.getLocalStorage("transition",!1);transition$2.value=t,core.plugin.transition.value=transition$2.value,autoScale$1.value=core.getLocalStorage("autoScale",!0)}function resetFlag(){flags.autoSkill??=!0,flags.itemDetail??=!0,itemDetail$1.value=!!flags.itemDetail,autoSkill$1.value=!!flags.autoSkill}function init$5(){return{resetSettings:reset,resetFlagSettings:resetFlag}}watch(transition$2,(t=>{core.plugin.transition.value=t,core.setLocalStorage("transition",t)})),watch(itemDetail$1,(t=>{flags.itemDetail=t,core.updateStatusBar()})),watch(autoSkill$1,(t=>{flags.autoSkill=t,core.updateStatusBar(),core.status.route.push(`set:autoSkill:${t}`)})),watch(autoScale$1,(t=>{core.setLocalStorage("autoScale",t)}));const transition$1={text:"界面动画",desc:["是否展示当一个ui界面,如怪物手册等的打开与关闭时的动画。当此项开启时,","所有界面被打开或关闭时都会展示动画,否则会直接展示出来"]},itemDetail={text:"宝石血瓶显伤",desc:["是否在地图上显示宝石血瓶装备等增加的属性值"]},autoSkill={text:"自动切换技能",desc:["开启后,打怪物的时候会自动选择伤害最低的技能。同时显伤也会显示此状态下的伤害,","临界也会考虑技能在内"]},autoScale={text:"自动放缩",desc:["开启后,每次进入游戏时会自动缩放游戏画面至合适值。该项只对电脑端有效。","
","
","缩放原则如下:","
","1. 首先尝试缩放至最大缩放比例","
","2. 如果缩放后游戏画面高度高于页面高度的95%,那么缩小一个缩放比例,否则保持最大比例"]},settingInfo={transition:transition$1,itemDetail:itemDetail,autoSkill:autoSkill,autoScale:autoScale},_hoisted_1$b={class:"colomn"},_hoisted_2$9={class:"tools"},_hoisted_3$9=["id"],_sfc_main$b=defineComponent({__name:"colomn",props:{width:null,height:null,left:null,right:null},emits:["close"],setup(t,{emit:e}){const n=t,a=(1e8*Math.random()).toFixed(0);let o,i,r;function l(){o=document.getElementById(`column-${a}`),i=document.getElementById(`column-left-${a}`),r=document.getElementById(`column-right-${a}`),has(n.width)&&!isMobile&&(o.style.width=`${n.width}%`),has(n.height)&&(o.style.height=`${n.height}%`),has(n.left)&&(i.style.flexBasis=`${n.left}%`),has(n.right)&&(r.style.flexBasis=`${n.right}%`)}function s(t){const n=keycode(t.keyCode);n!==KeyCode.Escape&&n!==KeyCode.KeyX||e("close")}return onMounted((async()=>{l(),await S(50),core.plugin.transition.value&&await S(600),document.addEventListener("keyup",s)})),onUpdated(l),onUnmounted((()=>{document.removeEventListener("keyup",s)})),(t,n)=>{const o=__unplugin_components_1;return openBlock(),createElementBlock("div",_hoisted_1$b,[createBaseVNode("div",_hoisted_2$9,[createBaseVNode("span",{class:"button-text",onClick:n[0]||(n[0]=t=>e("close"))},[createVNode(unref(LeftOutlined)),createTextVNode(" 返回游戏")])]),createBaseVNode("div",{class:"column-main",id:`column-${unref(a)}`},[createVNode(Scroll,{class:"column-left",id:`column-left-${unref(a)}`},{default:withCtx((()=>[renderSlot(t.$slots,"left",{},void 0,!0)])),_:3},8,["id"]),createVNode(o,{class:"divider",dashed:"",style:{"border-color":"#ddd4"},type:unref(isMobile)?"horizontal":"vertical"},null,8,["type"]),createVNode(Scroll,{class:"column-right",id:`column-right-${unref(a)}`},{default:withCtx((()=>[renderSlot(t.$slots,"right",{},void 0,!0)])),_:3},8,["id"])],8,_hoisted_3$9)])}}}),colomn_vue_vue_type_style_index_0_scoped_682173f1_lang="",Column=_export_sfc(_sfc_main$b,[["__scopeId","data-v-682173f1"]]),_hoisted_1$a={id:"setting-list"},_hoisted_2$8=["selected"],_hoisted_3$8=["selected"],_hoisted_4$6=["selected"],_hoisted_5$5=["selected"],_hoisted_6$5=["innerHTML"],_sfc_main$a=defineComponent({__name:"settings",setup(t){const e=ref("transition"),n=computed((()=>splitText(settingInfo[e.value].desc)));function a(){core.plugin.settingsOpened.value=!1}function o(t){e.value===t?"transition"===t?transition$2.value=!transition$2.value:"itemDetail"===t?itemDetail$1.value=!itemDetail$1.value:"autoSkill"===t?autoSkill$1.value=!autoSkill$1.value:"autoScale"===t&&(autoScale$1.value=!autoScale$1.value):e.value=t}return(t,i)=>(openBlock(),createBlock(Column,{width:60,height:60,onClose:a},{left:withCtx((()=>[createBaseVNode("div",_hoisted_1$a,[createBaseVNode("span",{class:"selectable",selected:"transition"===e.value,onClick:i[0]||(i[0]=t=>o("transition"))},"界面动画:   "+toDisplayString(unref(transition$2)?"ON":"OFF"),9,_hoisted_2$8),createBaseVNode("span",{class:"selectable",selected:"itemDetail"===e.value,onClick:i[1]||(i[1]=t=>o("itemDetail"))},"宝石血瓶显伤:   "+toDisplayString(unref(itemDetail$1)?"ON":"OFF"),9,_hoisted_3$8),createBaseVNode("span",{class:"selectable",selected:"autoSkill"===e.value,onClick:i[2]||(i[2]=t=>o("autoSkill"))},"自动切换技能:   "+toDisplayString(unref(autoSkill$1)?"ON":"OFF"),9,_hoisted_4$6),createBaseVNode("span",{class:"selectable",selected:"autoScale"===e.value,onClick:i[3]||(i[3]=t=>o("autoScale"))},"自动放缩:   "+toDisplayString(unref(autoScale$1)?"ON":"OFF"),9,_hoisted_5$5)])])),right:withCtx((()=>[createBaseVNode("span",{innerHTML:unref(n)},null,8,_hoisted_6$5)])),_:1}))}}),settings_vue_vue_type_style_index_0_scoped_1a46d8ac_lang="",Settings=_export_sfc(_sfc_main$a,[["__scopeId","data-v-1a46d8ac"]]),tip={text:"注意事项",condition:"true",desc:["这里显示本塔中需要注意的事项。","
","
",'1. ',"本百科全书字数很多,可以选择性地阅读。","
","
",'2. 本塔中几乎所有 ui 都可以纵向滚动,如果发现显示不全,',"可以尝试上下拖动,就像浏览网页一样。电脑端还可以使用滚轮上下滚动。","大部分可以纵向滚动的 ui 都会在右方有一个滚动条,也可以拖动它进行滚动,例如本百科全书的条目列表和","条目说明都是可以通过上述方式滚动的。","
","
",'3. 本百科全书的内容会随着游戏的推进而增加新内容,',"同时每次增加新内容时都会有提示。","
","
","4. 本塔主要面向电脑端设计,",'建议使用电脑游玩以获得更好的游戏体验。但是手机依然可以游玩本塔,',"但部分操作可能不是很方便,ui 也可能不是很美观,不过依然可以完整体验本游戏。","
","
",'5. 对于手机端,可以点击右下角的难度文字来切换工具栏至数字键。',"这样,你可以更加方便地进行使用技能等操作。","
","
","6. 本塔中几乎所有 ui 在打开时都会有一个0.6s的动画,如果不想要,可以在开头捡的系统设置里面关闭(默认关闭)。","同时,几乎所有 ui 的退出按钮都在左上角。"]},about={text:"关于游戏",condition:"true",desc:["使用样板:Vite 魔塔样板","
","样板版本:V2.10.0","
",'游戏开源地址:
',"https://github.com/unanmed/HumanBreak","
","游戏作者:古祠","
","BGM来源:网易云音乐","
","素材来源:大素材库、爱给网、网站素材库","
","特别鸣谢:无名甲烷菌","
","测试:"]},tutorial={text:"新手教程",condition:"true",desc:["本条目是魔塔游戏的新手教程,如果对魔塔有一定的了解,可以直接忽略。","
","
",'魔塔是一种固定数值rpg游戏,在打怪的时候,遵循我打你一下,你打我一下',"的原则,造成的伤害是己方攻击减去对方防御,最后怪物的伤害便是你在战斗中失去的生命值。当然,为了游戏体验,","战斗过程会被省略。","
","
","宝石可以增加你的属性,在大部分魔塔中,红宝石增加攻击,蓝宝石增加防御,本塔也不例外。血瓶可以增加你的生命值。",'一般情况下,拾取宝物的优先级是红宝石 > 蓝宝石 > 血瓶,',"但部分情况可能不是这样,这需要你自己的游玩经验等。","
","
","本塔还拥有升级机制,升级时能够给你增加大量的属性,因此,一般情况下当你接近升级时,需要尽快打怪升级。","
","
","然后是门。在魔塔中,很多门都不是必开的门,它们的作用一般是可以躲开怪物拿宝石,或者门里面有血瓶等。","当你血量足够时,这些门可以不用开,不然可能会有必开的门无法开启导致卡关。对于钥匙,每种颜色的钥匙开对应颜色的门,",'价值是红 > 蓝 > 黄。',"
","
","为了更加方便,本塔增加了宝石血瓶显示数据的功能,这样你可以清晰地知道每个宝石增加了多少属性。","
","
","下面是勇士基础属性的说明:","
",'1. 生命值:',"勇士的血量,当它归零时,游戏结束","
",'2. 攻击:',"勇士的攻击,攻击越高,每回合对怪物造成的伤害越高","
",'3. 防御:',"勇士的防御,防御越高,怪物每回合对你造成的伤害越低","
",'4. 经验:',"勇士的经验,到达一定值后会升级。本塔在状态栏中显示为距离升级剩余的经验","
",'5. 金币:',"勇士的金币,可以用于购买物品。本塔中在进入第二章后会有用","
",'6. 护盾:',"勇士的护盾,用处是能够在战后减少同等数值的伤害,在本塔中可以使伤害变为负值。本塔中,在点开无上之盾技能后,","智慧会充当护盾。更多信息可以查看“勇士属性”条目。"]},noun={text:"名词解释",condition:"true",desc:["本条目会解释诸如临界等魔塔术语,对魔塔有一定了解的可以直接忽略。","
","
",'1. 临界:',"在魔塔中,临界是一个非常重要的东西。首先,我们很容易可以得到,吃攻击时只有当减少了战斗回合数时怪物的伤害会减少,",'那么,吃攻击时怪物的减伤是不连续的。而距离下一次减少怪物的伤害需要加的攻击的量',"便是临界。当我们吃一个攻击恰好使怪物伤害减少时,称为“踩临界”。一般情况下,踩临界的减伤要比吃防御要高,","因此,当能踩到临界时,我们应当先踩临界,再吃防御。","
","
",'2. 加防:',"加防指的是加防对怪物的减伤。在本塔中,会以“n防”的形式显示在怪物手册或其他地方。在本塔中,一般你不需要刻意计算",'临界与加防减伤,你可以在怪物手册中查看减伤折线图,',"更多信息请查看“怪物手册”条目。","
","
",'3. 咸鱼:',"一般来讲,开不必开的门,或者使用不必使用的道具被称为咸鱼,或者是咸门,咸道具。一般情况下,说“咸”便是指咸鱼。","一般情况下,门后面有宝石且无法通过其他方式进入的都是必开门,而只有血瓶的都是咸鱼门。"]},shortcut={text:"快捷键",condition:"true",desc:["这里包含本塔中所有的快捷键。对于手机端,可以点击工具栏的难度的位置切换工具栏至数字键。","
","
","下面是样板中的所有快捷键:","
",'X:打开怪物手册',"
",'S:打开存档界面',"
",'D:打开读档界面',"
",'A或5:读取自动存档',"
",'W或6:撤销读取的自动存档',"
",'Q:打开装备栏',"
",'T:打开道具栏',"
",'G:打开楼层传送器',"
",'Z或单击勇士:勇士转向',"
",'空格或双击勇士或7:轻按(拾取勇士周围的宝物但不移动勇士)',"
",'Esc:打开游戏菜单',"
",'R:打开录像回放菜单',"
",'N:询问是否返回游戏主菜单',"
",'V:打开快捷商店',"
",'B:打开数据统计界面',"
",'Alt + 数字键:快速换装',"
",'PgUp或PgDn:浏览地图',"
",'P:打开评论区',"
","
","下面是本塔中新增的快捷键:","
",'M:快速标记怪物',"
",'J:打开技能树']},extraAttr={text:"勇士属性",condition:"true",desc:["这里只对本塔中新增的勇士属性进行说明。","
","
",'1. 智慧:',"智慧是该塔的核心属性之一。智慧可用于智慧加点,该功能会在进入第一章后开启。使用智慧可以点技能树。","除此之外,智慧也有其它功能。例如点开无上之盾技能后智慧还可以充当护盾,第二章点开学习技能后可以使用智慧学习怪物技能等。","
","
",'2. 生命回复:',"生命回复指的是勇士每回合回复的生命值。当与怪物战斗时,勇士每回合都会回复对应量的生命值。因此,当吃攻击时,","与怪物战斗的回合数可能会减少,导致生命回复的总回复量减少。不过大部分情况下不需要在意这一点,","减少一回合并不会对吸的血造成很大的影响,除了一些特殊情况。","该项会显示在状态栏的生命值右方偏下的位置。","
","
",'3. 额外攻击:',"额外攻击指的是勇士每回合的额外造成的伤害。一般情况下,当勇士破了怪物的防御时,该项便会起作用。","额外攻击相当于魔攻,无法通过一般方式减免。当勇士攻击怪物时,每回合都会附加对应量的伤害,对坚固怪同样有效。","额外攻击会显示在状态栏的攻击右方偏下的位置。"]},statusBar={text:"状态栏",condition:"true",desc:["在本塔中,状态栏与游戏画面是分开的。你可以自由拖动状态栏,也可以修改其大小。","具体方法如下:点击一下状态栏之后,左上角的拖拽图标会放大,此时你可以按住它拖动状态栏。","你可以直接将鼠标放到状态栏的边框上,然后直接拖动以改变状态栏的大小。手机端可以先点击一下状态栏使边框","变宽,然后拖动。电脑端点击状态栏也可以使边框变宽。如果你想折叠状态栏,完全可以拖动状态栏的下边框,","然后直接拖动至上方,这时状态栏便会变成一条线,相当于折叠了状态栏","
","
","状态栏可以纵向滚动,如果你发现状态栏显示不全,可以尝试拉大状态栏,或者纵向拖动状态栏,就像网页上下滚动一样。","电脑端还可以使用滚轮上下滚动。","
","
","如果你觉得状态栏有些碍事,你完全可以将其缩小,或者把它放到不碍事的地方。","
","
","状态栏上面可能会有按钮,你可以直接点击。","
","
","对状态栏布局的说明。","
","本塔的状态栏的布局较为灵活。它是横向的布局,在状态栏较宽时可以看到,属性会横向依次显示。按照显示顺序,","状态栏显示项依次为:","
","1. 楼层名,点击后进入浏览地图界面","
","2. 勇士等级","
","3. 当前开启的技能","
","4. 当前勇士生命值,右方偏下为每回合回复的生命值,当点开治愈之泉技能时,右方偏上会显示距离增加生命回复剩余血瓶数","
","5. 当前勇士的攻击,右方偏下为勇士的额外攻击","
","6. 当前勇士的防御","
","7. 当前勇士的智慧,可以用于智慧加点等","
","8. 当前勇士的金币","
","9. 当前勇士距离升级剩余经验数","
","10. 三色钥匙","
","11. 打开技能树(进入第一章后开启)","
","12. 查看勇士的技能(进入第一章后开启)"]},markEnemy={text:"标记怪物",condition:"true",desc:["标记怪物可以使你能够更加方便地了解一个怪物的情况。","
","你可以通过以下两种方式标记怪物:","
","1. 打开怪物手册,选中怪物,进入怪物更多信息栏,点击标记怪物。","
",'2. 将鼠标移动到你想要标记的怪物上面,',"按下M键,即可标记怪物,注意浏览地图中不能用该方式标记。","手机端暂时没有快速标记怪物的方式。","
","
","当一个怪物被标记后,怪物会有以下行为:","
","1. 当勇士恰好能打败怪物时,会进行提示","
","2. 当怪物的伤害恰好低于勇士生命值的2/3或1/3时,会进行提示","
","3. 当勇士恰好踩到怪物的临界时,会进行提示","
","4. 当怪物零伤时,会进行提示","
","5. 被标记的怪物会出现类似于状态栏的盒子,可以随意拖动和改变大小。你也可以选择关闭这个盒子,","被关闭后可以通过重新标记来打开。这个盒子会显示标记的怪物的临界与伤害信息等,与状态栏一样,可以纵向滚动。","
","
","这个功能可以用于标记boss或者较强的挡路怪,当这些怪能够攻击时你可以直接收到信息,不需要再时刻费心注意怪物的伤害。","
","
","注意,标记的怪物是不计入存档的,同时标记的怪物只在本次游戏中有效,刷新页面后便会消失。"]},book={text:"怪物手册",condition:"true",desc:["本塔的怪物手册功能很多,下面一一介绍。","
","
","怪物手册打开的时候有一个0.6秒的动画,如果不想要可以在开头捡的系统设置里面关闭(默认关闭)。","
","
","打开怪物手册后,怪物手册的布局与样板自带的类似。与样板不同的是,这里的怪物手册不再是翻页式结构。","这里的怪物手册是滚动式结构,你可以像浏览网页一样,用手指或鼠标上下滚动或者拖动右边的滚动条,电脑端还可以使用滚轮。","对于电脑端,还可以使用键盘操作。上和下可以上下选择怪物,左和右可以向上或向下移动5个怪物。这些操作与样板都类似。","
","
","点击一个怪物或者按下回车空格后,将进入怪物详细信息界面。这个界面分为多个栏,分别是特殊属性栏,详细临界栏,更多信息栏。","进入怪物详细信息后默认在特殊属性栏,该栏可以查看怪物的特殊属性。","注意特殊属性依然可以纵向滚动。在特殊属性下方,","是怪物的临界表,可以粗略地查看怪物的临界信息。在下方,你可以点击详细临界信息进入详细临界栏。","
","
","在详细临界栏中,怪物的伤害会以可视化折线图的方式显示出来,从而你可以更为清晰地看出怪物减伤趋势。","除了查看怪物伤害曲线,你还可以规划宝石。每个折线图下方都有一个滑动条,你可以拖动来模拟吃宝石。","注意,拖动时,滑动条左边会显示当前的加攻或加防次数,这个数值指的是在勇士所在地图中需要吃的最弱的宝石数量。","例如,当前勇士所在地图中最弱的宝石加2点攻击,加攻次数为3,那么勇士的攻击增加量就为6。","勇士增加的攻击数值也会在下方显示。当加攻次数和加防次数改变时,折线图也会变化。",'当前状态下怪物的伤害以及减伤总量也会在下方显示。',"注意在此栏中无法通过点击屏幕回到怪物手册界面,更多信息请查看最后一段。","
","
","在特殊属性栏,点击下方的怪物更多信息可以进入更多信息栏。此栏中,你可以查看怪物描述。但这不是这一栏的核心功能。","这一栏的核心功能是标记怪物。被标记的怪物会有一些非常方便的行为,这些行为可以在“标记怪物”条目中查看。","
","
","注意,在怪物详细信息中,除详细临界栏外均可以通过点击屏幕返回到怪物手册界面。",'如果你是电脑端,在任意栏目中按下X键会退出怪物手册,返回游戏,','按下回车(Enter)键会回到怪物手册界面。']},fly={text:"楼层传送器",condition:"true",desc:["楼传界面打开时会有一个0.6秒的动画,如果不想要可以在开头捡的系统设置里面关闭。(默认关闭)","
","
",'本塔的楼层传送器是一个集分区、小地图、楼层传送于一体的多功能楼传。',"下面是楼传的具体说明:","
","
","首先,对于电脑端,最左侧显示区域信息,手机端则在上方的左侧。","
","
","然后,区域的右侧是小地图栏,这一栏会显示楼层的平面结构。你可以拖动,也可以使用滚轮或者双指放缩,当放缩到一定大小时,","会显示地图的缩略图。直接点击地图也可以选中地图,再次点击会传送至目标地图。","
","
","对于电脑端,最右侧是当前选中的地图的缩略图,手机则在下方,点击缩略图也可以传送。缩略图的下方是当前选中的地图名,","左右各有两个按钮,表示后退10层、后退1层、前进1层、前进10层,与样板的楼传的按钮功能类似。","
","
","最下方是设置按钮,可以切换无边框模式,电脑端还可以切换传统按键模式,传统按键模式下按键遵循样板的楼传按键方式。",'对于非传统模式,上下左右可以移动地图,','PageUp和PageDown可以前进1层或后退1层。']},tools={text:"道具栏与装备栏",condition:"true",desc:["道具栏与装备栏打开时会有一个0.6秒的动画,如果不想要可以在开头捡的系统设置里面关闭。(默认关闭)","
","
","本塔的道具栏没有特别之处,这里不需要说明。主要是装备栏。","
","
","本塔的装备栏手机和电脑端不同,电脑端比手机端多了一个勇士属性的显示。在装备栏的装备列表栏,","上方有两个选择框与一个排序方式的选项。这三个可以筛选你拥有的装备并进行排序,从而让你能够更清楚地知道哪个装备更强。","第一个选择框可以筛选装备增加的属性,如果装备不增加选择的属性,那么会不显示。第二个选择框可以筛选增加的属性的方式,","有数值增加和百分比增加两种。在这个选择框右边有一个图标,这个图标可以改变武器的排序方式,有升序和降序两种,默认为升序。","例如,你拥有两个装备,分别增加10攻击和20攻击,三者你分别选择了攻击,数值,升序,那么增加10攻击的装备会排在上面,","而增加20攻击的装备会排在下面。","
","
","对于电脑端,如果你想装装备,可以直接拖动装备至装备孔,也可以选中装备后再次点击。手机端暂时无法拖动装备。当选中一个装备后,","电脑端和手机端均会显示装备增加或减少的属性,注意有的装备可能不增加属性但是有特殊功能。对于电脑端,","还会直接在勇士属性栏显示增加或减少的属性。"]},skillTree={text:"技能树",condition:"flags.chapter > 0",desc:['打开技能树可以点击状态栏的',"技能树按钮(如果发现没有显示可以尝试上下滚动状态栏),还可以按",'快捷键J打开。',"
","
","技能树是本塔的主要玩法之一。它可以让你使用智慧来学习技能,增加属性等。智慧在状态栏显示在防御的下一项,","绿宝石可以增加勇士的智慧。","
","
","打开技能树页面后,你可以在上方看到技能的名称与描述,下方会显示技能树,以及升级要求等。点击一个技能可以选中技能,","再次点击可以升级技能。注意,前置技能栏可以上下滚动,因此如果发现显示不全,可以尝试上下滚动前置技能栏","
","
","注意,技能在点开之后是无法取消的,因此,加点时请慎重加点。注意,部分技能是必点技能,这些技能会在技能说明中明确指出,","这些技能一般需要尽早点出。"]},desc={tip:tip,about:about,tutorial:tutorial,noun:noun,shortcut:shortcut,extraAttr:extraAttr,statusBar:statusBar,markEnemy:markEnemy,book:book,fly:fly,tools:tools,skillTree:skillTree},_hoisted_1$9={id:"desc-list"},_hoisted_2$7=["selected","onClick"],_hoisted_3$7={key:0},_hoisted_4$5=["innerHTML"],_sfc_main$9=defineComponent({__name:"desc",setup(__props){const selected=ref(Object.keys(desc)[0]);function exit(){core.plugin.descOpened.value=!1}const content=computed((()=>splitText(desc[selected.value].desc)));function click(key){eval(desc[key].condition)&&(selected.value=key)}function show(condition){return eval(condition)}return(t,e)=>(openBlock(),createBlock(Column,{onClose:exit,width:80,height:80,left:30,right:70},{left:withCtx((()=>[createBaseVNode("div",_hoisted_1$9,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(desc),((t,e)=>(openBlock(),createElementBlock("div",{class:"selectable",selected:selected.value===e,onClick:t=>click(e)},[show(t.condition)?(openBlock(),createElementBlock("span",_hoisted_3$7,toDisplayString(t.text),1)):createCommentVNode("",!0)],8,_hoisted_2$7)))),256))])])),right:withCtx((()=>[createBaseVNode("span",{innerHTML:unref(content)},null,8,_hoisted_4$5)])),_:1}))}}),desc_vue_vue_type_style_index_0_scoped_68d53667_lang="",Desc=_export_sfc(_sfc_main$9,[["__scopeId","data-v-68d53667"]]),none={text:"无",opened:"true",desc:["当前未选择技能"]},blade={text:"1:断灭之刃",opened:"core.getSkillLevel(2) > 0",desc:['快捷键1,开启后勇士攻击增加${level:2 * 10}%,',"同时防御减少${level:2 * 10}%。","
","
","当前等级:${level:2}"]},jump={text:"2:跳跃",opened:"flags.skill2 === true",desc:['快捷键2,消耗200点生命值,困难消耗400点,一个地图只能使用3次,',"如果前方为可通行的地面,则不能使用该技能,如果前方为怪物,则将怪物移至勇士视线上第一个不能通行的方块后","如果前方为障碍物,则直接跳到该障碍物的后方。"]},shield={text:"3:铸剑为盾",opened:"core.getSkillLevel(10) > 0",desc:['快捷键3,开启后勇士防御增加${level:10 * 10}%,',"同时攻击减少${level:10 * 10}%。","
","
","当前等级:${level:10}"]},skills={none:none,blade:blade,jump:jump,shield:shield},_hoisted_1$8={id:"skill-list"},_hoisted_2$6=["selected","selectable","onClick"],_hoisted_3$6=["innerHTML"],_sfc_main$8=defineComponent({__name:"skill",setup(__props){const selected=ref("none");function skillOpened(skill){return eval(skills[skill].opened)}function select(t){skillOpened(t)&&(selected.value=t)}const content=computed((()=>eval("`"+skills[selected.value].desc.map(((t,e,n)=>/^\d+\./.test(t)?`${" ".repeat(12)}${t}`:has(n[e-1])&&"
"!==t&&"
"===n[e-1]||0===e?`${" ".repeat(8)}${t}`:t)).join("").replace(/level:(\d+)/g,"core.getSkillLevel($1)")+"`")));function exit(){core.plugin.skillOpened.value=!1}return(t,e)=>(openBlock(),createBlock(Column,{onClose:exit,width:70,height:70},{left:withCtx((()=>[createBaseVNode("div",_hoisted_1$8,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(skills),((t,e)=>(openBlock(),createElementBlock("span",{class:"selectable skill-item",selected:e===selected.value,selectable:skillOpened(e),onClick:t=>select(e)},toDisplayString(t.text),9,_hoisted_2$6)))),256))])])),right:withCtx((()=>[createBaseVNode("span",{innerHTML:unref(content)},null,8,_hoisted_3$6)])),_:1}))}}),skill_vue_vue_type_style_index_0_scoped_9f619ff1_lang="",Skill=_export_sfc(_sfc_main$8,[["__scopeId","data-v-9f619ff1"]]),_withScopeId$3=t=>(pushScopeId("data-v-b1be4e88"),t=t(),popScopeId(),t),_hoisted_1$7={id:"skill-tree"},_hoisted_2$5={id:"tools"},_hoisted_3$5={id:"skill-title"},_hoisted_4$4={id:"skill-info"},_hoisted_5$4=["innerHTML"],_hoisted_6$4={id:"skill-effect"},_hoisted_7$4=["innerHTML"],_hoisted_8$3=["innerHTML"],_hoisted_9$3={id:"skill-bottom"},_hoisted_10$3=_withScopeId$3((()=>createBaseVNode("canvas",{id:"skill-canvas"},null,-1))),_hoisted_11$3={id:"skill-upgrade-info"},_hoisted_12$2={id:"skill-level"},_hoisted_13$2={key:1,id:"skill-consume",style:{color:"gold"}},_hoisted_14$2={id:"skill-front"},_hoisted_15$1=_withScopeId$3((()=>createBaseVNode("span",null,"前置技能",-1))),_hoisted_16$1={id:"skill-chapter"},_sfc_main$7=defineComponent({__name:"skillTree",setup(__props){let canvas,ctx;const selected=ref(0),chapter=ref("chapter1"),update=ref(!1),chapterDict={chapter1:"第一章",chapter2:"第二章"};flags.skillTree??=0;const chapterList=Object.keys(core.plugin.skills);selected.value=core.plugin.skills[chapterList[flags.skillTree]][0].index,chapter.value=chapterList[flags.skillTree],watch(selected,draw),watch(update,(()=>mdef.value=core.status.hero.mdef));const mdef=ref(core.status.hero.mdef),skill=computed((()=>(update.value,core.getSkillFromIndex(selected.value)))),skills=computed((()=>core.plugin.skills[chapter.value])),desc=computed((()=>eval("`"+splitText(skill.value.desc).replace(/level(:\d+)?/g,((t,e)=>e?`core.getSkillLevel(${e})`:`core.getSkillLevel(${skill.value.index})`))+"`"))),effect=computed((()=>[0,1].map((v=>eval("`"+(0===v?"当前效果:":"下一级效果:")+skill.value.effect.join("").replace(/level(:\d+)?/g,((t,e)=>e?`(core.getSkillLevel(${e}) + ${v})`:`(core.getSkillLevel(${skill.value.index}) + ${v})`))+"`"))))),dict=computed((()=>{const t={};return skills.value.forEach(((e,n)=>{t[e.index]=n})),t})),front=computed((()=>skill.value.front.map((t=>`${core.getSkillLevel(t[0])>=t[1]?"a":"b"}${t[1]}级 ${skills.value[dict.value[t[0]]].title}`)))),consume=computed((()=>(update.value,core.getSkillConsume(selected.value)))),level=computed((()=>(update.value,core.getSkillLevel(selected.value))));function exit(){core.plugin.skillTreeOpened.value=!1}function resize(){const t=getComputedStyle(canvas);canvas.width=parseFloat(t.width)*devicePixelRatio,canvas.height=parseFloat(t.height)*devicePixelRatio}function draw(){const t=dict.value,e=canvas.width/11;ctx.clearRect(0,0,canvas.width,canvas.height),skills.value.forEach((n=>{const[a,o]=n.loc.map((t=>2*t-1));n.front.forEach((([i],r)=>{const l=skills.value[t[i]];ctx.beginPath(),ctx.moveTo(a*e+e/2,o*e+e/2),ctx.lineTo(...l.loc.map((t=>(2*t-1)*e+e/2))),core.getSkillLevel(l.index){const[n,a]=t.loc.map((t=>2*t-1)),o=core.getSkillLevel(t.index);ctx.save(),ctx.lineWidth=.06*e,selected.value===t.index?(ctx.strokeStyle="#ff0",ctx.lineWidth*=2):0===o?ctx.strokeStyle="#888":o===t.max?ctx.strokeStyle="#F7FF68":ctx.strokeStyle="#00FF69",ctx.strokeRect(n*e,a*e,e,e);const i=core.material.images.images[`skill${t.index}.png`];ctx.drawImage(i,n*e,a*e,e,e),selected.value===t.index&&(ctx.fillStyle="#ff04",ctx.fillRect(n*e,a*e,e,e)),ctx.restore()}))}function click(t){const e=t.offsetX,n=t.offsetY,a=canvas.width/devicePixelRatio/11,o=Math.floor(e/a),i=Math.floor(n/a);if(o%2!=1||i%2!=1)return;const r=Math.floor(o/2)+1,l=Math.floor(i/2)+1,s=skills.value.find((t=>t.loc[0]===r&&t.loc[1]===l));s&&(selected.value!==s.index?selected.value=s.index:upgrade(s.index))}function upgrade(t){core.upgradeSkill(t)?(tip$1("success","升级成功!"),update.value=!update.value,core.status.route.push(`skill:${selected.value}`)):tip$1("error","升级失败!")}function key(t){const e=keycode(t.keyCode);e!==KeyCode.Escape&&e!==KeyCode.KeyX&&e!==KeyCode.KeyJ||exit(),e!==KeyCode.Space&&e!==KeyCode.Enter&&e!==KeyCode.KeyC||upgrade(selected.value)}function selectChapter(t){const e=chapterList.indexOf(chapter.value)+t;has(chapterList[e])&&flags.chapter>e&&(selected.value=core.plugin.skills[chapterList[e]][0].index,chapter.value=chapterList[e],update.value=!update.value,flags.skillTree=e,draw())}return onMounted((async()=>{canvas=document.getElementById("skill-canvas"),ctx=canvas.getContext("2d"),resize(),draw(),await S(50),core.plugin.transition.value&&await S(600),canvas.addEventListener("click",click),document.addEventListener("keyup",key)})),onUnmounted((()=>{document.removeEventListener("keyup",key)})),(t,e)=>{const n=__unplugin_components_1;return openBlock(),createElementBlock("div",_hoisted_1$7,[createBaseVNode("div",_hoisted_2$5,[createBaseVNode("span",{id:"back",class:"button-text tools",onClick:exit},[createVNode(unref(LeftOutlined)),createTextVNode("返回游戏")])]),createBaseVNode("span",_hoisted_3$5,toDisplayString(unref(skill).title),1),createVNode(n,{dashed:"",style:{"border-color":"#ddd4"},id:"divider"}),createBaseVNode("div",_hoisted_4$4,[createVNode(Scroll,{id:"skill-desc","no-scroll":!0},{default:withCtx((()=>[createBaseVNode("span",{innerHTML:unref(desc)},null,8,_hoisted_5$4)])),_:1}),createBaseVNode("div",_hoisted_6$4,[unref(level)>0?(openBlock(),createElementBlock("span",{key:0,innerHTML:unref(effect)[0]},null,8,_hoisted_7$4)):createCommentVNode("",!0),unref(level)[createBaseVNode("div",_hoisted_14$2,[_hoisted_15$1,(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(front),(t=>(openBlock(),createElementBlock("span",{style:normalizeStyle({color:t.startsWith("a")?"#fff":"#f44"})},toDisplayString(t.slice(1)),5)))),256))])])),_:1}),createVNode(n,{dashed:"",class:"upgrade-divider"}),createBaseVNode("div",_hoisted_16$1,[createBaseVNode("span",{class:"button-text",onClick:e[0]||(e[0]=t=>selectChapter(-1))},[createVNode(unref(LeftOutlined))]),createTextVNode("    "),createBaseVNode("span",null,toDisplayString(chapterDict[chapter.value]),1),createTextVNode("    "),createBaseVNode("span",{class:"button-text",onClick:e[1]||(e[1]=t=>selectChapter(1))},[createVNode(unref(RightOutlined))])])])])])}}}),skillTree_vue_vue_type_style_index_0_scoped_b1be4e88_lang="",SkillTree=_export_sfc(_sfc_main$7,[["__scopeId","data-v-b1be4e88"]]),index="";function init$4(){return{splitArea:splitArea,getMapDrawData:getMapDrawData}}let area={};const bfsCache={},drawCache={},arrow={leftPortal:"left",rightPortal:"right",upPortal:"up",downPortal:"down"};function splitArea(){area={};const t=[];for(const e of core.floorIds){if(t.includes(e)||core.status.maps[e].deleted)continue;const n=getMapData(e,!0);if(t.push(...n.maps),n.maps.length>0){const t=core.status.maps[e].title;area[t]=n.maps}}}function getArea(){return area}function getMapDrawData(t,e=5,n=1,a=!1){const o=`${t},${e},${n}`;if(drawCache[o]&&!a)return drawCache[o];const{link:i,maps:r}=getMapData(t,a),l={},s=[],c=core.status.maps[t];let d=-c.width/2,p=c.width/2,u=-c.height/2,h=c.height/2;for(const[g,b]of Object.entries(i)){const[t,a,o,i]=g.split(","),[r,c,m]=b.split(","),f=core.status.maps[t],x=core.status.maps[r],v=parseInt(a),w=parseInt(o),y=parseInt(c),k=parseInt(m),_=f.width,z=f.height,S=x.width,M=x.height;l[t]??=[0,0];const[C,B]=l[t];if(!l[r]){const t=C+(v-_/2)-(y-S/2)+(2*n+e)*core.utils.scan[i].x,a=B+(w-z/2)-(k-M/2)+(2*n+e)*core.utils.scan[i].y;l[r]=[t,a]}const[D,A]=l[r];s.push([C+(v-_/2+.5),B+(w-z/2+.5),D+(y-S/2+.5),A+(k-M/2+.5)]);const O=D-S/2,P=D+S/2,N=A-M/2,E=A+M/2;Op&&(p=P),Nh&&(h=E)}Object.values(l).forEach((t=>{t[0]-=d,t[1]-=u})),s.forEach((t=>{t[0]-=d,t[2]-=d,t[1]-=u,t[3]-=u})),d-=5,p+=5,u-=5,h+=5;const m={locs:l,line:s,width:p-d,height:h-u};return drawCache[o]=m}function getMapData(t,e=!1){if(has(bfsCache[t])&&!e)return bfsCache[t];const n=[t],a={[t]:!0},o=[t],i={};for(;n.length>0;){const t=n.shift(),e=core.floors[t].changeFloor,r=core.getMapBlocksObj(t);for(const[l,s]of Object.entries(e)){const e=s.floorId;if(e.startsWith(":"))continue;const c=r[l].event.id;if(c in arrow&&!a[e]){const a=`${t},${l},${arrow[c]}`,r=`${e},${s.loc[0]},${s.loc[1]}`;i[a]=r,n.push(e),o.push(e)}}a[t]=!0}const r={maps:o,link:i};return bfsCache[t]=r}const _withScopeId$2=t=>(pushScopeId("data-v-581299e6"),t=t(),popScopeId(),t),_hoisted_1$6={id:"fly"},_hoisted_2$4={id:"tools"},_hoisted_3$4={id:"fly-settings"},_hoisted_4$3={id:"fly-border"},_hoisted_5$3=_withScopeId$2((()=>createBaseVNode("span",null,"无边框模式",-1))),_hoisted_6$3={key:0,id:"fly-tradition"},_hoisted_7$3=_withScopeId$2((()=>createBaseVNode("span",null,"传统按键模式",-1))),_hoisted_8$2={id:"fly-main"},_hoisted_9$2={id:"fly-left"},_hoisted_10$2={id:"area-list"},_hoisted_11$2=["selected","onClick"],_hoisted_12$1={id:"fly-right"},_hoisted_13$1={id:"fly-tools"},_hoisted_14$1={id:"fly-now"},_sfc_main$6=defineComponent({__name:"fly",setup(t){const e=getArea(),n=ref(Object.keys(e).find((t=>e[t].includes(core.status.floorId)))),a=ref(core.status.floorId),o=ref(!1),i=ref(!1);let r=isMobile?1.5:3,l=0,s=0,c={},d={};o.value=core.getLocalStorage("noBorder")??!1,i.value=core.getLocalStorage("flyTradition")??!1;const p=computed((()=>core.status.maps[a.value]));watch(a,M),watch(n,(t=>{l=0,s=0,r=3,B=3,e[t]&&!e[t].includes(a.value)&&(a.value=e[t].find((t=>t===core.status.floorId))??e[t][0])})),watch(o,(t=>{core.setLocalStorage("noBorder",t),c={},w()})),watch(i,(t=>{core.setLocalStorage("flyTradition",t)}));const u=document.createElement("canvas"),h=u.getContext("2d");let m,g,b,f;function x(){core.plugin.flyOpened.value=!1}const v=computed((()=>core.status.maps[a.value].title));function w(t=!1){const e=o.value?.5:1,n=getMapDrawData(a.value,o.value?0:5,e,t),i=h,l=r*devicePixelRatio;u.width=n.width*l,u.height=n.height*l,i.lineWidth=e*devicePixelRatio/2,i.strokeStyle="#fff",i.scale(l,l),i.translate(5,5),o.value||n.line.forEach((([t,e,n,a])=>{i.beginPath(),i.moveTo(t,e),i.lineTo(n,a),i.stroke()}));for(const[a,[r,s]]of Object.entries(n.locs))o.value||y(a,r,s),z(a,r,s);k()}function y(t,e,n){const i=o.value?.5:1,r=h;r.lineWidth=i*devicePixelRatio;const l=core.status.maps[t];core.hasVisitedFloor(t)?r.fillStyle="#000":r.fillStyle="#d0d",t===a.value?r.strokeStyle="gold":r.strokeStyle="#fff",r.strokeRect(e-l.width/2,n-l.height/2,l.width,l.height),r.fillRect(e-l.width/2,n-l.height/2,l.width,l.height),t===a.value&&(r.fillStyle="#ff04",r.fillRect(e-l.width/2,n-l.height/2,l.width,l.height))}function k(t=1){g.clearRect(0,0,m.width,m.height),g.drawImage(u,0,0,u.width,u.height,l*devicePixelRatio+(m.width-u.width)/2,s*devicePixelRatio+(m.height-u.height)/2,u.width,u.height)}function _(t,e,n){const a=core.status.maps[t],i=r*devicePixelRatio,p=l*devicePixelRatio+(m.width-u.width)/2+5*i,h=s*devicePixelRatio+(m.height-u.height)/2+5*i,g=p+(e-a.width/2)*i,b=h+(n-a.height/2)*i,f=g+a.width*i,x=b+a.height*i;return d[t]=[g,b,f,x],!(c[t]||!o.value&&r<=4||f<0||x<0||g>m.width||b>m.height)}function z(t,e,n,o=!1){if(!o&&!_(t,e,n))return;const i=core.status.maps[t];c[t]=!0;const r=h;core.drawThumbnail(t,void 0,{all:!0,inFlyMap:!0,x:e-i.width/2,y:n-i.height/2,w:i.width,h:i.height,ctx:r,damage:!0}),core.hasVisitedFloor(t)||(r.fillStyle="#d0d6",r.fillRect(e-i.width/2,n-i.height/2,i.width,i.height),r.fillStyle="#000"),a.value===t&&(r.fillStyle="#ff04",r.fillRect(e-i.width/2,n-i.height/2,i.width,i.height),r.fillStyle="#000")}function M(){c={},w(),function(){let t=b.width,e=b.height,n=0,o=0;const i=p.value.width/p.value.height;i>1&&(e=t/i,o=b.height/2-e/2),i<1&&(t=e*i,n=b.width/2-t/2),f.fillStyle="#000",f.fillRect(0,0,b.width,b.height),core.drawThumbnail(a.value,void 0,{ctx:f,all:!0,damage:!0,inFlyMap:!0,x:n,y:o,w:t,h:e})}()}function C(){core.flyTo(a.value)?x():tip$1("error",`无法飞往${p.value.title}`)}let B=r;const D=lodash.exports.debounce((t=>{m.style.transform="",c={},w(),B=t}),200);function A(t){l*=t,s*=t,r*=t,D(r),m.style.transform=`scale(${r/B})`,d={}}let O=0,P=0,N=!1,E=0,L=0;function I(t,e){if(F)return;l+=t-O,s+=e-P,O=t,P=e,function(){const t=o.value?.5:1,e=getMapDrawData(a.value,o.value?0:5,t);for(const[n,[a,o]]of Object.entries(e.locs))_(n,a,o)&&z(n,a,o,!0)}(),k(),(Math.abs(t-E)>10||Math.abs(e-L)>10)&&(N=!0)}function T(t){if(N)return;const e=t.offsetX*devicePixelRatio,n=t.offsetY*devicePixelRatio;for(const[o,[i,r,l,s]]of Object.entries(d))e>=i&&e<=l&&n>=r&&n<=s&&(o===a.value?C():a.value=o)}function V(t){const o=core.floorIds.indexOf(a.value);let i=o+t;i<0&&(i=0),i>=core.floorIds.length&&(i=core.floorIds.length-1);if(core.status.maps[core.floorIds[i]].deleted)for(;i!==o;){i-=Math.sign(t);if(!core.status.maps[core.floorIds[i]].deleted)break}var r;a.value=core.floorIds[i],r=a.value,n.value=Object.keys(e).find((t=>e[t].includes(r))),$(a.value)}function j(t){const e=getMapData(a.value);for(const[n,o]of Object.entries(e.link)){if(!n.startsWith(a.value))continue;if(n.split(",")[3]===t){const t=o.split(",")[0];return $(t),void(a.value=t)}}}function $(t){const e=getMapDrawData(t,o.value?0:5,o.value?.5:1);if(!e.locs[t])return;const[n,a]=e.locs[t];l=(-n+e.width/2-5)*r,s=(-a+e.height/2-5)*r}function R(t){const e=keycode(t.keyCode);e!==KeyCode.Enter&&e!==KeyCode.Space&&e!==KeyCode.KeyC||C(),e!==KeyCode.Escape&&e!==KeyCode.KeyX&&e!==KeyCode.KeyG||x(),i.value?(e===KeyCode.UpArrow&&V(1),e===KeyCode.DownArrow&&V(-1),e===KeyCode.LeftArrow&&V(-10),e===KeyCode.RightArrow&&V(10),e===KeyCode.PageUp&&V(10),e===KeyCode.PageDown&&V(-10)):(e===KeyCode.LeftArrow&&j("left"),e===KeyCode.RightArrow&&j("right"),e===KeyCode.UpArrow&&j("up"),e===KeyCode.DownArrow&&j("down"),e===KeyCode.PageUp&&V(1),e===KeyCode.PageDown&&V(-1))}let F=!1,K=0;function U(t){t.touches.length>=2&&(F=!0,K=Math.sqrt((t.touches[0].clientX-t.touches[1].clientX)**2+(t.touches[0].clientY-t.touches[1].clientY)**2))}function H(t){t.touches.length<2&&(F=!1)}function W(t){if(!F)return;const e=Math.sqrt((t.touches[0].clientX-t.touches[1].clientX)**2+(t.touches[0].clientY-t.touches[1].clientY)**2);A(e/K),K=e}return onMounted((async()=>{m=document.getElementById("fly-map"),g=m.getContext("2d"),b=document.getElementById("fly-thumbnail"),f=b.getContext("2d");const t=getComputedStyle(m),e=getComputedStyle(b);m.width=parseFloat(t.width)*devicePixelRatio,m.height=parseFloat(t.height)*devicePixelRatio,b.width=parseFloat(e.width)*devicePixelRatio,b.height=parseFloat(e.width)*devicePixelRatio,Array.from(document.getElementsByClassName("fly-settings")).forEach((t=>{t.addEventListener("click",(e=>t.blur()))})),$(a.value),M(),useDrag(m,I,((t,e)=>{O=t,P=e,E=t,L=e}),(()=>{setTimeout((()=>{N=!1}),50)}),!0),useWheel(m,((t,e)=>{A(.1*-Math.sign(e)+1)})),await S(50),core.plugin.transition.value&&await S(600),document.addEventListener("keyup",R),m.addEventListener("touchstart",U),m.addEventListener("touchend",H),m.addEventListener("touchend",W)})),onUnmounted((()=>{cancelGlobalDrag(I),document.removeEventListener("keyup",R)})),(t,a)=>{const r=__unplugin_components_0$1,l=__unplugin_components_1;return openBlock(),createElementBlock("div",_hoisted_1$6,[createBaseVNode("div",_hoisted_2$4,[createBaseVNode("span",{class:"button-text",onClick:x},[createVNode(unref(LeftOutlined)),createTextVNode(" 返回游戏")])]),createBaseVNode("div",_hoisted_3$4,[createBaseVNode("div",_hoisted_4$3,[_hoisted_5$3,createVNode(r,{class:"fly-settings",checked:o.value,"onUpdate:checked":a[0]||(a[0]=t=>o.value=t),"checked-children":"ON","un-checked-children":"OFF"},null,8,["checked"])]),unref(isMobile)?createCommentVNode("",!0):(openBlock(),createElementBlock("div",_hoisted_6$3,[_hoisted_7$3,createVNode(r,{class:"fly-settings",checked:i.value,"onUpdate:checked":a[1]||(a[1]=t=>i.value=t),"checked-children":"ON","un-checked-children":"OFF"},null,8,["checked"])]))]),createBaseVNode("div",_hoisted_8$2,[createBaseVNode("div",_hoisted_9$2,[createVNode(Scroll,{id:"fly-area"},{default:withCtx((()=>[createBaseVNode("div",_hoisted_10$2,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(e),((t,e)=>(openBlock(),createElementBlock("span",{selected:n.value===e,class:"selectable",onClick:t=>n.value=e},toDisplayString(e),9,_hoisted_11$2)))),256))])])),_:1}),createVNode(l,{type:"vertical",dashed:"",id:"divider-left"}),createBaseVNode("div",{id:"fly-map-div"},[createBaseVNode("canvas",{id:"fly-map",onClick:T})])]),createVNode(l,{id:"divider-right",dashed:"",type:unref(isMobile)?"horizontal":"vertical"},null,8,["type"]),createBaseVNode("div",_hoisted_12$1,[createBaseVNode("canvas",{id:"fly-thumbnail",onClick:C}),createBaseVNode("div",_hoisted_13$1,[createVNode(unref(DoubleLeftOutlined),{onClick:a[2]||(a[2]=t=>V(-10)),class:"button-text"}),createVNode(unref(LeftOutlined),{onClick:a[3]||(a[3]=t=>V(-1)),class:"button-text"}),createBaseVNode("span",_hoisted_14$1,toDisplayString(unref(v)),1),createVNode(unref(RightOutlined),{onClick:a[4]||(a[4]=t=>V(1)),class:"button-text"}),createVNode(unref(DoubleRightOutlined),{onClick:a[5]||(a[5]=t=>V(10)),class:"button-text"})])])])])}}}),fly_vue_vue_type_style_index_0_scoped_581299e6_lang="",Fly=_export_sfc(_sfc_main$6,[["__scopeId","data-v-581299e6"]]),bookOpened=ref(!1),toolOpened=ref(!1),equipOpened=ref(!1),showStatusBar=ref(!1),settingsOpened=ref(!1),descOpened=ref(!1),skillOpened=ref(!1),skillTreeOpened=ref(!1),flyOpened=ref(!1),transition=ref(!0),noClosePanel=ref(!1);let app;const UI_LIST=[[bookOpened,Book],[toolOpened,Toolbox],[equipOpened,Equipbox],[settingsOpened,Settings],[descOpened,Desc],[skillOpened,Skill],[skillTreeOpened,SkillTree],[flyOpened,Fly]],uiStack=ref([]);function init$3(){return app=document.getElementById("root"),UI_LIST.forEach((([t,e])=>{watch(t,(t=>{if(!0===t)uiStack.value.push(markRaw(e)),showApp();else{const t=uiStack.value.findIndex((t=>t===e));1===uiStack.value.length?hideApp(t):uiStack.value.splice(t,1)}}))})),{uiStack:uiStack,transition:transition,bookOpened:bookOpened,toolOpened:toolOpened,equipOpened:equipOpened,showStatusBar:showStatusBar,settingsOpened:settingsOpened,descOpened:descOpened,skillOpened:skillOpened,skillTreeOpened:skillTreeOpened,flyOpened:flyOpened}}async function showApp(){core.lockControl(),transition.value?app.style.transition="all 0.6s linear":app.style.transition="none",app.style.display="flex",await S(50),app.style.opacity="1"}async function hideApp(t){transition.value?(app.style.transition="all 0.6s linear",app.style.opacity="0",await S(600)):(app.style.transition="",app.style.opacity="0"),uiStack.value.splice(t,1),app.style.display="none",noClosePanel.value||core.closePanel(),noClosePanel.value=!1}const status=ref(!1);function init$2(){return{statusBarStatus:status}}const chapterShowed=ref(!1),chapterContent=ref("");function init$1(){return{chapterShowed:chapterShowed,chapterContent:chapterContent}}const ani=new R;ani.register("rect",0);const path1={MT16:[[23,23],[0,23]],MT15:[[63,4],[61,4],[61,5],[58,5],[58,8],[54,8],[54,11],[51,11],[51,8],[45,8],[45,4],[47,4],[47,6],[51,6],[51,5],[52,5],[52,3],[50,3],[50,5],[48,5],[48,3],[35,3],[35,5],[31,5],[31,7],[34,7],[34,9],[31,9],[31,11],[12,11],[12,8],[1,8],[1,7],[0,7]],MT14:[[127,7],[126,7],[126,8],[124,8],[124,7],[115.2,7],[115.2,9.2],[110.2,9.2],[110.2,11],[109.8,11],[109.8,8.8],[111.8,8.8],[111.8,7],[104,7],[104,3],[100,3],[100,4],[98,4],[98,3],[96,3],[96,6],[95,6],[95,7],[88,7],[88,6],[85,6],[85,8],[83,8],[83,9],[81,9],[81,11],[72,11],[72,5],[68,5],[68,8],[67,8],[67,10],[65,10],[65,11],[62,11],[62,9],[60,9],[60,11],[57,11],[57,9],[54,9]]},camera1=[["MT16",0,10,0,1600,C("sin","in")],["MT15",45,0,0,2324,C("sin","in")],["MT15",40,0,2324,1992,C("sin","out")],["MT15",41,0,5312,498,C("sin","in-out")],["MT15",37,0,5810,1660,C("sin","in")],["MT15",29,0,7470,830,C("sin","out")],["MT15",25,0,11454,996,C("sin","in")],["MT15",12,0,12450,996,j()],["MT15",0,0,13446,1470,C("sin","out")],["MT14",109,0,0,1328,C("sin","in")],["MT14",104,0,1328,332,C("sin","out")],["MT14",92,0,5478,2822,C("sin","in")],["MT14",84,0,8300,1992,j()],["MT14",74,0,10292,2988,j()],["MT14",65,0,13280,2988,j()],["MT14",58,0,16268,1992,j()],["MT14",47,0,18260,3320,j()],["MT14",36,0,21580,3320,j()],["MT14",0,0,24900,9960,j()]];function init1(){const t=[];["MT13","MT14","MT15"].forEach((e=>{core.status.maps[e].cannotMoveDirectly=!0,core.extractBlocks(e),core.status.maps[e].blocks.forEach((n=>{["animates","items"].includes(n.event.cls)&&!n.event.id.endsWith("Portal")&&t.push([n.x,n.y,e])}))})),t.forEach((t=>{core.removeBlock(...t)}))}function chaseShake(t){t.ani.mode(shake2(2/32,O(1,1,1,1,1,1,1,1,1,1,1,1)),!0).time(5e4).shake(1,0)}async function wolfMove(t){core.moveBlock(23,17,Array(6).fill("down"),80),await S(550),core.setBlock(508,23,23)}function judgeFail1(t){t.ani.ticker.add((()=>{core.status.hero.loc.x>core.bigmap.offsetX/32+17&&(t.end(),ani.time(750).apply("rect",0),core.lose("逃跑失败"))}))}function drawBack(t){t.on("MT15",0,(()=>{ani.mode(C("sin","out")).time(1500).absolute().apply("rect",64);const t=core.createCanvas("chaseBack",0,0,480,480,120);t.fillStyle="#000";const e=()=>{t||ani.ticker.remove(e),core.clearMap(t),t.fillRect(0,0,480,ani.value.rect),t.fillRect(0,480,480,-ani.value.rect)};ani.ticker.add(e)}))}function para1(t){t.on("MT15",830,(()=>{for(let t=53;t<58;t++)for(let e=3;e<8;e++)core.setBlock(336,t,e);core.drawAnimate("explosion3",55,5),core.drawAnimate("stone",55,5)})),t.on("MT15",1080,(()=>{core.setBlock(336,58,9),core.setBlock(336,59,9),core.drawAnimate("explosion1",58,9),core.drawAnimate("explosion1",59,9)})),t.on("MT15",1190,(()=>{core.setBlock(336,53,8),core.setBlock(336,52,8),core.drawAnimate("explosion1",53,8),core.drawAnimate("explosion1",52,8)})),t.on("MT15",1580,(()=>{core.setBlock(336,51,7),core.drawAnimate("explosion1",51,7)})),t.on("MT15",1830,(()=>{core.setBlock(336,47,7),core.setBlock(336,49,9),core.drawAnimate("explosion1",49,9),core.drawAnimate("explosion1",47,7)}))}function para2(t){t.onHeroLoc("MT15",(()=>{core.setBlock(336,45,9),core.drawAnimate("explosion1",45,9)}),45,8),t.onHeroLoc("MT15",(()=>{core.setBlock(336,44,6),core.drawAnimate("explosion1",44,6)}),45,6),t.onHeroLoc("MT15",(()=>{core.setBlock(336,44,4),core.drawAnimate("explosion1",44,4),core.drawAnimate("explosion1",48,6),core.removeBlock(48,6)}),45,4),t.onHeroLoc("MT15",(()=>{core.setBlock(336,41,4),core.setBlock(336,32,6),core.drawAnimate("explosion1",41,4),core.drawAnimate("explosion1",32,6)}),41,3),t.onHeroLoc("MT15",(()=>{core.drawAnimate("explosion3",37,7),core.vibrate("vertical",1e3,25,10);for(let t=36;t<42;t++)for(let e=4;e<11;e++)core.setBlock(336,t,e)}),35,3),t.onHeroLoc("MT15",(()=>{core.vibrate("vertical",1e4,25,1),core.removeBlock(34,8),core.removeBlock(33,8),core.drawAnimate("explosion1",34,8),core.drawAnimate("explosion1",33,8)}),31,5),t.onHeroLoc("MT15",(()=>{core.setBlock(336,32,9),core.drawAnimate("explosion1",32,9)}),33,7),t.onHeroLoc("MT15",(()=>{core.removeBlock(32,9),core.drawAnimate("explosion1",32,9)}),[33,34,34],9);for(let e=19;e<31;e++){const n=e;t.onHeroLoc("MT15",(()=>{core.setBlock(336,n+1,11),core.drawAnimate("explosion1",n+1,11)}),n,11)}}function para3(t){t.onHeroLoc("MT14",(()=>{core.setBlock(336,126,6),core.setBlock(336,124,6),core.setBlock(336,124,9),core.setBlock(336,126,9),core.drawAnimate("explosion1",126,6),core.drawAnimate("explosion1",124,6),core.drawAnimate("explosion1",124,9),core.drawAnimate("explosion1",126,9)}),126,7),t.onHeroLoc("MT14",(()=>{core.setBlock(508,127,7),core.jumpBlock(127,7,112,7,500,!0),setTimeout((()=>{core.setBlock(509,112,7)}),520),core.drawHeroAnimate("amazed"),core.setBlock(336,121,6),core.setBlock(336,122,6),core.setBlock(336,120,8),core.setBlock(336,121,8),core.setBlock(336,122,8),core.drawAnimate("explosion1",121,6),core.drawAnimate("explosion1",122,6),core.drawAnimate("explosion1",120,8),core.drawAnimate("explosion1",121,8),core.drawAnimate("explosion1",122,8)}),123,7),t.onHeroLoc("MT14",(()=>{core.setBlock(336,109,11),core.removeBlock(112,8),core.drawAnimate("explosion1",109,11),core.drawAnimate("explosion1",112,8),core.insertAction([{type:"moveHero",time:400,steps:["backward:1"]}]),t.onHeroLoc("MT14",(()=>{core.jumpBlock(112,7,110,4,500,!0),core.drawHeroAnimate("amazed"),setTimeout((()=>{core.setBlock(506,110,4)}),540)}),112,8)}),110,10),t.onHeroLoc("MT14",(()=>{core.setBlock(336,117,6),core.setBlock(336,116,6),core.setBlock(336,115,6),core.setBlock(336,114,6),core.setBlock(336,117,8),core.setBlock(336,116,8),core.drawAnimate("explosion1",117,6),core.drawAnimate("explosion1",116,6),core.drawAnimate("explosion1",115,6),core.drawAnimate("explosion1",114,6),core.drawAnimate("explosion1",116,8),core.drawAnimate("explosion1",117,8)}),118,7),t.onHeroLoc("MT14",(()=>{core.setBlock(336,112,8),core.setBlock(336,113,7),core.drawAnimate("explosion1",112,8),core.drawAnimate("explosion1",113,7)}),112,7),t.onHeroLoc("MT14",(()=>{for(let t=111;t<=115;t++)core.setBlock(336,t,10),core.drawAnimate("explosion1",t,10);core.setBlock(336,112,8),core.drawAnimate("explosion1",112,8)}),115,7),t.onHeroLoc("MT14",(()=>{core.jumpBlock(97,4,120,-3,2e3);for(let t=109;t<=120;t++)for(let e=3;e<=11;e++)7!=e&&core.setBlock(336,t,e);core.drawAnimate("explosion2",119,7),core.removeBlock(105,7),core.drawAnimate("explosion1",105,7)}),110,7),t.onHeroLoc("MT14",(()=>{core.setBlock(336,95,3),core.setBlock(336,93,6),core.drawAnimate("explosion1",95,3),core.drawAnimate("explosion1",93,6)}),97,3),t.onHeroLoc("MT14",(()=>{core.setBlock(336,87,4),core.setBlock(336,88,5),core.drawAnimate("explosion1",87,4),core.drawAnimate("explosion1",88,5)}),88,6),t.onHeroLoc("MT14",(()=>{core.setBlock(336,84,6),core.setBlock(336,85,5),core.setBlock(336,86,8),core.drawAnimate("explosion1",84,6),core.drawAnimate("explosion1",85,5),core.drawAnimate("explosion1",86,8)}),86,6),t.onHeroLoc("MT14",(()=>{core.setBlock(336,81,8),core.setBlock(336,82,11),core.drawAnimate("explosion1",81,8),core.drawAnimate("explosion1",82,11)}),81,9),t.onHeroLoc("MT14",(()=>{core.setBlock(336,73,8),core.setBlock(336,72,4),core.drawAnimate("explosion1",73,8),core.drawAnimate("explosion1",72,4)}),72,11),t.onHeroLoc("MT14",(()=>{for(let t=74;t<86;t++)for(let e=3;e<12;e++)core.setBlock(336,t,e);core.drawAnimate("explosion2",79,7),core.vibrate("vertical",4e3,25,15)}),71,7),t.onHeroLoc("MT14",(()=>{core.setBlock(336,68,4),core.setBlock(336,67,6),core.drawAnimate("explosion1",68,4),core.drawAnimate("explosion1",67,6)}),68,5),t.onHeroLoc("MT14",(()=>{for(let t=65;t<=72;t++)for(let e=3;e<=9;e++)core.setBlock(336,t,e);core.setBlock(336,72,10),core.setBlock(336,72,11),core.drawAnimate("explosion3",69,5)}),67,10),t.onHeroLoc("MT14",(()=>{core.setBlock(336,63,9),core.setBlock(336,60,8),core.setBlock(336,56,11),core.drawAnimate("explosion1",63,9),core.drawAnimate("explosion1",60,8),core.drawAnimate("explosion1",56,11)}),64,11),t.onHeroLoc("MT14",(()=>{for(let t=58;t<=64;t++)for(let e=3;e<=11;e++)core.setBlock(336,t,e);core.drawAnimate("explosion2",61,7)}),57,9);for(let e=21;e<49;e++)t.onHeroLoc("MT14",(()=>{for(let t=3;t<=11;t++)core.setBlock(336,e+4,t),core.drawAnimate("explosion1",e+4,t)}),e);t.onHeroLoc("MT14",(async()=>{flags.finishChase1=!0,core.autoFixRouteBoss(),core.showStatusBar(),ani.time(750).apply("rect",0),t.end(),await S(750),ani.ticker.destroy(),core.deleteCanvas("chaseBack")}),21)}function getChaseDataByIndex(t){if(1===t)return init1(),{camera:camera1,fns:[para1,para2,para3,chaseShake,wolfMove,drawBack,judgeFail1],path:path1};throw new ReferenceError("Deliver wrong chase index.")}function init(){return{startChase:startChase}}function shake2(t,e){let n=0;return a=>(n+=Math.PI/2,Math.sin(n)*t*e(a))}class Chase{constructor(t,e,n,a=!1){_defineProperty(this,"ani",new R),_defineProperty(this,"path",void 0),_defineProperty(this,"showPath",!1),this.path=t,flags.__lockViewport__=!0,flags.onChase=!0,flags.chaseTime={[core.status.floorId]:Date.now()},this.ani.absolute().time(0).move(core.bigmap.offsetX/32,core.bigmap.offsetY/32),e.forEach((t=>t(this)));const o=[],i=core.createCanvas("chasePath",0,0,0,0,35);for(const[r,l,s,c,d,p,u]of n)o.includes(r)||(this.on(r,0,(()=>{flags.__lockViewport__=!1,core.drawHero(),flags.__lockViewport__=!0,this.ani.time(0).move(core.bigmap.offsetX/32,core.bigmap.offsetY/32)}),!0),o.push(r)),has(u)?this.on(r,c,(()=>{this.ani.time(d).mode(p).moveAs(u)})):this.on(r,c,(()=>{this.ani.time(d).mode(p).move(l,s)}));if(this.ani.ticker.add((()=>{flags.floorChanging||(core.setViewport(32*this.ani.x,32*this.ani.y),core.relocateCanvas(i,32*-this.ani.x,32*-this.ani.y))})),a)for(const[r,l]of Object.entries(t))this.on(r,0,(()=>{const t=core.status.maps[r];core.resizeCanvas(i,32*t.width,32*t.height),i.beginPath(),i.moveTo(32*l[0][0]+16,32*l[1][1]+24),i.lineJoin="round",i.lineWidth=4,i.strokeStyle="cyan",i.globalAlpha=.3,l.forEach(((t,e,n)=>{if(0===e)return;const[a,o]=t;i.lineTo(32*a+16,32*o+24)})),i.stroke()}))}on(t,e,n,a=!1){const o=()=>{flags.chaseTime?.[t]&&Date.now()-(flags.chaseTime?.[t]??0)>=e&&(n(this),this.ani.ticker.remove(o))};this.ani.ticker.add(o,a)}onHeroLoc(t,e,n,a,o=0){if(1===o)return"number"==typeof n&&(n=[n]),"number"==typeof a&&(a=[a]),void n.forEach((n=>{a.forEach((a=>{this.onHeroLoc(t,e,n,a)}))}));const i=()=>{if((()=>{if(core.status.floorId!==t)return!1;if(has(n))if("number"==typeof n){if(core.status.hero.loc.x!==n)return!1}else if(!n.includes(core.status.hero.loc.x))return!1;if(has(a))if("number"==typeof a){if(core.status.hero.loc.y!==a)return!1}else if(!a.includes(core.status.hero.loc.y))return!1;return!0})()){e(this);try{this.ani.ticker.remove(i)}catch{}}};this.ani.ticker.add(i)}setPathShowStatus(t){this.showPath=t}end(){this.ani.ticker.destroy(),delete flags.onChase,delete flags.chase,flags.__lockViewport__=!1,core.deleteCanvas("chasePath")}}async function startChase(t){const e=getChaseDataByIndex(t);flags.chaseIndex=t,flags.onChase=!0,await S(20),flags.chase=new Chase(e.path,e.fns,e.camera,0===flags.chaseHard)}function forward(){const t=[init$a(),init$3(),init$7(),init$8(),init$9(),init$2(),init$6(),init$5(),init$1(),init$4(),init()];!async function(){for(const e of t)for(const t in e){const n=e[t];t in core.plugin||(core.plugin[t]=n),n instanceof Function&&(t in core||t.startsWith("_")||(core[t]=n))}console.log("插件转发完成!")}()}main.forward=forward;const _hoisted_1$5={id:"ui"},_sfc_main$5=defineComponent({__name:"App",setup:t=>(t,e)=>(openBlock(),createElementBlock("div",_hoisted_1$5,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(uiStack),(t=>(openBlock(),createBlock(resolveDynamicComponent(t))))),256))]))}),App_vue_vue_type_style_index_0_scoped_9668aeb3_lang="",App=_export_sfc(_sfc_main$5,[["__scopeId","data-v-9668aeb3"]]),_imports_0="/HumanBreak/project/images/skill.png",_imports_1="/HumanBreak/project/images/hp.png",_imports_2="/HumanBreak/project/images/atk.png",_imports_3="/HumanBreak/project/images/def.png",_imports_4="/HumanBreak/project/images/IQ.png",_imports_5="/HumanBreak/project/images/money.png",_imports_6="/HumanBreak/project/images/exp.png",_hoisted_1$4=["id"],_hoisted_2$3=["id"],_hoisted_3$3=["id","selected"],_hoisted_4$2=["id","selected"],_hoisted_5$2=["id","selected"],_hoisted_6$2=["id","selected"],_hoisted_7$2=["id","selected"],_sfc_main$4=defineComponent({__name:"box",props:{resizable:{type:Boolean},left:null,top:null,width:null,height:null},emits:["update:left","update:top","update:width","update:height"],setup(t,{emit:e}){const n=t,a=(1e8*Math.random()).toFixed(0),o=ref(!1);let i,r,l,s,c,d,p=0;const u=ref(isMobile?window.innerWidth-100:.175*window.innerWidth),h=ref(isMobile?250:window.innerHeight-100),m=ref(50),g=ref(50);async function b(){o.value=!0,p=window.setTimeout((()=>{o.value=!1}),4e3)}watch(m,(t=>e("update:left",t))),watch(g,(t=>e("update:top",t))),watch(u,(t=>e("update:width",t))),watch(h,(t=>e("update:height",t)));let f=0,x=0;function v(t,e){const n=getComputedStyle(i),a=parseFloat(n.left),r=parseFloat(n.top);m.value=a+t-f,g.value=r+e-x,i.style.left=`${m.value}px`,i.style.top=`${g.value}px`,o.value=!0,clearTimeout(p),f=t,x=e}let w=m.value+u.value;function y(t,e){i.style.left=`${t}px`,u.value=w-t,m.value=t,i.style.width=`${u.value}px`}let k=g.value+h.value;function _(t,e){i.style.top=`${e}px`,h.value=k-e,g.value=e,i.style.height=`${h.value}px`}function z(t,e){const n=getComputedStyle(i);u.value=t-parseFloat(n.left),i.style.width=`${u.value}px`}function M(t,e){const n=getComputedStyle(i);h.value=e-parseFloat(n.top),i.style.height=`${h.value}px`}function C(){i=document.getElementById(`box-${a}`),document.getElementById(`box-move-${a}`),r=document.getElementById(`border-left-${a}`),s=document.getElementById(`border-top-${a}`),l=document.getElementById(`border-right-${a}`),c=document.getElementById(`border-bottom-${a}`),d=document.getElementById(`box-drag-${a}`),i&&(has(n.left)&&(m.value=n.left),has(n.top)&&(g.value=n.top),has(n.width)&&(u.value=n.width),has(n.height)&&(h.value=n.height),i.style.left=`${m.value}px`,i.style.top=`${g.value}px`,i.style.width=`${u.value}px`,i.style.height=`${h.value}px`)}return onUpdated(C),onMounted((async()=>{await S(50),C(),i&&(useDrag(d,v,((t,e)=>{f=t,x=e}),(()=>{o.value=!1}),!0),n.resizable&&(useDrag(r,y,((t,e)=>{w=m.value+u.value}),void 0,!0),useDrag(s,_,((t,e)=>{k=g.value+h.value}),void 0,!0),useDrag(l,z,void 0,void 0,!0),useDrag(c,M,void 0,void 0,!0)))})),onUnmounted((()=>{cancelGlobalDrag(v),n.resizable&&(cancelGlobalDrag(y),cancelGlobalDrag(_),cancelGlobalDrag(z),cancelGlobalDrag(M))})),(e,n)=>(openBlock(),createElementBlock("div",{id:`box-${unref(a)}`,class:"box"},[createBaseVNode("div",{id:`box-main-${unref(a)}`,class:"box-main",onClick:b},[renderSlot(e.$slots,"default",{},void 0,!0)],8,_hoisted_2$3),createBaseVNode("div",{id:`box-move-${unref(a)}`,class:"box-move",selected:o.value},[createVNode(unref(DragOutlined),{id:`box-drag-${unref(a)}`,class:"box-drag",style:{right:"0",bottom:"0",position:"absolute"}},null,8,["id"])],8,_hoisted_3$3),createBaseVNode("div",{class:"border border-vertical border-left",id:`border-left-${unref(a)}`,selected:o.value&&t.resizable},null,8,_hoisted_4$2),createBaseVNode("div",{class:"border border-horizontal border-top",id:`border-top-${unref(a)}`,selected:o.value&&t.resizable},null,8,_hoisted_5$2),createBaseVNode("div",{class:"border border-vertical border-right",id:`border-right-${unref(a)}`,selected:o.value&&t.resizable},null,8,_hoisted_6$2),createBaseVNode("div",{class:"border border-horizontal border-bottom",id:`border-bottom-${unref(a)}`,selected:o.value&&t.resizable},null,8,_hoisted_7$2)],8,_hoisted_1$4))}}),box_vue_vue_type_style_index_0_scoped_c65890c4_lang="",Box=_export_sfc(_sfc_main$4,[["__scopeId","data-v-c65890c4"]]),_withScopeId$1=t=>(pushScopeId("data-v-8d174b23"),t=t(),popScopeId(),t),_hoisted_1$3={id:"status-bar"},_hoisted_2$2={id:"status-div"},_hoisted_3$2={id:"status-lv"},_hoisted_4$1={id:"status-skill",class:"status-item"},_hoisted_5$1=_withScopeId$1((()=>createBaseVNode("img",{src:_imports_0,class:"status-icon"},null,-1))),_hoisted_6$1={id:"status-hp",class:"status-item"},_hoisted_7$1=_withScopeId$1((()=>createBaseVNode("img",{src:_imports_1,class:"status-icon"},null,-1))),_hoisted_8$1={class:"status-item-bold"},_hoisted_9$1={id:"status-hpmax",class:"status-extra status-item-bold"},_hoisted_10$1={key:0,id:"status-spring",class:"status-extra"},_hoisted_11$1={id:"status-atk",class:"status-item"},_hoisted_12=_withScopeId$1((()=>createBaseVNode("img",{src:_imports_2,class:"status-icon"},null,-1))),_hoisted_13={class:"status-item-bold"},_hoisted_14={id:"status-mana",class:"status-extra status-item-bold"},_hoisted_15={id:"status-def",class:"status-item status-item-bold"},_hoisted_16=_withScopeId$1((()=>createBaseVNode("img",{src:_imports_3,class:"status-icon"},null,-1))),_hoisted_17={id:"status-mdef",class:"status-item status-item-bold"},_hoisted_18=_withScopeId$1((()=>createBaseVNode("img",{src:_imports_4,class:"status-icon"},null,-1))),_hoisted_19={id:"status-money",class:"status-item status-item-bold"},_hoisted_20=_withScopeId$1((()=>createBaseVNode("img",{src:_imports_5,class:"status-icon"},null,-1))),_hoisted_21={id:"status-exp",class:"status-item status-item-bold"},_hoisted_22=_withScopeId$1((()=>createBaseVNode("img",{src:_imports_6,class:"status-icon"},null,-1))),_hoisted_23={id:"status-key",class:"status-item status-item-bold"},_hoisted_24={style:{color:"#fca","padding-left":"10%"}},_hoisted_25={style:{color:"#aad"}},_hoisted_26={style:{color:"#f88","padding-right":"10%"}},_hoisted_27={key:0,class:"status-item"},_hoisted_28={key:1,class:"status-item"},_sfc_main$3=defineComponent({__name:"statusBar",setup(t){const e=ref(isMobile?window.innerWidth-100:.175*window.innerWidth),n=ref(isMobile?250:window.innerHeight-100),a=ref(!1),o=core.formatBigNumber;watch(e,(t=>a.value=!a.value)),watch(n,(t=>a.value=!a.value));const i=shallowReactive({}),r=shallowReactive([]),l=ref(),s=ref(),c=ref("无"),d=ref(0),p=ref(),u=ref(core.getFlag("chapter",0)>0),h=["hp","atk","def","mdef","hpmax","mana","money","exp","lv"];function m(t){t.stopPropagation(),core.useItem("skill1")}function g(t){t.stopPropagation(),core.useItem("cross")}function b(t){t.stopPropagation(),core.ui._drawViewMaps()}return watch(status,(function(){h.forEach((t=>{i[t]=core.getRealStatus(t)})),r[0]=core.itemCount("yellowKey"),r[1]=core.itemCount("blueKey"),r[2]=core.itemCount("redKey"),l.value=core.status.thisMap?.title,s.value=core.getLvName(i.lv),flags.blade&&flags.bladeOn?(c.value="断灭之刃",i.atk*=1+core.getSkillLevel(2)/10,i.def*=1-core.getSkillLevel(2)/10):flags.shield&&flags.shieldOn?(c.value="铸剑为盾",i.def*=1+core.getSkillLevel(10)/10,i.atk*=1-core.getSkillLevel(10)/10):c.value="无";d.value=core.getNextLvUpNeed()??0,core.hasFlag("spring")&&(p.value=50-flags.springCount);u.value=core.getFlag("chapter",0)>0})),(t,h)=>(openBlock(),createElementBlock("div",_hoisted_1$3,[createVNode(Box,{resizable:!0,width:e.value,"onUpdate:width":h[1]||(h[1]=t=>e.value=t),height:n.value,"onUpdate:height":h[2]||(h[2]=t=>n.value=t)},{default:withCtx((()=>[createVNode(Scroll,{id:"status-main",update:a.value,"onUpdate:update":h[0]||(h[0]=t=>a.value=t),"no-scroll":!0},{default:withCtx((()=>[createBaseVNode("div",_hoisted_2$2,[createBaseVNode("span",{id:"status-floor",onClick:b,class:"button-text"},toDisplayString(l.value),1),createBaseVNode("span",_hoisted_3$2,toDisplayString(s.value),1),createBaseVNode("div",_hoisted_4$1,[_hoisted_5$1,createBaseVNode("span",null,toDisplayString(c.value),1)]),createBaseVNode("div",_hoisted_6$1,[_hoisted_7$1,createBaseVNode("span",_hoisted_8$1,toDisplayString(unref(o)(unref(i).hp)),1),createBaseVNode("span",_hoisted_9$1,"+"+toDisplayString(unref(o)(unref(i).hpmax))+"/t",1),unref(has)(p.value)?(openBlock(),createElementBlock("span",_hoisted_10$1,"剩余"+toDisplayString(p.value),1)):createCommentVNode("",!0)]),createBaseVNode("div",_hoisted_11$1,[_hoisted_12,createBaseVNode("span",_hoisted_13,toDisplayString(unref(o)(unref(i).atk)),1),createBaseVNode("span",_hoisted_14,"+"+toDisplayString(unref(o)(unref(i).mana)),1)]),createBaseVNode("div",_hoisted_15,[_hoisted_16,createBaseVNode("span",null,toDisplayString(unref(o)(unref(i).def)),1)]),createBaseVNode("div",_hoisted_17,[_hoisted_18,createBaseVNode("span",null,toDisplayString(unref(o)(unref(i).mdef)),1)]),createBaseVNode("div",_hoisted_19,[_hoisted_20,createBaseVNode("span",null,toDisplayString(unref(o)(unref(i).money)),1)]),createBaseVNode("div",_hoisted_21,[_hoisted_22,createBaseVNode("span",null,toDisplayString(unref(o)(d.value)),1)]),createBaseVNode("div",_hoisted_23,[createBaseVNode("span",_hoisted_24,toDisplayString(unref(r)[0]?.toString().padStart(2,"0")),1),createBaseVNode("span",_hoisted_25,toDisplayString(unref(r)[1]?.toString().padStart(2,"0")),1),createBaseVNode("span",_hoisted_26,toDisplayString(unref(r)[2]?.toString().padStart(2,"0")),1)]),u.value?(openBlock(),createElementBlock("div",_hoisted_27,[createBaseVNode("span",{id:"skill-tree",class:"button-text",onClick:m},"技能树")])):createCommentVNode("",!0),u.value?(openBlock(),createElementBlock("div",_hoisted_28,[createBaseVNode("span",{id:"status-skill",class:"button-text",onClick:g},"查看技能")])):createCommentVNode("",!0)])])),_:1},8,["update"])])),_:1},8,["width","height"])]))}}),statusBar_vue_vue_type_style_index_0_scoped_8d174b23_lang="",StatusBar=_export_sfc(_sfc_main$3,[["__scopeId","data-v-8d174b23"]]),_hoisted_1$2={id:"marked-enemy"},_hoisted_2$1={class:"marked-main"},_hoisted_3$1={class:"marked-info"},_hoisted_4={class:"marked-name marked-item"},_hoisted_5={class:"marked-damage marked-item"},_hoisted_6={class:"marked-critical marked-item"},_hoisted_7={class:"marked-critical-damage marked-item"},_hoisted_8={class:"marked-def marked-item"},_hoisted_9={class:"marked-button"},_hoisted_10=["onClick"],_hoisted_11=["onClick"],_sfc_main$2=defineComponent({__name:"markedEnemy",setup(t){const e=core.status.thisMap?.ratio??1;let n=getMarkedEnemy();watch(checkMarkedStatus,(function(){n.push(...n.splice(0,n.length));for(const t in a)n.includes(t)||delete a[t]}));const a=reactive({});function o(t){return has(a[t])||(a[t]={left:window.innerWidth-300,top:100,width:200,height:150,hidden:!1}),a[t]}function i(t){return core.formatBigNumber(core.getDamageInfo(t)?.damage)??"???"}function r(t){return core.nextCriticals(t,1)[0]?.map((t=>core.formatBigNumber(t)))??[0,0]}function l(t){return core.formatBigNumber(core.getDefDamage(t,e))}return(t,a)=>(openBlock(),createElementBlock("div",_hoisted_1$2,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(n),(t=>(openBlock(),createElementBlock("div",null,[o(t).hidden?createCommentVNode("",!0):(openBlock(),createBlock(Box,{key:t,left:o(t).left,"onUpdate:left":e=>o(t).left=e,top:o(t).top,"onUpdate:top":e=>o(t).top=e,width:o(t).width,"onUpdate:width":e=>o(t).width=e,height:o(t).height,"onUpdate:height":e=>o(t).height=e,resizable:!0},{default:withCtx((()=>[createVNode(Scroll,{class:"box-scroll","no-scroll":!0},{default:withCtx((()=>{return[createBaseVNode("div",_hoisted_2$1,[createBaseVNode("div",_hoisted_3$1,[createVNode(_sfc_main$l,{id:t,width:24,height:24},null,8,["id"]),createBaseVNode("span",_hoisted_4,toDisplayString((n=t,core.material.enemys[n].name)),1)]),createBaseVNode("span",_hoisted_5,"伤害:"+toDisplayString(i(t)),1),createBaseVNode("span",_hoisted_6,"临界:"+toDisplayString(r(t)[0]),1),createBaseVNode("span",_hoisted_7,"减伤:"+toDisplayString(r(t)[1]),1),createBaseVNode("span",_hoisted_8,toDisplayString(unref(e))+"防:"+toDisplayString(l(t)),1),createBaseVNode("div",_hoisted_9,[createBaseVNode("span",{class:"marked-hide button-text",onClick:withModifiers((e=>o(t).hidden=!0),["stop"])},"隐藏盒子",8,_hoisted_10),createBaseVNode("span",{class:"marked-cancel button-text",onClick:withModifiers((e=>unref(unmarkEnemy)(t)),["stop"])},"取消标记",8,_hoisted_11)])])];var n})),_:2},1024)])),_:2},1032,["left","onUpdate:left","top","onUpdate:top","width","onUpdate:width","height","onUpdate:height"]))])))),256))]))}}),markedEnemy_vue_vue_type_style_index_0_scoped_5d5d9f17_lang="",MarkedEnemy=_export_sfc(_sfc_main$2,[["__scopeId","data-v-5d5d9f17"]]),_withScopeId=t=>(pushScopeId("data-v-74e3c165"),t=t(),popScopeId(),t),_hoisted_1$1={id:"chapter"},_hoisted_2=_withScopeId((()=>createBaseVNode("canvas",{id:"chapter-back"},null,-1))),_hoisted_3={id:"chapter-text"},_sfc_main$1=defineComponent({__name:"chapter",props:{chapter:null},setup(t){const e=t;let n,a,o;return onMounted((async()=>{n=document.getElementById("chapter-back"),a=n.getContext("2d"),o=document.getElementById("chapter-text");const t=new R,i=window.innerWidth*devicePixelRatio,r=window.innerHeight*devicePixelRatio;a.font="5vh scroll";const l=a.measureText(e.chapter).width,s=.05*r;t.register("rect",0),t.register("line",-10),t.register("lineOpacity",1),t.register("rect2",r/2),t.register("text",window.innerWidth+10+l),n.width=i,n.height=r,n.style.width=`${window.innerWidth}px`,n.style.height=`${window.innerHeight}px`,o.style.left=`${i+10}px`,o.style.top=window.innerHeight/2-.025*r+"px",o.style.height=.05*r+"px",o.style.width=`${l}px`;let c=!1,d=!1;t.ticker.add((e=>{has(e)&&!isNaN(e)&&(d?(e>=4050&&(chapterShowed.value=!1,t.ticker.destroy()),!c&&e>=1500&&(c=!0,core.playSound("chapter.mp3")),a.restore(),a.save(),o.style.left=`${t.value.text}px`,a.fillStyle="#000",a.clearRect(0,0,i,r),e<=2e3?(a.fillRect(0,r/2,i,-t.value.rect),a.fillRect(0,r/2,i,t.value.rect)):e>=2e3&&e<=3050&&(a.fillRect(0,0,i,t.value.rect2),a.fillRect(0,r,i,-t.value.rect2)),a.shadowColor="#fff",a.shadowBlur=3,a.shadowOffsetX=0,a.shadowOffsetY=0,a.lineWidth=3,a.strokeStyle="#fff",a.fillStyle="#fff",a.globalAlpha=t.value.lineOpacity,a.beginPath(),a.moveTo(0,r/2-s),a.lineTo(t.value.line,r/2-s),a.stroke(),a.beginPath(),a.moveTo(i,r/2+s),a.lineTo(i-t.value.line,r/2+s),a.stroke(),a.shadowBlur=0,a.filter="blur(5px)",a.beginPath(),a.arc(t.value.line,r/2-s,10,0,2*Math.PI),a.fill(),a.beginPath(),a.arc(i-t.value.line,r/2+s,10,0,2*Math.PI),a.fill()):d=!0)})),t.mode(C("tan","center")).time(3e3).absolute().apply("line",i+10).mode(C("sin","in")).time(1e3).apply("rect",r/2).mode(C("tan","center")).time(3e3).apply("text",2*-l-10),await S(2e3),t.mode(C("sin","in")).time(1e3).apply("rect2",0),await S(1e3),t.mode(C("sin","out")).time(1e3).apply("lineOpacity",0)})),(e,n)=>(openBlock(),createElementBlock("div",_hoisted_1$1,[_hoisted_2,createBaseVNode("span",_hoisted_3,toDisplayString(t.chapter),1)]))}}),chapter_vue_vue_type_style_index_0_scoped_74e3c165_lang="",Chapter=_export_sfc(_sfc_main$1,[["__scopeId","data-v-74e3c165"]]),_hoisted_1={id:"non-ui"},_sfc_main=defineComponent({__name:"App2",setup:t=>(t,e)=>(openBlock(),createElementBlock("div",_hoisted_1,[unref(showStatusBar)?(openBlock(),createBlock(StatusBar,{key:0})):createCommentVNode("",!0),unref(showMarkedEnemy)?(openBlock(),createBlock(MarkedEnemy,{key:1})):createCommentVNode("",!0),unref(chapterShowed)?(openBlock(),createBlock(Chapter,{key:2,chapter:unref(chapterContent)},null,8,["chapter"])):createCommentVNode("",!0)]))}),App2_vue_vue_type_style_index_0_scoped_7a936755_lang="",App2=_export_sfc(_sfc_main,[["__scopeId","data-v-7a936755"]]),styles="",antd_dark="";createApp(App).mount("#root"),createApp(App2).mount("#root2")}}}))})(); diff --git a/assets/index.72c5a971.js b/assets/index.83ced8af.js similarity index 78% rename from assets/index.72c5a971.js rename to assets/index.83ced8af.js index c22c4eb..37e89f6 100644 --- a/assets/index.72c5a971.js +++ b/assets/index.83ced8af.js @@ -15,4 +15,4 @@ var Pt=Object.defineProperty;var Ct=(e,t,i)=>t in e?Pt(e,t,{enumerable:!0,config * Released under the MIT License */class Animator{constructor(){this._request=null,this._charts=new Map,this._running=!1,this._lastDate=void 0}_notify(t,i,n,s){const a=i.listeners[s],r=i.duration;a.forEach(l=>l({chart:t,initial:i.initial,numSteps:r,currentStep:Math.min(n-i.start,r)}))}_refresh(){this._request||(this._running=!0,this._request=requestAnimFrame.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(t=Date.now()){let i=0;this._charts.forEach((n,s)=>{if(!n.running||!n.items.length)return;const a=n.items;let r=a.length-1,l=!1,c;for(;r>=0;--r)c=a[r],c._active?(c._total>n.duration&&(n.duration=c._total),c.tick(t),l=!0):(a[r]=a[a.length-1],a.pop());l&&(s.draw(),this._notify(s,n,t,"progress")),a.length||(n.running=!1,this._notify(s,n,t,"complete"),n.initial=!1),i+=a.length}),this._lastDate=t,i===0&&(this._running=!1)}_getAnims(t){const i=this._charts;let n=i.get(t);return n||(n={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},i.set(t,n)),n}listen(t,i,n){this._getAnims(t).listeners[i].push(n)}add(t,i){!i||!i.length||this._getAnims(t).items.push(...i)}has(t){return this._getAnims(t).items.length>0}start(t){const i=this._charts.get(t);!i||(i.running=!0,i.start=Date.now(),i.duration=i.items.reduce((n,s)=>Math.max(n,s._duration),0),this._refresh())}running(t){if(!this._running)return!1;const i=this._charts.get(t);return!(!i||!i.running||!i.items.length)}stop(t){const i=this._charts.get(t);if(!i||!i.items.length)return;const n=i.items;let s=n.length-1;for(;s>=0;--s)n[s].cancel();i.items=[],this._notify(t,i,Date.now(),"complete")}remove(t){return this._charts.delete(t)}}var animator=new Animator;const transparent="transparent",interpolators={boolean(e,t,i){return i>.5?t:e},color(e,t,i){const n=color(e||transparent),s=n.valid&&color(t||transparent);return s&&s.valid?s.mix(n,i).hexString():t},number(e,t,i){return e+(t-e)*i}};class Animation{constructor(t,i,n,s){const a=i[n];s=resolve([t.to,s,a,t.from]);const r=resolve([t.from,a,s]);this._active=!0,this._fn=t.fn||interpolators[t.type||typeof r],this._easing=effects$1[t.easing]||effects$1.linear,this._start=Math.floor(Date.now()+(t.delay||0)),this._duration=this._total=Math.floor(t.duration),this._loop=!!t.loop,this._target=i,this._prop=n,this._from=r,this._to=s,this._promises=void 0}active(){return this._active}update(t,i,n){if(this._active){this._notify(!1);const s=this._target[this._prop],a=n-this._start,r=this._duration-a;this._start=n,this._duration=Math.floor(Math.max(r,t.duration)),this._total+=a,this._loop=!!t.loop,this._to=resolve([t.to,i,s,t.from]),this._from=resolve([t.from,s,i])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(t){const i=t-this._start,n=this._duration,s=this._prop,a=this._from,r=this._loop,l=this._to;let c;if(this._active=a!==l&&(r||i1?2-c:c,c=this._easing(Math.min(1,Math.max(0,c))),this._target[s]=this._fn(a,l,c)}wait(){const t=this._promises||(this._promises=[]);return new Promise((i,n)=>{t.push({res:i,rej:n})})}_notify(t){const i=t?"res":"rej",n=this._promises||[];for(let s=0;s{const a=t[s];if(!isObject(a))return;const r={};for(const l of i)r[l]=a[l];(isArray(a.properties)&&a.properties||[s]).forEach(l=>{(l===s||!n.has(l))&&n.set(l,r)})})}_animateOptions(t,i){const n=i.options,s=resolveTargetOptions(t,n);if(!s)return[];const a=this._createAnimations(s,n);return n.$shared&&awaitAll(t.options.$animations,n).then(()=>{t.options=n},()=>{}),a}_createAnimations(t,i){const n=this._properties,s=[],a=t.$animations||(t.$animations={}),r=Object.keys(i),l=Date.now();let c;for(c=r.length-1;c>=0;--c){const d=r[c];if(d.charAt(0)==="$")continue;if(d==="options"){s.push(...this._animateOptions(t,i));continue}const u=i[d];let h=a[d];const f=n.get(d);if(h)if(f&&h.active()){h.update(f,u,l);continue}else h.cancel();if(!f||!f.duration){t[d]=u;continue}a[d]=h=new Animation(f,t,d,u),s.push(h)}return s}update(t,i){if(this._properties.size===0){Object.assign(t,i);return}const n=this._createAnimations(t,i);if(n.length)return animator.add(this._chart,n),!0}}function awaitAll(e,t){const i=[],n=Object.keys(t);for(let s=0;s0||!i&&a<0)return s.index}return null}function updateStacks(e,t){const{chart:i,_cachedMeta:n}=e,s=i._stacks||(i._stacks={}),{iScale:a,vScale:r,index:l}=n,c=a.axis,d=r.axis,u=getStackKey(a,r,n),h=t.length;let f;for(let g=0;gi[n].axis===t).shift()}function createDatasetContext(e,t){return createContext(e,{active:!1,dataset:void 0,datasetIndex:t,index:t,mode:"default",type:"dataset"})}function createDataContext(e,t,i){return createContext(e,{active:!1,dataIndex:t,parsed:void 0,raw:void 0,element:i,index:t,mode:"default",type:"data"})}function clearStacks(e,t){const i=e.controller.index,n=e.vScale&&e.vScale.axis;if(!!n){t=t||e._parsed;for(const s of t){const a=s._stacks;if(!a||a[n]===void 0||a[n][i]===void 0)return;delete a[n][i]}}}const isDirectUpdateMode=e=>e==="reset"||e==="none",cloneIfNotShared=(e,t)=>t?e:Object.assign({},e),createStack=(e,t,i)=>e&&!t.hidden&&t._stacked&&{keys:getSortedDatasetIndices(i,!0),values:null};class DatasetController{constructor(t,i){this.chart=t,this._ctx=t.ctx,this.index=i,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const t=this._cachedMeta;this.configure(),this.linkScales(),t._stacked=isStacked(t.vScale,t),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(t){this.index!==t&&clearStacks(this._cachedMeta),this.index=t}linkScales(){const t=this.chart,i=this._cachedMeta,n=this.getDataset(),s=(h,f,g,m)=>h==="x"?f:h==="r"?m:g,a=i.xAxisID=valueOrDefault(n.xAxisID,getFirstScaleId(t,"x")),r=i.yAxisID=valueOrDefault(n.yAxisID,getFirstScaleId(t,"y")),l=i.rAxisID=valueOrDefault(n.rAxisID,getFirstScaleId(t,"r")),c=i.indexAxis,d=i.iAxisID=s(c,a,r,l),u=i.vAxisID=s(c,r,a,l);i.xScale=this.getScaleForId(a),i.yScale=this.getScaleForId(r),i.rScale=this.getScaleForId(l),i.iScale=this.getScaleForId(d),i.vScale=this.getScaleForId(u)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(t){return this.chart.scales[t]}_getOtherScale(t){const i=this._cachedMeta;return t===i.iScale?i.vScale:i.iScale}reset(){this._update("reset")}_destroy(){const t=this._cachedMeta;this._data&&unlistenArrayEvents(this._data,this),t._stacked&&clearStacks(t)}_dataCheck(){const t=this.getDataset(),i=t.data||(t.data=[]),n=this._data;if(isObject(i))this._data=convertObjectDataToArray(i);else if(n!==i){if(n){unlistenArrayEvents(n,this);const s=this._cachedMeta;clearStacks(s),s._parsed=[]}i&&Object.isExtensible(i)&&listenArrayEvents(i,this),this._syncList=[],this._data=i}}addElements(){const t=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(t.dataset=new this.datasetElementType)}buildOrUpdateElements(t){const i=this._cachedMeta,n=this.getDataset();let s=!1;this._dataCheck();const a=i._stacked;i._stacked=isStacked(i.vScale,i),i.stack!==n.stack&&(s=!0,clearStacks(i),i.stack=n.stack),this._resyncElements(t),(s||a!==i._stacked)&&updateStacks(this,i._parsed)}configure(){const t=this.chart.config,i=t.datasetScopeKeys(this._type),n=t.getOptionScopes(this.getDataset(),i,!0);this.options=t.createResolver(n,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(t,i){const{_cachedMeta:n,_data:s}=this,{iScale:a,_stacked:r}=n,l=a.axis;let c=t===0&&i===s.length?!0:n._sorted,d=t>0&&n._parsed[t-1],u,h,f;if(this._parsing===!1)n._parsed=s,n._sorted=!0,f=s;else{isArray(s[t])?f=this.parseArrayData(n,s,t,i):isObject(s[t])?f=this.parseObjectData(n,s,t,i):f=this.parsePrimitiveData(n,s,t,i);const g=()=>h[l]===null||d&&h[l]w||h=0;--f)if(!m()){this.updateRangeFromParsed(d,t,g,c);break}}return d}getAllParsedValues(t){const i=this._cachedMeta._parsed,n=[];let s,a,r;for(s=0,a=i.length;s=0&&tthis.getContext(n,s),w=d.resolveNamedOptions(f,g,m,h);return w.$shared&&(w.$shared=c,a[r]=Object.freeze(cloneIfNotShared(w,c))),w}_resolveAnimations(t,i,n){const s=this.chart,a=this._cachedDataOpts,r=`animation-${i}`,l=a[r];if(l)return l;let c;if(s.options.animation!==!1){const u=this.chart.config,h=u.datasetAnimationScopeKeys(this._type,i),f=u.getOptionScopes(this.getDataset(),h);c=u.createResolver(f,this.getContext(t,n,i))}const d=new Animations(s,c&&c.animations);return c&&c._cacheable&&(a[r]=Object.freeze(d)),d}getSharedOptions(t){if(!!t.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},t))}includeOptions(t,i){return!i||isDirectUpdateMode(t)||this.chart._animationsDisabled}_getSharedOptions(t,i){const n=this.resolveDataElementOptions(t,i),s=this._sharedOptions,a=this.getSharedOptions(n),r=this.includeOptions(i,a)||a!==s;return this.updateSharedOptions(a,i,n),{sharedOptions:a,includeOptions:r}}updateElement(t,i,n,s){isDirectUpdateMode(s)?Object.assign(t,n):this._resolveAnimations(i,s).update(t,n)}updateSharedOptions(t,i,n){t&&!isDirectUpdateMode(i)&&this._resolveAnimations(void 0,i).update(t,n)}_setStyle(t,i,n,s){t.active=s;const a=this.getStyle(i,s);this._resolveAnimations(i,n,s).update(t,{options:!s&&this.getSharedOptions(a)||a})}removeHoverStyle(t,i,n){this._setStyle(t,n,"active",!1)}setHoverStyle(t,i,n){this._setStyle(t,n,"active",!0)}_removeDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!1)}_setDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!0)}_resyncElements(t){const i=this._data,n=this._cachedMeta.data;for(const[l,c,d]of this._syncList)this[l](c,d);this._syncList=[];const s=n.length,a=i.length,r=Math.min(a,s);r&&this.parse(0,r),a>s?this._insertElements(s,a-s,t):a{for(d.length+=i,l=d.length-1;l>=r;l--)d[l]=d[l-i]};for(c(a),l=t;ls-a))}return e._cache.$bar}function computeMinSampleSize(e){const t=e.iScale,i=getAllScaleValues(t,e.type);let n=t._length,s,a,r,l;const c=()=>{r===32767||r===-32768||(defined(l)&&(n=Math.min(n,Math.abs(r-l)||n)),l=r)};for(s=0,a=i.length;s0?s[e-1]:null,l=eMath.abs(l)&&(c=l,d=r),t[i.axis]=d,t._custom={barStart:c,barEnd:d,start:s,end:a,min:r,max:l}}function parseValue(e,t,i,n){return isArray(e)?parseFloatBar(e,t,i,n):t[i.axis]=i.parse(e,n),t}function parseArrayOrPrimitive(e,t,i,n){const s=e.iScale,a=e.vScale,r=s.getLabels(),l=s===a,c=[];let d,u,h,f;for(d=i,u=i+n;d=i?1:-1)}function borderProps(e){let t,i,n,s,a;return e.horizontal?(t=e.base>e.x,i="left",n="right"):(t=e.basec.controller.options.grouped),a=n.options.stacked,r=[],l=c=>{const d=c.controller.getParsed(i),u=d&&d[c.vScale.axis];if(isNullOrUndef(u)||isNaN(u))return!0};for(const c of s)if(!(i!==void 0&&l(c))&&((a===!1||r.indexOf(c.stack)===-1||a===void 0&&c.stack===void 0)&&r.push(c.stack),c.index===t))break;return r.length||r.push(void 0),r}_getStackCount(t){return this._getStacks(void 0,t).length}_getStackIndex(t,i,n){const s=this._getStacks(t,n),a=i!==void 0?s.indexOf(i):-1;return a===-1?s.length-1:a}_getRuler(){const t=this.options,i=this._cachedMeta,n=i.iScale,s=[];let a,r;for(a=0,r=i.data.length;a=0;--n)i=Math.max(i,t[n].size(this.resolveDataElementOptions(n))/2);return i>0&&i}getLabelAndValue(t){const i=this._cachedMeta,n=this.chart.data.labels||[],{xScale:s,yScale:a}=i,r=this.getParsed(t),l=s.getLabelForValue(r.x),c=a.getLabelForValue(r.y),d=r._custom;return{label:n[t]||"",value:"("+l+", "+c+(d?", "+d:"")+")"}}update(t){const i=this._cachedMeta.data;this.updateElements(i,0,i.length,t)}updateElements(t,i,n,s){const a=s==="reset",{iScale:r,vScale:l}=this._cachedMeta,{sharedOptions:c,includeOptions:d}=this._getSharedOptions(i,s),u=r.axis,h=l.axis;for(let f=i;f_angleBetween(P,l,c,!0)?1:Math.max(N,N*i,L,L*i),m=(P,N,L)=>_angleBetween(P,l,c,!0)?-1:Math.min(N,N*i,L,L*i),w=g(0,d,h),_=g(HALF_PI,u,f),D=m(PI,d,h),B=m(PI+HALF_PI,u,f);n=(w-D)/2,s=(_-B)/2,a=-(w+D)/2,r=-(_+B)/2}return{ratioX:n,ratioY:s,offsetX:a,offsetY:r}}class DoughnutController extends DatasetController{constructor(t,i){super(t,i),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(t,i){const n=this.getDataset().data,s=this._cachedMeta;if(this._parsing===!1)s._parsed=n;else{let a=c=>+n[c];if(isObject(n[t])){const{key:c="value"}=this._parsing;a=d=>+resolveObjectKey(n[d],c)}let r,l;for(r=t,l=t+i;r0&&!isNaN(t)?TAU*(Math.abs(t)/i):0}getLabelAndValue(t){const i=this._cachedMeta,n=this.chart,s=n.data.labels||[],a=formatNumber(i._parsed[t],n.options.locale);return{label:s[t]||"",value:a}}getMaxBorderWidth(t){let i=0;const n=this.chart;let s,a,r,l,c;if(!t){for(s=0,a=n.data.datasets.length;st!=="spacing",_indexable:t=>t!=="spacing"}),Q(DoughnutController,"overrides",{aspectRatio:1,plugins:{legend:{labels:{generateLabels(t){const i=t.data;if(i.labels.length&&i.datasets.length){const{labels:{pointStyle:n,color:s}}=t.legend.options;return i.labels.map((a,r)=>{const c=t.getDatasetMeta(0).controller.getStyle(r);return{text:a,fillStyle:c.backgroundColor,strokeStyle:c.borderColor,fontColor:s,lineWidth:c.borderWidth,pointStyle:n,hidden:!t.getDataVisibility(r),index:r}})}return[]}},onClick(t,i,n){n.chart.toggleDataVisibility(i.index),n.chart.update()}}}});class LineController extends DatasetController{initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(t){const i=this._cachedMeta,{dataset:n,data:s=[],_dataset:a}=i,r=this.chart._animationsDisabled;let{start:l,count:c}=_getStartAndCountOfVisiblePoints(i,s,r);this._drawStart=l,this._drawCount=c,_scaleRangesChanged(i)&&(l=0,c=s.length),n._chart=this.chart,n._datasetIndex=this.index,n._decimated=!!a._decimated,n.points=s;const d=this.resolveDatasetElementOptions(t);this.options.showLine||(d.borderWidth=0),d.segment=this.options.segment,this.updateElement(n,void 0,{animated:!r,options:d},t),this.updateElements(s,l,c,t)}updateElements(t,i,n,s){const a=s==="reset",{iScale:r,vScale:l,_stacked:c,_dataset:d}=this._cachedMeta,{sharedOptions:u,includeOptions:h}=this._getSharedOptions(i,s),f=r.axis,g=l.axis,{spanGaps:m,segment:w}=this.options,_=isNumber(m)?m:Number.POSITIVE_INFINITY,D=this.chart._animationsDisabled||a||s==="none",B=i+n,P=t.length;let N=i>0&&this.getParsed(i-1);for(let L=0;L=B){H.skip=!0;continue}const W=this.getParsed(L),K=isNullOrUndef(W[g]),G=H[f]=r.getPixelForValue(W[f],L),Y=H[g]=a||K?l.getBasePixel():l.getPixelForValue(c?this.applyStack(l,W,c):W[g],L);H.skip=isNaN(G)||isNaN(Y)||K,H.stop=L>0&&Math.abs(W[f]-N[f])>_,w&&(H.parsed=W,H.raw=d.data[L]),h&&(H.options=u||this.resolveDataElementOptions(L,U.active?"active":s)),D||this.updateElement(U,L,H,s),N=W}}getMaxOverflow(){const t=this._cachedMeta,i=t.dataset,n=i.options&&i.options.borderWidth||0,s=t.data||[];if(!s.length)return n;const a=s[0].size(this.resolveDataElementOptions(0)),r=s[s.length-1].size(this.resolveDataElementOptions(s.length-1));return Math.max(n,a,r)/2}draw(){const t=this._cachedMeta;t.dataset.updateControlPoints(this.chart.chartArea,t.iScale.axis),super.draw()}}Q(LineController,"id","line"),Q(LineController,"defaults",{datasetElementType:"line",dataElementType:"point",showLine:!0,spanGaps:!1}),Q(LineController,"overrides",{scales:{_index_:{type:"category"},_value_:{type:"linear"}}});class PolarAreaController extends DatasetController{constructor(t,i){super(t,i),this.innerRadius=void 0,this.outerRadius=void 0}getLabelAndValue(t){const i=this._cachedMeta,n=this.chart,s=n.data.labels||[],a=formatNumber(i._parsed[t].r,n.options.locale);return{label:s[t]||"",value:a}}parseObjectData(t,i,n,s){return _parseObjectDataRadialScale.bind(this)(t,i,n,s)}update(t){const i=this._cachedMeta.data;this._updateRadius(),this.updateElements(i,0,i.length,t)}getMinMax(){const t=this._cachedMeta,i={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY};return t.data.forEach((n,s)=>{const a=this.getParsed(s).r;!isNaN(a)&&this.chart.getDataVisibility(s)&&(ai.max&&(i.max=a))}),i}_updateRadius(){const t=this.chart,i=t.chartArea,n=t.options,s=Math.min(i.right-i.left,i.bottom-i.top),a=Math.max(s/2,0),r=Math.max(n.cutoutPercentage?a/100*n.cutoutPercentage:1,0),l=(a-r)/t.getVisibleDatasetCount();this.outerRadius=a-l*this.index,this.innerRadius=this.outerRadius-l}updateElements(t,i,n,s){const a=s==="reset",r=this.chart,c=r.options.animation,d=this._cachedMeta.rScale,u=d.xCenter,h=d.yCenter,f=d.getIndexAngle(0)-.5*PI;let g=f,m;const w=360/this.countVisibleElements();for(m=0;m{!isNaN(this.getParsed(s).r)&&this.chart.getDataVisibility(s)&&i++}),i}_computeAngle(t,i,n){return this.chart.getDataVisibility(t)?toRadians(this.resolveDataElementOptions(t,i).angle||n):0}}Q(PolarAreaController,"id","polarArea"),Q(PolarAreaController,"defaults",{dataElementType:"arc",animation:{animateRotate:!0,animateScale:!0},animations:{numbers:{type:"number",properties:["x","y","startAngle","endAngle","innerRadius","outerRadius"]}},indexAxis:"r",startAngle:0}),Q(PolarAreaController,"overrides",{aspectRatio:1,plugins:{legend:{labels:{generateLabels(t){const i=t.data;if(i.labels.length&&i.datasets.length){const{labels:{pointStyle:n,color:s}}=t.legend.options;return i.labels.map((a,r)=>{const c=t.getDatasetMeta(0).controller.getStyle(r);return{text:a,fillStyle:c.backgroundColor,strokeStyle:c.borderColor,fontColor:s,lineWidth:c.borderWidth,pointStyle:n,hidden:!t.getDataVisibility(r),index:r}})}return[]}},onClick(t,i,n){n.chart.toggleDataVisibility(i.index),n.chart.update()}}},scales:{r:{type:"radialLinear",angleLines:{display:!1},beginAtZero:!0,grid:{circular:!0},pointLabels:{display:!1},startAngle:0}}});class PieController extends DoughnutController{}Q(PieController,"id","pie"),Q(PieController,"defaults",{cutout:0,rotation:0,circumference:360,radius:"100%"});class RadarController extends DatasetController{getLabelAndValue(t){const i=this._cachedMeta.vScale,n=this.getParsed(t);return{label:i.getLabels()[t],value:""+i.getLabelForValue(n[i.axis])}}parseObjectData(t,i,n,s){return _parseObjectDataRadialScale.bind(this)(t,i,n,s)}update(t){const i=this._cachedMeta,n=i.dataset,s=i.data||[],a=i.iScale.getLabels();if(n.points=s,t!=="resize"){const r=this.resolveDatasetElementOptions(t);this.options.showLine||(r.borderWidth=0);const l={_loop:!0,_fullLoop:a.length===s.length,options:r};this.updateElement(n,void 0,l,t)}this.updateElements(s,0,s.length,t)}updateElements(t,i,n,s){const a=this._cachedMeta.rScale,r=s==="reset";for(let l=i;l0&&this.getParsed(i-1);for(let N=i;N0&&Math.abs(U[g]-P[g])>D,_&&(H.parsed=U,H.raw=d.data[N]),f&&(H.options=h||this.resolveDataElementOptions(N,L.active?"active":s)),B||this.updateElement(L,N,H,s),P=U}this.updateSharedOptions(h,s,u)}getMaxOverflow(){const t=this._cachedMeta,i=t.data||[];if(!this.options.showLine){let l=0;for(let c=i.length-1;c>=0;--c)l=Math.max(l,i[c].size(this.resolveDataElementOptions(c))/2);return l>0&&l}const n=t.dataset,s=n.options&&n.options.borderWidth||0;if(!i.length)return s;const a=i[0].size(this.resolveDataElementOptions(0)),r=i[i.length-1].size(this.resolveDataElementOptions(i.length-1));return Math.max(s,a,r)/2}}Q(ScatterController,"id","scatter"),Q(ScatterController,"defaults",{datasetElementType:!1,dataElementType:"point",showLine:!1,fill:!1}),Q(ScatterController,"overrides",{interaction:{mode:"point"},scales:{x:{type:"linear"},y:{type:"linear"}}});var controllers=Object.freeze({__proto__:null,BarController,BubbleController,DoughnutController,LineController,PolarAreaController,PieController,RadarController,ScatterController});function abstract(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}class DateAdapterBase{static override(t){Object.assign(DateAdapterBase.prototype,t)}constructor(t){this.options=t||{}}init(){}formats(){return abstract()}parse(){return abstract()}format(){return abstract()}add(){return abstract()}diff(){return abstract()}startOf(){return abstract()}endOf(){return abstract()}}var adapters={_date:DateAdapterBase};function binarySearch(e,t,i,n){const{controller:s,data:a,_sorted:r}=e,l=s._cachedMeta.iScale;if(l&&t===l.axis&&t!=="r"&&r&&a.length){const c=l._reversePixels?_rlookupByKey:_lookupByKey;if(n){if(s._sharedOptions){const d=a[0],u=typeof d.getRange=="function"&&d.getRange(t);if(u){const h=c(a,t,i-u),f=c(a,t,i+u);return{lo:h.lo,hi:f.hi}}}}else return c(a,t,i)}return{lo:0,hi:a.length-1}}function evaluateInteractionItems(e,t,i,n,s){const a=e.getSortedVisibleDatasetMetas(),r=i[t];for(let l=0,c=a.length;l{c[r](t[i],s)&&(a.push({element:c,datasetIndex:d,index:u}),l=l||c.inRange(t.x,t.y,s))}),n&&!l?[]:a}var Interaction={evaluateInteractionItems,modes:{index(e,t,i,n){const s=getRelativePosition(t,e),a=i.axis||"x",r=i.includeInvisible||!1,l=i.intersect?getIntersectItems(e,s,a,n,r):getNearestItems(e,s,a,!1,n,r),c=[];return l.length?(e.getSortedVisibleDatasetMetas().forEach(d=>{const u=l[0].index,h=d.data[u];h&&!h.skip&&c.push({element:h,datasetIndex:d.index,index:u})}),c):[]},dataset(e,t,i,n){const s=getRelativePosition(t,e),a=i.axis||"xy",r=i.includeInvisible||!1;let l=i.intersect?getIntersectItems(e,s,a,n,r):getNearestItems(e,s,a,!1,n,r);if(l.length>0){const c=l[0].datasetIndex,d=e.getDatasetMeta(c).data;l=[];for(let u=0;ui.pos===t)}function filterDynamicPositionByAxis(e,t){return e.filter(i=>STATIC_POSITIONS.indexOf(i.pos)===-1&&i.box.axis===t)}function sortByWeight(e,t){return e.sort((i,n)=>{const s=t?n:i,a=t?i:n;return s.weight===a.weight?s.index-a.index:s.weight-a.weight})}function wrapBoxes(e){const t=[];let i,n,s,a,r,l;for(i=0,n=(e||[]).length;id.box.fullSize),!0),n=sortByWeight(filterByPosition(t,"left"),!0),s=sortByWeight(filterByPosition(t,"right")),a=sortByWeight(filterByPosition(t,"top"),!0),r=sortByWeight(filterByPosition(t,"bottom")),l=filterDynamicPositionByAxis(t,"x"),c=filterDynamicPositionByAxis(t,"y");return{fullSize:i,leftAndTop:n.concat(a),rightAndBottom:s.concat(c).concat(r).concat(l),chartArea:filterByPosition(t,"chartArea"),vertical:n.concat(s).concat(c),horizontal:a.concat(r).concat(l)}}function getCombinedMax(e,t,i,n){return Math.max(e[i],t[i])+Math.max(e[n],t[n])}function updateMaxPadding(e,t){e.top=Math.max(e.top,t.top),e.left=Math.max(e.left,t.left),e.bottom=Math.max(e.bottom,t.bottom),e.right=Math.max(e.right,t.right)}function updateDims(e,t,i,n){const{pos:s,box:a}=i,r=e.maxPadding;if(!isObject(s)){i.size&&(e[s]-=i.size);const h=n[i.stack]||{size:0,count:1};h.size=Math.max(h.size,i.horizontal?a.height:a.width),i.size=h.size/h.count,e[s]+=i.size}a.getPadding&&updateMaxPadding(r,a.getPadding());const l=Math.max(0,t.outerWidth-getCombinedMax(r,e,"left","right")),c=Math.max(0,t.outerHeight-getCombinedMax(r,e,"top","bottom")),d=l!==e.w,u=c!==e.h;return e.w=l,e.h=c,i.horizontal?{same:d,other:u}:{same:u,other:d}}function handleMaxPadding(e){const t=e.maxPadding;function i(n){const s=Math.max(t[n]-e[n],0);return e[n]+=s,s}e.y+=i("top"),e.x+=i("left"),i("right"),i("bottom")}function getMargins(e,t){const i=t.maxPadding;function n(s){const a={left:0,top:0,right:0,bottom:0};return s.forEach(r=>{a[r]=Math.max(t[r],i[r])}),a}return n(e?["left","right"]:["top","bottom"])}function fitBoxes(e,t,i,n){const s=[];let a,r,l,c,d,u;for(a=0,r=e.length,d=0;a{typeof w.beforeLayout=="function"&&w.beforeLayout()});const u=c.reduce((w,_)=>_.box.options&&_.box.options.display===!1?w:w+1,0)||1,h=Object.freeze({outerWidth:t,outerHeight:i,padding:s,availableWidth:a,availableHeight:r,vBoxMaxWidth:a/2/u,hBoxMaxHeight:r/2}),f=Object.assign({},s);updateMaxPadding(f,toPadding(n));const g=Object.assign({maxPadding:f,w:a,h:r,x:s.left,y:s.top},s),m=setLayoutDims(c.concat(d),h);fitBoxes(l.fullSize,g,h,m),fitBoxes(c,g,h,m),fitBoxes(d,g,h,m)&&fitBoxes(c,g,h,m),handleMaxPadding(g),placeBoxes(l.leftAndTop,g,h,m),g.x+=g.w,g.y+=g.h,placeBoxes(l.rightAndBottom,g,h,m),e.chartArea={left:g.left,top:g.top,right:g.left+g.w,bottom:g.top+g.h,height:g.h,width:g.w},each(l.chartArea,w=>{const _=w.box;Object.assign(_,e.chartArea),_.update(g.w,g.h,{left:0,top:0,right:0,bottom:0})})}};class BasePlatform{acquireContext(t,i){}releaseContext(t){return!1}addEventListener(t,i,n){}removeEventListener(t,i,n){}getDevicePixelRatio(){return 1}getMaximumSize(t,i,n,s){return i=Math.max(0,i||t.width),n=n||t.height,{width:i,height:Math.max(0,s?Math.floor(i/s):n)}}isAttached(t){return!0}updateConfig(t){}}class BasicPlatform extends BasePlatform{acquireContext(t){return t&&t.getContext&&t.getContext("2d")||null}updateConfig(t){t.options.animation=!1}}const EXPANDO_KEY="$chartjs",EVENT_TYPES={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},isNullOrEmpty=e=>e===null||e==="";function initCanvas(e,t){const i=e.style,n=e.getAttribute("height"),s=e.getAttribute("width");if(e[EXPANDO_KEY]={initial:{height:n,width:s,style:{display:i.display,height:i.height,width:i.width}}},i.display=i.display||"block",i.boxSizing=i.boxSizing||"border-box",isNullOrEmpty(s)){const a=readUsedSize(e,"width");a!==void 0&&(e.width=a)}if(isNullOrEmpty(n))if(e.style.height==="")e.height=e.width/(t||2);else{const a=readUsedSize(e,"height");a!==void 0&&(e.height=a)}return e}const eventListenerOptions=supportsEventListenerOptions?{passive:!0}:!1;function addListener(e,t,i){e.addEventListener(t,i,eventListenerOptions)}function removeListener(e,t,i){e.canvas.removeEventListener(t,i,eventListenerOptions)}function fromNativeEvent(e,t){const i=EVENT_TYPES[e.type]||e.type,{x:n,y:s}=getRelativePosition(e,t);return{type:i,chart:t,native:e,x:n!==void 0?n:null,y:s!==void 0?s:null}}function nodeListContains(e,t){for(const i of e)if(i===t||i.contains(t))return!0}function createAttachObserver(e,t,i){const n=e.canvas,s=new MutationObserver(a=>{let r=!1;for(const l of a)r=r||nodeListContains(l.addedNodes,n),r=r&&!nodeListContains(l.removedNodes,n);r&&i()});return s.observe(document,{childList:!0,subtree:!0}),s}function createDetachObserver(e,t,i){const n=e.canvas,s=new MutationObserver(a=>{let r=!1;for(const l of a)r=r||nodeListContains(l.removedNodes,n),r=r&&!nodeListContains(l.addedNodes,n);r&&i()});return s.observe(document,{childList:!0,subtree:!0}),s}const drpListeningCharts=new Map;let oldDevicePixelRatio=0;function onWindowResize(){const e=window.devicePixelRatio;e!==oldDevicePixelRatio&&(oldDevicePixelRatio=e,drpListeningCharts.forEach((t,i)=>{i.currentDevicePixelRatio!==e&&t()}))}function listenDevicePixelRatioChanges(e,t){drpListeningCharts.size||window.addEventListener("resize",onWindowResize),drpListeningCharts.set(e,t)}function unlistenDevicePixelRatioChanges(e){drpListeningCharts.delete(e),drpListeningCharts.size||window.removeEventListener("resize",onWindowResize)}function createResizeObserver(e,t,i){const n=e.canvas,s=n&&_getParentNode(n);if(!s)return;const a=throttled((l,c)=>{const d=s.clientWidth;i(l,c),d{const c=l[0],d=c.contentRect.width,u=c.contentRect.height;d===0&&u===0||a(d,u)});return r.observe(s),listenDevicePixelRatioChanges(e,a),r}function releaseObserver(e,t,i){i&&i.disconnect(),t==="resize"&&unlistenDevicePixelRatioChanges(e)}function createProxyAndListen(e,t,i){const n=e.canvas,s=throttled(a=>{e.ctx!==null&&i(fromNativeEvent(a,e))},e);return addListener(n,t,s),s}class DomPlatform extends BasePlatform{acquireContext(t,i){const n=t&&t.getContext&&t.getContext("2d");return n&&n.canvas===t?(initCanvas(t,i),n):null}releaseContext(t){const i=t.canvas;if(!i[EXPANDO_KEY])return!1;const n=i[EXPANDO_KEY].initial;["height","width"].forEach(a=>{const r=n[a];isNullOrUndef(r)?i.removeAttribute(a):i.setAttribute(a,r)});const s=n.style||{};return Object.keys(s).forEach(a=>{i.style[a]=s[a]}),i.width=i.width,delete i[EXPANDO_KEY],!0}addEventListener(t,i,n){this.removeEventListener(t,i);const s=t.$proxies||(t.$proxies={}),r={attach:createAttachObserver,detach:createDetachObserver,resize:createResizeObserver}[i]||createProxyAndListen;s[i]=r(t,i,n)}removeEventListener(t,i){const n=t.$proxies||(t.$proxies={}),s=n[i];if(!s)return;({attach:releaseObserver,detach:releaseObserver,resize:releaseObserver}[i]||removeListener)(t,i,s),n[i]=void 0}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(t,i,n,s){return getMaximumSize(t,i,n,s)}isAttached(t){const i=_getParentNode(t);return!!(i&&i.isConnected)}}function _detectPlatform(e){return!_isDomSupported()||typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas?BasicPlatform:DomPlatform}class Element{constructor(){Q(this,"active",!1)}tooltipPosition(t){const{x:i,y:n}=this.getProps(["x","y"],t);return{x:i,y:n}}hasValue(){return isNumber(this.x)&&isNumber(this.y)}getProps(t,i){const n=this.$animations;if(!i||!n)return this;const s={};return t.forEach(a=>{s[a]=n[a]&&n[a].active()?n[a]._to:this[a]}),s}}Q(Element,"defaults",{}),Q(Element,"defaultRoutes");function autoSkip(e,t){const i=e.options.ticks,n=determineMaxTicks(e),s=Math.min(i.maxTicksLimit||n,n),a=i.major.enabled?getMajorIndices(t):[],r=a.length,l=a[0],c=a[r-1],d=[];if(r>s)return skipMajors(t,d,a,r/s),d;const u=calculateSpacing(a,t,s);if(r>0){let h,f;const g=r>1?Math.round((c-l)/(r-1)):null;for(skip(t,d,u,isNullOrUndef(g)?0:l-g,l),h=0,f=r-1;hs)return c}return Math.max(s,1)}function getMajorIndices(e){const t=[];let i,n;for(i=0,n=e.length;ie==="left"?"right":e==="right"?"left":e,offsetFromEdge=(e,t,i)=>t==="top"||t==="left"?e[t]+i:e[t]-i;function sample(e,t){const i=[],n=e.length/t,s=e.length;let a=0;for(;ar+l)))return c}function garbageCollect(e,t){each(e,i=>{const n=i.gc,s=n.length/2;let a;if(s>t){for(a=0;an?n:i,n=s&&i>n?i:n,{min:finiteOrDefault(i,finiteOrDefault(n,i)),max:finiteOrDefault(n,finiteOrDefault(i,n))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels||[]}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){callback(this.options.beforeUpdate,[this])}update(t,i,n){const{beginAtZero:s,grace:a,ticks:r}=this.options,l=r.sampleSize;this.beforeUpdate(),this.maxWidth=t,this.maxHeight=i,this._margins=n=Object.assign({left:0,right:0,top:0,bottom:0},n),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+n.left+n.right:this.height+n.top+n.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=_addGrace(this,a,s),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const c=l=a||n<=1||!this.isHorizontal()){this.labelRotation=s;return}const u=this._getLabelSizes(),h=u.widest.width,f=u.highest.height,g=_limitValue(this.chart.width-h,0,this.maxWidth);l=t.offset?this.maxWidth/n:g/(n-1),h+6>l&&(l=g/(n-(t.offset?.5:1)),c=this.maxHeight-getTickMarkLength(t.grid)-i.padding-getTitleHeight(t.title,this.chart.options.font),d=Math.sqrt(h*h+f*f),r=toDegrees(Math.min(Math.asin(_limitValue((u.highest.height+6)/l,-1,1)),Math.asin(_limitValue(c/d,-1,1))-Math.asin(_limitValue(f/d,-1,1)))),r=Math.max(s,Math.min(a,r))),this.labelRotation=r}afterCalculateLabelRotation(){callback(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){callback(this.options.beforeFit,[this])}fit(){const t={width:0,height:0},{chart:i,options:{ticks:n,title:s,grid:a}}=this,r=this._isVisible(),l=this.isHorizontal();if(r){const c=getTitleHeight(s,i.options.font);if(l?(t.width=this.maxWidth,t.height=getTickMarkLength(a)+c):(t.height=this.maxHeight,t.width=getTickMarkLength(a)+c),n.display&&this.ticks.length){const{first:d,last:u,widest:h,highest:f}=this._getLabelSizes(),g=n.padding*2,m=toRadians(this.labelRotation),w=Math.cos(m),_=Math.sin(m);if(l){const D=n.mirror?0:_*h.width+w*f.height;t.height=Math.min(this.maxHeight,t.height+D+g)}else{const D=n.mirror?0:w*h.width+_*f.height;t.width=Math.min(this.maxWidth,t.width+D+g)}this._calculatePadding(d,u,_,w)}}this._handleMargins(),l?(this.width=this._length=i.width-this._margins.left-this._margins.right,this.height=t.height):(this.width=t.width,this.height=this._length=i.height-this._margins.top-this._margins.bottom)}_calculatePadding(t,i,n,s){const{ticks:{align:a,padding:r},position:l}=this.options,c=this.labelRotation!==0,d=l!=="top"&&this.axis==="x";if(this.isHorizontal()){const u=this.getPixelForTick(0)-this.left,h=this.right-this.getPixelForTick(this.ticks.length-1);let f=0,g=0;c?d?(f=s*t.width,g=n*i.height):(f=n*t.height,g=s*i.width):a==="start"?g=i.width:a==="end"?f=t.width:a!=="inner"&&(f=t.width/2,g=i.width/2),this.paddingLeft=Math.max((f-u+r)*this.width/(this.width-u),0),this.paddingRight=Math.max((g-h+r)*this.width/(this.width-h),0)}else{let u=i.height/2,h=t.height/2;a==="start"?(u=0,h=t.height):a==="end"&&(u=i.height,h=0),this.paddingTop=u+r,this.paddingBottom=h+r}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){callback(this.options.afterFit,[this])}isHorizontal(){const{axis:t,position:i}=this.options;return i==="top"||i==="bottom"||t==="x"}isFullSize(){return this.options.fullSize}_convertTicksToLabels(t){this.beforeTickToLabelConversion(),this.generateTickLabels(t);let i,n;for(i=0,n=t.length;i({width:a[H]||0,height:r[H]||0});return{first:U(0),last:U(i-1),widest:U(N),highest:U(L),widths:a,heights:r}}getLabelForValue(t){return t}getPixelForValue(t,i){return NaN}getValueForPixel(t){}getPixelForTick(t){const i=this.ticks;return t<0||t>i.length-1?null:this.getPixelForValue(i[t].value)}getPixelForDecimal(t){this._reversePixels&&(t=1-t);const i=this._startPixel+t*this._length;return _int16Range(this._alignToPixels?_alignPixel(this.chart,i,0):i)}getDecimalForPixel(t){const i=(t-this._startPixel)/this._length;return this._reversePixels?1-i:i}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:t,max:i}=this;return t<0&&i<0?i:t>0&&i>0?t:0}getContext(t){const i=this.ticks||[];if(t>=0&&tl*s?l/n:c/s:c*s0}_computeGridLineItems(t){const i=this.axis,n=this.chart,s=this.options,{grid:a,position:r,border:l}=s,c=a.offset,d=this.isHorizontal(),h=this.ticks.length+(c?1:0),f=getTickMarkLength(a),g=[],m=l.setContext(this.getContext()),w=m.display?m.width:0,_=w/2,D=function(ct){return _alignPixel(n,ct,w)};let B,P,N,L,U,H,W,K,G,Y,J,ot;if(r==="top")B=D(this.bottom),H=this.bottom-f,K=B-_,Y=D(t.top)+_,ot=t.bottom;else if(r==="bottom")B=D(this.top),Y=t.top,ot=D(t.bottom)-_,H=B+_,K=this.top+f;else if(r==="left")B=D(this.right),U=this.right-f,W=B-_,G=D(t.left)+_,J=t.right;else if(r==="right")B=D(this.left),G=t.left,J=D(t.right)-_,U=B+_,W=this.left+f;else if(i==="x"){if(r==="center")B=D((t.top+t.bottom)/2+.5);else if(isObject(r)){const ct=Object.keys(r)[0],dt=r[ct];B=D(this.chart.scales[ct].getPixelForValue(dt))}Y=t.top,ot=t.bottom,H=B+_,K=H+f}else if(i==="y"){if(r==="center")B=D((t.left+t.right)/2);else if(isObject(r)){const ct=Object.keys(r)[0],dt=r[ct];B=D(this.chart.scales[ct].getPixelForValue(dt))}U=B-_,W=U-f,G=t.left,J=t.right}const ht=valueOrDefault(s.ticks.maxTicksLimit,h),st=Math.max(1,Math.ceil(h/ht));for(P=0;Pa.value===t);return s>=0?i.setContext(this.getContext(s)).lineWidth:0}drawGrid(t){const i=this.options.grid,n=this.ctx,s=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(t));let a,r;const l=(c,d,u)=>{!u.width||!u.color||(n.save(),n.lineWidth=u.width,n.strokeStyle=u.color,n.setLineDash(u.borderDash||[]),n.lineDashOffset=u.borderDashOffset,n.beginPath(),n.moveTo(c.x,c.y),n.lineTo(d.x,d.y),n.stroke(),n.restore())};if(i.display)for(a=0,r=s.length;a{this.draw(a)}}]:[{z:n,draw:a=>{this.drawBackground(),this.drawGrid(a),this.drawTitle()}},{z:s,draw:()=>{this.drawBorder()}},{z:i,draw:a=>{this.drawLabels(a)}}]}getMatchingVisibleMetas(t){const i=this.chart.getSortedVisibleDatasetMetas(),n=this.axis+"AxisID",s=[];let a,r;for(a=0,r=i.length;a{const n=i.split("."),s=n.pop(),a=[e].concat(n).join("."),r=t[i].split("."),l=r.pop(),c=r.join(".");defaults.route(a,s,c,l)})}function isIChartComponent(e){return"id"in e&&"defaults"in e}class Registry{constructor(){this.controllers=new TypedRegistry(DatasetController,"datasets",!0),this.elements=new TypedRegistry(Element,"elements"),this.plugins=new TypedRegistry(Object,"plugins"),this.scales=new TypedRegistry(Scale,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...t){this._each("register",t)}remove(...t){this._each("unregister",t)}addControllers(...t){this._each("register",t,this.controllers)}addElements(...t){this._each("register",t,this.elements)}addPlugins(...t){this._each("register",t,this.plugins)}addScales(...t){this._each("register",t,this.scales)}getController(t){return this._get(t,this.controllers,"controller")}getElement(t){return this._get(t,this.elements,"element")}getPlugin(t){return this._get(t,this.plugins,"plugin")}getScale(t){return this._get(t,this.scales,"scale")}removeControllers(...t){this._each("unregister",t,this.controllers)}removeElements(...t){this._each("unregister",t,this.elements)}removePlugins(...t){this._each("unregister",t,this.plugins)}removeScales(...t){this._each("unregister",t,this.scales)}_each(t,i,n){[...i].forEach(s=>{const a=n||this._getRegistryForType(s);n||a.isForType(s)||a===this.plugins&&s.id?this._exec(t,a,s):each(s,r=>{const l=n||this._getRegistryForType(r);this._exec(t,l,r)})})}_exec(t,i,n){const s=_capitalize(t);callback(n["before"+s],[],n),i[t](n),callback(n["after"+s],[],n)}_getRegistryForType(t){for(let i=0;ia.filter(l=>!r.some(c=>l.plugin.id===c.plugin.id));this._notify(s(i,n),t,"stop"),this._notify(s(n,i),t,"start")}}function allPlugins(e){const t={},i=[],n=Object.keys(registry.plugins.items);for(let a=0;a1&&determineAxis(e[0].toLowerCase(),t),e))return e;throw new Error(`Cannot determine type of '${name}' axis. Please provide 'axis' or 'position' option.`)}function mergeScaleConfig(e,t){const i=overrides[e.type]||{scales:{}},n=t.scales||{},s=getIndexAxis(e.type,t),a=Object.create(null);return Object.keys(n).forEach(r=>{const l=n[r];if(!isObject(l))return console.error(`Invalid scale configuration for scale: ${r}`);if(l._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${r}`);const c=determineAxis(r,l),d=getDefaultScaleIDFromAxis(c,s),u=i.scales||{};a[r]=mergeIf(Object.create(null),[{axis:c},l,u[c],u[d]])}),e.data.datasets.forEach(r=>{const l=r.type||e.type,c=r.indexAxis||getIndexAxis(l,t),u=(overrides[l]||{}).scales||{};Object.keys(u).forEach(h=>{const f=getAxisFromDefaultScaleID(h,c),g=r[f+"AxisID"]||f;a[g]=a[g]||Object.create(null),mergeIf(a[g],[{axis:f},n[g],u[h]])})}),Object.keys(a).forEach(r=>{const l=a[r];mergeIf(l,[defaults.scales[l.type],defaults.scale])}),a}function initOptions(e){const t=e.options||(e.options={});t.plugins=valueOrDefault(t.plugins,{}),t.scales=mergeScaleConfig(e,t)}function initData(e){return e=e||{},e.datasets=e.datasets||[],e.labels=e.labels||[],e}function initConfig(e){return e=e||{},e.data=initData(e.data),initOptions(e),e}const keyCache=new Map,keysCached=new Set;function cachedKeys(e,t){let i=keyCache.get(e);return i||(i=t(),keyCache.set(e,i),keysCached.add(i)),i}const addIfFound=(e,t,i)=>{const n=resolveObjectKey(t,i);n!==void 0&&e.add(n)};class Config{constructor(t){this._config=initConfig(t),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(t){this._config.type=t}get data(){return this._config.data}set data(t){this._config.data=initData(t)}get options(){return this._config.options}set options(t){this._config.options=t}get plugins(){return this._config.plugins}update(){const t=this._config;this.clearCache(),initOptions(t)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(t){return cachedKeys(t,()=>[[`datasets.${t}`,""]])}datasetAnimationScopeKeys(t,i){return cachedKeys(`${t}.transition.${i}`,()=>[[`datasets.${t}.transitions.${i}`,`transitions.${i}`],[`datasets.${t}`,""]])}datasetElementScopeKeys(t,i){return cachedKeys(`${t}-${i}`,()=>[[`datasets.${t}.elements.${i}`,`datasets.${t}`,`elements.${i}`,""]])}pluginScopeKeys(t){const i=t.id,n=this.type;return cachedKeys(`${n}-plugin-${i}`,()=>[[`plugins.${i}`,...t.additionalOptionScopes||[]]])}_cachedScopes(t,i){const n=this._scopeCache;let s=n.get(t);return(!s||i)&&(s=new Map,n.set(t,s)),s}getOptionScopes(t,i,n){const{options:s,type:a}=this,r=this._cachedScopes(t,n),l=r.get(i);if(l)return l;const c=new Set;i.forEach(u=>{t&&(c.add(t),u.forEach(h=>addIfFound(c,t,h))),u.forEach(h=>addIfFound(c,s,h)),u.forEach(h=>addIfFound(c,overrides[a]||{},h)),u.forEach(h=>addIfFound(c,defaults,h)),u.forEach(h=>addIfFound(c,descriptors,h))});const d=Array.from(c);return d.length===0&&d.push(Object.create(null)),keysCached.has(i)&&r.set(i,d),d}chartOptionScopes(){const{options:t,type:i}=this;return[t,overrides[i]||{},defaults.datasets[i]||{},{type:i},defaults,descriptors]}resolveNamedOptions(t,i,n,s=[""]){const a={$shared:!0},{resolver:r,subPrefixes:l}=getResolver(this._resolverCache,t,s);let c=r;if(needContext(r,i)){a.$shared=!1,n=isFunction(n)?n():n;const d=this.createResolver(t,n,l);c=_attachContext(r,n,d)}for(const d of i)a[d]=c[d];return a}createResolver(t,i,n=[""],s){const{resolver:a}=getResolver(this._resolverCache,t,n);return isObject(i)?_attachContext(a,i,void 0,s):a}}function getResolver(e,t,i){let n=e.get(t);n||(n=new Map,e.set(t,n));const s=i.join();let a=n.get(s);return a||(a={resolver:_createResolver(t,i),subPrefixes:i.filter(l=>!l.toLowerCase().includes("hover"))},n.set(s,a)),a}const hasFunction=e=>isObject(e)&&Object.getOwnPropertyNames(e).reduce((t,i)=>t||isFunction(e[i]),!1);function needContext(e,t){const{isScriptable:i,isIndexable:n}=_descriptors(e);for(const s of t){const a=i(s),r=n(s),l=(r||a)&&e[s];if(a&&(isFunction(l)||hasFunction(l))||r&&isArray(l))return!0}return!1}var version="4.0.1";const KNOWN_POSITIONS=["top","bottom","left","right","chartArea"];function positionIsHorizontal(e,t){return e==="top"||e==="bottom"||KNOWN_POSITIONS.indexOf(e)===-1&&t==="x"}function compare2Level(e,t){return function(i,n){return i[e]===n[e]?i[t]-n[t]:i[e]-n[e]}}function onAnimationsComplete(e){const t=e.chart,i=t.options.animation;t.notifyPlugins("afterRender"),callback(i&&i.onComplete,[e],t)}function onAnimationProgress(e){const t=e.chart,i=t.options.animation;callback(i&&i.onProgress,[e],t)}function getCanvas(e){return _isDomSupported()&&typeof e=="string"?e=document.getElementById(e):e&&e.length&&(e=e[0]),e&&e.canvas&&(e=e.canvas),e}const instances={},getChart=e=>{const t=getCanvas(e);return Object.values(instances).filter(i=>i.canvas===t).pop()};function moveNumericKeys(e,t,i){const n=Object.keys(e);for(const s of n){const a=+s;if(a>=t){const r=e[s];delete e[s],(i>0||a>t)&&(e[a+i]=r)}}}function determineLastEvent(e,t,i,n){return!i||e.type==="mouseout"?null:n?t:e}function getDatasetArea(e){const{xScale:t,yScale:i}=e;if(t&&i)return{left:t.left,right:t.right,top:i.top,bottom:i.bottom}}class Chart{static register(...t){registry.add(...t),invalidatePlugins()}static unregister(...t){registry.remove(...t),invalidatePlugins()}constructor(t,i){const n=this.config=new Config(i),s=getCanvas(t),a=getChart(s);if(a)throw new Error("Canvas is already in use. Chart with ID '"+a.id+"' must be destroyed before the canvas with ID '"+a.canvas.id+"' can be reused.");const r=n.createResolver(n.chartOptionScopes(),this.getContext());this.platform=new(n.platform||_detectPlatform(s)),this.platform.updateConfig(n);const l=this.platform.acquireContext(s,r.aspectRatio),c=l&&l.canvas,d=c&&c.height,u=c&&c.width;if(this.id=uid(),this.ctx=l,this.canvas=c,this.width=u,this.height=d,this._options=r,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new PluginService,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=debounce(h=>this.update(h),r.resizeDelay||0),this._dataChanges=[],instances[this.id]=this,!l||!c){console.error("Failed to create chart: can't acquire context from the given item");return}animator.listen(this,"complete",onAnimationsComplete),animator.listen(this,"progress",onAnimationProgress),this._initialize(),this.attached&&this.update()}get aspectRatio(){const{options:{aspectRatio:t,maintainAspectRatio:i},width:n,height:s,_aspectRatio:a}=this;return isNullOrUndef(t)?i&&a?a:s?n/s:null:t}get data(){return this.config.data}set data(t){this.config.data=t}get options(){return this._options}set options(t){this.config.options=t}get registry(){return registry}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():retinaScale(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return clearCanvas(this.canvas,this.ctx),this}stop(){return animator.stop(this),this}resize(t,i){animator.running(this)?this._resizeBeforeDraw={width:t,height:i}:this._resize(t,i)}_resize(t,i){const n=this.options,s=this.canvas,a=n.maintainAspectRatio&&this.aspectRatio,r=this.platform.getMaximumSize(s,t,i,a),l=n.devicePixelRatio||this.platform.getDevicePixelRatio(),c=this.width?"resize":"attach";this.width=r.width,this.height=r.height,this._aspectRatio=this.aspectRatio,retinaScale(this,l,!0)&&(this.notifyPlugins("resize",{size:r}),callback(n.onResize,[this,r],this),this.attached&&this._doResize(c)&&this.render())}ensureScalesHaveIDs(){const i=this.options.scales||{};each(i,(n,s)=>{n.id=s})}buildOrUpdateScales(){const t=this.options,i=t.scales,n=this.scales,s=Object.keys(n).reduce((r,l)=>(r[l]=!1,r),{});let a=[];i&&(a=a.concat(Object.keys(i).map(r=>{const l=i[r],c=determineAxis(r,l),d=c==="r",u=c==="x";return{options:l,dposition:d?"chartArea":u?"bottom":"left",dtype:d?"radialLinear":u?"category":"linear"}}))),each(a,r=>{const l=r.options,c=l.id,d=determineAxis(c,l),u=valueOrDefault(l.type,r.dtype);(l.position===void 0||positionIsHorizontal(l.position,d)!==positionIsHorizontal(r.dposition))&&(l.position=r.dposition),s[c]=!0;let h=null;if(c in n&&n[c].type===u)h=n[c];else{const f=registry.getScale(u);h=new f({id:c,type:u,ctx:this.ctx,chart:this}),n[h.id]=h}h.init(l,t)}),each(s,(r,l)=>{r||delete n[l]}),each(n,r=>{layouts.configure(this,r,r.options),layouts.addBox(this,r)})}_updateMetasets(){const t=this._metasets,i=this.data.datasets.length,n=t.length;if(t.sort((s,a)=>s.index-a.index),n>i){for(let s=i;si.length&&delete this._stacks,t.forEach((n,s)=>{i.filter(a=>a===n._dataset).length===0&&this._destroyDatasetMeta(s)})}buildOrUpdateControllers(){const t=[],i=this.data.datasets;let n,s;for(this._removeUnreferencedMetasets(),n=0,s=i.length;n{this.getDatasetMeta(i).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(t){const i=this.config;i.update();const n=this._options=i.createResolver(i.chartOptionScopes(),this.getContext()),s=this._animationsDisabled=!n.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),this.notifyPlugins("beforeUpdate",{mode:t,cancelable:!0})===!1)return;const a=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let r=0;for(let d=0,u=this.data.datasets.length;d{d.reset()}),this._updateDatasets(t),this.notifyPlugins("afterUpdate",{mode:t}),this._layers.sort(compare2Level("z","_idx"));const{_active:l,_lastEvent:c}=this;c?this._eventHandler(c,!0):l.length&&this._updateHoverStyles(l,l,!0),this.render()}_updateScales(){each(this.scales,t=>{layouts.removeBox(this,t)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const t=this.options,i=new Set(Object.keys(this._listeners)),n=new Set(t.events);(!setsEqual(i,n)||!!this._responsiveListeners!==t.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:t}=this,i=this._getUniformDataChanges()||[];for(const{method:n,start:s,count:a}of i){const r=n==="_removeElements"?-a:a;moveNumericKeys(t,s,r)}}_getUniformDataChanges(){const t=this._dataChanges;if(!t||!t.length)return;this._dataChanges=[];const i=this.data.datasets.length,n=a=>new Set(t.filter(r=>r[0]===a).map((r,l)=>l+","+r.splice(1).join(","))),s=n(0);for(let a=1;aa.split(",")).map(a=>({method:a[1],start:+a[2],count:+a[3]}))}_updateLayout(t){if(this.notifyPlugins("beforeLayout",{cancelable:!0})===!1)return;layouts.update(this,this.width,this.height,t);const i=this.chartArea,n=i.width<=0||i.height<=0;this._layers=[],each(this.boxes,s=>{n&&s.position==="chartArea"||(s.configure&&s.configure(),this._layers.push(...s._layers()))},this),this._layers.forEach((s,a)=>{s._idx=a}),this.notifyPlugins("afterLayout")}_updateDatasets(t){if(this.notifyPlugins("beforeDatasetsUpdate",{mode:t,cancelable:!0})!==!1){for(let i=0,n=this.data.datasets.length;i=0;--i)this._drawDataset(t[i]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(t){const i=this.ctx,n=t._clip,s=!n.disabled,a=getDatasetArea(t)||this.chartArea,r={meta:t,index:t.index,cancelable:!0};this.notifyPlugins("beforeDatasetDraw",r)!==!1&&(s&&clipArea(i,{left:n.left===!1?0:a.left-n.left,right:n.right===!1?this.width:a.right+n.right,top:n.top===!1?0:a.top-n.top,bottom:n.bottom===!1?this.height:a.bottom+n.bottom}),t.controller.draw(),s&&unclipArea(i),r.cancelable=!1,this.notifyPlugins("afterDatasetDraw",r))}isPointInArea(t){return _isPointInArea(t,this.chartArea,this._minPadding)}getElementsAtEventForMode(t,i,n,s){const a=Interaction.modes[i];return typeof a=="function"?a(this,t,n,s):[]}getDatasetMeta(t){const i=this.data.datasets[t],n=this._metasets;let s=n.filter(a=>a&&a._dataset===i).pop();return s||(s={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:i&&i.order||0,index:t,_dataset:i,_parsed:[],_sorted:!1},n.push(s)),s}getContext(){return this.$context||(this.$context=createContext(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(t){const i=this.data.datasets[t];if(!i)return!1;const n=this.getDatasetMeta(t);return typeof n.hidden=="boolean"?!n.hidden:!i.hidden}setDatasetVisibility(t,i){const n=this.getDatasetMeta(t);n.hidden=!i}toggleDataVisibility(t){this._hiddenIndices[t]=!this._hiddenIndices[t]}getDataVisibility(t){return!this._hiddenIndices[t]}_updateVisibility(t,i,n){const s=n?"show":"hide",a=this.getDatasetMeta(t),r=a.controller._resolveAnimations(void 0,s);defined(i)?(a.data[i].hidden=!n,this.update()):(this.setDatasetVisibility(t,n),r.update(a,{visible:n}),this.update(l=>l.datasetIndex===t?s:void 0))}hide(t,i){this._updateVisibility(t,i,!1)}show(t,i){this._updateVisibility(t,i,!0)}_destroyDatasetMeta(t){const i=this._metasets[t];i&&i.controller&&i.controller._destroy(),delete this._metasets[t]}_stop(){let t,i;for(this.stop(),animator.remove(this),t=0,i=this.data.datasets.length;t{i.addEventListener(this,a,r),t[a]=r},s=(a,r,l)=>{a.offsetX=r,a.offsetY=l,this._eventHandler(a)};each(this.options.events,a=>n(a,s))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const t=this._responsiveListeners,i=this.platform,n=(c,d)=>{i.addEventListener(this,c,d),t[c]=d},s=(c,d)=>{t[c]&&(i.removeEventListener(this,c,d),delete t[c])},a=(c,d)=>{this.canvas&&this.resize(c,d)};let r;const l=()=>{s("attach",l),this.attached=!0,this.resize(),n("resize",a),n("detach",r)};r=()=>{this.attached=!1,s("resize",a),this._stop(),this._resize(0,0),n("attach",l)},i.isAttached(this.canvas)?l():r()}unbindEvents(){each(this._listeners,(t,i)=>{this.platform.removeEventListener(this,i,t)}),this._listeners={},each(this._responsiveListeners,(t,i)=>{this.platform.removeEventListener(this,i,t)}),this._responsiveListeners=void 0}updateHoverStyle(t,i,n){const s=n?"set":"remove";let a,r,l,c;for(i==="dataset"&&(a=this.getDatasetMeta(t[0].datasetIndex),a.controller["_"+s+"DatasetHoverStyle"]()),l=0,c=t.length;l{const l=this.getDatasetMeta(a);if(!l)throw new Error("No dataset found at index "+a);return{datasetIndex:a,element:l.data[r],index:r}});!_elementsEqual(n,i)&&(this._active=n,this._lastEvent=null,this._updateHoverStyles(n,i))}notifyPlugins(t,i,n){return this._plugins.notify(this,t,i,n)}isPluginEnabled(t){return this._plugins._cache.filter(i=>i.plugin.id===t).length===1}_updateHoverStyles(t,i,n){const s=this.options.hover,a=(c,d)=>c.filter(u=>!d.some(h=>u.datasetIndex===h.datasetIndex&&u.index===h.index)),r=a(i,t),l=n?t:a(t,i);r.length&&this.updateHoverStyle(r,s.mode,!1),l.length&&s.mode&&this.updateHoverStyle(l,s.mode,!0)}_eventHandler(t,i){const n={event:t,replay:i,cancelable:!0,inChartArea:this.isPointInArea(t)},s=r=>(r.options.events||this.options.events).includes(t.native.type);if(this.notifyPlugins("beforeEvent",n,s)===!1)return;const a=this._handleEvent(t,i,n.inChartArea);return n.cancelable=!1,this.notifyPlugins("afterEvent",n,s),(a||n.changed)&&this.render(),this}_handleEvent(t,i,n){const{_active:s=[],options:a}=this,r=i,l=this._getActiveElements(t,s,n,r),c=_isClickEvent(t),d=determineLastEvent(t,this._lastEvent,n,c);n&&(this._lastEvent=null,callback(a.onHover,[t,l,this],this),c&&callback(a.onClick,[t,l,this],this));const u=!_elementsEqual(l,s);return(u||i)&&(this._active=l,this._updateHoverStyles(l,s,i)),this._lastEvent=d,u}_getActiveElements(t,i,n,s){if(t.type==="mouseout")return[];if(!n)return i;const a=this.options.hover;return this.getElementsAtEventForMode(t,a.mode,a,s)}}Q(Chart,"defaults",defaults),Q(Chart,"instances",instances),Q(Chart,"overrides",overrides),Q(Chart,"registry",registry),Q(Chart,"version",version),Q(Chart,"getChart",getChart);function invalidatePlugins(){return each(Chart.instances,e=>e._plugins.invalidate())}var Chart$1=Chart;function clipArc(e,t,i){const{startAngle:n,pixelMargin:s,x:a,y:r,outerRadius:l,innerRadius:c}=t;let d=s/l;e.beginPath(),e.arc(a,r,l,n-d,i+d),c>s?(d=s/c,e.arc(a,r,c,i+d,n-d,!0)):e.arc(a,r,s,i+HALF_PI,n-HALF_PI),e.closePath(),e.clip()}function toRadiusCorners(e){return _readValueToProps(e,["outerStart","outerEnd","innerStart","innerEnd"])}function parseBorderRadius$1(e,t,i,n){const s=toRadiusCorners(e.options.borderRadius),a=(i-t)/2,r=Math.min(a,n*t/2),l=c=>{const d=(i-Math.min(a,c))*n/2;return _limitValue(c,0,Math.min(a,d))};return{outerStart:l(s.outerStart),outerEnd:l(s.outerEnd),innerStart:_limitValue(s.innerStart,0,r),innerEnd:_limitValue(s.innerEnd,0,r)}}function rThetaToXY(e,t,i,n){return{x:i+e*Math.cos(t),y:n+e*Math.sin(t)}}function pathArc(e,t,i,n,s,a){const{x:r,y:l,startAngle:c,pixelMargin:d,innerRadius:u}=t,h=Math.max(t.outerRadius+n+i-d,0),f=u>0?u+n+i+d:0;let g=0;const m=s-c;if(n){const st=u>0?u-n:0,ct=h>0?h-n:0,dt=(st+ct)/2,mt=dt!==0?m*dt/(dt+n):m;g=(m-mt)/2}const w=Math.max(.001,m*h-i/PI)/h,_=(m-w)/2,D=c+_+g,B=s-_-g,{outerStart:P,outerEnd:N,innerStart:L,innerEnd:U}=parseBorderRadius$1(t,f,h,B-D),H=h-P,W=h-N,K=D+P/H,G=B-N/W,Y=f+L,J=f+U,ot=D+L/Y,ht=B-U/J;if(e.beginPath(),a){const st=(K+G)/2;if(e.arc(r,l,h,K,st),e.arc(r,l,h,st,G),N>0){const ft=rThetaToXY(W,G,r,l);e.arc(ft.x,ft.y,N,G,B+HALF_PI)}const ct=rThetaToXY(J,B,r,l);if(e.lineTo(ct.x,ct.y),U>0){const ft=rThetaToXY(J,ht,r,l);e.arc(ft.x,ft.y,U,B+HALF_PI,ht+Math.PI)}const dt=(B-U/f+(D+L/f))/2;if(e.arc(r,l,f,B-U/f,dt,!0),e.arc(r,l,f,dt,D+L/f,!0),L>0){const ft=rThetaToXY(Y,ot,r,l);e.arc(ft.x,ft.y,L,ot+Math.PI,D-HALF_PI)}const mt=rThetaToXY(H,D,r,l);if(e.lineTo(mt.x,mt.y),P>0){const ft=rThetaToXY(H,K,r,l);e.arc(ft.x,ft.y,P,D-HALF_PI,K)}}else{e.moveTo(r,l);const st=Math.cos(K)*h+r,ct=Math.sin(K)*h+l;e.lineTo(st,ct);const dt=Math.cos(G)*h+r,mt=Math.sin(G)*h+l;e.lineTo(dt,mt)}e.closePath()}function drawArc(e,t,i,n,s){const{fullCircles:a,startAngle:r,circumference:l}=t;let c=t.endAngle;if(a){pathArc(e,t,i,n,c,s);for(let d=0;d=TAU||_angleBetween(a,l,c),w=_isBetween(r,d+f,u+f);return m&&w}getCenterPoint(t){const{x:i,y:n,startAngle:s,endAngle:a,innerRadius:r,outerRadius:l}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius","circumference"],t),{offset:c,spacing:d}=this.options,u=(s+a)/2,h=(r+l+d+c)/2;return{x:i+Math.cos(u)*h,y:n+Math.sin(u)*h}}tooltipPosition(t){return this.getCenterPoint(t)}draw(t){const{options:i,circumference:n}=this,s=(i.offset||0)/4,a=(i.spacing||0)/2,r=i.circular;if(this.pixelMargin=i.borderAlign==="inner"?.33:0,this.fullCircles=n>TAU?Math.floor(n/TAU):0,n===0||this.innerRadius<0||this.outerRadius<0)return;t.save();const l=(this.startAngle+this.endAngle)/2;t.translate(Math.cos(l)*s,Math.sin(l)*s);const c=1-Math.sin(Math.min(PI,n||0)),d=s*c;t.fillStyle=i.backgroundColor,t.strokeStyle=i.borderColor,drawArc(t,this,d,a,r),drawBorder(t,this,d,a,r),t.restore()}}Q(ArcElement,"id","arc"),Q(ArcElement,"defaults",{borderAlign:"center",borderColor:"#fff",borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0}),Q(ArcElement,"defaultRoutes",{backgroundColor:"backgroundColor"});function setStyle(e,t,i=t){e.lineCap=valueOrDefault(i.borderCapStyle,t.borderCapStyle),e.setLineDash(valueOrDefault(i.borderDash,t.borderDash)),e.lineDashOffset=valueOrDefault(i.borderDashOffset,t.borderDashOffset),e.lineJoin=valueOrDefault(i.borderJoinStyle,t.borderJoinStyle),e.lineWidth=valueOrDefault(i.borderWidth,t.borderWidth),e.strokeStyle=valueOrDefault(i.borderColor,t.borderColor)}function lineTo(e,t,i){e.lineTo(i.x,i.y)}function getLineMethod(e){return e.stepped?_steppedLineTo:e.tension||e.cubicInterpolationMode==="monotone"?_bezierCurveTo:lineTo}function pathVars(e,t,i={}){const n=e.length,{start:s=0,end:a=n-1}=i,{start:r,end:l}=t,c=Math.max(s,r),d=Math.min(a,l),u=sl&&a>l;return{count:n,start:c,loop:t.loop,ilen:d(r+(d?l-N:N))%a,P=()=>{w!==_&&(e.lineTo(u,_),e.lineTo(u,w),e.lineTo(u,D))};for(c&&(g=s[B(0)],e.moveTo(g.x,g.y)),f=0;f<=l;++f){if(g=s[B(f)],g.skip)continue;const N=g.x,L=g.y,U=N|0;U===m?(L_&&(_=L),u=(h*u+N)/++h):(P(),e.lineTo(N,L),m=U,h=0,w=_=L),D=L}P()}function _getSegmentMethod(e){const t=e.options,i=t.borderDash&&t.borderDash.length;return!e._decimated&&!e._loop&&!t.tension&&t.cubicInterpolationMode!=="monotone"&&!t.stepped&&!i?fastPathSegment:pathSegment}function _getInterpolationMethod(e){return e.stepped?_steppedInterpolation:e.tension||e.cubicInterpolationMode==="monotone"?_bezierInterpolation:_pointInLine}function strokePathWithCache(e,t,i,n){let s=t._path;s||(s=t._path=new Path2D,t.path(s,i,n)&&s.closePath()),setStyle(e,t.options),e.stroke(s)}function strokePathDirect(e,t,i,n){const{segments:s,options:a}=t,r=_getSegmentMethod(t);for(const l of s)setStyle(e,a,l.style),e.beginPath(),r(e,t,l,{start:i,end:i+n-1})&&e.closePath(),e.stroke()}const usePath2D=typeof Path2D=="function";function draw(e,t,i,n){usePath2D&&!t.options.segment?strokePathWithCache(e,t,i,n):strokePathDirect(e,t,i,n)}class LineElement extends Element{constructor(t){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,t&&Object.assign(this,t)}updateControlPoints(t,i){const n=this.options;if((n.tension||n.cubicInterpolationMode==="monotone")&&!n.stepped&&!this._pointsUpdated){const s=n.spanGaps?this._loop:this._fullLoop;_updateBezierControlPoints(this._points,n,t,s,i),this._pointsUpdated=!0}}set points(t){this._points=t,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=_computeSegments(this,this.options.segment))}first(){const t=this.segments,i=this.points;return t.length&&i[t[0].start]}last(){const t=this.segments,i=this.points,n=t.length;return n&&i[t[n-1].end]}interpolate(t,i){const n=this.options,s=t[i],a=this.points,r=_boundSegments(this,{property:i,start:s,end:s});if(!r.length)return;const l=[],c=_getInterpolationMethod(n);let d,u;for(d=0,u=r.length;dt!=="borderDash"&&t!=="fill"});function inRange$1(e,t,i,n){const s=e.options,{[i]:a}=e.getProps([i],n);return Math.abs(t-a)e.replace("rgb(","rgba(").replace(")",", 0.5)"));function getBorderColor(e){return BORDER_COLORS[e%BORDER_COLORS.length]}function getBackgroundColor(e){return BACKGROUND_COLORS[e%BACKGROUND_COLORS.length]}function createDefaultDatasetColorizer(){return(e,t)=>{e.borderColor=getBorderColor(t),e.backgroundColor=getBackgroundColor(t)}}function createDoughnutDatasetColorizer(){let e=0;return t=>{t.backgroundColor=t.data.map(()=>getBorderColor(e++))}}function createPolarAreaDatasetColorizer(){let e=0;return t=>{t.backgroundColor=t.data.map(()=>getBackgroundColor(e++))}}function getColorizer(e){return e==="doughnut"||e==="pie"?createDoughnutDatasetColorizer():e==="polarArea"?createPolarAreaDatasetColorizer():createDefaultDatasetColorizer()}function containsColorsDefinitions(e){let t;for(t in e)if(e[t].borderColor||e[t].backgroundColor)return!0;return!1}var plugin_colors={id:"colors",defaults:{enabled:!0},beforeLayout(e,t,i){if(!i.enabled)return;const{type:n,options:{elements:s},data:{datasets:a}}=e.config;if(containsColorsDefinitions(a)||s&&containsColorsDefinitions(s))return;const r=getColorizer(n);a.forEach(r)}};function lttbDecimation(e,t,i,n,s){const a=s.samples||n;if(a>=i)return e.slice(t,t+i);const r=[],l=(i-2)/(a-2);let c=0;const d=t+i-1;let u=t,h,f,g,m,w;for(r[c++]=e[u],h=0;hg&&(g=m,f=e[B],w=B);r[c++]=f,u=w}return r[c++]=e[d],r}function minMaxDecimation(e,t,i,n){let s=0,a=0,r,l,c,d,u,h,f,g,m,w;const _=[],D=t+i-1,B=e[t].x,N=e[D].x-B;for(r=t;rw&&(w=d,f=r),s=(a*s+l.x)/++a;else{const U=r-1;if(!isNullOrUndef(h)&&!isNullOrUndef(f)){const H=Math.min(h,f),W=Math.max(h,f);H!==g&&H!==U&&_.push({...e[H],x:s}),W!==g&&W!==U&&_.push({...e[W],x:s})}r>0&&U!==g&&_.push(e[U]),_.push(l),u=L,a=0,m=w=d,h=f=g=r}}return _}function cleanDecimatedDataset(e){if(e._decimated){const t=e._data;delete e._decimated,delete e._data,Object.defineProperty(e,"data",{value:t})}}function cleanDecimatedData(e){e.data.datasets.forEach(t=>{cleanDecimatedDataset(t)})}function getStartAndCountOfVisiblePointsSimplified(e,t){const i=t.length;let n=0,s;const{iScale:a}=e,{min:r,max:l,minDefined:c,maxDefined:d}=a.getUserBounds();return c&&(n=_limitValue(_lookupByKey(t,a.axis,r).lo,0,i-1)),d?s=_limitValue(_lookupByKey(t,a.axis,l).hi+1,n,i)-n:s=i-n,{start:n,count:s}}var plugin_decimation={id:"decimation",defaults:{algorithm:"min-max",enabled:!1},beforeElementsUpdate:(e,t,i)=>{if(!i.enabled){cleanDecimatedData(e);return}const n=e.width;e.data.datasets.forEach((s,a)=>{const{_data:r,indexAxis:l}=s,c=e.getDatasetMeta(a),d=r||s.data;if(resolve([l,e.options.indexAxis])==="y"||!c.controller.supportsDecimation)return;const u=e.scales[c.xAxisID];if(u.type!=="linear"&&u.type!=="time"||e.options.parsing)return;let{start:h,count:f}=getStartAndCountOfVisiblePointsSimplified(c,d);const g=i.threshold||4*n;if(f<=g){cleanDecimatedDataset(s);return}isNullOrUndef(r)&&(s._data=d,delete s.data,Object.defineProperty(s,"data",{configurable:!0,enumerable:!0,get:function(){return this._decimated},set:function(w){this._data=w}}));let m;switch(i.algorithm){case"lttb":m=lttbDecimation(d,h,f,n,i);break;case"min-max":m=minMaxDecimation(d,h,f,n);break;default:throw new Error(`Unsupported decimation algorithm '${i.algorithm}'`)}s._decimated=m})},destroy(e){cleanDecimatedData(e)}};function _segments(e,t,i){const n=e.segments,s=e.points,a=t.points,r=[];for(const l of n){let{start:c,end:d}=l;d=_findSegmentEnd(c,d,s);const u=_getBounds(i,s[c],s[d],l.loop);if(!t.segments){r.push({source:l,target:u,start:s[c],end:s[d]});continue}const h=_boundSegments(t,u);for(const f of h){const g=_getBounds(i,a[f.start],a[f.end],f.loop),m=_boundSegment(l,s,g);for(const w of m)r.push({source:w,target:f,start:{[i]:_getEdge(u,g,"start",Math.max)},end:{[i]:_getEdge(u,g,"end",Math.min)}})}}return r}function _getBounds(e,t,i,n){if(n)return;let s=t[e],a=i[e];return e==="angle"&&(s=_normalizeAngle(s),a=_normalizeAngle(a)),{property:e,start:s,end:a}}function _pointsFromSegments(e,t){const{x:i=null,y:n=null}=e||{},s=t.points,a=[];return t.segments.forEach(({start:r,end:l})=>{l=_findSegmentEnd(r,l,s);const c=s[r],d=s[l];n!==null?(a.push({x:c.x,y:n}),a.push({x:d.x,y:n})):i!==null&&(a.push({x:i,y:c.y}),a.push({x:i,y:d.y}))}),a}function _findSegmentEnd(e,t,i){for(;t>e;t--){const n=i[t];if(!isNaN(n.x)&&!isNaN(n.y))break}return t}function _getEdge(e,t,i,n){return e&&t?n(e[i],t[i]):e?e[i]:t?t[i]:0}function _createBoundaryLine(e,t){let i=[],n=!1;return isArray(e)?(n=!0,i=e):i=_pointsFromSegments(e,t),i.length?new LineElement({points:i,options:{tension:0},_loop:n,_fullLoop:n}):null}function _shouldApplyFill(e){return e&&e.fill!==!1}function _resolveTarget(e,t,i){let s=e[t].fill;const a=[t];let r;if(!i)return s;for(;s!==!1&&a.indexOf(s)===-1;){if(!isNumberFinite(s))return s;if(r=e[s],!r)return!1;if(r.visible)return s;a.push(s),s=r.fill}return!1}function _decodeFill(e,t,i){const n=parseFillOption(e);if(isObject(n))return isNaN(n.value)?!1:n;let s=parseFloat(n);return isNumberFinite(s)&&Math.floor(s)===s?decodeTargetIndex(n[0],t,s,i):["origin","start","end","stack","shape"].indexOf(n)>=0&&n}function decodeTargetIndex(e,t,i,n){return(e==="-"||e==="+")&&(i=t+i),i===t||i<0||i>=n?!1:i}function _getTargetPixel(e,t){let i=null;return e==="start"?i=t.bottom:e==="end"?i=t.top:isObject(e)?i=t.getPixelForValue(e.value):t.getBasePixel&&(i=t.getBasePixel()),i}function _getTargetValue(e,t,i){let n;return e==="start"?n=i:e==="end"?n=t.options.reverse?t.min:t.max:isObject(e)?n=e.value:n=t.getBaseValue(),n}function parseFillOption(e){const t=e.options,i=t.fill;let n=valueOrDefault(i&&i.target,i);return n===void 0&&(n=!!t.backgroundColor),n===!1||n===null?!1:n===!0?"origin":n}function _buildStackLine(e){const{scale:t,index:i,line:n}=e,s=[],a=n.segments,r=n.points,l=getLinesBelow(t,i);l.push(_createBoundaryLine({x:null,y:t.bottom},n));for(let c=0;c=0;--r){const l=s[r].$filler;!l||(l.line.updateControlPoints(a,l.axis),n&&l.fill&&_drawfill(e.ctx,l,a))}},beforeDatasetsDraw(e,t,i){if(i.drawTime!=="beforeDatasetsDraw")return;const n=e.getSortedVisibleDatasetMetas();for(let s=n.length-1;s>=0;--s){const a=n[s].$filler;_shouldApplyFill(a)&&_drawfill(e.ctx,a,e.chartArea)}},beforeDatasetDraw(e,t,i){const n=t.meta.$filler;!_shouldApplyFill(n)||i.drawTime!=="beforeDatasetDraw"||_drawfill(e.ctx,n,e.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};const getBoxSize=(e,t)=>{let{boxHeight:i=t,boxWidth:n=t}=e;return e.usePointStyle&&(i=Math.min(i,t),n=e.pointStyleWidth||Math.min(n,t)),{boxWidth:n,boxHeight:i,itemHeight:Math.max(t,i)}},itemsEqual=(e,t)=>e!==null&&t!==null&&e.datasetIndex===t.datasetIndex&&e.index===t.index;class Legend extends Element{constructor(t){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,i,n){this.maxWidth=t,this.maxHeight=i,this._margins=n,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const t=this.options.labels||{};let i=callback(t.generateLabels,[this.chart],this)||[];t.filter&&(i=i.filter(n=>t.filter(n,this.chart.data))),t.sort&&(i=i.sort((n,s)=>t.sort(n,s,this.chart.data))),this.options.reverse&&i.reverse(),this.legendItems=i}fit(){const{options:t,ctx:i}=this;if(!t.display){this.width=this.height=0;return}const n=t.labels,s=toFont(n.font),a=s.size,r=this._computeTitleHeight(),{boxWidth:l,itemHeight:c}=getBoxSize(n,a);let d,u;i.font=s.string,this.isHorizontal()?(d=this.maxWidth,u=this._fitRows(r,a,l,c)+10):(u=this.maxHeight,d=this._fitCols(r,s,l,c)+10),this.width=Math.min(d,t.maxWidth||this.maxWidth),this.height=Math.min(u,t.maxHeight||this.maxHeight)}_fitRows(t,i,n,s){const{ctx:a,maxWidth:r,options:{labels:{padding:l}}}=this,c=this.legendHitBoxes=[],d=this.lineWidths=[0],u=s+l;let h=t;a.textAlign="left",a.textBaseline="middle";let f=-1,g=-u;return this.legendItems.forEach((m,w)=>{const _=n+i/2+a.measureText(m.text).width;(w===0||d[d.length-1]+_+2*l>r)&&(h+=u,d[d.length-(w>0?0:1)]=0,g+=u,f++),c[w]={left:0,top:g,row:f,width:_,height:s},d[d.length-1]+=_+l}),h}_fitCols(t,i,n,s){const{ctx:a,maxHeight:r,options:{labels:{padding:l}}}=this,c=this.legendHitBoxes=[],d=this.columnSizes=[],u=r-t;let h=l,f=0,g=0,m=0,w=0;return this.legendItems.forEach((_,D)=>{const{itemWidth:B,itemHeight:P}=calculateItemSize(n,i,a,_,s);D>0&&g+P+2*l>u&&(h+=f+l,d.push({width:f,height:g}),m+=f+l,w++,f=g=0),c[D]={left:m,top:g,col:w,width:B,height:P},f=Math.max(f,B),g+=P+l}),h+=f,d.push({width:f,height:g}),h}adjustHitBoxes(){if(!this.options.display)return;const t=this._computeTitleHeight(),{legendHitBoxes:i,options:{align:n,labels:{padding:s},rtl:a}}=this,r=getRtlAdapter(a,this.left,this.width);if(this.isHorizontal()){let l=0,c=_alignStartEnd(n,this.left+s,this.right-this.lineWidths[l]);for(const d of i)l!==d.row&&(l=d.row,c=_alignStartEnd(n,this.left+s,this.right-this.lineWidths[l])),d.top+=this.top+t+s,d.left=r.leftForLtr(r.x(c),d.width),c+=d.width+s}else{let l=0,c=_alignStartEnd(n,this.top+t+s,this.bottom-this.columnSizes[l].height);for(const d of i)d.col!==l&&(l=d.col,c=_alignStartEnd(n,this.top+t+s,this.bottom-this.columnSizes[l].height)),d.top=c,d.left+=this.left+s,d.left=r.leftForLtr(r.x(d.left),d.width),c+=d.height+s}}isHorizontal(){return this.options.position==="top"||this.options.position==="bottom"}draw(){if(this.options.display){const t=this.ctx;clipArea(t,this),this._draw(),unclipArea(t)}}_draw(){const{options:t,columnSizes:i,lineWidths:n,ctx:s}=this,{align:a,labels:r}=t,l=defaults.color,c=getRtlAdapter(t.rtl,this.left,this.width),d=toFont(r.font),{padding:u}=r,h=d.size,f=h/2;let g;this.drawTitle(),s.textAlign=c.textAlign("left"),s.textBaseline="middle",s.lineWidth=.5,s.font=d.string;const{boxWidth:m,boxHeight:w,itemHeight:_}=getBoxSize(r,h),D=function(U,H,W){if(isNaN(m)||m<=0||isNaN(w)||w<0)return;s.save();const K=valueOrDefault(W.lineWidth,1);if(s.fillStyle=valueOrDefault(W.fillStyle,l),s.lineCap=valueOrDefault(W.lineCap,"butt"),s.lineDashOffset=valueOrDefault(W.lineDashOffset,0),s.lineJoin=valueOrDefault(W.lineJoin,"miter"),s.lineWidth=K,s.strokeStyle=valueOrDefault(W.strokeStyle,l),s.setLineDash(valueOrDefault(W.lineDash,[])),r.usePointStyle){const G={radius:w*Math.SQRT2/2,pointStyle:W.pointStyle,rotation:W.rotation,borderWidth:K},Y=c.xPlus(U,m/2),J=H+f;drawPointLegend(s,G,Y,J,r.pointStyleWidth&&m)}else{const G=H+Math.max((h-w)/2,0),Y=c.leftForLtr(U,m),J=toTRBLCorners(W.borderRadius);s.beginPath(),Object.values(J).some(ot=>ot!==0)?addRoundedRectPath(s,{x:Y,y:G,w:m,h:w,radius:J}):s.rect(Y,G,m,w),s.fill(),K!==0&&s.stroke()}s.restore()},B=function(U,H,W){renderText(s,W.text,U,H+_/2,d,{strikethrough:W.hidden,textAlign:c.textAlign(W.textAlign)})},P=this.isHorizontal(),N=this._computeTitleHeight();P?g={x:_alignStartEnd(a,this.left+u,this.right-n[0]),y:this.top+u+N,line:0}:g={x:this.left+u,y:_alignStartEnd(a,this.top+N+u,this.bottom-i[0].height),line:0},overrideTextDirection(this.ctx,t.textDirection);const L=_+u;this.legendItems.forEach((U,H)=>{s.strokeStyle=U.fontColor,s.fillStyle=U.fontColor;const W=s.measureText(U.text).width,K=c.textAlign(U.textAlign||(U.textAlign=r.textAlign)),G=m+f+W;let Y=g.x,J=g.y;c.setWidth(this.width),P?H>0&&Y+G+u>this.right&&(J=g.y+=L,g.line++,Y=g.x=_alignStartEnd(a,this.left+u,this.right-n[g.line])):H>0&&J+L>this.bottom&&(Y=g.x=Y+i[g.line].width+u,g.line++,J=g.y=_alignStartEnd(a,this.top+N+u,this.bottom-i[g.line].height));const ot=c.x(Y);if(D(ot,J,U),Y=_textX(K,Y+m+f,P?Y+G:this.right,t.rtl),B(c.x(Y),J,U),P)g.x+=G+u;else if(typeof U.text!="string"){const ht=d.lineHeight;g.y+=calculateLegendItemHeight(U,ht)}else g.y+=L}),restoreTextDirection(this.ctx,t.textDirection)}drawTitle(){const t=this.options,i=t.title,n=toFont(i.font),s=toPadding(i.padding);if(!i.display)return;const a=getRtlAdapter(t.rtl,this.left,this.width),r=this.ctx,l=i.position,c=n.size/2,d=s.top+c;let u,h=this.left,f=this.width;if(this.isHorizontal())f=Math.max(...this.lineWidths),u=this.top+d,h=_alignStartEnd(t.align,h,this.right-f);else{const m=this.columnSizes.reduce((w,_)=>Math.max(w,_.height),0);u=d+_alignStartEnd(t.align,this.top,this.bottom-m-t.labels.padding-this._computeTitleHeight())}const g=_alignStartEnd(l,h,h+f);r.textAlign=a.textAlign(_toLeftRightCenter(l)),r.textBaseline="middle",r.strokeStyle=i.color,r.fillStyle=i.color,r.font=n.string,renderText(r,i.text,g,u,n)}_computeTitleHeight(){const t=this.options.title,i=toFont(t.font),n=toPadding(t.padding);return t.display?i.lineHeight+n.height:0}_getLegendItemAt(t,i){let n,s,a;if(_isBetween(t,this.left,this.right)&&_isBetween(i,this.top,this.bottom)){for(a=this.legendHitBoxes,n=0;na.length>r.length?a:r)),t+i.size/2+n.measureText(s).width}function calculateItemHeight(e,t,i){let n=e;return typeof t.text!="string"&&(n=calculateLegendItemHeight(t,i)),n}function calculateLegendItemHeight(e,t){const i=e.text?e.text.length+.5:0;return t*i}function isListened(e,t){return!!((e==="mousemove"||e==="mouseout")&&(t.onHover||t.onLeave)||t.onClick&&(e==="click"||e==="mouseup"))}var plugin_legend={id:"legend",_element:Legend,start(e,t,i){const n=e.legend=new Legend({ctx:e.ctx,options:i,chart:e});layouts.configure(e,n,i),layouts.addBox(e,n)},stop(e){layouts.removeBox(e,e.legend),delete e.legend},beforeUpdate(e,t,i){const n=e.legend;layouts.configure(e,n,i),n.options=i},afterUpdate(e){const t=e.legend;t.buildLabels(),t.adjustHitBoxes()},afterEvent(e,t){t.replay||e.legend.handleEvent(t.event)},defaults:{display:!0,position:"top",align:"center",fullSize:!0,reverse:!1,weight:1e3,onClick(e,t,i){const n=t.datasetIndex,s=i.chart;s.isDatasetVisible(n)?(s.hide(n),t.hidden=!0):(s.show(n),t.hidden=!1)},onHover:null,onLeave:null,labels:{color:e=>e.chart.options.color,boxWidth:40,padding:10,generateLabels(e){const t=e.data.datasets,{labels:{usePointStyle:i,pointStyle:n,textAlign:s,color:a,useBorderRadius:r,borderRadius:l}}=e.legend.options;return e._getSortedDatasetMetas().map(c=>{const d=c.controller.getStyle(i?0:void 0),u=toPadding(d.borderWidth);return{text:t[c.index].label,fillStyle:d.backgroundColor,fontColor:a,hidden:!c.visible,lineCap:d.borderCapStyle,lineDash:d.borderDash,lineDashOffset:d.borderDashOffset,lineJoin:d.borderJoinStyle,lineWidth:(u.width+u.height)/4,strokeStyle:d.borderColor,pointStyle:n||d.pointStyle,rotation:d.rotation,textAlign:s||d.textAlign,borderRadius:r&&(l||d.borderRadius),datasetIndex:c.index}},this)}},title:{color:e=>e.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:e=>!e.startsWith("on"),labels:{_scriptable:e=>!["generateLabels","filter","sort"].includes(e)}}};class Title extends Element{constructor(t){super(),this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,i){const n=this.options;if(this.left=0,this.top=0,!n.display){this.width=this.height=this.right=this.bottom=0;return}this.width=this.right=t,this.height=this.bottom=i;const s=isArray(n.text)?n.text.length:1;this._padding=toPadding(n.padding);const a=s*toFont(n.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=a:this.width=a}isHorizontal(){const t=this.options.position;return t==="top"||t==="bottom"}_drawArgs(t){const{top:i,left:n,bottom:s,right:a,options:r}=this,l=r.align;let c=0,d,u,h;return this.isHorizontal()?(u=_alignStartEnd(l,n,a),h=i+t,d=a-n):(r.position==="left"?(u=n+t,h=_alignStartEnd(l,s,i),c=PI*-.5):(u=a-t,h=_alignStartEnd(l,i,s),c=PI*.5),d=s-i),{titleX:u,titleY:h,maxWidth:d,rotation:c}}draw(){const t=this.ctx,i=this.options;if(!i.display)return;const n=toFont(i.font),a=n.lineHeight/2+this._padding.top,{titleX:r,titleY:l,maxWidth:c,rotation:d}=this._drawArgs(a);renderText(t,i.text,0,0,n,{color:i.color,maxWidth:c,rotation:d,textAlign:_toLeftRightCenter(i.align),textBaseline:"middle",translation:[r,l]})}}function createTitle(e,t){const i=new Title({ctx:e.ctx,options:t,chart:e});layouts.configure(e,i,t),layouts.addBox(e,i),e.titleBlock=i}var plugin_title={id:"title",_element:Title,start(e,t,i){createTitle(e,i)},stop(e){const t=e.titleBlock;layouts.removeBox(e,t),delete e.titleBlock},beforeUpdate(e,t,i){const n=e.titleBlock;layouts.configure(e,n,i),n.options=i},defaults:{align:"center",display:!1,font:{weight:"bold"},fullSize:!0,padding:10,position:"top",text:"",weight:2e3},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const map=new WeakMap;var plugin_subtitle={id:"subtitle",start(e,t,i){const n=new Title({ctx:e.ctx,options:i,chart:e});layouts.configure(e,n,i),layouts.addBox(e,n),map.set(e,n)},stop(e){layouts.removeBox(e,map.get(e)),map.delete(e)},beforeUpdate(e,t,i){const n=map.get(e);layouts.configure(e,n,i),n.options=i},defaults:{align:"center",display:!1,font:{weight:"normal"},fullSize:!0,padding:0,position:"top",text:"",weight:1500},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const positioners={average(e){if(!e.length)return!1;let t,i,n=0,s=0,a=0;for(t=0,i=e.length;t-1?e.split(` -`):e}function createTooltipItem(e,t){const{element:i,datasetIndex:n,index:s}=t,a=e.getDatasetMeta(n).controller,{label:r,value:l}=a.getLabelAndValue(s);return{chart:e,label:r,parsed:a.getParsed(s),raw:e.data.datasets[n].data[s],formattedValue:l,dataset:a.getDataset(),dataIndex:s,datasetIndex:n,element:i}}function getTooltipSize(e,t){const i=e.chart.ctx,{body:n,footer:s,title:a}=e,{boxWidth:r,boxHeight:l}=t,c=toFont(t.bodyFont),d=toFont(t.titleFont),u=toFont(t.footerFont),h=a.length,f=s.length,g=n.length,m=toPadding(t.padding);let w=m.height,_=0,D=n.reduce((N,L)=>N+L.before.length+L.lines.length+L.after.length,0);if(D+=e.beforeBody.length+e.afterBody.length,h&&(w+=h*d.lineHeight+(h-1)*t.titleSpacing+t.titleMarginBottom),D){const N=t.displayColors?Math.max(l,c.lineHeight):c.lineHeight;w+=g*N+(D-g)*c.lineHeight+(D-1)*t.bodySpacing}f&&(w+=t.footerMarginTop+f*u.lineHeight+(f-1)*t.footerSpacing);let B=0;const P=function(N){_=Math.max(_,i.measureText(N).width+B)};return i.save(),i.font=d.string,each(e.title,P),i.font=c.string,each(e.beforeBody.concat(e.afterBody),P),B=t.displayColors?r+2+t.boxPadding:0,each(n,N=>{each(N.before,P),each(N.lines,P),each(N.after,P)}),B=0,i.font=u.string,each(e.footer,P),i.restore(),_+=m.width,{width:_,height:w}}function determineYAlign(e,t){const{y:i,height:n}=t;return ie.height-n/2?"bottom":"center"}function doesNotFitWithAlign(e,t,i,n){const{x:s,width:a}=n,r=i.caretSize+i.caretPadding;if(e==="left"&&s+a+r>t.width||e==="right"&&s-a-r<0)return!0}function determineXAlign(e,t,i,n){const{x:s,width:a}=i,{width:r,chartArea:{left:l,right:c}}=e;let d="center";return n==="center"?d=s<=(l+c)/2?"left":"right":s<=a/2?d="left":s>=r-a/2&&(d="right"),doesNotFitWithAlign(d,e,t,i)&&(d="center"),d}function determineAlignment(e,t,i){const n=i.yAlign||t.yAlign||determineYAlign(e,i);return{xAlign:i.xAlign||t.xAlign||determineXAlign(e,t,i,n),yAlign:n}}function alignX(e,t){let{x:i,width:n}=e;return t==="right"?i-=n:t==="center"&&(i-=n/2),i}function alignY(e,t,i){let{y:n,height:s}=e;return t==="top"?n+=i:t==="bottom"?n-=s+i:n-=s/2,n}function getBackgroundPoint(e,t,i,n){const{caretSize:s,caretPadding:a,cornerRadius:r}=e,{xAlign:l,yAlign:c}=i,d=s+a,{topLeft:u,topRight:h,bottomLeft:f,bottomRight:g}=toTRBLCorners(r);let m=alignX(t,l);const w=alignY(t,c,d);return c==="center"?l==="left"?m+=d:l==="right"&&(m-=d):l==="left"?m-=Math.max(u,f)+s:l==="right"&&(m+=Math.max(h,g)+s),{x:_limitValue(m,0,n.width-t.width),y:_limitValue(w,0,n.height-t.height)}}function getAlignedX(e,t,i){const n=toPadding(i.padding);return t==="center"?e.x+e.width/2:t==="right"?e.x+e.width-n.right:e.x+n.left}function getBeforeAfterBodyLines(e){return pushOrConcat([],splitNewlines(e))}function createTooltipContext(e,t,i){return createContext(e,{tooltip:t,tooltipItems:i,type:"tooltip"})}function overrideCallbacks(e,t){const i=t&&t.dataset&&t.dataset.tooltip&&t.dataset.tooltip.callbacks;return i?e.override(i):e}const defaultCallbacks={beforeTitle:noop,title(e){if(e.length>0){const t=e[0],i=t.chart.data.labels,n=i?i.length:0;if(this&&this.options&&this.options.mode==="dataset")return t.dataset.label||"";if(t.label)return t.label;if(n>0&&t.dataIndex"u"?defaultCallbacks[t].call(i,n):s}class Tooltip extends Element{constructor(t){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=t.chart,this.options=t.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(t){this.options=t,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const t=this._cachedAnimations;if(t)return t;const i=this.chart,n=this.options.setContext(this.getContext()),s=n.enabled&&i.options.animation&&n.animations,a=new Animations(this.chart,s);return s._cacheable&&(this._cachedAnimations=Object.freeze(a)),a}getContext(){return this.$context||(this.$context=createTooltipContext(this.chart.getContext(),this,this._tooltipItems))}getTitle(t,i){const{callbacks:n}=i,s=invokeCallbackWithFallback(n,"beforeTitle",this,t),a=invokeCallbackWithFallback(n,"title",this,t),r=invokeCallbackWithFallback(n,"afterTitle",this,t);let l=[];return l=pushOrConcat(l,splitNewlines(s)),l=pushOrConcat(l,splitNewlines(a)),l=pushOrConcat(l,splitNewlines(r)),l}getBeforeBody(t,i){return getBeforeAfterBodyLines(invokeCallbackWithFallback(i.callbacks,"beforeBody",this,t))}getBody(t,i){const{callbacks:n}=i,s=[];return each(t,a=>{const r={before:[],lines:[],after:[]},l=overrideCallbacks(n,a);pushOrConcat(r.before,splitNewlines(invokeCallbackWithFallback(l,"beforeLabel",this,a))),pushOrConcat(r.lines,invokeCallbackWithFallback(l,"label",this,a)),pushOrConcat(r.after,splitNewlines(invokeCallbackWithFallback(l,"afterLabel",this,a))),s.push(r)}),s}getAfterBody(t,i){return getBeforeAfterBodyLines(invokeCallbackWithFallback(i.callbacks,"afterBody",this,t))}getFooter(t,i){const{callbacks:n}=i,s=invokeCallbackWithFallback(n,"beforeFooter",this,t),a=invokeCallbackWithFallback(n,"footer",this,t),r=invokeCallbackWithFallback(n,"afterFooter",this,t);let l=[];return l=pushOrConcat(l,splitNewlines(s)),l=pushOrConcat(l,splitNewlines(a)),l=pushOrConcat(l,splitNewlines(r)),l}_createItems(t){const i=this._active,n=this.chart.data,s=[],a=[],r=[];let l=[],c,d;for(c=0,d=i.length;ct.filter(u,h,f,n))),t.itemSort&&(l=l.sort((u,h)=>t.itemSort(u,h,n))),each(l,u=>{const h=overrideCallbacks(t.callbacks,u);s.push(invokeCallbackWithFallback(h,"labelColor",this,u)),a.push(invokeCallbackWithFallback(h,"labelPointStyle",this,u)),r.push(invokeCallbackWithFallback(h,"labelTextColor",this,u))}),this.labelColors=s,this.labelPointStyles=a,this.labelTextColors=r,this.dataPoints=l,l}update(t,i){const n=this.options.setContext(this.getContext()),s=this._active;let a,r=[];if(!s.length)this.opacity!==0&&(a={opacity:0});else{const l=positioners[n.position].call(this,s,this._eventPosition);r=this._createItems(n),this.title=this.getTitle(r,n),this.beforeBody=this.getBeforeBody(r,n),this.body=this.getBody(r,n),this.afterBody=this.getAfterBody(r,n),this.footer=this.getFooter(r,n);const c=this._size=getTooltipSize(this,n),d=Object.assign({},l,c),u=determineAlignment(this.chart,n,d),h=getBackgroundPoint(n,d,u,this.chart);this.xAlign=u.xAlign,this.yAlign=u.yAlign,a={opacity:1,x:h.x,y:h.y,width:c.width,height:c.height,caretX:l.x,caretY:l.y}}this._tooltipItems=r,this.$context=void 0,a&&this._resolveAnimations().update(this,a),t&&n.external&&n.external.call(this,{chart:this.chart,tooltip:this,replay:i})}drawCaret(t,i,n,s){const a=this.getCaretPosition(t,n,s);i.lineTo(a.x1,a.y1),i.lineTo(a.x2,a.y2),i.lineTo(a.x3,a.y3)}getCaretPosition(t,i,n){const{xAlign:s,yAlign:a}=this,{caretSize:r,cornerRadius:l}=n,{topLeft:c,topRight:d,bottomLeft:u,bottomRight:h}=toTRBLCorners(l),{x:f,y:g}=t,{width:m,height:w}=i;let _,D,B,P,N,L;return a==="center"?(N=g+w/2,s==="left"?(_=f,D=_-r,P=N+r,L=N-r):(_=f+m,D=_+r,P=N-r,L=N+r),B=_):(s==="left"?D=f+Math.max(c,u)+r:s==="right"?D=f+m-Math.max(d,h)-r:D=this.caretX,a==="top"?(P=g,N=P-r,_=D-r,B=D+r):(P=g+w,N=P+r,_=D+r,B=D-r),L=P),{x1:_,x2:D,x3:B,y1:P,y2:N,y3:L}}drawTitle(t,i,n){const s=this.title,a=s.length;let r,l,c;if(a){const d=getRtlAdapter(n.rtl,this.x,this.width);for(t.x=getAlignedX(this,n.titleAlign,n),i.textAlign=d.textAlign(n.titleAlign),i.textBaseline="middle",r=toFont(n.titleFont),l=n.titleSpacing,i.fillStyle=n.titleColor,i.font=r.string,c=0;cP!==0)?(t.beginPath(),t.fillStyle=a.multiKeyBackground,addRoundedRectPath(t,{x:_,y:w,w:d,h:c,radius:B}),t.fill(),t.stroke(),t.fillStyle=r.backgroundColor,t.beginPath(),addRoundedRectPath(t,{x:D,y:w+1,w:d-2,h:c-2,radius:B}),t.fill()):(t.fillStyle=a.multiKeyBackground,t.fillRect(_,w,d,c),t.strokeRect(_,w,d,c),t.fillStyle=r.backgroundColor,t.fillRect(D,w+1,d-2,c-2))}t.fillStyle=this.labelTextColors[n]}drawBody(t,i,n){const{body:s}=this,{bodySpacing:a,bodyAlign:r,displayColors:l,boxHeight:c,boxWidth:d,boxPadding:u}=n,h=toFont(n.bodyFont);let f=h.lineHeight,g=0;const m=getRtlAdapter(n.rtl,this.x,this.width),w=function(W){i.fillText(W,m.x(t.x+g),t.y+f/2),t.y+=f+a},_=m.textAlign(r);let D,B,P,N,L,U,H;for(i.textAlign=r,i.textBaseline="middle",i.font=h.string,t.x=getAlignedX(this,_,n),i.fillStyle=n.bodyColor,each(this.beforeBody,w),g=l&&_!=="right"?r==="center"?d/2+u:d+2+u:0,N=0,U=s.length;N0&&i.stroke()}_updateAnimationTarget(t){const i=this.chart,n=this.$animations,s=n&&n.x,a=n&&n.y;if(s||a){const r=positioners[t.position].call(this,this._active,this._eventPosition);if(!r)return;const l=this._size=getTooltipSize(this,t),c=Object.assign({},r,this._size),d=determineAlignment(i,t,c),u=getBackgroundPoint(t,c,d,i);(s._to!==u.x||a._to!==u.y)&&(this.xAlign=d.xAlign,this.yAlign=d.yAlign,this.width=l.width,this.height=l.height,this.caretX=r.x,this.caretY=r.y,this._resolveAnimations().update(this,u))}}_willRender(){return!!this.opacity}draw(t){const i=this.options.setContext(this.getContext());let n=this.opacity;if(!n)return;this._updateAnimationTarget(i);const s={width:this.width,height:this.height},a={x:this.x,y:this.y};n=Math.abs(n)<.001?0:n;const r=toPadding(i.padding),l=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;i.enabled&&l&&(t.save(),t.globalAlpha=n,this.drawBackground(a,t,s,i),overrideTextDirection(t,i.textDirection),a.y+=r.top,this.drawTitle(a,t,i),this.drawBody(a,t,i),this.drawFooter(a,t,i),restoreTextDirection(t,i.textDirection),t.restore())}getActiveElements(){return this._active||[]}setActiveElements(t,i){const n=this._active,s=t.map(({datasetIndex:l,index:c})=>{const d=this.chart.getDatasetMeta(l);if(!d)throw new Error("Cannot find a dataset at index "+l);return{datasetIndex:l,element:d.data[c],index:c}}),a=!_elementsEqual(n,s),r=this._positionChanged(s,i);(a||r)&&(this._active=s,this._eventPosition=i,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(t,i,n=!0){if(i&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const s=this.options,a=this._active||[],r=this._getActiveElements(t,a,i,n),l=this._positionChanged(r,t),c=i||!_elementsEqual(r,a)||l;return c&&(this._active=r,(s.enabled||s.external)&&(this._eventPosition={x:t.x,y:t.y},this.update(!0,i))),c}_getActiveElements(t,i,n,s){const a=this.options;if(t.type==="mouseout")return[];if(!s)return i;const r=this.chart.getElementsAtEventForMode(t,a.mode,a,n);return a.reverse&&r.reverse(),r}_positionChanged(t,i){const{caretX:n,caretY:s,options:a}=this,r=positioners[a.position].call(this,t,i);return r!==!1&&(n!==r.x||s!==r.y)}}Q(Tooltip,"positioners",positioners);var plugin_tooltip={id:"tooltip",_element:Tooltip,positioners,afterInit(e,t,i){i&&(e.tooltip=new Tooltip({chart:e,options:i}))},beforeUpdate(e,t,i){e.tooltip&&e.tooltip.initialize(i)},reset(e,t,i){e.tooltip&&e.tooltip.initialize(i)},afterDraw(e){const t=e.tooltip;if(t&&t._willRender()){const i={tooltip:t};if(e.notifyPlugins("beforeTooltipDraw",{...i,cancelable:!0})===!1)return;t.draw(e.ctx),e.notifyPlugins("afterTooltipDraw",i)}},afterEvent(e,t){if(e.tooltip){const i=t.replay;e.tooltip.handleEvent(t.event,i,t.inChartArea)&&(t.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(e,t)=>t.bodyFont.size,boxWidth:(e,t)=>t.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:defaultCallbacks},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:e=>e!=="filter"&&e!=="itemSort"&&e!=="external",_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]},plugins=Object.freeze({__proto__:null,Colors:plugin_colors,Decimation:plugin_decimation,Filler:index$3,Legend:plugin_legend,SubTitle:plugin_subtitle,Title:plugin_title,Tooltip:plugin_tooltip});const addIfString=(e,t,i,n)=>(typeof t=="string"?(i=e.push(t)-1,n.unshift({index:i,label:t})):isNaN(t)&&(i=null),i);function findOrAddLabel(e,t,i,n){const s=e.indexOf(t);if(s===-1)return addIfString(e,t,i,n);const a=e.lastIndexOf(t);return s!==a?i:s}const validIndex=(e,t)=>e===null?null:_limitValue(Math.round(e),0,t);function _getLabelForValue(e){const t=this.getLabels();return e>=0&&ei.length-1?null:this.getPixelForValue(i[t].value)}getValueForPixel(t){return Math.round(this._startValue+this.getDecimalForPixel(t)*this._valueRange)}getBasePixel(){return this.bottom}}Q(CategoryScale,"id","category"),Q(CategoryScale,"defaults",{ticks:{callback:_getLabelForValue}});function generateTicks$1(e,t){const i=[],{bounds:s,step:a,min:r,max:l,precision:c,count:d,maxTicks:u,maxDigits:h,includeBounds:f}=e,g=a||1,m=u-1,{min:w,max:_}=t,D=!isNullOrUndef(r),B=!isNullOrUndef(l),P=!isNullOrUndef(d),N=(_-w)/(h+1);let L=niceNum((_-w)/m/g)*g,U,H,W,K;if(L<1e-14&&!D&&!B)return[{value:w},{value:_}];K=Math.ceil(_/L)-Math.floor(w/L),K>m&&(L=niceNum(K*L/m/g)*g),isNullOrUndef(c)||(U=Math.pow(10,c),L=Math.ceil(L*U)/U),s==="ticks"?(H=Math.floor(w/L)*L,W=Math.ceil(_/L)*L):(H=w,W=_),D&&B&&a&&almostWhole((l-r)/a,L/1e3)?(K=Math.round(Math.min((l-r)/L,u)),L=(l-r)/K,H=r,W=l):P?(H=D?r:H,W=B?l:W,K=d-1,L=(W-H)/K):(K=(W-H)/L,almostEquals(K,Math.round(K),L/1e3)?K=Math.round(K):K=Math.ceil(K));const G=Math.max(_decimalPlaces(L),_decimalPlaces(H));U=Math.pow(10,isNullOrUndef(c)?G:c),H=Math.round(H*U)/U,W=Math.round(W*U)/U;let Y=0;for(D&&(f&&H!==r?(i.push({value:r}),Hs=i?s:c,l=c=>a=n?a:c;if(t){const c=sign(s),d=sign(a);c<0&&d<0?l(0):c>0&&d>0&&r(0)}if(s===a){let c=a===0?1:Math.abs(a*.05);l(a+c),t||r(s-c)}this.min=s,this.max=a}getTickLimit(){const t=this.options.ticks;let{maxTicksLimit:i,stepSize:n}=t,s;return n?(s=Math.ceil(this.max/n)-Math.floor(this.min/n)+1,s>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${n} would result generating up to ${s} ticks. Limiting to 1000.`),s=1e3)):(s=this.computeTickLimit(),i=i||11),i&&(s=Math.min(i,s)),s}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const t=this.options,i=t.ticks;let n=this.getTickLimit();n=Math.max(2,n);const s={maxTicks:n,bounds:t.bounds,min:t.min,max:t.max,precision:i.precision,step:i.stepSize,count:i.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:i.minRotation||0,includeBounds:i.includeBounds!==!1},a=this._range||this,r=generateTicks$1(s,a);return t.bounds==="ticks"&&_setMinAndMaxByKey(r,this,"value"),t.reverse?(r.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),r}configure(){const t=this.ticks;let i=this.min,n=this.max;if(super.configure(),this.options.offset&&t.length){const s=(n-i)/Math.max(t.length-1,1)/2;i-=s,n+=s}this._startValue=i,this._endValue=n,this._valueRange=n-i}getLabelForValue(t){return formatNumber(t,this.chart.options.locale,this.options.ticks.format)}}class LinearScale extends LinearScaleBase{determineDataLimits(){const{min:t,max:i}=this.getMinMax(!0);this.min=isNumberFinite(t)?t:0,this.max=isNumberFinite(i)?i:1,this.handleTickRangeOptions()}computeTickLimit(){const t=this.isHorizontal(),i=t?this.width:this.height,n=toRadians(this.options.ticks.minRotation),s=(t?Math.sin(n):Math.cos(n))||.001,a=this._resolveTickFontOptions(0);return Math.ceil(i/Math.min(40,a.lineHeight/s))}getPixelForValue(t){return t===null?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getValueForPixel(t){return this._startValue+this.getDecimalForPixel(t)*this._valueRange}}Q(LinearScale,"id","linear"),Q(LinearScale,"defaults",{ticks:{callback:Ticks.formatters.numeric}});const log10Floor=e=>Math.floor(log10(e)),changeExponent=(e,t)=>Math.pow(10,log10Floor(e)+t);function isMajor(e){return e/Math.pow(10,log10Floor(e))===1}function steps(e,t,i){const n=Math.pow(10,i),s=Math.floor(e/n);return Math.ceil(t/n)-s}function startExp(e,t){const i=t-e;let n=log10Floor(i);for(;steps(e,t,n)>10;)n++;for(;steps(e,t,n)<10;)n--;return Math.min(n,log10Floor(e))}function generateTicks(e,{min:t,max:i}){t=finiteOrDefault(e.min,t);const n=[],s=log10Floor(t);let a=startExp(t,i),r=a<0?Math.pow(10,Math.abs(a)):1;const l=Math.pow(10,a),c=s>a?Math.pow(10,s):0,d=Math.round((t-c)*r)/r,u=Math.floor((t-c)/l/10)*l*10;let h=Math.floor((d-u)/Math.pow(10,a)),f=finiteOrDefault(e.min,Math.round((c+u+h*Math.pow(10,a))*r)/r);for(;f=10?h=h<15?15:20:h++,h>=20&&(a++,h=2,r=a>=0?1:r),f=Math.round((c+u+h*Math.pow(10,a))*r)/r;const g=finiteOrDefault(e.max,f);return n.push({value:g,major:isMajor(g),significand:h}),n}class LogarithmicScale extends Scale{constructor(t){super(t),this.start=void 0,this.end=void 0,this._startValue=void 0,this._valueRange=0}parse(t,i){const n=LinearScaleBase.prototype.parse.apply(this,[t,i]);if(n===0){this._zero=!0;return}return isNumberFinite(n)&&n>0?n:null}determineDataLimits(){const{min:t,max:i}=this.getMinMax(!0);this.min=isNumberFinite(t)?Math.max(0,t):null,this.max=isNumberFinite(i)?Math.max(0,i):null,this.options.beginAtZero&&(this._zero=!0),this._zero&&this.min!==this._suggestedMin&&!isNumberFinite(this._userMin)&&(this.min=t===changeExponent(this.min,0)?changeExponent(this.min,-1):changeExponent(this.min,0)),this.handleTickRangeOptions()}handleTickRangeOptions(){const{minDefined:t,maxDefined:i}=this.getUserBounds();let n=this.min,s=this.max;const a=l=>n=t?n:l,r=l=>s=i?s:l;n===s&&(n<=0?(a(1),r(10)):(a(changeExponent(n,-1)),r(changeExponent(s,1)))),n<=0&&a(changeExponent(s,-1)),s<=0&&r(changeExponent(n,1)),this.min=n,this.max=s}buildTicks(){const t=this.options,i={min:this._userMin,max:this._userMax},n=generateTicks(i,this);return t.bounds==="ticks"&&_setMinAndMaxByKey(n,this,"value"),t.reverse?(n.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),n}getLabelForValue(t){return t===void 0?"0":formatNumber(t,this.chart.options.locale,this.options.ticks.format)}configure(){const t=this.min;super.configure(),this._startValue=log10(t),this._valueRange=log10(this.max)-log10(t)}getPixelForValue(t){return(t===void 0||t===0)&&(t=this.min),t===null||isNaN(t)?NaN:this.getPixelForDecimal(t===this.min?0:(log10(t)-this._startValue)/this._valueRange)}getValueForPixel(t){const i=this.getDecimalForPixel(t);return Math.pow(10,this._startValue+i*this._valueRange)}}Q(LogarithmicScale,"id","logarithmic"),Q(LogarithmicScale,"defaults",{ticks:{callback:Ticks.formatters.logarithmic,major:{enabled:!0}}});function getTickBackdropHeight(e){const t=e.ticks;if(t.display&&e.display){const i=toPadding(t.backdropPadding);return valueOrDefault(t.font&&t.font.size,defaults.font.size)+i.height}return 0}function measureLabelSize(e,t,i){return i=isArray(i)?i:[i],{w:_longestText(e,t.string,i),h:i.length*t.lineHeight}}function determineLimits(e,t,i,n,s){return e===n||e===s?{start:t-i/2,end:t+i/2}:es?{start:t-i,end:t}:{start:t,end:t+i}}function fitWithPointLabels(e){const t={l:e.left+e._padding.left,r:e.right-e._padding.right,t:e.top+e._padding.top,b:e.bottom-e._padding.bottom},i=Object.assign({},t),n=[],s=[],a=e._pointLabels.length,r=e.options.pointLabels,l=r.centerPointLabels?PI/a:0;for(let c=0;ct.r&&(l=(n.end-t.r)/a,e.r=Math.max(e.r,t.r+l)),s.startt.b&&(c=(s.end-t.b)/r,e.b=Math.max(e.b,t.b+c))}function buildPointLabelItems(e,t,i){const n=[],s=e._pointLabels.length,a=e.options,r=getTickBackdropHeight(a)/2,l=e.drawingArea,c=a.pointLabels.centerPointLabels?PI/s:0;for(let d=0;d270||i<90)&&(e-=t),e}function drawPointLabels(e,t){const{ctx:i,options:{pointLabels:n}}=e;for(let s=t-1;s>=0;s--){const a=n.setContext(e.getPointLabelContext(s)),r=toFont(a.font),{x:l,y:c,textAlign:d,left:u,top:h,right:f,bottom:g}=e._pointLabelItems[s],{backdropColor:m}=a;if(!isNullOrUndef(m)){const w=toTRBLCorners(a.borderRadius),_=toPadding(a.backdropPadding);i.fillStyle=m;const D=u-_.left,B=h-_.top,P=f-u+_.width,N=g-h+_.height;Object.values(w).some(L=>L!==0)?(i.beginPath(),addRoundedRectPath(i,{x:D,y:B,w:P,h:N,radius:w}),i.fill()):i.fillRect(D,B,P,N)}renderText(i,e._pointLabels[s],l,c+r.lineHeight/2,r,{color:a.color,textAlign:d,textBaseline:"middle"})}}function pathRadiusLine(e,t,i,n){const{ctx:s}=e;if(i)s.arc(e.xCenter,e.yCenter,t,0,TAU);else{let a=e.getPointPosition(0,t);s.moveTo(a.x,a.y);for(let r=1;r{const s=callback(this.options.pointLabels.callback,[i,n],this);return s||s===0?s:""}).filter((i,n)=>this.chart.getDataVisibility(n))}fit(){const t=this.options;t.display&&t.pointLabels.display?fitWithPointLabels(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(t,i,n,s){this.xCenter+=Math.floor((t-i)/2),this.yCenter+=Math.floor((n-s)/2),this.drawingArea-=Math.min(this.drawingArea/2,Math.max(t,i,n,s))}getIndexAngle(t){const i=TAU/(this._pointLabels.length||1),n=this.options.startAngle||0;return _normalizeAngle(t*i+toRadians(n))}getDistanceFromCenterForValue(t){if(isNullOrUndef(t))return NaN;const i=this.drawingArea/(this.max-this.min);return this.options.reverse?(this.max-t)*i:(t-this.min)*i}getValueForDistanceFromCenter(t){if(isNullOrUndef(t))return NaN;const i=t/(this.drawingArea/(this.max-this.min));return this.options.reverse?this.max-i:this.min+i}getPointLabelContext(t){const i=this._pointLabels||[];if(t>=0&&t{if(h!==0){c=this.getDistanceFromCenterForValue(u.value);const f=this.getContext(h),g=s.setContext(f),m=a.setContext(f);drawRadiusLine(this,g,c,r,m)}}),n.display){for(t.save(),l=r-1;l>=0;l--){const u=n.setContext(this.getPointLabelContext(l)),{color:h,lineWidth:f}=u;!f||!h||(t.lineWidth=f,t.strokeStyle=h,t.setLineDash(u.borderDash),t.lineDashOffset=u.borderDashOffset,c=this.getDistanceFromCenterForValue(i.ticks.reverse?this.min:this.max),d=this.getPointPosition(l,c),t.beginPath(),t.moveTo(this.xCenter,this.yCenter),t.lineTo(d.x,d.y),t.stroke())}t.restore()}}drawBorder(){}drawLabels(){const t=this.ctx,i=this.options,n=i.ticks;if(!n.display)return;const s=this.getIndexAngle(0);let a,r;t.save(),t.translate(this.xCenter,this.yCenter),t.rotate(s),t.textAlign="center",t.textBaseline="middle",this.ticks.forEach((l,c)=>{if(c===0&&!i.reverse)return;const d=n.setContext(this.getContext(c)),u=toFont(d.font);if(a=this.getDistanceFromCenterForValue(this.ticks[c].value),d.showLabelBackdrop){t.font=u.string,r=t.measureText(l.label).width,t.fillStyle=d.backdropColor;const h=toPadding(d.backdropPadding);t.fillRect(-r/2-h.left,-a-u.size/2-h.top,r+h.width,u.size+h.height)}renderText(t,l.label,0,-a,u,{color:d.color})}),t.restore()}drawTitle(){}}Q(RadialLinearScale,"id","radialLinear"),Q(RadialLinearScale,"defaults",{display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,lineWidth:1,borderDash:[],borderDashOffset:0},grid:{circular:!1},startAngle:0,ticks:{showLabelBackdrop:!0,callback:Ticks.formatters.numeric},pointLabels:{backdropColor:void 0,backdropPadding:2,display:!0,font:{size:10},callback(t){return t},padding:5,centerPointLabels:!1}}),Q(RadialLinearScale,"defaultRoutes",{"angleLines.color":"borderColor","pointLabels.color":"color","ticks.color":"color"}),Q(RadialLinearScale,"descriptors",{angleLines:{_fallback:"grid"}});const INTERVALS={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},UNITS=Object.keys(INTERVALS);function sorter(e,t){return e-t}function parse(e,t){if(isNullOrUndef(t))return null;const i=e._adapter,{parser:n,round:s,isoWeekday:a}=e._parseOpts;let r=t;return typeof n=="function"&&(r=n(r)),isNumberFinite(r)||(r=typeof n=="string"?i.parse(r,n):i.parse(r)),r===null?null:(s&&(r=s==="week"&&(isNumber(a)||a===!0)?i.startOf(r,"isoWeek",a):i.startOf(r,s)),+r)}function determineUnitForAutoTicks(e,t,i,n){const s=UNITS.length;for(let a=UNITS.indexOf(e);a=UNITS.indexOf(i);a--){const r=UNITS[a];if(INTERVALS[r].common&&e._adapter.diff(s,n,r)>=t-1)return r}return UNITS[i?UNITS.indexOf(i):0]}function determineMajorUnit(e){for(let t=UNITS.indexOf(e)+1,i=UNITS.length;t=t?i[n]:i[s];e[a]=!0}}function setMajorTicks(e,t,i,n){const s=e._adapter,a=+s.startOf(t[0].value,n),r=t[t.length-1].value;let l,c;for(l=a;l<=r;l=+s.add(l,1,n))c=i[l],c>=0&&(t[c].major=!0);return t}function ticksFromTimestamps(e,t,i){const n=[],s={},a=t.length;let r,l;for(r=0;r+t.value))}initOffsets(t=[]){let i=0,n=0,s,a;this.options.offset&&t.length&&(s=this.getDecimalForValue(t[0]),t.length===1?i=1-s:i=(this.getDecimalForValue(t[1])-s)/2,a=this.getDecimalForValue(t[t.length-1]),t.length===1?n=a:n=(a-this.getDecimalForValue(t[t.length-2]))/2);const r=t.length<3?.5:.25;i=_limitValue(i,0,r),n=_limitValue(n,0,r),this._offsets={start:i,end:n,factor:1/(i+1+n)}}_generate(){const t=this._adapter,i=this.min,n=this.max,s=this.options,a=s.time,r=a.unit||determineUnitForAutoTicks(a.minUnit,i,n,this._getLabelCapacity(i)),l=valueOrDefault(s.ticks.stepSize,1),c=r==="week"?a.isoWeekday:!1,d=isNumber(c)||c===!0,u={};let h=i,f,g;if(d&&(h=+t.startOf(h,"isoWeek",c)),h=+t.startOf(h,d?"day":r),t.diff(n,i,r)>1e5*l)throw new Error(i+" and "+n+" are too far apart with stepSize of "+l+" "+r);const m=s.ticks.source==="data"&&this.getDataTimestamps();for(f=h,g=0;fw-_).map(w=>+w)}getLabelForValue(t){const i=this._adapter,n=this.options.time;return n.tooltipFormat?i.format(t,n.tooltipFormat):i.format(t,n.displayFormats.datetime)}_tickFormatFunction(t,i,n,s){const a=this.options,r=a.ticks.callback;if(r)return callback(r,[t,i,n],this);const l=a.time.displayFormats,c=this._unit,d=this._majorUnit,u=c&&l[c],h=d&&l[d],f=n[i],g=d&&h&&f&&f.major;return this._adapter.format(t,s||(g?h:u))}generateTickLabels(t){let i,n,s;for(i=0,n=t.length;i0?l:1}getDataTimestamps(){let t=this._cache.data||[],i,n;if(t.length)return t;const s=this.getMatchingVisibleMetas();if(this._normalized&&s.length)return this._cache.data=s[0].controller.getAllParsedValues(this);for(i=0,n=s.length;i=e[n].pos&&t<=e[s].pos&&({lo:n,hi:s}=_lookupByKey(e,"pos",t)),{pos:a,time:l}=e[n],{pos:r,time:c}=e[s]):(t>=e[n].time&&t<=e[s].time&&({lo:n,hi:s}=_lookupByKey(e,"time",t)),{time:a,pos:l}=e[n],{time:r,pos:c}=e[s]);const d=r-a;return d?l+(c-l)*(t-a)/d:l}class TimeSeriesScale extends TimeScale{constructor(t){super(t),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const t=this._getTimestampsForTable(),i=this._table=this.buildLookupTable(t);this._minPos=interpolate(i,this.min),this._tableRange=interpolate(i,this.max)-this._minPos,super.initOffsets(t)}buildLookupTable(t){const{min:i,max:n}=this,s=[],a=[];let r,l,c,d,u;for(r=0,l=t.length;r=i&&d<=n&&s.push(d);if(s.length<2)return[{time:i,pos:0},{time:n,pos:1}];for(r=0,l=s.length;r(pushScopeId("data-v-fd1701ae"),e=e(),popScopeId(),e),_hoisted_1$h={id:"critical-main"},_hoisted_2$f={id:"critical"},_hoisted_3$f=_withScopeId$8(()=>createBaseVNode("div",{class:"des"},"\u52A0\u653B\u4F24\u5BB3",-1)),_hoisted_4$c={class:"slider-div"},_hoisted_5$b={id:"def"},_hoisted_6$a=_withScopeId$8(()=>createBaseVNode("div",{class:"des"},"\u52A0\u9632\u4F24\u5BB3",-1)),_hoisted_7$7={class:"slider-div"},_hoisted_8$6={id:"now-damage"},_hoisted_9$6={style:{"font-family":"'Fira Code'"}},_sfc_main$h=defineComponent({__name:"enemyCritical",setup(e){const t=ref(),i=ref(),n=core.plugin.bookDetailEnemy,s=Math.ceil;let a=getCriticalDamage(n),r=getDefDamage(n);const l=ref(a),c=ref(r),d=ref(0),u=ref(0),h=core.getDamageInfo(n),f=core.formatBigNumber,g=core.status.thisMap.ratio,m=computed(()=>{const B=core.getDamageInfo(n,{atk:core.status.hero.atk+d.value*g,def:core.status.hero.def+u.value*g});return has(B)?has(h)?[h.damage-B.damage,B.damage]:[-B.damage,B.damage]:["???","???"]});function w(B,P){const N={type:"line",data:_(P),options:{elements:{point:{radius:5,hoverRadius:7},line:{borderJoinStyle:"round"}},scales:{y:{grid:{color:"#ddd3"}}},plugins:{legend:{display:!1}}}};return new Chart$1(B,N)}function _(B){return{datasets:[{data:B.map(P=>P[1]),label:"\u602A\u7269\u4F24\u5BB3"}],labels:B.map(P=>Math.round(P[0]/g))}}const D=lodash.exports.debounce((B,P)=>{l.value=getCriticalDamage(n,d.value*g,u.value*g),c.value=getDefDamage(n,u.value*g,d.value*g),l.value.length>a.length&&(a=l.value),c.value.length>r.length&&(r=c.value),B.data=_(l.value),P.data=_(c.value),B.update("resize"),P.update("resize")},200);return onMounted(()=>{const B=document.getElementById("critical-main"),P=getComputedStyle(B),N=parseFloat(P.width),L=window.innerHeight/5,U=t.value,H=i.value;setCanvasSize(U,N,L),setCanvasSize(H,N,L);const W=w(U,l.value),K=w(H,c.value);watch(d,G=>{D(W,K)}),watch(u,G=>{D(W,K)})}),(B,P)=>{var U,H,W,K,G,Y,J,ot;const N=__unplugin_components_0,L=__unplugin_components_1;return openBlock(),createElementBlock("div",_hoisted_1$h,[createBaseVNode("div",_hoisted_2$f,[_hoisted_3$f,createBaseVNode("canvas",{ref_key:"critical",ref:t,class:"chart"},null,512),createBaseVNode("div",_hoisted_4$c,[createBaseVNode("span",null,"\u52A0\u653B\u6B21\u6570\xA0\xA0\xA0\xA0"+toDisplayString(d.value),1),createVNode(N,{class:"slider",value:d.value,"onUpdate:value":P[0]||(P[0]=ht=>d.value=ht),max:unref(s)(((H=(U=unref(a).at(-1))==null?void 0:U[0])!=null?H:2)/unref(g))-1},null,8,["value","max"]),createBaseVNode("span",null,"\u6700\u5927\u503C\xA0\xA0\xA0\xA0"+toDisplayString(unref(s)(((K=(W=unref(a).at(-1))==null?void 0:W[0])!=null?K:2)/unref(g))-1),1)])]),createVNode(L,{dashed:"",style:{width:"100%","border-color":"#ddd4",margin:"1vh 0 1vh 0"}}),createBaseVNode("div",_hoisted_5$b,[_hoisted_6$a,createBaseVNode("canvas",{ref_key:"def",ref:i,class:"chart"},null,512),createBaseVNode("div",_hoisted_7$7,[createBaseVNode("span",null,"\u52A0\u9632\u6B21\u6570\xA0\xA0\xA0\xA0"+toDisplayString(u.value),1),createVNode(N,{class:"slider",value:u.value,"onUpdate:value":P[1]||(P[1]=ht=>u.value=ht),max:unref(s)(((Y=(G=unref(r).at(-1))==null?void 0:G[0])!=null?Y:2)/unref(g))-1},null,8,["value","max"]),createBaseVNode("span",null,"\u6700\u5927\u503C\xA0\xA0\xA0\xA0"+toDisplayString(unref(s)(((ot=(J=unref(r).at(-1))==null?void 0:J[0])!=null?ot:2)/unref(g))-1),1)])]),createBaseVNode("div",_hoisted_8$6,[createBaseVNode("div",null,[createBaseVNode("span",null,"\u5F53\u524D\u52A0\u653B"+toDisplayString(unref(isMobile)?"":"\xA0\xA0\xA0\xA0"),1),createBaseVNode("span",null,toDisplayString(unref(f)(d.value*unref(g))),1)]),createBaseVNode("div",null,[createBaseVNode("span",null,"\u5F53\u524D\u52A0\u9632"+toDisplayString(unref(isMobile)?"":"\xA0\xA0\xA0\xA0"),1),createBaseVNode("span",null,toDisplayString(unref(f)(u.value*unref(g))),1)]),createBaseVNode("div",null,[createBaseVNode("span",null,"\u5F53\u524D\u51CF\u4F24"+toDisplayString(unref(isMobile)?"":"\xA0\xA0\xA0\xA0"),1),createBaseVNode("span",null,[createBaseVNode("span",_hoisted_9$6,toDisplayString(unref(m)[0]<0&&unref(m)[1]==="???"?"=>":""),1),createTextVNode(toDisplayString(unref(m)[0]<0&&unref(m)[1]==="???"?unref(f)(-unref(m)[0]):unref(f)(unref(m)[0])),1)])]),createBaseVNode("div",null,[createBaseVNode("span",null,"\u5F53\u524D\u4F24\u5BB3"+toDisplayString(unref(isMobile)?"":"\xA0\xA0\xA0\xA0"),1),createBaseVNode("span",null,toDisplayString(unref(f)(unref(m)[1])),1)])])])}}}),enemyCritical_vue_vue_type_style_index_0_scoped_fd1701ae_lang="",EnemyCritical=_export_sfc(_sfc_main$h,[["__scopeId","data-v-fd1701ae"]]),showMarkedEnemy=ref(!1),markedEnemy=reactive([]),markInfo={},criticalReached={},enemyDamageInfo={};function markEnemy$1(e){var t,i;hasMarkedEnemy(e)||(markedEnemy.push(e),markInfo[e]={nextCritical:(i=(t=core.nextCriticals(e,1)[0])==null?void 0:t[0])!=null?i:0+core.status.hero.atk},criticalReached[e]={0:!0},enemyDamageInfo[e]={1:!1,2:!1,3:!1},getMarkInfo(e,!0),checkMarkedEnemy(!0))}function hasMarkedEnemy(e){return markedEnemy.includes(e)}function unmarkEnemy(e){const t=markedEnemy.indexOf(e);t!==-1&&(markedEnemy.splice(t,1),checkMarkedEnemy())}function getMarkedEnemy(){return markedEnemy}function getMarkInfo(e,t=!1){var s;const i=criticalReached[e],n=markInfo[e];if(core.status.hero.atk>=n.nextCritical){!i[n.nextCritical]&&!t&&tip$1("success",`\u8E29\u5230\u4E86${core.material.enemys[e].name}\u7684\u4E34\u754C\uFF01`),i[n.nextCritical]=!0;const a=(s=core.nextCriticals(e,1)[0])==null?void 0:s[0],r=(a!=null?a:0)+core.status.hero.atk;n.nextCritical=r}}function checkMarkedEnemy(e=!1){checkMarkedStatus.value=!checkMarkedStatus.value;const t=core.status.hero.hp;getMarkedEnemy().forEach(i=>{var r,l;getMarkInfo(i);const n=(l=(r=core.getDamageInfo(i))==null?void 0:r.damage)!=null?l:-1;if(n===-1)return;const s=enemyDamageInfo[i],a=core.material.enemys[i].name;n<=0?e||tip$1("success",`${a}\u5DF2\u7ECF\u96F6\u4F24\u4E86\uFF01`):n(core.isPlaying()&&(flags.mouseLoc=[e,t]),!1),150),{checkMarkedEnemy,checkStatus:checkMarkedStatus,markEnemy:markEnemy$1,hasMarkedEnemy,unmarkEnemy,showMarkedEnemy}}const _withScopeId$7=e=>(pushScopeId("data-v-90e08ea9"),e=e(),popScopeId(),e),_hoisted_1$g={id:"enemy-target"},_hoisted_2$e={id:"enemy-desc"},_hoisted_3$e=_withScopeId$7(()=>createBaseVNode("span",null,"\u602A\u7269\u63CF\u8FF0",-1)),_hoisted_4$b={id:"mark-target"},_hoisted_5$a=["onClick"],_sfc_main$g=defineComponent({__name:"enemyTarget",setup(e){const t=core.plugin.bookDetailEnemy,i=ref(hasMarkedEnemy(t.id));function n(){i.value&&unmarkEnemy(t.id),i.value||markEnemy$1(t.id),i.value=!i.value}return(s,a)=>{const r=__unplugin_components_1;return openBlock(),createElementBlock("div",_hoisted_1$g,[createBaseVNode("div",_hoisted_2$e,[_hoisted_3$e,createVNode(Scroll,{id:"enemy-desc-scroll"},{default:withCtx(()=>[createBaseVNode("span",null,toDisplayString(unref(t).description),1)]),_:1})]),createVNode(r,{dashed:"",style:{"border-color":"#ddd4"}}),createBaseVNode("div",null,[createBaseVNode("div",_hoisted_4$b,[createBaseVNode("span",{id:"mark-info",style:normalizeStyle({color:i.value?"lightgreen":"lightcoral"})},toDisplayString(i.value?"\u5DF2\u6807\u8BB0\u8BE5\u602A\u7269":"\u672A\u6807\u8BB0\u8BE5\u602A\u7269"),5),createBaseVNode("span",{class:"button-text",onClick:withModifiers(n,["stop"])},toDisplayString(i.value?"\u53D6\u6D88\u6807\u8BB0\u8BE5\u602A\u7269":"\u6807\u8BB0\u8BE5\u602A\u7269\u4E3A\u76EE\u6807"),9,_hoisted_5$a)])])])}}}),enemyTarget_vue_vue_type_style_index_0_scoped_90e08ea9_lang="",EnemyTarget=_export_sfc(_sfc_main$g,[["__scopeId","data-v-90e08ea9"]]),_withScopeId$6=e=>(pushScopeId("data-v-9c1bd474"),e=e(),popScopeId(),e),_hoisted_1$f={id:"detail"},_hoisted_2$d={id:"detail-more"},_hoisted_3$d={key:0,id:"special-more",class:"detial-more"},_hoisted_4$a={key:1,id:"special-more",class:"detial-more"},_hoisted_5$9={key:2,id:"special-more",class:"detial-more"},_hoisted_6$9=_withScopeId$6(()=>createBaseVNode("span",null,null,-1)),_sfc_main$f=defineComponent({__name:"bookDetail",emits:["close"],setup(e,{emit:t}){const i=core.plugin.bookDetailEnemy,n=ref(core.plugin.bookDetailPos),s=ref("special");let a;function r(d,u){d.stopPropagation(),s.value=u}function l(){n.value=core.plugin.bookDetailPos,a.style.opacity="0",t("close")}function c(d){keycode(d.keyCode)===KeyCode.Enter&&l()}return onMounted(async()=>{n.value=0,a=document.getElementById("detail"),a.style.opacity="1";const d=getComputedStyle(a);let u=!1,h=[0,0];await S(600),useDrag(a,(f,g)=>{(f-h[0])**2+(g-h[1])**2>=100&&(u=!0)},(f,g)=>{h=[f,g],g>parseFloat(d.height)*4/5&&(u=!0)},()=>{u===!1&&s.value!=="critical"&&l(),u=!1}),document.addEventListener("keyup",c)}),onUnmounted(()=>{document.removeEventListener("keyup",c)}),(d,u)=>{const h=__unplugin_components_1;return openBlock(),createElementBlock("div",_hoisted_1$f,[createBaseVNode("div",{id:"info",style:normalizeStyle({top:`${n.value}px`})},[createVNode(EnemyOne,{enemy:unref(i)},null,8,["enemy"]),createVNode(h,{dashed:"",style:{margin:"2vh 0 2vh 0","border-color":"#ddd4",width:"100%"}})],4),createVNode(Transition,{name:"detail"},{default:withCtx(()=>[s.value==="special"?(openBlock(),createBlock(EnemySpecial,{key:0})):s.value==="critical"?(openBlock(),createBlock(EnemyCritical,{key:1})):s.value==="target"?(openBlock(),createBlock(EnemyTarget,{key:2})):createCommentVNode("",!0)]),_:1}),createBaseVNode("div",_hoisted_2$d,[createVNode(Transition,{name:"detail"},{default:withCtx(()=>[s.value==="special"?(openBlock(),createElementBlock("div",_hoisted_3$d,[createBaseVNode("span",{id:"enemy-target",class:"button-text more",onClick:u[0]||(u[0]=f=>r(f,"target"))},[createVNode(unref(LeftOutlined)),createTextVNode(" \u602A\u7269\u66F4\u591A\u4FE1\u606F")]),createBaseVNode("span",{id:"critical-more",class:"button-text more",onClick:u[1]||(u[1]=f=>r(f,"critical"))},[createTextVNode("\u8BE6\u7EC6\u4E34\u754C\u4FE1\u606F "),createVNode(unref(RightOutlined))])])):s.value==="critical"?(openBlock(),createElementBlock("div",_hoisted_4$a,[createBaseVNode("span",{id:"enemy-pos",class:"button-text more",onClick:u[2]||(u[2]=f=>r(f,"special"))},[createVNode(unref(LeftOutlined)),createTextVNode(" \u602A\u7269\u7279\u6B8A\u5C5E\u6027")])])):s.value==="target"?(openBlock(),createElementBlock("div",_hoisted_5$9,[_hoisted_6$9,createBaseVNode("span",{id:"enemy-pos",class:"button-text more",onClick:u[3]||(u[3]=f=>r(f,"special"))},[createTextVNode("\u602A\u7269\u7279\u6B8A\u5C5E\u6027 "),createVNode(unref(RightOutlined))])])):createCommentVNode("",!0)]),_:1})])])}}}),bookDetail_vue_vue_type_style_index_0_scoped_9c1bd474_lang="",BookDetail=_export_sfc(_sfc_main$f,[["__scopeId","data-v-9c1bd474"]]),_withScopeId$5=e=>(pushScopeId("data-v-e7143bcf"),e=e(),popScopeId(),e),_hoisted_1$e={id:"book"},_hoisted_2$c={id:"tools"},_hoisted_3$c={key:0,id:"none"},_hoisted_4$9=_withScopeId$5(()=>createBaseVNode("div",null,"\u672C\u5C42\u65E0\u602A\u7269",-1)),_hoisted_5$8=[_hoisted_4$9],_hoisted_6$8={class:"enemy"},_sfc_main$e=defineComponent({__name:"book",setup(e){var w,_,D;const t=(D=core.floorIds[(_=(w=core.status.event)==null?void 0:w.ui)==null?void 0:_.index])!=null?D:core.status.floorId;t!==core.status.floorId&&core.status.checkBlock&&(core.status.checkBlock.cache={});const i=core.getCurrentEnemys(t),n=ref(0),s=ref(!1),a=ref(!1),r=ref(0);i.forEach(B=>{const P=B.specialText.length;B.toShowSpecial=lodash.exports.cloneDeep(B.specialText),B.toShowColor=lodash.exports.cloneDeep(B.specialColor),P>=3&&(B.toShowSpecial=B.specialText.slice(0,2).concat(["..."]),B.toShowColor=B.specialColor.slice(0,2).concat(["#fff"])),B.toShowColor=B.toShowColor.map(N=>typeof N=="string"?N:core.arrayToRGBA(N)),B.damageColor=getDamageColor(B.damage)});function l(B,P){if(s.value)return;const N=window.innerHeight,L=P*N*.2-n.value;core.plugin.bookDetailEnemy=B,core.plugin.bookDetailPos=L,a.value=!0,c()}async function c(){const B=document.getElementById("book");B.style.opacity="0",await S(600),B.style.display="none"}async function d(){u(),await S(600),a.value=!1}async function u(){const B=document.getElementById("book");B.style.display="flex",await S(50),B.style.opacity="1"}async function h(){noClosePanel.value=!0,core.plugin.bookOpened.value=!1,core.plugin.transition.value?await S(650):await S(100),!core.events.recoverEvents(core.status.event.interval)&&(has(core.status.event.ui)?(core.status.boxAnimateObjs=[],core.ui._drawViewMaps(core.status.event.ui)):core.ui.closePanel())}function f(){const B=window.innerHeight,P=r.value*B*.2-n.value;P<0&&(n.value+=P-20),P>B*.655&&(n.value+=P-B*.655+20)}function g(B){const P=keycode(B.keyCode);(P===KeyCode.KeyX||P===KeyCode.Escape)&&h(),P===KeyCode.Enter&&!a.value&&l(i[r.value],r.value)}function m(B){const P=keycode(B.keyCode);a.value||(P===KeyCode.DownArrow&&(r.value0&&r.value--,f()),(P===KeyCode.LeftArrow||P===KeyCode.PageUp)&&(r.value<=4?r.value=0:r.value-=5,f()),(P===KeyCode.RightArrow||P===KeyCode.PageDown)&&(r.value>=i.length-5?r.value=i.length-1:r.value+=5,f()))}return onMounted(async()=>{core.plugin.transition.value?await S(600):await S(50),document.addEventListener("keyup",g),document.addEventListener("keydown",m)}),onUnmounted(async()=>{document.removeEventListener("keyup",g),document.removeEventListener("keydown",m)}),(B,P)=>{const N=__unplugin_components_1;return openBlock(),createElementBlock(Fragment,null,[createBaseVNode("div",_hoisted_1$e,[createBaseVNode("div",_hoisted_2$c,[createBaseVNode("span",{id:"back",class:"button-text tools",onClick:h},[createVNode(unref(LeftOutlined)),createTextVNode("\u8FD4\u56DE\u6E38\u620F")])]),unref(i).length===0?(openBlock(),createElementBlock("div",_hoisted_3$c,_hoisted_5$8)):(openBlock(),createBlock(Scroll,{key:1,style:{width:"100%",height:"94%","font-family":"normal"},now:n.value,"onUpdate:now":P[0]||(P[0]=L=>n.value=L),drag:s.value,"onUpdate:drag":P[1]||(P[1]=L=>s.value=L)},{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(i),(L,U)=>(openBlock(),createElementBlock("div",_hoisted_6$8,[(openBlock(),createBlock(EnemyOne,{selected:U===r.value,enemy:L,key:U,onSelect:H=>l(L,U),onHover:H=>r.value=U},null,8,["selected","enemy","onSelect","onHover"])),createVNode(N,{dashed:"",style:{width:"100%","border-color":"#ddd4"}})]))),256))]),_:1},8,["now","drag"]))]),a.value?(openBlock(),createBlock(BookDetail,{key:0,onClose:P[2]||(P[2]=L=>d())})):createCommentVNode("",!0)],64)}}}),book_vue_vue_type_style_index_0_scoped_e7143bcf_lang="",Book=_export_sfc(_sfc_main$e,[["__scopeId","data-v-e7143bcf"]]),clsMap={tools:"\u6D88\u8017\u9053\u5177",constants:"\u6C38\u4E45\u9053\u5177",all:"\u5168\u90E8\u9053\u5177"};function getClsName(e){return clsMap[e]}function getItems(e){const t=core.status.hero.items,i=["book"];if(e==="all")return{tools:Object.entries(t.tools).filter(a=>!i.includes(a[0])),constants:Object.entries(t.constants).filter(a=>!i.includes(a[0]))};const n=t[e];return Object.entries(n)}const _withScopeId$4=e=>(pushScopeId("data-v-88c6bbe5"),e=e(),popScopeId(),e),_hoisted_1$d={id:"toolbox"},_hoisted_2$b={id:"tools"},_hoisted_3$b={id:"toolbox-main"},_hoisted_4$8={class:"item-main"},_hoisted_5$7={class:"item-info"},_hoisted_6$7={key:0,class:"item-type"},_hoisted_7$6={key:1,id:"item-type-mobile"},_hoisted_8$5=["selected"],_hoisted_9$5=["selected"],_hoisted_10$5=["selected","onClick"],_hoisted_11$5={class:"item-icon"},_hoisted_12$4={class:"item-name"},_hoisted_13$4={id:"detail"},_hoisted_14$4={id:"info"},_hoisted_15$3={id:"basic-info"},_hoisted_16$3={style:{"border-bottom":"1px solid #ddd4"}},_hoisted_17$2=_withScopeId$4(()=>createBaseVNode("span",{style:{"margin-top":"2vh"}},"\u70B9\u51FB\u8BE5\u7269\u54C1\u4EE5\u4F7F\u7528",-1)),_hoisted_18$2={id:"desc"},_hoisted_19$2=_withScopeId$4(()=>createBaseVNode("span",null,"\u9053\u5177\u63CF\u8FF0",-1)),_hoisted_20$2={key:0},_hoisted_21$2=["innerHTML"],_sfc_main$d=defineComponent({__name:"toolbox",setup(e){var m,w;const t=ref("tools"),i=getItems("all"),n=computed(()=>isMobile?[t.value]:["tools","constants"]),s=core.material.items,a=ref((w=(m=i[n.value[0]][0])==null?void 0:m[0])!=null?w:"none"),r=ref(0);watch(r,_=>{c(i[t.value][_][0],!0)}),watch(t,_=>{if(!has(i[_][r.value])){a.value="none";return}c(i[_][r.value][0],!0)});const l=computed(()=>{const _=a.value;return _==="none"?ref("\u6CA1\u6709\u9009\u62E9\u9053\u5177"):type(s[_].text,25,C("sin","out"),!0)});async function c(_,D=!1){a.value===_&&!D&&u(_),r.value=i[t.value].findIndex(B=>B[0]===_),a.value=_}function d(){core.plugin.toolOpened.value=!1}async function u(_){if(_!=="none")if(core.canUseItem(_)){const D=core.plugin.transition.value;core.plugin.transition.value=!1,d(),await S(50),core.useItem(_),core.plugin.transition.value=D}else message.warn({content:"\u5F53\u524D\u65E0\u6CD5\u4F7F\u7528\u8BE5\u9053\u5177\uFF01",class:"antdv-message"})}async function h(){const _=core.plugin.transition.value;core.plugin.transition.value=!1,d(),await S(50),core.plugin.equipOpened.value=!0,core.plugin.transition.value=_}function f(_){const D=keycode(_.keyCode);(D===KeyCode.Escape||D===KeyCode.KeyX||D===KeyCode.KeyT)&&d(),(D===KeyCode.Enter||D===KeyCode.KeyC)&&u(a.value)}function g(_){const D=keycode(_.keyCode),B=i[t.value].length;if(D===KeyCode.DownArrow&&r.value0&&r.value--,D===KeyCode.RightArrow){const P=i.constants.length;t.value==="tools"&&(r.value>=P&&(r.value=P-1),t.value="constants")}if(D===KeyCode.LeftArrow){const P=i.tools.length;t.value==="constants"&&(r.value>=P&&(r.value=P-1),t.value="tools")}}return onMounted(async()=>{core.plugin.transition.value?await S(600):await S(50),document.addEventListener("keyup",f),document.addEventListener("keydown",g)}),onUnmounted(()=>{document.removeEventListener("keyup",f),document.removeEventListener("keydown",g)}),(_,D)=>{var P;const B=__unplugin_components_1;return openBlock(),createElementBlock("div",_hoisted_1$d,[createBaseVNode("div",_hoisted_2$b,[createBaseVNode("span",{class:"button-text tools",onClick:d},[createVNode(unref(LeftOutlined)),createTextVNode(" \u8FD4\u56DE\u6E38\u620F")]),createBaseVNode("span",{class:"button-text tools",onClick:h},[createTextVNode("\u88C5\u5907\u680F "),createVNode(unref(RightOutlined))])]),createBaseVNode("div",_hoisted_3$b,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(n),N=>(openBlock(),createElementBlock("div",_hoisted_4$8,[createBaseVNode("div",_hoisted_5$7,[unref(isMobile)?(openBlock(),createElementBlock("div",_hoisted_7$6,[createBaseVNode("span",{class:"button-text",onClick:D[0]||(D[0]=L=>t.value="tools"),selected:t.value==="tools"},"\u6D88\u8017\u9053\u5177",8,_hoisted_8$5),createVNode(B,{dashed:"",style:{"border-color":"#ddd4",height:"100%"},type:"vertical"}),createBaseVNode("span",{class:"button-text",onClick:D[1]||(D[1]=L=>t.value="constants"),selected:t.value==="constants"},"\u6C38\u4E45\u9053\u5177",8,_hoisted_9$5)])):(openBlock(),createElementBlock("div",_hoisted_6$7,toDisplayString(unref(getClsName)(N)),1)),createVNode(B,{dashed:"",style:{margin:"1vh 0 1vh 0","border-color":"#ddd4"}}),createVNode(Scroll,{class:"item-list"},{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(i)[N],([L,U])=>(openBlock(),createElementBlock("div",{class:"item selectable",selected:a.value===L,onClick:H=>{t.value=N,c(L)}},[createBaseVNode("div",_hoisted_11$5,[createVNode(_sfc_main$l,{id:L,width:32,height:32,noborder:!0},null,8,["id"]),createBaseVNode("span",_hoisted_12$4,toDisplayString(unref(s)[L].name),1)]),createBaseVNode("span",null,"\xD7\xA0"+toDisplayString(U),1)],8,_hoisted_10$5))),256))]),_:2},1024)]),createVNode(B,{dashed:"",type:unref(isMobile)?"horizontal":"vertical",class:"divider",style:{"border-color":"#ddd4",margin:"1%"}},null,8,["type"])]))),256)),createBaseVNode("div",_hoisted_13$4,[createBaseVNode("div",_hoisted_14$4,[createVNode(_sfc_main$l,{id:a.value,width:32,height:32},null,8,["id"]),createBaseVNode("div",_hoisted_15$3,[createBaseVNode("span",_hoisted_16$3,toDisplayString(a.value==="none"?"\u6CA1\u6709\u9053\u5177":unref(s)[a.value].name),1),createBaseVNode("span",null,toDisplayString(a.value==="none"?"\u6C38\u4E45\u9053\u5177":(P=unref(getClsName)(unref(s)[a.value].cls))!=null?P:"\u6C38\u4E45\u9053\u5177"),1)])]),_hoisted_17$2,createVNode(B,{dashed:"",style:{"border-color":"#ddd4"}}),createBaseVNode("div",_hoisted_18$2,[_hoisted_19$2,createVNode(Scroll,{id:"desc-text"},{default:withCtx(()=>[unref(l).value.startsWith("!!html")?(openBlock(),createElementBlock("div",{key:1,innerHTML:unref(l).value.slice(6)},null,8,_hoisted_21$2)):(openBlock(),createElementBlock("div",_hoisted_20$2,toDisplayString(unref(l).value),1))]),_:1})])])])])}}}),toolbox_vue_vue_type_style_index_0_scoped_88c6bbe5_lang="",Toolbox=_export_sfc(_sfc_main$d,[["__scopeId","data-v-88c6bbe5"]]),index$2="",index$1="";function getEquips(){return Object.entries(core.status.hero.items.equips)}function getAddStatus(e){const t=Object.assign({},e.value,e.percentage),i=Object.keys(t);return createVNode("div",{class:"equip-add-detail"},[i.map(n=>{var a,r;const s=((a=e.value[n])!=null?a:0)+core.status.hero[n]*((r=e.percentage[n])!=null?r:0);return createVNode("span",{style:"display: flex"},[createVNode("span",{style:"flex-basis: 50%"},[core.getStatusLabel(n)]),createTextVNode("\xA0\xA0\xA0\xA0"),createVNode("span",{style:{color:s>0?"lightgreen":"lightsalmon"}},[s>0?`+${s}`:s])])})])}function getNowStatus(e,t=!1){return createVNode("div",{id:"hero-status"},[["hp","lv","atk","def","mdef","mana","hpmax","money"].map(n=>{var r,l,c;let s;n==="lv"?s=(r=core.getLvName())!=null?r:"":s=(l=core.getRealStatus(n))==null?void 0:l.toString();let a=0;if(has(e)){a+=(c=e.value[n])!=null?c:0;const d=e.percentage[n]*core.getStatus(n);a+=isNaN(d)?0:d}return t&&(a=-a),createVNode("div",{class:"hero-status-one"},[createVNode("span",{class:"hero-status-label"},[core.getStatusLabel(n)]),createVNode("div",{class:"hero-status-value"},[createVNode("span",{style:"margin-right: 20%"},[s]),a!==0&&createVNode("span",{style:{color:a>0?"lightgreen":"lightsalmon"}},[a>0?"+"+a:"-"+-a])])])})])}const _hoisted_1$c={id:"equipbox"},_hoisted_2$a={id:"tools"},_hoisted_3$a={id:"equipbox-main"},_hoisted_4$7={id:"equip-list"},_hoisted_5$6={id:"filter"},_hoisted_6$6={key:0},_hoisted_7$5={key:1},_hoisted_8$4=["selected","onMousedown","onTouchstart","onClick"],_hoisted_9$4={class:"equip-icon"},_hoisted_10$4={class:"equip-name"},_hoisted_11$4={id:"equip-status"},_hoisted_12$3={id:"equip-status-main"},_hoisted_13$3={id:"equip-now"},_hoisted_14$3={id:"equip-now-div"},_hoisted_15$2=["draged","access","selected","onMouseenter","onClick"],_hoisted_16$2={key:0,id:"equip-hero"},_hoisted_17$1={id:"hero-icon"},_hoisted_18$1={id:"hero-status"},_hoisted_19$1={id:"equip-desc"},_hoisted_20$1={id:"equip-icon"},_hoisted_21$1={id:"equip-type"},_hoisted_22$1={id:"equip-add"},_hoisted_23$1={id:"equip-desc-text"},_hoisted_24$1={key:0},_hoisted_25$1=["innerHTML"],_hoisted_26$1={id:"icon-drag"},_sfc_main$c=defineComponent({__name:"equipbox",setup(e){const t=ref(getEquips()),i=ref("all"),n=core.material.items,s=ref(0),a=ref(!1),r=core.status.globalAttribute.equipName,l=ref(core.status.hero.equipment),c=ref(!1),d=ref(!1),u=ref(-1),h=ref("down"),f=ref("none"),g=ref("value"),m=["none","atk","def","hpmax","mana"],w=core.getStatusLabel;watch(h,it=>{s.value=N.value.length-s.value-1}),watch(f,it=>{s.value=0}),watch(g,it=>{s.value=0});const _=computed(()=>{const it=N.value[s.value],tt={name:"\u6CA1\u6709\u9009\u62E9\u88C5\u5907",cls:"equip",text:"\u6CA1\u6709\u9009\u62E9\u88C5\u5907",equip:{type:"\u65E0",value:{},percentage:{},animate:""}};if(a.value){const lt=l.value[s.value],ut=core.material.items[lt];return has(ut)?ut:tt}return has(it)?n[it[0]]:tt}),D=computed(()=>getAddStatus(_.value.equip,a.value)),B=computed(()=>_.value.text.startsWith("!!html")?ref(_.value.text):type(_.value.text,25,C("sin","out"),!0)),P=computed(()=>getNowStatus(_.value.equip,a.value)),N=computed(()=>{const it=h.value,tt=f.value,lt=g.value,ut=t.value.filter(at=>{const pt=n[at[0]].equip,gt=pt.type;return tt!=="none"&&!has(pt[lt][tt])?!1:i.value==="all"?!0:typeof gt=="string"?gt===i.value:core.status.globalAttribute.equipName[gt]===i.value});return tt==="none"?ut:it==="down"?ut.sort((at,pt)=>{const gt=n[at[0]].equip,bt=n[pt[0]].equip;return gt[lt][tt]-bt[lt][tt]}):ut.sort((at,pt)=>{const gt=n[at[0]].equip;return n[pt[0]].equip[lt][tt]-gt[lt][tt]})});function L(){h.value==="down"?h.value="up":h.value="down"}function U(){core.plugin.equipOpened.value=!1}function H(it){var tt;if(it===s.value&&c.value){const lt=(tt=N.value[s.value])==null?void 0:tt[0];if(!core.canEquip(lt)){tip$1("warn","\u65E0\u6CD5\u88C5\u5907\uFF01");return}core.loadEquip(lt),Y(),c.value=!1}c.value=!0}function W(it,tt=!1){it!==s.value&&!tt&&(c.value=!1),tt&&(c.value=!1),tt&&a.value===tt&&s.value===it&&(core.unloadEquip(it),Y()),a.value=tt,s.value=it}function K(it){var lt,ut;if(it<0)return!1;const tt=(lt=_.value.equip)==null?void 0:lt.type;return!core.canEquip((ut=N.value[s.value])==null?void 0:ut[0])||!has(tt)?!1:typeof tt=="number"?it===tt:r[it]===tt}function G(){var ut;const it=u.value;if(it<0)return;if(!K(it)){tip$1("warn","\u65E0\u6CD5\u88C5\u5907\uFF01");return}const tt=l.value[it],lt=(ut=N.value[s.value])==null?void 0:ut[0];core.items._realLoadEquip(it,lt,tt),Y()}function Y(){l.value=core.status.hero.equipment,t.value=getEquips()}function J(){const it=Array.from(document.querySelectorAll(".equip"));useDrag(it,st,(tt,lt)=>{ot=tt,ht=lt},()=>{d.value&&(d.value=!1,G())},!0)}let[ot,ht]=[0,0];function st(it,tt,lt){if((it-ot)**2+(tt-ht)**2>10**2&&!d.value&&(d.value=!0),d.value){const ut=document.getElementById("icon-drag");ut.style.left=`${it-24}px`,ut.style.top=`${tt-24}px`}}function ct(it,tt){it.stopPropagation(),u.value=tt}function dt(it){it.stopPropagation(),u.value=-1}async function mt(){const it=core.plugin.transition.value;core.plugin.transition.value=!1,U(),await S(50),core.plugin.toolOpened.value=!0,core.plugin.transition.value=it}function ft(it){const tt=keycode(it.keyCode);(tt===KeyCode.KeyQ||tt===KeyCode.KeyX||tt===KeyCode.Escape)&&U()}return watch(N,it=>{J()}),onMounted(async()=>{J(),core.plugin.transition.value?await S(600):await S(50),document.addEventListener("keyup",ft)}),onUnmounted(()=>{cancelGlobalDrag(st),document.removeEventListener("keyup",ft)}),(it,tt)=>{var pt,gt,bt,vt,wt,Bt;const lt=SelectOption,ut=__unplugin_components_1$1,at=__unplugin_components_1;return openBlock(),createElementBlock(Fragment,null,[createBaseVNode("div",_hoisted_1$c,[createBaseVNode("div",_hoisted_2$a,[createBaseVNode("span",{class:"button-text tools",onClick:U},[createVNode(unref(LeftOutlined)),createTextVNode(" \u8FD4\u56DE\u6E38\u620F")]),createBaseVNode("span",{class:"button-text tools",onClick:mt},[createTextVNode("\u9053\u5177\u680F "),createVNode(unref(RightOutlined))])]),createBaseVNode("div",_hoisted_3$a,[createBaseVNode("div",_hoisted_4$7,[createBaseVNode("div",_hoisted_5$6,[createVNode(ut,{value:f.value,"onUpdate:value":tt[0]||(tt[0]=_t=>f.value=_t),class:"select"},{default:withCtx(()=>[(openBlock(),createElementBlock(Fragment,null,renderList(m,_t=>createVNode(lt,{value:_t},{default:withCtx(()=>[createTextVNode(toDisplayString(_t==="none"?"\u6240\u6709":unref(w)(_t)),1)]),_:2},1032,["value"])),64))]),_:1},8,["value"]),createVNode(at,{type:"vertical",class:"divider"}),createVNode(ut,{value:g.value,"onUpdate:value":tt[1]||(tt[1]=_t=>g.value=_t),class:"select"},{default:withCtx(()=>[createVNode(lt,{value:"value"},{default:withCtx(()=>[createTextVNode("\u6570\u503C")]),_:1}),createVNode(lt,{value:"percentage"},{default:withCtx(()=>[createTextVNode("\u767E\u5206\u6BD4")]),_:1})]),_:1},8,["value"]),createVNode(at,{type:"vertical",class:"divider"}),createBaseVNode("span",{onClick:tt[2]||(tt[2]=_t=>L()),class:"button-text",id:"sort-type"},[h.value==="down"?(openBlock(),createElementBlock("span",_hoisted_6$6,[createVNode(unref(SortAscendingOutlined))])):(openBlock(),createElementBlock("span",_hoisted_7$5,[createVNode(unref(SortDescendingOutlined))]))])]),createVNode(at,{dashed:"",style:{"border-color":"#ddd4",margin:"1vh 0 1vh 0"}}),createVNode(Scroll,{id:"equip-scroll"},{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(N),([_t,kt],yt)=>(openBlock(),createElementBlock("div",{class:"equip selectable",selected:s.value===yt&&!a.value,onMousedown:At=>W(yt),onTouchstart:At=>W(yt),onClick:At=>H(yt)},[createBaseVNode("div",_hoisted_9$4,[createVNode(_sfc_main$l,{id:_t!=null?_t:"none",width:32,height:32,noborder:!0},null,8,["id"]),createBaseVNode("span",_hoisted_10$4,toDisplayString(unref(n)[_t].name),1)]),createBaseVNode("span",null,"\xD7\xA0"+toDisplayString(kt),1)],40,_hoisted_8$4))),256))]),_:1})]),createBaseVNode("div",_hoisted_11$4,[createVNode(at,{class:"divider",type:unref(isMobile)?"horizontal":"vertical",dashed:"",style:{"border-color":"#ddd4"}},null,8,["type"]),createBaseVNode("div",_hoisted_12$3,[createBaseVNode("div",_hoisted_13$3,[createVNode(Scroll,{style:normalizeStyle({height:unref(isMobile)?"10vh":"30vh"})},{default:withCtx(()=>[createBaseVNode("div",_hoisted_14$3,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(r),(_t,kt)=>{var yt;return openBlock(),createElementBlock("div",{class:"equip-now-one draginable selectable",draged:d.value,access:K(kt),selected:a.value&&s.value===kt,onMouseenter:At=>ct(At,kt),onMouseleave:dt,onClick:At=>W(kt,!0)},[createVNode(_sfc_main$l,{id:(yt=l.value[kt])!=null?yt:"none"},null,8,["id"]),createBaseVNode("span",null,toDisplayString(_t),1)],40,_hoisted_15$2)}),256))])]),_:1},8,["style"])]),createVNode(at,{dashed:"",style:{"border-color":"#ddd4",margin:"1vh 0 1vh 0"}}),unref(isMobile)?createCommentVNode("",!0):(openBlock(),createElementBlock("div",_hoisted_16$2,[createBaseVNode("div",_hoisted_17$1,[createVNode(_sfc_main$l,{id:"hero",width:48,height:64,noborder:""})]),createBaseVNode("div",_hoisted_18$1,[(openBlock(),createBlock(resolveDynamicComponent(unref(P))))])]))]),unref(isMobile)?createCommentVNode("",!0):(openBlock(),createBlock(at,{key:0,class:"divider",type:"vertical",dashed:"",style:{"border-color":"#ddd4"}}))]),createBaseVNode("div",_hoisted_19$1,[createBaseVNode("div",_hoisted_20$1,[createVNode(_sfc_main$l,{id:a.value?(pt=l.value[s.value])!=null?pt:"none":(bt=(gt=unref(N)[s.value])==null?void 0:gt[0])!=null?bt:"none"},null,8,["id"]),createBaseVNode("span",null,toDisplayString(unref(_).name),1)]),createBaseVNode("div",_hoisted_21$1,[createBaseVNode("span",null,"\u88C5\u5907\u5B54\uFF1A"+toDisplayString((vt=unref(_).equip)==null?void 0:vt.type),1)]),createVNode(at,{dashed:"",style:{"border-color":"#ddd4",margin:"1vh 0 1vh 0"}}),createBaseVNode("div",_hoisted_22$1,[createBaseVNode("span",{style:normalizeStyle({"font-size":unref(isMobile)?"3.8vw":"3vh"}),id:"title"},"\u589E\u51CF\u5C5E\u6027",4),createVNode(Scroll,{style:{width:"100%",height:"100%"}},{default:withCtx(()=>[(openBlock(),createBlock(resolveDynamicComponent(unref(D))))]),_:1})]),createVNode(at,{dashed:"",style:{"border-color":"#ddd4",margin:"1vh 0 1vh 0"}}),createBaseVNode("div",_hoisted_23$1,[createBaseVNode("span",{style:normalizeStyle({"font-size":unref(isMobile)?"3.8vw":"3vh"}),id:"title"},"\u88C5\u5907\u4ECB\u7ECD",4),createVNode(Scroll,{id:"desc-text",style:{height:"100%",width:"100%"}},{default:withCtx(()=>[unref(B).value.startsWith("!!html")?(openBlock(),createElementBlock("div",{key:1,innerHTML:unref(B).value.slice(6)},null,8,_hoisted_25$1)):(openBlock(),createElementBlock("div",_hoisted_24$1,toDisplayString(unref(B).value),1))]),_:1})])])])]),createBaseVNode("div",_hoisted_26$1,[d.value?(openBlock(),createBlock(_sfc_main$l,{key:0,class:"drag-icon",id:(Bt=(wt=unref(N)[s.value])==null?void 0:wt[0])!=null?Bt:"none",width:48,height:48,noborder:""},null,8,["id"])):createCommentVNode("",!0)])],64)}}}),equipbox_vue_vue_type_style_index_0_scoped_4fac9519_lang="",Equipbox=_export_sfc(_sfc_main$c,[["__scopeId","data-v-4fac9519"]]),transition$2=ref(!1),itemDetail$1=ref(!0),autoSkill$1=ref(!0),autoScale$1=ref(!0);watch(transition$2,e=>{core.plugin.transition.value=e,core.setLocalStorage("transition",e)});watch(itemDetail$1,e=>{flags.itemDetail=e,core.updateStatusBar()});watch(autoSkill$1,e=>{flags.autoSkill=e,core.updateStatusBar(),core.status.route.push(`set:autoSkill:${e}`)});watch(autoScale$1,e=>{core.setLocalStorage("autoScale",e)});function reset(){const e=core.getLocalStorage("transition",!1);transition$2.value=e,core.plugin.transition.value=transition$2.value,autoScale$1.value=core.getLocalStorage("autoScale",!0)}function resetFlag(){var e,t;(e=flags.autoSkill)!=null||(flags.autoSkill=!0),(t=flags.itemDetail)!=null||(flags.itemDetail=!0),itemDetail$1.value=!!flags.itemDetail,autoSkill$1.value=!!flags.autoSkill}function init$5(){return{resetSettings:reset,resetFlagSettings:resetFlag}}const transition$1={text:"\u754C\u9762\u52A8\u753B",desc:["\u662F\u5426\u5C55\u793A\u5F53\u4E00\u4E2Aui\u754C\u9762\uFF0C\u5982\u602A\u7269\u624B\u518C\u7B49\u7684\u6253\u5F00\u4E0E\u5173\u95ED\u65F6\u7684\u52A8\u753B\u3002\u5F53\u6B64\u9879\u5F00\u542F\u65F6\uFF0C","\u6240\u6709\u754C\u9762\u88AB\u6253\u5F00\u6216\u5173\u95ED\u65F6\u90FD\u4F1A\u5C55\u793A\u52A8\u753B\uFF0C\u5426\u5219\u4F1A\u76F4\u63A5\u5C55\u793A\u51FA\u6765"]},itemDetail={text:"\u5B9D\u77F3\u8840\u74F6\u663E\u4F24",desc:["\u662F\u5426\u5728\u5730\u56FE\u4E0A\u663E\u793A\u5B9D\u77F3\u8840\u74F6\u88C5\u5907\u7B49\u589E\u52A0\u7684\u5C5E\u6027\u503C"]},autoSkill={text:"\u81EA\u52A8\u5207\u6362\u6280\u80FD",desc:["\u5F00\u542F\u540E\uFF0C\u6253\u602A\u7269\u7684\u65F6\u5019\u4F1A\u81EA\u52A8\u9009\u62E9\u4F24\u5BB3\u6700\u4F4E\u7684\u6280\u80FD\u3002\u540C\u65F6\u663E\u4F24\u4E5F\u4F1A\u663E\u793A\u6B64\u72B6\u6001\u4E0B\u7684\u4F24\u5BB3\uFF0C","\u4E34\u754C\u4E5F\u4F1A\u8003\u8651\u6280\u80FD\u5728\u5185"]},autoScale={text:"\u81EA\u52A8\u653E\u7F29",desc:["\u5F00\u542F\u540E\uFF0C\u6BCF\u6B21\u8FDB\u5165\u6E38\u620F\u65F6\u4F1A\u81EA\u52A8\u7F29\u653E\u6E38\u620F\u753B\u9762\u81F3\u5408\u9002\u503C\u3002\u8BE5\u9879\u53EA\u5BF9\u7535\u8111\u7AEF\u6709\u6548\u3002","
","
","\u7F29\u653E\u539F\u5219\u5982\u4E0B\uFF1A","
","1. \u9996\u5148\u5C1D\u8BD5\u7F29\u653E\u81F3\u6700\u5927\u7F29\u653E\u6BD4\u4F8B","
","2. \u5982\u679C\u7F29\u653E\u540E\u6E38\u620F\u753B\u9762\u9AD8\u5EA6\u9AD8\u4E8E\u9875\u9762\u9AD8\u5EA6\u768495%\uFF0C\u90A3\u4E48\u7F29\u5C0F\u4E00\u4E2A\u7F29\u653E\u6BD4\u4F8B\uFF0C\u5426\u5219\u4FDD\u6301\u6700\u5927\u6BD4\u4F8B"]},settingInfo={transition:transition$1,itemDetail,autoSkill,autoScale},_hoisted_1$b={class:"colomn"},_hoisted_2$9={class:"tools"},_hoisted_3$9=["id"],_sfc_main$b=defineComponent({__name:"colomn",props:{width:null,height:null,left:null,right:null},emits:["close"],setup(e,{emit:t}){const i=e,n=(1e8*Math.random()).toFixed(0);let s,a,r;function l(){s=document.getElementById(`column-${n}`),a=document.getElementById(`column-left-${n}`),r=document.getElementById(`column-right-${n}`),has(i.width)&&!isMobile&&(s.style.width=`${i.width}%`),has(i.height)&&(s.style.height=`${i.height}%`),has(i.left)&&(a.style.flexBasis=`${i.left}%`),has(i.right)&&(r.style.flexBasis=`${i.right}%`)}function c(d){const u=keycode(d.keyCode);(u===KeyCode.Escape||u===KeyCode.KeyX)&&t("close")}return onMounted(async()=>{l(),await S(50),core.plugin.transition.value&&await S(600),document.addEventListener("keyup",c)}),onUpdated(l),onUnmounted(()=>{document.removeEventListener("keyup",c)}),(d,u)=>{const h=__unplugin_components_1;return openBlock(),createElementBlock("div",_hoisted_1$b,[createBaseVNode("div",_hoisted_2$9,[createBaseVNode("span",{class:"button-text",onClick:u[0]||(u[0]=f=>t("close"))},[createVNode(unref(LeftOutlined)),createTextVNode(" \u8FD4\u56DE\u6E38\u620F")])]),createBaseVNode("div",{class:"column-main",id:`column-${unref(n)}`},[createVNode(Scroll,{class:"column-left",id:`column-left-${unref(n)}`},{default:withCtx(()=>[renderSlot(d.$slots,"left",{},void 0,!0)]),_:3},8,["id"]),createVNode(h,{class:"divider",dashed:"",style:{"border-color":"#ddd4"},type:unref(isMobile)?"horizontal":"vertical"},null,8,["type"]),createVNode(Scroll,{class:"column-right",id:`column-right-${unref(n)}`},{default:withCtx(()=>[renderSlot(d.$slots,"right",{},void 0,!0)]),_:3},8,["id"])],8,_hoisted_3$9)])}}}),colomn_vue_vue_type_style_index_0_scoped_682173f1_lang="",Column=_export_sfc(_sfc_main$b,[["__scopeId","data-v-682173f1"]]),_hoisted_1$a={id:"setting-list"},_hoisted_2$8=["selected"],_hoisted_3$8=["selected"],_hoisted_4$6=["selected"],_hoisted_5$5=["selected"],_hoisted_6$5=["innerHTML"],_sfc_main$a=defineComponent({__name:"settings",setup(e){const t=ref("transition"),i=computed(()=>splitText(settingInfo[t.value].desc));function n(){core.plugin.settingsOpened.value=!1}function s(a){if(t.value!==a){t.value=a;return}a==="transition"?transition$2.value=!transition$2.value:a==="itemDetail"?itemDetail$1.value=!itemDetail$1.value:a==="autoSkill"?autoSkill$1.value=!autoSkill$1.value:a==="autoScale"&&(autoScale$1.value=!autoScale$1.value)}return(a,r)=>(openBlock(),createBlock(Column,{width:60,height:60,onClose:n},{left:withCtx(()=>[createBaseVNode("div",_hoisted_1$a,[createBaseVNode("span",{class:"selectable",selected:t.value==="transition",onClick:r[0]||(r[0]=l=>s("transition"))},"\u754C\u9762\u52A8\u753B:\xA0\xA0\xA0"+toDisplayString(unref(transition$2)?"ON":"OFF"),9,_hoisted_2$8),createBaseVNode("span",{class:"selectable",selected:t.value==="itemDetail",onClick:r[1]||(r[1]=l=>s("itemDetail"))},"\u5B9D\u77F3\u8840\u74F6\u663E\u4F24:\xA0\xA0\xA0"+toDisplayString(unref(itemDetail$1)?"ON":"OFF"),9,_hoisted_3$8),createBaseVNode("span",{class:"selectable",selected:t.value==="autoSkill",onClick:r[2]||(r[2]=l=>s("autoSkill"))},"\u81EA\u52A8\u5207\u6362\u6280\u80FD:\xA0\xA0\xA0"+toDisplayString(unref(autoSkill$1)?"ON":"OFF"),9,_hoisted_4$6),createBaseVNode("span",{class:"selectable",selected:t.value==="autoScale",onClick:r[3]||(r[3]=l=>s("autoScale"))},"\u81EA\u52A8\u653E\u7F29:\xA0\xA0\xA0"+toDisplayString(unref(autoScale$1)?"ON":"OFF"),9,_hoisted_5$5)])]),right:withCtx(()=>[createBaseVNode("span",{innerHTML:unref(i)},null,8,_hoisted_6$5)]),_:1}))}}),settings_vue_vue_type_style_index_0_scoped_1a46d8ac_lang="",Settings=_export_sfc(_sfc_main$a,[["__scopeId","data-v-1a46d8ac"]]),tip={text:"\u6CE8\u610F\u4E8B\u9879",condition:"true",desc:["\u8FD9\u91CC\u663E\u793A\u672C\u5854\u4E2D\u9700\u8981\u6CE8\u610F\u7684\u4E8B\u9879\u3002","
","
",'1. ',"\u672C\u767E\u79D1\u5168\u4E66\u5B57\u6570\u5F88\u591A\uFF0C\u53EF\u4EE5\u9009\u62E9\u6027\u5730\u9605\u8BFB\u3002","
","
",'2. \u672C\u5854\u4E2D\u51E0\u4E4E\u6240\u6709 ui \u90FD\u53EF\u4EE5\u7EB5\u5411\u6EDA\u52A8\uFF0C\u5982\u679C\u53D1\u73B0\u663E\u793A\u4E0D\u5168\uFF0C',"\u53EF\u4EE5\u5C1D\u8BD5\u4E0A\u4E0B\u62D6\u52A8\uFF0C\u5C31\u50CF\u6D4F\u89C8\u7F51\u9875\u4E00\u6837\u3002\u7535\u8111\u7AEF\u8FD8\u53EF\u4EE5\u4F7F\u7528\u6EDA\u8F6E\u4E0A\u4E0B\u6EDA\u52A8\u3002","\u5927\u90E8\u5206\u53EF\u4EE5\u7EB5\u5411\u6EDA\u52A8\u7684 ui \u90FD\u4F1A\u5728\u53F3\u65B9\u6709\u4E00\u4E2A\u6EDA\u52A8\u6761\uFF0C\u4E5F\u53EF\u4EE5\u62D6\u52A8\u5B83\u8FDB\u884C\u6EDA\u52A8\uFF0C\u4F8B\u5982\u672C\u767E\u79D1\u5168\u4E66\u7684\u6761\u76EE\u5217\u8868\u548C","\u6761\u76EE\u8BF4\u660E\u90FD\u662F\u53EF\u4EE5\u901A\u8FC7\u4E0A\u8FF0\u65B9\u5F0F\u6EDA\u52A8\u7684\u3002","
","
",'3. \u672C\u767E\u79D1\u5168\u4E66\u7684\u5185\u5BB9\u4F1A\u968F\u7740\u6E38\u620F\u7684\u63A8\u8FDB\u800C\u589E\u52A0\u65B0\u5185\u5BB9\uFF0C',"\u540C\u65F6\u6BCF\u6B21\u589E\u52A0\u65B0\u5185\u5BB9\u65F6\u90FD\u4F1A\u6709\u63D0\u793A\u3002","
","
","4. \u672C\u5854\u4E3B\u8981\u9762\u5411\u7535\u8111\u7AEF\u8BBE\u8BA1\uFF0C",'\u5EFA\u8BAE\u4F7F\u7528\u7535\u8111\u6E38\u73A9\u4EE5\u83B7\u5F97\u66F4\u597D\u7684\u6E38\u620F\u4F53\u9A8C\u3002\u4F46\u662F\u624B\u673A\u4F9D\u7136\u53EF\u4EE5\u6E38\u73A9\u672C\u5854\uFF0C',"\u4F46\u90E8\u5206\u64CD\u4F5C\u53EF\u80FD\u4E0D\u662F\u5F88\u65B9\u4FBF\uFF0Cui \u4E5F\u53EF\u80FD\u4E0D\u662F\u5F88\u7F8E\u89C2\uFF0C\u4E0D\u8FC7\u4F9D\u7136\u53EF\u4EE5\u5B8C\u6574\u4F53\u9A8C\u672C\u6E38\u620F\u3002","
","
",'5. \u5BF9\u4E8E\u624B\u673A\u7AEF\uFF0C\u53EF\u4EE5\u70B9\u51FB\u53F3\u4E0B\u89D2\u7684\u96BE\u5EA6\u6587\u5B57\u6765\u5207\u6362\u5DE5\u5177\u680F\u81F3\u6570\u5B57\u952E\u3002',"\u8FD9\u6837\uFF0C\u4F60\u53EF\u4EE5\u66F4\u52A0\u65B9\u4FBF\u5730\u8FDB\u884C\u4F7F\u7528\u6280\u80FD\u7B49\u64CD\u4F5C\u3002","
","
","6. \u672C\u5854\u4E2D\u51E0\u4E4E\u6240\u6709 ui \u5728\u6253\u5F00\u65F6\u90FD\u4F1A\u6709\u4E00\u4E2A0.6s\u7684\u52A8\u753B\uFF0C\u5982\u679C\u4E0D\u60F3\u8981\uFF0C\u53EF\u4EE5\u5728\u5F00\u5934\u6361\u7684\u7CFB\u7EDF\u8BBE\u7F6E\u91CC\u9762\u5173\u95ED\uFF08\u9ED8\u8BA4\u5173\u95ED\uFF09\u3002","\u540C\u65F6\uFF0C\u51E0\u4E4E\u6240\u6709 ui \u7684\u9000\u51FA\u6309\u94AE\u90FD\u5728\u5DE6\u4E0A\u89D2\u3002"]},tutorial={text:"\u65B0\u624B\u6559\u7A0B",condition:"true",desc:["\u672C\u6761\u76EE\u662F\u9B54\u5854\u6E38\u620F\u7684\u65B0\u624B\u6559\u7A0B\uFF0C\u5982\u679C\u5BF9\u9B54\u5854\u6709\u4E00\u5B9A\u7684\u4E86\u89E3\uFF0C\u53EF\u4EE5\u76F4\u63A5\u5FFD\u7565\u3002","
","
",'\u9B54\u5854\u662F\u4E00\u79CD\u56FA\u5B9A\u6570\u503Crpg\u6E38\u620F\uFF0C\u5728\u6253\u602A\u7684\u65F6\u5019\uFF0C\u9075\u5FAA\u6211\u6253\u4F60\u4E00\u4E0B\uFF0C\u4F60\u6253\u6211\u4E00\u4E0B',"\u7684\u539F\u5219\uFF0C\u9020\u6210\u7684\u4F24\u5BB3\u662F\u5DF1\u65B9\u653B\u51FB\u51CF\u53BB\u5BF9\u65B9\u9632\u5FA1\uFF0C\u6700\u540E\u602A\u7269\u7684\u4F24\u5BB3\u4FBF\u662F\u4F60\u5728\u6218\u6597\u4E2D\u5931\u53BB\u7684\u751F\u547D\u503C\u3002\u5F53\u7136\uFF0C\u4E3A\u4E86\u6E38\u620F\u4F53\u9A8C\uFF0C","\u6218\u6597\u8FC7\u7A0B\u4F1A\u88AB\u7701\u7565\u3002","
","
","\u5B9D\u77F3\u53EF\u4EE5\u589E\u52A0\u4F60\u7684\u5C5E\u6027\uFF0C\u5728\u5927\u90E8\u5206\u9B54\u5854\u4E2D\uFF0C\u7EA2\u5B9D\u77F3\u589E\u52A0\u653B\u51FB\uFF0C\u84DD\u5B9D\u77F3\u589E\u52A0\u9632\u5FA1\uFF0C\u672C\u5854\u4E5F\u4E0D\u4F8B\u5916\u3002\u8840\u74F6\u53EF\u4EE5\u589E\u52A0\u4F60\u7684\u751F\u547D\u503C\u3002",'\u4E00\u822C\u60C5\u51B5\u4E0B\uFF0C\u62FE\u53D6\u5B9D\u7269\u7684\u4F18\u5148\u7EA7\u662F\u7EA2\u5B9D\u77F3 > \u84DD\u5B9D\u77F3 > \u8840\u74F6\uFF0C',"\u4F46\u90E8\u5206\u60C5\u51B5\u53EF\u80FD\u4E0D\u662F\u8FD9\u6837\uFF0C\u8FD9\u9700\u8981\u4F60\u81EA\u5DF1\u7684\u6E38\u73A9\u7ECF\u9A8C\u7B49\u3002","
","
","\u672C\u5854\u8FD8\u62E5\u6709\u5347\u7EA7\u673A\u5236\uFF0C\u5347\u7EA7\u65F6\u80FD\u591F\u7ED9\u4F60\u589E\u52A0\u5927\u91CF\u7684\u5C5E\u6027\uFF0C\u56E0\u6B64\uFF0C\u4E00\u822C\u60C5\u51B5\u4E0B\u5F53\u4F60\u63A5\u8FD1\u5347\u7EA7\u65F6\uFF0C\u9700\u8981\u5C3D\u5FEB\u6253\u602A\u5347\u7EA7\u3002","
","
","\u7136\u540E\u662F\u95E8\u3002\u5728\u9B54\u5854\u4E2D\uFF0C\u5F88\u591A\u95E8\u90FD\u4E0D\u662F\u5FC5\u5F00\u7684\u95E8\uFF0C\u5B83\u4EEC\u7684\u4F5C\u7528\u4E00\u822C\u662F\u53EF\u4EE5\u8EB2\u5F00\u602A\u7269\u62FF\u5B9D\u77F3\uFF0C\u6216\u8005\u95E8\u91CC\u9762\u6709\u8840\u74F6\u7B49\u3002","\u5F53\u4F60\u8840\u91CF\u8DB3\u591F\u65F6\uFF0C\u8FD9\u4E9B\u95E8\u53EF\u4EE5\u4E0D\u7528\u5F00\uFF0C\u4E0D\u7136\u53EF\u80FD\u4F1A\u6709\u5FC5\u5F00\u7684\u95E8\u65E0\u6CD5\u5F00\u542F\u5BFC\u81F4\u5361\u5173\u3002\u5BF9\u4E8E\u94A5\u5319\uFF0C\u6BCF\u79CD\u989C\u8272\u7684\u94A5\u5319\u5F00\u5BF9\u5E94\u989C\u8272\u7684\u95E8\uFF0C",'\u4EF7\u503C\u662F\u7EA2 > \u84DD > \u9EC4\u3002',"
","
","\u4E3A\u4E86\u66F4\u52A0\u65B9\u4FBF\uFF0C\u672C\u5854\u589E\u52A0\u4E86\u5B9D\u77F3\u8840\u74F6\u663E\u793A\u6570\u636E\u7684\u529F\u80FD\uFF0C\u8FD9\u6837\u4F60\u53EF\u4EE5\u6E05\u6670\u5730\u77E5\u9053\u6BCF\u4E2A\u5B9D\u77F3\u589E\u52A0\u4E86\u591A\u5C11\u5C5E\u6027\u3002","
","
","\u4E0B\u9762\u662F\u52C7\u58EB\u57FA\u7840\u5C5E\u6027\u7684\u8BF4\u660E:","
",'1. \u751F\u547D\u503C\uFF1A',"\u52C7\u58EB\u7684\u8840\u91CF\uFF0C\u5F53\u5B83\u5F52\u96F6\u65F6\uFF0C\u6E38\u620F\u7ED3\u675F","
",'2. \u653B\u51FB\uFF1A',"\u52C7\u58EB\u7684\u653B\u51FB\uFF0C\u653B\u51FB\u8D8A\u9AD8\uFF0C\u6BCF\u56DE\u5408\u5BF9\u602A\u7269\u9020\u6210\u7684\u4F24\u5BB3\u8D8A\u9AD8","
",'3. \u9632\u5FA1\uFF1A',"\u52C7\u58EB\u7684\u9632\u5FA1\uFF0C\u9632\u5FA1\u8D8A\u9AD8\uFF0C\u602A\u7269\u6BCF\u56DE\u5408\u5BF9\u4F60\u9020\u6210\u7684\u4F24\u5BB3\u8D8A\u4F4E","
",'4. \u7ECF\u9A8C\uFF1A',"\u52C7\u58EB\u7684\u7ECF\u9A8C\uFF0C\u5230\u8FBE\u4E00\u5B9A\u503C\u540E\u4F1A\u5347\u7EA7\u3002\u672C\u5854\u5728\u72B6\u6001\u680F\u4E2D\u663E\u793A\u4E3A\u8DDD\u79BB\u5347\u7EA7\u5269\u4F59\u7684\u7ECF\u9A8C","
",'5. \u91D1\u5E01\uFF1A',"\u52C7\u58EB\u7684\u91D1\u5E01\uFF0C\u53EF\u4EE5\u7528\u4E8E\u8D2D\u4E70\u7269\u54C1\u3002\u672C\u5854\u4E2D\u5728\u8FDB\u5165\u7B2C\u4E8C\u7AE0\u540E\u4F1A\u6709\u7528","
",'6. \u62A4\u76FE\uFF1A',"\u52C7\u58EB\u7684\u62A4\u76FE\uFF0C\u7528\u5904\u662F\u80FD\u591F\u5728\u6218\u540E\u51CF\u5C11\u540C\u7B49\u6570\u503C\u7684\u4F24\u5BB3\uFF0C\u5728\u672C\u5854\u4E2D\u53EF\u4EE5\u4F7F\u4F24\u5BB3\u53D8\u4E3A\u8D1F\u503C\u3002\u672C\u5854\u4E2D\uFF0C\u5728\u70B9\u5F00\u65E0\u4E0A\u4E4B\u76FE\u6280\u80FD\u540E\uFF0C","\u667A\u6167\u4F1A\u5145\u5F53\u62A4\u76FE\u3002\u66F4\u591A\u4FE1\u606F\u53EF\u4EE5\u67E5\u770B\u201C\u52C7\u58EB\u5C5E\u6027\u201D\u6761\u76EE\u3002"]},noun={text:"\u540D\u8BCD\u89E3\u91CA",condition:"true",desc:["\u672C\u6761\u76EE\u4F1A\u89E3\u91CA\u8BF8\u5982\u4E34\u754C\u7B49\u9B54\u5854\u672F\u8BED\uFF0C\u5BF9\u9B54\u5854\u6709\u4E00\u5B9A\u4E86\u89E3\u7684\u53EF\u4EE5\u76F4\u63A5\u5FFD\u7565\u3002","
","
",'1. \u4E34\u754C\uFF1A',"\u5728\u9B54\u5854\u4E2D\uFF0C\u4E34\u754C\u662F\u4E00\u4E2A\u975E\u5E38\u91CD\u8981\u7684\u4E1C\u897F\u3002\u9996\u5148\uFF0C\u6211\u4EEC\u5F88\u5BB9\u6613\u53EF\u4EE5\u5F97\u5230\uFF0C\u5403\u653B\u51FB\u65F6\u53EA\u6709\u5F53\u51CF\u5C11\u4E86\u6218\u6597\u56DE\u5408\u6570\u65F6\u602A\u7269\u7684\u4F24\u5BB3\u4F1A\u51CF\u5C11\uFF0C",'\u90A3\u4E48\uFF0C\u5403\u653B\u51FB\u65F6\u602A\u7269\u7684\u51CF\u4F24\u662F\u4E0D\u8FDE\u7EED\u7684\u3002\u800C\u8DDD\u79BB\u4E0B\u4E00\u6B21\u51CF\u5C11\u602A\u7269\u7684\u4F24\u5BB3\u9700\u8981\u52A0\u7684\u653B\u51FB\u7684\u91CF',"\u4FBF\u662F\u4E34\u754C\u3002\u5F53\u6211\u4EEC\u5403\u4E00\u4E2A\u653B\u51FB\u6070\u597D\u4F7F\u602A\u7269\u4F24\u5BB3\u51CF\u5C11\u65F6\uFF0C\u79F0\u4E3A\u201C\u8E29\u4E34\u754C\u201D\u3002\u4E00\u822C\u60C5\u51B5\u4E0B\uFF0C\u8E29\u4E34\u754C\u7684\u51CF\u4F24\u8981\u6BD4\u5403\u9632\u5FA1\u8981\u9AD8\uFF0C","\u56E0\u6B64\uFF0C\u5F53\u80FD\u8E29\u5230\u4E34\u754C\u65F6\uFF0C\u6211\u4EEC\u5E94\u5F53\u5148\u8E29\u4E34\u754C\uFF0C\u518D\u5403\u9632\u5FA1\u3002","
","
",'2. \u52A0\u9632\uFF1A',"\u52A0\u9632\u6307\u7684\u662F\u52A0\u9632\u5BF9\u602A\u7269\u7684\u51CF\u4F24\u3002\u5728\u672C\u5854\u4E2D\uFF0C\u4F1A\u4EE5\u201Cn\u9632\u201D\u7684\u5F62\u5F0F\u663E\u793A\u5728\u602A\u7269\u624B\u518C\u6216\u5176\u4ED6\u5730\u65B9\u3002\u5728\u672C\u5854\u4E2D\uFF0C\u4E00\u822C\u4F60\u4E0D\u9700\u8981\u523B\u610F\u8BA1\u7B97",'\u4E34\u754C\u4E0E\u52A0\u9632\u51CF\u4F24\uFF0C\u4F60\u53EF\u4EE5\u5728\u602A\u7269\u624B\u518C\u4E2D\u67E5\u770B\u51CF\u4F24\u6298\u7EBF\u56FE\uFF0C',"\u66F4\u591A\u4FE1\u606F\u8BF7\u67E5\u770B\u201C\u602A\u7269\u624B\u518C\u201D\u6761\u76EE\u3002","
","
",'3. \u54B8\u9C7C\uFF1A',"\u4E00\u822C\u6765\u8BB2\uFF0C\u5F00\u4E0D\u5FC5\u5F00\u7684\u95E8\uFF0C\u6216\u8005\u4F7F\u7528\u4E0D\u5FC5\u4F7F\u7528\u7684\u9053\u5177\u88AB\u79F0\u4E3A\u54B8\u9C7C\uFF0C\u6216\u8005\u662F\u54B8\u95E8\uFF0C\u54B8\u9053\u5177\u3002\u4E00\u822C\u60C5\u51B5\u4E0B\uFF0C\u8BF4\u201C\u54B8\u201D\u4FBF\u662F\u6307\u54B8\u9C7C\u3002","\u4E00\u822C\u60C5\u51B5\u4E0B\uFF0C\u95E8\u540E\u9762\u6709\u5B9D\u77F3\u4E14\u65E0\u6CD5\u901A\u8FC7\u5176\u4ED6\u65B9\u5F0F\u8FDB\u5165\u7684\u90FD\u662F\u5FC5\u5F00\u95E8\uFF0C\u800C\u53EA\u6709\u8840\u74F6\u7684\u90FD\u662F\u54B8\u9C7C\u95E8\u3002"]},shortcut={text:"\u5FEB\u6377\u952E",condition:"true",desc:["\u8FD9\u91CC\u5305\u542B\u672C\u5854\u4E2D\u6240\u6709\u7684\u5FEB\u6377\u952E\u3002\u5BF9\u4E8E\u624B\u673A\u7AEF\uFF0C\u53EF\u4EE5\u70B9\u51FB\u5DE5\u5177\u680F\u7684\u96BE\u5EA6\u7684\u4F4D\u7F6E\u5207\u6362\u5DE5\u5177\u680F\u81F3\u6570\u5B57\u952E\u3002","
","
","\u4E0B\u9762\u662F\u6837\u677F\u4E2D\u7684\u6240\u6709\u5FEB\u6377\u952E\uFF1A","
",'X\uFF1A\u6253\u5F00\u602A\u7269\u624B\u518C',"
",'S\uFF1A\u6253\u5F00\u5B58\u6863\u754C\u9762',"
",'D\uFF1A\u6253\u5F00\u8BFB\u6863\u754C\u9762',"
",'A\u62165\uFF1A\u8BFB\u53D6\u81EA\u52A8\u5B58\u6863',"
",'W\u62166\uFF1A\u64A4\u9500\u8BFB\u53D6\u7684\u81EA\u52A8\u5B58\u6863',"
",'Q\uFF1A\u6253\u5F00\u88C5\u5907\u680F',"
",'T\uFF1A\u6253\u5F00\u9053\u5177\u680F',"
",'G\uFF1A\u6253\u5F00\u697C\u5C42\u4F20\u9001\u5668',"
",'Z\u6216\u5355\u51FB\u52C7\u58EB\uFF1A\u52C7\u58EB\u8F6C\u5411',"
",'\u7A7A\u683C\u6216\u53CC\u51FB\u52C7\u58EB\u62167\uFF1A\u8F7B\u6309\uFF08\u62FE\u53D6\u52C7\u58EB\u5468\u56F4\u7684\u5B9D\u7269\u4F46\u4E0D\u79FB\u52A8\u52C7\u58EB\uFF09',"
",'Esc\uFF1A\u6253\u5F00\u6E38\u620F\u83DC\u5355',"
",'R\uFF1A\u6253\u5F00\u5F55\u50CF\u56DE\u653E\u83DC\u5355',"
",'N\uFF1A\u8BE2\u95EE\u662F\u5426\u8FD4\u56DE\u6E38\u620F\u4E3B\u83DC\u5355',"
",'V\uFF1A\u6253\u5F00\u5FEB\u6377\u5546\u5E97',"
",'B\uFF1A\u6253\u5F00\u6570\u636E\u7EDF\u8BA1\u754C\u9762',"
",'Alt + \u6570\u5B57\u952E\uFF1A\u5FEB\u901F\u6362\u88C5',"
",'PgUp\u6216PgDn\uFF1A\u6D4F\u89C8\u5730\u56FE',"
",'P\uFF1A\u6253\u5F00\u8BC4\u8BBA\u533A',"
","
","\u4E0B\u9762\u662F\u672C\u5854\u4E2D\u65B0\u589E\u7684\u5FEB\u6377\u952E\uFF1A","
",'M\uFF1A\u5FEB\u901F\u6807\u8BB0\u602A\u7269',"
",'J\uFF1A\u6253\u5F00\u6280\u80FD\u6811']},extraAttr={text:"\u52C7\u58EB\u5C5E\u6027",condition:"true",desc:["\u8FD9\u91CC\u53EA\u5BF9\u672C\u5854\u4E2D\u65B0\u589E\u7684\u52C7\u58EB\u5C5E\u6027\u8FDB\u884C\u8BF4\u660E\u3002","
","
",'1. \u667A\u6167\uFF1A',"\u667A\u6167\u662F\u8BE5\u5854\u7684\u6838\u5FC3\u5C5E\u6027\u4E4B\u4E00\u3002\u667A\u6167\u53EF\u7528\u4E8E\u667A\u6167\u52A0\u70B9\uFF0C\u8BE5\u529F\u80FD\u4F1A\u5728\u8FDB\u5165\u7B2C\u4E00\u7AE0\u540E\u5F00\u542F\u3002\u4F7F\u7528\u667A\u6167\u53EF\u4EE5\u70B9\u6280\u80FD\u6811\u3002","\u9664\u6B64\u4E4B\u5916\uFF0C\u667A\u6167\u4E5F\u6709\u5176\u5B83\u529F\u80FD\u3002\u4F8B\u5982\u70B9\u5F00\u65E0\u4E0A\u4E4B\u76FE\u6280\u80FD\u540E\u667A\u6167\u8FD8\u53EF\u4EE5\u5145\u5F53\u62A4\u76FE\uFF0C\u7B2C\u4E8C\u7AE0\u70B9\u5F00\u5B66\u4E60\u6280\u80FD\u540E\u53EF\u4EE5\u4F7F\u7528\u667A\u6167\u5B66\u4E60\u602A\u7269\u6280\u80FD\u7B49\u3002","
","
",'2. \u751F\u547D\u56DE\u590D\uFF1A',"\u751F\u547D\u56DE\u590D\u6307\u7684\u662F\u52C7\u58EB\u6BCF\u56DE\u5408\u56DE\u590D\u7684\u751F\u547D\u503C\u3002\u5F53\u4E0E\u602A\u7269\u6218\u6597\u65F6\uFF0C\u52C7\u58EB\u6BCF\u56DE\u5408\u90FD\u4F1A\u56DE\u590D\u5BF9\u5E94\u91CF\u7684\u751F\u547D\u503C\u3002\u56E0\u6B64\uFF0C\u5F53\u5403\u653B\u51FB\u65F6\uFF0C","\u4E0E\u602A\u7269\u6218\u6597\u7684\u56DE\u5408\u6570\u53EF\u80FD\u4F1A\u51CF\u5C11\uFF0C\u5BFC\u81F4\u751F\u547D\u56DE\u590D\u7684\u603B\u56DE\u590D\u91CF\u51CF\u5C11\u3002\u4E0D\u8FC7\u5927\u90E8\u5206\u60C5\u51B5\u4E0B\u4E0D\u9700\u8981\u5728\u610F\u8FD9\u4E00\u70B9\uFF0C","\u51CF\u5C11\u4E00\u56DE\u5408\u5E76\u4E0D\u4F1A\u5BF9\u5438\u7684\u8840\u9020\u6210\u5F88\u5927\u7684\u5F71\u54CD\uFF0C\u9664\u4E86\u4E00\u4E9B\u7279\u6B8A\u60C5\u51B5\u3002","\u8BE5\u9879\u4F1A\u663E\u793A\u5728\u72B6\u6001\u680F\u7684\u751F\u547D\u503C\u53F3\u65B9\u504F\u4E0B\u7684\u4F4D\u7F6E\u3002","
","
",'3. \u989D\u5916\u653B\u51FB\uFF1A',"\u989D\u5916\u653B\u51FB\u6307\u7684\u662F\u52C7\u58EB\u6BCF\u56DE\u5408\u7684\u989D\u5916\u9020\u6210\u7684\u4F24\u5BB3\u3002\u4E00\u822C\u60C5\u51B5\u4E0B\uFF0C\u5F53\u52C7\u58EB\u7834\u4E86\u602A\u7269\u7684\u9632\u5FA1\u65F6\uFF0C\u8BE5\u9879\u4FBF\u4F1A\u8D77\u4F5C\u7528\u3002","\u989D\u5916\u653B\u51FB\u76F8\u5F53\u4E8E\u9B54\u653B\uFF0C\u65E0\u6CD5\u901A\u8FC7\u4E00\u822C\u65B9\u5F0F\u51CF\u514D\u3002\u5F53\u52C7\u58EB\u653B\u51FB\u602A\u7269\u65F6\uFF0C\u6BCF\u56DE\u5408\u90FD\u4F1A\u9644\u52A0\u5BF9\u5E94\u91CF\u7684\u4F24\u5BB3\uFF0C\u5BF9\u575A\u56FA\u602A\u540C\u6837\u6709\u6548\u3002","\u989D\u5916\u653B\u51FB\u4F1A\u663E\u793A\u5728\u72B6\u6001\u680F\u7684\u653B\u51FB\u53F3\u65B9\u504F\u4E0B\u7684\u4F4D\u7F6E\u3002"]},statusBar={text:"\u72B6\u6001\u680F",condition:"true",desc:["\u5728\u672C\u5854\u4E2D\uFF0C\u72B6\u6001\u680F\u4E0E\u6E38\u620F\u753B\u9762\u662F\u5206\u5F00\u7684\u3002\u4F60\u53EF\u4EE5\u81EA\u7531\u62D6\u52A8\u72B6\u6001\u680F\uFF0C\u4E5F\u53EF\u4EE5\u4FEE\u6539\u5176\u5927\u5C0F\u3002","\u5177\u4F53\u65B9\u6CD5\u5982\u4E0B\uFF1A\u70B9\u51FB\u4E00\u4E0B\u72B6\u6001\u680F\u4E4B\u540E\uFF0C\u5DE6\u4E0A\u89D2\u7684\u62D6\u62FD\u56FE\u6807\u4F1A\u653E\u5927\uFF0C\u6B64\u65F6\u4F60\u53EF\u4EE5\u6309\u4F4F\u5B83\u62D6\u52A8\u72B6\u6001\u680F\u3002","\u4F60\u53EF\u4EE5\u76F4\u63A5\u5C06\u9F20\u6807\u653E\u5230\u72B6\u6001\u680F\u7684\u8FB9\u6846\u4E0A\uFF0C\u7136\u540E\u76F4\u63A5\u62D6\u52A8\u4EE5\u6539\u53D8\u72B6\u6001\u680F\u7684\u5927\u5C0F\u3002\u624B\u673A\u7AEF\u53EF\u4EE5\u5148\u70B9\u51FB\u4E00\u4E0B\u72B6\u6001\u680F\u4F7F\u8FB9\u6846","\u53D8\u5BBD\uFF0C\u7136\u540E\u62D6\u52A8\u3002\u7535\u8111\u7AEF\u70B9\u51FB\u72B6\u6001\u680F\u4E5F\u53EF\u4EE5\u4F7F\u8FB9\u6846\u53D8\u5BBD\u3002\u5982\u679C\u4F60\u60F3\u6298\u53E0\u72B6\u6001\u680F\uFF0C\u5B8C\u5168\u53EF\u4EE5\u62D6\u52A8\u72B6\u6001\u680F\u7684\u4E0B\u8FB9\u6846\uFF0C","\u7136\u540E\u76F4\u63A5\u62D6\u52A8\u81F3\u4E0A\u65B9\uFF0C\u8FD9\u65F6\u72B6\u6001\u680F\u4FBF\u4F1A\u53D8\u6210\u4E00\u6761\u7EBF\uFF0C\u76F8\u5F53\u4E8E\u6298\u53E0\u4E86\u72B6\u6001\u680F","
","
","\u72B6\u6001\u680F\u53EF\u4EE5\u7EB5\u5411\u6EDA\u52A8\uFF0C\u5982\u679C\u4F60\u53D1\u73B0\u72B6\u6001\u680F\u663E\u793A\u4E0D\u5168\uFF0C\u53EF\u4EE5\u5C1D\u8BD5\u62C9\u5927\u72B6\u6001\u680F\uFF0C\u6216\u8005\u7EB5\u5411\u62D6\u52A8\u72B6\u6001\u680F\uFF0C\u5C31\u50CF\u7F51\u9875\u4E0A\u4E0B\u6EDA\u52A8\u4E00\u6837\u3002","\u7535\u8111\u7AEF\u8FD8\u53EF\u4EE5\u4F7F\u7528\u6EDA\u8F6E\u4E0A\u4E0B\u6EDA\u52A8\u3002","
","
","\u5982\u679C\u4F60\u89C9\u5F97\u72B6\u6001\u680F\u6709\u4E9B\u788D\u4E8B\uFF0C\u4F60\u5B8C\u5168\u53EF\u4EE5\u5C06\u5176\u7F29\u5C0F\uFF0C\u6216\u8005\u628A\u5B83\u653E\u5230\u4E0D\u788D\u4E8B\u7684\u5730\u65B9\u3002","
","
","\u72B6\u6001\u680F\u4E0A\u9762\u53EF\u80FD\u4F1A\u6709\u6309\u94AE\uFF0C\u4F60\u53EF\u4EE5\u76F4\u63A5\u70B9\u51FB\u3002","
","
","\u5BF9\u72B6\u6001\u680F\u5E03\u5C40\u7684\u8BF4\u660E\u3002","
","\u672C\u5854\u7684\u72B6\u6001\u680F\u7684\u5E03\u5C40\u8F83\u4E3A\u7075\u6D3B\u3002\u5B83\u662F\u6A2A\u5411\u7684\u5E03\u5C40\uFF0C\u5728\u72B6\u6001\u680F\u8F83\u5BBD\u65F6\u53EF\u4EE5\u770B\u5230\uFF0C\u5C5E\u6027\u4F1A\u6A2A\u5411\u4F9D\u6B21\u663E\u793A\u3002\u6309\u7167\u663E\u793A\u987A\u5E8F\uFF0C","\u72B6\u6001\u680F\u663E\u793A\u9879\u4F9D\u6B21\u4E3A\uFF1A","
","1. \u697C\u5C42\u540D\uFF0C\u70B9\u51FB\u540E\u8FDB\u5165\u6D4F\u89C8\u5730\u56FE\u754C\u9762","
","2. \u52C7\u58EB\u7B49\u7EA7","
","3. \u5F53\u524D\u5F00\u542F\u7684\u6280\u80FD","
","4. \u5F53\u524D\u52C7\u58EB\u751F\u547D\u503C\uFF0C\u53F3\u65B9\u504F\u4E0B\u4E3A\u6BCF\u56DE\u5408\u56DE\u590D\u7684\u751F\u547D\u503C\uFF0C\u5F53\u70B9\u5F00\u6CBB\u6108\u4E4B\u6CC9\u6280\u80FD\u65F6\uFF0C\u53F3\u65B9\u504F\u4E0A\u4F1A\u663E\u793A\u8DDD\u79BB\u589E\u52A0\u751F\u547D\u56DE\u590D\u5269\u4F59\u8840\u74F6\u6570","
","5. \u5F53\u524D\u52C7\u58EB\u7684\u653B\u51FB\uFF0C\u53F3\u65B9\u504F\u4E0B\u4E3A\u52C7\u58EB\u7684\u989D\u5916\u653B\u51FB","
","6. \u5F53\u524D\u52C7\u58EB\u7684\u9632\u5FA1","
","7. \u5F53\u524D\u52C7\u58EB\u7684\u667A\u6167\uFF0C\u53EF\u4EE5\u7528\u4E8E\u667A\u6167\u52A0\u70B9\u7B49","
","8. \u5F53\u524D\u52C7\u58EB\u7684\u91D1\u5E01","
","9. \u5F53\u524D\u52C7\u58EB\u8DDD\u79BB\u5347\u7EA7\u5269\u4F59\u7ECF\u9A8C\u6570","
","10. \u4E09\u8272\u94A5\u5319","
","11. \u6253\u5F00\u6280\u80FD\u6811\uFF08\u8FDB\u5165\u7B2C\u4E00\u7AE0\u540E\u5F00\u542F\uFF09","
","12. \u67E5\u770B\u52C7\u58EB\u7684\u6280\u80FD\uFF08\u8FDB\u5165\u7B2C\u4E00\u7AE0\u540E\u5F00\u542F\uFF09"]},markEnemy={text:"\u6807\u8BB0\u602A\u7269",condition:"true",desc:["\u6807\u8BB0\u602A\u7269\u53EF\u4EE5\u4F7F\u4F60\u80FD\u591F\u66F4\u52A0\u65B9\u4FBF\u5730\u4E86\u89E3\u4E00\u4E2A\u602A\u7269\u7684\u60C5\u51B5\u3002","
","\u4F60\u53EF\u4EE5\u901A\u8FC7\u4EE5\u4E0B\u4E24\u79CD\u65B9\u5F0F\u6807\u8BB0\u602A\u7269\uFF1A","
","1. \u6253\u5F00\u602A\u7269\u624B\u518C\uFF0C\u9009\u4E2D\u602A\u7269\uFF0C\u8FDB\u5165\u602A\u7269\u66F4\u591A\u4FE1\u606F\u680F\uFF0C\u70B9\u51FB\u6807\u8BB0\u602A\u7269\u3002","
",'2. \u5C06\u9F20\u6807\u79FB\u52A8\u5230\u4F60\u60F3\u8981\u6807\u8BB0\u7684\u602A\u7269\u4E0A\u9762\uFF0C',"\u6309\u4E0BM\u952E\uFF0C\u5373\u53EF\u6807\u8BB0\u602A\u7269\uFF0C\u6CE8\u610F\u6D4F\u89C8\u5730\u56FE\u4E2D\u4E0D\u80FD\u7528\u8BE5\u65B9\u5F0F\u6807\u8BB0\u3002","\u624B\u673A\u7AEF\u6682\u65F6\u6CA1\u6709\u5FEB\u901F\u6807\u8BB0\u602A\u7269\u7684\u65B9\u5F0F\u3002","
","
","\u5F53\u4E00\u4E2A\u602A\u7269\u88AB\u6807\u8BB0\u540E\uFF0C\u602A\u7269\u4F1A\u6709\u4EE5\u4E0B\u884C\u4E3A\uFF1A","
","1. \u5F53\u52C7\u58EB\u6070\u597D\u80FD\u6253\u8D25\u602A\u7269\u65F6\uFF0C\u4F1A\u8FDB\u884C\u63D0\u793A","
","2. \u5F53\u602A\u7269\u7684\u4F24\u5BB3\u6070\u597D\u4F4E\u4E8E\u52C7\u58EB\u751F\u547D\u503C\u76842/3\u62161/3\u65F6\uFF0C\u4F1A\u8FDB\u884C\u63D0\u793A","
","3. \u5F53\u52C7\u58EB\u6070\u597D\u8E29\u5230\u602A\u7269\u7684\u4E34\u754C\u65F6\uFF0C\u4F1A\u8FDB\u884C\u63D0\u793A","
","4. \u5F53\u602A\u7269\u96F6\u4F24\u65F6\uFF0C\u4F1A\u8FDB\u884C\u63D0\u793A","
","5. \u88AB\u6807\u8BB0\u7684\u602A\u7269\u4F1A\u51FA\u73B0\u7C7B\u4F3C\u4E8E\u72B6\u6001\u680F\u7684\u76D2\u5B50\uFF0C\u53EF\u4EE5\u968F\u610F\u62D6\u52A8\u548C\u6539\u53D8\u5927\u5C0F\u3002\u4F60\u4E5F\u53EF\u4EE5\u9009\u62E9\u5173\u95ED\u8FD9\u4E2A\u76D2\u5B50\uFF0C","\u88AB\u5173\u95ED\u540E\u53EF\u4EE5\u901A\u8FC7\u91CD\u65B0\u6807\u8BB0\u6765\u6253\u5F00\u3002\u8FD9\u4E2A\u76D2\u5B50\u4F1A\u663E\u793A\u6807\u8BB0\u7684\u602A\u7269\u7684\u4E34\u754C\u4E0E\u4F24\u5BB3\u4FE1\u606F\u7B49\uFF0C\u4E0E\u72B6\u6001\u680F\u4E00\u6837\uFF0C\u53EF\u4EE5\u7EB5\u5411\u6EDA\u52A8\u3002","
","
","\u8FD9\u4E2A\u529F\u80FD\u53EF\u4EE5\u7528\u4E8E\u6807\u8BB0boss\u6216\u8005\u8F83\u5F3A\u7684\u6321\u8DEF\u602A\uFF0C\u5F53\u8FD9\u4E9B\u602A\u80FD\u591F\u653B\u51FB\u65F6\u4F60\u53EF\u4EE5\u76F4\u63A5\u6536\u5230\u4FE1\u606F\uFF0C\u4E0D\u9700\u8981\u518D\u65F6\u523B\u8D39\u5FC3\u6CE8\u610F\u602A\u7269\u7684\u4F24\u5BB3\u3002","
","
","\u6CE8\u610F\uFF0C\u6807\u8BB0\u7684\u602A\u7269\u662F\u4E0D\u8BA1\u5165\u5B58\u6863\u7684\uFF0C\u540C\u65F6\u6807\u8BB0\u7684\u602A\u7269\u53EA\u5728\u672C\u6B21\u6E38\u620F\u4E2D\u6709\u6548\uFF0C\u5237\u65B0\u9875\u9762\u540E\u4FBF\u4F1A\u6D88\u5931\u3002"]},book={text:"\u602A\u7269\u624B\u518C",condition:"true",desc:["\u672C\u5854\u7684\u602A\u7269\u624B\u518C\u529F\u80FD\u5F88\u591A\uFF0C\u4E0B\u9762\u4E00\u4E00\u4ECB\u7ECD\u3002","
","
","\u602A\u7269\u624B\u518C\u6253\u5F00\u7684\u65F6\u5019\u6709\u4E00\u4E2A0.6\u79D2\u7684\u52A8\u753B\uFF0C\u5982\u679C\u4E0D\u60F3\u8981\u53EF\u4EE5\u5728\u5F00\u5934\u6361\u7684\u7CFB\u7EDF\u8BBE\u7F6E\u91CC\u9762\u5173\u95ED\uFF08\u9ED8\u8BA4\u5173\u95ED\uFF09\u3002","
","
","\u6253\u5F00\u602A\u7269\u624B\u518C\u540E\uFF0C\u602A\u7269\u624B\u518C\u7684\u5E03\u5C40\u4E0E\u6837\u677F\u81EA\u5E26\u7684\u7C7B\u4F3C\u3002\u4E0E\u6837\u677F\u4E0D\u540C\u7684\u662F\uFF0C\u8FD9\u91CC\u7684\u602A\u7269\u624B\u518C\u4E0D\u518D\u662F\u7FFB\u9875\u5F0F\u7ED3\u6784\u3002","\u8FD9\u91CC\u7684\u602A\u7269\u624B\u518C\u662F\u6EDA\u52A8\u5F0F\u7ED3\u6784\uFF0C\u4F60\u53EF\u4EE5\u50CF\u6D4F\u89C8\u7F51\u9875\u4E00\u6837\uFF0C\u7528\u624B\u6307\u6216\u9F20\u6807\u4E0A\u4E0B\u6EDA\u52A8\u6216\u8005\u62D6\u52A8\u53F3\u8FB9\u7684\u6EDA\u52A8\u6761\uFF0C\u7535\u8111\u7AEF\u8FD8\u53EF\u4EE5\u4F7F\u7528\u6EDA\u8F6E\u3002","\u5BF9\u4E8E\u7535\u8111\u7AEF\uFF0C\u8FD8\u53EF\u4EE5\u4F7F\u7528\u952E\u76D8\u64CD\u4F5C\u3002\u4E0A\u548C\u4E0B\u53EF\u4EE5\u4E0A\u4E0B\u9009\u62E9\u602A\u7269\uFF0C\u5DE6\u548C\u53F3\u53EF\u4EE5\u5411\u4E0A\u6216\u5411\u4E0B\u79FB\u52A85\u4E2A\u602A\u7269\u3002\u8FD9\u4E9B\u64CD\u4F5C\u4E0E\u6837\u677F\u90FD\u7C7B\u4F3C\u3002","
","
","\u70B9\u51FB\u4E00\u4E2A\u602A\u7269\u6216\u8005\u6309\u4E0B\u56DE\u8F66\u7A7A\u683C\u540E\uFF0C\u5C06\u8FDB\u5165\u602A\u7269\u8BE6\u7EC6\u4FE1\u606F\u754C\u9762\u3002\u8FD9\u4E2A\u754C\u9762\u5206\u4E3A\u591A\u4E2A\u680F\uFF0C\u5206\u522B\u662F\u7279\u6B8A\u5C5E\u6027\u680F\uFF0C\u8BE6\u7EC6\u4E34\u754C\u680F\uFF0C\u66F4\u591A\u4FE1\u606F\u680F\u3002","\u8FDB\u5165\u602A\u7269\u8BE6\u7EC6\u4FE1\u606F\u540E\u9ED8\u8BA4\u5728\u7279\u6B8A\u5C5E\u6027\u680F\uFF0C\u8BE5\u680F\u53EF\u4EE5\u67E5\u770B\u602A\u7269\u7684\u7279\u6B8A\u5C5E\u6027\u3002","\u6CE8\u610F\u7279\u6B8A\u5C5E\u6027\u4F9D\u7136\u53EF\u4EE5\u7EB5\u5411\u6EDA\u52A8\u3002\u5728\u7279\u6B8A\u5C5E\u6027\u4E0B\u65B9\uFF0C","\u662F\u602A\u7269\u7684\u4E34\u754C\u8868\uFF0C\u53EF\u4EE5\u7C97\u7565\u5730\u67E5\u770B\u602A\u7269\u7684\u4E34\u754C\u4FE1\u606F\u3002\u5728\u4E0B\u65B9\uFF0C\u4F60\u53EF\u4EE5\u70B9\u51FB\u8BE6\u7EC6\u4E34\u754C\u4FE1\u606F\u8FDB\u5165\u8BE6\u7EC6\u4E34\u754C\u680F\u3002","
","
","\u5728\u8BE6\u7EC6\u4E34\u754C\u680F\u4E2D\uFF0C\u602A\u7269\u7684\u4F24\u5BB3\u4F1A\u4EE5\u53EF\u89C6\u5316\u6298\u7EBF\u56FE\u7684\u65B9\u5F0F\u663E\u793A\u51FA\u6765\uFF0C\u4ECE\u800C\u4F60\u53EF\u4EE5\u66F4\u4E3A\u6E05\u6670\u5730\u770B\u51FA\u602A\u7269\u51CF\u4F24\u8D8B\u52BF\u3002","\u9664\u4E86\u67E5\u770B\u602A\u7269\u4F24\u5BB3\u66F2\u7EBF\uFF0C\u4F60\u8FD8\u53EF\u4EE5\u89C4\u5212\u5B9D\u77F3\u3002\u6BCF\u4E2A\u6298\u7EBF\u56FE\u4E0B\u65B9\u90FD\u6709\u4E00\u4E2A\u6ED1\u52A8\u6761\uFF0C\u4F60\u53EF\u4EE5\u62D6\u52A8\u6765\u6A21\u62DF\u5403\u5B9D\u77F3\u3002","\u6CE8\u610F\uFF0C\u62D6\u52A8\u65F6\uFF0C\u6ED1\u52A8\u6761\u5DE6\u8FB9\u4F1A\u663E\u793A\u5F53\u524D\u7684\u52A0\u653B\u6216\u52A0\u9632\u6B21\u6570\uFF0C\u8FD9\u4E2A\u6570\u503C\u6307\u7684\u662F\u5728\u52C7\u58EB\u6240\u5728\u5730\u56FE\u4E2D\u9700\u8981\u5403\u7684\u6700\u5F31\u7684\u5B9D\u77F3\u6570\u91CF\u3002","\u4F8B\u5982\uFF0C\u5F53\u524D\u52C7\u58EB\u6240\u5728\u5730\u56FE\u4E2D\u6700\u5F31\u7684\u5B9D\u77F3\u52A02\u70B9\u653B\u51FB\uFF0C\u52A0\u653B\u6B21\u6570\u4E3A3\uFF0C\u90A3\u4E48\u52C7\u58EB\u7684\u653B\u51FB\u589E\u52A0\u91CF\u5C31\u4E3A6\u3002","\u52C7\u58EB\u589E\u52A0\u7684\u653B\u51FB\u6570\u503C\u4E5F\u4F1A\u5728\u4E0B\u65B9\u663E\u793A\u3002\u5F53\u52A0\u653B\u6B21\u6570\u548C\u52A0\u9632\u6B21\u6570\u6539\u53D8\u65F6\uFF0C\u6298\u7EBF\u56FE\u4E5F\u4F1A\u53D8\u5316\u3002",'\u5F53\u524D\u72B6\u6001\u4E0B\u602A\u7269\u7684\u4F24\u5BB3\u4EE5\u53CA\u51CF\u4F24\u603B\u91CF\u4E5F\u4F1A\u5728\u4E0B\u65B9\u663E\u793A\u3002',"\u6CE8\u610F\u5728\u6B64\u680F\u4E2D\u65E0\u6CD5\u901A\u8FC7\u70B9\u51FB\u5C4F\u5E55\u56DE\u5230\u602A\u7269\u624B\u518C\u754C\u9762\uFF0C\u66F4\u591A\u4FE1\u606F\u8BF7\u67E5\u770B\u6700\u540E\u4E00\u6BB5\u3002","
","
","\u5728\u7279\u6B8A\u5C5E\u6027\u680F\uFF0C\u70B9\u51FB\u4E0B\u65B9\u7684\u602A\u7269\u66F4\u591A\u4FE1\u606F\u53EF\u4EE5\u8FDB\u5165\u66F4\u591A\u4FE1\u606F\u680F\u3002\u6B64\u680F\u4E2D\uFF0C\u4F60\u53EF\u4EE5\u67E5\u770B\u602A\u7269\u63CF\u8FF0\u3002\u4F46\u8FD9\u4E0D\u662F\u8FD9\u4E00\u680F\u7684\u6838\u5FC3\u529F\u80FD\u3002","\u8FD9\u4E00\u680F\u7684\u6838\u5FC3\u529F\u80FD\u662F\u6807\u8BB0\u602A\u7269\u3002\u88AB\u6807\u8BB0\u7684\u602A\u7269\u4F1A\u6709\u4E00\u4E9B\u975E\u5E38\u65B9\u4FBF\u7684\u884C\u4E3A\uFF0C\u8FD9\u4E9B\u884C\u4E3A\u53EF\u4EE5\u5728\u201C\u6807\u8BB0\u602A\u7269\u201D\u6761\u76EE\u4E2D\u67E5\u770B\u3002","
","
","\u6CE8\u610F\uFF0C\u5728\u602A\u7269\u8BE6\u7EC6\u4FE1\u606F\u4E2D\uFF0C\u9664\u8BE6\u7EC6\u4E34\u754C\u680F\u5916\u5747\u53EF\u4EE5\u901A\u8FC7\u70B9\u51FB\u5C4F\u5E55\u8FD4\u56DE\u5230\u602A\u7269\u624B\u518C\u754C\u9762\u3002",'\u5982\u679C\u4F60\u662F\u7535\u8111\u7AEF\uFF0C\u5728\u4EFB\u610F\u680F\u76EE\u4E2D\u6309\u4E0BX\u952E\u4F1A\u9000\u51FA\u602A\u7269\u624B\u518C\uFF0C\u8FD4\u56DE\u6E38\u620F\uFF0C','\u6309\u4E0B\u56DE\u8F66\uFF08Enter\uFF09\u952E\u4F1A\u56DE\u5230\u602A\u7269\u624B\u518C\u754C\u9762\u3002']},fly={text:"\u697C\u5C42\u4F20\u9001\u5668",condition:"true",desc:["\u697C\u4F20\u754C\u9762\u6253\u5F00\u65F6\u4F1A\u6709\u4E00\u4E2A0.6\u79D2\u7684\u52A8\u753B\uFF0C\u5982\u679C\u4E0D\u60F3\u8981\u53EF\u4EE5\u5728\u5F00\u5934\u6361\u7684\u7CFB\u7EDF\u8BBE\u7F6E\u91CC\u9762\u5173\u95ED\u3002\uFF08\u9ED8\u8BA4\u5173\u95ED\uFF09","
","
",'\u672C\u5854\u7684\u697C\u5C42\u4F20\u9001\u5668\u662F\u4E00\u4E2A\u96C6\u5206\u533A\u3001\u5C0F\u5730\u56FE\u3001\u697C\u5C42\u4F20\u9001\u4E8E\u4E00\u4F53\u7684\u591A\u529F\u80FD\u697C\u4F20\u3002',"\u4E0B\u9762\u662F\u697C\u4F20\u7684\u5177\u4F53\u8BF4\u660E\uFF1A","
","
","\u9996\u5148\uFF0C\u5BF9\u4E8E\u7535\u8111\u7AEF\uFF0C\u6700\u5DE6\u4FA7\u663E\u793A\u533A\u57DF\u4FE1\u606F\uFF0C\u624B\u673A\u7AEF\u5219\u5728\u4E0A\u65B9\u7684\u5DE6\u4FA7\u3002","
","
","\u7136\u540E\uFF0C\u533A\u57DF\u7684\u53F3\u4FA7\u662F\u5C0F\u5730\u56FE\u680F\uFF0C\u8FD9\u4E00\u680F\u4F1A\u663E\u793A\u697C\u5C42\u7684\u5E73\u9762\u7ED3\u6784\u3002\u4F60\u53EF\u4EE5\u62D6\u52A8\uFF0C\u4E5F\u53EF\u4EE5\u4F7F\u7528\u6EDA\u8F6E\u6216\u8005\u53CC\u6307\u653E\u7F29\uFF0C\u5F53\u653E\u7F29\u5230\u4E00\u5B9A\u5927\u5C0F\u65F6\uFF0C","\u4F1A\u663E\u793A\u5730\u56FE\u7684\u7F29\u7565\u56FE\u3002\u76F4\u63A5\u70B9\u51FB\u5730\u56FE\u4E5F\u53EF\u4EE5\u9009\u4E2D\u5730\u56FE\uFF0C\u518D\u6B21\u70B9\u51FB\u4F1A\u4F20\u9001\u81F3\u76EE\u6807\u5730\u56FE\u3002","
","
","\u5BF9\u4E8E\u7535\u8111\u7AEF\uFF0C\u6700\u53F3\u4FA7\u662F\u5F53\u524D\u9009\u4E2D\u7684\u5730\u56FE\u7684\u7F29\u7565\u56FE\uFF0C\u624B\u673A\u5219\u5728\u4E0B\u65B9\uFF0C\u70B9\u51FB\u7F29\u7565\u56FE\u4E5F\u53EF\u4EE5\u4F20\u9001\u3002\u7F29\u7565\u56FE\u7684\u4E0B\u65B9\u662F\u5F53\u524D\u9009\u4E2D\u7684\u5730\u56FE\u540D\uFF0C","\u5DE6\u53F3\u5404\u6709\u4E24\u4E2A\u6309\u94AE\uFF0C\u8868\u793A\u540E\u900010\u5C42\u3001\u540E\u90001\u5C42\u3001\u524D\u8FDB1\u5C42\u3001\u524D\u8FDB10\u5C42\uFF0C\u4E0E\u6837\u677F\u7684\u697C\u4F20\u7684\u6309\u94AE\u529F\u80FD\u7C7B\u4F3C\u3002","
","
","\u6700\u4E0B\u65B9\u662F\u8BBE\u7F6E\u6309\u94AE\uFF0C\u53EF\u4EE5\u5207\u6362\u65E0\u8FB9\u6846\u6A21\u5F0F\uFF0C\u7535\u8111\u7AEF\u8FD8\u53EF\u4EE5\u5207\u6362\u4F20\u7EDF\u6309\u952E\u6A21\u5F0F\uFF0C\u4F20\u7EDF\u6309\u952E\u6A21\u5F0F\u4E0B\u6309\u952E\u9075\u5FAA\u6837\u677F\u7684\u697C\u4F20\u6309\u952E\u65B9\u5F0F\u3002",'\u5BF9\u4E8E\u975E\u4F20\u7EDF\u6A21\u5F0F\uFF0C\u4E0A\u4E0B\u5DE6\u53F3\u53EF\u4EE5\u79FB\u52A8\u5730\u56FE\uFF0C','PageUp\u548CPageDown\u53EF\u4EE5\u524D\u8FDB1\u5C42\u6216\u540E\u90001\u5C42\u3002']},tools={text:"\u9053\u5177\u680F\u4E0E\u88C5\u5907\u680F",condition:"true",desc:["\u9053\u5177\u680F\u4E0E\u88C5\u5907\u680F\u6253\u5F00\u65F6\u4F1A\u6709\u4E00\u4E2A0.6\u79D2\u7684\u52A8\u753B\uFF0C\u5982\u679C\u4E0D\u60F3\u8981\u53EF\u4EE5\u5728\u5F00\u5934\u6361\u7684\u7CFB\u7EDF\u8BBE\u7F6E\u91CC\u9762\u5173\u95ED\u3002\uFF08\u9ED8\u8BA4\u5173\u95ED\uFF09","
","
","\u672C\u5854\u7684\u9053\u5177\u680F\u6CA1\u6709\u7279\u522B\u4E4B\u5904\uFF0C\u8FD9\u91CC\u4E0D\u9700\u8981\u8BF4\u660E\u3002\u4E3B\u8981\u662F\u88C5\u5907\u680F\u3002","
","
","\u672C\u5854\u7684\u88C5\u5907\u680F\u624B\u673A\u548C\u7535\u8111\u7AEF\u4E0D\u540C\uFF0C\u7535\u8111\u7AEF\u6BD4\u624B\u673A\u7AEF\u591A\u4E86\u4E00\u4E2A\u52C7\u58EB\u5C5E\u6027\u7684\u663E\u793A\u3002\u5728\u88C5\u5907\u680F\u7684\u88C5\u5907\u5217\u8868\u680F\uFF0C","\u4E0A\u65B9\u6709\u4E24\u4E2A\u9009\u62E9\u6846\u4E0E\u4E00\u4E2A\u6392\u5E8F\u65B9\u5F0F\u7684\u9009\u9879\u3002\u8FD9\u4E09\u4E2A\u53EF\u4EE5\u7B5B\u9009\u4F60\u62E5\u6709\u7684\u88C5\u5907\u5E76\u8FDB\u884C\u6392\u5E8F\uFF0C\u4ECE\u800C\u8BA9\u4F60\u80FD\u591F\u66F4\u6E05\u695A\u5730\u77E5\u9053\u54EA\u4E2A\u88C5\u5907\u66F4\u5F3A\u3002","\u7B2C\u4E00\u4E2A\u9009\u62E9\u6846\u53EF\u4EE5\u7B5B\u9009\u88C5\u5907\u589E\u52A0\u7684\u5C5E\u6027\uFF0C\u5982\u679C\u88C5\u5907\u4E0D\u589E\u52A0\u9009\u62E9\u7684\u5C5E\u6027\uFF0C\u90A3\u4E48\u4F1A\u4E0D\u663E\u793A\u3002\u7B2C\u4E8C\u4E2A\u9009\u62E9\u6846\u53EF\u4EE5\u7B5B\u9009\u589E\u52A0\u7684\u5C5E\u6027\u7684\u65B9\u5F0F\uFF0C","\u6709\u6570\u503C\u589E\u52A0\u548C\u767E\u5206\u6BD4\u589E\u52A0\u4E24\u79CD\u3002\u5728\u8FD9\u4E2A\u9009\u62E9\u6846\u53F3\u8FB9\u6709\u4E00\u4E2A\u56FE\u6807\uFF0C\u8FD9\u4E2A\u56FE\u6807\u53EF\u4EE5\u6539\u53D8\u6B66\u5668\u7684\u6392\u5E8F\u65B9\u5F0F\uFF0C\u6709\u5347\u5E8F\u548C\u964D\u5E8F\u4E24\u79CD\uFF0C\u9ED8\u8BA4\u4E3A\u5347\u5E8F\u3002","\u4F8B\u5982\uFF0C\u4F60\u62E5\u6709\u4E24\u4E2A\u88C5\u5907\uFF0C\u5206\u522B\u589E\u52A010\u653B\u51FB\u548C20\u653B\u51FB\uFF0C\u4E09\u8005\u4F60\u5206\u522B\u9009\u62E9\u4E86\u653B\u51FB\uFF0C\u6570\u503C\uFF0C\u5347\u5E8F\uFF0C\u90A3\u4E48\u589E\u52A010\u653B\u51FB\u7684\u88C5\u5907\u4F1A\u6392\u5728\u4E0A\u9762\uFF0C","\u800C\u589E\u52A020\u653B\u51FB\u7684\u88C5\u5907\u4F1A\u6392\u5728\u4E0B\u9762\u3002","
","
","\u5BF9\u4E8E\u7535\u8111\u7AEF\uFF0C\u5982\u679C\u4F60\u60F3\u88C5\u88C5\u5907\uFF0C\u53EF\u4EE5\u76F4\u63A5\u62D6\u52A8\u88C5\u5907\u81F3\u88C5\u5907\u5B54\uFF0C\u4E5F\u53EF\u4EE5\u9009\u4E2D\u88C5\u5907\u540E\u518D\u6B21\u70B9\u51FB\u3002\u624B\u673A\u7AEF\u6682\u65F6\u65E0\u6CD5\u62D6\u52A8\u88C5\u5907\u3002\u5F53\u9009\u4E2D\u4E00\u4E2A\u88C5\u5907\u540E\uFF0C","\u7535\u8111\u7AEF\u548C\u624B\u673A\u7AEF\u5747\u4F1A\u663E\u793A\u88C5\u5907\u589E\u52A0\u6216\u51CF\u5C11\u7684\u5C5E\u6027\uFF0C\u6CE8\u610F\u6709\u7684\u88C5\u5907\u53EF\u80FD\u4E0D\u589E\u52A0\u5C5E\u6027\u4F46\u662F\u6709\u7279\u6B8A\u529F\u80FD\u3002\u5BF9\u4E8E\u7535\u8111\u7AEF\uFF0C","\u8FD8\u4F1A\u76F4\u63A5\u5728\u52C7\u58EB\u5C5E\u6027\u680F\u663E\u793A\u589E\u52A0\u6216\u51CF\u5C11\u7684\u5C5E\u6027\u3002"]},skillTree={text:"\u6280\u80FD\u6811",condition:"flags.chapter > 0",desc:['\u6253\u5F00\u6280\u80FD\u6811\u53EF\u4EE5\u70B9\u51FB\u72B6\u6001\u680F\u7684',"\u6280\u80FD\u6811\u6309\u94AE\uFF08\u5982\u679C\u53D1\u73B0\u6CA1\u6709\u663E\u793A\u53EF\u4EE5\u5C1D\u8BD5\u4E0A\u4E0B\u6EDA\u52A8\u72B6\u6001\u680F\uFF09\uFF0C\u8FD8\u53EF\u4EE5\u6309",'\u5FEB\u6377\u952EJ\u6253\u5F00\u3002',"
","
","\u6280\u80FD\u6811\u662F\u672C\u5854\u7684\u4E3B\u8981\u73A9\u6CD5\u4E4B\u4E00\u3002\u5B83\u53EF\u4EE5\u8BA9\u4F60\u4F7F\u7528\u667A\u6167\u6765\u5B66\u4E60\u6280\u80FD\uFF0C\u589E\u52A0\u5C5E\u6027\u7B49\u3002\u667A\u6167\u5728\u72B6\u6001\u680F\u663E\u793A\u5728\u9632\u5FA1\u7684\u4E0B\u4E00\u9879\uFF0C","\u7EFF\u5B9D\u77F3\u53EF\u4EE5\u589E\u52A0\u52C7\u58EB\u7684\u667A\u6167\u3002","
","
","\u6253\u5F00\u6280\u80FD\u6811\u9875\u9762\u540E\uFF0C\u4F60\u53EF\u4EE5\u5728\u4E0A\u65B9\u770B\u5230\u6280\u80FD\u7684\u540D\u79F0\u4E0E\u63CF\u8FF0\uFF0C\u4E0B\u65B9\u4F1A\u663E\u793A\u6280\u80FD\u6811\uFF0C\u4EE5\u53CA\u5347\u7EA7\u8981\u6C42\u7B49\u3002\u70B9\u51FB\u4E00\u4E2A\u6280\u80FD\u53EF\u4EE5\u9009\u4E2D\u6280\u80FD\uFF0C","\u518D\u6B21\u70B9\u51FB\u53EF\u4EE5\u5347\u7EA7\u6280\u80FD\u3002\u6CE8\u610F\uFF0C\u524D\u7F6E\u6280\u80FD\u680F\u53EF\u4EE5\u4E0A\u4E0B\u6EDA\u52A8\uFF0C\u56E0\u6B64\u5982\u679C\u53D1\u73B0\u663E\u793A\u4E0D\u5168\uFF0C\u53EF\u4EE5\u5C1D\u8BD5\u4E0A\u4E0B\u6EDA\u52A8\u524D\u7F6E\u6280\u80FD\u680F","
","
","\u6CE8\u610F\uFF0C\u6280\u80FD\u5728\u70B9\u5F00\u4E4B\u540E\u662F\u65E0\u6CD5\u53D6\u6D88\u7684\uFF0C\u56E0\u6B64\uFF0C\u52A0\u70B9\u65F6\u8BF7\u614E\u91CD\u52A0\u70B9\u3002\u6CE8\u610F\uFF0C\u90E8\u5206\u6280\u80FD\u662F\u5FC5\u70B9\u6280\u80FD\uFF0C\u8FD9\u4E9B\u6280\u80FD\u4F1A\u5728\u6280\u80FD\u8BF4\u660E\u4E2D\u660E\u786E\u6307\u51FA\uFF0C","\u8FD9\u4E9B\u6280\u80FD\u4E00\u822C\u9700\u8981\u5C3D\u65E9\u70B9\u51FA\u3002"]},desc={tip,tutorial,noun,shortcut,extraAttr,statusBar,markEnemy,book,fly,tools,skillTree},_hoisted_1$9={id:"desc-list"},_hoisted_2$7=["selected","onClick"],_hoisted_3$7={key:0},_hoisted_4$5=["innerHTML"],_sfc_main$9=defineComponent({__name:"desc",setup(__props){const selected=ref(Object.keys(desc)[0]);function exit(){core.plugin.descOpened.value=!1}const content=computed(()=>splitText(desc[selected.value].desc));function click(key){!eval(desc[key].condition)||(selected.value=key)}function show(condition){return eval(condition)}return(e,t)=>(openBlock(),createBlock(Column,{onClose:exit,width:80,height:80,left:30,right:70},{left:withCtx(()=>[createBaseVNode("div",_hoisted_1$9,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(desc),(i,n)=>(openBlock(),createElementBlock("div",{class:"selectable",selected:selected.value===n,onClick:s=>click(n)},[show(i.condition)?(openBlock(),createElementBlock("span",_hoisted_3$7,toDisplayString(i.text),1)):createCommentVNode("",!0)],8,_hoisted_2$7))),256))])]),right:withCtx(()=>[createBaseVNode("span",{innerHTML:unref(content)},null,8,_hoisted_4$5)]),_:1}))}}),desc_vue_vue_type_style_index_0_scoped_68d53667_lang="",Desc=_export_sfc(_sfc_main$9,[["__scopeId","data-v-68d53667"]]),none={text:"\u65E0",opened:"true",desc:["\u5F53\u524D\u672A\u9009\u62E9\u6280\u80FD"]},blade={text:"1\uFF1A\u65AD\u706D\u4E4B\u5203",opened:"core.getSkillLevel(2) > 0",desc:['\u5FEB\u6377\u952E1\uFF0C\u5F00\u542F\u540E\u52C7\u58EB\u653B\u51FB\u589E\u52A0${level:2 * 10}%\uFF0C',"\u540C\u65F6\u9632\u5FA1\u51CF\u5C11${level:2 * 10}%\u3002","
","
","\u5F53\u524D\u7B49\u7EA7\uFF1A${level:2}"]},jump={text:"2\uFF1A\u8DF3\u8DC3",opened:"flags.skill2 === true",desc:['\u5FEB\u6377\u952E2\uFF0C\u6D88\u8017200\u70B9\u751F\u547D\u503C\uFF0C\u56F0\u96BE\u6D88\u8017400\u70B9\uFF0C\u4E00\u4E2A\u5730\u56FE\u53EA\u80FD\u4F7F\u75283\u6B21\uFF0C',"\u5982\u679C\u524D\u65B9\u4E3A\u53EF\u901A\u884C\u7684\u5730\u9762\uFF0C\u5219\u4E0D\u80FD\u4F7F\u7528\u8BE5\u6280\u80FD\uFF0C\u5982\u679C\u524D\u65B9\u4E3A\u602A\u7269\uFF0C\u5219\u5C06\u602A\u7269\u79FB\u81F3\u52C7\u58EB\u89C6\u7EBF\u4E0A\u7B2C\u4E00\u4E2A\u4E0D\u80FD\u901A\u884C\u7684\u65B9\u5757\u540E","\u5982\u679C\u524D\u65B9\u4E3A\u969C\u788D\u7269\uFF0C\u5219\u76F4\u63A5\u8DF3\u5230\u8BE5\u969C\u788D\u7269\u7684\u540E\u65B9\u3002"]},shield={text:"3\uFF1A\u94F8\u5251\u4E3A\u76FE",opened:"core.getSkillLevel(10) > 0",desc:['\u5FEB\u6377\u952E3\uFF0C\u5F00\u542F\u540E\u52C7\u58EB\u9632\u5FA1\u589E\u52A0${level:10 * 10}%\uFF0C',"\u540C\u65F6\u653B\u51FB\u51CF\u5C11${level:10 * 10}%\u3002","
","
","\u5F53\u524D\u7B49\u7EA7\uFF1A${level:10}"]},skills={none,blade,jump,shield},_hoisted_1$8={id:"skill-list"},_hoisted_2$6=["selected","selectable","onClick"],_hoisted_3$6=["innerHTML"],_sfc_main$8=defineComponent({__name:"skill",setup(__props){const selected=ref("none");function skillOpened(skill){return eval(skills[skill].opened)}function select(e){!skillOpened(e)||(selected.value=e)}const content=computed(()=>eval("`"+skills[selected.value].desc.map((e,t,i)=>/^\d+\./.test(e)?`${" ".repeat(12)}${e}`:has(i[t-1])&&e!=="
"&&i[t-1]==="
"||t===0?`${" ".repeat(8)}${e}`:e).join("").replace(/level:(\d+)/g,"core.getSkillLevel($1)")+"`"));function exit(){core.plugin.skillOpened.value=!1}return(e,t)=>(openBlock(),createBlock(Column,{onClose:exit,width:70,height:70},{left:withCtx(()=>[createBaseVNode("div",_hoisted_1$8,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(skills),(i,n)=>(openBlock(),createElementBlock("span",{class:"selectable skill-item",selected:n===selected.value,selectable:skillOpened(n),onClick:s=>select(n)},toDisplayString(i.text),9,_hoisted_2$6))),256))])]),right:withCtx(()=>[createBaseVNode("span",{innerHTML:unref(content)},null,8,_hoisted_3$6)]),_:1}))}}),skill_vue_vue_type_style_index_0_scoped_9f619ff1_lang="",Skill=_export_sfc(_sfc_main$8,[["__scopeId","data-v-9f619ff1"]]),_withScopeId$3=e=>(pushScopeId("data-v-b1be4e88"),e=e(),popScopeId(),e),_hoisted_1$7={id:"skill-tree"},_hoisted_2$5={id:"tools"},_hoisted_3$5={id:"skill-title"},_hoisted_4$4={id:"skill-info"},_hoisted_5$4=["innerHTML"],_hoisted_6$4={id:"skill-effect"},_hoisted_7$4=["innerHTML"],_hoisted_8$3=["innerHTML"],_hoisted_9$3={id:"skill-bottom"},_hoisted_10$3=_withScopeId$3(()=>createBaseVNode("canvas",{id:"skill-canvas"},null,-1)),_hoisted_11$3={id:"skill-upgrade-info"},_hoisted_12$2={id:"skill-level"},_hoisted_13$2={key:1,id:"skill-consume",style:{color:"gold"}},_hoisted_14$2={id:"skill-front"},_hoisted_15$1=_withScopeId$3(()=>createBaseVNode("span",null,"\u524D\u7F6E\u6280\u80FD",-1)),_hoisted_16$1={id:"skill-chapter"},_sfc_main$7=defineComponent({__name:"skillTree",setup(__props){var e;let canvas,ctx;const selected=ref(0),chapter=ref("chapter1"),update=ref(!1),chapterDict={chapter1:"\u7B2C\u4E00\u7AE0",chapter2:"\u7B2C\u4E8C\u7AE0"};(e=flags.skillTree)!=null||(flags.skillTree=0);const chapterList=Object.keys(core.plugin.skills);selected.value=core.plugin.skills[chapterList[flags.skillTree]][0].index,chapter.value=chapterList[flags.skillTree],watch(selected,draw),watch(update,()=>mdef.value=core.status.hero.mdef);const mdef=ref(core.status.hero.mdef),skill=computed(()=>(update.value,core.getSkillFromIndex(selected.value))),skills=computed(()=>core.plugin.skills[chapter.value]),desc=computed(()=>eval("`"+splitText(skill.value.desc).replace(/level(:\d+)?/g,(t,i)=>i?`core.getSkillLevel(${i})`:`core.getSkillLevel(${skill.value.index})`)+"`")),effect=computed(()=>[0,1].map(v=>eval(`\`${v===0?"\u5F53\u524D\u6548\u679C\uFF1A":"\u4E0B\u4E00\u7EA7\u6548\u679C\uFF1A"}`+skill.value.effect.join("").replace(/level(:\d+)?/g,(t,i)=>i?`(core.getSkillLevel(${i}) + ${v})`:`(core.getSkillLevel(${skill.value.index}) + ${v})`)+"`"))),dict=computed(()=>{const t={};return skills.value.forEach((n,s)=>{t[n.index]=s}),t}),front=computed(()=>skill.value.front.map(t=>`${core.getSkillLevel(t[0])>=t[1]?"a":"b"}${t[1]}\u7EA7 ${skills.value[dict.value[t[0]]].title}`)),consume=computed(()=>(update.value,core.getSkillConsume(selected.value))),level=computed(()=>(update.value,core.getSkillLevel(selected.value)));function exit(){core.plugin.skillTreeOpened.value=!1}function resize(){const t=getComputedStyle(canvas);canvas.width=parseFloat(t.width)*devicePixelRatio,canvas.height=parseFloat(t.height)*devicePixelRatio}function draw(){const t=dict.value,n=canvas.width/11;ctx.clearRect(0,0,canvas.width,canvas.height),skills.value.forEach(s=>{const[a,r]=s.loc.map(l=>l*2-1);s.front.forEach(([l],c)=>{const d=skills.value[t[l]];ctx.beginPath(),ctx.moveTo(a*n+n/2,r*n+n/2),ctx.lineTo(...d.loc.map(u=>(u*2-1)*n+n/2)),core.getSkillLevel(d.index){const[a,r]=s.loc.map(d=>d*2-1),l=core.getSkillLevel(s.index);ctx.save(),ctx.lineWidth=n*.06,selected.value===s.index?(ctx.strokeStyle="#ff0",ctx.lineWidth*=2):l===0?ctx.strokeStyle="#888":l===s.max?ctx.strokeStyle="#F7FF68":ctx.strokeStyle="#00FF69",ctx.strokeRect(a*n,r*n,n,n);const c=core.material.images.images[`skill${s.index}.png`];ctx.drawImage(c,a*n,r*n,n,n),selected.value===s.index&&(ctx.fillStyle="#ff04",ctx.fillRect(a*n,r*n,n,n)),ctx.restore()})}function click(t){const i=t.offsetX,n=t.offsetY,a=canvas.width/devicePixelRatio/11,r=Math.floor(i/a),l=Math.floor(n/a);if(r%2!==1||l%2!==1)return;const c=Math.floor(r/2)+1,d=Math.floor(l/2)+1,u=skills.value.find(h=>h.loc[0]===c&&h.loc[1]===d);!u||(selected.value!==u.index?selected.value=u.index:upgrade(u.index))}function upgrade(t){core.upgradeSkill(t)?(tip$1("success","\u5347\u7EA7\u6210\u529F\uFF01"),update.value=!update.value,core.status.route.push(`skill:${selected.value}`)):tip$1("error","\u5347\u7EA7\u5931\u8D25\uFF01")}function key(t){const i=keycode(t.keyCode);(i===KeyCode.Escape||i===KeyCode.KeyX||i===KeyCode.KeyJ)&&exit(),(i===KeyCode.Space||i===KeyCode.Enter||i===KeyCode.KeyC)&&upgrade(selected.value)}onMounted(async()=>{canvas=document.getElementById("skill-canvas"),ctx=canvas.getContext("2d"),resize(),draw(),await S(50),core.plugin.transition.value&&await S(600),canvas.addEventListener("click",click),document.addEventListener("keyup",key)}),onUnmounted(()=>{document.removeEventListener("keyup",key)});function selectChapter(t){const n=chapterList.indexOf(chapter.value)+t;has(chapterList[n])&&flags.chapter>n&&(selected.value=core.plugin.skills[chapterList[n]][0].index,chapter.value=chapterList[n],update.value=!update.value,flags.skillTree=n,draw())}return(t,i)=>{const n=__unplugin_components_1;return openBlock(),createElementBlock("div",_hoisted_1$7,[createBaseVNode("div",_hoisted_2$5,[createBaseVNode("span",{id:"back",class:"button-text tools",onClick:exit},[createVNode(unref(LeftOutlined)),createTextVNode("\u8FD4\u56DE\u6E38\u620F")])]),createBaseVNode("span",_hoisted_3$5,toDisplayString(unref(skill).title),1),createVNode(n,{dashed:"",style:{"border-color":"#ddd4"},id:"divider"}),createBaseVNode("div",_hoisted_4$4,[createVNode(Scroll,{id:"skill-desc","no-scroll":!0},{default:withCtx(()=>[createBaseVNode("span",{innerHTML:unref(desc)},null,8,_hoisted_5$4)]),_:1}),createBaseVNode("div",_hoisted_6$4,[unref(level)>0?(openBlock(),createElementBlock("span",{key:0,innerHTML:unref(effect)[0]},null,8,_hoisted_7$4)):createCommentVNode("",!0),unref(level)[createBaseVNode("div",_hoisted_14$2,[_hoisted_15$1,(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(front),s=>(openBlock(),createElementBlock("span",{style:normalizeStyle({color:s.startsWith("a")?"#fff":"#f44"})},toDisplayString(s.slice(1)),5))),256))])]),_:1}),createVNode(n,{dashed:"",class:"upgrade-divider"}),createBaseVNode("div",_hoisted_16$1,[createBaseVNode("span",{class:"button-text",onClick:i[0]||(i[0]=s=>selectChapter(-1))},[createVNode(unref(LeftOutlined))]),createTextVNode(" \xA0\xA0 "),createBaseVNode("span",null,toDisplayString(chapterDict[chapter.value]),1),createTextVNode(" \xA0\xA0 "),createBaseVNode("span",{class:"button-text",onClick:i[1]||(i[1]=s=>selectChapter(1))},[createVNode(unref(RightOutlined))])])])])])}}}),skillTree_vue_vue_type_style_index_0_scoped_b1be4e88_lang="",SkillTree=_export_sfc(_sfc_main$7,[["__scopeId","data-v-b1be4e88"]]),index="";function init$4(){return{splitArea,getMapDrawData}}let area={};const bfsCache={},drawCache={},arrow={leftPortal:"left",rightPortal:"right",upPortal:"up",downPortal:"down"};function splitArea(){area={};const e=[];for(const t of core.floorIds){if(e.includes(t)||core.status.maps[t].deleted)continue;const i=getMapData(t,!0);if(e.push(...i.maps),i.maps.length>0){const n=core.status.maps[t].title;area[n]=i.maps}}}function getArea(){return area}function getMapDrawData(e,t=5,i=1,n=!1){var w;const s=`${e},${t},${i}`;if(drawCache[s]&&!n)return drawCache[s];const{link:a,maps:r}=getMapData(e,n),l={},c=[],d=core.status.maps[e];let u=-d.width/2,h=d.width/2,f=-d.height/2,g=d.height/2;for(const[_,D]of Object.entries(a)){const[B,P,N,L]=_.split(","),[U,H,W]=D.split(","),K=core.status.maps[B],G=core.status.maps[U],Y=parseInt(P),J=parseInt(N),ot=parseInt(H),ht=parseInt(W),st=K.width,ct=K.height,dt=G.width,mt=G.height;(w=l[B])!=null||(l[B]=[0,0]);const[ft,it]=l[B];if(!l[U]){const bt=core.utils.scan[L].x,vt=core.utils.scan[L].y,wt=ft+(Y-st/2)-(ot-dt/2)+(i*2+t)*bt,Bt=it+(J-ct/2)-(ht-mt/2)+(i*2+t)*vt;l[U]=[wt,Bt]}const[tt,lt]=l[U];c.push([ft+(Y-st/2+.5),it+(J-ct/2+.5),tt+(ot-dt/2+.5),lt+(ht-mt/2+.5)]);const ut=tt-dt/2,at=tt+dt/2,pt=lt-mt/2,gt=lt+mt/2;uth&&(h=at),ptg&&(g=gt)}Object.values(l).forEach(_=>{_[0]-=u,_[1]-=f}),c.forEach(_=>{_[0]-=u,_[2]-=u,_[1]-=f,_[3]-=f}),u-=5,h+=5,f-=5,g+=5;const m={locs:l,line:c,width:h-u,height:g-f};return drawCache[s]=m}function getMapData(e,t=!1){if(has(bfsCache[e])&&!t)return bfsCache[e];const i=[e],n={[e]:!0},s=[e],a={};for(;i.length>0;){const l=i.shift(),c=core.floors[l].changeFloor,d=core.getMapBlocksObj(l);for(const[u,h]of Object.entries(c)){const f=h.floorId;if(f.startsWith(":"))continue;const m=d[u].event.id;if(m in arrow&&!n[f]){const w=`${l},${u},${arrow[m]}`,_=`${f},${h.loc[0]},${h.loc[1]}`;a[w]=_,i.push(f),s.push(f)}}n[l]=!0}const r={maps:s,link:a};return bfsCache[e]=r}const _withScopeId$2=e=>(pushScopeId("data-v-581299e6"),e=e(),popScopeId(),e),_hoisted_1$6={id:"fly"},_hoisted_2$4={id:"tools"},_hoisted_3$4={id:"fly-settings"},_hoisted_4$3={id:"fly-border"},_hoisted_5$3=_withScopeId$2(()=>createBaseVNode("span",null,"\u65E0\u8FB9\u6846\u6A21\u5F0F",-1)),_hoisted_6$3={key:0,id:"fly-tradition"},_hoisted_7$3=_withScopeId$2(()=>createBaseVNode("span",null,"\u4F20\u7EDF\u6309\u952E\u6A21\u5F0F",-1)),_hoisted_8$2={id:"fly-main"},_hoisted_9$2={id:"fly-left"},_hoisted_10$2={id:"area-list"},_hoisted_11$2=["selected","onClick"],_hoisted_12$1={id:"fly-right"},_hoisted_13$1={id:"fly-tools"},_hoisted_14$1={id:"fly-now"},_sfc_main$6=defineComponent({__name:"fly",setup(e){var yt,At;const t=getArea(),i=ref(Object.keys(t).find(q=>t[q].includes(core.status.floorId))),n=ref(core.status.floorId),s=ref(!1),a=ref(!1);let r=isMobile?1.5:3,l=0,c=0,d={},u={};s.value=(yt=core.getLocalStorage("noBorder"))!=null?yt:!1,a.value=(At=core.getLocalStorage("flyTradition"))!=null?At:!1;const h=computed(()=>core.status.maps[n.value]);watch(n,Y),watch(i,q=>{var X;l=0,c=0,r=3,ot=3,t[q]&&!t[q].includes(n.value)&&(n.value=(X=t[q].find(et=>et===core.status.floorId))!=null?X:t[q][0])}),watch(s,q=>{core.setLocalStorage("noBorder",q),d={},N()}),watch(a,q=>{core.setLocalStorage("flyTradition",q)});const f=document.createElement("canvas"),g=f.getContext("2d");let m,w,_,D;function B(){core.plugin.flyOpened.value=!1}const P=computed(()=>core.status.maps[n.value].title);function N(q=!1){const X=s.value?.5:1,et=getMapDrawData(n.value,s.value?0:5,X,q),nt=g,Z=r*devicePixelRatio;f.width=et.width*Z,f.height=et.height*Z,nt.lineWidth=X*devicePixelRatio/2,nt.strokeStyle="#fff",nt.scale(Z,Z),nt.translate(5,5),s.value||et.line.forEach(([rt,St,xt,Mt])=>{nt.beginPath(),nt.moveTo(rt,St),nt.lineTo(xt,Mt),nt.stroke()});for(const[rt,[St,xt]]of Object.entries(et.locs))s.value||L(rt,St,xt),W(rt,St,xt);U()}function L(q,X,et){const nt=s.value?.5:1,Z=g;Z.lineWidth=nt*devicePixelRatio;const rt=core.status.maps[q];core.hasVisitedFloor(q)?Z.fillStyle="#000":Z.fillStyle="#d0d",q===n.value?Z.strokeStyle="gold":Z.strokeStyle="#fff",Z.strokeRect(X-rt.width/2,et-rt.height/2,rt.width,rt.height),Z.fillRect(X-rt.width/2,et-rt.height/2,rt.width,rt.height),q===n.value&&(Z.fillStyle="#ff04",Z.fillRect(X-rt.width/2,et-rt.height/2,rt.width,rt.height))}function U(q=1){w.clearRect(0,0,m.width,m.height),w.drawImage(f,0,0,f.width,f.height,l*devicePixelRatio+(m.width-f.width)/2,c*devicePixelRatio+(m.height-f.height)/2,f.width,f.height)}function H(q,X,et){const nt=core.status.maps[q],Z=r*devicePixelRatio,rt=l*devicePixelRatio+(m.width-f.width)/2+5*Z,St=c*devicePixelRatio+(m.height-f.height)/2+5*Z,xt=rt+(X-nt.width/2)*Z,Mt=St+(et-nt.height/2)*Z,Dt=xt+nt.width*Z,Et=Mt+nt.height*Z;return u[q]=[xt,Mt,Dt,Et],!(d[q]||!s.value&&r<=4||Dt<0||Et<0||xt>m.width||Mt>m.height)}function W(q,X,et,nt=!1){if(!nt&&!H(q,X,et))return;const Z=core.status.maps[q];d[q]=!0;const rt=g;core.drawThumbnail(q,void 0,{all:!0,inFlyMap:!0,x:X-Z.width/2,y:et-Z.height/2,w:Z.width,h:Z.height,ctx:rt,damage:!0}),core.hasVisitedFloor(q)||(rt.fillStyle="#d0d6",rt.fillRect(X-Z.width/2,et-Z.height/2,Z.width,Z.height),rt.fillStyle="#000"),n.value===q&&(rt.fillStyle="#ff04",rt.fillRect(X-Z.width/2,et-Z.height/2,Z.width,Z.height),rt.fillStyle="#000")}function K(){const q=s.value?.5:1,X=getMapDrawData(n.value,s.value?0:5,q);for(const[et,[nt,Z]]of Object.entries(X.locs))H(et,nt,Z)&&W(et,nt,Z,!0)}function G(){let q=_.width,X=_.height,et=0,nt=0;const Z=h.value.width/h.value.height;Z>1&&(X=q/Z,nt=_.height/2-X/2),Z<1&&(q=X*Z,et=_.width/2-q/2),D.fillStyle="#000",D.fillRect(0,0,_.width,_.height),core.drawThumbnail(n.value,void 0,{ctx:D,all:!0,damage:!0,inFlyMap:!0,x:et,y:nt,w:q,h:X})}function Y(){d={},N(),G()}function J(){core.flyTo(n.value)?B():tip$1("error",`\u65E0\u6CD5\u98DE\u5F80${h.value.title}`)}let ot=r;const ht=lodash.exports.debounce(q=>{m.style.transform="",d={},N(),ot=q},200);function st(q){l*=q,c*=q,r=q*r,ht(r),m.style.transform=`scale(${r/ot})`,u={}}let ct=0,dt=0,mt=!1,ft=0,it=0;function tt(q,X){if(vt)return;const et=q-ct,nt=X-dt;l+=et,c+=nt,ct=q,dt=X,K(),U(),(Math.abs(q-ft)>10||Math.abs(X-it)>10)&&(mt=!0)}function lt(q){if(mt)return;const X=q.offsetX*devicePixelRatio,et=q.offsetY*devicePixelRatio;for(const[nt,[Z,rt,St,xt]]of Object.entries(u))X>=Z&&X<=St&&et>=rt&&et<=xt&&(nt===n.value?J():n.value=nt)}function ut(q){i.value=Object.keys(t).find(X=>t[X].includes(q))}function at(q){const X=core.floorIds.indexOf(n.value);let et=X+q;if(et<0&&(et=0),et>=core.floorIds.length&&(et=core.floorIds.length-1),core.status.maps[core.floorIds[et]].deleted)for(;et!==X&&(et-=Math.sign(q),!!core.status.maps[core.floorIds[et]].deleted););n.value=core.floorIds[et],ut(n.value),gt(n.value)}function pt(q){const X=getMapData(n.value);for(const[et,nt]of Object.entries(X.link)){if(!et.startsWith(n.value))continue;if(et.split(",")[3]===q){const rt=nt.split(",")[0];gt(rt),n.value=rt;return}}}function gt(q){const X=getMapDrawData(q,s.value?0:5,s.value?.5:1);if(!X.locs[q])return;const[et,nt]=X.locs[q];l=(-et+X.width/2-5)*r,c=(-nt+X.height/2-5)*r}function bt(q){const X=keycode(q.keyCode);(X===KeyCode.Enter||X===KeyCode.Space||X===KeyCode.KeyC)&&J(),(X===KeyCode.Escape||X===KeyCode.KeyX||X===KeyCode.KeyG)&&B(),a.value?(X===KeyCode.UpArrow&&at(1),X===KeyCode.DownArrow&&at(-1),X===KeyCode.LeftArrow&&at(-10),X===KeyCode.RightArrow&&at(10),X===KeyCode.PageUp&&at(10),X===KeyCode.PageDown&&at(-10)):(X===KeyCode.LeftArrow&&pt("left"),X===KeyCode.RightArrow&&pt("right"),X===KeyCode.UpArrow&&pt("up"),X===KeyCode.DownArrow&&pt("down"),X===KeyCode.PageUp&&at(1),X===KeyCode.PageDown&&at(-1))}let vt=!1,wt=0;function Bt(q){q.touches.length>=2&&(vt=!0,wt=Math.sqrt((q.touches[0].clientX-q.touches[1].clientX)**2+(q.touches[0].clientY-q.touches[1].clientY)**2))}function _t(q){q.touches.length<2&&(vt=!1)}function kt(q){if(!vt)return;const X=Math.sqrt((q.touches[0].clientX-q.touches[1].clientX)**2+(q.touches[0].clientY-q.touches[1].clientY)**2);st(X/wt),wt=X}return onMounted(async()=>{m=document.getElementById("fly-map"),w=m.getContext("2d"),_=document.getElementById("fly-thumbnail"),D=_.getContext("2d");const q=getComputedStyle(m),X=getComputedStyle(_);m.width=parseFloat(q.width)*devicePixelRatio,m.height=parseFloat(q.height)*devicePixelRatio,_.width=parseFloat(X.width)*devicePixelRatio,_.height=parseFloat(X.width)*devicePixelRatio,Array.from(document.getElementsByClassName("fly-settings")).forEach(et=>{et.addEventListener("click",nt=>et.blur())}),gt(n.value),Y(),useDrag(m,tt,(et,nt)=>{ct=et,dt=nt,ft=et,it=nt},()=>{setTimeout(()=>{mt=!1},50)},!0),useWheel(m,(et,nt)=>{const Z=-Math.sign(nt)*.1+1;st(Z)}),await S(50),core.plugin.transition.value&&await S(600),document.addEventListener("keyup",bt),m.addEventListener("touchstart",Bt),m.addEventListener("touchend",_t),m.addEventListener("touchend",kt)}),onUnmounted(()=>{cancelGlobalDrag(tt),document.removeEventListener("keyup",bt)}),(q,X)=>{const et=__unplugin_components_0$1,nt=__unplugin_components_1;return openBlock(),createElementBlock("div",_hoisted_1$6,[createBaseVNode("div",_hoisted_2$4,[createBaseVNode("span",{class:"button-text",onClick:B},[createVNode(unref(LeftOutlined)),createTextVNode(" \u8FD4\u56DE\u6E38\u620F")])]),createBaseVNode("div",_hoisted_3$4,[createBaseVNode("div",_hoisted_4$3,[_hoisted_5$3,createVNode(et,{class:"fly-settings",checked:s.value,"onUpdate:checked":X[0]||(X[0]=Z=>s.value=Z),"checked-children":"ON","un-checked-children":"OFF"},null,8,["checked"])]),unref(isMobile)?createCommentVNode("",!0):(openBlock(),createElementBlock("div",_hoisted_6$3,[_hoisted_7$3,createVNode(et,{class:"fly-settings",checked:a.value,"onUpdate:checked":X[1]||(X[1]=Z=>a.value=Z),"checked-children":"ON","un-checked-children":"OFF"},null,8,["checked"])]))]),createBaseVNode("div",_hoisted_8$2,[createBaseVNode("div",_hoisted_9$2,[createVNode(Scroll,{id:"fly-area"},{default:withCtx(()=>[createBaseVNode("div",_hoisted_10$2,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(t),(Z,rt)=>(openBlock(),createElementBlock("span",{selected:i.value===rt,class:"selectable",onClick:St=>i.value=rt},toDisplayString(rt),9,_hoisted_11$2))),256))])]),_:1}),createVNode(nt,{type:"vertical",dashed:"",id:"divider-left"}),createBaseVNode("div",{id:"fly-map-div"},[createBaseVNode("canvas",{id:"fly-map",onClick:lt})])]),createVNode(nt,{id:"divider-right",dashed:"",type:unref(isMobile)?"horizontal":"vertical"},null,8,["type"]),createBaseVNode("div",_hoisted_12$1,[createBaseVNode("canvas",{id:"fly-thumbnail",onClick:J}),createBaseVNode("div",_hoisted_13$1,[createVNode(unref(DoubleLeftOutlined),{onClick:X[2]||(X[2]=Z=>at(-10)),class:"button-text"}),createVNode(unref(LeftOutlined),{onClick:X[3]||(X[3]=Z=>at(-1)),class:"button-text"}),createBaseVNode("span",_hoisted_14$1,toDisplayString(unref(P)),1),createVNode(unref(RightOutlined),{onClick:X[4]||(X[4]=Z=>at(1)),class:"button-text"}),createVNode(unref(DoubleRightOutlined),{onClick:X[5]||(X[5]=Z=>at(10)),class:"button-text"})])])])])}}}),fly_vue_vue_type_style_index_0_scoped_581299e6_lang="",Fly=_export_sfc(_sfc_main$6,[["__scopeId","data-v-581299e6"]]),bookOpened=ref(!1),toolOpened=ref(!1),equipOpened=ref(!1),showStatusBar=ref(!1),settingsOpened=ref(!1),descOpened=ref(!1),skillOpened=ref(!1),skillTreeOpened=ref(!1),flyOpened=ref(!1),transition=ref(!0),noClosePanel=ref(!1);let app;const UI_LIST=[[bookOpened,Book],[toolOpened,Toolbox],[equipOpened,Equipbox],[settingsOpened,Settings],[descOpened,Desc],[skillOpened,Skill],[skillTreeOpened,SkillTree],[flyOpened,Fly]],uiStack=ref([]);function init$3(){return app=document.getElementById("root"),UI_LIST.forEach(([e,t])=>{watch(e,i=>{if(i===!0)uiStack.value.push(markRaw(t)),showApp();else{const n=uiStack.value.findIndex(s=>s===t);uiStack.value.length===1?hideApp(n):uiStack.value.splice(n,1)}})}),{uiStack,transition,bookOpened,toolOpened,equipOpened,showStatusBar,settingsOpened,descOpened,skillOpened,skillTreeOpened,flyOpened}}async function showApp(){core.lockControl(),transition.value?app.style.transition="all 0.6s linear":app.style.transition="none",app.style.display="flex",await S(50),app.style.opacity="1"}async function hideApp(e){transition.value?(app.style.transition="all 0.6s linear",app.style.opacity="0",await S(600)):(app.style.transition="",app.style.opacity="0"),uiStack.value.splice(e,1),app.style.display="none",noClosePanel.value||core.closePanel(),noClosePanel.value=!1}const status=ref(!1);function init$2(){return{statusBarStatus:status}}const chapterShowed=ref(!1),chapterContent=ref("");function init$1(){return{chapterShowed,chapterContent}}const ani=new R;ani.register("rect",0);const path1={MT16:[[23,23],[0,23]],MT15:[[63,4],[61,4],[61,5],[58,5],[58,8],[54,8],[54,11],[51,11],[51,8],[45,8],[45,4],[47,4],[47,6],[51,6],[51,5],[52,5],[52,3],[50,3],[50,5],[48,5],[48,3],[35,3],[35,5],[31,5],[31,7],[34,7],[34,9],[31,9],[31,11],[12,11],[12,8],[1,8],[1,7],[0,7]],MT14:[[127,7],[126,7],[126,8],[124,8],[124,7],[115.2,7],[115.2,9.2],[110.2,9.2],[110.2,11],[109.8,11],[109.8,8.8],[111.8,8.8],[111.8,7],[104,7],[104,3],[100,3],[100,4],[98,4],[98,3],[96,3],[96,6],[95,6],[95,7],[88,7],[88,6],[85,6],[85,8],[83,8],[83,9],[81,9],[81,11],[72,11],[72,5],[68,5],[68,8],[67,8],[67,10],[65,10],[65,11],[62,11],[62,9],[60,9],[60,11],[57,11],[57,9],[54,9]]},camera1=[["MT16",0,10,0,1600,C("sin","in")],["MT15",45,0,0,2324,C("sin","in")],["MT15",40,0,2324,1992,C("sin","out")],["MT15",41,0,5312,498,C("sin","in-out")],["MT15",37,0,5810,1660,C("sin","in")],["MT15",29,0,7470,830,C("sin","out")],["MT15",25,0,11454,996,C("sin","in")],["MT15",12,0,12450,996,j()],["MT15",0,0,13446,1470,C("sin","out")],["MT14",109,0,0,1328,C("sin","in")],["MT14",104,0,1328,332,C("sin","out")],["MT14",92,0,5478,2822,C("sin","in")],["MT14",84,0,8300,1992,j()],["MT14",74,0,10292,2988,j()],["MT14",65,0,13280,2988,j()],["MT14",58,0,16268,1992,j()],["MT14",47,0,18260,3320,j()],["MT14",36,0,21580,3320,j()],["MT14",0,0,24900,9960,j()]];function init1(){const e=["MT13","MT14","MT15"],t=[];e.forEach(i=>{core.status.maps[i].cannotMoveDirectly=!0,core.extractBlocks(i),core.status.maps[i].blocks.forEach(n=>{["animates","items"].includes(n.event.cls)&&!n.event.id.endsWith("Portal")&&t.push([n.x,n.y,i])})}),t.forEach(i=>{core.removeBlock(...i)})}function chaseShake(e){e.ani.mode(shake2(2/32,O(1,1,1,1,1,1,1,1,1,1,1,1)),!0).time(5e4).shake(1,0)}async function wolfMove(e){core.moveBlock(23,17,Array(6).fill("down"),80),await S(550),core.setBlock(508,23,23)}function judgeFail1(e){e.ani.ticker.add(()=>{core.status.hero.loc.x>core.bigmap.offsetX/32+17&&(e.end(),ani.time(750).apply("rect",0),core.lose("\u9003\u8DD1\u5931\u8D25"))})}function drawBack(e){e.on("MT15",0,()=>{ani.mode(C("sin","out")).time(1500).absolute().apply("rect",64);const t=core.createCanvas("chaseBack",0,0,480,480,120);t.fillStyle="#000";const i=()=>{t||ani.ticker.remove(i),core.clearMap(t),t.fillRect(0,0,480,ani.value.rect),t.fillRect(0,480,480,-ani.value.rect)};ani.ticker.add(i)})}function para1(e){e.on("MT15",830,()=>{for(let t=53;t<58;t++)for(let i=3;i<8;i++)core.setBlock(336,t,i);core.drawAnimate("explosion3",55,5),core.drawAnimate("stone",55,5)}),e.on("MT15",1080,()=>{core.setBlock(336,58,9),core.setBlock(336,59,9),core.drawAnimate("explosion1",58,9),core.drawAnimate("explosion1",59,9)}),e.on("MT15",1190,()=>{core.setBlock(336,53,8),core.setBlock(336,52,8),core.drawAnimate("explosion1",53,8),core.drawAnimate("explosion1",52,8)}),e.on("MT15",1580,()=>{core.setBlock(336,51,7),core.drawAnimate("explosion1",51,7)}),e.on("MT15",1830,()=>{core.setBlock(336,47,7),core.setBlock(336,49,9),core.drawAnimate("explosion1",49,9),core.drawAnimate("explosion1",47,7)})}function para2(e){e.onHeroLoc("MT15",()=>{core.setBlock(336,45,9),core.drawAnimate("explosion1",45,9)},45,8),e.onHeroLoc("MT15",()=>{core.setBlock(336,44,6),core.drawAnimate("explosion1",44,6)},45,6),e.onHeroLoc("MT15",()=>{core.setBlock(336,44,4),core.drawAnimate("explosion1",44,4),core.drawAnimate("explosion1",48,6),core.removeBlock(48,6)},45,4),e.onHeroLoc("MT15",()=>{core.setBlock(336,41,4),core.setBlock(336,32,6),core.drawAnimate("explosion1",41,4),core.drawAnimate("explosion1",32,6)},41,3),e.onHeroLoc("MT15",()=>{core.drawAnimate("explosion3",37,7),core.vibrate("vertical",1e3,25,10);for(let t=36;t<42;t++)for(let i=4;i<11;i++)core.setBlock(336,t,i)},35,3),e.onHeroLoc("MT15",()=>{core.vibrate("vertical",1e4,25,1),core.removeBlock(34,8),core.removeBlock(33,8),core.drawAnimate("explosion1",34,8),core.drawAnimate("explosion1",33,8)},31,5),e.onHeroLoc("MT15",()=>{core.setBlock(336,32,9),core.drawAnimate("explosion1",32,9)},33,7),e.onHeroLoc("MT15",()=>{core.removeBlock(32,9),core.drawAnimate("explosion1",32,9)},[33,34,34],9);for(let t=19;t<31;t++){const i=t;e.onHeroLoc("MT15",()=>{core.setBlock(336,i+1,11),core.drawAnimate("explosion1",i+1,11)},i,11)}}function para3(e){e.onHeroLoc("MT14",()=>{core.setBlock(336,126,6),core.setBlock(336,124,6),core.setBlock(336,124,9),core.setBlock(336,126,9),core.drawAnimate("explosion1",126,6),core.drawAnimate("explosion1",124,6),core.drawAnimate("explosion1",124,9),core.drawAnimate("explosion1",126,9)},126,7),e.onHeroLoc("MT14",()=>{core.setBlock(508,127,7),core.jumpBlock(127,7,112,7,500,!0),setTimeout(()=>{core.setBlock(509,112,7)},520),core.drawHeroAnimate("amazed"),core.setBlock(336,121,6),core.setBlock(336,122,6),core.setBlock(336,120,8),core.setBlock(336,121,8),core.setBlock(336,122,8),core.drawAnimate("explosion1",121,6),core.drawAnimate("explosion1",122,6),core.drawAnimate("explosion1",120,8),core.drawAnimate("explosion1",121,8),core.drawAnimate("explosion1",122,8)},123,7),e.onHeroLoc("MT14",()=>{core.setBlock(336,109,11),core.removeBlock(112,8),core.drawAnimate("explosion1",109,11),core.drawAnimate("explosion1",112,8),core.insertAction([{type:"moveHero",time:400,steps:["backward:1"]}]),e.onHeroLoc("MT14",()=>{core.jumpBlock(112,7,110,4,500,!0),core.drawHeroAnimate("amazed"),setTimeout(()=>{core.setBlock(506,110,4)},540)},112,8)},110,10),e.onHeroLoc("MT14",()=>{core.setBlock(336,117,6),core.setBlock(336,116,6),core.setBlock(336,115,6),core.setBlock(336,114,6),core.setBlock(336,117,8),core.setBlock(336,116,8),core.drawAnimate("explosion1",117,6),core.drawAnimate("explosion1",116,6),core.drawAnimate("explosion1",115,6),core.drawAnimate("explosion1",114,6),core.drawAnimate("explosion1",116,8),core.drawAnimate("explosion1",117,8)},118,7),e.onHeroLoc("MT14",()=>{core.setBlock(336,112,8),core.setBlock(336,113,7),core.drawAnimate("explosion1",112,8),core.drawAnimate("explosion1",113,7)},112,7),e.onHeroLoc("MT14",()=>{for(let t=111;t<=115;t++)core.setBlock(336,t,10),core.drawAnimate("explosion1",t,10);core.setBlock(336,112,8),core.drawAnimate("explosion1",112,8)},115,7),e.onHeroLoc("MT14",()=>{core.jumpBlock(97,4,120,-3,2e3);for(let t=109;t<=120;t++)for(let i=3;i<=11;i++)i!=7&&core.setBlock(336,t,i);core.drawAnimate("explosion2",119,7),core.removeBlock(105,7),core.drawAnimate("explosion1",105,7)},110,7),e.onHeroLoc("MT14",()=>{core.setBlock(336,95,3),core.setBlock(336,93,6),core.drawAnimate("explosion1",95,3),core.drawAnimate("explosion1",93,6)},97,3),e.onHeroLoc("MT14",()=>{core.setBlock(336,87,4),core.setBlock(336,88,5),core.drawAnimate("explosion1",87,4),core.drawAnimate("explosion1",88,5)},88,6),e.onHeroLoc("MT14",()=>{core.setBlock(336,84,6),core.setBlock(336,85,5),core.setBlock(336,86,8),core.drawAnimate("explosion1",84,6),core.drawAnimate("explosion1",85,5),core.drawAnimate("explosion1",86,8)},86,6),e.onHeroLoc("MT14",()=>{core.setBlock(336,81,8),core.setBlock(336,82,11),core.drawAnimate("explosion1",81,8),core.drawAnimate("explosion1",82,11)},81,9),e.onHeroLoc("MT14",()=>{core.setBlock(336,73,8),core.setBlock(336,72,4),core.drawAnimate("explosion1",73,8),core.drawAnimate("explosion1",72,4)},72,11),e.onHeroLoc("MT14",()=>{for(let t=74;t<86;t++)for(let i=3;i<12;i++)core.setBlock(336,t,i);core.drawAnimate("explosion2",79,7),core.vibrate("vertical",4e3,25,15)},71,7),e.onHeroLoc("MT14",()=>{core.setBlock(336,68,4),core.setBlock(336,67,6),core.drawAnimate("explosion1",68,4),core.drawAnimate("explosion1",67,6)},68,5),e.onHeroLoc("MT14",()=>{for(let t=65;t<=72;t++)for(let i=3;i<=9;i++)core.setBlock(336,t,i);core.setBlock(336,72,10),core.setBlock(336,72,11),core.drawAnimate("explosion3",69,5)},67,10),e.onHeroLoc("MT14",()=>{core.setBlock(336,63,9),core.setBlock(336,60,8),core.setBlock(336,56,11),core.drawAnimate("explosion1",63,9),core.drawAnimate("explosion1",60,8),core.drawAnimate("explosion1",56,11)},64,11),e.onHeroLoc("MT14",()=>{for(let t=58;t<=64;t++)for(let i=3;i<=11;i++)core.setBlock(336,t,i);core.drawAnimate("explosion2",61,7)},57,9);for(let t=21;t<49;t++)e.onHeroLoc("MT14",()=>{for(let i=3;i<=11;i++)core.setBlock(336,t+4,i),core.drawAnimate("explosion1",t+4,i)},t);e.onHeroLoc("MT14",async()=>{flags.finishChase1=!0,core.autoFixRouteBoss(),core.showStatusBar(),ani.time(750).apply("rect",0),e.end(),await S(750),ani.ticker.destroy(),core.deleteCanvas("chaseBack")},21)}function getChaseDataByIndex(e){if(e===1)return init1(),{camera:camera1,fns:[para1,para2,para3,chaseShake,wolfMove,drawBack,judgeFail1],path:path1};throw new ReferenceError("Deliver wrong chase index.")}function init(){return{startChase}}function shake2(e,t){let i=0;return n=>(i+=Math.PI/2,Math.sin(i)*e*t(n))}class Chase{constructor(t,i,n,s=!1){Q(this,"ani",new R);Q(this,"path");Q(this,"showPath",!1);this.path=t,flags.__lockViewport__=!0,flags.onChase=!0,flags.chaseTime={[core.status.floorId]:Date.now()},this.ani.absolute().time(0).move(core.bigmap.offsetX/32,core.bigmap.offsetY/32),i.forEach(l=>l(this));const a=[],r=core.createCanvas("chasePath",0,0,0,0,35);for(const[l,c,d,u,h,f,g]of n)a.includes(l)||(this.on(l,0,()=>{flags.__lockViewport__=!1,core.drawHero(),flags.__lockViewport__=!0,this.ani.time(0).move(core.bigmap.offsetX/32,core.bigmap.offsetY/32)},!0),a.push(l)),has(g)?this.on(l,u,()=>{this.ani.time(h).mode(f).moveAs(g)}):this.on(l,u,()=>{this.ani.time(h).mode(f).move(c,d)});if(this.ani.ticker.add(()=>{flags.floorChanging||(core.setViewport(this.ani.x*32,this.ani.y*32),core.relocateCanvas(r,-this.ani.x*32,-this.ani.y*32))}),s)for(const[l,c]of Object.entries(t))this.on(l,0,()=>{const d=core.status.maps[l];core.resizeCanvas(r,d.width*32,d.height*32),r.beginPath(),r.moveTo(c[0][0]*32+16,c[1][1]*32+24),r.lineJoin="round",r.lineWidth=4,r.strokeStyle="cyan",r.globalAlpha=.3,c.forEach((u,h,f)=>{if(h===0)return;const[g,m]=u;r.lineTo(g*32+16,m*32+24)}),r.stroke()})}on(t,i,n,s=!1){const a=()=>{var r,l,c;!((r=flags.chaseTime)!=null&&r[t])||Date.now()-((c=(l=flags.chaseTime)==null?void 0:l[t])!=null?c:0)>=i&&(n(this),this.ani.ticker.remove(a))};this.ani.ticker.add(a,s)}onHeroLoc(t,i,n,s,a=0){if(a===1){typeof n=="number"&&(n=[n]),typeof s=="number"&&(s=[s]),n.forEach(c=>{s.forEach(d=>{this.onHeroLoc(t,i,c,d)})});return}const r=()=>{if(core.status.floorId!==t)return!1;if(has(n)){if(typeof n=="number"){if(core.status.hero.loc.x!==n)return!1}else if(!n.includes(core.status.hero.loc.x))return!1}if(has(s)){if(typeof s=="number"){if(core.status.hero.loc.y!==s)return!1}else if(!s.includes(core.status.hero.loc.y))return!1}return!0},l=()=>{if(r()){i(this);try{this.ani.ticker.remove(l)}catch(c){}}};this.ani.ticker.add(l)}setPathShowStatus(t){this.showPath=t}end(){this.ani.ticker.destroy(),delete flags.onChase,delete flags.chase,flags.__lockViewport__=!1,core.deleteCanvas("chasePath")}}async function startChase(e){const t=getChaseDataByIndex(e);flags.chaseIndex=e,flags.onChase=!0,await S(20),flags.chase=new Chase(t.path,t.fns,t.camera,flags.chaseHard===0)}function forward(){const e=[init$a(),init$3(),init$7(),init$8(),init$9(),init$2(),init$6(),init$5(),init$1(),init$4(),init()];(async function(){for(const t of e)for(const i in t){const n=t[i];i in core.plugin||(core.plugin[i]=n),n instanceof Function&&(i in core||i.startsWith("_")||(core[i]=n))}console.log("\u63D2\u4EF6\u8F6C\u53D1\u5B8C\u6210\uFF01")})()}main.forward=forward;const _hoisted_1$5={id:"ui"},_sfc_main$5=defineComponent({__name:"App",setup(e){return(t,i)=>(openBlock(),createElementBlock("div",_hoisted_1$5,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(uiStack),n=>(openBlock(),createBlock(resolveDynamicComponent(n)))),256))]))}}),App_vue_vue_type_style_index_0_scoped_9668aeb3_lang="",App=_export_sfc(_sfc_main$5,[["__scopeId","data-v-9668aeb3"]]),_imports_0="/HumanBreak/project/images/skill.png",_imports_1="/HumanBreak/project/images/hp.png",_imports_2="/HumanBreak/project/images/atk.png",_imports_3="/HumanBreak/project/images/def.png",_imports_4="/HumanBreak/project/images/IQ.png",_imports_5="/HumanBreak/project/images/money.png",_imports_6="/HumanBreak/project/images/exp.png",_hoisted_1$4=["id"],_hoisted_2$3=["id"],_hoisted_3$3=["id","selected"],_hoisted_4$2=["id","selected"],_hoisted_5$2=["id","selected"],_hoisted_6$2=["id","selected"],_hoisted_7$2=["id","selected"],_sfc_main$4=defineComponent({__name:"box",props:{resizable:{type:Boolean},left:null,top:null,width:null,height:null},emits:["update:left","update:top","update:width","update:height"],setup(e,{emit:t}){const i=e,n=(1e8*Math.random()).toFixed(0),s=ref(!1);let a=0,r,l,c,d,u,h;const f=ref(isMobile?window.innerWidth-100:window.innerWidth*.175),g=ref(isMobile?250:window.innerHeight-100),m=ref(50),w=ref(50);watch(m,Y=>t("update:left",Y)),watch(w,Y=>t("update:top",Y)),watch(f,Y=>t("update:width",Y)),watch(g,Y=>t("update:height",Y));async function _(){s.value=!0,a=window.setTimeout(()=>{s.value=!1},4e3)}let D=0,B=0;function P(Y,J){const ot=getComputedStyle(r),ht=parseFloat(ot.left),st=parseFloat(ot.top);m.value=ht+Y-D,w.value=st+J-B,r.style.left=`${m.value}px`,r.style.top=`${w.value}px`,s.value=!0,clearTimeout(a),D=Y,B=J}let N=m.value+f.value;function L(Y,J){r.style.left=`${Y}px`,f.value=N-Y,m.value=Y,r.style.width=`${f.value}px`}let U=w.value+g.value;function H(Y,J){r.style.top=`${J}px`,g.value=U-J,w.value=J,r.style.height=`${g.value}px`}function W(Y,J){const ot=getComputedStyle(r);f.value=Y-parseFloat(ot.left),r.style.width=`${f.value}px`}function K(Y,J){const ot=getComputedStyle(r);g.value=J-parseFloat(ot.top),r.style.height=`${g.value}px`}function G(){r=document.getElementById(`box-${n}`),document.getElementById(`box-move-${n}`),l=document.getElementById(`border-left-${n}`),d=document.getElementById(`border-top-${n}`),c=document.getElementById(`border-right-${n}`),u=document.getElementById(`border-bottom-${n}`),h=document.getElementById(`box-drag-${n}`),r&&(has(i.left)&&(m.value=i.left),has(i.top)&&(w.value=i.top),has(i.width)&&(f.value=i.width),has(i.height)&&(g.value=i.height),r.style.left=`${m.value}px`,r.style.top=`${w.value}px`,r.style.width=`${f.value}px`,r.style.height=`${g.value}px`)}return onUpdated(G),onMounted(async()=>{await S(50),G(),r&&(useDrag(h,P,(Y,J)=>{D=Y,B=J},()=>{s.value=!1},!0),i.resizable&&(useDrag(l,L,(Y,J)=>{N=m.value+f.value},void 0,!0),useDrag(d,H,(Y,J)=>{U=w.value+g.value},void 0,!0),useDrag(c,W,void 0,void 0,!0),useDrag(u,K,void 0,void 0,!0)))}),onUnmounted(()=>{cancelGlobalDrag(P),i.resizable&&(cancelGlobalDrag(L),cancelGlobalDrag(H),cancelGlobalDrag(W),cancelGlobalDrag(K))}),(Y,J)=>(openBlock(),createElementBlock("div",{id:`box-${unref(n)}`,class:"box"},[createBaseVNode("div",{id:`box-main-${unref(n)}`,class:"box-main",onClick:_},[renderSlot(Y.$slots,"default",{},void 0,!0)],8,_hoisted_2$3),createBaseVNode("div",{id:`box-move-${unref(n)}`,class:"box-move",selected:s.value},[createVNode(unref(DragOutlined),{id:`box-drag-${unref(n)}`,class:"box-drag",style:{right:"0",bottom:"0",position:"absolute"}},null,8,["id"])],8,_hoisted_3$3),createBaseVNode("div",{class:"border border-vertical border-left",id:`border-left-${unref(n)}`,selected:s.value&&e.resizable},null,8,_hoisted_4$2),createBaseVNode("div",{class:"border border-horizontal border-top",id:`border-top-${unref(n)}`,selected:s.value&&e.resizable},null,8,_hoisted_5$2),createBaseVNode("div",{class:"border border-vertical border-right",id:`border-right-${unref(n)}`,selected:s.value&&e.resizable},null,8,_hoisted_6$2),createBaseVNode("div",{class:"border border-horizontal border-bottom",id:`border-bottom-${unref(n)}`,selected:s.value&&e.resizable},null,8,_hoisted_7$2)],8,_hoisted_1$4))}}),box_vue_vue_type_style_index_0_scoped_c65890c4_lang="",Box=_export_sfc(_sfc_main$4,[["__scopeId","data-v-c65890c4"]]),_withScopeId$1=e=>(pushScopeId("data-v-8d174b23"),e=e(),popScopeId(),e),_hoisted_1$3={id:"status-bar"},_hoisted_2$2={id:"status-div"},_hoisted_3$2={id:"status-lv"},_hoisted_4$1={id:"status-skill",class:"status-item"},_hoisted_5$1=_withScopeId$1(()=>createBaseVNode("img",{src:_imports_0,class:"status-icon"},null,-1)),_hoisted_6$1={id:"status-hp",class:"status-item"},_hoisted_7$1=_withScopeId$1(()=>createBaseVNode("img",{src:_imports_1,class:"status-icon"},null,-1)),_hoisted_8$1={class:"status-item-bold"},_hoisted_9$1={id:"status-hpmax",class:"status-extra status-item-bold"},_hoisted_10$1={key:0,id:"status-spring",class:"status-extra"},_hoisted_11$1={id:"status-atk",class:"status-item"},_hoisted_12=_withScopeId$1(()=>createBaseVNode("img",{src:_imports_2,class:"status-icon"},null,-1)),_hoisted_13={class:"status-item-bold"},_hoisted_14={id:"status-mana",class:"status-extra status-item-bold"},_hoisted_15={id:"status-def",class:"status-item status-item-bold"},_hoisted_16=_withScopeId$1(()=>createBaseVNode("img",{src:_imports_3,class:"status-icon"},null,-1)),_hoisted_17={id:"status-mdef",class:"status-item status-item-bold"},_hoisted_18=_withScopeId$1(()=>createBaseVNode("img",{src:_imports_4,class:"status-icon"},null,-1)),_hoisted_19={id:"status-money",class:"status-item status-item-bold"},_hoisted_20=_withScopeId$1(()=>createBaseVNode("img",{src:_imports_5,class:"status-icon"},null,-1)),_hoisted_21={id:"status-exp",class:"status-item status-item-bold"},_hoisted_22=_withScopeId$1(()=>createBaseVNode("img",{src:_imports_6,class:"status-icon"},null,-1)),_hoisted_23={id:"status-key",class:"status-item status-item-bold"},_hoisted_24={style:{color:"#fca","padding-left":"10%"}},_hoisted_25={style:{color:"#aad"}},_hoisted_26={style:{color:"#f88","padding-right":"10%"}},_hoisted_27={key:0,class:"status-item"},_hoisted_28={key:1,class:"status-item"},_sfc_main$3=defineComponent({__name:"statusBar",setup(e){const t=ref(isMobile?window.innerWidth-100:window.innerWidth*.175),i=ref(isMobile?250:window.innerHeight-100),n=ref(!1),s=core.formatBigNumber;watch(t,B=>n.value=!n.value),watch(i,B=>n.value=!n.value);const a=shallowReactive({}),r=shallowReactive([]),l=ref(),c=ref(),d=ref("\u65E0"),u=ref(0),h=ref(),f=ref(core.getFlag("chapter",0)>0),g=["hp","atk","def","mdef","hpmax","mana","money","exp","lv"];watch(status,m);function m(){var B,P;g.forEach(N=>{a[N]=core.getRealStatus(N)}),r[0]=core.itemCount("yellowKey"),r[1]=core.itemCount("blueKey"),r[2]=core.itemCount("redKey"),l.value=(B=core.status.thisMap)==null?void 0:B.title,c.value=core.getLvName(a.lv),flags.blade&&flags.bladeOn?(d.value="\u65AD\u706D\u4E4B\u5203",a.atk*=1+core.getSkillLevel(2)/10,a.def*=1-core.getSkillLevel(2)/10):flags.shield&&flags.shieldOn?(d.value="\u94F8\u5251\u4E3A\u76FE",a.def*=1+core.getSkillLevel(10)/10,a.atk*=1-core.getSkillLevel(10)/10):d.value="\u65E0",u.value=(P=core.getNextLvUpNeed())!=null?P:0,core.hasFlag("spring")&&(h.value=50-flags.springCount),f.value=core.getFlag("chapter",0)>0}function w(B){B.stopPropagation(),core.useItem("skill1")}function _(B){B.stopPropagation(),core.useItem("cross")}function D(B){B.stopPropagation(),core.ui._drawViewMaps()}return(B,P)=>(openBlock(),createElementBlock("div",_hoisted_1$3,[createVNode(Box,{resizable:!0,width:t.value,"onUpdate:width":P[1]||(P[1]=N=>t.value=N),height:i.value,"onUpdate:height":P[2]||(P[2]=N=>i.value=N)},{default:withCtx(()=>[createVNode(Scroll,{id:"status-main",update:n.value,"onUpdate:update":P[0]||(P[0]=N=>n.value=N),"no-scroll":!0},{default:withCtx(()=>{var N,L,U;return[createBaseVNode("div",_hoisted_2$2,[createBaseVNode("span",{id:"status-floor",onClick:D,class:"button-text"},toDisplayString(l.value),1),createBaseVNode("span",_hoisted_3$2,toDisplayString(c.value),1),createBaseVNode("div",_hoisted_4$1,[_hoisted_5$1,createBaseVNode("span",null,toDisplayString(d.value),1)]),createBaseVNode("div",_hoisted_6$1,[_hoisted_7$1,createBaseVNode("span",_hoisted_8$1,toDisplayString(unref(s)(unref(a).hp)),1),createBaseVNode("span",_hoisted_9$1,"+"+toDisplayString(unref(s)(unref(a).hpmax))+"/t",1),unref(has)(h.value)?(openBlock(),createElementBlock("span",_hoisted_10$1,"\u5269\u4F59"+toDisplayString(h.value),1)):createCommentVNode("",!0)]),createBaseVNode("div",_hoisted_11$1,[_hoisted_12,createBaseVNode("span",_hoisted_13,toDisplayString(unref(s)(unref(a).atk)),1),createBaseVNode("span",_hoisted_14,"+"+toDisplayString(unref(s)(unref(a).mana)),1)]),createBaseVNode("div",_hoisted_15,[_hoisted_16,createBaseVNode("span",null,toDisplayString(unref(s)(unref(a).def)),1)]),createBaseVNode("div",_hoisted_17,[_hoisted_18,createBaseVNode("span",null,toDisplayString(unref(s)(unref(a).mdef)),1)]),createBaseVNode("div",_hoisted_19,[_hoisted_20,createBaseVNode("span",null,toDisplayString(unref(s)(unref(a).money)),1)]),createBaseVNode("div",_hoisted_21,[_hoisted_22,createBaseVNode("span",null,toDisplayString(unref(s)(u.value)),1)]),createBaseVNode("div",_hoisted_23,[createBaseVNode("span",_hoisted_24,toDisplayString((N=unref(r)[0])==null?void 0:N.toString().padStart(2,"0")),1),createBaseVNode("span",_hoisted_25,toDisplayString((L=unref(r)[1])==null?void 0:L.toString().padStart(2,"0")),1),createBaseVNode("span",_hoisted_26,toDisplayString((U=unref(r)[2])==null?void 0:U.toString().padStart(2,"0")),1)]),f.value?(openBlock(),createElementBlock("div",_hoisted_27,[createBaseVNode("span",{id:"skill-tree",class:"button-text",onClick:w},"\u6280\u80FD\u6811")])):createCommentVNode("",!0),f.value?(openBlock(),createElementBlock("div",_hoisted_28,[createBaseVNode("span",{id:"status-skill",class:"button-text",onClick:_},"\u67E5\u770B\u6280\u80FD")])):createCommentVNode("",!0)])]}),_:1},8,["update"])]),_:1},8,["width","height"])]))}}),statusBar_vue_vue_type_style_index_0_scoped_8d174b23_lang="",StatusBar=_export_sfc(_sfc_main$3,[["__scopeId","data-v-8d174b23"]]),_hoisted_1$2={id:"marked-enemy"},_hoisted_2$1={class:"marked-main"},_hoisted_3$1={class:"marked-info"},_hoisted_4={class:"marked-name marked-item"},_hoisted_5={class:"marked-damage marked-item"},_hoisted_6={class:"marked-critical marked-item"},_hoisted_7={class:"marked-critical-damage marked-item"},_hoisted_8={class:"marked-def marked-item"},_hoisted_9={class:"marked-button"},_hoisted_10=["onClick"],_hoisted_11=["onClick"],_sfc_main$2=defineComponent({__name:"markedEnemy",setup(e){var u,h;const t=(h=(u=core.status.thisMap)==null?void 0:u.ratio)!=null?h:1;let i=getMarkedEnemy();watch(checkMarkedStatus,s);const n=reactive({});function s(){i.push(...i.splice(0,i.length));for(const f in n)i.includes(f)||delete n[f]}function a(f){return has(n[f])||(n[f]={left:window.innerWidth-300,top:100,width:200,height:150,hidden:!1}),n[f]}function r(f){return core.material.enemys[f].name}function l(f){var g,m;return(m=core.formatBigNumber((g=core.getDamageInfo(f))==null?void 0:g.damage))!=null?m:"???"}function c(f){var g,m;return(m=(g=core.nextCriticals(f,1)[0])==null?void 0:g.map(w=>core.formatBigNumber(w)))!=null?m:[0,0]}function d(f){return core.formatBigNumber(core.getDefDamage(f,t))}return(f,g)=>(openBlock(),createElementBlock("div",_hoisted_1$2,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(i),m=>(openBlock(),createElementBlock("div",null,[a(m).hidden?createCommentVNode("",!0):(openBlock(),createBlock(Box,{key:m,left:a(m).left,"onUpdate:left":w=>a(m).left=w,top:a(m).top,"onUpdate:top":w=>a(m).top=w,width:a(m).width,"onUpdate:width":w=>a(m).width=w,height:a(m).height,"onUpdate:height":w=>a(m).height=w,resizable:!0},{default:withCtx(()=>[createVNode(Scroll,{class:"box-scroll","no-scroll":!0},{default:withCtx(()=>[createBaseVNode("div",_hoisted_2$1,[createBaseVNode("div",_hoisted_3$1,[createVNode(_sfc_main$l,{id:m,width:24,height:24},null,8,["id"]),createBaseVNode("span",_hoisted_4,toDisplayString(r(m)),1)]),createBaseVNode("span",_hoisted_5,"\u4F24\u5BB3\uFF1A"+toDisplayString(l(m)),1),createBaseVNode("span",_hoisted_6,"\u4E34\u754C\uFF1A"+toDisplayString(c(m)[0]),1),createBaseVNode("span",_hoisted_7,"\u51CF\u4F24\uFF1A"+toDisplayString(c(m)[1]),1),createBaseVNode("span",_hoisted_8,toDisplayString(unref(t))+"\u9632\uFF1A"+toDisplayString(d(m)),1),createBaseVNode("div",_hoisted_9,[createBaseVNode("span",{class:"marked-hide button-text",onClick:withModifiers(w=>a(m).hidden=!0,["stop"])},"\u9690\u85CF\u76D2\u5B50",8,_hoisted_10),createBaseVNode("span",{class:"marked-cancel button-text",onClick:withModifiers(w=>unref(unmarkEnemy)(m),["stop"])},"\u53D6\u6D88\u6807\u8BB0",8,_hoisted_11)])])]),_:2},1024)]),_:2},1032,["left","onUpdate:left","top","onUpdate:top","width","onUpdate:width","height","onUpdate:height"]))]))),256))]))}}),markedEnemy_vue_vue_type_style_index_0_scoped_5d5d9f17_lang="",MarkedEnemy=_export_sfc(_sfc_main$2,[["__scopeId","data-v-5d5d9f17"]]),_withScopeId=e=>(pushScopeId("data-v-74e3c165"),e=e(),popScopeId(),e),_hoisted_1$1={id:"chapter"},_hoisted_2=_withScopeId(()=>createBaseVNode("canvas",{id:"chapter-back"},null,-1)),_hoisted_3={id:"chapter-text"},_sfc_main$1=defineComponent({__name:"chapter",props:{chapter:null},setup(e){const t=e;let i,n,s;return onMounted(async()=>{i=document.getElementById("chapter-back"),n=i.getContext("2d"),s=document.getElementById("chapter-text");const a=new R,r=window.innerWidth*devicePixelRatio,l=window.innerHeight*devicePixelRatio;n.font="5vh scroll";const c=n.measureText(t.chapter).width,d=l*.05;a.register("rect",0),a.register("line",-10),a.register("lineOpacity",1),a.register("rect2",l/2),a.register("text",window.innerWidth+10+c),i.width=r,i.height=l,i.style.width=`${window.innerWidth}px`,i.style.height=`${window.innerHeight}px`,s.style.left=`${r+10}px`,s.style.top=`${window.innerHeight/2-l*.025}px`,s.style.height=`${l*.05}px`,s.style.width=`${c}px`;let u=!1,h=!1;a.ticker.add(f=>{if(!(!has(f)||isNaN(f))){if(!h){h=!0;return}f>=4050&&(chapterShowed.value=!1,a.ticker.destroy()),!u&&f>=1500&&(u=!0,core.playSound("chapter.mp3")),n.restore(),n.save(),s.style.left=`${a.value.text}px`,n.fillStyle="#000",n.clearRect(0,0,r,l),f<=2e3?(n.fillRect(0,l/2,r,-a.value.rect),n.fillRect(0,l/2,r,a.value.rect)):f>=2e3&&f<=3050&&(n.fillRect(0,0,r,a.value.rect2),n.fillRect(0,l,r,-a.value.rect2)),n.shadowColor="#fff",n.shadowBlur=3,n.shadowOffsetX=0,n.shadowOffsetY=0,n.lineWidth=3,n.strokeStyle="#fff",n.fillStyle="#fff",n.globalAlpha=a.value.lineOpacity,n.beginPath(),n.moveTo(0,l/2-d),n.lineTo(a.value.line,l/2-d),n.stroke(),n.beginPath(),n.moveTo(r,l/2+d),n.lineTo(r-a.value.line,l/2+d),n.stroke(),n.shadowBlur=0,n.filter="blur(5px)",n.beginPath(),n.arc(a.value.line,l/2-d,10,0,Math.PI*2),n.fill(),n.beginPath(),n.arc(r-a.value.line,l/2+d,10,0,Math.PI*2),n.fill()}}),a.mode(C("tan","center")).time(3e3).absolute().apply("line",r+10).mode(C("sin","in")).time(1e3).apply("rect",l/2).mode(C("tan","center")).time(3e3).apply("text",-c*2-10),await S(2e3),a.mode(C("sin","in")).time(1e3).apply("rect2",0),await S(1e3),a.mode(C("sin","out")).time(1e3).apply("lineOpacity",0)}),(a,r)=>(openBlock(),createElementBlock("div",_hoisted_1$1,[_hoisted_2,createBaseVNode("span",_hoisted_3,toDisplayString(e.chapter),1)]))}}),chapter_vue_vue_type_style_index_0_scoped_74e3c165_lang="",Chapter=_export_sfc(_sfc_main$1,[["__scopeId","data-v-74e3c165"]]),_hoisted_1={id:"non-ui"},_sfc_main=defineComponent({__name:"App2",setup(e){return(t,i)=>(openBlock(),createElementBlock("div",_hoisted_1,[unref(showStatusBar)?(openBlock(),createBlock(StatusBar,{key:0})):createCommentVNode("",!0),unref(showMarkedEnemy)?(openBlock(),createBlock(MarkedEnemy,{key:1})):createCommentVNode("",!0),unref(chapterShowed)?(openBlock(),createBlock(Chapter,{key:2,chapter:unref(chapterContent)},null,8,["chapter"])):createCommentVNode("",!0)]))}}),App2_vue_vue_type_style_index_0_scoped_7a936755_lang="",App2=_export_sfc(_sfc_main,[["__scopeId","data-v-7a936755"]]),styles="",antd_dark="";createApp(App).mount("#root");createApp(App2).mount("#root2");export{__vite_legacy_guard}; +`):e}function createTooltipItem(e,t){const{element:i,datasetIndex:n,index:s}=t,a=e.getDatasetMeta(n).controller,{label:r,value:l}=a.getLabelAndValue(s);return{chart:e,label:r,parsed:a.getParsed(s),raw:e.data.datasets[n].data[s],formattedValue:l,dataset:a.getDataset(),dataIndex:s,datasetIndex:n,element:i}}function getTooltipSize(e,t){const i=e.chart.ctx,{body:n,footer:s,title:a}=e,{boxWidth:r,boxHeight:l}=t,c=toFont(t.bodyFont),d=toFont(t.titleFont),u=toFont(t.footerFont),h=a.length,f=s.length,g=n.length,m=toPadding(t.padding);let w=m.height,_=0,D=n.reduce((N,L)=>N+L.before.length+L.lines.length+L.after.length,0);if(D+=e.beforeBody.length+e.afterBody.length,h&&(w+=h*d.lineHeight+(h-1)*t.titleSpacing+t.titleMarginBottom),D){const N=t.displayColors?Math.max(l,c.lineHeight):c.lineHeight;w+=g*N+(D-g)*c.lineHeight+(D-1)*t.bodySpacing}f&&(w+=t.footerMarginTop+f*u.lineHeight+(f-1)*t.footerSpacing);let B=0;const P=function(N){_=Math.max(_,i.measureText(N).width+B)};return i.save(),i.font=d.string,each(e.title,P),i.font=c.string,each(e.beforeBody.concat(e.afterBody),P),B=t.displayColors?r+2+t.boxPadding:0,each(n,N=>{each(N.before,P),each(N.lines,P),each(N.after,P)}),B=0,i.font=u.string,each(e.footer,P),i.restore(),_+=m.width,{width:_,height:w}}function determineYAlign(e,t){const{y:i,height:n}=t;return ie.height-n/2?"bottom":"center"}function doesNotFitWithAlign(e,t,i,n){const{x:s,width:a}=n,r=i.caretSize+i.caretPadding;if(e==="left"&&s+a+r>t.width||e==="right"&&s-a-r<0)return!0}function determineXAlign(e,t,i,n){const{x:s,width:a}=i,{width:r,chartArea:{left:l,right:c}}=e;let d="center";return n==="center"?d=s<=(l+c)/2?"left":"right":s<=a/2?d="left":s>=r-a/2&&(d="right"),doesNotFitWithAlign(d,e,t,i)&&(d="center"),d}function determineAlignment(e,t,i){const n=i.yAlign||t.yAlign||determineYAlign(e,i);return{xAlign:i.xAlign||t.xAlign||determineXAlign(e,t,i,n),yAlign:n}}function alignX(e,t){let{x:i,width:n}=e;return t==="right"?i-=n:t==="center"&&(i-=n/2),i}function alignY(e,t,i){let{y:n,height:s}=e;return t==="top"?n+=i:t==="bottom"?n-=s+i:n-=s/2,n}function getBackgroundPoint(e,t,i,n){const{caretSize:s,caretPadding:a,cornerRadius:r}=e,{xAlign:l,yAlign:c}=i,d=s+a,{topLeft:u,topRight:h,bottomLeft:f,bottomRight:g}=toTRBLCorners(r);let m=alignX(t,l);const w=alignY(t,c,d);return c==="center"?l==="left"?m+=d:l==="right"&&(m-=d):l==="left"?m-=Math.max(u,f)+s:l==="right"&&(m+=Math.max(h,g)+s),{x:_limitValue(m,0,n.width-t.width),y:_limitValue(w,0,n.height-t.height)}}function getAlignedX(e,t,i){const n=toPadding(i.padding);return t==="center"?e.x+e.width/2:t==="right"?e.x+e.width-n.right:e.x+n.left}function getBeforeAfterBodyLines(e){return pushOrConcat([],splitNewlines(e))}function createTooltipContext(e,t,i){return createContext(e,{tooltip:t,tooltipItems:i,type:"tooltip"})}function overrideCallbacks(e,t){const i=t&&t.dataset&&t.dataset.tooltip&&t.dataset.tooltip.callbacks;return i?e.override(i):e}const defaultCallbacks={beforeTitle:noop,title(e){if(e.length>0){const t=e[0],i=t.chart.data.labels,n=i?i.length:0;if(this&&this.options&&this.options.mode==="dataset")return t.dataset.label||"";if(t.label)return t.label;if(n>0&&t.dataIndex"u"?defaultCallbacks[t].call(i,n):s}class Tooltip extends Element{constructor(t){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=t.chart,this.options=t.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(t){this.options=t,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const t=this._cachedAnimations;if(t)return t;const i=this.chart,n=this.options.setContext(this.getContext()),s=n.enabled&&i.options.animation&&n.animations,a=new Animations(this.chart,s);return s._cacheable&&(this._cachedAnimations=Object.freeze(a)),a}getContext(){return this.$context||(this.$context=createTooltipContext(this.chart.getContext(),this,this._tooltipItems))}getTitle(t,i){const{callbacks:n}=i,s=invokeCallbackWithFallback(n,"beforeTitle",this,t),a=invokeCallbackWithFallback(n,"title",this,t),r=invokeCallbackWithFallback(n,"afterTitle",this,t);let l=[];return l=pushOrConcat(l,splitNewlines(s)),l=pushOrConcat(l,splitNewlines(a)),l=pushOrConcat(l,splitNewlines(r)),l}getBeforeBody(t,i){return getBeforeAfterBodyLines(invokeCallbackWithFallback(i.callbacks,"beforeBody",this,t))}getBody(t,i){const{callbacks:n}=i,s=[];return each(t,a=>{const r={before:[],lines:[],after:[]},l=overrideCallbacks(n,a);pushOrConcat(r.before,splitNewlines(invokeCallbackWithFallback(l,"beforeLabel",this,a))),pushOrConcat(r.lines,invokeCallbackWithFallback(l,"label",this,a)),pushOrConcat(r.after,splitNewlines(invokeCallbackWithFallback(l,"afterLabel",this,a))),s.push(r)}),s}getAfterBody(t,i){return getBeforeAfterBodyLines(invokeCallbackWithFallback(i.callbacks,"afterBody",this,t))}getFooter(t,i){const{callbacks:n}=i,s=invokeCallbackWithFallback(n,"beforeFooter",this,t),a=invokeCallbackWithFallback(n,"footer",this,t),r=invokeCallbackWithFallback(n,"afterFooter",this,t);let l=[];return l=pushOrConcat(l,splitNewlines(s)),l=pushOrConcat(l,splitNewlines(a)),l=pushOrConcat(l,splitNewlines(r)),l}_createItems(t){const i=this._active,n=this.chart.data,s=[],a=[],r=[];let l=[],c,d;for(c=0,d=i.length;ct.filter(u,h,f,n))),t.itemSort&&(l=l.sort((u,h)=>t.itemSort(u,h,n))),each(l,u=>{const h=overrideCallbacks(t.callbacks,u);s.push(invokeCallbackWithFallback(h,"labelColor",this,u)),a.push(invokeCallbackWithFallback(h,"labelPointStyle",this,u)),r.push(invokeCallbackWithFallback(h,"labelTextColor",this,u))}),this.labelColors=s,this.labelPointStyles=a,this.labelTextColors=r,this.dataPoints=l,l}update(t,i){const n=this.options.setContext(this.getContext()),s=this._active;let a,r=[];if(!s.length)this.opacity!==0&&(a={opacity:0});else{const l=positioners[n.position].call(this,s,this._eventPosition);r=this._createItems(n),this.title=this.getTitle(r,n),this.beforeBody=this.getBeforeBody(r,n),this.body=this.getBody(r,n),this.afterBody=this.getAfterBody(r,n),this.footer=this.getFooter(r,n);const c=this._size=getTooltipSize(this,n),d=Object.assign({},l,c),u=determineAlignment(this.chart,n,d),h=getBackgroundPoint(n,d,u,this.chart);this.xAlign=u.xAlign,this.yAlign=u.yAlign,a={opacity:1,x:h.x,y:h.y,width:c.width,height:c.height,caretX:l.x,caretY:l.y}}this._tooltipItems=r,this.$context=void 0,a&&this._resolveAnimations().update(this,a),t&&n.external&&n.external.call(this,{chart:this.chart,tooltip:this,replay:i})}drawCaret(t,i,n,s){const a=this.getCaretPosition(t,n,s);i.lineTo(a.x1,a.y1),i.lineTo(a.x2,a.y2),i.lineTo(a.x3,a.y3)}getCaretPosition(t,i,n){const{xAlign:s,yAlign:a}=this,{caretSize:r,cornerRadius:l}=n,{topLeft:c,topRight:d,bottomLeft:u,bottomRight:h}=toTRBLCorners(l),{x:f,y:g}=t,{width:m,height:w}=i;let _,D,B,P,N,L;return a==="center"?(N=g+w/2,s==="left"?(_=f,D=_-r,P=N+r,L=N-r):(_=f+m,D=_+r,P=N-r,L=N+r),B=_):(s==="left"?D=f+Math.max(c,u)+r:s==="right"?D=f+m-Math.max(d,h)-r:D=this.caretX,a==="top"?(P=g,N=P-r,_=D-r,B=D+r):(P=g+w,N=P+r,_=D+r,B=D-r),L=P),{x1:_,x2:D,x3:B,y1:P,y2:N,y3:L}}drawTitle(t,i,n){const s=this.title,a=s.length;let r,l,c;if(a){const d=getRtlAdapter(n.rtl,this.x,this.width);for(t.x=getAlignedX(this,n.titleAlign,n),i.textAlign=d.textAlign(n.titleAlign),i.textBaseline="middle",r=toFont(n.titleFont),l=n.titleSpacing,i.fillStyle=n.titleColor,i.font=r.string,c=0;cP!==0)?(t.beginPath(),t.fillStyle=a.multiKeyBackground,addRoundedRectPath(t,{x:_,y:w,w:d,h:c,radius:B}),t.fill(),t.stroke(),t.fillStyle=r.backgroundColor,t.beginPath(),addRoundedRectPath(t,{x:D,y:w+1,w:d-2,h:c-2,radius:B}),t.fill()):(t.fillStyle=a.multiKeyBackground,t.fillRect(_,w,d,c),t.strokeRect(_,w,d,c),t.fillStyle=r.backgroundColor,t.fillRect(D,w+1,d-2,c-2))}t.fillStyle=this.labelTextColors[n]}drawBody(t,i,n){const{body:s}=this,{bodySpacing:a,bodyAlign:r,displayColors:l,boxHeight:c,boxWidth:d,boxPadding:u}=n,h=toFont(n.bodyFont);let f=h.lineHeight,g=0;const m=getRtlAdapter(n.rtl,this.x,this.width),w=function(W){i.fillText(W,m.x(t.x+g),t.y+f/2),t.y+=f+a},_=m.textAlign(r);let D,B,P,N,L,U,H;for(i.textAlign=r,i.textBaseline="middle",i.font=h.string,t.x=getAlignedX(this,_,n),i.fillStyle=n.bodyColor,each(this.beforeBody,w),g=l&&_!=="right"?r==="center"?d/2+u:d+2+u:0,N=0,U=s.length;N0&&i.stroke()}_updateAnimationTarget(t){const i=this.chart,n=this.$animations,s=n&&n.x,a=n&&n.y;if(s||a){const r=positioners[t.position].call(this,this._active,this._eventPosition);if(!r)return;const l=this._size=getTooltipSize(this,t),c=Object.assign({},r,this._size),d=determineAlignment(i,t,c),u=getBackgroundPoint(t,c,d,i);(s._to!==u.x||a._to!==u.y)&&(this.xAlign=d.xAlign,this.yAlign=d.yAlign,this.width=l.width,this.height=l.height,this.caretX=r.x,this.caretY=r.y,this._resolveAnimations().update(this,u))}}_willRender(){return!!this.opacity}draw(t){const i=this.options.setContext(this.getContext());let n=this.opacity;if(!n)return;this._updateAnimationTarget(i);const s={width:this.width,height:this.height},a={x:this.x,y:this.y};n=Math.abs(n)<.001?0:n;const r=toPadding(i.padding),l=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;i.enabled&&l&&(t.save(),t.globalAlpha=n,this.drawBackground(a,t,s,i),overrideTextDirection(t,i.textDirection),a.y+=r.top,this.drawTitle(a,t,i),this.drawBody(a,t,i),this.drawFooter(a,t,i),restoreTextDirection(t,i.textDirection),t.restore())}getActiveElements(){return this._active||[]}setActiveElements(t,i){const n=this._active,s=t.map(({datasetIndex:l,index:c})=>{const d=this.chart.getDatasetMeta(l);if(!d)throw new Error("Cannot find a dataset at index "+l);return{datasetIndex:l,element:d.data[c],index:c}}),a=!_elementsEqual(n,s),r=this._positionChanged(s,i);(a||r)&&(this._active=s,this._eventPosition=i,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(t,i,n=!0){if(i&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const s=this.options,a=this._active||[],r=this._getActiveElements(t,a,i,n),l=this._positionChanged(r,t),c=i||!_elementsEqual(r,a)||l;return c&&(this._active=r,(s.enabled||s.external)&&(this._eventPosition={x:t.x,y:t.y},this.update(!0,i))),c}_getActiveElements(t,i,n,s){const a=this.options;if(t.type==="mouseout")return[];if(!s)return i;const r=this.chart.getElementsAtEventForMode(t,a.mode,a,n);return a.reverse&&r.reverse(),r}_positionChanged(t,i){const{caretX:n,caretY:s,options:a}=this,r=positioners[a.position].call(this,t,i);return r!==!1&&(n!==r.x||s!==r.y)}}Q(Tooltip,"positioners",positioners);var plugin_tooltip={id:"tooltip",_element:Tooltip,positioners,afterInit(e,t,i){i&&(e.tooltip=new Tooltip({chart:e,options:i}))},beforeUpdate(e,t,i){e.tooltip&&e.tooltip.initialize(i)},reset(e,t,i){e.tooltip&&e.tooltip.initialize(i)},afterDraw(e){const t=e.tooltip;if(t&&t._willRender()){const i={tooltip:t};if(e.notifyPlugins("beforeTooltipDraw",{...i,cancelable:!0})===!1)return;t.draw(e.ctx),e.notifyPlugins("afterTooltipDraw",i)}},afterEvent(e,t){if(e.tooltip){const i=t.replay;e.tooltip.handleEvent(t.event,i,t.inChartArea)&&(t.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(e,t)=>t.bodyFont.size,boxWidth:(e,t)=>t.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:defaultCallbacks},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:e=>e!=="filter"&&e!=="itemSort"&&e!=="external",_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]},plugins=Object.freeze({__proto__:null,Colors:plugin_colors,Decimation:plugin_decimation,Filler:index$3,Legend:plugin_legend,SubTitle:plugin_subtitle,Title:plugin_title,Tooltip:plugin_tooltip});const addIfString=(e,t,i,n)=>(typeof t=="string"?(i=e.push(t)-1,n.unshift({index:i,label:t})):isNaN(t)&&(i=null),i);function findOrAddLabel(e,t,i,n){const s=e.indexOf(t);if(s===-1)return addIfString(e,t,i,n);const a=e.lastIndexOf(t);return s!==a?i:s}const validIndex=(e,t)=>e===null?null:_limitValue(Math.round(e),0,t);function _getLabelForValue(e){const t=this.getLabels();return e>=0&&ei.length-1?null:this.getPixelForValue(i[t].value)}getValueForPixel(t){return Math.round(this._startValue+this.getDecimalForPixel(t)*this._valueRange)}getBasePixel(){return this.bottom}}Q(CategoryScale,"id","category"),Q(CategoryScale,"defaults",{ticks:{callback:_getLabelForValue}});function generateTicks$1(e,t){const i=[],{bounds:s,step:a,min:r,max:l,precision:c,count:d,maxTicks:u,maxDigits:h,includeBounds:f}=e,g=a||1,m=u-1,{min:w,max:_}=t,D=!isNullOrUndef(r),B=!isNullOrUndef(l),P=!isNullOrUndef(d),N=(_-w)/(h+1);let L=niceNum((_-w)/m/g)*g,U,H,W,K;if(L<1e-14&&!D&&!B)return[{value:w},{value:_}];K=Math.ceil(_/L)-Math.floor(w/L),K>m&&(L=niceNum(K*L/m/g)*g),isNullOrUndef(c)||(U=Math.pow(10,c),L=Math.ceil(L*U)/U),s==="ticks"?(H=Math.floor(w/L)*L,W=Math.ceil(_/L)*L):(H=w,W=_),D&&B&&a&&almostWhole((l-r)/a,L/1e3)?(K=Math.round(Math.min((l-r)/L,u)),L=(l-r)/K,H=r,W=l):P?(H=D?r:H,W=B?l:W,K=d-1,L=(W-H)/K):(K=(W-H)/L,almostEquals(K,Math.round(K),L/1e3)?K=Math.round(K):K=Math.ceil(K));const G=Math.max(_decimalPlaces(L),_decimalPlaces(H));U=Math.pow(10,isNullOrUndef(c)?G:c),H=Math.round(H*U)/U,W=Math.round(W*U)/U;let Y=0;for(D&&(f&&H!==r?(i.push({value:r}),Hs=i?s:c,l=c=>a=n?a:c;if(t){const c=sign(s),d=sign(a);c<0&&d<0?l(0):c>0&&d>0&&r(0)}if(s===a){let c=a===0?1:Math.abs(a*.05);l(a+c),t||r(s-c)}this.min=s,this.max=a}getTickLimit(){const t=this.options.ticks;let{maxTicksLimit:i,stepSize:n}=t,s;return n?(s=Math.ceil(this.max/n)-Math.floor(this.min/n)+1,s>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${n} would result generating up to ${s} ticks. Limiting to 1000.`),s=1e3)):(s=this.computeTickLimit(),i=i||11),i&&(s=Math.min(i,s)),s}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const t=this.options,i=t.ticks;let n=this.getTickLimit();n=Math.max(2,n);const s={maxTicks:n,bounds:t.bounds,min:t.min,max:t.max,precision:i.precision,step:i.stepSize,count:i.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:i.minRotation||0,includeBounds:i.includeBounds!==!1},a=this._range||this,r=generateTicks$1(s,a);return t.bounds==="ticks"&&_setMinAndMaxByKey(r,this,"value"),t.reverse?(r.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),r}configure(){const t=this.ticks;let i=this.min,n=this.max;if(super.configure(),this.options.offset&&t.length){const s=(n-i)/Math.max(t.length-1,1)/2;i-=s,n+=s}this._startValue=i,this._endValue=n,this._valueRange=n-i}getLabelForValue(t){return formatNumber(t,this.chart.options.locale,this.options.ticks.format)}}class LinearScale extends LinearScaleBase{determineDataLimits(){const{min:t,max:i}=this.getMinMax(!0);this.min=isNumberFinite(t)?t:0,this.max=isNumberFinite(i)?i:1,this.handleTickRangeOptions()}computeTickLimit(){const t=this.isHorizontal(),i=t?this.width:this.height,n=toRadians(this.options.ticks.minRotation),s=(t?Math.sin(n):Math.cos(n))||.001,a=this._resolveTickFontOptions(0);return Math.ceil(i/Math.min(40,a.lineHeight/s))}getPixelForValue(t){return t===null?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getValueForPixel(t){return this._startValue+this.getDecimalForPixel(t)*this._valueRange}}Q(LinearScale,"id","linear"),Q(LinearScale,"defaults",{ticks:{callback:Ticks.formatters.numeric}});const log10Floor=e=>Math.floor(log10(e)),changeExponent=(e,t)=>Math.pow(10,log10Floor(e)+t);function isMajor(e){return e/Math.pow(10,log10Floor(e))===1}function steps(e,t,i){const n=Math.pow(10,i),s=Math.floor(e/n);return Math.ceil(t/n)-s}function startExp(e,t){const i=t-e;let n=log10Floor(i);for(;steps(e,t,n)>10;)n++;for(;steps(e,t,n)<10;)n--;return Math.min(n,log10Floor(e))}function generateTicks(e,{min:t,max:i}){t=finiteOrDefault(e.min,t);const n=[],s=log10Floor(t);let a=startExp(t,i),r=a<0?Math.pow(10,Math.abs(a)):1;const l=Math.pow(10,a),c=s>a?Math.pow(10,s):0,d=Math.round((t-c)*r)/r,u=Math.floor((t-c)/l/10)*l*10;let h=Math.floor((d-u)/Math.pow(10,a)),f=finiteOrDefault(e.min,Math.round((c+u+h*Math.pow(10,a))*r)/r);for(;f=10?h=h<15?15:20:h++,h>=20&&(a++,h=2,r=a>=0?1:r),f=Math.round((c+u+h*Math.pow(10,a))*r)/r;const g=finiteOrDefault(e.max,f);return n.push({value:g,major:isMajor(g),significand:h}),n}class LogarithmicScale extends Scale{constructor(t){super(t),this.start=void 0,this.end=void 0,this._startValue=void 0,this._valueRange=0}parse(t,i){const n=LinearScaleBase.prototype.parse.apply(this,[t,i]);if(n===0){this._zero=!0;return}return isNumberFinite(n)&&n>0?n:null}determineDataLimits(){const{min:t,max:i}=this.getMinMax(!0);this.min=isNumberFinite(t)?Math.max(0,t):null,this.max=isNumberFinite(i)?Math.max(0,i):null,this.options.beginAtZero&&(this._zero=!0),this._zero&&this.min!==this._suggestedMin&&!isNumberFinite(this._userMin)&&(this.min=t===changeExponent(this.min,0)?changeExponent(this.min,-1):changeExponent(this.min,0)),this.handleTickRangeOptions()}handleTickRangeOptions(){const{minDefined:t,maxDefined:i}=this.getUserBounds();let n=this.min,s=this.max;const a=l=>n=t?n:l,r=l=>s=i?s:l;n===s&&(n<=0?(a(1),r(10)):(a(changeExponent(n,-1)),r(changeExponent(s,1)))),n<=0&&a(changeExponent(s,-1)),s<=0&&r(changeExponent(n,1)),this.min=n,this.max=s}buildTicks(){const t=this.options,i={min:this._userMin,max:this._userMax},n=generateTicks(i,this);return t.bounds==="ticks"&&_setMinAndMaxByKey(n,this,"value"),t.reverse?(n.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),n}getLabelForValue(t){return t===void 0?"0":formatNumber(t,this.chart.options.locale,this.options.ticks.format)}configure(){const t=this.min;super.configure(),this._startValue=log10(t),this._valueRange=log10(this.max)-log10(t)}getPixelForValue(t){return(t===void 0||t===0)&&(t=this.min),t===null||isNaN(t)?NaN:this.getPixelForDecimal(t===this.min?0:(log10(t)-this._startValue)/this._valueRange)}getValueForPixel(t){const i=this.getDecimalForPixel(t);return Math.pow(10,this._startValue+i*this._valueRange)}}Q(LogarithmicScale,"id","logarithmic"),Q(LogarithmicScale,"defaults",{ticks:{callback:Ticks.formatters.logarithmic,major:{enabled:!0}}});function getTickBackdropHeight(e){const t=e.ticks;if(t.display&&e.display){const i=toPadding(t.backdropPadding);return valueOrDefault(t.font&&t.font.size,defaults.font.size)+i.height}return 0}function measureLabelSize(e,t,i){return i=isArray(i)?i:[i],{w:_longestText(e,t.string,i),h:i.length*t.lineHeight}}function determineLimits(e,t,i,n,s){return e===n||e===s?{start:t-i/2,end:t+i/2}:es?{start:t-i,end:t}:{start:t,end:t+i}}function fitWithPointLabels(e){const t={l:e.left+e._padding.left,r:e.right-e._padding.right,t:e.top+e._padding.top,b:e.bottom-e._padding.bottom},i=Object.assign({},t),n=[],s=[],a=e._pointLabels.length,r=e.options.pointLabels,l=r.centerPointLabels?PI/a:0;for(let c=0;ct.r&&(l=(n.end-t.r)/a,e.r=Math.max(e.r,t.r+l)),s.startt.b&&(c=(s.end-t.b)/r,e.b=Math.max(e.b,t.b+c))}function buildPointLabelItems(e,t,i){const n=[],s=e._pointLabels.length,a=e.options,r=getTickBackdropHeight(a)/2,l=e.drawingArea,c=a.pointLabels.centerPointLabels?PI/s:0;for(let d=0;d270||i<90)&&(e-=t),e}function drawPointLabels(e,t){const{ctx:i,options:{pointLabels:n}}=e;for(let s=t-1;s>=0;s--){const a=n.setContext(e.getPointLabelContext(s)),r=toFont(a.font),{x:l,y:c,textAlign:d,left:u,top:h,right:f,bottom:g}=e._pointLabelItems[s],{backdropColor:m}=a;if(!isNullOrUndef(m)){const w=toTRBLCorners(a.borderRadius),_=toPadding(a.backdropPadding);i.fillStyle=m;const D=u-_.left,B=h-_.top,P=f-u+_.width,N=g-h+_.height;Object.values(w).some(L=>L!==0)?(i.beginPath(),addRoundedRectPath(i,{x:D,y:B,w:P,h:N,radius:w}),i.fill()):i.fillRect(D,B,P,N)}renderText(i,e._pointLabels[s],l,c+r.lineHeight/2,r,{color:a.color,textAlign:d,textBaseline:"middle"})}}function pathRadiusLine(e,t,i,n){const{ctx:s}=e;if(i)s.arc(e.xCenter,e.yCenter,t,0,TAU);else{let a=e.getPointPosition(0,t);s.moveTo(a.x,a.y);for(let r=1;r{const s=callback(this.options.pointLabels.callback,[i,n],this);return s||s===0?s:""}).filter((i,n)=>this.chart.getDataVisibility(n))}fit(){const t=this.options;t.display&&t.pointLabels.display?fitWithPointLabels(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(t,i,n,s){this.xCenter+=Math.floor((t-i)/2),this.yCenter+=Math.floor((n-s)/2),this.drawingArea-=Math.min(this.drawingArea/2,Math.max(t,i,n,s))}getIndexAngle(t){const i=TAU/(this._pointLabels.length||1),n=this.options.startAngle||0;return _normalizeAngle(t*i+toRadians(n))}getDistanceFromCenterForValue(t){if(isNullOrUndef(t))return NaN;const i=this.drawingArea/(this.max-this.min);return this.options.reverse?(this.max-t)*i:(t-this.min)*i}getValueForDistanceFromCenter(t){if(isNullOrUndef(t))return NaN;const i=t/(this.drawingArea/(this.max-this.min));return this.options.reverse?this.max-i:this.min+i}getPointLabelContext(t){const i=this._pointLabels||[];if(t>=0&&t{if(h!==0){c=this.getDistanceFromCenterForValue(u.value);const f=this.getContext(h),g=s.setContext(f),m=a.setContext(f);drawRadiusLine(this,g,c,r,m)}}),n.display){for(t.save(),l=r-1;l>=0;l--){const u=n.setContext(this.getPointLabelContext(l)),{color:h,lineWidth:f}=u;!f||!h||(t.lineWidth=f,t.strokeStyle=h,t.setLineDash(u.borderDash),t.lineDashOffset=u.borderDashOffset,c=this.getDistanceFromCenterForValue(i.ticks.reverse?this.min:this.max),d=this.getPointPosition(l,c),t.beginPath(),t.moveTo(this.xCenter,this.yCenter),t.lineTo(d.x,d.y),t.stroke())}t.restore()}}drawBorder(){}drawLabels(){const t=this.ctx,i=this.options,n=i.ticks;if(!n.display)return;const s=this.getIndexAngle(0);let a,r;t.save(),t.translate(this.xCenter,this.yCenter),t.rotate(s),t.textAlign="center",t.textBaseline="middle",this.ticks.forEach((l,c)=>{if(c===0&&!i.reverse)return;const d=n.setContext(this.getContext(c)),u=toFont(d.font);if(a=this.getDistanceFromCenterForValue(this.ticks[c].value),d.showLabelBackdrop){t.font=u.string,r=t.measureText(l.label).width,t.fillStyle=d.backdropColor;const h=toPadding(d.backdropPadding);t.fillRect(-r/2-h.left,-a-u.size/2-h.top,r+h.width,u.size+h.height)}renderText(t,l.label,0,-a,u,{color:d.color})}),t.restore()}drawTitle(){}}Q(RadialLinearScale,"id","radialLinear"),Q(RadialLinearScale,"defaults",{display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,lineWidth:1,borderDash:[],borderDashOffset:0},grid:{circular:!1},startAngle:0,ticks:{showLabelBackdrop:!0,callback:Ticks.formatters.numeric},pointLabels:{backdropColor:void 0,backdropPadding:2,display:!0,font:{size:10},callback(t){return t},padding:5,centerPointLabels:!1}}),Q(RadialLinearScale,"defaultRoutes",{"angleLines.color":"borderColor","pointLabels.color":"color","ticks.color":"color"}),Q(RadialLinearScale,"descriptors",{angleLines:{_fallback:"grid"}});const INTERVALS={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},UNITS=Object.keys(INTERVALS);function sorter(e,t){return e-t}function parse(e,t){if(isNullOrUndef(t))return null;const i=e._adapter,{parser:n,round:s,isoWeekday:a}=e._parseOpts;let r=t;return typeof n=="function"&&(r=n(r)),isNumberFinite(r)||(r=typeof n=="string"?i.parse(r,n):i.parse(r)),r===null?null:(s&&(r=s==="week"&&(isNumber(a)||a===!0)?i.startOf(r,"isoWeek",a):i.startOf(r,s)),+r)}function determineUnitForAutoTicks(e,t,i,n){const s=UNITS.length;for(let a=UNITS.indexOf(e);a=UNITS.indexOf(i);a--){const r=UNITS[a];if(INTERVALS[r].common&&e._adapter.diff(s,n,r)>=t-1)return r}return UNITS[i?UNITS.indexOf(i):0]}function determineMajorUnit(e){for(let t=UNITS.indexOf(e)+1,i=UNITS.length;t=t?i[n]:i[s];e[a]=!0}}function setMajorTicks(e,t,i,n){const s=e._adapter,a=+s.startOf(t[0].value,n),r=t[t.length-1].value;let l,c;for(l=a;l<=r;l=+s.add(l,1,n))c=i[l],c>=0&&(t[c].major=!0);return t}function ticksFromTimestamps(e,t,i){const n=[],s={},a=t.length;let r,l;for(r=0;r+t.value))}initOffsets(t=[]){let i=0,n=0,s,a;this.options.offset&&t.length&&(s=this.getDecimalForValue(t[0]),t.length===1?i=1-s:i=(this.getDecimalForValue(t[1])-s)/2,a=this.getDecimalForValue(t[t.length-1]),t.length===1?n=a:n=(a-this.getDecimalForValue(t[t.length-2]))/2);const r=t.length<3?.5:.25;i=_limitValue(i,0,r),n=_limitValue(n,0,r),this._offsets={start:i,end:n,factor:1/(i+1+n)}}_generate(){const t=this._adapter,i=this.min,n=this.max,s=this.options,a=s.time,r=a.unit||determineUnitForAutoTicks(a.minUnit,i,n,this._getLabelCapacity(i)),l=valueOrDefault(s.ticks.stepSize,1),c=r==="week"?a.isoWeekday:!1,d=isNumber(c)||c===!0,u={};let h=i,f,g;if(d&&(h=+t.startOf(h,"isoWeek",c)),h=+t.startOf(h,d?"day":r),t.diff(n,i,r)>1e5*l)throw new Error(i+" and "+n+" are too far apart with stepSize of "+l+" "+r);const m=s.ticks.source==="data"&&this.getDataTimestamps();for(f=h,g=0;fw-_).map(w=>+w)}getLabelForValue(t){const i=this._adapter,n=this.options.time;return n.tooltipFormat?i.format(t,n.tooltipFormat):i.format(t,n.displayFormats.datetime)}_tickFormatFunction(t,i,n,s){const a=this.options,r=a.ticks.callback;if(r)return callback(r,[t,i,n],this);const l=a.time.displayFormats,c=this._unit,d=this._majorUnit,u=c&&l[c],h=d&&l[d],f=n[i],g=d&&h&&f&&f.major;return this._adapter.format(t,s||(g?h:u))}generateTickLabels(t){let i,n,s;for(i=0,n=t.length;i0?l:1}getDataTimestamps(){let t=this._cache.data||[],i,n;if(t.length)return t;const s=this.getMatchingVisibleMetas();if(this._normalized&&s.length)return this._cache.data=s[0].controller.getAllParsedValues(this);for(i=0,n=s.length;i=e[n].pos&&t<=e[s].pos&&({lo:n,hi:s}=_lookupByKey(e,"pos",t)),{pos:a,time:l}=e[n],{pos:r,time:c}=e[s]):(t>=e[n].time&&t<=e[s].time&&({lo:n,hi:s}=_lookupByKey(e,"time",t)),{time:a,pos:l}=e[n],{time:r,pos:c}=e[s]);const d=r-a;return d?l+(c-l)*(t-a)/d:l}class TimeSeriesScale extends TimeScale{constructor(t){super(t),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const t=this._getTimestampsForTable(),i=this._table=this.buildLookupTable(t);this._minPos=interpolate(i,this.min),this._tableRange=interpolate(i,this.max)-this._minPos,super.initOffsets(t)}buildLookupTable(t){const{min:i,max:n}=this,s=[],a=[];let r,l,c,d,u;for(r=0,l=t.length;r=i&&d<=n&&s.push(d);if(s.length<2)return[{time:i,pos:0},{time:n,pos:1}];for(r=0,l=s.length;r(pushScopeId("data-v-fd1701ae"),e=e(),popScopeId(),e),_hoisted_1$h={id:"critical-main"},_hoisted_2$f={id:"critical"},_hoisted_3$f=_withScopeId$8(()=>createBaseVNode("div",{class:"des"},"\u52A0\u653B\u4F24\u5BB3",-1)),_hoisted_4$c={class:"slider-div"},_hoisted_5$b={id:"def"},_hoisted_6$a=_withScopeId$8(()=>createBaseVNode("div",{class:"des"},"\u52A0\u9632\u4F24\u5BB3",-1)),_hoisted_7$7={class:"slider-div"},_hoisted_8$6={id:"now-damage"},_hoisted_9$6={style:{"font-family":"'Fira Code'"}},_sfc_main$h=defineComponent({__name:"enemyCritical",setup(e){const t=ref(),i=ref(),n=core.plugin.bookDetailEnemy,s=Math.ceil;let a=getCriticalDamage(n),r=getDefDamage(n);const l=ref(a),c=ref(r),d=ref(0),u=ref(0),h=core.getDamageInfo(n),f=core.formatBigNumber,g=core.status.thisMap.ratio,m=computed(()=>{const B=core.getDamageInfo(n,{atk:core.status.hero.atk+d.value*g,def:core.status.hero.def+u.value*g});return has(B)?has(h)?[h.damage-B.damage,B.damage]:[-B.damage,B.damage]:["???","???"]});function w(B,P){const N={type:"line",data:_(P),options:{elements:{point:{radius:5,hoverRadius:7},line:{borderJoinStyle:"round"}},scales:{y:{grid:{color:"#ddd3"}}},plugins:{legend:{display:!1}}}};return new Chart$1(B,N)}function _(B){return{datasets:[{data:B.map(P=>P[1]),label:"\u602A\u7269\u4F24\u5BB3"}],labels:B.map(P=>Math.round(P[0]/g))}}const D=lodash.exports.debounce((B,P)=>{l.value=getCriticalDamage(n,d.value*g,u.value*g),c.value=getDefDamage(n,u.value*g,d.value*g),l.value.length>a.length&&(a=l.value),c.value.length>r.length&&(r=c.value),B.data=_(l.value),P.data=_(c.value),B.update("resize"),P.update("resize")},200);return onMounted(()=>{const B=document.getElementById("critical-main"),P=getComputedStyle(B),N=parseFloat(P.width),L=window.innerHeight/5,U=t.value,H=i.value;setCanvasSize(U,N,L),setCanvasSize(H,N,L);const W=w(U,l.value),K=w(H,c.value);watch(d,G=>{D(W,K)}),watch(u,G=>{D(W,K)})}),(B,P)=>{var U,H,W,K,G,Y,J,ot;const N=__unplugin_components_0,L=__unplugin_components_1;return openBlock(),createElementBlock("div",_hoisted_1$h,[createBaseVNode("div",_hoisted_2$f,[_hoisted_3$f,createBaseVNode("canvas",{ref_key:"critical",ref:t,class:"chart"},null,512),createBaseVNode("div",_hoisted_4$c,[createBaseVNode("span",null,"\u52A0\u653B\u6B21\u6570\xA0\xA0\xA0\xA0"+toDisplayString(d.value),1),createVNode(N,{class:"slider",value:d.value,"onUpdate:value":P[0]||(P[0]=ht=>d.value=ht),max:unref(s)(((H=(U=unref(a).at(-1))==null?void 0:U[0])!=null?H:2)/unref(g))-1},null,8,["value","max"]),createBaseVNode("span",null,"\u6700\u5927\u503C\xA0\xA0\xA0\xA0"+toDisplayString(unref(s)(((K=(W=unref(a).at(-1))==null?void 0:W[0])!=null?K:2)/unref(g))-1),1)])]),createVNode(L,{dashed:"",style:{width:"100%","border-color":"#ddd4",margin:"1vh 0 1vh 0"}}),createBaseVNode("div",_hoisted_5$b,[_hoisted_6$a,createBaseVNode("canvas",{ref_key:"def",ref:i,class:"chart"},null,512),createBaseVNode("div",_hoisted_7$7,[createBaseVNode("span",null,"\u52A0\u9632\u6B21\u6570\xA0\xA0\xA0\xA0"+toDisplayString(u.value),1),createVNode(N,{class:"slider",value:u.value,"onUpdate:value":P[1]||(P[1]=ht=>u.value=ht),max:unref(s)(((Y=(G=unref(r).at(-1))==null?void 0:G[0])!=null?Y:2)/unref(g))-1},null,8,["value","max"]),createBaseVNode("span",null,"\u6700\u5927\u503C\xA0\xA0\xA0\xA0"+toDisplayString(unref(s)(((ot=(J=unref(r).at(-1))==null?void 0:J[0])!=null?ot:2)/unref(g))-1),1)])]),createBaseVNode("div",_hoisted_8$6,[createBaseVNode("div",null,[createBaseVNode("span",null,"\u5F53\u524D\u52A0\u653B"+toDisplayString(unref(isMobile)?"":"\xA0\xA0\xA0\xA0"),1),createBaseVNode("span",null,toDisplayString(unref(f)(d.value*unref(g))),1)]),createBaseVNode("div",null,[createBaseVNode("span",null,"\u5F53\u524D\u52A0\u9632"+toDisplayString(unref(isMobile)?"":"\xA0\xA0\xA0\xA0"),1),createBaseVNode("span",null,toDisplayString(unref(f)(u.value*unref(g))),1)]),createBaseVNode("div",null,[createBaseVNode("span",null,"\u5F53\u524D\u51CF\u4F24"+toDisplayString(unref(isMobile)?"":"\xA0\xA0\xA0\xA0"),1),createBaseVNode("span",null,[createBaseVNode("span",_hoisted_9$6,toDisplayString(unref(m)[0]<0&&unref(m)[1]==="???"?"=>":""),1),createTextVNode(toDisplayString(unref(m)[0]<0&&unref(m)[1]==="???"?unref(f)(-unref(m)[0]):unref(f)(unref(m)[0])),1)])]),createBaseVNode("div",null,[createBaseVNode("span",null,"\u5F53\u524D\u4F24\u5BB3"+toDisplayString(unref(isMobile)?"":"\xA0\xA0\xA0\xA0"),1),createBaseVNode("span",null,toDisplayString(unref(f)(unref(m)[1])),1)])])])}}}),enemyCritical_vue_vue_type_style_index_0_scoped_fd1701ae_lang="",EnemyCritical=_export_sfc(_sfc_main$h,[["__scopeId","data-v-fd1701ae"]]),showMarkedEnemy=ref(!1),markedEnemy=reactive([]),markInfo={},criticalReached={},enemyDamageInfo={};function markEnemy$1(e){var t,i;hasMarkedEnemy(e)||(markedEnemy.push(e),markInfo[e]={nextCritical:(i=(t=core.nextCriticals(e,1)[0])==null?void 0:t[0])!=null?i:0+core.status.hero.atk},criticalReached[e]={0:!0},enemyDamageInfo[e]={1:!1,2:!1,3:!1},getMarkInfo(e,!0),checkMarkedEnemy(!0))}function hasMarkedEnemy(e){return markedEnemy.includes(e)}function unmarkEnemy(e){const t=markedEnemy.indexOf(e);t!==-1&&(markedEnemy.splice(t,1),checkMarkedEnemy())}function getMarkedEnemy(){return markedEnemy}function getMarkInfo(e,t=!1){var s;const i=criticalReached[e],n=markInfo[e];if(core.status.hero.atk>=n.nextCritical){!i[n.nextCritical]&&!t&&tip$1("success",`\u8E29\u5230\u4E86${core.material.enemys[e].name}\u7684\u4E34\u754C\uFF01`),i[n.nextCritical]=!0;const a=(s=core.nextCriticals(e,1)[0])==null?void 0:s[0],r=(a!=null?a:0)+core.status.hero.atk;n.nextCritical=r}}function checkMarkedEnemy(e=!1){checkMarkedStatus.value=!checkMarkedStatus.value;const t=core.status.hero.hp;getMarkedEnemy().forEach(i=>{var r,l;getMarkInfo(i);const n=(l=(r=core.getDamageInfo(i))==null?void 0:r.damage)!=null?l:-1;if(n===-1)return;const s=enemyDamageInfo[i],a=core.material.enemys[i].name;n<=0?e||tip$1("success",`${a}\u5DF2\u7ECF\u96F6\u4F24\u4E86\uFF01`):n(core.isPlaying()&&(flags.mouseLoc=[e,t]),!1),150),{checkMarkedEnemy,checkStatus:checkMarkedStatus,markEnemy:markEnemy$1,hasMarkedEnemy,unmarkEnemy,showMarkedEnemy}}const _withScopeId$7=e=>(pushScopeId("data-v-90e08ea9"),e=e(),popScopeId(),e),_hoisted_1$g={id:"enemy-target"},_hoisted_2$e={id:"enemy-desc"},_hoisted_3$e=_withScopeId$7(()=>createBaseVNode("span",null,"\u602A\u7269\u63CF\u8FF0",-1)),_hoisted_4$b={id:"mark-target"},_hoisted_5$a=["onClick"],_sfc_main$g=defineComponent({__name:"enemyTarget",setup(e){const t=core.plugin.bookDetailEnemy,i=ref(hasMarkedEnemy(t.id));function n(){i.value&&unmarkEnemy(t.id),i.value||markEnemy$1(t.id),i.value=!i.value}return(s,a)=>{const r=__unplugin_components_1;return openBlock(),createElementBlock("div",_hoisted_1$g,[createBaseVNode("div",_hoisted_2$e,[_hoisted_3$e,createVNode(Scroll,{id:"enemy-desc-scroll"},{default:withCtx(()=>[createBaseVNode("span",null,toDisplayString(unref(t).description),1)]),_:1})]),createVNode(r,{dashed:"",style:{"border-color":"#ddd4"}}),createBaseVNode("div",null,[createBaseVNode("div",_hoisted_4$b,[createBaseVNode("span",{id:"mark-info",style:normalizeStyle({color:i.value?"lightgreen":"lightcoral"})},toDisplayString(i.value?"\u5DF2\u6807\u8BB0\u8BE5\u602A\u7269":"\u672A\u6807\u8BB0\u8BE5\u602A\u7269"),5),createBaseVNode("span",{class:"button-text",onClick:withModifiers(n,["stop"])},toDisplayString(i.value?"\u53D6\u6D88\u6807\u8BB0\u8BE5\u602A\u7269":"\u6807\u8BB0\u8BE5\u602A\u7269\u4E3A\u76EE\u6807"),9,_hoisted_5$a)])])])}}}),enemyTarget_vue_vue_type_style_index_0_scoped_90e08ea9_lang="",EnemyTarget=_export_sfc(_sfc_main$g,[["__scopeId","data-v-90e08ea9"]]),_withScopeId$6=e=>(pushScopeId("data-v-9c1bd474"),e=e(),popScopeId(),e),_hoisted_1$f={id:"detail"},_hoisted_2$d={id:"detail-more"},_hoisted_3$d={key:0,id:"special-more",class:"detial-more"},_hoisted_4$a={key:1,id:"special-more",class:"detial-more"},_hoisted_5$9={key:2,id:"special-more",class:"detial-more"},_hoisted_6$9=_withScopeId$6(()=>createBaseVNode("span",null,null,-1)),_sfc_main$f=defineComponent({__name:"bookDetail",emits:["close"],setup(e,{emit:t}){const i=core.plugin.bookDetailEnemy,n=ref(core.plugin.bookDetailPos),s=ref("special");let a;function r(d,u){d.stopPropagation(),s.value=u}function l(){n.value=core.plugin.bookDetailPos,a.style.opacity="0",t("close")}function c(d){keycode(d.keyCode)===KeyCode.Enter&&l()}return onMounted(async()=>{n.value=0,a=document.getElementById("detail"),a.style.opacity="1";const d=getComputedStyle(a);let u=!1,h=[0,0];await S(600),useDrag(a,(f,g)=>{(f-h[0])**2+(g-h[1])**2>=100&&(u=!0)},(f,g)=>{h=[f,g],g>parseFloat(d.height)*4/5&&(u=!0)},()=>{u===!1&&s.value!=="critical"&&l(),u=!1}),document.addEventListener("keyup",c)}),onUnmounted(()=>{document.removeEventListener("keyup",c)}),(d,u)=>{const h=__unplugin_components_1;return openBlock(),createElementBlock("div",_hoisted_1$f,[createBaseVNode("div",{id:"info",style:normalizeStyle({top:`${n.value}px`})},[createVNode(EnemyOne,{enemy:unref(i)},null,8,["enemy"]),createVNode(h,{dashed:"",style:{margin:"2vh 0 2vh 0","border-color":"#ddd4",width:"100%"}})],4),createVNode(Transition,{name:"detail"},{default:withCtx(()=>[s.value==="special"?(openBlock(),createBlock(EnemySpecial,{key:0})):s.value==="critical"?(openBlock(),createBlock(EnemyCritical,{key:1})):s.value==="target"?(openBlock(),createBlock(EnemyTarget,{key:2})):createCommentVNode("",!0)]),_:1}),createBaseVNode("div",_hoisted_2$d,[createVNode(Transition,{name:"detail"},{default:withCtx(()=>[s.value==="special"?(openBlock(),createElementBlock("div",_hoisted_3$d,[createBaseVNode("span",{id:"enemy-target",class:"button-text more",onClick:u[0]||(u[0]=f=>r(f,"target"))},[createVNode(unref(LeftOutlined)),createTextVNode(" \u602A\u7269\u66F4\u591A\u4FE1\u606F")]),createBaseVNode("span",{id:"critical-more",class:"button-text more",onClick:u[1]||(u[1]=f=>r(f,"critical"))},[createTextVNode("\u8BE6\u7EC6\u4E34\u754C\u4FE1\u606F "),createVNode(unref(RightOutlined))])])):s.value==="critical"?(openBlock(),createElementBlock("div",_hoisted_4$a,[createBaseVNode("span",{id:"enemy-pos",class:"button-text more",onClick:u[2]||(u[2]=f=>r(f,"special"))},[createVNode(unref(LeftOutlined)),createTextVNode(" \u602A\u7269\u7279\u6B8A\u5C5E\u6027")])])):s.value==="target"?(openBlock(),createElementBlock("div",_hoisted_5$9,[_hoisted_6$9,createBaseVNode("span",{id:"enemy-pos",class:"button-text more",onClick:u[3]||(u[3]=f=>r(f,"special"))},[createTextVNode("\u602A\u7269\u7279\u6B8A\u5C5E\u6027 "),createVNode(unref(RightOutlined))])])):createCommentVNode("",!0)]),_:1})])])}}}),bookDetail_vue_vue_type_style_index_0_scoped_9c1bd474_lang="",BookDetail=_export_sfc(_sfc_main$f,[["__scopeId","data-v-9c1bd474"]]),_withScopeId$5=e=>(pushScopeId("data-v-e7143bcf"),e=e(),popScopeId(),e),_hoisted_1$e={id:"book"},_hoisted_2$c={id:"tools"},_hoisted_3$c={key:0,id:"none"},_hoisted_4$9=_withScopeId$5(()=>createBaseVNode("div",null,"\u672C\u5C42\u65E0\u602A\u7269",-1)),_hoisted_5$8=[_hoisted_4$9],_hoisted_6$8={class:"enemy"},_sfc_main$e=defineComponent({__name:"book",setup(e){var w,_,D;const t=(D=core.floorIds[(_=(w=core.status.event)==null?void 0:w.ui)==null?void 0:_.index])!=null?D:core.status.floorId;t!==core.status.floorId&&core.status.checkBlock&&(core.status.checkBlock.cache={});const i=core.getCurrentEnemys(t),n=ref(0),s=ref(!1),a=ref(!1),r=ref(0);i.forEach(B=>{const P=B.specialText.length;B.toShowSpecial=lodash.exports.cloneDeep(B.specialText),B.toShowColor=lodash.exports.cloneDeep(B.specialColor),P>=3&&(B.toShowSpecial=B.specialText.slice(0,2).concat(["..."]),B.toShowColor=B.specialColor.slice(0,2).concat(["#fff"])),B.toShowColor=B.toShowColor.map(N=>typeof N=="string"?N:core.arrayToRGBA(N)),B.damageColor=getDamageColor(B.damage)});function l(B,P){if(s.value)return;const N=window.innerHeight,L=P*N*.2-n.value;core.plugin.bookDetailEnemy=B,core.plugin.bookDetailPos=L,a.value=!0,c()}async function c(){const B=document.getElementById("book");B.style.opacity="0",await S(600),B.style.display="none"}async function d(){u(),await S(600),a.value=!1}async function u(){const B=document.getElementById("book");B.style.display="flex",await S(50),B.style.opacity="1"}async function h(){noClosePanel.value=!0,core.plugin.bookOpened.value=!1,core.plugin.transition.value?await S(650):await S(100),!core.events.recoverEvents(core.status.event.interval)&&(has(core.status.event.ui)?(core.status.boxAnimateObjs=[],core.ui._drawViewMaps(core.status.event.ui)):core.ui.closePanel())}function f(){const B=window.innerHeight,P=r.value*B*.2-n.value;P<0&&(n.value+=P-20),P>B*.655&&(n.value+=P-B*.655+20)}function g(B){const P=keycode(B.keyCode);(P===KeyCode.KeyX||P===KeyCode.Escape)&&h(),P===KeyCode.Enter&&!a.value&&l(i[r.value],r.value)}function m(B){const P=keycode(B.keyCode);a.value||(P===KeyCode.DownArrow&&(r.value0&&r.value--,f()),(P===KeyCode.LeftArrow||P===KeyCode.PageUp)&&(r.value<=4?r.value=0:r.value-=5,f()),(P===KeyCode.RightArrow||P===KeyCode.PageDown)&&(r.value>=i.length-5?r.value=i.length-1:r.value+=5,f()))}return onMounted(async()=>{core.plugin.transition.value?await S(600):await S(50),document.addEventListener("keyup",g),document.addEventListener("keydown",m)}),onUnmounted(async()=>{document.removeEventListener("keyup",g),document.removeEventListener("keydown",m)}),(B,P)=>{const N=__unplugin_components_1;return openBlock(),createElementBlock(Fragment,null,[createBaseVNode("div",_hoisted_1$e,[createBaseVNode("div",_hoisted_2$c,[createBaseVNode("span",{id:"back",class:"button-text tools",onClick:h},[createVNode(unref(LeftOutlined)),createTextVNode("\u8FD4\u56DE\u6E38\u620F")])]),unref(i).length===0?(openBlock(),createElementBlock("div",_hoisted_3$c,_hoisted_5$8)):(openBlock(),createBlock(Scroll,{key:1,style:{width:"100%",height:"94%","font-family":"normal"},now:n.value,"onUpdate:now":P[0]||(P[0]=L=>n.value=L),drag:s.value,"onUpdate:drag":P[1]||(P[1]=L=>s.value=L)},{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(i),(L,U)=>(openBlock(),createElementBlock("div",_hoisted_6$8,[(openBlock(),createBlock(EnemyOne,{selected:U===r.value,enemy:L,key:U,onSelect:H=>l(L,U),onHover:H=>r.value=U},null,8,["selected","enemy","onSelect","onHover"])),createVNode(N,{dashed:"",style:{width:"100%","border-color":"#ddd4"}})]))),256))]),_:1},8,["now","drag"]))]),a.value?(openBlock(),createBlock(BookDetail,{key:0,onClose:P[2]||(P[2]=L=>d())})):createCommentVNode("",!0)],64)}}}),book_vue_vue_type_style_index_0_scoped_e7143bcf_lang="",Book=_export_sfc(_sfc_main$e,[["__scopeId","data-v-e7143bcf"]]),clsMap={tools:"\u6D88\u8017\u9053\u5177",constants:"\u6C38\u4E45\u9053\u5177",all:"\u5168\u90E8\u9053\u5177"};function getClsName(e){return clsMap[e]}function getItems(e){const t=core.status.hero.items,i=["book"];if(e==="all")return{tools:Object.entries(t.tools).filter(a=>!i.includes(a[0])),constants:Object.entries(t.constants).filter(a=>!i.includes(a[0]))};const n=t[e];return Object.entries(n)}const _withScopeId$4=e=>(pushScopeId("data-v-88c6bbe5"),e=e(),popScopeId(),e),_hoisted_1$d={id:"toolbox"},_hoisted_2$b={id:"tools"},_hoisted_3$b={id:"toolbox-main"},_hoisted_4$8={class:"item-main"},_hoisted_5$7={class:"item-info"},_hoisted_6$7={key:0,class:"item-type"},_hoisted_7$6={key:1,id:"item-type-mobile"},_hoisted_8$5=["selected"],_hoisted_9$5=["selected"],_hoisted_10$5=["selected","onClick"],_hoisted_11$5={class:"item-icon"},_hoisted_12$4={class:"item-name"},_hoisted_13$4={id:"detail"},_hoisted_14$4={id:"info"},_hoisted_15$3={id:"basic-info"},_hoisted_16$3={style:{"border-bottom":"1px solid #ddd4"}},_hoisted_17$2=_withScopeId$4(()=>createBaseVNode("span",{style:{"margin-top":"2vh"}},"\u70B9\u51FB\u8BE5\u7269\u54C1\u4EE5\u4F7F\u7528",-1)),_hoisted_18$2={id:"desc"},_hoisted_19$2=_withScopeId$4(()=>createBaseVNode("span",null,"\u9053\u5177\u63CF\u8FF0",-1)),_hoisted_20$2={key:0},_hoisted_21$2=["innerHTML"],_sfc_main$d=defineComponent({__name:"toolbox",setup(e){var m,w;const t=ref("tools"),i=getItems("all"),n=computed(()=>isMobile?[t.value]:["tools","constants"]),s=core.material.items,a=ref((w=(m=i[n.value[0]][0])==null?void 0:m[0])!=null?w:"none"),r=ref(0);watch(r,_=>{c(i[t.value][_][0],!0)}),watch(t,_=>{if(!has(i[_][r.value])){a.value="none";return}c(i[_][r.value][0],!0)});const l=computed(()=>{const _=a.value;return _==="none"?ref("\u6CA1\u6709\u9009\u62E9\u9053\u5177"):type(s[_].text,25,C("sin","out"),!0)});async function c(_,D=!1){a.value===_&&!D&&u(_),r.value=i[t.value].findIndex(B=>B[0]===_),a.value=_}function d(){core.plugin.toolOpened.value=!1}async function u(_){if(_!=="none")if(core.canUseItem(_)){const D=core.plugin.transition.value;core.plugin.transition.value=!1,d(),await S(50),core.useItem(_),core.plugin.transition.value=D}else message.warn({content:"\u5F53\u524D\u65E0\u6CD5\u4F7F\u7528\u8BE5\u9053\u5177\uFF01",class:"antdv-message"})}async function h(){const _=core.plugin.transition.value;core.plugin.transition.value=!1,d(),await S(50),core.plugin.equipOpened.value=!0,core.plugin.transition.value=_}function f(_){const D=keycode(_.keyCode);(D===KeyCode.Escape||D===KeyCode.KeyX||D===KeyCode.KeyT)&&d(),(D===KeyCode.Enter||D===KeyCode.KeyC)&&u(a.value)}function g(_){const D=keycode(_.keyCode),B=i[t.value].length;if(D===KeyCode.DownArrow&&r.value0&&r.value--,D===KeyCode.RightArrow){const P=i.constants.length;t.value==="tools"&&(r.value>=P&&(r.value=P-1),t.value="constants")}if(D===KeyCode.LeftArrow){const P=i.tools.length;t.value==="constants"&&(r.value>=P&&(r.value=P-1),t.value="tools")}}return onMounted(async()=>{core.plugin.transition.value?await S(600):await S(50),document.addEventListener("keyup",f),document.addEventListener("keydown",g)}),onUnmounted(()=>{document.removeEventListener("keyup",f),document.removeEventListener("keydown",g)}),(_,D)=>{var P;const B=__unplugin_components_1;return openBlock(),createElementBlock("div",_hoisted_1$d,[createBaseVNode("div",_hoisted_2$b,[createBaseVNode("span",{class:"button-text tools",onClick:d},[createVNode(unref(LeftOutlined)),createTextVNode(" \u8FD4\u56DE\u6E38\u620F")]),createBaseVNode("span",{class:"button-text tools",onClick:h},[createTextVNode("\u88C5\u5907\u680F "),createVNode(unref(RightOutlined))])]),createBaseVNode("div",_hoisted_3$b,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(n),N=>(openBlock(),createElementBlock("div",_hoisted_4$8,[createBaseVNode("div",_hoisted_5$7,[unref(isMobile)?(openBlock(),createElementBlock("div",_hoisted_7$6,[createBaseVNode("span",{class:"button-text",onClick:D[0]||(D[0]=L=>t.value="tools"),selected:t.value==="tools"},"\u6D88\u8017\u9053\u5177",8,_hoisted_8$5),createVNode(B,{dashed:"",style:{"border-color":"#ddd4",height:"100%"},type:"vertical"}),createBaseVNode("span",{class:"button-text",onClick:D[1]||(D[1]=L=>t.value="constants"),selected:t.value==="constants"},"\u6C38\u4E45\u9053\u5177",8,_hoisted_9$5)])):(openBlock(),createElementBlock("div",_hoisted_6$7,toDisplayString(unref(getClsName)(N)),1)),createVNode(B,{dashed:"",style:{margin:"1vh 0 1vh 0","border-color":"#ddd4"}}),createVNode(Scroll,{class:"item-list"},{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(i)[N],([L,U])=>(openBlock(),createElementBlock("div",{class:"item selectable",selected:a.value===L,onClick:H=>{t.value=N,c(L)}},[createBaseVNode("div",_hoisted_11$5,[createVNode(_sfc_main$l,{id:L,width:32,height:32,noborder:!0},null,8,["id"]),createBaseVNode("span",_hoisted_12$4,toDisplayString(unref(s)[L].name),1)]),createBaseVNode("span",null,"\xD7\xA0"+toDisplayString(U),1)],8,_hoisted_10$5))),256))]),_:2},1024)]),createVNode(B,{dashed:"",type:unref(isMobile)?"horizontal":"vertical",class:"divider",style:{"border-color":"#ddd4",margin:"1%"}},null,8,["type"])]))),256)),createBaseVNode("div",_hoisted_13$4,[createBaseVNode("div",_hoisted_14$4,[createVNode(_sfc_main$l,{id:a.value,width:32,height:32},null,8,["id"]),createBaseVNode("div",_hoisted_15$3,[createBaseVNode("span",_hoisted_16$3,toDisplayString(a.value==="none"?"\u6CA1\u6709\u9053\u5177":unref(s)[a.value].name),1),createBaseVNode("span",null,toDisplayString(a.value==="none"?"\u6C38\u4E45\u9053\u5177":(P=unref(getClsName)(unref(s)[a.value].cls))!=null?P:"\u6C38\u4E45\u9053\u5177"),1)])]),_hoisted_17$2,createVNode(B,{dashed:"",style:{"border-color":"#ddd4"}}),createBaseVNode("div",_hoisted_18$2,[_hoisted_19$2,createVNode(Scroll,{id:"desc-text"},{default:withCtx(()=>[unref(l).value.startsWith("!!html")?(openBlock(),createElementBlock("div",{key:1,innerHTML:unref(l).value.slice(6)},null,8,_hoisted_21$2)):(openBlock(),createElementBlock("div",_hoisted_20$2,toDisplayString(unref(l).value),1))]),_:1})])])])])}}}),toolbox_vue_vue_type_style_index_0_scoped_88c6bbe5_lang="",Toolbox=_export_sfc(_sfc_main$d,[["__scopeId","data-v-88c6bbe5"]]),index$2="",index$1="";function getEquips(){return Object.entries(core.status.hero.items.equips)}function getAddStatus(e){const t=Object.assign({},e.value,e.percentage),i=Object.keys(t);return createVNode("div",{class:"equip-add-detail"},[i.map(n=>{var a,r;const s=((a=e.value[n])!=null?a:0)+core.status.hero[n]*((r=e.percentage[n])!=null?r:0);return createVNode("span",{style:"display: flex"},[createVNode("span",{style:"flex-basis: 50%"},[core.getStatusLabel(n)]),createTextVNode("\xA0\xA0\xA0\xA0"),createVNode("span",{style:{color:s>0?"lightgreen":"lightsalmon"}},[s>0?`+${s}`:s])])})])}function getNowStatus(e,t=!1){return createVNode("div",{id:"hero-status"},[["hp","lv","atk","def","mdef","mana","hpmax","money"].map(n=>{var r,l,c;let s;n==="lv"?s=(r=core.getLvName())!=null?r:"":s=(l=core.getRealStatus(n))==null?void 0:l.toString();let a=0;if(has(e)){a+=(c=e.value[n])!=null?c:0;const d=e.percentage[n]*core.getStatus(n);a+=isNaN(d)?0:d}return t&&(a=-a),createVNode("div",{class:"hero-status-one"},[createVNode("span",{class:"hero-status-label"},[core.getStatusLabel(n)]),createVNode("div",{class:"hero-status-value"},[createVNode("span",{style:"margin-right: 20%"},[s]),a!==0&&createVNode("span",{style:{color:a>0?"lightgreen":"lightsalmon"}},[a>0?"+"+a:"-"+-a])])])})])}const _hoisted_1$c={id:"equipbox"},_hoisted_2$a={id:"tools"},_hoisted_3$a={id:"equipbox-main"},_hoisted_4$7={id:"equip-list"},_hoisted_5$6={id:"filter"},_hoisted_6$6={key:0},_hoisted_7$5={key:1},_hoisted_8$4=["selected","onMousedown","onTouchstart","onClick"],_hoisted_9$4={class:"equip-icon"},_hoisted_10$4={class:"equip-name"},_hoisted_11$4={id:"equip-status"},_hoisted_12$3={id:"equip-status-main"},_hoisted_13$3={id:"equip-now"},_hoisted_14$3={id:"equip-now-div"},_hoisted_15$2=["draged","access","selected","onMouseenter","onClick"],_hoisted_16$2={key:0,id:"equip-hero"},_hoisted_17$1={id:"hero-icon"},_hoisted_18$1={id:"hero-status"},_hoisted_19$1={id:"equip-desc"},_hoisted_20$1={id:"equip-icon"},_hoisted_21$1={id:"equip-type"},_hoisted_22$1={id:"equip-add"},_hoisted_23$1={id:"equip-desc-text"},_hoisted_24$1={key:0},_hoisted_25$1=["innerHTML"],_hoisted_26$1={id:"icon-drag"},_sfc_main$c=defineComponent({__name:"equipbox",setup(e){const t=ref(getEquips()),i=ref("all"),n=core.material.items,s=ref(0),a=ref(!1),r=core.status.globalAttribute.equipName,l=ref(core.status.hero.equipment),c=ref(!1),d=ref(!1),u=ref(-1),h=ref("down"),f=ref("none"),g=ref("value"),m=["none","atk","def","hpmax","mana"],w=core.getStatusLabel;watch(h,it=>{s.value=N.value.length-s.value-1}),watch(f,it=>{s.value=0}),watch(g,it=>{s.value=0});const _=computed(()=>{const it=N.value[s.value],tt={name:"\u6CA1\u6709\u9009\u62E9\u88C5\u5907",cls:"equip",text:"\u6CA1\u6709\u9009\u62E9\u88C5\u5907",equip:{type:"\u65E0",value:{},percentage:{},animate:""}};if(a.value){const lt=l.value[s.value],ut=core.material.items[lt];return has(ut)?ut:tt}return has(it)?n[it[0]]:tt}),D=computed(()=>getAddStatus(_.value.equip,a.value)),B=computed(()=>_.value.text.startsWith("!!html")?ref(_.value.text):type(_.value.text,25,C("sin","out"),!0)),P=computed(()=>getNowStatus(_.value.equip,a.value)),N=computed(()=>{const it=h.value,tt=f.value,lt=g.value,ut=t.value.filter(at=>{const pt=n[at[0]].equip,gt=pt.type;return tt!=="none"&&!has(pt[lt][tt])?!1:i.value==="all"?!0:typeof gt=="string"?gt===i.value:core.status.globalAttribute.equipName[gt]===i.value});return tt==="none"?ut:it==="down"?ut.sort((at,pt)=>{const gt=n[at[0]].equip,bt=n[pt[0]].equip;return gt[lt][tt]-bt[lt][tt]}):ut.sort((at,pt)=>{const gt=n[at[0]].equip;return n[pt[0]].equip[lt][tt]-gt[lt][tt]})});function L(){h.value==="down"?h.value="up":h.value="down"}function U(){core.plugin.equipOpened.value=!1}function H(it){var tt;if(it===s.value&&c.value){const lt=(tt=N.value[s.value])==null?void 0:tt[0];if(!core.canEquip(lt)){tip$1("warn","\u65E0\u6CD5\u88C5\u5907\uFF01");return}core.loadEquip(lt),Y(),c.value=!1}c.value=!0}function W(it,tt=!1){it!==s.value&&!tt&&(c.value=!1),tt&&(c.value=!1),tt&&a.value===tt&&s.value===it&&(core.unloadEquip(it),Y()),a.value=tt,s.value=it}function K(it){var lt,ut;if(it<0)return!1;const tt=(lt=_.value.equip)==null?void 0:lt.type;return!core.canEquip((ut=N.value[s.value])==null?void 0:ut[0])||!has(tt)?!1:typeof tt=="number"?it===tt:r[it]===tt}function G(){var ut;const it=u.value;if(it<0)return;if(!K(it)){tip$1("warn","\u65E0\u6CD5\u88C5\u5907\uFF01");return}const tt=l.value[it],lt=(ut=N.value[s.value])==null?void 0:ut[0];core.items._realLoadEquip(it,lt,tt),Y()}function Y(){l.value=core.status.hero.equipment,t.value=getEquips()}function J(){const it=Array.from(document.querySelectorAll(".equip"));useDrag(it,st,(tt,lt)=>{ot=tt,ht=lt},()=>{d.value&&(d.value=!1,G())},!0)}let[ot,ht]=[0,0];function st(it,tt,lt){if((it-ot)**2+(tt-ht)**2>10**2&&!d.value&&(d.value=!0),d.value){const ut=document.getElementById("icon-drag");ut.style.left=`${it-24}px`,ut.style.top=`${tt-24}px`}}function ct(it,tt){it.stopPropagation(),u.value=tt}function dt(it){it.stopPropagation(),u.value=-1}async function mt(){const it=core.plugin.transition.value;core.plugin.transition.value=!1,U(),await S(50),core.plugin.toolOpened.value=!0,core.plugin.transition.value=it}function ft(it){const tt=keycode(it.keyCode);(tt===KeyCode.KeyQ||tt===KeyCode.KeyX||tt===KeyCode.Escape)&&U()}return watch(N,it=>{J()}),onMounted(async()=>{J(),core.plugin.transition.value?await S(600):await S(50),document.addEventListener("keyup",ft)}),onUnmounted(()=>{cancelGlobalDrag(st),document.removeEventListener("keyup",ft)}),(it,tt)=>{var pt,gt,bt,vt,wt,Bt;const lt=SelectOption,ut=__unplugin_components_1$1,at=__unplugin_components_1;return openBlock(),createElementBlock(Fragment,null,[createBaseVNode("div",_hoisted_1$c,[createBaseVNode("div",_hoisted_2$a,[createBaseVNode("span",{class:"button-text tools",onClick:U},[createVNode(unref(LeftOutlined)),createTextVNode(" \u8FD4\u56DE\u6E38\u620F")]),createBaseVNode("span",{class:"button-text tools",onClick:mt},[createTextVNode("\u9053\u5177\u680F "),createVNode(unref(RightOutlined))])]),createBaseVNode("div",_hoisted_3$a,[createBaseVNode("div",_hoisted_4$7,[createBaseVNode("div",_hoisted_5$6,[createVNode(ut,{value:f.value,"onUpdate:value":tt[0]||(tt[0]=_t=>f.value=_t),class:"select"},{default:withCtx(()=>[(openBlock(),createElementBlock(Fragment,null,renderList(m,_t=>createVNode(lt,{value:_t},{default:withCtx(()=>[createTextVNode(toDisplayString(_t==="none"?"\u6240\u6709":unref(w)(_t)),1)]),_:2},1032,["value"])),64))]),_:1},8,["value"]),createVNode(at,{type:"vertical",class:"divider"}),createVNode(ut,{value:g.value,"onUpdate:value":tt[1]||(tt[1]=_t=>g.value=_t),class:"select"},{default:withCtx(()=>[createVNode(lt,{value:"value"},{default:withCtx(()=>[createTextVNode("\u6570\u503C")]),_:1}),createVNode(lt,{value:"percentage"},{default:withCtx(()=>[createTextVNode("\u767E\u5206\u6BD4")]),_:1})]),_:1},8,["value"]),createVNode(at,{type:"vertical",class:"divider"}),createBaseVNode("span",{onClick:tt[2]||(tt[2]=_t=>L()),class:"button-text",id:"sort-type"},[h.value==="down"?(openBlock(),createElementBlock("span",_hoisted_6$6,[createVNode(unref(SortAscendingOutlined))])):(openBlock(),createElementBlock("span",_hoisted_7$5,[createVNode(unref(SortDescendingOutlined))]))])]),createVNode(at,{dashed:"",style:{"border-color":"#ddd4",margin:"1vh 0 1vh 0"}}),createVNode(Scroll,{id:"equip-scroll"},{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(N),([_t,kt],yt)=>(openBlock(),createElementBlock("div",{class:"equip selectable",selected:s.value===yt&&!a.value,onMousedown:At=>W(yt),onTouchstart:At=>W(yt),onClick:At=>H(yt)},[createBaseVNode("div",_hoisted_9$4,[createVNode(_sfc_main$l,{id:_t!=null?_t:"none",width:32,height:32,noborder:!0},null,8,["id"]),createBaseVNode("span",_hoisted_10$4,toDisplayString(unref(n)[_t].name),1)]),createBaseVNode("span",null,"\xD7\xA0"+toDisplayString(kt),1)],40,_hoisted_8$4))),256))]),_:1})]),createBaseVNode("div",_hoisted_11$4,[createVNode(at,{class:"divider",type:unref(isMobile)?"horizontal":"vertical",dashed:"",style:{"border-color":"#ddd4"}},null,8,["type"]),createBaseVNode("div",_hoisted_12$3,[createBaseVNode("div",_hoisted_13$3,[createVNode(Scroll,{style:normalizeStyle({height:unref(isMobile)?"10vh":"30vh"})},{default:withCtx(()=>[createBaseVNode("div",_hoisted_14$3,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(r),(_t,kt)=>{var yt;return openBlock(),createElementBlock("div",{class:"equip-now-one draginable selectable",draged:d.value,access:K(kt),selected:a.value&&s.value===kt,onMouseenter:At=>ct(At,kt),onMouseleave:dt,onClick:At=>W(kt,!0)},[createVNode(_sfc_main$l,{id:(yt=l.value[kt])!=null?yt:"none"},null,8,["id"]),createBaseVNode("span",null,toDisplayString(_t),1)],40,_hoisted_15$2)}),256))])]),_:1},8,["style"])]),createVNode(at,{dashed:"",style:{"border-color":"#ddd4",margin:"1vh 0 1vh 0"}}),unref(isMobile)?createCommentVNode("",!0):(openBlock(),createElementBlock("div",_hoisted_16$2,[createBaseVNode("div",_hoisted_17$1,[createVNode(_sfc_main$l,{id:"hero",width:48,height:64,noborder:""})]),createBaseVNode("div",_hoisted_18$1,[(openBlock(),createBlock(resolveDynamicComponent(unref(P))))])]))]),unref(isMobile)?createCommentVNode("",!0):(openBlock(),createBlock(at,{key:0,class:"divider",type:"vertical",dashed:"",style:{"border-color":"#ddd4"}}))]),createBaseVNode("div",_hoisted_19$1,[createBaseVNode("div",_hoisted_20$1,[createVNode(_sfc_main$l,{id:a.value?(pt=l.value[s.value])!=null?pt:"none":(bt=(gt=unref(N)[s.value])==null?void 0:gt[0])!=null?bt:"none"},null,8,["id"]),createBaseVNode("span",null,toDisplayString(unref(_).name),1)]),createBaseVNode("div",_hoisted_21$1,[createBaseVNode("span",null,"\u88C5\u5907\u5B54\uFF1A"+toDisplayString((vt=unref(_).equip)==null?void 0:vt.type),1)]),createVNode(at,{dashed:"",style:{"border-color":"#ddd4",margin:"1vh 0 1vh 0"}}),createBaseVNode("div",_hoisted_22$1,[createBaseVNode("span",{style:normalizeStyle({"font-size":unref(isMobile)?"3.8vw":"3vh"}),id:"title"},"\u589E\u51CF\u5C5E\u6027",4),createVNode(Scroll,{style:{width:"100%",height:"100%"}},{default:withCtx(()=>[(openBlock(),createBlock(resolveDynamicComponent(unref(D))))]),_:1})]),createVNode(at,{dashed:"",style:{"border-color":"#ddd4",margin:"1vh 0 1vh 0"}}),createBaseVNode("div",_hoisted_23$1,[createBaseVNode("span",{style:normalizeStyle({"font-size":unref(isMobile)?"3.8vw":"3vh"}),id:"title"},"\u88C5\u5907\u4ECB\u7ECD",4),createVNode(Scroll,{id:"desc-text",style:{height:"100%",width:"100%"}},{default:withCtx(()=>[unref(B).value.startsWith("!!html")?(openBlock(),createElementBlock("div",{key:1,innerHTML:unref(B).value.slice(6)},null,8,_hoisted_25$1)):(openBlock(),createElementBlock("div",_hoisted_24$1,toDisplayString(unref(B).value),1))]),_:1})])])])]),createBaseVNode("div",_hoisted_26$1,[d.value?(openBlock(),createBlock(_sfc_main$l,{key:0,class:"drag-icon",id:(Bt=(wt=unref(N)[s.value])==null?void 0:wt[0])!=null?Bt:"none",width:48,height:48,noborder:""},null,8,["id"])):createCommentVNode("",!0)])],64)}}}),equipbox_vue_vue_type_style_index_0_scoped_4fac9519_lang="",Equipbox=_export_sfc(_sfc_main$c,[["__scopeId","data-v-4fac9519"]]),transition$2=ref(!1),itemDetail$1=ref(!0),autoSkill$1=ref(!0),autoScale$1=ref(!0);watch(transition$2,e=>{core.plugin.transition.value=e,core.setLocalStorage("transition",e)});watch(itemDetail$1,e=>{flags.itemDetail=e,core.updateStatusBar()});watch(autoSkill$1,e=>{flags.autoSkill=e,core.updateStatusBar(),core.status.route.push(`set:autoSkill:${e}`)});watch(autoScale$1,e=>{core.setLocalStorage("autoScale",e)});function reset(){const e=core.getLocalStorage("transition",!1);transition$2.value=e,core.plugin.transition.value=transition$2.value,autoScale$1.value=core.getLocalStorage("autoScale",!0)}function resetFlag(){var e,t;(e=flags.autoSkill)!=null||(flags.autoSkill=!0),(t=flags.itemDetail)!=null||(flags.itemDetail=!0),itemDetail$1.value=!!flags.itemDetail,autoSkill$1.value=!!flags.autoSkill}function init$5(){return{resetSettings:reset,resetFlagSettings:resetFlag}}const transition$1={text:"\u754C\u9762\u52A8\u753B",desc:["\u662F\u5426\u5C55\u793A\u5F53\u4E00\u4E2Aui\u754C\u9762\uFF0C\u5982\u602A\u7269\u624B\u518C\u7B49\u7684\u6253\u5F00\u4E0E\u5173\u95ED\u65F6\u7684\u52A8\u753B\u3002\u5F53\u6B64\u9879\u5F00\u542F\u65F6\uFF0C","\u6240\u6709\u754C\u9762\u88AB\u6253\u5F00\u6216\u5173\u95ED\u65F6\u90FD\u4F1A\u5C55\u793A\u52A8\u753B\uFF0C\u5426\u5219\u4F1A\u76F4\u63A5\u5C55\u793A\u51FA\u6765"]},itemDetail={text:"\u5B9D\u77F3\u8840\u74F6\u663E\u4F24",desc:["\u662F\u5426\u5728\u5730\u56FE\u4E0A\u663E\u793A\u5B9D\u77F3\u8840\u74F6\u88C5\u5907\u7B49\u589E\u52A0\u7684\u5C5E\u6027\u503C"]},autoSkill={text:"\u81EA\u52A8\u5207\u6362\u6280\u80FD",desc:["\u5F00\u542F\u540E\uFF0C\u6253\u602A\u7269\u7684\u65F6\u5019\u4F1A\u81EA\u52A8\u9009\u62E9\u4F24\u5BB3\u6700\u4F4E\u7684\u6280\u80FD\u3002\u540C\u65F6\u663E\u4F24\u4E5F\u4F1A\u663E\u793A\u6B64\u72B6\u6001\u4E0B\u7684\u4F24\u5BB3\uFF0C","\u4E34\u754C\u4E5F\u4F1A\u8003\u8651\u6280\u80FD\u5728\u5185"]},autoScale={text:"\u81EA\u52A8\u653E\u7F29",desc:["\u5F00\u542F\u540E\uFF0C\u6BCF\u6B21\u8FDB\u5165\u6E38\u620F\u65F6\u4F1A\u81EA\u52A8\u7F29\u653E\u6E38\u620F\u753B\u9762\u81F3\u5408\u9002\u503C\u3002\u8BE5\u9879\u53EA\u5BF9\u7535\u8111\u7AEF\u6709\u6548\u3002","
","
","\u7F29\u653E\u539F\u5219\u5982\u4E0B\uFF1A","
","1. \u9996\u5148\u5C1D\u8BD5\u7F29\u653E\u81F3\u6700\u5927\u7F29\u653E\u6BD4\u4F8B","
","2. \u5982\u679C\u7F29\u653E\u540E\u6E38\u620F\u753B\u9762\u9AD8\u5EA6\u9AD8\u4E8E\u9875\u9762\u9AD8\u5EA6\u768495%\uFF0C\u90A3\u4E48\u7F29\u5C0F\u4E00\u4E2A\u7F29\u653E\u6BD4\u4F8B\uFF0C\u5426\u5219\u4FDD\u6301\u6700\u5927\u6BD4\u4F8B"]},settingInfo={transition:transition$1,itemDetail,autoSkill,autoScale},_hoisted_1$b={class:"colomn"},_hoisted_2$9={class:"tools"},_hoisted_3$9=["id"],_sfc_main$b=defineComponent({__name:"colomn",props:{width:null,height:null,left:null,right:null},emits:["close"],setup(e,{emit:t}){const i=e,n=(1e8*Math.random()).toFixed(0);let s,a,r;function l(){s=document.getElementById(`column-${n}`),a=document.getElementById(`column-left-${n}`),r=document.getElementById(`column-right-${n}`),has(i.width)&&!isMobile&&(s.style.width=`${i.width}%`),has(i.height)&&(s.style.height=`${i.height}%`),has(i.left)&&(a.style.flexBasis=`${i.left}%`),has(i.right)&&(r.style.flexBasis=`${i.right}%`)}function c(d){const u=keycode(d.keyCode);(u===KeyCode.Escape||u===KeyCode.KeyX)&&t("close")}return onMounted(async()=>{l(),await S(50),core.plugin.transition.value&&await S(600),document.addEventListener("keyup",c)}),onUpdated(l),onUnmounted(()=>{document.removeEventListener("keyup",c)}),(d,u)=>{const h=__unplugin_components_1;return openBlock(),createElementBlock("div",_hoisted_1$b,[createBaseVNode("div",_hoisted_2$9,[createBaseVNode("span",{class:"button-text",onClick:u[0]||(u[0]=f=>t("close"))},[createVNode(unref(LeftOutlined)),createTextVNode(" \u8FD4\u56DE\u6E38\u620F")])]),createBaseVNode("div",{class:"column-main",id:`column-${unref(n)}`},[createVNode(Scroll,{class:"column-left",id:`column-left-${unref(n)}`},{default:withCtx(()=>[renderSlot(d.$slots,"left",{},void 0,!0)]),_:3},8,["id"]),createVNode(h,{class:"divider",dashed:"",style:{"border-color":"#ddd4"},type:unref(isMobile)?"horizontal":"vertical"},null,8,["type"]),createVNode(Scroll,{class:"column-right",id:`column-right-${unref(n)}`},{default:withCtx(()=>[renderSlot(d.$slots,"right",{},void 0,!0)]),_:3},8,["id"])],8,_hoisted_3$9)])}}}),colomn_vue_vue_type_style_index_0_scoped_682173f1_lang="",Column=_export_sfc(_sfc_main$b,[["__scopeId","data-v-682173f1"]]),_hoisted_1$a={id:"setting-list"},_hoisted_2$8=["selected"],_hoisted_3$8=["selected"],_hoisted_4$6=["selected"],_hoisted_5$5=["selected"],_hoisted_6$5=["innerHTML"],_sfc_main$a=defineComponent({__name:"settings",setup(e){const t=ref("transition"),i=computed(()=>splitText(settingInfo[t.value].desc));function n(){core.plugin.settingsOpened.value=!1}function s(a){if(t.value!==a){t.value=a;return}a==="transition"?transition$2.value=!transition$2.value:a==="itemDetail"?itemDetail$1.value=!itemDetail$1.value:a==="autoSkill"?autoSkill$1.value=!autoSkill$1.value:a==="autoScale"&&(autoScale$1.value=!autoScale$1.value)}return(a,r)=>(openBlock(),createBlock(Column,{width:60,height:60,onClose:n},{left:withCtx(()=>[createBaseVNode("div",_hoisted_1$a,[createBaseVNode("span",{class:"selectable",selected:t.value==="transition",onClick:r[0]||(r[0]=l=>s("transition"))},"\u754C\u9762\u52A8\u753B:\xA0\xA0\xA0"+toDisplayString(unref(transition$2)?"ON":"OFF"),9,_hoisted_2$8),createBaseVNode("span",{class:"selectable",selected:t.value==="itemDetail",onClick:r[1]||(r[1]=l=>s("itemDetail"))},"\u5B9D\u77F3\u8840\u74F6\u663E\u4F24:\xA0\xA0\xA0"+toDisplayString(unref(itemDetail$1)?"ON":"OFF"),9,_hoisted_3$8),createBaseVNode("span",{class:"selectable",selected:t.value==="autoSkill",onClick:r[2]||(r[2]=l=>s("autoSkill"))},"\u81EA\u52A8\u5207\u6362\u6280\u80FD:\xA0\xA0\xA0"+toDisplayString(unref(autoSkill$1)?"ON":"OFF"),9,_hoisted_4$6),createBaseVNode("span",{class:"selectable",selected:t.value==="autoScale",onClick:r[3]||(r[3]=l=>s("autoScale"))},"\u81EA\u52A8\u653E\u7F29:\xA0\xA0\xA0"+toDisplayString(unref(autoScale$1)?"ON":"OFF"),9,_hoisted_5$5)])]),right:withCtx(()=>[createBaseVNode("span",{innerHTML:unref(i)},null,8,_hoisted_6$5)]),_:1}))}}),settings_vue_vue_type_style_index_0_scoped_1a46d8ac_lang="",Settings=_export_sfc(_sfc_main$a,[["__scopeId","data-v-1a46d8ac"]]),tip={text:"\u6CE8\u610F\u4E8B\u9879",condition:"true",desc:["\u8FD9\u91CC\u663E\u793A\u672C\u5854\u4E2D\u9700\u8981\u6CE8\u610F\u7684\u4E8B\u9879\u3002","
","
",'1. ',"\u672C\u767E\u79D1\u5168\u4E66\u5B57\u6570\u5F88\u591A\uFF0C\u53EF\u4EE5\u9009\u62E9\u6027\u5730\u9605\u8BFB\u3002","
","
",'2. \u672C\u5854\u4E2D\u51E0\u4E4E\u6240\u6709 ui \u90FD\u53EF\u4EE5\u7EB5\u5411\u6EDA\u52A8\uFF0C\u5982\u679C\u53D1\u73B0\u663E\u793A\u4E0D\u5168\uFF0C',"\u53EF\u4EE5\u5C1D\u8BD5\u4E0A\u4E0B\u62D6\u52A8\uFF0C\u5C31\u50CF\u6D4F\u89C8\u7F51\u9875\u4E00\u6837\u3002\u7535\u8111\u7AEF\u8FD8\u53EF\u4EE5\u4F7F\u7528\u6EDA\u8F6E\u4E0A\u4E0B\u6EDA\u52A8\u3002","\u5927\u90E8\u5206\u53EF\u4EE5\u7EB5\u5411\u6EDA\u52A8\u7684 ui \u90FD\u4F1A\u5728\u53F3\u65B9\u6709\u4E00\u4E2A\u6EDA\u52A8\u6761\uFF0C\u4E5F\u53EF\u4EE5\u62D6\u52A8\u5B83\u8FDB\u884C\u6EDA\u52A8\uFF0C\u4F8B\u5982\u672C\u767E\u79D1\u5168\u4E66\u7684\u6761\u76EE\u5217\u8868\u548C","\u6761\u76EE\u8BF4\u660E\u90FD\u662F\u53EF\u4EE5\u901A\u8FC7\u4E0A\u8FF0\u65B9\u5F0F\u6EDA\u52A8\u7684\u3002","
","
",'3. \u672C\u767E\u79D1\u5168\u4E66\u7684\u5185\u5BB9\u4F1A\u968F\u7740\u6E38\u620F\u7684\u63A8\u8FDB\u800C\u589E\u52A0\u65B0\u5185\u5BB9\uFF0C',"\u540C\u65F6\u6BCF\u6B21\u589E\u52A0\u65B0\u5185\u5BB9\u65F6\u90FD\u4F1A\u6709\u63D0\u793A\u3002","
","
","4. \u672C\u5854\u4E3B\u8981\u9762\u5411\u7535\u8111\u7AEF\u8BBE\u8BA1\uFF0C",'\u5EFA\u8BAE\u4F7F\u7528\u7535\u8111\u6E38\u73A9\u4EE5\u83B7\u5F97\u66F4\u597D\u7684\u6E38\u620F\u4F53\u9A8C\u3002\u4F46\u662F\u624B\u673A\u4F9D\u7136\u53EF\u4EE5\u6E38\u73A9\u672C\u5854\uFF0C',"\u4F46\u90E8\u5206\u64CD\u4F5C\u53EF\u80FD\u4E0D\u662F\u5F88\u65B9\u4FBF\uFF0Cui \u4E5F\u53EF\u80FD\u4E0D\u662F\u5F88\u7F8E\u89C2\uFF0C\u4E0D\u8FC7\u4F9D\u7136\u53EF\u4EE5\u5B8C\u6574\u4F53\u9A8C\u672C\u6E38\u620F\u3002","
","
",'5. \u5BF9\u4E8E\u624B\u673A\u7AEF\uFF0C\u53EF\u4EE5\u70B9\u51FB\u53F3\u4E0B\u89D2\u7684\u96BE\u5EA6\u6587\u5B57\u6765\u5207\u6362\u5DE5\u5177\u680F\u81F3\u6570\u5B57\u952E\u3002',"\u8FD9\u6837\uFF0C\u4F60\u53EF\u4EE5\u66F4\u52A0\u65B9\u4FBF\u5730\u8FDB\u884C\u4F7F\u7528\u6280\u80FD\u7B49\u64CD\u4F5C\u3002","
","
","6. \u672C\u5854\u4E2D\u51E0\u4E4E\u6240\u6709 ui \u5728\u6253\u5F00\u65F6\u90FD\u4F1A\u6709\u4E00\u4E2A0.6s\u7684\u52A8\u753B\uFF0C\u5982\u679C\u4E0D\u60F3\u8981\uFF0C\u53EF\u4EE5\u5728\u5F00\u5934\u6361\u7684\u7CFB\u7EDF\u8BBE\u7F6E\u91CC\u9762\u5173\u95ED\uFF08\u9ED8\u8BA4\u5173\u95ED\uFF09\u3002","\u540C\u65F6\uFF0C\u51E0\u4E4E\u6240\u6709 ui \u7684\u9000\u51FA\u6309\u94AE\u90FD\u5728\u5DE6\u4E0A\u89D2\u3002"]},about={text:"\u5173\u4E8E\u6E38\u620F",condition:"true",desc:["\u4F7F\u7528\u6837\u677F\uFF1AVite \u9B54\u5854\u6837\u677F","
","\u6837\u677F\u7248\u672C\uFF1AV2.10.0","
",'\u6E38\u620F\u5F00\u6E90\u5730\u5740\uFF1A',"https://github.com/unanmed/HumanBreak","
","\u6E38\u620F\u4F5C\u8005\uFF1A\u53E4\u7960","
","BGM\u6765\u6E90\uFF1A\u7F51\u6613\u4E91\u97F3\u4E50","
","\u7D20\u6750\u6765\u6E90\uFF1A\u5927\u7D20\u6750\u5E93\u3001\u7231\u7ED9\u7F51\u3001\u7F51\u7AD9\u7D20\u6750\u5E93","
","\u7279\u522B\u9E23\u8C22\uFF1A\u65E0\u540D\u7532\u70F7\u83CC","
","\u6D4B\u8BD5\uFF1A"]},tutorial={text:"\u65B0\u624B\u6559\u7A0B",condition:"true",desc:["\u672C\u6761\u76EE\u662F\u9B54\u5854\u6E38\u620F\u7684\u65B0\u624B\u6559\u7A0B\uFF0C\u5982\u679C\u5BF9\u9B54\u5854\u6709\u4E00\u5B9A\u7684\u4E86\u89E3\uFF0C\u53EF\u4EE5\u76F4\u63A5\u5FFD\u7565\u3002","
","
",'\u9B54\u5854\u662F\u4E00\u79CD\u56FA\u5B9A\u6570\u503Crpg\u6E38\u620F\uFF0C\u5728\u6253\u602A\u7684\u65F6\u5019\uFF0C\u9075\u5FAA\u6211\u6253\u4F60\u4E00\u4E0B\uFF0C\u4F60\u6253\u6211\u4E00\u4E0B',"\u7684\u539F\u5219\uFF0C\u9020\u6210\u7684\u4F24\u5BB3\u662F\u5DF1\u65B9\u653B\u51FB\u51CF\u53BB\u5BF9\u65B9\u9632\u5FA1\uFF0C\u6700\u540E\u602A\u7269\u7684\u4F24\u5BB3\u4FBF\u662F\u4F60\u5728\u6218\u6597\u4E2D\u5931\u53BB\u7684\u751F\u547D\u503C\u3002\u5F53\u7136\uFF0C\u4E3A\u4E86\u6E38\u620F\u4F53\u9A8C\uFF0C","\u6218\u6597\u8FC7\u7A0B\u4F1A\u88AB\u7701\u7565\u3002","
","
","\u5B9D\u77F3\u53EF\u4EE5\u589E\u52A0\u4F60\u7684\u5C5E\u6027\uFF0C\u5728\u5927\u90E8\u5206\u9B54\u5854\u4E2D\uFF0C\u7EA2\u5B9D\u77F3\u589E\u52A0\u653B\u51FB\uFF0C\u84DD\u5B9D\u77F3\u589E\u52A0\u9632\u5FA1\uFF0C\u672C\u5854\u4E5F\u4E0D\u4F8B\u5916\u3002\u8840\u74F6\u53EF\u4EE5\u589E\u52A0\u4F60\u7684\u751F\u547D\u503C\u3002",'\u4E00\u822C\u60C5\u51B5\u4E0B\uFF0C\u62FE\u53D6\u5B9D\u7269\u7684\u4F18\u5148\u7EA7\u662F\u7EA2\u5B9D\u77F3 > \u84DD\u5B9D\u77F3 > \u8840\u74F6\uFF0C',"\u4F46\u90E8\u5206\u60C5\u51B5\u53EF\u80FD\u4E0D\u662F\u8FD9\u6837\uFF0C\u8FD9\u9700\u8981\u4F60\u81EA\u5DF1\u7684\u6E38\u73A9\u7ECF\u9A8C\u7B49\u3002","
","
","\u672C\u5854\u8FD8\u62E5\u6709\u5347\u7EA7\u673A\u5236\uFF0C\u5347\u7EA7\u65F6\u80FD\u591F\u7ED9\u4F60\u589E\u52A0\u5927\u91CF\u7684\u5C5E\u6027\uFF0C\u56E0\u6B64\uFF0C\u4E00\u822C\u60C5\u51B5\u4E0B\u5F53\u4F60\u63A5\u8FD1\u5347\u7EA7\u65F6\uFF0C\u9700\u8981\u5C3D\u5FEB\u6253\u602A\u5347\u7EA7\u3002","
","
","\u7136\u540E\u662F\u95E8\u3002\u5728\u9B54\u5854\u4E2D\uFF0C\u5F88\u591A\u95E8\u90FD\u4E0D\u662F\u5FC5\u5F00\u7684\u95E8\uFF0C\u5B83\u4EEC\u7684\u4F5C\u7528\u4E00\u822C\u662F\u53EF\u4EE5\u8EB2\u5F00\u602A\u7269\u62FF\u5B9D\u77F3\uFF0C\u6216\u8005\u95E8\u91CC\u9762\u6709\u8840\u74F6\u7B49\u3002","\u5F53\u4F60\u8840\u91CF\u8DB3\u591F\u65F6\uFF0C\u8FD9\u4E9B\u95E8\u53EF\u4EE5\u4E0D\u7528\u5F00\uFF0C\u4E0D\u7136\u53EF\u80FD\u4F1A\u6709\u5FC5\u5F00\u7684\u95E8\u65E0\u6CD5\u5F00\u542F\u5BFC\u81F4\u5361\u5173\u3002\u5BF9\u4E8E\u94A5\u5319\uFF0C\u6BCF\u79CD\u989C\u8272\u7684\u94A5\u5319\u5F00\u5BF9\u5E94\u989C\u8272\u7684\u95E8\uFF0C",'\u4EF7\u503C\u662F\u7EA2 > \u84DD > \u9EC4\u3002',"
","
","\u4E3A\u4E86\u66F4\u52A0\u65B9\u4FBF\uFF0C\u672C\u5854\u589E\u52A0\u4E86\u5B9D\u77F3\u8840\u74F6\u663E\u793A\u6570\u636E\u7684\u529F\u80FD\uFF0C\u8FD9\u6837\u4F60\u53EF\u4EE5\u6E05\u6670\u5730\u77E5\u9053\u6BCF\u4E2A\u5B9D\u77F3\u589E\u52A0\u4E86\u591A\u5C11\u5C5E\u6027\u3002","
","
","\u4E0B\u9762\u662F\u52C7\u58EB\u57FA\u7840\u5C5E\u6027\u7684\u8BF4\u660E:","
",'1. \u751F\u547D\u503C\uFF1A',"\u52C7\u58EB\u7684\u8840\u91CF\uFF0C\u5F53\u5B83\u5F52\u96F6\u65F6\uFF0C\u6E38\u620F\u7ED3\u675F","
",'2. \u653B\u51FB\uFF1A',"\u52C7\u58EB\u7684\u653B\u51FB\uFF0C\u653B\u51FB\u8D8A\u9AD8\uFF0C\u6BCF\u56DE\u5408\u5BF9\u602A\u7269\u9020\u6210\u7684\u4F24\u5BB3\u8D8A\u9AD8","
",'3. \u9632\u5FA1\uFF1A',"\u52C7\u58EB\u7684\u9632\u5FA1\uFF0C\u9632\u5FA1\u8D8A\u9AD8\uFF0C\u602A\u7269\u6BCF\u56DE\u5408\u5BF9\u4F60\u9020\u6210\u7684\u4F24\u5BB3\u8D8A\u4F4E","
",'4. \u7ECF\u9A8C\uFF1A',"\u52C7\u58EB\u7684\u7ECF\u9A8C\uFF0C\u5230\u8FBE\u4E00\u5B9A\u503C\u540E\u4F1A\u5347\u7EA7\u3002\u672C\u5854\u5728\u72B6\u6001\u680F\u4E2D\u663E\u793A\u4E3A\u8DDD\u79BB\u5347\u7EA7\u5269\u4F59\u7684\u7ECF\u9A8C","
",'5. \u91D1\u5E01\uFF1A',"\u52C7\u58EB\u7684\u91D1\u5E01\uFF0C\u53EF\u4EE5\u7528\u4E8E\u8D2D\u4E70\u7269\u54C1\u3002\u672C\u5854\u4E2D\u5728\u8FDB\u5165\u7B2C\u4E8C\u7AE0\u540E\u4F1A\u6709\u7528","
",'6. \u62A4\u76FE\uFF1A',"\u52C7\u58EB\u7684\u62A4\u76FE\uFF0C\u7528\u5904\u662F\u80FD\u591F\u5728\u6218\u540E\u51CF\u5C11\u540C\u7B49\u6570\u503C\u7684\u4F24\u5BB3\uFF0C\u5728\u672C\u5854\u4E2D\u53EF\u4EE5\u4F7F\u4F24\u5BB3\u53D8\u4E3A\u8D1F\u503C\u3002\u672C\u5854\u4E2D\uFF0C\u5728\u70B9\u5F00\u65E0\u4E0A\u4E4B\u76FE\u6280\u80FD\u540E\uFF0C","\u667A\u6167\u4F1A\u5145\u5F53\u62A4\u76FE\u3002\u66F4\u591A\u4FE1\u606F\u53EF\u4EE5\u67E5\u770B\u201C\u52C7\u58EB\u5C5E\u6027\u201D\u6761\u76EE\u3002"]},noun={text:"\u540D\u8BCD\u89E3\u91CA",condition:"true",desc:["\u672C\u6761\u76EE\u4F1A\u89E3\u91CA\u8BF8\u5982\u4E34\u754C\u7B49\u9B54\u5854\u672F\u8BED\uFF0C\u5BF9\u9B54\u5854\u6709\u4E00\u5B9A\u4E86\u89E3\u7684\u53EF\u4EE5\u76F4\u63A5\u5FFD\u7565\u3002","
","
",'1. \u4E34\u754C\uFF1A',"\u5728\u9B54\u5854\u4E2D\uFF0C\u4E34\u754C\u662F\u4E00\u4E2A\u975E\u5E38\u91CD\u8981\u7684\u4E1C\u897F\u3002\u9996\u5148\uFF0C\u6211\u4EEC\u5F88\u5BB9\u6613\u53EF\u4EE5\u5F97\u5230\uFF0C\u5403\u653B\u51FB\u65F6\u53EA\u6709\u5F53\u51CF\u5C11\u4E86\u6218\u6597\u56DE\u5408\u6570\u65F6\u602A\u7269\u7684\u4F24\u5BB3\u4F1A\u51CF\u5C11\uFF0C",'\u90A3\u4E48\uFF0C\u5403\u653B\u51FB\u65F6\u602A\u7269\u7684\u51CF\u4F24\u662F\u4E0D\u8FDE\u7EED\u7684\u3002\u800C\u8DDD\u79BB\u4E0B\u4E00\u6B21\u51CF\u5C11\u602A\u7269\u7684\u4F24\u5BB3\u9700\u8981\u52A0\u7684\u653B\u51FB\u7684\u91CF',"\u4FBF\u662F\u4E34\u754C\u3002\u5F53\u6211\u4EEC\u5403\u4E00\u4E2A\u653B\u51FB\u6070\u597D\u4F7F\u602A\u7269\u4F24\u5BB3\u51CF\u5C11\u65F6\uFF0C\u79F0\u4E3A\u201C\u8E29\u4E34\u754C\u201D\u3002\u4E00\u822C\u60C5\u51B5\u4E0B\uFF0C\u8E29\u4E34\u754C\u7684\u51CF\u4F24\u8981\u6BD4\u5403\u9632\u5FA1\u8981\u9AD8\uFF0C","\u56E0\u6B64\uFF0C\u5F53\u80FD\u8E29\u5230\u4E34\u754C\u65F6\uFF0C\u6211\u4EEC\u5E94\u5F53\u5148\u8E29\u4E34\u754C\uFF0C\u518D\u5403\u9632\u5FA1\u3002","
","
",'2. \u52A0\u9632\uFF1A',"\u52A0\u9632\u6307\u7684\u662F\u52A0\u9632\u5BF9\u602A\u7269\u7684\u51CF\u4F24\u3002\u5728\u672C\u5854\u4E2D\uFF0C\u4F1A\u4EE5\u201Cn\u9632\u201D\u7684\u5F62\u5F0F\u663E\u793A\u5728\u602A\u7269\u624B\u518C\u6216\u5176\u4ED6\u5730\u65B9\u3002\u5728\u672C\u5854\u4E2D\uFF0C\u4E00\u822C\u4F60\u4E0D\u9700\u8981\u523B\u610F\u8BA1\u7B97",'\u4E34\u754C\u4E0E\u52A0\u9632\u51CF\u4F24\uFF0C\u4F60\u53EF\u4EE5\u5728\u602A\u7269\u624B\u518C\u4E2D\u67E5\u770B\u51CF\u4F24\u6298\u7EBF\u56FE\uFF0C',"\u66F4\u591A\u4FE1\u606F\u8BF7\u67E5\u770B\u201C\u602A\u7269\u624B\u518C\u201D\u6761\u76EE\u3002","
","
",'3. \u54B8\u9C7C\uFF1A',"\u4E00\u822C\u6765\u8BB2\uFF0C\u5F00\u4E0D\u5FC5\u5F00\u7684\u95E8\uFF0C\u6216\u8005\u4F7F\u7528\u4E0D\u5FC5\u4F7F\u7528\u7684\u9053\u5177\u88AB\u79F0\u4E3A\u54B8\u9C7C\uFF0C\u6216\u8005\u662F\u54B8\u95E8\uFF0C\u54B8\u9053\u5177\u3002\u4E00\u822C\u60C5\u51B5\u4E0B\uFF0C\u8BF4\u201C\u54B8\u201D\u4FBF\u662F\u6307\u54B8\u9C7C\u3002","\u4E00\u822C\u60C5\u51B5\u4E0B\uFF0C\u95E8\u540E\u9762\u6709\u5B9D\u77F3\u4E14\u65E0\u6CD5\u901A\u8FC7\u5176\u4ED6\u65B9\u5F0F\u8FDB\u5165\u7684\u90FD\u662F\u5FC5\u5F00\u95E8\uFF0C\u800C\u53EA\u6709\u8840\u74F6\u7684\u90FD\u662F\u54B8\u9C7C\u95E8\u3002"]},shortcut={text:"\u5FEB\u6377\u952E",condition:"true",desc:["\u8FD9\u91CC\u5305\u542B\u672C\u5854\u4E2D\u6240\u6709\u7684\u5FEB\u6377\u952E\u3002\u5BF9\u4E8E\u624B\u673A\u7AEF\uFF0C\u53EF\u4EE5\u70B9\u51FB\u5DE5\u5177\u680F\u7684\u96BE\u5EA6\u7684\u4F4D\u7F6E\u5207\u6362\u5DE5\u5177\u680F\u81F3\u6570\u5B57\u952E\u3002","
","
","\u4E0B\u9762\u662F\u6837\u677F\u4E2D\u7684\u6240\u6709\u5FEB\u6377\u952E\uFF1A","
",'X\uFF1A\u6253\u5F00\u602A\u7269\u624B\u518C',"
",'S\uFF1A\u6253\u5F00\u5B58\u6863\u754C\u9762',"
",'D\uFF1A\u6253\u5F00\u8BFB\u6863\u754C\u9762',"
",'A\u62165\uFF1A\u8BFB\u53D6\u81EA\u52A8\u5B58\u6863',"
",'W\u62166\uFF1A\u64A4\u9500\u8BFB\u53D6\u7684\u81EA\u52A8\u5B58\u6863',"
",'Q\uFF1A\u6253\u5F00\u88C5\u5907\u680F',"
",'T\uFF1A\u6253\u5F00\u9053\u5177\u680F',"
",'G\uFF1A\u6253\u5F00\u697C\u5C42\u4F20\u9001\u5668',"
",'Z\u6216\u5355\u51FB\u52C7\u58EB\uFF1A\u52C7\u58EB\u8F6C\u5411',"
",'\u7A7A\u683C\u6216\u53CC\u51FB\u52C7\u58EB\u62167\uFF1A\u8F7B\u6309\uFF08\u62FE\u53D6\u52C7\u58EB\u5468\u56F4\u7684\u5B9D\u7269\u4F46\u4E0D\u79FB\u52A8\u52C7\u58EB\uFF09',"
",'Esc\uFF1A\u6253\u5F00\u6E38\u620F\u83DC\u5355',"
",'R\uFF1A\u6253\u5F00\u5F55\u50CF\u56DE\u653E\u83DC\u5355',"
",'N\uFF1A\u8BE2\u95EE\u662F\u5426\u8FD4\u56DE\u6E38\u620F\u4E3B\u83DC\u5355',"
",'V\uFF1A\u6253\u5F00\u5FEB\u6377\u5546\u5E97',"
",'B\uFF1A\u6253\u5F00\u6570\u636E\u7EDF\u8BA1\u754C\u9762',"
",'Alt + \u6570\u5B57\u952E\uFF1A\u5FEB\u901F\u6362\u88C5',"
",'PgUp\u6216PgDn\uFF1A\u6D4F\u89C8\u5730\u56FE',"
",'P\uFF1A\u6253\u5F00\u8BC4\u8BBA\u533A',"
","
","\u4E0B\u9762\u662F\u672C\u5854\u4E2D\u65B0\u589E\u7684\u5FEB\u6377\u952E\uFF1A","
",'M\uFF1A\u5FEB\u901F\u6807\u8BB0\u602A\u7269',"
",'J\uFF1A\u6253\u5F00\u6280\u80FD\u6811']},extraAttr={text:"\u52C7\u58EB\u5C5E\u6027",condition:"true",desc:["\u8FD9\u91CC\u53EA\u5BF9\u672C\u5854\u4E2D\u65B0\u589E\u7684\u52C7\u58EB\u5C5E\u6027\u8FDB\u884C\u8BF4\u660E\u3002","
","
",'1. \u667A\u6167\uFF1A',"\u667A\u6167\u662F\u8BE5\u5854\u7684\u6838\u5FC3\u5C5E\u6027\u4E4B\u4E00\u3002\u667A\u6167\u53EF\u7528\u4E8E\u667A\u6167\u52A0\u70B9\uFF0C\u8BE5\u529F\u80FD\u4F1A\u5728\u8FDB\u5165\u7B2C\u4E00\u7AE0\u540E\u5F00\u542F\u3002\u4F7F\u7528\u667A\u6167\u53EF\u4EE5\u70B9\u6280\u80FD\u6811\u3002","\u9664\u6B64\u4E4B\u5916\uFF0C\u667A\u6167\u4E5F\u6709\u5176\u5B83\u529F\u80FD\u3002\u4F8B\u5982\u70B9\u5F00\u65E0\u4E0A\u4E4B\u76FE\u6280\u80FD\u540E\u667A\u6167\u8FD8\u53EF\u4EE5\u5145\u5F53\u62A4\u76FE\uFF0C\u7B2C\u4E8C\u7AE0\u70B9\u5F00\u5B66\u4E60\u6280\u80FD\u540E\u53EF\u4EE5\u4F7F\u7528\u667A\u6167\u5B66\u4E60\u602A\u7269\u6280\u80FD\u7B49\u3002","
","
",'2. \u751F\u547D\u56DE\u590D\uFF1A',"\u751F\u547D\u56DE\u590D\u6307\u7684\u662F\u52C7\u58EB\u6BCF\u56DE\u5408\u56DE\u590D\u7684\u751F\u547D\u503C\u3002\u5F53\u4E0E\u602A\u7269\u6218\u6597\u65F6\uFF0C\u52C7\u58EB\u6BCF\u56DE\u5408\u90FD\u4F1A\u56DE\u590D\u5BF9\u5E94\u91CF\u7684\u751F\u547D\u503C\u3002\u56E0\u6B64\uFF0C\u5F53\u5403\u653B\u51FB\u65F6\uFF0C","\u4E0E\u602A\u7269\u6218\u6597\u7684\u56DE\u5408\u6570\u53EF\u80FD\u4F1A\u51CF\u5C11\uFF0C\u5BFC\u81F4\u751F\u547D\u56DE\u590D\u7684\u603B\u56DE\u590D\u91CF\u51CF\u5C11\u3002\u4E0D\u8FC7\u5927\u90E8\u5206\u60C5\u51B5\u4E0B\u4E0D\u9700\u8981\u5728\u610F\u8FD9\u4E00\u70B9\uFF0C","\u51CF\u5C11\u4E00\u56DE\u5408\u5E76\u4E0D\u4F1A\u5BF9\u5438\u7684\u8840\u9020\u6210\u5F88\u5927\u7684\u5F71\u54CD\uFF0C\u9664\u4E86\u4E00\u4E9B\u7279\u6B8A\u60C5\u51B5\u3002","\u8BE5\u9879\u4F1A\u663E\u793A\u5728\u72B6\u6001\u680F\u7684\u751F\u547D\u503C\u53F3\u65B9\u504F\u4E0B\u7684\u4F4D\u7F6E\u3002","
","
",'3. \u989D\u5916\u653B\u51FB\uFF1A',"\u989D\u5916\u653B\u51FB\u6307\u7684\u662F\u52C7\u58EB\u6BCF\u56DE\u5408\u7684\u989D\u5916\u9020\u6210\u7684\u4F24\u5BB3\u3002\u4E00\u822C\u60C5\u51B5\u4E0B\uFF0C\u5F53\u52C7\u58EB\u7834\u4E86\u602A\u7269\u7684\u9632\u5FA1\u65F6\uFF0C\u8BE5\u9879\u4FBF\u4F1A\u8D77\u4F5C\u7528\u3002","\u989D\u5916\u653B\u51FB\u76F8\u5F53\u4E8E\u9B54\u653B\uFF0C\u65E0\u6CD5\u901A\u8FC7\u4E00\u822C\u65B9\u5F0F\u51CF\u514D\u3002\u5F53\u52C7\u58EB\u653B\u51FB\u602A\u7269\u65F6\uFF0C\u6BCF\u56DE\u5408\u90FD\u4F1A\u9644\u52A0\u5BF9\u5E94\u91CF\u7684\u4F24\u5BB3\uFF0C\u5BF9\u575A\u56FA\u602A\u540C\u6837\u6709\u6548\u3002","\u989D\u5916\u653B\u51FB\u4F1A\u663E\u793A\u5728\u72B6\u6001\u680F\u7684\u653B\u51FB\u53F3\u65B9\u504F\u4E0B\u7684\u4F4D\u7F6E\u3002"]},statusBar={text:"\u72B6\u6001\u680F",condition:"true",desc:["\u5728\u672C\u5854\u4E2D\uFF0C\u72B6\u6001\u680F\u4E0E\u6E38\u620F\u753B\u9762\u662F\u5206\u5F00\u7684\u3002\u4F60\u53EF\u4EE5\u81EA\u7531\u62D6\u52A8\u72B6\u6001\u680F\uFF0C\u4E5F\u53EF\u4EE5\u4FEE\u6539\u5176\u5927\u5C0F\u3002","\u5177\u4F53\u65B9\u6CD5\u5982\u4E0B\uFF1A\u70B9\u51FB\u4E00\u4E0B\u72B6\u6001\u680F\u4E4B\u540E\uFF0C\u5DE6\u4E0A\u89D2\u7684\u62D6\u62FD\u56FE\u6807\u4F1A\u653E\u5927\uFF0C\u6B64\u65F6\u4F60\u53EF\u4EE5\u6309\u4F4F\u5B83\u62D6\u52A8\u72B6\u6001\u680F\u3002","\u4F60\u53EF\u4EE5\u76F4\u63A5\u5C06\u9F20\u6807\u653E\u5230\u72B6\u6001\u680F\u7684\u8FB9\u6846\u4E0A\uFF0C\u7136\u540E\u76F4\u63A5\u62D6\u52A8\u4EE5\u6539\u53D8\u72B6\u6001\u680F\u7684\u5927\u5C0F\u3002\u624B\u673A\u7AEF\u53EF\u4EE5\u5148\u70B9\u51FB\u4E00\u4E0B\u72B6\u6001\u680F\u4F7F\u8FB9\u6846","\u53D8\u5BBD\uFF0C\u7136\u540E\u62D6\u52A8\u3002\u7535\u8111\u7AEF\u70B9\u51FB\u72B6\u6001\u680F\u4E5F\u53EF\u4EE5\u4F7F\u8FB9\u6846\u53D8\u5BBD\u3002\u5982\u679C\u4F60\u60F3\u6298\u53E0\u72B6\u6001\u680F\uFF0C\u5B8C\u5168\u53EF\u4EE5\u62D6\u52A8\u72B6\u6001\u680F\u7684\u4E0B\u8FB9\u6846\uFF0C","\u7136\u540E\u76F4\u63A5\u62D6\u52A8\u81F3\u4E0A\u65B9\uFF0C\u8FD9\u65F6\u72B6\u6001\u680F\u4FBF\u4F1A\u53D8\u6210\u4E00\u6761\u7EBF\uFF0C\u76F8\u5F53\u4E8E\u6298\u53E0\u4E86\u72B6\u6001\u680F","
","
","\u72B6\u6001\u680F\u53EF\u4EE5\u7EB5\u5411\u6EDA\u52A8\uFF0C\u5982\u679C\u4F60\u53D1\u73B0\u72B6\u6001\u680F\u663E\u793A\u4E0D\u5168\uFF0C\u53EF\u4EE5\u5C1D\u8BD5\u62C9\u5927\u72B6\u6001\u680F\uFF0C\u6216\u8005\u7EB5\u5411\u62D6\u52A8\u72B6\u6001\u680F\uFF0C\u5C31\u50CF\u7F51\u9875\u4E0A\u4E0B\u6EDA\u52A8\u4E00\u6837\u3002","\u7535\u8111\u7AEF\u8FD8\u53EF\u4EE5\u4F7F\u7528\u6EDA\u8F6E\u4E0A\u4E0B\u6EDA\u52A8\u3002","
","
","\u5982\u679C\u4F60\u89C9\u5F97\u72B6\u6001\u680F\u6709\u4E9B\u788D\u4E8B\uFF0C\u4F60\u5B8C\u5168\u53EF\u4EE5\u5C06\u5176\u7F29\u5C0F\uFF0C\u6216\u8005\u628A\u5B83\u653E\u5230\u4E0D\u788D\u4E8B\u7684\u5730\u65B9\u3002","
","
","\u72B6\u6001\u680F\u4E0A\u9762\u53EF\u80FD\u4F1A\u6709\u6309\u94AE\uFF0C\u4F60\u53EF\u4EE5\u76F4\u63A5\u70B9\u51FB\u3002","
","
","\u5BF9\u72B6\u6001\u680F\u5E03\u5C40\u7684\u8BF4\u660E\u3002","
","\u672C\u5854\u7684\u72B6\u6001\u680F\u7684\u5E03\u5C40\u8F83\u4E3A\u7075\u6D3B\u3002\u5B83\u662F\u6A2A\u5411\u7684\u5E03\u5C40\uFF0C\u5728\u72B6\u6001\u680F\u8F83\u5BBD\u65F6\u53EF\u4EE5\u770B\u5230\uFF0C\u5C5E\u6027\u4F1A\u6A2A\u5411\u4F9D\u6B21\u663E\u793A\u3002\u6309\u7167\u663E\u793A\u987A\u5E8F\uFF0C","\u72B6\u6001\u680F\u663E\u793A\u9879\u4F9D\u6B21\u4E3A\uFF1A","
","1. \u697C\u5C42\u540D\uFF0C\u70B9\u51FB\u540E\u8FDB\u5165\u6D4F\u89C8\u5730\u56FE\u754C\u9762","
","2. \u52C7\u58EB\u7B49\u7EA7","
","3. \u5F53\u524D\u5F00\u542F\u7684\u6280\u80FD","
","4. \u5F53\u524D\u52C7\u58EB\u751F\u547D\u503C\uFF0C\u53F3\u65B9\u504F\u4E0B\u4E3A\u6BCF\u56DE\u5408\u56DE\u590D\u7684\u751F\u547D\u503C\uFF0C\u5F53\u70B9\u5F00\u6CBB\u6108\u4E4B\u6CC9\u6280\u80FD\u65F6\uFF0C\u53F3\u65B9\u504F\u4E0A\u4F1A\u663E\u793A\u8DDD\u79BB\u589E\u52A0\u751F\u547D\u56DE\u590D\u5269\u4F59\u8840\u74F6\u6570","
","5. \u5F53\u524D\u52C7\u58EB\u7684\u653B\u51FB\uFF0C\u53F3\u65B9\u504F\u4E0B\u4E3A\u52C7\u58EB\u7684\u989D\u5916\u653B\u51FB","
","6. \u5F53\u524D\u52C7\u58EB\u7684\u9632\u5FA1","
","7. \u5F53\u524D\u52C7\u58EB\u7684\u667A\u6167\uFF0C\u53EF\u4EE5\u7528\u4E8E\u667A\u6167\u52A0\u70B9\u7B49","
","8. \u5F53\u524D\u52C7\u58EB\u7684\u91D1\u5E01","
","9. \u5F53\u524D\u52C7\u58EB\u8DDD\u79BB\u5347\u7EA7\u5269\u4F59\u7ECF\u9A8C\u6570","
","10. \u4E09\u8272\u94A5\u5319","
","11. \u6253\u5F00\u6280\u80FD\u6811\uFF08\u8FDB\u5165\u7B2C\u4E00\u7AE0\u540E\u5F00\u542F\uFF09","
","12. \u67E5\u770B\u52C7\u58EB\u7684\u6280\u80FD\uFF08\u8FDB\u5165\u7B2C\u4E00\u7AE0\u540E\u5F00\u542F\uFF09"]},markEnemy={text:"\u6807\u8BB0\u602A\u7269",condition:"true",desc:["\u6807\u8BB0\u602A\u7269\u53EF\u4EE5\u4F7F\u4F60\u80FD\u591F\u66F4\u52A0\u65B9\u4FBF\u5730\u4E86\u89E3\u4E00\u4E2A\u602A\u7269\u7684\u60C5\u51B5\u3002","
","\u4F60\u53EF\u4EE5\u901A\u8FC7\u4EE5\u4E0B\u4E24\u79CD\u65B9\u5F0F\u6807\u8BB0\u602A\u7269\uFF1A","
","1. \u6253\u5F00\u602A\u7269\u624B\u518C\uFF0C\u9009\u4E2D\u602A\u7269\uFF0C\u8FDB\u5165\u602A\u7269\u66F4\u591A\u4FE1\u606F\u680F\uFF0C\u70B9\u51FB\u6807\u8BB0\u602A\u7269\u3002","
",'2. \u5C06\u9F20\u6807\u79FB\u52A8\u5230\u4F60\u60F3\u8981\u6807\u8BB0\u7684\u602A\u7269\u4E0A\u9762\uFF0C',"\u6309\u4E0BM\u952E\uFF0C\u5373\u53EF\u6807\u8BB0\u602A\u7269\uFF0C\u6CE8\u610F\u6D4F\u89C8\u5730\u56FE\u4E2D\u4E0D\u80FD\u7528\u8BE5\u65B9\u5F0F\u6807\u8BB0\u3002","\u624B\u673A\u7AEF\u6682\u65F6\u6CA1\u6709\u5FEB\u901F\u6807\u8BB0\u602A\u7269\u7684\u65B9\u5F0F\u3002","
","
","\u5F53\u4E00\u4E2A\u602A\u7269\u88AB\u6807\u8BB0\u540E\uFF0C\u602A\u7269\u4F1A\u6709\u4EE5\u4E0B\u884C\u4E3A\uFF1A","
","1. \u5F53\u52C7\u58EB\u6070\u597D\u80FD\u6253\u8D25\u602A\u7269\u65F6\uFF0C\u4F1A\u8FDB\u884C\u63D0\u793A","
","2. \u5F53\u602A\u7269\u7684\u4F24\u5BB3\u6070\u597D\u4F4E\u4E8E\u52C7\u58EB\u751F\u547D\u503C\u76842/3\u62161/3\u65F6\uFF0C\u4F1A\u8FDB\u884C\u63D0\u793A","
","3. \u5F53\u52C7\u58EB\u6070\u597D\u8E29\u5230\u602A\u7269\u7684\u4E34\u754C\u65F6\uFF0C\u4F1A\u8FDB\u884C\u63D0\u793A","
","4. \u5F53\u602A\u7269\u96F6\u4F24\u65F6\uFF0C\u4F1A\u8FDB\u884C\u63D0\u793A","
","5. \u88AB\u6807\u8BB0\u7684\u602A\u7269\u4F1A\u51FA\u73B0\u7C7B\u4F3C\u4E8E\u72B6\u6001\u680F\u7684\u76D2\u5B50\uFF0C\u53EF\u4EE5\u968F\u610F\u62D6\u52A8\u548C\u6539\u53D8\u5927\u5C0F\u3002\u4F60\u4E5F\u53EF\u4EE5\u9009\u62E9\u5173\u95ED\u8FD9\u4E2A\u76D2\u5B50\uFF0C","\u88AB\u5173\u95ED\u540E\u53EF\u4EE5\u901A\u8FC7\u91CD\u65B0\u6807\u8BB0\u6765\u6253\u5F00\u3002\u8FD9\u4E2A\u76D2\u5B50\u4F1A\u663E\u793A\u6807\u8BB0\u7684\u602A\u7269\u7684\u4E34\u754C\u4E0E\u4F24\u5BB3\u4FE1\u606F\u7B49\uFF0C\u4E0E\u72B6\u6001\u680F\u4E00\u6837\uFF0C\u53EF\u4EE5\u7EB5\u5411\u6EDA\u52A8\u3002","
","
","\u8FD9\u4E2A\u529F\u80FD\u53EF\u4EE5\u7528\u4E8E\u6807\u8BB0boss\u6216\u8005\u8F83\u5F3A\u7684\u6321\u8DEF\u602A\uFF0C\u5F53\u8FD9\u4E9B\u602A\u80FD\u591F\u653B\u51FB\u65F6\u4F60\u53EF\u4EE5\u76F4\u63A5\u6536\u5230\u4FE1\u606F\uFF0C\u4E0D\u9700\u8981\u518D\u65F6\u523B\u8D39\u5FC3\u6CE8\u610F\u602A\u7269\u7684\u4F24\u5BB3\u3002","
","
","\u6CE8\u610F\uFF0C\u6807\u8BB0\u7684\u602A\u7269\u662F\u4E0D\u8BA1\u5165\u5B58\u6863\u7684\uFF0C\u540C\u65F6\u6807\u8BB0\u7684\u602A\u7269\u53EA\u5728\u672C\u6B21\u6E38\u620F\u4E2D\u6709\u6548\uFF0C\u5237\u65B0\u9875\u9762\u540E\u4FBF\u4F1A\u6D88\u5931\u3002"]},book={text:"\u602A\u7269\u624B\u518C",condition:"true",desc:["\u672C\u5854\u7684\u602A\u7269\u624B\u518C\u529F\u80FD\u5F88\u591A\uFF0C\u4E0B\u9762\u4E00\u4E00\u4ECB\u7ECD\u3002","
","
","\u602A\u7269\u624B\u518C\u6253\u5F00\u7684\u65F6\u5019\u6709\u4E00\u4E2A0.6\u79D2\u7684\u52A8\u753B\uFF0C\u5982\u679C\u4E0D\u60F3\u8981\u53EF\u4EE5\u5728\u5F00\u5934\u6361\u7684\u7CFB\u7EDF\u8BBE\u7F6E\u91CC\u9762\u5173\u95ED\uFF08\u9ED8\u8BA4\u5173\u95ED\uFF09\u3002","
","
","\u6253\u5F00\u602A\u7269\u624B\u518C\u540E\uFF0C\u602A\u7269\u624B\u518C\u7684\u5E03\u5C40\u4E0E\u6837\u677F\u81EA\u5E26\u7684\u7C7B\u4F3C\u3002\u4E0E\u6837\u677F\u4E0D\u540C\u7684\u662F\uFF0C\u8FD9\u91CC\u7684\u602A\u7269\u624B\u518C\u4E0D\u518D\u662F\u7FFB\u9875\u5F0F\u7ED3\u6784\u3002","\u8FD9\u91CC\u7684\u602A\u7269\u624B\u518C\u662F\u6EDA\u52A8\u5F0F\u7ED3\u6784\uFF0C\u4F60\u53EF\u4EE5\u50CF\u6D4F\u89C8\u7F51\u9875\u4E00\u6837\uFF0C\u7528\u624B\u6307\u6216\u9F20\u6807\u4E0A\u4E0B\u6EDA\u52A8\u6216\u8005\u62D6\u52A8\u53F3\u8FB9\u7684\u6EDA\u52A8\u6761\uFF0C\u7535\u8111\u7AEF\u8FD8\u53EF\u4EE5\u4F7F\u7528\u6EDA\u8F6E\u3002","\u5BF9\u4E8E\u7535\u8111\u7AEF\uFF0C\u8FD8\u53EF\u4EE5\u4F7F\u7528\u952E\u76D8\u64CD\u4F5C\u3002\u4E0A\u548C\u4E0B\u53EF\u4EE5\u4E0A\u4E0B\u9009\u62E9\u602A\u7269\uFF0C\u5DE6\u548C\u53F3\u53EF\u4EE5\u5411\u4E0A\u6216\u5411\u4E0B\u79FB\u52A85\u4E2A\u602A\u7269\u3002\u8FD9\u4E9B\u64CD\u4F5C\u4E0E\u6837\u677F\u90FD\u7C7B\u4F3C\u3002","
","
","\u70B9\u51FB\u4E00\u4E2A\u602A\u7269\u6216\u8005\u6309\u4E0B\u56DE\u8F66\u7A7A\u683C\u540E\uFF0C\u5C06\u8FDB\u5165\u602A\u7269\u8BE6\u7EC6\u4FE1\u606F\u754C\u9762\u3002\u8FD9\u4E2A\u754C\u9762\u5206\u4E3A\u591A\u4E2A\u680F\uFF0C\u5206\u522B\u662F\u7279\u6B8A\u5C5E\u6027\u680F\uFF0C\u8BE6\u7EC6\u4E34\u754C\u680F\uFF0C\u66F4\u591A\u4FE1\u606F\u680F\u3002","\u8FDB\u5165\u602A\u7269\u8BE6\u7EC6\u4FE1\u606F\u540E\u9ED8\u8BA4\u5728\u7279\u6B8A\u5C5E\u6027\u680F\uFF0C\u8BE5\u680F\u53EF\u4EE5\u67E5\u770B\u602A\u7269\u7684\u7279\u6B8A\u5C5E\u6027\u3002","\u6CE8\u610F\u7279\u6B8A\u5C5E\u6027\u4F9D\u7136\u53EF\u4EE5\u7EB5\u5411\u6EDA\u52A8\u3002\u5728\u7279\u6B8A\u5C5E\u6027\u4E0B\u65B9\uFF0C","\u662F\u602A\u7269\u7684\u4E34\u754C\u8868\uFF0C\u53EF\u4EE5\u7C97\u7565\u5730\u67E5\u770B\u602A\u7269\u7684\u4E34\u754C\u4FE1\u606F\u3002\u5728\u4E0B\u65B9\uFF0C\u4F60\u53EF\u4EE5\u70B9\u51FB\u8BE6\u7EC6\u4E34\u754C\u4FE1\u606F\u8FDB\u5165\u8BE6\u7EC6\u4E34\u754C\u680F\u3002","
","
","\u5728\u8BE6\u7EC6\u4E34\u754C\u680F\u4E2D\uFF0C\u602A\u7269\u7684\u4F24\u5BB3\u4F1A\u4EE5\u53EF\u89C6\u5316\u6298\u7EBF\u56FE\u7684\u65B9\u5F0F\u663E\u793A\u51FA\u6765\uFF0C\u4ECE\u800C\u4F60\u53EF\u4EE5\u66F4\u4E3A\u6E05\u6670\u5730\u770B\u51FA\u602A\u7269\u51CF\u4F24\u8D8B\u52BF\u3002","\u9664\u4E86\u67E5\u770B\u602A\u7269\u4F24\u5BB3\u66F2\u7EBF\uFF0C\u4F60\u8FD8\u53EF\u4EE5\u89C4\u5212\u5B9D\u77F3\u3002\u6BCF\u4E2A\u6298\u7EBF\u56FE\u4E0B\u65B9\u90FD\u6709\u4E00\u4E2A\u6ED1\u52A8\u6761\uFF0C\u4F60\u53EF\u4EE5\u62D6\u52A8\u6765\u6A21\u62DF\u5403\u5B9D\u77F3\u3002","\u6CE8\u610F\uFF0C\u62D6\u52A8\u65F6\uFF0C\u6ED1\u52A8\u6761\u5DE6\u8FB9\u4F1A\u663E\u793A\u5F53\u524D\u7684\u52A0\u653B\u6216\u52A0\u9632\u6B21\u6570\uFF0C\u8FD9\u4E2A\u6570\u503C\u6307\u7684\u662F\u5728\u52C7\u58EB\u6240\u5728\u5730\u56FE\u4E2D\u9700\u8981\u5403\u7684\u6700\u5F31\u7684\u5B9D\u77F3\u6570\u91CF\u3002","\u4F8B\u5982\uFF0C\u5F53\u524D\u52C7\u58EB\u6240\u5728\u5730\u56FE\u4E2D\u6700\u5F31\u7684\u5B9D\u77F3\u52A02\u70B9\u653B\u51FB\uFF0C\u52A0\u653B\u6B21\u6570\u4E3A3\uFF0C\u90A3\u4E48\u52C7\u58EB\u7684\u653B\u51FB\u589E\u52A0\u91CF\u5C31\u4E3A6\u3002","\u52C7\u58EB\u589E\u52A0\u7684\u653B\u51FB\u6570\u503C\u4E5F\u4F1A\u5728\u4E0B\u65B9\u663E\u793A\u3002\u5F53\u52A0\u653B\u6B21\u6570\u548C\u52A0\u9632\u6B21\u6570\u6539\u53D8\u65F6\uFF0C\u6298\u7EBF\u56FE\u4E5F\u4F1A\u53D8\u5316\u3002",'\u5F53\u524D\u72B6\u6001\u4E0B\u602A\u7269\u7684\u4F24\u5BB3\u4EE5\u53CA\u51CF\u4F24\u603B\u91CF\u4E5F\u4F1A\u5728\u4E0B\u65B9\u663E\u793A\u3002',"\u6CE8\u610F\u5728\u6B64\u680F\u4E2D\u65E0\u6CD5\u901A\u8FC7\u70B9\u51FB\u5C4F\u5E55\u56DE\u5230\u602A\u7269\u624B\u518C\u754C\u9762\uFF0C\u66F4\u591A\u4FE1\u606F\u8BF7\u67E5\u770B\u6700\u540E\u4E00\u6BB5\u3002","
","
","\u5728\u7279\u6B8A\u5C5E\u6027\u680F\uFF0C\u70B9\u51FB\u4E0B\u65B9\u7684\u602A\u7269\u66F4\u591A\u4FE1\u606F\u53EF\u4EE5\u8FDB\u5165\u66F4\u591A\u4FE1\u606F\u680F\u3002\u6B64\u680F\u4E2D\uFF0C\u4F60\u53EF\u4EE5\u67E5\u770B\u602A\u7269\u63CF\u8FF0\u3002\u4F46\u8FD9\u4E0D\u662F\u8FD9\u4E00\u680F\u7684\u6838\u5FC3\u529F\u80FD\u3002","\u8FD9\u4E00\u680F\u7684\u6838\u5FC3\u529F\u80FD\u662F\u6807\u8BB0\u602A\u7269\u3002\u88AB\u6807\u8BB0\u7684\u602A\u7269\u4F1A\u6709\u4E00\u4E9B\u975E\u5E38\u65B9\u4FBF\u7684\u884C\u4E3A\uFF0C\u8FD9\u4E9B\u884C\u4E3A\u53EF\u4EE5\u5728\u201C\u6807\u8BB0\u602A\u7269\u201D\u6761\u76EE\u4E2D\u67E5\u770B\u3002","
","
","\u6CE8\u610F\uFF0C\u5728\u602A\u7269\u8BE6\u7EC6\u4FE1\u606F\u4E2D\uFF0C\u9664\u8BE6\u7EC6\u4E34\u754C\u680F\u5916\u5747\u53EF\u4EE5\u901A\u8FC7\u70B9\u51FB\u5C4F\u5E55\u8FD4\u56DE\u5230\u602A\u7269\u624B\u518C\u754C\u9762\u3002",'\u5982\u679C\u4F60\u662F\u7535\u8111\u7AEF\uFF0C\u5728\u4EFB\u610F\u680F\u76EE\u4E2D\u6309\u4E0BX\u952E\u4F1A\u9000\u51FA\u602A\u7269\u624B\u518C\uFF0C\u8FD4\u56DE\u6E38\u620F\uFF0C','\u6309\u4E0B\u56DE\u8F66\uFF08Enter\uFF09\u952E\u4F1A\u56DE\u5230\u602A\u7269\u624B\u518C\u754C\u9762\u3002']},fly={text:"\u697C\u5C42\u4F20\u9001\u5668",condition:"true",desc:["\u697C\u4F20\u754C\u9762\u6253\u5F00\u65F6\u4F1A\u6709\u4E00\u4E2A0.6\u79D2\u7684\u52A8\u753B\uFF0C\u5982\u679C\u4E0D\u60F3\u8981\u53EF\u4EE5\u5728\u5F00\u5934\u6361\u7684\u7CFB\u7EDF\u8BBE\u7F6E\u91CC\u9762\u5173\u95ED\u3002\uFF08\u9ED8\u8BA4\u5173\u95ED\uFF09","
","
",'\u672C\u5854\u7684\u697C\u5C42\u4F20\u9001\u5668\u662F\u4E00\u4E2A\u96C6\u5206\u533A\u3001\u5C0F\u5730\u56FE\u3001\u697C\u5C42\u4F20\u9001\u4E8E\u4E00\u4F53\u7684\u591A\u529F\u80FD\u697C\u4F20\u3002',"\u4E0B\u9762\u662F\u697C\u4F20\u7684\u5177\u4F53\u8BF4\u660E\uFF1A","
","
","\u9996\u5148\uFF0C\u5BF9\u4E8E\u7535\u8111\u7AEF\uFF0C\u6700\u5DE6\u4FA7\u663E\u793A\u533A\u57DF\u4FE1\u606F\uFF0C\u624B\u673A\u7AEF\u5219\u5728\u4E0A\u65B9\u7684\u5DE6\u4FA7\u3002","
","
","\u7136\u540E\uFF0C\u533A\u57DF\u7684\u53F3\u4FA7\u662F\u5C0F\u5730\u56FE\u680F\uFF0C\u8FD9\u4E00\u680F\u4F1A\u663E\u793A\u697C\u5C42\u7684\u5E73\u9762\u7ED3\u6784\u3002\u4F60\u53EF\u4EE5\u62D6\u52A8\uFF0C\u4E5F\u53EF\u4EE5\u4F7F\u7528\u6EDA\u8F6E\u6216\u8005\u53CC\u6307\u653E\u7F29\uFF0C\u5F53\u653E\u7F29\u5230\u4E00\u5B9A\u5927\u5C0F\u65F6\uFF0C","\u4F1A\u663E\u793A\u5730\u56FE\u7684\u7F29\u7565\u56FE\u3002\u76F4\u63A5\u70B9\u51FB\u5730\u56FE\u4E5F\u53EF\u4EE5\u9009\u4E2D\u5730\u56FE\uFF0C\u518D\u6B21\u70B9\u51FB\u4F1A\u4F20\u9001\u81F3\u76EE\u6807\u5730\u56FE\u3002","
","
","\u5BF9\u4E8E\u7535\u8111\u7AEF\uFF0C\u6700\u53F3\u4FA7\u662F\u5F53\u524D\u9009\u4E2D\u7684\u5730\u56FE\u7684\u7F29\u7565\u56FE\uFF0C\u624B\u673A\u5219\u5728\u4E0B\u65B9\uFF0C\u70B9\u51FB\u7F29\u7565\u56FE\u4E5F\u53EF\u4EE5\u4F20\u9001\u3002\u7F29\u7565\u56FE\u7684\u4E0B\u65B9\u662F\u5F53\u524D\u9009\u4E2D\u7684\u5730\u56FE\u540D\uFF0C","\u5DE6\u53F3\u5404\u6709\u4E24\u4E2A\u6309\u94AE\uFF0C\u8868\u793A\u540E\u900010\u5C42\u3001\u540E\u90001\u5C42\u3001\u524D\u8FDB1\u5C42\u3001\u524D\u8FDB10\u5C42\uFF0C\u4E0E\u6837\u677F\u7684\u697C\u4F20\u7684\u6309\u94AE\u529F\u80FD\u7C7B\u4F3C\u3002","
","
","\u6700\u4E0B\u65B9\u662F\u8BBE\u7F6E\u6309\u94AE\uFF0C\u53EF\u4EE5\u5207\u6362\u65E0\u8FB9\u6846\u6A21\u5F0F\uFF0C\u7535\u8111\u7AEF\u8FD8\u53EF\u4EE5\u5207\u6362\u4F20\u7EDF\u6309\u952E\u6A21\u5F0F\uFF0C\u4F20\u7EDF\u6309\u952E\u6A21\u5F0F\u4E0B\u6309\u952E\u9075\u5FAA\u6837\u677F\u7684\u697C\u4F20\u6309\u952E\u65B9\u5F0F\u3002",'\u5BF9\u4E8E\u975E\u4F20\u7EDF\u6A21\u5F0F\uFF0C\u4E0A\u4E0B\u5DE6\u53F3\u53EF\u4EE5\u79FB\u52A8\u5730\u56FE\uFF0C','PageUp\u548CPageDown\u53EF\u4EE5\u524D\u8FDB1\u5C42\u6216\u540E\u90001\u5C42\u3002']},tools={text:"\u9053\u5177\u680F\u4E0E\u88C5\u5907\u680F",condition:"true",desc:["\u9053\u5177\u680F\u4E0E\u88C5\u5907\u680F\u6253\u5F00\u65F6\u4F1A\u6709\u4E00\u4E2A0.6\u79D2\u7684\u52A8\u753B\uFF0C\u5982\u679C\u4E0D\u60F3\u8981\u53EF\u4EE5\u5728\u5F00\u5934\u6361\u7684\u7CFB\u7EDF\u8BBE\u7F6E\u91CC\u9762\u5173\u95ED\u3002\uFF08\u9ED8\u8BA4\u5173\u95ED\uFF09","
","
","\u672C\u5854\u7684\u9053\u5177\u680F\u6CA1\u6709\u7279\u522B\u4E4B\u5904\uFF0C\u8FD9\u91CC\u4E0D\u9700\u8981\u8BF4\u660E\u3002\u4E3B\u8981\u662F\u88C5\u5907\u680F\u3002","
","
","\u672C\u5854\u7684\u88C5\u5907\u680F\u624B\u673A\u548C\u7535\u8111\u7AEF\u4E0D\u540C\uFF0C\u7535\u8111\u7AEF\u6BD4\u624B\u673A\u7AEF\u591A\u4E86\u4E00\u4E2A\u52C7\u58EB\u5C5E\u6027\u7684\u663E\u793A\u3002\u5728\u88C5\u5907\u680F\u7684\u88C5\u5907\u5217\u8868\u680F\uFF0C","\u4E0A\u65B9\u6709\u4E24\u4E2A\u9009\u62E9\u6846\u4E0E\u4E00\u4E2A\u6392\u5E8F\u65B9\u5F0F\u7684\u9009\u9879\u3002\u8FD9\u4E09\u4E2A\u53EF\u4EE5\u7B5B\u9009\u4F60\u62E5\u6709\u7684\u88C5\u5907\u5E76\u8FDB\u884C\u6392\u5E8F\uFF0C\u4ECE\u800C\u8BA9\u4F60\u80FD\u591F\u66F4\u6E05\u695A\u5730\u77E5\u9053\u54EA\u4E2A\u88C5\u5907\u66F4\u5F3A\u3002","\u7B2C\u4E00\u4E2A\u9009\u62E9\u6846\u53EF\u4EE5\u7B5B\u9009\u88C5\u5907\u589E\u52A0\u7684\u5C5E\u6027\uFF0C\u5982\u679C\u88C5\u5907\u4E0D\u589E\u52A0\u9009\u62E9\u7684\u5C5E\u6027\uFF0C\u90A3\u4E48\u4F1A\u4E0D\u663E\u793A\u3002\u7B2C\u4E8C\u4E2A\u9009\u62E9\u6846\u53EF\u4EE5\u7B5B\u9009\u589E\u52A0\u7684\u5C5E\u6027\u7684\u65B9\u5F0F\uFF0C","\u6709\u6570\u503C\u589E\u52A0\u548C\u767E\u5206\u6BD4\u589E\u52A0\u4E24\u79CD\u3002\u5728\u8FD9\u4E2A\u9009\u62E9\u6846\u53F3\u8FB9\u6709\u4E00\u4E2A\u56FE\u6807\uFF0C\u8FD9\u4E2A\u56FE\u6807\u53EF\u4EE5\u6539\u53D8\u6B66\u5668\u7684\u6392\u5E8F\u65B9\u5F0F\uFF0C\u6709\u5347\u5E8F\u548C\u964D\u5E8F\u4E24\u79CD\uFF0C\u9ED8\u8BA4\u4E3A\u5347\u5E8F\u3002","\u4F8B\u5982\uFF0C\u4F60\u62E5\u6709\u4E24\u4E2A\u88C5\u5907\uFF0C\u5206\u522B\u589E\u52A010\u653B\u51FB\u548C20\u653B\u51FB\uFF0C\u4E09\u8005\u4F60\u5206\u522B\u9009\u62E9\u4E86\u653B\u51FB\uFF0C\u6570\u503C\uFF0C\u5347\u5E8F\uFF0C\u90A3\u4E48\u589E\u52A010\u653B\u51FB\u7684\u88C5\u5907\u4F1A\u6392\u5728\u4E0A\u9762\uFF0C","\u800C\u589E\u52A020\u653B\u51FB\u7684\u88C5\u5907\u4F1A\u6392\u5728\u4E0B\u9762\u3002","
","
","\u5BF9\u4E8E\u7535\u8111\u7AEF\uFF0C\u5982\u679C\u4F60\u60F3\u88C5\u88C5\u5907\uFF0C\u53EF\u4EE5\u76F4\u63A5\u62D6\u52A8\u88C5\u5907\u81F3\u88C5\u5907\u5B54\uFF0C\u4E5F\u53EF\u4EE5\u9009\u4E2D\u88C5\u5907\u540E\u518D\u6B21\u70B9\u51FB\u3002\u624B\u673A\u7AEF\u6682\u65F6\u65E0\u6CD5\u62D6\u52A8\u88C5\u5907\u3002\u5F53\u9009\u4E2D\u4E00\u4E2A\u88C5\u5907\u540E\uFF0C","\u7535\u8111\u7AEF\u548C\u624B\u673A\u7AEF\u5747\u4F1A\u663E\u793A\u88C5\u5907\u589E\u52A0\u6216\u51CF\u5C11\u7684\u5C5E\u6027\uFF0C\u6CE8\u610F\u6709\u7684\u88C5\u5907\u53EF\u80FD\u4E0D\u589E\u52A0\u5C5E\u6027\u4F46\u662F\u6709\u7279\u6B8A\u529F\u80FD\u3002\u5BF9\u4E8E\u7535\u8111\u7AEF\uFF0C","\u8FD8\u4F1A\u76F4\u63A5\u5728\u52C7\u58EB\u5C5E\u6027\u680F\u663E\u793A\u589E\u52A0\u6216\u51CF\u5C11\u7684\u5C5E\u6027\u3002"]},skillTree={text:"\u6280\u80FD\u6811",condition:"flags.chapter > 0",desc:['\u6253\u5F00\u6280\u80FD\u6811\u53EF\u4EE5\u70B9\u51FB\u72B6\u6001\u680F\u7684',"\u6280\u80FD\u6811\u6309\u94AE\uFF08\u5982\u679C\u53D1\u73B0\u6CA1\u6709\u663E\u793A\u53EF\u4EE5\u5C1D\u8BD5\u4E0A\u4E0B\u6EDA\u52A8\u72B6\u6001\u680F\uFF09\uFF0C\u8FD8\u53EF\u4EE5\u6309",'\u5FEB\u6377\u952EJ\u6253\u5F00\u3002',"
","
","\u6280\u80FD\u6811\u662F\u672C\u5854\u7684\u4E3B\u8981\u73A9\u6CD5\u4E4B\u4E00\u3002\u5B83\u53EF\u4EE5\u8BA9\u4F60\u4F7F\u7528\u667A\u6167\u6765\u5B66\u4E60\u6280\u80FD\uFF0C\u589E\u52A0\u5C5E\u6027\u7B49\u3002\u667A\u6167\u5728\u72B6\u6001\u680F\u663E\u793A\u5728\u9632\u5FA1\u7684\u4E0B\u4E00\u9879\uFF0C","\u7EFF\u5B9D\u77F3\u53EF\u4EE5\u589E\u52A0\u52C7\u58EB\u7684\u667A\u6167\u3002","
","
","\u6253\u5F00\u6280\u80FD\u6811\u9875\u9762\u540E\uFF0C\u4F60\u53EF\u4EE5\u5728\u4E0A\u65B9\u770B\u5230\u6280\u80FD\u7684\u540D\u79F0\u4E0E\u63CF\u8FF0\uFF0C\u4E0B\u65B9\u4F1A\u663E\u793A\u6280\u80FD\u6811\uFF0C\u4EE5\u53CA\u5347\u7EA7\u8981\u6C42\u7B49\u3002\u70B9\u51FB\u4E00\u4E2A\u6280\u80FD\u53EF\u4EE5\u9009\u4E2D\u6280\u80FD\uFF0C","\u518D\u6B21\u70B9\u51FB\u53EF\u4EE5\u5347\u7EA7\u6280\u80FD\u3002\u6CE8\u610F\uFF0C\u524D\u7F6E\u6280\u80FD\u680F\u53EF\u4EE5\u4E0A\u4E0B\u6EDA\u52A8\uFF0C\u56E0\u6B64\u5982\u679C\u53D1\u73B0\u663E\u793A\u4E0D\u5168\uFF0C\u53EF\u4EE5\u5C1D\u8BD5\u4E0A\u4E0B\u6EDA\u52A8\u524D\u7F6E\u6280\u80FD\u680F","
","
","\u6CE8\u610F\uFF0C\u6280\u80FD\u5728\u70B9\u5F00\u4E4B\u540E\u662F\u65E0\u6CD5\u53D6\u6D88\u7684\uFF0C\u56E0\u6B64\uFF0C\u52A0\u70B9\u65F6\u8BF7\u614E\u91CD\u52A0\u70B9\u3002\u6CE8\u610F\uFF0C\u90E8\u5206\u6280\u80FD\u662F\u5FC5\u70B9\u6280\u80FD\uFF0C\u8FD9\u4E9B\u6280\u80FD\u4F1A\u5728\u6280\u80FD\u8BF4\u660E\u4E2D\u660E\u786E\u6307\u51FA\uFF0C","\u8FD9\u4E9B\u6280\u80FD\u4E00\u822C\u9700\u8981\u5C3D\u65E9\u70B9\u51FA\u3002"]},desc={tip,about,tutorial,noun,shortcut,extraAttr,statusBar,markEnemy,book,fly,tools,skillTree},_hoisted_1$9={id:"desc-list"},_hoisted_2$7=["selected","onClick"],_hoisted_3$7={key:0},_hoisted_4$5=["innerHTML"],_sfc_main$9=defineComponent({__name:"desc",setup(__props){const selected=ref(Object.keys(desc)[0]);function exit(){core.plugin.descOpened.value=!1}const content=computed(()=>splitText(desc[selected.value].desc));function click(key){!eval(desc[key].condition)||(selected.value=key)}function show(condition){return eval(condition)}return(e,t)=>(openBlock(),createBlock(Column,{onClose:exit,width:80,height:80,left:30,right:70},{left:withCtx(()=>[createBaseVNode("div",_hoisted_1$9,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(desc),(i,n)=>(openBlock(),createElementBlock("div",{class:"selectable",selected:selected.value===n,onClick:s=>click(n)},[show(i.condition)?(openBlock(),createElementBlock("span",_hoisted_3$7,toDisplayString(i.text),1)):createCommentVNode("",!0)],8,_hoisted_2$7))),256))])]),right:withCtx(()=>[createBaseVNode("span",{innerHTML:unref(content)},null,8,_hoisted_4$5)]),_:1}))}}),desc_vue_vue_type_style_index_0_scoped_68d53667_lang="",Desc=_export_sfc(_sfc_main$9,[["__scopeId","data-v-68d53667"]]),none={text:"\u65E0",opened:"true",desc:["\u5F53\u524D\u672A\u9009\u62E9\u6280\u80FD"]},blade={text:"1\uFF1A\u65AD\u706D\u4E4B\u5203",opened:"core.getSkillLevel(2) > 0",desc:['\u5FEB\u6377\u952E1\uFF0C\u5F00\u542F\u540E\u52C7\u58EB\u653B\u51FB\u589E\u52A0${level:2 * 10}%\uFF0C',"\u540C\u65F6\u9632\u5FA1\u51CF\u5C11${level:2 * 10}%\u3002","
","
","\u5F53\u524D\u7B49\u7EA7\uFF1A${level:2}"]},jump={text:"2\uFF1A\u8DF3\u8DC3",opened:"flags.skill2 === true",desc:['\u5FEB\u6377\u952E2\uFF0C\u6D88\u8017200\u70B9\u751F\u547D\u503C\uFF0C\u56F0\u96BE\u6D88\u8017400\u70B9\uFF0C\u4E00\u4E2A\u5730\u56FE\u53EA\u80FD\u4F7F\u75283\u6B21\uFF0C',"\u5982\u679C\u524D\u65B9\u4E3A\u53EF\u901A\u884C\u7684\u5730\u9762\uFF0C\u5219\u4E0D\u80FD\u4F7F\u7528\u8BE5\u6280\u80FD\uFF0C\u5982\u679C\u524D\u65B9\u4E3A\u602A\u7269\uFF0C\u5219\u5C06\u602A\u7269\u79FB\u81F3\u52C7\u58EB\u89C6\u7EBF\u4E0A\u7B2C\u4E00\u4E2A\u4E0D\u80FD\u901A\u884C\u7684\u65B9\u5757\u540E","\u5982\u679C\u524D\u65B9\u4E3A\u969C\u788D\u7269\uFF0C\u5219\u76F4\u63A5\u8DF3\u5230\u8BE5\u969C\u788D\u7269\u7684\u540E\u65B9\u3002"]},shield={text:"3\uFF1A\u94F8\u5251\u4E3A\u76FE",opened:"core.getSkillLevel(10) > 0",desc:['\u5FEB\u6377\u952E3\uFF0C\u5F00\u542F\u540E\u52C7\u58EB\u9632\u5FA1\u589E\u52A0${level:10 * 10}%\uFF0C',"\u540C\u65F6\u653B\u51FB\u51CF\u5C11${level:10 * 10}%\u3002","
","
","\u5F53\u524D\u7B49\u7EA7\uFF1A${level:10}"]},skills={none,blade,jump,shield},_hoisted_1$8={id:"skill-list"},_hoisted_2$6=["selected","selectable","onClick"],_hoisted_3$6=["innerHTML"],_sfc_main$8=defineComponent({__name:"skill",setup(__props){const selected=ref("none");function skillOpened(skill){return eval(skills[skill].opened)}function select(e){!skillOpened(e)||(selected.value=e)}const content=computed(()=>eval("`"+skills[selected.value].desc.map((e,t,i)=>/^\d+\./.test(e)?`${" ".repeat(12)}${e}`:has(i[t-1])&&e!=="
"&&i[t-1]==="
"||t===0?`${" ".repeat(8)}${e}`:e).join("").replace(/level:(\d+)/g,"core.getSkillLevel($1)")+"`"));function exit(){core.plugin.skillOpened.value=!1}return(e,t)=>(openBlock(),createBlock(Column,{onClose:exit,width:70,height:70},{left:withCtx(()=>[createBaseVNode("div",_hoisted_1$8,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(skills),(i,n)=>(openBlock(),createElementBlock("span",{class:"selectable skill-item",selected:n===selected.value,selectable:skillOpened(n),onClick:s=>select(n)},toDisplayString(i.text),9,_hoisted_2$6))),256))])]),right:withCtx(()=>[createBaseVNode("span",{innerHTML:unref(content)},null,8,_hoisted_3$6)]),_:1}))}}),skill_vue_vue_type_style_index_0_scoped_9f619ff1_lang="",Skill=_export_sfc(_sfc_main$8,[["__scopeId","data-v-9f619ff1"]]),_withScopeId$3=e=>(pushScopeId("data-v-b1be4e88"),e=e(),popScopeId(),e),_hoisted_1$7={id:"skill-tree"},_hoisted_2$5={id:"tools"},_hoisted_3$5={id:"skill-title"},_hoisted_4$4={id:"skill-info"},_hoisted_5$4=["innerHTML"],_hoisted_6$4={id:"skill-effect"},_hoisted_7$4=["innerHTML"],_hoisted_8$3=["innerHTML"],_hoisted_9$3={id:"skill-bottom"},_hoisted_10$3=_withScopeId$3(()=>createBaseVNode("canvas",{id:"skill-canvas"},null,-1)),_hoisted_11$3={id:"skill-upgrade-info"},_hoisted_12$2={id:"skill-level"},_hoisted_13$2={key:1,id:"skill-consume",style:{color:"gold"}},_hoisted_14$2={id:"skill-front"},_hoisted_15$1=_withScopeId$3(()=>createBaseVNode("span",null,"\u524D\u7F6E\u6280\u80FD",-1)),_hoisted_16$1={id:"skill-chapter"},_sfc_main$7=defineComponent({__name:"skillTree",setup(__props){var e;let canvas,ctx;const selected=ref(0),chapter=ref("chapter1"),update=ref(!1),chapterDict={chapter1:"\u7B2C\u4E00\u7AE0",chapter2:"\u7B2C\u4E8C\u7AE0"};(e=flags.skillTree)!=null||(flags.skillTree=0);const chapterList=Object.keys(core.plugin.skills);selected.value=core.plugin.skills[chapterList[flags.skillTree]][0].index,chapter.value=chapterList[flags.skillTree],watch(selected,draw),watch(update,()=>mdef.value=core.status.hero.mdef);const mdef=ref(core.status.hero.mdef),skill=computed(()=>(update.value,core.getSkillFromIndex(selected.value))),skills=computed(()=>core.plugin.skills[chapter.value]),desc=computed(()=>eval("`"+splitText(skill.value.desc).replace(/level(:\d+)?/g,(t,i)=>i?`core.getSkillLevel(${i})`:`core.getSkillLevel(${skill.value.index})`)+"`")),effect=computed(()=>[0,1].map(v=>eval(`\`${v===0?"\u5F53\u524D\u6548\u679C\uFF1A":"\u4E0B\u4E00\u7EA7\u6548\u679C\uFF1A"}`+skill.value.effect.join("").replace(/level(:\d+)?/g,(t,i)=>i?`(core.getSkillLevel(${i}) + ${v})`:`(core.getSkillLevel(${skill.value.index}) + ${v})`)+"`"))),dict=computed(()=>{const t={};return skills.value.forEach((n,s)=>{t[n.index]=s}),t}),front=computed(()=>skill.value.front.map(t=>`${core.getSkillLevel(t[0])>=t[1]?"a":"b"}${t[1]}\u7EA7 ${skills.value[dict.value[t[0]]].title}`)),consume=computed(()=>(update.value,core.getSkillConsume(selected.value))),level=computed(()=>(update.value,core.getSkillLevel(selected.value)));function exit(){core.plugin.skillTreeOpened.value=!1}function resize(){const t=getComputedStyle(canvas);canvas.width=parseFloat(t.width)*devicePixelRatio,canvas.height=parseFloat(t.height)*devicePixelRatio}function draw(){const t=dict.value,n=canvas.width/11;ctx.clearRect(0,0,canvas.width,canvas.height),skills.value.forEach(s=>{const[a,r]=s.loc.map(l=>l*2-1);s.front.forEach(([l],c)=>{const d=skills.value[t[l]];ctx.beginPath(),ctx.moveTo(a*n+n/2,r*n+n/2),ctx.lineTo(...d.loc.map(u=>(u*2-1)*n+n/2)),core.getSkillLevel(d.index){const[a,r]=s.loc.map(d=>d*2-1),l=core.getSkillLevel(s.index);ctx.save(),ctx.lineWidth=n*.06,selected.value===s.index?(ctx.strokeStyle="#ff0",ctx.lineWidth*=2):l===0?ctx.strokeStyle="#888":l===s.max?ctx.strokeStyle="#F7FF68":ctx.strokeStyle="#00FF69",ctx.strokeRect(a*n,r*n,n,n);const c=core.material.images.images[`skill${s.index}.png`];ctx.drawImage(c,a*n,r*n,n,n),selected.value===s.index&&(ctx.fillStyle="#ff04",ctx.fillRect(a*n,r*n,n,n)),ctx.restore()})}function click(t){const i=t.offsetX,n=t.offsetY,a=canvas.width/devicePixelRatio/11,r=Math.floor(i/a),l=Math.floor(n/a);if(r%2!==1||l%2!==1)return;const c=Math.floor(r/2)+1,d=Math.floor(l/2)+1,u=skills.value.find(h=>h.loc[0]===c&&h.loc[1]===d);!u||(selected.value!==u.index?selected.value=u.index:upgrade(u.index))}function upgrade(t){core.upgradeSkill(t)?(tip$1("success","\u5347\u7EA7\u6210\u529F\uFF01"),update.value=!update.value,core.status.route.push(`skill:${selected.value}`)):tip$1("error","\u5347\u7EA7\u5931\u8D25\uFF01")}function key(t){const i=keycode(t.keyCode);(i===KeyCode.Escape||i===KeyCode.KeyX||i===KeyCode.KeyJ)&&exit(),(i===KeyCode.Space||i===KeyCode.Enter||i===KeyCode.KeyC)&&upgrade(selected.value)}onMounted(async()=>{canvas=document.getElementById("skill-canvas"),ctx=canvas.getContext("2d"),resize(),draw(),await S(50),core.plugin.transition.value&&await S(600),canvas.addEventListener("click",click),document.addEventListener("keyup",key)}),onUnmounted(()=>{document.removeEventListener("keyup",key)});function selectChapter(t){const n=chapterList.indexOf(chapter.value)+t;has(chapterList[n])&&flags.chapter>n&&(selected.value=core.plugin.skills[chapterList[n]][0].index,chapter.value=chapterList[n],update.value=!update.value,flags.skillTree=n,draw())}return(t,i)=>{const n=__unplugin_components_1;return openBlock(),createElementBlock("div",_hoisted_1$7,[createBaseVNode("div",_hoisted_2$5,[createBaseVNode("span",{id:"back",class:"button-text tools",onClick:exit},[createVNode(unref(LeftOutlined)),createTextVNode("\u8FD4\u56DE\u6E38\u620F")])]),createBaseVNode("span",_hoisted_3$5,toDisplayString(unref(skill).title),1),createVNode(n,{dashed:"",style:{"border-color":"#ddd4"},id:"divider"}),createBaseVNode("div",_hoisted_4$4,[createVNode(Scroll,{id:"skill-desc","no-scroll":!0},{default:withCtx(()=>[createBaseVNode("span",{innerHTML:unref(desc)},null,8,_hoisted_5$4)]),_:1}),createBaseVNode("div",_hoisted_6$4,[unref(level)>0?(openBlock(),createElementBlock("span",{key:0,innerHTML:unref(effect)[0]},null,8,_hoisted_7$4)):createCommentVNode("",!0),unref(level)[createBaseVNode("div",_hoisted_14$2,[_hoisted_15$1,(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(front),s=>(openBlock(),createElementBlock("span",{style:normalizeStyle({color:s.startsWith("a")?"#fff":"#f44"})},toDisplayString(s.slice(1)),5))),256))])]),_:1}),createVNode(n,{dashed:"",class:"upgrade-divider"}),createBaseVNode("div",_hoisted_16$1,[createBaseVNode("span",{class:"button-text",onClick:i[0]||(i[0]=s=>selectChapter(-1))},[createVNode(unref(LeftOutlined))]),createTextVNode(" \xA0\xA0 "),createBaseVNode("span",null,toDisplayString(chapterDict[chapter.value]),1),createTextVNode(" \xA0\xA0 "),createBaseVNode("span",{class:"button-text",onClick:i[1]||(i[1]=s=>selectChapter(1))},[createVNode(unref(RightOutlined))])])])])])}}}),skillTree_vue_vue_type_style_index_0_scoped_b1be4e88_lang="",SkillTree=_export_sfc(_sfc_main$7,[["__scopeId","data-v-b1be4e88"]]),index="";function init$4(){return{splitArea,getMapDrawData}}let area={};const bfsCache={},drawCache={},arrow={leftPortal:"left",rightPortal:"right",upPortal:"up",downPortal:"down"};function splitArea(){area={};const e=[];for(const t of core.floorIds){if(e.includes(t)||core.status.maps[t].deleted)continue;const i=getMapData(t,!0);if(e.push(...i.maps),i.maps.length>0){const n=core.status.maps[t].title;area[n]=i.maps}}}function getArea(){return area}function getMapDrawData(e,t=5,i=1,n=!1){var w;const s=`${e},${t},${i}`;if(drawCache[s]&&!n)return drawCache[s];const{link:a,maps:r}=getMapData(e,n),l={},c=[],d=core.status.maps[e];let u=-d.width/2,h=d.width/2,f=-d.height/2,g=d.height/2;for(const[_,D]of Object.entries(a)){const[B,P,N,L]=_.split(","),[U,H,W]=D.split(","),K=core.status.maps[B],G=core.status.maps[U],Y=parseInt(P),J=parseInt(N),ot=parseInt(H),ht=parseInt(W),st=K.width,ct=K.height,dt=G.width,mt=G.height;(w=l[B])!=null||(l[B]=[0,0]);const[ft,it]=l[B];if(!l[U]){const bt=core.utils.scan[L].x,vt=core.utils.scan[L].y,wt=ft+(Y-st/2)-(ot-dt/2)+(i*2+t)*bt,Bt=it+(J-ct/2)-(ht-mt/2)+(i*2+t)*vt;l[U]=[wt,Bt]}const[tt,lt]=l[U];c.push([ft+(Y-st/2+.5),it+(J-ct/2+.5),tt+(ot-dt/2+.5),lt+(ht-mt/2+.5)]);const ut=tt-dt/2,at=tt+dt/2,pt=lt-mt/2,gt=lt+mt/2;uth&&(h=at),ptg&&(g=gt)}Object.values(l).forEach(_=>{_[0]-=u,_[1]-=f}),c.forEach(_=>{_[0]-=u,_[2]-=u,_[1]-=f,_[3]-=f}),u-=5,h+=5,f-=5,g+=5;const m={locs:l,line:c,width:h-u,height:g-f};return drawCache[s]=m}function getMapData(e,t=!1){if(has(bfsCache[e])&&!t)return bfsCache[e];const i=[e],n={[e]:!0},s=[e],a={};for(;i.length>0;){const l=i.shift(),c=core.floors[l].changeFloor,d=core.getMapBlocksObj(l);for(const[u,h]of Object.entries(c)){const f=h.floorId;if(f.startsWith(":"))continue;const m=d[u].event.id;if(m in arrow&&!n[f]){const w=`${l},${u},${arrow[m]}`,_=`${f},${h.loc[0]},${h.loc[1]}`;a[w]=_,i.push(f),s.push(f)}}n[l]=!0}const r={maps:s,link:a};return bfsCache[e]=r}const _withScopeId$2=e=>(pushScopeId("data-v-581299e6"),e=e(),popScopeId(),e),_hoisted_1$6={id:"fly"},_hoisted_2$4={id:"tools"},_hoisted_3$4={id:"fly-settings"},_hoisted_4$3={id:"fly-border"},_hoisted_5$3=_withScopeId$2(()=>createBaseVNode("span",null,"\u65E0\u8FB9\u6846\u6A21\u5F0F",-1)),_hoisted_6$3={key:0,id:"fly-tradition"},_hoisted_7$3=_withScopeId$2(()=>createBaseVNode("span",null,"\u4F20\u7EDF\u6309\u952E\u6A21\u5F0F",-1)),_hoisted_8$2={id:"fly-main"},_hoisted_9$2={id:"fly-left"},_hoisted_10$2={id:"area-list"},_hoisted_11$2=["selected","onClick"],_hoisted_12$1={id:"fly-right"},_hoisted_13$1={id:"fly-tools"},_hoisted_14$1={id:"fly-now"},_sfc_main$6=defineComponent({__name:"fly",setup(e){var yt,At;const t=getArea(),i=ref(Object.keys(t).find(q=>t[q].includes(core.status.floorId))),n=ref(core.status.floorId),s=ref(!1),a=ref(!1);let r=isMobile?1.5:3,l=0,c=0,d={},u={};s.value=(yt=core.getLocalStorage("noBorder"))!=null?yt:!1,a.value=(At=core.getLocalStorage("flyTradition"))!=null?At:!1;const h=computed(()=>core.status.maps[n.value]);watch(n,Y),watch(i,q=>{var X;l=0,c=0,r=3,ot=3,t[q]&&!t[q].includes(n.value)&&(n.value=(X=t[q].find(et=>et===core.status.floorId))!=null?X:t[q][0])}),watch(s,q=>{core.setLocalStorage("noBorder",q),d={},N()}),watch(a,q=>{core.setLocalStorage("flyTradition",q)});const f=document.createElement("canvas"),g=f.getContext("2d");let m,w,_,D;function B(){core.plugin.flyOpened.value=!1}const P=computed(()=>core.status.maps[n.value].title);function N(q=!1){const X=s.value?.5:1,et=getMapDrawData(n.value,s.value?0:5,X,q),nt=g,Z=r*devicePixelRatio;f.width=et.width*Z,f.height=et.height*Z,nt.lineWidth=X*devicePixelRatio/2,nt.strokeStyle="#fff",nt.scale(Z,Z),nt.translate(5,5),s.value||et.line.forEach(([rt,St,xt,Mt])=>{nt.beginPath(),nt.moveTo(rt,St),nt.lineTo(xt,Mt),nt.stroke()});for(const[rt,[St,xt]]of Object.entries(et.locs))s.value||L(rt,St,xt),W(rt,St,xt);U()}function L(q,X,et){const nt=s.value?.5:1,Z=g;Z.lineWidth=nt*devicePixelRatio;const rt=core.status.maps[q];core.hasVisitedFloor(q)?Z.fillStyle="#000":Z.fillStyle="#d0d",q===n.value?Z.strokeStyle="gold":Z.strokeStyle="#fff",Z.strokeRect(X-rt.width/2,et-rt.height/2,rt.width,rt.height),Z.fillRect(X-rt.width/2,et-rt.height/2,rt.width,rt.height),q===n.value&&(Z.fillStyle="#ff04",Z.fillRect(X-rt.width/2,et-rt.height/2,rt.width,rt.height))}function U(q=1){w.clearRect(0,0,m.width,m.height),w.drawImage(f,0,0,f.width,f.height,l*devicePixelRatio+(m.width-f.width)/2,c*devicePixelRatio+(m.height-f.height)/2,f.width,f.height)}function H(q,X,et){const nt=core.status.maps[q],Z=r*devicePixelRatio,rt=l*devicePixelRatio+(m.width-f.width)/2+5*Z,St=c*devicePixelRatio+(m.height-f.height)/2+5*Z,xt=rt+(X-nt.width/2)*Z,Mt=St+(et-nt.height/2)*Z,Dt=xt+nt.width*Z,Et=Mt+nt.height*Z;return u[q]=[xt,Mt,Dt,Et],!(d[q]||!s.value&&r<=4||Dt<0||Et<0||xt>m.width||Mt>m.height)}function W(q,X,et,nt=!1){if(!nt&&!H(q,X,et))return;const Z=core.status.maps[q];d[q]=!0;const rt=g;core.drawThumbnail(q,void 0,{all:!0,inFlyMap:!0,x:X-Z.width/2,y:et-Z.height/2,w:Z.width,h:Z.height,ctx:rt,damage:!0}),core.hasVisitedFloor(q)||(rt.fillStyle="#d0d6",rt.fillRect(X-Z.width/2,et-Z.height/2,Z.width,Z.height),rt.fillStyle="#000"),n.value===q&&(rt.fillStyle="#ff04",rt.fillRect(X-Z.width/2,et-Z.height/2,Z.width,Z.height),rt.fillStyle="#000")}function K(){const q=s.value?.5:1,X=getMapDrawData(n.value,s.value?0:5,q);for(const[et,[nt,Z]]of Object.entries(X.locs))H(et,nt,Z)&&W(et,nt,Z,!0)}function G(){let q=_.width,X=_.height,et=0,nt=0;const Z=h.value.width/h.value.height;Z>1&&(X=q/Z,nt=_.height/2-X/2),Z<1&&(q=X*Z,et=_.width/2-q/2),D.fillStyle="#000",D.fillRect(0,0,_.width,_.height),core.drawThumbnail(n.value,void 0,{ctx:D,all:!0,damage:!0,inFlyMap:!0,x:et,y:nt,w:q,h:X})}function Y(){d={},N(),G()}function J(){core.flyTo(n.value)?B():tip$1("error",`\u65E0\u6CD5\u98DE\u5F80${h.value.title}`)}let ot=r;const ht=lodash.exports.debounce(q=>{m.style.transform="",d={},N(),ot=q},200);function st(q){l*=q,c*=q,r=q*r,ht(r),m.style.transform=`scale(${r/ot})`,u={}}let ct=0,dt=0,mt=!1,ft=0,it=0;function tt(q,X){if(vt)return;const et=q-ct,nt=X-dt;l+=et,c+=nt,ct=q,dt=X,K(),U(),(Math.abs(q-ft)>10||Math.abs(X-it)>10)&&(mt=!0)}function lt(q){if(mt)return;const X=q.offsetX*devicePixelRatio,et=q.offsetY*devicePixelRatio;for(const[nt,[Z,rt,St,xt]]of Object.entries(u))X>=Z&&X<=St&&et>=rt&&et<=xt&&(nt===n.value?J():n.value=nt)}function ut(q){i.value=Object.keys(t).find(X=>t[X].includes(q))}function at(q){const X=core.floorIds.indexOf(n.value);let et=X+q;if(et<0&&(et=0),et>=core.floorIds.length&&(et=core.floorIds.length-1),core.status.maps[core.floorIds[et]].deleted)for(;et!==X&&(et-=Math.sign(q),!!core.status.maps[core.floorIds[et]].deleted););n.value=core.floorIds[et],ut(n.value),gt(n.value)}function pt(q){const X=getMapData(n.value);for(const[et,nt]of Object.entries(X.link)){if(!et.startsWith(n.value))continue;if(et.split(",")[3]===q){const rt=nt.split(",")[0];gt(rt),n.value=rt;return}}}function gt(q){const X=getMapDrawData(q,s.value?0:5,s.value?.5:1);if(!X.locs[q])return;const[et,nt]=X.locs[q];l=(-et+X.width/2-5)*r,c=(-nt+X.height/2-5)*r}function bt(q){const X=keycode(q.keyCode);(X===KeyCode.Enter||X===KeyCode.Space||X===KeyCode.KeyC)&&J(),(X===KeyCode.Escape||X===KeyCode.KeyX||X===KeyCode.KeyG)&&B(),a.value?(X===KeyCode.UpArrow&&at(1),X===KeyCode.DownArrow&&at(-1),X===KeyCode.LeftArrow&&at(-10),X===KeyCode.RightArrow&&at(10),X===KeyCode.PageUp&&at(10),X===KeyCode.PageDown&&at(-10)):(X===KeyCode.LeftArrow&&pt("left"),X===KeyCode.RightArrow&&pt("right"),X===KeyCode.UpArrow&&pt("up"),X===KeyCode.DownArrow&&pt("down"),X===KeyCode.PageUp&&at(1),X===KeyCode.PageDown&&at(-1))}let vt=!1,wt=0;function Bt(q){q.touches.length>=2&&(vt=!0,wt=Math.sqrt((q.touches[0].clientX-q.touches[1].clientX)**2+(q.touches[0].clientY-q.touches[1].clientY)**2))}function _t(q){q.touches.length<2&&(vt=!1)}function kt(q){if(!vt)return;const X=Math.sqrt((q.touches[0].clientX-q.touches[1].clientX)**2+(q.touches[0].clientY-q.touches[1].clientY)**2);st(X/wt),wt=X}return onMounted(async()=>{m=document.getElementById("fly-map"),w=m.getContext("2d"),_=document.getElementById("fly-thumbnail"),D=_.getContext("2d");const q=getComputedStyle(m),X=getComputedStyle(_);m.width=parseFloat(q.width)*devicePixelRatio,m.height=parseFloat(q.height)*devicePixelRatio,_.width=parseFloat(X.width)*devicePixelRatio,_.height=parseFloat(X.width)*devicePixelRatio,Array.from(document.getElementsByClassName("fly-settings")).forEach(et=>{et.addEventListener("click",nt=>et.blur())}),gt(n.value),Y(),useDrag(m,tt,(et,nt)=>{ct=et,dt=nt,ft=et,it=nt},()=>{setTimeout(()=>{mt=!1},50)},!0),useWheel(m,(et,nt)=>{const Z=-Math.sign(nt)*.1+1;st(Z)}),await S(50),core.plugin.transition.value&&await S(600),document.addEventListener("keyup",bt),m.addEventListener("touchstart",Bt),m.addEventListener("touchend",_t),m.addEventListener("touchend",kt)}),onUnmounted(()=>{cancelGlobalDrag(tt),document.removeEventListener("keyup",bt)}),(q,X)=>{const et=__unplugin_components_0$1,nt=__unplugin_components_1;return openBlock(),createElementBlock("div",_hoisted_1$6,[createBaseVNode("div",_hoisted_2$4,[createBaseVNode("span",{class:"button-text",onClick:B},[createVNode(unref(LeftOutlined)),createTextVNode(" \u8FD4\u56DE\u6E38\u620F")])]),createBaseVNode("div",_hoisted_3$4,[createBaseVNode("div",_hoisted_4$3,[_hoisted_5$3,createVNode(et,{class:"fly-settings",checked:s.value,"onUpdate:checked":X[0]||(X[0]=Z=>s.value=Z),"checked-children":"ON","un-checked-children":"OFF"},null,8,["checked"])]),unref(isMobile)?createCommentVNode("",!0):(openBlock(),createElementBlock("div",_hoisted_6$3,[_hoisted_7$3,createVNode(et,{class:"fly-settings",checked:a.value,"onUpdate:checked":X[1]||(X[1]=Z=>a.value=Z),"checked-children":"ON","un-checked-children":"OFF"},null,8,["checked"])]))]),createBaseVNode("div",_hoisted_8$2,[createBaseVNode("div",_hoisted_9$2,[createVNode(Scroll,{id:"fly-area"},{default:withCtx(()=>[createBaseVNode("div",_hoisted_10$2,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(t),(Z,rt)=>(openBlock(),createElementBlock("span",{selected:i.value===rt,class:"selectable",onClick:St=>i.value=rt},toDisplayString(rt),9,_hoisted_11$2))),256))])]),_:1}),createVNode(nt,{type:"vertical",dashed:"",id:"divider-left"}),createBaseVNode("div",{id:"fly-map-div"},[createBaseVNode("canvas",{id:"fly-map",onClick:lt})])]),createVNode(nt,{id:"divider-right",dashed:"",type:unref(isMobile)?"horizontal":"vertical"},null,8,["type"]),createBaseVNode("div",_hoisted_12$1,[createBaseVNode("canvas",{id:"fly-thumbnail",onClick:J}),createBaseVNode("div",_hoisted_13$1,[createVNode(unref(DoubleLeftOutlined),{onClick:X[2]||(X[2]=Z=>at(-10)),class:"button-text"}),createVNode(unref(LeftOutlined),{onClick:X[3]||(X[3]=Z=>at(-1)),class:"button-text"}),createBaseVNode("span",_hoisted_14$1,toDisplayString(unref(P)),1),createVNode(unref(RightOutlined),{onClick:X[4]||(X[4]=Z=>at(1)),class:"button-text"}),createVNode(unref(DoubleRightOutlined),{onClick:X[5]||(X[5]=Z=>at(10)),class:"button-text"})])])])])}}}),fly_vue_vue_type_style_index_0_scoped_581299e6_lang="",Fly=_export_sfc(_sfc_main$6,[["__scopeId","data-v-581299e6"]]),bookOpened=ref(!1),toolOpened=ref(!1),equipOpened=ref(!1),showStatusBar=ref(!1),settingsOpened=ref(!1),descOpened=ref(!1),skillOpened=ref(!1),skillTreeOpened=ref(!1),flyOpened=ref(!1),transition=ref(!0),noClosePanel=ref(!1);let app;const UI_LIST=[[bookOpened,Book],[toolOpened,Toolbox],[equipOpened,Equipbox],[settingsOpened,Settings],[descOpened,Desc],[skillOpened,Skill],[skillTreeOpened,SkillTree],[flyOpened,Fly]],uiStack=ref([]);function init$3(){return app=document.getElementById("root"),UI_LIST.forEach(([e,t])=>{watch(e,i=>{if(i===!0)uiStack.value.push(markRaw(t)),showApp();else{const n=uiStack.value.findIndex(s=>s===t);uiStack.value.length===1?hideApp(n):uiStack.value.splice(n,1)}})}),{uiStack,transition,bookOpened,toolOpened,equipOpened,showStatusBar,settingsOpened,descOpened,skillOpened,skillTreeOpened,flyOpened}}async function showApp(){core.lockControl(),transition.value?app.style.transition="all 0.6s linear":app.style.transition="none",app.style.display="flex",await S(50),app.style.opacity="1"}async function hideApp(e){transition.value?(app.style.transition="all 0.6s linear",app.style.opacity="0",await S(600)):(app.style.transition="",app.style.opacity="0"),uiStack.value.splice(e,1),app.style.display="none",noClosePanel.value||core.closePanel(),noClosePanel.value=!1}const status=ref(!1);function init$2(){return{statusBarStatus:status}}const chapterShowed=ref(!1),chapterContent=ref("");function init$1(){return{chapterShowed,chapterContent}}const ani=new R;ani.register("rect",0);const path1={MT16:[[23,23],[0,23]],MT15:[[63,4],[61,4],[61,5],[58,5],[58,8],[54,8],[54,11],[51,11],[51,8],[45,8],[45,4],[47,4],[47,6],[51,6],[51,5],[52,5],[52,3],[50,3],[50,5],[48,5],[48,3],[35,3],[35,5],[31,5],[31,7],[34,7],[34,9],[31,9],[31,11],[12,11],[12,8],[1,8],[1,7],[0,7]],MT14:[[127,7],[126,7],[126,8],[124,8],[124,7],[115.2,7],[115.2,9.2],[110.2,9.2],[110.2,11],[109.8,11],[109.8,8.8],[111.8,8.8],[111.8,7],[104,7],[104,3],[100,3],[100,4],[98,4],[98,3],[96,3],[96,6],[95,6],[95,7],[88,7],[88,6],[85,6],[85,8],[83,8],[83,9],[81,9],[81,11],[72,11],[72,5],[68,5],[68,8],[67,8],[67,10],[65,10],[65,11],[62,11],[62,9],[60,9],[60,11],[57,11],[57,9],[54,9]]},camera1=[["MT16",0,10,0,1600,C("sin","in")],["MT15",45,0,0,2324,C("sin","in")],["MT15",40,0,2324,1992,C("sin","out")],["MT15",41,0,5312,498,C("sin","in-out")],["MT15",37,0,5810,1660,C("sin","in")],["MT15",29,0,7470,830,C("sin","out")],["MT15",25,0,11454,996,C("sin","in")],["MT15",12,0,12450,996,j()],["MT15",0,0,13446,1470,C("sin","out")],["MT14",109,0,0,1328,C("sin","in")],["MT14",104,0,1328,332,C("sin","out")],["MT14",92,0,5478,2822,C("sin","in")],["MT14",84,0,8300,1992,j()],["MT14",74,0,10292,2988,j()],["MT14",65,0,13280,2988,j()],["MT14",58,0,16268,1992,j()],["MT14",47,0,18260,3320,j()],["MT14",36,0,21580,3320,j()],["MT14",0,0,24900,9960,j()]];function init1(){const e=["MT13","MT14","MT15"],t=[];e.forEach(i=>{core.status.maps[i].cannotMoveDirectly=!0,core.extractBlocks(i),core.status.maps[i].blocks.forEach(n=>{["animates","items"].includes(n.event.cls)&&!n.event.id.endsWith("Portal")&&t.push([n.x,n.y,i])})}),t.forEach(i=>{core.removeBlock(...i)})}function chaseShake(e){e.ani.mode(shake2(2/32,O(1,1,1,1,1,1,1,1,1,1,1,1)),!0).time(5e4).shake(1,0)}async function wolfMove(e){core.moveBlock(23,17,Array(6).fill("down"),80),await S(550),core.setBlock(508,23,23)}function judgeFail1(e){e.ani.ticker.add(()=>{core.status.hero.loc.x>core.bigmap.offsetX/32+17&&(e.end(),ani.time(750).apply("rect",0),core.lose("\u9003\u8DD1\u5931\u8D25"))})}function drawBack(e){e.on("MT15",0,()=>{ani.mode(C("sin","out")).time(1500).absolute().apply("rect",64);const t=core.createCanvas("chaseBack",0,0,480,480,120);t.fillStyle="#000";const i=()=>{t||ani.ticker.remove(i),core.clearMap(t),t.fillRect(0,0,480,ani.value.rect),t.fillRect(0,480,480,-ani.value.rect)};ani.ticker.add(i)})}function para1(e){e.on("MT15",830,()=>{for(let t=53;t<58;t++)for(let i=3;i<8;i++)core.setBlock(336,t,i);core.drawAnimate("explosion3",55,5),core.drawAnimate("stone",55,5)}),e.on("MT15",1080,()=>{core.setBlock(336,58,9),core.setBlock(336,59,9),core.drawAnimate("explosion1",58,9),core.drawAnimate("explosion1",59,9)}),e.on("MT15",1190,()=>{core.setBlock(336,53,8),core.setBlock(336,52,8),core.drawAnimate("explosion1",53,8),core.drawAnimate("explosion1",52,8)}),e.on("MT15",1580,()=>{core.setBlock(336,51,7),core.drawAnimate("explosion1",51,7)}),e.on("MT15",1830,()=>{core.setBlock(336,47,7),core.setBlock(336,49,9),core.drawAnimate("explosion1",49,9),core.drawAnimate("explosion1",47,7)})}function para2(e){e.onHeroLoc("MT15",()=>{core.setBlock(336,45,9),core.drawAnimate("explosion1",45,9)},45,8),e.onHeroLoc("MT15",()=>{core.setBlock(336,44,6),core.drawAnimate("explosion1",44,6)},45,6),e.onHeroLoc("MT15",()=>{core.setBlock(336,44,4),core.drawAnimate("explosion1",44,4),core.drawAnimate("explosion1",48,6),core.removeBlock(48,6)},45,4),e.onHeroLoc("MT15",()=>{core.setBlock(336,41,4),core.setBlock(336,32,6),core.drawAnimate("explosion1",41,4),core.drawAnimate("explosion1",32,6)},41,3),e.onHeroLoc("MT15",()=>{core.drawAnimate("explosion3",37,7),core.vibrate("vertical",1e3,25,10);for(let t=36;t<42;t++)for(let i=4;i<11;i++)core.setBlock(336,t,i)},35,3),e.onHeroLoc("MT15",()=>{core.vibrate("vertical",1e4,25,1),core.removeBlock(34,8),core.removeBlock(33,8),core.drawAnimate("explosion1",34,8),core.drawAnimate("explosion1",33,8)},31,5),e.onHeroLoc("MT15",()=>{core.setBlock(336,32,9),core.drawAnimate("explosion1",32,9)},33,7),e.onHeroLoc("MT15",()=>{core.removeBlock(32,9),core.drawAnimate("explosion1",32,9)},[33,34,34],9);for(let t=19;t<31;t++){const i=t;e.onHeroLoc("MT15",()=>{core.setBlock(336,i+1,11),core.drawAnimate("explosion1",i+1,11)},i,11)}}function para3(e){e.onHeroLoc("MT14",()=>{core.setBlock(336,126,6),core.setBlock(336,124,6),core.setBlock(336,124,9),core.setBlock(336,126,9),core.drawAnimate("explosion1",126,6),core.drawAnimate("explosion1",124,6),core.drawAnimate("explosion1",124,9),core.drawAnimate("explosion1",126,9)},126,7),e.onHeroLoc("MT14",()=>{core.setBlock(508,127,7),core.jumpBlock(127,7,112,7,500,!0),setTimeout(()=>{core.setBlock(509,112,7)},520),core.drawHeroAnimate("amazed"),core.setBlock(336,121,6),core.setBlock(336,122,6),core.setBlock(336,120,8),core.setBlock(336,121,8),core.setBlock(336,122,8),core.drawAnimate("explosion1",121,6),core.drawAnimate("explosion1",122,6),core.drawAnimate("explosion1",120,8),core.drawAnimate("explosion1",121,8),core.drawAnimate("explosion1",122,8)},123,7),e.onHeroLoc("MT14",()=>{core.setBlock(336,109,11),core.removeBlock(112,8),core.drawAnimate("explosion1",109,11),core.drawAnimate("explosion1",112,8),core.insertAction([{type:"moveHero",time:400,steps:["backward:1"]}]),e.onHeroLoc("MT14",()=>{core.jumpBlock(112,7,110,4,500,!0),core.drawHeroAnimate("amazed"),setTimeout(()=>{core.setBlock(506,110,4)},540)},112,8)},110,10),e.onHeroLoc("MT14",()=>{core.setBlock(336,117,6),core.setBlock(336,116,6),core.setBlock(336,115,6),core.setBlock(336,114,6),core.setBlock(336,117,8),core.setBlock(336,116,8),core.drawAnimate("explosion1",117,6),core.drawAnimate("explosion1",116,6),core.drawAnimate("explosion1",115,6),core.drawAnimate("explosion1",114,6),core.drawAnimate("explosion1",116,8),core.drawAnimate("explosion1",117,8)},118,7),e.onHeroLoc("MT14",()=>{core.setBlock(336,112,8),core.setBlock(336,113,7),core.drawAnimate("explosion1",112,8),core.drawAnimate("explosion1",113,7)},112,7),e.onHeroLoc("MT14",()=>{for(let t=111;t<=115;t++)core.setBlock(336,t,10),core.drawAnimate("explosion1",t,10);core.setBlock(336,112,8),core.drawAnimate("explosion1",112,8)},115,7),e.onHeroLoc("MT14",()=>{core.jumpBlock(97,4,120,-3,2e3);for(let t=109;t<=120;t++)for(let i=3;i<=11;i++)i!=7&&core.setBlock(336,t,i);core.drawAnimate("explosion2",119,7),core.removeBlock(105,7),core.drawAnimate("explosion1",105,7)},110,7),e.onHeroLoc("MT14",()=>{core.setBlock(336,95,3),core.setBlock(336,93,6),core.drawAnimate("explosion1",95,3),core.drawAnimate("explosion1",93,6)},97,3),e.onHeroLoc("MT14",()=>{core.setBlock(336,87,4),core.setBlock(336,88,5),core.drawAnimate("explosion1",87,4),core.drawAnimate("explosion1",88,5)},88,6),e.onHeroLoc("MT14",()=>{core.setBlock(336,84,6),core.setBlock(336,85,5),core.setBlock(336,86,8),core.drawAnimate("explosion1",84,6),core.drawAnimate("explosion1",85,5),core.drawAnimate("explosion1",86,8)},86,6),e.onHeroLoc("MT14",()=>{core.setBlock(336,81,8),core.setBlock(336,82,11),core.drawAnimate("explosion1",81,8),core.drawAnimate("explosion1",82,11)},81,9),e.onHeroLoc("MT14",()=>{core.setBlock(336,73,8),core.setBlock(336,72,4),core.drawAnimate("explosion1",73,8),core.drawAnimate("explosion1",72,4)},72,11),e.onHeroLoc("MT14",()=>{for(let t=74;t<86;t++)for(let i=3;i<12;i++)core.setBlock(336,t,i);core.drawAnimate("explosion2",79,7),core.vibrate("vertical",4e3,25,15)},71,7),e.onHeroLoc("MT14",()=>{core.setBlock(336,68,4),core.setBlock(336,67,6),core.drawAnimate("explosion1",68,4),core.drawAnimate("explosion1",67,6)},68,5),e.onHeroLoc("MT14",()=>{for(let t=65;t<=72;t++)for(let i=3;i<=9;i++)core.setBlock(336,t,i);core.setBlock(336,72,10),core.setBlock(336,72,11),core.drawAnimate("explosion3",69,5)},67,10),e.onHeroLoc("MT14",()=>{core.setBlock(336,63,9),core.setBlock(336,60,8),core.setBlock(336,56,11),core.drawAnimate("explosion1",63,9),core.drawAnimate("explosion1",60,8),core.drawAnimate("explosion1",56,11)},64,11),e.onHeroLoc("MT14",()=>{for(let t=58;t<=64;t++)for(let i=3;i<=11;i++)core.setBlock(336,t,i);core.drawAnimate("explosion2",61,7)},57,9);for(let t=21;t<49;t++)e.onHeroLoc("MT14",()=>{for(let i=3;i<=11;i++)core.setBlock(336,t+4,i),core.drawAnimate("explosion1",t+4,i)},t);e.onHeroLoc("MT14",async()=>{flags.finishChase1=!0,core.autoFixRouteBoss(),core.showStatusBar(),ani.time(750).apply("rect",0),e.end(),await S(750),ani.ticker.destroy(),core.deleteCanvas("chaseBack")},21)}function getChaseDataByIndex(e){if(e===1)return init1(),{camera:camera1,fns:[para1,para2,para3,chaseShake,wolfMove,drawBack,judgeFail1],path:path1};throw new ReferenceError("Deliver wrong chase index.")}function init(){return{startChase}}function shake2(e,t){let i=0;return n=>(i+=Math.PI/2,Math.sin(i)*e*t(n))}class Chase{constructor(t,i,n,s=!1){Q(this,"ani",new R);Q(this,"path");Q(this,"showPath",!1);this.path=t,flags.__lockViewport__=!0,flags.onChase=!0,flags.chaseTime={[core.status.floorId]:Date.now()},this.ani.absolute().time(0).move(core.bigmap.offsetX/32,core.bigmap.offsetY/32),i.forEach(l=>l(this));const a=[],r=core.createCanvas("chasePath",0,0,0,0,35);for(const[l,c,d,u,h,f,g]of n)a.includes(l)||(this.on(l,0,()=>{flags.__lockViewport__=!1,core.drawHero(),flags.__lockViewport__=!0,this.ani.time(0).move(core.bigmap.offsetX/32,core.bigmap.offsetY/32)},!0),a.push(l)),has(g)?this.on(l,u,()=>{this.ani.time(h).mode(f).moveAs(g)}):this.on(l,u,()=>{this.ani.time(h).mode(f).move(c,d)});if(this.ani.ticker.add(()=>{flags.floorChanging||(core.setViewport(this.ani.x*32,this.ani.y*32),core.relocateCanvas(r,-this.ani.x*32,-this.ani.y*32))}),s)for(const[l,c]of Object.entries(t))this.on(l,0,()=>{const d=core.status.maps[l];core.resizeCanvas(r,d.width*32,d.height*32),r.beginPath(),r.moveTo(c[0][0]*32+16,c[1][1]*32+24),r.lineJoin="round",r.lineWidth=4,r.strokeStyle="cyan",r.globalAlpha=.3,c.forEach((u,h,f)=>{if(h===0)return;const[g,m]=u;r.lineTo(g*32+16,m*32+24)}),r.stroke()})}on(t,i,n,s=!1){const a=()=>{var r,l,c;!((r=flags.chaseTime)!=null&&r[t])||Date.now()-((c=(l=flags.chaseTime)==null?void 0:l[t])!=null?c:0)>=i&&(n(this),this.ani.ticker.remove(a))};this.ani.ticker.add(a,s)}onHeroLoc(t,i,n,s,a=0){if(a===1){typeof n=="number"&&(n=[n]),typeof s=="number"&&(s=[s]),n.forEach(c=>{s.forEach(d=>{this.onHeroLoc(t,i,c,d)})});return}const r=()=>{if(core.status.floorId!==t)return!1;if(has(n)){if(typeof n=="number"){if(core.status.hero.loc.x!==n)return!1}else if(!n.includes(core.status.hero.loc.x))return!1}if(has(s)){if(typeof s=="number"){if(core.status.hero.loc.y!==s)return!1}else if(!s.includes(core.status.hero.loc.y))return!1}return!0},l=()=>{if(r()){i(this);try{this.ani.ticker.remove(l)}catch(c){}}};this.ani.ticker.add(l)}setPathShowStatus(t){this.showPath=t}end(){this.ani.ticker.destroy(),delete flags.onChase,delete flags.chase,flags.__lockViewport__=!1,core.deleteCanvas("chasePath")}}async function startChase(e){const t=getChaseDataByIndex(e);flags.chaseIndex=e,flags.onChase=!0,await S(20),flags.chase=new Chase(t.path,t.fns,t.camera,flags.chaseHard===0)}function forward(){const e=[init$a(),init$3(),init$7(),init$8(),init$9(),init$2(),init$6(),init$5(),init$1(),init$4(),init()];(async function(){for(const t of e)for(const i in t){const n=t[i];i in core.plugin||(core.plugin[i]=n),n instanceof Function&&(i in core||i.startsWith("_")||(core[i]=n))}console.log("\u63D2\u4EF6\u8F6C\u53D1\u5B8C\u6210\uFF01")})()}main.forward=forward;const _hoisted_1$5={id:"ui"},_sfc_main$5=defineComponent({__name:"App",setup(e){return(t,i)=>(openBlock(),createElementBlock("div",_hoisted_1$5,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(uiStack),n=>(openBlock(),createBlock(resolveDynamicComponent(n)))),256))]))}}),App_vue_vue_type_style_index_0_scoped_9668aeb3_lang="",App=_export_sfc(_sfc_main$5,[["__scopeId","data-v-9668aeb3"]]),_imports_0="/HumanBreak/project/images/skill.png",_imports_1="/HumanBreak/project/images/hp.png",_imports_2="/HumanBreak/project/images/atk.png",_imports_3="/HumanBreak/project/images/def.png",_imports_4="/HumanBreak/project/images/IQ.png",_imports_5="/HumanBreak/project/images/money.png",_imports_6="/HumanBreak/project/images/exp.png",_hoisted_1$4=["id"],_hoisted_2$3=["id"],_hoisted_3$3=["id","selected"],_hoisted_4$2=["id","selected"],_hoisted_5$2=["id","selected"],_hoisted_6$2=["id","selected"],_hoisted_7$2=["id","selected"],_sfc_main$4=defineComponent({__name:"box",props:{resizable:{type:Boolean},left:null,top:null,width:null,height:null},emits:["update:left","update:top","update:width","update:height"],setup(e,{emit:t}){const i=e,n=(1e8*Math.random()).toFixed(0),s=ref(!1);let a=0,r,l,c,d,u,h;const f=ref(isMobile?window.innerWidth-100:window.innerWidth*.175),g=ref(isMobile?250:window.innerHeight-100),m=ref(50),w=ref(50);watch(m,Y=>t("update:left",Y)),watch(w,Y=>t("update:top",Y)),watch(f,Y=>t("update:width",Y)),watch(g,Y=>t("update:height",Y));async function _(){s.value=!0,a=window.setTimeout(()=>{s.value=!1},4e3)}let D=0,B=0;function P(Y,J){const ot=getComputedStyle(r),ht=parseFloat(ot.left),st=parseFloat(ot.top);m.value=ht+Y-D,w.value=st+J-B,r.style.left=`${m.value}px`,r.style.top=`${w.value}px`,s.value=!0,clearTimeout(a),D=Y,B=J}let N=m.value+f.value;function L(Y,J){r.style.left=`${Y}px`,f.value=N-Y,m.value=Y,r.style.width=`${f.value}px`}let U=w.value+g.value;function H(Y,J){r.style.top=`${J}px`,g.value=U-J,w.value=J,r.style.height=`${g.value}px`}function W(Y,J){const ot=getComputedStyle(r);f.value=Y-parseFloat(ot.left),r.style.width=`${f.value}px`}function K(Y,J){const ot=getComputedStyle(r);g.value=J-parseFloat(ot.top),r.style.height=`${g.value}px`}function G(){r=document.getElementById(`box-${n}`),document.getElementById(`box-move-${n}`),l=document.getElementById(`border-left-${n}`),d=document.getElementById(`border-top-${n}`),c=document.getElementById(`border-right-${n}`),u=document.getElementById(`border-bottom-${n}`),h=document.getElementById(`box-drag-${n}`),r&&(has(i.left)&&(m.value=i.left),has(i.top)&&(w.value=i.top),has(i.width)&&(f.value=i.width),has(i.height)&&(g.value=i.height),r.style.left=`${m.value}px`,r.style.top=`${w.value}px`,r.style.width=`${f.value}px`,r.style.height=`${g.value}px`)}return onUpdated(G),onMounted(async()=>{await S(50),G(),r&&(useDrag(h,P,(Y,J)=>{D=Y,B=J},()=>{s.value=!1},!0),i.resizable&&(useDrag(l,L,(Y,J)=>{N=m.value+f.value},void 0,!0),useDrag(d,H,(Y,J)=>{U=w.value+g.value},void 0,!0),useDrag(c,W,void 0,void 0,!0),useDrag(u,K,void 0,void 0,!0)))}),onUnmounted(()=>{cancelGlobalDrag(P),i.resizable&&(cancelGlobalDrag(L),cancelGlobalDrag(H),cancelGlobalDrag(W),cancelGlobalDrag(K))}),(Y,J)=>(openBlock(),createElementBlock("div",{id:`box-${unref(n)}`,class:"box"},[createBaseVNode("div",{id:`box-main-${unref(n)}`,class:"box-main",onClick:_},[renderSlot(Y.$slots,"default",{},void 0,!0)],8,_hoisted_2$3),createBaseVNode("div",{id:`box-move-${unref(n)}`,class:"box-move",selected:s.value},[createVNode(unref(DragOutlined),{id:`box-drag-${unref(n)}`,class:"box-drag",style:{right:"0",bottom:"0",position:"absolute"}},null,8,["id"])],8,_hoisted_3$3),createBaseVNode("div",{class:"border border-vertical border-left",id:`border-left-${unref(n)}`,selected:s.value&&e.resizable},null,8,_hoisted_4$2),createBaseVNode("div",{class:"border border-horizontal border-top",id:`border-top-${unref(n)}`,selected:s.value&&e.resizable},null,8,_hoisted_5$2),createBaseVNode("div",{class:"border border-vertical border-right",id:`border-right-${unref(n)}`,selected:s.value&&e.resizable},null,8,_hoisted_6$2),createBaseVNode("div",{class:"border border-horizontal border-bottom",id:`border-bottom-${unref(n)}`,selected:s.value&&e.resizable},null,8,_hoisted_7$2)],8,_hoisted_1$4))}}),box_vue_vue_type_style_index_0_scoped_c65890c4_lang="",Box=_export_sfc(_sfc_main$4,[["__scopeId","data-v-c65890c4"]]),_withScopeId$1=e=>(pushScopeId("data-v-8d174b23"),e=e(),popScopeId(),e),_hoisted_1$3={id:"status-bar"},_hoisted_2$2={id:"status-div"},_hoisted_3$2={id:"status-lv"},_hoisted_4$1={id:"status-skill",class:"status-item"},_hoisted_5$1=_withScopeId$1(()=>createBaseVNode("img",{src:_imports_0,class:"status-icon"},null,-1)),_hoisted_6$1={id:"status-hp",class:"status-item"},_hoisted_7$1=_withScopeId$1(()=>createBaseVNode("img",{src:_imports_1,class:"status-icon"},null,-1)),_hoisted_8$1={class:"status-item-bold"},_hoisted_9$1={id:"status-hpmax",class:"status-extra status-item-bold"},_hoisted_10$1={key:0,id:"status-spring",class:"status-extra"},_hoisted_11$1={id:"status-atk",class:"status-item"},_hoisted_12=_withScopeId$1(()=>createBaseVNode("img",{src:_imports_2,class:"status-icon"},null,-1)),_hoisted_13={class:"status-item-bold"},_hoisted_14={id:"status-mana",class:"status-extra status-item-bold"},_hoisted_15={id:"status-def",class:"status-item status-item-bold"},_hoisted_16=_withScopeId$1(()=>createBaseVNode("img",{src:_imports_3,class:"status-icon"},null,-1)),_hoisted_17={id:"status-mdef",class:"status-item status-item-bold"},_hoisted_18=_withScopeId$1(()=>createBaseVNode("img",{src:_imports_4,class:"status-icon"},null,-1)),_hoisted_19={id:"status-money",class:"status-item status-item-bold"},_hoisted_20=_withScopeId$1(()=>createBaseVNode("img",{src:_imports_5,class:"status-icon"},null,-1)),_hoisted_21={id:"status-exp",class:"status-item status-item-bold"},_hoisted_22=_withScopeId$1(()=>createBaseVNode("img",{src:_imports_6,class:"status-icon"},null,-1)),_hoisted_23={id:"status-key",class:"status-item status-item-bold"},_hoisted_24={style:{color:"#fca","padding-left":"10%"}},_hoisted_25={style:{color:"#aad"}},_hoisted_26={style:{color:"#f88","padding-right":"10%"}},_hoisted_27={key:0,class:"status-item"},_hoisted_28={key:1,class:"status-item"},_sfc_main$3=defineComponent({__name:"statusBar",setup(e){const t=ref(isMobile?window.innerWidth-100:window.innerWidth*.175),i=ref(isMobile?250:window.innerHeight-100),n=ref(!1),s=core.formatBigNumber;watch(t,B=>n.value=!n.value),watch(i,B=>n.value=!n.value);const a=shallowReactive({}),r=shallowReactive([]),l=ref(),c=ref(),d=ref("\u65E0"),u=ref(0),h=ref(),f=ref(core.getFlag("chapter",0)>0),g=["hp","atk","def","mdef","hpmax","mana","money","exp","lv"];watch(status,m);function m(){var B,P;g.forEach(N=>{a[N]=core.getRealStatus(N)}),r[0]=core.itemCount("yellowKey"),r[1]=core.itemCount("blueKey"),r[2]=core.itemCount("redKey"),l.value=(B=core.status.thisMap)==null?void 0:B.title,c.value=core.getLvName(a.lv),flags.blade&&flags.bladeOn?(d.value="\u65AD\u706D\u4E4B\u5203",a.atk*=1+core.getSkillLevel(2)/10,a.def*=1-core.getSkillLevel(2)/10):flags.shield&&flags.shieldOn?(d.value="\u94F8\u5251\u4E3A\u76FE",a.def*=1+core.getSkillLevel(10)/10,a.atk*=1-core.getSkillLevel(10)/10):d.value="\u65E0",u.value=(P=core.getNextLvUpNeed())!=null?P:0,core.hasFlag("spring")&&(h.value=50-flags.springCount),f.value=core.getFlag("chapter",0)>0}function w(B){B.stopPropagation(),core.useItem("skill1")}function _(B){B.stopPropagation(),core.useItem("cross")}function D(B){B.stopPropagation(),core.ui._drawViewMaps()}return(B,P)=>(openBlock(),createElementBlock("div",_hoisted_1$3,[createVNode(Box,{resizable:!0,width:t.value,"onUpdate:width":P[1]||(P[1]=N=>t.value=N),height:i.value,"onUpdate:height":P[2]||(P[2]=N=>i.value=N)},{default:withCtx(()=>[createVNode(Scroll,{id:"status-main",update:n.value,"onUpdate:update":P[0]||(P[0]=N=>n.value=N),"no-scroll":!0},{default:withCtx(()=>{var N,L,U;return[createBaseVNode("div",_hoisted_2$2,[createBaseVNode("span",{id:"status-floor",onClick:D,class:"button-text"},toDisplayString(l.value),1),createBaseVNode("span",_hoisted_3$2,toDisplayString(c.value),1),createBaseVNode("div",_hoisted_4$1,[_hoisted_5$1,createBaseVNode("span",null,toDisplayString(d.value),1)]),createBaseVNode("div",_hoisted_6$1,[_hoisted_7$1,createBaseVNode("span",_hoisted_8$1,toDisplayString(unref(s)(unref(a).hp)),1),createBaseVNode("span",_hoisted_9$1,"+"+toDisplayString(unref(s)(unref(a).hpmax))+"/t",1),unref(has)(h.value)?(openBlock(),createElementBlock("span",_hoisted_10$1,"\u5269\u4F59"+toDisplayString(h.value),1)):createCommentVNode("",!0)]),createBaseVNode("div",_hoisted_11$1,[_hoisted_12,createBaseVNode("span",_hoisted_13,toDisplayString(unref(s)(unref(a).atk)),1),createBaseVNode("span",_hoisted_14,"+"+toDisplayString(unref(s)(unref(a).mana)),1)]),createBaseVNode("div",_hoisted_15,[_hoisted_16,createBaseVNode("span",null,toDisplayString(unref(s)(unref(a).def)),1)]),createBaseVNode("div",_hoisted_17,[_hoisted_18,createBaseVNode("span",null,toDisplayString(unref(s)(unref(a).mdef)),1)]),createBaseVNode("div",_hoisted_19,[_hoisted_20,createBaseVNode("span",null,toDisplayString(unref(s)(unref(a).money)),1)]),createBaseVNode("div",_hoisted_21,[_hoisted_22,createBaseVNode("span",null,toDisplayString(unref(s)(u.value)),1)]),createBaseVNode("div",_hoisted_23,[createBaseVNode("span",_hoisted_24,toDisplayString((N=unref(r)[0])==null?void 0:N.toString().padStart(2,"0")),1),createBaseVNode("span",_hoisted_25,toDisplayString((L=unref(r)[1])==null?void 0:L.toString().padStart(2,"0")),1),createBaseVNode("span",_hoisted_26,toDisplayString((U=unref(r)[2])==null?void 0:U.toString().padStart(2,"0")),1)]),f.value?(openBlock(),createElementBlock("div",_hoisted_27,[createBaseVNode("span",{id:"skill-tree",class:"button-text",onClick:w},"\u6280\u80FD\u6811")])):createCommentVNode("",!0),f.value?(openBlock(),createElementBlock("div",_hoisted_28,[createBaseVNode("span",{id:"status-skill",class:"button-text",onClick:_},"\u67E5\u770B\u6280\u80FD")])):createCommentVNode("",!0)])]}),_:1},8,["update"])]),_:1},8,["width","height"])]))}}),statusBar_vue_vue_type_style_index_0_scoped_8d174b23_lang="",StatusBar=_export_sfc(_sfc_main$3,[["__scopeId","data-v-8d174b23"]]),_hoisted_1$2={id:"marked-enemy"},_hoisted_2$1={class:"marked-main"},_hoisted_3$1={class:"marked-info"},_hoisted_4={class:"marked-name marked-item"},_hoisted_5={class:"marked-damage marked-item"},_hoisted_6={class:"marked-critical marked-item"},_hoisted_7={class:"marked-critical-damage marked-item"},_hoisted_8={class:"marked-def marked-item"},_hoisted_9={class:"marked-button"},_hoisted_10=["onClick"],_hoisted_11=["onClick"],_sfc_main$2=defineComponent({__name:"markedEnemy",setup(e){var u,h;const t=(h=(u=core.status.thisMap)==null?void 0:u.ratio)!=null?h:1;let i=getMarkedEnemy();watch(checkMarkedStatus,s);const n=reactive({});function s(){i.push(...i.splice(0,i.length));for(const f in n)i.includes(f)||delete n[f]}function a(f){return has(n[f])||(n[f]={left:window.innerWidth-300,top:100,width:200,height:150,hidden:!1}),n[f]}function r(f){return core.material.enemys[f].name}function l(f){var g,m;return(m=core.formatBigNumber((g=core.getDamageInfo(f))==null?void 0:g.damage))!=null?m:"???"}function c(f){var g,m;return(m=(g=core.nextCriticals(f,1)[0])==null?void 0:g.map(w=>core.formatBigNumber(w)))!=null?m:[0,0]}function d(f){return core.formatBigNumber(core.getDefDamage(f,t))}return(f,g)=>(openBlock(),createElementBlock("div",_hoisted_1$2,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(i),m=>(openBlock(),createElementBlock("div",null,[a(m).hidden?createCommentVNode("",!0):(openBlock(),createBlock(Box,{key:m,left:a(m).left,"onUpdate:left":w=>a(m).left=w,top:a(m).top,"onUpdate:top":w=>a(m).top=w,width:a(m).width,"onUpdate:width":w=>a(m).width=w,height:a(m).height,"onUpdate:height":w=>a(m).height=w,resizable:!0},{default:withCtx(()=>[createVNode(Scroll,{class:"box-scroll","no-scroll":!0},{default:withCtx(()=>[createBaseVNode("div",_hoisted_2$1,[createBaseVNode("div",_hoisted_3$1,[createVNode(_sfc_main$l,{id:m,width:24,height:24},null,8,["id"]),createBaseVNode("span",_hoisted_4,toDisplayString(r(m)),1)]),createBaseVNode("span",_hoisted_5,"\u4F24\u5BB3\uFF1A"+toDisplayString(l(m)),1),createBaseVNode("span",_hoisted_6,"\u4E34\u754C\uFF1A"+toDisplayString(c(m)[0]),1),createBaseVNode("span",_hoisted_7,"\u51CF\u4F24\uFF1A"+toDisplayString(c(m)[1]),1),createBaseVNode("span",_hoisted_8,toDisplayString(unref(t))+"\u9632\uFF1A"+toDisplayString(d(m)),1),createBaseVNode("div",_hoisted_9,[createBaseVNode("span",{class:"marked-hide button-text",onClick:withModifiers(w=>a(m).hidden=!0,["stop"])},"\u9690\u85CF\u76D2\u5B50",8,_hoisted_10),createBaseVNode("span",{class:"marked-cancel button-text",onClick:withModifiers(w=>unref(unmarkEnemy)(m),["stop"])},"\u53D6\u6D88\u6807\u8BB0",8,_hoisted_11)])])]),_:2},1024)]),_:2},1032,["left","onUpdate:left","top","onUpdate:top","width","onUpdate:width","height","onUpdate:height"]))]))),256))]))}}),markedEnemy_vue_vue_type_style_index_0_scoped_5d5d9f17_lang="",MarkedEnemy=_export_sfc(_sfc_main$2,[["__scopeId","data-v-5d5d9f17"]]),_withScopeId=e=>(pushScopeId("data-v-74e3c165"),e=e(),popScopeId(),e),_hoisted_1$1={id:"chapter"},_hoisted_2=_withScopeId(()=>createBaseVNode("canvas",{id:"chapter-back"},null,-1)),_hoisted_3={id:"chapter-text"},_sfc_main$1=defineComponent({__name:"chapter",props:{chapter:null},setup(e){const t=e;let i,n,s;return onMounted(async()=>{i=document.getElementById("chapter-back"),n=i.getContext("2d"),s=document.getElementById("chapter-text");const a=new R,r=window.innerWidth*devicePixelRatio,l=window.innerHeight*devicePixelRatio;n.font="5vh scroll";const c=n.measureText(t.chapter).width,d=l*.05;a.register("rect",0),a.register("line",-10),a.register("lineOpacity",1),a.register("rect2",l/2),a.register("text",window.innerWidth+10+c),i.width=r,i.height=l,i.style.width=`${window.innerWidth}px`,i.style.height=`${window.innerHeight}px`,s.style.left=`${r+10}px`,s.style.top=`${window.innerHeight/2-l*.025}px`,s.style.height=`${l*.05}px`,s.style.width=`${c}px`;let u=!1,h=!1;a.ticker.add(f=>{if(!(!has(f)||isNaN(f))){if(!h){h=!0;return}f>=4050&&(chapterShowed.value=!1,a.ticker.destroy()),!u&&f>=1500&&(u=!0,core.playSound("chapter.mp3")),n.restore(),n.save(),s.style.left=`${a.value.text}px`,n.fillStyle="#000",n.clearRect(0,0,r,l),f<=2e3?(n.fillRect(0,l/2,r,-a.value.rect),n.fillRect(0,l/2,r,a.value.rect)):f>=2e3&&f<=3050&&(n.fillRect(0,0,r,a.value.rect2),n.fillRect(0,l,r,-a.value.rect2)),n.shadowColor="#fff",n.shadowBlur=3,n.shadowOffsetX=0,n.shadowOffsetY=0,n.lineWidth=3,n.strokeStyle="#fff",n.fillStyle="#fff",n.globalAlpha=a.value.lineOpacity,n.beginPath(),n.moveTo(0,l/2-d),n.lineTo(a.value.line,l/2-d),n.stroke(),n.beginPath(),n.moveTo(r,l/2+d),n.lineTo(r-a.value.line,l/2+d),n.stroke(),n.shadowBlur=0,n.filter="blur(5px)",n.beginPath(),n.arc(a.value.line,l/2-d,10,0,Math.PI*2),n.fill(),n.beginPath(),n.arc(r-a.value.line,l/2+d,10,0,Math.PI*2),n.fill()}}),a.mode(C("tan","center")).time(3e3).absolute().apply("line",r+10).mode(C("sin","in")).time(1e3).apply("rect",l/2).mode(C("tan","center")).time(3e3).apply("text",-c*2-10),await S(2e3),a.mode(C("sin","in")).time(1e3).apply("rect2",0),await S(1e3),a.mode(C("sin","out")).time(1e3).apply("lineOpacity",0)}),(a,r)=>(openBlock(),createElementBlock("div",_hoisted_1$1,[_hoisted_2,createBaseVNode("span",_hoisted_3,toDisplayString(e.chapter),1)]))}}),chapter_vue_vue_type_style_index_0_scoped_74e3c165_lang="",Chapter=_export_sfc(_sfc_main$1,[["__scopeId","data-v-74e3c165"]]),_hoisted_1={id:"non-ui"},_sfc_main=defineComponent({__name:"App2",setup(e){return(t,i)=>(openBlock(),createElementBlock("div",_hoisted_1,[unref(showStatusBar)?(openBlock(),createBlock(StatusBar,{key:0})):createCommentVNode("",!0),unref(showMarkedEnemy)?(openBlock(),createBlock(MarkedEnemy,{key:1})):createCommentVNode("",!0),unref(chapterShowed)?(openBlock(),createBlock(Chapter,{key:2,chapter:unref(chapterContent)},null,8,["chapter"])):createCommentVNode("",!0)]))}}),App2_vue_vue_type_style_index_0_scoped_7a936755_lang="",App2=_export_sfc(_sfc_main,[["__scopeId","data-v-7a936755"]]),styles="",antd_dark="";createApp(App).mount("#root");createApp(App2).mount("#root2");export{__vite_legacy_guard}; diff --git a/index.html b/index.html index 03b336b..ee14b28 100644 --- a/index.html +++ b/index.html @@ -18,7 +18,7 @@ - + @@ -215,7 +215,7 @@ - + \ No newline at end of file diff --git a/libs/control.js b/libs/control.js index fd3e6cb..6328058 100644 --- a/libs/control.js +++ b/libs/control.js @@ -1502,7 +1502,6 @@ control.prototype.checkBlock = function () { core.updateStatusBar(false, true); } } - this._checkBlock_ambush(core.status.checkBlock.ambush[loc]); this._checkBlock_repulse(core.status.checkBlock.repulse[loc]); }; @@ -1533,42 +1532,6 @@ control.prototype._checkBlock_repulse = function (repulse) { core.insertAction(actions); }; -////// 捕捉 ////// -control.prototype._checkBlock_ambush = function (ambush) { - if (!ambush || ambush.length == 0) return; - // 捕捉效果 - var actions = []; - ambush.forEach(function (t) { - actions.push({ - type: 'move', - loc: [t[0], t[1]], - steps: [t[3]], - time: 250, - keep: false, - async: true - }); - }); - actions.push({ type: 'waitAsync' }); - // 强制战斗 - ambush.forEach(function (t) { - actions.push({ - type: 'function', - function: - 'function() { ' + - "core.battle('" + - t[2] + - "', " + - t[0] + - ',' + - t[1] + - ', true, core.doAction); ' + - '}', - async: true - }); - }); - core.insertAction(actions); -}; - ////// 更新全地图显伤 ////// control.prototype.updateDamage = function (floorId, ctx) { floorId = floorId || core.status.floorId; @@ -1701,9 +1664,9 @@ control.prototype._updateDamage_extraDamage = function (floorId, onMap) { }); } else { // 检查捕捉 - if (core.status.checkBlock.ambush[x + ',' + y]) { + if (core.status.checkBlock.mockery[x + ',' + y]) { core.status.damage.extraData.push({ - text: '!', + text: '嘲', px: 32 * x + 16, py: 32 * (y + 1) - 14, color: '#ffaa33', diff --git a/libs/maps.js b/libs/maps.js index 1438596..d51f369 100644 --- a/libs/maps.js +++ b/libs/maps.js @@ -1077,8 +1077,7 @@ maps.prototype._canMoveDirectly_checkNextPoint = function (blocksObj, x, y) { // 是否存在阻激夹域伤害 if (core.status.checkBlock.damage[index]) return false; if (core.status.checkBlock.repulse[index]) return false; - // 是否存在捕捉 - if (core.status.checkBlock.ambush[index]) return false; + if (core.status.checkBlock.mockery[index]) return false; return true; }; @@ -1175,8 +1174,7 @@ maps.prototype._automaticRoute_deepAdd = function (x, y, blocks) { } // 绕过存在伤害的地方 deepAdd += (core.status.checkBlock.damage[x + ',' + y] || 0) * 100; - // 绕过捕捉 - if (core.status.checkBlock.ambush[x + ',' + y]) deepAdd += 1000; + deepAdd += core.status.checkBlock.mockery[`${x},${y}`] ? 1000 : 0; return deepAdd; }; diff --git a/project/enemys.js b/project/enemys.js index 5355e32..34d99ff 100644 --- a/project/enemys.js +++ b/project/enemys.js @@ -1,10 +1,10 @@ var enemys_fcae963b_31c9_42b4_b48c_bb48d09f3f80 = { "greenSlime": {"name":"绿头怪","hp":100,"atk":11,"def":3,"money":0,"exp":1,"point":0,"special":[],"description":"一种极其低级的怪物,低级到普通人用手都可以打死。"}, - "redSlime": {"name":"红头怪","hp":120,"atk":16,"def":6,"money":0,"exp":2,"point":0,"special":[],"value":10}, - "blackSlime": {"name":"青头怪","hp":170,"atk":20,"def":8,"money":0,"exp":3,"point":0,"special":[]}, - "slimelord": {"name":"粘液王","hp":200,"atk":58,"def":24,"money":0,"exp":8,"point":0,"special":[]}, - "bat": {"name":"小蝙蝠","hp":60,"atk":15,"def":0,"money":0,"exp":2,"point":0,"special":[4]}, + "redSlime": {"name":"红头怪","hp":120,"atk":16,"def":6,"money":0,"exp":2,"point":0,"special":[],"value":10,"description":"即使是最弱的怪物,也有进化的时候,对吧?"}, + "blackSlime": {"name":"青头怪","hp":170,"atk":20,"def":8,"money":0,"exp":3,"point":0,"special":[],"description":"看,这就是最弱的怪物进化出的最强的怪物之一了"}, + "slimelord": {"name":"粘液王","hp":200,"atk":58,"def":24,"money":0,"exp":8,"point":0,"special":[],"description":"看上去黏糊糊的,实际也确实黏糊糊的,据说是史莱姆族的长老级人物"}, + "bat": {"name":"小蝙蝠","hp":60,"atk":15,"def":0,"money":0,"exp":2,"point":0,"special":[4],"description":"经常出现在山洞中,再平常不过了。但是这次它却有了攻击性。"}, "bigBat": {"name":"大蝙蝠","hp":150,"atk":17,"def":5,"money":0,"exp":4,"point":0,"special":[4],"crit":0,"charge":0,"courage":0,"together":0,"hungry":0,"value":100,"n":1000}, "redBat": {"name":"恐怖蝙蝠","hp":1200,"atk":260,"def":110,"money":1,"exp":32,"point":0,"special":[5]}, "vampire": {"name":"冥灵魔王","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, @@ -32,7 +32,7 @@ var enemys_fcae963b_31c9_42b4_b48c_bb48d09f3f80 = "demonPriest": {"name":"魔神法师","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, "goldHornSlime": {"name":"尖角怪","hp":1500,"atk":366,"def":166,"money":1,"exp":35,"point":0,"special":[]}, "silverSlime": {"name":"银头怪","hp":250,"atk":50,"def":20,"money":0,"exp":11,"point":0,"special":[2]}, - "whiteHornSlime": {"name":"尖角怪","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, + "whiteHornSlime": {"name":"恐怖尖角怪","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, "redSwordsman": {"name":"山间盗贼","hp":1000,"atk":175,"def":40,"money":1,"exp":24,"point":0,"special":[4],"n":8}, "poisonZombie": {"name":"绿兽人","hp":100,"atk":120,"def":0,"money":13,"exp":0,"point":0,"special":[12]}, "octopus": {"name":"血影","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, @@ -68,7 +68,7 @@ var enemys_fcae963b_31c9_42b4_b48c_bb48d09f3f80 = "bowman": {"name":"猎人","hp":500,"atk":100,"def":50,"money":0,"exp":16,"point":0,"special":[24],"value":75}, "liteBowman": {"name":"山间猎手","hp":1200,"atk":200,"def":60,"money":1,"exp":27,"point":0,"special":[24]}, "crimsonZombie": {"name":"勇气之兽","hp":1800,"atk":2000,"def":-100,"money":1,"exp":35,"point":0,"special":[]}, - "watcherSlime": {"name":"邪眼怪","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, + "watcherSlime": {"name":"邪眼史莱姆","hp":5000,"atk":900,"def":600,"money":1,"exp":50,"point":0,"special":[17]}, "mutantSlimeman": {"name":"变异史莱姆人","hp":350,"atk":70,"def":27,"money":0,"exp":13,"point":0,"special":[]}, "devilKnight": {"name":"恶灵骑士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, "grayPriest": {"name":"智慧法王","hp":3000,"atk":600,"def":250,"money":1,"exp":40,"point":0,"special":[13]}, @@ -122,5 +122,9 @@ var enemys_fcae963b_31c9_42b4_b48c_bb48d09f3f80 = "E549": {"name":"智慧之史","hp":1000,"atk":1000,"def":100,"money":1,"exp":35,"point":0,"special":[1],"crit":10000}, "E550": {"name":"智慧之兔","hp":1500,"atk":600,"def":200,"money":1,"exp":35,"point":0,"special":[8],"together":20}, "E556": {"name":"智慧之姆","hp":3000,"atk":800,"def":200,"money":1,"exp":45,"point":0,"special":[8],"together":20}, - "E557": {"name":"智慧之神","hp":10000,"atk":2000,"def":800,"money":10,"exp":500,"point":0,"special":[]} + "E557": {"name":"智慧之神","hp":10000,"atk":2000,"def":800,"money":10,"exp":500,"point":0,"special":[]}, + "E561": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, + "E562": {"name":"嘲讽剑客","hp":2000,"atk":1500,"def":600,"money":1,"exp":50,"point":0,"special":[19]}, + "E563": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}, + "E564": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]} } \ No newline at end of file diff --git a/project/floors/MT22.js b/project/floors/MT22.js index b9e4461..8b929c9 100644 --- a/project/floors/MT22.js +++ b/project/floors/MT22.js @@ -29,7 +29,10 @@ main.floors.MT22= ], "3,9": [ "第二章的加点已开启,可以在技能树的前置技能下方选择", - "如果你玩过上个版本,直接跳到了本章,记得查看背包里面的各种道具,尤其是百科全书" + "如果你玩过上个版本,直接跳到了本章,记得查看背包里面的各种道具,尤其是百科全书,同时注意左边是你来的方向,那里还有些怪物" + ], + "7,9": [ + "对于电摇嘲讽的怪物,当一个点可以被多个怪物嘲讽时,会优先选择最靠左上角的怪物。其次,在进入嘲讽区域之前会自动存档" ] }, "changeFloor": { @@ -58,7 +61,7 @@ main.floors.MT22= [142,142,482,482,492, 0, 0,484, 0,494,484,491,484,143,143], [142,142,142,142,142, 0, 0, 0, 0,143,143,143,143,143,143], [ 92, 0, 0, 0,441, 0, 0,484, 0, 0, 0, 0, 0,143,143], - [143,143, 0,129, 0, 0, 0, 0, 0, 0, 0, 0, 0,143,143], + [143,143, 0,129, 0, 0, 0,129, 0, 0, 0, 0, 0,143,143], [143,143,492,143,492,143,492,143,492,143,492,143,492,143,143], [143,143,482,143,482,143,482,143,482,143,482,143,482,143,143], [143,143,482,143,482,143,482,143,482,143,482,143,482,143,143], diff --git a/project/floors/MT23.js b/project/floors/MT23.js index 7ff713f..4d351e4 100644 --- a/project/floors/MT23.js +++ b/project/floors/MT23.js @@ -36,8 +36,8 @@ main.floors.MT23= "map": [ [143,143,143,143,143,143,143,143,143,143,143,143, 91,143,143], [143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,143], - [143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94], - [143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,143], + [143, 0,275, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94], + [143, 0,562, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,143], [ 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,143], [143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,143], [143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,143], diff --git a/project/fonts/normal.ttf b/project/fonts/normal.ttf index a926771461c04f77fef43f6c1be9184afbf0281c..227c8863aea15bfffad3d11b7cafa3f61fedcc60 100644 GIT binary patch delta 39548 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�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 diff --git a/project/functions.js b/project/functions.js index 48358f7..0b4392a 100644 --- a/project/functions.js +++ b/project/functions.js @@ -424,6 +424,9 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = { if (core.getFlag('bladeOn') && core.getFlag('blade')) { core.setFlag('blade', false); } + if (core.getFlag('shieldOn') && core.getFlag('shield')) { + core.setFlag('shield', false); + } // 事件的处理 var todo = []; @@ -447,11 +450,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = { ); } core.push(todo, enemy.afterBattle); - if ( - core.status.hero.loc.direction == 'up' || - core.status.hero.loc.direction == 'down' - ) - core.insertAction([{ type: 'moveAction' }]); + // 在这里增加其他的自定义事件需求 /* if (enemyId=='xxx') { @@ -694,14 +693,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = { '经过两只相同的怪物中间,勇士生命值变成一半', '#bb99ee' ], - [ - 17, - '仇恨', - '战斗前,怪物附加之前积累的仇恨值作为伤害;战斗后,释放一半的仇恨值。(每杀死一个怪物获得' + - (core.values.hatred || 0) + - '点仇恨值)', - '#b0b666' - ], + [17, '先攻', '战斗时怪物首先攻击', '#b0b666'], [ 18, '阻击', @@ -714,7 +706,12 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = { }, '#8888e6' ], - [19, '自爆', '战斗后勇士的生命值变成1', '#ff6666'], + [ + 19, + '电摇嘲讽', + '当勇士移动到怪物同行或同列时,勇士会直接冲向怪物,撞碎路上的所有地形和门,拾取路上的道具,与路上的怪物以及该怪物战斗', + '#ff6666' + ], [20, '无敌', '勇士无法打败怪物,除非拥有十字架', '#aaaaaa'], [ 21, @@ -990,6 +987,9 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = { // 战斗伤害不能为负值 if (per_damage < 0) per_damage = 0; + // 先攻 + if (core.hasSpecial(mon_special, 17)) damage += per_damage; + // 2连击 & 3连击 & N连击 if (core.hasSpecial(mon_special, 4)) per_damage *= 2; if (core.hasSpecial(mon_special, 5)) per_damage *= 3; @@ -1431,7 +1431,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = { var damage = {}, // 每个点的伤害值 type = {}, // 每个点的伤害类型 repulse = {}, // 每个点的阻击怪信息 - ambush = {}; // 每个点的捕捉信息 + mockery = {}; // 电摇嘲讽 var betweenAttackLocs = {}; // 所有可能的夹击点 var needCache = false; var canGoDeadZone = core.flags.canGoDeadZone; @@ -1528,7 +1528,6 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = { } } // 射击 - // 如果要防止激光伤害,可以直接简单的将 flag:no_laser 设为true if (enemy && core.hasSpecial(enemy.special, 24)) { var beyondVisual = false; for (var nx = 0; nx < width; nx++) { @@ -1618,6 +1617,22 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = { } } + // 电摇嘲讽 + if (enemy && core.hasSpecial(enemy.special, 19)) { + for (let nx = 0; nx < width; nx++) { + if (!core.noPass(nx, y)) { + mockery[`${nx},${y}`] ??= []; + mockery[`${nx},${y}`].push([x, y]); + } + } + for (let ny = 0; ny < height; ny++) { + if (!core.noPass(x, ny)) { + mockery[`${x},${ny}`] ??= []; + mockery[`${x},${ny}`].push([x, y]); + } + } + } + // 夹击;在这里提前计算所有可能的夹击点,具体计算逻辑在下面 // 如果要防止夹击伤害,可以简单的将 flag:no_betweenAttack 设为true if ( @@ -1721,7 +1736,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = { damage: damage, type: type, repulse: repulse, - ambush: ambush, + mockery, needCache: needCache, cache: {}, // clear cache haveHunt: haveHunt diff --git a/project/icons.js b/project/icons.js index 09d8edd..09f42a5 100644 --- a/project/icons.js +++ b/project/icons.js @@ -327,7 +327,11 @@ var icons_4665ee12_3a1f_44a4_bea3_0fccba634dc1 = "E549": 115, "E550": 116, "E556": 117, - "E557": 118 + "E557": 118, + "E561": 119, + "E562": 120, + "E563": 121, + "E564": 122 }, "enemy48": { "angel": 0, diff --git a/project/items.js b/project/items.js index 35600dd..1978445 100644 --- a/project/items.js +++ b/project/items.js @@ -97,8 +97,8 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a = "cls": "items", "name": "红血瓶", "text": ",生命+${core.values.redPotion}", - "itemEffect": "core.status.hero.hp += 100 * core.status.thisMap.ratio", - "itemEffectTip": ",生命+${100 * core.status.thisMap.ratio}", + "itemEffect": "core.status.hero.hp += 100 * core.status.thisMap.ratio * (1 + core.getSkillLevel(13) / 50)", + "itemEffectTip": ",生命+${100 * core.status.thisMap.ratio * (1 + core.getSkillLevel(13) / 50)}", "useItemEffect": "core.status.hero.hp += core.values.redPotion", "canUseItemEffect": "true" }, @@ -106,8 +106,8 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a = "cls": "items", "name": "蓝血瓶", "text": ",生命+${core.values.bluePotion}", - "itemEffect": "core.status.hero.hp += 200 * core.status.thisMap.ratio", - "itemEffectTip": ",生命+${200 * core.status.thisMap.ratio}", + "itemEffect": "core.status.hero.hp += 200 * core.status.thisMap.ratio * (1 + core.getSkillLevel(13) / 50)", + "itemEffectTip": ",生命+${200 * core.status.thisMap.ratio * (1 + core.getSkillLevel(13) / 50)}", "useItemEffect": "core.status.hero.hp += core.values.bluePotion", "canUseItemEffect": "true" }, @@ -115,8 +115,8 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a = "cls": "items", "name": "黄血瓶", "text": ",生命+${core.values.yellowPotion}", - "itemEffect": "core.status.hero.hp += 400 * core.status.thisMap.ratio", - "itemEffectTip": ",生命+${400 * core.status.thisMap.ratio}", + "itemEffect": "core.status.hero.hp += 400 * core.status.thisMap.ratio * (1 + core.getSkillLevel(13) / 50)", + "itemEffectTip": ",生命+${400 * core.status.thisMap.ratio * (1 + core.getSkillLevel(13) / 50)}", "useItemEffect": "core.status.hero.hp += core.values.yellowPotion", "canUseItemEffect": "true" }, @@ -124,8 +124,8 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a = "cls": "items", "name": "绿血瓶", "text": ",生命+${core.values.greenPotion}", - "itemEffect": "core.status.hero.hp += 800 * core.status.thisMap.ratio", - "itemEffectTip": ",生命+${800 * core.status.thisMap.ratio}", + "itemEffect": "core.status.hero.hp += 800 * core.status.thisMap.ratio * (1 + core.getSkillLevel(13) / 50)", + "itemEffectTip": ",生命+${800 * core.status.thisMap.ratio * (1 + core.getSkillLevel(13) / 50)}", "useItemEffect": "core.status.hero.hp += core.values.greenPotion", "canUseItemEffect": "true" }, @@ -1180,8 +1180,8 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a = "cls": "items", "name": "大红血瓶", "text": ",生命+${core.values.redPotion}", - "itemEffect": "core.status.hero.hp += 1000 * core.status.thisMap.ratio", - "itemEffectTip": ",生命+${1000 * core.status.thisMap.ratio}", + "itemEffect": "core.status.hero.hp += 1000 * core.status.thisMap.ratio * (1 + core.getSkillLevel(13) / 50)", + "itemEffectTip": ",生命+${1000 * core.status.thisMap.ratio * (1 + core.getSkillLevel(13) / 50)}", "useItemEffect": "core.status.hero.hp += core.values.redPotion", "canUseItemEffect": "true" }, @@ -1193,8 +1193,8 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a = "cls": "items", "name": "大蓝血瓶", "text": ",生命+${core.values.redPotion}", - "itemEffect": "core.status.hero.hp += 2000 * core.status.thisMap.ratio", - "itemEffectTip": ",生命+${2000 * core.status.thisMap.ratio}", + "itemEffect": "core.status.hero.hp += 2000 * core.status.thisMap.ratio * (1 + core.getSkillLevel(13) / 50)", + "itemEffectTip": ",生命+${2000 * core.status.thisMap.ratio * (1 + core.getSkillLevel(13) / 50)}", "useItemEffect": "core.status.hero.hp += core.values.redPotion", "canUseItemEffect": "true" }, @@ -1210,8 +1210,8 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a = "cls": "items", "name": "大绿血瓶", "text": ",生命+${core.values.redPotion}", - "itemEffect": "core.status.hero.hp += 8000 * core.status.thisMap.ratio", - "itemEffectTip": ",生命+${8000 * core.status.thisMap.ratio}", + "itemEffect": "core.status.hero.hp += 8000 * core.status.thisMap.ratio * (1 + core.getSkillLevel(13) / 50)", + "itemEffectTip": ",生命+${8000 * core.status.thisMap.ratio * (1 + core.getSkillLevel(13) / 50)}", "useItemEffect": "core.status.hero.hp += core.values.redPotion", "canUseItemEffect": "true" }, @@ -1231,8 +1231,8 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a = "cls": "items", "name": "大黄血瓶", "text": ",生命+${core.values.redPotion}", - "itemEffect": "core.status.hero.hp += 4000 * core.status.thisMap.ratio", - "itemEffectTip": ",生命+${4000 * core.status.thisMap.ratio}", + "itemEffect": "core.status.hero.hp += 4000 * core.status.thisMap.ratio * (1 + core.getSkillLevel(13) / 50)", + "itemEffectTip": ",生命+${4000 * core.status.thisMap.ratio * (1 + core.getSkillLevel(13) / 50)}", "useItemEffect": "core.status.hero.hp += core.values.redPotion", "canUseItemEffect": "true" }, diff --git a/project/maps.js b/project/maps.js index 9f940a1..caa9982 100644 --- a/project/maps.js +++ b/project/maps.js @@ -485,6 +485,10 @@ var maps_90f36752_8815_4be8_b32b_d7fad1d0542e = "558": {"cls":"items","id":"I558"}, "559": {"cls":"items","id":"I559"}, "560": {"cls":"items","id":"I560"}, + "561": {"cls":"enemys","id":"E561"}, + "562": {"cls":"enemys","id":"E562"}, + "563": {"cls":"enemys","id":"E563"}, + "564": {"cls":"enemys","id":"E564"}, "20037": {"cls":"tileset","id":"X20037","cannotOut":["up","left"],"cannotIn":["up","left"]}, "20038": {"cls":"tileset","id":"X20038","cannotOut":["up"],"cannotIn":["up"]}, "20039": {"cls":"tileset","id":"X20039","cannotOut":["up","right"],"cannotIn":["up","right"]}, diff --git a/project/materials/enemys.png b/project/materials/enemys.png index 8c8c6880e21c9132eca1afaea6c810adb49af5f2..0c154e6711211afcdd6c7e0f6325b06e92bb1a3f 100644 GIT binary patch delta 58934 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

5Zz-Lyx86TXhQt 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�JEqQt~w=GEcb((B|a>2T=+Tc!a{Sb4L3GGa~T3fZ`9F1OW9xKp4gPb1j`* zdd#Byl%^5(i^1{PlVIEgf#JE`teJ=JOCb2D8aQ274PvJj`XX@%JXa|chx=Md)WluDBS0<_2ap9q0XynxrdeOCyy3@Ocr zz@NZWi2i-p%be>Uf`%{_tVIbf)}dKGwAjI-K~VI^*zwV_C;Z^S`G*P;v(~_GqErcg zengF^CP&&G&<pn|%lXS^fk-^46gNK?<8!08cK_VzUol2b1$xpqfiY zX3EIg8j&?8m+))~hur{yV=Hq(h|3pi0?qPYox-UOwptQ)+@2DqBd)aiqVSX!6_)ga zm}wvt%&Uxtn=>b>f{XxT@aDtmQ}DnScey7n^#zXW0!;*JYjO>+Z>MZ|>}6*ys6z$V z;JK8jxLEd>n4yh$4B=%j-Ws6eycoG4t~<$-u(>ImJSwHH5&r8$h0`F7A}><`1n?a% za+swDMv}En77nNy6aXf7697;RRg}7}sKFnZfOot5qq?#VlfpgGf%k>kczdA5ZEl93 z=BoA!$#N)>12`|QN>ST0c#dGzjOhLmavJ`?eDWOIo$QCg9#(pvIuN@@t!)B# z&wB02=<@{7TJ)WFVFCC@ih*^2{33(oLwm0ob1YW2QMGyoa@E5pMlG#HNx_rcEe1$L z?JP7I31lWcijfa*o`;W|o4OG5icn*1J*4h~!t^#efP;5ayYmg>rtMcIE~Bk+7f`;UFN538(zg>mvJda-UVPEWZvN|1Onn45YErVOH>rkDyT`6jtT z&(HiiRamZ>%WwKHtmCk05zizfdH4@<=Qg-NW)?f`v=4vLp>}b6wXKIrwnlV7BVst} z{OruNS|D*_XJ;X=yK!mO+CWM)YIIa2+rOv!U(u3zAM3WQITUoprG9S0cQN z5KIJs9lQz5w|;Fb&n=)VDT%=dWex&%?}Ktn=xE^7#kGNr(Ot(A(Om-CylACw1nkc! zmrp^m;5K^WK@7Z~?Jsl>$fyDX$Tta^oH7zsI0qH-n$Yd@)2qrF*iht3o7FnK)3z3G~U?VINos=@_$1<9 z8RQPwhJR_0;e%3XriSKTjy!Zo`DRG{voq=x|Dq-M($hzwdGh2>J`r=E_QA5`aBHbcakp-Br z*tDpZB!UTyX1#OK6+=zFmUP`Z)F4o>^cuYAdhpdPHrS$FFfg|~wogjv0i?2B;o_DF zHq%%-Z|&zpP3hX0q@d?kP(I}oAQdlp_z3pOf#Pqz!0cJ^_V*C$l<4DwC$m1C1_m;4 zb_{^1<7ZE*#^9HiSFk(Z$upNP$PssilKxSjY1MnJ3OX1&O89Q;)E!0S&DN?5LRJsS zEc(Wz0?>Wx@H~Y(R(8X`MxkrW{?tyoDmH>Cbh9rM$HX%SjjW z-3W3O5RW?S_>K;9y#wNoliy^$jECowB5>AD_1#^>k~$SHI!IF215UcbS$9&{Y6CGq zM(@ip+Vw22$E=xIkJF-ta~0bO7yd|DewkNvUxr=y%kSuwCH8p@NMSD(LgGzWWyydT zU$4W~rPzAoiL>L3l@(hbiz2A-fm8U}cf(AF-o6G5)aUIm#p8_O&!nicQn+4-)-BQ5 zL&JPwt=zkl5^e7a%m}HTrZB{@S(|_cEog(~y{dRUJ3RK}@cZ&)H#5)nH4tl$Z!{i> zHy}elm=AH=K@7h++fRzr%K8+J$*8WO@p5ylh(iLM9zBwyC&xha&IB=G0fkQ6^#WT~ z;J#gVA=!cIGd*y&k+c5-Zdg6d-K9$`{Po9=9x~w1$o+uheVXf{uh)z(1;iPD24*uQ zU{;N~*mzcFx(9%;Scn;Ob{q@f(c=XvWtUbak%HT zi5BFO?VpNEc!nH=|Dc73#CchXu0fs-i99U(BmYp{*eOphWUC53$y3}yT9oJ=hJnHg zY3=BO!$U4!KfZAn#m8*jo;X%|wlg0aO8kfsaa=@B0es*_TV9OR)6@*fu-%`A-Yk2} zU*71mQfc8t5NayJOI1^GbkxX)rfK!1A+K=(vhXk0XiHu%`D+kRH6h1nWU@CVOq*HkJ7v^ z{1QYh$u$2wD;Wfi5?d=sl~pGHV$hS@pWBsVuT?ipt=P~rrloeKBO z>E7MuPu`~1u|lr*4&gphYDQUbFDJKnL%p*biSQn0tpw}-kyZ*ZfA{ja_&ZNQY>jNT zAc6oU*)EPBS+q8Wg;V&(1e)KbWkvEVSTv4K$ASN)O#Uxq!b#jDtb9P*BE@C)p)->Do5MzY$ff>e zri9Vj_wzHfN#wlHhyd51$K@ag-}wUhmixJSA3V|(Eu z)B*z|e%LtLK;sHu_8WX+fKQhgMVQzlG2?0bH1pN3zvxn6-@5MYPx^e>Gi*ggJ3V2s zHnDV$&ws9&lu8NaMLBX_Y_;B}K4EQ-*_&w)n#v@+=}y!&_9cqHcW~q?YQgwD18;pl zMX6-dyZmp5I`B&S?=qbO!Gn;XC556|dlOo8yrwiibkQ_;RGOk!Vk=?n>f3qwu|vUy zRh~$**OJtr2LsAKN00xe(m74Nr-xN(*;l@$Y3g|6tQAs5R4SYcX@x@Q8GsS@JCiV4 zw1X8jgKMDD#1;#{HkEB-4NIfo(A0N2s6Nw*&0e?Qo9MO=MPf^|{K=pGl{*ceffh&k zYE0aOsk81_`nIuhN1OBE(tJQL<57IFtc0?k{d>hX6Q0C`-|bhFv6AQBt#83RnEc_z zCbWuAxKks;DA8H{I}_&v`B#drVzwd6fBb@e$6>@$N7ZJvD;sd)VDj5||HkjK*l0wP@FX_6hIpAGc`CC;vI+t4kvq)}ya3?tib zOv}pp_WF{MXX6U-^}*6|6K&PX&i~#3cwvxoZ{ zyMw>AS=B+)zuqZ9N~Y-?=mEL1_IySEtsa}j9upQh#l7aK@=lFVCNS(hb#YgSfWR^3 zfoJ%Ton559Fck%3TYl-1RAQ1X*aOmV~W4P#$XVJef?4-Z8I=(aM4y@e-Ipe zV5qQm6kr06?F;VAcfv%J4&DkoVJCQzbp`TIY(2aC#IOEEKunlggja*&+7`Q#AM@QL z9T!aE$(R|Z27^YG7Z!3&_PaJi9+x2=R5tp3u_z#DmCBhwr@iI3_tZla1>3R7H3rmK z(hQmo6DB9y{xm8Z)SKyNc*4?+-r+qis*b`ok?)6pdPgo4uYE~K)%^T%loWDaKc3V_ z-JV!D06z+KEGPG2t$JWbE>_}0m6NHE=~un_qI5QF*;ha+Z^WYn9P!3~DVDqaGnspv z1{}f(n$k*C_@y;T{Nbdu7_l`j+`L#KX2nTVL26Tfi(L=YPcXWzx~FtKpL*&SD-+}q z6Gz&?0du@LWnGz1{Fv_gffhaau8D8>U+pkG>|n)_avGl?9!lz2l_T^rc+0}mzx}t# zP$Pv6ji9|7A-Y@l^DS3O81(;u`HiKfO|P9QJX^2Q?6K9a$(}=;1SU&PSRt|~t8hAv zQknND@$co#)E{@lyF0{d85`X=4>C(ntdX=9@SnG>ZgUCS>b3N@LT6_(gS6?LN=uHO zOzZRmJmN2=_-@Gt$5$}eIp%MyCPXroTj2KYDN7UeLuDkW>)><2hcxdpldu0CIjG~L z+jC&sc-s^#H44M@mU=wl`;s(r%#OjytMwNz_M0O@Q;{?X_Wr5W1#TQw#@bEMHQ@6@ z_-C{ioo=*rY7w0w{@DBKi<=r@V{?ItTsFTx9s#@C4s+S()cjQ&u^sY9}Mx!YY={qo9Q8a&*Y+@CJYN7!LgBA*V~9d!)4IWv;G=M zCzeaIvIBL@2-^o z$<-BB32#}_90Mc$(gThPLJUQ?y5xnzXR-&dx5p?5iCo@QDmqRpI|YKjEV#2>36_`$ z!e{;K$N~L4X9;)ZXAOk&l)(OcZL~B0Of^gTU-`{GUk<|iPgW@0j)Q@5uW-4qw&5W| zO7fgc>#9;PBnec9Uh#3JIV~6SV*BgE=Z0v@wM~bV?_SgSsNK@VJm~{q=&YHQp8>9S zThN|=y(c@3{PGm!qcXY^_OApgS1IlIVG2m*}Ioy+b)~>*~g`Y7^m1~6eJ0odq zlLcVF<^-%dRp(hqH^SKasXo zK;qjC{OUh}nkYEA=W6=+upQ?k;G~7ET`x6wNY?h8?Yjzh2a_Y4gPa{RJ)PeIHbN)Z zgLvfl5gD5NB7;a0y^~%?r&6Okn$~m5xp}ZWpViu;y|z5T*~T{K5XIAd3r}D3>5`+7 zJshXLSvONrho2^F%<4;iOCbuq?L%#(z;6QlSR!Mx6nJwIhX^!~FavXy0yhX8W%Qz{ zhS-y(#Y~zg$QsNROv-amrpsIu>S;fI94Dr-O-X}k*?3Z)bK;F9IMe#Q;!4HD|2!Eg zl9rVVQy9f=KAT%!nGs#DuKb?Mec?BFsx@Ouj0(rHsA=q=UwG4+P)1DoVTY>8gBF=Z zVsF;S3x|e!d!VCy8(;P1>n#K08iIz?;nU_kvcPvg>It&TT-WWw_;|ss?d|-B^H;x` zIb*8#0vK-v%I7AflzFPZFE4#-oPan0JBKg(l8rYIb3aL(1Fp-geAelAYZnew&WnFd zcvJH>ot-^CYBjKEJi6y2z$z6!CoEma={)k0EcfjN8}IDiaE2GTb+j;{Y_OzwW}B5m;OR5( zAS@B&b3atIUcXk?HUEkc?7EDgSUWcF{DJ*9{GoG;!1_=9zg_@^V~8&>A2I4IAq)Ej zuZr8^05-IR0H^RXlj40suYQf-xm@&6g^s4A*R^dC!#?S zk2s`z#_x!XyoV`Nri{NFC?ms8C;b;913a_-^;&B4@auNvJd9q#`K<}8-qt8>ZS|S7 z#Hi0yuK)n;uQUTrY9@+-Sfp_(MJ(J1wbsZKX3!e%9bd{dw${yR|0!4CAII(cuk`b6 ze1Mc5nzEM`I^89#6_pZJ!!Y$asFY?Mk9w<#rZSgJ#lSJ^QPt;JZr6D{1Z*aRHzOT0 zBi7?V4ko6w((|L12|jnN;G5om2-dh?dytyxf-N+$9)LjCdVRVjs@Z65KEV|v3ls3{ zk5>8;Exsa7h5KwAXVgnP;@@Jys@h^#um2>Pe|pBZ+N5iQyHQ}0^-Dh4{!yynS3tG< z<(D{}WODK9I9py+?c8P-W)W)h6dd1%9E8XG-y3u`*y(&@yHz3Yf@+@4E(E2aaP&at zU%K7I3{ykN0rtkw&||nyxic$TJ>`!*wnlS5n%B~vrUnmO9PC~-&L6)DfmL6~1p(aPBYa;&cjgM9iRF;JQTPEMUaX&j{k}JD!+XD{PC+w_w{$kY$_`J#ysH?l98I@3 z$C)Mp2M1jw($g1xPAz0k zc5{RJq-tjAGE*J;IPeH3W(r46{+wX|*Bo8Ev-clS|F3WEuABw&z7*VsLjLUvHiK!}dw!3*`TU0u_s9}q)@ zVhYf$fwv@@7C&fdjNb;D7!y9qJ1rB_oa?=zWG_r1g+fV_6ANX3hYXe8pU<0=2ToSD zmiuOFXhhtGBr2GEKeO0w$hr2|s$S#!^pPHZvC(3q#I5ZZGC0Hr6mzzQ}V;14iGtcH$M_G2H&V!sE) zMG(he$&jJ|86E!21iVUy83@_HcM=cTJR7|P@*`;=oVqo7Xm-!K_jD4>U1tQo8h;k> zY{P3I=H{_>v;wB%ZeKb|nIJ{tGKfOb8Tg4R>CVRlPDdOii7(&s=U572BlfV(rq{)t z#`z)7j{^odH`tKcuo*FwMJV%<@BmK3DQScC6Uq-M=Ra|B-qX^h<7Ali`9co#&o2Q^SM881A21msfAJV(jr#HD z@kfk5RMp%Kigus^2;aJf1h>zdRvqo{>q#>o)Z38N1@_OJHU7GW2>zzu85#TX%By<@ zmiakTu4=jxh-=%vhSY47ha_IM76O1@PDwTy9^UF=KPBJBh7jgH-b!o0Jd?az%Kc_I zy%QEO(Nh4IMv8JjB=7Fd^%{(8IK7YwK^}t-LZYlzA#2s^+r9M*p;3}e;s1=#^SH< zNKdhKI~TIr0er?+;=kp#redKV`&{*H*dwExEPGfsiPR}&OhrN1Sh054F{lg@I)6D~ zIq64Az5u1*CB6zMGIH-fA}+5DB!>XBC}KW@lXW!-rFX}lpdfw!j}v>bURljse#^`B zo4n%cm|4Fr#=+~|U_|Ur=R%RS`oF$XBOGY3piN#Pe{<)xmaMF4FNxEJISa%52L;h5 zJHe=5LbVVZd1f11<*SldJkdW~LpTG&Kpx!ZC>Vy^djYDdPAzXApSCF?#0;8$>3WriitzRb^y^GC}E{nM>eiXqL){KuFf+YAY-~lfB|`WFWrtz@JXMluN9B)it$~Zdji9r%8QmxVxIYqH6G$U(k1q(WRyR)wpVNx3m|t^t#Ne zfi}jSYRFifHN8qLqsn?AH*;QKbEm zn_MB>l?vdr;B0%gDGTOZFNAeh6}6oz8raOIkN;{V}3=uT8ff@&GOqy>Tx5; zeE}>ncQ%+NOB}FybA7gJl;G{{J<=9(UE%r@$nrf4D1(_!<8Fr{VNS1 zCsr`(0HRXcPu4sxcTbd2ZrE2kUl1**3x#8#V~;=E*JQj>p|PCXMfKbj69I z+`CGv0%WJLM{DJ#%2IMZZF03uIAJv(RN^0qy9{g^44kUYT`%jktJNXkPTgTxbv0Fb zc->IV&BD!ng;kG9T<9`Cc-_Gug3Qj)Gebq zbT$Lc37=uAI5F9XROQ`APGf4}_Uz>6K&RC35d@lWLICxh{3@`A2Boa22LL4ar1p00 z2{apcR?iUYazH4~B)r{@5RHhwlCMMDV5#zTOH}}|LF3yA@uQ}l+76M!kFe4=o`P>_ za3i1O*Y^g=jZvN34X%iVp9?7st@nmmKc=F)6yA%ZLk>@>DC&YDz;cQ@ zwsJ=i%Gn}VH(zLeX81iO=j=Gnu7;9n4?_yQI#sV-k2NnNJj0hNWaP0CLd&3(P}tTM zOvKc^^xY`$VE!DZlGeHI>+3fjJJ{Oqc_7*DrCBcff^@XN|EOE&jY#&n;(bBStaMf8 zi<2{K$dsnyJ8LQ|_xSifC~fO2!@y%VIK3kbQwf(0kMAK<7%PO6U{Lul1_A>$QF}V3 zXMkV?AP^CFZY+IpA;<5(P|SuRZRFU^Y-rca@Ynf9_-7>I7K1=6Lp`5 z4F6!|^D4ri`}mKEzh#K~CSY?Y;0KWYk7*}L2R;}(Xn>ulBtkczr0{(5l8do;rrRwa zjR$-wf~D&4iWj2leO2~r^P9@K+Q*g8Lw7I9?zG|Xhq;UA_op~KbtMTyyZfd~x8DYD zP!OwbpWe+9jo||tbkUthCXnS+D~V_3yw9LR;l%>*wGKjeN+VNnQ>XIyTjo=evCO01zb=Ws!$%Pj?MhAf}gsgt7zvWuRvT zEWp2Rc|P21a-8*f0I|}`mE8T{cBXjnYd=HI${b5E1t?3<#DO&@;sK@Im_V7-``W{! z;WseL#JM#2%8<3pm*+z5>zDEbVJWWiArFSDp894d%VQ(NJ>CG}+<-kD{=LLi%i9_2 zxre!BjAEM~sdr1vEst@JG3$z2>0{qBzlJwc^Qar_?*|?<)ZLt?lveNC1}>f4nFVCh zkz?i#$UdbAKTbI_;sycNvk14e@E5jtPWR0R`x{fWoTYfAa|w%qFDndF-qyx=2@nJ7 z34sqN`@0Mzf1OA*3ps{P8q$B0JG{mOnqgYzw%u1{`-`7?Iv19+x6ekRCGMiH2;r}7 zwebi-$l6Jw3XVU6c73{+ou|nTV4haRA&5+G~8Q8%EV~IXH3Nx^F9*+KfRo zw?KXTj=J@Z?IaD-k^ic`zoH^9;`Z>{3G=yb!EdhIZ2UG#;KiS6m-a%4QGDU>&8c{x zvzI%e<+)mM9{+kg%Cqq>wUG)C#)iWZch}ZqUyAxdn3azeeHU4qx7vNj3tRQZ#JsFB z@Y^0B&f4F+zi(eU6}%dS-*M?)tXdl9NX7BiT9u^-+yWWW^(u>DdH{)|Lw zJ)3&;zV%R@?y73P&;l60JA^MX^z}kv7hX8wAGqX+R_DqW;RLsT-c$27cf%Rmi^kC9 z_C=W3=IMTL$%p!k3}ntKv+qFC$$*{S*x%6H(YxDg`FIk%36;OIi~vAa-1{M@UE@u@ zYSE=z-m4&b`QwWe)%IJDD^4BF@516bYj@1arUFKXb&?w6)@%TF@$z~Km)_aA->m?n z?@rQ_xhK^A9_u~C*AY7ovNk*)QW{fVvaQgbnI43^X=q%h}0)luF0`J-QJRK4xN8|sC zjOjcZ)TAH4jNi#My-vEOfw}!?^o(r=%Dh1xs`(8qM-dZm^a@wk_YG*fNqBi701enJ>-sYm){ zWp`_xpYFk0ACI==$jRw%UZ~c4l$Z<q<3uklU>P4*AamgU5(aQ;zDgk z*nz7Ho2bo9#7pszk?~D`bkE%C;@7@Jik z!J(bOScp1c`UHpN^dqWhz+uozOmRj)#`r`&3)TGM7I-A~cRa8DbLHzZhjnIk7b`x> z8w?`ic=*U&cn~=agU>~h@oAa(pMeeKIuu}>&%4XGpb>PoQ?zvNu6b$;5L1Sj;9@N?=zYwue0h7U zjr7(J(w6nn`KX%G>dR}8lq2PixN@Z}$GONr!u{Gb!Rp*7r~6PPItJRprHT-B%16=3 zZ5XJ(*n(8yIXIs@T2Itn&>pwePIPmY!Ur2S9Ysi(dY0f~^UV3Yk0yZCe?Ow? zkmr8oYl66Vzz93;vzwbLg7~~gyNo9z@fUsqHP2Cawg1qals8vv0!pOz1X2|Ltvv4; z*7J{ik<(Z~Yib%s8bQ%oa2nipMvtW_9I`2t5AbS_*C3G?jei^Ng8l>;;P_V}fQ|3b zHrG{Q#KU3pAVQJBTB;d2H@b+P{0WZSlE%!_F`;9iE6n|U^Vy@wsby1E=v~c} z!$aKHATGgo$8pS8MpQOl@X!=lJ=T^cx3^I*?e={+ZpK2jhs?))x)SV6QqDrDg+Hn( zk^={988(t5849cWj$=R4Bm!;b5hB=G6VgcHc!t8b`#bl-OD{J?zdyU{iwf!3uv+wE zHj2qoOmw}E4WG-bR6UF6{SA+JQ9-z`+{xz$2=W)qdc!;OaE8II-pVr5S2aKr(diDyk0nyCzAENlWPQJSlsRJ$h z9oq5tV=nsMBbLi5eye@yk>3k7S_6YVpK^sffw+%I31aUp*$ zUHAG8UK|m)#tvt}3H53Zw!a6_KSnPT*Y%Yg^K#x#@DOV~)v13a+92o`=IM-kK>C^7 zE#dF`f>G6peWs0^vH8i&XYyY$mHV{OXT$)kbfB8p-UzF}75g#<1pLA{%k0zA8#_4r zO;B#|er$(jxc4f7>q67tdXDaI>s6HT_I}tY^haYM)2#4>=FS<+wxf~ZSdgv#B0K+M|t9O(eK_60=OmO zbJtBjE8rYTX;j&Dc00wK{4^Rq!~~&yBU%?H#pqOk6RuIbtsRw!K$PN%x~W z>oOjYT8(5jUgd9h4a4975ow$(!RN2{-;XwL$mDuoHIscp%wt}CJqGzn!-b8_Rg-O* zUxI?b4;}U!R59~yP&Tv6fJEjS{@0N_vh|Aho#f%jIbTp3oJUglft=(+ksUK1)r+uo zKS0H}-xu=d-5nrx{lLc$-aBHx6wygalHCL%_SUi+#E=z!AO}1;LIDCjUq1~VFrjHZ zsr5cyvvOAd{5^&U_zg()iviKG3Suv0nMn!W$!(4rrV^UT09kkJfZVQn8VHQxUth1T zLq0xU!UigU;yA>M=baP~v+^;lS6DU+8`^+Bysh0&#K-zf)TGf})sgfhGEuz|l}?Yn z>Hcg}8#s_e>idICpgz*=zZVQ-yg$eYQXnh*!2_&__LtM-$ov3MiEq+$skGjuvgL?B z0R_C4BSLKCtas;BP5zC+MN7dgQb2a5F356Qjs|Wbi2^}g!p87i01@Ns`-eybf_xDO z%8*Q&;`}24YBpX`Enhb*${?!(K|!p`=gp_}$Uo@g_`5eYwUoPCucye7oI#*6q`tui z`8o)sB_YHVd{K|Vyi|^#L-2dq1(^~A!Z20pHi?kaL7+Hjj3f*OHNXc*<6!i8MgAFx z=FI_#vra~e$S=X*BQUe!JQ!>M$%GX7a%x34ti1-aJ7*b;k$Z{+Q6$*H8=^1a8CRYbYu`sY7?vuk$WO-=%Inev`?D`d*Py&K;&i~Ei6q;zC zz0JZ&Y@3iPmV!n{l^KUKo6H`L5MwESTb>@!p(D++EPYaH#yyfH?e(d0Mw4cyMlGbL zwFQQ5Cay>y-#lqA#5~vfVvMRPUTNqmW1AS0302n!YtT`w*|nuR>^~8jmyk_>XFGuW zHw%KP8)~DBih73ZOI^buR8I5tz*{+}lvu#pj#01^waZXe)5!=5F;;&UFojo}`tYx9 zCl=ro@(TrX0=+&|hpN?~r%{Xkn#;<1@RMasfWZ2U&wHw~+Z&DY<;fW~YfRr;qzSh5 z7&UhsjgsAGKM5@o@24!>gyWo0k6sbcQ<6I71Qh?lg7I6`CGItE?~U-5pIq*eNcH`j zh{=$;{#I4=s!1o(Fy_T@)}yBlE(NlZm8N;#Lm4Xb%x}`CZvS$FjOAB_#*$GWL&Jzq`iv?O*~=QE-lZ;`$QTi@E8I zt@5fT9XQGm!e?E#p}VphCEJoTt7tq9^|1ysE=gj>(3H#5mwO8-PQL5T&95#!Ev|C3 zOAQ%K&TSt^0K#dQ9e98f=;Swq*QNomIuUlpS+^Qwv|QaRznHuGSV2LC_RAqV84{y3IJ`&QOQ{Vn5JN@&z z=lg!~Ajyrv?=CN-Yl}R_><<_nP)?n*y(-E3U~_#SUS>l2enHb zV#yL4e=%Ux49Xy4XtuW0qLc=-LDKlU^9}B0sX(4GsAR-NEloDqtdMKFN!qh^lC?vWd&!>qcq&EI!QL zcO5SY!`y$*NFaf?M}&%hWx|9H!2B|67%yT|gP0^3J}i&?RQ3=mH8-_OVz9nLZj7!A zsNMz_1|3Xn=(ahCp3w{bxxbkRTkR8GYGUe)qV%hH5F1`k6FGBsliI&wo z*aGBw&B5GZixUet3DT1f%Hy-zvjmfUM-ADbiI<@7Ho7bpKTzdd(sct@1$r_-XrBshovdVqk>iUYEB_~iHQOUi0+XE2>7%0P< z;Sz8Mh?6teDEK85G^-1+{(m%mWmpvL`}XX@F5Qg+D+r?0BB>G!QWB3ygLES;AR#bI zN(zWH(%l_OEL|cUf|4R7-Aldu`ya>qZ9mM;+{es)UwK~V83=g-=S7UVsBb%Kg{V;i zBiJon_WgTN4ow1T8NaP|f6>^T<+R@eME6I#-1XP`gHL+K5y5-uk{=qJe=CrToZm_K zu{1RM@yT|nNx}9HUp~4B&Jd@W@Po?fYS{iCrBtb3FccJMrHl(i`_B*wC4exDyV>c# zk+6HeROvBCkmCTlLxYWDmBswJO4KhOBnw~*1XiC)J=tUT>5I`R0pK}zX|0}G7Fd#E zL@c3bSM0i!+K0+pSVw~C%?v|k-q1`;zJmV^R=)C#>QB}{Ej?dE$unQ$uge7P>+dVV ztnl#7(8BcBjirnjG$hs;%&7fzbK*R}0*HctuqS@f`Od9QAgwgJ?D((Ub=A^t7nvuimBy)9dODvR>#OsO>^_l_9dQM;KkoF3COrhujP z7E^4yeY*215hd6ice}90V>`xVGx{s~jOn+)GIam;r%+5G?r~tQu3@XJyb}{G+uhl+ zoM+4oN(Hh+ruVE7Ctt9mnH!S16H`K>z${cetoqc{+l44S>sO6cEwxtoKY}ANVcR<= z1HYP&I?K?3ws*dK-HN9Ls?dL(S~7JQZsd|2&*S{~5q!X_yKcUgz;ubQr|sQpsP&H< z^5I&$#{e6aX$*We9Bft5^0pr53iu3E~^$$2O<<{*r~KSc|*pYnB0m z1E`WhKD?90Q`lGi-T|V=O7ckFi7>T&^J(b9M5{0qNQ6a>4VyGm-<-vtwU`W#f7J64 zyvBm7nNg~2{4PDew{kKhl1hNM}drD1hYMSRx;V!gr{b zUVtGni7?yeWlHf3s10?R^lqiGuagV#voaN;2W}Gho*E^etW3=)=s+e2fNlQfUu-;r zLE%K}Zz?BcaSn>}BT;|HgupccorJUG88{K~0>B)|jr{LQ*&UNWJA7VIT?v9{R~JjO z=5aYDQcuhZ;c@>@yo$h1m8ol6k{}V%*VoIE=bIxuI~+}j5fwmBs4CX`i_s&oE@ETP z=_iBh2#Hh^*66>`rnBP}-7!sjr<{>=U%~6+4>S3Xt4_A;{RjhRtGrGaa3>qYIR#YM zZt_0_Sq?AU5e~Q#`yNP+F8FnU<2l>6e41V`QeISwdr#qv|4C$ZGC+b+rR;QzZFcK| zYr|@$FokB2B9d6vCwpCdO{d0B8)i&BCc`YILo06MsBK6SVM~>6@s)q9SWw7x}vcKU+7nAAK|g4J4mV?c_zJ1b_SX zEg_QkVO{CEIww>N$WjE8rAIC%pfMyHH54`Kl$%|ZpXKzkWl2UPG(AF8+!rpM*>rec zX#t346CUb-GH>~bw@axJS6YAvoUuYd}wbepf)x195u8DWM4 ziG8ts-cLv|=2xc6G%~Jb%AZ?Y%aFqoUyM*VRzPk&x>LK$t{B`Pzi|>tQOnC&!W|(s zeA!8Ys$c{FpIc*wT;g?%>mgq*#b@JD>>zc%Gy}2EFd+6{Wt^;aO36-};nO77z{|8j z6C1!m?pj3pMLLDLjPs_wkY9z4%$i$tUS{MnJeUra36i*M(BJBeO#6$;) zQ(r8CEC88b8cc2m*SzK05sUC22C6PPxOGkEeq)z7epNlqcG|T z1!}fcm7-PL9P0MVmaWG;;b^9xa^Q9;g1~<17u!uV!u!!R?^$vIdmk-I<{5DfJ+{et zB>*znr-roO<`#j-a8SDBda@jdy#6!742sn}ekb%wuiO9&(q72B=jEg+WC~5eeLf|Y zUo;9j^fZ0yV+8IxOlk%OaF13k^m5#ec@J{FoL%8rpRO>Jaj^@(xwUo-n6P{*l)~T4z56 z%Q*vcxqJ0i$0c(eKL54$I?HZyc8AzK)wqn)cN?W~gD}yWRdDfPKC9ul`HCj~%guBN z7#(&vp3kNa z#!>0?DIBHu0VW)X`#8eNc;G2LCU7etOl4HAyYY|ZZlU6(Fpxt%U-fYmiCs1*;Qje! z3*eWt+=`>iG`=n#NtEptH3=(0b*a|G9ea~o2n2WE4|?`+cvHp1Obz_;6Qc#I;q0+~ zn|QZ8sl$g;kHRm-I>Ezw3gT19?G?tG#Yn8O*#B5=GoAankn(caiy;kWo&fKm=b1l6 z)%xEK!ySJjc(67^g?;q%>pmOvz28MVUzX0)zVX(*H-Qxi^7jWi8O_rF>FtWho+q;v ze%E%$f49oJ0;Ei>zS9UO;R+SwTO3HfN-t4WM^9EY5+h zuC0-;-B`!VdSQc)oDeF9s|;1~4W<28y!2%Lu*J#I12S491hwOl7rbpumOd+9iwcAy zVu(anqkxfZ_EZihZn)&S_eElJ0UCW{HlI#IKvb$O6H|+#4?Ude^s@klv1&pM<|w# zT<(2O?+OI6y*a)QRIk}NMt*OQFF)K*Ee(rl$P=Ulhfd5dem8yN-FTpr({=c|LThy| z#_y^4a7p7gDSm&iClUMEclt|Ic6a|g;lMDlM+PtgE8=BjK(k8vI|bl4<+P-+kD^iF zQYXt3O}WTK9j8YjHx{Ap#f5mvXeG{(MUvTzu3*wzEGU=qHX7ihu{0} zVhMOTHRGrRfl@|2kUI|!`A+KnF6`%(A>$~d$uq0uAKiC8A1ZlZQkl)-3pN8}pF4k% zQ`)Xpx9nNBS$bQBQUbDKskp)jzorL@iOhlTtQ@GA=rIMjWs(E7UoPwxKkVD;wmx*3 z__`_J^8#tg3gi(@mqSSKo&uQ{H?sorD!`lk%pn*GIgEdT&i5_-k8KiyJ{8>6XOj-u zy>j1Qpg10QuYeJOGZl7?Jp&=Deb zCwdMzCz)dhSbvT z)eLM#n*lmzOPMMoEe+TRKxugasJP{ZgK7sQaV|(qOnVae&7tSRm zeb>A;MD34U1@HYnDb_N^RlwN*W~?YlSj97gfT6!-&@7_kZ78~agzHu5oucUEkXt1? z9aCr))o~E4?=BZ1Uw^Oc_ILGVJO9V1zFSIiy>7-7*C6B0vfNb@?33uMh1!m( zXh6coC}d*kAN&@i@WbUlTkIDqCP(2~G@lK0dFlw?ng+Xp=VF1De0!Ap(zVllpFDJs z_-ys#Hn2gA1RV2V#`+D4`a>2KVN_WVw%@e7j+aM74CJ+=gg$W#QRmB; zQ8hJgg_?AKwtSj}o9aavpKz`jf8}|BrE<*Hj^eziArk!5SIHpFG zsu=vv41wze_djO_Y8aI@(QOZFZq8&vjjnPqO~do6<7Azm`{*$niq^w2FTcaYxs{i_ zHM@IJ=IpDPrOAi5j-o{O210glcC^Fb(_eUx8{|K9)G%&<`~ z77jE_?B9JCww+)3t|(5ntK3xxNF`DRw6H|=!yrUMex8;jmbpq0w{nRk-7=~D7giOd zIFy@r8N;z#`XdUf`9_+xrbErk#tLyog@(ENc>JazlTW^gx@Bf$qH;6b^Vb zHxa}p)de-$D1-tumhi1k62$92(ZaZ5#1qvjs z%AioHMoFa61xMEkYsMJUiL#R*`+c57t$Yt}D}q@*`Ybc+qe|ZG$kjh( z=J11!p2vY`T=C=xA_`a4vHF^rB-I-$;Ua-rdaiQ!vt^DiN>)rJfw)<=`-2O8zwCAb zQ{hV~Hd6}>9lGUs%w#>l?nUE}A&v`v=J@#SEIq>?H|)J|19C;B8Kf270Kw-R#1o+$MqOvG9mDeX5$02K1;MJomet0{^+hUR`)6~+0C;o%+7M9cyc5HCDFY*{ z-Y>3ZGb}0`SHa6;I{pGNU5Q&tG)Xo^Fq6sRd?*y?OlxB(%3OjI4g*=Z3jot&>C1y^ zlO%NUT-&#iqkV;dQB@FkJU2E9A!yB<=sGAc%8M1jGxceHN>FtGWWB=O7472l=VgmJ z)zHtr^zy{CG3Fhpo>ueWLG?e2908$EB)Gs9S;QJbBcMstE+Jy9|9^i12*cULV_!V; z{aGV%H?GliU~5m7jd$%y78M>QB%u4*)pN?@nT<{RfG99wSke&tz<2>ci&*5r0G0!} zTyM@76^lpqZrx*7ybd&M7&GJGOn_!j@0mE+qf9@GQ5uslg|4kCa@jw|9V0Y7*cG8O z8*G!c8|0ejNYvZBw3FIz04ZQKGl(Vw=p#~=_8z8U#vz#XGEV{}SXMiKycW6!xR4(Z z2J+}YZfz!i=yPcr4D(WJn=lE|(MG6td?k-_-(zBkI;T~}EJUMt3_@fF`CjByaizA4 zPsk2e`lA-5a?imeMWi{=T`h{l_=k^X%cHfuC)<}4`ov*@S$w9*=U9x7ep#9kGth9A z-W#Nbl+@Y0c0eAW1ZupH6^2@ z;&!K!-Qb+*eMr&9YwYZ}B|lcNOy&D4Y7Z21{9^+*gLqOGbZskbHY;FRrI6)Bdp*gB zfDJ@YedSW64{i=FCHX`4$?jOK<$*bnCQWglDdBG)mlF@tvLV)c0fu;;sW6&E^W-7; z`a9G#r{v_LT|_vCVr}?#v3!B*kF`TeS>`6*y7HL3n6|68bdpA^tc6OygvKeh>6t#1 zxj~90^|SUdK!?^Zmmi58u|a9%6_Z~0=-#{+m#STIChJp{A^+j5q_umtL-W)Wg%J+b zz7jJ)<|y$@?SmDinaQW2rNh)A_Fx_mUEn{i?I4kS=w}3UU(vdH#qiTa7$QV`jo z4uPwtut$0&Hg5;a$_3G7>3%4%YYaE$!s!s_7P1ni=-4$Ar%a6~1P!?jB!Nzxb`kyf zS*%Bc)FrRZYJb&P12s%7qP`z61dlCVoa)sd7iIdhL zk9#OX4xrht$M$d((IU;@?=D0X8-Pn3@PHYt;L1P9DqPkA*D*}w+lp$Xw3-Sne~8gz zB=j}A`zyQpSdwt@=TD{(aH;%tV@dlkf^gB|hys>W4bW3}!^DzYbWy9DiU7(54h8!l zj2zz~F?d=0O;5PzCKA%1sfyCp5K>tHL%?1dJ0`_+q4pEe#MMz_MGQw2qYtv#A|b9M zj20NJoMc`^`R9j=XHOn|IUEaqtwd7wFe~La*YttN!KT1RMl0~(=>kr9&?dvS#l-u( zW7Y#)JTuQ!18{h2I@6VGrelk-3>m$-_Z8YHUt@g~X~gk*fFf-YHEK&=UOl(!>EZ` z-3YpWgh;WOOHxdSP(pv!B67BEh>hVbtgi{bgtw!G6v} z68)C)A`x0Jrvv{(2)JCLO3ck6nlVHI#K}PB#$PjED?!Xgf8=Bm14-T3?gu15F(*sQ zKaoIjz$;_Oz93CLlW!^y@ukgm?Sb*9UR_hu>0(ls7A4*|v;X$mP@VN*liY}|{WNcb8)kJ{h7=w&> zq(2;3SD^X=8|Uz41}q};E>N*4s0x%K{SqOX1edktT@26$$y4yUSHXlk$y5R1$hP@I zPsUMqM+CeZAS@M0cvRkje5J|Bj|7tGN`5WKVS9y(6pfkutb*n9!|3(V_-N0MorgdD zE_vH_K+et0%_gejXdEE<<(ESjy(!of3ynp9w;%&pFN6urPlF*Uqv5D6#q4 z5Mdg4ha}#y<$!fS&@gEEe5}&U87V*tE?j34pk_uyX3An5Kl7Wki9&JnhCSckYmInoTz3LfsOojZ6B3)qd`&h5TC%RR%0GSppT>pN2MOGRpg8F^z zp`zCi)xdA0d>xs{B=-1zmOc>m0s0sMbZMNEo%srhSo7tWGW5e`je*p1z=Cpe6+}aq z0!auvk0dp#EUh6>{Hbybmqdn&TZ;7~MBIwI0y_yM;LfkFfa7S%vWk31FpUJmu`PME zCPYq9gqoKm;m1N~R7fm-2R>%5{D^LZ6jMSrF==xL;P0GA*)~AU1p!r;A4w03Ss6?l zV^@`*7N8$z5UT@9X5M?Oq}w3Efs7))L+-%j{CVBE>jbxvdCQOTyekvp5xQ&%7&{4X zoAd&)(jR*``ZnQ)P{ou|Po4A6?89%#`=sctJFGqNfJ>Zq476nG5nW_YDqXBWl@dg& zEVo`6<)pz#{}#_N-{0WVhQ%N=wWVL#fd-lmNJKNGG>1#Qpd{x2Ln-Q!Z6PAlRhAfvVi-PCBu^f(&tcItRhTsSU7c+1MfJ^H3U`+i zQcQ|`;Yg-F)$8{`G`s*N5B+0Tev1;0SJ}s-bDv;I?%{Wees_Gz*}TG&&~@m4(vnW) z_keHTX5{$smQSu?KBz|WVzrXh*sk-b8G#yZ+!!eY#MeYx1IZsIIR)drp=jMdj-tBm;siw>wF$|LyA z3u6R>vL5;zqW;BPF#-FF;#Z&Pr#LAa#3`GTvO|{~5J7KSiTe$4P;9P`H7~L~fV|BD zNHHEFXvymlf(DR`#T8WHfqY17ee%m162F;hjLoilfSgZ$7DV|fUg&Z zmLNt}5DowqhuX*vzdY$wa@60SjINL}aE!R+}eG3!3q=3IJm#vn}%nzKoOYW&kyA7 zrO>PEd+8|&mEqi9G_bKLPn{@RbFn?+&eNY((Hrj%1teQhN=!Q^{gsP0>a)b>ZKd{6 zVtzP~mWdCmWb0EU$A(^1zi{$&X5aTgTEG-%sUS$AF8}sTi%hXWpDi0{>Tmo>4X$`u zU!h3jV@(TmIFXT3YYZ8fE)nu+fGqjH+|6fJ5aguCbda!1;l(i3Q^H?jD)YrsTu!3# zxFwFC&gCJIerRnHK;!aC0;etHHwl{ByrYMyb@&&*IVYKzzgu;7lztn`*k~K*sB^HGi;g+m0A4q zUyK|@m+%Cm>58e#@2?|@va`a7kXV%kYTO?i*fO-njKc$5O+)5etK%Pjk^+F2*h>;~ zU{)A_C!97!v5actGj1a38rR+Kz`$UlcvGP0o(hyECmxa2?!yA zA_i{t32lJ@rPCyfCe^sw4IY{wRQRV)GV%_DUWt%yG9KfI6wBYS# z|7q%-#iLn3a;*heQgwhral&v*lP95(uqrxsqpiqHoFP(*M;GWnim_7eC z1!-dT{SDTLJ{K73jShdnl=32FMUKj}vikHg4)U~`4;NRj32|Y2^4~&@UhjR@mxth| z4{c<@lg;QhV1U^LmbH+ua*(x0iWZh80)o3`KN#~VM;6H+iSDfWaNzb->_#ounm+&p z;F9?!gWx;;Tjj=!&Rl-mIYm(gkFkS(P>k$n zgfuX!AK-N~qVy9C>gLrHwd1SjMnn>9<0^6Y#2)4s*P=vqm)1{2zSfbl7mmI)Y%UAk z_NGI4kLs2@7E{cZ-vBiyg~diY-WHS05|1V^m@;Pr%~Aob`P3Q=a>v>kWykqJoQ?f8 zfw>t+YNg-mxlxCv8i5`%a!!gb9IG|`C3)M zSwZSlV=!@H=AwGM#{c=QfEt7t;QFLp*PlAyjWWnjN|2>Ufab8w^1^F(pPz@=e{G3Y zA@H4%M3?;nool$@&98`&y#Rfuj#s~**TgTGK&v}=rZ2XKpyJ#9`miya?T4djrJ`Rvaf{~~Fc==!nY%vFL8(#4-zQsdC(%yVC<~jtj1=1%=|FiQXWI7k! zP6%v44*qBN_XL)I+9bffr-=!iZh=OSG%@ENd@pwiP<2dEmijcd|D`$4hshOa3e z=m7z$*t{4Og*?g%10@m%YW(BNex?USyP55m*+u-O%bd7~G8g0mzM8!C>GS~ZU6aqa zt2I4dfkK0m=3Pml8DAvdzjNAohL?4jKN;vmc5>cEhTi}!Afc>!MGU~<@Xt%*>__Nb zOUQS|UmXRoX+Y@Hhj37MXO;D38zsg4^BScRk%dWoAo-I)tcYxR)E`K|<w` z1b7E4hFL4b44y5#ciycwLM`2O9wL`;9$=2#o9WI==lwaZX{^?S{9b`^{X41oGMY7B zc>qsV4N%IoBtJgZihN=nfSGW8Cv?2tlx0JpOZf&4$T;K19YG!V5_NO~bi$mp4D*?# z7YDJ+DlJtJ#K=(1h)au614dpSA?Y5ft^=^(U-W=NmLCo;GWBmQ%UGOfuwo@UJ*`);hW}r|m zS1wOgSeDMR8e*0a*^Elu*H1*0YUuM$k)bUUL+Y+eZHRo|k%cu3GuS~$1FvTAt*29i z<4H_SQ?NDAq?Q=-;=~elf%iwFf95bDPF#R0C~hx3+H2a{qh7oD6c={kjU?V|0%gB< zCO+ALV~CUxi;e??JBs6HkCEmzM|d9Ww1E@NR54kt zrX7J=dpK5#TnU68g!|_2i;|Xq{etEy1>VD^7!e(`=(~ck41cU0cCt{4?)@=M<~csd z;(xxpWz0%h26#2zreC?4sFBKzuvO$g$nXl}Z#^E@g6mWot0}U0Xz}yiM)2-Wh*Ksz5Uy&IpBZ0xU`Lo5R z2`$chL@O@|``0`{L!!(EkxT}B4ggfX+!oV3VEdtsqBZu`_(L8!&1=VvC%Q8aH0?&c zjF+ZtX_#=w72ALaUB}bX7>O)k>F*a|fvV7X@IMky<2&htwv>3HBubHF>Vf4`q=4et z%a1J_$XkLH07E>>SHlRnh2h!m_w4REfxS^of*G2Ald<8J>OWMZMJ9rA#aKy!D>Sj! z*Han_@WAME59VS$vy%OBV4OpGCuKg<-8O*0rb`X>SNzU)0J`A1pNxKl(K%zsHqTo306tZRAmSx)d#u<;BxAK`GAC_#( z2XcRKB&7?s5J_p-*jH-aqM?2wp^RuZ}|bx zfCqR&L?JY)%%+us+%`%JoEnV8ipGtfkuf-haBJp6?6am6P)2jWAZSw#@ zKwNus%pmnEen&5W7q&i2eeQh4X7bn0{tEyEA4 zwfp2XoPk-i|2?*5|MY|fKCvtpu>j^i*46Ju9@S8OvVa0l(w(3)mWpB1n!rTZimPfr)nzRP)k| zGsPoi$GAdk;6C2>?!X5o)aUKVFO*eY$w%p}C`Vg{rg81KH3rk+Z>MUtym8ag4wM>s zFiZRv65E3-mAFKspOgD=LMR3JlKs9SNE+KuqsjWht1F&1V zQ;s0*^^s?C8y@-YMu2M}k>1oetEqE+=yfAHF(ZgxJ4!F{%;)2iG2nnc{>$)PQMk(; zf}V)y<#D{KWy|@SDC-8&q2F2uv~(VI698EqWO_{Jx@sGpc76pU8&77eu~8B%+qosff8T)98{90AQDcmR?Bu-^%k@zEt2>8&2ZtyhnSRQqc7rFj>_o1;@V*iyF38VdYqJqv_#PG|UZBoTOD-=YClgBTWY)y1~?hWbAJ~JHSD(m=+($o>8F9CLlza?At-K& zu^jkyY!vaO@AdxRrxhw0fpW>K!lh%KMS-DeCx*=RQ%Ng7hrhWxSbg_s9PclUWvI20 zD^2!(!1TminSG{C$k@k9!@Ef`H4u8}&Tx``4UYRuCC7>6Q0$ zO!9XN7g=&+a(2=dudFTWu`Rgy8rnI0Am#_k3zm6R!oZOJZ1_E%l^~@MCjra_1Ul+y z0$*<^wh;0#;-SNxZ|?Qrf8bi0fBUx&oVkBycYUAoA#UPzQ49OshEVn{kZVIA^D_Iv z?|UtwipSe`#i+YNy33sqpG|#ruy2X4@hiES-2w3}cAwKzR+Xdmkr>u(oKRH0=ezE5 zz%yT)QL6HZJ)4K8XZ+c;bFZEf40Zg=eN7_5_StCs6}o}{`DL66&B22jAm!aIcz&Zh z*>z4qssymRi#RUjer&OXTD0t{>2e>8KZcw$`n*-^#zn#&Xdb@;KC2=k^umI1kML{Y zWr*WK=PqXMxwJJq1%P#<2JSd+egx2cn0DYX1K>sYmjp=UH`&p;s=7PIuP8CEsu#qpo`k53!i`Y+}S3wn~djTxUt4>Xfx3GsK zNHZI6zG3`{WCzo-uoxf^Yd44yQ>@)#oskUROruHv8qS#?uM z{D=8aOptLzDWYGF(`^*WOhRG)336(GGXqDzWg{V*Xu))=FawkZ6x09wN5zLA+d=`m z-FLsY(*x}4iTo$3fzbqjzD^PVsH*hpdHu$p;6+`4j0B(ciFq)R){jVl+tnM?D#4a2OwWs(AuMl%qUDcmX{xIPP9RTV30C#-$uTWDWs>2`>*OdF+nzWpa(t7LhQnQBYGi1Olab!4v2nsZL5rsj6dYVN8(m zK%BS5_v1E&AMckL;iWH0Jri|Y0kYB}&Xm!min=6A2M()p%0#s)iSqfsoe6;xq)Sm| z{T_*-!cEW2>*+(X$VBDXs32;w{OA;daOTZ4rQ|ahKgVrOkI=^7lV=a%fp#4l9|wn4 z;2;9g;`-eHzj0Veb7Q{02@erm>F@K{==}G2?i&`Aod0iTTz9*kQfBd1m7sO?nQL6l zh9Z+fZKp2~+<%nQFGk!q_N*jEA-y|!v9hc*17IN3GdXS9N?b@vZ z=Scd$oyEM^eth>+Z1(}0)#MPs;2({8f>3k{%H|xz@1$8|d=1d81VU2X?s+#}TRbAv z5RV#IRiVTo!S6=8<_ip)=$4H^Y2)4a@6Wwcp(G>&&ey@WsvC}ta-bspy)pz;=VP%I zBg>WC{uI=N6{~Ui^jrb(H{R5NmNz>@Ks&yz9mT=8C!1xmsyNFK_y{fu-cs<)ZHp-W zG@q&GacmV1gdoVZV3PI6+p($nj)AyWnDfWb;y0Tw7bweXmhKUuEj8>QKz=s_4p=C2 z9n;!xF`QI4qw)L*M~-N9it@gEhu*8+HDU`#ZTzlB%(0jQ;wx^5PeW@h!u}Jl_S9YF zpx7<*s_#y<|C2NbBw{}Q1bQ%rsU3eSJc}McULSSvpM|i6_hkLAC-f;-HWgc5-nPuuYrHipmGJP?bGZ*$8sb7swpNjXRvleSxuQB*7s=so zREyT1FXu;!eDWu?jmw6Tcnyj94v2fg0|)WDb_Aa&;mdiAol4+QTA(2oYI=d`MCf4l z#~X!*w_iN*_0b%hH`5GadR}e(Gt2qvZ$s#3#sp|k5L6;=ts^?z7oXF_&mSw&;)&~S zrJ8sCR;9GRrL9XTS{rqEb^0-7NT!ghZL4Jo)JEM9ezb@g8+G9nw#7 zck;Q(uGJRKaU$_dKi79v{^*E|cZ|l>GPb$+hco*G!4sLW;K1-r9?DLP!)wX}nU{x7 zny4xvccu%&+qA1-y!?SP4@9zHv01!#tqV2a$NPENutAx!Y~w>mQpe2D_IE}E9z8GW z4Qdz411;L>40X490|azT^@%p47d}9c4ouWq4cepMY|$ALn~k^c9vVrUq=XUtyTiC? zA}SvpM~ogIoBU2>e>Jlg{m$Yu$v>~$LHtjUxv+FYX!hL64B{T9{lk$SzGV3h&c)(wt(HeJz;+44yC!SRQbw|Sz1 z0Ukh-wplZ>Q|S4$R1n4T_(rXZm+@X9p0f#6CwJs zNaLXRQA{x=9YJ#sXwcG*+@~ge9e%gjln@}0TVppfc$d9X_heA@-!pr%1LDzbQ6HHs zQi#{OZpoWQ!m}~TFDY>b?Xn~85D8Eq)STn*9p`&rFWw4-LGA&byvH01Pj^Xwz?w%r zpa@clYJpcT+I#(w=z>Z*C_aONsuNBq*2~yyErgC6CHfm`WQWVj|2EnQJ<(O01(b5P zA6d>ZdPDZFCX?n@F9RbC6$Fxyw*Mwvu>bupu=_8o&?ZFjcmjHpA!zZB1q9Dq+}8i9 zZ_H@D_tAly)EqP8$)Of?odb-j(6rYdKlYio?9F?Y<@}scoLWk_lR%>ts4Qcn-8ZrK62|QC>ZcO^JIMuq4Y42 zle_)p#>TTd@9E%b`3L1X4(7>bYcU_5?xYoMc)F8f*WP{umr(U{b5D!M#}4$?PUnB) zNQZ!}vV)(sHc4;-iqCU%MIK(s2CrZ9aE|1zY}jf`E{<#L`(-}j;OKe#`c5<{#YBI1 zc>Lgeqq6`Fj6QCL8CqVskHvoOJ*c13cs(yv-qn>qefqA_eF>E>4!W90=17Z+XZ6j89D8Uk01ye95(&#^LY!D~-P8 z?Vqn+s>E~E*ZCOF2P>~FS>{ZWvpW;VExzK{d|xbAp2ZScqTH;?kxxxV<$W1;)hfqv z8PP*@=?9)K1>og!^xYL|Zm}Ggdy~kCpK7AfwEEFP`2)-J0%%Z9|KQx;wPs!W88M7a zbCP`IXkM~%eCv{i)^FsQ-of=s*xvi+a&?skC#P6{v&?nvQwHLMpb-fn;lr;plEz%h z<1rA7wX`3$(jYX{z~I44r?km&4XHA9ZZ#Ix)53-Zp9y8oJ>+6#oo=bIeKD;bs+p8z zUs0k`T#Ns51dNJ0|299@B02TOdt}3QGv)g714Uh9%*TIoClO=9o~GEs%o}%-U^bSM z2WshhPs%hNs-0YSYArf{`Rm=aRQUU-q&$NGUv9CmWRF3iWa=<>uTgTuPqwcWZ~c4b#)hFQ&-f4Aq&BW$s>va74&I{grgl z24Mj&C1Xx?9v#=MYiE{dwHSqTZtTXzHQ?os*O@hS4JJHN*(e@Ax~4M*+lk*f?(F2o zhlXC+(Qu6(zp3}Zj{}?5>s9R>^9QEh$TXv}DMu@HB%`$XX-m2|IO-P96wj!=UosGf z6q2*%8SU&W>}F>t;<2#Akd0)54n0S`8;T%+zahZ=BYA90S=c*gZ!hidWw~O4a!77? z3x|P0OL5!Fc*&T#*RLZ9mF0;5szB5Hf0x34yz4;s$;Ib?q_z2VZ~u66y!0~ebIQ36 zdgi%%2Zx|2-KYStettX=EG)*`IPx|wdg2hf4Be+C>RGueoO`$kqR_{9=#TlBy#PpC z0<5nl*gw(V(`OvyHD9DMKv-P`xxzaO-^Eq;@5^XGEyLCMtCE>1VC!|(Dc4o0G* zaLfdR+$6OfmnJIbm$&BTBJ&MTKRVbQ*id>azBfJ~9LXK%VXtqjqcxDI)Z$H$cnMX9 zQ}{POermu{u4UVQmK{E*DR+~ppa`~p$^Ufwr_FDwwP$62^m5@W;#D!MNpNG)wQquN zXQ$_MdisT?FLF>Z5>ZqWwSTvB4tR+v>s`d>s-a*D6h0i zrj+xaK9(?KI`*5}xtx07o5{+Tq{w!3-KiNO>)q}I)41&F5^mP`=_yyNC6QRy1Z1n$qq{o1>>EBk z4GlRn(>nXauuS3*6lCfV?a~;Ij+>3O;(V>fq*&`J?rk$xwb}6Zn)lR~+}s6@kk0;9 zN5_20*Ny)%V!mmpoc+M-?+@l@mlzdead^r`NgB5tJJ=^{5QZTB)VL#!veQ z_fq2D?fm-Lkhu{Yhh(JQ5YR){eFfjDsJMPzr~Al53$~=l-3apW<=f?JxSHFS&UAJ* z)@7ZuKT6P|M$zYtz1j~b5eCdGyV>}Xc!F|s*M7?_tWK5OR_*Dsv9Of?V^3{quZ*Gf zqh)z??%^@)F#pYS?{i|}N?g8%nT|@NSgiryUF}EptkZK_jkui=xwDgjds%re;=|_V zwIS4BLA2uY=W+z(=m26evJ2Ck$B$RYl7=`&Xo;sDC@5Zk7+Tx-(zl8fcshBFm9IrX=Zv{gS(;eIfS*ok)f!b4k+p? zHsl}gCmb79PatPKwzDl-iTS9*vsM#RwjTwqU%b?MG=+Q4A@Du$jIHla^_L@qgy_V?Z17Y$ zU!q>?jb!i9quOwT7<)U&^~#?_`oK$Xng>{7bT|#kIOnw>j$4D6SCZ0xpY@m<_j!)kuh2s3f%XD$!;j>LWcIW@93B|bo z%S2`)i_6RN^UKTC(bL)21Mz;Tdg88HDP~Jh%9fDRy|d4B80OFqrBlnxV`I2YMerzL zutGWikUOq@_-LcLqvQ0qqhoyN*KhBqO0BV%-&EG#zJ8xS{&e^(vX7qlCS5k${q9wJ zeZ6q8)?t!G4}=4}+2~ig09H`-2L5#hCk@`Lfy@278g^c`H&+WaHUFbjl$7MjnCIV5 zCl4IC5I*<4N2~fEH+#^V`=*%!&Y*C`Td&(D=zc@vU0s@eGCY7e z^}18+;%E^(H{QDKNV2 za1bKlm*3R{OwsF>* zA5)Qd@q%?Yw1{0P$@$nG$iqxNCbr{W4pdQ_Zh3EZDR0BkLn?_{o)Ajz7@gut>bpAF zUug>&$T1&Y^g2WOuIh2Vh6j#D7_IyR{JTvZdnD!GiVe$sJF7K%$GihvJY5t~ivlpN z0^&cJT_8%#F*t>>@aS+zad;hO_9Vhic)#@bps#((T?n95c@!(3Sqo$gzm>KpT{6g6 zemN0b!JZO|q8J%TI-2cg+{=C>uoj@jr=Fokbz#Z=R%JiAaD! zNZ;%yTnl#->ht2CtaL3kK8-1S7Y(O0_ED86-IpUglc6OG%$+jFQtQQY4n83`E0_0@ zNF&17RL;}NH*B}DFWj^Je{G$6G}K!g$M=jeCUhvb$)%anaY-0*%c%@;QY4WGV<-km zL#X8P8`skb$CPT2+;i!~xa3-xp%|2Lq{OLaR4(I|7`MTA=dAU<>;2<>|JwiUwf3{t z-k)bZ&wjq&?We41M1$q{SLuYYW_hx5%Z=!2a)=${Q!4C z3wsbk+Fo$=3{8@;xQE4#JUn-?QwlhfluZHnX`#g{Ys?30_pn(!J3u6XOB1K;`Xq@{ z$p|gj)ov#n?vARzdCfLOV9srVQL$Wd))i$n5J6fhM3wKzDk&;bKN)#GkiG}tP^(JP zALAZI^Ir8nX@Gbh40$TJMQQ0I`8Q4eh z$2t9R9J;7EZuluntP* zO&`Vu_uD{!Ce_P<9Fm)pLxiqUOX~80=NicR{~^HRcmE}TB?V_VTkHCz%gxDSKe&r~ zHuosn>`c?isH4K+r=fvgKDuU@`Z)c66x=0$EJM*_x}K*3*7~ewjsukRN4W@xhjSv{ zZ(S|HxOTiy!EdHINJVxI4UBG)zkehYvkGxu%mb@<>+>OnE>YGZ zd7@$4kfGy2*v=kQ2I>#3%*!Ge+ACL9 zq)x0OF7e*3gkFJMR#*p|f46^EA?REC6xMg7VI(Vgv2q$$e9|Kog|GWa#T)9;SoJBMT}-_4zpXNAqa^?a~N`A+DmiP4l< zP7Jt@;_eG+3Y$vt9TbQxQ!*CEnh{qo&bSG`ZcNO5-{3;%!Fd1ELc zkBYQUY6D2lzI?4_$(qZzF3czN<|pR|S*3sVxaLnh`i7LpY3V-N8gr*jPHXybuI^Hd ztgqzcgAY(4W)|UtNVPQQg2V#i(Dk*xG+75Lc?s37GaCG{4#FL+6;)M_&d84{;#kN> z(3f?FY(?2E3MJ zOOyd9IDvi^dm1rwxK3|{$K*lJNe`0UtcdYdcys zx}mGXY9TjjTC&+-mEfij%v$liT2S+ zeqf~qDr{ol zLqXp|bv0OlpQ9K++wEWFLj>T&CyaOjkF811=9sr?yxR0B8|8l4b1`OZ3k{^uuNhLa zu}n#CS%C&PIHWl-`g(XgdxrJnNRn7$6&aF1_QBd&$#bNDaTlHIxfdh#u`hwN6Y*EW zmdW3Na!B}-tYD78{a>nYx~%(6^268tG}$dt7LRtsr|vLMUpIr0L%L^hwlN1OKK0am+m_$9R!$qQ8yfz%GKAy z$_Hg)^g(@lW*~-A@ta2^BFAIBx%V%*t?f!SWv6=RT2oQqbj z4=!75JAq->nc7v$-?E_~9nV>~Bm9)g(jF9O`^VYs?V1i1G`|?ihBuq6@?*4L|6snM z7WYiCRU&Q%h@q49P@4ejiXAzj5-#6-DRUdev-xSQej2skbII!1tCsgDESP=qp7s^; z + a[0] === b[0] ? a[1] - b[1] : a[0] - b[0] + ); + const action = []; + const [tx, ty] = mockery[0]; + let { x, y } = core.status.hero.loc; + const dir = + x > tx ? 'left' : x < tx ? 'right' : y > ty ? 'up' : 'down'; + const { x: dx, y: dy } = core.utils.scan[dir]; + + action.push({ type: 'changePos', direction: dir }); + const blocks = core.getMapBlocksObj(); + while (1) { + x += dx; + y += dy; + const block = blocks[`${x},${y}`]; + if (block) { + block.event.cls === ''; + if ( + [ + 'animates', + 'autotile', + 'tileset', + 'npcs', + 'npc48' + ].includes(block.event.cls) + ) { + action.push( + { + type: 'hide', + loc: [[x, y]], + remove: true, + time: 0 + }, + { + type: 'animate', + name: 'hand', + loc: [x, y], + async: true + } + ); + } + if (block.event.cls.startsWith('enemy')) { + action.push({ type: 'moveAction' }); + } + } + action.push({ type: 'moveAction' }); + if (x === tx && y === ty) break; + } + action.push({ + type: 'function', + function: `function() { core.checkBlock(true); }` + }); + action.push({ type: 'stopAsync' }); + core.insertAction(action); + } + } }, hotReload: function () { if (main.mode !== 'play' || main.replayChecking) return;