- Linting (ESLint): Apply per latest ash-nazg (jsdoc: complete sentence descriptions)

- npm: Update devDeps
master
Brett Zamir 2019-12-31 15:27:16 +08:00
parent 22dda2c50b
commit d9d4d94976
87 changed files with 785 additions and 770 deletions

View File

@ -32,13 +32,13 @@ import './commands.js';
import '@cypress/fiddle';
/**
* COVERAGE
* COVERAGE.
* @see https://docs.cypress.io/guides/tooling/code-coverage.html#Install-the-plugin
*/
import '@cypress/code-coverage/support.js';
/**
* ACCESSIBILITY
* ACCESSIBILITY.
* @see https://www.npmjs.com/package/cypress-axe
*/
import 'cypress-axe';

2
dist/canvg.js vendored
View File

@ -243,7 +243,7 @@ var canvg = (function (exports) {
}
/**
* For parsing color values
* For parsing color values.
* @module RGBColor
* @author Stoyan Stefanov <sstoo@gmail.com>
* @see https://www.phpied.com/rgb-color-parser-in-javascript/

View File

@ -38,7 +38,7 @@ var svgEditorExtension_arrows = (function () {
}
/**
* ext-arrows.js
* @file ext-arrows.js
*
* @license MIT
*

View File

@ -38,7 +38,7 @@ var svgEditorExtension_closepath = (function () {
}
/**
* ext-closepath.js
* @file ext-closepath.js
*
* @license MIT
*

View File

@ -40,7 +40,7 @@ var svgEditorExtension_connector = (function () {
/* eslint-disable unicorn/no-fn-reference-in-iterator */
/**
* ext-connector.js
* @file ext-connector.js
*
* @license MIT
*

View File

@ -38,7 +38,7 @@ var svgEditorExtension_eyedropper = (function () {
}
/**
* ext-eyedropper.js
* @file ext-eyedropper.js
*
* @license MIT
*

View File

@ -38,7 +38,7 @@ var svgEditorExtension_foreignobject = (function () {
}
/**
* ext-foreignobject.js
* @file ext-foreignobject.js
*
* @license Apache-2.0
*

View File

@ -38,7 +38,7 @@ var svgEditorExtension_grid = (function () {
}
/**
* ext-grid.js
* @file ext-grid.js
*
* @license Apache-2.0
*

View File

@ -80,7 +80,7 @@ var svgEditorExtension_helloworld = (function () {
}
/**
* ext-helloworld.js
* @file ext-helloworld.js
*
* @license MIT
*

View File

@ -52,7 +52,7 @@ var svgEditorExtension_imagelib = (function () {
}
/**
* ext-imagelib.js
* @file ext-imagelib.js
*
* @license MIT
*

View File

@ -38,7 +38,7 @@ var svgEditorExtension_markers = (function () {
}
/**
* ext-markers.js
* @file ext-markers.js
*
* @license Apache-2.0
*

View File

@ -2,7 +2,7 @@ var svgEditorExtension_overview_window = (function () {
'use strict';
/**
* ext-overview_window.js
* @file ext-overview_window.js
*
* @license MIT
*

View File

@ -38,7 +38,7 @@ var svgEditorExtension_panning = (function () {
}
/**
* ext-panning.js
* @file ext-panning.js
*
* @license MIT
*

View File

@ -80,7 +80,7 @@ var svgEditorExtension_placemark = (function () {
}
/**
* ext-placemark.js
* @file ext-placemark.js
*
*
* @copyright 2010 CloudCanvas, Inc. All rights reserved

View File

@ -38,7 +38,7 @@ var svgEditorExtension_polygon = (function () {
}
/**
* ext-polygon.js
* @file ext-polygon.js
*
*
* @copyright 2010 CloudCanvas, Inc. All rights reserved

View File

@ -243,7 +243,7 @@ var svgEditorExtension_server_moinsave = (function () {
}
/**
* For parsing color values
* For parsing color values.
* @module RGBColor
* @author Stoyan Stefanov <sstoo@gmail.com>
* @see https://www.phpied.com/rgb-color-parser-in-javascript/

View File

@ -243,7 +243,7 @@ var svgEditorExtension_server_opensave = (function () {
}
/**
* For parsing color values
* For parsing color values.
* @module RGBColor
* @author Stoyan Stefanov <sstoo@gmail.com>
* @see https://www.phpied.com/rgb-color-parser-in-javascript/

View File

@ -80,7 +80,7 @@ var svgEditorExtension_shapes = (function () {
}
/**
* ext-shapes.js
* @file ext-shapes.js
*
* @license MIT
*

View File

@ -38,7 +38,7 @@ var svgEditorExtension_star = (function () {
}
/**
* ext-star.js
* @file ext-star.js
*
*
* @copyright 2010 CloudCanvas, Inc. All rights reserved

View File

@ -80,7 +80,7 @@ var svgEditorExtension_storage = (function () {
}
/**
* ext-storage.js
* @file ext-storage.js
*
* This extension allows automatic saving of the SVG canvas contents upon
* page unload (which can later be automatically retrieved upon future

View File

@ -38,7 +38,8 @@ var svgEditorExtension_webappfind = (function () {
}
/**
* Depends on Firefox add-on and executables from {@link https://github.com/brettz9/webappfind}
* Depends on Firefox add-on and executables from
* {@link https://github.com/brettz9/webappfind}.
* @author Brett Zamir
* @license MIT
* @todo See WebAppFind Readme for SVG-related todos

View File

@ -38,7 +38,7 @@ var svgEditorExtension_xdomain_messaging = (function () {
/**
* Should not be needed for same domain control (just call via child frame),
* but an API common for cross-domain and same domain use can be found
* in embedapi.js with a demo at embedapi.html
* in embedapi.js with a demo at embedapi.html.
*/
var extXdomainMessaging = {
name: 'xdomain-messaging',

248
dist/index-es.js vendored
View File

@ -266,13 +266,13 @@ document.addEventListener('touchend', touchHandler, true);
document.addEventListener('touchcancel', touchHandler, true);
/**
* Namespaces or tools therefor
* Namespaces or tools therefor.
* @module namespaces
* @license MIT
*/
/**
* Common namepaces constants in alpha order
* Common namepaces constants in alpha order.
* @enum {string}
* @type {PlainObject}
* @memberof module:namespaces
@ -2903,7 +2903,7 @@ var supportsNativeTransformLists = function supportsNativeTransformLists() {
};
/**
* jQuery module to work with SVG attributes
* A jQuery module to work with SVG attributes.
* @module jQueryAttr
* @license MIT
*/
@ -3073,14 +3073,14 @@ var listMap_ = {};
*/
/**
* (DOES NOT THROW DOMException, INDEX_SIZE_ERR)
* DOES NOT THROW DOMException, INDEX_SIZE_ERR.
* @function module:SVGTransformList.SVGEditTransformList#getItem
* @param {Integer} index unsigned long
* @returns {SVGTransform}
*/
/**
* (DOES NOT THROW DOMException, INDEX_SIZE_ERR)
* DOES NOT THROW DOMException, INDEX_SIZE_ERR.
* @function module:SVGTransformList.SVGEditTransformList#insertItemBefore
* @param {SVGTransform} newItem
* @param {Integer} index unsigned long
@ -3088,7 +3088,7 @@ var listMap_ = {};
*/
/**
* (DOES NOT THROW DOMException, INDEX_SIZE_ERR)
* DOES NOT THROW DOMException, INDEX_SIZE_ERR.
* @function module:SVGTransformList.SVGEditTransformList#replaceItem
* @param {SVGTransform} newItem
* @param {Integer} index unsigned long
@ -3096,7 +3096,7 @@ var listMap_ = {};
*/
/**
* (DOES NOT THROW DOMException, INDEX_SIZE_ERR)
* DOES NOT THROW DOMException, INDEX_SIZE_ERR.
* @function module:SVGTransformList.SVGEditTransformList#removeItem
* @param {Integer} index unsigned long
* @returns {SVGTransform}
@ -3109,7 +3109,7 @@ var listMap_ = {};
*/
/**
* NOT IMPLEMENTED
* NOT IMPLEMENTED.
* @ignore
* @function module:SVGTransformList.SVGEditTransformList#createSVGTransformFromMatrix
* @param {SVGMatrix} matrix
@ -3117,7 +3117,7 @@ var listMap_ = {};
*/
/**
* NOT IMPLEMENTED
* NOT IMPLEMENTED.
* @ignore
* @function module:SVGTransformList.SVGEditTransformList#consolidate
* @returns {SVGTransform}
@ -3469,7 +3469,7 @@ var getTransformList = function getTransformList(elem) {
};
/**
* Tools for working with units
* Tools for working with units.
* @module units
* @license MIT
*
@ -3573,7 +3573,7 @@ var init = function init(elementContainer) {
};
};
/**
* Group: Unit conversion functions
* Group: Unit conversion functions.
*/
/**
@ -3755,7 +3755,7 @@ var isValidUnit = function isValidUnit(attr, val, selectedElement) {
};
/**
* Group: Undo/Redo history management
* Group: Undo/Redo history management.
*/
var HistoryEventTypes = {
@ -3798,7 +3798,7 @@ function () {
*/
/**
* Applies
* Applies.
*
* @function module:history.HistoryCommand#apply
* @param {module:history.HistoryEventHandler} handler
@ -3808,7 +3808,7 @@ function () {
/**
*
* Unapplies
* Unapplies.
* @function module:history.HistoryCommand#unapply
* @param {module:history.HistoryEventHandler} handler
* @fires module:history~Command#event:history
@ -3816,25 +3816,25 @@ function () {
*/
/**
* Returns the elements
* Returns the elements.
* @function module:history.HistoryCommand#elements
* @returns {Element[]}
*/
/**
* Gets the text
* Gets the text.
* @function module:history.HistoryCommand#getText
* @returns {string}
*/
/**
* Gives the type
* Gives the type.
* @function module:history.HistoryCommand.type
* @returns {string}
*/
/**
* Gives the type
* Gives the type.
* @function module:history.HistoryCommand#type
* @returns {string}
*/
@ -4663,7 +4663,7 @@ var hstry = /*#__PURE__*/Object.freeze({
});
/**
* Mathematical utilities
* Mathematical utilities.
* @module math
* @license MIT
*
@ -4959,7 +4959,7 @@ var editorContext_ = null;
*/
/**
* Object with the following keys/values
* Object with the following keys/values.
* @typedef {PlainObject} module:path.SVGElementJSON
* @property {string} element - Tag name of the SVG element to create
* @property {PlainObject<string, string>} attr - Has key-value attributes to assign to the new element. An `id` should be set so that {@link module:utilities.EditorContext#addSVGElementFromJson} can later re-identify the element for modification or replacement.
@ -4988,7 +4988,7 @@ var editorContext_ = null;
*/
/**
* Note: This doesn't round to an integer necessarily
* Note: This doesn't round to an integer necessarily.
* @function module:path.EditorContext#round
* @param {Float} val
* @returns {Float} Rounded value to nearest value based on `currentZoom`
@ -5086,19 +5086,19 @@ var editorContext_ = null;
*/
/**
* Returns the last created DOM element ID string
* Returns the last created DOM element ID string.
* @function module:path.EditorContext#getId
* @returns {string}
*/
/**
* Creates and returns a unique ID string for a DOM element
* Creates and returns a unique ID string for a DOM element.
* @function module:path.EditorContext#getNextId
* @returns {string}
*/
/**
* Gets the desired element from a mouse event
* Gets the desired element from a mouse event.
* @function module:path.EditorContext#getMouseTarget
* @param {external:MouseEvent} evt - Event object from the mouse event
* @returns {Element} DOM element we want
@ -6549,7 +6549,7 @@ var reorientGrads = function reorientGrads(elem, m) {
}
};
/**
* This is how we map paths to our preferred relative segment types
* This is how we map paths to our preferred relative segment types.
* @name module:path.pathMap
* @type {GenericArray}
*/
@ -6805,8 +6805,8 @@ function pathDSegment(letter, points, morePoints, lastPoint) {
/* eslint-disable jsdoc/require-property */
/**
* Group: Path edit functions
* Functions relating to editing path elements
* Group: Path edit functions.
* Functions relating to editing path elements.
* @namespace {PlainObject} pathActions
* @memberof module:path
*/
@ -7793,7 +7793,7 @@ var pathActions = function () {
// Can't seem to use `@borrows` here, so using `@see`
/**
* Smooth polyline into path
* Smooth polyline into path.
* @function module:path.pathActions.smoothPolylineIntoPath
* @see module:path~smoothPolylineIntoPath
*/
@ -7871,7 +7871,7 @@ var pathActions = function () {
// Can't seem to use `@borrows` here, so using `@see`
/**
* Convert a path to one with only absolute or relative values
* Convert a path to one with only absolute or relative values.
* @function module:path.pathActions.convertPath
* @see module:path.convertPath
*/
@ -7892,7 +7892,7 @@ var domdoc_ = null;
var domcontainer_ = null;
var svgroot_ = null;
/**
* Object with the following keys/values
* Object with the following keys/values.
* @typedef {PlainObject} module:utilities.SVGElementJSON
* @property {string} element - Tag name of the SVG element to create
* @property {PlainObject<string, string>} attr - Has key-value attributes to assign to the new element. An `id` should be set so that {@link module:utilities.EditorContext#addSVGElementFromJson} can later re-identify the element for modification or replacement.
@ -7916,7 +7916,7 @@ var svgroot_ = null;
/**
* Create a new SVG element based on the given object keys/values and add it
* to the current layer.
* The element will be run through `cleanupElement` before being returned
* The element will be run through `cleanupElement` before being returned.
* @function module:utilities.EditorContext#addSVGElementFromJson
* @param {module:utilities.SVGElementJSON} data
* @returns {Element} The new element
@ -9313,7 +9313,7 @@ var isNullish = function isNullish(val) {
/* globals jQuery */
/**
* Adds context menu functionality
* Adds context menu functionality.
* @module contextmenu
* @license Apache-2.0
* @author Adam Bender
@ -11071,7 +11071,7 @@ var randomizeIds = function randomizeIds(enableRandomization, currentDrawing) {
}; // Layer API Functions
/**
* Group: Layers
* Group: Layers.
*/
/**
@ -11119,7 +11119,7 @@ var randomizeIds = function randomizeIds(enableRandomization, currentDrawing) {
*/
/**
* Run the callback function associated with the given event
* Run the callback function associated with the given event.
* @function module:draw.DrawCanvasInit#call
* @param {"changed"|"contextset"} ev - String with the event name
* @param {module:svgcanvas.SvgCanvas#event:changed|module:svgcanvas.SvgCanvas#event:contextset} arg - Argument to pass through to the callback
@ -11443,7 +11443,7 @@ var REVERSE_NS = getReverseNS(); // Todo: Split out into core attributes, presen
/**
* This defines which elements and attributes that we support (or at least
* don't remove)
* don't remove).
* @type {PlainObject}
*/
@ -13654,7 +13654,7 @@ function SvgCanvas(container, config) {
var svgroot = svgdoc.importNode(text2xml('<svg id="svgroot" xmlns="' + NS.SVG + '" xlinkns="' + NS.XLINK + '" ' + 'width="' + dimensions[0] + '" height="' + dimensions[1] + '" x="' + dimensions[0] + '" y="' + dimensions[1] + '" overflow="visible">' + '<defs>' + '<filter id="canvashadow" filterUnits="objectBoundingBox">' + '<feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>' + '<feOffset in="blur" dx="5" dy="5" result="offsetBlur"/>' + '<feMerge>' + '<feMergeNode in="offsetBlur"/>' + '<feMergeNode in="SourceGraphic"/>' + '</feMerge>' + '</filter>' + '</defs>' + '</svg>').documentElement, true);
container.append(svgroot);
/**
* The actual element that represents the final output SVG element
* The actual element that represents the final output SVG element.
* @name module:svgcanvas~svgcontent
* @type {SVGSVGElement}
*/
@ -13699,7 +13699,7 @@ function SvgCanvas(container, config) {
idprefix = p;
};
/**
* Current draw.Drawing object
* Current `draw.Drawing` object.
* @type {module:draw.Drawing}
* @name module:svgcanvas.SvgCanvas#current_drawing_
*/
@ -13716,7 +13716,7 @@ function SvgCanvas(container, config) {
return canvas.current_drawing_;
};
/**
* Float displaying the current zoom level (1 = 100%, .5 = 50%, etc)
* Float displaying the current zoom level (1 = 100%, .5 = 50%, etc.).
* @type {Float}
*/
@ -13852,8 +13852,8 @@ function SvgCanvas(container, config) {
return curConfig.baseUnit;
};
/**
* initialize from units.js.
* Send in an object implementing the ElementContainer interface (see units.js)
* Initialize from units.js.
* Send in an object implementing the ElementContainer interface (see units.js).
*/
@ -14085,7 +14085,7 @@ function SvgCanvas(container, config) {
init$6(curConfig,
/**
* Export to select.js
* Export to select.js.
* @implements {module:select.SVGFactory}
*/
{
@ -14101,7 +14101,7 @@ function SvgCanvas(container, config) {
getCurrentZoom: getCurrentZoom
});
/**
* This object manages selectors for us
* This object manages selectors for us.
* @name module:svgcanvas.SvgCanvas#selectorManager
* @type {module:select.SelectorManager}
*/
@ -14918,26 +14918,26 @@ function SvgCanvas(container, config) {
var events = {};
canvas.call = call;
/**
* Array of what was changed (elements, layers)
* Array of what was changed (elements, layers).
* @event module:svgcanvas.SvgCanvas#event:changed
* @type {Element[]}
*/
/**
* Array of selected elements
* Array of selected elements.
* @event module:svgcanvas.SvgCanvas#event:selected
* @type {Element[]}
*/
/**
* Array of selected elements
* Array of selected elements.
* @event module:svgcanvas.SvgCanvas#event:transition
* @type {Element[]}
*/
/**
* The Element is always `SVGGElement`?
* If not `null`, will be the set current group element
* If not `null`, will be the set current group element.
* @event module:svgcanvas.SvgCanvas#event:contextset
* @type {null|Element}
*/
@ -14998,7 +14998,7 @@ function SvgCanvas(container, config) {
*/
/**
* SVG canvas converted to string
* SVG canvas converted to string.
* @event module:svgcanvas.SvgCanvas#event:saved
* @type {string}
*/
@ -15042,7 +15042,7 @@ function SvgCanvas(container, config) {
/**
* The promise return, if present, resolves to `undefined`
* (`extension_added`, `exported`, `saved`)
* (`extension_added`, `exported`, `saved`).
* @typedef {Promise<void>|void} module:svgcanvas.EventHandlerReturn
*/
@ -15221,7 +15221,7 @@ function SvgCanvas(container, config) {
var rootSctm = null;
/**
* Group: Selection
* Group: Selection.
*/
// TODO: do we need to worry about selectedBBoxes here?
@ -15788,7 +15788,7 @@ function SvgCanvas(container, config) {
break;
}
/**
* The main (left) mouse button is held down on the canvas area
* The main (left) mouse button is held down on the canvas area.
* @event module:svgcanvas.SvgCanvas#event:ext_mouseDown
* @type {PlainObject}
* @property {MouseEvent} event The event object
@ -16331,7 +16331,7 @@ function SvgCanvas(container, config) {
}
}
/**
* The mouse has moved on the canvas area
* The mouse has moved on the canvas area.
* @event module:svgcanvas.SvgCanvas#event:ext_mouseMove
* @type {PlainObject}
* @property {MouseEvent} event The event object
@ -16648,7 +16648,7 @@ function SvgCanvas(container, config) {
}
}
/**
* The main (left) mouse button is released (anywhere)
* The main (left) mouse button is released (anywhere).
* @event module:svgcanvas.SvgCanvas#event:ext_mouseUp
* @type {PlainObject}
* @property {MouseEvent} event The event object
@ -16881,7 +16881,7 @@ function SvgCanvas(container, config) {
/**
* Group: Text edit functions
* Functions relating to editing text elements
* Functions relating to editing text elements.
* @namespace {PlainObject} textActions
* @memberof module:svgcanvas.SvgCanvas#
*/
@ -17406,7 +17406,7 @@ function SvgCanvas(container, config) {
);
}();
/**
* Group: Serialization
* Group: Serialization.
*/
/**
@ -17749,7 +17749,7 @@ function SvgCanvas(container, config) {
}; // end svgToString()
/**
* Function to run when image data is found
* Function to run when image data is found.
* @callback module:svgcanvas.ImageEmbeddedCallback
* @param {string|false} result Data URL
* @returns {void}
@ -18922,7 +18922,7 @@ function SvgCanvas(container, config) {
}
});
/**
* Group: Document functions
* Group: Document functions.
*/
/**
@ -19389,7 +19389,7 @@ function SvgCanvas(container, config) {
*/
/**
* The bottom panel was updated
* The bottom panel was updated.
* @event module:svgcanvas.SvgCanvas#event:ext_toolButtonStateUpdate
* @type {PlainObject}
* @property {boolean} nofill Indicates fill is disabled
@ -19397,7 +19397,7 @@ function SvgCanvas(container, config) {
*/
/**
* The element selection has changed (elements were added/removed from selection)
* The element selection has changed (elements were added/removed from selection).
* @event module:svgcanvas.SvgCanvas#event:ext_selectedChanged
* @type {PlainObject}
* @property {Element[]} elems Array of the newly selected elements
@ -19414,14 +19414,14 @@ function SvgCanvas(container, config) {
*/
/**
* One or more elements were changed
* One or more elements were changed.
* @event module:svgcanvas.SvgCanvas#event:ext_elementChanged
* @type {PlainObject}
* @property {Element[]} elems Array of the affected elements
*/
/**
* Invoked as soon as the locale is ready
* Invoked as soon as the locale is ready.
* @event module:svgcanvas.SvgCanvas#event:ext_langReady
* @type {PlainObject}
* @property {string} lang The two-letter language code
@ -19444,13 +19444,13 @@ function SvgCanvas(container, config) {
*/
/**
* Called when new image is created
* Called when new image is created.
* @event module:svgcanvas.SvgCanvas#event:ext_onNewDocument
* @type {void}
*/
/**
* Called when sidepanel is resized or toggled
* Called when sidepanel is resized or toggled.
* @event module:svgcanvas.SvgCanvas#event:ext_workareaResized
* @type {void}
*/
@ -19511,7 +19511,7 @@ function SvgCanvas(container, config) {
currentMode = name;
};
/**
* Group: Element Styling
* Group: Element Styling.
*/
/**
@ -20384,7 +20384,7 @@ function SvgCanvas(container, config) {
canvas.ungroupSelectedElement();
};
/**
* Group: Element manipulation
* Group: Element manipulation.
*/
/**
@ -20733,7 +20733,7 @@ function SvgCanvas(container, config) {
clipb.forEach(checkIDs); // Give extensions like the connector extension a chance to reflect new IDs and remove invalid elements
/**
* Triggered when `pasteElements` is called from a paste action (context menu or key)
* Triggered when `pasteElements` is called from a paste action (context menu or key).
* @event module:svgcanvas.SvgCanvas#event:ext_IDsUpdated
* @type {PlainObject}
* @property {module:svgcanvas.SVGAsJSON[]} elems
@ -21537,7 +21537,7 @@ function SvgCanvas(container, config) {
this.moveSelectedElements(dx, dy);
};
/**
* Group: Additional editor tools
* Group: Additional editor tools.
*/
/**
@ -22314,7 +22314,7 @@ function jQueryPluginBBQ (jQuery) {
// Todo: Move to own module (and have it import a modular base64 encoder)
/**
* SVG Icon Loader 2.0
* @file SVG Icon Loader 2.0
*
* jQuery Plugin for loading SVG icons from a single file
*
@ -22475,13 +22475,13 @@ function jQueryPluginSVGIcons($) {
var svgIcons = {};
/**
* Map of raster images with each key being the SVG icon ID
* to replace, and the value the image file name
* to replace, and the value the image file name.
* @typedef {PlainObject<string, string>} external:jQuery.svgIcons.Fallback
*/
/**
* Map of raster images with each key being the SVG icon ID
* whose `alt` will be set, and the value being the `alt` text
* whose `alt` will be set, and the value being the `alt` text.
* @typedef {PlainObject<string, string>} external:jQuery.svgIcons.Alts
*/
@ -22896,7 +22896,7 @@ function jQueryPluginSVGIcons($) {
}
/**
* jGraduate 0.4
* @file jGraduate 0.4
*
* jQuery Plugin for a gradient picker
*
@ -22995,14 +22995,14 @@ function jQueryPluginJGraduate($) {
*/
this.type = options.copy.type;
/**
* Represents opacity (0-100)
* Represents opacity (0-100).
* @name module:jGraduate~Paint#alpha
* @type {Float}
*/
this.alpha = options.copy.alpha;
/**
* Represents #RRGGBB hex of color
* Represents #RRGGBB hex of color.
* @name module:jGraduate~Paint#solidColor
* @type {string}
*/
@ -23088,7 +23088,7 @@ function jQueryPluginJGraduate($) {
/** @lends external:jQuery.fn.jGraduateDefaults */
{
/**
* Creates an object with a 'none' color
* Creates an object with a 'none' color.
* @type {external:jQuery.jGraduate.Paint}
* @see module:jGraduate.Options
*/
@ -24187,55 +24187,57 @@ function jQueryPluginJGraduate($) {
}
/**
* SpinButton control
* SpinButton control.
*
* Adds bells and whistles to any ordinary textbox to
* make it look and feel like a SpinButton Control.
*
* Supplies {@link external:jQuery.fn.SpinButton} (and also {@link external:jQuery.loadingStylesheets})
* Supplies {@link external:jQuery.fn.SpinButton} (and also {@link external:jQuery.loadingStylesheets}).
*
* Originally written by George Adamson, Software Unity (george.jquery@softwareunity.com) August 2006.
* - Added min/max options
* - Added step size option
* - Added bigStep (page up/down) option
* Originally written by George Adamson, Software Unity (george.jquery@softwareunity.com) August 2006:
* - Added min/max options.
* - Added step size option.
* - Added bigStep (page up/down) option.
*
* Modifications made by Mark Gibson, (mgibson@designlinks.net) September 2006:
* - Converted to jQuery plugin
* - Allow limited or unlimited min/max values
* - Allow custom class names, and add class to input element
* - Removed global vars
* - Reset (to original or through config) when invalid value entered
* - Repeat whilst holding mouse button down (with initial pause, like keyboard repeat)
* - Support mouse wheel in Firefox
* - Fix double click in IE
* - Refactored some code and renamed some vars
* - Converted to jQuery plugin.
* - Allow limited or unlimited min/max values.
* - Allow custom class names, and add class to input element.
* - Removed global vars.
* - Reset (to original or through config) when invalid value entered.
* - Repeat whilst holding mouse button down (with initial pause, like keyboard repeat).
* - Support mouse wheel in Firefox.
* - Fix double click in IE.
* - Refactored some code and renamed some vars.
*
* Modifications by Jeff Schiller, June 2009:
* - provide callback function for when the value changes based on the following
* {@link https://www.mail-archive.com/jquery-en@googlegroups.com/msg36070.html}
* {@link https://www.mail-archive.com/jquery-en@googlegroups.com/msg36070.html}.
*
* Modifications by Jeff Schiller, July 2009:
* - improve styling for widget in Opera
* - consistent key-repeat handling cross-browser
* - improve styling for widget in Opera.
* - consistent key-repeat handling cross-browser.
*
* Modifications by Alexis Deveria, October 2009:
* - provide "stepfunc" callback option to allow custom function to run when changing a value
* - provide "stepfunc" callback option to allow custom function to run when changing a value.
* - Made adjustValue(0) only run on certain keyup events, not all.
*
* Tested in IE6, Opera9, Firefox 1.5
* Tested in IE6, Opera9, Firefox 1.5.
*
* | Version | Date | Author | Notes
* |---------|------|--------|------|
* | v1.0 | 11 Aug 2006 | George Adamson | First release
* | v1.1 | Aug 2006 | George Adamson | Minor enhancements
* | v1.2 | 27 Sep 2006 | Mark Gibson | Major enhancements
* | v1.3a | 28 Sep 2006 | George Adamson | Minor enhancements
* | v1.4 | 18 Jun 2009 | Jeff Schiller | Added callback function
* | v1.5 | 06 Jul 2009 | Jeff Schiller | Fixes for Opera.
* | v1.6 | 13 Oct 2009 | Alexis Deveria | Added stepfunc function
* | v1.7 | 21 Oct 2009 | Alexis Deveria | Minor fixes.<br />Fast-repeat for keys and live updating as you type.
* | v1.8 | 12 Jan 2010 | Benjamin Thomas | Fixes for mouseout behavior.<br />Added smallStep
* | Version | Date | Author | Notes |
* |---------|------|--------|-------|
* | v1.0 | 11 Aug 2006 | George Adamson | First release |
* | v1.1 | Aug 2006 | George Adamson | Minor enhancements |
* | v1.2 | 27 Sep 2006 | Mark Gibson | Major enhancements |
* | v1.3a | 28 Sep 2006 | George Adamson | Minor enhancements |
* | v1.4 | 18 Jun 2009 | Jeff Schiller | Added callback function |
* | v1.5 | 06 Jul 2009 | Jeff Schiller | Fixes for Opera. |
* | v1.6 | 13 Oct 2009 | Alexis Deveria | Added stepfunc function |
* | v1.7 | 21 Oct 2009 | Alexis Deveria | Minor fixes.<br />Fast-repeat for keys and live updating as you type. |
* | v1.8 | 12 Jan 2010 | Benjamin Thomas | Fixes for mouseout behavior.<br />Added smallStep |
* | v1.9 | 20 May 2018 | Brett Zamir | Avoid SVGEdit dependency via `stateObj` config;<br />convert to ES6 module |
* .
*
* @module jQuerySpinButton
* @example
// Create group of settings to initialise spinbutton(s). (Optional)
@ -24557,7 +24559,7 @@ function jQueryPluginSpinButton($) {
}
/**
* jQuery Context Menu Plugin
* @file jQuery Context Menu Plugin
* Cory S.N. LaViska
* A Beautiful Site ({@link https://abeautifulsite.net/})
* Modified by Alexis Deveria
@ -24889,7 +24891,7 @@ function jQueryContextMenu($) {
/* eslint-disable no-bitwise */
/**
* jPicker (Adapted from version 1.1.6)
* @file jPicker (Adapted from version 1.1.6)
*
* jQuery Plugin for Photoshop style color picker
*
@ -25751,7 +25753,7 @@ var jPicker = function jPicker($) {
/* eslint-enable jsdoc/require-property */
/**
* Array holding references to each active instance of the jPicker control
* Array holding references to each active instance of the jPicker control.
* @type {external:jQuery.fn.$.fn.jPicker[]}
*/
List: [],
@ -26145,7 +26147,7 @@ var jPicker = function jPicker($) {
},
/**
* color conversion methods - make public to give use to external scripts
* Color conversion methods - make public to give use to external scripts.
* @namespace
*/
ColorMethods: {
@ -26380,7 +26382,7 @@ var jPicker = function jPicker($) {
*/
/**
* Will be bound to active {@link jQuery.jPicker.Color}
* Will be bound to active {@link jQuery.jPicker.Color}.
* @callback module:jPicker.LiveCallback
* @param {external:jQuery} ui
* @param {Element} context
@ -27819,8 +27821,8 @@ var jPicker = function jPicker($) {
*/
/**
* jPicker defaults - you can change anything in this section (such as the
* clientPath to your images) without fear of breaking the program
* The jPicker defaults - you can change anything in this section (such as the
* clientPath to your images) without fear of breaking the program.
* @namespace {external:jQuery.fn.jPickerOptions} defaults
* @memberof external:jQuery.fn.$.fn.jPicker
* @borrows external:jQuery.fn.jPickerOptions as external:jQuery.fn.jPicker.defaults
@ -28294,7 +28296,7 @@ var setStrings = function setStrings(type, obj, ids) {
};
/**
* The "data" property is generally set to an an array of objects with
* "id" and "title" or "textContent" properties
* "id" and "title" or "textContent" properties.
* @typedef {PlainObject} module:locale.AddLangExtensionLocaleData
* @property {module:locale.LocaleStrings[]} data See {@tutorial LocaleDocs}
*/
@ -28814,7 +28816,7 @@ function loadStylesheets(stylesheets) {
}
/**
* The main module for the visual SVG Editor
* The main module for the visual SVG Editor.
*
* @license MIT
*
@ -28894,7 +28896,7 @@ var callbacks = [],
*/
/**
* Preferences
* Preferences.
* @interface module:SVGEditor.Prefs
* @property {string} [lang="en"] Two-letter language code. The language must exist in the Editor Preferences language list. Defaults to "en" if `locale.js` detection does not detect another language.
* @property {module:SVGEditor.IconSize} [iconsize="s"|"m"] Size of the toolbar icons. Will default to 's' if the window height is smaller than the minimum height and 'm' otherwise.
@ -28918,13 +28920,13 @@ defaultPrefs =
// EDITOR OPTIONS (DIALOG)
/**
* Default to "en" if locale.js detection does not detect another language
* Default to "en" if locale.js detection does not detect another language.
*/
lang: '',
/**
* Will default to 's' if the window height is smaller than the minimum height and
* 'm' otherwise
* Will default to 's' if the window height is smaller than the minimum
* height and 'm' otherwise.
*/
iconsize: '',
bkgd_color: '#FFF',
@ -29092,7 +29094,7 @@ defaultConfig = {
},
/**
* LOCALE
* LOCALE.
* @name module:SVGEditor.uiStrings
* @type {PlainObject}
*/
@ -29265,7 +29267,7 @@ function getImportLocale(_ref) {
);
}
/**
* EXPORTS
* EXPORTS.
*/
/**
@ -29451,7 +29453,7 @@ editor.setConfig = function (opts, cfgCfg) {
editor.curConfig = curConfig; // Update exported value
};
/**
* All methods are optional
* All methods are optional.
* @interface module:SVGEditor.CustomHandler
* @type {PlainObject}
*/
@ -29470,7 +29472,7 @@ editor.setConfig = function (opts, cfgCfg) {
* Its responsibilities are:
* - accept the string contents of the current document
* - invoke a file chooser dialog in 'save' mode
* - save the file to location chosen by the user
* - save the file to location chosen by the user.
* @function module:SVGEditor.CustomHandler#save
* @param {external:Window} win
* @param {module:svgcanvas.SvgCanvas#event:saved} svgStr A string of the SVG
@ -33209,7 +33211,7 @@ editor.init = function () {
// TODO: Group UI functions into a public editor.ui interface.
/**
* See {@link http://api.jquery.com/bind/#bind-eventType-eventData-handler}
* See {@link http://api.jquery.com/bind/#bind-eventType-eventData-handler}.
* @callback module:SVGEditor.DropDownCallback
* @param {external:jQuery.Event} ev See {@link http://api.jquery.com/Types/#Event}
* @listens external:jQuery.Event
@ -35261,7 +35263,7 @@ editor.init = function () {
/* eslint-disable jsdoc/require-property */
/**
* Associate all button actions as well as non-button keyboard shortcuts
* Associate all button actions as well as non-button keyboard shortcuts.
* @namespace {PlainObject} module:SVGEditor~Actions
*/

14
dist/index-es.min.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

248
dist/index-umd.js vendored
View File

@ -272,13 +272,13 @@
document.addEventListener('touchcancel', touchHandler, true);
/**
* Namespaces or tools therefor
* Namespaces or tools therefor.
* @module namespaces
* @license MIT
*/
/**
* Common namepaces constants in alpha order
* Common namepaces constants in alpha order.
* @enum {string}
* @type {PlainObject}
* @memberof module:namespaces
@ -2909,7 +2909,7 @@
};
/**
* jQuery module to work with SVG attributes
* A jQuery module to work with SVG attributes.
* @module jQueryAttr
* @license MIT
*/
@ -3079,14 +3079,14 @@
*/
/**
* (DOES NOT THROW DOMException, INDEX_SIZE_ERR)
* DOES NOT THROW DOMException, INDEX_SIZE_ERR.
* @function module:SVGTransformList.SVGEditTransformList#getItem
* @param {Integer} index unsigned long
* @returns {SVGTransform}
*/
/**
* (DOES NOT THROW DOMException, INDEX_SIZE_ERR)
* DOES NOT THROW DOMException, INDEX_SIZE_ERR.
* @function module:SVGTransformList.SVGEditTransformList#insertItemBefore
* @param {SVGTransform} newItem
* @param {Integer} index unsigned long
@ -3094,7 +3094,7 @@
*/
/**
* (DOES NOT THROW DOMException, INDEX_SIZE_ERR)
* DOES NOT THROW DOMException, INDEX_SIZE_ERR.
* @function module:SVGTransformList.SVGEditTransformList#replaceItem
* @param {SVGTransform} newItem
* @param {Integer} index unsigned long
@ -3102,7 +3102,7 @@
*/
/**
* (DOES NOT THROW DOMException, INDEX_SIZE_ERR)
* DOES NOT THROW DOMException, INDEX_SIZE_ERR.
* @function module:SVGTransformList.SVGEditTransformList#removeItem
* @param {Integer} index unsigned long
* @returns {SVGTransform}
@ -3115,7 +3115,7 @@
*/
/**
* NOT IMPLEMENTED
* NOT IMPLEMENTED.
* @ignore
* @function module:SVGTransformList.SVGEditTransformList#createSVGTransformFromMatrix
* @param {SVGMatrix} matrix
@ -3123,7 +3123,7 @@
*/
/**
* NOT IMPLEMENTED
* NOT IMPLEMENTED.
* @ignore
* @function module:SVGTransformList.SVGEditTransformList#consolidate
* @returns {SVGTransform}
@ -3475,7 +3475,7 @@
};
/**
* Tools for working with units
* Tools for working with units.
* @module units
* @license MIT
*
@ -3579,7 +3579,7 @@
};
};
/**
* Group: Unit conversion functions
* Group: Unit conversion functions.
*/
/**
@ -3761,7 +3761,7 @@
};
/**
* Group: Undo/Redo history management
* Group: Undo/Redo history management.
*/
var HistoryEventTypes = {
@ -3804,7 +3804,7 @@
*/
/**
* Applies
* Applies.
*
* @function module:history.HistoryCommand#apply
* @param {module:history.HistoryEventHandler} handler
@ -3814,7 +3814,7 @@
/**
*
* Unapplies
* Unapplies.
* @function module:history.HistoryCommand#unapply
* @param {module:history.HistoryEventHandler} handler
* @fires module:history~Command#event:history
@ -3822,25 +3822,25 @@
*/
/**
* Returns the elements
* Returns the elements.
* @function module:history.HistoryCommand#elements
* @returns {Element[]}
*/
/**
* Gets the text
* Gets the text.
* @function module:history.HistoryCommand#getText
* @returns {string}
*/
/**
* Gives the type
* Gives the type.
* @function module:history.HistoryCommand.type
* @returns {string}
*/
/**
* Gives the type
* Gives the type.
* @function module:history.HistoryCommand#type
* @returns {string}
*/
@ -4669,7 +4669,7 @@
});
/**
* Mathematical utilities
* Mathematical utilities.
* @module math
* @license MIT
*
@ -4965,7 +4965,7 @@
*/
/**
* Object with the following keys/values
* Object with the following keys/values.
* @typedef {PlainObject} module:path.SVGElementJSON
* @property {string} element - Tag name of the SVG element to create
* @property {PlainObject<string, string>} attr - Has key-value attributes to assign to the new element. An `id` should be set so that {@link module:utilities.EditorContext#addSVGElementFromJson} can later re-identify the element for modification or replacement.
@ -4994,7 +4994,7 @@
*/
/**
* Note: This doesn't round to an integer necessarily
* Note: This doesn't round to an integer necessarily.
* @function module:path.EditorContext#round
* @param {Float} val
* @returns {Float} Rounded value to nearest value based on `currentZoom`
@ -5092,19 +5092,19 @@
*/
/**
* Returns the last created DOM element ID string
* Returns the last created DOM element ID string.
* @function module:path.EditorContext#getId
* @returns {string}
*/
/**
* Creates and returns a unique ID string for a DOM element
* Creates and returns a unique ID string for a DOM element.
* @function module:path.EditorContext#getNextId
* @returns {string}
*/
/**
* Gets the desired element from a mouse event
* Gets the desired element from a mouse event.
* @function module:path.EditorContext#getMouseTarget
* @param {external:MouseEvent} evt - Event object from the mouse event
* @returns {Element} DOM element we want
@ -6555,7 +6555,7 @@
}
};
/**
* This is how we map paths to our preferred relative segment types
* This is how we map paths to our preferred relative segment types.
* @name module:path.pathMap
* @type {GenericArray}
*/
@ -6811,8 +6811,8 @@
/* eslint-disable jsdoc/require-property */
/**
* Group: Path edit functions
* Functions relating to editing path elements
* Group: Path edit functions.
* Functions relating to editing path elements.
* @namespace {PlainObject} pathActions
* @memberof module:path
*/
@ -7799,7 +7799,7 @@
// Can't seem to use `@borrows` here, so using `@see`
/**
* Smooth polyline into path
* Smooth polyline into path.
* @function module:path.pathActions.smoothPolylineIntoPath
* @see module:path~smoothPolylineIntoPath
*/
@ -7877,7 +7877,7 @@
// Can't seem to use `@borrows` here, so using `@see`
/**
* Convert a path to one with only absolute or relative values
* Convert a path to one with only absolute or relative values.
* @function module:path.pathActions.convertPath
* @see module:path.convertPath
*/
@ -7898,7 +7898,7 @@
var domcontainer_ = null;
var svgroot_ = null;
/**
* Object with the following keys/values
* Object with the following keys/values.
* @typedef {PlainObject} module:utilities.SVGElementJSON
* @property {string} element - Tag name of the SVG element to create
* @property {PlainObject<string, string>} attr - Has key-value attributes to assign to the new element. An `id` should be set so that {@link module:utilities.EditorContext#addSVGElementFromJson} can later re-identify the element for modification or replacement.
@ -7922,7 +7922,7 @@
/**
* Create a new SVG element based on the given object keys/values and add it
* to the current layer.
* The element will be run through `cleanupElement` before being returned
* The element will be run through `cleanupElement` before being returned.
* @function module:utilities.EditorContext#addSVGElementFromJson
* @param {module:utilities.SVGElementJSON} data
* @returns {Element} The new element
@ -9319,7 +9319,7 @@
/* globals jQuery */
/**
* Adds context menu functionality
* Adds context menu functionality.
* @module contextmenu
* @license Apache-2.0
* @author Adam Bender
@ -11077,7 +11077,7 @@
}; // Layer API Functions
/**
* Group: Layers
* Group: Layers.
*/
/**
@ -11125,7 +11125,7 @@
*/
/**
* Run the callback function associated with the given event
* Run the callback function associated with the given event.
* @function module:draw.DrawCanvasInit#call
* @param {"changed"|"contextset"} ev - String with the event name
* @param {module:svgcanvas.SvgCanvas#event:changed|module:svgcanvas.SvgCanvas#event:contextset} arg - Argument to pass through to the callback
@ -11449,7 +11449,7 @@
/**
* This defines which elements and attributes that we support (or at least
* don't remove)
* don't remove).
* @type {PlainObject}
*/
@ -13660,7 +13660,7 @@
var svgroot = svgdoc.importNode(text2xml('<svg id="svgroot" xmlns="' + NS.SVG + '" xlinkns="' + NS.XLINK + '" ' + 'width="' + dimensions[0] + '" height="' + dimensions[1] + '" x="' + dimensions[0] + '" y="' + dimensions[1] + '" overflow="visible">' + '<defs>' + '<filter id="canvashadow" filterUnits="objectBoundingBox">' + '<feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>' + '<feOffset in="blur" dx="5" dy="5" result="offsetBlur"/>' + '<feMerge>' + '<feMergeNode in="offsetBlur"/>' + '<feMergeNode in="SourceGraphic"/>' + '</feMerge>' + '</filter>' + '</defs>' + '</svg>').documentElement, true);
container.append(svgroot);
/**
* The actual element that represents the final output SVG element
* The actual element that represents the final output SVG element.
* @name module:svgcanvas~svgcontent
* @type {SVGSVGElement}
*/
@ -13705,7 +13705,7 @@
idprefix = p;
};
/**
* Current draw.Drawing object
* Current `draw.Drawing` object.
* @type {module:draw.Drawing}
* @name module:svgcanvas.SvgCanvas#current_drawing_
*/
@ -13722,7 +13722,7 @@
return canvas.current_drawing_;
};
/**
* Float displaying the current zoom level (1 = 100%, .5 = 50%, etc)
* Float displaying the current zoom level (1 = 100%, .5 = 50%, etc.).
* @type {Float}
*/
@ -13858,8 +13858,8 @@
return curConfig.baseUnit;
};
/**
* initialize from units.js.
* Send in an object implementing the ElementContainer interface (see units.js)
* Initialize from units.js.
* Send in an object implementing the ElementContainer interface (see units.js).
*/
@ -14091,7 +14091,7 @@
init$6(curConfig,
/**
* Export to select.js
* Export to select.js.
* @implements {module:select.SVGFactory}
*/
{
@ -14107,7 +14107,7 @@
getCurrentZoom: getCurrentZoom
});
/**
* This object manages selectors for us
* This object manages selectors for us.
* @name module:svgcanvas.SvgCanvas#selectorManager
* @type {module:select.SelectorManager}
*/
@ -14924,26 +14924,26 @@
var events = {};
canvas.call = call;
/**
* Array of what was changed (elements, layers)
* Array of what was changed (elements, layers).
* @event module:svgcanvas.SvgCanvas#event:changed
* @type {Element[]}
*/
/**
* Array of selected elements
* Array of selected elements.
* @event module:svgcanvas.SvgCanvas#event:selected
* @type {Element[]}
*/
/**
* Array of selected elements
* Array of selected elements.
* @event module:svgcanvas.SvgCanvas#event:transition
* @type {Element[]}
*/
/**
* The Element is always `SVGGElement`?
* If not `null`, will be the set current group element
* If not `null`, will be the set current group element.
* @event module:svgcanvas.SvgCanvas#event:contextset
* @type {null|Element}
*/
@ -15004,7 +15004,7 @@
*/
/**
* SVG canvas converted to string
* SVG canvas converted to string.
* @event module:svgcanvas.SvgCanvas#event:saved
* @type {string}
*/
@ -15048,7 +15048,7 @@
/**
* The promise return, if present, resolves to `undefined`
* (`extension_added`, `exported`, `saved`)
* (`extension_added`, `exported`, `saved`).
* @typedef {Promise<void>|void} module:svgcanvas.EventHandlerReturn
*/
@ -15227,7 +15227,7 @@
var rootSctm = null;
/**
* Group: Selection
* Group: Selection.
*/
// TODO: do we need to worry about selectedBBoxes here?
@ -15794,7 +15794,7 @@
break;
}
/**
* The main (left) mouse button is held down on the canvas area
* The main (left) mouse button is held down on the canvas area.
* @event module:svgcanvas.SvgCanvas#event:ext_mouseDown
* @type {PlainObject}
* @property {MouseEvent} event The event object
@ -16337,7 +16337,7 @@
}
}
/**
* The mouse has moved on the canvas area
* The mouse has moved on the canvas area.
* @event module:svgcanvas.SvgCanvas#event:ext_mouseMove
* @type {PlainObject}
* @property {MouseEvent} event The event object
@ -16654,7 +16654,7 @@
}
}
/**
* The main (left) mouse button is released (anywhere)
* The main (left) mouse button is released (anywhere).
* @event module:svgcanvas.SvgCanvas#event:ext_mouseUp
* @type {PlainObject}
* @property {MouseEvent} event The event object
@ -16887,7 +16887,7 @@
/**
* Group: Text edit functions
* Functions relating to editing text elements
* Functions relating to editing text elements.
* @namespace {PlainObject} textActions
* @memberof module:svgcanvas.SvgCanvas#
*/
@ -17412,7 +17412,7 @@
);
}();
/**
* Group: Serialization
* Group: Serialization.
*/
/**
@ -17755,7 +17755,7 @@
}; // end svgToString()
/**
* Function to run when image data is found
* Function to run when image data is found.
* @callback module:svgcanvas.ImageEmbeddedCallback
* @param {string|false} result Data URL
* @returns {void}
@ -18928,7 +18928,7 @@
}
});
/**
* Group: Document functions
* Group: Document functions.
*/
/**
@ -19395,7 +19395,7 @@
*/
/**
* The bottom panel was updated
* The bottom panel was updated.
* @event module:svgcanvas.SvgCanvas#event:ext_toolButtonStateUpdate
* @type {PlainObject}
* @property {boolean} nofill Indicates fill is disabled
@ -19403,7 +19403,7 @@
*/
/**
* The element selection has changed (elements were added/removed from selection)
* The element selection has changed (elements were added/removed from selection).
* @event module:svgcanvas.SvgCanvas#event:ext_selectedChanged
* @type {PlainObject}
* @property {Element[]} elems Array of the newly selected elements
@ -19420,14 +19420,14 @@
*/
/**
* One or more elements were changed
* One or more elements were changed.
* @event module:svgcanvas.SvgCanvas#event:ext_elementChanged
* @type {PlainObject}
* @property {Element[]} elems Array of the affected elements
*/
/**
* Invoked as soon as the locale is ready
* Invoked as soon as the locale is ready.
* @event module:svgcanvas.SvgCanvas#event:ext_langReady
* @type {PlainObject}
* @property {string} lang The two-letter language code
@ -19450,13 +19450,13 @@
*/
/**
* Called when new image is created
* Called when new image is created.
* @event module:svgcanvas.SvgCanvas#event:ext_onNewDocument
* @type {void}
*/
/**
* Called when sidepanel is resized or toggled
* Called when sidepanel is resized or toggled.
* @event module:svgcanvas.SvgCanvas#event:ext_workareaResized
* @type {void}
*/
@ -19517,7 +19517,7 @@
currentMode = name;
};
/**
* Group: Element Styling
* Group: Element Styling.
*/
/**
@ -20390,7 +20390,7 @@
canvas.ungroupSelectedElement();
};
/**
* Group: Element manipulation
* Group: Element manipulation.
*/
/**
@ -20739,7 +20739,7 @@
clipb.forEach(checkIDs); // Give extensions like the connector extension a chance to reflect new IDs and remove invalid elements
/**
* Triggered when `pasteElements` is called from a paste action (context menu or key)
* Triggered when `pasteElements` is called from a paste action (context menu or key).
* @event module:svgcanvas.SvgCanvas#event:ext_IDsUpdated
* @type {PlainObject}
* @property {module:svgcanvas.SVGAsJSON[]} elems
@ -21543,7 +21543,7 @@
this.moveSelectedElements(dx, dy);
};
/**
* Group: Additional editor tools
* Group: Additional editor tools.
*/
/**
@ -22320,7 +22320,7 @@
// Todo: Move to own module (and have it import a modular base64 encoder)
/**
* SVG Icon Loader 2.0
* @file SVG Icon Loader 2.0
*
* jQuery Plugin for loading SVG icons from a single file
*
@ -22481,13 +22481,13 @@
var svgIcons = {};
/**
* Map of raster images with each key being the SVG icon ID
* to replace, and the value the image file name
* to replace, and the value the image file name.
* @typedef {PlainObject<string, string>} external:jQuery.svgIcons.Fallback
*/
/**
* Map of raster images with each key being the SVG icon ID
* whose `alt` will be set, and the value being the `alt` text
* whose `alt` will be set, and the value being the `alt` text.
* @typedef {PlainObject<string, string>} external:jQuery.svgIcons.Alts
*/
@ -22902,7 +22902,7 @@
}
/**
* jGraduate 0.4
* @file jGraduate 0.4
*
* jQuery Plugin for a gradient picker
*
@ -23001,14 +23001,14 @@
*/
this.type = options.copy.type;
/**
* Represents opacity (0-100)
* Represents opacity (0-100).
* @name module:jGraduate~Paint#alpha
* @type {Float}
*/
this.alpha = options.copy.alpha;
/**
* Represents #RRGGBB hex of color
* Represents #RRGGBB hex of color.
* @name module:jGraduate~Paint#solidColor
* @type {string}
*/
@ -23094,7 +23094,7 @@
/** @lends external:jQuery.fn.jGraduateDefaults */
{
/**
* Creates an object with a 'none' color
* Creates an object with a 'none' color.
* @type {external:jQuery.jGraduate.Paint}
* @see module:jGraduate.Options
*/
@ -24193,55 +24193,57 @@
}
/**
* SpinButton control
* SpinButton control.
*
* Adds bells and whistles to any ordinary textbox to
* make it look and feel like a SpinButton Control.
*
* Supplies {@link external:jQuery.fn.SpinButton} (and also {@link external:jQuery.loadingStylesheets})
* Supplies {@link external:jQuery.fn.SpinButton} (and also {@link external:jQuery.loadingStylesheets}).
*
* Originally written by George Adamson, Software Unity (george.jquery@softwareunity.com) August 2006.
* - Added min/max options
* - Added step size option
* - Added bigStep (page up/down) option
* Originally written by George Adamson, Software Unity (george.jquery@softwareunity.com) August 2006:
* - Added min/max options.
* - Added step size option.
* - Added bigStep (page up/down) option.
*
* Modifications made by Mark Gibson, (mgibson@designlinks.net) September 2006:
* - Converted to jQuery plugin
* - Allow limited or unlimited min/max values
* - Allow custom class names, and add class to input element
* - Removed global vars
* - Reset (to original or through config) when invalid value entered
* - Repeat whilst holding mouse button down (with initial pause, like keyboard repeat)
* - Support mouse wheel in Firefox
* - Fix double click in IE
* - Refactored some code and renamed some vars
* - Converted to jQuery plugin.
* - Allow limited or unlimited min/max values.
* - Allow custom class names, and add class to input element.
* - Removed global vars.
* - Reset (to original or through config) when invalid value entered.
* - Repeat whilst holding mouse button down (with initial pause, like keyboard repeat).
* - Support mouse wheel in Firefox.
* - Fix double click in IE.
* - Refactored some code and renamed some vars.
*
* Modifications by Jeff Schiller, June 2009:
* - provide callback function for when the value changes based on the following
* {@link https://www.mail-archive.com/jquery-en@googlegroups.com/msg36070.html}
* {@link https://www.mail-archive.com/jquery-en@googlegroups.com/msg36070.html}.
*
* Modifications by Jeff Schiller, July 2009:
* - improve styling for widget in Opera
* - consistent key-repeat handling cross-browser
* - improve styling for widget in Opera.
* - consistent key-repeat handling cross-browser.
*
* Modifications by Alexis Deveria, October 2009:
* - provide "stepfunc" callback option to allow custom function to run when changing a value
* - provide "stepfunc" callback option to allow custom function to run when changing a value.
* - Made adjustValue(0) only run on certain keyup events, not all.
*
* Tested in IE6, Opera9, Firefox 1.5
* Tested in IE6, Opera9, Firefox 1.5.
*
* | Version | Date | Author | Notes
* |---------|------|--------|------|
* | v1.0 | 11 Aug 2006 | George Adamson | First release
* | v1.1 | Aug 2006 | George Adamson | Minor enhancements
* | v1.2 | 27 Sep 2006 | Mark Gibson | Major enhancements
* | v1.3a | 28 Sep 2006 | George Adamson | Minor enhancements
* | v1.4 | 18 Jun 2009 | Jeff Schiller | Added callback function
* | v1.5 | 06 Jul 2009 | Jeff Schiller | Fixes for Opera.
* | v1.6 | 13 Oct 2009 | Alexis Deveria | Added stepfunc function
* | v1.7 | 21 Oct 2009 | Alexis Deveria | Minor fixes.<br />Fast-repeat for keys and live updating as you type.
* | v1.8 | 12 Jan 2010 | Benjamin Thomas | Fixes for mouseout behavior.<br />Added smallStep
* | Version | Date | Author | Notes |
* |---------|------|--------|-------|
* | v1.0 | 11 Aug 2006 | George Adamson | First release |
* | v1.1 | Aug 2006 | George Adamson | Minor enhancements |
* | v1.2 | 27 Sep 2006 | Mark Gibson | Major enhancements |
* | v1.3a | 28 Sep 2006 | George Adamson | Minor enhancements |
* | v1.4 | 18 Jun 2009 | Jeff Schiller | Added callback function |
* | v1.5 | 06 Jul 2009 | Jeff Schiller | Fixes for Opera. |
* | v1.6 | 13 Oct 2009 | Alexis Deveria | Added stepfunc function |
* | v1.7 | 21 Oct 2009 | Alexis Deveria | Minor fixes.<br />Fast-repeat for keys and live updating as you type. |
* | v1.8 | 12 Jan 2010 | Benjamin Thomas | Fixes for mouseout behavior.<br />Added smallStep |
* | v1.9 | 20 May 2018 | Brett Zamir | Avoid SVGEdit dependency via `stateObj` config;<br />convert to ES6 module |
* .
*
* @module jQuerySpinButton
* @example
// Create group of settings to initialise spinbutton(s). (Optional)
@ -24563,7 +24565,7 @@
}
/**
* jQuery Context Menu Plugin
* @file jQuery Context Menu Plugin
* Cory S.N. LaViska
* A Beautiful Site ({@link https://abeautifulsite.net/})
* Modified by Alexis Deveria
@ -24895,7 +24897,7 @@
/* eslint-disable no-bitwise */
/**
* jPicker (Adapted from version 1.1.6)
* @file jPicker (Adapted from version 1.1.6)
*
* jQuery Plugin for Photoshop style color picker
*
@ -25757,7 +25759,7 @@
/* eslint-enable jsdoc/require-property */
/**
* Array holding references to each active instance of the jPicker control
* Array holding references to each active instance of the jPicker control.
* @type {external:jQuery.fn.$.fn.jPicker[]}
*/
List: [],
@ -26151,7 +26153,7 @@
},
/**
* color conversion methods - make public to give use to external scripts
* Color conversion methods - make public to give use to external scripts.
* @namespace
*/
ColorMethods: {
@ -26386,7 +26388,7 @@
*/
/**
* Will be bound to active {@link jQuery.jPicker.Color}
* Will be bound to active {@link jQuery.jPicker.Color}.
* @callback module:jPicker.LiveCallback
* @param {external:jQuery} ui
* @param {Element} context
@ -27825,8 +27827,8 @@
*/
/**
* jPicker defaults - you can change anything in this section (such as the
* clientPath to your images) without fear of breaking the program
* The jPicker defaults - you can change anything in this section (such as the
* clientPath to your images) without fear of breaking the program.
* @namespace {external:jQuery.fn.jPickerOptions} defaults
* @memberof external:jQuery.fn.$.fn.jPicker
* @borrows external:jQuery.fn.jPickerOptions as external:jQuery.fn.jPicker.defaults
@ -28300,7 +28302,7 @@
};
/**
* The "data" property is generally set to an an array of objects with
* "id" and "title" or "textContent" properties
* "id" and "title" or "textContent" properties.
* @typedef {PlainObject} module:locale.AddLangExtensionLocaleData
* @property {module:locale.LocaleStrings[]} data See {@tutorial LocaleDocs}
*/
@ -28820,7 +28822,7 @@
}
/**
* The main module for the visual SVG Editor
* The main module for the visual SVG Editor.
*
* @license MIT
*
@ -28900,7 +28902,7 @@
*/
/**
* Preferences
* Preferences.
* @interface module:SVGEditor.Prefs
* @property {string} [lang="en"] Two-letter language code. The language must exist in the Editor Preferences language list. Defaults to "en" if `locale.js` detection does not detect another language.
* @property {module:SVGEditor.IconSize} [iconsize="s"|"m"] Size of the toolbar icons. Will default to 's' if the window height is smaller than the minimum height and 'm' otherwise.
@ -28924,13 +28926,13 @@
// EDITOR OPTIONS (DIALOG)
/**
* Default to "en" if locale.js detection does not detect another language
* Default to "en" if locale.js detection does not detect another language.
*/
lang: '',
/**
* Will default to 's' if the window height is smaller than the minimum height and
* 'm' otherwise
* Will default to 's' if the window height is smaller than the minimum
* height and 'm' otherwise.
*/
iconsize: '',
bkgd_color: '#FFF',
@ -29098,7 +29100,7 @@
},
/**
* LOCALE
* LOCALE.
* @name module:SVGEditor.uiStrings
* @type {PlainObject}
*/
@ -29271,7 +29273,7 @@
);
}
/**
* EXPORTS
* EXPORTS.
*/
/**
@ -29457,7 +29459,7 @@
editor.curConfig = curConfig; // Update exported value
};
/**
* All methods are optional
* All methods are optional.
* @interface module:SVGEditor.CustomHandler
* @type {PlainObject}
*/
@ -29476,7 +29478,7 @@
* Its responsibilities are:
* - accept the string contents of the current document
* - invoke a file chooser dialog in 'save' mode
* - save the file to location chosen by the user
* - save the file to location chosen by the user.
* @function module:SVGEditor.CustomHandler#save
* @param {external:Window} win
* @param {module:svgcanvas.SvgCanvas#event:saved} svgStr A string of the SVG
@ -33215,7 +33217,7 @@
// TODO: Group UI functions into a public editor.ui interface.
/**
* See {@link http://api.jquery.com/bind/#bind-eventType-eventData-handler}
* See {@link http://api.jquery.com/bind/#bind-eventType-eventData-handler}.
* @callback module:SVGEditor.DropDownCallback
* @param {external:jQuery.Event} ev See {@link http://api.jquery.com/Types/#Event}
* @listens external:jQuery.Event
@ -35267,7 +35269,7 @@
/* eslint-disable jsdoc/require-property */
/**
* Associate all button actions as well as non-button keyboard shortcuts
* Associate all button actions as well as non-button keyboard shortcuts.
* @namespace {PlainObject} module:SVGEditor~Actions
*/

14
dist/index-umd.min.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -86,7 +86,7 @@
}
/**
* For parsing color values
* For parsing color values.
* @module RGBColor
* @author Stoyan Stefanov <sstoo@gmail.com>
* @see https://www.phpied.com/rgb-color-parser-in-javascript/

View File

@ -2412,13 +2412,13 @@
})();
/**
* Namespaces or tools therefor
* Namespaces or tools therefor.
* @module namespaces
* @license MIT
*/
/**
* Common namepaces constants in alpha order
* Common namepaces constants in alpha order.
* @enum {string}
* @type {PlainObject}
* @memberof module:namespaces

130
dist/svgcanvas-iife.js vendored
View File

@ -2510,7 +2510,7 @@ var SvgCanvas = (function () {
})();
/**
* jQuery module to work with SVG attributes
* A jQuery module to work with SVG attributes.
* @module jQueryAttr
* @license MIT
*/
@ -2813,13 +2813,13 @@ var SvgCanvas = (function () {
}
/**
* Namespaces or tools therefor
* Namespaces or tools therefor.
* @module namespaces
* @license MIT
*/
/**
* Common namepaces constants in alpha order
* Common namepaces constants in alpha order.
* @enum {string}
* @type {PlainObject}
* @memberof module:namespaces
@ -3188,14 +3188,14 @@ var SvgCanvas = (function () {
*/
/**
* (DOES NOT THROW DOMException, INDEX_SIZE_ERR)
* DOES NOT THROW DOMException, INDEX_SIZE_ERR.
* @function module:SVGTransformList.SVGEditTransformList#getItem
* @param {Integer} index unsigned long
* @returns {SVGTransform}
*/
/**
* (DOES NOT THROW DOMException, INDEX_SIZE_ERR)
* DOES NOT THROW DOMException, INDEX_SIZE_ERR.
* @function module:SVGTransformList.SVGEditTransformList#insertItemBefore
* @param {SVGTransform} newItem
* @param {Integer} index unsigned long
@ -3203,7 +3203,7 @@ var SvgCanvas = (function () {
*/
/**
* (DOES NOT THROW DOMException, INDEX_SIZE_ERR)
* DOES NOT THROW DOMException, INDEX_SIZE_ERR.
* @function module:SVGTransformList.SVGEditTransformList#replaceItem
* @param {SVGTransform} newItem
* @param {Integer} index unsigned long
@ -3211,7 +3211,7 @@ var SvgCanvas = (function () {
*/
/**
* (DOES NOT THROW DOMException, INDEX_SIZE_ERR)
* DOES NOT THROW DOMException, INDEX_SIZE_ERR.
* @function module:SVGTransformList.SVGEditTransformList#removeItem
* @param {Integer} index unsigned long
* @returns {SVGTransform}
@ -3224,7 +3224,7 @@ var SvgCanvas = (function () {
*/
/**
* NOT IMPLEMENTED
* NOT IMPLEMENTED.
* @ignore
* @function module:SVGTransformList.SVGEditTransformList#createSVGTransformFromMatrix
* @param {SVGMatrix} matrix
@ -3232,7 +3232,7 @@ var SvgCanvas = (function () {
*/
/**
* NOT IMPLEMENTED
* NOT IMPLEMENTED.
* @ignore
* @function module:SVGTransformList.SVGEditTransformList#consolidate
* @returns {SVGTransform}
@ -3584,7 +3584,7 @@ var SvgCanvas = (function () {
};
/**
* Tools for working with units
* Tools for working with units.
* @module units
* @license MIT
*
@ -3687,7 +3687,7 @@ var SvgCanvas = (function () {
};
};
/**
* Group: Unit conversion functions
* Group: Unit conversion functions.
*/
/**
@ -3827,7 +3827,7 @@ var SvgCanvas = (function () {
};
/**
* Group: Undo/Redo history management
* Group: Undo/Redo history management.
*/
var HistoryEventTypes = {
@ -3870,7 +3870,7 @@ var SvgCanvas = (function () {
*/
/**
* Applies
* Applies.
*
* @function module:history.HistoryCommand#apply
* @param {module:history.HistoryEventHandler} handler
@ -3880,7 +3880,7 @@ var SvgCanvas = (function () {
/**
*
* Unapplies
* Unapplies.
* @function module:history.HistoryCommand#unapply
* @param {module:history.HistoryEventHandler} handler
* @fires module:history~Command#event:history
@ -3888,25 +3888,25 @@ var SvgCanvas = (function () {
*/
/**
* Returns the elements
* Returns the elements.
* @function module:history.HistoryCommand#elements
* @returns {Element[]}
*/
/**
* Gets the text
* Gets the text.
* @function module:history.HistoryCommand#getText
* @returns {string}
*/
/**
* Gives the type
* Gives the type.
* @function module:history.HistoryCommand.type
* @returns {string}
*/
/**
* Gives the type
* Gives the type.
* @function module:history.HistoryCommand#type
* @returns {string}
*/
@ -4735,7 +4735,7 @@ var SvgCanvas = (function () {
});
/**
* Mathematical utilities
* Mathematical utilities.
* @module math
* @license MIT
*
@ -5031,7 +5031,7 @@ var SvgCanvas = (function () {
*/
/**
* Object with the following keys/values
* Object with the following keys/values.
* @typedef {PlainObject} module:path.SVGElementJSON
* @property {string} element - Tag name of the SVG element to create
* @property {PlainObject<string, string>} attr - Has key-value attributes to assign to the new element. An `id` should be set so that {@link module:utilities.EditorContext#addSVGElementFromJson} can later re-identify the element for modification or replacement.
@ -5060,7 +5060,7 @@ var SvgCanvas = (function () {
*/
/**
* Note: This doesn't round to an integer necessarily
* Note: This doesn't round to an integer necessarily.
* @function module:path.EditorContext#round
* @param {Float} val
* @returns {Float} Rounded value to nearest value based on `currentZoom`
@ -5158,19 +5158,19 @@ var SvgCanvas = (function () {
*/
/**
* Returns the last created DOM element ID string
* Returns the last created DOM element ID string.
* @function module:path.EditorContext#getId
* @returns {string}
*/
/**
* Creates and returns a unique ID string for a DOM element
* Creates and returns a unique ID string for a DOM element.
* @function module:path.EditorContext#getNextId
* @returns {string}
*/
/**
* Gets the desired element from a mouse event
* Gets the desired element from a mouse event.
* @function module:path.EditorContext#getMouseTarget
* @param {external:MouseEvent} evt - Event object from the mouse event
* @returns {Element} DOM element we want
@ -6621,7 +6621,7 @@ var SvgCanvas = (function () {
}
};
/**
* This is how we map paths to our preferred relative segment types
* This is how we map paths to our preferred relative segment types.
* @name module:path.pathMap
* @type {GenericArray}
*/
@ -6877,8 +6877,8 @@ var SvgCanvas = (function () {
/* eslint-disable jsdoc/require-property */
/**
* Group: Path edit functions
* Functions relating to editing path elements
* Group: Path edit functions.
* Functions relating to editing path elements.
* @namespace {PlainObject} pathActions
* @memberof module:path
*/
@ -7865,7 +7865,7 @@ var SvgCanvas = (function () {
// Can't seem to use `@borrows` here, so using `@see`
/**
* Smooth polyline into path
* Smooth polyline into path.
* @function module:path.pathActions.smoothPolylineIntoPath
* @see module:path~smoothPolylineIntoPath
*/
@ -7943,7 +7943,7 @@ var SvgCanvas = (function () {
// Can't seem to use `@borrows` here, so using `@see`
/**
* Convert a path to one with only absolute or relative values
* Convert a path to one with only absolute or relative values.
* @function module:path.pathActions.convertPath
* @see module:path.convertPath
*/
@ -7964,7 +7964,7 @@ var SvgCanvas = (function () {
var domcontainer_ = null;
var svgroot_ = null;
/**
* Object with the following keys/values
* Object with the following keys/values.
* @typedef {PlainObject} module:utilities.SVGElementJSON
* @property {string} element - Tag name of the SVG element to create
* @property {PlainObject<string, string>} attr - Has key-value attributes to assign to the new element. An `id` should be set so that {@link module:utilities.EditorContext#addSVGElementFromJson} can later re-identify the element for modification or replacement.
@ -7988,7 +7988,7 @@ var SvgCanvas = (function () {
/**
* Create a new SVG element based on the given object keys/values and add it
* to the current layer.
* The element will be run through `cleanupElement` before being returned
* The element will be run through `cleanupElement` before being returned.
* @function module:utilities.EditorContext#addSVGElementFromJson
* @param {module:utilities.SVGElementJSON} data
* @returns {Element} The new element
@ -10638,7 +10638,7 @@ var SvgCanvas = (function () {
}; // Layer API Functions
/**
* Group: Layers
* Group: Layers.
*/
/**
@ -10686,7 +10686,7 @@ var SvgCanvas = (function () {
*/
/**
* Run the callback function associated with the given event
* Run the callback function associated with the given event.
* @function module:draw.DrawCanvasInit#call
* @param {"changed"|"contextset"} ev - String with the event name
* @param {module:svgcanvas.SvgCanvas#event:changed|module:svgcanvas.SvgCanvas#event:contextset} arg - Argument to pass through to the callback
@ -11010,7 +11010,7 @@ var SvgCanvas = (function () {
/**
* This defines which elements and attributes that we support (or at least
* don't remove)
* don't remove).
* @type {PlainObject}
*/
@ -13432,7 +13432,7 @@ var SvgCanvas = (function () {
var svgroot = svgdoc.importNode(text2xml('<svg id="svgroot" xmlns="' + NS.SVG + '" xlinkns="' + NS.XLINK + '" ' + 'width="' + dimensions[0] + '" height="' + dimensions[1] + '" x="' + dimensions[0] + '" y="' + dimensions[1] + '" overflow="visible">' + '<defs>' + '<filter id="canvashadow" filterUnits="objectBoundingBox">' + '<feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>' + '<feOffset in="blur" dx="5" dy="5" result="offsetBlur"/>' + '<feMerge>' + '<feMergeNode in="offsetBlur"/>' + '<feMergeNode in="SourceGraphic"/>' + '</feMerge>' + '</filter>' + '</defs>' + '</svg>').documentElement, true);
container.append(svgroot);
/**
* The actual element that represents the final output SVG element
* The actual element that represents the final output SVG element.
* @name module:svgcanvas~svgcontent
* @type {SVGSVGElement}
*/
@ -13477,7 +13477,7 @@ var SvgCanvas = (function () {
idprefix = p;
};
/**
* Current draw.Drawing object
* Current `draw.Drawing` object.
* @type {module:draw.Drawing}
* @name module:svgcanvas.SvgCanvas#current_drawing_
*/
@ -13494,7 +13494,7 @@ var SvgCanvas = (function () {
return canvas.current_drawing_;
};
/**
* Float displaying the current zoom level (1 = 100%, .5 = 50%, etc)
* Float displaying the current zoom level (1 = 100%, .5 = 50%, etc.).
* @type {Float}
*/
@ -13630,8 +13630,8 @@ var SvgCanvas = (function () {
return curConfig.baseUnit;
};
/**
* initialize from units.js.
* Send in an object implementing the ElementContainer interface (see units.js)
* Initialize from units.js.
* Send in an object implementing the ElementContainer interface (see units.js).
*/
@ -13863,7 +13863,7 @@ var SvgCanvas = (function () {
init$6(curConfig,
/**
* Export to select.js
* Export to select.js.
* @implements {module:select.SVGFactory}
*/
{
@ -13879,7 +13879,7 @@ var SvgCanvas = (function () {
getCurrentZoom: getCurrentZoom
});
/**
* This object manages selectors for us
* This object manages selectors for us.
* @name module:svgcanvas.SvgCanvas#selectorManager
* @type {module:select.SelectorManager}
*/
@ -14696,26 +14696,26 @@ var SvgCanvas = (function () {
var events = {};
canvas.call = call;
/**
* Array of what was changed (elements, layers)
* Array of what was changed (elements, layers).
* @event module:svgcanvas.SvgCanvas#event:changed
* @type {Element[]}
*/
/**
* Array of selected elements
* Array of selected elements.
* @event module:svgcanvas.SvgCanvas#event:selected
* @type {Element[]}
*/
/**
* Array of selected elements
* Array of selected elements.
* @event module:svgcanvas.SvgCanvas#event:transition
* @type {Element[]}
*/
/**
* The Element is always `SVGGElement`?
* If not `null`, will be the set current group element
* If not `null`, will be the set current group element.
* @event module:svgcanvas.SvgCanvas#event:contextset
* @type {null|Element}
*/
@ -14776,7 +14776,7 @@ var SvgCanvas = (function () {
*/
/**
* SVG canvas converted to string
* SVG canvas converted to string.
* @event module:svgcanvas.SvgCanvas#event:saved
* @type {string}
*/
@ -14820,7 +14820,7 @@ var SvgCanvas = (function () {
/**
* The promise return, if present, resolves to `undefined`
* (`extension_added`, `exported`, `saved`)
* (`extension_added`, `exported`, `saved`).
* @typedef {Promise<void>|void} module:svgcanvas.EventHandlerReturn
*/
@ -14999,7 +14999,7 @@ var SvgCanvas = (function () {
var rootSctm = null;
/**
* Group: Selection
* Group: Selection.
*/
// TODO: do we need to worry about selectedBBoxes here?
@ -15566,7 +15566,7 @@ var SvgCanvas = (function () {
break;
}
/**
* The main (left) mouse button is held down on the canvas area
* The main (left) mouse button is held down on the canvas area.
* @event module:svgcanvas.SvgCanvas#event:ext_mouseDown
* @type {PlainObject}
* @property {MouseEvent} event The event object
@ -16109,7 +16109,7 @@ var SvgCanvas = (function () {
}
}
/**
* The mouse has moved on the canvas area
* The mouse has moved on the canvas area.
* @event module:svgcanvas.SvgCanvas#event:ext_mouseMove
* @type {PlainObject}
* @property {MouseEvent} event The event object
@ -16426,7 +16426,7 @@ var SvgCanvas = (function () {
}
}
/**
* The main (left) mouse button is released (anywhere)
* The main (left) mouse button is released (anywhere).
* @event module:svgcanvas.SvgCanvas#event:ext_mouseUp
* @type {PlainObject}
* @property {MouseEvent} event The event object
@ -16659,7 +16659,7 @@ var SvgCanvas = (function () {
/**
* Group: Text edit functions
* Functions relating to editing text elements
* Functions relating to editing text elements.
* @namespace {PlainObject} textActions
* @memberof module:svgcanvas.SvgCanvas#
*/
@ -17184,7 +17184,7 @@ var SvgCanvas = (function () {
);
}();
/**
* Group: Serialization
* Group: Serialization.
*/
/**
@ -17527,7 +17527,7 @@ var SvgCanvas = (function () {
}; // end svgToString()
/**
* Function to run when image data is found
* Function to run when image data is found.
* @callback module:svgcanvas.ImageEmbeddedCallback
* @param {string|false} result Data URL
* @returns {void}
@ -18700,7 +18700,7 @@ var SvgCanvas = (function () {
}
});
/**
* Group: Document functions
* Group: Document functions.
*/
/**
@ -19167,7 +19167,7 @@ var SvgCanvas = (function () {
*/
/**
* The bottom panel was updated
* The bottom panel was updated.
* @event module:svgcanvas.SvgCanvas#event:ext_toolButtonStateUpdate
* @type {PlainObject}
* @property {boolean} nofill Indicates fill is disabled
@ -19175,7 +19175,7 @@ var SvgCanvas = (function () {
*/
/**
* The element selection has changed (elements were added/removed from selection)
* The element selection has changed (elements were added/removed from selection).
* @event module:svgcanvas.SvgCanvas#event:ext_selectedChanged
* @type {PlainObject}
* @property {Element[]} elems Array of the newly selected elements
@ -19192,14 +19192,14 @@ var SvgCanvas = (function () {
*/
/**
* One or more elements were changed
* One or more elements were changed.
* @event module:svgcanvas.SvgCanvas#event:ext_elementChanged
* @type {PlainObject}
* @property {Element[]} elems Array of the affected elements
*/
/**
* Invoked as soon as the locale is ready
* Invoked as soon as the locale is ready.
* @event module:svgcanvas.SvgCanvas#event:ext_langReady
* @type {PlainObject}
* @property {string} lang The two-letter language code
@ -19222,13 +19222,13 @@ var SvgCanvas = (function () {
*/
/**
* Called when new image is created
* Called when new image is created.
* @event module:svgcanvas.SvgCanvas#event:ext_onNewDocument
* @type {void}
*/
/**
* Called when sidepanel is resized or toggled
* Called when sidepanel is resized or toggled.
* @event module:svgcanvas.SvgCanvas#event:ext_workareaResized
* @type {void}
*/
@ -19289,7 +19289,7 @@ var SvgCanvas = (function () {
currentMode = name;
};
/**
* Group: Element Styling
* Group: Element Styling.
*/
/**
@ -20162,7 +20162,7 @@ var SvgCanvas = (function () {
canvas.ungroupSelectedElement();
};
/**
* Group: Element manipulation
* Group: Element manipulation.
*/
/**
@ -20511,7 +20511,7 @@ var SvgCanvas = (function () {
clipb.forEach(checkIDs); // Give extensions like the connector extension a chance to reflect new IDs and remove invalid elements
/**
* Triggered when `pasteElements` is called from a paste action (context menu or key)
* Triggered when `pasteElements` is called from a paste action (context menu or key).
* @event module:svgcanvas.SvgCanvas#event:ext_IDsUpdated
* @type {PlainObject}
* @property {module:svgcanvas.SVGAsJSON[]} elems
@ -21315,7 +21315,7 @@ var SvgCanvas = (function () {
this.moveSelectedElements(dx, dy);
};
/**
* Group: Additional editor tools
* Group: Additional editor tools.
*/
/**

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1,6 @@
/* globals jQuery */
/**
* Browser detection
* Browser detection.
* @module browser
* @license MIT
*

View File

@ -1,7 +1,8 @@
/* eslint-disable new-cap, class-methods-use-this */
// Todo: Compare with latest canvg (add any improvements of ours) and add full JSDocs (denoting links to standard APIs and which are custom): https://github.com/canvg/canvg
/**
* canvg.js - Javascript SVG parser and renderer on Canvas
* Javascript SVG parser and renderer on Canvas.
* @file canvg.js
* @module canvg
* @license MIT
* @author Gabe Lerner <gabelerner@gmail.com>

View File

@ -1,5 +1,5 @@
/**
* For parsing color values
* For parsing color values.
* @module RGBColor
* @author Stoyan Stefanov <sstoo@gmail.com>
* @see https://www.phpied.com/rgb-color-parser-in-javascript/

View File

@ -1,6 +1,6 @@
/* globals jQuery */
/**
* Adds context menu functionality
* Adds context menu functionality.
* @module contextmenu
* @license Apache-2.0
* @author Adam Bender

View File

@ -1,5 +1,5 @@
/**
* jQuery Context Menu Plugin
* @file jQuery Context Menu Plugin
* Cory S.N. LaViska
* A Beautiful Site ({@link https://abeautifulsite.net/})
* Modified by Alexis Deveria

View File

@ -1,6 +1,6 @@
/* globals jQuery */
/**
* Manipulating coordinates
* Manipulating coordinates.
* @module coords
* @license MIT
*/

View File

@ -1,6 +1,6 @@
/* globals jQuery */
/**
* Tools for drawing
* Tools for drawing.
* @module draw
* @license MIT
* @copyright 2011 Jeff Schiller
@ -697,7 +697,7 @@ export const randomizeIds = function (enableRandomization, currentDrawing) {
// Layer API Functions
/**
* Group: Layers
* Group: Layers.
*/
/**
@ -738,7 +738,7 @@ export const randomizeIds = function (enableRandomization, currentDrawing) {
* @returns {void}
*/
/**
* Run the callback function associated with the given event
* Run the callback function associated with the given event.
* @function module:draw.DrawCanvasInit#call
* @param {"changed"|"contextset"} ev - String with the event name
* @param {module:svgcanvas.SvgCanvas#event:changed|module:svgcanvas.SvgCanvas#event:contextset} arg - Argument to pass through to the callback

View File

@ -68,7 +68,7 @@ function exportPDF () {
svgCanvas.getUIStrings()(function (uiStrings) {
const str = uiStrings.notification.loadingImage;
/**
/*
// If you want to handle the PDF blob yourself, do as follows
svgCanvas.bind('exportedPDF', function (win, data) {
alert(data.output);

View File

@ -1,5 +1,6 @@
/**
* Handles underlying communication between the embedding window and the editor frame
* Handles underlying communication between the embedding window and the
* editor frame.
* @module EmbeddedSVGEdit
*/

View File

@ -1,5 +1,5 @@
/**
* ext-arrows.js
* @file ext-arrows.js
*
* @license MIT
*

View File

@ -1,5 +1,5 @@
/**
* ext-closepath.js
* @file ext-closepath.js
*
* @license MIT
*

View File

@ -1,6 +1,6 @@
/* eslint-disable unicorn/no-fn-reference-in-iterator */
/**
* ext-connector.js
* @file ext-connector.js
*
* @license MIT
*

View File

@ -1,5 +1,5 @@
/**
* ext-eyedropper.js
* @file ext-eyedropper.js
*
* @license MIT
*

View File

@ -1,5 +1,5 @@
/**
* ext-foreignobject.js
* @file ext-foreignobject.js
*
* @license Apache-2.0
*

View File

@ -1,5 +1,5 @@
/**
* ext-grid.js
* @file ext-grid.js
*
* @license Apache-2.0
*

View File

@ -1,5 +1,5 @@
/**
* ext-helloworld.js
* @file ext-helloworld.js
*
* @license MIT
*

View File

@ -1,5 +1,5 @@
/**
* ext-imagelib.js
* @file ext-imagelib.js
*
* @license MIT
*

View File

@ -1,5 +1,5 @@
/**
* ext-markers.js
* @file ext-markers.js
*
* @license Apache-2.0
*

View File

@ -1,6 +1,6 @@
/* globals MathJax */
/**
* ext-mathjax.js
* @file ext-mathjax.js
*
* @license MIT
*

View File

@ -1,5 +1,5 @@
/**
* ext-overview_window.js
* @file ext-overview_window.js
*
* @license MIT
*

View File

@ -1,5 +1,5 @@
/**
* ext-panning.js
* @file ext-panning.js
*
* @license MIT
*

View File

@ -1,5 +1,5 @@
/**
* ext-placemark.js
* @file ext-placemark.js
*
*
* @copyright 2010 CloudCanvas, Inc. All rights reserved

View File

@ -1,5 +1,5 @@
/**
* ext-polygon.js
* @file ext-polygon.js
*
*
* @copyright 2010 CloudCanvas, Inc. All rights reserved

View File

@ -1,5 +1,5 @@
/**
* ext-server_moinsave.js
* @file ext-server_moinsave.js
*
* @license (MIT OR GPL-2.0-or-later)
*

View File

@ -1,5 +1,5 @@
/**
* ext-server_opensave.js
* @file ext-server_opensave.js
*
* @license MIT
*

View File

@ -1,5 +1,5 @@
/**
* ext-shapes.js
* @file ext-shapes.js
*
* @license MIT
*

View File

@ -1,5 +1,5 @@
/**
* ext-star.js
* @file ext-star.js
*
*
* @copyright 2010 CloudCanvas, Inc. All rights reserved

View File

@ -1,5 +1,5 @@
/**
* ext-storage.js
* @file ext-storage.js
*
* This extension allows automatic saving of the SVG canvas contents upon
* page unload (which can later be automatically retrieved upon future

View File

@ -1,5 +1,6 @@
/**
* Depends on Firefox add-on and executables from {@link https://github.com/brettz9/webappfind}
* Depends on Firefox add-on and executables from
* {@link https://github.com/brettz9/webappfind}.
* @author Brett Zamir
* @license MIT
* @todo See WebAppFind Readme for SVG-related todos

View File

@ -1,7 +1,7 @@
/**
* Should not be needed for same domain control (just call via child frame),
* but an API common for cross-domain and same domain use can be found
* in embedapi.js with a demo at embedapi.html
* in embedapi.js with a demo at embedapi.html.
*/
export default {
name: 'xdomain-messaging',

View File

@ -1,5 +1,5 @@
/**
* For command history tracking and undo functionality
* For command history tracking and undo functionality.
* @module history
* @license MIT
* @copyright 2010 Jeff Schiller
@ -9,7 +9,7 @@ import {getHref, setHref, getRotationAngle, isNullish} from './utilities.js';
import {removeElementFromListMap} from './svgtransformlist.js';
/**
* Group: Undo/Redo history management
* Group: Undo/Redo history management.
*/
export const HistoryEventTypes = {
BEFORE_APPLY: 'before_apply',
@ -41,7 +41,7 @@ class Command {
* @interface module:history.HistoryCommand
*/
/**
* Applies
* Applies.
*
* @function module:history.HistoryCommand#apply
* @param {module:history.HistoryEventHandler} handler
@ -50,29 +50,29 @@ class Command {
*/
/**
*
* Unapplies
* Unapplies.
* @function module:history.HistoryCommand#unapply
* @param {module:history.HistoryEventHandler} handler
* @fires module:history~Command#event:history
* @returns {void|true}
*/
/**
* Returns the elements
* Returns the elements.
* @function module:history.HistoryCommand#elements
* @returns {Element[]}
*/
/**
* Gets the text
* Gets the text.
* @function module:history.HistoryCommand#getText
* @returns {string}
*/
/**
* Gives the type
* Gives the type.
* @function module:history.HistoryCommand.type
* @returns {string}
*/
/**
* Gives the type
* Gives the type.
* @function module:history.HistoryCommand#type
* @returns {string}
*/

View File

@ -1,5 +1,5 @@
/**
* HistoryRecordingService component of history
* HistoryRecordingService component of history.
* @module history
* @license MIT
* @copyright 2016 Flint O'Brien

View File

@ -1,5 +1,5 @@
/**
* jQuery module to work with SVG attributes
* A jQuery module to work with SVG attributes.
* @module jQueryAttr
* @license MIT
*/

View File

@ -1,5 +1,5 @@
/**
* jGraduate 0.4
* @file jGraduate 0.4
*
* jQuery Plugin for a gradient picker
*
@ -86,13 +86,13 @@ export default function jQueryPluginJGraduate ($) {
*/
this.type = options.copy.type;
/**
* Represents opacity (0-100)
* Represents opacity (0-100).
* @name module:jGraduate~Paint#alpha
* @type {Float}
*/
this.alpha = options.copy.alpha;
/**
* Represents #RRGGBB hex of color
* Represents #RRGGBB hex of color.
* @name module:jGraduate~Paint#solidColor
* @type {string}
*/
@ -169,7 +169,7 @@ export default function jQueryPluginJGraduate ($) {
*/
$.fn.jGraduateDefaults = /** @lends external:jQuery.fn.jGraduateDefaults */ {
/**
* Creates an object with a 'none' color
* Creates an object with a 'none' color.
* @type {external:jQuery.jGraduate.Paint}
* @see module:jGraduate.Options
*/

View File

@ -1,6 +1,6 @@
/* eslint-disable no-bitwise */
/**
* jPicker (Adapted from version 1.1.6)
* @file jPicker (Adapted from version 1.1.6)
*
* jQuery Plugin for Photoshop style color picker
*
@ -698,7 +698,7 @@ const jPicker = function ($) {
$.jPicker = /** @lends external:jQuery.jPicker */ {
/* eslint-enable jsdoc/require-property */
/**
* Array holding references to each active instance of the jPicker control
* Array holding references to each active instance of the jPicker control.
* @type {external:jQuery.fn.$.fn.jPicker[]}
*/
List: [],
@ -1006,7 +1006,7 @@ const jPicker = function ($) {
}
},
/**
* color conversion methods - make public to give use to external scripts
* Color conversion methods - make public to give use to external scripts.
* @namespace
*/
ColorMethods: {
@ -1191,7 +1191,7 @@ const jPicker = function ($) {
*/
/**
* Will be bound to active {@link jQuery.jPicker.Color}
* Will be bound to active {@link jQuery.jPicker.Color}.
* @callback module:jPicker.LiveCallback
* @param {external:jQuery} ui
* @param {Element} context
@ -2331,8 +2331,8 @@ const jPicker = function ($) {
* @property {string} localization.tooltips.hex.alpha
*/
/**
* jPicker defaults - you can change anything in this section (such as the
* clientPath to your images) without fear of breaking the program
* The jPicker defaults - you can change anything in this section (such as the
* clientPath to your images) without fear of breaking the program.
* @namespace {external:jQuery.fn.jPickerOptions} defaults
* @memberof external:jQuery.fn.$.fn.jPicker
* @borrows external:jQuery.fn.jPickerOptions as external:jQuery.fn.jPicker.defaults

View File

@ -1,6 +1,6 @@
/* globals jQuery */
/**
* Provides tools for the layer concept
* Provides tools for the layer concept.
* @module layer
* @license MIT
*

View File

@ -1,7 +1,7 @@
/* eslint-disable unicorn/no-fn-reference-in-iterator */
/* globals jQuery */
/**
* Localizing script for SVG-edit UI
* Localizing script for SVG-edit UI.
* @module locale
* @license MIT
*
@ -11,11 +11,12 @@
*/
/**
* Used, for example, in the ImageLibs extension, to present libraries (with name/URL/description) in order
* Used, for example, in the ImageLibs extension, to present libraries
* (with name/URL/description) in order.
* @typedef {GenericArray<module:locale.LocaleStrings>} module:locale.LocaleArray
*/
/**
* The string keys of the object are two-letter language codes
* The string keys of the object are two-letter language codes.
* @tutorial LocaleDocs
* @typedef {PlainObject<string, string|module:locale.LocaleStrings|module:locale.LocaleArray>} module:locale.LocaleStrings
*/
@ -91,7 +92,7 @@ export const setStrings = function (type, obj, ids) {
/**
* The "data" property is generally set to an an array of objects with
* "id" and "title" or "textContent" properties
* "id" and "title" or "textContent" properties.
* @typedef {PlainObject} module:locale.AddLangExtensionLocaleData
* @property {module:locale.LocaleStrings[]} data See {@tutorial LocaleDocs}
*/

View File

@ -1,5 +1,5 @@
/**
* Mathematical utilities
* Mathematical utilities.
* @module math
* @license MIT
*

View File

@ -1,11 +1,11 @@
/**
* Namespaces or tools therefor
* Namespaces or tools therefor.
* @module namespaces
* @license MIT
*/
/**
* Common namepaces constants in alpha order
* Common namepaces constants in alpha order.
* @enum {string}
* @type {PlainObject}
* @memberof module:namespaces

View File

@ -1,6 +1,6 @@
/* globals jQuery */
/**
* Path functionality
* Path functionality.
* @module path
* @license MIT
*
@ -86,7 +86,7 @@ let editorContext_ = null;
*/
/**
* Object with the following keys/values
* Object with the following keys/values.
* @typedef {PlainObject} module:path.SVGElementJSON
* @property {string} element - Tag name of the SVG element to create
* @property {PlainObject<string, string>} attr - Has key-value attributes to assign to the new element. An `id` should be set so that {@link module:utilities.EditorContext#addSVGElementFromJson} can later re-identify the element for modification or replacement.
@ -111,7 +111,7 @@ let editorContext_ = null;
* @returns {void}
*/
/**
* Note: This doesn't round to an integer necessarily
* Note: This doesn't round to an integer necessarily.
* @function module:path.EditorContext#round
* @param {Float} val
* @returns {Float} Rounded value to nearest value based on `currentZoom`
@ -193,17 +193,17 @@ let editorContext_ = null;
* @returns {Float} The current zoom level
*/
/**
* Returns the last created DOM element ID string
* Returns the last created DOM element ID string.
* @function module:path.EditorContext#getId
* @returns {string}
*/
/**
* Creates and returns a unique ID string for a DOM element
* Creates and returns a unique ID string for a DOM element.
* @function module:path.EditorContext#getNextId
* @returns {string}
*/
/**
* Gets the desired element from a mouse event
* Gets the desired element from a mouse event.
* @function module:path.EditorContext#getMouseTarget
* @param {external:MouseEvent} evt - Event object from the mouse event
* @returns {Element} DOM element we want
@ -1503,7 +1503,7 @@ export const reorientGrads = function (elem, m) {
};
/**
* This is how we map paths to our preferred relative segment types
* This is how we map paths to our preferred relative segment types.
* @name module:path.pathMap
* @type {GenericArray}
*/
@ -1699,8 +1699,8 @@ function pathDSegment (letter, points, morePoints, lastPoint) {
/* eslint-disable jsdoc/require-property */
/**
* Group: Path edit functions
* Functions relating to editing path elements
* Group: Path edit functions.
* Functions relating to editing path elements.
* @namespace {PlainObject} pathActions
* @memberof module:path
*/
@ -2640,7 +2640,7 @@ export const pathActions = (function () {
},
// Can't seem to use `@borrows` here, so using `@see`
/**
* Smooth polyline into path
* Smooth polyline into path.
* @function module:path.pathActions.smoothPolylineIntoPath
* @see module:path~smoothPolylineIntoPath
*/
@ -2704,7 +2704,7 @@ export const pathActions = (function () {
},
// Can't seem to use `@borrows` here, so using `@see`
/**
* Convert a path to one with only absolute or relative values
* Convert a path to one with only absolute or relative values.
* @function module:path.pathActions.convertPath
* @see module:path.convertPath
*/

View File

@ -1,5 +1,5 @@
/**
* Tools for SVG sanitization
* Tools for SVG sanitization.
* @module sanitize
* @license MIT
*
@ -15,7 +15,7 @@ const REVERSE_NS = getReverseNS();
// Todo: Split out into core attributes, presentation attributes, etc. so consistent
/**
* This defines which elements and attributes that we support (or at least
* don't remove)
* don't remove).
* @type {PlainObject}
*/
const svgWhiteList_ = {

View File

@ -1,6 +1,6 @@
/* globals jQuery */
/**
* DOM element selection box tools
* DOM element selection box tools.
* @module select
* @license MIT
*

View File

@ -1,53 +1,55 @@
/**
* SpinButton control
* SpinButton control.
*
* Adds bells and whistles to any ordinary textbox to
* make it look and feel like a SpinButton Control.
*
* Supplies {@link external:jQuery.fn.SpinButton} (and also {@link external:jQuery.loadingStylesheets})
* Supplies {@link external:jQuery.fn.SpinButton} (and also {@link external:jQuery.loadingStylesheets}).
*
* Originally written by George Adamson, Software Unity (george.jquery@softwareunity.com) August 2006.
* - Added min/max options
* - Added step size option
* - Added bigStep (page up/down) option
* Originally written by George Adamson, Software Unity (george.jquery@softwareunity.com) August 2006:
* - Added min/max options.
* - Added step size option.
* - Added bigStep (page up/down) option.
*
* Modifications made by Mark Gibson, (mgibson@designlinks.net) September 2006:
* - Converted to jQuery plugin
* - Allow limited or unlimited min/max values
* - Allow custom class names, and add class to input element
* - Removed global vars
* - Reset (to original or through config) when invalid value entered
* - Repeat whilst holding mouse button down (with initial pause, like keyboard repeat)
* - Support mouse wheel in Firefox
* - Fix double click in IE
* - Refactored some code and renamed some vars
* - Converted to jQuery plugin.
* - Allow limited or unlimited min/max values.
* - Allow custom class names, and add class to input element.
* - Removed global vars.
* - Reset (to original or through config) when invalid value entered.
* - Repeat whilst holding mouse button down (with initial pause, like keyboard repeat).
* - Support mouse wheel in Firefox.
* - Fix double click in IE.
* - Refactored some code and renamed some vars.
*
* Modifications by Jeff Schiller, June 2009:
* - provide callback function for when the value changes based on the following
* {@link https://www.mail-archive.com/jquery-en@googlegroups.com/msg36070.html}
* {@link https://www.mail-archive.com/jquery-en@googlegroups.com/msg36070.html}.
*
* Modifications by Jeff Schiller, July 2009:
* - improve styling for widget in Opera
* - consistent key-repeat handling cross-browser
* - improve styling for widget in Opera.
* - consistent key-repeat handling cross-browser.
*
* Modifications by Alexis Deveria, October 2009:
* - provide "stepfunc" callback option to allow custom function to run when changing a value
* - provide "stepfunc" callback option to allow custom function to run when changing a value.
* - Made adjustValue(0) only run on certain keyup events, not all.
*
* Tested in IE6, Opera9, Firefox 1.5
* Tested in IE6, Opera9, Firefox 1.5.
*
* | Version | Date | Author | Notes
* |---------|------|--------|------|
* | v1.0 | 11 Aug 2006 | George Adamson | First release
* | v1.1 | Aug 2006 | George Adamson | Minor enhancements
* | v1.2 | 27 Sep 2006 | Mark Gibson | Major enhancements
* | v1.3a | 28 Sep 2006 | George Adamson | Minor enhancements
* | v1.4 | 18 Jun 2009 | Jeff Schiller | Added callback function
* | v1.5 | 06 Jul 2009 | Jeff Schiller | Fixes for Opera.
* | v1.6 | 13 Oct 2009 | Alexis Deveria | Added stepfunc function
* | v1.7 | 21 Oct 2009 | Alexis Deveria | Minor fixes.<br />Fast-repeat for keys and live updating as you type.
* | v1.8 | 12 Jan 2010 | Benjamin Thomas | Fixes for mouseout behavior.<br />Added smallStep
* | Version | Date | Author | Notes |
* |---------|------|--------|-------|
* | v1.0 | 11 Aug 2006 | George Adamson | First release |
* | v1.1 | Aug 2006 | George Adamson | Minor enhancements |
* | v1.2 | 27 Sep 2006 | Mark Gibson | Major enhancements |
* | v1.3a | 28 Sep 2006 | George Adamson | Minor enhancements |
* | v1.4 | 18 Jun 2009 | Jeff Schiller | Added callback function |
* | v1.5 | 06 Jul 2009 | Jeff Schiller | Fixes for Opera. |
* | v1.6 | 13 Oct 2009 | Alexis Deveria | Added stepfunc function |
* | v1.7 | 21 Oct 2009 | Alexis Deveria | Minor fixes.<br />Fast-repeat for keys and live updating as you type. |
* | v1.8 | 12 Jan 2010 | Benjamin Thomas | Fixes for mouseout behavior.<br />Added smallStep |
* | v1.9 | 20 May 2018 | Brett Zamir | Avoid SVGEdit dependency via `stateObj` config;<br />convert to ES6 module |
* .
*
* @module jQuerySpinButton
* @example
// Create group of settings to initialise spinbutton(s). (Optional)

View File

@ -31,7 +31,7 @@ import {
import loadStylesheets from './external/load-stylesheets/index-es.js';
/**
* The main module for the visual SVG Editor
* The main module for the visual SVG Editor.
*
* @license MIT
*
@ -102,7 +102,7 @@ const callbacks = [],
* @typedef {"s"|"m"|"l"|"xl"|Float} module:SVGEditor.IconSize
*/
/**
* Preferences
* Preferences.
* @interface module:SVGEditor.Prefs
* @property {string} [lang="en"] Two-letter language code. The language must exist in the Editor Preferences language list. Defaults to "en" if `locale.js` detection does not detect another language.
* @property {module:SVGEditor.IconSize} [iconsize="s"|"m"] Size of the toolbar icons. Will default to 's' if the window height is smaller than the minimum height and 'm' otherwise.
@ -122,12 +122,12 @@ const callbacks = [],
defaultPrefs = /** @lends module:SVGEditor~defaultPrefs */ {
// EDITOR OPTIONS (DIALOG)
/**
* Default to "en" if locale.js detection does not detect another language
* Default to "en" if locale.js detection does not detect another language.
*/
lang: '',
/**
* Will default to 's' if the window height is smaller than the minimum height and
* 'm' otherwise
* Will default to 's' if the window height is smaller than the minimum
* height and 'm' otherwise.
*/
iconsize: '',
bkgd_color: '#FFF',
@ -286,7 +286,7 @@ const callbacks = [],
avoidClientSideOpen: false
},
/**
* LOCALE
* LOCALE.
* @name module:SVGEditor.uiStrings
* @type {PlainObject}
*/
@ -381,7 +381,7 @@ function getImportLocale ({defaultLang, defaultName}) {
}
/**
* EXPORTS
* EXPORTS.
*/
/**
@ -569,7 +569,7 @@ editor.setConfig = function (opts, cfgCfg) {
};
/**
* All methods are optional
* All methods are optional.
* @interface module:SVGEditor.CustomHandler
* @type {PlainObject}
*/
@ -586,7 +586,7 @@ editor.setConfig = function (opts, cfgCfg) {
* Its responsibilities are:
* - accept the string contents of the current document
* - invoke a file chooser dialog in 'save' mode
* - save the file to location chosen by the user
* - save the file to location chosen by the user.
* @function module:SVGEditor.CustomHandler#save
* @param {external:Window} win
* @param {module:svgcanvas.SvgCanvas#event:saved} svgStr A string of the SVG
@ -3939,7 +3939,7 @@ editor.init = function () {
// Made public for UI customization.
// TODO: Group UI functions into a public editor.ui interface.
/**
* See {@link http://api.jquery.com/bind/#bind-eventType-eventData-handler}
* See {@link http://api.jquery.com/bind/#bind-eventType-eventData-handler}.
* @callback module:SVGEditor.DropDownCallback
* @param {external:jQuery.Event} ev See {@link http://api.jquery.com/Types/#Event}
* @listens external:jQuery.Event
@ -5554,7 +5554,7 @@ editor.init = function () {
];
/* eslint-disable jsdoc/require-property */
/**
* Associate all button actions as well as non-button keyboard shortcuts
* Associate all button actions as well as non-button keyboard shortcuts.
* @namespace {PlainObject} module:SVGEditor~Actions
*/
const Actions = (function () {

View File

@ -1,7 +1,7 @@
/* eslint-disable indent, unicorn/no-fn-reference-in-iterator */
/* globals jQuery, jsPDF */
/**
* Numerous tools for working with the editor's "canvas"
* Numerous tools for working with the editor's "canvas".
* @module svgcanvas
*
* @license MIT
@ -173,7 +173,7 @@ const svgroot = svgdoc.importNode(
container.append(svgroot);
/**
* The actual element that represents the final output SVG element
* The actual element that represents the final output SVG element.
* @name module:svgcanvas~svgcontent
* @type {SVGSVGElement}
*/
@ -220,7 +220,7 @@ canvas.setIdPrefix = function (p) {
};
/**
* Current draw.Drawing object
* Current `draw.Drawing` object.
* @type {module:draw.Drawing}
* @name module:svgcanvas.SvgCanvas#current_drawing_
*/
@ -236,7 +236,7 @@ const getCurrentDrawing = canvas.getCurrentDrawing = function () {
};
/**
* Float displaying the current zoom level (1 = 100%, .5 = 50%, etc)
* Float displaying the current zoom level (1 = 100%, .5 = 50%, etc.).
* @type {Float}
*/
let currentZoom = 1;
@ -373,8 +373,8 @@ canvas.transformListToTransform = transformListToTransform;
const getBaseUnit = () => { return curConfig.baseUnit; };
/**
* initialize from units.js.
* Send in an object implementing the ElementContainer interface (see units.js)
* Initialize from units.js.
* Send in an object implementing the ElementContainer interface (see units.js).
*/
unitsInit(
/**
@ -578,7 +578,7 @@ const round = this.round = function (val) {
selectInit(
curConfig,
/**
* Export to select.js
* Export to select.js.
* @implements {module:select.SVGFactory}
*/
{
@ -589,7 +589,7 @@ selectInit(
}
);
/**
* This object manages selectors for us
* This object manages selectors for us.
* @name module:svgcanvas.SvgCanvas#selectorManager
* @type {module:select.SelectorManager}
*/
@ -1307,23 +1307,23 @@ const events = {};
canvas.call = call;
/**
* Array of what was changed (elements, layers)
* Array of what was changed (elements, layers).
* @event module:svgcanvas.SvgCanvas#event:changed
* @type {Element[]}
*/
/**
* Array of selected elements
* Array of selected elements.
* @event module:svgcanvas.SvgCanvas#event:selected
* @type {Element[]}
*/
/**
* Array of selected elements
* Array of selected elements.
* @event module:svgcanvas.SvgCanvas#event:transition
* @type {Element[]}
*/
/**
* The Element is always `SVGGElement`?
* If not `null`, will be the set current group element
* If not `null`, will be the set current group element.
* @event module:svgcanvas.SvgCanvas#event:contextset
* @type {null|Element}
*/
@ -1376,7 +1376,7 @@ canvas.call = call;
* @type {module:svgcanvas.Message}
*/
/**
* SVG canvas converted to string
* SVG canvas converted to string.
* @event module:svgcanvas.SvgCanvas#event:saved
* @type {string}
*/
@ -1414,7 +1414,7 @@ canvas.call = call;
/**
* The promise return, if present, resolves to `undefined`
* (`extension_added`, `exported`, `saved`)
* (`extension_added`, `exported`, `saved`).
* @typedef {Promise<void>|void} module:svgcanvas.EventHandlerReturn
*/
@ -1581,7 +1581,7 @@ const logMatrix = function (m) {
let rootSctm = null;
/**
* Group: Selection
* Group: Selection.
*/
// TODO: do we need to worry about selectedBBoxes here?
@ -2072,7 +2072,7 @@ const mouseDown = function (evt) {
}
/**
* The main (left) mouse button is held down on the canvas area
* The main (left) mouse button is held down on the canvas area.
* @event module:svgcanvas.SvgCanvas#event:ext_mouseDown
* @type {PlainObject}
* @property {MouseEvent} event The event object
@ -2524,7 +2524,7 @@ const mouseMove = function (evt) {
}
/**
* The mouse has moved on the canvas area
* The mouse has moved on the canvas area.
* @event module:svgcanvas.SvgCanvas#event:ext_mouseMove
* @type {PlainObject}
* @property {MouseEvent} event The event object
@ -2786,7 +2786,7 @@ const mouseUp = function (evt) {
}
/**
* The main (left) mouse button is released (anywhere)
* The main (left) mouse button is released (anywhere).
* @event module:svgcanvas.SvgCanvas#event:ext_mouseUp
* @type {PlainObject}
* @property {MouseEvent} event The event object
@ -3025,7 +3025,7 @@ $(container).bind(
/* eslint-disable jsdoc/require-property */
/**
* Group: Text edit functions
* Functions relating to editing text elements
* Functions relating to editing text elements.
* @namespace {PlainObject} textActions
* @memberof module:svgcanvas.SvgCanvas#
*/
@ -3533,7 +3533,7 @@ return /** @lends module:svgcanvas.SvgCanvas#textActions */ {
}());
/**
* Group: Serialization
* Group: Serialization.
*/
/**
@ -3819,7 +3819,7 @@ this.svgToString = function (elem, indent) {
}; // end svgToString()
/**
* Function to run when image data is found
* Function to run when image data is found.
* @callback module:svgcanvas.ImageEmbeddedCallback
* @param {string|false} result Data URL
* @returns {void}
@ -4824,7 +4824,7 @@ draw.init(
);
/**
* Group: Document functions
* Group: Document functions.
*/
/**
@ -5195,14 +5195,14 @@ this.setBBoxZoom = function (val, editorW, editorH) {
* @type {Float}
*/
/**
* The bottom panel was updated
* The bottom panel was updated.
* @event module:svgcanvas.SvgCanvas#event:ext_toolButtonStateUpdate
* @type {PlainObject}
* @property {boolean} nofill Indicates fill is disabled
* @property {boolean} nostroke Indicates stroke is disabled
*/
/**
* The element selection has changed (elements were added/removed from selection)
* The element selection has changed (elements were added/removed from selection).
* @event module:svgcanvas.SvgCanvas#event:ext_selectedChanged
* @type {PlainObject}
* @property {Element[]} elems Array of the newly selected elements
@ -5217,13 +5217,13 @@ this.setBBoxZoom = function (val, editorW, editorH) {
* @property {Element[]} elems Array of transitioning elements
*/
/**
* One or more elements were changed
* One or more elements were changed.
* @event module:svgcanvas.SvgCanvas#event:ext_elementChanged
* @type {PlainObject}
* @property {Element[]} elems Array of the affected elements
*/
/**
* Invoked as soon as the locale is ready
* Invoked as soon as the locale is ready.
* @event module:svgcanvas.SvgCanvas#event:ext_langReady
* @type {PlainObject}
* @property {string} lang The two-letter language code
@ -5243,12 +5243,12 @@ this.setBBoxZoom = function (val, editorW, editorH) {
* @property {module:SVGEditor~ImportLocale} importLocale
*/
/**
* Called when new image is created
* Called when new image is created.
* @event module:svgcanvas.SvgCanvas#event:ext_onNewDocument
* @type {void}
*/
/**
* Called when sidepanel is resized or toggled
* Called when sidepanel is resized or toggled.
* @event module:svgcanvas.SvgCanvas#event:ext_workareaResized
* @type {void}
*/
@ -5300,7 +5300,7 @@ this.setMode = function (name) {
};
/**
* Group: Element Styling
* Group: Element Styling.
*/
/**
@ -6089,7 +6089,7 @@ this.removeHyperlink = function () {
};
/**
* Group: Element manipulation
* Group: Element manipulation.
*/
/**
@ -6393,7 +6393,7 @@ this.pasteElements = function (type, x, y) {
// Give extensions like the connector extension a chance to reflect new IDs and remove invalid elements
/**
* Triggered when `pasteElements` is called from a paste action (context menu or key)
* Triggered when `pasteElements` is called from a paste action (context menu or key).
* @event module:svgcanvas.SvgCanvas#event:ext_IDsUpdated
* @type {PlainObject}
* @property {module:svgcanvas.SVGAsJSON[]} elems
@ -7090,7 +7090,7 @@ this.alignSelectedElements = function (type, relativeTo) {
};
/**
* Group: Additional editor tools
* Group: Additional editor tools.
*/
/**

View File

@ -1,7 +1,7 @@
// Todo: Move to own module (and have it import a modular base64 encoder)
import {encode64} from '../utilities.js';
/**
* SVG Icon Loader 2.0
* @file SVG Icon Loader 2.0
*
* jQuery Plugin for loading SVG icons from a single file
*
@ -162,12 +162,12 @@ export default function jQueryPluginSVGIcons ($) {
/**
* Map of raster images with each key being the SVG icon ID
* to replace, and the value the image file name
* to replace, and the value the image file name.
* @typedef {PlainObject<string, string>} external:jQuery.svgIcons.Fallback
*/
/**
* Map of raster images with each key being the SVG icon ID
* whose `alt` will be set, and the value being the `alt` text
* whose `alt` will be set, and the value being the `alt` text.
* @typedef {PlainObject<string, string>} external:jQuery.svgIcons.Alts
*/
/**

View File

@ -69,27 +69,27 @@ let listMap_ = {};
* @returns {SVGTransform}
*/
/**
* (DOES NOT THROW DOMException, INDEX_SIZE_ERR)
* DOES NOT THROW DOMException, INDEX_SIZE_ERR.
* @function module:SVGTransformList.SVGEditTransformList#getItem
* @param {Integer} index unsigned long
* @returns {SVGTransform}
*/
/**
* (DOES NOT THROW DOMException, INDEX_SIZE_ERR)
* DOES NOT THROW DOMException, INDEX_SIZE_ERR.
* @function module:SVGTransformList.SVGEditTransformList#insertItemBefore
* @param {SVGTransform} newItem
* @param {Integer} index unsigned long
* @returns {SVGTransform}
*/
/**
* (DOES NOT THROW DOMException, INDEX_SIZE_ERR)
* DOES NOT THROW DOMException, INDEX_SIZE_ERR.
* @function module:SVGTransformList.SVGEditTransformList#replaceItem
* @param {SVGTransform} newItem
* @param {Integer} index unsigned long
* @returns {SVGTransform}
*/
/**
* (DOES NOT THROW DOMException, INDEX_SIZE_ERR)
* DOES NOT THROW DOMException, INDEX_SIZE_ERR.
* @function module:SVGTransformList.SVGEditTransformList#removeItem
* @param {Integer} index unsigned long
* @returns {SVGTransform}
@ -100,14 +100,14 @@ let listMap_ = {};
* @returns {SVGTransform}
*/
/**
* NOT IMPLEMENTED
* NOT IMPLEMENTED.
* @ignore
* @function module:SVGTransformList.SVGEditTransformList#createSVGTransformFromMatrix
* @param {SVGMatrix} matrix
* @returns {SVGTransform}
*/
/**
* NOT IMPLEMENTED
* NOT IMPLEMENTED.
* @ignore
* @function module:SVGTransformList.SVGEditTransformList#consolidate
* @returns {SVGTransform}

View File

@ -51,12 +51,12 @@
/**
* This should only be used for arrays known to be potentially arbitrary in form and
* representing arguments for passing around
* representing arguments for passing around.
* @typedef {GenericArray} ArgumentsArray
*/
/**
* The `Any` type should only be used for items known to be wholly arbitrary
* The `Any` type should only be used for items known to be wholly arbitrary.
*/
/**

View File

@ -1,5 +1,5 @@
/**
* Tools for working with units
* Tools for working with units.
* @module units
* @license MIT
*
@ -105,7 +105,7 @@ export const init = function (elementContainer) {
};
/**
* Group: Unit conversion functions
* Group: Unit conversion functions.
*/
/**

View File

@ -1,6 +1,6 @@
/* globals jQuery */
/**
* Miscellaneous utilities
* Miscellaneous utilities.
* @module utilities
* @license MIT
*
@ -38,7 +38,7 @@ let domcontainer_ = null;
let svgroot_ = null;
/**
* Object with the following keys/values
* Object with the following keys/values.
* @typedef {PlainObject} module:utilities.SVGElementJSON
* @property {string} element - Tag name of the SVG element to create
* @property {PlainObject<string, string>} attr - Has key-value attributes to assign to the new element. An `id` should be set so that {@link module:utilities.EditorContext#addSVGElementFromJson} can later re-identify the element for modification or replacement.
@ -60,7 +60,7 @@ let svgroot_ = null;
/**
* Create a new SVG element based on the given object keys/values and add it
* to the current layer.
* The element will be run through `cleanupElement` before being returned
* The element will be run through `cleanupElement` before being returned.
* @function module:utilities.EditorContext#addSVGElementFromJson
* @param {module:utilities.SVGElementJSON} data
* @returns {Element} The new element

View File

@ -269,13 +269,13 @@
document.addEventListener('touchcancel', touchHandler, true);
/**
* Namespaces or tools therefor
* Namespaces or tools therefor.
* @module namespaces
* @license MIT
*/
/**
* Common namepaces constants in alpha order
* Common namepaces constants in alpha order.
* @enum {string}
* @type {PlainObject}
* @memberof module:namespaces
@ -2906,7 +2906,7 @@
};
/**
* jQuery module to work with SVG attributes
* A jQuery module to work with SVG attributes.
* @module jQueryAttr
* @license MIT
*/
@ -3076,14 +3076,14 @@
*/
/**
* (DOES NOT THROW DOMException, INDEX_SIZE_ERR)
* DOES NOT THROW DOMException, INDEX_SIZE_ERR.
* @function module:SVGTransformList.SVGEditTransformList#getItem
* @param {Integer} index unsigned long
* @returns {SVGTransform}
*/
/**
* (DOES NOT THROW DOMException, INDEX_SIZE_ERR)
* DOES NOT THROW DOMException, INDEX_SIZE_ERR.
* @function module:SVGTransformList.SVGEditTransformList#insertItemBefore
* @param {SVGTransform} newItem
* @param {Integer} index unsigned long
@ -3091,7 +3091,7 @@
*/
/**
* (DOES NOT THROW DOMException, INDEX_SIZE_ERR)
* DOES NOT THROW DOMException, INDEX_SIZE_ERR.
* @function module:SVGTransformList.SVGEditTransformList#replaceItem
* @param {SVGTransform} newItem
* @param {Integer} index unsigned long
@ -3099,7 +3099,7 @@
*/
/**
* (DOES NOT THROW DOMException, INDEX_SIZE_ERR)
* DOES NOT THROW DOMException, INDEX_SIZE_ERR.
* @function module:SVGTransformList.SVGEditTransformList#removeItem
* @param {Integer} index unsigned long
* @returns {SVGTransform}
@ -3112,7 +3112,7 @@
*/
/**
* NOT IMPLEMENTED
* NOT IMPLEMENTED.
* @ignore
* @function module:SVGTransformList.SVGEditTransformList#createSVGTransformFromMatrix
* @param {SVGMatrix} matrix
@ -3120,7 +3120,7 @@
*/
/**
* NOT IMPLEMENTED
* NOT IMPLEMENTED.
* @ignore
* @function module:SVGTransformList.SVGEditTransformList#consolidate
* @returns {SVGTransform}
@ -3472,7 +3472,7 @@
};
/**
* Tools for working with units
* Tools for working with units.
* @module units
* @license MIT
*
@ -3576,7 +3576,7 @@
};
};
/**
* Group: Unit conversion functions
* Group: Unit conversion functions.
*/
/**
@ -3758,7 +3758,7 @@
};
/**
* Group: Undo/Redo history management
* Group: Undo/Redo history management.
*/
var HistoryEventTypes = {
@ -3801,7 +3801,7 @@
*/
/**
* Applies
* Applies.
*
* @function module:history.HistoryCommand#apply
* @param {module:history.HistoryEventHandler} handler
@ -3811,7 +3811,7 @@
/**
*
* Unapplies
* Unapplies.
* @function module:history.HistoryCommand#unapply
* @param {module:history.HistoryEventHandler} handler
* @fires module:history~Command#event:history
@ -3819,25 +3819,25 @@
*/
/**
* Returns the elements
* Returns the elements.
* @function module:history.HistoryCommand#elements
* @returns {Element[]}
*/
/**
* Gets the text
* Gets the text.
* @function module:history.HistoryCommand#getText
* @returns {string}
*/
/**
* Gives the type
* Gives the type.
* @function module:history.HistoryCommand.type
* @returns {string}
*/
/**
* Gives the type
* Gives the type.
* @function module:history.HistoryCommand#type
* @returns {string}
*/
@ -4666,7 +4666,7 @@
});
/**
* Mathematical utilities
* Mathematical utilities.
* @module math
* @license MIT
*
@ -4962,7 +4962,7 @@
*/
/**
* Object with the following keys/values
* Object with the following keys/values.
* @typedef {PlainObject} module:path.SVGElementJSON
* @property {string} element - Tag name of the SVG element to create
* @property {PlainObject<string, string>} attr - Has key-value attributes to assign to the new element. An `id` should be set so that {@link module:utilities.EditorContext#addSVGElementFromJson} can later re-identify the element for modification or replacement.
@ -4991,7 +4991,7 @@
*/
/**
* Note: This doesn't round to an integer necessarily
* Note: This doesn't round to an integer necessarily.
* @function module:path.EditorContext#round
* @param {Float} val
* @returns {Float} Rounded value to nearest value based on `currentZoom`
@ -5089,19 +5089,19 @@
*/
/**
* Returns the last created DOM element ID string
* Returns the last created DOM element ID string.
* @function module:path.EditorContext#getId
* @returns {string}
*/
/**
* Creates and returns a unique ID string for a DOM element
* Creates and returns a unique ID string for a DOM element.
* @function module:path.EditorContext#getNextId
* @returns {string}
*/
/**
* Gets the desired element from a mouse event
* Gets the desired element from a mouse event.
* @function module:path.EditorContext#getMouseTarget
* @param {external:MouseEvent} evt - Event object from the mouse event
* @returns {Element} DOM element we want
@ -6552,7 +6552,7 @@
}
};
/**
* This is how we map paths to our preferred relative segment types
* This is how we map paths to our preferred relative segment types.
* @name module:path.pathMap
* @type {GenericArray}
*/
@ -6808,8 +6808,8 @@
/* eslint-disable jsdoc/require-property */
/**
* Group: Path edit functions
* Functions relating to editing path elements
* Group: Path edit functions.
* Functions relating to editing path elements.
* @namespace {PlainObject} pathActions
* @memberof module:path
*/
@ -7796,7 +7796,7 @@
// Can't seem to use `@borrows` here, so using `@see`
/**
* Smooth polyline into path
* Smooth polyline into path.
* @function module:path.pathActions.smoothPolylineIntoPath
* @see module:path~smoothPolylineIntoPath
*/
@ -7874,7 +7874,7 @@
// Can't seem to use `@borrows` here, so using `@see`
/**
* Convert a path to one with only absolute or relative values
* Convert a path to one with only absolute or relative values.
* @function module:path.pathActions.convertPath
* @see module:path.convertPath
*/
@ -7895,7 +7895,7 @@
var domcontainer_ = null;
var svgroot_ = null;
/**
* Object with the following keys/values
* Object with the following keys/values.
* @typedef {PlainObject} module:utilities.SVGElementJSON
* @property {string} element - Tag name of the SVG element to create
* @property {PlainObject<string, string>} attr - Has key-value attributes to assign to the new element. An `id` should be set so that {@link module:utilities.EditorContext#addSVGElementFromJson} can later re-identify the element for modification or replacement.
@ -7919,7 +7919,7 @@
/**
* Create a new SVG element based on the given object keys/values and add it
* to the current layer.
* The element will be run through `cleanupElement` before being returned
* The element will be run through `cleanupElement` before being returned.
* @function module:utilities.EditorContext#addSVGElementFromJson
* @param {module:utilities.SVGElementJSON} data
* @returns {Element} The new element
@ -9316,7 +9316,7 @@
/* globals jQuery */
/**
* Adds context menu functionality
* Adds context menu functionality.
* @module contextmenu
* @license Apache-2.0
* @author Adam Bender
@ -11074,7 +11074,7 @@
}; // Layer API Functions
/**
* Group: Layers
* Group: Layers.
*/
/**
@ -11122,7 +11122,7 @@
*/
/**
* Run the callback function associated with the given event
* Run the callback function associated with the given event.
* @function module:draw.DrawCanvasInit#call
* @param {"changed"|"contextset"} ev - String with the event name
* @param {module:svgcanvas.SvgCanvas#event:changed|module:svgcanvas.SvgCanvas#event:contextset} arg - Argument to pass through to the callback
@ -11446,7 +11446,7 @@
/**
* This defines which elements and attributes that we support (or at least
* don't remove)
* don't remove).
* @type {PlainObject}
*/
@ -13657,7 +13657,7 @@
var svgroot = svgdoc.importNode(text2xml('<svg id="svgroot" xmlns="' + NS.SVG + '" xlinkns="' + NS.XLINK + '" ' + 'width="' + dimensions[0] + '" height="' + dimensions[1] + '" x="' + dimensions[0] + '" y="' + dimensions[1] + '" overflow="visible">' + '<defs>' + '<filter id="canvashadow" filterUnits="objectBoundingBox">' + '<feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>' + '<feOffset in="blur" dx="5" dy="5" result="offsetBlur"/>' + '<feMerge>' + '<feMergeNode in="offsetBlur"/>' + '<feMergeNode in="SourceGraphic"/>' + '</feMerge>' + '</filter>' + '</defs>' + '</svg>').documentElement, true);
container.append(svgroot);
/**
* The actual element that represents the final output SVG element
* The actual element that represents the final output SVG element.
* @name module:svgcanvas~svgcontent
* @type {SVGSVGElement}
*/
@ -13702,7 +13702,7 @@
idprefix = p;
};
/**
* Current draw.Drawing object
* Current `draw.Drawing` object.
* @type {module:draw.Drawing}
* @name module:svgcanvas.SvgCanvas#current_drawing_
*/
@ -13719,7 +13719,7 @@
return canvas.current_drawing_;
};
/**
* Float displaying the current zoom level (1 = 100%, .5 = 50%, etc)
* Float displaying the current zoom level (1 = 100%, .5 = 50%, etc.).
* @type {Float}
*/
@ -13855,8 +13855,8 @@
return curConfig.baseUnit;
};
/**
* initialize from units.js.
* Send in an object implementing the ElementContainer interface (see units.js)
* Initialize from units.js.
* Send in an object implementing the ElementContainer interface (see units.js).
*/
@ -14088,7 +14088,7 @@
init$6(curConfig,
/**
* Export to select.js
* Export to select.js.
* @implements {module:select.SVGFactory}
*/
{
@ -14104,7 +14104,7 @@
getCurrentZoom: getCurrentZoom
});
/**
* This object manages selectors for us
* This object manages selectors for us.
* @name module:svgcanvas.SvgCanvas#selectorManager
* @type {module:select.SelectorManager}
*/
@ -14921,26 +14921,26 @@
var events = {};
canvas.call = call;
/**
* Array of what was changed (elements, layers)
* Array of what was changed (elements, layers).
* @event module:svgcanvas.SvgCanvas#event:changed
* @type {Element[]}
*/
/**
* Array of selected elements
* Array of selected elements.
* @event module:svgcanvas.SvgCanvas#event:selected
* @type {Element[]}
*/
/**
* Array of selected elements
* Array of selected elements.
* @event module:svgcanvas.SvgCanvas#event:transition
* @type {Element[]}
*/
/**
* The Element is always `SVGGElement`?
* If not `null`, will be the set current group element
* If not `null`, will be the set current group element.
* @event module:svgcanvas.SvgCanvas#event:contextset
* @type {null|Element}
*/
@ -15001,7 +15001,7 @@
*/
/**
* SVG canvas converted to string
* SVG canvas converted to string.
* @event module:svgcanvas.SvgCanvas#event:saved
* @type {string}
*/
@ -15045,7 +15045,7 @@
/**
* The promise return, if present, resolves to `undefined`
* (`extension_added`, `exported`, `saved`)
* (`extension_added`, `exported`, `saved`).
* @typedef {Promise<void>|void} module:svgcanvas.EventHandlerReturn
*/
@ -15224,7 +15224,7 @@
var rootSctm = null;
/**
* Group: Selection
* Group: Selection.
*/
// TODO: do we need to worry about selectedBBoxes here?
@ -15791,7 +15791,7 @@
break;
}
/**
* The main (left) mouse button is held down on the canvas area
* The main (left) mouse button is held down on the canvas area.
* @event module:svgcanvas.SvgCanvas#event:ext_mouseDown
* @type {PlainObject}
* @property {MouseEvent} event The event object
@ -16334,7 +16334,7 @@
}
}
/**
* The mouse has moved on the canvas area
* The mouse has moved on the canvas area.
* @event module:svgcanvas.SvgCanvas#event:ext_mouseMove
* @type {PlainObject}
* @property {MouseEvent} event The event object
@ -16651,7 +16651,7 @@
}
}
/**
* The main (left) mouse button is released (anywhere)
* The main (left) mouse button is released (anywhere).
* @event module:svgcanvas.SvgCanvas#event:ext_mouseUp
* @type {PlainObject}
* @property {MouseEvent} event The event object
@ -16884,7 +16884,7 @@
/**
* Group: Text edit functions
* Functions relating to editing text elements
* Functions relating to editing text elements.
* @namespace {PlainObject} textActions
* @memberof module:svgcanvas.SvgCanvas#
*/
@ -17409,7 +17409,7 @@
);
}();
/**
* Group: Serialization
* Group: Serialization.
*/
/**
@ -17752,7 +17752,7 @@
}; // end svgToString()
/**
* Function to run when image data is found
* Function to run when image data is found.
* @callback module:svgcanvas.ImageEmbeddedCallback
* @param {string|false} result Data URL
* @returns {void}
@ -18925,7 +18925,7 @@
}
});
/**
* Group: Document functions
* Group: Document functions.
*/
/**
@ -19392,7 +19392,7 @@
*/
/**
* The bottom panel was updated
* The bottom panel was updated.
* @event module:svgcanvas.SvgCanvas#event:ext_toolButtonStateUpdate
* @type {PlainObject}
* @property {boolean} nofill Indicates fill is disabled
@ -19400,7 +19400,7 @@
*/
/**
* The element selection has changed (elements were added/removed from selection)
* The element selection has changed (elements were added/removed from selection).
* @event module:svgcanvas.SvgCanvas#event:ext_selectedChanged
* @type {PlainObject}
* @property {Element[]} elems Array of the newly selected elements
@ -19417,14 +19417,14 @@
*/
/**
* One or more elements were changed
* One or more elements were changed.
* @event module:svgcanvas.SvgCanvas#event:ext_elementChanged
* @type {PlainObject}
* @property {Element[]} elems Array of the affected elements
*/
/**
* Invoked as soon as the locale is ready
* Invoked as soon as the locale is ready.
* @event module:svgcanvas.SvgCanvas#event:ext_langReady
* @type {PlainObject}
* @property {string} lang The two-letter language code
@ -19447,13 +19447,13 @@
*/
/**
* Called when new image is created
* Called when new image is created.
* @event module:svgcanvas.SvgCanvas#event:ext_onNewDocument
* @type {void}
*/
/**
* Called when sidepanel is resized or toggled
* Called when sidepanel is resized or toggled.
* @event module:svgcanvas.SvgCanvas#event:ext_workareaResized
* @type {void}
*/
@ -19514,7 +19514,7 @@
currentMode = name;
};
/**
* Group: Element Styling
* Group: Element Styling.
*/
/**
@ -20387,7 +20387,7 @@
canvas.ungroupSelectedElement();
};
/**
* Group: Element manipulation
* Group: Element manipulation.
*/
/**
@ -20736,7 +20736,7 @@
clipb.forEach(checkIDs); // Give extensions like the connector extension a chance to reflect new IDs and remove invalid elements
/**
* Triggered when `pasteElements` is called from a paste action (context menu or key)
* Triggered when `pasteElements` is called from a paste action (context menu or key).
* @event module:svgcanvas.SvgCanvas#event:ext_IDsUpdated
* @type {PlainObject}
* @property {module:svgcanvas.SVGAsJSON[]} elems
@ -21540,7 +21540,7 @@
this.moveSelectedElements(dx, dy);
};
/**
* Group: Additional editor tools
* Group: Additional editor tools.
*/
/**
@ -22317,7 +22317,7 @@
// Todo: Move to own module (and have it import a modular base64 encoder)
/**
* SVG Icon Loader 2.0
* @file SVG Icon Loader 2.0
*
* jQuery Plugin for loading SVG icons from a single file
*
@ -22478,13 +22478,13 @@
var svgIcons = {};
/**
* Map of raster images with each key being the SVG icon ID
* to replace, and the value the image file name
* to replace, and the value the image file name.
* @typedef {PlainObject<string, string>} external:jQuery.svgIcons.Fallback
*/
/**
* Map of raster images with each key being the SVG icon ID
* whose `alt` will be set, and the value being the `alt` text
* whose `alt` will be set, and the value being the `alt` text.
* @typedef {PlainObject<string, string>} external:jQuery.svgIcons.Alts
*/
@ -22899,7 +22899,7 @@
}
/**
* jGraduate 0.4
* @file jGraduate 0.4
*
* jQuery Plugin for a gradient picker
*
@ -22998,14 +22998,14 @@
*/
this.type = options.copy.type;
/**
* Represents opacity (0-100)
* Represents opacity (0-100).
* @name module:jGraduate~Paint#alpha
* @type {Float}
*/
this.alpha = options.copy.alpha;
/**
* Represents #RRGGBB hex of color
* Represents #RRGGBB hex of color.
* @name module:jGraduate~Paint#solidColor
* @type {string}
*/
@ -23091,7 +23091,7 @@
/** @lends external:jQuery.fn.jGraduateDefaults */
{
/**
* Creates an object with a 'none' color
* Creates an object with a 'none' color.
* @type {external:jQuery.jGraduate.Paint}
* @see module:jGraduate.Options
*/
@ -24190,55 +24190,57 @@
}
/**
* SpinButton control
* SpinButton control.
*
* Adds bells and whistles to any ordinary textbox to
* make it look and feel like a SpinButton Control.
*
* Supplies {@link external:jQuery.fn.SpinButton} (and also {@link external:jQuery.loadingStylesheets})
* Supplies {@link external:jQuery.fn.SpinButton} (and also {@link external:jQuery.loadingStylesheets}).
*
* Originally written by George Adamson, Software Unity (george.jquery@softwareunity.com) August 2006.
* - Added min/max options
* - Added step size option
* - Added bigStep (page up/down) option
* Originally written by George Adamson, Software Unity (george.jquery@softwareunity.com) August 2006:
* - Added min/max options.
* - Added step size option.
* - Added bigStep (page up/down) option.
*
* Modifications made by Mark Gibson, (mgibson@designlinks.net) September 2006:
* - Converted to jQuery plugin
* - Allow limited or unlimited min/max values
* - Allow custom class names, and add class to input element
* - Removed global vars
* - Reset (to original or through config) when invalid value entered
* - Repeat whilst holding mouse button down (with initial pause, like keyboard repeat)
* - Support mouse wheel in Firefox
* - Fix double click in IE
* - Refactored some code and renamed some vars
* - Converted to jQuery plugin.
* - Allow limited or unlimited min/max values.
* - Allow custom class names, and add class to input element.
* - Removed global vars.
* - Reset (to original or through config) when invalid value entered.
* - Repeat whilst holding mouse button down (with initial pause, like keyboard repeat).
* - Support mouse wheel in Firefox.
* - Fix double click in IE.
* - Refactored some code and renamed some vars.
*
* Modifications by Jeff Schiller, June 2009:
* - provide callback function for when the value changes based on the following
* {@link https://www.mail-archive.com/jquery-en@googlegroups.com/msg36070.html}
* {@link https://www.mail-archive.com/jquery-en@googlegroups.com/msg36070.html}.
*
* Modifications by Jeff Schiller, July 2009:
* - improve styling for widget in Opera
* - consistent key-repeat handling cross-browser
* - improve styling for widget in Opera.
* - consistent key-repeat handling cross-browser.
*
* Modifications by Alexis Deveria, October 2009:
* - provide "stepfunc" callback option to allow custom function to run when changing a value
* - provide "stepfunc" callback option to allow custom function to run when changing a value.
* - Made adjustValue(0) only run on certain keyup events, not all.
*
* Tested in IE6, Opera9, Firefox 1.5
* Tested in IE6, Opera9, Firefox 1.5.
*
* | Version | Date | Author | Notes
* |---------|------|--------|------|
* | v1.0 | 11 Aug 2006 | George Adamson | First release
* | v1.1 | Aug 2006 | George Adamson | Minor enhancements
* | v1.2 | 27 Sep 2006 | Mark Gibson | Major enhancements
* | v1.3a | 28 Sep 2006 | George Adamson | Minor enhancements
* | v1.4 | 18 Jun 2009 | Jeff Schiller | Added callback function
* | v1.5 | 06 Jul 2009 | Jeff Schiller | Fixes for Opera.
* | v1.6 | 13 Oct 2009 | Alexis Deveria | Added stepfunc function
* | v1.7 | 21 Oct 2009 | Alexis Deveria | Minor fixes.<br />Fast-repeat for keys and live updating as you type.
* | v1.8 | 12 Jan 2010 | Benjamin Thomas | Fixes for mouseout behavior.<br />Added smallStep
* | Version | Date | Author | Notes |
* |---------|------|--------|-------|
* | v1.0 | 11 Aug 2006 | George Adamson | First release |
* | v1.1 | Aug 2006 | George Adamson | Minor enhancements |
* | v1.2 | 27 Sep 2006 | Mark Gibson | Major enhancements |
* | v1.3a | 28 Sep 2006 | George Adamson | Minor enhancements |
* | v1.4 | 18 Jun 2009 | Jeff Schiller | Added callback function |
* | v1.5 | 06 Jul 2009 | Jeff Schiller | Fixes for Opera. |
* | v1.6 | 13 Oct 2009 | Alexis Deveria | Added stepfunc function |
* | v1.7 | 21 Oct 2009 | Alexis Deveria | Minor fixes.<br />Fast-repeat for keys and live updating as you type. |
* | v1.8 | 12 Jan 2010 | Benjamin Thomas | Fixes for mouseout behavior.<br />Added smallStep |
* | v1.9 | 20 May 2018 | Brett Zamir | Avoid SVGEdit dependency via `stateObj` config;<br />convert to ES6 module |
* .
*
* @module jQuerySpinButton
* @example
// Create group of settings to initialise spinbutton(s). (Optional)
@ -24560,7 +24562,7 @@
}
/**
* jQuery Context Menu Plugin
* @file jQuery Context Menu Plugin
* Cory S.N. LaViska
* A Beautiful Site ({@link https://abeautifulsite.net/})
* Modified by Alexis Deveria
@ -24892,7 +24894,7 @@
/* eslint-disable no-bitwise */
/**
* jPicker (Adapted from version 1.1.6)
* @file jPicker (Adapted from version 1.1.6)
*
* jQuery Plugin for Photoshop style color picker
*
@ -25754,7 +25756,7 @@
/* eslint-enable jsdoc/require-property */
/**
* Array holding references to each active instance of the jPicker control
* Array holding references to each active instance of the jPicker control.
* @type {external:jQuery.fn.$.fn.jPicker[]}
*/
List: [],
@ -26148,7 +26150,7 @@
},
/**
* color conversion methods - make public to give use to external scripts
* Color conversion methods - make public to give use to external scripts.
* @namespace
*/
ColorMethods: {
@ -26383,7 +26385,7 @@
*/
/**
* Will be bound to active {@link jQuery.jPicker.Color}
* Will be bound to active {@link jQuery.jPicker.Color}.
* @callback module:jPicker.LiveCallback
* @param {external:jQuery} ui
* @param {Element} context
@ -27822,8 +27824,8 @@
*/
/**
* jPicker defaults - you can change anything in this section (such as the
* clientPath to your images) without fear of breaking the program
* The jPicker defaults - you can change anything in this section (such as the
* clientPath to your images) without fear of breaking the program.
* @namespace {external:jQuery.fn.jPickerOptions} defaults
* @memberof external:jQuery.fn.$.fn.jPicker
* @borrows external:jQuery.fn.jPickerOptions as external:jQuery.fn.jPicker.defaults
@ -28297,7 +28299,7 @@
};
/**
* The "data" property is generally set to an an array of objects with
* "id" and "title" or "textContent" properties
* "id" and "title" or "textContent" properties.
* @typedef {PlainObject} module:locale.AddLangExtensionLocaleData
* @property {module:locale.LocaleStrings[]} data See {@tutorial LocaleDocs}
*/
@ -28817,7 +28819,7 @@
}
/**
* The main module for the visual SVG Editor
* The main module for the visual SVG Editor.
*
* @license MIT
*
@ -28897,7 +28899,7 @@
*/
/**
* Preferences
* Preferences.
* @interface module:SVGEditor.Prefs
* @property {string} [lang="en"] Two-letter language code. The language must exist in the Editor Preferences language list. Defaults to "en" if `locale.js` detection does not detect another language.
* @property {module:SVGEditor.IconSize} [iconsize="s"|"m"] Size of the toolbar icons. Will default to 's' if the window height is smaller than the minimum height and 'm' otherwise.
@ -28921,13 +28923,13 @@
// EDITOR OPTIONS (DIALOG)
/**
* Default to "en" if locale.js detection does not detect another language
* Default to "en" if locale.js detection does not detect another language.
*/
lang: '',
/**
* Will default to 's' if the window height is smaller than the minimum height and
* 'm' otherwise
* Will default to 's' if the window height is smaller than the minimum
* height and 'm' otherwise.
*/
iconsize: '',
bkgd_color: '#FFF',
@ -29095,7 +29097,7 @@
},
/**
* LOCALE
* LOCALE.
* @name module:SVGEditor.uiStrings
* @type {PlainObject}
*/
@ -29268,7 +29270,7 @@
);
}
/**
* EXPORTS
* EXPORTS.
*/
/**
@ -29454,7 +29456,7 @@
editor.curConfig = curConfig; // Update exported value
};
/**
* All methods are optional
* All methods are optional.
* @interface module:SVGEditor.CustomHandler
* @type {PlainObject}
*/
@ -29473,7 +29475,7 @@
* Its responsibilities are:
* - accept the string contents of the current document
* - invoke a file chooser dialog in 'save' mode
* - save the file to location chosen by the user
* - save the file to location chosen by the user.
* @function module:SVGEditor.CustomHandler#save
* @param {external:Window} win
* @param {module:svgcanvas.SvgCanvas#event:saved} svgStr A string of the SVG
@ -33212,7 +33214,7 @@
// TODO: Group UI functions into a public editor.ui interface.
/**
* See {@link http://api.jquery.com/bind/#bind-eventType-eventData-handler}
* See {@link http://api.jquery.com/bind/#bind-eventType-eventData-handler}.
* @callback module:SVGEditor.DropDownCallback
* @param {external:jQuery.Event} ev See {@link http://api.jquery.com/Types/#Event}
* @listens external:jQuery.Event
@ -35264,7 +35266,7 @@
/* eslint-disable jsdoc/require-property */
/**
* Associate all button actions as well as non-button keyboard shortcuts
* Associate all button actions as well as non-button keyboard shortcuts.
* @namespace {PlainObject} module:SVGEditor~Actions
*/

6
package-lock.json generated
View File

@ -4157,9 +4157,9 @@
}
},
"eslint-config-ash-nazg": {
"version": "16.1.0",
"resolved": "https://registry.npmjs.org/eslint-config-ash-nazg/-/eslint-config-ash-nazg-16.1.0.tgz",
"integrity": "sha512-Ib1JEc6s6nDZxhyQTO8D5ZtaWyUVgPlOAJblJMyuzP+18KtpKN4QGSrGo7SaGg4os3fOE2VUOFPX5t8Cwti2Yw==",
"version": "16.2.0",
"resolved": "https://registry.npmjs.org/eslint-config-ash-nazg/-/eslint-config-ash-nazg-16.2.0.tgz",
"integrity": "sha512-VYEKJyUqm/ab1ifhz779PHIAhvoW6tGMpAnGYhRfemxYpQ9ou9MFildHDFWAetcjycXrqm+IYFMCXbzdgsaw9w==",
"dev": true
},
"eslint-config-standard": {

View File

@ -136,7 +136,7 @@
"cypress": "^3.8.1",
"cypress-axe": "^0.5.3",
"eslint": "^6.8.0",
"eslint-config-ash-nazg": "^16.1.0",
"eslint-config-ash-nazg": "^16.2.0",
"eslint-config-standard": "^14.1.0",
"eslint-plugin-array-func": "^3.1.3",
"eslint-plugin-compat": "^3.3.0",

View File

@ -269,13 +269,13 @@
document.addEventListener('touchcancel', touchHandler, true);
/**
* Namespaces or tools therefor
* Namespaces or tools therefor.
* @module namespaces
* @license MIT
*/
/**
* Common namepaces constants in alpha order
* Common namepaces constants in alpha order.
* @enum {string}
* @type {PlainObject}
* @memberof module:namespaces
@ -2906,7 +2906,7 @@
};
/**
* jQuery module to work with SVG attributes
* A jQuery module to work with SVG attributes.
* @module jQueryAttr
* @license MIT
*/
@ -3076,14 +3076,14 @@
*/
/**
* (DOES NOT THROW DOMException, INDEX_SIZE_ERR)
* DOES NOT THROW DOMException, INDEX_SIZE_ERR.
* @function module:SVGTransformList.SVGEditTransformList#getItem
* @param {Integer} index unsigned long
* @returns {SVGTransform}
*/
/**
* (DOES NOT THROW DOMException, INDEX_SIZE_ERR)
* DOES NOT THROW DOMException, INDEX_SIZE_ERR.
* @function module:SVGTransformList.SVGEditTransformList#insertItemBefore
* @param {SVGTransform} newItem
* @param {Integer} index unsigned long
@ -3091,7 +3091,7 @@
*/
/**
* (DOES NOT THROW DOMException, INDEX_SIZE_ERR)
* DOES NOT THROW DOMException, INDEX_SIZE_ERR.
* @function module:SVGTransformList.SVGEditTransformList#replaceItem
* @param {SVGTransform} newItem
* @param {Integer} index unsigned long
@ -3099,7 +3099,7 @@
*/
/**
* (DOES NOT THROW DOMException, INDEX_SIZE_ERR)
* DOES NOT THROW DOMException, INDEX_SIZE_ERR.
* @function module:SVGTransformList.SVGEditTransformList#removeItem
* @param {Integer} index unsigned long
* @returns {SVGTransform}
@ -3112,7 +3112,7 @@
*/
/**
* NOT IMPLEMENTED
* NOT IMPLEMENTED.
* @ignore
* @function module:SVGTransformList.SVGEditTransformList#createSVGTransformFromMatrix
* @param {SVGMatrix} matrix
@ -3120,7 +3120,7 @@
*/
/**
* NOT IMPLEMENTED
* NOT IMPLEMENTED.
* @ignore
* @function module:SVGTransformList.SVGEditTransformList#consolidate
* @returns {SVGTransform}
@ -3472,7 +3472,7 @@
};
/**
* Tools for working with units
* Tools for working with units.
* @module units
* @license MIT
*
@ -3576,7 +3576,7 @@
};
};
/**
* Group: Unit conversion functions
* Group: Unit conversion functions.
*/
/**
@ -3758,7 +3758,7 @@
};
/**
* Group: Undo/Redo history management
* Group: Undo/Redo history management.
*/
var HistoryEventTypes = {
@ -3801,7 +3801,7 @@
*/
/**
* Applies
* Applies.
*
* @function module:history.HistoryCommand#apply
* @param {module:history.HistoryEventHandler} handler
@ -3811,7 +3811,7 @@
/**
*
* Unapplies
* Unapplies.
* @function module:history.HistoryCommand#unapply
* @param {module:history.HistoryEventHandler} handler
* @fires module:history~Command#event:history
@ -3819,25 +3819,25 @@
*/
/**
* Returns the elements
* Returns the elements.
* @function module:history.HistoryCommand#elements
* @returns {Element[]}
*/
/**
* Gets the text
* Gets the text.
* @function module:history.HistoryCommand#getText
* @returns {string}
*/
/**
* Gives the type
* Gives the type.
* @function module:history.HistoryCommand.type
* @returns {string}
*/
/**
* Gives the type
* Gives the type.
* @function module:history.HistoryCommand#type
* @returns {string}
*/
@ -4666,7 +4666,7 @@
});
/**
* Mathematical utilities
* Mathematical utilities.
* @module math
* @license MIT
*
@ -4962,7 +4962,7 @@
*/
/**
* Object with the following keys/values
* Object with the following keys/values.
* @typedef {PlainObject} module:path.SVGElementJSON
* @property {string} element - Tag name of the SVG element to create
* @property {PlainObject<string, string>} attr - Has key-value attributes to assign to the new element. An `id` should be set so that {@link module:utilities.EditorContext#addSVGElementFromJson} can later re-identify the element for modification or replacement.
@ -4991,7 +4991,7 @@
*/
/**
* Note: This doesn't round to an integer necessarily
* Note: This doesn't round to an integer necessarily.
* @function module:path.EditorContext#round
* @param {Float} val
* @returns {Float} Rounded value to nearest value based on `currentZoom`
@ -5089,19 +5089,19 @@
*/
/**
* Returns the last created DOM element ID string
* Returns the last created DOM element ID string.
* @function module:path.EditorContext#getId
* @returns {string}
*/
/**
* Creates and returns a unique ID string for a DOM element
* Creates and returns a unique ID string for a DOM element.
* @function module:path.EditorContext#getNextId
* @returns {string}
*/
/**
* Gets the desired element from a mouse event
* Gets the desired element from a mouse event.
* @function module:path.EditorContext#getMouseTarget
* @param {external:MouseEvent} evt - Event object from the mouse event
* @returns {Element} DOM element we want
@ -6552,7 +6552,7 @@
}
};
/**
* This is how we map paths to our preferred relative segment types
* This is how we map paths to our preferred relative segment types.
* @name module:path.pathMap
* @type {GenericArray}
*/
@ -6808,8 +6808,8 @@
/* eslint-disable jsdoc/require-property */
/**
* Group: Path edit functions
* Functions relating to editing path elements
* Group: Path edit functions.
* Functions relating to editing path elements.
* @namespace {PlainObject} pathActions
* @memberof module:path
*/
@ -7796,7 +7796,7 @@
// Can't seem to use `@borrows` here, so using `@see`
/**
* Smooth polyline into path
* Smooth polyline into path.
* @function module:path.pathActions.smoothPolylineIntoPath
* @see module:path~smoothPolylineIntoPath
*/
@ -7874,7 +7874,7 @@
// Can't seem to use `@borrows` here, so using `@see`
/**
* Convert a path to one with only absolute or relative values
* Convert a path to one with only absolute or relative values.
* @function module:path.pathActions.convertPath
* @see module:path.convertPath
*/
@ -7895,7 +7895,7 @@
var domcontainer_ = null;
var svgroot_ = null;
/**
* Object with the following keys/values
* Object with the following keys/values.
* @typedef {PlainObject} module:utilities.SVGElementJSON
* @property {string} element - Tag name of the SVG element to create
* @property {PlainObject<string, string>} attr - Has key-value attributes to assign to the new element. An `id` should be set so that {@link module:utilities.EditorContext#addSVGElementFromJson} can later re-identify the element for modification or replacement.
@ -7919,7 +7919,7 @@
/**
* Create a new SVG element based on the given object keys/values and add it
* to the current layer.
* The element will be run through `cleanupElement` before being returned
* The element will be run through `cleanupElement` before being returned.
* @function module:utilities.EditorContext#addSVGElementFromJson
* @param {module:utilities.SVGElementJSON} data
* @returns {Element} The new element
@ -9316,7 +9316,7 @@
/* globals jQuery */
/**
* Adds context menu functionality
* Adds context menu functionality.
* @module contextmenu
* @license Apache-2.0
* @author Adam Bender
@ -11074,7 +11074,7 @@
}; // Layer API Functions
/**
* Group: Layers
* Group: Layers.
*/
/**
@ -11122,7 +11122,7 @@
*/
/**
* Run the callback function associated with the given event
* Run the callback function associated with the given event.
* @function module:draw.DrawCanvasInit#call
* @param {"changed"|"contextset"} ev - String with the event name
* @param {module:svgcanvas.SvgCanvas#event:changed|module:svgcanvas.SvgCanvas#event:contextset} arg - Argument to pass through to the callback
@ -11446,7 +11446,7 @@
/**
* This defines which elements and attributes that we support (or at least
* don't remove)
* don't remove).
* @type {PlainObject}
*/
@ -13657,7 +13657,7 @@
var svgroot = svgdoc.importNode(text2xml('<svg id="svgroot" xmlns="' + NS.SVG + '" xlinkns="' + NS.XLINK + '" ' + 'width="' + dimensions[0] + '" height="' + dimensions[1] + '" x="' + dimensions[0] + '" y="' + dimensions[1] + '" overflow="visible">' + '<defs>' + '<filter id="canvashadow" filterUnits="objectBoundingBox">' + '<feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>' + '<feOffset in="blur" dx="5" dy="5" result="offsetBlur"/>' + '<feMerge>' + '<feMergeNode in="offsetBlur"/>' + '<feMergeNode in="SourceGraphic"/>' + '</feMerge>' + '</filter>' + '</defs>' + '</svg>').documentElement, true);
container.append(svgroot);
/**
* The actual element that represents the final output SVG element
* The actual element that represents the final output SVG element.
* @name module:svgcanvas~svgcontent
* @type {SVGSVGElement}
*/
@ -13702,7 +13702,7 @@
idprefix = p;
};
/**
* Current draw.Drawing object
* Current `draw.Drawing` object.
* @type {module:draw.Drawing}
* @name module:svgcanvas.SvgCanvas#current_drawing_
*/
@ -13719,7 +13719,7 @@
return canvas.current_drawing_;
};
/**
* Float displaying the current zoom level (1 = 100%, .5 = 50%, etc)
* Float displaying the current zoom level (1 = 100%, .5 = 50%, etc.).
* @type {Float}
*/
@ -13855,8 +13855,8 @@
return curConfig.baseUnit;
};
/**
* initialize from units.js.
* Send in an object implementing the ElementContainer interface (see units.js)
* Initialize from units.js.
* Send in an object implementing the ElementContainer interface (see units.js).
*/
@ -14088,7 +14088,7 @@
init$6(curConfig,
/**
* Export to select.js
* Export to select.js.
* @implements {module:select.SVGFactory}
*/
{
@ -14104,7 +14104,7 @@
getCurrentZoom: getCurrentZoom
});
/**
* This object manages selectors for us
* This object manages selectors for us.
* @name module:svgcanvas.SvgCanvas#selectorManager
* @type {module:select.SelectorManager}
*/
@ -14921,26 +14921,26 @@
var events = {};
canvas.call = call;
/**
* Array of what was changed (elements, layers)
* Array of what was changed (elements, layers).
* @event module:svgcanvas.SvgCanvas#event:changed
* @type {Element[]}
*/
/**
* Array of selected elements
* Array of selected elements.
* @event module:svgcanvas.SvgCanvas#event:selected
* @type {Element[]}
*/
/**
* Array of selected elements
* Array of selected elements.
* @event module:svgcanvas.SvgCanvas#event:transition
* @type {Element[]}
*/
/**
* The Element is always `SVGGElement`?
* If not `null`, will be the set current group element
* If not `null`, will be the set current group element.
* @event module:svgcanvas.SvgCanvas#event:contextset
* @type {null|Element}
*/
@ -15001,7 +15001,7 @@
*/
/**
* SVG canvas converted to string
* SVG canvas converted to string.
* @event module:svgcanvas.SvgCanvas#event:saved
* @type {string}
*/
@ -15045,7 +15045,7 @@
/**
* The promise return, if present, resolves to `undefined`
* (`extension_added`, `exported`, `saved`)
* (`extension_added`, `exported`, `saved`).
* @typedef {Promise<void>|void} module:svgcanvas.EventHandlerReturn
*/
@ -15224,7 +15224,7 @@
var rootSctm = null;
/**
* Group: Selection
* Group: Selection.
*/
// TODO: do we need to worry about selectedBBoxes here?
@ -15791,7 +15791,7 @@
break;
}
/**
* The main (left) mouse button is held down on the canvas area
* The main (left) mouse button is held down on the canvas area.
* @event module:svgcanvas.SvgCanvas#event:ext_mouseDown
* @type {PlainObject}
* @property {MouseEvent} event The event object
@ -16334,7 +16334,7 @@
}
}
/**
* The mouse has moved on the canvas area
* The mouse has moved on the canvas area.
* @event module:svgcanvas.SvgCanvas#event:ext_mouseMove
* @type {PlainObject}
* @property {MouseEvent} event The event object
@ -16651,7 +16651,7 @@
}
}
/**
* The main (left) mouse button is released (anywhere)
* The main (left) mouse button is released (anywhere).
* @event module:svgcanvas.SvgCanvas#event:ext_mouseUp
* @type {PlainObject}
* @property {MouseEvent} event The event object
@ -16884,7 +16884,7 @@
/**
* Group: Text edit functions
* Functions relating to editing text elements
* Functions relating to editing text elements.
* @namespace {PlainObject} textActions
* @memberof module:svgcanvas.SvgCanvas#
*/
@ -17409,7 +17409,7 @@
);
}();
/**
* Group: Serialization
* Group: Serialization.
*/
/**
@ -17752,7 +17752,7 @@
}; // end svgToString()
/**
* Function to run when image data is found
* Function to run when image data is found.
* @callback module:svgcanvas.ImageEmbeddedCallback
* @param {string|false} result Data URL
* @returns {void}
@ -18925,7 +18925,7 @@
}
});
/**
* Group: Document functions
* Group: Document functions.
*/
/**
@ -19392,7 +19392,7 @@
*/
/**
* The bottom panel was updated
* The bottom panel was updated.
* @event module:svgcanvas.SvgCanvas#event:ext_toolButtonStateUpdate
* @type {PlainObject}
* @property {boolean} nofill Indicates fill is disabled
@ -19400,7 +19400,7 @@
*/
/**
* The element selection has changed (elements were added/removed from selection)
* The element selection has changed (elements were added/removed from selection).
* @event module:svgcanvas.SvgCanvas#event:ext_selectedChanged
* @type {PlainObject}
* @property {Element[]} elems Array of the newly selected elements
@ -19417,14 +19417,14 @@
*/
/**
* One or more elements were changed
* One or more elements were changed.
* @event module:svgcanvas.SvgCanvas#event:ext_elementChanged
* @type {PlainObject}
* @property {Element[]} elems Array of the affected elements
*/
/**
* Invoked as soon as the locale is ready
* Invoked as soon as the locale is ready.
* @event module:svgcanvas.SvgCanvas#event:ext_langReady
* @type {PlainObject}
* @property {string} lang The two-letter language code
@ -19447,13 +19447,13 @@
*/
/**
* Called when new image is created
* Called when new image is created.
* @event module:svgcanvas.SvgCanvas#event:ext_onNewDocument
* @type {void}
*/
/**
* Called when sidepanel is resized or toggled
* Called when sidepanel is resized or toggled.
* @event module:svgcanvas.SvgCanvas#event:ext_workareaResized
* @type {void}
*/
@ -19514,7 +19514,7 @@
currentMode = name;
};
/**
* Group: Element Styling
* Group: Element Styling.
*/
/**
@ -20387,7 +20387,7 @@
canvas.ungroupSelectedElement();
};
/**
* Group: Element manipulation
* Group: Element manipulation.
*/
/**
@ -20736,7 +20736,7 @@
clipb.forEach(checkIDs); // Give extensions like the connector extension a chance to reflect new IDs and remove invalid elements
/**
* Triggered when `pasteElements` is called from a paste action (context menu or key)
* Triggered when `pasteElements` is called from a paste action (context menu or key).
* @event module:svgcanvas.SvgCanvas#event:ext_IDsUpdated
* @type {PlainObject}
* @property {module:svgcanvas.SVGAsJSON[]} elems
@ -21540,7 +21540,7 @@
this.moveSelectedElements(dx, dy);
};
/**
* Group: Additional editor tools
* Group: Additional editor tools.
*/
/**
@ -22317,7 +22317,7 @@
// Todo: Move to own module (and have it import a modular base64 encoder)
/**
* SVG Icon Loader 2.0
* @file SVG Icon Loader 2.0
*
* jQuery Plugin for loading SVG icons from a single file
*
@ -22478,13 +22478,13 @@
var svgIcons = {};
/**
* Map of raster images with each key being the SVG icon ID
* to replace, and the value the image file name
* to replace, and the value the image file name.
* @typedef {PlainObject<string, string>} external:jQuery.svgIcons.Fallback
*/
/**
* Map of raster images with each key being the SVG icon ID
* whose `alt` will be set, and the value being the `alt` text
* whose `alt` will be set, and the value being the `alt` text.
* @typedef {PlainObject<string, string>} external:jQuery.svgIcons.Alts
*/
@ -22899,7 +22899,7 @@
}
/**
* jGraduate 0.4
* @file jGraduate 0.4
*
* jQuery Plugin for a gradient picker
*
@ -22998,14 +22998,14 @@
*/
this.type = options.copy.type;
/**
* Represents opacity (0-100)
* Represents opacity (0-100).
* @name module:jGraduate~Paint#alpha
* @type {Float}
*/
this.alpha = options.copy.alpha;
/**
* Represents #RRGGBB hex of color
* Represents #RRGGBB hex of color.
* @name module:jGraduate~Paint#solidColor
* @type {string}
*/
@ -23091,7 +23091,7 @@
/** @lends external:jQuery.fn.jGraduateDefaults */
{
/**
* Creates an object with a 'none' color
* Creates an object with a 'none' color.
* @type {external:jQuery.jGraduate.Paint}
* @see module:jGraduate.Options
*/
@ -24190,55 +24190,57 @@
}
/**
* SpinButton control
* SpinButton control.
*
* Adds bells and whistles to any ordinary textbox to
* make it look and feel like a SpinButton Control.
*
* Supplies {@link external:jQuery.fn.SpinButton} (and also {@link external:jQuery.loadingStylesheets})
* Supplies {@link external:jQuery.fn.SpinButton} (and also {@link external:jQuery.loadingStylesheets}).
*
* Originally written by George Adamson, Software Unity (george.jquery@softwareunity.com) August 2006.
* - Added min/max options
* - Added step size option
* - Added bigStep (page up/down) option
* Originally written by George Adamson, Software Unity (george.jquery@softwareunity.com) August 2006:
* - Added min/max options.
* - Added step size option.
* - Added bigStep (page up/down) option.
*
* Modifications made by Mark Gibson, (mgibson@designlinks.net) September 2006:
* - Converted to jQuery plugin
* - Allow limited or unlimited min/max values
* - Allow custom class names, and add class to input element
* - Removed global vars
* - Reset (to original or through config) when invalid value entered
* - Repeat whilst holding mouse button down (with initial pause, like keyboard repeat)
* - Support mouse wheel in Firefox
* - Fix double click in IE
* - Refactored some code and renamed some vars
* - Converted to jQuery plugin.
* - Allow limited or unlimited min/max values.
* - Allow custom class names, and add class to input element.
* - Removed global vars.
* - Reset (to original or through config) when invalid value entered.
* - Repeat whilst holding mouse button down (with initial pause, like keyboard repeat).
* - Support mouse wheel in Firefox.
* - Fix double click in IE.
* - Refactored some code and renamed some vars.
*
* Modifications by Jeff Schiller, June 2009:
* - provide callback function for when the value changes based on the following
* {@link https://www.mail-archive.com/jquery-en@googlegroups.com/msg36070.html}
* {@link https://www.mail-archive.com/jquery-en@googlegroups.com/msg36070.html}.
*
* Modifications by Jeff Schiller, July 2009:
* - improve styling for widget in Opera
* - consistent key-repeat handling cross-browser
* - improve styling for widget in Opera.
* - consistent key-repeat handling cross-browser.
*
* Modifications by Alexis Deveria, October 2009:
* - provide "stepfunc" callback option to allow custom function to run when changing a value
* - provide "stepfunc" callback option to allow custom function to run when changing a value.
* - Made adjustValue(0) only run on certain keyup events, not all.
*
* Tested in IE6, Opera9, Firefox 1.5
* Tested in IE6, Opera9, Firefox 1.5.
*
* | Version | Date | Author | Notes
* |---------|------|--------|------|
* | v1.0 | 11 Aug 2006 | George Adamson | First release
* | v1.1 | Aug 2006 | George Adamson | Minor enhancements
* | v1.2 | 27 Sep 2006 | Mark Gibson | Major enhancements
* | v1.3a | 28 Sep 2006 | George Adamson | Minor enhancements
* | v1.4 | 18 Jun 2009 | Jeff Schiller | Added callback function
* | v1.5 | 06 Jul 2009 | Jeff Schiller | Fixes for Opera.
* | v1.6 | 13 Oct 2009 | Alexis Deveria | Added stepfunc function
* | v1.7 | 21 Oct 2009 | Alexis Deveria | Minor fixes.<br />Fast-repeat for keys and live updating as you type.
* | v1.8 | 12 Jan 2010 | Benjamin Thomas | Fixes for mouseout behavior.<br />Added smallStep
* | Version | Date | Author | Notes |
* |---------|------|--------|-------|
* | v1.0 | 11 Aug 2006 | George Adamson | First release |
* | v1.1 | Aug 2006 | George Adamson | Minor enhancements |
* | v1.2 | 27 Sep 2006 | Mark Gibson | Major enhancements |
* | v1.3a | 28 Sep 2006 | George Adamson | Minor enhancements |
* | v1.4 | 18 Jun 2009 | Jeff Schiller | Added callback function |
* | v1.5 | 06 Jul 2009 | Jeff Schiller | Fixes for Opera. |
* | v1.6 | 13 Oct 2009 | Alexis Deveria | Added stepfunc function |
* | v1.7 | 21 Oct 2009 | Alexis Deveria | Minor fixes.<br />Fast-repeat for keys and live updating as you type. |
* | v1.8 | 12 Jan 2010 | Benjamin Thomas | Fixes for mouseout behavior.<br />Added smallStep |
* | v1.9 | 20 May 2018 | Brett Zamir | Avoid SVGEdit dependency via `stateObj` config;<br />convert to ES6 module |
* .
*
* @module jQuerySpinButton
* @example
// Create group of settings to initialise spinbutton(s). (Optional)
@ -24560,7 +24562,7 @@
}
/**
* jQuery Context Menu Plugin
* @file jQuery Context Menu Plugin
* Cory S.N. LaViska
* A Beautiful Site ({@link https://abeautifulsite.net/})
* Modified by Alexis Deveria
@ -24892,7 +24894,7 @@
/* eslint-disable no-bitwise */
/**
* jPicker (Adapted from version 1.1.6)
* @file jPicker (Adapted from version 1.1.6)
*
* jQuery Plugin for Photoshop style color picker
*
@ -25754,7 +25756,7 @@
/* eslint-enable jsdoc/require-property */
/**
* Array holding references to each active instance of the jPicker control
* Array holding references to each active instance of the jPicker control.
* @type {external:jQuery.fn.$.fn.jPicker[]}
*/
List: [],
@ -26148,7 +26150,7 @@
},
/**
* color conversion methods - make public to give use to external scripts
* Color conversion methods - make public to give use to external scripts.
* @namespace
*/
ColorMethods: {
@ -26383,7 +26385,7 @@
*/
/**
* Will be bound to active {@link jQuery.jPicker.Color}
* Will be bound to active {@link jQuery.jPicker.Color}.
* @callback module:jPicker.LiveCallback
* @param {external:jQuery} ui
* @param {Element} context
@ -27822,8 +27824,8 @@
*/
/**
* jPicker defaults - you can change anything in this section (such as the
* clientPath to your images) without fear of breaking the program
* The jPicker defaults - you can change anything in this section (such as the
* clientPath to your images) without fear of breaking the program.
* @namespace {external:jQuery.fn.jPickerOptions} defaults
* @memberof external:jQuery.fn.$.fn.jPicker
* @borrows external:jQuery.fn.jPickerOptions as external:jQuery.fn.jPicker.defaults
@ -28297,7 +28299,7 @@
};
/**
* The "data" property is generally set to an an array of objects with
* "id" and "title" or "textContent" properties
* "id" and "title" or "textContent" properties.
* @typedef {PlainObject} module:locale.AddLangExtensionLocaleData
* @property {module:locale.LocaleStrings[]} data See {@tutorial LocaleDocs}
*/
@ -28817,7 +28819,7 @@
}
/**
* The main module for the visual SVG Editor
* The main module for the visual SVG Editor.
*
* @license MIT
*
@ -28897,7 +28899,7 @@
*/
/**
* Preferences
* Preferences.
* @interface module:SVGEditor.Prefs
* @property {string} [lang="en"] Two-letter language code. The language must exist in the Editor Preferences language list. Defaults to "en" if `locale.js` detection does not detect another language.
* @property {module:SVGEditor.IconSize} [iconsize="s"|"m"] Size of the toolbar icons. Will default to 's' if the window height is smaller than the minimum height and 'm' otherwise.
@ -28921,13 +28923,13 @@
// EDITOR OPTIONS (DIALOG)
/**
* Default to "en" if locale.js detection does not detect another language
* Default to "en" if locale.js detection does not detect another language.
*/
lang: '',
/**
* Will default to 's' if the window height is smaller than the minimum height and
* 'm' otherwise
* Will default to 's' if the window height is smaller than the minimum
* height and 'm' otherwise.
*/
iconsize: '',
bkgd_color: '#FFF',
@ -29095,7 +29097,7 @@
},
/**
* LOCALE
* LOCALE.
* @name module:SVGEditor.uiStrings
* @type {PlainObject}
*/
@ -29268,7 +29270,7 @@
);
}
/**
* EXPORTS
* EXPORTS.
*/
/**
@ -29454,7 +29456,7 @@
editor.curConfig = curConfig; // Update exported value
};
/**
* All methods are optional
* All methods are optional.
* @interface module:SVGEditor.CustomHandler
* @type {PlainObject}
*/
@ -29473,7 +29475,7 @@
* Its responsibilities are:
* - accept the string contents of the current document
* - invoke a file chooser dialog in 'save' mode
* - save the file to location chosen by the user
* - save the file to location chosen by the user.
* @function module:SVGEditor.CustomHandler#save
* @param {external:Window} win
* @param {module:svgcanvas.SvgCanvas#event:saved} svgStr A string of the SVG
@ -33212,7 +33214,7 @@
// TODO: Group UI functions into a public editor.ui interface.
/**
* See {@link http://api.jquery.com/bind/#bind-eventType-eventData-handler}
* See {@link http://api.jquery.com/bind/#bind-eventType-eventData-handler}.
* @callback module:SVGEditor.DropDownCallback
* @param {external:jQuery.Event} ev See {@link http://api.jquery.com/Types/#Event}
* @listens external:jQuery.Event
@ -35264,7 +35266,7 @@
/* eslint-disable jsdoc/require-property */
/**
* Associate all button actions as well as non-button keyboard shortcuts
* Associate all button actions as well as non-button keyboard shortcuts.
* @namespace {PlainObject} module:SVGEditor~Actions
*/