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
@@ -0,0 +1,48 @@
1
+ import type { TClassProperties } from '../typedefs';
2
+ import { BaseFilter } from './BaseFilter';
3
+ import type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';
4
+ /**
5
+ * Saturate filter class
6
+ * @example
7
+ * const filter = new Saturation({
8
+ * saturation: 1
9
+ * });
10
+ * object.filters.push(filter);
11
+ * object.applyFilters();
12
+ */
13
+ export declare const saturationDefaultValues: Partial<TClassProperties<Saturation>>;
14
+ export declare class Saturation extends BaseFilter {
15
+ /**
16
+ * Saturation value, from -1 to 1.
17
+ * Increases/decreases the color saturation.
18
+ * A value of 0 has no effect.
19
+ *
20
+ * @param {Number} saturation
21
+ * @default
22
+ */
23
+ saturation: number;
24
+ static defaults: Partial<TClassProperties<Saturation>>;
25
+ getFragmentSource(): string;
26
+ /**
27
+ * Apply the Saturation operation to a Uint8ClampedArray representing the pixels of an image.
28
+ *
29
+ * @param {Object} options
30
+ * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.
31
+ */
32
+ applyTo2d({ imageData: { data } }: T2DPipelineState): void;
33
+ /**
34
+ * Return WebGL uniform locations for this filter's shader.
35
+ *
36
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
37
+ * @param {WebGLShaderProgram} program This filter's compiled shader program.
38
+ */
39
+ getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
40
+ /**
41
+ * Send data from this filter to its shader program's uniforms.
42
+ *
43
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
44
+ * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
45
+ */
46
+ sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
47
+ }
48
+ //# sourceMappingURL=Saturation.d.ts.map
@@ -0,0 +1,48 @@
1
+ import type { TClassProperties } from '../typedefs';
2
+ import { BaseFilter } from './BaseFilter';
3
+ import type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';
4
+ export declare const vibranceDefaultValues: Partial<TClassProperties<Vibrance>>;
5
+ /**
6
+ * Vibrance filter class
7
+ * @example
8
+ * const filter = new Vibrance({
9
+ * vibrance: 1
10
+ * });
11
+ * object.filters.push(filter);
12
+ * object.applyFilters();
13
+ */
14
+ export declare class Vibrance extends BaseFilter {
15
+ /**
16
+ * Vibrance value, from -1 to 1.
17
+ * Increases/decreases the saturation of more muted colors with less effect on saturated colors.
18
+ * A value of 0 has no effect.
19
+ *
20
+ * @param {Number} vibrance
21
+ * @default
22
+ */
23
+ vibrance: number;
24
+ static defaults: Partial<TClassProperties<Vibrance>>;
25
+ getFragmentSource(): string;
26
+ /**
27
+ * Apply the Vibrance operation to a Uint8ClampedArray representing the pixels of an image.
28
+ *
29
+ * @param {Object} options
30
+ * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.
31
+ */
32
+ applyTo2d({ imageData: { data } }: T2DPipelineState): void;
33
+ /**
34
+ * Return WebGL uniform locations for this filter's shader.
35
+ *
36
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
37
+ * @param {WebGLShaderProgram} program This filter's compiled shader program.
38
+ */
39
+ getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
40
+ /**
41
+ * Send data from this filter to its shader program's uniforms.
42
+ *
43
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
44
+ * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
45
+ */
46
+ sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
47
+ }
48
+ //# sourceMappingURL=Vibrance.d.ts.map
@@ -0,0 +1,126 @@
1
+ import { TWebGLPipelineState, TProgramCache, TTextureCache, TPipelineResources } from './typedefs';
2
+ export declare class WebGLFilterBackend {
3
+ tileSize: number;
4
+ /**
5
+ * Define ...
6
+ **/
7
+ aPosition: Float32Array;
8
+ /**
9
+ * If GLPut data is the fastest operation, or if forced, this buffer will be used
10
+ * to transfer the data back in the 2d logic
11
+ **/
12
+ imageBuffer?: ArrayBuffer;
13
+ canvas: HTMLCanvasElement;
14
+ /**
15
+ * The Webgl context that will execute the operations for filtering
16
+ **/
17
+ gl: WebGLRenderingContext;
18
+ /**
19
+ * Keyed map for shader cache
20
+ **/
21
+ programCache: TProgramCache;
22
+ /**
23
+ * Keyed map for texture cache
24
+ **/
25
+ textureCache: TTextureCache;
26
+ /**
27
+ * Contains GPU info for debug
28
+ **/
29
+ gpuInfo: any;
30
+ /**
31
+ * Experimental. This object is a sort of repository of help layers used to avoid
32
+ * of recreating them during frequent filtering. If you are previewing a filter with
33
+ * a slider you probably do not want to create help layers every filter step.
34
+ * in this object there will be appended some canvases, created once, resized sometimes
35
+ * cleared never. Clearing is left to the developer.
36
+ **/
37
+ resources: TPipelineResources;
38
+ constructor({ tileSize }?: {
39
+ tileSize?: number | undefined;
40
+ });
41
+ /**
42
+ * Setup a WebGL context suitable for filtering, and bind any needed event handlers.
43
+ */
44
+ setupGLContext(width: number, height: number): void;
45
+ /**
46
+ * Pick a method to copy data from GL context to 2d canvas. In some browsers using
47
+ * drawImage should be faster, but is also bugged for a small combination of old hardware
48
+ * and drivers.
49
+ * putImageData is faster than drawImage for that specific operation.
50
+ */
51
+ chooseFastestCopyGLTo2DMethod(width: number, height: number): void;
52
+ /**
53
+ * Create a canvas element and associated WebGL context and attaches them as
54
+ * class properties to the GLFilterBackend class.
55
+ */
56
+ createWebGLCanvas(width: number, height: number): void;
57
+ /**
58
+ * Attempts to apply the requested filters to the source provided, drawing the filtered output
59
+ * to the provided target canvas.
60
+ *
61
+ * @param {Array} filters The filters to apply.
62
+ * @param {TexImageSource} source The source to be filtered.
63
+ * @param {Number} width The width of the source input.
64
+ * @param {Number} height The height of the source input.
65
+ * @param {HTMLCanvasElement} targetCanvas The destination for filtered output to be drawn.
66
+ * @param {String|undefined} cacheKey A key used to cache resources related to the source. If
67
+ * omitted, caching will be skipped.
68
+ */
69
+ applyFilters(filters: any[], source: TexImageSource, width: number, height: number, targetCanvas: HTMLCanvasElement, cacheKey?: string): TWebGLPipelineState | undefined;
70
+ /**
71
+ * Detach event listeners, remove references, and clean up caches.
72
+ */
73
+ dispose(): void;
74
+ /**
75
+ * Wipe out WebGL-related caches.
76
+ */
77
+ clearWebGLCaches(): void;
78
+ /**
79
+ * Create a WebGL texture object.
80
+ *
81
+ * Accepts specific dimensions to initialize the texture to or a source image.
82
+ *
83
+ * @param {WebGLRenderingContext} gl The GL context to use for creating the texture.
84
+ * @param {Number} width The width to initialize the texture at.
85
+ * @param {Number} height The height to initialize the texture.
86
+ * @param {HTMLImageElement|HTMLCanvasElement} textureImageSource A source for the texture data.
87
+ * @returns {WebGLTexture}
88
+ */
89
+ createTexture(gl: WebGLRenderingContext, width: number, height: number, textureImageSource?: TexImageSource): WebGLTexture | null;
90
+ /**
91
+ * Can be optionally used to get a texture from the cache array
92
+ *
93
+ * If an existing texture is not found, a new texture is created and cached.
94
+ *
95
+ * @param {String} uniqueId A cache key to use to find an existing texture.
96
+ * @param {HTMLImageElement|HTMLCanvasElement} textureImageSource A source to use to create the
97
+ * texture cache entry if one does not already exist.
98
+ */
99
+ getCachedTexture(uniqueId: string, textureImageSource: TexImageSource): any;
100
+ /**
101
+ * Clear out cached resources related to a source image that has been
102
+ * filtered previously.
103
+ *
104
+ * @param {String} cacheKey The cache key provided when the source image was filtered.
105
+ */
106
+ evictCachesForKey(cacheKey: string): void;
107
+ /**
108
+ * Copy an input WebGL canvas on to an output 2D canvas.
109
+ *
110
+ * The WebGL canvas is assumed to be upside down, with the top-left pixel of the
111
+ * desired output image appearing in the bottom-left corner of the WebGL canvas.
112
+ *
113
+ * @param {WebGLRenderingContext} sourceContext The WebGL context to copy from.
114
+ * @param {Object} pipelineState The 2D target canvas to copy on to.
115
+ */
116
+ copyGLTo2D(gl: WebGLRenderingContext, pipelineState: TWebGLPipelineState): void;
117
+ /**
118
+ * Attempt to extract GPU information strings from a WebGL context.
119
+ *
120
+ * Useful information when debugging or blacklisting specific GPUs.
121
+ *
122
+ * @returns {Object} A GPU info object with renderer and vendor strings.
123
+ */
124
+ captureGPUInfo(): any;
125
+ }
126
+ //# sourceMappingURL=WebGLFilterBackend.d.ts.map
@@ -0,0 +1,21 @@
1
+ export { BaseFilter } from './BaseFilter';
2
+ export { BlendColor } from './BlendColor';
3
+ export { BlendImage } from './BlendImage';
4
+ export { Blur } from './Blur';
5
+ export { Brightness } from './Brightness';
6
+ export { ColorMatrix } from './ColorMatrix';
7
+ export { BlackWhite, Brownie, Kodachrome, Polaroid, Sepia, Technicolor, Vintage, } from './ColorMatrixFilters';
8
+ export { Composed } from './Composed';
9
+ export { Contrast } from './Contrast';
10
+ export { Convolute } from './Convolute';
11
+ export { Gamma } from './Gamma';
12
+ export { Grayscale } from './Grayscale';
13
+ export { HueRotation } from './HueRotation';
14
+ export { Invert } from './Invert';
15
+ export { Noise } from './Noise';
16
+ export { Pixelate } from './Pixelate';
17
+ export { RemoveColor } from './RemoveColor';
18
+ export { Resize } from './Resize';
19
+ export { Saturation } from './Saturation';
20
+ export { Vibrance } from './Vibrance';
21
+ //# sourceMappingURL=filters.d.ts.map
@@ -0,0 +1,5 @@
1
+ export * as filters from './filters';
2
+ export { getFilterBackend, initFilterBackend } from './FilterBackend';
3
+ export { Canvas2dFilterBackend } from './Canvas2dFilterBackend';
4
+ export { WebGLFilterBackend } from './WebGLFilterBackend';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,4 @@
1
+ export declare const highPsourceCode: string;
2
+ export declare const identityFragmentShader: string;
3
+ export declare const vertexSource = "\n attribute vec2 aPosition;\n varying vec2 vTexCoord;\n void main() {\n vTexCoord = aPosition;\n gl_Position = vec4(aPosition * 2.0 - 1.0, 0.0, 1.0);\n }";
4
+ //# sourceMappingURL=baseFilter.d.ts.map
@@ -0,0 +1,13 @@
1
+ export declare const blendColorFragmentSource: {
2
+ readonly multiply: "gl_FragColor.rgb *= uColor.rgb;\n";
3
+ readonly screen: "gl_FragColor.rgb = 1.0 - (1.0 - gl_FragColor.rgb) * (1.0 - uColor.rgb);\n";
4
+ readonly add: "gl_FragColor.rgb += uColor.rgb;\n";
5
+ readonly difference: "gl_FragColor.rgb = abs(gl_FragColor.rgb - uColor.rgb);\n";
6
+ readonly subtract: "gl_FragColor.rgb -= uColor.rgb;\n";
7
+ readonly lighten: "gl_FragColor.rgb = max(gl_FragColor.rgb, uColor.rgb);\n";
8
+ readonly darken: "gl_FragColor.rgb = min(gl_FragColor.rgb, uColor.rgb);\n";
9
+ readonly exclusion: "gl_FragColor.rgb += uColor.rgb - 2.0 * (uColor.rgb * gl_FragColor.rgb);\n";
10
+ readonly overlay: "\n if (uColor.r < 0.5) {\n gl_FragColor.r *= 2.0 * uColor.r;\n } else {\n gl_FragColor.r = 1.0 - 2.0 * (1.0 - gl_FragColor.r) * (1.0 - uColor.r);\n }\n if (uColor.g < 0.5) {\n gl_FragColor.g *= 2.0 * uColor.g;\n } else {\n gl_FragColor.g = 1.0 - 2.0 * (1.0 - gl_FragColor.g) * (1.0 - uColor.g);\n }\n if (uColor.b < 0.5) {\n gl_FragColor.b *= 2.0 * uColor.b;\n } else {\n gl_FragColor.b = 1.0 - 2.0 * (1.0 - gl_FragColor.b) * (1.0 - uColor.b);\n }\n ";
11
+ readonly tint: "\n gl_FragColor.rgb *= (1.0 - uColor.a);\n gl_FragColor.rgb += uColor.rgb;\n ";
12
+ };
13
+ //# sourceMappingURL=blendColor.d.ts.map
@@ -0,0 +1,3 @@
1
+ import { TBlendImageMode } from '../BlendImage';
2
+ export declare const fragmentSource: Record<TBlendImageMode, string>;
3
+ //# sourceMappingURL=blendImage.d.ts.map
@@ -0,0 +1,2 @@
1
+ export declare const fragmentSource: "\n precision highp float;\n uniform sampler2D uTexture;\n uniform vec2 uDelta;\n varying vec2 vTexCoord;\n const float nSamples = 15.0;\n vec3 v3offset = vec3(12.9898, 78.233, 151.7182);\n float random(vec3 scale) {\n /* use the fragment position for a different seed per-pixel */\n return fract(sin(dot(gl_FragCoord.xyz, scale)) * 43758.5453);\n }\n void main() {\n vec4 color = vec4(0.0);\n float total = 0.0;\n float offset = random(v3offset);\n for (float t = -nSamples; t <= nSamples; t++) {\n float percent = (t + offset - 0.5) / nSamples;\n float weight = 1.0 - abs(percent);\n color += texture2D(uTexture, vTexCoord + uDelta * percent) * weight;\n total += weight;\n }\n gl_FragColor = color / total;\n }\n ";
2
+ //# sourceMappingURL=blur.d.ts.map
@@ -0,0 +1,2 @@
1
+ export declare const fragmentSource = "\n precision highp float;\n uniform sampler2D uTexture;\n uniform float uBrightness;\n varying vec2 vTexCoord;\n void main() {\n vec4 color = texture2D(uTexture, vTexCoord);\n color.rgb += uBrightness;\n gl_FragColor = color;\n }\n";
2
+ //# sourceMappingURL=brightness.d.ts.map
@@ -0,0 +1,2 @@
1
+ export declare const fragmentSource = "\n precision highp float;\n uniform sampler2D uTexture;\n varying vec2 vTexCoord;\n uniform mat4 uColorMatrix;\n uniform vec4 uConstants;\n void main() {\n vec4 color = texture2D(uTexture, vTexCoord);\n color *= uColorMatrix;\n color += uConstants;\n gl_FragColor = color;\n }";
2
+ //# sourceMappingURL=colorMatrix.d.ts.map
@@ -0,0 +1,2 @@
1
+ export declare const fragmentSource = "\n precision highp float;\n uniform sampler2D uTexture;\n uniform float uContrast;\n varying vec2 vTexCoord;\n void main() {\n vec4 color = texture2D(uTexture, vTexCoord);\n float contrastF = 1.015 * (uContrast + 1.0) / (1.0 * (1.015 - uContrast));\n color.rgb = contrastF * (color.rgb - 0.5) + 0.5;\n gl_FragColor = color;\n }";
2
+ //# sourceMappingURL=constrast.d.ts.map
@@ -0,0 +1,11 @@
1
+ export declare const fragmentSource: {
2
+ Convolute_3_1: string;
3
+ Convolute_3_0: string;
4
+ Convolute_5_1: string;
5
+ Convolute_5_0: string;
6
+ Convolute_7_1: string;
7
+ Convolute_7_0: string;
8
+ Convolute_9_1: string;
9
+ Convolute_9_0: string;
10
+ };
11
+ //# sourceMappingURL=convolute.d.ts.map
@@ -0,0 +1,2 @@
1
+ export declare const fragmentSource = "\n precision highp float;\n uniform sampler2D uTexture;\n uniform vec3 uGamma;\n varying vec2 vTexCoord;\n void main() {\n vec4 color = texture2D(uTexture, vTexCoord);\n vec3 correction = (1.0 / uGamma);\n color.r = pow(color.r, correction.r);\n color.g = pow(color.g, correction.g);\n color.b = pow(color.b, correction.b);\n gl_FragColor = color;\n gl_FragColor.rgb *= color.a;\n }\n";
2
+ //# sourceMappingURL=gamma.d.ts.map
@@ -0,0 +1,3 @@
1
+ import { TGrayscaleMode } from '../Grayscale';
2
+ export declare const fragmentSource: Record<TGrayscaleMode, string>;
3
+ //# sourceMappingURL=grayscale.d.ts.map
@@ -0,0 +1,2 @@
1
+ export declare const fragmentSource = "\n precision highp float;\n uniform sampler2D uTexture;\n uniform int uInvert;\n uniform int uAlpha;\n varying vec2 vTexCoord;\n void main() {\n vec4 color = texture2D(uTexture, vTexCoord);\n if (uInvert == 1) {\n if (uAlpha == 1) {\n gl_FragColor = vec4(1.0 - color.r,1.0 -color.g,1.0 -color.b,1.0 -color.a);\n } else {\n gl_FragColor = vec4(1.0 - color.r,1.0 -color.g,1.0 -color.b,color.a);\n }\n } else {\n gl_FragColor = color;\n }\n }\n";
2
+ //# sourceMappingURL=invert.d.ts.map
@@ -0,0 +1,2 @@
1
+ export declare const fragmentSource = "\n precision highp float;\n uniform sampler2D uTexture;\n uniform float uStepH;\n uniform float uNoise;\n uniform float uSeed;\n varying vec2 vTexCoord;\n float rand(vec2 co, float seed, float vScale) {\n return fract(sin(dot(co.xy * vScale ,vec2(12.9898 , 78.233))) * 43758.5453 * (seed + 0.01) / 2.0);\n }\n void main() {\n vec4 color = texture2D(uTexture, vTexCoord);\n color.rgb += (0.5 - rand(vTexCoord, uSeed, 0.1 / uStepH)) * uNoise;\n gl_FragColor = color;\n }\n";
2
+ //# sourceMappingURL=noise.d.ts.map
@@ -0,0 +1,2 @@
1
+ export declare const fragmentSource = "\n precision highp float;\n uniform sampler2D uTexture;\n uniform float uBlocksize;\n uniform float uStepW;\n uniform float uStepH;\n varying vec2 vTexCoord;\n void main() {\n float blockW = uBlocksize * uStepW;\n float blockH = uBlocksize * uStepW;\n int posX = int(vTexCoord.x / blockW);\n int posY = int(vTexCoord.y / blockH);\n float fposX = float(posX);\n float fposY = float(posY);\n vec2 squareCoords = vec2(fposX * blockW, fposY * blockH);\n vec4 color = texture2D(uTexture, squareCoords);\n gl_FragColor = color;\n }\n";
2
+ //# sourceMappingURL=pixelate.d.ts.map
@@ -0,0 +1,2 @@
1
+ export declare const fragmentShader = "\nprecision highp float;\nuniform sampler2D uTexture;\nuniform vec4 uLow;\nuniform vec4 uHigh;\nvarying vec2 vTexCoord;\nvoid main() {\n gl_FragColor = texture2D(uTexture, vTexCoord);\n if(all(greaterThan(gl_FragColor.rgb,uLow.rgb)) && all(greaterThan(uHigh.rgb,gl_FragColor.rgb))) {\n gl_FragColor.a = 0.0;\n }\n}\n";
2
+ //# sourceMappingURL=removeColor.d.ts.map
@@ -0,0 +1,2 @@
1
+ export declare const fragmentSource = "\n precision highp float;\n uniform sampler2D uTexture;\n uniform float uSaturation;\n varying vec2 vTexCoord;\n void main() {\n vec4 color = texture2D(uTexture, vTexCoord);\n float rgMax = max(color.r, color.g);\n float rgbMax = max(rgMax, color.b);\n color.r += rgbMax != color.r ? (rgbMax - color.r) * uSaturation : 0.00;\n color.g += rgbMax != color.g ? (rgbMax - color.g) * uSaturation : 0.00;\n color.b += rgbMax != color.b ? (rgbMax - color.b) * uSaturation : 0.00;\n gl_FragColor = color;\n }\n";
2
+ //# sourceMappingURL=saturation.d.ts.map
@@ -0,0 +1,2 @@
1
+ export declare const fragmentSource = "\n precision highp float;\n uniform sampler2D uTexture;\n uniform float uVibrance;\n varying vec2 vTexCoord;\n void main() {\n vec4 color = texture2D(uTexture, vTexCoord);\n float max = max(color.r, max(color.g, color.b));\n float avg = (color.r + color.g + color.b) / 3.0;\n float amt = (abs(max - avg) * 2.0) * uVibrance;\n color.r += max != color.r ? (max - color.r) * amt : 0.00;\n color.g += max != color.g ? (max - color.g) * amt : 0.00;\n color.b += max != color.b ? (max - color.b) * amt : 0.00;\n gl_FragColor = color;\n }\n";
2
+ //# sourceMappingURL=vibrance.d.ts.map
@@ -0,0 +1,49 @@
1
+ import type { WebGLFilterBackend } from './WebGLFilterBackend';
2
+ import type { Canvas2dFilterBackend } from './Canvas2dFilterBackend';
3
+ export type TProgramCache = any;
4
+ export type TTextureCache = any;
5
+ export type TPipelineResources = {
6
+ blendImage?: HTMLCanvasElement;
7
+ blurLayer1?: HTMLCanvasElement;
8
+ blurLayer2?: HTMLCanvasElement;
9
+ } & Record<string, unknown>;
10
+ export type TWebGLPipelineState = {
11
+ filterBackend: WebGLFilterBackend;
12
+ originalWidth: number;
13
+ originalHeight: number;
14
+ sourceWidth: number;
15
+ sourceHeight: number;
16
+ destinationWidth: number;
17
+ destinationHeight: number;
18
+ context: WebGLRenderingContext;
19
+ sourceTexture: WebGLTexture | null;
20
+ targetTexture: WebGLTexture | null;
21
+ originalTexture: WebGLTexture;
22
+ passes: number;
23
+ webgl: boolean;
24
+ aPosition: Float32Array;
25
+ programCache: TProgramCache;
26
+ pass: number;
27
+ targetCanvas: HTMLCanvasElement;
28
+ };
29
+ export type T2DPipelineState = {
30
+ sourceWidth: number;
31
+ sourceHeight: number;
32
+ filterBackend: Canvas2dFilterBackend;
33
+ canvasEl: HTMLCanvasElement;
34
+ imageData: ImageData;
35
+ originalEl: CanvasImageSource;
36
+ originalImageData?: ImageData;
37
+ ctx: CanvasRenderingContext2D;
38
+ helpLayer?: HTMLCanvasElement;
39
+ };
40
+ export type TWebGLUniformLocationMap = Record<string, WebGLUniformLocation | null>;
41
+ export type TWebGLAttributeLocationMap = Record<string, number>;
42
+ export type TWebGLProgramCacheItem = {
43
+ program: WebGLProgram;
44
+ attributeLocations: TWebGLAttributeLocationMap;
45
+ uniformLocations: TWebGLUniformLocationMap;
46
+ };
47
+ export type TApplyFilterArgs = {};
48
+ export declare const isWebGLPipelineState: (options: TWebGLPipelineState | T2DPipelineState) => options is TWebGLPipelineState;
49
+ //# sourceMappingURL=typedefs.d.ts.map
@@ -0,0 +1,149 @@
1
+ import type { FabricObject } from '../shapes/Object/FabricObject';
2
+ import { TMat2D } from '../typedefs';
3
+ import { ColorStop, GradientCoords, GradientOptions, GradientType, GradientUnits, SVGOptions } from './typedefs';
4
+ /**
5
+ * Gradient class
6
+ * @class Gradient
7
+ * @tutorial {@link http://fabricjs.com/fabric-intro-part-2#gradients}
8
+ */
9
+ export declare class Gradient<S, T extends GradientType = S extends GradientType ? S : 'linear'> {
10
+ /**
11
+ * Horizontal offset for aligning gradients coming from SVG when outside pathgroups
12
+ * @type Number
13
+ * @default 0
14
+ */
15
+ offsetX: number;
16
+ /**
17
+ * Vertical offset for aligning gradients coming from SVG when outside pathgroups
18
+ * @type Number
19
+ * @default 0
20
+ */
21
+ offsetY: number;
22
+ /**
23
+ * A transform matrix to apply to the gradient before painting.
24
+ * Imported from svg gradients, is not applied with the current transform in the center.
25
+ * Before this transform is applied, the origin point is at the top left corner of the object
26
+ * plus the addition of offsetY and offsetX.
27
+ * @type Number[]
28
+ * @default null
29
+ */
30
+ gradientTransform: TMat2D | null;
31
+ /**
32
+ * coordinates units for coords.
33
+ * If `pixels`, the number of coords are in the same unit of width / height.
34
+ * If set as `percentage` the coords are still a number, but 1 means 100% of width
35
+ * for the X and 100% of the height for the y. It can be bigger than 1 and negative.
36
+ * allowed values pixels or percentage.
37
+ * @type GradientUnits
38
+ * @default 'pixels'
39
+ */
40
+ gradientUnits: GradientUnits;
41
+ /**
42
+ * Gradient type linear or radial
43
+ * @type GradientType
44
+ * @default 'linear'
45
+ */
46
+ type: T;
47
+ /**
48
+ * Defines how the gradient is located in space and spread
49
+ * @type GradientCoords
50
+ */
51
+ coords: GradientCoords<T>;
52
+ /**
53
+ * Defines how many colors a gradient has and how they are located on the axis
54
+ * defined by coords
55
+ * @type GradientCoords
56
+ */
57
+ colorStops: ColorStop[];
58
+ /**
59
+ * If true, this object will not be exported during the serialization of a canvas
60
+ * @type boolean
61
+ */
62
+ excludeFromExport?: boolean;
63
+ /**
64
+ * ID used for SVG export functionalities
65
+ * @type number | string
66
+ */
67
+ readonly id: string | number;
68
+ constructor({ type, gradientUnits, coords, colorStops, offsetX, offsetY, gradientTransform, id, }: GradientOptions<T>);
69
+ /**
70
+ * Adds another colorStop
71
+ * @param {Record<string, string>} colorStop Object with offset and color
72
+ * @return {Gradient} thisArg
73
+ */
74
+ addColorStop(colorStops: Record<string, string>): this;
75
+ /**
76
+ * Returns object representation of a gradient
77
+ * @param {string[]} [propertiesToInclude] Any properties that you might want to additionally include in the output
78
+ * @return {object}
79
+ */
80
+ toObject(propertiesToInclude?: (keyof this | string)[]): Partial<this> & {
81
+ type: T;
82
+ coords: GradientCoords<T>;
83
+ colorStops: ColorStop[];
84
+ offsetX: number;
85
+ offsetY: number;
86
+ gradientUnits: GradientUnits;
87
+ gradientTransform: number[] | null;
88
+ };
89
+ /**
90
+ * Returns SVG representation of an gradient
91
+ * @param {FabricObject} object Object to create a gradient for
92
+ * @return {String} SVG representation of an gradient (linear/radial)
93
+ */
94
+ toSVG(object: FabricObject, { additionalTransform: preTransform }?: {
95
+ additionalTransform?: string;
96
+ }): string;
97
+ /**
98
+ * Returns an instance of CanvasGradient
99
+ * @param {CanvasRenderingContext2D} ctx Context to render on
100
+ * @return {CanvasGradient}
101
+ */
102
+ toLive(ctx: CanvasRenderingContext2D): CanvasGradient;
103
+ /**
104
+ * Returns {@link Gradient} instance from an SVG element
105
+ * @static
106
+ * @memberOf Gradient
107
+ * @param {SVGGradientElement} el SVG gradient element
108
+ * @param {FabricObject} instance
109
+ * @param {String} opacity A fill-opacity or stroke-opacity attribute to multiply to each stop's opacity.
110
+ * @param {SVGOptions} svgOptions an object containing the size of the SVG in order to parse correctly gradients
111
+ * that uses gradientUnits as 'userSpaceOnUse' and percentages.
112
+ * @return {Gradient} Gradient instance
113
+ * @see http://www.w3.org/TR/SVG/pservers.html#LinearGradientElement
114
+ * @see http://www.w3.org/TR/SVG/pservers.html#RadialGradientElement
115
+ *
116
+ * @example
117
+ *
118
+ * <linearGradient id="linearGrad1">
119
+ * <stop offset="0%" stop-color="white"/>
120
+ * <stop offset="100%" stop-color="black"/>
121
+ * </linearGradient>
122
+ *
123
+ * OR
124
+ *
125
+ * <linearGradient id="linearGrad2">
126
+ * <stop offset="0" style="stop-color:rgb(255,255,255)"/>
127
+ * <stop offset="1" style="stop-color:rgb(0,0,0)"/>
128
+ * </linearGradient>
129
+ *
130
+ * OR
131
+ *
132
+ * <radialGradient id="radialGrad1">
133
+ * <stop offset="0%" stop-color="white" stop-opacity="1" />
134
+ * <stop offset="50%" stop-color="black" stop-opacity="0.5" />
135
+ * <stop offset="100%" stop-color="white" stop-opacity="1" />
136
+ * </radialGradient>
137
+ *
138
+ * OR
139
+ *
140
+ * <radialGradient id="radialGrad2">
141
+ * <stop offset="0" stop-color="rgb(255,255,255)" />
142
+ * <stop offset="0.5" stop-color="rgb(0,0,0)" />
143
+ * <stop offset="1" stop-color="rgb(255,255,255)" />
144
+ * </radialGradient>
145
+ *
146
+ */
147
+ static fromElement(el: SVGGradientElement, instance: FabricObject, svgOptions: SVGOptions): Gradient<GradientType>;
148
+ }
149
+ //# sourceMappingURL=Gradient.d.ts.map
@@ -0,0 +1,15 @@
1
+ export declare const linearDefaultCoords: {
2
+ x1: number;
3
+ y1: number;
4
+ x2: number;
5
+ y2: number;
6
+ };
7
+ export declare const radialDefaultCoords: {
8
+ r1: number;
9
+ r2: number;
10
+ x1: number;
11
+ y1: number;
12
+ x2: number;
13
+ y2: number;
14
+ };
15
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1,4 @@
1
+ export * from './misc';
2
+ export * from './parseColorStops';
3
+ export * from './parseCoords';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,4 @@
1
+ import { GradientType, GradientUnits } from '../typedefs';
2
+ export declare function parseType(el: SVGGradientElement): GradientType;
3
+ export declare function parseGradientUnits(el: SVGGradientElement): GradientUnits;
4
+ //# sourceMappingURL=misc.d.ts.map
@@ -0,0 +1,3 @@
1
+ import { ColorStop } from '../typedefs';
2
+ export declare function parseColorStops(el: SVGGradientElement, opacityAttr: string | null): ColorStop[];
3
+ //# sourceMappingURL=parseColorStops.d.ts.map
@@ -0,0 +1,17 @@
1
+ import { TSize } from '../../typedefs';
2
+ export declare function parseLinearCoords(el: SVGGradientElement): {
3
+ x1: string | number;
4
+ y1: string | number;
5
+ x2: string;
6
+ y2: string | number;
7
+ };
8
+ export declare function parseRadialCoords(el: SVGGradientElement): {
9
+ x1: string;
10
+ y1: string;
11
+ r1: number;
12
+ x2: string;
13
+ y2: string;
14
+ r2: string;
15
+ };
16
+ export declare function parseCoords(el: SVGGradientElement, size: TSize): Record<"x1" | "y1" | "x2" | "y2", number>;
17
+ //# sourceMappingURL=parseCoords.d.ts.map