@visactor/vgrammar-plot 0.6.0
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/README.md +3 -0
- package/README.zh-CN.md +0 -0
- package/cjs/area.d.ts +14 -0
- package/cjs/area.js +83 -0
- package/cjs/area.js.map +1 -0
- package/cjs/cell.d.ts +14 -0
- package/cjs/cell.js +51 -0
- package/cjs/cell.js.map +1 -0
- package/cjs/circle-packing.d.ts +17 -0
- package/cjs/circle-packing.js +76 -0
- package/cjs/circle-packing.js.map +1 -0
- package/cjs/enums.d.ts +24 -0
- package/cjs/enums.js +17 -0
- package/cjs/enums.js.map +1 -0
- package/cjs/image.d.ts +13 -0
- package/cjs/image.js +77 -0
- package/cjs/image.js.map +1 -0
- package/cjs/index.d.ts +1 -0
- package/cjs/index.js +15 -0
- package/cjs/index.js.map +1 -0
- package/cjs/interval.d.ts +19 -0
- package/cjs/interval.js +102 -0
- package/cjs/interval.js.map +1 -0
- package/cjs/line.d.ts +14 -0
- package/cjs/line.js +52 -0
- package/cjs/line.js.map +1 -0
- package/cjs/path.d.ts +11 -0
- package/cjs/path.js +25 -0
- package/cjs/path.js.map +1 -0
- package/cjs/plot-all.d.ts +2 -0
- package/cjs/plot-all.js +19 -0
- package/cjs/plot-all.js.map +1 -0
- package/cjs/plot.d.ts +46 -0
- package/cjs/plot.js +265 -0
- package/cjs/plot.js.map +1 -0
- package/cjs/polygon.d.ts +12 -0
- package/cjs/polygon.js +44 -0
- package/cjs/polygon.js.map +1 -0
- package/cjs/rect-x.d.ts +13 -0
- package/cjs/rect-x.js +67 -0
- package/cjs/rect-x.js.map +1 -0
- package/cjs/rect-y.d.ts +13 -0
- package/cjs/rect-y.js +67 -0
- package/cjs/rect-y.js.map +1 -0
- package/cjs/rect.d.ts +13 -0
- package/cjs/rect.js +82 -0
- package/cjs/rect.js.map +1 -0
- package/cjs/rule-x.d.ts +12 -0
- package/cjs/rule-x.js +37 -0
- package/cjs/rule-x.js.map +1 -0
- package/cjs/rule-y.d.ts +12 -0
- package/cjs/rule-y.js +36 -0
- package/cjs/rule-y.js.map +1 -0
- package/cjs/rule.d.ts +12 -0
- package/cjs/rule.js +45 -0
- package/cjs/rule.js.map +1 -0
- package/cjs/sankey.d.ts +46 -0
- package/cjs/sankey.js +139 -0
- package/cjs/sankey.js.map +1 -0
- package/cjs/semantic-mark.d.ts +88 -0
- package/cjs/semantic-mark.js +846 -0
- package/cjs/semantic-mark.js.map +1 -0
- package/cjs/sunburst.d.ts +45 -0
- package/cjs/sunburst.js +134 -0
- package/cjs/sunburst.js.map +1 -0
- package/cjs/symbol.d.ts +13 -0
- package/cjs/symbol.js +53 -0
- package/cjs/symbol.js.map +1 -0
- package/cjs/text.d.ts +12 -0
- package/cjs/text.js +32 -0
- package/cjs/text.js.map +1 -0
- package/cjs/tree.d.ts +20 -0
- package/cjs/tree.js +128 -0
- package/cjs/tree.js.map +1 -0
- package/cjs/treemap.d.ts +41 -0
- package/cjs/treemap.js +109 -0
- package/cjs/treemap.js.map +1 -0
- package/cjs/util.d.ts +3 -0
- package/cjs/util.js +11 -0
- package/cjs/util.js.map +1 -0
- package/cjs/wordcloud-shape.d.ts +13 -0
- package/cjs/wordcloud-shape.js +85 -0
- package/cjs/wordcloud-shape.js.map +1 -0
- package/cjs/wordcloud.d.ts +13 -0
- package/cjs/wordcloud.js +81 -0
- package/cjs/wordcloud.js.map +1 -0
- package/dist/index.js +3291 -0
- package/dist/index.min.js +1 -0
- package/es/area.d.ts +14 -0
- package/es/area.js +83 -0
- package/es/area.js.map +1 -0
- package/es/cell.d.ts +14 -0
- package/es/cell.js +49 -0
- package/es/cell.js.map +1 -0
- package/es/circle-packing.d.ts +17 -0
- package/es/circle-packing.js +75 -0
- package/es/circle-packing.js.map +1 -0
- package/es/enums.d.ts +24 -0
- package/es/enums.js +13 -0
- package/es/enums.js.map +1 -0
- package/es/image.d.ts +13 -0
- package/es/image.js +74 -0
- package/es/image.js.map +1 -0
- package/es/index.d.ts +1 -0
- package/es/index.js +2 -0
- package/es/index.js.map +1 -0
- package/es/interval.d.ts +19 -0
- package/es/interval.js +103 -0
- package/es/interval.js.map +1 -0
- package/es/line.d.ts +14 -0
- package/es/line.js +50 -0
- package/es/line.js.map +1 -0
- package/es/path.d.ts +11 -0
- package/es/path.js +23 -0
- package/es/path.js.map +1 -0
- package/es/plot-all.d.ts +2 -0
- package/es/plot-all.js +50 -0
- package/es/plot-all.js.map +1 -0
- package/es/plot.d.ts +46 -0
- package/es/plot.js +263 -0
- package/es/plot.js.map +1 -0
- package/es/polygon.d.ts +12 -0
- package/es/polygon.js +43 -0
- package/es/polygon.js.map +1 -0
- package/es/rect-x.d.ts +13 -0
- package/es/rect-x.js +69 -0
- package/es/rect-x.js.map +1 -0
- package/es/rect-y.d.ts +13 -0
- package/es/rect-y.js +69 -0
- package/es/rect-y.js.map +1 -0
- package/es/rect.d.ts +13 -0
- package/es/rect.js +84 -0
- package/es/rect.js.map +1 -0
- package/es/rule-x.d.ts +12 -0
- package/es/rule-x.js +35 -0
- package/es/rule-x.js.map +1 -0
- package/es/rule-y.d.ts +12 -0
- package/es/rule-y.js +34 -0
- package/es/rule-y.js.map +1 -0
- package/es/rule.d.ts +12 -0
- package/es/rule.js +45 -0
- package/es/rule.js.map +1 -0
- package/es/sankey.d.ts +46 -0
- package/es/sankey.js +137 -0
- package/es/sankey.js.map +1 -0
- package/es/semantic-mark.d.ts +88 -0
- package/es/semantic-mark.js +833 -0
- package/es/semantic-mark.js.map +1 -0
- package/es/sunburst.d.ts +45 -0
- package/es/sunburst.js +133 -0
- package/es/sunburst.js.map +1 -0
- package/es/symbol.d.ts +13 -0
- package/es/symbol.js +51 -0
- package/es/symbol.js.map +1 -0
- package/es/text.d.ts +12 -0
- package/es/text.js +30 -0
- package/es/text.js.map +1 -0
- package/es/tree.d.ts +20 -0
- package/es/tree.js +127 -0
- package/es/tree.js.map +1 -0
- package/es/treemap.d.ts +41 -0
- package/es/treemap.js +108 -0
- package/es/treemap.js.map +1 -0
- package/es/util.d.ts +3 -0
- package/es/util.js +3 -0
- package/es/util.js.map +1 -0
- package/es/wordcloud-shape.d.ts +13 -0
- package/es/wordcloud-shape.js +84 -0
- package/es/wordcloud-shape.js.map +1 -0
- package/es/wordcloud.d.ts +13 -0
- package/es/wordcloud.js +80 -0
- package/es/wordcloud.js.map +1 -0
- package/package.json +73 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@visactor/vgrammar-util"),require("@visactor/vutils"),require("@visactor/vgrammar")):"function"==typeof define&&define.amd?define(["exports","@visactor/vgrammar-util","@visactor/vutils","@visactor/vgrammar"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).VGrammar=e.VGrammar||{},e.VGrammar.Projection={}),e.VGrammar.Util,e.VUtils,e.VGrammar)}(this,(function(e,t,i,r){"use strict";var o;function a(e){switch(e){case o.Ordinal:case o.Point:case o.Band:return!0;default:return!1}}!function(e){e.Linear="linear",e.Log="log",e.Pow="pow",e.Sqrt="sqrt",e.Symlog="symlog",e.Time="time",e.Quantile="quantile",e.Quantize="quantize",e.Threshold="threshold",e.Ordinal="ordinal",e.Point="point",e.Band="band"}(o||(o={}));const l=r.getTheme("default");let s=-1;class n{constructor(e,t){this.type=e,this.uid=++s,this._logger=i.Logger.getInstance(),this.spec={id:null!=t?t:`${this.type}-${this.uid}`}}parseSpec(e){return i.isNil(e.id)&&(e.id=this.spec.id),this.spec=e,this}coordinate(e){return this._coordinate=e,this}data(e,t,r){return i.isNil(e)||(this.spec.data={values:e,transform:t,id:r}),this}encode(e,t){return this.spec.encode||(this.spec.encode={}),this.spec.encode[e]=t,this}scale(e,t){return this.spec.scale||(this.spec.scale={}),this.spec.scale[e]=t,this}style(e){return this.spec.style=e,this}transform(e){return this.spec.transform=i.array(e),this}state(e,t){if(![r.BuiltInEncodeNames.enter,r.BuiltInEncodeNames.update,r.BuiltInEncodeNames.exit,r.BuiltInEncodeNames.group].includes(e))return this.spec.state||(this.spec.state={}),this.spec.state[e]=t,this;this._logger.warn(`[VGrammar]: ${e} is a reserved keyword to specify the encode of different data state, \n don't use this keyword`)}animate(e,t){return"state"===e?(this._logger.warn(`[VGrammar]: ${e} is a keyword use to specify state animation config, don't use this keyword`),this):(this.spec.animation||(this.spec.animation={}),this.spec.animation[e]=t,this)}axis(e,t=!0,i){return this.spec.axis||(this.spec.axis={}),this.spec.axis[e]={option:t,layout:i},this}legend(e,t=!0,i){return this.spec.legend||(this.spec.legend={}),this.spec.legend[e]={option:t,layout:i},this}crosshair(e,t){return this.spec.crosshair||(this.spec.crosshair={}),this.spec.crosshair[e]=t,this}tooltip(e){return this.spec.tooltip=e,this}slider(e,t,i){return this.spec.slider||(this.spec.slider={}),this.spec.slider[e]={option:t,layout:i},this}datazoom(e,t,i){return this.spec.datazoom||(this.spec.datazoom={}),this.spec.datazoom[e]={option:t,layout:i},this}label(e,t){return this.spec.label||(this.spec.label={}),this.spec.label[e]=t,this}player(e,t,i){return this.spec.player={data:e,option:t,layout:i},this}setDefaultDataTransform(){return[]}setMultipleData(){return null}setDefaultMarkTransform(){return[]}convertMarkTransform(e,t=[]){if(t&&t.length){if(e&&e.length){let i=[];const r=[];for(let o=0,a=e.length;o<a;o++){const a=e[o],l=t.findIndex((e=>e.type===a.type));l>=0?(i.push(Object.assign({},t[l],a)),r.push(l)):i.push(a)}for(let e=0,o=t.length;e<o;e++)r.includes(e)||(i=[t[e]].concat(i));return i}return t}return e}convertMarkAnimation(){return this.spec.animation?this.spec.animation:null}convertSimpleMarkEncode(e){if(!e)return{};const t={};return Object.keys(e).map((i=>{t[i]={field:e[i],scale:this.getScaleId(i)}})),t}getDataIdOfFiltered(){var e,t;return`${null!==(t=null===(e=this.spec.data)||void 0===e?void 0:e.id)&&void 0!==t?t:this.spec.id}-data-filtered`}getDataIdOfMain(){var e,t;return`${null!==(t=null===(e=this.spec.data)||void 0===e?void 0:e.id)&&void 0!==t?t:this.spec.id}-data`}getDataIdOfPlayer(){var e,t;return`${null!==(t=null===(e=this.spec.data)||void 0===e?void 0:e.id)&&void 0!==t?t:this.spec.id}-player`}getDataZoomScaleId(e){return{x:`datazoom-scale-${e}-x`,y:`datazoom-scale-${e}-y`}}getScaleId(e){var t,i,r;return null!==(r=null===(i=null===(t=this.spec.scale)||void 0===t?void 0:t[e])||void 0===i?void 0:i.id)&&void 0!==r?r:`scale-${e}`}getMarkId(){return`${this.spec.id}-mark`}getScaleSpec(e){var t,i,r;return null===(r=null===(i=null===(t=this.viewSpec)||void 0===t?void 0:t.scales)||void 0===i?void 0:i.find)||void 0===r?void 0:r.call(i,(t=>t.id===e))}parseScaleOfEncodeX(e){return{type:"band",id:this.getScaleId("x"),dependency:[r.SIGNAL_VIEW_BOX],domain:{data:this.getDataIdOfFiltered(),field:e},range:this._coordinate?{coordinate:this._coordinate.id,dimension:"x"}:(e,t)=>[0,t.viewBox.width()]}}parseScaleOfEncodeY(e){return{type:"linear",dependency:[r.SIGNAL_VIEW_BOX],id:this.getScaleId("y"),domain:{data:this.getDataIdOfFiltered(),field:e},range:this._coordinate?{coordinate:this._coordinate.id,dimension:"y"}:(e,t)=>[t.viewBox.height(),0]}}parseScaleOfEncodeColor(e){return{type:"ordinal",id:this.getScaleId("color"),domain:{data:this.getDataIdOfMain(),field:e},range:r.getPalette()}}parseScaleOfEncodeGroup(e){return{type:"ordinal",id:this.getScaleId("group"),domain:{data:this.getDataIdOfMain(),field:e},range:r.getPalette()}}parseScaleOfCommonEncode(e,t){return"x"===e?this.parseScaleOfEncodeX(t):"y"===e?this.parseScaleOfEncodeY(t):"color"===e?this.parseScaleOfEncodeColor(t):"group"===e?this.parseScaleOfEncodeGroup(t):null}setDefaultAxis(){return{}}parseAxisSpec(){const e=this.spec.axis,t=[];return e&&Object.keys(e).forEach((o=>{const{option:a,layout:l}=this.parseOption(e[o]);if(a){const e={type:"component",componentType:r.ComponentEnum.axis,scale:this.getScaleId(o),dependency:[r.SIGNAL_VIEW_BOX],tickCount:a.tickCount,encode:{update:(e,t,r)=>{const l=this._coordinate?{}:"x"===o?{x:0,y:r.viewBox.height(),start:{x:0,y:0},end:{x:r.viewBox.width(),y:0}}:{x:0,y:r.viewBox.height(),start:{x:0,y:0},verticalFactor:-1,end:{x:0,y:-r.viewBox.height()}};return i.isPlainObject(a)?Object.assign(l,a):l}}};e.layout=null!=l?l:{position:this._coordinate?"auto":i.isPlainObject(l)&&!i.isNil(l.orient)?l.orient:"x"===o?"bottom":"left"},t.push(e)}})),t}parseOption(e){let t,r;return i.isPlainObject(e)?i.isNil(e.option)?t=e:(t=e.option,r=e.layout):t=e,{option:t,layout:r}}setDefaultLegend(){return{}}parseLegendSpec(){const e=this.spec.legend,t=[];return e&&Object.keys(e).forEach((o=>{var a;const{option:l,layout:s}=this.parseOption(e[o]);if(l){const e=null!=s?s:i.isPlainObject(l)&&!i.isNil(l.layout)?"horizontal"===l.layout?{position:"top",align:"center"}:"vertical"===l.layout?{position:"right",align:"middle"}:{position:"top",align:"center"}:{position:"top",align:"center"},n={type:"component",componentType:r.ComponentEnum.legend,scale:this.getScaleId(o),dependency:[r.SIGNAL_VIEW_BOX],target:{data:this.getDataIdOfFiltered(),filter:null===(a=this.spec.encode)||void 0===a?void 0:a[o]},encode:{update:(t,r,o)=>{var a,s,n,d,c,u,p,h,v,y,f,g,m,k,x,S,M,b,w,P,O,E,I,_;const T="left"===e.position?{layout:"vertical",x:null!==(n=null===(s=null===(a=r.mark)||void 0===a?void 0:a.relativePosition)||void 0===s?void 0:s.left)&&void 0!==n?n:0,y:null!==(u=null===(c=null===(d=r.mark)||void 0===d?void 0:d.relativePosition)||void 0===c?void 0:c.top)&&void 0!==u?u:0}:"right"===e.position?{layout:"vertical",x:null!==(v=null===(h=null===(p=r.mark)||void 0===p?void 0:p.relativePosition)||void 0===h?void 0:h.left)&&void 0!==v?v:o.viewBox.width(),y:null!==(g=null===(f=null===(y=r.mark)||void 0===y?void 0:y.relativePosition)||void 0===f?void 0:f.top)&&void 0!==g?g:0}:"bottom"===e.position?{layout:"horizontal",x:null!==(x=null===(k=null===(m=r.mark)||void 0===m?void 0:m.relativePosition)||void 0===k?void 0:k.left)&&void 0!==x?x:0,y:null!==(b=null===(M=null===(S=r.mark)||void 0===S?void 0:S.relativePosition)||void 0===M?void 0:M.top)&&void 0!==b?b:o.viewBox.height()}:{layout:"horizontal",x:null!==(O=null===(P=null===(w=r.mark)||void 0===w?void 0:w.relativePosition)||void 0===P?void 0:P.left)&&void 0!==O?O:0,y:null!==(_=null===(I=null===(E=r.mark)||void 0===E?void 0:E.relativePosition)||void 0===I?void 0:I.top)&&void 0!==_?_:0};return i.isPlainObject(l)?Object.assign({},T,l):T}}};n.layout=e,t.push(n)}})),t}setDefaultCrosshair(){return{}}getVisualChannel(e){var t,i;return"polar"===(null===(t=this._coordinate)||void 0===t?void 0:t.type)?this._coordinate.transpose?"x"===e?"radius":"angle":"x"===e?"angle":"radius":(null===(i=this._coordinate)||void 0===i?void 0:i.transpose)?"x"===e?"y":"x":e}parseCrosshairSpec(){const e=this.setDefaultCrosshair(),t=Object.keys(e),o=this.spec.crosshair?Object.keys(this.spec.crosshair).reduce(((e,t)=>(e.includes(t)||e.push(t),e)),t):t,l=[];return o.length&&o.forEach((t=>{var o,s;const n=null===(o=this.spec.crosshair)||void 0===o?void 0:o[t],d=null!=n?n:e[t];if(d){const e=this.getScaleId(t),o=this.getScaleSpec(e),c={type:"component",componentType:r.ComponentEnum.crosshair,scale:this.getScaleId(t),dependency:[r.SIGNAL_VIEW_BOX],crosshairShape:i.isBoolean(d)?"band"===(null==o?void 0:o.type)?"rect":"line":null!==(s=d.crosshairShape)&&void 0!==s?s:"band"===(null==o?void 0:o.type)?"rect":"line",crosshairType:this.getVisualChannel(t)};if(i.isPlainObject(n)&&(c.encode={update:n},"polygon"===n.type)){c.crosshairType="radius-polygon";const e=this.getScaleId("x"===t?"y":"x");c.dependency.push(e),c.encode.update.sides=(t,i,r)=>{const o=r[e];return o&&a(o.type)?o.domain().length:void 0},c.encode.update.startAngle=(t,i,r)=>{var o,l;const s=r[e];return s&&a(s.type)?s.range()[0]+(null!==(l=null===(o=null==s?void 0:s.bandwidth)||void 0===o?void 0:o.call(s))&&void 0!==l?l:0)/2:void 0},c.encode.update.endAngle=(t,i,r)=>{var o,l;const s=r[e];return s&&a(s.type)?s.range()[1]+(null!==(l=null===(o=null==s?void 0:s.bandwidth)||void 0===o?void 0:o.call(s))&&void 0!==l?l:0)/2:void 0}}l.push(c)}})),l}setDefaultTooltip(){return null}parseTooltipSpec(){var e;const o=this.setDefaultTooltip(),a=this.spec.tooltip;if(!1!==a&&null!==a&&null!==o){const l=[],s=Object.assign({},o,!0===a?{}:a),n=i.isNil(this.spec.encode.color)?"group":"color",d=this.spec.encode[n],c=d?[this.getScaleId(n)]:[],u=d?t.field(d):null,p={visible:!!s.title||!!s.staticTitle,key:"title",value:i.isNil(s.staticTitle)?{field:(e,i,r)=>s.title&&(null==e?void 0:e.length)?t.field(s.title)(e[0]):void 0}:s.staticTitle},h=i.isArray(s.content)&&s.content.length?s.content.map(((e,o)=>({key:e.key?{field:e.key}:i.isNil(s.staticContentKey)?(e,t,i)=>u?u(e):void 0:i.isArray(s.staticContentKey)?s.staticContentKey[o]:s.staticContentKey,value:{field:e.value},symbol:(i,o,a)=>{var l;const s=a[this.getScaleId(n)];return{symbolType:e.symbol&&null!==(l=t.field(e.symbol)(i))&&void 0!==l?l:"circle",fill:s&&u?s.scale(u(i)):r.getPalette()[0]}}}))):null;return!0!==s.disableGraphicTooltip&&l.push({type:"component",componentType:r.ComponentEnum.tooltip,target:this.getMarkId(),dependency:c,title:p,content:h,zIndex:1e3}),!0!==s.disableDimensionTooltip&&l.push({type:"component",componentType:r.ComponentEnum.dimensionTooltip,tooltipType:this.getVisualChannel("x"),scale:this.getScaleId("x"),dependency:c,target:{data:this.getDataIdOfFiltered(),filter:null===(e=this.spec.encode)||void 0===e?void 0:e.x},title:p,content:h,avoidMark:s.disableGraphicTooltip?[]:[this.getMarkId()],zIndex:1e3}),l}return[]}setDefaultSlider(){return{}}parseSliderSpec(){const e=this.spec.slider,a=[];return e&&Object.keys(e).forEach((s=>{var n,d;const{option:c,layout:u}=this.parseOption(e[s]);if(c){const e=this.getScaleId(s),p=this.getScaleSpec(e),h=this.getDataIdOfMain();if(!p||!function(e){switch(e){case o.Linear:case o.Log:case o.Pow:case o.Sqrt:case o.Symlog:case o.Time:return!0;default:return!1}}(p.type))return void this._logger.warn(`[VGrammar]: Don't use slider in a channel which has scale type = ${null==p?void 0:p.type}`);const v=t.field(null===(n=this.spec.encode)||void 0===n?void 0:n[s]),y=null!=u?u:i.isPlainObject(c)&&!i.isNil(c.layout)?"horizontal"===c.layout?{position:"top",align:"center"}:"vertical"===c.layout?{position:"right",align:"middle"}:{position:"top",align:"center"}:{position:"top",align:"center"},f={type:"component",componentType:r.ComponentEnum.slider,dependency:[r.SIGNAL_VIEW_BOX,h],min:(e,t,i)=>{const r=i[h];return Math.min.apply(null,r.map(v))},max:(e,t,i)=>{const r=i[h];return Math.max.apply(null,r.map(v))},target:{data:this.getDataIdOfFiltered(),filter:null===(d=this.spec.encode)||void 0===d?void 0:d[s]},encode:{update:(e,t,r)=>{var o,a,s,n,d,u,p,h,v,f,g,m,k,x,S,M,b,w,P,O,E,I,_,T;const D="left"===y.position?{layout:"vertical",x:null!==(s=null===(a=null===(o=t.mark)||void 0===o?void 0:o.relativePosition)||void 0===a?void 0:a.left)&&void 0!==s?s:0,y:null!==(u=null===(d=null===(n=t.mark)||void 0===n?void 0:n.relativePosition)||void 0===d?void 0:d.top)&&void 0!==u?u:0,railWidth:l.slider.railHeight,railHeight:r.viewBox.height()}:"right"===y.position?{layout:"vertical",x:null!==(v=null===(h=null===(p=t.mark)||void 0===p?void 0:p.relativePosition)||void 0===h?void 0:h.left)&&void 0!==v?v:r.viewBox.width(),y:null!==(m=null===(g=null===(f=t.mark)||void 0===f?void 0:f.relativePosition)||void 0===g?void 0:g.top)&&void 0!==m?m:0,railWidth:l.slider.railHeight,railHeight:r.viewBox.height()}:"bottom"===y.position?{layout:"horizontal",x:null!==(S=null===(x=null===(k=t.mark)||void 0===k?void 0:k.relativePosition)||void 0===x?void 0:x.left)&&void 0!==S?S:0,y:null!==(w=null===(b=null===(M=t.mark)||void 0===M?void 0:M.relativePosition)||void 0===b?void 0:b.top)&&void 0!==w?w:r.viewBox.height(),railHeight:l.slider.railHeight,railWidth:r.viewBox.width()}:{layout:"horizontal",x:null!==(E=null===(O=null===(P=t.mark)||void 0===P?void 0:P.relativePosition)||void 0===O?void 0:O.left)&&void 0!==E?E:0,y:null!==(T=null===(_=null===(I=t.mark)||void 0===I?void 0:I.relativePosition)||void 0===_?void 0:_.top)&&void 0!==T?T:0,railHeight:l.slider.railHeight,railWidth:r.viewBox.width()};return i.isPlainObject(c)?Object.assign({},D,c):D}}};f.layout=y,a.push(f)}})),a}setDefaultDataZoom(){return{}}getVisiualPositionByDimension(e){return"y"===e?"left":"bottom"}parseDataZoomSpec(){const e=this.spec.datazoom,t=[];return e&&Object.keys(e).forEach((o=>{var a,s,n,d,c;const{option:u,layout:p}=this.parseOption(e[o]);if(u){const e=this.getDataIdOfMain(),h=null!=p?p:i.isPlainObject(u)&&!i.isNil(u.orient)?{position:u.orient}:{position:this.getVisiualPositionByDimension(o)},v={data:e},{x:y,y:f}=this.getDataZoomScaleId(o);"x"===o?(v.x={scale:y,field:null===(a=this.spec.encode)||void 0===a?void 0:a[o]},v.y={scale:f,field:null===(s=this.spec.encode)||void 0===s?void 0:s.y}):v["top"===h.position||"bottom"===h.position?"x":"y"]={scale:y,field:null!==(d=null===(n=this.spec.encode)||void 0===n?void 0:n[o])&&void 0!==d?d:o};const g={type:"component",componentType:r.ComponentEnum.datazoom,dependency:[r.SIGNAL_VIEW_BOX,e],target:{data:this.getDataIdOfFiltered(),filter:null===(c=this.spec.encode)||void 0===c?void 0:c[o]},preview:v,encode:{update:(e,t,r)=>{var o,a,s,n,d,c,p,v,y,f,g,m,k,x,S,M,b,w,P,O,E,I,_,T;const D="left"===h.position?{orient:h.position,x:null!==(s=null===(a=null===(o=t.mark)||void 0===o?void 0:o.relativePosition)||void 0===a?void 0:a.left)&&void 0!==s?s:0,y:null!==(c=null===(d=null===(n=t.mark)||void 0===n?void 0:n.relativePosition)||void 0===d?void 0:d.top)&&void 0!==c?c:0,size:{height:r.viewBox.height(),width:l.datazoom.size.height}}:"right"===h.position?{orient:h.position,x:null!==(y=null===(v=null===(p=t.mark)||void 0===p?void 0:p.relativePosition)||void 0===v?void 0:v.left)&&void 0!==y?y:r.viewBox.width(),y:null!==(m=null===(g=null===(f=t.mark)||void 0===f?void 0:f.relativePosition)||void 0===g?void 0:g.top)&&void 0!==m?m:0,size:{height:r.viewBox.height(),width:l.datazoom.size.height}}:"bottom"===h.position?{orient:h.position,x:null!==(S=null===(x=null===(k=t.mark)||void 0===k?void 0:k.relativePosition)||void 0===x?void 0:x.left)&&void 0!==S?S:0,y:null!==(w=null===(b=null===(M=t.mark)||void 0===M?void 0:M.relativePosition)||void 0===b?void 0:b.top)&&void 0!==w?w:r.viewBox.height(),size:{width:r.viewBox.width(),height:l.datazoom.size.height}}:{orient:h.position,x:null!==(E=null===(O=null===(P=t.mark)||void 0===P?void 0:P.relativePosition)||void 0===O?void 0:O.left)&&void 0!==E?E:0,y:null!==(T=null===(_=null===(I=t.mark)||void 0===I?void 0:I.relativePosition)||void 0===_?void 0:_.top)&&void 0!==T?T:0,size:{width:r.viewBox.width(),height:l.datazoom.size.height}};return i.isPlainObject(u)?Object.assign({},D,u):D}}};g.layout=h,t.push(g)}})),t}setDefaultLabel(){return{}}getLabelPosition(){var e,t;return"polar"===(null===(e=this._coordinate)||void 0===e?void 0:e.type)?this._coordinate.transpose?"endAngle":"outer":(null===(t=this._coordinate)||void 0===t?void 0:t.transpose)?"right":"top"}setLabelTextGetter(e,t){return null}parseLabelSpec(){const e=this.spec.label,t=[];return e&&Object.keys(e).forEach((o=>{const a=e[o];if(a){const e={type:"component",componentType:r.ComponentEnum.label,target:this.getMarkId(),layout:{position:"content",skipBeforeLayouted:!0},labelStyle:i.isPlainObject(a)?Object.assign({position:this.getLabelPosition()},a):{position:this.getLabelPosition()},encode:{update:{text:this.spec.encode[o]?{field:this.spec.encode[o]}:this.setLabelTextGetter(o,a)}}};t.push(e)}})),t}setDefaultPlayer(){return{}}parsePlayerSpec(){var e;const t=this.spec.player,o=[];if(t){const a=null==t?void 0:t.option,l=null==t?void 0:t.layout;if(a){const t=null!=l?l:i.isPlainObject(a)&&!i.isNil(a.orient)?{position:a.orient}:{position:"bottom"},s={type:"component",componentType:r.ComponentEnum.player,dependency:[r.SIGNAL_VIEW_BOX],target:{data:this.getDataIdOfMain(),source:this.getDataIdOfPlayer()},playerType:i.isPlainObject(a)&&null!==(e=a.type)&&void 0!==e?e:"auto",encode:{update:(e,r,o)=>{var l,s,n,d,c,u,p,h,v,y,f,g,m,k,x,S,M,b,w,P,O,E,I,_;const T="left"===t.position?{x:null!==(n=null===(s=null===(l=r.mark)||void 0===l?void 0:l.relativePosition)||void 0===s?void 0:s.left)&&void 0!==n?n:0,y:null!==(u=null===(c=null===(d=r.mark)||void 0===d?void 0:d.relativePosition)||void 0===c?void 0:c.top)&&void 0!==u?u:0,size:{height:o.viewBox.height(),width:20}}:"right"===t.position?{x:null!==(v=null===(h=null===(p=r.mark)||void 0===p?void 0:p.relativePosition)||void 0===h?void 0:h.left)&&void 0!==v?v:o.viewBox.width(),y:null!==(g=null===(f=null===(y=r.mark)||void 0===y?void 0:y.relativePosition)||void 0===f?void 0:f.top)&&void 0!==g?g:0,size:{height:o.viewBox.height(),width:20}}:"bottom"===t.position?{x:null!==(x=null===(k=null===(m=r.mark)||void 0===m?void 0:m.relativePosition)||void 0===k?void 0:k.left)&&void 0!==x?x:0,y:null!==(b=null===(M=null===(S=r.mark)||void 0===S?void 0:S.relativePosition)||void 0===M?void 0:M.top)&&void 0!==b?b:o.viewBox.height(),size:{width:o.viewBox.width(),height:20}}:{x:null!==(O=null===(P=null===(w=r.mark)||void 0===w?void 0:w.relativePosition)||void 0===P?void 0:P.left)&&void 0!==O?O:0,y:null!==(_=null===(I=null===(E=r.mark)||void 0===E?void 0:E.relativePosition)||void 0===I?void 0:I.top)&&void 0!==_?_:0,size:{width:o.viewBox.width(),height:20}};return i.isPlainObject(a)?Object.assign({},T,a):T}}};s.layout=t,o.push(s)}}return o}parseDataSpec(){var e;const{data:t,player:i}=this.spec,r=[];if(null==i?void 0:i.data)r.push({id:this.getDataIdOfPlayer(),values:i.data}),r.push({id:this.getDataIdOfMain(),values:null===(e=i.data)||void 0===e?void 0:e[0]}),r.push({id:this.getDataIdOfFiltered(),source:this.getDataIdOfMain()});else if(t){const e=this.getDataIdOfMain(),i=t.transform,o=this.convertMarkTransform(i,this.setDefaultDataTransform());r.push({id:e,values:t.values,transform:o}),r.push({id:this.getDataIdOfFiltered(),source:e})}const o=this.setMultipleData();return o&&o.forEach((e=>{e.id&&(e.id===this.getDataIdOfFiltered()&&r.length?r[r.length-1].transform=e.transform:r.push(e))})),r}parseScaleSpec(){const{encode:e,scale:t,datazoom:o}=this.spec,a={};return e&&Object.keys(e).forEach((t=>{var i;const r=e[t],o=this.getScaleId(t);a[o]=Object.assign({id:o},this.parseScaleByEncode(t,r),null===(i=this.spec.scale)||void 0===i?void 0:i[t])})),t&&Object.keys(t).forEach((e=>{const i=this.getScaleId(e);a[i]||(a[i]=t[e])})),o&&Object.keys(o).forEach((t=>{var s,n,d,c;const u=this.getScaleId(t),{x:p,y:h}=this.getDataZoomScaleId(t);"x"===t&&e[t]?(a[p]={type:a[u].type,id:p,domain:{data:this.getDataIdOfMain(),field:e[t]},dependency:[r.SIGNAL_VIEW_BOX],range:(e,t)=>[0,t.viewBox.width()]},e.y&&(a[h]={type:null!==(n=null===(s=a[this.getScaleId("y")])||void 0===s?void 0:s.type)&&void 0!==n?n:"linear",id:h,domain:{data:this.getDataIdOfMain(),field:null==e?void 0:e.y},range:(e,r)=>{var a,s;const n=this.parseOption(o[t]).option;return[0,i.isPlainObject(n)&&null!==(s=null===(a=n.size)||void 0===a?void 0:a.height)&&void 0!==s?s:l.datazoom.size.height]}})):a[p]={type:null!==(d=a[u].type)&&void 0!==d?d:"band",id:p,domain:{data:this.getDataIdOfMain(),field:null!==(c=null==e?void 0:e[t])&&void 0!==c?c:t}}})),Array.from(Object.values(a))}parseCoordinateSpec(){var e;if(!this._coordinate)return[];const i={type:null!==(e=this._coordinate.type)&&void 0!==e?e:"cartesian",transpose:this._coordinate.transpose,id:this._coordinate.id,dependency:[r.SIGNAL_VIEW_BOX],start:[0,0],end:(e,t)=>[t.viewBox.width(),t.viewBox.height()]};return"polar"===this._coordinate.type&&this._coordinate.origin&&(i.origin=(e,i)=>[t.toPercent(this._coordinate.origin[0],i.viewBox.width()),t.toPercent(this._coordinate.origin[1],i.viewBox.height())]),[i]}setMainMarkEnterEncode(){return this.spec.style}setMainMarkSpec(){return{}}setMultiMarksSpec(){return null}toViewSpec(){var e,t;this.viewSpec={};const i=this.getDataIdOfFiltered();this.viewSpec.data=this.parseDataSpec(),this.viewSpec.scales=this.parseScaleSpec(),this.viewSpec.coordinates=this.parseCoordinateSpec();let o=[];o=o.concat(this.parseLegendSpec()),o=o.concat(this.parseAxisSpec()),o=o.concat(this.parseCrosshairSpec()),o=o.concat(this.parseSliderSpec()),o=o.concat(this.parseDataZoomSpec()),o=o.concat(this.parsePlayerSpec()),o.push(Object.assign({id:this.getMarkId(),type:this.setMarkType(),coordinate:null===(e=this._coordinate)||void 0===e?void 0:e.id,from:{data:i},groupBy:null===(t=this.spec.encode)||void 0===t?void 0:t.group,layout:{position:"content",skipBeforeLayouted:!0},dependency:this.viewSpec.scales.map((e=>e.id)).concat(r.SIGNAL_VIEW_BOX),transform:this.convertMarkTransform(this.spec.transform,this.setDefaultMarkTransform()),animation:this.convertMarkAnimation(),encode:Object.assign({},this.spec.state,{enter:this.setMainMarkEnterEncode(),update:this.convertMarkEncode(this.spec.encode)})},this.setMainMarkSpec()));const a=this.setMultiMarksSpec();return a&&(o=o.concat(a)),o=o.concat(this.parseLabelSpec()),o=o.concat(this.parseTooltipSpec()),this.viewSpec.marks=o,this.viewSpec}clear(){this.spec={id:this.spec.id}}}var d;!function(e){e.area="area",e.cell="cell",e.image="image",e.interval="interval",e.line="line",e.path="path",e.polygon="polygon",e.rectX="rectX",e.rectY="rectY",e.rect="rect",e.ruleX="ruleX",e.ruleY="ruleY",e.rule="rule",e.symbol="symbol",e.text="text",e.tree="tree",e.circlePacking="circlePacking",e.sunburst="sunburst",e.treemap="treemap",e.sankey="sankey",e.wordcloud="wordcloud",e.wordcloudShape="wordcloudShape"}(d||(d={}));class c extends n{constructor(e){super(d.interval,e)}setMarkType(){var e;return"polar"===(null===(e=this._coordinate)||void 0===e?void 0:e.type)?r.GrammarMarkType.arc:r.GrammarMarkType.rect}parseScaleByEncode(e,t){return this.parseScaleOfCommonEncode(e,t)}setDefaultMarkTransform(){var e,t,i,r;return[{type:"dodge",minWidth:null===(e=this.spec.style)||void 0===e?void 0:e.minWidth,maxWidth:null===(t=this.spec.style)||void 0===t?void 0:t.maxWidth,innerGap:null===(i=this.spec.style)||void 0===i?void 0:i.innerGap,categoryGap:null===(r=this.spec.style)||void 0===r?void 0:r.categoryGap}]}setDefaultCrosshair(){return{x:{crosshairShape:"rect"}}}setDefaultTooltip(){var e;const t=null===(e=this.spec.encode)||void 0===e?void 0:e.y;return{content:i.isArray(t)?t.map((e=>({value:e}))):[{value:t}]}}setMainMarkSpec(){var e;return"polar"===(null===(e=this._coordinate)||void 0===e?void 0:e.type)?{attributeTransforms:[{channels:["x","y","x1","y1","cx","cy"],transform:(e,t,i)=>{e.x=i.cx,e.y=i.cy,this._coordinate.transpose?(e.startAngle=i.y,e.endAngle=i.y1,e.innerRadius=i.x,e.outerRadius=i.x1):(e.startAngle=i.x,e.endAngle=i.x1,e.innerRadius=i.y,e.outerRadius=i.y1)},storedAttrs:"sizeAttrs"}]}:{}}convertMarkEncode(e){var o,a,l,s,n;const d=this.convertSimpleMarkEncode(e),c=this.getScaleId("x"),u=this.getScaleId("y"),p=t.field(d.x.field),h={x:(e,t,i)=>{const r=i[c],o=r.bandwidth();return r.scale(p(e))+o/4},x1:(e,t,i)=>{const r=i[c],o=r.bandwidth();return r.scale(p(e))+3*o/4}};if(i.isArray(null===(o=d.y)||void 0===o?void 0:o.field))h.y={field:d.y.field[0],scale:d.y.scale},h.y1={field:d.y.field[1],scale:d.y.scale};else{const e=t.field(d.y.field);h.y=(t,r,o)=>{const a=e(t),l=o[u];return i.isArray(a)?l.scale(a[0]):l.scale(a)},h.y1=(t,r,o)=>{const a=o[u],l=e(t);if(i.isArray(l)&&l.length>1)return a.scale(l[1]);const s=a.domain(),n=Math.min.apply(null,s),d=Math.max.apply(null,s),c=n>0?n:d<0?d:0;return a.scale(c)}}return d.color||d.group?h.fill=null!==(a=d.color)&&void 0!==a?a:d.group:h.fill=null!==(s=null===(l=this.spec.style)||void 0===l?void 0:l.fill)&&void 0!==s?s:r.getPalette()[0],"polar"===(null===(n=this._coordinate)||void 0===n?void 0:n.type)&&(h.cx=(e,t,i)=>i[this._coordinate.id].origin().x,h.cy=(e,t,i)=>i[this._coordinate.id].origin().y),h}}c.type=d.interval;class u extends n{constructor(e){super(d.line,e)}setMarkType(){return r.GrammarMarkType.line}parseScaleOfEncodeX(e){const t=super.parseScaleOfEncodeX(e);return t.type="point",t}parseScaleByEncode(e,t){return this.parseScaleOfCommonEncode(e,t)}setDefaultCrosshair(){return{x:{crosshairShape:"line"}}}setDefaultTooltip(){var e,t;return{disableGraphicTooltip:!0,title:null===(e=this.spec.encode)||void 0===e?void 0:e.x,content:[{value:null===(t=this.spec.encode)||void 0===t?void 0:t.y}]}}convertMarkEncode(e){var t,i,o;const a=this.convertSimpleMarkEncode(e),l={y:a.y,x:a.x};return a.color||a.group?l.stroke=null!==(t=a.color)&&void 0!==t?t:a.group:l.stroke=null!==(o=null===(i=this.spec.style)||void 0===i?void 0:i.stroke)&&void 0!==o?o:r.getPalette()[0],l}}u.type=d.line;class p extends n{constructor(e){super(d.cell,e)}setMarkType(){return r.GrammarMarkType.cell}parseScaleOfEncodeX(e){const t=super.parseScaleOfEncodeX(e);return t.type="point",t}parseScaleByEncode(e,t){return this.parseScaleOfCommonEncode(e,t)}setDefaultCrosshair(){return{x:{crosshairShape:"line"}}}setDefaultTooltip(){var e,t;return{title:null===(e=this.spec.encode)||void 0===e?void 0:e.x,content:[{value:null===(t=this.spec.encode)||void 0===t?void 0:t.y}]}}convertMarkEncode(e){var t,i,o;const a=this.convertSimpleMarkEncode(e),l={y:a.y,x:a.x};return a.color||a.group?l.stroke=null!==(t=a.color)&&void 0!==t?t:a.group:l.stroke=null!==(o=null===(i=this.spec.style)||void 0===i?void 0:i.fill)&&void 0!==o?o:r.getPalette()[0],l}}p.type=d.cell;class h extends n{constructor(e){super(d.ruleX,e)}setMarkType(){return r.GrammarMarkType.rule}parseScaleOfEncodeX(e){const t=super.parseScaleOfEncodeX(e);return t.type="point",t}parseScaleByEncode(e,t){return this.parseScaleOfCommonEncode(e,t)}convertMarkEncode(e){var t,i,o;const a=this.convertSimpleMarkEncode(e),l={x:a.x,x1:a.x,y:(e,t,i)=>0,y1:(e,t,i)=>i.viewBox.height()};return a.color||a.group?l.stroke=null!==(t=a.color)&&void 0!==t?t:a.group:l.stroke=null!==(o=null===(i=this.spec.style)||void 0===i?void 0:i.stroke)&&void 0!==o?o:r.getPalette()[0],l}}h.type=d.ruleX;class v extends n{constructor(e){super(d.ruleX,e)}setMarkType(){return r.GrammarMarkType.rule}parseScaleOfEncodeX(e){const t=super.parseScaleOfEncodeX(e);return t.type="point",t}parseScaleByEncode(e,t){return this.parseScaleOfCommonEncode(e,t)}convertMarkEncode(e){var t,i,o;const a=this.convertSimpleMarkEncode(e),l={y:a.y,y1:a.y,x:(e,t,i)=>0,x1:(e,t,i)=>i.viewBox.width()};return a.color||a.group?l.stroke=null!==(t=a.color)&&void 0!==t?t:a.group:l.stroke=null!==(o=null===(i=this.spec.style)||void 0===i?void 0:i.stroke)&&void 0!==o?o:r.getPalette()[0],l}}v.type=d.ruleX;class y extends n{constructor(e){super(d.area,e)}setMarkType(){return r.GrammarMarkType.area}parseScaleOfEncodeX(e){const t=super.parseScaleOfEncodeX(e);return t.type="point",t}parseScaleByEncode(e,t){return this.parseScaleOfCommonEncode(e,t)}setDefaultCrosshair(){return{x:{crosshairShape:"line"}}}setDefaultTooltip(){var e,t;const r=null===(e=this.spec.encode)||void 0===e?void 0:e.x,o=null===(t=this.spec.encode)||void 0===t?void 0:t.y;return{disableGraphicTooltip:!0,title:i.isArray(r)?r[0]:r,content:i.isArray(o)?o.map((e=>({value:e}))):[{value:o}]}}convertMarkEncode(e){var t,o,a,l,s;const n=this.convertSimpleMarkEncode(e);let d;if(i.isArray(null===(t=n.x)||void 0===t?void 0:t.field))d={y:n.y,x:{field:n.x.field[0],scale:n.x.scale},x1:{field:n.x.field[1],scale:n.x.scale}};else if(i.isArray(null===(o=n.y)||void 0===o?void 0:o.field))d={y:{field:n.y.field[0],scale:n.y.scale},y1:{field:n.y.field[1],scale:n.y.scale},x:n.x};else{const e=this.getScaleId("y");d={x:n.x,y:n.y,y1:(t,i,r)=>{const o=r[e],a=o.domain(),l=Math.min.apply(null,a),s=Math.max.apply(null,a),n=l>0?l:s<0?s:0;return o.scale(n)}}}return n.color||n.group?d.fill=null!==(a=n.color)&&void 0!==a?a:n.group:d.fill=null!==(s=null===(l=this.spec.style)||void 0===l?void 0:l.fill)&&void 0!==s?s:r.getPalette()[0],d}}function f(e,t,i,r){return new(i||(i=Promise))((function(o,a){function l(e){try{n(r.next(e))}catch(e){a(e)}}function s(e){try{n(r.throw(e))}catch(e){a(e)}}function n(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(l,s)}n((r=r.apply(e,t||[])).next())}))}y.type=d.area,"function"==typeof SuppressedError&&SuppressedError;const g=(e,t)=>e.reduce(((e,t)=>(t.id&&!e.some((e=>e.id===t.id))&&e.push(t),e)),t);class m{static useMarks(e){e.forEach((e=>{r.Factory.registerPlotMarks(e.type,e)}))}constructor(e){this._view=new r.View(e),this._semanticMarks=[],this._logger=i.Logger.getInstance()}_mergeScales(e,t){return e.reduce(((e,t)=>{if(t.id){const r=e.find((e=>e.id===t.id));if(r){if(t.domain.data&&t.domain.field)if(r.domain.data&&r.domain.field)t.domain.data===r.domain.data&&t.domain.field!==r.domain.field?r.domain.field=[].concat(r.domain.field).concat(t.domain.field):t.domain.data!==r.domain.data&&(r.domain={datas:[{data:r.domain.data,field:r.domain.field},{data:t.domain.data,field:t.domain.field}],sort:r.domain.sort}),i.isNil(t.domain.sort)||(r.domain.sort=t.domain.sort);else if(r.domain.datas){const e=r.domain.datas.find((e=>e.data!==t.domain.data));e&&t.domain.field!==e.field?e.field=[].concat(e.field).concat(t.domain.field):e||r.domain.datas.push({data:t.domain.data,field:t.domain.field}),i.isNil(t.domain.sort)||(r.domain.sort=t.domain.sort)}}else e.push(t)}return e}),t)}parseViewSpec(){const e={data:[],marks:[],scales:[],coordinates:[],signals:[],projections:[],events:[]};return this._semanticMarks.forEach((t=>{this._coordinate&&t.coordinate(this._coordinate);const{data:i,marks:r,scales:o,coordinates:a,signals:l,projections:s,events:n}=t.toViewSpec();i&&i.length&&(e.data=g(i,e.data)),r&&r.length&&(e.marks=e.marks.concat(r)),o&&o.length&&(e.scales=this._mergeScales(o,e.scales)),a&&a.length&&(e.coordinates=g(a,e.coordinates)),l&&l.length&&(e.signals=e.signals.concat(l)),s&&s.length&&(e.projections=e.projections.concat(s)),n&&n.length&&(e.events=e.events.concat(n))})),e.marks=[{type:"group",layout:{display:"relative",updateViewSignals:!0},dependency:[r.SIGNAL_VIEW_BOX],encode:{update:(e,t,i)=>({x:i.viewBox.x1,y:i.viewBox.y1,width:i.viewBox.width(),height:i.viewBox.height()})},marks:e.marks}],e}run(e){return this._view&&(this._hasInited||this._view.parseSpec(this.parseViewSpec()),this._hasInited=!0,this._view.runSync(e)),this}runAsync(e){return f(this,void 0,void 0,(function*(){return this._view&&(this._hasInited||this._view.parseSpec(this.parseViewSpec()),this._hasInited=!0,yield this._view.runAsync(e)),this}))}release(){return this._view&&this._view.release(),this}updateSpec(e){return this.parseSpec(e,!0),this}parseSpec(e,t){var i;e.coordinate&&this.coordinate(e.coordinate.type,e.coordinate),(null===(i=null==e?void 0:e.marks)||void 0===i?void 0:i.length)&&e.marks.forEach((e=>{const t=r.Factory.createPlotMark(e.type);t.parseSpec(e),this._semanticMarks.push(t)}));const o=this.parseViewSpec();return o.width=e.width,o.height=e.height,o.background=e.background,o.padding=e.padding,t?this._view.updateSpec(o):this._view.parseSpec(o),this._hasInited=!0,this}getImageBuffer(){var e,t;return null===(t=null===(e=this._view)||void 0===e?void 0:e.getImageBuffer)||void 0===t?void 0:t.call(e)}on(e,t){return this._view&&this._view.addEventListener(e,t),this}off(e,t){return this._view&&this._view.removeEventListener(e,t),this}getCoordinateId(e="0"){return`coordinate-${e}`}coordinate(e,t){return this._coordinate=Object.assign({type:e,id:this.getCoordinateId()},t),this}interval(){const e=r.Factory.createPlotMark(d.interval);return e?this._semanticMarks.push(e):this._logger.error(`Please register ${d.interval} before use it`),e}line(){const e=r.Factory.createPlotMark(d.line);return e?this._semanticMarks.push(e):this._logger.error(`Please register ${d.line} before use it`),e}area(){const e=r.Factory.createPlotMark(d.area);return e?this._semanticMarks.push(e):this._logger.error(`Please register ${d.area} before use it`),e}cell(){const e=r.Factory.createPlotMark(d.cell);return e?this._semanticMarks.push(e):this._logger.error(`Please register ${d.cell} before use it`),e}ruleX(){const e=r.Factory.createPlotMark(d.ruleX);return e?this._semanticMarks.push(e):this._logger.error(`Please register ${this.ruleX} before use it`),e}ruleY(){const e=r.Factory.createPlotMark(d.ruleY);return e?this._semanticMarks.push(e):this._logger.error(`Please register ${d.ruleY} before use it`),e}image(){const e=r.Factory.createPlotMark(d.image);return e?this._semanticMarks.push(e):this._logger.error(`Please register ${d.image} before use it`),e}path(){const e=r.Factory.createPlotMark(d.path);return e?this._semanticMarks.push(e):this._logger.error(`Please register ${d.path} before use it`),e}polygon(){const e=r.Factory.createPlotMark(d.polygon);return e?this._semanticMarks.push(e):this._logger.error(`Please register ${d.polygon} before use it`),e}rectX(){const e=r.Factory.createPlotMark(d.rectX);return e?this._semanticMarks.push(e):this._logger.error(`Please register ${d.rectX} before use it`),e}rectY(){const e=r.Factory.createPlotMark(d.rectY);return e?this._semanticMarks.push(e):this._logger.error(`Please register ${d.rectY} before use it`),e}rect(){const e=r.Factory.createPlotMark(d.rect);return e?this._semanticMarks.push(e):this._logger.error(`Please register ${d.rect} before use it`),e}rule(){const e=r.Factory.createPlotMark(d.rule);return e?this._semanticMarks.push(e):this._logger.error(`Please register ${d.rule} before use it`),e}symbol(){const e=r.Factory.createPlotMark(d.symbol);return e?this._semanticMarks.push(e):this._logger.error(`Please register ${d.symbol} before use it`),e}text(){const e=r.Factory.createPlotMark(d.text);return e?this._semanticMarks.push(e):this._logger.error(`Please register ${d.text} before use it`),e}sankey(){const e=r.Factory.createPlotMark(d.sankey);return e?this._semanticMarks.push(e):this._logger.error(`Please register ${d.sankey} before use it`),e}sunburst(){const e=r.Factory.createPlotMark(d.sunburst);return e?this._semanticMarks.push(e):this._logger.error(`Please register ${d.sunburst} before use it`),e}tree(){const e=r.Factory.createPlotMark(d.tree);return e?this._semanticMarks.push(e):this._logger.error(`Please register ${d.tree} before use it`),e}treemap(){const e=r.Factory.createPlotMark(d.treemap);return e?this._semanticMarks.push(e):this._logger.error(`Please register ${d.treemap} before use it`),e}circlePacking(){const e=r.Factory.createPlotMark(d.circlePacking);return e?this._semanticMarks.push(e):this._logger.error(`Please register ${d.circlePacking} before use it`),e}wordcloud(){const e=r.Factory.createPlotMark(d.wordcloud);return e?this._semanticMarks.push(e):this._logger.error(`Please register ${d.wordcloud} before use it`),e}wordcloudShape(){const e=r.Factory.createPlotMark(d.wordcloudShape);return e?this._semanticMarks.push(e):this._logger.error(`Please register ${d.wordcloudShape} before use it`),e}}class k extends n{constructor(e){super(d.image,e)}setMarkType(){return r.GrammarMarkType.image}parseScaleOfEncodeX(e){const t=super.parseScaleOfEncodeX(e);return t.type="point",t}parseScaleByEncode(e,t){return"src"===e?{type:"ordinal",id:this.getScaleId("src"),domain:{data:this.getDataIdOfMain(),field:t}}:this.parseScaleOfCommonEncode(e,t)}convertMarkEncode(e){var o,a,l,s,n,d,c,u,p;const h=this.convertSimpleMarkEncode(e),v=this.getScaleId("x"),y=this.getScaleId("y"),f={image:h.src};if(h.src&&(f.image=h.src),i.isArray(null===(o=h.x)||void 0===o?void 0:o.field)){const e=t.field(h.x.field[0]),i=t.field(h.x.field[1]);f.x=(t,r,o)=>{const a=o[v];return Math.min(a.scale(e(t)),a.scale(i(t)))},f.width=(t,r,o)=>{const a=o[v];return Math.abs(a.scale(e(t))-a.scale(i(t)))}}else{const e=null!==(l=null===(a=this.spec.style)||void 0===a?void 0:a.width)&&void 0!==l?l:k.defaultSpec.width,i=t.field(h.x.field);f.x=(t,r,o)=>o[v].scale(i(t))-e/2,f.width=e}if(i.isArray(null===(s=h.y)||void 0===s?void 0:s.field)){const e=t.field(h.y.field[0]),i=t.field(h.y.field[1]);f.y=(t,r,o)=>{const a=o[y];return Math.min(a.scale(e(t)),a.scale(i(t)))},f.height=(t,r,o)=>{const a=o[y];return Math.abs(a.scale(e(t))-a.scale(i(t)))}}else{const e=null!==(d=null===(n=this.spec.style)||void 0===n?void 0:n.height)&&void 0!==d?d:k.defaultSpec.height,i=t.field(h.y.field);f.y=(t,r,o)=>o[v].scale(i(t))-e/2,f.height=e}return h.color||h.group?f.fill=null!==(c=h.color)&&void 0!==c?c:h.group:f.fill=null!==(p=null===(u=this.spec.style)||void 0===u?void 0:u.fill)&&void 0!==p?p:r.getPalette()[0],f}}k.type=d.image,k.defaultSpec={width:10,height:10};class x extends n{constructor(e){super(d.path,e)}setMarkType(){return r.GrammarMarkType.path}parseScaleByEncode(e,t){return null}convertMarkEncode(e){return null}}x.type=d.path;class S extends n{constructor(e){super(d.polygon,e)}setMarkType(){return r.GrammarMarkType.polygon}parseScaleOfEncodeX(e){const t=super.parseScaleOfEncodeX(e);return t.type="point",t}parseScaleByEncode(e,t){return this.parseScaleOfCommonEncode(e,t)}convertMarkEncode(e){var i,o,a,l,s,n,d;const c=this.convertSimpleMarkEncode(e),u=this.getScaleId("x"),p=this.getScaleId("y"),h={};if((null===(o=null===(i=c.x)||void 0===i?void 0:i.field)||void 0===o?void 0:o.length)&&(null===(l=null===(a=c.y)||void 0===a?void 0:a.field)||void 0===l?void 0:l.length)){const e=c.x.field.map((e=>t.field(e))),i=c.y.field.map((e=>t.field(e)));h.points=(t,r,o)=>{const a=o[u],l=o[p],s=Math.min(e.length,i.length),n=[];for(let r=0;r<s;r++)n.push({x:a.scale(e[r](t)),y:l.scale(i[r](t))});return n}}return c.color||c.group?h.fill=null!==(s=c.color)&&void 0!==s?s:c.group:h.fill=null!==(d=null===(n=this.spec.style)||void 0===n?void 0:n.fill)&&void 0!==d?d:r.getPalette()[0],h}}S.type=d.polygon;class M extends n{constructor(e){super(d.rectX,e)}setMarkType(){return r.GrammarMarkType.rect}parseScaleByEncode(e,t){return this.parseScaleOfCommonEncode(e,t)}setDefaultCrosshair(){return{x:{crosshairShape:"rect"}}}setDefaultTooltip(){var e;const t=null===(e=this.spec.encode)||void 0===e?void 0:e.x;return{content:i.isArray(t)?t.map((e=>({value:e}))):[{value:t}]}}convertMarkEncode(e){var o,a,l,s;const n=this.convertSimpleMarkEncode(e),d=this.getScaleId("x"),c={y:(e,t,i)=>0,y1:(e,t,i)=>i.viewBox.height()};if(i.isArray(null===(o=n.x)||void 0===o?void 0:o.field))c.x={field:n.x.field[0],scale:n.x.scale},c.x1={field:n.x.field[1],scale:n.x.scale};else{const e=t.field(n.x.field);c.x=(t,r,o)=>{const a=e(t),l=o[d];return i.isArray(a)?l.scale(a[0]):l.scale(a)},c.x1=(t,r,o)=>{const a=o[d],l=e(t);if(i.isArray(l)&&l.length>1)return a.scale(l[1]);const s=a.domain(),n=Math.min.apply(null,s),c=Math.max.apply(null,s),u=n>0?n:c<0?c:0;return a.scale(u)}}return n.color||n.group?c.fill=null!==(a=n.color)&&void 0!==a?a:n.group:c.fill=null!==(s=null===(l=this.spec.style)||void 0===l?void 0:l.fill)&&void 0!==s?s:r.getPalette()[0],c}}M.type=d.rectX;class b extends n{constructor(e){super(d.rectY,e)}setMarkType(){return r.GrammarMarkType.rect}parseScaleByEncode(e,t){return this.parseScaleOfCommonEncode(e,t)}setDefaultCrosshair(){return{x:{crosshairShape:"rect"}}}setDefaultTooltip(){var e;const t=null===(e=this.spec.encode)||void 0===e?void 0:e.y;return{content:i.isArray(t)?t.map((e=>({value:e}))):[{value:t}]}}convertMarkEncode(e){var o,a,l,s;const n=this.convertSimpleMarkEncode(e),d=this.getScaleId("y"),c={x:(e,t,i)=>0,x1:(e,t,i)=>i.viewBox.width()};if(i.isArray(null===(o=n.y)||void 0===o?void 0:o.field))c.y={field:n.y.field[0],scale:n.y.scale},c.y1={field:n.y.field[1],scale:n.y.scale};else{const e=t.field(n.y.field);c.y=(t,r,o)=>{const a=e(t),l=o[d];return i.isArray(a)?l.scale(a[0]):l.scale(a)},c.y1=(t,r,o)=>{const a=o[d],l=e(t);if(i.isArray(l)&&l.length>1)return a.scale(l[1]);const s=a.domain(),n=Math.min.apply(null,s),c=Math.max.apply(null,s),u=n>0?n:c<0?c:0;return a.scale(u)}}return n.color||n.group?c.fill=null!==(a=n.color)&&void 0!==a?a:n.group:c.fill=null!==(s=null===(l=this.spec.style)||void 0===l?void 0:l.fill)&&void 0!==s?s:r.getPalette()[0],c}}b.type=d.rectY;class w extends n{constructor(e){super(d.rect,e)}setMarkType(){return r.GrammarMarkType.rect}parseScaleByEncode(e,t){return this.parseScaleOfCommonEncode(e,t)}setDefaultCrosshair(){return{x:{crosshairShape:"rect"}}}setDefaultTooltip(){var e;const t=null===(e=this.spec.encode)||void 0===e?void 0:e.y;return{content:i.isArray(t)?t.map((e=>({value:e}))):[{value:t}]}}convertMarkEncode(e){var o,a,l,s,n;const d=this.convertSimpleMarkEncode(e),c=this.getScaleId("x"),u=this.getScaleId("y"),p={};if(i.isArray(null===(o=d.x)||void 0===o?void 0:o.field))p.x={field:d.x.field[0],scale:d.x.scale},p.x1={field:d.x.field[1],scale:d.x.scale};else{const e=t.field(d.x.field);p.x=(t,r,o)=>{const a=e(t),l=o[c];return i.isArray(a)?l.scale(a[0]):l.scale(a)},p.x1=(t,r,o)=>{const a=o[c],l=e(t);if(i.isArray(l)&&l.length>1)return a.scale(l[1]);const s=a.domain(),n=Math.min.apply(null,s),d=Math.max.apply(null,s),u=n>0?n:d<0?d:0;return a.scale(u)}}if(i.isArray(null===(a=d.y)||void 0===a?void 0:a.field))p.y={field:d.y.field[0],scale:d.y.scale},p.y1={field:d.y.field[1],scale:d.y.scale};else{const e=t.field(d.y.field);p.y=(t,r,o)=>{const a=e(t),l=o[u];return i.isArray(a)?l.scale(a[0]):l.scale(a)},p.y1=(t,r,o)=>{const a=o[u],l=e(t);if(i.isArray(l)&&l.length>1)return a.scale(l[1]);const s=a.domain(),n=Math.min.apply(null,s),d=Math.max.apply(null,s),c=n>0?n:d<0?d:0;return a.scale(c)}}return d.color||d.group?p.fill=null!==(l=d.color)&&void 0!==l?l:d.group:p.fill=null!==(n=null===(s=this.spec.style)||void 0===s?void 0:s.fill)&&void 0!==n?n:r.getPalette()[0],p}}w.type=d.rect;class P extends n{constructor(e){super(d.rule,e)}setMarkType(){return r.GrammarMarkType.rule}parseScaleOfEncodeX(e){const t=super.parseScaleOfEncodeX(e);return t.type="point",t}parseScaleByEncode(e,t){return this.parseScaleOfCommonEncode(e,t)}convertMarkEncode(e){var t,o,a,l,s;const n=this.convertSimpleMarkEncode(e);let d;return i.isArray(null===(t=n.x)||void 0===t?void 0:t.field)?(d.x={field:n.x.field[0],scale:n.x.scale},d.x1={field:n.x.field[1],scale:n.x.scale}):d.x=d.x1=n.x,i.isArray(null===(o=n.y)||void 0===o?void 0:o.field)?(d.y={field:n.y.field[0],scale:n.y.scale},d.y1={field:n.y.field[1],scale:n.y.scale}):d.y=d.y1=n.y,n.color||n.group?d.stroke=null!==(a=n.color)&&void 0!==a?a:n.group:d.stroke=null!==(s=null===(l=this.spec.style)||void 0===l?void 0:l.stroke)&&void 0!==s?s:r.getPalette()[0],d}}P.type=d.rule;class O extends n{constructor(e){super(d.symbol,e)}setMarkType(){return r.GrammarMarkType.symbol}parseScaleOfEncodeX(e){const t=super.parseScaleOfEncodeX(e);return t.type="point",t}parseScaleByEncode(e,t){return"size"===e?{type:"linear",id:this.getScaleId("size"),domain:{data:this.getDataIdOfFiltered(),field:t},range:[O.defaultSpec.size,O.defaultSpec.size]}:"shape"===e?{type:"ordinal",id:this.getScaleId("shape"),domain:{data:this.getDataIdOfMain(),field:t}}:this.parseScaleOfCommonEncode(e,t)}convertMarkEncode(e){var t,i,o;const a=this.convertSimpleMarkEncode(e),l={x:a.x,y:a.y};return a.shape&&(l.symbolType=a.shape),a.size&&(l.size=a.size),a.color||a.group?l.fill=null!==(t=a.color)&&void 0!==t?t:a.group:l.fill=null!==(o=null===(i=this.spec.style)||void 0===i?void 0:i.fill)&&void 0!==o?o:r.getPalette()[0],l}}O.defaultSpec={size:10},O.type=d.symbol;class E extends n{constructor(e){super(d.text,e)}setMarkType(){return r.GrammarMarkType.text}parseScaleOfEncodeX(e){const t=super.parseScaleOfEncodeX(e);return t.type="point",t}parseScaleByEncode(e,t){return this.parseScaleOfCommonEncode(e,t)}convertMarkEncode(e){var t,i,o;const a=this.convertSimpleMarkEncode(e),l=a;return a.color||a.group?l.fill=null!==(t=a.color)&&void 0!==t?t:a.group:l.fill=null!==(o=null===(i=this.spec.style)||void 0===i?void 0:i.fill)&&void 0!==o?o:r.getPalette()[0],l}}E.type=d.text;class I extends n{constructor(e){super(d.sankey,e),r.getTransform(d.sankey)||this._logger.error("Please add this line of code: import { registerSankeyTransforms } from '@visactor/vgrammar-sankey'; \n and run registerSankeyTransforms() before use sankey"),r.getGlyph("linkPath")||this._logger.error("\n Please add this line of code: import { registerLinkPathGlyph } from '@visactor/vgrammar';\n add run registerLinkPathGlyph() before use sankey\n ")}setMarkType(){return r.GrammarMarkType.rect}setDefaultDataTransform(){var e;return[{type:"sankey",width:{signal:"viewWidth"},height:{signal:"viewHeight"},nodeKey:null===(e=this.spec.encode)||void 0===e?void 0:e.node}]}getDataIdOfLink(){var e,t;return`${null!==(t=null===(e=this.spec.data)||void 0===e?void 0:e.id)&&void 0!==t?t:this.spec.id}-data-link`}setMultipleData(){return[{id:this.getDataIdOfFiltered(),transform:[{type:"map",all:!0,callback:e=>e[0].nodes}]},{source:this.getDataIdOfMain(),id:this.getDataIdOfLink(),transform:[{type:"map",all:!0,callback:e=>e[0].links}]}]}parseScaleByEncode(e,t){return"color"===e?{type:"ordinal",id:this.getScaleId("color"),domain:{data:this.getDataIdOfFiltered(),field:t},range:r.getPalette()}:null}convertMarkEncode(e){var i,o,a;const l=this.convertSimpleMarkEncode(e),s={x:{field:"x0"},x1:{field:"x1"},y:{field:"y0"},y1:{field:"y1"}};if(l.color){const e=this.getScaleId("color"),i=t.field(l.color.field);s.fill=(t,r,o)=>o[e].scale(i(null==t?void 0:t.datum))}else s.fill=null!==(a=null===(o=null===(i=this.spec.style)||void 0===i?void 0:i.nodeStyle)||void 0===o?void 0:o.fill)&&void 0!==a?a:r.getPalette()[0];return s}setMainMarkSpec(){return{key:"key"}}setLabelTextGetter(e,i){const r=t.field(e);return(e,t,i)=>r(e.datum)}setMultiMarksSpec(){var e;return[{id:`${this.getMarkId()}-link`,type:"glyph",glyphType:"linkPath",from:{data:this.getDataIdOfLink()},layout:{position:"content",skipBeforeLayouted:!0},key:"index",dependency:this.viewSpec.scales.map((e=>e.id)).concat(r.SIGNAL_VIEW_BOX),animation:this.convertMarkAnimation(),encode:Object.assign({},this.spec.state,{enter:Object.assign({backgroundStyle:{fillColor:"#ccc",fillOpacity:.2},fillOpacity:.8,round:!0},null===(e=this.spec.style)||void 0===e?void 0:e.linkStyle),update:(e,t,i)=>{var o,a,l;return{direction:e.vertical?"vertical":"horizontal",x0:e.x0,x1:e.x1,y0:e.y0,y1:e.y1,thickness:e.thickness,fill:null!==(l=null===(a=null===(o=this.spec.style)||void 0===o?void 0:o.linkStyle)||void 0===a?void 0:a.fill)&&void 0!==l?l:r.getPalette()[0]}}})}]}}I.type=d.sankey;class _ extends n{constructor(e){super(d.sunburst,e),r.getTransform("sunburst")||this._logger.error("Please add this line of code: import { registerSunburstTransforms } from 'vgrammar-hierarchy': \n and run registerSunburstTransforms() before use sunburst chart")}setMarkType(){return r.GrammarMarkType.arc}setDefaultDataTransform(){var e;return[{type:"sunburst",width:{signal:"viewWidth"},height:{signal:"viewHeight"},nodeKey:null===(e=this.spec.encode)||void 0===e?void 0:e.node,flatten:!0}]}getDataIdOfLabel(){var e,t;return`${null!==(t=null===(e=this.spec.data)||void 0===e?void 0:e.id)&&void 0!==t?t:this.spec.id}-data-link`}setMultipleData(){return this.spec.label?[{source:this.getDataIdOfFiltered(),id:this.getDataIdOfLabel(),transform:[{type:"filter",callback:e=>!!e.label}]}]:null}parseScaleByEncode(e,t){return"color"===e?{type:"ordinal",id:this.getScaleId("color"),domain:{data:this.getDataIdOfFiltered(),field:t},range:r.getPalette()}:null}convertMarkEncode(e){var i,o;const a=this.convertSimpleMarkEncode(e),l={x:{field:"x"},y:{field:"y"},innerRadius:{field:"innerRadius"},outerRadius:{field:"outerRadius"},startAngle:{field:"startAngle"},endAngle:{field:"endAngle"}};if(a.color){const e=this.getScaleId("color"),i=t.field(a.color.field);l.fill=(t,r,o)=>{const a=o[e];return(null==t?void 0:t.datum)?a.scale(i(t.datum[t.datum.length-1])):void 0}}else l.fill=null!==(o=null===(i=this.spec.style)||void 0===i?void 0:i.fill)&&void 0!==o?o:r.getPalette()[0];return l}setMainMarkEnterEncode(){var e;return null===(e=this.spec.style)||void 0===e?void 0:e.nodeStyle}setMainMarkSpec(){return{key:"key"}}parseLabelSpec(){return[]}setMultiMarksSpec(){const e=this.spec.label;return e?Object.keys(e).map((i=>{const o=t.field(i);return{id:`${this.getMarkId()}-text-${i}`,type:"text",from:{data:this.getDataIdOfLabel()},layout:{position:"content",skipBeforeLayouted:!0},key:"flattenIndex",dependency:this.viewSpec.scales.map((e=>e.id)).concat(r.SIGNAL_VIEW_BOX),animation:this.convertMarkAnimation(),encode:{enter:e[i].textStyle,update:(e,t,i)=>({x:e.label.x,y:e.label.y,textAlign:e.label.textAlign,textBaseline:e.label.textBaseline,text:o(e.datum[e.datum.length-1]),angle:e.label.angle,maxLineWidth:e.label.maxLineWidth})}}})):null}}_.type=d.sunburst;class T extends n{constructor(e){super(d.treemap,e),r.getTransform("treemap")||this._logger.error("Please add this line of code: import { registerTreemapTransforms } from 'vgrammar-hierarchy'; \n and run registerTreemapTransforms() before use treemap")}setMarkType(){return r.GrammarMarkType.rect}setDefaultDataTransform(){var e;return[{type:"treemap",width:{signal:"viewWidth"},height:{signal:"viewHeight"},nodeKey:null===(e=this.spec.encode)||void 0===e?void 0:e.node,flatten:!0}]}parseScaleByEncode(e,t){return"color"===e?{type:"ordinal",id:this.getScaleId("color"),domain:{data:this.getDataIdOfFiltered(),field:t},range:r.getPalette()}:null}convertMarkEncode(e){var i,o;const a=this.convertSimpleMarkEncode(e),l={x:{field:"x0"},x1:{field:"x1"},y:{field:"y0"},y1:{field:"y1"}};if(a.color){const e=this.getScaleId("color"),i=t.field(a.color.field);l.fill=(t,r,o)=>{const a=o[e];return(null==t?void 0:t.datum)?a.scale(i(t.datum[t.datum.length-1])):void 0}}else l.fill=null!==(o=null===(i=this.spec.style)||void 0===i?void 0:i.fill)&&void 0!==o?o:r.getPalette()[0];return l}setMainMarkSpec(){return{key:"key"}}parseLabelSpec(){return[]}setMultiMarksSpec(){const e=this.spec.label;return e?Object.keys(e).map((i=>{const o=t.field(i);return{id:`${this.getMarkId()}-text-${i}`,type:"text",from:{data:this.getDataIdOfFiltered()},layout:{position:"content",skipBeforeLayouted:!0},key:"flattenIndex",dependency:this.viewSpec.scales.map((e=>e.id)).concat(r.SIGNAL_VIEW_BOX),animation:this.convertMarkAnimation(),encode:{enter:Object.assign({textAlign:"center",textBaseline:"middle"},e[i].textStyle),update:(e,t,i)=>({x:e.labelRect?(e.labelRect.x0+e.labelRect.x1)/2:(e.x0+e.x1)/2,y:e.labelRect?(e.labelRect.y0+e.labelRect.y1)/2:(e.y0+e.y1)/2,text:o(e.datum[e.datum.length-1])})}}})):null}}T.type=d.treemap;class D extends n{constructor(e){super(d.circlePacking,e),r.getTransform(d.circlePacking)||this._logger.error("Please add this line of code: import { registerCirclePackingTransforms } from '@visactor/vgrammar-hierarchy'; \n and run registerCirclePackingTransforms() before use treemap chart")}setMarkType(){return r.GrammarMarkType.circle}setDefaultDataTransform(){var e;return[{type:d.circlePacking,width:{signal:"viewWidth"},height:{signal:"viewHeight"},nodeKey:null===(e=this.spec.encode)||void 0===e?void 0:e.node,flatten:!0}]}parseScaleByEncode(e,t){return"color"===e?{type:"ordinal",id:this.getScaleId("color"),domain:{data:this.getDataIdOfFiltered(),field:t},range:r.getPalette()}:null}convertMarkEncode(e){var i,o;const a=this.convertSimpleMarkEncode(e),l={x:{field:"x"},y:{field:"y"},radius:{field:"radius"}};if(a.color){const e=this.getScaleId("color"),i=t.field(a.color.field);l.fill=(t,r,o)=>{const a=o[e];return(null==t?void 0:t.datum)?a.scale(i(t.datum[t.datum.length-1])):void 0}}else l.fill=null!==(o=null===(i=this.spec.style)||void 0===i?void 0:i.fill)&&void 0!==o?o:r.getPalette()[0];return l}setMainMarkSpec(){return{key:"key"}}setLabelTextGetter(e,i){const r=t.field(e);return(e,t,i)=>r(e.datum[e.datum.length-1])}}D.type=d.circlePacking;class B extends n{constructor(e){super(d.tree,e),r.getTransform(d.tree)||this._logger.error("Please add this line of code: import { registerTreeTransforms } from 'vgrammar-hierarchy', \n and run registerTreeTransforms() before use tree"),r.getGlyph("treePath")||this._logger.error("Please add this line of code: import { registerTreePathGlyph } from '@visactor/vgrammar';\n and run registerTreePathGlyph() before use tree")}setMarkType(){return r.GrammarMarkType.symbol}setDefaultDataTransform(){var e;return[{type:"tree",width:{signal:"viewWidth"},height:{signal:"viewHeight"},nodeKey:null===(e=this.spec.encode)||void 0===e?void 0:e.node,flatten:!0}]}getDataIdOfLink(){var e,t;return`${null!==(t=null===(e=this.spec.data)||void 0===e?void 0:e.id)&&void 0!==t?t:this.spec.id}-data-link`}setMultipleData(){return[{id:this.getDataIdOfFiltered(),transform:[{type:"map",all:!0,callback:e=>e[0].nodes}]},{source:this.getDataIdOfMain(),id:this.getDataIdOfLink(),transform:[{type:"map",all:!0,callback:e=>e[0].links}]}]}parseScaleByEncode(e,t){return"color"===e?{type:"ordinal",id:this.getScaleId("color"),domain:{data:this.getDataIdOfFiltered(),field:t},range:r.getPalette()}:null}convertMarkEncode(e){var i,o;const a=this.convertSimpleMarkEncode(e),l={x:{field:"x"},y:{field:"y"}};if(a.color){const e=this.getScaleId("color"),i=t.field(a.color.field);l.fill=(t,r,o)=>{const a=o[e];return(null==t?void 0:t.datum)?a.scale(i(t.datum[t.datum.length-1])):void 0}}else l.fill=null!==(o=null===(i=this.spec.style)||void 0===i?void 0:i.fill)&&void 0!==o?o:r.getPalette()[0];return l}setLabelTextGetter(e,i){const r=t.field(e);return(e,t,i)=>r(e.datum[e.datum.length-1])}setMainMarkSpec(){return{key:"key"}}setMultiMarksSpec(){if(!this.spec.label)return null;const e=[];return e.push({type:"glyph",glyphType:"treePath",from:{data:this.getDataIdOfLink()},key:"key",zIndex:-1,encode:{update:{x0:{field:"x0"},x1:{field:"x1"},y0:{field:"y0"},y1:{field:"y1"},thickness:1,round:!0,stroke:"#333"}}}),e}}B.type=d.tree;class A extends n{constructor(e){super(d.wordcloud,e),r.getTransform(d.wordcloud)||this._logger.error("Please add this line of code:\n 'import { registerWordCloudTransforms } from '@visactor/vgrammar-wordcloud'; \n and run registerWordCloudTransforms() before use wordcloud")}setMarkType(){return r.GrammarMarkType.text}setDefaultMarkTransform(){var e;return[{type:"wordcloud",size:{callback:e=>[e.viewBox.width(),e.viewBox.height()],dependency:["viewBox"]},text:{field:null===(e=this.spec.encode)||void 0===e?void 0:e.text}}]}parseScaleByEncode(e,t){return"color"===e?{type:"ordinal",id:this.getScaleId("color"),domain:{data:this.getDataIdOfFiltered(),field:t},range:r.getPalette()}:null}convertMarkEncode(e){var i,o,a;const l=this.convertSimpleMarkEncode(e),s={x:{field:"x"},y:{field:"y"},angle:{field:"angle"},fontSize:{field:"fontSize"},fontStyle:{field:"fontStyle"},fontFamily:{field:"fontFamily"},fontWeight:{field:"fontWeight"},text:{field:null===(i=this.spec.encode)||void 0===i?void 0:i.text}};if(l.color){const e=this.getScaleId("color"),i=t.field(l.color.field);s.fill=(t,r,o)=>o[e].scale(i(t))}else s.fill=null!==(a=null===(o=this.spec.style)||void 0===o?void 0:o.fill)&&void 0!==a?a:r.getPalette()[0];return s}parseLabelSpec(){return[]}}A.type=d.wordcloud;class G extends n{constructor(e){super(d.wordcloudShape,e),r.getTransform(d.wordcloudShape)||this._logger.error("Please add this line of code:\n import { registerWordCloudShapeTransforms } from '@visactor/vgrammar-wordcloud-shape'; \n and run registerWordCloudShapeTransforms() before use wordcloud-shape")}setMarkType(){return r.GrammarMarkType.text}setDefaultDataTransform(){var e;return[{type:"wordcloudShape",size:{callback:e=>[e.viewBox.width(),e.viewBox.height()],dependency:["viewBox"]},colorList:r.getPalette(),text:{field:null===(e=this.spec.encode)||void 0===e?void 0:e.text}}]}parseScaleByEncode(e,t){return"color"===e?{type:"ordinal",id:this.getScaleId("color"),domain:{data:this.getDataIdOfFiltered(),field:t},range:r.getPalette()}:null}convertMarkEncode(e){var i,o,a;const l=this.convertSimpleMarkEncode(e),s={x:{field:"x"},y:{field:"y"},angle:{field:"angle"},fontSize:{field:"fontSize"},fontStyle:{field:"fontStyle"},fontFamily:{field:"fontFamily"},fontWeight:{field:"fontWeight"},fillOpacity:{field:"opacity"},text:{field:null===(i=this.spec.encode)||void 0===i?void 0:i.text}};if(l.color){const e=this.getScaleId("color"),i=t.field(l.color.field);s.fill=(t,r,o)=>o[e].scale(i(t))}else s.fill=null!==(a=null===(o=this.spec.style)||void 0===o?void 0:o.fill)&&void 0!==a?a:r.getPalette()[0];return s}parseLabelSpec(){return[]}}G.type=d.wordcloudShape,m.useMarks([c,u,p,h,v,y,k,x,S,w,M,b,P,O,E,I,_,T,D,B,A,G]),e.Plot=m}));
|
package/es/area.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { AreaEncodeChannels, SemanticTooltipOption, WithDefaultEncode, PlotAreaEncoderSpec, GenerateBaseEncodeSpec, Nil, ScaleSpec, ValueOf, CrosshairSpec } from '@visactor/vgrammar';
|
|
2
|
+
import { SemanticMark } from './semantic-mark';
|
|
3
|
+
import { GrammarMarkType } from '@visactor/vgrammar';
|
|
4
|
+
import { PlotMakType } from './enums';
|
|
5
|
+
export declare class Area extends SemanticMark<PlotAreaEncoderSpec, AreaEncodeChannels> {
|
|
6
|
+
static readonly type = PlotMakType.area;
|
|
7
|
+
constructor(id?: string | number);
|
|
8
|
+
setMarkType(): GrammarMarkType;
|
|
9
|
+
protected parseScaleOfEncodeX(option: ValueOf<WithDefaultEncode<PlotAreaEncoderSpec, AreaEncodeChannels>, AreaEncodeChannels>): ScaleSpec | Nil;
|
|
10
|
+
parseScaleByEncode(channel: AreaEncodeChannels, option: ValueOf<WithDefaultEncode<PlotAreaEncoderSpec, AreaEncodeChannels>, AreaEncodeChannels>): ScaleSpec | Nil;
|
|
11
|
+
setDefaultCrosshair(): Record<string, Pick<CrosshairSpec, 'crosshairShape' | 'crosshairType'>>;
|
|
12
|
+
setDefaultTooltip(): SemanticTooltipOption | Nil;
|
|
13
|
+
convertMarkEncode(encode: WithDefaultEncode<PlotAreaEncoderSpec, AreaEncodeChannels>): GenerateBaseEncodeSpec<PlotAreaEncoderSpec>;
|
|
14
|
+
}
|
package/es/area.js
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { SemanticMark } from "./semantic-mark";
|
|
2
|
+
|
|
3
|
+
import { getPalette, GrammarMarkType } from "@visactor/vgrammar";
|
|
4
|
+
|
|
5
|
+
import { isArray } from "@visactor/vutils";
|
|
6
|
+
|
|
7
|
+
import { PlotMakType } from "./enums";
|
|
8
|
+
|
|
9
|
+
export class Area extends SemanticMark {
|
|
10
|
+
constructor(id) {
|
|
11
|
+
super(PlotMakType.area, id);
|
|
12
|
+
}
|
|
13
|
+
setMarkType() {
|
|
14
|
+
return GrammarMarkType.area;
|
|
15
|
+
}
|
|
16
|
+
parseScaleOfEncodeX(option) {
|
|
17
|
+
const res = super.parseScaleOfEncodeX(option);
|
|
18
|
+
return res.type = "point", res;
|
|
19
|
+
}
|
|
20
|
+
parseScaleByEncode(channel, option) {
|
|
21
|
+
return this.parseScaleOfCommonEncode(channel, option);
|
|
22
|
+
}
|
|
23
|
+
setDefaultCrosshair() {
|
|
24
|
+
return {
|
|
25
|
+
x: {
|
|
26
|
+
crosshairShape: "line"
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
setDefaultTooltip() {
|
|
31
|
+
var _a, _b;
|
|
32
|
+
const encodeX = null === (_a = this.spec.encode) || void 0 === _a ? void 0 : _a.x, encodeY = null === (_b = this.spec.encode) || void 0 === _b ? void 0 : _b.y;
|
|
33
|
+
return {
|
|
34
|
+
disableGraphicTooltip: !0,
|
|
35
|
+
title: isArray(encodeX) ? encodeX[0] : encodeX,
|
|
36
|
+
content: isArray(encodeY) ? encodeY.map((entry => ({
|
|
37
|
+
value: entry
|
|
38
|
+
}))) : [ {
|
|
39
|
+
value: encodeY
|
|
40
|
+
} ]
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
convertMarkEncode(encode) {
|
|
44
|
+
var _a, _b, _c, _d, _e;
|
|
45
|
+
const markEncoder = this.convertSimpleMarkEncode(encode);
|
|
46
|
+
let res;
|
|
47
|
+
if (isArray(null === (_a = markEncoder.x) || void 0 === _a ? void 0 : _a.field)) res = {
|
|
48
|
+
y: markEncoder.y,
|
|
49
|
+
x: {
|
|
50
|
+
field: markEncoder.x.field[0],
|
|
51
|
+
scale: markEncoder.x.scale
|
|
52
|
+
},
|
|
53
|
+
x1: {
|
|
54
|
+
field: markEncoder.x.field[1],
|
|
55
|
+
scale: markEncoder.x.scale
|
|
56
|
+
}
|
|
57
|
+
}; else if (isArray(null === (_b = markEncoder.y) || void 0 === _b ? void 0 : _b.field)) res = {
|
|
58
|
+
y: {
|
|
59
|
+
field: markEncoder.y.field[0],
|
|
60
|
+
scale: markEncoder.y.scale
|
|
61
|
+
},
|
|
62
|
+
y1: {
|
|
63
|
+
field: markEncoder.y.field[1],
|
|
64
|
+
scale: markEncoder.y.scale
|
|
65
|
+
},
|
|
66
|
+
x: markEncoder.x
|
|
67
|
+
}; else {
|
|
68
|
+
const scaleYId = this.getScaleId("y");
|
|
69
|
+
res = {
|
|
70
|
+
x: markEncoder.x,
|
|
71
|
+
y: markEncoder.y,
|
|
72
|
+
y1: (datum, el, params) => {
|
|
73
|
+
const scale = params[scaleYId], domain = scale.domain(), min = Math.min.apply(null, domain), max = Math.max.apply(null, domain), baseValue = min > 0 ? min : max < 0 ? max : 0;
|
|
74
|
+
return scale.scale(baseValue);
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
return markEncoder.color || markEncoder.group ? res.fill = null !== (_c = markEncoder.color) && void 0 !== _c ? _c : markEncoder.group : res.fill = null !== (_e = null === (_d = this.spec.style) || void 0 === _d ? void 0 : _d.fill) && void 0 !== _e ? _e : getPalette()[0],
|
|
79
|
+
res;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
Area.type = PlotMakType.area;
|
package/es/area.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/area.ts"],"names":[],"mappings":"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","file":"area.js","sourcesContent":["import type {\n AreaEncodeChannels,\n SemanticTooltipOption,\n WithDefaultEncode,\n PlotAreaEncoderSpec,\n GenerateBaseEncodeSpec,\n GenerateEncoderSpec,\n Nil,\n ScaleSpec,\n ValueOf,\n IElement,\n CrosshairSpec\n} from '@visactor/vgrammar';\nimport { SemanticMark } from './semantic-mark';\nimport { getPalette, GrammarMarkType } from '@visactor/vgrammar';\nimport { isArray } from '@visactor/vutils';\nimport { PlotMakType } from './enums';\n\nexport class Area extends SemanticMark<PlotAreaEncoderSpec, AreaEncodeChannels> {\n static readonly type = PlotMakType.area;\n constructor(id?: string | number) {\n super(PlotMakType.area, id);\n }\n\n setMarkType() {\n return GrammarMarkType.area;\n }\n\n protected parseScaleOfEncodeX(\n option: ValueOf<WithDefaultEncode<PlotAreaEncoderSpec, AreaEncodeChannels>, AreaEncodeChannels>\n ): ScaleSpec | Nil {\n const res = super.parseScaleOfEncodeX(option);\n\n res.type = 'point';\n return res;\n }\n\n parseScaleByEncode(\n channel: AreaEncodeChannels,\n option: ValueOf<WithDefaultEncode<PlotAreaEncoderSpec, AreaEncodeChannels>, AreaEncodeChannels>\n ): ScaleSpec | Nil {\n return this.parseScaleOfCommonEncode(channel, option);\n }\n\n setDefaultCrosshair(): Record<string, Pick<CrosshairSpec, 'crosshairShape' | 'crosshairType'>> {\n return {\n x: { crosshairShape: 'line' }\n };\n }\n\n setDefaultTooltip(): SemanticTooltipOption | Nil {\n const encodeX = this.spec.encode?.x;\n const encodeY = this.spec.encode?.y;\n return {\n disableGraphicTooltip: true,\n title: isArray(encodeX) ? encodeX[0] : encodeX,\n content: isArray(encodeY)\n ? encodeY.map(entry => {\n return {\n value: entry\n };\n })\n : [\n {\n value: encodeY\n }\n ]\n };\n }\n\n convertMarkEncode(\n encode: WithDefaultEncode<PlotAreaEncoderSpec, AreaEncodeChannels>\n ): GenerateBaseEncodeSpec<PlotAreaEncoderSpec> {\n const markEncoder = this.convertSimpleMarkEncode(encode);\n\n let res: GenerateEncoderSpec<PlotAreaEncoderSpec>;\n\n if (isArray(markEncoder.x?.field)) {\n res = {\n y: markEncoder.y,\n x: { field: markEncoder.x.field[0], scale: markEncoder.x.scale },\n x1: { field: markEncoder.x.field[1], scale: markEncoder.x.scale }\n } as GenerateEncoderSpec<PlotAreaEncoderSpec>;\n } else if (isArray(markEncoder.y?.field)) {\n res = {\n y: { field: markEncoder.y.field[0], scale: markEncoder.y.scale },\n y1: { field: markEncoder.y.field[1], scale: markEncoder.y.scale },\n x: markEncoder.x\n } as GenerateEncoderSpec<PlotAreaEncoderSpec>;\n } else {\n const scaleYId = this.getScaleId('y');\n res = {\n x: markEncoder.x,\n y: markEncoder.y,\n y1: (datum: any, el: IElement, params: any) => {\n const scale = params[scaleYId];\n const domain = scale.domain();\n const min = Math.min.apply(null, domain);\n const max = Math.max.apply(null, domain);\n const baseValue = min > 0 ? min : max < 0 ? max : 0;\n\n return scale.scale(baseValue);\n }\n } as GenerateEncoderSpec<PlotAreaEncoderSpec>;\n }\n\n if (markEncoder.color || markEncoder.group) {\n res.fill = markEncoder.color ?? markEncoder.group;\n } else {\n res.fill = this.spec.style?.fill ?? getPalette()[0];\n }\n\n return res;\n }\n}\n"]}
|
package/es/cell.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { BasicEncoderSpecMap, GenerateBaseEncodeSpec, Nil, ScaleSpec, ValueOf, CrosshairSpec, CellEncodeChannels, SemanticTooltipOption, WithDefaultEncode } from '@visactor/vgrammar';
|
|
2
|
+
import { SemanticMark } from './semantic-mark';
|
|
3
|
+
import { GrammarMarkType } from '@visactor/vgrammar';
|
|
4
|
+
import { PlotMakType } from './enums';
|
|
5
|
+
export declare class Cell extends SemanticMark<BasicEncoderSpecMap['cell'], CellEncodeChannels> {
|
|
6
|
+
static readonly type = PlotMakType.cell;
|
|
7
|
+
constructor(id?: string | number);
|
|
8
|
+
setMarkType(): GrammarMarkType;
|
|
9
|
+
protected parseScaleOfEncodeX(option: ValueOf<WithDefaultEncode<BasicEncoderSpecMap['cell'], CellEncodeChannels>, CellEncodeChannels>): ScaleSpec | Nil;
|
|
10
|
+
parseScaleByEncode(channel: CellEncodeChannels, option: ValueOf<WithDefaultEncode<BasicEncoderSpecMap['cell'], CellEncodeChannels>, CellEncodeChannels>): ScaleSpec | Nil;
|
|
11
|
+
setDefaultCrosshair(): Record<string, Pick<CrosshairSpec, 'crosshairShape' | 'crosshairType'>>;
|
|
12
|
+
setDefaultTooltip(): SemanticTooltipOption | Nil;
|
|
13
|
+
convertMarkEncode(encode: WithDefaultEncode<BasicEncoderSpecMap['cell'], CellEncodeChannels>): GenerateBaseEncodeSpec<BasicEncoderSpecMap['cell']>;
|
|
14
|
+
}
|
package/es/cell.js
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { SemanticMark } from "./semantic-mark";
|
|
2
|
+
|
|
3
|
+
import { getPalette, GrammarMarkType } from "@visactor/vgrammar";
|
|
4
|
+
|
|
5
|
+
import { PlotMakType } from "./enums";
|
|
6
|
+
|
|
7
|
+
export class Cell extends SemanticMark {
|
|
8
|
+
constructor(id) {
|
|
9
|
+
super(PlotMakType.cell, id);
|
|
10
|
+
}
|
|
11
|
+
setMarkType() {
|
|
12
|
+
return GrammarMarkType.cell;
|
|
13
|
+
}
|
|
14
|
+
parseScaleOfEncodeX(option) {
|
|
15
|
+
const res = super.parseScaleOfEncodeX(option);
|
|
16
|
+
return res.type = "point", res;
|
|
17
|
+
}
|
|
18
|
+
parseScaleByEncode(channel, option) {
|
|
19
|
+
return this.parseScaleOfCommonEncode(channel, option);
|
|
20
|
+
}
|
|
21
|
+
setDefaultCrosshair() {
|
|
22
|
+
return {
|
|
23
|
+
x: {
|
|
24
|
+
crosshairShape: "line"
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
setDefaultTooltip() {
|
|
29
|
+
var _a, _b;
|
|
30
|
+
return {
|
|
31
|
+
title: null === (_a = this.spec.encode) || void 0 === _a ? void 0 : _a.x,
|
|
32
|
+
content: [ {
|
|
33
|
+
value: null === (_b = this.spec.encode) || void 0 === _b ? void 0 : _b.y
|
|
34
|
+
} ]
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
convertMarkEncode(encode) {
|
|
38
|
+
var _a, _b, _c;
|
|
39
|
+
const markEncoder = this.convertSimpleMarkEncode(encode), res = {
|
|
40
|
+
y: markEncoder.y,
|
|
41
|
+
x: markEncoder.x
|
|
42
|
+
};
|
|
43
|
+
return markEncoder.color || markEncoder.group ? res.stroke = null !== (_a = markEncoder.color) && void 0 !== _a ? _a : markEncoder.group : res.stroke = null !== (_c = null === (_b = this.spec.style) || void 0 === _b ? void 0 : _b.fill) && void 0 !== _c ? _c : getPalette()[0],
|
|
44
|
+
res;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
Cell.type = PlotMakType.cell;
|
|
49
|
+
//# sourceMappingURL=cell.js.map
|
package/es/cell.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cell.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,MAAM,OAAO,IAAK,SAAQ,YAA6D;IAErF,YAAY,EAAoB;QAC9B,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,WAAW;QACT,OAAO,eAAe,CAAC,IAAI,CAAC;IAC9B,CAAC;IAES,mBAAmB,CAC3B,MAAuG;QAEvG,MAAM,GAAG,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAE9C,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC;QACnB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,kBAAkB,CAChB,OAA2B,EAC3B,MAAuG;QAEvG,OAAO,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAED,mBAAmB;QACjB,OAAO;YACL,CAAC,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE;SAC9B,CAAC;IACJ,CAAC;IAED,iBAAiB;;QACf,OAAO;YACL,KAAK,EAAE,MAAA,IAAI,CAAC,IAAI,CAAC,MAAM,0CAAE,CAAC;YAC1B,OAAO,EAAE;gBACP;oBACE,KAAK,EAAE,MAAA,IAAI,CAAC,IAAI,CAAC,MAAM,0CAAE,CAAC;iBAC3B;aACF;SACF,CAAC;IACJ,CAAC;IAED,iBAAiB,CACf,MAA0E;;QAE1E,MAAM,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAEzD,MAAM,GAAG,GAAG;YACV,CAAC,EAAE,WAAW,CAAC,CAAC;YAChB,CAAC,EAAE,WAAW,CAAC,CAAC;SACmC,CAAC;QAEtD,IAAI,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,KAAK,EAAE;YAC1C,GAAG,CAAC,MAAM,GAAG,MAAA,WAAW,CAAC,KAAK,mCAAI,WAAW,CAAC,KAAK,CAAC;SACrD;aAAM;YACL,GAAG,CAAC,MAAM,GAAG,MAAA,MAAA,IAAI,CAAC,IAAI,CAAC,KAAK,0CAAE,IAAI,mCAAI,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;SACvD;QAED,OAAO,GAAG,CAAC;IACb,CAAC;;AA3De,SAAI,GAAG,WAAW,CAAC,IAAI,CAAC","file":"cell.js","sourcesContent":["import type {\n BasicEncoderSpecMap,\n GenerateBaseEncodeSpec,\n GenerateEncoderSpec,\n Nil,\n ScaleSpec,\n ValueOf,\n CrosshairSpec,\n CellEncodeChannels,\n SemanticTooltipOption,\n WithDefaultEncode\n} from '@visactor/vgrammar';\nimport { SemanticMark } from './semantic-mark';\nimport { getPalette, GrammarMarkType } from '@visactor/vgrammar';\nimport { PlotMakType } from './enums';\n\nexport class Cell extends SemanticMark<BasicEncoderSpecMap['cell'], CellEncodeChannels> {\n static readonly type = PlotMakType.cell;\n constructor(id?: string | number) {\n super(PlotMakType.cell, id);\n }\n\n setMarkType() {\n return GrammarMarkType.cell;\n }\n\n protected parseScaleOfEncodeX(\n option: ValueOf<WithDefaultEncode<BasicEncoderSpecMap['cell'], CellEncodeChannels>, CellEncodeChannels>\n ): ScaleSpec | Nil {\n const res = super.parseScaleOfEncodeX(option);\n\n res.type = 'point';\n return res;\n }\n\n parseScaleByEncode(\n channel: CellEncodeChannels,\n option: ValueOf<WithDefaultEncode<BasicEncoderSpecMap['cell'], CellEncodeChannels>, CellEncodeChannels>\n ): ScaleSpec | Nil {\n return this.parseScaleOfCommonEncode(channel, option);\n }\n\n setDefaultCrosshair(): Record<string, Pick<CrosshairSpec, 'crosshairShape' | 'crosshairType'>> {\n return {\n x: { crosshairShape: 'line' }\n };\n }\n\n setDefaultTooltip(): SemanticTooltipOption | Nil {\n return {\n title: this.spec.encode?.x,\n content: [\n {\n value: this.spec.encode?.y\n }\n ]\n };\n }\n\n convertMarkEncode(\n encode: WithDefaultEncode<BasicEncoderSpecMap['cell'], CellEncodeChannels>\n ): GenerateBaseEncodeSpec<BasicEncoderSpecMap['cell']> {\n const markEncoder = this.convertSimpleMarkEncode(encode);\n\n const res = {\n y: markEncoder.y,\n x: markEncoder.x\n } as GenerateEncoderSpec<BasicEncoderSpecMap['cell']>;\n\n if (markEncoder.color || markEncoder.group) {\n res.stroke = markEncoder.color ?? markEncoder.group;\n } else {\n res.stroke = this.spec.style?.fill ?? getPalette()[0];\n }\n\n return res;\n }\n}\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { GenerateBaseEncodeSpec, Nil, ScaleSpec, ValueOf, TransformSpec, ChannelEncodeType, CirclepackingEncodeChannels, WithDefaultEncode, PlotCirclePackingEncodeSpec, SemanticLabelOption } from '@visactor/vgrammar';
|
|
2
|
+
import { SemanticMark } from './semantic-mark';
|
|
3
|
+
import { GrammarMarkType } from '@visactor/vgrammar';
|
|
4
|
+
import { PlotMakType } from './enums';
|
|
5
|
+
import type { ITextAttribute } from '@visactor/vrender';
|
|
6
|
+
export declare class CirclePackingSemanticMark extends SemanticMark<PlotCirclePackingEncodeSpec, CirclepackingEncodeChannels> {
|
|
7
|
+
static readonly type = PlotMakType.circlePacking;
|
|
8
|
+
constructor(id?: string | number);
|
|
9
|
+
setMarkType(): GrammarMarkType;
|
|
10
|
+
setDefaultDataTransform(): TransformSpec[];
|
|
11
|
+
parseScaleByEncode(channel: CirclepackingEncodeChannels, option: ValueOf<WithDefaultEncode<PlotCirclePackingEncodeSpec, CirclepackingEncodeChannels>, CirclepackingEncodeChannels>): ScaleSpec | Nil;
|
|
12
|
+
convertMarkEncode(encode: WithDefaultEncode<PlotCirclePackingEncodeSpec, CirclepackingEncodeChannels>): GenerateBaseEncodeSpec<PlotCirclePackingEncodeSpec>;
|
|
13
|
+
setMainMarkSpec(): {
|
|
14
|
+
key: string;
|
|
15
|
+
};
|
|
16
|
+
protected setLabelTextGetter(channel: string, option: SemanticLabelOption | boolean): ChannelEncodeType<ITextAttribute['text']>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { SemanticMark } from "./semantic-mark";
|
|
2
|
+
|
|
3
|
+
import { getPalette, GrammarMarkType, getTransform } from "@visactor/vgrammar";
|
|
4
|
+
|
|
5
|
+
import { PlotMakType } from "./enums";
|
|
6
|
+
|
|
7
|
+
import { field as getFieldAccessor } from "@visactor/vgrammar-util";
|
|
8
|
+
|
|
9
|
+
export class CirclePackingSemanticMark extends SemanticMark {
|
|
10
|
+
constructor(id) {
|
|
11
|
+
super(PlotMakType.circlePacking, id), getTransform(PlotMakType.circlePacking) || this._logger.error("Please add this line of code: import { registerCirclePackingTransforms } from '@visactor/vgrammar-hierarchy'; \n and run registerCirclePackingTransforms() before use treemap chart");
|
|
12
|
+
}
|
|
13
|
+
setMarkType() {
|
|
14
|
+
return GrammarMarkType.circle;
|
|
15
|
+
}
|
|
16
|
+
setDefaultDataTransform() {
|
|
17
|
+
var _a;
|
|
18
|
+
return [ {
|
|
19
|
+
type: PlotMakType.circlePacking,
|
|
20
|
+
width: {
|
|
21
|
+
signal: "viewWidth"
|
|
22
|
+
},
|
|
23
|
+
height: {
|
|
24
|
+
signal: "viewHeight"
|
|
25
|
+
},
|
|
26
|
+
nodeKey: null === (_a = this.spec.encode) || void 0 === _a ? void 0 : _a.node,
|
|
27
|
+
flatten: !0
|
|
28
|
+
} ];
|
|
29
|
+
}
|
|
30
|
+
parseScaleByEncode(channel, option) {
|
|
31
|
+
return "color" === channel ? {
|
|
32
|
+
type: "ordinal",
|
|
33
|
+
id: this.getScaleId("color"),
|
|
34
|
+
domain: {
|
|
35
|
+
data: this.getDataIdOfFiltered(),
|
|
36
|
+
field: option
|
|
37
|
+
},
|
|
38
|
+
range: getPalette()
|
|
39
|
+
} : null;
|
|
40
|
+
}
|
|
41
|
+
convertMarkEncode(encode) {
|
|
42
|
+
var _a, _b;
|
|
43
|
+
const markEncoder = this.convertSimpleMarkEncode(encode), res = {
|
|
44
|
+
x: {
|
|
45
|
+
field: "x"
|
|
46
|
+
},
|
|
47
|
+
y: {
|
|
48
|
+
field: "y"
|
|
49
|
+
},
|
|
50
|
+
radius: {
|
|
51
|
+
field: "radius"
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
if (markEncoder.color) {
|
|
55
|
+
const scaleColorId = this.getScaleId("color"), colorAccessor = getFieldAccessor(markEncoder.color.field);
|
|
56
|
+
res.fill = (datum, el, params) => {
|
|
57
|
+
const scale = params[scaleColorId];
|
|
58
|
+
return (null == datum ? void 0 : datum.datum) ? scale.scale(colorAccessor(datum.datum[datum.datum.length - 1])) : void 0;
|
|
59
|
+
};
|
|
60
|
+
} else res.fill = null !== (_b = null === (_a = this.spec.style) || void 0 === _a ? void 0 : _a.fill) && void 0 !== _b ? _b : getPalette()[0];
|
|
61
|
+
return res;
|
|
62
|
+
}
|
|
63
|
+
setMainMarkSpec() {
|
|
64
|
+
return {
|
|
65
|
+
key: "key"
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
setLabelTextGetter(channel, option) {
|
|
69
|
+
const textGetter = getFieldAccessor(channel);
|
|
70
|
+
return (datum, el, params) => textGetter(datum.datum[datum.datum.length - 1]);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
CirclePackingSemanticMark.type = PlotMakType.circlePacking;
|
|
75
|
+
//# sourceMappingURL=circle-packing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/circle-packing.ts"],"names":[],"mappings":"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","file":"circle-packing.js","sourcesContent":["import type {\n GenerateBaseEncodeSpec,\n GenerateEncoderSpec,\n Nil,\n ScaleSpec,\n ValueOf,\n TransformSpec,\n IElement,\n ChannelEncodeType,\n CirclepackingEncodeChannels,\n WithDefaultEncode,\n PlotCirclePackingEncodeSpec,\n SemanticLabelOption\n} from '@visactor/vgrammar';\nimport { SemanticMark } from './semantic-mark';\nimport { getPalette, GrammarMarkType, getTransform } from '@visactor/vgrammar';\nimport { PlotMakType } from './enums';\nimport { field as getFieldAccessor } from '@visactor/vgrammar-util';\nimport type { ITextAttribute } from '@visactor/vrender';\n\nexport class CirclePackingSemanticMark extends SemanticMark<PlotCirclePackingEncodeSpec, CirclepackingEncodeChannels> {\n static readonly type = PlotMakType.circlePacking;\n constructor(id?: string | number) {\n super(PlotMakType.circlePacking, id);\n\n if (!getTransform(PlotMakType.circlePacking)) {\n this._logger.error(\n `Please add this line of code: import { registerCirclePackingTransforms } from '@visactor/vgrammar-hierarchy'; \n and run registerCirclePackingTransforms() before use treemap chart`\n );\n }\n }\n\n setMarkType() {\n return GrammarMarkType.circle;\n }\n\n setDefaultDataTransform(): TransformSpec[] {\n return [\n {\n type: PlotMakType.circlePacking,\n width: { signal: 'viewWidth' },\n height: { signal: 'viewHeight' },\n nodeKey: this.spec.encode?.node,\n flatten: true\n }\n ];\n }\n parseScaleByEncode(\n channel: CirclepackingEncodeChannels,\n option: ValueOf<\n WithDefaultEncode<PlotCirclePackingEncodeSpec, CirclepackingEncodeChannels>,\n CirclepackingEncodeChannels\n >\n ): ScaleSpec | Nil {\n if (channel === 'color') {\n return {\n type: 'ordinal',\n id: this.getScaleId('color'),\n domain: {\n data: this.getDataIdOfFiltered(),\n field: option as string\n },\n range: getPalette()\n };\n }\n\n return null;\n }\n\n convertMarkEncode(\n encode: WithDefaultEncode<PlotCirclePackingEncodeSpec, CirclepackingEncodeChannels>\n ): GenerateBaseEncodeSpec<PlotCirclePackingEncodeSpec> {\n const markEncoder = this.convertSimpleMarkEncode(encode);\n\n const res: GenerateEncoderSpec<PlotCirclePackingEncodeSpec> = {\n x: { field: 'x' },\n y: { field: 'y' },\n radius: { field: 'radius' }\n };\n\n if (markEncoder.color) {\n const scaleColorId = this.getScaleId('color');\n const colorAccessor = getFieldAccessor(markEncoder.color.field);\n\n res.fill = (datum: any, el: IElement, params: any) => {\n const scale = params[scaleColorId];\n return datum?.datum ? scale.scale(colorAccessor(datum.datum[datum.datum.length - 1])) : undefined;\n };\n } else {\n res.fill = this.spec.style?.fill ?? getPalette()[0];\n }\n\n return res;\n }\n\n setMainMarkSpec() {\n return { key: 'key' };\n }\n\n protected setLabelTextGetter(\n channel: string,\n option: SemanticLabelOption | boolean\n ): ChannelEncodeType<ITextAttribute['text']> {\n const textGetter = getFieldAccessor(channel);\n return (datum: any, el: IElement, params: any) => {\n return textGetter(datum.datum[datum.datum.length - 1]);\n };\n }\n}\n"]}
|
package/es/enums.d.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export declare enum PlotMakType {
|
|
2
|
+
area = "area",
|
|
3
|
+
cell = "cell",
|
|
4
|
+
image = "image",
|
|
5
|
+
interval = "interval",
|
|
6
|
+
line = "line",
|
|
7
|
+
path = "path",
|
|
8
|
+
polygon = "polygon",
|
|
9
|
+
rectX = "rectX",
|
|
10
|
+
rectY = "rectY",
|
|
11
|
+
rect = "rect",
|
|
12
|
+
ruleX = "ruleX",
|
|
13
|
+
ruleY = "ruleY",
|
|
14
|
+
rule = "rule",
|
|
15
|
+
symbol = "symbol",
|
|
16
|
+
text = "text",
|
|
17
|
+
tree = "tree",
|
|
18
|
+
circlePacking = "circlePacking",
|
|
19
|
+
sunburst = "sunburst",
|
|
20
|
+
treemap = "treemap",
|
|
21
|
+
sankey = "sankey",
|
|
22
|
+
wordcloud = "wordcloud",
|
|
23
|
+
wordcloudShape = "wordcloudShape"
|
|
24
|
+
}
|
package/es/enums.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export var PlotMakType;
|
|
2
|
+
|
|
3
|
+
!function(PlotMakType) {
|
|
4
|
+
PlotMakType.area = "area", PlotMakType.cell = "cell", PlotMakType.image = "image",
|
|
5
|
+
PlotMakType.interval = "interval", PlotMakType.line = "line", PlotMakType.path = "path",
|
|
6
|
+
PlotMakType.polygon = "polygon", PlotMakType.rectX = "rectX", PlotMakType.rectY = "rectY",
|
|
7
|
+
PlotMakType.rect = "rect", PlotMakType.ruleX = "ruleX", PlotMakType.ruleY = "ruleY",
|
|
8
|
+
PlotMakType.rule = "rule", PlotMakType.symbol = "symbol", PlotMakType.text = "text",
|
|
9
|
+
PlotMakType.tree = "tree", PlotMakType.circlePacking = "circlePacking", PlotMakType.sunburst = "sunburst",
|
|
10
|
+
PlotMakType.treemap = "treemap", PlotMakType.sankey = "sankey", PlotMakType.wordcloud = "wordcloud",
|
|
11
|
+
PlotMakType.wordcloudShape = "wordcloudShape";
|
|
12
|
+
}(PlotMakType || (PlotMakType = {}));
|
|
13
|
+
//# sourceMappingURL=enums.js.map
|
package/es/enums.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/enums.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,WAwBX;AAxBD,WAAY,WAAW;IACrB,4BAAa,CAAA;IACb,4BAAa,CAAA;IACb,8BAAe,CAAA;IACf,oCAAqB,CAAA;IACrB,4BAAa,CAAA;IACb,4BAAa,CAAA;IACb,kCAAmB,CAAA;IACnB,8BAAe,CAAA;IACf,8BAAe,CAAA;IACf,4BAAa,CAAA;IACb,8BAAe,CAAA;IACf,8BAAe,CAAA;IACf,4BAAa,CAAA;IACb,gCAAiB,CAAA;IACjB,4BAAa,CAAA;IAEb,4BAAa,CAAA;IACb,8CAA+B,CAAA;IAC/B,oCAAqB,CAAA;IACrB,kCAAmB,CAAA;IACnB,gCAAiB,CAAA;IACjB,sCAAuB,CAAA;IACvB,gDAAiC,CAAA;AACnC,CAAC,EAxBW,WAAW,KAAX,WAAW,QAwBtB","file":"enums.js","sourcesContent":["export enum PlotMakType {\n area = 'area',\n cell = 'cell',\n image = 'image',\n interval = 'interval',\n line = 'line',\n path = 'path',\n polygon = 'polygon',\n rectX = 'rectX',\n rectY = 'rectY',\n rect = 'rect',\n ruleX = 'ruleX',\n ruleY = 'ruleY',\n rule = 'rule',\n symbol = 'symbol',\n text = 'text',\n\n tree = 'tree',\n circlePacking = 'circlePacking',\n sunburst = 'sunburst',\n treemap = 'treemap',\n sankey = 'sankey',\n wordcloud = 'wordcloud',\n wordcloudShape = 'wordcloudShape'\n}\n"]}
|
package/es/image.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { SemanticMark } from './semantic-mark';
|
|
2
|
+
import type { ImageEncodeChannels, WithDefaultEncode, PlotImageEncoderSpec, GenerateBaseEncodeSpec, Nil, ScaleSpec, ValueOf } from '@visactor/vgrammar';
|
|
3
|
+
import { GrammarMarkType } from '@visactor/vgrammar';
|
|
4
|
+
import { PlotMakType } from './enums';
|
|
5
|
+
export declare class ImageSemanticMark extends SemanticMark<PlotImageEncoderSpec, ImageEncodeChannels> {
|
|
6
|
+
static readonly type = PlotMakType.image;
|
|
7
|
+
static defaultSpec: PlotImageEncoderSpec;
|
|
8
|
+
constructor(id?: string | number);
|
|
9
|
+
setMarkType(): GrammarMarkType;
|
|
10
|
+
protected parseScaleOfEncodeX(option: ValueOf<WithDefaultEncode<PlotImageEncoderSpec, ImageEncodeChannels>, ImageEncodeChannels>): ScaleSpec | Nil;
|
|
11
|
+
parseScaleByEncode(channel: ImageEncodeChannels, option: ValueOf<WithDefaultEncode<PlotImageEncoderSpec, ImageEncodeChannels>, ImageEncodeChannels>): ScaleSpec | Nil;
|
|
12
|
+
convertMarkEncode(encode: WithDefaultEncode<PlotImageEncoderSpec, ImageEncodeChannels>): GenerateBaseEncodeSpec<PlotImageEncoderSpec>;
|
|
13
|
+
}
|
package/es/image.js
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { SemanticMark } from "./semantic-mark";
|
|
2
|
+
|
|
3
|
+
import { getPalette, GrammarMarkType } from "@visactor/vgrammar";
|
|
4
|
+
|
|
5
|
+
import { isArray } from "@visactor/vutils";
|
|
6
|
+
|
|
7
|
+
import { field as getFieldAccessor } from "@visactor/vgrammar-util";
|
|
8
|
+
|
|
9
|
+
import { PlotMakType } from "./enums";
|
|
10
|
+
|
|
11
|
+
export class ImageSemanticMark extends SemanticMark {
|
|
12
|
+
constructor(id) {
|
|
13
|
+
super(PlotMakType.image, id);
|
|
14
|
+
}
|
|
15
|
+
setMarkType() {
|
|
16
|
+
return GrammarMarkType.image;
|
|
17
|
+
}
|
|
18
|
+
parseScaleOfEncodeX(option) {
|
|
19
|
+
const res = super.parseScaleOfEncodeX(option);
|
|
20
|
+
return res.type = "point", res;
|
|
21
|
+
}
|
|
22
|
+
parseScaleByEncode(channel, option) {
|
|
23
|
+
return "src" === channel ? {
|
|
24
|
+
type: "ordinal",
|
|
25
|
+
id: this.getScaleId("src"),
|
|
26
|
+
domain: {
|
|
27
|
+
data: this.getDataIdOfMain(),
|
|
28
|
+
field: option
|
|
29
|
+
}
|
|
30
|
+
} : this.parseScaleOfCommonEncode(channel, option);
|
|
31
|
+
}
|
|
32
|
+
convertMarkEncode(encode) {
|
|
33
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
34
|
+
const markEncoder = this.convertSimpleMarkEncode(encode), scaleXId = this.getScaleId("x"), scaleYId = this.getScaleId("y"), res = {
|
|
35
|
+
image: markEncoder.src
|
|
36
|
+
};
|
|
37
|
+
if (markEncoder.src && (res.image = markEncoder.src), isArray(null === (_a = markEncoder.x) || void 0 === _a ? void 0 : _a.field)) {
|
|
38
|
+
const xAccessor = getFieldAccessor(markEncoder.x.field[0]), x1Accessor = getFieldAccessor(markEncoder.x.field[1]);
|
|
39
|
+
res.x = (datum, el, params) => {
|
|
40
|
+
const scale = params[scaleXId];
|
|
41
|
+
return Math.min(scale.scale(xAccessor(datum)), scale.scale(x1Accessor(datum)));
|
|
42
|
+
}, res.width = (datum, el, params) => {
|
|
43
|
+
const scale = params[scaleXId];
|
|
44
|
+
return Math.abs(scale.scale(xAccessor(datum)) - scale.scale(x1Accessor(datum)));
|
|
45
|
+
};
|
|
46
|
+
} else {
|
|
47
|
+
const width = null !== (_c = null === (_b = this.spec.style) || void 0 === _b ? void 0 : _b.width) && void 0 !== _c ? _c : ImageSemanticMark.defaultSpec.width, xAccessor = getFieldAccessor(markEncoder.x.field);
|
|
48
|
+
res.x = (datum, el, params) => params[scaleXId].scale(xAccessor(datum)) - width / 2,
|
|
49
|
+
res.width = width;
|
|
50
|
+
}
|
|
51
|
+
if (isArray(null === (_d = markEncoder.y) || void 0 === _d ? void 0 : _d.field)) {
|
|
52
|
+
const yAccessor = getFieldAccessor(markEncoder.y.field[0]), y1Accessor = getFieldAccessor(markEncoder.y.field[1]);
|
|
53
|
+
res.y = (datum, el, params) => {
|
|
54
|
+
const scale = params[scaleYId];
|
|
55
|
+
return Math.min(scale.scale(yAccessor(datum)), scale.scale(y1Accessor(datum)));
|
|
56
|
+
}, res.height = (datum, el, params) => {
|
|
57
|
+
const scale = params[scaleYId];
|
|
58
|
+
return Math.abs(scale.scale(yAccessor(datum)) - scale.scale(y1Accessor(datum)));
|
|
59
|
+
};
|
|
60
|
+
} else {
|
|
61
|
+
const height = null !== (_f = null === (_e = this.spec.style) || void 0 === _e ? void 0 : _e.height) && void 0 !== _f ? _f : ImageSemanticMark.defaultSpec.height, yAccessor = getFieldAccessor(markEncoder.y.field);
|
|
62
|
+
res.y = (datum, el, params) => params[scaleXId].scale(yAccessor(datum)) - height / 2,
|
|
63
|
+
res.height = height;
|
|
64
|
+
}
|
|
65
|
+
return markEncoder.color || markEncoder.group ? res.fill = null !== (_g = markEncoder.color) && void 0 !== _g ? _g : markEncoder.group : res.fill = null !== (_j = null === (_h = this.spec.style) || void 0 === _h ? void 0 : _h.fill) && void 0 !== _j ? _j : getPalette()[0],
|
|
66
|
+
res;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
ImageSemanticMark.type = PlotMakType.image, ImageSemanticMark.defaultSpec = {
|
|
71
|
+
width: 10,
|
|
72
|
+
height: 10
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=image.js.map
|
package/es/image.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/image.ts"],"names":[],"mappings":"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","file":"image.js","sourcesContent":["import { SemanticMark } from './semantic-mark';\nimport type {\n ImageEncodeChannels,\n WithDefaultEncode,\n PlotImageEncoderSpec,\n GenerateBaseEncodeSpec,\n GenerateEncoderSpec,\n IElement,\n Nil,\n ScaleSpec,\n ValueOf\n} from '@visactor/vgrammar';\nimport { getPalette, GrammarMarkType } from '@visactor/vgrammar';\nimport { isArray } from '@visactor/vutils';\nimport { field as getFieldAccessor } from '@visactor/vgrammar-util';\nimport { PlotMakType } from './enums';\n\nexport class ImageSemanticMark extends SemanticMark<PlotImageEncoderSpec, ImageEncodeChannels> {\n static readonly type = PlotMakType.image;\n static defaultSpec: PlotImageEncoderSpec = { width: 10, height: 10 };\n constructor(id?: string | number) {\n super(PlotMakType.image, id);\n }\n\n setMarkType() {\n return GrammarMarkType.image;\n }\n\n protected parseScaleOfEncodeX(\n option: ValueOf<WithDefaultEncode<PlotImageEncoderSpec, ImageEncodeChannels>, ImageEncodeChannels>\n ): ScaleSpec | Nil {\n const res = super.parseScaleOfEncodeX(option);\n\n res.type = 'point';\n return res;\n }\n\n parseScaleByEncode(\n channel: ImageEncodeChannels,\n option: ValueOf<WithDefaultEncode<PlotImageEncoderSpec, ImageEncodeChannels>, ImageEncodeChannels>\n ): ScaleSpec | Nil {\n if (channel === 'src') {\n return {\n type: 'ordinal',\n id: this.getScaleId('src'),\n domain: {\n data: this.getDataIdOfMain(),\n field: option as string\n }\n };\n }\n\n return this.parseScaleOfCommonEncode(channel, option);\n }\n\n convertMarkEncode(\n encode: WithDefaultEncode<PlotImageEncoderSpec, ImageEncodeChannels>\n ): GenerateBaseEncodeSpec<PlotImageEncoderSpec> {\n const markEncoder = this.convertSimpleMarkEncode(encode);\n const scaleXId = this.getScaleId('x');\n const scaleYId = this.getScaleId('y');\n const res: GenerateEncoderSpec<PlotImageEncoderSpec> = {\n image: markEncoder.src\n };\n\n if (markEncoder.src) {\n res.image = markEncoder.src;\n }\n\n if (isArray(markEncoder.x?.field)) {\n const xAccessor = getFieldAccessor(markEncoder.x.field[0]);\n const x1Accessor = getFieldAccessor(markEncoder.x.field[1]);\n res.x = (datum: any, el: IElement, params: any) => {\n const scale = params[scaleXId];\n\n return Math.min(scale.scale(xAccessor(datum)), scale.scale(x1Accessor(datum)));\n };\n res.width = (datum: any, el: IElement, params: any) => {\n const scale = params[scaleXId];\n\n return Math.abs(scale.scale(xAccessor(datum)) - scale.scale(x1Accessor(datum)));\n };\n } else {\n const width = this.spec.style?.width ?? ImageSemanticMark.defaultSpec.width;\n const xAccessor = getFieldAccessor(markEncoder.x.field);\n\n res.x = (datum: any, el: IElement, params: any) => {\n const scale = params[scaleXId];\n\n return scale.scale(xAccessor(datum)) - width / 2;\n };\n res.width = width;\n }\n\n if (isArray(markEncoder.y?.field)) {\n const yAccessor = getFieldAccessor(markEncoder.y.field[0]);\n const y1Accessor = getFieldAccessor(markEncoder.y.field[1]);\n res.y = (datum: any, el: IElement, params: any) => {\n const scale = params[scaleYId];\n\n return Math.min(scale.scale(yAccessor(datum)), scale.scale(y1Accessor(datum)));\n };\n res.height = (datum: any, el: IElement, params: any) => {\n const scale = params[scaleYId];\n\n return Math.abs(scale.scale(yAccessor(datum)) - scale.scale(y1Accessor(datum)));\n };\n } else {\n const height = this.spec.style?.height ?? ImageSemanticMark.defaultSpec.height;\n const yAccessor = getFieldAccessor(markEncoder.y.field);\n\n res.y = (datum: any, el: IElement, params: any) => {\n const scale = params[scaleXId];\n\n return scale.scale(yAccessor(datum)) - height / 2;\n };\n res.height = height;\n }\n\n if (markEncoder.color || markEncoder.group) {\n res.fill = markEncoder.color ?? markEncoder.group;\n } else {\n res.fill = this.spec.style?.fill ?? getPalette()[0];\n }\n\n return res;\n }\n}\n"]}
|
package/es/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Plot } from './plot-all';
|
package/es/index.js
ADDED
package/es/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC","file":"index.js","sourcesContent":["export { Plot } from './plot-all';\n"]}
|