fabric 5.3.0 → 6.0.0-beta10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (634) hide show
  1. package/.babelrc +11 -0
  2. package/.babelrcAlt +19 -0
  3. package/.browserslistrc +5 -0
  4. package/.eslintignore +3 -0
  5. package/.eslintrc.js +51 -0
  6. package/.eslintrc.json +38 -46
  7. package/.eslintrc_tests +12 -0
  8. package/.gitattributes +2 -0
  9. package/.gitpod.yml +17 -1
  10. package/.prettierignore +19 -0
  11. package/.prettierrc +4 -0
  12. package/CHANGELOG.md +615 -189
  13. package/CONTRIBUTING.md +233 -59
  14. package/README.md +200 -235
  15. package/babel-jest.config.js +6 -0
  16. package/bower.json +1 -3
  17. package/dist/fabric.d.ts +54 -0
  18. package/dist/index.d.ts +2 -0
  19. package/dist/index.js +28452 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/index.min.js +1 -0
  22. package/dist/index.mjs +28385 -0
  23. package/dist/index.mjs.map +1 -0
  24. package/dist/index.node.cjs +28538 -0
  25. package/dist/index.node.cjs.map +1 -0
  26. package/dist/index.node.d.ts +20 -0
  27. package/dist/index.node.mjs +28477 -0
  28. package/dist/index.node.mjs.map +1 -0
  29. package/dist/src/ClassRegistry.d.ts +13 -0
  30. package/dist/src/Collection.d.ts +136 -0
  31. package/dist/src/CommonMethods.d.ts +32 -0
  32. package/dist/src/EventTypeDefs.d.ts +227 -0
  33. package/dist/src/Intersection.d.ts +112 -0
  34. package/dist/src/Observable.d.ts +60 -0
  35. package/dist/src/Pattern/Pattern.d.ts +99 -0
  36. package/dist/src/Pattern/index.d.ts +3 -0
  37. package/dist/src/Pattern/types.d.ts +9 -0
  38. package/dist/src/Point.d.ts +232 -0
  39. package/dist/src/Shadow.d.ts +96 -0
  40. package/dist/src/brushes/BaseBrush.d.ts +101 -0
  41. package/dist/src/brushes/CircleBrush.d.ts +44 -0
  42. package/dist/src/brushes/CircleBrush.test.d.ts +2 -0
  43. package/dist/src/brushes/PatternBrush.d.ts +23 -0
  44. package/dist/src/brushes/PencilBrush.d.ts +92 -0
  45. package/dist/src/brushes/SprayBrush.d.ts +74 -0
  46. package/dist/src/brushes/typedefs.d.ts +18 -0
  47. package/dist/src/cache.d.ts +47 -0
  48. package/dist/src/canvas/Canvas.d.ts +364 -0
  49. package/dist/src/canvas/DOMManagers/CanvasDOMManager.d.ts +29 -0
  50. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts +29 -0
  51. package/dist/src/canvas/DOMManagers/util.d.ts +24 -0
  52. package/dist/src/canvas/DOMManagers/util.spec.d.ts +2 -0
  53. package/dist/src/canvas/SelectableCanvas.d.ts +723 -0
  54. package/dist/src/canvas/StaticCanvas.d.ts +747 -0
  55. package/dist/src/canvas/TextEditingManager.d.ts +21 -0
  56. package/dist/src/canvas/canvas_gestures.mixin.d.ts +2 -0
  57. package/dist/src/color/Color.d.ts +152 -0
  58. package/dist/src/color/color_map.d.ts +155 -0
  59. package/dist/src/color/constants.d.ts +104 -0
  60. package/dist/src/color/typedefs.d.ts +16 -0
  61. package/dist/src/color/util.d.ts +27 -0
  62. package/dist/src/config.d.ts +115 -0
  63. package/dist/src/constants.d.ts +21 -0
  64. package/dist/src/controls/Control.d.ts +229 -0
  65. package/dist/src/controls/changeWidth.d.ts +13 -0
  66. package/dist/src/controls/commonControls.d.ts +28 -0
  67. package/dist/src/controls/controlRendering.d.ts +29 -0
  68. package/dist/src/controls/drag.d.ts +12 -0
  69. package/dist/src/controls/fireEvent.d.ts +3 -0
  70. package/dist/src/controls/index.d.ts +13 -0
  71. package/dist/src/controls/polyControl.d.ts +5 -0
  72. package/dist/src/controls/rotate.d.ts +12 -0
  73. package/dist/src/controls/scale.d.ts +47 -0
  74. package/dist/src/controls/scaleSkew.d.ts +39 -0
  75. package/dist/src/controls/skew.d.ts +33 -0
  76. package/dist/src/controls/util.d.ts +41 -0
  77. package/dist/src/controls/wrapWithFireEvent.d.ts +8 -0
  78. package/dist/src/controls/wrapWithFixedAnchor.d.ts +9 -0
  79. package/dist/src/env/browser.d.ts +3 -0
  80. package/dist/src/env/index.d.ts +28 -0
  81. package/dist/src/env/node.d.ts +6 -0
  82. package/dist/src/env/types.d.ts +15 -0
  83. package/dist/src/filters/BaseFilter.d.ts +160 -0
  84. package/dist/src/filters/BlendColor.d.ts +81 -0
  85. package/dist/src/filters/BlendImage.d.ts +93 -0
  86. package/dist/src/filters/Blur.d.ts +52 -0
  87. package/dist/src/filters/Boilerplate.d.ts +48 -0
  88. package/dist/src/filters/Brightness.d.ts +48 -0
  89. package/dist/src/filters/Canvas2dFilterBackend.d.ts +27 -0
  90. package/dist/src/filters/ColorMatrix.d.ts +64 -0
  91. package/dist/src/filters/ColorMatrixFilters.d.ts +537 -0
  92. package/dist/src/filters/Composed.d.ts +46 -0
  93. package/dist/src/filters/Contrast.d.ts +46 -0
  94. package/dist/src/filters/Convolute.d.ts +83 -0
  95. package/dist/src/filters/FilterBackend.d.ts +15 -0
  96. package/dist/src/filters/GLProbes/GLProbe.d.ts +7 -0
  97. package/dist/src/filters/GLProbes/NodeGLProbe.d.ts +11 -0
  98. package/dist/src/filters/GLProbes/WebGLProbe.d.ts +20 -0
  99. package/dist/src/filters/Gamma.d.ts +55 -0
  100. package/dist/src/filters/Grayscale.d.ts +47 -0
  101. package/dist/src/filters/HueRotation.d.ts +25 -0
  102. package/dist/src/filters/Invert.d.ts +56 -0
  103. package/dist/src/filters/Noise.d.ts +55 -0
  104. package/dist/src/filters/Pixelate.d.ts +45 -0
  105. package/dist/src/filters/RemoveColor.d.ts +64 -0
  106. package/dist/src/filters/Resize.d.ts +137 -0
  107. package/dist/src/filters/Saturation.d.ts +49 -0
  108. package/dist/src/filters/Vibrance.d.ts +49 -0
  109. package/dist/src/filters/WebGLFilterBackend.d.ts +128 -0
  110. package/dist/src/filters/filters.d.ts +21 -0
  111. package/dist/src/filters/index.d.ts +7 -0
  112. package/dist/src/filters/shaders/baseFilter.d.ts +4 -0
  113. package/dist/src/filters/shaders/blendColor.d.ts +13 -0
  114. package/dist/src/filters/shaders/blendImage.d.ts +3 -0
  115. package/dist/src/filters/shaders/blur.d.ts +2 -0
  116. package/dist/src/filters/shaders/brightness.d.ts +2 -0
  117. package/dist/src/filters/shaders/colorMatrix.d.ts +2 -0
  118. package/dist/src/filters/shaders/constrast.d.ts +2 -0
  119. package/dist/src/filters/shaders/convolute.d.ts +11 -0
  120. package/dist/src/filters/shaders/gamma.d.ts +2 -0
  121. package/dist/src/filters/shaders/grayscale.d.ts +3 -0
  122. package/dist/src/filters/shaders/invert.d.ts +2 -0
  123. package/dist/src/filters/shaders/noise.d.ts +2 -0
  124. package/dist/src/filters/shaders/pixelate.d.ts +2 -0
  125. package/dist/src/filters/shaders/removeColor.d.ts +2 -0
  126. package/dist/src/filters/shaders/saturation.d.ts +2 -0
  127. package/dist/src/filters/shaders/vibrance.d.ts +2 -0
  128. package/dist/src/filters/typedefs.d.ts +48 -0
  129. package/dist/src/filters/utils.d.ts +3 -0
  130. package/dist/src/gradient/Gradient.d.ts +150 -0
  131. package/dist/src/gradient/constants.d.ts +15 -0
  132. package/dist/src/gradient/index.d.ts +3 -0
  133. package/dist/src/gradient/parser/index.d.ts +4 -0
  134. package/dist/src/gradient/parser/misc.d.ts +4 -0
  135. package/dist/src/gradient/parser/parseColorStops.d.ts +3 -0
  136. package/dist/src/gradient/parser/parseCoords.d.ts +17 -0
  137. package/dist/src/gradient/typedefs.d.ts +93 -0
  138. package/dist/src/mixins/eraser_brush.mixin.d.ts +2 -0
  139. package/dist/src/parkinglot/canvas_animation.mixin.d.ts +2 -0
  140. package/dist/src/parkinglot/straighten.d.ts +2 -0
  141. package/dist/src/parser/applyViewboxTransform.d.ts +5 -0
  142. package/dist/src/parser/attributes.d.ts +6 -0
  143. package/dist/src/parser/constants.d.ts +53 -0
  144. package/dist/src/parser/doesSomeParentMatch.d.ts +2 -0
  145. package/dist/src/parser/elementById.d.ts +6 -0
  146. package/dist/src/parser/elementMatchesRule.d.ts +5 -0
  147. package/dist/src/parser/elements_parser.d.ts +3 -0
  148. package/dist/src/parser/getCSSRules.d.ts +7 -0
  149. package/dist/src/parser/getGlobalStylesForElement.d.ts +5 -0
  150. package/dist/src/parser/getGradientDefs.d.ts +7 -0
  151. package/dist/src/parser/getMultipleNodes.d.ts +2 -0
  152. package/dist/src/parser/getSvgRegex.d.ts +2 -0
  153. package/dist/src/parser/hasAncestorWithNodeName.d.ts +2 -0
  154. package/dist/src/parser/index.d.ts +9 -0
  155. package/dist/src/parser/loadSVGFromString.d.ts +18 -0
  156. package/dist/src/parser/loadSVGFromURL.d.ts +19 -0
  157. package/dist/src/parser/normalizeAttr.d.ts +2 -0
  158. package/dist/src/parser/normalizeValue.d.ts +2 -0
  159. package/dist/src/parser/parseAttributes.d.ts +9 -0
  160. package/dist/src/parser/parseFontDeclaration.d.ts +10 -0
  161. package/dist/src/parser/parsePointsAttribute.d.ts +12 -0
  162. package/dist/src/parser/parseSVGDocument.d.ts +23 -0
  163. package/dist/src/parser/parseStyleAttribute.d.ts +9 -0
  164. package/dist/src/parser/parseStyleObject.d.ts +2 -0
  165. package/dist/src/parser/parseStyleString.d.ts +2 -0
  166. package/dist/src/parser/parseTransformAttribute.d.ts +11 -0
  167. package/dist/src/parser/parseUseDirectives.d.ts +2 -0
  168. package/dist/src/parser/percent.d.ts +9 -0
  169. package/dist/src/parser/recursivelyParseGradientsXlink.d.ts +2 -0
  170. package/dist/src/parser/selectorMatches.d.ts +2 -0
  171. package/dist/src/parser/setStrokeFillOpacity.d.ts +6 -0
  172. package/dist/src/parser/typedefs.d.ts +9 -0
  173. package/dist/src/shapes/ActiveSelection.d.ts +83 -0
  174. package/dist/src/shapes/Circle.d.ts +99 -0
  175. package/dist/src/shapes/Ellipse.d.ts +84 -0
  176. package/dist/src/shapes/Group.d.ts +407 -0
  177. package/dist/src/shapes/IText/DraggableTextDelegate.d.ts +78 -0
  178. package/dist/src/shapes/IText/IText.d.ts +336 -0
  179. package/dist/src/shapes/IText/ITextBehavior.d.ts +287 -0
  180. package/dist/src/shapes/IText/ITextClickBehavior.d.ts +73 -0
  181. package/dist/src/shapes/IText/ITextKeyBehavior.d.ts +195 -0
  182. package/dist/src/shapes/IText/constants.d.ts +13 -0
  183. package/dist/src/shapes/Image.d.ts +309 -0
  184. package/dist/src/shapes/Line.d.ts +121 -0
  185. package/dist/src/shapes/Object/AnimatableObject.d.ts +33 -0
  186. package/dist/src/shapes/Object/FabricObject.d.ts +11 -0
  187. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts +74 -0
  188. package/dist/src/shapes/Object/InteractiveObject.d.ts +296 -0
  189. package/dist/src/shapes/Object/Object.d.ts +599 -0
  190. package/dist/src/shapes/Object/ObjectGeometry.d.ts +327 -0
  191. package/dist/src/shapes/Object/ObjectOrigin.d.ts +109 -0
  192. package/dist/src/shapes/Object/StackedObject.d.ts +72 -0
  193. package/dist/src/shapes/Object/defaultValues.d.ts +76 -0
  194. package/dist/src/shapes/Object/types/BaseProps.d.ts +84 -0
  195. package/dist/src/shapes/Object/types/BorderProps.d.ts +37 -0
  196. package/dist/src/shapes/Object/types/ControlProps.d.ts +62 -0
  197. package/dist/src/shapes/Object/types/FabricObjectProps.d.ts +96 -0
  198. package/dist/src/shapes/Object/types/FillStrokeProps.d.ts +80 -0
  199. package/dist/src/shapes/Object/types/LockInteractionProps.d.ts +51 -0
  200. package/dist/src/shapes/Object/types/ObjectProps.d.ts +42 -0
  201. package/dist/src/shapes/Object/types/SerializedObjectProps.d.ts +66 -0
  202. package/dist/src/shapes/Object/types/index.d.ts +6 -0
  203. package/dist/src/shapes/Path.d.ts +214 -0
  204. package/dist/src/shapes/Polygon.d.ts +10 -0
  205. package/dist/src/shapes/Polyline.d.ts +147 -0
  206. package/dist/src/shapes/Rect.d.ts +82 -0
  207. package/dist/src/shapes/Text/StyledText.d.ts +123 -0
  208. package/dist/src/shapes/Text/Text.d.ts +688 -0
  209. package/dist/src/shapes/Text/TextSVGExportMixin.d.ts +32 -0
  210. package/dist/src/shapes/Text/constants.d.ts +13 -0
  211. package/dist/src/shapes/Textbox.d.ts +204 -0
  212. package/dist/src/shapes/Triangle.d.ts +26 -0
  213. package/dist/src/typedefs.d.ts +96 -0
  214. package/dist/src/util/animation/AnimationBase.d.ts +54 -0
  215. package/dist/src/util/animation/AnimationFrameProvider.d.ts +3 -0
  216. package/dist/src/util/animation/AnimationRegistry.d.ts +29 -0
  217. package/dist/src/util/animation/ArrayAnimation.d.ts +10 -0
  218. package/dist/src/util/animation/ColorAnimation.d.ts +11 -0
  219. package/dist/src/util/animation/ValueAnimation.d.ts +10 -0
  220. package/dist/src/util/animation/animate.d.ts +37 -0
  221. package/dist/src/util/animation/easing.d.ts +130 -0
  222. package/dist/src/util/animation/index.d.ts +3 -0
  223. package/dist/src/util/animation/types.d.ts +87 -0
  224. package/dist/src/util/applyMixins.d.ts +8 -0
  225. package/dist/src/util/dom_event.d.ts +5 -0
  226. package/dist/src/util/dom_misc.d.ts +12 -0
  227. package/dist/src/util/dom_request.d.ts +14 -0
  228. package/dist/src/util/dom_style.d.ts +7 -0
  229. package/dist/src/util/index.d.ts +36 -0
  230. package/dist/src/util/internals/cleanupSvgAttribute.d.ts +2 -0
  231. package/dist/src/util/internals/cleanupSvgAttribute.test.d.ts +2 -0
  232. package/dist/src/util/internals/cloneDeep.d.ts +2 -0
  233. package/dist/src/util/internals/cloneDeep.test.d.ts +2 -0
  234. package/dist/src/util/internals/getRandomInt.d.ts +8 -0
  235. package/dist/src/util/internals/getRandomInt.test.d.ts +2 -0
  236. package/dist/src/util/internals/ifNaN.d.ts +8 -0
  237. package/dist/src/util/internals/index.d.ts +4 -0
  238. package/dist/src/util/internals/removeFromArray.d.ts +9 -0
  239. package/dist/src/util/internals/uid.d.ts +2 -0
  240. package/dist/src/util/lang_string.d.ts +22 -0
  241. package/dist/src/util/misc/boundingBoxFromPoints.d.ts +9 -0
  242. package/dist/src/util/misc/capValue.d.ts +2 -0
  243. package/dist/src/util/misc/cos.d.ts +10 -0
  244. package/dist/src/util/misc/dom.d.ts +28 -0
  245. package/dist/src/util/misc/findScaleTo.d.ts +20 -0
  246. package/dist/src/util/misc/groupSVGElements.d.ts +9 -0
  247. package/dist/src/util/misc/isTransparent.d.ts +11 -0
  248. package/dist/src/util/misc/matrix.d.ts +168 -0
  249. package/dist/src/util/misc/mergeClipPaths.d.ts +23 -0
  250. package/dist/src/util/misc/objectEnlive.d.ts +41 -0
  251. package/dist/src/util/misc/objectTransforms.d.ts +68 -0
  252. package/dist/src/util/misc/pick.d.ts +9 -0
  253. package/dist/src/util/misc/planeChange.d.ts +81 -0
  254. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts +52 -0
  255. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts +82 -0
  256. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts +26 -0
  257. package/dist/src/util/misc/projectStroke/index.d.ts +12 -0
  258. package/dist/src/util/misc/projectStroke/types.d.ts +23 -0
  259. package/dist/src/util/misc/radiansDegreesConversion.d.ts +14 -0
  260. package/dist/src/util/misc/resolveOrigin.d.ts +9 -0
  261. package/dist/src/util/misc/rotatePoint.d.ts +12 -0
  262. package/dist/src/util/misc/sin.d.ts +10 -0
  263. package/dist/src/util/misc/svgParsing.d.ts +45 -0
  264. package/dist/src/util/misc/textStyles.d.ts +32 -0
  265. package/dist/src/util/misc/toFixed.d.ts +8 -0
  266. package/dist/src/util/misc/vectors.d.ts +58 -0
  267. package/dist/src/util/path/index.d.ts +96 -0
  268. package/dist/src/util/path/regex.d.ts +2 -0
  269. package/dist/src/util/path/typechecks.d.ts +24 -0
  270. package/dist/src/util/path/typedefs.d.ts +220 -0
  271. package/dist/src/util/transform_matrix_removal.d.ts +14 -0
  272. package/dist/src/util/typeAssertions.d.ts +19 -0
  273. package/e2e/site/index.html +25 -0
  274. package/e2e/utils/objects.ts +36 -0
  275. package/fabric.ts +72 -0
  276. package/index.node.ts +43 -0
  277. package/index.ts +1 -0
  278. package/jest.config.js +194 -0
  279. package/lib/aligning_guidelines.js +2 -2
  280. package/package.json +110 -40
  281. package/playwright.config.ts +64 -0
  282. package/publish.js +0 -26
  283. package/rollup.config.mjs +99 -0
  284. package/rollup.test.config.js +24 -0
  285. package/scripts/build.mjs +50 -0
  286. package/scripts/buildLock.mjs +115 -0
  287. package/scripts/buildReporter.mjs +15 -0
  288. package/scripts/buildStats.mjs +139 -0
  289. package/scripts/dirname.mjs +14 -0
  290. package/scripts/git.mjs +36 -0
  291. package/scripts/index.mjs +564 -0
  292. package/scripts/sandbox.mjs +149 -0
  293. package/src/ClassRegistry.ts +56 -0
  294. package/src/Collection.ts +346 -0
  295. package/src/CommonMethods.ts +63 -0
  296. package/src/EventTypeDefs.ts +298 -0
  297. package/src/Intersection.ts +302 -0
  298. package/src/Observable.ts +181 -0
  299. package/src/Pattern/Pattern.ts +207 -0
  300. package/src/Pattern/index.ts +2 -0
  301. package/src/Pattern/types.ts +17 -0
  302. package/src/Point.ts +388 -0
  303. package/src/Shadow.ts +214 -0
  304. package/src/brushes/{base_brush.class.js → BaseBrush.ts} +63 -42
  305. package/src/brushes/CircleBrush.test.ts +11 -0
  306. package/src/brushes/CircleBrush.ts +140 -0
  307. package/src/brushes/PatternBrush.ts +70 -0
  308. package/src/brushes/PencilBrush.ts +300 -0
  309. package/src/brushes/SprayBrush.ts +214 -0
  310. package/src/brushes/typedefs.ts +18 -0
  311. package/src/cache.ts +90 -0
  312. package/src/canvas/Canvas.ts +1598 -0
  313. package/src/canvas/DOMManagers/CanvasDOMManager.ts +124 -0
  314. package/src/canvas/DOMManagers/StaticCanvasDOMManager.ts +80 -0
  315. package/src/canvas/DOMManagers/util.spec.ts +26 -0
  316. package/src/canvas/DOMManagers/util.ts +98 -0
  317. package/src/canvas/SelectableCanvas.ts +1506 -0
  318. package/src/canvas/StaticCanvas.ts +1634 -0
  319. package/src/canvas/TextEditingManager.ts +70 -0
  320. package/src/canvas/canvas_gestures.mixin.ts +207 -0
  321. package/src/color/Color.ts +320 -0
  322. package/src/color/color_map.ts +154 -0
  323. package/src/color/constants.ts +107 -0
  324. package/src/color/typedefs.ts +18 -0
  325. package/src/color/util.ts +93 -0
  326. package/src/config.ts +159 -0
  327. package/src/constants.ts +29 -0
  328. package/src/controls/Control.ts +385 -0
  329. package/src/controls/changeWidth.ts +53 -0
  330. package/src/controls/commonControls.ts +105 -0
  331. package/src/controls/controlRendering.ts +138 -0
  332. package/src/controls/drag.ts +32 -0
  333. package/src/controls/fireEvent.ts +18 -0
  334. package/src/controls/index.ts +22 -0
  335. package/src/controls/polyControl.ts +135 -0
  336. package/src/controls/rotate.ts +87 -0
  337. package/src/controls/scale.ts +277 -0
  338. package/src/controls/scaleSkew.ts +92 -0
  339. package/src/controls/skew.ts +243 -0
  340. package/src/controls/util.ts +155 -0
  341. package/src/controls/wrapWithFireEvent.ts +25 -0
  342. package/src/controls/wrapWithFixedAnchor.ts +20 -0
  343. package/src/env/browser.ts +32 -0
  344. package/src/env/index.ts +38 -0
  345. package/src/env/node.ts +58 -0
  346. package/src/env/types.ts +15 -0
  347. package/src/filters/{base_filter.class.js → BaseFilter.ts} +203 -151
  348. package/src/filters/BlendColor.ts +219 -0
  349. package/src/filters/BlendImage.ts +230 -0
  350. package/src/filters/Blur.ts +181 -0
  351. package/src/filters/Boilerplate.ts +94 -0
  352. package/src/filters/Brightness.ts +85 -0
  353. package/src/filters/Canvas2dFilterBackend.ts +65 -0
  354. package/src/filters/ColorMatrix.ts +147 -0
  355. package/src/filters/ColorMatrixFilters.ts +79 -0
  356. package/src/filters/Composed.ts +78 -0
  357. package/src/filters/Contrast.ts +84 -0
  358. package/src/filters/Convolute.ts +186 -0
  359. package/src/filters/FilterBackend.ts +38 -0
  360. package/src/filters/GLProbes/GLProbe.ts +7 -0
  361. package/src/filters/GLProbes/NodeGLProbe.ts +15 -0
  362. package/src/filters/GLProbes/WebGLProbe.ts +47 -0
  363. package/src/filters/Gamma.ts +112 -0
  364. package/src/filters/Grayscale.ts +104 -0
  365. package/src/filters/HueRotation.ts +64 -0
  366. package/src/filters/Invert.ts +101 -0
  367. package/src/filters/Noise.ts +96 -0
  368. package/src/filters/Pixelate.ts +98 -0
  369. package/src/filters/RemoveColor.ts +137 -0
  370. package/src/filters/Resize.ts +540 -0
  371. package/src/filters/Saturation.ts +89 -0
  372. package/src/filters/Vibrance.ts +90 -0
  373. package/src/filters/WebGLFilterBackend.ts +456 -0
  374. package/src/filters/filters.ts +28 -0
  375. package/src/filters/index.ts +12 -0
  376. package/src/filters/shaders/baseFilter.ts +17 -0
  377. package/src/filters/shaders/blendColor.ts +33 -0
  378. package/src/filters/shaders/blendImage.ts +32 -0
  379. package/src/filters/shaders/blur.ts +24 -0
  380. package/src/filters/shaders/brightness.ts +11 -0
  381. package/src/filters/shaders/colorMatrix.ts +12 -0
  382. package/src/filters/shaders/constrast.ts +11 -0
  383. package/src/filters/shaders/convolute.ts +154 -0
  384. package/src/filters/shaders/gamma.ts +15 -0
  385. package/src/filters/shaders/grayscale.ts +36 -0
  386. package/src/filters/shaders/invert.ts +19 -0
  387. package/src/filters/shaders/noise.ts +16 -0
  388. package/src/filters/shaders/pixelate.ts +19 -0
  389. package/src/filters/shaders/removeColor.ts +13 -0
  390. package/src/filters/shaders/saturation.ts +15 -0
  391. package/src/filters/shaders/vibrance.ts +16 -0
  392. package/src/filters/typedefs.ts +59 -0
  393. package/src/filters/utils.ts +7 -0
  394. package/src/gradient/Gradient.ts +409 -0
  395. package/src/gradient/constants.ts +12 -0
  396. package/src/gradient/index.ts +2 -0
  397. package/src/gradient/parser/index.ts +3 -0
  398. package/src/gradient/parser/misc.ts +13 -0
  399. package/src/gradient/parser/parseColorStops.ts +56 -0
  400. package/src/gradient/parser/parseCoords.ts +73 -0
  401. package/src/gradient/typedefs.ts +104 -0
  402. package/src/mixins/{eraser_brush.mixin.js → eraser_brush.mixin.ts} +350 -239
  403. package/src/parkinglot/canvas_animation.mixin.ts +121 -0
  404. package/src/parkinglot/straighten.ts +58 -0
  405. package/src/parser/applyViewboxTransform.ts +158 -0
  406. package/src/parser/attributes.ts +25 -0
  407. package/src/parser/constants.ts +116 -0
  408. package/src/parser/doesSomeParentMatch.ts +18 -0
  409. package/src/parser/elementById.ts +21 -0
  410. package/src/parser/elementMatchesRule.ts +16 -0
  411. package/src/parser/elements_parser.ts +158 -0
  412. package/src/parser/getCSSRules.ts +61 -0
  413. package/src/parser/getGlobalStylesForElement.ts +19 -0
  414. package/src/parser/getGradientDefs.ts +31 -0
  415. package/src/parser/getMultipleNodes.ts +15 -0
  416. package/src/parser/getSvgRegex.ts +3 -0
  417. package/src/parser/hasAncestorWithNodeName.ts +14 -0
  418. package/src/parser/index.ts +8 -0
  419. package/src/parser/loadSVGFromString.ts +29 -0
  420. package/src/parser/loadSVGFromURL.ts +47 -0
  421. package/src/parser/normalizeAttr.ts +10 -0
  422. package/src/parser/normalizeValue.ts +64 -0
  423. package/src/parser/parseAttributes.ts +90 -0
  424. package/src/parser/parseFontDeclaration.ts +44 -0
  425. package/src/parser/parsePointsAttribute.ts +34 -0
  426. package/src/parser/parseSVGDocument.ts +118 -0
  427. package/src/parser/parseStyleAttribute.ts +27 -0
  428. package/src/parser/parseStyleObject.ts +15 -0
  429. package/src/parser/parseStyleString.ts +16 -0
  430. package/src/parser/parseTransformAttribute.ts +94 -0
  431. package/src/parser/parseUseDirectives.ts +78 -0
  432. package/src/parser/percent.ts +27 -0
  433. package/src/parser/recursivelyParseGradientsXlink.ts +42 -0
  434. package/src/parser/selectorMatches.ts +25 -0
  435. package/src/parser/setStrokeFillOpacity.ts +40 -0
  436. package/src/parser/typedefs.ts +13 -0
  437. package/src/shapes/ActiveSelection.ts +192 -0
  438. package/src/shapes/Circle.ts +236 -0
  439. package/src/shapes/Ellipse.ts +177 -0
  440. package/src/shapes/Group.ts +1103 -0
  441. package/src/shapes/IText/DraggableTextDelegate.ts +385 -0
  442. package/src/shapes/IText/IText.ts +696 -0
  443. package/src/shapes/IText/ITextBehavior.ts +1073 -0
  444. package/src/shapes/IText/ITextClickBehavior.ts +292 -0
  445. package/src/shapes/IText/ITextKeyBehavior.ts +675 -0
  446. package/src/shapes/IText/constants.ts +53 -0
  447. package/src/shapes/Image.ts +848 -0
  448. package/src/shapes/Line.ts +285 -0
  449. package/src/shapes/Object/AnimatableObject.ts +103 -0
  450. package/src/shapes/Object/FabricObject.ts +29 -0
  451. package/src/shapes/Object/FabricObjectSVGExportMixin.ts +278 -0
  452. package/src/shapes/Object/InteractiveObject.ts +669 -0
  453. package/src/shapes/Object/Object.ts +1589 -0
  454. package/src/shapes/Object/ObjectGeometry.ts +814 -0
  455. package/src/shapes/Object/ObjectOrigin.ts +277 -0
  456. package/src/shapes/Object/StackedObject.ts +206 -0
  457. package/src/shapes/Object/defaultValues.ts +110 -0
  458. package/src/shapes/Object/types/BaseProps.ts +96 -0
  459. package/src/shapes/Object/types/BorderProps.ts +40 -0
  460. package/src/shapes/Object/types/ControlProps.ts +69 -0
  461. package/src/shapes/Object/types/FabricObjectProps.ts +111 -0
  462. package/src/shapes/Object/types/FillStrokeProps.ts +90 -0
  463. package/src/shapes/Object/types/LockInteractionProps.ts +57 -0
  464. package/src/shapes/Object/types/ObjectProps.ts +49 -0
  465. package/src/shapes/Object/types/SerializedObjectProps.ts +73 -0
  466. package/src/shapes/Object/types/index.ts +8 -0
  467. package/src/shapes/Path.ts +434 -0
  468. package/src/shapes/Polygon.ts +22 -0
  469. package/src/shapes/Polyline.ts +364 -0
  470. package/src/shapes/Rect.ts +230 -0
  471. package/src/shapes/Text/StyledText.ts +323 -0
  472. package/src/shapes/Text/Text.ts +1891 -0
  473. package/src/shapes/Text/TextSVGExportMixin.ts +289 -0
  474. package/src/shapes/Text/constants.ts +111 -0
  475. package/src/shapes/Textbox.ts +526 -0
  476. package/src/shapes/Triangle.ts +62 -0
  477. package/src/typedefs.ts +121 -0
  478. package/src/util/animation/AnimationBase.ts +166 -0
  479. package/src/util/animation/AnimationFrameProvider.ts +9 -0
  480. package/src/util/animation/AnimationRegistry.ts +58 -0
  481. package/src/util/animation/ArrayAnimation.ts +27 -0
  482. package/src/util/animation/ColorAnimation.ts +74 -0
  483. package/src/util/animation/ValueAnimation.ts +29 -0
  484. package/src/util/animation/animate.ts +74 -0
  485. package/src/util/animation/easing.ts +327 -0
  486. package/src/util/animation/index.ts +2 -0
  487. package/src/util/animation/types.ts +136 -0
  488. package/src/util/applyMixins.ts +22 -0
  489. package/src/util/dom_event.ts +28 -0
  490. package/src/util/dom_misc.ts +44 -0
  491. package/src/util/dom_request.ts +64 -0
  492. package/src/util/dom_style.ts +20 -0
  493. package/src/util/index.ts +106 -0
  494. package/src/util/internals/cleanupSvgAttribute.test.ts +16 -0
  495. package/src/util/internals/cleanupSvgAttribute.ts +8 -0
  496. package/src/util/internals/cloneDeep.test.ts +16 -0
  497. package/src/util/internals/cloneDeep.ts +2 -0
  498. package/src/util/internals/getRandomInt.test.ts +33 -0
  499. package/src/util/internals/getRandomInt.ts +8 -0
  500. package/src/util/internals/ifNaN.ts +9 -0
  501. package/src/util/internals/index.ts +3 -0
  502. package/src/util/internals/removeFromArray.ts +14 -0
  503. package/src/util/internals/uid.ts +3 -0
  504. package/src/util/lang_string.ts +79 -0
  505. package/src/util/misc/boundingBoxFromPoints.ts +38 -0
  506. package/src/util/misc/capValue.ts +2 -0
  507. package/src/util/misc/cos.ts +24 -0
  508. package/src/util/misc/dom.ts +55 -0
  509. package/src/util/misc/findScaleTo.ts +29 -0
  510. package/src/util/misc/groupSVGElements.ts +15 -0
  511. package/src/util/misc/isTransparent.ts +28 -0
  512. package/src/util/misc/matrix.ts +313 -0
  513. package/src/util/misc/mergeClipPaths.ts +40 -0
  514. package/src/util/misc/objectEnlive.ts +174 -0
  515. package/src/util/misc/objectTransforms.ts +130 -0
  516. package/src/util/misc/pick.ts +29 -0
  517. package/src/util/misc/planeChange.ts +127 -0
  518. package/src/util/misc/projectStroke/StrokeLineCapProjections.ts +113 -0
  519. package/src/util/misc/projectStroke/StrokeLineJoinProjections.ts +227 -0
  520. package/src/util/misc/projectStroke/StrokeProjectionsBase.ts +76 -0
  521. package/src/util/misc/projectStroke/index.ts +55 -0
  522. package/src/util/misc/projectStroke/types.ts +24 -0
  523. package/src/util/misc/radiansDegreesConversion.ts +18 -0
  524. package/src/util/misc/resolveOrigin.ts +22 -0
  525. package/src/util/misc/rotatePoint.ts +15 -0
  526. package/src/util/misc/sin.ts +26 -0
  527. package/src/util/misc/svgParsing.ts +171 -0
  528. package/src/util/misc/textStyles.ts +132 -0
  529. package/src/util/misc/toFixed.ts +8 -0
  530. package/src/util/misc/vectors.ts +83 -0
  531. package/src/util/path/index.ts +1039 -0
  532. package/src/util/path/regex.ts +39 -0
  533. package/src/util/path/typechecks.ts +145 -0
  534. package/src/util/path/typedefs.ts +305 -0
  535. package/src/util/transform_matrix_removal.ts +61 -0
  536. package/src/util/typeAssertions.ts +78 -0
  537. package/tsconfig.json +106 -0
  538. package/HEADER.js +0 -203
  539. package/build.js +0 -287
  540. package/dist/fabric.js +0 -31187
  541. package/dist/fabric.min.js +0 -1
  542. package/old-travis-reference.yml +0 -97
  543. package/src/brushes/circle_brush.class.js +0 -144
  544. package/src/brushes/pattern_brush.class.js +0 -61
  545. package/src/brushes/pencil_brush.class.js +0 -310
  546. package/src/brushes/spray_brush.class.js +0 -219
  547. package/src/canvas.class.js +0 -1312
  548. package/src/color.class.js +0 -636
  549. package/src/control.class.js +0 -339
  550. package/src/controls.actions.js +0 -740
  551. package/src/controls.render.js +0 -99
  552. package/src/elements_parser.js +0 -152
  553. package/src/filters/2d_backend.class.js +0 -65
  554. package/src/filters/blendcolor_filter.class.js +0 -251
  555. package/src/filters/blendimage_filter.class.js +0 -247
  556. package/src/filters/blur_filter.class.js +0 -217
  557. package/src/filters/brightness_filter.class.js +0 -113
  558. package/src/filters/colormatrix_filter.class.js +0 -159
  559. package/src/filters/composed_filter.class.js +0 -72
  560. package/src/filters/contrast_filter.class.js +0 -113
  561. package/src/filters/convolute_filter.class.js +0 -352
  562. package/src/filters/filter_boilerplate.js +0 -111
  563. package/src/filters/filter_generator.js +0 -85
  564. package/src/filters/gamma_filter.class.js +0 -136
  565. package/src/filters/grayscale_filter.class.js +0 -154
  566. package/src/filters/hue_rotation.class.js +0 -107
  567. package/src/filters/invert_filter.class.js +0 -111
  568. package/src/filters/noise_filter.class.js +0 -134
  569. package/src/filters/pixelate_filter.class.js +0 -137
  570. package/src/filters/removecolor_filter.class.js +0 -173
  571. package/src/filters/resize_filter.class.js +0 -490
  572. package/src/filters/saturate_filter.class.js +0 -119
  573. package/src/filters/vibrance_filter.class.js +0 -122
  574. package/src/filters/webgl_backend.class.js +0 -396
  575. package/src/globalFabric.js +0 -4
  576. package/src/gradient.class.js +0 -490
  577. package/src/intersection.class.js +0 -172
  578. package/src/log.js +0 -11
  579. package/src/mixins/animation.mixin.js +0 -231
  580. package/src/mixins/canvas_dataurl_exporter.mixin.js +0 -97
  581. package/src/mixins/canvas_events.mixin.js +0 -974
  582. package/src/mixins/canvas_gestures.mixin.js +0 -149
  583. package/src/mixins/canvas_grouping.mixin.js +0 -177
  584. package/src/mixins/canvas_serialization.mixin.js +0 -228
  585. package/src/mixins/collection.mixin.js +0 -170
  586. package/src/mixins/default_controls.js +0 -114
  587. package/src/mixins/itext.svg_export.js +0 -241
  588. package/src/mixins/itext_behavior.mixin.js +0 -940
  589. package/src/mixins/itext_click_behavior.mixin.js +0 -278
  590. package/src/mixins/itext_key_behavior.mixin.js +0 -694
  591. package/src/mixins/object.svg_export.js +0 -258
  592. package/src/mixins/object_geometry.mixin.js +0 -683
  593. package/src/mixins/object_interactivity.mixin.js +0 -314
  594. package/src/mixins/object_origin.mixin.js +0 -255
  595. package/src/mixins/object_stacking.mixin.js +0 -80
  596. package/src/mixins/object_straightening.mixin.js +0 -80
  597. package/src/mixins/observable.mixin.js +0 -141
  598. package/src/mixins/shared_methods.mixin.js +0 -94
  599. package/src/mixins/stateful.mixin.js +0 -107
  600. package/src/mixins/text_style.mixin.js +0 -324
  601. package/src/parser.js +0 -1090
  602. package/src/pattern.class.js +0 -189
  603. package/src/point.class.js +0 -337
  604. package/src/shadow.class.js +0 -195
  605. package/src/shapes/active_selection.class.js +0 -155
  606. package/src/shapes/circle.class.js +0 -210
  607. package/src/shapes/ellipse.class.js +0 -181
  608. package/src/shapes/group.class.js +0 -593
  609. package/src/shapes/image.class.js +0 -764
  610. package/src/shapes/itext.class.js +0 -526
  611. package/src/shapes/line.class.js +0 -324
  612. package/src/shapes/object.class.js +0 -2008
  613. package/src/shapes/path.class.js +0 -384
  614. package/src/shapes/polygon.class.js +0 -81
  615. package/src/shapes/polyline.class.js +0 -268
  616. package/src/shapes/rect.class.js +0 -187
  617. package/src/shapes/text.class.js +0 -1696
  618. package/src/shapes/textbox.class.js +0 -461
  619. package/src/shapes/triangle.class.js +0 -93
  620. package/src/static_canvas.class.js +0 -1881
  621. package/src/util/anim_ease.js +0 -398
  622. package/src/util/animate.js +0 -254
  623. package/src/util/animate_color.js +0 -74
  624. package/src/util/dom_event.js +0 -50
  625. package/src/util/dom_misc.js +0 -300
  626. package/src/util/dom_request.js +0 -54
  627. package/src/util/dom_style.js +0 -70
  628. package/src/util/lang_array.js +0 -94
  629. package/src/util/lang_class.js +0 -115
  630. package/src/util/lang_object.js +0 -75
  631. package/src/util/lang_string.js +0 -110
  632. package/src/util/misc.js +0 -1330
  633. package/src/util/named_accessors.mixin.js +0 -428
  634. package/src/util/path.js +0 -829
package/CHANGELOG.md CHANGED
@@ -1,5 +1,389 @@
1
1
  # Changelog
2
2
 
3
+ ## [next]
4
+
5
+ ## [6.0.0-beta10]
6
+
7
+ - chore(TS): Remove @ts-nocheck from Text class. [#9018](https://github.com/fabricjs/fabric.js/pull/9018)
8
+ - Fix(Textbox) minimum word width calculation across all lines [#9004](https://github.com/fabricjs/fabric.js/pull/9004)
9
+ - ci(): add Jest for the unit tests [#8919](https://github.com/fabricjs/fabric.js/pull/8919)
10
+ - ci(): Revert "invoke tests after changelog action (#8974)" [#9013](https://github.com/fabricjs/fabric.js/pull/9013)
11
+ - fix(IText): empty line selection [#9019](https://github.com/fabricjs/fabric.js/pull/9019)
12
+ - ci(): Added playwright testing [#8616](https://github.com/fabricjs/fabric.js/pull/8616)
13
+ - fix(IText): `exitEditing` should clear contextTop [#9020](https://github.com/fabricjs/fabric.js/pull/9020)
14
+ - ci(): prettier after changelog action [#9021](https://github.com/fabricjs/fabric.js/pull/9021)
15
+
16
+ ## [6.0.0-beta9]
17
+
18
+ - fix(fabric): Fix the serialization and registry dependency from minification [#9009](https://github.com/fabricjs/fabric.js/pull/9009)
19
+ - chore(TS): remove troublesome `AssertKeys` TS construct [#9012](https://github.com/fabricjs/fabric.js/pull/9012)
20
+ - fix(lib): fix aligning_guideline zoom [#8998](https://github.com/fabricjs/fabric.js/pull/8998)
21
+ - fix(IText): support control interaction in text editing mode [#8995](https://github.com/fabricjs/fabric.js/pull/8995)
22
+ - fix(Textbox): `splitByGrapheme` measurements infix length bug [#8990](https://github.com/fabricjs/fabric.js/pull/8990)
23
+ - patch(Text): styles es6 minor patch [#8988](https://github.com/fabricjs/fabric.js/pull/8988)
24
+
25
+ ## [6.0.0-beta8]
26
+
27
+ - BREAKING fix(IText): detect cursor from proper offsets, remove getLocalPointer from IText class [#8972](https://github.com/fabricjs/fabric.js/pull/8972)
28
+ - fix(Text): styles line break [#8973](https://github.com/fabricjs/fabric.js/pull/8973)
29
+ - fix(): regression to itext focusing from #8939 [#8970](https://github.com/fabricjs/fabric.js/pull/8970)
30
+ - ci(): warn build errors in dev mode [#8971](https://github.com/fabricjs/fabric.js/pull/8971)
31
+ - ci(): invoke tests after changelog action [#8974](https://github.com/fabricjs/fabric.js/pull/8974)
32
+ - chore(TS): Export more types [#8965](https://github.com/fabricjs/fabric.js/pull/8965)
33
+ - BREAKING: fabric.util.makeElementSelectable / fabric.util.makeElementUnselectable are removed [#8930](https://github.com/fabricjs/fabric.js/pull/8930)
34
+ - refactor(): Canvas DOM delegation to utility class [#8930](https://github.com/fabricjs/fabric.js/pull/8930)
35
+
36
+ ## [6.0.0-beta7]
37
+
38
+ - feat(): Export setFilterBackend and port the texture filtering option from fabric 5, exports some extra types [#8954](https://github.com/fabricjs/fabric.js/pull/8954)
39
+ - chore(): swap commonly used string with constants [#8933](https://github.com/fabricjs/fabric.js/pull/8933)
40
+ - chore(TS): Add more text types [#8941](https://github.com/fabricjs/fabric.js/pull/8941)
41
+ - ci(): fix changelog action race condition [#8949](https://github.com/fabricjs/fabric.js/pull/8949)
42
+ - ci(): automate PR changelog [#8938](https://github.com/fabricjs/fabric.js/pull/8938)
43
+ - chore(): move canvas click handler to TextManager [#8939](https://github.com/fabricjs/fabric.js/pull/8939)
44
+ - refactor(): write less bulky code [#8943](https://github.com/fabricjs/fabric.js/pull/8943)
45
+
46
+ ## [6.0.0-beta6]
47
+
48
+ - patch(): expose `Control#shouldActivate` [#8934](https://github.com/fabricjs/fabric.js/pull/8934)
49
+ - feat(Color) Improve regex for new standards, more documentation and code cleanup [#8916](https://github.com/fabricjs/fabric.js/pull/8916)
50
+ - fix(TS): extending canvas and object event types (`type` => `interface`) [#8926](https://github.com/fabricjs/fabric.js/pull/8926)
51
+ - chore(build) simple deps update [#8929](https://github.com/fabricjs/fabric.js/pull/8929)
52
+ - fix(Canvas): sync cleanup of dom elements in dispose [#8903](https://github.com/fabricjs/fabric.js/pull/8903)
53
+ - chore(TS): export util types [#8915](https://github.com/fabricjs/fabric.js/pull/8915)
54
+ - chore(TS): change enums with types [#8918](https://github.com/fabricjs/fabric.js/pull/8918)
55
+ - chore(TS): export gradient types
56
+ - chore(lint) export filter colors and brushes types [#8913](https://github.com/fabricjs/fabric.js/pull/8913)
57
+ - chore(lint) Add a rule for import type [#8907](https://github.com/fabricjs/fabric.js/pull/8907)
58
+ - fix(Object): dirty unflagging inconsistency [#8910](https://github.com/fabricjs/fabric.js/pull/8910)
59
+ - chore(TS): minor type/import fixes [#8904](https://github.com/fabricjs/fabric.js/pull/8904)
60
+ - chore(): Matrix util cleanup [#8894](https://github.com/fabricjs/fabric.js/pull/8894)
61
+ - chore(TS): pattern cleanup + export types [#8875](https://github.com/fabricjs/fabric.js/pull/8875)
62
+ - fix(): Disable offscreen check for bg and overlay when not needed [#8898](https://github.com/fabricjs/fabric.js/pull/8898)
63
+ - chore(): cleanup #8888 [#8892](https://github.com/fabricjs/fabric.js/pull/8892)
64
+ - feat(env): relative window/document, support iframe [#8897](https://github.com/fabricjs/fabric.js/pull/8897)
65
+ - docs(): add repo repro link to `bug_report.yml` [#8900](https://github.com/fabricjs/fabric.js/pull/8900)
66
+ - refactor(fabric.Line): Line position is calculated from the center between the 2 points now [#8877](https://github.com/fabricjs/fabric.js/pull/8877)
67
+ - chore(Path, Polyline): Clean up old SVG import code [#8857](https://github.com/fabricjs/fabric.js/pull/8857)
68
+
69
+ ## [6.0.0-beta5]
70
+
71
+ - refactor(): SVG loading and parsing functionality are now promises or async. Callback have been removed [#8884](https://github.com/fabricjs/fabric.js/pull/8884)
72
+ - refactor(fabric.Line): Line position is calculated from the center between the 2 points now [#8877](https://github.com/fabricjs/fabric.js/pull/8877)
73
+ - bundle(): export `setEnv` for test interoperability [#8888](https://github.com/fabricjs/fabric.js/pull/8888)
74
+
75
+ ## [6.0.0-beta4]
76
+
77
+ - chore(): Code cleanup and reuse of code in svg-parsing code [#8881](https://github.com/fabricjs/fabric.js/pull/8881)
78
+ - chore(TS): Parse transform attribute typing [#8878](https://github.com/fabricjs/fabric.js/pull/8878)
79
+ - chore(TS): Fix typing for DOMParser [#8871](https://github.com/fabricjs/fabric.js/pull/8871)
80
+ - fix(Path, Polyline): fix for SVG import [#8879](https://github.com/fabricjs/fabric.js/pull/8879)
81
+ - chore(TS) add types for loadSVGFromURl, parseSVGDocument, loadSVGFromString [#8869](https://github.com/fabricjs/fabric.js/pull/8869)
82
+ - chore(TS): finalize Path migration [#8438](https://github.com/fabricjs/fabric.js/pull/8438)
83
+ - fix(Path, Obect) Fix path parsing edge case for zeroed arc command and for too small canvas patterns [#8853](https://github.com/fabricjs/fabric.js/pull/8853)
84
+
85
+ ## [6.0.0-beta3]
86
+
87
+ - chore(TS): Path type fixes [#8842](https://github.com/fabricjs/fabric.js/pull/8842)
88
+ - fix(TS): add types to some untyped empty arrays [#8830](https://github.com/fabricjs/fabric.js/pull/8830)
89
+ - chore(TS): Complete typings for toObject/fromObject [#8756](https://github.com/fabricjs/fabric.js/pull/8756)
90
+ - fix(): text styles edge case [#8820](https://github.com/fabricjs/fabric.js/pull/8820)
91
+ - chore(TS): Group types [#8807](https://github.com/fabricjs/fabric.js/pull/8807)
92
+ - chore(TS): Path util typings and refactoring [#8787](https://github.com/fabricjs/fabric.js/pull/8787)
93
+ - rename(): `IPoint` => `XY` [#8806](https://github.com/fabricjs/fabric.js/pull/8806)
94
+ - ci(): use sandbox apps in issue template, use the current branch when deploying an app, minors [#8803](https://github.com/fabricjs/fabric.js/pull/8803)
95
+ - perf(): optimize `perPixelTargetFind` [#8770](https://github.com/fabricjs/fabric.js/pull/8770)
96
+ - BREAKING fix(): reflect NUM_FRACTION_DIGITS to SVG path data [#8782] (https://github.com/fabricjs/fabric.js/pull/8782)
97
+ - fix(IText): layout change regression caused by #8663 (`text` was changed but layout was skipped) [#8711](https://github.com/fabricjs/fabric.js/pull/8711)
98
+ - fix(IText, Textbox): fix broken text input [#8775](https://github.com/fabricjs/fabric.js/pull/8775)
99
+ - ci(): `.codesandbox` [#8135](https://github.com/fabricjs/fabric.js/pull/8135)
100
+ - ci(): disallow circular deps [#8759](https://github.com/fabricjs/fabric.js/pull/8759)
101
+ - fix(): env WebGL import cycle [#8758](https://github.com/fabricjs/fabric.js/pull/8758)
102
+ - chore(TS): remove controls from prototype. BREAKING: controls aren't shared anymore [#8753](https://github.com/fabricjs/fabric.js/pull/8753)
103
+ - chore(TS): remove object `type` from prototype [#8714](https://github.com/fabricjs/fabric.js/pull/8714)
104
+ - chore(TS): type Object props [#8677](https://github.com/fabricjs/fabric.js/issues/8677)
105
+ - chore(TS): remove default values from filter prototypes [#8742](https://github.com/fabricjs/fabric.js/issues/8742)
106
+ - chore(TS): remove default values from Objects prototypes, ( filters in a followup ) [#8719](https://github.com/fabricjs/fabric.js/issues/8719)
107
+ - fix(Intersection): bug causing selection edge case [#8735](https://github.com/fabricjs/fabric.js/pull/8735)
108
+ - chore(TS): class interface for options/brevity [#8674](https://github.com/fabricjs/fabric.js/issues/8674)
109
+ - ci(): fix import autocomplete in dev mode #8725
110
+ - chore(): remove deprecated class util [#8731](https://github.com/fabricjs/fabric.js/pull/8731)
111
+ - lint(): fix eslint errors [#8729](https://github.com/fabricjs/fabric.js/pull/8729)
112
+ - fix(TS): `this.constructor` types [#8675](https://github.com/fabricjs/fabric.js/issues/8675)
113
+ - fix(DraggableText): drag image blur [#8712](https://github.com/fabricjs/fabric.js/pull/8712)
114
+ - ci(): Fix tests for firefox 110 update [#8710](https://github.com/fabricjs/fabric.js/pull/8710)
115
+ - chore(): index files for exports and tree shaking [#8661](https://github.com/fabricjs/fabric.js/pull/8661)
116
+ - ci(test): cleanup node config (#8694 followup) [#8707](https://github.com/fabricjs/fabric.js/issues/8707)
117
+ - fix(): BREAKING set/discard active object return value, discard active object now return false if no discard happened [#8672](https://github.com/fabricjs/fabric.js/issues/8672)
118
+ - fix(): selection logic to support nested multiselection [#8665](https://github.com/fabricjs/fabric.js/issues/8665)
119
+ - fix(test): remove bad node config [#8694](https://github.com/fabricjs/fabric.js/issues/8694)
120
+ - fix(): keep browser files as .js [#8690](https://github.com/fabricjs/fabric.js/issues/8690)
121
+ - fix(): object dispose removes canvas/event refs [#8673](https://github.com/fabricjs/fabric.js/issues/8673)
122
+ - fix(test): Textbox `fromObject` test is incorrectly trying to restore an instance [#8686](https://github.com/fabricjs/fabric.js/pull/8686)
123
+ - TS(): Moved cache properties to static properties on classes [#xxxx](https://github.com/fabricjs/fabric.js/pull/xxxx)
124
+ - refactor(): Moved cache properties to static properties on classes [#8662](https://github.com/fabricjs/fabric.js/pull/8662)
125
+ - docs(): v6 announcements [#8664](https://github.com/fabricjs/fabric.js/issues/8664)
126
+ - ci(): remove TS transformer [#8660](https://github.com/fabricjs/fabric.js/pull/8660)
127
+ - refactor(): BREAKING remove stateful mixin and functionality [#8663](https://github.com/fabricjs/fabric.js/pull/8663)
128
+ - patch(): Added WebGLProbe to env, removed isLikelyNode, added specific env dispose ( instead of cleanup JSDOM ) [#8652](https://github.com/fabricjs/fabric.js/pull/8652)
129
+ - ci(): Removed the browser publish script [#8656](https://github.com/fabricjs/fabric.js/pull/8656)
130
+ - feat(): Node entry point [#8632](https://github.com/fabricjs/fabric.js/pull/8632)
131
+ - chore(): Change import and export strategy [#8622](https://github.com/fabricjs/fabric.js/pull/8622)
132
+ - chore(): rename files to modern style [#8621](https://github.com/fabricjs/fabric.js/pull/8621)
133
+ - chore(): move and rename text & itext files and organize as folders, rename mixins [#8620](https://github.com/fabricjs/fabric.js/pull/8620)
134
+ - chore(TS): type IText, IText behavior, IText click behavior [#8610](https://github.com/fabricjs/fabric.js/pull/8610)
135
+ - BREAKING: refactor `clone(obj, true)` with `cloneDeep(obj)` and remove all `extend`, `clone` calls in favor of object spreads. [#8600](https://github.com/fabricjs/fabric.js/pull/8600)
136
+ - chore(TS): Fix some error caused by ts-nocheck removals [#8615](https://github.com/fabricjs/fabric.js/pull/8615)
137
+ - refactor(IText): extract draggable text logic to a delegate [#8598](https://github.com/fabricjs/fabric.js/pull/8598)
138
+ - chore(TS): Update StaticCanvas to remove ts-nocheck [#8606](https://github.com/fabricjs/fabric.js/pull/8606)
139
+ - chore(TS): Update filters to remove ts-nocheck and added types where missing [#8609](https://github.com/fabricjs/fabric.js/pull/8609)
140
+ - chore(TS): Intersection class, finalize TS [#8603](https://github.com/fabricjs/fabric.js/pull/8603)
141
+ - chore(TS): Update Pattern to remove ts-nocheck and added types where missing [#8605](https://github.com/fabricjs/fabric.js/pull/8605)
142
+ - chore(TS): Followup for interactivy and controls migration to TS [#8404](https://github.com/fabricjs/fabric.js/pull/8404)
143
+ - refactor(IText): Fixes Draggable Text for retina and viewport transform #8534
144
+ - chore(TS): refactor canvas init, fix `_initRetinaScaling` regression #8520
145
+ - chore(TS): remove all remaining empty declarations [#8593](https://github.com/fabricjs/fabric.js/pull/8593)
146
+ - refactor(IText): modernize IText cursor animation based on animation API changes (and fix minor regression) plus leftovers from #8547 [#8583](https://github.com/fabricjs/fabric.js/pull/8583)
147
+ - refactor(Canvas, IText): Handle cross instance text editing states to an EditingManager class [#8543](https://github.com/fabricjs/fabric.js/pull/8543)
148
+ - chore(TS): move to export, babel, new rollup, change import statement for fabric. [#8585](https://github.com/fabricjs/fabric.js/pull/8585);
149
+ - chore(TS): Add declare in front of properties that are type definitions. [#8574](https://github.com/fabricjs/fabric.js/pull/8574)
150
+ - refactor(Animation): BREAKING: Animation api reduction and semplification (byValue is removed, '+=' syntax is removed, callbacks fired 100%) [#8547](https://github.com/fabricjs/fabric.js/pull/8547)
151
+ - feat(PolyControl): modify the shape of a poly with control points [#8556](https://github.com/fabricjs/fabric.js/pull/8556)
152
+ - BREAKING: remove Object.stateful and Object.statefulCache [#8573](https://github.com/fabricjs/fabric.js/pull/8573)
153
+ - fix(IText): refactor clearing context top logic of itext to align with brush pattern, using the canvas rendering cycle in order to guard from edge cases #8560
154
+ - fix(Canvas): `_initRetinaScaling` initializaing the scaling regardless of settings in Canvas. [#8565](https://github.com/fabricjs/fabric.js/pull/8565)
155
+ - fix(Canvas): regression of canvas migration with pointer and sendPointToPlane [#8563](https://github.com/fabricjs/fabric.js/pull/8563)
156
+ - chore(TS): Use exports from files to build fabricJS, get rid of HEADER.js [#8549](https://github.com/fabricjs/fabric.js/pull/8549)
157
+ - chore(): rm `fabric.filterBackend` => `getFilterBackend` [#8487](https://github.com/fabricjs/fabric.js/pull/8487)
158
+ - chore(TS): migrate text SVG export mixin [#8486](https://github.com/fabricjs/fabric.js/pull/8486)
159
+ - refactor(TS): `animate` and `AnimationRegistry` to classes [#8297](https://github.com/fabricjs/fabric.js/pull/8297)
160
+ BREAKING:
161
+ - return animation instance from animate instead of a cancel function and remove `findAnimationByXXX` from `AnimationRegistry`
162
+ - change `animateColor` signature to match `animate`, removed `colorEasing`
163
+ - fix(Object Stacking): 🔙 refactor logic to support Group 🔝
164
+ - chore(TS): migrate Group/ActiveSelection [#8455](https://github.com/fabricjs/fabric.js/pull/8455)
165
+ - chore(TS): Migrate smaller mixins to classes (dataurl and serialization ) [#8542](https://github.com/fabricjs/fabric.js/pull/8542)
166
+ - chore(TS): Convert Canvas events mixin and grouping mixin [#8519](https://github.com/fabricjs/fabric.js/pull/8519)
167
+ - chore(TS): Remove backward compatibility initialize methods [#8525](https://github.com/fabricjs/fabric.js/pull/8525/)
168
+ - chore(TS): replace getKlass utility with a registry that doesn't require full fabricJS to work [#8500](https://github.com/fabricjs/fabric.js/pull/8500)
169
+ - chore(): use context in static constructors [#8522](https://github.com/fabricjs/fabric.js/issues/8522)
170
+ - chore(TS): Convert Canvas class #8510
171
+ - chore(TS): Move object classes #8511
172
+ - chore(TS): polish text [#8489](https://github.com/fabricjs/fabric.js/pull/8489)
173
+ - chore(TS): fix import cycle, extract `groupSVGElements` [#8506](https://github.com/fabricjs/fabric.js/pull/8506)
174
+ - chore(TS): permissive `Point` typings [#8434](https://github.com/fabricjs/fabric.js/pull/8434)
175
+ - chore(TS): polish files [#8488](https://github.com/fabricjs/fabric.js/pull/8488)
176
+ - fix(TS): `EventSpec` recognition [#8497](https://github.com/fabricjs/fabric.js/pull/8497)
177
+ - chore(): rm dead code [#8493](https://github.com/fabricjs/fabric.js/pull/8493)
178
+ - fix(scaleObject): handle when scale is 0 to not bug flip [#8490](https://github.com/fabricjs/fabric.js/pull/8490)
179
+ - chore(TS): migrate StatiCanvas to TS [#8485](https://github.com/fabricjs/fabric.js/pull/8485)
180
+ - chore(): refactor `Object.__uid++` => `uid()` [#8482](https://github.com/fabricjs/fabric.js/pull/8482)
181
+ - chore(TS): migrate object mixins to TS [#8414](https://github.com/fabricjs/fabric.js/pull/8414)
182
+ - chore(TS): migrate filters [#8474](https://github.com/fabricjs/fabric.js/pull/8474)
183
+ - chore(TS): BaseBrush abstract methods [#8428](https://github.com/fabricjs/fabric.js/pull/8428)
184
+ - feat(): Add `createObjectDefaultControls` and `createTextboxDefaultControls` to create copies of control sets. [#8415](https://github.com/fabricjs/fabric.js/pull/8415)
185
+ - fix(PatternBrush): `getPatternSrc`, rm `getPatternSrcFunction` [#8468](https://github.com/fabricjs/fabric.js/pull/8468)
186
+ - chore(TS): more FabricObject typing [#8405](https://github.com/fabricjs/fabric.js/pull/8405)
187
+ - chore(TS): Observable types [#8431](https://github.com/fabricjs/fabric.js/pull/8431)
188
+ - chore(TS): migrate Group/ActiveSelection [#8455](https://github.com/fabricjs/fabric.js/pull/8455)
189
+ - fix(TS): migration error of itext key mixin (#8421) [#8457](https://github.com/fabricjs/fabric.js/pull/8457)
190
+ - chore(TS): migrate text classes/mixins [#8421](https://github.com/fabricjs/fabric.js/pull/8421)
191
+ - chore(TS): migrate Image [#8443](https://github.com/fabricjs/fabric.js/pull/8443)
192
+ - chore(TS): migrate Shadow [#8462](https://github.com/fabricjs/fabric.js/pull/8462)
193
+ - fix(Itext): show incorrect pointer position after scale changed
194
+ - chore(TS): migrate text classes/mixins [#8408](https://github.com/fabricjs/fabric.js/pull/8408)
195
+ - chore(TS): migrate Collection [#8433](https://github.com/fabricjs/fabric.js/pull/8433)
196
+ - ci(): Simplify filestats even more [#8449](https://github.com/fabricjs/fabric.js/pull/8449)
197
+ - chore(TS): migrate filter backends [#8403](https://github.com/fabricjs/fabric.js/pull/8403)
198
+ - chore(TS): migrate Text classes/mixins [#8408](https://github.com/fabricjs/fabric.js/pull/8408)
199
+ - chore(TS): migrate Path [#8412](https://github.com/fabricjs/fabric.js/pull/8412)
200
+ - ci(): remove unwanted build stats (from [#8395](https://github.com/fabricjs/fabric.js/pull/8395)) [#8416](https://github.com/fabricjs/fabric.js/pull/8416)
201
+ - chore(TS): migrate Line [#8413](https://github.com/fabricjs/fabric.js/pull/8413)
202
+ - chore(TS): migrate Polyline/Polygon [#8417](https://github.com/fabricjs/fabric.js/pull/8417)
203
+ - chore(TS): migrate Rect [#8411](https://github.com/fabricjs/fabric.js/pull/8411)
204
+ - chore(TS): migrate Ellipse [#8408](https://github.com/fabricjs/fabric.js/pull/8408)
205
+ - chore(TS): migrate Triangle to TS [#8410](https://github.com/fabricjs/fabric.js/pull/8410)
206
+ - chore(TS): migrate Circle to TS [#8406](https://github.com/fabricjs/fabric.js/pull/8406)
207
+ - chore(TS): convert Object interactivity mixin to its own class [#8401](https://github.com/fabricjs/fabric.js/pull/8401)
208
+ - chore(TS): Convert controls e6/ts [#8400](https://github.com/fabricjs/fabric.js/pull/8400)
209
+ - ci(): remove buggy changelog action in favor of `git diff` bash script + direct git how to merge `CHANGELOG.md` [#8309](https://github.com/fabricjs/fabric.js/pull/8346)
210
+ - fix(): skewing controls accuracy + successive interactions [#8380](https://github.com/fabricjs/fabric.js/pull/8380)
211
+ - chore(TS): Convert Geometry and Origin to classes/e6/ts [#8390](https://github.com/fabricjs/fabric.js/pull/8390)
212
+ - ci(): build stats report [#8395](https://github.com/fabricjs/fabric.js/pull/8395)
213
+ - chore(TS): convert object to es6 class [#8322](https://github.com/fabricjs/fabric.js/pull/8322)
214
+ - docs(): guides follow up, feature request template [#8379](https://github.com/fabricjs/fabric.js/pull/8379)
215
+ - docs(): refactor guides, bug report template [#8189](https://github.com/fabricjs/fabric.js/pull/8189)
216
+ - BREAKING fix(polyline/polygon): stroke bounding box for all line join/cap cases [#8344](https://github.com/fabricjs/fabric.js/pull/8344)
217
+ BREAKING: `_setPositionDimensions` was removed in favor of `setDimensions`
218
+ - test(): Added 2 tests for polygon shapes and transforms with translations [#8370](https://github.com/fabricjs/fabric.js/pull/8370)
219
+ - fix(textStyles): Handle style objects with only a textBackgroundColor property in stylesToArray [#8365](https://github.com/fabricjs/fabric.js/pull/8365)
220
+ - chore(): fix typos in intersection file [#8345](https://github.com/fabricjs/fabric.js/pull/8345)
221
+ - fix(textStyles): Handle empty style object in stylesToArray [#8357](https://github.com/fabricjs/fabric.js/pull/8357)
222
+ - ci(build): safeguard concurrent unlocking [#8309](https://github.com/fabricjs/fabric.js/pull/8309)
223
+ - ci(): update stale bot [#8307](https://github.com/fabricjs/fabric.js/pull/8307)
224
+ - ci(test): await golden generation in visual tests [#8284](https://github.com/fabricjs/fabric.js/pull/8284)
225
+ - ci(): Add a pipeline check for verifying that CHANGELOG.md has been updated [#8302](https://github.com/fabricjs/fabric.js/pull/8302)
226
+ - BREAKING feat(fabric.IText) rename data-fabric-hiddentextarea to data-fabric with value textarea
227
+ - ci(): adds a lock file to the repo when build is in progress, makes local testing wait for the build to complete [#8290](https://github.com/fabricjs/fabric.js/pull/8290)
228
+ - fix(`WebGLProbe`): regression caused by [#8199](https://github.com/fabricjs/fabric.js/pull/8199), [#8301](https://github.com/fabricjs/fabric.js/pull/8301)
229
+ - fix(fabric.utils) added missing import in dom_misc [#8293](https://github.com/fabricjs/fabric.js/pull/8293)
230
+ - fix(Object): `extraParam` should not be passed to options [#8295](https://github.com/fabricjs/fabric.js/pull/8295)
231
+ - test(): add `globalCompositeOperation` tests [#8271](https://github.com/fabricjs/fabric.js/pull/8271)
232
+ - fix(): use `sendObjectToPlane` in `mergeClipPaths` [#8247](https://github.com/fabricjs/fabric.js/pull/8247)
233
+ - chore(): prettify all source code [#8276](https://github.com/fabricjs/fabric.js/pull/8276)
234
+ - chore(lint): disallow `Math.hypot`, `window`, `document` [#8277](https://github.com/fabricjs/fabric.js/pull/8277)
235
+ - ci(): Add node18 and add a check for prettier [#8275](https://github.com/fabricjs/fabric.js/pull/8275)
236
+ - ci(test): suite fixes for browser [#8176](https://github.com/fabricjs/fabric.js/pull/8176)
237
+ - ci(): install prettier [#8242](https://github.com/fabricjs/fabric.js/pull/8242)
238
+ - ci(): migrate scripts to es6 modules [#8266](https://github.com/fabricjs/fabric.js/pull/8266)
239
+ - BREAKING refactor(util): remove lang_array since there are no more use cases [#8274](https://github.com/fabricjs/fabric.js/pull/8274)
240
+ - chore(TS): migrate `Pattern` [#8255](https://github.com/fabricjs/fabric.js/pull/8255)
241
+ - ci(): add source-map-support for testing [#8248](https://github.com/fabricjs/fabric.js/pull/8248)
242
+ - ci(): file cleanup [#8254](https://github.com/fabricjs/fabric.js/pull/8254)
243
+ - ci(): fix test global error handlers [#8267](https://github.com/fabricjs/fabric.js/pull/8267)
244
+ - fix(fabric.Canvas): dispose and request animation frame scheduling fix [#8220](https://github.com/fabricjs/fabric.js/pull/8220)
245
+ - ci(test): fix golden creation from browser [#8270](https://github.com/fabricjs/fabric.js/pull/8270)
246
+ - BREAKING refactor(util): `boundingBoxFromPoints`, removed transform [#8269](https://github.com/fabricjs/fabric.js/pull/8269)
247
+ - ci(): reintroduce node 14 testing [#8232](https://github.com/fabricjs/fabric.js/pull/8232)
248
+ - chore(TS): finish converting utils [#8230](https://github.com/fabricjs/fabric.js/pull/8230)
249
+ - test(): Add extensive coverage for mergeClipPath [#8245](https://github.com/fabricjs/fabric.js/pull/8245)
250
+ - ci() Nicer names for GHA [#8235](https://github.com/fabricjs/fabric.js/pull/8235)
251
+ - Update tests.yml
252
+ - ci(): consolidate test workflows [#8227](https://github.com/fabricjs/fabric.js/pull/8227)
253
+ - chore(TS): BREAKING: `populateWithProperties` => `pick` [#8202](https://github.com/fabricjs/fabric.js/pull/8202)
254
+ - chore(TS): extract `initFilterBackend` from HEADER [#8199](https://github.com/fabricjs/fabric.js/pull/8199)
255
+ - chore(TS): extract caches from HEADER [#8198](https://github.com/fabricjs/fabric.js/pull/8198)
256
+ - Chore(TS): migrate Intersection [#8121](https://github.com/fabricjs/fabric.js/pull/8121)
257
+ - chore(TS): es6 for util/path.ts and more utils converted [#8201](https://github.com/fabricjs/fabric.js/pull/8201)
258
+ - fix(ci): report build script failure + fix missing logs [#8188](https://github.com/fabricjs/fabric.js/pull/8188)
259
+ - fix(): update window => fabric.window [#8209](https://github.com/fabricjs/fabric.js/pull/8209)
260
+ - chore(TS): extract const `reNonWord` from HEADER [#8197](https://github.com/fabricjs/fabric.js/pull/8197)
261
+ - chore(TS): extract config values in its own module [#8194](https://github.com/fabricjs/fabric.js/pull/8194)
262
+ - ci(): update code coverage action comment [#8205](https://github.com/fabricjs/fabric.js/pull/8205)
263
+ - fix(fabric.Gradient): Guard against deep mutation on svg export for color exports [#8196](https://github.com/fabricjs/fabric.js/pull/8196)
264
+ - chore(TS): migrate gradient [#8154](https://github.com/fabricjs/fabric.js/pull/8154)
265
+ - Chore(TS): Convert more utilities [#8193](https://github.com/fabricjs/fabric.js/pull/8193)
266
+ - docs(CONTRIBUTING): fix typo [#8191](https://github.com/fabricjs/fabric.js/pull/8191)
267
+ - chore(TS): move control files under `controls` folder [#8185](https://github.com/fabricjs/fabric.js/pull/8185)
268
+ - chore(TS): `ElementsParser` => `parser/ElementsParser` [#8183](https://github.com/fabricjs/fabric.js/pull/8183)
269
+ - dep(): fabric.console [#8184](https://github.com/fabricjs/fabric.js/pull/8184)
270
+ - chore(TS) convert more utils [#8180](https://github.com/fabricjs/fabric.js/pull/8180)
271
+ - chore(TS): migrate brushes [#8182](https://github.com/fabricjs/fabric.js/pull/8182)
272
+ - fix(): propagate failed exit code to the process [#8187](https://github.com/fabricjs/fabric.js/pull/8187)
273
+ - fix(): regain focus on mouse move [#8179](https://github.com/fabricjs/fabric.js/pull/8179)
274
+ - chore(TS): read fabric version from package.json
275
+ - ci(test): migrate test cmd [#8138](https://github.com/fabricjs/fabric.js/pull/8138)
276
+ - chore(TS): Move more utils to TS [#8164](https://github.com/fabricjs/fabric.js/pull/8164)
277
+ - chore(TS): more conversion of utils [#8148](https://github.com/fabricjs/fabric.js/pull/8148)
278
+ - chore(): Update package.json contributors [#8157](https://github.com/fabricjs/fabric.js/pull/8157)
279
+ - docs(contributing): rework [#8158](https://github.com/fabricjs/fabric.js/pull/8158)
280
+ - fix(): add pointer data to drop event [#8156](https://github.com/fabricjs/fabric.js/pull/8156)
281
+ - chore(TS): prepare for gradient migration [#8155](https://github.com/fabricjs/fabric.js/pull/8155)
282
+ - docs(Collection): JSDOC fix `item` return type [#8152](https://github.com/fabricjs/fabric.js/pull/8152)
283
+ - chore(ts): Convert some utils [#8123](https://github.com/fabricjs/fabric.js/pull/8123)
284
+ - chore(TS): Migrate Circle to es6/ts
285
+ - chore(TS): migrate parser [#8122](https://github.com/fabricjs/fabric.js/pull/8122)
286
+ - fix(TS): color merge conflict [#8133](https://github.com/fabricjs/fabric.js/pull/8133)
287
+ - chore(TS): migrate Point to es6 class and update references. Deprecate xxxEquals methods [#8120](https://github.com/fabricjs/fabric.js/pull/8120)
288
+ - Chore(TS) Rect to Es6, remove global scope function. [#8118](https://github.com/fabricjs/fabric.js/pull/8118)
289
+ - chore(TS): Color [#8115](https://github.com/fabricjs/fabric.js/pull/8115)
290
+ - chore(TS): prepare for Color migration [#8116](https://github.com/fabricjs/fabric.js/pull/8116)
291
+ - ci(): adapt build script to rollup [#8114](https://github.com/fabricjs/fabric.js/pull/8114)
292
+ - fix(): Delegate toJson to toObject properly and fix tests [#8111](https://github.com/fabricjs/fabric.js/pull/8111)
293
+ - chore(TS): convert file ext [#8108](https://github.com/fabricjs/fabric.js/pull/8108)
294
+ - ci(scripts) patch [#8102](https://github.com/fabricjs/fabric.js/pull/8102)
295
+ - ci(): switch the old custom build for rollup [#8013](https://github.com/fabricjs/fabric.js/pull/8013)
296
+ - feat(IText): Draggable text [#7802](https://github.com/fabricjs/fabric.js/pull/7802)
297
+ - feat(Text): condensed styles structure v6 [#8006](https://github.com/fabricjs/fabric.js/pull/8006)
298
+ - feat(): on `discardActiveObject` interrupt current transform. Also add a method to interrupt current transform programmatically [#7954](https://github.com/fabricjs/fabric.js/pull/7954)
299
+ - fix(fabric.StaticCanvas): imageSmoothing setter for node-cavas special case [#8032](https://github.com/fabricjs/fabric.js/pull/8032)
300
+ - feat(): support aborting loading resources that requires network calls (promises/requests) [#7827](https://github.com/fabricjs/fabric.js/pull/7827)
301
+ - fix(fabric.IText) wrong typeof syntax [#8023](https://github.com/fabricjs/fabric.js/pull/8023)
302
+ - ci(typescript): transformer [#8020](https://github.com/fabricjs/fabric.js/pull/8020)
303
+ - fix(canvas): clear transform event caching on resize [#8021](https://github.com/fabricjs/fabric.js/pull/8021)
304
+ - fix(fabric.Canvas): `mouseout` bug [#8011](https://github.com/fabricjs/fabric.js/pull/8011)
305
+ - refactor(object_interactivity): draw operation for borders can be overriden [#7932](https://github.com/fabricjs/fabric.js/pull/7932)
306
+ - feat(Group,canvas): remove canvas from object before firing removed event, filter insertAt for group
307
+ - tests(): fix the visual test loop to work again on fabricjs.com [#8007](https://github.com/fabricjs/fabric.js/pull/8007)
308
+ - fix(Group): 🛠️ layout, angle and origin ⚡ [#8004](https://github.com/fabricjs/fabric.js/pull/8004)
309
+ - chore(): move away from extend/clone [#8001](https://github.com/fabricjs/fabric.js/pull/8001)
310
+ - fix(Canvas): flipped viewport transform coords [#7515](https://github.com/fabricjs/fabric.js/pull/7515)
311
+ - fix(): cleanup merge conflict resolution artifact [#7956](https://github.com/fabricjs/fabric.js/pull/7956)
312
+ - fix(Group): part 2 minors changes [#7916](https://github.com/fabricjs/fabric.js/pull/7916)
313
+ - feat(fabric.Image.filter): Alpha support for Invert filter [#7933](https://github.com/fabricjs/fabric.js/pull/7933)
314
+ - fix(EraserBrush): visual trace while erasing [#7991](https://github.com/fabricjs/fabric.js/pull/7991)
315
+ - fix(Point): safeguard initialization [#7961](https://github.com/fabricjs/fabric.js/pull/7961)
316
+ - fix(Textbox): flipped `changeWidth` control behavior [#7980](https://github.com/fabricjs/fabric.js/pull/7980)
317
+ - test(): remove deleted event from test name [#7992](https://github.com/fabricjs/fabric.js/pull/7992)
318
+ - feat(observable): BREAKING return disposer instead of context for chaining [#7994](https://github.com/fabricjs/fabric.js/pull/7994)
319
+ - fix(util): `setStyle` exception [#7869](https://github.com/fabricjs/fabric.js/pull/7869)
320
+ - test(freedrawing): test enhancement [#7941](https://github.com/fabricjs/fabric.js/pull/7941)
321
+ - Cleanup README.md [#7947](https://github.com/fabricjs/fabric.js/pull/7947)
322
+ - ci() update uglifyjs [#7939](https://github.com/fabricjs/fabric.js/pull/7939)
323
+ - fix(): assigning canvas for collections [#7934](https://github.com/fabricjs/fabric.js/pull/7934)
324
+ - fix(EraserBrush): use rendered objects for pattern [#7938](https://github.com/fabricjs/fabric.js/pull/7938)
325
+ - fix(v6): 4th PR of Group Rewrite 🎛️ nested controls 😜 [#7861](https://github.com/fabricjs/fabric.js/pull/7861)
326
+ - feat(path): `getRegularPolygonPath` [#7918](https://github.com/fabricjs/fabric.js/pull/7918)
327
+ - fix(canvas export): regression caused by safegurading [#7907](https://github.com/fabricjs/fabric.js/pull/7907)
328
+ - ci(): fix build script option exclude [#7915](https://github.com/fabricjs/fabric.js/pull/7915)
329
+ - feat(Group): 2nd Patch of New Group! 🎉 [#7859](https://github.com/fabricjs/fabric.js/pull/7859)
330
+ - chore(ci): rename option [#7875](https://github.com/fabricjs/fabric.js/pull/7875)
331
+ - fix(Canvas): `dispose` race condition [#7885](https://github.com/fabricjs/fabric.js/pull/7885)
332
+ - Update funding.yml include Shachar and Steve
333
+ - feat(Group): Change group code, adapt the rest around it [#7858](https://github.com/fabricjs/fabric.js/pull/7858)
334
+ - chore(): PR template [#7857](https://github.com/fabricjs/fabric.js/pull/7857)
335
+ - fix(Canvas): safeguard canvas add [#7866](https://github.com/fabricjs/fabric.js/pull/7866)
336
+ - fix(fabric.Text): support text alignments in RTL text [#7674](https://github.com/fabricjs/fabric.js/pull/7674)
337
+ - chore(canvas): minor cleanup [#7851](https://github.com/fabricjs/fabric.js/pull/7851)
338
+ - docs(): fix typo, fix JSDOC for website, minors [#7853](https://github.com/fabricjs/fabric.js/pull/7853)
339
+ - fix(Canvas): safeguard dispose [#7775](https://github.com/fabricjs/fabric.js/pull/7775)
340
+ - fix(Polyline): safegurad \_setPositionDimensions [#7850](https://github.com/fabricjs/fabric.js/pull/7850)
341
+ - feat(ci): CLI logging and `filter` option [#7844](https://github.com/fabricjs/fabric.js/pull/7844)
342
+ - fix(itext): stop cursor on blur [#7784](https://github.com/fabricjs/fabric.js/pull/7784)
343
+ - fix(itext): `set` during text editing [#7837](https://github.com/fabricjs/fabric.js/pull/7837)
344
+ - fix(Canvas): Safeguard from multiple initialization [#7776](https://github.com/fabricjs/fabric.js/pull/7776)
345
+ - feat(): fire `contextmenu` event [#7714](https://github.com/fabricjs/fabric.js/pull/7714)
346
+ - docs(Text): add proper type for GraphemeBBox [#7834](https://github.com/fabricjs/fabric.js/pull/7834)
347
+ - chore(): create an alias for getSelectionContext as `getTopContext` [#7711](https://github.com/fabricjs/fabric.js/pull/7711)
348
+ - fix(EraserBrush): inverted erasing [#7689](https://github.com/fabricjs/fabric.js/pull/7689)
349
+ - fix(ci): CLI `debug` and `recreate` options [#7833](https://github.com/fabricjs/fabric.js/pull/7833)
350
+ - feat(ci): better cli [#7825](https://github.com/fabricjs/fabric.js/pull/7825)
351
+ - feat(fabric.util.animation): add delay option [#7805](https://github.com/fabricjs/fabric.js/pull/7805)
352
+ - chore(): Update bug report templates [#7790](https://github.com/fabricjs/fabric.js/pull/7790)
353
+ - fix(Textbox): expose methods for overrides + fix resize filckering [#7806](https://github.com/fabricjs/fabric.js/pull/7806)
354
+ - fix(fabric.Canvas): canvas export, force retina scaling >= 1
355
+ - fix(itext_key_behavior.mixin.js): typo [#7816](https://github.com/fabricjs/fabric.js/pull/7816)
356
+ - feat(): dataURL export - filter objects [#7788](https://github.com/fabricjs/fabric.js/pull/7788)
357
+ - feat(util): transform utils [#7614](https://github.com/fabricjs/fabric.js/pull/7614)
358
+ - chore/fix(v6): prerequisites for Group [#7728](https://github.com/fabricjs/fabric.js/pull/7728)
359
+ - tests() adding an extra controls test where the group are transformed [#7736](https://github.com/fabricjs/fabric.js/pull/7736)
360
+ - chore(): Group prerequisite minor refactor object_origin
361
+ - fix(): ensure scaling factor is positive for strokeUniform [#7729](https://github.com/fabricjs/fabric.js/pull/7729)
362
+ - MAJOR chore(v6): neutral prerequisites for fabric.Group rework [#7726](https://github.com/fabricjs/fabric.js/pull/7726)
363
+ - fix(): add `eraser` to Object state/cache props [#7720](https://github.com/fabricjs/fabric.js/pull/7720)
364
+ - feat(Object.isType): accept multiple `type` [#7715](https://github.com/fabricjs/fabric.js/pull/7715)
365
+ - MAJOR feat(fabric.Point): divide, scalarDivide, scalarDivideEquals [`#7716`](https://github.com/fabricjs/fabric.js/pull/7716)
366
+ - MAJOR feat(): Reuse fabric.Point logic for scaling and naming consistency [`#7710`](https://github.com/fabricjs/fabric.js/pull/7710)
367
+ - feat(Canvas#getCenter): migrate to `getCenterPoint` [`#7699`](https://github.com/fabricjs/fabric.js/pull/7699)
368
+ - MAJOR feat(fabric) remove callbacks in for Promise support [`#7657`](https://github.com/fabricjs/fabric.js/pull/7657)
369
+ - chore(): BREAKING Cleanup fabric.Point for v6 [#7709](https://github.com/fabricjs/fabric.js/pull/7709) [`7e563c7`](https://github.com/fabricjs/fabric.js/commit/7e563c72164070aafb03043643e85d06d0dee32c)
370
+
371
+ ## [5.2.1]
372
+
373
+ - fix(): add `eraser` to Object state/cache props [`#7720`](https://github.com/fabricjs/fabric.js/pull/7720)
374
+
375
+ ## [5.2.0]
376
+
377
+ - feat(fabric.Object): isType accepts multiple `type` [`#7715`](https://github.com/fabricjs/fabric.js/pull/7715)
378
+ - chore(): Replace deprecated String.prototype.substr() with Array.prototype.slice() [`#7696`](https://github.com/fabricjs/fabric.js/pull/7696)
379
+ - chore(): use Array.isArray instead of ie6+ workarounds [`#7718`](https://github.com/fabricjs/fabric.js/pull/7718)
380
+ - MINOR: feat(fabric.Canvas): add `getTopContext` method to expose the internal contextTop [`#7697`](https://github.com/fabricjs/fabric.js/pull/7697)
381
+ - fix(fabric.Object) Add cacheContext checks before trying to render on cache [`#7694`](https://github.com/fabricjs/fabric.js/pull/7694)
382
+ - tests(): node test suite enhancement [`#7691`](https://github.com/fabricjs/fabric.js/pull/7691)
383
+ - feat(Canvas#getCenter): migrate to `getCenterPoint` [`#7699`](https://github.com/fabricjs/fabric.js/pull/7699)
384
+ - updated package.json [`803ce95`](https://github.com/fabricjs/fabric.js/commit/803ce95878150fba9e4195804bccae9bcfe45c6d)
385
+ - tests(fabric.animation): fix test reliability [`4be0fb9`](https://github.com/fabricjs/fabric.js/commit/4be0fb9903e15db294b89030feb645e5da766740)
386
+
3
387
  ## [5.1.0]
4
388
 
5
389
  - build(deps): bump node-fetch from 2.6.6 to 2.6.7 [`#7684`](https://github.com/fabricjs/fabric.js/pull/7684)
@@ -25,7 +409,7 @@
25
409
  - feat(fabric.EraserBrush): support `inverted` option to undo erasing [#7470](https://github.com/fabricjs/fabric.js/pull/7470)
26
410
  - fix(fabric.EraserBrush): fix doubling opaic objects while erasing [#7445](https://github.com/fabricjs/fabric.js/issues/7445) [#7470](https://github.com/fabricjs/fabric.js/pull/7470)
27
411
  - **BREAKING**: fabric.EraserBrush: The Eraser object is now a subclass of Group. This means that loading from JSON will break between versions.
28
- Use this [code](https://gist.github.com/ShaMan123/6c5c4ca2cc720a2700848a2deb6addcd) to transform your json payload to the new version.
412
+ Use this [code](https://gist.github.com/ShaMan123/6c5c4ca2cc720a2700848a2deb6addcd) to transform your json payload to the new version.
29
413
  - feat(fabric.Canvas): fire an extra mouse up for the original control of the initial target [`#7612`](https://github.com/fabricjs/fabric.js/pull/7612)
30
414
  - fix(fabric.Object) bounding box display with skewY when outside group [`#7611`](https://github.com/fabricjs/fabric.js/pull/7611)
31
415
  - fix(fabric.text) fix rtl/ltr performance issues [`#7610`](https://github.com/fabricjs/fabric.js/pull/7610)
@@ -38,7 +422,7 @@ Use this [code](https://gist.github.com/ShaMan123/6c5c4ca2cc720a2700848a2deb6add
38
422
  - **BREAKING**: Deps(): MAJOR update to jsdom 19 node 14 [`#7587`](https://github.com/fabricjs/fabric.js/pull/7587)
39
423
  - Fix(): JSDOM transative vulnerability [`#7510`](https://github.com/fabricjs/fabric.js/pull/7510)
40
424
  - fix(fabric.parser): attempt to resolve some issues with regexp [`#7520`](https://github.com/fabricjs/fabric.js/pull/7520)
41
- - fix(fabric.IText) fix for possible error on copy paste [`#7526`](https://github.com/fabricjs/fabric.js/pull/7526)
425
+ - fix(fabric.IText) fix for possible error on copy paste [`#7526`](https://github.com/fabricjs/fabric.js/pull/7526)
42
426
  - fix(fabric.Path): Path Distance Measurement Inconsistency [`#7511`](https://github.com/fabricjs/fabric.js/pull/7511)
43
427
  - Fix(fabric.Text): Avoid reiterating measurements when width is 0 and measure also empty lines for consistency. [`#7497`](https://github.com/fabricjs/fabric.js/pull/7497)
44
428
  - fix(fabric.Object): stroke bounding box [`#7478`](https://github.com/fabricjs/fabric.js/pull/7478)
@@ -53,7 +437,6 @@ Use this [code](https://gist.github.com/ShaMan123/6c5c4ca2cc720a2700848a2deb6add
53
437
  - docs(): specify default value and docs for enablePointerEvents [`#7386`](https://github.com/fabricjs/fabric.js/pull/7386)
54
438
  - feat(fabric.PencilBrush): add an option to draw a straight line while pressing a key [`#7034`](https://github.com/fabricjs/fabric.js/pull/7034)
55
439
 
56
-
57
440
  ## [4.6.0]
58
441
 
59
442
  - feat(fabric.util): added fabric.util.transformPath to add transformations to path points [#7300](https://github.com/fabricjs/fabric.js/pull/7300)
@@ -72,7 +455,7 @@ Use this [code](https://gist.github.com/ShaMan123/6c5c4ca2cc720a2700848a2deb6add
72
455
  - fix(EraserBrush) force fill value [#7269](https://github.com/fabricjs/fabric.js/pull/7269)
73
456
  - fix(fabric.StaticCanvas) properly remove objects on canvas.clear [#6937](https://github.com/fabricjs/fabric.js/pull/6937)
74
457
  - feat(fabric.EraserBrush): improved erasing:end event [#7258](https://github.com/fabricjs/fabric.js/pull/7258)
75
- - fix(shapes): fabric.Object._fromObject never should return [#7201](https://github.com/fabricjs/fabric.js/pull/7201)
458
+ - fix(shapes): fabric.Object.\_fromObject never should return [#7201](https://github.com/fabricjs/fabric.js/pull/7201)
76
459
  - feat(fabric.filters) Added vibrance filter (for increasing saturation of muted colors) [#7189](https://github.com/fabricjs/fabric.js/pull/7189)
77
460
  - fix(fabric.StaticCanvas): restore canvas size when disposing [#7181](https://github.com/fabricjs/fabric.js/pull/7181)
78
461
  - feat(fabric.util): added `convertPointsToSVGPath` that will convert from a list of points to a smooth curve. [#7140](https://github.com/fabricjs/fabric.js/pull/7140)
@@ -115,7 +498,7 @@ Use this [code](https://gist.github.com/ShaMan123/6c5c4ca2cc720a2700848a2deb6add
115
498
  - fix(fabric.Image): Cache CropX and CropY cache properties [#6924](https://github.com/fabricjs/fabric.js/pull/6924)
116
499
  - fix(fabric.Canvas): Add target to each selection event [#6858](https://github.com/fabricjs/fabric.js/pull/6858)
117
500
  - fix(fabric.Image): fix wrong scaling value for the y axis in renderFill [#6778](https://github.com/fabricjs/fabric.js/pull/6778)
118
- - fix(fabric.Canvas): set isMoving on real movement only [#6856](https://github.com/fabricjs/fabric.js/pull/6856)
501
+ - fix(fabric.Canvas): set isMoving on real movement only [#6856](https://github.com/fabricjs/fabric.js/pull/6856)
119
502
  - fix(fabric.Group) make addWithUpdate compatible with nested groups [#6774](https://github.com/fabricjs/fabric.js/pull/6774)
120
503
  - fix(Fabric.Text): Add path to text export and import [#6844](https://github.com/fabricjs/fabric.js/pull/6844)
121
504
  - fix(fabric.Canvas) Remove controls check in the pixel accuracy target [#6798](https://github.com/fabricjs/fabric.js/pull/6798)
@@ -139,7 +522,7 @@ Use this [code](https://gist.github.com/ShaMan123/6c5c4ca2cc720a2700848a2deb6add
139
522
  - fix(fabric.Text): improve compatibility with transformed gradients [#6669](https://github.com/fabricjs/fabric.js/pull/6669)
140
523
  - feat(fabric.Text): Add ability to put text on paths BETA [#6543](https://github.com/fabricjs/fabric.js/pull/6543)
141
524
  - fix(fabric.Canvas): rotation handle should take origin into account [#6686](https://github.com/fabricjs/fabric.js/pull/6686)
142
- - fix(fabric.Text): Text on path, fix non linear distance of chars over path [#6671](https://github.com/fabricjs/fabric.js/pull/6671)
525
+ - fix(fabric.Text): Text on path, fix non linear distance of chars over path [#6671](https://github.com/fabricjs/fabric.js/pull/6671)
143
526
 
144
527
  ## [4.2.0]
145
528
 
@@ -148,6 +531,7 @@ Use this [code](https://gist.github.com/ShaMan123/6c5c4ca2cc720a2700848a2deb6add
148
531
  - added: feat(fabric.controlsUtils): Fire resizing event for textbox width [#6545](https://github.com/fabricjs/fabric.js/pull/6545)
149
532
 
150
533
  ## [4.1.0]
534
+
151
535
  - feat(Brushes): add beforePathCreated event [#6492](https://github.com/fabricjs/fabric.js/pull/6492);
152
536
  - feat(fabric.Path): Change the way path is parsed and drawn. simplify path at parsing time [#6504](https://github.com/fabricjs/fabric.js/pull/6504);
153
537
  - feat(fabric.Path): Simplify S and T command in C and Q. [#6507](https://github.com/fabricjs/fabric.js/pull/6507);
@@ -159,12 +543,14 @@ Use this [code](https://gist.github.com/ShaMan123/6c5c4ca2cc720a2700848a2deb6add
159
543
  - fix(fabric.Object): when in groups or active groups, fix the ability to shift deselect [#6541](https://github.com/fabricjs/fabric.js/pull/6541);
160
544
 
161
545
  ## [4.0.0]
546
+
162
547
  - fixed the gesture module to not break with 4.0 [#6491](https://github.com/fabricjs/fabric.js/pull/6491);
163
548
  - fix(fabric.IText): copy style in non full mode when typing text [#6454](https://github.com/fabricjs/fabric.js/pull/6454);
164
549
  - feat(fabric.Controls) expose the extra utils for control handling.
165
- Breaking: rename fabric.controlHandlers and fabric.controlRenderers to fabric.controlsUtils.
550
+ Breaking: rename fabric.controlHandlers and fabric.controlRenderers to fabric.controlsUtils.
166
551
 
167
552
  ## [4.0.0-rc.1]
553
+
168
554
  - fix(fabric.Canvas): ISSUE-6314 rerender in case of drag selection that select a single oobject. [#6421](https://github.com/fabricjs/fabric.js/pull/6421);
169
555
  - feat(text): allow correct cursor/selection position if text is edited inside a group. [#6256](https://github.com/fabricjs/fabric.js/pull/6256);
170
556
  - feat(fabric.Control): remove position option in favor of x and y [#6415](https://github.com/fabricjs/fabric.js/pull/6415);
@@ -175,11 +561,13 @@ Breaking: rename fabric.controlHandlers and fabric.controlRenderers to fabric.co
175
561
  - Breaking: fabric.Control constructor does not accept anymore a position object, but 2 properties, x and y.
176
562
 
177
563
  ## [4.0.0-beta.12]
564
+
178
565
  - fix(fabric.IText): respect value of `cursorColor` [#6300](https://github.com/fabricjs/fabric.js/pull/6300);
179
566
  - fix(fabric.Textbox): Improve splitByGrapheme and charSpacing [#6298](https://github.com/fabricjs/fabric.js/pull/6298);
180
567
  - feat(controls): Reintroduce flip by scaling and lockScalingFlip [#6313](https://github.com/fabricjs/fabric.js/pull/6313);
181
568
 
182
569
  ## [4.0.0-beta.11]
570
+
183
571
  - fix(itext): improved style handling for new lines [#6268](https://github.com/fabricjs/fabric.js/pull/6268)
184
572
  - fix(controls): Fix flip and controls and skewY and controls. [#6278](https://github.com/fabricjs/fabric.js/pull/6278)
185
573
  - fix(controls): Current position with handlers is wrong if using skew [#6267](https://github.com/fabricjs/fabric.js/pull/6267)
@@ -193,21 +581,24 @@ Breaking: rename fabric.controlHandlers and fabric.controlRenderers to fabric.co
193
581
  - fix(fabric.Image): do not crash if image has no element [#6285](https://github.com/fabricjs/fabric.js/pull/6285)
194
582
 
195
583
  BREAKING:
196
- - removed 2 utils member that was not used anywhere: fabric.util.getScript, fabric.util.getElementStyle
197
- - remove private member _setImageSmoothing in the canvas: use fabric.util.setImageSmoothing(ctx, value);
198
584
 
585
+ - removed 2 utils member that was not used anywhere: fabric.util.getScript, fabric.util.getElementStyle
586
+ - remove private member \_setImageSmoothing in the canvas: use fabric.util.setImageSmoothing(ctx, value);
199
587
 
200
588
  ## [4.0.0-beta.10]
589
+
201
590
  - fix(controls): fix missing target in canvas event options [#6251](https://github.com/fabricjs/fabric.js/pull/6251)
202
591
  - fix(controls): correct position for offsets [#6250](https://github.com/fabricjs/fabric.js/pull/6250)
203
592
  - feat(utils): Added more error flag passing throughout functions [#6238](https://github.com/fabricjs/fabric.js/pull/6238)
204
593
 
205
594
  ## [4.0.0-beta.9]
595
+
206
596
  - fix(controls) show offsetX/offsetY correctly. [#6236](https://github.com/fabricjs/fabric.js/pull/6236)
207
597
  - fix(controls) ISSUE-6201 Restore per object setting of controls visibility [#6226](https://github.com/fabricjs/fabric.js/pull/6226)
208
598
  - fix(svg_parser): ISSUE-6220 Allow to parse font declaration that start with a number [#6222](https://github.com/fabricjs/fabric.js/pull/6222)
209
599
 
210
600
  ## [4.0.0-beta.8]
601
+
211
602
  - fix(IText) Stop composition events on mousedown to enable cursor position on android keyboards [#6224](https://github.com/fabricjs/fabric.js/pull/6224)
212
603
  - fix(controls): Handle textbox width change properly [#6219](https://github.com/fabricjs/fabric.js/pull/6219)
213
604
  - fix(controls): correctly handling the uniform scaling option [#6218](https://github.com/fabricjs/fabric.js/pull/6218)
@@ -223,9 +614,10 @@ BREAKING:
223
614
 
224
615
  feat(controls): Added controls mouseUpHandler and mouseDownHandler [#6158](https://github.com/fabricjs/fabric.js/pull/6158)
225
616
  Removal of deprecated methods / patterns. [#6111](https://github.com/fabricjs/fabric.js/pull/6111)
617
+
226
618
  - removed Object.setShadow, and BaseBrush.setShadow. change `rect.setShadow(options)` to `rect.set('shadow', new fabric.Shadow(options))`
227
619
  - removed Object.transformMatrix.
228
- - removed `object:selected` event. use `selection:created`. In the callback you will still find `target` in the options, but also you will find `selected` with all the objects selected during that single event.
620
+ - removed `object:selected` event. use `selection:created`. In the callback you will still find `target` in the options, but also you will find `selected` with all the objects selected during that single event.
229
621
  - removed Gradient.forObject. No alternative available.
230
622
  - removed Object and canvas `clipTo`. Use Object.clipPath;
231
623
  - removed Canvas.loadFromDatalessJSON, it was just an alias for `loadFromJSON`
@@ -259,34 +651,39 @@ fix(controls): Control.getVisibility will always receive the fabric.Object argum
259
651
  ## [4.0.0-beta.1]
260
652
 
261
653
  breaking: All your old control code override will not work
262
- breaking: `uniScaleTransform` has been renamed in `uniformScaling`, meaning changed and the default value swapped. The behaviour is unchanged, but now the description and the name match.
654
+ breaking: `uniScaleTransform` has been renamed in `uniformScaling`, meaning changed and the default value swapped. The behaviour is unchanged, but now the description and the name match.
263
655
  breaking: Object.lockUniScaling is removed. Alternatives to get the same identical functionality with less code are being evaluated.
264
656
  breaking: Canvas.onBeforeScaleRotate is removed, developers need to migrate to the event `before:transform’
265
657
 
266
658
  ## [3.6.2]
659
+
267
660
  - fix fabric.Object.toDataURL blurriness on images with odd pixel number [#6131](https://github.com/fabricjs/fabric.js/pull/6131)
268
661
 
269
662
  ## [3.6.1]
663
+
270
664
  - fix(gradient, text): ISSUE-6014 ISSUE-6077 support percentage gradient in text [#6090](https://github.com/fabricjs/fabric.js/pull/6090)
271
665
  - fix(filters): ISSUE-6072 convolution filter is off by one [#6088](https://github.com/fabricjs/fabric.js/pull/6088)
272
666
  - fix(transform): Fix a bug in the skewing logic [#6082](https://github.com/fabricjs/fabric.js/pull/6088)
273
667
 
274
668
  ## [3.6.0]
669
+
275
670
  - fix: ISSUE-5512 better Clippath transform parsing in SVG [#5983](https://github.com/fabricjs/fabric.js/pull/5983)
276
671
  - fix: ISSUE-5984 Avoid enter editing in non selectable object [#5989](https://github.com/fabricjs/fabric.js/pull/5989)
277
- - Tweak to object._setLineDash to avoid cycles when nothing in array [#6000](https://github.com/fabricjs/fabric.js/pull/6000)
672
+ - Tweak to object.\_setLineDash to avoid cycles when nothing in array [#6000](https://github.com/fabricjs/fabric.js/pull/6000)
278
673
  - fix: ISSUE-5867 Fix the extra new line selection with empty line [#6011](https://github.com/fabricjs/fabric.js/pull/6011)
279
674
  - Improvement: Use SVG Namespace for SVG Elements [#5957](https://github.com/fabricjs/fabric.js/pull/5957)
280
675
  - Improvement: ISSUE-4115 - triggers in/out events for sub targets [#6013](https://github.com/fabricjs/fabric.js/pull/6013)
281
676
  - Improvement: Upper canvas retina scaling [#5938](https://github.com/fabricjs/fabric.js/pull/5938)
282
677
 
283
678
  ## [3.5.1]
679
+
284
680
  - Fix for textbox non defined in scaleObject [#5896](https://github.com/fabricjs/fabric.js/pull/5896)
285
681
  - Fix canvas pattern as background and exports [#5973](https://github.com/fabricjs/fabric.js/pull/5973)
286
682
  - Fix for type error if style is null when checking if is empty [#5971](https://github.com/fabricjs/fabric.js/pull/5971)
287
683
  - Fix for load from datalessJSON for svg groups with sourcePath [#5970](https://github.com/fabricjs/fabric.js/pull/5970)
288
684
 
289
685
  ## [3.5.0]
686
+
290
687
  - Deprecation: deprecated 3 method of the api that will disappear in fabric 4: setPatternFill, setColor, setShadow.
291
688
  - Fix: remove line dash modification for strokeUniform [#5953](https://github.com/fabricjs/fabric.js/pull/5953)
292
689
  - Improvement: ISSUE-5955 parse svg clip-path recursively [#5960](https://github.com/fabricjs/fabric.js/pull/5960)
@@ -294,18 +691,21 @@ breaking: Canvas.onBeforeScaleRotate is removed, developers need to migrate to t
294
691
  - change pencil brush finalize to be in line with other brushes [#5866](https://github.com/fabricjs/fabric.js/pull/5866)
295
692
 
296
693
  ## [3.4.0]
694
+
297
695
  - Support fill-opacity on gradient parsing from SVG. [#5812](https://github.com/fabricjs/fabric.js/pull/5812)
298
696
  - Rewrite gradient parsing from SVG to work with more transformation and combinations of attributes. [#5836](https://github.com/fabricjs/fabric.js/pull/5836)
299
697
  - Added Gradient.gradientUnits property to support percent based gradients on shapes.[#5836](https://github.com/fabricjs/fabric.js/pull/5836)
300
698
  - Changed animation logic so that onComplete gets always called with the final values of the animation.[#5813](https://github.com/fabricjs/fabric.js/pull/5813)
301
699
 
302
700
  ## [3.3.0]
701
+
303
702
  - Differently support multi mouse events, fix multi touch on various browser [#5785](https://github.com/fabricjs/fabric.js/pull/5785)
304
703
  - Word boundary search update on grapheme clusters [#5788](https://github.com/fabricjs/fabric.js/pull/5788)
305
704
  - Enable deps free version [#5786](https://github.com/fabricjs/fabric.js/pull/5786)
306
705
  - Remove variables named as reserved words [#5782](https://github.com/fabricjs/fabric.js/pull/5782)
307
706
 
308
707
  ## [3.2.0]
708
+
309
709
  - Fix: Better handling of upperCanvas in toCanvasElement. [#5736](https://github.com/fabricjs/fabric.js/pull/5736)
310
710
  - Add: Pass raw event information to brushes [#5687](https://github.com/fabricjs/fabric.js/pull/5687)
311
711
  - Deprecation: officially deprecated Object.transformMatrix [#5747](https://github.com/fabricjs/fabric.js/pull/5747)
@@ -313,11 +713,13 @@ breaking: Canvas.onBeforeScaleRotate is removed, developers need to migrate to t
313
713
  - Fix: PencilBrush regression on simple points. [#5771](https://github.com/fabricjs/fabric.js/pull/5771)
314
714
 
315
715
  ## [3.1.0]
716
+
316
717
  - Fix: unbreak IE10. [#5678](https://github.com/fabricjs/fabric.js/pull/5678)
317
718
  - Improvement: Support scientific notation with uppercase E. [#5731](https://github.com/fabricjs/fabric.js/pull/5731)
318
719
  - Add: PencilBrush brush now support `decimate` property to remove dots that are too near to each other. [#5718](https://github.com/fabricjs/fabric.js/pull/5718)
319
720
 
320
721
  ## [3.0.0]
722
+
321
723
  - Breaking: removed support for node 4 and 6. [#5356](https://github.com/fabricjs/fabric.js/pull/5356)
322
724
  - Breaking: changed objectCaching meaning to disable caching only if possible. [#5566](https://github.com/fabricjs/fabric.js/pull/5566)
323
725
  - Breaking: private method `_setLineStyle` can set only empty object now [#5588](https://github.com/fabricjs/fabric.js/pull/5588)
@@ -344,6 +746,7 @@ breaking: Canvas.onBeforeScaleRotate is removed, developers need to migrate to t
344
746
  - Fix: respect chainable attribute in observable mixin [#5606](https://github.com/fabricjs/fabric.js/pull/5606)
345
747
 
346
748
  ## [2.7.0]
749
+
347
750
  - Add: strokeUniform property, avoid stroke scaling with paths [#5473](https://github.com/fabricjs/fabric.js/pull/5473)
348
751
  - Fix: fix bug in image setSrc [#5502](https://github.com/fabricjs/fabric.js/pull/5502)
349
752
  - Add: strokeUniform import/export svg [#5527](https://github.com/fabricjs/fabric.js/pull/5527)
@@ -351,6 +754,7 @@ breaking: Canvas.onBeforeScaleRotate is removed, developers need to migrate to t
351
754
  - Improvement: support running in a XML document [#5530](https://github.com/fabricjs/fabric.js/pull/5530)
352
755
 
353
756
  ## [2.6.0]
757
+
354
758
  - Fix: avoid ie11 to throw on weird draw images [#5428](https://github.com/fabricjs/fabric.js/pull/5428)
355
759
  - Fix: a rare case of invisible clipPath [#5477](https://github.com/fabricjs/fabric.js/pull/5477)
356
760
  - Fix: testability of code under node when webgl is involved [#5478](https://github.com/fabricjs/fabric.js/pull/5478)
@@ -358,19 +762,23 @@ breaking: Canvas.onBeforeScaleRotate is removed, developers need to migrate to t
358
762
  - Add: fabric.Object.toCanvasElement [#5481](https://github.com/fabricjs/fabric.js/pull/5481)
359
763
 
360
764
  ## [2.5.0]
765
+
361
766
  - Fix: textbox transform report newScaleX and newScaleY values [#5464](https://github.com/fabricjs/fabric.js/pull/5464)
362
767
  - Fix: export of svg and gradient with transforms [#5456](https://github.com/fabricjs/fabric.js/pull/5456)
363
768
  - Fix: detection of controls in perPixelTargetFind + cache [#5455](https://github.com/fabricjs/fabric.js/pull/5455)
364
769
  - Add: added canvas.toCanvasElement method [#5452](https://github.com/fabricjs/fabric.js/pull/5452)
365
770
 
366
771
  ## [2.4.6]
772
+
367
773
  - Fix: unbreak the svg export broken in 2.4.5 [#5438](https://github.com/fabricjs/fabric.js/pull/5438)
368
774
 
369
775
  ## [2.4.5]
776
+
370
777
  - Fix: svg import/export for canvas+clipPath and letterspacing. [#5424](https://github.com/fabricjs/fabric.js/pull/5424)
371
778
  - Fix: avoid stroke dash from group selection to leak on upper canvas [#5392](https://github.com/fabricjs/fabric.js/pull/5392)
372
779
 
373
780
  ## [2.4.4]
781
+
374
782
  - Fix: add clipPath to stateful cache check. [#5384](https://github.com/fabricjs/fabric.js/pull/5384)
375
783
  - Fix: restore draggability of small objects [#5379](https://github.com/fabricjs/fabric.js/pull/5379)
376
784
  - Improvement: Added strokeDashOffset to objects and from SVG import. [#5398](https://github.com/fabricjs/fabric.js/pull/5398)
@@ -378,6 +786,7 @@ breaking: Canvas.onBeforeScaleRotate is removed, developers need to migrate to t
378
786
  - Improvement: Better gradients parsing with xlink:href [#5357](https://github.com/fabricjs/fabric.js/pull/5357)
379
787
 
380
788
  ## [2.4.3]
789
+
381
790
  - Fix: Shift click and onSelect function [#5348](https://github.com/fabricjs/fabric.js/pull/5348)
382
791
  - Fix: Load from Json from images with filters and resize filters [#5346](https://github.com/fabricjs/fabric.js/pull/5346)
383
792
  - Fix: Remove special case of 1x1 rect [#5345](https://github.com/fabricjs/fabric.js/pull/5345)
@@ -385,12 +794,14 @@ breaking: Canvas.onBeforeScaleRotate is removed, developers need to migrate to t
385
794
  - Fix: Fix shift + click interaction with unselectable objects [#5324](https://github.com/fabricjs/fabric.js/pull/5324)
386
795
 
387
796
  ## [2.4.2]
797
+
388
798
  - Fix: Better toSVG support to enable clipPath [#5284](https://github.com/fabricjs/fabric.js/pull/5284)
389
799
  - Fix: Per pixel target find and groups and sub targets [#5287](https://github.com/fabricjs/fabric.js/pull/5287)
390
800
  - Fix: Object clone as Image and shadow clipping [#5308](https://github.com/fabricjs/fabric.js/pull/5308)
391
801
  - Fix: IE11 loading SVG [#5307](https://github.com/fabricjs/fabric.js/pull/5307)
392
802
 
393
803
  ## [2.4.1]
804
+
394
805
  - Fix: Avoid enterEditing if another object is the activeObject [#5261](https://github.com/fabricjs/fabric.js/pull/5261)
395
806
  - Fix: clipPath enliving for Image fromObject [#5279](https://github.com/fabricjs/fabric.js/pull/5279)
396
807
  - Fix: toDataURL and canvas clipPath [#5278](https://github.com/fabricjs/fabric.js/pull/5278)
@@ -401,210 +812,228 @@ breaking: Canvas.onBeforeScaleRotate is removed, developers need to migrate to t
401
812
  - Fix: Avoid extra renders on mouseUp/Down [#5256](https://github.com/fabricjs/fabric.js/pull/5256)
402
813
 
403
814
  ## [2.4.0]
815
+
404
816
  - Add: Add clipPath support to canvas and svg import/export. Low compatibility yet.
405
817
 
406
818
  ## [2.3.6]
819
+
407
820
  - Fix: Make image.class aware of naturalWidth and naturalHeight. [#5178](https://github.com/fabricjs/fabric.js/pull/5178)
408
821
  - Fix: Make 2 finger events works again [#5177](https://github.com/fabricjs/fabric.js/pull/5177)
409
822
  - Fix: Make Groups respect origin and correct position ( fix spray/circle brushes ) [#5176](https://github.com/fabricjs/fabric.js/pull/5176)
410
823
 
411
824
  ## [2.3.5]
412
- - Change: make canvas.getObjects() always return a shallow copy of the array [#5162](https://github.com/fabricjs/fabric.js/pull/5162)
413
- - Fix: Improve fabric.Pattern.toSVG to look correct on offsets and no-repeat [#5164](https://github.com/fabricjs/fabric.js/pull/5164)
414
- - Fix: Do not enter edit in Itext if the mouseUp is relative to a group selector [#5153](https://github.com/fabricjs/fabric.js/pull/5153)
415
- - Improvement: Do not require xlink namespace in front of href attribut for svgs ( is a SVG2 new spec, unsupported ) [#5156](https://github.com/fabricjs/fabric.js/pull/5156)
416
- - Fix: fix resizeFilter having the wrong cached texture, also improved interaction between filters [#5165](https://github.com/fabricjs/fabric.js/pull/5165)
825
+
826
+ - Change: make canvas.getObjects() always return a shallow copy of the array [#5162](https://github.com/fabricjs/fabric.js/pull/5162)
827
+ - Fix: Improve fabric.Pattern.toSVG to look correct on offsets and no-repeat [#5164](https://github.com/fabricjs/fabric.js/pull/5164)
828
+ - Fix: Do not enter edit in Itext if the mouseUp is relative to a group selector [#5153](https://github.com/fabricjs/fabric.js/pull/5153)
829
+ - Improvement: Do not require xlink namespace in front of href attribut for svgs ( is a SVG2 new spec, unsupported ) [#5156](https://github.com/fabricjs/fabric.js/pull/5156)
830
+ - Fix: fix resizeFilter having the wrong cached texture, also improved interaction between filters [#5165](https://github.com/fabricjs/fabric.js/pull/5165)
417
831
 
418
832
  ## [2.3.4]
419
- - Fix: ToSVG was ignoring excludeFromExport for backgroundImage and OverlayImage. [#5075](https://github.com/fabricjs/fabric.js/pull/5075)
420
- - Fix: ToSVG for circle with start and end angles. [#5085](https://github.com/fabricjs/fabric.js/pull/5085)
421
- - Fix: Added callback for setPatternFill. [#5101](https://github.com/fabricjs/fabric.js/pull/5101)
422
- - Fix: Resize filter taking in account multiple scale sources. [#5117](https://github.com/fabricjs/fabric.js/pull/5117)
423
- - Fix: Blend image filter clean after refilter. [#5121](https://github.com/fabricjs/fabric.js/pull/5121)
424
- - Fix: Object.toDataURL should not be influenced by zoom. [#5139](https://github.com/fabricjs/fabric.js/pull/5139)
425
- - Improvement: requestRenderAllBound add to Canvas instance. [#5138](https://github.com/fabricjs/fabric.js/pull/5138)
426
- - Improvement: Make path bounding cache optional and also reacheable/cleanable [#5140](https://github.com/fabricjs/fabric.js/pull/5140)
427
- - Improvement: Make the logic of isNeutralState filters work before filtering start. [#5129](https://github.com/fabricjs/fabric.js/pull/5129)
428
- - Improvement: Added some code to clean up some memory when canvas is disposed in nodejs. [#5142](https://github.com/fabricjs/fabric.js/pull/5142)
429
- - Fix: Make numeric origins work with group creation. [#5143](https://github.com/fabricjs/fabric.js/pull/5143)
833
+
834
+ - Fix: ToSVG was ignoring excludeFromExport for backgroundImage and OverlayImage. [#5075](https://github.com/fabricjs/fabric.js/pull/5075)
835
+ - Fix: ToSVG for circle with start and end angles. [#5085](https://github.com/fabricjs/fabric.js/pull/5085)
836
+ - Fix: Added callback for setPatternFill. [#5101](https://github.com/fabricjs/fabric.js/pull/5101)
837
+ - Fix: Resize filter taking in account multiple scale sources. [#5117](https://github.com/fabricjs/fabric.js/pull/5117)
838
+ - Fix: Blend image filter clean after refilter. [#5121](https://github.com/fabricjs/fabric.js/pull/5121)
839
+ - Fix: Object.toDataURL should not be influenced by zoom. [#5139](https://github.com/fabricjs/fabric.js/pull/5139)
840
+ - Improvement: requestRenderAllBound add to Canvas instance. [#5138](https://github.com/fabricjs/fabric.js/pull/5138)
841
+ - Improvement: Make path bounding cache optional and also reacheable/cleanable [#5140](https://github.com/fabricjs/fabric.js/pull/5140)
842
+ - Improvement: Make the logic of isNeutralState filters work before filtering start. [#5129](https://github.com/fabricjs/fabric.js/pull/5129)
843
+ - Improvement: Added some code to clean up some memory when canvas is disposed in nodejs. [#5142](https://github.com/fabricjs/fabric.js/pull/5142)
844
+ - Fix: Make numeric origins work with group creation. [#5143](https://github.com/fabricjs/fabric.js/pull/5143)
430
845
 
431
846
  ## [2.3.3]
432
- - Fix: Fixed font generic names for text, measurement of zero width related characters and also trailing of cursor when zooming. [#5048](https://github.com/fabricjs/fabric.js/pull/5048)
847
+
848
+ - Fix: Fixed font generic names for text, measurement of zero width related characters and also trailing of cursor when zooming. [#5048](https://github.com/fabricjs/fabric.js/pull/5048)
433
849
 
434
850
  ## [2.3.2]
435
- - Fix: justify + charspacing + textDecoration Add and improve more events for transformations and mouse interaction. [#5007](https://github.com/fabricjs/fabric.js/pull/5007) [#5009](https://github.com/fabricjs/fabric.js/pull/5009)
436
- - Fix: Enter edit on object selected programmatically. [#5010](https://github.com/fabricjs/fabric.js/pull/5010)
437
- - Fix: Canvas.dispose was not removing all events properly. [#5020](https://github.com/fabricjs/fabric.js/pull/5020)
438
- - Fix: Make rgba and hsla regex work case insensitive. [#5017](https://github.com/fabricjs/fabric.js/pull/5017)
439
- - Fix: Make group transitioning from not cached to cached work. [#5021](https://github.com/fabricjs/fabric.js/pull/5021)
851
+
852
+ - Fix: justify + charspacing + textDecoration Add and improve more events for transformations and mouse interaction. [#5007](https://github.com/fabricjs/fabric.js/pull/5007) [#5009](https://github.com/fabricjs/fabric.js/pull/5009)
853
+ - Fix: Enter edit on object selected programmatically. [#5010](https://github.com/fabricjs/fabric.js/pull/5010)
854
+ - Fix: Canvas.dispose was not removing all events properly. [#5020](https://github.com/fabricjs/fabric.js/pull/5020)
855
+ - Fix: Make rgba and hsla regex work case insensitive. [#5017](https://github.com/fabricjs/fabric.js/pull/5017)
856
+ - Fix: Make group transitioning from not cached to cached work. [#5021](https://github.com/fabricjs/fabric.js/pull/5021)
440
857
 
441
858
  ## [2.3.1]
442
- - Improve nested svg import and text positioning, spikes. [#4984](https://github.com/kangax/fabric.js/pull/4984)
859
+
860
+ - Improve nested svg import and text positioning, spikes. [#4984](https://github.com/kangax/fabric.js/pull/4984)
443
861
 
444
862
  ## [2.3.0]
445
- - Add and improve more events for transformations and mouse interaction [#4979](https://github.com/kangax/fabric.js/pull/4979)
446
- - Improvement: whenever possible use cache for target transparency sampling [#4955](https://github.com/kangax/fabric.js/pull/4955)
863
+
864
+ - Add and improve more events for transformations and mouse interaction [#4979](https://github.com/kangax/fabric.js/pull/4979)
865
+ - Improvement: whenever possible use cache for target transparency sampling [#4955](https://github.com/kangax/fabric.js/pull/4955)
447
866
 
448
867
  ## [2.2.4]
449
- - Fix getPointer on touch devices [#4866](https://github.com/kangax/fabric.js/pull/4866)
450
- - Fix issues with selectionDashArray bleeding into free drawing [#4894](https://github.com/kangax/fabric.js/pull/4894)
451
- - Fix blur filter for nodejs [#4905](https://github.com/kangax/fabric.js/pull/4905)
452
- - Fix Register mousemove as non passive to help touch devices [#4933](https://github.com/kangax/fabric.js/pull/4933)
453
- - Fix modified shadow tosvg for safari compatibility [#4934](https://github.com/kangax/fabric.js/pull/4934)
454
- - Fix shader to avoid premultiplied alpha pixel getting dirty in blend filter [#4936](https://github.com/kangax/fabric.js/pull/4936)
455
- - Add isPartiallyOnScreen method [#4856](https://github.com/kangax/fabric.js/pull/4856)
456
- - Fix isEqual failing on array/null or objects/null/string compare [#4949](https://github.com/kangax/fabric.js/pull/4949)
457
- - Fix pencilBrush with alpha and with rerendering canvas [#4938](https://github.com/kangax/fabric.js/pull/4938)
868
+
869
+ - Fix getPointer on touch devices [#4866](https://github.com/kangax/fabric.js/pull/4866)
870
+ - Fix issues with selectionDashArray bleeding into free drawing [#4894](https://github.com/kangax/fabric.js/pull/4894)
871
+ - Fix blur filter for nodejs [#4905](https://github.com/kangax/fabric.js/pull/4905)
872
+ - Fix Register mousemove as non passive to help touch devices [#4933](https://github.com/kangax/fabric.js/pull/4933)
873
+ - Fix modified shadow tosvg for safari compatibility [#4934](https://github.com/kangax/fabric.js/pull/4934)
874
+ - Fix shader to avoid premultiplied alpha pixel getting dirty in blend filter [#4936](https://github.com/kangax/fabric.js/pull/4936)
875
+ - Add isPartiallyOnScreen method [#4856](https://github.com/kangax/fabric.js/pull/4856)
876
+ - Fix isEqual failing on array/null or objects/null/string compare [#4949](https://github.com/kangax/fabric.js/pull/4949)
877
+ - Fix pencilBrush with alpha and with rerendering canvas [#4938](https://github.com/kangax/fabric.js/pull/4938)
458
878
 
459
879
  ## [2.2.3]
460
- - improvement: Allow to parse quoted url string. url('#myid') [#4881](https://github.com/kangax/fabric.js/pull/4881)
461
- - improvement: text fromSVG import char-spacing attribute [#3718](https://github.com/kangax/fabric.js/pull/3718)
462
- - fix: text toSVG export with multiple spaces in safari [#4880](https://github.com/kangax/fabric.js/pull/4880)
463
- - fix: setSrc reset width and height on images [#4877](https://github.com/kangax/fabric.js/pull/4877)
464
- - improvements: Removed forced origin swap when rotating [#4878](https://github.com/kangax/fabric.js/pull/4878)
465
- - fix: Make the background of canvas cover all SVG in toSVG export [#4852](https://github.com/kangax/fabric.js/pull/4852)
466
- - fix: Added startAngle to cacheProperties for fabric.Circle [#4875](https://github.com/kangax/fabric.js/pull/4875)
467
- - fix: Rerender all the content of upperCanvas if canvas gets resized [#4850](https://github.com/kangax/fabric.js/pull/4850)
468
- - fix: Remove references to context when disposing [#4846](https://github.com/kangax/fabric.js/pull/4846)
469
- - improvements: Added single quoting to font names in toSVG [#4840](https://github.com/kangax/fabric.js/pull/4840)
470
- - improvements: Added reserved space to wrapLine functionality [#4841](https://github.com/kangax/fabric.js/pull/4841)
880
+
881
+ - improvement: Allow to parse quoted url string. url('#myid') [#4881](https://github.com/kangax/fabric.js/pull/4881)
882
+ - improvement: text fromSVG import char-spacing attribute [#3718](https://github.com/kangax/fabric.js/pull/3718)
883
+ - fix: text toSVG export with multiple spaces in safari [#4880](https://github.com/kangax/fabric.js/pull/4880)
884
+ - fix: setSrc reset width and height on images [#4877](https://github.com/kangax/fabric.js/pull/4877)
885
+ - improvements: Removed forced origin swap when rotating [#4878](https://github.com/kangax/fabric.js/pull/4878)
886
+ - fix: Make the background of canvas cover all SVG in toSVG export [#4852](https://github.com/kangax/fabric.js/pull/4852)
887
+ - fix: Added startAngle to cacheProperties for fabric.Circle [#4875](https://github.com/kangax/fabric.js/pull/4875)
888
+ - fix: Rerender all the content of upperCanvas if canvas gets resized [#4850](https://github.com/kangax/fabric.js/pull/4850)
889
+ - fix: Remove references to context when disposing [#4846](https://github.com/kangax/fabric.js/pull/4846)
890
+ - improvements: Added single quoting to font names in toSVG [#4840](https://github.com/kangax/fabric.js/pull/4840)
891
+ - improvements: Added reserved space to wrapLine functionality [#4841](https://github.com/kangax/fabric.js/pull/4841)
471
892
 
472
893
  ## [2.2.2]
473
- - Fixed: Applying filters to an image will invalidate its cache [#4828](https://github.com/kangax/fabric.js/pull/4828)
474
- - Fixed: Attempt at fix font families that requires quoting [#4831](https://github.com/kangax/fabric.js/pull/4831)
475
- - Improvement: check upperCanvas client size for textarea position [#4827](https://github.com/kangax/fabric.js/pull/4827)
476
- - Fixed: Attempt to fix multiple touchends [#4804](https://github.com/kangax/fabric.js/pull/4804)
477
- - Fixed: Wrapping of textbox with charspacing [#4803](https://github.com/kangax/fabric.js/pull/4803)
478
- - Fixed: bad calculation of empty line in text (regression from 2.2.0) [#4802](https://github.com/kangax/fabric.js/pull/4802)
894
+
895
+ - Fixed: Applying filters to an image will invalidate its cache [#4828](https://github.com/kangax/fabric.js/pull/4828)
896
+ - Fixed: Attempt at fix font families that requires quoting [#4831](https://github.com/kangax/fabric.js/pull/4831)
897
+ - Improvement: check upperCanvas client size for textarea position [#4827](https://github.com/kangax/fabric.js/pull/4827)
898
+ - Fixed: Attempt to fix multiple touchends [#4804](https://github.com/kangax/fabric.js/pull/4804)
899
+ - Fixed: Wrapping of textbox with charspacing [#4803](https://github.com/kangax/fabric.js/pull/4803)
900
+ - Fixed: bad calculation of empty line in text (regression from 2.2.0) [#4802](https://github.com/kangax/fabric.js/pull/4802)
479
901
 
480
902
  ## [2.2.1]
481
- - Reworked how amd and commonJS are together in the same file.
903
+
904
+ - Reworked how amd and commonJS are together in the same file.
482
905
 
483
906
  ## [2.2.0]
484
- - Fixed: super/sub script svg export [#4780](https://github.com/kangax/fabric.js/pull/4780)
485
- - Added: Text superScript and subScript support [#4765](https://github.com/kangax/fabric.js/pull/4765)
486
- - Fixed: negative kerning support (Pacifico font) [#4772](https://github.com/kangax/fabric.js/pull/4772)
487
- - Fixed: removing text on mousedown should be safe now [#4774](https://github.com/kangax/fabric.js/pull/4774)
488
- - Improved: pass to inner functions the parameter calculate coords in isOnscreen [#4763](https://github.com/kangax/fabric.js/pull/4763)
907
+
908
+ - Fixed: super/sub script svg export [#4780](https://github.com/kangax/fabric.js/pull/4780)
909
+ - Added: Text superScript and subScript support [#4765](https://github.com/kangax/fabric.js/pull/4765)
910
+ - Fixed: negative kerning support (Pacifico font) [#4772](https://github.com/kangax/fabric.js/pull/4772)
911
+ - Fixed: removing text on mousedown should be safe now [#4774](https://github.com/kangax/fabric.js/pull/4774)
912
+ - Improved: pass to inner functions the parameter calculate coords in isOnscreen [#4763](https://github.com/kangax/fabric.js/pull/4763)
489
913
 
490
914
  ## [2.1.0]
491
- - Added: Added: Drag and drop event binding [#4421](https://github.com/kangax/fabric.js/pull/4421)
492
- - Fixed: isEmptyStyle implementation for TextBox [#4762](https://github.com/kangax/fabric.js/pull/4762)
915
+
916
+ - Added: Added: Drag and drop event binding [#4421](https://github.com/kangax/fabric.js/pull/4421)
917
+ - Fixed: isEmptyStyle implementation for TextBox [#4762](https://github.com/kangax/fabric.js/pull/4762)
493
918
 
494
919
  ## [2.0.3]
495
- - Fix: now sub target check can work with subclasses of fabric.Group [#4753](https://github.com/kangax/fabric.js/pull/4753)
496
- - Improvement: PencilBrush is now compexity 1 instead of complexity N during draw [#4743](https://github.com/kangax/fabric.js/pull/4743)
497
- - Fix the cleanStyle was not checking for the right property to exist [#4751](https://github.com/kangax/fabric.js/pull/4751)
498
- - Fix onBeforeScaleRotate with canvas zoom [#4748](https://github.com/kangax/fabric.js/pull/4748)
920
+
921
+ - Fix: now sub target check can work with subclasses of fabric.Group [#4753](https://github.com/kangax/fabric.js/pull/4753)
922
+ - Improvement: PencilBrush is now compexity 1 instead of complexity N during draw [#4743](https://github.com/kangax/fabric.js/pull/4743)
923
+ - Fix the cleanStyle was not checking for the right property to exist [#4751](https://github.com/kangax/fabric.js/pull/4751)
924
+ - Fix onBeforeScaleRotate with canvas zoom [#4748](https://github.com/kangax/fabric.js/pull/4748)
499
925
 
500
926
  ## [2.0.2]
501
- - fixed image toSVG support for crop [#4738](https://github.com/kangax/fabric.js/pull/4738)
502
- - changed math for better rounded results [#4734](https://github.com/kangax/fabric.js/pull/4734)
927
+
928
+ - fixed image toSVG support for crop [#4738](https://github.com/kangax/fabric.js/pull/4738)
929
+ - changed math for better rounded results [#4734](https://github.com/kangax/fabric.js/pull/4734)
503
930
 
504
931
  ## [2.0.1]
505
- - fixed filter for blend image in WEBGL [#4706](https://github.com/kangax/fabric.js/pull/4706)
506
- - fixed interactions between canvas toDataURL and multiplier + retina [#4705](https://github.com/kangax/fabric.js/pull/4705)
507
- - fixed bug with originX and originY not invalidating the transform [#4703](https://github.com/kangax/fabric.js/pull/4703)
508
- - fixed unwanted mutation on object enliving in fabric.Image [#4699](https://github.com/kangax/fabric.js/pull/4699)
932
+
933
+ - fixed filter for blend image in WEBGL [#4706](https://github.com/kangax/fabric.js/pull/4706)
934
+ - fixed interactions between canvas toDataURL and multiplier + retina [#4705](https://github.com/kangax/fabric.js/pull/4705)
935
+ - fixed bug with originX and originY not invalidating the transform [#4703](https://github.com/kangax/fabric.js/pull/4703)
936
+ - fixed unwanted mutation on object enliving in fabric.Image [#4699](https://github.com/kangax/fabric.js/pull/4699)
937
+
509
938
  ## [2.0.0]
510
- - final
511
- - fix dataurl and svg export on retina and rounding [#4674](https://github.com/kangax/fabric.js/pull/4674)
512
- - avoid error if iText is removed on mousedown [#4650](https://github.com/kangax/fabric.js/pull/4650)
513
- - fix calcOffset when text enter editing [#4649](https://github.com/kangax/fabric.js/pull/4649)
514
- - Gradient fix parsing floats [#4637](https://github.com/kangax/fabric.js/pull/4637)
515
- - Add CrossOrigin managment to fabric.Pattern [#4618](https://github.com/kangax/fabric.js/pull/4618)
516
- - Add patternTransform toObject saving [#4626](https://github.com/kangax/fabric.js/pull/4626)
517
- - normalize brushes render [#4613](https://github.com/kangax/fabric.js/pull/4613)
518
- - avoid charspacing shortcut [#4594](https://github.com/kangax/fabric.js/pull/4594)
519
- - Fix color toHexa() [#4579](https://github.com/kangax/fabric.js/pull/4579)
520
- - rc3 and rc4
521
- - more fixes to transformMatrix memoization
522
- - Canvas.selectionFullyContained allows you to select objects just when full grabbed by the selections. [#4508](https://github.com/kangax/fabric.js/pull/4508)
523
- - Remove some ouput of blank spaces from svg in order to avoid extra colored areas [#4524](https://github.com/kangax/fabric.js/pull/4524)
524
- - Reinserted a performance shortcut for when there is no style at all [#4519](https://github.com/kangax/fabric.js/pull/4519)
525
- - Manage canvas resize during a freedrawing brush without wiping the brush [#4527](https://github.com/kangax/fabric.js/pull/4527)
526
- - Removed an extra closePath that was creating wrong visual on IntelIntegrated cards [#4549](https://github.com/kangax/fabric.js/pull/4549)
527
- - Added a method to insert and remove text from command line [#4541](https://github.com/kangax/fabric.js/pull/4541)
528
- - Some fixes around text styles management
529
- - nodejs support changes: removed specific node code in order to use standard fabricjs code in nodejs.
530
- - added fabric.util.getNodeCanvas that passed a JSDOM element allows you to get the node-canvas instance behind it and do what you need.
531
- - rc2
532
- - Fixed a transform matrix memoize missing width/height [#4491](https://github.com/kangax/fabric.js/pull/4491)
533
- - Fix pattern drawing a point [#4492](https://github.com/kangax/fabric.js/pull/4492)
534
- - Fixed Text.removeChars [#4495](https://github.com/kangax/fabric.js/pull/4495)
535
- - Added back 2 node-canvas methods [#4497](https://github.com/kangax/fabric.js/pull/4497)
536
- - Fix a typo not restoring hoverCursor correctly.
537
- - rc1
538
- - Remove node specific code [#4470](https://github.com/kangax/fabric.js/pull/4470)
539
- - Improved Canvas.dispose code to leak less memory [#4471](https://github.com/kangax/fabric.js/pull/4471)
540
- - Remove extra padding of cache when upper limited [#4467](https://github.com/kangax/fabric.js/pull/4467)
541
- - Solved 2 perfomances problems with textbox [#4466](https://github.com/kangax/fabric.js/pull/4466) [#4465](https://github.com/kangax/fabric.js/pull/4465)
542
- - Added justify-left justify-right and justify-center [#4437](https://github.com/kangax/fabric.js/pull/4437)
543
- - Fix Group fromObject and subTargetCheck [#4454](https://github.com/kangax/fabric.js/pull/4454)
544
- - Fix regression on IMG from SVG [#4450](https://github.com/kangax/fabric.js/pull/4450)
545
- - Remove cache dimensions together with canvas [#4453](https://github.com/kangax/fabric.js/pull/4453)
546
- - Fixed some fuzzyness cases for cache [#4452](https://github.com/kangax/fabric.js/pull/4452)
547
- - Fixed resize filter for webgl [#4426](https://github.com/kangax/fabric.js/pull/4426)
548
- - Stop searching target during a mouse move with a transform [#4442](https://github.com/kangax/fabric.js/pull/4442)
549
- - safeguard shaders for non supported precisions [#4433](https://github.com/kangax/fabric.js/pull/4433)
550
- - fix insert and remove style for edge cases [#4420](https://github.com/kangax/fabric.js/pull/4420)
551
- - Fix object.move when in active selection [#4394](https://github.com/kangax/fabric.js/pull/4394)
552
- - Memoize calcTransformMatrix function [#4418](https://github.com/kangax/fabric.js/pull/4418)
553
- - Make _set flag object as dirty just when a real change happen[#4415](https://github.com/kangax/fabric.js/pull/4415)
554
- - Add browserShadowBlurConstant to adjust shadowBlur value [#4413](https://github.com/kangax/fabric.js/pull/4413)
555
- - Fix set element not clearing the cacheTexture. [#4410](https://github.com/kangax/fabric.js/pull/4410)
556
- - Multi selection key can be configured with an array of keys. [#4363](https://github.com/kangax/fabric.js/pull/4363)
557
- - fix fast type in text loosing some style. [#4339](https://github.com/kangax/fabric.js/pull/4339)
558
- - fixed division by zero with lockscaling flip.
559
- - added paintFirst ( paint-order with svg support ) [#4303](https://github.com/kangax/fabric.js/pull/4303)
560
- - beta7
561
- - added a build flag for not attaching fabric to window [#4199](https://github.com/kangax/fabric.js/pull/4199)
562
- - removed .active property from objects [#4200](https://github.com/kangax/fabric.js/pull/4200)
563
- - Normalize Api for getSelectionStyles, setSelectionStyles [#4202](https://github.com/kangax/fabric.js/pull/4202)
564
- - Fix shader for convolute filter [#4207](https://github.com/kangax/fabric.js/pull/4207)
565
- - Better mouse support for lockscaling flip [#4225](https://github.com/kangax/fabric.js/pull/4225)
566
- - Fix toDataUrl getting a blank canvas [#4229](https://github.com/kangax/fabric.js/pull/4229)
567
- - Ouput version to json Objects [#4251](https://github.com/kangax/fabric.js/pull/4251)
568
- - Use backstoreOnly for toDataUrl resize [#4254](https://github.com/kangax/fabric.js/pull/4254)
569
- - Fix safari svg whitespace [#4294](https://github.com/kangax/fabric.js/pull/4294)
570
- - Fix Gradient export for paths [#4274](https://github.com/kangax/fabric.js/pull/4274)
571
- - Move mouseout/over in mousemove events [#4283](https://github.com/kangax/fabric.js/pull/4283)
572
- - Fix detection of click at the end of line [#4295](https://github.com/kangax/fabric.js/pull/4295)
573
- - added new event selection:updated [#4311](https://github.com/kangax/fabric.js/pull/4311)
574
- - Fixed free drawing path displacement [#4311](https://github.com/kangax/fabric.js/pull/4311)
575
- - Fixed scale equally and flipping not happening [#4313](https://github.com/kangax/fabric.js/pull/4313)
576
- - Select by drag makes the object fires 'selected' [#4314](https://github.com/kangax/fabric.js/pull/4314)
577
- - beta6
578
- - incompat: New filter system with WEBGL.
579
- - incompat: New Text/IText/Textbox code. Multibyte compatible, more accurate.
580
- - incompat: RequestAnimationFrame is used for the automatic render calls.
581
- - incompat: Named setter/getter are optional now.
582
- - incompat: Removed PathGroup class
583
- - incompat: Paths cannot be restored anymore from strings [#3713](https://github.com/kangax/fabric.js/pull/3713)
584
- - incompat: bumped node version to 4+ and jsdom to 9. [#3717](https://github.com/kangax/fabric.js/pull/3717)
585
- - incompat: removed the es5 / JSON shim support [#3722](https://github.com/kangax/fabric.js/pull/3722)
586
- - fix/incompat: IText setSelectionStyles does not change anymore style if no selection is present [#3765](https://github.com/kangax/fabric.js/pull/3765)
587
- - skipOffscreen default to true
588
- - Text.setSelectionStyle does not change anything if there is no selection [#3765](https://github.com/kangax/fabric.js/pull/3765)
589
- - Switch to canvas-prebuilt as dependency. Added parameter to choose the canvas package [#3757](https://github.com/kangax/fabric.js/pull/3757)
590
- - improvement: renderControls can now be called on its own. Added parameter styleOverride to allow for overriding current properties [#3887](https://github.com/kangax/fabric.js/pull/3887)
591
- - removed hasMoved and saveCoords from Group class [#3910](https://github.com/kangax/fabric.js/pull/3910)
592
- - forced all fromObject and fromElement to be async, normalized api. [#3996](https://github.com/kangax/fabric.js/pull/3996)
593
- - improvement: added support for request animation frame in mouse events [#3997](https://github.com/kangax/fabric.js/pull/3997)
594
- - added dblclick support for all objects [#3998](https://github.com/kangax/fabric.js/pull/3997)
595
- - textbox scale as a normal object [#4052](https://github.com/kangax/fabric.js/pull/4052)
596
- - Removed image meetOrSlice, alignX, alignY, introduced cropX, cropY [#4055](https://github.com/kangax/fabric.js/pull/4055)
597
- - Added Text.cleanStyle, Text.removeStyle [#4060](https://github.com/kangax/fabric.js/pull/4060)
598
- - change: lockRotation will not hide the mtr control anymore. introduced notAllowedCursor for canvas. [#4064](https://github.com/kangax/fabric.js/pull/4064)
599
- - improvement: added 2 percentage values to fabric.util.animate. [#4068](https://github.com/kangax/fabric.js/pull/4068)
600
- - change: pathOffset does not get exported anymore in path.toObject, toDatalessObject export sourcePath instead of modifying path. [#4108](https://github.com/kangax/fabric.js/pull/4108)
939
+
940
+ - final
941
+ - fix dataurl and svg export on retina and rounding [#4674](https://github.com/kangax/fabric.js/pull/4674)
942
+ - avoid error if iText is removed on mousedown [#4650](https://github.com/kangax/fabric.js/pull/4650)
943
+ - fix calcOffset when text enter editing [#4649](https://github.com/kangax/fabric.js/pull/4649)
944
+ - Gradient fix parsing floats [#4637](https://github.com/kangax/fabric.js/pull/4637)
945
+ - Add CrossOrigin managment to fabric.Pattern [#4618](https://github.com/kangax/fabric.js/pull/4618)
946
+ - Add patternTransform toObject saving [#4626](https://github.com/kangax/fabric.js/pull/4626)
947
+ - normalize brushes render [#4613](https://github.com/kangax/fabric.js/pull/4613)
948
+ - avoid charspacing shortcut [#4594](https://github.com/kangax/fabric.js/pull/4594)
949
+ - Fix color toHexa() [#4579](https://github.com/kangax/fabric.js/pull/4579)
950
+ - rc3 and rc4
951
+ - more fixes to transformMatrix memoization
952
+ - Canvas.selectionFullyContained allows you to select objects just when full grabbed by the selections. [#4508](https://github.com/kangax/fabric.js/pull/4508)
953
+ - Remove some ouput of blank spaces from svg in order to avoid extra colored areas [#4524](https://github.com/kangax/fabric.js/pull/4524)
954
+ - Reinserted a performance shortcut for when there is no style at all [#4519](https://github.com/kangax/fabric.js/pull/4519)
955
+ - Manage canvas resize during a freedrawing brush without wiping the brush [#4527](https://github.com/kangax/fabric.js/pull/4527)
956
+ - Removed an extra closePath that was creating wrong visual on IntelIntegrated cards [#4549](https://github.com/kangax/fabric.js/pull/4549)
957
+ - Added a method to insert and remove text from command line [#4541](https://github.com/kangax/fabric.js/pull/4541)
958
+ - Some fixes around text styles management
959
+ - nodejs support changes: removed specific node code in order to use standard fabricjs code in nodejs.
960
+ - added fabric.util.getNodeCanvas that passed a JSDOM element allows you to get the node-canvas instance behind it and do what you need.
961
+ - rc2
962
+ - Fixed a transform matrix memoize missing width/height [#4491](https://github.com/kangax/fabric.js/pull/4491)
963
+ - Fix pattern drawing a point [#4492](https://github.com/kangax/fabric.js/pull/4492)
964
+ - Fixed Text.removeChars [#4495](https://github.com/kangax/fabric.js/pull/4495)
965
+ - Added back 2 node-canvas methods [#4497](https://github.com/kangax/fabric.js/pull/4497)
966
+ - Fix a typo not restoring hoverCursor correctly.
967
+ - rc1
968
+ - Remove node specific code [#4470](https://github.com/kangax/fabric.js/pull/4470)
969
+ - Improved Canvas.dispose code to leak less memory [#4471](https://github.com/kangax/fabric.js/pull/4471)
970
+ - Remove extra padding of cache when upper limited [#4467](https://github.com/kangax/fabric.js/pull/4467)
971
+ - Solved 2 perfomances problems with textbox [#4466](https://github.com/kangax/fabric.js/pull/4466) [#4465](https://github.com/kangax/fabric.js/pull/4465)
972
+ - Added justify-left justify-right and justify-center [#4437](https://github.com/kangax/fabric.js/pull/4437)
973
+ - Fix Group fromObject and subTargetCheck [#4454](https://github.com/kangax/fabric.js/pull/4454)
974
+ - Fix regression on IMG from SVG [#4450](https://github.com/kangax/fabric.js/pull/4450)
975
+ - Remove cache dimensions together with canvas [#4453](https://github.com/kangax/fabric.js/pull/4453)
976
+ - Fixed some fuzzyness cases for cache [#4452](https://github.com/kangax/fabric.js/pull/4452)
977
+ - Fixed resize filter for webgl [#4426](https://github.com/kangax/fabric.js/pull/4426)
978
+ - Stop searching target during a mouse move with a transform [#4442](https://github.com/kangax/fabric.js/pull/4442)
979
+ - safeguard shaders for non supported precisions [#4433](https://github.com/kangax/fabric.js/pull/4433)
980
+ - fix insert and remove style for edge cases [#4420](https://github.com/kangax/fabric.js/pull/4420)
981
+ - Fix object.move when in active selection [#4394](https://github.com/kangax/fabric.js/pull/4394)
982
+ - Memoize calcTransformMatrix function [#4418](https://github.com/kangax/fabric.js/pull/4418)
983
+ - Make \_set flag object as dirty just when a real change happen[#4415](https://github.com/kangax/fabric.js/pull/4415)
984
+ - Add browserShadowBlurConstant to adjust shadowBlur value [#4413](https://github.com/kangax/fabric.js/pull/4413)
985
+ - Fix set element not clearing the cacheTexture. [#4410](https://github.com/kangax/fabric.js/pull/4410)
986
+ - Multi selection key can be configured with an array of keys. [#4363](https://github.com/kangax/fabric.js/pull/4363)
987
+ - fix fast type in text loosing some style. [#4339](https://github.com/kangax/fabric.js/pull/4339)
988
+ - fixed division by zero with lockscaling flip.
989
+ - added paintFirst ( paint-order with svg support ) [#4303](https://github.com/kangax/fabric.js/pull/4303)
990
+ - beta7
991
+ - added a build flag for not attaching fabric to window [#4199](https://github.com/kangax/fabric.js/pull/4199)
992
+ - removed .active property from objects [#4200](https://github.com/kangax/fabric.js/pull/4200)
993
+ - Normalize Api for getSelectionStyles, setSelectionStyles [#4202](https://github.com/kangax/fabric.js/pull/4202)
994
+ - Fix shader for convolute filter [#4207](https://github.com/kangax/fabric.js/pull/4207)
995
+ - Better mouse support for lockscaling flip [#4225](https://github.com/kangax/fabric.js/pull/4225)
996
+ - Fix toDataUrl getting a blank canvas [#4229](https://github.com/kangax/fabric.js/pull/4229)
997
+ - Ouput version to json Objects [#4251](https://github.com/kangax/fabric.js/pull/4251)
998
+ - Use backstoreOnly for toDataUrl resize [#4254](https://github.com/kangax/fabric.js/pull/4254)
999
+ - Fix safari svg whitespace [#4294](https://github.com/kangax/fabric.js/pull/4294)
1000
+ - Fix Gradient export for paths [#4274](https://github.com/kangax/fabric.js/pull/4274)
1001
+ - Move mouseout/over in mousemove events [#4283](https://github.com/kangax/fabric.js/pull/4283)
1002
+ - Fix detection of click at the end of line [#4295](https://github.com/kangax/fabric.js/pull/4295)
1003
+ - added new event selection:updated [#4311](https://github.com/kangax/fabric.js/pull/4311)
1004
+ - Fixed free drawing path displacement [#4311](https://github.com/kangax/fabric.js/pull/4311)
1005
+ - Fixed scale equally and flipping not happening [#4313](https://github.com/kangax/fabric.js/pull/4313)
1006
+ - Select by drag makes the object fires 'selected' [#4314](https://github.com/kangax/fabric.js/pull/4314)
1007
+ - beta6
1008
+ - incompat: New filter system with WEBGL.
1009
+ - incompat: New Text/IText/Textbox code. Multibyte compatible, more accurate.
1010
+ - incompat: RequestAnimationFrame is used for the automatic render calls.
1011
+ - incompat: Named setter/getter are optional now.
1012
+ - incompat: Removed PathGroup class
1013
+ - incompat: Paths cannot be restored anymore from strings [#3713](https://github.com/kangax/fabric.js/pull/3713)
1014
+ - incompat: bumped node version to 4+ and jsdom to 9. [#3717](https://github.com/kangax/fabric.js/pull/3717)
1015
+ - incompat: removed the es5 / JSON shim support [#3722](https://github.com/kangax/fabric.js/pull/3722)
1016
+ - fix/incompat: IText setSelectionStyles does not change anymore style if no selection is present [#3765](https://github.com/kangax/fabric.js/pull/3765)
1017
+ - skipOffscreen default to true
1018
+ - Text.setSelectionStyle does not change anything if there is no selection [#3765](https://github.com/kangax/fabric.js/pull/3765)
1019
+ - Switch to canvas-prebuilt as dependency. Added parameter to choose the canvas package [#3757](https://github.com/kangax/fabric.js/pull/3757)
1020
+ - improvement: renderControls can now be called on its own. Added parameter styleOverride to allow for overriding current properties [#3887](https://github.com/kangax/fabric.js/pull/3887)
1021
+ - removed hasMoved and saveCoords from Group class [#3910](https://github.com/kangax/fabric.js/pull/3910)
1022
+ - forced all fromObject and fromElement to be async, normalized api. [#3996](https://github.com/kangax/fabric.js/pull/3996)
1023
+ - improvement: added support for request animation frame in mouse events [#3997](https://github.com/kangax/fabric.js/pull/3997)
1024
+ - added dblclick support for all objects [#3998](https://github.com/kangax/fabric.js/pull/3997)
1025
+ - textbox scale as a normal object [#4052](https://github.com/kangax/fabric.js/pull/4052)
1026
+ - Removed image meetOrSlice, alignX, alignY, introduced cropX, cropY [#4055](https://github.com/kangax/fabric.js/pull/4055)
1027
+ - Added Text.cleanStyle, Text.removeStyle [#4060](https://github.com/kangax/fabric.js/pull/4060)
1028
+ - change: lockRotation will not hide the mtr control anymore. introduced notAllowedCursor for canvas. [#4064](https://github.com/kangax/fabric.js/pull/4064)
1029
+ - improvement: added 2 percentage values to fabric.util.animate. [#4068](https://github.com/kangax/fabric.js/pull/4068)
1030
+ - change: pathOffset does not get exported anymore in path.toObject, toDatalessObject export sourcePath instead of modifying path. [#4108](https://github.com/kangax/fabric.js/pull/4108)
601
1031
 
602
1032
  ## [1.7.19]
603
1033
 
604
1034
  - Fixed the flip of images with scale equally [#4313](https://github.com/kangax/fabric.js/pull/4313)
605
1035
  - Improved touch detection [#4302](https://github.com/kangax/fabric.js/pull/4302)
606
1036
 
607
-
608
1037
  ## [1.7.18]
609
1038
 
610
1039
  - Fixed doubling of subtargets for preserveObjectStacking = true [#4297](https://github.com/kangax/fabric.js/pull/4297)
@@ -627,7 +1056,6 @@ breaking: Canvas.onBeforeScaleRotate is removed, developers need to migrate to t
627
1056
  - Fix: activeGroup did not destroy correctly if a toObject was happening
628
1057
  - Improvement: Pass the event to object:modified when available. [#4061](https://github.com/kangax/fabric.js/pull/4061)
629
1058
 
630
-
631
1059
  ## [1.7.15]
632
1060
 
633
1061
  - Improvement: Made iText keymap public. [#4053](https://github.com/kangax/fabric.js/pull/4053)
@@ -648,7 +1076,6 @@ breaking: Canvas.onBeforeScaleRotate is removed, developers need to migrate to t
648
1076
  - Fix: properly set options from path fromDatalessObjects [#3995](https://github.com/kangax/fabric.js/pull/3995)
649
1077
  - Check for slice before action.slice. Avoid conflicts with heavy customized code. [#3992](https://github.com/kangax/fabric.js/pull/3992)
650
1078
 
651
-
652
1079
  ## [1.7.12]
653
1080
 
654
1081
  - Fix: removed possible memleaks from window resize event. [#3984](https://github.com/kangax/fabric.js/pull/3984)
@@ -661,7 +1088,6 @@ breaking: Canvas.onBeforeScaleRotate is removed, developers need to migrate to t
661
1088
  - Fix: subTargetCheck on activeObject/activeGroup was firing too many events [#3909](https://github.com/kangax/fabric.js/pull/3909)
662
1089
  - Fix: After addWithUpdate or removeWithUpdate object coords must be updated. [#3911](https://github.com/kangax/fabric.js/pull/3911)
663
1090
 
664
-
665
1091
  ## [1.7.11]
666
1092
 
667
1093
  - Hotfix: restore path-groups ability to render [#3877](https://github.com/kangax/fabric.js/pull/3877)
@@ -734,7 +1160,7 @@ breaking: Canvas.onBeforeScaleRotate is removed, developers need to migrate to t
734
1160
 
735
1161
  ## [1.7.3]
736
1162
 
737
- - Improvement: mousewheel event is handled with target and fired also from objects. [#3612](https://github.com/kangax/fabric.js/pull/3612)
1163
+ - Improvement: mousewheel event is handled with target and fired also from objects. [#3612](https://github.com/kangax/fabric.js/pull/3612)
738
1164
  - Improvement: Pattern loads for canvas background and overlay, corrected svg pattern export [#3601](https://github.com/kangax/fabric.js/pull/3601)
739
1165
  - Fix: Wait for pattern loading before calling callback [#3598](https://github.com/kangax/fabric.js/pull/3598)
740
1166
  - Fix: add 2 extra pixels to cache canvases to avoid aliasing cut [#3596](https://github.com/kangax/fabric.js/pull/3596)
@@ -849,12 +1275,12 @@ breaking: Canvas.onBeforeScaleRotate is removed, developers need to migrate to t
849
1275
  - Fix: iText mousemove event removal, clear the correct area for Itext, stopped redrawing selection if not necessary [#3016](https://github.com/kangax/fabric.js/pull/3016)
850
1276
  - Fix: background image and overlay image scale and move with canvas viewportTransform, parameter available [#3019](https://github.com/kangax/fabric.js/pull/3019)
851
1277
  - Added: support sub targeting in groups in events [#2997](https://github.com/kangax/fabric.js/pull/2997)
852
- - Fix: Select transparent object on mouse up because of _maybeGroupObject [#2997](https://github.com/kangax/fabric.js/pull/2997)
1278
+ - Fix: Select transparent object on mouse up because of \_maybeGroupObject [#2997](https://github.com/kangax/fabric.js/pull/2997)
853
1279
  - Fix: Remove reference to lastRenderedObject on canvas.remove [#3023](https://github.com/kangax/fabric.js/pull/3023)
854
1280
  - Fix: Wait for all objects to be loaded before deleting the properties and setting options. [#3029](https://github.com/kangax/fabric.js/pull/3029)
855
1281
  - Fix: Object Padding is unaffected by object transform. [#3057](https://github.com/kangax/fabric.js/pull/3057)
856
1282
  - Fix: Restore lastRenderedObject usage. Introduced Canvas.lastRenderedKey to retrieve the lastRendered object from down the stack [#3057](https://github.com/kangax/fabric.js/pull/3057)
857
- - Fix: _calcTextareaPosition correctly calculate the position considering the viewportTransform. [#3057](https://github.com/kangax/fabric.js/pull/3057)
1283
+ - Fix: \_calcTextareaPosition correctly calculate the position considering the viewportTransform. [#3057](https://github.com/kangax/fabric.js/pull/3057)
858
1284
  - Fix: Fixed selectionBacgroundColor with viewport transform. [#3057](https://github.com/kangax/fabric.js/pull/3057)
859
1285
  - Improvement: Correctly render the cursor with viewport scaling, improved the cursor centering. [#3057](https://github.com/kangax/fabric.js/pull/3057)
860
1286
  - Fix: Use canvas zoom and pan when using is target transparent. [#2980](https://github.com/kangax/fabric.js/pull/2980)
@@ -863,7 +1289,7 @@ breaking: Canvas.onBeforeScaleRotate is removed, developers need to migrate to t
863
1289
 
864
1290
  - Fix: restore canvas properties on loadFromJSON with includeProperties. [#2921](https://github.com/kangax/fabric.js/pull/2921)
865
1291
  - Fix: Allow hoverCursor on non selectable objects, moveCursor does not appear if the object is not moveable.
866
- Added object.moveCursor to specify a cursor for moving per object. [#2924](https://github.com/kangax/fabric.js/pull/2924)
1292
+ Added object.moveCursor to specify a cursor for moving per object. [#2924](https://github.com/kangax/fabric.js/pull/2924)
867
1293
  - Fix: Add missing stroke.live translation, allow gradientTransform for dashed line. [#2926](https://github.com/kangax/fabric.js/pull/2926)
868
1294
  - Improvement: Allow customization of keys that iteract with mouse action ( multiselect key, free transform key, alternative action key, centered transform key ) [#2925](https://github.com/kangax/fabric.js/pull/2925)
869
1295
  - Added: Make iText fires object:modified on text change on exit editing [#2927](https://github.com/kangax/fabric.js/pull/2927)
@@ -880,7 +1306,6 @@ Added object.moveCursor to specify a cursor for moving per object. [#2924](https
880
1306
  - Fix: Itext spacing in justify mode bug [#2971](https://github.com/kangax/fabric.js/pull/2971)
881
1307
  - Fix: Object.toDataUrl export when some window.devicepixelRatio is present (retina or browser zoom) [#2972](https://github.com/kangax/fabric.js/pull/2972)
882
1308
 
883
-
884
1309
  ## [1.6.1]
885
1310
 
886
1311
  - Fix: image with broken element throwing error on toObject() [#2878](https://github.com/kangax/fabric.js/pull/2878)
@@ -904,7 +1329,7 @@ Added object.moveCursor to specify a cursor for moving per object. [#2924](https
904
1329
  - Fix `fabric.Path` initialize with user options [#2117](https://github.com/kangax/fabric.js/pull/2117)
905
1330
  - Fix sorting of objects in activeGroup during rendering [#2130](https://github.com/kangax/fabric.js/pull/2130).
906
1331
  - Make sure that 'object.canvas' property is always set if the object is directly or indirectly on canvas [#2141](https://github.com/kangax/fabric.js/pull/2141)
907
- - Fix _getTopLeftCoords function that was returning TopCenter [#2127](https://github.com/kangax/fabric.js/pull/2127)
1332
+ - Fix \_getTopLeftCoords function that was returning TopCenter [#2127](https://github.com/kangax/fabric.js/pull/2127)
908
1333
  - Fix events not being fired after resize with pinch zoom [#510](https://github.com/kangax/fabric.js/pull/510)
909
1334
  - Fix mouse:over, mouse:out events not receiving event object [#2146](https://github.com/kangax/fabric.js/pull/2146)
910
1335
  - Don't include elements from `<metadata>` during SVG parsing [#2160](https://github.com/kangax/fabric.js/pull/2160)
@@ -916,7 +1341,7 @@ Added object.moveCursor to specify a cursor for moving per object. [#2924](https
916
1341
  - Fix image.filter.Resize toObject and fromObject [#2164](https://github.com/kangax/fabric.js/pull/2164)
917
1342
  - Fix strokeWidth calculation during resize operations [#2178](https://github.com/kangax/fabric.js/pull/2178)
918
1343
  - Fix iText selection on upperCanvas to support transformMatrix [#2173](https://github.com/kangax/fabric.js/pull/2173)
919
- - Removed unnecessary calls to removeShadow and restoreGlobalCompositeOperation [#2175](https://github.com/kangax/fabric.js/pull/2175)
1344
+ - Removed unnecessary calls to removeShadow and restoreGlobalCompositeOperation [#2175](https://github.com/kangax/fabric.js/pull/2175)
920
1345
  - Fix the offset for pattern and gradients filling and stroking in text [#2183](https://github.com/kangax/fabric.js/pull/2183)
921
1346
  - Fix loading of stroke gradients from Object [#2182](https://github.com/kangax/fabric.js/pull/2182)
922
1347
  - Fix segmentation fault on node.js when image doesn't exist [#2193](https://github.com/kangax/fabric.js/pull/2193)
@@ -941,14 +1366,14 @@ Added object.moveCursor to specify a cursor for moving per object. [#2924](https
941
1366
  - Fix BoundingBox calculation for pathGroups that have inner transformMatrix [#2348](https://github.com/kangax/fabric.js/pull/2348)
942
1367
  - Fix export toObject to include transformMatrix property [#2350](https://github.com/kangax/fabric.js/pull/2350)
943
1368
  - Fix textbox class to supporto toSVG() and newest style fixes [#2347]
944
- (https://github.com/kangax/fabric.js/pull/2347)
1369
+ (https://github.com/kangax/fabric.js/pull/2347)
945
1370
  - Fix regression on text ( textDecoration and textlinebackground ) [#2354](https://github.com/kangax/fabric.js/pull/2354)
946
1371
  - Add support for multi keys chars using onInput event [#2352](https://github.com/kangax/fabric.js/pull/2352)
947
1372
  - Fix iText and textbox entering in edit mode if clicked on a corner [#2393](https://github.com/kangax/fabric.js/pull/2393)
948
1373
  - Fix iText styles error when in justify align [#2370](https://github.com/kangax/fabric.js/pull/2370)
949
1374
  - Add support for shadow export in svg for groups, pathgroups and images. [#2364]
950
1375
  - Add rendering shadows for groups [#2364](https://github.com/kangax/fabric.js/pull/2364)
951
- - Add support for parsing nested SVGs x and y attributes [#2399](https://github.com/kangax/fabric.js/pull/2399)
1376
+ - Add support for parsing nested SVGs x and y attributes [#2399](https://github.com/kangax/fabric.js/pull/2399)
952
1377
  - Add support for gradientTransform in setGradient(fill or stroke) [#2401](https://github.com/kangax/fabric.js/pull/2401)
953
1378
  - Fix Error in svg parsed that was stopping on gradient color-stop missing stop attribute [#2414](https://github.com/kangax/fabric.js/pull/2414)
954
1379
  - toObject method return copied arrays for array like properties [#2407](https://github.com/kangax/fabric.js/pull/2407)
@@ -960,7 +1385,7 @@ Added object.moveCursor to specify a cursor for moving per object. [#2924](https
960
1385
  - Add support for skewing objects using shift and m-controls in interactive mode, and using object.skewX/Y [#2482](https://github.com/kangax/fabric.js/pull/2482)
961
1386
  - Fix gradientTransform not exported in gradient toObject [#2486](https://github.com/kangax/fabric.js/pull/2486)
962
1387
  - Fix object.toDataUrl with multiplier [#2487](https://github.com/kangax/fabric.js/pull/2487)
963
- BACK INCOMPATIBILITY: removed 'allOnTop' parameter from fabric.StaticCanvas.renderAll.
1388
+ BACK INCOMPATIBILITY: removed 'allOnTop' parameter from fabric.StaticCanvas.renderAll.
964
1389
  - Fix mask filter, mask image is now streched on all image [#2543](https://github.com/kangax/fabric.js/pull/2543)
965
1390
  - Fix text onInput event to behave correctly if some text is selected [#2501](https://github.com/kangax/fabric.js/pull/2502)
966
1391
  - Fix object with selectable = false could be selected with shift click [#2503](https://github.com/kangax/fabric.js/pull/2503)
@@ -1002,6 +1427,7 @@ BACK INCOMPATIBILITY: removed 'allOnTop' parameter from fabric.StaticCanvas.rend
1002
1427
  ## [1.5.0]
1003
1428
 
1004
1429
  **Edge**
1430
+
1005
1431
  - Added image preserve aspect ratio attributes and functionality (fabric.Image.alignY, fabric.Image.alignY, fabric.Image.meetOrSlic )
1006
1432
  - Added ImageResizeFilters , option to resize dynamically or statically the images using a set of resize filter alghoritms.
1007
1433
  - [BACK_INCOMPAT] `fabric.Collection#remove` doesn't return removed object -> returns `this` (chainable)
@@ -1057,7 +1483,7 @@ BACK INCOMPATIBILITY: removed 'allOnTop' parameter from fabric.StaticCanvas.rend
1057
1483
  - [BACK_INCOMPAT] `fabric.Text#strokeStyle` -> `fabric.Text#stroke`, for consistency with other objects.
1058
1484
 
1059
1485
  - [BACK_INCOMPAT] `fabric.Object.setActive(…)` -> `fabric.Object.set('active', …)`.
1060
- `fabric.Object.isActive` is gone (use `fabric.Object.active` instead)
1486
+ `fabric.Object.isActive` is gone (use `fabric.Object.active` instead)
1061
1487
 
1062
1488
  - [BACK_INCOMPAT] `fabric.Group#objects` -> `fabric.Group._objects`.
1063
1489
 
@@ -1066,7 +1492,7 @@ BACK INCOMPATIBILITY: removed 'allOnTop' parameter from fabric.StaticCanvas.rend
1066
1492
  - [BACK_INCOMPAT] `fabric.Text#setFontsize` becomes `fabric.Object#setFontSize`.
1067
1493
 
1068
1494
  - [BACK_INCOMPAT] `fabric.Canvas.toDataURL` now accepts options object instead linear arguments.
1069
- `fabric.Canvas.toDataURLWithMultiplier` is deprecated;
1070
- use `fabric.Canvas.toDataURL({ multiplier: … })` instead
1495
+ `fabric.Canvas.toDataURLWithMultiplier` is deprecated;
1496
+ use `fabric.Canvas.toDataURL({ multiplier: … })` instead
1071
1497
 
1072
1498
  ## [1.0.0]