// All material copyright Esri, All Rights Reserved, unless otherwise specified. // See https://js.arcgis.com/4.30/esri/copyright.txt for details. //>>built define(["exports","./tslib.es6","./Theme"],function(z,C,g){function T(a){return new Promise((b,c)=>{setTimeout(b,a)})}function A(a,b){null==b&&(b=1);return U[a]*b}function G(a,b,c,d,k,e,l){if(!l||k){l=0;k||"millisecond"==b||(l=a.getTimezoneOffset(),a.setUTCMinutes(a.getUTCMinutes()-l));switch(b){case "day":d=a.getUTCDate();1=d?c-e+d:c-(7+e)+d);a.setUTCHours(0,0,0,0)}k||"millisecond"==b||(a.setUTCMinutes(a.getUTCMinutes()+l),"day"!=b&&"week"!=b&&"month"!=b&&"year"!=b)||(b=a.getTimezoneOffset(),b!=l&&(b-=l,a.setUTCMinutes(a.getUTCMinutes()+ b)))}else{if(isNaN(a.getTime()))return a;m=l.offsetUTC(a);let p=a.getTimezoneOffset();var h=l.parseDate(a);let t=h.year,n=h.month,f=h.day,u=h.hour,q=h.minute,x=h.second,w=h.millisecond;h=h.weekday;m-=p;switch(b){case "day":1=d?f-h+d:f-(7+h)+d,u=0,q=m,w=x=0}a=new Date(t,n,f,u,q,x,w);b=a.getTimezoneOffset();b=l.offsetUTC(a)-b;b!=m&&a.setTime(a.getTime()+6E4*(b-m))}return a}function Q(a,b){for(let k=0,e=b.length;k{const b=this._mainDataItems;this.markDirtyValues();this._markDirtyGroup();this._dataChanged=!0;if("clear"===a.type)g.each(b,d=>{d.dispose()}),b.length= 0,this._onDataClear();else if("push"===a.type)a=new H(this,a.newValue,this._makeDataItem(a.newValue)),b.push(a),this.processDataItem(a);else if("setIndex"===a.type){const d=b[a.index],k=this._makeDataItem(a.newValue);d.bullets&&0==d.bullets.length&&(d.bullets=void 0);g.keys(k).forEach(e=>{d.animate({key:e,to:k[e],duration:this.get("interpolationDuration",0),easing:this.get("interpolationEasing")})});d.dataContext=a.newValue}else if("insertIndex"===a.type){var c=new H(this,a.newValue,this._makeDataItem(a.newValue)); b.splice(a.index,0,c);this.processDataItem(c)}else if("removeIndex"===a.type)b[a.index].dispose(),b.splice(a.index,1);else if("moveIndex"===a.type)c=b[a.oldIndex],b.splice(a.oldIndex,1),b.splice(a.newIndex,0,c);else throw Error("Unknown IStreamEvent type");this._afterDataChange()}))}_updateFields(){this.valueFields&&(this._valueFields=[],this._valueFieldsF={},g.each(this.valueFields,a=>{this.get(a+"Field")&&(this._valueFields.push(a),this._valueFieldsF[a]={fieldKey:a+"Field",workingKey:a+"Working"})})); this.fields&&(this._fields=[],this._fieldsF={},g.each(this.fields,a=>{this.get(a+"Field")&&(this._fields.push(a),this._fieldsF[a]=a+"Field")}))}get dataItems(){return this._dataItems}processDataItem(a){}_makeDataItem(a){const b={};this._valueFields&&g.each(this._valueFields,c=>{const d=this.get(this._valueFieldsF[c].fieldKey);b[c]=a[d];b[this._valueFieldsF[c].workingKey]=b[c]});this._fields&&g.each(this._fields,c=>{const d=this.get(this._fieldsF[c]);b[c]=a[d]});return b}makeDataItem(a){a=new H(this, void 0,a);this.processDataItem(a);return a}pushDataItem(a){a=this.makeDataItem(a);this._mainDataItems.push(a);return a}disposeDataItem(a){}showDataItem(a,b){return C.__awaiter(this,void 0,void 0,function*(){a.set("visible",!0)})}hideDataItem(a,b){return C.__awaiter(this,void 0,void 0,function*(){a.set("visible",!1)})}_clearDirty(){super._clearDirty();this._valuesDirty=!1}_afterDataChange(){}_afterChanged(){super._afterChanged();this._dataChanged&&(this.events.isEnabled("datavalidated")&&this.events.dispatch("datavalidated", {type:"datavalidated",target:this}),this._dataChanged=!1);this.inited=!0}markDirtyValues(a){this.markDirty();this._valuesDirty=!0}_markDirtyGroup(){this._dataGrouped=!1}markDirtySize(){this._sizeDirty=!0;this.markDirty()}}Object.defineProperty(D,"className",{enumerable:!0,configurable:!0,writable:!0,value:"Component"});Object.defineProperty(D,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:g.Container.classNames.concat([D.className])});let U={millisecond:1,second:1E3,minute:6E4,hour:36E5, day:864E5,week:6048E5,month:365.242/12*864E5,year:31536E6};class I extends D{constructor(){super(...arguments);Object.defineProperty(this,"_aggregatesCalculated",{enumerable:!0,configurable:!0,writable:!0,value:!1});Object.defineProperty(this,"_selectionAggregatesCalculated",{enumerable:!0,configurable:!0,writable:!0,value:!1});Object.defineProperty(this,"_dataProcessed",{enumerable:!0,configurable:!0,writable:!0,value:!1});Object.defineProperty(this,"_psi",{enumerable:!0,configurable:!0,writable:!0, value:void 0});Object.defineProperty(this,"_pei",{enumerable:!0,configurable:!0,writable:!0,value:void 0});Object.defineProperty(this,"chart",{enumerable:!0,configurable:!0,writable:!0,value:void 0});Object.defineProperty(this,"bullets",{enumerable:!0,configurable:!0,writable:!0,value:new g.List});Object.defineProperty(this,"bulletsContainer",{enumerable:!0,configurable:!0,writable:!0,value:g.Container.new(this._root,{width:g.p100,height:g.p100,position:"absolute"})})}_afterNew(){this.valueFields.push("value", "customValue");super._afterNew();this.setPrivate("customData",{});this._disposers.push(this.bullets.events.onAll(a=>{if("clear"===a.type)this._handleBullets(this.dataItems);else if("push"===a.type)this._handleBullets(this.dataItems);else if("setIndex"===a.type)this._handleBullets(this.dataItems);else if("insertIndex"===a.type)this._handleBullets(this.dataItems);else if("removeIndex"===a.type)this._handleBullets(this.dataItems);else if("moveIndex"===a.type)this._handleBullets(this.dataItems);else throw Error("Unknown IListEvent type"); }))}_dispose(){this.bulletsContainer.dispose();super._dispose()}startIndex(){let a=this.dataItems.length;return Math.min(this.getPrivate("startIndex",0),a)}endIndex(){let a=this.dataItems.length;return Math.min(this.getPrivate("endIndex",a),a)}_handleBullets(a){g.each(a,b=>{const c=b.bullets;c&&(g.each(c,d=>{d.dispose()}),b.bullets=void 0)});this.markDirtyValues()}getDataItemById(a){return g.find(this.dataItems,b=>b.get("id")==a)}_makeBullets(a){this._shouldMakeBullet(a)&&(a.bullets=[],this.bullets.each(b=> {this._makeBullet(a,b)}))}_shouldMakeBullet(a){return!0}_makeBullet(a,b,c){if(b=b(this._root,this,a))b._index=c,this._makeBulletReal(a,b);return b}_makeBulletReal(a,b){let c=b.get("sprite");c&&(c._setDataItem(a),c.setRaw("position","absolute"),this.bulletsContainer.children.push(c));b.series=this;a.bullets.push(b)}addBullet(a,b){a.bullets||(a.bullets=[]);b&&this._makeBulletReal(a,b)}_clearDirty(){super._clearDirty();this._selectionAggregatesCalculated=this._aggregatesCalculated=!1}_prepareChildren(){super._prepareChildren(); var a=this.startIndex(),b=this.endIndex();this.isDirty("name")&&this.updateLegendValue();this.isDirty("heatRules")&&(this._valuesDirty=!0);if(this.isPrivateDirty("baseValueSeries")){var c=this.getPrivate("baseValueSeries");c&&this._disposers.push(c.onPrivate("startIndex",()=>{this.markDirtyValues()}))}this.get("calculateAggregates")&&(!this._valuesDirty||this._dataProcessed||this._aggregatesCalculated||(this._calculateAggregates(0,this.dataItems.length),this._aggregatesCalculated=!0,0!=a&&(this._psi= void 0)),this._psi==a&&this._pei==b&&!this.isPrivateDirty("adjustedStartIndex")||this._selectionAggregatesCalculated||(0===a&&b===this.dataItems.length&&this._aggregatesCalculated||this._calculateAggregates(a,b),this._selectionAggregatesCalculated=!0));this.isDirty("tooltip")&&(a=this.get("tooltip"))&&(a.hide(0),a.set("tooltipTarget",this));if(this.isDirty("fill")||this.isDirty("stroke"))(a=this.get("legendDataItem"))&&(a=a.get("markerRectangle"))&&this.isVisible()&&(this.isDirty("stroke")&&(b=this.get("stroke"), a.set("stroke",b)),this.isDirty("fill")&&(b=this.get("fill"),a.set("fill",b))),this.updateLegendMarker(void 0);if(0{d[f]=0;k[f]=0;e[f]=0});g.each(c, f=>{var u=f+"Change",q=f+"ChangePercent";let x=f+"ChangePrevious",w=f+"ChangePreviousPercent",L=f+"ChangeSelection",M=f+"ChangeSelectionPercent",r="valueY";if("valueX"==f||"openValueX"==f||"lowValueX"==f||"highValueX"==f)r="valueX";var y=this.getPrivate("baseValueSeries");const S=this.getPrivate("adjustedStartIndex",a);for(let N=S;Nv||null==l[f])l[f]=v;if(m[f]{this.setPrivate(f+"AverageSelection",t[f]);this.setPrivate(f+"CountSelection",e[f]);this.setPrivate(f+"SumSelection",d[f]);this.setPrivate(f+"AbsoluteSumSelection",k[f]);this.setPrivate(f+"LowSelection",l[f]);this.setPrivate(f+"HighSelection",m[f]);this.setPrivate(f+"OpenSelection",h[f]);this.setPrivate(f+"CloseSelection",p[f])});0===a&&b===this.dataItems.length&&g.each(c,f=>{this.setPrivate(f+ "Average",t[f]);this.setPrivate(f+"Count",e[f]);this.setPrivate(f+"Sum",d[f]);this.setPrivate(f+"AbsoluteSum",k[f]);this.setPrivate(f+"Low",l[f]);this.setPrivate(f+"High",m[f]);this.setPrivate(f+"Open",h[f]);this.setPrivate(f+"Close",p[f])})}_updateChildren(){super._updateChildren();this._psi=this.startIndex();this._pei=this.endIndex();this.isDirty("visible")&&this.bulletsContainer.set("visible",this.get("visible"));var a=this.get("heatRules");this._valuesDirty&&a&&0{const k= d.minValue||this.getPrivate(d.dataField+"Low")||0,e=d.maxValue||this.getPrivate(d.dataField+"High")||0;g.each(d.target._entities,l=>{const m=l.dataItem.get(d.dataField);if(!g.isNumber(m)){d.neutral&&l.set(d.key,d.neutral);var h=l.states;h&&(h=h.lookup("default"))&&d.neutral&&h.set(d.key,d.neutral);if(!d.customFunction)return}if(d.customFunction)d.customFunction.call(this,l,k,e,m);else{h=d.logarithmic?(Math.log(m)*Math.LOG10E-Math.log(k)*Math.LOG10E)/(Math.log(e)*Math.LOG10E-Math.log(k)*Math.LOG10E): (m-k)/(e-k);!g.isNumber(m)||g.isNumber(h)&&Infinity!=Math.abs(h)||(h=.5);let p;g.isNumber(d.min)?p=d.min+(d.max-d.min)*h:d.min instanceof g.Color?p=g.Color.interpolate(h,d.min,d.max):d.min instanceof g.Percent&&(p=g.percentInterpolate(h,d.min,d.max));l.set(d.key,p);(l=l.states)&&(l=l.lookup("default"))&&l.set(d.key,p)}})});if(this.get("visible")){a=this.dataItems.length;var b=this.startIndex(),c=this.endIndex();c{this._positionBullet(b);const c=b.get("sprite");b.get("dynamic")&&(c&&(c._markDirtyKey("fill"),c.markDirtySize()),c instanceof g.Container&&c.walkChildren(d=>{d._markDirtyKey("fill");d.markDirtySize();d instanceof g.Label&&d.text.markDirtyText()}));c instanceof g.Label&&c.get("populateText")&&c.text.markDirtyText()})}_hideBullets(a){a.bullets&&g.each(a.bullets,b=>{(b=b.get("sprite"))&&b.setPrivate("visible", !1)})}_positionBullet(a){}_placeBulletsContainer(a){a.bulletsContainer.children.moveValue(this.bulletsContainer)}_removeBulletsContainer(){const a=this.bulletsContainer;a.parent&&a.parent.children.removeValue(a)}disposeDataItem(a){(a=a.bullets)&&g.each(a,b=>{b.dispose()})}_getItemReaderLabel(){return""}showDataItem(a,b){const c=Object.create(null,{showDataItem:{get:()=>super.showDataItem}});return C.__awaiter(this,void 0,void 0,function*(){const d=[c.showDataItem.call(this,a,b)],k=a.bullets;k&&g.each(k, e=>{(e=e.get("sprite"))&&d.push(e.show(b))});yield Promise.all(d)})}hideDataItem(a,b){const c=Object.create(null,{hideDataItem:{get:()=>super.hideDataItem}});return C.__awaiter(this,void 0,void 0,function*(){const d=[c.hideDataItem.call(this,a,b)],k=a.bullets;k&&g.each(k,e=>{(e=e.get("sprite"))&&d.push(e.hide(b))});yield Promise.all(d)})}_sequencedShowHide(a,b){return C.__awaiter(this,void 0,void 0,function*(){if(this.get("sequencedInterpolation"))if(g.isNumber(b)||(b=this.get("interpolationDuration", 0)),0C.__awaiter(this,void 0,void 0,function*(){let l=b||0;if(ed+10)l=0;let m=this.get("sequencedDelay",0)+l/(d-c);yield T(m*(e-c));a?yield this.showDataItem(k,l):yield this.hideDataItem(k,l)})))}else yield Promise.all(g.map(this.dataItems,c=>a?this.showDataItem(c,0):this.hideDataItem(c,0)))})}updateLegendValue(a){if(a){var b=a.get("legendDataItem");if(b){var c=b.get("valueLabel");if(c){var d=c.text; let k="";c._setDataItem(a);k=this.get("legendValueText",d.get("text",""));c.set("text",k);d.markDirtyText()}if(b=b.get("label"))c=b.text,d="",b._setDataItem(a),d=this.get("legendLabelText",c.get("text","")),b.set("text",d),c.markDirtyText()}}}updateLegendMarker(a){}_onHide(){super._onHide();const a=this.getTooltip();a&&a.hide()}hoverDataItem(a){}unhoverDataItem(a){}_getBase(a){const b=this.dataItems[this.startIndex()];return b?b.get(a):0}}Object.defineProperty(I,"className",{enumerable:!0,configurable:!0, writable:!0,value:"Series"});Object.defineProperty(I,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:D.classNames.concat([I.className])});class E extends g.Graphics{_beforeChanged(){super._beforeChanged();if(this.isDirty("points")||this.isDirty("segments")||this._sizeDirty||this.isPrivateDirty("width")||this.isPrivateDirty("height"))this._clear=!0}_changed(){super._changed();if(this._clear){var a=this.get("points"),b=this.get("segments");a&&0k)throw Error(`negative radius: ${k}`);var e=this._x1, l=this._y1;let m=c-a,h=d-b,p=e-a,t=l-b;var n=p*p+t*t;if(null===this._x1)this._append`M${this._x1=a},${this._y1=b}`;else if(1E-6p*d)},${this._x1=a+n*m},${this._y1=b+n*h}`}else this._append`L${this._x1=a},${this._y1=b}`}arc(a,b,c,d,k,e){a=+a;b=+b;c=+c;e=!!e;if(0> c)throw Error(`negative radius: ${c}`);let l=c*Math.cos(d),m=c*Math.sin(d),h=a+l,p=b+m,t=1^e;d=e?d-k:k-d;null===this._x1?this._append`M${h},${p}`:(1E-6d&&(d=d%P+P),d>X?this._append`A${c},${c},0,1,${t},${a-l},${b-m}A${c},${c},0,1,${t},${this._x1=h},${this._y1=p}`:1E-6=O)},${t},${this._x1=a+c*Math.cos(k)},${this._y1=b+c*Math.sin(k)}`)}rect(a,b,c,d){this._append`M${this._x0=this._x1= +a},${this._y0=this._y1=+b}h${c=+c}v${+d}h${-c}Z`}toString(){return this._}}class F extends g.Container{constructor(){super(...arguments);Object.defineProperty(this,"chartContainer",{enumerable:!0,configurable:!0,writable:!0,value:this.children.push(g.Container.new(this._root,{width:g.p100,height:g.p100,interactiveChildren:!1}))});Object.defineProperty(this,"bulletsContainer",{enumerable:!0,configurable:!0,writable:!0,value:g.Container.new(this._root,{interactiveChildren:!1,isMeasured:!1,position:"absolute", width:g.p100,height:g.p100})})}}Object.defineProperty(F,"className",{enumerable:!0,configurable:!0,writable:!0,value:"Chart"});Object.defineProperty(F,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:g.Container.classNames.concat([F.className])});class J extends F{constructor(){super(...arguments);Object.defineProperty(this,"seriesContainer",{enumerable:!0,configurable:!0,writable:!0,value:g.Container.new(this._root,{width:g.p100,height:g.p100,isMeasured:!1})});Object.defineProperty(this, "series",{enumerable:!0,configurable:!0,writable:!0,value:new g.ListAutoDispose})}_afterNew(){super._afterNew();this._disposers.push(this.series);const a=this.seriesContainer.children;this._disposers.push(this.series.events.onAll(b=>{if("clear"===b.type)g.each(b.oldValues,c=>{this._removeSeries(c)}),(b=this.get("colors"))&&b.reset();else if("push"===b.type)a.moveValue(b.newValue),this._processSeries(b.newValue);else if("setIndex"===b.type)a.setIndex(b.index,b.newValue),this._processSeries(b.newValue); else if("insertIndex"===b.type)a.insertIndex(b.index,b.newValue),this._processSeries(b.newValue);else if("removeIndex"===b.type)this._removeSeries(b.oldValue);else if("moveIndex"===b.type)a.moveValue(b.value,b.newIndex),this._processSeries(b.value);else throw Error("Unknown IListEvent type");}))}_processSeries(a){a.chart=this;a._placeBulletsContainer(this)}_removeSeries(a){a.isDisposed()||(this.seriesContainer.children.removeValue(a),a._removeBulletsContainer())}}Object.defineProperty(J,"className", {enumerable:!0,configurable:!0,writable:!0,value:"SerialChart"});Object.defineProperty(J,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:F.classNames.concat([J.className])});class K extends E{}Object.defineProperty(K,"className",{enumerable:!0,configurable:!0,writable:!0,value:"Tick"});Object.defineProperty(K,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:E.classNames.concat([K.className])});z.Component=D;z.DataItem=H;z.SerialChart=J;z.Series=I;z.Tick=K;z.constant=function(a){return function(){return a}}; z.round=G;z.withPath=function(a){let b=3;a.digits=function(c){if(!arguments.length)return b;if(null==c)b=null;else{const d=Math.floor(c);if(!(0<=d))throw new RangeError(`invalid digits: ${c}`);b=d}return a};return()=>new Y(b)}});