Merge pull request #439 from SVG-Edit/userExtensions

User extensions
master
JFH 2020-10-06 07:51:45 +02:00 committed by GitHub
commit b8d3a862c8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
105 changed files with 746 additions and 315 deletions

View File

@ -123,7 +123,15 @@ module.exports = {
'import/no-anonymous-default-export': 'off',
'node/no-unsupported-features/node-builtins': 'warn',
'prefer-exponentiation-operator': 'warn',
'node/no-unsupported-features/es-syntax': 'off'
'node/no-unsupported-features/es-syntax': 'off',
'no-unsanitized/method': [
'error',
{
escape: {
methods: ['encodeURIComponent', 'encodeURI']
}
}
]
},
overrides: [
// Locales have no need for importing outside of SVG-Edit

View File

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="428" height="20"><defs><style>text{font-size:11px;font-family:Verdana,DejaVu Sans,Geneva,sans-serif}text.shadow{fill:#010101;fill-opacity:.3}text.high{fill:#fff}</style><linearGradient id="smooth" x2="0" y2="100%"><stop offset="0" stop-color="#aaa" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><mask id="round"><rect width="100%" height="100%" rx="3" fill="#fff"/></mask></defs><g id="bg" mask="url(#round)"><path fill="green" stroke="#000" d="M0 0h120v20H0zM120 0h109v20H120zM229 0h87v20h-87zM316 0h112v20H316z"/><path fill="url(#smooth)" d="M0 0h428v20H0z"/></g><g id="fg"><text class="shadow" x="5.5" y="15">Statements 51.13%</text><text class="high" x="5" y="14">Statements 51.13%</text><text class="shadow" x="125.5" y="15">Branches 40.85%</text><text class="high" x="125" y="14">Branches 40.85%</text><text class="shadow" x="234.5" y="15">Lines 51.84%</text><text class="high" x="234" y="14">Lines 51.84%</text><text class="shadow" x="321.5" y="15">Functions 58.67%</text><text class="high" x="321" y="14">Functions 58.67%</text></g></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="428" height="20"><defs><style>text{font-size:11px;font-family:Verdana,DejaVu Sans,Geneva,sans-serif}text.shadow{fill:#010101;fill-opacity:.3}text.high{fill:#fff}</style><linearGradient id="smooth" x2="0" y2="100%"><stop offset="0" stop-color="#aaa" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><mask id="round"><rect width="100%" height="100%" rx="3" fill="#fff"/></mask></defs><g id="bg" mask="url(#round)"><path fill="green" stroke="#000" d="M0 0h120v20H0zM120 0h109v20H120zM229 0h87v20h-87zM316 0h112v20H316z"/><path fill="url(#smooth)" d="M0 0h428v20H0z"/></g><g id="fg"><text class="shadow" x="5.5" y="15">Statements 51.09%</text><text class="high" x="5" y="14">Statements 51.09%</text><text class="shadow" x="125.5" y="15">Branches 40.83%</text><text class="high" x="125" y="14">Branches 40.83%</text><text class="shadow" x="234.5" y="15">Lines 51.81%</text><text class="high" x="234" y="14">Lines 51.81%</text><text class="shadow" x="321.5" y="15">Functions 58.54%</text><text class="high" x="321" y="14">Functions 58.54%</text></g></svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -38,7 +38,7 @@ describe('contextmenu', function () {
});
it('Test svgedit.contextmenu adds valid menu item', function () {
const validItem = {id: 'valid', label: 'anicelabel', action () { /* */ }};
const validItem = {id: 'valid', label: 'anicelabel', action () { /* empty fn */ }};
contextmenu.add(validItem);
assert.ok(contextmenu.hasCustomHandler('valid'), 'Valid menu item is added.');
@ -46,8 +46,8 @@ describe('contextmenu', function () {
});
it('Test svgedit.contextmenu rejects valid duplicate menu item id', function () {
const validItem1 = {id: 'valid', label: 'anicelabel', action () { /**/ }};
const validItem2 = {id: 'valid', label: 'anicelabel', action () { /**/ }};
const validItem1 = {id: 'valid', label: 'anicelabel', action () { /* empty fn */ }};
const validItem2 = {id: 'valid', label: 'anicelabel', action () { /* empty fn */ }};
contextmenu.add(validItem1);
assert.throws(

View File

@ -44,7 +44,7 @@ describe('draw.Drawing', function () {
const getCurrentDrawing = function () {
return currentDrawing_;
};
const setCurrentGroup = (cg) => { /* */ };
const setCurrentGroup = (cg) => { /* empty fn */ };
draw.init(
/**
* @implements {module:draw.DrawCanvasInit}
@ -149,7 +149,7 @@ describe('draw.Drawing', function () {
assert.equal(typeof draw, typeof {});
assert.ok(draw.Drawing);
assert.equal(typeof draw.Drawing, typeof function () { /* */ });
assert.equal(typeof draw.Drawing, typeof function () { /* empty fn */ });
});
it('Test document creation', function () {
@ -288,7 +288,7 @@ describe('draw.Drawing', function () {
it('Test getNumLayers', function () {
const drawing = new draw.Drawing(svg);
assert.equal(typeof drawing.getNumLayers, typeof function () { /* */ });
assert.equal(typeof drawing.getNumLayers, typeof function () { /* empty fn */ });
assert.equal(drawing.getNumLayers(), 0);
setupSVGWith3Layers(svg);
@ -304,7 +304,7 @@ describe('draw.Drawing', function () {
const drawing = new draw.Drawing(svg);
drawing.identifyLayers();
assert.equal(typeof drawing.hasLayer, typeof function () { /* */ });
assert.equal(typeof drawing.hasLayer, typeof function () { /* empty fn */ });
assert.ok(!drawing.hasLayer('invalid-layer'));
assert.ok(drawing.hasLayer(LAYER3));
@ -412,7 +412,7 @@ describe('draw.Drawing', function () {
drawing.identifyLayers();
assert.ok(drawing.getCurrentLayer);
assert.equal(typeof drawing.getCurrentLayer, typeof function () { /* */ });
assert.equal(typeof drawing.getCurrentLayer, typeof function () { /* empty fn */ });
assert.ok(drawing.getCurrentLayer());
assert.equal(drawing.getCurrentLayer(), drawing.all_layers[2].getGroup());
@ -425,7 +425,7 @@ describe('draw.Drawing', function () {
drawing.identifyLayers();
assert.ok(drawing.setCurrentLayer);
assert.equal(typeof drawing.setCurrentLayer, typeof function () { /* */ });
assert.equal(typeof drawing.setCurrentLayer, typeof function () { /* empty fn */ });
drawing.setCurrentLayer(LAYER2);
assert.equal(drawing.getCurrentLayerName(), LAYER2);
@ -451,7 +451,7 @@ describe('draw.Drawing', function () {
drawing.identifyLayers();
assert.ok(drawing.setCurrentLayerName);
assert.equal(typeof drawing.setCurrentLayerName, typeof function () { /* */ });
assert.equal(typeof drawing.setCurrentLayerName, typeof function () { /* empty fn */ });
const oldName = drawing.getCurrentLayerName();
const newName = 'New Name';
@ -473,9 +473,9 @@ describe('draw.Drawing', function () {
it('Test createLayer()', function () {
const mockHrService = {
startBatchCommand () { /**/ },
endBatchCommand () { /**/ },
insertElement () { /**/ }
startBatchCommand () { /* empty fn */ },
endBatchCommand () { /* empty fn */ },
insertElement () { /* empty fn */ }
};
addOwnSpies(mockHrService);
@ -484,7 +484,7 @@ describe('draw.Drawing', function () {
drawing.identifyLayers();
assert.ok(drawing.createLayer);
assert.equal(typeof drawing.createLayer, typeof function () { /* */ });
assert.equal(typeof drawing.createLayer, typeof function () { /* empty fn */ });
const NEW_LAYER_NAME = 'Layer A';
const layerG = drawing.createLayer(NEW_LAYER_NAME, mockHrService);
@ -503,10 +503,10 @@ describe('draw.Drawing', function () {
it('Test mergeLayer()', function () {
const mockHrService = {
startBatchCommand () { /**/ },
endBatchCommand () { /**/ },
moveElement () { /**/ },
removeElement () { /**/ }
startBatchCommand () { /* empty fn */ },
endBatchCommand () { /* empty fn */ },
moveElement () { /* empty fn */ },
removeElement () { /* empty fn */ }
};
addOwnSpies(mockHrService);
@ -519,7 +519,7 @@ describe('draw.Drawing', function () {
assert.equal(drawing.getCurrentLayer(), layers[2]);
assert.ok(drawing.mergeLayer);
assert.equal(typeof drawing.mergeLayer, typeof function () { /* */ });
assert.equal(typeof drawing.mergeLayer, typeof function () { /* empty fn */ });
drawing.mergeLayer(mockHrService);
@ -540,10 +540,10 @@ describe('draw.Drawing', function () {
it('Test mergeLayer() when no previous layer to merge', function () {
const mockHrService = {
startBatchCommand () { /**/ },
endBatchCommand () { /**/ },
moveElement () { /**/ },
removeElement () { /**/ }
startBatchCommand () { /* empty fn */ },
endBatchCommand () { /* empty fn */ },
moveElement () { /* empty fn */ },
removeElement () { /* empty fn */ }
};
addOwnSpies(mockHrService);
@ -573,10 +573,10 @@ describe('draw.Drawing', function () {
it('Test mergeAllLayers()', function () {
const mockHrService = {
startBatchCommand () { /**/ },
endBatchCommand () { /**/ },
moveElement () { /**/ },
removeElement () { /**/ }
startBatchCommand () { /* empty fn */ },
endBatchCommand () { /* empty fn */ },
moveElement () { /* empty fn */ },
removeElement () { /* empty fn */ }
};
addOwnSpies(mockHrService);
@ -591,7 +591,7 @@ describe('draw.Drawing', function () {
drawing.identifyLayers();
assert.ok(drawing.mergeAllLayers);
assert.equal(typeof drawing.mergeAllLayers, typeof function () { /* */ });
assert.equal(typeof drawing.mergeAllLayers, typeof function () { /* empty fn */ });
drawing.mergeAllLayers(mockHrService);
@ -616,9 +616,9 @@ describe('draw.Drawing', function () {
it('Test cloneLayer()', function () {
const mockHrService = {
startBatchCommand () { /**/ },
endBatchCommand () { /**/ },
insertElement () { /**/ }
startBatchCommand () { /* empty fn */ },
endBatchCommand () { /* empty fn */ },
insertElement () { /* empty fn */ }
};
addOwnSpies(mockHrService);
@ -630,7 +630,7 @@ describe('draw.Drawing', function () {
drawing.identifyLayers();
assert.ok(drawing.cloneLayer);
assert.equal(typeof drawing.cloneLayer, typeof function () { /* */ });
assert.equal(typeof drawing.cloneLayer, typeof function () { /* empty fn */ });
const clone = drawing.cloneLayer('clone', mockHrService);
@ -670,7 +670,7 @@ describe('draw.Drawing', function () {
drawing.identifyLayers();
assert.ok(drawing.getLayerVisibility);
assert.equal(typeof drawing.getLayerVisibility, typeof function () { /* */ });
assert.equal(typeof drawing.getLayerVisibility, typeof function () { /* empty fn */ });
assert.ok(drawing.getLayerVisibility(LAYER1));
assert.ok(drawing.getLayerVisibility(LAYER2));
assert.ok(drawing.getLayerVisibility(LAYER3));
@ -684,7 +684,7 @@ describe('draw.Drawing', function () {
drawing.identifyLayers();
assert.ok(drawing.setLayerVisibility);
assert.equal(typeof drawing.setLayerVisibility, typeof function () { /* */ });
assert.equal(typeof drawing.setLayerVisibility, typeof function () { /* empty fn */ });
drawing.setLayerVisibility(LAYER3, false);
drawing.setLayerVisibility(LAYER2, true);
@ -706,7 +706,7 @@ describe('draw.Drawing', function () {
drawing.identifyLayers();
assert.ok(drawing.getLayerOpacity);
assert.equal(typeof drawing.getLayerOpacity, typeof function () { /* */ });
assert.equal(typeof drawing.getLayerOpacity, typeof function () { /* empty fn */ });
assert.strictEqual(drawing.getLayerOpacity(LAYER1), 1.0);
assert.strictEqual(drawing.getLayerOpacity(LAYER2), 1.0);
assert.strictEqual(drawing.getLayerOpacity(LAYER3), 1.0);
@ -720,7 +720,7 @@ describe('draw.Drawing', function () {
drawing.identifyLayers();
assert.ok(drawing.setLayerOpacity);
assert.equal(typeof drawing.setLayerOpacity, typeof function () { /* */ });
assert.equal(typeof drawing.setLayerOpacity, typeof function () { /* empty fn */ });
drawing.setLayerOpacity(LAYER1, 0.4);
drawing.setLayerOpacity(LAYER2, 'invalid-string');

View File

@ -9,11 +9,11 @@ describe('history', function () {
// TODO(codedread): Write tests for handling history events.
// Mocked out methods.
transformlist.changeRemoveElementFromListMap((elem) => { /* */ });
transformlist.changeRemoveElementFromListMap((elem) => { /* empty fn */ });
utilities.mock({
getHref (elem) { return '#foo'; },
setHref (elem, val) { /* */ },
setHref (elem, val) { /* empty fn */ },
getRotationAngle (elem) { return 0; }
});
@ -26,10 +26,10 @@ describe('history', function () {
this.text = optText;
}
apply (handler) {
super.apply(handler, () => { /* */ });
super.apply(handler, () => { /* empty fn */ });
}
unapply (handler) {
super.unapply(handler, () => { /* */ });
super.unapply(handler, () => { /* empty fn */ });
}
elements () { return []; } // eslint-disable-line class-methods-use-this
}
@ -82,12 +82,12 @@ describe('history', function () {
assert.ok(hstory.RemoveElementCommand);
assert.ok(hstory.BatchCommand);
assert.ok(hstory.UndoManager);
assert.equal(typeof hstory.MoveElementCommand, typeof function () { /* */ });
assert.equal(typeof hstory.InsertElementCommand, typeof function () { /* */ });
assert.equal(typeof hstory.ChangeElementCommand, typeof function () { /* */ });
assert.equal(typeof hstory.RemoveElementCommand, typeof function () { /* */ });
assert.equal(typeof hstory.BatchCommand, typeof function () { /* */ });
assert.equal(typeof hstory.UndoManager, typeof function () { /* */ });
assert.equal(typeof hstory.MoveElementCommand, typeof function () { /* empty fn */ });
assert.equal(typeof hstory.InsertElementCommand, typeof function () { /* empty fn */ });
assert.equal(typeof hstory.ChangeElementCommand, typeof function () { /* empty fn */ });
assert.equal(typeof hstory.RemoveElementCommand, typeof function () { /* empty fn */ });
assert.equal(typeof hstory.BatchCommand, typeof function () { /* empty fn */ });
assert.equal(typeof hstory.UndoManager, typeof function () { /* empty fn */ });
});
it('Test UndoManager methods', function () {
@ -100,12 +100,12 @@ describe('history', function () {
assert.ok(undoMgr.getNextRedoCommandText);
assert.equal(typeof undoMgr, typeof {});
assert.equal(typeof undoMgr.addCommandToHistory, typeof function () { /* */ });
assert.equal(typeof undoMgr.getUndoStackSize, typeof function () { /* */ });
assert.equal(typeof undoMgr.getRedoStackSize, typeof function () { /* */ });
assert.equal(typeof undoMgr.resetUndoStack, typeof function () { /* */ });
assert.equal(typeof undoMgr.getNextUndoCommandText, typeof function () { /* */ });
assert.equal(typeof undoMgr.getNextRedoCommandText, typeof function () { /* */ });
assert.equal(typeof undoMgr.addCommandToHistory, typeof function () { /* empty fn */ });
assert.equal(typeof undoMgr.getUndoStackSize, typeof function () { /* empty fn */ });
assert.equal(typeof undoMgr.getRedoStackSize, typeof function () { /* empty fn */ });
assert.equal(typeof undoMgr.resetUndoStack, typeof function () { /* empty fn */ });
assert.equal(typeof undoMgr.getNextUndoCommandText, typeof function () { /* empty fn */ });
assert.equal(typeof undoMgr.getNextRedoCommandText, typeof function () { /* empty fn */ });
});
it('Test UndoManager.addCommandToHistory() function', function () {
@ -284,8 +284,8 @@ describe('history', function () {
let move = new hstory.MoveElementCommand(this.div3, this.div1, this.divparent);
assert.ok(move.unapply);
assert.ok(move.apply);
assert.equal(typeof move.unapply, typeof function () { /* */ });
assert.equal(typeof move.apply, typeof function () { /* */ });
assert.equal(typeof move.unapply, typeof function () { /* empty fn */ });
assert.equal(typeof move.apply, typeof function () { /* empty fn */ });
move.unapply();
assert.equal(this.divparent.firstElementChild, this.div3);
@ -330,8 +330,8 @@ describe('history', function () {
let insert = new hstory.InsertElementCommand(this.div3);
assert.ok(insert.unapply);
assert.ok(insert.apply);
assert.equal(typeof insert.unapply, typeof function () { /* */ });
assert.equal(typeof insert.apply, typeof function () { /* */ });
assert.equal(typeof insert.unapply, typeof function () { /* empty fn */ });
assert.equal(typeof insert.apply, typeof function () { /* empty fn */ });
insert.unapply();
assert.equal(this.divparent.childElementCount, 2);
@ -367,8 +367,8 @@ describe('history', function () {
let remove = new hstory.RemoveElementCommand(div6, null, this.divparent);
assert.ok(remove.unapply);
assert.ok(remove.apply);
assert.equal(typeof remove.unapply, typeof function () { /* */ });
assert.equal(typeof remove.apply, typeof function () { /* */ });
assert.equal(typeof remove.unapply, typeof function () { /* empty fn */ });
assert.equal(typeof remove.apply, typeof function () { /* empty fn */ });
remove.unapply();
assert.equal(this.divparent.childElementCount, 4);
@ -405,8 +405,8 @@ describe('history', function () {
{title: 'old title', class: 'foo'});
assert.ok(change.unapply);
assert.ok(change.apply);
assert.equal(typeof change.unapply, typeof function () { /* */ });
assert.equal(typeof change.apply, typeof function () { /* */ });
assert.equal(typeof change.unapply, typeof function () { /* empty fn */ });
assert.equal(typeof change.apply, typeof function () { /* empty fn */ });
change.unapply();
assert.equal(this.div1.getAttribute('title'), 'old title');
@ -476,8 +476,8 @@ describe('history', function () {
assert.ok(change.unapply);
assert.ok(change.apply);
assert.equal(typeof change.unapply, typeof function () { /* */ });
assert.equal(typeof change.apply, typeof function () { /* */ });
assert.equal(typeof change.unapply, typeof function () { /* empty fn */ });
assert.equal(typeof change.apply, typeof function () { /* empty fn */ });
change.unapply();
assert.equal(line.getAttribute('class'), 'oldClass');
@ -511,13 +511,13 @@ describe('history', function () {
batch.apply();
assert.equal(concatResult, 'abc');
MockCommand.prototype.apply = function () { /* */ };
MockCommand.prototype.apply = function () { /* empty fn */ };
MockCommand.prototype.unapply = function () { concatResult += this.text; };
concatResult = '';
assert.ok(!concatResult);
batch.unapply();
assert.equal(concatResult, 'cba');
MockCommand.prototype.unapply = function () { /* */ };
MockCommand.prototype.unapply = function () { /* empty fn */ };
});
});

View File

@ -11,9 +11,9 @@ describe('math', function () {
assert.ok(math.transformPoint);
assert.ok(math.isIdentity);
assert.ok(math.matrixMultiply);
assert.equal(typeof math.transformPoint, typeof function () { /* */ });
assert.equal(typeof math.isIdentity, typeof function () { /* */ });
assert.equal(typeof math.matrixMultiply, typeof function () { /* */ });
assert.equal(typeof math.transformPoint, typeof function () { /* empty fn */ });
assert.equal(typeof math.isIdentity, typeof function () { /* empty fn */ });
assert.equal(typeof math.matrixMultiply, typeof function () { /* empty fn */ });
});
it('Test svgedit.math.transformPoint() function', function () {

View File

@ -54,7 +54,7 @@ describe('recalculate', function () {
{
getSVGRoot () { return svg; },
getStartTransform () { return ''; },
setStartTransform () { /* */ }
setStartTransform () { /* empty fn */ }
}
);
}

View File

@ -81,10 +81,10 @@ describe('select', function () {
assert.ok(select.init);
assert.ok(select.getSelectorManager);
assert.equal(typeof select, typeof {});
assert.equal(typeof select.Selector, typeof function () { /* */ });
assert.equal(typeof select.SelectorManager, typeof function () { /* */ });
assert.equal(typeof select.init, typeof function () { /* */ });
assert.equal(typeof select.getSelectorManager, typeof function () { /* */ });
assert.equal(typeof select.Selector, typeof function () { /* empty fn */ });
assert.equal(typeof select.SelectorManager, typeof function () { /* empty fn */ });
assert.equal(typeof select.init, typeof function () { /* empty fn */ });
assert.equal(typeof select.getSelectorManager, typeof function () { /* empty fn */ });
});
it('Test Selector DOM structure', function () {

View File

@ -73,7 +73,7 @@ describe('svgtransformlist', function () {
const t = svgcontent.createSVGTransform();
assert.ok(t);
assert.ok(rxform.initialize);
assert.equal(typeof rxform.initialize, typeof function () { /* */ });
assert.equal(typeof rxform.initialize, typeof function () { /* empty fn */ });
rxform.initialize(t);
assert.equal(rxform.numberOfItems, 1);
assert.equal(cxform.numberOfItems, 0);
@ -96,8 +96,8 @@ describe('svgtransformlist', function () {
assert.ok(rxform.appendItem);
assert.ok(rxform.getItem);
assert.equal(typeof rxform.appendItem, typeof function () { /* */ });
assert.equal(typeof rxform.getItem, typeof function () { /* */ });
assert.equal(typeof rxform.appendItem, typeof function () { /* empty fn */ });
assert.equal(typeof rxform.getItem, typeof function () { /* empty fn */ });
rxform.appendItem(t1);
rxform.appendItem(t2);
@ -127,7 +127,7 @@ describe('svgtransformlist', function () {
const t1 = svgcontent.createSVGTransform(),
t2 = svgcontent.createSVGTransform();
assert.ok(rxform.removeItem);
assert.equal(typeof rxform.removeItem, typeof function () { /* */ });
assert.equal(typeof rxform.removeItem, typeof function () { /* empty fn */ });
rxform.appendItem(t1);
rxform.appendItem(t2);
@ -145,7 +145,7 @@ describe('svgtransformlist', function () {
const cxform = transformlist.getTransformList(circle);
assert.ok(rxform.replaceItem);
assert.equal(typeof rxform.replaceItem, typeof function () { /* */ });
assert.equal(typeof rxform.replaceItem, typeof function () { /* empty fn */ });
const t1 = svgcontent.createSVGTransform(),
t2 = svgcontent.createSVGTransform(),
@ -177,7 +177,7 @@ describe('svgtransformlist', function () {
const cxform = transformlist.getTransformList(circle);
assert.ok(rxform.insertItemBefore);
assert.equal(typeof rxform.insertItemBefore, typeof function () { /* */ });
assert.equal(typeof rxform.insertItemBefore, typeof function () { /* empty fn */ });
const t1 = svgcontent.createSVGTransform(),
t2 = svgcontent.createSVGTransform(),

View File

@ -49,7 +49,7 @@ describe('units', function () {
it('Test svgedit.units.shortFloat()', function () {
assert.ok(units.shortFloat);
assert.equal(typeof units.shortFloat, typeof function () { /* */ });
assert.equal(typeof units.shortFloat, typeof function () { /* empty fn */ });
const {shortFloat} = units;
assert.equal(shortFloat(0.00000001), 0);
@ -61,7 +61,7 @@ describe('units', function () {
it('Test svgedit.units.isValidUnit()', function () {
assert.ok(units.isValidUnit);
assert.equal(typeof units.isValidUnit, typeof function () { /* */ });
assert.equal(typeof units.isValidUnit, typeof function () { /* empty fn */ });
const {isValidUnit} = units;
assert.ok(isValidUnit('0'));
@ -85,7 +85,7 @@ describe('units', function () {
it('Test svgedit.units.convertUnit()', function () {
assert.ok(units.convertUnit);
assert.equal(typeof units.convertUnit, typeof function () { /* */ });
assert.equal(typeof units.convertUnit, typeof function () { /* empty fn */ });
// cm in default setup
assert.equal(units.convertUnit(42), 1.1113);
assert.equal(units.convertUnit(42, 'px'), 42);

View File

@ -28,7 +28,7 @@ describe('utilities', function () {
svgroot.append(elem);
return elem;
}
const mockPathActions = {resetOrientation () { /* */ }};
const mockPathActions = {resetOrientation () { /* empty fn */ }};
let mockHistorySubCommands = [];
const mockHistory = {
BatchCommand: class {
@ -101,7 +101,7 @@ describe('utilities', function () {
it('Test svgedit.utilities package', function () {
assert.ok(utilities);
assert.ok(utilities.toXml);
assert.equal(typeof utilities.toXml, typeof function () { /* */ });
assert.equal(typeof utilities.toXml, typeof function () { /* empty fn */ });
});
it('Test svgedit.utilities.toXml() function', function () {

View File

@ -24,7 +24,7 @@ let cbid = 0;
function getCallbackSetter (funcName) {
return function (...args) {
const that = this, // New callback
callbackID = this.send(funcName, args, function () { /* */ }); // The callback (currently it's nothing, but will be set later)
callbackID = this.send(funcName, args, function () { /* empty */ }); // The callback (currently it's nothing, but will be set later)
return function (newCallback) {
that.callbacks[callbackID] = newCallback; // Set callback

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -37,8 +37,8 @@ const ns = {
if (!window.console) {
window.console = {
log (str) { /* */ },
dir (str) { /* */ }
log (str) { /* empty fn */ },
dir (str) { /* empty fn */ }
};
}

View File

@ -24,7 +24,7 @@ let cbid = 0;
function getCallbackSetter (funcName) {
return function (...args) {
const that = this, // New callback
callbackID = this.send(funcName, args, function () { /* */ }); // The callback (currently it's nothing, but will be set later)
callbackID = this.send(funcName, args, function () { /* empty */ }); // The callback (currently it's nothing, but will be set later)
return function (newCallback) {
that.callbacks[callbackID] = newCallback; // Set callback

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -37,8 +37,8 @@ const ns = {
if (!window.console) {
window.console = {
log (str) { /* */ },
dir (str) { /* */ }
log (str) { /* empty fn */ },
dir (str) { /* empty fn */ }
};
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

584
package-lock.json generated
View File

@ -1848,12 +1848,12 @@
}
},
"debug": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
"integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
"integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
"dev": true,
"requires": {
"ms": "^2.1.1"
"ms": "2.1.2"
}
},
"espree": {
@ -3083,9 +3083,9 @@
}
},
"@types/babel__core": {
"version": "7.1.9",
"resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.9.tgz",
"integrity": "sha512-sY2RsIJ5rpER1u3/aQ8OFSI7qGIy8o1NEEbgb2UaJcvOtXOMpd39ko723NBpjQFg9SIX7TXtjejZVGeIMLhoOw==",
"version": "7.1.10",
"resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.10.tgz",
"integrity": "sha512-x8OM8XzITIMyiwl5Vmo2B1cR1S1Ipkyv4mdlbJjMa1lmuKvKY9FrBbEANIaMlnWn5Rf7uO+rC/VgYabNkE17Hw==",
"dev": true,
"requires": {
"@babel/parser": "^7.1.0",
@ -3096,18 +3096,18 @@
}
},
"@types/babel__generator": {
"version": "7.6.1",
"resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.1.tgz",
"integrity": "sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew==",
"version": "7.6.2",
"resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.2.tgz",
"integrity": "sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==",
"dev": true,
"requires": {
"@babel/types": "^7.0.0"
}
},
"@types/babel__template": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.0.2.tgz",
"integrity": "sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg==",
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.0.3.tgz",
"integrity": "sha512-uCoznIPDmnickEi6D0v11SBpW0OuVqHJCa7syXqQHy5uktSCreIlt0iglsCnmvz8yCb38hGcWeseA8cWJSwv5Q==",
"dev": true,
"requires": {
"@babel/parser": "^7.1.0",
@ -3115,9 +3115,9 @@
}
},
"@types/babel__traverse": {
"version": "7.0.13",
"resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.13.tgz",
"integrity": "sha512-i+zS7t6/s9cdQvbqKDARrcbrPvtJGlbYsMkazo03nTAK3RX9FNrLllXys22uiTGJapPOTZTQ35nHh4ISph4SLQ==",
"version": "7.0.15",
"resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.15.tgz",
"integrity": "sha512-Pzh9O3sTK8V6I1olsXpCfj2k/ygO2q1X0vhhnDrEQyYLHZesWz+zMZMVcwXLCYf0U36EtmyYaFGPfXlTtDHe3A==",
"dev": true,
"requires": {
"@babel/types": "^7.3.0"
@ -3140,9 +3140,9 @@
"dev": true
},
"@types/browserslist-useragent": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@types/browserslist-useragent/-/browserslist-useragent-3.0.0.tgz",
"integrity": "sha512-ZBvKzg3yyWNYEkwxAzdmUzp27sFvw+1m080/+2lwrt+eltNefn1f4fnpMyrjOla31p8zLleCYqQXw+3EETfn0w==",
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/@types/browserslist-useragent/-/browserslist-useragent-3.0.1.tgz",
"integrity": "sha512-EI/mKugA9lVyR8TXSZv0TygeUOpFOP7MKBgJ99JJZKBKVfLH3kHB9alT0s5KgYHup1c1jw6N+XQHlXyWspKmNw==",
"dev": true
},
"@types/caniuse-api": {
@ -3230,9 +3230,9 @@
}
},
"@types/express": {
"version": "4.17.7",
"resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.7.tgz",
"integrity": "sha512-dCOT5lcmV/uC2J9k0rPafATeeyz+99xTt54ReX11/LObZgfzJqZNcW27zGhYyX+9iSEGXGt5qLPwRSvBZcLvtQ==",
"version": "4.17.8",
"resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.8.tgz",
"integrity": "sha512-wLhcKh3PMlyA2cNAB9sjM1BntnhPMiM0JOBwPBqttjHev2428MLEB4AYVN+d8s2iyCVZac+o41Pflm/ZH5vLXQ==",
"dev": true,
"requires": {
"@types/body-parser": "*",
@ -3242,9 +3242,9 @@
}
},
"@types/express-serve-static-core": {
"version": "4.17.9",
"resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.9.tgz",
"integrity": "sha512-DG0BYg6yO+ePW+XoDENYz8zhNGC3jDDEpComMYn7WJc4mY1Us8Rw9ax2YhJXxpyk2SF47PQAoQ0YyVT1a0bEkA==",
"version": "4.17.13",
"resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.13.tgz",
"integrity": "sha512-RgDi5a4nuzam073lRGKTUIaL3eF2+H7LJvJ8eUnCI0wA6SNjXc44DCmWNiTLs/AZ7QlsFWZiw/gTG3nSQGL0fA==",
"dev": true,
"requires": {
"@types/node": "*",
@ -3366,9 +3366,9 @@
}
},
"@types/koa__cors": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/@types/koa__cors/-/koa__cors-3.0.1.tgz",
"integrity": "sha512-loqZNXliley8kncc4wrX9KMqLGN6YfiaO3a3VFX+yVkkXJwOrZU4lipdudNjw5mFyC+5hd7h9075hQWcVVpeOg==",
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/@types/koa__cors/-/koa__cors-3.0.2.tgz",
"integrity": "sha512-gBetQR0DJ9JTG1YQoW33BADHCrDPJGiJUKUUcEPJwW1A2unzpIMhorEpXB6eMaaXTaqHLemcGnq3RmH9XaryRQ==",
"dev": true,
"requires": {
"@types/koa": "*"
@ -3441,9 +3441,9 @@
"dev": true
},
"@types/qs": {
"version": "6.9.4",
"resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.4.tgz",
"integrity": "sha512-+wYo+L6ZF6BMoEjtf8zB2esQsqdV6WsjRK/GP9WOgLPrq87PbNWgIxS76dS5uvl/QXtHGakZmwTznIfcPXcKlQ==",
"version": "6.9.5",
"resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.5.tgz",
"integrity": "sha512-/JHkVHtx/REVG0VVToGRGH2+23hsYLHdyG+GrvoUGlGAd0ErauXDyvHtRI/7H7mzLm+tBCKA7pfcpkQ1lf58iQ==",
"dev": true
},
"@types/raf": {
@ -3477,9 +3477,9 @@
}
},
"@types/sinonjs__fake-timers": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.1.tgz",
"integrity": "sha512-yYezQwGWty8ziyYLdZjwxyMb0CZR49h8JALHGrxjQHWlqGgc8kLdHEgWrgL0uZ29DMvEVBDnHU2Wg36zKSIUtA==",
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.2.tgz",
"integrity": "sha512-dIPoZ3g5gcx9zZEszaxLSVTvMReD3xxyyDnQUjA6IYDG9Ba2AV0otMPs+77sG9ojB4Qr2N2Vk5RnKeuA0X/0bg==",
"dev": true
},
"@types/sizzle": {
@ -6692,9 +6692,9 @@
"dev": true
},
"copyfiles": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.3.0.tgz",
"integrity": "sha512-73v7KFuDFJ/ofkQjZBMjMBFWGgkS76DzXvBMUh7djsMOE5EELWtAO/hRB6Wr5Vj5Zg+YozvoHemv0vnXpqxmOQ==",
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.4.0.tgz",
"integrity": "sha512-yGjpR3yjQdxccW8EcJ4a7ZCA6wGER6/Q2Y+b7bXbVxGeSHBf93i9d7MzTsx+VV1CpMKQa3v4ThZfXBcltMzl0w==",
"dev": true,
"requires": {
"glob": "^7.0.5",
@ -6702,6 +6702,7 @@
"mkdirp": "^1.0.4",
"noms": "0.0.0",
"through2": "^2.0.1",
"untildify": "^4.0.0",
"yargs": "^15.3.1"
},
"dependencies": {
@ -7208,9 +7209,9 @@
}
},
"cypress": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/cypress/-/cypress-5.2.0.tgz",
"integrity": "sha512-9S2spcrpIXrQ+CQIKHsjRoLQyRc2ehB06clJXPXXp1zyOL/uZMM3Qc20ipNki4CcNwY0nBTQZffPbRpODeGYQg==",
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/cypress/-/cypress-5.3.0.tgz",
"integrity": "sha512-XgebyqL7Th6/8YenE1ddb7+d4EiCG2Jvg/5c8+HPfFFY/gXnOVhoCVUU3KW8qg3JL7g0B+iJbHd5hxuCqbd1RQ==",
"dev": true,
"requires": {
"@cypress/listr-verbose-renderer": "^0.4.1",
@ -7306,12 +7307,12 @@
"dev": true
},
"debug": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
"integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
"integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
"dev": true,
"requires": {
"ms": "^2.1.1"
"ms": "2.1.2"
}
},
"fs-extra": {
@ -7864,6 +7865,37 @@
"integrity": "sha512-/nt74Rm+PcfnirXGEdhZleTwGC2LMnuKTeeTIlI82xb5loBBoXNYzr2ezCroPSMtilK8EZIfcNZwOcHN+ib1Lg==",
"dev": true
},
"dot-case": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.3.tgz",
"integrity": "sha512-7hwEmg6RiSQfm/GwPL4AAWXKy3YNNZA3oFv2Pdiey0mwkRCPZ9x6SZbkLcn8Ma5PYeVokzoD4Twv2n7LKp5WeA==",
"dev": true,
"requires": {
"no-case": "^3.0.3",
"tslib": "^1.10.0"
},
"dependencies": {
"lower-case": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz",
"integrity": "sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==",
"dev": true,
"requires": {
"tslib": "^1.10.0"
}
},
"no-case": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz",
"integrity": "sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw==",
"dev": true,
"requires": {
"lower-case": "^2.0.1",
"tslib": "^1.10.0"
}
}
}
},
"dot-prop": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz",
@ -8179,9 +8211,9 @@
}
},
"es-dev-server": {
"version": "1.57.4",
"resolved": "https://registry.npmjs.org/es-dev-server/-/es-dev-server-1.57.4.tgz",
"integrity": "sha512-GNstq4VeNmkon9W4dABCC3e3540cWVmhsnO4d8axBSgk0D4HQH/t2NqM4o9Qvq4/z9NMAqW1CazmvuFdl8oqKg==",
"version": "1.57.7",
"resolved": "https://registry.npmjs.org/es-dev-server/-/es-dev-server-1.57.7.tgz",
"integrity": "sha512-ph90lCbyTvHsC/zbidIXvCYv+B1ZDzWhgG4RWKVT0FLD7t3LA2Ya8PIVcVWY/iVsYQNrIitPdi4mk/El2mEfkQ==",
"dev": true,
"requires": {
"@babel/core": "^7.11.1",
@ -8196,7 +8228,7 @@
"@babel/plugin-transform-template-literals": "^7.8.3",
"@babel/preset-env": "^7.9.0",
"@koa/cors": "^3.1.0",
"@open-wc/building-utils": "^2.18.1",
"@open-wc/building-utils": "^2.18.2",
"@rollup/plugin-node-resolve": "^7.1.1",
"@rollup/pluginutils": "^3.0.0",
"@types/babel__core": "^7.1.3",
@ -8240,7 +8272,7 @@
"open": "^7.0.3",
"parse5": "^5.1.1",
"path-is-inside": "^1.0.2",
"polyfills-loader": "^1.7.1",
"polyfills-loader": "^1.7.3",
"portfinder": "^1.0.21",
"rollup": "^2.7.2",
"strip-ansi": "^5.2.0",
@ -8250,6 +8282,40 @@
"whatwg-url": "^7.0.0"
},
"dependencies": {
"@open-wc/building-utils": {
"version": "2.18.2",
"resolved": "https://registry.npmjs.org/@open-wc/building-utils/-/building-utils-2.18.2.tgz",
"integrity": "sha512-oE9cG9X4zpqm9OnQ2s+aaK7pAa8v3wt0YJBhZT3RisoKp/Va4kmsNBTjW2LPkHVK5N0VvPYukS3ey8S53e9ssQ==",
"dev": true,
"requires": {
"@babel/core": "^7.11.1",
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
"@webcomponents/shadycss": "^1.9.4",
"@webcomponents/webcomponentsjs": "^2.4.0",
"arrify": "^2.0.1",
"browserslist": "^4.9.1",
"chokidar": "^3.0.0",
"clean-css": "^4.2.1",
"clone": "^2.1.2",
"core-js-bundle": "^3.6.0",
"deepmerge": "^4.2.2",
"es-module-shims": "^0.4.6",
"html-minifier-terser": "^5.1.1",
"lru-cache": "^5.1.1",
"minimatch": "^3.0.4",
"parse5": "^5.1.1",
"path-is-inside": "^1.0.2",
"regenerator-runtime": "^0.13.3",
"resolve": "^1.11.1",
"rimraf": "^3.0.2",
"shady-css-scoped-element": "^0.0.2",
"systemjs": "^6.3.1",
"terser": "^4.6.7",
"valid-url": "^1.0.9",
"whatwg-fetch": "^3.0.0",
"whatwg-url": "^7.0.0"
}
},
"@rollup/plugin-node-resolve": {
"version": "7.1.3",
"resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz",
@ -8288,6 +8354,12 @@
"picomatch": "^2.0.4"
}
},
"arrify": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
"integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==",
"dev": true
},
"binary-extensions": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz",
@ -8319,6 +8391,12 @@
"readdirp": "~3.4.0"
}
},
"commander": {
"version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
"dev": true
},
"fill-range": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
@ -8383,6 +8461,12 @@
"picomatch": "^2.2.1"
}
},
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
},
"strip-ansi": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
@ -8392,6 +8476,17 @@
"ansi-regex": "^4.1.0"
}
},
"terser": {
"version": "4.8.0",
"resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz",
"integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==",
"dev": true,
"requires": {
"commander": "^2.20.0",
"source-map": "~0.6.1",
"source-map-support": "~0.5.12"
}
},
"to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@ -8585,9 +8680,9 @@
}
},
"es-module-lexer": {
"version": "0.3.24",
"resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.3.24.tgz",
"integrity": "sha512-jm/i7KdJtaMDle921xIsA/MQQOGuZ6goYxhlV+k+gQNI7FtP4N6jknrmJvj++3ODpiyFGwQ4PIstJfHJQJNc+g==",
"version": "0.3.25",
"resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.3.25.tgz",
"integrity": "sha512-H9VoFD5H9zEfiOX2LeTWDwMvAbLqcAyA2PIb40TOAvGpScOjit02oTGWgIh+M0rx2eJOKyJVM9wtpKFVgnyC3A==",
"dev": true
},
"es-module-shims": {
@ -8702,9 +8797,9 @@
}
},
"eslint": {
"version": "7.9.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-7.9.0.tgz",
"integrity": "sha512-V6QyhX21+uXp4T+3nrNfI3hQNBDa/P8ga7LoQOenwrlEFXrEnUEE+ok1dMtaS3b6rmLXhT1TkTIsG75HMLbknA==",
"version": "7.10.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-7.10.0.tgz",
"integrity": "sha512-BDVffmqWl7JJXqCjAK6lWtcQThZB/aP1HXSH1JKwGwv0LQEdvpR7qzNrUT487RM39B5goWuboFad5ovMBmD8yA==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.0.0",
@ -8715,7 +8810,7 @@
"debug": "^4.0.1",
"doctrine": "^3.0.0",
"enquirer": "^2.3.5",
"eslint-scope": "^5.1.0",
"eslint-scope": "^5.1.1",
"eslint-utils": "^2.1.0",
"eslint-visitor-keys": "^1.3.0",
"espree": "^7.3.0",
@ -8782,12 +8877,22 @@
"dev": true
},
"debug": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
"integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
"integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
"dev": true,
"requires": {
"ms": "^2.1.1"
"ms": "2.1.2"
}
},
"eslint-scope": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
"integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
"dev": true,
"requires": {
"esrecurse": "^4.3.0",
"estraverse": "^4.1.1"
}
},
"eslint-utils": {
@ -8810,6 +8915,23 @@
"eslint-visitor-keys": "^1.3.0"
}
},
"esrecurse": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
"integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
"dev": true,
"requires": {
"estraverse": "^5.2.0"
},
"dependencies": {
"estraverse": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
"integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
"dev": true
}
}
},
"glob-parent": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
@ -8941,9 +9063,9 @@
}
},
"eslint-config-ash-nazg": {
"version": "22.7.0",
"resolved": "https://registry.npmjs.org/eslint-config-ash-nazg/-/eslint-config-ash-nazg-22.7.0.tgz",
"integrity": "sha512-dT3gFhXigIfNi5EAHBcSxDCY4HGHHTjcjWcpIHoQGk7l11fVmUKQ5JwsEeIpv5SoFFHSBAqaJIqEkWKD3d0EFg==",
"version": "22.8.0",
"resolved": "https://registry.npmjs.org/eslint-config-ash-nazg/-/eslint-config-ash-nazg-22.8.0.tgz",
"integrity": "sha512-MKl2kW6cbH28nMs9MAGcg10PB3YGpUenYLpbHKBpCNa1jjN3Q/SHQTm0VDgHO7KyczJjmLpZDN8rfRpmegbVsQ==",
"dev": true
},
"eslint-config-standard": {
@ -9115,9 +9237,9 @@
}
},
"eslint-plugin-cypress": {
"version": "2.11.1",
"resolved": "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-2.11.1.tgz",
"integrity": "sha512-MxMYoReSO5+IZMGgpBZHHSx64zYPSPTpXDwsgW7ChlJTF/sA+obqRbHplxD6sBStE+g4Mi0LCLkG4t9liu//mQ==",
"version": "2.11.2",
"resolved": "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-2.11.2.tgz",
"integrity": "sha512-1SergF1sGbVhsf7MYfOLiBhdOg6wqyeV9pXUAIDIffYTGMN3dTBQS9nFAzhLsHhO+Bn0GaVM1Ecm71XUidQ7VA==",
"dev": true,
"requires": {
"globals": "^11.12.0"
@ -9167,9 +9289,9 @@
}
},
"eslint-plugin-import": {
"version": "2.22.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.0.tgz",
"integrity": "sha512-66Fpf1Ln6aIS5Gr/55ts19eUuoDhAbZgnr6UxK5hbDx6l/QgQgx61AePq+BV4PP2uXQFClgMVzep5zZ94qqsxg==",
"version": "2.22.1",
"resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz",
"integrity": "sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw==",
"dev": true,
"requires": {
"array-includes": "^3.1.1",
@ -9177,7 +9299,7 @@
"contains-path": "^0.1.0",
"debug": "^2.6.9",
"doctrine": "1.5.0",
"eslint-import-resolver-node": "^0.3.3",
"eslint-import-resolver-node": "^0.3.4",
"eslint-module-utils": "^2.6.0",
"has": "^1.0.3",
"minimatch": "^3.0.4",
@ -9200,9 +9322,9 @@
}
},
"eslint-plugin-jsdoc": {
"version": "30.5.1",
"resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-30.5.1.tgz",
"integrity": "sha512-cY3YNxdhFcQVkcQLnZw/iZGsTPMuWa9yWZclorMWkjdHprBQX0TMWMEcmJYM3IjHp1HJr7aD0Z0sCRifEBhnzg==",
"version": "30.6.3",
"resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-30.6.3.tgz",
"integrity": "sha512-RnyM+a3SKRfPs/jqO2qOGAEZnOJT2dOhiwhBlYVp8/yRUUBNPlvkwZm0arrnyFKvfZX6WqSwlK5OcNnM5W1Etg==",
"dev": true,
"requires": {
"comment-parser": "^0.7.6",
@ -9215,12 +9337,12 @@
},
"dependencies": {
"debug": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
"integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
"integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
"dev": true,
"requires": {
"ms": "^2.1.1"
"ms": "2.1.2"
}
},
"lodash": {
@ -9291,9 +9413,9 @@
}
},
"eslint-plugin-no-unsanitized": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/eslint-plugin-no-unsanitized/-/eslint-plugin-no-unsanitized-3.1.2.tgz",
"integrity": "sha512-KPShfliA3Uy9qqwQx35P1fwIOeJjZkb0FbMMUFztRYRposzaynsM8JCEb952fqkidROl1kpqY80uSvn+TcWkQQ==",
"version": "3.1.4",
"resolved": "https://registry.npmjs.org/eslint-plugin-no-unsanitized/-/eslint-plugin-no-unsanitized-3.1.4.tgz",
"integrity": "sha512-WF1+eZo2Sh+bQNjZuVNwT0dA61zuJORsLh+1Sww7+O6GOPw+WPWIIRfTWNqrmaXaDMhM4SXAqYPcNlhRMiH13g==",
"dev": true
},
"eslint-plugin-no-use-extend-native": {
@ -10905,6 +11027,68 @@
}
}
},
"html-minifier-terser": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz",
"integrity": "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==",
"dev": true,
"requires": {
"camel-case": "^4.1.1",
"clean-css": "^4.2.3",
"commander": "^4.1.1",
"he": "^1.2.0",
"param-case": "^3.0.3",
"relateurl": "^0.2.7",
"terser": "^4.6.3"
},
"dependencies": {
"camel-case": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.1.tgz",
"integrity": "sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q==",
"dev": true,
"requires": {
"pascal-case": "^3.1.1",
"tslib": "^1.10.0"
}
},
"param-case": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.3.tgz",
"integrity": "sha512-VWBVyimc1+QrzappRs7waeN2YmoZFCGXWASRYX1/rGHtXqEcrGEIDm+jqIwFa2fRXNgQEwrxaYuIrX0WcAguTA==",
"dev": true,
"requires": {
"dot-case": "^3.0.3",
"tslib": "^1.10.0"
}
},
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
},
"terser": {
"version": "4.8.0",
"resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz",
"integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==",
"dev": true,
"requires": {
"commander": "^2.20.0",
"source-map": "~0.6.1",
"source-map-support": "~0.5.12"
},
"dependencies": {
"commander": {
"version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
"dev": true
}
}
}
}
},
"html2canvas": {
"version": "1.0.0-rc.7",
"resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.0.0-rc.7.tgz",
@ -12783,12 +12967,12 @@
},
"dependencies": {
"debug": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
"integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
"integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
"dev": true,
"requires": {
"ms": "^2.1.1"
"ms": "2.1.2"
}
},
"ms": {
@ -16563,6 +16747,37 @@
"integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
"dev": true
},
"pascal-case": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.1.tgz",
"integrity": "sha512-XIeHKqIrsquVTQL2crjq3NfJUxmdLasn3TYOU0VBM+UX2a6ztAWBlJQBePLGY7VHW8+2dRadeIPK5+KImwTxQA==",
"dev": true,
"requires": {
"no-case": "^3.0.3",
"tslib": "^1.10.0"
},
"dependencies": {
"lower-case": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz",
"integrity": "sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==",
"dev": true,
"requires": {
"tslib": "^1.10.0"
}
},
"no-case": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz",
"integrity": "sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw==",
"dev": true,
"requires": {
"lower-case": "^2.0.1",
"tslib": "^1.10.0"
}
}
}
},
"pascalcase": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
@ -16731,20 +16946,19 @@
"dev": true
},
"polyfills-loader": {
"version": "1.7.1",
"resolved": "https://registry.npmjs.org/polyfills-loader/-/polyfills-loader-1.7.1.tgz",
"integrity": "sha512-+cClGOZNQtWVedt2a2Ku9r6ejfnhQFbuaSPtlaGLl2R9ESWaJNoq8r29d0BTpAgrEX/xXsoh2YHgamNugW6Ahw==",
"version": "1.7.3",
"resolved": "https://registry.npmjs.org/polyfills-loader/-/polyfills-loader-1.7.3.tgz",
"integrity": "sha512-+Gc2MiQ/BDUVJ2uGjKZHK7OnursSVWs1nWi93KodwnkSA+W+oY8yNHZPOm+64vDda9nJXa/XMQqYCAO+RjBadg==",
"dev": true,
"requires": {
"@babel/core": "^7.11.1",
"@open-wc/building-utils": "^2.18.1",
"@open-wc/building-utils": "^2.18.2",
"@webcomponents/webcomponentsjs": "^2.4.0",
"abortcontroller-polyfill": "^1.4.0",
"core-js-bundle": "^3.6.0",
"deepmerge": "^4.2.2",
"dynamic-import-polyfill": "^0.1.1",
"es-module-shims": "^0.4.6",
"html-minifier": "^4.0.0",
"intersection-observer": "^0.7.0",
"parse5": "^5.1.1",
"regenerator-runtime": "^0.13.3",
@ -16754,12 +16968,157 @@
"whatwg-fetch": "^3.0.0"
},
"dependencies": {
"@open-wc/building-utils": {
"version": "2.18.2",
"resolved": "https://registry.npmjs.org/@open-wc/building-utils/-/building-utils-2.18.2.tgz",
"integrity": "sha512-oE9cG9X4zpqm9OnQ2s+aaK7pAa8v3wt0YJBhZT3RisoKp/Va4kmsNBTjW2LPkHVK5N0VvPYukS3ey8S53e9ssQ==",
"dev": true,
"requires": {
"@babel/core": "^7.11.1",
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
"@webcomponents/shadycss": "^1.9.4",
"@webcomponents/webcomponentsjs": "^2.4.0",
"arrify": "^2.0.1",
"browserslist": "^4.9.1",
"chokidar": "^3.0.0",
"clean-css": "^4.2.1",
"clone": "^2.1.2",
"core-js-bundle": "^3.6.0",
"deepmerge": "^4.2.2",
"es-module-shims": "^0.4.6",
"html-minifier-terser": "^5.1.1",
"lru-cache": "^5.1.1",
"minimatch": "^3.0.4",
"parse5": "^5.1.1",
"path-is-inside": "^1.0.2",
"regenerator-runtime": "^0.13.3",
"resolve": "^1.11.1",
"rimraf": "^3.0.2",
"shady-css-scoped-element": "^0.0.2",
"systemjs": "^6.3.1",
"terser": "^4.6.7",
"valid-url": "^1.0.9",
"whatwg-fetch": "^3.0.0",
"whatwg-url": "^7.0.0"
}
},
"anymatch": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
"integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
"dev": true,
"requires": {
"normalize-path": "^3.0.0",
"picomatch": "^2.0.4"
}
},
"arrify": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
"integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==",
"dev": true
},
"binary-extensions": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz",
"integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==",
"dev": true
},
"braces": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"dev": true,
"requires": {
"fill-range": "^7.0.1"
}
},
"chokidar": {
"version": "3.4.2",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.2.tgz",
"integrity": "sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==",
"dev": true,
"requires": {
"anymatch": "~3.1.1",
"braces": "~3.0.2",
"fsevents": "~2.1.2",
"glob-parent": "~5.1.0",
"is-binary-path": "~2.1.0",
"is-glob": "~4.0.1",
"normalize-path": "~3.0.0",
"readdirp": "~3.4.0"
}
},
"commander": {
"version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
"dev": true
},
"fill-range": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"dev": true,
"requires": {
"to-regex-range": "^5.0.1"
}
},
"fsevents": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
"integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
"dev": true,
"optional": true
},
"glob-parent": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
"integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
"dev": true,
"requires": {
"is-glob": "^4.0.1"
}
},
"is-binary-path": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
"dev": true,
"requires": {
"binary-extensions": "^2.0.0"
}
},
"is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true
},
"lru-cache": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
"integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
"dev": true,
"requires": {
"yallist": "^3.0.2"
}
},
"punycode": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
"dev": true
},
"readdirp": {
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz",
"integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==",
"dev": true,
"requires": {
"picomatch": "^2.2.1"
}
},
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@ -16776,6 +17135,47 @@
"source-map": "~0.6.1",
"source-map-support": "~0.5.12"
}
},
"to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true,
"requires": {
"is-number": "^7.0.0"
}
},
"tr46": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz",
"integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=",
"dev": true,
"requires": {
"punycode": "^2.1.0"
}
},
"webidl-conversions": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
"integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==",
"dev": true
},
"whatwg-url": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz",
"integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==",
"dev": true,
"requires": {
"lodash.sortby": "^4.7.0",
"tr46": "^1.0.1",
"webidl-conversions": "^4.0.2"
}
},
"yallist": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
"dev": true
}
}
},
@ -17984,9 +18384,9 @@
}
},
"rollup": {
"version": "2.28.1",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.28.1.tgz",
"integrity": "sha512-DOtVoqOZt3+FjPJWLU8hDIvBjUylc9s6IZvy76XklxzcLvAQLtVAG/bbhsMhcWnYxC0TKKcf1QQ/tg29zeID0Q==",
"version": "2.28.2",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.28.2.tgz",
"integrity": "sha512-8txbsFBFLmm9Xdt4ByTOGa9Muonmc8MfNjnGAR8U8scJlF1ZW7AgNZa7aqBXaKtlvnYP/ab++fQIq9dB9NWUbg==",
"dev": true,
"requires": {
"fsevents": "~2.1.2"

View File

@ -159,36 +159,36 @@
"@rollup/plugin-replace": "^2.3.3",
"@rollup/plugin-url": "^5.0.1",
"babel-plugin-transform-object-rest-spread": "^7.0.0-beta.3",
"copyfiles": "^2.3.0",
"copyfiles": "^2.4.0",
"core-js-bundle": "^3.6.5",
"coveradge": "^0.6.0",
"cp-cli": "^2.0.0",
"cross-var": "^1.1.0",
"cypress": "^5.2.0",
"cypress": "^5.3.0",
"cypress-axe": "^0.8.1",
"cypress-multi-reporters": "^1.4.0",
"cypress-plugin-snapshots": "^1.4.4",
"deparam": "git+https://github.com/brettz9/deparam.git#updates",
"es-dev-commonjs-transformer": "^0.2.0",
"es-dev-server": "^1.57.4",
"es-dev-server": "^1.57.7",
"es-dev-server-rollup": "0.0.8",
"eslint": "^7.9.0",
"eslint-config-ash-nazg": "^22.7.0",
"eslint": "^7.10.0",
"eslint-config-ash-nazg": "^22.8.0",
"eslint-config-standard": "^14.1.1",
"eslint-plugin-array-func": "^3.1.7",
"eslint-plugin-chai-expect": "^2.2.0",
"eslint-plugin-chai-expect-keywords": "^2.0.1",
"eslint-plugin-chai-friendly": "^0.6.0",
"eslint-plugin-compat": "^3.8.0",
"eslint-plugin-cypress": "^2.11.1",
"eslint-plugin-cypress": "^2.11.2",
"eslint-plugin-eslint-comments": "^3.2.0",
"eslint-plugin-html": "^6.1.0",
"eslint-plugin-import": "^2.22.0",
"eslint-plugin-jsdoc": "^30.5.1",
"eslint-plugin-import": "^2.22.1",
"eslint-plugin-jsdoc": "^30.6.3",
"eslint-plugin-markdown": "^1.0.2",
"eslint-plugin-mocha": "^8.0.0",
"eslint-plugin-mocha-cleanup": "^1.8.0",
"eslint-plugin-no-unsanitized": "^3.1.2",
"eslint-plugin-no-unsanitized": "^3.1.4",
"eslint-plugin-no-use-extend-native": "^0.5.0",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^4.2.1",
@ -217,7 +217,7 @@
"remark-lint-ordered-list-marker-value": "^2.0.1",
"requirejs": "^2.3.6",
"rimraf": "^3.0.2",
"rollup": "2.28.1",
"rollup": "2.28.2",
"rollup-plugin-copy": "^3.3.0",
"rollup-plugin-filesize": "^9.0.2",
"rollup-plugin-node-polyfills": "^0.2.1",

View File

@ -24,7 +24,7 @@ let cbid = 0;
function getCallbackSetter (funcName) {
return function (...args) {
const that = this, // New callback
callbackID = this.send(funcName, args, function () { /* */ }); // The callback (currently it's nothing, but will be set later)
callbackID = this.send(funcName, args, function () { /* empty */ }); // The callback (currently it's nothing, but will be set later)
return function (newCallback) {
that.callbacks[callbackID] = newCallback; // Set callback

View File

@ -10,7 +10,7 @@
const loadExtensionTranslation = async function (lang) {
let translationModule;
try {
translationModule = await import(`./locale/${lang}.js`);
translationModule = await import(`./locale/${encodeURIComponent(lang)}.js`);
} catch (_error) {
// eslint-disable-next-line no-console
console.error(`Missing translation (${lang}) - using 'en'`);

View File

@ -10,7 +10,7 @@
const loadExtensionTranslation = async function (lang) {
let translationModule;
try {
translationModule = await import(`./locale/${lang}.js`);
translationModule = await import(`./locale/${encodeURIComponent(lang)}.js`);
} catch (_error) {
// eslint-disable-next-line no-console
console.error(`Missing translation (${lang}) - using 'en'`);

View File

@ -10,7 +10,7 @@
const loadExtensionTranslation = async function (lang) {
let translationModule;
try {
translationModule = await import(`./locale/${lang}.js`);
translationModule = await import(`./locale/${encodeURIComponent(lang)}.js`);
} catch (_error) {
// eslint-disable-next-line no-console
console.error(`Missing translation (${lang}) - using 'en'`);

View File

@ -10,7 +10,7 @@
const loadExtensionTranslation = async function (lang) {
let translationModule;
try {
translationModule = await import(`./locale/${lang}.js`);
translationModule = await import(`./locale/${encodeURIComponent(lang)}.js`);
} catch (_error) {
// eslint-disable-next-line no-console
console.error(`Missing translation (${lang}) - using 'en'`);

View File

@ -10,7 +10,7 @@
const loadExtensionTranslation = async function (lang) {
let translationModule;
try {
translationModule = await import(`./locale/${lang}.js`);
translationModule = await import(`./locale/${encodeURIComponent(lang)}.js`);
} catch (_error) {
// eslint-disable-next-line no-console
console.error(`Missing translation (${lang}) - using 'en'`);

View File

@ -10,7 +10,7 @@
const loadExtensionTranslation = async function (lang) {
let translationModule;
try {
translationModule = await import(`./locale/${lang}.js`);
translationModule = await import(`./locale/${encodeURIComponent(lang)}.js`);
} catch (_error) {
// eslint-disable-next-line no-console
console.error(`Missing translation (${lang}) - using 'en'`);

View File

@ -16,7 +16,7 @@
const loadExtensionTranslation = async function (lang) {
let translationModule;
try {
translationModule = await import(`./locale/${lang}.js`);
translationModule = await import(`./locale/${encodeURIComponent(lang)}.js`);
} catch (_error) {
// eslint-disable-next-line no-console
console.error(`Missing translation (${lang}) - using 'en'`);

View File

@ -10,7 +10,7 @@
const loadExtensionTranslation = async function (lang) {
let translationModule;
try {
translationModule = await import(`./locale/${lang}.js`);
translationModule = await import(`./locale/${encodeURIComponent(lang)}.js`);
} catch (_error) {
// eslint-disable-next-line no-console
console.error(`Missing translation (${lang}) - using 'en'`);

View File

@ -32,7 +32,7 @@
const loadExtensionTranslation = async function (lang) {
let translationModule;
try {
translationModule = await import(`./locale/${lang}.js`);
translationModule = await import(`./locale/${encodeURIComponent(lang)}.js`);
} catch (_error) {
// eslint-disable-next-line no-console
console.error(`Missing translation (${lang}) - using 'en'`);

View File

@ -11,7 +11,7 @@
const loadExtensionTranslation = async function (lang) {
let translationModule;
try {
translationModule = await import(`./locale/${lang}.js`);
translationModule = await import(`./locale/${encodeURIComponent(lang)}.js`);
} catch (_error) {
// eslint-disable-next-line no-console
console.error(`Missing translation (${lang}) - using 'en'`);

View File

@ -13,7 +13,7 @@
const loadExtensionTranslation = async function (lang) {
let translationModule;
try {
translationModule = await import(`./locale/${lang}.js`);
translationModule = await import(`./locale/${encodeURIComponent(lang)}.js`);
} catch (_error) {
// eslint-disable-next-line no-console
console.error(`Missing translation (${lang}) - using 'en'`);

View File

@ -9,7 +9,7 @@
const loadExtensionTranslation = async function (lang) {
let translationModule;
try {
translationModule = await import(`./locale/${lang}.js`);
translationModule = await import(`./locale/${encodeURIComponent(lang)}.js`);
} catch (_error) {
// eslint-disable-next-line no-console
console.error(`Missing translation (${lang}) - using 'en'`);

View File

@ -9,7 +9,7 @@
const loadExtensionTranslation = async function (lang) {
let translationModule;
try {
translationModule = await import(`./locale/${lang}.js`);
translationModule = await import(`./locale/${encodeURIComponent(lang)}.js`);
} catch (_error) {
// eslint-disable-next-line no-console
console.error(`Missing translation (${lang}) - using 'en'`);

View File

@ -12,7 +12,7 @@ import {Canvg as canvg} from 'canvg';
const loadExtensionTranslation = async function (lang) {
let translationModule;
try {
translationModule = await import(`./locale/${lang}.js`);
translationModule = await import(`./locale/${encodeURIComponent(lang)}.js`);
} catch (_error) {
// eslint-disable-next-line no-console
console.error(`Missing translation (${lang}) - using 'en'`);

View File

@ -6,7 +6,6 @@ export default {
init ({$}) {
const svgEditor = this;
const {
curConfig: {extPath},
canvas: svgCanvas
} = svgEditor;
/**
@ -17,7 +16,7 @@ export default {
const title = svgCanvas.getDocumentTitle();
return title.trim();
}
const saveSvgAction = extPath + 'savefile.php';
const saveSvgAction = './savefile.php';
svgEditor.setCustomHandlers({
save (win, data) {
const svg = '<?xml version="1.0" encoding="UTF-8"?>\n' + data,

View File

@ -11,7 +11,7 @@ import {Canvg as canvg} from 'canvg';
const loadExtensionTranslation = async function (lang) {
let translationModule;
try {
translationModule = await import(`./locale/${lang}.js`);
translationModule = await import(`./locale/${encodeURIComponent(lang)}.js`);
} catch (_error) {
// eslint-disable-next-line no-console
console.error(`Missing translation (${lang}) - using 'en'`);
@ -27,7 +27,6 @@ export default {
const strings = await loadExtensionTranslation(svgEditor.curPrefs.lang);
const {
curConfig: {
extPath,
avoidClientSide, // Deprecated
avoidClientSideDownload, avoidClientSideOpen
},
@ -76,8 +75,8 @@ export default {
return false;
}
const
saveSvgAction = extPath + 'filesave.php',
saveImgAction = extPath + 'filesave.php';
saveSvgAction = './filesave.php',
saveImgAction = './filesave.php';
// Create upload target (hidden iframe)
let cancelled = false;
@ -174,9 +173,9 @@ export default {
if (window.FileReader && !avoidClientSideOpen) { return; }
// Change these to appropriate script file
const openSvgAction = extPath + 'fileopen.php?type=load_svg';
const importSvgAction = extPath + 'fileopen.php?type=import_svg';
const importImgAction = extPath + 'fileopen.php?type=import_img';
const openSvgAction = './fileopen.php?type=load_svg';
const importSvgAction = './fileopen.php?type=import_svg';
const importImgAction = './fileopen.php?type=import_img';
// Set up function for PHP uploader to use
svgEditor.processFile = function (str64, type) {

View File

@ -10,7 +10,7 @@
const loadExtensionTranslation = async function (lang) {
let translationModule;
try {
translationModule = await import(`./locale/${lang}.js`);
translationModule = await import(`./locale/${encodeURIComponent(lang)}.js`);
} catch (_error) {
// eslint-disable-next-line no-console
console.error(`Missing translation (${lang}) - using 'en'`);

View File

@ -9,7 +9,7 @@
const loadExtensionTranslation = async function (lang) {
let translationModule;
try {
translationModule = await import(`./locale/${lang}.js`);
translationModule = await import(`./locale/${encodeURIComponent(lang)}.js`);
} catch (_error) {
// eslint-disable-next-line no-console
console.error(`Missing translation (${lang}) - using 'en'`);

View File

@ -22,7 +22,7 @@
const loadExtensionTranslation = async function (lang) {
let translationModule;
try {
translationModule = await import(`./locale/${lang}.js`);
translationModule = await import(`./locale/${encodeURIComponent(lang)}.js`);
} catch (_error) {
// eslint-disable-next-line no-console
console.error(`Missing translation (${lang}) - using 'en'`);

View File

@ -9,7 +9,7 @@
const loadExtensionTranslation = async function (lang) {
let translationModule;
try {
translationModule = await import(`./locale/${lang}.js`);
translationModule = await import(`./locale/${encodeURIComponent(lang)}.js`);
} catch (_error) {
// eslint-disable-next-line no-console
console.error(`Missing translation (${lang}) - using 'en'`);

Some files were not shown because too many files have changed in this diff Show More