angular-sunburst-radar-chart
Version:
A Sunburst Radar chart with SVG,No Dependencies
51 lines • 6.79 kB
JavaScript
export function hashCode(obj) {
let h = 0;
obj = getOptionsOrEmpty(obj);
let s = JSON.stringify(obj);
for (let i = 0; i < s.length; i++) {
h = Math.imul(31, h) + s.charCodeAt(i) | 0;
}
return h;
}
export function getOptionsOrEmpty(options) {
return options || {};
}
export function getItemTitle(item) {
item = item || { name: '', value: '' };
const dash = item.name.length > 0 ? '-' : '';
return item.name + dash + item.value;
}
export function clone(obj) {
return JSON.parse(JSON.stringify(obj));
}
export function generateRandomColor() {
const letters = '0123456789ABCDEF';
let color = '#';
for (let i = 0; i < 6; i++) {
color += letters[(Math.floor(Math.random() * 16))];
}
return color;
}
export function formatItems(items) {
return items.map(item => {
if (!!item.children && item.children.length > 0) {
}
else {
item['children'] = [];
item['children'].push({ name: '', value: 0 });
}
return item;
});
}
export function getFormattedAngle(angle, center) {
const [centerX, centerY] = [center.x, center.y];
return 'rotate(' + angle + ' ' + centerX + ' ' + centerY + ')';
}
export function getCurrentPointFromEvent(evt) {
let [x, y] = [evt.clientX, evt.clientY];
if (evt.targetTouches && evt.targetTouches[0]) {
[x, y] = [evt.targetTouches[0].pageX, evt.targetTouches[0].pageY];
}
return { x, y };
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLXN1bmJ1cnN0LXJhZGFyLWNoYXJ0LyIsInNvdXJjZXMiOlsibGliL3V0aWxzL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxRQUFRLENBQUMsR0FBRztJQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDVixHQUFHLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFN0IsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUc1QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNqQyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDNUM7SUFHRCxPQUFPLENBQUMsQ0FBQztBQUNYLENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsT0FBTztJQUN2QyxPQUFPLE9BQU8sSUFBSSxFQUFFLENBQUM7QUFDdkIsQ0FBQztBQUdELE1BQU0sVUFBVSxZQUFZLENBQUMsSUFBSTtJQUMvQixJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFDLENBQUM7SUFFckMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUU3QyxPQUFPLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7QUFFdkMsQ0FBQztBQUVELE1BQU0sVUFBVSxLQUFLLENBQUMsR0FBRztJQUV2QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CO0lBQ2pDLE1BQU0sT0FBTyxHQUFHLGtCQUFrQixDQUFDO0lBR25DLElBQUksS0FBSyxHQUFHLEdBQUcsQ0FBQztJQUVoQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQzFCLEtBQUssSUFBSSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDcEQ7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFDLEtBQUs7SUFFL0IsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBRXRCLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxFQUFFO1NBRTlDO2FBQU07WUFFTCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDO1NBQzdDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUMsQ0FBQztBQUVMLENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsS0FBSyxFQUFFLE1BQU07SUFDN0MsTUFBTSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hELE9BQU8sU0FBUyxHQUFHLEtBQUssR0FBRyxHQUFHLEdBQUcsT0FBTyxHQUFHLEdBQUcsR0FBRyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQ2pFLENBQUM7QUFFRCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsR0FBRztJQUUxQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEMsSUFBSSxHQUFHLENBQUMsYUFBYSxJQUFJLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDN0MsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ25FO0lBQ0QsT0FBTyxFQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQztBQUVoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGhhc2hDb2RlKG9iaikge1xyXG4gIGxldCBoID0gMDtcclxuICBvYmogPSBnZXRPcHRpb25zT3JFbXB0eShvYmopO1xyXG5cclxuICBsZXQgcyA9IEpTT04uc3RyaW5naWZ5KG9iaik7XHJcblxyXG5cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHMubGVuZ3RoOyBpKyspIHtcclxuICAgIGggPSBNYXRoLmltdWwoMzEsIGgpICsgcy5jaGFyQ29kZUF0KGkpIHwgMDtcclxuICB9XHJcblxyXG5cclxuICByZXR1cm4gaDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldE9wdGlvbnNPckVtcHR5KG9wdGlvbnMpIHtcclxuICByZXR1cm4gb3B0aW9ucyB8fCB7fTtcclxufVxyXG5cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRJdGVtVGl0bGUoaXRlbSkge1xyXG4gIGl0ZW0gPSBpdGVtIHx8IHtuYW1lOiAnJywgdmFsdWU6ICcnfTtcclxuXHJcbiAgY29uc3QgZGFzaCA9IGl0ZW0ubmFtZS5sZW5ndGggPiAwID8gJy0nIDogJyc7XHJcblxyXG4gIHJldHVybiBpdGVtLm5hbWUgKyBkYXNoICsgaXRlbS52YWx1ZTtcclxuXHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjbG9uZShvYmopIHtcclxuXHJcbiAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkob2JqKSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZVJhbmRvbUNvbG9yKCkge1xyXG4gIGNvbnN0IGxldHRlcnMgPSAnMDEyMzQ1Njc4OUFCQ0RFRic7XHJcblxyXG5cclxuICBsZXQgY29sb3IgPSAnIyc7XHJcblxyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgNjsgaSsrKSB7XHJcbiAgICBjb2xvciArPSBsZXR0ZXJzWyhNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxNikpXTtcclxuICB9XHJcbiAgcmV0dXJuIGNvbG9yO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0SXRlbXMoaXRlbXMpIHtcclxuXHJcbiAgcmV0dXJuIGl0ZW1zLm1hcChpdGVtID0+IHtcclxuXHJcbiAgICBpZiAoISFpdGVtLmNoaWxkcmVuICYmIGl0ZW0uY2hpbGRyZW4ubGVuZ3RoPjApIHtcclxuXHJcbiAgICB9IGVsc2Uge1xyXG5cclxuICAgICAgaXRlbVsnY2hpbGRyZW4nXSA9IFtdO1xyXG4gICAgICBpdGVtWydjaGlsZHJlbiddLnB1c2goe25hbWU6ICcnLCB2YWx1ZTogMH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGl0ZW07XHJcbiAgfSk7XHJcblxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybWF0dGVkQW5nbGUoYW5nbGUsIGNlbnRlcikge1xyXG4gIGNvbnN0IFtjZW50ZXJYLCBjZW50ZXJZXSA9IFtjZW50ZXIueCwgY2VudGVyLnldO1xyXG4gIHJldHVybiAncm90YXRlKCcgKyBhbmdsZSArICcgJyArIGNlbnRlclggKyAnICcgKyBjZW50ZXJZICsgJyknO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q3VycmVudFBvaW50RnJvbUV2ZW50KGV2dCkge1xyXG5cclxuICBsZXQgW3gsIHldID0gW2V2dC5jbGllbnRYLCBldnQuY2xpZW50WV07XHJcbiAgaWYgKGV2dC50YXJnZXRUb3VjaGVzICYmIGV2dC50YXJnZXRUb3VjaGVzWzBdKSB7XHJcbiAgICBbeCwgeV0gPSBbZXZ0LnRhcmdldFRvdWNoZXNbMF0ucGFnZVgsIGV2dC50YXJnZXRUb3VjaGVzWzBdLnBhZ2VZXTtcclxuICB9XHJcbiAgcmV0dXJuIHt4LCB5fTtcclxuXHJcbn1cclxuIl19