Changelog
3.0.0-rc.3
toXml
utilityimgLibs
to be accepted for message
listenerdropXMLInternalSubset
to extensions
for preventing billion laughs attack (and use in Imagelib)encodeURIComponent
and lack of a single quote attribute
context)X-Frame-Options
to "sameorigin"
makes it unusable on our end
for our cross-origin uses (even with an attempt to use their API)exportWindowName
for filename and change default from download
to svg.pdf
to
distinguish from other downloadsURL
is not defined (export)supportsGoodTextCharPos
Math.precision
pseudo-globalinradius
is NaN
svgedit=3
param to URL so that it can keep using old API for
SVG-Edit versions before 3, while conditionally using new object-based
API now (and if we switch exclusively to the object-based API in the
future, this site will continue to work)namespace
(fixes #274)createSVGMatrix
lgtm.yml
file (still some remaining items flagged
but hoping for in-code flagging)terser
plugin with uglify
plugin not supporting ES6+-capable minifierChangelog
3.0.0-rc.2
includeWith
button conflicts/redundancies;
Incorporates #147includeWith
as well as toolbarbuttonstext
and tspan
elements as far as
captureTextNodes
with canvg (inheriting class had set
captureTextNodes
too late)tspan
passed to getGradient
pick_stroke_paint_opacity
,
pick_fill_paint_opacity
, popupWindowBlocked
saveFromBrowser
points
attribute for free-hand path;
incorporates #176 (fixes #175)undefined
var. (#147)setupFlyouts
, Actions
, toggleSidePanel
; missing for
ToolbarButtonChangelog
3.0.0-rc.1
addSvgElementFromJson()
to addSVGElementFromJson
for consistencychangeSvgContent()
to changeSVGContent()
for
consistencyextensions/mathjax/MathJax.js
to
extensions/mathjax/MathJax.min.js
ext-arrows.js
from Arrows
to arrows
for sake of file path (not localized anyways).window.svgCanvas
and svgCanvas.ready
as used by older
extensions; use svgEditor.canvas
and svgEditor.ready
insteadthis
is set to editor, including for callback
)RGBColor
must accept new
canvg
/buildCanvgCallback
to extensions
(have them import)readLang
now return a value (lang and data) (as well
as putLocale
which returns a call to it) but do not call setLang
assignAttributes
, addSVGElementFromJson
,
call
, copyElem
, findDefs
, getElem
, getId
, getIntersectionList
,
getMouseTarget
, getNextId
, getUrlFromAttr
, hasMatrixTransform
,
matrixMultiply
, recalculateAllSelectedDimensions
,
recalculateDimensions
, remapElement
, removeUnusedDefElems
, round
,
runExtensions
, sanitizeSvg
, setGradient
transformListToTransform
(and mistaken toString
export) to getPrivateMethods
(passed to
extensions) as available as public ones (on canvas or editor that is
available to extensions)exportPDF
resolve with output
and
outputType
rather than dataurlstring
(as type may vary)addlangData
extension event to
addLangData
for consistency with method nameexecuteAfterLoads
(and getJSPDF/getCanvg)stackBlurCanvasRGBA
must be set now
by function (setStackBlurCanvasRGBA
) rather than global (though it imports
default now); canvg
now a named exportprepublishOnly
script to ensure building/testing before publishremoveFromSelection
. (#256; fixes #255)style
)importLocale
to extensions init
so it may delay
adding of the extension until locale data loadedChildNode
/ParentNode
(and use further)uaPrefix
function in svgEditor.js
exportWindow
for PDF (e.g., if blocked)rasterExport
without imgType
properly sets MIME
type to PNGorigin
on contentDocument
is restrictedlocalStorage
setStrings
public on editor for late setting (used
by ext-shapes.js
)extensions_added
eventmessage
event (Relay messages including those which
have been been received prior to extension load)rasterExport
and exportPDF
pointsAdded
canvas event (Fixes #141)Promise
for embedImage
(as with some other loading
methods)importLocale
to langReady
to facilitate extension
locale loadingaddLangData
isValidUnit
RGBColor
as class, without rebuilding
constants, optimize string replacement, move methods to prototype,
use templates and object literals, use Object.keys
$.getScript
; always return
Promises in case deciding to await resolvingRGBColor
into svgutils.js
(jsPDF imports
it itself)lang
and dir
for locales (though not in use
currently anyways)callback
as init function (still may be
present on return from the extension init
method, however).Object.entries
, Object shorthand,
array extras, more camelCase variable namesCommand
base classcallback
ready detectionlet
or const
closer to scopedelimiter
from regex escaping utilitygetIssues
to return codes and strings, lbsSvgCanvas.md
as ensuring jsdoc has replacementslatest
path (Avoid needing to update such
references upon each release).gitignore
)undefined
;
consistency with @returns
@throws
, @enum
, @event
/@fires
/@listens
Changelog
3.0.0-alpha.4
main
on package.json
to reference UMD distribution and module
to point to ES6 Module distpath.js
Changelog
3.0.0-alpha.3
editor
directoryextIconsPath
for now given
that extPath
will not work relative to dist
addSvgElementFromJson
to accept non-SVG namespaces
with explicit namespace
property as well as the default SVG namespace
(fixes #155); documentsetSvgString
, if element content is not SVG,
return false
earlier (Fixes #152); thanks iuyiuy!Changelog
3.0.0-alpha.2
svgedit-config-iife.js
(or
for the module version, svgedit-config-es.js
); also expect
one directory higher; incorporates #207 (@iuyiuy)extIconsPath
from extPath
(not copying
over icons)custom.css
in HTML; can instead
be referenced in JavaScript through the config file (provided in svgedit-config-sample-iife.js
/svgedit-config-sample-es.js
as
svgedit-custom.css
for better namespacing); incorporates #207 (@iuyiuy)new
with EmbeddedSVGEdit
(allows us to use
class
internally)svgcanvas.setUiStrings
must now be called if not using
editor in order to get strings (for sake of i18n) (and if using path.js
alone, must also have its setUiStrings
called)overviewWindowGlobals
jquery.js
to jquery.min.js
scoped
attribute from style
; it is now
deprecated and obsolete; also move to head (after other stylesheets)addBezierCurve
in canvg.js
had undeclared i
var
for some i
loopsx
, y
) in mouseMove
element
, d_attr
(now renamed to dAttr
)) in mouseDown
showNotes
jquery.svgicons.js
whereby a variable
holder
was declared in too nested of a scopedrawnPath
not defined error (currently adds as a global, but
should be switching to modules anyways)numstops
is present before checkelem
)getBBox
in Firefox, so recover (fixes FF issue with recalculate test 3:
"recalculateDimensions() on text w/tspan with simple translate")removeAttribute
after removeItem
; deal with it
(though only if there is a single identity matrix) (fixes Chrome issue
with recalculate test 1:
"recalculateDimensions() on rect with identity matrix")https://
loadStylesheets
for modular stylesheet defining
(but parallel loading)stylesheets
config for modular but parallel
stylesheet loading with @default
option for simple
inclusion/exclusion of defaults (if not going with default).https
(instead of http
) for link placeholdertool_scale
config-sample.js
out of editor
directorycallback
-style extensions, also provide config
object; add following to that object: buildCanvgCallback
, canvg
,
decode64
, encode64
, executeAfterLoads
, getTypeMap
, isChrome
,
ieIE
, NS
, text2xml
svg-editor.html
: consistent indents; avoid extra
lbs, avoid long linesdraw.js
pathActions
from svgcanvas.js
(though preserve
aliases to these methods on canvas
) and convertPath
from
svgutils.js
to path.js
getStrokedBBox
from svgcanvas.js
(while keeping
an alias) to svgutils.js
(as getStrokedBBoxDefaultVisible
to avoid
conflict with existing)no-extra-semi
and quote-props
rulesclass
in place of functions where intended as classesuse strict
(implicit in modules)jQuery
global rather than $
for better modularity
(also to adapt line later once available via import
)const
(and then let
)class
$.isArray
-> Array.isArray
and avoid some other jQuery
core methods with simple VanillaJS replacementsuiStrings
contents in svg-editor.js (obtains
from locale)Array.prototype.includes
/String.prototype.includes
;
String.prototype.startsWith
, String.prototype.trim
import
support to refactor this)all_tests.html
for ensuring expanding iframe
size to fit contentnode-static
for automating (and accessing out-of-directory
contents)test
scriptnew
; refactored now with sufficient mock data
to take into account it is a classChangelog
3.0.0-alpha.1
(Only released on npm for reserving name rather than being intended as a testable release; the list below, however, does list the fixes it includes.)
browser.js
error triggering for supportsPathInsertItemBefore
and
supportsPathReplaceItem
when testing whether replaceItem
and
insertItemBefore
work, since paths must start with M commandsrx=0
and ry=0
from ellipse elements as these values are not
default and hold a special meaning for ellipses (a value of 0 disables
rendering of the element); PR #71createLayer
; #104;
PR #106svgEditorReady
after the canvas is ready (PR #96) and
when opened through an iframe (#93; PR #127)input
as
well as keyup
; e.g., trigger for ALT+keycode
); PR #85createSVGRect()
in getIntersectionList
; createSVGRect()
does not
have parameters, they must be set on the object after; PR #138stroke="null"
on it; PR #142pathseg.js
to latest version to fix; #216; PR #217getInsectionList
to be of correct the type; PR #67NoModificationAllowedError
upon selecting multiple elements
(#54, PR #57)supportsNativeTransformLists
detection
beyond Firefox; PR #158getSnapToGrid
) through canvas for
extensions; PR #87composer.json
to let PHP developers keep track of
svgedit on packagist.org
; PR #174.addSvgElementFromJson
to create text nodes and build
children; PR #130getBBox
performance improvements; PR #103HistoryRecordingService
and separate layer.js
file; PR #107draw.js
and utilities; PR #109build
to ignore; PR #125package.json
for npm to reserve name (reflecting current
state of master
)