UNPKG

angular-sunburst-radar-chart

Version:
45 lines 6.36 kB
import { __read } from "tslib"; import { getCurrentPointFromEvent } from './utils'; import { calculateAngleRadian } from './trignometry'; export function createSvgHandlerWithSelector(selectorName, center) { var svg = document.querySelector(selectorName); var pt = svg.createSVGPoint(); var maxRad = 6.283185307179586; var maxDeg = 360; return { initPoint: 0, cursorPoint: function (evt) { var _a = getCurrentPointFromEvent(evt), x = _a.x, y = _a.y; pt.x = x; pt.y = y; return pt.matrixTransform(svg.getScreenCTM().inverse()); }, startDrag: function (evt, initialPoint) { this.previousPoint = this.angleFromCenter(evt); this.initPoint = initialPoint; }, updateInitPointFromCurrentPoint: function (currentPoint) { var difference = Math.abs(this.previousPoint - currentPoint); if (currentPoint < this.previousPoint) { this.initPoint += difference; } else { this.initPoint -= difference; } }, getRotationAngle: function (evt) { var currentPoint = this.angleFromCenter(evt); this.updateInitPointFromCurrentPoint(currentPoint); this.previousPoint = currentPoint; return this.initPoint; }, angleFromCenter: function (evt) { var _a = __read([center.x, center.y], 2), centerX = _a[0], centerY = _a[1]; var _b = this.cursorPoint(evt), x = _b.x, y = _b.y; var angleInRadian = calculateAngleRadian({ x: x, y: y, centerX: centerX, centerY: centerY, maxRad: maxRad }); var currentDegree = maxDeg * angleInRadian / (2 * Math.PI); return currentDegree; } }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ZnLXJvdGF0b3IuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLXN1bmJ1cnN0LXJhZGFyLWNoYXJ0LyIsInNvdXJjZXMiOlsibGliL3V0aWxzL3N2Zy1yb3RhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxTQUFTLENBQUM7QUFDakQsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE1BQU0sVUFBVSw0QkFBNEIsQ0FBQyxZQUFZLEVBQUUsTUFBTTtJQUMvRCxJQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELElBQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUdoQyxJQUFNLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQztJQUNqQyxJQUFNLE1BQU0sR0FBRyxHQUFHLENBQUM7SUFHbkIsT0FBTztRQUVMLFNBQVMsRUFBRSxDQUFDO1FBR1osV0FBVyxZQUFDLEdBQUc7WUFDUCxJQUFBLGtDQUFzQyxFQUFyQyxRQUFDLEVBQUUsUUFBa0MsQ0FBQztZQUM3QyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNULEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ1QsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBRTFELENBQUM7UUFDRCxTQUFTLFlBQUMsR0FBRyxFQUFFLFlBQVk7WUFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxTQUFTLEdBQUcsWUFBWSxDQUFDO1FBQ2hDLENBQUM7UUFDRCwrQkFBK0IsWUFBQyxZQUFZO1lBRTFDLElBQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxZQUFZLENBQUMsQ0FBQztZQUMvRCxJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFO2dCQUNyQyxJQUFJLENBQUMsU0FBUyxJQUFJLFVBQVUsQ0FBQzthQUM5QjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsU0FBUyxJQUFJLFVBQVUsQ0FBQzthQUM5QjtRQUVILENBQUM7UUFDRCxnQkFBZ0IsWUFBQyxHQUFHO1lBQ2xCLElBQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFL0MsSUFBSSxDQUFDLCtCQUErQixDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ25ELElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBWSxDQUFDO1lBRWxDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUV4QixDQUFDO1FBRUQsZUFBZSxZQUFDLEdBQUc7WUFFWCxJQUFBLG9DQUF5QyxFQUF4QyxlQUFPLEVBQUUsZUFBK0IsQ0FBQztZQUMxQyxJQUFBLDBCQUE4QixFQUE3QixRQUFDLEVBQUUsUUFBMEIsQ0FBQztZQUVyQyxJQUFNLGFBQWEsR0FBRyxvQkFBb0IsQ0FBQyxFQUFDLENBQUMsR0FBQSxFQUFFLENBQUMsR0FBQSxFQUFFLE9BQU8sU0FBQSxFQUFFLE9BQU8sU0FBQSxFQUFFLE1BQU0sUUFBQSxFQUFDLENBQUMsQ0FBQztZQUM3RSxJQUFNLGFBQWEsR0FBRyxNQUFNLEdBQUcsYUFBYSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM3RCxPQUFPLGFBQWEsQ0FBQztRQUV2QixDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2dldEN1cnJlbnRQb2ludEZyb21FdmVudH0gZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCB7Y2FsY3VsYXRlQW5nbGVSYWRpYW59IGZyb20gJy4vdHJpZ25vbWV0cnknO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVN2Z0hhbmRsZXJXaXRoU2VsZWN0b3Ioc2VsZWN0b3JOYW1lLCBjZW50ZXIpIHtcclxuICBjb25zdCBzdmcgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yTmFtZSk7XHJcbiAgY29uc3QgcHQgPSBzdmcuY3JlYXRlU1ZHUG9pbnQoKTtcclxuXHJcblxyXG4gIGNvbnN0IG1heFJhZCA9IDYuMjgzMTg1MzA3MTc5NTg2O1xyXG4gIGNvbnN0IG1heERlZyA9IDM2MDtcclxuXHJcblxyXG4gIHJldHVybiB7XHJcblxyXG4gICAgaW5pdFBvaW50OiAwLFxyXG5cclxuXHJcbiAgICBjdXJzb3JQb2ludChldnQpIHtcclxuICAgICAgY29uc3Qge3gsIHl9ID0gZ2V0Q3VycmVudFBvaW50RnJvbUV2ZW50KGV2dCk7XHJcbiAgICAgIHB0LnggPSB4O1xyXG4gICAgICBwdC55ID0geTtcclxuICAgICAgcmV0dXJuIHB0Lm1hdHJpeFRyYW5zZm9ybShzdmcuZ2V0U2NyZWVuQ1RNKCkuaW52ZXJzZSgpKTtcclxuXHJcbiAgICB9LFxyXG4gICAgc3RhcnREcmFnKGV2dCwgaW5pdGlhbFBvaW50KSB7XHJcbiAgICAgIHRoaXMucHJldmlvdXNQb2ludCA9IHRoaXMuYW5nbGVGcm9tQ2VudGVyKGV2dCk7XHJcbiAgICAgIHRoaXMuaW5pdFBvaW50ID0gaW5pdGlhbFBvaW50O1xyXG4gICAgfSxcclxuICAgIHVwZGF0ZUluaXRQb2ludEZyb21DdXJyZW50UG9pbnQoY3VycmVudFBvaW50KSB7XHJcblxyXG4gICAgICBjb25zdCBkaWZmZXJlbmNlID0gTWF0aC5hYnModGhpcy5wcmV2aW91c1BvaW50IC0gY3VycmVudFBvaW50KTtcclxuICAgICAgaWYgKGN1cnJlbnRQb2ludCA8IHRoaXMucHJldmlvdXNQb2ludCkge1xyXG4gICAgICAgIHRoaXMuaW5pdFBvaW50ICs9IGRpZmZlcmVuY2U7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5pbml0UG9pbnQgLT0gZGlmZmVyZW5jZTtcclxuICAgICAgfVxyXG5cclxuICAgIH0sXHJcbiAgICBnZXRSb3RhdGlvbkFuZ2xlKGV2dCkge1xyXG4gICAgICBjb25zdCBjdXJyZW50UG9pbnQgPSB0aGlzLmFuZ2xlRnJvbUNlbnRlcihldnQpO1xyXG5cclxuICAgICAgdGhpcy51cGRhdGVJbml0UG9pbnRGcm9tQ3VycmVudFBvaW50KGN1cnJlbnRQb2ludCk7XHJcbiAgICAgIHRoaXMucHJldmlvdXNQb2ludCA9IGN1cnJlbnRQb2ludDtcclxuXHJcbiAgICAgIHJldHVybiB0aGlzLmluaXRQb2ludDtcclxuXHJcbiAgICB9LFxyXG5cclxuICAgIGFuZ2xlRnJvbUNlbnRlcihldnQpIHtcclxuXHJcbiAgICAgIGNvbnN0IFtjZW50ZXJYLCBjZW50ZXJZXSA9IFtjZW50ZXIueCwgY2VudGVyLnldO1xyXG4gICAgICBjb25zdCB7eCwgeX0gPSB0aGlzLmN1cnNvclBvaW50KGV2dCk7XHJcblxyXG4gICAgICBjb25zdCBhbmdsZUluUmFkaWFuID0gY2FsY3VsYXRlQW5nbGVSYWRpYW4oe3gsIHksIGNlbnRlclgsIGNlbnRlclksIG1heFJhZH0pO1xyXG4gICAgICBjb25zdCBjdXJyZW50RGVncmVlID0gbWF4RGVnICogYW5nbGVJblJhZGlhbiAvICgyICogTWF0aC5QSSk7XHJcbiAgICAgIHJldHVybiBjdXJyZW50RGVncmVlO1xyXG5cclxuICAgIH1cclxuICB9O1xyXG59XHJcbiJdfQ==