Commit graph

4051 commits

Author SHA1 Message Date
Jürg Lehni
3cb84842ff Remove forced colon in label, so we can add it optionally through CSS instead. 2014-09-29 15:46:29 +02:00
Jürg Lehni
214ac10d57 Add support for Component#suffix, to define a linked label that should appear after the input element. 2014-09-29 15:46:04 +02:00
Jürg Lehni
c2cb3e3342 Improve Palette and Component code.
- Only create label elements when they are set for the first time.
- Give created elements clear class and id names.
2014-09-29 15:41:14 +02:00
Jürg Lehni
e541b10e89 Move user-agent code to PaperScope and expose through PaperScope#browser. 2014-09-29 13:07:02 +02:00
Jürg Lehni
6a11532322 Clean up and simplify code a bit further. 2014-09-28 11:49:46 +02:00
Jürg Lehni
7462fe0b70 Fix Curve.getParameterAt() for negative values of offset, and implement unit test.
Closes #524.
2014-09-28 11:44:38 +02:00
Jürg Lehni
df190b6a47 Rearrange Project code for better doc sequence. 2014-09-27 22:53:37 +02:00
Jürg Lehni
2c9e15b070 Clean up comments. 2014-09-27 22:53:00 +02:00
Jürg Lehni
c87ce4de4c Implement Item#replaceWith(item)
Closes #454
2014-09-27 22:52:37 +02:00
Jürg Lehni
91539e6bc5 Commit changes forgotten in 6450430b68 2014-09-27 22:51:22 +02:00
Jürg Lehni
6450430b68 Implement new strategy regarding Project#activeLayer:
- By default, no layer is created for any project.
- Project#activeLayer is a getter for the hidden #_activeLayer property. When it is called and no layer exists, one is created on the fly.
- Creating any other items creates a layer if none exists (was already the case).
2014-09-27 22:31:49 +02:00
Jürg Lehni
2dce6c4efa Some code clean-up in Segment#_changed() 2014-09-27 22:09:25 +02:00
Jürg Lehni
cc8b23894c Some clean up related to hidden _uncached parameter. 2014-09-27 22:03:54 +02:00
Jürg Lehni
b8530935a7 Streamline CurveLocation#getTangent/Normal/Curvature getter definitions to align with definitions in Curve, Path and PathIterator. 2014-09-27 22:03:20 +02:00
Jürg Lehni
8b4f59962e Allow better code compression by removing repeated variable access on this. 2014-09-27 22:00:46 +02:00
Jürg Lehni
dd99db8d2d Allow 'false' as well as 'off' for hidpi attribute, since that's what's in use for other attributes as well. 2014-09-26 18:03:37 +02:00
Jürg Lehni
762113230a Implement Item#parentToLocal() and #localToParent()
As outlined in #530
2014-09-25 17:53:08 +02:00
Jürg Lehni
3389687c42 Do not check typeof module.exports === 'object', since it will be the Base constructor function after straps.js is included.
Closes #461
2014-09-25 16:46:34 +02:00
Jürg Lehni
5046a6a64c Fix naming of PathIterator#get*At functions. 2014-09-24 12:32:07 +02:00
Jürg Lehni
4adab91a18 Remove unused argument. 2014-09-23 17:51:29 +02:00
Jürg Lehni
48e9447c47 Avoid error when SVG path data does not contain any 'm' commands.
Fixes #529
2014-09-22 17:44:15 +02:00
Jürg Lehni
ee27fe820f Check for valid parameter range in Curve#getLocationAt() and delegate to it in #getLocationOf() 2014-09-20 11:09:09 +02:00
Jürg Lehni
c94fb3038f Use valid parameter range [0,1] in calls to Curve.solveCubic(). 2014-09-20 11:08:20 +02:00
Jürg Lehni
c2465b60fa Transform the correct amount of points in Curve.getValues() when a matrix is provided. 2014-09-20 11:06:25 +02:00
Jürg Lehni
e5995527e8 Support Point argument reading for Style#shadowOffset. 2014-09-19 18:43:00 +02:00
Jürg Lehni
52dd24097f Define PathIterator#getPoint(), #getTangent(), #getNormal() and #getCurvature(). 2014-09-11 16:06:00 +02:00
Jürg Lehni
67d30f0042 Actually use maxRecursion and tolerance arguments in PathIterator, and increase precision in #flatten() a bit. 2014-09-11 15:20:04 +02:00
Jürg Lehni
73765e6654 Produce Path#getPointAt(), #getTangentAt(), #getNormalAt() & #getCurvature() in a loop, just like for Curve. 2014-09-10 11:21:06 +02:00
Jürg Lehni
50c5c6736c Rename PathFlattener to PathIterator and include the class in exports. 2014-09-10 02:20:00 +02:00
Jürg Lehni
1db4fb4064 Refactor PathFlattener code and add maxRecursion and tolerance arguments to constructor. 2014-09-09 18:32:41 +02:00
Jürg Lehni
7d69ef1864 Fix documentation of bean properties that are not read-only.
@bean can only be used when the property is read-only or both getters and setters are present in the scope.
2014-08-26 10:01:30 +02:00
Jürg Lehni
73751040b7 Bump version to v0.9.20 2014-08-25 14:48:05 +02:00
Jürg Lehni
99b06b061c Correctly match variables to be exposed at the beginning of PaperScripts. 2014-08-25 14:21:13 +02:00
Jürg Lehni
8574c1ebf6 Return the created scope from PaperScript.load() 2014-08-25 13:21:58 +02:00
Jürg Lehni
a564480522 Forgotten in previous commit. 2014-08-25 12:53:13 +02:00
Jürg Lehni
797a393c9a Remove various double white-spaces. 2014-08-25 12:49:14 +02:00
Jürg Lehni
bcc8761f8c Improve PaperScript#load() documentation. 2014-08-25 12:42:44 +02:00
Jürg Lehni
72f16eb1c3 Handle data-paper-ignore like any other Paper attribute, allowing the ignore="true" short-form as well. 2014-08-25 12:34:08 +02:00
Jürg Lehni
93dfd2a15a Remove debugger statement. 2014-08-25 12:24:30 +02:00
Jürg Lehni
c03e9961d2 Allow PaperScript.load(script) to only load specific scripts, and define / improve documentation. 2014-08-25 12:21:27 +02:00
Jürg Lehni
992366246d Ignore hash when comparing PaperScript URLs. 2014-08-25 12:20:58 +02:00
Jürg Lehni
4b19f99183 Improve user agent matching code in PaperScript.
Fixes #511.
2014-08-20 18:54:00 +02:00
Jürg Lehni
6b4f728a72 Bring back support for paper.setup('id') again, and document it properly.
Closes #510.
2014-08-20 16:53:31 +02:00
Jürg Lehni
db1ccd1d1e Restructure includes. 2014-08-20 16:44:36 +02:00
Jürg Lehni
6faf61e6ef Fix incompatibility with jsdom 1.0.0-pre.1
Closes #513
2014-08-20 15:06:13 +02:00
Jürg Lehni
9da6325f49 Fix wrong __options comments. 2014-08-16 19:27:25 +02:00
Jürg Lehni
48cb05a181 Replace tabs with 4 white-spaces. 2014-08-16 19:24:54 +02:00
Jürg Lehni
687199e95d Fix some whitespaces. 2014-08-16 19:18:36 +02:00
Jürg Lehni
a2b7f9fc11 Remove __options.stats and load Stats library automatically only when in dev mode on the browser. 2014-08-16 19:11:16 +02:00
Jürg Lehni
21c9f97450 Update version handling and comments in options.js 2014-08-16 18:49:35 +02:00
Jürg Lehni
bcd3fe2493 Bump version to v0.9.19 2014-08-16 18:31:53 +02:00
Jürg Lehni
5aa4a8300e Move 'data-paper-scope' attribute handling out of PaperScope into browser related code in PaperScript.
Closes #508
2014-08-16 18:24:45 +02:00
Jürg Lehni
288b8553e7 Support PaperScript code with only one line and no breaks. 2014-08-16 18:22:43 +02:00
Jürg Lehni
15d79bbefb Introduce isRoot argument in SVGExport code as well, to make sure that top-most node holds all the style information.
Relates to #509
2014-08-16 17:32:24 +02:00
Jürg Lehni
4e9fc558ac Prevent double-application of styles when importing #document SVG nodes.
Closes #509.
2014-08-16 17:31:42 +02:00
Jürg Lehni
53b00b40e1 Move isRoot parameter last in SVGImport code. 2014-08-16 17:27:14 +02:00
Jürg Lehni
ce4e6053ec Try un-prefixed name before various prefixes, to prevent console warnings. 2014-08-15 18:00:32 +02:00
Jürg Lehni
3ac9a4f369 Use local parent short-cut variable. 2014-08-15 15:38:28 +02:00
Jürg Lehni
4d4a39c752 Implement Curve#getOffsetOf(point) / Path#getOffsetOf(point)
Closes #463.
2014-07-31 19:01:37 +02:00
Jürg Lehni
da22161d28 Correctly clear Curve length cache when segments change.
Closes #497
2014-07-31 17:00:52 +02:00
Jürg Lehni
c90a7c9f38 Only use the unmerged setting for #strokeScaling, as otherwise it'll be used on layers and groups already.
Closes #500
2014-07-29 23:39:51 +02:00
Jürg Lehni
06366fb0ed Support prefixed UpdateExpressions and fix a bug in suffixed UpdateExpression when assigning to plain variables.
Related #492
2014-07-26 12:40:00 +02:00
Jürg Lehni
54f0197eba Correctly handle UpdateExpressions (a++, a--) that are directly following AssignmentExpressions.
Closes #492
2014-07-26 12:29:05 +02:00
Jürg Lehni
6e6df750f0 Use names less likely to be used in code for Operator Overloading handlers. 2014-07-26 12:28:00 +02:00
Jürg Lehni
12254f5fe8 Fix two documentation errors in Raster.
Closes #495
2014-07-26 12:07:36 +02:00
Jürg Lehni
d96368a941 No need to convert strings to elements in View.create anymore, since PaperScript handles this already. 2014-07-26 12:07:14 +02:00
Jürg Lehni
0198f4c45f Reuse PaperScope objects when associating multiple scripts with the same canvas.
Closes #504.
2014-07-26 12:03:34 +02:00
Jürg Lehni
e0ec2bf2c3 Throw more meaningful error when CanvasView cannot be created from inexistent element. 2014-07-26 11:41:21 +02:00
Jürg Lehni
56704b9206 Fix a bug in Item#_removeNamed() for items without parents.
Closes #490.
2014-07-25 21:08:14 +02:00
Jürg Lehni
04a0c995bc Keep Math.acos() argument between -1 and 1.
Closes #482.
2014-07-25 21:01:58 +02:00
Jürg Lehni
4fab100e71 Improve CommonJS support a bit. 2014-07-25 20:10:20 +02:00
Jürg Lehni
652dbe1e86 Use loop to produce CurveLocation getters, and add CurveLocation#curvature. 2014-07-25 20:05:44 +02:00
Jürg Lehni
d3d9e4bada Improve some injection blocks. 2014-07-25 20:05:26 +02:00
Jürg Lehni
3c14a5ad05 Merge pull request #462 from jbielick/master
add commonJS export in browser environment export
2014-07-25 20:04:08 +02:00
Jürg Lehni
dc375d4c76 Correctly match the use of the unary operator $_ in PaperScript.
Closes #502
2014-07-23 12:17:55 +02:00
Jürg Lehni
3093a8ec43 Introduce matrix.chain(mx) as a shortcut to Matrix.clone().concatenate(mx)
Simplifies quite a few lines of code.
2014-07-08 15:43:17 +02:00
Jürg Lehni
66360bf58a Fix minor documentation bug. 2014-07-08 15:43:17 +02:00
hkrish
ccbf4579fd Don't remove the only intersection.
The previous code wrongly compared an intersection with itself while checking for duplicates.
2014-06-21 10:31:07 +02:00
Jürg Lehni
5384a63238 Improve Item. _clearBoundsCache() fix. 2014-05-15 21:33:30 +02:00
Jürg Lehni
a7f57315a6 Fix Item._clearBoundsCache() recursion, correctly this time. 2014-05-15 21:30:06 +02:00
Jürg Lehni
a1c1fc8ed8 Fix an issue in _clearBoundsCache where circular recursion could happen in certain circumstances. 2014-05-15 21:24:09 +02:00
Jürg Lehni
f39b7603de Remove pixelRatio handling from CanvasProvider and move it to Item#draw() 2014-05-15 17:14:37 +02:00
Jürg Lehni
af5e1609dd Fix an issue where CompoundPath wouldn't draw correctly if children had styles that forced non-direct compositing. 2014-05-15 17:09:58 +02:00
Jürg Lehni
98f2e08775 Fix SVG export when view is zoomed. 2014-05-15 16:26:19 +02:00
Jürg Lehni
c0a911d3c7 Rename Raster#ppi to#resolution, and deprecate #ppi. 2014-05-15 15:36:24 +02:00
Jürg Lehni
9d7ec13724 Update prepro.js to version that can evaluate whole expressions, and fix a newly introduced issue with it. 2014-05-14 15:14:03 +02:00
Jürg Lehni
f38d3ee674 Handle view size and transformation correctly when exporting SVG.
Closes #277.
2014-05-14 13:29:20 +02:00
Jürg Lehni
aac98f2b25 Some code clean-up. 2014-05-13 13:54:31 +02:00
Jürg Lehni
a4f922cf26 Fix newly introduced error in SVG export. 2014-05-13 13:52:20 +02:00
Jürg Lehni
6896535663 Bring back accidentally removed ctx.beginPath(); 2014-05-13 13:51:09 +02:00
Jürg Lehni
846c806034 Implement non-scaling strokes through Style#strokeScaling.
Closes #418.
2014-05-13 13:38:51 +02:00
Jürg Lehni
68db4f9b59 Forgotten in previous commit. 2014-05-13 13:23:37 +02:00
Jürg Lehni
4464950301 Correctly take Item#matrix into account in #getPathData(). 2014-05-13 13:21:59 +02:00
Jürg Lehni
94bc6427c2 Export SVG transforms for path items correctly.
Needed when Item#applyMatrix = false
2014-05-13 12:53:58 +02:00
Jürg Lehni
f56efd6471 Fix exceptions in ProxyContext when drawing bitmaps. 2014-05-13 12:33:39 +02:00
Jürg Lehni
e1ed7f3294 Prevent drawing selected compound path children twice. 2014-05-12 18:57:09 +02:00
Jürg Lehni
ea8518c3a5 Use the correct change notification when reversing paths. 2014-05-12 16:44:48 +02:00
Jürg Lehni
8560a71312 Remove srcOffset and dstOffset parameters from Matrix#_transformCoordinates(). 2014-05-08 13:54:05 +01:00
Jürg Lehni
6aaeb81869 Simplify Item#_isUpdate() code a bit. 2014-05-07 17:27:53 +01:00
Jürg Lehni
bb6e1e686f Improve some comments. 2014-05-07 17:22:25 +01:00
Jürg Lehni
2412942d04 Fix SVG export for Item#visible, and import display attributes correctly.
Closes #471.
2014-05-07 16:59:57 +01:00
Jürg Lehni
56389a3929 Make sure _updateVersion also works for items and children of items with opacity == 0.
Closes #469.
2014-05-07 16:57:39 +01:00
Jürg Lehni
41c0d8f759 Implement onImport / onExport callbacks for SVG Import / export.
... and illustrate its functionality by importing Inkscape's transform-center attributes to pivots and exporting them again.
2014-05-05 20:48:30 +02:00
Jürg Lehni
312e670b22 Update Item#_updateVersion in Item#draw() before bailing out when items are invisible.
Closes #469.
2014-05-05 20:13:36 +02:00
Jürg Lehni
74d14ecf0c Fix PaperScript support on Node.js
Closes #470.
2014-05-05 20:10:29 +02:00
Jürg Lehni
87e72744ea Fix PaperScript.parse() for use with load.js 2014-04-30 17:08:43 +02:00
Jürg Lehni
735150d165 Minor adjustments in new source map code.
Handle empty code properly.
2014-04-30 17:04:58 +02:00
Jürg Lehni
2d702d0247 Directly expose Acorn parser through PaperScript.parse(), and replace options.inline with options.source. 2014-04-30 16:40:11 +02:00
Jürg Lehni
c36712758b Expose Acorn through PaperScript object. 2014-04-30 16:27:43 +02:00
Jürg Lehni
43f319e762 Remove support for Esprima as Acorn.js does everything we need. 2014-04-30 16:26:04 +02:00
Jürg Lehni
e96ec6a2f1 Remove breakpoint support again in PaperScript as this code is better placed in sketch. 2014-04-30 16:25:38 +02:00
Jürg Lehni
5e6d0377f4 Support adding breakpoints to PaperScript. 2014-04-30 13:37:07 +02:00
Jürg Lehni
9e45d7f5eb Automatically detect PaperScript code inlined on page. 2014-04-30 12:32:08 +02:00
Jürg Lehni
af9b3cd5c6 Simplify source-map support since all browser appear to require the shifting of inlined code. 2014-04-30 11:47:15 +02:00
Jürg Lehni
43bc9f14da Add more comments and clean up code a bit. 2014-04-30 11:39:05 +02:00
Jürg Lehni
d91aac52b4 Check in initial support for source-maps in PaperScript.
Probably needs more testing and work.
2014-04-30 11:34:02 +02:00
Jürg Lehni
8317aacc1b Split Item#hitTest() into separate private function that does need to do arguments reading, for improved performance also when iterating over children. 2014-04-29 20:06:48 +02:00
Jürg Lehni
fce31599a5 Use _dontMerge for #getSelectedColor() on both item and layer, and have style getters on item pass on _dontMerge to the style object. 2014-04-29 19:40:46 +02:00
Jürg Lehni
bd07305435 Move selection drawing code to separate function and fix slowdowns in determining of selection color.
Closes #466 & #464.
2014-04-29 18:52:33 +02:00
Jonathan Puckey
04e90ec3f4 Improve PathItem#getIntersections(path, sorted) docs. 2014-04-28 18:58:19 +02:00
Jonathan Puckey
1d905f5c58 Path: add docs for Style Tests group and move Path#isInserted() to Hierarchy Tests group. 2014-04-28 18:41:40 +02:00
Jonathan Puckey
8c32dda435 Make View#projectToView(point) and View#viewToProject(point) show up in the docs. 2014-04-28 18:29:16 +02:00
Jonathan Puckey
ba98c91509 Fix SVGElement parameter type in docs. 2014-04-28 18:23:14 +02:00
Jonathan Puckey
efb5bf5cf5 Improve Project#isEmpty() docs. 2014-04-28 18:20:22 +02:00
Jonathan Puckey
ff5630ac07 Project#clear() docs. 2014-04-28 18:19:56 +02:00
Jonathan Puckey
2b712959f2 Path: Improve docs of the 'Positions on Paths and Curves' group. 2014-04-28 18:12:44 +02:00
Jürg Lehni
a9618b50f8 Small fix in Segment#linear. 2014-04-28 16:43:11 +02:00
Jürg Lehni
ad4f74a872 Fix bugs when dynamically loading paper.js source code in Node. 2014-04-28 16:42:06 +02:00
Jürg Lehni
e851090c81 Fix bug in item object literal constructor when providing parent as property after other values that depend on hierarchy being defined already. 2014-04-28 15:12:55 +02:00
Jürg Lehni
364c31b0f6 Remove TODOs for already implemented functions. 2014-04-28 14:25:15 +02:00
Jürg Lehni
42945825e8 Fix all argument assignment TODOs. 2014-04-28 14:22:50 +02:00
Jonathan Puckey
af84a52af8 Move around Item#isInserted() code so it shows up in the Tests group section in the docs. 2014-04-27 23:59:01 +02:00
Jonathan Puckey
12d7756892 Add more matching docs. 2014-04-27 23:40:43 +02:00
Jonathan Puckey
f0db48a77f More work on Project#getItems(match) docs. 2014-04-27 23:08:42 +02:00
Josh
572f3e06ff add commonJS export in browser environment export 2014-04-27 12:53:14 -04:00
Jürg Lehni
320caa56d1 Add support for line dash to ProxyContext. 2014-04-27 17:36:31 +02:00
Jürg Lehni
c5b317600a Support comparing colors with string values in Color#equals(). 2014-04-27 11:16:22 +02:00
Jonathan Puckey
46ef242e46 Documentation for Project#getItems(match) 2014-04-25 17:00:48 +02:00
Jürg Lehni
19630d6229 Fix spelling mistakes. 2014-04-24 19:34:49 +02:00
Jürg Lehni
28e759a28a fix spelling mistakes. 2014-04-21 10:30:38 +02:00
Jürg Lehni
28871534c2 Always use tolerance 0 in mouse event hit-tests.
Mouse events should imitate native events, so they can also be partly replaced by them on some backends (e.g. SVG).
2014-04-21 10:30:38 +02:00
Jürg Lehni
9ccba17fbe Clean up white-space, comments and jshint errors. 2014-04-14 18:29:26 +02:00
Jürg Lehni
d0d4b29856 Fix bugs in bounds caching algorithm. 2014-04-13 18:31:01 +02:00
Jürg Lehni
6af797bbad Optimize handling of property object in Item constructor.
Only check for values if it is a plain object, and avoid inserting into DOM twice if parent is specified.
2014-04-13 18:12:19 +02:00
Jürg Lehni
ee729622e0 Correctly handle Raster#setImage(null) 2014-04-13 18:11:34 +02:00
Jürg Lehni
ea81df6572 Fix spelling mistakes. 2014-04-13 17:03:44 +02:00
Jürg Lehni
db2bdf84af Allow the JS optimizer to better do its thing by creating local references to repeatedly used class variables. 2014-04-13 16:44:49 +02:00
Jürg Lehni
dafdd0ae28 Avoid double-insertion of root layer when importing JSON directly into it. 2014-04-13 16:44:00 +02:00
Jürg Lehni
397c81e060 Switch from options.type to options.class in Item#hitTest(), to reflect recent change in Item#getItems(). 2014-04-13 16:43:20 +02:00
Jürg Lehni
a931a2530c Implement options.curvesoption for hit-testing curves regardless of stroke settings. 2014-04-11 14:57:58 +02:00