You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1 lines
41 KiB

{"version":3,"file":"ext-polystar.js","sources":["../../../../src/editor/extensions/ext-polystar/ext-polystar.js","../../../../src/editor/extensions/ext-polystar/locale/en.js","../../../../src/editor/extensions/ext-polystar/locale/fr.js","../../../../src/editor/extensions/ext-polystar/locale/sv.js","../../../../src/editor/extensions/ext-polystar/locale/tr.js","../../../../src/editor/extensions/ext-polystar/locale/uk.js","../../../../src/editor/extensions/ext-polystar/locale/zh-CN.js"],"sourcesContent":["/**\n * @file ext-polystar.js\n *\n *\n * @copyright 2010 CloudCanvas, Inc. All rights reserved\n * @copyright 2021 Optimistik SAS, Inc. All rights reserved\n * @license MIT\n *\n */\n\nconst name = 'polystar'\n\nconst loadExtensionTranslation = async function (svgEditor) {\n let translationModule\n const lang = svgEditor.configObj.pref('lang')\n try {\n translationModule = await import(`./locale/${lang}.js`)\n } catch (_error) {\n console.warn(`Missing translation (${lang}) for ${name} - using 'en'`)\n translationModule = await import('./locale/en.js')\n }\n svgEditor.i18next.addResourceBundle(lang, name, translationModule.default)\n}\n\nexport default {\n name,\n async init () {\n const svgEditor = this\n const { svgCanvas } = svgEditor\n const { ChangeElementCommand } = svgCanvas.history\n const addToHistory = (cmd) => { svgCanvas.undoMgr.addCommandToHistory(cmd) }\n const { $id, $click } = svgCanvas\n let selElems\n let started\n let newFO\n await loadExtensionTranslation(svgEditor)\n\n /**\n * @param {boolean} on true=display\n * @param {string} tool \"star\" or \"polygone\"\n * @returns {void}\n */\n const showPanel = (on, tool) => {\n if (on) {\n $id(`${tool}_panel`).style.removeProperty('display')\n } else {\n $id(`${tool}_panel`).style.display = 'none'\n }\n }\n\n /**\n *\n * @param {string} attr attribute to change\n * @param {string|Float} val new value\n * @returns {void}\n */\n const setAttr = (attr, val) => {\n svgCanvas.changeSelectedAttribute(attr, val)\n svgCanvas.call('changed', selElems)\n }\n\n /**\n * @param {Float} n angle\n * @return {Float} cotangeante\n */\n const cot = (n) => 1 / Math.tan(n)\n\n /**\n * @param {Float} n angle\n * @returns {Float} sec\n */\n const sec = (n) => 1 / Math.cos(n)\n\n return {\n name: svgEditor.i18next.t(`${name}:name`),\n // The callback should be used to load the DOM with the appropriate UI items\n callback () {\n // Add the button and its handler(s)\n // Note: the star extension needs to be loaded before the polygon extension\n const fbtitle = `${name}:title`\n const titleStar = `${name}:buttons.0.title`\n const titlePolygon = `${name}:buttons.1.title`\n const buttonTemplate = `\n <se-flyingbutton id=\"tools_polygon\" title=\"${fbtitle}\">\n <se-button id=\"tool_star\" title=\"${titleStar}\" src=\"star.svg\">\n </se-button>\n <se-button id=\"tool_polygon\" title=\"${titlePolygon}\" src=\"polygon.svg\">\n </se-button>\n </se-flyingbutton>\n `\n svgCanvas.insertChildAtIndex($id('tools_left'), buttonTemplate, 10)\n // handler\n $click($id('tool_star'), () => {\n if (this.leftPanel.updateLeftPanel('tool_star')) {\n svgCanvas.setMode('star')\n showPanel(true, 'star')\n showPanel(false, 'polygon')\n }\n })\n $click($id('tool_polygon'), () => {\n if (this.leftPanel.updateLeftPanel('tool_polygon')) {\n svgCanvas.setMode('polygon')\n showPanel(true, 'polygon')\n showPanel(false, 'star')\n }\n })\n const label0 = `${name}:contextTools.0.label`\n const title0 = `${name}:contextTools.0.title`\n const label1 = `${name}:contextTools.1.label`\n const title1 = `${name}:contextTools.1.title`\n const label2 = `${name}:contextTools.2.label`\n const title2 = `${name}:contextTools.2.title`\n const label3 = `${name}:contextTools.3.label`\n const title3 = `${name}:contextTools.3.title`\n // Add the context panel and its handler(s)\n const panelTemplate = document.createElement('template')\n panelTemplate.innerHTML = `\n <div id=\"star_panel\">\n <se-spin-input id=\"starNumPoints\" label=\"${label0}\" min=1 step=1 value=5 title=\"${title0}\">\n </se-spin-input>\n <se-spin-input id=\"RadiusMultiplier\" label=\"${label1}\" min=1 step=2.5 value=3 title=\"${title1}\">\n </se-spin-input>\n <se-spin-input id=\"radialShift\" min=0 step=1 value=0 label=\"${label2}\" title=\"${title2}\">\n </se-spin-input>\n </div>\n <div id=\"polygon_panel\">\n <se-spin-input size=\"3\" id=\"polySides\" min=1 step=1 value=5 label=\"${label3}\" title=\"${title3}\">\n </se-spin-input>\n </div>\n `\n // add handlers for the panel\n $id('tools_top').appendChild(panelTemplate.content.cloneNode(true))\n // don't display the panels on start\n showPanel(false, 'star')\n showPanel(false, 'polygon')\n $id('starNumPoints').addEventListener('change', (event) => {\n setAttr('point', event.target.value)\n const orient = 'point'\n const point = event.target.value\n let i = selElems.length\n while (i--) {\n const elem = selElems[i]\n if (elem.hasAttribute('r')) {\n const oldPoint = elem.getAttribute('point')\n const oldPoints = elem.getAttribute('points')\n const radialshift = elem.getAttribute('radialshift')\n let xpos = 0\n let ypos = 0\n if (elem.points) {\n const list = elem.points\n const len = list.numberOfItems\n for (let i = 0; i < len; ++i) {\n const pt = list.getItem(i)\n xpos += parseFloat(pt.x)\n ypos += parseFloat(pt.y)\n }\n const cx = xpos / len\n const cy = ypos / len\n const circumradius = Number(elem.getAttribute('r'))\n const inradius = circumradius / elem.getAttribute('starRadiusMultiplier')\n\n let polyPoints = ''\n for (let s = 0; point >= s; s++) {\n let angle = 2.0 * Math.PI * (s / point)\n if (orient === 'point') {\n angle -= Math.PI / 2\n } else if (orient === 'edge') {\n angle = angle + Math.PI / point - Math.PI / 2\n }\n\n let x = circumradius * Math.cos(angle) + cx\n let y = circumradius * Math.sin(angle) + cy\n\n polyPoints += x + ',' + y + ' '\n\n if (!isNaN(inradius)) {\n angle = 2.0 * Math.PI * (s / point) + Math.PI / point\n if (orient === 'point') {\n angle -= Math.PI / 2\n } else if (orient === 'edge') {\n angle = angle + Math.PI / point - Math.PI / 2\n }\n angle += radialshift\n\n x = inradius * Math.cos(angle) + cx\n y = inradius * Math.sin(angle) + cy\n\n polyPoints += x + ',' + y + ' '\n }\n }\n elem.setAttribute('points', polyPoints)\n addToHistory(new ChangeElementCommand(elem, { point: oldPoint, points: oldPoints }))\n }\n }\n }\n })\n $id('RadiusMultiplier').addEventListener('change', (event) => {\n setAttr('starRadiusMultiplier', event.target.value)\n })\n $id('radialShift').addEventListener('change', (event) => {\n setAttr('radialshift', event.target.value)\n })\n $id('polySides').addEventListener('change', (event) => {\n setAttr('sides', event.target.value)\n const sides = event.target.value\n let i = selElems.length\n while (i--) {\n const elem = selElems[i]\n if (elem.hasAttribute('edge')) {\n const oldSides = elem.getAttribute('sides')\n const oldPoints = elem.getAttribute('points')\n let xpos = 0\n let ypos = 0\n if (elem.points) {\n const list = elem.points\n const len = list.numberOfItems\n for (let i = 0; i < len; ++i) {\n const pt = list.getItem(i)\n xpos += parseFloat(pt.x)\n ypos += parseFloat(pt.y)\n }\n const cx = xpos / len\n const cy = ypos / len\n const edg = elem.getAttribute('edge')\n const inradius = (edg / 2) * cot(Math.PI / sides)\n const circumradius = inradius * sec(Math.PI / sides)\n let points = ''\n for (let s = 0; sides >= s; s++) {\n const angle = (2.0 * Math.PI * s) / sides\n const x = circumradius * Math.cos(angle) + cx\n const y = circumradius * Math.sin(angle) + cy\n points += x + ',' + y + ' '\n }\n elem.setAttribute('points', points)\n addToHistory(new ChangeElementCommand(elem, { sides: oldSides, points: oldPoints }))\n }\n }\n }\n })\n },\n mouseDown (opts) {\n if (svgCanvas.getMode() === 'star') {\n const fill = svgCanvas.getColor('fill')\n const stroke = svgCanvas.getColor('stroke')\n const strokeWidth = svgCanvas.getStrokeWidth()\n started = true\n newFO = svgCanvas.addSVGElementsFromJson({\n element: 'polygon',\n attr: {\n cx: opts.start_x,\n cy: opts.start_y,\n id: svgCanvas.getNextId(),\n shape: 'star',\n point: $id('starNumPoints').value,\n r: 0,\n radialshift: $id('radialShift').value,\n r2: 0,\n orient: 'point',\n fill,\n stroke,\n 'stroke-width': strokeWidth\n }\n })\n return {\n started: true\n }\n }\n if (svgCanvas.getMode() === 'polygon') {\n const fill = svgCanvas.getColor('fill')\n const stroke = svgCanvas.getColor('stroke')\n const strokeWidth = svgCanvas.getStrokeWidth()\n started = true\n newFO = svgCanvas.addSVGElementsFromJson({\n element: 'polygon',\n attr: {\n cx: opts.start_x,\n cy: opts.start_y,\n id: svgCanvas.getNextId(),\n shape: 'regularPoly',\n sides: $id('polySides').value,\n orient: 'x',\n edge: 0,\n fill,\n stroke,\n 'stroke-width': strokeWidth\n }\n })\n\n return {\n started: true\n }\n }\n return undefined\n },\n mouseMove (opts) {\n if (!started) {\n return undefined\n }\n if (svgCanvas.getMode() === 'star') {\n const cx = Number(newFO.getAttribute('cx'))\n const cy = Number(newFO.getAttribute('cy'))\n const point = Number(newFO.getAttribute('point'))\n const orient = newFO.getAttribute('orient')\n const fill = newFO.getAttribute('fill')\n const stroke = newFO.getAttribute('stroke')\n const strokeWidth = Number(newFO.getAttribute('stroke-width'))\n const radialshift = Number(newFO.getAttribute('radialshift'))\n\n let x = opts.mouse_x\n let y = opts.mouse_y\n\n const circumradius =\n Math.sqrt((x - cx) * (x - cx) + (y - cy) * (y - cy)) / 1.5\n const RadiusMultiplier = document.getElementById('RadiusMultiplier').value\n const inradius =\n circumradius / RadiusMultiplier\n newFO.setAttribute('r', circumradius)\n newFO.setAttribute('r2', inradius)\n newFO.setAttribute('starRadiusMultiplier', RadiusMultiplier)\n\n let polyPoints = ''\n for (let s = 0; point >= s; s++) {\n let angle = 2.0 * Math.PI * (s / point)\n if (orient === 'point') {\n angle -= Math.PI / 2\n } else if (orient === 'edge') {\n angle = angle + Math.PI / point - Math.PI / 2\n }\n\n x = circumradius * Math.cos(angle) + cx\n y = circumradius * Math.sin(angle) + cy\n\n polyPoints += x + ',' + y + ' '\n\n if (!isNaN(inradius)) {\n angle = 2.0 * Math.PI * (s / point) + Math.PI / point\n if (orient === 'point') {\n angle -= Math.PI / 2\n } else if (orient === 'edge') {\n angle = angle + Math.PI / point - Math.PI / 2\n }\n angle += radialshift\n\n x = inradius * Math.cos(angle) + cx\n y = inradius * Math.sin(angle) + cy\n\n polyPoints += x + ',' + y + ' '\n }\n }\n newFO.setAttribute('points', polyPoints)\n newFO.setAttribute('fill', fill)\n newFO.setAttribute('stroke', stroke)\n newFO.setAttribute('stroke-width', strokeWidth)\n /* const shape = */ newFO.getAttribute('shape')\n\n return {\n started: true\n }\n }\n if (svgCanvas.getMode() === 'polygon') {\n const cx = Number(newFO.getAttribute('cx'))\n const cy = Number(newFO.getAttribute('cy'))\n const sides = Number(newFO.getAttribute('sides'))\n // const orient = newFO.getAttribute('orient');\n const fill = newFO.getAttribute('fill')\n const stroke = newFO.getAttribute('stroke')\n const strokeWidth = Number(newFO.getAttribute('stroke-width'))\n\n let x = opts.mouse_x\n let y = opts.mouse_y\n\n const edg =\n Math.sqrt((x - cx) * (x - cx) + (y - cy) * (y - cy)) / 1.5\n newFO.setAttribute('edge', edg)\n\n const inradius = (edg / 2) * cot(Math.PI / sides)\n const circumradius = inradius * sec(Math.PI / sides)\n let points = ''\n for (let s = 0; sides >= s; s++) {\n const angle = (2.0 * Math.PI * s) / sides\n x = circumradius * Math.cos(angle) + cx\n y = circumradius * Math.sin(angle) + cy\n\n points += x + ',' + y + ' '\n }\n\n // const poly = newFO.createElementNS(NS.SVG, 'polygon');\n newFO.setAttribute('points', points)\n newFO.setAttribute('fill', fill)\n newFO.setAttribute('stroke', stroke)\n newFO.setAttribute('stroke-width', strokeWidth)\n return {\n started: true\n }\n }\n return undefined\n },\n mouseUp () {\n if (svgCanvas.getMode() === 'star') {\n const r = newFO.getAttribute('r')\n return {\n keep: r !== '0',\n element: newFO\n }\n }\n if (svgCanvas.getMode() === 'polygon') {\n const edge = newFO.getAttribute('edge')\n const keep = edge !== '0'\n // svgCanvas.addToSelection([newFO], true);\n return {\n keep,\n element: newFO\n }\n }\n return undefined\n },\n selectedChanged (opts) {\n // Use this to update the current selected elements\n selElems = opts.elems\n let i = selElems.length\n // Hide panels if nothing is selected\n if (!i) {\n showPanel(false, 'star')\n showPanel(false, 'polygon')\n return\n }\n while (i--) {\n const elem = selElems[i]\n if (elem?.getAttribute('shape') === 'star') {\n if (opts.selectedElement && !opts.multiselected) {\n $id('starNumPoints').value = elem.getAttribute('point')\n $id('radialShift').value = elem.getAttribute('radialshift')\n showPanel(true, 'star')\n } else {\n showPanel(false, 'star')\n }\n } else if (elem?.getAttribute('shape') === 'regularPoly') {\n if (opts.selectedElement && !opts.multiselected) {\n $id('polySides').value = elem.getAttribute('sides')\n showPanel(true, 'polygon')\n } else {\n showPanel(false, 'polygon')\n }\n } else {\n showPanel(false, 'star')\n showPanel(false, 'polygon')\n }\n }\n }\n }\n }\n}\n","export default {\n name: 'star',\n title: 'Polygone/Star Tool',\n buttons: [\n {\n title: 'Star Tool'\n },\n {\n title: 'Polygon Tool'\n }\n ],\n contextTools: [\n {\n title: 'Number of Sides',\n label: 'points'\n },\n {\n title: 'Pointiness',\n label: 'Pointiness'\n },\n {\n title: 'Twists the star',\n label: 'Radial Shift'\n },\n {\n title: 'Number of Sides',\n label: 'sides'\n }\n ]\n}\n","export default {\n name: 'etoile',\n title: 'Outil Polygone/Etoile',\n buttons: [\n {\n title: 'Outil Etoile'\n },\n {\n title: 'Outil Polygone'\n }\n ],\n contextTools: [\n {\n title: 'Nombre de côtés',\n label: 'points'\n },\n {\n title: 'Précision',\n label: 'Précision'\n },\n {\n title: 'Torsion Etoile',\n label: 'Décalage Radial'\n },\n {\n title: 'Nombre de côtés',\n label: 'côtés'\n }\n ]\n}\n","export default {\n name: 'stjärna',\n title: 'Polygon/stjärnverktyg',\n buttons: [\n {\n title: 'Stjärnverktyg'\n },\n {\n title: 'Polygonverktyg'\n }\n ],\n contextTools: [\n {\n title: 'Antal sidor',\n label: 'poäng'\n },\n {\n title: 'Pointiness',\n label: 'Pointiness'\n },\n {\n title: 'Vrider stjärnan',\n label: 'Radiell förskjutning'\n },\n {\n title: 'Antal sidor',\n label: 'sidor'\n }\n ]\n}\n","export default {\n name: 'yıldız',\n title: 'Çokgen/Yıldız Aracı',\n buttons: [\n {\n title: 'Yıldız Aracı'\n },\n {\n title: 'Çokgen Aracı'\n }\n ],\n contextTools: [\n {\n title: 'Kenar Sayısı',\n label: 'noktalar'\n },\n {\n title: 'Sivrilik',\n label: 'Sivrilik'\n },\n {\n title: 'Yıldızı Kıvır',\n label: 'Döngüsel Kaydırma'\n },\n {\n title: 'Kenar Sayısı',\n label: 'kenarlar'\n }\n ]\n}\n","export default {\n name: 'зірка',\n title: 'Полігон/Зірка',\n buttons: [\n {\n title: 'Зірка'\n },\n {\n title: 'Полігон'\n }\n ],\n contextTools: [\n {\n title: 'Кількість Сторін',\n label: 'точки'\n },\n {\n title: 'Без точок',\n label: 'Без точок'\n },\n {\n title: 'Закручення зірки',\n label: 'Радіальне Зміщення'\n },\n {\n title: 'Кількість Сторін',\n label: 'сторони'\n }\n ]\n}\n","export default {\n name: '星形',\n title: 'Polygone/Star Tool',\n buttons: [\n {\n title: '星形工具'\n },\n {\n title: '多边形工具'\n }\n ],\n contextTools: [\n {\n title: '顶点',\n label: '顶点'\n },\n {\n title: '钝度',\n label: '钝度'\n },\n {\n title: '径向',\n label: '径向'\n },\n {\n title: '边数',\n label: '边数'\n }\n ]\n}\n"],"names":["name","loadExtensionTranslation","svgEditor","translationModule","lang","configObj","pref","__variableDynamicImportRuntime0__","_error","console","warn","i18next","addResourceBundle","default","init","svgCanvas","ChangeElementCommand","history","addToHistory","cmd","undoMgr","addCommandToHistory","$id","$click","selElems","started","newFO","showPanel","on","tool","style","removeProperty","display","setAttr","attr","val","changeSelectedAttribute","call","cot","n","Math","tan","sec","cos","t","callback","fbtitle","titleStar","titlePolygon","buttonTemplate","insertChildAtIndex","leftPanel","updateLeftPanel","setMode","label0","title0","label1","title1","label2","title2","label3","title3","panelTemplate","document","createElement","innerHTML","appendChild","content","cloneNode","addEventListener","event","target","value","point","i","length","elem","hasAttribute","oldPoint","getAttribute","oldPoints","radialshift","xpos","ypos","points","list","len","numberOfItems","pt","getItem","parseFloat","x","y","cx","cy","circumradius","Number","inradius","polyPoints","s","angle","PI","sin","isNaN","setAttribute","sides","oldSides","edg","mouseDown","opts","getMode","fill","getColor","stroke","strokeWidth","getStrokeWidth","addSVGElementsFromJson","element","start_x","start_y","id","getNextId","shape","r","r2","orient","edge","undefined","mouseMove","mouse_x","mouse_y","sqrt","RadiusMultiplier","getElementById","mouseUp","keep","selectedChanged","elems","selectedElement","multiselected","title","buttons","contextTools","label"],"mappings":"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"}