fix issue with locale extension builds
This commit is contained in:
10
dist/editor/extensions/ext-arrows/ext-arrows.js
vendored
10
dist/editor/extensions/ext-arrows/ext-arrows.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
14
dist/editor/extensions/ext-grid/ext-grid.js
vendored
14
dist/editor/extensions/ext-grid/ext-grid.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
12
dist/editor/extensions/ext-shapes/ext-shapes.js
vendored
12
dist/editor/extensions/ext-shapes/ext-shapes.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
12
dist/editor/extensions/ext-star/ext-star.js
vendored
12
dist/editor/extensions/ext-star/ext-star.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2
dist/editor/index.js.map
vendored
2
dist/editor/index.js.map
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
773
dist/editor/xdomain-index.html
vendored
Normal file
773
dist/editor/xdomain-index.html
vendored
Normal file
@@ -0,0 +1,773 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1" />
|
||||||
|
<meta name="viewport"
|
||||||
|
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
||||||
|
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||||
|
|
||||||
|
<!-- No-op until loaded dynamically (could make configurable) -->
|
||||||
|
<link rel="shortcut icon" href="data:image/x-icon;," type="image/x-icon" />
|
||||||
|
|
||||||
|
<!-- STYLESHEETS (others loaded dynamically) -->
|
||||||
|
<style id="styleoverrides" media="screen"></style>
|
||||||
|
<link href="svgedit.css" rel="stylesheet" media="all"></link>
|
||||||
|
|
||||||
|
<!-- SCRIPTS -->
|
||||||
|
|
||||||
|
<!-- As yet no ES6 Module support -->
|
||||||
|
<!--{if jquery_release}>
|
||||||
|
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
|
||||||
|
<!{else}-->
|
||||||
|
<script src="jquery.min.js"></script>
|
||||||
|
<!--{endif}-->
|
||||||
|
|
||||||
|
<!-- As yet no ES6 Module support -->
|
||||||
|
<script src="jquery-ui/jquery-ui-1.8.17.custom.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- If you do not wish to add extensions by URL, you can add calls
|
||||||
|
within the following file to svgEditor.setConfig -->
|
||||||
|
<script type="module" src="xdomain-index.js"></script>
|
||||||
|
|
||||||
|
<!-- FEEDS -->
|
||||||
|
<link rel="alternate" type="application/atom+xml"
|
||||||
|
title="SVG-edit General Discussion"
|
||||||
|
href="https://groups.google.com/group/svg-edit/feed/atom_v1_0_msgs.xml"/>
|
||||||
|
<link rel="alternate" type="application/atom+xml"
|
||||||
|
title="SVG-edit Updates (Commits)"
|
||||||
|
href="https://github.com/SVG-Edit/svgedit/commits/master.atom"/>
|
||||||
|
|
||||||
|
<title>SVG-edit</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div id="svg_container" style="visibility: hidden;">
|
||||||
|
<div id="svg_editor" role="main">
|
||||||
|
<div id="rulers">
|
||||||
|
<div id="ruler_corner"></div>
|
||||||
|
<div id="ruler_x">
|
||||||
|
<div>
|
||||||
|
<canvas height="15"></canvas>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="ruler_y">
|
||||||
|
<div>
|
||||||
|
<canvas width="15"></canvas>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="workarea">
|
||||||
|
<div id="svgcanvas" style="position: relative;">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="sidepanels">
|
||||||
|
<div id="layerpanel">
|
||||||
|
<h3 id="layersLabel">Layers</h3>
|
||||||
|
<fieldset id="layerbuttons">
|
||||||
|
<div id="layer_new" class="layer_button" title="New Layer"></div>
|
||||||
|
<div id="layer_delete" class="layer_button" title="Delete Layer"></div>
|
||||||
|
<div id="layer_rename" class="layer_button" title="Rename Layer"></div>
|
||||||
|
<div id="layer_up" class="layer_button" title="Move Layer Up"></div>
|
||||||
|
<div id="layer_down" class="layer_button" title="Move Layer Down"></div>
|
||||||
|
<div id="layer_moreopts" class="layer_button" title="More Options"></div>
|
||||||
|
</fieldset>
|
||||||
|
<table id="layerlist">
|
||||||
|
<tr class="layer">
|
||||||
|
<td class="layervis"></td>
|
||||||
|
<td class="layername">Layer 1</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<span id="selLayerLabel">Move elements to:</span>
|
||||||
|
<select id="selLayerNames" title="Move selected elements to a different layer"
|
||||||
|
disabled="disabled">
|
||||||
|
<option selected="selected" value="layer1">Layer 1</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div id="sidepanel_handle"
|
||||||
|
title="Drag left/right to resize side panel [X]">L a y e r s
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="main_button">
|
||||||
|
<div id="main_icon" class="tool_button" title="Main Menu">
|
||||||
|
<span>SVG-Edit</span>
|
||||||
|
<div id="logo"></div>
|
||||||
|
<div class="dropdown"></div>
|
||||||
|
</div>
|
||||||
|
<div id="main_menu">
|
||||||
|
<!-- File-like buttons: New, Save, Source -->
|
||||||
|
<ul>
|
||||||
|
<li id="tool_clear">
|
||||||
|
<div></div>
|
||||||
|
New Image (N)
|
||||||
|
</li>
|
||||||
|
<li id="tool_open" style="display:none;">
|
||||||
|
<div></div>
|
||||||
|
Open SVG
|
||||||
|
</li>
|
||||||
|
<li id="tool_import" style="display:none;">
|
||||||
|
<div></div>
|
||||||
|
Import Image
|
||||||
|
</li>
|
||||||
|
<li id="tool_save">
|
||||||
|
<div></div>
|
||||||
|
Save Image (S)
|
||||||
|
</li>
|
||||||
|
<li id="tool_export">
|
||||||
|
<div></div>
|
||||||
|
Export
|
||||||
|
</li>
|
||||||
|
<li id="tool_docprops">
|
||||||
|
<div></div>
|
||||||
|
Document Properties (D)
|
||||||
|
</li>
|
||||||
|
<li id="tool_editor_prefs">
|
||||||
|
<div></div>
|
||||||
|
Editor Preferences
|
||||||
|
</li>
|
||||||
|
<li id="tool_editor_homepage">
|
||||||
|
<div></div>
|
||||||
|
SVG-Edit Home Page
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="tools_top" class="tools_panel">
|
||||||
|
<div id="editor_panel">
|
||||||
|
<div class="tool_sep"></div>
|
||||||
|
<div class="push_button" id="tool_source" title="Edit Source [U]"></div>
|
||||||
|
<div class="tool_button" id="tool_wireframe" title="Wireframe Mode [F]"></div>
|
||||||
|
</div>
|
||||||
|
<!-- History buttons -->
|
||||||
|
<div id="history_panel">
|
||||||
|
<div class="tool_sep"></div>
|
||||||
|
<div class="push_button tool_button_disabled" id="tool_undo"
|
||||||
|
title="Undo [Z]"></div>
|
||||||
|
<div class="push_button tool_button_disabled" id="tool_redo"
|
||||||
|
title="Redo [Y]"></div>
|
||||||
|
</div>
|
||||||
|
<!-- Buttons when a single element is selected -->
|
||||||
|
<div id="selected_panel">
|
||||||
|
<div class="toolset">
|
||||||
|
<div class="tool_sep"></div>
|
||||||
|
<div class="push_button" id="tool_clone"
|
||||||
|
title="Duplicate Element [D]"></div>
|
||||||
|
<div class="push_button" id="tool_delete"
|
||||||
|
title="Delete Element [Delete/Backspace]"></div>
|
||||||
|
<div class="tool_sep"></div>
|
||||||
|
<div class="push_button" id="tool_move_top"
|
||||||
|
title="Bring to Front [ Ctrl+Shift+] ]"></div>
|
||||||
|
<div class="push_button" id="tool_move_bottom"
|
||||||
|
title="Send to Back [ Ctrl+Shift+[ ]"></div>
|
||||||
|
<div class="push_button" id="tool_topath"
|
||||||
|
title="Convert to Path"></div>
|
||||||
|
<div class="push_button" id="tool_reorient"
|
||||||
|
title="Reorient path"></div>
|
||||||
|
<div class="push_button" id="tool_make_link"
|
||||||
|
title="Make (hyper)link"></div>
|
||||||
|
<div class="tool_sep"></div>
|
||||||
|
<label id="idLabel" title="Identify the element">
|
||||||
|
<span>id:</span>
|
||||||
|
<input id="elem_id" class="attr_changer"
|
||||||
|
data-attr="id" size="10" type="text"/>
|
||||||
|
</label>
|
||||||
|
<label id="classLabel" title="Element class">
|
||||||
|
<span>class:</span>
|
||||||
|
<input id="elem_class" class="attr_changer"
|
||||||
|
data-attr="class" size="10" type="text"/>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<label id="tool_angle" title="Change rotation angle" class="toolset">
|
||||||
|
<span id="angleLabel" class="icon_label"></span>
|
||||||
|
<input id="angle" size="2" value="0" type="text"/>
|
||||||
|
</label>
|
||||||
|
<div class="toolset" id="tool_blur" title="Change gaussian blur value">
|
||||||
|
<label>
|
||||||
|
<span id="blurLabel" class="icon_label"></span>
|
||||||
|
<input id="blur" size="2" value="0" type="text"/>
|
||||||
|
</label>
|
||||||
|
<div id="blur_dropdown" class="dropdown">
|
||||||
|
<button></button>
|
||||||
|
<ul>
|
||||||
|
<li class="special"><div id="blur_slider"></div></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="dropdown toolset" id="tool_position" title="Align Element to Page">
|
||||||
|
<div id="cur_position" class="icon_label"></div>
|
||||||
|
<button></button>
|
||||||
|
</div>
|
||||||
|
<div id="xy_panel" class="toolset">
|
||||||
|
<label>
|
||||||
|
x: <input id="selected_x" class="attr_changer"
|
||||||
|
title="Change X coordinate" size="3" data-attr="x"/>
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
y: <input id="selected_y" class="attr_changer"
|
||||||
|
title="Change Y coordinate" size="3" data-attr="y"/>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- Buttons when multiple elements are selected -->
|
||||||
|
<div id="multiselected_panel">
|
||||||
|
<div class="tool_sep"></div>
|
||||||
|
<div class="push_button" id="tool_clone_multi"
|
||||||
|
title="Clone Elements [C]"></div>
|
||||||
|
<div class="push_button" id="tool_delete_multi"
|
||||||
|
title="Delete Selected Elements [Delete/Backspace]"></div>
|
||||||
|
<div class="tool_sep"></div>
|
||||||
|
<div class="push_button" id="tool_group_elements" title="Group Elements [G]"></div>
|
||||||
|
<div class="push_button" id="tool_make_link_multi" title="Make (hyper)link"></div>
|
||||||
|
<div class="push_button" id="tool_alignleft" title="Align Left"></div>
|
||||||
|
<div class="push_button" id="tool_aligncenter" title="Align Center"></div>
|
||||||
|
<div class="push_button" id="tool_alignright" title="Align Right"></div>
|
||||||
|
<div class="push_button" id="tool_aligntop" title="Align Top"></div>
|
||||||
|
<div class="push_button" id="tool_alignmiddle" title="Align Middle"></div>
|
||||||
|
<div class="push_button" id="tool_alignbottom" title="Align Bottom"></div>
|
||||||
|
<label id="tool_align_relative">
|
||||||
|
<span id="relativeToLabel">relative to:</span>
|
||||||
|
<select id="align_relative_to" title="Align relative to ...">
|
||||||
|
<option id="selected_objects" value="selected">selected objects</option>
|
||||||
|
<option id="largest_object" value="largest">largest object</option>
|
||||||
|
<option id="smallest_object" value="smallest">smallest object</option>
|
||||||
|
<option id="page" value="page">page</option>
|
||||||
|
</select>
|
||||||
|
</label>
|
||||||
|
<div class="tool_sep"></div>
|
||||||
|
</div>
|
||||||
|
<div id="rect_panel">
|
||||||
|
<div class="toolset">
|
||||||
|
<label id="rect_width_tool" title="Change rectangle width">
|
||||||
|
<span id="rwidthLabel" class="icon_label"></span>
|
||||||
|
<input id="rect_width" class="attr_changer" size="3" data-attr="width"/>
|
||||||
|
</label>
|
||||||
|
<label id="rect_height_tool" title="Change rectangle height">
|
||||||
|
<span id="rheightLabel" class="icon_label"></span>
|
||||||
|
<input id="rect_height" class="attr_changer" size="3" data-attr="height"/>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<label id="cornerRadiusLabel" class="toolset"
|
||||||
|
title="Change Rectangle Corner Radius">
|
||||||
|
<span class="icon_label"></span>
|
||||||
|
<input id="rect_rx" size="3" value="0" type="text" data-attr="Corner Radius"/>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div id="image_panel">
|
||||||
|
<div class="toolset">
|
||||||
|
<label><span id="iwidthLabel" class="icon_label"></span>
|
||||||
|
<input id="image_width" class="attr_changer"
|
||||||
|
title="Change image width" size="3" data-attr="width"/>
|
||||||
|
</label>
|
||||||
|
<label><span id="iheightLabel" class="icon_label"></span>
|
||||||
|
<input id="image_height" class="attr_changer"
|
||||||
|
title="Change image height" size="3" data-attr="height"/>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="toolset">
|
||||||
|
<label id="tool_image_url">url:
|
||||||
|
<input id="image_url" type="text" title="Change URL" size="35"/>
|
||||||
|
</label>
|
||||||
|
<label id="tool_change_image">
|
||||||
|
<button id="change_image_url" style="display: none;">Change Image</button>
|
||||||
|
<span id="url_notice"
|
||||||
|
title="NOTE: This image cannot be embedded. It will depend on this path to be displayed"></span>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="circle_panel">
|
||||||
|
<div class="toolset">
|
||||||
|
<label id="tool_circle_cx">cx:
|
||||||
|
<input id="circle_cx" class="attr_changer"
|
||||||
|
title="Change circle's cx coordinate" size="3" data-attr="cx"/>
|
||||||
|
</label>
|
||||||
|
<label id="tool_circle_cy">cy:
|
||||||
|
<input id="circle_cy" class="attr_changer"
|
||||||
|
title="Change circle's cy coordinate" size="3" data-attr="cy"/>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="toolset">
|
||||||
|
<label id="tool_circle_r">r:
|
||||||
|
<input id="circle_r" class="attr_changer"
|
||||||
|
title="Change circle's radius" size="3" data-attr="r"/>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="ellipse_panel">
|
||||||
|
<div class="toolset">
|
||||||
|
<label id="tool_ellipse_cx">cx:
|
||||||
|
<input id="ellipse_cx" class="attr_changer"
|
||||||
|
title="Change ellipse's cx coordinate" size="3" data-attr="cx"/>
|
||||||
|
</label>
|
||||||
|
<label id="tool_ellipse_cy">cy:
|
||||||
|
<input id="ellipse_cy" class="attr_changer"
|
||||||
|
title="Change ellipse's cy coordinate" size="3" data-attr="cy"/>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="toolset">
|
||||||
|
<label id="tool_ellipse_rx">rx:
|
||||||
|
<input id="ellipse_rx" class="attr_changer"
|
||||||
|
title="Change ellipse's x radius" size="3" data-attr="rx"/>
|
||||||
|
</label>
|
||||||
|
<label id="tool_ellipse_ry">ry:
|
||||||
|
<input id="ellipse_ry" class="attr_changer"
|
||||||
|
title="Change ellipse's y radius" size="3" data-attr="ry"/>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="line_panel">
|
||||||
|
<div class="toolset">
|
||||||
|
<label id="tool_line_x1">x1:
|
||||||
|
<input id="line_x1" class="attr_changer"
|
||||||
|
title="Change line's starting x coordinate" size="3" data-attr="x1"/>
|
||||||
|
</label>
|
||||||
|
<label id="tool_line_y1">y1:
|
||||||
|
<input id="line_y1" class="attr_changer"
|
||||||
|
title="Change line's starting y coordinate" size="3" data-attr="y1"/>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="toolset">
|
||||||
|
<label id="tool_line_x2">x2:
|
||||||
|
<input id="line_x2" class="attr_changer"
|
||||||
|
title="Change line's ending x coordinate" size="3" data-attr="x2"/>
|
||||||
|
</label>
|
||||||
|
<label id="tool_line_y2">y2:
|
||||||
|
<input id="line_y2" class="attr_changer"
|
||||||
|
title="Change line's ending y coordinate" size="3" data-attr="y2"/>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="text_panel">
|
||||||
|
<div class="toolset">
|
||||||
|
<div class="tool_button" id="tool_bold"
|
||||||
|
title="Bold Text [B]"><span></span>B</div>
|
||||||
|
<div class="tool_button" id="tool_italic"
|
||||||
|
title="Italic Text [I]"><span></span>i</div>
|
||||||
|
</div>
|
||||||
|
<div class="toolset" id="tool_font_family">
|
||||||
|
<label>
|
||||||
|
<!-- Font family -->
|
||||||
|
<input id="font_family" type="text" title="Change Font Family" size="12"/>
|
||||||
|
</label>
|
||||||
|
<div id="font_family_dropdown" class="dropdown">
|
||||||
|
<button></button>
|
||||||
|
<ul>
|
||||||
|
<li style="font-family:serif">Serif</li>
|
||||||
|
<li style="font-family:sans-serif">Sans-serif</li>
|
||||||
|
<li style="font-family:cursive">Cursive</li>
|
||||||
|
<li style="font-family:fantasy">Fantasy</li>
|
||||||
|
<li style="font-family:monospace">Monospace</li>
|
||||||
|
<li style="font-family:courier">Courier</li>
|
||||||
|
<li style="font-family:helvetica">Helvetica</li>
|
||||||
|
<li style="font-family:times">Times</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<label id="tool_font_size" title="Change Font Size">
|
||||||
|
<span id="font_sizeLabel" class="icon_label"></span>
|
||||||
|
<input id="font_size" size="3" value="0" type="text"/>
|
||||||
|
</label>
|
||||||
|
<!-- Not visible, but still used -->
|
||||||
|
<input id="text" type="text" size="35"/>
|
||||||
|
</div>
|
||||||
|
<!-- formerly gsvg_panel -->
|
||||||
|
<div id="container_panel">
|
||||||
|
<div class="tool_sep"></div>
|
||||||
|
<!-- Add viewBox field here? -->
|
||||||
|
<label id="group_title" title="Group identification label">
|
||||||
|
<span>label:</span>
|
||||||
|
<input id="g_title" data-attr="title" size="10" type="text"/>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div id="use_panel">
|
||||||
|
<div class="push_button" id="tool_unlink_use"
|
||||||
|
title="Break link to reference element (make unique)"></div>
|
||||||
|
</div>
|
||||||
|
<div id="g_panel">
|
||||||
|
<div class="push_button" id="tool_ungroup" title="Ungroup Elements [G]"></div>
|
||||||
|
</div>
|
||||||
|
<!-- For anchor elements -->
|
||||||
|
<div id="a_panel">
|
||||||
|
<label id="tool_link_url" title="Set link URL (leave empty to remove)">
|
||||||
|
<span id="linkLabel" class="icon_label"></span>
|
||||||
|
<input id="link_url" type="text" size="35"/>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div id="path_node_panel">
|
||||||
|
<div class="tool_sep"></div>
|
||||||
|
<div id="tool_node_link" class="tool_button push_button_pressed"
|
||||||
|
title="Link Control Points"></div>
|
||||||
|
<div class="tool_sep"></div>
|
||||||
|
<label id="tool_node_x">x:
|
||||||
|
<input id="path_node_x" class="attr_changer"
|
||||||
|
title="Change node's x coordinate" size="3" data-attr="x"/>
|
||||||
|
</label>
|
||||||
|
<label id="tool_node_y">y:
|
||||||
|
<input id="path_node_y" class="attr_changer"
|
||||||
|
title="Change node's y coordinate" size="3" data-attr="y"/>
|
||||||
|
</label>
|
||||||
|
<select id="seg_type" title="Change Segment type">
|
||||||
|
<option id="straight_segments"
|
||||||
|
selected="selected" value="4">Straight</option>
|
||||||
|
<option id="curve_segments" value="6">Curve</option>
|
||||||
|
</select>
|
||||||
|
<div class="tool_button" id="tool_node_clone" title="Clone Node"></div>
|
||||||
|
<div class="tool_button" id="tool_node_delete" title="Delete Node"></div>
|
||||||
|
<div class="tool_button" id="tool_openclose_path" title="Open/close sub-path"></div>
|
||||||
|
<div class="tool_button" id="tool_add_subpath" title="Add sub-path"></div>
|
||||||
|
</div>
|
||||||
|
</div> <!-- tools_top -->
|
||||||
|
<div id="cur_context_panel">
|
||||||
|
</div>
|
||||||
|
<div id="tools_left" class="tools_panel">
|
||||||
|
<div class="tool_button" id="tool_select" title="Select Tool"></div>
|
||||||
|
<div class="tool_button" id="tool_fhpath" title="Pencil Tool"></div>
|
||||||
|
<div class="tool_button" id="tool_line" title="Line Tool"></div>
|
||||||
|
<div id="tools_rect_show" class="tool_button flyout_current"
|
||||||
|
title="Square/Rect Tool">
|
||||||
|
<div class="flyout_arrow_horiz"></div>
|
||||||
|
</div>
|
||||||
|
<div id="tools_ellipse_show" class="tool_button flyout_current"
|
||||||
|
title="Ellipse/Circle Tool">
|
||||||
|
<div class="flyout_arrow_horiz"></div>
|
||||||
|
</div>
|
||||||
|
<div class="tool_button" id="tool_path" title="Path Tool"></div>
|
||||||
|
<div class="tool_button" id="tool_text" title="Text Tool"></div>
|
||||||
|
<div class="tool_button" id="tool_image" title="Image Tool"></div>
|
||||||
|
<div class="tool_button" id="tool_zoom" title="Zoom Tool [Ctrl+Up/Down]"></div>
|
||||||
|
<div style="display: none;">
|
||||||
|
<div id="tool_rect" title="Rectangle"></div>
|
||||||
|
<div id="tool_square" title="Square"></div>
|
||||||
|
<div id="tool_fhrect" title="Free-Hand Rectangle"></div>
|
||||||
|
<div id="tool_ellipse" title="Ellipse"></div>
|
||||||
|
<div id="tool_circle" title="Circle"></div>
|
||||||
|
<div id="tool_fhellipse" title="Free-Hand Ellipse"></div>
|
||||||
|
</div>
|
||||||
|
</div> <!-- tools_left -->
|
||||||
|
<div id="tools_bottom" class="tools_panel">
|
||||||
|
<!-- Zoom buttons -->
|
||||||
|
<div id="zoom_panel" class="toolset" title="Change zoom level">
|
||||||
|
<label>
|
||||||
|
<span id="zoomLabel" class="zoom_tool icon_label"></span>
|
||||||
|
<input id="zoom" size="3" value="100" type="text"/>
|
||||||
|
</label>
|
||||||
|
<div id="zoom_dropdown" class="dropdown">
|
||||||
|
<button></button>
|
||||||
|
<ul>
|
||||||
|
<li>1000%</li>
|
||||||
|
<li>400%</li>
|
||||||
|
<li>200%</li>
|
||||||
|
<li>100%</li>
|
||||||
|
<li>50%</li>
|
||||||
|
<li>25%</li>
|
||||||
|
<li id="fit_to_canvas" data-val="canvas">Fit to canvas</li>
|
||||||
|
<li id="fit_to_sel" data-val="selection">Fit to selection</li>
|
||||||
|
<li id="fit_to_layer_content" data-val="layer">Fit to layer content</li>
|
||||||
|
<li id="fit_to_all" data-val="content">Fit to all content</li>
|
||||||
|
<li>100%</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="tool_sep"></div>
|
||||||
|
</div>
|
||||||
|
<div id="tools_bottom_2">
|
||||||
|
<div id="color_tools">
|
||||||
|
<div class="color_tool" id="tool_fill">
|
||||||
|
<label class="icon_label" for="fill_color" title="Change fill color"></label>
|
||||||
|
<div class="color_block">
|
||||||
|
<div id="fill_bg"></div>
|
||||||
|
<div id="fill_color" class="color_block"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="color_tool" id="tool_stroke">
|
||||||
|
<label class="icon_label" title="Change stroke color"></label>
|
||||||
|
<div class="color_block">
|
||||||
|
<div id="stroke_bg"></div>
|
||||||
|
<div id="stroke_color" class="color_block" title="Change stroke color"></div>
|
||||||
|
</div>
|
||||||
|
<label class="stroke_label">
|
||||||
|
<input id="stroke_width"
|
||||||
|
title="Change stroke width by 1, shift-click to change by 0.1"
|
||||||
|
size="2" value="5" type="text" data-attr="Stroke Width"/>
|
||||||
|
</label>
|
||||||
|
<div id="toggle_stroke_tools" title="Show/hide more stroke tools"></div>
|
||||||
|
<label class="stroke_tool">
|
||||||
|
<select id="stroke_style" title="Change stroke dash style">
|
||||||
|
<option selected="selected" value="none">—</option>
|
||||||
|
<option value="2,2">...</option>
|
||||||
|
<option value="5,5">- -</option>
|
||||||
|
<option value="5,2,2,2">- .</option>
|
||||||
|
<option value="5,2,2,2,2,2">- ..</option>
|
||||||
|
</select>
|
||||||
|
</label>
|
||||||
|
<div class="stroke_tool dropdown" id="stroke_linejoin">
|
||||||
|
<div id="cur_linejoin" title="Linejoin: Miter"></div>
|
||||||
|
<button></button>
|
||||||
|
</div>
|
||||||
|
<div class="stroke_tool dropdown" id="stroke_linecap">
|
||||||
|
<div id="cur_linecap" title="Linecap: Butt"></div>
|
||||||
|
<button></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="color_tool" id="tool_opacity" title="Change selected item opacity">
|
||||||
|
<label>
|
||||||
|
<span id="group_opacityLabel" class="icon_label"></span>
|
||||||
|
<input id="group_opacity" size="3" value="100" type="text"/>
|
||||||
|
</label>
|
||||||
|
<div id="opacity_dropdown" class="dropdown">
|
||||||
|
<button></button>
|
||||||
|
<ul>
|
||||||
|
<li>0%</li>
|
||||||
|
<li>25%</li>
|
||||||
|
<li>50%</li>
|
||||||
|
<li>75%</li>
|
||||||
|
<li>100%</li>
|
||||||
|
<li class="special"><div id="opac_slider"></div></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="tools_bottom_3">
|
||||||
|
<div id="palette_holder">
|
||||||
|
<div id="palette"
|
||||||
|
title="Click to change fill color, shift-click to change stroke color">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- <div id="copyright"><span id="copyrightLabel">Powered by</span> <a href="https://github.com/SVG-Edit/svgedit" target="_blank">SVG-edit v2.6-beta</a></div> -->
|
||||||
|
</div>
|
||||||
|
<div id="option_lists" class="dropdown">
|
||||||
|
<ul id="linejoin_opts">
|
||||||
|
<li class="tool_button current" id="linejoin_miter" title="Linejoin: Miter"></li>
|
||||||
|
<li class="tool_button" id="linejoin_round" title="Linejoin: Round"></li>
|
||||||
|
<li class="tool_button" id="linejoin_bevel" title="Linejoin: Bevel"></li>
|
||||||
|
</ul>
|
||||||
|
<ul id="linecap_opts">
|
||||||
|
<li class="tool_button current" id="linecap_butt" title="Linecap: Butt"></li>
|
||||||
|
<li class="tool_button" id="linecap_square" title="Linecap: Square"></li>
|
||||||
|
<li class="tool_button" id="linecap_round" title="Linecap: Round"></li>
|
||||||
|
</ul>
|
||||||
|
<ul id="position_opts" class="optcols3">
|
||||||
|
<li class="push_button" id="tool_posleft" title="Align Left"></li>
|
||||||
|
<li class="push_button" id="tool_poscenter" title="Align Center"></li>
|
||||||
|
<li class="push_button" id="tool_posright" title="Align Right"></li>
|
||||||
|
<li class="push_button" id="tool_postop" title="Align Top"></li>
|
||||||
|
<li class="push_button" id="tool_posmiddle" title="Align Middle"></li>
|
||||||
|
<li class="push_button" id="tool_posbottom" title="Align Bottom"></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<!-- hidden divs -->
|
||||||
|
<div id="color_picker"></div>
|
||||||
|
</div> <!-- svg_editor -->
|
||||||
|
<div id="svg_source_editor">
|
||||||
|
<div class="overlay"></div>
|
||||||
|
<div id="svg_source_container">
|
||||||
|
<div id="tool_source_back" class="toolbar_button">
|
||||||
|
<button id="tool_source_save">Apply Changes</button>
|
||||||
|
<button id="tool_source_cancel">Cancel</button>
|
||||||
|
</div>
|
||||||
|
<div id="save_output_btns">
|
||||||
|
<p id="copy_save_note">
|
||||||
|
Copy the contents of this box into a text editor,
|
||||||
|
then save the file with a .svg extension.</p>
|
||||||
|
<button id="copy_save_done">Done</button>
|
||||||
|
</div>
|
||||||
|
<form>
|
||||||
|
<textarea id="svg_source_textarea" spellcheck="false"></textarea>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="svg_docprops">
|
||||||
|
<div class="overlay"></div>
|
||||||
|
<div id="svg_docprops_container">
|
||||||
|
<div id="tool_docprops_back" class="toolbar_button">
|
||||||
|
<button id="tool_docprops_save">OK</button>
|
||||||
|
<button id="tool_docprops_cancel">Cancel</button>
|
||||||
|
</div>
|
||||||
|
<fieldset id="svg_docprops_docprops">
|
||||||
|
<legend id="svginfo_image_props">Image Properties</legend>
|
||||||
|
<label>
|
||||||
|
<span id="svginfo_title">Title:</span>
|
||||||
|
<input type="text" id="canvas_title"/>
|
||||||
|
</label>
|
||||||
|
<fieldset id="change_resolution">
|
||||||
|
<legend id="svginfo_dim">Canvas Dimensions</legend>
|
||||||
|
<label>
|
||||||
|
<span id="svginfo_width">width:</span>
|
||||||
|
<input type="text" id="canvas_width" size="6"/>
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<span id="svginfo_height">height:</span>
|
||||||
|
<input type="text" id="canvas_height" size="6"/>
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<select id="resolution">
|
||||||
|
<option id="selectedPredefined"
|
||||||
|
selected="selected">Select predefined:</option>
|
||||||
|
<option>640x480</option>
|
||||||
|
<option>800x600</option>
|
||||||
|
<option>1024x768</option>
|
||||||
|
<option>1280x960</option>
|
||||||
|
<option>1600x1200</option>
|
||||||
|
<option id="fitToContent"
|
||||||
|
value="content">Fit to Content</option>
|
||||||
|
</select>
|
||||||
|
</label>
|
||||||
|
</fieldset>
|
||||||
|
<fieldset id="image_save_opts">
|
||||||
|
<legend id="includedImages">Included Images</legend>
|
||||||
|
<label>
|
||||||
|
<input type="radio" name="image_opt" value="embed" checked="checked"/>
|
||||||
|
<span id="image_opt_embed">Embed data (local files)</span>
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<input type="radio" name="image_opt" value="ref"/>
|
||||||
|
<span id="image_opt_ref">Use file reference</span>
|
||||||
|
</label>
|
||||||
|
</fieldset>
|
||||||
|
</fieldset>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="svg_prefs">
|
||||||
|
<div class="overlay"></div>
|
||||||
|
<div id="svg_prefs_container">
|
||||||
|
<div id="tool_prefs_back" class="toolbar_button">
|
||||||
|
<button id="tool_prefs_save">OK</button>
|
||||||
|
<button id="tool_prefs_cancel">Cancel</button>
|
||||||
|
</div>
|
||||||
|
<fieldset>
|
||||||
|
<legend id="svginfo_editor_prefs">Editor Preferences</legend>
|
||||||
|
<label>
|
||||||
|
<span id="svginfo_lang">Language:</span>
|
||||||
|
<!-- Source: https://en.wikipedia.org/wiki/Language_names -->
|
||||||
|
<select id="lang_select">
|
||||||
|
<option id="lang_ar" value="ar">العربية</option>
|
||||||
|
<option id="lang_cs" value="cs">Čeština</option>
|
||||||
|
<option id="lang_de" value="de">Deutsch</option>
|
||||||
|
<option id="lang_en" value="en" selected="selected">English</option>
|
||||||
|
<option id="lang_es" value="es">Español</option>
|
||||||
|
<option id="lang_fa" value="fa">فارسی</option>
|
||||||
|
<option id="lang_fr" value="fr">Français</option>
|
||||||
|
<option id="lang_fy" value="fy">Frysk</option>
|
||||||
|
<option id="lang_hi" value="hi">हिन्दी, हिंदी</option>
|
||||||
|
<option id="lang_it" value="it">Italiano</option>
|
||||||
|
<option id="lang_ja" value="ja">日本語</option>
|
||||||
|
<option id="lang_nl" value="nl">Nederlands</option>
|
||||||
|
<option id="lang_pl" value="pl">Polski</option>
|
||||||
|
<option id="lang_pt-BR" value="pt-BR">Português (BR)</option>
|
||||||
|
<option id="lang_ro" value="ro">Română</option>
|
||||||
|
<option id="lang_ru" value="ru">Русский</option>
|
||||||
|
<option id="lang_sk" value="sk">Slovenčina</option>
|
||||||
|
<option id="lang_sl" value="sl">Slovenščina</option>
|
||||||
|
<option id="lang_zh-CN" value="zh-CN">简体中文</option>
|
||||||
|
<option id="lang_zh-TW" value="zh-TW">繁體中文</option>
|
||||||
|
</select>
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<span id="svginfo_icons">Icon size:</span>
|
||||||
|
<select id="iconsize">
|
||||||
|
<option id="icon_small" value="s">Small</option>
|
||||||
|
<option id="icon_medium" value="m" selected="selected">Medium</option>
|
||||||
|
<option id="icon_large" value="l">Large</option>
|
||||||
|
<option id="icon_xlarge" value="xl">Extra Large</option>
|
||||||
|
</select>
|
||||||
|
</label>
|
||||||
|
<fieldset id="change_background">
|
||||||
|
<legend id="svginfo_change_background">Editor Background</legend>
|
||||||
|
<div id="bg_blocks"></div>
|
||||||
|
<label>
|
||||||
|
<span id="svginfo_bg_url">URL:</span>
|
||||||
|
<input type="text" id="canvas_bg_url"/>
|
||||||
|
</label>
|
||||||
|
<p id="svginfo_bg_note">Note: Background will not be saved with image.</p>
|
||||||
|
</fieldset>
|
||||||
|
<fieldset id="change_grid">
|
||||||
|
<legend id="svginfo_grid_settings">Grid</legend>
|
||||||
|
<label>
|
||||||
|
<span id="svginfo_snap_onoff">Snapping on/off</span>
|
||||||
|
<input type="checkbox" value="snapping_on" id="grid_snapping_on"/>
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<span id="svginfo_snap_step">Snapping Step-Size:</span>
|
||||||
|
<input type="text" id="grid_snapping_step" size="3" value="10"/>
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<span id="svginfo_grid_color">Grid color:</span>
|
||||||
|
<input type="text" id="grid_color" size="3" value="#000"/>
|
||||||
|
</label>
|
||||||
|
</fieldset>
|
||||||
|
<fieldset id="units_rulers">
|
||||||
|
<legend id="svginfo_units_rulers">Units & Rulers</legend>
|
||||||
|
<label>
|
||||||
|
<span id="svginfo_rulers_onoff">Show rulers</span>
|
||||||
|
<input id="show_rulers" type="checkbox"
|
||||||
|
value="show_rulers" checked="checked"/>
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<span id="svginfo_unit">Base Unit:</span>
|
||||||
|
<select id="base_unit">
|
||||||
|
<option value="px">Pixels</option>
|
||||||
|
<option value="cm">Centimeters</option>
|
||||||
|
<option value="mm">Millimeters</option>
|
||||||
|
<option value="in">Inches</option>
|
||||||
|
<option value="pt">Points</option>
|
||||||
|
<option value="pc">Picas</option>
|
||||||
|
<option value="em">Ems</option>
|
||||||
|
<option value="ex">Exs</option>
|
||||||
|
</select>
|
||||||
|
</label>
|
||||||
|
<!-- Should this be an export option instead? -->
|
||||||
|
<!--
|
||||||
|
<span id="svginfo_unit_system">Unit System:</span>
|
||||||
|
<label>
|
||||||
|
<input type="radio" name="unit_system" value="single" checked="checked"/>
|
||||||
|
<span id="svginfo_single_type_unit">Single type unit</span>
|
||||||
|
<small id="svginfo_single_type_unit_sub">
|
||||||
|
CSS unit type is set on root element.
|
||||||
|
If a different unit type is entered in a text
|
||||||
|
field, it is converted back to user units on export.
|
||||||
|
</small>
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<input type="radio" name="unit_system" value="multi"/>
|
||||||
|
<span id="svginfo_multi_units">Multiple CSS units</span>
|
||||||
|
<small id="svginfo_single_type_unit_sub">
|
||||||
|
Attributes can be given different CSS units, which may
|
||||||
|
lead to inconsistant results among viewers.
|
||||||
|
</small>
|
||||||
|
</label>
|
||||||
|
-->
|
||||||
|
</fieldset>
|
||||||
|
</fieldset>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="dialog_box">
|
||||||
|
<div class="overlay"></div>
|
||||||
|
<div id="dialog_container">
|
||||||
|
<div id="dialog_content"></div>
|
||||||
|
<div id="dialog_buttons"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<ul id="cmenu_canvas" class="contextMenu">
|
||||||
|
<li><a href="#cut">Cut<span class="shortcut">META+X</span></a></li>
|
||||||
|
<li><a href="#copy">Copy<span class="shortcut">META+C</span></a></li>
|
||||||
|
<li><a href="#paste">Paste</a></li>
|
||||||
|
<li><a href="#paste_in_place">Paste in Place</a></li>
|
||||||
|
<li class="separator"><a href="#delete">Delete<span class="shortcut">BACKSPACE</span></a></li>
|
||||||
|
<li class="separator"><a href="#group">Group<span class="shortcut">G</span></a></li>
|
||||||
|
<li><a href="#ungroup">Ungroup<span class="shortcut">G</span></a></li>
|
||||||
|
<li class="separator"><a href="#move_front">Bring to Front<span class="shortcut">CTRL+SHFT+]</span></a></li>
|
||||||
|
<li><a href="#move_up">Bring Forward<span class="shortcut">CTRL+]</span></a></li>
|
||||||
|
<li><a href="#move_down">Send Backward<span class="shortcut">CTRL+[</span></a></li>
|
||||||
|
<li><a href="#move_back">Send to Back<span class="shortcut">CTRL+SHFT+[</span></a></li>
|
||||||
|
</ul>
|
||||||
|
<ul id="cmenu_layers" class="contextMenu">
|
||||||
|
<li><a href="#dupe">Duplicate Layer...</a></li>
|
||||||
|
<li><a href="#delete">Delete Layer</a></li>
|
||||||
|
<li><a href="#merge_down">Merge Down</a></li>
|
||||||
|
<li><a href="#merge_all">Merge All</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
556
dist/editor/xdomain-index.js
vendored
Normal file
556
dist/editor/xdomain-index.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/editor/xdomain-index.js.map
vendored
Normal file
1
dist/editor/xdomain-index.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
@@ -25,19 +25,28 @@ const getDirectories = (source) => {
|
|||||||
// capture the list of files to build for extensions and ext-locales
|
// capture the list of files to build for extensions and ext-locales
|
||||||
const extensionDirs = getDirectories('src/editor/extensions');
|
const extensionDirs = getDirectories('src/editor/extensions');
|
||||||
|
|
||||||
|
const dest = ['dist/editor', 'dist/editor/system'];
|
||||||
|
|
||||||
// remove existing distribution
|
// remove existing distribution
|
||||||
// eslint-disable-next-line no-console
|
// eslint-disable-next-line no-console
|
||||||
rimraf('./dist', () => console.info('recreating dist'));
|
rimraf('./dist', () => console.info('recreating dist'));
|
||||||
|
|
||||||
// config for svgedit core module
|
// config for svgedit core module
|
||||||
const config = [{
|
const config = [{
|
||||||
input: 'src/editor/index.js',
|
input: ['src/editor/index.js'],
|
||||||
output: [
|
output: [
|
||||||
{
|
{
|
||||||
format: 'es',
|
format: 'es',
|
||||||
inlineDynamicImports: true,
|
inlineDynamicImports: true,
|
||||||
sourcemap: true,
|
sourcemap: true,
|
||||||
dir: 'dist/editor'
|
file: 'dist/editor/index.js'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
format: 'es',
|
||||||
|
inlineDynamicImports: true,
|
||||||
|
sourcemap: true,
|
||||||
|
file: 'dist/editor/xdomain-index.js',
|
||||||
|
intro: 'const XDOMAIN = true;'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
format: 'system',
|
format: 'system',
|
||||||
@@ -54,7 +63,14 @@ const config = [{
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
src: 'src/editor/index.html',
|
src: 'src/editor/index.html',
|
||||||
dest: 'dist/editor/system',
|
dest: 'dist/editor',
|
||||||
|
rename: 'xdomain-index.html',
|
||||||
|
transform: (contents) => contents.toString()
|
||||||
|
.replace('<script type="module" src="index.js">', '<script type="module" src="xdomain-index.js">')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: 'src/editor/index.html',
|
||||||
|
dest: ['dist/editor/system'],
|
||||||
rename: 'index.html',
|
rename: 'index.html',
|
||||||
transform: (contents) => contents.toString()
|
transform: (contents) => contents.toString()
|
||||||
.replace('<script type="module" src="index.js">',
|
.replace('<script type="module" src="index.js">',
|
||||||
@@ -71,17 +87,17 @@ const config = [{
|
|||||||
src: ['node_modules/systemjs/dist/s.min.js', 'node_modules/systemjs/dist/s.min.js.map'],
|
src: ['node_modules/systemjs/dist/s.min.js', 'node_modules/systemjs/dist/s.min.js.map'],
|
||||||
dest: 'dist/editor/system'
|
dest: 'dist/editor/system'
|
||||||
},
|
},
|
||||||
{src: 'src/editor/images', dest: ['dist/editor', 'dist/editor/system']},
|
{src: 'src/editor/images', dest},
|
||||||
{src: 'src/editor/jquery.min.js', dest: ['dist/editor', 'dist/editor/system']},
|
{src: 'src/editor/jquery.min.js', dest},
|
||||||
{src: 'src/editor/jquery-ui', dest: ['dist/editor', 'dist/editor/system']},
|
{src: 'src/editor/jquery-ui', dest},
|
||||||
{src: 'src/editor/jgraduate', dest: ['dist/editor', 'dist/editor/system']},
|
{src: 'src/editor/jgraduate', dest},
|
||||||
{src: 'src/editor/spinbtn', dest: ['dist/editor', 'dist/editor/system']},
|
{src: 'src/editor/spinbtn', dest},
|
||||||
{src: 'src/editor/embedapi.html', dest: ['dist/editor', 'dist/editor/system']},
|
{src: 'src/editor/embedapi.html', dest},
|
||||||
{src: 'src/editor/embedapi.js', dest: ['dist/editor', 'dist/editor/system']},
|
{src: 'src/editor/embedapi.js', dest},
|
||||||
{src: 'src/editor/browser-not-supported.html', dest: ['dist/editor', 'dist/editor/system']},
|
{src: 'src/editor/browser-not-supported.html', dest},
|
||||||
{src: 'src/editor/redirect-on-lacking-support.js', dest: ['dist/editor', 'dist/editor/system']},
|
{src: 'src/editor/redirect-on-lacking-support.js', dest},
|
||||||
{src: 'src/editor/redirect-on-no-module-support.js', dest: ['dist/editor', 'dist/editor/system']},
|
{src: 'src/editor/redirect-on-no-module-support.js', dest},
|
||||||
{src: 'src/editor/svgedit.css', dest: ['dist/editor', 'dist/editor/system']}
|
{src: 'src/editor/svgedit.css', dest}
|
||||||
]
|
]
|
||||||
}),
|
}),
|
||||||
nodeResolve({
|
nodeResolve({
|
||||||
@@ -89,7 +105,7 @@ const config = [{
|
|||||||
preferBuiltins: true
|
preferBuiltins: true
|
||||||
}),
|
}),
|
||||||
commonjs(),
|
commonjs(),
|
||||||
dynamicImportVars({include: './src/editor/locale.js'}),
|
dynamicImportVars({include: `src/editor/locale.js`}),
|
||||||
babel({babelHelpers: 'bundled', exclude: [/\/core-js\//]}), // exclude core-js to avoid circular dependencies.
|
babel({babelHelpers: 'bundled', exclude: [/\/core-js\//]}), // exclude core-js to avoid circular dependencies.
|
||||||
nodePolyfills(),
|
nodePolyfills(),
|
||||||
terser({keep_fnames: true}) // keep_fnames is needed to avoid an error when calling extensions.
|
terser({keep_fnames: true}) // keep_fnames is needed to avoid an error when calling extensions.
|
||||||
|
|||||||
@@ -6,13 +6,26 @@
|
|||||||
* @copyright 2010 Alexis Deveria
|
* @copyright 2010 Alexis Deveria
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
import {loadExtensionTranslation} from '../../locale.js';
|
|
||||||
|
const loadExtensionTranslation = async function (lang) {
|
||||||
|
let translationModule;
|
||||||
|
try {
|
||||||
|
// eslint-disable-next-line node/no-unsupported-features/es-syntax
|
||||||
|
translationModule = await import(`./locale/${lang}.js`);
|
||||||
|
} catch (_error) {
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.error(`Missing translation (${lang}) - using 'en'`);
|
||||||
|
// eslint-disable-next-line node/no-unsupported-features/es-syntax
|
||||||
|
translationModule = await import(`./locale/en.js`);
|
||||||
|
}
|
||||||
|
return translationModule.default;
|
||||||
|
};
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'arrows',
|
name: 'arrows',
|
||||||
async init (S) {
|
async init (S) {
|
||||||
const svgEditor = this;
|
const svgEditor = this;
|
||||||
const strings = await loadExtensionTranslation('arrows', svgEditor.curPrefs.lang);
|
const strings = await loadExtensionTranslation(svgEditor.curPrefs.lang);
|
||||||
const svgCanvas = svgEditor.canvas;
|
const svgCanvas = svgEditor.canvas;
|
||||||
const
|
const
|
||||||
addElem = svgCanvas.addSVGElementFromJson,
|
addElem = svgCanvas.addSVGElementFromJson,
|
||||||
|
|||||||
@@ -6,16 +6,29 @@
|
|||||||
* @copyright 2010 Jeff Schiller
|
* @copyright 2010 Jeff Schiller
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
import {loadExtensionTranslation} from '../../locale.js';
|
|
||||||
import '../../../common/svgpathseg.js';
|
import '../../../common/svgpathseg.js';
|
||||||
|
|
||||||
|
const loadExtensionTranslation = async function (lang) {
|
||||||
|
let translationModule;
|
||||||
|
try {
|
||||||
|
// eslint-disable-next-line node/no-unsupported-features/es-syntax
|
||||||
|
translationModule = await import(`./locale/${lang}.js`);
|
||||||
|
} catch (_error) {
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.error(`Missing translation (${lang}) - using 'en'`);
|
||||||
|
// eslint-disable-next-line node/no-unsupported-features/es-syntax
|
||||||
|
translationModule = await import(`./locale/en.js`);
|
||||||
|
}
|
||||||
|
return translationModule.default;
|
||||||
|
};
|
||||||
|
|
||||||
// This extension adds a simple button to the contextual panel for paths
|
// This extension adds a simple button to the contextual panel for paths
|
||||||
// The button toggles whether the path is open or closed
|
// The button toggles whether the path is open or closed
|
||||||
export default {
|
export default {
|
||||||
name: 'closepath',
|
name: 'closepath',
|
||||||
async init ({importLocale, $}) {
|
async init ({importLocale, $}) {
|
||||||
const svgEditor = this;
|
const svgEditor = this;
|
||||||
const strings = await loadExtensionTranslation('closepath', svgEditor.curPrefs.lang);
|
const strings = await loadExtensionTranslation(svgEditor.curPrefs.lang);
|
||||||
let selElems;
|
let selElems;
|
||||||
const updateButton = function (path) {
|
const updateButton = function (path) {
|
||||||
const seglist = path.pathSegList,
|
const seglist = path.pathSegList,
|
||||||
|
|||||||
@@ -6,7 +6,20 @@
|
|||||||
* @copyright 2010 Alexis Deveria
|
* @copyright 2010 Alexis Deveria
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
import {loadExtensionTranslation} from '../../locale.js';
|
|
||||||
|
const loadExtensionTranslation = async function (lang) {
|
||||||
|
let translationModule;
|
||||||
|
try {
|
||||||
|
// eslint-disable-next-line node/no-unsupported-features/es-syntax
|
||||||
|
translationModule = await import(`./locale/${lang}.js`);
|
||||||
|
} catch (_error) {
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.error(`Missing translation (${lang}) - using 'en'`);
|
||||||
|
// eslint-disable-next-line node/no-unsupported-features/es-syntax
|
||||||
|
translationModule = await import(`./locale/en.js`);
|
||||||
|
}
|
||||||
|
return translationModule.default;
|
||||||
|
};
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'connector',
|
name: 'connector',
|
||||||
@@ -351,7 +364,7 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}];
|
}];
|
||||||
const strings = await loadExtensionTranslation('connector', svgEditor.curPrefs.lang);
|
const strings = await loadExtensionTranslation(svgEditor.curPrefs.lang);
|
||||||
return {
|
return {
|
||||||
name: strings.name,
|
name: strings.name,
|
||||||
svgicons: 'conn.svg',
|
svgicons: 'conn.svg',
|
||||||
|
|||||||
@@ -7,13 +7,25 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import {loadExtensionTranslation} from '../../locale.js';
|
const loadExtensionTranslation = async function (lang) {
|
||||||
|
let translationModule;
|
||||||
|
try {
|
||||||
|
// eslint-disable-next-line node/no-unsupported-features/es-syntax
|
||||||
|
translationModule = await import(`./locale/${lang}.js`);
|
||||||
|
} catch (_error) {
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.error(`Missing translation (${lang}) - using 'en'`);
|
||||||
|
// eslint-disable-next-line node/no-unsupported-features/es-syntax
|
||||||
|
translationModule = await import(`./locale/en.js`);
|
||||||
|
}
|
||||||
|
return translationModule.default;
|
||||||
|
};
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'eyedropper',
|
name: 'eyedropper',
|
||||||
async init (S) {
|
async init (S) {
|
||||||
const svgEditor = this;
|
const svgEditor = this;
|
||||||
const strings = await loadExtensionTranslation('eyedropper', svgEditor.curPrefs.lang);
|
const strings = await loadExtensionTranslation(svgEditor.curPrefs.lang);
|
||||||
const {$, ChangeElementCommand} = S, // , svgcontent,
|
const {$, ChangeElementCommand} = S, // , svgcontent,
|
||||||
// svgdoc = S.svgroot.parentNode.ownerDocument,
|
// svgdoc = S.svgroot.parentNode.ownerDocument,
|
||||||
svgCanvas = svgEditor.canvas,
|
svgCanvas = svgEditor.canvas,
|
||||||
|
|||||||
@@ -7,7 +7,19 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import {loadExtensionTranslation} from '../../locale.js';
|
const loadExtensionTranslation = async function (lang) {
|
||||||
|
let translationModule;
|
||||||
|
try {
|
||||||
|
// eslint-disable-next-line node/no-unsupported-features/es-syntax
|
||||||
|
translationModule = await import(`./locale/${lang}.js`);
|
||||||
|
} catch (_error) {
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.error(`Missing translation (${lang}) - using 'en'`);
|
||||||
|
// eslint-disable-next-line node/no-unsupported-features/es-syntax
|
||||||
|
translationModule = await import(`./locale/en.js`);
|
||||||
|
}
|
||||||
|
return translationModule.default;
|
||||||
|
};
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'foreignobject',
|
name: 'foreignobject',
|
||||||
@@ -20,7 +32,7 @@ export default {
|
|||||||
// addElem = svgCanvas.addSVGElementFromJson,
|
// addElem = svgCanvas.addSVGElementFromJson,
|
||||||
svgdoc = S.svgroot.parentNode.ownerDocument;
|
svgdoc = S.svgroot.parentNode.ownerDocument;
|
||||||
|
|
||||||
const strings = await loadExtensionTranslation('foreignobject', svgEditor.curPrefs.lang);
|
const strings = await loadExtensionTranslation(svgEditor.curPrefs.lang);
|
||||||
|
|
||||||
const properlySourceSizeTextArea = function () {
|
const properlySourceSizeTextArea = function () {
|
||||||
// TODO: remove magic numbers here and get values from CSS
|
// TODO: remove magic numbers here and get values from CSS
|
||||||
|
|||||||
@@ -6,13 +6,26 @@
|
|||||||
* @copyright 2010 Redou Mine, 2010 Alexis Deveria
|
* @copyright 2010 Redou Mine, 2010 Alexis Deveria
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
import {loadExtensionTranslation} from '../../locale.js';
|
|
||||||
|
const loadExtensionTranslation = async function (lang) {
|
||||||
|
let translationModule;
|
||||||
|
try {
|
||||||
|
// eslint-disable-next-line node/no-unsupported-features/es-syntax
|
||||||
|
translationModule = await import(`./locale/${lang}.js`);
|
||||||
|
} catch (_error) {
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.error(`Missing translation (${lang}) - using 'en'`);
|
||||||
|
// eslint-disable-next-line node/no-unsupported-features/es-syntax
|
||||||
|
translationModule = await import(`./locale/en.js`);
|
||||||
|
}
|
||||||
|
return translationModule.default;
|
||||||
|
};
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'grid',
|
name: 'grid',
|
||||||
async init ({$, NS, getTypeMap}) {
|
async init ({$, NS, getTypeMap}) {
|
||||||
const svgEditor = this;
|
const svgEditor = this;
|
||||||
const strings = await loadExtensionTranslation('grid', svgEditor.curPrefs.lang);
|
const strings = await loadExtensionTranslation(svgEditor.curPrefs.lang);
|
||||||
const svgCanvas = svgEditor.canvas;
|
const svgCanvas = svgEditor.canvas;
|
||||||
const svgdoc = document.getElementById('svgcanvas').ownerDocument,
|
const svgdoc = document.getElementById('svgcanvas').ownerDocument,
|
||||||
{assignAttributes} = svgCanvas,
|
{assignAttributes} = svgCanvas,
|
||||||
|
|||||||
@@ -12,13 +12,26 @@
|
|||||||
* the left ("mode") panel. Clicking on the button, and then the canvas
|
* the left ("mode") panel. Clicking on the button, and then the canvas
|
||||||
* will show the user the point on the canvas that was clicked on.
|
* will show the user the point on the canvas that was clicked on.
|
||||||
*/
|
*/
|
||||||
import {loadExtensionTranslation} from '../../locale.js';
|
|
||||||
|
const loadExtensionTranslation = async function (lang) {
|
||||||
|
let translationModule;
|
||||||
|
try {
|
||||||
|
// eslint-disable-next-line node/no-unsupported-features/es-syntax
|
||||||
|
translationModule = await import(`./locale/${lang}.js`);
|
||||||
|
} catch (_error) {
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.error(`Missing translation (${lang}) - using 'en'`);
|
||||||
|
// eslint-disable-next-line node/no-unsupported-features/es-syntax
|
||||||
|
translationModule = await import(`./locale/en.js`);
|
||||||
|
}
|
||||||
|
return translationModule.default;
|
||||||
|
};
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'helloworld',
|
name: 'helloworld',
|
||||||
async init ({$, importLocale}) {
|
async init ({$, importLocale}) {
|
||||||
const svgEditor = this;
|
const svgEditor = this;
|
||||||
const strings = await loadExtensionTranslation('helloworld', svgEditor.curPrefs.lang);
|
const strings = await loadExtensionTranslation(svgEditor.curPrefs.lang);
|
||||||
const svgCanvas = svgEditor.canvas;
|
const svgCanvas = svgEditor.canvas;
|
||||||
return {
|
return {
|
||||||
name: strings.name,
|
name: strings.name,
|
||||||
|
|||||||
@@ -6,13 +6,26 @@
|
|||||||
* @copyright 2010 Alexis Deveria
|
* @copyright 2010 Alexis Deveria
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
import {loadExtensionTranslation} from '../../locale.js';
|
|
||||||
|
const loadExtensionTranslation = async function (lang) {
|
||||||
|
let translationModule;
|
||||||
|
try {
|
||||||
|
// eslint-disable-next-line node/no-unsupported-features/es-syntax
|
||||||
|
translationModule = await import(`./locale/${lang}.js`);
|
||||||
|
} catch (_error) {
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.error(`Missing translation (${lang}) - using 'en'`);
|
||||||
|
// eslint-disable-next-line node/no-unsupported-features/es-syntax
|
||||||
|
translationModule = await import(`./locale/en.js`);
|
||||||
|
}
|
||||||
|
return translationModule.default;
|
||||||
|
};
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'imagelib',
|
name: 'imagelib',
|
||||||
async init ({$, decode64, dropXMLInternalSubset}) {
|
async init ({$, decode64, dropXMLInternalSubset}) {
|
||||||
const svgEditor = this;
|
const svgEditor = this;
|
||||||
const imagelibStrings = await loadExtensionTranslation('imagelib', svgEditor.curPrefs.lang);
|
const imagelibStrings = await loadExtensionTranslation(svgEditor.curPrefs.lang);
|
||||||
|
|
||||||
const {uiStrings, canvas: svgCanvas} = svgEditor;
|
const {uiStrings, canvas: svgCanvas} = svgEditor;
|
||||||
|
|
||||||
|
|||||||
@@ -28,13 +28,26 @@
|
|||||||
* add support for dimension extension lines
|
* add support for dimension extension lines
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
import {loadExtensionTranslation} from '../../locale.js';
|
|
||||||
|
const loadExtensionTranslation = async function (lang) {
|
||||||
|
let translationModule;
|
||||||
|
try {
|
||||||
|
// eslint-disable-next-line node/no-unsupported-features/es-syntax
|
||||||
|
translationModule = await import(`./locale/${lang}.js`);
|
||||||
|
} catch (_error) {
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.error(`Missing translation (${lang}) - using 'en'`);
|
||||||
|
// eslint-disable-next-line node/no-unsupported-features/es-syntax
|
||||||
|
translationModule = await import(`./locale/en.js`);
|
||||||
|
}
|
||||||
|
return translationModule.default;
|
||||||
|
};
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'markers',
|
name: 'markers',
|
||||||
async init (S) {
|
async init (S) {
|
||||||
const svgEditor = this;
|
const svgEditor = this;
|
||||||
const strings = await loadExtensionTranslation('markers', svgEditor.curPrefs.lang);
|
const strings = await loadExtensionTranslation(svgEditor.curPrefs.lang);
|
||||||
const {$} = S;
|
const {$} = S;
|
||||||
const svgCanvas = svgEditor.canvas;
|
const svgCanvas = svgEditor.canvas;
|
||||||
const // {svgcontent} = S,
|
const // {svgcontent} = S,
|
||||||
|
|||||||
@@ -7,13 +7,26 @@
|
|||||||
* @copyright 2013 Jo Segaert
|
* @copyright 2013 Jo Segaert
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
import {loadExtensionTranslation} from '../../locale.js';
|
|
||||||
|
const loadExtensionTranslation = async function (lang) {
|
||||||
|
let translationModule;
|
||||||
|
try {
|
||||||
|
// eslint-disable-next-line node/no-unsupported-features/es-syntax
|
||||||
|
translationModule = await import(`./locale/${lang}.js`);
|
||||||
|
} catch (_error) {
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.error(`Missing translation (${lang}) - using 'en'`);
|
||||||
|
// eslint-disable-next-line node/no-unsupported-features/es-syntax
|
||||||
|
translationModule = await import(`./locale/en.js`);
|
||||||
|
}
|
||||||
|
return translationModule.default;
|
||||||
|
};
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'mathjax',
|
name: 'mathjax',
|
||||||
async init ({$}) {
|
async init ({$}) {
|
||||||
const svgEditor = this;
|
const svgEditor = this;
|
||||||
const strings = await loadExtensionTranslation('mathjax', svgEditor.curPrefs.lang);
|
const strings = await loadExtensionTranslation(svgEditor.curPrefs.lang);
|
||||||
const svgCanvas = svgEditor.canvas;
|
const svgCanvas = svgEditor.canvas;
|
||||||
|
|
||||||
// Configuration of the MathJax extention.
|
// Configuration of the MathJax extention.
|
||||||
|
|||||||
@@ -9,13 +9,26 @@
|
|||||||
/*
|
/*
|
||||||
This is a very basic SVG-Edit extension to let tablet/mobile devices pan without problem
|
This is a very basic SVG-Edit extension to let tablet/mobile devices pan without problem
|
||||||
*/
|
*/
|
||||||
import {loadExtensionTranslation} from '../../locale.js';
|
|
||||||
|
const loadExtensionTranslation = async function (lang) {
|
||||||
|
let translationModule;
|
||||||
|
try {
|
||||||
|
// eslint-disable-next-line node/no-unsupported-features/es-syntax
|
||||||
|
translationModule = await import(`./locale/${lang}.js`);
|
||||||
|
} catch (_error) {
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.error(`Missing translation (${lang}) - using 'en'`);
|
||||||
|
// eslint-disable-next-line node/no-unsupported-features/es-syntax
|
||||||
|
translationModule = await import(`./locale/en.js`);
|
||||||
|
}
|
||||||
|
return translationModule.default;
|
||||||
|
};
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'panning',
|
name: 'panning',
|
||||||
async init ({importLocale}) {
|
async init ({importLocale}) {
|
||||||
const svgEditor = this;
|
const svgEditor = this;
|
||||||
const strings = await loadExtensionTranslation('panning', svgEditor.curPrefs.lang);
|
const strings = await loadExtensionTranslation(svgEditor.curPrefs.lang);
|
||||||
const svgCanvas = svgEditor.canvas;
|
const svgCanvas = svgEditor.canvas;
|
||||||
const buttons = [{
|
const buttons = [{
|
||||||
id: 'ext-panning',
|
id: 'ext-panning',
|
||||||
|
|||||||
@@ -5,7 +5,20 @@
|
|||||||
* @copyright 2010 CloudCanvas, Inc. All rights reserved
|
* @copyright 2010 CloudCanvas, Inc. All rights reserved
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
import {loadExtensionTranslation} from '../../locale.js';
|
|
||||||
|
const loadExtensionTranslation = async function (lang) {
|
||||||
|
let translationModule;
|
||||||
|
try {
|
||||||
|
// eslint-disable-next-line node/no-unsupported-features/es-syntax
|
||||||
|
translationModule = await import(`./locale/${lang}.js`);
|
||||||
|
} catch (_error) {
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.error(`Missing translation (${lang}) - using 'en'`);
|
||||||
|
// eslint-disable-next-line node/no-unsupported-features/es-syntax
|
||||||
|
translationModule = await import(`./locale/en.js`);
|
||||||
|
}
|
||||||
|
return translationModule.default;
|
||||||
|
};
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'placemark',
|
name: 'placemark',
|
||||||
@@ -24,7 +37,7 @@ export default {
|
|||||||
// newFOG, newFOGParent, newDef, newImageName, newMaskID,
|
// newFOG, newFOGParent, newDef, newImageName, newMaskID,
|
||||||
// undoCommand = 'Not image',
|
// undoCommand = 'Not image',
|
||||||
// modeChangeG, ccZoom, wEl, hEl, wOffset, hOffset, ccRgbEl, brushW, brushH;
|
// modeChangeG, ccZoom, wEl, hEl, wOffset, hOffset, ccRgbEl, brushW, brushH;
|
||||||
const strings = await loadExtensionTranslation('placemark', svgEditor.curPrefs.lang);
|
const strings = await loadExtensionTranslation(svgEditor.curPrefs.lang);
|
||||||
const markerTypes = {
|
const markerTypes = {
|
||||||
nomarker: {},
|
nomarker: {},
|
||||||
forwardslash:
|
forwardslash:
|
||||||
|
|||||||
@@ -5,7 +5,20 @@
|
|||||||
* @copyright 2010 CloudCanvas, Inc. All rights reserved
|
* @copyright 2010 CloudCanvas, Inc. All rights reserved
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
import {loadExtensionTranslation} from '../../locale.js';
|
|
||||||
|
const loadExtensionTranslation = async function (lang) {
|
||||||
|
let translationModule;
|
||||||
|
try {
|
||||||
|
// eslint-disable-next-line node/no-unsupported-features/es-syntax
|
||||||
|
translationModule = await import(`./locale/${lang}.js`);
|
||||||
|
} catch (_error) {
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.error(`Missing translation (${lang}) - using 'en'`);
|
||||||
|
// eslint-disable-next-line node/no-unsupported-features/es-syntax
|
||||||
|
translationModule = await import(`./locale/en.js`);
|
||||||
|
}
|
||||||
|
return translationModule.default;
|
||||||
|
};
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'polygon',
|
name: 'polygon',
|
||||||
@@ -15,7 +28,7 @@ export default {
|
|||||||
const {$} = S, // {svgcontent}
|
const {$} = S, // {svgcontent}
|
||||||
// addElem = svgCanvas.addSVGElementFromJson,
|
// addElem = svgCanvas.addSVGElementFromJson,
|
||||||
editingitex = false;
|
editingitex = false;
|
||||||
const strings = await loadExtensionTranslation('polygon', svgEditor.curPrefs.lang);
|
const strings = await loadExtensionTranslation(svgEditor.curPrefs.lang);
|
||||||
let selElems,
|
let selElems,
|
||||||
// svgdoc = S.svgroot.parentNode.ownerDocument,
|
// svgdoc = S.svgroot.parentNode.ownerDocument,
|
||||||
// newFOG, newFOGParent, newDef, newImageName, newMaskID, modeChangeG,
|
// newFOG, newFOGParent, newDef, newImageName, newMaskID, modeChangeG,
|
||||||
|
|||||||
@@ -8,13 +8,26 @@
|
|||||||
* (I agree to dual license my work to additional GPLv2 or later)
|
* (I agree to dual license my work to additional GPLv2 or later)
|
||||||
*/
|
*/
|
||||||
import {canvg} from '../../../external/canvg/canvg.js';
|
import {canvg} from '../../../external/canvg/canvg.js';
|
||||||
import {loadExtensionTranslation} from '../../locale.js';
|
|
||||||
|
const loadExtensionTranslation = async function (lang) {
|
||||||
|
let translationModule;
|
||||||
|
try {
|
||||||
|
// eslint-disable-next-line node/no-unsupported-features/es-syntax
|
||||||
|
translationModule = await import(`./locale/${lang}.js`);
|
||||||
|
} catch (_error) {
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.error(`Missing translation (${lang}) - using 'en'`);
|
||||||
|
// eslint-disable-next-line node/no-unsupported-features/es-syntax
|
||||||
|
translationModule = await import(`./locale/en.js`);
|
||||||
|
}
|
||||||
|
return translationModule.default;
|
||||||
|
};
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'server_moinsave',
|
name: 'server_moinsave',
|
||||||
async init ({$, encode64, importLocale}) {
|
async init ({$, encode64, importLocale}) {
|
||||||
const svgEditor = this;
|
const svgEditor = this;
|
||||||
const strings = await loadExtensionTranslation('server_moinsave', svgEditor.curPrefs.lang);
|
const strings = await loadExtensionTranslation(svgEditor.curPrefs.lang);
|
||||||
const svgCanvas = svgEditor.canvas;
|
const svgCanvas = svgEditor.canvas;
|
||||||
const saveSvgAction = '/+modify';
|
const saveSvgAction = '/+modify';
|
||||||
|
|
||||||
|
|||||||
@@ -7,13 +7,26 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
import {canvg} from '../../../external/canvg/canvg.js';
|
import {canvg} from '../../../external/canvg/canvg.js';
|
||||||
import {loadExtensionTranslation} from '../../locale.js';
|
|
||||||
|
const loadExtensionTranslation = async function (lang) {
|
||||||
|
let translationModule;
|
||||||
|
try {
|
||||||
|
// eslint-disable-next-line node/no-unsupported-features/es-syntax
|
||||||
|
translationModule = await import(`./locale/${lang}.js`);
|
||||||
|
} catch (_error) {
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.error(`Missing translation (${lang}) - using 'en'`);
|
||||||
|
// eslint-disable-next-line node/no-unsupported-features/es-syntax
|
||||||
|
translationModule = await import(`./locale/en.js`);
|
||||||
|
}
|
||||||
|
return translationModule.default;
|
||||||
|
};
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'server_opensave',
|
name: 'server_opensave',
|
||||||
async init ({$, decode64, encode64}) {
|
async init ({$, decode64, encode64}) {
|
||||||
const svgEditor = this;
|
const svgEditor = this;
|
||||||
const strings = await loadExtensionTranslation('server_opensave', svgEditor.curPrefs.lang);
|
const strings = await loadExtensionTranslation(svgEditor.curPrefs.lang);
|
||||||
const {
|
const {
|
||||||
curConfig: {
|
curConfig: {
|
||||||
extPath,
|
extPath,
|
||||||
|
|||||||
@@ -6,13 +6,26 @@
|
|||||||
* @copyright 2010 Christian Tzurcanu, 2010 Alexis Deveria
|
* @copyright 2010 Christian Tzurcanu, 2010 Alexis Deveria
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
import {loadExtensionTranslation} from '../../locale.js';
|
|
||||||
|
const loadExtensionTranslation = async function (lang) {
|
||||||
|
let translationModule;
|
||||||
|
try {
|
||||||
|
// eslint-disable-next-line node/no-unsupported-features/es-syntax
|
||||||
|
translationModule = await import(`./locale/${lang}.js`);
|
||||||
|
} catch (_error) {
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.error(`Missing translation (${lang}) - using 'en'`);
|
||||||
|
// eslint-disable-next-line node/no-unsupported-features/es-syntax
|
||||||
|
translationModule = await import(`./locale/en.js`);
|
||||||
|
}
|
||||||
|
return translationModule.default;
|
||||||
|
};
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'shapes',
|
name: 'shapes',
|
||||||
async init ({$}) {
|
async init ({$}) {
|
||||||
const svgEditor = this;
|
const svgEditor = this;
|
||||||
const strings = await loadExtensionTranslation('shapes', svgEditor.curPrefs.lang);
|
const strings = await loadExtensionTranslation(svgEditor.curPrefs.lang);
|
||||||
const canv = svgEditor.canvas;
|
const canv = svgEditor.canvas;
|
||||||
const svgroot = canv.getRootElem();
|
const svgroot = canv.getRootElem();
|
||||||
let lastBBox = {};
|
let lastBBox = {};
|
||||||
|
|||||||
@@ -5,7 +5,20 @@
|
|||||||
* @copyright 2010 CloudCanvas, Inc. All rights reserved
|
* @copyright 2010 CloudCanvas, Inc. All rights reserved
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
import {loadExtensionTranslation} from '../../locale.js';
|
|
||||||
|
const loadExtensionTranslation = async function (lang) {
|
||||||
|
let translationModule;
|
||||||
|
try {
|
||||||
|
// eslint-disable-next-line node/no-unsupported-features/es-syntax
|
||||||
|
translationModule = await import(`./locale/${lang}.js`);
|
||||||
|
} catch (_error) {
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.error(`Missing translation (${lang}) - using 'en'`);
|
||||||
|
// eslint-disable-next-line node/no-unsupported-features/es-syntax
|
||||||
|
translationModule = await import(`./locale/en.js`);
|
||||||
|
}
|
||||||
|
return translationModule.default;
|
||||||
|
};
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'star',
|
name: 'star',
|
||||||
@@ -24,7 +37,7 @@ export default {
|
|||||||
// newFOG, newFOGParent, newDef, newImageName, newMaskID,
|
// newFOG, newFOGParent, newDef, newImageName, newMaskID,
|
||||||
// undoCommand = 'Not image',
|
// undoCommand = 'Not image',
|
||||||
// modeChangeG, ccZoom, wEl, hEl, wOffset, hOffset, ccRgbEl, brushW, brushH;
|
// modeChangeG, ccZoom, wEl, hEl, wOffset, hOffset, ccRgbEl, brushW, brushH;
|
||||||
const strings = await loadExtensionTranslation('star', svgEditor.curPrefs.lang);
|
const strings = await loadExtensionTranslation(svgEditor.curPrefs.lang);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -19,7 +19,19 @@
|
|||||||
* initial (or URL-forced) dialog. *
|
* initial (or URL-forced) dialog. *
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import {loadExtensionTranslation} from '../../locale.js';
|
const loadExtensionTranslation = async function (lang) {
|
||||||
|
let translationModule;
|
||||||
|
try {
|
||||||
|
// eslint-disable-next-line node/no-unsupported-features/es-syntax
|
||||||
|
translationModule = await import(`./locale/${lang}.js`);
|
||||||
|
} catch (_error) {
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.error(`Missing translation (${lang}) - using 'en'`);
|
||||||
|
// eslint-disable-next-line node/no-unsupported-features/es-syntax
|
||||||
|
translationModule = await import(`./locale/en.js`);
|
||||||
|
}
|
||||||
|
return translationModule.default;
|
||||||
|
};
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'storage',
|
name: 'storage',
|
||||||
@@ -169,7 +181,7 @@ export default {
|
|||||||
name: 'storage',
|
name: 'storage',
|
||||||
async langReady ({lang}) {
|
async langReady ({lang}) {
|
||||||
const storagePrompt = new URL(top.location).searchParams.get('storagePrompt');
|
const storagePrompt = new URL(top.location).searchParams.get('storagePrompt');
|
||||||
const strings = await loadExtensionTranslation('storage', svgEditor.curPrefs.lang);
|
const strings = await loadExtensionTranslation(svgEditor.curPrefs.lang);
|
||||||
const {
|
const {
|
||||||
message, storagePrefsAndContent, storagePrefsOnly,
|
message, storagePrefsAndContent, storagePrefsOnly,
|
||||||
storagePrefs, storageNoPrefsOrContent, storageNoPrefs,
|
storagePrefs, storageNoPrefsOrContent, storageNoPrefs,
|
||||||
|
|||||||
@@ -5,13 +5,26 @@
|
|||||||
* @license MIT
|
* @license MIT
|
||||||
* @todo See WebAppFind Readme for SVG-related todos
|
* @todo See WebAppFind Readme for SVG-related todos
|
||||||
*/
|
*/
|
||||||
import {loadExtensionTranslation} from '../../locale.js';
|
|
||||||
|
const loadExtensionTranslation = async function (lang) {
|
||||||
|
let translationModule;
|
||||||
|
try {
|
||||||
|
// eslint-disable-next-line node/no-unsupported-features/es-syntax
|
||||||
|
translationModule = await import(`./locale/${lang}.js`);
|
||||||
|
} catch (_error) {
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.error(`Missing translation (${lang}) - using 'en'`);
|
||||||
|
// eslint-disable-next-line node/no-unsupported-features/es-syntax
|
||||||
|
translationModule = await import(`./locale/en.js`);
|
||||||
|
}
|
||||||
|
return translationModule.default;
|
||||||
|
};
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'webappfind',
|
name: 'webappfind',
|
||||||
async init ({$}) {
|
async init ({$}) {
|
||||||
const svgEditor = this;
|
const svgEditor = this;
|
||||||
const strings = await loadExtensionTranslation('webappfind', svgEditor.curPrefs.lang);
|
const strings = await loadExtensionTranslation(svgEditor.curPrefs.lang);
|
||||||
const saveMessage = 'save',
|
const saveMessage = 'save',
|
||||||
readMessage = 'read',
|
readMessage = 'read',
|
||||||
excludedMessages = [readMessage, saveMessage];
|
excludedMessages = [readMessage, saveMessage];
|
||||||
|
|||||||
@@ -364,24 +364,3 @@ export const putLocale = async function (givenParam, goodLangs) {
|
|||||||
const module = await import(`./locale/lang.${langParam}.js`);
|
const module = await import(`./locale/lang.${langParam}.js`);
|
||||||
return readLang(module.default);
|
return readLang(module.default);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @function module:locale.loadExtensionTranslation
|
|
||||||
* @param {string} extensionName
|
|
||||||
* @param {string} lang
|
|
||||||
* @returns {string} lang will will returned if the translation exists else it will be 'en'
|
|
||||||
*/
|
|
||||||
export const loadExtensionTranslation = async function (extensionName, lang) {
|
|
||||||
let translationModule;
|
|
||||||
try {
|
|
||||||
// eslint-disable-next-line node/no-unsupported-features/es-syntax
|
|
||||||
translationModule = await import(`./extensions/ext-${extensionName}/locale/${lang}.js`);
|
|
||||||
} catch (_error) {
|
|
||||||
// eslint-disable-next-line no-console
|
|
||||||
console.error(`Missing translation (${lang}) for extension ${extensionName} - using 'en'`);
|
|
||||||
// eslint-disable-next-line node/no-unsupported-features/es-syntax
|
|
||||||
translationModule = await import(`./extensions/ext-${extensionName}/locale/en.js`);
|
|
||||||
}
|
|
||||||
return translationModule.default;
|
|
||||||
};
|
|
||||||
|
|||||||
Reference in New Issue
Block a user