Commit Graph

2219 Commits (97f64d21897bd1ed5e107a0fe27325f33351aece)

Author SHA1 Message Date
Brett Zamir ab5aec978e - Further work on openclipart (now just need to pass to ) 2018-09-26 14:46:53 +08:00
Brett Zamir 526c87b61e - Further work on openclipart (use qr-manipulation) 2018-09-26 12:38:00 +08:00
Brett Zamir 8c0161361f - Fix (Imagelib): Avoid premature exit for string API (#274) 2018-09-25 23:34:51 +08:00
Brett Zamir fff4b2e48b - Openclipart: Bail on error, lbs 2018-09-25 16:52:12 +08:00
Brett Zamir 4b6be7a871 - Incomplete enhancement: Add Openclipart query page (using Jamilih); need to better format results and tie into Imagelib 2018-09-25 16:49:26 +08:00
Brett Zamir 90ff5b9479 - Update (Imagelib): Remove extra (and more outdated) jQuery copy
- Refactoring (minor): Reuse local variable
- Docs: Contributing re: updates
2018-09-25 14:21:40 +08:00
Brett Zamir fa37778ec0 - Fix: Ensure repeated selection of same file overwrites with that
file's contents (fix #289)
2018-09-25 11:19:13 +08:00
Brett Zamir 0034447d44 - Imagelib backward compatibility enhancement: Allow string based API
again so as not to break old SVG-Edit which fail at *presence* of
  `namespace` (fixes #274)
- Known regression: Remove Openclipart as its site's now setting of
  `X-Frame-Options` to `"sameorigin"` makes it unusable on our end
  for our cross-origin uses
- Forward compatibility enhancement: For IAN image library, add
  `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)
- Docs: Add "Forward compatibility enhancement" to list
2018-09-25 10:13:29 +08:00
Brett Zamir 83aa156353 - Fix (regression): Imagelib (ensure non-URL relative paths are treated as current origin); variable order (#274) 2018-09-25 03:32:01 +08:00
Brett Zamir 459a6b8f89 - Build: Update `dist` 2018-09-25 03:12:11 +08:00
Brett Zamir 704336c0f2 - Imagelib backward compatibility enhancement: Allow `namespace-key` as
alternative to `namespace` so as not to break old SVG-Edit which fail
  at *presence* of `namespace` (fixes #274)
- Forward compatibility enhancement: Once IE9 support may be dropped,
  we may post messages as objects, so don't break if objects received
  (embedded API, xdomain, Imagelib)
2018-09-25 03:06:22 +08:00
Brett Zamir 7ff2721ba9 - Enhancement: Auto-detect `allowedImageLibOrigins` based on locale rather than requiring user to supply 2018-09-25 02:35:15 +08:00
Brett Zamir a22895c53a - Security fix (Imagelib): Avoid XSS (fixes #288)
- Fix (Imagelib): `dropXMLInternalSubset` misspelled
2018-09-25 02:06:51 +08:00
Brett Zamir 11baad0402 - Security fix/Breaking change (Imagelib): Require `allowedImageLibOrigins`
config array be set with safe origins or otherwise reject `postMessage`
  messages in case from untrusted sources
- Security fix/Breaking change (xdomain): Namespace xdomain file to avoid
  it being used to modify non-xdomain storage
- Security fix (Imagelib): Expose `dropXMLInternalSubset` to extensions
  for preventing billion laughs attack (and use in Imagelib)
2018-09-24 20:59:47 +08:00
Brett Zamir 25ed8ad465 - Linting (LGTM): Mark remote property injection in embedapi as safe 2018-09-24 20:08:49 +08:00
Brett Zamir 7db8cc9c36 - Fix: Ensure poly shape has a `points` attribute
- Refactoring: Avoid building nested function upon each function call
- Linting (ESLint): Coding standards
2018-09-22 11:59:34 +08:00
eric f485a05c56 Export polygon and polyline to PDF. fix #280 2018-09-22 11:21:22 +08:00
Brett Zamir fbffc86503 - Security fix (minor): For embedded API, avoid chance for arbitrary property
setting (though this was only for trusted origins anyways)
- Security fix (minor): For embedded API example, copy params to iframe
    source without XSS risk (though params should already be XML-safe
    given `encodeURIComponent` and lack of a single quote attribute context)
- Linting (LGTM): Flag origin-checked item as safe
- Refactoring: Destructuring, ellipsis
- Docs (JSDoc): Missing return value
2018-09-22 10:06:25 +08:00
Brett Zamir dab1ff81af - Fix (jPicker): Avoid setting `Math.precision` pseudo-global
- Refactoring (jPicker): Use ES6 templates; avoid unnecessary check
- Refactoring: Avoid useless assignment (courtesty lgtm)
- Build: Update files
2018-09-22 09:01:13 +08:00
Brett Zamir be17cd249c LGTM.com-inspired changes:
- Fix: Ensure all apostrophes are escaped for `toXml` utility
- Fix: Avoid error if `URL` is not defined
- Fix (jPicker): Precision argument had not been passed in previously
- Fix (Star extension): Minor: Avoid erring if `inradius` is `NaN`
- Refactoring: Avoid passing unused arguments, setting unused variables,
  and making unnecessary checks; avoid useless call to `createSVGMatrix`
- Linting (LGTM): Add `lgtm.yml` file (still some remaining items flagged
  but hoping for in-code flagging)
- Docs: Contributing file
2018-09-21 10:56:07 +08:00
Brett Zamir cba5909472 - Fix (regression): i18n of markers extension 2018-09-14 07:36:06 +08:00
Brett Zamir b51db3a3c1 - Fix (Context menus): Avoid showing double shortcuts (#285); add some
missing ones
2018-09-14 07:18:26 +08:00
Brett Zamir ed6aa3fcb8 - Build: Update `dist` files 2018-09-13 22:57:01 +08:00
Brett Zamir c0ea00d36b - Fix (image export) Export in Chrome; fixes #282 2018-09-13 18:23:53 +08:00
Brett Zamir 0688b9af60 - Fix (image import): Put src after onload to avoid missing event;
check other width/height properties in case offset is 0; fixes #278
2018-09-13 17:54:40 +08:00
Brett Zamir b0bad24645 - Linting (ESLint): Apply coding standards
- Breaking change (minor): Change export filename to check `exportWindowName` and change default from `download.pdf` to `svg.pdf` to distinguish from other downloads
- Enhancement: Restore old dataURI functionality for non-Chrome browsers
2018-09-13 09:13:05 +08:00
eric fc1f36714e fix pdf export issue. #124 and #254 2018-09-13 07:47:19 +08:00
Brett Zamir 4b22c248e4 - npm: Update devDeps
- Build: Switch to `terser` plugin with `uglify` plugin not
    supporting ES6+-capable minifier
- Linting (ESLint): Consistent curly spacing; follow new "standard"
2018-09-07 08:19:45 +08:00
Brett Zamir cad412fe6e - Optimization: Image compression 2018-09-07 05:41:46 +08:00
Brett Zamir 97d093d6ef - Linting (ESLint): Add xdomain file to ignore file
- Fix (i18n): Regression in last commit with locales and apostrophe values
- npm: Avoid adding config files to ignore file
- npm: Bump to 3.0.0-rc.2
- Build: Update build
2018-07-31 15:15:25 -07:00
Brett Zamir 63fab9ff43 - i18n: Move `imagelib` reference from common to ext. locale;
remove `toggle_grid` from `az` locale
2018-07-31 14:59:27 -07:00
Brett Zamir f1666d11d1 - i18n: Remove eyedropper reference from main locale (in extension locale now)
- i18n: Add placeholders for `pick_stroke_paint_opacity`, `pick_fill_paint_opacity`, `popupWindowBlocked`
- i18n: Update `saveFromBrowser`
- i18n: Reapply locale strings
2018-07-31 13:22:00 -07:00
Brett Zamir acb57c1609 - Fix: Add images (and references) for fallback (#135)
- Fix (canvg): blur export fix
- i18n (Chinese): A few fixes (#135)
- Optimize: Further image optimizing
- Refactoring: Avoid custom JS substitution syntax
- Refactoring: Reorder default extension list
2018-07-31 00:18:39 -07:00
Brett Zamir 5ad6e6ba48 - Enhancement: Create xdomain file build which works without ES6 Modules
- Enhancement: Build xdomain files dynamically
- Fix: Race condition in svgIcons plugin
- Build: Update `dist` files
2018-07-30 12:51:57 -07:00
Brett Zamir 0a2da503f1 - Fix: Avoid extension `includeWith` button conflicts/redundancies;
Incorporates #147
- Fix: Ensure shift-key cycling through flyouts works with extension-added
    `includeWith` as well as toolbarbuttons
- Fix: Apply flyout arrows after extensions callback
- Fix: Ensure SVG icon of flyout right-arrow is cloned to can be applied to
    more than one extension
- Fix: Ensure line tool shows as selected when "L" key command is used
- Refactoring: Avoid passing on `undefined` var. (#147)
- Refactoring: lbs; avoid indent in connector, destructuring, use map over push
- Docs: Clarify nature of fixes
- Docs: JSDoc for `setupFlyouts`, `Actions`, `toggleSidePanel`; missing for
  ToolbarButton
2018-07-28 19:16:55 -07:00
Brett Zamir e2d378cfe6 - Optimize: Avoid rewriting `points` attribute for free-hand path; incorporates #176 (fixes #175)
- Docs: Update CHANGES
2018-07-26 00:01:58 -07:00
Brett Zamir 3008696314 - Allow template to have text node for readability 2018-07-25 17:44:37 -07:00
Brett Zamir aa2c3f142e - Fix (regression in last commit): Avoid empty text node in SVG template 2018-07-25 17:42:06 -07:00
Brett Zamir a68696ee34 - Refactoring (minor): Array destructuring
- Refactoring (minor): ES6 templates
- i18n: picking stroke/fill paint and opacity
2018-07-25 16:43:29 -07:00
Brett Zamir 5d0dd85507 - Fix: Regression for `text` and `tspan` elements as far as
`captureTextNodes` with canvg (inheriting class had set
  `captureTextNodes` too late)
- Fix: Avoid errors for tspan passed to `getGradient`
2018-07-22 23:39:22 -07:00
Brett Zamir d71ca48654 - Docs: A couple JSDoc fixes 2018-07-20 20:45:46 -07:00
Brett Zamir 0a25236477 - Breaking change: Avoid adding `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
- Build: Update ext-xdomain-messaging
- Fix (extension): ForeignObject editor
- Docs: Avoid reporting deliberate "Any" type
- Docs: Further docs (`logMatrix`, `getPrivateMethods`)
- Docs: Suggest `npm pack`
2018-07-19 14:58:30 -07:00
Brett Zamir 6122d6d2f1 - Fix (Embedded editor): Workaround Chrome blocking issue 2018-07-18 22:37:47 -07:00
Brett Zamir 7e9235504a - Fix (Embedded editor): Ensure origins can match by extracting origin out of base path 2018-07-18 22:32:04 -07:00
Brett Zamir b023a0076b - npm: Add script for testing embedded API
- Fix (Embedded editor): Ensure adding allowedOrigins for embedded response
- Enhancement (Embedded editor): Log if an origin is not whitelisted as sender/receiver
- Demo: Point to raw.githack for proper content-type setting and apparent CORS support; also add `xdomain-svg-editor-es.html` to set origin config and work on Git-based server
2018-07-18 22:25:09 -07:00
Brett Zamir 082d8d0246 - Fix: Truly fix jGraduate CSS casing 2018-07-18 21:21:15 -07:00
Brett Zamir 3289131f7c - Fix (npm): Update `load-stylesheets` to avoid recursion upon CSS loading errors 2018-07-18 21:10:05 -07:00
Brett Zamir a3f0b8e501 - Security fix: 'extPath', 'imgPath', 'extIconsPath', 'canvgPath', 'langPath', 'jGraduatePath', and 'jspdfPath' were not being prevented
- Breaking change: Rename "svgutils.js" to "utilities.js" (make in conformity with JSDoc module naming convention)
- Breaking change: Rename "svgedit.js" to "namespaces.js" (to make clear purpose and avoid confusing with editor)
- Breaking change: Rename "jquery-svg.js" to "jQuery.attr.js"
- Breaking change: Rename "jquery.contextMenu.js" to "jQuery.contextMenu.js"
- Breaking change: Rename "jquery.jpicker.js" to "jQuery.jPicker.js"
- Breaking change: Rename "JQuerySpinBtn.css" to "jQuery.SpinButton.css"
- Breaking change: Rename "JQuerySpinBtn.js" to "jQuery.SpinButton.js" (to have file name more closely reflect name)
- Breaking change: Rename "jquery.svgicons.js" to "jQuery.svgIcons.js"
- Breaking change: Rename "jquery.jgraduate.js" to "jQuery.jGraduate.js"
- Breaking change: Rename "pathseg.js" to "svgpathseg.js" (as it is a poyfill of SVGPathSeg)
- Breaking change: Rename `addSvgElementFromJson()` to `addSVGElementFromJson` for consistency
- Breaking change: Rename `changeSvgContent()` to `changeSVGContent()` for consistency
- Breaking change: Have `exportPDF` resolve with `output` and `outputType` rather than `dataurlstring` (as type may vary)
- Breaking change: Rename `extensions/mathjax/MathJax.js` to `extensions/mathjax/MathJax.min.js`
- Breaking change: Avoid recent change to have editor ready callbacks return Promises (we're not using and advantageous to keep sequential)
- Breaking change: Avoid recent addition of locale-side function in ext-imagelib for l10n
- Breaking change: Change name of ext-arrows.js from `Arrows` to `arrows` for sake of file path (not localized anyways).
- Breaking change: Change `addlangData` extension event to `addLangData` for consistency with method name
- Breaking change: Have `readLang`  return lang and data but do not call `setLang`
- Fix: Have general locales load first so extensions may use
- Fix: Provide `importLocale` to extensions `init` so it may delay adding of the extension until locale data loaded
- Fix: Ensure call to `rasterExport` without `imgType` properly sets MIME type to PNG
- Fix: Wrong name for moinsave
- Update: Update WebAppFind per new API changes
- Enhancement: Make `setStrings` public on editor for late setting (used
  by `ext-shapes.js`)
- Enhancement: Add `extensions_added` event
- Enhancement: Add `message` event (Relay messages including those which
  have been been received prior to extension load)
- Enhancement: Allow SVGEdit to work out of the box--avoid need for copying sample config file. Should also help with Github-based file servers
- Enhancement: Allow avoiding "name" in extension export (just extract out of file name)
- Enhancement: Add stack blur to canvg by default (and refactoring it)
- Enhancement: Return `Promise` for `embedImage` (as with some other loading methods)
- Enhancement: Supply `importLocale` to `langReady` to facilitate extension locale loading
- Enhancement: Recover if an extension fails to load (just log and otherwise ignore)
- Enhancement: More i18n of extensions (also fixed issue with some console warnings about missing locale strings); i18nize Hello World too
- Enhancement: Allowing importing of locales within `addLangData`
- npm: Update devDeps
- Docs: Migrate copies of all old wiki pages to docs/from-old-wiki folder; intended for a possible move to Markdown, so raw HTML (with formatting) was not preserved, though named links had their absolute URL links preserved
- Docs: Begin deleting `SvgCanvas.md` as ensuring jsdoc has replacements
- Docs: Add Edtior doc file for help to general users
- Docs: Clarify/simplify install instructions
- npm/Docs (JSDoc): Add script to check for overly generic types
- Docs (JSDoc): For config/prefs and extension creating, link to tutorials (moved tutorials to own directory to avoid recursion problems by jsdoc)
- Docs (JSDoc): Add modules (upper case for usual main entrance files or regular names)
- Docs (JSDoc): Fill out missing areas; indicate return of `undefined`; consistency with `@returns`
- Docs (JSDoc): Add our own layout template to support overflow
- Docs (JSDoc): Use cleverLinks and disallow unknown tags
- Docs (JSDoc): Insist on "pedantic" flag; put output directory in config
- Docs (JSDoc): Use more precise Integer/Float over number, the specific type of array/function/object
- Docs (JSDoc): Use `@throws`, `@enum`, `@event`/`@fires`/`@listens`
- Docs: Generally update/improve docs (fixes #92)
- Docs: Update links to `latest` path (Avoid needing to update such references upon each release)
- Docs: 80 chars max
- Refactoring: Drop code for extension as function (already requiring export to be an object)
- Refactoring: Object destructuring, `Object.entries`, Object shorthand, array extras, more camelCase variable names
- Refactoring: Add a `Command` base class
- Refactoring: Simplify svgicons `callback` ready detection
- Refactoring: Put `let` or `const` closer to scope
- Refactoring: Remove unneeded `delimiter` from regex escaping utility
- Refactoring: Clearer variable names
- Refactoring: Use (non-deprecated) Event constructors
- Testing: Use new Sinon
2018-07-08 22:39:46 -07:00
Brett Zamir efc3f5aaba - Avoid erring during resize on encountering MathML (which have no `style`) 2018-06-25 13:26:13 +08:00
Brett Zamir 30b2f3cfe1 - Fix rectangle/image/square/foreignObject (fixes #262) 2018-06-25 13:12:27 +08:00
Brett Zamir ccb793e78c - Fix: Detection of whether to keep ellipse (rx and ry when just created are now returning 0 instead of null); fixes #262
- Refactoring: Simplify `isValidUnit`
2018-06-25 12:39:10 +08:00
Brett Zamir 9f65b1adb9 - Breaking change: Extension now formatted as export (and `this` is set to editor, including for `callback`)
- Breaking change: Locale now formatted as export
- Breaking change: Moved out remaining modular i18n (imagelib) to own folder
- Breaking change: Drop `executeAfterLoads` (and getJSPDF/getCanvg)
- Breaking change: `RGBColor` must accept `new`
- Breaking change: canvg - `stackBlurCanvasRGBA` must be set now by function (`setStackBlurCanvasRGBA`) rather than global; `canvg` now a named export
- Breaking change: Avoid passing `canvg`/`buildCanvgCallback` to extensions (have them import)
- Fix: i18nize imaglib more deeply
- Fix: Positioning of Document Properties dialog (Fixes #246)
- Fix (regression): PDF Export (Fixes #249)
- Fix (regression): Add polyfill for `ChildNode`/`ParentNode` (and use further)
- Fix (regression): Apply Babel universally to dependencies
- Fix (regression): Ordering of `uaPrefix` function in `svgEditor.js`
- Fix (regression): Embedded API
- Fix (embedded editor): Fix backspace key in Firefox so it doesn't navigate out of frame
- Fix: Alert if no exportWindow for PDF (e.g., if blocked)
- Refactoring( RGBColor) `RGBColor` as class, without rebuilding constants, optimize string replacement, move methods to prototype, use templates and object literals, use `Object.keys`
- Refactoring (canvg) Use classes more internally, use shorthand objects; array extras, return to lazy-loading
- Refactoring: Use Promises in place of `$.getScript`; always return Promises in case deciding to await resolving
- Refactoring: Avoid importing `RGBColor` into `svgutils.js` (jsPDF imports it itself)
- Refactoring: Arrow functions, destructuring, shorter property references
- Refactoring: Fix `lang` and `dir` for locales (though not in use currently anyways)
- Refactoring: Provide path config for canvg, jspdf
2018-06-12 06:50:28 +08:00
Neil Fraser a2df54881f Remove redundant (and incorrect) length set. (#256)
* Remove redundant (and incorrect) length set.

Fixes issue #255

* Simplify code by using push instead of a variable
2018-06-11 08:44:45 -07:00
Brett Zamir e7f3fbc841 - npm: Update devDep Rollup
- Linting (ESLint): Prefer `const` over `let`
- Build: Update `dist` files
2018-06-06 16:44:19 +08:00
Neil Fraser 2deaf4710a Sort SVG attributes alphabetically. (#252)
* Sort SVG attributes alphabetically.

This makes the exported SVG deterministic and diffable.

* Simplify attr variable
2018-06-03 02:44:57 -07:00
Brett Zamir 5469084919 - Refactoring (minor): `getIssues` to return codes and strings, lbs
- JSDoc: Fix param
2018-06-01 15:59:17 +08:00
Brett Zamir a27a5d5637 - Docs: Exclude from jsdoc firefox-extension, opera-widget, screencasts, test folders and build.html.js/rollup files
- Docs: Further JSDoc of methods
- Docs: Transfer some changes from ExtensionDocs on wiki (need to fully reconcile)
- Refactoring (minor): variadic args through ellipsis
2018-05-31 16:07:44 +08:00
Brett Zamir 96e089f930 - Breaking change: In interests of modularity/removing globals, remove `window.svgCanvas`
and `svgCanvas.ready` as used by older extensions; use `svgEditor.canvas` and
    `svgEditor.ready` instead
- npm: Add `prepare` script to ensure building/testing before publish
2018-05-31 09:53:47 +08:00
Brett Zamir 77999a31ce - Docs: Fix outdated comment 2018-05-31 09:43:35 +08:00
Brett Zamir 6ccaf2491c - Enhancement: Add `pointsAdded` canvas event (Fixes #141) 2018-05-31 09:43:18 +08:00
Brett Zamir 7f5c315812 - Linting (ESLint): Missed a few comments 2018-05-31 09:16:29 +08:00
Brett Zamir a5c25a2113 - Code comments: Coding standards within
- Refactoring (minor): Use single quotes in PHP
2018-05-31 07:52:13 +08:00
Brett Zamir 8f53e34c0c - Docs (JSDoc)
- Fix regression (Imagelib): Fix path for non-module version
2018-05-30 21:49:32 +08:00
Brett Zamir d173df34d2 - Fix (Embedded API): Cross-domain may fail to even access `origin` or `contentDocument`
- Fix (Embedded API): Avoid adding URL to iframe src if there are no arguments
- Fix (Cross-domain usage): Recover from exceptions with `localStorage`
- Docs (JSDoc): Missing function
2018-05-30 19:39:00 +08:00
Brett Zamir f2b1a1ff0c - Enhancement: Allow callback argument and return promise
for canvas methods: `rasterExport` and `exportPDF`
2018-05-30 16:47:43 +08:00
Brett Zamir a5ad91a370 - Refactoring: Sort Embedded functions alphabetically and add lbs for better visibiilty in code
- i18n: Clarify locale messages (where still available as English) to reflect fact that Chrome only has "Save as" via context menu/right-click, not via file menu (toward #192)
- Linting (ESLint): Avoid linting jsdoc folder
2018-05-30 16:00:06 +08:00
Brett Zamir 2ddc78d525 - Fix (regression): Favicon setting 2018-05-30 08:54:56 +08:00
Brett Zamir 9f4eedc419 - Fix (regression): Star tool (radialshift) 2018-05-30 08:48:56 +08:00
Brett Zamir 81dc19cc17 - Fix (regression): Bad name on function passed to `path.js`
- Linting (ESLint): Fix semi-colon error
2018-05-30 08:25:56 +08:00
tetedacier d098dc0914 Bugfix/separate declaration from exposition (#245)
* Separate definition from exposition

* Suppress previous documentation before generating new one

* Restore deleted line

* Set up verbosity to provide details on what's going on
2018-05-29 09:43:02 -07:00
Brett Zamir dc79fe7fde - npm: Alphabetize scripts
- JSDoc: Exclude svgedit config files
- JSDoc: Convert remaining items in old format to JSDoc (as could easily be found)
2018-05-29 20:31:24 +08:00
tetedacier c965d6b5f2 Fix jsdoc syntax error 2018-05-29 10:41:26 +02:00
Brett Zamir a353d6fc89 - npm: Update devDeps
- Fix: Enforce stylesheet ordering sequence
- Fix: Ensure SVG-edit hidden until stylesheets loaded
- Fix: Avoid abandoning stylesheet loading if one load fails
2018-05-29 13:48:42 +08:00
Brett Zamir 5e8f460f55 - Fix (Extensions): Use "extIconsPath` for now given that `extPath` will not work relative to `dist` 2018-05-28 21:59:39 +08:00
Brett Zamir 54d6fd41b6 - Allow `addSvgElementFromJson` to accept non-SVG namespaces with explicit
`namespace` property as well as the default SVG namespace (fixes #155);
    document
2018-05-28 21:17:27 +08:00
Brett Zamir 28ba66d98d - Optimization: For `setSvgString`, if element content is not SVG, return `false` earlier (Fixes #152); thanks iuyiuy! 2018-05-28 20:42:37 +08:00
Brett Zamir 5b23b93154 - Fix (ext-connector): Handle case of 2 connecting elements with same y-coordinate (fixes #210 ; thanks, @iuyiuy!) 2018-05-28 20:29:22 +08:00
Brett Zamir c2e06534ff - Enhancement: Delete the imge upon cancel if it is a new image (fixes #177) 2018-05-28 19:19:00 +08:00
Brett Zamir beb513ae0e - npm: `package-lock.json`: updated version
- Fix (Connector extension): Get config object when available
2018-05-28 18:49:30 +08:00
Brett Zamir 5ad83b9b87 - Refactoring: Clean-up
- Fix: Race condition with svgicons and seticonsize
- Embedded editor: Use module form for now; drop unused inline attribute
- Embedded editor: Fix PNG export; work toward restoring PDF (add `getUIStrings` method to editor for assisting)
- canvg and importScript fixes
2018-05-25 22:43:01 +08:00
Brett Zamir bf261fd670 - Add in locales for English 2018-05-25 21:25:38 +08:00
Brett Zamir 8c9e40d349 - Breaking change: Rename config file to `svgedit-config-iife.js` (or for the module version, `svgedit-config-es.js`);
also expect one directory higher; incorporates #207 (@iuyiuy)
- Breaking change: Separate `extIconsPath` from `extPath` (not copying over icons)
- Breaking change: Don't reference `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)
- Breaking change: Remove minified jgraduate/spinbtn files (minified within Rollup routine)
- Fix: Zoom when scrolled; incorporates #169 (@AndrolGenhald), adapting for conventions; also allow avoidance when shift key pressed
- Fix: Update Atom feed reference in HTML
- Fixes related to recent commits: Some path and method name fixes needed, function order, missing methods, variable scope declaration, no need for DOMContentLoaded listeners in modules, switch back to non-default export, avoid trimming nullish, deal with mock tests, fix `math.matrixMultiply`, use jquery-svg where needed for array/SVG attributes; add babel-polyfill and defer script to imagelib; other misc. fixes
- Enhancement: Move config-sample.js out of `editor` directory
- Enhancement: For `callback`-style extensions, also provide config object; add following
   to that object: buildCanvgCallback, canvg, decode64, encode64, executeAfterLoads, getTypeMap, isChrome, ieIE, NS, text2xml
- Enhancement: Complete ES6 modules work (extensions, locales, tests), along with Babel;
    make Node build routine for converting modular source to non-modular,
    use `loadStylesheets` for modular stylehsheet defining (but parallel loading);
- Enhancement: Add `stylesheets` config for modular but parallel stylesheet loading with `@default` option for simple inclusion/exclusion of defaults (if not going with default).
- Refactoring: Clean up `svg-editor.html`: consistent indents; avoid extra lbs, avoid long lines
- Refactoring: Avoid embedded API adding inline JavaScript listener
- Refactoring: Move layers and context code to `draw.js`
- Refactoring: Move `pathActions` from `svgcanvas.js` (though preserve aliases to these methods on `canvas`) and `convertPath` from `svgutils.js` to `path.js`
- Refactoring: Move `getStrokedBBox` from `svgcanvas.js` (while keeping an alias) to `svgutils.js` (as `getStrokedBBoxDefaultVisible` to avoid conflict with existing)
- Docs: Remove "dependencies" comments in code except where summarizing role of jQuery or a non-obvious dependency
- Refactoring/Linting: Enfore `no-extra-semi` and `quote-props` rules
- Refactoring: Further avoidance of quotes on properties (as possible)
- Refactoring: Use `class` in place of functions where intended as classes
- Refactoring: Consistency and granularity in extensions imports
- Testing: Update QUnit to 2.6.1 (node_modules) and Sinon to 5.0.8 (and add sinon-test at 2.1.3) and enforce eslint-plugin-qunit linting rules; update custom extensions
- Testing: Add node-static for automating (and accessing out-of-directory contents)
- Testing: Avoid HTML attributes for styling
- Testing: Add npm `test` script
- Testing: Comment out unused jQuery SVG test
- Testing: Add test1 and svgutils_performance_test to all tests page
- Testing: Due apparently to Path having not been a formal class, the test was calling it without `new`; refactored now with sufficient mock data to take into account it is a class
- npm: Update devDeps
- npm: Add html modules and config build to test script
2018-05-25 20:03:14 +08:00
Brett Zamir ae2394f086 (INCOMPLETE: ES6 Module conversion and linting)
- Breaking change: Require `new` with `EmbeddedSVGEdit` (allows us to use `class` internally)
- Breaking change: If `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)
- Breaking change (ext-overview-window): Avoid global `overviewWindowGlobals`
- Breaking change (ext-imagelib): Change to object-based encoding for namespacing of
    messages (though keep stringifying/parsing ourselves until we remove IE9 support)
- Breaking change: Rename `jquery.js` to `jquery.min.js`
- Breaking change: Remove `scoped` attribute from `style`; it is now deprecated and
    obsolete; also move to head (after other stylesheets)
- Enhancement: Make SpinButton plugin independent of SVGEdit via
    generic state object for tool_scale
- Enhancement: Remove now unused Python l10n scripts (#238)
- Enhancement: ES6 Modules (including jQuery plugins but not jQuery)
- Enhancement: Further JSDoc (incomplete)
- Enhancement (Optimization): Compress images using imageoptim (and add
    npm script) (per #215)
- Fix: i18nize path.js strings and canvas notifications
- Fix: Attempt i18n for ext-markers
- Refactoring (ext-storage): Move locale info to own file imported by the extension (toward modularity; still should be split into separate files by language and *dynamically* imported, but we'll wait for better `import` support to refactor this)
- Refactoring: For imagelib, add local jQuery copy (using old 1.4.4 as had
    been using from server)
- Refactoring: For MathJax, add local copy (using old 2.3 as had been using from
    server); server had not been working
- Refactoring: Remove `use strict` (implicit in modules)
- Refactoring: Remove trailing whitespace, fix some code within comments
- Refactoring: Expect `jQuery` global rather than `$` for better modularity
    (also to adapt line later once available via `import`)
- Refactoring: Prefer `const` (and then `let`)
- Refactoring: Add block scope keywords closer to first block in which they appear
- Refactoring: Use ES6 `class`
- Refactoring `$.isArray` -> `Array.isArray` and avoid some other jQuery core methods
    with simple VanillaJS replacements
- Refactoring: Use abbreviated object property syntax
- Refactoring: Object destructuring
- Refactoring: Remove `uiStrings` contents in svg-editor.js (obtains from locale)
- Refactoring: Add favicon to embedded API file
- Refactoring: Use arrow functions for brief functions (incomplete)
- Refactoring: Use `Array.prototype.includes`/`String.prototype.includes`;
    `String.prototype.startsWith`, `String.prototype.trim`
- Refactoring: Remove now unnecessary svgutils do/while resetting of variables
- Refactoring: Use shorthand methods for object literals (avoid ": function")
- Refactoring: Avoid quoting object property keys where unnecessary
- Refactoring: Just do truthy/falsey check for lengths in place of comparison to 0
- Refactoring (Testing): Avoid jQuery usage within most test files (defer script,
    also in preparation for future switch to ES6 modules for tests)
- Refactoring: Make jpicker variable declaration indent bearable
- Refactoring (Linting): Finish svgcanvas.js
- Docs: Mention in comment no longer an entry file as before
- Docs: Migrate old config, extensions, and FAQ docs
- Licensing: Indicate MIT is license type of rgbcolor; rename/add license file name for
    jgraduate and screencast to reflect type (Apache 2.0); rename file to reflect it
    contains license information (of type MIT) for Raphael icons
2018-05-22 18:02:57 +08:00
Brett Zamir 7cf976cfb8 - Fix (Locale): Remove bad characters in Persian (fa) file
- Linting (ESLint): Locale files
- Docs: Fix code comment
- Remove BOM from documents (@drsassafras #237)
2018-05-20 15:04:11 +08:00
Brett Zamir 10291dc556 - Remove carriage returns; fixes #37
- Remove extra spaces from svgcanvas, embedapi
2018-05-18 15:39:36 +08:00
Brett Zamir 52353c6321 - Further convert tabs -> 2 spaces in JS code comments (except in test performance
file where used for alignment though use tab escape within JS), CSS
    (including comments), PHP, SVG, JSON, XUL
- Remove extra spaces in svgcanvas.js, ext-connector.js
2018-05-18 14:41:43 +08:00
Brett Zamir 4bfbaacb5e - Complete conversion to 2-spaces, fixing issue #37 (also removed some extra/misplaced tabs/spaces in process) 2018-05-18 14:23:36 +08:00
Brett Zamir f21d41a231 - Linting (ESLint): Use two spaces for indent
- Update links in commented out copyright section of editor, link in screencast, and within SVG file comments (created with SVG-edit should refer to current URL)
2018-05-18 14:05:52 +08:00
Brett Zamir dc6ab72480 - Update Opera and jQuery links
- Use `https://` (fix #172), including in prompt for URL and relevant code comments (where available and naturally not on namespaces)
- Comment out broken link in svg-editor.html
- Trailing space
2018-05-18 13:48:47 +08:00
codedread 646a927ef6 Convert all tabs to spaces in extensions for issue #37 2018-05-17 21:54:31 -07:00
codedread e38fbc75c7 Remove un-maintained wave code 2018-05-17 21:19:40 -07:00
codedread 81c11b2ce0 Merge branch 'master' of https://github.com/SVG-Edit/svgedit 2018-05-17 21:03:15 -07:00
codedread 4043c6e537 Change all tab indentations to 2sp indentation. Addresses issue #37 2018-05-17 21:02:30 -07:00
Brett Zamir 80d49ed0e4 - Refactoring (Browser unsupported): Restore newly appied HTML/CSS standards, add lbs; remove now unused file
- Fix (Browser unsupported page): Fix IE download link, caniuse links (use more broad SVG category)
2018-05-18 11:55:28 +08:00
Brett Zamir 89cbab7217 - Refactoring (minor): Simplify (empty string is falsey)
- Refactoring (minor): Consistent HTML indenting/no-namespacing and title/icon use
- Testing: Add browser bug test with reference to issue
2018-05-18 11:35:24 +08:00
Brett Zamir f768fe2547
Merge pull request #236 from NeilFraser/lint2
Lint (v2)
2018-05-18 11:20:09 +08:00
Neil Fraser 7bb89f53a5 Don’t throw error for unlinked nodes in Chrome
evt.target in Chrome is the abandoned shape, not connected to the DOM.  evt.target in Firefox is the svgroot.

Add checks to ensure that no matter what node is presented by the event, there are no property calls to null or undefined.

Fixes issue #232.
2018-05-17 12:04:58 -07:00
Neil Fraser f9fb7f47ae Residual linting
{object} -> {Object}
Remove extra semicolons.
Use jQuery’s .empty().
Make nodelist loops O(n) rather than O(n^2).
Specify radix in parseInt to prevent guessing octal.
2018-05-17 11:57:28 -07:00
Neil Fraser 1c966d17ed Update not supported page (#230)
Update old links.  Remove now-defunct link to Chrome Frame.  Use CSS instead of JavaScript and jQuery.
2018-05-17 11:29:20 -07:00
Brett Zamir 4fd4054f03 - Enhancement: Use minified version of jpicker in svg-editor
- Build: Update minified version of jgraduate/jpicker per linted/improved files (and add to uglify script)
- Fix: jgraduate recent regressions
- Docs: Update CHANGES
2018-05-17 17:42:46 +08:00
Brett Zamir e252e866b7 - npm: Add uglify script
- Todo: Indicate to-do re: converting AppCache to sample service-worker
- Build: Update minified version of spinbtn per linted/improved file
2018-05-17 16:55:33 +08:00
Brett Zamir fb329e4977
Merge pull request #229 from NeilFraser/deps
Add missing dependency
2018-05-17 15:32:20 +08:00
Brett Zamir 69f3a42aa8 Current test status: All tests passing (in at least Chrome and Firefox beta)
- Fix (Firefox): tspan (and textPath apparently) have no `getBBox` in Firefox, so recover (fixes FF issue with recalculate test 3: "recalculateDimensions() on text w/tspan with simple translate")
- Fix (Chrome): Chrome has a bug in not performing `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")
2018-05-17 15:27:38 +08:00
Brett Zamir 25b1e9be01 - Linting (ESLint): Fix other indents besides main (though continue to disable check) 2018-05-17 13:15:20 +08:00
Brett Zamir fff77db4f1 Test summary: two tests failing: draw.js (releaseId), svgedit.recalculate (text w/tspan with simple translate)
- Testing: Add node-static to get tests working
- Testing: Fix timing for ensuring expanding iframe size to fit content
- Testing: Add favicon to test files
- Refactoring: Move scripts to own files and lint
2018-05-17 12:57:51 +08:00
Brett Zamir a3b3525789 - Linting (ESLint): Finish
- Fix: Globals (x, y) in `mouseMove`
- Fix: Global (element, d_attr->dAttr) in `mouseDown`
- Fix: Avoid `drawnPath` not defined error
- Docs: sp.
2018-05-17 11:34:21 +08:00
Brett Zamir eba9dee54c - Linting (ESLint): Finish `editor/svg-editor.js`; unfinished: `editor/svgcanvas.js`
- Fix: Restore save alert
2018-05-16 16:03:43 +08:00
Brett Zamir 340915be4e - Linting (ESLint): Finish extensions and most files in editor/; unfinished: `editor/svg-editor.js`, `editor/svgcanvas.js`
- Linting (ESLint): Fix ignore file paths
- History `elem` fix
2018-05-16 12:08:41 +08:00
Brett Zamir 15331535f8 - jgraduate->jpicker: Fix Throw Error object of Invalid Mode instead of string
- jgraduate->jpicker: Fix missing `var` for some i loops
- jgraduate->jpicker: Fix Color val check when `name.length` is empty (equal to "all")
- jquery.jgraduate.js: Fix `numstops` is present for check
- Linting: ESLint; unfinished: editor/extensions/, editor/ (root), test/ (root) HTML
2018-05-15 23:10:20 +08:00
Brett Zamir 5894398c36 - Linting: ESLint (or ignore) JavaScript files; unfinished: editor/jgraduate and editor/extensions folders, editor/ (root), test/ (root) HTML
- Fix: An apparent bug in jquery.svgicons.js whereby a variable `holder` was declared in too nested of a scope
- Fix: `addBezierCurve` in canvg.js had undeclared `i`
- Fix: Undeclared variable in opera widget
- Fix: Screencast `showNotes`
2018-05-13 18:47:00 +08:00
Brett Zamir 820964334c - Fix: Broken lv locale, inconsistent tabs/spaces pt-PR
- Linting: Add ESLint script and devDeps and begin ESLint conversion (completed locales and jspdf directories only)
2018-05-13 11:03:45 +08:00
Brett Zamir 38d6274723 - Linting (HTML): Use double-quotes for attributes, remove redundant `type=text/css`,
indent/lbs, consistent non-use of HTML namespace, consistent indents, consistent charset
    casing
- Linting (Markdown): Add `.remarkrc`, use proper hierarchical headings, use consistent
    heading format, trailing spaces
- `composer.json`: consistent property spacing
- License: Add `.txt` extension, update copyright date, and reflect type (MIT) in file name
- Credits: Add self
- npm: Add `package.json` (version 3.0.0-alpha.1 for npm release only; just reserving name)
2018-05-13 09:58:13 +08:00
Neil Fraser 6aced017ea Add missing dependency
HistoryRecordingService is required at line 400.
2018-05-10 12:07:44 -07:00
Igin edb8a75402 fix #222 Browsers block data URI (#224)
* fix #222 Browsers block data URI

* add spaces and blank lines
2018-04-12 11:00:52 -07:00
Jeff Schiller 396cce40eb
Merge pull request #208 from iuyiuy/setSvgString_without_undo
Add ability to set the svg drawing without adding to the undo stack.
2018-02-27 07:04:09 -08:00
KB Jørgensen 64759a8cab Added documentation for the preventUndo parameter in the svgcanvas.setSvgString() function. 2018-02-27 11:21:07 +01:00
Jeff Schiller aadb85a9b7
Merge pull request #158 from iuyiuy/improved_transform_list_detection
Improved transform list detection.
2018-02-26 20:39:27 -08:00
Philip Rogers f5f9e627d7
Update pathseg.js to fix Firefox 59+ path editing
Firefox 59 removed some SVG path seg APIs which breaks path editing.

This change updates pathseg.js to the latest version which contains a fix for Firefox 59. I checked that Firefox 58 (pre-api-change), Firefox 59 (post-api-change), Chrome 65, and Safari Tech Preview can all edit paths correctly with this change. This change has a lot of diffs due to minor changes in pathseg.js since the first time it was imported into svgedit.

This fixes issue #216
2018-02-26 18:10:26 -08:00
KB Jørgensen d3ed6cbb8c Changed code style as requested in svgedit pull request #208. 2018-01-26 15:11:41 +01:00
KB Jørgensen 07803fd1db Add ability to set the svg drawing without adding to the undo stack. 2018-01-22 11:40:00 +01:00
KB Jørgensen 42bcd5bcf8 Fixed typo in comment. 2018-01-22 10:15:59 +01:00
KB Jørgensen e055468f77 Added comment to explain meaning of a regex. 2018-01-22 10:15:59 +01:00
KB Jørgensen 055198e28d Use a variable for the key, as requested by codedread. 2018-01-22 10:15:59 +01:00
KB Jørgensen 19170116ba Fixed handling of connectors after the new clipboard changes. 2018-01-22 10:15:59 +01:00
KB Jørgensen 524f47cab9 Let the 'this' keyword propagate in to the for each loop. 2018-01-22 10:15:59 +01:00
KB Jørgensen 02c8721c2d Implemented a clipboard that works across tabs and windows. 2018-01-18 14:02:03 +01:00
codedread 6f7aa650f8 Allow data- attributes in the sanitize whitelist. Fixes issue #203. 2017-11-29 07:52:02 -08:00
Jeff Schiller cba2d0aa1e
Merge pull request #195 from TijoloAzul/master
Bug importing complex paths to svg edit
2017-11-28 00:00:50 -08:00
Teemu Koivisto 6ee97e0d3f Fix broken saving of svg in Chrome >=60 2017-11-27 19:49:34 +02:00
Tiago Fonseca c761cb68b7 correct import of paths with several "M/m" and "Z/z" 2017-10-04 12:15:43 +01:00
KB Jørgensen 92719c1bce Improved transform list detection. 2017-01-04 12:28:09 +01:00
KB Jørgensen aafcbb694e Log errors from extensions to the browser console. 2016-11-21 15:45:43 +01:00
Jeff Schiller 97f5127e81 Merge pull request #130 from iuyiuy/addSvgElementFromJson_expansion
Add svg element from json expansion
2016-11-15 05:57:26 -08:00
KB Jørgensen b92024eca2 Adjusted requested code styling changes. 2016-11-15 09:27:31 +01:00
Jeff Schiller f7a1d2eb81 Merge pull request #148 from iuyiuy/optimized_loading
Optimized loading by removing unnecessary code
2016-11-14 08:17:10 -08:00
KB Jørgensen c65f98b0ba Split code for added clarity. 2016-11-14 10:08:06 +01:00
KB Jørgensen 4994deb6ec Removed redundant function name. 2016-11-14 10:06:05 +01:00
KB Jørgensen 0bf50b0b42 Added description of the new children option to the addSvgElementFromJson() function. 2016-11-14 09:54:53 +01:00
Jeff Schiller 627d038e33 Merge pull request #142 from iuyiuy/null_stroke_fix
Fixed an issue where resizing an element would set stroke="null" on it.
2016-11-11 10:09:06 -08:00
Jeff Schiller 8f73ae16bb Update svgcanvas.js 2016-11-11 10:08:38 -08:00
Jeff Schiller 0108115b41 Merge pull request #138 from sbrown345/master
Fixed call to createSVGRect in getIntersectionList
2016-11-11 10:06:55 -08:00
Jeff Schiller 9b80e65828 Merge pull request #127 from iuyiuy/upstream_issue_93
Fix for issue #93 - svgEditorReady event is not triggered in an iframe.
2016-11-11 08:50:30 -08:00
Jeff Schiller 90b8837aa2 Merge pull request #111 from q2apro/patch-1
Improved DE translation
2016-11-11 08:49:01 -08:00
KB Jørgensen 6f2822fac8 Removed code which went through all nodes and recalculated dimensions,
which was a lot of work for large svg drawings. There's no need to do
that when loading. It will happen gradually when you use it and on
manageable parts. This changed the loading time for a page with svg-edit
and a large drawing from ~50 secs to ~5 secs.
2016-11-11 15:46:51 +01:00
KB Jørgensen b2469d27d5 Fixed an issue where resizing an element would set stroke="null" on it. 2016-10-12 10:37:50 +02:00
Simon Brown b9549e1d43 fixed call to createSVGRect in getIntersectionList
createSVGRect() does not have parameters, they must be set on the object after

https://developer.mozilla.org/en/docs/Web/API/SVGSVGElement
2016-09-14 18:44:09 +01:00
Sylvain Chiron 644f5c2448 Updated/reviewed French translation
Signed-off-by: Sylvain Chiron <chironsylvain@orange.fr>
2016-08-12 23:34:05 +02:00
KB Jørgensen e79db0f2a6 Added ability to create a text node with just a string in addSvgElementFromJson(). 2016-08-08 16:32:59 +02:00
KB Jørgensen b301acf716 Added ability to include children in the json to addSvgElementFromJson(). 2016-08-05 14:29:58 +02:00
KB Jørgensen f9b7ae97e5 Also trigger the svgEditorReady event when opened through an iframe. 2016-08-01 09:48:00 +02:00
jingsam 051e0ca73a add zh-CN language option 2016-07-02 20:17:31 +08:00
q2apro.com b3b44cd964 Improved DE translation 2016-05-08 18:26:47 +03:00
Flint O'Brien 6023bd6f5a Formatting changes. 2016-05-04 09:54:20 -04:00
Flint O'Brien 87e25e9d2c Fix merge/cloneLayer. Migrate more Canvas functions to Draw. Tests.
Fixed recently introduced bugs in mergeLayer, cloneLayer.
More Draw unit tests.
Migrating Canvas methods to Draw, Layer, and utilities: copyElem,
pathActions.convertPath, cloneLayer, mergeLayer, and mergeAllLayers.
Canvas API is unchanged for backwards compatibility (i.e. previous
functions forward to new functions).
2016-05-04 09:38:29 -04:00
Flint O'Brien 2799b4cba2 Test and fix current layer rename. 2016-05-02 18:33:45 -04:00
Flint O'Brien 853891aeaf Added new files to Makefile. Added underscores to private members in HistoryRecordingService. 2016-05-02 12:27:53 -04:00
Flint O'Brien 53cfe68afa Merge pull request #107 from gec/createLayerFix
Fixed Layers in svgcanvas. Moved Layer class. HistoryRecordingservice
2016-05-02 12:02:42 -04:00
Jeff Schiller fb5e2c78ec Merge pull request #85 from magnebra/text_input_update
Change the text input bindings to catch more input events
2016-05-02 07:53:41 -07:00
Jeff Schiller 1120d61544 Merge pull request #96 from iuyiuy/patch-1
Trigger the svgEditorReady after the canvas is ready.
2016-05-02 07:49:42 -07:00
Flint O'Brien 899853c963 Fixed Layers in svgcanvas. Moved Layer class. New HistoryRecordingservice.
Canvas was referencing drawing.all_layers and drawing.current_layer.
Both variables now represent Layer instead of group element and should
be considered private.
Moved Layer class to layer.js
New HistoryRecordingService added to help with moving Layer code out of
Canvas. Started using it in Canvas.mergLayer
2016-05-01 22:58:41 -04:00
Flint O'Brien ed16b0a8d1 Updated comment. 2016-04-30 21:46:45 -04:00
Flint O'Brien 7b4f7d0ae9 Code formatting updated. 2016-04-30 21:30:13 -04:00
Flint O'Brien 26b7ac05a1 Fixed bug with getCurrentLayer when no current layer. 2016-04-30 21:11:02 -04:00
Flint O'Brien 575a056bd9 Refactored draw.js to use new Layer class. 2016-04-30 20:58:19 -04:00
Flint O'Brien ebcf3d9c47 Update layers panel on programatic call to createLayer.
Add class=“layer” to each layer element. This happens when calling
createLayer() or any call to identifyLayers(). This happens with new
drawings and when opening legacy drawings, so it’s fully backwards
compatible.
svg-editor.js elementChanged() looks for g.layer as an addition test
for calling populateLayers() which updates the layers panel.
Addition tests for class=“layer” added to draw_test.html.
Fixed Firefox exception in draw_test.html.
2016-04-29 16:13:35 -04:00
Jeff Schiller 3ef423e30a Merge pull request #103 from gec/getBBox-performance
GetBBox performance improvements
2016-04-28 16:21:12 -07:00
Flint O'Brien 3230520d67 Optimized getBBoxWithTransform when rotation multiple of 90
This feature was in previous release, but broken. This update uses
standard, faster bounding box calculation for simple shapes when angle
is multiple of 90.
Updated tests. Fixed two tests that were broken in Safari.
2016-04-28 12:11:54 -04:00
Waldir Pimenta 0833678eba link to appropriate section of TR 2016-04-27 10:24:59 +01:00
Flint O'Brien 7db3b22c58 Updates from pull request code review. Refactored getExtraAttributesForConvertToPath.
Updated all formatting requests.
Refactored and renamed addAttributesForConvertToPath to
getExtraAttributesForConvertToPath. Now called from
getBBoxOfElementAsPath and convertToPath.
2016-04-26 16:01:39 -04:00
Flint O'Brien 17c3e0fa28 Performance improvement for select.js and canvas.addToSelection
canvas.addToSelection was calling getBBox, throwing it away, then
calling selectorManager.requestSelector() which called getBBox again.
Now passing-in an optional bbox to selector functions.
2016-04-24 16:56:32 -04:00
Flint O'Brien 12a393505d Refactoring and performance improvements for getStrokedBBox.
canvas.getStrokedBBox internals refactored to svgutils.
getStrokedBBox/getCheckedBBox renamed to
svgedit.utilities.getBBoxWithTransform
Removed duplicate calls to native getBBox.
Refactored slow transformed BBox from temporary DOM append/remove to
matrix calculations.
Lots of tests. Added qunit/qunit-assert-close.js.
2016-04-24 16:43:20 -04:00
Flint O'Brien 0c9ff4d1ac Updated comment svgutils convertToPath... again. 2016-04-22 13:39:20 -04:00
Flint O'Brien 86c3818886 Updated comment svgutils convertToPath. 2016-04-22 13:36:10 -04:00
Flint O'Brien 01ad9d7fdd Refactor canvas.convertToPath() internals to svgutils in preparation for getBBox performance improvements.
Two new functions in svgutils: convertToPath() and getBBoxOfElementAsPath().
Updated test/svgutils_test.html.
2016-04-22 12:24:52 -04:00
iuyiuy 2fe15e4d3f Trigger the svgEditorReady after the canvas is ready. 2016-03-23 11:40:42 +01:00
Jeff Schiller a3dbb7c5af Merge pull request #91 from magnebra/add_text_config_options
Add config options for text
2016-03-19 22:35:11 -07:00
Magne Bratseth 1f57536546 Add config options for text 2016-03-15 08:43:24 +01:00
Philip Rogers 9d7e60933b Merge pull request #90 from magnebra/missing_defs_after_paste
Check for deleted defs after paste, fixes #82
2016-03-14 23:55:54 -07:00
Jeff Schiller c01930d4ec Merge pull request #87 from Saurbaum/snaptogrid
Expose current zoom level through canvas for extensions
2016-03-14 09:20:23 -07:00
Jeff Schiller 2a062f6b01 Merge pull request #86 from Saurbaum/return
Images drawn using an extension always spawn the URL dialog
2016-03-14 09:19:31 -07:00
Magne Bratseth a41191158f Check for deleted defs after paste, fixes #82 2016-03-14 13:16:30 +01:00
Ian Newborn d8dae76d3a Exposed grid snapping setting on svgCanvas 2016-03-14 09:13:56 +00:00
Ian Newborn 0c035f8aa2 Removed debugger; 2016-03-14 09:12:47 +00:00
Ian Newborn 8f904c05dd Prevented Editor opening image browser if not in image mode 2016-03-14 09:12:23 +00:00
Magne Bratseth d03d50dc3b Remove binding of change - 'input' is sufficient 2016-03-14 08:01:42 +01:00
Magne Bratseth 9fdb305fb5 Change the text input bindings to catch more input events 2016-03-11 12:06:10 +01:00
Magne Bratseth fc269cf045 Make sure font size is set to display when text is selected 2016-03-11 11:04:11 +01:00
Magne Bratseth 1c77772740 Sizing the font-size elements leave them disabled and not shown later on 2016-03-11 10:34:05 +01:00
Magne Bratseth 48e54b6f85 Simplify the code a bit more 2016-02-26 09:46:32 +01:00
Magne Bratseth 78f214de8b Cosmetics 2016-02-25 09:05:50 +01:00
Magne Bratseth 0cf2fc57a1 Slight changes to make the code more readable 2016-02-25 09:03:20 +01:00
Magne Bratseth d19cc062c5 Merge branch 'master' into ellipse_preserve_0_rx_ry 2016-02-25 08:50:37 +01:00
Philip Rogers e826d3ff19 Remove fix that cloned path segments and add tests to show it works 2016-02-21 17:13:40 -08:00
Jeff Schiller e625a2b434 Merge pull request #67 from magnebra/getintersectionlist_fails_ie_chrome
some browsers require objects passed to getInsectionList to be of correct the type
2016-02-20 19:38:32 -08:00
Jeff Schiller e26c7cd759 Merge pull request #57 from StalderT/patch-3
Update svgcanvas.js
2016-02-14 21:32:38 -08:00
Jeff Schiller 948ba30214 Fix browser.js error messages when testing whether replaceItem and insertItemBefore work, since paths must start with M commands 2016-02-14 13:42:28 -08:00
Magne Bratseth 88ef7b02cc It seems some browsers require objects passed to getInsectionList to
actually be of the correct type
2016-02-10 09:38:43 +01:00
Magne Bratseth b23502fba4 Do not strip rx=0 and ry=0 from ellipse elements as these values are not
default and holds a special meaning for ellipses (a value of 0 disables
rendering of the element)
2016-02-09 15:16:44 +01:00
Jeff Schiller 6715e62146 Merge pull request #7 from ibrierley/master
Fix for import svg image leading to unattached dragtool
2016-01-31 23:27:01 -08:00
Jeff Schiller 7e5a012aa9 Merge pull request #60 from GoTeamScotch/master
#59 Remove double-bind of keypresses Z and Y
2016-01-20 18:01:54 -08:00