StackGenVis: Alignment of Data, Algorithms, and Models for Stacking Ensemble Learning Using Performance Metrics
https://doi.org/10.1109/TVCG.2020.3030352
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 lines
46 KiB
1 lines
46 KiB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vega-util"),require("vega-expression"),require("vega-functions"),require("vega-event-selector"),require("vega-scale"),require("vega-dataflow")):"function"==typeof define&&define.amd?define(["exports","vega-util","vega-expression","vega-functions","vega-event-selector","vega-scale","vega-dataflow"],t):t((e=e||self).vega={},e.vega,e.vega,e.vega,e.vega,e.vega,e.vega)}(this,(function(e,t,n,i,a,r,l){"use strict";function o(e){return+e||0}var s="outer",u=["value","update","init","react","bind"];function d(e,n){t.error(e+' for "outer" push: '+t.stringValue(n))}function c(e,t){var n=e.name;if(e.push===s)t.signals[n]||d("No prior signal definition",n),u.forEach((function(t){void 0!==e[t]&&d("Invalid property ",t)}));else{var i=t.addSignal(n,e.value);!1===e.react&&(i.react=!1),e.bind&&t.addBinding(n,e.bind)}}function f(e,a,r){var l,o,s={};try{e=t.isString(e)?e:t.stringValue(e)+"",l=n.parse(e)}catch(n){t.error("Expression parse error: "+e)}return l.visit((function(e){if(e.type===n.CallExpression){var t=e.callee.name,r=i.codegenParams.visitors[t];r&&r(t,e.arguments,a,s)}})),(o=i.codeGenerator(l)).globals.forEach((function(e){var n=i.SignalPrefix+e;!t.hasOwnProperty(s,n)&&a.getSignal(e)&&(s[n]=a.signalRef(e))})),{$expr:r?r+"return("+o.code+");":o.code,$fields:o.fields,$params:s}}function p(e,t,n,i){this.id=-1,this.type=e,this.value=t,this.params=n,i&&(this.parent=i)}function g(e,t,n,i){return new p(e,t,n,i)}function m(e,t){return g("operator",e,t)}function h(e){var t={$ref:e.id};return e.id<0&&(e.refs=e.refs||[]).push(t),t}function y(e,t){return t?{$field:e,$name:t}:{$field:e}}var v=y("key");function b(e,t){return{$compare:e,$order:t}}var x="descending";function k(e,t){return(e&&e.signal?"$"+e.signal:e||"")+(e&&t?"_":"")+(t&&t.signal?"$"+t.signal:t||"")}var S="scope",$="view";function O(e){return e&&e.signal}function R(e){if(O(e))return!0;if(t.isObject(e))for(var n in e)if(R(e[n]))return!0;return!1}function j(e,t){return null!=e?e:t}function w(e){return e&&e.signal||e}var z="timer";function V(e,n){return(e.merge?D:e.stream?P:e.type?_:t.error("Invalid stream specification: "+t.stringValue(e)))(e,n)}function D(e,t){var n=W({merge:e.merge.map(e=>V(e,t))},e,t);return t.addStream(n).id}function P(e,t){var n=W({stream:V(e.stream,t)},e,t);return t.addStream(n).id}function _(e,t){var n,i,a;return e.type===z?(n=t.event(z,e.throttle),e={between:e.between,filter:e.filter}):n=t.event((a=e.source)===S?$:a||$,e.type),i=W({stream:n},e,t),1===Object.keys(i).length?n:t.addStream(i).id}function W(e,n,i){var a,r,l,o,s=n.between;return s&&(2!==s.length&&t.error('Stream "between" parameter must have 2 entries: '+t.stringValue(n)),e.between=[V(s[0],i),V(s[1],i)]),s=n.filter?[].concat(n.filter):[],(n.marktype||n.markname||n.markrole)&&s.push((a=n.marktype,r=n.markname,l=n.markrole,(o="event.item")+(a&&"*"!==a?"&&"+o+".mark.marktype==='"+a+"'":"")+(l?"&&"+o+".mark.role==='"+l+"'":"")+(r?"&&"+o+".mark.name==='"+r+"'":""))),n.source===S&&s.push("inScope(event.item)"),s.length&&(e.filter=f("("+s.join(")&&(")+")").$expr),null!=(s=n.throttle)&&(e.throttle=+s),null!=(s=n.debounce)&&(e.debounce=+s),n.consume&&(e.consume=!0),e}var E="var datum=event.item&&event.item.datum;";function C(e,n,i){var r=e.events,l=e.update,o=e.encode,s=[],u={target:i};r||t.error("Signal update missing events specification."),t.isString(r)&&(r=a.selector(r,n.isSubscope()?S:$)),r=t.array(r).filter(e=>e.signal||e.scale?(s.push(e),0):1),s.length>1&&(s=[L(s)]),r.length&&s.push(r.length>1?{merge:r}:r[0]),null!=o&&(l&&t.error("Signal encode and update are mutually exclusive."),l="encode(item(),"+t.stringValue(o)+")"),u.update=t.isString(l)?f(l,n,E):null!=l.expr?f(l.expr,n,E):null!=l.value?l.value:null!=l.signal?{$expr:"_.value",$params:{value:n.signalRef(l.signal)}}:t.error("Invalid signal update specification."),e.force&&(u.options={force:!0}),s.forEach((function(e){n.addUpdate(t.extend(function(e,t){return{source:e.signal?t.signalRef(e.signal):e.scale?t.scaleRef(e.scale):V(e,t)}}(e,n),u))}))}function L(e){return{signal:"["+e.map(e=>e.scale?'scale("'+e.scale+'")':e.signal)+"]"}}function A(e,n){var i=n.getSignal(e.name),a=e.update;e.init&&(a?t.error("Signals can not include both init and update expressions."):(a=e.init,i.initonly=!0)),a&&(a=f(a,n),i.update=a.$expr,i.params=a.$params),e.on&&e.on.forEach((function(e){C(e,n,i.id)}))}function F(e){return function(t,n,i){return g(e,n,t||void 0,i)}}var T=F("aggregate"),B=F("axisticks"),M=F("bound"),U=F("collect"),q=F("compare"),H=F("datajoin"),I=F("encode"),N=F("expression"),G=F("facet"),X=F("field"),Y=F("key"),Q=F("legendentries"),J=F("load"),K=F("mark"),Z=F("multiextent"),ee=F("multivalues"),te=F("overlap"),ne=F("params"),ie=F("prefacet"),ae=F("projection"),re=F("proxy"),le=F("relay"),oe=F("render"),se=F("scale"),ue=F("sieve"),de=F("sortitems"),ce=F("viewlayout"),fe=F("values"),pe=0,ge={min:"min",max:"max",count:"sum"};function me(e,n){var i,a,l=n.getScale(e.name).params;for(i in l.domain=be(e.domain,e,n),null!=e.range&&(l.range=function e(n,i,a){var l=n.range,o=i.config.range;if(l.signal)return i.signalRef(l.signal);if(t.isString(l)){if(o&&t.hasOwnProperty(o,l))return n=t.extend({},n,{range:o[l]}),e(n,i,a);"width"===l?l=[0,{signal:"width"}]:"height"===l?l=r.isDiscrete(n.type)?[0,{signal:"height"}]:[{signal:"height"},0]:t.error("Unrecognized scale range value: "+t.stringValue(l))}else{if(l.scheme)return a.scheme=t.isArray(l.scheme)?ye(l.scheme,i):he(l.scheme,i),l.extent&&(a.schemeExtent=ye(l.extent,i)),void(l.count&&(a.schemeCount=he(l.count,i)));if(l.step)return void(a.rangeStep=he(l.step,i));if(r.isDiscrete(n.type)&&!t.isArray(l))return be(l,n,i);t.isArray(l)||t.error("Unsupported range type: "+t.stringValue(l))}return l.map(e=>(t.isArray(e)?ye:he)(e,i))}(e,n,l)),null!=e.interpolate&&function(e,t){t.interpolate=he(e.type||e),null!=e.gamma&&(t.interpolateGamma=he(e.gamma))}(e.interpolate,l),null!=e.nice&&(l.nice=(a=e.nice,t.isObject(a)?{interval:he(a.interval),step:he(a.step)}:he(a))),null!=e.bins&&(l.bins=function(e,n){return e.signal||t.isArray(e)?ye(e,n):n.objectProperty(e)}(e.bins,n)),e)t.hasOwnProperty(l,i)||"name"===i||(l[i]=he(e[i],n))}function he(e,n){return t.isObject(e)?e.signal?n.signalRef(e.signal):t.error("Unsupported object: "+t.stringValue(e)):e}function ye(e,t){return e.signal?t.signalRef(e.signal):e.map(e=>he(e,t))}function ve(e){t.error("Can not find data set: "+t.stringValue(e))}function be(e,n,i){if(e)return e.signal?i.signalRef(e.signal):(t.isArray(e)?xe:e.fields?Se:ke)(e,n,i);null==n.domainMin&&null==n.domainMax||t.error("No scale domain defined for domainMin/domainMax to override.")}function xe(e,t,n){return e.map((function(e){return he(e,n)}))}function ke(e,t,n){var i=n.getData(e.data);return i||ve(e.data),r.isDiscrete(t.type)?i.valuesRef(n,e.field,Oe(e.sort,!1)):r.isQuantile(t.type)?i.domainRef(n,e.field):i.extentRef(n,e.field)}function Se(e,n,i){var a=e.data,l=e.fields.reduce((function(e,n){return n=t.isString(n)?{data:a,field:n}:t.isArray(n)||n.signal?function(e,n){var i="_:vega:_"+pe++,a=U({});if(t.isArray(e))a.value={$ingest:e};else if(e.signal){var r="setdata("+t.stringValue(i)+","+e.signal+")";a.params.input=n.signalRef(r)}return n.addDataPipeline(i,[a,ue({})]),{data:i,field:"data"}}(n,i):n,e.push(n),e}),[]);return(r.isDiscrete(n.type)?$e:r.isQuantile(n.type)?Re:je)(e,i,l)}function $e(e,t,n){var i,a,r,l,o,s=Oe(e.sort,!0);return i=n.map((function(e){var n=t.getData(e.data);return n||ve(e.data),n.countsRef(t,e.field,s)})),a={groupby:v,pulse:i},s&&(r=s.op||"count",o=s.field?k(r,s.field):"count",a.ops=[ge[r]],a.fields=[t.fieldRef(o)],a.as=[o]),r=t.add(T(a)),l=t.add(U({pulse:h(r)})),o=t.add(fe({field:v,sort:t.sortRef(s),pulse:h(l)})),h(o)}function Oe(e,n){return e&&(e.field||e.op?e.field||"count"===e.op?n&&e.field&&e.op&&!ge[e.op]&&t.error("Multiple domain scales can not be sorted using "+e.op):t.error("No field provided for sort aggregate op: "+e.op):t.isObject(e)?e.field="key":e={field:"key"}),e}function Re(e,t,n){var i=n.map((function(e){var n=t.getData(e.data);return n||ve(e.data),n.domainRef(t,e.field)}));return h(t.add(ee({values:i})))}function je(e,t,n){var i=n.map((function(e){var n=t.getData(e.data);return n||ve(e.data),n.extentRef(t,e.field)}));return h(t.add(Z({extents:i})))}function we(e,n,i){return t.isArray(e)?e.map((function(e){return we(e,n,i)})):t.isObject(e)?e.signal?i.signalRef(e.signal):"fit"===n?e:t.error("Unsupported parameter object: "+t.stringValue(e)):e}const ze="top",Ve="left",De="right",Pe="bottom",_e="vertical",We="start",Ee="end",Ce="index",Le="label",Ae="offset",Fe="perc",Te="perc2",Be="size",Me="value",Ue="guide-label",qe="guide-title",He="group-title",Ie="group-subtitle",Ne="symbol",Ge="gradient",Xe="discrete",Ye=["size","shape","fill","stroke","strokeWidth","strokeDash","opacity"],Qe={name:1,style:1,interactive:1},Je={value:0},Ke={value:1};var Ze=t.toSet(["rule"]),et=t.toSet(["group","image","rect"]);function tt(e,n,i,a){var r=f(e,n);return r.$fields.forEach((function(e){a[e]=1})),t.extend(i,r.$params),r.$expr}function nt(e,n,i,a){return function e(n,i,a,r){var l,o,s;if(n.signal)l="datum",s=tt(n.signal,i,a,r);else if(n.group||n.parent){for(o=Math.max(1,n.level||1),l="item";o-- >0;)l+=".mark.group";n.parent?(s=n.parent,l+=".datum"):s=n.group}else n.datum?(l="datum",s=n.datum):t.error("Invalid field reference: "+t.stringValue(n));n.signal||(t.isString(s)?(r[s]=1,s=t.splitAccessPath(s).map(t.stringValue).join("][")):s=e(s,i,a,r));return l+"["+s+"]"}(t.isObject(e)?e:{datum:e},n,i,a)}function it(e,n,i,a){return t.isObject(e)?"("+lt(null,e,n,i,a)+")":e}function at(e,n,i,a,r){var l,o,s,u=rt(e.scale,i,a,r);return null!=e.range?(o=u+".range()",n=0===(l=+e.range)?o+"[0]":"($="+o+","+(1===l?"$[$.length-1]":"$[0]+"+l+"*($[$.length-1]-$[0])")+")"):(void 0!==n&&(n=u+"("+n+")"),e.band&&(s=function(e,n){if(!t.isString(e))return-1;var i=n.scaleType(e);return"band"===i||"point"===i?1:0}(e.scale,i))&&(o=u+".bandwidth",l=e.band.signal?o+"()*"+it(e.band,i,a,r):o+"()"+(1===(l=+e.band)?"":"*"+l),s<0&&(l="("+o+"?"+l+":0)"),n=(n?n+"+":"")+l,e.extra&&(n="(datum.extra?"+u+"(datum.extra.value):"+n+")")),null==n&&(n="0")),n}function rt(e,n,a,r){var l;if(t.isString(e))l=i.ScalePrefix+e,t.hasOwnProperty(a,l)||(a[l]=n.scaleRef(e)),l=t.stringValue(l);else{for(l in n.scales)a[i.ScalePrefix+l]=n.scaleRef(l);l=t.stringValue(i.ScalePrefix)+"+"+(e.signal?"("+tt(e.signal,n,a,r)+")":nt(e,n,a,r))}return"_["+l+"]"}function lt(e,n,i,a,r){if(null!=n.gradient)return function(e,n,i,a){return"this.gradient("+rt(e.gradient,n,i,a)+","+t.stringValue(e.start)+","+t.stringValue(e.stop)+","+t.stringValue(e.count)+")"}(n,i,a,r);var l=n.signal?tt(n.signal,i,a,r):n.color?function(e,t,n,i){function a(e,a,r,l){return"this."+e+"("+[lt(null,a,t,n,i),lt(null,r,t,n,i),lt(null,l,t,n,i)].join(",")+").toString()"}return e.c?a("hcl",e.h,e.c,e.l):e.h||e.s?a("hsl",e.h,e.s,e.l):e.l||e.a?a("lab",e.l,e.a,e.b):e.r||e.g||e.b?a("rgb",e.r,e.g,e.b):null}(n.color,i,a,r):null!=n.field?nt(n.field,i,a,r):void 0!==n.value?t.stringValue(n.value):void 0;return null!=n.scale&&(l=at(n,l,i,a,r)),void 0===l&&(l=null),null!=n.exponent&&(l="Math.pow("+l+","+it(n.exponent,i,a,r)+")"),null!=n.mult&&(l+="*"+it(n.mult,i,a,r)),null!=n.offset&&(l+="+"+it(n.offset,i,a,r)),n.round&&(l="Math.round("+l+")"),l}function ot(e,n,i){const a=e+"["+t.stringValue(n)+"]";return`$=${i};if(${a}!==$)${a}=$,m=1;`}function st(e,n,i,a,r){var l="";return n.forEach((function(e){var t=lt(0,e,i,a,r);l+=e.test?tt(e.test,i,a,r)+"?"+t+":":t})),":"===t.peek(l)&&(l+="null"),ot("o",e,l)}function ut(e,n,i,a){var r,l,o={},s="var o=item,datum=o.datum,m=0,$;";for(r in e)l=e[r],t.isArray(l)?s+=st(r,l,a,i,o):s+=ot("o",r,lt(0,l,a,i,o));return s+=function(e,t){var n="";return Ze[t]?n:(e.x2&&(e.x?(et[t]&&(n+="if(o.x>o.x2)$=o.x,o.x=o.x2,o.x2=$;"),n+="o.width=o.x2-o.x;"):n+="o.x=o.x2-(o.width||0);"),e.xc&&(n+="o.x=o.xc-(o.width||0)/2;"),e.y2&&(e.y?(et[t]&&(n+="if(o.y>o.y2)$=o.y,o.y=o.y2,o.y2=$;"),n+="o.height=o.y2-o.y;"):n+="o.y=o.y2-(o.height||0);"),e.yc&&(n+="o.y=o.yc-(o.height||0)/2;"),n)}(e,n),{$expr:s+="return m;",$fields:Object.keys(o),$output:Object.keys(e)}}var dt="mark",ct="frame",ft="scope",pt="axis",gt="axis-domain",mt="axis-grid",ht="axis-label",yt="axis-tick",vt="axis-title",bt="legend",xt="legend-band",kt="legend-entry",St="legend-gradient",$t="legend-label",Ot="legend-symbol",Rt="legend-title",jt="title",wt="title-text",zt="title-subtitle";function Vt(e){return t.isObject(e)&&!t.isArray(e)?t.extend({},e):{value:e}}function Dt(e,n,i,a){return null!=i?(t.isObject(i)&&!t.isArray(i)?e.update[n]=i:e[a||"enter"][n]={value:i},1):0}function Pt(e,t,n){for(let n in t)Dt(e,n,t[n]);for(let t in n)Dt(e,t,n[t],"update")}function _t(e,n,i){for(var a in n)i&&t.hasOwnProperty(i,a)||(e[a]=t.extend(e[a]||{},n[a]));return e}function Wt(e,n,i,a,r,l){var o,s;for(s in(l=l||{}).encoders={$encode:o={}},e=function(e,n,i,a,r){var l,o,s,u={},d={};"legend"!=i&&0!==String(i).indexOf("axis")||(i=null);for(o in s=i===ct?r.group:i===dt?t.extend({},r.mark,r[n]):null)Ct(o,e)||("fill"===o||"stroke"===o)&&(Ct("fill",e)||Ct("stroke",e))||Et(u,o,s[o]);for(o in t.array(a).forEach((function(t){var n=r.style&&r.style[t];for(var i in n)Ct(i,e)||Et(u,i,n[i])})),e=t.extend({},e),u)(s=u[o]).signal?(l=l||{})[o]=s:d[o]=s;e.enter=t.extend(d,e.enter),l&&(e.update=t.extend(l,e.update));return e}(e,n,i,a,r.config))o[s]=ut(e[s],n,l,r);return l}function Et(e,t,n){e[t]=n&&n.signal?{signal:n.signal}:{value:n}}function Ct(e,t){return t&&(t.enter&&t.enter[e]||t.update&&t.update[e])}function Lt(e,t,n,i,a,r,l){return{type:e,name:l?l.name:void 0,role:t,style:l&&l.style||n,key:i,from:a,interactive:!(!l||!l.interactive),encode:_t(r,l,Qe)}}function At(e,t){const n=(n,i)=>j(e[n],j(t[n],i));return n.isVertical=n=>_e===j(e.direction,t.direction||(n?t.symbolDirection:t.gradientDirection)),n.gradientLength=()=>j(e.gradientLength,t.gradientLength||t.gradientWidth),n.gradientThickness=()=>j(e.gradientThickness,t.gradientThickness||t.gradientHeight),n.entryColumns=()=>j(e.columns,j(t.columns,+n.isVertical(!0))),n}function Ft(e,t){var n=t&&(t.update&&t.update[e]||t.enter&&t.enter[e]);return n&&n.signal?n:n?n.value:null}function Tt(e,t,n){return`item.anchor === "${We}" ? ${e} : item.anchor === "${Ee}" ? ${t} : ${n}`}const Bt=Tt(t.stringValue(Ve),t.stringValue(De),t.stringValue("center"));var Mt="group",Ut="rect",qt="rule",Ht="symbol",It="text";function Nt(e,n,i,a){var r,l,o,s,u,d,c=At(e,i),f=c.isVertical(),p=c.gradientThickness(),g=c.gradientLength();return f?(o=[0,1],s=[0,0],u=p,d=g):(o=[0,0],s=[1,0],u=g,d=p),Pt(r={enter:l={opacity:Je,x:Je,y:Je,width:Vt(u),height:Vt(d)},update:t.extend({},l,{opacity:Ke,fill:{gradient:n,start:o,stop:s}}),exit:{opacity:Je}},{stroke:c("gradientStrokeColor"),strokeWidth:c("gradientStrokeWidth")},{opacity:c("gradientOpacity")}),Lt(Ut,St,null,void 0,void 0,r,a)}function Gt(e,n,i,a,r){var l,o,s,u,d,c,f=At(e,i),p=f.isVertical(),g=f.gradientThickness(),m=f.gradientLength(),h="";return p?(s="y",d="y2",u="x",c="width",h="1-"):(s="x",d="x2",u="y",c="height"),(o={opacity:Je,fill:{scale:n,field:Me}})[s]={signal:h+"datum."+Fe,mult:m},o[u]=Je,o[d]={signal:h+"datum."+Te,mult:m},o[c]=Vt(g),Pt(l={enter:o,update:t.extend({},o,{opacity:Ke}),exit:{opacity:Je}},{stroke:f("gradientStrokeColor"),strokeWidth:f("gradientStrokeWidth")},{opacity:f("gradientOpacity")}),Lt(Ut,xt,null,Me,r,l,a)}const Xt=`datum.${Fe}<=0?"${Ve}":datum.${Fe}>=1?"${De}":"center"`,Yt=`datum.${Fe}<=0?"${Pe}":datum.${Fe}>=1?"${ze}":"middle"`;function Qt(e,t,n,i){var a,r,l,o,s,u=At(e,t),d=u.isVertical(),c=Vt(u.gradientThickness()),f=u.gradientLength(),p=u("labelOverlap"),g=u("labelSeparation"),m="";return Pt(a={enter:r={opacity:Je},update:l={opacity:Ke,text:{field:Le}},exit:{opacity:Je}},{fill:u("labelColor"),fillOpacity:u("labelOpacity"),font:u("labelFont"),fontSize:u("labelFontSize"),fontStyle:u("labelFontStyle"),fontWeight:u("labelFontWeight"),limit:j(e.labelLimit,t.gradientLabelLimit)}),d?(r.align={value:"left"},r.baseline=l.baseline={signal:Yt},o="y",s="x",m="1-"):(r.align=l.align={signal:Xt},r.baseline={value:"top"},o="x",s="y"),r[o]=l[o]={signal:m+"datum."+Fe,mult:f},r[s]=l[s]=c,c.offset=j(e.labelOffset,t.gradientLabelOffset)||0,e=Lt(It,$t,Ue,Me,i,a,n),p&&(e.overlap={separation:g,method:p,order:"datum."+Ce}),e}function Jt(e,t,n,i,a,r,l,o){return{type:Mt,name:n,role:e,style:t,from:i,interactive:a||!1,encode:r,marks:l,layout:o}}function Kt(e,t,n,i,a){var r,l,o,s,u,d,c,f=At(e,t),p=n.entries,g=!(!p||!p.interactive),m=p?p.name:void 0,h=f("clipHeight"),y=f("symbolOffset"),v={data:"value"},b={},x=`${a} ? datum.${Ae} : datum.${Be}`,k=h?Vt(h):{field:Be},S=`datum.${Ce}`,$=`max(1, ${a})`;k.mult=.5,b={enter:r={opacity:Je,x:{signal:x,mult:.5,offset:y},y:k},update:l={opacity:Ke,x:r.x,y:r.y},exit:{opacity:Je}};var O=null,R=null;return e.fill||(O=t.symbolBaseFillColor,R=t.symbolBaseStrokeColor),Pt(b,{fill:f("symbolFillColor",O),shape:f("symbolType"),size:f("symbolSize"),stroke:f("symbolStrokeColor",R),strokeDash:f("symbolDash"),strokeDashOffset:f("symbolDashOffset"),strokeWidth:f("symbolStrokeWidth")},{opacity:f("symbolOpacity")}),Ye.forEach((function(t){e[t]&&(l[t]=r[t]={scale:e[t],field:Me})})),s=Lt(Ht,Ot,null,Me,v,b,n.symbols),h&&(s.clip=!0),(o=Vt(y)).offset=f("labelOffset"),Pt(b={enter:r={opacity:Je,x:{signal:x,offset:o},y:k},update:l={opacity:Ke,text:{field:Le},x:r.x,y:r.y},exit:{opacity:Je}},{align:f("labelAlign"),baseline:f("labelBaseline"),fill:f("labelColor"),fillOpacity:f("labelOpacity"),font:f("labelFont"),fontSize:f("labelFontSize"),fontStyle:f("labelFontStyle"),fontWeight:f("labelFontWeight"),limit:f("labelLimit")}),u=Lt(It,$t,Ue,Me,v,b,n.labels),b={enter:{noBound:{value:!h},width:Je,height:h?Vt(h):Je,opacity:Je},exit:{opacity:Je},update:l={opacity:Ke,row:{signal:null},column:{signal:null}}},f.isVertical(!0)?(d=`ceil(item.mark.items.length / ${$})`,l.row.signal=`${S}%${d}`,l.column.signal=`floor(${S} / ${d})`,c={field:["row",S]}):(l.row.signal=`floor(${S} / ${$})`,l.column.signal=`${S} % ${$}`,c={field:S}),l.column.signal=`${a}?${l.column.signal}:${S}`,(e=Jt(ft,null,m,i={facet:{data:i,name:"value",groupby:Ce}},g,_t(b,p,Qe),[s,u])).sort=c,e}const Zt='item.orient === "left"',en='item.orient === "right"',tn=`(${Zt} || ${en})`,nn=`datum.vgrad && ${tn}`,an=Tt('"top"','"bottom"','"middle"'),rn=`datum.vgrad && ${en} ? (${Tt('"right"','"left"','"center"')}) : (${tn} && !(datum.vgrad && ${Zt})) ? "left" : ${Bt}`,ln=`item._anchor || (${tn} ? "middle" : "start")`,on=`${nn} ? (${Zt} ? -90 : 90) : 0`,sn=`${tn} ? (datum.vgrad ? (${en} ? "bottom" : "top") : ${an}) : "top"`;function un(e,n){var i;return t.isObject(e)&&(e.signal?i=e.signal:e.path?i="pathShape("+dn(e.path)+")":e.sphere&&(i="geoShape("+dn(e.sphere)+', {type: "Sphere"})')),i?n.signalRef(i):!!e}function dn(e){return t.isObject(e)&&e.signal?e.signal:t.stringValue(e)}function cn(e){var t=e.role||"";return t.indexOf("axis")&&t.indexOf("legend")&&t.indexOf("title")?e.type===Mt?ft:t||dt:t}function fn(e){return{marktype:e.type,name:e.name||void 0,role:e.role||cn(e),zindex:+e.zindex||void 0}}function pn(e,t){return e&&e.signal?t.signalRef(e.signal):!1!==e}function gn(e,n){var i=l.definition(e.type);i||t.error("Unrecognized transform type: "+t.stringValue(e.type));var a=g(i.type.toLowerCase(),null,mn(i,e,n));return e.signal&&n.addSignal(e.signal,n.proxy(a)),a.metadata=i.metadata||{},a}function mn(e,t,n){var i,a,r,l={};for(a=0,r=e.params.length;a<r;++a)l[(i=e.params[a]).name]=hn(i,t,n);return l}function hn(e,n,i){var a=e.type,r=n[e.name];return"index"===a?function(e,n,i){t.isString(n.from)||t.error('Lookup "from" parameter must be a string literal.');return i.getData(n.from).lookupRef(i,n.key)}(0,n,i):void 0!==r?"param"===a?function(e,n,i){var a=n[e.name];return e.array?(t.isArray(a)||t.error("Expected an array of sub-parameters. Instead: "+t.stringValue(a)),a.map((function(t){return vn(e,t,i)}))):vn(e,a,i)}(e,n,i):"projection"===a?i.projectionRef(n[e.name]):e.array&&!O(r)?r.map((function(t){return yn(e,t,i)})):yn(e,r,i):void(e.required&&t.error("Missing required "+t.stringValue(n.type)+" parameter: "+t.stringValue(e.name)))}function yn(e,n,i){var a=e.type;if(O(n))return bn(a)?t.error("Expression references can not be signals."):xn(a)?i.fieldRef(n):kn(a)?i.compareRef(n):i.signalRef(n.signal);var r,l=e.expr||xn(a);return l&&((r=n)&&r.expr)?i.exprRef(n.expr,n.as):l&&function(e){return e&&e.field}(n)?y(n.field,n.as):bn(a)?f(n,i):function(e){return"data"===e}(a)?h(i.getData(n).values):xn(a)?y(n):kn(a)?i.compareRef(n):n}function vn(e,n,i){var a,r,l,o,s;for(o=0,s=e.params.length;o<s;++o){for(l in(r=e.params[o]).key)if(r.key[l]!==n[l]){r=null;break}if(r)break}return r||t.error("Unsupported parameter: "+t.stringValue(n)),a=t.extend(mn(r,n,i),r.key),h(i.add(ne(a)))}function bn(e){return"expr"===e}function xn(e){return"field"===e}function kn(e){return"compare"===e}function Sn(e,t){return e.$ref?e:e.data&&e.data.$ref?e.data:h(t.getData(e.data).output)}function $n(e,t,n,i,a){this.scope=e,this.input=t,this.output=n,this.values=i,this.aggregate=a,this.index={}}$n.fromEntries=function(e,t){var n=t.length,i=1,a=t[0],r=t[n-1],l=t[n-2],o=null;for(a&&"load"===a.type&&(a=t[1]),e.add(t[0]);i<n;++i)t[i].params.pulse=h(t[i-1]),e.add(t[i]),"aggregate"===t[i].type&&(o=t[i]);return new $n(e,a,l,r,o)};var On=$n.prototype;function Rn(e){return t.isString(e)?e:null}function jn(e,t,n){var i,a=k(n.op,n.field);if(t.ops){for(var r=0,l=t.as.length;r<l;++r)if(t.as[r]===a)return}else t.ops=["count"],t.fields=[null],t.as=["count"];n.op&&(t.ops.push((i=n.op.signal)?e.signalRef(i):n.op),t.fields.push(e.fieldRef(n.field)),t.as.push(a))}function wn(e,n,i,a,r,l,o){var s,u,d=n[i]||(n[i]={}),c=function(e){return t.isObject(e)?(e.order===x?"-":"+")+k(e.op,e.field):""}(l),f=Rn(r);if(null!=f&&(e=n.scope,s=d[f+=c?"|"+c:""]),!s){var p=l?{field:v,pulse:n.countsRef(e,r,l)}:{field:e.fieldRef(r),pulse:h(n.output)};c&&(p.sort=e.sortRef(l)),u=e.add(g(a,void 0,p)),o&&(n.index[r]=u),s=h(u),null!=f&&(d[f]=s)}return s}function zn(e,t,n){var i,a=e.remove,r=e.insert,l=e.toggle,o=e.modify,s=e.values,u=t.add(m());i=f("if("+e.trigger+',modify("'+n+'",'+[r,a,l,o,s].map((function(e){return null==e?"null":e})).join(",")+"),0)",t),u.update=i.$expr,u.params=i.$params}function Vn(e,n){var i,a,r,l,o,s,u,d,c,f,p,g,m,v,b=cn(e),x=e.type===Mt,k=e.from&&e.from.facet,S=e.layout||b===ft||b===ct,$=b===dt||S||k,R=e.overlap;r=function(e,n,i){var a,r,l,o,s;return e?(a=e.facet)&&(n||t.error("Only group marks can be faceted."),null!=a.field?o=s=Sn(a,i):(e.data?s=h(i.getData(e.data).aggregate):((l=gn(t.extend({type:"aggregate",groupby:t.array(a.groupby)},a.aggregate),i)).params.key=i.keyRef(a.groupby),l.params.pulse=Sn(a,i),o=s=h(i.add(l))),r=i.keyRef(a.groupby,!0))):o=h(i.add(U(null,[{}]))),o||(o=Sn(e,i)),{key:r,pulse:o,parent:s}}(e.from,x,n),f=h(a=n.add(H({key:r.key||(e.key?y(e.key):void 0),pulse:r.pulse,clean:!x}))),a=l=n.add(U({pulse:f})),a=n.add(K({markdef:fn(e),interactive:pn(e.interactive,n),clip:un(e.clip,n),context:{$context:!0},groups:n.lookup(),parent:n.signals.parent?n.signalRef("parent"):null,index:n.markpath(),pulse:h(a)})),p=h(a),(a=o=n.add(I(Wt(e.encode,e.type,b,e.style,n,{mod:!1,pulse:p})))).params.parent=n.encode(),e.transform&&e.transform.forEach((function(e){const i=gn(e,n),r=i.metadata;(r.generates||r.changes)&&t.error("Mark transforms should not generate new data."),r.nomod||(o.params.mod=!0),i.params.pulse=h(a),n.add(a=i)})),e.sort&&(a=n.add(de({sort:n.compareRef(e.sort),pulse:h(a)}))),g=h(a),(k||S)&&(m=h(S=n.add(ce({layout:n.objectProperty(e.layout),legends:n.legends,mark:p,pulse:g})))),v=h(s=n.add(M({mark:p,pulse:m||g}))),x&&($&&((i=n.operators).pop(),S&&i.pop()),n.pushState(g,m||v,f),k?function(e,n,i){var a,r,l,o,s=e.from.facet,u=s.name,d=Sn(s,n);s.name||t.error("Facet must have a name: "+t.stringValue(s)),s.data||t.error("Facet must reference a data set: "+t.stringValue(s)),s.field?o=n.add(ie({field:n.fieldRef(s.field),pulse:d})):s.groupby?o=n.add(G({key:n.keyRef(s.groupby),group:h(n.proxy(i.parent)),pulse:d})):t.error("Facet must specify groupby or field: "+t.stringValue(s)),r=(a=n.fork()).add(U()),l=a.add(ue({pulse:h(r)})),a.addData(u,new $n(a,r,r,l)),a.addSignal("parent",null),o.params.subflow={$subflow:Mn(e,a).toRuntime()}}(e,n,r):$?function(e,t,n){var i=t.add(ie({pulse:n.pulse})),a=t.fork();a.add(ue()),a.addSignal("parent",null),i.params.subflow={$subflow:Mn(e,a).toRuntime()}}(e,n,r):Mn(e,n),n.popState(),$&&(S&&i.push(S),i.push(s))),R&&(v=function(e,t,n){var i,a=e.method,r=e.bound,l=e.separation,o={separation:O(l)?n.signalRef(l.signal):l,method:O(a)?n.signalRef(a.signal):a,pulse:t};e.order&&(o.sort=n.compareRef({field:e.order}));r&&(i=r.tolerance,o.boundTolerance=O(i)?n.signalRef(i.signal):+i,o.boundScale=n.scaleRef(r.scale),o.boundOrient=r.orient);return h(n.add(te(o)))}(R,v,n)),u=n.add(oe({pulse:v})),d=n.add(ue({pulse:h(u)},void 0,n.parent())),null!=e.name&&(c=e.name,n.addData(c,new $n(n,l,u,d)),e.on&&e.on.forEach((function(e){(e.insert||e.remove||e.toggle)&&t.error("Marks only support modify triggers."),zn(e,n,c)})))}function Dn(e,n){var i,a,l,o,s,u,d,c,p,g=n.config.legend,m=e.encode||{},y=m.legend||{},v=y.name||void 0,b=y.interactive,x=y.style,k=At(e,g),S=Ye.reduce((function(t,n){return t||e[n]}),0);return S||t.error("Missing valid scale for legend."),s=function(e,t){var n=e.type||Ne;e.type||1!==function(e){return Ye.reduce((function(t,n){return t+(e[n]?1:0)}),0)}(e)||!e.fill&&!e.stroke||(n=r.isContinuous(t)?Ge:r.isDiscretizing(t)?Xe:Ne);return n!==Ge?n:r.isDiscretizing(t)?Xe:Ge}(e,n.scaleType(S)),u={title:null!=e.title,type:s,vgrad:"symbol"!==s&&k.isVertical()},d=h(n.add(U(null,[u]))),y=_t(function(e,t){var n={enter:{},update:{}};return Pt(n,{orient:e("orient"),offset:e("offset"),padding:e("padding"),titlePadding:e("titlePadding"),cornerRadius:e("cornerRadius"),fill:e("fillColor"),stroke:e("strokeColor"),strokeWidth:t.strokeWidth,strokeDash:t.strokeDash,x:e("legendX"),y:e("legendY")}),n}(k,g),y,Qe),i={enter:{x:{value:0},y:{value:0}}},c=h(n.add(Q(l={type:s,scale:n.scaleRef(S),count:n.objectProperty(k("tickCount")),limit:n.property(k("symbolLimit")),values:n.objectProperty(e.values),minstep:n.property(e.tickMinStep),formatType:n.property(e.formatType),formatSpecifier:n.property(e.format)}))),s===Ge?(o=[Nt(e,S,g,m.gradient),Qt(e,g,m.labels,c)],l.count=l.count||n.signalRef(`max(2,2*floor((${w(k.gradientLength())})/100))`)):s===Xe?o=[Gt(e,S,g,m.gradient,c),Qt(e,g,m.labels,c)]:(a=function(e,t){const n=At(e,t);return{align:n("gridAlign"),columns:n.entryColumns(),center:{row:!0,column:!1},padding:{row:n("rowPadding"),column:n("columnPadding")}}}(e,g),o=[Kt(e,g,m,c,w(a.columns))],l.size=function(e,t,n){var i=w(Pn("size",e,n)),a=w(Pn("strokeWidth",e,n)),r=w(function(e,t,n){return Ft("fontSize",e)||function(e,t,n){var i=t.config.style[n];return i&&i[e]}("fontSize",t,n)}(n[1].encode,t,Ue));return f(`max(ceil(sqrt(${i})+${a}),${r})`,t)}(e,n,o[0].marks)),o=[Jt(kt,null,null,d,b,i,o,a)],u.title&&o.push(function(e,t,n,i){var a,r=At(e,t);return Pt(a={enter:{opacity:Je},update:{opacity:Ke,x:{field:{group:"padding"}},y:{field:{group:"padding"}}},exit:{opacity:Je}},{orient:r("titleOrient"),_anchor:r("titleAnchor"),anchor:{signal:ln},angle:{signal:on},align:{signal:rn},baseline:{signal:sn},text:e.title,fill:r("titleColor"),fillOpacity:r("titleOpacity"),font:r("titleFont"),fontSize:r("titleFontSize"),fontStyle:r("titleFontStyle"),fontWeight:r("titleFontWeight"),limit:r("titleLimit"),lineHeight:r("titleLineHeight")},{align:r("titleAlign"),baseline:r("titleBaseline")}),Lt(It,Rt,qe,null,i,a,n)}(e,g,m.title,d)),p=Jt(bt,x,v,d,b,y,o),e.zindex&&(p.zindex=e.zindex),Vn(p,n)}function Pn(e,t,n){return t[e]?`scale("${t[e]}",datum)`:Ft(e,n[0].encode)}On.countsRef=function(e,t,n){var i,a,r,l=this.counts||(this.counts={}),o=Rn(t);return null!=o&&(e=this.scope,i=l[o]),i?n&&n.field&&jn(e,i.agg.params,n):(r={groupby:e.fieldRef(t,"key"),pulse:h(this.output)},n&&n.field&&jn(e,r,n),a=e.add(T(r)),i=e.add(U({pulse:h(a)})),i={agg:a,ref:h(i)},null!=o&&(l[o]=i)),i.ref},On.tuplesRef=function(){return h(this.values)},On.extentRef=function(e,t){return wn(e,this,"extent","extent",t,!1)},On.domainRef=function(e,t){return wn(e,this,"domain","values",t,!1)},On.valuesRef=function(e,t,n){return wn(e,this,"vals","values",t,n||!0)},On.lookupRef=function(e,t){return wn(e,this,"lookup","tupleindex",t,!1)},On.indataRef=function(e,t){return wn(e,this,"indata","tupleindex",t,!0,!0)};const _n=`item.orient==="${Ve}"?-90:item.orient==="${De}"?90:0`;function Wn(e,n){var i,a,r=At(e=t.isString(e)?{text:e}:e,n.config.title),l=e.encode||{},o=l.group||{},s=o.name||void 0,u=o.interactive,d=o.style,c=[];return i=h(n.add(U(null,[{}]))),c.push(function(e,t,n,i){var a={value:0},r=e.text,l={enter:{opacity:a},update:{opacity:{value:1}},exit:{opacity:a}};return Pt(l,{text:r,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:t("dx"),dy:t("dy"),fill:t("color"),font:t("font"),fontSize:t("fontSize"),fontStyle:t("fontStyle"),fontWeight:t("fontWeight"),lineHeight:t("lineHeight")},{align:t("align"),angle:t("angle"),baseline:t("baseline")}),Lt(It,wt,He,null,i,l,n)}(e,r,function(e){const n=e.encode;return n&&n.title||t.extend({name:e.name,interactive:e.interactive,style:e.style},n)}(e),i)),e.subtitle&&c.push(function(e,t,n,i){var a={value:0},r=e.subtitle,l={enter:{opacity:a},update:{opacity:{value:1}},exit:{opacity:a}};return Pt(l,{text:r,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:t("dx"),dy:t("dy"),fill:t("subtitleColor"),font:t("subtitleFont"),fontSize:t("subtitleFontSize"),fontStyle:t("subtitleFontStyle"),fontWeight:t("subtitleFontWeight"),lineHeight:t("subtitleLineHeight")},{align:t("align"),angle:t("angle"),baseline:t("baseline")}),Lt(It,zt,Ie,null,i,l,n)}(e,r,l.subtitle,i)),a=Jt(jt,d,s,i,u,function(e,t){var n={enter:{},update:{}};return Pt(n,{orient:e("orient"),anchor:e("anchor"),align:{signal:Bt},angle:{signal:_n},limit:e("limit"),frame:e("frame"),offset:e("offset")||0,padding:e("subtitlePadding")}),_t(n,t,Qe)}(r,o),c),e.zindex&&(a.zindex=e.zindex),Vn(a,n)}function En(e,n){var i=[];e.transform&&e.transform.forEach((function(e){i.push(gn(e,n))})),e.on&&e.on.forEach((function(t){zn(t,n,e.name)})),n.addDataPipeline(e.name,function(e,n,i){var a,r,l,o,s,u=[],d=null,c=!1,f=!1;e.values?R(e.values)||R(e.format)?(u.push(Ln(n,e)),u.push(d=Cn())):u.push(d=Cn({$ingest:e.values,$format:e.format})):e.url?R(e.url)||R(e.format)?(u.push(Ln(n,e)),u.push(d=Cn())):u.push(d=Cn({$request:e.url,$format:e.format})):e.source&&(d=a=t.array(e.source).map((function(e){return h(n.getData(e).output)})),u.push(null));for(r=0,l=i.length;r<l;++r)o=i[r],s=o.metadata,d||s.source||u.push(d=Cn()),u.push(o),s.generates&&(f=!0),s.modifies&&!f&&(c=!0),s.source?d=o:s.changes&&(d=null);a&&(l=a.length-1,u[0]=le({derive:c,pulse:l?a:a[0]}),(c||l)&&u.splice(1,0,Cn()));d||u.push(Cn());return u.push(ue({})),u}(e,n,i))}function Cn(e){var t=U({},e);return t.metadata={source:!0},t}function Ln(e,t){return J({url:t.url?e.property(t.url):void 0,async:t.async?e.property(t.async):void 0,values:t.values?e.property(t.values):void 0,format:e.objectProperty(t.format)})}function An(e,t){return{scale:e.scale,range:t}}function Fn(e,n,i,a,r){var l,o,s,u,d,c,f,p,g,m=At(e,n),h=e.orient,y=e.gridScale,v=h===Ve||h===ze?1:-1,b=function(e,n){if(1===n);else if(t.isObject(e)){for(var i=e=t.extend({},e);null!=i.mult;){if(!t.isObject(i.mult))return i.mult*=n,e;i=i.mult=t.extend({},i.mult)}i.mult=n}else e=n*(e||0);return e}(e.offset,v);return Pt(l={enter:o={opacity:Je},update:u={opacity:Ke},exit:s={opacity:Je}},{stroke:m("gridColor"),strokeDash:m("gridDash"),strokeDashOffset:m("gridDashOffset"),strokeOpacity:m("gridOpacity"),strokeWidth:m("gridWidth")}),d={scale:e.scale,field:Me,band:r.band,extra:r.extra,offset:r.offset,round:m("tickRound")},h===ze||h===Pe?(c="x",f="y",g="height"):(c="y",f="x",g="width"),p=f+"2",u[c]=o[c]=s[c]=d,y?(u[f]=o[f]={scale:y,range:0,mult:v,offset:b},u[p]=o[p]={scale:y,range:1,mult:v,offset:b}):(u[f]=o[f]={value:0,offset:b},u[p]=o[p]={signal:g,mult:v,offset:b}),Lt(qt,mt,null,Me,a,l,i)}function Tn(e,t,n,i,a){return{signal:'flush(range("'+e+'"), scale("'+e+'", datum.value), '+t+","+n+","+i+","+a+")"}}function Bn(e,n){var i,a,r,l,o,s,u=function(e,n){var i=n.config,a=e.orient,r=a===ze||a===Pe?i.axisX:i.axisY,l=i["axis"+a[0].toUpperCase()+a.slice(1)],o="band"===n.scaleType(e.scale)&&i.axisBand;return r||l||o?t.extend({},i.axis,r,l,o):i.axis}(e,n),d=e.encode||{},c=d.axis||{},f=c.name||void 0,p=c.interactive,g=c.style,m=At(e,u),y=function(e){let n,i,a=e("tickBand"),r=e("tickOffset");return a?a.signal?(n={signal:`(${a.signal})==='extent'?1:0.5`},i={signal:`(${a.signal})==='extent'?true:false`},t.isObject(r)||(r={signal:`(${a.signal})==='extent'?0:${r}`})):"extent"===a?(n=1,i=!0,r=0):(n=.5,i=!1):(n=e("bandPosition"),i=e("tickExtra")),{extra:i,band:n,offset:r}}(m);return i={orient:e.orient,ticks:!!m("ticks"),labels:!!m("labels"),grid:!!m("grid"),domain:!!m("domain"),title:null!=e.title,translate:m("translate")},a=h(n.add(U({},[i]))),c=_t({update:{offset:Vt(m("offset")||0),position:Vt(j(e.position,0)),titlePadding:Vt(m("titlePadding")),minExtent:Vt(m("minExtent")),maxExtent:Vt(m("maxExtent")),range:{signal:`abs(span(range("${e.scale}")))`}}},d.axis,Qe),r=h(n.add(B({scale:n.scaleRef(e.scale),extra:n.property(y.extra),count:n.objectProperty(e.tickCount),values:n.objectProperty(e.values),minstep:n.property(e.tickMinStep),formatType:n.property(e.formatType),formatSpecifier:n.property(e.format)}))),s=[],i.grid&&s.push(Fn(e,u,d.grid,r,y)),i.ticks&&(l=m("tickSize"),s.push(function(e,t,n,i,a,r){var l,o,s,u,d,c,f=At(e,t),p=e.orient,g=p===Ve||p===ze?-1:1;return Pt(l={enter:o={opacity:Je},update:u={opacity:Ke},exit:s={opacity:Je}},{stroke:f("tickColor"),strokeDash:f("tickDash"),strokeDashOffset:f("tickDashOffset"),strokeOpacity:f("tickOpacity"),strokeWidth:f("tickWidth")}),(d=Vt(a)).mult=g,c={scale:e.scale,field:Me,band:r.band,extra:r.extra,offset:r.offset,round:f("tickRound")},p===ze||p===Pe?(u.y=o.y=Je,u.y2=o.y2=d,u.x=o.x=s.x=c):(u.x=o.x=Je,u.x2=o.x2=d,u.y=o.y=s.y=c),Lt(qt,yt,null,Me,i,l,n)}(e,u,d.ticks,r,l,y))),i.labels&&(l=i.ticks?l:0,s.push(function(e,t,n,i,a,r){var l,o,s,u,d,c,f,p,g,m,h=At(e,t),y=e.orient,v=y===Ve||y===ze?-1:1,b=y===ze||y===Pe,x=e.scale,k=w(h("labelFlush")),S=w(h("labelFlushOffset")),$=0===k||!!k,O=h("labelAlign"),R=h("labelBaseline");return(s=Vt(a)).mult=v,s.offset=Vt(h("labelPadding")||0),s.offset.mult=v,u={scale:x,field:Me,band:.5,offset:r.offset},b?(d=O||($?Tn(x,k,'"left"','"right"','"center"'):"center"),c=R||(y===ze?"bottom":"top"),f=!O):(d=O||(y===De?"left":"right"),c=R||($?Tn(x,k,'"top"','"bottom"','"middle"'):"middle"),f=!R),f=f&&$&&S?Tn(x,k,"-("+S+")",S,0):null,Pt(l={enter:o={opacity:Je,x:b?u:s,y:b?s:u},update:{opacity:Ke,text:{field:Le},x:o.x,y:o.y},exit:{opacity:Je,x:o.x,y:o.y}},{[b?"dx":"dy"]:f,align:d,baseline:c,angle:h("labelAngle"),fill:h("labelColor"),fillOpacity:h("labelOpacity"),font:h("labelFont"),fontSize:h("labelFontSize"),fontWeight:h("labelFontWeight"),fontStyle:h("labelFontStyle"),limit:h("labelLimit")}),p=h("labelBound"),g=h("labelOverlap"),m=h("labelSeparation"),e=Lt(It,ht,Ue,Me,i,l,n),(g||p)&&(e.overlap={separation:m,method:g,order:"datum.index",bound:p?{scale:x,orient:y,tolerance:p}:null}),e}(e,u,d.labels,r,l,y))),i.domain&&s.push(function(e,t,n,i){var a,r,l,o,s,u,d=At(e,t),c=e.orient;return Pt(a={enter:r={opacity:Je},update:l={opacity:Ke},exit:{opacity:Je}},{stroke:d("domainColor"),strokeDash:d("domainDash"),strokeDashOffset:d("domainDashOffset"),strokeWidth:d("domainWidth"),strokeOpacity:d("domainOpacity")}),c===ze||c===Pe?(o="x",u="y"):(o="y",u="x"),s=o+"2",r[u]=Je,l[o]=r[o]=An(e,0),l[s]=r[s]=An(e,1),Lt(qt,gt,null,null,i,a,n)}(e,u,d.domain,a)),i.title&&s.push(function(e,n,i,a){var r,l,o,s,u=At(e,n),d=e.orient,c=d===Ve||d===ze?-1:1,f=d===ze||d===Pe;return r={enter:l={opacity:Je,anchor:Vt(u("titleAnchor")),align:{signal:Bt}},update:o=t.extend({},l,{opacity:Ke,text:Vt(e.title)}),exit:{opacity:Je}},s={signal:`lerp(range("${e.scale}"), ${Tt(0,1,.5)})`},f?(o.x=s,l.angle={value:0},l.baseline={value:d===ze?"bottom":"top"}):(o.y=s,l.angle={value:90*c},l.baseline={value:"bottom"}),Pt(r,{angle:u("titleAngle"),baseline:u("titleBaseline"),fill:u("titleColor"),fillOpacity:u("titleOpacity"),font:u("titleFont"),fontSize:u("titleFontSize"),fontStyle:u("titleFontStyle"),fontWeight:u("titleFontWeight"),limit:u("titleLimit"),lineHeight:u("titleLineHeight")},{align:u("titleAlign")}),!Dt(r,"x",u("titleX"),"update")&&!f&&!Ct("x",i)&&(r.enter.auto={value:!0}),!Dt(r,"y",u("titleY"),"update")&&f&&!Ct("y",i)&&(r.enter.auto={value:!0}),Lt(It,vt,qe,null,a,r,i)}(e,u,d.title,a)),o=Jt(pt,g,f,a,p,c,s),e.zindex&&(o.zindex=e.zindex),Vn(o,n)}function Mn(e,n,i){var a=t.array(e.signals),l=t.array(e.scales);return i||a.forEach(e=>c(e,n)),t.array(e.projections).forEach(e=>(function(e,t){var n=t.config.projection||{},i={};for(var a in e)"name"!==a&&(i[a]=we(e[a],a,t));for(a in n)null==i[a]&&(i[a]=we(n[a],a,t));t.addProjection(e.name,i)})(e,n)),l.forEach(e=>(function(e,n){var i=e.type||"linear";r.isValidScaleType(i)||t.error("Unrecognized scale type: "+t.stringValue(i)),n.addScale(e.name,{type:i,domain:void 0})})(e,n)),t.array(e.data).forEach(e=>En(e,n)),l.forEach(e=>me(e,n)),(i||a).forEach(e=>A(e,n)),t.array(e.axes).forEach(e=>Bn(e,n)),t.array(e.marks).forEach(e=>Vn(e,n)),t.array(e.legends).forEach(e=>Dn(e,n)),e.title&&Wn(e.title,n),n.parseLambdas(),n}var Un=t.toSet(["width","height","padding","autosize"]);function qn(e,n){var i,a,r,l,s,u,d=n.config;return n.background=e.background||d.background,n.eventConfig=d.events,s=h(n.root=n.add(m())),n.addSignal("width",e.width||0),n.addSignal("height",e.height||0),n.addSignal("padding",function(e,n){return e=e||n.padding,t.isObject(e)?{top:o(e.top),bottom:o(e.bottom),left:o(e.left),right:o(e.right)}:{top:i=o(e),bottom:i,left:i,right:i};var i}(e.padding,d)),n.addSignal("autosize",function(e,n){return e=e||n.autosize,t.isObject(e)?e:{type:e||"pad"}}(e.autosize,d)),n.legends=n.objectProperty(d.legend&&d.legend.layout),u=function(e,n,i){if(t.array(n).forEach(t=>{Un[t.name]||c(t,e)}),!i)return n;const a=t.array(n).slice();return t.array(i).forEach(t=>{e.hasOwnSignal(t.name)||(c(t,e),a.push(t))}),a}(n,e.signals,d.signals),a=n.add(U()),r=_t({enter:{x:{value:0},y:{value:0}},update:{width:{signal:"width"},height:{signal:"height"}}},e.encode),r=n.add(I(Wt(r,Mt,ct,e.style,n,{pulse:h(a)}))),l=n.add(ce({layout:n.objectProperty(e.layout),legends:n.legends,autosize:n.signalRef("autosize"),mark:s,pulse:h(r)})),n.operators.pop(),n.pushState(h(r),h(l),null),Mn(e,n,u),n.operators.push(l),i=n.add(M({mark:s,pulse:h(l)})),i=n.add(oe({pulse:h(i)})),i=n.add(ue({pulse:h(i)})),n.addData("root",new $n(n,a,a,i)),n}function Hn(e){this.config=e,this.bindings=[],this.field={},this.signals={},this.lambdas={},this.scales={},this.events={},this.data={},this.streams=[],this.updates=[],this.operators=[],this.background=null,this.eventConfig=null,this._id=0,this._subid=0,this._nextsub=[0],this._parent=[],this._encode=[],this._lookup=[],this._markpath=[]}function In(e){this.config=e.config,this.legends=e.legends,this.field=Object.create(e.field),this.signals=Object.create(e.signals),this.lambdas=Object.create(e.lambdas),this.scales=Object.create(e.scales),this.events=Object.create(e.events),this.data=Object.create(e.data),this.streams=[],this.updates=[],this.operators=[],this._id=0,this._subid=++e._nextsub[0],this._nextsub=e._nextsub,this._parent=e._parent.slice(),this._encode=e._encode.slice(),this._lookup=e._lookup.slice(),this._markpath=e._markpath}var Nn=Hn.prototype=In.prototype;function Gn(e){return(t.isArray(e)?Xn:Yn)(e)}function Xn(e){for(var n,i="[",a=0,r=e.length;a<r;++a)n=e[a],i+=(a>0?",":"")+(t.isObject(n)?n.signal||Gn(n):t.stringValue(n));return i+"]"}function Yn(e){var n,i,a="{",r=0;for(n in e)i=e[n],a+=(++r>1?",":"")+t.stringValue(n)+":"+(t.isObject(i)?i.signal||Gn(i):t.stringValue(i));return a+"}"}Nn.fork=function(){return new In(this)},Nn.isSubscope=function(){return this._subid>0},Nn.toRuntime=function(){return this.finish(),{background:this.background,operators:this.operators,streams:this.streams,updates:this.updates,bindings:this.bindings,eventConfig:this.eventConfig}},Nn.id=function(){return(this._subid?this._subid+":":0)+this._id++},Nn.add=function(e){return this.operators.push(e),e.id=this.id(),e.refs&&(e.refs.forEach((function(t){t.$ref=e.id})),e.refs=null),e},Nn.proxy=function(e){var t=e instanceof p?h(e):e;return this.add(re({value:t}))},Nn.addStream=function(e){return this.streams.push(e),e.id=this.id(),e},Nn.addUpdate=function(e){return this.updates.push(e),e},Nn.finish=function(){var e,t;for(e in this.root&&(this.root.root=!0),this.signals)this.signals[e].signal=e;for(e in this.scales)this.scales[e].scale=e;function n(e,t,n){var i;e&&((i=e.data||(e.data={}))[t]||(i[t]=[])).push(n)}for(e in this.data)for(var i in n((t=this.data[e]).input,e,"input"),n(t.output,e,"output"),n(t.values,e,"values"),t.index)n(t.index[i],e,"index:"+i);return this},Nn.pushState=function(e,t,n){this._encode.push(h(this.add(ue({pulse:e})))),this._parent.push(t),this._lookup.push(n?h(this.proxy(n)):null),this._markpath.push(-1)},Nn.popState=function(){this._encode.pop(),this._parent.pop(),this._lookup.pop(),this._markpath.pop()},Nn.parent=function(){return t.peek(this._parent)},Nn.encode=function(){return t.peek(this._encode)},Nn.lookup=function(){return t.peek(this._lookup)},Nn.markpath=function(){var e=this._markpath;return++e[e.length-1]},Nn.fieldRef=function(e,n){if(t.isString(e))return y(e,n);e.signal||t.error("Unsupported field reference: "+t.stringValue(e));var i,a=e.signal,r=this.field[a];return r||(i={name:this.signalRef(a)},n&&(i.as=n),this.field[a]=r=h(this.add(X(i)))),r},Nn.compareRef=function(e){function n(e){return O(e)?(a=!0,i.signalRef(e.signal)):function(e){return e&&e.expr}(e)?(a=!0,i.exprRef(e.expr)):e}var i=this,a=!1,r=t.array(e.field).map(n),l=t.array(e.order).map(n);return a?h(this.add(q({fields:r,orders:l}))):b(r,l)},Nn.keyRef=function(e,n){var i=this.signals,a=!1;return e=t.array(e).map((function(e){return O(e)?(a=!0,h(i[e.signal])):e})),a?h(this.add(Y({fields:e,flat:n}))):function(e,t){var n={$key:e};return t&&(n.$flat=!0),n}(e,n)},Nn.sortRef=function(e){if(!e)return e;var t=k(e.op,e.field),n=e.order||"ascending";return n.signal?h(this.add(q({fields:t,orders:this.signalRef(n.signal)}))):b(t,n)},Nn.event=function(e,t){var n=e+":"+t;if(!this.events[n]){var i=this.id();this.streams.push({id:i,source:e,type:t}),this.events[n]=i}return this.events[n]},Nn.hasOwnSignal=function(e){return t.hasOwnProperty(this.signals,e)},Nn.addSignal=function(e,n){this.hasOwnSignal(e)&&t.error("Duplicate signal name: "+t.stringValue(e));var i=n instanceof p?n:this.add(m(n));return this.signals[e]=i},Nn.getSignal=function(e){return this.signals[e]||t.error("Unrecognized signal name: "+t.stringValue(e)),this.signals[e]},Nn.signalRef=function(e){return this.signals[e]?h(this.signals[e]):(t.hasOwnProperty(this.lambdas,e)||(this.lambdas[e]=this.add(m(null))),h(this.lambdas[e]))},Nn.parseLambdas=function(){for(var e=Object.keys(this.lambdas),t=0,n=e.length;t<n;++t){var i=e[t],a=f(i,this),r=this.lambdas[i];r.params=a.$params,r.update=a.$expr}},Nn.property=function(e){return e&&e.signal?this.signalRef(e.signal):e},Nn.objectProperty=function(e){return e&&t.isObject(e)?this.signalRef(e.signal||Gn(e)):e},Nn.exprRef=function(e,t){var n={expr:f(e,this)};return t&&(n.expr.$name=t),h(this.add(N(n)))},Nn.addBinding=function(e,n){this.bindings||t.error("Nested signals do not support binding: "+t.stringValue(e)),this.bindings.push(t.extend({signal:e},n))},Nn.addScaleProj=function(e,n){t.hasOwnProperty(this.scales,e)&&t.error("Duplicate scale or projection name: "+t.stringValue(e)),this.scales[e]=this.add(n)},Nn.addScale=function(e,t){this.addScaleProj(e,se(t))},Nn.addProjection=function(e,t){this.addScaleProj(e,ae(t))},Nn.getScale=function(e){return this.scales[e]||t.error("Unrecognized scale name: "+t.stringValue(e)),this.scales[e]},Nn.projectionRef=Nn.scaleRef=function(e){return h(this.getScale(e))},Nn.projectionType=Nn.scaleType=function(e){return this.getScale(e).params.type},Nn.addData=function(e,n){return t.hasOwnProperty(this.data,e)&&t.error("Duplicate data set name: "+t.stringValue(e)),this.data[e]=n},Nn.getData=function(e){return this.data[e]||t.error("Undefined data set name: "+t.stringValue(e)),this.data[e]},Nn.addDataPipeline=function(e,n){return t.hasOwnProperty(this.data,e)&&t.error("Duplicate data set name: "+t.stringValue(e)),this.addData(e,$n.fromEntries(this,n))};var Qn="sans-serif",Jn=30,Kn=2,Zn="#4c78a8",ei="#000",ti="#888",ni="#ddd";function ii(){return{padding:0,autosize:"pad",background:null,events:{defaults:{allow:["wheel"]}},group:null,mark:null,arc:{fill:Zn},area:{fill:Zn},image:null,line:{stroke:Zn,strokeWidth:Kn},path:{stroke:Zn},rect:{fill:Zn},rule:{stroke:ei},shape:{stroke:Zn},symbol:{fill:Zn,size:64},text:{fill:ei,font:Qn,fontSize:11},style:{"guide-label":{fill:ei,font:Qn,fontSize:10},"guide-title":{fill:ei,font:Qn,fontSize:11,fontWeight:"bold"},"group-title":{fill:ei,font:Qn,fontSize:13,fontWeight:"bold"},"group-subtitle":{fill:ei,font:Qn,fontSize:12},point:{size:Jn,strokeWidth:Kn,shape:"circle"},circle:{size:Jn,strokeWidth:Kn},square:{size:Jn,strokeWidth:Kn,shape:"square"},cell:{fill:"transparent",stroke:ni}},title:{orient:"top",anchor:"middle",offset:4,subtitlePadding:3},axis:{minExtent:0,maxExtent:200,bandPosition:.5,domain:!0,domainWidth:1,domainColor:ti,grid:!1,gridWidth:1,gridColor:ni,labels:!0,labelAngle:0,labelLimit:180,labelPadding:2,ticks:!0,tickColor:ti,tickOffset:0,tickRound:!0,tickSize:5,tickWidth:1,titlePadding:4},axisBand:{tickOffset:-.5},projection:{type:"mercator"},legend:{orient:"right",padding:0,gridAlign:"each",columnPadding:10,rowPadding:2,symbolDirection:"vertical",gradientDirection:"vertical",gradientLength:200,gradientThickness:16,gradientStrokeColor:ni,gradientStrokeWidth:0,gradientLabelOffset:2,labelAlign:"left",labelBaseline:"middle",labelLimit:160,labelOffset:4,labelOverlap:!0,symbolLimit:30,symbolType:"circle",symbolSize:100,symbolOffset:0,symbolStrokeWidth:1.5,symbolBaseFillColor:"transparent",symbolBaseStrokeColor:ti,titleLimit:180,titleOrient:"top",titlePadding:5,layout:{offset:18,direction:"horizontal",left:{direction:"vertical"},right:{direction:"vertical"}}},range:{category:{scheme:"tableau10"},ordinal:{scheme:"blues"},heatmap:{scheme:"yellowgreenblue"},ramp:{scheme:"blues"},diverging:{scheme:"blueorange",extent:[1,0]},symbol:["circle","square","triangle-up","cross","diamond","triangle-right","triangle-down","triangle-left"]}}}e.AxisDomainRole=gt,e.AxisGridRole=mt,e.AxisLabelRole=ht,e.AxisRole=pt,e.AxisTickRole=yt,e.AxisTitleRole=vt,e.DataScope=$n,e.FrameRole=ct,e.LegendEntryRole=kt,e.LegendLabelRole=$t,e.LegendRole=bt,e.LegendSymbolRole=Ot,e.LegendTitleRole=Rt,e.MarkRole=dt,e.Scope=Hn,e.ScopeRole=ft,e.config=ii,e.parse=function(e,n){return t.isObject(e)||t.error("Input Vega specification must be an object."),qn(e,new Hn(n=t.mergeConfig(ii(),n,e.config))).toRuntime()},e.signal=c,e.signalUpdates=A,e.stream=V,Object.defineProperty(e,"__esModule",{value:!0})})); |