{"version":3,"sources":["webpack:///./node_modules/devextreme/viz/pie_chart.js","webpack:///./node_modules/devextreme/viz/polar_chart.js","webpack:///./node_modules/devextreme/viz/range_selector.js","webpack:///./node_modules/devextreme/viz/range_selector/range_selector.js","webpack:///./node_modules/devextreme/viz/range_selector/sliders_controller.js","webpack:///./node_modules/devextreme/viz/range_selector/slider.js","webpack:///./node_modules/devextreme/viz/range_selector/slider_marker.js","webpack:///./node_modules/devextreme/viz/range_selector/tracker.js","webpack:///./node_modules/devextreme/viz/range_selector/range_view.js","webpack:///./node_modules/devextreme/viz/range_selector/series_data_source.js","webpack:///./node_modules/devextreme/viz/range_selector/common.js"],"names":["exports","default","_consts","_interopRequireDefault","_utils","_extend2","_type","_iterator","_range","_component_registrator","_base_chart","_common","_translator1d","_annotations","obj","__esModule","states","seriesSpacing","pieSeriesSpacing","NORMAL_STATE","normalMark","HOVER_STATE","hoverMark","SELECTED_STATE","selectedMark","LEGEND_ACTIONS","resetItem","applyHover","applySelected","correctPercentValue","value","isNumeric","pieSizeEqualizer","removeFromList","list","item","filter","li","pies","timers","queue","pie","group","getSizeGroup","concat","clearTimeout","setTimeout","allPies","p","_isVisible","minRadius","Math","min","apply","map","getSizeGroupLayout","radius","minPie","forEach","render","force","sizeGroupLayout","length","equalize","remove","dxPieChart","BaseChart","inherit","_themeSection","_layoutManagerOptions","extend","this","callBase","piePercentage","_themeManager","getOptions","minPiePercentage","_optionChangesMap","diameter","minDiameter","sizeGroup","_disposeCore","_groupSeries","series","_groupsData","groups","valueOptions","valueType","argumentOptions","getArgumentAxis","_getValueAxis","translator","Translator1D","setCodomain","getTranslator","setBusinessRange","range","setDomain","max","_populateBusinessRange","Range","addRange","getRangeData","val","getValueAxis","_specialProcessSeries","each","_","singleSeries","arrangePoints","_checkPaneName","_processSingleSeries","_handleSeriesDataUpdated","maxPointCount","s","getPointsCount","setMaxPointsCount","_getLegendOptions","legendItem","legendData","argument","argumentIndex","points","_getLegendTargets","that","itemsByArgument","getPoints","point","valueOf","index","getPointsByArg","indexOf","key","toString","argumentCount","push","Object","keys","items","visible","isVisible","_getLayoutTargets","canvas","_canvas","_getLayoutSeries","drawOptions","layout","drawnLabels","layoutManager","applyPieChartSeriesLayout","correctPosition","drawLabelsWOPoints","hideLayoutLabels","hideLabels","_sizeGroupLayout","x","centerX","y","centerY","radiusOuter","_getLayoutSeriesForEqualPies","applyEqualPieChartLayout","correctPieLabelRadius","_updateSeriesDimensions","innerRad","delta","visibleSeries","_getVisibleSeries","lengthVisibleSeries","radiusInner","_setGeometry","correctRadius","_renderSeries","isRotated","isLegendInside","_calculateSeriesLayout","_clearCanvas","_renderSeriesElements","_renderExtraElements","_this","template","option","_centerTemplateGroup","clear","_renderer","g","attr","css","patchFontOptions","_font","visibility","append","root","_getTemplate","model","container","element","onRendered","bBox","getBBox","move","_center","width","height","getInnerRadius","_innerRadius","_getLegendCallBack","legend","_legend","i","target","data","callback","getActionCallback","id","seriesPoints","getPointsByKeys","state","_point$series","seriesOptions","pointState","fullState","hoverMode","selectionMode","getLegendItemAction","_locateLabels","resolveLabelOverlapping","labelsWereOverlapped","wordWrapApplied","iterationCount","_adjustSeriesLabels","_resolveLabelOverlapping","moveLabelsFromCenter","reduce","r","adjustLabels","_applyExtraSettings","noop","_resolveLabelOverlappingShift","inverseDirection","seriesByPosition","label","position","outside","inside","columns","labelsOverlapped","resolve","getVisiblePoints","left","right","shiftInColumnFunction","dividePoints","box","getVerticallyShiftedAngularCoords","angle","normalizeAngle","middleAngle","shiftCallback","overlapped","reverse","overlapping","resolveLabelOverlappingInOneDirection","_ref","_disposeSeries","seriesIndex","arguments","_abstractSeries","_legendDataField","_legendItemTextField","_applyPointMarkersAutoHiding","_renderTrackers","_trackerType","_createScrollBar","_updateAxesLayout","_applyClipRects","_appendAdditionalSeriesGroups","_prepareToRender","_isLegendInside","_renderAxes","_shrinkAxes","_isRotated","_seriesPopulatedHandlerCore","_reinitAxes","_correctAxes","_getExtraOptions","startAngle","innerRadius","segmentsDirection","type","name","prototype","addPlugin","plugins","core","pieChart","_default","module","_extend","_advanced_chart","dxPolarChart","AdvancedChart","_createPanes","_getAxisRenderingOptions","typeSelector","axisType","drawingType","_prepareAxisOptions","axisOptions","isArgumentAxis","themeManager","axisUserOptions","argumentAxisOptions","isFinite","isHorizontal","showCustomBoundaryTicks","endAngle","useSpiderWeb","spiderWidget","_appendAxesGroups","_calcCanvas","margins","getMargins","margin","toUpperCase","slice","valueAxis","argumentAxis","draw","setSpiderTicks","getSpiderTicks","updateSize","_valueAxes","sizeStorage","hideOuterElements","checkForMoreSpaceForPanesCanvas","needMoreSpaceForPanesCanvas","getCanvas","_getSeriesForPane","canvasClipRectID","_getCanvasClipRectID","_createClipPathForPane","applyClipRects","_getElementsClipRectID","center","getCenter","getRadius","panesClipRects","_panesClipRects","round","_createClipCircle","fixed","base","some","areErrorBarsVisible","wide","clipArray","top","clipCircle","cx","cy","wideClipRect","setClippingParams","getActualAngle","inverted","getXYFromPolar","layoutInfo","isDefined","argAngle","translatedRadius","argAxis","getAngles","translate","coords","convertPolarToXY","getTranslatedAngle","_getCrosshairOptions","polarChart","_type2","_date","_math","_base_axis","_parse_utils","_format_helper","_sliders_controller","_tracker","_range_view","_series_data_source","_tick_generator","_base_widget","_export","_title","_loading_indicator","_data_source","_max","_ceil","ceil","_floor","floor","VALUE","calculateMarkerHeight","renderer","sliderMarkerOptions","textBBox","getTextBBox","consts","emptySliderMarkerText","formatValue","font","paddingTopBottom","pointerSize","calculateScaleLabelHalfWidth","scaleOptions","tickIntervalsInfo","logarithmBase","calculateValueType","firstValue","secondValue","typeFirstValue","typeSecondValue","validType","showScaleMarkers","marker","checkLogarithmicOptions","options","defaultLogarithmBase","incidentOccurred","calculateScaleAreaHeight","visibleMarkers","labelScaleOptions","markerScaleOptions","placeholderHeight","ticks","customTicks","text","topIndent","separatorHeight","getNextTickInterval","tickInterval","minorTickInterval","isDateType","getNextDateUnit","updateTickIntervals","screenDelta","result","ticksInfo","minVisible","maxVisible","categoriesInfo","_categoriesInfo","bounds","interval","tickCountByInterval","tickCountByScreen","gridSpacingFactor","axisDivisionFactor","dateToMilliseconds","calculateTickIntervalsForSemidiscreteScale","tickGenerator","dataType","logBase","allowNegatives","linearThreshold","abs","minorAxisDivisionFactor","calculateMinors","allowDecimals","endOnTick","rangeIsEmpty","isEmpty","categories","forceUserTickInterval","minorTickCount","getFirstDayOfWeek","_options$workWeek","workWeek","fontOptions","textElement","updateScaleOptions","seriesDataSource","translatorRange","checkDateMarkerVisibility","isEmptyInterval","intervals","start","end","isDateTime","startValue","invert","endValue","isDate","getTime","format","getDateFormatByTicks","getDateFormatByTickInterval","firstDayOfWeek","res","getSequenceByInterval","altIntervals","correctValueByInterval","getIntervalCustomTicks","customMinorTicks","customBoundTicks","correctDateWithUnitBeginning","Date","adjust","getPrecisionForSlider","d","tail","getLog","dxRangeSelector","_toggleParentsScrollSubscription","_eventsMap","onValueChanged","_rootClassPrefix","_rootClass","_dataIsReady","_dataIsLoaded","_initialChanges","_themeDependentChanges","_fontFields","_initCore","_clipRect","clipRect","rangeViewGroup","slidersGroup","scaleGroup","scaleBreaksGroup","trackersGroup","_axis","AxisWrapper","updateSelectedRange","e","setValue","convertVisualRangeObject","_incidentOccurred","_rangeView","RangeView","_slidersController","SlidersController","lastSelectedRange","_rangeOption","isPlainObject","_options","silent","_eventTrigger","previousValue","event","axis","Tracker","controller","_getDefaultSize","dispose","_applySize","rect","_clientRect","_change","scale","dataSource","_optionChangesOrder","_change_SCALE","_setValueByDataSource","selectedRangeUpdateMode","getValue","valueIsReady","normalizeEnum","__skipAnimation","_dataSourceIsAsync","rangesInfo","allScaleSelected","_value","getVisualRangeLength","_change_DATA_SOURCE","_updateDataSource","_customChangesOrder","_change_MOSTLY_TOTAL","_applyMostlyTotalChange","_change_SLIDER_SELECTION","setSelectedRange","getVizRangeObject","_change_VALUE","_validateRange","isValid","_applyChanges","_changes","has","__isResizing","currentAnimationEnabled","animationEnabled","updateAnimationOptions","enabled","update","_updateContent","_drawn","_dataSourceChangedHandler","_requestChange","_completeSeriesDataSourceCreation","updateOptions","isShowChart","setMarginOptions","getMarginOptions","updateCanvas","createPoints","chartOptions","_createSeriesDataSource","isCompactMode","scaleOption","calculatedValueType","containerColor","parsedValue","correctValueType","validateStartEndValues","field","parser","messageToIncidentOccurred","getParser","minorTick","minRange","maxRange","prepareScaleOptions","_getOption","getCalculatedValueType","argTranslatorRange","minValue","maxValue","rangeForCategories","getBoundRange","arg","argCategories","getCategoriesInfo","sortCategories","calculateTranslatorRange","chartThemeManager","getThemeManager","isDateScale","isMarkerVisible","years","months","intervalX","updateTranslatorRangeInterval","_prepareSliderMarkersOptions","indents","indentOptions","leftMarkerHeight","rightMarkerHeight","placeholderWidthLeft","placeholderWidthRight","startTickValue","endTickValue","leftScaleLabelWidth","rightScaleLabelWidth","bottom","calculateIndents","rangeContainerCanvas","HEIGHT_COMPACT_MODE","_updateElements","behavior","shutterOptions","isNotSemiDiscrete","color","theme","_isUpdating","getFullTicks","getBusinessRange","_dataSourceItems","Axis","categoriesSortingMethod","SeriesDataSource","chart","dataSourceField","argRange","doNotSnap","snapToTicks","isTypeDiscrete","isValueTypeDatetime","borderColor","precision","withCorrection","getDateUnitInterval","majorUnit","idx","dateUnitIntervals","getMinorTickIntervalUnit","getSelectedRange","visualRange","rangesAreEqual","_setContentSize","count","getShiftDirection","getTickStartPositionShift","params","axesContainerGroup","widgetClass","axisClass","getTemplate","_updateSelectedRangeCallback","getAxisSharpDirection","getSharpDirectionByCoords","constructor","calculateInterval","prevValue","businessRange","axisPosition","tick","opacity","placeholderSize","argumentType","semiDiscreteInterval","indentFromAxis","prepareAxisOptions","validate","shift","getMarkerTrackers","markerTrackers","onPointerDown","addInterval","on","createDateMarkersEvent","drawScaleBreaks","getViewport","_this$_axis$visualRan","methodName","plugin","_common2","_slider","animationSettings","utils","buildRectPoints","isLess","a","b","isGreater","selectClosestValue","values","middle","dummyProcessSelectionChanged","_lastSelectedRange","_processSelectionChanged","sliderParams","_params","_areaTracker","path","fill","_selectedAreaTracker","_shutter","_sliders","getTrackerTargets","area","selectedArea","sliders","selectedRange","verticalRange","sliderHandleOptions","rangeBounds","fullTicks","selectedRangeColor","screenRange","getScreenRange","_verticalRange","_minRange","_maxRange","_animationEnabled","_allowSlidersSwap","allowSlidersSwap","_position","_values","isValueProlonged","_isCompactMode","_shutterOffset","_updateSelectedView","_isOnMoving","callValueChanged","_updateSelectedRange","_applyTotalPosition","settings","stroke","sharp","cancelAnimation","stopAnimation","_setText","restoreSetSelectedRange","isAnimated","applyPosition","areOverlapped","getCloudBorder","setOverlapped","_applyAreaTrackersPosition","_applySelectedRangePosition","position1","getPosition","position2","cursor","pos1","pos2","getVisibleArea","animate","compare","_adjustVisualRange","adjustVisualRange","getCorrectValue","to","setDisplayValue","beginSelectedAreaMoving","initialPosition","offset","currentPosition","complete","_dockSelectedArea","_moveSelectedArea","moveSelectedArea","screenPosition","startPosition","endPosition","from","placeSliderAndBeginMoving","firstPosition","secondPosition","dir","antiCompare","positions","add","getRange","handler","beginSliderMoving","_sliderGroup","initialIndex","minPosition","maxPosition","staticPosition","compareMin","compareMax","moveOffset","swapOffset","_setValid","temp","pos","slider","invalidStateValue","_changeMovingSlider","toForeground","newValue","_marker","_update","foregroundSlider","_slider_marker","_support","Slider","_translator","_line","tracker","attrs","translateX","setPosition","setValid","_colors","Number","setText","_formatOptions","customizeText","applyOptions","invalidRangeColor","translateY","sliderHandleWidth","trackerWidth","touchEvents","pointerEvents","getSliderTracker","isOverlapped","getTracker","getBorderPosition","POINTER_SIZE","SliderMarker","isLeftPointer","_isLeftPointer","_isOverlapped","_group","_area","_label","align","_border","_getRectSize","textSize","_paddingLeftRight","_paddingTopBottom","_getTextSize","_textHeight","_getAreaPointsInfo","rectSize","rectWidth","rectHeight","rectLeftBorder","rectRightBorder","pointerRightPoint","pointerCenterPoint","pointerLeftPoint","isLeft","correctCloudBorders","checkPointerBorders","borderPosition","_borderPosition","isCut","_timeout","_text","currentTextSize","updateSliderMarker","size","pointsData","_textSize","paddingLeftRight","setColor","_events_engine","_pointer","_window","_dom_adapter","_defineProperty","defineProperty","enumerable","configurable","writable","window","getWindow","isLeftButtonPressed","originalEvent","touches","pointerType","eventTouches","isMSPointerLeftClick","MSPOINTER_TYPE_TOUCH","MSPOINTER_TYPE_MOUSE","buttons","isTouches","which","isMultiTouches","preventDefault","stopPropagationAndPreventDefault","stopPropagation","isTouchEventArgs","getEventPageX","pageX","changedTouches","initializeAreaEvents","getRootOffsetLeft","_docEvents","isTouchEvent","isActive","movingHandler","docEvents","cancel","manualRangeSelectionEnabled","up","moveSelectedRangeByClick","down","initializeSelectedAreaEvents","_docEvents2","initializeSliderEvents","_docEvents3","_slider$on","_state","targets","getRootOffset","msTouchAction","events","getDocument","off","merge","backgroundOption","backgroundTheme","isAnimationEnabled","canvasWidth","image","url","location","seriesList","getSeries","adjustSeriesDimensions","valueRange","getCategoriesSorter","_extGroups","seriesGroup","labelsGroup","drawSeriesView","_base_series","_series_family","_array","_data_validator","_chart_theme_manager","ThemeManager","themeSection","fontFields","setTheme","bottomIndent","_indent","_valueAxis","_hideChart","_series","_calculateSeries","_seriesFamilies","particularSeriesOptions","seriesTheme","parsedData","newSeries","groupsData","seriesTemplate","allSeriesOptions","processSeriesTemplate","argumentField","valueField","Array","isArray","rotated","Series","validateData","updateData","getArgumentField","viewport","negativesAsZeroes","negativesAsZeros","getArgumentRange","updateBusinessRange","minBubbleSize","maxBubbleSize","barOptions","families","types","inArray","family","SeriesFamily","barGroupPadding","barGroupWidth","adjustSeriesValues","processSeriesFamilies","rangeData","rangeYSize","rangeVisibleSizeY","minIndent","maxIndent","valRange","bubbleSize","marginOptions","processBubbleSize","mergeMarginOptions","_smart_formatter","trackerSettings","duration","formatOptions","formatObject","valueText","smartFormatter","labelOptions","String","isFunction","call"],"mappings":"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","file":"vendors~39a3e381.ea5f3b27eb003e218328.bundle.js","sourcesContent":["/**\r\n * DevExtreme (viz/pie_chart.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _consts = _interopRequireDefault(require(\"./components/consts\"));\r\nvar _utils = require(\"./core/utils\");\r\nvar _extend2 = require(\"../core/utils/extend\");\r\nvar _type = require(\"../core/utils/type\");\r\nvar _iterator = require(\"../core/utils/iterator\");\r\nvar _range = require(\"./translators/range\");\r\nvar _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _base_chart = require(\"./chart_components/base_chart\");\r\nvar _common = require(\"../core/utils/common\");\r\nvar _translator1d = require(\"./translators/translator1d\");\r\nvar _annotations = require(\"./core/annotations\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar states = _consts.default.states;\r\nvar seriesSpacing = _consts.default.pieSeriesSpacing;\r\nvar OPTIONS_FOR_REFRESH_SERIES = [\"startAngle\", \"innerRadius\", \"segmentsDirection\", \"type\"];\r\nvar NORMAL_STATE = states.normalMark;\r\nvar HOVER_STATE = states.hoverMark;\r\nvar SELECTED_STATE = states.selectedMark;\r\nvar MAX_RESOLVE_ITERATION_COUNT = 5;\r\nvar LEGEND_ACTIONS = [states.resetItem, states.applyHover, states.applySelected, states.applySelected];\r\n\r\nfunction getLegendItemAction(points) {\r\n var state = NORMAL_STATE;\r\n points.forEach(function(point) {\r\n var _point$series;\r\n var seriesOptions = null === (_point$series = point.series) || void 0 === _point$series ? void 0 : _point$series.getOptions();\r\n var pointState = point.fullState;\r\n if (\"none\" === (null === seriesOptions || void 0 === seriesOptions ? void 0 : seriesOptions.hoverMode)) {\r\n pointState &= ~HOVER_STATE\r\n }\r\n if (\"none\" === (null === seriesOptions || void 0 === seriesOptions ? void 0 : seriesOptions.selectionMode)) {\r\n pointState &= ~SELECTED_STATE\r\n }\r\n state |= pointState\r\n });\r\n return LEGEND_ACTIONS[state]\r\n}\r\n\r\nfunction correctPercentValue(value) {\r\n if ((0, _type.isNumeric)(value)) {\r\n if (value > 1) {\r\n value = 1\r\n } else {\r\n if (value < 0) {\r\n value = 0\r\n }\r\n }\r\n } else {\r\n value = void 0\r\n }\r\n return value\r\n}\r\nvar pieSizeEqualizer = function() {\r\n function equalize(group, allPies) {\r\n var pies = allPies.filter(function(p) {\r\n return p._isVisible() && p.getSizeGroup() === group\r\n });\r\n var minRadius = Math.min.apply(null, pies.map(function(p) {\r\n return p.getSizeGroupLayout().radius\r\n }));\r\n var minPie = pies.filter(function(p) {\r\n return p.getSizeGroupLayout().radius === minRadius\r\n });\r\n pies.forEach(function(p) {\r\n return p.render({\r\n force: true,\r\n sizeGroupLayout: minPie.length ? minPie[0].getSizeGroupLayout() : {}\r\n })\r\n })\r\n }\r\n\r\n function removeFromList(list, item) {\r\n return list.filter(function(li) {\r\n return li !== item\r\n })\r\n }\r\n\r\n function addToList(list, item) {\r\n return removeFromList(list, item).concat(item)\r\n }\r\n var pies = [];\r\n var timers = {};\r\n return {\r\n queue: function(pie) {\r\n var group = pie.getSizeGroup();\r\n pies = addToList(pies, pie);\r\n clearTimeout(timers[group]);\r\n timers[group] = setTimeout(function() {\r\n equalize(group, pies)\r\n })\r\n },\r\n remove: function(pie) {\r\n pies = removeFromList(pies, pie);\r\n if (!pies.length) {\r\n timers = {}\r\n }\r\n }\r\n }\r\n}();\r\nvar dxPieChart = _base_chart.BaseChart.inherit({\r\n _themeSection: \"pie\",\r\n _layoutManagerOptions: function() {\r\n return (0, _extend2.extend)(true, {}, this.callBase(), {\r\n piePercentage: correctPercentValue(this._themeManager.getOptions(\"diameter\")),\r\n minPiePercentage: correctPercentValue(this._themeManager.getOptions(\"minDiameter\"))\r\n })\r\n },\r\n _optionChangesMap: {\r\n diameter: \"REINIT\",\r\n minDiameter: \"REINIT\",\r\n sizeGroup: \"REINIT\"\r\n },\r\n _disposeCore: function() {\r\n pieSizeEqualizer.remove(this);\r\n this.callBase()\r\n },\r\n _groupSeries: function() {\r\n var series = this.series;\r\n this._groupsData = {\r\n groups: [{\r\n series: series,\r\n valueOptions: {\r\n valueType: \"numeric\"\r\n }\r\n }],\r\n argumentOptions: series[0] && series[0].getOptions()\r\n }\r\n },\r\n getArgumentAxis: function() {\r\n return null\r\n },\r\n _getValueAxis: function() {\r\n var translator = (new _translator1d.Translator1D).setCodomain(360, 0);\r\n return {\r\n getTranslator: function() {\r\n return translator\r\n },\r\n setBusinessRange: function(range) {\r\n translator.setDomain(range.min, range.max)\r\n }\r\n }\r\n },\r\n _populateBusinessRange: function() {\r\n this.series.map(function(series) {\r\n var range = new _range.Range;\r\n range.addRange(series.getRangeData().val);\r\n series.getValueAxis().setBusinessRange(range);\r\n return range\r\n })\r\n },\r\n _specialProcessSeries: function() {\r\n (0, _iterator.each)(this.series, function(_, singleSeries) {\r\n singleSeries.arrangePoints()\r\n })\r\n },\r\n _checkPaneName: function() {\r\n return true\r\n },\r\n _processSingleSeries: function(singleSeries) {\r\n this.callBase(singleSeries);\r\n singleSeries.arrangePoints()\r\n },\r\n _handleSeriesDataUpdated: function() {\r\n var maxPointCount = 0;\r\n this.series.forEach(function(s) {\r\n maxPointCount = Math.max(s.getPointsCount(), maxPointCount)\r\n });\r\n this.series.forEach(function(s) {\r\n s.setMaxPointsCount(maxPointCount)\r\n });\r\n this.callBase()\r\n },\r\n _getLegendOptions: function(item) {\r\n var legendItem = this.callBase(item);\r\n var legendData = legendItem.legendData;\r\n legendData.argument = item.argument;\r\n legendData.argumentIndex = item.argumentIndex;\r\n legendData.points = [item];\r\n return legendItem\r\n },\r\n _getLegendTargets: function() {\r\n var that = this;\r\n var itemsByArgument = {};\r\n (that.series || []).forEach(function(series) {\r\n series.getPoints().forEach(function(point) {\r\n var argument = point.argument.valueOf();\r\n var index = series.getPointsByArg(argument).indexOf(point);\r\n var key = argument.valueOf().toString() + index;\r\n itemsByArgument[key] = itemsByArgument[key] || [];\r\n var argumentCount = itemsByArgument[key].push(point);\r\n point.index = itemsByArgument[key][argumentCount - 2] ? itemsByArgument[key][argumentCount - 2].index : Object.keys(itemsByArgument).length - 1;\r\n point.argumentIndex = index\r\n })\r\n });\r\n var items = [];\r\n (0, _iterator.each)(itemsByArgument, function(_, points) {\r\n points.forEach(function(point, index) {\r\n if (0 === index) {\r\n items.push(that._getLegendOptions(point));\r\n return\r\n }\r\n var item = items[items.length - 1];\r\n item.legendData.points.push(point);\r\n if (!item.visible) {\r\n item.visible = point.isVisible()\r\n }\r\n })\r\n });\r\n return items\r\n },\r\n _getLayoutTargets: function() {\r\n return [{\r\n canvas: this._canvas\r\n }]\r\n },\r\n _getLayoutSeries: function(series, drawOptions) {\r\n var that = this;\r\n var layout;\r\n var canvas = that._canvas;\r\n var drawnLabels = false;\r\n layout = that.layoutManager.applyPieChartSeriesLayout(canvas, series, true);\r\n series.forEach(function(singleSeries) {\r\n singleSeries.correctPosition(layout, canvas);\r\n drawnLabels = singleSeries.drawLabelsWOPoints() || drawnLabels\r\n });\r\n if (drawnLabels) {\r\n layout = that.layoutManager.applyPieChartSeriesLayout(canvas, series, drawOptions.hideLayoutLabels)\r\n }\r\n series.forEach(function(singleSeries) {\r\n singleSeries.hideLabels()\r\n });\r\n that._sizeGroupLayout = {\r\n x: layout.centerX,\r\n y: layout.centerY,\r\n radius: layout.radiusOuter,\r\n drawOptions: drawOptions\r\n };\r\n return layout\r\n },\r\n _getLayoutSeriesForEqualPies: function(series, sizeGroupLayout) {\r\n var canvas = this._canvas;\r\n var layout = this.layoutManager.applyEqualPieChartLayout(series, sizeGroupLayout);\r\n series.forEach(function(s) {\r\n s.correctPosition(layout, canvas);\r\n s.drawLabelsWOPoints()\r\n });\r\n this.layoutManager.correctPieLabelRadius(series, layout, canvas);\r\n return layout\r\n },\r\n _updateSeriesDimensions: function(drawOptions) {\r\n var that = this;\r\n var visibleSeries = that._getVisibleSeries();\r\n var lengthVisibleSeries = visibleSeries.length;\r\n var innerRad;\r\n var delta;\r\n var layout;\r\n var sizeGroupLayout = drawOptions.sizeGroupLayout;\r\n if (lengthVisibleSeries) {\r\n layout = sizeGroupLayout ? that._getLayoutSeriesForEqualPies(visibleSeries, sizeGroupLayout) : that._getLayoutSeries(visibleSeries, drawOptions);\r\n delta = (layout.radiusOuter - layout.radiusInner - seriesSpacing * (lengthVisibleSeries - 1)) / lengthVisibleSeries;\r\n innerRad = layout.radiusInner;\r\n that._setGeometry(layout);\r\n visibleSeries.forEach(function(singleSeries) {\r\n singleSeries.correctRadius({\r\n radiusInner: innerRad,\r\n radiusOuter: innerRad + delta\r\n });\r\n innerRad += delta + seriesSpacing\r\n })\r\n }\r\n },\r\n _renderSeries: function(drawOptions, isRotated, isLegendInside) {\r\n this._calculateSeriesLayout(drawOptions, isRotated);\r\n if (!drawOptions.sizeGroupLayout && this.getSizeGroup()) {\r\n pieSizeEqualizer.queue(this);\r\n this._clearCanvas();\r\n return\r\n }\r\n this._renderSeriesElements(drawOptions, isLegendInside)\r\n },\r\n _renderExtraElements: function() {\r\n var _this = this;\r\n var template = this.option(\"centerTemplate\");\r\n if (this._centerTemplateGroup) {\r\n this._centerTemplateGroup.clear()\r\n }\r\n if (!template) {\r\n return\r\n }\r\n if (!this._centerTemplateGroup) {\r\n this._centerTemplateGroup = this._renderer.g().attr({\r\n \"class\": \"dxc-hole-template\"\r\n }).css((0, _utils.patchFontOptions)(this._themeManager._font))\r\n }\r\n this._centerTemplateGroup.attr({\r\n visibility: \"hidden\"\r\n }).append(this._renderer.root);\r\n template = this._getTemplate(template);\r\n template.render({\r\n model: this,\r\n container: this._centerTemplateGroup.element,\r\n onRendered: function() {\r\n var group = _this._centerTemplateGroup;\r\n var bBox = group.getBBox();\r\n group.move(_this._center.x - (bBox.x + bBox.width / 2), _this._center.y - (bBox.y + bBox.height / 2));\r\n group.attr({\r\n visibility: \"visible\"\r\n })\r\n }\r\n })\r\n },\r\n getInnerRadius: function() {\r\n return this._innerRadius\r\n },\r\n _getLegendCallBack: function() {\r\n var that = this;\r\n var legend = this._legend;\r\n var items = this._getLegendTargets().map(function(i) {\r\n return i.legendData\r\n });\r\n return function(target) {\r\n items.forEach(function(data) {\r\n var points = [];\r\n var callback = legend.getActionCallback({\r\n index: data.id\r\n });\r\n that.series.forEach(function(series) {\r\n var seriesPoints = series.getPointsByKeys(data.argument, data.argumentIndex);\r\n points.push.apply(points, seriesPoints)\r\n });\r\n if (target && target.argument === data.argument && target.argumentIndex === data.argumentIndex) {\r\n points.push(target)\r\n }\r\n callback(getLegendItemAction(points))\r\n })\r\n }\r\n },\r\n _locateLabels: function(resolveLabelOverlapping) {\r\n var iterationCount = 0;\r\n var labelsWereOverlapped;\r\n var wordWrapApplied;\r\n do {\r\n wordWrapApplied = this._adjustSeriesLabels(\"shift\" === resolveLabelOverlapping);\r\n labelsWereOverlapped = this._resolveLabelOverlapping(resolveLabelOverlapping)\r\n } while ((labelsWereOverlapped || wordWrapApplied) && ++iterationCount < MAX_RESOLVE_ITERATION_COUNT)\r\n },\r\n _adjustSeriesLabels: function(moveLabelsFromCenter) {\r\n return this.series.reduce(function(r, s) {\r\n return s.adjustLabels(moveLabelsFromCenter) || r\r\n }, false)\r\n },\r\n _applyExtraSettings: _common.noop,\r\n _resolveLabelOverlappingShift: function() {\r\n var that = this;\r\n var inverseDirection = \"anticlockwise\" === that.option(\"segmentsDirection\");\r\n var seriesByPosition = that.series.reduce(function(r, s) {\r\n (r[s.getOptions().label.position] || r.outside).push(s);\r\n return r\r\n }, {\r\n inside: [],\r\n columns: [],\r\n outside: []\r\n });\r\n var labelsOverlapped = false;\r\n if (seriesByPosition.inside.length > 0) {\r\n labelsOverlapped = resolve(seriesByPosition.inside.reduce(function(r, singleSeries) {\r\n return singleSeries.getVisiblePoints().reduce(function(r, point) {\r\n r.left.push(point);\r\n return r\r\n }, r)\r\n }, {\r\n left: [],\r\n right: []\r\n }), shiftInColumnFunction) || labelsOverlapped\r\n }\r\n labelsOverlapped = seriesByPosition.columns.reduce(function(r, singleSeries) {\r\n return resolve(dividePoints(singleSeries), shiftInColumnFunction) || r\r\n }, labelsOverlapped);\r\n if (seriesByPosition.outside.length > 0) {\r\n labelsOverlapped = resolve(seriesByPosition.outside.reduce(function(r, singleSeries) {\r\n return dividePoints(singleSeries, r)\r\n }, null), shiftFunction) || labelsOverlapped\r\n }\r\n return labelsOverlapped;\r\n\r\n function dividePoints(series, points) {\r\n return series.getVisiblePoints().reduce(function(r, point) {\r\n var angle = (0, _utils.normalizeAngle)(point.middleAngle);\r\n (angle <= 90 || angle >= 270 ? r.right : r.left).push(point);\r\n return r\r\n }, points || {\r\n left: [],\r\n right: []\r\n })\r\n }\r\n\r\n function resolve(points, shiftCallback) {\r\n var overlapped = false;\r\n if (inverseDirection) {\r\n points.left.reverse();\r\n points.right.reverse()\r\n }\r\n overlapped = _base_chart.overlapping.resolveLabelOverlappingInOneDirection(points.left, that._canvas, false, shiftCallback);\r\n return _base_chart.overlapping.resolveLabelOverlappingInOneDirection(points.right, that._canvas, false, shiftCallback) || overlapped\r\n }\r\n\r\n function shiftFunction(box, length) {\r\n return (0, _utils.getVerticallyShiftedAngularCoords)(box, -length, that._center)\r\n }\r\n\r\n function shiftInColumnFunction(box, length) {\r\n return {\r\n x: box.x,\r\n y: box.y - length\r\n }\r\n }\r\n },\r\n _setGeometry: function(_ref) {\r\n var x = _ref.centerX,\r\n y = _ref.centerY,\r\n radiusInner = _ref.radiusInner;\r\n this._center = {\r\n x: x,\r\n y: y\r\n };\r\n this._innerRadius = radiusInner\r\n },\r\n _disposeSeries: function(seriesIndex) {\r\n this.callBase.apply(this, arguments);\r\n this._abstractSeries = null\r\n },\r\n _legendDataField: \"point\",\r\n _legendItemTextField: \"argument\",\r\n _applyPointMarkersAutoHiding: _common.noop,\r\n _renderTrackers: _common.noop,\r\n _trackerType: \"PieTracker\",\r\n _createScrollBar: _common.noop,\r\n _updateAxesLayout: _common.noop,\r\n _applyClipRects: _common.noop,\r\n _appendAdditionalSeriesGroups: _common.noop,\r\n _prepareToRender: _common.noop,\r\n _isLegendInside: _common.noop,\r\n _renderAxes: _common.noop,\r\n _shrinkAxes: _common.noop,\r\n _isRotated: _common.noop,\r\n _seriesPopulatedHandlerCore: _common.noop,\r\n _reinitAxes: _common.noop,\r\n _correctAxes: _common.noop,\r\n _getExtraOptions: function() {\r\n var that = this;\r\n return {\r\n startAngle: that.option(\"startAngle\"),\r\n innerRadius: that.option(\"innerRadius\"),\r\n segmentsDirection: that.option(\"segmentsDirection\"),\r\n type: that.option(\"type\")\r\n }\r\n },\r\n getSizeGroup: function() {\r\n return this._themeManager.getOptions(\"sizeGroup\")\r\n },\r\n getSizeGroupLayout: function() {\r\n return this._sizeGroupLayout || {}\r\n }\r\n});\r\n(0, _iterator.each)(OPTIONS_FOR_REFRESH_SERIES, function(_, name) {\r\n dxPieChart.prototype._optionChangesMap[name] = \"REFRESH_SERIES_DATA_INIT\"\r\n});\r\ndxPieChart.addPlugin(_annotations.plugins.core);\r\ndxPieChart.addPlugin(_annotations.plugins.pieChart);\r\n(0, _component_registrator.default)(\"dxPieChart\", dxPieChart);\r\nvar _default = dxPieChart;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (viz/polar_chart.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _common = require(\"../core/utils/common\");\r\nvar _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _utils = require(\"./core/utils\");\r\nvar _advanced_chart = require(\"./chart_components/advanced_chart\");\r\nvar _type = require(\"../core/utils/type\");\r\nvar _annotations = require(\"./core/annotations\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar DEFAULT_PANE_NAME = \"default\";\r\nvar DOUBLE_PI_ANGLE = 360;\r\nvar dxPolarChart = _advanced_chart.AdvancedChart.inherit({\r\n _themeSection: \"polar\",\r\n _createPanes: function() {\r\n this.callBase();\r\n return [{\r\n name: DEFAULT_PANE_NAME\r\n }]\r\n },\r\n _checkPaneName: function() {\r\n return true\r\n },\r\n _getAxisRenderingOptions: function(typeSelector) {\r\n var isArgumentAxis = \"argumentAxis\" === typeSelector;\r\n var type = isArgumentAxis ? \"circular\" : \"linear\";\r\n var useSpiderWeb = this.option(\"useSpiderWeb\");\r\n if (useSpiderWeb) {\r\n type += \"Spider\"\r\n }\r\n return {\r\n axisType: \"polarAxes\",\r\n drawingType: type\r\n }\r\n },\r\n _prepareAxisOptions: function(typeSelector, axisOptions) {\r\n var isArgumentAxis = \"argumentAxis\" === typeSelector;\r\n var themeManager = this._themeManager;\r\n var axisUserOptions = this.option(\"argumentAxis\");\r\n var argumentAxisOptions = themeManager.getOptions(\"argumentAxis\", axisUserOptions) || {};\r\n var startAngle = isFinite(argumentAxisOptions.startAngle) ? (0, _utils.normalizeAngle)(argumentAxisOptions.startAngle) : 0;\r\n return {\r\n type: this.option(\"useSpiderWeb\") && isArgumentAxis ? \"discrete\" : axisOptions.type,\r\n isHorizontal: true,\r\n showCustomBoundaryTicks: isArgumentAxis,\r\n startAngle: startAngle,\r\n endAngle: startAngle + 360\r\n }\r\n },\r\n _optionChangesMap: {\r\n useSpiderWeb: \"AXES_AND_PANES\"\r\n },\r\n _getExtraOptions: function() {\r\n return {\r\n spiderWidget: this.option(\"useSpiderWeb\")\r\n }\r\n },\r\n _prepareToRender: function() {\r\n this._appendAxesGroups();\r\n return {}\r\n },\r\n _calcCanvas: function() {\r\n var canvas = (0, _extend.extend)({}, this._canvas);\r\n var argumentAxis = this.getArgumentAxis();\r\n var margins = argumentAxis.getMargins();\r\n Object.keys(margins).forEach(function(margin) {\r\n return canvas[margin] = canvas[\"original\".concat(margin[0].toUpperCase()).concat(margin.slice(1))] + margins[margin]\r\n });\r\n return canvas\r\n },\r\n _renderAxes: function(drawOptions) {\r\n var that = this;\r\n var valueAxis = that._getValueAxis();\r\n var argumentAxis = that.getArgumentAxis();\r\n argumentAxis.draw(that._canvas);\r\n valueAxis.setSpiderTicks(argumentAxis.getSpiderTicks());\r\n var canvas = that._calcCanvas();\r\n argumentAxis.updateSize(canvas);\r\n valueAxis.draw(canvas);\r\n return canvas\r\n },\r\n _getValueAxis: function() {\r\n return this._valueAxes[0]\r\n },\r\n _shrinkAxes: function(sizeStorage) {\r\n var valueAxis = this._getValueAxis();\r\n var argumentAxis = this.getArgumentAxis();\r\n if (sizeStorage && (sizeStorage.width || sizeStorage.height)) {\r\n argumentAxis.hideOuterElements();\r\n var canvas = this._calcCanvas();\r\n argumentAxis.updateSize(canvas);\r\n valueAxis.updateSize(canvas)\r\n }\r\n },\r\n checkForMoreSpaceForPanesCanvas: function() {\r\n return this.layoutManager.needMoreSpaceForPanesCanvas([{\r\n canvas: this.getArgumentAxis().getCanvas()\r\n }], this._isRotated())\r\n },\r\n _getLayoutTargets: function() {\r\n return [{\r\n canvas: this._canvas\r\n }]\r\n },\r\n _getSeriesForPane: function() {\r\n return this.series\r\n },\r\n _applyClipRects: function() {\r\n var canvasClipRectID = this._getCanvasClipRectID();\r\n this._createClipPathForPane();\r\n this.getArgumentAxis().applyClipRects(this._getElementsClipRectID(), canvasClipRectID);\r\n this._getValueAxis().applyClipRects(this._getElementsClipRectID(), canvasClipRectID)\r\n },\r\n _createClipPathForPane: function() {\r\n var that = this;\r\n var valueAxis = that._getValueAxis();\r\n var center = valueAxis.getCenter();\r\n var radius = valueAxis.getRadius();\r\n var panesClipRects = that._panesClipRects;\r\n center = {\r\n x: Math.round(center.x),\r\n y: Math.round(center.y)\r\n };\r\n that._createClipCircle(panesClipRects.fixed, center.x, center.y, radius);\r\n that._createClipCircle(panesClipRects.base, center.x, center.y, radius);\r\n if (that.series.some(function(s) {\r\n return s.areErrorBarsVisible()\r\n })) {\r\n that._createClipCircle(panesClipRects.wide, center.x, center.y, radius)\r\n } else {\r\n panesClipRects.wide[0] = null\r\n }\r\n },\r\n _createClipCircle: function(clipArray, left, top, radius) {\r\n var that = this;\r\n var clipCircle = clipArray[0];\r\n if (!clipCircle) {\r\n clipCircle = that._renderer.clipCircle(left, top, radius);\r\n clipArray[0] = clipCircle\r\n } else {\r\n clipCircle.attr({\r\n cx: left,\r\n cy: top,\r\n r: radius\r\n })\r\n }\r\n },\r\n _applyExtraSettings: function(series) {\r\n var wideClipRect = this._panesClipRects.wide[0];\r\n series.setClippingParams(this._panesClipRects.base[0].id, wideClipRect && wideClipRect.id, false, false)\r\n },\r\n getActualAngle: function(angle) {\r\n return this.getArgumentAxis().getOptions().inverted ? DOUBLE_PI_ANGLE - angle : angle\r\n },\r\n getXYFromPolar: function(angle, radius, argument, value) {\r\n var layoutInfo = {\r\n angle: void 0,\r\n radius: void 0,\r\n x: void 0,\r\n y: void 0\r\n };\r\n if (!(0, _type.isDefined)(angle) && !(0, _type.isDefined)(radius) && !(0, _type.isDefined)(argument) && !(0, _type.isDefined)(value)) {\r\n return layoutInfo\r\n }\r\n var argAxis = this.getArgumentAxis();\r\n var startAngle = argAxis.getAngles()[0];\r\n var argAngle;\r\n var translatedRadius;\r\n if ((0, _type.isDefined)(argument)) {\r\n argAngle = argAxis.getTranslator().translate(argument)\r\n } else {\r\n if (isFinite(angle)) {\r\n argAngle = this.getActualAngle(angle)\r\n } else {\r\n if (!(0, _type.isDefined)(angle)) {\r\n argAngle = 0\r\n }\r\n }\r\n }\r\n if ((0, _type.isDefined)(value)) {\r\n translatedRadius = this.getValueAxis().getTranslator().translate(value)\r\n } else {\r\n if (isFinite(radius)) {\r\n translatedRadius = radius\r\n } else {\r\n if (!(0, _type.isDefined)(radius)) {\r\n translatedRadius = argAxis.getRadius()\r\n }\r\n }\r\n }\r\n if ((0, _type.isDefined)(argAngle) && (0, _type.isDefined)(translatedRadius)) {\r\n var coords = (0, _utils.convertPolarToXY)(argAxis.getCenter(), startAngle, argAngle, translatedRadius);\r\n (0, _extend.extend)(layoutInfo, coords, {\r\n angle: argAxis.getTranslatedAngle(argAngle),\r\n radius: translatedRadius\r\n })\r\n }\r\n return layoutInfo\r\n },\r\n _applyPointMarkersAutoHiding: _common.noop,\r\n _createScrollBar: _common.noop,\r\n _isRotated: _common.noop,\r\n _getCrosshairOptions: _common.noop,\r\n _isLegendInside: _common.noop\r\n});\r\ndxPolarChart.addPlugin(_annotations.plugins.core);\r\ndxPolarChart.addPlugin(_annotations.plugins.polarChart);\r\n(0, _component_registrator.default)(\"dxPolarChart\", dxPolarChart);\r\nvar _default = dxPolarChart;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (viz/range_selector.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _range_selector = _interopRequireDefault(require(\"./range_selector/range_selector\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _default = _range_selector.default;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (viz/range_selector/range_selector.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _component_registrator = _interopRequireDefault(require(\"../../core/component_registrator\"));\r\nvar _type2 = require(\"../../core/utils/type\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _utils = require(\"../core/utils\");\r\nvar _date = _interopRequireDefault(require(\"../../core/utils/date\"));\r\nvar _math = require(\"../../core/utils/math\");\r\nvar _range = require(\"../translators/range\");\r\nvar _base_axis = require(\"../axes/base_axis\");\r\nvar _parse_utils = require(\"../components/parse_utils\");\r\nvar _format_helper = _interopRequireDefault(require(\"../../format_helper\"));\r\nvar _common = require(\"./common\");\r\nvar _sliders_controller = require(\"./sliders_controller\");\r\nvar _tracker = require(\"./tracker\");\r\nvar _range_view = require(\"./range_view\");\r\nvar _series_data_source = require(\"./series_data_source\");\r\nvar _tick_generator = require(\"../axes/tick_generator\");\r\nvar _base_widget = _interopRequireDefault(require(\"../core/base_widget\"));\r\nvar _export = require(\"../core/export\");\r\nvar _title = require(\"../core/title\");\r\nvar _loading_indicator = require(\"../core/loading_indicator\");\r\nvar _data_source = require(\"../core/data_source\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _max = Math.max;\r\nvar _ceil = Math.ceil;\r\nvar _floor = Math.floor;\r\nvar START_VALUE = \"startValue\";\r\nvar END_VALUE = \"endValue\";\r\nvar DATETIME = \"datetime\";\r\nvar VALUE = \"value\";\r\nvar DISCRETE = \"discrete\";\r\nvar SEMIDISCRETE = \"semidiscrete\";\r\nvar STRING = \"string\";\r\nvar VALUE_CHANGED = VALUE + \"Changed\";\r\nvar CONTAINER_BACKGROUND_COLOR = \"containerBackgroundColor\";\r\nvar SLIDER_MARKER = \"sliderMarker\";\r\nvar OPTION_BACKGROUND = \"background\";\r\nvar LOGARITHMIC = \"logarithmic\";\r\nvar KEEP = \"keep\";\r\nvar SHIFT = \"shift\";\r\nvar RESET = \"reset\";\r\nvar INVISIBLE_POS = -1e3;\r\nvar SEMIDISCRETE_GRID_SPACING_FACTOR = 50;\r\nvar DEFAULT_AXIS_DIVISION_FACTOR = 30;\r\nvar DEFAULT_MINOR_AXIS_DIVISION_FACTOR = 15;\r\nvar logarithmBase = 10;\r\n\r\nfunction calculateMarkerHeight(renderer, value, sliderMarkerOptions) {\r\n var formattedText = void 0 === value ? _common.consts.emptySliderMarkerText : (0, _common.formatValue)(value, sliderMarkerOptions);\r\n var textBBox = getTextBBox(renderer, formattedText, sliderMarkerOptions.font);\r\n return _ceil(textBBox.height) + 2 * sliderMarkerOptions.paddingTopBottom + _common.consts.pointerSize\r\n}\r\n\r\nfunction calculateScaleLabelHalfWidth(renderer, value, scaleOptions, tickIntervalsInfo) {\r\n var formattedText = (0, _common.formatValue)(value, scaleOptions.label, tickIntervalsInfo, scaleOptions.valueType, scaleOptions.type, scaleOptions.logarithmBase);\r\n var textBBox = getTextBBox(renderer, formattedText, scaleOptions.label.font);\r\n return _ceil(textBBox.width / 2)\r\n}\r\n\r\nfunction calculateIndents(renderer, scale, sliderMarkerOptions, indentOptions, tickIntervalsInfo) {\r\n var leftMarkerHeight;\r\n var leftScaleLabelWidth = 0;\r\n var rightScaleLabelWidth = 0;\r\n var rightMarkerHeight;\r\n var placeholderWidthLeft;\r\n var placeholderWidthRight;\r\n var placeholderHeight;\r\n var ticks = \"semidiscrete\" === scale.type ? scale.customTicks : tickIntervalsInfo.ticks;\r\n var startTickValue;\r\n var endTickValue;\r\n indentOptions = indentOptions || {};\r\n placeholderWidthLeft = indentOptions.left;\r\n placeholderWidthRight = indentOptions.right;\r\n placeholderHeight = sliderMarkerOptions.placeholderHeight;\r\n if (sliderMarkerOptions.visible) {\r\n leftMarkerHeight = calculateMarkerHeight(renderer, scale.startValue, sliderMarkerOptions);\r\n rightMarkerHeight = calculateMarkerHeight(renderer, scale.endValue, sliderMarkerOptions);\r\n if (void 0 === placeholderHeight) {\r\n placeholderHeight = _max(leftMarkerHeight, rightMarkerHeight)\r\n }\r\n }\r\n if (scale.label.visible) {\r\n startTickValue = (0, _type2.isDefined)(scale.startValue) ? ticks[0] : void 0;\r\n endTickValue = (0, _type2.isDefined)(scale.endValue) ? ticks[ticks.length - 1] : void 0;\r\n leftScaleLabelWidth = calculateScaleLabelHalfWidth(renderer, startTickValue, scale, tickIntervalsInfo);\r\n rightScaleLabelWidth = calculateScaleLabelHalfWidth(renderer, endTickValue, scale, tickIntervalsInfo)\r\n }\r\n placeholderWidthLeft = void 0 !== placeholderWidthLeft ? placeholderWidthLeft : leftScaleLabelWidth;\r\n placeholderWidthRight = (void 0 !== placeholderWidthRight ? placeholderWidthRight : rightScaleLabelWidth) || 1;\r\n return {\r\n left: placeholderWidthLeft,\r\n right: placeholderWidthRight,\r\n top: placeholderHeight || 0,\r\n bottom: 0\r\n }\r\n}\r\n\r\nfunction calculateValueType(firstValue, secondValue) {\r\n var typeFirstValue = (0, _type2.type)(firstValue);\r\n var typeSecondValue = (0, _type2.type)(secondValue);\r\n var validType = function(type) {\r\n return typeFirstValue === type || typeSecondValue === type\r\n };\r\n return validType(\"date\") ? DATETIME : validType(\"number\") ? \"numeric\" : validType(STRING) ? STRING : \"\"\r\n}\r\n\r\nfunction showScaleMarkers(scaleOptions) {\r\n return scaleOptions.valueType === DATETIME && scaleOptions.marker.visible\r\n}\r\n\r\nfunction updateTranslatorRangeInterval(translatorRange, scaleOptions) {\r\n var intervalX = scaleOptions.minorTickInterval || scaleOptions.tickInterval;\r\n if (\"datetime\" === scaleOptions.valueType) {\r\n intervalX = _date.default.dateToMilliseconds(intervalX)\r\n }\r\n translatorRange.addRange({\r\n interval: intervalX\r\n })\r\n}\r\n\r\nfunction checkLogarithmicOptions(options, defaultLogarithmBase, incidentOccurred) {\r\n if (!options) {\r\n return\r\n }\r\n var logarithmBase = options.logarithmBase;\r\n if (options.type === LOGARITHMIC && logarithmBase <= 0 || logarithmBase && !(0, _type2.isNumeric)(logarithmBase)) {\r\n options.logarithmBase = defaultLogarithmBase;\r\n incidentOccurred(\"E2104\")\r\n } else {\r\n if (options.type !== LOGARITHMIC) {\r\n options.logarithmBase = void 0\r\n }\r\n }\r\n}\r\n\r\nfunction calculateScaleAreaHeight(renderer, scaleOptions, visibleMarkers, tickIntervalsInfo) {\r\n var labelScaleOptions = scaleOptions.label;\r\n var markerScaleOptions = scaleOptions.marker;\r\n var placeholderHeight = scaleOptions.placeholderHeight;\r\n var ticks = \"semidiscrete\" === scaleOptions.type ? scaleOptions.customTicks : tickIntervalsInfo.ticks;\r\n var text = (0, _common.formatValue)(ticks[0], labelScaleOptions);\r\n if (placeholderHeight) {\r\n return placeholderHeight\r\n } else {\r\n return (labelScaleOptions.visible ? labelScaleOptions.topIndent + getTextBBox(renderer, text, labelScaleOptions.font).height : 0) + (visibleMarkers ? markerScaleOptions.topIndent + markerScaleOptions.separatorHeight : 0)\r\n }\r\n}\r\n\r\nfunction getMinorTickIntervalUnit(tickInterval, minorTickInterval, withCorrection) {\r\n var interval = _date.default.getDateUnitInterval(minorTickInterval);\r\n var majorUnit = _date.default.getDateUnitInterval(tickInterval);\r\n var idx = _date.default.dateUnitIntervals.indexOf(interval);\r\n if (withCorrection && interval === majorUnit && idx > 0) {\r\n interval = _date.default.dateUnitIntervals[idx - 1]\r\n }\r\n return interval\r\n}\r\n\r\nfunction getNextTickInterval(tickInterval, minorTickInterval, isDateType) {\r\n if (!tickInterval) {\r\n tickInterval = minorTickInterval\r\n } else {\r\n if (isDateType) {\r\n tickInterval = _date.default.getNextDateUnit(tickInterval)\r\n } else {\r\n tickInterval += minorTickInterval\r\n }\r\n }\r\n return tickInterval\r\n}\r\n\r\nfunction calculateTickIntervalsForSemidiscreteScale(scaleOptions, min, max, screenDelta) {\r\n var minorTickInterval = scaleOptions.minorTickInterval;\r\n var tickInterval = scaleOptions.tickInterval;\r\n var interval;\r\n var isDateType = \"datetime\" === scaleOptions.valueType;\r\n var gridSpacingFactor = scaleOptions.axisDivisionFactor || {};\r\n var tickCountByInterval;\r\n var tickCountByScreen;\r\n if (!tickInterval) {\r\n do {\r\n interval = getNextTickInterval(tickInterval, minorTickInterval, isDateType);\r\n if (tickInterval !== interval) {\r\n tickInterval = interval\r\n } else {\r\n break\r\n }\r\n if (isDateType) {\r\n interval = _date.default.dateToMilliseconds(tickInterval)\r\n }\r\n tickCountByInterval = _ceil((max - min) / interval);\r\n tickCountByScreen = _floor(screenDelta / (gridSpacingFactor[tickInterval] || SEMIDISCRETE_GRID_SPACING_FACTOR)) || 1\r\n } while (interval && tickCountByInterval > tickCountByScreen)\r\n }\r\n return {\r\n tickInterval: tickInterval,\r\n minorTickInterval: minorTickInterval,\r\n bounds: {\r\n minVisible: min,\r\n maxVisible: max\r\n },\r\n ticks: []\r\n }\r\n}\r\n\r\nfunction updateTickIntervals(scaleOptions, screenDelta, incidentOccurred, range) {\r\n var result;\r\n var min = (0, _type2.isDefined)(range.minVisible) ? range.minVisible : range.min;\r\n var max = (0, _type2.isDefined)(range.maxVisible) ? range.maxVisible : range.max;\r\n var categoriesInfo = scaleOptions._categoriesInfo;\r\n var ticksInfo;\r\n var length;\r\n var bounds = {};\r\n if (scaleOptions.type === SEMIDISCRETE) {\r\n result = calculateTickIntervalsForSemidiscreteScale(scaleOptions, min, max, screenDelta)\r\n } else {\r\n ticksInfo = (0, _tick_generator.tickGenerator)({\r\n axisType: scaleOptions.type,\r\n dataType: scaleOptions.valueType,\r\n logBase: scaleOptions.logarithmBase,\r\n allowNegatives: true,\r\n linearThreshold: Math.abs(scaleOptions.linearThreshold || 0),\r\n axisDivisionFactor: scaleOptions.axisDivisionFactor,\r\n minorAxisDivisionFactor: scaleOptions.minorAxisDivisionFactor,\r\n calculateMinors: true,\r\n allowDecimals: scaleOptions.allowDecimals,\r\n endOnTick: scaleOptions.endOnTick,\r\n incidentOccurred: incidentOccurred,\r\n rangeIsEmpty: range.isEmpty()\r\n })({\r\n min: min,\r\n max: max,\r\n categories: (0, _type2.isDefined)(categoriesInfo) ? categoriesInfo.categories : []\r\n }, screenDelta, scaleOptions.tickInterval, scaleOptions.forceUserTickInterval, void 0, scaleOptions.minorTickInterval, scaleOptions.minorTickCount);\r\n length = ticksInfo.ticks.length;\r\n bounds.minVisible = ticksInfo.ticks[0] < min ? ticksInfo.ticks[0] : min;\r\n bounds.maxVisible = ticksInfo.ticks[length - 1] > max ? ticksInfo.ticks[length - 1] : max;\r\n result = {\r\n tickInterval: ticksInfo.tickInterval,\r\n minorTickInterval: 0 === scaleOptions.minorTickInterval ? 0 : ticksInfo.minorTickInterval,\r\n bounds: bounds,\r\n ticks: ticksInfo.ticks\r\n }\r\n }\r\n return result\r\n}\r\n\r\nfunction getFirstDayOfWeek(options) {\r\n var _options$workWeek;\r\n return null === (_options$workWeek = options.workWeek) || void 0 === _options$workWeek ? void 0 : _options$workWeek[0]\r\n}\r\n\r\nfunction calculateTranslatorRange(seriesDataSource, scaleOptions) {\r\n var minValue;\r\n var maxValue;\r\n var inverted = false;\r\n var startValue = scaleOptions.startValue;\r\n var endValue = scaleOptions.endValue;\r\n var categories;\r\n var categoriesInfo;\r\n var translatorRange = seriesDataSource ? seriesDataSource.getBoundRange().arg : new _range.Range;\r\n var rangeForCategories;\r\n var isDate = \"datetime\" === scaleOptions.valueType;\r\n var firstDayOfWeek = getFirstDayOfWeek(scaleOptions);\r\n var minRange = scaleOptions.minRange;\r\n if (scaleOptions.type === DISCRETE) {\r\n rangeForCategories = new _range.Range({\r\n minVisible: startValue,\r\n maxVisible: endValue\r\n });\r\n rangeForCategories.addRange(translatorRange);\r\n translatorRange = rangeForCategories;\r\n categories = seriesDataSource ? seriesDataSource.argCategories : scaleOptions.categories || !seriesDataSource && startValue && endValue && [startValue, endValue];\r\n categories = categories || [];\r\n scaleOptions._categoriesInfo = categoriesInfo = (0, _utils.getCategoriesInfo)(categories, startValue, endValue)\r\n }\r\n if (scaleOptions.type === SEMIDISCRETE) {\r\n startValue = scaleOptions.startValue = correctValueByInterval(scaleOptions.startValue, isDate, minRange, firstDayOfWeek);\r\n endValue = scaleOptions.endValue = correctValueByInterval(scaleOptions.endValue, isDate, minRange, firstDayOfWeek);\r\n translatorRange.minVisible = correctValueByInterval(translatorRange.minVisible, isDate, minRange, firstDayOfWeek);\r\n translatorRange.maxVisible = correctValueByInterval(translatorRange.maxVisible, isDate, minRange, firstDayOfWeek);\r\n translatorRange.min = correctValueByInterval(translatorRange.min, isDate, minRange, firstDayOfWeek);\r\n translatorRange.max = correctValueByInterval(translatorRange.max, isDate, minRange, firstDayOfWeek)\r\n }\r\n if ((0, _type2.isDefined)(startValue) && (0, _type2.isDefined)(endValue)) {\r\n inverted = categoriesInfo ? categoriesInfo.inverted : startValue > endValue;\r\n minValue = categoriesInfo ? categoriesInfo.start : inverted ? endValue : startValue;\r\n maxValue = categoriesInfo ? categoriesInfo.end : inverted ? startValue : endValue\r\n } else {\r\n if ((0, _type2.isDefined)(startValue) || (0, _type2.isDefined)(endValue)) {\r\n minValue = startValue;\r\n maxValue = endValue\r\n } else {\r\n if (categoriesInfo) {\r\n minValue = categoriesInfo.start;\r\n maxValue = categoriesInfo.end\r\n }\r\n }\r\n }\r\n translatorRange.addRange({\r\n invert: inverted,\r\n min: minValue,\r\n max: maxValue,\r\n minVisible: minValue,\r\n maxVisible: maxValue,\r\n dataType: scaleOptions.valueType\r\n });\r\n translatorRange.addRange({\r\n categories: !seriesDataSource ? categories : void 0,\r\n base: scaleOptions.logarithmBase,\r\n axisType: scaleOptions.type,\r\n dataType: scaleOptions.valueType\r\n });\r\n seriesDataSource && translatorRange.sortCategories(categories);\r\n return translatorRange\r\n}\r\n\r\nfunction startEndNotDefined(start, end) {\r\n return !(0, _type2.isDefined)(start) || !(0, _type2.isDefined)(end)\r\n}\r\n\r\nfunction getTextBBox(renderer, text, fontOptions) {\r\n var textElement = renderer.text(text, INVISIBLE_POS, INVISIBLE_POS).css((0, _utils.patchFontOptions)(fontOptions)).append(renderer.root);\r\n var textBBox = textElement.getBBox();\r\n textElement.remove();\r\n return textBBox\r\n}\r\n\r\nfunction getDateMarkerVisibilityChecker(screenDelta) {\r\n return function(isDateScale, isMarkerVisible, min, max, tickInterval) {\r\n if (isMarkerVisible && isDateScale) {\r\n if (!(0, _type2.isDefined)(tickInterval) || tickInterval.years || tickInterval.months >= 6 || screenDelta / SEMIDISCRETE_GRID_SPACING_FACTOR < _ceil((max - min) / _date.default.dateToMilliseconds(\"year\")) + 1) {\r\n isMarkerVisible = false\r\n }\r\n }\r\n return isMarkerVisible\r\n }\r\n}\r\n\r\nfunction updateScaleOptions(scaleOptions, seriesDataSource, translatorRange, tickIntervalsInfo, checkDateMarkerVisibility) {\r\n var bounds;\r\n var isEmptyInterval;\r\n var categoriesInfo = scaleOptions._categoriesInfo;\r\n var intervals;\r\n var isDateTime = scaleOptions.valueType === DATETIME;\r\n if (seriesDataSource && !seriesDataSource.isEmpty() && !translatorRange.isEmpty()) {\r\n bounds = tickIntervalsInfo.bounds;\r\n translatorRange.addRange(bounds);\r\n scaleOptions.startValue = translatorRange.invert ? bounds.maxVisible : bounds.minVisible;\r\n scaleOptions.endValue = translatorRange.invert ? bounds.minVisible : bounds.maxVisible\r\n }\r\n scaleOptions.marker.visible = checkDateMarkerVisibility(isDateTime && scaleOptions.type.indexOf(DISCRETE) === -1, scaleOptions.marker.visible, scaleOptions.startValue, scaleOptions.endValue, tickIntervalsInfo.tickInterval);\r\n if (categoriesInfo) {\r\n scaleOptions.startValue = categoriesInfo.start;\r\n scaleOptions.endValue = categoriesInfo.end\r\n }\r\n if (scaleOptions.type.indexOf(DISCRETE) === -1) {\r\n isEmptyInterval = (0, _type2.isDate)(scaleOptions.startValue) && (0, _type2.isDate)(scaleOptions.endValue) && scaleOptions.startValue.getTime() === scaleOptions.endValue.getTime() || scaleOptions.startValue === scaleOptions.endValue\r\n }\r\n scaleOptions.isEmpty = startEndNotDefined(scaleOptions.startValue, scaleOptions.endValue) || isEmptyInterval;\r\n if (scaleOptions.isEmpty) {\r\n scaleOptions.startValue = scaleOptions.endValue = void 0\r\n } else {\r\n scaleOptions.minorTickInterval = tickIntervalsInfo.minorTickInterval;\r\n scaleOptions.tickInterval = tickIntervalsInfo.tickInterval;\r\n if (isDateTime && (!(0, _type2.isDefined)(scaleOptions.label.format) || scaleOptions.type === SEMIDISCRETE && scaleOptions.minorTickInterval !== scaleOptions.tickInterval)) {\r\n if (scaleOptions.type === DISCRETE) {\r\n scaleOptions.label.format = _format_helper.default.getDateFormatByTicks(tickIntervalsInfo.ticks)\r\n } else {\r\n if (!scaleOptions.marker.visible) {\r\n scaleOptions.label.format = _format_helper.default.getDateFormatByTickInterval(scaleOptions.startValue, scaleOptions.endValue, scaleOptions.tickInterval)\r\n } else {\r\n scaleOptions.label.format = _date.default.getDateFormatByTickInterval(scaleOptions.tickInterval)\r\n }\r\n }\r\n }\r\n }\r\n if (scaleOptions.type === SEMIDISCRETE) {\r\n intervals = getIntervalCustomTicks(scaleOptions);\r\n scaleOptions.customMinorTicks = intervals.altIntervals;\r\n scaleOptions.customTicks = intervals.intervals;\r\n scaleOptions.customBoundTicks = [scaleOptions.customTicks[0]]\r\n }\r\n}\r\n\r\nfunction prepareScaleOptions(scaleOption, calculatedValueType, incidentOccurred, containerColor) {\r\n var parsedValue = 0;\r\n var valueType = (0, _parse_utils.correctValueType)((0, _utils.normalizeEnum)(scaleOption.valueType));\r\n var validateStartEndValues = function(field, parser) {\r\n var messageToIncidentOccurred = field === START_VALUE ? \"start\" : \"end\";\r\n if ((0, _type2.isDefined)(scaleOption[field])) {\r\n parsedValue = parser(scaleOption[field]);\r\n if ((0, _type2.isDefined)(parsedValue)) {\r\n scaleOption[field] = parsedValue\r\n } else {\r\n scaleOption[field] = void 0;\r\n incidentOccurred(\"E2202\", [messageToIncidentOccurred])\r\n }\r\n }\r\n };\r\n valueType = calculatedValueType || valueType;\r\n if (!valueType) {\r\n valueType = calculateValueType(scaleOption.startValue, scaleOption.endValue) || \"numeric\"\r\n }\r\n if (valueType === STRING || scaleOption.categories) {\r\n scaleOption.type = DISCRETE;\r\n valueType = STRING\r\n }\r\n scaleOption.containerColor = containerColor;\r\n scaleOption.valueType = valueType;\r\n scaleOption.dataType = valueType;\r\n var parser = (0, _parse_utils.getParser)(valueType);\r\n validateStartEndValues(START_VALUE, parser);\r\n validateStartEndValues(END_VALUE, parser);\r\n checkLogarithmicOptions(scaleOption, logarithmBase, incidentOccurred);\r\n if (!scaleOption.type) {\r\n scaleOption.type = \"continuous\"\r\n }\r\n scaleOption.parser = parser;\r\n if (scaleOption.type === SEMIDISCRETE) {\r\n scaleOption.minorTick.visible = false;\r\n scaleOption.minorTickInterval = scaleOption.minRange;\r\n scaleOption.marker.visible = false;\r\n scaleOption.maxRange = void 0\r\n }\r\n scaleOption.forceUserTickInterval |= (0, _type2.isDefined)(scaleOption.tickInterval) && !(0, _type2.isDefined)(scaleOption.axisDivisionFactor);\r\n scaleOption.axisDivisionFactor = (0, _type2.isDefined)(scaleOption.axisDivisionFactor) ? scaleOption.axisDivisionFactor : DEFAULT_AXIS_DIVISION_FACTOR;\r\n scaleOption.minorAxisDivisionFactor = (0, _type2.isDefined)(scaleOption.minorAxisDivisionFactor) ? scaleOption.minorAxisDivisionFactor : DEFAULT_MINOR_AXIS_DIVISION_FACTOR;\r\n return scaleOption\r\n}\r\n\r\nfunction correctValueByInterval(value, isDate, interval, firstDayOfWeek) {\r\n if ((0, _type2.isDefined)(value)) {\r\n value = isDate ? _date.default.correctDateWithUnitBeginning(new Date(value), interval, null, firstDayOfWeek) : (0, _math.adjust)(_floor((0, _math.adjust)(value / interval)) * interval)\r\n }\r\n return value\r\n}\r\n\r\nfunction getIntervalCustomTicks(options) {\r\n var min = options.startValue;\r\n var max = options.endValue;\r\n var isDate = \"datetime\" === options.valueType;\r\n var firstDayOfWeek = getFirstDayOfWeek(options);\r\n var tickInterval = options.tickInterval;\r\n var res = {\r\n intervals: []\r\n };\r\n if (!(0, _type2.isDefined)(min) || !(0, _type2.isDefined)(max)) {\r\n return res\r\n }\r\n res.intervals = _date.default.getSequenceByInterval(min, max, options.minorTickInterval);\r\n if (tickInterval !== options.minorTickInterval) {\r\n res.altIntervals = res.intervals;\r\n min = correctValueByInterval(min, isDate, tickInterval, firstDayOfWeek);\r\n max = correctValueByInterval(max, isDate, tickInterval, firstDayOfWeek);\r\n res.intervals = _date.default.getSequenceByInterval(min, max, tickInterval);\r\n res.intervals[0] = res.altIntervals[0]\r\n }\r\n return res\r\n}\r\n\r\nfunction getPrecisionForSlider(startValue, endValue, screenDelta) {\r\n var d = Math.abs(endValue - startValue) / screenDelta;\r\n var tail = d - _floor(d);\r\n return tail > 0 ? _ceil(Math.abs((0, _math.adjust)((0, _utils.getLog)(tail, 10)))) : 0\r\n}\r\nvar dxRangeSelector = _base_widget.default.inherit({\r\n _toggleParentsScrollSubscription: function() {},\r\n _eventsMap: {\r\n onValueChanged: {\r\n name: VALUE_CHANGED\r\n }\r\n },\r\n _rootClassPrefix: \"dxrs\",\r\n _rootClass: \"dxrs-range-selector\",\r\n _dataIsReady: function() {\r\n return this._dataIsLoaded()\r\n },\r\n _initialChanges: [\"DATA_SOURCE\", \"VALUE\"],\r\n _themeDependentChanges: [\"MOSTLY_TOTAL\"],\r\n _themeSection: \"rangeSelector\",\r\n _fontFields: [\"scale.label.font\", \"sliderMarker.font\"],\r\n _initCore: function() {\r\n var that = this;\r\n var renderer = that._renderer;\r\n var root = renderer.root;\r\n root.css({\r\n \"touch-action\": \"pan-y\"\r\n });\r\n that._clipRect = renderer.clipRect();\r\n var rangeViewGroup = renderer.g().attr({\r\n \"class\": \"dxrs-view\"\r\n }).append(root);\r\n var slidersGroup = renderer.g().attr({\r\n \"class\": \"dxrs-slidersContainer\",\r\n \"clip-path\": that._clipRect.id\r\n }).append(root);\r\n var scaleGroup = renderer.g().attr({\r\n \"class\": \"dxrs-scale\",\r\n \"clip-path\": that._clipRect.id\r\n }).append(root);\r\n var scaleBreaksGroup = renderer.g().attr({\r\n \"class\": \"dxrs-scale-breaks\"\r\n }).append(root);\r\n var trackersGroup = renderer.g().attr({\r\n \"class\": \"dxrs-trackers\"\r\n }).append(root);\r\n that._axis = new AxisWrapper({\r\n renderer: renderer,\r\n root: scaleGroup,\r\n scaleBreaksGroup: scaleBreaksGroup,\r\n updateSelectedRange: function(range, e) {\r\n that.setValue((0, _utils.convertVisualRangeObject)(range), e)\r\n },\r\n incidentOccurred: that._incidentOccurred\r\n });\r\n that._rangeView = new _range_view.RangeView({\r\n renderer: renderer,\r\n root: rangeViewGroup,\r\n translator: that._axis.getTranslator()\r\n });\r\n that._slidersController = new _sliders_controller.SlidersController({\r\n renderer: renderer,\r\n root: slidersGroup,\r\n trackersGroup: trackersGroup,\r\n updateSelectedRange: function(range, lastSelectedRange, e) {\r\n if (!that._rangeOption) {\r\n that.option(VALUE, (0, _utils.convertVisualRangeObject)(range, (0, _type2.isPlainObject)(that._options.silent(VALUE))))\r\n }\r\n that._eventTrigger(VALUE_CHANGED, {\r\n value: (0, _utils.convertVisualRangeObject)(range),\r\n previousValue: (0, _utils.convertVisualRangeObject)(lastSelectedRange),\r\n event: e\r\n })\r\n },\r\n axis: that._axis,\r\n translator: that._axis.getTranslator()\r\n });\r\n that._tracker = new _tracker.Tracker({\r\n renderer: renderer,\r\n controller: that._slidersController\r\n })\r\n },\r\n _getDefaultSize: function() {\r\n return {\r\n width: 400,\r\n height: 160\r\n }\r\n },\r\n _disposeCore: function() {\r\n this._axis.dispose();\r\n this._slidersController.dispose();\r\n this._tracker.dispose()\r\n },\r\n _applySize: function(rect) {\r\n this._clientRect = rect.slice();\r\n this._change([\"MOSTLY_TOTAL\"])\r\n },\r\n _optionChangesMap: {\r\n scale: \"SCALE\",\r\n value: \"VALUE\",\r\n dataSource: \"DATA_SOURCE\"\r\n },\r\n _optionChangesOrder: [\"SCALE\", \"DATA_SOURCE\"],\r\n _change_SCALE: function() {\r\n this._change([\"MOSTLY_TOTAL\"])\r\n },\r\n _setValueByDataSource: function() {\r\n var that = this;\r\n var options = that._options.silent();\r\n var axis = that._axis;\r\n if (options.dataSource) {\r\n var selectedRangeUpdateMode = that.option(\"selectedRangeUpdateMode\");\r\n var value = that.getValue();\r\n var valueIsReady = (0, _type2.isDefined)(value[0]) && (0, _type2.isDefined)(value[1]);\r\n if ((0, _type2.isDefined)(selectedRangeUpdateMode)) {\r\n selectedRangeUpdateMode = (0, _utils.normalizeEnum)(selectedRangeUpdateMode);\r\n that.__skipAnimation = true\r\n } else {\r\n if (valueIsReady && !that._dataSourceIsAsync) {\r\n selectedRangeUpdateMode = RESET\r\n }\r\n }\r\n if (\"auto\" === selectedRangeUpdateMode && valueIsReady) {\r\n var rangesInfo = axis.allScaleSelected(value);\r\n if (rangesInfo.startValue && rangesInfo.endValue) {\r\n selectedRangeUpdateMode = RESET\r\n } else {\r\n if (rangesInfo.endValue) {\r\n selectedRangeUpdateMode = SHIFT\r\n } else {\r\n selectedRangeUpdateMode = KEEP\r\n }\r\n }\r\n }\r\n if (selectedRangeUpdateMode === RESET) {\r\n options[VALUE] = null\r\n } else {\r\n if (selectedRangeUpdateMode === SHIFT && valueIsReady) {\r\n var _value = that.getValue();\r\n that.__skipAnimation = true;\r\n options[VALUE] = {\r\n length: axis.getVisualRangeLength({\r\n minVisible: _value[0],\r\n maxVisible: _value[1]\r\n })\r\n }\r\n } else {\r\n if (selectedRangeUpdateMode === KEEP) {\r\n that.__skipAnimation = true\r\n }\r\n }\r\n }\r\n }\r\n that._dataSourceIsAsync = void 0\r\n },\r\n _change_DATA_SOURCE: function() {\r\n if (this._options.silent(\"dataSource\")) {\r\n this._updateDataSource()\r\n }\r\n },\r\n _customChangesOrder: [\"MOSTLY_TOTAL\", \"VALUE\", \"SLIDER_SELECTION\"],\r\n _change_MOSTLY_TOTAL: function() {\r\n this._applyMostlyTotalChange()\r\n },\r\n _change_SLIDER_SELECTION: function() {\r\n var that = this;\r\n var value = that._options.silent(VALUE);\r\n that._slidersController.setSelectedRange(value && (0, _utils.getVizRangeObject)(value))\r\n },\r\n _change_VALUE: function() {\r\n var that = this;\r\n var option = that._rangeOption;\r\n that._dataSourceIsAsync = !that._dataIsReady();\r\n if (option) {\r\n that._options.silent(VALUE, option);\r\n that.setValue(option)\r\n }\r\n },\r\n _validateRange: function(start, end) {\r\n var that = this;\r\n var translator = that._axis.getTranslator();\r\n if ((0, _type2.isDefined)(start) && !translator.isValid(start) || (0, _type2.isDefined)(end) && !translator.isValid(end)) {\r\n that._incidentOccurred(\"E2203\")\r\n }\r\n },\r\n _applyChanges: function() {\r\n var that = this;\r\n var value = that._options.silent(VALUE);\r\n if (that._changes.has(\"VALUE\") && value) {\r\n that._rangeOption = value\r\n }\r\n that.callBase.apply(that, arguments);\r\n that._rangeOption = null;\r\n that.__isResizing = that.__skipAnimation = false\r\n },\r\n _applyMostlyTotalChange: function() {\r\n var that = this;\r\n var renderer = that._renderer;\r\n var rect = that._clientRect;\r\n var currentAnimationEnabled;\r\n var canvas = {\r\n left: rect[0],\r\n top: rect[1],\r\n width: rect[2] - rect[0],\r\n height: rect[3] - rect[1]\r\n };\r\n if (that.__isResizing || that.__skipAnimation) {\r\n currentAnimationEnabled = renderer.animationEnabled();\r\n renderer.updateAnimationOptions({\r\n enabled: false\r\n })\r\n }\r\n that._clipRect.attr({\r\n x: rect[0],\r\n y: rect[1],\r\n width: rect[2] - rect[0],\r\n height: rect[3] - rect[1]\r\n });\r\n that._axis.getTranslator().update(new _range.Range, canvas, {\r\n isHorizontal: true\r\n });\r\n that._updateContent({\r\n left: rect[0],\r\n top: rect[1],\r\n width: rect[2] - rect[0],\r\n height: rect[3] - rect[1]\r\n });\r\n if (that.__isResizing || that.__skipAnimation) {\r\n renderer.updateAnimationOptions({\r\n enabled: currentAnimationEnabled\r\n })\r\n }\r\n that._drawn()\r\n },\r\n _dataSourceChangedHandler: function() {\r\n this._setValueByDataSource();\r\n this._requestChange([\"MOSTLY_TOTAL\"])\r\n },\r\n _completeSeriesDataSourceCreation: function(scaleOptions, seriesDataSource) {\r\n var rect = this._clientRect;\r\n var canvas = {\r\n left: rect[0],\r\n top: rect[1],\r\n width: rect[2] - rect[0],\r\n height: rect[3] - rect[1]\r\n };\r\n this._axis.updateOptions((0, _extend.extend)({}, scaleOptions, {\r\n isHorizontal: true,\r\n label: {}\r\n }));\r\n seriesDataSource.isShowChart() && this._axis.setMarginOptions(seriesDataSource.getMarginOptions(canvas));\r\n this._axis.updateCanvas(canvas);\r\n seriesDataSource.createPoints()\r\n },\r\n _updateContent: function(canvas) {\r\n var that = this;\r\n var chartOptions = that.option(\"chart\");\r\n var seriesDataSource = that._createSeriesDataSource(chartOptions);\r\n var isCompactMode = !(seriesDataSource && seriesDataSource.isShowChart() || that.option(\"background.image.url\"));\r\n var scaleOptions = prepareScaleOptions(that._getOption(\"scale\"), seriesDataSource && seriesDataSource.getCalculatedValueType(), that._incidentOccurred, this._getOption(\"containerBackgroundColor\", true));\r\n seriesDataSource && that._completeSeriesDataSourceCreation(scaleOptions, seriesDataSource);\r\n var argTranslatorRange = calculateTranslatorRange(seriesDataSource, scaleOptions);\r\n var tickIntervalsInfo = updateTickIntervals(scaleOptions, canvas.width, that._incidentOccurred, argTranslatorRange);\r\n var chartThemeManager = seriesDataSource && seriesDataSource.isShowChart() && seriesDataSource.getThemeManager();\r\n if (chartThemeManager) {\r\n checkLogarithmicOptions(chartOptions && chartOptions.valueAxis, chartThemeManager.getOptions(\"valueAxis\").logarithmBase, that._incidentOccurred)\r\n }\r\n updateScaleOptions(scaleOptions, seriesDataSource, argTranslatorRange, tickIntervalsInfo, getDateMarkerVisibilityChecker(canvas.width));\r\n updateTranslatorRangeInterval(argTranslatorRange, scaleOptions);\r\n var sliderMarkerOptions = that._prepareSliderMarkersOptions(scaleOptions, canvas.width, tickIntervalsInfo, argTranslatorRange);\r\n var indents = calculateIndents(that._renderer, scaleOptions, sliderMarkerOptions, that.option(\"indent\"), tickIntervalsInfo);\r\n var rangeContainerCanvas = {\r\n left: canvas.left + indents.left,\r\n top: canvas.top + indents.top,\r\n width: canvas.left + indents.left + _max(canvas.width - indents.left - indents.right, 1),\r\n height: _max(!isCompactMode ? canvas.height - indents.top - indents.bottom - calculateScaleAreaHeight(that._renderer, scaleOptions, showScaleMarkers(scaleOptions), tickIntervalsInfo) : _common.HEIGHT_COMPACT_MODE, 0),\r\n right: 0,\r\n bottom: 0\r\n };\r\n that._axis.update(scaleOptions, isCompactMode, rangeContainerCanvas, argTranslatorRange, seriesDataSource);\r\n scaleOptions.minorTickInterval = scaleOptions.isEmpty ? 0 : scaleOptions.minorTickInterval;\r\n that._updateElements(scaleOptions, sliderMarkerOptions, isCompactMode, rangeContainerCanvas, seriesDataSource);\r\n if (chartThemeManager) {\r\n chartThemeManager.dispose()\r\n }\r\n },\r\n _updateElements: function(scaleOptions, sliderMarkerOptions, isCompactMode, canvas, seriesDataSource) {\r\n var that = this;\r\n var behavior = that._getOption(\"behavior\");\r\n var shutterOptions = that._getOption(\"shutter\");\r\n var isNotSemiDiscrete = scaleOptions.type !== SEMIDISCRETE;\r\n shutterOptions.color = shutterOptions.color || that._getOption(CONTAINER_BACKGROUND_COLOR, true);\r\n that._rangeView.update(that.option(\"background\"), that._themeManager.theme(\"background\"), canvas, isCompactMode, behavior.animationEnabled && that._renderer.animationEnabled(), seriesDataSource);\r\n that._isUpdating = true;\r\n that._slidersController.update([canvas.top, canvas.top + canvas.height], behavior, isCompactMode, that._getOption(\"sliderHandle\"), sliderMarkerOptions, shutterOptions, {\r\n minRange: isNotSemiDiscrete ? that.option(\"scale.minRange\") : void 0,\r\n maxRange: isNotSemiDiscrete ? that.option(\"scale.maxRange\") : void 0\r\n }, that._axis.getFullTicks(), that._getOption(\"selectedRangeColor\", true));\r\n that._requestChange([\"SLIDER_SELECTION\"]);\r\n that._isUpdating = false;\r\n that._tracker.update(!that._axis.getTranslator().getBusinessRange().isEmpty(), behavior)\r\n },\r\n _createSeriesDataSource: function(chartOptions) {\r\n var that = this;\r\n var seriesDataSource;\r\n var dataSource = that._dataSourceItems();\r\n var scaleOptions = that._getOption(\"scale\");\r\n var valueType = scaleOptions.valueType || calculateValueType(scaleOptions.startValue, scaleOptions.endValue);\r\n var valueAxis = new _base_axis.Axis({\r\n renderer: that._renderer,\r\n axisType: \"xyAxes\",\r\n drawingType: \"linear\"\r\n });\r\n valueAxis.updateOptions({\r\n isHorizontal: false,\r\n label: {},\r\n categoriesSortingMethod: that._getOption(\"chart\").valueAxis.categoriesSortingMethod\r\n });\r\n if (dataSource || chartOptions && chartOptions.series) {\r\n chartOptions = (0, _extend.extend)({}, chartOptions, {\r\n theme: that.option(\"theme\")\r\n });\r\n seriesDataSource = new _series_data_source.SeriesDataSource({\r\n renderer: that._renderer,\r\n dataSource: dataSource,\r\n valueType: (0, _utils.normalizeEnum)(valueType),\r\n axisType: scaleOptions.type,\r\n chart: chartOptions,\r\n dataSourceField: that.option(\"dataSourceField\"),\r\n incidentOccurred: that._incidentOccurred,\r\n categories: scaleOptions.categories,\r\n argumentAxis: that._axis,\r\n valueAxis: valueAxis\r\n })\r\n }\r\n return seriesDataSource\r\n },\r\n _prepareSliderMarkersOptions: function(scaleOptions, screenDelta, tickIntervalsInfo, argRange) {\r\n var that = this;\r\n var minorTickInterval = tickIntervalsInfo.minorTickInterval;\r\n var tickInterval = tickIntervalsInfo.tickInterval;\r\n var interval = tickInterval;\r\n var endValue = scaleOptions.endValue;\r\n var startValue = scaleOptions.startValue;\r\n var sliderMarkerOptions = that._getOption(SLIDER_MARKER);\r\n var doNotSnap = !that._getOption(\"behavior\").snapToTicks;\r\n var isTypeDiscrete = scaleOptions.type === DISCRETE;\r\n var isValueTypeDatetime = scaleOptions.valueType === DATETIME;\r\n sliderMarkerOptions.borderColor = that._getOption(CONTAINER_BACKGROUND_COLOR, true);\r\n if (!sliderMarkerOptions.format && !argRange.isEmpty()) {\r\n if (doNotSnap && (0, _type2.isNumeric)(scaleOptions.startValue)) {\r\n sliderMarkerOptions.format = {\r\n type: \"fixedPoint\",\r\n precision: getPrecisionForSlider(startValue, endValue, screenDelta)\r\n }\r\n }\r\n if (isValueTypeDatetime && !isTypeDiscrete) {\r\n if ((0, _type2.isDefined)(minorTickInterval) && 0 !== minorTickInterval) {\r\n interval = getMinorTickIntervalUnit(tickInterval, minorTickInterval, doNotSnap)\r\n }\r\n if (!scaleOptions.marker.visible) {\r\n if ((0, _type2.isDefined)(startValue) && (0, _type2.isDefined)(endValue)) {\r\n sliderMarkerOptions.format = _format_helper.default.getDateFormatByTickInterval(startValue, endValue, interval)\r\n }\r\n } else {\r\n sliderMarkerOptions.format = _date.default.getDateFormatByTickInterval(interval)\r\n }\r\n }\r\n if (isValueTypeDatetime && isTypeDiscrete && tickIntervalsInfo.ticks.length) {\r\n sliderMarkerOptions.format = _format_helper.default.getDateFormatByTicks(tickIntervalsInfo.ticks)\r\n }\r\n }\r\n return sliderMarkerOptions\r\n },\r\n getValue: function() {\r\n return (0, _utils.convertVisualRangeObject)(this._slidersController.getSelectedRange())\r\n },\r\n setValue: function(value, e) {\r\n var visualRange = (0, _utils.getVizRangeObject)(value);\r\n if (!this._isUpdating && value) {\r\n this._validateRange(visualRange.startValue, visualRange.endValue);\r\n !(0, _utils.rangesAreEqual)(visualRange, this._slidersController.getSelectedRange()) && this._slidersController.setSelectedRange(visualRange, e)\r\n }\r\n },\r\n _setContentSize: function() {\r\n this.__isResizing = 2 === this._changes.count();\r\n this.callBase.apply(this, arguments)\r\n }\r\n});\r\n(0, _iterator.each)([\"selectedRangeColor\", \"containerBackgroundColor\", \"sliderMarker\", \"sliderHandle\", \"shutter\", OPTION_BACKGROUND, \"behavior\", \"chart\", \"indent\"], function(_, name) {\r\n dxRangeSelector.prototype._optionChangesMap[name] = \"MOSTLY_TOTAL\"\r\n});\r\n\r\nfunction prepareAxisOptions(scaleOptions, isCompactMode, height, axisPosition) {\r\n scaleOptions.marker.label.font = scaleOptions.label.font;\r\n scaleOptions.color = scaleOptions.marker.color = scaleOptions.tick.color;\r\n scaleOptions.opacity = scaleOptions.marker.opacity = scaleOptions.tick.opacity;\r\n scaleOptions.width = scaleOptions.marker.width = scaleOptions.tick.width;\r\n scaleOptions.placeholderSize = (scaleOptions.placeholderHeight || 0) + axisPosition;\r\n scaleOptions.argumentType = scaleOptions.valueType;\r\n scaleOptions.visible = isCompactMode;\r\n scaleOptions.isHorizontal = true;\r\n scaleOptions.calculateMinors = true;\r\n scaleOptions.semiDiscreteInterval = scaleOptions.minRange;\r\n if (!isCompactMode) {\r\n scaleOptions.minorTick.length = scaleOptions.tick.length = height\r\n }\r\n scaleOptions.label.indentFromAxis = scaleOptions.label.topIndent + axisPosition;\r\n return scaleOptions\r\n}\r\n\r\nfunction createDateMarkersEvent(scaleOptions, markerTrackers, setSelectedRange) {\r\n (0, _iterator.each)(markerTrackers, function(_, value) {\r\n value.on(\"dxpointerdown\", onPointerDown)\r\n });\r\n\r\n function onPointerDown(e) {\r\n var range = e.target.range;\r\n var minRange = scaleOptions.minRange ? _date.default.addInterval(range.startValue, scaleOptions.minRange) : void 0;\r\n var maxRange = scaleOptions.maxRange ? _date.default.addInterval(range.startValue, scaleOptions.maxRange) : void 0;\r\n if (!(minRange && minRange > range.endValue || maxRange && maxRange < range.endValue)) {\r\n setSelectedRange(range, e)\r\n }\r\n }\r\n}\r\n\r\nfunction getShiftDirection() {\r\n return 1\r\n}\r\n\r\nfunction getTickStartPositionShift(length) {\r\n return length % 2 === 1 ? -_floor(length / 2) : -length / 2\r\n}\r\n\r\nfunction AxisWrapper(params) {\r\n var that = this;\r\n that._axis = new _base_axis.Axis({\r\n renderer: params.renderer,\r\n axesContainerGroup: params.root,\r\n scaleBreaksGroup: params.scaleBreaksGroup,\r\n incidentOccurred: params.incidentOccurred,\r\n axisType: \"xyAxes\",\r\n drawingType: \"linear\",\r\n widgetClass: \"dxrs\",\r\n axisClass: \"range-selector\",\r\n isArgumentAxis: true,\r\n getTemplate: function() {}\r\n });\r\n that._updateSelectedRangeCallback = params.updateSelectedRange;\r\n that._axis.getAxisSharpDirection = that._axis.getSharpDirectionByCoords = getShiftDirection;\r\n that._axis.getTickStartPositionShift = getTickStartPositionShift\r\n}\r\nAxisWrapper.prototype = {\r\n constructor: AxisWrapper,\r\n dispose: function() {\r\n this._axis.dispose()\r\n },\r\n calculateInterval: function(value, prevValue) {\r\n return this._axis.calculateInterval(value, prevValue)\r\n },\r\n update: function(options, isCompactMode, canvas, businessRange, seriesDataSource) {\r\n var axis = this._axis;\r\n axis.updateOptions(prepareAxisOptions(options, isCompactMode, canvas.height, canvas.height / 2 - _ceil(options.width / 2)));\r\n axis.validate();\r\n axis.setBusinessRange(businessRange, true);\r\n if (void 0 !== seriesDataSource && seriesDataSource.isShowChart()) {\r\n axis.setMarginOptions(seriesDataSource.getMarginOptions(canvas))\r\n }\r\n axis.draw(canvas);\r\n axis.shift({\r\n left: 0,\r\n bottom: -canvas.height / 2 + canvas.top\r\n });\r\n if (axis.getMarkerTrackers()) {\r\n createDateMarkersEvent(options, axis.getMarkerTrackers(), this._updateSelectedRangeCallback)\r\n }\r\n axis.drawScaleBreaks({\r\n start: canvas.top,\r\n end: canvas.top + canvas.height\r\n })\r\n },\r\n visualRange: function() {},\r\n getViewport: function() {\r\n return {}\r\n },\r\n allScaleSelected: function(value) {\r\n var _this$_axis$visualRan = this._axis.visualRange(),\r\n startValue = _this$_axis$visualRan.startValue,\r\n endValue = _this$_axis$visualRan.endValue;\r\n return {\r\n startValue: value[0].valueOf() === startValue.valueOf(),\r\n endValue: value[1].valueOf() === endValue.valueOf()\r\n }\r\n },\r\n getOptions: function() {\r\n return this._axis.getOptions() || {}\r\n }\r\n};\r\n[\"setMarginOptions\", \"getFullTicks\", \"updateCanvas\", \"updateOptions\", \"getAggregationInfo\", \"getTranslator\", \"getVisualRangeLength\", \"getVisibleArea\", \"getMarginOptions\"].forEach(function(methodName) {\r\n AxisWrapper.prototype[methodName] = function() {\r\n var axis = this._axis;\r\n return axis[methodName].apply(axis, arguments)\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxRangeSelector\", dxRangeSelector);\r\nvar _default = dxRangeSelector;\r\nexports.default = _default;\r\ndxRangeSelector.addPlugin(_export.plugin);\r\ndxRangeSelector.addPlugin(_title.plugin);\r\ndxRangeSelector.addPlugin(_loading_indicator.plugin);\r\ndxRangeSelector.addPlugin(_data_source.plugin);\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (viz/range_selector/sliders_controller.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.SlidersController = SlidersController;\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _common2 = require(\"./common\");\r\nvar _slider = _interopRequireDefault(require(\"./slider\"));\r\nvar _utils = require(\"../core/utils\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _math = require(\"../../core/utils/math\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar animationSettings = _common2.utils.animationSettings;\r\nvar emptySliderMarkerText = _common2.consts.emptySliderMarkerText;\r\n\r\nfunction buildRectPoints(left, top, right, bottom) {\r\n return [left, top, right, top, right, bottom, left, bottom]\r\n}\r\n\r\nfunction isLess(a, b) {\r\n return a < b\r\n}\r\n\r\nfunction isGreater(a, b) {\r\n return a > b\r\n}\r\n\r\nfunction selectClosestValue(target, values) {\r\n var start = 0;\r\n var end = values ? values.length - 1 : 0;\r\n var middle;\r\n var val = target;\r\n while (end - start > 1) {\r\n middle = start + end >> 1;\r\n val = values[middle];\r\n if (val === target) {\r\n return target\r\n } else {\r\n if (target < val) {\r\n end = middle\r\n } else {\r\n start = middle\r\n }\r\n }\r\n }\r\n if (values) {\r\n val = values[target - values[start] <= values[end] - target ? start : end]\r\n }\r\n return val\r\n}\r\n\r\nfunction dummyProcessSelectionChanged() {\r\n this._lastSelectedRange = this.getSelectedRange();\r\n delete this._processSelectionChanged\r\n}\r\n\r\nfunction suppressSetSelectedRange(controller) {\r\n controller.setSelectedRange = _common.noop;\r\n if (controller._processSelectionChanged === dummyProcessSelectionChanged) {\r\n controller._processSelectionChanged()\r\n }\r\n}\r\n\r\nfunction restoreSetSelectedRange(controller) {\r\n delete controller.setSelectedRange\r\n}\r\n\r\nfunction SlidersController(params) {\r\n var that = this;\r\n var sliderParams = {\r\n renderer: params.renderer,\r\n root: params.root,\r\n trackersGroup: params.trackersGroup,\r\n translator: params.translator\r\n };\r\n that._params = params;\r\n that._areaTracker = params.renderer.path(null, \"area\").attr({\r\n \"class\": \"area-tracker\",\r\n fill: \"#000000\",\r\n opacity: 1e-4\r\n }).append(params.trackersGroup);\r\n that._selectedAreaTracker = params.renderer.path(null, \"area\").attr({\r\n \"class\": \"selected-area-tracker\",\r\n fill: \"#000000\",\r\n opacity: 1e-4\r\n }).append(params.trackersGroup);\r\n that._shutter = params.renderer.path(null, \"area\").append(params.root);\r\n that._sliders = [new _slider.default(sliderParams, 0), new _slider.default(sliderParams, 1)];\r\n that._processSelectionChanged = dummyProcessSelectionChanged\r\n}\r\nSlidersController.prototype = {\r\n constructor: SlidersController,\r\n dispose: function() {\r\n this._sliders[0].dispose();\r\n this._sliders[1].dispose()\r\n },\r\n getTrackerTargets: function() {\r\n return {\r\n area: this._areaTracker,\r\n selectedArea: this._selectedAreaTracker,\r\n sliders: this._sliders\r\n }\r\n },\r\n _processSelectionChanged: function(e) {\r\n var that = this;\r\n var selectedRange = that.getSelectedRange();\r\n if (!(0, _utils.rangesAreEqual)(selectedRange, that._lastSelectedRange)) {\r\n that._params.updateSelectedRange(selectedRange, that._lastSelectedRange, e);\r\n that._lastSelectedRange = selectedRange\r\n }\r\n },\r\n update: function(verticalRange, behavior, isCompactMode, sliderHandleOptions, sliderMarkerOptions, shutterOptions, rangeBounds, fullTicks, selectedRangeColor) {\r\n var that = this;\r\n var screenRange = that._params.translator.getScreenRange();\r\n that._verticalRange = verticalRange;\r\n that._minRange = rangeBounds.minRange;\r\n that._maxRange = rangeBounds.maxRange;\r\n that._animationEnabled = behavior.animationEnabled && that._params.renderer.animationEnabled();\r\n that._allowSlidersSwap = behavior.allowSlidersSwap;\r\n that._sliders[0].update(verticalRange, sliderHandleOptions, sliderMarkerOptions);\r\n that._sliders[1].update(verticalRange, sliderHandleOptions, sliderMarkerOptions);\r\n that._sliders[0]._position = that._sliders[1]._position = screenRange[0];\r\n that._values = !that._params.translator.isValueProlonged && behavior.snapToTicks ? fullTicks : null;\r\n that._areaTracker.attr({\r\n points: buildRectPoints(screenRange[0], verticalRange[0], screenRange[1], verticalRange[1])\r\n });\r\n that._isCompactMode = isCompactMode;\r\n that._shutterOffset = sliderHandleOptions.width / 2;\r\n that._updateSelectedView(shutterOptions, selectedRangeColor);\r\n that._isOnMoving = \"onmoving\" === (0, _utils.normalizeEnum)(behavior.callValueChanged);\r\n that._updateSelectedRange();\r\n that._applyTotalPosition(false)\r\n },\r\n _updateSelectedView: function(shutterOptions, selectedRangeColor) {\r\n var settings = {\r\n fill: null,\r\n \"fill-opacity\": null,\r\n stroke: null,\r\n \"stroke-width\": null\r\n };\r\n if (this._isCompactMode) {\r\n settings.stroke = selectedRangeColor;\r\n settings[\"stroke-width\"] = 3;\r\n settings.sharp = \"v\"\r\n } else {\r\n settings.fill = shutterOptions.color;\r\n settings[\"fill-opacity\"] = shutterOptions.opacity\r\n }\r\n this._shutter.attr(settings)\r\n },\r\n _updateSelectedRange: function() {\r\n var that = this;\r\n var sliders = that._sliders;\r\n sliders[0].cancelAnimation();\r\n sliders[1].cancelAnimation();\r\n that._shutter.stopAnimation();\r\n if (that._params.translator.getBusinessRange().isEmpty()) {\r\n sliders[0]._setText(emptySliderMarkerText);\r\n sliders[1]._setText(emptySliderMarkerText);\r\n sliders[0]._value = sliders[1]._value = void 0;\r\n sliders[0]._position = that._params.translator.getScreenRange()[0];\r\n sliders[1]._position = that._params.translator.getScreenRange()[1];\r\n that._applyTotalPosition(false);\r\n suppressSetSelectedRange(that)\r\n } else {\r\n restoreSetSelectedRange(that)\r\n }\r\n },\r\n _applyTotalPosition: function(isAnimated) {\r\n var sliders = this._sliders;\r\n isAnimated = this._animationEnabled && isAnimated;\r\n sliders[0].applyPosition(isAnimated);\r\n sliders[1].applyPosition(isAnimated);\r\n var areOverlapped = sliders[0].getCloudBorder() > sliders[1].getCloudBorder();\r\n sliders[0].setOverlapped(areOverlapped);\r\n sliders[1].setOverlapped(areOverlapped);\r\n this._applyAreaTrackersPosition();\r\n this._applySelectedRangePosition(isAnimated)\r\n },\r\n _applyAreaTrackersPosition: function() {\r\n var that = this;\r\n var position1 = that._sliders[0].getPosition();\r\n var position2 = that._sliders[1].getPosition();\r\n that._selectedAreaTracker.attr({\r\n points: buildRectPoints(position1, that._verticalRange[0], position2, that._verticalRange[1])\r\n }).css({\r\n cursor: Math.abs(that._params.translator.getScreenRange()[1] - that._params.translator.getScreenRange()[0] - position2 + position1) < .001 ? \"default\" : \"pointer\"\r\n })\r\n },\r\n _applySelectedRangePosition: function(isAnimated) {\r\n var that = this;\r\n var verticalRange = that._verticalRange;\r\n var pos1 = that._sliders[0].getPosition();\r\n var pos2 = that._sliders[1].getPosition();\r\n var screenRange;\r\n var points;\r\n if (that._isCompactMode) {\r\n points = [pos1 + Math.ceil(that._shutterOffset), (verticalRange[0] + verticalRange[1]) / 2, pos2 - Math.floor(that._shutterOffset), (verticalRange[0] + verticalRange[1]) / 2]\r\n } else {\r\n screenRange = that._params.axis.getVisibleArea();\r\n points = [buildRectPoints(screenRange[0], verticalRange[0], Math.max(pos1 - Math.floor(that._shutterOffset), screenRange[0]), verticalRange[1]), buildRectPoints(screenRange[1], verticalRange[0], Math.min(pos2 + Math.ceil(that._shutterOffset), screenRange[1]), verticalRange[1])]\r\n }\r\n if (isAnimated) {\r\n that._shutter.animate({\r\n points: points\r\n }, animationSettings)\r\n } else {\r\n that._shutter.attr({\r\n points: points\r\n })\r\n }\r\n },\r\n getSelectedRange: function() {\r\n return {\r\n startValue: this._sliders[0].getValue(),\r\n endValue: this._sliders[1].getValue()\r\n }\r\n },\r\n setSelectedRange: function(visualRange, e) {\r\n visualRange = visualRange || {};\r\n var that = this;\r\n var translator = that._params.translator;\r\n var businessRange = translator.getBusinessRange();\r\n var compare = \"discrete\" === businessRange.axisType ? function(a, b) {\r\n return a < b\r\n } : function(a, b) {\r\n return a <= b\r\n };\r\n var _adjustVisualRange = (0, _utils.adjustVisualRange)({\r\n dataType: businessRange.dataType,\r\n axisType: businessRange.axisType,\r\n base: businessRange.base\r\n }, {\r\n startValue: translator.isValid(visualRange.startValue) ? translator.getCorrectValue(visualRange.startValue, 1) : void 0,\r\n endValue: translator.isValid(visualRange.endValue) ? translator.getCorrectValue(visualRange.endValue, -1) : void 0,\r\n length: visualRange.length\r\n }, {\r\n min: businessRange.minVisible,\r\n max: businessRange.maxVisible,\r\n categories: businessRange.categories\r\n }),\r\n startValue = _adjustVisualRange.startValue,\r\n endValue = _adjustVisualRange.endValue;\r\n startValue = (0, _type.isNumeric)(startValue) ? (0, _math.adjust)(startValue) : startValue;\r\n endValue = (0, _type.isNumeric)(endValue) ? (0, _math.adjust)(endValue) : endValue;\r\n var values = compare(translator.to(startValue, -1), translator.to(endValue, 1)) ? [startValue, endValue] : [endValue, startValue];\r\n that._sliders[0].setDisplayValue(values[0]);\r\n that._sliders[1].setDisplayValue(values[1]);\r\n that._sliders[0]._position = translator.to(values[0], -1);\r\n that._sliders[1]._position = translator.to(values[1], 1);\r\n that._applyTotalPosition(true);\r\n that._processSelectionChanged(e)\r\n },\r\n beginSelectedAreaMoving: function(initialPosition) {\r\n var that = this;\r\n var sliders = that._sliders;\r\n var offset = (sliders[0].getPosition() + sliders[1].getPosition()) / 2 - initialPosition;\r\n var currentPosition = initialPosition;\r\n move.complete = function(e) {\r\n that._dockSelectedArea(e)\r\n };\r\n return move;\r\n\r\n function move(position, e) {\r\n if (position !== currentPosition && position > currentPosition === position > (sliders[0].getPosition() + sliders[1].getPosition()) / 2 - offset) {\r\n that._moveSelectedArea(position + offset, false, e)\r\n }\r\n currentPosition = position\r\n }\r\n },\r\n _dockSelectedArea: function(e) {\r\n var translator = this._params.translator;\r\n var sliders = this._sliders;\r\n sliders[0]._position = translator.to(sliders[0].getValue(), -1);\r\n sliders[1]._position = translator.to(sliders[1].getValue(), 1);\r\n this._applyTotalPosition(true);\r\n this._processSelectionChanged(e)\r\n },\r\n moveSelectedArea: function(screenPosition, e) {\r\n this._moveSelectedArea(screenPosition, true, e);\r\n this._dockSelectedArea(e)\r\n },\r\n _moveSelectedArea: function(screenPosition, isAnimated, e) {\r\n var that = this;\r\n var translator = that._params.translator;\r\n var sliders = that._sliders;\r\n var interval = sliders[1].getPosition() - sliders[0].getPosition();\r\n var startPosition = screenPosition - interval / 2;\r\n var endPosition = screenPosition + interval / 2;\r\n if (startPosition < translator.getScreenRange()[0]) {\r\n startPosition = translator.getScreenRange()[0];\r\n endPosition = startPosition + interval\r\n }\r\n if (endPosition > translator.getScreenRange()[1]) {\r\n endPosition = translator.getScreenRange()[1];\r\n startPosition = endPosition - interval\r\n }\r\n var startValue = selectClosestValue(translator.from(startPosition, -1), that._values);\r\n sliders[0].setDisplayValue(startValue);\r\n sliders[1].setDisplayValue(selectClosestValue(translator.from(translator.to(startValue, -1) + interval, 1), that._values));\r\n sliders[0]._position = startPosition;\r\n sliders[1]._position = endPosition;\r\n that._applyTotalPosition(isAnimated);\r\n if (that._isOnMoving) {\r\n that._processSelectionChanged(e)\r\n }\r\n },\r\n placeSliderAndBeginMoving: function(firstPosition, secondPosition, e) {\r\n var that = this;\r\n var translator = that._params.translator;\r\n var sliders = that._sliders;\r\n var index = firstPosition < secondPosition ? 0 : 1;\r\n var dir = index > 0 ? 1 : -1;\r\n var compare = index > 0 ? isGreater : isLess;\r\n var antiCompare = index > 0 ? isLess : isGreater;\r\n var thresholdPosition;\r\n var positions = [];\r\n var values = [];\r\n values[index] = translator.from(firstPosition, dir);\r\n values[1 - index] = translator.from(secondPosition, -dir);\r\n positions[1 - index] = secondPosition;\r\n if (translator.isValueProlonged) {\r\n if (compare(firstPosition, translator.to(values[index], dir))) {\r\n values[index] = translator.from(firstPosition, -dir)\r\n }\r\n if (compare(secondPosition, translator.to(values[index], -dir))) {\r\n values[1 - index] = values[index]\r\n }\r\n }\r\n if (that._minRange) {\r\n thresholdPosition = translator.to(translator.add(selectClosestValue(values[index], that._values), that._minRange, -dir), -dir);\r\n if (compare(secondPosition, thresholdPosition)) {\r\n values[1 - index] = translator.add(values[index], that._minRange, -dir)\r\n }\r\n thresholdPosition = translator.to(translator.add(translator.getRange()[1 - index], that._minRange, dir), -dir);\r\n if (antiCompare(firstPosition, thresholdPosition)) {\r\n values[1 - index] = translator.getRange()[1 - index];\r\n values[index] = translator.add(values[1 - index], that._minRange, dir);\r\n positions[1 - index] = firstPosition\r\n }\r\n }\r\n values[0] = selectClosestValue(values[0], that._values);\r\n values[1] = selectClosestValue(values[1], that._values);\r\n positions[index] = translator.to(values[index], dir);\r\n sliders[0].setDisplayValue(values[0]);\r\n sliders[1].setDisplayValue(values[1]);\r\n sliders[0]._position = positions[0];\r\n sliders[1]._position = positions[1];\r\n that._applyTotalPosition(true);\r\n if (that._isOnMoving) {\r\n that._processSelectionChanged(e)\r\n }\r\n var handler = that.beginSliderMoving(1 - index, secondPosition);\r\n sliders[1 - index]._sliderGroup.stopAnimation();\r\n that._shutter.stopAnimation();\r\n handler(secondPosition);\r\n return handler\r\n },\r\n beginSliderMoving: function(initialIndex, initialPosition) {\r\n var that = this;\r\n var translator = that._params.translator;\r\n var sliders = that._sliders;\r\n var minPosition = translator.getScreenRange()[0];\r\n var maxPosition = translator.getScreenRange()[1];\r\n var index = initialIndex;\r\n var staticPosition = sliders[1 - index].getPosition();\r\n var currentPosition = initialPosition;\r\n var dir = index > 0 ? 1 : -1;\r\n var compareMin = index > 0 ? isLess : isGreater;\r\n var compareMax = index > 0 ? isGreater : isLess;\r\n var moveOffset = sliders[index].getPosition() - initialPosition;\r\n var swapOffset = compareMin(sliders[index].getPosition(), initialPosition) ? -moveOffset : moveOffset;\r\n move.complete = function(e) {\r\n sliders[index]._setValid(true);\r\n that._dockSelectedArea(e)\r\n };\r\n return move;\r\n\r\n function move(position, e) {\r\n var isValid;\r\n var temp;\r\n var pos;\r\n var slider;\r\n var value;\r\n if (position !== currentPosition) {\r\n if (compareMin(position + swapOffset, staticPosition)) {\r\n isValid = that._allowSlidersSwap;\r\n if (isValid && !translator.isValueProlonged && that._minRange) {\r\n isValid = translator.isValid(translator.add(sliders[1 - index].getValue(), that._minRange, -dir))\r\n }\r\n if (isValid) {\r\n that._changeMovingSlider(index);\r\n index = 1 - index;\r\n dir = -dir;\r\n temp = compareMin;\r\n compareMin = compareMax;\r\n compareMax = temp;\r\n moveOffset = -dir * Math.abs(moveOffset);\r\n swapOffset = -moveOffset\r\n }\r\n }\r\n if (compareMax(position + moveOffset, staticPosition)) {\r\n isValid = true;\r\n slider = sliders[index];\r\n value = sliders[1 - index].getValue();\r\n pos = Math.max(Math.min(position + moveOffset, maxPosition), minPosition);\r\n if (isValid && translator.isValueProlonged) {\r\n isValid = !compareMin(pos, translator.to(value, dir))\r\n }\r\n var invalidStateValue;\r\n if (isValid && that._minRange) {\r\n isValid = !compareMin(pos, translator.to(translator.add(value, that._minRange, dir), dir));\r\n if (!isValid) {\r\n invalidStateValue = translator.add(value, that._minRange, dir)\r\n }\r\n }\r\n if (isValid && that._maxRange) {\r\n isValid = !compareMax(pos, translator.to(translator.add(value, that._maxRange, dir), dir));\r\n if (!isValid) {\r\n invalidStateValue = translator.add(value, that._maxRange, dir)\r\n }\r\n }\r\n slider._setValid(isValid);\r\n slider.setDisplayValue(isValid ? selectClosestValue(translator.from(pos, dir), that._values) : (0, _type.isDefined)(invalidStateValue) ? invalidStateValue : slider.getValue());\r\n slider._position = pos;\r\n that._applyTotalPosition(false);\r\n slider.toForeground();\r\n if (that._isOnMoving) {\r\n that._processSelectionChanged(e)\r\n }\r\n }\r\n }\r\n currentPosition = position\r\n }\r\n },\r\n _changeMovingSlider: function(index) {\r\n var that = this;\r\n var translator = that._params.translator;\r\n var sliders = that._sliders;\r\n var position = sliders[1 - index].getPosition();\r\n var dir = index > 0 ? 1 : -1;\r\n var newValue;\r\n sliders[index].setDisplayValue(selectClosestValue(translator.from(position, dir), that._values));\r\n newValue = translator.from(position, -dir);\r\n if (translator.isValueProlonged) {\r\n newValue = translator.from(position, dir)\r\n } else {\r\n if (that._minRange) {\r\n newValue = translator.add(newValue, that._minRange, -dir)\r\n }\r\n }\r\n sliders[1 - index].setDisplayValue(selectClosestValue(newValue, that._values));\r\n sliders[index]._setValid(true);\r\n sliders[index]._marker._update();\r\n sliders[0]._position = sliders[1]._position = position\r\n },\r\n foregroundSlider: function(index) {\r\n this._sliders[index].toForeground()\r\n }\r\n};\r\n","/**\r\n * DevExtreme (viz/range_selector/slider.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _common = require(\"./common\");\r\nvar _slider_marker = _interopRequireDefault(require(\"./slider_marker\"));\r\nvar _support = require(\"../../core/utils/support\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar animationSettings = _common.utils.animationSettings;\r\nvar SPLITTER_WIDTH = 8;\r\nvar TOUCH_SPLITTER_WIDTH = 20;\r\n\r\nfunction getSliderTrackerWidth(sliderHandleWidth) {\r\n return _support.touchEvents || _support.pointerEvents ? TOUCH_SPLITTER_WIDTH : SPLITTER_WIDTH < sliderHandleWidth ? sliderHandleWidth : SPLITTER_WIDTH\r\n}\r\n\r\nfunction Slider(params, index) {\r\n var that = this;\r\n that._translator = params.translator;\r\n that._sliderGroup = params.renderer.g().attr({\r\n \"class\": \"slider\"\r\n }).append(params.root);\r\n that._line = params.renderer.path(null, \"line\").append(that._sliderGroup);\r\n that._marker = new _slider_marker.default(params.renderer, that._sliderGroup, 1 === index);\r\n that._tracker = params.renderer.rect().attr({\r\n \"class\": \"slider-tracker\",\r\n fill: \"#000000\",\r\n opacity: 1e-4\r\n }).css({\r\n cursor: \"w-resize\"\r\n }).append(params.trackersGroup)\r\n}\r\nSlider.prototype = {\r\n constructor: Slider,\r\n cancelAnimation: function() {\r\n this._sliderGroup.stopAnimation();\r\n this._tracker.stopAnimation()\r\n },\r\n applyPosition: function(isAnimated) {\r\n var that = this;\r\n var slider = that._sliderGroup;\r\n var tracker = that._tracker;\r\n var attrs = {\r\n translateX: that._position\r\n };\r\n that._marker.setPosition(that._position);\r\n if (isAnimated) {\r\n slider.animate(attrs, animationSettings);\r\n tracker.animate(attrs, animationSettings)\r\n } else {\r\n slider.attr(attrs);\r\n tracker.attr(attrs)\r\n }\r\n },\r\n _setValid: function(isValid) {\r\n this._marker.setValid(isValid);\r\n this._line.attr({\r\n stroke: this._colors[Number(isValid)]\r\n })\r\n },\r\n _setText: function(text) {\r\n this._marker.setText(text)\r\n },\r\n update: function(verticalRange, sliderHandleOptions, sliderMarkerOptions) {\r\n var that = this;\r\n that._formatOptions = {\r\n format: sliderMarkerOptions.format,\r\n customizeText: sliderMarkerOptions.customizeText\r\n };\r\n that._marker.applyOptions(sliderMarkerOptions, that._translator.getScreenRange());\r\n that._colors = [sliderMarkerOptions.invalidRangeColor, sliderHandleOptions.color];\r\n that._sliderGroup.attr({\r\n translateY: verticalRange[0]\r\n });\r\n that._line.attr({\r\n \"stroke-width\": sliderHandleOptions.width,\r\n stroke: sliderHandleOptions.color,\r\n \"stroke-opacity\": sliderHandleOptions.opacity,\r\n sharp: \"h\",\r\n points: [0, 0, 0, verticalRange[1] - verticalRange[0]]\r\n });\r\n var trackerWidth = getSliderTrackerWidth(sliderHandleOptions.width);\r\n that._tracker.attr({\r\n x: -trackerWidth / 2,\r\n y: 0,\r\n width: trackerWidth,\r\n height: verticalRange[1] - verticalRange[0],\r\n translateY: verticalRange[0]\r\n })\r\n },\r\n toForeground: function() {\r\n this._sliderGroup.toForeground()\r\n },\r\n getSliderTracker: function() {\r\n return this._tracker\r\n },\r\n getPosition: function() {\r\n return this._position\r\n },\r\n setDisplayValue: function(value) {\r\n this._value = value;\r\n this._setText((0, _common.formatValue)(value, this._formatOptions))\r\n },\r\n setOverlapped: function(isOverlapped) {\r\n this._marker.setOverlapped(isOverlapped)\r\n },\r\n getValue: function() {\r\n return this._value\r\n },\r\n on: function(event, handler) {\r\n this._tracker.on(event, handler);\r\n this._marker.getTracker().on(event, handler)\r\n },\r\n getCloudBorder: function() {\r\n return this._marker.getBorderPosition()\r\n },\r\n dispose: function() {\r\n this._marker.dispose()\r\n }\r\n};\r\nvar _default = Slider;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (viz/range_selector/slider_marker.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _utils = require(\"../core/utils\");\r\nvar _common = require(\"./common\");\r\nvar POINTER_SIZE = _common.consts.pointerSize;\r\nvar SLIDER_MARKER_UPDATE_DELAY = 75;\r\n\r\nfunction SliderMarker(renderer, root, isLeftPointer) {\r\n var that = this;\r\n that._isLeftPointer = isLeftPointer;\r\n that._isOverlapped = false;\r\n that._group = renderer.g().attr({\r\n \"class\": \"slider-marker\"\r\n }).append(root);\r\n that._area = renderer.path(null, \"area\").append(that._group);\r\n that._label = renderer.text().attr({\r\n align: \"left\"\r\n }).append(that._group);\r\n that._tracker = renderer.rect().attr({\r\n \"class\": \"slider-marker-tracker\",\r\n fill: \"#000000\",\r\n opacity: 1e-4\r\n }).css({\r\n cursor: \"pointer\"\r\n }).append(that._group);\r\n that._border = renderer.rect(0, 0, 1, 0)\r\n}\r\nSliderMarker.prototype = {\r\n constructor: SliderMarker,\r\n _getRectSize: function(textSize) {\r\n return {\r\n width: Math.round(2 * this._paddingLeftRight + textSize.width),\r\n height: Math.round(2 * this._paddingTopBottom + textSize.height)\r\n }\r\n },\r\n _getTextSize: function() {\r\n var textSize = this._label.getBBox();\r\n if (!this._textHeight && isFinite(textSize.height)) {\r\n this._textHeight = textSize.height\r\n }\r\n return {\r\n width: textSize.width,\r\n height: this._textHeight,\r\n y: textSize.y\r\n }\r\n },\r\n _getAreaPointsInfo: function(textSize) {\r\n var that = this;\r\n var rectSize = that._getRectSize(textSize);\r\n var rectWidth = rectSize.width;\r\n var rectHeight = rectSize.height;\r\n var rectLeftBorder = -rectWidth;\r\n var rectRightBorder = 0;\r\n var pointerRightPoint = POINTER_SIZE;\r\n var pointerCenterPoint = 0;\r\n var pointerLeftPoint = -POINTER_SIZE;\r\n var position = that._position;\r\n var isLeft = that._isLeftPointer;\r\n var correctCloudBorders = function() {\r\n rectLeftBorder++;\r\n rectRightBorder++;\r\n pointerRightPoint++;\r\n pointerCenterPoint++;\r\n pointerLeftPoint++\r\n };\r\n var checkPointerBorders = function() {\r\n if (pointerRightPoint > rectRightBorder) {\r\n pointerRightPoint = rectRightBorder\r\n } else {\r\n if (pointerLeftPoint < rectLeftBorder) {\r\n pointerLeftPoint = rectLeftBorder\r\n }\r\n }\r\n isLeft && correctCloudBorders()\r\n };\r\n var borderPosition = position;\r\n if (isLeft) {\r\n if (position > that._range[1] - rectWidth) {\r\n rectRightBorder = -position + that._range[1];\r\n rectLeftBorder = rectRightBorder - rectWidth;\r\n checkPointerBorders();\r\n borderPosition += rectLeftBorder\r\n } else {\r\n rectLeftBorder = pointerLeftPoint = 0;\r\n rectRightBorder = rectWidth\r\n }\r\n } else {\r\n if (position - that._range[0] < rectWidth) {\r\n rectLeftBorder = -(position - that._range[0]);\r\n rectRightBorder = rectLeftBorder + rectWidth;\r\n checkPointerBorders();\r\n borderPosition += rectRightBorder\r\n } else {\r\n pointerRightPoint = 0;\r\n correctCloudBorders()\r\n }\r\n }\r\n that._borderPosition = borderPosition;\r\n return {\r\n offset: rectLeftBorder,\r\n isCut: (!isLeft || pointerCenterPoint !== pointerLeftPoint) && (isLeft || pointerCenterPoint !== pointerRightPoint),\r\n points: [rectLeftBorder, 0, rectRightBorder, 0, rectRightBorder, rectHeight, pointerRightPoint, rectHeight, pointerCenterPoint, rectHeight + POINTER_SIZE, pointerLeftPoint, rectHeight, rectLeftBorder, rectHeight]\r\n }\r\n },\r\n _update: function() {\r\n var that = this;\r\n var textSize;\r\n clearTimeout(that._timeout);\r\n that._label.attr({\r\n text: that._text || \"\"\r\n });\r\n var currentTextSize = that._getTextSize();\r\n var rectSize = that._getRectSize(currentTextSize);\r\n textSize = that._textSize || currentTextSize;\r\n textSize = that._textSize = currentTextSize.width > textSize.width || currentTextSize.height > textSize.height ? currentTextSize : textSize;\r\n that._timeout = setTimeout(function() {\r\n updateSliderMarker(currentTextSize, rectSize);\r\n that._textSize = currentTextSize\r\n }, SLIDER_MARKER_UPDATE_DELAY);\r\n\r\n function updateSliderMarker(size, rectSize) {\r\n rectSize = rectSize || that._getRectSize(size);\r\n that._group.attr({\r\n translateY: -(rectSize.height + POINTER_SIZE)\r\n });\r\n var pointsData = that._getAreaPointsInfo(size);\r\n var points = pointsData.points;\r\n var offset = pointsData.offset;\r\n that._area.attr({\r\n points: points\r\n });\r\n that._border.attr({\r\n x: that._isLeftPointer ? points[0] - 1 : points[2],\r\n height: pointsData.isCut ? rectSize.height : rectSize.height + POINTER_SIZE\r\n });\r\n that._tracker.attr({\r\n translateX: offset,\r\n width: rectSize.width,\r\n height: rectSize.height + POINTER_SIZE\r\n });\r\n that._label.attr({\r\n translateX: that._paddingLeftRight + offset,\r\n translateY: rectSize.height / 2 - (size.y + size.height / 2)\r\n })\r\n }\r\n updateSliderMarker(textSize)\r\n },\r\n setText: function(value) {\r\n this._text = value\r\n },\r\n setPosition: function(position) {\r\n this._position = position;\r\n this._update()\r\n },\r\n applyOptions: function(options, screenRange) {\r\n var that = this;\r\n that._range = screenRange;\r\n that._paddingLeftRight = options.paddingLeftRight;\r\n that._paddingTopBottom = options.paddingTopBottom;\r\n that._textHeight = null;\r\n that._colors = [options.invalidRangeColor, options.color];\r\n that._area.attr({\r\n fill: options.color\r\n });\r\n that._border.attr({\r\n fill: options.borderColor\r\n });\r\n that._label.css((0, _utils.patchFontOptions)(options.font));\r\n that._update()\r\n },\r\n getTracker: function() {\r\n return this._tracker\r\n },\r\n setValid: function(isValid) {\r\n this._area.attr({\r\n fill: this._colors[Number(isValid)]\r\n })\r\n },\r\n setColor: function(color) {\r\n this._area.attr({\r\n fill: color\r\n })\r\n },\r\n dispose: function() {\r\n clearTimeout(this._timeout)\r\n },\r\n setOverlapped: function(isOverlapped) {\r\n var that = this;\r\n if (that._isOverlapped !== isOverlapped) {\r\n if (isOverlapped) {\r\n that._border.append(that._group)\r\n } else {\r\n that._isOverlapped && that._border.remove()\r\n }\r\n that._isOverlapped = isOverlapped\r\n }\r\n },\r\n getBorderPosition: function() {\r\n return this._borderPosition\r\n }\r\n};\r\nvar _default = SliderMarker;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (viz/range_selector/tracker.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.Tracker = Tracker;\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _pointer = _interopRequireDefault(require(\"../../events/pointer\"));\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _dom_adapter = _interopRequireDefault(require(\"../../core/dom_adapter\"));\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _support = require(\"../../core/utils/support\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction _defineProperty(obj, key, value) {\r\n if (key in obj) {\r\n Object.defineProperty(obj, key, {\r\n value: value,\r\n enumerable: true,\r\n configurable: true,\r\n writable: true\r\n })\r\n } else {\r\n obj[key] = value\r\n }\r\n return obj\r\n}\r\nvar MIN_MANUAL_SELECTING_WIDTH = 10;\r\nvar window = (0, _window.getWindow)();\r\n\r\nfunction isLeftButtonPressed(event) {\r\n var e = event || window.event;\r\n var originalEvent = e.originalEvent;\r\n var touches = e.touches;\r\n var pointerType = originalEvent ? originalEvent.pointerType : false;\r\n var eventTouches = originalEvent ? originalEvent.touches : false;\r\n var isMSPointerLeftClick = originalEvent && void 0 !== pointerType && (pointerType === (originalEvent.MSPOINTER_TYPE_TOUCH || \"touch\") || pointerType === (originalEvent.MSPOINTER_TYPE_MOUSE || \"mouse\") && 1 === originalEvent.buttons);\r\n var isTouches = touches && touches.length > 0 || eventTouches && eventTouches.length > 0;\r\n return 1 === e.which || isMSPointerLeftClick || isTouches\r\n}\r\n\r\nfunction isMultiTouches(event) {\r\n var originalEvent = event.originalEvent;\r\n var touches = event.touches;\r\n var eventTouches = originalEvent && originalEvent.touches;\r\n return touches && touches.length > 1 || eventTouches && eventTouches.length > 1 || null\r\n}\r\n\r\nfunction preventDefault(e) {\r\n if (!isMultiTouches(e)) {\r\n e.preventDefault()\r\n }\r\n}\r\n\r\nfunction stopPropagationAndPreventDefault(e) {\r\n if (!isMultiTouches(e)) {\r\n e.stopPropagation();\r\n e.preventDefault()\r\n }\r\n}\r\n\r\nfunction isTouchEventArgs(e) {\r\n return e && e.type && 0 === e.type.indexOf(\"touch\")\r\n}\r\n\r\nfunction getEventPageX(event) {\r\n var originalEvent = event.originalEvent;\r\n var result = 0;\r\n if (event.pageX) {\r\n result = event.pageX\r\n } else {\r\n if (originalEvent && originalEvent.pageX) {\r\n result = originalEvent.pageX\r\n }\r\n }\r\n if (originalEvent && originalEvent.touches) {\r\n if (originalEvent.touches.length > 0) {\r\n result = originalEvent.touches[0].pageX\r\n } else {\r\n if (originalEvent.changedTouches.length > 0) {\r\n result = originalEvent.changedTouches[0].pageX\r\n }\r\n }\r\n }\r\n return result\r\n}\r\n\r\nfunction initializeAreaEvents(controller, area, state, getRootOffsetLeft) {\r\n var _docEvents;\r\n var isTouchEvent;\r\n var isActive = false;\r\n var initialPosition;\r\n var movingHandler = null;\r\n var docEvents = (_docEvents = {}, _defineProperty(_docEvents, _pointer.default.move, function(e) {\r\n var position;\r\n var offset;\r\n if (isTouchEvent !== isTouchEventArgs(e)) {\r\n return\r\n }\r\n if (!isLeftButtonPressed(e)) {\r\n cancel(e)\r\n }\r\n if (isActive) {\r\n position = getEventPageX(e);\r\n offset = getRootOffsetLeft();\r\n if (movingHandler) {\r\n movingHandler(position - offset, e)\r\n } else {\r\n if (state.manualRangeSelectionEnabled && Math.abs(initialPosition - position) >= MIN_MANUAL_SELECTING_WIDTH) {\r\n movingHandler = controller.placeSliderAndBeginMoving(initialPosition - offset, position - offset, e)\r\n }\r\n }\r\n }\r\n }), _defineProperty(_docEvents, _pointer.default.up, function(e) {\r\n var position;\r\n if (isActive) {\r\n position = getEventPageX(e);\r\n if (!movingHandler && state.moveSelectedRangeByClick && Math.abs(initialPosition - position) < MIN_MANUAL_SELECTING_WIDTH) {\r\n controller.moveSelectedArea(position - getRootOffsetLeft(), e)\r\n }\r\n cancel(e)\r\n }\r\n }), _docEvents);\r\n\r\n function cancel(e) {\r\n if (isActive) {\r\n isActive = false;\r\n if (movingHandler) {\r\n movingHandler.complete(e);\r\n movingHandler = null\r\n }\r\n }\r\n }\r\n area.on(_pointer.default.down, function(e) {\r\n if (!state.enabled || !isLeftButtonPressed(e) || isActive) {\r\n return\r\n }\r\n isActive = true;\r\n isTouchEvent = isTouchEventArgs(e);\r\n initialPosition = getEventPageX(e)\r\n });\r\n return docEvents\r\n}\r\n\r\nfunction initializeSelectedAreaEvents(controller, area, state, getRootOffsetLeft) {\r\n var _docEvents2;\r\n var isTouchEvent;\r\n var isActive = false;\r\n var movingHandler = null;\r\n var docEvents = (_docEvents2 = {}, _defineProperty(_docEvents2, _pointer.default.move, function(e) {\r\n if (isTouchEvent !== isTouchEventArgs(e)) {\r\n return\r\n }\r\n if (!isLeftButtonPressed(e)) {\r\n cancel(e)\r\n }\r\n if (isActive) {\r\n preventDefault(e);\r\n movingHandler(getEventPageX(e) - getRootOffsetLeft(), e)\r\n }\r\n }), _defineProperty(_docEvents2, _pointer.default.up, cancel), _docEvents2);\r\n\r\n function cancel(e) {\r\n if (isActive) {\r\n isActive = false;\r\n movingHandler.complete(e);\r\n movingHandler = null\r\n }\r\n }\r\n area.on(_pointer.default.down, function(e) {\r\n if (!state.enabled || !isLeftButtonPressed(e) || isActive) {\r\n return\r\n }\r\n isActive = true;\r\n isTouchEvent = isTouchEventArgs(e);\r\n movingHandler = controller.beginSelectedAreaMoving(getEventPageX(e) - getRootOffsetLeft());\r\n stopPropagationAndPreventDefault(e)\r\n });\r\n return docEvents\r\n}\r\n\r\nfunction initializeSliderEvents(controller, sliders, state, getRootOffsetLeft) {\r\n var _docEvents3;\r\n var isTouchEvent;\r\n var isActive = false;\r\n var movingHandler = null;\r\n var docEvents = (_docEvents3 = {}, _defineProperty(_docEvents3, _pointer.default.move, function(e) {\r\n if (isTouchEvent !== isTouchEventArgs(e)) {\r\n return\r\n }\r\n if (!isLeftButtonPressed(e)) {\r\n cancel(e)\r\n }\r\n if (isActive) {\r\n preventDefault(e);\r\n movingHandler(getEventPageX(e) - getRootOffsetLeft(), e)\r\n }\r\n }), _defineProperty(_docEvents3, _pointer.default.up, cancel), _docEvents3);\r\n (0, _iterator.each)(sliders, function(i, slider) {\r\n var _slider$on;\r\n slider.on((_slider$on = {}, _defineProperty(_slider$on, _pointer.default.down, function(e) {\r\n if (!state.enabled || !isLeftButtonPressed(e) || isActive) {\r\n return\r\n }\r\n isActive = true;\r\n isTouchEvent = isTouchEventArgs(e);\r\n movingHandler = controller.beginSliderMoving(i, getEventPageX(e) - getRootOffsetLeft());\r\n stopPropagationAndPreventDefault(e)\r\n }), _defineProperty(_slider$on, _pointer.default.move, function() {\r\n if (!movingHandler) {\r\n controller.foregroundSlider(i)\r\n }\r\n }), _slider$on))\r\n });\r\n\r\n function cancel(e) {\r\n if (isActive) {\r\n isActive = false;\r\n movingHandler.complete(e);\r\n movingHandler = null\r\n }\r\n }\r\n return docEvents\r\n}\r\n\r\nfunction Tracker(params) {\r\n var state = this._state = {};\r\n var targets = params.controller.getTrackerTargets();\r\n if (_support.pointerEvents) {\r\n params.renderer.root.css({\r\n msTouchAction: \"pinch-zoom\"\r\n })\r\n }\r\n this._docEvents = [initializeSelectedAreaEvents(params.controller, targets.selectedArea, state, getRootOffsetLeft), initializeAreaEvents(params.controller, targets.area, state, getRootOffsetLeft), initializeSliderEvents(params.controller, targets.sliders, state, getRootOffsetLeft)];\r\n (0, _iterator.each)(this._docEvents, function(_, events) {\r\n _events_engine.default.on(_dom_adapter.default.getDocument(), events)\r\n });\r\n\r\n function getRootOffsetLeft() {\r\n return params.renderer.getRootOffset().left\r\n }\r\n}\r\nTracker.prototype = {\r\n constructor: Tracker,\r\n dispose: function() {\r\n (0, _iterator.each)(this._docEvents, function(_, events) {\r\n _events_engine.default.off(_dom_adapter.default.getDocument(), events)\r\n })\r\n },\r\n update: function(enabled, behavior) {\r\n var state = this._state;\r\n state.enabled = enabled;\r\n state.moveSelectedRangeByClick = behavior.moveSelectedRangeByClick;\r\n state.manualRangeSelectionEnabled = behavior.manualRangeSelectionEnabled\r\n }\r\n};\r\n","/**\r\n * DevExtreme (viz/range_selector/range_view.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.RangeView = RangeView;\r\n\r\nfunction drawSeriesView(root, seriesDataSource, canvas, isAnimationEnabled) {\r\n var seriesList = seriesDataSource.getSeries();\r\n if (!seriesList.length) {\r\n return\r\n }\r\n var valueAxis = seriesList[0].getValueAxis();\r\n valueAxis.updateCanvas({\r\n top: canvas.top,\r\n bottom: 0,\r\n height: canvas.height + canvas.top\r\n });\r\n seriesDataSource.adjustSeriesDimensions();\r\n var valueRange = seriesDataSource.getBoundRange().val;\r\n valueRange.sortCategories(valueAxis.getCategoriesSorter());\r\n valueAxis.setBusinessRange(valueRange);\r\n seriesList.forEach(function(series) {\r\n series._extGroups.seriesGroup = series._extGroups.labelsGroup = root;\r\n series.draw(isAnimationEnabled)\r\n })\r\n}\r\n\r\nfunction merge(a, b) {\r\n return void 0 !== a ? a : b\r\n}\r\n\r\nfunction RangeView(params) {\r\n this._params = params;\r\n this._clipRect = params.renderer.clipRect();\r\n params.root.attr({\r\n \"clip-path\": this._clipRect.id\r\n })\r\n}\r\nRangeView.prototype = {\r\n constructor: RangeView,\r\n update: function(backgroundOption, backgroundTheme, canvas, isCompactMode, isAnimationEnabled, seriesDataSource) {\r\n var renderer = this._params.renderer;\r\n var root = this._params.root;\r\n var canvasWidth = canvas.width - canvas.left;\r\n var seriesGroup;\r\n backgroundOption = backgroundOption || {};\r\n root.clear();\r\n this._clipRect.attr({\r\n x: canvas.left,\r\n y: canvas.top,\r\n width: canvasWidth,\r\n height: canvas.height\r\n });\r\n if (!isCompactMode) {\r\n if (merge(backgroundOption.visible, backgroundTheme.visible)) {\r\n if (backgroundOption.color) {\r\n renderer.rect(canvas.left, canvas.top, canvasWidth + 1, canvas.height).attr({\r\n fill: merge(backgroundOption.color, backgroundTheme.color),\r\n \"class\": \"dx-range-selector-background\"\r\n }).append(root)\r\n }\r\n if (backgroundOption.image && backgroundOption.image.url) {\r\n renderer.image(canvas.left, canvas.top, canvasWidth + 1, canvas.height, backgroundOption.image.url, merge(backgroundOption.image.location, backgroundTheme.image.location)).append(root)\r\n }\r\n }\r\n if (seriesDataSource && seriesDataSource.isShowChart()) {\r\n seriesGroup = renderer.g().attr({\r\n \"class\": \"dxrs-series-group\"\r\n }).append(root);\r\n drawSeriesView(seriesGroup, seriesDataSource, canvas, isAnimationEnabled)\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (viz/range_selector/series_data_source.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.SeriesDataSource = void 0;\r\nvar _base_series = require(\"../series/base_series\");\r\nvar _series_family = require(\"../core/series_family\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _array = require(\"../../core/utils/array\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _utils = require(\"../core/utils\");\r\nvar _range = require(\"../translators/range\");\r\nvar _data_validator = require(\"../components/data_validator\");\r\nvar _chart_theme_manager = require(\"../components/chart_theme_manager\");\r\nvar createThemeManager = function(chartOptions) {\r\n return new _chart_theme_manager.ThemeManager({\r\n options: chartOptions,\r\n themeSection: \"rangeSelector.chart\",\r\n fontFields: [\"commonSeriesSettings.label.font\"]\r\n })\r\n};\r\nvar processSeriesFamilies = function(series, minBubbleSize, maxBubbleSize, barOptions, negativesAsZeroes) {\r\n var families = [];\r\n var types = [];\r\n (0, _iterator.each)(series, function(i, item) {\r\n if ((0, _array.inArray)(item.type, types) === -1) {\r\n types.push(item.type)\r\n }\r\n });\r\n (0, _iterator.each)(types, function(_, type) {\r\n var family = new _series_family.SeriesFamily({\r\n type: type,\r\n minBubbleSize: minBubbleSize,\r\n maxBubbleSize: maxBubbleSize,\r\n barGroupPadding: barOptions.barGroupPadding,\r\n barGroupWidth: barOptions.barGroupWidth,\r\n negativesAsZeroes: negativesAsZeroes\r\n });\r\n family.add(series);\r\n family.adjustSeriesValues();\r\n families.push(family)\r\n });\r\n return families\r\n};\r\nvar SeriesDataSource = function(options) {\r\n var that = this;\r\n var themeManager = that._themeManager = createThemeManager(options.chart);\r\n themeManager.setTheme(options.chart.theme);\r\n var topIndent = themeManager.getOptions(\"topIndent\");\r\n var bottomIndent = themeManager.getOptions(\"bottomIndent\");\r\n that._indent = {\r\n top: topIndent >= 0 && topIndent < 1 ? topIndent : 0,\r\n bottom: bottomIndent >= 0 && bottomIndent < 1 ? bottomIndent : 0\r\n };\r\n that._valueAxis = themeManager.getOptions(\"valueAxisRangeSelector\") || {};\r\n that._hideChart = false;\r\n that._series = that._calculateSeries(options);\r\n that._seriesFamilies = []\r\n};\r\nexports.SeriesDataSource = SeriesDataSource;\r\nSeriesDataSource.prototype = {\r\n constructor: SeriesDataSource,\r\n _calculateSeries: function(options) {\r\n var that = this;\r\n var series = [];\r\n var particularSeriesOptions;\r\n var seriesTheme;\r\n var data = options.dataSource || [];\r\n var parsedData;\r\n var chartThemeManager = that._themeManager;\r\n var seriesTemplate = chartThemeManager.getOptions(\"seriesTemplate\");\r\n var allSeriesOptions = seriesTemplate ? (0, _utils.processSeriesTemplate)(seriesTemplate, data) : options.chart.series;\r\n var dataSourceField;\r\n var valueAxis = that._valueAxis;\r\n var i;\r\n var newSeries;\r\n var groupsData;\r\n if (options.dataSource && !allSeriesOptions) {\r\n dataSourceField = options.dataSourceField || \"arg\";\r\n allSeriesOptions = {\r\n argumentField: dataSourceField,\r\n valueField: dataSourceField\r\n };\r\n that._hideChart = true\r\n }\r\n allSeriesOptions = Array.isArray(allSeriesOptions) ? allSeriesOptions : allSeriesOptions ? [allSeriesOptions] : [];\r\n for (i = 0; i < allSeriesOptions.length; i++) {\r\n particularSeriesOptions = (0, _extend.extend)(true, {}, allSeriesOptions[i]);\r\n particularSeriesOptions.rotated = false;\r\n seriesTheme = chartThemeManager.getOptions(\"series\", particularSeriesOptions, allSeriesOptions.length);\r\n seriesTheme.argumentField = seriesTheme.argumentField || options.dataSourceField;\r\n if (!seriesTheme.name) {\r\n seriesTheme.name = \"Series \" + (i + 1).toString()\r\n }\r\n if (data && data.length > 0) {\r\n newSeries = new _base_series.Series({\r\n renderer: options.renderer,\r\n argumentAxis: options.argumentAxis,\r\n valueAxis: options.valueAxis,\r\n incidentOccurred: options.incidentOccurred\r\n }, seriesTheme);\r\n series.push(newSeries)\r\n }\r\n }\r\n if (series.length) {\r\n groupsData = {\r\n groups: [{\r\n series: series,\r\n valueAxis: options.valueAxis,\r\n valueOptions: {\r\n type: valueAxis.type,\r\n valueType: dataSourceField ? options.valueType : valueAxis.valueType\r\n }\r\n }],\r\n argumentOptions: {\r\n categories: options.categories,\r\n argumentType: options.valueType,\r\n type: options.axisType\r\n }\r\n };\r\n parsedData = (0, _data_validator.validateData)(data, groupsData, options.incidentOccurred, chartThemeManager.getOptions(\"dataPrepareSettings\"));\r\n that.argCategories = groupsData.categories;\r\n for (i = 0; i < series.length; i++) {\r\n series[i].updateData(parsedData[series[i].getArgumentField()])\r\n }\r\n }\r\n return series\r\n },\r\n createPoints: function() {\r\n if (0 === this._series.length) {\r\n return\r\n }\r\n var series = this._series;\r\n var viewport = new _range.Range;\r\n var axis = series[0].getArgumentAxis();\r\n var themeManager = this._themeManager;\r\n var negativesAsZeroes = themeManager.getOptions(\"negativesAsZeroes\");\r\n var negativesAsZeros = themeManager.getOptions(\"negativesAsZeros\");\r\n series.forEach(function(s) {\r\n viewport.addRange(s.getArgumentRange())\r\n });\r\n axis.getTranslator().updateBusinessRange(viewport);\r\n series.forEach(function(s) {\r\n s.createPoints()\r\n });\r\n this._seriesFamilies = processSeriesFamilies(series, themeManager.getOptions(\"minBubbleSize\"), themeManager.getOptions(\"maxBubbleSize\"), {\r\n barGroupPadding: themeManager.getOptions(\"barGroupPadding\"),\r\n barGroupWidth: themeManager.getOptions(\"barGroupWidth\")\r\n }, (0, _type.isDefined)(negativesAsZeroes) ? negativesAsZeroes : negativesAsZeros)\r\n },\r\n adjustSeriesDimensions: function() {\r\n (0, _iterator.each)(this._seriesFamilies, function(_, family) {\r\n family.adjustSeriesDimensions()\r\n })\r\n },\r\n getBoundRange: function() {\r\n var that = this;\r\n var rangeData;\r\n var valueAxis = that._valueAxis;\r\n var valRange = new _range.Range({\r\n min: valueAxis.min,\r\n minVisible: valueAxis.min,\r\n max: valueAxis.max,\r\n maxVisible: valueAxis.max,\r\n axisType: valueAxis.type,\r\n base: valueAxis.logarithmBase\r\n });\r\n var argRange = new _range.Range({});\r\n var rangeYSize;\r\n var rangeVisibleSizeY;\r\n var minIndent;\r\n var maxIndent;\r\n (0, _iterator.each)(that._series, function(_, series) {\r\n rangeData = series.getRangeData();\r\n valRange.addRange(rangeData.val);\r\n argRange.addRange(rangeData.arg)\r\n });\r\n if (!valRange.isEmpty() && !argRange.isEmpty()) {\r\n minIndent = valueAxis.inverted ? that._indent.top : that._indent.bottom;\r\n maxIndent = valueAxis.inverted ? that._indent.bottom : that._indent.top;\r\n rangeYSize = valRange.max - valRange.min;\r\n rangeVisibleSizeY = ((0, _type.isNumeric)(valRange.maxVisible) ? valRange.maxVisible : valRange.max) - ((0, _type.isNumeric)(valRange.minVisible) ? valRange.minVisible : valRange.min);\r\n if ((0, _type.isDate)(valRange.min)) {\r\n valRange.min = new Date(valRange.min.valueOf() - rangeYSize * minIndent)\r\n } else {\r\n valRange.min -= rangeYSize * minIndent\r\n }\r\n if ((0, _type.isDate)(valRange.max)) {\r\n valRange.max = new Date(valRange.max.valueOf() + rangeYSize * maxIndent)\r\n } else {\r\n valRange.max += rangeYSize * maxIndent\r\n }\r\n if ((0, _type.isNumeric)(rangeVisibleSizeY)) {\r\n valRange.maxVisible = valRange.maxVisible ? valRange.maxVisible + rangeVisibleSizeY * maxIndent : void 0;\r\n valRange.minVisible = valRange.minVisible ? valRange.minVisible - rangeVisibleSizeY * minIndent : void 0\r\n }\r\n valRange.invert = valueAxis.inverted\r\n }\r\n return {\r\n arg: argRange,\r\n val: valRange\r\n }\r\n },\r\n getMarginOptions: function(canvas) {\r\n var bubbleSize = Math.min(canvas.width, canvas.height) * this._themeManager.getOptions(\"maxBubbleSize\");\r\n return this._series.reduce(function(marginOptions, series) {\r\n var seriesOptions = series.getMarginOptions();\r\n if (true === seriesOptions.processBubbleSize) {\r\n seriesOptions.size = bubbleSize\r\n }\r\n return (0, _utils.mergeMarginOptions)(marginOptions, seriesOptions)\r\n }, {})\r\n },\r\n getSeries: function() {\r\n return this._series\r\n },\r\n isEmpty: function() {\r\n return 0 === this.getSeries().length\r\n },\r\n isShowChart: function() {\r\n return !this._hideChart\r\n },\r\n getCalculatedValueType: function() {\r\n var series = this._series[0];\r\n return null === series || void 0 === series ? void 0 : series.argumentType\r\n },\r\n getThemeManager: function() {\r\n return this._themeManager\r\n }\r\n};\r\n","/**\r\n * DevExtreme (viz/range_selector/common.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.formatValue = exports.consts = exports.utils = exports.HEIGHT_COMPACT_MODE = void 0;\r\nvar _smart_formatter = require(\"../axes/smart_formatter\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar HEIGHT_COMPACT_MODE = 24;\r\nexports.HEIGHT_COMPACT_MODE = HEIGHT_COMPACT_MODE;\r\nvar POINTER_SIZE = 4;\r\nvar EMPTY_SLIDER_MARKER_TEXT = \". . .\";\r\nvar utils = {\r\n trackerSettings: {\r\n fill: \"grey\",\r\n stroke: \"grey\",\r\n opacity: 1e-4\r\n },\r\n animationSettings: {\r\n duration: 250\r\n }\r\n};\r\nexports.utils = utils;\r\nvar consts = {\r\n emptySliderMarkerText: EMPTY_SLIDER_MARKER_TEXT,\r\n pointerSize: POINTER_SIZE\r\n};\r\nexports.consts = consts;\r\nvar formatValue = function(value, formatOptions, tickIntervalsInfo, valueType, type, logarithmBase) {\r\n var formatObject = {\r\n value: value,\r\n valueText: (0, _smart_formatter.smartFormatter)(value, {\r\n labelOptions: formatOptions,\r\n ticks: tickIntervalsInfo ? tickIntervalsInfo.ticks : [],\r\n tickInterval: tickIntervalsInfo ? tickIntervalsInfo.tickInterval : void 0,\r\n dataType: valueType,\r\n type: type,\r\n logarithmBase: logarithmBase\r\n })\r\n };\r\n return String((0, _type.isFunction)(formatOptions.customizeText) ? formatOptions.customizeText.call(formatObject, formatObject) : formatObject.valueText)\r\n};\r\nexports.formatValue = formatValue;\r\n"],"sourceRoot":""}