UNPKG

angular-sunburst-radar-chart

Version:
52 lines 8.26 kB
import { createPath } from './elements'; import { getLargeArcFlag, polarToCartesian } from './trignometry'; import { getOptionsOrEmpty } from './utils'; export function createArcToWriteText({ startPoint, radius, id, startAngle, endAngle }) { const [centerX, centerY] = [startPoint.x, startPoint.y]; const start = polarToCartesian(centerX, centerY, radius, endAngle); const end = polarToCartesian(centerX, centerY, radius, startAngle); const largeArcFlag = getLargeArcFlag(startAngle, endAngle); const d = [ 'M', start.x, start.y, 'A', radius, radius, 0, largeArcFlag, 0, end.x, end.y ].join(' '); return createPath({ d, borderColor: '', id }); } export function getTextForAngle(text, distance, fontSize) { let result = text; let perCharacter = 10.07; if (fontSize < 18) { perCharacter = 8.7; } const totalTextLength = Math.round(distance / perCharacter); if (text.length > 0 && text.length > totalTextLength) { result = text.substring(0, totalTextLength - 1) + '..'; } return result; } export function writeTextOnArc(options) { const defaults = { text: '', label: '', pathId: '', 'font-size': '14px', }; options = Object.assign(Object.assign({}, defaults), (getOptionsOrEmpty(options))); const { text, pathId, label } = options; if (pathId !== '') { options['href'] = '#' + pathId; options['startOffset'] = '50%'; options['text-anchor'] = 'middle'; options['title'] = text; } const textOnArc = { name: 'text-on-arc', options, children: [] }; return textOnArc; } export function createText(options) { const defaults = { content: '', x: 0, y: 0, stroke: 'white', 'stroke-width': '1px', 'font-size': '6px', 'text-anchor': 'middle' }; options = Object.assign(Object.assign({}, defaults), (getOptionsOrEmpty(options))); const textElement = { name: 'text', options, children: [] }; return textElement; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGVsZW1lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLXN1bmJ1cnN0LXJhZGFyLWNoYXJ0LyIsInNvdXJjZXMiOlsibGliL3V0aWxzL3RleHRlbGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFDdEMsT0FBTyxFQUFDLGVBQWUsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVoRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxTQUFTLENBQUM7QUFHMUMsTUFBTSxVQUFVLG9CQUFvQixDQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBQztJQUVqRixNQUFNLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFeEQsTUFBTSxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDbkUsTUFBTSxHQUFHLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDbkUsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUczRCxNQUFNLENBQUMsR0FBRztRQUNSLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxZQUFZLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7S0FDdEQsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFHWixPQUFPLFVBQVUsQ0FBQyxFQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBQyxDQUFDLENBQUM7QUFHOUMsQ0FBQztBQUlELE1BQU0sVUFBVSxlQUFlLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRO0lBR3RELElBQUksTUFBTSxHQUFHLElBQUksQ0FBQztJQUdsQixJQUFJLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDekIsSUFBSSxRQUFRLEdBQUcsRUFBRSxFQUFFO1FBQ2pCLFlBQVksR0FBRyxHQUFHLENBQUM7S0FFcEI7SUFDRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxZQUFZLENBQUMsQ0FBQztJQUM1RCxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsZUFBZSxFQUFFO1FBRXBELE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxlQUFlLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO0tBQ3hEO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsT0FBTztJQUdwQyxNQUFNLFFBQVEsR0FBRyxFQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxNQUFNLEdBQUUsQ0FBQztJQUN6RSxPQUFPLG1DQUFPLFFBQVEsR0FBSyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV6RCxNQUFNLEVBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUMsR0FBRyxPQUFPLENBQUM7SUFFdEMsSUFBSSxNQUFNLEtBQUssRUFBRSxFQUFFO1FBQ2pCLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQy9CLE9BQU8sQ0FBQyxhQUFhLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDL0IsT0FBTyxDQUFDLGFBQWEsQ0FBQyxHQUFHLFFBQVEsQ0FBQztRQUNsQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDO0tBRXpCO0lBRUQsTUFBTSxTQUFTLEdBQXNCLEVBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBQyxDQUFDO0lBQ2xGLE9BQU8sU0FBUyxDQUFDO0FBR25CLENBQUM7QUFHRCxNQUFNLFVBQVUsVUFBVSxDQUFDLE9BQU87SUFFaEMsTUFBTSxRQUFRLEdBQUc7UUFDZixPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDdkIsTUFBTSxFQUFFLE9BQU87UUFDZixjQUFjLEVBQUUsS0FBSztRQUNyQixXQUFXLEVBQUUsS0FBSztRQUNsQixhQUFhLEVBQUUsUUFBUTtLQUN4QixDQUFDO0lBQ0YsT0FBTyxtQ0FBTyxRQUFRLEdBQUssQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFekQsTUFBTSxXQUFXLEdBQXNCLEVBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBQyxDQUFDO0lBQzdFLE9BQU8sV0FBVyxDQUFDO0FBR3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2NyZWF0ZVBhdGh9IGZyb20gJy4vZWxlbWVudHMnO1xyXG5pbXBvcnQge2dldExhcmdlQXJjRmxhZywgcG9sYXJUb0NhcnRlc2lhbn0gZnJvbSAnLi90cmlnbm9tZXRyeSc7XHJcbmltcG9ydCB7QW5ndWxhclN2Z0VsZW1lbnR9IGZyb20gJy4vbW9kZWxzJztcclxuaW1wb3J0IHtnZXRPcHRpb25zT3JFbXB0eX0gZnJvbSAnLi91dGlscyc7XHJcblxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUFyY1RvV3JpdGVUZXh0KHtzdGFydFBvaW50LCByYWRpdXMsIGlkLCBzdGFydEFuZ2xlLCBlbmRBbmdsZX0pIHtcclxuXHJcbiAgY29uc3QgW2NlbnRlclgsIGNlbnRlclldID0gW3N0YXJ0UG9pbnQueCwgc3RhcnRQb2ludC55XTtcclxuXHJcbiAgY29uc3Qgc3RhcnQgPSBwb2xhclRvQ2FydGVzaWFuKGNlbnRlclgsIGNlbnRlclksIHJhZGl1cywgZW5kQW5nbGUpO1xyXG4gIGNvbnN0IGVuZCA9IHBvbGFyVG9DYXJ0ZXNpYW4oY2VudGVyWCwgY2VudGVyWSwgcmFkaXVzLCBzdGFydEFuZ2xlKTtcclxuICBjb25zdCBsYXJnZUFyY0ZsYWcgPSBnZXRMYXJnZUFyY0ZsYWcoc3RhcnRBbmdsZSwgZW5kQW5nbGUpO1xyXG5cclxuXHJcbiAgY29uc3QgZCA9IFtcclxuICAgICdNJywgc3RhcnQueCwgc3RhcnQueSxcclxuICAgICdBJywgcmFkaXVzLCByYWRpdXMsIDAsIGxhcmdlQXJjRmxhZywgMCwgZW5kLngsIGVuZC55XHJcbiAgXS5qb2luKCcgJyk7XHJcblxyXG5cclxuICByZXR1cm4gY3JlYXRlUGF0aCh7ZCwgYm9yZGVyQ29sb3I6ICcnLCBpZH0pO1xyXG5cclxuXHJcbn1cclxuXHJcblxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFRleHRGb3JBbmdsZSh0ZXh0LCBkaXN0YW5jZSwgZm9udFNpemUpIHtcclxuXHJcblxyXG4gIGxldCByZXN1bHQgPSB0ZXh0O1xyXG5cclxuXHJcbiAgbGV0IHBlckNoYXJhY3RlciA9IDEwLjA3O1xyXG4gIGlmIChmb250U2l6ZSA8IDE4KSB7XHJcbiAgICBwZXJDaGFyYWN0ZXIgPSA4Ljc7XHJcblxyXG4gIH1cclxuICBjb25zdCB0b3RhbFRleHRMZW5ndGggPSBNYXRoLnJvdW5kKGRpc3RhbmNlIC8gcGVyQ2hhcmFjdGVyKTtcclxuICBpZiAodGV4dC5sZW5ndGggPiAwICYmIHRleHQubGVuZ3RoID4gdG90YWxUZXh0TGVuZ3RoKSB7XHJcblxyXG4gICAgcmVzdWx0ID0gdGV4dC5zdWJzdHJpbmcoMCwgdG90YWxUZXh0TGVuZ3RoIC0gMSkgKyAnLi4nO1xyXG4gIH1cclxuICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gd3JpdGVUZXh0T25BcmMob3B0aW9ucykge1xyXG5cclxuXHJcbiAgY29uc3QgZGVmYXVsdHMgPSB7dGV4dDogJycsIGxhYmVsOiAnJywgcGF0aElkOiAnJywgJ2ZvbnQtc2l6ZSc6ICcxNHB4Jyx9O1xyXG4gIG9wdGlvbnMgPSB7Li4uZGVmYXVsdHMsIC4uLihnZXRPcHRpb25zT3JFbXB0eShvcHRpb25zKSl9O1xyXG5cclxuICBjb25zdCB7dGV4dCwgcGF0aElkLCBsYWJlbH0gPSBvcHRpb25zO1xyXG5cclxuICBpZiAocGF0aElkICE9PSAnJykge1xyXG4gICAgb3B0aW9uc1snaHJlZiddID0gJyMnICsgcGF0aElkO1xyXG4gICAgb3B0aW9uc1snc3RhcnRPZmZzZXQnXSA9ICc1MCUnO1xyXG4gICAgb3B0aW9uc1sndGV4dC1hbmNob3InXSA9ICdtaWRkbGUnO1xyXG4gICAgb3B0aW9uc1sndGl0bGUnXSA9IHRleHQ7XHJcblxyXG4gIH1cclxuXHJcbiAgY29uc3QgdGV4dE9uQXJjOiBBbmd1bGFyU3ZnRWxlbWVudCA9IHtuYW1lOiAndGV4dC1vbi1hcmMnLCBvcHRpb25zLCBjaGlsZHJlbjogW119O1xyXG4gIHJldHVybiB0ZXh0T25BcmM7XHJcblxyXG5cclxufVxyXG5cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUZXh0KG9wdGlvbnMpIHtcclxuXHJcbiAgY29uc3QgZGVmYXVsdHMgPSB7XHJcbiAgICBjb250ZW50OiAnJywgeDogMCwgeTogMCxcclxuICAgIHN0cm9rZTogJ3doaXRlJyxcclxuICAgICdzdHJva2Utd2lkdGgnOiAnMXB4JyxcclxuICAgICdmb250LXNpemUnOiAnNnB4JyxcclxuICAgICd0ZXh0LWFuY2hvcic6ICdtaWRkbGUnXHJcbiAgfTtcclxuICBvcHRpb25zID0gey4uLmRlZmF1bHRzLCAuLi4oZ2V0T3B0aW9uc09yRW1wdHkob3B0aW9ucykpfTtcclxuXHJcbiAgY29uc3QgdGV4dEVsZW1lbnQ6IEFuZ3VsYXJTdmdFbGVtZW50ID0ge25hbWU6ICd0ZXh0Jywgb3B0aW9ucywgY2hpbGRyZW46IFtdfTtcclxuICByZXR1cm4gdGV4dEVsZW1lbnQ7XHJcblxyXG5cclxufVxyXG4iXX0=