- Linting (ESLint): Apply new rules ("fixme"->"todo"; prefer regex literals; defaults at end)
- Optimization: Image size - npm: Bump devDeps (Babel/eslint/rollup-related; imageoptim, testcafe)master
parent
cdacae8be3
commit
404911827e
|
@ -243,6 +243,10 @@ var canvg = (function (exports) {
|
|||
}
|
||||
|
||||
function _iterableToArrayLimit(arr, i) {
|
||||
if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) {
|
||||
return;
|
||||
}
|
||||
|
||||
var _arr = [];
|
||||
var _n = true;
|
||||
var _d = false;
|
||||
|
@ -278,7 +282,7 @@ var canvg = (function (exports) {
|
|||
|
||||
function _wrapRegExp(re, groups) {
|
||||
_wrapRegExp = function (re, groups) {
|
||||
return new BabelRegExp(re, groups);
|
||||
return new BabelRegExp(re, undefined, groups);
|
||||
};
|
||||
|
||||
var _RegExp = _wrapNativeSuper(RegExp);
|
||||
|
@ -287,10 +291,10 @@ var canvg = (function (exports) {
|
|||
|
||||
var _groups = new WeakMap();
|
||||
|
||||
function BabelRegExp(re, groups) {
|
||||
var _this = _RegExp.call(this, re);
|
||||
function BabelRegExp(re, flags, groups) {
|
||||
var _this = _RegExp.call(this, re, flags);
|
||||
|
||||
_groups.set(_this, groups);
|
||||
_groups.set(_this, groups || _groups.get(re));
|
||||
|
||||
return _this;
|
||||
}
|
||||
|
|
|
@ -138,7 +138,7 @@ var svgEditorExtension_arrows = (function () {
|
|||
|
||||
function _wrapRegExp(re, groups) {
|
||||
_wrapRegExp = function (re, groups) {
|
||||
return new BabelRegExp(re, groups);
|
||||
return new BabelRegExp(re, undefined, groups);
|
||||
};
|
||||
|
||||
var _RegExp = _wrapNativeSuper(RegExp);
|
||||
|
@ -147,10 +147,10 @@ var svgEditorExtension_arrows = (function () {
|
|||
|
||||
var _groups = new WeakMap();
|
||||
|
||||
function BabelRegExp(re, groups) {
|
||||
var _this = _RegExp.call(this, re);
|
||||
function BabelRegExp(re, flags, groups) {
|
||||
var _this = _RegExp.call(this, re, flags);
|
||||
|
||||
_groups.set(_this, groups);
|
||||
_groups.set(_this, groups || _groups.get(re));
|
||||
|
||||
return _this;
|
||||
}
|
||||
|
|
|
@ -46,6 +46,10 @@ var svgEditorExtension_helloworld = (function () {
|
|||
}
|
||||
|
||||
function _iterableToArrayLimit(arr, i) {
|
||||
if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) {
|
||||
return;
|
||||
}
|
||||
|
||||
var _arr = [];
|
||||
var _n = true;
|
||||
var _d = false;
|
||||
|
|
|
@ -18,17 +18,17 @@ var svgEditorExtensionLocale_imagelib_de = (function () {
|
|||
name: 'IAN Symbol Libraries',
|
||||
url: 'https://ian.umces.edu/symbols/catalog/svgedit/album_chooser.php?svgedit=3',
|
||||
description: 'Free library of illustrations'
|
||||
/*
|
||||
// See message in "en" locale for further details
|
||||
,
|
||||
{
|
||||
name: 'Openclipart',
|
||||
url: 'https://openclipart.org/svgedit',
|
||||
description: 'Share and Use Images. Over 100,000 Public Domain SVG Images and Growing.'
|
||||
}
|
||||
*/
|
||||
|
||||
}]
|
||||
}
|
||||
/*
|
||||
// See message in "en" locale for further details
|
||||
,
|
||||
{
|
||||
name: 'Openclipart',
|
||||
url: 'https://openclipart.org/svgedit',
|
||||
description: 'Share and Use Images. Over 100,000 Public Domain SVG Images and Growing.'
|
||||
}
|
||||
*/
|
||||
]
|
||||
};
|
||||
|
||||
return de;
|
||||
|
|
|
@ -17,23 +17,23 @@ var svgEditorExtensionLocale_imagelib_en = (function () {
|
|||
}, {
|
||||
name: 'IAN Symbol Libraries',
|
||||
url: 'https://ian.umces.edu/symbols/catalog/svgedit/album_chooser.php?svgedit=3',
|
||||
description: 'Free library of illustrations' // The site is no longer using our API, and they have added an
|
||||
// `X-Frame-Options` header which prevents our usage cross-origin:
|
||||
// Getting messages like this in console:
|
||||
// Refused to display 'https://openclipart.org/detail/307176/sign-bike' in a frame
|
||||
// because it set 'X-Frame-Options' to 'sameorigin'.
|
||||
// url: 'https://openclipart.org/svgedit',
|
||||
// However, they do have a custom API which we are using here:
|
||||
description: 'Free library of illustrations'
|
||||
} // The site is no longer using our API, and they have added an
|
||||
// `X-Frame-Options` header which prevents our usage cross-origin:
|
||||
// Getting messages like this in console:
|
||||
// Refused to display 'https://openclipart.org/detail/307176/sign-bike' in a frame
|
||||
// because it set 'X-Frame-Options' to 'sameorigin'.
|
||||
// url: 'https://openclipart.org/svgedit',
|
||||
// However, they do have a custom API which we are using here:
|
||||
|
||||
/*
|
||||
{
|
||||
name: 'Openclipart',
|
||||
url: '{path}imagelib/openclipart{modularVersion}.html',
|
||||
description: 'Share and Use Images. Over 100,000 Public Domain SVG Images and Growing.'
|
||||
}
|
||||
*/
|
||||
|
||||
}]
|
||||
/*
|
||||
{
|
||||
name: 'Openclipart',
|
||||
url: '{path}imagelib/openclipart{modularVersion}.html',
|
||||
description: 'Share and Use Images. Over 100,000 Public Domain SVG Images and Growing.'
|
||||
}
|
||||
*/
|
||||
]
|
||||
};
|
||||
|
||||
return en;
|
||||
|
|
|
@ -18,17 +18,17 @@ var svgEditorExtensionLocale_imagelib_fr = (function () {
|
|||
name: 'IAN Symbol Libraries',
|
||||
url: 'https://ian.umces.edu/symbols/catalog/svgedit/album_chooser.php?svgedit=3',
|
||||
description: 'Free library of illustrations'
|
||||
/*
|
||||
// See message in "en" locale for further details
|
||||
,
|
||||
{
|
||||
name: 'Openclipart',
|
||||
url: 'https://openclipart.org/svgedit',
|
||||
description: 'Share and Use Images. Over 100,000 Public Domain SVG Images and Growing.'
|
||||
}
|
||||
*/
|
||||
|
||||
}]
|
||||
}
|
||||
/*
|
||||
// See message in "en" locale for further details
|
||||
,
|
||||
{
|
||||
name: 'Openclipart',
|
||||
url: 'https://openclipart.org/svgedit',
|
||||
description: 'Share and Use Images. Over 100,000 Public Domain SVG Images and Growing.'
|
||||
}
|
||||
*/
|
||||
]
|
||||
};
|
||||
|
||||
return fr;
|
||||
|
|
|
@ -18,17 +18,17 @@ var svgEditorExtensionLocale_imagelib_pl = (function () {
|
|||
name: 'IAN Symbol Libraries',
|
||||
url: 'https://ian.umces.edu/symbols/catalog/svgedit/album_chooser.php?svgedit=3',
|
||||
description: 'Free library of illustrations'
|
||||
/*
|
||||
// See message in "en" locale for further details
|
||||
,
|
||||
{
|
||||
name: 'Openclipart',
|
||||
url: 'https://openclipart.org/svgedit',
|
||||
description: 'Share and Use Images. Over 100,000 Public Domain SVG Images and Growing.'
|
||||
}
|
||||
*/
|
||||
|
||||
}]
|
||||
}
|
||||
/*
|
||||
// See message in "en" locale for further details
|
||||
,
|
||||
{
|
||||
name: 'Openclipart',
|
||||
url: 'https://openclipart.org/svgedit',
|
||||
description: 'Share and Use Images. Over 100,000 Public Domain SVG Images and Growing.'
|
||||
}
|
||||
*/
|
||||
]
|
||||
};
|
||||
|
||||
return pl;
|
||||
|
|
|
@ -18,17 +18,17 @@ var svgEditorExtensionLocale_imagelib_pt_BR = (function () {
|
|||
name: 'IAN Symbol Libraries',
|
||||
url: 'https://ian.umces.edu/symbols/catalog/svgedit/album_chooser.php?svgedit=3',
|
||||
description: 'Free library of illustrations'
|
||||
/*
|
||||
// See message in "en" locale for further details
|
||||
,
|
||||
{
|
||||
name: 'Openclipart',
|
||||
url: 'https://openclipart.org/svgedit',
|
||||
description: 'Share and Use Images. Over 100,000 Public Domain SVG Images and Growing.'
|
||||
}
|
||||
*/
|
||||
|
||||
}]
|
||||
}
|
||||
/*
|
||||
// See message in "en" locale for further details
|
||||
,
|
||||
{
|
||||
name: 'Openclipart',
|
||||
url: 'https://openclipart.org/svgedit',
|
||||
description: 'Share and Use Images. Over 100,000 Public Domain SVG Images and Growing.'
|
||||
}
|
||||
*/
|
||||
]
|
||||
};
|
||||
|
||||
return ptBR;
|
||||
|
|
|
@ -18,17 +18,17 @@ var svgEditorExtensionLocale_imagelib_ro = (function () {
|
|||
name: 'IAN Symbol Libraries',
|
||||
url: 'https://ian.umces.edu/symbols/catalog/svgedit/album_chooser.php?svgedit=3',
|
||||
description: 'Free library of illustrations'
|
||||
/*
|
||||
// See message in "en" locale for further details
|
||||
,
|
||||
{
|
||||
name: 'Openclipart',
|
||||
url: 'https://openclipart.org/svgedit',
|
||||
description: 'Share and Use Images. Over 100,000 Public Domain SVG Images and Growing.'
|
||||
}
|
||||
*/
|
||||
|
||||
}]
|
||||
}
|
||||
/*
|
||||
// See message in "en" locale for further details
|
||||
,
|
||||
{
|
||||
name: 'Openclipart',
|
||||
url: 'https://openclipart.org/svgedit',
|
||||
description: 'Share and Use Images. Over 100,000 Public Domain SVG Images and Growing.'
|
||||
}
|
||||
*/
|
||||
]
|
||||
};
|
||||
|
||||
return ro;
|
||||
|
|
|
@ -18,17 +18,17 @@ var svgEditorExtensionLocale_imagelib_sk = (function () {
|
|||
name: 'IAN Symbol Libraries',
|
||||
url: 'https://ian.umces.edu/symbols/catalog/svgedit/album_chooser.php?svgedit=3',
|
||||
description: 'Free library of illustrations'
|
||||
/*
|
||||
// See message in "en" locale for further details
|
||||
,
|
||||
{
|
||||
name: 'Openclipart',
|
||||
url: 'https://openclipart.org/svgedit',
|
||||
description: 'Share and Use Images. Over 100,000 Public Domain SVG Images and Growing.'
|
||||
}
|
||||
*/
|
||||
|
||||
}]
|
||||
}
|
||||
/*
|
||||
// See message in "en" locale for further details
|
||||
,
|
||||
{
|
||||
name: 'Openclipart',
|
||||
url: 'https://openclipart.org/svgedit',
|
||||
description: 'Share and Use Images. Over 100,000 Public Domain SVG Images and Growing.'
|
||||
}
|
||||
*/
|
||||
]
|
||||
};
|
||||
|
||||
return sk;
|
||||
|
|
|
@ -18,17 +18,17 @@ var svgEditorExtensionLocale_imagelib_sl = (function () {
|
|||
name: 'IAN Symbol Libraries',
|
||||
url: 'https://ian.umces.edu/symbols/catalog/svgedit/album_chooser.php?svgedit=3',
|
||||
description: 'Free library of illustrations'
|
||||
/*
|
||||
// See message in "en" locale for further details
|
||||
,
|
||||
{
|
||||
name: 'Openclipart',
|
||||
url: 'https://openclipart.org/svgedit',
|
||||
description: 'Share and Use Images. Over 100,000 Public Domain SVG Images and Growing.'
|
||||
}
|
||||
*/
|
||||
|
||||
}]
|
||||
}
|
||||
/*
|
||||
// See message in "en" locale for further details
|
||||
,
|
||||
{
|
||||
name: 'Openclipart',
|
||||
url: 'https://openclipart.org/svgedit',
|
||||
description: 'Share and Use Images. Over 100,000 Public Domain SVG Images and Growing.'
|
||||
}
|
||||
*/
|
||||
]
|
||||
};
|
||||
|
||||
return sl;
|
||||
|
|
|
@ -18,17 +18,17 @@ var svgEditorExtensionLocale_imagelib_zh_CN = (function () {
|
|||
name: 'IAN Symbol Libraries',
|
||||
url: 'https://ian.umces.edu/symbols/catalog/svgedit/album_chooser.php?svgedit=3',
|
||||
description: 'Free library of illustrations'
|
||||
/*
|
||||
// See message in "en" locale for further details
|
||||
,
|
||||
{
|
||||
name: 'Openclipart',
|
||||
url: 'https://openclipart.org/svgedit',
|
||||
description: 'Share and Use Images. Over 100,000 Public Domain SVG Images and Growing.'
|
||||
}
|
||||
*/
|
||||
|
||||
}]
|
||||
}
|
||||
/*
|
||||
// See message in "en" locale for further details
|
||||
,
|
||||
{
|
||||
name: 'Openclipart',
|
||||
url: 'https://openclipart.org/svgedit',
|
||||
description: 'Share and Use Images. Over 100,000 Public Domain SVG Images and Growing.'
|
||||
}
|
||||
*/
|
||||
]
|
||||
};
|
||||
|
||||
return zhCN;
|
||||
|
|
|
@ -138,7 +138,7 @@ var svgEditorExtension_markers = (function () {
|
|||
|
||||
function _wrapRegExp(re, groups) {
|
||||
_wrapRegExp = function (re, groups) {
|
||||
return new BabelRegExp(re, groups);
|
||||
return new BabelRegExp(re, undefined, groups);
|
||||
};
|
||||
|
||||
var _RegExp = _wrapNativeSuper(RegExp);
|
||||
|
@ -147,10 +147,10 @@ var svgEditorExtension_markers = (function () {
|
|||
|
||||
var _groups = new WeakMap();
|
||||
|
||||
function BabelRegExp(re, groups) {
|
||||
var _this = _RegExp.call(this, re);
|
||||
function BabelRegExp(re, flags, groups) {
|
||||
var _this = _RegExp.call(this, re, flags);
|
||||
|
||||
_groups.set(_this, groups);
|
||||
_groups.set(_this, groups || _groups.get(re));
|
||||
|
||||
return _this;
|
||||
}
|
||||
|
|
|
@ -145,6 +145,10 @@ var svgEditorExtension_placemark = (function () {
|
|||
}
|
||||
|
||||
function _iterableToArrayLimit(arr, i) {
|
||||
if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) {
|
||||
return;
|
||||
}
|
||||
|
||||
var _arr = [];
|
||||
var _n = true;
|
||||
var _d = false;
|
||||
|
@ -176,7 +180,7 @@ var svgEditorExtension_placemark = (function () {
|
|||
|
||||
function _wrapRegExp(re, groups) {
|
||||
_wrapRegExp = function (re, groups) {
|
||||
return new BabelRegExp(re, groups);
|
||||
return new BabelRegExp(re, undefined, groups);
|
||||
};
|
||||
|
||||
var _RegExp = _wrapNativeSuper(RegExp);
|
||||
|
@ -185,10 +189,10 @@ var svgEditorExtension_placemark = (function () {
|
|||
|
||||
var _groups = new WeakMap();
|
||||
|
||||
function BabelRegExp(re, groups) {
|
||||
var _this = _RegExp.call(this, re);
|
||||
function BabelRegExp(re, flags, groups) {
|
||||
var _this = _RegExp.call(this, re, flags);
|
||||
|
||||
_groups.set(_this, groups);
|
||||
_groups.set(_this, groups || _groups.get(re));
|
||||
|
||||
return _this;
|
||||
}
|
||||
|
|
|
@ -243,6 +243,10 @@ var svgEditorExtension_server_moinsave = (function () {
|
|||
}
|
||||
|
||||
function _iterableToArrayLimit(arr, i) {
|
||||
if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) {
|
||||
return;
|
||||
}
|
||||
|
||||
var _arr = [];
|
||||
var _n = true;
|
||||
var _d = false;
|
||||
|
@ -278,7 +282,7 @@ var svgEditorExtension_server_moinsave = (function () {
|
|||
|
||||
function _wrapRegExp(re, groups) {
|
||||
_wrapRegExp = function (re, groups) {
|
||||
return new BabelRegExp(re, groups);
|
||||
return new BabelRegExp(re, undefined, groups);
|
||||
};
|
||||
|
||||
var _RegExp = _wrapNativeSuper(RegExp);
|
||||
|
@ -287,10 +291,10 @@ var svgEditorExtension_server_moinsave = (function () {
|
|||
|
||||
var _groups = new WeakMap();
|
||||
|
||||
function BabelRegExp(re, groups) {
|
||||
var _this = _RegExp.call(this, re);
|
||||
function BabelRegExp(re, flags, groups) {
|
||||
var _this = _RegExp.call(this, re, flags);
|
||||
|
||||
_groups.set(_this, groups);
|
||||
_groups.set(_this, groups || _groups.get(re));
|
||||
|
||||
return _this;
|
||||
}
|
||||
|
|
|
@ -243,6 +243,10 @@ var svgEditorExtension_server_opensave = (function () {
|
|||
}
|
||||
|
||||
function _iterableToArrayLimit(arr, i) {
|
||||
if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) {
|
||||
return;
|
||||
}
|
||||
|
||||
var _arr = [];
|
||||
var _n = true;
|
||||
var _d = false;
|
||||
|
@ -278,7 +282,7 @@ var svgEditorExtension_server_opensave = (function () {
|
|||
|
||||
function _wrapRegExp(re, groups) {
|
||||
_wrapRegExp = function (re, groups) {
|
||||
return new BabelRegExp(re, groups);
|
||||
return new BabelRegExp(re, undefined, groups);
|
||||
};
|
||||
|
||||
var _RegExp = _wrapNativeSuper(RegExp);
|
||||
|
@ -287,10 +291,10 @@ var svgEditorExtension_server_opensave = (function () {
|
|||
|
||||
var _groups = new WeakMap();
|
||||
|
||||
function BabelRegExp(re, groups) {
|
||||
var _this = _RegExp.call(this, re);
|
||||
function BabelRegExp(re, flags, groups) {
|
||||
var _this = _RegExp.call(this, re, flags);
|
||||
|
||||
_groups.set(_this, groups);
|
||||
_groups.set(_this, groups || _groups.get(re));
|
||||
|
||||
return _this;
|
||||
}
|
||||
|
|
|
@ -46,6 +46,10 @@ var svgEditorExtension_shapes = (function () {
|
|||
}
|
||||
|
||||
function _iterableToArrayLimit(arr, i) {
|
||||
if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) {
|
||||
return;
|
||||
}
|
||||
|
||||
var _arr = [];
|
||||
var _n = true;
|
||||
var _d = false;
|
||||
|
|
|
@ -145,6 +145,10 @@ var svgEditorExtension_storage = (function () {
|
|||
}
|
||||
|
||||
function _iterableToArrayLimit(arr, i) {
|
||||
if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) {
|
||||
return;
|
||||
}
|
||||
|
||||
var _arr = [];
|
||||
var _n = true;
|
||||
var _d = false;
|
||||
|
@ -176,7 +180,7 @@ var svgEditorExtension_storage = (function () {
|
|||
|
||||
function _wrapRegExp(re, groups) {
|
||||
_wrapRegExp = function (re, groups) {
|
||||
return new BabelRegExp(re, groups);
|
||||
return new BabelRegExp(re, undefined, groups);
|
||||
};
|
||||
|
||||
var _RegExp = _wrapNativeSuper(RegExp);
|
||||
|
@ -185,10 +189,10 @@ var svgEditorExtension_storage = (function () {
|
|||
|
||||
var _groups = new WeakMap();
|
||||
|
||||
function BabelRegExp(re, groups) {
|
||||
var _this = _RegExp.call(this, re);
|
||||
function BabelRegExp(re, flags, groups) {
|
||||
var _this = _RegExp.call(this, re, flags);
|
||||
|
||||
_groups.set(_this, groups);
|
||||
_groups.set(_this, groups || _groups.get(re));
|
||||
|
||||
return _this;
|
||||
}
|
||||
|
|
|
@ -87,8 +87,8 @@ var svgEditorExtension_webappfind = (function () {
|
|||
if (origin !== location.origin || // We are only interested in a message sent as though within this URL by our browser add-on
|
||||
excludedMessages.includes(type) // Avoid our post below (other messages might be possible in the future which may also need to be excluded if your subsequent code makes assumptions on the type of message this is)
|
||||
) {
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
} catch (err) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -215,6 +215,10 @@
|
|||
}
|
||||
|
||||
function _iterableToArrayLimit(arr, i) {
|
||||
if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) {
|
||||
return;
|
||||
}
|
||||
|
||||
var _arr = [];
|
||||
var _n = true;
|
||||
var _d = false;
|
||||
|
|
|
@ -228,6 +228,10 @@ function _iterableToArray(iter) {
|
|||
}
|
||||
|
||||
function _iterableToArrayLimit(arr, i) {
|
||||
if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) {
|
||||
return;
|
||||
}
|
||||
|
||||
var _arr = [];
|
||||
var _n = true;
|
||||
var _d = false;
|
||||
|
@ -263,7 +267,7 @@ function _nonIterableRest() {
|
|||
|
||||
function _wrapRegExp(re, groups) {
|
||||
_wrapRegExp = function (re, groups) {
|
||||
return new BabelRegExp(re, groups);
|
||||
return new BabelRegExp(re, undefined, groups);
|
||||
};
|
||||
|
||||
var _RegExp = _wrapNativeSuper(RegExp);
|
||||
|
@ -272,10 +276,10 @@ function _wrapRegExp(re, groups) {
|
|||
|
||||
var _groups = new WeakMap();
|
||||
|
||||
function BabelRegExp(re, groups) {
|
||||
var _this = _RegExp.call(this, re);
|
||||
function BabelRegExp(re, flags, groups) {
|
||||
var _this = _RegExp.call(this, re, flags);
|
||||
|
||||
_groups.set(_this, groups);
|
||||
_groups.set(_this, groups || _groups.get(re));
|
||||
|
||||
return _this;
|
||||
}
|
||||
|
@ -2736,7 +2740,7 @@ var getReverseNS = function getReverseNS() {
|
|||
},
|
||||
enumerable: true
|
||||
},
|
||||
// FIXME: The following are not implemented and simply return SVGPathElement.pathSegList.
|
||||
// TODO: The following are not implemented and simply return SVGPathElement.pathSegList.
|
||||
normalizedPathSegList: {
|
||||
get: function get() {
|
||||
return this.pathSegList;
|
||||
|
@ -4692,7 +4696,7 @@ function () {
|
|||
}, {
|
||||
key: "addCommandToHistory",
|
||||
value: function addCommandToHistory(cmd) {
|
||||
// FIXME: we MUST compress consecutive text changes to the same element
|
||||
// TODO: we MUST compress consecutive text changes to the same element
|
||||
// (right now each keystroke is saved as a separate command that includes the
|
||||
// entire text contents of the text element)
|
||||
// TODO: consider limiting the history that we store here (need to do some slicing)
|
||||
|
@ -8381,7 +8385,7 @@ var walkTree = function walkTree(elem, cbFn) {
|
|||
/**
|
||||
* Walks the tree and executes the callback on each element in a depth-first fashion.
|
||||
* @function module:utilities.walkTreePost
|
||||
* @todo FIXME: Shouldn't this be calling walkTreePost?
|
||||
* @todo Shouldn't this be calling walkTreePost?
|
||||
* @param {Element} elem - DOM element to traverse
|
||||
* @param {module:utilities.TreeWalker} cbFn - Callback function to run on each element
|
||||
* @returns {void}
|
||||
|
@ -9361,8 +9365,8 @@ var snapToGrid = function snapToGrid(value) {
|
|||
*/
|
||||
|
||||
var regexEscape = function regexEscape(str) {
|
||||
// From: http://phpjs.org/functions
|
||||
return String(str).replace(new RegExp('[.\\\\+*?\\[\\^\\]$(){}=!<>|:\\-]', 'g'), '\\$&');
|
||||
// Originally from: http://phpjs.org/functions
|
||||
return String(str).replace(/[.\\+*?[^\]$(){}=!<>|:-]/g, '\\$&');
|
||||
};
|
||||
/**
|
||||
* Prevents default browser click behaviour on the given element.
|
||||
|
@ -11824,7 +11828,7 @@ var sanitizeSvg = function sanitizeSvg(node) {
|
|||
|
||||
} else {
|
||||
// remove all children from this node and insert them before this node
|
||||
// FIXME: in the case of animation elements this will hardly ever be correct
|
||||
// TODO: in the case of animation elements this will hardly ever be correct
|
||||
var children = [];
|
||||
|
||||
while (node.hasChildNodes()) {
|
||||
|
@ -12504,7 +12508,7 @@ var recalculateDimensions = function recalculateDimensions(selected) {
|
|||
if (Math.abs(a) > 1.0e-10) {
|
||||
s = Math.sin(a) / (1 - Math.cos(a));
|
||||
} else {
|
||||
// FIXME: This blows up if the angle is exactly 0!
|
||||
// TODO: This blows up if the angle is exactly 0!
|
||||
s = 2 / a;
|
||||
}
|
||||
|
||||
|
@ -12865,7 +12869,7 @@ var recalculateDimensions = function recalculateDimensions(selected) {
|
|||
} // else, it's a non-group
|
||||
|
||||
} else {
|
||||
// FIXME: box might be null for some elements (<metadata> etc), need to handle this
|
||||
// TODO: box might be null for some elements (<metadata> etc), need to handle this
|
||||
var _box = getBBox(selected); // Paths (and possbly other shapes) will have no BBox while still in <defs>,
|
||||
// but we still may need to recalculate them (see issue 595).
|
||||
// TODO: Figure out how to get BBox from these elements in case they
|
||||
|
@ -12889,7 +12893,7 @@ var recalculateDimensions = function recalculateDimensions(selected) {
|
|||
|
||||
var _a = _angle * Math.PI / 180;
|
||||
|
||||
var _s = Math.abs(_a) > 1.0e-10 ? Math.sin(_a) / (1 - Math.cos(_a)) // FIXME: This blows up if the angle is exactly 0!
|
||||
var _s = Math.abs(_a) > 1.0e-10 ? Math.sin(_a) / (1 - Math.cos(_a)) // TODO: This blows up if the angle is exactly 0!
|
||||
: 2 / _a;
|
||||
|
||||
for (var _i2 = 0; _i2 < tlist.numberOfItems; ++_i2) {
|
||||
|
@ -15608,19 +15612,38 @@ function SvgCanvas(container, config) {
|
|||
if (!rightClick) {
|
||||
// insert a dummy transform so if the element(s) are moved it will have
|
||||
// a transform to use for its translate
|
||||
for (var _i2 = 0, _selectedElements = selectedElements; _i2 < _selectedElements.length; _i2++) {
|
||||
var selectedElement = _selectedElements[_i2];
|
||||
var _iteratorNormalCompletion = true;
|
||||
var _didIteratorError = false;
|
||||
var _iteratorError = undefined;
|
||||
|
||||
if (isNullish(selectedElement)) {
|
||||
continue;
|
||||
try {
|
||||
for (var _iterator = selectedElements[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
||||
var selectedElement = _step.value;
|
||||
|
||||
if (isNullish(selectedElement)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
var slist = getTransformList(selectedElement);
|
||||
|
||||
if (slist.numberOfItems) {
|
||||
slist.insertItemBefore(svgroot.createSVGTransform(), 0);
|
||||
} else {
|
||||
slist.appendItem(svgroot.createSVGTransform());
|
||||
}
|
||||
}
|
||||
|
||||
var slist = getTransformList(selectedElement);
|
||||
|
||||
if (slist.numberOfItems) {
|
||||
slist.insertItemBefore(svgroot.createSVGTransform(), 0);
|
||||
} else {
|
||||
slist.appendItem(svgroot.createSVGTransform());
|
||||
} catch (err) {
|
||||
_didIteratorError = true;
|
||||
_iteratorError = err;
|
||||
} finally {
|
||||
try {
|
||||
if (!_iteratorNormalCompletion && _iterator["return"] != null) {
|
||||
_iterator["return"]();
|
||||
}
|
||||
} finally {
|
||||
if (_didIteratorError) {
|
||||
throw _iteratorError;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -15784,7 +15807,7 @@ function SvgCanvas(container, config) {
|
|||
break;
|
||||
}
|
||||
|
||||
case 'square': // FIXME: once we create the rect, we lose information that this was a square
|
||||
case 'square': // TODO: once we create the rect, we lose information that this was a square
|
||||
// (for resizing purposes this could be important)
|
||||
// Fallthrough
|
||||
|
||||
|
@ -17726,11 +17749,11 @@ function SvgCanvas(container, config) {
|
|||
}
|
||||
});
|
||||
});
|
||||
var _i3 = attrs.length;
|
||||
var _i2 = attrs.length;
|
||||
var attrNames = ['width', 'height', 'xmlns', 'x', 'y', 'viewBox', 'id', 'overflow'];
|
||||
|
||||
while (_i3--) {
|
||||
var attr = attrs[_i3];
|
||||
while (_i2--) {
|
||||
var attr = attrs[_i2];
|
||||
var attrVal = toXml(attr.value); // Namespaces have already been dealt with, so skip
|
||||
|
||||
if (attr.nodeName.startsWith('xmlns:')) {
|
||||
|
@ -17756,8 +17779,8 @@ function SvgCanvas(container, config) {
|
|||
|
||||
var mozAttrs = ['-moz-math-font-style', '_moz-math-font-style'];
|
||||
|
||||
for (var _i4 = attrs.length - 1; _i4 >= 0; _i4--) {
|
||||
var _attr = attrs[_i4];
|
||||
for (var _i3 = attrs.length - 1; _i3 >= 0; _i3--) {
|
||||
var _attr = attrs[_i3];
|
||||
|
||||
var _attrVal = toXml(_attr.value); // remove bogus attributes added by Gecko
|
||||
|
||||
|
@ -17813,14 +17836,14 @@ function SvgCanvas(container, config) {
|
|||
indent++;
|
||||
var bOneLine = false;
|
||||
|
||||
for (var _i5 = 0; _i5 < childs.length; _i5++) {
|
||||
var child = childs.item(_i5);
|
||||
for (var _i4 = 0; _i4 < childs.length; _i4++) {
|
||||
var child = childs.item(_i4);
|
||||
|
||||
switch (child.nodeType) {
|
||||
case 1:
|
||||
// element node
|
||||
out.push('\n');
|
||||
out.push(this.svgToString(childs.item(_i5), indent));
|
||||
out.push(this.svgToString(childs.item(_i4), indent));
|
||||
break;
|
||||
|
||||
case 3:
|
||||
|
@ -17862,7 +17885,7 @@ function SvgCanvas(container, config) {
|
|||
if (!bOneLine) {
|
||||
out.push('\n');
|
||||
|
||||
for (var _i6 = 0; _i6 < indent; _i6++) {
|
||||
for (var _i5 = 0; _i5 < indent; _i5++) {
|
||||
out.push(' ');
|
||||
}
|
||||
}
|
||||
|
@ -18938,27 +18961,27 @@ function SvgCanvas(container, config) {
|
|||
}
|
||||
|
||||
var attrs = svg.attributes;
|
||||
var _iteratorNormalCompletion = true;
|
||||
var _didIteratorError = false;
|
||||
var _iteratorError = undefined;
|
||||
var _iteratorNormalCompletion2 = true;
|
||||
var _didIteratorError2 = false;
|
||||
var _iteratorError2 = undefined;
|
||||
|
||||
try {
|
||||
for (var _iterator = attrs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
||||
var attr = _step.value;
|
||||
for (var _iterator2 = attrs[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
|
||||
var attr = _step2.value;
|
||||
// Ok for `NamedNodeMap`
|
||||
symbol.setAttribute(attr.nodeName, attr.value);
|
||||
}
|
||||
} catch (err) {
|
||||
_didIteratorError = true;
|
||||
_iteratorError = err;
|
||||
_didIteratorError2 = true;
|
||||
_iteratorError2 = err;
|
||||
} finally {
|
||||
try {
|
||||
if (!_iteratorNormalCompletion && _iterator["return"] != null) {
|
||||
_iterator["return"]();
|
||||
if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
|
||||
_iterator2["return"]();
|
||||
}
|
||||
} finally {
|
||||
if (_didIteratorError) {
|
||||
throw _iteratorError;
|
||||
if (_didIteratorError2) {
|
||||
throw _iteratorError2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -19183,29 +19206,29 @@ function SvgCanvas(container, config) {
|
|||
|
||||
elem = $$9(elem).data('gsvg') || $$9(elem).data('symbol') || elem;
|
||||
var childs = elem.childNodes;
|
||||
var _iteratorNormalCompletion2 = true;
|
||||
var _didIteratorError2 = false;
|
||||
var _iteratorError2 = undefined;
|
||||
var _iteratorNormalCompletion3 = true;
|
||||
var _didIteratorError3 = false;
|
||||
var _iteratorError3 = undefined;
|
||||
|
||||
try {
|
||||
for (var _iterator2 = childs[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
|
||||
var child = _step2.value;
|
||||
for (var _iterator3 = childs[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
|
||||
var child = _step3.value;
|
||||
|
||||
if (child.nodeName === 'title') {
|
||||
return child.textContent;
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
_didIteratorError2 = true;
|
||||
_iteratorError2 = err;
|
||||
_didIteratorError3 = true;
|
||||
_iteratorError3 = err;
|
||||
} finally {
|
||||
try {
|
||||
if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
|
||||
_iterator2["return"]();
|
||||
if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) {
|
||||
_iterator3["return"]();
|
||||
}
|
||||
} finally {
|
||||
if (_didIteratorError2) {
|
||||
throw _iteratorError2;
|
||||
if (_didIteratorError3) {
|
||||
throw _iteratorError3;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -19273,13 +19296,13 @@ function SvgCanvas(container, config) {
|
|||
var docTitle = false,
|
||||
oldTitle = '';
|
||||
var batchCmd = new BatchCommand$1('Change Image Title');
|
||||
var _iteratorNormalCompletion3 = true;
|
||||
var _didIteratorError3 = false;
|
||||
var _iteratorError3 = undefined;
|
||||
var _iteratorNormalCompletion4 = true;
|
||||
var _didIteratorError4 = false;
|
||||
var _iteratorError4 = undefined;
|
||||
|
||||
try {
|
||||
for (var _iterator3 = childs[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
|
||||
var child = _step3.value;
|
||||
for (var _iterator4 = childs[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
|
||||
var child = _step4.value;
|
||||
|
||||
if (child.nodeName === 'title') {
|
||||
docTitle = child;
|
||||
|
@ -19288,16 +19311,16 @@ function SvgCanvas(container, config) {
|
|||
}
|
||||
}
|
||||
} catch (err) {
|
||||
_didIteratorError3 = true;
|
||||
_iteratorError3 = err;
|
||||
_didIteratorError4 = true;
|
||||
_iteratorError4 = err;
|
||||
} finally {
|
||||
try {
|
||||
if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) {
|
||||
_iterator3["return"]();
|
||||
if (!_iteratorNormalCompletion4 && _iterator4["return"] != null) {
|
||||
_iterator4["return"]();
|
||||
}
|
||||
} finally {
|
||||
if (_didIteratorError3) {
|
||||
throw _iteratorError3;
|
||||
if (_didIteratorError4) {
|
||||
throw _iteratorError4;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -20606,7 +20629,7 @@ function SvgCanvas(container, config) {
|
|||
canvas.moveSelectedElements(diffX * currentZoom, diffY * currentZoom, true);
|
||||
return "continue";
|
||||
} // only allow the transform/opacity/filter attribute to change on <g> elements, slightly hacky
|
||||
// TODO: FIXME: Missing statement body
|
||||
// TODO: Missing statement body
|
||||
// if (elem.tagName === 'g' && goodGAttrs.includes(attr)) {}
|
||||
|
||||
|
||||
|
@ -21285,9 +21308,9 @@ function SvgCanvas(container, config) {
|
|||
|
||||
|
||||
this.moveToTopSelectedElement = function () {
|
||||
var _selectedElements2 = selectedElements,
|
||||
_selectedElements3 = _slicedToArray(_selectedElements2, 1),
|
||||
selected = _selectedElements3[0];
|
||||
var _selectedElements = selectedElements,
|
||||
_selectedElements2 = _slicedToArray(_selectedElements, 1),
|
||||
selected = _selectedElements2[0];
|
||||
|
||||
if (!isNullish(selected)) {
|
||||
var t = selected;
|
||||
|
@ -21312,9 +21335,9 @@ function SvgCanvas(container, config) {
|
|||
|
||||
|
||||
this.moveToBottomSelectedElement = function () {
|
||||
var _selectedElements4 = selectedElements,
|
||||
_selectedElements5 = _slicedToArray(_selectedElements4, 1),
|
||||
selected = _selectedElements5[0];
|
||||
var _selectedElements3 = selectedElements,
|
||||
_selectedElements4 = _slicedToArray(_selectedElements3, 1),
|
||||
selected = _selectedElements4[0];
|
||||
|
||||
if (!isNullish(selected)) {
|
||||
var t = selected;
|
||||
|
@ -21622,45 +21645,45 @@ function SvgCanvas(container, config) {
|
|||
var dx = new Array(len);
|
||||
var dy = new Array(len);
|
||||
|
||||
for (var _i7 = 0; _i7 < len; ++_i7) {
|
||||
if (isNullish(selectedElements[_i7])) {
|
||||
for (var _i6 = 0; _i6 < len; ++_i6) {
|
||||
if (isNullish(selectedElements[_i6])) {
|
||||
break;
|
||||
} // const elem = selectedElements[i];
|
||||
|
||||
|
||||
var bbox = bboxes[_i7];
|
||||
dx[_i7] = 0;
|
||||
dy[_i7] = 0;
|
||||
var bbox = bboxes[_i6];
|
||||
dx[_i6] = 0;
|
||||
dy[_i6] = 0;
|
||||
|
||||
switch (type) {
|
||||
case 'l':
|
||||
// left (horizontal)
|
||||
dx[_i7] = minx - bbox.x;
|
||||
dx[_i6] = minx - bbox.x;
|
||||
break;
|
||||
|
||||
case 'c':
|
||||
// center (horizontal)
|
||||
dx[_i7] = (minx + maxx) / 2 - (bbox.x + bbox.width / 2);
|
||||
dx[_i6] = (minx + maxx) / 2 - (bbox.x + bbox.width / 2);
|
||||
break;
|
||||
|
||||
case 'r':
|
||||
// right (horizontal)
|
||||
dx[_i7] = maxx - (bbox.x + bbox.width);
|
||||
dx[_i6] = maxx - (bbox.x + bbox.width);
|
||||
break;
|
||||
|
||||
case 't':
|
||||
// top (vertical)
|
||||
dy[_i7] = miny - bbox.y;
|
||||
dy[_i6] = miny - bbox.y;
|
||||
break;
|
||||
|
||||
case 'm':
|
||||
// middle (vertical)
|
||||
dy[_i7] = (miny + maxy) / 2 - (bbox.y + bbox.height / 2);
|
||||
dy[_i6] = (miny + maxy) / 2 - (bbox.y + bbox.height / 2);
|
||||
break;
|
||||
|
||||
case 'b':
|
||||
// bottom (vertical)
|
||||
dy[_i7] = maxy - (bbox.y + bbox.height);
|
||||
dy[_i6] = maxy - (bbox.y + bbox.height);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -22826,14 +22849,14 @@ function jQueryPluginSVGIcons($) {
|
|||
/**
|
||||
*
|
||||
* @param {boolean} [toImage]
|
||||
* @param {external:jQuery.svgIcons.Fallback} [fallback]
|
||||
* @param {external:jQuery.svgIcons.Fallback} [fallback=false]
|
||||
* @returns {void}
|
||||
*/
|
||||
|
||||
|
||||
function makeIcons() {
|
||||
var toImage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
||||
var fallback = arguments.length > 1 ? arguments[1] : undefined;
|
||||
var fallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
||||
if (iconsMade) return;
|
||||
if (opts.no_img) toImage = false;
|
||||
var tempHolder;
|
||||
|
@ -30168,90 +30191,90 @@ editor.init = function () {
|
|||
},
|
||||
'div#workarea': {
|
||||
left: 38,
|
||||
top: 74 // '#tools_bottom': {
|
||||
// left: {s: '27px', l: '46px', xl: '65px'},
|
||||
// height: {s: '58px', l: '98px', xl: '145px'}
|
||||
// },
|
||||
// '#color_tools': {
|
||||
// 'border-spacing': {s: '0 1px'},
|
||||
// 'margin-top': {s: '-1px'}
|
||||
// },
|
||||
// '#color_tools .icon_label': {
|
||||
// width: {l:'43px', xl: '60px'}
|
||||
// },
|
||||
// '.color_tool': {
|
||||
// height: {s: '20px'}
|
||||
// },
|
||||
// '#tool_opacity': {
|
||||
// top: {s: '1px'},
|
||||
// height: {s: 'auto', l:'auto', xl:'auto'}
|
||||
// },
|
||||
// '#tools_top input, #tools_bottom input': {
|
||||
// 'margin-top': {s: '2px', l: '4px', xl: '5px'},
|
||||
// height: {s: 'auto', l: 'auto', xl: 'auto'},
|
||||
// border: {s: '1px solid #555', l: 'auto', xl: 'auto'},
|
||||
// 'font-size': {s: '.9em', l: '1.2em', xl: '1.4em'}
|
||||
// },
|
||||
// '#zoom_panel': {
|
||||
// 'margin-top': {s: '3px', l: '4px', xl: '5px'}
|
||||
// },
|
||||
// '#copyright, #tools_bottom .label': {
|
||||
// 'font-size': {l: '1.5em', xl: '2em'},
|
||||
// 'line-height': {s: '15px'}
|
||||
// },
|
||||
// '#tools_bottom_2': {
|
||||
// width: {l: '295px', xl: '355px'},
|
||||
// top: {s: '4px'}
|
||||
// },
|
||||
// '#tools_top > div, #tools_top': {
|
||||
// 'line-height': {s: '17px', l: '34px', xl: '50px'}
|
||||
// },
|
||||
// '.dropdown button': {
|
||||
// height: {s: '18px', l: '34px', xl: '40px'},
|
||||
// 'line-height': {s: '18px', l: '34px', xl: '40px'},
|
||||
// 'margin-top': {s: '3px'}
|
||||
// },
|
||||
// '#tools_top label, #tools_bottom label': {
|
||||
// 'font-size': {s: '1em', l: '1.5em', xl: '2em'},
|
||||
// height: {s: '25px', l: '42px', xl: '64px'}
|
||||
// },
|
||||
// 'div.toolset': {
|
||||
// height: {s: '25px', l: '42px', xl: '64px'}
|
||||
// },
|
||||
// '#tool_bold, #tool_italic': {
|
||||
// 'font-size': {s: '1.5em', l: '3em', xl: '4.5em'}
|
||||
// },
|
||||
// '#sidepanels': {
|
||||
// top: {s: '50px', l: '88px', xl: '125px'},
|
||||
// bottom: {s: '51px', l: '68px', xl: '65px'}
|
||||
// },
|
||||
// '#layerbuttons': {
|
||||
// width: {l: '130px', xl: '175px'},
|
||||
// height: {l: '24px', xl: '30px'}
|
||||
// },
|
||||
// '#layerlist': {
|
||||
// width: {l: '128px', xl: '150px'}
|
||||
// },
|
||||
// '.layer_button': {
|
||||
// width: {l: '19px', xl: '28px'},
|
||||
// height: {l: '19px', xl: '28px'}
|
||||
// },
|
||||
// 'input.spin-button': {
|
||||
// 'background-image': {l: 'url('images/spinbtn_updn_big.png')', xl: 'url('images/spinbtn_updn_big.png')'},
|
||||
// 'background-position': {l: '100% -5px', xl: '100% -2px'},
|
||||
// 'padding-right': {l: '24px', xl: '24px' }
|
||||
// },
|
||||
// 'input.spin-button.up': {
|
||||
// 'background-position': {l: '100% -45px', xl: '100% -42px'}
|
||||
// },
|
||||
// 'input.spin-button.down': {
|
||||
// 'background-position': {l: '100% -85px', xl: '100% -82px'}
|
||||
// },
|
||||
// '#position_opts': {
|
||||
// width: {all: (size_num*4) +'px'}
|
||||
// }
|
||||
top: 74
|
||||
} // '#tools_bottom': {
|
||||
// left: {s: '27px', l: '46px', xl: '65px'},
|
||||
// height: {s: '58px', l: '98px', xl: '145px'}
|
||||
// },
|
||||
// '#color_tools': {
|
||||
// 'border-spacing': {s: '0 1px'},
|
||||
// 'margin-top': {s: '-1px'}
|
||||
// },
|
||||
// '#color_tools .icon_label': {
|
||||
// width: {l:'43px', xl: '60px'}
|
||||
// },
|
||||
// '.color_tool': {
|
||||
// height: {s: '20px'}
|
||||
// },
|
||||
// '#tool_opacity': {
|
||||
// top: {s: '1px'},
|
||||
// height: {s: 'auto', l:'auto', xl:'auto'}
|
||||
// },
|
||||
// '#tools_top input, #tools_bottom input': {
|
||||
// 'margin-top': {s: '2px', l: '4px', xl: '5px'},
|
||||
// height: {s: 'auto', l: 'auto', xl: 'auto'},
|
||||
// border: {s: '1px solid #555', l: 'auto', xl: 'auto'},
|
||||
// 'font-size': {s: '.9em', l: '1.2em', xl: '1.4em'}
|
||||
// },
|
||||
// '#zoom_panel': {
|
||||
// 'margin-top': {s: '3px', l: '4px', xl: '5px'}
|
||||
// },
|
||||
// '#copyright, #tools_bottom .label': {
|
||||
// 'font-size': {l: '1.5em', xl: '2em'},
|
||||
// 'line-height': {s: '15px'}
|
||||
// },
|
||||
// '#tools_bottom_2': {
|
||||
// width: {l: '295px', xl: '355px'},
|
||||
// top: {s: '4px'}
|
||||
// },
|
||||
// '#tools_top > div, #tools_top': {
|
||||
// 'line-height': {s: '17px', l: '34px', xl: '50px'}
|
||||
// },
|
||||
// '.dropdown button': {
|
||||
// height: {s: '18px', l: '34px', xl: '40px'},
|
||||
// 'line-height': {s: '18px', l: '34px', xl: '40px'},
|
||||
// 'margin-top': {s: '3px'}
|
||||
// },
|
||||
// '#tools_top label, #tools_bottom label': {
|
||||
// 'font-size': {s: '1em', l: '1.5em', xl: '2em'},
|
||||
// height: {s: '25px', l: '42px', xl: '64px'}
|
||||
// },
|
||||
// 'div.toolset': {
|
||||
// height: {s: '25px', l: '42px', xl: '64px'}
|
||||
// },
|
||||
// '#tool_bold, #tool_italic': {
|
||||
// 'font-size': {s: '1.5em', l: '3em', xl: '4.5em'}
|
||||
// },
|
||||
// '#sidepanels': {
|
||||
// top: {s: '50px', l: '88px', xl: '125px'},
|
||||
// bottom: {s: '51px', l: '68px', xl: '65px'}
|
||||
// },
|
||||
// '#layerbuttons': {
|
||||
// width: {l: '130px', xl: '175px'},
|
||||
// height: {l: '24px', xl: '30px'}
|
||||
// },
|
||||
// '#layerlist': {
|
||||
// width: {l: '128px', xl: '150px'}
|
||||
// },
|
||||
// '.layer_button': {
|
||||
// width: {l: '19px', xl: '28px'},
|
||||
// height: {l: '19px', xl: '28px'}
|
||||
// },
|
||||
// 'input.spin-button': {
|
||||
// 'background-image': {l: 'url('images/spinbtn_updn_big.png')', xl: 'url('images/spinbtn_updn_big.png')'},
|
||||
// 'background-position': {l: '100% -5px', xl: '100% -2px'},
|
||||
// 'padding-right': {l: '24px', xl: '24px' }
|
||||
// },
|
||||
// 'input.spin-button.up': {
|
||||
// 'background-position': {l: '100% -45px', xl: '100% -42px'}
|
||||
// },
|
||||
// 'input.spin-button.down': {
|
||||
// 'background-position': {l: '100% -85px', xl: '100% -82px'}
|
||||
// },
|
||||
// '#position_opts': {
|
||||
// width: {all: (size_num*4) +'px'}
|
||||
// }
|
||||
|
||||
}
|
||||
};
|
||||
var ruleElem = $$b('#tool_size_rules');
|
||||
|
||||
|
@ -30755,7 +30778,7 @@ editor.init = function () {
|
|||
var num = 5 - $$b('#layerlist tr.layer').size();
|
||||
|
||||
while (num-- > 0) {
|
||||
// FIXME: there must a better way to do this
|
||||
// TODO: there must a better way to do this
|
||||
layerlist.append('<tr><td style="color:white">_</td><td/></tr>');
|
||||
}
|
||||
};
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -234,6 +234,10 @@
|
|||
}
|
||||
|
||||
function _iterableToArrayLimit(arr, i) {
|
||||
if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) {
|
||||
return;
|
||||
}
|
||||
|
||||
var _arr = [];
|
||||
var _n = true;
|
||||
var _d = false;
|
||||
|
@ -269,7 +273,7 @@
|
|||
|
||||
function _wrapRegExp(re, groups) {
|
||||
_wrapRegExp = function (re, groups) {
|
||||
return new BabelRegExp(re, groups);
|
||||
return new BabelRegExp(re, undefined, groups);
|
||||
};
|
||||
|
||||
var _RegExp = _wrapNativeSuper(RegExp);
|
||||
|
@ -278,10 +282,10 @@
|
|||
|
||||
var _groups = new WeakMap();
|
||||
|
||||
function BabelRegExp(re, groups) {
|
||||
var _this = _RegExp.call(this, re);
|
||||
function BabelRegExp(re, flags, groups) {
|
||||
var _this = _RegExp.call(this, re, flags);
|
||||
|
||||
_groups.set(_this, groups);
|
||||
_groups.set(_this, groups || _groups.get(re));
|
||||
|
||||
return _this;
|
||||
}
|
||||
|
@ -2742,7 +2746,7 @@
|
|||
},
|
||||
enumerable: true
|
||||
},
|
||||
// FIXME: The following are not implemented and simply return SVGPathElement.pathSegList.
|
||||
// TODO: The following are not implemented and simply return SVGPathElement.pathSegList.
|
||||
normalizedPathSegList: {
|
||||
get: function get() {
|
||||
return this.pathSegList;
|
||||
|
@ -4698,7 +4702,7 @@
|
|||
}, {
|
||||
key: "addCommandToHistory",
|
||||
value: function addCommandToHistory(cmd) {
|
||||
// FIXME: we MUST compress consecutive text changes to the same element
|
||||
// TODO: we MUST compress consecutive text changes to the same element
|
||||
// (right now each keystroke is saved as a separate command that includes the
|
||||
// entire text contents of the text element)
|
||||
// TODO: consider limiting the history that we store here (need to do some slicing)
|
||||
|
@ -8387,7 +8391,7 @@
|
|||
/**
|
||||
* Walks the tree and executes the callback on each element in a depth-first fashion.
|
||||
* @function module:utilities.walkTreePost
|
||||
* @todo FIXME: Shouldn't this be calling walkTreePost?
|
||||
* @todo Shouldn't this be calling walkTreePost?
|
||||
* @param {Element} elem - DOM element to traverse
|
||||
* @param {module:utilities.TreeWalker} cbFn - Callback function to run on each element
|
||||
* @returns {void}
|
||||
|
@ -9367,8 +9371,8 @@
|
|||
*/
|
||||
|
||||
var regexEscape = function regexEscape(str) {
|
||||
// From: http://phpjs.org/functions
|
||||
return String(str).replace(new RegExp('[.\\\\+*?\\[\\^\\]$(){}=!<>|:\\-]', 'g'), '\\$&');
|
||||
// Originally from: http://phpjs.org/functions
|
||||
return String(str).replace(/[.\\+*?[^\]$(){}=!<>|:-]/g, '\\$&');
|
||||
};
|
||||
/**
|
||||
* Prevents default browser click behaviour on the given element.
|
||||
|
@ -11830,7 +11834,7 @@
|
|||
|
||||
} else {
|
||||
// remove all children from this node and insert them before this node
|
||||
// FIXME: in the case of animation elements this will hardly ever be correct
|
||||
// TODO: in the case of animation elements this will hardly ever be correct
|
||||
var children = [];
|
||||
|
||||
while (node.hasChildNodes()) {
|
||||
|
@ -12510,7 +12514,7 @@
|
|||
if (Math.abs(a) > 1.0e-10) {
|
||||
s = Math.sin(a) / (1 - Math.cos(a));
|
||||
} else {
|
||||
// FIXME: This blows up if the angle is exactly 0!
|
||||
// TODO: This blows up if the angle is exactly 0!
|
||||
s = 2 / a;
|
||||
}
|
||||
|
||||
|
@ -12871,7 +12875,7 @@
|
|||
} // else, it's a non-group
|
||||
|
||||
} else {
|
||||
// FIXME: box might be null for some elements (<metadata> etc), need to handle this
|
||||
// TODO: box might be null for some elements (<metadata> etc), need to handle this
|
||||
var _box = getBBox(selected); // Paths (and possbly other shapes) will have no BBox while still in <defs>,
|
||||
// but we still may need to recalculate them (see issue 595).
|
||||
// TODO: Figure out how to get BBox from these elements in case they
|
||||
|
@ -12895,7 +12899,7 @@
|
|||
|
||||
var _a = _angle * Math.PI / 180;
|
||||
|
||||
var _s = Math.abs(_a) > 1.0e-10 ? Math.sin(_a) / (1 - Math.cos(_a)) // FIXME: This blows up if the angle is exactly 0!
|
||||
var _s = Math.abs(_a) > 1.0e-10 ? Math.sin(_a) / (1 - Math.cos(_a)) // TODO: This blows up if the angle is exactly 0!
|
||||
: 2 / _a;
|
||||
|
||||
for (var _i2 = 0; _i2 < tlist.numberOfItems; ++_i2) {
|
||||
|
@ -15614,19 +15618,38 @@
|
|||
if (!rightClick) {
|
||||
// insert a dummy transform so if the element(s) are moved it will have
|
||||
// a transform to use for its translate
|
||||
for (var _i2 = 0, _selectedElements = selectedElements; _i2 < _selectedElements.length; _i2++) {
|
||||
var selectedElement = _selectedElements[_i2];
|
||||
var _iteratorNormalCompletion = true;
|
||||
var _didIteratorError = false;
|
||||
var _iteratorError = undefined;
|
||||
|
||||
if (isNullish(selectedElement)) {
|
||||
continue;
|
||||
try {
|
||||
for (var _iterator = selectedElements[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
||||
var selectedElement = _step.value;
|
||||
|
||||
if (isNullish(selectedElement)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
var slist = getTransformList(selectedElement);
|
||||
|
||||
if (slist.numberOfItems) {
|
||||
slist.insertItemBefore(svgroot.createSVGTransform(), 0);
|
||||
} else {
|
||||
slist.appendItem(svgroot.createSVGTransform());
|
||||
}
|
||||
}
|
||||
|
||||
var slist = getTransformList(selectedElement);
|
||||
|
||||
if (slist.numberOfItems) {
|
||||
slist.insertItemBefore(svgroot.createSVGTransform(), 0);
|
||||
} else {
|
||||
slist.appendItem(svgroot.createSVGTransform());
|
||||
} catch (err) {
|
||||
_didIteratorError = true;
|
||||
_iteratorError = err;
|
||||
} finally {
|
||||
try {
|
||||
if (!_iteratorNormalCompletion && _iterator["return"] != null) {
|
||||
_iterator["return"]();
|
||||
}
|
||||
} finally {
|
||||
if (_didIteratorError) {
|
||||
throw _iteratorError;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -15790,7 +15813,7 @@
|
|||
break;
|
||||
}
|
||||
|
||||
case 'square': // FIXME: once we create the rect, we lose information that this was a square
|
||||
case 'square': // TODO: once we create the rect, we lose information that this was a square
|
||||
// (for resizing purposes this could be important)
|
||||
// Fallthrough
|
||||
|
||||
|
@ -17732,11 +17755,11 @@
|
|||
}
|
||||
});
|
||||
});
|
||||
var _i3 = attrs.length;
|
||||
var _i2 = attrs.length;
|
||||
var attrNames = ['width', 'height', 'xmlns', 'x', 'y', 'viewBox', 'id', 'overflow'];
|
||||
|
||||
while (_i3--) {
|
||||
var attr = attrs[_i3];
|
||||
while (_i2--) {
|
||||
var attr = attrs[_i2];
|
||||
var attrVal = toXml(attr.value); // Namespaces have already been dealt with, so skip
|
||||
|
||||
if (attr.nodeName.startsWith('xmlns:')) {
|
||||
|
@ -17762,8 +17785,8 @@
|
|||
|
||||
var mozAttrs = ['-moz-math-font-style', '_moz-math-font-style'];
|
||||
|
||||
for (var _i4 = attrs.length - 1; _i4 >= 0; _i4--) {
|
||||
var _attr = attrs[_i4];
|
||||
for (var _i3 = attrs.length - 1; _i3 >= 0; _i3--) {
|
||||
var _attr = attrs[_i3];
|
||||
|
||||
var _attrVal = toXml(_attr.value); // remove bogus attributes added by Gecko
|
||||
|
||||
|
@ -17819,14 +17842,14 @@
|
|||
indent++;
|
||||
var bOneLine = false;
|
||||
|
||||
for (var _i5 = 0; _i5 < childs.length; _i5++) {
|
||||
var child = childs.item(_i5);
|
||||
for (var _i4 = 0; _i4 < childs.length; _i4++) {
|
||||
var child = childs.item(_i4);
|
||||
|
||||
switch (child.nodeType) {
|
||||
case 1:
|
||||
// element node
|
||||
out.push('\n');
|
||||
out.push(this.svgToString(childs.item(_i5), indent));
|
||||
out.push(this.svgToString(childs.item(_i4), indent));
|
||||
break;
|
||||
|
||||
case 3:
|
||||
|
@ -17868,7 +17891,7 @@
|
|||
if (!bOneLine) {
|
||||
out.push('\n');
|
||||
|
||||
for (var _i6 = 0; _i6 < indent; _i6++) {
|
||||
for (var _i5 = 0; _i5 < indent; _i5++) {
|
||||
out.push(' ');
|
||||
}
|
||||
}
|
||||
|
@ -18944,27 +18967,27 @@
|
|||
}
|
||||
|
||||
var attrs = svg.attributes;
|
||||
var _iteratorNormalCompletion = true;
|
||||
var _didIteratorError = false;
|
||||
var _iteratorError = undefined;
|
||||
var _iteratorNormalCompletion2 = true;
|
||||
var _didIteratorError2 = false;
|
||||
var _iteratorError2 = undefined;
|
||||
|
||||
try {
|
||||
for (var _iterator = attrs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
||||
var attr = _step.value;
|
||||
for (var _iterator2 = attrs[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
|
||||
var attr = _step2.value;
|
||||
// Ok for `NamedNodeMap`
|
||||
symbol.setAttribute(attr.nodeName, attr.value);
|
||||
}
|
||||
} catch (err) {
|
||||
_didIteratorError = true;
|
||||
_iteratorError = err;
|
||||
_didIteratorError2 = true;
|
||||
_iteratorError2 = err;
|
||||
} finally {
|
||||
try {
|
||||
if (!_iteratorNormalCompletion && _iterator["return"] != null) {
|
||||
_iterator["return"]();
|
||||
if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
|
||||
_iterator2["return"]();
|
||||
}
|
||||
} finally {
|
||||
if (_didIteratorError) {
|
||||
throw _iteratorError;
|
||||
if (_didIteratorError2) {
|
||||
throw _iteratorError2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -19189,29 +19212,29 @@
|
|||
|
||||
elem = $$9(elem).data('gsvg') || $$9(elem).data('symbol') || elem;
|
||||
var childs = elem.childNodes;
|
||||
var _iteratorNormalCompletion2 = true;
|
||||
var _didIteratorError2 = false;
|
||||
var _iteratorError2 = undefined;
|
||||
var _iteratorNormalCompletion3 = true;
|
||||
var _didIteratorError3 = false;
|
||||
var _iteratorError3 = undefined;
|
||||
|
||||
try {
|
||||
for (var _iterator2 = childs[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
|
||||
var child = _step2.value;
|
||||
for (var _iterator3 = childs[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
|
||||
var child = _step3.value;
|
||||
|
||||
if (child.nodeName === 'title') {
|
||||
return child.textContent;
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
_didIteratorError2 = true;
|
||||
_iteratorError2 = err;
|
||||
_didIteratorError3 = true;
|
||||
_iteratorError3 = err;
|
||||
} finally {
|
||||
try {
|
||||
if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
|
||||
_iterator2["return"]();
|
||||
if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) {
|
||||
_iterator3["return"]();
|
||||
}
|
||||
} finally {
|
||||
if (_didIteratorError2) {
|
||||
throw _iteratorError2;
|
||||
if (_didIteratorError3) {
|
||||
throw _iteratorError3;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -19279,13 +19302,13 @@
|
|||
var docTitle = false,
|
||||
oldTitle = '';
|
||||
var batchCmd = new BatchCommand$1('Change Image Title');
|
||||
var _iteratorNormalCompletion3 = true;
|
||||
var _didIteratorError3 = false;
|
||||
var _iteratorError3 = undefined;
|
||||
var _iteratorNormalCompletion4 = true;
|
||||
var _didIteratorError4 = false;
|
||||
var _iteratorError4 = undefined;
|
||||
|
||||
try {
|
||||
for (var _iterator3 = childs[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
|
||||
var child = _step3.value;
|
||||
for (var _iterator4 = childs[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
|
||||
var child = _step4.value;
|
||||
|
||||
if (child.nodeName === 'title') {
|
||||
docTitle = child;
|
||||
|
@ -19294,16 +19317,16 @@
|
|||
}
|
||||
}
|
||||
} catch (err) {
|
||||
_didIteratorError3 = true;
|
||||
_iteratorError3 = err;
|
||||
_didIteratorError4 = true;
|
||||
_iteratorError4 = err;
|
||||
} finally {
|
||||
try {
|
||||
if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) {
|
||||
_iterator3["return"]();
|
||||
if (!_iteratorNormalCompletion4 && _iterator4["return"] != null) {
|
||||
_iterator4["return"]();
|
||||
}
|
||||
} finally {
|
||||
if (_didIteratorError3) {
|
||||
throw _iteratorError3;
|
||||
if (_didIteratorError4) {
|
||||
throw _iteratorError4;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -20612,7 +20635,7 @@
|
|||
canvas.moveSelectedElements(diffX * currentZoom, diffY * currentZoom, true);
|
||||
return "continue";
|
||||
} // only allow the transform/opacity/filter attribute to change on <g> elements, slightly hacky
|
||||
// TODO: FIXME: Missing statement body
|
||||
// TODO: Missing statement body
|
||||
// if (elem.tagName === 'g' && goodGAttrs.includes(attr)) {}
|
||||
|
||||
|
||||
|
@ -21291,9 +21314,9 @@
|
|||
|
||||
|
||||
this.moveToTopSelectedElement = function () {
|
||||
var _selectedElements2 = selectedElements,
|
||||
_selectedElements3 = _slicedToArray(_selectedElements2, 1),
|
||||
selected = _selectedElements3[0];
|
||||
var _selectedElements = selectedElements,
|
||||
_selectedElements2 = _slicedToArray(_selectedElements, 1),
|
||||
selected = _selectedElements2[0];
|
||||
|
||||
if (!isNullish(selected)) {
|
||||
var t = selected;
|
||||
|
@ -21318,9 +21341,9 @@
|
|||
|
||||
|
||||
this.moveToBottomSelectedElement = function () {
|
||||
var _selectedElements4 = selectedElements,
|
||||
_selectedElements5 = _slicedToArray(_selectedElements4, 1),
|
||||
selected = _selectedElements5[0];
|
||||
var _selectedElements3 = selectedElements,
|
||||
_selectedElements4 = _slicedToArray(_selectedElements3, 1),
|
||||
selected = _selectedElements4[0];
|
||||
|
||||
if (!isNullish(selected)) {
|
||||
var t = selected;
|
||||
|
@ -21628,45 +21651,45 @@
|
|||
var dx = new Array(len);
|
||||
var dy = new Array(len);
|
||||
|
||||
for (var _i7 = 0; _i7 < len; ++_i7) {
|
||||
if (isNullish(selectedElements[_i7])) {
|
||||
for (var _i6 = 0; _i6 < len; ++_i6) {
|
||||
if (isNullish(selectedElements[_i6])) {
|
||||
break;
|
||||
} // const elem = selectedElements[i];
|
||||
|
||||
|
||||
var bbox = bboxes[_i7];
|
||||
dx[_i7] = 0;
|
||||
dy[_i7] = 0;
|
||||
var bbox = bboxes[_i6];
|
||||
dx[_i6] = 0;
|
||||
dy[_i6] = 0;
|
||||
|
||||
switch (type) {
|
||||
case 'l':
|
||||
// left (horizontal)
|
||||
dx[_i7] = minx - bbox.x;
|
||||
dx[_i6] = minx - bbox.x;
|
||||
break;
|
||||
|
||||
case 'c':
|
||||
// center (horizontal)
|
||||
dx[_i7] = (minx + maxx) / 2 - (bbox.x + bbox.width / 2);
|
||||
dx[_i6] = (minx + maxx) / 2 - (bbox.x + bbox.width / 2);
|
||||
break;
|
||||
|
||||
case 'r':
|
||||
// right (horizontal)
|
||||
dx[_i7] = maxx - (bbox.x + bbox.width);
|
||||
dx[_i6] = maxx - (bbox.x + bbox.width);
|
||||
break;
|
||||
|
||||
case 't':
|
||||
// top (vertical)
|
||||
dy[_i7] = miny - bbox.y;
|
||||
dy[_i6] = miny - bbox.y;
|
||||
break;
|
||||
|
||||
case 'm':
|
||||
// middle (vertical)
|
||||
dy[_i7] = (miny + maxy) / 2 - (bbox.y + bbox.height / 2);
|
||||
dy[_i6] = (miny + maxy) / 2 - (bbox.y + bbox.height / 2);
|
||||
break;
|
||||
|
||||
case 'b':
|
||||
// bottom (vertical)
|
||||
dy[_i7] = maxy - (bbox.y + bbox.height);
|
||||
dy[_i6] = maxy - (bbox.y + bbox.height);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -22832,14 +22855,14 @@
|
|||
/**
|
||||
*
|
||||
* @param {boolean} [toImage]
|
||||
* @param {external:jQuery.svgIcons.Fallback} [fallback]
|
||||
* @param {external:jQuery.svgIcons.Fallback} [fallback=false]
|
||||
* @returns {void}
|
||||
*/
|
||||
|
||||
|
||||
function makeIcons() {
|
||||
var toImage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
||||
var fallback = arguments.length > 1 ? arguments[1] : undefined;
|
||||
var fallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
||||
if (iconsMade) return;
|
||||
if (opts.no_img) toImage = false;
|
||||
var tempHolder;
|
||||
|
@ -30174,90 +30197,90 @@
|
|||
},
|
||||
'div#workarea': {
|
||||
left: 38,
|
||||
top: 74 // '#tools_bottom': {
|
||||
// left: {s: '27px', l: '46px', xl: '65px'},
|
||||
// height: {s: '58px', l: '98px', xl: '145px'}
|
||||
// },
|
||||
// '#color_tools': {
|
||||
// 'border-spacing': {s: '0 1px'},
|
||||
// 'margin-top': {s: '-1px'}
|
||||
// },
|
||||
// '#color_tools .icon_label': {
|
||||
// width: {l:'43px', xl: '60px'}
|
||||
// },
|
||||
// '.color_tool': {
|
||||
// height: {s: '20px'}
|
||||
// },
|
||||
// '#tool_opacity': {
|
||||
// top: {s: '1px'},
|
||||
// height: {s: 'auto', l:'auto', xl:'auto'}
|
||||
// },
|
||||
// '#tools_top input, #tools_bottom input': {
|
||||
// 'margin-top': {s: '2px', l: '4px', xl: '5px'},
|
||||
// height: {s: 'auto', l: 'auto', xl: 'auto'},
|
||||
// border: {s: '1px solid #555', l: 'auto', xl: 'auto'},
|
||||
// 'font-size': {s: '.9em', l: '1.2em', xl: '1.4em'}
|
||||
// },
|
||||
// '#zoom_panel': {
|
||||
// 'margin-top': {s: '3px', l: '4px', xl: '5px'}
|
||||
// },
|
||||
// '#copyright, #tools_bottom .label': {
|
||||
// 'font-size': {l: '1.5em', xl: '2em'},
|
||||
// 'line-height': {s: '15px'}
|
||||
// },
|
||||
// '#tools_bottom_2': {
|
||||
// width: {l: '295px', xl: '355px'},
|
||||
// top: {s: '4px'}
|
||||
// },
|
||||
// '#tools_top > div, #tools_top': {
|
||||
// 'line-height': {s: '17px', l: '34px', xl: '50px'}
|
||||
// },
|
||||
// '.dropdown button': {
|
||||
// height: {s: '18px', l: '34px', xl: '40px'},
|
||||
// 'line-height': {s: '18px', l: '34px', xl: '40px'},
|
||||
// 'margin-top': {s: '3px'}
|
||||
// },
|
||||
// '#tools_top label, #tools_bottom label': {
|
||||
// 'font-size': {s: '1em', l: '1.5em', xl: '2em'},
|
||||
// height: {s: '25px', l: '42px', xl: '64px'}
|
||||
// },
|
||||
// 'div.toolset': {
|
||||
// height: {s: '25px', l: '42px', xl: '64px'}
|
||||
// },
|
||||
// '#tool_bold, #tool_italic': {
|
||||
// 'font-size': {s: '1.5em', l: '3em', xl: '4.5em'}
|
||||
// },
|
||||
// '#sidepanels': {
|
||||
// top: {s: '50px', l: '88px', xl: '125px'},
|
||||
// bottom: {s: '51px', l: '68px', xl: '65px'}
|
||||
// },
|
||||
// '#layerbuttons': {
|
||||
// width: {l: '130px', xl: '175px'},
|
||||
// height: {l: '24px', xl: '30px'}
|
||||
// },
|
||||
// '#layerlist': {
|
||||
// width: {l: '128px', xl: '150px'}
|
||||
// },
|
||||
// '.layer_button': {
|
||||
// width: {l: '19px', xl: '28px'},
|
||||
// height: {l: '19px', xl: '28px'}
|
||||
// },
|
||||
// 'input.spin-button': {
|
||||
// 'background-image': {l: 'url('images/spinbtn_updn_big.png')', xl: 'url('images/spinbtn_updn_big.png')'},
|
||||
// 'background-position': {l: '100% -5px', xl: '100% -2px'},
|
||||
// 'padding-right': {l: '24px', xl: '24px' }
|
||||
// },
|
||||
// 'input.spin-button.up': {
|
||||
// 'background-position': {l: '100% -45px', xl: '100% -42px'}
|
||||
// },
|
||||
// 'input.spin-button.down': {
|
||||
// 'background-position': {l: '100% -85px', xl: '100% -82px'}
|
||||
// },
|
||||
// '#position_opts': {
|
||||
// width: {all: (size_num*4) +'px'}
|
||||
// }
|
||||
top: 74
|
||||
} // '#tools_bottom': {
|
||||
// left: {s: '27px', l: '46px', xl: '65px'},
|
||||
// height: {s: '58px', l: '98px', xl: '145px'}
|
||||
// },
|
||||
// '#color_tools': {
|
||||
// 'border-spacing': {s: '0 1px'},
|
||||
// 'margin-top': {s: '-1px'}
|
||||
// },
|
||||
// '#color_tools .icon_label': {
|
||||
// width: {l:'43px', xl: '60px'}
|
||||
// },
|
||||
// '.color_tool': {
|
||||
// height: {s: '20px'}
|
||||
// },
|
||||
// '#tool_opacity': {
|
||||
// top: {s: '1px'},
|
||||
// height: {s: 'auto', l:'auto', xl:'auto'}
|
||||
// },
|
||||
// '#tools_top input, #tools_bottom input': {
|
||||
// 'margin-top': {s: '2px', l: '4px', xl: '5px'},
|
||||
// height: {s: 'auto', l: 'auto', xl: 'auto'},
|
||||
// border: {s: '1px solid #555', l: 'auto', xl: 'auto'},
|
||||
// 'font-size': {s: '.9em', l: '1.2em', xl: '1.4em'}
|
||||
// },
|
||||
// '#zoom_panel': {
|
||||
// 'margin-top': {s: '3px', l: '4px', xl: '5px'}
|
||||
// },
|
||||
// '#copyright, #tools_bottom .label': {
|
||||
// 'font-size': {l: '1.5em', xl: '2em'},
|
||||
// 'line-height': {s: '15px'}
|
||||
// },
|
||||
// '#tools_bottom_2': {
|
||||
// width: {l: '295px', xl: '355px'},
|
||||
// top: {s: '4px'}
|
||||
// },
|
||||
// '#tools_top > div, #tools_top': {
|
||||
// 'line-height': {s: '17px', l: '34px', xl: '50px'}
|
||||
// },
|
||||
// '.dropdown button': {
|
||||
// height: {s: '18px', l: '34px', xl: '40px'},
|
||||
// 'line-height': {s: '18px', l: '34px', xl: '40px'},
|
||||
// 'margin-top': {s: '3px'}
|
||||
// },
|
||||
// '#tools_top label, #tools_bottom label': {
|
||||
// 'font-size': {s: '1em', l: '1.5em', xl: '2em'},
|
||||
// height: {s: '25px', l: '42px', xl: '64px'}
|
||||
// },
|
||||
// 'div.toolset': {
|
||||
// height: {s: '25px', l: '42px', xl: '64px'}
|
||||
// },
|
||||
// '#tool_bold, #tool_italic': {
|
||||
// 'font-size': {s: '1.5em', l: '3em', xl: '4.5em'}
|
||||
// },
|
||||
// '#sidepanels': {
|
||||
// top: {s: '50px', l: '88px', xl: '125px'},
|
||||
// bottom: {s: '51px', l: '68px', xl: '65px'}
|
||||
// },
|
||||
// '#layerbuttons': {
|
||||
// width: {l: '130px', xl: '175px'},
|
||||
// height: {l: '24px', xl: '30px'}
|
||||
// },
|
||||
// '#layerlist': {
|
||||
// width: {l: '128px', xl: '150px'}
|
||||
// },
|
||||
// '.layer_button': {
|
||||
// width: {l: '19px', xl: '28px'},
|
||||
// height: {l: '19px', xl: '28px'}
|
||||
// },
|
||||
// 'input.spin-button': {
|
||||
// 'background-image': {l: 'url('images/spinbtn_updn_big.png')', xl: 'url('images/spinbtn_updn_big.png')'},
|
||||
// 'background-position': {l: '100% -5px', xl: '100% -2px'},
|
||||
// 'padding-right': {l: '24px', xl: '24px' }
|
||||
// },
|
||||
// 'input.spin-button.up': {
|
||||
// 'background-position': {l: '100% -45px', xl: '100% -42px'}
|
||||
// },
|
||||
// 'input.spin-button.down': {
|
||||
// 'background-position': {l: '100% -85px', xl: '100% -82px'}
|
||||
// },
|
||||
// '#position_opts': {
|
||||
// width: {all: (size_num*4) +'px'}
|
||||
// }
|
||||
|
||||
}
|
||||
};
|
||||
var ruleElem = $$b('#tool_size_rules');
|
||||
|
||||
|
@ -30761,7 +30784,7 @@
|
|||
var num = 5 - $$b('#layerlist tr.layer').size();
|
||||
|
||||
while (num-- > 0) {
|
||||
// FIXME: there must a better way to do this
|
||||
// TODO: there must a better way to do this
|
||||
layerlist.append('<tr><td style="color:white">_</td><td/></tr>');
|
||||
}
|
||||
};
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -147,6 +147,10 @@
|
|||
}
|
||||
|
||||
function _iterableToArrayLimit(arr, i) {
|
||||
if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) {
|
||||
return;
|
||||
}
|
||||
|
||||
var _arr = [];
|
||||
var _n = true;
|
||||
var _d = false;
|
||||
|
@ -182,7 +186,7 @@
|
|||
|
||||
function _wrapRegExp(re, groups) {
|
||||
_wrapRegExp = function (re, groups) {
|
||||
return new BabelRegExp(re, groups);
|
||||
return new BabelRegExp(re, undefined, groups);
|
||||
};
|
||||
|
||||
var _RegExp = _wrapNativeSuper(RegExp);
|
||||
|
@ -191,10 +195,10 @@
|
|||
|
||||
var _groups = new WeakMap();
|
||||
|
||||
function BabelRegExp(re, groups) {
|
||||
var _this = _RegExp.call(this, re);
|
||||
function BabelRegExp(re, flags, groups) {
|
||||
var _this = _RegExp.call(this, re, flags);
|
||||
|
||||
_groups.set(_this, groups);
|
||||
_groups.set(_this, groups || _groups.get(re));
|
||||
|
||||
return _this;
|
||||
}
|
||||
|
@ -820,7 +824,7 @@
|
|||
}
|
||||
|
||||
return box.width;
|
||||
}; // FIXME: use more accurate positioning!!
|
||||
}; // TODO: use more accurate positioning!!
|
||||
|
||||
|
||||
var x,
|
||||
|
|
|
@ -2387,7 +2387,7 @@
|
|||
},
|
||||
enumerable: true
|
||||
},
|
||||
// FIXME: The following are not implemented and simply return SVGPathElement.pathSegList.
|
||||
// TODO: The following are not implemented and simply return SVGPathElement.pathSegList.
|
||||
normalizedPathSegList: {
|
||||
get: function get() {
|
||||
return this.pathSegList;
|
||||
|
@ -2451,8 +2451,6 @@
|
|||
var _navigator = navigator,
|
||||
userAgent = _navigator.userAgent;
|
||||
var svg = document.createElementNS(NS.SVG, 'svg'); // Note: Browser sniffing should only be used if no other detection method is possible
|
||||
|
||||
var isOpera_ = Boolean(window.opera);
|
||||
var isWebkit_ = userAgent.includes('AppleWebKit');
|
||||
var isGecko_ = userAgent.includes('Gecko/');
|
||||
var isIE_ = userAgent.includes('MSIE');
|
||||
|
@ -2464,10 +2462,6 @@
|
|||
return Boolean(svg.querySelector);
|
||||
}();
|
||||
|
||||
var supportsXpath_ = function () {
|
||||
return Boolean(document.evaluate);
|
||||
}(); // segList functions (for FF1.5 and 2.0)
|
||||
|
||||
|
||||
var supportsPathReplaceItem_ = function () {
|
||||
var path = document.createElementNS(NS.SVG, 'path');
|
||||
|
|
|
@ -213,6 +213,10 @@ var SvgCanvas = (function () {
|
|||
}
|
||||
|
||||
function _iterableToArrayLimit(arr, i) {
|
||||
if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) {
|
||||
return;
|
||||
}
|
||||
|
||||
var _arr = [];
|
||||
var _n = true;
|
||||
var _d = false;
|
||||
|
@ -248,7 +252,7 @@ var SvgCanvas = (function () {
|
|||
|
||||
function _wrapRegExp(re, groups) {
|
||||
_wrapRegExp = function (re, groups) {
|
||||
return new BabelRegExp(re, groups);
|
||||
return new BabelRegExp(re, undefined, groups);
|
||||
};
|
||||
|
||||
var _RegExp = _wrapNativeSuper(RegExp);
|
||||
|
@ -257,10 +261,10 @@ var SvgCanvas = (function () {
|
|||
|
||||
var _groups = new WeakMap();
|
||||
|
||||
function BabelRegExp(re, groups) {
|
||||
var _this = _RegExp.call(this, re);
|
||||
function BabelRegExp(re, flags, groups) {
|
||||
var _this = _RegExp.call(this, re, flags);
|
||||
|
||||
_groups.set(_this, groups);
|
||||
_groups.set(_this, groups || _groups.get(re));
|
||||
|
||||
return _this;
|
||||
}
|
||||
|
@ -2614,7 +2618,7 @@ var SvgCanvas = (function () {
|
|||
},
|
||||
enumerable: true
|
||||
},
|
||||
// FIXME: The following are not implemented and simply return SVGPathElement.pathSegList.
|
||||
// TODO: The following are not implemented and simply return SVGPathElement.pathSegList.
|
||||
normalizedPathSegList: {
|
||||
get: function get() {
|
||||
return this.pathSegList;
|
||||
|
@ -4764,7 +4768,7 @@ var SvgCanvas = (function () {
|
|||
}, {
|
||||
key: "addCommandToHistory",
|
||||
value: function addCommandToHistory(cmd) {
|
||||
// FIXME: we MUST compress consecutive text changes to the same element
|
||||
// TODO: we MUST compress consecutive text changes to the same element
|
||||
// (right now each keystroke is saved as a separate command that includes the
|
||||
// entire text contents of the text element)
|
||||
// TODO: consider limiting the history that we store here (need to do some slicing)
|
||||
|
@ -8453,7 +8457,7 @@ var SvgCanvas = (function () {
|
|||
/**
|
||||
* Walks the tree and executes the callback on each element in a depth-first fashion.
|
||||
* @function module:utilities.walkTreePost
|
||||
* @todo FIXME: Shouldn't this be calling walkTreePost?
|
||||
* @todo Shouldn't this be calling walkTreePost?
|
||||
* @param {Element} elem - DOM element to traverse
|
||||
* @param {module:utilities.TreeWalker} cbFn - Callback function to run on each element
|
||||
* @returns {void}
|
||||
|
@ -11391,7 +11395,7 @@ var SvgCanvas = (function () {
|
|||
|
||||
} else {
|
||||
// remove all children from this node and insert them before this node
|
||||
// FIXME: in the case of animation elements this will hardly ever be correct
|
||||
// TODO: in the case of animation elements this will hardly ever be correct
|
||||
var children = [];
|
||||
|
||||
while (node.hasChildNodes()) {
|
||||
|
@ -12282,7 +12286,7 @@ var SvgCanvas = (function () {
|
|||
if (Math.abs(a) > 1.0e-10) {
|
||||
s = Math.sin(a) / (1 - Math.cos(a));
|
||||
} else {
|
||||
// FIXME: This blows up if the angle is exactly 0!
|
||||
// TODO: This blows up if the angle is exactly 0!
|
||||
s = 2 / a;
|
||||
}
|
||||
|
||||
|
@ -12643,7 +12647,7 @@ var SvgCanvas = (function () {
|
|||
} // else, it's a non-group
|
||||
|
||||
} else {
|
||||
// FIXME: box might be null for some elements (<metadata> etc), need to handle this
|
||||
// TODO: box might be null for some elements (<metadata> etc), need to handle this
|
||||
var _box = getBBox(selected); // Paths (and possbly other shapes) will have no BBox while still in <defs>,
|
||||
// but we still may need to recalculate them (see issue 595).
|
||||
// TODO: Figure out how to get BBox from these elements in case they
|
||||
|
@ -12667,7 +12671,7 @@ var SvgCanvas = (function () {
|
|||
|
||||
var _a = _angle * Math.PI / 180;
|
||||
|
||||
var _s = Math.abs(_a) > 1.0e-10 ? Math.sin(_a) / (1 - Math.cos(_a)) // FIXME: This blows up if the angle is exactly 0!
|
||||
var _s = Math.abs(_a) > 1.0e-10 ? Math.sin(_a) / (1 - Math.cos(_a)) // TODO: This blows up if the angle is exactly 0!
|
||||
: 2 / _a;
|
||||
|
||||
for (var _i2 = 0; _i2 < tlist.numberOfItems; ++_i2) {
|
||||
|
@ -15386,19 +15390,38 @@ var SvgCanvas = (function () {
|
|||
if (!rightClick) {
|
||||
// insert a dummy transform so if the element(s) are moved it will have
|
||||
// a transform to use for its translate
|
||||
for (var _i2 = 0, _selectedElements = selectedElements; _i2 < _selectedElements.length; _i2++) {
|
||||
var selectedElement = _selectedElements[_i2];
|
||||
var _iteratorNormalCompletion = true;
|
||||
var _didIteratorError = false;
|
||||
var _iteratorError = undefined;
|
||||
|
||||
if (isNullish(selectedElement)) {
|
||||
continue;
|
||||
try {
|
||||
for (var _iterator = selectedElements[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
||||
var selectedElement = _step.value;
|
||||
|
||||
if (isNullish(selectedElement)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
var slist = getTransformList(selectedElement);
|
||||
|
||||
if (slist.numberOfItems) {
|
||||
slist.insertItemBefore(svgroot.createSVGTransform(), 0);
|
||||
} else {
|
||||
slist.appendItem(svgroot.createSVGTransform());
|
||||
}
|
||||
}
|
||||
|
||||
var slist = getTransformList(selectedElement);
|
||||
|
||||
if (slist.numberOfItems) {
|
||||
slist.insertItemBefore(svgroot.createSVGTransform(), 0);
|
||||
} else {
|
||||
slist.appendItem(svgroot.createSVGTransform());
|
||||
} catch (err) {
|
||||
_didIteratorError = true;
|
||||
_iteratorError = err;
|
||||
} finally {
|
||||
try {
|
||||
if (!_iteratorNormalCompletion && _iterator["return"] != null) {
|
||||
_iterator["return"]();
|
||||
}
|
||||
} finally {
|
||||
if (_didIteratorError) {
|
||||
throw _iteratorError;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -15562,7 +15585,7 @@ var SvgCanvas = (function () {
|
|||
break;
|
||||
}
|
||||
|
||||
case 'square': // FIXME: once we create the rect, we lose information that this was a square
|
||||
case 'square': // TODO: once we create the rect, we lose information that this was a square
|
||||
// (for resizing purposes this could be important)
|
||||
// Fallthrough
|
||||
|
||||
|
@ -17504,11 +17527,11 @@ var SvgCanvas = (function () {
|
|||
}
|
||||
});
|
||||
});
|
||||
var _i3 = attrs.length;
|
||||
var _i2 = attrs.length;
|
||||
var attrNames = ['width', 'height', 'xmlns', 'x', 'y', 'viewBox', 'id', 'overflow'];
|
||||
|
||||
while (_i3--) {
|
||||
var attr = attrs[_i3];
|
||||
while (_i2--) {
|
||||
var attr = attrs[_i2];
|
||||
var attrVal = toXml(attr.value); // Namespaces have already been dealt with, so skip
|
||||
|
||||
if (attr.nodeName.startsWith('xmlns:')) {
|
||||
|
@ -17534,8 +17557,8 @@ var SvgCanvas = (function () {
|
|||
|
||||
var mozAttrs = ['-moz-math-font-style', '_moz-math-font-style'];
|
||||
|
||||
for (var _i4 = attrs.length - 1; _i4 >= 0; _i4--) {
|
||||
var _attr = attrs[_i4];
|
||||
for (var _i3 = attrs.length - 1; _i3 >= 0; _i3--) {
|
||||
var _attr = attrs[_i3];
|
||||
|
||||
var _attrVal = toXml(_attr.value); // remove bogus attributes added by Gecko
|
||||
|
||||
|
@ -17591,14 +17614,14 @@ var SvgCanvas = (function () {
|
|||
indent++;
|
||||
var bOneLine = false;
|
||||
|
||||
for (var _i5 = 0; _i5 < childs.length; _i5++) {
|
||||
var child = childs.item(_i5);
|
||||
for (var _i4 = 0; _i4 < childs.length; _i4++) {
|
||||
var child = childs.item(_i4);
|
||||
|
||||
switch (child.nodeType) {
|
||||
case 1:
|
||||
// element node
|
||||
out.push('\n');
|
||||
out.push(this.svgToString(childs.item(_i5), indent));
|
||||
out.push(this.svgToString(childs.item(_i4), indent));
|
||||
break;
|
||||
|
||||
case 3:
|
||||
|
@ -17640,7 +17663,7 @@ var SvgCanvas = (function () {
|
|||
if (!bOneLine) {
|
||||
out.push('\n');
|
||||
|
||||
for (var _i6 = 0; _i6 < indent; _i6++) {
|
||||
for (var _i5 = 0; _i5 < indent; _i5++) {
|
||||
out.push(' ');
|
||||
}
|
||||
}
|
||||
|
@ -18716,27 +18739,27 @@ var SvgCanvas = (function () {
|
|||
}
|
||||
|
||||
var attrs = svg.attributes;
|
||||
var _iteratorNormalCompletion = true;
|
||||
var _didIteratorError = false;
|
||||
var _iteratorError = undefined;
|
||||
var _iteratorNormalCompletion2 = true;
|
||||
var _didIteratorError2 = false;
|
||||
var _iteratorError2 = undefined;
|
||||
|
||||
try {
|
||||
for (var _iterator = attrs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
||||
var attr = _step.value;
|
||||
for (var _iterator2 = attrs[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
|
||||
var attr = _step2.value;
|
||||
// Ok for `NamedNodeMap`
|
||||
symbol.setAttribute(attr.nodeName, attr.value);
|
||||
}
|
||||
} catch (err) {
|
||||
_didIteratorError = true;
|
||||
_iteratorError = err;
|
||||
_didIteratorError2 = true;
|
||||
_iteratorError2 = err;
|
||||
} finally {
|
||||
try {
|
||||
if (!_iteratorNormalCompletion && _iterator["return"] != null) {
|
||||
_iterator["return"]();
|
||||
if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
|
||||
_iterator2["return"]();
|
||||
}
|
||||
} finally {
|
||||
if (_didIteratorError) {
|
||||
throw _iteratorError;
|
||||
if (_didIteratorError2) {
|
||||
throw _iteratorError2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -18961,29 +18984,29 @@ var SvgCanvas = (function () {
|
|||
|
||||
elem = $$8(elem).data('gsvg') || $$8(elem).data('symbol') || elem;
|
||||
var childs = elem.childNodes;
|
||||
var _iteratorNormalCompletion2 = true;
|
||||
var _didIteratorError2 = false;
|
||||
var _iteratorError2 = undefined;
|
||||
var _iteratorNormalCompletion3 = true;
|
||||
var _didIteratorError3 = false;
|
||||
var _iteratorError3 = undefined;
|
||||
|
||||
try {
|
||||
for (var _iterator2 = childs[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
|
||||
var child = _step2.value;
|
||||
for (var _iterator3 = childs[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
|
||||
var child = _step3.value;
|
||||
|
||||
if (child.nodeName === 'title') {
|
||||
return child.textContent;
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
_didIteratorError2 = true;
|
||||
_iteratorError2 = err;
|
||||
_didIteratorError3 = true;
|
||||
_iteratorError3 = err;
|
||||
} finally {
|
||||
try {
|
||||
if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
|
||||
_iterator2["return"]();
|
||||
if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) {
|
||||
_iterator3["return"]();
|
||||
}
|
||||
} finally {
|
||||
if (_didIteratorError2) {
|
||||
throw _iteratorError2;
|
||||
if (_didIteratorError3) {
|
||||
throw _iteratorError3;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -19051,13 +19074,13 @@ var SvgCanvas = (function () {
|
|||
var docTitle = false,
|
||||
oldTitle = '';
|
||||
var batchCmd = new BatchCommand$1('Change Image Title');
|
||||
var _iteratorNormalCompletion3 = true;
|
||||
var _didIteratorError3 = false;
|
||||
var _iteratorError3 = undefined;
|
||||
var _iteratorNormalCompletion4 = true;
|
||||
var _didIteratorError4 = false;
|
||||
var _iteratorError4 = undefined;
|
||||
|
||||
try {
|
||||
for (var _iterator3 = childs[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
|
||||
var child = _step3.value;
|
||||
for (var _iterator4 = childs[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
|
||||
var child = _step4.value;
|
||||
|
||||
if (child.nodeName === 'title') {
|
||||
docTitle = child;
|
||||
|
@ -19066,16 +19089,16 @@ var SvgCanvas = (function () {
|
|||
}
|
||||
}
|
||||
} catch (err) {
|
||||
_didIteratorError3 = true;
|
||||
_iteratorError3 = err;
|
||||
_didIteratorError4 = true;
|
||||
_iteratorError4 = err;
|
||||
} finally {
|
||||
try {
|
||||
if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) {
|
||||
_iterator3["return"]();
|
||||
if (!_iteratorNormalCompletion4 && _iterator4["return"] != null) {
|
||||
_iterator4["return"]();
|
||||
}
|
||||
} finally {
|
||||
if (_didIteratorError3) {
|
||||
throw _iteratorError3;
|
||||
if (_didIteratorError4) {
|
||||
throw _iteratorError4;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -20384,7 +20407,7 @@ var SvgCanvas = (function () {
|
|||
canvas.moveSelectedElements(diffX * currentZoom, diffY * currentZoom, true);
|
||||
return "continue";
|
||||
} // only allow the transform/opacity/filter attribute to change on <g> elements, slightly hacky
|
||||
// TODO: FIXME: Missing statement body
|
||||
// TODO: Missing statement body
|
||||
// if (elem.tagName === 'g' && goodGAttrs.includes(attr)) {}
|
||||
|
||||
|
||||
|
@ -21063,9 +21086,9 @@ var SvgCanvas = (function () {
|
|||
|
||||
|
||||
this.moveToTopSelectedElement = function () {
|
||||
var _selectedElements2 = selectedElements,
|
||||
_selectedElements3 = _slicedToArray(_selectedElements2, 1),
|
||||
selected = _selectedElements3[0];
|
||||
var _selectedElements = selectedElements,
|
||||
_selectedElements2 = _slicedToArray(_selectedElements, 1),
|
||||
selected = _selectedElements2[0];
|
||||
|
||||
if (!isNullish(selected)) {
|
||||
var t = selected;
|
||||
|
@ -21090,9 +21113,9 @@ var SvgCanvas = (function () {
|
|||
|
||||
|
||||
this.moveToBottomSelectedElement = function () {
|
||||
var _selectedElements4 = selectedElements,
|
||||
_selectedElements5 = _slicedToArray(_selectedElements4, 1),
|
||||
selected = _selectedElements5[0];
|
||||
var _selectedElements3 = selectedElements,
|
||||
_selectedElements4 = _slicedToArray(_selectedElements3, 1),
|
||||
selected = _selectedElements4[0];
|
||||
|
||||
if (!isNullish(selected)) {
|
||||
var t = selected;
|
||||
|
@ -21400,45 +21423,45 @@ var SvgCanvas = (function () {
|
|||
var dx = new Array(len);
|
||||
var dy = new Array(len);
|
||||
|
||||
for (var _i7 = 0; _i7 < len; ++_i7) {
|
||||
if (isNullish(selectedElements[_i7])) {
|
||||
for (var _i6 = 0; _i6 < len; ++_i6) {
|
||||
if (isNullish(selectedElements[_i6])) {
|
||||
break;
|
||||
} // const elem = selectedElements[i];
|
||||
|
||||
|
||||
var bbox = bboxes[_i7];
|
||||
dx[_i7] = 0;
|
||||
dy[_i7] = 0;
|
||||
var bbox = bboxes[_i6];
|
||||
dx[_i6] = 0;
|
||||
dy[_i6] = 0;
|
||||
|
||||
switch (type) {
|
||||
case 'l':
|
||||
// left (horizontal)
|
||||
dx[_i7] = minx - bbox.x;
|
||||
dx[_i6] = minx - bbox.x;
|
||||
break;
|
||||
|
||||
case 'c':
|
||||
// center (horizontal)
|
||||
dx[_i7] = (minx + maxx) / 2 - (bbox.x + bbox.width / 2);
|
||||
dx[_i6] = (minx + maxx) / 2 - (bbox.x + bbox.width / 2);
|
||||
break;
|
||||
|
||||
case 'r':
|
||||
// right (horizontal)
|
||||
dx[_i7] = maxx - (bbox.x + bbox.width);
|
||||
dx[_i6] = maxx - (bbox.x + bbox.width);
|
||||
break;
|
||||
|
||||
case 't':
|
||||
// top (vertical)
|
||||
dy[_i7] = miny - bbox.y;
|
||||
dy[_i6] = miny - bbox.y;
|
||||
break;
|
||||
|
||||
case 'm':
|
||||
// middle (vertical)
|
||||
dy[_i7] = (miny + maxy) / 2 - (bbox.y + bbox.height / 2);
|
||||
dy[_i6] = (miny + maxy) / 2 - (bbox.y + bbox.height / 2);
|
||||
break;
|
||||
|
||||
case 'b':
|
||||
// bottom (vertical)
|
||||
dy[_i7] = maxy - (bbox.y + bbox.height);
|
||||
dy[_i6] = maxy - (bbox.y + bbox.height);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -636,7 +636,7 @@ export class UndoManager {
|
|||
* @returns {void}
|
||||
*/
|
||||
addCommandToHistory (cmd) {
|
||||
// FIXME: we MUST compress consecutive text changes to the same element
|
||||
// TODO: we MUST compress consecutive text changes to the same element
|
||||
// (right now each keystroke is saved as a separate command that includes the
|
||||
// entire text contents of the text element)
|
||||
// TODO: consider limiting the history that we store here (need to do some slicing)
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 392 B After Width: | Height: | Size: 389 B |
|
@ -243,7 +243,7 @@ const svgElementToPdf = function (element, pdf, options) {
|
|||
}
|
||||
return box.width;
|
||||
};
|
||||
// FIXME: use more accurate positioning!!
|
||||
// TODO: use more accurate positioning!!
|
||||
let x, y, xOffset = 0;
|
||||
if (node.hasAttribute('text-anchor')) {
|
||||
switch (node.getAttribute('text-anchor')) {
|
||||
|
|
|
@ -273,7 +273,7 @@ export const recalculateDimensions = function (selected) {
|
|||
if (Math.abs(a) > (1.0e-10)) {
|
||||
s = Math.sin(a) / (1 - Math.cos(a));
|
||||
} else {
|
||||
// FIXME: This blows up if the angle is exactly 0!
|
||||
// TODO: This blows up if the angle is exactly 0!
|
||||
s = 2 / a;
|
||||
}
|
||||
for (let i = 0; i < tlist.numberOfItems; ++i) {
|
||||
|
@ -599,7 +599,7 @@ export const recalculateDimensions = function (selected) {
|
|||
}
|
||||
// else, it's a non-group
|
||||
} else {
|
||||
// FIXME: box might be null for some elements (<metadata> etc), need to handle this
|
||||
// TODO: box might be null for some elements (<metadata> etc), need to handle this
|
||||
const box = getBBox(selected);
|
||||
|
||||
// Paths (and possbly other shapes) will have no BBox while still in <defs>,
|
||||
|
@ -623,7 +623,7 @@ export const recalculateDimensions = function (selected) {
|
|||
const a = angle * Math.PI / 180;
|
||||
const s = (Math.abs(a) > (1.0e-10))
|
||||
? Math.sin(a) / (1 - Math.cos(a))
|
||||
// FIXME: This blows up if the angle is exactly 0!
|
||||
// TODO: This blows up if the angle is exactly 0!
|
||||
: 2 / a;
|
||||
|
||||
for (let i = 0; i < tlist.numberOfItems; ++i) {
|
||||
|
|
|
@ -233,7 +233,7 @@ export const sanitizeSvg = function (node) {
|
|||
// else (element not supported), remove it
|
||||
} else {
|
||||
// remove all children from this node and insert them before this node
|
||||
// FIXME: in the case of animation elements this will hardly ever be correct
|
||||
// TODO: in the case of animation elements this will hardly ever be correct
|
||||
const children = [];
|
||||
while (node.hasChildNodes()) {
|
||||
children.push(parent.insertBefore(node.firstChild, node));
|
||||
|
|
|
@ -1626,7 +1626,7 @@ editor.init = function () {
|
|||
// if there were too few rows, let's add a few to make it not so lonely
|
||||
let num = 5 - $('#layerlist tr.layer').size();
|
||||
while (num-- > 0) {
|
||||
// FIXME: there must a better way to do this
|
||||
// TODO: there must a better way to do this
|
||||
layerlist.append('<tr><td style="color:white">_</td><td/></tr>');
|
||||
}
|
||||
};
|
||||
|
|
|
@ -1955,7 +1955,7 @@ const mouseDown = function (evt) {
|
|||
preventClickDefault(newImage);
|
||||
break;
|
||||
} case 'square':
|
||||
// FIXME: once we create the rect, we lose information that this was a square
|
||||
// TODO: once we create the rect, we lose information that this was a square
|
||||
// (for resizing purposes this could be important)
|
||||
// Fallthrough
|
||||
case 'rect':
|
||||
|
@ -6169,7 +6169,7 @@ const changeSelectedAttributeNoUndo = function (attr, newValue, elems) {
|
|||
}
|
||||
|
||||
// only allow the transform/opacity/filter attribute to change on <g> elements, slightly hacky
|
||||
// TODO: FIXME: Missing statement body
|
||||
// TODO: Missing statement body
|
||||
// if (elem.tagName === 'g' && goodGAttrs.includes(attr)) {}
|
||||
let oldval = attr === '#text' ? elem.textContent : elem.getAttribute(attr);
|
||||
if (isNullish(oldval)) { oldval = ''; }
|
||||
|
|
|
@ -361,10 +361,10 @@ export default function jQueryPluginSVGIcons ($) {
|
|||
/**
|
||||
*
|
||||
* @param {boolean} [toImage]
|
||||
* @param {external:jQuery.svgIcons.Fallback} [fallback]
|
||||
* @param {external:jQuery.svgIcons.Fallback} [fallback=false]
|
||||
* @returns {void}
|
||||
*/
|
||||
function makeIcons (toImage = false, fallback) {
|
||||
function makeIcons (toImage = false, fallback = false) {
|
||||
if (iconsMade) return;
|
||||
if (opts.no_img) toImage = false;
|
||||
|
||||
|
|
|
@ -961,7 +961,7 @@ if (!('SVGPathSegList' in window) || !('appendItem' in window.SVGPathSegList.pro
|
|||
},
|
||||
enumerable: true
|
||||
},
|
||||
// FIXME: The following are not implemented and simply return SVGPathElement.pathSegList.
|
||||
// TODO: The following are not implemented and simply return SVGPathElement.pathSegList.
|
||||
normalizedPathSegList: {get () { return this.pathSegList; }, enumerable: true},
|
||||
animatedPathSegList: {get () { return this.pathSegList; }, enumerable: true},
|
||||
animatedNormalizedPathSegList: {get () { return this.pathSegList; }, enumerable: true}
|
||||
|
|
|
@ -395,7 +395,7 @@ export const walkTree = function (elem, cbFn) {
|
|||
/**
|
||||
* Walks the tree and executes the callback on each element in a depth-first fashion.
|
||||
* @function module:utilities.walkTreePost
|
||||
* @todo FIXME: Shouldn't this be calling walkTreePost?
|
||||
* @todo Shouldn't this be calling walkTreePost?
|
||||
* @param {Element} elem - DOM element to traverse
|
||||
* @param {module:utilities.TreeWalker} cbFn - Callback function to run on each element
|
||||
* @returns {void}
|
||||
|
@ -1300,8 +1300,8 @@ export const snapToGrid = function (value) {
|
|||
* @returns {string}
|
||||
*/
|
||||
export const regexEscape = function (str) {
|
||||
// From: http://phpjs.org/functions
|
||||
return String(str).replace(new RegExp('[.\\\\+*?\\[\\^\\]$(){}=!<>|:\\-]', 'g'), '\\$&');
|
||||
// Originally from: http://phpjs.org/functions
|
||||
return String(str).replace(/[.\\+*?[^\]$(){}=!<>|:-]/g, '\\$&');
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
@ -231,6 +231,10 @@
|
|||
}
|
||||
|
||||
function _iterableToArrayLimit(arr, i) {
|
||||
if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) {
|
||||
return;
|
||||
}
|
||||
|
||||
var _arr = [];
|
||||
var _n = true;
|
||||
var _d = false;
|
||||
|
@ -266,7 +270,7 @@
|
|||
|
||||
function _wrapRegExp(re, groups) {
|
||||
_wrapRegExp = function (re, groups) {
|
||||
return new BabelRegExp(re, groups);
|
||||
return new BabelRegExp(re, undefined, groups);
|
||||
};
|
||||
|
||||
var _RegExp = _wrapNativeSuper(RegExp);
|
||||
|
@ -275,10 +279,10 @@
|
|||
|
||||
var _groups = new WeakMap();
|
||||
|
||||
function BabelRegExp(re, groups) {
|
||||
var _this = _RegExp.call(this, re);
|
||||
function BabelRegExp(re, flags, groups) {
|
||||
var _this = _RegExp.call(this, re, flags);
|
||||
|
||||
_groups.set(_this, groups);
|
||||
_groups.set(_this, groups || _groups.get(re));
|
||||
|
||||
return _this;
|
||||
}
|
||||
|
@ -2739,7 +2743,7 @@
|
|||
},
|
||||
enumerable: true
|
||||
},
|
||||
// FIXME: The following are not implemented and simply return SVGPathElement.pathSegList.
|
||||
// TODO: The following are not implemented and simply return SVGPathElement.pathSegList.
|
||||
normalizedPathSegList: {
|
||||
get: function get() {
|
||||
return this.pathSegList;
|
||||
|
@ -4695,7 +4699,7 @@
|
|||
}, {
|
||||
key: "addCommandToHistory",
|
||||
value: function addCommandToHistory(cmd) {
|
||||
// FIXME: we MUST compress consecutive text changes to the same element
|
||||
// TODO: we MUST compress consecutive text changes to the same element
|
||||
// (right now each keystroke is saved as a separate command that includes the
|
||||
// entire text contents of the text element)
|
||||
// TODO: consider limiting the history that we store here (need to do some slicing)
|
||||
|
@ -8384,7 +8388,7 @@
|
|||
/**
|
||||
* Walks the tree and executes the callback on each element in a depth-first fashion.
|
||||
* @function module:utilities.walkTreePost
|
||||
* @todo FIXME: Shouldn't this be calling walkTreePost?
|
||||
* @todo Shouldn't this be calling walkTreePost?
|
||||
* @param {Element} elem - DOM element to traverse
|
||||
* @param {module:utilities.TreeWalker} cbFn - Callback function to run on each element
|
||||
* @returns {void}
|
||||
|
@ -9364,8 +9368,8 @@
|
|||
*/
|
||||
|
||||
var regexEscape = function regexEscape(str) {
|
||||
// From: http://phpjs.org/functions
|
||||
return String(str).replace(new RegExp('[.\\\\+*?\\[\\^\\]$(){}=!<>|:\\-]', 'g'), '\\$&');
|
||||
// Originally from: http://phpjs.org/functions
|
||||
return String(str).replace(/[.\\+*?[^\]$(){}=!<>|:-]/g, '\\$&');
|
||||
};
|
||||
/**
|
||||
* Prevents default browser click behaviour on the given element.
|
||||
|
@ -11827,7 +11831,7 @@
|
|||
|
||||
} else {
|
||||
// remove all children from this node and insert them before this node
|
||||
// FIXME: in the case of animation elements this will hardly ever be correct
|
||||
// TODO: in the case of animation elements this will hardly ever be correct
|
||||
var children = [];
|
||||
|
||||
while (node.hasChildNodes()) {
|
||||
|
@ -12507,7 +12511,7 @@
|
|||
if (Math.abs(a) > 1.0e-10) {
|
||||
s = Math.sin(a) / (1 - Math.cos(a));
|
||||
} else {
|
||||
// FIXME: This blows up if the angle is exactly 0!
|
||||
// TODO: This blows up if the angle is exactly 0!
|
||||
s = 2 / a;
|
||||
}
|
||||
|
||||
|
@ -12868,7 +12872,7 @@
|
|||
} // else, it's a non-group
|
||||
|
||||
} else {
|
||||
// FIXME: box might be null for some elements (<metadata> etc), need to handle this
|
||||
// TODO: box might be null for some elements (<metadata> etc), need to handle this
|
||||
var _box = getBBox(selected); // Paths (and possbly other shapes) will have no BBox while still in <defs>,
|
||||
// but we still may need to recalculate them (see issue 595).
|
||||
// TODO: Figure out how to get BBox from these elements in case they
|
||||
|
@ -12892,7 +12896,7 @@
|
|||
|
||||
var _a = _angle * Math.PI / 180;
|
||||
|
||||
var _s = Math.abs(_a) > 1.0e-10 ? Math.sin(_a) / (1 - Math.cos(_a)) // FIXME: This blows up if the angle is exactly 0!
|
||||
var _s = Math.abs(_a) > 1.0e-10 ? Math.sin(_a) / (1 - Math.cos(_a)) // TODO: This blows up if the angle is exactly 0!
|
||||
: 2 / _a;
|
||||
|
||||
for (var _i2 = 0; _i2 < tlist.numberOfItems; ++_i2) {
|
||||
|
@ -15611,19 +15615,38 @@
|
|||
if (!rightClick) {
|
||||
// insert a dummy transform so if the element(s) are moved it will have
|
||||
// a transform to use for its translate
|
||||
for (var _i2 = 0, _selectedElements = selectedElements; _i2 < _selectedElements.length; _i2++) {
|
||||
var selectedElement = _selectedElements[_i2];
|
||||
var _iteratorNormalCompletion = true;
|
||||
var _didIteratorError = false;
|
||||
var _iteratorError = undefined;
|
||||
|
||||
if (isNullish(selectedElement)) {
|
||||
continue;
|
||||
try {
|
||||
for (var _iterator = selectedElements[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
||||
var selectedElement = _step.value;
|
||||
|
||||
if (isNullish(selectedElement)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
var slist = getTransformList(selectedElement);
|
||||
|
||||
if (slist.numberOfItems) {
|
||||
slist.insertItemBefore(svgroot.createSVGTransform(), 0);
|
||||
} else {
|
||||
slist.appendItem(svgroot.createSVGTransform());
|
||||
}
|
||||
}
|
||||
|
||||
var slist = getTransformList(selectedElement);
|
||||
|
||||
if (slist.numberOfItems) {
|
||||
slist.insertItemBefore(svgroot.createSVGTransform(), 0);
|
||||
} else {
|
||||
slist.appendItem(svgroot.createSVGTransform());
|
||||
} catch (err) {
|
||||
_didIteratorError = true;
|
||||
_iteratorError = err;
|
||||
} finally {
|
||||
try {
|
||||
if (!_iteratorNormalCompletion && _iterator["return"] != null) {
|
||||
_iterator["return"]();
|
||||
}
|
||||
} finally {
|
||||
if (_didIteratorError) {
|
||||
throw _iteratorError;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -15787,7 +15810,7 @@
|
|||
break;
|
||||
}
|
||||
|
||||
case 'square': // FIXME: once we create the rect, we lose information that this was a square
|
||||
case 'square': // TODO: once we create the rect, we lose information that this was a square
|
||||
// (for resizing purposes this could be important)
|
||||
// Fallthrough
|
||||
|
||||
|
@ -17729,11 +17752,11 @@
|
|||
}
|
||||
});
|
||||
});
|
||||
var _i3 = attrs.length;
|
||||
var _i2 = attrs.length;
|
||||
var attrNames = ['width', 'height', 'xmlns', 'x', 'y', 'viewBox', 'id', 'overflow'];
|
||||
|
||||
while (_i3--) {
|
||||
var attr = attrs[_i3];
|
||||
while (_i2--) {
|
||||
var attr = attrs[_i2];
|
||||
var attrVal = toXml(attr.value); // Namespaces have already been dealt with, so skip
|
||||
|
||||
if (attr.nodeName.startsWith('xmlns:')) {
|
||||
|
@ -17759,8 +17782,8 @@
|
|||
|
||||
var mozAttrs = ['-moz-math-font-style', '_moz-math-font-style'];
|
||||
|
||||
for (var _i4 = attrs.length - 1; _i4 >= 0; _i4--) {
|
||||
var _attr = attrs[_i4];
|
||||
for (var _i3 = attrs.length - 1; _i3 >= 0; _i3--) {
|
||||
var _attr = attrs[_i3];
|
||||
|
||||
var _attrVal = toXml(_attr.value); // remove bogus attributes added by Gecko
|
||||
|
||||
|
@ -17816,14 +17839,14 @@
|
|||
indent++;
|
||||
var bOneLine = false;
|
||||
|
||||
for (var _i5 = 0; _i5 < childs.length; _i5++) {
|
||||
var child = childs.item(_i5);
|
||||
for (var _i4 = 0; _i4 < childs.length; _i4++) {
|
||||
var child = childs.item(_i4);
|
||||
|
||||
switch (child.nodeType) {
|
||||
case 1:
|
||||
// element node
|
||||
out.push('\n');
|
||||
out.push(this.svgToString(childs.item(_i5), indent));
|
||||
out.push(this.svgToString(childs.item(_i4), indent));
|
||||
break;
|
||||
|
||||
case 3:
|
||||
|
@ -17865,7 +17888,7 @@
|
|||
if (!bOneLine) {
|
||||
out.push('\n');
|
||||
|
||||
for (var _i6 = 0; _i6 < indent; _i6++) {
|
||||
for (var _i5 = 0; _i5 < indent; _i5++) {
|
||||
out.push(' ');
|
||||
}
|
||||
}
|
||||
|
@ -18941,27 +18964,27 @@
|
|||
}
|
||||
|
||||
var attrs = svg.attributes;
|
||||
var _iteratorNormalCompletion = true;
|
||||
var _didIteratorError = false;
|
||||
var _iteratorError = undefined;
|
||||
var _iteratorNormalCompletion2 = true;
|
||||
var _didIteratorError2 = false;
|
||||
var _iteratorError2 = undefined;
|
||||
|
||||
try {
|
||||
for (var _iterator = attrs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
||||
var attr = _step.value;
|
||||
for (var _iterator2 = attrs[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
|
||||
var attr = _step2.value;
|
||||
// Ok for `NamedNodeMap`
|
||||
symbol.setAttribute(attr.nodeName, attr.value);
|
||||
}
|
||||
} catch (err) {
|
||||
_didIteratorError = true;
|
||||
_iteratorError = err;
|
||||
_didIteratorError2 = true;
|
||||
_iteratorError2 = err;
|
||||
} finally {
|
||||
try {
|
||||
if (!_iteratorNormalCompletion && _iterator["return"] != null) {
|
||||
_iterator["return"]();
|
||||
if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
|
||||
_iterator2["return"]();
|
||||
}
|
||||
} finally {
|
||||
if (_didIteratorError) {
|
||||
throw _iteratorError;
|
||||
if (_didIteratorError2) {
|
||||
throw _iteratorError2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -19186,29 +19209,29 @@
|
|||
|
||||
elem = $$9(elem).data('gsvg') || $$9(elem).data('symbol') || elem;
|
||||
var childs = elem.childNodes;
|
||||
var _iteratorNormalCompletion2 = true;
|
||||
var _didIteratorError2 = false;
|
||||
var _iteratorError2 = undefined;
|
||||
var _iteratorNormalCompletion3 = true;
|
||||
var _didIteratorError3 = false;
|
||||
var _iteratorError3 = undefined;
|
||||
|
||||
try {
|
||||
for (var _iterator2 = childs[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
|
||||
var child = _step2.value;
|
||||
for (var _iterator3 = childs[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
|
||||
var child = _step3.value;
|
||||
|
||||
if (child.nodeName === 'title') {
|
||||
return child.textContent;
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
_didIteratorError2 = true;
|
||||
_iteratorError2 = err;
|
||||
_didIteratorError3 = true;
|
||||
_iteratorError3 = err;
|
||||
} finally {
|
||||
try {
|
||||
if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
|
||||
_iterator2["return"]();
|
||||
if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) {
|
||||
_iterator3["return"]();
|
||||
}
|
||||
} finally {
|
||||
if (_didIteratorError2) {
|
||||
throw _iteratorError2;
|
||||
if (_didIteratorError3) {
|
||||
throw _iteratorError3;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -19276,13 +19299,13 @@
|
|||
var docTitle = false,
|
||||
oldTitle = '';
|
||||
var batchCmd = new BatchCommand$1('Change Image Title');
|
||||
var _iteratorNormalCompletion3 = true;
|
||||
var _didIteratorError3 = false;
|
||||
var _iteratorError3 = undefined;
|
||||
var _iteratorNormalCompletion4 = true;
|
||||
var _didIteratorError4 = false;
|
||||
var _iteratorError4 = undefined;
|
||||
|
||||
try {
|
||||
for (var _iterator3 = childs[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
|
||||
var child = _step3.value;
|
||||
for (var _iterator4 = childs[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
|
||||
var child = _step4.value;
|
||||
|
||||
if (child.nodeName === 'title') {
|
||||
docTitle = child;
|
||||
|
@ -19291,16 +19314,16 @@
|
|||
}
|
||||
}
|
||||
} catch (err) {
|
||||
_didIteratorError3 = true;
|
||||
_iteratorError3 = err;
|
||||
_didIteratorError4 = true;
|
||||
_iteratorError4 = err;
|
||||
} finally {
|
||||
try {
|
||||
if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) {
|
||||
_iterator3["return"]();
|
||||
if (!_iteratorNormalCompletion4 && _iterator4["return"] != null) {
|
||||
_iterator4["return"]();
|
||||
}
|
||||
} finally {
|
||||
if (_didIteratorError3) {
|
||||
throw _iteratorError3;
|
||||
if (_didIteratorError4) {
|
||||
throw _iteratorError4;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -20609,7 +20632,7 @@
|
|||
canvas.moveSelectedElements(diffX * currentZoom, diffY * currentZoom, true);
|
||||
return "continue";
|
||||
} // only allow the transform/opacity/filter attribute to change on <g> elements, slightly hacky
|
||||
// TODO: FIXME: Missing statement body
|
||||
// TODO: Missing statement body
|
||||
// if (elem.tagName === 'g' && goodGAttrs.includes(attr)) {}
|
||||
|
||||
|
||||
|
@ -21288,9 +21311,9 @@
|
|||
|
||||
|
||||
this.moveToTopSelectedElement = function () {
|
||||
var _selectedElements2 = selectedElements,
|
||||
_selectedElements3 = _slicedToArray(_selectedElements2, 1),
|
||||
selected = _selectedElements3[0];
|
||||
var _selectedElements = selectedElements,
|
||||
_selectedElements2 = _slicedToArray(_selectedElements, 1),
|
||||
selected = _selectedElements2[0];
|
||||
|
||||
if (!isNullish(selected)) {
|
||||
var t = selected;
|
||||
|
@ -21315,9 +21338,9 @@
|
|||
|
||||
|
||||
this.moveToBottomSelectedElement = function () {
|
||||
var _selectedElements4 = selectedElements,
|
||||
_selectedElements5 = _slicedToArray(_selectedElements4, 1),
|
||||
selected = _selectedElements5[0];
|
||||
var _selectedElements3 = selectedElements,
|
||||
_selectedElements4 = _slicedToArray(_selectedElements3, 1),
|
||||
selected = _selectedElements4[0];
|
||||
|
||||
if (!isNullish(selected)) {
|
||||
var t = selected;
|
||||
|
@ -21625,45 +21648,45 @@
|
|||
var dx = new Array(len);
|
||||
var dy = new Array(len);
|
||||
|
||||
for (var _i7 = 0; _i7 < len; ++_i7) {
|
||||
if (isNullish(selectedElements[_i7])) {
|
||||
for (var _i6 = 0; _i6 < len; ++_i6) {
|
||||
if (isNullish(selectedElements[_i6])) {
|
||||
break;
|
||||
} // const elem = selectedElements[i];
|
||||
|
||||
|
||||
var bbox = bboxes[_i7];
|
||||
dx[_i7] = 0;
|
||||
dy[_i7] = 0;
|
||||
var bbox = bboxes[_i6];
|
||||
dx[_i6] = 0;
|
||||
dy[_i6] = 0;
|
||||
|
||||
switch (type) {
|
||||
case 'l':
|
||||
// left (horizontal)
|
||||
dx[_i7] = minx - bbox.x;
|
||||
dx[_i6] = minx - bbox.x;
|
||||
break;
|
||||
|
||||
case 'c':
|
||||
// center (horizontal)
|
||||
dx[_i7] = (minx + maxx) / 2 - (bbox.x + bbox.width / 2);
|
||||
dx[_i6] = (minx + maxx) / 2 - (bbox.x + bbox.width / 2);
|
||||
break;
|
||||
|
||||
case 'r':
|
||||
// right (horizontal)
|
||||
dx[_i7] = maxx - (bbox.x + bbox.width);
|
||||
dx[_i6] = maxx - (bbox.x + bbox.width);
|
||||
break;
|
||||
|
||||
case 't':
|
||||
// top (vertical)
|
||||
dy[_i7] = miny - bbox.y;
|
||||
dy[_i6] = miny - bbox.y;
|
||||
break;
|
||||
|
||||
case 'm':
|
||||
// middle (vertical)
|
||||
dy[_i7] = (miny + maxy) / 2 - (bbox.y + bbox.height / 2);
|
||||
dy[_i6] = (miny + maxy) / 2 - (bbox.y + bbox.height / 2);
|
||||
break;
|
||||
|
||||
case 'b':
|
||||
// bottom (vertical)
|
||||
dy[_i7] = maxy - (bbox.y + bbox.height);
|
||||
dy[_i6] = maxy - (bbox.y + bbox.height);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -22829,14 +22852,14 @@
|
|||
/**
|
||||
*
|
||||
* @param {boolean} [toImage]
|
||||
* @param {external:jQuery.svgIcons.Fallback} [fallback]
|
||||
* @param {external:jQuery.svgIcons.Fallback} [fallback=false]
|
||||
* @returns {void}
|
||||
*/
|
||||
|
||||
|
||||
function makeIcons() {
|
||||
var toImage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
||||
var fallback = arguments.length > 1 ? arguments[1] : undefined;
|
||||
var fallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
||||
if (iconsMade) return;
|
||||
if (opts.no_img) toImage = false;
|
||||
var tempHolder;
|
||||
|
@ -30171,90 +30194,90 @@
|
|||
},
|
||||
'div#workarea': {
|
||||
left: 38,
|
||||
top: 74 // '#tools_bottom': {
|
||||
// left: {s: '27px', l: '46px', xl: '65px'},
|
||||
// height: {s: '58px', l: '98px', xl: '145px'}
|
||||
// },
|
||||
// '#color_tools': {
|
||||
// 'border-spacing': {s: '0 1px'},
|
||||
// 'margin-top': {s: '-1px'}
|
||||
// },
|
||||
// '#color_tools .icon_label': {
|
||||
// width: {l:'43px', xl: '60px'}
|
||||
// },
|
||||
// '.color_tool': {
|
||||
// height: {s: '20px'}
|
||||
// },
|
||||
// '#tool_opacity': {
|
||||
// top: {s: '1px'},
|
||||
// height: {s: 'auto', l:'auto', xl:'auto'}
|
||||
// },
|
||||
// '#tools_top input, #tools_bottom input': {
|
||||
// 'margin-top': {s: '2px', l: '4px', xl: '5px'},
|
||||
// height: {s: 'auto', l: 'auto', xl: 'auto'},
|
||||
// border: {s: '1px solid #555', l: 'auto', xl: 'auto'},
|
||||
// 'font-size': {s: '.9em', l: '1.2em', xl: '1.4em'}
|
||||
// },
|
||||
// '#zoom_panel': {
|
||||
// 'margin-top': {s: '3px', l: '4px', xl: '5px'}
|
||||
// },
|
||||
// '#copyright, #tools_bottom .label': {
|
||||
// 'font-size': {l: '1.5em', xl: '2em'},
|
||||
// 'line-height': {s: '15px'}
|
||||
// },
|
||||
// '#tools_bottom_2': {
|
||||
// width: {l: '295px', xl: '355px'},
|
||||
// top: {s: '4px'}
|
||||
// },
|
||||
// '#tools_top > div, #tools_top': {
|
||||
// 'line-height': {s: '17px', l: '34px', xl: '50px'}
|
||||
// },
|
||||
// '.dropdown button': {
|
||||
// height: {s: '18px', l: '34px', xl: '40px'},
|
||||
// 'line-height': {s: '18px', l: '34px', xl: '40px'},
|
||||
// 'margin-top': {s: '3px'}
|
||||
// },
|
||||
// '#tools_top label, #tools_bottom label': {
|
||||
// 'font-size': {s: '1em', l: '1.5em', xl: '2em'},
|
||||
// height: {s: '25px', l: '42px', xl: '64px'}
|
||||
// },
|
||||
// 'div.toolset': {
|
||||
// height: {s: '25px', l: '42px', xl: '64px'}
|
||||
// },
|
||||
// '#tool_bold, #tool_italic': {
|
||||
// 'font-size': {s: '1.5em', l: '3em', xl: '4.5em'}
|
||||
// },
|
||||
// '#sidepanels': {
|
||||
// top: {s: '50px', l: '88px', xl: '125px'},
|
||||
// bottom: {s: '51px', l: '68px', xl: '65px'}
|
||||
// },
|
||||
// '#layerbuttons': {
|
||||
// width: {l: '130px', xl: '175px'},
|
||||
// height: {l: '24px', xl: '30px'}
|
||||
// },
|
||||
// '#layerlist': {
|
||||
// width: {l: '128px', xl: '150px'}
|
||||
// },
|
||||
// '.layer_button': {
|
||||
// width: {l: '19px', xl: '28px'},
|
||||
// height: {l: '19px', xl: '28px'}
|
||||
// },
|
||||
// 'input.spin-button': {
|
||||
// 'background-image': {l: 'url('images/spinbtn_updn_big.png')', xl: 'url('images/spinbtn_updn_big.png')'},
|
||||
// 'background-position': {l: '100% -5px', xl: '100% -2px'},
|
||||
// 'padding-right': {l: '24px', xl: '24px' }
|
||||
// },
|
||||
// 'input.spin-button.up': {
|
||||
// 'background-position': {l: '100% -45px', xl: '100% -42px'}
|
||||
// },
|
||||
// 'input.spin-button.down': {
|
||||
// 'background-position': {l: '100% -85px', xl: '100% -82px'}
|
||||
// },
|
||||
// '#position_opts': {
|
||||
// width: {all: (size_num*4) +'px'}
|
||||
// }
|
||||
top: 74
|
||||
} // '#tools_bottom': {
|
||||
// left: {s: '27px', l: '46px', xl: '65px'},
|
||||
// height: {s: '58px', l: '98px', xl: '145px'}
|
||||
// },
|
||||
// '#color_tools': {
|
||||
// 'border-spacing': {s: '0 1px'},
|
||||
// 'margin-top': {s: '-1px'}
|
||||
// },
|
||||
// '#color_tools .icon_label': {
|
||||
// width: {l:'43px', xl: '60px'}
|
||||
// },
|
||||
// '.color_tool': {
|
||||
// height: {s: '20px'}
|
||||
// },
|
||||
// '#tool_opacity': {
|
||||
// top: {s: '1px'},
|
||||
// height: {s: 'auto', l:'auto', xl:'auto'}
|
||||
// },
|
||||
// '#tools_top input, #tools_bottom input': {
|
||||
// 'margin-top': {s: '2px', l: '4px', xl: '5px'},
|
||||
// height: {s: 'auto', l: 'auto', xl: 'auto'},
|
||||
// border: {s: '1px solid #555', l: 'auto', xl: 'auto'},
|
||||
// 'font-size': {s: '.9em', l: '1.2em', xl: '1.4em'}
|
||||
// },
|
||||
// '#zoom_panel': {
|
||||
// 'margin-top': {s: '3px', l: '4px', xl: '5px'}
|
||||
// },
|
||||
// '#copyright, #tools_bottom .label': {
|
||||
// 'font-size': {l: '1.5em', xl: '2em'},
|
||||
// 'line-height': {s: '15px'}
|
||||
// },
|
||||
// '#tools_bottom_2': {
|
||||
// width: {l: '295px', xl: '355px'},
|
||||
// top: {s: '4px'}
|
||||
// },
|
||||
// '#tools_top > div, #tools_top': {
|
||||
// 'line-height': {s: '17px', l: '34px', xl: '50px'}
|
||||
// },
|
||||
// '.dropdown button': {
|
||||
// height: {s: '18px', l: '34px', xl: '40px'},
|
||||
// 'line-height': {s: '18px', l: '34px', xl: '40px'},
|
||||
// 'margin-top': {s: '3px'}
|
||||
// },
|
||||
// '#tools_top label, #tools_bottom label': {
|
||||
// 'font-size': {s: '1em', l: '1.5em', xl: '2em'},
|
||||
// height: {s: '25px', l: '42px', xl: '64px'}
|
||||
// },
|
||||
// 'div.toolset': {
|
||||
// height: {s: '25px', l: '42px', xl: '64px'}
|
||||
// },
|
||||
// '#tool_bold, #tool_italic': {
|
||||
// 'font-size': {s: '1.5em', l: '3em', xl: '4.5em'}
|
||||
// },
|
||||
// '#sidepanels': {
|
||||
// top: {s: '50px', l: '88px', xl: '125px'},
|
||||
// bottom: {s: '51px', l: '68px', xl: '65px'}
|
||||
// },
|
||||
// '#layerbuttons': {
|
||||
// width: {l: '130px', xl: '175px'},
|
||||
// height: {l: '24px', xl: '30px'}
|
||||
// },
|
||||
// '#layerlist': {
|
||||
// width: {l: '128px', xl: '150px'}
|
||||
// },
|
||||
// '.layer_button': {
|
||||
// width: {l: '19px', xl: '28px'},
|
||||
// height: {l: '19px', xl: '28px'}
|
||||
// },
|
||||
// 'input.spin-button': {
|
||||
// 'background-image': {l: 'url('images/spinbtn_updn_big.png')', xl: 'url('images/spinbtn_updn_big.png')'},
|
||||
// 'background-position': {l: '100% -5px', xl: '100% -2px'},
|
||||
// 'padding-right': {l: '24px', xl: '24px' }
|
||||
// },
|
||||
// 'input.spin-button.up': {
|
||||
// 'background-position': {l: '100% -45px', xl: '100% -42px'}
|
||||
// },
|
||||
// 'input.spin-button.down': {
|
||||
// 'background-position': {l: '100% -85px', xl: '100% -82px'}
|
||||
// },
|
||||
// '#position_opts': {
|
||||
// width: {all: (size_num*4) +'px'}
|
||||
// }
|
||||
|
||||
}
|
||||
};
|
||||
var ruleElem = $$b('#tool_size_rules');
|
||||
|
||||
|
@ -30758,7 +30781,7 @@
|
|||
var num = 5 - $$b('#layerlist tr.layer').size();
|
||||
|
||||
while (num-- > 0) {
|
||||
// FIXME: there must a better way to do this
|
||||
// TODO: there must a better way to do this
|
||||
layerlist.append('<tr><td style="color:white">_</td><td/></tr>');
|
||||
}
|
||||
};
|
||||
|
|
File diff suppressed because it is too large
Load Diff
28
package.json
28
package.json
|
@ -76,25 +76,25 @@
|
|||
],
|
||||
"dependencies": {},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.5.5",
|
||||
"@babel/node": "^7.5.5",
|
||||
"@babel/plugin-transform-modules-commonjs": "^7.5.0",
|
||||
"@babel/plugin-transform-named-capturing-groups-regex": "^7.4.5",
|
||||
"@babel/preset-env": "^7.5.5",
|
||||
"@mysticatea/eslint-plugin": "^11.0.0",
|
||||
"@babel/core": "^7.6.0",
|
||||
"@babel/node": "^7.6.1",
|
||||
"@babel/plugin-transform-modules-commonjs": "^7.6.0",
|
||||
"@babel/plugin-transform-named-capturing-groups-regex": "^7.6.0",
|
||||
"@babel/preset-env": "^7.6.0",
|
||||
"@mysticatea/eslint-plugin": "^12.0.0",
|
||||
"axe-core": "^3.3.2",
|
||||
"axe-testcafe": "^3.0.0",
|
||||
"babel-plugin-transform-object-rest-spread": "^7.0.0-beta.3",
|
||||
"core-js-bundle": "^3.2.1",
|
||||
"eslint": "6.3.0",
|
||||
"eslint-config-ash-nazg": "8.9.0",
|
||||
"eslint": "6.4.0",
|
||||
"eslint-config-ash-nazg": "9.0.1",
|
||||
"eslint-config-standard": "14.1.0",
|
||||
"eslint-plugin-array-func": "^3.1.3",
|
||||
"eslint-plugin-compat": "^3.3.0",
|
||||
"eslint-plugin-eslint-comments": "^3.1.2",
|
||||
"eslint-plugin-html": "^6.0.0",
|
||||
"eslint-plugin-import": "2.18.2",
|
||||
"eslint-plugin-jsdoc": "^15.9.1",
|
||||
"eslint-plugin-jsdoc": "^15.9.2",
|
||||
"eslint-plugin-markdown": "^1.0.0",
|
||||
"eslint-plugin-no-use-extend-native": "^0.4.1",
|
||||
"eslint-plugin-node": "10.0.0",
|
||||
|
@ -103,8 +103,8 @@
|
|||
"eslint-plugin-sonarjs": "^0.4.0",
|
||||
"eslint-plugin-standard": "4.0.1",
|
||||
"eslint-plugin-testcafe": "^0.2.1",
|
||||
"eslint-plugin-unicorn": "^10.0.0",
|
||||
"imageoptim-cli": "^2.3.9",
|
||||
"eslint-plugin-unicorn": "^11.0.1",
|
||||
"imageoptim-cli": "^3.0.0",
|
||||
"jamilih": "^0.45.0",
|
||||
"jsdoc": "^3.6.3",
|
||||
"load-stylesheets": "^0.8.0",
|
||||
|
@ -117,13 +117,13 @@
|
|||
"regenerator-runtime": "^0.13.3",
|
||||
"remark-cli": "^7.0.0",
|
||||
"remark-lint-ordered-list-marker-value": "^1.0.3",
|
||||
"rollup": "1.20.3",
|
||||
"rollup": "1.21.4",
|
||||
"rollup-plugin-babel": "^4.3.3",
|
||||
"rollup-plugin-re": "^1.0.7",
|
||||
"rollup-plugin-terser": "^5.1.1",
|
||||
"rollup-plugin-terser": "^5.1.2",
|
||||
"sinon": "^7.4.2",
|
||||
"sinon-test": "^2.4.0",
|
||||
"stackblur-canvas": "^2.2.0",
|
||||
"testcafe": "^1.4.3"
|
||||
"testcafe": "^1.5.0"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -231,6 +231,10 @@
|
|||
}
|
||||
|
||||
function _iterableToArrayLimit(arr, i) {
|
||||
if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) {
|
||||
return;
|
||||
}
|
||||
|
||||
var _arr = [];
|
||||
var _n = true;
|
||||
var _d = false;
|
||||
|
@ -266,7 +270,7 @@
|
|||
|
||||
function _wrapRegExp(re, groups) {
|
||||
_wrapRegExp = function (re, groups) {
|
||||
return new BabelRegExp(re, groups);
|
||||
return new BabelRegExp(re, undefined, groups);
|
||||
};
|
||||
|
||||
var _RegExp = _wrapNativeSuper(RegExp);
|
||||
|
@ -275,10 +279,10 @@
|
|||
|
||||
var _groups = new WeakMap();
|
||||
|
||||
function BabelRegExp(re, groups) {
|
||||
var _this = _RegExp.call(this, re);
|
||||
function BabelRegExp(re, flags, groups) {
|
||||
var _this = _RegExp.call(this, re, flags);
|
||||
|
||||
_groups.set(_this, groups);
|
||||
_groups.set(_this, groups || _groups.get(re));
|
||||
|
||||
return _this;
|
||||
}
|
||||
|
@ -2739,7 +2743,7 @@
|
|||
},
|
||||
enumerable: true
|
||||
},
|
||||
// FIXME: The following are not implemented and simply return SVGPathElement.pathSegList.
|
||||
// TODO: The following are not implemented and simply return SVGPathElement.pathSegList.
|
||||
normalizedPathSegList: {
|
||||
get: function get() {
|
||||
return this.pathSegList;
|
||||
|
@ -4695,7 +4699,7 @@
|
|||
}, {
|
||||
key: "addCommandToHistory",
|
||||
value: function addCommandToHistory(cmd) {
|
||||
// FIXME: we MUST compress consecutive text changes to the same element
|
||||
// TODO: we MUST compress consecutive text changes to the same element
|
||||
// (right now each keystroke is saved as a separate command that includes the
|
||||
// entire text contents of the text element)
|
||||
// TODO: consider limiting the history that we store here (need to do some slicing)
|
||||
|
@ -8384,7 +8388,7 @@
|
|||
/**
|
||||
* Walks the tree and executes the callback on each element in a depth-first fashion.
|
||||
* @function module:utilities.walkTreePost
|
||||
* @todo FIXME: Shouldn't this be calling walkTreePost?
|
||||
* @todo Shouldn't this be calling walkTreePost?
|
||||
* @param {Element} elem - DOM element to traverse
|
||||
* @param {module:utilities.TreeWalker} cbFn - Callback function to run on each element
|
||||
* @returns {void}
|
||||
|
@ -9364,8 +9368,8 @@
|
|||
*/
|
||||
|
||||
var regexEscape = function regexEscape(str) {
|
||||
// From: http://phpjs.org/functions
|
||||
return String(str).replace(new RegExp('[.\\\\+*?\\[\\^\\]$(){}=!<>|:\\-]', 'g'), '\\$&');
|
||||
// Originally from: http://phpjs.org/functions
|
||||
return String(str).replace(/[.\\+*?[^\]$(){}=!<>|:-]/g, '\\$&');
|
||||
};
|
||||
/**
|
||||
* Prevents default browser click behaviour on the given element.
|
||||
|
@ -11827,7 +11831,7 @@
|
|||
|
||||
} else {
|
||||
// remove all children from this node and insert them before this node
|
||||
// FIXME: in the case of animation elements this will hardly ever be correct
|
||||
// TODO: in the case of animation elements this will hardly ever be correct
|
||||
var children = [];
|
||||
|
||||
while (node.hasChildNodes()) {
|
||||
|
@ -12507,7 +12511,7 @@
|
|||
if (Math.abs(a) > 1.0e-10) {
|
||||
s = Math.sin(a) / (1 - Math.cos(a));
|
||||
} else {
|
||||
// FIXME: This blows up if the angle is exactly 0!
|
||||
// TODO: This blows up if the angle is exactly 0!
|
||||
s = 2 / a;
|
||||
}
|
||||
|
||||
|
@ -12868,7 +12872,7 @@
|
|||
} // else, it's a non-group
|
||||
|
||||
} else {
|
||||
// FIXME: box might be null for some elements (<metadata> etc), need to handle this
|
||||
// TODO: box might be null for some elements (<metadata> etc), need to handle this
|
||||
var _box = getBBox(selected); // Paths (and possbly other shapes) will have no BBox while still in <defs>,
|
||||
// but we still may need to recalculate them (see issue 595).
|
||||
// TODO: Figure out how to get BBox from these elements in case they
|
||||
|
@ -12892,7 +12896,7 @@
|
|||
|
||||
var _a = _angle * Math.PI / 180;
|
||||
|
||||
var _s = Math.abs(_a) > 1.0e-10 ? Math.sin(_a) / (1 - Math.cos(_a)) // FIXME: This blows up if the angle is exactly 0!
|
||||
var _s = Math.abs(_a) > 1.0e-10 ? Math.sin(_a) / (1 - Math.cos(_a)) // TODO: This blows up if the angle is exactly 0!
|
||||
: 2 / _a;
|
||||
|
||||
for (var _i2 = 0; _i2 < tlist.numberOfItems; ++_i2) {
|
||||
|
@ -15611,19 +15615,38 @@
|
|||
if (!rightClick) {
|
||||
// insert a dummy transform so if the element(s) are moved it will have
|
||||
// a transform to use for its translate
|
||||
for (var _i2 = 0, _selectedElements = selectedElements; _i2 < _selectedElements.length; _i2++) {
|
||||
var selectedElement = _selectedElements[_i2];
|
||||
var _iteratorNormalCompletion = true;
|
||||
var _didIteratorError = false;
|
||||
var _iteratorError = undefined;
|
||||
|
||||
if (isNullish(selectedElement)) {
|
||||
continue;
|
||||
try {
|
||||
for (var _iterator = selectedElements[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
||||
var selectedElement = _step.value;
|
||||
|
||||
if (isNullish(selectedElement)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
var slist = getTransformList(selectedElement);
|
||||
|
||||
if (slist.numberOfItems) {
|
||||
slist.insertItemBefore(svgroot.createSVGTransform(), 0);
|
||||
} else {
|
||||
slist.appendItem(svgroot.createSVGTransform());
|
||||
}
|
||||
}
|
||||
|
||||
var slist = getTransformList(selectedElement);
|
||||
|
||||
if (slist.numberOfItems) {
|
||||
slist.insertItemBefore(svgroot.createSVGTransform(), 0);
|
||||
} else {
|
||||
slist.appendItem(svgroot.createSVGTransform());
|
||||
} catch (err) {
|
||||
_didIteratorError = true;
|
||||
_iteratorError = err;
|
||||
} finally {
|
||||
try {
|
||||
if (!_iteratorNormalCompletion && _iterator["return"] != null) {
|
||||
_iterator["return"]();
|
||||
}
|
||||
} finally {
|
||||
if (_didIteratorError) {
|
||||
throw _iteratorError;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -15787,7 +15810,7 @@
|
|||
break;
|
||||
}
|
||||
|
||||
case 'square': // FIXME: once we create the rect, we lose information that this was a square
|
||||
case 'square': // TODO: once we create the rect, we lose information that this was a square
|
||||
// (for resizing purposes this could be important)
|
||||
// Fallthrough
|
||||
|
||||
|
@ -17729,11 +17752,11 @@
|
|||
}
|
||||
});
|
||||
});
|
||||
var _i3 = attrs.length;
|
||||
var _i2 = attrs.length;
|
||||
var attrNames = ['width', 'height', 'xmlns', 'x', 'y', 'viewBox', 'id', 'overflow'];
|
||||
|
||||
while (_i3--) {
|
||||
var attr = attrs[_i3];
|
||||
while (_i2--) {
|
||||
var attr = attrs[_i2];
|
||||
var attrVal = toXml(attr.value); // Namespaces have already been dealt with, so skip
|
||||
|
||||
if (attr.nodeName.startsWith('xmlns:')) {
|
||||
|
@ -17759,8 +17782,8 @@
|
|||
|
||||
var mozAttrs = ['-moz-math-font-style', '_moz-math-font-style'];
|
||||
|
||||
for (var _i4 = attrs.length - 1; _i4 >= 0; _i4--) {
|
||||
var _attr = attrs[_i4];
|
||||
for (var _i3 = attrs.length - 1; _i3 >= 0; _i3--) {
|
||||
var _attr = attrs[_i3];
|
||||
|
||||
var _attrVal = toXml(_attr.value); // remove bogus attributes added by Gecko
|
||||
|
||||
|
@ -17816,14 +17839,14 @@
|
|||
indent++;
|
||||
var bOneLine = false;
|
||||
|
||||
for (var _i5 = 0; _i5 < childs.length; _i5++) {
|
||||
var child = childs.item(_i5);
|
||||
for (var _i4 = 0; _i4 < childs.length; _i4++) {
|
||||
var child = childs.item(_i4);
|
||||
|
||||
switch (child.nodeType) {
|
||||
case 1:
|
||||
// element node
|
||||
out.push('\n');
|
||||
out.push(this.svgToString(childs.item(_i5), indent));
|
||||
out.push(this.svgToString(childs.item(_i4), indent));
|
||||
break;
|
||||
|
||||
case 3:
|
||||
|
@ -17865,7 +17888,7 @@
|
|||
if (!bOneLine) {
|
||||
out.push('\n');
|
||||
|
||||
for (var _i6 = 0; _i6 < indent; _i6++) {
|
||||
for (var _i5 = 0; _i5 < indent; _i5++) {
|
||||
out.push(' ');
|
||||
}
|
||||
}
|
||||
|
@ -18941,27 +18964,27 @@
|
|||
}
|
||||
|
||||
var attrs = svg.attributes;
|
||||
var _iteratorNormalCompletion = true;
|
||||
var _didIteratorError = false;
|
||||
var _iteratorError = undefined;
|
||||
var _iteratorNormalCompletion2 = true;
|
||||
var _didIteratorError2 = false;
|
||||
var _iteratorError2 = undefined;
|
||||
|
||||
try {
|
||||
for (var _iterator = attrs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
||||
var attr = _step.value;
|
||||
for (var _iterator2 = attrs[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
|
||||
var attr = _step2.value;
|
||||
// Ok for `NamedNodeMap`
|
||||
symbol.setAttribute(attr.nodeName, attr.value);
|
||||
}
|
||||
} catch (err) {
|
||||
_didIteratorError = true;
|
||||
_iteratorError = err;
|
||||
_didIteratorError2 = true;
|
||||
_iteratorError2 = err;
|
||||
} finally {
|
||||
try {
|
||||
if (!_iteratorNormalCompletion && _iterator["return"] != null) {
|
||||
_iterator["return"]();
|
||||
if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
|
||||
_iterator2["return"]();
|
||||
}
|
||||
} finally {
|
||||
if (_didIteratorError) {
|
||||
throw _iteratorError;
|
||||
if (_didIteratorError2) {
|
||||
throw _iteratorError2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -19186,29 +19209,29 @@
|
|||
|
||||
elem = $$9(elem).data('gsvg') || $$9(elem).data('symbol') || elem;
|
||||
var childs = elem.childNodes;
|
||||
var _iteratorNormalCompletion2 = true;
|
||||
var _didIteratorError2 = false;
|
||||
var _iteratorError2 = undefined;
|
||||
var _iteratorNormalCompletion3 = true;
|
||||
var _didIteratorError3 = false;
|
||||
var _iteratorError3 = undefined;
|
||||
|
||||
try {
|
||||
for (var _iterator2 = childs[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
|
||||
var child = _step2.value;
|
||||
for (var _iterator3 = childs[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
|
||||
var child = _step3.value;
|
||||
|
||||
if (child.nodeName === 'title') {
|
||||
return child.textContent;
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
_didIteratorError2 = true;
|
||||
_iteratorError2 = err;
|
||||
_didIteratorError3 = true;
|
||||
_iteratorError3 = err;
|
||||
} finally {
|
||||
try {
|
||||
if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
|
||||
_iterator2["return"]();
|
||||
if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) {
|
||||
_iterator3["return"]();
|
||||
}
|
||||
} finally {
|
||||
if (_didIteratorError2) {
|
||||
throw _iteratorError2;
|
||||
if (_didIteratorError3) {
|
||||
throw _iteratorError3;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -19276,13 +19299,13 @@
|
|||
var docTitle = false,
|
||||
oldTitle = '';
|
||||
var batchCmd = new BatchCommand$1('Change Image Title');
|
||||
var _iteratorNormalCompletion3 = true;
|
||||
var _didIteratorError3 = false;
|
||||
var _iteratorError3 = undefined;
|
||||
var _iteratorNormalCompletion4 = true;
|
||||
var _didIteratorError4 = false;
|
||||
var _iteratorError4 = undefined;
|
||||
|
||||
try {
|
||||
for (var _iterator3 = childs[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
|
||||
var child = _step3.value;
|
||||
for (var _iterator4 = childs[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
|
||||
var child = _step4.value;
|
||||
|
||||
if (child.nodeName === 'title') {
|
||||
docTitle = child;
|
||||
|
@ -19291,16 +19314,16 @@
|
|||
}
|
||||
}
|
||||
} catch (err) {
|
||||
_didIteratorError3 = true;
|
||||
_iteratorError3 = err;
|
||||
_didIteratorError4 = true;
|
||||
_iteratorError4 = err;
|
||||
} finally {
|
||||
try {
|
||||
if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) {
|
||||
_iterator3["return"]();
|
||||
if (!_iteratorNormalCompletion4 && _iterator4["return"] != null) {
|
||||
_iterator4["return"]();
|
||||
}
|
||||
} finally {
|
||||
if (_didIteratorError3) {
|
||||
throw _iteratorError3;
|
||||
if (_didIteratorError4) {
|
||||
throw _iteratorError4;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -20609,7 +20632,7 @@
|
|||
canvas.moveSelectedElements(diffX * currentZoom, diffY * currentZoom, true);
|
||||
return "continue";
|
||||
} // only allow the transform/opacity/filter attribute to change on <g> elements, slightly hacky
|
||||
// TODO: FIXME: Missing statement body
|
||||
// TODO: Missing statement body
|
||||
// if (elem.tagName === 'g' && goodGAttrs.includes(attr)) {}
|
||||
|
||||
|
||||
|
@ -21288,9 +21311,9 @@
|
|||
|
||||
|
||||
this.moveToTopSelectedElement = function () {
|
||||
var _selectedElements2 = selectedElements,
|
||||
_selectedElements3 = _slicedToArray(_selectedElements2, 1),
|
||||
selected = _selectedElements3[0];
|
||||
var _selectedElements = selectedElements,
|
||||
_selectedElements2 = _slicedToArray(_selectedElements, 1),
|
||||
selected = _selectedElements2[0];
|
||||
|
||||
if (!isNullish(selected)) {
|
||||
var t = selected;
|
||||
|
@ -21315,9 +21338,9 @@
|
|||
|
||||
|
||||
this.moveToBottomSelectedElement = function () {
|
||||
var _selectedElements4 = selectedElements,
|
||||
_selectedElements5 = _slicedToArray(_selectedElements4, 1),
|
||||
selected = _selectedElements5[0];
|
||||
var _selectedElements3 = selectedElements,
|
||||
_selectedElements4 = _slicedToArray(_selectedElements3, 1),
|
||||
selected = _selectedElements4[0];
|
||||
|
||||
if (!isNullish(selected)) {
|
||||
var t = selected;
|
||||
|
@ -21625,45 +21648,45 @@
|
|||
var dx = new Array(len);
|
||||
var dy = new Array(len);
|
||||
|
||||
for (var _i7 = 0; _i7 < len; ++_i7) {
|
||||
if (isNullish(selectedElements[_i7])) {
|
||||
for (var _i6 = 0; _i6 < len; ++_i6) {
|
||||
if (isNullish(selectedElements[_i6])) {
|
||||
break;
|
||||
} // const elem = selectedElements[i];
|
||||
|
||||
|
||||
var bbox = bboxes[_i7];
|
||||
dx[_i7] = 0;
|
||||
dy[_i7] = 0;
|
||||
var bbox = bboxes[_i6];
|
||||
dx[_i6] = 0;
|
||||
dy[_i6] = 0;
|
||||
|
||||
switch (type) {
|
||||
case 'l':
|
||||
// left (horizontal)
|
||||
dx[_i7] = minx - bbox.x;
|
||||
dx[_i6] = minx - bbox.x;
|
||||
break;
|
||||
|
||||
case 'c':
|
||||
// center (horizontal)
|
||||
dx[_i7] = (minx + maxx) / 2 - (bbox.x + bbox.width / 2);
|
||||
dx[_i6] = (minx + maxx) / 2 - (bbox.x + bbox.width / 2);
|
||||
break;
|
||||
|
||||
case 'r':
|
||||
// right (horizontal)
|
||||
dx[_i7] = maxx - (bbox.x + bbox.width);
|
||||
dx[_i6] = maxx - (bbox.x + bbox.width);
|
||||
break;
|
||||
|
||||
case 't':
|
||||
// top (vertical)
|
||||
dy[_i7] = miny - bbox.y;
|
||||
dy[_i6] = miny - bbox.y;
|
||||
break;
|
||||
|
||||
case 'm':
|
||||
// middle (vertical)
|
||||
dy[_i7] = (miny + maxy) / 2 - (bbox.y + bbox.height / 2);
|
||||
dy[_i6] = (miny + maxy) / 2 - (bbox.y + bbox.height / 2);
|
||||
break;
|
||||
|
||||
case 'b':
|
||||
// bottom (vertical)
|
||||
dy[_i7] = maxy - (bbox.y + bbox.height);
|
||||
dy[_i6] = maxy - (bbox.y + bbox.height);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -22829,14 +22852,14 @@
|
|||
/**
|
||||
*
|
||||
* @param {boolean} [toImage]
|
||||
* @param {external:jQuery.svgIcons.Fallback} [fallback]
|
||||
* @param {external:jQuery.svgIcons.Fallback} [fallback=false]
|
||||
* @returns {void}
|
||||
*/
|
||||
|
||||
|
||||
function makeIcons() {
|
||||
var toImage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
||||
var fallback = arguments.length > 1 ? arguments[1] : undefined;
|
||||
var fallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
||||
if (iconsMade) return;
|
||||
if (opts.no_img) toImage = false;
|
||||
var tempHolder;
|
||||
|
@ -30171,90 +30194,90 @@
|
|||
},
|
||||
'div#workarea': {
|
||||
left: 38,
|
||||
top: 74 // '#tools_bottom': {
|
||||
// left: {s: '27px', l: '46px', xl: '65px'},
|
||||
// height: {s: '58px', l: '98px', xl: '145px'}
|
||||
// },
|
||||
// '#color_tools': {
|
||||
// 'border-spacing': {s: '0 1px'},
|
||||
// 'margin-top': {s: '-1px'}
|
||||
// },
|
||||
// '#color_tools .icon_label': {
|
||||
// width: {l:'43px', xl: '60px'}
|
||||
// },
|
||||
// '.color_tool': {
|
||||
// height: {s: '20px'}
|
||||
// },
|
||||
// '#tool_opacity': {
|
||||
// top: {s: '1px'},
|
||||
// height: {s: 'auto', l:'auto', xl:'auto'}
|
||||
// },
|
||||
// '#tools_top input, #tools_bottom input': {
|
||||
// 'margin-top': {s: '2px', l: '4px', xl: '5px'},
|
||||
// height: {s: 'auto', l: 'auto', xl: 'auto'},
|
||||
// border: {s: '1px solid #555', l: 'auto', xl: 'auto'},
|
||||
// 'font-size': {s: '.9em', l: '1.2em', xl: '1.4em'}
|
||||
// },
|
||||
// '#zoom_panel': {
|
||||
// 'margin-top': {s: '3px', l: '4px', xl: '5px'}
|
||||
// },
|
||||
// '#copyright, #tools_bottom .label': {
|
||||
// 'font-size': {l: '1.5em', xl: '2em'},
|
||||
// 'line-height': {s: '15px'}
|
||||
// },
|
||||
// '#tools_bottom_2': {
|
||||
// width: {l: '295px', xl: '355px'},
|
||||
// top: {s: '4px'}
|
||||
// },
|
||||
// '#tools_top > div, #tools_top': {
|
||||
// 'line-height': {s: '17px', l: '34px', xl: '50px'}
|
||||
// },
|
||||
// '.dropdown button': {
|
||||
// height: {s: '18px', l: '34px', xl: '40px'},
|
||||
// 'line-height': {s: '18px', l: '34px', xl: '40px'},
|
||||
// 'margin-top': {s: '3px'}
|
||||
// },
|
||||
// '#tools_top label, #tools_bottom label': {
|
||||
// 'font-size': {s: '1em', l: '1.5em', xl: '2em'},
|
||||
// height: {s: '25px', l: '42px', xl: '64px'}
|
||||
// },
|
||||
// 'div.toolset': {
|
||||
// height: {s: '25px', l: '42px', xl: '64px'}
|
||||
// },
|
||||
// '#tool_bold, #tool_italic': {
|
||||
// 'font-size': {s: '1.5em', l: '3em', xl: '4.5em'}
|
||||
// },
|
||||
// '#sidepanels': {
|
||||
// top: {s: '50px', l: '88px', xl: '125px'},
|
||||
// bottom: {s: '51px', l: '68px', xl: '65px'}
|
||||
// },
|
||||
// '#layerbuttons': {
|
||||
// width: {l: '130px', xl: '175px'},
|
||||
// height: {l: '24px', xl: '30px'}
|
||||
// },
|
||||
// '#layerlist': {
|
||||
// width: {l: '128px', xl: '150px'}
|
||||
// },
|
||||
// '.layer_button': {
|
||||
// width: {l: '19px', xl: '28px'},
|
||||
// height: {l: '19px', xl: '28px'}
|
||||
// },
|
||||
// 'input.spin-button': {
|
||||
// 'background-image': {l: 'url('images/spinbtn_updn_big.png')', xl: 'url('images/spinbtn_updn_big.png')'},
|
||||
// 'background-position': {l: '100% -5px', xl: '100% -2px'},
|
||||
// 'padding-right': {l: '24px', xl: '24px' }
|
||||
// },
|
||||
// 'input.spin-button.up': {
|
||||
// 'background-position': {l: '100% -45px', xl: '100% -42px'}
|
||||
// },
|
||||
// 'input.spin-button.down': {
|
||||
// 'background-position': {l: '100% -85px', xl: '100% -82px'}
|
||||
// },
|
||||
// '#position_opts': {
|
||||
// width: {all: (size_num*4) +'px'}
|
||||
// }
|
||||
top: 74
|
||||
} // '#tools_bottom': {
|
||||
// left: {s: '27px', l: '46px', xl: '65px'},
|
||||
// height: {s: '58px', l: '98px', xl: '145px'}
|
||||
// },
|
||||
// '#color_tools': {
|
||||
// 'border-spacing': {s: '0 1px'},
|
||||
// 'margin-top': {s: '-1px'}
|
||||
// },
|
||||
// '#color_tools .icon_label': {
|
||||
// width: {l:'43px', xl: '60px'}
|
||||
// },
|
||||
// '.color_tool': {
|
||||
// height: {s: '20px'}
|
||||
// },
|
||||
// '#tool_opacity': {
|
||||
// top: {s: '1px'},
|
||||
// height: {s: 'auto', l:'auto', xl:'auto'}
|
||||
// },
|
||||
// '#tools_top input, #tools_bottom input': {
|
||||
// 'margin-top': {s: '2px', l: '4px', xl: '5px'},
|
||||
// height: {s: 'auto', l: 'auto', xl: 'auto'},
|
||||
// border: {s: '1px solid #555', l: 'auto', xl: 'auto'},
|
||||
// 'font-size': {s: '.9em', l: '1.2em', xl: '1.4em'}
|
||||
// },
|
||||
// '#zoom_panel': {
|
||||
// 'margin-top': {s: '3px', l: '4px', xl: '5px'}
|
||||
// },
|
||||
// '#copyright, #tools_bottom .label': {
|
||||
// 'font-size': {l: '1.5em', xl: '2em'},
|
||||
// 'line-height': {s: '15px'}
|
||||
// },
|
||||
// '#tools_bottom_2': {
|
||||
// width: {l: '295px', xl: '355px'},
|
||||
// top: {s: '4px'}
|
||||
// },
|
||||
// '#tools_top > div, #tools_top': {
|
||||
// 'line-height': {s: '17px', l: '34px', xl: '50px'}
|
||||
// },
|
||||
// '.dropdown button': {
|
||||
// height: {s: '18px', l: '34px', xl: '40px'},
|
||||
// 'line-height': {s: '18px', l: '34px', xl: '40px'},
|
||||
// 'margin-top': {s: '3px'}
|
||||
// },
|
||||
// '#tools_top label, #tools_bottom label': {
|
||||
// 'font-size': {s: '1em', l: '1.5em', xl: '2em'},
|
||||
// height: {s: '25px', l: '42px', xl: '64px'}
|
||||
// },
|
||||
// 'div.toolset': {
|
||||
// height: {s: '25px', l: '42px', xl: '64px'}
|
||||
// },
|
||||
// '#tool_bold, #tool_italic': {
|
||||
// 'font-size': {s: '1.5em', l: '3em', xl: '4.5em'}
|
||||
// },
|
||||
// '#sidepanels': {
|
||||
// top: {s: '50px', l: '88px', xl: '125px'},
|
||||
// bottom: {s: '51px', l: '68px', xl: '65px'}
|
||||
// },
|
||||
// '#layerbuttons': {
|
||||
// width: {l: '130px', xl: '175px'},
|
||||
// height: {l: '24px', xl: '30px'}
|
||||
// },
|
||||
// '#layerlist': {
|
||||
// width: {l: '128px', xl: '150px'}
|
||||
// },
|
||||
// '.layer_button': {
|
||||
// width: {l: '19px', xl: '28px'},
|
||||
// height: {l: '19px', xl: '28px'}
|
||||
// },
|
||||
// 'input.spin-button': {
|
||||
// 'background-image': {l: 'url('images/spinbtn_updn_big.png')', xl: 'url('images/spinbtn_updn_big.png')'},
|
||||
// 'background-position': {l: '100% -5px', xl: '100% -2px'},
|
||||
// 'padding-right': {l: '24px', xl: '24px' }
|
||||
// },
|
||||
// 'input.spin-button.up': {
|
||||
// 'background-position': {l: '100% -45px', xl: '100% -42px'}
|
||||
// },
|
||||
// 'input.spin-button.down': {
|
||||
// 'background-position': {l: '100% -85px', xl: '100% -82px'}
|
||||
// },
|
||||
// '#position_opts': {
|
||||
// width: {all: (size_num*4) +'px'}
|
||||
// }
|
||||
|
||||
}
|
||||
};
|
||||
var ruleElem = $$b('#tool_size_rules');
|
||||
|
||||
|
@ -30758,7 +30781,7 @@
|
|||
var num = 5 - $$b('#layerlist tr.layer').size();
|
||||
|
||||
while (num-- > 0) {
|
||||
// FIXME: there must a better way to do this
|
||||
// TODO: there must a better way to do this
|
||||
layerlist.append('<tr><td style="color:white">_</td><td/></tr>');
|
||||
}
|
||||
};
|
||||
|
|
|
@ -256,7 +256,7 @@ QUnit.test('Test getPathDFromElement', function (assert) {
|
|||
attr: {id: 'roundrect', x: '0', y: '1', rx: '2', ry: '3', width: '10', height: '11'}
|
||||
});
|
||||
svgroot.append(elem);
|
||||
const closeEnough = new RegExp('M0,4 C0,2.3\\d* 0.9\\d*,1 2,1 L8,1 C9.0\\d*,1 10,2.3\\d* 10,4 L10,9 C10,10.6\\d* 9.08675799086758,12 8,12 L2,12 C0.9\\d*,12 0,10.6\\d* 0,9 L0,4 Z');
|
||||
const closeEnough = /M0,4 C0,2.3\d* 0.9\d*,1 2,1 L8,1 C9.0\d*,1 10,2.3\d* 10,4 L10,9 C10,10.6\d* 9.08675799086758,12 8,12 L2,12 C0.9\d*,12 0,10.6\d* 0,9 L0,4 Z/;
|
||||
assert.equal(closeEnough.test(getPathDFromElement(elem)), true);
|
||||
elem.remove();
|
||||
|
||||
|
|
Loading…
Reference in New Issue