!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("vega-util"),require("vega-loader")):"function"==typeof define&&define.amd?define(["exports","vega-util","vega-loader"],n):n((t=t||self).vega={},t.vega,t.vega)}(this,(function(t,n,e){"use strict";function r(t){var e=t||n.identity,r=[],i={};return r.add=function(t){var n=e(t);return i[n]||(i[n]=1,r.push(t)),r},r.remove=function(t){var n,s=e(t);return i[s]&&(i[s]=0,(n=r.indexOf(t))>=0&&r.splice(n,1)),r},r}async function i(t,n){try{await n(t)}catch(n){t.error(n)}}var s=Symbol("vega_id"),u=1;function a(t){return t[s]}function o(t,n){return t[s]=n,t}function l(t){var n=t===Object(t)?t:{data:t};return a(n)?n:o(n,u++)}function h(t,n){for(var e in t)n[e]=t[e];return n}function c(t){return t&&t.constructor===f}function f(){var t=[],e=[],r=[],i=[],s=[],u=!1;return{constructor:f,insert:function(e){for(var r=n.array(e),i=0,s=r.length;i0&&(_(p,d,f.value),n.modifies(d));for(h=0,c=s.length;h0&&_(t,f.field,f.value)})),n.modifies(f.field);if(u)n.mod=e.length||i.length?o.filter((function(t){return g[a(t)]>0})):o.slice();else for(v in m)n.mod.push(m[v]);return n}}}var d="_:mod:_";function p(){Object.defineProperty(this,d,{writable:!0,value:{}})}var v=p.prototype;v.set=function(t,e,r,i){var s=this,u=s[t],a=s[d];return null!=e&&e>=0?(u[e]!==r||i)&&(u[e]=r,a[e+":"+t]=-1,a[t]=-1):(u!==r||i)&&(s[t]=r,a[t]=n.isArray(r)?1+r.length:-1),s},v.modified=function(t,e){var r,i=this[d];if(!arguments.length){for(r in i)if(i[r])return!0;return!1}if(n.isArray(t)){for(r=0;r=0?e+1t?(n=e,1):0}))},D.debounce=function(t){var e=A();return this.targets().add(A(null,null,n.debounce(t,(function(t){var n=t.dataflow;e.receive(t),n&&n.run&&n.run()})))),e},D.between=function(t,n){var e=!1;return t.targets().add(A(null,null,(function(){e=!0}))),n.targets().add(A(null,null,(function(){e=!1}))),this.filter((function(){return e}))};const O=e.read;var P={skip:!0};function E(t,e,r,i,s,u){var a,o,l=n.extend({},u,P);n.isFunction(r)||(r=n.constant(r)),void 0===i?a=n=>t.touch(r(n)):n.isFunction(i)?(o=new _(null,i,s,!1),a=n=>{o.evaluate(n);const e=r(n),i=o.value;c(i)?t.pulse(e,i,u):t.update(e,i,l)}):a=n=>t.update(r(n),i,l),e.apply(a)}function b(t,e,r,i,s,u){if(void 0===i)e.targets().add(r);else{const a=u||{},o=new _(null,function(t,e){return e=n.isFunction(e)?e:n.constant(e),t?function(n,r){const i=e(n,r);return t.skip()||(t.skip(i!==this.value).value=i),i}:e}(r,i),s,!1);o.modified(a.force),o.rank=e.rank,e.targets().add(o),r&&(o.skip(!0),o.value=r.value,o.targets().add(r),t.connect(r,[o]))}}var q={};function M(t,n,e){this.dataflow=t,this.stamp=null==n?-1:n,this.add=[],this.rem=[],this.mod=[],this.fields=null,this.encode=e||null}var S=M.prototype;function L(t,n){return t?function(e,r){return t(e,r)&&n(e,r)}:n}function R(t,e){var r=[];return n.visitArray(t,e,(function(t){r.push(t)})),r}function x(t,n){var e={};return t.visit(n,(function(t){e[a(t)]=1})),function(t){return e[a(t)]?null:t}}function C(t,n,e,r){var i,s,u,a,o,l=this,h=0;for(this.dataflow=t,this.stamp=n,this.fields=null,this.encode=r||null,this.pulses=e,u=0,a=e.length;ue[t]=!0):e[t]=!0,this},S.modified=function(t,e){var r=this.fields;return!(!e&&!this.mod.length||!r)&&(arguments.length?n.isArray(t)?t.some((function(t){return r[t]})):r[t]:!!r)},S.filter=function(t,n){var e=this;return 1&t&&(e.addF=L(e.addF,n)),2&t&&(e.remF=L(e.remF,n)),4&t&&(e.modF=L(e.modF,n)),16&t&&(e.srcF=L(e.srcF,n)),e},S.materialize=function(t){var n=this;return 1&(t=t||7)&&n.addF&&(n.add=R(n.add,n.addF),n.addF=null),2&t&&n.remF&&(n.rem=R(n.rem,n.remF),n.remF=null),4&t&&n.modF&&(n.mod=R(n.mod,n.modF),n.modF=null),16&t&&n.srcF&&(n.source=n.source.filter(n.srcF),n.srcF=null),n},S.visit=function(t,e){var r,i,s=this,u=e;return 16&t?(n.visitArray(s.source,s.srcF,u),s):(1&t&&n.visitArray(s.add,s.addF,u),2&t&&n.visitArray(s.rem,s.remF,u),4&t&&n.visitArray(s.mod,s.modF,u),8&t&&(r=s.source)&&((i=s.add.length+s.mod.length)===r.length||(i?n.visitArray(r,x(s,5),u):n.visitArray(r,s.srcF,u))),s)};var T=n.inherits(C,M);function z(t){return t.error("Dataflow already running. Use runAsync() to chain invocations."),t}T.fork=function(t){var n=new M(this.dataflow).init(this,t&this.NO_FIELDS);return void 0!==t&&(t&n.ADD&&this.visit(n.ADD,(function(t){return n.add.push(t)})),t&n.REM&&this.visit(n.REM,(function(t){return n.rem.push(t)})),t&n.MOD&&this.visit(n.MOD,(function(t){return n.mod.push(t)}))),n},T.changed=function(t){return this.changes&t},T.modified=function(t){var e=this,r=e.fields;return r&&e.changes&e.MOD?n.isArray(t)?t.some((function(t){return r[t]})):r[t]:0},T.filter=function(){n.error("MultiPulse does not support filtering.")},T.materialize=function(){n.error("MultiPulse does not support materialization.")},T.visit=function(t,n){var e=this,r=e.pulses,i=r.length,s=0;if(t&e.SOURCE)for(;sn=[],size:()=>n.length,peek:()=>n[0],push:e=>(n.push(e),j(n,0,n.length-1,t)),pop:()=>{var e,r=n.pop();return n.length?(e=n[0],n[0]=r,function(t,n,e){var r,i=n,s=t.length,u=t[n],a=1+(n<<1);for(;a=0&&(a=r),t[n]=t[a],a=1+((n=a)<<1);t[n]=u,j(t,i,n,e)}(n,0,t)):e=r,e}}}function j(t,n,e,r){var i,s,u;for(i=t[e];e>n&&r(i,s=t[u=e-1>>1])<0;)t[e]=s,e=u;return t[e]=i}function N(){this.logger(n.logger()),this.logLevel(n.Error),this._clock=0,this._rank=0;try{this._loader=e.loader()}catch(t){}this._touched=r(n.id),this._input={},this._pulse=null,this._heap=U((t,n)=>t.qrank-n.qrank),this._postrun=[]}var G=N.prototype;function W(t){return function(){return this._log[t].apply(this,arguments)}}function B(t,n){_.call(this,t,null,n)}G.stamp=function(){return this._clock},G.loader=function(t){return arguments.length?(this._loader=t,this):this._loader},G.cleanThreshold=1e4,G.add=function(t,e,r,i){var s,u=1;return t instanceof _?s=t:t&&t.prototype instanceof _?s=new t:n.isFunction(t)?s=new _(null,t):(u=0,s=new _(t,e)),this.rank(s),u&&(i=r,r=e),r&&this.connect(s,s.parameters(r,i)),this.touch(s),s},G.connect=function(t,n){var e,r,i=t.rank;for(e=0,r=n.length;e=0;)s.push(e=r[i]),e===t&&n.error("Cycle detected in dataflow graph.")},G.pulse=function(t,n,e){this.touch(t,e||I);var r=new M(this,this._clock+(this._pulse?0:1)),i=t.pulse&&t.pulse.source||[];return r.target=t,this._input[t.id]=n.pulse(r,i),this},G.touch=function(t,n){var e=n||I;return this._pulse?this._enqueue(t):this._touched.add(t),e.skip&&t.skip(!0),this},G.update=function(t,n,e){var r=e||I;return(t.set(n)||r.force)&&this.touch(t,r),this},G.changeset=f,G.ingest=function(t,n,e){return this.pulse(t,this.changeset().insert(O(n,e)))},G.parse=O,G.preload=async function(t,e,r){const i=this,s=i._pending||function(t){var n,e=new Promise((function(t){n=t}));return e.requests=0,e.done=function(){0==--e.requests&&(t._pending=null,n(t))},t._pending=e}(i);s.requests+=1;const u=await i.request(e,r);return i.pulse(t,i.changeset().remove(n.truthy).insert(u.data||[])),s.done(),u},G.request=async function(t,n){const r=this;let i,s=0;try{i=await r.loader().load(t,{context:"dataflow",response:e.responseType(n&&n.type)});try{i=O(i,n)}catch(n){s=-2,r.warn("Data ingestion failed",t,n)}}catch(n){s=-1,r.warn("Loading failed",t,n)}return{data:i,status:s}},G.events=function(t,e,r,i){for(var s,u=this,a=A(r,i),o=function(t){t.dataflow=u;try{a.receive(t)}catch(t){u.error(t)}finally{u.run()}},l=0,h=(s="string"==typeof t&&"undefined"!=typeof document?document.querySelectorAll(t):n.array(t)).length;l=n.Info&&(c=Date.now(),u.debug("-- START PROPAGATION ("+d+") -----")),u._touched.forEach(t=>u._enqueue(t,!0)),u._touched=r(n.id);try{for(;u._heap.size()>0;)l=u._heap.pop(),l.rank===l.qrank?(h=l.run(u._getPulse(l,t)),h.then?h=await h:h.async&&(o.push(h.async),h=q),a>=n.Debug&&u.debug(l.id,h===q?"STOP":h,l),h!==q&&l._targets&&l._targets.forEach(t=>u._enqueue(t)),++p):u._enqueue(l,!0)}catch(t){u._heap.clear(),f=t}if(u._input={},u._pulse=null,a>=n.Info&&(c=Date.now()-c,u.info("> Pulse "+d+": "+p+" operators; "+c+"ms")),f&&(u._postrun=[],u.error(f)),u._postrun.length){const t=u._postrun.sort((t,n)=>n.priority-t.priority);u._postrun=[];for(let n=0;nu.runAsync(null,()=>{t.forEach(t=>{try{t(u)}catch(t){u.error(t)}})})),u},G.run=function(t,n,e){return this._pulse?z(this):(this.evaluate(t,n,e),this)},G.runAsync=async function(t,n,e){for(;this._running;)await this._running;const r=()=>this._running=null;return(this._running=this.evaluate(t,n,e)).then(r,r),this._running},G.runAfter=function(t,n,e){if(this._pulse||n)this._postrun.push({priority:e||0,callback:t});else try{t(this)}catch(t){this.error(t)}},G._enqueue=function(t,n){var e=t.stampt.pulse),e):this._input[t.id]||function(t,n){if(n&&n.stamp===t.stamp)return n;t=t.fork(),n&&n!==q&&(t.source=n.source);return t}(this._pulse,r&&r.pulse)},G.logger=function(t){return arguments.length?(this._log=t,this):this._log},G.error=W("error"),G.warn=W("warn"),G.info=W("info"),G.debug=W("debug"),G.logLevel=W("level");var H=n.inherits(B,_);H.run=function(t){return t.stampthis.pulse=t):n!==t.StopPropagation&&(this.pulse=n),n);var n},H.evaluate=function(t){var n=this.marshall(t.stamp),e=this.transform(n,t);return n.clear(),e},H.transform=function(){};var J={};function K(t){return t=t&&t.toLowerCase(),n.hasOwnProperty(J,t)?J[t]:null}t.Dataflow=N,t.EventStream=F,t.MultiPulse=C,t.Operator=_,t.Parameters=p,t.Pulse=M,t.Transform=B,t.UniqueList=r,t.asyncCallback=i,t.changeset=f,t.definition=function(t){var n=K(t);return n&&n.Definition||null},t.derive=function(t){return h(t,l({}))},t.ingest=l,t.isChangeSet=c,t.isTuple=function(t){return!(!t||!a(t))},t.rederive=h,t.replace=function(t,n){return o(n,a(t))},t.stableCompare=function(t,n){return t?n?(e,r)=>t(e,r)||a(n(e))-a(n(r)):(n,e)=>t(n,e)||a(n)-a(e):null},t.transform=K,t.transforms=J,t.tupleid=a,Object.defineProperty(t,"__esModule",{value:!0})}));