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
14 KiB

{"version":3,"file":"ext-grid.js","sources":["../../../../src/editor/extensions/ext-grid/ext-grid.js","../../../../src/editor/extensions/ext-grid/locale/en.js","../../../../src/editor/extensions/ext-grid/locale/fr.js","../../../../src/editor/extensions/ext-grid/locale/sv.js","../../../../src/editor/extensions/ext-grid/locale/tr.js","../../../../src/editor/extensions/ext-grid/locale/uk.js","../../../../src/editor/extensions/ext-grid/locale/zh-CN.js"],"sourcesContent":["/**\n * @file ext-grid.js\n *\n * @license Apache-2.0\n *\n * @copyright 2010 Redou Mine, 2010 Alexis Deveria\n *\n */\n\nconst name = 'grid'\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 await loadExtensionTranslation(svgEditor)\n const { svgCanvas } = svgEditor\n const { $id, $click, NS } = svgCanvas\n const svgdoc = $id('svgcanvas').ownerDocument\n const { assignAttributes } = svgCanvas\n const hcanvas = document.createElement('canvas')\n const canvBG = $id('canvasBackground')\n const units = svgCanvas.getTypeMap() // Assumes prior `init()` call on `units.js` module\n const intervals = [0.01, 0.1, 1, 10, 100, 1000]\n let showGrid = svgEditor.configObj.curConfig.showGrid || false\n\n hcanvas.style.display = 'none'\n svgEditor.$svgEditor.appendChild(hcanvas)\n\n const canvasGrid = svgdoc.createElementNS(NS.SVG, 'svg')\n assignAttributes(canvasGrid, {\n id: 'canvasGrid',\n width: '100%',\n height: '100%',\n x: 0,\n y: 0,\n overflow: 'visible',\n display: 'none'\n })\n canvBG.appendChild(canvasGrid)\n const gridDefs = svgdoc.createElementNS(NS.SVG, 'defs')\n // grid-pattern\n const gridPattern = svgdoc.createElementNS(NS.SVG, 'pattern')\n assignAttributes(gridPattern, {\n id: 'gridpattern',\n patternUnits: 'userSpaceOnUse',\n x: 0, // -(value.strokeWidth / 2), // position for strokewidth\n y: 0, // -(value.strokeWidth / 2), // position for strokewidth\n width: 100,\n height: 100\n })\n\n const gridimg = svgdoc.createElementNS(NS.SVG, 'image')\n assignAttributes(gridimg, {\n x: 0,\n y: 0,\n width: 100,\n height: 100\n })\n gridPattern.append(gridimg)\n gridDefs.append(gridPattern)\n $id('canvasGrid').appendChild(gridDefs)\n\n // grid-box\n const gridBox = svgdoc.createElementNS(NS.SVG, 'rect')\n assignAttributes(gridBox, {\n width: '100%',\n height: '100%',\n x: 0,\n y: 0,\n 'stroke-width': 0,\n stroke: 'none',\n fill: 'url(#gridpattern)',\n style: 'pointer-events: none; display:visible;'\n })\n $id('canvasGrid').appendChild(gridBox)\n\n /**\n *\n * @param {Float} zoom\n * @returns {void}\n */\n const updateGrid = (zoom) => {\n // TODO: Try this with <line> elements, then compare performance difference\n const unit = units[svgEditor.configObj.curConfig.baseUnit] // 1 = 1px\n const uMulti = unit * zoom\n // Calculate the main number interval\n const rawM = 100 / uMulti\n let multi = 1\n intervals.some((num) => {\n multi = num\n return rawM <= num\n })\n const bigInt = multi * uMulti\n\n // Set the canvas size to the width of the container\n hcanvas.width = bigInt\n hcanvas.height = bigInt\n const ctx = hcanvas.getContext('2d')\n const curD = 0.5\n const part = bigInt / 10\n\n ctx.globalAlpha = 0.2\n ctx.strokeStyle = svgEditor.configObj.curConfig.gridColor\n for (let i = 1; i < 10; i++) {\n const subD = Math.round(part * i) + 0.5\n // const lineNum = (i % 2)?12:10;\n const lineNum = 0\n ctx.moveTo(subD, bigInt)\n ctx.lineTo(subD, lineNum)\n ctx.moveTo(bigInt, subD)\n ctx.lineTo(lineNum, subD)\n }\n ctx.stroke()\n ctx.beginPath()\n ctx.globalAlpha = 0.5\n ctx.moveTo(curD, bigInt)\n ctx.lineTo(curD, 0)\n\n ctx.moveTo(bigInt, curD)\n ctx.lineTo(0, curD)\n ctx.stroke()\n\n const datauri = hcanvas.toDataURL('image/png')\n gridimg.setAttribute('width', bigInt)\n gridimg.setAttribute('height', bigInt)\n gridimg.parentNode.setAttribute('width', bigInt)\n gridimg.parentNode.setAttribute('height', bigInt)\n svgCanvas.setHref(gridimg, datauri)\n }\n\n /**\n *\n * @returns {void}\n */\n const gridUpdate = () => {\n if (showGrid) {\n updateGrid(svgCanvas.getZoom())\n }\n $id('canvasGrid').style.display = (showGrid) ? 'block' : 'none'\n $id('view_grid').pressed = showGrid\n }\n return {\n name: svgEditor.i18next.t(`${name}:name`),\n zoomChanged (zoom) {\n if (showGrid) { updateGrid(zoom) }\n },\n callback () {\n // Add the button and its handler(s)\n const buttonTemplate = document.createElement('template')\n const title = `${name}:buttons.0.title`\n buttonTemplate.innerHTML = `\n <se-button id=\"view_grid\" title=\"${title}\" src=\"grid.svg\"></se-button>\n `\n $id('editor_panel').append(buttonTemplate.content.cloneNode(true))\n $click($id('view_grid'), () => {\n svgEditor.configObj.curConfig.showGrid = showGrid = !showGrid\n gridUpdate()\n })\n if (showGrid) {\n gridUpdate()\n }\n }\n }\n }\n}\n","export default {\n name: 'View Grid',\n buttons: [\n {\n title: 'Show/Hide Grid'\n }\n ]\n}\n","export default {\n name: 'Grille',\n buttons: [\n {\n title: 'Afficher/Cacher Grille'\n }\n ]\n}\n","export default {\n name: 'Visa rutnät',\n buttons: [\n {\n title: 'Visa/dölj rutnät'\n }\n ]\n}\n","export default {\n name: 'Izgarayı Görüntüle',\n buttons: [\n {\n title: 'Izgara Göster/Gizle'\n }\n ]\n}\n","export default {\n name: 'Сітка',\n buttons: [\n {\n title: 'Показати/Заковати Сітку'\n }\n ]\n}\n","export default {\n name: '网格视图',\n buttons: [\n {\n title: '显示/隐藏网格'\n }\n ]\n}\n"],"names":["name","loadExtensionTranslation","svgEditor","translationModule","lang","configObj","pref","__variableDynamicImportRuntime0__","_error","console","warn","i18next","addResourceBundle","default","init","svgCanvas","$id","$click","NS","svgdoc","ownerDocument","assignAttributes","hcanvas","document","createElement","canvBG","units","getTypeMap","intervals","showGrid","curConfig","style","display","$svgEditor","appendChild","canvasGrid","createElementNS","SVG","id","width","height","x","y","overflow","gridDefs","gridPattern","patternUnits","gridimg","append","gridBox","stroke","fill","updateGrid","zoom","unit","baseUnit","uMulti","rawM","multi","some","num","bigInt","ctx","getContext","curD","part","globalAlpha","strokeStyle","gridColor","i","subD","Math","round","lineNum","moveTo","lineTo","beginPath","datauri","toDataURL","setAttribute","parentNode","setHref","gridUpdate","getZoom","pressed","t","zoomChanged","callback","buttonTemplate","title","innerHTML","content","cloneNode","buttons"],"mappings":"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"}