Commit Graph

38 Commits (b4d7b221e0be55a78abed1b3de1b44382655852c)

Author SHA1 Message Date
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 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 f7bdf6be18 - Testing (math_test): Fix undeclared variables
- Testing: Move JavaScript out of HTML to own files
- Linting: ESLint; unfinished: editor/extensions/, editor/ (root); some of test
2018-05-15 23:43:28 +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
Philip Rogers 7e3f9e037d Add pathseg.js, a polyfill for the SVGPathSeg API
The SVGPathSeg API is being removed from the spec [1] and is being
removed in Chromium 47 [2]. I implemented a drop-in polyfill[3] so
svg-edit users are not broken as browsers migrate away from the
path seg api.

This patch simply imports the upstream pathseg.js and updates all
dependencies. With this change all tests pass in Chrome 46 (with
the path seg api), Chrome 47 (without the path seg api), and
there are no changes to tests in Safari 9.01 or Firefox 43. I
also manually tested svg-edit while developing the polyfill and
could not find any broken features.

[1] https://lists.w3.org/Archives/Public/www-svg/2015Jun/0044.html
[2] https://groups.google.com/a/chromium.org/d/msg/blink-dev/EDC3cBg9mCU/OvElJgOWCgAJ
[3] https://github.com/progers/pathseg
2015-11-04 19:25:30 -08:00
Brett Zamir 160c7303ca Fix QUnit.log and references to it to reflect the currently included QUnit implementation; add missing files (test1.html is still failing even after the fixes, though it was not one of the tests included with all_tests.html)
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2762 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-04-07 05:33:44 +00:00
Brett Zamir a682236528 Add HTML charset to tests, opera widget
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2610 eee81c28-f429-11dd-99c0-75d572ba1ddd
2013-10-29 03:32:01 +00:00
Waldir Pimenta 3d71cdf27b - convert svgutils_test.html from utf8 to iso-8859-1 (Western) encoding,
so that tools such as grep don't consider it a binary file.
- add <title> to test pages, to make html valid
- harmonize indentation: 2 spaces
- harmonize all empty html elements' closing tags
  to be on the same line as the opening tag



git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2418 eee81c28-f429-11dd-99c0-75d572ba1ddd
2013-02-17 17:28:19 +00:00
Bruno Heridet f9b8aa624c created svgedit main object, moved all namespaces handling in the same place
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2411 eee81c28-f429-11dd-99c0-75d572ba1ddd
2013-02-16 15:02:26 +00:00
Jeff Schiller 5c1227997b Reformat unit test page. Add in dependencies for test1 (but they still do not run)
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2074 eee81c28-f429-11dd-99c0-75d572ba1ddd
2012-03-30 16:27:32 +00:00
Jeff Schiller 28b9c0cfd7 Rename browsersupport module to browser
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@1910 eee81c28-f429-11dd-99c0-75d572ba1ddd
2011-01-13 07:47:21 +00:00
Jeff Schiller 3ef0229180 Move Selector and SelectorManager into select.js. Start of unit test file for select.js.
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@1873 eee81c28-f429-11dd-99c0-75d572ba1ddd
2010-11-15 09:25:49 +00:00
Jeff Schiller 4a133d490d Move undo/redo functionality into history.js. Started unit test file.
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@1864 eee81c28-f429-11dd-99c0-75d572ba1ddd
2010-11-12 19:08:29 +00:00
Jeff Schiller 86c750848b Move matrixMultiply() test to math test file
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@1863 eee81c28-f429-11dd-99c0-75d572ba1ddd
2010-11-09 05:37:36 +00:00
Jeff Schiller 3a76f5e4d6 Correct mime type on svgutils_test.html. Add test for svgedit.utilities.bboxToObj()
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@1859 eee81c28-f429-11dd-99c0-75d572ba1ddd
2010-11-08 18:10:06 +00:00
Jeff Schiller a681fc2579 Add a sanitize.js module and put sanitizeSvg into it. Fix some browsersupport sniffing calls.
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@1852 eee81c28-f429-11dd-99c0-75d572ba1ddd
2010-11-07 20:14:05 +00:00
Jeff Schiller cd62a0f51f Add units.js to Makefile and test HTML file
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@1845 eee81c28-f429-11dd-99c0-75d572ba1ddd
2010-11-05 17:03:26 +00:00
Jeff Schiller 0ce7e2adb7 Really check in test HTML file (I hate SVN sometimes)
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@1839 eee81c28-f429-11dd-99c0-75d572ba1ddd
2010-11-05 15:00:19 +00:00
Alexis Deveria e936e96078 Fixed Issue 586: Unit test broken since r1541, made sure other unit tests pass too
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@1785 eee81c28-f429-11dd-99c0-75d572ba1ddd
2010-10-08 17:25:11 +00:00
Jeff Schiller fd6d7b21b3 Correct 1.0/2.0 demo links in SVG Open 2010 presentation
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@1686 eee81c28-f429-11dd-99c0-75d572ba1ddd
2010-08-30 08:30:03 +00:00
Alexis Deveria c5c57f5ad8 Fixed unit test page
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@1523 eee81c28-f429-11dd-99c0-75d572ba1ddd
2010-04-15 14:07:00 +00:00
Jeff Schiller d4c93087fc Handle viewboxes with non-zero left,top. Minor fix for bboxes of <use>, <foreignObject>
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@1427 eee81c28-f429-11dd-99c0-75d572ba1ddd
2010-02-22 02:58:19 +00:00
Jeff Schiller 6039875f5a Now remap xlink:href attributes when importing <use>, <filter>, <pattern>, <textPath> and gradients.
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@1426 eee81c28-f429-11dd-99c0-75d572ba1ddd
2010-02-22 02:22:08 +00:00
Jeff Schiller 6e15924461 Reidentify all elements imported into the drawing. Add tests for it.
Still to do: Remap all xlink:href attributes, filter attribute, possibly others.



git-svn-id: http://svg-edit.googlecode.com/svn/trunk@1425 eee81c28-f429-11dd-99c0-75d572ba1ddd
2010-02-22 00:56:19 +00:00
Jeff Schiller 24aaa973d7 Add first test for importing SVG into an existing drawing
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@1424 eee81c28-f429-11dd-99c0-75d572ba1ddd
2010-02-21 18:28:10 +00:00
Jeff Schiller 8e0bf800bf Fix Issue 486: Remove uses without href to prevent Safari crash. Turns all unit tests green
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@1408 eee81c28-f429-11dd-99c0-75d572ba1ddd
2010-02-18 01:34:29 +00:00
Jeff Schiller f222ea9f98 Make math test green in Opera and WebKit
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@1403 eee81c28-f429-11dd-99c0-75d572ba1ddd
2010-02-17 17:45:51 +00:00
Jeff Schiller 469868d731 Fix XML escaping problem in attributes, add unit test
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@1400 eee81c28-f429-11dd-99c0-75d572ba1ddd
2010-02-17 15:51:57 +00:00
Alexis Deveria e42c37f538 Added test for importing/exporting namespaced attributes
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@1383 eee81c28-f429-11dd-99c0-75d572ba1ddd
2010-02-12 16:06:34 +00:00
Jeff Schiller 98fc062e47 Make foreignObject with foreign content movable, resizable, rotatable
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@1368 eee81c28-f429-11dd-99c0-75d572ba1ddd
2010-02-10 15:32:36 +00:00
Jeff Schiller 3e94e85e31 Fix Issue 457: Remove experimentation on the ?url= parameter accidentally checked in.
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@1311 eee81c28-f429-11dd-99c0-75d572ba1ddd
2010-01-31 19:55:19 +00:00
Jeff Schiller 0074d7f7c0 Add support in whitelist and remapElements() for <a> elements
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@1307 eee81c28-f429-11dd-99c0-75d572ba1ddd
2010-01-29 20:30:10 +00:00
Jeff Schiller bd64fc421e Add beginning unit test for path conversion code
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@1292 eee81c28-f429-11dd-99c0-75d572ba1ddd
2010-01-28 23:17:17 +00:00
Jeff Schiller 6eba334074 Correct test for Issue 436
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@1276 eee81c28-f429-11dd-99c0-75d572ba1ddd
2010-01-22 01:48:57 +00:00
Jeff Schiller 0671e1584e Added test for Issue 436 and one more text for matrixMultiply()
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@1274 eee81c28-f429-11dd-99c0-75d572ba1ddd
2010-01-22 01:45:26 +00:00
Jeff Schiller 86ac38547f Add unit test for importing use. Add missing id attribute on use in whitelist
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@1270 eee81c28-f429-11dd-99c0-75d572ba1ddd
2010-01-21 14:12:08 +00:00
Jeff Schiller d1e32d99d7 Expose SvgCanvas.matrixMultiply() and add starting unit-test framework (QUnit) and first test.
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@1236 eee81c28-f429-11dd-99c0-75d572ba1ddd
2010-01-18 06:40:32 +00:00