@visactor/vchart-extension 1.13.5-alpha.4 → 1.13.5-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/index.js CHANGED
@@ -619,11 +619,11 @@
619
619
  if (spec.animationUpdate.enable) {
620
620
  spec.player = Object.assign(Object.assign({}, spec.player), { specs: this.dataSpecs, auto: true, visible: false, interval: ((_b = (_a = spec.animationNormal) === null || _a === void 0 ? void 0 : _a.interval) !== null && _b !== void 0 ? _b : 1000) + ((_c = spec.animationUpdate.duration) !== null && _c !== void 0 ? _c : 1000) / 2, loop: true });
621
621
  spec.animationExit = this.getAnimationExit(this.originalSpec);
622
- spec.animationAppear = this.getAnimationAppear(this.originalSpec, 'rect');
623
622
  spec.animationEnter = this.getAnimationEnter(this.originalSpec);
624
623
  spec.animationUpdate = this.getAnimationUpdate(this.originalSpec);
625
- spec.animationNormal = this.originalSpec.animationNormal;
626
624
  }
625
+ spec.animationNormal = this.originalSpec.animationNormal;
626
+ spec.animationAppear = this.getAnimationAppear(this.originalSpec, 'rect');
627
627
  }
628
628
  transformAxesSpec(spec) {
629
629
  const { min, max } = computeDataRange(this.originalData, spec.xField);
@@ -1,4 +1,4 @@
1
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@visactor/vchart"),require("@visactor/vutils")):"function"==typeof define&&define.amd?define(["exports","@visactor/vchart","@visactor/vutils"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).VChartExtension={},t.VChart,t.VUtils)}(this,(function(t,e,i){"use strict";class n extends e.BaseChartSpecTransformer{transformSpec(t){const{timeData:e,timeNodes:n}=function(t){const{xField:e,yField:n,timeField:s,data:a,topN:r=10,icon:o}=t,l=new Set,h=new Map;return a.sort(((t,i)=>Number(i[e])-Number(t[e]))),a.forEach((t=>{const e=t[s];i.isValid(e)&&l.add(e),h.has(e)||h.set(e,[]);const a=h.get(e);if(a.length<r){const e=Object.assign({},t);o&&o[e[n]]&&(e.icon=o[e[n]]),a.push(e)}})),{timeData:h,timeNodes:Array.from(l).sort()}}(t),{interval:r,xField:o,yField:l,color:h,icon:d,iconPosition:c,iconShape:u,timeLabel:p,label:g,nameLabel:f,xAxis:m,yAxis:y}=t,b=r||1e3,v=Math.min(b,500);if(t.type="common",t.data=[{id:"timeData",values:e.get(n[0])},{id:"time",values:[{time:n[0]}]}],t.color={specified:Object.assign({},h)},t.region=[{clip:!0}],t.series=[{type:"bar",id:"ranking-bar",dataId:"timeData",direction:"horizontal",yField:l,xField:o,seriesField:l,extensionMark:[],label:s(g,Object.assign(Object.assign({},f),{yField:l}))}],t.axes=function(t={},e={}){const i={orient:"left",type:"band",inverse:!0,label:{style:e.label},domainLine:{style:e.domainLine},grid:{style:e.grid}},n={orient:"bottom",type:"linear",nice:!1,animation:!0,label:{style:t.label},domainLine:{style:t.domainLine},grid:{style:t.grid},innerOffset:{right:"10%"}};t.label&&(n.label=t.label);return[i,n]}(m,y),t.player={type:"continuous",auto:!0,loop:!1,interval:b,specs:n.map((t=>({data:[{id:"timeData",values:e.get(t)},{id:"time",values:[{time:t}]}]})))},t.tooltip={visible:!1},t.customMark=[],function(t,{interval:e,exchangeDuration:i}){t.animationAppear=!1,t.animationUpdate={bar:[{type:"update",options:{excludeChannels:["y"]},easing:"linear",duration:e},{channel:["y"],easing:"circInOut",duration:i}],axis:{duration:e,easing:"linear"}},t.animationEnter={bar:[{type:"moveIn",duration:i,easing:"cubicInOut",options:{direction:"y",orient:"negative",point:(t,e,i)=>({y:i.groupHeight+e.getBounds().height()})}}]},t.animationExit={bar:[{type:"moveOut",duration:i,easing:"cubicInOut",options:{direction:"y",orient:"negative"}}]}}(t,{interval:b,exchangeDuration:v}),p&&!1===p.visible||t.customMark.push(function(t={}){return{type:"text",dataId:"time",style:Object.assign({textBaseline:"bottom",fontSize:200,textAlign:"end",fontWeight:600,text:t=>t.time,x:(t,e)=>{var i;return(null===(i=e.vchart.getChart().getCanvasRect())||void 0===i?void 0:i.width)-50},y:(t,e)=>{var i;return(null===(i=e.vchart.getChart().getCanvasRect())||void 0===i?void 0:i.height)-80},fill:"grey",fillOpacity:.5},t)}}(p.style)),d){const e=function(t="bar-end",e="circle",{interval:i,exchangeDuration:n}){return{type:"symbol",dataId:"timeData",style:{symbolType:e,stroke:"white",lineWidth:1,size:(t,e)=>{var i,n;const s=e.vchart,a=null===(i=s.getChart())||void 0===i?void 0:i.getSeriesInIndex(0)[0];if(s&&a){const t=null!==(n=a.getYAxisHelper().getBandwidth(0))&&void 0!==n?n:0;return Math.max(t-4,0)}return 10},background:t=>t.icon,x:(e,i)=>{var n,s;const a=i.vchart,r=null===(n=a.getChart())||void 0===n?void 0:n.getSeriesInIndex(0)[0];if(a&&r){const i=null!==(s=r.getYAxisHelper().getBandwidth(0))&&void 0!==s?s:0;return"bar-start"===t?i/2:"axis"===t?-i/2:r.dataToPositionX(e)-i/2}},y:(t,e)=>{var i,n;const s=e.vchart,a=null===(i=s.getChart())||void 0===i?void 0:i.getSeriesInIndex(0)[0];if(s&&a){const e=null!==(n=a.getYAxisHelper().getBandwidth(0))&&void 0!==n?n:0;return a.dataToPositionY(t)+e/2}},scaleY:"rect"===e?1.2:1},animationUpdate:a(i,n),animationEnter:[{type:"moveIn",duration:n,easing:"cubicInOut",options:{direction:"y",orient:"negative",point:(t,e,i)=>({y:i.groupHeight+e.getBounds().height()})}}],animationExit:[{type:"moveOut",duration:n,easing:"cubicInOut",options:{direction:"y",orient:"negative"}}]}}(c,u,{interval:b,exchangeDuration:v});t.series[0].extensionMark.push(e)}super.transformSpec(t)}}function s(t={},e){var i,n,s,a;const r=[];return!1!==t.visible&&r.push({visible:!0,overlap:!1,style:Object.assign({fill:"rgb(64, 64, 64)"},t.style),smartInvert:{fillStrategy:(null===(i=t.style)||void 0===i?void 0:i.fill)?"null":void 0,strokeStrategy:(null===(n=t.style)||void 0===n?void 0:n.stroke)?"null":void 0}}),e.visible&&r.push({visible:!0,overlap:!1,style:Object.assign({},e.style),smartInvert:{fillStrategy:(null===(s=e.style)||void 0===s?void 0:s.fill)?"null":void 0,strokeStrategy:(null===(a=e.style)||void 0===a?void 0:a.stroke)?"null":void 0},position:"bar-end"===e.position?"inside-right":"inside-left",formatter:`{${e.yField}}`}),r}function a(t,e){return[{duration:e,easing:"cubicInOut",channel:["y"]},{options:{excludeChannels:["y"]},channel:["x","x2","x1"],easing:"linear",duration:t}]}class r extends e.BaseChart{constructor(){super(...arguments),this.type="rankingBar",this.transformerConstructor=n}init(){this.isValid()&&super.init()}isValid(){var t,e,i,n;const{xField:s,yField:a,timeField:r,data:o}=this._spec;return s&&a&&r?!!o||(null===(n=(i=this._option).onError)||void 0===n||n.call(i,"Data is required"),!1):(null===(e=(t=this._option).onError)||void 0===e||e.call(t,"Missing Required Config: `xField`, `yField`, `timeField` "),!1)}}r.type="rankingBar",r.view="singleDefault",r.transformerConstructor=n;const o={width:400,height:225,labelLayout:"top",bar:{height:100,style:{cornerRadius:5}},barBackground:{type:"rect",style:{fill:"rgba(255,255,255,0.1)",cornerRadius:5}},rankingIcon:{visible:!0,style:{fill:"rgba(253,253,253,0.5)",size:12}},nameLabel:{visible:!0,style:{fontSize:20,fontWeight:"normal",fill:"rgba(255,255,255,0.7)",textBaseline:"middle"}},orderLabel:{visible:!0,style:{fontSize:20,fontWeight:"normal",fill:"rgba(255,255,255,0.7)",textBaseline:"middle"}},valueLabel:{visible:!0,style:{fontSize:14,fontWeight:"normal",fill:"rgba(255,255,255,1)",textBaseline:"middle"}},pageSize:5,scrollSize:1,animationAppear:{enable:!0,type:"grow",duration:1e3,easing:"linear"},animationUpdate:{enable:!0,type:"grow",duration:1e3,easing:"linear"},animationNormal:{interval:1e3}},l="dataKey",h="VCHART_ORDER",d="SUPPLY_DATA_KEY";class c extends e.CommonChartSpecTransformer{constructor(){super(...arguments),this.formatMap={},this.paginateDataArr=t=>{const{scrollSize:e=1,pageSize:i=5}=t,n=this.originalData,s={};let a=0;for(let r=0;r<n.length;r+=e)if(a++,s[`page${a}`]=n.slice(r,r+i),r+i-1>=n.length-1){n.push(...Array.from({length:r+i-n.length},(e=>({[t.yField]:100*Math.random(),[t.xField]:null,[d]:!0}))));break}return{orderCount:a,result:s}},this.processRankingData=t=>{const e=[];t.data.forEach(((t,e)=>t[h]=e+1<10?`0${e+1}`:e+1));const i=this.paginateDataArr(t).result,n=this.paginateDataArr(t).orderCount,s=t.pageSize-i[`page${n}`].length;return i[`page${n}`].push(...Array.from({length:s},(e=>({[t.yField]:100*Math.random(),[t.xField]:null,[d]:!0})))),Object.keys(i).forEach((n=>{e.push({data:[{id:"datas",values:i[n].map((e=>Object.assign(Object.assign({},e),{[l]:e[t.yField]})))},{id:"order",values:[{order:n}]}]})})),e}}transformSpec(t){super.transformSpec(t),this.normalizeSpec(t),this.upgradeTextMeasure(t),this.upgradeFormatMap(t),this.processData(t),this.transformBaseSpec(t),this.transformAnimationSpec(t),this.transformAxesSpec(t),t.extensionMark=[this.generateBarBackground(t),...this.generateDecorateHaloIcons(t),this.generateRankingIcon(t),this.generateNameLabel(t),this.generateOrderLabel(t),this.generateValueLabel(t)],this.transformPaddingSpec(t),super.transformSpec(t)}normalizeSpec(t){(function t(e,i){for(const n in i)"object"==typeof i[n]&&null!==i[n]?(e.hasOwnProperty(n)||(e[n]=Array.isArray(i[n])?[]:{}),t(e[n],i[n])):e.hasOwnProperty(n)||"object"!=typeof e||(e[n]=i[n]);return e})(t,o),((t,e)=>{e.forEach((e=>{var n,s,a,r,o,l;i.isArray(t[e])?t[e].forEach(((i,n)=>{var s,a,r;t[e][n]=Object.assign(Object.assign({},i),{style:Object.assign(Object.assign({},null==i?void 0:i.style),{visible:null===(r=null!==(a=null===(s=null==i?void 0:i.style)||void 0===s?void 0:s.visible)&&void 0!==a?a:null==i?void 0:i.visible)||void 0===r||r})})})):t[e]=Object.assign(Object.assign({},t[e]),{style:Object.assign(Object.assign({},null===(n=t[e])||void 0===n?void 0:n.style),{visible:null===(l=null!==(r=null===(a=null===(s=t[e])||void 0===s?void 0:s.style)||void 0===a?void 0:a.visible)&&void 0!==r?r:null===(o=t[e])||void 0===o?void 0:o.visible)||void 0===l||l})})}))})(t,["barBackground","rankingIcon","decorateHaloIcons","orderLabel","nameLabel","valueLabel"])}upgradeTextMeasure(t){var e,n,s,a,r,o,l,h,d;null===(e=this.nameLabelTextMeasure)||void 0===e||e.release(),null===(n=this.valueLabelTextMeasure)||void 0===n||n.release(),null===(s=this.orderLabelTextMeasure)||void 0===s||s.release(),this.nameLabelTextMeasure=new i.TextMeasure({defaultFontParams:null!==(r=null===(a=t.nameLabel)||void 0===a?void 0:a.style)&&void 0!==r?r:{}}),this.valueLabelTextMeasure=new i.TextMeasure({defaultFontParams:null!==(l=null===(o=t.valueLabel)||void 0===o?void 0:o.style)&&void 0!==l?l:{}}),this.orderLabelTextMeasure=new i.TextMeasure({defaultFontParams:null!==(d=null===(h=t.orderLabel)||void 0===h?void 0:h.style)&&void 0!==d?d:{}})}upgradeFormatMap(t){this.formatMap[t.yField]=t.nameLabel.formatMethod,this.formatMap[t.xField]=t.valueLabel.formatMethod,this.formatMap[h]=t.orderLabel.formatMethod}processData(t){var e;(null===(e=t.data[0])||void 0===e?void 0:e.values)||(this.originalData=t.data,this.originalSpec=i.cloneDeep(t),this.dataSpecs=this.processRankingData(t),t.data=this.dataSpecs[0].data)}transformBaseSpec(t){var e,i,n;t.type="common",t.dataKey=l,t.series=[{type:"bar",direction:"horizontal",xField:t.xField,yField:t.yField,barWidth:null!==(i=null===(e=t.bar)||void 0===e?void 0:e.height)&&void 0!==i?i:10,bar:Object.assign(Object.assign({},t.bar),{style:Object.assign(Object.assign({},null===(n=t.bar)||void 0===n?void 0:n.style),{x1:0,visible:e=>{var i,n;return!e[d]&&(null===(n=null===(i=t.bar)||void 0===i?void 0:i.style)||void 0===n||n)}})})}]}transformAnimationSpec(t){var e,i,n;t.animationUpdate.enable&&(t.player=Object.assign(Object.assign({},t.player),{specs:this.dataSpecs,auto:!0,visible:!1,interval:(null!==(i=null===(e=t.animationNormal)||void 0===e?void 0:e.interval)&&void 0!==i?i:1e3)+(null!==(n=t.animationUpdate.duration)&&void 0!==n?n:1e3)/2,loop:!0}),t.animationExit=this.getAnimationExit(this.originalSpec),t.animationAppear=this.getAnimationAppear(this.originalSpec,"rect"),t.animationEnter=this.getAnimationEnter(this.originalSpec),t.animationUpdate=this.getAnimationUpdate(this.originalSpec),t.animationNormal=this.originalSpec.animationNormal)}transformAxesSpec(t){const{min:e,max:i}=((t,e)=>{let i,n;const s=t.map((t=>t[e])).filter((t=>null!=t));if(0===s.length)i=0,n=1;else{i=Math.min(...s)-(Math.max(...s)-Math.min(...s))/3,n=(Math.max(...s)-i)/.8+i;const t=10,e=i;i===n&&(i=e-t,n=(4*e+t)/4)}return{min:i,max:n}})(this.originalData,t.xField);t.axes=[{orient:"left",type:"band",visible:!1,inverse:!0,paddingOuter:.5},{orient:"bottom",label:{visible:!0},type:"linear",visible:!1,min:e,max:i}]}generateBarBackground(t){var e;return{type:t.barBackground.type,dataId:"data",visible:!0,dataKey:l,zIndex:-99,state:null===(e=t.barBackground)||void 0===e?void 0:e.state,style:Object.assign(Object.assign({x:(e,i)=>"symbol"===t.barBackground.type?i.getRegion().getLayoutRect().width/2:0,y:(e,i)=>i.valueToY([e[t.yField]])+i.yBandwidth()/2-("symbol"===t.barBackground.type?0:t.bar.height/2),size:(e,i)=>[i.getRegion().getLayoutRect().width,t.bar.height],width:(t,e)=>e.getRegion().getLayoutRect().width,height:t.bar.height},t.barBackground.style),{visible:e=>!e[d]&&t.barBackground.style.visible}),animation:!0,animationEnter:this.getAnimationEnter(this.originalSpec),animationExit:this.getAnimationExit(this.originalSpec),animationAppear:this.getAnimationAppear(this.originalSpec,"barBack"),animationUpdate:this.getAnimationUpdate(this.originalSpec)}}generateDecorateHaloIcons(t){var e;return null===(e=t.decorateHaloIcons)||void 0===e?void 0:e.map((e=>({type:"symbol",dataId:"data",visible:!0,dataKey:l,state:null==e?void 0:e.state,style:Object.assign(Object.assign({x:(e,i)=>{if(void 0!==e[t.xField]&&null!==e[t.xField])return i.valueToX([e[t.xField]])},y:(e,i)=>i.valueToY([e[t.yField]])+i.yBandwidth()/2},e.style),{visible:t=>!t[d]&&e.style.visible}),animation:!0,animationEnter:this.getAnimationEnter(this.originalSpec),animationExit:this.getAnimationExit(this.originalSpec),animationAppear:this.getAnimationAppear(this.originalSpec,"symbol"),animationUpdate:this.getAnimationUpdate(this.originalSpec)})))}generateRankingIcon(t){return{type:"symbol",dataId:"data",visible:!0,dataKey:l,state:t.rankingIcon.state,style:Object.assign(Object.assign({x:e=>"bothEnd"===t.labelLayout?-(10+this.nameLabelTextMeasure.fullMeasure(this.formatDatum(t.yField,e)).width+(t.orderLabel.style.visible?5+this.orderLabelTextMeasure.fullMeasure(this.formatDatum(h,e)).width:0)+8):5,y:(e,i)=>"bothEnd"===t.labelLayout?i.valueToY([e[t.yField]])+i.yBandwidth()/2:i.valueToY([e[t.yField]])+i.yBandwidth()/2-t.bar.height/2-5-Math.max(this.nameLabelTextMeasure.fullMeasure(this.formatDatum(t.yField,e)).height,this.orderLabelTextMeasure.fullMeasure(this.formatDatum(h,e)).height)/2},t.rankingIcon.style),{lineWidth:0,stroke:null,visible:e=>!e[d]&&t.rankingIcon.style.visible}),animation:!0,animationEnter:this.getAnimationEnter(this.originalSpec),animationExit:this.getAnimationExit(this.originalSpec),animationAppear:this.getAnimationAppear(this.originalSpec,"text"),animationUpdate:this.getAnimationUpdate(this.originalSpec)}}generateNameLabel(t){var e;return{type:"text",dataId:"data",dataKey:l,state:null===(e=t.nameLabel)||void 0===e?void 0:e.state,style:Object.assign(Object.assign({text:e=>this.formatDatum(t.yField,e),x:()=>{var e;return"bothEnd"===t.labelLayout?-10:(t.rankingIcon.style.visible?8+(null!==(e=t.rankingIcon.style.size)&&void 0!==e?e:10):0)+(t.orderLabel.style.visible?5+this.getMaxDataLabelLens(t,h,this.orderLabelTextMeasure):0)},y:(e,i)=>"bothEnd"===t.labelLayout?i.valueToY([e[t.yField]])+i.yBandwidth()/2:i.valueToY([e[t.yField]])+i.yBandwidth()/2-t.bar.height/2-5},t.nameLabel.style),{textAlign:"bothEnd"===t.labelLayout?"right":"left",textBaseline:"bothEnd"===t.labelLayout?"middle":"bottom",visible:e=>!e[d]&&t.nameLabel.style.visible}),animation:!0,animationEnter:this.getAnimationEnter(this.originalSpec),animationExit:this.getAnimationExit(this.originalSpec),animationAppear:this.getAnimationAppear(this.originalSpec,"text"),animationUpdate:this.getAnimationUpdate(this.originalSpec)}}generateOrderLabel(t){var e;return{type:"text",dataId:"data",dataKey:l,state:null===(e=t.orderLabel)||void 0===e?void 0:e.state,style:Object.assign(Object.assign({text:t=>this.formatDatum(h,t),x:e=>{var i;return"bothEnd"===t.labelLayout?-(10+this.nameLabelTextMeasure.fullMeasure(this.formatDatum(t.yField,e)).width+5):t.rankingIcon.style.visible?8+(null!==(i=t.rankingIcon.style.size)&&void 0!==i?i:10):0},y:(e,i)=>"bothEnd"===t.labelLayout?i.valueToY([e[t.yField]])+i.yBandwidth()/2:i.valueToY([e[t.yField]])+i.yBandwidth()/2-t.bar.height/2-5},t.orderLabel.style),{textAlign:"bothEnd"===t.labelLayout?"right":"left",textBaseline:"bothEnd"===t.labelLayout?"middle":"bottom",visible:e=>!e[d]&&t.orderLabel.style.visible}),animation:!0,animationEnter:this.getAnimationEnter(this.originalSpec),animationExit:this.getAnimationExit(this.originalSpec),animationAppear:this.getAnimationAppear(this.originalSpec,"text"),animationUpdate:this.getAnimationUpdate(this.originalSpec)}}generateValueLabel(t){var e;return{type:"text",dataId:"data",visible:!0,dataKey:l,state:null===(e=t.valueLabel)||void 0===e?void 0:e.state,style:Object.assign(Object.assign({text:e=>this.formatDatum(t.xField,e),x:(e,i)=>"bothEnd"===t.labelLayout?i.getRegion().getLayoutRect().width+this.getMaxDataLabelLens(t,t.xField,this.nameLabelTextMeasure)+5:i.getRegion().getLayoutRect().width,y:(e,i)=>"bothEnd"===t.labelLayout?i.valueToY([e[t.yField]])+i.yBandwidth()/2:i.valueToY([e[t.yField]])+i.yBandwidth()/2-t.bar.height/2-5},t.valueLabel.style),{textAlign:"bothEnd"===t.labelLayout?"left":"right",textBaseline:"bothEnd"===t.labelLayout?"middle":"bottom",visible:e=>!e[d]&&t.valueLabel.style.visible}),animation:!0,animationEnter:this.getAnimationEnter(this.originalSpec),animationExit:this.getAnimationExit(this.originalSpec),animationAppear:this.getAnimationAppear(this.originalSpec,"text"),animationUpdate:this.getAnimationUpdate(this.originalSpec)}}transformPaddingSpec(t){var e;const i=t.decorateHaloIcons.length>0?Math.max(...t.decorateHaloIcons.map((t=>{var e,i;return null!==(i=null===(e=t.style)||void 0===e?void 0:e.size)&&void 0!==i?i:18}))):0;t.padding=Object.assign({left:"bothEnd"===t.labelLayout?10+this.getMaxDataLabelLens(t,t.yField,this.nameLabelTextMeasure)+(t.orderLabel.style.visible?5+this.getMaxDataLabelLens(t,h,this.orderLabelTextMeasure):0)+(t.rankingIcon.style.visible?8+(null!==(e=t.rankingIcon.style.size)&&void 0!==e?e:10):0)+5:5+i/2,right:"bothEnd"===t.labelLayout?5+this.getMaxDataLabelLens(t,t.yField,this.valueLabelTextMeasure)+5:15,top:0,bottom:0},t.padding)}getMaxDataLabelLens(t,e,i){const n=this.originalData.map((t=>t[d]?0:i.fullMeasure(this.formatDatum(e,t)).width));return Math.max(...n)}formatDatum(t,e){var i;return(null===(i=this.formatMap)||void 0===i?void 0:i[t])?this.formatMap[t](e[t],e):e[t]}getLabelWidth(t,e){return e+t}getAnimationExit(t){var e,i,n,s,a;return!1!==(null===(e=t.animationUpdate)||void 0===e?void 0:e.enable)&&{type:"moveOut",options:{direction:"y",orient:"negative",point:(e,i)=>({y:i.getGraphicAttribute("y")-t.height/(t.pageSize+1)*Math.min(t.scrollSize,t.pageSize)})},duration:null!==(n=null===(i=t.animationUpdate)||void 0===i?void 0:i.duration)&&void 0!==n?n:1e3,easing:null!==(a=null===(s=t.animationUpdate)||void 0===s?void 0:s.easing)&&void 0!==a?a:"linear"}}getAnimationEnter(t){var e,i,n,s,a;return!1!==(null===(e=t.animationUpdate)||void 0===e?void 0:e.enable)&&{type:"moveIn",options:{direction:"y",orient:"negative",excludeChannels:["y"],point:(e,i)=>({y:i.getGraphicAttribute("y")+t.height/(t.pageSize+1)*Math.min(t.scrollSize,t.pageSize)})},duration:null!==(n=null===(i=t.animationUpdate)||void 0===i?void 0:i.duration)&&void 0!==n?n:1e3,easing:null!==(a=null===(s=t.animationUpdate)||void 0===s?void 0:s.easing)&&void 0!==a?a:"linear"}}getAnimationAppear(t,e){var i,n,s,a,r,o,l,h,d,c,u,p,g;return!1!==(null===(i=t.animationAppear)||void 0===i?void 0:i.enable)&&("rect"===e?{type:"growWidthIn",oneByOne:!1,duration:null!==(s=null===(n=t.animationAppear)||void 0===n?void 0:n.duration)&&void 0!==s?s:1e3,easing:null!==(r=null===(a=t.animationAppear)||void 0===a?void 0:a.easing)&&void 0!==r?r:"linear",options:{}}:"symbol"===e?{channel:{x:{from:0,to:(t,e)=>e.getGraphicItem().attribute.x}},duration:null!==(l=null===(o=t.animationAppear)||void 0===o?void 0:o.duration)&&void 0!==l?l:1e3,easing:null!==(d=null===(h=t.animationAppear)||void 0===h?void 0:h.easing)&&void 0!==d?d:"linear"}:{channel:{opacity:{from:0,to:1}},duration:null!==(u=null===(c=t.animationAppear)||void 0===c?void 0:c.duration)&&void 0!==u?u:1e3,easing:null!==(g=null===(p=t.animationAppear)||void 0===p?void 0:p.easing)&&void 0!==g?g:"linear"})}getAnimationUpdate(t){var e,i,n,s;return!1!==t.animationUpdate.enable&&{duration:null!==(i=null===(e=t.animationUpdate)||void 0===e?void 0:e.duration)&&void 0!==i?i:1e3,easing:null!==(s=null===(n=t.animationUpdate)||void 0===n?void 0:n.easing)&&void 0!==s?s:"linear"}}}class u extends e.BaseChart{constructor(){super(...arguments),this.type="rankingList",this.transformerConstructor=c}init(){this.isValid()&&super.init()}isValid(){var t,e,i,n;const{xField:s,yField:a,data:r}=this._spec;return s&&a?!!r||(null===(n=(i=this._option).onError)||void 0===n||n.call(i,"Data is required"),!1):(null===(e=(t=this._option).onError)||void 0===e||e.call(t,"Missing Required Config: `xField`, `yField` "),!1)}}u.type="rankingList",u.view="singleDefault",u.transformerConstructor=c;const p=(t,e)=>{var i,n;if(!(null==e?void 0:e.fields))return t;if(0===t.length)return t;const s=e.fields,a=t[0],r={},o=[];for(const e in s)if(Object.prototype.hasOwnProperty.call(s,e)){const l=s[e];if(!l.type){let n=a;e in a||(n=null!==(i=t.find((t=>e in t)))&&void 0!==i?i:a),l.type="number"==typeof n[e]?"linear":"ordinal"}let h;if("number"==typeof l.sortIndex&&(h={key:e,type:l.type,index:l.sortIndex,sortIndex:{},sortIndexCount:0,sortReverse:!0===l.sortReverse},o.push(h)),(null===(n=l.domain)||void 0===n?void 0:n.length)>0)if("ordinal"===l.type){l._domainCache={},r[e]=l;const t={};l.domain.forEach(((e,i)=>{t[e]=i,l._domainCache[e]=i})),h&&(h.sortIndex=t,h.sortIndexCount=l.domain.length)}else l.domain.length>=2&&(r[e]=l)}return Object.keys(r).length>0&&(t=t.filter((t=>{for(const e in r){const i=r[e];if("ordinal"===i.type){if(!(t[e]in i._domainCache))return!1}else if(i.domain[0]>t[e]||i.domain[1]<t[e])return!1}return!0}))),o.sort(((t,e)=>t.index-e.index)),t.sort(((t,e)=>function(t,e,i){for(let n=0;n<i.length;n++){const s=i[n];let a=0;if("ordinal"===s.type?(void 0===s.sortIndex[e[s.key]]&&(s.sortIndex[e[s.key]]=s.sortIndexCount++),void 0===s.sortIndex[t[s.key]]&&(s.sortIndex[t[s.key]]=s.sortIndexCount++),a=s.sortIndex[t[s.key]]-s.sortIndex[e[s.key]]):"linear"===s.type&&(a=t[s.key]-e[s.key]),s.sortReverse&&(a=-a),0!==a)return a}return 0}(t,e,o))),t};let g=0;const f="_data-view-diff-rank";class m{constructor(t,e){var n=this;let s;this.dataSet=t,this.options=e,this.isDataView=!0,this.target=new i.EventEmitter,this.parseOption=null,this.transformsArr=[],this.isRunning=!1,this.rawData={},this.history=!1,this.parserData={},this.latestData={},this._fields=null,this.reRunAllTransform=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{pushHistory:!0,emitMessage:!0};return n.isRunning=!0,n.resetTransformData(),n.transformsArr.forEach((e=>{n.executeTransform(e,{pushHistory:t.pushHistory,emitMessage:!1}),n.isLastTransform(e)&&n.diffLastData()})),n.isRunning=!1,!1!==t.emitMessage&&n.target.emit("change",[]),n},this.markRunning=()=>{this.isRunning=!0,this.target.emit("markRunning",[])},s=(null==e?void 0:e.name)?e.name:function(){return g>1e8&&(g=0),(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"dataset")+"_"+g++}("dataview"),this.name=s,(null==e?void 0:e.history)&&(this.history=e.history,this.historyData=[]),this.dataSet.setDataView(s,this),this.setFields(null==e?void 0:e.fields)}parse(t,e){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];var n;this.isRunning=!0,i&&this.target.emit("beforeParse",[]),e&&(this.parseOption=e);const s=this.cloneParseData(t,e);if(null==e?void 0:e.type){const t=(null!==(n=this.dataSet.getParser(e.type))&&void 0!==n?n:this.dataSet.getParser("bytejson"))(s,e.options,this);this.rawData=s,this.parserData=t,this.history&&this.historyData.push(s,t),this.latestData=t}else this.parserData=s,this.rawData=s,this.history&&this.historyData.push(s),this.latestData=s;return this.isRunning=!1,i&&this.target.emit("afterParse",[]),this}transform(t){let e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(this.isRunning=!0,t&&t.type){let i=!0;if("fields"===t.type){this._fields=t.options.fields;const e=this.transformsArr.findIndex((e=>e.type===t.type));e>=0&&(i=!1,this.transformsArr[e].options.fields=this._fields)}if(i&&this.transformsArr.push(t),e){const e=this.isLastTransform(t);this.executeTransform(t),e&&this.diffLastData()}}return this.sortTransform(),this.isRunning=!1,this}isLastTransform(t){return this.transformsArr[this.transformsArr.length-1]===t}sortTransform(){this.transformsArr.length>=2&&this.transformsArr.sort(((t,e)=>{var i,n;return(null!==(i=t.level)&&void 0!==i?i:0)-(null!==(n=e.level)&&void 0!==n?n:0)}))}executeTransform(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{pushHistory:!0,emitMessage:!0};const{pushHistory:i,emitMessage:n}=e,s=this.dataSet.getTransform(t.type)(this.latestData,t.options);this.history&&!1!==i&&this.historyData.push(s),this.latestData=s,!1!==n&&this.target.emit("change",[])}resetTransformData(){this.latestData=this.parserData,this.history&&(this.historyData.length=0,this.historyData.push(this.rawData,this.parserData))}enableDiff(t){this._diffData=!0,this._diffKeys=t,this._diffMap=new Map,this._diffRank=0}disableDiff(){this._diffData=!1,this._diffMap=null,this._diffRank=null}resetDiff(){this._diffMap=new Map,this._diffRank=0}diffLastData(){var t;if(!this._diffData)return;if(!this.latestData.forEach)return;if(!(null===(t=this._diffKeys)||void 0===t?void 0:t.length))return;const e=this._diffRank+1;if(0===this._diffRank)this.latestData.forEach((t=>{t[f]=e,this._diffMap.set(this._diffKeys.reduce(((e,i)=>e+t[i]),""),t)})),this.latestDataAUD={add:Array.from(this.latestData),del:[],update:[]};else{let t;this.latestDataAUD={add:[],del:[],update:[]},this.latestData.forEach((i=>{i[f]=e,t=this._diffKeys.reduce(((t,e)=>t+i[e]),""),this._diffMap.get(t)?this.latestDataAUD.update.push(i):this.latestDataAUD.add.push(i),this._diffMap.set(t,i)})),this._diffMap.forEach(((t,i)=>{t[f]<e&&(this.latestDataAUD.del.push(t),this._diffMap.delete(i))}))}this._diffRank=e}cloneParseData(t,e){let n=!1;return t instanceof m||!0!==(null==e?void 0:e.clone)||(n=!0),n?i.cloneDeep(t):t}parseNewData(t,e){this.parse(t,e||this.parseOption),this.reRunAllTransform()}updateRawData(t,e){const i=this.cloneParseData(t,e);this.rawData=i,this.parserData=i,this.latestData=i,this.reRunAllTransform()}getFields(){var t;return this._fields?this._fields:"dataview"===(null===(t=this.parseOption)||void 0===t?void 0:t.type)&&1===this.rawData.length&&this.rawData[0].getFields?this.rawData[0].getFields():null}setFields(t){let e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this._fields=t&&e?i.merge({},this._fields,t):t;const n=this.transformsArr.find((t=>"fields"===t.type));!i.isNil(this._fields)&&i.isNil(n)?(this.dataSet.registerTransform("fields",p),this.transform({type:"fields",options:{fields:this._fields}},!1)):n&&(n.options.fields=this._fields)}destroy(){this.dataSet.removeDataView(this.name),this._diffMap=null,this._diffRank=null,this.latestData=null,this.rawData=null,this.parserData=null,this.transformsArr=null,this.target=null}}
1
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@visactor/vchart"),require("@visactor/vutils")):"function"==typeof define&&define.amd?define(["exports","@visactor/vchart","@visactor/vutils"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).VChartExtension={},t.VChart,t.VUtils)}(this,(function(t,e,i){"use strict";class n extends e.BaseChartSpecTransformer{transformSpec(t){const{timeData:e,timeNodes:n}=function(t){const{xField:e,yField:n,timeField:s,data:a,topN:r=10,icon:o}=t,l=new Set,h=new Map;return a.sort(((t,i)=>Number(i[e])-Number(t[e]))),a.forEach((t=>{const e=t[s];i.isValid(e)&&l.add(e),h.has(e)||h.set(e,[]);const a=h.get(e);if(a.length<r){const e=Object.assign({},t);o&&o[e[n]]&&(e.icon=o[e[n]]),a.push(e)}})),{timeData:h,timeNodes:Array.from(l).sort()}}(t),{interval:r,xField:o,yField:l,color:h,icon:d,iconPosition:c,iconShape:u,timeLabel:p,label:g,nameLabel:f,xAxis:m,yAxis:y}=t,b=r||1e3,v=Math.min(b,500);if(t.type="common",t.data=[{id:"timeData",values:e.get(n[0])},{id:"time",values:[{time:n[0]}]}],t.color={specified:Object.assign({},h)},t.region=[{clip:!0}],t.series=[{type:"bar",id:"ranking-bar",dataId:"timeData",direction:"horizontal",yField:l,xField:o,seriesField:l,extensionMark:[],label:s(g,Object.assign(Object.assign({},f),{yField:l}))}],t.axes=function(t={},e={}){const i={orient:"left",type:"band",inverse:!0,label:{style:e.label},domainLine:{style:e.domainLine},grid:{style:e.grid}},n={orient:"bottom",type:"linear",nice:!1,animation:!0,label:{style:t.label},domainLine:{style:t.domainLine},grid:{style:t.grid},innerOffset:{right:"10%"}};t.label&&(n.label=t.label);return[i,n]}(m,y),t.player={type:"continuous",auto:!0,loop:!1,interval:b,specs:n.map((t=>({data:[{id:"timeData",values:e.get(t)},{id:"time",values:[{time:t}]}]})))},t.tooltip={visible:!1},t.customMark=[],function(t,{interval:e,exchangeDuration:i}){t.animationAppear=!1,t.animationUpdate={bar:[{type:"update",options:{excludeChannels:["y"]},easing:"linear",duration:e},{channel:["y"],easing:"circInOut",duration:i}],axis:{duration:e,easing:"linear"}},t.animationEnter={bar:[{type:"moveIn",duration:i,easing:"cubicInOut",options:{direction:"y",orient:"negative",point:(t,e,i)=>({y:i.groupHeight+e.getBounds().height()})}}]},t.animationExit={bar:[{type:"moveOut",duration:i,easing:"cubicInOut",options:{direction:"y",orient:"negative"}}]}}(t,{interval:b,exchangeDuration:v}),p&&!1===p.visible||t.customMark.push(function(t={}){return{type:"text",dataId:"time",style:Object.assign({textBaseline:"bottom",fontSize:200,textAlign:"end",fontWeight:600,text:t=>t.time,x:(t,e)=>{var i;return(null===(i=e.vchart.getChart().getCanvasRect())||void 0===i?void 0:i.width)-50},y:(t,e)=>{var i;return(null===(i=e.vchart.getChart().getCanvasRect())||void 0===i?void 0:i.height)-80},fill:"grey",fillOpacity:.5},t)}}(p.style)),d){const e=function(t="bar-end",e="circle",{interval:i,exchangeDuration:n}){return{type:"symbol",dataId:"timeData",style:{symbolType:e,stroke:"white",lineWidth:1,size:(t,e)=>{var i,n;const s=e.vchart,a=null===(i=s.getChart())||void 0===i?void 0:i.getSeriesInIndex(0)[0];if(s&&a){const t=null!==(n=a.getYAxisHelper().getBandwidth(0))&&void 0!==n?n:0;return Math.max(t-4,0)}return 10},background:t=>t.icon,x:(e,i)=>{var n,s;const a=i.vchart,r=null===(n=a.getChart())||void 0===n?void 0:n.getSeriesInIndex(0)[0];if(a&&r){const i=null!==(s=r.getYAxisHelper().getBandwidth(0))&&void 0!==s?s:0;return"bar-start"===t?i/2:"axis"===t?-i/2:r.dataToPositionX(e)-i/2}},y:(t,e)=>{var i,n;const s=e.vchart,a=null===(i=s.getChart())||void 0===i?void 0:i.getSeriesInIndex(0)[0];if(s&&a){const e=null!==(n=a.getYAxisHelper().getBandwidth(0))&&void 0!==n?n:0;return a.dataToPositionY(t)+e/2}},scaleY:"rect"===e?1.2:1},animationUpdate:a(i,n),animationEnter:[{type:"moveIn",duration:n,easing:"cubicInOut",options:{direction:"y",orient:"negative",point:(t,e,i)=>({y:i.groupHeight+e.getBounds().height()})}}],animationExit:[{type:"moveOut",duration:n,easing:"cubicInOut",options:{direction:"y",orient:"negative"}}]}}(c,u,{interval:b,exchangeDuration:v});t.series[0].extensionMark.push(e)}super.transformSpec(t)}}function s(t={},e){var i,n,s,a;const r=[];return!1!==t.visible&&r.push({visible:!0,overlap:!1,style:Object.assign({fill:"rgb(64, 64, 64)"},t.style),smartInvert:{fillStrategy:(null===(i=t.style)||void 0===i?void 0:i.fill)?"null":void 0,strokeStrategy:(null===(n=t.style)||void 0===n?void 0:n.stroke)?"null":void 0}}),e.visible&&r.push({visible:!0,overlap:!1,style:Object.assign({},e.style),smartInvert:{fillStrategy:(null===(s=e.style)||void 0===s?void 0:s.fill)?"null":void 0,strokeStrategy:(null===(a=e.style)||void 0===a?void 0:a.stroke)?"null":void 0},position:"bar-end"===e.position?"inside-right":"inside-left",formatter:`{${e.yField}}`}),r}function a(t,e){return[{duration:e,easing:"cubicInOut",channel:["y"]},{options:{excludeChannels:["y"]},channel:["x","x2","x1"],easing:"linear",duration:t}]}class r extends e.BaseChart{constructor(){super(...arguments),this.type="rankingBar",this.transformerConstructor=n}init(){this.isValid()&&super.init()}isValid(){var t,e,i,n;const{xField:s,yField:a,timeField:r,data:o}=this._spec;return s&&a&&r?!!o||(null===(n=(i=this._option).onError)||void 0===n||n.call(i,"Data is required"),!1):(null===(e=(t=this._option).onError)||void 0===e||e.call(t,"Missing Required Config: `xField`, `yField`, `timeField` "),!1)}}r.type="rankingBar",r.view="singleDefault",r.transformerConstructor=n;const o={width:400,height:225,labelLayout:"top",bar:{height:100,style:{cornerRadius:5}},barBackground:{type:"rect",style:{fill:"rgba(255,255,255,0.1)",cornerRadius:5}},rankingIcon:{visible:!0,style:{fill:"rgba(253,253,253,0.5)",size:12}},nameLabel:{visible:!0,style:{fontSize:20,fontWeight:"normal",fill:"rgba(255,255,255,0.7)",textBaseline:"middle"}},orderLabel:{visible:!0,style:{fontSize:20,fontWeight:"normal",fill:"rgba(255,255,255,0.7)",textBaseline:"middle"}},valueLabel:{visible:!0,style:{fontSize:14,fontWeight:"normal",fill:"rgba(255,255,255,1)",textBaseline:"middle"}},pageSize:5,scrollSize:1,animationAppear:{enable:!0,type:"grow",duration:1e3,easing:"linear"},animationUpdate:{enable:!0,type:"grow",duration:1e3,easing:"linear"},animationNormal:{interval:1e3}},l="dataKey",h="VCHART_ORDER",d="SUPPLY_DATA_KEY";class c extends e.CommonChartSpecTransformer{constructor(){super(...arguments),this.formatMap={},this.paginateDataArr=t=>{const{scrollSize:e=1,pageSize:i=5}=t,n=this.originalData,s={};let a=0;for(let r=0;r<n.length;r+=e)if(a++,s[`page${a}`]=n.slice(r,r+i),r+i-1>=n.length-1){n.push(...Array.from({length:r+i-n.length},(e=>({[t.yField]:100*Math.random(),[t.xField]:null,[d]:!0}))));break}return{orderCount:a,result:s}},this.processRankingData=t=>{const e=[];t.data.forEach(((t,e)=>t[h]=e+1<10?`0${e+1}`:e+1));const i=this.paginateDataArr(t).result,n=this.paginateDataArr(t).orderCount,s=t.pageSize-i[`page${n}`].length;return i[`page${n}`].push(...Array.from({length:s},(e=>({[t.yField]:100*Math.random(),[t.xField]:null,[d]:!0})))),Object.keys(i).forEach((n=>{e.push({data:[{id:"datas",values:i[n].map((e=>Object.assign(Object.assign({},e),{[l]:e[t.yField]})))},{id:"order",values:[{order:n}]}]})})),e}}transformSpec(t){super.transformSpec(t),this.normalizeSpec(t),this.upgradeTextMeasure(t),this.upgradeFormatMap(t),this.processData(t),this.transformBaseSpec(t),this.transformAnimationSpec(t),this.transformAxesSpec(t),t.extensionMark=[this.generateBarBackground(t),...this.generateDecorateHaloIcons(t),this.generateRankingIcon(t),this.generateNameLabel(t),this.generateOrderLabel(t),this.generateValueLabel(t)],this.transformPaddingSpec(t),super.transformSpec(t)}normalizeSpec(t){(function t(e,i){for(const n in i)"object"==typeof i[n]&&null!==i[n]?(e.hasOwnProperty(n)||(e[n]=Array.isArray(i[n])?[]:{}),t(e[n],i[n])):e.hasOwnProperty(n)||"object"!=typeof e||(e[n]=i[n]);return e})(t,o),((t,e)=>{e.forEach((e=>{var n,s,a,r,o,l;i.isArray(t[e])?t[e].forEach(((i,n)=>{var s,a,r;t[e][n]=Object.assign(Object.assign({},i),{style:Object.assign(Object.assign({},null==i?void 0:i.style),{visible:null===(r=null!==(a=null===(s=null==i?void 0:i.style)||void 0===s?void 0:s.visible)&&void 0!==a?a:null==i?void 0:i.visible)||void 0===r||r})})})):t[e]=Object.assign(Object.assign({},t[e]),{style:Object.assign(Object.assign({},null===(n=t[e])||void 0===n?void 0:n.style),{visible:null===(l=null!==(r=null===(a=null===(s=t[e])||void 0===s?void 0:s.style)||void 0===a?void 0:a.visible)&&void 0!==r?r:null===(o=t[e])||void 0===o?void 0:o.visible)||void 0===l||l})})}))})(t,["barBackground","rankingIcon","decorateHaloIcons","orderLabel","nameLabel","valueLabel"])}upgradeTextMeasure(t){var e,n,s,a,r,o,l,h,d;null===(e=this.nameLabelTextMeasure)||void 0===e||e.release(),null===(n=this.valueLabelTextMeasure)||void 0===n||n.release(),null===(s=this.orderLabelTextMeasure)||void 0===s||s.release(),this.nameLabelTextMeasure=new i.TextMeasure({defaultFontParams:null!==(r=null===(a=t.nameLabel)||void 0===a?void 0:a.style)&&void 0!==r?r:{}}),this.valueLabelTextMeasure=new i.TextMeasure({defaultFontParams:null!==(l=null===(o=t.valueLabel)||void 0===o?void 0:o.style)&&void 0!==l?l:{}}),this.orderLabelTextMeasure=new i.TextMeasure({defaultFontParams:null!==(d=null===(h=t.orderLabel)||void 0===h?void 0:h.style)&&void 0!==d?d:{}})}upgradeFormatMap(t){this.formatMap[t.yField]=t.nameLabel.formatMethod,this.formatMap[t.xField]=t.valueLabel.formatMethod,this.formatMap[h]=t.orderLabel.formatMethod}processData(t){var e;(null===(e=t.data[0])||void 0===e?void 0:e.values)||(this.originalData=t.data,this.originalSpec=i.cloneDeep(t),this.dataSpecs=this.processRankingData(t),t.data=this.dataSpecs[0].data)}transformBaseSpec(t){var e,i,n;t.type="common",t.dataKey=l,t.series=[{type:"bar",direction:"horizontal",xField:t.xField,yField:t.yField,barWidth:null!==(i=null===(e=t.bar)||void 0===e?void 0:e.height)&&void 0!==i?i:10,bar:Object.assign(Object.assign({},t.bar),{style:Object.assign(Object.assign({},null===(n=t.bar)||void 0===n?void 0:n.style),{x1:0,visible:e=>{var i,n;return!e[d]&&(null===(n=null===(i=t.bar)||void 0===i?void 0:i.style)||void 0===n||n)}})})}]}transformAnimationSpec(t){var e,i,n;t.animationUpdate.enable&&(t.player=Object.assign(Object.assign({},t.player),{specs:this.dataSpecs,auto:!0,visible:!1,interval:(null!==(i=null===(e=t.animationNormal)||void 0===e?void 0:e.interval)&&void 0!==i?i:1e3)+(null!==(n=t.animationUpdate.duration)&&void 0!==n?n:1e3)/2,loop:!0}),t.animationExit=this.getAnimationExit(this.originalSpec),t.animationEnter=this.getAnimationEnter(this.originalSpec),t.animationUpdate=this.getAnimationUpdate(this.originalSpec)),t.animationNormal=this.originalSpec.animationNormal,t.animationAppear=this.getAnimationAppear(this.originalSpec,"rect")}transformAxesSpec(t){const{min:e,max:i}=((t,e)=>{let i,n;const s=t.map((t=>t[e])).filter((t=>null!=t));if(0===s.length)i=0,n=1;else{i=Math.min(...s)-(Math.max(...s)-Math.min(...s))/3,n=(Math.max(...s)-i)/.8+i;const t=10,e=i;i===n&&(i=e-t,n=(4*e+t)/4)}return{min:i,max:n}})(this.originalData,t.xField);t.axes=[{orient:"left",type:"band",visible:!1,inverse:!0,paddingOuter:.5},{orient:"bottom",label:{visible:!0},type:"linear",visible:!1,min:e,max:i}]}generateBarBackground(t){var e;return{type:t.barBackground.type,dataId:"data",visible:!0,dataKey:l,zIndex:-99,state:null===(e=t.barBackground)||void 0===e?void 0:e.state,style:Object.assign(Object.assign({x:(e,i)=>"symbol"===t.barBackground.type?i.getRegion().getLayoutRect().width/2:0,y:(e,i)=>i.valueToY([e[t.yField]])+i.yBandwidth()/2-("symbol"===t.barBackground.type?0:t.bar.height/2),size:(e,i)=>[i.getRegion().getLayoutRect().width,t.bar.height],width:(t,e)=>e.getRegion().getLayoutRect().width,height:t.bar.height},t.barBackground.style),{visible:e=>!e[d]&&t.barBackground.style.visible}),animation:!0,animationEnter:this.getAnimationEnter(this.originalSpec),animationExit:this.getAnimationExit(this.originalSpec),animationAppear:this.getAnimationAppear(this.originalSpec,"barBack"),animationUpdate:this.getAnimationUpdate(this.originalSpec)}}generateDecorateHaloIcons(t){var e;return null===(e=t.decorateHaloIcons)||void 0===e?void 0:e.map((e=>({type:"symbol",dataId:"data",visible:!0,dataKey:l,state:null==e?void 0:e.state,style:Object.assign(Object.assign({x:(e,i)=>{if(void 0!==e[t.xField]&&null!==e[t.xField])return i.valueToX([e[t.xField]])},y:(e,i)=>i.valueToY([e[t.yField]])+i.yBandwidth()/2},e.style),{visible:t=>!t[d]&&e.style.visible}),animation:!0,animationEnter:this.getAnimationEnter(this.originalSpec),animationExit:this.getAnimationExit(this.originalSpec),animationAppear:this.getAnimationAppear(this.originalSpec,"symbol"),animationUpdate:this.getAnimationUpdate(this.originalSpec)})))}generateRankingIcon(t){return{type:"symbol",dataId:"data",visible:!0,dataKey:l,state:t.rankingIcon.state,style:Object.assign(Object.assign({x:e=>"bothEnd"===t.labelLayout?-(10+this.nameLabelTextMeasure.fullMeasure(this.formatDatum(t.yField,e)).width+(t.orderLabel.style.visible?5+this.orderLabelTextMeasure.fullMeasure(this.formatDatum(h,e)).width:0)+8):5,y:(e,i)=>"bothEnd"===t.labelLayout?i.valueToY([e[t.yField]])+i.yBandwidth()/2:i.valueToY([e[t.yField]])+i.yBandwidth()/2-t.bar.height/2-5-Math.max(this.nameLabelTextMeasure.fullMeasure(this.formatDatum(t.yField,e)).height,this.orderLabelTextMeasure.fullMeasure(this.formatDatum(h,e)).height)/2},t.rankingIcon.style),{lineWidth:0,stroke:null,visible:e=>!e[d]&&t.rankingIcon.style.visible}),animation:!0,animationEnter:this.getAnimationEnter(this.originalSpec),animationExit:this.getAnimationExit(this.originalSpec),animationAppear:this.getAnimationAppear(this.originalSpec,"text"),animationUpdate:this.getAnimationUpdate(this.originalSpec)}}generateNameLabel(t){var e;return{type:"text",dataId:"data",dataKey:l,state:null===(e=t.nameLabel)||void 0===e?void 0:e.state,style:Object.assign(Object.assign({text:e=>this.formatDatum(t.yField,e),x:()=>{var e;return"bothEnd"===t.labelLayout?-10:(t.rankingIcon.style.visible?8+(null!==(e=t.rankingIcon.style.size)&&void 0!==e?e:10):0)+(t.orderLabel.style.visible?5+this.getMaxDataLabelLens(t,h,this.orderLabelTextMeasure):0)},y:(e,i)=>"bothEnd"===t.labelLayout?i.valueToY([e[t.yField]])+i.yBandwidth()/2:i.valueToY([e[t.yField]])+i.yBandwidth()/2-t.bar.height/2-5},t.nameLabel.style),{textAlign:"bothEnd"===t.labelLayout?"right":"left",textBaseline:"bothEnd"===t.labelLayout?"middle":"bottom",visible:e=>!e[d]&&t.nameLabel.style.visible}),animation:!0,animationEnter:this.getAnimationEnter(this.originalSpec),animationExit:this.getAnimationExit(this.originalSpec),animationAppear:this.getAnimationAppear(this.originalSpec,"text"),animationUpdate:this.getAnimationUpdate(this.originalSpec)}}generateOrderLabel(t){var e;return{type:"text",dataId:"data",dataKey:l,state:null===(e=t.orderLabel)||void 0===e?void 0:e.state,style:Object.assign(Object.assign({text:t=>this.formatDatum(h,t),x:e=>{var i;return"bothEnd"===t.labelLayout?-(10+this.nameLabelTextMeasure.fullMeasure(this.formatDatum(t.yField,e)).width+5):t.rankingIcon.style.visible?8+(null!==(i=t.rankingIcon.style.size)&&void 0!==i?i:10):0},y:(e,i)=>"bothEnd"===t.labelLayout?i.valueToY([e[t.yField]])+i.yBandwidth()/2:i.valueToY([e[t.yField]])+i.yBandwidth()/2-t.bar.height/2-5},t.orderLabel.style),{textAlign:"bothEnd"===t.labelLayout?"right":"left",textBaseline:"bothEnd"===t.labelLayout?"middle":"bottom",visible:e=>!e[d]&&t.orderLabel.style.visible}),animation:!0,animationEnter:this.getAnimationEnter(this.originalSpec),animationExit:this.getAnimationExit(this.originalSpec),animationAppear:this.getAnimationAppear(this.originalSpec,"text"),animationUpdate:this.getAnimationUpdate(this.originalSpec)}}generateValueLabel(t){var e;return{type:"text",dataId:"data",visible:!0,dataKey:l,state:null===(e=t.valueLabel)||void 0===e?void 0:e.state,style:Object.assign(Object.assign({text:e=>this.formatDatum(t.xField,e),x:(e,i)=>"bothEnd"===t.labelLayout?i.getRegion().getLayoutRect().width+this.getMaxDataLabelLens(t,t.xField,this.nameLabelTextMeasure)+5:i.getRegion().getLayoutRect().width,y:(e,i)=>"bothEnd"===t.labelLayout?i.valueToY([e[t.yField]])+i.yBandwidth()/2:i.valueToY([e[t.yField]])+i.yBandwidth()/2-t.bar.height/2-5},t.valueLabel.style),{textAlign:"bothEnd"===t.labelLayout?"left":"right",textBaseline:"bothEnd"===t.labelLayout?"middle":"bottom",visible:e=>!e[d]&&t.valueLabel.style.visible}),animation:!0,animationEnter:this.getAnimationEnter(this.originalSpec),animationExit:this.getAnimationExit(this.originalSpec),animationAppear:this.getAnimationAppear(this.originalSpec,"text"),animationUpdate:this.getAnimationUpdate(this.originalSpec)}}transformPaddingSpec(t){var e;const i=t.decorateHaloIcons.length>0?Math.max(...t.decorateHaloIcons.map((t=>{var e,i;return null!==(i=null===(e=t.style)||void 0===e?void 0:e.size)&&void 0!==i?i:18}))):0;t.padding=Object.assign({left:"bothEnd"===t.labelLayout?10+this.getMaxDataLabelLens(t,t.yField,this.nameLabelTextMeasure)+(t.orderLabel.style.visible?5+this.getMaxDataLabelLens(t,h,this.orderLabelTextMeasure):0)+(t.rankingIcon.style.visible?8+(null!==(e=t.rankingIcon.style.size)&&void 0!==e?e:10):0)+5:5+i/2,right:"bothEnd"===t.labelLayout?5+this.getMaxDataLabelLens(t,t.yField,this.valueLabelTextMeasure)+5:15,top:0,bottom:0},t.padding)}getMaxDataLabelLens(t,e,i){const n=this.originalData.map((t=>t[d]?0:i.fullMeasure(this.formatDatum(e,t)).width));return Math.max(...n)}formatDatum(t,e){var i;return(null===(i=this.formatMap)||void 0===i?void 0:i[t])?this.formatMap[t](e[t],e):e[t]}getLabelWidth(t,e){return e+t}getAnimationExit(t){var e,i,n,s,a;return!1!==(null===(e=t.animationUpdate)||void 0===e?void 0:e.enable)&&{type:"moveOut",options:{direction:"y",orient:"negative",point:(e,i)=>({y:i.getGraphicAttribute("y")-t.height/(t.pageSize+1)*Math.min(t.scrollSize,t.pageSize)})},duration:null!==(n=null===(i=t.animationUpdate)||void 0===i?void 0:i.duration)&&void 0!==n?n:1e3,easing:null!==(a=null===(s=t.animationUpdate)||void 0===s?void 0:s.easing)&&void 0!==a?a:"linear"}}getAnimationEnter(t){var e,i,n,s,a;return!1!==(null===(e=t.animationUpdate)||void 0===e?void 0:e.enable)&&{type:"moveIn",options:{direction:"y",orient:"negative",excludeChannels:["y"],point:(e,i)=>({y:i.getGraphicAttribute("y")+t.height/(t.pageSize+1)*Math.min(t.scrollSize,t.pageSize)})},duration:null!==(n=null===(i=t.animationUpdate)||void 0===i?void 0:i.duration)&&void 0!==n?n:1e3,easing:null!==(a=null===(s=t.animationUpdate)||void 0===s?void 0:s.easing)&&void 0!==a?a:"linear"}}getAnimationAppear(t,e){var i,n,s,a,r,o,l,h,d,c,u,p,g;return!1!==(null===(i=t.animationAppear)||void 0===i?void 0:i.enable)&&("rect"===e?{type:"growWidthIn",oneByOne:!1,duration:null!==(s=null===(n=t.animationAppear)||void 0===n?void 0:n.duration)&&void 0!==s?s:1e3,easing:null!==(r=null===(a=t.animationAppear)||void 0===a?void 0:a.easing)&&void 0!==r?r:"linear",options:{}}:"symbol"===e?{channel:{x:{from:0,to:(t,e)=>e.getGraphicItem().attribute.x}},duration:null!==(l=null===(o=t.animationAppear)||void 0===o?void 0:o.duration)&&void 0!==l?l:1e3,easing:null!==(d=null===(h=t.animationAppear)||void 0===h?void 0:h.easing)&&void 0!==d?d:"linear"}:{channel:{opacity:{from:0,to:1}},duration:null!==(u=null===(c=t.animationAppear)||void 0===c?void 0:c.duration)&&void 0!==u?u:1e3,easing:null!==(g=null===(p=t.animationAppear)||void 0===p?void 0:p.easing)&&void 0!==g?g:"linear"})}getAnimationUpdate(t){var e,i,n,s;return!1!==t.animationUpdate.enable&&{duration:null!==(i=null===(e=t.animationUpdate)||void 0===e?void 0:e.duration)&&void 0!==i?i:1e3,easing:null!==(s=null===(n=t.animationUpdate)||void 0===n?void 0:n.easing)&&void 0!==s?s:"linear"}}}class u extends e.BaseChart{constructor(){super(...arguments),this.type="rankingList",this.transformerConstructor=c}init(){this.isValid()&&super.init()}isValid(){var t,e,i,n;const{xField:s,yField:a,data:r}=this._spec;return s&&a?!!r||(null===(n=(i=this._option).onError)||void 0===n||n.call(i,"Data is required"),!1):(null===(e=(t=this._option).onError)||void 0===e||e.call(t,"Missing Required Config: `xField`, `yField` "),!1)}}u.type="rankingList",u.view="singleDefault",u.transformerConstructor=c;const p=(t,e)=>{var i,n;if(!(null==e?void 0:e.fields))return t;if(0===t.length)return t;const s=e.fields,a=t[0],r={},o=[];for(const e in s)if(Object.prototype.hasOwnProperty.call(s,e)){const l=s[e];if(!l.type){let n=a;e in a||(n=null!==(i=t.find((t=>e in t)))&&void 0!==i?i:a),l.type="number"==typeof n[e]?"linear":"ordinal"}let h;if("number"==typeof l.sortIndex&&(h={key:e,type:l.type,index:l.sortIndex,sortIndex:{},sortIndexCount:0,sortReverse:!0===l.sortReverse},o.push(h)),(null===(n=l.domain)||void 0===n?void 0:n.length)>0)if("ordinal"===l.type){l._domainCache={},r[e]=l;const t={};l.domain.forEach(((e,i)=>{t[e]=i,l._domainCache[e]=i})),h&&(h.sortIndex=t,h.sortIndexCount=l.domain.length)}else l.domain.length>=2&&(r[e]=l)}return Object.keys(r).length>0&&(t=t.filter((t=>{for(const e in r){const i=r[e];if("ordinal"===i.type){if(!(t[e]in i._domainCache))return!1}else if(i.domain[0]>t[e]||i.domain[1]<t[e])return!1}return!0}))),o.sort(((t,e)=>t.index-e.index)),t.sort(((t,e)=>function(t,e,i){for(let n=0;n<i.length;n++){const s=i[n];let a=0;if("ordinal"===s.type?(void 0===s.sortIndex[e[s.key]]&&(s.sortIndex[e[s.key]]=s.sortIndexCount++),void 0===s.sortIndex[t[s.key]]&&(s.sortIndex[t[s.key]]=s.sortIndexCount++),a=s.sortIndex[t[s.key]]-s.sortIndex[e[s.key]]):"linear"===s.type&&(a=t[s.key]-e[s.key]),s.sortReverse&&(a=-a),0!==a)return a}return 0}(t,e,o))),t};let g=0;const f="_data-view-diff-rank";class m{constructor(t,e){var n=this;let s;this.dataSet=t,this.options=e,this.isDataView=!0,this.target=new i.EventEmitter,this.parseOption=null,this.transformsArr=[],this.isRunning=!1,this.rawData={},this.history=!1,this.parserData={},this.latestData={},this._fields=null,this.reRunAllTransform=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{pushHistory:!0,emitMessage:!0};return n.isRunning=!0,n.resetTransformData(),n.transformsArr.forEach((e=>{n.executeTransform(e,{pushHistory:t.pushHistory,emitMessage:!1}),n.isLastTransform(e)&&n.diffLastData()})),n.isRunning=!1,!1!==t.emitMessage&&n.target.emit("change",[]),n},this.markRunning=()=>{this.isRunning=!0,this.target.emit("markRunning",[])},s=(null==e?void 0:e.name)?e.name:function(){return g>1e8&&(g=0),(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"dataset")+"_"+g++}("dataview"),this.name=s,(null==e?void 0:e.history)&&(this.history=e.history,this.historyData=[]),this.dataSet.setDataView(s,this),this.setFields(null==e?void 0:e.fields)}parse(t,e){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];var n;this.isRunning=!0,i&&this.target.emit("beforeParse",[]),e&&(this.parseOption=e);const s=this.cloneParseData(t,e);if(null==e?void 0:e.type){const t=(null!==(n=this.dataSet.getParser(e.type))&&void 0!==n?n:this.dataSet.getParser("bytejson"))(s,e.options,this);this.rawData=s,this.parserData=t,this.history&&this.historyData.push(s,t),this.latestData=t}else this.parserData=s,this.rawData=s,this.history&&this.historyData.push(s),this.latestData=s;return this.isRunning=!1,i&&this.target.emit("afterParse",[]),this}transform(t){let e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(this.isRunning=!0,t&&t.type){let i=!0;if("fields"===t.type){this._fields=t.options.fields;const e=this.transformsArr.findIndex((e=>e.type===t.type));e>=0&&(i=!1,this.transformsArr[e].options.fields=this._fields)}if(i&&this.transformsArr.push(t),e){const e=this.isLastTransform(t);this.executeTransform(t),e&&this.diffLastData()}}return this.sortTransform(),this.isRunning=!1,this}isLastTransform(t){return this.transformsArr[this.transformsArr.length-1]===t}sortTransform(){this.transformsArr.length>=2&&this.transformsArr.sort(((t,e)=>{var i,n;return(null!==(i=t.level)&&void 0!==i?i:0)-(null!==(n=e.level)&&void 0!==n?n:0)}))}executeTransform(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{pushHistory:!0,emitMessage:!0};const{pushHistory:i,emitMessage:n}=e,s=this.dataSet.getTransform(t.type)(this.latestData,t.options);this.history&&!1!==i&&this.historyData.push(s),this.latestData=s,!1!==n&&this.target.emit("change",[])}resetTransformData(){this.latestData=this.parserData,this.history&&(this.historyData.length=0,this.historyData.push(this.rawData,this.parserData))}enableDiff(t){this._diffData=!0,this._diffKeys=t,this._diffMap=new Map,this._diffRank=0}disableDiff(){this._diffData=!1,this._diffMap=null,this._diffRank=null}resetDiff(){this._diffMap=new Map,this._diffRank=0}diffLastData(){var t;if(!this._diffData)return;if(!this.latestData.forEach)return;if(!(null===(t=this._diffKeys)||void 0===t?void 0:t.length))return;const e=this._diffRank+1;if(0===this._diffRank)this.latestData.forEach((t=>{t[f]=e,this._diffMap.set(this._diffKeys.reduce(((e,i)=>e+t[i]),""),t)})),this.latestDataAUD={add:Array.from(this.latestData),del:[],update:[]};else{let t;this.latestDataAUD={add:[],del:[],update:[]},this.latestData.forEach((i=>{i[f]=e,t=this._diffKeys.reduce(((t,e)=>t+i[e]),""),this._diffMap.get(t)?this.latestDataAUD.update.push(i):this.latestDataAUD.add.push(i),this._diffMap.set(t,i)})),this._diffMap.forEach(((t,i)=>{t[f]<e&&(this.latestDataAUD.del.push(t),this._diffMap.delete(i))}))}this._diffRank=e}cloneParseData(t,e){let n=!1;return t instanceof m||!0!==(null==e?void 0:e.clone)||(n=!0),n?i.cloneDeep(t):t}parseNewData(t,e){this.parse(t,e||this.parseOption),this.reRunAllTransform()}updateRawData(t,e){const i=this.cloneParseData(t,e);this.rawData=i,this.parserData=i,this.latestData=i,this.reRunAllTransform()}getFields(){var t;return this._fields?this._fields:"dataview"===(null===(t=this.parseOption)||void 0===t?void 0:t.type)&&1===this.rawData.length&&this.rawData[0].getFields?this.rawData[0].getFields():null}setFields(t){let e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this._fields=t&&e?i.merge({},this._fields,t):t;const n=this.transformsArr.find((t=>"fields"===t.type));!i.isNil(this._fields)&&i.isNil(n)?(this.dataSet.registerTransform("fields",p),this.transform({type:"fields",options:{fields:this._fields}},!1)):n&&(n.options.fields=this._fields)}destroy(){this.dataSet.removeDataView(this.name),this._diffMap=null,this._diffRank=null,this.latestData=null,this.rawData=null,this.parserData=null,this.transformsArr=null,this.target=null}}
2
2
  /*! *****************************************************************************
3
3
  Copyright (c) Microsoft Corporation.
4
4
 
@@ -110,9 +110,9 @@ class RankingListChartSpecTransformer extends vchart_1.CommonChartSpecTransforme
110
110
  visible: !1,
111
111
  interval: (null !== (_b = null === (_a = spec.animationNormal) || void 0 === _a ? void 0 : _a.interval) && void 0 !== _b ? _b : 1e3) + (null !== (_c = spec.animationUpdate.duration) && void 0 !== _c ? _c : 1e3) / 2,
112
112
  loop: !0
113
- }), spec.animationExit = this.getAnimationExit(this.originalSpec), spec.animationAppear = this.getAnimationAppear(this.originalSpec, "rect"),
114
- spec.animationEnter = this.getAnimationEnter(this.originalSpec), spec.animationUpdate = this.getAnimationUpdate(this.originalSpec),
115
- spec.animationNormal = this.originalSpec.animationNormal);
113
+ }), spec.animationExit = this.getAnimationExit(this.originalSpec), spec.animationEnter = this.getAnimationEnter(this.originalSpec),
114
+ spec.animationUpdate = this.getAnimationUpdate(this.originalSpec)), spec.animationNormal = this.originalSpec.animationNormal,
115
+ spec.animationAppear = this.getAnimationAppear(this.originalSpec, "rect");
116
116
  }
117
117
  transformAxesSpec(spec) {
118
118
  const {min: min, max: max} = (0, utils_1.computeDataRange)(this.originalData, spec.xField);
@@ -1 +1 @@
1
- {"version":3,"sources":["charts/ranking-list/ranking-list-transformer.ts"],"names":[],"mappings":"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","file":"ranking-list-transformer.js","sourcesContent":["import { Datum } from '@visactor/vchart/src/typings';\nimport type { IRankingListSpec } from './interface';\nimport { CommonChartSpecTransformer } from '@visactor/vchart';\nimport { cloneDeep, TextMeasure } from '@visactor/vutils';\nimport { defaultSpec } from './constant';\nimport { applyVisible, computeDataRange, mergeObjects } from './utils';\nimport { IElement } from '@visactor/vgammar-core';\n\nconst DATA_KEY = 'dataKey';\nconst ORDER_KEY = 'VCHART_ORDER';\nconst SUPPLY_DATA_KEY = 'SUPPLY_DATA_KEY';\nconst NAME_LABEL_PADDING_RIGHT = 10;\nconst NAME_ORDER_PADDING_RIGHT = 5;\nconst NAME_SYMBOL_PADDING_RIGHT = 8;\nconst CHART_PADDING_LEFT = 5;\nconst CHART_PADDING_RIGHT = 5;\nconst VALUE_LABEL_PADDING_LEFT = 5;\n\nconst LABEL_PADDING_BOTTOM = 5;\n\nexport class RankingListChartSpecTransformer extends CommonChartSpecTransformer {\n protected nameLabelTextMeasure: TextMeasure<any>;\n protected valueLabelTextMeasure: TextMeasure<any>;\n protected orderLabelTextMeasure: TextMeasure<any>;\n protected originalData: Datum[];\n protected originalSpec: IRankingListSpec;\n protected dataSpecs: any[];\n protected formatMap: { [key: string]: (text: string, ctx: any) => string } = {};\n\n transformSpec(spec: any): void {\n super.transformSpec(spec);\n this.normalizeSpec(spec);\n this.upgradeTextMeasure(spec);\n this.upgradeFormatMap(spec);\n this.processData(spec);\n\n // rankingList spec -> vchart spec\n this.transformBaseSpec(spec);\n this.transformAnimationSpec(spec);\n this.transformAxesSpec(spec);\n\n spec.extensionMark = [\n // 柱图背景\n this.generateBarBackground(spec),\n // 辅助图标\n ...this.generateDecorateHaloIcons(spec),\n // 左侧图标\n this.generateRankingIcon(spec),\n // 左侧label\n this.generateNameLabel(spec),\n // 左侧序号label\n this.generateOrderLabel(spec),\n // 右侧label\n this.generateValueLabel(spec)\n ];\n\n this.transformPaddingSpec(spec);\n\n // console.log('spec', spec);\n\n super.transformSpec(spec);\n }\n\n normalizeSpec(spec: any) {\n // 处理配置\n mergeObjects(spec, defaultSpec);\n applyVisible(spec, [\n 'barBackground',\n 'rankingIcon',\n 'decorateHaloIcons',\n 'orderLabel',\n 'nameLabel',\n 'valueLabel'\n // 'bar'\n ]);\n }\n\n upgradeTextMeasure(spec: any) {\n // 初始化文字测量\n this.nameLabelTextMeasure?.release();\n this.valueLabelTextMeasure?.release();\n this.orderLabelTextMeasure?.release();\n this.nameLabelTextMeasure = new TextMeasure({\n defaultFontParams: spec.nameLabel?.style ?? {}\n });\n this.valueLabelTextMeasure = new TextMeasure({\n defaultFontParams: spec.valueLabel?.style ?? {}\n });\n this.orderLabelTextMeasure = new TextMeasure({\n defaultFontParams: spec.orderLabel?.style ?? {}\n });\n }\n\n upgradeFormatMap(spec: any) {\n this.formatMap[spec.yField] = spec.nameLabel.formatMethod;\n this.formatMap[spec.xField] = spec.valueLabel.formatMethod;\n this.formatMap[ORDER_KEY] = spec.orderLabel.formatMethod;\n }\n\n processData(spec: any) {\n // ps: 如果updateSpec后, 同时执行2次processData会有问题, 在这里用比较hack的方式绕过第2次\n if (!spec.data[0]?.values) {\n this.originalData = spec.data;\n this.originalSpec = cloneDeep(spec);\n this.dataSpecs = this.processRankingData(spec as unknown as IRankingListSpec);\n spec.data = this.dataSpecs[0].data;\n }\n }\n\n transformBaseSpec(spec: any) {\n spec.type = 'common';\n spec.dataKey = DATA_KEY;\n spec.series = [\n {\n type: 'bar',\n direction: 'horizontal',\n xField: spec.xField,\n yField: spec.yField,\n barWidth: spec.bar?.height ?? 10,\n bar: {\n ...spec.bar,\n style: {\n ...spec.bar?.style,\n x1: 0,\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.bar?.style ?? true;\n }\n }\n }\n }\n ];\n }\n\n transformAnimationSpec(spec: any) {\n if (spec.animationUpdate.enable) {\n spec.player = {\n ...spec.player,\n specs: this.dataSpecs,\n auto: true,\n visible: false,\n interval: (spec.animationNormal?.interval ?? 1000) + (spec.animationUpdate.duration ?? 1000) / 2,\n loop: true\n };\n\n spec.animationExit = this.getAnimationExit(this.originalSpec);\n spec.animationAppear = this.getAnimationAppear(this.originalSpec, 'rect');\n spec.animationEnter = this.getAnimationEnter(this.originalSpec);\n spec.animationUpdate = this.getAnimationUpdate(this.originalSpec);\n spec.animationNormal = this.originalSpec.animationNormal;\n }\n }\n\n transformAxesSpec(spec: any) {\n const { min, max } = computeDataRange(this.originalData, spec.xField);\n spec.axes = [\n {\n orient: 'left',\n type: 'band',\n visible: false,\n inverse: true,\n // paddingInner: 0.5,\n paddingOuter: 0.5\n },\n {\n orient: 'bottom',\n label: { visible: true },\n type: 'linear',\n visible: false,\n min,\n max\n }\n ];\n }\n\n generateBarBackground(spec: any) {\n return {\n type: spec.barBackground.type,\n dataId: 'data',\n visible: true,\n dataKey: DATA_KEY,\n zIndex: -99,\n state: spec.barBackground?.state,\n style: {\n x: (datum: Datum, ctx: any) =>\n spec.barBackground.type === 'symbol' ? ctx.getRegion().getLayoutRect().width / 2 : 0,\n y: (datum: Datum, ctx: any) => {\n return (\n ctx.valueToY([datum[spec.yField]]) +\n ctx.yBandwidth() / 2 -\n (spec.barBackground.type === 'symbol' ? 0 : spec.bar.height / 2)\n );\n },\n size: (datum: Datum, ctx: any) => [ctx.getRegion().getLayoutRect().width, spec.bar.height],\n width: (datum: Datum, ctx: any) => ctx.getRegion().getLayoutRect().width,\n height: spec.bar.height,\n ...spec.barBackground.style,\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.barBackground.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'barBack'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n }\n\n generateDecorateHaloIcons(spec: any) {\n return spec.decorateHaloIcons?.map((decorateHaloIcon: any) => {\n return {\n type: 'symbol',\n dataId: 'data',\n visible: true,\n dataKey: DATA_KEY,\n state: decorateHaloIcon?.state,\n style: {\n x: (datum: Datum, ctx: any) => {\n if (datum[spec.xField] === undefined || datum[spec.xField] === null) {\n return undefined;\n }\n return ctx.valueToX([datum[spec.xField]]);\n },\n y: (datum: Datum, ctx: any) => {\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2;\n },\n ...decorateHaloIcon.style,\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return decorateHaloIcon.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'symbol'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n });\n }\n\n generateRankingIcon(spec: any) {\n return {\n type: 'symbol',\n dataId: 'data',\n visible: true,\n dataKey: DATA_KEY,\n state: spec.rankingIcon.state,\n style: {\n x: (datum: Datum) => {\n if (spec.labelLayout === 'bothEnd') {\n return -(\n NAME_LABEL_PADDING_RIGHT +\n this.nameLabelTextMeasure.fullMeasure(this.formatDatum(spec.yField, datum)).width +\n (spec.orderLabel.style.visible\n ? NAME_ORDER_PADDING_RIGHT +\n this.orderLabelTextMeasure.fullMeasure(this.formatDatum(ORDER_KEY, datum)).width\n : 0) +\n NAME_SYMBOL_PADDING_RIGHT\n );\n }\n return CHART_PADDING_LEFT;\n },\n y: (datum: Datum, ctx: any) => {\n if (spec.labelLayout === 'bothEnd') {\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2;\n }\n return (\n ctx.valueToY([datum[spec.yField]]) +\n ctx.yBandwidth() / 2 -\n spec.bar.height / 2 -\n LABEL_PADDING_BOTTOM -\n Math.max(\n this.nameLabelTextMeasure.fullMeasure(this.formatDatum(spec.yField, datum)).height,\n this.orderLabelTextMeasure.fullMeasure(this.formatDatum(ORDER_KEY, datum)).height\n ) /\n 2\n );\n },\n ...spec.rankingIcon.style,\n lineWidth: 0,\n stroke: null,\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.rankingIcon.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'text'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n }\n\n generateNameLabel(spec: any) {\n return {\n type: 'text',\n dataId: 'data',\n dataKey: DATA_KEY,\n state: spec.nameLabel?.state,\n style: {\n text: (datum: Datum) => this.formatDatum(spec.yField, datum),\n x: () => {\n if (spec.labelLayout === 'bothEnd') {\n return -NAME_LABEL_PADDING_RIGHT;\n }\n return (\n (spec.rankingIcon.style.visible ? NAME_SYMBOL_PADDING_RIGHT + (spec.rankingIcon.style.size ?? 10) : 0) +\n (spec.orderLabel.style.visible\n ? NAME_ORDER_PADDING_RIGHT + this.getMaxDataLabelLens(spec, ORDER_KEY, this.orderLabelTextMeasure)\n : 0)\n );\n },\n y: (datum: Datum, ctx: any) => {\n if (spec.labelLayout === 'bothEnd') {\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2;\n }\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2 - spec.bar.height / 2 - LABEL_PADDING_BOTTOM;\n },\n ...spec.nameLabel.style,\n textAlign: spec.labelLayout === 'bothEnd' ? 'right' : 'left',\n textBaseline: spec.labelLayout === 'bothEnd' ? 'middle' : 'bottom',\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.nameLabel.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'text'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n }\n\n generateOrderLabel(spec: any) {\n return {\n type: 'text',\n dataId: 'data',\n dataKey: DATA_KEY,\n state: spec.orderLabel?.state,\n style: {\n text: (datum: Datum) => this.formatDatum(ORDER_KEY, datum),\n x: (datum: Datum) => {\n if (spec.labelLayout === 'bothEnd') {\n return -(\n NAME_LABEL_PADDING_RIGHT +\n this.nameLabelTextMeasure.fullMeasure(this.formatDatum(spec.yField, datum)).width +\n NAME_ORDER_PADDING_RIGHT\n );\n } else {\n return spec.rankingIcon.style.visible ? NAME_SYMBOL_PADDING_RIGHT + (spec.rankingIcon.style.size ?? 10) : 0;\n }\n },\n y: (datum: Datum, ctx: any) => {\n if (spec.labelLayout === 'bothEnd') {\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2;\n }\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2 - spec.bar.height / 2 - LABEL_PADDING_BOTTOM;\n },\n ...spec.orderLabel.style,\n textAlign: spec.labelLayout === 'bothEnd' ? 'right' : 'left',\n textBaseline: spec.labelLayout === 'bothEnd' ? 'middle' : 'bottom',\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.orderLabel.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'text'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n }\n\n generateValueLabel(spec: any) {\n return {\n type: 'text',\n dataId: 'data',\n visible: true,\n dataKey: DATA_KEY,\n state: spec.valueLabel?.state,\n style: {\n text: (datum: Datum) => this.formatDatum(spec.xField, datum),\n x: (datum: Datum, ctx: any) => {\n if (spec.labelLayout === 'bothEnd') {\n return (\n ctx.getRegion().getLayoutRect().width +\n this.getMaxDataLabelLens(spec, spec.xField, this.nameLabelTextMeasure) +\n VALUE_LABEL_PADDING_LEFT\n );\n } else {\n return ctx.getRegion().getLayoutRect().width;\n }\n },\n y: (datum: Datum, ctx: any) => {\n if (spec.labelLayout === 'bothEnd') {\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2;\n }\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2 - spec.bar.height / 2 - LABEL_PADDING_BOTTOM;\n },\n ...spec.valueLabel.style,\n textAlign: spec.labelLayout === 'bothEnd' ? 'left' : 'right',\n textBaseline: spec.labelLayout === 'bothEnd' ? 'middle' : 'bottom',\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.valueLabel.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'text'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n }\n\n transformPaddingSpec(spec: any) {\n const maxHaloIconSize =\n spec.decorateHaloIcons.length > 0\n ? Math.max(...spec.decorateHaloIcons.map((icon: any) => icon.style?.size ?? 18))\n : 0;\n spec.padding = {\n left:\n spec.labelLayout === 'bothEnd'\n ? NAME_LABEL_PADDING_RIGHT +\n this.getMaxDataLabelLens(spec, spec.yField, this.nameLabelTextMeasure) +\n (spec.orderLabel.style.visible\n ? NAME_ORDER_PADDING_RIGHT + this.getMaxDataLabelLens(spec, ORDER_KEY, this.orderLabelTextMeasure)\n : 0) +\n (spec.rankingIcon.style.visible ? NAME_SYMBOL_PADDING_RIGHT + (spec.rankingIcon.style.size ?? 10) : 0) +\n CHART_PADDING_LEFT\n : CHART_PADDING_LEFT + maxHaloIconSize / 2,\n right:\n spec.labelLayout === 'bothEnd'\n ? VALUE_LABEL_PADDING_LEFT +\n this.getMaxDataLabelLens(spec, spec.yField, this.valueLabelTextMeasure) +\n CHART_PADDING_RIGHT\n : CHART_PADDING_RIGHT + 10,\n top: 0,\n bottom: 0,\n ...spec.padding\n };\n }\n\n paginateDataArr = (spec: IRankingListSpec) => {\n const { scrollSize = 1, pageSize = 5 } = spec;\n const arr = this.originalData;\n const result: { [key: string]: Datum[] } = {};\n let pageOrder = 0;\n for (let i = 0; i < arr.length; i += scrollSize) {\n pageOrder++;\n result[`page${pageOrder}`] = arr.slice(i, i + pageSize);\n if (i + pageSize - 1 >= arr.length - 1) {\n arr.push(\n ...Array.from({ length: i + pageSize - arr.length }, _ => {\n return {\n [spec.yField]: Math.random() * 100,\n [spec.xField]: null,\n [SUPPLY_DATA_KEY]: true\n };\n })\n );\n break;\n }\n }\n return {\n orderCount: pageOrder,\n result: result\n };\n };\n\n processRankingData = (spec: IRankingListSpec) => {\n const result: any[] = [];\n spec.data.forEach((datum, index) => (datum[ORDER_KEY] = index + 1 < 10 ? `0${index + 1}` : index + 1));\n const pagerData = this.paginateDataArr(spec).result;\n const orderCount = this.paginateDataArr(spec).orderCount;\n const supplyCount = spec.pageSize - pagerData[`page${orderCount}`].length;\n pagerData[`page${orderCount}`].push(\n ...Array.from({ length: supplyCount }, _ => {\n return {\n [spec.yField]: Math.random() * 100,\n [spec.xField]: null,\n [SUPPLY_DATA_KEY]: true\n };\n })\n );\n\n Object.keys(pagerData).forEach(order => {\n result.push({\n data: [\n {\n id: 'datas',\n values: pagerData[order].map(d => {\n return { ...d, [DATA_KEY]: d[spec.yField] };\n })\n },\n {\n id: 'order',\n values: [\n {\n order\n }\n ]\n }\n ]\n });\n });\n\n // // 只有1页时, player循环播放时, prePage和curPage data一致, 导致没有动画效果\n // // 在此手动复制1页, 且prePage和curPage dataKey不一致, 保证动画效果\n // if (result.length === 1) {\n // result.push({\n // data: [\n // {\n // id: 'datas',\n // values: pagerData['page1'].map(d => {\n // return { ...d, [DATA_KEY]: 'page2_' + d['y'] };\n // })\n // },\n // {\n // id: 'order',\n // values: [\n // {\n // order: 'page2'\n // }\n // ]\n // }\n // ]\n // });\n // }\n\n return result;\n };\n\n getMaxDataLabelLens(spec: IRankingListSpec, field: string, textMeasure: TextMeasure<any>) {\n const textWidths = this.originalData.map(datum =>\n datum[SUPPLY_DATA_KEY] ? 0 : textMeasure.fullMeasure(this.formatDatum(field, datum)).width\n );\n return Math.max(...textWidths);\n }\n\n formatDatum(field: string, datum: Datum) {\n if (this.formatMap?.[field]) {\n return this.formatMap[field](datum[field], datum);\n } else {\n return datum[field];\n }\n }\n\n getLabelWidth(padding: number, width: number) {\n return width + padding;\n }\n\n getAnimationExit(spec: IRankingListSpec) {\n if (spec.animationUpdate?.enable === false) {\n return false;\n }\n return {\n type: 'moveOut',\n options: {\n direction: 'y',\n orient: 'negative',\n point: (datum: Datum, element: IElement) => {\n const channelAttr = element.getGraphicAttribute('y');\n const barSpace = spec.height / (spec.pageSize + 1);\n return { y: channelAttr - barSpace * Math.min(spec.scrollSize, spec.pageSize) };\n }\n },\n duration: spec.animationUpdate?.duration ?? 1000,\n easing: spec.animationUpdate?.easing ?? 'linear'\n };\n }\n\n getAnimationEnter(spec: IRankingListSpec) {\n if (spec.animationUpdate?.enable === false) {\n return false;\n }\n return {\n type: 'moveIn',\n options: {\n direction: 'y',\n orient: 'negative',\n excludeChannels: ['y'],\n point: (datum: Datum, element: IElement) => {\n const channelAttr = element.getGraphicAttribute('y');\n return { y: channelAttr + (spec.height / (spec.pageSize + 1)) * Math.min(spec.scrollSize, spec.pageSize) };\n }\n },\n duration: spec.animationUpdate?.duration ?? 1000,\n easing: spec.animationUpdate?.easing ?? 'linear'\n };\n }\n\n getAnimationAppear(spec: IRankingListSpec, markType: 'rect' | 'text' | 'symbol' | 'barBack') {\n if (spec.animationAppear?.enable === false) {\n return false;\n }\n if (markType === 'rect') {\n return {\n type: 'growWidthIn',\n oneByOne: false,\n duration: spec.animationAppear?.duration ?? 1000,\n easing: spec.animationAppear?.easing ?? 'linear',\n options: {}\n };\n } else if (markType === 'symbol') {\n return {\n channel: {\n x: {\n from: 0,\n to: (datum: Datum, element: IElement) => {\n return element.getGraphicItem().attribute.x;\n }\n }\n },\n duration: spec.animationAppear?.duration ?? 1000,\n easing: spec.animationAppear?.easing ?? 'linear'\n };\n } else {\n return {\n channel: {\n opacity: {\n from: 0,\n to: 1\n }\n },\n duration: spec.animationAppear?.duration ?? 1000,\n easing: spec.animationAppear?.easing ?? 'linear'\n };\n }\n }\n\n getAnimationUpdate(spec: IRankingListSpec) {\n if (spec.animationUpdate.enable === false) {\n return false;\n }\n return {\n duration: spec.animationUpdate?.duration ?? 1000,\n easing: spec.animationUpdate?.easing ?? 'linear'\n };\n }\n}\n"]}
1
+ {"version":3,"sources":["charts/ranking-list/ranking-list-transformer.ts"],"names":[],"mappings":"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","file":"ranking-list-transformer.js","sourcesContent":["import { Datum } from '@visactor/vchart/src/typings';\nimport type { IRankingListSpec } from './interface';\nimport { CommonChartSpecTransformer } from '@visactor/vchart';\nimport { cloneDeep, TextMeasure } from '@visactor/vutils';\nimport { defaultSpec } from './constant';\nimport { applyVisible, computeDataRange, mergeObjects } from './utils';\nimport { IElement } from '@visactor/vgammar-core';\n\nconst DATA_KEY = 'dataKey';\nconst ORDER_KEY = 'VCHART_ORDER';\nconst SUPPLY_DATA_KEY = 'SUPPLY_DATA_KEY';\nconst NAME_LABEL_PADDING_RIGHT = 10;\nconst NAME_ORDER_PADDING_RIGHT = 5;\nconst NAME_SYMBOL_PADDING_RIGHT = 8;\nconst CHART_PADDING_LEFT = 5;\nconst CHART_PADDING_RIGHT = 5;\nconst VALUE_LABEL_PADDING_LEFT = 5;\n\nconst LABEL_PADDING_BOTTOM = 5;\n\nexport class RankingListChartSpecTransformer extends CommonChartSpecTransformer {\n protected nameLabelTextMeasure: TextMeasure<any>;\n protected valueLabelTextMeasure: TextMeasure<any>;\n protected orderLabelTextMeasure: TextMeasure<any>;\n protected originalData: Datum[];\n protected originalSpec: IRankingListSpec;\n protected dataSpecs: any[];\n protected formatMap: { [key: string]: (text: string, ctx: any) => string } = {};\n\n transformSpec(spec: any): void {\n super.transformSpec(spec);\n this.normalizeSpec(spec);\n this.upgradeTextMeasure(spec);\n this.upgradeFormatMap(spec);\n this.processData(spec);\n\n // rankingList spec -> vchart spec\n this.transformBaseSpec(spec);\n this.transformAnimationSpec(spec);\n this.transformAxesSpec(spec);\n\n spec.extensionMark = [\n // 柱图背景\n this.generateBarBackground(spec),\n // 辅助图标\n ...this.generateDecorateHaloIcons(spec),\n // 左侧图标\n this.generateRankingIcon(spec),\n // 左侧label\n this.generateNameLabel(spec),\n // 左侧序号label\n this.generateOrderLabel(spec),\n // 右侧label\n this.generateValueLabel(spec)\n ];\n\n this.transformPaddingSpec(spec);\n\n // console.log('spec', spec);\n\n super.transformSpec(spec);\n }\n\n normalizeSpec(spec: any) {\n // 处理配置\n mergeObjects(spec, defaultSpec);\n applyVisible(spec, [\n 'barBackground',\n 'rankingIcon',\n 'decorateHaloIcons',\n 'orderLabel',\n 'nameLabel',\n 'valueLabel'\n // 'bar'\n ]);\n }\n\n upgradeTextMeasure(spec: any) {\n // 初始化文字测量\n this.nameLabelTextMeasure?.release();\n this.valueLabelTextMeasure?.release();\n this.orderLabelTextMeasure?.release();\n this.nameLabelTextMeasure = new TextMeasure({\n defaultFontParams: spec.nameLabel?.style ?? {}\n });\n this.valueLabelTextMeasure = new TextMeasure({\n defaultFontParams: spec.valueLabel?.style ?? {}\n });\n this.orderLabelTextMeasure = new TextMeasure({\n defaultFontParams: spec.orderLabel?.style ?? {}\n });\n }\n\n upgradeFormatMap(spec: any) {\n this.formatMap[spec.yField] = spec.nameLabel.formatMethod;\n this.formatMap[spec.xField] = spec.valueLabel.formatMethod;\n this.formatMap[ORDER_KEY] = spec.orderLabel.formatMethod;\n }\n\n processData(spec: any) {\n // ps: 如果updateSpec后, 同时执行2次processData会有问题, 在这里用比较hack的方式绕过第2次\n if (!spec.data[0]?.values) {\n this.originalData = spec.data;\n this.originalSpec = cloneDeep(spec);\n this.dataSpecs = this.processRankingData(spec as unknown as IRankingListSpec);\n spec.data = this.dataSpecs[0].data;\n }\n }\n\n transformBaseSpec(spec: any) {\n spec.type = 'common';\n spec.dataKey = DATA_KEY;\n spec.series = [\n {\n type: 'bar',\n direction: 'horizontal',\n xField: spec.xField,\n yField: spec.yField,\n barWidth: spec.bar?.height ?? 10,\n bar: {\n ...spec.bar,\n style: {\n ...spec.bar?.style,\n x1: 0,\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.bar?.style ?? true;\n }\n }\n }\n }\n ];\n }\n\n transformAnimationSpec(spec: any) {\n if (spec.animationUpdate.enable) {\n spec.player = {\n ...spec.player,\n specs: this.dataSpecs,\n auto: true,\n visible: false,\n interval: (spec.animationNormal?.interval ?? 1000) + (spec.animationUpdate.duration ?? 1000) / 2,\n loop: true\n };\n\n spec.animationExit = this.getAnimationExit(this.originalSpec);\n spec.animationEnter = this.getAnimationEnter(this.originalSpec);\n spec.animationUpdate = this.getAnimationUpdate(this.originalSpec);\n }\n spec.animationNormal = this.originalSpec.animationNormal;\n spec.animationAppear = this.getAnimationAppear(this.originalSpec, 'rect');\n }\n\n transformAxesSpec(spec: any) {\n const { min, max } = computeDataRange(this.originalData, spec.xField);\n spec.axes = [\n {\n orient: 'left',\n type: 'band',\n visible: false,\n inverse: true,\n // paddingInner: 0.5,\n paddingOuter: 0.5\n },\n {\n orient: 'bottom',\n label: { visible: true },\n type: 'linear',\n visible: false,\n min,\n max\n }\n ];\n }\n\n generateBarBackground(spec: any) {\n return {\n type: spec.barBackground.type,\n dataId: 'data',\n visible: true,\n dataKey: DATA_KEY,\n zIndex: -99,\n state: spec.barBackground?.state,\n style: {\n x: (datum: Datum, ctx: any) =>\n spec.barBackground.type === 'symbol' ? ctx.getRegion().getLayoutRect().width / 2 : 0,\n y: (datum: Datum, ctx: any) => {\n return (\n ctx.valueToY([datum[spec.yField]]) +\n ctx.yBandwidth() / 2 -\n (spec.barBackground.type === 'symbol' ? 0 : spec.bar.height / 2)\n );\n },\n size: (datum: Datum, ctx: any) => [ctx.getRegion().getLayoutRect().width, spec.bar.height],\n width: (datum: Datum, ctx: any) => ctx.getRegion().getLayoutRect().width,\n height: spec.bar.height,\n ...spec.barBackground.style,\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.barBackground.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'barBack'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n }\n\n generateDecorateHaloIcons(spec: any) {\n return spec.decorateHaloIcons?.map((decorateHaloIcon: any) => {\n return {\n type: 'symbol',\n dataId: 'data',\n visible: true,\n dataKey: DATA_KEY,\n state: decorateHaloIcon?.state,\n style: {\n x: (datum: Datum, ctx: any) => {\n if (datum[spec.xField] === undefined || datum[spec.xField] === null) {\n return undefined;\n }\n return ctx.valueToX([datum[spec.xField]]);\n },\n y: (datum: Datum, ctx: any) => {\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2;\n },\n ...decorateHaloIcon.style,\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return decorateHaloIcon.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'symbol'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n });\n }\n\n generateRankingIcon(spec: any) {\n return {\n type: 'symbol',\n dataId: 'data',\n visible: true,\n dataKey: DATA_KEY,\n state: spec.rankingIcon.state,\n style: {\n x: (datum: Datum) => {\n if (spec.labelLayout === 'bothEnd') {\n return -(\n NAME_LABEL_PADDING_RIGHT +\n this.nameLabelTextMeasure.fullMeasure(this.formatDatum(spec.yField, datum)).width +\n (spec.orderLabel.style.visible\n ? NAME_ORDER_PADDING_RIGHT +\n this.orderLabelTextMeasure.fullMeasure(this.formatDatum(ORDER_KEY, datum)).width\n : 0) +\n NAME_SYMBOL_PADDING_RIGHT\n );\n }\n return CHART_PADDING_LEFT;\n },\n y: (datum: Datum, ctx: any) => {\n if (spec.labelLayout === 'bothEnd') {\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2;\n }\n return (\n ctx.valueToY([datum[spec.yField]]) +\n ctx.yBandwidth() / 2 -\n spec.bar.height / 2 -\n LABEL_PADDING_BOTTOM -\n Math.max(\n this.nameLabelTextMeasure.fullMeasure(this.formatDatum(spec.yField, datum)).height,\n this.orderLabelTextMeasure.fullMeasure(this.formatDatum(ORDER_KEY, datum)).height\n ) /\n 2\n );\n },\n ...spec.rankingIcon.style,\n lineWidth: 0,\n stroke: null,\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.rankingIcon.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'text'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n }\n\n generateNameLabel(spec: any) {\n return {\n type: 'text',\n dataId: 'data',\n dataKey: DATA_KEY,\n state: spec.nameLabel?.state,\n style: {\n text: (datum: Datum) => this.formatDatum(spec.yField, datum),\n x: () => {\n if (spec.labelLayout === 'bothEnd') {\n return -NAME_LABEL_PADDING_RIGHT;\n }\n return (\n (spec.rankingIcon.style.visible ? NAME_SYMBOL_PADDING_RIGHT + (spec.rankingIcon.style.size ?? 10) : 0) +\n (spec.orderLabel.style.visible\n ? NAME_ORDER_PADDING_RIGHT + this.getMaxDataLabelLens(spec, ORDER_KEY, this.orderLabelTextMeasure)\n : 0)\n );\n },\n y: (datum: Datum, ctx: any) => {\n if (spec.labelLayout === 'bothEnd') {\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2;\n }\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2 - spec.bar.height / 2 - LABEL_PADDING_BOTTOM;\n },\n ...spec.nameLabel.style,\n textAlign: spec.labelLayout === 'bothEnd' ? 'right' : 'left',\n textBaseline: spec.labelLayout === 'bothEnd' ? 'middle' : 'bottom',\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.nameLabel.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'text'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n }\n\n generateOrderLabel(spec: any) {\n return {\n type: 'text',\n dataId: 'data',\n dataKey: DATA_KEY,\n state: spec.orderLabel?.state,\n style: {\n text: (datum: Datum) => this.formatDatum(ORDER_KEY, datum),\n x: (datum: Datum) => {\n if (spec.labelLayout === 'bothEnd') {\n return -(\n NAME_LABEL_PADDING_RIGHT +\n this.nameLabelTextMeasure.fullMeasure(this.formatDatum(spec.yField, datum)).width +\n NAME_ORDER_PADDING_RIGHT\n );\n } else {\n return spec.rankingIcon.style.visible ? NAME_SYMBOL_PADDING_RIGHT + (spec.rankingIcon.style.size ?? 10) : 0;\n }\n },\n y: (datum: Datum, ctx: any) => {\n if (spec.labelLayout === 'bothEnd') {\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2;\n }\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2 - spec.bar.height / 2 - LABEL_PADDING_BOTTOM;\n },\n ...spec.orderLabel.style,\n textAlign: spec.labelLayout === 'bothEnd' ? 'right' : 'left',\n textBaseline: spec.labelLayout === 'bothEnd' ? 'middle' : 'bottom',\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.orderLabel.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'text'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n }\n\n generateValueLabel(spec: any) {\n return {\n type: 'text',\n dataId: 'data',\n visible: true,\n dataKey: DATA_KEY,\n state: spec.valueLabel?.state,\n style: {\n text: (datum: Datum) => this.formatDatum(spec.xField, datum),\n x: (datum: Datum, ctx: any) => {\n if (spec.labelLayout === 'bothEnd') {\n return (\n ctx.getRegion().getLayoutRect().width +\n this.getMaxDataLabelLens(spec, spec.xField, this.nameLabelTextMeasure) +\n VALUE_LABEL_PADDING_LEFT\n );\n } else {\n return ctx.getRegion().getLayoutRect().width;\n }\n },\n y: (datum: Datum, ctx: any) => {\n if (spec.labelLayout === 'bothEnd') {\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2;\n }\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2 - spec.bar.height / 2 - LABEL_PADDING_BOTTOM;\n },\n ...spec.valueLabel.style,\n textAlign: spec.labelLayout === 'bothEnd' ? 'left' : 'right',\n textBaseline: spec.labelLayout === 'bothEnd' ? 'middle' : 'bottom',\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.valueLabel.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'text'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n }\n\n transformPaddingSpec(spec: any) {\n const maxHaloIconSize =\n spec.decorateHaloIcons.length > 0\n ? Math.max(...spec.decorateHaloIcons.map((icon: any) => icon.style?.size ?? 18))\n : 0;\n spec.padding = {\n left:\n spec.labelLayout === 'bothEnd'\n ? NAME_LABEL_PADDING_RIGHT +\n this.getMaxDataLabelLens(spec, spec.yField, this.nameLabelTextMeasure) +\n (spec.orderLabel.style.visible\n ? NAME_ORDER_PADDING_RIGHT + this.getMaxDataLabelLens(spec, ORDER_KEY, this.orderLabelTextMeasure)\n : 0) +\n (spec.rankingIcon.style.visible ? NAME_SYMBOL_PADDING_RIGHT + (spec.rankingIcon.style.size ?? 10) : 0) +\n CHART_PADDING_LEFT\n : CHART_PADDING_LEFT + maxHaloIconSize / 2,\n right:\n spec.labelLayout === 'bothEnd'\n ? VALUE_LABEL_PADDING_LEFT +\n this.getMaxDataLabelLens(spec, spec.yField, this.valueLabelTextMeasure) +\n CHART_PADDING_RIGHT\n : CHART_PADDING_RIGHT + 10,\n top: 0,\n bottom: 0,\n ...spec.padding\n };\n }\n\n paginateDataArr = (spec: IRankingListSpec) => {\n const { scrollSize = 1, pageSize = 5 } = spec;\n const arr = this.originalData;\n const result: { [key: string]: Datum[] } = {};\n let pageOrder = 0;\n for (let i = 0; i < arr.length; i += scrollSize) {\n pageOrder++;\n result[`page${pageOrder}`] = arr.slice(i, i + pageSize);\n if (i + pageSize - 1 >= arr.length - 1) {\n arr.push(\n ...Array.from({ length: i + pageSize - arr.length }, _ => {\n return {\n [spec.yField]: Math.random() * 100,\n [spec.xField]: null,\n [SUPPLY_DATA_KEY]: true\n };\n })\n );\n break;\n }\n }\n return {\n orderCount: pageOrder,\n result: result\n };\n };\n\n processRankingData = (spec: IRankingListSpec) => {\n const result: any[] = [];\n spec.data.forEach((datum, index) => (datum[ORDER_KEY] = index + 1 < 10 ? `0${index + 1}` : index + 1));\n const pagerData = this.paginateDataArr(spec).result;\n const orderCount = this.paginateDataArr(spec).orderCount;\n const supplyCount = spec.pageSize - pagerData[`page${orderCount}`].length;\n pagerData[`page${orderCount}`].push(\n ...Array.from({ length: supplyCount }, _ => {\n return {\n [spec.yField]: Math.random() * 100,\n [spec.xField]: null,\n [SUPPLY_DATA_KEY]: true\n };\n })\n );\n\n Object.keys(pagerData).forEach(order => {\n result.push({\n data: [\n {\n id: 'datas',\n values: pagerData[order].map(d => {\n return { ...d, [DATA_KEY]: d[spec.yField] };\n })\n },\n {\n id: 'order',\n values: [\n {\n order\n }\n ]\n }\n ]\n });\n });\n\n // // 只有1页时, player循环播放时, prePage和curPage data一致, 导致没有动画效果\n // // 在此手动复制1页, 且prePage和curPage dataKey不一致, 保证动画效果\n // if (result.length === 1) {\n // result.push({\n // data: [\n // {\n // id: 'datas',\n // values: pagerData['page1'].map(d => {\n // return { ...d, [DATA_KEY]: 'page2_' + d['y'] };\n // })\n // },\n // {\n // id: 'order',\n // values: [\n // {\n // order: 'page2'\n // }\n // ]\n // }\n // ]\n // });\n // }\n\n return result;\n };\n\n getMaxDataLabelLens(spec: IRankingListSpec, field: string, textMeasure: TextMeasure<any>) {\n const textWidths = this.originalData.map(datum =>\n datum[SUPPLY_DATA_KEY] ? 0 : textMeasure.fullMeasure(this.formatDatum(field, datum)).width\n );\n return Math.max(...textWidths);\n }\n\n formatDatum(field: string, datum: Datum) {\n if (this.formatMap?.[field]) {\n return this.formatMap[field](datum[field], datum);\n } else {\n return datum[field];\n }\n }\n\n getLabelWidth(padding: number, width: number) {\n return width + padding;\n }\n\n getAnimationExit(spec: IRankingListSpec) {\n if (spec.animationUpdate?.enable === false) {\n return false;\n }\n return {\n type: 'moveOut',\n options: {\n direction: 'y',\n orient: 'negative',\n point: (datum: Datum, element: IElement) => {\n const channelAttr = element.getGraphicAttribute('y');\n const barSpace = spec.height / (spec.pageSize + 1);\n return { y: channelAttr - barSpace * Math.min(spec.scrollSize, spec.pageSize) };\n }\n },\n duration: spec.animationUpdate?.duration ?? 1000,\n easing: spec.animationUpdate?.easing ?? 'linear'\n };\n }\n\n getAnimationEnter(spec: IRankingListSpec) {\n if (spec.animationUpdate?.enable === false) {\n return false;\n }\n return {\n type: 'moveIn',\n options: {\n direction: 'y',\n orient: 'negative',\n excludeChannels: ['y'],\n point: (datum: Datum, element: IElement) => {\n const channelAttr = element.getGraphicAttribute('y');\n return { y: channelAttr + (spec.height / (spec.pageSize + 1)) * Math.min(spec.scrollSize, spec.pageSize) };\n }\n },\n duration: spec.animationUpdate?.duration ?? 1000,\n easing: spec.animationUpdate?.easing ?? 'linear'\n };\n }\n\n getAnimationAppear(spec: IRankingListSpec, markType: 'rect' | 'text' | 'symbol' | 'barBack') {\n if (spec.animationAppear?.enable === false) {\n return false;\n }\n if (markType === 'rect') {\n return {\n type: 'growWidthIn',\n oneByOne: false,\n duration: spec.animationAppear?.duration ?? 1000,\n easing: spec.animationAppear?.easing ?? 'linear',\n options: {}\n };\n } else if (markType === 'symbol') {\n return {\n channel: {\n x: {\n from: 0,\n to: (datum: Datum, element: IElement) => {\n return element.getGraphicItem().attribute.x;\n }\n }\n },\n duration: spec.animationAppear?.duration ?? 1000,\n easing: spec.animationAppear?.easing ?? 'linear'\n };\n } else {\n return {\n channel: {\n opacity: {\n from: 0,\n to: 1\n }\n },\n duration: spec.animationAppear?.duration ?? 1000,\n easing: spec.animationAppear?.easing ?? 'linear'\n };\n }\n }\n\n getAnimationUpdate(spec: IRankingListSpec) {\n if (spec.animationUpdate.enable === false) {\n return false;\n }\n return {\n duration: spec.animationUpdate?.duration ?? 1000,\n easing: spec.animationUpdate?.easing ?? 'linear'\n };\n }\n}\n"]}
@@ -112,9 +112,9 @@ export class RankingListChartSpecTransformer extends CommonChartSpecTransformer
112
112
  visible: !1,
113
113
  interval: (null !== (_b = null === (_a = spec.animationNormal) || void 0 === _a ? void 0 : _a.interval) && void 0 !== _b ? _b : 1e3) + (null !== (_c = spec.animationUpdate.duration) && void 0 !== _c ? _c : 1e3) / 2,
114
114
  loop: !0
115
- }), spec.animationExit = this.getAnimationExit(this.originalSpec), spec.animationAppear = this.getAnimationAppear(this.originalSpec, "rect"),
116
- spec.animationEnter = this.getAnimationEnter(this.originalSpec), spec.animationUpdate = this.getAnimationUpdate(this.originalSpec),
117
- spec.animationNormal = this.originalSpec.animationNormal);
115
+ }), spec.animationExit = this.getAnimationExit(this.originalSpec), spec.animationEnter = this.getAnimationEnter(this.originalSpec),
116
+ spec.animationUpdate = this.getAnimationUpdate(this.originalSpec)), spec.animationNormal = this.originalSpec.animationNormal,
117
+ spec.animationAppear = this.getAnimationAppear(this.originalSpec, "rect");
118
118
  }
119
119
  transformAxesSpec(spec) {
120
120
  const {min: min, max: max} = computeDataRange(this.originalData, spec.xField);
@@ -1 +1 @@
1
- {"version":3,"sources":["charts/ranking-list/ranking-list-transformer.ts"],"names":[],"mappings":"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","file":"ranking-list-transformer.js","sourcesContent":["import { Datum } from '@visactor/vchart/src/typings';\nimport type { IRankingListSpec } from './interface';\nimport { CommonChartSpecTransformer } from '@visactor/vchart';\nimport { cloneDeep, TextMeasure } from '@visactor/vutils';\nimport { defaultSpec } from './constant';\nimport { applyVisible, computeDataRange, mergeObjects } from './utils';\nimport { IElement } from '@visactor/vgammar-core';\n\nconst DATA_KEY = 'dataKey';\nconst ORDER_KEY = 'VCHART_ORDER';\nconst SUPPLY_DATA_KEY = 'SUPPLY_DATA_KEY';\nconst NAME_LABEL_PADDING_RIGHT = 10;\nconst NAME_ORDER_PADDING_RIGHT = 5;\nconst NAME_SYMBOL_PADDING_RIGHT = 8;\nconst CHART_PADDING_LEFT = 5;\nconst CHART_PADDING_RIGHT = 5;\nconst VALUE_LABEL_PADDING_LEFT = 5;\n\nconst LABEL_PADDING_BOTTOM = 5;\n\nexport class RankingListChartSpecTransformer extends CommonChartSpecTransformer {\n protected nameLabelTextMeasure: TextMeasure<any>;\n protected valueLabelTextMeasure: TextMeasure<any>;\n protected orderLabelTextMeasure: TextMeasure<any>;\n protected originalData: Datum[];\n protected originalSpec: IRankingListSpec;\n protected dataSpecs: any[];\n protected formatMap: { [key: string]: (text: string, ctx: any) => string } = {};\n\n transformSpec(spec: any): void {\n super.transformSpec(spec);\n this.normalizeSpec(spec);\n this.upgradeTextMeasure(spec);\n this.upgradeFormatMap(spec);\n this.processData(spec);\n\n // rankingList spec -> vchart spec\n this.transformBaseSpec(spec);\n this.transformAnimationSpec(spec);\n this.transformAxesSpec(spec);\n\n spec.extensionMark = [\n // 柱图背景\n this.generateBarBackground(spec),\n // 辅助图标\n ...this.generateDecorateHaloIcons(spec),\n // 左侧图标\n this.generateRankingIcon(spec),\n // 左侧label\n this.generateNameLabel(spec),\n // 左侧序号label\n this.generateOrderLabel(spec),\n // 右侧label\n this.generateValueLabel(spec)\n ];\n\n this.transformPaddingSpec(spec);\n\n // console.log('spec', spec);\n\n super.transformSpec(spec);\n }\n\n normalizeSpec(spec: any) {\n // 处理配置\n mergeObjects(spec, defaultSpec);\n applyVisible(spec, [\n 'barBackground',\n 'rankingIcon',\n 'decorateHaloIcons',\n 'orderLabel',\n 'nameLabel',\n 'valueLabel'\n // 'bar'\n ]);\n }\n\n upgradeTextMeasure(spec: any) {\n // 初始化文字测量\n this.nameLabelTextMeasure?.release();\n this.valueLabelTextMeasure?.release();\n this.orderLabelTextMeasure?.release();\n this.nameLabelTextMeasure = new TextMeasure({\n defaultFontParams: spec.nameLabel?.style ?? {}\n });\n this.valueLabelTextMeasure = new TextMeasure({\n defaultFontParams: spec.valueLabel?.style ?? {}\n });\n this.orderLabelTextMeasure = new TextMeasure({\n defaultFontParams: spec.orderLabel?.style ?? {}\n });\n }\n\n upgradeFormatMap(spec: any) {\n this.formatMap[spec.yField] = spec.nameLabel.formatMethod;\n this.formatMap[spec.xField] = spec.valueLabel.formatMethod;\n this.formatMap[ORDER_KEY] = spec.orderLabel.formatMethod;\n }\n\n processData(spec: any) {\n // ps: 如果updateSpec后, 同时执行2次processData会有问题, 在这里用比较hack的方式绕过第2次\n if (!spec.data[0]?.values) {\n this.originalData = spec.data;\n this.originalSpec = cloneDeep(spec);\n this.dataSpecs = this.processRankingData(spec as unknown as IRankingListSpec);\n spec.data = this.dataSpecs[0].data;\n }\n }\n\n transformBaseSpec(spec: any) {\n spec.type = 'common';\n spec.dataKey = DATA_KEY;\n spec.series = [\n {\n type: 'bar',\n direction: 'horizontal',\n xField: spec.xField,\n yField: spec.yField,\n barWidth: spec.bar?.height ?? 10,\n bar: {\n ...spec.bar,\n style: {\n ...spec.bar?.style,\n x1: 0,\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.bar?.style ?? true;\n }\n }\n }\n }\n ];\n }\n\n transformAnimationSpec(spec: any) {\n if (spec.animationUpdate.enable) {\n spec.player = {\n ...spec.player,\n specs: this.dataSpecs,\n auto: true,\n visible: false,\n interval: (spec.animationNormal?.interval ?? 1000) + (spec.animationUpdate.duration ?? 1000) / 2,\n loop: true\n };\n\n spec.animationExit = this.getAnimationExit(this.originalSpec);\n spec.animationAppear = this.getAnimationAppear(this.originalSpec, 'rect');\n spec.animationEnter = this.getAnimationEnter(this.originalSpec);\n spec.animationUpdate = this.getAnimationUpdate(this.originalSpec);\n spec.animationNormal = this.originalSpec.animationNormal;\n }\n }\n\n transformAxesSpec(spec: any) {\n const { min, max } = computeDataRange(this.originalData, spec.xField);\n spec.axes = [\n {\n orient: 'left',\n type: 'band',\n visible: false,\n inverse: true,\n // paddingInner: 0.5,\n paddingOuter: 0.5\n },\n {\n orient: 'bottom',\n label: { visible: true },\n type: 'linear',\n visible: false,\n min,\n max\n }\n ];\n }\n\n generateBarBackground(spec: any) {\n return {\n type: spec.barBackground.type,\n dataId: 'data',\n visible: true,\n dataKey: DATA_KEY,\n zIndex: -99,\n state: spec.barBackground?.state,\n style: {\n x: (datum: Datum, ctx: any) =>\n spec.barBackground.type === 'symbol' ? ctx.getRegion().getLayoutRect().width / 2 : 0,\n y: (datum: Datum, ctx: any) => {\n return (\n ctx.valueToY([datum[spec.yField]]) +\n ctx.yBandwidth() / 2 -\n (spec.barBackground.type === 'symbol' ? 0 : spec.bar.height / 2)\n );\n },\n size: (datum: Datum, ctx: any) => [ctx.getRegion().getLayoutRect().width, spec.bar.height],\n width: (datum: Datum, ctx: any) => ctx.getRegion().getLayoutRect().width,\n height: spec.bar.height,\n ...spec.barBackground.style,\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.barBackground.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'barBack'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n }\n\n generateDecorateHaloIcons(spec: any) {\n return spec.decorateHaloIcons?.map((decorateHaloIcon: any) => {\n return {\n type: 'symbol',\n dataId: 'data',\n visible: true,\n dataKey: DATA_KEY,\n state: decorateHaloIcon?.state,\n style: {\n x: (datum: Datum, ctx: any) => {\n if (datum[spec.xField] === undefined || datum[spec.xField] === null) {\n return undefined;\n }\n return ctx.valueToX([datum[spec.xField]]);\n },\n y: (datum: Datum, ctx: any) => {\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2;\n },\n ...decorateHaloIcon.style,\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return decorateHaloIcon.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'symbol'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n });\n }\n\n generateRankingIcon(spec: any) {\n return {\n type: 'symbol',\n dataId: 'data',\n visible: true,\n dataKey: DATA_KEY,\n state: spec.rankingIcon.state,\n style: {\n x: (datum: Datum) => {\n if (spec.labelLayout === 'bothEnd') {\n return -(\n NAME_LABEL_PADDING_RIGHT +\n this.nameLabelTextMeasure.fullMeasure(this.formatDatum(spec.yField, datum)).width +\n (spec.orderLabel.style.visible\n ? NAME_ORDER_PADDING_RIGHT +\n this.orderLabelTextMeasure.fullMeasure(this.formatDatum(ORDER_KEY, datum)).width\n : 0) +\n NAME_SYMBOL_PADDING_RIGHT\n );\n }\n return CHART_PADDING_LEFT;\n },\n y: (datum: Datum, ctx: any) => {\n if (spec.labelLayout === 'bothEnd') {\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2;\n }\n return (\n ctx.valueToY([datum[spec.yField]]) +\n ctx.yBandwidth() / 2 -\n spec.bar.height / 2 -\n LABEL_PADDING_BOTTOM -\n Math.max(\n this.nameLabelTextMeasure.fullMeasure(this.formatDatum(spec.yField, datum)).height,\n this.orderLabelTextMeasure.fullMeasure(this.formatDatum(ORDER_KEY, datum)).height\n ) /\n 2\n );\n },\n ...spec.rankingIcon.style,\n lineWidth: 0,\n stroke: null,\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.rankingIcon.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'text'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n }\n\n generateNameLabel(spec: any) {\n return {\n type: 'text',\n dataId: 'data',\n dataKey: DATA_KEY,\n state: spec.nameLabel?.state,\n style: {\n text: (datum: Datum) => this.formatDatum(spec.yField, datum),\n x: () => {\n if (spec.labelLayout === 'bothEnd') {\n return -NAME_LABEL_PADDING_RIGHT;\n }\n return (\n (spec.rankingIcon.style.visible ? NAME_SYMBOL_PADDING_RIGHT + (spec.rankingIcon.style.size ?? 10) : 0) +\n (spec.orderLabel.style.visible\n ? NAME_ORDER_PADDING_RIGHT + this.getMaxDataLabelLens(spec, ORDER_KEY, this.orderLabelTextMeasure)\n : 0)\n );\n },\n y: (datum: Datum, ctx: any) => {\n if (spec.labelLayout === 'bothEnd') {\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2;\n }\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2 - spec.bar.height / 2 - LABEL_PADDING_BOTTOM;\n },\n ...spec.nameLabel.style,\n textAlign: spec.labelLayout === 'bothEnd' ? 'right' : 'left',\n textBaseline: spec.labelLayout === 'bothEnd' ? 'middle' : 'bottom',\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.nameLabel.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'text'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n }\n\n generateOrderLabel(spec: any) {\n return {\n type: 'text',\n dataId: 'data',\n dataKey: DATA_KEY,\n state: spec.orderLabel?.state,\n style: {\n text: (datum: Datum) => this.formatDatum(ORDER_KEY, datum),\n x: (datum: Datum) => {\n if (spec.labelLayout === 'bothEnd') {\n return -(\n NAME_LABEL_PADDING_RIGHT +\n this.nameLabelTextMeasure.fullMeasure(this.formatDatum(spec.yField, datum)).width +\n NAME_ORDER_PADDING_RIGHT\n );\n } else {\n return spec.rankingIcon.style.visible ? NAME_SYMBOL_PADDING_RIGHT + (spec.rankingIcon.style.size ?? 10) : 0;\n }\n },\n y: (datum: Datum, ctx: any) => {\n if (spec.labelLayout === 'bothEnd') {\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2;\n }\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2 - spec.bar.height / 2 - LABEL_PADDING_BOTTOM;\n },\n ...spec.orderLabel.style,\n textAlign: spec.labelLayout === 'bothEnd' ? 'right' : 'left',\n textBaseline: spec.labelLayout === 'bothEnd' ? 'middle' : 'bottom',\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.orderLabel.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'text'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n }\n\n generateValueLabel(spec: any) {\n return {\n type: 'text',\n dataId: 'data',\n visible: true,\n dataKey: DATA_KEY,\n state: spec.valueLabel?.state,\n style: {\n text: (datum: Datum) => this.formatDatum(spec.xField, datum),\n x: (datum: Datum, ctx: any) => {\n if (spec.labelLayout === 'bothEnd') {\n return (\n ctx.getRegion().getLayoutRect().width +\n this.getMaxDataLabelLens(spec, spec.xField, this.nameLabelTextMeasure) +\n VALUE_LABEL_PADDING_LEFT\n );\n } else {\n return ctx.getRegion().getLayoutRect().width;\n }\n },\n y: (datum: Datum, ctx: any) => {\n if (spec.labelLayout === 'bothEnd') {\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2;\n }\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2 - spec.bar.height / 2 - LABEL_PADDING_BOTTOM;\n },\n ...spec.valueLabel.style,\n textAlign: spec.labelLayout === 'bothEnd' ? 'left' : 'right',\n textBaseline: spec.labelLayout === 'bothEnd' ? 'middle' : 'bottom',\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.valueLabel.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'text'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n }\n\n transformPaddingSpec(spec: any) {\n const maxHaloIconSize =\n spec.decorateHaloIcons.length > 0\n ? Math.max(...spec.decorateHaloIcons.map((icon: any) => icon.style?.size ?? 18))\n : 0;\n spec.padding = {\n left:\n spec.labelLayout === 'bothEnd'\n ? NAME_LABEL_PADDING_RIGHT +\n this.getMaxDataLabelLens(spec, spec.yField, this.nameLabelTextMeasure) +\n (spec.orderLabel.style.visible\n ? NAME_ORDER_PADDING_RIGHT + this.getMaxDataLabelLens(spec, ORDER_KEY, this.orderLabelTextMeasure)\n : 0) +\n (spec.rankingIcon.style.visible ? NAME_SYMBOL_PADDING_RIGHT + (spec.rankingIcon.style.size ?? 10) : 0) +\n CHART_PADDING_LEFT\n : CHART_PADDING_LEFT + maxHaloIconSize / 2,\n right:\n spec.labelLayout === 'bothEnd'\n ? VALUE_LABEL_PADDING_LEFT +\n this.getMaxDataLabelLens(spec, spec.yField, this.valueLabelTextMeasure) +\n CHART_PADDING_RIGHT\n : CHART_PADDING_RIGHT + 10,\n top: 0,\n bottom: 0,\n ...spec.padding\n };\n }\n\n paginateDataArr = (spec: IRankingListSpec) => {\n const { scrollSize = 1, pageSize = 5 } = spec;\n const arr = this.originalData;\n const result: { [key: string]: Datum[] } = {};\n let pageOrder = 0;\n for (let i = 0; i < arr.length; i += scrollSize) {\n pageOrder++;\n result[`page${pageOrder}`] = arr.slice(i, i + pageSize);\n if (i + pageSize - 1 >= arr.length - 1) {\n arr.push(\n ...Array.from({ length: i + pageSize - arr.length }, _ => {\n return {\n [spec.yField]: Math.random() * 100,\n [spec.xField]: null,\n [SUPPLY_DATA_KEY]: true\n };\n })\n );\n break;\n }\n }\n return {\n orderCount: pageOrder,\n result: result\n };\n };\n\n processRankingData = (spec: IRankingListSpec) => {\n const result: any[] = [];\n spec.data.forEach((datum, index) => (datum[ORDER_KEY] = index + 1 < 10 ? `0${index + 1}` : index + 1));\n const pagerData = this.paginateDataArr(spec).result;\n const orderCount = this.paginateDataArr(spec).orderCount;\n const supplyCount = spec.pageSize - pagerData[`page${orderCount}`].length;\n pagerData[`page${orderCount}`].push(\n ...Array.from({ length: supplyCount }, _ => {\n return {\n [spec.yField]: Math.random() * 100,\n [spec.xField]: null,\n [SUPPLY_DATA_KEY]: true\n };\n })\n );\n\n Object.keys(pagerData).forEach(order => {\n result.push({\n data: [\n {\n id: 'datas',\n values: pagerData[order].map(d => {\n return { ...d, [DATA_KEY]: d[spec.yField] };\n })\n },\n {\n id: 'order',\n values: [\n {\n order\n }\n ]\n }\n ]\n });\n });\n\n // // 只有1页时, player循环播放时, prePage和curPage data一致, 导致没有动画效果\n // // 在此手动复制1页, 且prePage和curPage dataKey不一致, 保证动画效果\n // if (result.length === 1) {\n // result.push({\n // data: [\n // {\n // id: 'datas',\n // values: pagerData['page1'].map(d => {\n // return { ...d, [DATA_KEY]: 'page2_' + d['y'] };\n // })\n // },\n // {\n // id: 'order',\n // values: [\n // {\n // order: 'page2'\n // }\n // ]\n // }\n // ]\n // });\n // }\n\n return result;\n };\n\n getMaxDataLabelLens(spec: IRankingListSpec, field: string, textMeasure: TextMeasure<any>) {\n const textWidths = this.originalData.map(datum =>\n datum[SUPPLY_DATA_KEY] ? 0 : textMeasure.fullMeasure(this.formatDatum(field, datum)).width\n );\n return Math.max(...textWidths);\n }\n\n formatDatum(field: string, datum: Datum) {\n if (this.formatMap?.[field]) {\n return this.formatMap[field](datum[field], datum);\n } else {\n return datum[field];\n }\n }\n\n getLabelWidth(padding: number, width: number) {\n return width + padding;\n }\n\n getAnimationExit(spec: IRankingListSpec) {\n if (spec.animationUpdate?.enable === false) {\n return false;\n }\n return {\n type: 'moveOut',\n options: {\n direction: 'y',\n orient: 'negative',\n point: (datum: Datum, element: IElement) => {\n const channelAttr = element.getGraphicAttribute('y');\n const barSpace = spec.height / (spec.pageSize + 1);\n return { y: channelAttr - barSpace * Math.min(spec.scrollSize, spec.pageSize) };\n }\n },\n duration: spec.animationUpdate?.duration ?? 1000,\n easing: spec.animationUpdate?.easing ?? 'linear'\n };\n }\n\n getAnimationEnter(spec: IRankingListSpec) {\n if (spec.animationUpdate?.enable === false) {\n return false;\n }\n return {\n type: 'moveIn',\n options: {\n direction: 'y',\n orient: 'negative',\n excludeChannels: ['y'],\n point: (datum: Datum, element: IElement) => {\n const channelAttr = element.getGraphicAttribute('y');\n return { y: channelAttr + (spec.height / (spec.pageSize + 1)) * Math.min(spec.scrollSize, spec.pageSize) };\n }\n },\n duration: spec.animationUpdate?.duration ?? 1000,\n easing: spec.animationUpdate?.easing ?? 'linear'\n };\n }\n\n getAnimationAppear(spec: IRankingListSpec, markType: 'rect' | 'text' | 'symbol' | 'barBack') {\n if (spec.animationAppear?.enable === false) {\n return false;\n }\n if (markType === 'rect') {\n return {\n type: 'growWidthIn',\n oneByOne: false,\n duration: spec.animationAppear?.duration ?? 1000,\n easing: spec.animationAppear?.easing ?? 'linear',\n options: {}\n };\n } else if (markType === 'symbol') {\n return {\n channel: {\n x: {\n from: 0,\n to: (datum: Datum, element: IElement) => {\n return element.getGraphicItem().attribute.x;\n }\n }\n },\n duration: spec.animationAppear?.duration ?? 1000,\n easing: spec.animationAppear?.easing ?? 'linear'\n };\n } else {\n return {\n channel: {\n opacity: {\n from: 0,\n to: 1\n }\n },\n duration: spec.animationAppear?.duration ?? 1000,\n easing: spec.animationAppear?.easing ?? 'linear'\n };\n }\n }\n\n getAnimationUpdate(spec: IRankingListSpec) {\n if (spec.animationUpdate.enable === false) {\n return false;\n }\n return {\n duration: spec.animationUpdate?.duration ?? 1000,\n easing: spec.animationUpdate?.easing ?? 'linear'\n };\n }\n}\n"]}
1
+ {"version":3,"sources":["charts/ranking-list/ranking-list-transformer.ts"],"names":[],"mappings":"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","file":"ranking-list-transformer.js","sourcesContent":["import { Datum } from '@visactor/vchart/src/typings';\nimport type { IRankingListSpec } from './interface';\nimport { CommonChartSpecTransformer } from '@visactor/vchart';\nimport { cloneDeep, TextMeasure } from '@visactor/vutils';\nimport { defaultSpec } from './constant';\nimport { applyVisible, computeDataRange, mergeObjects } from './utils';\nimport { IElement } from '@visactor/vgammar-core';\n\nconst DATA_KEY = 'dataKey';\nconst ORDER_KEY = 'VCHART_ORDER';\nconst SUPPLY_DATA_KEY = 'SUPPLY_DATA_KEY';\nconst NAME_LABEL_PADDING_RIGHT = 10;\nconst NAME_ORDER_PADDING_RIGHT = 5;\nconst NAME_SYMBOL_PADDING_RIGHT = 8;\nconst CHART_PADDING_LEFT = 5;\nconst CHART_PADDING_RIGHT = 5;\nconst VALUE_LABEL_PADDING_LEFT = 5;\n\nconst LABEL_PADDING_BOTTOM = 5;\n\nexport class RankingListChartSpecTransformer extends CommonChartSpecTransformer {\n protected nameLabelTextMeasure: TextMeasure<any>;\n protected valueLabelTextMeasure: TextMeasure<any>;\n protected orderLabelTextMeasure: TextMeasure<any>;\n protected originalData: Datum[];\n protected originalSpec: IRankingListSpec;\n protected dataSpecs: any[];\n protected formatMap: { [key: string]: (text: string, ctx: any) => string } = {};\n\n transformSpec(spec: any): void {\n super.transformSpec(spec);\n this.normalizeSpec(spec);\n this.upgradeTextMeasure(spec);\n this.upgradeFormatMap(spec);\n this.processData(spec);\n\n // rankingList spec -> vchart spec\n this.transformBaseSpec(spec);\n this.transformAnimationSpec(spec);\n this.transformAxesSpec(spec);\n\n spec.extensionMark = [\n // 柱图背景\n this.generateBarBackground(spec),\n // 辅助图标\n ...this.generateDecorateHaloIcons(spec),\n // 左侧图标\n this.generateRankingIcon(spec),\n // 左侧label\n this.generateNameLabel(spec),\n // 左侧序号label\n this.generateOrderLabel(spec),\n // 右侧label\n this.generateValueLabel(spec)\n ];\n\n this.transformPaddingSpec(spec);\n\n // console.log('spec', spec);\n\n super.transformSpec(spec);\n }\n\n normalizeSpec(spec: any) {\n // 处理配置\n mergeObjects(spec, defaultSpec);\n applyVisible(spec, [\n 'barBackground',\n 'rankingIcon',\n 'decorateHaloIcons',\n 'orderLabel',\n 'nameLabel',\n 'valueLabel'\n // 'bar'\n ]);\n }\n\n upgradeTextMeasure(spec: any) {\n // 初始化文字测量\n this.nameLabelTextMeasure?.release();\n this.valueLabelTextMeasure?.release();\n this.orderLabelTextMeasure?.release();\n this.nameLabelTextMeasure = new TextMeasure({\n defaultFontParams: spec.nameLabel?.style ?? {}\n });\n this.valueLabelTextMeasure = new TextMeasure({\n defaultFontParams: spec.valueLabel?.style ?? {}\n });\n this.orderLabelTextMeasure = new TextMeasure({\n defaultFontParams: spec.orderLabel?.style ?? {}\n });\n }\n\n upgradeFormatMap(spec: any) {\n this.formatMap[spec.yField] = spec.nameLabel.formatMethod;\n this.formatMap[spec.xField] = spec.valueLabel.formatMethod;\n this.formatMap[ORDER_KEY] = spec.orderLabel.formatMethod;\n }\n\n processData(spec: any) {\n // ps: 如果updateSpec后, 同时执行2次processData会有问题, 在这里用比较hack的方式绕过第2次\n if (!spec.data[0]?.values) {\n this.originalData = spec.data;\n this.originalSpec = cloneDeep(spec);\n this.dataSpecs = this.processRankingData(spec as unknown as IRankingListSpec);\n spec.data = this.dataSpecs[0].data;\n }\n }\n\n transformBaseSpec(spec: any) {\n spec.type = 'common';\n spec.dataKey = DATA_KEY;\n spec.series = [\n {\n type: 'bar',\n direction: 'horizontal',\n xField: spec.xField,\n yField: spec.yField,\n barWidth: spec.bar?.height ?? 10,\n bar: {\n ...spec.bar,\n style: {\n ...spec.bar?.style,\n x1: 0,\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.bar?.style ?? true;\n }\n }\n }\n }\n ];\n }\n\n transformAnimationSpec(spec: any) {\n if (spec.animationUpdate.enable) {\n spec.player = {\n ...spec.player,\n specs: this.dataSpecs,\n auto: true,\n visible: false,\n interval: (spec.animationNormal?.interval ?? 1000) + (spec.animationUpdate.duration ?? 1000) / 2,\n loop: true\n };\n\n spec.animationExit = this.getAnimationExit(this.originalSpec);\n spec.animationEnter = this.getAnimationEnter(this.originalSpec);\n spec.animationUpdate = this.getAnimationUpdate(this.originalSpec);\n }\n spec.animationNormal = this.originalSpec.animationNormal;\n spec.animationAppear = this.getAnimationAppear(this.originalSpec, 'rect');\n }\n\n transformAxesSpec(spec: any) {\n const { min, max } = computeDataRange(this.originalData, spec.xField);\n spec.axes = [\n {\n orient: 'left',\n type: 'band',\n visible: false,\n inverse: true,\n // paddingInner: 0.5,\n paddingOuter: 0.5\n },\n {\n orient: 'bottom',\n label: { visible: true },\n type: 'linear',\n visible: false,\n min,\n max\n }\n ];\n }\n\n generateBarBackground(spec: any) {\n return {\n type: spec.barBackground.type,\n dataId: 'data',\n visible: true,\n dataKey: DATA_KEY,\n zIndex: -99,\n state: spec.barBackground?.state,\n style: {\n x: (datum: Datum, ctx: any) =>\n spec.barBackground.type === 'symbol' ? ctx.getRegion().getLayoutRect().width / 2 : 0,\n y: (datum: Datum, ctx: any) => {\n return (\n ctx.valueToY([datum[spec.yField]]) +\n ctx.yBandwidth() / 2 -\n (spec.barBackground.type === 'symbol' ? 0 : spec.bar.height / 2)\n );\n },\n size: (datum: Datum, ctx: any) => [ctx.getRegion().getLayoutRect().width, spec.bar.height],\n width: (datum: Datum, ctx: any) => ctx.getRegion().getLayoutRect().width,\n height: spec.bar.height,\n ...spec.barBackground.style,\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.barBackground.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'barBack'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n }\n\n generateDecorateHaloIcons(spec: any) {\n return spec.decorateHaloIcons?.map((decorateHaloIcon: any) => {\n return {\n type: 'symbol',\n dataId: 'data',\n visible: true,\n dataKey: DATA_KEY,\n state: decorateHaloIcon?.state,\n style: {\n x: (datum: Datum, ctx: any) => {\n if (datum[spec.xField] === undefined || datum[spec.xField] === null) {\n return undefined;\n }\n return ctx.valueToX([datum[spec.xField]]);\n },\n y: (datum: Datum, ctx: any) => {\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2;\n },\n ...decorateHaloIcon.style,\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return decorateHaloIcon.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'symbol'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n });\n }\n\n generateRankingIcon(spec: any) {\n return {\n type: 'symbol',\n dataId: 'data',\n visible: true,\n dataKey: DATA_KEY,\n state: spec.rankingIcon.state,\n style: {\n x: (datum: Datum) => {\n if (spec.labelLayout === 'bothEnd') {\n return -(\n NAME_LABEL_PADDING_RIGHT +\n this.nameLabelTextMeasure.fullMeasure(this.formatDatum(spec.yField, datum)).width +\n (spec.orderLabel.style.visible\n ? NAME_ORDER_PADDING_RIGHT +\n this.orderLabelTextMeasure.fullMeasure(this.formatDatum(ORDER_KEY, datum)).width\n : 0) +\n NAME_SYMBOL_PADDING_RIGHT\n );\n }\n return CHART_PADDING_LEFT;\n },\n y: (datum: Datum, ctx: any) => {\n if (spec.labelLayout === 'bothEnd') {\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2;\n }\n return (\n ctx.valueToY([datum[spec.yField]]) +\n ctx.yBandwidth() / 2 -\n spec.bar.height / 2 -\n LABEL_PADDING_BOTTOM -\n Math.max(\n this.nameLabelTextMeasure.fullMeasure(this.formatDatum(spec.yField, datum)).height,\n this.orderLabelTextMeasure.fullMeasure(this.formatDatum(ORDER_KEY, datum)).height\n ) /\n 2\n );\n },\n ...spec.rankingIcon.style,\n lineWidth: 0,\n stroke: null,\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.rankingIcon.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'text'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n }\n\n generateNameLabel(spec: any) {\n return {\n type: 'text',\n dataId: 'data',\n dataKey: DATA_KEY,\n state: spec.nameLabel?.state,\n style: {\n text: (datum: Datum) => this.formatDatum(spec.yField, datum),\n x: () => {\n if (spec.labelLayout === 'bothEnd') {\n return -NAME_LABEL_PADDING_RIGHT;\n }\n return (\n (spec.rankingIcon.style.visible ? NAME_SYMBOL_PADDING_RIGHT + (spec.rankingIcon.style.size ?? 10) : 0) +\n (spec.orderLabel.style.visible\n ? NAME_ORDER_PADDING_RIGHT + this.getMaxDataLabelLens(spec, ORDER_KEY, this.orderLabelTextMeasure)\n : 0)\n );\n },\n y: (datum: Datum, ctx: any) => {\n if (spec.labelLayout === 'bothEnd') {\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2;\n }\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2 - spec.bar.height / 2 - LABEL_PADDING_BOTTOM;\n },\n ...spec.nameLabel.style,\n textAlign: spec.labelLayout === 'bothEnd' ? 'right' : 'left',\n textBaseline: spec.labelLayout === 'bothEnd' ? 'middle' : 'bottom',\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.nameLabel.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'text'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n }\n\n generateOrderLabel(spec: any) {\n return {\n type: 'text',\n dataId: 'data',\n dataKey: DATA_KEY,\n state: spec.orderLabel?.state,\n style: {\n text: (datum: Datum) => this.formatDatum(ORDER_KEY, datum),\n x: (datum: Datum) => {\n if (spec.labelLayout === 'bothEnd') {\n return -(\n NAME_LABEL_PADDING_RIGHT +\n this.nameLabelTextMeasure.fullMeasure(this.formatDatum(spec.yField, datum)).width +\n NAME_ORDER_PADDING_RIGHT\n );\n } else {\n return spec.rankingIcon.style.visible ? NAME_SYMBOL_PADDING_RIGHT + (spec.rankingIcon.style.size ?? 10) : 0;\n }\n },\n y: (datum: Datum, ctx: any) => {\n if (spec.labelLayout === 'bothEnd') {\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2;\n }\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2 - spec.bar.height / 2 - LABEL_PADDING_BOTTOM;\n },\n ...spec.orderLabel.style,\n textAlign: spec.labelLayout === 'bothEnd' ? 'right' : 'left',\n textBaseline: spec.labelLayout === 'bothEnd' ? 'middle' : 'bottom',\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.orderLabel.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'text'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n }\n\n generateValueLabel(spec: any) {\n return {\n type: 'text',\n dataId: 'data',\n visible: true,\n dataKey: DATA_KEY,\n state: spec.valueLabel?.state,\n style: {\n text: (datum: Datum) => this.formatDatum(spec.xField, datum),\n x: (datum: Datum, ctx: any) => {\n if (spec.labelLayout === 'bothEnd') {\n return (\n ctx.getRegion().getLayoutRect().width +\n this.getMaxDataLabelLens(spec, spec.xField, this.nameLabelTextMeasure) +\n VALUE_LABEL_PADDING_LEFT\n );\n } else {\n return ctx.getRegion().getLayoutRect().width;\n }\n },\n y: (datum: Datum, ctx: any) => {\n if (spec.labelLayout === 'bothEnd') {\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2;\n }\n return ctx.valueToY([datum[spec.yField]]) + ctx.yBandwidth() / 2 - spec.bar.height / 2 - LABEL_PADDING_BOTTOM;\n },\n ...spec.valueLabel.style,\n textAlign: spec.labelLayout === 'bothEnd' ? 'left' : 'right',\n textBaseline: spec.labelLayout === 'bothEnd' ? 'middle' : 'bottom',\n visible: (datum: Datum) => {\n if (datum[SUPPLY_DATA_KEY]) {\n return false;\n }\n return spec.valueLabel.style.visible;\n }\n },\n animation: true,\n animationEnter: this.getAnimationEnter(this.originalSpec),\n animationExit: this.getAnimationExit(this.originalSpec),\n animationAppear: this.getAnimationAppear(this.originalSpec, 'text'),\n animationUpdate: this.getAnimationUpdate(this.originalSpec)\n };\n }\n\n transformPaddingSpec(spec: any) {\n const maxHaloIconSize =\n spec.decorateHaloIcons.length > 0\n ? Math.max(...spec.decorateHaloIcons.map((icon: any) => icon.style?.size ?? 18))\n : 0;\n spec.padding = {\n left:\n spec.labelLayout === 'bothEnd'\n ? NAME_LABEL_PADDING_RIGHT +\n this.getMaxDataLabelLens(spec, spec.yField, this.nameLabelTextMeasure) +\n (spec.orderLabel.style.visible\n ? NAME_ORDER_PADDING_RIGHT + this.getMaxDataLabelLens(spec, ORDER_KEY, this.orderLabelTextMeasure)\n : 0) +\n (spec.rankingIcon.style.visible ? NAME_SYMBOL_PADDING_RIGHT + (spec.rankingIcon.style.size ?? 10) : 0) +\n CHART_PADDING_LEFT\n : CHART_PADDING_LEFT + maxHaloIconSize / 2,\n right:\n spec.labelLayout === 'bothEnd'\n ? VALUE_LABEL_PADDING_LEFT +\n this.getMaxDataLabelLens(spec, spec.yField, this.valueLabelTextMeasure) +\n CHART_PADDING_RIGHT\n : CHART_PADDING_RIGHT + 10,\n top: 0,\n bottom: 0,\n ...spec.padding\n };\n }\n\n paginateDataArr = (spec: IRankingListSpec) => {\n const { scrollSize = 1, pageSize = 5 } = spec;\n const arr = this.originalData;\n const result: { [key: string]: Datum[] } = {};\n let pageOrder = 0;\n for (let i = 0; i < arr.length; i += scrollSize) {\n pageOrder++;\n result[`page${pageOrder}`] = arr.slice(i, i + pageSize);\n if (i + pageSize - 1 >= arr.length - 1) {\n arr.push(\n ...Array.from({ length: i + pageSize - arr.length }, _ => {\n return {\n [spec.yField]: Math.random() * 100,\n [spec.xField]: null,\n [SUPPLY_DATA_KEY]: true\n };\n })\n );\n break;\n }\n }\n return {\n orderCount: pageOrder,\n result: result\n };\n };\n\n processRankingData = (spec: IRankingListSpec) => {\n const result: any[] = [];\n spec.data.forEach((datum, index) => (datum[ORDER_KEY] = index + 1 < 10 ? `0${index + 1}` : index + 1));\n const pagerData = this.paginateDataArr(spec).result;\n const orderCount = this.paginateDataArr(spec).orderCount;\n const supplyCount = spec.pageSize - pagerData[`page${orderCount}`].length;\n pagerData[`page${orderCount}`].push(\n ...Array.from({ length: supplyCount }, _ => {\n return {\n [spec.yField]: Math.random() * 100,\n [spec.xField]: null,\n [SUPPLY_DATA_KEY]: true\n };\n })\n );\n\n Object.keys(pagerData).forEach(order => {\n result.push({\n data: [\n {\n id: 'datas',\n values: pagerData[order].map(d => {\n return { ...d, [DATA_KEY]: d[spec.yField] };\n })\n },\n {\n id: 'order',\n values: [\n {\n order\n }\n ]\n }\n ]\n });\n });\n\n // // 只有1页时, player循环播放时, prePage和curPage data一致, 导致没有动画效果\n // // 在此手动复制1页, 且prePage和curPage dataKey不一致, 保证动画效果\n // if (result.length === 1) {\n // result.push({\n // data: [\n // {\n // id: 'datas',\n // values: pagerData['page1'].map(d => {\n // return { ...d, [DATA_KEY]: 'page2_' + d['y'] };\n // })\n // },\n // {\n // id: 'order',\n // values: [\n // {\n // order: 'page2'\n // }\n // ]\n // }\n // ]\n // });\n // }\n\n return result;\n };\n\n getMaxDataLabelLens(spec: IRankingListSpec, field: string, textMeasure: TextMeasure<any>) {\n const textWidths = this.originalData.map(datum =>\n datum[SUPPLY_DATA_KEY] ? 0 : textMeasure.fullMeasure(this.formatDatum(field, datum)).width\n );\n return Math.max(...textWidths);\n }\n\n formatDatum(field: string, datum: Datum) {\n if (this.formatMap?.[field]) {\n return this.formatMap[field](datum[field], datum);\n } else {\n return datum[field];\n }\n }\n\n getLabelWidth(padding: number, width: number) {\n return width + padding;\n }\n\n getAnimationExit(spec: IRankingListSpec) {\n if (spec.animationUpdate?.enable === false) {\n return false;\n }\n return {\n type: 'moveOut',\n options: {\n direction: 'y',\n orient: 'negative',\n point: (datum: Datum, element: IElement) => {\n const channelAttr = element.getGraphicAttribute('y');\n const barSpace = spec.height / (spec.pageSize + 1);\n return { y: channelAttr - barSpace * Math.min(spec.scrollSize, spec.pageSize) };\n }\n },\n duration: spec.animationUpdate?.duration ?? 1000,\n easing: spec.animationUpdate?.easing ?? 'linear'\n };\n }\n\n getAnimationEnter(spec: IRankingListSpec) {\n if (spec.animationUpdate?.enable === false) {\n return false;\n }\n return {\n type: 'moveIn',\n options: {\n direction: 'y',\n orient: 'negative',\n excludeChannels: ['y'],\n point: (datum: Datum, element: IElement) => {\n const channelAttr = element.getGraphicAttribute('y');\n return { y: channelAttr + (spec.height / (spec.pageSize + 1)) * Math.min(spec.scrollSize, spec.pageSize) };\n }\n },\n duration: spec.animationUpdate?.duration ?? 1000,\n easing: spec.animationUpdate?.easing ?? 'linear'\n };\n }\n\n getAnimationAppear(spec: IRankingListSpec, markType: 'rect' | 'text' | 'symbol' | 'barBack') {\n if (spec.animationAppear?.enable === false) {\n return false;\n }\n if (markType === 'rect') {\n return {\n type: 'growWidthIn',\n oneByOne: false,\n duration: spec.animationAppear?.duration ?? 1000,\n easing: spec.animationAppear?.easing ?? 'linear',\n options: {}\n };\n } else if (markType === 'symbol') {\n return {\n channel: {\n x: {\n from: 0,\n to: (datum: Datum, element: IElement) => {\n return element.getGraphicItem().attribute.x;\n }\n }\n },\n duration: spec.animationAppear?.duration ?? 1000,\n easing: spec.animationAppear?.easing ?? 'linear'\n };\n } else {\n return {\n channel: {\n opacity: {\n from: 0,\n to: 1\n }\n },\n duration: spec.animationAppear?.duration ?? 1000,\n easing: spec.animationAppear?.easing ?? 'linear'\n };\n }\n }\n\n getAnimationUpdate(spec: IRankingListSpec) {\n if (spec.animationUpdate.enable === false) {\n return false;\n }\n return {\n duration: spec.animationUpdate?.duration ?? 1000,\n easing: spec.animationUpdate?.easing ?? 'linear'\n };\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visactor/vchart-extension",
3
- "version": "1.13.5-alpha.4",
3
+ "version": "1.13.5-alpha.5",
4
4
  "description": "vchart extension package, including extension plugins and components",
5
5
  "sideEffects": false,
6
6
  "main": "cjs/index.js",
@@ -18,7 +18,7 @@
18
18
  "@visactor/vgrammar-core": "0.15.5",
19
19
  "@visactor/vutils": "~0.19.3",
20
20
  "@visactor/vdataset": "~0.19.3",
21
- "@visactor/vchart": "1.13.5-alpha.4"
21
+ "@visactor/vchart": "1.13.5-alpha.5"
22
22
  },
23
23
  "devDependencies": {
24
24
  "@rushstack/eslint-patch": "~1.1.4",