fabric 5.3.0 → 6.0.0-beta3

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 (604) 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 +43 -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 +532 -189
  13. package/CONTRIBUTING.md +224 -59
  14. package/README.md +200 -235
  15. package/bower.json +1 -3
  16. package/dist/fabric.d.ts +42 -0
  17. package/dist/index.d.ts +2 -0
  18. package/dist/index.js +27582 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/index.min.js +1 -0
  21. package/dist/index.mjs +27519 -0
  22. package/dist/index.mjs.map +1 -0
  23. package/dist/index.node.cjs +27663 -0
  24. package/dist/index.node.cjs.map +1 -0
  25. package/dist/index.node.d.ts +14 -0
  26. package/dist/index.node.mjs +27606 -0
  27. package/dist/index.node.mjs.map +1 -0
  28. package/dist/src/ClassRegistry.d.ts +13 -0
  29. package/dist/src/Collection.d.ts +136 -0
  30. package/dist/src/CommonMethods.d.ts +32 -0
  31. package/dist/src/EventTypeDefs.d.ts +227 -0
  32. package/dist/src/Intersection.d.ts +112 -0
  33. package/dist/src/Observable.d.ts +60 -0
  34. package/dist/src/Pattern.d.ts +113 -0
  35. package/dist/src/Point.d.ts +232 -0
  36. package/dist/src/Shadow.d.ts +97 -0
  37. package/dist/src/brushes/BaseBrush.d.ts +105 -0
  38. package/dist/src/brushes/CircleBrush.d.ts +49 -0
  39. package/dist/src/brushes/PatternBrush.d.ts +23 -0
  40. package/dist/src/brushes/PencilBrush.d.ts +92 -0
  41. package/dist/src/brushes/SprayBrush.d.ts +79 -0
  42. package/dist/src/cache.d.ts +47 -0
  43. package/dist/src/canvas/Canvas.d.ts +548 -0
  44. package/dist/src/canvas/SelectableCanvas.d.ts +754 -0
  45. package/dist/src/canvas/StaticCanvas.d.ts +778 -0
  46. package/dist/src/canvas/TextEditingManager.d.ts +17 -0
  47. package/dist/src/canvas/canvas_gestures.mixin.d.ts +2 -0
  48. package/dist/src/color/Color.d.ts +174 -0
  49. package/dist/src/color/color_map.d.ts +155 -0
  50. package/dist/src/color/constants.d.ts +22 -0
  51. package/dist/src/color/util.d.ts +12 -0
  52. package/dist/src/config.d.ts +115 -0
  53. package/dist/src/constants.d.ts +14 -0
  54. package/dist/src/controls/Control.d.ts +228 -0
  55. package/dist/src/controls/changeWidth.d.ts +13 -0
  56. package/dist/src/controls/commonControls.d.ts +28 -0
  57. package/dist/src/controls/controlRendering.d.ts +29 -0
  58. package/dist/src/controls/drag.d.ts +12 -0
  59. package/dist/src/controls/index.d.ts +13 -0
  60. package/dist/src/controls/polyControl.d.ts +5 -0
  61. package/dist/src/controls/rotate.d.ts +12 -0
  62. package/dist/src/controls/scale.d.ts +47 -0
  63. package/dist/src/controls/scaleSkew.d.ts +39 -0
  64. package/dist/src/controls/skew.d.ts +33 -0
  65. package/dist/src/controls/util.d.ts +41 -0
  66. package/dist/src/controls/wrapWithFireEvent.d.ts +8 -0
  67. package/dist/src/controls/wrapWithFixedAnchor.d.ts +9 -0
  68. package/dist/src/env/browser.d.ts +3 -0
  69. package/dist/src/env/index.d.ts +15 -0
  70. package/dist/src/env/node.d.ts +5 -0
  71. package/dist/src/env/types.d.ts +15 -0
  72. package/dist/src/filters/BaseFilter.d.ts +153 -0
  73. package/dist/src/filters/BlendColor.d.ts +80 -0
  74. package/dist/src/filters/BlendImage.d.ts +92 -0
  75. package/dist/src/filters/Blur.d.ts +51 -0
  76. package/dist/src/filters/Boilerplate.d.ts +48 -0
  77. package/dist/src/filters/Brightness.d.ts +47 -0
  78. package/dist/src/filters/Canvas2dFilterBackend.d.ts +27 -0
  79. package/dist/src/filters/ColorMatrix.d.ts +63 -0
  80. package/dist/src/filters/ColorMatrixFilters.d.ts +545 -0
  81. package/dist/src/filters/Composed.d.ts +45 -0
  82. package/dist/src/filters/Contrast.d.ts +45 -0
  83. package/dist/src/filters/Convolute.d.ts +82 -0
  84. package/dist/src/filters/FilterBackend.d.ts +14 -0
  85. package/dist/src/filters/GLProbes/GLProbe.d.ts +11 -0
  86. package/dist/src/filters/GLProbes/NodeGLProbe.d.ts +11 -0
  87. package/dist/src/filters/GLProbes/WebGLProbe.d.ts +20 -0
  88. package/dist/src/filters/Gamma.d.ts +54 -0
  89. package/dist/src/filters/Grayscale.d.ts +46 -0
  90. package/dist/src/filters/HueRotation.d.ts +24 -0
  91. package/dist/src/filters/Invert.d.ts +55 -0
  92. package/dist/src/filters/Noise.d.ts +54 -0
  93. package/dist/src/filters/Pixelate.d.ts +44 -0
  94. package/dist/src/filters/RemoveColor.d.ts +63 -0
  95. package/dist/src/filters/Resize.d.ts +136 -0
  96. package/dist/src/filters/Saturation.d.ts +48 -0
  97. package/dist/src/filters/Vibrance.d.ts +48 -0
  98. package/dist/src/filters/WebGLFilterBackend.d.ts +126 -0
  99. package/dist/src/filters/filters.d.ts +21 -0
  100. package/dist/src/filters/index.d.ts +5 -0
  101. package/dist/src/filters/shaders/baseFilter.d.ts +4 -0
  102. package/dist/src/filters/shaders/blendColor.d.ts +13 -0
  103. package/dist/src/filters/shaders/blendImage.d.ts +3 -0
  104. package/dist/src/filters/shaders/blur.d.ts +2 -0
  105. package/dist/src/filters/shaders/brightness.d.ts +2 -0
  106. package/dist/src/filters/shaders/colorMatrix.d.ts +2 -0
  107. package/dist/src/filters/shaders/constrast.d.ts +2 -0
  108. package/dist/src/filters/shaders/convolute.d.ts +11 -0
  109. package/dist/src/filters/shaders/gamma.d.ts +2 -0
  110. package/dist/src/filters/shaders/grayscale.d.ts +3 -0
  111. package/dist/src/filters/shaders/invert.d.ts +2 -0
  112. package/dist/src/filters/shaders/noise.d.ts +2 -0
  113. package/dist/src/filters/shaders/pixelate.d.ts +2 -0
  114. package/dist/src/filters/shaders/removeColor.d.ts +2 -0
  115. package/dist/src/filters/shaders/saturation.d.ts +2 -0
  116. package/dist/src/filters/shaders/vibrance.d.ts +2 -0
  117. package/dist/src/filters/typedefs.d.ts +49 -0
  118. package/dist/src/gradient/Gradient.d.ts +149 -0
  119. package/dist/src/gradient/constants.d.ts +15 -0
  120. package/dist/src/gradient/parser/index.d.ts +4 -0
  121. package/dist/src/gradient/parser/misc.d.ts +4 -0
  122. package/dist/src/gradient/parser/parseColorStops.d.ts +3 -0
  123. package/dist/src/gradient/parser/parseCoords.d.ts +17 -0
  124. package/dist/src/gradient/typedefs.d.ts +93 -0
  125. package/dist/src/mixins/eraser_brush.mixin.d.ts +2 -0
  126. package/dist/src/parkinglot/canvas_animation.mixin.d.ts +2 -0
  127. package/dist/src/parkinglot/straighten.d.ts +2 -0
  128. package/dist/src/parser/applyViewboxTransform.d.ts +5 -0
  129. package/dist/src/parser/attributes.d.ts +6 -0
  130. package/dist/src/parser/constants.d.ts +53 -0
  131. package/dist/src/parser/doesSomeParentMatch.d.ts +2 -0
  132. package/dist/src/parser/elementById.d.ts +6 -0
  133. package/dist/src/parser/elementMatchesRule.d.ts +5 -0
  134. package/dist/src/parser/elements_parser.d.ts +3 -0
  135. package/dist/src/parser/getCSSRules.d.ts +7 -0
  136. package/dist/src/parser/getGlobalStylesForElement.d.ts +5 -0
  137. package/dist/src/parser/getGradientDefs.d.ts +7 -0
  138. package/dist/src/parser/getMultipleNodes.d.ts +2 -0
  139. package/dist/src/parser/getSvgRegex.d.ts +2 -0
  140. package/dist/src/parser/hasAncestorWithNodeName.d.ts +2 -0
  141. package/dist/src/parser/index.d.ts +10 -0
  142. package/dist/src/parser/loadSVGFromString.d.ts +12 -0
  143. package/dist/src/parser/loadSVGFromURL.d.ts +13 -0
  144. package/dist/src/parser/normalizeAttr.d.ts +2 -0
  145. package/dist/src/parser/normalizeValue.d.ts +2 -0
  146. package/dist/src/parser/parseAttributes.d.ts +9 -0
  147. package/dist/src/parser/parseElements.d.ts +11 -0
  148. package/dist/src/parser/parseFontDeclaration.d.ts +10 -0
  149. package/dist/src/parser/parsePointsAttribute.d.ts +12 -0
  150. package/dist/src/parser/parseSVGDocument.d.ts +15 -0
  151. package/dist/src/parser/parseStyleAttribute.d.ts +9 -0
  152. package/dist/src/parser/parseStyleObject.d.ts +2 -0
  153. package/dist/src/parser/parseStyleString.d.ts +2 -0
  154. package/dist/src/parser/parseTransformAttribute.d.ts +10 -0
  155. package/dist/src/parser/parseUseDirectives.d.ts +2 -0
  156. package/dist/src/parser/percent.d.ts +9 -0
  157. package/dist/src/parser/recursivelyParseGradientsXlink.d.ts +2 -0
  158. package/dist/src/parser/rotateMatrix.d.ts +2 -0
  159. package/dist/src/parser/scaleMatrix.d.ts +2 -0
  160. package/dist/src/parser/selectorMatches.d.ts +2 -0
  161. package/dist/src/parser/setStrokeFillOpacity.d.ts +6 -0
  162. package/dist/src/parser/skewMatrix.d.ts +2 -0
  163. package/dist/src/parser/translateMatrix.d.ts +2 -0
  164. package/dist/src/shapes/ActiveSelection.d.ts +82 -0
  165. package/dist/src/shapes/Circle.d.ts +99 -0
  166. package/dist/src/shapes/Ellipse.d.ts +84 -0
  167. package/dist/src/shapes/Group.d.ts +408 -0
  168. package/dist/src/shapes/IText/DraggableTextDelegate.d.ts +78 -0
  169. package/dist/src/shapes/IText/IText.d.ts +335 -0
  170. package/dist/src/shapes/IText/ITextBehavior.d.ts +287 -0
  171. package/dist/src/shapes/IText/ITextClickBehavior.d.ts +83 -0
  172. package/dist/src/shapes/IText/ITextKeyBehavior.d.ts +195 -0
  173. package/dist/src/shapes/IText/constants.d.ts +13 -0
  174. package/dist/src/shapes/Image.d.ts +311 -0
  175. package/dist/src/shapes/Line.d.ts +126 -0
  176. package/dist/src/shapes/Object/AnimatableObject.d.ts +33 -0
  177. package/dist/src/shapes/Object/FabricObject.d.ts +11 -0
  178. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts +74 -0
  179. package/dist/src/shapes/Object/InteractiveObject.d.ts +296 -0
  180. package/dist/src/shapes/Object/Object.d.ts +594 -0
  181. package/dist/src/shapes/Object/ObjectGeometry.d.ts +327 -0
  182. package/dist/src/shapes/Object/ObjectOrigin.d.ts +109 -0
  183. package/dist/src/shapes/Object/StackedObject.d.ts +72 -0
  184. package/dist/src/shapes/Object/defaultValues.d.ts +76 -0
  185. package/dist/src/shapes/Object/types/BaseProps.d.ts +84 -0
  186. package/dist/src/shapes/Object/types/BorderProps.d.ts +37 -0
  187. package/dist/src/shapes/Object/types/ControlProps.d.ts +62 -0
  188. package/dist/src/shapes/Object/types/FabricObjectProps.d.ts +96 -0
  189. package/dist/src/shapes/Object/types/FillStrokeProps.d.ts +80 -0
  190. package/dist/src/shapes/Object/types/LockInteractionProps.d.ts +51 -0
  191. package/dist/src/shapes/Object/types/ObjectProps.d.ts +42 -0
  192. package/dist/src/shapes/Object/types/SerializedObjectProps.d.ts +66 -0
  193. package/dist/src/shapes/Object/types/index.d.ts +6 -0
  194. package/dist/src/shapes/Path.d.ts +130 -0
  195. package/dist/src/shapes/Polygon.d.ts +9 -0
  196. package/dist/src/shapes/Polyline.d.ts +140 -0
  197. package/dist/src/shapes/Rect.d.ts +76 -0
  198. package/dist/src/shapes/Text/StyledText.d.ts +119 -0
  199. package/dist/src/shapes/Text/Text.d.ts +673 -0
  200. package/dist/src/shapes/Text/TextSVGExportMixin.d.ts +32 -0
  201. package/dist/src/shapes/Text/constants.d.ts +7 -0
  202. package/dist/src/shapes/Textbox.d.ts +185 -0
  203. package/dist/src/shapes/Triangle.d.ts +25 -0
  204. package/dist/src/typedefs.d.ts +90 -0
  205. package/dist/src/util/animation/AnimationBase.d.ts +54 -0
  206. package/dist/src/util/animation/AnimationFrameProvider.d.ts +3 -0
  207. package/dist/src/util/animation/AnimationRegistry.d.ts +29 -0
  208. package/dist/src/util/animation/ArrayAnimation.d.ts +10 -0
  209. package/dist/src/util/animation/ColorAnimation.d.ts +11 -0
  210. package/dist/src/util/animation/ValueAnimation.d.ts +10 -0
  211. package/dist/src/util/animation/animate.d.ts +37 -0
  212. package/dist/src/util/animation/easing.d.ts +130 -0
  213. package/dist/src/util/animation/types.d.ts +87 -0
  214. package/dist/src/util/applyMixins.d.ts +8 -0
  215. package/dist/src/util/dom_event.d.ts +5 -0
  216. package/dist/src/util/dom_misc.d.ts +39 -0
  217. package/dist/src/util/dom_request.d.ts +14 -0
  218. package/dist/src/util/dom_style.d.ts +7 -0
  219. package/dist/src/util/fireEvent.d.ts +3 -0
  220. package/dist/src/util/index.d.ts +35 -0
  221. package/dist/src/util/internals/cloneDeep.d.ts +2 -0
  222. package/dist/src/util/internals/getRandomInt.d.ts +8 -0
  223. package/dist/src/util/internals/ifNaN.d.ts +8 -0
  224. package/dist/src/util/internals/index.d.ts +4 -0
  225. package/dist/src/util/internals/removeFromArray.d.ts +9 -0
  226. package/dist/src/util/internals/uid.d.ts +2 -0
  227. package/dist/src/util/lang_string.d.ts +22 -0
  228. package/dist/src/util/misc/boundingBoxFromPoints.d.ts +9 -0
  229. package/dist/src/util/misc/capValue.d.ts +2 -0
  230. package/dist/src/util/misc/cos.d.ts +10 -0
  231. package/dist/src/util/misc/dom.d.ts +28 -0
  232. package/dist/src/util/misc/findScaleTo.d.ts +29 -0
  233. package/dist/src/util/misc/groupSVGElements.d.ts +9 -0
  234. package/dist/src/util/misc/isTransparent.d.ts +11 -0
  235. package/dist/src/util/misc/matrix.d.ts +92 -0
  236. package/dist/src/util/misc/mergeClipPaths.d.ts +23 -0
  237. package/dist/src/util/misc/objectEnlive.d.ts +56 -0
  238. package/dist/src/util/misc/objectTransforms.d.ts +68 -0
  239. package/dist/src/util/misc/pick.d.ts +9 -0
  240. package/dist/src/util/misc/planeChange.d.ts +84 -0
  241. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts +51 -0
  242. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts +81 -0
  243. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts +25 -0
  244. package/dist/src/util/misc/projectStroke/index.d.ts +11 -0
  245. package/dist/src/util/misc/projectStroke/types.d.ts +23 -0
  246. package/dist/src/util/misc/radiansDegreesConversion.d.ts +14 -0
  247. package/dist/src/util/misc/resolveOrigin.d.ts +9 -0
  248. package/dist/src/util/misc/rotatePoint.d.ts +12 -0
  249. package/dist/src/util/misc/sin.d.ts +10 -0
  250. package/dist/src/util/misc/svgParsing.d.ts +53 -0
  251. package/dist/src/util/misc/textStyles.d.ts +32 -0
  252. package/dist/src/util/misc/toFixed.d.ts +8 -0
  253. package/dist/src/util/misc/vectors.d.ts +57 -0
  254. package/dist/src/util/path/index.d.ts +96 -0
  255. package/dist/src/util/path/regex.d.ts +3 -0
  256. package/dist/src/util/path/typechecks.d.ts +24 -0
  257. package/dist/src/util/path/typedefs.d.ts +220 -0
  258. package/dist/src/util/transform_matrix_removal.d.ts +14 -0
  259. package/dist/src/util/types.d.ts +19 -0
  260. package/fabric.ts +51 -0
  261. package/index.node.ts +37 -0
  262. package/index.ts +1 -0
  263. package/package.json +100 -40
  264. package/publish.js +0 -26
  265. package/rollup.config.mjs +91 -0
  266. package/rollup.test.config.js +24 -0
  267. package/scripts/build.mjs +50 -0
  268. package/scripts/buildLock.mjs +115 -0
  269. package/scripts/buildReporter.mjs +15 -0
  270. package/scripts/buildStats.mjs +139 -0
  271. package/scripts/dirname.mjs +14 -0
  272. package/scripts/git.mjs +36 -0
  273. package/scripts/index.mjs +564 -0
  274. package/scripts/sandbox.mjs +149 -0
  275. package/src/ClassRegistry.ts +56 -0
  276. package/src/Collection.ts +346 -0
  277. package/src/CommonMethods.ts +63 -0
  278. package/src/EventTypeDefs.ts +296 -0
  279. package/src/Intersection.ts +302 -0
  280. package/src/Observable.ts +181 -0
  281. package/src/Pattern.ts +227 -0
  282. package/src/Point.ts +388 -0
  283. package/src/Shadow.ts +214 -0
  284. package/src/brushes/{base_brush.class.js → BaseBrush.ts} +65 -42
  285. package/src/brushes/CircleBrush.ts +145 -0
  286. package/src/brushes/PatternBrush.ts +70 -0
  287. package/src/brushes/PencilBrush.ts +300 -0
  288. package/src/brushes/SprayBrush.ts +219 -0
  289. package/src/cache.ts +90 -0
  290. package/src/canvas/Canvas.ts +1607 -0
  291. package/src/canvas/SelectableCanvas.ts +1608 -0
  292. package/src/canvas/StaticCanvas.ts +1734 -0
  293. package/src/canvas/TextEditingManager.ts +48 -0
  294. package/src/canvas/canvas_gestures.mixin.ts +207 -0
  295. package/src/color/Color.ts +404 -0
  296. package/src/color/color_map.ts +154 -0
  297. package/src/color/constants.ts +26 -0
  298. package/src/color/util.ts +32 -0
  299. package/src/config.ts +159 -0
  300. package/src/constants.ts +20 -0
  301. package/src/controls/Control.ts +380 -0
  302. package/src/controls/changeWidth.ts +52 -0
  303. package/src/controls/commonControls.ts +105 -0
  304. package/src/controls/controlRendering.ts +138 -0
  305. package/src/controls/drag.ts +31 -0
  306. package/src/controls/index.ts +22 -0
  307. package/src/controls/polyControl.ts +135 -0
  308. package/src/controls/rotate.ts +87 -0
  309. package/src/controls/scale.ts +277 -0
  310. package/src/controls/scaleSkew.ts +92 -0
  311. package/src/controls/skew.ts +242 -0
  312. package/src/controls/util.ts +154 -0
  313. package/src/controls/wrapWithFireEvent.ts +25 -0
  314. package/src/controls/wrapWithFixedAnchor.ts +20 -0
  315. package/src/env/browser.ts +32 -0
  316. package/src/env/index.ts +24 -0
  317. package/src/env/node.ts +56 -0
  318. package/src/env/types.ts +15 -0
  319. package/src/filters/{base_filter.class.js → BaseFilter.ts} +192 -151
  320. package/src/filters/BlendColor.ts +217 -0
  321. package/src/filters/BlendImage.ts +228 -0
  322. package/src/filters/Blur.ts +179 -0
  323. package/src/filters/Boilerplate.ts +94 -0
  324. package/src/filters/Brightness.ts +83 -0
  325. package/src/filters/Canvas2dFilterBackend.ts +65 -0
  326. package/src/filters/ColorMatrix.ts +145 -0
  327. package/src/filters/ColorMatrixFilters.ts +77 -0
  328. package/src/filters/Composed.ts +76 -0
  329. package/src/filters/Contrast.ts +82 -0
  330. package/src/filters/Convolute.ts +184 -0
  331. package/src/filters/FilterBackend.ts +34 -0
  332. package/src/filters/GLProbes/GLProbe.ts +11 -0
  333. package/src/filters/GLProbes/NodeGLProbe.ts +15 -0
  334. package/src/filters/GLProbes/WebGLProbe.ts +46 -0
  335. package/src/filters/Gamma.ts +110 -0
  336. package/src/filters/Grayscale.ts +102 -0
  337. package/src/filters/HueRotation.ts +62 -0
  338. package/src/filters/Invert.ts +99 -0
  339. package/src/filters/Noise.ts +94 -0
  340. package/src/filters/Pixelate.ts +96 -0
  341. package/src/filters/RemoveColor.ts +135 -0
  342. package/src/filters/Resize.ts +538 -0
  343. package/src/filters/Saturation.ts +87 -0
  344. package/src/filters/Vibrance.ts +88 -0
  345. package/src/filters/WebGLFilterBackend.ts +430 -0
  346. package/src/filters/filters.ts +28 -0
  347. package/src/filters/index.ts +5 -0
  348. package/src/filters/shaders/baseFilter.ts +19 -0
  349. package/src/filters/shaders/blendColor.ts +33 -0
  350. package/src/filters/shaders/blendImage.ts +32 -0
  351. package/src/filters/shaders/blur.ts +24 -0
  352. package/src/filters/shaders/brightness.ts +11 -0
  353. package/src/filters/shaders/colorMatrix.ts +12 -0
  354. package/src/filters/shaders/constrast.ts +11 -0
  355. package/src/filters/shaders/convolute.ts +154 -0
  356. package/src/filters/shaders/gamma.ts +15 -0
  357. package/src/filters/shaders/grayscale.ts +36 -0
  358. package/src/filters/shaders/invert.ts +19 -0
  359. package/src/filters/shaders/noise.ts +16 -0
  360. package/src/filters/shaders/pixelate.ts +19 -0
  361. package/src/filters/shaders/removeColor.ts +13 -0
  362. package/src/filters/shaders/saturation.ts +15 -0
  363. package/src/filters/shaders/vibrance.ts +16 -0
  364. package/src/filters/typedefs.ts +65 -0
  365. package/src/gradient/Gradient.ts +406 -0
  366. package/src/gradient/constants.ts +12 -0
  367. package/src/gradient/parser/index.ts +3 -0
  368. package/src/gradient/parser/misc.ts +13 -0
  369. package/src/gradient/parser/parseColorStops.ts +56 -0
  370. package/src/gradient/parser/parseCoords.ts +73 -0
  371. package/src/gradient/typedefs.ts +104 -0
  372. package/src/mixins/{eraser_brush.mixin.js → eraser_brush.mixin.ts} +350 -239
  373. package/src/parkinglot/canvas_animation.mixin.ts +121 -0
  374. package/src/parkinglot/straighten.ts +58 -0
  375. package/src/parser/applyViewboxTransform.ts +157 -0
  376. package/src/parser/attributes.ts +25 -0
  377. package/src/parser/constants.ts +115 -0
  378. package/src/parser/doesSomeParentMatch.ts +19 -0
  379. package/src/parser/elementById.ts +21 -0
  380. package/src/parser/elementMatchesRule.ts +16 -0
  381. package/src/parser/elements_parser.ts +191 -0
  382. package/src/parser/getCSSRules.ts +62 -0
  383. package/src/parser/getGlobalStylesForElement.ts +19 -0
  384. package/src/parser/getGradientDefs.ts +31 -0
  385. package/src/parser/getMultipleNodes.ts +15 -0
  386. package/src/parser/getSvgRegex.ts +5 -0
  387. package/src/parser/hasAncestorWithNodeName.ts +14 -0
  388. package/src/parser/index.ts +9 -0
  389. package/src/parser/loadSVGFromString.ts +26 -0
  390. package/src/parser/loadSVGFromURL.ts +40 -0
  391. package/src/parser/normalizeAttr.ts +10 -0
  392. package/src/parser/normalizeValue.ts +63 -0
  393. package/src/parser/parseAttributes.ts +90 -0
  394. package/src/parser/parseElements.ts +28 -0
  395. package/src/parser/parseFontDeclaration.ts +44 -0
  396. package/src/parser/parsePointsAttribute.ts +34 -0
  397. package/src/parser/parseSVGDocument.ts +93 -0
  398. package/src/parser/parseStyleAttribute.ts +27 -0
  399. package/src/parser/parseStyleObject.ts +15 -0
  400. package/src/parser/parseStyleString.ts +16 -0
  401. package/src/parser/parseTransformAttribute.ts +155 -0
  402. package/src/parser/parseUseDirectives.ts +78 -0
  403. package/src/parser/percent.ts +27 -0
  404. package/src/parser/recursivelyParseGradientsXlink.ts +42 -0
  405. package/src/parser/rotateMatrix.ts +21 -0
  406. package/src/parser/scaleMatrix.ts +9 -0
  407. package/src/parser/selectorMatches.ts +25 -0
  408. package/src/parser/setStrokeFillOpacity.ts +40 -0
  409. package/src/parser/skewMatrix.ts +6 -0
  410. package/src/parser/translateMatrix.ts +8 -0
  411. package/src/shapes/ActiveSelection.ts +189 -0
  412. package/src/shapes/Circle.ts +242 -0
  413. package/src/shapes/Ellipse.ts +179 -0
  414. package/src/shapes/Group.ts +1100 -0
  415. package/src/shapes/IText/DraggableTextDelegate.ts +382 -0
  416. package/src/shapes/IText/IText.ts +693 -0
  417. package/src/shapes/IText/ITextBehavior.ts +1064 -0
  418. package/src/shapes/IText/ITextClickBehavior.ts +325 -0
  419. package/src/shapes/IText/ITextKeyBehavior.ts +685 -0
  420. package/src/shapes/IText/constants.ts +47 -0
  421. package/src/shapes/Image.ts +841 -0
  422. package/src/shapes/Line.ts +346 -0
  423. package/src/shapes/Object/AnimatableObject.ts +106 -0
  424. package/src/shapes/Object/FabricObject.ts +29 -0
  425. package/src/shapes/Object/FabricObjectSVGExportMixin.ts +277 -0
  426. package/src/shapes/Object/InteractiveObject.ts +672 -0
  427. package/src/shapes/Object/Object.ts +1561 -0
  428. package/src/shapes/Object/ObjectGeometry.ts +813 -0
  429. package/src/shapes/Object/ObjectOrigin.ts +276 -0
  430. package/src/shapes/Object/StackedObject.ts +206 -0
  431. package/src/shapes/Object/defaultValues.ts +108 -0
  432. package/src/shapes/Object/types/BaseProps.ts +96 -0
  433. package/src/shapes/Object/types/BorderProps.ts +40 -0
  434. package/src/shapes/Object/types/ControlProps.ts +69 -0
  435. package/src/shapes/Object/types/FabricObjectProps.ts +111 -0
  436. package/src/shapes/Object/types/FillStrokeProps.ts +90 -0
  437. package/src/shapes/Object/types/LockInteractionProps.ts +57 -0
  438. package/src/shapes/Object/types/ObjectProps.ts +46 -0
  439. package/src/shapes/Object/types/SerializedObjectProps.ts +73 -0
  440. package/src/shapes/Object/types/index.ts +8 -0
  441. package/src/shapes/Path.ts +416 -0
  442. package/src/shapes/Polygon.ts +20 -0
  443. package/src/shapes/Polyline.ts +359 -0
  444. package/src/shapes/Rect.ts +233 -0
  445. package/src/shapes/Text/StyledText.ts +329 -0
  446. package/src/shapes/Text/Text.ts +1884 -0
  447. package/src/shapes/Text/TextSVGExportMixin.ts +288 -0
  448. package/src/shapes/Text/constants.ts +91 -0
  449. package/src/shapes/Textbox.ts +477 -0
  450. package/src/shapes/Triangle.ts +60 -0
  451. package/src/typedefs.ts +115 -0
  452. package/src/util/animation/AnimationBase.ts +166 -0
  453. package/src/util/animation/AnimationFrameProvider.ts +9 -0
  454. package/src/util/animation/AnimationRegistry.ts +58 -0
  455. package/src/util/animation/ArrayAnimation.ts +27 -0
  456. package/src/util/animation/ColorAnimation.ts +74 -0
  457. package/src/util/animation/ValueAnimation.ts +29 -0
  458. package/src/util/animation/animate.ts +74 -0
  459. package/src/util/animation/easing.ts +327 -0
  460. package/src/util/animation/types.ts +136 -0
  461. package/src/util/applyMixins.ts +22 -0
  462. package/src/util/dom_event.ts +28 -0
  463. package/src/util/dom_misc.ts +121 -0
  464. package/src/util/dom_request.ts +64 -0
  465. package/src/util/dom_style.ts +20 -0
  466. package/src/util/fireEvent.ts +15 -0
  467. package/src/util/index.ts +102 -0
  468. package/src/util/internals/cloneDeep.ts +2 -0
  469. package/src/util/internals/getRandomInt.ts +8 -0
  470. package/src/util/internals/ifNaN.ts +9 -0
  471. package/src/util/internals/index.ts +3 -0
  472. package/src/util/internals/removeFromArray.ts +14 -0
  473. package/src/util/internals/uid.ts +3 -0
  474. package/src/util/lang_string.ts +79 -0
  475. package/src/util/misc/boundingBoxFromPoints.ts +37 -0
  476. package/src/util/misc/capValue.ts +2 -0
  477. package/src/util/misc/cos.ts +24 -0
  478. package/src/util/misc/dom.ts +50 -0
  479. package/src/util/misc/findScaleTo.ts +44 -0
  480. package/src/util/misc/groupSVGElements.ts +15 -0
  481. package/src/util/misc/isTransparent.ts +28 -0
  482. package/src/util/misc/matrix.ts +207 -0
  483. package/src/util/misc/mergeClipPaths.ts +40 -0
  484. package/src/util/misc/objectEnlive.ts +189 -0
  485. package/src/util/misc/objectTransforms.ts +129 -0
  486. package/src/util/misc/pick.ts +29 -0
  487. package/src/util/misc/planeChange.ts +136 -0
  488. package/src/util/misc/projectStroke/StrokeLineCapProjections.ts +112 -0
  489. package/src/util/misc/projectStroke/StrokeLineJoinProjections.ts +226 -0
  490. package/src/util/misc/projectStroke/StrokeProjectionsBase.ts +75 -0
  491. package/src/util/misc/projectStroke/index.ts +53 -0
  492. package/src/util/misc/projectStroke/types.ts +24 -0
  493. package/src/util/misc/radiansDegreesConversion.ts +18 -0
  494. package/src/util/misc/resolveOrigin.ts +22 -0
  495. package/src/util/misc/rotatePoint.ts +15 -0
  496. package/src/util/misc/sin.ts +26 -0
  497. package/src/util/misc/svgParsing.ts +181 -0
  498. package/src/util/misc/textStyles.ts +134 -0
  499. package/src/util/misc/toFixed.ts +8 -0
  500. package/src/util/misc/vectors.ts +82 -0
  501. package/src/util/path/index.ts +1038 -0
  502. package/src/util/path/regex.ts +41 -0
  503. package/src/util/path/typechecks.ts +145 -0
  504. package/src/util/path/typedefs.ts +305 -0
  505. package/src/util/transform_matrix_removal.ts +60 -0
  506. package/src/util/types.ts +78 -0
  507. package/tsconfig.json +106 -0
  508. package/HEADER.js +0 -203
  509. package/build.js +0 -287
  510. package/dist/fabric.js +0 -31187
  511. package/dist/fabric.min.js +0 -1
  512. package/old-travis-reference.yml +0 -97
  513. package/src/brushes/circle_brush.class.js +0 -144
  514. package/src/brushes/pattern_brush.class.js +0 -61
  515. package/src/brushes/pencil_brush.class.js +0 -310
  516. package/src/brushes/spray_brush.class.js +0 -219
  517. package/src/canvas.class.js +0 -1312
  518. package/src/color.class.js +0 -636
  519. package/src/control.class.js +0 -339
  520. package/src/controls.actions.js +0 -740
  521. package/src/controls.render.js +0 -99
  522. package/src/elements_parser.js +0 -152
  523. package/src/filters/2d_backend.class.js +0 -65
  524. package/src/filters/blendcolor_filter.class.js +0 -251
  525. package/src/filters/blendimage_filter.class.js +0 -247
  526. package/src/filters/blur_filter.class.js +0 -217
  527. package/src/filters/brightness_filter.class.js +0 -113
  528. package/src/filters/colormatrix_filter.class.js +0 -159
  529. package/src/filters/composed_filter.class.js +0 -72
  530. package/src/filters/contrast_filter.class.js +0 -113
  531. package/src/filters/convolute_filter.class.js +0 -352
  532. package/src/filters/filter_boilerplate.js +0 -111
  533. package/src/filters/filter_generator.js +0 -85
  534. package/src/filters/gamma_filter.class.js +0 -136
  535. package/src/filters/grayscale_filter.class.js +0 -154
  536. package/src/filters/hue_rotation.class.js +0 -107
  537. package/src/filters/invert_filter.class.js +0 -111
  538. package/src/filters/noise_filter.class.js +0 -134
  539. package/src/filters/pixelate_filter.class.js +0 -137
  540. package/src/filters/removecolor_filter.class.js +0 -173
  541. package/src/filters/resize_filter.class.js +0 -490
  542. package/src/filters/saturate_filter.class.js +0 -119
  543. package/src/filters/vibrance_filter.class.js +0 -122
  544. package/src/filters/webgl_backend.class.js +0 -396
  545. package/src/globalFabric.js +0 -4
  546. package/src/gradient.class.js +0 -490
  547. package/src/intersection.class.js +0 -172
  548. package/src/log.js +0 -11
  549. package/src/mixins/animation.mixin.js +0 -231
  550. package/src/mixins/canvas_dataurl_exporter.mixin.js +0 -97
  551. package/src/mixins/canvas_events.mixin.js +0 -974
  552. package/src/mixins/canvas_gestures.mixin.js +0 -149
  553. package/src/mixins/canvas_grouping.mixin.js +0 -177
  554. package/src/mixins/canvas_serialization.mixin.js +0 -228
  555. package/src/mixins/collection.mixin.js +0 -170
  556. package/src/mixins/default_controls.js +0 -114
  557. package/src/mixins/itext.svg_export.js +0 -241
  558. package/src/mixins/itext_behavior.mixin.js +0 -940
  559. package/src/mixins/itext_click_behavior.mixin.js +0 -278
  560. package/src/mixins/itext_key_behavior.mixin.js +0 -694
  561. package/src/mixins/object.svg_export.js +0 -258
  562. package/src/mixins/object_geometry.mixin.js +0 -683
  563. package/src/mixins/object_interactivity.mixin.js +0 -314
  564. package/src/mixins/object_origin.mixin.js +0 -255
  565. package/src/mixins/object_stacking.mixin.js +0 -80
  566. package/src/mixins/object_straightening.mixin.js +0 -80
  567. package/src/mixins/observable.mixin.js +0 -141
  568. package/src/mixins/shared_methods.mixin.js +0 -94
  569. package/src/mixins/stateful.mixin.js +0 -107
  570. package/src/mixins/text_style.mixin.js +0 -324
  571. package/src/parser.js +0 -1090
  572. package/src/pattern.class.js +0 -189
  573. package/src/point.class.js +0 -337
  574. package/src/shadow.class.js +0 -195
  575. package/src/shapes/active_selection.class.js +0 -155
  576. package/src/shapes/circle.class.js +0 -210
  577. package/src/shapes/ellipse.class.js +0 -181
  578. package/src/shapes/group.class.js +0 -593
  579. package/src/shapes/image.class.js +0 -764
  580. package/src/shapes/itext.class.js +0 -526
  581. package/src/shapes/line.class.js +0 -324
  582. package/src/shapes/object.class.js +0 -2008
  583. package/src/shapes/path.class.js +0 -384
  584. package/src/shapes/polygon.class.js +0 -81
  585. package/src/shapes/polyline.class.js +0 -268
  586. package/src/shapes/rect.class.js +0 -187
  587. package/src/shapes/text.class.js +0 -1696
  588. package/src/shapes/textbox.class.js +0 -461
  589. package/src/shapes/triangle.class.js +0 -93
  590. package/src/static_canvas.class.js +0 -1881
  591. package/src/util/anim_ease.js +0 -398
  592. package/src/util/animate.js +0 -254
  593. package/src/util/animate_color.js +0 -74
  594. package/src/util/dom_event.js +0 -50
  595. package/src/util/dom_misc.js +0 -300
  596. package/src/util/dom_request.js +0 -54
  597. package/src/util/dom_style.js +0 -70
  598. package/src/util/lang_array.js +0 -94
  599. package/src/util/lang_class.js +0 -115
  600. package/src/util/lang_object.js +0 -75
  601. package/src/util/lang_string.js +0 -110
  602. package/src/util/misc.js +0 -1330
  603. package/src/util/named_accessors.mixin.js +0 -428
  604. package/src/util/path.js +0 -829
@@ -1,189 +0,0 @@
1
- (function() {
2
-
3
- 'use strict';
4
-
5
- var toFixed = fabric.util.toFixed;
6
-
7
- /**
8
- * Pattern class
9
- * @class fabric.Pattern
10
- * @see {@link http://fabricjs.com/patterns|Pattern demo}
11
- * @see {@link http://fabricjs.com/dynamic-patterns|DynamicPattern demo}
12
- * @see {@link fabric.Pattern#initialize} for constructor definition
13
- */
14
-
15
-
16
- fabric.Pattern = fabric.util.createClass(/** @lends fabric.Pattern.prototype */ {
17
-
18
- /**
19
- * Repeat property of a pattern (one of repeat, repeat-x, repeat-y or no-repeat)
20
- * @type String
21
- * @default
22
- */
23
- repeat: 'repeat',
24
-
25
- /**
26
- * Pattern horizontal offset from object's left/top corner
27
- * @type Number
28
- * @default
29
- */
30
- offsetX: 0,
31
-
32
- /**
33
- * Pattern vertical offset from object's left/top corner
34
- * @type Number
35
- * @default
36
- */
37
- offsetY: 0,
38
-
39
- /**
40
- * crossOrigin value (one of "", "anonymous", "use-credentials")
41
- * @see https://developer.mozilla.org/en-US/docs/HTML/CORS_settings_attributes
42
- * @type String
43
- * @default
44
- */
45
- crossOrigin: '',
46
-
47
- /**
48
- * transform matrix to change the pattern, imported from svgs.
49
- * @type Array
50
- * @default
51
- */
52
- patternTransform: null,
53
-
54
- /**
55
- * Constructor
56
- * @param {Object} [options] Options object
57
- * @param {Function} [callback] function to invoke after callback init.
58
- * @return {fabric.Pattern} thisArg
59
- */
60
- initialize: function(options, callback) {
61
- options || (options = { });
62
-
63
- this.id = fabric.Object.__uid++;
64
- this.setOptions(options);
65
- if (!options.source || (options.source && typeof options.source !== 'string')) {
66
- callback && callback(this);
67
- return;
68
- }
69
- else {
70
- // img src string
71
- var _this = this;
72
- this.source = fabric.util.createImage();
73
- fabric.util.loadImage(options.source, function(img, isError) {
74
- _this.source = img;
75
- callback && callback(_this, isError);
76
- }, null, this.crossOrigin);
77
- }
78
- },
79
-
80
- /**
81
- * Returns object representation of a pattern
82
- * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output
83
- * @return {Object} Object representation of a pattern instance
84
- */
85
- toObject: function(propertiesToInclude) {
86
- var NUM_FRACTION_DIGITS = fabric.Object.NUM_FRACTION_DIGITS,
87
- source, object;
88
-
89
- // <img> element
90
- if (typeof this.source.src === 'string') {
91
- source = this.source.src;
92
- }
93
- // <canvas> element
94
- else if (typeof this.source === 'object' && this.source.toDataURL) {
95
- source = this.source.toDataURL();
96
- }
97
-
98
- object = {
99
- type: 'pattern',
100
- source: source,
101
- repeat: this.repeat,
102
- crossOrigin: this.crossOrigin,
103
- offsetX: toFixed(this.offsetX, NUM_FRACTION_DIGITS),
104
- offsetY: toFixed(this.offsetY, NUM_FRACTION_DIGITS),
105
- patternTransform: this.patternTransform ? this.patternTransform.concat() : null
106
- };
107
- fabric.util.populateWithProperties(this, object, propertiesToInclude);
108
-
109
- return object;
110
- },
111
-
112
- /* _TO_SVG_START_ */
113
- /**
114
- * Returns SVG representation of a pattern
115
- * @param {fabric.Object} object
116
- * @return {String} SVG representation of a pattern
117
- */
118
- toSVG: function(object) {
119
- var patternSource = typeof this.source === 'function' ? this.source() : this.source,
120
- patternWidth = patternSource.width / object.width,
121
- patternHeight = patternSource.height / object.height,
122
- patternOffsetX = this.offsetX / object.width,
123
- patternOffsetY = this.offsetY / object.height,
124
- patternImgSrc = '';
125
- if (this.repeat === 'repeat-x' || this.repeat === 'no-repeat') {
126
- patternHeight = 1;
127
- if (patternOffsetY) {
128
- patternHeight += Math.abs(patternOffsetY);
129
- }
130
- }
131
- if (this.repeat === 'repeat-y' || this.repeat === 'no-repeat') {
132
- patternWidth = 1;
133
- if (patternOffsetX) {
134
- patternWidth += Math.abs(patternOffsetX);
135
- }
136
-
137
- }
138
- if (patternSource.src) {
139
- patternImgSrc = patternSource.src;
140
- }
141
- else if (patternSource.toDataURL) {
142
- patternImgSrc = patternSource.toDataURL();
143
- }
144
-
145
- return '<pattern id="SVGID_' + this.id +
146
- '" x="' + patternOffsetX +
147
- '" y="' + patternOffsetY +
148
- '" width="' + patternWidth +
149
- '" height="' + patternHeight + '">\n' +
150
- '<image x="0" y="0"' +
151
- ' width="' + patternSource.width +
152
- '" height="' + patternSource.height +
153
- '" xlink:href="' + patternImgSrc +
154
- '"></image>\n' +
155
- '</pattern>\n';
156
- },
157
- /* _TO_SVG_END_ */
158
-
159
- setOptions: function(options) {
160
- for (var prop in options) {
161
- this[prop] = options[prop];
162
- }
163
- },
164
-
165
- /**
166
- * Returns an instance of CanvasPattern
167
- * @param {CanvasRenderingContext2D} ctx Context to create pattern
168
- * @return {CanvasPattern}
169
- */
170
- toLive: function(ctx) {
171
- var source = this.source;
172
- // if the image failed to load, return, and allow rest to continue loading
173
- if (!source) {
174
- return '';
175
- }
176
-
177
- // if an image
178
- if (typeof source.src !== 'undefined') {
179
- if (!source.complete) {
180
- return '';
181
- }
182
- if (source.naturalWidth === 0 || source.naturalHeight === 0) {
183
- return '';
184
- }
185
- }
186
- return ctx.createPattern(source, this.repeat);
187
- }
188
- });
189
- })();
@@ -1,337 +0,0 @@
1
- (function(global) {
2
-
3
- 'use strict';
4
-
5
- /* Adaptation of work of Kevin Lindsey (kevin@kevlindev.com) */
6
-
7
- var fabric = global.fabric || (global.fabric = { });
8
-
9
- if (fabric.Point) {
10
- fabric.warn('fabric.Point is already defined');
11
- return;
12
- }
13
-
14
- fabric.Point = Point;
15
-
16
- /**
17
- * Point class
18
- * @class fabric.Point
19
- * @memberOf fabric
20
- * @constructor
21
- * @param {Number} x
22
- * @param {Number} y
23
- * @return {fabric.Point} thisArg
24
- */
25
- function Point(x, y) {
26
- this.x = x;
27
- this.y = y;
28
- }
29
-
30
- Point.prototype = /** @lends fabric.Point.prototype */ {
31
-
32
- type: 'point',
33
-
34
- constructor: Point,
35
-
36
- /**
37
- * Adds another point to this one and returns another one
38
- * @param {fabric.Point} that
39
- * @return {fabric.Point} new Point instance with added values
40
- */
41
- add: function (that) {
42
- return new Point(this.x + that.x, this.y + that.y);
43
- },
44
-
45
- /**
46
- * Adds another point to this one
47
- * @param {fabric.Point} that
48
- * @return {fabric.Point} thisArg
49
- * @chainable
50
- */
51
- addEquals: function (that) {
52
- this.x += that.x;
53
- this.y += that.y;
54
- return this;
55
- },
56
-
57
- /**
58
- * Adds value to this point and returns a new one
59
- * @param {Number} scalar
60
- * @return {fabric.Point} new Point with added value
61
- */
62
- scalarAdd: function (scalar) {
63
- return new Point(this.x + scalar, this.y + scalar);
64
- },
65
-
66
- /**
67
- * Adds value to this point
68
- * @param {Number} scalar
69
- * @return {fabric.Point} thisArg
70
- * @chainable
71
- */
72
- scalarAddEquals: function (scalar) {
73
- this.x += scalar;
74
- this.y += scalar;
75
- return this;
76
- },
77
-
78
- /**
79
- * Subtracts another point from this point and returns a new one
80
- * @param {fabric.Point} that
81
- * @return {fabric.Point} new Point object with subtracted values
82
- */
83
- subtract: function (that) {
84
- return new Point(this.x - that.x, this.y - that.y);
85
- },
86
-
87
- /**
88
- * Subtracts another point from this point
89
- * @param {fabric.Point} that
90
- * @return {fabric.Point} thisArg
91
- * @chainable
92
- */
93
- subtractEquals: function (that) {
94
- this.x -= that.x;
95
- this.y -= that.y;
96
- return this;
97
- },
98
-
99
- /**
100
- * Subtracts value from this point and returns a new one
101
- * @param {Number} scalar
102
- * @return {fabric.Point}
103
- */
104
- scalarSubtract: function (scalar) {
105
- return new Point(this.x - scalar, this.y - scalar);
106
- },
107
-
108
- /**
109
- * Subtracts value from this point
110
- * @param {Number} scalar
111
- * @return {fabric.Point} thisArg
112
- * @chainable
113
- */
114
- scalarSubtractEquals: function (scalar) {
115
- this.x -= scalar;
116
- this.y -= scalar;
117
- return this;
118
- },
119
-
120
- /**
121
- * Multiplies this point by a value and returns a new one
122
- * TODO: rename in scalarMultiply in 2.0
123
- * @param {Number} scalar
124
- * @return {fabric.Point}
125
- */
126
- multiply: function (scalar) {
127
- return new Point(this.x * scalar, this.y * scalar);
128
- },
129
-
130
- /**
131
- * Multiplies this point by a value
132
- * TODO: rename in scalarMultiplyEquals in 2.0
133
- * @param {Number} scalar
134
- * @return {fabric.Point} thisArg
135
- * @chainable
136
- */
137
- multiplyEquals: function (scalar) {
138
- this.x *= scalar;
139
- this.y *= scalar;
140
- return this;
141
- },
142
-
143
- /**
144
- * Divides this point by a value and returns a new one
145
- * TODO: rename in scalarDivide in 2.0
146
- * @param {Number} scalar
147
- * @return {fabric.Point}
148
- */
149
- divide: function (scalar) {
150
- return new Point(this.x / scalar, this.y / scalar);
151
- },
152
-
153
- /**
154
- * Divides this point by a value
155
- * TODO: rename in scalarDivideEquals in 2.0
156
- * @param {Number} scalar
157
- * @return {fabric.Point} thisArg
158
- * @chainable
159
- */
160
- divideEquals: function (scalar) {
161
- this.x /= scalar;
162
- this.y /= scalar;
163
- return this;
164
- },
165
-
166
- /**
167
- * Returns true if this point is equal to another one
168
- * @param {fabric.Point} that
169
- * @return {Boolean}
170
- */
171
- eq: function (that) {
172
- return (this.x === that.x && this.y === that.y);
173
- },
174
-
175
- /**
176
- * Returns true if this point is less than another one
177
- * @param {fabric.Point} that
178
- * @return {Boolean}
179
- */
180
- lt: function (that) {
181
- return (this.x < that.x && this.y < that.y);
182
- },
183
-
184
- /**
185
- * Returns true if this point is less than or equal to another one
186
- * @param {fabric.Point} that
187
- * @return {Boolean}
188
- */
189
- lte: function (that) {
190
- return (this.x <= that.x && this.y <= that.y);
191
- },
192
-
193
- /**
194
-
195
- * Returns true if this point is greater another one
196
- * @param {fabric.Point} that
197
- * @return {Boolean}
198
- */
199
- gt: function (that) {
200
- return (this.x > that.x && this.y > that.y);
201
- },
202
-
203
- /**
204
- * Returns true if this point is greater than or equal to another one
205
- * @param {fabric.Point} that
206
- * @return {Boolean}
207
- */
208
- gte: function (that) {
209
- return (this.x >= that.x && this.y >= that.y);
210
- },
211
-
212
- /**
213
- * Returns new point which is the result of linear interpolation with this one and another one
214
- * @param {fabric.Point} that
215
- * @param {Number} t , position of interpolation, between 0 and 1 default 0.5
216
- * @return {fabric.Point}
217
- */
218
- lerp: function (that, t) {
219
- if (typeof t === 'undefined') {
220
- t = 0.5;
221
- }
222
- t = Math.max(Math.min(1, t), 0);
223
- return new Point(this.x + (that.x - this.x) * t, this.y + (that.y - this.y) * t);
224
- },
225
-
226
- /**
227
- * Returns distance from this point and another one
228
- * @param {fabric.Point} that
229
- * @return {Number}
230
- */
231
- distanceFrom: function (that) {
232
- var dx = this.x - that.x,
233
- dy = this.y - that.y;
234
- return Math.sqrt(dx * dx + dy * dy);
235
- },
236
-
237
- /**
238
- * Returns the point between this point and another one
239
- * @param {fabric.Point} that
240
- * @return {fabric.Point}
241
- */
242
- midPointFrom: function (that) {
243
- return this.lerp(that);
244
- },
245
-
246
- /**
247
- * Returns a new point which is the min of this and another one
248
- * @param {fabric.Point} that
249
- * @return {fabric.Point}
250
- */
251
- min: function (that) {
252
- return new Point(Math.min(this.x, that.x), Math.min(this.y, that.y));
253
- },
254
-
255
- /**
256
- * Returns a new point which is the max of this and another one
257
- * @param {fabric.Point} that
258
- * @return {fabric.Point}
259
- */
260
- max: function (that) {
261
- return new Point(Math.max(this.x, that.x), Math.max(this.y, that.y));
262
- },
263
-
264
- /**
265
- * Returns string representation of this point
266
- * @return {String}
267
- */
268
- toString: function () {
269
- return this.x + ',' + this.y;
270
- },
271
-
272
- /**
273
- * Sets x/y of this point
274
- * @param {Number} x
275
- * @param {Number} y
276
- * @chainable
277
- */
278
- setXY: function (x, y) {
279
- this.x = x;
280
- this.y = y;
281
- return this;
282
- },
283
-
284
- /**
285
- * Sets x of this point
286
- * @param {Number} x
287
- * @chainable
288
- */
289
- setX: function (x) {
290
- this.x = x;
291
- return this;
292
- },
293
-
294
- /**
295
- * Sets y of this point
296
- * @param {Number} y
297
- * @chainable
298
- */
299
- setY: function (y) {
300
- this.y = y;
301
- return this;
302
- },
303
-
304
- /**
305
- * Sets x/y of this point from another point
306
- * @param {fabric.Point} that
307
- * @chainable
308
- */
309
- setFromPoint: function (that) {
310
- this.x = that.x;
311
- this.y = that.y;
312
- return this;
313
- },
314
-
315
- /**
316
- * Swaps x/y of this point and another point
317
- * @param {fabric.Point} that
318
- */
319
- swap: function (that) {
320
- var x = this.x,
321
- y = this.y;
322
- this.x = that.x;
323
- this.y = that.y;
324
- that.x = x;
325
- that.y = y;
326
- },
327
-
328
- /**
329
- * return a cloned instance of the point
330
- * @return {fabric.Point}
331
- */
332
- clone: function () {
333
- return new Point(this.x, this.y);
334
- }
335
- };
336
-
337
- })(typeof exports !== 'undefined' ? exports : this);
@@ -1,195 +0,0 @@
1
- (function(global) {
2
-
3
- 'use strict';
4
-
5
- var fabric = global.fabric || (global.fabric = { }),
6
- toFixed = fabric.util.toFixed;
7
-
8
- if (fabric.Shadow) {
9
- fabric.warn('fabric.Shadow is already defined.');
10
- return;
11
- }
12
-
13
- /**
14
- * Shadow class
15
- * @class fabric.Shadow
16
- * @see {@link http://fabricjs.com/shadows|Shadow demo}
17
- * @see {@link fabric.Shadow#initialize} for constructor definition
18
- */
19
- fabric.Shadow = fabric.util.createClass(/** @lends fabric.Shadow.prototype */ {
20
-
21
- /**
22
- * Shadow color
23
- * @type String
24
- * @default
25
- */
26
- color: 'rgb(0,0,0)',
27
-
28
- /**
29
- * Shadow blur
30
- * @type Number
31
- */
32
- blur: 0,
33
-
34
- /**
35
- * Shadow horizontal offset
36
- * @type Number
37
- * @default
38
- */
39
- offsetX: 0,
40
-
41
- /**
42
- * Shadow vertical offset
43
- * @type Number
44
- * @default
45
- */
46
- offsetY: 0,
47
-
48
- /**
49
- * Whether the shadow should affect stroke operations
50
- * @type Boolean
51
- * @default
52
- */
53
- affectStroke: false,
54
-
55
- /**
56
- * Indicates whether toObject should include default values
57
- * @type Boolean
58
- * @default
59
- */
60
- includeDefaultValues: true,
61
-
62
- /**
63
- * When `false`, the shadow will scale with the object.
64
- * When `true`, the shadow's offsetX, offsetY, and blur will not be affected by the object's scale.
65
- * default to false
66
- * @type Boolean
67
- * @default
68
- */
69
- nonScaling: false,
70
-
71
- /**
72
- * Constructor
73
- * @param {Object|String} [options] Options object with any of color, blur, offsetX, offsetY properties or string (e.g. "rgba(0,0,0,0.2) 2px 2px 10px")
74
- * @return {fabric.Shadow} thisArg
75
- */
76
- initialize: function(options) {
77
-
78
- if (typeof options === 'string') {
79
- options = this._parseShadow(options);
80
- }
81
-
82
- for (var prop in options) {
83
- this[prop] = options[prop];
84
- }
85
-
86
- this.id = fabric.Object.__uid++;
87
- },
88
-
89
- /**
90
- * @private
91
- * @param {String} shadow Shadow value to parse
92
- * @return {Object} Shadow object with color, offsetX, offsetY and blur
93
- */
94
- _parseShadow: function(shadow) {
95
- var shadowStr = shadow.trim(),
96
- offsetsAndBlur = fabric.Shadow.reOffsetsAndBlur.exec(shadowStr) || [],
97
- color = shadowStr.replace(fabric.Shadow.reOffsetsAndBlur, '') || 'rgb(0,0,0)';
98
-
99
- return {
100
- color: color.trim(),
101
- offsetX: parseFloat(offsetsAndBlur[1], 10) || 0,
102
- offsetY: parseFloat(offsetsAndBlur[2], 10) || 0,
103
- blur: parseFloat(offsetsAndBlur[3], 10) || 0
104
- };
105
- },
106
-
107
- /**
108
- * Returns a string representation of an instance
109
- * @see http://www.w3.org/TR/css-text-decor-3/#text-shadow
110
- * @return {String} Returns CSS3 text-shadow declaration
111
- */
112
- toString: function() {
113
- return [this.offsetX, this.offsetY, this.blur, this.color].join('px ');
114
- },
115
-
116
- /* _TO_SVG_START_ */
117
- /**
118
- * Returns SVG representation of a shadow
119
- * @param {fabric.Object} object
120
- * @return {String} SVG representation of a shadow
121
- */
122
- toSVG: function(object) {
123
- var fBoxX = 40, fBoxY = 40, NUM_FRACTION_DIGITS = fabric.Object.NUM_FRACTION_DIGITS,
124
- offset = fabric.util.rotateVector(
125
- { x: this.offsetX, y: this.offsetY },
126
- fabric.util.degreesToRadians(-object.angle)),
127
- BLUR_BOX = 20, color = new fabric.Color(this.color);
128
-
129
- if (object.width && object.height) {
130
- //http://www.w3.org/TR/SVG/filters.html#FilterEffectsRegion
131
- // we add some extra space to filter box to contain the blur ( 20 )
132
- fBoxX = toFixed((Math.abs(offset.x) + this.blur) / object.width, NUM_FRACTION_DIGITS) * 100 + BLUR_BOX;
133
- fBoxY = toFixed((Math.abs(offset.y) + this.blur) / object.height, NUM_FRACTION_DIGITS) * 100 + BLUR_BOX;
134
- }
135
- if (object.flipX) {
136
- offset.x *= -1;
137
- }
138
- if (object.flipY) {
139
- offset.y *= -1;
140
- }
141
-
142
- return (
143
- '<filter id="SVGID_' + this.id + '" y="-' + fBoxY + '%" height="' + (100 + 2 * fBoxY) + '%" ' +
144
- 'x="-' + fBoxX + '%" width="' + (100 + 2 * fBoxX) + '%" ' + '>\n' +
145
- '\t<feGaussianBlur in="SourceAlpha" stdDeviation="' +
146
- toFixed(this.blur ? this.blur / 2 : 0, NUM_FRACTION_DIGITS) + '"></feGaussianBlur>\n' +
147
- '\t<feOffset dx="' + toFixed(offset.x, NUM_FRACTION_DIGITS) +
148
- '" dy="' + toFixed(offset.y, NUM_FRACTION_DIGITS) + '" result="oBlur" ></feOffset>\n' +
149
- '\t<feFlood flood-color="' + color.toRgb() + '" flood-opacity="' + color.getAlpha() + '"/>\n' +
150
- '\t<feComposite in2="oBlur" operator="in" />\n' +
151
- '\t<feMerge>\n' +
152
- '\t\t<feMergeNode></feMergeNode>\n' +
153
- '\t\t<feMergeNode in="SourceGraphic"></feMergeNode>\n' +
154
- '\t</feMerge>\n' +
155
- '</filter>\n');
156
- },
157
- /* _TO_SVG_END_ */
158
-
159
- /**
160
- * Returns object representation of a shadow
161
- * @return {Object} Object representation of a shadow instance
162
- */
163
- toObject: function() {
164
- if (this.includeDefaultValues) {
165
- return {
166
- color: this.color,
167
- blur: this.blur,
168
- offsetX: this.offsetX,
169
- offsetY: this.offsetY,
170
- affectStroke: this.affectStroke,
171
- nonScaling: this.nonScaling
172
- };
173
- }
174
- var obj = { }, proto = fabric.Shadow.prototype;
175
-
176
- ['color', 'blur', 'offsetX', 'offsetY', 'affectStroke', 'nonScaling'].forEach(function(prop) {
177
- if (this[prop] !== proto[prop]) {
178
- obj[prop] = this[prop];
179
- }
180
- }, this);
181
-
182
- return obj;
183
- }
184
- });
185
-
186
- /**
187
- * Regex matching shadow offsetX, offsetY and blur (ex: "2px 2px 10px rgba(0,0,0,0.2)", "rgb(0,255,0) 2px 2px")
188
- * @static
189
- * @field
190
- * @memberOf fabric.Shadow
191
- */
192
- // eslint-disable-next-line max-len
193
- fabric.Shadow.reOffsetsAndBlur = /(?:\s|^)(-?\d+(?:\.\d*)?(?:px)?(?:\s?|$))?(-?\d+(?:\.\d*)?(?:px)?(?:\s?|$))?(\d+(?:\.\d*)?(?:px)?)?(?:\s?|$)(?:$|\s)/;
194
-
195
- })(typeof exports !== 'undefined' ? exports : this);