11# Change Log
22
3+ ## ` 0.12.7 `
4+
5+ ### Fixed
6+
7+ - PaperScript: Actually make ` options.paperFeatures.moduleExports ` work
8+ independently from ` options.paperFeatures.operatorOverloading ` .
9+
10+ ## ` 0.12.6 `
11+
12+ ### Added
13+
14+ - PaperScript: Add option ` options.paperFeatures.moduleExports ` to control
15+ module exports conversion.
16+
17+ ## ` 0.12.5 `
18+
19+ ### Added
20+
21+ - PaperScript: Add option ` options.paperFeatures.operatorOverloading ` to control
22+ operator overloading.
23+
24+ ### Fixed
25+
26+ - Fix ` new Raster(HTMLCanvasElement) ` constructor (#1745 ).
27+ - Handle ` CurveLocation ` on paths with only one segment.
28+ - Fix recently introduced error in ` CompoundPath.compare() ` (#1769 ).
29+ - Clamp opacity values to [ 0, 1] (#1814 ).
30+ - Support closed ` Path ` items with blend mode and no segments (#1763 ).
31+ - Fix error in ` getCrossingSegments() ` (#1773 ).
32+ - SVG Import: Support SVG strings with leading line-breaks (#1813 ).
33+ - Docs: Improve documentation for ` Raster#drawImage(CanvasImageSource) ` (#1784 ).
34+
35+ ### Changed
36+
37+ - Use ` 'paper-' ` prefix in generated view ids.
38+
39+ ## ` 0.12.4 `
40+
41+ ### Added
42+
43+ - Allow paper core import in TypeScript (#1713 ).
44+ - Boolean: Improve performance from ` O(n^2) ` to nearly ` O(n) ` by the use of the
45+ sweep and prune algorithm (#1737 ).
46+ - Docs: Add support for nullable values.
47+
48+ ### Fixed
49+
50+ - Fix ` PathItem#getCrossing() ` to not return overlaps (#1409 ).
51+ - Fix regression in ` Curve.getIntersections() ` (#1638 ).
52+ - Fix edge cases in ` CurveLocation.isCrossing() ` (#1419 , #1263 ).
53+ - Fix ` SymbolItem#hitTestAll() ` to return only one match per symbol item
54+ (#1680 ).
55+ - Fix handling of negative ` Shape ` sizes (#1733 ).
56+ - Fix parsing of RGB ` Color ` strings with percentages (#1736 ).
57+ - Fix ` Shape ` bounds when passing position in constructor (#1686 ).
58+ - Prevent nested group matrix from reset when transforming parent (#1711 ).
59+ - Boolean: Fix edge cases in overlap detection (#1262 ).
60+ - Boolean: Add check for paths with only one segment (#1351 ).
61+ - Boolean: Correctly handle open filled paths (#1647 ).
62+ - Boolean: Avoid winding number edge cases (#1619 ).
63+ - Docs: Fix some documentation return types (#1679 ).
64+
65+ ## ` 0.12.3 `
66+
67+ ### Added
68+
69+ - Add documentation for ` Item#internalBounds ` .
70+
71+ ### Fixed
72+
73+ - Fix regression in ` Color ` change propagation (#1672 , #1674 ).
74+ - SVG Export: Fix viewport size of exported ` Symbol ` (#1668 ).
75+ - Handle non-invertible matrices in ` Item#contains() ` (#1651 ).
76+ - Improve documentation for ` Item#clipMask ` (#1673 ).
77+ - Improve TypeScript definitions (#1659 , #1663 , #1664 , #1667 ).
78+
79+ ## ` 0.12.2 `
80+
81+ ### Fixed
82+
83+ - Fix drawing with compound-paths as clip-items (#1361 ).
84+ - Fix drawing of path selection with small handle size (#1327 ).
85+ - Do not ignore ` Group#clipItem.matrix ` in ` Group#internalBounds ` (#1427 ).
86+ - Correctly calculate bounds with nested empty items (#1467 ).
87+ - Fix color change propagation on groups (#1152 ).
88+ - Fix ` Path#arcTo() ` where ` from ` and ` to ` points are equal (#1613 ).
89+ - Improve ` new Raster(size[, position]) ` constructor (#1621 ).
90+ - SVG Export: Fix error when ` Item#matrix ` is not invertible (#1580 ).
91+ - SVG Export: Include missing viewBox attribute (#1576 ).
92+ - SVG Import: Use correct default values for gradients (#1632 , #1660 ).
93+ - SVG Import: Add basic ` <switch/> ` support (#1597 ).
94+ - JSON Import: Prevent ` Item#insert() ` method from being overridden (#1392 ).
95+ - PaperScript: Fix issues with increment/decrement operators (#1450 , #1611 ).
96+
97+ ## ` 0.12.1 `
98+
99+ ### Added
100+
101+ - Add TypeScript definition, automatically generated from JSDoc comments
102+ (#1612 ).
103+ - Support ` new Raster(size[, position]) ` constructor.
104+ - Expose ` Raster#context ` accessor.
105+ - Implement ` Raster#clear() ` method to clear associated canvas context.
106+ - Node.js: Add support for Node.js v11 and v12.
107+
108+ ### Fixed
109+
110+ - Fix parsing of CSS colors with spaces in parentheses (#1629 ).
111+ - Improve ` Color.random() ` documentation.
112+ - Fix ` Tween#then() ` documentation.
113+
114+ ### Removed
115+
116+ - Node.js: Remove support for Node.js v6.
117+
118+ ## ` 0.12.0 `
119+
120+ ### News
121+
122+ Another release, another new member on the team: Please welcome
123+ [ @arnoson ] ( https://github.com/arnoson ) , who has worked hard on the all new
124+ animation support, exposed through the ` Tween ` class and its various methods on
125+ the ` Item ` class, see below for details:
126+
127+ ### Added
128+
129+ - Add new ` Tween ` class and related methods on ` Item ` , to animate and
130+ interpolate their various properties, including colors, sub-properties, etc.:
131+ ` Item#tween(from, to, options) ` , ` Item#tween(to, options) ` ,
132+ ` Item#tween(options) ` , ` Item#tweenFrom(from, options) ` ,
133+ ` Item#tweenTo(to, options) `
134+
135+ ### Fixed
136+
137+ - Only draw Raster if image is not empty (#1320 ).
138+ - Emit mousedrag events on correct items when covered by other items (#1465 ).
139+ - Fix drawing issues of bounds and position with ` Group#selectedColor ` (#1571 ).
140+ - Fix ` Item.once() ` to actually only emit event once.
141+ - Various documentation fixes and improvements (#1399 ).
142+
3143## ` 0.11.8 `
4144
5145### News
@@ -59,6 +199,7 @@ the fixes and additions from the past two weeks:
59199## ` 0.11.5 `
60200
61201### Fixed
202+
62203- Fix ` Curve#isSelected() ` to correctly reflect the state of ` #handle1 ` (#1378 ).
63204- Key Events: Fix auto-filling issue on Chrome (#1358 , #1365 ).
64205- Boolean: Check that overlaps are on the right path (#1321 ).
@@ -71,38 +212,42 @@ the fixes and additions from the past two weeks:
71212## ` 0.11.4 `
72213
73214### Changed
215+
74216- Node.js: Add support for v8, and keep testing v4, v6, v7 in Travis CI.
75217
76218## ` 0.11.3 `
77219
78220### Fixed
79- - Mouse Events: Fix item-based ` doubleclick ` events (#1316 ).
80221
222+ - Mouse Events: Fix item-based ` doubleclick ` events (#1316 ).
81223- Overhaul the caching of bounds and matrix decomposition, improving reliability
82224 of ` Item#rotation ` and ` #scaling ` and fixing situations caused by wrongly
83225 caching ` Item#position ` and ` #bounds ` values.
84-
85226- Prevent consumed properties in object literal constructors from being set on
86227 the instance.
87228
88229### Changed
230+
89231- Make all functions and accessors enumerable on all Paper.js classes.
90232
91233## ` 0.11.2 `
92234
93235### Fixed
236+
94237- PaperScript: Fix a parsing error in math operations without white-space
95238 (#1314 ).
96239
97240## ` 0.11.1 `
98241
99242### Fixed
243+
100244- Bring back deactivation of Node.js modules on browsers. This has most probably
101245 broken Webpack bundling in ` 0.11.0 ` .
102246
103247## ` 0.11.0 `
104248
105249### Changed
250+
106251- Separate ` paper ` module on NPM into: ` paper ` , ` paper-jsdom ` and
107252 ` paper-jsdom-canvas ` (#1252 ):
108253 - ` paper ` is the main library, and can be used directly in a browser
@@ -115,12 +260,14 @@ the fixes and additions from the past two weeks:
115260 [ jsdom] ( https://github.com/tmpvar/jsdom ) .
116261
117262### Added
263+
118264- PaperScript: Support newer, external versions of Acorn.js for PaperScript
119265 parsing, opening the doors to ES 2015 (#1183 , #1275 ).
120266- Hit Tests: Implement ` options.position ` to hit ` Item#position ` (#1249 ).
121267- Split ` Item#copyTo() ` into ` #addTo() ` and ` #copyTo() ` .
122268
123269### Fixed
270+
124271- Intersections: Bring back special handling of curve end-points (#1284 ).
125272- Intersections: Correctly handle ` Item#applyMatrix = false ` (#1289 ).
126273- Boolean: Bring back on-path winding handling (#1281 ).
@@ -154,6 +301,7 @@ the fixes and additions from the past two weeks:
154301## ` 0.10.3 `
155302
156303### Changed
304+
157305- Node.js: Support v7, and keep testing v4 up to v7 in Travis CI.
158306- Node.js: Loosely couple Node.js / Electron code to ` Canvas ` module, and treat
159307 its absence like a headless web worker context in the browser (#1103 ).
@@ -178,6 +326,7 @@ the fixes and additions from the past two weeks:
178326 ` #reorient() ` (#973 ).
179327
180328### Added
329+
181330- Implement ` Path#divideAt(location) ` , in analogy to ` Curve#divideAt(location) ` .
182331- Add ` PathItem#compare() ` as a way to compare the geometry of two paths to see
183332 if they describe the same shape, handling cases where paths start in different
@@ -196,6 +345,7 @@ the fixes and additions from the past two weeks:
196345 (#1004 , #1177 ).
197346
198347### Fixed
348+
199349- Many improvements to boolean operations:
200350 - Improve performance of boolean operations when there no actual crossings
201351 between the paths, but paths may be contained within each other.
@@ -236,17 +386,20 @@ the fixes and additions from the past two weeks:
236386 (#632 ).
237387
238388### Removed
389+
239390- Remove ` Numerical.TOLERANCE = 1e-6 ` as there is no internal use for it
240391 anymore.
241392
242393## ` 0.10.2 `
243394
244395### Fixed
396+
245397- Get published version to work correctly in Bower again.
246398
247399## ` 0.10.1 `
248400
249401### Fixed
402+
250403- Correct a few issues with documentation and NPM publishing that slipped
251404 through in the ` 0.10.0 ` release.
252405
@@ -284,6 +437,7 @@ Thank you all for using Paper.js, submitting bugs and ideas, and all those that
284437contribute to the code.
285438
286439### Changed
440+
287441- Significant overhaul and improvements of boolean path operations
288442 ` PathItem#unite() ` , ` #subtract() ` , ` #intersect() ` , ` #exclude() ` , ` #divide() ` :
289443 - Improve handling of self-intersecting paths and non-zero fill-rules.
@@ -300,7 +454,7 @@ contribute to the code.
300454 - ` Curve#getParameterAt(offset) ` → ` #getTimeAt(offset) `
301455 - ` Curve#getParameterOf(point) ` → ` getTimeOf(point) `
302456 - ` Curve#getPointAt(time, true) ` → ` #getPointAtTime(time) `
303- - ` Curve#getTangentAt(time, true) ` → ` #getTangenttTime (time) `
457+ - ` Curve#getTangentAt(time, true) ` → ` #getTangentAtTime (time) `
304458 - ` Curve#getNormalAt(time, true) ` → ` #getNormalAtTime(time) `
305459 - ` Curve#getCurvatureAt(time, true) ` → ` #getCurvatureAtTime(time) `
306460 - ` CurveLocation#parameter ` → ` #time `
@@ -360,6 +514,7 @@ contribute to the code.
360514 ` Color ` (#1043 ).
361515
362516### Added
517+
363518- Use unified code-base for browsers, Node.js, Electron, and anything
364519 in-between, and enable npm install for browser use (#739 ).
365520- Start using automatic code testing and deployment of prebuilt versions through
@@ -424,6 +579,7 @@ contribute to the code.
424579- Add ` Raster#loaded ` to reflect the loading state of its image.
425580
426581### Fixed
582+
427583- Fix calculations of ` Item#strokeBounds ` for all possible combinations of
428584 ` Item#strokeScaling ` and ` Item#applyMatrix ` for ` Path ` , ` Shape ` and
429585 ` SymbolItem ` , along with correct handling of such strokes in Item#hitTest()
@@ -502,10 +658,11 @@ contribute to the code.
502658 ` Numerical.solveCubic() ` for edge-cases (#1085 ).
503659
504660### Removed
661+
505662- Canvas attributes "resize" and "data-paper-resize" no longer cause paper to
506663 resize the canvas when the viewport size changes; Additional CSS styles are
507664 required since ` 0.9.22 ` , e.g.:
508-
665+
509666 ``` css
510667 /* Scale canvas with resize attribute to full size */
511668 canvas [resize ] {
@@ -520,14 +677,15 @@ contribute to the code.
520677 It is replaced by ` Project#addLayer() ` and ` Project#insertLayer() ` .
521678
522679### Deprecated
680+
523681- ` #windingRule ` on ` Item ` and ` Style ` → ` #fillRule `
524682- ` Curve#getNormalAt(time, true) ` → ` #getNormalAtTime(true) `
525683- ` Curve#divide() ` → ` #divideAt(offset) ` / ` #divideAtTime(time) `
526684- ` Curve#split() ` → ` #splitAt(offset) ` / ` #splitAtTime(time) `
527685- ` Curve#getParameterAt(offset) ` → ` #getTimeAt(offset) `
528686- ` Curve#getParameterOf(point) ` → ` getTimeOf(point) `
529687- ` Curve#getPointAt(time, true) ` → ` #getPointAtTime(time) `
530- - ` Curve#getTangentAt(time, true) ` → ` #getTangenttTime (time) `
688+ - ` Curve#getTangentAt(time, true) ` → ` #getTangentAtTime (time) `
531689- ` Curve#getNormalAt(time, true) ` → ` #getNormalAtTime(time) `
532690- ` Curve#getCurvatureAt(time, true) ` → ` #getCurvatureAtTime(time) `
533691- ` CurveLocation#parameter ` → ` #time `
0 commit comments