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,153 @@
1
+ import type { T2DPipelineState, TWebGLAttributeLocationMap, TWebGLPipelineState, TWebGLProgramCacheItem, TWebGLUniformLocationMap } from './typedefs';
2
+ export declare class BaseFilter {
3
+ /**
4
+ * Filter type
5
+ * @param {String} type
6
+ * @default
7
+ */
8
+ get type(): string;
9
+ static defaults: Record<string, any>;
10
+ /**
11
+ * Array of attributes to send with buffers. do not modify
12
+ * @private
13
+ */
14
+ vertexSource: string;
15
+ /**
16
+ * Name of the parameter that can be changed in the filter.
17
+ * Some filters have more than one parameter and there is no
18
+ * mainParameter
19
+ * @private
20
+ */
21
+ mainParameter?: keyof this | undefined;
22
+ /**
23
+ * Constructor
24
+ * @param {Object} [options] Options object
25
+ */
26
+ constructor({ ...options }?: Record<string, any>);
27
+ protected getFragmentSource(): string;
28
+ /**
29
+ * Compile this filter's shader program.
30
+ *
31
+ * @param {WebGLRenderingContext} gl The GL canvas context to use for shader compilation.
32
+ * @param {String} fragmentSource fragmentShader source for compilation
33
+ * @param {String} vertexSource vertexShader source for compilation
34
+ */
35
+ createProgram(gl: WebGLRenderingContext, fragmentSource?: string, vertexSource?: string): {
36
+ program: WebGLProgram;
37
+ attributeLocations: TWebGLAttributeLocationMap;
38
+ uniformLocations: TWebGLUniformLocationMap;
39
+ };
40
+ /**
41
+ * Return a map of attribute names to WebGLAttributeLocation objects.
42
+ *
43
+ * @param {WebGLRenderingContext} gl The canvas context used to compile the shader program.
44
+ * @param {WebGLShaderProgram} program The shader program from which to take attribute locations.
45
+ * @returns {Object} A map of attribute names to attribute locations.
46
+ */
47
+ getAttributeLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLAttributeLocationMap;
48
+ /**
49
+ * Return a map of uniform names to WebGLUniformLocation objects.
50
+ *
51
+ * Intended to be overridden by subclasses.
52
+ *
53
+ * @param {WebGLRenderingContext} gl The canvas context used to compile the shader program.
54
+ * @param {WebGLShaderProgram} program The shader program from which to take uniform locations.
55
+ * @returns {Object} A map of uniform names to uniform locations.
56
+ */
57
+ getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
58
+ /**
59
+ * Send attribute data from this filter to its shader program on the GPU.
60
+ *
61
+ * @param {WebGLRenderingContext} gl The canvas context used to compile the shader program.
62
+ * @param {Object} attributeLocations A map of shader attribute names to their locations.
63
+ */
64
+ sendAttributeData(gl: WebGLRenderingContext, attributeLocations: Record<string, number>, aPositionData: Float32Array): void;
65
+ _setupFrameBuffer(options: TWebGLPipelineState): void;
66
+ _swapTextures(options: TWebGLPipelineState): void;
67
+ /**
68
+ * Generic isNeutral implementation for one parameter based filters.
69
+ * Used only in image applyFilters to discard filters that will not have an effect
70
+ * on the image
71
+ * Other filters may need their own version ( ColorMatrix, HueRotation, gamma, ComposedFilter )
72
+ * @param {Object} options
73
+ **/
74
+ isNeutralState(options?: any): boolean;
75
+ /**
76
+ * Apply this filter to the input image data provided.
77
+ *
78
+ * Determines whether to use WebGL or Canvas2D based on the options.webgl flag.
79
+ *
80
+ * @param {Object} options
81
+ * @param {Number} options.passes The number of filters remaining to be executed
82
+ * @param {Boolean} options.webgl Whether to use webgl to render the filter.
83
+ * @param {WebGLTexture} options.sourceTexture The texture setup as the source to be filtered.
84
+ * @param {WebGLTexture} options.targetTexture The texture where filtered output should be drawn.
85
+ * @param {WebGLRenderingContext} options.context The GL context used for rendering.
86
+ * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.
87
+ */
88
+ applyTo(options: TWebGLPipelineState | T2DPipelineState): void;
89
+ applyTo2d(options: T2DPipelineState): void;
90
+ /**
91
+ * Returns a string that represent the current selected shader code for the filter.
92
+ * Used to force recompilation when parameters change or to retrieve the shader from cache
93
+ * @type string
94
+ **/
95
+ getCacheKey(): string;
96
+ /**
97
+ * Retrieves the cached shader.
98
+ * @param {Object} options
99
+ * @param {WebGLRenderingContext} options.context The GL context used for rendering.
100
+ * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.
101
+ * @return {WebGLProgram} the compiled program shader
102
+ */
103
+ retrieveShader(options: TWebGLPipelineState): TWebGLProgramCacheItem;
104
+ /**
105
+ * Apply this filter using webgl.
106
+ *
107
+ * @param {Object} options
108
+ * @param {Number} options.passes The number of filters remaining to be executed
109
+ * @param {Boolean} options.webgl Whether to use webgl to render the filter.
110
+ * @param {WebGLTexture} options.originalTexture The texture of the original input image.
111
+ * @param {WebGLTexture} options.sourceTexture The texture setup as the source to be filtered.
112
+ * @param {WebGLTexture} options.targetTexture The texture where filtered output should be drawn.
113
+ * @param {WebGLRenderingContext} options.context The GL context used for rendering.
114
+ * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.
115
+ */
116
+ applyToWebGL(options: TWebGLPipelineState): void;
117
+ bindAdditionalTexture(gl: WebGLRenderingContext, texture: WebGLTexture, textureUnit: number): void;
118
+ unbindAdditionalTexture(gl: WebGLRenderingContext, textureUnit: number): void;
119
+ getMainParameter(): this[keyof this] | undefined;
120
+ setMainParameter(value: any): void;
121
+ /**
122
+ * Send uniform data from this filter to its shader program on the GPU.
123
+ *
124
+ * Intended to be overridden by subclasses.
125
+ *
126
+ * @param {WebGLRenderingContext} gl The canvas context used to compile the shader program.
127
+ * @param {Object} uniformLocations A map of shader uniform names to their locations.
128
+ */
129
+ sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
130
+ /**
131
+ * If needed by a 2d filter, this functions can create an helper canvas to be used
132
+ * remember that options.targetCanvas is available for use till end of chain.
133
+ */
134
+ createHelpLayer(options: T2DPipelineState): void;
135
+ /**
136
+ * Returns object representation of an instance
137
+ * @return {Object} Object representation of an instance
138
+ */
139
+ toObject(): {
140
+ type: string;
141
+ };
142
+ /**
143
+ * Returns a JSON representation of an instance
144
+ * @return {Object} JSON
145
+ */
146
+ toJSON(): {
147
+ type: string;
148
+ };
149
+ static fromObject({ type, ...filterOptions }: Record<string, any>, options: {
150
+ signal: AbortSignal;
151
+ }): Promise<BaseFilter>;
152
+ }
153
+ //# sourceMappingURL=BaseFilter.d.ts.map
@@ -0,0 +1,80 @@
1
+ import { TClassProperties } from '../typedefs';
2
+ import { BaseFilter } from './BaseFilter';
3
+ import { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';
4
+ type TBlendMode = 'multiply' | 'add' | 'difference' | 'screen' | 'subtract' | 'darken' | 'lighten' | 'overlay' | 'exclusion' | 'tint';
5
+ export declare const blendColorDefaultValues: Partial<TClassProperties<BlendColor>>;
6
+ /**
7
+ * Color Blend filter class
8
+ * @example
9
+ * const filter = new BlendColor({
10
+ * color: '#000',
11
+ * mode: 'multiply'
12
+ * });
13
+ *
14
+ * const filter = new BlendImage({
15
+ * image: fabricImageObject,
16
+ * mode: 'multiply',
17
+ * alpha: 0.5
18
+ * });
19
+ * object.filters.push(filter);
20
+ * object.applyFilters();
21
+ * canvas.renderAll();
22
+ */
23
+ export declare class BlendColor extends BaseFilter {
24
+ /**
25
+ * Color to make the blend operation with. default to a reddish color since black or white
26
+ * gives always strong result.
27
+ * @type String
28
+ * @default
29
+ **/
30
+ color: string;
31
+ /**
32
+ * Blend mode for the filter: one of multiply, add, difference, screen, subtract,
33
+ * darken, lighten, overlay, exclusion, tint.
34
+ * @type String
35
+ * @default
36
+ **/
37
+ mode: TBlendMode;
38
+ /**
39
+ * alpha value. represent the strength of the blend color operation.
40
+ * @type Number
41
+ * @default
42
+ **/
43
+ alpha: number;
44
+ static defaults: Partial<TClassProperties<BlendColor>>;
45
+ getCacheKey(): string;
46
+ protected getFragmentSource(): string;
47
+ /**
48
+ * Apply the Blend operation to a Uint8ClampedArray representing the pixels of an image.
49
+ *
50
+ * @param {Object} options
51
+ * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.
52
+ */
53
+ applyTo2d({ imageData: { data } }: T2DPipelineState): void;
54
+ /**
55
+ * Return WebGL uniform locations for this filter's shader.
56
+ *
57
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
58
+ * @param {WebGLShaderProgram} program This filter's compiled shader program.
59
+ */
60
+ getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
61
+ /**
62
+ * Send data from this filter to its shader program's uniforms.
63
+ *
64
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
65
+ * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
66
+ */
67
+ sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
68
+ /**
69
+ * Returns object representation of an instance
70
+ * @return {Object} Object representation of an instance
71
+ */
72
+ toObject(): {
73
+ type: string;
74
+ color: string;
75
+ mode: TBlendMode;
76
+ alpha: number;
77
+ };
78
+ }
79
+ export {};
80
+ //# sourceMappingURL=BlendColor.d.ts.map
@@ -0,0 +1,92 @@
1
+ import { Image } from '../shapes/Image';
2
+ import type { TClassProperties } from '../typedefs';
3
+ import { BaseFilter } from './BaseFilter';
4
+ import type { T2DPipelineState, TWebGLPipelineState, TWebGLUniformLocationMap } from './typedefs';
5
+ import { WebGLFilterBackend } from './WebGLFilterBackend';
6
+ export type TBlendImageMode = 'multiply' | 'mask';
7
+ export declare const blendImageDefaultValues: Partial<TClassProperties<BlendImage>>;
8
+ /**
9
+ * Image Blend filter class
10
+ * @example
11
+ * const filter = new filters.BlendColor({
12
+ * color: '#000',
13
+ * mode: 'multiply'
14
+ * });
15
+ *
16
+ * const filter = new BlendImage({
17
+ * image: fabricImageObject,
18
+ * mode: 'multiply',
19
+ * alpha: 0.5
20
+ * });
21
+ * object.filters.push(filter);
22
+ * object.applyFilters();
23
+ * canvas.renderAll();
24
+ */
25
+ export declare class BlendImage extends BaseFilter {
26
+ /**
27
+ * Color to make the blend operation with. default to a reddish color since black or white
28
+ * gives always strong result.
29
+ **/
30
+ image: Image;
31
+ mode: TBlendImageMode;
32
+ /**
33
+ * alpha value. represent the strength of the blend image operation.
34
+ * not implemented.
35
+ **/
36
+ alpha: number;
37
+ static defaults: Partial<TClassProperties<BlendImage>>;
38
+ getCacheKey(): string;
39
+ getFragmentSource(): string;
40
+ applyToWebGL(options: TWebGLPipelineState): void;
41
+ createTexture(backend: WebGLFilterBackend, image: Image): any;
42
+ /**
43
+ * Calculate a transformMatrix to adapt the image to blend over
44
+ * @param {Object} options
45
+ * @param {WebGLRenderingContext} options.context The GL context used for rendering.
46
+ * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.
47
+ */
48
+ calculateMatrix(): number[];
49
+ /**
50
+ * Apply the Blend operation to a Uint8ClampedArray representing the pixels of an image.
51
+ *
52
+ * @param {Object} options
53
+ * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.
54
+ */
55
+ applyTo2d({ imageData: { data, width, height }, filterBackend: { resources }, }: T2DPipelineState): void;
56
+ /**
57
+ * Return WebGL uniform locations for this filter's shader.
58
+ *
59
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
60
+ * @param {WebGLShaderProgram} program This filter's compiled shader program.
61
+ */
62
+ getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
63
+ /**
64
+ * Send data from this filter to its shader program's uniforms.
65
+ *
66
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
67
+ * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
68
+ */
69
+ sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
70
+ /**
71
+ * Returns object representation of an instance
72
+ * @return {Object} Object representation of an instance
73
+ */
74
+ toObject(): {
75
+ type: string;
76
+ image: Pick<Omit<Partial<import("../shapes/Image").ImageProps> & TClassProperties<Image<Partial<import("../shapes/Image").ImageProps>, import("../shapes/Image").SerializedImageProps, import("../EventTypeDefs").ObjectEvents>>, keyof import("../shapes/Image").SerializedImageProps>, never> & import("../shapes/Image").SerializedImageProps;
77
+ mode: TBlendImageMode;
78
+ alpha: number;
79
+ };
80
+ /**
81
+ * Create filter instance from an object representation
82
+ * @static
83
+ * @param {object} object Object to create an instance from
84
+ * @param {object} [options]
85
+ * @param {AbortSignal} [options.signal] handle aborting image loading, see https://developer.mozilla.org/en-US/docs/Web/API/AbortController/signal
86
+ * @returns {Promise<BlendImage>}
87
+ */
88
+ static fromObject({ type, image, ...filterOptions }: Record<string, any>, options: {
89
+ signal: AbortSignal;
90
+ }): Promise<BaseFilter>;
91
+ }
92
+ //# sourceMappingURL=BlendImage.d.ts.map
@@ -0,0 +1,51 @@
1
+ import type { TClassProperties } from '../typedefs';
2
+ import { BaseFilter } from './BaseFilter';
3
+ import type { TWebGLPipelineState, T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';
4
+ export declare const blurDefaultValues: Partial<TClassProperties<Blur>>;
5
+ /**
6
+ * Blur filter class
7
+ * @example
8
+ * const filter = new Blur({
9
+ * blur: 0.5
10
+ * });
11
+ * object.filters.push(filter);
12
+ * object.applyFilters();
13
+ * canvas.renderAll();
14
+ */
15
+ export declare class Blur extends BaseFilter {
16
+ /**
17
+ * blur value, in percentage of image dimensions.
18
+ * specific to keep the image blur constant at different resolutions
19
+ * range between 0 and 1.
20
+ * @type Number
21
+ * @default
22
+ */
23
+ blur: number;
24
+ horizontal: boolean;
25
+ aspectRatio: number;
26
+ static defaults: Partial<TClassProperties<Blur>>;
27
+ getFragmentSource(): string;
28
+ applyTo(options: TWebGLPipelineState | T2DPipelineState): void;
29
+ applyTo2d(options: T2DPipelineState): void;
30
+ simpleBlur({ ctx, imageData, filterBackend: { resources }, }: T2DPipelineState): ImageData;
31
+ /**
32
+ * Return WebGL uniform locations for this filter's shader.
33
+ *
34
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
35
+ * @param {WebGLShaderProgram} program This filter's compiled shader program.
36
+ */
37
+ getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
38
+ /**
39
+ * Send data from this filter to its shader program's uniforms.
40
+ *
41
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
42
+ * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
43
+ */
44
+ sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
45
+ /**
46
+ * choose right value of image percentage to blur with
47
+ * @returns {Array} a numeric array with delta values
48
+ */
49
+ chooseRightDelta(): number[];
50
+ }
51
+ //# sourceMappingURL=Blur.d.ts.map
@@ -0,0 +1,48 @@
1
+ import { TClassProperties } from '../typedefs';
2
+ import { BaseFilter } from './BaseFilter';
3
+ import { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';
4
+ export declare const myFilterDefaultValues: Partial<TClassProperties<MyFilter>>;
5
+ /**
6
+ * MyFilter filter class
7
+ * @example
8
+ * const filter = new MyFilter({
9
+ * add here an example of how to use your filter
10
+ * });
11
+ * object.filters.push(filter);
12
+ * object.applyFilters();
13
+ */
14
+ export declare class MyFilter extends BaseFilter {
15
+ /**
16
+ * MyFilter value, from -1 to 1.
17
+ * translated to -255 to 255 for 2d
18
+ * 0.0039215686 is the part of 1 that get translated to 1 in 2d
19
+ * @param {Number} myParameter
20
+ * @default
21
+ */
22
+ myParameter: number;
23
+ static defaults: Partial<TClassProperties<MyFilter>>;
24
+ getFragmentSource(): string;
25
+ /**
26
+ * Apply the MyFilter operation to a Uint8ClampedArray representing the pixels of an image.
27
+ *
28
+ * @param {Object} options
29
+ * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.
30
+ */
31
+ applyTo2d(options: T2DPipelineState): void;
32
+ /**
33
+ * Return WebGL uniform locations for this filter's shader.
34
+ *
35
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
36
+ * @param {WebGLShaderProgram} program This filter's compiled shader program.
37
+ */
38
+ getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
39
+ /**
40
+ * Send data from this filter to its shader program's uniforms.
41
+ *
42
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
43
+ * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
44
+ */
45
+ sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
46
+ static fromObject(object: any): Promise<BaseFilter>;
47
+ }
48
+ //# sourceMappingURL=Boilerplate.d.ts.map
@@ -0,0 +1,47 @@
1
+ import type { TClassProperties } from '../typedefs';
2
+ import { BaseFilter } from './BaseFilter';
3
+ import type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';
4
+ export declare const brightnessDefaultValues: Partial<TClassProperties<Brightness>>;
5
+ /**
6
+ * Brightness filter class
7
+ * @example
8
+ * const filter = new Brightness({
9
+ * brightness: 0.05
10
+ * });
11
+ * object.filters.push(filter);
12
+ * object.applyFilters();
13
+ */
14
+ export declare class Brightness extends BaseFilter {
15
+ /**
16
+ * Brightness value, from -1 to 1.
17
+ * translated to -255 to 255 for 2d
18
+ * 0.0039215686 is the part of 1 that get translated to 1 in 2d
19
+ * @param {Number} brightness
20
+ * @default
21
+ */
22
+ brightness: number;
23
+ static defaults: Partial<TClassProperties<Brightness>>;
24
+ getFragmentSource(): string;
25
+ /**
26
+ * Apply the Brightness operation to a Uint8ClampedArray representing the pixels of an image.
27
+ *
28
+ * @param {Object} options
29
+ * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.
30
+ */
31
+ applyTo2d({ imageData: { data } }: T2DPipelineState): void;
32
+ /**
33
+ * Return WebGL uniform locations for this filter's shader.
34
+ *
35
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
36
+ * @param {WebGLShaderProgram} program This filter's compiled shader program.
37
+ */
38
+ getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
39
+ /**
40
+ * Send data from this filter to its shader program's uniforms.
41
+ *
42
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
43
+ * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
44
+ */
45
+ sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
46
+ }
47
+ //# sourceMappingURL=Brightness.d.ts.map
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Canvas 2D filter backend.
3
+ */
4
+ import type { BaseFilter } from './BaseFilter';
5
+ import { T2DPipelineState, TPipelineResources } from './typedefs';
6
+ export declare class Canvas2dFilterBackend {
7
+ /**
8
+ * Experimental. This object is a sort of repository of help layers used to avoid
9
+ * of recreating them during frequent filtering. If you are previewing a filter with
10
+ * a slider you probably do not want to create help layers every filter step.
11
+ * in this object there will be appended some canvases, created once, resized sometimes
12
+ * cleared never. Clearing is left to the developer.
13
+ **/
14
+ resources: TPipelineResources;
15
+ /**
16
+ * Apply a set of filters against a source image and draw the filtered output
17
+ * to the provided destination canvas.
18
+ *
19
+ * @param {EnhancedFilter} filters The filter to apply.
20
+ * @param {HTMLImageElement|HTMLCanvasElement} sourceElement The source to be filtered.
21
+ * @param {Number} sourceWidth The width of the source input.
22
+ * @param {Number} sourceHeight The height of the source input.
23
+ * @param {HTMLCanvasElement} targetCanvas The destination for filtered output to be drawn.
24
+ */
25
+ applyFilters(filters: BaseFilter[], sourceElement: CanvasImageSource, sourceWidth: number, sourceHeight: number, targetCanvas: HTMLCanvasElement): T2DPipelineState | void;
26
+ }
27
+ //# sourceMappingURL=Canvas2dFilterBackend.d.ts.map
@@ -0,0 +1,63 @@
1
+ import type { TClassProperties } from '../typedefs';
2
+ import { BaseFilter } from './BaseFilter';
3
+ import type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';
4
+ export declare const colorMatrixDefaultValues: Partial<TClassProperties<ColorMatrix>>;
5
+ /**
6
+ * Color Matrix filter class
7
+ * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}
8
+ * @see {@Link http://phoboslab.org/log/2013/11/fast-image-filters-with-webgl demo}
9
+ * @example <caption>Kodachrome filter</caption>
10
+ * const filter = new ColorMatrix({
11
+ * matrix: [
12
+ 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,
13
+ -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,
14
+ -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,
15
+ 0, 0, 0, 1, 0
16
+ ]
17
+ * });
18
+ * object.filters.push(filter);
19
+ * object.applyFilters();
20
+ */
21
+ export declare class ColorMatrix extends BaseFilter {
22
+ /**
23
+ * Colormatrix for pixels.
24
+ * array of 20 floats. Numbers in positions 4, 9, 14, 19 loose meaning
25
+ * outside the -1, 1 range.
26
+ * 0.0039215686 is the part of 1 that get translated to 1 in 2d
27
+ * @param {Array} matrix array of 20 numbers.
28
+ * @default
29
+ */
30
+ matrix: number[];
31
+ /**
32
+ * Lock the colormatrix on the color part, skipping alpha, mainly for non webgl scenario
33
+ * to save some calculation
34
+ * @type Boolean
35
+ * @default true
36
+ */
37
+ colorsOnly: boolean;
38
+ static defaults: Partial<TClassProperties<ColorMatrix>>;
39
+ setOptions({ matrix, ...options }: Record<string, any>): void;
40
+ getFragmentSource(): string;
41
+ /**
42
+ * Apply the ColorMatrix operation to a Uint8Array representing the pixels of an image.
43
+ *
44
+ * @param {Object} options
45
+ * @param {ImageData} options.imageData The Uint8Array to be filtered.
46
+ */
47
+ applyTo2d(options: T2DPipelineState): void;
48
+ /**
49
+ * Return WebGL uniform locations for this filter's shader.
50
+ *
51
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
52
+ * @param {WebGLShaderProgram} program This filter's compiled shader program.
53
+ */
54
+ getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
55
+ /**
56
+ * Send data from this filter to its shader program's uniforms.
57
+ *
58
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
59
+ * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
60
+ */
61
+ sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
62
+ }
63
+ //# sourceMappingURL=ColorMatrix.d.ts.map