- Linting (ESLint): Finish
- Fix: Globals (x, y) in `mouseMove` - Fix: Global (element, d_attr->dAttr) in `mouseDown` - Fix: Avoid `drawnPath` not defined error - Docs: sp.master
parent
eba9dee54c
commit
a3b3525789
|
@ -1,5 +1,6 @@
|
|||
node_modules
|
||||
|
||||
# Vendor/minified files
|
||||
editor/jquery.js
|
||||
editor/jspdf/jspdf.min.js
|
||||
editor/jspdf/underscore-min.js
|
||||
|
|
|
@ -736,7 +736,7 @@ Rounds a given value to a float with number of digits defined in save_options
|
|||
|
||||
#### Returns
|
||||
|
||||
If a string/number was given, returns a Float. If an array, return a string with comma-seperated floats
|
||||
If a string/number was given, returns a Float. If an array, return a string with comma-separated floats
|
||||
|
||||
## `getStrokedBBox`
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* eslint-disable no-var, eqeqeq */
|
||||
/* eslint-disable no-var */
|
||||
/* globals $, svgedit */
|
||||
/**
|
||||
* Package: svgedit.browser
|
||||
|
@ -119,7 +119,7 @@ var supportsHVLineContainerBBox_ = (function () {
|
|||
var bbox = g.getBBox();
|
||||
document.documentElement.removeChild(svgcontent);
|
||||
// Webkit gives 0, FF gives 10, Opera (correctly) gives 15
|
||||
return (bbox.width == 15);
|
||||
return (bbox.width === 15);
|
||||
}());
|
||||
|
||||
var supportsEditableText_ = (function () {
|
||||
|
@ -153,13 +153,13 @@ var supportsNativeSVGTransformLists_ = (function () {
|
|||
rxform.appendItem(t1);
|
||||
var r1 = rxform.getItem(0);
|
||||
return r1 instanceof SVGTransform && t1 instanceof SVGTransform &&
|
||||
r1.type == t1.type && r1.angle == t1.angle &&
|
||||
r1.matrix.a == t1.matrix.a &&
|
||||
r1.matrix.b == t1.matrix.b &&
|
||||
r1.matrix.c == t1.matrix.c &&
|
||||
r1.matrix.d == t1.matrix.d &&
|
||||
r1.matrix.e == t1.matrix.e &&
|
||||
r1.matrix.f == t1.matrix.f;
|
||||
r1.type === t1.type && r1.angle === t1.angle &&
|
||||
r1.matrix.a === t1.matrix.a &&
|
||||
r1.matrix.b === t1.matrix.b &&
|
||||
r1.matrix.c === t1.matrix.c &&
|
||||
r1.matrix.d === t1.matrix.d &&
|
||||
r1.matrix.e === t1.matrix.e &&
|
||||
r1.matrix.f === t1.matrix.f;
|
||||
}());
|
||||
|
||||
// Public API
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* eslint-disable no-var, eqeqeq */
|
||||
/* eslint-disable no-var */
|
||||
/* globals $, svgEditor */
|
||||
/**
|
||||
* Package: svgedit.contextmenu
|
||||
|
@ -17,7 +17,7 @@ if (!svgedit.contextmenu) {
|
|||
}
|
||||
self.contextMenuExtensions = {};
|
||||
var menuItemIsValid = function (menuItem) {
|
||||
return menuItem && menuItem.id && menuItem.label && menuItem.action && typeof menuItem.action == 'function';
|
||||
return menuItem && menuItem.id && menuItem.label && menuItem.action && typeof menuItem.action === 'function';
|
||||
};
|
||||
var addContextMenuItem = function (menuItem) {
|
||||
// menuItem: {id, label, shortcut, action}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* eslint-disable no-var, eqeqeq */
|
||||
/* eslint-disable no-var */
|
||||
/* globals $, svgroot */
|
||||
/**
|
||||
* Coords.
|
||||
|
@ -103,9 +103,9 @@ svgedit.coords.remapElement = function (selected, changes, m) {
|
|||
|
||||
var elName = selected.tagName;
|
||||
var chlist, mt;
|
||||
if (elName === 'g' || elName === 'text' || elName == 'tspan' || elName === 'use') {
|
||||
if (elName === 'g' || elName === 'text' || elName === 'tspan' || elName === 'use') {
|
||||
// if it was a translate, then just update x,y
|
||||
if (m.a == 1 && m.b == 0 && m.c == 0 && m.d == 1 && (m.e != 0 || m.f != 0)) {
|
||||
if (m.a === 1 && m.b === 0 && m.c === 0 && m.d === 1 && (m.e !== 0 || m.f !== 0)) {
|
||||
// [T][M] = [M][T']
|
||||
// therefore [T'] = [M_inv][T][M]
|
||||
var existing = svgedit.math.transformListToTransform(selected).matrix,
|
||||
|
@ -239,9 +239,9 @@ svgedit.coords.remapElement = function (selected, changes, m) {
|
|||
type = seg.type;
|
||||
// if absolute or first segment, we want to remap x, y, x1, y1, x2, y2
|
||||
// if relative, we want to scalew, scaleh
|
||||
if (type % 2 == 0) { // absolute
|
||||
var thisx = (seg.x != undefined) ? seg.x : currentpt.x, // for V commands
|
||||
thisy = (seg.y != undefined) ? seg.y : currentpt.y; // for H commands
|
||||
if (type % 2 === 0) { // absolute
|
||||
var thisx = (seg.x !== undefined) ? seg.x : currentpt.x, // for V commands
|
||||
thisy = (seg.y !== undefined) ? seg.y : currentpt.y; // for H commands
|
||||
pt = remap(thisx, thisy);
|
||||
pt1 = remap(seg.x1, seg.y1);
|
||||
pt2 = remap(seg.x2, seg.y2);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* eslint-disable no-var, eqeqeq */
|
||||
/* eslint-disable no-var */
|
||||
/* globals $, svgedit */
|
||||
/**
|
||||
* Package: svgedit.draw
|
||||
|
@ -42,9 +42,9 @@ svgedit.draw.randomizeIds = function (enableRandomization, currentDrawing) {
|
|||
? RandomizeModes.NEVER_RANDOMIZE
|
||||
: RandomizeModes.ALWAYS_RANDOMIZE;
|
||||
|
||||
if (randomizeIds == RandomizeModes.ALWAYS_RANDOMIZE && !currentDrawing.getNonce()) {
|
||||
if (randomizeIds === RandomizeModes.ALWAYS_RANDOMIZE && !currentDrawing.getNonce()) {
|
||||
currentDrawing.setNonce(Math.floor(Math.random() * 100001));
|
||||
} else if (randomizeIds == RandomizeModes.NEVER_RANDOMIZE && currentDrawing.getNonce()) {
|
||||
} else if (randomizeIds === RandomizeModes.NEVER_RANDOMIZE && currentDrawing.getNonce()) {
|
||||
currentDrawing.clearNonce();
|
||||
}
|
||||
};
|
||||
|
@ -58,7 +58,7 @@ svgedit.draw.randomizeIds = function (enableRandomization, currentDrawing) {
|
|||
*/
|
||||
svgedit.draw.Drawing = function (svgElem, optIdPrefix) {
|
||||
if (!svgElem || !svgElem.tagName || !svgElem.namespaceURI ||
|
||||
svgElem.tagName != 'svg' || svgElem.namespaceURI != NS.SVG) {
|
||||
svgElem.tagName !== 'svg' || svgElem.namespaceURI !== NS.SVG) {
|
||||
throw new Error('Error: svgedit.draw.Drawing instance initialized without a <svg> element');
|
||||
}
|
||||
|
||||
|
@ -118,9 +118,9 @@ svgedit.draw.Drawing = function (svgElem, optIdPrefix) {
|
|||
var n = this.svgElem_.getAttributeNS(NS.SE, 'nonce');
|
||||
// If already set in the DOM, use the nonce throughout the document
|
||||
// else, if randomizeIds(true) has been called, create and set the nonce.
|
||||
if (!!n && randomizeIds != RandomizeModes.NEVER_RANDOMIZE) {
|
||||
if (!!n && randomizeIds !== RandomizeModes.NEVER_RANDOMIZE) {
|
||||
this.nonce_ = n;
|
||||
} else if (randomizeIds == RandomizeModes.ALWAYS_RANDOMIZE) {
|
||||
} else if (randomizeIds === RandomizeModes.ALWAYS_RANDOMIZE) {
|
||||
this.setNonce(Math.floor(Math.random() * 100001));
|
||||
}
|
||||
};
|
||||
|
@ -234,7 +234,7 @@ svgedit.draw.Drawing.prototype.releaseId = function (id) {
|
|||
|
||||
// if we didn't get a positive number or we already released this number
|
||||
// then return false.
|
||||
if (typeof num !== 'number' || num <= 0 || this.releasedNums.indexOf(num) != -1) {
|
||||
if (typeof num !== 'number' || num <= 0 || this.releasedNums.indexOf(num) !== -1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -326,12 +326,12 @@ svgedit.draw.Drawing.prototype.setCurrentLayerPosition = function (newpos) {
|
|||
|
||||
var oldpos;
|
||||
for (oldpos = 0; oldpos < layerCount; ++oldpos) {
|
||||
if (this.all_layers[oldpos] == this.current_layer) { break; }
|
||||
if (this.all_layers[oldpos] === this.current_layer) { break; }
|
||||
}
|
||||
// some unknown error condition (current_layer not in all_layers)
|
||||
if (oldpos == layerCount) { return null; }
|
||||
if (oldpos === layerCount) { return null; }
|
||||
|
||||
if (oldpos != newpos) {
|
||||
if (oldpos !== newpos) {
|
||||
// if our new position is below us, we need to insert before the node after newpos
|
||||
var refGroup = null;
|
||||
var currentGroup = this.current_layer.getGroup();
|
||||
|
@ -369,7 +369,7 @@ svgedit.draw.Drawing.prototype.mergeLayer = function (hrService) {
|
|||
|
||||
while (currentGroup.firstChild) {
|
||||
var child = currentGroup.firstChild;
|
||||
if (child.localName == 'title') {
|
||||
if (child.localName === 'title') {
|
||||
hrService.removeElement(child, child.nextSibling, currentGroup);
|
||||
currentGroup.removeChild(child);
|
||||
continue;
|
||||
|
@ -480,7 +480,7 @@ svgedit.draw.Drawing.prototype.identifyLayers = function () {
|
|||
for (var i = 0; i < numchildren; ++i) {
|
||||
var child = this.svgElem_.childNodes.item(i);
|
||||
// for each g, find its layer name
|
||||
if (child && child.nodeType == 1) {
|
||||
if (child && child.nodeType === 1) {
|
||||
if (child.tagName === 'g') {
|
||||
childgroups = true;
|
||||
var name = findLayerNameInGroup(child);
|
||||
|
@ -569,7 +569,7 @@ svgedit.draw.Drawing.prototype.cloneLayer = function (name, hrService) {
|
|||
var index;
|
||||
for (index = 0; index < children.length; index++) {
|
||||
var ch = children[index];
|
||||
if (ch.localName == 'title') { continue; }
|
||||
if (ch.localName === 'title') { continue; }
|
||||
group.appendChild(this.copyElem(ch));
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* eslint-disable no-var, eqeqeq */
|
||||
/* eslint-disable no-var */
|
||||
/* globals svgedit */
|
||||
/**
|
||||
* Package: svedit.math
|
||||
|
@ -88,7 +88,7 @@ svgedit.math.hasMatrixTransform = function (tlist) {
|
|||
var num = tlist.numberOfItems;
|
||||
while (num--) {
|
||||
var xform = tlist.getItem(num);
|
||||
if (xform.type == 1 && !svgedit.math.isIdentity(xform.matrix)) { return true; }
|
||||
if (xform.type === 1 && !svgedit.math.isIdentity(xform.matrix)) { return true; }
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* eslint-disable no-var, eqeqeq */
|
||||
/* eslint-disable no-var */
|
||||
/* globals $, svgedit, svgroot */
|
||||
/**
|
||||
* Package: svgedit.path
|
||||
|
@ -85,7 +85,7 @@ svgedit.path.insertItemBefore = function (elem, newseg, index) {
|
|||
}
|
||||
list.clear();
|
||||
for (i = 0; i < len; i++) {
|
||||
if (i == index) { // index + 1
|
||||
if (i === index) { // index + 1
|
||||
list.appendItem(newseg);
|
||||
}
|
||||
list.appendItem(arr[i]);
|
||||
|
@ -301,7 +301,7 @@ svgedit.path.replacePathSeg = function (type, index, pts, elem) {
|
|||
}
|
||||
segList.clear();
|
||||
for (i = 0; i < len; i++) {
|
||||
if (i == index) {
|
||||
if (i === index) {
|
||||
segList.appendItem(seg);
|
||||
} else {
|
||||
segList.appendItem(arr[i]);
|
||||
|
@ -370,7 +370,7 @@ svgedit.path.smoothControlPoints = function (ct1, ct2, pt) {
|
|||
x2 = ct2.x - pt.x,
|
||||
y2 = ct2.y - pt.y;
|
||||
|
||||
if ((x1 != 0 || y1 != 0) && (x2 != 0 || y2 != 0)) {
|
||||
if ((x1 !== 0 || y1 !== 0) && (x2 !== 0 || y2 !== 0)) {
|
||||
var anglea = Math.atan2(y1, x1),
|
||||
angleb = Math.atan2(y2, x2),
|
||||
r1 = Math.sqrt(x1 * x1 + y1 * y1),
|
||||
|
@ -509,7 +509,7 @@ svgedit.path.Segment.prototype.move = function (dx, dy) {
|
|||
|
||||
svgedit.path.Segment.prototype.setLinked = function (num) {
|
||||
var seg, anum, pt;
|
||||
if (num == 2) {
|
||||
if (num === 2) {
|
||||
anum = 1;
|
||||
seg = this.next;
|
||||
if (!seg) { return; }
|
||||
|
@ -744,7 +744,7 @@ svgedit.path.Path.prototype.subpathIsClosed = function (index) {
|
|||
|
||||
svgedit.path.Path.prototype.removePtFromSelection = function (index) {
|
||||
var pos = this.selected_pts.indexOf(index);
|
||||
if (pos == -1) {
|
||||
if (pos === -1) {
|
||||
return;
|
||||
}
|
||||
this.segs[index].select(false);
|
||||
|
@ -810,7 +810,7 @@ svgedit.path.Path.prototype.setSegType = function (newType) {
|
|||
// Toggle segment to curve/straight line
|
||||
var oldType = cur.type;
|
||||
|
||||
newType = (oldType == 6) ? 4 : 6;
|
||||
newType = (oldType === 6) ? 4 : 6;
|
||||
}
|
||||
|
||||
newType = Number(newType);
|
||||
|
@ -965,7 +965,7 @@ svgedit.path.recalcRotatedPath = function () {
|
|||
i -= 1;
|
||||
var seg = list.getItem(i),
|
||||
type = seg.pathSegType;
|
||||
if (type == 1) { continue; }
|
||||
if (type === 1) { continue; }
|
||||
|
||||
var rvals = getRotVals(seg.x, seg.y),
|
||||
points = [rvals.x, rvals.y];
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* eslint-disable no-var, eqeqeq, no-redeclare */
|
||||
/* eslint-disable no-var, no-redeclare */
|
||||
// SVGPathSeg API polyfill
|
||||
// https://github.com/progers/pathseg
|
||||
//
|
||||
|
@ -651,11 +651,11 @@ if (!('SVGPathSegList' in window) || !('appendItem' in window.SVGPathSegList.pro
|
|||
|
||||
Source.prototype._nextCommandHelper = function (lookahead, previousCommand) {
|
||||
// Check for remaining coordinates in the current command.
|
||||
if ((lookahead === '+' || lookahead === '-' || lookahead === '.' || (lookahead >= '0' && lookahead <= '9')) && previousCommand != window.SVGPathSeg.PATHSEG_CLOSEPATH) {
|
||||
if (previousCommand == window.SVGPathSeg.PATHSEG_MOVETO_ABS) {
|
||||
if ((lookahead === '+' || lookahead === '-' || lookahead === '.' || (lookahead >= '0' && lookahead <= '9')) && previousCommand !== window.SVGPathSeg.PATHSEG_CLOSEPATH) {
|
||||
if (previousCommand === window.SVGPathSeg.PATHSEG_MOVETO_ABS) {
|
||||
return window.SVGPathSeg.PATHSEG_LINETO_ABS;
|
||||
}
|
||||
if (previousCommand == window.SVGPathSeg.PATHSEG_MOVETO_REL) {
|
||||
if (previousCommand === window.SVGPathSeg.PATHSEG_MOVETO_REL) {
|
||||
return window.SVGPathSeg.PATHSEG_LINETO_REL;
|
||||
}
|
||||
return previousCommand;
|
||||
|
@ -670,7 +670,7 @@ if (!('SVGPathSegList' in window) || !('appendItem' in window.SVGPathSegList.pro
|
|||
}
|
||||
var command = this.peekSegmentType();
|
||||
// Path must start with moveTo.
|
||||
return command == window.SVGPathSeg.PATHSEG_MOVETO_ABS || command == window.SVGPathSeg.PATHSEG_MOVETO_REL;
|
||||
return command === window.SVGPathSeg.PATHSEG_MOVETO_ABS || command === window.SVGPathSeg.PATHSEG_MOVETO_REL;
|
||||
};
|
||||
|
||||
// Parse a number from an SVG path. This very closely follows genericParseNumber(...) from Source/core/svg/SVGParserUtilities.cpp.
|
||||
|
@ -695,7 +695,7 @@ if (!('SVGPathSegList' in window) || !('appendItem' in window.SVGPathSegList.pro
|
|||
sign = -1;
|
||||
}
|
||||
|
||||
if (this._currentIndex == this._endIndex || ((this._string.charAt(this._currentIndex) < '0' || this._string.charAt(this._currentIndex) > '9') && this._string.charAt(this._currentIndex) !== '.')) {
|
||||
if (this._currentIndex === this._endIndex || ((this._string.charAt(this._currentIndex) < '0' || this._string.charAt(this._currentIndex) > '9') && this._string.charAt(this._currentIndex) !== '.')) {
|
||||
// The first character of a number must be one of [0-9+-.].
|
||||
return undefined;
|
||||
}
|
||||
|
@ -706,7 +706,7 @@ if (!('SVGPathSegList' in window) || !('appendItem' in window.SVGPathSegList.pro
|
|||
this._currentIndex++; // Advance to first non-digit.
|
||||
}
|
||||
|
||||
if (this._currentIndex != startIntPartIndex) {
|
||||
if (this._currentIndex !== startIntPartIndex) {
|
||||
var scanIntPartIndex = this._currentIndex - 1;
|
||||
var multiplier = 1;
|
||||
while (scanIntPartIndex >= startIntPartIndex) {
|
||||
|
@ -731,7 +731,7 @@ if (!('SVGPathSegList' in window) || !('appendItem' in window.SVGPathSegList.pro
|
|||
}
|
||||
|
||||
// Read the exponent part.
|
||||
if (this._currentIndex != startIndex && this._currentIndex + 1 < this._endIndex && (this._string.charAt(this._currentIndex) === 'e' || this._string.charAt(this._currentIndex) === 'E') && (this._string.charAt(this._currentIndex + 1) !== 'x' && this._string.charAt(this._currentIndex + 1) !== 'm')) {
|
||||
if (this._currentIndex !== startIndex && this._currentIndex + 1 < this._endIndex && (this._string.charAt(this._currentIndex) === 'e' || this._string.charAt(this._currentIndex) === 'E') && (this._string.charAt(this._currentIndex + 1) !== 'x' && this._string.charAt(this._currentIndex + 1) !== 'm')) {
|
||||
this._currentIndex++;
|
||||
|
||||
// Read the sign of the exponent.
|
||||
|
@ -761,7 +761,7 @@ if (!('SVGPathSegList' in window) || !('appendItem' in window.SVGPathSegList.pro
|
|||
number *= Math.pow(10, expsign * exponent);
|
||||
}
|
||||
|
||||
if (startIndex == this._currentIndex) {
|
||||
if (startIndex === this._currentIndex) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
|
@ -791,13 +791,13 @@ if (!('SVGPathSegList' in window) || !('appendItem' in window.SVGPathSegList.pro
|
|||
Source.prototype.parseSegment = function () {
|
||||
var lookahead = this._string[this._currentIndex];
|
||||
var command = this._pathSegTypeFromChar(lookahead);
|
||||
if (command == window.SVGPathSeg.PATHSEG_UNKNOWN) {
|
||||
if (command === window.SVGPathSeg.PATHSEG_UNKNOWN) {
|
||||
// Possibly an implicit command. Not allowed if this is the first command.
|
||||
if (this._previousCommand == window.SVGPathSeg.PATHSEG_UNKNOWN) {
|
||||
if (this._previousCommand === window.SVGPathSeg.PATHSEG_UNKNOWN) {
|
||||
return null;
|
||||
}
|
||||
command = this._nextCommandHelper(lookahead, this._previousCommand);
|
||||
if (command == window.SVGPathSeg.PATHSEG_UNKNOWN) {
|
||||
if (command === window.SVGPathSeg.PATHSEG_UNKNOWN) {
|
||||
return null;
|
||||
}
|
||||
} else {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* eslint-disable no-var, eqeqeq, no-redeclare */
|
||||
/* eslint-disable no-var, no-redeclare */
|
||||
/* globals $, getRefElem */
|
||||
/**
|
||||
* Recalculate.
|
||||
|
@ -98,7 +98,7 @@ svgedit.recalculate.recalculateDimensions = function (selected) {
|
|||
}
|
||||
|
||||
// if this element had no transforms, we are done
|
||||
if (!tlist || tlist.numberOfItems == 0) {
|
||||
if (!tlist || tlist.numberOfItems === 0) {
|
||||
// Chrome has a bug that requires clearing the attribute first.
|
||||
selected.setAttribute('transform', '');
|
||||
selected.removeAttribute('transform');
|
||||
|
@ -227,7 +227,7 @@ svgedit.recalculate.recalculateDimensions = function (selected) {
|
|||
initial.transform = context_.getStartTransform() || '';
|
||||
|
||||
// if it's a regular group, we have special processing to flatten transforms
|
||||
if ((selected.tagName == 'g' && !gsvg) || selected.tagName === 'a') {
|
||||
if ((selected.tagName === 'g' && !gsvg) || selected.tagName === 'a') {
|
||||
var box = svgedit.utilities.getBBox(selected),
|
||||
oldcenter = {x: box.x + box.width / 2, y: box.y + box.height / 2},
|
||||
newcenter = svgedit.math.transformPoint(box.x + box.width / 2,
|
||||
|
@ -248,7 +248,7 @@ svgedit.recalculate.recalculateDimensions = function (selected) {
|
|||
var i;
|
||||
for (i = 0; i < tlist.numberOfItems; ++i) {
|
||||
var xform = tlist.getItem(i);
|
||||
if (xform.type == 4) {
|
||||
if (xform.type === 4) {
|
||||
// extract old center through mystical arts
|
||||
var rm = xform.matrix;
|
||||
oldcenter.y = (s * rm.e + rm.f) / 2;
|
||||
|
@ -267,8 +267,8 @@ svgedit.recalculate.recalculateDimensions = function (selected) {
|
|||
}
|
||||
|
||||
// first, if it was a scale then the second-last transform will be it
|
||||
if (N >= 3 && tlist.getItem(N - 2).type == 3 &&
|
||||
tlist.getItem(N - 3).type == 2 && tlist.getItem(N - 1).type == 2) {
|
||||
if (N >= 3 && tlist.getItem(N - 2).type === 3 &&
|
||||
tlist.getItem(N - 3).type === 2 && tlist.getItem(N - 1).type === 2) {
|
||||
operation = 3; // scale
|
||||
|
||||
// if the children are unrotated, pass the scale down directly
|
||||
|
@ -283,7 +283,7 @@ svgedit.recalculate.recalculateDimensions = function (selected) {
|
|||
var child = children.item(c);
|
||||
tx = 0;
|
||||
ty = 0;
|
||||
if (child.nodeType == 1) {
|
||||
if (child.nodeType === 1) {
|
||||
var childTlist = svgedit.transformlist.getTransformList(child);
|
||||
|
||||
// some children might not have a transform (<metadata>, <defs>, etc)
|
||||
|
@ -375,7 +375,7 @@ svgedit.recalculate.recalculateDimensions = function (selected) {
|
|||
tlist.removeItem(N - 1);
|
||||
tlist.removeItem(N - 2);
|
||||
tlist.removeItem(N - 3);
|
||||
} else if (N >= 3 && tlist.getItem(N - 1).type == 1) {
|
||||
} else if (N >= 3 && tlist.getItem(N - 1).type === 1) {
|
||||
operation = 3; // scale
|
||||
m = svgedit.math.transformListToTransform(tlist).matrix;
|
||||
var e2t = svgroot.createSVGTransform();
|
||||
|
@ -385,8 +385,8 @@ svgedit.recalculate.recalculateDimensions = function (selected) {
|
|||
// next, check if the first transform was a translate
|
||||
// if we had [ T1 ] [ M ] we want to transform this into [ M ] [ T2 ]
|
||||
// therefore [ T2 ] = [ M_inv ] [ T1 ] [ M ]
|
||||
} else if ((N == 1 || (N > 1 && tlist.getItem(1).type != 3)) &&
|
||||
tlist.getItem(0).type == 2) {
|
||||
} else if ((N === 1 || (N > 1 && tlist.getItem(1).type !== 3)) &&
|
||||
tlist.getItem(0).type === 2) {
|
||||
operation = 2; // translate
|
||||
var T_M = svgedit.math.transformListToTransform(tlist).matrix;
|
||||
tlist.removeItem(0);
|
||||
|
@ -396,7 +396,7 @@ svgedit.recalculate.recalculateDimensions = function (selected) {
|
|||
tx = M2.e;
|
||||
ty = M2.f;
|
||||
|
||||
if (tx != 0 || ty != 0) {
|
||||
if (tx !== 0 || ty !== 0) {
|
||||
// we pass the translates down to the individual children
|
||||
var children = selected.childNodes;
|
||||
var c = children.length;
|
||||
|
@ -438,7 +438,7 @@ svgedit.recalculate.recalculateDimensions = function (selected) {
|
|||
var u = uses.length;
|
||||
while (u--) {
|
||||
var useElem = uses.item(u);
|
||||
if (href == svgedit.utilities.getHref(useElem)) {
|
||||
if (href === svgedit.utilities.getHref(useElem)) {
|
||||
var usexlate = svgroot.createSVGTransform();
|
||||
usexlate.setTranslate(-tx, -ty);
|
||||
svgedit.transformlist.getTransformList(useElem).insertItemBefore(usexlate, 0);
|
||||
|
@ -455,7 +455,7 @@ svgedit.recalculate.recalculateDimensions = function (selected) {
|
|||
}
|
||||
// else, a matrix imposition from a parent group
|
||||
// keep pushing it down to the children
|
||||
} else if (N == 1 && tlist.getItem(0).type == 1 && !gangle) {
|
||||
} else if (N === 1 && tlist.getItem(0).type === 1 && !gangle) {
|
||||
operation = 1;
|
||||
var m = tlist.getItem(0).matrix,
|
||||
children = selected.childNodes,
|
||||
|
@ -499,14 +499,14 @@ svgedit.recalculate.recalculateDimensions = function (selected) {
|
|||
tlist.appendItem(newRot);
|
||||
}
|
||||
}
|
||||
if (tlist.numberOfItems == 0) {
|
||||
if (tlist.numberOfItems === 0) {
|
||||
selected.removeAttribute('transform');
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
// if it was a translate, put back the rotate at the new center
|
||||
if (operation == 2) {
|
||||
if (operation === 2) {
|
||||
if (gangle) {
|
||||
newcenter = {
|
||||
x: oldcenter.x + firstM.e,
|
||||
|
@ -522,7 +522,7 @@ svgedit.recalculate.recalculateDimensions = function (selected) {
|
|||
}
|
||||
}
|
||||
// if it was a resize
|
||||
} else if (operation == 3) {
|
||||
} else if (operation === 3) {
|
||||
var m = svgedit.math.transformListToTransform(tlist).matrix;
|
||||
var roldt = svgroot.createSVGTransform();
|
||||
roldt.setRotate(gangle, oldcenter.x, oldcenter.y);
|
||||
|
@ -536,14 +536,14 @@ svgedit.recalculate.recalculateDimensions = function (selected) {
|
|||
tx = extrat.e;
|
||||
ty = extrat.f;
|
||||
|
||||
if (tx != 0 || ty != 0) {
|
||||
if (tx !== 0 || ty !== 0) {
|
||||
// now push this transform down to the children
|
||||
// we pass the translates down to the individual children
|
||||
var children = selected.childNodes;
|
||||
var c = children.length;
|
||||
while (c--) {
|
||||
var child = children.item(c);
|
||||
if (child.nodeType == 1) {
|
||||
if (child.nodeType === 1) {
|
||||
var oldStartTransform = context_.getStartTransform();
|
||||
context_.setStartTransform(child.getAttribute('transform'));
|
||||
var childTlist = svgedit.transformlist.getTransformList(child);
|
||||
|
@ -579,7 +579,7 @@ svgedit.recalculate.recalculateDimensions = function (selected) {
|
|||
// TODO: Figure out how to get BBox from these elements in case they
|
||||
// have a rotation transform
|
||||
|
||||
if (!box && selected.tagName != 'path') return null;
|
||||
if (!box && selected.tagName !== 'path') return null;
|
||||
|
||||
var m = svgroot.createSVGMatrix(),
|
||||
// temporarily strip off the rotate and save the old center
|
||||
|
@ -598,7 +598,7 @@ svgedit.recalculate.recalculateDimensions = function (selected) {
|
|||
}
|
||||
for (var i = 0; i < tlist.numberOfItems; ++i) {
|
||||
var xform = tlist.getItem(i);
|
||||
if (xform.type == 4) {
|
||||
if (xform.type === 4) {
|
||||
// extract old center through mystical arts
|
||||
var rm = xform.matrix;
|
||||
oldcenter.y = (s * rm.e + rm.f) / 2;
|
||||
|
@ -639,8 +639,8 @@ svgedit.recalculate.recalculateDimensions = function (selected) {
|
|||
// transform will be the [S]
|
||||
// if we had [M][T][S][T] we want to extract the matrix equivalent of
|
||||
// [T][S][T] and push it down to the element
|
||||
if (N >= 3 && tlist.getItem(N - 2).type == 3 &&
|
||||
tlist.getItem(N - 3).type == 2 && tlist.getItem(N - 1).type == 2) {
|
||||
if (N >= 3 && tlist.getItem(N - 2).type === 3 &&
|
||||
tlist.getItem(N - 3).type === 2 && tlist.getItem(N - 1).type === 2) {
|
||||
// Removed this so a <use> with a given [T][S][T] would convert to a matrix.
|
||||
// Is that bad?
|
||||
// && selected.nodeName != 'use'
|
||||
|
@ -651,7 +651,7 @@ svgedit.recalculate.recalculateDimensions = function (selected) {
|
|||
tlist.removeItem(N - 3);
|
||||
// if we had [T][S][-T][M], then this was a skewed element being resized
|
||||
// Thus, we simply combine it all into one matrix
|
||||
} else if (N == 4 && tlist.getItem(N - 1).type == 1) {
|
||||
} else if (N === 4 && tlist.getItem(N - 1).type === 1) {
|
||||
operation = 3; // scale
|
||||
m = svgedit.math.transformListToTransform(tlist).matrix;
|
||||
var e2t = svgroot.createSVGTransform();
|
||||
|
@ -664,8 +664,8 @@ svgedit.recalculate.recalculateDimensions = function (selected) {
|
|||
// if we had [T1][M] we want to transform this into [M][T2]
|
||||
// therefore [ T2 ] = [ M_inv ] [ T1 ] [ M ] and we can push [T2]
|
||||
// down to the element
|
||||
} else if ((N == 1 || (N > 1 && tlist.getItem(1).type != 3)) &&
|
||||
tlist.getItem(0).type == 2) {
|
||||
} else if ((N === 1 || (N > 1 && tlist.getItem(1).type !== 3)) &&
|
||||
tlist.getItem(0).type === 2) {
|
||||
operation = 2; // translate
|
||||
var oldxlate = tlist.getItem(0).matrix,
|
||||
meq = svgedit.math.transformListToTransform(tlist, 1).matrix,
|
||||
|
@ -674,7 +674,7 @@ svgedit.recalculate.recalculateDimensions = function (selected) {
|
|||
tlist.removeItem(0);
|
||||
// else if this child now has a matrix imposition (from a parent group)
|
||||
// we might be able to simplify
|
||||
} else if (N == 1 && tlist.getItem(0).type == 1 && !angle) {
|
||||
} else if (N === 1 && tlist.getItem(0).type === 1 && !angle) {
|
||||
// Remap all point-based elements
|
||||
m = svgedit.math.transformListToTransform(tlist).matrix;
|
||||
switch (selected.tagName) {
|
||||
|
@ -716,19 +716,19 @@ svgedit.recalculate.recalculateDimensions = function (selected) {
|
|||
tlist.appendItem(newRot);
|
||||
}
|
||||
}
|
||||
if (tlist.numberOfItems == 0) {
|
||||
if (tlist.numberOfItems === 0) {
|
||||
selected.removeAttribute('transform');
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
// if it was a translate or resize, we need to remap the element and absorb the xform
|
||||
if (operation == 1 || operation == 2 || operation == 3) {
|
||||
if (operation === 1 || operation === 2 || operation === 3) {
|
||||
svgedit.coords.remapElement(selected, changes, m);
|
||||
} // if we are remapping
|
||||
|
||||
// if it was a translate, put back the rotate at the new center
|
||||
if (operation == 2) {
|
||||
if (operation === 2) {
|
||||
if (angle) {
|
||||
if (!svgedit.math.hasMatrixTransform(tlist)) {
|
||||
newcenter = {
|
||||
|
@ -747,12 +747,12 @@ svgedit.recalculate.recalculateDimensions = function (selected) {
|
|||
// We have special processing for tspans: Tspans are not transformable
|
||||
// but they can have x,y coordinates (sigh). Thus, if this was a translate,
|
||||
// on a text element, also translate any tspan children.
|
||||
if (selected.tagName == 'text') {
|
||||
if (selected.tagName === 'text') {
|
||||
var children = selected.childNodes;
|
||||
var c = children.length;
|
||||
while (c--) {
|
||||
var child = children.item(c);
|
||||
if (child.tagName == 'tspan') {
|
||||
if (child.tagName === 'tspan') {
|
||||
var tspanChanges = {
|
||||
x: $(child).attr('x') || 0,
|
||||
y: $(child).attr('y') || 0
|
||||
|
@ -765,7 +765,7 @@ svgedit.recalculate.recalculateDimensions = function (selected) {
|
|||
// we want it to be [Rnew][M][Tr] where Tr is the
|
||||
// translation required to re-center it
|
||||
// Therefore, [Tr] = [M_inv][Rnew_inv][Rold][M]
|
||||
} else if (operation == 3 && angle) {
|
||||
} else if (operation === 3 && angle) {
|
||||
var m = svgedit.math.transformListToTransform(tlist).matrix;
|
||||
var roldt = svgroot.createSVGTransform();
|
||||
roldt.setRotate(angle, oldcenter.x, oldcenter.y);
|
||||
|
@ -788,7 +788,7 @@ svgedit.recalculate.recalculateDimensions = function (selected) {
|
|||
} // a non-group
|
||||
|
||||
// if the transform list has been emptied, remove it
|
||||
if (tlist.numberOfItems == 0) {
|
||||
if (tlist.numberOfItems === 0) {
|
||||
selected.removeAttribute('transform');
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* eslint-disable no-var, eqeqeq */
|
||||
/* eslint-disable no-var */
|
||||
/* globals $, svgedit */
|
||||
/**
|
||||
* Package: svgedit.sanitize
|
||||
|
@ -104,7 +104,7 @@ $.each(svgWhiteList_, function (elt, atts) {
|
|||
var v = att.split(':');
|
||||
attNS[v[1]] = NS[(v[0]).toUpperCase()];
|
||||
} else {
|
||||
attNS[att] = att == 'xmlns' ? NS.XMLNS : null;
|
||||
attNS[att] = att === 'xmlns' ? NS.XMLNS : null;
|
||||
}
|
||||
});
|
||||
svgWhiteListNS_[elt] = attNS;
|
||||
|
@ -118,7 +118,7 @@ $.each(svgWhiteList_, function (elt, atts) {
|
|||
// node - The DOM element to be checked (we'll also check its children)
|
||||
svgedit.sanitize.sanitizeSvg = function (node) {
|
||||
// Cleanup text nodes
|
||||
if (node.nodeType == 3) { // 3 == TEXT_NODE
|
||||
if (node.nodeType === 3) { // 3 == TEXT_NODE
|
||||
// Trim whitespace
|
||||
node.nodeValue = node.nodeValue.replace(/^\s+|\s+$/g, '');
|
||||
// Remove if empty
|
||||
|
@ -129,7 +129,7 @@ svgedit.sanitize.sanitizeSvg = function (node) {
|
|||
|
||||
// We only care about element nodes.
|
||||
// Automatically return for all non-element nodes, such as comments, etc.
|
||||
if (node.nodeType != 1) { // 1 == ELEMENT_NODE
|
||||
if (node.nodeType !== 1) { // 1 == ELEMENT_NODE
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -156,8 +156,8 @@ svgedit.sanitize.sanitizeSvg = function (node) {
|
|||
var attrNsURI = attr.namespaceURI;
|
||||
// Check that an attribute with the correct localName in the correct namespace is on
|
||||
// our whitelist or is a namespace declaration for one of our allowed namespaces
|
||||
if (!(allowedAttrsNS.hasOwnProperty(attrLocalName) && attrNsURI == allowedAttrsNS[attrLocalName] && attrNsURI != NS.XMLNS) &&
|
||||
!(attrNsURI == NS.XMLNS && REVERSE_NS[attr.value])) {
|
||||
if (!(allowedAttrsNS.hasOwnProperty(attrLocalName) && attrNsURI === allowedAttrsNS[attrLocalName] && attrNsURI !== NS.XMLNS) &&
|
||||
!(attrNsURI === NS.XMLNS && REVERSE_NS[attr.value])) {
|
||||
// TODO(codedread): Programmatically add the se: attributes to the NS-aware whitelist.
|
||||
// Bypassing the whitelist to allow se: prefixes.
|
||||
// Is there a more appropriate way to do this?
|
||||
|
@ -180,7 +180,7 @@ svgedit.sanitize.sanitizeSvg = function (node) {
|
|||
}
|
||||
|
||||
// For the style attribute, rewrite it in terms of XML presentational attributes
|
||||
if (attrName == 'style') {
|
||||
if (attrName === 'style') {
|
||||
var props = attr.value.split(';'),
|
||||
p = props.length;
|
||||
while (p--) {
|
||||
|
@ -207,7 +207,7 @@ svgedit.sanitize.sanitizeSvg = function (node) {
|
|||
['filter', 'linearGradient', 'pattern',
|
||||
'radialGradient', 'textPath', 'use'].indexOf(node.nodeName) >= 0) {
|
||||
// TODO: we simply check if the first character is a #, is this bullet-proof?
|
||||
if (href[0] != '#') {
|
||||
if (href[0] !== '#') {
|
||||
// remove the attribute (but keep the element)
|
||||
svgedit.utilities.setHref(node, '');
|
||||
node.removeAttributeNS(NS.XLINK, 'href');
|
||||
|
@ -215,7 +215,7 @@ svgedit.sanitize.sanitizeSvg = function (node) {
|
|||
}
|
||||
|
||||
// Safari crashes on a <use> without a xlink:href, so we just remove the node here
|
||||
if (node.nodeName == 'use' && !svgedit.utilities.getHref(node)) {
|
||||
if (node.nodeName === 'use' && !svgedit.utilities.getHref(node)) {
|
||||
parent.removeChild(node);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* eslint-disable no-var, eqeqeq */
|
||||
/* eslint-disable no-var */
|
||||
/* globals $, svgedit */
|
||||
/**
|
||||
* Package: svedit.select
|
||||
|
@ -458,7 +458,7 @@ svgedit.select.SelectorManager.prototype.releaseSelector = function (elem) {
|
|||
console.log('WARNING! selector was released but was already unlocked');
|
||||
}
|
||||
for (i = 0; i < N; ++i) {
|
||||
if (this.selectors[i] && this.selectors[i] == sel) {
|
||||
if (this.selectors[i] && this.selectors[i] === sel) {
|
||||
delete this.selectorMap[elem.id];
|
||||
sel.locked = false;
|
||||
sel.selectedElement = null;
|
||||
|
|
3259
editor/svgcanvas.js
3259
editor/svgcanvas.js
File diff suppressed because it is too large
Load Diff
|
@ -1,4 +1,4 @@
|
|||
/* eslint-disable no-var, eqeqeq */
|
||||
/* eslint-disable no-var */
|
||||
/* globals $, svgedit */
|
||||
/**
|
||||
* SVGTransformList
|
||||
|
@ -33,7 +33,7 @@ function transformToString (xform) {
|
|||
text = 'translate(' + m.e + ',' + m.f + ')';
|
||||
break;
|
||||
case 3: // SCALE
|
||||
if (m.a == m.d) {
|
||||
if (m.a === m.d) {
|
||||
text = 'scale(' + m.a + ')';
|
||||
} else {
|
||||
text = 'scale(' + m.a + ',' + m.d + ')';
|
||||
|
@ -42,7 +42,7 @@ function transformToString (xform) {
|
|||
case 4: // ROTATE
|
||||
var cx = 0, cy = 0;
|
||||
// this prevents divide by zero
|
||||
if (xform.angle != 0) {
|
||||
if (xform.angle !== 0) {
|
||||
var K = 1 - m.a;
|
||||
cy = (K * m.f + m.b * m.e) / (K * K + m.b * m.b);
|
||||
cx = (m.e - m.b * cy) / K;
|
||||
|
@ -114,19 +114,19 @@ svgedit.transformlist.SVGTransformList = function (elem) {
|
|||
var mtx = svgroot.createSVGMatrix();
|
||||
$.each(valArr, function (i, item) {
|
||||
valArr[i] = parseFloat(item);
|
||||
if (name == 'matrix') {
|
||||
if (name === 'matrix') {
|
||||
mtx[letters[i]] = valArr[i];
|
||||
}
|
||||
});
|
||||
var xform = svgroot.createSVGTransform();
|
||||
var fname = 'set' + name.charAt(0).toUpperCase() + name.slice(1);
|
||||
var values = name == 'matrix' ? [mtx] : valArr;
|
||||
var values = name === 'matrix' ? [mtx] : valArr;
|
||||
|
||||
if (name == 'scale' && values.length == 1) {
|
||||
if (name === 'scale' && values.length === 1) {
|
||||
values.push(values[0]);
|
||||
} else if (name == 'translate' && values.length == 1) {
|
||||
} else if (name === 'translate' && values.length === 1) {
|
||||
values.push(0);
|
||||
} else if (name == 'rotate' && values.length == 1) {
|
||||
} else if (name === 'rotate' && values.length === 1) {
|
||||
values.push(0, 0);
|
||||
}
|
||||
xform[fname].apply(xform, values);
|
||||
|
@ -144,7 +144,7 @@ svgedit.transformlist.SVGTransformList = function (elem) {
|
|||
var tl = listMap_[id];
|
||||
var i, len;
|
||||
for (i = 0, len = tl._xforms.length; i < len; ++i) {
|
||||
if (tl._xforms[i] == item) {
|
||||
if (tl._xforms[i] === item) {
|
||||
found = true;
|
||||
tl.removeItem(i);
|
||||
break;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* eslint-disable no-var, eqeqeq */
|
||||
/* eslint-disable no-var */
|
||||
/* globals $, svgedit, unescape, DOMParser, ActiveXObject, getStrokedBBox, RGBColor */
|
||||
/**
|
||||
* Package: svgedit.utilities
|
||||
|
@ -148,10 +148,10 @@ svgedit.utilities.decode64 = function (input) {
|
|||
|
||||
output = output + String.fromCharCode(chr1);
|
||||
|
||||
if (enc3 != 64) {
|
||||
if (enc3 !== 64) {
|
||||
output = output + String.fromCharCode(chr2);
|
||||
}
|
||||
if (enc4 != 64) {
|
||||
if (enc4 !== 64) {
|
||||
output = output + String.fromCharCode(chr3);
|
||||
}
|
||||
|
||||
|
@ -176,7 +176,7 @@ svgedit.utilities.encodeUTF8 = function (argString) {
|
|||
* @return {string} object URL or empty string
|
||||
*/
|
||||
svgedit.utilities.dataURLToObjectURL = function (dataurl) {
|
||||
if (typeof Uint8Array == 'undefined' || typeof Blob == 'undefined' || typeof URL == 'undefined' || !URL.createObjectURL) {
|
||||
if (typeof Uint8Array === 'undefined' || typeof Blob === 'undefined' || typeof URL === 'undefined' || !URL.createObjectURL) {
|
||||
return '';
|
||||
}
|
||||
var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
|
||||
|
@ -194,7 +194,7 @@ svgedit.utilities.dataURLToObjectURL = function (dataurl) {
|
|||
* @return {string} object URL or empty string
|
||||
*/
|
||||
svgedit.utilities.createObjectURL = function (blob) {
|
||||
if (!blob || typeof URL == 'undefined' || !URL.createObjectURL) {
|
||||
if (!blob || typeof URL === 'undefined' || !URL.createObjectURL) {
|
||||
return '';
|
||||
}
|
||||
return URL.createObjectURL(blob);
|
||||
|
@ -204,7 +204,7 @@ svgedit.utilities.createObjectURL = function (blob) {
|
|||
* @property {string} blankPageObjectURL
|
||||
*/
|
||||
svgedit.utilities.blankPageObjectURL = (function () {
|
||||
if (typeof Blob == 'undefined') {
|
||||
if (typeof Blob === 'undefined') {
|
||||
return '';
|
||||
}
|
||||
var blob = new Blob(['<html><head><title>SVG-edit</title></head><body> </body></html>'], {type: 'text/html'});
|
||||
|
@ -293,7 +293,7 @@ svgedit.utilities.walkTree = function (elem, cbFn) {
|
|||
// elem - DOM element to traverse
|
||||
// cbFn - Callback function to run on each element
|
||||
svgedit.utilities.walkTreePost = function (elem, cbFn) {
|
||||
if (elem && elem.nodeType == 1) {
|
||||
if (elem && elem.nodeType === 1) {
|
||||
var i = elem.childNodes.length;
|
||||
while (i--) {
|
||||
svgedit.utilities.walkTree(elem.childNodes.item(i), cbFn);
|
||||
|
@ -412,8 +412,8 @@ svgedit.utilities.getPathBBox = function (path) {
|
|||
var a = -3 * P0[j] + 9 * P1[j] - 9 * P2[j] + 3 * P3[j];
|
||||
var c = 3 * P1[j] - 3 * P0[j];
|
||||
|
||||
if (a == 0) {
|
||||
if (b == 0) {
|
||||
if (a === 0) {
|
||||
if (b === 0) {
|
||||
continue;
|
||||
}
|
||||
var t = -c / b;
|
||||
|
@ -611,7 +611,7 @@ svgedit.utilities.getPathDFromElement = function (elem) {
|
|||
var cx = a.cx, cy = a.cy;
|
||||
rx = a.rx;
|
||||
ry = a.ry;
|
||||
if (elem.tagName == 'circle') {
|
||||
if (elem.tagName === 'circle') {
|
||||
rx = ry = $(elem).attr('r');
|
||||
}
|
||||
|
||||
|
@ -877,7 +877,7 @@ svgedit.utilities.getBBoxWithTransform = function (elem, addSvgElementFromJson,
|
|||
var elemNames = ['ellipse', 'path', 'line', 'polyline', 'polygon'];
|
||||
if (elemNames.indexOf(elem.tagName) >= 0) {
|
||||
bb = goodBb = svgedit.utilities.getBBoxOfElementAsPath(elem, addSvgElementFromJson, pathActions);
|
||||
} else if (elem.tagName == 'rect') {
|
||||
} else if (elem.tagName === 'rect') {
|
||||
// Look for radius
|
||||
var rx = elem.getAttribute('rx');
|
||||
var ry = elem.getAttribute('ry');
|
||||
|
@ -912,7 +912,7 @@ svgedit.utilities.getBBoxWithTransform = function (elem, addSvgElementFromJson,
|
|||
// TODO: This is problematic with large stroke-width and, for example, a single horizontal line. The calculated BBox extends way beyond left and right sides.
|
||||
function getStrokeOffsetForBBox (elem) {
|
||||
var sw = elem.getAttribute('stroke-width');
|
||||
return (!isNaN(sw) && elem.getAttribute('stroke') != 'none') ? sw / 2 : 0;
|
||||
return (!isNaN(sw) && elem.getAttribute('stroke') !== 'none') ? sw / 2 : 0;
|
||||
};
|
||||
|
||||
// Function: getStrokedBBox
|
||||
|
@ -961,7 +961,7 @@ svgedit.utilities.getStrokedBBox = function (elems, addSvgElementFromJson, pathA
|
|||
minX = Math.min(minX, curBb.x - offset);
|
||||
minY = Math.min(minY, curBb.y - offset);
|
||||
// TODO: The old code had this test for max, but not min. I suspect this test should be for both min and max
|
||||
if (elem.nodeType == 1) {
|
||||
if (elem.nodeType === 1) {
|
||||
maxX = Math.max(maxX, curBb.x + curBb.width + offset);
|
||||
maxY = Math.max(maxY, curBb.y + curBb.height + offset);
|
||||
}
|
||||
|
@ -991,7 +991,7 @@ svgedit.utilities.getRotationAngleFromTransformList = function (tlist, toRad) {
|
|||
var i;
|
||||
for (i = 0; i < N; ++i) {
|
||||
var xform = tlist.getItem(i);
|
||||
if (xform.type == 4) {
|
||||
if (xform.type === 4) {
|
||||
return toRad ? xform.angle * Math.PI / 180.0 : xform.angle;
|
||||
}
|
||||
}
|
||||
|
@ -1104,7 +1104,7 @@ svgedit.utilities.cleanupElement = function (element) {
|
|||
var attr;
|
||||
for (attr in defaults) {
|
||||
var val = defaults[attr];
|
||||
if (element.getAttribute(attr) == val) {
|
||||
if (element.getAttribute(attr) === String(val)) {
|
||||
element.removeAttribute(attr);
|
||||
}
|
||||
}
|
||||
|
@ -1183,7 +1183,7 @@ svgedit.utilities.copyElem = function (el, getNextId) {
|
|||
// manually create a copy of the element
|
||||
var newEl = document.createElementNS(el.namespaceURI, el.nodeName);
|
||||
$.each(el.attributes, function (i, attr) {
|
||||
if (attr.localName != '-moz-math-font-style') {
|
||||
if (attr.localName !== '-moz-math-font-style') {
|
||||
newEl.setAttributeNS(attr.namespaceURI, attr.nodeName, attr.value);
|
||||
}
|
||||
});
|
||||
|
@ -1193,7 +1193,7 @@ svgedit.utilities.copyElem = function (el, getNextId) {
|
|||
|
||||
// Opera's "d" value needs to be reset for Opera/Win/non-EN
|
||||
// Also needed for webkit (else does not keep curved segments on clone)
|
||||
if (svgedit.browser.isWebkit() && el.nodeName == 'path') {
|
||||
if (svgedit.browser.isWebkit() && el.nodeName === 'path') {
|
||||
var fixedD = svgedit.utilities.convertPath(el);
|
||||
newEl.setAttribute('d', fixedD);
|
||||
}
|
||||
|
@ -1217,7 +1217,7 @@ svgedit.utilities.copyElem = function (el, getNextId) {
|
|||
} else if ($(el).data('symbol')) {
|
||||
var ref = $(el).data('symbol');
|
||||
$(newEl).data('ref', ref).data('symbol', ref);
|
||||
} else if (newEl.tagName == 'image') {
|
||||
} else if (newEl.tagName === 'image') {
|
||||
svgedit.utilities.preventClickDefault(newEl);
|
||||
}
|
||||
|
||||
|
|
|
@ -106,7 +106,7 @@ svgedit.units.getTypeMap = function () {
|
|||
//
|
||||
// Returns:
|
||||
// If a string/number was given, returns a Float. If an array, return a string
|
||||
// with comma-seperated floats
|
||||
// with comma-separated floats
|
||||
svgedit.units.shortFloat = function (val) {
|
||||
var digits = elementContainer_.getRoundDigits();
|
||||
if (!isNaN(val)) {
|
||||
|
|
|
@ -17,7 +17,7 @@ msgstr ""
|
|||
def printstr(flag, i, s):
|
||||
out.append('\n')
|
||||
if flag == '-x-svg-edit-both':
|
||||
out.append("# Enter the title first, then the contents, seperated by a pipe char (|)\n")
|
||||
out.append("# Enter the title first, then the contents, separated by a pipe char (|)\n")
|
||||
out.append("#, " + flag + '\n')
|
||||
out.append("msgid \"" + i + "\"" + '\n')
|
||||
out.append("msgstr \"" + s.replace('\n', '\\n') + "\"" + '\n')
|
||||
|
@ -36,4 +36,4 @@ for line in infile:
|
|||
pass # The line wasn't really a string
|
||||
|
||||
outfile.writelines(out)
|
||||
outfile.close()
|
||||
outfile.close()
|
||||
|
|
Loading…
Reference in New Issue