@progress/kendo-charts
Version:
Kendo UI platform-independent Charts library
116 lines (89 loc) • 2.83 kB
JavaScript
import { getSupportedFeatures } from '../common';
/* eslint-disable arrow-body-style, no-useless-escape */
export var extend = Object.assign;
export var proxy = function (method, context) {
return method.bind(context);
};
export var convertToHtml = function (html) {
var div = document.createElement("div");
div.innerHTML = html;
return div.firstChild;
};
export var appendHtml = function (html, element) {
var div = document.createElement('div');
div.innerHTML = html;
// use childNodes instead of children
// to cover text nodes as well
while (div.childNodes.length > 0) {
element.appendChild(div.childNodes[0]);
}
};
export var removeChildren = function (element) {
while (element.firstChild) {
element.removeChild(element.firstChild);
}
};
export var prepend = function (element, originElement) {
originElement.insertBefore(element, originElement.firstChild);
};
export var wrapInner = function (parent, wrapper) {
parent.appendChild(wrapper);
while (parent.firstChild !== wrapper) {
wrapper.appendChild(parent.firstChild);
}
};
export var toHyphens = function (str) {
var result = str.replace(/([a-z][A-Z])/g, function(g) {
return g.charAt(0) + '-' + g.charAt(1).toLowerCase();
});
return result;
};
export var toPixels = function (value) {
var result;
if (value && String(value).endsWith("px")) {
result = value;
} else {
result = String(value) + "px";
}
return result;
};
export var hasNativeScrolling = function (userAgent) {
var ref = getSupportedFeatures(userAgent);
var mobileOS = ref.mobileOS;
return mobileOS.ios || mobileOS.android;
};
export var setDefaultEvents = function (type, events) {
var proto = type.prototype;
if (proto.events) {
events.forEach(function (event) {
if (proto.events.indexOf(event) < 0) {
proto.events.push(event);
}
});
} else {
proto.events = events;
}
};
export var wheelDeltaY = function (e) {
var deltaY = e.wheelDeltaY;
var delta;
if (e.wheelDelta) { // Webkit and IE
if (deltaY === undefined || deltaY) { // IE does not have deltaY, thus always scroll (horizontal scrolling is treated as vertical)
delta = e.wheelDelta;
}
} else if (e.detail && e.axis === e.VERTICAL_AXIS) { // Firefox and Opera
delta = (-e.detail) * 10;
}
return delta;
};
export var renderPos = function (pos) {
var result = [];
if (pos) {
var parts = toHyphens(pos).split("-");
for (var i = 0; i < parts.length; i++) {
result.push("k-pos-" + parts[i]);
}
}
return result.join(" ");
};
/* eslint-enable arrow-body-style, no-useless-escape */