UNPKG

angular-sunburst-radar-chart

Version:
67 lines 11.3 kB
import { __read, __spread } from "tslib"; import { polarToCartesian } from './trignometry'; function getRadiusForBorderAndText(radius, borderHeight) { var borderRadius = radius + borderHeight; var textRadius = radius + ((borderRadius - radius) / 2); return [borderRadius, textRadius]; } export function getMaxDepth(items, currentLevel) { if (currentLevel === void 0) { currentLevel = 0; } var depths = []; if (items && items.length > 0) { var nextLevel_1 = currentLevel + 1; depths = items .filter(function (item) { return !!item.children; }) .filter(function (item) { return item.children.length > 0; }) .map(function (item) { return getMaxDepth(item.children, nextLevel_1); }); } return depths.length !== 0 ? Math.max.apply(Math, __spread(depths)) : currentLevel; } export function getGlobalPositions(_a) { var size = _a.size, maxScore = _a.maxScore, items = _a.items; var center = { x: size / 2, y: size / 2 }; var maxDepth = getMaxDepth(items); var totalLevels = maxDepth + 1; var innerCircleRadius = Math.abs(size / 5.33); var totalRadiusToBeDrawn = 2 * Math.abs(size / 5.33); var borderHeight = 0.0375 * size; var everyLevelRadius = totalRadiusToBeDrawn / totalLevels; var levels = []; for (var i = 1; i <= totalLevels; i++) { var startRadius = i * everyLevelRadius; var _b = __read(getRadiusForBorderAndText(startRadius, borderHeight), 2), endRadius = _b[0], textRadius = _b[1]; levels.push({ startRadius: startRadius, endRadius: endRadius, textRadius: textRadius }); } var innerRadius = innerCircleRadius; var _c = __read(getRadiusForBorderAndText(innerRadius, borderHeight), 2), innerRadiusBorder = _c[0], innerTextRadius = _c[1]; var middleRadius = innerCircleRadius * 2; var _d = __read(getRadiusForBorderAndText(middleRadius, borderHeight), 2), middleRadiusBorder = _d[0], middleTextRadius = _d[1]; var outerRadius = middleRadius + borderHeight; var _e = __read(getRadiusForBorderAndText(outerRadius, borderHeight * 2), 2), outerRadiusBorder = _e[0], outerTextRadius = _e[1]; var textSize = 0.0175 * size; var outerTextSize = 0.0225 * size; var result = { textSize: textSize, outerTextSize: outerTextSize, levels: levels, innerRadius: innerRadius, innerRadiusBorder: innerRadiusBorder, innerTextRadius: innerTextRadius, middleRadius: middleRadius, middleTextRadius: middleTextRadius, middleRadiusBorder: middleRadiusBorder, outerRadius: outerRadius, outerRadiusBorder: outerRadiusBorder, outerTextRadius: outerTextRadius, center: center }; return result; } export function calculatePointBetween(_a) { var centerX = _a.centerX, centerY = _a.centerY, startAngle = _a.startAngle, middleAngle = _a.middleAngle, endAngle = _a.endAngle, radius = _a.radius; var start = polarToCartesian(centerX, centerY, radius, startAngle); var middle = polarToCartesian(centerX, centerY, radius, middleAngle); var end = polarToCartesian(centerX, centerY, radius, endAngle); return { start: start, middle: middle, end: end }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb25zLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci1zdW5idXJzdC1yYWRhci1jaGFydC8iLCJzb3VyY2VzIjpbImxpYi91dGlscy9wb3NpdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQXVCL0MsU0FBUyx5QkFBeUIsQ0FBQyxNQUFNLEVBQUUsWUFBWTtJQUNyRCxJQUFNLFlBQVksR0FBRyxNQUFNLEdBQUcsWUFBWSxDQUFDO0lBQzNDLElBQU0sVUFBVSxHQUFHLE1BQU0sR0FBRyxDQUFDLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBRTFELE9BQU8sQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFFcEMsQ0FBQztBQUdELE1BQU0sVUFBVSxXQUFXLENBQUMsS0FBSyxFQUFFLFlBQWdCO0lBQWhCLDZCQUFBLEVBQUEsZ0JBQWdCO0lBRWpELElBQUksTUFBTSxHQUFDLEVBQUUsQ0FBQztJQUNkLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQzdCLElBQU0sV0FBUyxHQUFHLFlBQVksR0FBRyxDQUFDLENBQUM7UUFDbkMsTUFBTSxHQUFHLEtBQUs7YUFDWCxNQUFNLENBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBZixDQUFlLENBQUM7YUFDL0IsTUFBTSxDQUFDLFVBQUEsSUFBSSxJQUFJLE9BQUEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUF4QixDQUF3QixDQUFDO2FBQ3hDLEdBQUcsQ0FBQyxVQUFBLElBQUksSUFBSSxPQUFBLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFdBQVMsQ0FBQyxFQUFyQyxDQUFxQyxDQUFDLENBQUM7S0FHdkQ7SUFFRCxPQUFPLE1BQU0sQ0FBQyxNQUFN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QUMsQ0FBQztJQUVqRSxPQUFPLEVBQUMsS0FBSyxPQUFBLEVBQUUsTUFBTSxRQUFBLEVBQUUsR0FBRyxLQUFBLEVBQUMsQ0FBQztBQUU5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtwb2xhclRvQ2FydGVzaWFufSBmcm9tICcuL3RyaWdub21ldHJ5JztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUG9pbnQge1xyXG4gIHg6IG51bWJlcjtcclxuICB5OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgR2xvYmFsUG9zaXRpb24ge1xyXG4gIGlubmVyUmFkaXVzO1xyXG4gIGlubmVyUmFkaXVzQm9yZGVyO1xyXG4gIGlubmVyVGV4dFJhZGl1cztcclxuICBtaWRkbGVSYWRpdXM7XHJcbiAgbWlkZGxlVGV4dFJhZGl1cztcclxuICBtaWRkbGVSYWRpdXNCb3JkZXI7XHJcbiAgb3V0ZXJSYWRpdXM7XHJcbiAgb3V0ZXJSYWRpdXNCb3JkZXI7XHJcbiAgb3V0ZXJUZXh0UmFkaXVzO1xyXG4gIHRleHRTaXplO1xyXG4gIG91dGVyVGV4dFNpemU7XHJcbiAgbGV2ZWxzO1xyXG4gIGNlbnRlcjogUG9pbnQ7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFJhZGl1c0ZvckJvcmRlckFuZFRleHQocmFkaXVzLCBib3JkZXJIZWlnaHQpIHtcclxuICBjb25zdCBib3JkZXJSYWRpdXMgPSByYWRpdXMgKyBib3JkZXJIZWlnaHQ7XHJcbiAgY29uc3QgdGV4dFJhZGl1cyA9IHJhZGl1cyArICgoYm9yZGVyUmFkaXVzIC0gcmFkaXVzKSAvIDIpO1xyXG5cclxuICByZXR1cm4gW2JvcmRlclJhZGl1cywgdGV4dFJhZGl1c107XHJcblxyXG59XHJcblxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldE1heERlcHRoKGl0ZW1zLCBjdXJyZW50TGV2ZWwgPSAwKSB7XHJcblxyXG4gIGxldCBkZXB0aHM9W107XHJcbiAgaWYgKGl0ZW1zICYmIGl0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgIGNvbnN0IG5leHRMZXZlbCA9IGN1cnJlbnRMZXZlbCArIDE7XHJcbiAgICBkZXB0aHMgPSBpdGVtc1xyXG4gICAgICAuZmlsdGVyKGl0ZW0gPT4gISFpdGVtLmNoaWxkcmVuKVxyXG4gICAgICAuZmlsdGVyKGl0ZW0gPT4gaXRlbS5jaGlsZHJlbi5sZW5ndGggPiAwKVxyXG4gICAgICAubWFwKGl0ZW0gPT4gZ2V0TWF4RGVwdGgoaXRlbS5jaGlsZHJlbiwgbmV4dExldmVsKSk7XHJcblxyXG5cclxuICB9XHJcblxyXG4gIHJldHVybiBkZXB0aHMubGVuZ3RoICE9PSAwID8gTWF0aC5tYXgoLi4uZGVwdGhzKSA6IGN1cnJlbnRMZXZlbDtcclxuXHJcblxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0R2xvYmFsUG9zaXRpb25zKHtzaXplLCBtYXhTY29yZSwgaXRlbXN9KSB7XHJcblxyXG5cclxuICBjb25zdCBjZW50ZXI6IFBvaW50ID0ge3g6IHNpemUgLyAyLCB5OiBzaXplIC8gMn07XHJcbiAgY29uc3QgbWF4RGVwdGggPSBnZXRNYXhEZXB0aChpdGVtcyk7XHJcblxyXG4gIGNvbnN0IHRvdGFsTGV2ZWxzID0gbWF4RGVwdGggKyAxO1xyXG5cclxuICBjb25zdCBpbm5lckNpcmNsZVJhZGl1cyA9IE1hdGguYWJzKHNpemUgLyA1LjMzKTtcclxuXHJcblxyXG4gIGNvbnN0IHRvdGFsUmFkaXVzVG9CZURyYXduID0gMiAqIE1hdGguYWJzKHNpemUgLyA1LjMzKTtcclxuICBjb25zdCBib3JkZXJIZWlnaHQgPSAwLjAzNzUgKiBzaXplO1xyXG5cclxuICBjb25zdCBldmVyeUxldmVsUmFkaXVzID0gdG90YWxSYWRpdXNUb0JlRHJhd24gLyB0b3RhbExldmVscztcclxuXHJcbiAgY29uc3QgbGV2ZWxzID0gW107XHJcbiAgZm9yIChsZXQgaSA9IDE7IGkgPD0gdG90YWxMZXZlbHM7IGkrKykge1xyXG5cclxuICAgIGNvbnN0IHN0YXJ0UmFkaXVzID0gaSAqIGV2ZXJ5TGV2ZWxSYWRpdXM7XHJcbiAgICBjb25zdCBbZW5kUmFkaXVzLCB0ZXh0UmFkaXVzXSA9IGdldFJhZGl1c0ZvckJvcmRlckFuZFRleHQoc3RhcnRSYWRpdXMsIGJvcmRlckhlaWdodCk7XHJcbiAgICBsZXZlbHMucHVzaCh7c3RhcnRSYWRpdXMsIGVuZFJhZGl1cywgdGV4dFJhZGl1c30pO1xyXG5cclxuXHJcbiAgfVxyXG4gIGNvbnN0IGlubmVyUmFkaXVzID0gaW5uZXJDaXJjbGVSYWRpdXM7XHJcbiAgY29uc3QgW2lubmVyUmFkaXVzQm9yZGVyLCBpbm5lclRleHRSYWRpdXNdID0gZ2V0UmFkaXVzRm9yQm9yZGVyQW5kVGV4dChpbm5lclJhZGl1cywgYm9yZGVySGVpZ2h0KTtcclxuXHJcbiAgY29uc3QgbWlkZGxlUmFkaXVzID0gaW5uZXJDaXJjbGVSYWRpdXMgKiAyO1xyXG4gIGNvbnN0IFttaWRkbGVSYWRpdXNCb3JkZXIsIG1pZGRsZVRleHRSYWRpdXNdID0gZ2V0UmFkaXVzRm9yQm9yZGVyQW5kVGV4dChtaWRkbGVSYWRpdXMsIGJvcmRlckhlaWdodCk7XHJcblxyXG4gIGNvbnN0IG91dGVyUmFkaXVzID0gbWlkZGxlUmFkaXVzICsgYm9yZGVySGVpZ2h0O1xyXG4gIGNvbnN0IFtvdXRlclJhZGl1c0JvcmRlciwgb3V0ZXJUZXh0UmFkaXVzXSA9IGdldFJhZGl1c0ZvckJvcmRlckFuZFRleHQob3V0ZXJSYWRpdXMsIGJvcmRlckhlaWdodCAqIDIpO1xyXG5cclxuICBjb25zdCB0ZXh0U2l6ZSA9IDAuMDE3NSAqIHNpemU7XHJcbiAgY29uc3Qgb3V0ZXJUZXh0U2l6ZSA9IDAuMDIyNSAqIHNpemU7XHJcblxyXG4gIGNvbnN0IHJlc3VsdCA9IHtcclxuICAgIHRleHRTaXplLFxyXG4gICAgb3V0ZXJUZXh0U2l6ZSxcclxuICAgIGxldmVscyxcclxuICAgIGlubmVyUmFkaXVzLFxyXG4gICAgaW5uZXJSYWRpdXNCb3JkZXIsXHJcbiAgICBpbm5lclRleHRSYWRpdXMsXHJcbiAgICBtaWRkbGVSYWRpdXMsXHJcbiAgICBtaWRkbGVUZXh0UmFkaXVzLFxyXG4gICAgbWlkZGxlUmFkaXVzQm9yZGVyLFxyXG4gICAgb3V0ZXJSYWRpdXMsXHJcbiAgICBvdXRlclJhZGl1c0JvcmRlcixcclxuICAgIG91dGVyVGV4dFJhZGl1cyxcclxuICAgIGNlbnRlclxyXG4gIH07XHJcblxyXG4gIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlUG9pbnRCZXR3ZWVuKHtjZW50ZXJYLCBjZW50ZXJZLCBzdGFydEFuZ2xlLCBtaWRkbGVBbmdsZSwgZW5kQW5nbGUsIHJhZGl1c30pIHtcclxuXHJcblxyXG5cclxuICBjb25zdCBzdGFydCA9IHBvbGFyVG9DYXJ0ZXNpYW4oY2VudGVyWCwgY2VudGVyWSwgcmFkaXVzLCBzdGFydEFuZ2xlKTtcclxuICBjb25zdCBtaWRkbGUgPSBwb2xhclRvQ2FydGVzaWFuKGNlbnRlclgsIGNlbnRlclksIHJhZGl1cywgbWlkZGxlQW5nbGUpO1xyXG4gIGNvbnN0IGVuZCA9IHBvbGFyVG9DYXJ0ZXNpYW4oY2VudGVyWCwgY2VudGVyWSwgcmFkaXVzLCBlbmRBbmdsZSk7XHJcblxyXG4gIHJldHVybiB7c3RhcnQsIG1pZGRsZSwgZW5kfTtcclxuXHJcbn1cclxuIl19