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
package/tsconfig.json ADDED
@@ -0,0 +1,106 @@
1
+ {
2
+ "compilerOptions": {
3
+ /* Visit https://aka.ms/tsconfig.json to read more about this file */
4
+
5
+ /* Projects */
6
+ // "incremental": true, /* Enable incremental compilation */
7
+ // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */
8
+ // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */
9
+ // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */
10
+ // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */
11
+ // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */
12
+
13
+ /* Language and Environment */
14
+ "target": "ESNext" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */,
15
+ // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
16
+ // "jsx": "preserve", /* Specify what JSX code is generated. */
17
+ // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */
18
+ // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */
19
+ // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */
20
+ // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */
21
+ // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */
22
+ // "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */
23
+ // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */
24
+ // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
25
+
26
+ /* Modules */
27
+ "module": "ESNext" /* Specify what module code is generated. */,
28
+ // "rootDir": "./", /* Specify the root folder within your source files. */
29
+ "moduleResolution": "node" /* Specify how TypeScript looks up a file from a given module specifier. */,
30
+ // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
31
+ "paths": {
32
+ "fabric": ["./index"],
33
+ "fabric/node": ["./index.node"]
34
+ } /* Specify a set of entries that re-map imports to additional lookup locations. */,
35
+ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
36
+ // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */
37
+ // "types": [], /* Specify type package names to be included without being referenced in a source file. */
38
+ // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */
39
+ "resolveJsonModule": true /* Enable importing .json files */,
40
+ // "noResolve": true, /* Disallow `import`s, `require`s or `<reference>`s from expanding the number of files TypeScript should add to a project. */
41
+
42
+ /* JavaScript Support */
43
+ "allowJs": true /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */,
44
+ // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
45
+ // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */
46
+
47
+ /* Emit */
48
+ "declaration": true /* Generate .d.ts files from TypeScript and JavaScript files in your project. */,
49
+ "declarationMap": true /* Create sourcemaps for d.ts files. */,
50
+ "emitDeclarationOnly": true /* Only output d.ts files and not JavaScript files. */,
51
+ "sourceMap": true /* Create source map files for emitted JavaScript files. */,
52
+ // "outFile": "", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */
53
+ "outDir": "./dist" /* Specify an output folder for all emitted files. */,
54
+ // "removeComments": true, /* Disable emitting comments. */
55
+ // "noEmit": true, /* Disable emitting files from a compilation. */
56
+ // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */
57
+ // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */
58
+ // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */
59
+ // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */
60
+ // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */
61
+ // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */
62
+ // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */
63
+ // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */
64
+ // "newLine": "crlf", /* Set the newline character for emitting files. */
65
+ // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */
66
+ // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */
67
+ "noEmitOnError": false /* Disable emitting files if any type checking errors are reported. */,
68
+ // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */
69
+ // "declarationDir": "./", /* Specify the output directory for generated declaration files. */
70
+ // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */
71
+
72
+ /* Interop Constraints */
73
+ // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */
74
+ // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */
75
+ "esModuleInterop": false /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */,
76
+ // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */
77
+ "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */,
78
+
79
+ /* Type Checking */
80
+ "strict": true /* Enable all strict type-checking options. */,
81
+ // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */
82
+ // "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */
83
+ // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */
84
+ // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */
85
+ "strictPropertyInitialization": false /* Check for class properties that are declared but not set in the constructor. */,
86
+ // "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */
87
+ // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */
88
+ // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */
89
+ // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */
90
+ // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */
91
+ // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */
92
+ // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */
93
+ // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */
94
+ // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */
95
+ // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */
96
+ // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */
97
+ // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */
98
+ // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */
99
+
100
+ /* Completeness */
101
+ // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */
102
+ "skipLibCheck": true /* Skip type checking all .d.ts files. */
103
+ },
104
+ "exclude": ["dist"],
105
+ "include": ["src", "fabric.ts", "index.ts", "index.node.ts"]
106
+ }
package/HEADER.js DELETED
@@ -1,203 +0,0 @@
1
- /*! Fabric.js Copyright 2008-2015, Printio (Juriy Zaytsev, Maxim Chernyak) */
2
-
3
- var fabric = fabric || { version: '5.3.0' };
4
- if (typeof exports !== 'undefined') {
5
- exports.fabric = fabric;
6
- }
7
- /* _AMD_START_ */
8
- else if (typeof define === 'function' && define.amd) {
9
- define([], function() { return fabric; });
10
- }
11
- /* _AMD_END_ */
12
- if (typeof document !== 'undefined' && typeof window !== 'undefined') {
13
- if (document instanceof (typeof HTMLDocument !== 'undefined' ? HTMLDocument : Document)) {
14
- fabric.document = document;
15
- }
16
- else {
17
- fabric.document = document.implementation.createHTMLDocument('');
18
- }
19
- fabric.window = window;
20
- }
21
- else {
22
- // assume we're running under node.js when document/window are not present
23
- var jsdom = require('jsdom');
24
- var virtualWindow = new jsdom.JSDOM(
25
- decodeURIComponent('%3C!DOCTYPE%20html%3E%3Chtml%3E%3Chead%3E%3C%2Fhead%3E%3Cbody%3E%3C%2Fbody%3E%3C%2Fhtml%3E'),
26
- {
27
- features: {
28
- FetchExternalResources: ['img']
29
- },
30
- resources: 'usable'
31
- }).window;
32
- fabric.document = virtualWindow.document;
33
- fabric.jsdomImplForWrapper = require('jsdom/lib/jsdom/living/generated/utils').implForWrapper;
34
- fabric.nodeCanvas = require('jsdom/lib/jsdom/utils').Canvas;
35
- fabric.window = virtualWindow;
36
- DOMParser = fabric.window.DOMParser;
37
- }
38
-
39
- /**
40
- * True when in environment that supports touch events
41
- * @type boolean
42
- */
43
- fabric.isTouchSupported = 'ontouchstart' in fabric.window || 'ontouchstart' in fabric.document ||
44
- (fabric.window && fabric.window.navigator && fabric.window.navigator.maxTouchPoints > 0);
45
-
46
- /**
47
- * True when in environment that's probably Node.js
48
- * @type boolean
49
- */
50
- fabric.isLikelyNode = typeof Buffer !== 'undefined' &&
51
- typeof window === 'undefined';
52
-
53
- /* _FROM_SVG_START_ */
54
- /**
55
- * Attributes parsed from all SVG elements
56
- * @type array
57
- */
58
- fabric.SHARED_ATTRIBUTES = [
59
- 'display',
60
- 'transform',
61
- 'fill', 'fill-opacity', 'fill-rule',
62
- 'opacity',
63
- 'stroke', 'stroke-dasharray', 'stroke-linecap', 'stroke-dashoffset',
64
- 'stroke-linejoin', 'stroke-miterlimit',
65
- 'stroke-opacity', 'stroke-width',
66
- 'id', 'paint-order', 'vector-effect',
67
- 'instantiated_by_use', 'clip-path',
68
- ];
69
- /* _FROM_SVG_END_ */
70
-
71
- /**
72
- * Pixel per Inch as a default value set to 96. Can be changed for more realistic conversion.
73
- */
74
- fabric.DPI = 96;
75
- fabric.reNum = '(?:[-+]?(?:\\d+|\\d*\\.\\d+)(?:[eE][-+]?\\d+)?)';
76
- fabric.commaWsp = '(?:\\s+,?\\s*|,\\s*)';
77
- fabric.rePathCommand = /([-+]?((\d+\.\d+)|((\d+)|(\.\d+)))(?:[eE][-+]?\d+)?)/ig;
78
- fabric.reNonWord = /[ \n\.,;!\?\-]/;
79
- fabric.fontPaths = { };
80
- fabric.iMatrix = [1, 0, 0, 1, 0, 0];
81
- fabric.svgNS = 'http://www.w3.org/2000/svg';
82
-
83
- /**
84
- * Pixel limit for cache canvases. 1Mpx , 4Mpx should be fine.
85
- * @since 1.7.14
86
- * @type Number
87
- * @default
88
- */
89
- fabric.perfLimitSizeTotal = 2097152;
90
-
91
- /**
92
- * Pixel limit for cache canvases width or height. IE fixes the maximum at 5000
93
- * @since 1.7.14
94
- * @type Number
95
- * @default
96
- */
97
- fabric.maxCacheSideLimit = 4096;
98
-
99
- /**
100
- * Lowest pixel limit for cache canvases, set at 256PX
101
- * @since 1.7.14
102
- * @type Number
103
- * @default
104
- */
105
- fabric.minCacheSideLimit = 256;
106
-
107
- /**
108
- * Cache Object for widths of chars in text rendering.
109
- */
110
- fabric.charWidthsCache = { };
111
-
112
- /**
113
- * if webgl is enabled and available, textureSize will determine the size
114
- * of the canvas backend
115
- * @since 2.0.0
116
- * @type Number
117
- * @default
118
- */
119
- fabric.textureSize = 2048;
120
-
121
- /**
122
- * When 'true', style information is not retained when copy/pasting text, making
123
- * pasted text use destination style.
124
- * Defaults to 'false'.
125
- * @type Boolean
126
- * @default
127
- */
128
- fabric.disableStyleCopyPaste = false;
129
-
130
- /**
131
- * Enable webgl for filtering picture is available
132
- * A filtering backend will be initialized, this will both take memory and
133
- * time since a default 2048x2048 canvas will be created for the gl context
134
- * @since 2.0.0
135
- * @type Boolean
136
- * @default
137
- */
138
- fabric.enableGLFiltering = true;
139
-
140
- /**
141
- * Device Pixel Ratio
142
- * @see https://developer.apple.com/library/safari/documentation/AudioVideo/Conceptual/HTML-canvas-guide/SettingUptheCanvas/SettingUptheCanvas.html
143
- */
144
- fabric.devicePixelRatio = fabric.window.devicePixelRatio ||
145
- fabric.window.webkitDevicePixelRatio ||
146
- fabric.window.mozDevicePixelRatio ||
147
- 1;
148
- /**
149
- * Browser-specific constant to adjust CanvasRenderingContext2D.shadowBlur value,
150
- * which is unitless and not rendered equally across browsers.
151
- *
152
- * Values that work quite well (as of October 2017) are:
153
- * - Chrome: 1.5
154
- * - Edge: 1.75
155
- * - Firefox: 0.9
156
- * - Safari: 0.95
157
- *
158
- * @since 2.0.0
159
- * @type Number
160
- * @default 1
161
- */
162
- fabric.browserShadowBlurConstant = 1;
163
-
164
- /**
165
- * This object contains the result of arc to bezier conversion for faster retrieving if the same arc needs to be converted again.
166
- * It was an internal variable, is accessible since version 2.3.4
167
- */
168
- fabric.arcToSegmentsCache = { };
169
-
170
- /**
171
- * This object keeps the results of the boundsOfCurve calculation mapped by the joined arguments necessary to calculate it.
172
- * It does speed up calculation, if you parse and add always the same paths, but in case of heavy usage of freedrawing
173
- * you do not get any speed benefit and you get a big object in memory.
174
- * The object was a private variable before, while now is appended to the lib so that you have access to it and you
175
- * can eventually clear it.
176
- * It was an internal variable, is accessible since version 2.3.4
177
- */
178
- fabric.boundsOfCurveCache = { };
179
-
180
- /**
181
- * If disabled boundsOfCurveCache is not used. For apps that make heavy usage of pencil drawing probably disabling it is better
182
- * @default true
183
- */
184
- fabric.cachesBoundsOfCurve = true;
185
-
186
- /**
187
- * Skip performance testing of setupGLContext and force the use of putImageData that seems to be the one that works best on
188
- * Chrome + old hardware. if your users are experiencing empty images after filtering you may try to force this to true
189
- * this has to be set before instantiating the filtering backend ( before filtering the first image )
190
- * @type Boolean
191
- * @default false
192
- */
193
- fabric.forceGLPutImageData = false;
194
-
195
- fabric.initFilterBackend = function() {
196
- if (fabric.enableGLFiltering && fabric.isWebglSupported && fabric.isWebglSupported(fabric.textureSize)) {
197
- console.log('max texture size: ' + fabric.maxTextureSize);
198
- return (new fabric.WebglFilterBackend({ tileSize: fabric.textureSize }));
199
- }
200
- else if (fabric.Canvas2dFilterBackend) {
201
- return (new fabric.Canvas2dFilterBackend());
202
- }
203
- };
package/build.js DELETED
@@ -1,287 +0,0 @@
1
- var fs = require('fs'),
2
- exec = require('child_process').exec;
3
-
4
- var buildArgs = process.argv.slice(2),
5
- buildArgsAsObject = { },
6
- rootPath = process.cwd();
7
-
8
- buildArgs.forEach(function(arg) {
9
- var key = arg.split('=')[0],
10
- value = arg.split('=')[1];
11
-
12
- buildArgsAsObject[key] = value;
13
- });
14
-
15
- var modulesToInclude = buildArgsAsObject.modules ? buildArgsAsObject.modules.split(',') : [];
16
- var modulesToExclude = buildArgsAsObject.exclude ? buildArgsAsObject.exclude.split(',') : [];
17
-
18
- var distributionPath = buildArgsAsObject.dest || 'dist/';
19
- var minifier = buildArgsAsObject.minifier || 'uglifyjs';
20
- var mininfierCmd;
21
-
22
- var noStrict = 'no-strict' in buildArgsAsObject;
23
- var noSVGExport = 'no-svg-export' in buildArgsAsObject;
24
- var requirejs = 'requirejs' in buildArgsAsObject ? 'requirejs' : false;
25
- var sourceMap = 'sourcemap' in buildArgsAsObject;
26
- var buildFast = 'fast' in buildArgsAsObject;
27
- // set amdLib var to encourage later support of other AMD systems
28
- var amdLib = requirejs;
29
-
30
- // if we want requirejs AMD support, use uglify
31
- var amdUglifyFlags = '';
32
- if (amdLib === 'requirejs' && minifier !== 'uglifyjs') {
33
- console.log('[notice]: require.js support requires uglifyjs as minifier; changed minifier to uglifyjs.');
34
- minifier = 'uglifyjs';
35
- amdUglifyFlags = " -r 'require,exports,window,fabric' -e window:window,undefined ";
36
- }
37
-
38
- // if we want sourceMap support, uglify or google closure compiler are supported
39
- var sourceMapFlags = '';
40
- if (sourceMap) {
41
- if (minifier !== 'uglifyjs' && minifier !== 'closure') {
42
- console.log('[notice]: sourceMap support requires uglifyjs or google closure compiler as minifier; changed minifier to uglifyjs.');
43
- minifier = 'uglifyjs';
44
- }
45
- sourceMapFlags = minifier === 'uglifyjs' ? ' --source-map fabric.min.js.map' : ' --create_source_map fabric.min.js.map --source_map_format=V3';
46
- }
47
-
48
- if (minifier === 'yui') {
49
- mininfierCmd = 'java -jar ' + rootPath + '/lib/yuicompressor-2.4.6.jar fabric.js -o fabric.min.js';
50
- }
51
- else if (minifier === 'closure') {
52
- mininfierCmd = 'java -jar ' + rootPath + '/lib/google_closure_compiler.jar --js fabric.js --js_output_file fabric.min.js' + sourceMapFlags;
53
- }
54
- else if (minifier === 'uglifyjs') {
55
- mininfierCmd = 'uglifyjs ' + amdUglifyFlags + ' --compress --mangle --output fabric.min.js fabric.js' + sourceMapFlags;
56
- }
57
-
58
- var buildMinified = 'build-minified' in buildArgsAsObject;
59
-
60
- var includeAllModules = (modulesToInclude.length === 1 && modulesToInclude[0] === 'ALL') || buildMinified;
61
-
62
- var noSVGImport = (modulesToInclude.indexOf('parser') === -1 && !includeAllModules) || modulesToExclude.indexOf('parser') > -1;
63
-
64
- var distFileContents =
65
- '/* build: `node build.js modules=' +
66
- modulesToInclude.join(',') +
67
- (modulesToExclude.length ? (' exclude=' + modulesToExclude.join(',')) : '') +
68
- (noStrict ? ' no-strict' : '') +
69
- (noSVGExport ? ' no-svg-export' : '') +
70
- (requirejs ? ' requirejs' : '') +
71
- (sourceMap ? ' sourcemap' : '') +
72
- ' minifier=' + minifier +
73
- '` */';
74
-
75
- function appendFileContents(fileNames, callback) {
76
-
77
- (function readNextFile() {
78
-
79
- if (fileNames.length <= 0) {
80
- return callback();
81
- }
82
-
83
- var fileName = fileNames.shift();
84
-
85
- if (!fileName) {
86
- return readNextFile();
87
- }
88
-
89
- fs.readFile(__dirname + '/' + fileName, function (err, data) {
90
- if (err) throw err;
91
- var strData = String(data);
92
- if (fileName === 'src/HEADER.js' && amdLib === false) {
93
- strData = strData.replace(/\/\* _AMD_START_ \*\/[\s\S]*?\/\* _AMD_END_ \*\//g, '');
94
- }
95
- if (noStrict) {
96
- strData = strData.replace(/"use strict";?\n?/, '');
97
- }
98
- if (noSVGExport) {
99
- strData = strData.replace(/\/\* _TO_SVG_START_ \*\/[\s\S]*?\/\* _TO_SVG_END_ \*\//g, '');
100
- }
101
- if (noSVGImport) {
102
- strData = strData.replace(/\/\* _FROM_SVG_START_ \*\/[\s\S]*?\/\* _FROM_SVG_END_ \*\//g, '');
103
- }
104
- distFileContents += ('\n' + strData + '\n');
105
- readNextFile();
106
- });
107
-
108
- })();
109
- }
110
-
111
- function ifSpecifiedInclude(moduleName, fileName) {
112
- var isInIncludedList = modulesToInclude.indexOf(moduleName) > -1;
113
- var isInExcludedList = modulesToExclude.indexOf(moduleName) > -1;
114
-
115
- // excluded list takes precedence over modules=ALL
116
- return ((isInIncludedList || includeAllModules) && !isInExcludedList) ? fileName : '';
117
- }
118
-
119
- var filesToInclude = [
120
- 'HEADER.js',
121
- ifSpecifiedInclude('global', 'src/globalFabric.js'),
122
- ifSpecifiedInclude('gestures', 'lib/event.js'),
123
-
124
- 'src/mixins/observable.mixin.js',
125
- 'src/mixins/collection.mixin.js',
126
- 'src/mixins/shared_methods.mixin.js',
127
- 'src/util/misc.js',
128
- ifSpecifiedInclude('accessors', 'src/util/named_accessors.mixin.js'),
129
- 'src/util/path.js',
130
- 'src/util/lang_array.js',
131
- 'src/util/lang_object.js',
132
- 'src/util/lang_string.js',
133
- 'src/util/lang_class.js',
134
- ifSpecifiedInclude('interaction', 'src/util/dom_event.js'),
135
- 'src/util/dom_style.js',
136
- 'src/util/dom_misc.js',
137
- 'src/util/dom_request.js',
138
-
139
- 'src/log.js',
140
-
141
- ifSpecifiedInclude('animation', 'src/util/animate.js'),
142
- ifSpecifiedInclude('animation', 'src/util/animate_color.js'),
143
- //'src/util/animate.js',
144
- ifSpecifiedInclude('easing', 'src/util/anim_ease.js'),
145
-
146
- ifSpecifiedInclude('parser', 'src/parser.js'),
147
- ifSpecifiedInclude('parser', 'src/elements_parser.js'),
148
-
149
- 'src/point.class.js',
150
- 'src/intersection.class.js',
151
- 'src/color.class.js',
152
- ifSpecifiedInclude('interaction', 'src/controls.actions.js'),
153
- ifSpecifiedInclude('interaction', 'src/controls.render.js'),
154
- ifSpecifiedInclude('interaction', 'src/control.class.js'),
155
-
156
- ifSpecifiedInclude('gradient', 'src/gradient.class.js'),
157
- ifSpecifiedInclude('pattern', 'src/pattern.class.js'),
158
- ifSpecifiedInclude('shadow', 'src/shadow.class.js'),
159
-
160
- 'src/static_canvas.class.js',
161
-
162
- ifSpecifiedInclude('freedrawing', 'src/brushes/base_brush.class.js'),
163
-
164
- ifSpecifiedInclude('freedrawing', 'src/brushes/pencil_brush.class.js'),
165
- ifSpecifiedInclude('freedrawing', 'src/brushes/circle_brush.class.js'),
166
- ifSpecifiedInclude('freedrawing', 'src/brushes/spray_brush.class.js'),
167
- ifSpecifiedInclude('freedrawing', 'src/brushes/pattern_brush.class.js'),
168
-
169
- ifSpecifiedInclude('interaction', 'src/canvas.class.js'),
170
- ifSpecifiedInclude('interaction', 'src/mixins/canvas_events.mixin.js'),
171
- ifSpecifiedInclude('interaction', 'src/mixins/canvas_grouping.mixin.js'),
172
-
173
- 'src/mixins/canvas_dataurl_exporter.mixin.js',
174
-
175
- ifSpecifiedInclude('serialization', 'src/mixins/canvas_serialization.mixin.js'),
176
- ifSpecifiedInclude('gestures', 'src/mixins/canvas_gestures.mixin.js'),
177
-
178
- 'src/shapes/object.class.js',
179
- 'src/mixins/object_origin.mixin.js',
180
- 'src/mixins/object_geometry.mixin.js',
181
- 'src/mixins/object_stacking.mixin.js',
182
- 'src/mixins/object.svg_export.js',
183
- 'src/mixins/stateful.mixin.js',
184
-
185
- ifSpecifiedInclude('interaction', 'src/mixins/object_interactivity.mixin.js'),
186
-
187
- ifSpecifiedInclude('animation', 'src/mixins/animation.mixin.js'),
188
-
189
- 'src/shapes/line.class.js',
190
- 'src/shapes/circle.class.js',
191
- 'src/shapes/triangle.class.js',
192
- 'src/shapes/ellipse.class.js',
193
- 'src/shapes/rect.class.js',
194
- 'src/shapes/polyline.class.js',
195
- 'src/shapes/polygon.class.js',
196
- 'src/shapes/path.class.js',
197
- 'src/shapes/group.class.js',
198
- ifSpecifiedInclude('interaction', 'src/shapes/active_selection.class.js'),
199
- 'src/shapes/image.class.js',
200
-
201
- ifSpecifiedInclude('object_straightening', 'src/mixins/object_straightening.mixin.js'),
202
- ifSpecifiedInclude('image_filters', 'src/filters/webgl_backend.class.js'),
203
- ifSpecifiedInclude('image_filters', 'src/filters/2d_backend.class.js'),
204
- ifSpecifiedInclude('image_filters', 'src/filters/base_filter.class.js'),
205
- ifSpecifiedInclude('image_filters', 'src/filters/colormatrix_filter.class.js'),
206
- ifSpecifiedInclude('image_filters', 'src/filters/brightness_filter.class.js'),
207
- ifSpecifiedInclude('image_filters', 'src/filters/convolute_filter.class.js'),
208
- ifSpecifiedInclude('image_filters', 'src/filters/grayscale_filter.class.js'),
209
- ifSpecifiedInclude('image_filters', 'src/filters/invert_filter.class.js'),
210
- ifSpecifiedInclude('image_filters', 'src/filters/noise_filter.class.js'),
211
- ifSpecifiedInclude('image_filters', 'src/filters/pixelate_filter.class.js'),
212
- ifSpecifiedInclude('image_filters', 'src/filters/removecolor_filter.class.js'),
213
- ifSpecifiedInclude('image_filters', 'src/filters/filter_generator.js'),
214
- ifSpecifiedInclude('image_filters', 'src/filters/blendcolor_filter.class.js'),
215
- ifSpecifiedInclude('image_filters', 'src/filters/blendimage_filter.class.js'),
216
- ifSpecifiedInclude('image_filters', 'src/filters/resize_filter.class.js'),
217
- ifSpecifiedInclude('image_filters', 'src/filters/contrast_filter.class.js'),
218
- ifSpecifiedInclude('image_filters', 'src/filters/saturate_filter.class.js'),
219
- ifSpecifiedInclude('image_filters', 'src/filters/vibrance_filter.class.js'),
220
- ifSpecifiedInclude('image_filters', 'src/filters/blur_filter.class.js'),
221
- ifSpecifiedInclude('image_filters', 'src/filters/gamma_filter.class.js'),
222
- ifSpecifiedInclude('image_filters', 'src/filters/composed_filter.class.js'),
223
- ifSpecifiedInclude('image_filters', 'src/filters/hue_rotation.class.js'),
224
-
225
- ifSpecifiedInclude('text', 'src/shapes/text.class.js'),
226
- ifSpecifiedInclude('text', 'src/mixins/text_style.mixin.js'),
227
-
228
- ifSpecifiedInclude('itext', 'src/shapes/itext.class.js'),
229
- ifSpecifiedInclude('itext', 'src/mixins/itext_behavior.mixin.js'),
230
- ifSpecifiedInclude('itext', 'src/mixins/itext_click_behavior.mixin.js'),
231
- ifSpecifiedInclude('itext', 'src/mixins/itext_key_behavior.mixin.js'),
232
- ifSpecifiedInclude('itext', 'src/mixins/itext.svg_export.js'),
233
-
234
- ifSpecifiedInclude('textbox', 'src/shapes/textbox.class.js'),
235
- ifSpecifiedInclude('interaction', 'src/mixins/default_controls.js'),
236
-
237
- // extends fabric.StaticCanvas, fabric.Canvas, fabric.Object, depends on fabric.PencilBrush and fabric.Rect
238
- ifSpecifiedInclude('erasing', 'src/mixins/eraser_brush.mixin.js'),
239
- ];
240
-
241
- if (buildMinified) {
242
- for (var i = 0; i < filesToInclude.length; i++) {
243
- if (!filesToInclude[i]) continue;
244
- var fileNameWithoutSlashes = filesToInclude[i].replace(/\//g, '^');
245
- exec('uglifyjs -nc ' + amdUglifyFlags + filesToInclude[i] + ' > tmp/' + fileNameWithoutSlashes);
246
- }
247
- }
248
- else {
249
- // change the current working directory
250
- process.chdir(distributionPath);
251
-
252
- appendFileContents(filesToInclude, function() {
253
- fs.writeFile('fabric.js', distFileContents, function (err) {
254
- if (err) {
255
- console.log(err);
256
- throw err;
257
- }
258
- if (buildFast) {
259
- process.exit(0);
260
- }
261
-
262
- if (amdLib !== false) {
263
- console.log('Built distribution to ' + distributionPath + 'fabric.js (' + amdLib + '-compatible)');
264
- } else {
265
- console.log('Built distribution to ' + distributionPath + 'fabric.js');
266
- }
267
-
268
- exec(mininfierCmd, function (error, output) {
269
- if (error) {
270
- console.error('Minification failed using', minifier, 'with', mininfierCmd);
271
- console.error('Minifier error output:\n' + error);
272
- process.exit(1);
273
- }
274
- console.log('Minified using', minifier, 'to ' + distributionPath + 'fabric.min.js');
275
-
276
- if (sourceMapFlags) {
277
- console.log('Built sourceMap to ' + distributionPath + 'fabric.min.js.map');
278
- }
279
-
280
- exec('gzip -c fabric.min.js > fabric.min.js.gz', function (error, output) {
281
- console.log('Gzipped to ' + distributionPath + 'fabric.min.js.gz');
282
- });
283
- });
284
-
285
- });
286
- });
287
- }