").addClass("dx-filemanager-dialog-popup").appendTo(this.$element());
if (options.popupCssClass) {
$popup.addClass(options.popupCssClass)
}
var popupOptions = {
showTitle: true,
title: options.title,
visible: false,
closeOnOutsideClick: true,
contentTemplate: this._createContentTemplate.bind(this),
toolbarItems: [{
widget: "dxButton",
toolbar: "bottom",
location: "after",
options: {
text: options.buttonText,
onClick: this._applyDialogChanges.bind(this)
}
}, {
widget: "dxButton",
toolbar: "bottom",
location: "after",
options: {
text: _message.default.format("dxFileManager-dialogButtonCancel"),
onClick: this._closeDialog.bind(this)
}
}],
onInitialized: function(_ref) {
var component = _ref.component;
component.registerKeyHandler("enter", _this._applyDialogChanges.bind(_this))
},
onHidden: this._onPopupHidden.bind(this),
onShown: this._onPopupShown.bind(this)
};
if ((0, _type.isDefined)(options.height)) {
popupOptions.height = options.height
}
if ((0, _type.isDefined)(options.maxHeight)) {
popupOptions.maxHeight = options.maxHeight
}
this._popup = this._createComponent($popup, _popup.default, popupOptions)
};
_proto.show = function() {
this._dialogResult = null;
this._popup.show()
};
_proto._getDialogOptions = function() {
return {
title: "Title",
buttonText: "ButtonText",
contentCssClass: "",
popupCssClass: ""
}
};
_proto._createContentTemplate = function(element) {
this._$contentElement = (0, _renderer.default)("
").appendTo(element).addClass("dx-filemanager-dialog");
var cssClass = this._getDialogOptions().contentCssClass;
if (cssClass) {
this._$contentElement.addClass(cssClass)
}
};
_proto._getDialogResult = function() {
return null
};
_proto._applyDialogChanges = function() {
var result = this._getDialogResult();
if (result) {
this._dialogResult = result;
this._closeDialog()
}
};
_proto._closeDialog = function() {
this._popup.hide()
};
_proto._onPopupHidden = function() {
this._onClosedAction({
dialogResult: this._dialogResult
})
};
_proto._onPopupShown = function() {};
_proto._createOnClosedAction = function() {
this._onClosedAction = this._createActionByOption("onClosed")
};
_proto._setTitle = function(newTitle) {
this._popup.option("title", newTitle)
};
_proto._setButtonText = function(newText) {
this._popup.option("toolbarItems[0].options.text", newText)
};
_proto._getDefaultOptions = function() {
return (0, _extend.extend)(_Widget.prototype._getDefaultOptions.call(this), {
onClosed: null
})
};
_proto._optionChanged = function(args) {
var name = args.name;
switch (name) {
case "onClosed":
this._createOnPathChangedAction();
break;
default:
_Widget.prototype._optionChanged.call(this, args)
}
};
return FileManagerDialogBase
}(_ui.default);
var _default = FileManagerDialogBase;
exports.default = _default;
module.exports = exports.default;
module.exports.default = exports.default
},
/*!***********************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/ui/diagram/diagram.bar.js ***!
\***********************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
exports.default = void 0;
var _diagram = __webpack_require__( /*! ./diagram.importer */ 104);
var DiagramBar = function() {
function DiagramBar(owner) {
var _getDiagram = (0, _diagram.getDiagram)(),
EventDispatcher = _getDiagram.EventDispatcher;
this.onChanged = new EventDispatcher;
this._owner = owner
}
var _proto = DiagramBar.prototype;
_proto.raiseBarCommandExecuted = function(key, parameter) {
this.onChanged.raise("notifyBarCommandExecuted", parseInt(key), parameter)
};
_proto.getCommandKeys = function() {
throw "Not Implemented"
};
_proto.setItemValue = function(key, value) {};
_proto.setItemEnabled = function(key, enabled) {};
_proto.setItemVisible = function(key, enabled) {};
_proto.setEnabled = function(enabled) {};
_proto.setItemSubItems = function(key, items) {};
_proto.isVisible = function() {
return true
};
_proto._getKeys = function(items) {
var _this = this;
var keys = items.reduce((function(commands, item) {
if (void 0 !== item.command) {
commands.push(item.command)
}
if (item.items) {
commands = commands.concat(_this._getKeys(item.items))
}
return commands
}), []);
return keys
};
return DiagramBar
}();
var _default = DiagramBar;
exports.default = _default;
module.exports = exports.default;
module.exports.default = exports.default
},
/*!***********************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/viz/export.js ***!
\***********************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
function _typeof(obj) {
if ("function" === typeof Symbol && "symbol" === typeof Symbol.iterator) {
_typeof = function(obj) {
return typeof obj
}
} else {
_typeof = function(obj) {
return obj && "function" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj
}
}
return _typeof(obj)
}
exports.default = void 0;
var Export = function(obj, nodeInterop) {
if (!nodeInterop && obj && obj.__esModule) {
return obj
}
if (null === obj || "object" !== _typeof(obj) && "function" !== typeof obj) {
return {
default: obj
}
}
var cache = _getRequireWildcardCache(nodeInterop);
if (cache && cache.has(obj)) {
return cache.get(obj)
}
var newObj = {};
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
for (var key in obj) {
if ("default" !== key && Object.prototype.hasOwnProperty.call(obj, key)) {
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
if (desc && (desc.get || desc.set)) {
Object.defineProperty(newObj, key, desc)
} else {
newObj[key] = obj[key]
}
}
}
newObj.default = obj;
if (cache) {
cache.set(obj, newObj)
}
return newObj
}(__webpack_require__( /*! ./core/export */ 113));
function _getRequireWildcardCache(nodeInterop) {
if ("function" !== typeof WeakMap) {
return null
}
var cacheBabelInterop = new WeakMap;
var cacheNodeInterop = new WeakMap;
return (_getRequireWildcardCache = function(nodeInterop) {
return nodeInterop ? cacheNodeInterop : cacheBabelInterop
})(nodeInterop)
}
var _default = Export;
exports.default = _default;
module.exports = exports.default;
module.exports.default = exports.default
},
/*!********************************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/viz/chart_components/base_chart.js ***!
\********************************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
function _typeof(obj) {
if ("function" === typeof Symbol && "symbol" === typeof Symbol.iterator) {
_typeof = function(obj) {
return typeof obj
}
} else {
_typeof = function(obj) {
return obj && "function" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj
}
}
return _typeof(obj)
}
exports.BaseChart = exports.overlapping = void 0;
var _common = __webpack_require__( /*! ../../core/utils/common */ 4);
var _events_engine = _interopRequireDefault(__webpack_require__( /*! ../../events/core/events_engine */ 5));
var _type = __webpack_require__( /*! ../../core/utils/type */ 1);
var _iterator = __webpack_require__( /*! ../../core/utils/iterator */ 3);
var _extend = __webpack_require__( /*! ../../core/utils/extend */ 0);
var _array = __webpack_require__( /*! ../../core/utils/array */ 12);
var _index = __webpack_require__( /*! ../../events/utils/index */ 9);
var _base_widget = _interopRequireDefault(__webpack_require__( /*! ../core/base_widget */ 118));
var _legend = __webpack_require__( /*! ../components/legend */ 228);
var _data_validator = __webpack_require__( /*! ../components/data_validator */ 322);
var _base_series = __webpack_require__( /*! ../series/base_series */ 324);
var _chart_theme_manager = __webpack_require__( /*! ../components/chart_theme_manager */ 499);
var _layout_manager = __webpack_require__( /*! ./layout_manager */ 500);
var trackerModule = function(obj, nodeInterop) {
if (!nodeInterop && obj && obj.__esModule) {
return obj
}
if (null === obj || "object" !== _typeof(obj) && "function" !== typeof obj) {
return {
default: obj
}
}
var cache = _getRequireWildcardCache(nodeInterop);
if (cache && cache.has(obj)) {
return cache.get(obj)
}
var newObj = {};
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
for (var key in obj) {
if ("default" !== key && Object.prototype.hasOwnProperty.call(obj, key)) {
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
if (desc && (desc.get || desc.set)) {
Object.defineProperty(newObj, key, desc)
} else {
newObj[key] = obj[key]
}
}
}
newObj.default = obj;
if (cache) {
cache.set(obj, newObj)
}
return newObj
}(__webpack_require__( /*! ./tracker */ 1017));
var _utils = __webpack_require__( /*! ../core/utils */ 14);
var _export = __webpack_require__( /*! ../core/export */ 113);
var _title = __webpack_require__( /*! ../core/title */ 129);
var _data_source = __webpack_require__( /*! ../core/data_source */ 170);
var _tooltip = __webpack_require__( /*! ../core/tooltip */ 131);
var _loading_indicator = __webpack_require__( /*! ../core/loading_indicator */ 151);
function _getRequireWildcardCache(nodeInterop) {
if ("function" !== typeof WeakMap) {
return null
}
var cacheBabelInterop = new WeakMap;
var cacheNodeInterop = new WeakMap;
return (_getRequireWildcardCache = function(nodeInterop) {
return nodeInterop ? cacheNodeInterop : cacheBabelInterop
})(nodeInterop)
}
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
default: obj
}
}
var _isArray = Array.isArray;
var ACTIONS_BY_PRIORITY = ["_reinit", "_updateDataSource", "_dataInit", "_forceRender", "_resize"];
function checkHeightRollingStock(rollingStocks, stubCanvas) {
var canvasSize = stubCanvas.end - stubCanvas.start;
var size = 0;
rollingStocks.forEach((function(rollingStock) {
size += rollingStock.getBoundingRect().width
}));
while (canvasSize < size) {
size -= findAndKillSmallValue(rollingStocks)
}
}
function findAndKillSmallValue(rollingStocks) {
var smallestObject = rollingStocks.reduce((function(prev, rollingStock, index) {
if (!rollingStock) {
return prev
}
var value = rollingStock.value();
return value < prev.value ? {
value: value,
rollingStock: rollingStock,
index: index
} : prev
}), {
rollingStock: void 0,
value: 1 / 0,
index: void 0
});
smallestObject.rollingStock.getLabels()[0].draw(false);
var width = smallestObject.rollingStock.getBoundingRect().width;
rollingStocks[smallestObject.index] = null;
return width
}
function checkStackOverlap(rollingStocks) {
var i;
var j;
var iLength;
var jLength;
var overlap = false;
for (i = 0, iLength = rollingStocks.length - 1; i < iLength; i++) {
for (j = i + 1, jLength = rollingStocks.length; j < jLength; j++) {
if (i !== j && checkStacksOverlapping(rollingStocks[i], rollingStocks[j], true)) {
overlap = true;
break
}
}
if (overlap) {
break
}
}
return overlap
}
function checkStacksOverlapping(firstRolling, secondRolling, inTwoSides) {
if (!firstRolling || !secondRolling) {
return
}
var firstRect = firstRolling.getBoundingRect();
var secondRect = secondRolling.getBoundingRect();
var oppositeOverlapping = inTwoSides ? firstRect.oppositeStart <= secondRect.oppositeStart && firstRect.oppositeEnd > secondRect.oppositeStart || secondRect.oppositeStart <= firstRect.oppositeStart && secondRect.oppositeEnd > firstRect.oppositeStart : true;
return firstRect.end > secondRect.start && oppositeOverlapping
}
function prepareOverlapStacks(rollingStocks) {
var i;
var currentRollingStock;
var root;
for (i = 0; i < rollingStocks.length - 1; i++) {
currentRollingStock = root || rollingStocks[i];
if (checkStacksOverlapping(currentRollingStock, rollingStocks[i + 1])) {
currentRollingStock.toChain(rollingStocks[i + 1]);
rollingStocks[i + 1] = null;
root = currentRollingStock
} else {
root = rollingStocks[i + 1] || currentRollingStock
}
}
}
function moveRollingStock(rollingStocks, canvas) {
var i;
var j;
var currentRollingStock;
var nextRollingStock;
var currentBBox;
var nextBBox;
for (i = 0; i < rollingStocks.length; i++) {
currentRollingStock = rollingStocks[i];
if (rollingStocksIsOut(currentRollingStock, canvas)) {
currentBBox = currentRollingStock.getBoundingRect();
for (j = i + 1; j < rollingStocks.length; j++) {
nextRollingStock = rollingStocks[j];
if (!nextRollingStock) {
continue
}
nextBBox = nextRollingStock.getBoundingRect();
if (nextBBox.end > currentBBox.start - (currentBBox.end - canvas.end)) {
nextRollingStock.toChain(currentRollingStock);
rollingStocks[i] = currentRollingStock = null;
break
}
}
}
currentRollingStock && currentRollingStock.setRollingStockInCanvas(canvas)
}
}
function rollingStocksIsOut(rollingStock, canvas) {
return rollingStock && rollingStock.getBoundingRect().end > canvas.end
}
function RollingStock(label, isRotated, shiftFunction) {
var bBox = label.getBoundingRect();
var x = bBox.x;
var y = bBox.y;
var endX = bBox.x + bBox.width;
var endY = bBox.y + bBox.height;
this.labels = [label];
this.shiftFunction = shiftFunction;
this._bBox = {
start: isRotated ? x : y,
width: isRotated ? bBox.width : bBox.height,
end: isRotated ? endX : endY,
oppositeStart: isRotated ? y : x,
oppositeEnd: isRotated ? endY : endX
};
this._initialPosition = isRotated ? bBox.x : bBox.y;
return this
}
RollingStock.prototype = {
toChain: function(nextRollingStock) {
var nextRollingStockBBox = nextRollingStock.getBoundingRect();
nextRollingStock.shift(nextRollingStockBBox.start - this._bBox.end);
this._changeBoxWidth(nextRollingStockBBox.width);
this.labels = this.labels.concat(nextRollingStock.labels)
},
getBoundingRect: function() {
return this._bBox
},
shift: function(shiftLength) {
var shiftFunction = this.shiftFunction;
(0, _iterator.each)(this.labels, (function(index, label) {
var bBox = label.getBoundingRect();
var coords = shiftFunction(bBox, shiftLength);
if (!label.hideInsideLabel(coords)) {
label.shift(coords.x, coords.y)
}
}));
this._bBox.end -= shiftLength;
this._bBox.start -= shiftLength
},
setRollingStockInCanvas: function(canvas) {
if (this._bBox.end > canvas.end) {
this.shift(this._bBox.end - canvas.end)
}
},
getLabels: function() {
return this.labels
},
value: function() {
return this.labels[0].getData().value
},
getInitialPosition: function() {
return this._initialPosition
},
_changeBoxWidth: function(width) {
this._bBox.end += width;
this._bBox.width += width
}
};
var overlapping = {
resolveLabelOverlappingInOneDirection: function(points, canvas, isRotated, shiftFunction) {
var customSorting = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : function() {
return 0
};
var rollingStocks = [];
var stubCanvas = {
start: isRotated ? canvas.left : canvas.top,
end: isRotated ? canvas.width - canvas.right : canvas.height - canvas.bottom
};
var hasStackedSeries = false;
points.forEach((function(p) {
if (!p) {
return
}
hasStackedSeries = hasStackedSeries || p.series.isStackedSeries() || p.series.isFullStackedSeries();
p.getLabels().forEach((function(l) {
l.isVisible() && rollingStocks.push(new RollingStock(l, isRotated, shiftFunction))
}))
}));
if (hasStackedSeries) {
!isRotated && rollingStocks.reverse()
} else {
var rollingStocksTmp = rollingStocks.slice();
rollingStocks.sort((function(a, b) {
return customSorting(a, b) || a.getInitialPosition() - b.getInitialPosition() || rollingStocksTmp.indexOf(a) - rollingStocksTmp.indexOf(b)
}))
}
if (!checkStackOverlap(rollingStocks)) {
return false
}
checkHeightRollingStock(rollingStocks, stubCanvas);
prepareOverlapStacks(rollingStocks);
rollingStocks.reverse();
moveRollingStock(rollingStocks, stubCanvas);
return true
}
};
exports.overlapping = overlapping;
var BaseChart = _base_widget.default.inherit({
_eventsMap: {
onSeriesClick: {
name: "seriesClick"
},
onPointClick: {
name: "pointClick"
},
onArgumentAxisClick: {
name: "argumentAxisClick"
},
onLegendClick: {
name: "legendClick"
},
onSeriesSelectionChanged: {
name: "seriesSelectionChanged"
},
onPointSelectionChanged: {
name: "pointSelectionChanged"
},
onSeriesHoverChanged: {
name: "seriesHoverChanged"
},
onPointHoverChanged: {
name: "pointHoverChanged"
},
onDone: {
name: "done"
},
onZoomStart: {
name: "zoomStart"
},
onZoomEnd: {
name: "zoomEnd"
}
},
_fontFields: ["legend.font", "legend.title.font", "legend.title.subtitle.font", "commonSeriesSettings.label.font"],
_rootClassPrefix: "dxc",
_rootClass: "dxc-chart",
_initialChanges: ["INIT"],
_themeDependentChanges: ["REFRESH_SERIES_REINIT"],
_getThemeManagerOptions: function() {
var themeOptions = this.callBase.apply(this, arguments);
themeOptions.options = this.option();
return themeOptions
},
_createThemeManager: function() {
var chartOption = this.option();
var themeManager = new _chart_theme_manager.ThemeManager(this._getThemeManagerOptions());
themeManager.setTheme(chartOption.theme, chartOption.rtlEnabled);
return themeManager
},
_initCore: function() {
this._canvasClipRect = this._renderer.clipRect();
this._createHtmlStructure();
this._createLegend();
this._createTracker();
this._needHandleRenderComplete = true;
this.layoutManager = new _layout_manager.LayoutManager;
this._createScrollBar();
_events_engine.default.on(this._$element, "contextmenu", (function(event) {
if ((0, _index.isTouchEvent)(event) || (0, _index.isPointerEvent)(event)) {
event.preventDefault()
}
}));
_events_engine.default.on(this._$element, "MSHoldVisual", (function(event) {
event.preventDefault()
}))
},
_getLayoutItems: _common.noop,
_layoutManagerOptions: function() {
return this._themeManager.getOptions("adaptiveLayout")
},
_reinit: function() {
(0, _utils.setCanvasValues)(this._canvas);
this._reinitAxes();
this._requestChange(["DATA_SOURCE", "DATA_INIT", "CORRECT_AXIS", "FULL_RENDER"])
},
_correctAxes: _common.noop,
_createHtmlStructure: function() {
var that = this;
var renderer = that._renderer;
var root = renderer.root;
var createConstantLinesGroup = function() {
return renderer.g().attr({
class: "dxc-constant-lines-group"
}).linkOn(root, "constant-lines")
};
that._constantLinesGroup = {
dispose: function() {
this.under.dispose();
this.above.dispose()
},
linkOff: function() {
this.under.linkOff();
this.above.linkOff()
},
clear: function() {
this.under.linkRemove().clear();
this.above.linkRemove().clear()
},
linkAppend: function() {
this.under.linkAppend();
this.above.linkAppend()
}
};
that._labelsAxesGroup = renderer.g().attr({
class: "dxc-elements-axes-group"
});
var appendLabelsAxesGroup = function() {
that._labelsAxesGroup.linkOn(root, "elements")
};
that._backgroundRect = renderer.rect().attr({
fill: "gray",
opacity: 1e-4
}).append(root);
that._panesBackgroundGroup = renderer.g().attr({
class: "dxc-background"
}).append(root);
that._stripsGroup = renderer.g().attr({
class: "dxc-strips-group"
}).linkOn(root, "strips");
that._gridGroup = renderer.g().attr({
class: "dxc-grids-group"
}).linkOn(root, "grids");
that._panesBorderGroup = renderer.g().attr({
class: "dxc-border"
}).linkOn(root, "border");
that._axesGroup = renderer.g().attr({
class: "dxc-axes-group"
}).linkOn(root, "axes");
that._executeAppendBeforeSeries(appendLabelsAxesGroup);
that._stripLabelAxesGroup = renderer.g().attr({
class: "dxc-strips-labels-group"
}).linkOn(root, "strips-labels");
that._constantLinesGroup.under = createConstantLinesGroup();
that._seriesGroup = renderer.g().attr({
class: "dxc-series-group"
}).linkOn(root, "series");
that._executeAppendAfterSeries(appendLabelsAxesGroup);
that._constantLinesGroup.above = createConstantLinesGroup();
that._scaleBreaksGroup = renderer.g().attr({
class: "dxc-scale-breaks"
}).linkOn(root, "scale-breaks");
that._labelsGroup = renderer.g().attr({
class: "dxc-labels-group"
}).linkOn(root, "labels");
that._crosshairCursorGroup = renderer.g().attr({
class: "dxc-crosshair-cursor"
}).linkOn(root, "crosshair");
that._legendGroup = renderer.g().attr({
class: "dxc-legend",
"clip-path": that._getCanvasClipRectID()
}).linkOn(root, "legend").linkAppend(root).enableLinks();
that._scrollBarGroup = renderer.g().attr({
class: "dxc-scroll-bar"
}).linkOn(root, "scroll-bar")
},
_executeAppendBeforeSeries: function() {},
_executeAppendAfterSeries: function() {},
_disposeObjectsInArray: function(propName, fieldNames) {
(0, _iterator.each)(this[propName] || [], (function(_, item) {
if (fieldNames && item) {
(0, _iterator.each)(fieldNames, (function(_, field) {
item[field] && item[field].dispose()
}))
} else {
item && item.dispose()
}
}));
this[propName] = null
},
_disposeCore: function() {
var that = this;
var disposeObject = function(propName) {
if (that[propName]) {
that[propName].dispose();
that[propName] = null
}
};
var unlinkGroup = function(name) {
that[name].linkOff()
};
var disposeObjectsInArray = this._disposeObjectsInArray;
that._renderer.stopAllAnimations();
disposeObjectsInArray.call(that, "series");
disposeObject("_tracker");
disposeObject("_crosshair");
that.layoutManager = that._userOptions = that._canvas = that._groupsData = null;
unlinkGroup("_stripsGroup");
unlinkGroup("_gridGroup");
unlinkGroup("_axesGroup");
unlinkGroup("_constantLinesGroup");
unlinkGroup("_stripLabelAxesGroup");
unlinkGroup("_panesBorderGroup");
unlinkGroup("_seriesGroup");
unlinkGroup("_labelsGroup");
unlinkGroup("_crosshairCursorGroup");
unlinkGroup("_legendGroup");
unlinkGroup("_scrollBarGroup");
unlinkGroup("_scaleBreaksGroup");
disposeObject("_canvasClipRect");
disposeObject("_panesBackgroundGroup");
disposeObject("_backgroundRect");
disposeObject("_stripsGroup");
disposeObject("_gridGroup");
disposeObject("_axesGroup");
disposeObject("_constantLinesGroup");
disposeObject("_stripLabelAxesGroup");
disposeObject("_panesBorderGroup");
disposeObject("_seriesGroup");
disposeObject("_labelsGroup");
disposeObject("_crosshairCursorGroup");
disposeObject("_legendGroup");
disposeObject("_scrollBarGroup");
disposeObject("_scaleBreaksGroup")
},
_getAnimationOptions: function() {
return this._themeManager.getOptions("animation")
},
_getDefaultSize: function() {
return {
width: 400,
height: 400
}
},
_getOption: function(name) {
return this._themeManager.getOptions(name)
},
_applySize: function(rect) {
this._rect = rect.slice();
if (!this._changes.has("FULL_RENDER")) {
this._processRefreshData("_resize")
}
},
_resize: function() {
this._doRender(this.__renderOptions || {
animate: false,
isResize: true
})
},
_trackerType: "ChartTracker",
_createTracker: function() {
this._tracker = new trackerModule[this._trackerType]({
seriesGroup: this._seriesGroup,
renderer: this._renderer,
tooltip: this._tooltip,
legend: this._legend,
eventTrigger: this._eventTrigger
})
},
_getTrackerSettings: function() {
return (0, _extend.extend)({
chart: this
}, this._getSelectionModes())
},
_getSelectionModes: function() {
var themeManager = this._themeManager;
return {
seriesSelectionMode: themeManager.getOptions("seriesSelectionMode"),
pointSelectionMode: themeManager.getOptions("pointSelectionMode")
}
},
_updateTracker: function(trackerCanvases) {
this._tracker.update(this._getTrackerSettings());
this._tracker.setCanvases({
left: 0,
right: this._canvas.width,
top: 0,
bottom: this._canvas.height
}, trackerCanvases)
},
_createCanvasFromRect: function(rect) {
var currentCanvas = this._canvas;
return (0, _utils.setCanvasValues)({
left: rect[0],
top: rect[1],
right: currentCanvas.width - rect[2],
bottom: currentCanvas.height - rect[3],
width: currentCanvas.width,
height: currentCanvas.height
})
},
_doRender: function(_options) {
if (0 === this._canvas.width && 0 === this._canvas.height) {
return
}
this._resetIsReady();
var drawOptions = this._prepareDrawOptions(_options);
var recreateCanvas = drawOptions.recreateCanvas;
this._preserveOriginalCanvas();
if (recreateCanvas) {
this.__currentCanvas = this._canvas
} else {
this._canvas = this.__currentCanvas
}
recreateCanvas && this._updateCanvasClipRect(this._canvas);
this._canvas = this._createCanvasFromRect(this._rect);
this._renderer.stopAllAnimations(true);
this._cleanGroups();
var startTime = new Date;
this._renderElements(drawOptions);
this._lastRenderingTime = new Date - startTime
},
_preserveOriginalCanvas: function() {
this.__originalCanvas = this._canvas;
this._canvas = (0, _extend.extend)({}, this._canvas)
},
_layoutAxes: _common.noop,
_renderElements: function(drawOptions) {
var that = this;
var preparedOptions = that._prepareToRender(drawOptions);
var isRotated = that._isRotated();
var isLegendInside = that._isLegendInside();
var trackerCanvases = [];
(0, _extend.extend)({}, that._canvas);
var argBusinessRange;
var zoomMinArg;
var zoomMaxArg;
that._renderer.lock();
if (drawOptions.drawLegend && that._legend) {
that._legendGroup.linkAppend()
}
that.layoutManager.setOptions(that._layoutManagerOptions());
var layoutTargets = that._getLayoutTargets();
this._layoutAxes((function(needSpace) {
var axisDrawOptions = needSpace ? (0, _extend.extend)({}, drawOptions, {
animate: false,
recreateCanvas: true
}) : drawOptions;
var canvas = that._renderAxes(axisDrawOptions, preparedOptions);
that._shrinkAxes(needSpace, canvas)
}));
that._applyClipRects(preparedOptions);
that._appendSeriesGroups();
that._createCrosshairCursor();
layoutTargets.forEach((function(_ref) {
var canvas = _ref.canvas;
trackerCanvases.push({
left: canvas.left,
right: canvas.width - canvas.right,
top: canvas.top,
bottom: canvas.height - canvas.bottom
})
}));
if (that._scrollBar) {
argBusinessRange = that._argumentAxes[0].getTranslator().getBusinessRange();
if ("discrete" === argBusinessRange.axisType && argBusinessRange.categories && argBusinessRange.categories.length <= 1 || "discrete" !== argBusinessRange.axisType && argBusinessRange.min === argBusinessRange.max) {
zoomMinArg = zoomMaxArg = void 0
} else {
zoomMinArg = argBusinessRange.minVisible;
zoomMaxArg = argBusinessRange.maxVisible
}
that._scrollBar.init(argBusinessRange, !that._argumentAxes[0].getOptions().valueMarginsEnabled).setPosition(zoomMinArg, zoomMaxArg)
}
that._updateTracker(trackerCanvases);
that._updateLegendPosition(drawOptions, isLegendInside);
that._applyPointMarkersAutoHiding();
that._renderSeries(drawOptions, isRotated, isLegendInside);
that._renderer.unlock()
},
_updateLegendPosition: _common.noop,
_createCrosshairCursor: _common.noop,
_appendSeriesGroups: function() {
this._seriesGroup.linkAppend();
this._labelsGroup.linkAppend();
this._appendAdditionalSeriesGroups()
},
_renderSeries: function(drawOptions, isRotated, isLegendInside) {
this._calculateSeriesLayout(drawOptions, isRotated);
this._renderSeriesElements(drawOptions, isLegendInside)
},
_calculateSeriesLayout: function(drawOptions, isRotated) {
drawOptions.hideLayoutLabels = this.layoutManager.needMoreSpaceForPanesCanvas(this._getLayoutTargets(), isRotated) && !this._themeManager.getOptions("adaptiveLayout").keepLabels;
this._updateSeriesDimensions(drawOptions)
},
_getArgFilter: function() {
return function() {
return true
}
},
_getValFilter: function(series) {
return function() {
return true
}
},
_getPointsToAnimation: function(series) {
var _this = this;
var argViewPortFilter = this._getArgFilter();
return series.map((function(s) {
var valViewPortFilter = _this._getValFilter(s);
return s.getPoints().filter((function(p) {
return p.getOptions().visible && argViewPortFilter(p.argument) && (valViewPortFilter(p.getMinValue(true)) || valViewPortFilter(p.getMaxValue(true)))
})).length
}))
},
_renderSeriesElements: function(drawOptions, isLegendInside) {
var i;
var series = this.series;
var singleSeries;
var seriesLength = series.length;
var resolveLabelOverlapping = this._themeManager.getOptions("resolveLabelOverlapping");
var pointsToAnimation = this._getPointsToAnimation(series);
for (i = 0; i < seriesLength; i++) {
singleSeries = series[i];
this._applyExtraSettings(singleSeries, drawOptions);
singleSeries.draw(drawOptions.animate && pointsToAnimation[i] <= drawOptions.animationPointsLimit && this._renderer.animationEnabled(), drawOptions.hideLayoutLabels, this._getLegendCallBack(singleSeries))
}
if ("none" === resolveLabelOverlapping) {
this._adjustSeriesLabels(false)
} else {
this._locateLabels(resolveLabelOverlapping)
}
this._renderTrackers(isLegendInside);
this._tracker.repairTooltip();
this._renderExtraElements();
this._clearCanvas();
this._seriesElementsDrawn = true
},
_changesApplied: function() {
if (this._seriesElementsDrawn) {
this._seriesElementsDrawn = false;
this._drawn();
this._renderCompleteHandler()
}
},
_locateLabels: function(resolveLabelOverlapping) {
this._resolveLabelOverlapping(resolveLabelOverlapping)
},
_renderExtraElements: function() {},
_clearCanvas: function() {
this._canvas = this.__originalCanvas
},
_resolveLabelOverlapping: function(resolveLabelOverlapping) {
var func;
switch (resolveLabelOverlapping) {
case "stack":
func = this._resolveLabelOverlappingStack;
break;
case "hide":
func = this._resolveLabelOverlappingHide;
break;
case "shift":
func = this._resolveLabelOverlappingShift
}
return (0, _type.isFunction)(func) && func.call(this)
},
_getVisibleSeries: function() {
return (0, _common.grep)(this.getAllSeries(), (function(series) {
return series.isVisible()
}))
},
_resolveLabelOverlappingHide: function() {
var labels = [];
var currentLabel;
var nextLabel;
var currentLabelRect;
var nextLabelRect;
var i;
var j;
var points;
var series = this._getVisibleSeries();
for (i = 0; i < series.length; i++) {
points = series[i].getVisiblePoints();
for (j = 0; j < points.length; j++) {
labels.push.apply(labels, points[j].getLabels())
}
}
for (i = 0; i < labels.length; i++) {
currentLabel = labels[i];
if (!currentLabel.isVisible()) {
continue
}
currentLabelRect = currentLabel.getBoundingRect();
for (j = i + 1; j < labels.length; j++) {
nextLabel = labels[j];
nextLabelRect = nextLabel.getBoundingRect();
if (firstRect = currentLabelRect, secondRect = nextLabelRect, (firstRect.x <= secondRect.x && secondRect.x <= firstRect.x + firstRect.width || firstRect.x >= secondRect.x && firstRect.x <= secondRect.x + secondRect.width) && (firstRect.y <= secondRect.y && secondRect.y <= firstRect.y + firstRect.height || firstRect.y >= secondRect.y && firstRect.y <= secondRect.y + secondRect.height)) {
nextLabel.draw(false)
}
}
}
var firstRect, secondRect
},
_cleanGroups: function() {
this._stripsGroup.linkRemove().clear();
this._gridGroup.linkRemove().clear();
this._axesGroup.linkRemove().clear();
this._constantLinesGroup.above.clear();
this._stripLabelAxesGroup.linkRemove().clear();
this._labelsGroup.linkRemove().clear();
this._crosshairCursorGroup.linkRemove().clear();
this._scaleBreaksGroup.linkRemove().clear()
},
_allowLegendInsidePosition: function() {
return false
},
_createLegend: function() {
var legendSettings = (legendDataField = this._legendDataField, formatObjectFields = (name = legendDataField, {
nameField: name + "Name",
colorField: name + "Color",
indexField: name + "Index"
}), {
getFormatObject: function(data) {
var res = {};
res[formatObjectFields.indexField] = data.id;
res[formatObjectFields.colorField] = data.states.normal.fill;
res[formatObjectFields.nameField] = data.text;
return res
},
textField: formatObjectFields.nameField
});
var legendDataField, formatObjectFields, name;
this._legend = new _legend.Legend({
renderer: this._renderer,
widget: this,
group: this._legendGroup,
backgroundClass: "dxc-border",
itemGroupClass: "dxc-item",
titleGroupClass: "dxc-title",
textField: legendSettings.textField,
getFormatObject: legendSettings.getFormatObject,
allowInsidePosition: this._allowLegendInsidePosition()
});
this._updateLegend();
this._layout.add(this._legend)
},
_updateLegend: function() {
var themeManager = this._themeManager;
var legendOptions = themeManager.getOptions("legend");
var legendData = this._getLegendData();
legendOptions.containerBackgroundColor = themeManager.getOptions("containerBackgroundColor");
legendOptions._incidentOccurred = this._incidentOccurred;
this._legend.update(legendData, legendOptions, themeManager.theme("legend").title);
this._change(["LAYOUT"])
},
_prepareDrawOptions: function(drawOptions) {
var animationOptions = this._getAnimationOptions();
var options = (0, _extend.extend)({}, {
force: false,
adjustAxes: true,
drawLegend: true,
drawTitle: true,
animate: animationOptions.enabled,
animationPointsLimit: animationOptions.maxPointCountSupported
}, drawOptions, this.__renderOptions);
if (!(0, _type.isDefined)(options.recreateCanvas)) {
options.recreateCanvas = options.adjustAxes && options.drawLegend && options.drawTitle
}
return options
},
_processRefreshData: function(newRefreshAction) {
var currentRefreshActionPosition = (0, _array.inArray)(this._currentRefreshData, ACTIONS_BY_PRIORITY);
var newRefreshActionPosition = (0, _array.inArray)(newRefreshAction, ACTIONS_BY_PRIORITY);
if (!this._currentRefreshData || currentRefreshActionPosition >= 0 && newRefreshActionPosition < currentRefreshActionPosition) {
this._currentRefreshData = newRefreshAction
}
this._requestChange(["REFRESH"])
},
_getLegendData: function() {
return (0, _utils.map)(this._getLegendTargets(), (function(item) {
var legendData = item.legendData;
var style = item.getLegendStyles;
var opacity = style.normal.opacity;
if (!item.visible) {
if (!(0, _type.isDefined)(opacity) || opacity > .3) {
opacity = .3
}
legendData.textOpacity = .3
}
var opacityStyle = {
opacity: opacity
};
legendData.states = {
hover: (0, _extend.extend)({}, style.hover, opacityStyle),
selection: (0, _extend.extend)({}, style.selection, opacityStyle),
normal: (0, _extend.extend)({}, style.normal, opacityStyle)
};
return legendData
}))
},
_getLegendOptions: function(item) {
return {
legendData: {
text: item[this._legendItemTextField],
id: item.index,
visible: true
},
getLegendStyles: item.getLegendStyles(),
visible: item.isVisible()
}
},
_disposeSeries: function(seriesIndex) {
var _that$series;
if (this.series) {
if ((0, _type.isDefined)(seriesIndex)) {
this.series[seriesIndex].dispose();
this.series.splice(seriesIndex, 1)
} else {
(0, _iterator.each)(this.series, (function(_, s) {
return s.dispose()
}));
this.series.length = 0
}
}
if (!(null !== (_that$series = this.series) && void 0 !== _that$series && _that$series.length)) {
this.series = []
}
},
_disposeSeriesFamilies: function() {
(0, _iterator.each)(this.seriesFamilies || [], (function(_, family) {
family.dispose()
}));
this.seriesFamilies = null;
this._needHandleRenderComplete = true
},
_optionChanged: function(arg) {
this._themeManager.resetOptions(arg.name);
this.callBase.apply(this, arguments)
},
_applyChanges: function() {
var that = this;
that._themeManager.update(that._options.silent());
that.callBase.apply(that, arguments)
},
_optionChangesMap: {
animation: "ANIMATION",
dataSource: "DATA_SOURCE",
palette: "PALETTE",
paletteExtensionMode: "PALETTE",
legend: "FORCE_DATA_INIT",
seriesTemplate: "FORCE_DATA_INIT",
export: "FORCE_RENDER",
valueAxis: "AXES_AND_PANES",
argumentAxis: "AXES_AND_PANES",
commonAxisSettings: "AXES_AND_PANES",
panes: "AXES_AND_PANES",
commonPaneSettings: "AXES_AND_PANES",
defaultPane: "AXES_AND_PANES",
containerBackgroundColor: "AXES_AND_PANES",
rotated: "ROTATED",
autoHidePointMarkers: "REFRESH_SERIES_REINIT",
customizePoint: "REFRESH_SERIES_REINIT",
customizeLabel: "REFRESH_SERIES_REINIT",
scrollBar: "SCROLL_BAR"
},
_optionChangesOrder: ["ROTATED", "PALETTE", "REFRESH_SERIES_REINIT", "AXES_AND_PANES", "INIT", "REINIT", "DATA_SOURCE", "REFRESH_SERIES_DATA_INIT", "DATA_INIT", "FORCE_DATA_INIT", "REFRESH_AXES", "CORRECT_AXIS"],
_customChangesOrder: ["ANIMATION", "REFRESH_SERIES_FAMILIES", "FORCE_FIRST_DRAWING", "FORCE_DRAWING", "FORCE_RENDER", "VISUAL_RANGE", "SCROLL_BAR", "REINIT", "REFRESH", "FULL_RENDER"],
_change_ANIMATION: function() {
this._renderer.updateAnimationOptions(this._getAnimationOptions())
},
_change_DATA_SOURCE: function() {
this._needHandleRenderComplete = true;
this._updateDataSource()
},
_change_PALETTE: function() {
this._themeManager.updatePalette();
this._refreshSeries("DATA_INIT")
},
_change_REFRESH_SERIES_DATA_INIT: function() {
this._refreshSeries("DATA_INIT")
},
_change_DATA_INIT: function() {
if ((!this.series || this.needToPopulateSeries) && !this._changes.has("FORCE_DATA_INIT")) {
this._dataInit()
}
},
_change_FORCE_DATA_INIT: function() {
this._dataInit()
},
_change_REFRESH_SERIES_FAMILIES: function() {
this._processSeriesFamilies();
this._populateBusinessRange();
this._processRefreshData("_forceRender")
},
_change_FORCE_RENDER: function() {
this._processRefreshData("_forceRender")
},
_change_AXES_AND_PANES: function() {
this._refreshSeries("INIT")
},
_change_ROTATED: function() {
this._createScrollBar();
this._refreshSeries("INIT")
},
_change_REFRESH_SERIES_REINIT: function() {
this._refreshSeries("INIT")
},
_change_REFRESH_AXES: function() {
(0, _utils.setCanvasValues)(this._canvas);
this._reinitAxes();
this._requestChange(["CORRECT_AXIS", "FULL_RENDER"])
},
_change_SCROLL_BAR: function() {
this._createScrollBar();
this._processRefreshData("_forceRender")
},
_change_REINIT: function() {
this._processRefreshData("_reinit")
},
_change_FORCE_DRAWING: function() {
this._resetComponentsAnimation()
},
_change_FORCE_FIRST_DRAWING: function() {
this._resetComponentsAnimation(true)
},
_resetComponentsAnimation: function(isFirstDrawing) {
this.series.forEach((function(s) {
s.resetApplyingAnimation(isFirstDrawing)
}));
this._resetAxesAnimation(isFirstDrawing)
},
_resetAxesAnimation: _common.noop,
_refreshSeries: function(actionName) {
this.needToPopulateSeries = true;
this._requestChange([actionName])
},
_change_CORRECT_AXIS: function() {
this._correctAxes()
},
_doRefresh: function() {
var methodName = this._currentRefreshData;
if (methodName) {
this._currentRefreshData = null;
this._renderer.stopAllAnimations(true);
this[methodName]()
}
},
_updateCanvasClipRect: function(canvas) {
var width = Math.max(canvas.width - canvas.left - canvas.right, 0);
var height = Math.max(canvas.height - canvas.top - canvas.bottom, 0);
this._canvasClipRect.attr({
x: canvas.left,
y: canvas.top,
width: width,
height: height
});
this._backgroundRect.attr({
x: canvas.left,
y: canvas.top,
width: width,
height: height
})
},
_getCanvasClipRectID: function() {
return this._canvasClipRect.id
},
_dataSourceChangedHandler: function() {
if (this._changes.has("INIT")) {
this._requestChange(["DATA_INIT"])
} else {
this._requestChange(["FORCE_DATA_INIT"])
}
},
_dataInit: function() {
this._dataSpecificInit(true)
},
_processSingleSeries: function(singleSeries) {
singleSeries.createPoints(false)
},
_handleSeriesDataUpdated: function() {
var _this2 = this;
if (this._getVisibleSeries().some((function(s) {
return s.useAggregation()
}))) {
this._populateMarginOptions()
}
this.series.forEach((function(s) {
return _this2._processSingleSeries(s)
}), this)
},
_dataSpecificInit: function(needRedraw) {
if (!this.series || this.needToPopulateSeries) {
this.series = this._populateSeries()
}
this._repopulateSeries();
this._seriesPopulatedHandlerCore();
this._populateBusinessRange();
this._tracker.updateSeries(this.series, this._changes.has("INIT"));
this._updateLegend();
if (needRedraw) {
this._requestChange(["FULL_RENDER"])
}
},
_forceRender: function() {
this._doRender({
force: true
})
},
_repopulateSeries: function() {
var themeManager = this._themeManager;
var data = this._dataSourceItems();
var dataValidatorOptions = themeManager.getOptions("dataPrepareSettings");
var seriesTemplate = themeManager.getOptions("seriesTemplate");
if (seriesTemplate) {
this._populateSeries(data)
}
this._groupSeries();
var parsedData = (0, _data_validator.validateData)(data, this._groupsData, this._incidentOccurred, dataValidatorOptions);
themeManager.resetPalette();
this.series.forEach((function(singleSeries) {
singleSeries.updateData(parsedData[singleSeries.getArgumentField()])
}));
this._handleSeriesDataUpdated()
},
_renderCompleteHandler: function() {
var allSeriesInited = true;
if (this._needHandleRenderComplete) {
(0, _iterator.each)(this.series, (function(_, s) {
allSeriesInited = allSeriesInited && s.canRenderCompleteHandle()
}));
if (allSeriesInited) {
this._needHandleRenderComplete = false;
this._eventTrigger("done", {
target: this
})
}
}
},
_dataIsReady: function() {
return (0, _type.isDefined)(this.option("dataSource")) && this._dataIsLoaded()
},
_populateSeriesOptions: function(data) {
var that = this;
var themeManager = that._themeManager;
var seriesTemplate = themeManager.getOptions("seriesTemplate");
var seriesOptions = seriesTemplate ? (0, _utils.processSeriesTemplate)(seriesTemplate, data || []) : that.option("series");
var allSeriesOptions = _isArray(seriesOptions) ? seriesOptions : seriesOptions ? [seriesOptions] : [];
var extraOptions = that._getExtraOptions();
var particularSeriesOptions;
var seriesTheme;
var seriesThemes = [];
var seriesVisibilityChanged = function(target) {
that._specialProcessSeries();
that._populateBusinessRange(target && target.getValueAxis(), true);
that._renderer.stopAllAnimations(true);
that._updateLegend();
that._requestChange(["FULL_RENDER"])
};
for (var i = 0; i < allSeriesOptions.length; i++) {
particularSeriesOptions = (0, _extend.extend)(true, {}, allSeriesOptions[i], extraOptions);
if (!(0, _type.isDefined)(particularSeriesOptions.name) || "" === particularSeriesOptions.name) {
particularSeriesOptions.name = "Series " + (i + 1).toString()
}
particularSeriesOptions.rotated = that._isRotated();
particularSeriesOptions.customizePoint = themeManager.getOptions("customizePoint");
particularSeriesOptions.customizeLabel = themeManager.getOptions("customizeLabel");
particularSeriesOptions.visibilityChanged = seriesVisibilityChanged;
particularSeriesOptions.incidentOccurred = that._incidentOccurred;
seriesTheme = themeManager.getOptions("series", particularSeriesOptions, allSeriesOptions.length);
if (that._checkPaneName(seriesTheme)) {
seriesThemes.push(seriesTheme)
}
}
return seriesThemes
},
_populateSeries: function(data) {
var that = this;
var seriesBasis = [];
var incidentOccurred = that._incidentOccurred;
var seriesThemes = that._populateSeriesOptions(data);
var particularSeries;
var disposeSeriesFamilies = false;
that.needToPopulateSeries = false;
(0, _iterator.each)(seriesThemes, (function(_, theme) {
var curSeries = that.series && that.series.filter((function(s) {
return s.name === theme.name && -1 === seriesBasis.map((function(sb) {
return sb.series
})).indexOf(s)
}))[0];
if (curSeries && curSeries.type === theme.type) {
seriesBasis.push({
series: curSeries,
options: theme
})
} else {
seriesBasis.push({
options: theme
});
disposeSeriesFamilies = true
}
}));
that._tracker.clearHover();
(0, _iterator.reverseEach)(that.series, (function(index, series) {
if (!seriesBasis.some((function(s) {
return series === s.series
}))) {
that._disposeSeries(index);
disposeSeriesFamilies = true
}
}));
!disposeSeriesFamilies && (disposeSeriesFamilies = seriesBasis.some((function(sb) {
return sb.series.name !== seriesThemes[sb.series.index].name
})));
that.series = [];
disposeSeriesFamilies && that._disposeSeriesFamilies();
that._themeManager.resetPalette();
var eventPipe = function(data) {
that.series.forEach((function(currentSeries) {
currentSeries.notify(data)
}))
};
(0, _iterator.each)(seriesBasis, (function(_, basis) {
var _that$_argumentAxes$f, _that$_argumentAxes;
var seriesTheme = basis.options;
var argumentAxis = null !== (_that$_argumentAxes$f = null === (_that$_argumentAxes = that._argumentAxes) || void 0 === _that$_argumentAxes ? void 0 : _that$_argumentAxes.filter((function(a) {
return a.pane === seriesTheme.pane
}))[0]) && void 0 !== _that$_argumentAxes$f ? _that$_argumentAxes$f : that.getArgumentAxis();
var renderSettings = {
commonSeriesModes: that._getSelectionModes(),
argumentAxis: argumentAxis,
valueAxis: that._getValueAxis(seriesTheme.pane, seriesTheme.axis)
};
if (basis.series) {
particularSeries = basis.series;
particularSeries.updateOptions(seriesTheme, renderSettings)
} else {
particularSeries = new _base_series.Series((0, _extend.extend)({
renderer: that._renderer,
seriesGroup: that._seriesGroup,
labelsGroup: that._labelsGroup,
eventTrigger: that._eventTrigger,
eventPipe: eventPipe,
incidentOccurred: incidentOccurred
}, renderSettings), seriesTheme)
}
if (!particularSeries.isUpdated) {
incidentOccurred("E2101", [seriesTheme.type])
} else {
particularSeries.index = that.series.length;
that.series.push(particularSeries)
}
}));
return that.series
},
getStackedPoints: function(point) {
var stackName = point.series.getStackName();
return this._getVisibleSeries().reduce((function(stackPoints, series) {
if (!(0, _type.isDefined)(series.getStackName()) || !(0, _type.isDefined)(stackName) || stackName === series.getStackName()) {
stackPoints = stackPoints.concat(series.getPointsByArg(point.argument))
}
return stackPoints
}), [])
},
getAllSeries: function() {
return (this.series || []).slice()
},
getSeriesByName: function(name) {
var found = null;
(0, _iterator.each)(this.series, (function(i, singleSeries) {
if (singleSeries.name === name) {
found = singleSeries;
return false
}
}));
return found
},
getSeriesByPos: function(pos) {
return (this.series || [])[pos]
},
clearSelection: function() {
this._tracker.clearSelection()
},
hideTooltip: function() {
this._tracker._hideTooltip()
},
clearHover: function() {
this._tracker.clearHover()
},
render: function(renderOptions) {
var that = this;
that.__renderOptions = renderOptions;
that.__forceRender = renderOptions && renderOptions.force;
that.callBase.apply(that, arguments);
that.__renderOptions = that.__forceRender = null;
return that
},
refresh: function() {
this._disposeSeries();
this._disposeSeriesFamilies();
this._requestChange(["CONTAINER_SIZE", "REFRESH_SERIES_REINIT"])
},
_getMinSize: function() {
var adaptiveLayout = this._layoutManagerOptions();
return [adaptiveLayout.width, adaptiveLayout.height]
},
_change_REFRESH: function() {
if (!this._changes.has("INIT")) {
this._doRefresh()
} else {
this._currentRefreshData = null
}
},
_change_FULL_RENDER: function() {
this._forceRender()
},
_change_INIT: function() {
this._reinit()
},
_stopCurrentHandling: function() {
this._tracker.stopCurrentHandling()
}
});
exports.BaseChart = BaseChart;
["series", "commonSeriesSettings", "dataPrepareSettings", "seriesSelectionMode", "pointSelectionMode", "synchronizeMultiAxes", "resolveLabelsOverlapping"].forEach((function(name) {
BaseChart.prototype._optionChangesMap[name] = "REFRESH_SERIES_DATA_INIT"
}));
["adaptiveLayout", "crosshair", "resolveLabelOverlapping", "adjustOnZoom", "stickyHovering"].forEach((function(name) {
BaseChart.prototype._optionChangesMap[name] = "FORCE_RENDER"
}));
["minBubbleSize", "maxBubbleSize", "barGroupPadding", "barGroupWidth", "negativesAsZeroes", "negativesAsZeros"].forEach((function(name) {
BaseChart.prototype._optionChangesMap[name] = "REFRESH_SERIES_FAMILIES"
}));
BaseChart.addPlugin(_export.plugin);
BaseChart.addPlugin(_title.plugin);
BaseChart.addPlugin(_data_source.plugin);
BaseChart.addPlugin(_tooltip.plugin);
BaseChart.addPlugin(_loading_indicator.plugin);
var _change_TITLE = BaseChart.prototype._change_TITLE;
BaseChart.prototype._change_TITLE = function() {
_change_TITLE.apply(this, arguments);
this._change(["FORCE_RENDER"])
}
},
/*!****************************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/viz/core/base_theme_manager.js ***!
\****************************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
exports.BaseThemeManager = void 0;
var _class = (obj = __webpack_require__( /*! ../../core/class */ 15), obj && obj.__esModule ? obj : {
default: obj
});
var obj;
var _extend2 = __webpack_require__( /*! ../../core/utils/extend */ 0);
var _type = __webpack_require__( /*! ../../core/utils/type */ 1);
var _iterator = __webpack_require__( /*! ../../core/utils/iterator */ 3);
var _palette = __webpack_require__( /*! ../palette */ 191);
var _utils = __webpack_require__( /*! ./utils */ 14);
var _themes = __webpack_require__( /*! ../themes */ 57);
__webpack_require__( /*! ./themes/generic.light */ 996);
__webpack_require__( /*! ./themes/generic.dark */ 997);
__webpack_require__( /*! ./themes/generic.contrast */ 998);
__webpack_require__( /*! ./themes/generic.carmine */ 999);
__webpack_require__( /*! ./themes/generic.darkmoon */ 1e3);
__webpack_require__( /*! ./themes/generic.softblue */ 1001);
__webpack_require__( /*! ./themes/generic.darkviolet */ 1002);
__webpack_require__( /*! ./themes/generic.greenmist */ 1003);
__webpack_require__( /*! ./themes/material */ 1004);
var _getTheme = _themes.getTheme;
var _addCacheItem = _themes.addCacheItem;
var _removeCacheItem = _themes.removeCacheItem;
var _extend = _extend2.extend;
var _each = _iterator.each;
function getThemePart(theme, path) {
var _theme = theme;
path && _each(path.split("."), (function(_, pathItem) {
return _theme = _theme[pathItem]
}));
return _theme
}
var BaseThemeManager = _class.default.inherit({
ctor: function(options) {
this._themeSection = options.themeSection;
this._fontFields = options.fontFields || [];
_addCacheItem(this)
},
dispose: function() {
_removeCacheItem(this);
this._callback = this._theme = this._font = null;
return this
},
setCallback: function(callback) {
this._callback = callback;
return this
},
setTheme: function(theme, rtl) {
this._current = theme;
this._rtl = rtl;
return this.refresh()
},
refresh: function() {
var current = this._current || {};
var theme = _getTheme(current.name || current);
this._themeName = theme.name;
this._defaultPalette = theme.defaultPalette;
this._font = _extend({}, theme.font, current.font);
this._themeSection && _each(this._themeSection.split("."), (function(_, path) {
theme = _extend(true, {}, theme[path])
}));
this._theme = _extend(true, {}, theme, (0, _type.isString)(current) ? {} : current);
this._initializeTheme();
if ((0, _utils.parseScalar)(this._rtl, this._theme.rtlEnabled)) {
_extend(true, this._theme, this._theme._rtl)
}
this._callback();
return this
},
theme: function(path) {
return getThemePart(this._theme, path)
},
themeName: function() {
return this._themeName
},
createPalette: function(palette, options) {
return (0, _palette.createPalette)(palette, options, this._defaultPalette)
},
createDiscretePalette: function(palette, count) {
return (0, _palette.getDiscretePalette)(palette, count, this._defaultPalette)
},
createGradientPalette: function(palette) {
return (0, _palette.getGradientPalette)(palette, this._defaultPalette)
},
getAccentColor: function(palette) {
return (0, _palette.getAccentColor)(palette, this._defaultPalette)
},
_initializeTheme: function() {
var that = this;
_each(that._fontFields || [], (function(_, path) {
that._initializeFont(getThemePart(that._theme, path))
}))
},
_initializeFont: function(font) {
_extend(font, this._font, _extend({}, font))
}
});
exports.BaseThemeManager = BaseThemeManager
},
/*!************************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/viz/core/layout_element.js ***!
\************************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
exports.LayoutElement = LayoutElement;
exports.WrapperLayoutElement = WrapperLayoutElement;
var _common = __webpack_require__( /*! ../../core/utils/common */ 4);
var _object = __webpack_require__( /*! ../../core/utils/object */ 52);
var _round = Math.round;
var defaultOffset = {
horizontal: 0,
vertical: 0
};
var alignFactors = {
center: .5,
right: 1,
bottom: 1,
left: 0,
top: 0
};
function LayoutElement(options) {
this._options = options
}
LayoutElement.prototype = {
constructor: LayoutElement,
position: function(options) {
var ofBBox = options.of.getLayoutOptions();
var myBBox = this.getLayoutOptions();
var at = options.at;
var my = options.my;
var offset = options.offset || defaultOffset;
var shiftX = -alignFactors[my.horizontal] * myBBox.width + ofBBox.x + alignFactors[at.horizontal] * ofBBox.width + parseInt(offset.horizontal);
var shiftY = -alignFactors[my.vertical] * myBBox.height + ofBBox.y + alignFactors[at.vertical] * ofBBox.height + parseInt(offset.vertical);
this.shift(_round(shiftX), _round(shiftY))
},
getLayoutOptions: _common.noop
};
function WrapperLayoutElement(renderElement, bBox) {
this._renderElement = renderElement;
this._cacheBBox = bBox
}
var wrapperLayoutElementPrototype = WrapperLayoutElement.prototype = (0, _object.clone)(LayoutElement.prototype);
wrapperLayoutElementPrototype.constructor = WrapperLayoutElement;
wrapperLayoutElementPrototype.getLayoutOptions = function() {
return this._cacheBBox || this._renderElement.getBBox()
};
wrapperLayoutElementPrototype.shift = function(shiftX, shiftY) {
var bBox = this.getLayoutOptions();
this._renderElement.move(_round(shiftX - bBox.x), _round(shiftY - bBox.y))
}
},
/*!******************************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/viz/components/data_validator.js ***!
\******************************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
exports.validateData = function(data, groupsData, incidentOccurred, options) {
data = function(source, incidentOccurred) {
var data = [];
var sourceIsDefined = (0, _type.isDefined)(source);
var hasError = sourceIsDefined && !_isArray(source);
var i;
var ii;
var k;
var item;
if (sourceIsDefined && !hasError) {
for (i = 0, ii = source.length, k = 0; i < ii; ++i) {
item = source[i];
if ((0, _type.isObject)(item)) {
data[k++] = item
} else if (item) {
hasError = true
}
}
}
if (hasError) {
incidentOccurred("E2001")
}
return data
}(data, incidentOccurred);
groupsData.argumentType = groupsData.argumentAxisType = null;
groups = groupsData.groups, void groups.forEach((function(group) {
group.valueType = group.valueAxisType = null;
group.series.forEach((function(series) {
series.updateDataType({})
}));
group.valueAxis && group.valueAxis.resetTypes("valueType")
}));
var groups;
axes = groupsData.argumentAxes, void(axes && axes.forEach((function(axis) {
axis.resetTypes("argumentType")
})));
var axes;
! function(data, groupsData, checkTypeForAllData) {
var groupsWithUndefinedValueType = [];
var groupsWithUndefinedArgumentType = [];
var argumentTypeGroup = groupsData.argumentOptions && axisTypeParser(groupsData.argumentOptions.argumentType);
var groupsIndexes;
groupsData.groups.forEach((function(group) {
if (!group.series.length) {
return
}
var valueTypeGroup = group.valueOptions && axisTypeParser(group.valueOptions.valueType);
group.valueType = valueTypeGroup;
groupsData.argumentType = argumentTypeGroup;
!valueTypeGroup && groupsWithUndefinedValueType.push(group);
!argumentTypeGroup && groupsWithUndefinedArgumentType.push(group)
}));
if (groupsWithUndefinedValueType.length || groupsWithUndefinedArgumentType.length) {
groupsIndexes = groupsWithUndefinedValueType.map((function(_, index) {
return index
}));
data.some((function(cell) {
var defineArg;
groupsWithUndefinedValueType.forEach((function(group, groupIndex) {
if (function(group, cell) {
group.series.forEach((function(series) {
series.getValueFields().forEach((function(field) {
group.valueType = getType(cell[field], group.valueType)
}))
}));
return group.valueType
}(group, cell) && groupsIndexes.indexOf(groupIndex) >= 0) {
groupsIndexes.splice(groupIndex, 1)
}
}));
if (!defineArg) {
groupsWithUndefinedArgumentType.forEach((function(group) {
defineArg = function(series, cell, groupsData) {
series.forEach((function(currentSeries) {
groupsData.argumentType = getType(cell[currentSeries.getArgumentField()], groupsData.argumentType)
}));
return groupsData.argumentType
}(group.series, cell, groupsData)
}))
}
if (!checkTypeForAllData && defineArg && 0 === groupsIndexes.length) {
return true
}
}))
}
}(data, groupsData, options.checkTypeForAllData);
! function(groupsData, incidentOccurred) {
var argumentOptions = groupsData.argumentOptions || {};
var userArgumentCategories = argumentOptions && argumentOptions.categories || [];
var argumentAxisType = correctAxisType(groupsData.argumentType, argumentOptions.type, !!userArgumentCategories.length, incidentOccurred);
groupsData.groups.forEach((function(group) {
var valueOptions = group.valueOptions || {};
var valueCategories = valueOptions.categories || [];
var valueAxisType = correctAxisType(group.valueType, valueOptions.type, !!valueCategories.length, incidentOccurred);
group.series.forEach((function(series) {
var optionsSeries = {};
optionsSeries.argumentAxisType = argumentAxisType;
optionsSeries.valueAxisType = valueAxisType;
groupsData.argumentAxisType = groupsData.argumentAxisType || optionsSeries.argumentAxisType;
group.valueAxisType = group.valueAxisType || optionsSeries.valueAxisType;
optionsSeries.argumentType = groupsData.argumentType;
optionsSeries.valueType = group.valueType;
optionsSeries.showZero = valueOptions.showZero;
series.updateDataType(optionsSeries)
}));
group.valueAxisType = group.valueAxisType || valueAxisType;
if (group.valueAxis) {
group.valueAxis.setTypes(group.valueAxisType, group.valueType, "valueType");
group.valueAxis.validate()
}
}));
groupsData.argumentAxisType = groupsData.argumentAxisType || argumentAxisType;
if (groupsData.argumentAxes) {
groupsData.argumentAxes.forEach((function(axis) {
axis.setTypes(groupsData.argumentAxisType, groupsData.argumentType, "argumentType");
axis.validate()
}))
}
}(groupsData, incidentOccurred);
if (options.convertToAxisDataType) {
data = function(data, parsers) {
var parsedData = [];
var i;
var ii = data.length;
parsedData.length = ii;
for (i = 0; i < ii; ++i) {
parsedData[i] = getParsedCell(data[i], parsers)
}
return parsedData
}(data, function(groupsData, incidentOccurred) {
var argumentParser = createParserUnit(groupsData.argumentType, groupsData.argumentAxisType, incidentOccurred);
var sizeParser;
var valueParser;
var categoryParsers = [argumentParser];
var cache = {};
var list = [];
groupsData.groups.forEach((function(group, groupIndex) {
group.series.forEach((function(series) {
valueParser = createParserUnit(group.valueType, group.valueAxisType, incidentOccurred);
sizeParser = createParserUnit("numeric", "continuous", incidentOccurred);
cache[series.getArgumentField()] = argumentParser;
series.getValueFields().forEach((function(field) {
categoryParsers[groupIndex + 1] = valueParser;
cache[field] = valueParser
}));
if (series.getSizeField()) {
cache[series.getSizeField()] = sizeParser
}
}))
}));
for (var field in cache) {
list.push([field, cache[field]])
}
list.length && function(groupsData, parsers) {
var argumentCategories = groupsData.argumentOptions && groupsData.argumentOptions.categories;
groupsData.groups.forEach((function(valueGroup, i) {
var categories = valueGroup.valueOptions && valueGroup.valueOptions.categories;
if (categories) {
valueGroup.valueOptions.categories = parseCategories(categories, parsers[i + 1])
}
}));
if (argumentCategories) {
groupsData.argumentOptions.categories = parseCategories(argumentCategories, parsers[0])
}
}(groupsData, categoryParsers);
return list
}(groupsData, incidentOccurred))
}! function(data, groupsData) {
var firstSeries = groupsData.groups[0] && groupsData.groups[0].series[0];
var isPie = firstSeries && ("pie" === firstSeries.type || "doughnut" === firstSeries.type || "donut" === firstSeries.type);
if (!isPie) {
return
}
groupsData.groups.forEach((function(group) {
group.series.forEach((function(series) {
! function(originalData, argumentField, valueField, smallValuesGrouping) {
smallValuesGrouping = smallValuesGrouping || {};
var mode = smallValuesGrouping.mode;
var others = {};
if (!mode || "none" === mode) {
return
}
others[argumentField] = String(smallValuesGrouping.groupName || "others");
others[valueField] = 0;
var data = sortValues(originalData.slice(), false, (function(a) {
return a[valueField]
}));
! function(data, others, valueField, index) {
if (index >= 0) {
data.slice(index).forEach((function(cell) {
if ((0, _type.isDefined)(cell[valueField])) {
others[valueField] += cell[valueField];
cell[valueField] = void 0
}
}))
}
}(data, others, valueField, "smallValueThreshold" === mode ? function(data, valueField, threshold) {
var i;
var ii = data.length;
var value;
for (i = 0; i < ii; ++i) {
value = data[i][valueField];
if ((0, _type.isDefined)(value) && threshold > value) {
break
}
}
return i
}(data, valueField, smallValuesGrouping.threshold) : smallValuesGrouping.topCount);
others[valueField] && originalData.push(others)
}(data, series.getArgumentField(), series.getValueFields()[0], series.getOptions().smallValuesGrouping)
}))
}))
}(data, groupsData);
var dataByArgumentFields = function(data, groupsData, options, uniqueArgumentFields) {
var dataByArguments = {};
var isDiscrete = "discrete" === groupsData.argumentAxisType;
var userCategories = isDiscrete && groupsData.argumentOptions && groupsData.argumentOptions.categories;
var sortFunction = function(data) {
return data
};
var sortingMethodOption = options.sortingMethod;
var reSortCategories;
if (!userCategories && (0, _type.isFunction)(sortingMethodOption)) {
data = function(data, callback) {
return data.slice().sort(callback)
}(data, sortingMethodOption)
}
if (isDiscrete) {
groupsData.categories = function(data, uniqueArgumentFields, userCategories) {
var categories = userCategories ? userCategories.slice() : [];
uniqueArgumentFields.forEach((function(field) {
data.forEach((function(item) {
var dataItem = item[field];
(0, _type.isDefined)(dataItem) && function(collection, item) {
return -1 === collection.map((function(collectionItem) {
return collectionItem.valueOf()
})).indexOf(item.valueOf())
}(categories, dataItem) && categories.push(dataItem)
}))
}));
return categories
}(data, uniqueArgumentFields, userCategories)
}
if (userCategories || !(0, _type.isFunction)(sortingMethodOption) && "string" === groupsData.argumentType && !options._skipArgumentSorting) {
sortFunction = function(categories) {
var hash = {};
categories.forEach((function(value, i) {
hash[value] = i
}));
return function(data, argumentField) {
return sortValues(data.slice(), true, (function(a) {
return hash[a[argumentField]]
}))
}
}(groupsData.categories)
} else if (true === sortingMethodOption && "string" !== groupsData.argumentType) {
sortFunction = sortByArgument;
reSortCategories = isDiscrete
}
uniqueArgumentFields.forEach((function(field) {
dataByArguments[field] = sortFunction(data, field)
}));
if (reSortCategories) {
groupsData.categories = groupsData.categories.sort(sort)
}
return dataByArguments
}(data, groupsData, options, function(groupsData) {
var uniqueArgumentFields = [];
var hash = {};
groupsData.groups.forEach((function(group) {
group.series.forEach((function(series) {
! function(item, collection, itemsHash) {
if (!itemsHash[item]) {
collection.push(item);
itemsHash[item] = true
}
}(series.getArgumentField(), uniqueArgumentFields, hash)
}))
}));
return uniqueArgumentFields
}(groupsData));
return dataByArgumentFields
};
var _type = __webpack_require__( /*! ../../core/utils/type */ 1);
var _extend = __webpack_require__( /*! ../../core/utils/extend */ 0);
var _utils = __webpack_require__( /*! ../core/utils */ 14);
var _parse_utils = __webpack_require__( /*! ./parse_utils */ 323);
var axisTypeParser = (0, _utils.enumParser)(["string", "numeric", "datetime"]);
var _isArray = Array.isArray;
function sortValues(data, asc, selector) {
var func = asc ? function(a, b) {
return a - b
} : function(a, b) {
return b - a
};
data.sort((function(a, b) {
var valA = selector(a);
var valB = selector(b);
var aa = (0, _type.isDefined)(valA) ? 1 : 0;
var bb = (0, _type.isDefined)(valB) ? 1 : 0;
return aa && bb ? func(valA, valB) : func(aa, bb)
}));
return data
}
function parseCategories(categories, parser) {
var newArray = [];
categories.forEach((function(category) {
var parsedCategory = parser(category);
void 0 !== parsedCategory && newArray.push(parsedCategory)
}));
return newArray
}
function eigen(x) {
return x
}
function getType(unit, type) {
var result = type;
if ("string" === type || (0, _type.isString)(unit)) {
result = "string"
} else if ("datetime" === type || (0, _type.isDate)(unit)) {
result = "datetime"
} else if ((0, _type.isNumeric)(unit)) {
result = "numeric"
}
return result
}
function correctAxisType(type, axisType, hasCategories, incidentOccurred) {
if ("string" === type && ("continuous" === axisType || "logarithmic" === axisType || "semidiscrete" === axisType)) {
incidentOccurred("E2002")
}
return "logarithmic" === axisType ? "logarithmic" : hasCategories || "discrete" === axisType || "string" === type ? "discrete" : "semidiscrete" === axisType ? "semidiscrete" : "continuous"
}
function createParserUnit(type, axisType, incidentOccurred) {
var parser = type ? (0, _parse_utils.getParser)(type) : eigen;
var filterInfinity = "discrete" !== axisType ? function(x) {
return isFinite(x) || void 0 === x ? x : null
} : eigen;
return function(unit, field) {
var parseUnit = filterInfinity(parser(unit));
if (void 0 === parseUnit) {
! function(unit, field, incidentOccurred) {
if (unit) {
incidentOccurred(!(0, _type.isNumeric)(unit) && !(0, _type.isDate)(unit) && !(0, _type.isString)(unit) ? "E2003" : "E2004", [field])
}
}(unit, field, incidentOccurred)
}
return parseUnit
}
}
function getParsedCell(cell, parsers) {
var i;
var ii = parsers.length;
var obj = (0, _extend.extend)({}, cell);
var field;
var value;
for (i = 0; i < ii; ++i) {
field = parsers[i][0];
value = cell[field];
obj[field] = parsers[i][1](value, field)
}
return obj
}
function sort(a, b) {
var result = a - b;
if (isNaN(result)) {
if (!(0, _type.isDefined)(a)) {
return 1
}
if (!(0, _type.isDefined)(b)) {
return -1
}
return 0
}
return result
}
function sortByArgument(data, argumentField) {
return data.slice().sort((function(a, b) {
return sort(a[argumentField], b[argumentField])
}))
}
},
/*!***************************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/viz/components/parse_utils.js ***!
\***************************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
exports.correctValueType = correctValueType;
exports.getParser = void 0;
var _common = __webpack_require__( /*! ../../core/utils/common */ 4);
var _date_serialization = (obj = __webpack_require__( /*! ../../core/utils/date_serialization */ 58), obj && obj.__esModule ? obj : {
default: obj
});
var obj;
var _type = __webpack_require__( /*! ../../core/utils/type */ 1);
var parsers = {
string: function(val) {
return (0, _type.isDefined)(val) ? "" + val : val
},
numeric: function(val) {
if (!(0, _type.isDefined)(val)) {
return val
}
var parsedVal = Number(val);
if (isNaN(parsedVal)) {
parsedVal = void 0
}
return parsedVal
},
datetime: function(val) {
if (!(0, _type.isDefined)(val)) {
return val
}
var parsedVal;
var numVal = Number(val);
if (!isNaN(numVal)) {
parsedVal = new Date(numVal)
} else {
parsedVal = _date_serialization.default.deserializeDate(val)
}
if (isNaN(Number(parsedVal))) {
parsedVal = void 0
}
return parsedVal
}
};
function correctValueType(type) {
return "numeric" === type || "datetime" === type || "string" === type ? type : ""
}
exports.getParser = function(valueType) {
return parsers[correctValueType(valueType)] || _common.noop
}
},
/*!***********************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/viz/series/base_series.js ***!
\***********************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
function _typeof(obj) {
if ("function" === typeof Symbol && "symbol" === typeof Symbol.iterator) {
_typeof = function(obj) {
return typeof obj
}
} else {
_typeof = function(obj) {
return obj && "function" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj
}
}
return _typeof(obj)
}
exports.Series = Series;
exports.mixins = void 0;
var _type = __webpack_require__( /*! ../../core/utils/type */ 1);
var _extend2 = __webpack_require__( /*! ../../core/utils/extend */ 0);
var _iterator = __webpack_require__( /*! ../../core/utils/iterator */ 3);
var _base_point = __webpack_require__( /*! ./points/base_point */ 1007);
var _utils = __webpack_require__( /*! ../core/utils */ 14);
var _common = __webpack_require__( /*! ../../core/utils/common */ 4);
var _consts = _interopRequireDefault(__webpack_require__( /*! ../components/consts */ 149));
var _range_data_calculator = _interopRequireDefault(__webpack_require__( /*! ./helpers/range_data_calculator */ 230));
var scatterSeries = _interopRequireWildcard(__webpack_require__( /*! ./scatter_series */ 130));
var lineSeries = _interopRequireWildcard(__webpack_require__( /*! ./line_series */ 231));
var areaSeries = _interopRequireWildcard(__webpack_require__( /*! ./area_series */ 192));
var barSeries = _interopRequireWildcard(__webpack_require__( /*! ./bar_series */ 169));
var _range_series = __webpack_require__( /*! ./range_series */ 1012);
var _bubble_series = __webpack_require__( /*! ./bubble_series */ 1013);
var pieSeries = _interopRequireWildcard(__webpack_require__( /*! ./pie_series */ 1014));
var financialSeries = _interopRequireWildcard(__webpack_require__( /*! ./financial_series */ 1015));
var stackedSeries = _interopRequireWildcard(__webpack_require__( /*! ./stacked_series */ 1016));
function _getRequireWildcardCache(nodeInterop) {
if ("function" !== typeof WeakMap) {
return null
}
var cacheBabelInterop = new WeakMap;
var cacheNodeInterop = new WeakMap;
return (_getRequireWildcardCache = function(nodeInterop) {
return nodeInterop ? cacheNodeInterop : cacheBabelInterop
})(nodeInterop)
}
function _interopRequireWildcard(obj, nodeInterop) {
if (!nodeInterop && obj && obj.__esModule) {
return obj
}
if (null === obj || "object" !== _typeof(obj) && "function" !== typeof obj) {
return {
default: obj
}
}
var cache = _getRequireWildcardCache(nodeInterop);
if (cache && cache.has(obj)) {
return cache.get(obj)
}
var newObj = {};
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
for (var key in obj) {
if ("default" !== key && Object.prototype.hasOwnProperty.call(obj, key)) {
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
if (desc && (desc.get || desc.set)) {
Object.defineProperty(newObj, key, desc)
} else {
newObj[key] = obj[key]
}
}
}
newObj.default = obj;
if (cache) {
cache.set(obj, newObj)
}
return newObj
}
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
default: obj
}
}
var seriesNS = {};
var states = _consts.default.states;
var SELECTED_STATE = states.selectedMark;
var HOVER_STATE = states.hoverMark;
var HOVER = states.hover;
var NORMAL = states.normal;
var SELECTION = states.selection;
var APPLY_SELECTED = states.applySelected;
var APPLY_HOVER = states.applyHover;
var RESET_ITEM = states.resetItem;
function triggerEvent(element, event, point) {
element && element.trigger(event, point)
}
seriesNS.mixins = {
chart: {},
pie: {},
polar: {}
};
seriesNS.mixins.chart.scatter = scatterSeries.chart;
seriesNS.mixins.polar.scatter = scatterSeries.polar;
(0, _extend2.extend)(seriesNS.mixins.pie, pieSeries);
(0, _extend2.extend)(seriesNS.mixins.chart, lineSeries.chart, areaSeries.chart, barSeries.chart, _range_series.chart, _bubble_series.chart, financialSeries, stackedSeries.chart);
(0, _extend2.extend)(seriesNS.mixins.polar, lineSeries.polar, areaSeries.polar, barSeries.polar, stackedSeries.polar);
function includePointsMode(mode) {
mode = (0, _utils.normalizeEnum)(mode);
return "includepoints" === mode || "allseriespoints" === mode
}
function mergePointOptionsCore(base, extra) {
var options = (0, _extend2.extend)({}, base, extra);
options.border = (0, _extend2.extend)({}, base && base.border, extra && extra.border);
return options
}
function Series(settings, options) {
this.fullState = 0;
this._extGroups = settings;
this._renderer = settings.renderer;
this._group = settings.renderer.g().attr({
class: "dxc-series"
});
this._eventTrigger = settings.eventTrigger;
this._eventPipe = settings.eventPipe;
this._incidentOccurred = settings.incidentOccurred;
this._legendCallback = _common.noop;
this.updateOptions(options, settings)
}
function getData(pointData) {
return pointData.data
}
function getValueChecker(axisType, axis) {
if (!axis || "logarithmic" !== axisType || false !== axis.getOptions().allowNegatives) {
return function() {
return true
}
} else {
return function(value) {
return value > 0
}
}
}
Series.prototype = {
constructor: Series,
_createLegendState: _common.noop,
getLegendStyles: function() {
return this._styles.legendStyles
},
_createStyles: function(options) {
var mainSeriesColor = options.mainSeriesColor;
this._styles = {
normal: this._parseStyle(options, mainSeriesColor, mainSeriesColor),
hover: this._parseStyle(options.hoverStyle || {}, mainSeriesColor, mainSeriesColor),
selection: this._parseStyle(options.selectionStyle || {}, mainSeriesColor, mainSeriesColor),
legendStyles: {
normal: this._createLegendState(options, mainSeriesColor),
hover: this._createLegendState(options.hoverStyle || {}, mainSeriesColor),
selection: this._createLegendState(options.selectionStyle || {}, mainSeriesColor)
}
}
},
setClippingParams: function(baseId, wideId, forceClipping) {
var clipLabels = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : true;
this._paneClipRectID = baseId;
this._widePaneClipRectID = wideId;
this._forceClipping = forceClipping;
this._clipLabels = clipLabels
},
applyClip: function() {
this._group.attr({
"clip-path": this._paneClipRectID
})
},
resetClip: function() {
this._group.attr({
"clip-path": null
})
},
getTagField: function() {
return this._options.tagField || "tag"
},
getValueFields: _common.noop,
getSizeField: _common.noop,
getArgumentField: _common.noop,
getPoints: function() {
return this._points
},
getPointsInViewPort: function() {
return _range_data_calculator.default.getPointsInViewPort(this)
},
_createPoint: function(data, index, oldPoint) {
data.index = index;
var pointsByArgument = this.pointsByArgument;
var options = this._getCreatingPointOptions(data);
var arg = data.argument.valueOf();
var point = oldPoint;
if (point) {
point.update(data, options)
} else {
point = new _base_point.Point(this, data, options);
if (this.isSelected() && includePointsMode(this.lastSelectionMode)) {
point.setView(SELECTION)
}
}
var pointByArgument = pointsByArgument[arg];
if (pointByArgument) {
pointByArgument.push(point)
} else {
pointsByArgument[arg] = [point]
}
if (point.hasValue()) {
this.customizePoint(point, data)
}
return point
},
getRangeData: function() {
return this._visible ? this._getRangeData() : {
arg: {},
val: {}
}
},
getArgumentRange: function() {
return this._visible ? _range_data_calculator.default.getArgumentRange(this) : {
arg: {},
val: {}
}
},
getViewport: function() {
return _range_data_calculator.default.getViewport(this)
},
_deleteGroup: function(groupName) {
var group = this[groupName];
if (group) {
group.dispose();
this[groupName] = null
}
},
updateOptions: function(newOptions, settings) {
var widgetType = newOptions.widgetType;
var oldType = this.type;
var newType = newOptions.type;
this.type = newType && (0, _utils.normalizeEnum)(newType.toString());
if (!this._checkType(widgetType) || this._checkPolarBarType(widgetType, newOptions)) {
this.dispose();
this.isUpdated = false;
return
}
if (oldType !== this.type) {
this._firstDrawing = true;
this._resetType(oldType, widgetType);
this._setType(this.type, widgetType)
} else {
this._defineDrawingState()
}
this._options = newOptions;
this._pointOptions = null;
this.name = newOptions.name;
this.pane = newOptions.pane;
this.tag = newOptions.tag;
if (settings) {
this._seriesModes = settings.commonSeriesModes || this._seriesModes;
this._valueAxis = settings.valueAxis || this._valueAxis;
this.axis = this._valueAxis && this._valueAxis.name;
this._argumentAxis = settings.argumentAxis || this._argumentAxis
}
this._createStyles(newOptions);
this._stackName = null;
this._updateOptions(newOptions);
this._visible = newOptions.visible;
this.isUpdated = true;
this.stack = newOptions.stack;
this.barOverlapGroup = newOptions.barOverlapGroup;
this._createGroups();
this._processEmptyValue = newOptions.ignoreEmptyPoints ? function(x) {
return null === x ? void 0 : x
} : function(x) {
return x
}
},
_defineDrawingState: function() {
this._firstDrawing = true
},
_disposePoints: function(points) {
(0, _iterator.each)(points || [], (function(_, p) {
p.dispose()
}))
},
updateDataType: function(settings) {
this.argumentType = settings.argumentType;
this.valueType = settings.valueType;
this.argumentAxisType = settings.argumentAxisType;
this.valueAxisType = settings.valueAxisType;
this.showZero = settings.showZero;
this._argumentChecker = getValueChecker(settings.argumentAxisType, this.getArgumentAxis());
this._valueChecker = getValueChecker(settings.valueAxisType, this.getValueAxis());
return this
},
_argumentChecker: function() {
return true
},
_valueChecker: function() {
return true
},
getOptions: function() {
return this._options
},
_getOldPoint: function(data, oldPointsByArgument, index) {
var arg = data.argument && data.argument.valueOf();
var point = (oldPointsByArgument[arg] || [])[0];
if (point) {
oldPointsByArgument[arg].splice(0, 1)
}
return point
},
updateData: function(data) {
var options = this._options;
var nameField = options.nameField;
data = data || [];
if (data.length) {
this._canRenderCompleteHandle = true
}
var dataSelector = this._getPointDataSelector();
var itemsWithoutArgument = 0;
this._data = data.reduce((function(data, dataItem, index) {
var pointDataItem = dataSelector(dataItem);
if ((0, _type.isDefined)(pointDataItem.argument)) {
if (!nameField || dataItem[nameField] === options.nameFieldValue) {
pointDataItem.index = index;
data.push(pointDataItem)
}
} else {
itemsWithoutArgument++
}
return data
}), []);
if (itemsWithoutArgument && itemsWithoutArgument === data.length) {
this._incidentOccurred("W2002", [this.name, this.getArgumentField()])
}
this._endUpdateData()
},
_getData: function() {
var data = this._data || [];
if (this.useAggregation()) {
data = this._resample(this.getArgumentAxis().getAggregationInfo(this._useAllAggregatedPoints, "discrete" !== this.argumentAxisType ? this.getArgumentRange() : {}), data)
}
return data
},
useAggregation: function() {
var aggregation = this.getOptions().aggregation;
return aggregation && aggregation.enabled
},
autoHidePointMarkersEnabled: _common.noop,
usePointsToDefineAutoHiding: _common.noop,
createPoints: function(useAllAggregatedPoints) {
this._normalizeUsingAllAggregatedPoints(useAllAggregatedPoints);
this._createPoints()
},
_normalizeUsingAllAggregatedPoints: function(useAllAggregatedPoints) {
this._useAllAggregatedPoints = this.useAggregation() && ("discrete" === this.argumentAxisType || (this._data || []).length > 1 && !!useAllAggregatedPoints)
},
_createPoints: function() {
var that = this;
var oldPointsByArgument = that.pointsByArgument || {};
var data = that._getData();
that.pointsByArgument = {};
that._calculateErrorBars(data);
var skippedFields = {};
var points = data.reduce((function(points, pointDataItem) {
if (that._checkData(pointDataItem, skippedFields)) {
var pointIndex = points.length;
var oldPoint = that._getOldPoint(pointDataItem, oldPointsByArgument, pointIndex);
var point = that._createPoint(pointDataItem, pointIndex, oldPoint);
points.push(point)
}
return points
}), []);
for (var field in skippedFields) {
if (skippedFields[field] === data.length) {
that._incidentOccurred("W2002", [that.name, field])
}
}
Object.keys(oldPointsByArgument).forEach((function(key) {
return that._disposePoints(oldPointsByArgument[key])
}));
that._points = points
},
_removeOldSegments: function() {
var that = this;
var startIndex = that._segments.length;
(0, _iterator.each)(that._graphics.splice(startIndex, that._graphics.length) || [], (function(_, elem) {
that._removeElement(elem)
}));
if (that._trackers) {
(0, _iterator.each)(that._trackers.splice(startIndex, that._trackers.length) || [], (function(_, elem) {
elem.remove()
}))
}
},
_drawElements: function(animationEnabled, firstDrawing, translateAllPoints) {
var that = this;
var points = that._points || [];
var closeSegment = points[0] && points[0].hasValue() && that._options.closed;
var groupForPoint = {
markers: that._markersGroup,
errorBars: that._errorBarGroup
};
that._drawnPoints = [];
that._graphics = that._graphics || [];
that._segments = [];
var segments = points.reduce((function(segments, p) {
var segment = segments[segments.length - 1];
if (!p.translated || translateAllPoints) {
p.translate();
!translateAllPoints && p.setDefaultCoords()
}
if (p.hasValue() && p.hasCoords()) {
translateAllPoints && that._drawPoint({
point: p,
groups: groupForPoint,
hasAnimation: animationEnabled,
firstDrawing: firstDrawing
});
segment.push(p)
} else if (!p.hasValue()) {
segment.length && segments.push([])
} else {
p.setInvisibility()
}
return segments
}), [
[]
]);
segments.forEach((function(segment, index) {
if (segment.length) {
that._drawSegment(segment, animationEnabled, index, closeSegment && index === this.length - 1)
}
}), segments);
that._firstDrawing = !points.length;
that._removeOldSegments();
animationEnabled && that._animate(firstDrawing)
},
draw: function(animationEnabled, hideLayoutLabels, legendCallback) {
var firstDrawing = this._firstDrawing;
this._legendCallback = legendCallback || this._legendCallback;
if (!this._visible) {
this._group.remove();
return
}
this._appendInGroup();
this._applyVisibleArea();
this._setGroupsSettings(animationEnabled, firstDrawing);
!firstDrawing && !this._resetApplyingAnimation && this._drawElements(false, firstDrawing, false);
this._drawElements(animationEnabled, firstDrawing, true);
hideLayoutLabels && this.hideLabels();
if (this.isSelected()) {
this._changeStyle(this.lastSelectionMode, void 0, true)
} else if (this.isHovered()) {
this._changeStyle(this.lastHoverMode, void 0, true)
} else {
this._applyStyle(this._styles.normal)
}
this._resetApplyingAnimation = false
},
_setLabelGroupSettings: function(animationEnabled) {
var settings = {
class: "dxc-labels",
"pointer-events": "none"
};
this._clipLabels && this._applyElementsClipRect(settings);
this._applyClearingSettings(settings);
animationEnabled && (settings.opacity = .001);
this._labelsGroup.attr(settings).append(this._extGroups.labelsGroup)
},
_checkType: function(widgetType) {
return !!seriesNS.mixins[widgetType][this.type]
},
_checkPolarBarType: function(widgetType, options) {
return "polar" === widgetType && options.spiderWidget && -1 !== this.type.indexOf("bar")
},
_resetType: function(seriesType, widgetType) {
var methodName;
var methods;
if (seriesType) {
methods = seriesNS.mixins[widgetType][seriesType];
for (methodName in methods) {
delete this[methodName]
}
}
},
_setType: function(seriesType, widgetType) {
var methodName;
var methods = seriesNS.mixins[widgetType][seriesType];
for (methodName in methods) {
this[methodName] = methods[methodName]
}
},
_setPointsView: function(view, target) {
this.getPoints().forEach((function(point) {
if (target !== point) {
point.setView(view)
}
}))
},
_resetPointsView: function(view, target) {
this.getPoints().forEach((function(point) {
if (target !== point) {
point.resetView(view)
}
}))
},
_resetNearestPoint: function() {
this._nearestPoint && null !== this._nearestPoint.series && this._nearestPoint.resetView(HOVER);
this._nearestPoint = null
},
_setSelectedState: function(mode) {
this.lastSelectionMode = (0, _utils.normalizeEnum)(mode || this._options.selectionMode);
this.fullState = this.fullState | SELECTED_STATE;
this._resetNearestPoint();
this._changeStyle(this.lastSelectionMode);
if ("none" !== this.lastSelectionMode && this.isHovered() && includePointsMode(this.lastHoverMode)) {
this._resetPointsView(HOVER)
}
},
_releaseSelectedState: function() {
this.fullState = this.fullState & ~SELECTED_STATE;
this._changeStyle(this.lastSelectionMode, SELECTION);
if ("none" !== this.lastSelectionMode && this.isHovered() && includePointsMode(this.lastHoverMode)) {
this._setPointsView(HOVER)
}
},
isFullStackedSeries: function() {
return 0 === this.type.indexOf("fullstacked")
},
isStackedSeries: function() {
return 0 === this.type.indexOf("stacked")
},
resetApplyingAnimation: function(isFirstDrawing) {
this._resetApplyingAnimation = true;
if (isFirstDrawing) {
this._firstDrawing = true
}
},
isFinancialSeries: function() {
return "stock" === this.type || "candlestick" === this.type
},
_canChangeView: function() {
return !this.isSelected() && "none" !== (0, _utils.normalizeEnum)(this._options.hoverMode)
},
_changeStyle: function(mode, resetView, skipPoints) {
var state = this.fullState;
var styles = [NORMAL, HOVER, SELECTION, SELECTION];
if ("none" === this.lastHoverMode) {
state &= ~HOVER_STATE
}
if ("none" === this.lastSelectionMode) {
state &= ~SELECTED_STATE
}
if (includePointsMode(mode) && !skipPoints) {
if (!resetView) {
this._setPointsView(styles[state])
} else {
this._resetPointsView(resetView)
}
}
this._legendCallback([RESET_ITEM, APPLY_HOVER, APPLY_SELECTED, APPLY_SELECTED][state]);
this._applyStyle(this._styles[styles[state]])
},
updateHover: function(x, y) {
var currentNearestPoint = this._nearestPoint;
var point = this.isHovered() && "nearestpoint" === this.lastHoverMode && this.getNeighborPoint(x, y);
if (point !== currentNearestPoint && !(this.isSelected() && "none" !== this.lastSelectionMode)) {
this._resetNearestPoint();
if (point) {
point.setView(HOVER);
this._nearestPoint = point
}
}
},
_getMainAxisName: function() {
return this._options.rotated ? "X" : "Y"
},
areLabelsVisible: function() {
return !(0, _type.isDefined)(this._options.maxLabelCount) || this._points.length <= this._options.maxLabelCount
},
getLabelVisibility: function() {
return this.areLabelsVisible() && this._options.label && this._options.label.visible
},
customizePoint: function(point, pointData) {
var options = this._options;
var customizePoint = options.customizePoint;
var customizeObject;
var pointOptions;
var customLabelOptions;
var customOptions;
var customizeLabel = options.customizeLabel;
var useLabelCustomOptions;
var usePointCustomOptions;
if (customizeLabel && customizeLabel.call) {
customizeObject = (0, _extend2.extend)({
seriesName: this.name
}, pointData);
customizeObject.series = this;
customLabelOptions = customizeLabel.call(customizeObject, customizeObject);
useLabelCustomOptions = customLabelOptions && !(0, _type.isEmptyObject)(customLabelOptions);
customLabelOptions = useLabelCustomOptions ? (0, _extend2.extend)(true, {}, options.label, customLabelOptions) : null
}
if (customizePoint && customizePoint.call) {
customizeObject = customizeObject || (0, _extend2.extend)({
seriesName: this.name
}, pointData);
customizeObject.series = this;
customOptions = customizePoint.call(customizeObject, customizeObject);
usePointCustomOptions = customOptions && !(0, _type.isEmptyObject)(customOptions)
}
if (useLabelCustomOptions || usePointCustomOptions) {
pointOptions = this._parsePointOptions(this._preparePointOptions(customOptions), customLabelOptions || options.label, pointData, point);
pointOptions.styles.useLabelCustomOptions = useLabelCustomOptions;
pointOptions.styles.usePointCustomOptions = usePointCustomOptions;
point.updateOptions(pointOptions)
}
},
show: function() {
if (!this._visible) {
this._changeVisibility(true)
}
},
hide: function() {
if (this._visible) {
this._changeVisibility(false)
}
},
_changeVisibility: function(visibility) {
this._visible = this._options.visible = visibility;
this._updatePointsVisibility();
this.hidePointTooltip();
this._options.visibilityChanged(this)
},
_updatePointsVisibility: _common.noop,
hideLabels: function() {
(0, _iterator.each)(this._points, (function(_, point) {
point._label.draw(false)
}))
},
_parsePointOptions: function(pointOptions, labelOptions, data, point) {
var options = this._options;
var styles = this._createPointStyles(pointOptions, data, point);
var parsedOptions = (0, _extend2.extend)({}, pointOptions, {
type: options.type,
rotated: options.rotated,
styles: styles,
widgetType: options.widgetType,
visibilityChanged: options.visibilityChanged
});
parsedOptions.label = function(labelOptions, defaultColor) {
var opt = labelOptions || {};
var labelFont = (0, _extend2.extend)({}, opt.font) || {};
var labelBorder = opt.border || {};
var labelConnector = opt.connector || {};
var backgroundAttr = {
fill: opt.backgroundColor || defaultColor,
"stroke-width": labelBorder.visible ? labelBorder.width || 0 : 0,
stroke: labelBorder.visible && labelBorder.width ? labelBorder.color : "none",
dashStyle: labelBorder.dashStyle
};
var connectorAttr = {
stroke: labelConnector.visible && labelConnector.width ? labelConnector.color || defaultColor : "none",
"stroke-width": labelConnector.visible ? labelConnector.width || 0 : 0
};
labelFont.color = "none" === opt.backgroundColor && "#ffffff" === (0, _utils.normalizeEnum)(labelFont.color) && "inside" !== opt.position ? defaultColor : labelFont.color;
return {
alignment: opt.alignment,
format: opt.format,
argumentFormat: opt.argumentFormat,
customizeText: (0, _type.isFunction)(opt.customizeText) ? opt.customizeText : void 0,
attributes: {
font: labelFont
},
visible: 0 !== labelFont.size ? opt.visible : false,
showForZeroValues: opt.showForZeroValues,
horizontalOffset: opt.horizontalOffset,
verticalOffset: opt.verticalOffset,
radialOffset: opt.radialOffset,
background: backgroundAttr,
position: opt.position,
connector: connectorAttr,
rotationAngle: opt.rotationAngle,
wordWrap: opt.wordWrap,
textOverflow: opt.textOverflow,
cssClass: opt.cssClass
}
}(labelOptions, styles.normal.fill);
if (this.areErrorBarsVisible()) {
parsedOptions.errorBars = options.valueErrorBar
}
return parsedOptions
},
_preparePointOptions: function(customOptions) {
var pointOptions = this._getOptionsForPoint();
return customOptions ? function(base, extra) {
var options = mergePointOptionsCore(base, extra);
options.image = (0, _extend2.extend)(true, {}, base.image, extra.image);
options.selectionStyle = mergePointOptionsCore(base.selectionStyle, extra.selectionStyle);
options.hoverStyle = mergePointOptionsCore(base.hoverStyle, extra.hoverStyle);
return options
}(pointOptions, customOptions) : pointOptions
},
_getMarkerGroupOptions: function() {
return (0, _extend2.extend)(false, {}, this._getOptionsForPoint(), {
hoverStyle: {},
selectionStyle: {}
})
},
_getAggregationMethod: function(isDiscrete, aggregateByCategory) {
var options = this.getOptions().aggregation;
var method = (0, _utils.normalizeEnum)(options.method);
var customAggregator = "custom" === method && options.calculate;
var aggregator;
if (isDiscrete && !aggregateByCategory) {
aggregator = function(_ref) {
var data = _ref.data;
return data[0]
}
} else {
aggregator = this._aggregators[method] || this._aggregators[this._defaultAggregator]
}
return customAggregator || aggregator
},
_resample: function(_ref2, data) {
var interval = _ref2.interval,
ticks = _ref2.ticks,
aggregateByCategory = _ref2.aggregateByCategory;
var that = this;
var isDiscrete = "discrete" === that.argumentAxisType || "discrete" === that.valueAxisType;
var dataIndex = 0;
var dataSelector = this._getPointDataSelector();
var options = that.getOptions();
var addAggregatedData = function(target, data, aggregationInfo) {
if (!data) {
return
}
var processData = function(d) {
var pointData = d && dataSelector(d, options);
if (pointData && that._checkData(pointData)) {
pointData.aggregationInfo = aggregationInfo;
target.push(pointData)
}
};
if (Array.isArray(data)) {
data.forEach(processData)
} else {
processData(data)
}
};
var aggregationMethod = this._getAggregationMethod(isDiscrete, aggregateByCategory);
if (isDiscrete) {
if (aggregateByCategory) {
var categories = this.getArgumentAxis().getTranslator().getBusinessRange().categories;
var groups = categories.reduce((function(g, category) {
g[category.valueOf()] = [];
return g
}), {});
data.forEach((function(dataItem) {
groups[dataItem.argument.valueOf()].push(dataItem)
}));
return categories.reduce((function(result, c) {
addAggregatedData(result, aggregationMethod({
aggregationInterval: null,
intervalStart: c,
intervalEnd: c,
data: groups[c.valueOf()].map(getData)
}, that));
return result
}), [])
} else {
return data.reduce((function(result, dataItem, index, data) {
result[1].push(dataItem);
if (index === data.length - 1 || (index + 1) % interval === 0) {
var dataInInterval = result[1];
var aggregationInfo = {
aggregationInterval: interval,
data: dataInInterval.map(getData)
};
addAggregatedData(result[0], aggregationMethod(aggregationInfo, that));
result[1] = []
}
return result
}), [
[],
[]
])[0]
}
}
var aggregatedData = [];
for (var i = 1; i < ticks.length; i++) {
var intervalEnd = ticks[i];
var intervalStart = ticks[i - 1];
var dataInInterval = [];
while (data[dataIndex] && data[dataIndex].argument < intervalEnd) {
if (data[dataIndex].argument >= intervalStart) {
dataInInterval.push(data[dataIndex])
}
dataIndex++
}
var aggregationInfo = {
intervalStart: intervalStart,
intervalEnd: intervalEnd,
aggregationInterval: interval,
data: dataInInterval.map(getData)
};
addAggregatedData(aggregatedData, aggregationMethod(aggregationInfo, that), aggregationInfo)
}
that._endUpdateData();
return aggregatedData
},
canRenderCompleteHandle: function() {
var result = this._canRenderCompleteHandle;
delete this._canRenderCompleteHandle;
return !!result
},
isHovered: function() {
return !!(1 & this.fullState)
},
isSelected: function() {
return !!(2 & this.fullState)
},
isVisible: function() {
return this._visible
},
getAllPoints: function() {
this._createAllAggregatedPoints();
return (this._points || []).slice()
},
getPointByPos: function(pos) {
this._createAllAggregatedPoints();
return (this._points || [])[pos]
},
getVisiblePoints: function() {
return (this._drawnPoints || []).slice()
},
selectPoint: function(point) {
if (!point.isSelected()) {
! function(point, legendCallback) {
point.fullState |= SELECTED_STATE;
point.applyView(legendCallback)
}(point, this._legendCallback);
this._eventPipe({
action: "pointSelect",
target: point
});
this._eventTrigger("pointSelectionChanged", {
target: point
})
}
},
deselectPoint: function(point) {
if (point.isSelected()) {
! function(point, legendCallback) {
point.fullState &= ~SELECTED_STATE;
point.applyView(legendCallback)
}(point, this._legendCallback);
this._eventPipe({
action: "pointDeselect",
target: point
});
this._eventTrigger("pointSelectionChanged", {
target: point
})
}
},
hover: function(mode) {
var eventTrigger = this._eventTrigger;
if (this.isHovered()) {
return
}
this.lastHoverMode = (0, _utils.normalizeEnum)(mode || this._options.hoverMode);
this.fullState = this.fullState | HOVER_STATE;
this._changeStyle(this.lastHoverMode, void 0, this.isSelected() && "none" !== this.lastSelectionMode);
eventTrigger("seriesHoverChanged", {
target: this
})
},
clearHover: function() {
var eventTrigger = this._eventTrigger;
if (!this.isHovered()) {
return
}
this._resetNearestPoint();
this.fullState = this.fullState & ~HOVER_STATE;
this._changeStyle(this.lastHoverMode, HOVER, this.isSelected() && "none" !== this.lastSelectionMode);
eventTrigger("seriesHoverChanged", {
target: this
})
},
hoverPoint: function(point) {
if (!point.isHovered()) {
point.clearHover();
! function(point, legendCallback) {
point.fullState |= HOVER_STATE;
point.applyView(legendCallback)
}(point, this._legendCallback);
this._canChangeView() && this._applyStyle(this._styles.hover);
this._eventPipe({
action: "pointHover",
target: point
});
this._eventTrigger("pointHoverChanged", {
target: point
})
}
},
clearPointHover: function() {
var that = this;
that.getPoints().some((function(currentPoint) {
if (currentPoint.isHovered()) {
! function(point, legendCallback) {
point.fullState &= ~HOVER_STATE;
point.applyView(legendCallback);
point.releaseHoverState()
}(currentPoint, that._legendCallback);
that._canChangeView() && that._applyStyle(that._styles.normal);
that._eventPipe({
action: "clearPointHover",
target: currentPoint
});
that._eventTrigger("pointHoverChanged", {
target: currentPoint
});
return true
}
return false
}))
},
showPointTooltip: function(point) {
triggerEvent(this._extGroups.seriesGroup, "showpointtooltip", point)
},
hidePointTooltip: function(point) {
triggerEvent(this._extGroups.seriesGroup, "hidepointtooltip", point)
},
select: function() {
if (!this.isSelected()) {
this._setSelectedState(this._options.selectionMode);
this._eventPipe({
action: "seriesSelect",
target: this
});
this._group.toForeground();
this._eventTrigger("seriesSelectionChanged", {
target: this
})
}
},
clearSelection: function() {
if (this.isSelected()) {
this._releaseSelectedState();
this._eventTrigger("seriesSelectionChanged", {
target: this
})
}
},
getPointsByArg: function(arg, skipPointsCreation) {
var argValue = arg.valueOf();
var points = this.pointsByArgument[argValue];
if (!points && !skipPointsCreation && this._createAllAggregatedPoints()) {
points = this.pointsByArgument[argValue]
}
return points || []
},
_createAllAggregatedPoints: function() {
if (this.useAggregation() && !this._useAllAggregatedPoints) {
this.createPoints(true);
return true
}
return false
},
getPointsByKeys: function(arg) {
return this.getPointsByArg(arg)
},
notify: function(data) {
var that = this;
var action = data.action;
var seriesModes = that._seriesModes;
var target = data.target;
var targetOptions = target.getOptions();
var pointHoverMode = (0, _utils.normalizeEnum)(targetOptions.hoverMode);
var selectionModeOfPoint = (0, _utils.normalizeEnum)(targetOptions.selectionMode);
if ("pointHover" === action) {
that._hoverPointHandler(target, pointHoverMode, data.notifyLegend)
} else if ("clearPointHover" === action) {
that._clearPointHoverHandler(target, pointHoverMode, data.notifyLegend)
} else if ("seriesSelect" === action) {
target !== that && "single" === seriesModes.seriesSelectionMode && that.clearSelection()
} else if ("pointSelect" === action) {
if ("single" === seriesModes.pointSelectionMode) {
that.getPoints().some((function(currentPoint) {
if (currentPoint !== target && currentPoint.isSelected()) {
that.deselectPoint(currentPoint);
return true
}
return false
}))
}
that._selectPointHandler(target, selectionModeOfPoint)
} else if ("pointDeselect" === action) {
that._deselectPointHandler(target, selectionModeOfPoint)
}
},
_selectPointHandler: function(target, mode) {
if ("allseriespoints" === mode) {
target.series === this && this._setPointsView(SELECTION, target)
} else if ("allargumentpoints" === mode) {
this.getPointsByKeys(target.argument, target.argumentIndex).forEach((function(currentPoint) {
currentPoint !== target && currentPoint.setView(SELECTION)
}))
}
},
_deselectPointHandler: function(target, mode) {
if ("allseriespoints" === mode) {
target.series === this && this._resetPointsView(SELECTION, target)
} else if ("allargumentpoints" === mode) {
this.getPointsByKeys(target.argument, target.argumentIndex).forEach((function(currentPoint) {
currentPoint !== target && currentPoint.resetView(SELECTION)
}))
}
},
_hoverPointHandler: function(target, mode, notifyLegend) {
if (target.series !== this && "allargumentpoints" === mode) {
this.getPointsByKeys(target.argument, target.argumentIndex).forEach((function(currentPoint) {
currentPoint.setView(HOVER)
}));
notifyLegend && this._legendCallback(target)
} else if ("allseriespoints" === mode && target.series === this) {
this._setPointsView(HOVER, target)
}
},
_clearPointHoverHandler: function(target, mode, notifyLegend) {
if ("allargumentpoints" === mode) {
target.series !== this && this.getPointsByKeys(target.argument, target.argumentIndex).forEach((function(currentPoint) {
currentPoint.resetView(HOVER)
}));
notifyLegend && this._legendCallback(target)
} else if ("allseriespoints" === mode && target.series === this) {
this._resetPointsView(HOVER, target)
}
},
_deletePoints: function() {
this._disposePoints(this._points);
this._points = this._drawnPoints = null
},
_deleteTrackers: function() {
(0, _iterator.each)(this._trackers || [], (function(_, tracker) {
tracker.remove()
}));
this._trackersGroup && this._trackersGroup.dispose();
this._trackers = this._trackersGroup = null
},
dispose: function() {
this._deletePoints();
this._group.dispose();
this._labelsGroup && this._labelsGroup.dispose();
this._errorBarGroup && this._errorBarGroup.dispose();
this._deleteTrackers();
this._group = this._extGroups = this._markersGroup = this._elementsGroup = this._bordersGroup = this._labelsGroup = this._errorBarGroup = this._graphics = this._rangeData = this._renderer = this._styles = this._options = this._pointOptions = this._drawnPoints = this.pointsByArgument = this._segments = this._prevSeries = null
},
correctPosition: _common.noop,
drawTrackers: _common.noop,
getNeighborPoint: _common.noop,
areErrorBarsVisible: _common.noop,
getMarginOptions: function() {
return this._patchMarginOptions({
percentStick: this.isFullStackedSeries()
})
},
getColor: function() {
return this.getLegendStyles().normal.fill
},
getOpacity: function() {
return this._options.opacity
},
getStackName: function() {
return this._stackName
},
getBarOverlapGroup: function() {
return this._options.barOverlapGroup
},
getPointByCoord: function(x, y) {
var point = this.getNeighborPoint(x, y);
return null !== point && void 0 !== point && point.coordsIn(x, y) ? point : null
},
getValueAxis: function() {
return this._valueAxis
},
getArgumentAxis: function() {
return this._argumentAxis
},
getMarkersGroup: function() {
return this._markersGroup
},
getRenderer: function() {
return this._renderer
}
};
var mixins = seriesNS.mixins;
exports.mixins = mixins
},
/*!************************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/viz/series/points/label.js ***!
\************************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
exports.Label = Label;
var _format_helper = (obj = __webpack_require__( /*! ../../../format_helper */ 71), obj && obj.__esModule ? obj : {
default: obj
});
var obj;
var _utils = __webpack_require__( /*! ../../core/utils */ 14);
var _iterator = __webpack_require__( /*! ../../../core/utils/iterator */ 3);
var _extend = __webpack_require__( /*! ../../../core/utils/extend */ 0);
var _format = _format_helper.default.format;
var _math = Math;
var _round = _math.round;
var _floor = _math.floor;
var _abs = _math.abs;
function getClosestCoord(point, coords) {
var closestDistance = 1 / 0;
var closestCoord;
(0, _iterator.each)(coords, (function(_, coord) {
var x = point[0] - coord[0];
var y = point[1] - coord[1];
var distance = x * x + y * y;
if (distance < closestDistance) {
closestDistance = distance;
closestCoord = coord
}
}));
return [_floor(closestCoord[0]), _floor(closestCoord[1])]
}
function getCrossCoord(rect, coord, indexOffset) {
return (coord - rect[0 + indexOffset]) / (rect[2 + indexOffset] - rect[0 + indexOffset]) * (rect[3 - indexOffset] - rect[1 - indexOffset]) + rect[1 - indexOffset]
}
var barPointStrategy = {
isLabelInside: function(labelPoint, figure) {
var xc = labelPoint.x + labelPoint.width / 2;
var yc = labelPoint.y + labelPoint.height / 2;
return figure.x <= xc && xc <= figure.x + figure.width && figure.y <= yc && yc <= figure.y + figure.height
},
prepareLabelPoints: function(bBox, rotatedBBox, isHorizontal, angle, figureCenter) {
var x1 = rotatedBBox.x;
var xc = x1 + rotatedBBox.width / 2;
var x2 = x1 + rotatedBBox.width - 1;
var y1 = rotatedBBox.y;
var yc = y1 + rotatedBBox.height / 2;
var y2 = y1 + rotatedBBox.height - 1;
var labelPoints;
var isRectangular = _abs(angle) % 90 === 0;
if (figureCenter[0] > x1 && figureCenter[0] < x2) {
if (isRectangular) {
labelPoints = [
[figureCenter[0], _abs(figureCenter[1] - y1) < _abs(figureCenter[1] - y2) ? y1 : y2]
]
} else {
labelPoints = [
[figureCenter[0], getCrossCoord([x1, y1, x2, y2], figureCenter[0], 0)]
]
}
} else if (figureCenter[1] > y1 && figureCenter[1] < y2) {
if (isRectangular) {
labelPoints = [
[_abs(figureCenter[0] - x1) < _abs(figureCenter[0] - x2) ? x1 : x2, figureCenter[1]]
]
} else {
labelPoints = [
[getCrossCoord([x1, y1, x2, y2], figureCenter[1], 1), figureCenter[1]]
]
}
} else if (isRectangular) {
labelPoints = [
[x1, y1],
[isHorizontal ? x1 : xc, isHorizontal ? yc : y1],
[x2, y1],
[x1, y2],
[isHorizontal ? x2 : xc, isHorizontal ? yc : y2],
[x2, y2]
]
} else {
labelPoints = [
[xc, yc]
]
}
return labelPoints
},
isHorizontal: function(bBox, figure) {
return bBox.x > figure.x + figure.width || bBox.x + bBox.width < figure.x
},
getFigureCenter: function(figure) {
return [_floor(figure.x + figure.width / 2), _floor(figure.y + figure.height / 2)]
},
findFigurePoint: function(figure, labelPoint) {
var figureCenter = barPointStrategy.getFigureCenter(figure);
var point = getClosestCoord(labelPoint, [
[figure.x, figureCenter[1]],
[figureCenter[0], figure.y + figure.height],
[figure.x + figure.width, figureCenter[1]],
[figureCenter[0], figure.y]
]);
return point
},
adjustPoints: function(points) {
var lineIsVertical = _abs(points[1] - points[3]) <= 1;
var lineIsHorizontal = _abs(points[0] - points[2]) <= 1;
if (lineIsHorizontal) {
points[0] = points[2]
}
if (lineIsVertical) {
points[1] = points[3]
}
return points
}
};
var symbolPointStrategy = {
isLabelInside: function() {
return false
},
prepareLabelPoints: barPointStrategy.prepareLabelPoints,
isHorizontal: function(bBox, figure) {
return bBox.x > figure.x + figure.r || bBox.x + bBox.width < figure.x - figure.r
},
getFigureCenter: function(figure) {
return [figure.x, figure.y]
},
findFigurePoint: function(figure, labelPoint) {
var angle = Math.atan2(figure.y - labelPoint[1], labelPoint[0] - figure.x);
return [_round(figure.x + figure.r * Math.cos(angle)), _round(figure.y - figure.r * Math.sin(angle))]
},
adjustPoints: barPointStrategy.adjustPoints
};
var piePointStrategy = {
isLabelInside: function(_0, _1, isOutside) {
return !isOutside
},
prepareLabelPoints: function(bBox, rotatedBBox, isHorizontal, angle) {
var xl = bBox.x;
var xr = xl + bBox.width;
var xc = xl + _round(bBox.width / 2);
var yt = bBox.y;
var yb = yt + bBox.height;
var yc = yt + _round(bBox.height / 2);
var points = [
[
[xl, yt],
[xr, yt]
],
[
[xr, yt],
[xr, yb]
],
[
[xr, yb],
[xl, yb]
],
[
[xl, yb],
[xl, yt]
]
];
var cosSin = (0, _utils.getCosAndSin)(angle);
if (0 === angle) {
points = isHorizontal ? [
[xl, yc],
[xr, yc]
] : [
[xc, yt],
[xc, yb]
]
} else {
points = points.map((function(pair) {
return pair.map((function(point) {
return [_round((point[0] - xc) * cosSin.cos + (point[1] - yc) * cosSin.sin + xc), _round(-(point[0] - xc) * cosSin.sin + (point[1] - yc) * cosSin.cos + yc)]
}))
})).reduce((function(r, pair) {
var point1x = pair[0][0];
var point1y = pair[0][1];
var point2x = pair[1][0];
var point2y = pair[1][1];
if (isHorizontal) {
if (point1y >= yc && yc >= point2y || point1y <= yc && yc <= point2y) {
r.push([(yc - point1y) * (point2x - point1x) / (point2y - point1y) + point1x, yc])
}
} else if (point1x >= xc && xc >= point2x || point1x <= xc && xc <= point2x) {
r.push([xc, (xc - point1x) * (point2y - point1y) / (point2x - point1x) + point1y])
}
return r
}), [])
}
return points
},
isHorizontal: function(bBox, figure) {
return bBox.x > figure.x || figure.x > bBox.x + bBox.width
},
getFigureCenter: symbolPointStrategy.getFigureCenter,
findFigurePoint: function(figure, labelPoint, isHorizontal) {
if (!isHorizontal) {
return [figure.x, figure.y]
}
var labelX = labelPoint[0];
var x = _round(figure.x + (figure.y - labelPoint[1]) / Math.tan((0, _utils.degreesToRadians)(figure.angle)));
var points = [figure.x, figure.y, x, labelPoint[1]];
if (!(figure.x <= x && x <= labelX) && !(labelX <= x && x <= figure.x)) {
if (_abs(figure.x - labelX) < 12) {
points = [figure.x, figure.y]
} else if (figure.x <= labelX) {
points[2] = figure.x + 12
} else {
points[2] = figure.x - 12
}
}
return points
},
adjustPoints: function(points) {
return points
}
};
function selectStrategy(figure) {
return void 0 !== figure.angle && piePointStrategy || void 0 !== figure.r && symbolPointStrategy || barPointStrategy
}
function disposeItem(obj, field) {
obj[field] && obj[field].dispose();
obj[field] = null
}
function checkBackground(background) {
return background && (background.fill && "none" !== background.fill || background["stroke-width"] > 0 && background.stroke && "none" !== background.stroke)
}
function checkConnector(connector) {
return connector && connector["stroke-width"] > 0 && connector.stroke && "none" !== connector.stroke
}
function Label(renderSettings) {
this._renderer = renderSettings.renderer;
this._container = renderSettings.labelsGroup;
this._point = renderSettings.point;
this._strategy = renderSettings.strategy;
this._rowCount = 1
}
Label.prototype = {
constructor: Label,
setColor: function(color) {
this._color = color
},
setOptions: function(options) {
this._options = options
},
setData: function(data) {
this._data = data
},
setDataField: function(fieldName, fieldValue) {
this._data = this._data || {};
this._data[fieldName] = fieldValue
},
getData: function() {
return this._data
},
setFigureToDrawConnector: function(figure) {
this._figure = figure
},
dispose: function() {
disposeItem(this, "_group");
this._data = this._options = this._textContent = this._visible = this._insideGroup = this._text = this._background = this._connector = this._figure = null
},
_setVisibility: function(value, state) {
this._group && this._group.attr({
visibility: value
});
this._visible = state
},
isVisible: function() {
return this._visible
},
hide: function(holdInvisible) {
this._holdVisibility = !!holdInvisible;
this._hide()
},
_hide: function() {
this._setVisibility("hidden", false)
},
show: function(holdVisible) {
var correctPosition = !this._drawn;
if (this._point.hasValue()) {
this._holdVisibility = !!holdVisible;
this._show();
correctPosition && this._point.correctLabelPosition(this)
}
},
_show: function() {
var renderer = this._renderer;
var container = this._container;
var options = this._options || {};
var text = this._textContent = function(data, options) {
var format = options.format;
data.valueText = _format(data.value, format);
data.argumentText = _format(data.argument, options.argumentFormat);
if (void 0 !== data.percent) {
data.percentText = _format(data.percent, {
type: "percent",
precision: format && format.percentPrecision
})
}
if (void 0 !== data.total) {
data.totalText = _format(data.total, format)
}
if (void 0 !== data.openValue) {
data.openValueText = _format(data.openValue, format)
}
if (void 0 !== data.closeValue) {
data.closeValueText = _format(data.closeValue, format)
}
if (void 0 !== data.lowValue) {
data.lowValueText = _format(data.lowValue, format)
}
if (void 0 !== data.highValue) {
data.highValueText = _format(data.highValue, format)
}
if (void 0 !== data.reductionValue) {
data.reductionValueText = _format(data.reductionValue, format)
}
return options.customizeText ? options.customizeText.call(data, data) : data.valueText
}(this._data, this._options) || null;
if (text) {
if (!this._group) {
this._group = renderer.g().append(container);
this._insideGroup = renderer.g().append(this._group);
this._text = renderer.text("", 0, 0).append(this._insideGroup)
}
this._text.css(options.attributes ? (0, _utils.patchFontOptions)(options.attributes.font) : {});
if (checkBackground(options.background)) {
this._background = this._background || renderer.rect().append(this._insideGroup).toBackground();
this._background.attr(options.background);
this._color && this._background.attr({
fill: this._color
})
} else {
disposeItem(this, "_background")
}
if (checkConnector(options.connector)) {
this._connector = this._connector || renderer.path([], "line").sharp().append(this._group).toBackground();
this._connector.attr(options.connector);
this._color && this._connector.attr({
stroke: this._color
})
} else {
disposeItem(this, "_connector")
}
this._text.attr({
text: text,
align: options.textAlignment,
class: options.cssClass
});
this._updateBackground(this._text.getBBox());
this._setVisibility("visible", true);
this._drawn = true
} else {
this._hide()
}
},
_getLabelVisibility: function(isVisible) {
return this._holdVisibility ? this.isVisible() : isVisible
},
draw: function(isVisible) {
if (this._getLabelVisibility(isVisible)) {
this._show();
this._point && this._point.correctLabelPosition(this)
} else {
this._drawn = false;
this._hide()
}
return this
},
_updateBackground: function(bBox) {
if (this._background) {
bBox.x -= 8;
bBox.y -= 4;
bBox.width += 16;
bBox.height += 8;
this._background.attr(bBox)
}
this._bBoxWithoutRotation = (0, _extend.extend)({}, bBox);
var rotationAngle = this._options.rotationAngle || 0;
this._insideGroup.rotate(rotationAngle, bBox.x + bBox.width / 2, bBox.y + bBox.height / 2);
bBox = (0, _utils.rotateBBox)(bBox, [bBox.x + bBox.width / 2, bBox.y + bBox.height / 2], -rotationAngle);
this._bBox = bBox
},
getFigureCenter: function() {
var figure = this._figure;
var strategy = this._strategy || selectStrategy(figure);
return strategy.getFigureCenter(figure)
},
_getConnectorPoints: function() {
var figure = this._figure;
var options = this._options;
var strategy = this._strategy || selectStrategy(figure);
var bBox = this._shiftBBox(this._bBoxWithoutRotation);
var rotatedBBox = this.getBoundingRect();
var labelPoint;
var points = [];
var isHorizontal;
if (!strategy.isLabelInside(bBox, figure, "inside" !== options.position)) {
isHorizontal = strategy.isHorizontal(bBox, figure);
var figureCenter = this.getFigureCenter();
points = strategy.prepareLabelPoints(bBox, rotatedBBox, isHorizontal, -options.rotationAngle || 0, figureCenter);
labelPoint = getClosestCoord(figureCenter, points);
points = strategy.findFigurePoint(figure, labelPoint, isHorizontal);
points = points.concat(labelPoint)
}
return strategy.adjustPoints(points)
},
fit: function(maxWidth) {
var padding = this._background ? 16 : 0;
var rowCountChanged = false;
if (this._text) {
var result = this._text.setMaxSize(maxWidth - padding, void 0, this._options);
var rowCount = result.rowCount;
if (0 === rowCount) {
rowCount = 1
}
if (rowCount !== this._rowCount) {
rowCountChanged = true;
this._rowCount = rowCount
}
result.textIsEmpty && disposeItem(this, "_background")
}
this._updateBackground(this._text.getBBox());
return rowCountChanged
},
resetEllipsis: function() {
this._text && this._text.restoreText();
this._updateBackground(this._text.getBBox())
},
setTrackerData: function(point) {
this._text.data({
"chart-data-point": point
});
this._background && this._background.data({
"chart-data-point": point
})
},
hideInsideLabel: function(coords) {
return this._point.hideInsideLabel(this, coords)
},
getPoint: function() {
return this._point
},
shift: function(x, y) {
if (this._textContent) {
this._insideGroup.attr({
translateX: this._x = _round(x - this._bBox.x),
translateY: this._y = _round(y - this._bBox.y)
});
if (this._connector) {
this._connector.attr({
points: this._getConnectorPoints()
})
}
}
return this
},
getBoundingRect: function() {
return this._shiftBBox(this._bBox)
},
_shiftBBox: function(bBox) {
return this._textContent ? {
x: bBox.x + this._x,
y: bBox.y + this._y,
width: bBox.width,
height: bBox.height
} : {}
},
getLayoutOptions: function() {
var options = this._options;
return {
alignment: options.alignment,
background: checkBackground(options.background),
horizontalOffset: options.horizontalOffset,
verticalOffset: options.verticalOffset,
radialOffset: options.radialOffset,
position: options.position,
connectorOffset: (checkConnector(options.connector) ? 12 : 0) + (checkBackground(options.background) ? 8 : 0)
}
}
}
},
/*!*******************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/viz/axes/base_axis.js ***!
\*******************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
function _typeof(obj) {
if ("function" === typeof Symbol && "symbol" === typeof Symbol.iterator) {
_typeof = function(obj) {
return typeof obj
}
} else {
_typeof = function(obj) {
return obj && "function" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj
}
}
return _typeof(obj)
}
exports.Axis = void 0;
var _smart_formatter = __webpack_require__( /*! ./smart_formatter */ 503);
var _utils = __webpack_require__( /*! ../core/utils */ 14);
var _type = __webpack_require__( /*! ../../core/utils/type */ 1);
var _axes_constants = _interopRequireDefault(__webpack_require__( /*! ./axes_constants */ 232));
var _extend = __webpack_require__( /*! ../../core/utils/extend */ 0);
var _array = __webpack_require__( /*! ../../core/utils/array */ 12);
var _format_helper = _interopRequireDefault(__webpack_require__( /*! ../../format_helper */ 71));
var _parse_utils = __webpack_require__( /*! ../components/parse_utils */ 323);
var _tick_generator = __webpack_require__( /*! ./tick_generator */ 504);
var _translator2d = __webpack_require__( /*! ../translators/translator2d */ 327);
var _range = __webpack_require__( /*! ../translators/range */ 132);
var _tick = __webpack_require__( /*! ./tick */ 505);
var _math2 = __webpack_require__( /*! ../../core/utils/math */ 31);
var _date = _interopRequireDefault(__webpack_require__( /*! ../../core/utils/date */ 19));
var _common = __webpack_require__( /*! ../../core/utils/common */ 4);
var _xy_axes = _interopRequireDefault(__webpack_require__( /*! ./xy_axes */ 506));
var polarMethods = function(obj, nodeInterop) {
if (!nodeInterop && obj && obj.__esModule) {
return obj
}
if (null === obj || "object" !== _typeof(obj) && "function" !== typeof obj) {
return {
default: obj
}
}
var cache = _getRequireWildcardCache(nodeInterop);
if (cache && cache.has(obj)) {
return cache.get(obj)
}
var newObj = {};
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
for (var key in obj) {
if ("default" !== key && Object.prototype.hasOwnProperty.call(obj, key)) {
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
if (desc && (desc.get || desc.set)) {
Object.defineProperty(newObj, key, desc)
} else {
newObj[key] = obj[key]
}
}
}
newObj.default = obj;
if (cache) {
cache.set(obj, newObj)
}
return newObj
}(__webpack_require__( /*! ./polar_axes */ 1024));
var _constant_line = _interopRequireDefault(__webpack_require__( /*! ./constant_line */ 1025));
var _strip = _interopRequireDefault(__webpack_require__( /*! ./strip */ 1026));
var _deferred = __webpack_require__( /*! ../../core/utils/deferred */ 6);
var _axes_utils = __webpack_require__( /*! ./axes_utils */ 507);
function _getRequireWildcardCache(nodeInterop) {
if ("function" !== typeof WeakMap) {
return null
}
var cacheBabelInterop = new WeakMap;
var cacheNodeInterop = new WeakMap;
return (_getRequireWildcardCache = function(nodeInterop) {
return nodeInterop ? cacheNodeInterop : cacheBabelInterop
})(nodeInterop)
}
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
default: obj
}
}
function _defineProperty(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
})
} else {
obj[key] = value
}
return obj
}
var convertTicksToValues = _axes_constants.default.convertTicksToValues;
var _math = Math;
var _abs = _math.abs;
var _max = _math.max;
var _min = _math.min;
var _isArray = Array.isArray;
var TOP = _axes_constants.default.top;
var BOTTOM = _axes_constants.default.bottom;
var LEFT = _axes_constants.default.left;
var RIGHT = _axes_constants.default.right;
var CENTER = _axes_constants.default.center;
var KEEP = "keep";
var SHIFT = "shift";
var RESET = "reset";
var dateIntervals_day = 864e5,
dateIntervals_week = 6048e5;
function getTickGenerator(options, incidentOccurred, skipTickGeneration, rangeIsEmpty, adjustDivisionFactor, _ref) {
var _options$workWeek;
var allowNegatives = _ref.allowNegatives,
linearThreshold = _ref.linearThreshold;
return (0, _tick_generator.tickGenerator)({
axisType: options.type,
dataType: options.dataType,
logBase: options.logarithmBase,
allowNegatives: allowNegatives,
linearThreshold: linearThreshold,
axisDivisionFactor: adjustDivisionFactor(options.axisDivisionFactor || 50),
minorAxisDivisionFactor: adjustDivisionFactor(options.minorAxisDivisionFactor || 15),
numberMultipliers: options.numberMultipliers,
calculateMinors: options.minorTick.visible || options.minorGrid.visible || options.calculateMinors,
allowDecimals: options.allowDecimals,
endOnTick: options.endOnTick,
incidentOccurred: incidentOccurred,
firstDayOfWeek: null === (_options$workWeek = options.workWeek) || void 0 === _options$workWeek ? void 0 : _options$workWeek[0],
skipTickGeneration: skipTickGeneration,
skipCalculationLimits: options.skipCalculationLimits,
generateExtraTick: options.generateExtraTick,
minTickInterval: options.minTickInterval,
rangeIsEmpty: rangeIsEmpty
})
}
function createMajorTick(axis, renderer, skippedCategory) {
var options = axis.getOptions();
return (0, _tick.tick)(axis, renderer, options.tick, options.grid, skippedCategory, false)
}
function createMinorTick(axis, renderer) {
var options = axis.getOptions();
return (0, _tick.tick)(axis, renderer, options.minorTick, options.minorGrid)
}
function createBoundaryTick(axis, renderer, isFirst) {
var options = axis.getOptions();
return (0, _tick.tick)(axis, renderer, (0, _extend.extend)({}, options.tick, {
visible: options.showCustomBoundaryTicks
}), options.grid, void 0, false, isFirst ? -1 : 1)
}
function callAction(elements, action, actionArgument1, actionArgument2) {
(elements || []).forEach((function(e) {
return e[action](actionArgument1, actionArgument2)
}))
}
function initTickCoords(ticks) {
callAction(ticks, "initCoords")
}
function drawTickMarks(ticks, options) {
callAction(ticks, "drawMark", options)
}
function drawGrids(ticks, drawLine) {
callAction(ticks, "drawGrid", drawLine)
}
function updateTicksPosition(ticks, options, animate) {
callAction(ticks, "updateTickPosition", options, animate)
}
function updateGridsPosition(ticks, animate) {
callAction(ticks, "updateGridPosition", animate)
}
function cleanUpInvalidTicks(ticks) {
var i = ticks.length - 1;
for (i; i >= 0; i--) {
if (!removeInvalidTick(ticks, i)) {
break
}
}
for (i = 0; i < ticks.length; i++) {
if (removeInvalidTick(ticks, i)) {
i--
} else {
break
}
}
}
function removeInvalidTick(ticks, i) {
if (null === ticks[i].coords.x || null === ticks[i].coords.y) {
ticks.splice(i, 1);
return true
}
return false
}
function getOptimalAngle(boxes, labelOpt) {
var angle = 180 * _math.asin((boxes[0].height + labelOpt.minSpacing) / (boxes[1].x - boxes[0].x)) / _math.PI;
return angle < 45 ? -45 : -90
}
function updateLabels(ticks, step, func) {
ticks.forEach((function(tick, index) {
if (tick.getContentContainer()) {
if (index % step !== 0) {
tick.removeLabel()
} else if (func) {
func(tick, index)
}
}
}))
}
function getZoomBoundValue(optionValue, dataValue) {
if (void 0 === optionValue) {
return dataValue
} else if (null === optionValue) {
return
} else {
return optionValue
}
}
var Axis = function(renderSettings) {
this._renderer = renderSettings.renderer;
this._incidentOccurred = renderSettings.incidentOccurred;
this._eventTrigger = renderSettings.eventTrigger;
this._stripsGroup = renderSettings.stripsGroup;
this._stripLabelAxesGroup = renderSettings.stripLabelAxesGroup;
this._labelsAxesGroup = renderSettings.labelsAxesGroup;
this._constantLinesGroup = renderSettings.constantLinesGroup;
this._scaleBreaksGroup = renderSettings.scaleBreaksGroup;
this._axesContainerGroup = renderSettings.axesContainerGroup;
this._gridContainerGroup = renderSettings.gridGroup;
this._axisCssPrefix = renderSettings.widgetClass + "-" + (renderSettings.axisClass ? renderSettings.axisClass + "-" : "");
this._setType(renderSettings.axisType, renderSettings.drawingType);
this._createAxisGroups();
this._translator = this._createTranslator();
this.isArgumentAxis = renderSettings.isArgumentAxis;
this._viewport = {};
this._firstDrawing = true;
this._initRange = {};
this._getTemplate = renderSettings.getTemplate
};
exports.Axis = Axis;
Axis.prototype = {
constructor: Axis,
_drawAxis: function() {
var options = this._options;
if (!options.visible) {
return
}
this._axisElement = this._createAxisElement();
this._updateAxisElementPosition();
this._axisElement.attr({
"stroke-width": options.width,
stroke: options.color,
"stroke-opacity": options.opacity
}).sharp(this._getSharpParam(true), this.getAxisSharpDirection()).append(this._axisLineGroup)
},
_createPathElement: function(points, attr, sharpDirection) {
return this.sharp(this._renderer.path(points, "line").attr(attr), sharpDirection)
},
sharp: function(svgElement) {
var sharpDirection = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1;
return svgElement.sharp(this._getSharpParam(), sharpDirection)
},
customPositionIsAvailable: function() {
return false
},
getOrthogonalAxis: _common.noop,
getCustomPosition: _common.noop,
getCustomBoundaryPosition: _common.noop,
resolveOverlappingForCustomPositioning: _common.noop,
hasNonBoundaryPosition: function() {
return false
},
customPositionIsBoundaryOrthogonalAxis: function() {
return false
},
getResolvedBoundaryPosition: function() {
return this.getOptions().position
},
getAxisSharpDirection: function() {
var position = this.getResolvedBoundaryPosition();
return this.hasNonBoundaryPosition() || position !== BOTTOM && position !== RIGHT ? 1 : -1
},
getSharpDirectionByCoords: function(coords) {
var canvas = this._getCanvasStartEnd();
var maxCoord = Math.max(canvas.start, canvas.end);
return this.getRadius ? 0 : maxCoord !== coords[this._isHorizontal ? "x" : "y"] ? 1 : -1
},
_getGridLineDrawer: function() {
var that = this;
return function(tick, gridStyle) {
var grid = that._getGridPoints(tick.coords);
if (grid.points) {
return that._createPathElement(grid.points, gridStyle, that.getSharpDirectionByCoords(tick.coords))
}
return null
}
},
_getGridPoints: function(coords) {
var isHorizontal = this._isHorizontal;
var tickPositionField = isHorizontal ? "x" : "y";
var orthogonalPositions = this._orthogonalPositions;
var positionFrom = orthogonalPositions.start;
var positionTo = orthogonalPositions.end;
var borderOptions = this.borderOptions;
var canvasStart = isHorizontal ? LEFT : TOP;
var canvasEnd = isHorizontal ? RIGHT : BOTTOM;
var axisCanvas = this.getCanvas();
var canvas = {
left: axisCanvas.left,
right: axisCanvas.width - axisCanvas.right,
top: axisCanvas.top,
bottom: axisCanvas.height - axisCanvas.bottom
};
var firstBorderLinePosition = borderOptions.visible && borderOptions[canvasStart] ? canvas[canvasStart] : void 0;
var lastBorderLinePosition = borderOptions.visible && borderOptions[canvasEnd] ? canvas[canvasEnd] : void 0;
var minDelta = 4 + firstBorderLinePosition;
var maxDelta = lastBorderLinePosition - 4;
if (this.areCoordsOutsideAxis(coords) || void 0 === coords[tickPositionField] || coords[tickPositionField] < minDelta || coords[tickPositionField] > maxDelta) {
return {
points: null
}
}
return {
points: isHorizontal ? null !== coords[tickPositionField] ? [coords[tickPositionField], positionFrom, coords[tickPositionField], positionTo] : null : null !== coords[tickPositionField] ? [positionFrom, coords[tickPositionField], positionTo, coords[tickPositionField]] : null
}
},
_getConstantLinePos: function(parsedValue, canvasStart, canvasEnd) {
var value = this._getTranslatedCoord(parsedValue);
if (!(0, _type.isDefined)(value) || value < _min(canvasStart, canvasEnd) || value > _max(canvasStart, canvasEnd)) {
return
}
return value
},
_getConstantLineGraphicAttributes: function(value) {
var positionFrom = this._orthogonalPositions.start;
var positionTo = this._orthogonalPositions.end;
return {
points: this._isHorizontal ? [value, positionFrom, value, positionTo] : [positionFrom, value, positionTo, value]
}
},
_createConstantLine: function(value, attr) {
return this._createPathElement(this._getConstantLineGraphicAttributes(value).points, attr, (coord = value, axisCanvas = this._getCanvasStartEnd(), Math.max(axisCanvas.start, axisCanvas.end) !== coord ? 1 : -1));
var coord, axisCanvas
},
_drawConstantLineLabelText: function(text, x, y, _ref2, group) {
var font = _ref2.font,
cssClass = _ref2.cssClass;
return this._renderer.text(text, x, y).css((0, _utils.patchFontOptions)((0, _extend.extend)({}, this._options.label.font, font))).attr({
align: "center",
class: cssClass
}).append(group)
},
_drawConstantLineLabels: function(parsedValue, lineLabelOptions, value, group) {
var _text;
var text = lineLabelOptions.text;
var options = this._options;
var labelOptions = options.label;
this._checkAlignmentConstantLineLabels(lineLabelOptions);
text = null !== (_text = text) && void 0 !== _text ? _text : this.formatLabel(parsedValue, labelOptions);
var coords = this._getConstantLineLabelsCoords(value, lineLabelOptions);
return this._drawConstantLineLabelText(text, coords.x, coords.y, lineLabelOptions, group)
},
_getStripPos: function(startValue, endValue, canvasStart, canvasEnd, range) {
var isContinuous = !!(range.minVisible || range.maxVisible);
var categories = (range.categories || []).reduce((function(result, cat) {
result.push(cat.valueOf());
return result
}), []);
var start;
var end;
var swap;
var startCategoryIndex;
var endCategoryIndex;
if (!isContinuous) {
if ((0, _type.isDefined)(startValue) && (0, _type.isDefined)(endValue)) {
var parsedStartValue = this.parser(startValue);
var parsedEndValue = this.parser(endValue);
startCategoryIndex = (0, _array.inArray)((0, _type.isDefined)(parsedStartValue) ? parsedStartValue.valueOf() : void 0, categories);
endCategoryIndex = (0, _array.inArray)((0, _type.isDefined)(parsedEndValue) ? parsedEndValue.valueOf() : void 0, categories);
if (-1 === startCategoryIndex || -1 === endCategoryIndex) {
return {
from: 0,
to: 0,
outOfCanvas: true
}
}
if (startCategoryIndex > endCategoryIndex) {
swap = endValue;
endValue = startValue;
startValue = swap
}
}
}
if ((0, _type.isDefined)(startValue)) {
startValue = this.validateUnit(startValue, "E2105", "strip");
start = this._getTranslatedCoord(startValue, -1)
} else {
start = canvasStart
}
if ((0, _type.isDefined)(endValue)) {
endValue = this.validateUnit(endValue, "E2105", "strip");
end = this._getTranslatedCoord(endValue, 1)
} else {
end = canvasEnd
}
var stripPosition = start < end ? {
from: start,
to: end
} : {
from: end,
to: start
};
var visibleArea = this.getVisibleArea();
if (stripPosition.from <= visibleArea[0] && stripPosition.to <= visibleArea[0] || stripPosition.from >= visibleArea[1] && stripPosition.to >= visibleArea[1]) {
stripPosition.outOfCanvas = true
}
return stripPosition
},
_getStripGraphicAttributes: function(fromPoint, toPoint) {
var x;
var y;
var width;
var height;
var orthogonalPositions = this._orthogonalPositions;
var positionFrom = orthogonalPositions.start;
var positionTo = orthogonalPositions.end;
if (this._isHorizontal) {
x = fromPoint;
y = _min(positionFrom, positionTo);
width = toPoint - fromPoint;
height = _abs(positionFrom - positionTo)
} else {
x = _min(positionFrom, positionTo);
y = fromPoint;
width = _abs(positionFrom - positionTo);
height = _abs(fromPoint - toPoint)
}
return {
x: x,
y: y,
width: width,
height: height
}
},
_createStrip: function(attrs) {
return this._renderer.rect(attrs.x, attrs.y, attrs.width, attrs.height)
},
_adjustStripLabels: function() {
var that = this;
this._strips.forEach((function(strip) {
if (strip.label) {
strip.label.attr(that._getAdjustedStripLabelCoords(strip))
}
}))
},
_adjustLabelsCoord: function(offset, maxWidth, checkCanvas) {
var _this = this;
var getContainerAttrs = function(tick) {
return _this._getLabelAdjustedCoord(tick, offset + (tick.labelOffset || 0), maxWidth, checkCanvas)
};
this._majorTicks.forEach((function(tick) {
if (tick.label) {
tick.updateMultilineTextAlignment();
tick.label.attr(getContainerAttrs(tick))
} else {
tick.templateContainer && tick.templateContainer.attr(getContainerAttrs(tick))
}
}))
},
_adjustLabels: function(offset) {
var options = this.getOptions();
var positionsAreConsistent = options.position === options.label.position;
var maxSize = this._majorTicks.reduce((function(size, tick) {
if (!tick.getContentContainer()) {
return size
}
var bBox = tick.labelRotationAngle ? (0, _utils.rotateBBox)(tick.labelBBox, [tick.labelCoords.x, tick.labelCoords.y], -tick.labelRotationAngle) : tick.labelBBox;
return {
width: _max(size.width || 0, bBox.width),
height: _max(size.height || 0, bBox.height),
offset: _max(size.offset || 0, tick.labelOffset || 0)
}
}), {});
var additionalOffset = positionsAreConsistent ? this._isHorizontal ? maxSize.height : maxSize.width : 0;
this._adjustLabelsCoord(offset, maxSize.width);
return offset + additionalOffset + (additionalOffset && this._options.label.indentFromAxis) + (positionsAreConsistent ? maxSize.offset : 0)
},
_getLabelAdjustedCoord: function(tick, offset, maxWidth) {
offset = offset || 0;
var options = this._options;
var templateBox = tick.templateContainer && tick.templateContainer.getBBox();
var box = templateBox || (0, _utils.rotateBBox)(tick.labelBBox, [tick.labelCoords.x, tick.labelCoords.y], -tick.labelRotationAngle || 0);
var textAlign = tick.labelAlignment || options.label.alignment;
var isDiscrete = "discrete" === this._options.type;
var isFlatLabel = tick.labelRotationAngle % 90 === 0;
var indentFromAxis = options.label.indentFromAxis;
var labelPosition = options.label.position;
var axisPosition = this._axisPosition;
var labelCoords = tick.labelCoords;
var labelX = labelCoords.x;
var translateX;
var translateY;
if (this._isHorizontal) {
if (labelPosition === BOTTOM) {
translateY = axisPosition + indentFromAxis - box.y + offset
} else {
translateY = axisPosition - indentFromAxis - (box.y + box.height) - offset
}
if (textAlign === RIGHT) {
translateX = isDiscrete && isFlatLabel ? tick.coords.x - (box.x + box.width) : labelX - box.x - box.width
} else if (textAlign === LEFT) {
translateX = isDiscrete && isFlatLabel ? labelX - box.x - (tick.coords.x - labelX) : labelX - box.x
} else {
translateX = labelX - box.x - box.width / 2
}
} else {
translateY = labelCoords.y - box.y - box.height / 2;
if (labelPosition === LEFT) {
if (textAlign === LEFT) {
translateX = axisPosition - indentFromAxis - maxWidth - box.x
} else if (textAlign === CENTER) {
translateX = axisPosition - indentFromAxis - maxWidth / 2 - box.x - box.width / 2
} else {
translateX = axisPosition - indentFromAxis - box.x - box.width
}
translateX -= offset
} else {
if (textAlign === RIGHT) {
translateX = axisPosition + indentFromAxis + maxWidth - box.x - box.width
} else if (textAlign === CENTER) {
translateX = axisPosition + indentFromAxis + maxWidth / 2 - box.x - box.width / 2
} else {
translateX = axisPosition + indentFromAxis - box.x
}
translateX += offset
}
}
return {
translateX: translateX,
translateY: translateY
}
},
_createAxisConstantLineGroups: function() {
var renderer = this._renderer;
var classSelector = this._axisCssPrefix;
var constantLinesClass = classSelector + "constant-lines";
var insideGroup = renderer.g().attr({
class: constantLinesClass
});
var outsideGroup1 = renderer.g().attr({
class: constantLinesClass
});
var outsideGroup2 = renderer.g().attr({
class: constantLinesClass
});
return {
inside: insideGroup,
outside1: outsideGroup1,
left: outsideGroup1,
top: outsideGroup1,
outside2: outsideGroup2,
right: outsideGroup2,
bottom: outsideGroup2,
remove: function() {
this.inside.remove();
this.outside1.remove();
this.outside2.remove()
},
clear: function() {
this.inside.clear();
this.outside1.clear();
this.outside2.clear()
}
}
},
_createAxisGroups: function() {
var renderer = this._renderer;
var classSelector = this._axisCssPrefix;
this._axisGroup = renderer.g().attr({
class: classSelector + "axis"
}).enableLinks();
this._axisStripGroup = renderer.g().attr({
class: classSelector + "strips"
});
this._axisGridGroup = renderer.g().attr({
class: classSelector + "grid"
});
this._axisElementsGroup = renderer.g().attr({
class: classSelector + "elements"
});
this._axisLineGroup = renderer.g().attr({
class: classSelector + "line"
}).linkOn(this._axisGroup, "axisLine").linkAppend();
this._axisTitleGroup = renderer.g().attr({
class: classSelector + "title"
}).append(this._axisGroup);
this._axisConstantLineGroups = {
above: this._createAxisConstantLineGroups(),
under: this._createAxisConstantLineGroups()
};
this._axisStripLabelGroup = renderer.g().attr({
class: classSelector + "axis-labels"
})
},
_clearAxisGroups: function() {
this._axisGroup.remove();
this._axisStripGroup.remove();
this._axisStripLabelGroup.remove();
this._axisConstantLineGroups.above.remove();
this._axisConstantLineGroups.under.remove();
this._axisGridGroup.remove();
this._axisTitleGroup.clear();
if (!this._options.label.template || !this.isRendered()) {
this._axisElementsGroup.remove();
this._axisElementsGroup.clear()
}
this._axisLineGroup && this._axisLineGroup.clear();
this._axisStripGroup && this._axisStripGroup.clear();
this._axisGridGroup && this._axisGridGroup.clear();
this._axisConstantLineGroups.above.clear();
this._axisConstantLineGroups.under.clear();
this._axisStripLabelGroup && this._axisStripLabelGroup.clear()
},
_getLabelFormatObject: function(value, labelOptions, range, point, tickInterval, ticks) {
range = range || this._getViewportRange();
var formatObject = {
value: value,
valueText: (0, _smart_formatter.smartFormatter)(value, {
labelOptions: labelOptions,
ticks: ticks || convertTicksToValues(this._majorTicks),
tickInterval: null !== tickInterval && void 0 !== tickInterval ? tickInterval : this._tickInterval,
dataType: this._options.dataType,
logarithmBase: this._options.logarithmBase,
type: this._options.type,
showTransition: !this._options.marker.visible,
point: point
}) || "",
min: range.minVisible,
max: range.maxVisible
};
if (point) {
formatObject.point = point
}
return formatObject
},
formatLabel: function(value, labelOptions, range, point, tickInterval, ticks) {
var formatObject = this._getLabelFormatObject(value, labelOptions, range, point, tickInterval, ticks);
return (0, _type.isFunction)(labelOptions.customizeText) ? labelOptions.customizeText.call(formatObject, formatObject) : formatObject.valueText
},
formatHint: function(value, labelOptions, range) {
var formatObject = this._getLabelFormatObject(value, labelOptions, range);
return (0, _type.isFunction)(labelOptions.customizeHint) ? labelOptions.customizeHint.call(formatObject, formatObject) : void 0
},
formatRange: function(startValue, endValue, interval) {
return (0, _smart_formatter.formatRange)(startValue, endValue, interval, this.getOptions())
},
_setTickOffset: function() {
var options = this._options;
var discreteAxisDivisionMode = options.discreteAxisDivisionMode;
this._tickOffset = +("crossLabels" !== discreteAxisDivisionMode || !discreteAxisDivisionMode)
},
resetApplyingAnimation: function(isFirstDrawing) {
this._resetApplyingAnimation = true;
if (isFirstDrawing) {
this._firstDrawing = true
}
},
isFirstDrawing: function() {
return this._firstDrawing
},
getMargins: function() {
var that = this;
var _that$_options = that._options,
position = _that$_options.position,
offset = _that$_options.offset,
customPosition = _that$_options.customPosition,
placeholderSize = _that$_options.placeholderSize,
grid = _that$_options.grid,
tick = _that$_options.tick,
crosshairMargin = _that$_options.crosshairMargin;
var isDefinedCustomPositionOption = (0, _type.isDefined)(customPosition);
var boundaryPosition = that.getResolvedBoundaryPosition();
var canvas = that.getCanvas();
var cLeft = canvas.left;
var cTop = canvas.top;
var cRight = canvas.width - canvas.right;
var cBottom = canvas.height - canvas.bottom;
var edgeMarginCorrection = _max(grid.visible && grid.width || 0, tick.visible && tick.width || 0);
var constantLineAboveSeries = that._axisConstantLineGroups.above;
var constantLineUnderSeries = that._axisConstantLineGroups.under;
var boxes = [that._axisElementsGroup, constantLineAboveSeries.outside1, constantLineAboveSeries.outside2, constantLineUnderSeries.outside1, constantLineUnderSeries.outside2, that._axisLineGroup].map((function(group) {
return group && group.getBBox()
})).concat(function(group) {
var box = group && group.getBBox();
if (!box || box.isEmpty) {
return box
}
if (that._isHorizontal) {
box.x = cLeft;
box.width = cRight - cLeft
} else {
box.y = cTop;
box.height = cBottom - cTop
}
return box
}(that._axisTitleGroup));
var margins = (0, _axes_utils.calculateCanvasMargins)(boxes, canvas);
margins[position] += crosshairMargin;
if (that.hasNonBoundaryPosition() && isDefinedCustomPositionOption) {
margins[boundaryPosition] = 0
}
if (placeholderSize) {
margins[position] = placeholderSize
}
if (edgeMarginCorrection) {
if (that._isHorizontal && canvas.right < edgeMarginCorrection && margins.right < edgeMarginCorrection) {
margins.right = edgeMarginCorrection
}
if (!that._isHorizontal && canvas.bottom < edgeMarginCorrection && margins.bottom < edgeMarginCorrection) {
margins.bottom = edgeMarginCorrection
}
}
if (!isDefinedCustomPositionOption && (0, _type.isDefined)(offset)) {
var moveByOffset = that.customPositionIsBoundary() && (offset > 0 && (boundaryPosition === LEFT || boundaryPosition === TOP) || offset < 0 && (boundaryPosition === RIGHT || boundaryPosition === BOTTOM));
margins[boundaryPosition] -= moveByOffset ? offset : 0
}
return margins
},
validateUnit: function(unit, idError, parameters) {
unit = this.parser(unit);
if (void 0 === unit && idError) {
this._incidentOccurred(idError, [parameters])
}
return unit
},
_setType: function(axisType, drawingType) {
var axisTypeMethods;
switch (axisType) {
case "xyAxes":
axisTypeMethods = _xy_axes.default;
break;
case "polarAxes":
axisTypeMethods = polarMethods
}(0, _extend.extend)(this, axisTypeMethods[drawingType])
},
_getSharpParam: function() {
return true
},
_disposeBreaksGroup: _common.noop,
dispose: function() {
[this._axisElementsGroup, this._axisStripGroup, this._axisGroup].forEach((function(g) {
g.dispose()
}));
this._strips = this._title = null;
this._axisStripGroup = this._axisConstantLineGroups = this._axisStripLabelGroup = this._axisBreaksGroup = null;
this._axisLineGroup = this._axisElementsGroup = this._axisGridGroup = null;
this._axisGroup = this._axisTitleGroup = null;
this._axesContainerGroup = this._stripsGroup = this._constantLinesGroup = this._labelsAxesGroup = null;
this._renderer = this._options = this._textOptions = this._textFontStyles = null;
this._translator = null;
this._majorTicks = this._minorTicks = null;
this._disposeBreaksGroup();
this._templatesRendered && this._templatesRendered.reject()
},
getOptions: function() {
return this._options
},
setPane: function(pane) {
this.pane = pane;
this._options.pane = pane
},
setTypes: function(type, axisType, typeSelector) {
this._options.type = type || this._options.type;
this._options[typeSelector] = axisType || this._options[typeSelector];
this._updateTranslator()
},
resetTypes: function(typeSelector) {
this._options.type = this._initTypes.type;
this._options[typeSelector] = this._initTypes[typeSelector]
},
getTranslator: function() {
return this._translator
},
updateOptions: function(options) {
var that = this;
var labelOpt = options.label;
! function(options) {
var _labelOptions$minSpac;
var labelOptions = options.label;
var position = options.position;
var defaultPosition = options.isHorizontal ? BOTTOM : LEFT;
var secondaryPosition = options.isHorizontal ? TOP : RIGHT;
var labelPosition = labelOptions.position;
if (position !== defaultPosition && position !== secondaryPosition) {
position = defaultPosition
}
if (!labelPosition || "outside" === labelPosition) {
labelPosition = position
} else if ("inside" === labelPosition) {
var _TOP$BOTTOM$LEFT$RIGH;
labelPosition = (_TOP$BOTTOM$LEFT$RIGH = {}, _defineProperty(_TOP$BOTTOM$LEFT$RIGH, TOP, BOTTOM), _defineProperty(_TOP$BOTTOM$LEFT$RIGH, BOTTOM, TOP), _defineProperty(_TOP$BOTTOM$LEFT$RIGH, LEFT, RIGHT), _defineProperty(_TOP$BOTTOM$LEFT$RIGH, RIGHT, LEFT), _TOP$BOTTOM$LEFT$RIGH)[position]
}
if (labelPosition !== defaultPosition && labelPosition !== secondaryPosition) {
labelPosition = position
}
if (labelOptions.alignment !== CENTER && !labelOptions.userAlignment) {
var _TOP$BOTTOM$LEFT$RIGH2;
labelOptions.alignment = (_TOP$BOTTOM$LEFT$RIGH2 = {}, _defineProperty(_TOP$BOTTOM$LEFT$RIGH2, TOP, CENTER), _defineProperty(_TOP$BOTTOM$LEFT$RIGH2, BOTTOM, CENTER), _defineProperty(_TOP$BOTTOM$LEFT$RIGH2, LEFT, RIGHT), _defineProperty(_TOP$BOTTOM$LEFT$RIGH2, RIGHT, LEFT), _TOP$BOTTOM$LEFT$RIGH2)[labelPosition]
}
options.position = position;
labelOptions.position = labelPosition;
options.hoverMode = options.hoverMode ? options.hoverMode.toLowerCase() : "none";
labelOptions.minSpacing = null !== (_labelOptions$minSpac = labelOptions.minSpacing) && void 0 !== _labelOptions$minSpac ? _labelOptions$minSpac : 5;
options.type && (options.type = options.type.toLowerCase());
options.argumentType && (options.argumentType = options.argumentType.toLowerCase());
options.valueType && (options.valueType = options.valueType.toLowerCase())
}(options);
that._options = options;
options.tick = options.tick || {};
options.minorTick = options.minorTick || {};
options.grid = options.grid || {};
options.minorGrid = options.minorGrid || {};
options.title = options.title || {};
options.marker = options.marker || {};
that._initTypes = {
type: options.type,
argumentType: options.argumentType,
valueType: options.valueType
};
that._setTickOffset();
that._isHorizontal = options.isHorizontal;
that.pane = options.pane;
that.name = options.name;
that.priority = options.priority;
that._hasLabelFormat = "" !== labelOpt.format && (0, _type.isDefined)(labelOpt.format);
that._textOptions = {
opacity: labelOpt.opacity,
align: "center",
class: labelOpt.cssClass
};
that._textFontStyles = (0, _utils.patchFontOptions)(labelOpt.font);
if (options.type === _axes_constants.default.logarithmic) {
if (options.logarithmBaseError) {
that._incidentOccurred("E2104");
delete options.logarithmBaseError
}
}
that._updateTranslator();
that._createConstantLines();
that._strips = (options.strips || []).map((function(o) {
return (0, _strip.default)(that, o)
}));
that._majorTicks = that._minorTicks = null;
that._firstDrawing = true
},
calculateInterval: function(value, prevValue) {
var options = this._options;
if (!options || options.type !== _axes_constants.default.logarithmic) {
return _abs(value - prevValue)
}
var _Range = new _range.Range(this.getTranslator().getBusinessRange()),
allowNegatives = _Range.allowNegatives,
linearThreshold = _Range.linearThreshold;
return _abs((0, _utils.getLogExt)(value, options.logarithmBase, allowNegatives, linearThreshold) - (0, _utils.getLogExt)(prevValue, options.logarithmBase, allowNegatives, linearThreshold))
},
getCanvasRange: function() {
var translator = this._translator;
return {
startValue: translator.from(translator.translate("canvas_position_start")),
endValue: translator.from(translator.translate("canvas_position_end"))
}
},
_processCanvas: function(canvas) {
return canvas
},
updateCanvas: function(canvas, canvasRedesign) {
if (!canvasRedesign) {
var positions = this._orthogonalPositions = {
start: !this._isHorizontal ? canvas.left : canvas.top,
end: !this._isHorizontal ? canvas.width - canvas.right : canvas.height - canvas.bottom
};
positions.center = positions.start + (positions.end - positions.start) / 2
} else {
this._orthogonalPositions = null
}
this._canvas = canvas;
this._translator.updateCanvas(this._processCanvas(canvas));
this._initAxisPositions()
},
getCanvas: function() {
return this._canvas
},
getAxisShift: function() {
return this._axisShift || 0
},
hideTitle: function() {
if (this._options.title.text) {
this._incidentOccurred("W2105", [this._isHorizontal ? "horizontal" : "vertical"]);
this._axisTitleGroup.clear()
}
},
getTitle: function() {
return this._title
},
hideOuterElements: function() {
var options = this._options;
if ((options.label.visible || this._outsideConstantLines.length) && !this._translator.getBusinessRange().isEmpty()) {
this._incidentOccurred("W2106", [this._isHorizontal ? "horizontal" : "vertical"]);
this._axisElementsGroup.clear();
callAction(this._outsideConstantLines, "removeLabel")
}
},
_resolveLogarithmicOptionsForRange: function(range) {
var options = this._options;
if (options.type === _axes_constants.default.logarithmic) {
range.addRange({
allowNegatives: void 0 !== options.allowNegatives ? options.allowNegatives : range.min <= 0
});
if (!isNaN(options.linearThreshold)) {
range.linearThreshold = options.linearThreshold
}
}
},
adjustViewport: function(businessRange) {
var options = this._options;
var isDiscrete = options.type === _axes_constants.default.discrete;
var categories = this._seriesData && this._seriesData.categories || [];
var wholeRange = this.adjustRange((0, _utils.getVizRangeObject)(options.wholeRange));
var visualRange = this.getViewport() || {};
var result = new _range.Range(businessRange);
this._addConstantLinesToRange(result, "minVisible", "maxVisible");
var minDefined = (0, _type.isDefined)(visualRange.startValue);
var maxDefined = (0, _type.isDefined)(visualRange.endValue);
if (!isDiscrete) {
minDefined = minDefined && (!(0, _type.isDefined)(wholeRange.endValue) || visualRange.startValue < wholeRange.endValue);
maxDefined = maxDefined && (!(0, _type.isDefined)(wholeRange.startValue) || visualRange.endValue > wholeRange.startValue)
}
var minVisible = minDefined ? visualRange.startValue : result.minVisible;
var maxVisible = maxDefined ? visualRange.endValue : result.maxVisible;
if (!isDiscrete) {
var _wholeRange$startValu, _wholeRange$endValue;
result.min = null !== (_wholeRange$startValu = wholeRange.startValue) && void 0 !== _wholeRange$startValu ? _wholeRange$startValu : result.min;
result.max = null !== (_wholeRange$endValue = wholeRange.endValue) && void 0 !== _wholeRange$endValue ? _wholeRange$endValue : result.max
} else {
var categoriesInfo = (0, _utils.getCategoriesInfo)(categories, wholeRange.startValue, wholeRange.endValue);
categories = categoriesInfo.categories;
result.categories = categories
}
var adjustedVisualRange = (0, _utils.adjustVisualRange)({
axisType: options.type,
dataType: options.dataType,
base: options.logarithmBase
}, {
startValue: minDefined ? visualRange.startValue : void 0,
endValue: maxDefined ? visualRange.endValue : void 0,
length: visualRange.length
}, {
categories: categories,
min: wholeRange.startValue,
max: wholeRange.endValue
}, {
categories: categories,
min: minVisible,
max: maxVisible
});
result.minVisible = adjustedVisualRange.startValue;
result.maxVisible = adjustedVisualRange.endValue;
!(0, _type.isDefined)(result.min) && (result.min = result.minVisible);
!(0, _type.isDefined)(result.max) && (result.max = result.maxVisible);
result.addRange({});
this._resolveLogarithmicOptionsForRange(result);
return result
},
adjustRange: function(range) {
range = range || {};
var isDiscrete = this._options.type === _axes_constants.default.discrete;
var isLogarithmic = this._options.type === _axes_constants.default.logarithmic;
var disabledNegatives = false === this._options.allowNegatives;
if (isLogarithmic) {
range.startValue = disabledNegatives && range.startValue <= 0 ? null : range.startValue;
range.endValue = disabledNegatives && range.endValue <= 0 ? null : range.endValue
}
if (!isDiscrete && (0, _type.isDefined)(range.startValue) && (0, _type.isDefined)(range.endValue) && range.startValue > range.endValue) {
var tmp = range.endValue;
range.endValue = range.startValue;
range.startValue = tmp
}
return range
},
_getVisualRangeUpdateMode: function(viewport, newRange, oppositeValue) {
var value = this._options.visualRangeUpdateMode;
var translator = this._translator;
var range = this._seriesData;
if (this.isArgumentAxis) {
if (-1 === [SHIFT, KEEP, RESET].indexOf(value)) {
if (range.axisType === _axes_constants.default.discrete) {
var categories = range.categories;
var newCategories = newRange.categories;
var visualRange = this.visualRange();
if (categories && newCategories && categories.length && -1 !== newCategories.map((function(c) {
return c.valueOf()
})).join(",").indexOf(categories.map((function(c) {
return c.valueOf()
})).join(",")) && (visualRange.startValue.valueOf() !== categories[0].valueOf() || visualRange.endValue.valueOf() !== categories[categories.length - 1].valueOf())) {
value = KEEP
} else {
value = RESET
}
} else {
var minPoint = translator.translate(range.min);
var minVisiblePoint = translator.translate(viewport.startValue);
var maxPoint = translator.translate(range.max);
var maxVisiblePoint = translator.translate(viewport.endValue);
if (minPoint === minVisiblePoint && maxPoint === maxVisiblePoint) {
value = RESET
} else if (minPoint !== minVisiblePoint && maxPoint === maxVisiblePoint) {
value = SHIFT
} else {
value = KEEP
}
}
}
} else if (-1 === [KEEP, RESET].indexOf(value)) {
if (oppositeValue === KEEP) {
value = KEEP
} else {
value = RESET
}
}
return value
},
_handleBusinessRangeChanged: function(oppositeVisualRangeUpdateMode, axisReinitialized, newRange) {
var visualRange = this.visualRange();
if (axisReinitialized || this._translator.getBusinessRange().isEmpty()) {
return
}
var visualRangeUpdateMode = this._lastVisualRangeUpdateMode = this._getVisualRangeUpdateMode(visualRange, newRange, oppositeVisualRangeUpdateMode);
if (!this.isArgumentAxis) {
var viewport = this.getViewport();
if (!(0, _type.isDefined)(viewport.startValue) && !(0, _type.isDefined)(viewport.endValue) && !(0, _type.isDefined)(viewport.length)) {
visualRangeUpdateMode = RESET
}
}
this._prevDataWasEmpty && (visualRangeUpdateMode = KEEP);
if (visualRangeUpdateMode === KEEP) {
this._setVisualRange([visualRange.startValue, visualRange.endValue])
}
if (visualRangeUpdateMode === RESET) {
this._setVisualRange([null, null])
}
if (visualRangeUpdateMode === SHIFT) {
this._setVisualRange({
length: this.getVisualRangeLength()
})
}
},
getVisualRangeLength: function(range) {
var currentBusinessRange = range || this._translator.getBusinessRange();
var type = this._options.type;
var length;
if (type === _axes_constants.default.logarithmic) {
length = (0, _math2.adjust)(this.calculateInterval(currentBusinessRange.maxVisible, currentBusinessRange.minVisible))
} else if (type === _axes_constants.default.discrete) {
var categoriesInfo = (0, _utils.getCategoriesInfo)(currentBusinessRange.categories, currentBusinessRange.minVisible, currentBusinessRange.maxVisible);
length = categoriesInfo.categories.length
} else {
length = currentBusinessRange.maxVisible - currentBusinessRange.minVisible
}
return length
},
getVisualRangeCenter: function(range, useMerge) {
var translator = this.getTranslator();
var businessRange = translator.getBusinessRange();
var currentBusinessRange = useMerge ? (0, _extend.extend)(true, {}, businessRange, range || {}) : range || businessRange;
var _this$_options = this._options,
type = _this$_options.type,
logarithmBase = _this$_options.logarithmBase;
var center;
if (!(0, _type.isDefined)(currentBusinessRange.minVisible) || !(0, _type.isDefined)(currentBusinessRange.maxVisible)) {
return
}
if (type === _axes_constants.default.logarithmic) {
var allowNegatives = currentBusinessRange.allowNegatives,
linearThreshold = currentBusinessRange.linearThreshold,
minVisible = currentBusinessRange.minVisible,
maxVisible = currentBusinessRange.maxVisible;
center = (0, _utils.raiseToExt)((0, _math2.adjust)((0, _utils.getLogExt)(maxVisible, logarithmBase, allowNegatives, linearThreshold) + (0, _utils.getLogExt)(minVisible, logarithmBase, allowNegatives, linearThreshold)) / 2, logarithmBase, allowNegatives, linearThreshold)
} else if (type === _axes_constants.default.discrete) {
var categoriesInfo = (0, _utils.getCategoriesInfo)(currentBusinessRange.categories, currentBusinessRange.minVisible, currentBusinessRange.maxVisible);
var index = Math.ceil(categoriesInfo.categories.length / 2) - 1;
center = businessRange.categories.indexOf(categoriesInfo.categories[index])
} else {
center = translator.toValue((currentBusinessRange.maxVisible.valueOf() + currentBusinessRange.minVisible.valueOf()) / 2)
}
return center
},
setBusinessRange: function(range, axisReinitialized, oppositeVisualRangeUpdateMode, argCategories) {
var _that$_seriesData$min, _that$_seriesData$max;
var options = this._options;
var isDiscrete = options.type === _axes_constants.default.discrete;
this._handleBusinessRangeChanged(oppositeVisualRangeUpdateMode, axisReinitialized, range);
this._seriesData = new _range.Range(range);
var dataIsEmpty = this._seriesData.isEmpty();
this._prevDataWasEmpty = dataIsEmpty;
this._seriesData.addRange({
categories: options.categories,
dataType: options.dataType,
axisType: options.type,
base: options.logarithmBase,
invert: options.inverted
});
this._resolveLogarithmicOptionsForRange(this._seriesData);
if (!isDiscrete) {
if (!(0, _type.isDefined)(this._seriesData.min) && !(0, _type.isDefined)(this._seriesData.max)) {
var visualRange = this.getViewport();
visualRange && this._seriesData.addRange({
min: visualRange.startValue,
max: visualRange.endValue
})
}
var synchronizedValue = options.synchronizedValue;
if ((0, _type.isDefined)(synchronizedValue)) {
this._seriesData.addRange({
min: synchronizedValue,
max: synchronizedValue
})
}
}
this._seriesData.minVisible = null !== (_that$_seriesData$min = this._seriesData.minVisible) && void 0 !== _that$_seriesData$min ? _that$_seriesData$min : this._seriesData.min;
this._seriesData.maxVisible = null !== (_that$_seriesData$max = this._seriesData.maxVisible) && void 0 !== _that$_seriesData$max ? _that$_seriesData$max : this._seriesData.max;
if (!this.isArgumentAxis && options.showZero) {
this._seriesData.correctValueZeroLevel()
}
this._seriesData.sortCategories(this.getCategoriesSorter(argCategories));
this._seriesData.userBreaks = this._seriesData.isEmpty() ? [] : this._getScaleBreaks(options, this._seriesData, this._series, this.isArgumentAxis);
this._translator.updateBusinessRange(this._getViewportRange())
},
_addConstantLinesToRange: function(dataRange, minValueField, maxValueField) {
this._outsideConstantLines.concat(this._insideConstantLines || []).forEach((function(cl) {
if (cl.options.extendAxis) {
var _dataRange$addRange;
var value = cl.getParsedValue();
dataRange.addRange((_dataRange$addRange = {}, _defineProperty(_dataRange$addRange, minValueField, value), _defineProperty(_dataRange$addRange, maxValueField, value), _dataRange$addRange))
}
}))
},
setGroupSeries: function(series) {
this._series = series
},
getLabelsPosition: function() {
var options = this._options;
var position = options.position;
var labelShift = options.label.indentFromAxis + (this._axisShift || 0) + this._constantLabelOffset;
var axisPosition = this._axisPosition;
return position === TOP || position === LEFT ? axisPosition - labelShift : axisPosition + labelShift
},
getFormattedValue: function(value, options, point) {
var labelOptions = this._options.label;
return (0, _type.isDefined)(value) ? this.formatLabel(value, (0, _extend.extend)(true, {}, labelOptions, options), void 0, point) : null
},
_getBoundaryTicks: function(majors, viewPort) {
var length = majors.length;
var options = this._options;
var customBounds = options.customBoundTicks;
var min = viewPort.minVisible;
var max = viewPort.maxVisible;
var addMinMax = options.showCustomBoundaryTicks ? this._boundaryTicksVisibility : {};
var boundaryTicks = [];
if (options.type === _axes_constants.default.discrete) {
if (this._tickOffset && 0 !== majors.length) {
boundaryTicks = [majors[0], majors[majors.length - 1]]
}
} else if (customBounds) {
if (addMinMax.min && (0, _type.isDefined)(customBounds[0])) {
boundaryTicks.push(customBounds[0])
}
if (addMinMax.max && (0, _type.isDefined)(customBounds[1])) {
boundaryTicks.push(customBounds[1])
}
} else {
if (addMinMax.min && (0 === length || majors[0] > min)) {
boundaryTicks.push(min)
}
if (addMinMax.max && (0 === length || majors[length - 1] < max)) {
boundaryTicks.push(max)
}
}
return boundaryTicks
},
setPercentLabelFormat: function() {
if (!this._hasLabelFormat) {
this._options.label.format = "percent"
}
},
resetAutoLabelFormat: function() {
if (!this._hasLabelFormat) {
delete this._options.label.format
}
},
getMultipleAxesSpacing: function() {
return this._options.multipleAxesSpacing || 0
},
getTicksValues: function() {
return {
majorTicksValues: convertTicksToValues(this._majorTicks),
minorTicksValues: convertTicksToValues(this._minorTicks)
}
},
estimateTickInterval: function(canvas) {
this.updateCanvas(canvas);
return this._tickInterval !== this._getTicks(this._getViewportRange(), _common.noop, true).tickInterval
},
setTicks: function(ticks) {
var majors = ticks.majorTicks || [];
this._majorTicks = majors.map(createMajorTick(this, this._renderer, this._getSkippedCategory(majors)));
this._minorTicks = (ticks.minorTicks || []).map(createMinorTick(this, this._renderer));
this._isSynchronized = true
},
_adjustDivisionFactor: function(val) {
return val
},
_getTicks: function(viewPort, incidentOccurred, skipTickGeneration) {
var options = this._options;
var customTicks = options.customTicks;
var customMinorTicks = options.customMinorTicks;
return getTickGenerator(options, incidentOccurred || this._incidentOccurred, skipTickGeneration, this._translator.getBusinessRange().isEmpty(), this._adjustDivisionFactor.bind(this), viewPort)({
min: viewPort.minVisible,
max: viewPort.maxVisible,
categories: viewPort.categories,
isSpacedMargin: viewPort.isSpacedMargin
}, this._getScreenDelta(), options.tickInterval, "ignore" === options.label.overlappingBehavior || options.forceUserTickInterval, {
majors: customTicks,
minors: customMinorTicks
}, options.minorTickInterval, options.minorTickCount, this._initialBreaks)
},
_createTicksAndLabelFormat: function(range, incidentOccurred) {
var options = this._options;
var ticks = this._getTicks(range, incidentOccurred, false);
if (!range.isEmpty() && options.type === _axes_constants.default.discrete && "datetime" === options.dataType && !this._hasLabelFormat && ticks.ticks.length) {
options.label.format = _format_helper.default.getDateFormatByTicks(ticks.ticks)
}
return ticks
},
getAggregationInfo: function(useAllAggregatedPoints, range) {
var _visualRange$startVal, _visualRange$endValue, _that$_seriesData;
var options = this._options;
var marginOptions = this._marginOptions;
var businessRange = new _range.Range(this.getTranslator().getBusinessRange()).addRange(range);
var visualRange = this.getViewport();
var minVisible = null !== (_visualRange$startVal = null === visualRange || void 0 === visualRange ? void 0 : visualRange.startValue) && void 0 !== _visualRange$startVal ? _visualRange$startVal : businessRange.minVisible;
var maxVisible = null !== (_visualRange$endValue = null === visualRange || void 0 === visualRange ? void 0 : visualRange.endValue) && void 0 !== _visualRange$endValue ? _visualRange$endValue : businessRange.maxVisible;
var ticks = [];
if (options.type === _axes_constants.default.discrete && options.aggregateByCategory) {
return {
aggregateByCategory: true
}
}
var aggregationInterval = options.aggregationInterval;
var aggregationGroupWidth = options.aggregationGroupWidth;
if (!aggregationGroupWidth && marginOptions) {
if (marginOptions.checkInterval) {
aggregationGroupWidth = options.axisDivisionFactor
}
if (marginOptions.sizePointNormalState) {
aggregationGroupWidth = Math.min(marginOptions.sizePointNormalState, options.axisDivisionFactor)
}
}
var minInterval = !options.aggregationGroupWidth && !aggregationInterval && range.interval;
var generateTicks = function(options, axisDivisionFactor, viewPort, screenDelta, minTickInterval) {
var tickGeneratorOptions = (0, _extend.extend)({}, options, {
endOnTick: true,
axisDivisionFactor: axisDivisionFactor,
skipCalculationLimits: true,
generateExtraTick: true,
minTickInterval: minTickInterval
});
return function(tickInterval, skipTickGeneration, min, max, breaks) {
return getTickGenerator(tickGeneratorOptions, _common.noop, skipTickGeneration, viewPort.isEmpty(), (function(v) {
return v
}), viewPort)({
min: min,
max: max,
categories: viewPort.categories,
isSpacedMargin: viewPort.isSpacedMargin
}, screenDelta, tickInterval, (0, _type.isDefined)(tickInterval), void 0, void 0, void 0, breaks)
}
}(options, aggregationGroupWidth, businessRange, this._getScreenDelta(), minInterval);
var tickInterval = generateTicks(aggregationInterval, true, minVisible, maxVisible, null === (_that$_seriesData = this._seriesData) || void 0 === _that$_seriesData ? void 0 : _that$_seriesData.breaks).tickInterval;
if (options.type !== _axes_constants.default.discrete) {
var min = useAllAggregatedPoints ? businessRange.min : minVisible;
var max = useAllAggregatedPoints ? businessRange.max : maxVisible;
if ((0, _type.isDefined)(min) && (0, _type.isDefined)(max)) {
var add = (0, _utils.getAddFunction)({
base: options.logarithmBase,
axisType: options.type,
dataType: options.dataType
}, false);
var start = min;
var end = max;
if (!useAllAggregatedPoints) {
var maxMinDistance = Math.max(this.calculateInterval(max, min), "datetime" === options.dataType ? _date.default.dateToMilliseconds(tickInterval) : tickInterval);
start = add(min, maxMinDistance, -1);
end = add(max, maxMinDistance)
}
start = start < businessRange.min ? businessRange.min : start;
end = end > businessRange.max ? businessRange.max : end;
var breaks = this._getScaleBreaks(options, {
minVisible: start,
maxVisible: end
}, this._series, this.isArgumentAxis);
var filteredBreaks = this._filterBreaks(breaks, {
minVisible: start,
maxVisible: end
}, options.breakStyle);
ticks = generateTicks(tickInterval, false, start, end, filteredBreaks).ticks
}
}
this._aggregationInterval = tickInterval;
return {
interval: tickInterval,
ticks: ticks
}
},
getTickInterval: function() {
return this._tickInterval
},
getAggregationInterval: function() {
return this._aggregationInterval
},
createTicks: function(canvas) {
var that = this;
var renderer = that._renderer;
var options = that._options;
if (!canvas) {
return
}
that._isSynchronized = false;
that.updateCanvas(canvas);
var range = that._getViewportRange();
that._initialBreaks = range.breaks = this._seriesData.breaks = that._filterBreaks(this._seriesData.userBreaks, range, options.breakStyle);
that._estimatedTickInterval = that._getTicks(that.adjustViewport(this._seriesData), _common.noop, true).tickInterval;
var margins = this._calculateValueMargins();
range.addRange({
minVisible: margins.minValue,
maxVisible: margins.maxValue,
isSpacedMargin: margins.isSpacedMargin
});
var ticks = that._createTicksAndLabelFormat(range);
var boundaryTicks = that._getBoundaryTicks(ticks.ticks, that._getViewportRange());
if (options.showCustomBoundaryTicks && boundaryTicks.length) {
that._boundaryTicks = [boundaryTicks[0]].map(createBoundaryTick(that, renderer, true));
if (boundaryTicks.length > 1) {
that._boundaryTicks = that._boundaryTicks.concat([boundaryTicks[1]].map(createBoundaryTick(that, renderer, false)))
}
} else {
that._boundaryTicks = []
}
var minors = (ticks.minorTicks || []).filter((function(minor) {
return !boundaryTicks.some((function(boundary) {
return (0, _utils.valueOf)(boundary) === (0, _utils.valueOf)(minor)
}))
}));
that._tickInterval = ticks.tickInterval;
that._minorTickInterval = ticks.minorTickInterval;
var oldMajorTicks = that._majorTicks || [];
var majorTicksByValues = oldMajorTicks.reduce((function(r, t) {
r[t.value.valueOf()] = t;
return r
}), {});
var sameType = (0, _type.type)(ticks.ticks[0]) === (0, _type.type)(oldMajorTicks[0] && oldMajorTicks[0].value);
var skippedCategory = that._getSkippedCategory(ticks.ticks);
var majorTicks = ticks.ticks.map((function(v) {
var tick = majorTicksByValues[v.valueOf()];
if (tick && sameType) {
delete majorTicksByValues[v.valueOf()];
tick.setSkippedCategory(skippedCategory);
return tick
} else {
return createMajorTick(that, renderer, skippedCategory)(v)
}
}));
that._majorTicks = majorTicks;
var oldMinorTicks = that._minorTicks || [];
that._minorTicks = minors.map((function(v, i) {
var minorTick = oldMinorTicks[i];
if (minorTick) {
minorTick.updateValue(v);
return minorTick
}
return createMinorTick(that, renderer)(v)
}));
that._ticksToRemove = Object.keys(majorTicksByValues).map((function(k) {
return majorTicksByValues[k]
})).concat(oldMinorTicks.slice(that._minorTicks.length, oldMinorTicks.length));
that._ticksToRemove.forEach((function(t) {
var _t$label;
return null === (_t$label = t.label) || void 0 === _t$label ? void 0 : _t$label.removeTitle()
}));
if (ticks.breaks) {
that._seriesData.breaks = ticks.breaks
}
that._reinitTranslator(that._getViewportRange())
},
_reinitTranslator: function(range) {
var translator = this._translator;
if (this._isSynchronized) {
return
}
translator.updateBusinessRange(range)
},
_getViewportRange: function() {
return this.adjustViewport(this._seriesData)
},
setMarginOptions: function(options) {
this._marginOptions = options
},
getMarginOptions: function() {
var _this$_marginOptions;
return null !== (_this$_marginOptions = this._marginOptions) && void 0 !== _this$_marginOptions ? _this$_marginOptions : {}
},
_calculateRangeInterval: function(interval) {
var isDateTime = "datetime" === this._options.dataType;
var minArgs = [];
var addToArgs = function(value) {
(0, _type.isDefined)(value) && minArgs.push(isDateTime ? _date.default.dateToMilliseconds(value) : value)
};
addToArgs(this._tickInterval);
addToArgs(this._estimatedTickInterval);
(0, _type.isDefined)(interval) && minArgs.push(interval);
addToArgs(this._aggregationInterval);
return this._calculateWorkWeekInterval(_min.apply(this, minArgs))
},
_calculateWorkWeekInterval: function(businessInterval) {
var options = this._options;
if ("datetime" === options.dataType && options.workdaysOnly && businessInterval) {
var workWeek = options.workWeek.length * dateIntervals_day;
var weekend = dateIntervals_week - workWeek;
if (workWeek !== businessInterval && weekend < businessInterval) {
var weekendsCount = Math.ceil(businessInterval / dateIntervals_week);
businessInterval -= weekend * weekendsCount
} else if (weekend >= businessInterval && businessInterval > dateIntervals_day) {
businessInterval = dateIntervals_day
}
}
return businessInterval
},
_getConvertIntervalCoefficient: function(intervalInPx, screenDelta) {
var ratioOfCanvasRange = this._translator.ratioOfCanvasRange();
return ratioOfCanvasRange / (ratioOfCanvasRange * screenDelta / (intervalInPx + screenDelta))
},
_calculateValueMargins: function(ticks) {
this._resetMargins();
var margins = this.getMarginOptions();
var marginSize = (margins.size || 0) / 2;
var options = this._options;
var dataRange = this._getViewportRange();
var viewPort = this.getViewport();
var screenDelta = this._getScreenDelta();
var isDiscrete = -1 !== (options.type || "").indexOf(_axes_constants.default.discrete);
var valueMarginsEnabled = options.valueMarginsEnabled && !isDiscrete && !this.customPositionIsBoundaryOrthogonalAxis();
var translator = this._translator;
var minValueMargin = options.minValueMargin;
var maxValueMargin = options.maxValueMargin;
var minPadding = 0;
var maxPadding = 0;
var interval = 0;
var rangeInterval;
if (dataRange.stubData || !screenDelta) {
return {
startPadding: 0,
endPadding: 0
}
}
if (this.isArgumentAxis && margins.checkInterval) {
rangeInterval = this._calculateRangeInterval(dataRange.interval);
var pxInterval = translator.getInterval(rangeInterval);
if (isFinite(pxInterval)) {
interval = Math.ceil(pxInterval / (2 * this._getConvertIntervalCoefficient(pxInterval, screenDelta)))
} else {
rangeInterval = 0
}
}
var minPercentPadding;
var maxPercentPadding;
var maxPaddingValue = .8 * screenDelta / 2;
if (valueMarginsEnabled) {
if ((0, _type.isDefined)(minValueMargin)) {
minPercentPadding = isFinite(minValueMargin) ? minValueMargin : 0
} else if (!this.isArgumentAxis && margins.checkInterval && (0, _utils.valueOf)(dataRange.minVisible) > 0 && (0, _utils.valueOf)(dataRange.minVisible) === (0, _utils.valueOf)(dataRange.min)) {
minPadding = 5
} else {
minPadding = Math.max(marginSize, interval);
minPadding = Math.min(maxPaddingValue, minPadding)
}
if ((0, _type.isDefined)(maxValueMargin)) {
maxPercentPadding = isFinite(maxValueMargin) ? maxValueMargin : 0
} else if (!this.isArgumentAxis && margins.checkInterval && (0, _utils.valueOf)(dataRange.maxVisible) < 0 && (0, _utils.valueOf)(dataRange.maxVisible) === (0, _utils.valueOf)(dataRange.max)) {
maxPadding = 5
} else {
maxPadding = Math.max(marginSize, interval);
maxPadding = Math.min(maxPaddingValue, maxPadding)
}
}
var percentStick = margins.percentStick && !this.isArgumentAxis;
if (percentStick) {
if (1 === _abs(dataRange.max)) {
maxPadding = 0
}
if (1 === _abs(dataRange.min)) {
minPadding = 0
}
}
var canvasStartEnd = this._getCanvasStartEnd();
var commonMargin = 1 + (minPercentPadding || 0) + (maxPercentPadding || 0);
var screenDeltaWithMargins = (screenDelta - minPadding - maxPadding) / commonMargin || screenDelta;
if (void 0 !== minPercentPadding || void 0 !== maxPercentPadding) {
if (void 0 !== minPercentPadding) {
minPadding = screenDeltaWithMargins * minPercentPadding
}
if (void 0 !== maxPercentPadding) {
maxPadding = screenDeltaWithMargins * maxPercentPadding
}
}
var minValue;
var maxValue;
if (options.type !== _axes_constants.default.discrete && ticks && ticks.length > 1 && !options.skipViewportExtending && !viewPort.action && false !== options.endOnTick) {
var length = ticks.length;
var firstTickPosition = translator.translate(ticks[0].value);
var lastTickPosition = translator.translate(ticks[length - 1].value);
var invertMultiplier = firstTickPosition > lastTickPosition ? -1 : 1;
var minTickPadding = _max(invertMultiplier * (canvasStartEnd.start - firstTickPosition), 0);
var maxTickPadding = _max(invertMultiplier * (lastTickPosition - canvasStartEnd.end), 0);
if (minTickPadding > minPadding || maxTickPadding > maxPadding) {
var commonPadding = maxTickPadding + minTickPadding;
var coeff = this._getConvertIntervalCoefficient(commonPadding, screenDelta);
if (minTickPadding >= minPadding) {
minValue = ticks[0].value
}
if (maxTickPadding >= maxPadding) {
maxValue = ticks[length - 1].value
}
minPadding = _max(minTickPadding, minPadding) / coeff;
maxPadding = _max(maxTickPadding, maxPadding) / coeff
}
}
minPercentPadding = void 0 === minPercentPadding ? minPadding / screenDeltaWithMargins : minPercentPadding;
maxPercentPadding = void 0 === maxPercentPadding ? maxPadding / screenDeltaWithMargins : maxPercentPadding;
if (!isDiscrete) {
if (this._translator.isInverted()) {
var _minValue, _maxValue;
minValue = null !== (_minValue = minValue) && void 0 !== _minValue ? _minValue : translator.from(canvasStartEnd.start + screenDelta * minPercentPadding, -1);
maxValue = null !== (_maxValue = maxValue) && void 0 !== _maxValue ? _maxValue : translator.from(canvasStartEnd.end - screenDelta * maxPercentPadding, 1)
} else {
var _minValue2, _maxValue2;
minValue = null !== (_minValue2 = minValue) && void 0 !== _minValue2 ? _minValue2 : translator.from(canvasStartEnd.start - screenDelta * minPercentPadding, -1);
maxValue = null !== (_maxValue2 = maxValue) && void 0 !== _maxValue2 ? _maxValue2 : translator.from(canvasStartEnd.end + screenDelta * maxPercentPadding, 1)
}
}
var _that$getCorrectedVal = this.getCorrectedValuesToZero(minValue, maxValue),
correctedMin = _that$getCorrectedVal.correctedMin,
correctedMax = _that$getCorrectedVal.correctedMax,
start = _that$getCorrectedVal.start,
end = _that$getCorrectedVal.end;
minPadding = null !== start && void 0 !== start ? start : minPadding;
maxPadding = null !== end && void 0 !== end ? end : maxPadding;
return {
startPadding: translator.isInverted() ? maxPadding : minPadding,
endPadding: translator.isInverted() ? minPadding : maxPadding,
minValue: null !== correctedMin && void 0 !== correctedMin ? correctedMin : minValue,
maxValue: null !== correctedMax && void 0 !== correctedMax ? correctedMax : maxValue,
interval: rangeInterval,
isSpacedMargin: minPadding === maxPadding && 0 !== minPadding
}
},
getCorrectedValuesToZero: function(minValue, maxValue) {
var that = this;
var translator = that._translator;
var canvasStartEnd = that._getCanvasStartEnd();
var dataRange = that._getViewportRange();
var screenDelta = that._getScreenDelta();
var options = that._options;
var start;
var end;
var correctedMin;
var correctedMax;
var correctZeroLevel = function(minPoint, maxPoint) {
var minExpectedPadding = _abs(canvasStartEnd.start - minPoint);
var maxExpectedPadding = _abs(canvasStartEnd.end - maxPoint);
var coeff = that._getConvertIntervalCoefficient(minExpectedPadding + maxExpectedPadding, screenDelta);
start = minExpectedPadding / coeff;
end = maxExpectedPadding / coeff
};
if (!that.isArgumentAxis && "datetime" !== options.dataType) {
if (minValue * dataRange.min <= 0 && minValue * dataRange.minVisible <= 0) {
correctZeroLevel(translator.translate(0), translator.translate(maxValue));
correctedMin = 0
}
if (maxValue * dataRange.max <= 0 && maxValue * dataRange.maxVisible <= 0) {
correctZeroLevel(translator.translate(minValue), translator.translate(0));
correctedMax = 0
}
}
return {
start: isFinite(start) ? start : null,
end: isFinite(end) ? end : null,
correctedMin: correctedMin,
correctedMax: correctedMax
}
},
applyMargins: function() {
if (this._isSynchronized) {
return
}
var margins = this._calculateValueMargins(this._majorTicks);
var canvas = (0, _extend.extend)({}, this._canvas, {
startPadding: margins.startPadding,
endPadding: margins.endPadding
});
this._translator.updateCanvas(this._processCanvas(canvas));
if (isFinite(margins.interval)) {
var br = this._translator.getBusinessRange();
br.addRange({
interval: margins.interval
});
this._translator.updateBusinessRange(br)
}
},
_resetMargins: function() {
this._reinitTranslator(this._getViewportRange());
if (this._canvas) {
this._translator.updateCanvas(this._processCanvas(this._canvas))
}
},
_createConstantLines: function() {
var _this2 = this;
var constantLines = (this._options.constantLines || []).map((function(o) {
return (0, _constant_line.default)(_this2, o)
}));
this._outsideConstantLines = constantLines.filter((function(l) {
return "outside" === l.labelPosition
}));
this._insideConstantLines = constantLines.filter((function(l) {
return "inside" === l.labelPosition
}))
},
draw: function(canvas, borderOptions) {
var that = this;
var options = this._options;
that.borderOptions = borderOptions || {
visible: false
};
that._resetMargins();
that.createTicks(canvas);
that.applyMargins();
that._clearAxisGroups();
initTickCoords(that._majorTicks);
initTickCoords(that._minorTicks);
initTickCoords(that._boundaryTicks);
that._axisGroup.append(that._axesContainerGroup);
that._drawAxis();
that._drawTitle();
drawTickMarks(that._majorTicks, options.tick);
drawTickMarks(that._minorTicks, options.minorTick);
drawTickMarks(that._boundaryTicks, options.tick);
var drawGridLine = that._getGridLineDrawer();
drawGrids(that._majorTicks, drawGridLine);
drawGrids(that._minorTicks, drawGridLine);
callAction(that._majorTicks, "drawLabel", that._getViewportRange(), that._getTemplate(options.label.template));
that._templatesRendered && that._templatesRendered.reject();
that._templatesRendered = new _deferred.Deferred;
_deferred.when.apply(this, that._majorTicks.map((function(tick) {
return tick.getTemplateDeferred()
}))).done((function() {
that._templatesRendered.resolve()
}));
that._majorTicks.forEach((function(tick) {
tick.labelRotationAngle = 0;
tick.labelAlignment = void 0;
tick.labelOffset = 0
}));
callAction(that._outsideConstantLines.concat(that._insideConstantLines), "draw");
callAction(that._strips, "draw");
that._dateMarkers = that._drawDateMarkers() || [];
that._stripLabelAxesGroup && that._axisStripLabelGroup.append(that._stripLabelAxesGroup);
that._gridContainerGroup && that._axisGridGroup.append(that._gridContainerGroup);
that._stripsGroup && that._axisStripGroup.append(that._stripsGroup);
that._labelsAxesGroup && that._axisElementsGroup.append(that._labelsAxesGroup);
if (that._constantLinesGroup) {
that._axisConstantLineGroups.above.inside.append(that._constantLinesGroup.above);
that._axisConstantLineGroups.above.outside1.append(that._constantLinesGroup.above);
that._axisConstantLineGroups.above.outside2.append(that._constantLinesGroup.above);
that._axisConstantLineGroups.under.inside.append(that._constantLinesGroup.under);
that._axisConstantLineGroups.under.outside1.append(that._constantLinesGroup.under);
that._axisConstantLineGroups.under.outside2.append(that._constantLinesGroup.under)
}
that._measureTitle();
(0, _axes_utils.measureLabels)(that._majorTicks);
!options.label.template && that._applyWordWrap();
(0, _axes_utils.measureLabels)(that._outsideConstantLines);
(0, _axes_utils.measureLabels)(that._insideConstantLines);
(0, _axes_utils.measureLabels)(that._strips);
(0, _axes_utils.measureLabels)(that._dateMarkers);
that._adjustConstantLineLabels(that._insideConstantLines);
that._adjustStripLabels();
var offset = that._constantLabelOffset = that._adjustConstantLineLabels(that._outsideConstantLines);
if (!that._translator.getBusinessRange().isEmpty()) {
that._setLabelsPlacement();
offset = that._adjustLabels(offset)
}
offset = that._adjustDateMarkers(offset);
that._adjustTitle(offset)
},
getTemplatesDef: function() {
return this._templatesRendered
},
setRenderedState: function(state) {
this._drawn = state
},
isRendered: function() {
return this._drawn
},
_applyWordWrap: function() {
var convertedTickInterval;
var textWidth;
var textHeight;
var options = this._options;
var tickInterval = this._tickInterval;
if ((0, _type.isDefined)(tickInterval)) {
convertedTickInterval = this.getTranslator().getInterval("datetime" === options.dataType ? _date.default.dateToMilliseconds(tickInterval) : tickInterval)
}
var displayMode = this._validateDisplayMode(options.label.displayMode);
var overlappingMode = this._validateOverlappingMode(options.label.overlappingBehavior, displayMode);
var wordWrapMode = options.label.wordWrap || "none";
var overflowMode = options.label.textOverflow || "none";
if (("none" !== wordWrapMode || "none" !== overflowMode) && "rotate" !== displayMode && "rotate" !== overlappingMode && "auto" !== overlappingMode) {
var usefulSpace = (0, _type.isDefined)(options.placeholderSize) ? options.placeholderSize - options.label.indentFromAxis : void 0;
if (this._isHorizontal) {
textWidth = convertedTickInterval;
textHeight = usefulSpace
} else {
textWidth = usefulSpace;
textHeight = convertedTickInterval
}
var correctByWidth = false;
var correctByHeight = false;
if (textWidth) {
if (this._majorTicks.some((function(tick) {
return tick.labelBBox.width > textWidth
}))) {
correctByWidth = true
}
}
if (textHeight) {
if (this._majorTicks.some((function(tick) {
return tick.labelBBox.height > textHeight
}))) {
correctByHeight = true
}
}
if (correctByWidth || correctByHeight) {
this._majorTicks.forEach((function(tick) {
tick.label && tick.label.setMaxSize(textWidth, textHeight, options.label)
}));
(0, _axes_utils.measureLabels)(this._majorTicks)
}
}
},
_measureTitle: _common.noop,
animate: function() {
callAction(this._majorTicks, "animateLabels")
},
updateSize: function(canvas, animate) {
var updateTitle = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : true;
var that = this;
that.updateCanvas(canvas);
if (updateTitle) {
that._checkTitleOverflow();
that._measureTitle();
that._updateTitleCoords()
}
that._reinitTranslator(that._getViewportRange());
that.applyMargins();
var animationEnabled = !that._firstDrawing && animate;
var options = that._options;
initTickCoords(that._majorTicks);
initTickCoords(that._minorTicks);
initTickCoords(that._boundaryTicks);
if (that._resetApplyingAnimation && !that._firstDrawing) {
that._resetStartCoordinates()
}
cleanUpInvalidTicks(that._majorTicks);
cleanUpInvalidTicks(that._minorTicks);
cleanUpInvalidTicks(that._boundaryTicks);
if (that._axisElement) {
that._updateAxisElementPosition()
}
updateTicksPosition(that._majorTicks, options.tick, animationEnabled);
updateTicksPosition(that._minorTicks, options.minorTick, animationEnabled);
updateTicksPosition(that._boundaryTicks, options.tick);
callAction(that._majorTicks, "updateLabelPosition", animationEnabled);
that._outsideConstantLines.concat(that._insideConstantLines || []).forEach((function(l) {
return l.updatePosition(animationEnabled)
}));
callAction(that._strips, "updatePosition", animationEnabled);
updateGridsPosition(that._majorTicks, animationEnabled);
updateGridsPosition(that._minorTicks, animationEnabled);
if (animationEnabled) {
callAction(that._ticksToRemove || [], "fadeOutElements")
}
that.prepareAnimation();
that._ticksToRemove = null;
if (!that._translator.getBusinessRange().isEmpty()) {
that._firstDrawing = false
}
that._resetApplyingAnimation = false;
that._updateLabelsPosition()
},
_updateLabelsPosition: _common.noop,
prepareAnimation: function() {
var action = "saveCoords";
callAction(this._majorTicks, action);
callAction(this._minorTicks, action);
callAction(this._insideConstantLines, action);
callAction(this._outsideConstantLines, action);
callAction(this._strips, action)
},
_resetStartCoordinates: function() {
var action = "resetCoordinates";
callAction(this._majorTicks, action);
callAction(this._minorTicks, action);
callAction(this._insideConstantLines, action);
callAction(this._outsideConstantLines, action);
callAction(this._strips, action)
},
applyClipRects: function(elementsClipID, canvasClipID) {
this._axisGroup.attr({
"clip-path": canvasClipID
});
this._axisStripGroup.attr({
"clip-path": elementsClipID
});
this._axisElementsGroup.attr({
"clip-path": canvasClipID
})
},
_validateVisualRange: function(optionValue) {
var range = (0, _utils.getVizRangeObject)(optionValue);
if (void 0 !== range.startValue) {
range.startValue = this.validateUnit(range.startValue)
}
if (void 0 !== range.endValue) {
range.endValue = this.validateUnit(range.endValue)
}
return (0, _utils.convertVisualRangeObject)(range, !_isArray(optionValue))
},
_validateOptions: function(options) {
options.wholeRange = this._validateVisualRange(options.wholeRange);
options.visualRange = options._customVisualRange = this._validateVisualRange(options._customVisualRange);
this._setVisualRange(options._customVisualRange)
},
validate: function() {
var options = this._options;
var dataType = this.isArgumentAxis ? options.argumentType : options.valueType;
var parser = dataType ? (0, _parse_utils.getParser)(dataType) : function(unit) {
return unit
};
this.parser = parser;
options.dataType = dataType;
this._validateOptions(options)
},
resetVisualRange: function(isSilent) {
this._seriesData.minVisible = this._seriesData.min;
this._seriesData.maxVisible = this._seriesData.max;
this.handleZooming([null, null], {
start: !!isSilent,
end: !!isSilent
})
},
_setVisualRange: function(visualRange, allowPartialUpdate) {
var range = this.adjustRange((0, _utils.getVizRangeObject)(visualRange));
if (allowPartialUpdate) {
(0, _type.isDefined)(range.startValue) && (this._viewport.startValue = range.startValue);
(0, _type.isDefined)(range.endValue) && (this._viewport.endValue = range.endValue)
} else {
this._viewport = range
}
},
_applyZooming: function(visualRange, allowPartialUpdate) {
this._resetVisualRangeOption();
this._setVisualRange(visualRange, allowPartialUpdate);
var viewPort = this.getViewport();
this._seriesData.userBreaks = this._getScaleBreaks(this._options, {
minVisible: viewPort.startValue,
maxVisible: viewPort.endValue
}, this._series, this.isArgumentAxis);
this._translator.updateBusinessRange(this._getViewportRange())
},
getZoomStartEventArg: function(event, actionType) {
return {
axis: this,
range: this.visualRange(),
cancel: false,
event: event,
actionType: actionType
}
},
_getZoomEndEventArg: function(previousRange, event, actionType, zoomFactor, shift) {
var newRange = this.visualRange();
return {
axis: this,
previousRange: previousRange,
range: newRange,
cancel: false,
event: event,
actionType: actionType,
zoomFactor: zoomFactor,
shift: shift,
rangeStart: newRange.startValue,
rangeEnd: newRange.endValue
}
},
getZoomBounds: function() {
var wholeRange = (0, _utils.getVizRangeObject)(this._options.wholeRange);
var range = this.getTranslator().getBusinessRange();
var secondPriorityRange = {
startValue: getZoomBoundValue(this._initRange.startValue, range.min),
endValue: getZoomBoundValue(this._initRange.endValue, range.max)
};
return {
startValue: getZoomBoundValue(wholeRange.startValue, secondPriorityRange.startValue),
endValue: getZoomBoundValue(wholeRange.endValue, secondPriorityRange.endValue)
}
},
setInitRange: function() {
this._initRange = {};
if (0 === Object.keys(this._options.wholeRange || {}).length) {
this._initRange = this.getZoomBounds()
}
},
_resetVisualRangeOption: function() {
this._options._customVisualRange = {}
},
getTemplatesGroups: function() {
var ticks = this._majorTicks;
if (ticks) {
return this._majorTicks.map((function(tick) {
return tick.templateContainer
})).filter((function(item) {
return (0, _type.isDefined)(item)
}))
} else {
return []
}
},
setCustomVisualRange: function(range) {
this._options._customVisualRange = range
},
visualRange: function() {
var that = this;
var args = arguments;
var visualRange;
if (0 === args.length) {
var adjustedRange = that._getAdjustedBusinessRange();
var startValue = adjustedRange.minVisible;
var endValue = adjustedRange.maxVisible;
if (that._options.type === _axes_constants.default.discrete) {
var _startValue, _endValue;
startValue = null !== (_startValue = startValue) && void 0 !== _startValue ? _startValue : adjustedRange.categories[0];
endValue = null !== (_endValue = endValue) && void 0 !== _endValue ? _endValue : adjustedRange.categories[adjustedRange.categories.length - 1];
return {
startValue: startValue,
endValue: endValue,
categories: (0, _utils.getCategoriesInfo)(adjustedRange.categories, startValue, endValue).categories
}
}
return {
startValue: startValue,
endValue: endValue
}
} else if (_isArray(args[0])) {
visualRange = args[0]
} else if ((0, _type.isPlainObject)(args[0])) {
visualRange = (0, _extend.extend)({}, args[0])
} else {
visualRange = [args[0], args[1]]
}
var zoomResults = that.handleZooming(visualRange, args[1]);
if (!zoomResults.isPrevented) {
that._visualRange(that, zoomResults)
}
},
handleZooming: function(visualRange, preventEvents, domEvent, action) {
preventEvents = preventEvents || {};
if ((0, _type.isDefined)(visualRange)) {
visualRange = this._validateVisualRange(visualRange);
visualRange.action = action
}
var zoomStartEvent = this.getZoomStartEventArg(domEvent, action);
var previousRange = zoomStartEvent.range;
!preventEvents.start && this._eventTrigger("zoomStart", zoomStartEvent);
var zoomResults = {
isPrevented: zoomStartEvent.cancel,
skipEventRising: preventEvents.skipEventRising,
range: visualRange || zoomStartEvent.range
};
if (!zoomStartEvent.cancel) {
(0, _type.isDefined)(visualRange) && this._applyZooming(visualRange, preventEvents.allowPartialUpdate);
if (!(0, _type.isDefined)(this._storedZoomEndParams)) {
this._storedZoomEndParams = {
startRange: previousRange,
type: this.getOptions().type
}
}
this._storedZoomEndParams.event = domEvent;
this._storedZoomEndParams.action = action;
this._storedZoomEndParams.prevent = !!preventEvents.end
}
return zoomResults
},
handleZoomEnd: function() {
if ((0, _type.isDefined)(this._storedZoomEndParams) && !this._storedZoomEndParams.prevent) {
var previousRange = this._storedZoomEndParams.startRange;
var domEvent = this._storedZoomEndParams.event;
var action = this._storedZoomEndParams.action;
var previousBusinessRange = {
minVisible: previousRange.startValue,
maxVisible: previousRange.endValue,
categories: previousRange.categories
};
var typeIsNotChanged = this.getOptions().type === this._storedZoomEndParams.type;
var shift = typeIsNotChanged ? (0, _math2.adjust)(this.getVisualRangeCenter() - this.getVisualRangeCenter(previousBusinessRange, false)) : NaN;
var zoomFactor = typeIsNotChanged ? +(Math.round(this.getVisualRangeLength(previousBusinessRange) / (this.getVisualRangeLength() || 1) + "e+2") + "e-2") : NaN;
var zoomEndEvent = this._getZoomEndEventArg(previousRange, domEvent, action, zoomFactor, shift);
zoomEndEvent.cancel = this.checkZoomingLowerLimitOvercome(1 === zoomFactor ? "pan" : "zoom", zoomFactor).stopInteraction;
this._eventTrigger("zoomEnd", zoomEndEvent);
if (zoomEndEvent.cancel) {
this._restorePreviousVisualRange(previousRange)
}
this._storedZoomEndParams = null
}
},
_restorePreviousVisualRange: function(previousRange) {
this._storedZoomEndParams = null;
this._applyZooming(previousRange);
this._visualRange(this, previousRange)
},
checkZoomingLowerLimitOvercome: function(actionType, zoomFactor, range) {
var options = this._options;
var translator = this._translator;
var minZoom = options.minVisualRangeLength;
var correctedRange = range;
var visualRange;
var isOvercoming = "zoom" === actionType && zoomFactor >= 1;
var businessRange = translator.getBusinessRange();
if (range) {
visualRange = this.adjustRange((0, _utils.getVizRangeObject)(range));
visualRange = {
minVisible: visualRange.startValue,
maxVisible: visualRange.endValue,
categories: businessRange.categories
}
}
var beforeVisualRangeLength = this.getVisualRangeLength(businessRange);
var afterVisualRangeLength = this.getVisualRangeLength(visualRange);
if ((0, _type.isDefined)(minZoom) || "discrete" === options.type) {
minZoom = translator.convert(minZoom);
if (visualRange && minZoom < beforeVisualRangeLength && minZoom >= afterVisualRangeLength) {
correctedRange = (0, _utils.getVizRangeObject)(translator.getRangeByMinZoomValue(minZoom, visualRange));
isOvercoming = false
} else {
isOvercoming &= minZoom > afterVisualRangeLength
}
} else {
var canvasLength = this._translator.canvasLength;
var fullRange = {
minVisible: businessRange.min,
maxVisible: businessRange.max,
categories: businessRange.categories
};
isOvercoming &= this.getVisualRangeLength(fullRange) / canvasLength >= afterVisualRangeLength
}
return {
stopInteraction: !!isOvercoming,
correctedRange: correctedRange
}
},
isExtremePosition: function(isMax) {
var extremeDataValue;
var seriesData;
if ("discrete" === this._options.type) {
seriesData = this._translator.getBusinessRange();
extremeDataValue = isMax ? seriesData.categories[seriesData.categories.length - 1] : seriesData.categories[0]
} else {
seriesData = this.getZoomBounds();
extremeDataValue = isMax ? seriesData.endValue : seriesData.startValue
}
var translator = this.getTranslator();
var extremePoint = translator.translate(extremeDataValue);
var visualRange = this.visualRange();
var visualRangePoint = isMax ? translator.translate(visualRange.endValue) : translator.translate(visualRange.startValue);
return _abs(visualRangePoint - extremePoint) < 5
},
getViewport: function() {
return this._viewport
},
getFullTicks: function() {
var majors = this._majorTicks || [];
if (this._options.type === _axes_constants.default.discrete) {
return convertTicksToValues(majors)
} else {
return convertTicksToValues(majors.concat(this._minorTicks, this._boundaryTicks)).sort((function(a, b) {
return (0, _utils.valueOf)(a) - (0, _utils.valueOf)(b)
}))
}
},
measureLabels: function(canvas, withIndents) {
var that = this;
var options = that._options;
var widthAxis = options.visible ? options.width : 0;
var ticks;
var indent = withIndents ? options.label.indentFromAxis + .5 * options.tick.length : 0;
var tickInterval;
var viewportRange = that._getViewportRange();
if (viewportRange.isEmpty() || !options.label.visible || !that._axisElementsGroup) {
return {
height: widthAxis,
width: widthAxis,
x: 0,
y: 0
}
}
if (that._majorTicks) {
ticks = convertTicksToValues(that._majorTicks)
} else {
that.updateCanvas(canvas);
ticks = that._createTicksAndLabelFormat(viewportRange, _common.noop);
tickInterval = ticks.tickInterval;
ticks = ticks.ticks
}
var maxText = ticks.reduce((function(prevLabel, tick, index) {
var label = that.formatLabel(tick, options.label, viewportRange, void 0, tickInterval, ticks);
if (prevLabel.length < label.length) {
return label
} else {
return prevLabel
}
}), that.formatLabel(ticks[0], options.label, viewportRange, void 0, tickInterval, ticks));
var text = that._renderer.text(maxText, 0, 0).css(that._textFontStyles).attr(that._textOptions).append(that._renderer.root);
var box = text.getBBox();
text.remove();
return {
x: box.x,
y: box.y,
width: box.width + indent,
height: box.height + indent
}
},
_setLabelsPlacement: function() {
if (!this._options.label.visible) {
return
}
var labelOpt = this._options.label;
var displayMode = this._validateDisplayMode(labelOpt.displayMode);
var overlappingMode = this._validateOverlappingMode(labelOpt.overlappingBehavior, displayMode);
var ignoreOverlapping = "none" === overlappingMode || "ignore" === overlappingMode;
var behavior = {
rotationAngle: labelOpt.rotationAngle,
staggeringSpacing: labelOpt.staggeringSpacing
};
var notRecastStep;
var boxes = this._majorTicks.map((function(tick) {
return tick.labelBBox
}));
var step = this._getStep(boxes);
switch (displayMode) {
case "rotate":
if (ignoreOverlapping) {
notRecastStep = true;
step = 1
}
this._applyLabelMode(displayMode, step, boxes, labelOpt, notRecastStep);
break;
case "stagger":
if (ignoreOverlapping) {
step = 2
}
this._applyLabelMode(displayMode, _max(step, 2), boxes, labelOpt);
break;
default:
this._applyLabelOverlapping(boxes, overlappingMode, step, behavior)
}
},
_applyLabelOverlapping: function(boxes, mode, step, behavior) {
var labelOpt = this._options.label;
var majorTicks = this._majorTicks;
if ("none" === mode || "ignore" === mode) {
return
}
if (step > 1 && boxes.some((function(box, index, array) {
if (0 === index) {
return false
}
return _axes_constants.default.areLabelsOverlap(box, array[index - 1], labelOpt.minSpacing, labelOpt.alignment)
}))) {
this._applyLabelMode(mode, step, boxes, behavior)
}
this._checkBoundedLabelsOverlapping(majorTicks, boxes, mode);
this._checkShiftedLabels(majorTicks, boxes, labelOpt.minSpacing, labelOpt.alignment)
},
_applyLabelMode: function(mode, step, boxes, behavior, notRecastStep) {
var majorTicks = this._majorTicks;
var labelOpt = this._options.label;
var angle = behavior.rotationAngle;
var labelHeight;
var alignment;
var func;
switch (mode) {
case "rotate":
if (!labelOpt.userAlignment) {
alignment = angle < 0 ? RIGHT : LEFT;
if (angle % 90 === 0) {
alignment = CENTER
}
}
step = notRecastStep ? step : this._getStep(boxes, angle);
func = function(tick) {
var contentContainer = tick.getContentContainer();
if (!contentContainer) {
return
}
contentContainer.rotate(angle);
tick.labelRotationAngle = angle;
alignment && (tick.labelAlignment = alignment)
};
updateLabels(majorTicks, step, func);
break;
case "stagger":
labelHeight = this._getMaxLabelHeight(boxes, behavior.staggeringSpacing);
func = function(tick, index) {
if (index / (step - 1) % 2 !== 0) {
tick.labelOffset = labelHeight
}
};
updateLabels(majorTicks, step - 1, func);
break;
case "auto":
case "_auto":
if (2 === step) {
this._applyLabelMode("stagger", step, boxes, behavior)
} else {
this._applyLabelMode("rotate", step, boxes, {
rotationAngle: getOptimalAngle(boxes, labelOpt)
})
}
break;
default:
updateLabels(majorTicks, step)
}
},
getMarkerTrackers: _common.noop,
_drawDateMarkers: _common.noop,
_adjustDateMarkers: _common.noop,
coordsIn: _common.noop,
areCoordsOutsideAxis: _common.noop,
_getSkippedCategory: _common.noop,
_initAxisPositions: _common.noop,
_drawTitle: _common.noop,
_updateTitleCoords: _common.noop,
_adjustConstantLineLabels: _common.noop,
_createTranslator: function() {
return new _translator2d.Translator2D({}, {}, {})
},
_updateTranslator: function() {
var translator = this._translator;
translator.update(translator.getBusinessRange(), this._canvas || {}, this._getTranslatorOptions())
},
_getTranslatorOptions: function() {
var _options$workWeek2, _options$breakStyle$w, _options$breakStyle;
var options = this._options;
return {
isHorizontal: this._isHorizontal,
shiftZeroValue: !this.isArgumentAxis,
interval: options.semiDiscreteInterval,
firstDayOfWeek: null === (_options$workWeek2 = options.workWeek) || void 0 === _options$workWeek2 ? void 0 : _options$workWeek2[0],
stick: this._getStick(),
breaksSize: null !== (_options$breakStyle$w = null === (_options$breakStyle = options.breakStyle) || void 0 === _options$breakStyle ? void 0 : _options$breakStyle.width) && void 0 !== _options$breakStyle$w ? _options$breakStyle$w : 0
}
},
getVisibleArea: function() {
var canvas = this._getCanvasStartEnd();
return [canvas.start, canvas.end].sort((function(a, b) {
return a - b
}))
},
_getCanvasStartEnd: function() {
var isHorizontal = this._isHorizontal;
var canvas = this._canvas || {};
var invert = this._translator.getBusinessRange().invert;
var coords = isHorizontal ? [canvas.left, canvas.width - canvas.right] : [canvas.height - canvas.bottom, canvas.top];
invert && coords.reverse();
return {
start: coords[0],
end: coords[1]
}
},
_getScreenDelta: function() {
var canvas = this._getCanvasStartEnd();
var breaks = this._seriesData ? this._seriesData.breaks || [] : [];
var breaksLength = breaks.length;
var screenDelta = _abs(canvas.start - canvas.end);
return screenDelta - (breaksLength ? breaks[breaksLength - 1].cumulativeWidth : 0)
},
_getScaleBreaks: function() {
return []
},
_filterBreaks: function() {
return []
},
_adjustTitle: _common.noop,
_checkTitleOverflow: _common.noop,
getSpiderTicks: _common.noop,
setSpiderTicks: _common.noop,
_checkBoundedLabelsOverlapping: _common.noop,
_checkShiftedLabels: _common.noop,
drawScaleBreaks: _common.noop,
_visualRange: _common.noop,
_rotateConstantLine: _common.noop,
applyVisualRangeSetter: function(visualRangeSetter) {
this._visualRange = visualRangeSetter
},
getCategoriesSorter: function(argCategories) {
var sort;
if (this.isArgumentAxis) {
sort = argCategories
} else {
var categoriesSortingMethod = this._options.categoriesSortingMethod;
sort = null !== categoriesSortingMethod && void 0 !== categoriesSortingMethod ? categoriesSortingMethod : this._options.categories
}
return sort
},
_getAdjustedBusinessRange: function() {
return this.adjustViewport(this._translator.getBusinessRange())
}
}
},
/*!*****************************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/viz/translators/translator2d.js ***!
\*****************************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
exports.Translator2D = void 0;
var _extend = __webpack_require__( /*! ../../core/utils/extend */ 0);
var _iterator = __webpack_require__( /*! ../../core/utils/iterator */ 3);
var _range = __webpack_require__( /*! ./range */ 132);
var _category_translator = _interopRequireDefault(__webpack_require__( /*! ./category_translator */ 1019));
var _interval_translator = _interopRequireDefault(__webpack_require__( /*! ./interval_translator */ 1020));
var _datetime_translator = _interopRequireDefault(__webpack_require__( /*! ./datetime_translator */ 1021));
var _logarithmic_translator = _interopRequireDefault(__webpack_require__( /*! ./logarithmic_translator */ 1022));
var _utils = __webpack_require__( /*! ../core/utils */ 14);
var _type = __webpack_require__( /*! ../../core/utils/type */ 1);
var _math = __webpack_require__( /*! ../../core/utils/math */ 31);
var _date = _interopRequireDefault(__webpack_require__( /*! ../../core/utils/date */ 19));
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
default: obj
}
}
var _abs = Math.abs;
var CANVAS_PROP = ["width", "height", "left", "top", "bottom", "right"];
var dummyTranslator = {
to: function(value) {
var coord = this._canvasOptions.startPoint + (this._options.conversionValue ? value : Math.round(value));
return coord > this._canvasOptions.endPoint ? this._canvasOptions.endPoint : coord
},
from: function(value) {
return value - this._canvasOptions.startPoint
}
};
var validateCanvas = function(canvas) {
(0, _iterator.each)(CANVAS_PROP, (function(_, prop) {
canvas[prop] = parseInt(canvas[prop]) || 0
}));
return canvas
};
function getCheckingMethodsAboutBreaks(inverted) {
return {
isStartSide: !inverted ? function(pos, breaks, start, end) {
return pos < breaks[0][start]
} : function(pos, breaks, start, end) {
return pos <= breaks[breaks.length - 1][end]
},
isEndSide: !inverted ? function(pos, breaks, start, end) {
return pos >= breaks[breaks.length - 1][end]
} : function(pos, breaks, start, end) {
return pos > breaks[0][start]
},
isInBreak: !inverted ? function(pos, br, start, end) {
return pos >= br[start] && pos < br[end]
} : function(pos, br, start, end) {
return pos > br[end] && pos <= br[start]
},
isBetweenBreaks: !inverted ? function(pos, br, prevBreak, start, end) {
return pos < br[start] && pos >= prevBreak[end]
} : function(pos, br, prevBreak, start, end) {
return pos >= br[end] && pos < prevBreak[start]
},
getLength: !inverted ? function(br) {
return br.length
} : function(br, lastBreak) {
return lastBreak.length - br.length
},
getBreaksSize: !inverted ? function(br) {
return br.cumulativeWidth
} : function(br, lastBreak) {
return lastBreak.cumulativeWidth - br.cumulativeWidth
}
}
}
var _Translator2d = function(businessRange, canvas, options) {
this.update(businessRange, canvas, options)
};
exports.Translator2D = _Translator2d;
_Translator2d.prototype = {
constructor: _Translator2d,
reinit: function() {
var that = this;
var options = that._options;
var range = that._businessRange;
var categories = range.categories || [];
var script = {};
var canvasOptions = that._prepareCanvasOptions();
var visibleCategories = (0, _utils.getCategoriesInfo)(categories, range.minVisible, range.maxVisible).categories;
var categoriesLength = visibleCategories.length;
if (range.isEmpty()) {
script = dummyTranslator
} else {
switch (range.axisType) {
case "logarithmic":
script = _logarithmic_translator.default;
break;
case "semidiscrete":
script = _interval_translator.default;
canvasOptions.ratioOfCanvasRange = canvasOptions.canvasLength / (_date.default.addInterval(canvasOptions.rangeMaxVisible, options.interval) - canvasOptions.rangeMinVisible);
break;
case "discrete":
script = _category_translator.default;
that._categories = categories;
canvasOptions.interval = that._getDiscreteInterval(options.addSpiderCategory ? categoriesLength + 1 : categoriesLength, canvasOptions);
that._categoriesToPoints = function(categories) {
var categoriesToPoints = {};
categories.forEach((function(item, i) {
categoriesToPoints[item.valueOf()] = i
}));
return categoriesToPoints
}(categories);
if (categoriesLength) {
canvasOptions.startPointIndex = that._categoriesToPoints[visibleCategories[0].valueOf()];
that.visibleCategories = visibleCategories
}
break;
default:
if ("datetime" === range.dataType) {
script = _datetime_translator.default
}
}
}(that._oldMethods || []).forEach((function(methodName) {
delete that[methodName]
}));
that._oldMethods = Object.keys(script);
(0, _extend.extend)(that, script);
that._conversionValue = options.conversionValue ? function(value) {
return value
} : function(value) {
return Math.round(value)
};
that.sc = {};
that._checkingMethodsAboutBreaks = [getCheckingMethodsAboutBreaks(false), getCheckingMethodsAboutBreaks(that.isInverted())];
that._translateBreaks();
that._calculateSpecialValues()
},
_translateBreaks: function() {
var breaks = this._breaks;
var size = this._options.breaksSize;
var i;
var b;
var end;
var length;
if (void 0 === breaks) {
return
}
for (i = 0, length = breaks.length; i < length; i++) {
b = breaks[i];
end = this.translate(b.to);
b.end = end;
b.start = !b.gapSize ? !this.isInverted() ? end - size : end + size : end
}
},
_checkValueAboutBreaks: function(breaks, pos, start, end, methods) {
var i;
var length;
var prop = {
length: 0,
breaksSize: void 0,
inBreak: false
};
var br;
var prevBreak;
var lastBreak = breaks[breaks.length - 1];
if (methods.isStartSide(pos, breaks, start, end)) {
return prop
} else if (methods.isEndSide(pos, breaks, start, end)) {
return {
length: lastBreak.length,
breaksSize: lastBreak.cumulativeWidth,
inBreak: false
}
}
for (i = 0, length = breaks.length; i < length; i++) {
br = breaks[i];
prevBreak = breaks[i - 1];
if (methods.isInBreak(pos, br, start, end)) {
prop.inBreak = true;
prop.break = br;
break
}
if (prevBreak && methods.isBetweenBreaks(pos, br, prevBreak, start, end)) {
prop = {
length: methods.getLength(prevBreak, lastBreak),
breaksSize: methods.getBreaksSize(prevBreak, lastBreak),
inBreak: false
};
break
}
}
return prop
},
isInverted: function() {
return !(this._options.isHorizontal ^ this._businessRange.invert)
},
_getDiscreteInterval: function(categoriesLength, canvasOptions) {
var correctedCategoriesCount = categoriesLength - (this._options.stick ? 1 : 0);
return correctedCategoriesCount > 0 ? canvasOptions.canvasLength / correctedCategoriesCount : canvasOptions.canvasLength
},
_prepareCanvasOptions: function() {
var businessRange = this._businessRange;
var canvasOptions = this._canvasOptions = function(range) {
var min = range.min;
var max = range.max;
var minVisible = range.minVisible;
var maxVisible = range.maxVisible;
var isLogarithmic = "logarithmic" === range.axisType;
if (isLogarithmic) {
maxVisible = (0, _utils.getLogExt)(maxVisible, range.base, range.allowNegatives, range.linearThreshold);
minVisible = (0, _utils.getLogExt)(minVisible, range.base, range.allowNegatives, range.linearThreshold);
min = (0, _utils.getLogExt)(min, range.base, range.allowNegatives, range.linearThreshold);
max = (0, _utils.getLogExt)(max, range.base, range.allowNegatives, range.linearThreshold)
}
return {
base: range.base,
rangeMin: min,
rangeMax: max,
rangeMinVisible: minVisible,
rangeMaxVisible: maxVisible
}
}(businessRange);
var canvas = this._canvas;
var breaks = this._breaks;
var length;
canvasOptions.startPadding = canvas.startPadding || 0;
canvasOptions.endPadding = canvas.endPadding || 0;
if (this._options.isHorizontal) {
canvasOptions.startPoint = canvas.left + canvasOptions.startPadding;
length = canvas.width;
canvasOptions.endPoint = canvas.width - canvas.right - canvasOptions.endPadding;
canvasOptions.invert = businessRange.invert
} else {
canvasOptions.startPoint = canvas.top + canvasOptions.startPadding;
length = canvas.height;
canvasOptions.endPoint = canvas.height - canvas.bottom - canvasOptions.endPadding;
canvasOptions.invert = !businessRange.invert
}
this.canvasLength = canvasOptions.canvasLength = canvasOptions.endPoint - canvasOptions.startPoint;
canvasOptions.rangeDoubleError = Math.pow(10, (0, _utils.getPower)(canvasOptions.rangeMax - canvasOptions.rangeMin) - (0, _utils.getPower)(length) - 2);
canvasOptions.ratioOfCanvasRange = canvasOptions.canvasLength / (canvasOptions.rangeMaxVisible - canvasOptions.rangeMinVisible);
if (void 0 !== breaks) {
canvasOptions.ratioOfCanvasRange = (canvasOptions.canvasLength - breaks[breaks.length - 1].cumulativeWidth) / (canvasOptions.rangeMaxVisible - canvasOptions.rangeMinVisible - breaks[breaks.length - 1].length)
}
return canvasOptions
},
updateCanvas: function(canvas) {
this._canvas = validateCanvas(canvas);
this.reinit()
},
updateBusinessRange: function(businessRange) {
var breaks = businessRange.breaks || [];
this._userBreaks = businessRange.userBreaks || [];
this._businessRange = function(businessRange) {
if (!(businessRange instanceof _range.Range)) {
businessRange = new _range.Range(businessRange)
}
function validate(valueSelector, baseValueSelector) {
if (!(0, _type.isDefined)(businessRange[valueSelector]) && (0, _type.isDefined)(businessRange[baseValueSelector])) {
businessRange[valueSelector] = businessRange[baseValueSelector]
}
}
validate("minVisible", "min");
validate("maxVisible", "max");
return businessRange
}(businessRange);
this._breaks = breaks.length ? function(breaks, range) {
var transform = "logarithmic" === range.axisType ? function(value) {
return (0, _utils.getLogExt)(value, range.base)
} : function(value) {
return value
};
var array = [];
var br;
var transformFrom;
var transformTo;
var i;
var length = breaks.length;
var sum = 0;
for (i = 0; i < length; i++) {
br = breaks[i];
transformFrom = transform(br.from);
transformTo = transform(br.to);
sum += transformTo - transformFrom;
array.push({
trFrom: transformFrom,
trTo: transformTo,
from: br.from,
to: br.to,
length: sum,
cumulativeWidth: br.cumulativeWidth
})
}
return array
}(breaks, this._businessRange) : void 0;
this.reinit()
},
update: function(businessRange, canvas, options) {
this._options = (0, _extend.extend)(this._options || {}, options);
this._canvas = validateCanvas(canvas);
this.updateBusinessRange(businessRange)
},
getBusinessRange: function() {
return this._businessRange
},
getEventScale: function(zoomEvent) {
return zoomEvent.deltaScale || 1
},
getCanvasVisibleArea: function() {
return {
min: this._canvasOptions.startPoint,
max: this._canvasOptions.endPoint
}
},
_calculateSpecialValues: function() {
var canvasOptions = this._canvasOptions;
var startPoint = canvasOptions.startPoint - canvasOptions.startPadding;
var endPoint = canvasOptions.endPoint + canvasOptions.endPadding;
var range = this._businessRange;
var minVisible = range.minVisible;
var maxVisible = range.maxVisible;
var canvas_position_center_middle = startPoint + canvasOptions.canvasLength / 2;
var canvas_position_default;
if (minVisible < 0 && maxVisible > 0 && minVisible !== maxVisible) {
canvas_position_default = this.translate(0, 1)
}
if (!(0, _type.isDefined)(canvas_position_default)) {
var invert = range.invert ^ (minVisible < 0 && maxVisible <= 0);
if (this._options.isHorizontal) {
canvas_position_default = invert ? endPoint : startPoint
} else {
canvas_position_default = invert ? startPoint : endPoint
}
}
this.sc = {
canvas_position_default: canvas_position_default,
canvas_position_left: startPoint,
canvas_position_top: startPoint,
canvas_position_center: canvas_position_center_middle,
canvas_position_middle: canvas_position_center_middle,
canvas_position_right: endPoint,
canvas_position_bottom: endPoint,
canvas_position_start: canvasOptions.invert ? endPoint : startPoint,
canvas_position_end: canvasOptions.invert ? startPoint : endPoint
}
},
translateSpecialCase: function(value) {
return this.sc[value]
},
_calculateProjection: function(distance) {
var canvasOptions = this._canvasOptions;
return canvasOptions.invert ? canvasOptions.endPoint - distance : canvasOptions.startPoint + distance
},
_calculateUnProjection: function(distance) {
var canvasOptions = this._canvasOptions;
"datetime" === this._businessRange.dataType && (distance = Math.round(distance));
return canvasOptions.invert ? canvasOptions.rangeMaxVisible.valueOf() - distance : canvasOptions.rangeMinVisible.valueOf() + distance
},
getMinBarSize: function(minBarSize) {
var visibleArea = this.getCanvasVisibleArea();
var minValue = this.from(visibleArea.min + minBarSize);
return _abs(this.from(visibleArea.min) - (!(0, _type.isDefined)(minValue) ? this.from(visibleArea.max) : minValue))
},
checkMinBarSize: function(value, minShownValue, stackValue) {
return _abs(value) < minShownValue ? value >= 0 ? minShownValue : -minShownValue : value
},
translate: function(bp, direction) {
var specialValue = this.translateSpecialCase(bp);
if ((0, _type.isDefined)(specialValue)) {
return Math.round(specialValue)
}
if (isNaN(bp)) {
return null
}
return this.to(bp, direction)
},
getInterval: function(interval) {
var _interval;
var canvasOptions = this._canvasOptions;
interval = null !== (_interval = interval) && void 0 !== _interval ? _interval : this._businessRange.interval;
if (interval) {
return Math.round(canvasOptions.ratioOfCanvasRange * interval)
}
return Math.round(canvasOptions.endPoint - canvasOptions.startPoint)
},
zoom: function(translate, scale, wholeRange) {
var canvasOptions = this._canvasOptions;
if (canvasOptions.rangeMinVisible.valueOf() === canvasOptions.rangeMaxVisible.valueOf() && 0 !== translate) {
return this.zoomZeroLengthRange(translate, scale)
}
var startPoint = canvasOptions.startPoint;
var endPoint = canvasOptions.endPoint;
var isInverted = this.isInverted();
var newStart = (startPoint + translate) / scale;
var newEnd = (endPoint + translate) / scale;
wholeRange = wholeRange || {};
var minPoint = this.to(isInverted ? wholeRange.endValue : wholeRange.startValue);
var maxPoint = this.to(isInverted ? wholeRange.startValue : wholeRange.endValue);
var min;
var max;
if (minPoint > newStart) {
newEnd -= newStart - minPoint;
newStart = minPoint;
min = isInverted ? wholeRange.endValue : wholeRange.startValue
}
if (maxPoint < newEnd) {
newStart -= newEnd - maxPoint;
newEnd = maxPoint;
max = isInverted ? wholeRange.startValue : wholeRange.endValue
}
if (maxPoint - minPoint < newEnd - newStart) {
newStart = minPoint;
newEnd = maxPoint
}
translate = (endPoint - startPoint) * newStart / (newEnd - newStart) - startPoint;
scale = (startPoint + translate) / newStart || 1;
min = (0, _type.isDefined)(min) ? min : (0, _math.adjust)(this.from(newStart, 1));
max = (0, _type.isDefined)(max) ? max : (0, _math.adjust)(this.from(newEnd, -1));
if (scale <= 1) {
min = this._correctValueAboutBreaks(min, 1 === scale ? translate : -1);
max = this._correctValueAboutBreaks(max, 1 === scale ? translate : 1)
}
if (min > max) {
min = min > wholeRange.endValue ? wholeRange.endValue : min;
max = max < wholeRange.startValue ? wholeRange.startValue : max
} else {
min = min < wholeRange.startValue ? wholeRange.startValue : min;
max = max > wholeRange.endValue ? wholeRange.endValue : max
}
return {
min: min,
max: max,
translate: (0, _math.adjust)(translate),
scale: (0, _math.adjust)(scale)
}
},
_correctValueAboutBreaks: function(value, direction) {
var br = this._userBreaks.filter((function(br) {
return value >= br.from && value <= br.to
}));
if (br.length) {
return direction > 0 ? br[0].to : br[0].from
} else {
return value
}
},
zoomZeroLengthRange: function(translate, scale) {
var canvasOptions = this._canvasOptions;
var min = canvasOptions.rangeMin;
var max = canvasOptions.rangeMax;
var correction = (max.valueOf() !== min.valueOf() ? max.valueOf() - min.valueOf() : _abs(canvasOptions.rangeMinVisible.valueOf() - min.valueOf())) / canvasOptions.canvasLength;
var isDateTime = (0, _type.isDate)(max) || (0, _type.isDate)(min);
var isLogarithmic = "logarithmic" === this._businessRange.axisType;
var newMin = canvasOptions.rangeMinVisible.valueOf() - correction;
var newMax = canvasOptions.rangeMaxVisible.valueOf() + correction;
newMin = isLogarithmic ? (0, _math.adjust)((0, _utils.raiseToExt)(newMin, canvasOptions.base)) : isDateTime ? new Date(newMin) : newMin;
newMax = isLogarithmic ? (0, _math.adjust)((0, _utils.raiseToExt)(newMax, canvasOptions.base)) : isDateTime ? new Date(newMax) : newMax;
return {
min: newMin,
max: newMax,
translate: translate,
scale: scale
}
},
getMinScale: function(zoom) {
var _this$_businessRange = this._businessRange,
dataType = _this$_businessRange.dataType,
interval = _this$_businessRange.interval;
if ("datetime" === dataType && 1 === interval) {
return this.getDateTimeMinScale(zoom)
}
return zoom ? 1.1 : .9
},
getDateTimeMinScale: function(zoom) {
var canvasOptions = this._canvasOptions;
var length = canvasOptions.canvasLength / canvasOptions.ratioOfCanvasRange;
length += (parseInt(.1 * length) || 1) * (zoom ? -2 : 2);
return canvasOptions.canvasLength / (Math.max(length, 1) * canvasOptions.ratioOfCanvasRange)
},
getScale: function(val1, val2) {
var canvasOptions = this._canvasOptions;
if (canvasOptions.rangeMax === canvasOptions.rangeMin) {
return 1
}
val1 = (0, _type.isDefined)(val1) ? this.fromValue(val1) : canvasOptions.rangeMin;
val2 = (0, _type.isDefined)(val2) ? this.fromValue(val2) : canvasOptions.rangeMax;
return (canvasOptions.rangeMax - canvasOptions.rangeMin) / Math.abs(val1 - val2)
},
isValid: function(value) {
var co = this._canvasOptions;
value = this.fromValue(value);
return null !== value && !isNaN(value) && value.valueOf() + co.rangeDoubleError >= co.rangeMin && value.valueOf() - co.rangeDoubleError <= co.rangeMax
},
getCorrectValue: function(value, direction) {
var breaks = this._breaks;
var prop;
value = this.fromValue(value);
if (this._breaks) {
prop = this._checkValueAboutBreaks(breaks, value, "trFrom", "trTo", this._checkingMethodsAboutBreaks[0]);
if (true === prop.inBreak) {
return this.toValue(direction > 0 ? prop.break.trTo : prop.break.trFrom)
}
}
return this.toValue(value)
},
to: function(bp, direction) {
var range = this.getBusinessRange();
if ((0, _type.isDefined)(range.maxVisible) && (0, _type.isDefined)(range.minVisible) && range.maxVisible.valueOf() === range.minVisible.valueOf()) {
if (!(0, _type.isDefined)(bp) || range.maxVisible.valueOf() !== bp.valueOf()) {
return null
}
return this.translateSpecialCase(0 === bp && this._options.shiftZeroValue ? "canvas_position_default" : "canvas_position_middle")
}
bp = this.fromValue(bp);
var canvasOptions = this._canvasOptions;
var breaks = this._breaks;
var prop = {
length: 0
};
var commonBreakSize = 0;
if (void 0 !== breaks) {
prop = this._checkValueAboutBreaks(breaks, bp, "trFrom", "trTo", this._checkingMethodsAboutBreaks[0]);
commonBreakSize = (0, _type.isDefined)(prop.breaksSize) ? prop.breaksSize : 0
}
if (true === prop.inBreak) {
if (direction > 0) {
return prop.break.start
} else if (direction < 0) {
return prop.break.end
} else {
return null
}
}
return this._conversionValue(this._calculateProjection((bp - canvasOptions.rangeMinVisible - prop.length) * canvasOptions.ratioOfCanvasRange + commonBreakSize))
},
from: function(pos, direction) {
var breaks = this._breaks;
var prop = {
length: 0
};
var canvasOptions = this._canvasOptions;
var startPoint = canvasOptions.startPoint;
var commonBreakSize = 0;
if (void 0 !== breaks) {
prop = this._checkValueAboutBreaks(breaks, pos, "start", "end", this._checkingMethodsAboutBreaks[1]);
commonBreakSize = (0, _type.isDefined)(prop.breaksSize) ? prop.breaksSize : 0
}
if (true === prop.inBreak) {
if (direction > 0) {
return this.toValue(prop.break.trTo)
} else if (direction < 0) {
return this.toValue(prop.break.trFrom)
} else {
return null
}
}
return this.toValue(this._calculateUnProjection((pos - startPoint - commonBreakSize) / canvasOptions.ratioOfCanvasRange + prop.length))
},
isValueProlonged: false,
getRange: function() {
return [this.toValue(this._canvasOptions.rangeMin), this.toValue(this._canvasOptions.rangeMax)]
},
getScreenRange: function() {
return [this._canvasOptions.startPoint, this._canvasOptions.endPoint]
},
add: function(value, diff, dir) {
return this._add(value, diff, (this._businessRange.invert ? -1 : 1) * dir)
},
_add: function(value, diff, coeff) {
return this.toValue(this.fromValue(value) + diff * coeff)
},
fromValue: function(value) {
return null !== value ? Number(value) : null
},
toValue: function(value) {
return null !== value ? Number(value) : null
},
ratioOfCanvasRange: function() {
return this._canvasOptions.ratioOfCanvasRange
},
convert: function(value) {
return value
},
getRangeByMinZoomValue: function(minZoom, visualRange) {
if (visualRange.minVisible + minZoom <= this._businessRange.max) {
return [visualRange.minVisible, visualRange.minVisible + minZoom]
} else {
return [visualRange.maxVisible - minZoom, visualRange.maxVisible]
}
}
}
},
/*!***************************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/viz/gauges/base_indicators.js ***!
\***************************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
exports.BaseRangeBar = exports.BaseTextCloudMarker = exports.BaseIndicator = exports.BaseElement = void 0;
var _common = __webpack_require__( /*! ../../core/utils/common */ 4);
var _iterator = __webpack_require__( /*! ../../core/utils/iterator */ 3);
var _base_gauge = __webpack_require__( /*! ./base_gauge */ 193);
var _utils = __webpack_require__( /*! ../core/utils */ 14);
var _extend = __webpack_require__( /*! ../../core/utils/extend */ 0);
var _class = (obj = __webpack_require__( /*! ../../core/class */ 15), obj && obj.__esModule ? obj : {
default: obj
});
var obj;
var _isFinite = isFinite;
var _Number = Number;
var _round = Math.round;
var _formatValue = _base_gauge.formatValue;
var _getSampleText = _base_gauge.getSampleText;
var BaseElement = _class.default.inherit({
ctor: function(parameters) {
var that = this;
(0, _iterator.each)(parameters, (function(name, value) {
that["_" + name] = value
}));
that._init()
},
dispose: function() {
var that = this;
that._dispose();
(0, _iterator.each)(that, (function(name) {
that[name] = null
}));
return that
},
getOffset: function() {
return _Number(this._options.offset) || 0
}
});
exports.BaseElement = BaseElement;
var BaseIndicator = BaseElement.inherit({
_init: function() {
this._rootElement = this._createRoot().linkOn(this._owner, {
name: "value-indicator",
after: "core"
});
this._trackerElement = this._createTracker()
},
_dispose: function() {
this._rootElement.linkOff()
},
_setupAnimation: function() {
var that = this;
if (that._options.animation) {
that._animation = {
step: function(pos) {
that._actualValue = that._animation.start + that._animation.delta * pos;
that._actualPosition = that._translator.translate(that._actualValue);
that._move()
},
duration: that._options.animation.duration > 0 ? _Number(that._options.animation.duration) : 0,
easing: that._options.animation.easing
}
}
},
_runAnimation: function(value) {
var animation = this._animation;
animation.start = this._actualValue;
animation.delta = value - this._actualValue;
this._rootElement.animate({
_: 0
}, {
step: animation.step,
duration: animation.duration,
easing: animation.easing
})
},
_createRoot: function() {
return this._renderer.g().attr({
class: this._className
})
},
_createTracker: function() {
return this._renderer.path([], "area")
},
_getTrackerSettings: _common.noop,
clean: function() {
this._animation && this._rootElement.stopAnimation();
this._rootElement.linkRemove().clear();
this._clear();
this._tracker.detach(this._trackerElement);
this._options = this.enabled = this._animation = null;
return this
},
render: function(options) {
this.type = options.type;
this._options = options;
this._actualValue = this._currentValue = this._translator.adjust(this._options.currentValue);
this.enabled = this._isEnabled();
if (this.enabled) {
this._setupAnimation();
this._rootElement.attr({
fill: this._options.color
}).linkAppend();
this._tracker.attach(this._trackerElement, this, this._trackerInfo)
}
return this
},
resize: function(layout) {
this._rootElement.clear();
this._clear();
this.visible = this._isVisible(layout);
if (this.visible) {
(0, _extend.extend)(this._options, layout);
this._actualPosition = this._translator.translate(this._actualValue);
this._render();
this._trackerElement.attr(this._getTrackerSettings());
this._move()
}
return this
},
value: function(arg, _noAnimation) {
var val;
var rootElement = this._rootElement;
var visibility = null;
if (void 0 === arg) {
return this._currentValue
}
if (null === arg) {
visibility = "hidden";
this._currentValue = arg
} else {
val = this._translator.adjust(arg);
if (this._currentValue !== val && _isFinite(val)) {
this._currentValue = val;
if (this.visible) {
if (this._animation && !_noAnimation) {
this._runAnimation(val)
} else {
this._actualValue = val;
this._actualPosition = this._translator.translate(val);
this._move()
}
}
}
}
rootElement.attr({
visibility: visibility
});
return this
},
_isEnabled: null,
_isVisible: null,
_render: null,
_clear: null,
_move: null
});
exports.BaseIndicator = BaseIndicator;
var COEFFICIENTS_MAP = {};
COEFFICIENTS_MAP["right-bottom"] = COEFFICIENTS_MAP.rb = [0, -1, -1, 0, 0, 1, 1, 0];
COEFFICIENTS_MAP["bottom-right"] = COEFFICIENTS_MAP.br = [-1, 0, 0, -1, 1, 0, 0, 1];
COEFFICIENTS_MAP["left-bottom"] = COEFFICIENTS_MAP.lb = [0, -1, 1, 0, 0, 1, -1, 0];
COEFFICIENTS_MAP["bottom-left"] = COEFFICIENTS_MAP.bl = [1, 0, 0, -1, -1, 0, 0, 1];
COEFFICIENTS_MAP["left-top"] = COEFFICIENTS_MAP.lt = [0, 1, 1, 0, 0, -1, -1, 0];
COEFFICIENTS_MAP["top-left"] = COEFFICIENTS_MAP.tl = [1, 0, 0, 1, -1, 0, 0, -1];
COEFFICIENTS_MAP["right-top"] = COEFFICIENTS_MAP.rt = [0, 1, -1, 0, 0, -1, 1, 0];
COEFFICIENTS_MAP["top-right"] = COEFFICIENTS_MAP.tr = [-1, 0, 0, 1, 1, 0, 0, -1];
var BaseTextCloudMarker = BaseIndicator.inherit({
_move: function() {
var options = this._options;
var textCloudOptions = this._getTextCloudOptions();
var text = _formatValue(this._actualValue, options.text);
this._text.attr({
text: text
});
var bBox = this._text.getBBox();
var x = textCloudOptions.x;
var y = textCloudOptions.y;
var cloudWidth = (bBox.width || text.length * this._textUnitWidth) + 2 * options.horizontalOffset;
var cloudHeight = (bBox.height || this._textHeight) + 2 * options.verticalOffset;
var info = function(options) {
var x = options.x;
var y = options.y;
var type = COEFFICIENTS_MAP[options.type];
var cloudWidth = options.cloudWidth;
var cloudHeight = options.cloudHeight;
var tailWidth;
var tailHeight;
var cx = x;
var cy = y;
tailWidth = tailHeight = options.tailLength;
if (1 & type[0]) {
tailHeight = Math.min(tailHeight, cloudHeight / 3)
} else {
tailWidth = Math.min(tailWidth, cloudWidth / 3)
}
return {
cx: _round(cx + type[0] * tailWidth + (type[0] + type[2]) * cloudWidth / 2),
cy: _round(cy + type[1] * tailHeight + (type[1] + type[3]) * cloudHeight / 2),
points: [_round(x), _round(y), _round(x += type[0] * (cloudWidth + tailWidth)), _round(y += type[1] * (cloudHeight + tailHeight)), _round(x += type[2] * cloudWidth), _round(y += type[3] * cloudHeight), _round(x += type[4] * cloudWidth), _round(y += type[5] * cloudHeight), _round(x += type[6] * (cloudWidth - tailWidth)), _round(y += type[7] * (cloudHeight - tailHeight))]
}
}({
x: x,
y: y,
cloudWidth: cloudWidth,
cloudHeight: cloudHeight,
tailLength: options.arrowLength,
type: this._correctCloudType(textCloudOptions.type, {
x: x,
y: y
}, {
width: cloudWidth,
height: cloudHeight
})
});
this._text.attr({
x: info.cx,
y: info.cy + this._textVerticalOffset
});
this._cloud.attr({
points: info.points
});
this._trackerElement && this._trackerElement.attr({
points: info.points
})
},
_measureText: function() {
var root;
var text;
var bBox;
var sampleText;
if (!this._textVerticalOffset) {
root = this._createRoot().append(this._owner);
sampleText = _getSampleText(this._translator, this._options.text);
text = this._renderer.text(sampleText, 0, 0).attr({
align: "center"
}).css((0, _utils.patchFontOptions)(this._options.text.font)).append(root);
bBox = text.getBBox();
root.remove();
this._textVerticalOffset = -bBox.y - bBox.height / 2;
this._textWidth = bBox.width;
this._textHeight = bBox.height;
this._textUnitWidth = this._textWidth / sampleText.length;
this._textFullWidth = this._textWidth + 2 * this._options.horizontalOffset;
this._textFullHeight = this._textHeight + 2 * this._options.verticalOffset
}
},
_render: function() {
this._measureText();
this._cloud = this._cloud || this._renderer.path([], "area").append(this._rootElement);
this._text = this._text || this._renderer.text().append(this._rootElement);
this._text.attr({
align: "center"
}).css((0, _utils.patchFontOptions)(this._options.text.font))
},
_clear: function() {
delete this._cloud;
delete this._text
},
getTooltipParameters: function() {
var position = this._getTextCloudOptions();
return {
x: position.x,
y: position.y,
value: this._currentValue,
color: this._options.color
}
},
_correctCloudType: function(type) {
return type
}
});
exports.BaseTextCloudMarker = BaseTextCloudMarker;
var BaseRangeBar = BaseIndicator.inherit({
_measureText: function() {
var root;
var text;
var bBox;
this._hasText = this._isTextVisible();
if (this._hasText && !this._textVerticalOffset) {
root = this._createRoot().append(this._owner);
text = this._renderer.text(_getSampleText(this._translator, this._options.text), 0, 0).attr({
class: "dxg-text",
align: "center"
}).css((0, _utils.patchFontOptions)(this._options.text.font)).append(root);
bBox = text.getBBox();
root.remove();
this._textVerticalOffset = -bBox.y - bBox.height / 2;
this._textWidth = bBox.width;
this._textHeight = bBox.height
}
},
_move: function() {
this._updateBarItemsPositions();
if (this._hasText) {
this._text.attr({
text: _formatValue(this._actualValue, this._options.text)
});
this._updateTextPosition();
this._updateLinePosition()
}
},
_updateBarItems: function() {
var options = this._options;
var spaceColor;
var translator = this._translator;
this._setBarSides();
this._startPosition = translator.translate(translator.getDomainStart());
this._endPosition = translator.translate(translator.getDomainEnd());
this._basePosition = translator.translate(options.baseValue);
this._space = this._getSpace();
var backgroundColor = options.backgroundColor || "none";
if ("none" !== backgroundColor && this._space > 0) {
spaceColor = options.containerBackgroundColor || "none"
} else {
this._space = 0;
spaceColor = "none"
}
this._backItem1.attr({
fill: backgroundColor
});
this._backItem2.attr({
fill: backgroundColor
});
this._spaceItem1.attr({
fill: spaceColor
});
this._spaceItem2.attr({
fill: spaceColor
})
},
_getSpace: function() {
return 0
},
_updateTextItems: function() {
if (this._hasText) {
this._line = this._line || this._renderer.path([], "line").attr({
class: "dxg-main-bar",
"stroke-linecap": "square"
}).append(this._rootElement);
this._text = this._text || this._renderer.text("", 0, 0).attr({
class: "dxg-text"
}).append(this._rootElement);
this._text.attr({
align: this._getTextAlign()
}).css(this._getFontOptions());
this._setTextItemsSides()
} else {
if (this._line) {
this._line.remove();
delete this._line
}
if (this._text) {
this._text.remove();
delete this._text
}
}
},
_isTextVisible: function() {
return false
},
_getTextAlign: function() {
return "center"
},
_getFontOptions: function() {
var options = this._options;
var font = options.text.font;
if (!font || !font.color) {
font = (0, _extend.extend)({}, font, {
color: options.color
})
}
return (0, _utils.patchFontOptions)(font)
},
_updateBarItemsPositions: function() {
var positions = this._getPositions();
this._backItem1.attr(this._buildItemSettings(positions.start, positions.back1));
this._backItem2.attr(this._buildItemSettings(positions.back2, positions.end));
this._spaceItem1.attr(this._buildItemSettings(positions.back1, positions.main1));
this._spaceItem2.attr(this._buildItemSettings(positions.main2, positions.back2));
this._mainItem.attr(this._buildItemSettings(positions.main1, positions.main2));
this._trackerElement && this._trackerElement.attr(this._buildItemSettings(positions.main1, positions.main2))
},
_render: function() {
this._measureText();
if (!this._backItem1) {
this._backItem1 = this._createBarItem();
this._backItem1.attr({
class: "dxg-back-bar"
})
}
if (!this._backItem2) {
this._backItem2 = this._createBarItem();
this._backItem2.attr({
class: "dxg-back-bar"
})
}
if (!this._spaceItem1) {
this._spaceItem1 = this._createBarItem();
this._spaceItem1.attr({
class: "dxg-space-bar"
})
}
if (!this._spaceItem2) {
this._spaceItem2 = this._createBarItem();
this._spaceItem2.attr({
class: "dxg-space-bar"
})
}
if (!this._mainItem) {
this._mainItem = this._createBarItem();
this._mainItem.attr({
class: "dxg-main-bar"
})
}
this._updateBarItems();
this._updateTextItems()
},
_clear: function() {
delete this._backItem1;
delete this._backItem2;
delete this._spaceItem1;
delete this._spaceItem2;
delete this._mainItem;
delete this._hasText;
delete this._line;
delete this._text
},
getTooltipParameters: function() {
var position = this._getTooltipPosition();
return {
x: position.x,
y: position.y,
value: this._currentValue,
color: this._options.color,
offset: 0
}
}
});
exports.BaseRangeBar = BaseRangeBar
},
/*!********************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/viz/tree_map/common.js ***!
\********************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
exports.buildRectAppearance = function(option) {
var border = option.border || {};
return {
fill: option.color,
opacity: option.opacity,
stroke: border.color,
"stroke-width": border.width,
"stroke-opacity": border.opacity,
hatching: option.hatching
}
};
exports.buildTextAppearance = function(options, filter) {
return {
attr: {
filter: filter
},
css: (0, _utils.patchFontOptions)(options.font)
}
};
var _utils = __webpack_require__( /*! ../core/utils */ 14)
},
/*!***********************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/viz/components/tracker.js ***!
\***********************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
exports.Tracker = Tracker;
var _index = __webpack_require__( /*! ../../events/utils/index */ 9);
var _dom_adapter = _interopRequireDefault(__webpack_require__( /*! ../../core/dom_adapter */ 11));
var _click = __webpack_require__( /*! ../../events/click */ 22);
var _pointer = _interopRequireDefault(__webpack_require__( /*! ../../events/pointer */ 25));
var _events_engine = _interopRequireDefault(__webpack_require__( /*! ../../events/core/events_engine */ 5));
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
default: obj
}
}
var downPointerEventName = _pointer.default.down;
var movePointerEventName = _pointer.default.move;
function Tracker(parameters) {
this._initHandlers(parameters)
}
Tracker.prototype = {
constructor: Tracker,
_initHandlers: function(parameters) {
var document = _dom_adapter.default.getDocument();
parameters.getCoords = function(e) {
var data = (0, _index.eventData)(e);
var offset = parameters.widget._renderer.getRootOffset();
return [data.x - offset.left, data.y - offset.top]
};
parameters.root.on(_click.name, clickHandler);
parameters.root.on(downPointerEventName, downHandler);
_events_engine.default.on(document, downPointerEventName, downHandler);
_events_engine.default.on(document, movePointerEventName, moveHandler);
this._disposeHandlers = function() {
parameters.root.off(_click.name, clickHandler);
parameters.root.off(downPointerEventName, downHandler);
_events_engine.default.off(document, downPointerEventName, downHandler);
_events_engine.default.off(document, movePointerEventName, moveHandler)
};
function clickHandler(e) {
! function(e, params) {
var id = params.getData(e);
if (id >= 0) {
params.click({
node: params.getNode(id),
coords: params.getCoords(e),
event: e
})
}
}(e, parameters)
}
var isRootDown = false;
function downHandler(e) {
if (isRootDown) {
isRootDown = false
} else {
if (void 0 !== parameters.getData(e)) {
isRootDown = true
}
moveHandler(e)
}
}
function moveHandler(e) {
! function(e, params) {
var id = params.getData(e);
if (id >= 0) {
params.getNode(id).setHover()
} else {
params.widget.clearHover()
}
}(e, parameters);
parameters.widget._getOption("tooltip").enabled && function(e, params) {
var id = params.getData(e, true);
var coords;
if (id >= 0) {
coords = (0, _index.eventData)(e);
params.getNode(id).showTooltip([coords.x, coords.y])
} else {
params.widget.hideTooltip()
}
}(e, parameters)
}
},
dispose: function() {
this._disposeHandlers()
}
}
},
/*!*******************************!*\
!*** external "window.JSZip" ***!
\*******************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports) {
module.exports = window.JSZip
},
/*!*************************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/localization/ldml/number.js ***!
\*************************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
exports.getFormatter = function(format, config) {
config = config || DEFAULT_CONFIG;
return function(value) {
if ("number" !== typeof value || isNaN(value)) {
return ""
}
var signFormatParts = function(format) {
var signParts = format.split(";");
if (1 === signParts.length) {
signParts.push("-" + signParts[0])
}
return signParts
}(format);
var isPositiveZero = 1 / value === 1 / 0;
var isPositive = value > 0 || isPositiveZero;
var numberFormat = signFormatParts[isPositive ? 0 : 1];
if (function(format) {
return -1 !== format.indexOf("%") && !format.match(/'[^']*%[^']*'/g)
}(numberFormat)) {
value *= 100
}
if (!isPositive) {
value = -value
}
var floatPointIndex = function(format) {
var isEscape = false;
for (var index = 0; index < format.length; index++) {
if ("'" === format[index]) {
isEscape = !isEscape
}
if ("." === format[index] && !isEscape) {
return index
}
}
return format.length
}(numberFormat);
var floatFormatParts = [numberFormat.substr(0, floatPointIndex), numberFormat.substr(floatPointIndex + 1)];
var minFloatPrecision = getRequiredDigitCount(floatFormatParts[1]);
var maxFloatPrecision = minFloatPrecision + getNonRequiredDigitCount(floatFormatParts[1]);
var minIntegerPrecision = getRequiredDigitCount(floatFormatParts[0]);
var maxIntegerPrecision = getNonRequiredDigitCount(floatFormatParts[0]) || config.unlimitedIntegerDigits ? void 0 : minIntegerPrecision;
var integerLength = Math.floor(value).toString().length;
var floatPrecision = (0, _math.fitIntoRange)(maxFloatPrecision, 0, 15 - integerLength);
var groupSizes = (formatString = floatFormatParts[0], formatString.split(",").slice(1).map((function(str) {
return str.split("").filter((function(char) {
return "#" === char || "0" === char
})).length
}))).reverse();
var formatString;
var valueParts = (0, _utils.toFixed)(value, floatPrecision < 0 ? 0 : floatPrecision).split(".");
var valueIntegerPart = normalizeValueString(reverseString(valueParts[0]), minIntegerPrecision, maxIntegerPrecision);
var valueFloatPart = normalizeValueString(valueParts[1], minFloatPrecision, maxFloatPrecision);
valueIntegerPart = function(valueString, groupSizes, thousandsSeparator) {
if (!groupSizes.length) {
return valueString
}
var groups = [];
var index = 0;
while (valueString) {
var groupSize = groupSizes[index];
if (!groupSize) {
break
}
groups.push(valueString.slice(0, groupSize));
valueString = valueString.slice(groupSize);
if (index < groupSizes.length - 1) {
index++
}
}
return groups.join(thousandsSeparator)
}(valueIntegerPart, groupSizes, config.thousandsSeparator);
var integerString = reverseString(formatNumberPart(reverseString(floatFormatParts[0]), valueIntegerPart));
var floatString = maxFloatPrecision ? formatNumberPart(floatFormatParts[1], valueFloatPart) : "";
var result = integerString + (floatString.match(/\d/) ? config.decimalSeparator : "") + floatString;
return result
}
};
exports.getFormat = function(formatter) {
var valueText = ".";
var isPercent = formatter(1).indexOf("100") >= 0;
valueText = prepareValueText(valueText, formatter, isPercent, true);
valueText = prepareValueText(valueText, formatter, isPercent, false);
var positiveFormat = getFormatByValueText(valueText, formatter, isPercent, false);
var negativeFormat = getFormatByValueText(valueText, formatter, isPercent, true);
return negativeFormat === "-" + positiveFormat ? positiveFormat : positiveFormat + ";" + negativeFormat
};
var _math = __webpack_require__( /*! ../../core/utils/math */ 31);
var _utils = __webpack_require__( /*! ../utils */ 245);
var DEFAULT_CONFIG = {
thousandsSeparator: ",",
decimalSeparator: "."
};
function reverseString(str) {
return str.toString().split("").reverse().join("")
}
function removeStubs(str) {
return str.replace(/'.+'/g, "")
}
function getNonRequiredDigitCount(floatFormat) {
if (!floatFormat) {
return 0
}
var format = removeStubs(floatFormat);
return format.length - format.replace(/[#]/g, "").length
}
function getRequiredDigitCount(floatFormat) {
if (!floatFormat) {
return 0
}
var format = removeStubs(floatFormat);
return format.length - format.replace(/[0]/g, "").length
}
function normalizeValueString(valuePart, minDigitCount, maxDigitCount) {
if (!valuePart) {
return ""
}
if (valuePart.length > maxDigitCount) {
valuePart = valuePart.substr(0, maxDigitCount)
}
while (valuePart.length > minDigitCount && "0" === valuePart.slice(-1)) {
valuePart = valuePart.substr(0, valuePart.length - 1)
}
while (valuePart.length < minDigitCount) {
valuePart += "0"
}
return valuePart
}
function formatNumberPart(format, valueString) {
return format.split("'").map((function(formatPart, escapeIndex) {
var isEscape = escapeIndex % 2;
if (!formatPart && isEscape) {
return "'"
}
return isEscape ? formatPart : formatPart.replace(/[,#0]+/, valueString)
})).join("")
}
function parseValue(text, isPercent, isNegative) {
var value = (isPercent ? .01 : 1) * parseFloat(text) || 0;
return isNegative ? -value : value
}
function prepareValueText(valueText, formatter, isPercent, isIntegerPart) {
var nextValueText = valueText;
var char;
var text;
var nextText;
do {
if (nextText) {
char = text.length === nextText.length ? "0" : "1";
valueText = isIntegerPart ? char + valueText : valueText + char
}
text = nextText || formatter(parseValue(nextValueText, isPercent));
nextValueText = isIntegerPart ? "1" + nextValueText : nextValueText + "1";
nextText = formatter(parseValue(nextValueText, isPercent))
} while (text !== nextText && (isIntegerPart ? text.length === nextText.length : text.length <= nextText.length));
if (isIntegerPart && nextText.length > text.length) {
var hasGroups = -1 === formatter(12345).indexOf("12345");
do {
valueText = "1" + valueText
} while (hasGroups && parseValue(valueText, isPercent) < 1e5)
}
return valueText
}
function getFormatByValueText(valueText, formatter, isPercent, isNegative) {
var format = formatter(parseValue(valueText, isPercent, isNegative));
var valueTextParts = valueText.split(".");
var valueTextWithModifiedFloat = valueTextParts[0] + ".3" + valueTextParts[1].slice(1);
var valueWithModifiedFloat = parseValue(valueTextWithModifiedFloat, isPercent, isNegative);
var decimalSeparatorIndex = formatter(valueWithModifiedFloat).indexOf("3") - 1;
format = format.replace(/(\d)\D(\d)/g, "$1,$2");
if (decimalSeparatorIndex >= 0) {
format = format.slice(0, decimalSeparatorIndex) + "." + format.slice(decimalSeparatorIndex + 1)
}
format = format.replace(/1+/, "1").replace(/1/g, "#");
if (!isPercent) {
format = format.replace("%", "'%'")
}
return format
}
},
/*!*******************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/core/utils/storage.js ***!
\*******************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
exports.sessionStorage = void 0;
var _window = __webpack_require__( /*! ../../core/utils/window */ 7);
var window = (0, _window.getWindow)();
exports.sessionStorage = function() {
var sessionStorage;
try {
sessionStorage = window.sessionStorage
} catch (e) {}
return sessionStorage
}
},
/*!********************************************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/ui/scheduler/timezones/utils.timezones_data.js ***!
\********************************************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
exports.default = void 0;
var _query = _interopRequireDefault(__webpack_require__( /*! ../../../data/query */ 50));
var _errors = _interopRequireDefault(__webpack_require__( /*! ../../../core/errors */ 28));
var _timezones_data = _interopRequireDefault(__webpack_require__( /*! ./timezones_data */ 564));
var _math = __webpack_require__( /*! ../../../core/utils/math */ 31);
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
default: obj
}
}
var parseTimezone = function(timeZoneConfig) {
var offsets = timeZoneConfig.offsets;
var offsetIndices = timeZoneConfig.offsetIndices;
var untils = timeZoneConfig.untils;
var offsetList = offsets.split("|").map((function(value) {
return parseInt(value)
}));
var offsetIndexList = offsetIndices.split("").map((function(value) {
return parseInt(value)
}));
var dateList = (value = untils, value.split("|").map((function(until) {
if ("Infinity" === until) {
return null
}
return 1e3 * parseInt(until, 36)
}))).map((accumulator = 0, function(value) {
return accumulator += value
}));
var accumulator;
var value;
return {
offsetList: offsetList,
offsetIndexList: offsetIndexList,
dateList: dateList
}
};
var TimeZoneCache = function() {
function TimeZoneCache() {
this.map = new Map
}
var _proto = TimeZoneCache.prototype;
_proto.tryGet = function(id) {
if (!this.map.get(id)) {
var config = timeZoneDataUtils.getTimezoneById(id);
if (!config) {
return false
}
var timeZoneInfo = parseTimezone(config);
this.map.set(id, timeZoneInfo)
}
return this.map.get(id)
};
return TimeZoneCache
}();
var tzCache = new TimeZoneCache;
var timeZoneDataUtils = {
_tzCache: tzCache,
_timeZones: _timezones_data.default.zones,
getDisplayedTimeZones: function(timestamp) {
var _this = this;
var timeZones = this._timeZones.map((function(timezone) {
var timeZoneInfo = parseTimezone(timezone);
var offset = _this.getUtcOffset(timeZoneInfo, timestamp);
var title = "(GMT ".concat(_this.formatOffset(offset), ") ").concat(_this.formatId(timezone.id));
return {
offset: offset,
title: title,
id: timezone.id
}
}));
return (0, _query.default)(timeZones).sortBy("offset").toArray()
},
formatOffset: function(offset) {
var hours = Math.floor(offset);
var minutesInDecimal = offset - hours;
var signString = (0, _math.sign)(offset) >= 0 ? "+" : "-";
var hoursString = "0".concat(Math.abs(hours)).slice(-2);
var minutesString = minutesInDecimal > 0 ? ":".concat(60 * minutesInDecimal) : ":00";
return signString + hoursString + minutesString
},
formatId: function(id) {
return id.split("/").join(" - ").split("_").join(" ")
},
getTimezoneById: function(id) {
if (!id) {
return
}
var tzList = this._timeZones;
for (var i = 0; i < tzList.length; i++) {
var currentId = tzList[i].id;
if (currentId === id) {
return tzList[i]
}
}
_errors.default.log("W0009", id);
return
},
getTimeZoneOffsetById: function(id, timestamp) {
var timeZoneInfo = tzCache.tryGet(id);
return timeZoneInfo ? this.getUtcOffset(timeZoneInfo, timestamp) : void 0
},
getTimeZoneDeclarationTuple: function(id, year) {
var timeZoneInfo = tzCache.tryGet(id);
return timeZoneInfo ? this.getTimeZoneDeclarationTupleCore(timeZoneInfo, year) : []
},
getTimeZoneDeclarationTupleCore: function(timeZoneInfo, year) {
var offsetList = timeZoneInfo.offsetList;
var offsetIndexList = timeZoneInfo.offsetIndexList;
var dateList = timeZoneInfo.dateList;
var tupleResult = [];
for (var i = 0; i < dateList.length; i++) {
var currentDate = dateList[i];
var currentYear = new Date(currentDate).getFullYear();
if (currentYear === year) {
var offset = offsetList[offsetIndexList[i + 1]];
tupleResult.push({
date: currentDate,
offset: -offset / 60
})
}
if (currentYear > year) {
break
}
}
return tupleResult
},
getUtcOffset: function(timeZoneInfo, dateTimeStamp) {
var offsetList = timeZoneInfo.offsetList;
var offsetIndexList = timeZoneInfo.offsetIndexList;
var dateList = timeZoneInfo.dateList;
var lastIntervalStartIndex = dateList.length - 1 - 1;
var index = lastIntervalStartIndex;
while (index >= 0 && dateTimeStamp < dateList[index]) {
index--
}
var offset = offsetList[offsetIndexList[index + 1]];
return -offset / 60 || offset
}
};
var _default = timeZoneDataUtils;
exports.default = _default;
module.exports = exports.default;
module.exports.default = exports.default
},
/*!**************************************************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/animation/transition_executor/transition_executor.js ***!
\**************************************************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
exports.TransitionExecutor = void 0;
var _renderer = _interopRequireDefault(__webpack_require__( /*! ../../core/renderer */ 2));
var _class = _interopRequireDefault(__webpack_require__( /*! ../../core/class */ 15));
var _extend = __webpack_require__( /*! ../../core/utils/extend */ 0);
var _common = __webpack_require__( /*! ../../core/utils/common */ 4);
var _type = __webpack_require__( /*! ../../core/utils/type */ 1);
var _iterator = __webpack_require__( /*! ../../core/utils/iterator */ 3);
var _fx = _interopRequireDefault(__webpack_require__( /*! ../fx */ 45));
var _presets = __webpack_require__( /*! ../presets/presets */ 204);
var _deferred = __webpack_require__( /*! ../../core/utils/deferred */ 6);
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
default: obj
}
}
var directionPostfixes = {
forward: " dx-forward",
backward: " dx-backward",
none: " dx-no-direction",
undefined: " dx-no-direction"
};
var TransitionExecutor = _class.default.inherit({
ctor: function() {
this._accumulatedDelays = {
enter: 0,
leave: 0
};
this._animations = [];
this.reset()
},
_createAnimations: function($elements, initialConfig, configModifier, type) {
var that = this;
var result = [];
configModifier = configModifier || {};
var animationConfig = this._prepareElementAnimationConfig(initialConfig, configModifier, type);
if (animationConfig) {
$elements.each((function() {
var animation = that._createAnimation((0, _renderer.default)(this), animationConfig, configModifier);
if (animation) {
animation.element.addClass("dx-animating");
animation.setup();
result.push(animation)
}
}))
}
return result
},
_prepareElementAnimationConfig: function(config, configModifier, type) {
var result;
if ("string" === typeof config) {
var presetName = config;
config = _presets.presets.getPreset(presetName)
}
if (!config) {
result = void 0
} else if ((0, _type.isFunction)(config[type])) {
result = config[type]
} else {
result = (0, _extend.extend)({
skipElementInitialStyles: true,
cleanupWhen: this._completePromise
}, config, configModifier);
if (!result.type || "css" === result.type) {
var cssClass = "dx-" + type;
var extraCssClasses = (result.extraCssClasses ? " " + result.extraCssClasses : "") + directionPostfixes[result.direction];
result.type = "css";
result.from = (result.from || cssClass) + extraCssClasses;
result.to = result.to || cssClass + "-active"
}
result.staggerDelay = result.staggerDelay || 0;
result.delay = result.delay || 0;
if (result.staggerDelay) {
result.delay += this._accumulatedDelays[type];
this._accumulatedDelays[type] += result.staggerDelay
}
}
return result
},
_createAnimation: function($element, animationConfig, configModifier) {
var result;
if ((0, _type.isPlainObject)(animationConfig)) {
result = _fx.default.createAnimation($element, animationConfig)
} else if ((0, _type.isFunction)(animationConfig)) {
result = animationConfig($element, configModifier)
}
return result
},
_startAnimations: function() {
var animations = this._animations;
for (var i = 0; i < animations.length; i++) {
animations[i].start()
}
},
_stopAnimations: function(jumpToEnd) {
var animations = this._animations;
for (var i = 0; i < animations.length; i++) {
animations[i].stop(jumpToEnd)
}
},
_clearAnimations: function() {
var animations = this._animations;
for (var i = 0; i < animations.length; i++) {
animations[i].element.removeClass("dx-animating")
}
this._animations.length = 0
},
reset: function() {
this._accumulatedDelays.enter = 0;
this._accumulatedDelays.leave = 0;
this._clearAnimations();
this._completeDeferred = new _deferred.Deferred;
this._completePromise = this._completeDeferred.promise()
},
enter: function($elements, animationConfig, configModifier) {
var animations = this._createAnimations($elements, animationConfig, configModifier, "enter");
this._animations.push.apply(this._animations, animations)
},
leave: function($elements, animationConfig, configModifier) {
var animations = this._createAnimations($elements, animationConfig, configModifier, "leave");
this._animations.push.apply(this._animations, animations)
},
start: function() {
var that = this;
var result;
if (!this._animations.length) {
that.reset();
result = (new _deferred.Deferred).resolve().promise()
} else {
var animationDeferreds = (0, _iterator.map)(this._animations, (function(animation) {
var result = new _deferred.Deferred;
animation.deferred.always((function() {
result.resolve()
}));
return result.promise()
}));
result = _deferred.when.apply(_renderer.default, animationDeferreds).always((function() {
that._completeDeferred.resolve();
that.reset()
}));
(0, _common.executeAsync)((function() {
that._startAnimations()
}))
}
return result
},
stop: function(jumpToEnd) {
this._stopAnimations(jumpToEnd)
}
});
exports.TransitionExecutor = TransitionExecutor
},
/*!*************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/events/index.js ***!
\*************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
exports.Event = exports.triggerHandler = exports.trigger = exports.off = exports.one = exports.on = void 0;
var _events_engine = (obj = __webpack_require__( /*! ./core/events_engine */ 5), obj && obj.__esModule ? obj : {
default: obj
});
var obj;
var on = _events_engine.default.on;
exports.on = on;
var one = _events_engine.default.one;
exports.one = one;
var off = _events_engine.default.off;
exports.off = off;
var trigger = _events_engine.default.trigger;
exports.trigger = trigger;
var triggerHandler = _events_engine.default.triggerHandler;
exports.triggerHandler = triggerHandler;
var Event = _events_engine.default.Event;
exports.Event = Event
},
/*!*******************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/ui/overlay/z_index.js ***!
\*******************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
exports.clearStack = exports.remove = exports.create = exports.base = void 0;
var _common = __webpack_require__( /*! ../../core/utils/common */ 4);
var baseZIndex = 1500;
var zIndexStack = [];
exports.base = function(ZIndex) {
baseZIndex = (0, _common.ensureDefined)(ZIndex, baseZIndex);
return baseZIndex
};
exports.create = function() {
var baseIndex = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : baseZIndex;
var length = zIndexStack.length;
var index = (length ? zIndexStack[length - 1] : baseIndex) + 1;
zIndexStack.push(index);
return index
};
exports.remove = function(zIndex) {
var position = zIndexStack.indexOf(zIndex);
if (position >= 0) {
zIndexStack.splice(position, 1)
}
};
exports.clearStack = function() {
zIndexStack = []
}
},
/*!****************************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/core/utils/selection_filter.js ***!
\****************************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
exports.SelectionFilterCreator = void 0;
var _common = __webpack_require__( /*! ./common */ 4);
var _type = __webpack_require__( /*! ./type */ 1);
exports.SelectionFilterCreator = function(selectedItemKeys, isSelectAll) {
this.getLocalFilter = function(keyGetter, equalKeys, equalByReference, keyExpr) {
equalKeys = void 0 === equalKeys ? _common.equalByValue : equalKeys;
return functionFilter.bind(this, equalKeys, keyGetter, equalByReference, keyExpr)
};
this.getExpr = function(keyExpr) {
if (!keyExpr) {
return
}
var filterExpr;
selectedItemKeys.forEach((function(key, index) {
filterExpr = filterExpr || [];
var filterExprPart;
if (index > 0) {
filterExpr.push(isSelectAll ? "and" : "or")
}
if ((0, _type.isString)(keyExpr)) {
filterExprPart = getFilterForPlainKey(keyExpr, key)
} else {
filterExprPart = function(keyExpr, itemKeyValue) {
var filterExpr = [];
for (var i = 0, length = keyExpr.length; i < length; i++) {
var currentKeyExpr = keyExpr[i];
var currentKeyValue = itemKeyValue && itemKeyValue[currentKeyExpr];
var filterExprPart = getFilterForPlainKey(currentKeyExpr, currentKeyValue);
if (!filterExprPart) {
break
}
if (i > 0) {
filterExpr.push(isSelectAll ? "or" : "and")
}
filterExpr.push(filterExprPart)
}
return filterExpr
}(keyExpr, key)
}
filterExpr.push(filterExprPart)
}));
if (filterExpr && 1 === filterExpr.length) {
filterExpr = filterExpr[0]
}
return filterExpr
};
this.getCombinedFilter = function(keyExpr, dataSourceFilter) {
var filterExpr = this.getExpr(keyExpr);
var combinedFilter = filterExpr;
if (isSelectAll && dataSourceFilter) {
if (filterExpr) {
combinedFilter = [];
combinedFilter.push(filterExpr);
combinedFilter.push(dataSourceFilter)
} else {
combinedFilter = dataSourceFilter
}
}
return combinedFilter
};
var selectedItemKeyHashesMap;
function functionFilter(equalKeys, keyOf, equalByReference, keyExpr, item) {
var key = keyOf(item);
var keyHash;
var i;
if (!equalByReference) {
keyHash = (0, _common.getKeyHash)(key);
if (!(0, _type.isObject)(keyHash)) {
var selectedKeyHashesMap = function(selectedItemKeys) {
if (!selectedItemKeyHashesMap) {
selectedItemKeyHashesMap = {};
for (var i = 0; i < selectedItemKeys.length; i++) {
selectedItemKeyHashesMap[(0, _common.getKeyHash)(selectedItemKeys[i])] = true
}
}
return selectedItemKeyHashesMap
}(function(keys, keyOf, keyExpr) {
return Array.isArray(keyExpr) ? keys.map((function(key) {
return keyOf(key)
})) : keys
}(selectedItemKeys, keyOf, keyExpr));
if (selectedKeyHashesMap[keyHash]) {
return !isSelectAll
}
return !!isSelectAll
}
}
for (i = 0; i < selectedItemKeys.length; i++) {
if (equalKeys(selectedItemKeys[i], key)) {
return !isSelectAll
}
}
return !!isSelectAll
}
function getFilterForPlainKey(keyExpr, keyValue) {
if (void 0 === keyValue) {
return
}
return [keyExpr, isSelectAll ? "<>" : "=", keyValue]
}
}
},
/*!************************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/ui/scroll_view/animator.js ***!
\************************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
exports.default = void 0;
var _common = __webpack_require__( /*! ../../core/utils/common */ 4);
var _class = (obj = __webpack_require__( /*! ../../core/class */ 15), obj && obj.__esModule ? obj : {
default: obj
});
var obj;
var _frame = __webpack_require__( /*! ../../animation/frame */ 134);
var abstract = _class.default.abstract;
var Animator = _class.default.inherit({
ctor: function() {
this._finished = true;
this._stopped = false;
this._proxiedStepCore = this._stepCore.bind(this)
},
start: function() {
this._stopped = false;
this._finished = false;
this._stepCore()
},
stop: function() {
this._stopped = true;
(0, _frame.cancelAnimationFrame)(this._stepAnimationFrame)
},
_stepCore: function() {
if (this._isStopped()) {
this._stop();
return
}
if (this._isFinished()) {
this._finished = true;
this._complete();
return
}
this._step();
this._stepAnimationFrame = (0, _frame.requestAnimationFrame)(this._proxiedStepCore)
},
_step: abstract,
_isFinished: _common.noop,
_stop: _common.noop,
_complete: _common.noop,
_isStopped: function() {
return this._stopped
},
inProgress: function() {
return !(this._stopped || this._finished)
}
});
var _default = Animator;
exports.default = _default;
module.exports = exports.default;
module.exports.default = exports.default
},
/*!*****************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/events/transform.js ***!
\*****************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
function _typeof(obj) {
if ("function" === typeof Symbol && "symbol" === typeof Symbol.iterator) {
_typeof = function(obj) {
return typeof obj
}
} else {
_typeof = function(obj) {
return obj && "function" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj
}
}
return _typeof(obj)
}
exports.rotateend = exports.rotate = exports.rotatestart = exports.pinchend = exports.pinch = exports.pinchstart = exports.zoomend = exports.zoom = exports.zoomstart = exports.translateend = exports.translate = exports.translatestart = exports.transformend = exports.transform = exports.transformstart = void 0;
var _math = __webpack_require__( /*! ../core/utils/math */ 31);
var iteratorUtils = function(obj, nodeInterop) {
if (!nodeInterop && obj && obj.__esModule) {
return obj
}
if (null === obj || "object" !== _typeof(obj) && "function" !== typeof obj) {
return {
default: obj
}
}
var cache = _getRequireWildcardCache(nodeInterop);
if (cache && cache.has(obj)) {
return cache.get(obj)
}
var newObj = {};
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
for (var key in obj) {
if ("default" !== key && Object.prototype.hasOwnProperty.call(obj, key)) {
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
if (desc && (desc.get || desc.set)) {
Object.defineProperty(newObj, key, desc)
} else {
newObj[key] = obj[key]
}
}
}
newObj.default = obj;
if (cache) {
cache.set(obj, newObj)
}
return newObj
}(__webpack_require__( /*! ../core/utils/iterator */ 3));
var _index = __webpack_require__( /*! ./utils/index */ 9);
var _emitter = _interopRequireDefault(__webpack_require__( /*! ./core/emitter */ 138));
var _emitter_registrator = _interopRequireDefault(__webpack_require__( /*! ./core/emitter_registrator */ 109));
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
default: obj
}
}
function _getRequireWildcardCache(nodeInterop) {
if ("function" !== typeof WeakMap) {
return null
}
var cacheBabelInterop = new WeakMap;
var cacheNodeInterop = new WeakMap;
return (_getRequireWildcardCache = function(nodeInterop) {
return nodeInterop ? cacheNodeInterop : cacheBabelInterop
})(nodeInterop)
}
var START_POSTFIX = "start";
var UPDATE_POSTFIX = "";
var END_POSTFIX = "end";
var eventAliases = [];
var addAlias = function(eventName, eventArgs) {
eventAliases.push({
name: eventName,
args: eventArgs
})
};
addAlias("transform", {
scale: true,
deltaScale: true,
rotation: true,
deltaRotation: true,
translation: true,
deltaTranslation: true
});
addAlias("translate", {
translation: true,
deltaTranslation: true
});
addAlias("pinch", {
scale: true,
deltaScale: true
});
addAlias("rotate", {
rotation: true,
deltaRotation: true
});
var getEventVector = function(e) {
var pointers = e.pointers;
return first = pointers[0], second = pointers[1], {
x: second.pageX - first.pageX,
y: -second.pageY + first.pageY,
centerX: .5 * (second.pageX + first.pageX),
centerY: .5 * (second.pageY + first.pageY)
};
var first, second
};
var getDistance = function(vector) {
return Math.sqrt(vector.x * vector.x + vector.y * vector.y)
};
var getScale = function(firstVector, secondVector) {
return getDistance(firstVector) / getDistance(secondVector)
};
var getRotation = function(firstVector, secondVector) {
var scalarProduct = firstVector.x * secondVector.x + firstVector.y * secondVector.y;
var distanceProduct = getDistance(firstVector) * getDistance(secondVector);
if (0 === distanceProduct) {
return 0
}
var sign = (0, _math.sign)(firstVector.x * secondVector.y - secondVector.x * firstVector.y);
var angle = Math.acos((0, _math.fitIntoRange)(scalarProduct / distanceProduct, -1, 1));
return sign * angle
};
var getTranslation = function(firstVector, secondVector) {
return {
x: firstVector.centerX - secondVector.centerX,
y: firstVector.centerY - secondVector.centerY
}
};
var TransformEmitter = _emitter.default.inherit({
validatePointers: function(e) {
return (0, _index.hasTouches)(e) > 1
},
start: function(e) {
this._accept(e);
var startVector = getEventVector(e);
this._startVector = startVector;
this._prevVector = startVector;
this._fireEventAliases(START_POSTFIX, e)
},
move: function(e) {
var currentVector = getEventVector(e);
var eventArgs = this._getEventArgs(currentVector);
this._fireEventAliases(UPDATE_POSTFIX, e, eventArgs);
this._prevVector = currentVector
},
end: function(e) {
var eventArgs = this._getEventArgs(this._prevVector);
this._fireEventAliases(END_POSTFIX, e, eventArgs)
},
_getEventArgs: function(vector) {
return {
scale: getScale(vector, this._startVector),
deltaScale: getScale(vector, this._prevVector),
rotation: getRotation(vector, this._startVector),
deltaRotation: getRotation(vector, this._prevVector),
translation: getTranslation(vector, this._startVector),
deltaTranslation: getTranslation(vector, this._prevVector)
}
},
_fireEventAliases: function(eventPostfix, originalEvent, eventArgs) {
eventArgs = eventArgs || {};
iteratorUtils.each(eventAliases, function(_, eventAlias) {
var args = {};
iteratorUtils.each(eventAlias.args, (function(name) {
if (name in eventArgs) {
args[name] = eventArgs[name]
}
}));
this._fireEvent("dx" + eventAlias.name + eventPostfix, originalEvent, args)
}.bind(this))
}
});
var eventNames = eventAliases.reduce((function(result, eventAlias) {
[START_POSTFIX, UPDATE_POSTFIX, END_POSTFIX].forEach((function(eventPostfix) {
result.push("dx" + eventAlias.name + eventPostfix)
}));
return result
}), []);
(0, _emitter_registrator.default)({
emitter: TransformEmitter,
events: eventNames
});
var exportNames = {};
iteratorUtils.each(eventNames, (function(_, eventName) {
exportNames[eventName.substring("dx".length)] = eventName
}));
var transformstart = exportNames.transformstart,
transform = exportNames.transform,
transformend = exportNames.transformend,
translatestart = exportNames.translatestart,
translate = exportNames.translate,
translateend = exportNames.translateend,
zoomstart = exportNames.zoomstart,
zoom = exportNames.zoom,
zoomend = exportNames.zoomend,
pinchstart = exportNames.pinchstart,
pinch = exportNames.pinch,
pinchend = exportNames.pinchend,
rotatestart = exportNames.rotatestart,
rotate = exportNames.rotate,
rotateend = exportNames.rotateend;
exports.rotateend = rotateend;
exports.rotate = rotate;
exports.rotatestart = rotatestart;
exports.pinchend = pinchend;
exports.pinch = pinch;
exports.pinchstart = pinchstart;
exports.zoomend = zoomend;
exports.zoom = zoom;
exports.zoomstart = zoomstart;
exports.translateend = translateend;
exports.translate = translate;
exports.translatestart = translatestart;
exports.transformend = transformend;
exports.transform = transform;
exports.transformstart = transformstart
},
/*!*****************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/data/data_source.js ***!
\*****************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
exports.default = void 0;
var _data_source = __webpack_require__( /*! ./data_source/data_source */ 70);
var _default = _data_source.DataSource;
exports.default = _default;
module.exports = exports.default;
module.exports.default = exports.default
},
/*!**********************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/file_management/error.js ***!
\**********************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
exports.default = void 0;
var _default = function(errorCode, fileSystemItem, errorText) {
this.errorCode = errorCode;
this.fileSystemItem = fileSystemItem;
this.errorText = errorText
};
exports.default = _default;
module.exports = exports.default;
module.exports.default = exports.default
},
/*!*********************************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/file_management/file_system_item.js ***!
\*********************************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
exports.default = void 0;
var _type = __webpack_require__( /*! ../core/utils/type */ 1);
var _utils = __webpack_require__( /*! ./utils */ 270);
function _toConsumableArray(arr) {
return function(arr) {
if (Array.isArray(arr)) {
return _arrayLikeToArray(arr)
}
}(arr) || function(iter) {
if ("undefined" !== typeof Symbol && null != iter[Symbol.iterator] || null != iter["@@iterator"]) {
return Array.from(iter)
}
}(arr) || function(o, minLen) {
if (!o) {
return
}
if ("string" === typeof o) {
return _arrayLikeToArray(o, minLen)
}
var n = Object.prototype.toString.call(o).slice(8, -1);
if ("Object" === n && o.constructor) {
n = o.constructor.name
}
if ("Map" === n || "Set" === n) {
return Array.from(o)
}
if ("Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) {
return _arrayLikeToArray(o, minLen)
}
}(arr) || function() {
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
}()
}
function _arrayLikeToArray(arr, len) {
if (null == len || len > arr.length) {
len = arr.length
}
for (var i = 0, arr2 = new Array(len); i < len; i++) {
arr2[i] = arr[i]
}
return arr2
}
var FileSystemItem = function() {
function FileSystemItem() {
var ctor = (0, _type.isString)(arguments[0]) ? this._publicCtor : this._internalCtor;
ctor.apply(this, arguments)
}
var _proto = FileSystemItem.prototype;
_proto._internalCtor = function(pathInfo, name, isDirectory, key) {
this.name = name || "";
this.pathInfo = pathInfo && _toConsumableArray(pathInfo) || [];
this.parentPath = this._getPathByPathInfo(this.pathInfo);
this.relativeName = (0, _utils.pathCombine)(this.parentPath, name);
this.key = key || this._getPathByPathInfo(this.getFullPathInfo(), true);
this.path = (0, _utils.pathCombine)(this.parentPath, name);
this.pathKeys = this.pathInfo.map((function(_ref) {
var key = _ref.key;
return key
}));
if (!this.isRoot()) {
this.pathKeys.push(this.key)
}
this._initialize(isDirectory)
};
_proto._publicCtor = function(path, isDirectory, pathKeys) {
this.path = path || "";
this.pathKeys = pathKeys || [];
var pathInfo = [];
var parts = (0, _utils.getPathParts)(path, true);
for (var i = 0; i < parts.length - 1; i++) {
var part = parts[i];
var pathInfoPart = {
key: this.pathKeys[i] || part,
name: (0, _utils.getName)(part)
};
pathInfo.push(pathInfoPart)
}
this.pathInfo = pathInfo;
this.relativeName = path;
this.name = (0, _utils.getName)(path);
this.key = this.pathKeys.length ? this.pathKeys[this.pathKeys.length - 1] : path;
this.parentPath = parts.length > 1 ? parts[parts.length - 2] : "";
this._initialize(isDirectory)
};
_proto._initialize = function(isDirectory) {
this.isDirectory = !!isDirectory;
this.size = 0;
this.dateModified = new Date;
this.thumbnail = "";
this.tooltipText = ""
};
_proto.getFullPathInfo = function() {
var pathInfo = _toConsumableArray(this.pathInfo);
if (!this.isRoot()) {
pathInfo.push({
key: this.key,
name: this.name
})
}
return pathInfo
};
_proto.isRoot = function() {
return "" === this.path
};
_proto.getFileExtension = function() {
return this.isDirectory ? "" : (0, _utils.getFileExtension)(this.name)
};
_proto.equals = function(item) {
return item && this.key === item.key
};
_proto.createClone = function() {
var result = new FileSystemItem(this.pathInfo, this.name, this.isDirectory, this.key);
result.key = this.key;
result.size = this.size;
result.dateModified = this.dateModified;
result.thumbnail = this.thumbnail;
result.tooltipText = this.tooltipText;
result.hasSubDirectories = this.hasSubDirectories;
result.dataItem = this.dataItem;
return result
};
_proto._getPathByPathInfo = function(pathInfo, escape) {
return pathInfo.map((function(info) {
return escape ? (0, _utils.getEscapedFileName)(info.name) : info.name
})).join(_utils.PATH_SEPARATOR)
};
return FileSystemItem
}();
var _default = FileSystemItem;
exports.default = _default;
module.exports = exports.default;
module.exports.default = exports.default
},
/*!***************************************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/ui/shared/grouped_data_converter_mixin.js ***!
\***************************************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
exports.default = void 0;
var _type = __webpack_require__( /*! ../../core/utils/type */ 1);
var _default = {
_getSpecificDataSourceOption: function() {
var dataSource = this.option("dataSource");
var hasSimpleItems = false;
var data = {};
if (this._getGroupedOption() && function(data) {
return Array.isArray(data) && data.every((function(item) {
var hasTwoFields = 2 === Object.keys(item).length;
var hasCorrectFields = "key" in item && "items" in item;
return hasTwoFields && hasCorrectFields && Array.isArray(item.items)
}))
}(dataSource)) {
data = dataSource.reduce((function(accumulator, item) {
var items = item.items.map((function(innerItem) {
if (!(0, _type.isObject)(innerItem)) {
innerItem = {
text: innerItem
};
hasSimpleItems = true
}
if (!("key" in innerItem)) {
innerItem.key = item.key
}
return innerItem
}));
return accumulator.concat(items)
}), []);
dataSource = {
store: {
type: "array",
data: data
},
group: {
selector: "key",
keepInitialKeyOrder: true
}
};
if (hasSimpleItems) {
dataSource.searchExpr = "text"
}
}
return dataSource
}
};
exports.default = _default;
module.exports = exports.default;
module.exports.default = exports.default
},
/*!*******************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/core/options/index.js ***!
\*******************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
exports.Options = void 0;
var _type = __webpack_require__( /*! ../utils/type */ 1);
var _common = __webpack_require__( /*! ../utils/common */ 4);
var _option_manager = __webpack_require__( /*! ./option_manager */ 552);
var _object = __webpack_require__( /*! ../utils/object */ 52);
var _utils = __webpack_require__( /*! ./utils */ 202);
var _extend = __webpack_require__( /*! ../utils/extend */ 0);
function _defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) {
descriptor.writable = true
}
Object.defineProperty(target, descriptor.key, descriptor)
}
}
var Options = function() {
function Options(options, defaultOptions, optionsByReference, deprecatedOptions) {
var _this = this;
this._deprecatedCallback;
this._startChangeCallback;
this._endChangeCallback;
this._default = defaultOptions;
this._deprecated = deprecatedOptions;
this._deprecatedNames = [];
this._initDeprecatedNames();
this._optionManager = new _option_manager.OptionManager(options, optionsByReference);
this._optionManager.onRelevantNamesPrepared((function(options, name, value, silent) {
return _this._setRelevantNames(options, name, value, silent)
}));
this._cachedOptions = {};
this._rules = []
}
var _proto = Options.prototype;
_proto._initDeprecatedNames = function() {
for (var optionName in this._deprecated) {
this._deprecatedNames.push(optionName)
}
};
_proto._getByRules = function(rules) {
rules = Array.isArray(rules) ? this._rules.concat(rules) : this._rules;
return (0, _utils.convertRulesToOptions)(rules)
};
_proto._notifyDeprecated = function(option) {
var info = this._deprecated[option];
if (info) {
this._deprecatedCallback(option, info)
}
};
_proto._setRelevantNames = function(options, name, value, silent) {
if (name) {
var normalizedName = this._normalizeName(name, silent);
if (normalizedName && normalizedName !== name) {
this._setField(options, normalizedName, value);
this._clearField(options, name)
}
}
};
_proto._setField = function(options, fullName, value) {
var fieldName = "";
var fieldObject = null;
do {
fieldName = fieldName ? ".".concat(fieldName) : "";
fieldName = (0, _utils.getFieldName)(fullName) + fieldName;
fullName = (0, _utils.getParentName)(fullName);
fieldObject = fullName ? this._optionManager.get(options, fullName, false) : options
} while (!fieldObject);
fieldObject[fieldName] = value
};
_proto._clearField = function(options, name) {
delete options[name];
var previousFieldName = (0, _utils.getParentName)(name);
var fieldObject = previousFieldName ? this._optionManager.get(options, previousFieldName, false) : options;
if (fieldObject) {
delete fieldObject[(0, _utils.getFieldName)(name)]
}
};
_proto._normalizeName = function(name, silent) {
if (this._deprecatedNames.length && name) {
for (var i = 0; i < this._deprecatedNames.length; i++) {
if (this._deprecatedNames[i] === name) {
var deprecate = this._deprecated[name];
if (deprecate) {
!silent && this._notifyDeprecated(name);
return deprecate.alias || name
}
}
}
}
return name
};
_proto.addRules = function(rules) {
this._rules = rules.concat(this._rules)
};
_proto.applyRules = function(rules) {
var options = this._getByRules(rules);
this.silent(options)
};
_proto.dispose = function() {
this._deprecatedCallback = _common.noop;
this._startChangeCallback = _common.noop;
this._endChangeCallback = _common.noop;
this._optionManager.dispose()
};
_proto.onChanging = function(callBack) {
this._optionManager.onChanging(callBack)
};
_proto.onChanged = function(callBack) {
this._optionManager.onChanged(callBack)
};
_proto.onDeprecated = function(callBack) {
this._deprecatedCallback = callBack
};
_proto.onStartChange = function(callBack) {
this._startChangeCallback = callBack
};
_proto.onEndChange = function(callBack) {
this._endChangeCallback = callBack
};
_proto.isInitial = function(name) {
var value = this.silent(name);
var initialValue = this.initial(name);
var areFunctions = (0, _type.isFunction)(value) && (0, _type.isFunction)(initialValue);
return areFunctions ? value.toString() === initialValue.toString() : (0, _common.equalByValue)(value, initialValue)
};
_proto.initial = function(name) {
return (0, _utils.getNestedOptionValue)(this._initial, name)
};
_proto.option = function(options, value) {
var isGetter = arguments.length < 2 && "object" !== (0, _type.type)(options);
if (isGetter) {
return this._optionManager.get(void 0, this._normalizeName(options))
} else {
this._startChangeCallback();
try {
this._optionManager.set(options, value)
} finally {
this._endChangeCallback()
}
}
};
_proto.silent = function(options, value) {
var isGetter = arguments.length < 2 && "object" !== (0, _type.type)(options);
if (isGetter) {
return this._optionManager.get(void 0, options, void 0, true)
} else {
this._optionManager.set(options, value, void 0, true)
}
};
_proto.reset = function(name) {
var _this2 = this;
if (name) {
var fullPath = name.replace(/\[([^\]])\]/g, ".$1").split(".");
var value = fullPath.reduce((function(value, field) {
return value ? value[field] : _this2.initial(field)
}), null);
var defaultValue = (0, _type.isObject)(value) ? (0, _object.clone)(value) : value;
this._optionManager.set(name, defaultValue, false)
}
};
_proto.getAliasesByName = function(name) {
var _this3 = this;
return Object.keys(this._deprecated).filter((function(aliasName) {
return name === _this3._deprecated[aliasName].alias
}))
};
_proto.isDeprecated = function(name) {
return Object.prototype.hasOwnProperty.call(this._deprecated, name)
};
_proto.cache = function(name, options) {
var isGetter = arguments.length < 2;
if (isGetter) {
return this._cachedOptions[name]
} else {
this._cachedOptions[name] = (0, _extend.extend)(this._cachedOptions[name], options)
}
};
! function(Constructor, protoProps, staticProps) {
if (protoProps) {
_defineProperties(Constructor.prototype, protoProps)
}
if (staticProps) {
_defineProperties(Constructor, staticProps)
}
return Constructor
}(Options, [{
key: "_initial",
get: function() {
if (!this._initialOptions) {
var rulesOptions = this._getByRules(this.silent("defaultOptionsRules"));
this._initialOptions = this._default;
this._optionManager._setByReference(this._initialOptions, rulesOptions)
}
return this._initialOptions
},
set: function(value) {
this._initialOptions = value
}
}]);
return Options
}();
exports.Options = Options
},
/*!***************************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/bundles/modules/parts/data.js ***!
\***************************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
var DevExpress = __webpack_require__( /*! ./core */ 240);
var data = DevExpress.data = __webpack_require__( /*! ../../../bundles/modules/data */ 267);
data.odata = __webpack_require__( /*! ../../../bundles/modules/data.odata */ 606);
module.exports = data
},
/*!***************************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/ui/toolbar/ui.toolbar.base.js ***!
\***************************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
exports.default = void 0;
var _renderer = _interopRequireDefault(__webpack_require__( /*! ../../core/renderer */ 2));
var _themes = __webpack_require__( /*! ../themes */ 38);
var _common = __webpack_require__( /*! ../../core/utils/common */ 4);
var _type = __webpack_require__( /*! ../../core/utils/type */ 1);
var _component_registrator = _interopRequireDefault(__webpack_require__( /*! ../../core/component_registrator */ 8));
var _array = __webpack_require__( /*! ../../core/utils/array */ 12);
var _extend = __webpack_require__( /*! ../../core/utils/extend */ 0);
var _iterator = __webpack_require__( /*! ../../core/utils/iterator */ 3);
var _position = __webpack_require__( /*! ../../core/utils/position */ 24);
var _uiCollection_widget = _interopRequireDefault(__webpack_require__( /*! ../collection/ui.collection_widget.async */ 613));
var _promise = _interopRequireDefault(__webpack_require__( /*! ../../core/polyfills/promise */ 74));
var _bindable_template = __webpack_require__( /*! ../../core/templates/bindable_template */ 68);
var _errors = _interopRequireDefault(__webpack_require__( /*! ../../core/errors */ 28));
var _fx = _interopRequireDefault(__webpack_require__( /*! ../../animation/fx */ 45));
var _constants = __webpack_require__( /*! ./constants */ 348);
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
default: obj
}
}
var ToolbarBase = _uiCollection_widget.default.inherit({
compactMode: false,
ctor: function(element, options) {
this._userOptions = options || {};
this.callBase(element, options);
if ("height" in this._userOptions) {
_errors.default.log("W0001", this.NAME, "height", "20.1", "Functionality associated with this option is not intended for the Toolbar widget.")
}
},
_getSynchronizableOptionsForCreateComponent: function() {
return this.callBase().filter((function(item) {
return "disabled" !== item
}))
},
_initTemplates: function() {
this.callBase();
var template = new _bindable_template.BindableTemplate(function($container, data, rawModel) {
if ((0, _type.isPlainObject)(data)) {
if (data.text) {
$container.text(data.text).wrapInner("
")
}
if (data.html) {
$container.html(data.html)
}
if ("dxButton" === data.widget) {
if (this.option("useFlatButtons")) {
data.options = data.options || {};
data.options.stylingMode = data.options.stylingMode || "text"
}
if (this.option("useDefaultButtons")) {
data.options = data.options || {};
data.options.type = data.options.type || "default"
}
}
} else {
$container.text(String(data))
}
this._getTemplate("dx-polymorph-widget").render({
container: $container,
model: rawModel,
parent: this
})
}.bind(this), ["text", "html", "widget", "options"], this.option("integrationOptions.watchMethod"));
this._templateManager.addDefaultTemplates({
item: template,
menuItem: template
})
},
_getDefaultOptions: function() {
return (0, _extend.extend)(this.callBase(), {
renderAs: "topToolbar",
grouped: false,
useFlatButtons: false,
useDefaultButtons: false,
multiline: false
})
},
_defaultOptionsRules: function() {
return this.callBase().concat([{
device: function() {
return (0, _themes.isMaterial)()
},
options: {
useFlatButtons: true
}
}])
},
_itemContainer: function() {
return this._$toolbarItemsContainer.find([".dx-toolbar-before", ".dx-toolbar-center", ".dx-toolbar-after"].join(","))
},
_itemClass: function() {
return "dx-toolbar-item"
},
_itemDataKey: function() {
return "dxToolbarItemDataKey"
},
_buttonClass: function() {
return "dx-toolbar-button"
},
_dimensionChanged: function() {
this._arrangeItems();
this._applyCompactMode()
},
_initMarkup: function() {
this._renderToolbar();
this._renderSections();
this.callBase();
this.setAria("role", "toolbar")
},
_waitParentAnimationFinished: function() {
var _this = this;
var $element = this.$element();
return new _promise.default((function(resolve) {
! function runCheck() {
clearTimeout(_this._waitParentAnimationTimeout);
_this._waitParentAnimationTimeout = setTimeout((function() {
return function() {
var readyToResolve = true;
$element.parents().each((function(_, parent) {
if (_fx.default.isAnimating((0, _renderer.default)(parent))) {
readyToResolve = false;
return false
}
}));
if (readyToResolve) {
resolve()
}
return readyToResolve
}() || runCheck()
}), 15)
}()
}))
},
_render: function() {
this.callBase();
this._renderItemsAsync();
if ((0, _themes.isMaterial)()) {
_promise.default.all([this._waitParentAnimationFinished(), this._checkWebFontForLabelsLoaded()]).then(this._dimensionChanged.bind(this))
}
},
_postProcessRenderItems: function() {
this._arrangeItems()
},
_renderToolbar: function() {
this.$element().addClass(_constants.TOOLBAR_CLASS).toggleClass("dx-toolbar-multiline", this.option("multiline"));
this._$toolbarItemsContainer = (0, _renderer.default)("
").addClass("dx-toolbar-items-container").appendTo(this.$element())
},
_renderSections: function() {
var $container = this._$toolbarItemsContainer;
var that = this;
(0, _iterator.each)(["before", "center", "after"], (function() {
var sectionClass = "dx-toolbar-" + this;
var $section = $container.find("." + sectionClass);
if (!$section.length) {
that["_$" + this + "Section"] = $section = (0, _renderer.default)("
").addClass(sectionClass).appendTo($container)
}
}))
},
_checkWebFontForLabelsLoaded: function() {
var $labels = this.$element().find(".dx-toolbar-label");
var promises = [];
$labels.each((function(_, label) {
var text = (0, _renderer.default)(label).text();
var fontWeight = (0, _renderer.default)(label).css("fontWeight");
promises.push((0, _themes.waitWebFont)(text, fontWeight))
}));
return _promise.default.all(promises)
},
_arrangeItems: function(elementWidth) {
elementWidth = elementWidth || this.$element().width();
this._$centerSection.css({
margin: "0 auto",
float: "none"
});
var beforeRect = (0, _position.getBoundingRect)(this._$beforeSection.get(0));
var afterRect = (0, _position.getBoundingRect)(this._$afterSection.get(0));
this._alignCenterSection(beforeRect, afterRect, elementWidth);
var $label = this._$toolbarItemsContainer.find(".dx-toolbar-label").eq(0);
var $section = $label.parent();
if (!$label.length) {
return
}
var labelOffset = beforeRect.width ? beforeRect.width : $label.position().left;
var widthBeforeSection = $section.hasClass("dx-toolbar-before") ? 0 : labelOffset;
var widthAfterSection = $section.hasClass("dx-toolbar-after") ? 0 : afterRect.width;
var elemsAtSectionWidth = 0;
$section.children().not(".dx-toolbar-label").each((function() {
elemsAtSectionWidth += (0, _renderer.default)(this).outerWidth()
}));
var freeSpace = elementWidth - elemsAtSectionWidth;
var sectionMaxWidth = Math.max(freeSpace - widthBeforeSection - widthAfterSection, 0);
if ($section.hasClass("dx-toolbar-before")) {
this._alignSection(this._$beforeSection, sectionMaxWidth)
} else {
var labelPaddings = $label.outerWidth() - $label.width();
$label.css("maxWidth", sectionMaxWidth - labelPaddings)
}
},
_alignCenterSection: function(beforeRect, afterRect, elementWidth) {
this._alignSection(this._$centerSection, elementWidth - beforeRect.width - afterRect.width);
var isRTL = this.option("rtlEnabled");
var leftRect = isRTL ? afterRect : beforeRect;
var rightRect = isRTL ? beforeRect : afterRect;
var centerRect = (0, _position.getBoundingRect)(this._$centerSection.get(0));
if (leftRect.right > centerRect.left || centerRect.right > rightRect.left) {
this._$centerSection.css({
marginLeft: leftRect.width,
marginRight: rightRect.width,
float: leftRect.width > rightRect.width ? "none" : "right"
})
}
},
_alignSection: function($section, maxWidth) {
var $labels = $section.find(".dx-toolbar-label");
var labels = $labels.toArray();
maxWidth -= this._getCurrentLabelsPaddings(labels);
var currentWidth = this._getCurrentLabelsWidth(labels);
var difference = Math.abs(currentWidth - maxWidth);
if (maxWidth < currentWidth) {
labels = labels.reverse();
this._alignSectionLabels(labels, difference, false)
} else {
this._alignSectionLabels(labels, difference, true)
}
},
_alignSectionLabels: function(labels, difference, expanding) {
var getRealLabelWidth = function(label) {
return (0, _position.getBoundingRect)(label).width
};
for (var i = 0; i < labels.length; i++) {
var $label = (0, _renderer.default)(labels[i]);
var currentLabelWidth = Math.ceil(getRealLabelWidth(labels[i]));
var labelMaxWidth = void 0;
if (expanding) {
$label.css("maxWidth", "inherit")
}
var possibleLabelWidth = Math.ceil(expanding ? getRealLabelWidth(labels[i]) : currentLabelWidth);
if (possibleLabelWidth < difference) {
labelMaxWidth = expanding ? possibleLabelWidth : 0;
difference -= possibleLabelWidth
} else {
labelMaxWidth = expanding ? currentLabelWidth + difference : currentLabelWidth - difference;
$label.css("maxWidth", labelMaxWidth);
break
}
$label.css("maxWidth", labelMaxWidth)
}
},
_applyCompactMode: function() {
var $element = this.$element();
$element.removeClass("dx-toolbar-compact");
if (this.option("compactMode") && this._getSummaryItemsWidth(this.itemElements(), true) > $element.width()) {
$element.addClass("dx-toolbar-compact")
}
},
_getCurrentLabelsWidth: function(labels) {
var width = 0;
labels.forEach((function(label, index) {
width += (0, _renderer.default)(label).outerWidth()
}));
return width
},
_getCurrentLabelsPaddings: function(labels) {
var padding = 0;
labels.forEach((function(label, index) {
padding += (0, _renderer.default)(label).outerWidth() - (0, _renderer.default)(label).width()
}));
return padding
},
_renderItem: function(index, item, itemContainer, $after) {
var location = item.location || "center";
var container = itemContainer || this["_$" + location + "Section"];
var itemHasText = !!(item.text || item.html);
var itemElement = this.callBase(index, item, container, $after);
itemElement.toggleClass(this._buttonClass(), !itemHasText).toggleClass("dx-toolbar-label", itemHasText).addClass(item.cssClass);
return itemElement
},
_renderGroupedItems: function() {
var that = this;
(0, _iterator.each)(this.option("items"), (function(groupIndex, group) {
var groupItems = group.items;
var $container = (0, _renderer.default)("
").addClass("dx-toolbar-group");
var location = group.location || "center";
if (!groupItems || !groupItems.length) {
return
}(0, _iterator.each)(groupItems, (function(itemIndex, item) {
that._renderItem(itemIndex, item, $container, null)
}));
that._$toolbarItemsContainer.find(".dx-toolbar-" + location).append($container)
}))
},
_renderItems: function(items) {
var grouped = this.option("grouped") && items.length && items[0].items;
grouped ? this._renderGroupedItems() : this.callBase(items)
},
_getToolbarItems: function() {
return this.option("items") || []
},
_renderContentImpl: function() {
var items = this._getToolbarItems();
this.$element().toggleClass("dx-toolbar-mini", 0 === items.length);
if (this._renderedItemsCount) {
this._renderItems(items.slice(this._renderedItemsCount))
} else {
this._renderItems(items)
}
this._applyCompactMode()
},
_renderEmptyMessage: _common.noop,
_clean: function() {
this._$toolbarItemsContainer.children().empty();
this.$element().empty()
},
_visibilityChanged: function(visible) {
if (visible) {
this._arrangeItems()
}
},
_isVisible: function() {
return this.$element().width() > 0 && this.$element().height() > 0
},
_getIndexByItem: function(item) {
return (0, _array.inArray)(item, this._getToolbarItems())
},
_itemOptionChanged: function(item, property, value) {
this.callBase.apply(this, [item, property, value]);
this._arrangeItems()
},
_optionChanged: function(args) {
var name = args.name;
switch (name) {
case "width":
this.callBase.apply(this, arguments);
this._dimensionChanged();
break;
case "multiline":
this.$element().toggleClass("dx-toolbar-multiline", args.value);
break;
case "renderAs":
case "useFlatButtons":
case "useDefaultButtons":
this._invalidate();
break;
case "compactMode":
this._applyCompactMode();
break;
case "grouped":
break;
default:
this.callBase.apply(this, arguments)
}
},
_dispose: function() {
this.callBase();
clearTimeout(this._waitParentAnimationTimeout)
}
});
(0, _component_registrator.default)("dxToolbarBase", ToolbarBase);
var _default = ToolbarBase;
exports.default = _default;
module.exports = exports.default;
module.exports.default = exports.default
},
/*!*********************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/ui/toolbar/constants.js ***!
\*********************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
exports.TOOLBAR_CLASS = void 0;
exports.TOOLBAR_CLASS = "dx-toolbar"
},
/*!**********************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/ui/notify.js ***!
\**********************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
exports.default = void 0;
var _renderer = _interopRequireDefault(__webpack_require__( /*! ../core/renderer */ 2));
var _action = _interopRequireDefault(__webpack_require__( /*! ../core/action */ 116));
var _view_port = __webpack_require__( /*! ../core/utils/view_port */ 75);
var _extend = __webpack_require__( /*! ../core/utils/extend */ 0);
var _type = __webpack_require__( /*! ../core/utils/type */ 1);
var _toast = _interopRequireDefault(__webpack_require__( /*! ./toast */ 350));
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
default: obj
}
}
var $notify = null;
var _default = function(message, type, displayTime) {
var options = (0, _type.isPlainObject)(message) ? message : {
message: message
};
var userHiddenAction = options.onHidden;
(0, _extend.extend)(options, {
type: type,
displayTime: displayTime,
onHidden: function(args) {
(0, _renderer.default)(args.element).remove();
new _action.default(userHiddenAction, {
context: args.model
}).execute(arguments)
}
});
$notify = (0, _renderer.default)("
").appendTo((0, _view_port.value)());
new _toast.default($notify, options).show()
};
exports.default = _default;
module.exports = exports.default;
module.exports.default = exports.default
},
/*!*********************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/ui/toast.js ***!
\*********************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
exports.default = void 0;
var _renderer = _interopRequireDefault(__webpack_require__( /*! ../core/renderer */ 2));
var _window = __webpack_require__( /*! ../core/utils/window */ 7);
var _dom_adapter = _interopRequireDefault(__webpack_require__( /*! ../core/dom_adapter */ 11));
var _events_engine = _interopRequireDefault(__webpack_require__( /*! ../events/core/events_engine */ 5));
var _ready_callbacks = _interopRequireDefault(__webpack_require__( /*! ../core/utils/ready_callbacks */ 51));
var _common = __webpack_require__( /*! ../core/utils/common */ 4);
var _type = __webpack_require__( /*! ../core/utils/type */ 1);
var _extend = __webpack_require__( /*! ../core/utils/extend */ 0);
var _array = __webpack_require__( /*! ../core/utils/array */ 12);
var _pointer = _interopRequireDefault(__webpack_require__( /*! ../events/pointer */ 25));
var _component_registrator = _interopRequireDefault(__webpack_require__( /*! ../core/component_registrator */ 8));
var _ui = _interopRequireDefault(__webpack_require__( /*! ./overlay/ui.overlay */ 62));
var _themes = __webpack_require__( /*! ./themes */ 38);
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
default: obj
}
}
var window = (0, _window.getWindow)();
var ready = _ready_callbacks.default.add;
var toastTypes = ["info", "warning", "error", "success"];
var TOAST_STACK = [];
var visibleToastInstance = null;
var POSITION_ALIASES = {
top: {
my: "top",
at: "top",
of: null,
offset: "0 0"
},
bottom: {
my: "bottom",
at: "bottom",
of: null,
offset: "0 -20"
},
center: {
my: "center",
at: "center",
of: null,
offset: "0 0"
},
right: {
my: "center right",
at: "center right",
of: null,
offset: "0 0"
},
left: {
my: "center left",
at: "center left",
of: null,
offset: "0 0"
}
};
ready((function() {
_events_engine.default.subscribeGlobal(_dom_adapter.default.getDocument(), _pointer.default.down, (function(e) {
for (var i = TOAST_STACK.length - 1; i >= 0; i--) {
if (!TOAST_STACK[i]._proxiedDocumentDownHandler(e)) {
return
}
}
}))
}));
var Toast = _ui.default.inherit({
_getDefaultOptions: function() {
return (0, _extend.extend)(this.callBase(), {
message: "",
type: "info",
displayTime: 2e3,
position: "bottom center",
animation: {
show: {
type: "fade",
duration: 400,
from: 0,
to: 1
},
hide: {
type: "fade",
duration: 400,
to: 0
}
},
shading: false,
height: "auto",
hideTopOverlayHandler: null,
closeOnSwipe: true,
closeOnClick: false,
resizeEnabled: false
})
},
_defaultOptionsRules: function() {
return this.callBase().concat([{
device: {
platform: "android"
},
options: {
closeOnOutsideClick: true,
width: "auto",
position: {
at: "bottom left",
my: "bottom left",
offset: "20 -20"
},
animation: {
show: {
type: "slide",
duration: 200,
from: {
position: {
my: "top",
at: "bottom",
of: window
}
}
},
hide: {
type: "slide",
duration: 200,
to: {
position: {
my: "top",
at: "bottom",
of: window
}
}
}
}
}
}, {
device: function(_device) {
var isPhone = "phone" === _device.deviceType;
var isAndroid = "android" === _device.platform;
return isPhone && isAndroid
},
options: {
width: function() {
var _window$visualViewpor;
return (null === window || void 0 === window ? void 0 : null === (_window$visualViewpor = window.visualViewport) || void 0 === _window$visualViewpor ? void 0 : _window$visualViewpor.width) || (0, _renderer.default)(window).width()
},
position: {
at: "bottom center",
my: "bottom center",
offset: "0 0"
}
}
}, {
device: function(_device2) {
return "phone" === _device2.deviceType
},
options: {
width: function() {
var _window$visualViewpor2;
return (null === window || void 0 === window ? void 0 : null === (_window$visualViewpor2 = window.visualViewport) || void 0 === _window$visualViewpor2 ? void 0 : _window$visualViewpor2.width) || (0, _renderer.default)(window).width()
}
}
}, {
device: function() {
return (0, _themes.isMaterial)()
},
options: {
minWidth: 344,
maxWidth: 568,
displayTime: 4e3
}
}])
},
_init: function() {
this.callBase();
this._posStringToObject()
},
_renderContentImpl: function() {
if (this.option("message")) {
this._message = (0, _renderer.default)("
").addClass("dx-toast-message").text(this.option("message")).appendTo(this.$content())
}
this.setAria("role", "alert", this._message);
if ((0, _array.inArray)(this.option("type").toLowerCase(), toastTypes) > -1) {
this.$content().prepend((0, _renderer.default)("
").addClass("dx-toast-icon"))
}
this.callBase()
},
_render: function() {
this.callBase();
this.$element().addClass("dx-toast");
this.$wrapper().addClass("dx-toast-wrapper");
this.$content().addClass("dx-toast-" + String(this.option("type")).toLowerCase());
this.$content().addClass("dx-toast-content");
this._toggleCloseEvents("Swipe");
this._toggleCloseEvents("Click")
},
_renderScrollTerminator: _common.noop,
_toggleCloseEvents: function(event) {
var dxEvent = "dx" + event.toLowerCase();
_events_engine.default.off(this.$content(), dxEvent);
this.option("closeOn" + event) && _events_engine.default.on(this.$content(), dxEvent, this.hide.bind(this))
},
_posStringToObject: function() {
if (!(0, _type.isString)(this.option("position"))) {
return
}
var verticalPosition = this.option("position").split(" ")[0];
var horizontalPosition = this.option("position").split(" ")[1];
this.option("position", (0, _extend.extend)({}, POSITION_ALIASES[verticalPosition]));
switch (horizontalPosition) {
case "center":
case "left":
case "right":
this.option("position").at += " " + horizontalPosition;
this.option("position").my += " " + horizontalPosition
}
},
_show: function() {
if (visibleToastInstance && visibleToastInstance !== this) {
clearTimeout(visibleToastInstance._hideTimeout);
visibleToastInstance.hide()
}
visibleToastInstance = this;
return this.callBase.apply(this, arguments).done(function() {
clearTimeout(this._hideTimeout);
this._hideTimeout = setTimeout(this.hide.bind(this), this.option("displayTime"))
}.bind(this))
},
_hide: function() {
visibleToastInstance = null;
return this.callBase.apply(this, arguments)
},
_overlayStack: function() {
return TOAST_STACK
},
_zIndexInitValue: function() {
return this.callBase() + 8e3
},
_dispose: function() {
clearTimeout(this._hideTimeout);
visibleToastInstance = null;
this.callBase()
},
_optionChanged: function(args) {
switch (args.name) {
case "type":
this.$content().removeClass("dx-toast-" + args.previousValue);
this.$content().addClass("dx-toast-" + String(args.value).toLowerCase());
break;
case "message":
if (this._message) {
this._message.text(args.value)
}
break;
case "closeOnSwipe":
this._toggleCloseEvents("Swipe");
break;
case "closeOnClick":
this._toggleCloseEvents("Click");
break;
case "displayTime":
case "position":
break;
default:
this.callBase(args)
}
}
});
(0, _component_registrator.default)("dxToast", Toast);
var _default = Toast;
exports.default = _default;
module.exports = exports.default;
module.exports.default = exports.default
},
/*!******************************************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/ui/speed_dial_action/speed_dial_main_item.js ***!
\******************************************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
exports.initAction = function(newAction) {
newAction._options.silent("onInitializing", null);
var isActionExist = false;
if (!speedDialMainItem) {
var $fabMainElement = (0, _renderer.default)("
").appendTo(getSwatchContainer(newAction.$element()));
speedDialMainItem = newAction._createComponent($fabMainElement, SpeedDialMainItem, (0, _extend.extend)({}, modifyActionOptions(newAction), {
actions: [newAction]
}))
} else {
var savedActions = speedDialMainItem.option("actions");
savedActions.forEach((function(action) {
if (action._options.silent("id") === newAction._options.silent("id")) {
isActionExist = true;
return newAction
}
}));
speedDialMainItem._options.silent("position"), true;
if (!isActionExist) {
if (speedDialMainItem._getVisibleActions(savedActions).length >= speedDialMainItem.option("maxSpeedDialActionCount")) {
newAction.dispose();
_ui.default.log("W1014");
return
}
savedActions.push(newAction);
speedDialMainItem.option((0, _extend.extend)(speedDialMainItem._getCurrentOptions(savedActions), {
actions: savedActions
}))
} else if (1 === savedActions.length) {
speedDialMainItem.option((0, _extend.extend)({}, modifyActionOptions(savedActions[0]), {
actions: savedActions,
position: speedDialMainItem._getPosition()
}))
} else {
speedDialMainItem.option((0, _extend.extend)(speedDialMainItem._getCurrentOptions(savedActions), {
actions: savedActions
}))
}
}
};
exports.disposeAction = function(actionId) {
if (!speedDialMainItem) {
return
}
var savedActions = speedDialMainItem.option("actions");
var savedActionsCount = savedActions.length;
savedActions = savedActions.filter((function(action) {
return action._options.silent("id") !== actionId
}));
if (savedActionsCount === savedActions.length) {
return
}
if (!savedActions.length) {
speedDialMainItem.dispose();
speedDialMainItem.$element().remove();
speedDialMainItem = null
} else if (1 === savedActions.length) {
speedDialMainItem.option((0, _extend.extend)({}, modifyActionOptions(savedActions[0]), {
actions: savedActions
}))
} else {
speedDialMainItem.option({
actions: savedActions
})
}
};
exports.repaint = function() {
if (!speedDialMainItem) {
return
}
var visibleActions = speedDialMainItem._getVisibleActions();
var icon = 1 === visibleActions.length ? visibleActions[0].option("icon") : speedDialMainItem._getDefaultOptions().icon;
var label = 1 === visibleActions.length ? visibleActions[0].option("label") : speedDialMainItem._getDefaultOptions().label;
speedDialMainItem.option({
actions: speedDialMainItem.option("actions"),
icon: icon,
closeIcon: speedDialMainItem._getDefaultOptions().closeIcon,
position: speedDialMainItem._getPosition(),
label: label,
maxSpeedDialActionCount: speedDialMainItem._getDefaultOptions().maxSpeedDialActionCount,
direction: speedDialMainItem._getDefaultOptions().direction
})
};
var _renderer = _interopRequireDefault(__webpack_require__( /*! ../../core/renderer */ 2));
var _config = _interopRequireDefault(__webpack_require__( /*! ../../core/config */ 32));
var _extend = __webpack_require__( /*! ../../core/utils/extend */ 0);
var _events_engine = _interopRequireDefault(__webpack_require__( /*! ../../events/core/events_engine */ 5));
var _ui = _interopRequireDefault(__webpack_require__( /*! ../widget/ui.errors */ 18));
var _swatch_container = _interopRequireDefault(__webpack_require__( /*! ../widget/swatch_container */ 176));
var _speed_dial_item = _interopRequireDefault(__webpack_require__( /*! ./speed_dial_item */ 615));
var _themes = __webpack_require__( /*! ../themes */ 38);
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
default: obj
}
}
function _setPrototypeOf(o, p) {
_setPrototypeOf = Object.setPrototypeOf || function(o, p) {
o.__proto__ = p;
return o
};
return _setPrototypeOf(o, p)
}
var getSwatchContainer = _swatch_container.default.getSwatchContainer;
var speedDialMainItem = null;
var modifyActionOptions = function(action) {
return (0, _extend.extend)({}, action._options.silent(), {
onInitialized: null,
onDisposing: null
})
};
var SpeedDialMainItem = function(_SpeedDialItem) {
! function(subClass, superClass) {
subClass.prototype = Object.create(superClass.prototype);
subClass.prototype.constructor = subClass;
_setPrototypeOf(subClass, superClass)
}(SpeedDialMainItem, _SpeedDialItem);
function SpeedDialMainItem() {
return _SpeedDialItem.apply(this, arguments) || this
}
var _proto = SpeedDialMainItem.prototype;
_proto._getDefaultOptions = function() {
return (0, _extend.extend)(_SpeedDialItem.prototype._getDefaultOptions.call(this), (0, _extend.extend)({
icon: "add",
closeIcon: "close",
position: {
at: "right bottom",
my: "right bottom",
offset: {
x: -16,
y: -16
}
},
maxSpeedDialActionCount: 5,
hint: "",
label: "",
direction: "auto",
actions: [],
activeStateEnabled: true,
hoverStateEnabled: true,
indent: 55,
childIndent: 40,
childOffset: 9,
callOverlayRenderShading: true,
closeOnOutsideClick: true
}, (0, _config.default)().floatingActionButtonConfig, {
shading: false
}))
};
_proto._defaultOptionsRules = function() {
return _SpeedDialItem.prototype._defaultOptionsRules.call(this).concat([{
device: function() {
return (0, _themes.isMaterial)()
},
options: {
indent: 72,
childIndent: 56,
childOffset: 8
}
}])
};
_proto._render = function() {
this.$element().addClass("dx-fa-button-main");
_SpeedDialItem.prototype._render.call(this);
this._moveToContainer();
this._renderCloseIcon();
this._renderClick()
};
_proto._renderLabel = function() {
_SpeedDialItem.prototype._renderLabel.call(this);
this.$element().toggleClass("dx-fa-button-with-label", !!this._$label)
};
_proto._renderCloseIcon = function() {
this._$closeIcon = this._renderButtonIcon(this._$closeIcon, this._options.silent("closeIcon"), "dx-fa-button-icon-close");
this._$closeIcon.addClass("dx-state-invisible")
};
_proto._renderClick = function() {
this._clickAction = 1 === this._getVisibleActions().length ? this._getActionComponent()._createActionByOption("onClick") : this._createAction(this._clickHandler.bind(this));
this._setClickAction()
};
_proto._getVisibleActions = function(actions) {
var currentActions = actions || this.option("actions");
return currentActions.filter((function(action) {
return action.option("visible")
}))
};
_proto._getCurrentOptions = function(actions) {
var visibleActions = speedDialMainItem._getVisibleActions(actions);
return 1 === visibleActions.length ? (0, _extend.extend)(visibleActions[0]._options.silent(), {
position: this._getPosition()
}) : (0, _extend.extend)(this._getDefaultOptions(), {
visible: 0 !== visibleActions.length
})
};
_proto._clickHandler = function() {
var actions = this._actionItems.filter((function(action) {
return action.option("actionVisible")
})).sort((function(action, nextAction) {
return action.option("index") - nextAction.option("index")
}));
if (1 === actions.length) {
return
}
var lastActionIndex = actions.length - 1;
for (var i = 0; i < actions.length; i++) {
actions[i].option("animation", this._getActionAnimation(actions[i], i, lastActionIndex));
actions[i].option("position", this._getActionPosition(actions, i));
actions[i]._$wrapper.css("position", this._$wrapper.css("position"));
actions[i].toggle()
}
if ((0, _config.default)().floatingActionButtonConfig.shading) {
this._isShadingShown = !this.option("shading");
this.option("shading", this._isShadingShown)
}
this._$icon.toggleClass("dx-state-invisible");
this._$closeIcon.toggleClass("dx-state-invisible")
};
_proto._updateZIndexStackPosition = function() {
_SpeedDialItem.prototype._updateZIndexStackPosition.call(this);
var overlayStack = this._overlayStack();
overlayStack.push(this)
};
_proto._renderActions = function() {
var _this = this;
var actions = this.option("actions");
if (this._actionItems && this._actionItems.length) {
this._actionItems.forEach((function(actionItem) {
actionItem.dispose();
actionItem.$element().remove()
}));
this._actionItems = []
}
this._actionItems = [];
if (1 === actions.length) {
return
}
for (var i = 0; i < actions.length; i++) {
var action = actions[i];
var $actionElement = (0, _renderer.default)("
").appendTo(getSwatchContainer(action.$element()));
_events_engine.default.off($actionElement, "click");
_events_engine.default.on($actionElement, "click", (function() {
_this._clickHandler()
}));
action._options.silent("actionComponent", action);
action._options.silent("parentPosition", this._getPosition());
action._options.silent("actionVisible", action._options.silent("visible"));
this._actionItems.push(this._createComponent($actionElement, _speed_dial_item.default, (0, _extend.extend)({}, modifyActionOptions(action), {
visible: false
})))
}
};
_proto._getActionAnimation = function(action, index, lastActionIndex) {
action._options.silent("animation.show.delay", 30 * index);
action._options.silent("animation.hide.delay", 30 * (lastActionIndex - index));
return action._options.silent("animation")
};
_proto._getDirectionIndex = function(actions, direction) {
if ("auto" === direction) {
var contentHeight = this.$content().height();
var actionsHeight = this.initialOption("indent") + this.initialOption("childIndent") * actions.length - contentHeight;
var offsetTop = this.$content().offset().top;
if (actionsHeight < offsetTop) {
return -1
} else {
var offsetBottom = this._getContainer().height() - contentHeight - offsetTop;
return offsetTop >= offsetBottom ? -1 : 1
}
}
return "down" !== direction ? -1 : 1
};
_proto._getActionPosition = function(actions, index) {
var action = actions[index];
var actionOffsetXValue = this.initialOption("childOffset");
var actionOffsetX = action._options.silent("label") && !this._$label ? this._isPositionLeft(this._getPosition()) ? actionOffsetXValue : -actionOffsetXValue : 0;
var actionOffsetYValue = this.initialOption("indent") + this.initialOption("childIndent") * index;
var actionOffsetY = this._getDirectionIndex(actions, this.option("direction")) * actionOffsetYValue;
var actionPositionAtMy = action._options.silent("label") ? this._isPositionLeft(this._getPosition()) ? "left" : "right" : "center";
return {
of: this.$content(),
at: actionPositionAtMy,
my: actionPositionAtMy,
offset: {
x: actionOffsetX,
y: actionOffsetY
}
}
};
_proto._outsideClickHandler = function(e) {
if (this._isShadingShown) {
var isShadingClick = (0, _renderer.default)(e.target)[0] === this._$wrapper[0];
if (isShadingClick) {
e.preventDefault();
this._clickHandler()
}
}
};
_proto._setPosition = function() {
if (this.option("visible")) {
this._hide();
this._show()
}
};
_proto._getPosition = function() {
return this._getDefaultOptions().position
};
_proto._getInkRippleContainer = function() {
return this.$content()
};
_proto._optionChanged = function(args) {
switch (args.name) {
case "actions":
if (this._isVisible()) {
this._renderIcon();
this._renderLabel()
}
this._renderCloseIcon();
this._renderClick();
this._renderActions();
break;
case "maxSpeedDialActionCount":
this._renderActions();
break;
case "closeIcon":
this._renderCloseIcon();
break;
case "position":
this._setPosition();
break;
case "label":
if (this._isVisible()) {
this._renderLabel()
}
this._setPosition();
break;
case "icon":
if (this._isVisible()) {
this._renderIcon()
}
break;
default:
_SpeedDialItem.prototype._optionChanged.call(this, args)
}
};
return SpeedDialMainItem
}(_speed_dial_item.default)
},
/*!***************************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/ui/text_box/ui.text_editor.js ***!
\***************************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
exports.default = void 0;
var _component_registrator = _interopRequireDefault(__webpack_require__( /*! ../../core/component_registrator */ 8));
var _uiText_editor = _interopRequireDefault(__webpack_require__( /*! ./ui.text_editor.mask */ 619));
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
default: obj
}
}(0, _component_registrator.default)("dxTextEditor", _uiText_editor.default);
var _default = _uiText_editor.default;
exports.default = _default;
module.exports = exports.default;
module.exports.default = exports.default
},
/*!************************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/ui/text_box/utils.caret.js ***!
\************************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
exports.default = void 0;
var _renderer = _interopRequireDefault(__webpack_require__( /*! ../../core/renderer */ 2));
var _type = __webpack_require__( /*! ../../core/utils/type */ 1);
var _browser = _interopRequireDefault(__webpack_require__( /*! ../../core/utils/browser */ 26));
var _devices = _interopRequireDefault(__webpack_require__( /*! ../../core/devices */ 13));
var _dom_adapter = _interopRequireDefault(__webpack_require__( /*! ../../core/dom_adapter */ 11));
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
default: obj
}
}
var _devices$real = _devices.default.real(),
ios = _devices$real.ios,
mac = _devices$real.mac;
var isFocusingOnCaretChange = _browser.default.msie || ios || mac;
var getCaret = function(input) {
var range;
try {
range = {
start: input.selectionStart,
end: input.selectionEnd
}
} catch (e) {
range = {
start: 0,
end: 0
}
}
return range
};
var setCaret = function(input, position) {
if (!_dom_adapter.default.getBody().contains(input)) {
return
}
try {
input.selectionStart = position.start;
input.selectionEnd = position.end
} catch (e) {}
};
var _default = function(input, position) {
var force = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : false;
input = (0, _renderer.default)(input).get(0);
if (!(0, _type.isDefined)(position)) {
return getCaret(input)
}
if (!force && isFocusingOnCaretChange && _dom_adapter.default.getActiveElement() !== input) {
return
}
setCaret(input, position)
};
exports.default = _default;
module.exports = exports.default;
module.exports.default = exports.default
},
/*!**********************************************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/ui/text_box/ui.text_editor.mask.strategy.base.js ***!
\**********************************************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
exports.default = void 0;
var _events_engine = _interopRequireDefault(__webpack_require__( /*! ../../events/core/events_engine */ 5));
var _index = __webpack_require__( /*! ../../events/utils/index */ 9);
var _browser = _interopRequireDefault(__webpack_require__( /*! ../../core/utils/browser */ 26));
var _array = __webpack_require__( /*! ../../core/utils/array */ 12);
var _dom = __webpack_require__( /*! ../../core/utils/dom */ 35);
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
default: obj
}
}
var BaseMaskStrategy = function() {
function BaseMaskStrategy(editor) {
this.editor = editor;
this.DIRECTION = {
FORWARD: "forward",
BACKWARD: "backward"
};
this.NAME = this._getStrategyName()
}
var _proto = BaseMaskStrategy.prototype;
_proto._getStrategyName = function() {
return "base"
};
_proto.editorOption = function() {
var _this$editor;
return (_this$editor = this.editor).option.apply(_this$editor, arguments)
};
_proto.editorInput = function() {
return this.editor._input()
};
_proto.editorCaret = function(newCaret) {
if (!newCaret) {
return this.editor._caret()
}
this.editor._caret(newCaret)
};
_proto.getHandler = function(handlerName) {
var handler = this["_".concat(handlerName, "Handler")] || function() {};
return handler.bind(this)
};
_proto.attachEvents = function() {
var _this = this;
var $input = this.editorInput();
this.getHandleEventNames().forEach((function(eventName) {
var subscriptionName = (0, _index.addNamespace)(eventName.toLowerCase(), "dxMask");
_events_engine.default.on($input, subscriptionName, _this.getEventHandler(eventName))
}));
this._attachChangeEventHandlers()
};
_proto.getHandleEventNames = function() {
return ["focusIn", "focusOut", "keyDown", "input", "paste", "cut", "drop"]
};
_proto.getEventHandler = function(eventName) {
return this["_".concat(eventName, "Handler")].bind(this)
};
_proto.detachEvents = function() {
_events_engine.default.off(this.editorInput(), ".".concat("dxMask"))
};
_proto._attachChangeEventHandlers = function() {
if (-1 === (0, _array.inArray)("change", this.editorOption("valueChangeEvent").split(" "))) {
return
}
_events_engine.default.on(this.editorInput(), (0, _index.addNamespace)("blur beforedeactivate", "dxMask"), function(e) {
this._suppressCaretChanging(this._changeHandler, [e]);
this._changeHandler(e)
}.bind(this.editor))
};
_proto._focusInHandler = function() {
this.editor._showMaskPlaceholder();
this.editor._direction(this.DIRECTION.FORWARD);
if (!this.editor._isValueEmpty() && this.editorOption("isValid")) {
this.editor._adjustCaret()
} else {
var caret = this.editor._maskRulesChain.first();
this._caretTimeout = setTimeout(function() {
this._caret({
start: caret,
end: caret
})
}.bind(this.editor), 0)
}
};
_proto._focusOutHandler = function(event) {
this.editor._changeHandler(event);
if ("onFocus" === this.editorOption("showMaskMode") && this.editor._isValueEmpty()) {
this.editorOption("text", "");
this.editor._renderDisplayText("")
}
};
_proto._cutHandler = function(event) {
var caret = this.editorCaret();
var selectedText = this.editorInput().val().substring(caret.start, caret.end);
this.editor._maskKeyHandler(event, (function() {
return (0, _dom.clipboardText)(event, selectedText)
}))
};
_proto._dropHandler = function() {
this._clearDragTimer();
this._dragTimer = setTimeout(function() {
this.option("value", this._convertToValue(this._input().val()))
}.bind(this.editor))
};
_proto._clearDragTimer = function() {
clearTimeout(this._dragTimer)
};
_proto._keyDownHandler = function() {
this._keyPressHandled = false
};
_proto._pasteHandler = function(event) {
var editor = this.editor;
this._keyPressHandled = true;
var caret = this.editorCaret();
editor._maskKeyHandler(event, (function() {
var pastedText = (0, _dom.clipboardText)(event);
var restText = editor._maskRulesChain.text().substring(caret.end);
var accepted = editor._handleChain({
text: pastedText,
start: caret.start,
length: pastedText.length
});
var newCaret = caret.start + accepted;
editor._handleChain({
text: restText,
start: newCaret,
length: restText.length
});
editor._caret({
start: newCaret,
end: newCaret
})
}))
};
_proto._autoFillHandler = function(event) {
var _this2 = this;
var editor = this.editor;
var inputVal = this.editorInput().val();
this._inputHandlerTimer = setTimeout((function() {
_this2._keyPressHandled = true;
if (_this2._isAutoFill()) {
_this2._keyPressHandled = true;
editor._maskKeyHandler(event, (function() {
editor._handleChain({
text: inputVal,
start: 0,
length: inputVal.length
})
}));
editor._validateMask()
}
}))
};
_proto._isAutoFill = function() {
var $input = this.editor._input();
var result = false;
if (_browser.default.msie && _browser.default.version > 11) {
result = $input.hasClass("edge-autofilled")
} else if (_browser.default.webkit) {
var input = $input.get(0);
result = input && input.matches(":-webkit-autofill")
}
return result
};
_proto.runWithoutEventProcessing = function(action) {
var keyPressHandled = this._keyPressHandled;
this._keyPressHandled = true;
action();
this._keyPressHandled = keyPressHandled
};
_proto._backspaceHandler = function() {};
_proto._delHandler = function(event) {
var editor = this.editor;
this._keyPressHandled = true;
editor._maskKeyHandler(event, (function() {
return !editor._hasSelection() && editor._handleKey(" ")
}))
};
_proto.clean = function() {
this._clearDragTimer();
clearTimeout(this._backspaceHandlerTimeout);
clearTimeout(this._caretTimeout);
clearTimeout(this._inputHandlerTimer)
};
return BaseMaskStrategy
}();
exports.default = BaseMaskStrategy;
module.exports = exports.default;
module.exports.default = exports.default
},
/*!*********************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/ui/list/ui.list.edit.js ***!
\*********************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
exports.default = void 0;
var _renderer = _interopRequireDefault(__webpack_require__( /*! ../../core/renderer */ 2));
var _index = __webpack_require__( /*! ../../events/utils/index */ 9);
var _extend = __webpack_require__( /*! ../../core/utils/extend */ 0);
var _uiListEditStrategy = _interopRequireDefault(__webpack_require__( /*! ./ui.list.edit.strategy.grouped */ 629));
var _message = _interopRequireDefault(__webpack_require__( /*! ../../localization/message */ 10));
var _uiListEdit = _interopRequireDefault(__webpack_require__( /*! ./ui.list.edit.provider */ 630));
var _uiList = __webpack_require__( /*! ./ui.list.base */ 275);
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
default: obj
}
}
var ListEdit = _uiList.ListBase.inherit({
_supportedKeys: function() {
var _this = this;
var that = this;
var parent = this.callBase();
var moveFocusedItem = function(e, moveUp) {
var editStrategy = _this._editStrategy;
var focusedElement = _this.option("focusedElement");
var focusedItemIndex = editStrategy.getNormalizedIndex(focusedElement);
var isLastIndexFocused = focusedItemIndex === _this._getLastItemIndex();
if (isLastIndexFocused && _this._isDataSourceLoading()) {
return
}
if (e.shiftKey && that.option("itemDragging.allowReordering")) {
var nextItemIndex = focusedItemIndex + (moveUp ? -1 : 1);
var $nextItem = editStrategy.getItemElement(nextItemIndex);
_this.reorderItem(focusedElement, $nextItem);
_this.scrollToItem(focusedElement);
e.preventDefault()
} else {
var editProvider = _this._editProvider;
var isInternalMoving = editProvider.handleKeyboardEvents(focusedItemIndex, moveUp);
if (!isInternalMoving) {
moveUp ? parent.upArrow(e) : parent.downArrow(e)
}
}
};
return (0, _extend.extend)({}, parent, {
del: function(e) {
if (that.option("allowItemDeleting")) {
e.preventDefault();
that.deleteItem(that.option("focusedElement"))
}
},
upArrow: function(e) {
return moveFocusedItem(e, true)
},
downArrow: function(e) {
return moveFocusedItem(e)
},
enter: function(e) {
if (!this._editProvider.handleEnterPressing(e)) {
parent.enter.apply(this, arguments)
}
},
space: function(e) {
if (!this._editProvider.handleEnterPressing(e)) {
parent.space.apply(this, arguments)
}
}
})
},
_updateSelection: function() {
this._editProvider.afterItemsRendered();
this.callBase()
},
_getLastItemIndex: function() {
return this._itemElements().length - 1
},
_refreshItemElements: function() {
this.callBase();
var excludedSelectors = this._editProvider.getExcludedItemSelectors();
if (excludedSelectors.length) {
this._itemElementsCache = this._itemElementsCache.not(excludedSelectors)
}
},
_isItemStrictEquals: function(item1, item2) {
var privateKey = item1 && item1.__dx_key__;
if (privateKey && !this.key() && this._selection.isItemSelected(privateKey)) {
return false
}
return this.callBase(item1, item2)
},
_getDefaultOptions: function() {
return (0, _extend.extend)(this.callBase(), {
showSelectionControls: false,
selectionMode: "none",
selectAllMode: "page",
onSelectAllValueChanged: null,
selectAllText: _message.default.format("dxList-selectAll"),
menuItems: [],
menuMode: "context",
allowItemDeleting: false,
itemDeleteMode: "static",
itemDragging: {}
})
},
_defaultOptionsRules: function() {
return this.callBase().concat([{
device: function(_device) {
return "ios" === _device.platform
},
options: {
menuMode: "slide",
itemDeleteMode: "slideItem"
}
}, {
device: {
platform: "android"
},
options: {
itemDeleteMode: "swipe"
}
}])
},
_init: function() {
this.callBase();
this._initEditProvider()
},
_initDataSource: function() {
this.callBase();
if (!this._isPageSelectAll()) {
this._dataSource && this._dataSource.requireTotalCount(true)
}
},
_isPageSelectAll: function() {
return "page" === this.option("selectAllMode")
},
_initEditProvider: function() {
this._editProvider = new _uiListEdit.default(this)
},
_disposeEditProvider: function() {
if (this._editProvider) {
this._editProvider.dispose()
}
},
_refreshEditProvider: function() {
this._disposeEditProvider();
this._initEditProvider()
},
_initEditStrategy: function() {
if (this.option("grouped")) {
this._editStrategy = new _uiListEditStrategy.default(this)
} else {
this.callBase()
}
},
_initMarkup: function() {
this._refreshEditProvider();
this.callBase()
},
_renderItems: function() {
this.callBase.apply(this, arguments);
this._editProvider.afterItemsRendered()
},
_selectedItemClass: function() {
return "dx-list-item-selected"
},
_itemResponseWaitClass: function() {
return "dx-list-item-response-wait"
},
_itemClickHandler: function(e) {
var $itemElement = (0, _renderer.default)(e.currentTarget);
if ($itemElement.is(".dx-state-disabled, .dx-state-disabled *")) {
return
}
var handledByEditProvider = this._editProvider.handleClick($itemElement, e);
if (handledByEditProvider) {
return
}
this._saveSelectionChangeEvent(e);
this.callBase.apply(this, arguments)
},
_shouldFireContextMenuEvent: function() {
return this.callBase.apply(this, arguments) || this._editProvider.contextMenuHandlerExists()
},
_itemHoldHandler: function(e) {
var $itemElement = (0, _renderer.default)(e.currentTarget);
if ($itemElement.is(".dx-state-disabled, .dx-state-disabled *")) {
return
}
var handledByEditProvider = (0, _index.isTouchEvent)(e) && this._editProvider.handleContextMenu($itemElement, e);
if (handledByEditProvider) {
e.handledByEditProvider = true;
return
}
this.callBase.apply(this, arguments)
},
_getItemContainer: function(changeData) {
if (this.option("grouped")) {
var _this$_editStrategy$g;
var groupIndex = null === (_this$_editStrategy$g = this._editStrategy.getIndexByItemData(changeData)) || void 0 === _this$_editStrategy$g ? void 0 : _this$_editStrategy$g.group;
return this._getGroupContainerByIndex(groupIndex)
} else {
return this.callBase(changeData)
}
},
_itemContextMenuHandler: function(e) {
var $itemElement = (0, _renderer.default)(e.currentTarget);
if ($itemElement.is(".dx-state-disabled, .dx-state-disabled *")) {
return
}
var handledByEditProvider = !e.handledByEditProvider && this._editProvider.handleContextMenu($itemElement, e);
if (handledByEditProvider) {
e.preventDefault();
return
}
this.callBase.apply(this, arguments)
},
_postprocessRenderItem: function(args) {
this.callBase.apply(this, arguments);
this._editProvider.modifyItemElement(args)
},
_clean: function() {
this._disposeEditProvider();
this.callBase()
},
focusListItem: function(index) {
var $item = this._editStrategy.getItemElement(index);
this.option("focusedElement", $item);
this.focus();
this.scrollToItem(this.option("focusedElement"))
},
_optionChanged: function(args) {
switch (args.name) {
case "selectAllMode":
this._initDataSource();
this._dataSource.pageIndex(0);
this._dataSource.load();
break;
case "grouped":
this._clearSelectedItems();
delete this._renderingGroupIndex;
this._initEditStrategy();
this.callBase(args);
break;
case "showSelectionControls":
case "menuItems":
case "menuMode":
case "allowItemDeleting":
case "itemDeleteMode":
case "itemDragging":
case "selectAllText":
this._invalidate();
break;
case "onSelectAllValueChanged":
break;
default:
this.callBase(args)
}
},
selectAll: function() {
return this._selection.selectAll(this._isPageSelectAll())
},
unselectAll: function() {
return this._selection.deselectAll(this._isPageSelectAll())
},
isSelectAll: function() {
return this._selection.getSelectAllState(this._isPageSelectAll())
},
getFlatIndexByItemElement: function(itemElement) {
return this._itemElements().index(itemElement)
},
getItemElementByFlatIndex: function(flatIndex) {
var $itemElements = this._itemElements();
if (flatIndex < 0 || flatIndex >= $itemElements.length) {
return (0, _renderer.default)()
}
return $itemElements.eq(flatIndex)
},
getItemByIndex: function(index) {
return this._editStrategy.getItemDataByIndex(index)
}
});
var _default = ListEdit;
exports.default = _default;
module.exports = exports.default;
module.exports.default = exports.default
},
/*!******************************************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/ui/list/ui.list.edit.decorator.switchable.js ***!
\******************************************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
exports.default = void 0;
var _renderer = _interopRequireDefault(__webpack_require__( /*! ../../core/renderer */ 2));
var _events_engine = _interopRequireDefault(__webpack_require__( /*! ../../events/core/events_engine */ 5));
var _common = __webpack_require__( /*! ../../core/utils/common */ 4);
var _uiListEdit = _interopRequireDefault(__webpack_require__( /*! ./ui.list.edit.decorator */ 162));
var _index = __webpack_require__( /*! ../../events/utils/index */ 9);
var _pointer = _interopRequireDefault(__webpack_require__( /*! ../../events/pointer */ 25));
var _emitter = __webpack_require__( /*! ../../events/core/emitter.feedback */ 155);
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
default: obj
}
}
var abstract = _uiListEdit.default.abstract;
var POINTER_DOWN_EVENT_NAME = (0, _index.addNamespace)(_pointer.default.down, "dxListEditDecorator");
var ACTIVE_EVENT_NAME = (0, _index.addNamespace)(_emitter.active, "dxListEditDecorator");
var SwitchableEditDecorator = _uiListEdit.default.inherit({
_init: function() {
this._$topShield = (0, _renderer.default)("
").addClass("dx-list-switchable-delete-top-shield");
this._$bottomShield = (0, _renderer.default)("
").addClass("dx-list-switchable-delete-bottom-shield");
this._$itemContentShield = (0, _renderer.default)("
").addClass("dx-list-switchable-delete-item-content-shield");
_events_engine.default.on(this._$topShield, POINTER_DOWN_EVENT_NAME, this._cancelDeleteReadyItem.bind(this));
_events_engine.default.on(this._$bottomShield, POINTER_DOWN_EVENT_NAME, this._cancelDeleteReadyItem.bind(this));
this._list.$element().append(this._$topShield.toggle(false)).append(this._$bottomShield.toggle(false))
},
handleClick: function() {
return this._cancelDeleteReadyItem()
},
_cancelDeleteReadyItem: function() {
if (!this._$readyToDeleteItem) {
return false
}
this._cancelDelete(this._$readyToDeleteItem);
return true
},
_cancelDelete: function($itemElement) {
this._toggleDeleteReady($itemElement, false)
},
_toggleDeleteReady: function($itemElement, readyToDelete) {
if (void 0 === readyToDelete) {
readyToDelete = !this._isReadyToDelete($itemElement)
}
this._toggleShields($itemElement, readyToDelete);
this._toggleScrolling(readyToDelete);
this._cacheReadyToDeleteItem($itemElement, readyToDelete);
this._animateToggleDelete($itemElement, readyToDelete)
},
_isReadyToDelete: function($itemElement) {
return $itemElement.hasClass("dx-list-switchable-delete-ready")
},
_toggleShields: function($itemElement, enabled) {
this._list.$element().toggleClass("dx-list-switchable-menu-shield-positioning", enabled);
this._$topShield.toggle(enabled);
this._$bottomShield.toggle(enabled);
if (enabled) {
this._updateShieldsHeight($itemElement)
}
this._toggleContentShield($itemElement, enabled)
},
_updateShieldsHeight: function($itemElement) {
var $list = this._list.$element();
var listTopOffset = $list.offset().top;
var listHeight = $list.outerHeight();
var itemTopOffset = $itemElement.offset().top;
var itemHeight = $itemElement.outerHeight();
var dirtyTopShieldHeight = itemTopOffset - listTopOffset;
var dirtyBottomShieldHeight = listHeight - itemHeight - dirtyTopShieldHeight;
this._$topShield.height(Math.max(dirtyTopShieldHeight, 0));
this._$bottomShield.height(Math.max(dirtyBottomShieldHeight, 0))
},
_toggleContentShield: function($itemElement, enabled) {
if (enabled) {
$itemElement.find(".dx-list-item-content").first().append(this._$itemContentShield)
} else {
this._$itemContentShield.detach()
}
},
_toggleScrolling: function(readyToDelete) {
var scrollView = this._list.$element().dxScrollView("instance");
if (readyToDelete) {
scrollView.on("start", this._cancelScrolling)
} else {
scrollView.off("start", this._cancelScrolling)
}
},
_cancelScrolling: function(args) {
args.event.cancel = true
},
_cacheReadyToDeleteItem: function($itemElement, cache) {
if (cache) {
this._$readyToDeleteItem = $itemElement
} else {
delete this._$readyToDeleteItem
}
},
_animateToggleDelete: function($itemElement, readyToDelete) {
if (readyToDelete) {
this._enablePositioning($itemElement);
this._prepareDeleteReady($itemElement);
this._animatePrepareDeleteReady($itemElement);
_events_engine.default.off($itemElement, _pointer.default.up)
} else {
this._forgetDeleteReady($itemElement);
this._animateForgetDeleteReady($itemElement).done(this._disablePositioning.bind(this, $itemElement))
}
},
_enablePositioning: function($itemElement) {
$itemElement.addClass("dx-list-switchable-menu-item-shield-positioning");
_events_engine.default.on($itemElement, ACTIVE_EVENT_NAME, _common.noop);
_events_engine.default.one($itemElement, _pointer.default.up, this._disablePositioning.bind(this, $itemElement))
},
_disablePositioning: function($itemElement) {
$itemElement.removeClass("dx-list-switchable-menu-item-shield-positioning");
_events_engine.default.off($itemElement, ACTIVE_EVENT_NAME)
},
_prepareDeleteReady: function($itemElement) {
$itemElement.addClass("dx-list-switchable-delete-ready")
},
_forgetDeleteReady: function($itemElement) {
$itemElement.removeClass("dx-list-switchable-delete-ready")
},
_animatePrepareDeleteReady: abstract,
_animateForgetDeleteReady: abstract,
_getDeleteButtonContainer: function($itemElement) {
$itemElement = $itemElement || this._$readyToDeleteItem;
return $itemElement.children(".dx-list-switchable-delete-button-container")
},
_deleteItem: function($itemElement) {
$itemElement = $itemElement || this._$readyToDeleteItem;
this._getDeleteButtonContainer($itemElement).detach();
if ($itemElement.is(".dx-state-disabled, .dx-state-disabled *")) {
return
}
this._list.deleteItem($itemElement).always(this._cancelDelete.bind(this, $itemElement))
},
_isRtlEnabled: function() {
return this._list.option("rtlEnabled")
},
dispose: function() {
if (this._$topShield) {
this._$topShield.remove()
}
if (this._$bottomShield) {
this._$bottomShield.remove()
}
this.callBase.apply(this, arguments)
}
});
var _default = SwitchableEditDecorator;
exports.default = _default;
module.exports = exports.default;
module.exports.default = exports.default
},
/*!*******************************************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/ui/list/ui.list.edit.decorator_menu_helper.js ***!
\*******************************************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
exports.default = void 0;
var _default = {
_menuEnabled: function() {
return !!this._menuItems().length
},
_menuItems: function() {
return this._list.option("menuItems")
},
_deleteEnabled: function() {
return this._list.option("allowItemDeleting")
},
_fireMenuAction: function($itemElement, action) {
this._list._itemEventHandlerByHandler($itemElement, action, {}, {
excludeValidators: ["disabled", "readOnly"]
})
}
};
exports.default = _default;
module.exports = exports.default;
module.exports.default = exports.default
},
/*!****************************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/ui/scroll_view/ui.scrollbar.js ***!
\****************************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
exports.default = void 0;
var _renderer = _interopRequireDefault(__webpack_require__( /*! ../../core/renderer */ 2));
var _dom_adapter = _interopRequireDefault(__webpack_require__( /*! ../../core/dom_adapter */ 11));
var _events_engine = _interopRequireDefault(__webpack_require__( /*! ../../events/core/events_engine */ 5));
var _ready_callbacks = _interopRequireDefault(__webpack_require__( /*! ../../core/utils/ready_callbacks */ 51));
var _translator = __webpack_require__( /*! ../../animation/translator */ 33);
var _ui = _interopRequireDefault(__webpack_require__( /*! ../widget/ui.widget */ 16));
var _index = __webpack_require__( /*! ../../events/utils/index */ 9);
var _common = __webpack_require__( /*! ../../core/utils/common */ 4);
var _type = __webpack_require__( /*! ../../core/utils/type */ 1);
var _extend = __webpack_require__( /*! ../../core/utils/extend */ 0);
var _pointer = _interopRequireDefault(__webpack_require__( /*! ../../events/pointer */ 25));
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
default: obj
}
}
var SCROLLABLE_SCROLLBAR_ACTIVE_CLASS = "".concat("dx-scrollable-scrollbar", "-active");
var SCROLLBAR_VISIBLE_onScroll = "onScroll",
SCROLLBAR_VISIBLE_onHover = "onHover",
SCROLLBAR_VISIBLE_always = "always",
SCROLLBAR_VISIBLE_never = "never";
var activeScrollbar = null;
var Scrollbar = _ui.default.inherit({
_getDefaultOptions: function() {
return (0, _extend.extend)(this.callBase(), {
direction: null,
visible: false,
activeStateEnabled: false,
visibilityMode: SCROLLBAR_VISIBLE_onScroll,
containerSize: 0,
contentSize: 0,
expandable: true,
scaleRatio: 1
})
},
_init: function() {
this.callBase();
this._isHovered = false
},
_initMarkup: function() {
this._renderThumb();
this.callBase()
},
_render: function() {
this.callBase();
this._renderDirection();
this._update();
this._attachPointerDownHandler();
this.option("hoverStateEnabled", this._isHoverMode());
this.$element().toggleClass("dx-scrollbar-hoverable", this.option("hoverStateEnabled"))
},
_renderThumb: function() {
this._$thumb = (0, _renderer.default)("
").addClass("dx-scrollable-scroll");
(0, _renderer.default)("
").addClass("dx-scrollable-scroll-content").appendTo(this._$thumb);
this.$element().addClass("dx-scrollable-scrollbar").append(this._$thumb)
},
isThumb: function($element) {
return !!this.$element().find($element).length
},
_isHoverMode: function() {
var visibilityMode = this.option("visibilityMode");
return (visibilityMode === SCROLLBAR_VISIBLE_onHover || visibilityMode === SCROLLBAR_VISIBLE_always) && this.option("expandable")
},
_renderDirection: function() {
var direction = this.option("direction");
this.$element().addClass("dx-scrollbar-" + direction);
this._dimension = "horizontal" === direction ? "width" : "height";
this._prop = "horizontal" === direction ? "left" : "top"
},
_attachPointerDownHandler: function() {
_events_engine.default.on(this._$thumb, (0, _index.addNamespace)(_pointer.default.down, "dxScrollbar"), this.feedbackOn.bind(this))
},
feedbackOn: function() {
this.$element().addClass(SCROLLABLE_SCROLLBAR_ACTIVE_CLASS);
activeScrollbar = this
},
feedbackOff: function() {
this.$element().removeClass(SCROLLABLE_SCROLLBAR_ACTIVE_CLASS);
activeScrollbar = null
},
cursorEnter: function() {
this._isHovered = true;
if (this._needScrollbar()) {
this.option("visible", true)
}
},
cursorLeave: function() {
this._isHovered = false;
this.option("visible", false)
},
_renderDimensions: function() {
this._$thumb.css({
width: this.option("width"),
height: this.option("height")
})
},
_toggleVisibility: function(visible) {
if (this.option("visibilityMode") === SCROLLBAR_VISIBLE_onScroll) {
this._$thumb.css("opacity")
}
visible = this._adjustVisibility(visible);
this.option().visible = visible;
this._$thumb.toggleClass("dx-state-invisible", !visible)
},
_adjustVisibility: function(visible) {
if (this._baseContainerToContentRatio && !this._needScrollbar()) {
return false
}
switch (this.option("visibilityMode")) {
case SCROLLBAR_VISIBLE_onScroll:
break;
case SCROLLBAR_VISIBLE_onHover:
visible = visible || !!this._isHovered;
break;
case SCROLLBAR_VISIBLE_never:
visible = false;
break;
case SCROLLBAR_VISIBLE_always:
visible = true
}
return visible
},
moveTo: function(location) {
if (this._isHidden()) {
return
}
if ((0, _type.isPlainObject)(location)) {
location = location[this._prop] || 0
}
var scrollBarLocation = {};
scrollBarLocation[this._prop] = this._calculateScrollBarPosition(location);
(0, _translator.move)(this._$thumb, scrollBarLocation)
},
_calculateScrollBarPosition: function(location) {
return -location * this._thumbRatio
},
_update: function() {
var containerSize = Math.round(this.option("containerSize"));
var contentSize = Math.round(this.option("contentSize"));
var baseContainerSize = Math.round(this.option("baseContainerSize"));
var baseContentSize = Math.round(this.option("baseContentSize"));
if (isNaN(baseContainerSize)) {
baseContainerSize = containerSize;
baseContentSize = contentSize
}
this._baseContainerToContentRatio = baseContentSize ? baseContainerSize / baseContentSize : baseContainerSize;
this._realContainerToContentRatio = contentSize ? containerSize / contentSize : containerSize;
var thumbSize = Math.round(Math.max(Math.round(containerSize * this._realContainerToContentRatio), 15));
this._thumbRatio = (containerSize - thumbSize) / (this.option("scaleRatio") * (contentSize - containerSize));
this.option(this._dimension, thumbSize / this.option("scaleRatio"));
this.$element().css("display", this._needScrollbar() ? "" : "none")
},
_isHidden: function() {
return this.option("visibilityMode") === SCROLLBAR_VISIBLE_never
},
_needScrollbar: function() {
return !this._isHidden() && this._baseContainerToContentRatio < 1
},
containerToContentRatio: function() {
return this._realContainerToContentRatio
},
_normalizeSize: function(size) {
return (0, _type.isPlainObject)(size) ? size[this._dimension] || 0 : size
},
_clean: function() {
this.callBase();
if (this === activeScrollbar) {
activeScrollbar = null
}
_events_engine.default.off(this._$thumb, ".dxScrollbar")
},
_optionChanged: function(args) {
if (this._isHidden()) {
return
}
switch (args.name) {
case "containerSize":
case "contentSize":
this.option()[args.name] = this._normalizeSize(args.value);
this._update();
break;
case "baseContentSize":
case "baseContainerSize":
this._update();
break;
case "visibilityMode":
case "direction":
this._invalidate();
break;
case "scaleRatio":
this._update();
break;
default:
this.callBase.apply(this, arguments)
}
},
update: (0, _common.deferRenderer)((function() {
this._adjustVisibility() && this.option("visible", true)
}))
});
_ready_callbacks.default.add((function() {
_events_engine.default.subscribeGlobal(_dom_adapter.default.getDocument(), (0, _index.addNamespace)(_pointer.default.up, "dxScrollbar"), (function() {
if (activeScrollbar) {
activeScrollbar.feedbackOff()
}
}))
}));
var _default = Scrollbar;
exports.default = _default;
module.exports = exports.default;
module.exports.default = exports.default
},
/*!***************************************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/ui/scroll_view/ui.scrollable.simulated.js ***!
\***************************************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
exports.SimulatedStrategy = exports.Scroller = void 0;
var _renderer = _interopRequireDefault(__webpack_require__( /*! ../../core/renderer */ 2));
var _dom_adapter = _interopRequireDefault(__webpack_require__( /*! ../../core/dom_adapter */ 11));
var _events_engine = _interopRequireDefault(__webpack_require__( /*! ../../events/core/events_engine */ 5));
var _inflector = __webpack_require__( /*! ../../core/utils/inflector */ 41);
var _extend = __webpack_require__( /*! ../../core/utils/extend */ 0);
var _window = __webpack_require__( /*! ../../core/utils/window */ 7);
var _iterator = __webpack_require__( /*! ../../core/utils/iterator */ 3);
var _type = __webpack_require__( /*! ../../core/utils/type */ 1);
var _position = __webpack_require__( /*! ../../core/utils/position */ 24);
var _translator = __webpack_require__( /*! ../../animation/translator */ 33);
var _class = _interopRequireDefault(__webpack_require__( /*! ../../core/class */ 15));
var _animator = _interopRequireDefault(__webpack_require__( /*! ./animator */ 339));
var _index = __webpack_require__( /*! ../../events/utils/index */ 9);
var _common = __webpack_require__( /*! ../../core/utils/common */ 4);
var _ui = _interopRequireDefault(__webpack_require__( /*! ./ui.scrollbar */ 358));
var _deferred = __webpack_require__( /*! ../../core/utils/deferred */ 6);
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
default: obj
}
}
var HORIZONTAL = "horizontal";
var FRAME_DURATION = Math.round(1e3 / 60);
var BOUNCE_FRAMES = 400 / FRAME_DURATION;
var BOUNCE_ACCELERATION_SUM = (1 - Math.pow(.92, BOUNCE_FRAMES)) / (1 - .92);
var KEY_CODES_PAGE_UP = "pageUp",
KEY_CODES_PAGE_DOWN = "pageDown",
KEY_CODES_END = "end",
KEY_CODES_HOME = "home",
KEY_CODES_LEFT = "leftArrow",
KEY_CODES_UP = "upArrow",
KEY_CODES_RIGHT = "rightArrow",
KEY_CODES_DOWN = "downArrow",
KEY_CODES_TAB = "tab";
var InertiaAnimator = _animator.default.inherit({
ctor: function(scroller) {
this.callBase();
this.scroller = scroller
},
VELOCITY_LIMIT: 1,
_isFinished: function() {
return Math.abs(this.scroller._velocity) <= this.VELOCITY_LIMIT
},
_step: function() {
this.scroller._scrollStep(this.scroller._velocity);
this.scroller._velocity *= this._acceleration()
},
_acceleration: function() {
return this.scroller._inBounds() ? .92 : .5
},
_complete: function() {
this.scroller._scrollComplete()
}
});
var BounceAnimator = InertiaAnimator.inherit({
VELOCITY_LIMIT: .2,
_isFinished: function() {
return this.scroller._crossBoundOnNextStep() || this.callBase()
},
_acceleration: function() {
return .92
},
_complete: function() {
this.scroller._move(this.scroller._bounceLocation);
this.callBase()
}
});
var Scroller = _class.default.inherit({
ctor: function(options) {
this._initOptions(options);
this._initAnimators();
this._initScrollbar()
},
_initOptions: function(options) {
var _this = this;
this._location = 0;
this._topReached = false;
this._bottomReached = false;
this._axis = options.direction === HORIZONTAL ? "x" : "y";
this._prop = options.direction === HORIZONTAL ? "left" : "top";
this._dimension = options.direction === HORIZONTAL ? "width" : "height";
this._scrollProp = options.direction === HORIZONTAL ? "scrollLeft" : "scrollTop";
(0, _iterator.each)(options, (function(optionName, optionValue) {
_this["_" + optionName] = optionValue
}))
},
_initAnimators: function() {
this._inertiaAnimator = new InertiaAnimator(this);
this._bounceAnimator = new BounceAnimator(this)
},
_initScrollbar: function() {
this._scrollbar = new _ui.default((0, _renderer.default)("
").appendTo(this._$container), {
direction: this._direction,
visible: this._scrollByThumb,
visibilityMode: this._visibilityModeNormalize(this._scrollbarVisible),
expandable: this._scrollByThumb
});
this._$scrollbar = this._scrollbar.$element()
},
_visibilityModeNormalize: function(mode) {
return true === mode ? "onScroll" : false === mode ? "never" : mode
},
_scrollStep: function(delta) {
var prevLocation = this._location;
this._location += delta;
this._suppressBounce();
this._move();
if (Math.abs(prevLocation - this._location) < 1) {
return
}
_events_engine.default.triggerHandler(this._$container, {
type: "scroll"
})
},
_suppressBounce: function() {
if (this._bounceEnabled || this._inBounds(this._location)) {
return
}
this._velocity = 0;
this._location = this._boundLocation()
},
_boundLocation: function(location) {
location = void 0 !== location ? location : this._location;
return Math.max(Math.min(location, this._maxOffset), this._minOffset)
},
_move: function(location) {
this._location = void 0 !== location ? location * this._getScaleRatio() : this._location;
this._moveContent();
this._moveScrollbar()
},
_moveContent: function() {
var location = this._location;
this._$container[this._scrollProp](-location / this._getScaleRatio());
this._moveContentByTranslator(location)
},
_getScaleRatio: function() {
if ((0, _window.hasWindow)() && !this._scaleRatio) {
var element = this._$element.get(0);
var realDimension = this._getRealDimension(element, this._dimension);
var baseDimension = this._getBaseDimension(element, this._dimension);
this._scaleRatio = Math.round(realDimension / baseDimension * 100) / 100
}
return this._scaleRatio || 1
},
_getRealDimension: function(element, dimension) {
return Math.round((0, _position.getBoundingRect)(element)[dimension])
},
_getBaseDimension: function(element, dimension) {
var dimensionName = "offset" + (0, _inflector.titleize)(dimension);
return element[dimensionName]
},
_moveContentByTranslator: function(location) {
var translateOffset;
var minOffset = -this._maxScrollPropValue;
if (location > 0) {
translateOffset = location
} else if (location <= minOffset) {
translateOffset = location - minOffset
} else {
translateOffset = location % 1
}
if (this._translateOffset === translateOffset) {
return
}
var targetLocation = {};
targetLocation[this._prop] = translateOffset;
this._translateOffset = translateOffset;
if (0 === translateOffset) {
(0, _translator.resetPosition)(this._$content);
return
}(0, _translator.move)(this._$content, targetLocation)
},
_moveScrollbar: function() {
this._scrollbar.moveTo(this._location)
},
_scrollComplete: function() {
if (this._inBounds()) {
this._hideScrollbar();
if (this._completeDeferred) {
this._completeDeferred.resolve()
}
}
this._scrollToBounds()
},
_scrollToBounds: function() {
if (this._inBounds()) {
return
}
this._bounceAction();
this._setupBounce();
this._bounceAnimator.start()
},
_setupBounce: function() {
var boundLocation = this._bounceLocation = this._boundLocation();
var bounceDistance = boundLocation - this._location;
this._velocity = bounceDistance / BOUNCE_ACCELERATION_SUM
},
_inBounds: function(location) {
location = void 0 !== location ? location : this._location;
return this._boundLocation(location) === location
},
_crossBoundOnNextStep: function() {
var location = this._location;
var nextLocation = location + this._velocity;
return location < this._minOffset && nextLocation >= this._minOffset || location > this._maxOffset && nextLocation <= this._maxOffset
},
_initHandler: function(e) {
this._stopScrolling();
this._prepareThumbScrolling(e)
},
_stopScrolling: (0, _common.deferRenderer)((function() {
this._hideScrollbar();
this._inertiaAnimator.stop();
this._bounceAnimator.stop()
})),
_prepareThumbScrolling: function(e) {
if ((0, _index.isDxMouseWheelEvent)(e.originalEvent)) {
return
}
var $target = (0, _renderer.default)(e.originalEvent.target);
var scrollbarClicked = this._isScrollbar($target);
if (scrollbarClicked) {
this._moveToMouseLocation(e)
}
this._thumbScrolling = scrollbarClicked || this._isThumb($target);
this._crossThumbScrolling = !this._thumbScrolling && this._isAnyThumbScrolling($target);
if (this._thumbScrolling) {
this._scrollbar.feedbackOn()
}
},
_isThumbScrollingHandler: function($target) {
return this._isThumb($target)
},
_moveToMouseLocation: function(e) {
var mouseLocation = e["page" + this._axis.toUpperCase()] - this._$element.offset()[this._prop];
var location = this._location + mouseLocation / this._containerToContentRatio() - this._$container.height() / 2;
this._scrollStep(-Math.round(location))
},
_startHandler: function() {
this._showScrollbar()
},
_moveHandler: function(delta) {
if (this._crossThumbScrolling) {
return
}
if (this._thumbScrolling) {
delta[this._axis] = -Math.round(delta[this._axis] / this._containerToContentRatio())
}
this._scrollBy(delta)
},
_scrollBy: function(delta) {
delta = delta[this._axis];
if (!this._inBounds()) {
delta *= .5
}
this._scrollStep(delta)
},
_scrollByHandler: function(delta) {
this._scrollBy(delta);
this._scrollComplete()
},
_containerToContentRatio: function() {
return this._scrollbar.containerToContentRatio()
},
_endHandler: function(velocity) {
this._completeDeferred = new _deferred.Deferred;
this._velocity = velocity[this._axis];
this._inertiaHandler();
this._resetThumbScrolling();
return this._completeDeferred.promise()
},
_inertiaHandler: function() {
this._suppressInertia();
this._inertiaAnimator.start()
},
_suppressInertia: function() {
if (!this._inertiaEnabled || this._thumbScrolling) {
this._velocity = 0
}
},
_resetThumbScrolling: function() {
this._thumbScrolling = false;
this._crossThumbScrolling = false
},
_stopHandler: function() {
if (this._thumbScrolling) {
this._scrollComplete()
}
this._resetThumbScrolling();
this._scrollToBounds()
},
_disposeHandler: function() {
this._stopScrolling();
this._$scrollbar.remove()
},
_updateHandler: function() {
this._update();
this._moveToBounds()
},
_update: function() {
var _this2 = this;
this._stopScrolling();
return (0, _common.deferUpdate)((function() {
_this2._resetScaleRatio();
_this2._updateLocation();
_this2._updateBounds();
_this2._updateScrollbar();
(0, _common.deferRender)((function() {
_this2._moveScrollbar();
_this2._scrollbar.update()
}))
}))
},
_resetScaleRatio: function() {
this._scaleRatio = null
},
_updateLocation: function() {
this._location = ((0, _translator.locate)(this._$content)[this._prop] - this._$container[this._scrollProp]()) * this._getScaleRatio()
},
_updateBounds: function() {
this._maxOffset = Math.round(this._getMaxOffset());
this._minOffset = Math.round(this._getMinOffset())
},
_getMaxOffset: function() {
return 0
},
_getMinOffset: function() {
this._maxScrollPropValue = Math.max(this._contentSize() - this._containerSize(), 0);
return -this._maxScrollPropValue
},
_updateScrollbar: (0, _common.deferUpdater)((function() {
var _this3 = this;
var containerSize = this._containerSize();
var contentSize = this._contentSize();
var baseContainerSize = this._getBaseDimension(this._$container.get(0), this._dimension);
var baseContentSize = this._getBaseDimension(this._$content.get(0), this._dimension);
(0, _common.deferRender)((function() {
_this3._scrollbar.option({
containerSize: containerSize,
contentSize: contentSize,
baseContainerSize: baseContainerSize,
baseContentSize: baseContentSize,
scaleRatio: _this3._getScaleRatio()
})
}))
})),
_moveToBounds: (0, _common.deferRenderer)((0, _common.deferUpdater)((0, _common.deferRenderer)((function() {
var location = this._boundLocation();
var locationChanged = location !== this._location;
this._location = location;
this._move();
if (locationChanged) {
this._scrollAction()
}
})))),
_createActionsHandler: function(actions) {
this._scrollAction = actions.scroll;
this._bounceAction = actions.bounce
},
_showScrollbar: function() {
this._scrollbar.option("visible", true)
},
_hideScrollbar: function() {
this._scrollbar.option("visible", false)
},
_containerSize: function() {
return this._getRealDimension(this._$container.get(0), this._dimension)
},
_contentSize: function() {
var isOverflowHidden = "hidden" === this._$content.css("overflow" + this._axis.toUpperCase());
var contentSize = this._getRealDimension(this._$content.get(0), this._dimension);
if (!isOverflowHidden) {
var containerScrollSize = this._$content[0]["scroll" + (0, _inflector.titleize)(this._dimension)] * this._getScaleRatio();
contentSize = Math.max(containerScrollSize, contentSize)
}
return contentSize
},
_validateEvent: function(e) {
var $target = (0, _renderer.default)(e.originalEvent.target);
return this._isThumb($target) || this._isScrollbar($target) || this._isContent($target)
},
_isThumb: function($element) {
return this._scrollByThumb && this._scrollbar.isThumb($element)
},
_isScrollbar: function($element) {
return this._scrollByThumb && $element && $element.is(this._$scrollbar)
},
_isContent: function($element) {
return this._scrollByContent && !!$element.closest(this._$element).length
},
_reachedMin: function() {
return this._location <= this._minOffset
},
_reachedMax: function() {
return this._location >= this._maxOffset
},
_cursorEnterHandler: function() {
this._resetScaleRatio();
this._updateScrollbar();
this._scrollbar.cursorEnter()
},
_cursorLeaveHandler: function() {
this._scrollbar.cursorLeave()
},
dispose: _common.noop
});
exports.Scroller = Scroller;
var hoveredScrollable;
var activeScrollable;
var SimulatedStrategy = _class.default.inherit({
ctor: function(scrollable) {
this._init(scrollable)
},
_init: function(scrollable) {
this._component = scrollable;
this._$element = scrollable.$element();
this._$container = scrollable._$container;
this._$wrapper = scrollable._$wrapper;
this._$content = scrollable._$content;
this.option = scrollable.option.bind(scrollable);
this._createActionByOption = scrollable._createActionByOption.bind(scrollable);
this._isLocked = scrollable._isLocked.bind(scrollable);
this._isDirection = scrollable._isDirection.bind(scrollable);
this._allowedDirection = scrollable._allowedDirection.bind(scrollable);
this._getScrollOffset = scrollable._getScrollOffset.bind(scrollable)
},
render: function() {
this._$element.addClass("dx-scrollable-simulated");
this._createScrollers();
if (this.option("useKeyboard")) {
this._$container.prop("tabIndex", 0)
}
this._attachKeyboardHandler();
this._attachCursorHandlers()
},
_createScrollers: function() {
this._scrollers = {};
if (this._isDirection(HORIZONTAL)) {
this._createScroller(HORIZONTAL)
}
if (this._isDirection("vertical")) {
this._createScroller("vertical")
}
this._$element.toggleClass("dx-scrollable-scrollbars-alwaysvisible", "always" === this.option("showScrollbar"))
},
_createScroller: function(direction) {
this._scrollers[direction] = new Scroller(this._scrollerOptions(direction))
},
_scrollerOptions: function(direction) {
return {
direction: direction,
$content: this._$content,
$container: this._$container,
$wrapper: this._$wrapper,
$element: this._$element,
scrollByContent: this.option("scrollByContent"),
scrollByThumb: this.option("scrollByThumb"),
scrollbarVisible: this.option("showScrollbar"),
bounceEnabled: this.option("bounceEnabled"),
inertiaEnabled: this.option("inertiaEnabled"),
isAnyThumbScrolling: this._isAnyThumbScrolling.bind(this)
}
},
_applyScaleRatio: function(targetLocation) {
for (var direction in this._scrollers) {
var prop = this._getPropByDirection(direction);
if ((0, _type.isDefined)(targetLocation[prop])) {
var scroller = this._scrollers[direction];
targetLocation[prop] *= scroller._getScaleRatio()
}
}
return targetLocation
},
_isAnyThumbScrolling: function($target) {
var result = false;
this._eventHandler("isThumbScrolling", $target).done((function(isThumbScrollingVertical, isThumbScrollingHorizontal) {
result = isThumbScrollingVertical || isThumbScrollingHorizontal
}));
return result
},
handleInit: function(e) {
this._suppressDirections(e);
this._eventForUserAction = e;
this._eventHandler("init", e)
},
_suppressDirections: function(e) {
if ((0, _index.isDxMouseWheelEvent)(e.originalEvent)) {
this._prepareDirections(true);
return
}
this._prepareDirections();
this._eachScroller((function(scroller, direction) {
var isValid = scroller._validateEvent(e);
this._validDirections[direction] = isValid
}))
},
_prepareDirections: function(value) {
value = value || false;
this._validDirections = {};
this._validDirections[HORIZONTAL] = value;
this._validDirections.vertical = value
},
_eachScroller: function(callback) {
callback = callback.bind(this);
(0, _iterator.each)(this._scrollers, (function(direction, scroller) {
callback(scroller, direction)
}))
},
handleStart: function(e) {
this._eventForUserAction = e;
this._eventHandler("start").done(this._startAction)
},
_saveActive: function() {
activeScrollable = this
},
_resetActive: function() {
if (activeScrollable === this) {
activeScrollable = null
}
},
handleMove: function(e) {
if (this._isLocked()) {
e.cancel = true;
this._resetActive();
return
}
this._saveActive();
e.preventDefault && e.preventDefault();
this._adjustDistance(e, e.delta);
this._eventForUserAction = e;
this._eventHandler("move", e.delta)
},
_adjustDistance: function(e, distance) {
distance.x *= this._validDirections[HORIZONTAL];
distance.y *= this._validDirections.vertical;
var devicePixelRatio = this._tryGetDevicePixelRatio();
if (devicePixelRatio && (0, _index.isDxMouseWheelEvent)(e.originalEvent)) {
distance.x = Math.round(distance.x / devicePixelRatio * 100) / 100;
distance.y = Math.round(distance.y / devicePixelRatio * 100) / 100
}
},
_tryGetDevicePixelRatio: function() {
if ((0, _window.hasWindow)()) {
return (0, _window.getWindow)().devicePixelRatio
}
},
handleEnd: function(e) {
this._resetActive();
this._refreshCursorState(e.originalEvent && e.originalEvent.target);
this._adjustDistance(e, e.velocity);
this._eventForUserAction = e;
return this._eventHandler("end", e.velocity).done(this._endAction)
},
handleCancel: function(e) {
this._resetActive();
this._eventForUserAction = e;
return this._eventHandler("end", {
x: 0,
y: 0
})
},
handleStop: function() {
this._resetActive();
this._eventHandler("stop")
},
handleScroll: function() {
this._component._updateRtlConfig();
this._scrollAction()
},
_attachKeyboardHandler: function() {
_events_engine.default.off(this._$element, ".".concat("dxSimulatedScrollableKeyboard"));
if (!this.option("disabled") && this.option("useKeyboard")) {
_events_engine.default.on(this._$element, (0, _index.addNamespace)("keydown", "dxSimulatedScrollableKeyboard"), this._keyDownHandler.bind(this))
}
},
_keyDownHandler: function(e) {
var _this4 = this;
clearTimeout(this._updateHandlerTimeout);
this._updateHandlerTimeout = setTimeout((function() {
if ((0, _index.normalizeKeyName)(e) === KEY_CODES_TAB) {
_this4._eachScroller((function(scroller) {
scroller._updateHandler()
}))
}
}));
if (!this._$container.is(_dom_adapter.default.getActiveElement())) {
return
}
var handled = true;
switch ((0, _index.normalizeKeyName)(e)) {
case KEY_CODES_DOWN:
this._scrollByLine({
y: 1
});
break;
case KEY_CODES_UP:
this._scrollByLine({
y: -1
});
break;
case KEY_CODES_RIGHT:
this._scrollByLine({
x: 1
});
break;
case KEY_CODES_LEFT:
this._scrollByLine({
x: -1
});
break;
case KEY_CODES_PAGE_DOWN:
this._scrollByPage(1);
break;
case KEY_CODES_PAGE_UP:
this._scrollByPage(-1);
break;
case KEY_CODES_HOME:
this._scrollToHome();
break;
case KEY_CODES_END:
this._scrollToEnd();
break;
default:
handled = false
}
if (handled) {
e.stopPropagation();
e.preventDefault()
}
},
_scrollByLine: function(lines) {
var devicePixelRatio = this._tryGetDevicePixelRatio();
var scrollOffset = 40;
if (devicePixelRatio) {
scrollOffset = Math.abs(scrollOffset / devicePixelRatio * 100) / 100
}
this.scrollBy({
top: (lines.y || 0) * -scrollOffset,
left: (lines.x || 0) * -scrollOffset
})
},
_scrollByPage: function(page) {
var prop = this._wheelProp();
var dimension = this._dimensionByProp(prop);
var distance = {};
distance[prop] = page * -this._$container[dimension]();
this.scrollBy(distance)
},
_dimensionByProp: function(prop) {
return "left" === prop ? "width" : "height"
},
_getPropByDirection: function(direction) {
return direction === HORIZONTAL ? "left" : "top"
},
_scrollToHome: function() {
var prop = this._wheelProp();
var distance = {};
distance[prop] = 0;
this._component.scrollTo(distance)
},
_scrollToEnd: function() {
var prop = this._wheelProp();
var dimension = this._dimensionByProp(prop);
var distance = {};
distance[prop] = this._$content[dimension]() - this._$container[dimension]();
this._component.scrollTo(distance)
},
createActions: function() {
this._startAction = this._createActionHandler("onStart");
this._endAction = this._createActionHandler("onEnd");
this._updateAction = this._createActionHandler("onUpdated");
this._createScrollerActions()
},
_createScrollerActions: function() {
this._scrollAction = this._createActionHandler("onScroll");
this._bounceAction = this._createActionHandler("onBounce");
this._eventHandler("createActions", {
scroll: this._scrollAction,
bounce: this._bounceAction
})
},
_createActionHandler: function(optionName) {
var _arguments = arguments,
_this5 = this;
var actionHandler = this._createActionByOption(optionName);
return function() {
actionHandler((0, _extend.extend)(_this5._createActionArgs(), _arguments))
}
},
_createActionArgs: function() {
var _this$_scrollers = this._scrollers,
scrollerX = _this$_scrollers.horizontal,
scrollerY = _this$_scrollers.vertical;
var offset = this._getScrollOffset();
this._scrollOffset = {
top: scrollerY && offset.top,
left: scrollerX && offset.left
};
return {
event: this._eventForUserAction,
scrollOffset: this._scrollOffset,
reachedLeft: scrollerX && scrollerX._reachedMax(),
reachedRight: scrollerX && scrollerX._reachedMin(),
reachedTop: scrollerY && scrollerY._reachedMax(),
reachedBottom: scrollerY && scrollerY._reachedMin()
}
},
_eventHandler: function(eventName) {
var args = [].slice.call(arguments).slice(1);
var deferreds = (0, _iterator.map)(this._scrollers, (function(scroller) {
return scroller["_" + eventName + "Handler"].apply(scroller, args)
}));
return _deferred.when.apply(_renderer.default, deferreds).promise()
},
location: function() {
var location = (0, _translator.locate)(this._$content);
location.top -= this._$container.scrollTop();
location.left -= this._$container.scrollLeft();
return location
},
disabledChanged: function() {
this._attachCursorHandlers()
},
_attachCursorHandlers: function() {
_events_engine.default.off(this._$element, ".".concat("dxSimulatedScrollableCursor"));
if (!this.option("disabled") && this._isHoverMode()) {
_events_engine.default.on(this._$element, (0, _index.addNamespace)("mouseenter", "dxSimulatedScrollableCursor"), this._cursorEnterHandler.bind(this));
_events_engine.default.on(this._$element, (0, _index.addNamespace)("mouseleave", "dxSimulatedScrollableCursor"), this._cursorLeaveHandler.bind(this))
}
},
_isHoverMode: function() {
return "onHover" === this.option("showScrollbar")
},
_cursorEnterHandler: function(e) {
e = e || {};
e.originalEvent = e.originalEvent || {};
if (activeScrollable || e.originalEvent._hoverHandled) {
return
}
if (hoveredScrollable) {
hoveredScrollable._cursorLeaveHandler()
}
hoveredScrollable = this;
this._eventHandler("cursorEnter");
e.originalEvent._hoverHandled = true
},
_cursorLeaveHandler: function(e) {
if (hoveredScrollable !== this || activeScrollable === hoveredScrollable) {
return
}
this._eventHandler("cursorLeave");
hoveredScrollable = null;
this._refreshCursorState(e && e.relatedTarget)
},
_refreshCursorState: function(target) {
if (!this._isHoverMode() && (!target || activeScrollable)) {
return
}
var $target = (0, _renderer.default)(target);
var $scrollable = $target.closest(".".concat("dx-scrollable-simulated", ":not(.dx-state-disabled)"));
var targetScrollable = $scrollable.length && $scrollable.data("dxScrollableStrategy");
if (hoveredScrollable && hoveredScrollable !== targetScrollable) {
hoveredScrollable._cursorLeaveHandler()
}
if (targetScrollable) {
targetScrollable._cursorEnterHandler()
}
},
update: function() {
var _this6 = this;
var result = this._eventHandler("update").done(this._updateAction);
return (0, _deferred.when)(result, (0, _common.deferUpdate)((function() {
var allowedDirections = _this6._allowedDirections();
(0, _common.deferRender)((function() {
var touchDirection = allowedDirections.vertical ? "pan-x" : "";
touchDirection = allowedDirections.horizontal ? "pan-y" : touchDirection;
touchDirection = allowedDirections.vertical && allowedDirections.horizontal ? "none" : touchDirection;
_this6._$container.css("touchAction", touchDirection)
}));
return (0, _deferred.when)().promise()
})))
},
_allowedDirections: function() {
var bounceEnabled = this.option("bounceEnabled");
var verticalScroller = this._scrollers.vertical;
var horizontalScroller = this._scrollers[HORIZONTAL];
return {
vertical: verticalScroller && (verticalScroller._minOffset < 0 || bounceEnabled),
horizontal: horizontalScroller && (horizontalScroller._minOffset < 0 || bounceEnabled)
}
},
updateBounds: function() {
this._scrollers[HORIZONTAL] && this._scrollers[HORIZONTAL]._updateBounds()
},
scrollBy: function(distance) {
var verticalScroller = this._scrollers.vertical;
var horizontalScroller = this._scrollers[HORIZONTAL];
if (verticalScroller) {
distance.top = verticalScroller._boundLocation(distance.top + verticalScroller._location) - verticalScroller._location
}
if (horizontalScroller) {
distance.left = horizontalScroller._boundLocation(distance.left + horizontalScroller._location) - horizontalScroller._location
}
this._prepareDirections(true);
this._startAction();
this._eventHandler("scrollBy", {
x: distance.left,
y: distance.top
});
this._endAction()
},
validate: function(e) {
if ((0, _index.isDxMouseWheelEvent)(e) && (0, _index.isCommandKeyPressed)(e)) {
return false
}
if (this.option("disabled")) {
return false
}
if (this.option("bounceEnabled")) {
return true
}
return (0, _index.isDxMouseWheelEvent)(e) ? this._validateWheel(e) : this._validateMove(e)
},
_validateWheel: function(e) {
var _this7 = this;
var scroller = this._scrollers[this._wheelDirection(e)];
var reachedMin = scroller._reachedMin();
var reachedMax = scroller._reachedMax();
var contentGreaterThanContainer = !reachedMin || !reachedMax;
var locatedNotAtBound = !reachedMin && !reachedMax;
var scrollFromMin = reachedMin && e.delta > 0;
var scrollFromMax = reachedMax && e.delta < 0;
var validated = contentGreaterThanContainer && (locatedNotAtBound || scrollFromMin || scrollFromMax);
validated = validated || void 0 !== this._validateWheelTimer;
if (validated) {
clearTimeout(this._validateWheelTimer);
this._validateWheelTimer = setTimeout((function() {
_this7._validateWheelTimer = void 0
}), 500)
}
return validated
},
_validateMove: function(e) {
if (!this.option("scrollByContent") && !(0, _renderer.default)(e.target).closest(".".concat("dx-scrollable-scrollbar")).length) {
return false
}
return this._allowedDirection()
},
getDirection: function(e) {
return (0, _index.isDxMouseWheelEvent)(e) ? this._wheelDirection(e) : this._allowedDirection()
},
_wheelProp: function() {
return this._wheelDirection() === HORIZONTAL ? "left" : "top"
},
_wheelDirection: function(e) {
switch (this.option("direction")) {
case HORIZONTAL:
return HORIZONTAL;
case "vertical":
return "vertical";
default:
return e && e.shiftKey ? HORIZONTAL : "vertical"
}
},
dispose: function() {
this._resetActive();
if (hoveredScrollable === this) {
hoveredScrollable = null
}
this._eventHandler("dispose");
this._detachEventHandlers();
this._$element.removeClass("dx-scrollable-simulated");
this._eventForUserAction = null;
clearTimeout(this._validateWheelTimer);
clearTimeout(this._updateHandlerTimeout)
},
_detachEventHandlers: function() {
_events_engine.default.off(this._$element, ".".concat("dxSimulatedScrollableCursor"));
_events_engine.default.off(this._$container, ".".concat("dxSimulatedScrollableKeyboard"))
}
});
exports.SimulatedStrategy = SimulatedStrategy
},
/*!************************************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/ui/scroll_view/ui.scrollable.device.js ***!
\************************************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
exports.deviceDependentOptions = void 0;
var _devices = (obj = __webpack_require__( /*! ../../core/devices */ 13), obj && obj.__esModule ? obj : {
default: obj
});
var obj;
var _support = __webpack_require__( /*! ../../core/utils/support */ 48);
exports.deviceDependentOptions = function() {
return [{
device: function() {
return !_support.nativeScrolling
},
options: {
useNative: false
}
}, {
device: function(_device) {
return !_devices.default.isSimulator() && "desktop" === _devices.default.real().deviceType && "generic" === _device.platform
},
options: {
bounceEnabled: false,
scrollByThumb: true,
scrollByContent: _support.touch,
showScrollbar: "onHover"
}
}]
}
},
/*!********************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/ui/drop_down_button.js ***!
\********************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
exports.default = void 0;
var _renderer = _interopRequireDefault(__webpack_require__( /*! ../core/renderer */ 2));
var _ui = _interopRequireDefault(__webpack_require__( /*! ./widget/ui.widget */ 16));
var _function_template = __webpack_require__( /*! ../core/templates/function_template */ 133);
var _component_registrator = _interopRequireDefault(__webpack_require__( /*! ../core/component_registrator */ 8));
var _button_group = _interopRequireDefault(__webpack_require__( /*! ./button_group */ 281));
var _popup = _interopRequireDefault(__webpack_require__( /*! ./popup */ 49));
var _list = _interopRequireDefault(__webpack_require__( /*! ./list */ 117));
var _data = __webpack_require__( /*! ../core/utils/data */ 23);
var _element = __webpack_require__( /*! ../core/element */ 21);
var _icon = __webpack_require__( /*! ../core/utils/icon */ 54);
var _data_helper = _interopRequireDefault(__webpack_require__( /*! ../data_helper */ 97));
var _data_source = __webpack_require__( /*! ../data/data_source/data_source */ 70);
var _array_store = _interopRequireDefault(__webpack_require__( /*! ../data/array_store */ 79));
var _deferred = __webpack_require__( /*! ../core/utils/deferred */ 6);
var _extend = __webpack_require__( /*! ../core/utils/extend */ 0);
var _type = __webpack_require__( /*! ../core/utils/type */ 1);
var _common = __webpack_require__( /*! ../core/utils/common */ 4);
var _guid = _interopRequireDefault(__webpack_require__( /*! ../core/guid */ 36));
var _utils = __webpack_require__( /*! ./drop_down_editor/utils */ 212);
var _message = _interopRequireDefault(__webpack_require__( /*! ../localization/message */ 10));
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
default: obj
}
}
var DropDownButton = _ui.default.inherit({
_getDefaultOptions: function() {
return (0, _extend.extend)(this.callBase(), {
itemTemplate: "item",
keyExpr: "this",
displayExpr: "this",
selectedItem: null,
selectedItemKey: null,
stylingMode: "outlined",
deferRendering: true,
noDataText: _message.default.format("dxCollectionWidget-noDataText"),
useSelectMode: false,
splitButton: false,
showArrowIcon: true,
text: "",
icon: void 0,
onButtonClick: null,
onSelectionChanged: null,
onItemClick: null,
opened: false,
items: null,
dataSource: null,
focusStateEnabled: true,
hoverStateEnabled: true,
dropDownOptions: {},
dropDownContentTemplate: "content",
wrapItemText: false,
useItemTextAsTitle: true,
grouped: false,
groupTemplate: "group",
buttonGroupOptions: {}
})
},
_setOptionsByReference: function() {
this.callBase();
(0, _extend.extend)(this._optionsByReference, {
selectedItem: true
})
},
_init: function() {
this.callBase();
this._createItemClickAction();
this._createActionClickAction();
this._createSelectionChangedAction();
this._initDataSource();
this._compileKeyGetter();
this._compileDisplayGetter();
this._itemsToDataSource(this.option("items"));
this._options.cache("buttonGroupOptions", this.option("buttonGroupOptions"));
this._options.cache("dropDownOptions", this.option("dropDownOptions"))
},
_initTemplates: function() {
var _this = this;
this._templateManager.addDefaultTemplates({
content: new _function_template.FunctionTemplate((function(options) {
var $popupContent = (0, _renderer.default)(options.container);
var $listContainer = (0, _renderer.default)("
").appendTo($popupContent);
_this._list = _this._createComponent($listContainer, _list.default, _this._listOptions());
_this._list.registerKeyHandler("escape", _this._escHandler.bind(_this));
_this._list.registerKeyHandler("tab", _this._escHandler.bind(_this));
_this._list.registerKeyHandler("leftArrow", _this._escHandler.bind(_this));
_this._list.registerKeyHandler("rightArrow", _this._escHandler.bind(_this))
}))
});
this.callBase()
},
_itemsToDataSource: function(value) {
if (!this._dataSource) {
this._dataSource = new _data_source.DataSource({
store: new _array_store.default({
key: this._getKey(),
data: value
}),
pageSize: 0
})
}
},
_getKey: function() {
var _this$_dataSource;
var keyExpr = this.option("keyExpr");
var storeKey = null === (_this$_dataSource = this._dataSource) || void 0 === _this$_dataSource ? void 0 : _this$_dataSource.key();
return (0, _type.isDefined)(storeKey) && (!(0, _type.isDefined)(keyExpr) || "this" === keyExpr) ? storeKey : keyExpr
},
_compileKeyGetter: function() {
this._keyGetter = (0, _data.compileGetter)(this._getKey())
},
_compileDisplayGetter: function() {
this._displayGetter = (0, _data.compileGetter)(this.option("displayExpr"))
},
_initMarkup: function() {
this.callBase();
this.$element().addClass("dx-dropdownbutton");
this._renderButtonGroup();
this._updateArrowClass();
if ((0, _type.isDefined)(this.option("selectedItemKey"))) {
this._loadSelectedItem().done(this._updateActionButton.bind(this))
}
},
_renderFocusTarget: _common.noop,
_render: function() {
if (!this.option("deferRendering") || this.option("opened")) {
this._renderPopup()
}
this.callBase()
},
_renderContentImpl: function() {
if (this._popup) {
this._renderPopupContent()
}
return this.callBase()
},
_loadSelectedItem: function() {
var d = new _deferred.Deferred;
if (this._list && void 0 !== this._lastSelectedItemData) {
var cachedResult = this.option("useSelectMode") ? this._list.option("selectedItem") : this._lastSelectedItemData;
return d.resolve(cachedResult)
}
this._lastSelectedItemData = void 0;
var selectedItemKey = this.option("selectedItemKey");
this._loadSingle(this._getKey(), selectedItemKey).done(d.resolve).fail((function() {
d.resolve(null)
}));
return d.promise()
},
_createActionClickAction: function() {
this._actionClickAction = this._createActionByOption("onButtonClick")
},
_createSelectionChangedAction: function() {
this._selectionChangedAction = this._createActionByOption("onSelectionChanged")
},
_createItemClickAction: function() {
this._itemClickAction = this._createActionByOption("onItemClick")
},
_fireSelectionChangedAction: function(_ref) {
var previousValue = _ref.previousValue,
value = _ref.value;
this._selectionChangedAction({
item: value,
previousItem: previousValue
})
},
_fireItemClickAction: function(_ref2) {
var event = _ref2.event,
itemElement = _ref2.itemElement,
itemData = _ref2.itemData;
return this._itemClickAction({
event: event,
itemElement: itemElement,
itemData: this._actionItem || itemData
})
},
_actionButtonConfig: function() {
return {
text: this.option("text"),
icon: this.option("icon"),
elementAttr: {
class: "dx-dropdownbutton-action"
}
}
},
_getButtonGroupItems: function() {
var items = [];
items.push(this._actionButtonConfig());
if (this.option("splitButton")) {
items.push({
icon: "spindown",
elementAttr: {
class: "dx-dropdownbutton-toggle"
}
})
}
return items
},
_buttonGroupItemClick: function(_ref3) {
var event = _ref3.event,
itemData = _ref3.itemData;
var isActionButton = "dx-dropdownbutton-action" === itemData.elementAttr.class;
var isToggleButton = "dx-dropdownbutton-toggle" === itemData.elementAttr.class;
if (isToggleButton) {
this.toggle()
} else if (isActionButton) {
this._actionClickAction({
event: event,
selectedItem: this.option("selectedItem")
});
if (!this.option("splitButton")) {
this.toggle()
}
}
},
_buttonGroupOptions: function() {
var _this2 = this;
return (0, _extend.extend)({
items: this._getButtonGroupItems(),
focusStateEnabled: this.option("focusStateEnabled"),
hoverStateEnabled: this.option("hoverStateEnabled"),
onItemClick: this._buttonGroupItemClick.bind(this),
width: "100%",
height: "100%",
stylingMode: this.option("stylingMode"),
selectionMode: "none",
tabIndex: this.option("tabIndex"),
onKeyboardHandled: function(e) {
return _this2._keyboardHandler(e)
},
buttonTemplate: function(_ref4, buttonContent) {
var text = _ref4.text,
icon = _ref4.icon;
if (_this2.option("splitButton") || !_this2.option("showArrowIcon")) {
return "content"
}
var $firstIcon = (0, _icon.getImageContainer)(icon);
var $textContainer = text ? (0, _renderer.default)("
").text(text).addClass("dx-button-text") : void 0;
var $secondIcon = (0, _icon.getImageContainer)("spindown").addClass("dx-icon-right");
(0, _renderer.default)(buttonContent).append($firstIcon, $textContainer, $secondIcon)
}
}, this._options.cache("buttonGroupOptions"))
},
_renderPopupContent: function() {
var $content = this._popup.$content();
var template = this._getTemplateByOption("dropDownContentTemplate");
$content.empty();
this._popupContentId = "dx-" + new _guid.default;
this.setAria("id", this._popupContentId, $content);
return template.render({
container: (0, _element.getPublicElement)($content),
model: this.option("items") || this._dataSource
})
},
_popupOptions: function() {
var _this3 = this;
var horizontalAlignment = this.option("rtlEnabled") ? "right" : "left";
return (0, _extend.extend)({
dragEnabled: false,
focusStateEnabled: false,
deferRendering: this.option("deferRendering"),
closeOnOutsideClick: function(e) {
var $element = _this3.$element();
var $buttonClicked = (0, _renderer.default)(e.target).closest(".".concat("dx-dropdownbutton"));
return !$buttonClicked.is($element)
},
showTitle: false,
animation: {
show: {
type: "fade",
duration: 0,
from: 0,
to: 1
},
hide: {
type: "fade",
duration: 400,
from: 1,
to: 0
}
},
width: function() {
return (0, _utils.getElementWidth)(_this3.$element())
},
height: "auto",
shading: false,
position: {
of: this.$element(),
collision: "flipfit",
my: horizontalAlignment + " top",
at: horizontalAlignment + " bottom"
}
}, this._options.cache("dropDownOptions"), {
visible: this.option("opened")
})
},
_listOptions: function() {
var _this4 = this;
var selectedItemKey = this.option("selectedItemKey");
var useSelectMode = this.option("useSelectMode");
return {
selectionMode: useSelectMode ? "single" : "none",
wrapItemText: this.option("wrapItemText"),
focusStateEnabled: this.option("focusStateEnabled"),
hoverStateEnabled: this.option("hoverStateEnabled"),
useItemTextAsTitle: this.option("useItemTextAsTitle"),
onContentReady: function() {
return _this4._fireContentReadyAction()
},
selectedItemKeys: (0, _type.isDefined)(selectedItemKey) && useSelectMode ? [selectedItemKey] : [],
grouped: this.option("grouped"),
groupTemplate: this.option("groupTemplate"),
keyExpr: this._getKey(),
noDataText: this.option("noDataText"),
displayExpr: this.option("displayExpr"),
itemTemplate: this.option("itemTemplate"),
items: this.option("items"),
dataSource: this._dataSource,
onItemClick: function(e) {
if (!_this4.option("useSelectMode")) {
_this4._lastSelectedItemData = e.itemData
}
_this4.option("selectedItemKey", _this4._keyGetter(e.itemData));
var actionResult = _this4._fireItemClickAction(e);
if (false !== actionResult) {
_this4.toggle(false);
_this4._buttonGroup.focus()
}
}
}
},
_upDownKeyHandler: function() {
if (this._popup && this._popup.option("visible") && this._list) {
this._list.focus()
} else {
this.open()
}
return true
},
_escHandler: function() {
this.close();
this._buttonGroup.focus();
return true
},
_tabHandler: function() {
this.close();
return true
},
_renderPopup: function() {
var $popup = (0, _renderer.default)("");
this.$element().append($popup);
this._popup = this._createComponent($popup, _popup.default, this._popupOptions());
this._popup.$content().addClass("dx-dropdownbutton-content");
this._popup.$wrapper().addClass("dx-dropdownbutton-popup-wrapper");
this._popup.on("hiding", this._popupHidingHandler.bind(this));
this._popup.on("showing", this._popupShowingHandler.bind(this));
this._bindInnerWidgetOptions(this._popup, "dropDownOptions")
},
_popupHidingHandler: function() {
this.option("opened", false);
this.setAria({
expanded: false,
owns: void 0
})
},
_popupOptionChanged: function(args) {
var options = _ui.default.getOptionsFromContainer(args);
this._setPopupOption(options);
var optionsKeys = Object.keys(options);
if (-1 !== optionsKeys.indexOf("width") || -1 !== optionsKeys.indexOf("height")) {
this._dimensionChanged()
}
},
_dimensionChanged: function() {
var _this5 = this;
var popupWidth = (0, _utils.getSizeValue)(this.option("dropDownOptions.width"));
if (void 0 === popupWidth) {
this._setPopupOption("width", (function() {
return (0, _utils.getElementWidth)(_this5.$element())
}))
}
},
_setPopupOption: function(optionName, value) {
this._setWidgetOption("_popup", arguments)
},
_popupShowingHandler: function() {
this.option("opened", true);
this.setAria({
expanded: true,
owns: this._popupContentId
})
},
_renderButtonGroup: function() {
var $buttonGroup = this._buttonGroup && this._buttonGroup.$element() || (0, _renderer.default)("
");
if (!this._buttonGroup) {
this.$element().append($buttonGroup)
}
this._buttonGroup = this._createComponent($buttonGroup, _button_group.default, this._buttonGroupOptions());
this._buttonGroup.registerKeyHandler("downArrow", this._upDownKeyHandler.bind(this));
this._buttonGroup.registerKeyHandler("tab", this._tabHandler.bind(this));
this._buttonGroup.registerKeyHandler("upArrow", this._upDownKeyHandler.bind(this));
this._buttonGroup.registerKeyHandler("escape", this._escHandler.bind(this));
this._bindInnerWidgetOptions(this._buttonGroup, "buttonGroupOptions")
},
_updateArrowClass: function() {
var hasArrow = this.option("splitButton") || this.option("showArrowIcon");
this.$element().toggleClass("dx-dropdownbutton-has-arrow", hasArrow)
},
toggle: function(visible) {
if (!this._popup) {
this._renderPopup();
this._renderContent()
}
return this._popup.toggle(visible)
},
open: function() {
return this.toggle(true)
},
close: function() {
return this.toggle(false)
},
_setListOption: function(name, value) {
this._list && this._list.option(name, value)
},
_getDisplayValue: function(item) {
var isPrimitiveItem = !(0, _type.isPlainObject)(item);
var displayValue = isPrimitiveItem ? item : this._displayGetter(item);
return !(0, _type.isPlainObject)(displayValue) ? String((0, _common.ensureDefined)(displayValue, "")) : ""
},
_updateActionButton: function(selectedItem) {
if (this.option("useSelectMode")) {
this.option({
text: this._getDisplayValue(selectedItem),
icon: (0, _type.isPlainObject)(selectedItem) ? selectedItem.icon : void 0
})
}
this._setOptionWithoutOptionChange("selectedItem", selectedItem);
this._setOptionWithoutOptionChange("selectedItemKey", this._keyGetter(selectedItem))
},
_clean: function() {
this._list && this._list.$element().remove();
this._popup && this._popup.$element().remove()
},
_selectedItemKeyChanged: function(value) {
var _this6 = this;
this._setListOption("selectedItemKeys", this.option("useSelectMode") && (0, _type.isDefined)(value) ? [value] : []);
var previousItem = this.option("selectedItem");
this._loadSelectedItem().done((function(selectedItem) {
_this6._updateActionButton(selectedItem);
if (_this6._displayGetter(previousItem) !== _this6._displayGetter(selectedItem)) {
_this6._fireSelectionChangedAction({
previousValue: previousItem,
value: selectedItem
})
}
}))
},
_actionButtonOptionChanged: function(_ref5) {
var name = _ref5.name,
value = _ref5.value;
var newConfig = {};
newConfig[name] = value;
this._buttonGroup.option("items[0]", (0, _extend.extend)({}, this._actionButtonConfig(), newConfig));
this._popup && this._popup.repaint()
},
_selectModeChanged: function(value) {
if (value) {
this._setListOption("selectionMode", "single");
var selectedItemKey = this.option("selectedItemKey");
this._setListOption("selectedItemKeys", (0, _type.isDefined)(selectedItemKey) ? [selectedItemKey] : [])
} else {
this._setListOption("selectionMode", "none");
this.option({
selectedItemKey: void 0,
selectedItem: void 0
})
}
},
_updateItemCollection: function(optionName) {
var _this7 = this;
var selectedItemKey = this.option("selectedItemKey");
this._setListOption("selectedItem", null);
this._setWidgetOption("_list", [optionName]);
if ((0, _type.isDefined)(selectedItemKey)) {
this._loadSelectedItem().done((function(selectedItem) {
_this7._setListOption("selectedItemKeys", [selectedItemKey]);
_this7._setListOption("selectedItem", selectedItem)
})).fail((function(error) {
_this7._setListOption("selectedItemKeys", [])
})).always(this._updateActionButton.bind(this))
}
},
_updateDataSource: function() {
var items = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._dataSource.items();
this._dataSource = void 0;
this._itemsToDataSource(items);
this._updateKeyExpr()
},
_updateKeyExpr: function() {
this._compileKeyGetter();
this._setListOption("keyExpr", this._getKey())
},
focus: function() {
this._buttonGroup.focus()
},
_optionChanged: function(args) {
var _this$_popup;
var name = args.name,
value = args.value;
switch (name) {
case "useSelectMode":
this._selectModeChanged(value);
break;
case "splitButton":
this._updateArrowClass();
this._renderButtonGroup();
break;
case "displayExpr":
this._compileDisplayGetter();
this._setListOption(name, value);
this._updateActionButton(this.option("selectedItem"));
break;
case "keyExpr":
this._updateDataSource();
break;
case "buttonGroupOptions":
this._innerWidgetOptionChanged(this._buttonGroup, args);
break;
case "dropDownOptions":
if ("dropDownOptions.visible" === args.fullName) {
break
}
if (void 0 !== args.value.visible) {
delete args.value.visible
}
this._popupOptionChanged(args);
this._innerWidgetOptionChanged(this._popup, args);
break;
case "opened":
this.toggle(value);
break;
case "focusStateEnabled":
case "hoverStateEnabled":
this._setListOption(name, value);
this._buttonGroup.option(name, value);
this.callBase(args);
break;
case "items":
this._updateDataSource(this.option("items"));
this._updateItemCollection(name);
break;
case "dataSource":
if (Array.isArray(value)) {
this._updateDataSource(this.option("dataSource"))
} else {
this._initDataSource();
this._updateKeyExpr()
}
this._updateItemCollection(name);
break;
case "icon":
case "text":
this._actionButtonOptionChanged(args);
break;
case "showArrowIcon":
this._updateArrowClass();
this._buttonGroup.repaint();
this._popup && this._popup.repaint();
break;
case "width":
case "height":
this.callBase(args);
null === (_this$_popup = this._popup) || void 0 === _this$_popup ? void 0 : _this$_popup.repaint();
break;
case "stylingMode":
this._buttonGroup.option(name, value);
break;
case "itemTemplate":
case "grouped":
case "noDataText":
case "groupTemplate":
case "wrapItemText":
case "useItemTextAsTitle":
this._setListOption(name, value);
break;
case "dropDownContentTemplate":
this._renderContent();
break;
case "selectedItemKey":
this._selectedItemKeyChanged(value);
break;
case "selectedItem":
break;
case "onItemClick":
this._createItemClickAction();
break;
case "onButtonClick":
this._createActionClickAction();
break;
case "onSelectionChanged":
this._createSelectionChangedAction();
break;
case "deferRendering":
this.toggle(this.option("opened"));
break;
case "tabIndex":
this._buttonGroup.option(name, value);
break;
default:
this.callBase(args)
}
}
}).include(_data_helper.default);
(0, _component_registrator.default)("dxDropDownButton", DropDownButton);
var _default = DropDownButton;
exports.default = _default;
module.exports = exports.default;
module.exports.default = exports.default
},
/*!*************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/ui/color_box.js ***!
\*************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
exports.default = void 0;
var _color_box = (obj = __webpack_require__( /*! ./color_box/color_box */ 648), obj && obj.__esModule ? obj : {
default: obj
});
var obj;
var _default = _color_box.default;
exports.default = _default;
module.exports = exports.default;
module.exports.default = exports.default
},
/*!************************************************************************!*\
!*** ./artifacts/transpiled-renovation-npm/ui/color_box/color_view.js ***!
\************************************************************************/
/*! dynamic exports provided */
/*! all exports used */
function(module, exports, __webpack_require__) {
exports.default = void 0;
var _renderer = _interopRequireDefault(__webpack_require__( /*! ../../core/renderer */ 2));
var _events_engine = _interopRequireDefault(__webpack_require__( /*! ../../events/core/events_engine */ 5));
var _translator = __webpack_require__( /*! ../../animation/translator */ 33);
var _extend = __webpack_require__( /*! ../../core/utils/extend */ 0);
var _color = _interopRequireDefault(__webpack_require__( /*! ../../color */ 100));
var _message = _interopRequireDefault(__webpack_require__( /*! ../../localization/message */ 10));
var _devices = _interopRequireDefault(__webpack_require__( /*! ../../core/devices */ 13));
var _component_registrator = _interopRequireDefault(__webpack_require__( /*! ../../core/component_registrator */ 8));
var _editor = _interopRequireDefault(__webpack_require__( /*! ../editor/editor */ 53));
var _number_box = _interopRequireDefault(__webpack_require__( /*! ../number_box */ 122));
var _text_box = _interopRequireDefault(__webpack_require__( /*! ../text_box */ 102));
var _draggable = _interopRequireDefault(__webpack_require__( /*! ../draggable */ 177));
var _index = __webpack_require__( /*! ../../events/utils/index */ 9);
var _click = __webpack_require__( /*! ../../events/click */ 22);
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
default: obj
}
}
var COLOR_VIEW_PALETTE_GRADIENT_CLASS = "dx-colorview-palette-gradient";
var COLOR_VIEW_PALETTE_GRADIENT_WHITE_CLASS = "dx-colorview-palette-gradient-white";
var COLOR_VIEW_PALETTE_GRADIENT_BLACK_CLASS = "dx-colorview-palette-gradient-black";
var COLOR_VIEW_COLOR_PREVIEW = "dx-colorview-color-preview";
var COLOR_VIEW_COLOR_PREVIEW_COLOR_CURRENT = "dx-colorview-color-preview-color-current";
var COLOR_VIEW_COLOR_PREVIEW_COLOR_NEW = "dx-colorview-color-preview-color-new";
var ColorView = _editor.default.inherit({
_supportedKeys: function() {
var isRTL = this.option("rtlEnabled");
var that = this;
var getHorizontalPaletteStep = function(e) {
var step = 100 / that._paletteWidth;
if (e.shiftKey) {
step *= that.option("keyStep")
}
step = step > 1 ? step : 1;
return Math.round(step)
};
var updateHorizontalPaletteValue = function(step) {
var value = that._currentColor.hsv.s + step;
if (value > 100) {
value = 100
} else if (value < 0) {
value = 0
}
that._currentColor.hsv.s = value;
updatePaletteValue()
};
var getVerticalPaletteStep = function(e) {
var step = 100 / that._paletteHeight;
if (e.shiftKey) {
step *= that.option("keyStep")
}
step = step > 1 ? step : 1;
return Math.round(step)
};
var updateVerticalPaletteValue = function(step) {
var value = that._currentColor.hsv.v + step;
if (value > 100) {
value = 100
} else if (value < 0) {
value = 0
}
that._currentColor.hsv.v = value;
updatePaletteValue()
};
function updatePaletteValue() {
that._placePaletteHandle();
that._updateColorFromHsv(that._currentColor.hsv.h, that._currentColor.hsv.s, that._currentColor.hsv.v)
}
var getHueScaleStep = function(e) {
var step = 360 / (that._hueScaleWrapperHeight - that._hueScaleHandleHeight);
if (e.shiftKey) {
step *= that.option("keyStep")
}
step = step > 1 ? step : 1;
return step
};
var updateHueScaleValue = function(step) {
that._currentColor.hsv.h += step;
that._placeHueScaleHandle();
var handleLocation = (0, _translator.locate)(that._$hueScaleHandle);
that._updateColorHue(handleLocation.top + that._hueScaleHandleHeight / 2)
};
var getAlphaScaleStep = function(e) {
var step = 1 / that._alphaChannelScaleWorkWidth;
if (e.shiftKey) {
step *= that.option("keyStep")
}
step = step > .01 ? step : .01;
step = isRTL ? -step : step;
return step
};
var updateAlphaScaleValue = function(step) {
that._currentColor.a += step;
that._placeAlphaChannelHandle();
var handleLocation = (0, _translator.locate)(that._$alphaChannelHandle);
that._calculateColorTransparencyByScaleWidth(handleLocation.left + that._alphaChannelHandleWidth / 2)
};
return (0, _extend.extend)(this.callBase(), {
upArrow: function(e) {
e.preventDefault();
e.stopPropagation();
if ((0, _index.isCommandKeyPressed)(e)) {
if (this._currentColor.hsv.h <= 360 && !this._isTopColorHue) {
this._saveValueChangeEvent(e);
updateHueScaleValue(getHueScaleStep(e))
}
} else if (this._currentColor.hsv.v < 100) {
this._saveValueChangeEvent(e);
updateVerticalPaletteValue(getVerticalPaletteStep(e))
}
},
downArrow: function(e) {
e.preventDefault();
e.stopPropagation();
if ((0, _index.isCommandKeyPressed)(e)) {
if (this._currentColor.hsv.h >= 0) {
if (this._isTopColorHue) {
this._currentColor.hsv.h = 360
}
this._saveValueChangeEvent(e);
updateHueScaleValue(-getHueScaleStep(e))
}
} else if (this._currentColor.hsv.v > 0) {
this._saveValueChangeEvent(e);
updateVerticalPaletteValue(-getVerticalPaletteStep(e))
}
},
rightArrow: function(e) {
e.preventDefault();
e.stopPropagation();
if ((0, _index.isCommandKeyPressed)(e)) {
if (isRTL ? this._currentColor.a < 1 : this._currentColor.a > 0 && this.option("editAlphaChannel")) {
this._saveValueChangeEvent(e);
updateAlphaScaleValue(-getAlphaScaleStep(e))
}
} else if (this._currentColor.hsv.s < 100) {
this._saveValueChangeEvent(e);
updateHorizontalPaletteValue(getHorizontalPaletteStep(e))
}
},
leftArrow: function(e) {
e.preventDefault();
e.stopPropagation();
if ((0, _index.isCommandKeyPressed)(e)) {
if (isRTL ? this._currentColor.a > 0 : this._currentColor.a < 1 && this.option("editAlphaChannel")) {
this._saveValueChangeEvent(e);
updateAlphaScaleValue(getAlphaScaleStep(e))
}
} else if (this._currentColor.hsv.s > 0) {
this._saveValueChangeEvent(e);
updateHorizontalPaletteValue(-getHorizontalPaletteStep(e))
}
},
enter: function(e) {
this._fireEnterKeyPressed(e)
}
})
},
_getDefaultOptions: function() {
return (0, _extend.extend)(this.callBase(), {
value: null,
matchValue: null,
onEnterKeyPressed: void 0,
editAlphaChannel: false,
keyStep: 1,
stylingMode: void 0
})
},
_defaultOptionsRules: function() {
return this.callBase().concat([{
device: function() {
return "desktop" === _devices.default.real().deviceType && !_devices.default.isSimulator()
},
options: {
focusStateEnabled: true
}
}])
},
_init: function() {
this.callBase();
this._initColorAndOpacity();
this._initEnterKeyPressedAction()
},
_initEnterKeyPressedAction: function() {
this._onEnterKeyPressedAction = this._createActionByOption("onEnterKeyPressed")
},
_fireEnterKeyPressed: function(e) {
if (!this._onEnterKeyPressedAction) {
return
}
this._onEnterKeyPressedAction({
event: e
})
},
_initColorAndOpacity: function() {
this._setCurrentColor(this.option("value"))
},
_setCurrentColor: function(value) {
value = value || "#000000";
var newColor = new _color.default(value);
if (!newColor.colorIsInvalid) {
if (!this._currentColor || this._makeRgba(this._currentColor) !== this._makeRgba(newColor)) {
this._currentColor = newColor;
if (this._$currentColor) {
this._makeTransparentBackground(this._$currentColor, newColor)
}
}
} else {
this.option("value", this._currentColor.baseColor)
}
},
_setBaseColor: function(value) {
var color = value || "#000000";
var newColor = new _color.default(color);
if (!newColor.colorIsInvalid) {
var isBaseColorChanged = this._makeRgba(this.option("matchValue") !== this._makeRgba(newColor));
if (isBaseColorChanged) {
if (this._$baseColor) {
this._makeTransparentBackground(this._$baseColor, newColor)
}
}
}
},
_initMarkup: function() {
this.callBase();
this.$element().addClass("dx-colorview");
this._renderColorPickerContainer()
},
_render: function() {
this.callBase();
this._renderPalette();
this._renderHueScale();
this._renderControlsContainer();
this._renderControls();
this._renderAlphaChannelElements()
},
_makeTransparentBackground: function($el, color) {
if (!(color instanceof _color.default)) {
color = new _color.default(color)
}
$el.css("backgroundColor", this._makeRgba(color))
},
_makeRgba: function(color) {
if (!(color instanceof _color.default)) {
color = new _color.default(color)
}
return "rgba(" + [color.r, color.g, color.b, color.a].join(", ") + ")"
},
_renderValue: function() {
this.callBase(this.option("editAlphaChannel") ? this._makeRgba(this._currentColor) : this.option("value"))
},
_renderColorPickerContainer: function() {
var $parent = this.$element();
this._$colorPickerContainer = (0, _renderer.default)("
").addClass("dx-colorview-container").appendTo($parent);
this._renderHtmlRows()
},
_renderHtmlRows: function(updatedOption) {
var $renderedRows = this._$colorPickerContainer.find(".dx-colorview-container-row");
var renderedRowsCount = $renderedRows.length;
var rowCount = this.option("editAlphaChannel") ? 2 : 1;
var delta = renderedRowsCount - rowCount;
if (delta > 0) {
$renderedRows.eq(-1).remove()
}
if (delta < 0) {
delta = Math.abs(delta);
var rows = [];
var i;
for (i = 0; i < delta; i++) {
rows.push((0, _renderer.default)("
").addClass("dx-colorview-container-row"))
}
if (renderedRowsCount) {
for (i = 0; i < rows.length; i++) {
$renderedRows.eq(0).after(rows[i])
}
} else {
this._$colorPickerContainer.append(rows)
}
}
},
_renderHtmlCellInsideRow: function(index, $rowParent, additionalClass) {
return (0, _renderer.default)("
").addClass("dx-colorview-container-cell").addClass(additionalClass).appendTo($rowParent.find(".dx-colorview-container-row").eq(index))
},
_renderPalette: function() {
var $paletteCell = this._renderHtmlCellInsideRow(0, this._$colorPickerContainer, "dx-colorview-palette-cell");
var $paletteGradientWhite = (0, _renderer.default)("
").addClass([COLOR_VIEW_PALETTE_GRADIENT_CLASS, COLOR_VIEW_PALETTE_GRADIENT_WHITE_CLASS].join(" "));
var $paletteGradientBlack = (0, _renderer.default)("
").addClass([COLOR_VIEW_PALETTE_GRADIENT_CLASS, COLOR_VIEW_PALETTE_GRADIENT_BLACK_CLASS].join(" "));
this._$palette = (0, _renderer.default)("
").addClass("dx-colorview-palette").css("backgroundColor", this._currentColor.getPureColor().toHex()).appendTo($paletteCell);
this._paletteHeight = this._$palette.height();
this._paletteWidth = this._$palette.width();
this._renderPaletteHandle();
this._$palette.append([$paletteGradientWhite, $paletteGradientBlack])
},
_renderPaletteHandle: function() {
var _this = this;
this._$paletteHandle = (0, _renderer.default)("
").addClass("dx-colorview-palette-handle").appendTo(this._$palette);
this._createComponent(this._$paletteHandle, _draggable.default, {
contentTemplate: null,
boundary: this._$palette,
allowMoveByClick: true,
boundOffset: function() {
return -this._paletteHandleHeight / 2
}.bind(this),
onDragMove: function(_ref) {
var event = _ref.event;
var paletteHandlePosition = (0, _translator.locate)(_this._$paletteHandle);
_this._updateByDrag = true;
_this._saveValueChangeEvent(event);
_this._updateColorFromHsv(_this._currentColor.hsv.h, _this._calculateColorSaturation(paletteHandlePosition), _this._calculateColorValue(paletteHandlePosition))
}
});
this._paletteHandleWidth = this._$paletteHandle.width();
this._paletteHandleHeight = this._$paletteHandle.height();
this._placePaletteHandle()
},
_placePaletteHandle: function() {
(0, _translator.move)(this._$paletteHandle, {
left: Math.round(this._paletteWidth * this._currentColor.hsv.s / 100 - this._paletteHandleWidth / 2),
top: Math.round(this._paletteHeight - this._paletteHeight * this._currentColor.hsv.v / 100 - this._paletteHandleHeight / 2)
})
},
_calculateColorValue: function(paletteHandlePosition) {
var value = Math.floor(paletteHandlePosition.top + this._paletteHandleHeight / 2);
return 100 - Math.round(100 * value / this._paletteHeight)
},
_calculateColorSaturation: function(paletteHandlePosition) {
var saturation = Math.floor(paletteHandlePosition.left + this._paletteHandleWidth / 2);
return Math.round(100 * saturation / this._paletteWidth)
},
_updateColorFromHsv: function(hue, saturation, value) {
var a = this._currentColor.a;
this._currentColor = new _color.default("hsv(" + [hue, saturation, value].join(",") + ")");
this._currentColor.a = a;
this._updateColorParamsAndColorPreview();
this.applyColor()
},
_renderHueScale: function() {
var $hueScaleCell = this._renderHtmlCellInsideRow(0, this._$colorPickerContainer, "dx-colorview-hue-scale-cell");
this._$hueScaleWrapper = (0, _renderer.default)("
").addClass("dx-colorview-hue-scale-wrapper").appendTo($hueScaleCell);
this._$hueScale = (0, _renderer.default)("
").addClass("dx-colorview-hue-scale").appendTo(this._$hueScaleWrapper);
this._hueScaleHeight = this._$hueScale.height();
this._hueScaleWrapperHeight = this._$hueScaleWrapper.outerHeight();
this._renderHueScaleHandle()
},
_renderHueScaleHandle: function() {
var _this2 = this;
this._$hueScaleHandle = (0, _renderer.default)("
").addClass("dx-colorview-hue-scale-handle").appendTo(this._$hueScaleWrapper);
this._createComponent(this._$hueScaleHandle, _draggable.default, {
contentTemplate: null,
boundary: this._$hueScaleWrapper,
allowMoveByClick: true,
dragDirection: "vertical",
onDragMove: function(_ref2) {
var event = _ref2.event;
_this2._updateByDrag = true;
_this2._saveValueChangeEvent(event);
_this2._updateColorHue((0, _translator.locate)(_this2._$hueScaleHandle).top + _this2._hueScaleHandleHeight / 2)
}
});
this._hueScaleHandleHeight = this._$hueScaleHandle.height();
this._placeHueScaleHandle()
},
_placeHueScaleHandle: function() {
var hueScaleHeight = this._hueScaleWrapperHeight;
var handleHeight = this._hueScaleHandleHeight;
var top = (hueScaleHeight - handleHeight) * (360 - this._currentColor.hsv.h) / 360;
if (hueScaleHeight < top + handleHeight) {
top = hueScaleHeight - handleHeight
}
if (top < 0) {
top = 0
}(0, _translator.move)(this._$hueScaleHandle, {
top: Math.round(top)
})
},
_updateColorHue: function(handlePosition) {
var hue = 360 - Math.round(360 * (handlePosition - this._hueScaleHandleHeight / 2) / (this._hueScaleWrapperHeight - this._hueScaleHandleHeight));
var saturation = this._currentColor.hsv.s;
var value = this._currentColor.hsv.v;
this._isTopColorHue = false;
hue = hue < 0 ? 0 : hue;
if (hue >= 360) {
this._isTopColorHue = true;
hue = 0
}
this._updateColorFromHsv(hue, saturation, value);
this._$palette.css("backgroundColor", this._currentColor.getPureColor().toHex())
},
_renderControlsContainer: function() {
var $controlsContainerCell = this._renderHtmlCellInsideRow(0, this._$colorPickerContainer);
this._$controlsContainer = (0, _renderer.default)("
").addClass("dx-colorview-controls-container").appendTo($controlsContainerCell)
},
_renderControls: function() {
this._renderColorsPreview();
this._renderRgbInputs();
this._renderHexInput()
},
_renderColorsPreview: function() {
var $colorsPreviewContainer = (0, _renderer.default)("
").addClass("dx-colorview-color-preview-container").appendTo(this._$controlsContainer);
var $colorsPreviewContainerInner = (0, _renderer.default)("
").addClass("dx-colorview-color-preview-container-inner").appendTo($colorsPreviewContainer);
this._$currentColor = (0, _renderer.default)("
").addClass([COLOR_VIEW_COLOR_PREVIEW, COLOR_VIEW_COLOR_PREVIEW_COLOR_NEW].join(" "));
this._$baseColor = (0, _renderer.default)("
").addClass([COLOR_VIEW_COLOR_PREVIEW, COLOR_VIEW_COLOR_PREVIEW_COLOR_CURRENT].join(" "));
this._makeTransparentBackground(this._$baseColor, this.option("matchValue"));
this._makeTransparentBackground(this._$currentColor, this._currentColor);
$colorsPreviewContainerInner.append([this._$baseColor, this._$currentColor])
},
_renderAlphaChannelElements: function() {
if (this.option("editAlphaChannel")) {
this._$colorPickerContainer.find(".dx-colorview-container-row").eq(1).addClass("dx-colorview-alpha-channel-row");
this._renderAlphaChannelScale();
this._renderAlphaChannelInput()
}
},
_renderRgbInputs: function() {
this._rgbInputsWithLabels = [this._renderEditorWithLabel({
editorType: _number_box.default,
value: this._currentColor.r,
onValueChanged: this._updateColor.bind(this, false),
labelText: "R",
labelAriaText: _message.default.format("dxColorView-ariaRed"),
labelClass: "dx-colorview-label-red"
}), this._renderEditorWithLabel({
editorType: _number_box.default,
value: this._currentColor.g,
onValueChanged: this._updateColor.bind(this, false),
labelText: "G",
labelAriaText: _message.default.format("dxColorView-ariaGreen"),
labelClass: "dx-colorview-label-green"
}), this._renderEditorWithLabel({
editorType: _number_box.default,
value: this._currentColor.b,
onValueChanged: this._updateColor.bind(this, false),
labelText: "B",
labelAriaText: _message.default.format("dxColorView-ariaBlue"),
labelClass: "dx-colorview-label-blue"
})];
this._$controlsContainer.append(this._rgbInputsWithLabels);
this._rgbInputs = [this._rgbInputsWithLabels[0].find(".dx-numberbox").dxNumberBox("instance"), this._rgbInputsWithLabels[1].find(".dx-numberbox").dxNumberBox("instance"), this._rgbInputsWithLabels[2].find(".dx-numberbox").dxNumberBox("instance")]
},
_renderEditorWithLabel: function(options) {
var _this3 = this;
var $editor = (0, _renderer.default)("
");
var $label = (0, _renderer.default)("