{"version":3,"sources":["webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/series/TreeMapSeries.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/series/StepLineSeriesSegment.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/series/StepLineSeries.js","webpack:///./node_modules/@amcharts/amcharts4/.internal/charts/series/Series.js"],"names":["__webpack_require__","d","__webpack_exports__","TreeMapSeries","tslib__WEBPACK_IMPORTED_MODULE_0__","_ColumnSeries__WEBPACK_IMPORTED_MODULE_1__","_core_Sprite__WEBPACK_IMPORTED_MODULE_2__","_core_Registry__WEBPACK_IMPORTED_MODULE_3__","_core_utils_InterfaceColorSet__WEBPACK_IMPORTED_MODULE_4__","_core_utils_Type__WEBPACK_IMPORTED_MODULE_5__","_core_elements_RoundedRectangle__WEBPACK_IMPORTED_MODULE_6__","_core_utils_Object__WEBPACK_IMPORTED_MODULE_7__","TreeMapSeriesDataItem","_super","_this","call","this","className","applyTheme","Object","defineProperty","prototype","get","treeMapDataItem","parent","name","enumerable","configurable","value","_dataContext","hide","duration","delay","toValue","fields","show","fillOpacity","strokeOpacity","minBulletDistance","columns","template","tooltipText","configField","interfaceColors","stroke","getFor","dataFields","openValueX","valueX","openValueY","valueY","sequencedInterpolation","showOnInit","pixelPerfect","processDataItem","dataItem","dataContext","seriesDataItem","createDataItem","interpolationDuration","defaultState","transitionDuration","dataItems","each","showReal","animation","hideReal","processValues","dataChangeUpdate","processConfig","config","createLegendMarker","marker","w","pixelWidth","h","pixelHeight","removeChildren","column","createChild","shouldClone","padding","width","height","legendDataItem","color","fill","colorOrig","registeredClasses","StepLineSeriesSegment_StepLineSeriesSegment","StepLineSeriesSegment","tslib_es6","drawSegment","points","closePoints","smoothnessX","smoothnessY","noRisers","vertical","length","path","Path","i","point","Math","round","strokeSprite","fillSprite","LineSeriesSegment","Registry","StepLineSeries_StepLineSeriesDataItem","StepLineSeriesDataItem","LineSeries","StepLineSeries_StepLineSeries","StepLineSeries","startLocation","endLocation","addPoints","xField","yField","backwards","x0","xAxis","getX","y0","yAxis","getY","x1","y1","utils_Math","connect","prevPoint","baseAxis","push","x","y","point0","point1","segment","tensionX","tensionY","createSegment","getPropertyValue","set","setPropertyValue","SeriesDataItem","Series","_core_Component__WEBPACK_IMPORTED_MODULE_1__","_core_utils_List__WEBPACK_IMPORTED_MODULE_3__","_core_utils_Dictionary__WEBPACK_IMPORTED_MODULE_4__","_core_DataItem__WEBPACK_IMPORTED_MODULE_5__","_core_Container__WEBPACK_IMPORTED_MODULE_6__","_core_elements_Tooltip__WEBPACK_IMPORTED_MODULE_7__","_elements_Bullet__WEBPACK_IMPORTED_MODULE_8__","_Legend__WEBPACK_IMPORTED_MODULE_9__","_core_Options__WEBPACK_IMPORTED_MODULE_10__","_core_utils_Color__WEBPACK_IMPORTED_MODULE_11__","_core_Registry__WEBPACK_IMPORTED_MODULE_12__","_core_utils_Iterator__WEBPACK_IMPORTED_MODULE_13__","_core_utils_Math__WEBPACK_IMPORTED_MODULE_14__","_core_utils_Ease__WEBPACK_IMPORTED_MODULE_15__","_core_utils_Utils__WEBPACK_IMPORTED_MODULE_16__","_core_utils_Object__WEBPACK_IMPORTED_MODULE_17__","_core_utils_Type__WEBPACK_IMPORTED_MODULE_18__","_core_utils_Array__WEBPACK_IMPORTED_MODULE_19__","_core_utils_Colors__WEBPACK_IMPORTED_MODULE_20__","bullets","_disposers","values","dispose","clear","setValue","_ignoreMinMax","_showBullets","legendSettings","_tmin","_tmax","_smin","_smax","dataItemsByAxis","skipFocusThreshold","calculatePercent","autoDispose","simplifiedProcessing","constructor","Error","isMeasured","layout","axisRanges","events","on","processAxisRange","mainContainer","mask","bulletsContainer","_shouldBeReady","virtualParent","tooltip","hiddenState","transitionEasing","component","role","autoSetClassName","setClassName","applyInternalDefaults","readerTitle","language","translate","_chart","positionBullet","bullet","processBullet","event","newValue","isTemplate","itemsFocusable","focusable","removeBullet","oldValue","eachBullet","getKey","uid","invalidate","validateDataItems","getFirstValue","key","startIndex","getIndex","getActualWorkingValue","rangeChangeUpdate","working","count_1","sum_1","low_1","high_1","open_1","close_1","previous_1","first_1","startIndex_1","_workingStartIndex","endIndex","_workingEndIndex","dataItem_1","_loop_1","dataItem_2","setCalculatedValue","prevValue","_loop_2","dataItem_3","ksum","percent","zeroItem_1","dataItem_4","validate","iterator","axisRange","pixelX","pixelY","children","__disabled","updateTooltipBounds","topParent","setBounds","maxWidth","maxHeight","shouldCreateBullet","bulletTemplate","validateDataElement","isHidden","visible","disabledField","propertyFields","disabled","applyOnClones","clone","addSprite","isHiding","currentDataItem","setKey","undefined","readerText_1","itemReaderText","isDynamic","deepInvalidate","ev","populateString","hoverable","itemWidth","itemHeight","handleDataItemWorkingValueChange","dataRangeInvalid","invalidateProcessedData","invalidateDataItems","createMask","rangesContainer","contents","isRange","getAxisField","axis","showTooltipAtPosition","xPosition","yPosition","_bullets","chart","feedLegend","invalidateRawData","readerText","_itemReaderText","tooltipHTML","adapter","apply","_legendDataItem","itemContainer","updateLegendValue","label","valueLabel","itemValueText","text","itemLabelText","labelText","valueText","copyFrom","source","raiseCriticalError","e","modal","content","message","closable","open","verbose","console","log","applyFilters","filters","filter","_heatRules","heatRule","target","dataField_1","dataField","min_1","min","max_1","max","seriesDataItem_1","property_1","property","minValue","maxValue","foundSprite","sprites","sprite","clonedFrom","anySprite","child","anyChild","foundSprite_1","add","ruleTarget","propertyField","low","high","fieldValues","workingValue","rgb","heatRules","len","type","rule","map","hasKey","parts","split","listitem","maybeColorOrPercent","configOrder","a","b","setVisibility"],"mappings":"iHAAAA,EAAAC,EAAAC,EAAA,sBAAAC,IAAA,IAAAC,EAAAJ,EAAA,QAAAK,EAAAL,EAAA,QAAAM,EAAAN,EAAA,QAAAO,EAAAP,EAAA,QAAAQ,EAAAR,EAAA,QAAAS,EAAAT,EAAA,QAAAU,EAAAV,EAAA,QAAAW,EAAAX,EAAA,QA4BAY,EAAA,SAAAC,GAKA,SAAAD,IACA,IAAAE,EAAAD,EAAAE,KAAAC,YAGA,OAFAF,EAAAG,UAAA,wBACAH,EAAAI,aACAJ,EA6FA,OArGIV,EAAA,KAAiBQ,EAAAC,GAUrBM,OAAAC,eAAAR,EAAAS,UAAA,cAwBAC,IAAA,WACA,IAAAC,EAAAP,KAAAO,gBACA,GAAAA,KAAAC,OACA,OAAAD,EAAAC,OAAAC,MAGAC,YAAA,EACAC,cAAA,IAEAR,OAAAC,eAAAR,EAAAS,UAAA,SAOAC,IAAA,WACA,IAAAC,EAAAP,KAAAO,gBACA,GAAAA,EACA,OAAAA,EAAAK,OAGAF,YAAA,EACAC,cAAA,IAEAR,OAAAC,eAAAR,EAAAS,UAAA,mBAOAC,IAAA,WACA,OAAAN,KAAAa,cAEAH,YAAA,EACAC,cAAA,IAUAf,EAAAS,UAAAS,KAAA,SAAAC,EAAAC,EAAAC,EAAAC,GACA,IAAAX,EAAAP,KAAAO,gBAIA,OAHAA,GACAA,EAAAO,KAAAC,GAEAlB,EAAAQ,UAAAS,KAAAf,KAAAC,KAAAe,EAAAC,EAAAC,EAAAC,IASAtB,EAAAS,UAAAc,KAAA,SAAAJ,EAAAC,EAAAE,GACA,IAAAX,EAAAP,KAAAO,gBAIA,OAHAA,GACAA,EAAAY,KAAAJ,EAAAC,EAAAE,GAEArB,EAAAQ,UAAAc,KAAApB,KAAAC,KAAAe,EAAAC,EAAAE,IAEAtB,EAtGA,CAuGEP,EAAA,MAgBFF,EAAA,SAAAU,GAKA,SAAAV,IACA,IAAAW,EAAAD,EAAAE,KAAAC,YACAF,EAAAG,UAAA,gBACAH,EAAAI,aACAJ,EAAAsB,YAAA,EACAtB,EAAAuB,cAAA,EACAvB,EAAAwB,kBAAA,EACAxB,EAAAyB,QAAAC,SAAAC,YAAA,+BACA3B,EAAAyB,QAAAC,SAAAE,YAAA,SACA,IAAAC,EAAA,IAAkCnC,EAAA,KAUlC,OATAM,EAAA8B,OAAAD,EAAAE,OAAA,cACA/B,EAAAgC,WAAAC,WAAA,KACAjC,EAAAgC,WAAAE,OAAA,KACAlC,EAAAgC,WAAAG,WAAA,KACAnC,EAAAgC,WAAAI,OAAA,KACApC,EAAAqC,wBAAA,EACArC,EAAAsC,YAAA,EAEAtC,EAAAyB,QAAAC,SAAAa,cAAA,EACAvC,EA4GA,OAnIIV,EAAA,KAAiBD,EAAAU,GAgCrBV,EAAAkB,UAAAiC,gBAAA,SAAAC,EAAAC,GACAA,EAAAC,eAAAF,EACA1C,EAAAQ,UAAAiC,gBAAAvC,KAAAC,KAAAuC,EAAAC,IAQArD,EAAAkB,UAAAqC,eAAA,WACA,WAAA9C,GAQAT,EAAAkB,UAAAc,KAAA,SAAAJ,GACA,IAAA4B,EAAA3C,KAAA4C,aAAAC,mBAQA,OAPYpD,EAAA,KAAcsB,KAC1B4B,EAAA5B,GAEAf,KAAA8C,UAAAC,KAAA,SAAAR,GAEAA,EAAApB,KAAAJ,KAEAlB,EAAAQ,UAAA2C,SAAAjD,KAAAC,KAAA2C,IAQAxD,EAAAkB,UAAAS,KAAA,SAAAC,GACA,IAAA4B,EAAA3C,KAAA4C,aAAAC,mBACYpD,EAAA,KAAcsB,KAC1B4B,EAAA5B,GAEA,IAAAkC,EAAApD,EAAAQ,UAAA6C,SAAAnD,KAAAC,KAAA2C,GAKA,OAJA3C,KAAA8C,UAAAC,KAAA,SAAAR,GAEAA,EAAAzB,KAAAC,KAEAkC,GAOA9D,EAAAkB,UAAA8C,cAAA,aAMAhE,EAAAkB,UAAA+C,iBAAA,aAQAjE,EAAAkB,UAAAgD,cAAA,SAAAC,GACAA,IAGiB7D,EAAA,KAAc6D,EAAAxB,aAAwBrC,EAAA,KAAc6D,EAAAxB,cACrEwB,EAAAxB,WAAA,KAGAjC,EAAAQ,UAAAgD,cAAAtD,KAAAC,KAAAsD,IASAnE,EAAAkB,UAAAkD,mBAAA,SAAAC,GACA,IAAAC,EAAAD,EAAAE,WACAC,EAAAH,EAAAI,YACAJ,EAAAK,iBACA,IAAAC,EAAAN,EAAAO,YAAwCrE,EAAA,MACxCoE,EAAAE,aAAA,EACQrE,EAAA,KAAsBK,KAAA8D,EAAexE,EAAA,MAE7CwE,EAAAG,QAAA,SACAH,EAAAI,MAAAT,EACAK,EAAAK,OAAAR,EACA,IAAAS,EAAAZ,EAAAjB,SACA6B,EAAAC,MAAAP,EAAAQ,KACAF,EAAAG,UAAAT,EAAAQ,MAEAnF,EApIA,CAqIEE,EAAA,MAQFE,EAAA,KAAQiF,kBAAA,iBAAArF,EACRI,EAAA,KAAQiF,kBAAA,yBAAA5E,uGCnQJ6E,EAAqB,SAAA5E,GAKzB,SAAA6E,IACA,IAAA5E,EAEAD,EAAAE,KAAAC,YAEA,OADAF,EAAAG,UAAA,wBACAH,EAiDA,OA1DI6E,EAAA,KAAiBD,EAAA7E,GAoBrB6E,EAAArE,UAAAuE,YAAA,SAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GACA,GAAAL,EAAAM,OAAA,GAAAL,EAAAK,OAAA,EACA,GAAAF,EAAA,CACA,IAAAG,EAA2BC,EAAA,KAAYR,EAAA,IACvC,GAAAA,EAAAM,OAAA,EACA,QAAAG,EAAA,EAAmCA,EAAAT,EAAAM,OAAmBG,IAAA,CACtD,IAAAC,EAAAV,EAAAS,GACAA,EAAA,GAAAE,KAAAC,MAAAH,EAAA,GACAF,GAAoCC,EAAA,KAAYE,GAGhDH,GAAoCC,EAAA,KAAYE,GAIhDvF,KAAA0F,aAAAN,QACApF,KAAAoB,YAAA,GAAApB,KAAA2F,WAAAvE,YAAA,KACAgE,EAA2BC,EAAA,KAAYR,EAAA,IAAcQ,EAAA,KAAcR,GACnEO,GAA4BC,EAAA,KAAYP,EAAA,IAAmBO,EAAA,KAAcP,GACzEM,GAA4BC,EAAA,KAAYR,EAAA,IACxCO,GAA4BC,EAAA,OAC5BrF,KAAA2F,WAAAP,YAKA,CACAA,EAA2BC,EAAA,KAAYR,EAAA,IAAcQ,EAAA,KAAcR,GACnE7E,KAAA0F,aAAAN,QACApF,KAAAoB,YAAA,GAAApB,KAAA2F,WAAAvE,YAAA,KACAgE,GAA4BC,EAAA,KAAYP,EAAA,IAAmBO,EAAA,KAAcP,GACzEM,GAA4BC,EAAA,KAAYR,EAAA,IACxCO,GAA4BC,EAAA,OAC5BrF,KAAA2F,WAAAP,UAKAV,EA3DyB,CA4DvBkB,EAAA,MAQFC,EAAA,KAAQrB,kBAAA,yBAA8CC,kBCzElDqB,EAAsB,SAAAjG,GAK1B,SAAAkG,IACA,IAAAjG,EAAAD,EAAAE,KAAAC,YAGA,OAFAF,EAAAG,UAAA,yBACAH,EAAAI,aACAJ,EAEA,OAVI6E,EAAA,KAAiBoB,EAAAlG,GAUrBkG,EAX0B,CAYxBC,EAAA,MAgBEC,EAAc,SAAApG,GAKlB,SAAAqG,IACA,IAAApG,EAAAD,EAAAE,KAAAC,YAKA,OAJAF,EAAAG,UAAA,iBACAH,EAAAI,aACAJ,EAAAqG,cAAA,EACArG,EAAAsG,YAAA,EACAtG,EA8IA,OAxJI6E,EAAA,KAAiBuB,EAAArG,GAkBrBqG,EAAA7F,UAAAqC,eAAA,WACA,WAAmBoD,GAYnBI,EAAA7F,UAAAgG,UAAA,SAAAxB,EAAAtC,EAAA+D,EAAAC,EAAAC,GACA,IAAAL,EAAAnG,KAAAmG,cACAC,EAAApG,KAAAoG,YACAK,EAAAzG,KAAA0G,MAAAC,KAAApE,EAAA+D,EAAAH,GACAS,EAAA5G,KAAA6G,MAAAC,KAAAvE,EAAAgE,EAAAJ,GACAY,EAAA/G,KAAA0G,MAAAC,KAAApE,EAAA+D,EAAAF,GACAY,EAAAhH,KAAA6G,MAAAC,KAAAvE,EAAAgE,EAAAH,GAMA,GALAK,EAAaQ,EAAA,KAAgBR,GAAA,SAC7BG,EAAaK,EAAA,KAAgBL,GAAA,SAC7BG,EAAaE,EAAA,KAAgBF,GAAA,SAC7BC,EAAaC,EAAA,KAAgBD,GAAA,UAE7BhH,KAAAiF,UAAAjF,KAAAkH,SACArC,EAAAM,OAAA,GACA,IAAAgC,EAAAtC,IAAAM,OAAA,GACAnF,KAAAoH,UAAApH,KAAA0G,QACAF,EACA3B,EAAAwC,KAAA,CAAqCC,EAAAH,EAAAG,EAAAC,EAAAP,IAGrCnC,EAAAwC,KAAA,CAAqCC,EAAAb,EAAAc,EAAAJ,EAAAI,KAGrCvH,KAAAoH,UAAApH,KAAA6G,QACAL,EACA3B,EAAAwC,KAAA,CAAqCC,EAAAP,EAAAQ,EAAAJ,EAAAI,IAGrC1C,EAAAwC,KAAA,CAAqCC,EAAAH,EAAAG,EAAAC,EAAAX,KAKrC,IAAAY,EAAA,CAAsBF,EAAAb,EAAAc,EAAAX,GACtBa,EAAA,CAAsBH,EAAAP,EAAAQ,EAAAP,GACtBR,EACA3B,EAAAwC,KAAAI,EAAAD,GAGA3C,EAAAwC,KAAAG,EAAAC,IAUAvB,EAAA7F,UAAAuE,YAAA,SAAA8C,EAAA7C,EAAAC,GACA,IAAAI,GAAA,EACAlF,KAAA6G,OAAA7G,KAAAoH,WACAlC,GAAA,GAEAwC,EAAA9C,YAAAC,EAAAC,EAAA9E,KAAA2H,SAAA3H,KAAA4H,SAAA5H,KAAAiF,SAAAC,IAKAgB,EAAA7F,UAAAwH,cAAA,WACA,WAAmBpD,GAEnBtE,OAAAC,eAAA8F,EAAA7F,UAAA,YAIAC,IAAA,WACA,OAAAN,KAAA8H,iBAAA,aAUAC,IAAA,SAAAnH,GACAZ,KAAAgI,iBAAA,WAAApH,GAAA,IAEAF,YAAA,EACAC,cAAA,IAEAR,OAAAC,eAAA8F,EAAA7F,UAAA,iBAIAC,IAAA,WACA,OAAAN,KAAA8H,iBAAA,kBAQAC,IAAA,SAAAnH,GACAZ,KAAAgI,iBAAA,gBAAApH,GAAA,IAEAF,YAAA,EACAC,cAAA,IAEAR,OAAAC,eAAA8F,EAAA7F,UAAA,eAIAC,IAAA,WACA,OAAAN,KAAA8H,iBAAA,gBAQAC,IAAA,SAAAnH,GACAZ,KAAAgI,iBAAA,cAAApH,GAAA,IAEAF,YAAA,EACAC,cAAA,IAEAuF,EAzJkB,CA0JhBF,EAAA,MAQFH,EAAA,KAAQrB,kBAAA,kBAAuCyB,EAC/CJ,EAAA,KAAQrB,kBAAA,0BAA+CsB,qCCxNvD9G,EAAAC,EAAAC,EAAA,sBAAA+I,IAAAjJ,EAAAC,EAAAC,EAAA,sBAAAgJ,IAAA,IAAA9I,EAAAJ,EAAA,QAAAmJ,EAAAnJ,EAAA,QAAAM,EAAAN,EAAA,QAAAoJ,EAAApJ,EAAA,QAAAqJ,EAAArJ,EAAA,QAAAsJ,EAAAtJ,EAAA,QAAAuJ,EAAAvJ,EAAA,QAAAwJ,EAAAxJ,EAAA,QAAAyJ,EAAAzJ,EAAA,QAAA0J,EAAA1J,EAAA,QAAA2J,EAAA3J,EAAA,QAAA4J,EAAA5J,EAAA,QAAA6J,EAAA7J,EAAA,QAAA8J,EAAA9J,EAAA,QAAA+J,EAAA/J,EAAA,QAAAgK,EAAAhK,EAAA,QAAAiK,EAAAjK,EAAA,QAAAkK,EAAAlK,EAAA,QAAAmK,EAAAnK,EAAA,QAAAoK,EAAApK,EAAA,QAAAqK,EAAArK,EAAA,QA0CAiJ,EAAA,SAAApI,GAKA,SAAAoI,IACA,IAAAnI,EAAAD,EAAAE,KAAAC,YAcA,OAPAF,EAAAwJ,QAAA,IAA4BjB,EAAA,KAC5BvI,EAAAG,UAAA,iBAEAH,EAAAyJ,WAAAlC,KAAA,IAAkCgB,EAAA,KAAkBvI,EAAAwJ,UACpDxJ,EAAA0J,OAAA5I,MAAA,GACAd,EAAA0J,OAAA5I,MAAA,GACAd,EAAAI,aACAJ,EA2BA,OA9CIV,EAAA,KAAiB6I,EAAApI,GAwBrBoI,EAAA5H,UAAAoJ,QAAA,WACAzJ,KAAAsJ,QAAAI,QACA7J,EAAAQ,UAAAoJ,QAAA1J,KAAAC,OAEAG,OAAAC,eAAA6H,EAAA5H,UAAA,SAIAC,IAAA,WACA,OAAAN,KAAAwJ,OAAA5I,aAOAmH,IAAA,SAAAnH,GACAZ,KAAA2J,SAAA,QAAA/I,IAEAF,YAAA,EACAC,cAAA,IAEAsH,EA/CA,CAgDEK,EAAA,MAeFJ,EAAA,SAAArI,GAKA,SAAAqI,IACA,IAAApI,EAAAD,EAAAE,KAAAC,YAgGA,GA1FAF,EAAA8J,eAAA,EAMA9J,EAAA+J,cAAA,EAIA/J,EAAAgK,eAAA,IAAmCpB,EAAA,KAInC5I,EAAAiK,MAAA,IAA0B1B,EAAA,KAI1BvI,EAAAkK,MAAA,IAA0B3B,EAAA,KAI1BvI,EAAAmK,MAAA,IAA0B5B,EAAA,KAI1BvI,EAAAoK,MAAA,IAA0B7B,EAAA,KAS1BvI,EAAAqK,gBAAA,IAAoC9B,EAAA,KAapCvI,EAAAsK,mBAAA,GAgBAtK,EAAAuK,kBAAA,EAOAvK,EAAAwK,aAAA,EAkBAxK,EAAAyK,sBAAA,EACAzK,EAAA0K,cAAAtC,EACA,UAAAuC,MAAA,gFAEA3K,EAAAG,UAAA,SACAH,EAAA4K,YAAA,EACA5K,EAAA6K,OAAA,OACA7K,EAAAkE,aAAA,EACAlE,EAAAkI,iBAAA,aACAlI,EAAA8K,WAAA,IAA+BxC,EAAA,KAC/BtI,EAAA8K,WAAAC,OAAAC,GAAA,WAAAhL,EAAAiL,iBAAAjL,GAAA,GACAA,EAAAwB,kBAAA,EACAxB,EAAAkL,cAAAlL,EAAAiE,YAAgDwE,EAAA,MAChDzI,EAAAkL,cAAAhH,aAAA,EACAlE,EAAAkL,cAAAC,KAAAnL,EAAAiE,YAAqDzE,EAAA,MACrDQ,EAAAyJ,WAAAlC,KAAAvH,EAAAkL,eAEA,IAAAE,EAAApL,EAAAkL,cAAAjH,YAA+DwE,EAAA,MAkB/D,OAjBAzI,EAAAqL,eAAA9D,KAAA6D,GACAA,EAAAlH,aAAA,EACAkH,EAAAP,OAAA,OACAO,EAAAE,cAAAtL,EACAA,EAAAyJ,WAAAlC,KAAA6D,GACApL,EAAAoL,mBACApL,EAAAuL,QAAA,IAA4B7C,EAAA,KAC5B1I,EAAAuL,QAAAD,cAAAtL,EACAA,EAAAyJ,WAAAlC,KAAAvH,EAAAuL,SACAvL,EAAAwL,YAAAC,iBAA6CvC,EAAA,KAE7ClJ,EAAAyC,SAAAzC,EAAA4C,iBACA5C,EAAAyJ,WAAAlC,KAAAvH,EAAAyC,UACAzC,EAAAyC,SAAAiJ,UAAA1L,EAEAA,EAAA2L,KAAA,QACA3L,EAAAI,aACAJ,EAigCA,OAxoCIV,EAAA,KAAiB8I,EAAArI,GA8IrBqI,EAAA7H,UAAAH,WAAA,WACAL,EAAAQ,UAAAH,WAAAH,KAAAC,MACY2I,EAAA,KAAO+C,kBAAA1L,KAAAkL,mBACnBlL,KAAAkL,iBAAAjL,UAAAD,KAAAC,UAAA,WACAD,KAAAkL,iBAAAS,iBAOAzD,EAAA7H,UAAAuL,sBAAA,WACA/L,EAAAQ,UAAAuL,sBAAA7L,KAAAC,MACamJ,EAAA,KAAcnJ,KAAA6L,eAC3B7L,KAAA6L,YAAA7L,KAAA8L,SAAAC,UAAA,YASA7D,EAAA7H,UAAAqC,eAAA,WACA,WAAAuF,GAEA9H,OAAAC,eAAA8H,EAAA7H,UAAA,SAIAC,IAAA,WACA,OAAAN,KAAAgM,QAOAjE,IAAA,SAAAnH,GACAZ,KAAAgM,OAAApL,GAEAF,YAAA,EACAC,cAAA,IAOAuH,EAAA7H,UAAA4L,eAAA,SAAAC,KASAhE,EAAA7H,UAAA8L,cAAA,SAAAC,GACA,IAAAF,EAAAE,EAAAC,SACAH,EAAAI,YAAA,EAGAtM,KAAAuM,mBACAL,EAAAM,WAAA,IAQAtE,EAAA7H,UAAAoM,aAAA,SAAAL,GACA,IAAAF,EAAAE,EAAAM,SACA1M,KAAA8C,UAAAC,KAAA,SAAAR,GACA,IAAAoK,EAAApK,EAAA+G,QAAAsD,OAAAV,EAAAW,KACAF,GACAA,EAAAlD,YAGAzJ,KAAA8M,cAOA5E,EAAA7H,UAAA0M,kBAAA,WACAlN,EAAAQ,UAAA0M,kBAAAhN,KAAAC,MACAA,KAAAmD,eAAA,IAUA+E,EAAA7H,UAAA2M,cAAA,SAAAC,EAAAC,GAeAA,EAAA,GAAAA,EAAAlN,KAAA8C,UAAAqC,OAAA,GACA+H,IAEA,QAAA5H,EAAA4H,EAAgC5H,GAAA,EAAQA,IAAA,CACxC,IAAA/C,EAAAvC,KAAA8C,UAAAqK,SAAA7H,GACA1E,EAAA2B,EAAA6K,sBAAAH,GACA,GAAgB9D,EAAA,KAAcvI,GAC9B,OAAAA,EAGA,aAOAsH,EAAA7H,UAAAgN,kBAAA,WACAxN,EAAAQ,UAAAgN,kBAAAtN,KAAAC,MACAA,KAAAmD,eAAA,IASA+E,EAAA7H,UAAA8C,cAAA,SAAAmK,GACA,IAAAxN,EAAAE,KACA,IAAAA,KAAAuK,qBAAA,CACA,IAAAzH,EAAA9C,KAAA8C,UACAyK,EAAA,GACAC,EAAA,GACAC,EAAA,GACAC,EAAA,GACAC,EAAA,GACAC,EAAA,GACAC,EAAA,GACAC,EAAA,GAEAC,EAA+BhF,EAAA,KAAS,EAAA/I,KAAAgO,oBACxCD,EAA2BhF,EAAA,KAASgF,EAAA/N,KAAA8C,UAAAqC,QACpC,IAAA8I,EAA2BlF,EAAA,KAAS/I,KAAAkO,iBAAAlO,KAAA8C,UAAAqC,QAOpC,GANiBgE,EAAA,KAAc4E,KAC/BA,EAAA,GAEiB5E,EAAA,KAAc8E,KAC/BA,EAAAjO,KAAA8C,UAAAqC,QAEA4I,EAAA,GACA,IAAAI,EAAArL,EAAAqK,SAAAY,EAAA,GACgB7E,EAAA,KAAYiF,EAAA3E,OAAA,SAAAyD,EAAAzD,GAC5B,IAAA5I,EAAAuN,EAAAf,sBAAAH,GACwB9D,EAAA,KAAcvI,KAEtCiN,EAAAZ,GAAArM,KAiEA,IA7DA,IAAAwN,EAAA,SAAA9I,GACA,IAAA+I,EAAAvL,EAAAqK,SAAA7H,GACgB4D,EAAA,KAAYmF,EAAA7E,OAAA,SAAAyD,EAAAzD,GAC5B,IAAA5I,EAAAyN,EAAAjB,sBAAAH,GAEA,GAAwB9D,EAAA,KAAcvI,GAAA,CAETuI,EAAA,KAAcoE,EAAAN,MAC3CM,EAAAN,GAAA,GAEAM,EAAAN,KAE6B9D,EAAA,KAAcqE,EAAAP,MAC3CO,EAAAP,GAAA,GAEAO,EAAAP,IAAArM,EAE6BuI,EAAA,KAAcwE,EAAAV,MAC3CU,EAAAV,GAAArM,GAGAgN,EAAAX,GAAArM,EAE6BuI,EAAA,KAAcsE,EAAAR,IAI3CQ,EAAAR,GAAArM,IACA6M,EAAAR,GAAArM,GAJA6M,EAAAR,GAAArM,EAQ6BuI,EAAA,KAAcuE,EAAAT,IAI3CS,EAAAT,GAAArM,IACA8M,EAAAT,GAAArM,GAJA8M,EAAAT,GAAArM,EAO6BuI,EAAA,KAAc2E,EAAAb,MAC3Ca,EAAAb,GAAAnN,EAAAkN,cAAAC,EAAAc,IAGAM,EAAAC,mBAAArB,EAAArM,EAAAkN,EAAAb,GAAA,UAGAoB,EAAAC,mBAAArB,GAAArM,EAAAkN,EAAAb,IAAAa,EAAAb,GAAA,qBAEA,IAAAsB,EAAAV,EAAAZ,GAC6B9D,EAAA,KAAcoF,KAC3CA,EAAA3N,GAEAyN,EAAAC,mBAAArB,EAAArM,EAAA2N,EAAA,kBAEAF,EAAAC,mBAAArB,GAAArM,EAAA2N,KAAA,6BAEAV,EAAAZ,GAAArM,MAIA0E,EAAAyI,EAAsCzI,EAAA2I,EAAc3I,IACpD8I,EAAA9I,GAEA,GAAAtF,KAAAqK,iBACA,KAAAmE,EAAA,SAAAlJ,GACA,IAAAmJ,EAAA3L,EAAAqK,SAAA7H,GACoB4D,EAAA,KAAYuF,EAAAjF,OAAA,SAAAyD,GAChC,IAAAyB,EAAAlB,EAAAP,GACArM,EAAA6N,EAAArB,sBAAAH,GACA,GAA4B9D,EAAA,KAAcvI,GAC1C,GAAA8N,EAAA,GAIA9N,GAAA8N,IACAA,EAAAD,EAAAjF,OAAAyD,GAAArM,OAEA,IAAA+N,EAAA/N,EAAA8N,EAAA,IACAD,EAAAH,mBAAArB,EAAA0B,EAAA,gBAGAF,EAAAH,mBAAArB,EAAA,gBAKA,IAAA3H,EAAAyI,EAA0CzI,EAAA2I,EAAc3I,IACxDkJ,EAAAlJ,GAMA,GAAAyI,EAAA,GACA,IAAAa,EAAA9L,EAAAqK,SAAAY,EAAA,GACgB7E,EAAA,KAAY0F,EAAApF,OAAA,SAAAyD,GAC5B,IAAArM,EAAAgO,EAAApF,OAAAyD,GAAArM,MAEAgO,EAAAN,mBAAArB,EAAArM,EAAA+M,EAAAV,GAAA,UAEA2B,EAAAN,mBAAArB,GAAArM,EAAA+M,EAAAV,IAAAU,EAAAV,GAAA,uBAIA,IAAA4B,EAAA7O,KAAAuC,SACY2G,EAAA,KAAY2F,EAAArF,OAAA,SAAAyD,GACxB4B,EAAAP,mBAAArB,EAAAO,EAAAP,GAAA,OACA4B,EAAAP,mBAAArB,EAAAO,EAAAP,GAAAM,EAAAN,GAAA,WACA4B,EAAAP,mBAAArB,EAAAU,EAAAV,GAAA,QACA4B,EAAAP,mBAAArB,EAAAW,EAAAX,GAAA,SACA4B,EAAAP,mBAAArB,EAAAQ,EAAAR,GAAA,OACA4B,EAAAP,mBAAArB,EAAAS,EAAAT,GAAA,QACA4B,EAAAP,mBAAArB,EAAAM,EAAAN,GAAA,aASA/E,EAAA7H,UAAAyO,SAAA,WACQhG,EAAA,KAAU9I,KAAA4K,WAAAmE,WAAA,SAAAC,GAGlBA,EAAAF,aAEAjP,EAAAQ,UAAAyO,SAAA/O,KAAAC,MACA,IAAAkL,EAAAlL,KAAAkL,iBAKA,GAJAA,EAAA5G,KAAAtE,KAAAsE,KACA4G,EAAAtJ,OAAA5B,KAAA4B,OACAsJ,EAAA5D,EAAAtH,KAAAiP,OACA/D,EAAA3D,EAAAvH,KAAAkP,OACAlP,KAAAkL,iBAAAiE,SAAAhK,OAAA,EACA,GAAAnF,KAAA6J,aAAA,CACA,QAAAvE,EAAA,EAA+BA,EAAAtF,KAAAkN,WAAqB5H,IAAA,CACpD,IAAA/C,EAAAvC,KAAA8C,UAAAqK,SAAA7H,GACA/C,GACAA,EAAA+G,QAAAvG,KAAA,SAAAkK,EAAAf,GACAA,EAAAkD,YAAA,IAIA,IAAA9J,EAAAtF,KAAA8C,UAAAqC,OAAA,EAAuDG,EAAAtF,KAAAiO,SAAmB3I,IAAA,CAC1E/C,EAAAvC,KAAA8C,UAAAqK,SAAA7H,GACA/C,GACAA,EAAA+G,QAAAvG,KAAA,SAAAkK,EAAAf,GACAA,EAAAkD,YAAA,UAMApP,KAAAkL,iBAAAiE,SAAApM,KAAA,SAAAmJ,GACAA,EAAAkD,YAAA,IAIApP,KAAAqP,uBAKAnH,EAAA7H,UAAAgP,oBAAA,WACArP,KAAAsP,WACAtP,KAAAqL,QAAAkE,UAAA,CAAoCjI,EAAA,EAAAC,EAAA,EAAArD,MAAAlE,KAAAsP,UAAAE,SAAArL,OAAAnE,KAAAsP,UAAAG,aAGpCvH,EAAA7H,UAAAqP,mBAAA,SAAAnN,EAAAoN,GACA,UAQAzH,EAAA7H,UAAAuP,oBAAA,SAAArN,GACA,IAAAzC,EAAAE,KACAH,EAAAQ,UAAAuP,oBAAA7P,KAAAC,KAAAuC,GACAvC,KAAA6J,cACA7J,KAAA6P,WACA7P,KAAAkL,iBAAA4E,SAAA,GAEA9P,KAAAsJ,QAAAvG,KAAA,SAAA4M,GAEA,IAAAzD,EAAA3J,EAAA+G,QAAAsD,OAAA+C,EAAA9C,KACA,GAAA/M,EAAA4P,mBAAAnN,EAAAoN,GAAA,CACA,IAAAzD,EAAA,CACA,IAAA6D,EAAAJ,EAAAK,eAAAC,SACAzN,EAAAD,EAAAC,YACAuN,GAAAvN,IAAA,IAAAA,EAAAuN,IACAJ,EAAAO,eAAA,EACAP,EAAAM,UAAA,EACA/D,EAAAyD,EAAAQ,QACAR,EAAAM,UAAA,EACAN,EAAAO,eAAA,GAGAhE,EAAAyD,EAAAQ,QAEAjE,EAAAlI,aAAA,EACAzB,EAAA6N,UAAAlE,GACApM,EAAAgQ,UAAAhQ,EAAAuQ,UACAnE,EAAApL,KAAA,GAGA,IAAAwP,EAAApE,EAAA3J,SACA,GAAA+N,GAAA/N,EAAA,CAEA+N,GACAA,EAAAhH,QAAAiH,OAAAZ,EAAA9C,SAAA2D,GAEA,IAAAC,EAAA3Q,EAAA4Q,eACAxE,aAA8CzD,EAAA,OAC9CgI,IACAA,EAAA,IAAkDvE,EAAA5F,OAAA,OAAyB4F,EAAA3F,OAAA,KAE3E2F,EAAAyE,YACApO,EAAAsI,OAAAC,GAAA,sBAAAoB,EAAA0E,eAAA1E,GAAA,GAEApM,EAAAyC,SAAAsI,OAAAC,GAAA,sBAAAoB,EAAA0E,eAAA1E,GAAA,IAEAA,EAAA0E,kBAGA1E,EAAAM,YACAN,EAAArB,OAAAC,GAAA,iBAAA+F,GACA3E,EAAAL,YAAA/L,EAAAgR,eAAAL,EAAAvE,EAAA3J,gBAC6BiO,GAAA,GAC7BtE,EAAArB,OAAAC,GAAA,gBAAA+F,GACA3E,EAAAL,YAAA,SAC6B2E,GAAA,IAE7BtE,EAAA6E,YACA7E,EAAArB,OAAAC,GAAA,gBAAA+F,GACA3E,EAAAL,YAAA/L,EAAAgR,eAAAL,EAAAvE,EAAA3J,gBAC6BiO,GAAA,GAC7BtE,EAAArB,OAAAC,GAAA,eAAA+F,GACA3E,EAAAL,YAAA,SAC6B2E,GAAA,IAG7BtE,EAAA1L,OAAAV,EAAAoL,iBACA3I,EAAA+G,QAAAiH,OAAAZ,EAAA9C,IAAAX,GAEAA,EAAAsD,SAAAjN,EAAAyO,UACA9E,EAAAuD,UAAAlN,EAAA0O,WACA/E,EAAAkD,YAAA,EACAtP,EAAAmM,eAAAC,OAKAlM,KAAAkL,iBAAA4E,SAAA,GAQA5H,EAAA7H,UAAA6Q,iCAAA,SAAA3O,EAAA9B,GACAT,KAAAmR,kBACAnR,KAAAoR,2BAGAjR,OAAAC,eAAA8H,EAAA7H,UAAA,gBAIAC,IAAA,WACA,OAAAN,KAAA4J,eAQA7B,IAAA,SAAAnH,GACAZ,KAAA4J,cAAAhJ,EACAZ,KAAAqR,uBAEA3Q,YAAA,EACAC,cAAA,IAOAuH,EAAA7H,UAAAiR,WAAA,aAQApJ,EAAA7H,UAAA0K,iBAAA,SAAAqB,GAEApM,KAAAuR,kBACAvR,KAAAuR,gBAAAvR,KAAA+D,YAAoDwE,EAAA,MACpDvI,KAAAuR,gBAAAvN,aAAA,EACAhE,KAAAuR,gBAAA7G,YAAA,GAEA,IAAAsE,EAAA5C,EAAAC,SACA2C,IACAA,EAAAwC,SAAAhR,OAAAR,KAAAuR,gBACAvC,EAAAyC,SAAA,IAWAvJ,EAAA7H,UAAAqR,aAAA,SAAAC,KAUAzJ,EAAA7H,UAAAuR,sBAAA,SAAAC,EAAAC,KAGA3R,OAAAC,eAAA8H,EAAA7H,UAAA,qBAIAC,IAAA,WACA,OAAAN,KAAA8H,iBAAA,sBAYAC,IAAA,SAAAnH,GACAZ,KAAAgI,iBAAA,oBAAApH,GAAA,IAEAF,YAAA,EACAC,cAAA,IAEAR,OAAAC,eAAA8H,EAAA7H,UAAA,WAYAC,IAAA,WASA,OARAN,KAAA+R,WACA/R,KAAA+R,SAAA,IAAoC3J,EAAA,KAAY,IAAKK,EAAA,MACrDzI,KAAA+R,SAAAvQ,SAAA4J,cAAApL,KACAA,KAAA+R,SAAAlH,OAAAC,GAAA,WAAA9K,KAAAmM,cAAAnM,MAAA,GACAA,KAAA+R,SAAAlH,OAAAC,GAAA,UAAA9K,KAAAyM,aAAAzM,MAAA,GACAA,KAAAuJ,WAAAlC,KAAA,IAAyCe,EAAA,KAAYpI,KAAA+R,WACrD/R,KAAAuJ,WAAAlC,KAAArH,KAAA+R,SAAAvQ,WAEAxB,KAAA+R,UAEArR,YAAA,EACAC,cAAA,IASAuH,EAAA7H,UAAAkD,mBAAA,SAAAC,KAGArD,OAAAC,eAAA8H,EAAA7H,UAAA,kBAIAC,IAAA,WACA,OAAAN,KAAA8H,iBAAA,mBAOAC,IAAA,SAAAnH,GACAZ,KAAAgI,iBAAA,iBAAApH,IACAZ,KAAAgS,OACAhS,KAAAgS,MAAAC,cAIAvR,YAAA,EACAC,cAAA,IAEAR,OAAAC,eAAA8H,EAAA7H,UAAA,QAIAC,IAAA,WACA,OAAAN,KAAA8H,iBAAA,SAOAC,IAAA,SAAAnH,GACAZ,KAAAgI,iBAAA,OAAApH,GACA,IAAAwD,EAAApE,KAAAoE,eACAA,IACAA,EAAAoH,UAAAsB,aACA1I,EAAAoH,UAAA0G,qBAEAlS,KAAA6L,YAAAjL,GAEAF,YAAA,EACAC,cAAA,IAEAR,OAAAC,eAAA8H,EAAA7H,UAAA,kBAIAC,IAAA,WAEA,IAAA6R,EAAAnS,KAAAoS,gBAWA,OATAD,IAEAnS,KAAAyB,YACA0Q,EAAiClJ,EAAA,KAAgBjJ,KAAAyB,aAEjDzB,KAAAqS,cACAF,EAAiClJ,EAAA,KAAgBjJ,KAAAqS,eAGjDrS,KAAAsS,QAAAC,MAAA,iBAAAJ,IAaApK,IAAA,SAAAnH,GACAZ,KAAAoS,gBAAAxR,GAEAF,YAAA,EACAC,cAAA,IASAuH,EAAA7H,UAAAkM,eAAA,WACA,QAAAvM,KAAA8C,UAAAqC,QAAAnF,KAAAoK,qBAEAjK,OAAAC,eAAA8H,EAAA7H,UAAA,kBAIAC,IAAA,WACA,OAAAN,KAAAwS,iBAOAzK,IAAA,SAAAnH,GACAZ,KAAAwS,gBAAA5R,EACAZ,KAAAwS,gBAAAC,cAAA7B,kBAEAlQ,YAAA,EACAC,cAAA,IAQAuH,EAAA7H,UAAAqS,kBAAA,SAAAnQ,GAEA,GAAAvC,KAAAoE,eAAA,CACA,IAAA0F,EAAA9J,KAAA8J,eACA1F,EAAApE,KAAAoE,eACAuO,EAAAvO,EAAAuO,MACAC,EAAAxO,EAAAwO,WAEArQ,GACAqQ,IACA9I,EAAA+I,gBACAD,EAAAE,KAAAhJ,EAAA+I,eAEAD,EAAArQ,YAEAoQ,IACA7I,EAAAiJ,gBACAJ,EAAAG,KAAAhJ,EAAAiJ,eAEAJ,EAAApQ,cAIAoQ,KAEA7I,EAAAkJ,gBAAAxC,GAAA1G,EAAAiJ,iBACAJ,EAAAG,KAAAhJ,EAAAkJ,WAEAL,EAAApQ,SAAAvC,KAAAuC,UAEAqQ,KACA9I,EAAAmJ,gBAAAzC,GAAA1G,EAAA+I,iBACAD,EAAAE,KAAAhJ,EAAAmJ,WAEAL,EAAArQ,SAAAvC,KAAAuC,aAUA2F,EAAA7H,UAAA6S,SAAA,SAAAC,GACAnT,KAAAsJ,QAAA4J,SAAAC,EAAA7J,SACAtJ,KAAAkL,iBAAAgI,SAAAC,EAAAjI,kBACAlL,KAAAqK,iBAAA8I,EAAA9I,iBACArK,KAAAuK,qBAAA4I,EAAA5I,qBACA1K,EAAAQ,UAAA6S,SAAAnT,KAAAC,KAAAmT,IAQAjL,EAAA7H,UAAA+S,mBAAA,SAAAC,GACArT,KAAAgM,OAAAsH,MAAAC,QAAAvT,KAAAgM,OAAAsG,QAAAC,MAAA,gBAAAc,GAAAG,QACAxT,KAAAgM,OAAAsH,MAAAG,UAAA,EACAzT,KAAAgM,OAAAsH,MAAAI,OACA1T,KAAAgM,OAAAiE,UAAA,EACYtH,EAAA,KAAOgL,SACnBC,QAAAC,IAAAR,IAQAnL,EAAA7H,UAAAyT,aAAA,WACA,IAAAhU,EAAAE,KACAH,EAAAQ,UAAAyT,aAAA/T,KAAAC,MACAA,KAAAkL,iBAAA6I,QAAArK,QAEQZ,EAAA,KAAU9I,KAAA+T,QAAAhF,WAAA,SAAAiF,GAClBlU,EAAAoL,iBAAA6I,QAAA1M,KAAA2M,EAAA7D,YAGAhQ,OAAAC,eAAA8H,EAAA7H,UAAA,aAIAC,IAAA,WACA,IAAAR,EAAAE,KA0HA,OAzHAA,KAAAiU,aACAjU,KAAAiU,WAAA,IAAsC7L,EAAA,KACtCpI,KAAAiU,WAAApJ,OAAAC,GAAA,oBAAAsB,GACA,IAAA8H,EAAA9H,EAAAC,SACA8H,EAAAD,EAAAC,OACA,GAAAA,EAAA,CACA,IAAAC,EAAAF,EAAAG,UAC6BlL,EAAA,KAAciL,KAC3CA,EAAA,SAEA,IAAAE,EAAAJ,EAAAK,IACAC,EAAAN,EAAAO,IACAC,EAAA5U,EAAAyC,SACAoS,EAAAT,EAAAU,SACAC,EAAuC1L,EAAA,KAAc+K,EAAAW,UACrDC,EAAuC3L,EAAA,KAAc+K,EAAAY,UACxB3L,EAAA,KAAc0L,IAAe1L,EAAA,KAAc2L,IACxEhV,EAAAyC,SAAAsI,OAAAC,GAAA,kCAAAsB,GACAA,EAAAwI,UAAAR,GACoCtL,EAAA,KAAUhJ,EAAAgD,UAAAiM,WAAA,SAAAxM,GAC9C,IAAAwS,GAAA,EACwC3L,EAAA,KAAW7G,EAAAyS,QAAA,SAAAC,GACnD,GAAAA,EAAAC,YAAAf,EAAA,CACA,IAAAgB,EAAAF,EACAE,EAAAR,GAAAQ,EAAAR,GACAI,GAAA,KAGAA,GAC4C3L,EAAA,KAAW7G,EAAAyS,QAAA,SAAAC,GACvDA,aAAsE1M,EAAA,MAClBO,EAAA,KAAUmM,EAAA9F,SAAAJ,WAAA,SAAAqG,GAC9D,GAAAA,EAAAnV,WAAAkU,EAAAlU,UAAA,CACA,IAAAoV,EAAAD,EACAC,EAAAV,GAAAU,EAAAV,QAGAS,aAAkF7M,EAAA,MAClF6M,EAAAxE,yBAUA9Q,EAAAgD,UAAAtB,SAAAqJ,OAAAC,GAAA,+BAAAsB,GACA,GAAAA,EAAAwI,UAAAR,EAAA,CACA,IAAA7R,EAAA6J,EAAA+H,OACAmB,GAAA,EACgClM,EAAA,KAAW7G,EAAAyS,QAAA,SAAAC,GAC3C,GAAAA,EAAAC,YAAAf,EAAA,CACA,IAAAgB,EAAAF,EACAE,EAAAR,GAAAQ,EAAAR,GACAW,GAAA,KAGAA,GACoClM,EAAA,KAAW7G,EAAAyS,QAAA,SAAAC,GAC/CA,aAA8D1M,EAAA,MAClBO,EAAA,KAAUmM,EAAA9F,SAAAJ,WAAA,SAAAqG,GACtD,GAAAA,EAAAnV,WAAAkU,EAAAlU,UAAA,CACA,IAAAoV,EAAAD,EACAC,EAAAV,GAAAU,EAAAV,QAGAS,aAA0E7M,EAAA,MAC1E6M,EAAAxE,wBAQAuD,EAAA7B,QAAAiD,IAAAZ,EAAA,SAAA/T,EAAA4U,EAAAZ,GACA,IAAAC,EAA2C1L,EAAA,KAAc+K,EAAAW,UACzDC,EAA2C3L,EAAA,KAAc+K,EAAAY,UACzD,GAAAU,aAAsDlW,EAAA,KAAM,CAC5D,IAAA6V,EAAAK,EACAC,EAAAN,EAAAnF,eAAA4E,GACA,GAAAa,GAAAD,EAAAjT,SAAA,CACA,IAAAC,EAAAgT,EAAAjT,SAAAC,YACA,GAAAA,GAAuD2G,EAAA,KAAc3G,EAAAiT,IACrE,OAAA7U,GAIA,IAAA2B,EAAAiT,EAAAjT,SAOA,GANiC4G,EAAA,KAAc0L,KAC/CA,EAAAH,EAAAlL,OAAA4K,GAAAsB,KAEiCvM,EAAA,KAAc2L,KAC/CA,EAAAJ,EAAAlL,OAAA4K,GAAAuB,MAEApT,EAAA,CACA,IAAAqT,EAAArT,EAAAiH,OAAA4K,GACA,GAAAwB,EAAA,CACA,IAAAC,EAAAtT,EAAA6K,sBAAAgH,GACA,GAAwCjL,EAAA,KAAcmL,IAAWnL,EAAA,KAAcqL,IAAWrL,EAAA,KAAc0L,IAAc1L,EAAA,KAAc2L,IAAc3L,EAAA,KAAc0M,GAAA,CAChK,IAAAlH,GAAAkH,EAAAhB,IAAAC,EAAAD,GAKA,GAJ4C1L,EAAA,KAAc0M,KAAmB1M,EAAA,KAAcwF,KAC3FA,EAAA,IAG4CxF,EAAA,KAAcmL,GAC1D,OAAAA,GAAAE,EAAAF,GAAA3F,EAEA,GAAA2F,aAAkE1L,EAAA,KAClE,WAAuDA,EAAA,KAAMS,EAAA,KAAmBiL,EAAAwB,IAAAtB,EAAAsB,IAAAnH,MAKhF,OAAA/N,QAKAZ,KAAAiU,YAEAvT,YAAA,EACAC,cAAA,IAQAuH,EAAA7H,UAAAgD,cAAA,SAAAC,GACA,IAAAyS,EACA,GAAAzS,EAAA,CAEA,GAAgB6F,EAAA,KAAc7F,EAAAgG,UAAoBH,EAAA,KAAa7F,EAAAgG,SAC/D,QAAAhE,EAAA,EAAA0Q,EAAA1S,EAAAgG,QAAAnE,OAA4DG,EAAA0Q,EAAS1Q,IAAA,CACrE,IAAAgE,EAAAhG,EAAAgG,QAAAhE,GACyB6D,EAAA,KAAcG,EAAA2M,QACvC3M,EAAA2M,KAAA,UAMgB9M,EAAA,KAAc7F,EAAAyS,YAAsB5M,EAAA,KAAa7F,EAAAyS,aACjEA,EAAAzS,EAAAyS,iBACAzS,EAAAyS,WAKA,GAFAlW,EAAAQ,UAAAgD,cAAAtD,KAAAC,KAAAsD,GAEAyS,EAAA,CACA,IAAAzQ,EAAA,EAAA0Q,EAAAD,EAAA5Q,OAAmDG,EAAA0Q,EAAS1Q,IAAA,CAC5D,IAAA4Q,EAAAH,EAAAzQ,GAEA6O,EAAAnU,KACA,GAAoBmJ,EAAA,KAAc+M,EAAA/B,SAAiBhL,EAAA,KAAc+M,EAAA/B,QAEjE,GAAAnU,KAAAmW,IAAAC,OAAAF,EAAA/B,QACAA,EAAAnU,KAAAmW,IAAAvJ,OAAAsJ,EAAA/B,aAIA,IADA,IAAAkC,EAAAH,EAAA/B,OAAAmC,MAAA,KACAhP,EAAA,EAAuCA,EAAA+O,EAAAlR,OAAkBmC,IACzD,GAAA6M,aAAkD/L,EAAA,KAAI,CACtD,IAAAmO,EAAApC,EAAAhH,SAA+DhE,EAAA,KAAckN,EAAA/O,KAK7E6M,EAJAoC,GACApC,EAAAkC,EAAA/O,SAOA6M,IAAAkC,EAAA/O,IAKA4O,EAAA/B,SAEoBhL,EAAA,KAAc+M,EAAA3B,OAClC2B,EAAA3B,IAAAvU,KAAAwW,oBAAAN,EAAA3B,MAEoBpL,EAAA,KAAc+M,EAAAzB,OAClCyB,EAAAzB,IAAAzU,KAAAwW,oBAAAN,EAAAzB,MAGA5U,EAAAQ,UAAAgD,cAAAtD,KAAAC,KAAA,CACA+V,gBA4BA7N,EAAA7H,UAAAoW,YAAA,SAAAC,EAAAC,GACA,OAAAD,GAAAC,EACA,EAGA,aAAAD,EACA,EAEA,aAAAC,GACA,EAGA9W,EAAAQ,UAAAoW,YAAA1W,KAAAC,KAAA0W,EAAAC,IAYAzO,EAAA7H,UAAAuW,cAAA,SAAAhW,GACAf,EAAAQ,UAAAuW,cAAA7W,KAAAC,KAAAY,GACAZ,KAAAkL,iBAAA4E,QAAAlP,GAEAsH,EAzoCA,CA0oCEC,EAAA,MAQFU,EAAA,KAAQrE,kBAAA,UAAA0D,EACRW,EAAA,KAAQrE,kBAAA,kBAAAyD","file":"js/chunk-e0933d76.e68aa8e9.js","sourcesContent":["/**\r\n * TreeMap series module.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { ColumnSeries, ColumnSeriesDataItem } from \"./ColumnSeries\";\r\nimport { visualProperties } from \"../../core/Sprite\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport { InterfaceColorSet } from \"../../core/utils/InterfaceColorSet\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport { RoundedRectangle } from \"../../core/elements/RoundedRectangle\";\r\nimport * as $object from \"../../core/utils/Object\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines a [[DataItem]] for [[TreeMapSeries]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar TreeMapSeriesDataItem = /** @class */ (function (_super) {\r\n tslib_1.__extends(TreeMapSeriesDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function TreeMapSeriesDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"TreeMapSeriesDataItem\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n Object.defineProperty(TreeMapSeriesDataItem.prototype, \"parentName\", {\r\n /**\r\n * Data for the this particular item.\r\n *\r\n * @param value Item's data\r\n */\r\n //public set dataContext(value: Object) {\r\n //\tthis._dataContext = value;\r\n //}\r\n /**\r\n * @return Item's data\r\n */\r\n /*\r\n public get dataContext(): Object {\r\n // It's because data of tree series is TreeMapDataItems.\r\n if (this._dataContext) {\r\n return (this._dataContext).dataContext;\r\n }\r\n }*/\r\n /**\r\n * The name of the item's parent item.\r\n *\r\n * @return Parent name\r\n */\r\n get: function () {\r\n var treeMapDataItem = this.treeMapDataItem;\r\n if (treeMapDataItem && treeMapDataItem.parent) {\r\n return treeMapDataItem.parent.name;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TreeMapSeriesDataItem.prototype, \"value\", {\r\n /**\r\n * Item's numeric value.\r\n *\r\n * @readonly\r\n * @return Value\r\n */\r\n get: function () {\r\n var treeMapDataItem = this.treeMapDataItem;\r\n if (treeMapDataItem) {\r\n return treeMapDataItem.value;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TreeMapSeriesDataItem.prototype, \"treeMapDataItem\", {\r\n /**\r\n * A corresponding data item from the tree map.\r\n *\r\n * @readonly\r\n * @return Data item\r\n */\r\n get: function () {\r\n return this._dataContext;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Hides the Data Item and related visual elements.\r\n *\r\n * @param duration Animation duration (ms)\r\n * @param delay Delay animation (ms)\r\n * @param toValue A value to set to `fields` when hiding\r\n * @param fields A list of data fields to set value to `toValue`\r\n */\r\n TreeMapSeriesDataItem.prototype.hide = function (duration, delay, toValue, fields) {\r\n var treeMapDataItem = this.treeMapDataItem;\r\n if (treeMapDataItem) {\r\n treeMapDataItem.hide(duration);\r\n }\r\n return _super.prototype.hide.call(this, duration, delay, toValue, fields);\r\n };\r\n /**\r\n * Shows the Data Item and related visual elements.\r\n *\r\n * @param duration Animation duration (ms)\r\n * @param delay Delay animation (ms)\r\n * @param fields A list of fields to set values of\r\n */\r\n TreeMapSeriesDataItem.prototype.show = function (duration, delay, fields) {\r\n var treeMapDataItem = this.treeMapDataItem;\r\n if (treeMapDataItem) {\r\n treeMapDataItem.show(duration, delay, fields);\r\n }\r\n return _super.prototype.show.call(this, duration, delay, fields);\r\n };\r\n return TreeMapSeriesDataItem;\r\n}(ColumnSeriesDataItem));\r\nexport { TreeMapSeriesDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines Series for a TreeMap chart.\r\n *\r\n * @see {@link ITreeMapSeriesEvents} for a list of available Events\r\n * @see {@link ITreeMapSeriesAdapters} for a list of available Adapters\r\n * @todo Example\r\n * @important\r\n */\r\nvar TreeMapSeries = /** @class */ (function (_super) {\r\n tslib_1.__extends(TreeMapSeries, _super);\r\n /**\r\n * Constructor\r\n */\r\n function TreeMapSeries() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"TreeMapSeries\";\r\n _this.applyTheme();\r\n _this.fillOpacity = 1;\r\n _this.strokeOpacity = 1;\r\n _this.minBulletDistance = 0;\r\n _this.columns.template.tooltipText = \"{parentName} {name}: {value}\"; //@todo add format number?\r\n _this.columns.template.configField = \"config\";\r\n var interfaceColors = new InterfaceColorSet();\r\n _this.stroke = interfaceColors.getFor(\"background\");\r\n _this.dataFields.openValueX = \"x0\";\r\n _this.dataFields.valueX = \"x1\";\r\n _this.dataFields.openValueY = \"y0\";\r\n _this.dataFields.valueY = \"y1\";\r\n _this.sequencedInterpolation = false;\r\n _this.showOnInit = false;\r\n // otherwise nodes don't stack nicely to each other\r\n _this.columns.template.pixelPerfect = false;\r\n return _this;\r\n }\r\n /**\r\n * Processes data item.\r\n *\r\n * @param dataItem Data item\r\n * @param dataContext Raw data\r\n * @param index Index of the data item\r\n */\r\n TreeMapSeries.prototype.processDataItem = function (dataItem, dataContext) {\r\n dataContext.seriesDataItem = dataItem; // save a reference here. dataContext is TreeMapDataItem and we need to know dataItem sometimes\r\n _super.prototype.processDataItem.call(this, dataItem, dataContext);\r\n };\r\n /**\r\n * Returns a new/empty DataItem of the type appropriate for this object.\r\n *\r\n * @see {@link DataItem}\r\n * @return Data Item\r\n */\r\n TreeMapSeries.prototype.createDataItem = function () {\r\n return new TreeMapSeriesDataItem();\r\n };\r\n /**\r\n * Shows series.\r\n *\r\n * @param duration Duration of fade in (ms)\r\n * @return Animation\r\n */\r\n TreeMapSeries.prototype.show = function (duration) {\r\n var interpolationDuration = this.defaultState.transitionDuration;\r\n if ($type.isNumber(duration)) {\r\n interpolationDuration = duration;\r\n }\r\n this.dataItems.each(function (dataItem) {\r\n //dataItem.treeMapDataItem.setWorkingValue(\"value\", dataItem.treeMapDataItem.values.value.value);\r\n dataItem.show(duration);\r\n });\r\n return _super.prototype.showReal.call(this, interpolationDuration);\r\n };\r\n /**\r\n * Hides series.\r\n *\r\n * @param duration Duration of fade out (ms)\r\n * @return Animation\r\n */\r\n TreeMapSeries.prototype.hide = function (duration) {\r\n var interpolationDuration = this.defaultState.transitionDuration;\r\n if ($type.isNumber(duration)) {\r\n interpolationDuration = duration;\r\n }\r\n var animation = _super.prototype.hideReal.call(this, interpolationDuration);\r\n this.dataItems.each(function (dataItem) {\r\n //dataItem.treeMapDataItem.setWorkingValue(\"value\", 0);\r\n dataItem.hide(duration);\r\n });\r\n return animation;\r\n };\r\n /**\r\n * Process values.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n TreeMapSeries.prototype.processValues = function () {\r\n // Just overriding so that inherited method does not kick in.\r\n };\r\n /**\r\n * @ignore\r\n */\r\n TreeMapSeries.prototype.dataChangeUpdate = function () {\r\n };\r\n /**\r\n * Processes JSON-based config before it is applied to the object.\r\n *\r\n * @ignore Exclude from docs\r\n * @param config Config\r\n */\r\n TreeMapSeries.prototype.processConfig = function (config) {\r\n if (config) {\r\n // Add empty data fields if the they are not set, so that XYSeries\r\n // dataField check does not result in error.\r\n if (!$type.hasValue(config.dataFields) || !$type.isObject(config.dataFields)) {\r\n config.dataFields = {};\r\n }\r\n }\r\n _super.prototype.processConfig.call(this, config);\r\n };\r\n /**\r\n * Creates elements in related legend container, that mimics the look of this\r\n * Series.\r\n *\r\n * @ignore Exclude from docs\r\n * @param marker Legend item container\r\n */\r\n TreeMapSeries.prototype.createLegendMarker = function (marker) {\r\n var w = marker.pixelWidth;\r\n var h = marker.pixelHeight;\r\n marker.removeChildren();\r\n var column = marker.createChild(RoundedRectangle);\r\n column.shouldClone = false;\r\n $object.copyProperties(this, column, visualProperties);\r\n //column.copyFrom(this.columns.template);\r\n column.padding(0, 0, 0, 0); // if columns will have padding (which is often), legend marker will be very narrow\r\n column.width = w;\r\n column.height = h;\r\n var legendDataItem = marker.dataItem;\r\n legendDataItem.color = column.fill;\r\n legendDataItem.colorOrig = column.fill;\r\n };\r\n return TreeMapSeries;\r\n}(ColumnSeries));\r\nexport { TreeMapSeries };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"TreeMapSeries\"] = TreeMapSeries;\r\nregistry.registeredClasses[\"TreeMapSeriesDataItem\"] = TreeMapSeriesDataItem;\r\n//# sourceMappingURL=TreeMapSeries.js.map","/**\r\n * Line series segment module.\r\n * @todo Add description about what this is\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { LineSeriesSegment } from \"./LineSeriesSegment\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $path from \"../../core/rendering/Path\";\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Represents a line series segment.\r\n *\r\n * A line segment can be used to apply different properties to a part of the\r\n * line series, between two data points.\r\n *\r\n * @see {@link IStepLineSeriesSegmentEvents} for a list of available events\r\n * @see {@link IStepLineSeriesSegmentAdapters} for a list of available Adapters\r\n * @todo Example\r\n */\r\nvar StepLineSeriesSegment = /** @class */ (function (_super) {\r\n tslib_1.__extends(StepLineSeriesSegment, _super);\r\n /**\r\n * Constructor\r\n */\r\n function StepLineSeriesSegment() {\r\n var _this = \r\n // Init\r\n _super.call(this) || this;\r\n _this.className = \"StepLineSeriesSegment\";\r\n return _this;\r\n }\r\n /**\r\n * Draws the series segment.\r\n *\r\n * @ignore Exclude from docs\r\n * @param points Points to connect\r\n * @param closePoints ?\r\n * @param smoothnessX Horizontal bezier setting (?)\r\n * @param smoothnessY Vertical bezier setting (?)\r\n */\r\n StepLineSeriesSegment.prototype.drawSegment = function (points, closePoints, smoothnessX, smoothnessY, noRisers, vertical) {\r\n if (points.length > 0 && closePoints.length > 0) {\r\n if (noRisers) {\r\n var path = $path.moveTo(points[0]);\r\n if (points.length > 0) {\r\n for (var i = 1; i < points.length; i++) {\r\n var point = points[i];\r\n if (i / 2 == Math.round(i / 2)) {\r\n path += $path.moveTo(point);\r\n }\r\n else {\r\n path += $path.lineTo(point);\r\n }\r\n }\r\n }\r\n this.strokeSprite.path = path;\r\n if (this.fillOpacity > 0 || this.fillSprite.fillOpacity > 0) { // helps to avoid drawing fill object if fill is not visible\r\n path = $path.moveTo(points[0]) + $path.polyline(points);\r\n path += $path.lineTo(closePoints[0]) + $path.polyline(closePoints);\r\n path += $path.lineTo(points[0]);\r\n path += $path.closePath();\r\n this.fillSprite.path = path;\r\n }\r\n else {\r\n }\r\n }\r\n else {\r\n var path = $path.moveTo(points[0]) + $path.polyline(points);\r\n this.strokeSprite.path = path;\r\n if (this.fillOpacity > 0 || this.fillSprite.fillOpacity > 0) { // helps to avoid drawing fill object if fill is not visible\r\n path += $path.lineTo(closePoints[0]) + $path.polyline(closePoints);\r\n path += $path.lineTo(points[0]);\r\n path += $path.closePath();\r\n this.fillSprite.path = path;\r\n }\r\n }\r\n }\r\n };\r\n return StepLineSeriesSegment;\r\n}(LineSeriesSegment));\r\nexport { StepLineSeriesSegment };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"StepLineSeriesSegment\"] = StepLineSeriesSegment;\r\n//# sourceMappingURL=StepLineSeriesSegment.js.map","/**\r\n * Step line series module.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { LineSeries, LineSeriesDataItem } from \"./LineSeries\";\r\nimport { StepLineSeriesSegment } from \"./StepLineSeriesSegment\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $math from \"../../core/utils/Math\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines a [[DataItem]] for [[StepLineSeries]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar StepLineSeriesDataItem = /** @class */ (function (_super) {\r\n tslib_1.__extends(StepLineSeriesDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function StepLineSeriesDataItem() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"StepLineSeriesDataItem\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n return StepLineSeriesDataItem;\r\n}(LineSeriesDataItem));\r\nexport { StepLineSeriesDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines [[Series]] for a step line graph.\r\n *\r\n * @see {@link IStepLineSeriesEvents} for a list of available Events\r\n * @see {@link IStepLineSeriesAdapters} for a list of available Adapters\r\n * @todo Example\r\n * @important\r\n */\r\nvar StepLineSeries = /** @class */ (function (_super) {\r\n tslib_1.__extends(StepLineSeries, _super);\r\n /**\r\n * Constructor\r\n */\r\n function StepLineSeries() {\r\n var _this = _super.call(this) || this;\r\n _this.className = \"StepLineSeries\";\r\n _this.applyTheme();\r\n _this.startLocation = 0;\r\n _this.endLocation = 1;\r\n return _this;\r\n }\r\n /**\r\n * Returns a new/empty DataItem of the type appropriate for this object.\r\n *\r\n * @see {@link DataItem}\r\n * @return Data Item\r\n */\r\n StepLineSeries.prototype.createDataItem = function () {\r\n return new StepLineSeriesDataItem();\r\n };\r\n /**\r\n * [addPoints description]\r\n *\r\n * @todo Description\r\n * @param points [description]\r\n * @param dataItem [description]\r\n * @param xField [description]\r\n * @param yField [description]\r\n * @param backwards [description]\r\n */\r\n StepLineSeries.prototype.addPoints = function (points, dataItem, xField, yField, backwards) {\r\n var startLocation = this.startLocation;\r\n var endLocation = this.endLocation;\r\n var x0 = this.xAxis.getX(dataItem, xField, startLocation);\r\n var y0 = this.yAxis.getY(dataItem, yField, startLocation);\r\n var x1 = this.xAxis.getX(dataItem, xField, endLocation);\r\n var y1 = this.yAxis.getY(dataItem, yField, endLocation);\r\n x0 = $math.fitToRange(x0, -100000, 100000); // from geometric point of view this is not right, but practically it's ok. this is done to avoid too big objects.\r\n y0 = $math.fitToRange(y0, -100000, 100000); // from geometric point of view this is not right, but practically it's ok. this is done to avoid too big objects.\r\n x1 = $math.fitToRange(x1, -100000, 100000); // from geometric point of view this is not right, but practically it's ok. this is done to avoid too big objects.\r\n y1 = $math.fitToRange(y1, -100000, 100000); // from geometric point of view this is not right, but practically it's ok. this is done to avoid too big objects.\r\n // this might make an impression that points are duplicated, and they indeed are, but this is needed to handle gaps in data\r\n if (!this.noRisers && this.connect) {\r\n if (points.length > 1) {\r\n var prevPoint = points[points.length - 1];\r\n if (this.baseAxis == this.xAxis) {\r\n if (backwards) {\r\n points.push({ x: prevPoint.x, y: y1 });\r\n }\r\n else {\r\n points.push({ x: x0, y: prevPoint.y });\r\n }\r\n }\r\n if (this.baseAxis == this.yAxis) {\r\n if (backwards) {\r\n points.push({ x: x1, y: prevPoint.y });\r\n }\r\n else {\r\n points.push({ x: prevPoint.x, y: y0 });\r\n }\r\n }\r\n }\r\n }\r\n var point0 = { x: x0, y: y0 };\r\n var point1 = { x: x1, y: y1 };\r\n if (backwards) {\r\n points.push(point1, point0);\r\n }\r\n else {\r\n points.push(point0, point1);\r\n }\r\n };\r\n /**\r\n * Draws the line segment.\r\n *\r\n * @param segment Segment\r\n * @param points Segment points\r\n * @param closePoints Segment close points\r\n */\r\n StepLineSeries.prototype.drawSegment = function (segment, points, closePoints) {\r\n var vertical = false;\r\n if (this.yAxis == this.baseAxis) {\r\n vertical = true;\r\n }\r\n segment.drawSegment(points, closePoints, this.tensionX, this.tensionY, this.noRisers, vertical);\r\n };\r\n /**\r\n * @ignore\r\n */\r\n StepLineSeries.prototype.createSegment = function () {\r\n return new StepLineSeriesSegment();\r\n };\r\n Object.defineProperty(StepLineSeries.prototype, \"noRisers\", {\r\n /**\r\n * @return No risers\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"noRisers\");\r\n },\r\n /**\r\n * Specifies if step line series should draw only horizontal (or only\r\n * vertical, depending on base axis) lines, instead of connecting them with\r\n * vertical (or horizontal) lines.\r\n *\r\n * @default false\r\n * @param value No risers\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"noRisers\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(StepLineSeries.prototype, \"startLocation\", {\r\n /**\r\n * @return Location (0-1)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"startLocation\");\r\n },\r\n /**\r\n * start location of the step\r\n *\r\n * @param value Location (0-1)\r\n * @default 0\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"startLocation\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(StepLineSeries.prototype, \"endLocation\", {\r\n /**\r\n * @return Location (0-1)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"endLocation\");\r\n },\r\n /**\r\n * Step end location.\r\n *\r\n * @param value Location (0-1)\r\n * #default 1\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"endLocation\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return StepLineSeries;\r\n}(LineSeries));\r\nexport { StepLineSeries };\r\n/**\r\n * Register class in system, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"StepLineSeries\"] = StepLineSeries;\r\nregistry.registeredClasses[\"StepLineSeriesDataItem\"] = StepLineSeriesDataItem;\r\n//# sourceMappingURL=StepLineSeries.js.map","/**\r\n * Functionality for any series-based elements, like Line Series (graphs),\r\n * Pie slice lists, etc.\r\n */\r\nimport * as tslib_1 from \"tslib\";\r\n/**\r\n * ============================================================================\r\n * IMPORTS\r\n * ============================================================================\r\n * @hidden\r\n */\r\nimport { Component } from \"../../core/Component\";\r\nimport { Sprite } from \"../../core/Sprite\";\r\nimport { List, ListTemplate, ListDisposer } from \"../../core/utils/List\";\r\nimport { Dictionary, DictionaryDisposer } from \"../../core/utils/Dictionary\";\r\nimport { DataItem } from \"../../core/DataItem\";\r\nimport { Container } from \"../../core/Container\";\r\nimport { Tooltip } from \"../../core/elements/Tooltip\";\r\nimport { Bullet } from \"../elements/Bullet\";\r\nimport { LegendSettings } from \"../Legend\";\r\nimport { options } from \"../../core/Options\";\r\nimport { Color } from \"../../core/utils/Color\";\r\nimport { registry } from \"../../core/Registry\";\r\nimport * as $iter from \"../../core/utils/Iterator\";\r\nimport * as $math from \"../../core/utils/Math\";\r\nimport * as $ease from \"../../core/utils/Ease\";\r\nimport * as $utils from \"../../core/utils/Utils\";\r\nimport * as $object from \"../../core/utils/Object\";\r\nimport * as $type from \"../../core/utils/Type\";\r\nimport * as $array from \"../../core/utils/Array\";\r\nimport * as $colors from \"../../core/utils/Colors\";\r\n/**\r\n * ============================================================================\r\n * DATA ITEM\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines a [[DataItem]] for [[Series]].\r\n *\r\n * @see {@link DataItem}\r\n */\r\nvar SeriesDataItem = /** @class */ (function (_super) {\r\n tslib_1.__extends(SeriesDataItem, _super);\r\n /**\r\n * Constructor\r\n */\r\n function SeriesDataItem() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * A dictionary of data items bullets, where key is uid of a bullet template.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo review description\r\n */\r\n _this.bullets = new Dictionary();\r\n _this.className = \"SeriesDataItem\";\r\n //@todo Should we make `bullets` list disposable?\r\n _this._disposers.push(new DictionaryDisposer(_this.bullets));\r\n _this.values.value = {};\r\n _this.values.value = {};\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * Destroys this object and all related data.\r\n */\r\n SeriesDataItem.prototype.dispose = function () {\r\n this.bullets.clear();\r\n _super.prototype.dispose.call(this);\r\n };\r\n Object.defineProperty(SeriesDataItem.prototype, \"value\", {\r\n /**\r\n * @return Value\r\n */\r\n get: function () {\r\n return this.values.value.value;\r\n },\r\n /**\r\n * data items's numeric value.\r\n *\r\n * @param value Value\r\n */\r\n set: function (value) {\r\n this.setValue(\"value\", value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return SeriesDataItem;\r\n}(DataItem));\r\nexport { SeriesDataItem };\r\n/**\r\n * ============================================================================\r\n * MAIN CLASS\r\n * ============================================================================\r\n * @hidden\r\n */\r\n/**\r\n * Defines base class for any kind of serial data.\r\n *\r\n * @see {@link ISeriesEvents} for a list of available Events\r\n * @see {@link ISeriesAdapters} for a list of available Adapters\r\n * @todo Separate axis-related stuff to some other class so that MapSeries would not have unrelated stuff\r\n */\r\nvar Series = /** @class */ (function (_super) {\r\n tslib_1.__extends(Series, _super);\r\n /**\r\n * Constructor\r\n */\r\n function Series() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * Should this series excluded from the axis scale calculations?\r\n *\r\n * @default false\r\n */\r\n _this._ignoreMinMax = false;\r\n /**\r\n * Should series' bullets?\r\n *\r\n * @default true\r\n */\r\n _this._showBullets = true;\r\n /**\r\n * Settings for the appearance of the related legend items.\r\n */\r\n _this.legendSettings = new LegendSettings();\r\n /**\r\n * Lowest overal values by type.\r\n */\r\n _this._tmin = new Dictionary();\r\n /**\r\n * Highest overal values by type.\r\n */\r\n _this._tmax = new Dictionary();\r\n /**\r\n * Lowest values in current selection by type.\r\n */\r\n _this._smin = new Dictionary();\r\n /**\r\n * Highest values in current selection by type.\r\n */\r\n _this._smax = new Dictionary();\r\n /**\r\n * [dataItemsByAxis description]\r\n *\r\n * Both by category and date.\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n */\r\n _this.dataItemsByAxis = new Dictionary();\r\n /**\r\n * Normally series items are focusable using keyboard, so that people can\r\n * select them with a TAB key. However, if there are a lot of data points on\r\n * screen it might be long and useless to tab through all o fthem.\r\n *\r\n * This is where `skipFocusThreshold` comes in. If there are more items than\r\n * the value set here, we will not make those focusable and rather let screen\r\n * reader software rely on the series summary, or authors provide alternative\r\n * detailed information display, such as HTML table.\r\n *\r\n * Different series might have different threshold defaults.\r\n */\r\n _this.skipFocusThreshold = 20;\r\n /**\r\n * Most of the series use absolute values. However sometimes various\r\n * calculated percent values are need, e.g. item's percent representation\r\n * across all values in series, etc.\r\n *\r\n * It's a resource-intensive operation, so it is disabled by default.\r\n *\r\n * If you need percents to be calculated, e.g. for showing them in tooltips,\r\n * or creating 100% stacks, this setting needs to be set to `true`.\r\n *\r\n * NOTE: `PieChart`, which relies on slice percentages, has this\r\n * automatically set to `true`.\r\n *\r\n * @default false\r\n */\r\n _this.calculatePercent = false;\r\n /**\r\n * Specifies if series should be automatically disposed when removing from\r\n * chart's `series` list.\r\n *\r\n * @default true\r\n */\r\n _this.autoDispose = true;\r\n /**\r\n * When chart/series' data is processed, all kinds of derivative values are\r\n * calculated. E.g. sum, min, max, change, etc. This is a potentially\r\n * time-consuming operation, especially prominent in data-heavy charts.\r\n *\r\n * If your chart does not need those values, and you have a lot of data,\r\n * setting this to `true` might give a dramatic increase in initial chart\r\n * load speed.\r\n *\r\n * Please note, regular column and line series usage scenarios do not\r\n * require derivative values. Those come into play only when you do advanced\r\n * functionality like coloring segments of charts in different colors\r\n * depending on change between open and close values, have stacked series, or\r\n * display any of the derived values, like percent, in tooltips or bullets.\r\n *\r\n * @default false\r\n */\r\n _this.simplifiedProcessing = false;\r\n if (_this.constructor === Series) {\r\n throw new Error(\"'Series' cannot be instantiated directly. Please use a specific series type.\");\r\n }\r\n _this.className = \"Series\";\r\n _this.isMeasured = false;\r\n _this.layout = \"none\";\r\n _this.shouldClone = false;\r\n _this.setPropertyValue(\"hidden\", false);\r\n _this.axisRanges = new List();\r\n _this.axisRanges.events.on(\"inserted\", _this.processAxisRange, _this, false);\r\n _this.minBulletDistance = 0; // otherwise we'll have a lot of cases when people won't see bullets and think it's a bug\r\n _this.mainContainer = _this.createChild(Container);\r\n _this.mainContainer.shouldClone = false;\r\n _this.mainContainer.mask = _this.createChild(Sprite);\r\n _this._disposers.push(_this.mainContainer);\r\n // all bullets should go on top of lines/fills. So we add a separate container for bullets and later set it's parent to chart.bulletsContainer\r\n var bulletsContainer = _this.mainContainer.createChild(Container);\r\n _this._shouldBeReady.push(bulletsContainer);\r\n bulletsContainer.shouldClone = false;\r\n bulletsContainer.layout = \"none\";\r\n bulletsContainer.virtualParent = _this;\r\n _this._disposers.push(bulletsContainer);\r\n _this.bulletsContainer = bulletsContainer;\r\n _this.tooltip = new Tooltip();\r\n _this.tooltip.virtualParent = _this;\r\n _this._disposers.push(_this.tooltip);\r\n _this.hiddenState.transitionEasing = $ease.cubicIn;\r\n // this data item holds sums, averages, etc\r\n _this.dataItem = _this.createDataItem();\r\n _this._disposers.push(_this.dataItem);\r\n _this.dataItem.component = _this;\r\n // Apply accessibility\r\n _this.role = \"group\";\r\n _this.applyTheme();\r\n return _this;\r\n }\r\n /**\r\n * We need this here so that class names can be applied to bullets container.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Series.prototype.applyTheme = function () {\r\n _super.prototype.applyTheme.call(this);\r\n if (options.autoSetClassName && this.bulletsContainer) {\r\n this.bulletsContainer.className = this.className + \"-bullets\";\r\n this.bulletsContainer.setClassName();\r\n }\r\n };\r\n /**\r\n * Sets defaults that instantiate some objects that rely on parent, so they\r\n * cannot be set in constructor.\r\n */\r\n Series.prototype.applyInternalDefaults = function () {\r\n _super.prototype.applyInternalDefaults.call(this);\r\n if (!$type.hasValue(this.readerTitle)) {\r\n this.readerTitle = this.language.translate(\"Series\");\r\n }\r\n };\r\n /**\r\n * Returns a new/empty DataItem of the type appropriate for this object.\r\n *\r\n * @see {@link DataItem}\r\n * @return Data Item\r\n */\r\n Series.prototype.createDataItem = function () {\r\n return new SeriesDataItem();\r\n };\r\n Object.defineProperty(Series.prototype, \"chart\", {\r\n /**\r\n * @return Chart\r\n */\r\n get: function () {\r\n return this._chart;\r\n },\r\n /**\r\n * Chart series is used on.\r\n *\r\n * @param value Chart\r\n */\r\n set: function (value) {\r\n this._chart = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Positions bullet.\r\n *\r\n * @param bullet Sprite\r\n */\r\n Series.prototype.positionBullet = function (bullet) {\r\n // Placeholder method for extending classes to override.\r\n };\r\n /**\r\n * Decorates newly created bullet after it has been instert into the list.\r\n *\r\n * @param event List event\r\n * @todo investigate why itemReaderText is undefined\r\n */\r\n Series.prototype.processBullet = function (event) {\r\n var bullet = event.newValue;\r\n bullet.isTemplate = true;\r\n // Add accessibility options to bullet\r\n // If there are relatively few bullets, make them focusable\r\n if (this.itemsFocusable()) {\r\n bullet.focusable = true;\r\n }\r\n };\r\n /**\r\n * removes bullets\r\n *\r\n * @param event List event\r\n */\r\n Series.prototype.removeBullet = function (event) {\r\n var bullet = event.oldValue;\r\n this.dataItems.each(function (dataItem) {\r\n var eachBullet = dataItem.bullets.getKey(bullet.uid);\r\n if (eachBullet) {\r\n eachBullet.dispose();\r\n }\r\n });\r\n this.invalidate();\r\n };\r\n /**\r\n * Validates data items.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Series.prototype.validateDataItems = function () {\r\n _super.prototype.validateDataItems.call(this);\r\n this.processValues(false);\r\n };\r\n /**\r\n * Returns first value for the specific key in the series.\r\n *\r\n * @param key Key\r\n * @return Value\r\n * @todo Description\r\n * @todo Convert to propert object property iterator\r\n */\r\n Series.prototype.getFirstValue = function (key, startIndex) {\r\n // find first\r\n /*\r\n return $iter.findMap(this.dataItems.iterator(), (dataItem) => {\r\n for (let key in dataItem.values) {\r\n if ($object.hasKey(dataItem.values, key)) {\r\n let value: number = dataItem.values[key].workingValue;\r\n if ($type.isNumber(value)) {\r\n return value;\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n });*/\r\n if (startIndex > 0 && startIndex < this.dataItems.length - 1) {\r\n startIndex++;\r\n }\r\n for (var i = startIndex; i >= 0; i--) {\r\n var dataItem = this.dataItems.getIndex(i);\r\n var value = dataItem.getActualWorkingValue(key);\r\n if ($type.isNumber(value)) {\r\n return value;\r\n }\r\n }\r\n return null;\r\n };\r\n /**\r\n * [rangeChangeUpdate description]\r\n *\r\n * @todo Description\r\n */\r\n Series.prototype.rangeChangeUpdate = function () {\r\n _super.prototype.rangeChangeUpdate.call(this);\r\n this.processValues(true);\r\n };\r\n /**\r\n * [processValues description]\r\n *\r\n * @todo Description\r\n * @todo Convert to propert object property iterator\r\n * @param dataItems [description]\r\n */\r\n Series.prototype.processValues = function (working) {\r\n var _this = this;\r\n if (!this.simplifiedProcessing) {\r\n var dataItems = this.dataItems;\r\n var count_1 = {};\r\n var sum_1 = {};\r\n var low_1 = {};\r\n var high_1 = {};\r\n var open_1 = {};\r\n var close_1 = {};\r\n var previous_1 = {};\r\n var first_1 = {};\r\n //let duration: number = 0; // todo: check if series uses selection.change or selection.change.percent and set duration to interpolationduration\r\n var startIndex_1 = $math.max(0, this._workingStartIndex);\r\n startIndex_1 = $math.min(startIndex_1, this.dataItems.length);\r\n var endIndex = $math.min(this._workingEndIndex, this.dataItems.length);\r\n if (!$type.isNumber(startIndex_1)) {\r\n startIndex_1 = 0;\r\n }\r\n if (!$type.isNumber(endIndex)) {\r\n endIndex = this.dataItems.length;\r\n }\r\n if (startIndex_1 > 0) {\r\n var dataItem_1 = dataItems.getIndex(startIndex_1 - 1);\r\n $object.each(dataItem_1.values, function (key, values) {\r\n var value = dataItem_1.getActualWorkingValue(key);\r\n if ($type.isNumber(value)) {\r\n // save previous\r\n previous_1[key] = value;\r\n }\r\n });\r\n }\r\n var _loop_1 = function (i) {\r\n var dataItem_2 = dataItems.getIndex(i);\r\n $object.each(dataItem_2.values, function (key, values) {\r\n var value = dataItem_2.getActualWorkingValue(key);\r\n //if (i >= startIndex && i <= endIndex) { // do not add to count, sum etc if it is not within start/end index\r\n if ($type.isNumber(value)) {\r\n // count values\r\n if (!$type.isNumber(count_1[key])) {\r\n count_1[key] = 0;\r\n }\r\n count_1[key]++;\r\n // sum values\r\n if (!$type.isNumber(sum_1[key])) {\r\n sum_1[key] = 0;\r\n }\r\n sum_1[key] += value;\r\n // open\r\n if (!$type.isNumber(open_1[key])) {\r\n open_1[key] = value;\r\n }\r\n // close\r\n close_1[key] = value;\r\n // low\r\n if (!$type.isNumber(low_1[key])) {\r\n low_1[key] = value;\r\n }\r\n else {\r\n if (low_1[key] > value) {\r\n low_1[key] = value;\r\n }\r\n }\r\n // high\r\n if (!$type.isNumber(high_1[key])) {\r\n high_1[key] = value;\r\n }\r\n else {\r\n if (high_1[key] < value) {\r\n high_1[key] = value;\r\n }\r\n }\r\n if (!$type.isNumber(first_1[key])) {\r\n first_1[key] = _this.getFirstValue(key, startIndex_1);\r\n }\r\n // change\r\n dataItem_2.setCalculatedValue(key, value - first_1[key], \"change\");\r\n // change from start percent\r\n // will fail if first value is 0\r\n dataItem_2.setCalculatedValue(key, (value - first_1[key]) / first_1[key] * 100, \"changePercent\");\r\n // previous change\r\n var prevValue = previous_1[key];\r\n if (!$type.isNumber(prevValue)) {\r\n prevValue = value;\r\n }\r\n dataItem_2.setCalculatedValue(key, value - prevValue, \"previousChange\");\r\n // previous change percent\r\n dataItem_2.setCalculatedValue(key, (value - prevValue) / prevValue * 100, \"previousChangePercent\");\r\n // save previous\r\n previous_1[key] = value;\r\n }\r\n });\r\n };\r\n for (var i = startIndex_1; i < endIndex; i++) {\r\n _loop_1(i);\r\n }\r\n if (this.calculatePercent) {\r\n var _loop_2 = function (i) {\r\n var dataItem_3 = dataItems.getIndex(i);\r\n $object.each(dataItem_3.values, function (key) {\r\n var ksum = sum_1[key];\r\n var value = dataItem_3.getActualWorkingValue(key);\r\n if ($type.isNumber(value)) {\r\n if (ksum > 0) {\r\n // this hack is made in order to make it possible to animate single slice to 0\r\n // if there is only one slice left, percent value is always 100%, so it won't animate\r\n // so we use real value of a slice instead of current value\r\n if (value == ksum) {\r\n ksum = dataItem_3.values[key].value;\r\n }\r\n var percent = value / ksum * 100;\r\n dataItem_3.setCalculatedValue(key, percent, \"percent\");\r\n }\r\n else {\r\n dataItem_3.setCalculatedValue(key, 0, \"percent\");\r\n }\r\n }\r\n });\r\n };\r\n for (var i = startIndex_1; i < endIndex; i++) {\r\n _loop_2(i);\r\n }\r\n }\r\n // calculate one before first (cant do that in cycle, as we don't know open yet\r\n // when drawing line chart we should draw line to the invisible data point to the left, otherwise the line will always look like it starts from the selected point\r\n // so we do startIndex - 1\r\n if (startIndex_1 > 0) {\r\n var zeroItem_1 = dataItems.getIndex(startIndex_1 - 1);\r\n $object.each(zeroItem_1.values, function (key) {\r\n var value = zeroItem_1.values[key].value;\r\n // change\r\n zeroItem_1.setCalculatedValue(key, value - open_1[key], \"change\");\r\n // change percent\r\n zeroItem_1.setCalculatedValue(key, (value - open_1[key]) / open_1[key] * 100, \"changePercent\");\r\n });\r\n }\r\n // we save various data like sum, average to dataPoint of the series\r\n var dataItem_4 = this.dataItem;\r\n $object.each(dataItem_4.values, function (key) {\r\n dataItem_4.setCalculatedValue(key, sum_1[key], \"sum\");\r\n dataItem_4.setCalculatedValue(key, sum_1[key] / count_1[key], \"average\");\r\n dataItem_4.setCalculatedValue(key, open_1[key], \"open\");\r\n dataItem_4.setCalculatedValue(key, close_1[key], \"close\");\r\n dataItem_4.setCalculatedValue(key, low_1[key], \"low\");\r\n dataItem_4.setCalculatedValue(key, high_1[key], \"high\");\r\n dataItem_4.setCalculatedValue(key, count_1[key], \"count\");\r\n });\r\n }\r\n };\r\n /**\r\n * (Re)validates the whole series, effectively causing it to redraw.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Series.prototype.validate = function () {\r\n $iter.each(this.axisRanges.iterator(), function (axisRange) {\r\n //axisRange.contents.disposeChildren(); // not good for columns, as they are reused\r\n //\t\t\taxisRange.appendChildren();\r\n axisRange.validate();\r\n });\r\n _super.prototype.validate.call(this);\r\n var bulletsContainer = this.bulletsContainer;\r\n bulletsContainer.fill = this.fill;\r\n bulletsContainer.stroke = this.stroke;\r\n bulletsContainer.x = this.pixelX;\r\n bulletsContainer.y = this.pixelY;\r\n if (this.bulletsContainer.children.length > 0) {\r\n if (this._showBullets) {\r\n for (var i = 0; i < this.startIndex; i++) {\r\n var dataItem = this.dataItems.getIndex(i);\r\n if (dataItem) {\r\n dataItem.bullets.each(function (key, bullet) {\r\n bullet.__disabled = true;\r\n });\r\n }\r\n }\r\n for (var i = this.dataItems.length - 1; i > this.endIndex; i--) {\r\n var dataItem = this.dataItems.getIndex(i);\r\n if (dataItem) {\r\n dataItem.bullets.each(function (key, bullet) {\r\n bullet.__disabled = true;\r\n });\r\n }\r\n }\r\n }\r\n else {\r\n this.bulletsContainer.children.each(function (bullet) {\r\n bullet.__disabled = true;\r\n });\r\n }\r\n }\r\n this.updateTooltipBounds();\r\n };\r\n /**\r\n * @ignore\r\n */\r\n Series.prototype.updateTooltipBounds = function () {\r\n if (this.topParent) {\r\n this.tooltip.setBounds({ x: 0, y: 0, width: this.topParent.maxWidth, height: this.topParent.maxHeight });\r\n }\r\n };\r\n Series.prototype.shouldCreateBullet = function (dataItem, bulletTemplate) {\r\n return true;\r\n };\r\n /**\r\n * Validates data item's element, effectively redrawing it.\r\n *\r\n * @ignore Exclude from docs\r\n * @param dataItem Data item\r\n */\r\n Series.prototype.validateDataElement = function (dataItem) {\r\n var _this = this;\r\n _super.prototype.validateDataElement.call(this, dataItem);\r\n if (this._showBullets) {\r\n if (!this.isHidden) {\r\n this.bulletsContainer.visible = true;\r\n }\r\n this.bullets.each(function (bulletTemplate) {\r\n // always better to use the same, this helps to avoid redrawing\r\n var bullet = dataItem.bullets.getKey(bulletTemplate.uid);\r\n if (_this.shouldCreateBullet(dataItem, bulletTemplate)) {\r\n if (!bullet) {\r\n var disabledField = bulletTemplate.propertyFields.disabled;\r\n var dataContext = dataItem.dataContext;\r\n if (disabledField && dataContext && dataContext[disabledField] === false) {\r\n bulletTemplate.applyOnClones = false;\r\n bulletTemplate.disabled = false;\r\n bullet = bulletTemplate.clone();\r\n bulletTemplate.disabled = true;\r\n bulletTemplate.applyOnClones = true;\r\n }\r\n else {\r\n bullet = bulletTemplate.clone();\r\n }\r\n bullet.shouldClone = false;\r\n dataItem.addSprite(bullet);\r\n if (!_this.visible || _this.isHiding) {\r\n bullet.hide(0);\r\n }\r\n }\r\n var currentDataItem = bullet.dataItem;\r\n if (currentDataItem != dataItem) {\r\n // set to undefined in order not to reuse\r\n if (currentDataItem) {\r\n currentDataItem.bullets.setKey(bulletTemplate.uid, undefined);\r\n }\r\n var readerText_1 = _this.itemReaderText;\r\n if (bullet instanceof Bullet) {\r\n if (!readerText_1) {\r\n readerText_1 = (\"{\" + bullet.xField + \"}: {\" + bullet.yField + \"}\");\r\n }\r\n if (bullet.isDynamic) {\r\n dataItem.events.on(\"workingvaluechanged\", bullet.deepInvalidate, bullet, false);\r\n //dataItem.events.on(\"calculatedvaluechanged\", bullet.deepInvalidate, bullet, false);\r\n _this.dataItem.events.on(\"workingvaluechanged\", bullet.deepInvalidate, bullet, false);\r\n }\r\n bullet.deepInvalidate();\r\n }\r\n // Add accessibility to bullet\r\n if (bullet.focusable) {\r\n bullet.events.on(\"focus\", function (ev) {\r\n bullet.readerTitle = _this.populateString(readerText_1, bullet.dataItem);\r\n }, undefined, false);\r\n bullet.events.on(\"blur\", function (ev) {\r\n bullet.readerTitle = \"\";\r\n }, undefined, false);\r\n }\r\n if (bullet.hoverable) {\r\n bullet.events.on(\"over\", function (ev) {\r\n bullet.readerTitle = _this.populateString(readerText_1, bullet.dataItem);\r\n }, undefined, false);\r\n bullet.events.on(\"out\", function (ev) {\r\n bullet.readerTitle = \"\";\r\n }, undefined, false);\r\n }\r\n }\r\n bullet.parent = _this.bulletsContainer;\r\n dataItem.bullets.setKey(bulletTemplate.uid, bullet);\r\n // pass max w/h so we'd know if we should show/hide somethings\r\n bullet.maxWidth = dataItem.itemWidth;\r\n bullet.maxHeight = dataItem.itemHeight;\r\n bullet.__disabled = false;\r\n _this.positionBullet(bullet);\r\n }\r\n });\r\n }\r\n else {\r\n this.bulletsContainer.visible = false;\r\n }\r\n };\r\n /**\r\n * [handleDataItemWorkingValueChange description]\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Series.prototype.handleDataItemWorkingValueChange = function (dataItem, name) {\r\n if (!this.dataRangeInvalid) {\r\n this.invalidateProcessedData();\r\n }\r\n };\r\n Object.defineProperty(Series.prototype, \"ignoreMinMax\", {\r\n /**\r\n * @return Exclude from calculations?\r\n */\r\n get: function () {\r\n return this._ignoreMinMax;\r\n },\r\n /**\r\n * Should this series excluded from the axis scale calculations?\r\n *\r\n * @default false\r\n * @param value Exclude from calculations?\r\n */\r\n set: function (value) {\r\n this._ignoreMinMax = value;\r\n this.invalidateDataItems();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Create a mask for the series.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Series.prototype.createMask = function () {\r\n // A placeholder method for extending classes to override.\r\n };\r\n /**\r\n * Process axis range after it has been added to the list.\r\n *\r\n * @param event Event\r\n */\r\n Series.prototype.processAxisRange = function (event) {\r\n // create container if not existing\r\n if (!this.rangesContainer) {\r\n this.rangesContainer = this.createChild(Container);\r\n this.rangesContainer.shouldClone = false;\r\n this.rangesContainer.isMeasured = false;\r\n }\r\n var axisRange = event.newValue;\r\n if (axisRange) {\r\n axisRange.contents.parent = this.rangesContainer;\r\n axisRange.isRange = true;\r\n }\r\n };\r\n /**\r\n * [getAxisField description]\r\n *\r\n * @ignore Exclude from docs\r\n * @todo Description\r\n * @param axis [description]\r\n * @return [description]\r\n */\r\n Series.prototype.getAxisField = function (axis) {\r\n return;\r\n };\r\n /**\r\n * Shows the tooltip at specific position.\r\n *\r\n * @ignore Exclude from docs\r\n * @param xPosition X\r\n * @param yPosition Y\r\n */\r\n Series.prototype.showTooltipAtPosition = function (xPosition, yPosition) {\r\n // Placeholder method for extending classes to override.\r\n };\r\n Object.defineProperty(Series.prototype, \"minBulletDistance\", {\r\n /**\r\n * @return Distance (px)\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"minBulletDistance\");\r\n },\r\n /**\r\n * Minimal distance between two adjacent bullets in pixels.\r\n *\r\n * If bullet is closer, it will be skipped and not shown.\r\n *\r\n * This allows to avoid crammed up graphs wil a lot of bullets.\r\n *\r\n * @default 0\r\n * @param value Distance (px)\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"minBulletDistance\", value, true);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Series.prototype, \"bullets\", {\r\n /**\r\n * A list of bullets that will be added to each and every items in the\r\n * series.\r\n *\r\n * You can push any object that is a descendant of a [[Sprite]] here. All\r\n * items added to this list will be copied and used as a bullet on all data\r\n * items, including their properties, events, etc.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v4/concepts/bullets/} for more info about the concept of Bullets\r\n * @return List of bullets.\r\n */\r\n get: function () {\r\n if (!this._bullets) {\r\n this._bullets = new ListTemplate(new Bullet());\r\n this._bullets.template.virtualParent = this;\r\n this._bullets.events.on(\"inserted\", this.processBullet, this, false);\r\n this._bullets.events.on(\"removed\", this.removeBullet, this, false);\r\n this._disposers.push(new ListDisposer(this._bullets));\r\n this._disposers.push(this._bullets.template);\r\n }\r\n return this._bullets;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Binds related legend data item's visual settings to this series' visual\r\n * settings.\r\n *\r\n * @ignore Exclude from docs\r\n * @param marker Legend item container\r\n */\r\n Series.prototype.createLegendMarker = function (marker) {\r\n // This is a placeholder method for extending classes to override.\r\n };\r\n Object.defineProperty(Series.prototype, \"hiddenInLegend\", {\r\n /**\r\n * @return Hidden in legend?\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"hiddenInLegend\");\r\n },\r\n /**\r\n * Should the series be hidden in legend?\r\n *\r\n * @param value Hidden in legend?\r\n */\r\n set: function (value) {\r\n if (this.setPropertyValue(\"hiddenInLegend\", value)) {\r\n if (this.chart) {\r\n this.chart.feedLegend();\r\n }\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Series.prototype, \"name\", {\r\n /**\r\n * @return Name\r\n */\r\n get: function () {\r\n return this.getPropertyValue(\"name\");\r\n },\r\n /**\r\n * Series' name.\r\n *\r\n * @param value Name\r\n */\r\n set: function (value) {\r\n this.setPropertyValue(\"name\", value);\r\n var legendDataItem = this.legendDataItem;\r\n if (legendDataItem) {\r\n legendDataItem.component.invalidate();\r\n legendDataItem.component.invalidateRawData();\r\n }\r\n this.readerTitle = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Series.prototype, \"itemReaderText\", {\r\n /**\r\n * @return Screen reader text template\r\n */\r\n get: function () {\r\n // Get explicitly set reader text\r\n var readerText = this._itemReaderText;\r\n // Not set? Let's try something else\r\n if (!readerText) {\r\n // Tooltip text?\r\n if (this.tooltipText) {\r\n readerText = $utils.plainText(this.tooltipText);\r\n }\r\n else if (this.tooltipHTML) {\r\n readerText = $utils.plainText(this.tooltipHTML);\r\n }\r\n }\r\n return this.adapter.apply(\"itemReaderText\", readerText);\r\n },\r\n /**\r\n * Screen reader text to be applied to each individual data item, such\r\n * as bullets, columns or slices.\r\n *\r\n * The template can contain field reference meta codes, i.e. `{dateX}`,\r\n * `{valueY}`, etc.\r\n *\r\n * Any text formatting options, e.g. `[bold]` will be ignored.\r\n *\r\n * @param value Screen reader text template\r\n */\r\n set: function (value) {\r\n this._itemReaderText = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Returns if number of data items in the series are beyond non-focusable\r\n * count and should not be available for TAB-through.\r\n *\r\n * @ignore Exclude from docs\r\n * @return Items focusable?\r\n */\r\n Series.prototype.itemsFocusable = function () {\r\n return this.dataItems.length >= this.skipFocusThreshold ? false : true;\r\n };\r\n Object.defineProperty(Series.prototype, \"legendDataItem\", {\r\n /**\r\n * @return Data item\r\n */\r\n get: function () {\r\n return this._legendDataItem;\r\n },\r\n /**\r\n * Legend data item that corresponds to this series.\r\n *\r\n * @param value Data item\r\n */\r\n set: function (value) {\r\n this._legendDataItem = value;\r\n this._legendDataItem.itemContainer.deepInvalidate();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Updates corresponding legend data item with current values.\r\n *\r\n * @ignore Exclude from docs\r\n * @param dataItem Data item\r\n */\r\n Series.prototype.updateLegendValue = function (dataItem) {\r\n // if this series has legend item\r\n if (this.legendDataItem) {\r\n var legendSettings = this.legendSettings;\r\n var legendDataItem = this.legendDataItem;\r\n var label = legendDataItem.label;\r\n var valueLabel = legendDataItem.valueLabel;\r\n // update legend\r\n if (dataItem) {\r\n if (valueLabel) {\r\n if (legendSettings.itemValueText) {\r\n valueLabel.text = legendSettings.itemValueText;\r\n }\r\n valueLabel.dataItem = dataItem;\r\n }\r\n if (label) {\r\n if (legendSettings.itemLabelText) {\r\n label.text = legendSettings.itemLabelText;\r\n }\r\n label.dataItem = dataItem;\r\n }\r\n }\r\n else {\r\n if (label) {\r\n // if itemLabelText is set, means we have to reset label even if labelText is not set\r\n if (legendSettings.labelText || legendSettings.itemLabelText != undefined) {\r\n label.text = legendSettings.labelText;\r\n }\r\n label.dataItem = this.dataItem;\r\n }\r\n if (valueLabel) {\r\n if (legendSettings.valueText || legendSettings.itemValueText != undefined) {\r\n valueLabel.text = legendSettings.valueText;\r\n }\r\n valueLabel.dataItem = this.dataItem;\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Copies all properties from another instance of [[Series]].\r\n *\r\n * @param source Source series\r\n */\r\n Series.prototype.copyFrom = function (source) {\r\n this.bullets.copyFrom(source.bullets);\r\n this.bulletsContainer.copyFrom(source.bulletsContainer);\r\n this.calculatePercent = source.calculatePercent;\r\n this.simplifiedProcessing = source.simplifiedProcessing;\r\n _super.prototype.copyFrom.call(this, source);\r\n };\r\n /**\r\n * Displays a modal or console message with error, and halts any further\r\n * processing of this element.\r\n *\r\n * @param e Error\r\n */\r\n Series.prototype.raiseCriticalError = function (e) {\r\n this._chart.modal.content = this._chart.adapter.apply(\"criticalError\", e).message;\r\n this._chart.modal.closable = false;\r\n this._chart.modal.open();\r\n this._chart.disabled = true;\r\n if (options.verbose) {\r\n console.log(e);\r\n }\r\n };\r\n /**\r\n * Applies filters to the element.\r\n *\r\n * @ignore Exclude from docs\r\n */\r\n Series.prototype.applyFilters = function () {\r\n var _this = this;\r\n _super.prototype.applyFilters.call(this);\r\n this.bulletsContainer.filters.clear();\r\n // copyFrom of a list copies, does not clone\r\n $iter.each(this.filters.iterator(), function (filter) {\r\n _this.bulletsContainer.filters.push(filter.clone());\r\n });\r\n };\r\n Object.defineProperty(Series.prototype, \"heatRules\", {\r\n /**\r\n * @todo Description\r\n */\r\n get: function () {\r\n var _this = this;\r\n if (!this._heatRules) {\r\n this._heatRules = new List();\r\n this._heatRules.events.on(\"inserted\", function (event) {\r\n var heatRule = event.newValue;\r\n var target = heatRule.target;\r\n if (target) {\r\n var dataField_1 = heatRule.dataField;\r\n if (!$type.hasValue(dataField_1)) {\r\n dataField_1 = \"value\";\r\n }\r\n var min_1 = heatRule.min;\r\n var max_1 = heatRule.max;\r\n var seriesDataItem_1 = _this.dataItem;\r\n var property_1 = heatRule.property;\r\n var minValue = $type.toNumber(heatRule.minValue);\r\n var maxValue = $type.toNumber(heatRule.maxValue);\r\n if (!$type.isNumber(minValue) && !$type.isNumber(maxValue)) {\r\n _this.dataItem.events.on(\"calculatedvaluechanged\", function (event) {\r\n if (event.property == dataField_1) {\r\n $iter.each(_this.dataItems.iterator(), function (dataItem) {\r\n var foundSprite = false;\r\n $array.each(dataItem.sprites, function (sprite) {\r\n if (sprite.clonedFrom == target) {\r\n var anySprite = sprite;\r\n anySprite[property_1] = anySprite[property_1];\r\n foundSprite = true;\r\n }\r\n });\r\n if (!foundSprite) {\r\n $array.each(dataItem.sprites, function (sprite) {\r\n if (sprite instanceof Container) {\r\n $iter.each(sprite.children.iterator(), function (child) {\r\n if (child.className == target.className) {\r\n var anyChild = child;\r\n anyChild[property_1] = anyChild[property_1];\r\n }\r\n // giveup here\r\n else if (child instanceof Container) {\r\n child.deepInvalidate();\r\n }\r\n });\r\n }\r\n });\r\n }\r\n });\r\n }\r\n });\r\n }\r\n _this.dataItems.template.events.on(\"workingvaluechanged\", function (event) {\r\n if (event.property == dataField_1) {\r\n var dataItem = event.target;\r\n var foundSprite_1 = false;\r\n $array.each(dataItem.sprites, function (sprite) {\r\n if (sprite.clonedFrom == target) {\r\n var anySprite = sprite;\r\n anySprite[property_1] = anySprite[property_1];\r\n foundSprite_1 = true;\r\n }\r\n });\r\n if (!foundSprite_1) {\r\n $array.each(dataItem.sprites, function (sprite) {\r\n if (sprite instanceof Container) {\r\n $iter.each(sprite.children.iterator(), function (child) {\r\n if (child.className == target.className) {\r\n var anyChild = child;\r\n anyChild[property_1] = anyChild[property_1];\r\n }\r\n // givup here\r\n else if (child instanceof Container) {\r\n child.deepInvalidate();\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n });\r\n target.adapter.add(property_1, function (value, ruleTarget, property) {\r\n var minValue = $type.toNumber(heatRule.minValue);\r\n var maxValue = $type.toNumber(heatRule.maxValue);\r\n if (ruleTarget instanceof Sprite) {\r\n var anySprite = ruleTarget;\r\n var propertyField = anySprite.propertyFields[property];\r\n if (propertyField && ruleTarget.dataItem) {\r\n var dataContext = ruleTarget.dataItem.dataContext;\r\n if (dataContext && $type.hasValue(dataContext[propertyField])) {\r\n return value;\r\n }\r\n }\r\n }\r\n var dataItem = ruleTarget.dataItem;\r\n if (!$type.isNumber(minValue)) {\r\n minValue = seriesDataItem_1.values[dataField_1].low;\r\n }\r\n if (!$type.isNumber(maxValue)) {\r\n maxValue = seriesDataItem_1.values[dataField_1].high;\r\n }\r\n if (dataItem) {\r\n var fieldValues = dataItem.values[dataField_1];\r\n if (fieldValues) {\r\n var workingValue = dataItem.getActualWorkingValue(dataField_1);\r\n if ($type.hasValue(min_1) && $type.hasValue(max_1) && $type.isNumber(minValue) && $type.isNumber(maxValue) && $type.isNumber(workingValue)) {\r\n var percent = (workingValue - minValue) / (maxValue - minValue);\r\n if ($type.isNumber(workingValue) && !$type.isNumber(percent)) {\r\n percent = 0.5;\r\n }\r\n // fixes problems if all values are the same\r\n if ($type.isNumber(min_1)) {\r\n return min_1 + (max_1 - min_1) * percent;\r\n }\r\n else if (min_1 instanceof Color) {\r\n return new Color($colors.interpolate(min_1.rgb, max_1.rgb, percent));\r\n }\r\n }\r\n }\r\n }\r\n return value;\r\n });\r\n }\r\n });\r\n }\r\n return this._heatRules;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Processes JSON-based config before it is applied to the object.\r\n *\r\n * @ignore Exclude from docs\r\n * @param config Config\r\n */\r\n Series.prototype.processConfig = function (config) {\r\n var heatRules;\r\n if (config) {\r\n // Set up bullets\r\n if ($type.hasValue(config.bullets) && $type.isArray(config.bullets)) {\r\n for (var i = 0, len = config.bullets.length; i < len; i++) {\r\n var bullets = config.bullets[i];\r\n if (!$type.hasValue(bullets.type)) {\r\n bullets.type = \"Bullet\";\r\n }\r\n }\r\n }\r\n // Let's take heatRules out of the config, so that we can process\r\n // them later, when bullets are already there\r\n if ($type.hasValue(config.heatRules) && $type.isArray(config.heatRules)) {\r\n heatRules = config.heatRules;\r\n delete config.heatRules;\r\n }\r\n }\r\n _super.prototype.processConfig.call(this, config);\r\n // Process heat rules again, when all other elements are ready\r\n if (heatRules) {\r\n for (var i = 0, len = heatRules.length; i < len; i++) {\r\n var rule = heatRules[i];\r\n // Resolve target\r\n var target = this;\r\n if ($type.hasValue(rule.target) && $type.isString(rule.target)) {\r\n // Check if we can find this element by id\r\n if (this.map.hasKey(rule.target)) {\r\n target = this.map.getKey(rule.target);\r\n }\r\n else {\r\n var parts = rule.target.split(\".\");\r\n for (var x = 0; x < parts.length; x++) {\r\n if (target instanceof List) {\r\n var listitem = target.getIndex($type.toNumber(parts[x]));\r\n if (!listitem) {\r\n target = target[parts[x]];\r\n }\r\n else {\r\n target = listitem;\r\n }\r\n }\r\n else {\r\n target = target[parts[x]];\r\n }\r\n }\r\n }\r\n }\r\n rule.target = target;\r\n // Resolve colors and percents\r\n if ($type.hasValue(rule.min)) {\r\n rule.min = this.maybeColorOrPercent(rule.min);\r\n }\r\n if ($type.hasValue(rule.max)) {\r\n rule.max = this.maybeColorOrPercent(rule.max);\r\n }\r\n }\r\n _super.prototype.processConfig.call(this, {\r\n heatRules: heatRules\r\n });\r\n }\r\n };\r\n /**\r\n * Returns visibility value\r\n * @ignore\r\n */\r\n /*\r\n protected getVisibility(): boolean {\r\n let hidden = this.getPropertyValue(\"hidden\");\r\n if (hidden) {\r\n return false;\r\n }\r\n else {\r\n return super.getVisibility();\r\n }\r\n }*/\r\n /**\r\n * This function is used to sort element's JSON config properties, so that\r\n * some properties that absolutely need to be processed last, can be put at\r\n * the end.\r\n *\r\n * @ignore Exclude from docs\r\n * @param a Element 1\r\n * @param b Element 2\r\n * @return Sorting number\r\n */\r\n Series.prototype.configOrder = function (a, b) {\r\n if (a == b) {\r\n return 0;\r\n }\r\n // Must come last\r\n else if (a == \"heatRules\") {\r\n return 1;\r\n }\r\n else if (b == \"heatRules\") {\r\n return -1;\r\n }\r\n else {\r\n return _super.prototype.configOrder.call(this, a, b);\r\n }\r\n };\r\n /**\r\n * Sets `visibility` property:\r\n *\r\n * * `true` - visible\r\n * * `false` - hidden\r\n *\r\n * @param value true - visible, false - hidden\r\n * @return Current visibility\r\n */\r\n Series.prototype.setVisibility = function (value) {\r\n _super.prototype.setVisibility.call(this, value);\r\n this.bulletsContainer.visible = value;\r\n };\r\n return Series;\r\n}(Component));\r\nexport { Series };\r\n/**\r\n * Register class, so that it can be instantiated using its name from\r\n * anywhere.\r\n *\r\n * @ignore\r\n */\r\nregistry.registeredClasses[\"Series\"] = Series;\r\nregistry.registeredClasses[\"SeriesDataItem\"] = SeriesDataItem;\r\n//# sourceMappingURL=Series.js.map"],"sourceRoot":""}