svgedit/dist/editor/extensions/ext-imagelib.js.map

1 line
34 KiB
Plaintext

{"version":3,"file":"ext-imagelib.js","sources":["../../../src/editor/extensions/ext-imagelib.js"],"sourcesContent":["/**\n * @file ext-imagelib.js\n *\n * @license MIT\n *\n * @copyright 2010 Alexis Deveria\n *\n */\n\nexport default {\n name: 'imagelib',\n async init ({$, decode64, importLocale, dropXMLInternalSubset}) {\n const imagelibStrings = await importLocale();\n\n const modularVersion = !('svgEditor' in window) ||\n !window.svgEditor ||\n window.svgEditor.modules !== false;\n\n const svgEditor = this;\n\n const {uiStrings, canvas: svgCanvas} = svgEditor;\n\n imagelibStrings.imgLibs = imagelibStrings.imgLibs.map(({name, url, description}) => {\n // Todo: Adopt some standard formatting library like `fluent.js` instead\n url = url\n // Keep these regexes as is in prep. for switching to `u` flag\n // which will require escaping\n .replace(\n // eslint-disable-next-line unicorn/better-regex\n /\\{modularVersion\\}/g,\n modularVersion\n ? (imagelibStrings.moduleEnding || '-es')\n : ''\n );\n return {name, url, description};\n });\n const allowedImageLibOrigins = imagelibStrings.imgLibs.map(({url}) => {\n try {\n return new URL(url).origin;\n } catch (err) {\n return location.origin;\n }\n });\n\n /**\n *\n * @returns {void}\n */\n function closeBrowser () {\n $('#imgbrowse_holder').hide();\n document.activeElement.blur(); // make sure focus is the body to correct issue #417\n }\n\n /**\n * @param {string} url\n * @returns {void}\n */\n function importImage (url) {\n const newImage = svgCanvas.addSVGElementFromJson({\n element: 'image',\n attr: {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n id: svgCanvas.getNextId(),\n style: 'pointer-events:inherit'\n }\n });\n svgCanvas.clearSelection();\n svgCanvas.addToSelection([newImage]);\n svgCanvas.setImageURL(url);\n }\n\n const pending = {};\n\n let mode = 's';\n let multiArr = [];\n let transferStopped = false;\n let preview, submit;\n\n /**\n * Contains the SVG to insert.\n * @typedef {PlainObject} ImageLibMessage\n * @property {\"imagelib\"} namespace Required to distinguish from any other messages of app.\n * @property {string} href Set to same value as previous `ImageLibMetaMessage` `id`.\n * @property {string} data The response (as an SVG string or URL)\n */\n\n /**\n * Used for setting meta-data before images are retrieved.\n * @typedef {PlainObject} ImageLibMetaMessage\n * @property {\"imagelib\"} namespace Required to distinguish from any other messages of app.\n * @property {string} name If the subsequent response is an SVG string or if `preview_url`\n * is present, will be used as the title for the preview image. When an\n * SVG string is present, will default to the first `<title>`'s contents or\n * \"(SVG #<Length of response>)\" if none is present. Otherwise, if `preview_url`\n * is present, will default to the empty string. Though `name` may be falsy,\n * it is always expected to be present for meta messages.\n * @property {string} id Identifier (the expected `href` for a subsequent response message);\n * used for ensuring the subsequent response can be tied to this `ImageLibMetaMessage` object.\n * @property {string} [preview_url] When import mode is multiple, used to set an image\n * source along with the name/title. If the subsequent response is an SVG string\n * and there is no `preview_url`, the default will just be to show the\n * name/title. If the response is not an SVG string, the default will be to\n * show that response (i.e., the URL).\n * @property {string} entry Set automatically with div holding retrieving\n * message (until ready to delete)\n * @todo Should use a separate Map instead of `entry`\n */\n\n /**\n * @param {PlainObject} cfg\n * @param {string} cfg.origin\n * @param {ImageLibMetaMessage|ImageLibMessage|string} cfg.data String is deprecated when parsed to JSON `ImageLibMessage`\n * @returns {void}\n */\n async function onMessage ({origin, data: response}) { // eslint-disable-line no-shadow\n if (!response || !['string', 'object'].includes(typeof response)) {\n // Do nothing\n return;\n }\n let id;\n let type;\n try {\n // Todo: This block can be removed (and the above check changed to\n // insist on an object) if embedAPI moves away from a string to\n // an object (if IE9 support not needed)\n response = typeof response === 'object' ? response : JSON.parse(response);\n if (response.namespace !== 'imagelib') {\n return;\n }\n if (!allowedImageLibOrigins.includes('*') && !allowedImageLibOrigins.includes(origin)) {\n // Todo: Surface this error to user?\n console.log(`Origin ${origin} not whitelisted for posting to ${window.origin}`); // eslint-disable-line no-console\n return;\n }\n const hasName = 'name' in response;\n const hasHref = 'href' in response;\n\n if (!hasName && transferStopped) {\n transferStopped = false;\n return;\n }\n\n if (hasHref) {\n id = response.href;\n response = response.data;\n }\n\n // Hide possible transfer dialog box\n $('#dialog_box').hide();\n type = hasName\n ? 'meta'\n : response.charAt(0);\n } catch (e) {\n // This block is for backward compatibility (for IAN and Openclipart);\n // should otherwise return\n if (typeof response === 'string') {\n const char1 = response.charAt(0);\n\n if (char1 !== '{' && transferStopped) {\n transferStopped = false;\n return;\n }\n\n if (char1 === '|') {\n const secondpos = response.indexOf('|', 1);\n id = response.substr(1, secondpos - 1);\n response = response.substr(secondpos + 1);\n type = response.charAt(0);\n }\n }\n }\n\n let entry, curMeta, svgStr, imgStr;\n switch (type) {\n case 'meta': {\n // Metadata\n transferStopped = false;\n curMeta = response;\n\n // Should be safe to add dynamic property as passed metadata\n pending[curMeta.id] = curMeta; // lgtm [js/remote-property-injection]\n\n const name = (curMeta.name || 'file');\n\n const message = uiStrings.notification.retrieving.replace('%s', name);\n\n if (mode !== 'm') {\n await $.process_cancel(message);\n transferStopped = true;\n // Should a message be sent back to the frame?\n\n $('#dialog_box').hide();\n } else {\n entry = $('<div>').text(message).data('id', curMeta.id);\n preview.append(entry);\n curMeta.entry = entry;\n }\n\n return;\n }\n case '<':\n svgStr = true;\n break;\n case 'd': {\n if (response.startsWith('data:image/svg+xml')) {\n const pre = 'data:image/svg+xml;base64,';\n const src = response.substring(pre.length);\n response = decode64(src);\n svgStr = true;\n break;\n } else if (response.startsWith('data:image/')) {\n imgStr = true;\n break;\n }\n }\n // Else fall through\n default:\n // TODO: See if there's a way to base64 encode the binary data stream\n // const str = 'data:;base64,' + svgedit.utilities.encode64(response, true);\n\n // Assume it's raw image data\n // importImage(str);\n\n // Don't give warning as postMessage may have been used by something else\n if (mode !== 'm') {\n closeBrowser();\n } else {\n pending[id].entry.remove();\n }\n // await $.alert('Unexpected data was returned: ' + response, function() {\n // if (mode !== 'm') {\n // closeBrowser();\n // } else {\n // pending[id].entry.remove();\n // }\n // });\n return;\n }\n\n switch (mode) {\n case 's':\n // Import one\n if (svgStr) {\n svgCanvas.importSvgString(response);\n } else if (imgStr) {\n importImage(response);\n }\n closeBrowser();\n break;\n case 'm': {\n // Import multiple\n multiArr.push([(svgStr ? 'svg' : 'img'), response]);\n curMeta = pending[id];\n let title;\n if (svgStr) {\n if (curMeta && curMeta.name) {\n title = curMeta.name;\n } else {\n // Try to find a title\n // `dropXMLInternalSubset` is to help prevent the billion laughs attack\n const xml = new DOMParser().parseFromString(dropXMLInternalSubset(response), 'text/xml').documentElement; // lgtm [js/xml-bomb]\n title = $(xml).children('title').first().text() || '(SVG #' + response.length + ')';\n }\n if (curMeta) {\n preview.children().each(function () {\n if ($(this).data('id') === id) {\n if (curMeta.preview_url) {\n $(this).html(\n $('<span>').append(\n $('<img>').attr('src', curMeta.preview_url),\n title\n )\n );\n } else {\n $(this).text(title);\n }\n submit.removeAttr('disabled');\n }\n });\n } else {\n preview.append(\n $('<div>').text(title)\n );\n submit.removeAttr('disabled');\n }\n } else {\n if (curMeta && curMeta.preview_url) {\n title = curMeta.name || '';\n entry = $('<span>').append(\n $('<img>').attr('src', curMeta.preview_url),\n title\n );\n } else {\n entry = $('<img>').attr('src', response);\n }\n\n if (curMeta) {\n preview.children().each(function () {\n if ($(this).data('id') === id) {\n $(this).html(entry);\n submit.removeAttr('disabled');\n }\n });\n } else {\n preview.append($('<div>').append(entry));\n submit.removeAttr('disabled');\n }\n }\n break;\n } case 'o': {\n // Open\n if (!svgStr) { break; }\n closeBrowser();\n const ok = await svgEditor.openPrep();\n if (!ok) { return; }\n svgCanvas.clear();\n svgCanvas.setSvgString(response);\n // updateCanvas();\n break;\n }\n }\n }\n\n // Receive `postMessage` data\n window.addEventListener('message', onMessage, true);\n\n /**\n * @param {boolean} show\n * @returns {void}\n */\n function toggleMulti (show) {\n $('#lib_framewrap, #imglib_opts').css({right: (show ? 200 : 10)});\n if (!preview) {\n preview = $('<div id=imglib_preview>').css({\n position: 'absolute',\n top: 45,\n right: 10,\n width: 180,\n bottom: 45,\n background: '#fff',\n overflow: 'auto'\n }).insertAfter('#lib_framewrap');\n\n submit = $('<button disabled>Import selected</button>')\n .appendTo('#imgbrowse')\n .on('click touchend', function () {\n $.each(multiArr, function (i) {\n const type = this[0];\n const data = this[1];\n if (type === 'svg') {\n svgCanvas.importSvgString(data);\n } else {\n importImage(data);\n }\n svgCanvas.moveSelectedElements(i * 20, i * 20, false);\n });\n preview.empty();\n multiArr = [];\n $('#imgbrowse_holder').hide();\n }).css({\n position: 'absolute',\n bottom: 10,\n right: -10\n });\n }\n\n preview.toggle(show);\n submit.toggle(show);\n }\n\n /**\n *\n * @returns {void}\n */\n function showBrowser () {\n let browser = $('#imgbrowse');\n if (!browser.length) {\n $('<div id=imgbrowse_holder><div id=imgbrowse class=toolbar_button>' +\n '</div></div>').insertAfter('#svg_docprops');\n browser = $('#imgbrowse');\n\n const allLibs = imagelibStrings.select_lib;\n\n const libOpts = $('<ul id=imglib_opts>').appendTo(browser);\n const frame = $('<iframe src=\"javascript:0\"/>').prependTo(browser).hide().wrap('<div id=lib_framewrap>');\n\n const header = $('<h1>').prependTo(browser).text(allLibs).css({\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%'\n });\n\n const cancel = $('<button>' + uiStrings.common.cancel + '</button>')\n .appendTo(browser)\n .on('click touchend', function () {\n $('#imgbrowse_holder').hide();\n }).css({\n position: 'absolute',\n top: 5,\n right: -10\n });\n\n const leftBlock = $('<span>').css({position: 'absolute', top: 5, left: 10}).appendTo(browser);\n\n const back = $('<button hidden>' + imagelibStrings.show_list + '</button>')\n .appendTo(leftBlock)\n .on('click touchend', function () {\n frame.attr('src', 'about:blank').hide();\n libOpts.show();\n header.text(allLibs);\n back.hide();\n }).css({\n 'margin-right': 5\n }).hide();\n\n /* const type = */ $('<select><option value=s>' +\n imagelibStrings.import_single + '</option><option value=m>' +\n imagelibStrings.import_multi + '</option><option value=o>' +\n imagelibStrings.open + '</option></select>').appendTo(leftBlock).change(function () {\n mode = $(this).val();\n switch (mode) {\n case 's':\n case 'o':\n toggleMulti(false);\n break;\n\n case 'm':\n // Import multiple\n toggleMulti(true);\n break;\n }\n }).css({\n 'margin-top': 10\n });\n\n cancel.prepend($.getSvgIcon('cancel', true));\n back.prepend($.getSvgIcon('tool_imagelib', true));\n\n imagelibStrings.imgLibs.forEach(function ({name, url, description}) {\n $('<li>')\n .appendTo(libOpts)\n .text(name)\n .on('click touchend', function () {\n frame.attr(\n 'src',\n url\n ).show();\n header.text(name);\n libOpts.hide();\n back.show();\n }).append(`<span>${description}</span>`);\n });\n } else {\n $('#imgbrowse_holder').show();\n }\n }\n\n const buttons = [{\n id: 'tool_imagelib',\n type: 'app_menu', // _flyout\n icon: 'imagelib.png',\n position: 4,\n events: {\n mouseup: showBrowser\n }\n }];\n\n return {\n svgicons: 'ext-imagelib.xml',\n buttons: imagelibStrings.buttons.map((button, i) => {\n return Object.assign(buttons[i], button);\n }),\n callback () {\n $('<style>').text(\n '#imgbrowse_holder {' +\n 'position: absolute;' +\n 'top: 0;' +\n 'left: 0;' +\n 'width: 100%;' +\n 'height: 100%;' +\n 'background-color: rgba(0, 0, 0, .5);' +\n 'z-index: 5;' +\n '}' +\n '#imgbrowse {' +\n 'position: absolute;' +\n 'top: 25px;' +\n 'left: 25px;' +\n 'right: 25px;' +\n 'bottom: 25px;' +\n 'min-width: 300px;' +\n 'min-height: 200px;' +\n 'background: #B0B0B0;' +\n 'border: 1px outset #777;' +\n '}' +\n '#imgbrowse h1 {' +\n 'font-size: 20px;' +\n 'margin: .4em;' +\n 'text-align: center;' +\n '}' +\n '#lib_framewrap,' +\n '#imgbrowse > ul {' +\n 'position: absolute;' +\n 'top: 45px;' +\n 'left: 10px;' +\n 'right: 10px;' +\n 'bottom: 10px;' +\n 'background: white;' +\n 'margin: 0;' +\n 'padding: 0;' +\n '}' +\n '#imgbrowse > ul {' +\n 'overflow: auto;' +\n '}' +\n '#imgbrowse > div {' +\n 'border: 1px solid #666;' +\n '}' +\n '#imglib_preview > div {' +\n 'padding: 5px;' +\n 'font-size: 12px;' +\n '}' +\n '#imglib_preview img {' +\n 'display: block;' +\n 'margin: 0 auto;' +\n 'max-height: 100px;' +\n '}' +\n '#imgbrowse li {' +\n 'list-style: none;' +\n 'padding: .5em;' +\n 'background: #E8E8E8;' +\n 'border-bottom: 1px solid #B0B0B0;' +\n 'line-height: 1.2em;' +\n 'font-style: sans-serif;' +\n '}' +\n '#imgbrowse li > span {' +\n 'color: #666;' +\n 'font-size: 15px;' +\n 'display: block;' +\n '}' +\n '#imgbrowse li:hover {' +\n 'background: #FFC;' +\n 'cursor: pointer;' +\n '}' +\n '#imgbrowse iframe {' +\n 'width: 100%;' +\n 'height: 100%;' +\n 'border: 0;' +\n '}'\n ).appendTo('head');\n }\n };\n }\n};\n"],"names":["name","init","closeBrowser","importImage","onMessage","toggleMulti","showBrowser","browser","$","length","insertAfter","allLibs","imagelibStrings","select_lib","libOpts","appendTo","frame","prependTo","hide","wrap","header","text","css","position","top","left","width","cancel","uiStrings","common","on","right","leftBlock","back","show_list","attr","show","import_single","import_multi","open","change","mode","val","prepend","getSvgIcon","imgLibs","forEach","url","description","append","preview","bottom","background","overflow","submit","each","multiArr","i","type","data","svgCanvas","importSvgString","moveSelectedElements","empty","toggle","origin","response","includes","JSON","parse","namespace","allowedImageLibOrigins","console","log","window","hasName","hasHref","transferStopped","id","href","charAt","char1","secondpos","indexOf","substr","curMeta","pending","message","notification","retrieving","replace","process_cancel","entry","svgStr","startsWith","pre","src","substring","decode64","imgStr","remove","push","title","xml","DOMParser","parseFromString","dropXMLInternalSubset","documentElement","children","first","preview_url","html","removeAttr","svgEditor","openPrep","ok","clear","setSvgString","newImage","addSVGElementFromJson","element","x","y","height","getNextId","style","clearSelection","addToSelection","setImageURL","document","activeElement","blur","importLocale","modularVersion","modules","canvas","map","moduleEnding","URL","err","location","addEventListener","buttons","icon","events","mouseup","svgicons","button","Object","assign","callback"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}