UNPKG

overwatch-api

Version:

An Unoffical Overwatch API.

1 lines 10.4 kB
{"C:\\Users\\Alf\\Source\\overwatch-api\\api\\src\\parser\\svg.js":{"path":"C:\\Users\\Alf\\Source\\overwatch-api\\api\\src\\parser\\svg.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":5,"column":3}},"1":{"start":{"line":6,"column":0},"end":{"line":6,"column":52}},"2":{"start":{"line":8,"column":17},"end":{"line":8,"column":39}},"3":{"start":{"line":10,"column":16},"end":{"line":18,"column":1}},"4":{"start":{"line":19,"column":13},"end":{"line":26,"column":1}},"5":{"start":{"line":29,"column":26},"end":{"line":29,"column":65}},"6":{"start":{"line":30,"column":23},"end":{"line":30,"column":59}},"7":{"start":{"line":31,"column":21},"end":{"line":31,"column":55}},"8":{"start":{"line":32,"column":2},"end":{"line":48,"column":4}},"9":{"start":{"line":53,"column":12},"end":{"line":53,"column":36}},"10":{"start":{"line":54,"column":2},"end":{"line":54,"column":27}},"11":{"start":{"line":56,"column":2},"end":{"line":65,"column":5}},"12":{"start":{"line":67,"column":2},"end":{"line":76,"column":5}},"13":{"start":{"line":78,"column":2},"end":{"line":87,"column":5}},"14":{"start":{"line":89,"column":2},"end":{"line":100,"column":28}},"15":{"start":{"line":102,"column":12},"end":{"line":102,"column":60}},"16":{"start":{"line":103,"column":2},"end":{"line":103,"column":50}},"17":{"start":{"line":107,"column":16},"end":{"line":107,"column":43}},"18":{"start":{"line":108,"column":12},"end":{"line":108,"column":29}},"19":{"start":{"line":109,"column":2},"end":{"line":109,"column":13}}},"fnMap":{"0":{"name":"getSVGData","decl":{"start":{"line":28,"column":9},"end":{"line":28,"column":19}},"loc":{"start":{"line":28,"column":37},"end":{"line":49,"column":1}},"line":28},"1":{"name":"buildSVG","decl":{"start":{"line":52,"column":9},"end":{"line":52,"column":17}},"loc":{"start":{"line":52,"column":24},"end":{"line":104,"column":1}},"line":52},"2":{"name":"createEndorsementSVG","decl":{"start":{"line":106,"column":9},"end":{"line":106,"column":29}},"loc":{"start":{"line":106,"column":47},"end":{"line":110,"column":1}},"line":106}},"branchMap":{"0":{"loc":{"start":{"line":29,"column":26},"end":{"line":29,"column":65}},"type":"binary-expr","locations":[{"start":{"line":29,"column":26},"end":{"line":29,"column":60}},{"start":{"line":29,"column":64},"end":{"line":29,"column":65}}],"line":29},"1":{"loc":{"start":{"line":30,"column":23},"end":{"line":30,"column":59}},"type":"binary-expr","locations":[{"start":{"line":30,"column":23},"end":{"line":30,"column":54}},{"start":{"line":30,"column":58},"end":{"line":30,"column":59}}],"line":30},"2":{"loc":{"start":{"line":31,"column":21},"end":{"line":31,"column":55}},"type":"binary-expr","locations":[{"start":{"line":31,"column":21},"end":{"line":31,"column":50}},{"start":{"line":31,"column":54},"end":{"line":31,"column":55}}],"line":31}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1},"f":{"0":1,"1":1,"2":1},"b":{"0":[1,0],"1":[1,0],"2":[1,0]},"inputSourceMap":{"version":3,"sources":["svg.js"],"names":["svgBuilder","require","Constants","r","width","height","offset","strokeWidth","cx","cy","Colors","gray","orange","magenta","green","white","transparent","getSVGData","endorsementsObj","sportsmanshipRate","sportsmanship","rate","shotcallerRate","shotcaller","teammateRate","teammate","level","dasharray","Math","round","dashoffset","buildSVG","data","svg","newInstance","circle","fill","stroke","text","x","y","dy","b64","Buffer","from","render","toString","createEndorsementSVG","svgData"],"mappings":"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","sourceRoot":"C:\\Users\\Alf\\Source\\overwatch-api\\api\\src\\parser\\","sourcesContent":["const svgBuilder = require('svg-builder');\r\n\r\nconst Constants = {\r\n r: 15.91549430918954,\r\n width: 40,\r\n height: 40,\r\n offset: 25,\r\n strokeWidth: 3,\r\n cx: '50%',\r\n cy: '50%',\r\n};\r\n\r\nconst Colors = {\r\n gray: '#2a2b2e',\r\n orange: '#f19512',\r\n magenta: '#c81af5',\r\n green: '#40ce44',\r\n white: '#f6f6f6',\r\n transparent: 'transparent',\r\n};\r\n\r\n// Builds data to be used by the svg-builder in svg.buildSVG.\r\nfunction getSVGData(endorsementsObj) {\r\n const sportsmanshipRate = endorsementsObj.sportsmanship.rate || 0;\r\n const shotcallerRate = endorsementsObj.shotcaller.rate || 0;\r\n const teammateRate = endorsementsObj.teammate.rate || 0;\r\n\r\n return {\r\n level: endorsementsObj.level,\r\n shotcaller: {\r\n dasharray: `${Math.round(shotcallerRate)} ${Math.round(100 - shotcallerRate)}`,\r\n dashoffset: 25, // Start offset at 12 o'clock.\r\n },\r\n teammate: {\r\n dasharray: `${Math.round(teammateRate)} ${Math.round(100 - teammateRate)}`,\r\n dashoffset: 100 - Math.round(shotcallerRate) + 25, // Bump offset. \r\n },\r\n sportsmanship: {\r\n dasharray: `${Math.round(sportsmanshipRate)} ${Math.round(100 - sportsmanshipRate)}`,\r\n dashoffset: 100 - Math.round(shotcallerRate + teammateRate) + 25,\r\n }\r\n }\r\n}\r\n\r\n// Builds the SVG endorements icon using data from svg.getSVGData.\r\nfunction buildSVG(data) {\r\n const svg = svgBuilder.newInstance()\r\n svg.width(40).height(40);\r\n\r\n // Shot caller circle.\r\n svg.circle({\r\n r: Constants.r,\r\n fill: Colors.gray,\r\n 'stroke-dasharray': data.shotcaller.dasharray,\r\n 'stroke-dashoffset': data.shotcaller.dashoffset,\r\n 'stroke-width': Constants.strokeWidth, \r\n stroke: Colors.orange,\r\n cx: Constants.cx,\r\n cy: Constants.cy,\r\n });\r\n\r\n // Teammate circle.\r\n svg.circle({\r\n r: Constants.r,\r\n fill: Colors.transparent,\r\n 'stroke-dasharray': data.teammate.dasharray,\r\n 'stroke-dashoffset': data.teammate.dashoffset,\r\n 'stroke-width': Constants.strokeWidth, \r\n stroke: Colors.magenta,\r\n cx: Constants.cx,\r\n cy: Constants.cy,\r\n });\r\n\r\n // Sportsmanship circle.\r\n svg.circle({\r\n r: Constants.r,\r\n fill: Colors.transparent,\r\n 'stroke-dasharray': data.sportsmanship.dasharray,\r\n 'stroke-dashoffset': data.sportsmanship.dashoffset,\r\n 'stroke-width': Constants.strokeWidth, \r\n stroke: Colors.green,\r\n cx: Constants.cx,\r\n cy: Constants.cy,\r\n });\r\n\r\n // Centered text with endorsement level.\r\n svg.text({\r\n x: '50%',\r\n y: '50%',\r\n dy: '.3em',\r\n 'font-family': 'century gothic,arial,sans-serif',\r\n 'font-weight': 300,\r\n 'font-size': 16,\r\n stroke: Colors.white,\r\n 'stroke-width': '1',\r\n fill: Colors.white,\r\n 'text-anchor': 'middle',\r\n }, `${data.level}`);\r\n\r\n // Output SVG as a base64 encoded data URI.\r\n const b64 = new Buffer.from(svg.render()).toString('base64');\r\n return `data:image/svg+xml;base64,${b64}`;\r\n}\r\n\r\nexport function createEndorsementSVG(endorsementsObj) {\r\n const svgData = getSVGData(endorsementsObj);\r\n const svg = buildSVG(svgData);\r\n return svg;\r\n}"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"93354193be207b9da27363e43ed201f30b45b4a7","contentHash":"d1f3422ffb796e61cbdfc8608a49456baae1262c98dd1ce7dd9cf14c3e473bed"}}