fabric 5.3.0 → 6.0.0-beta1

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 (533) hide show
  1. package/.babelrc +11 -0
  2. package/.babelrcAlt +19 -0
  3. package/.browserslistrc +5 -0
  4. package/.eslintrc.js +43 -0
  5. package/.eslintrc.json +38 -46
  6. package/.eslintrc_tests +12 -0
  7. package/.gitattributes +2 -0
  8. package/.prettierignore +16 -0
  9. package/.prettierrc +4 -0
  10. package/CHANGELOG.md +491 -189
  11. package/CONTRIBUTING.md +226 -58
  12. package/README.md +188 -239
  13. package/bower.json +1 -3
  14. package/dist/fabric.d.ts +1021 -0
  15. package/dist/index.cjs +28027 -0
  16. package/dist/index.cjs.map +1 -0
  17. package/dist/index.d.ts +2 -0
  18. package/dist/index.min.js +1 -0
  19. package/dist/index.mjs +27964 -0
  20. package/dist/index.mjs.map +1 -0
  21. package/dist/index.node.cjs +28092 -0
  22. package/dist/index.node.cjs.map +1 -0
  23. package/dist/index.node.d.ts +15 -0
  24. package/dist/index.node.mjs +28035 -0
  25. package/dist/index.node.mjs.map +1 -0
  26. package/dist/src/Collection.d.ts +126 -0
  27. package/dist/src/CommonMethods.d.ts +32 -0
  28. package/dist/src/EventTypeDefs.d.ts +226 -0
  29. package/dist/src/Intersection.d.ts +100 -0
  30. package/dist/src/Observable.d.ts +54 -0
  31. package/dist/src/Pattern.d.ts +104 -0
  32. package/dist/src/Point.d.ts +232 -0
  33. package/dist/src/Shadow.d.ts +87 -0
  34. package/dist/src/brushes/BaseBrush.d.ts +105 -0
  35. package/dist/src/brushes/CircleBrush.d.ts +49 -0
  36. package/dist/src/brushes/PatternBrush.d.ts +23 -0
  37. package/dist/src/brushes/PencilBrush.d.ts +92 -0
  38. package/dist/src/brushes/SprayBrush.d.ts +79 -0
  39. package/dist/src/cache.d.ts +46 -0
  40. package/dist/src/canvas/Canvas.d.ts +567 -0
  41. package/dist/src/canvas/SelectableCanvas.d.ts +723 -0
  42. package/dist/src/canvas/StaticCanvas.d.ts +751 -0
  43. package/dist/src/canvas/TextEditingManager.d.ts +17 -0
  44. package/dist/src/canvas/canvas_gestures.mixin.d.ts +2 -0
  45. package/dist/src/color/Color.d.ts +174 -0
  46. package/dist/src/color/color_map.d.ts +155 -0
  47. package/dist/src/color/constants.d.ts +22 -0
  48. package/dist/src/color/util.d.ts +12 -0
  49. package/dist/src/config.d.ts +115 -0
  50. package/dist/src/constants.d.ts +14 -0
  51. package/dist/src/controls/Control.d.ts +228 -0
  52. package/dist/src/controls/changeWidth.d.ts +13 -0
  53. package/dist/src/controls/controls.render.d.ts +29 -0
  54. package/dist/src/controls/default_controls.d.ts +50 -0
  55. package/dist/src/controls/drag.d.ts +12 -0
  56. package/dist/src/controls/polyControl.d.ts +5 -0
  57. package/dist/src/controls/rotate.d.ts +12 -0
  58. package/dist/src/controls/scale.d.ts +47 -0
  59. package/dist/src/controls/scaleSkew.d.ts +39 -0
  60. package/dist/src/controls/skew.d.ts +33 -0
  61. package/dist/src/controls/util.d.ts +41 -0
  62. package/dist/src/controls/wrapWithFireEvent.d.ts +8 -0
  63. package/dist/src/controls/wrapWithFixedAnchor.d.ts +9 -0
  64. package/dist/src/env/browser.d.ts +3 -0
  65. package/dist/src/env/index.d.ts +7 -0
  66. package/dist/src/env/node.d.ts +3 -0
  67. package/dist/src/env/types.d.ts +15 -0
  68. package/dist/src/filters/BaseFilter.d.ts +156 -0
  69. package/dist/src/filters/BlendColor.d.ts +80 -0
  70. package/dist/src/filters/BlendImage.d.ts +90 -0
  71. package/dist/src/filters/Blur.d.ts +50 -0
  72. package/dist/src/filters/Boilerplate.d.ts +46 -0
  73. package/dist/src/filters/Brightness.d.ts +46 -0
  74. package/dist/src/filters/Canvas2dFilterBackend.d.ts +27 -0
  75. package/dist/src/filters/ColorMatrix.d.ts +62 -0
  76. package/dist/src/filters/ColorMatrixFilters.d.ts +1169 -0
  77. package/dist/src/filters/Composed.d.ts +47 -0
  78. package/dist/src/filters/Contrast.d.ts +44 -0
  79. package/dist/src/filters/Convolute.d.ts +82 -0
  80. package/dist/src/filters/FilterBackend.d.ts +14 -0
  81. package/dist/src/filters/Gamma.d.ts +53 -0
  82. package/dist/src/filters/Grayscale.d.ts +45 -0
  83. package/dist/src/filters/HueRotation.d.ts +24 -0
  84. package/dist/src/filters/Invert.d.ts +54 -0
  85. package/dist/src/filters/Noise.d.ts +53 -0
  86. package/dist/src/filters/Pixelate.d.ts +43 -0
  87. package/dist/src/filters/RemoveColor.d.ts +62 -0
  88. package/dist/src/filters/Resize.d.ts +134 -0
  89. package/dist/src/filters/Saturation.d.ts +47 -0
  90. package/dist/src/filters/Vibrance.d.ts +47 -0
  91. package/dist/src/filters/WebGLFilterBackend.d.ts +126 -0
  92. package/dist/src/filters/WebGLProbe.d.ts +28 -0
  93. package/dist/src/filters/typedefs.d.ts +49 -0
  94. package/dist/src/gradient/Gradient.d.ts +149 -0
  95. package/dist/src/gradient/constants.d.ts +15 -0
  96. package/dist/src/gradient/parser/index.d.ts +4 -0
  97. package/dist/src/gradient/parser/misc.d.ts +4 -0
  98. package/dist/src/gradient/parser/parseColorStops.d.ts +6 -0
  99. package/dist/src/gradient/parser/parseCoords.d.ts +17 -0
  100. package/dist/src/gradient/typedefs.d.ts +93 -0
  101. package/dist/src/mixins/eraser_brush.mixin.d.ts +2 -0
  102. package/dist/src/mixins/stateful.mixin.d.ts +18 -0
  103. package/dist/src/parkinglot/canvas_animation.mixin.d.ts +2 -0
  104. package/dist/src/parkinglot/straighten.d.ts +2 -0
  105. package/dist/src/parser/applyViewboxTransform.d.ts +5 -0
  106. package/dist/src/parser/attributes.d.ts +6 -0
  107. package/dist/src/parser/constants.d.ts +54 -0
  108. package/dist/src/parser/doesSomeParentMatch.d.ts +2 -0
  109. package/dist/src/parser/elementById.d.ts +6 -0
  110. package/dist/src/parser/elementMatchesRule.d.ts +5 -0
  111. package/dist/src/parser/elements_parser.d.ts +3 -0
  112. package/dist/src/parser/getCSSRules.d.ts +7 -0
  113. package/dist/src/parser/getGlobalStylesForElement.d.ts +5 -0
  114. package/dist/src/parser/getGradientDefs.d.ts +7 -0
  115. package/dist/src/parser/getMultipleNodes.d.ts +2 -0
  116. package/dist/src/parser/getSvgRegex.d.ts +2 -0
  117. package/dist/src/parser/hasAncestorWithNodeName.d.ts +2 -0
  118. package/dist/src/parser/loadSVGFromString.d.ts +12 -0
  119. package/dist/src/parser/loadSVGFromURL.d.ts +13 -0
  120. package/dist/src/parser/normalizeAttr.d.ts +2 -0
  121. package/dist/src/parser/normalizeValue.d.ts +2 -0
  122. package/dist/src/parser/parseAttributes.d.ts +9 -0
  123. package/dist/src/parser/parseElements.d.ts +11 -0
  124. package/dist/src/parser/parseFontDeclaration.d.ts +10 -0
  125. package/dist/src/parser/parsePointsAttribute.d.ts +12 -0
  126. package/dist/src/parser/parseSVGDocument.d.ts +15 -0
  127. package/dist/src/parser/parseStyleAttribute.d.ts +9 -0
  128. package/dist/src/parser/parseStyleObject.d.ts +2 -0
  129. package/dist/src/parser/parseStyleString.d.ts +2 -0
  130. package/dist/src/parser/parseTransformAttribute.d.ts +10 -0
  131. package/dist/src/parser/parseUseDirectives.d.ts +2 -0
  132. package/dist/src/parser/percent.d.ts +9 -0
  133. package/dist/src/parser/recursivelyParseGradientsXlink.d.ts +2 -0
  134. package/dist/src/parser/rotateMatrix.d.ts +2 -0
  135. package/dist/src/parser/scaleMatrix.d.ts +2 -0
  136. package/dist/src/parser/selectorMatches.d.ts +2 -0
  137. package/dist/src/parser/setStrokeFillOpacity.d.ts +6 -0
  138. package/dist/src/parser/skewMatrix.d.ts +2 -0
  139. package/dist/src/parser/translateMatrix.d.ts +2 -0
  140. package/dist/src/shapes/ActiveSelection.d.ts +66 -0
  141. package/dist/src/shapes/Circle.d.ts +80 -0
  142. package/dist/src/shapes/Ellipse.d.ts +74 -0
  143. package/dist/src/shapes/Group.d.ts +381 -0
  144. package/dist/src/shapes/IText/DraggableTextDelegate.d.ts +78 -0
  145. package/dist/src/shapes/IText/IText.d.ts +322 -0
  146. package/dist/src/shapes/IText/ITextBehavior.d.ts +285 -0
  147. package/dist/src/shapes/IText/ITextClickBehavior.d.ts +81 -0
  148. package/dist/src/shapes/IText/ITextKeyBehavior.d.ts +193 -0
  149. package/dist/src/shapes/IText/constants.d.ts +13 -0
  150. package/dist/src/shapes/Image.d.ts +283 -0
  151. package/dist/src/shapes/Line.d.ts +117 -0
  152. package/dist/src/shapes/Object/AnimatableObject.d.ts +33 -0
  153. package/dist/src/shapes/Object/FabricObject.d.ts +9 -0
  154. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts +74 -0
  155. package/dist/src/shapes/Object/InteractiveObject.d.ts +282 -0
  156. package/dist/src/shapes/Object/Object.d.ts +906 -0
  157. package/dist/src/shapes/Object/ObjectGeometry.d.ts +343 -0
  158. package/dist/src/shapes/Object/ObjectOrigin.d.ts +178 -0
  159. package/dist/src/shapes/Object/StackedObject.d.ts +62 -0
  160. package/dist/src/shapes/Object/defaultValues.d.ts +77 -0
  161. package/dist/src/shapes/Path.d.ts +123 -0
  162. package/dist/src/shapes/Polygon.d.ts +7 -0
  163. package/dist/src/shapes/Polyline.d.ts +130 -0
  164. package/dist/src/shapes/Rect.d.ts +62 -0
  165. package/dist/src/shapes/Text/StyledText.d.ts +118 -0
  166. package/dist/src/shapes/Text/Text.d.ts +656 -0
  167. package/dist/src/shapes/Text/TextSVGExportMixin.d.ts +32 -0
  168. package/dist/src/shapes/Textbox.d.ts +170 -0
  169. package/dist/src/shapes/Triangle.d.ts +17 -0
  170. package/dist/src/typedefs.d.ts +93 -0
  171. package/dist/src/util/animation/AnimationBase.d.ts +54 -0
  172. package/dist/src/util/animation/AnimationFrameProvider.d.ts +8 -0
  173. package/dist/src/util/animation/AnimationRegistry.d.ts +29 -0
  174. package/dist/src/util/animation/ArrayAnimation.d.ts +10 -0
  175. package/dist/src/util/animation/ColorAnimation.d.ts +11 -0
  176. package/dist/src/util/animation/ValueAnimation.d.ts +10 -0
  177. package/dist/src/util/animation/animate.d.ts +37 -0
  178. package/dist/src/util/animation/easing.d.ts +130 -0
  179. package/dist/src/util/animation/types.d.ts +87 -0
  180. package/dist/src/util/applyMixins.d.ts +8 -0
  181. package/dist/src/util/class_registry.d.ts +14 -0
  182. package/dist/src/util/dom_event.d.ts +5 -0
  183. package/dist/src/util/dom_misc.d.ts +40 -0
  184. package/dist/src/util/dom_request.d.ts +14 -0
  185. package/dist/src/util/dom_style.d.ts +7 -0
  186. package/dist/src/util/fireEvent.d.ts +3 -0
  187. package/dist/src/util/internals/cloneDeep.d.ts +2 -0
  188. package/dist/src/util/internals/getRandomInt.d.ts +8 -0
  189. package/dist/src/util/internals/ifNaN.d.ts +8 -0
  190. package/dist/src/util/internals/index.d.ts +4 -0
  191. package/dist/src/util/internals/removeFromArray.d.ts +9 -0
  192. package/dist/src/util/internals/uid.d.ts +2 -0
  193. package/dist/src/util/lang_class.d.ts +12 -0
  194. package/dist/src/util/lang_string.d.ts +22 -0
  195. package/dist/src/util/misc/boundingBoxFromPoints.d.ts +9 -0
  196. package/dist/src/util/misc/capValue.d.ts +2 -0
  197. package/dist/src/util/misc/cos.d.ts +10 -0
  198. package/dist/src/util/misc/dom.d.ts +28 -0
  199. package/dist/src/util/misc/findScaleTo.d.ts +29 -0
  200. package/dist/src/util/misc/groupSVGElements.d.ts +9 -0
  201. package/dist/src/util/misc/isTransparent.d.ts +11 -0
  202. package/dist/src/util/misc/matrix.d.ts +92 -0
  203. package/dist/src/util/misc/mergeClipPaths.d.ts +23 -0
  204. package/dist/src/util/misc/objectEnlive.d.ts +56 -0
  205. package/dist/src/util/misc/objectTransforms.d.ts +68 -0
  206. package/dist/src/util/misc/pick.d.ts +8 -0
  207. package/dist/src/util/misc/planeChange.d.ts +84 -0
  208. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts +51 -0
  209. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts +81 -0
  210. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts +25 -0
  211. package/dist/src/util/misc/projectStroke/index.d.ts +11 -0
  212. package/dist/src/util/misc/projectStroke/types.d.ts +23 -0
  213. package/dist/src/util/misc/radiansDegreesConversion.d.ts +14 -0
  214. package/dist/src/util/misc/resolveOrigin.d.ts +9 -0
  215. package/dist/src/util/misc/rotatePoint.d.ts +12 -0
  216. package/dist/src/util/misc/sin.d.ts +10 -0
  217. package/dist/src/util/misc/svgParsing.d.ts +53 -0
  218. package/dist/src/util/misc/textStyles.d.ts +32 -0
  219. package/dist/src/util/misc/toFixed.d.ts +8 -0
  220. package/dist/src/util/misc/vectors.d.ts +57 -0
  221. package/dist/src/util/path.d.ts +108 -0
  222. package/dist/src/util/transform_matrix_removal.d.ts +14 -0
  223. package/dist/src/util/types.d.ts +19 -0
  224. package/fabric.ts +427 -0
  225. package/index.node.ts +43 -0
  226. package/index.ts +1 -0
  227. package/package.json +90 -39
  228. package/publish.js +0 -26
  229. package/rollup.config.mjs +79 -0
  230. package/rollup.test.config.js +24 -0
  231. package/scripts/build.mjs +50 -0
  232. package/scripts/buildLock.mjs +115 -0
  233. package/scripts/buildReporter.mjs +15 -0
  234. package/scripts/buildStats.mjs +139 -0
  235. package/scripts/dirname.mjs +14 -0
  236. package/scripts/index.mjs +679 -0
  237. package/scripts/transform_files.mjs +504 -0
  238. package/src/Collection.ts +311 -0
  239. package/src/CommonMethods.ts +63 -0
  240. package/src/EventTypeDefs.ts +294 -0
  241. package/src/Intersection.ts +273 -0
  242. package/src/Observable.ts +175 -0
  243. package/src/Pattern.ts +211 -0
  244. package/src/Point.ts +388 -0
  245. package/src/Shadow.ts +215 -0
  246. package/src/brushes/{base_brush.class.js → BaseBrush.ts} +65 -42
  247. package/src/brushes/CircleBrush.ts +145 -0
  248. package/src/brushes/PatternBrush.ts +70 -0
  249. package/src/brushes/PencilBrush.ts +300 -0
  250. package/src/brushes/SprayBrush.ts +219 -0
  251. package/src/cache.ts +89 -0
  252. package/src/canvas/Canvas.ts +1672 -0
  253. package/src/canvas/SelectableCanvas.ts +1636 -0
  254. package/src/canvas/StaticCanvas.ts +1709 -0
  255. package/src/canvas/TextEditingManager.ts +48 -0
  256. package/src/canvas/canvas_gestures.mixin.ts +207 -0
  257. package/src/color/Color.ts +404 -0
  258. package/src/color/color_map.ts +154 -0
  259. package/src/color/constants.ts +26 -0
  260. package/src/color/util.ts +32 -0
  261. package/src/config.ts +159 -0
  262. package/src/constants.ts +19 -0
  263. package/src/controls/Control.ts +377 -0
  264. package/src/controls/changeWidth.ts +52 -0
  265. package/src/controls/controls.render.ts +138 -0
  266. package/src/controls/default_controls.ts +132 -0
  267. package/src/controls/drag.ts +31 -0
  268. package/src/controls/polyControl.ts +135 -0
  269. package/src/controls/rotate.ts +87 -0
  270. package/src/controls/scale.ts +277 -0
  271. package/src/controls/scaleSkew.ts +92 -0
  272. package/src/controls/skew.ts +242 -0
  273. package/src/controls/util.ts +154 -0
  274. package/src/controls/wrapWithFireEvent.ts +25 -0
  275. package/src/controls/wrapWithFixedAnchor.ts +20 -0
  276. package/src/env/browser.ts +28 -0
  277. package/src/env/index.ts +19 -0
  278. package/src/env/node.ts +52 -0
  279. package/src/env/types.ts +15 -0
  280. package/src/filters/{base_filter.class.js → BaseFilter.ts} +201 -149
  281. package/src/filters/BlendColor.ts +258 -0
  282. package/src/filters/BlendImage.ts +254 -0
  283. package/src/filters/Blur.ts +202 -0
  284. package/src/filters/Boilerplate.ts +91 -0
  285. package/src/filters/Brightness.ts +93 -0
  286. package/src/filters/Canvas2dFilterBackend.ts +65 -0
  287. package/src/filters/ColorMatrix.ts +156 -0
  288. package/src/filters/ColorMatrixFilters.ts +106 -0
  289. package/src/filters/Composed.ts +85 -0
  290. package/src/filters/Contrast.ts +94 -0
  291. package/src/filters/Convolute.ts +341 -0
  292. package/src/filters/FilterBackend.ts +32 -0
  293. package/src/filters/Gamma.ts +127 -0
  294. package/src/filters/Grayscale.ts +137 -0
  295. package/src/filters/HueRotation.ts +66 -0
  296. package/src/filters/Invert.ts +117 -0
  297. package/src/filters/Noise.ts +109 -0
  298. package/src/filters/Pixelate.ts +114 -0
  299. package/src/filters/RemoveColor.ts +148 -0
  300. package/src/filters/Resize.ts +540 -0
  301. package/src/filters/Saturation.ts +100 -0
  302. package/src/filters/Vibrance.ts +103 -0
  303. package/src/filters/WebGLFilterBackend.ts +430 -0
  304. package/src/filters/WebGLProbe.ts +62 -0
  305. package/src/filters/typedefs.ts +65 -0
  306. package/src/gradient/Gradient.ts +401 -0
  307. package/src/gradient/constants.ts +12 -0
  308. package/src/gradient/parser/index.ts +3 -0
  309. package/src/gradient/parser/misc.ts +13 -0
  310. package/src/gradient/parser/parseColorStops.ts +55 -0
  311. package/src/gradient/parser/parseCoords.ts +73 -0
  312. package/src/gradient/typedefs.ts +104 -0
  313. package/src/mixins/{eraser_brush.mixin.js → eraser_brush.mixin.ts} +350 -239
  314. package/src/mixins/stateful.mixin.ts +104 -0
  315. package/src/parkinglot/canvas_animation.mixin.ts +121 -0
  316. package/src/parkinglot/straighten.ts +58 -0
  317. package/src/parser/applyViewboxTransform.ts +162 -0
  318. package/src/parser/attributes.ts +25 -0
  319. package/src/parser/constants.ts +118 -0
  320. package/src/parser/doesSomeParentMatch.ts +19 -0
  321. package/src/parser/elementById.ts +23 -0
  322. package/src/parser/elementMatchesRule.ts +19 -0
  323. package/src/parser/elements_parser.ts +191 -0
  324. package/src/parser/getCSSRules.ts +62 -0
  325. package/src/parser/getGlobalStylesForElement.ts +19 -0
  326. package/src/parser/getGradientDefs.ts +32 -0
  327. package/src/parser/getMultipleNodes.ts +15 -0
  328. package/src/parser/getSvgRegex.ts +5 -0
  329. package/src/parser/hasAncestorWithNodeName.ts +14 -0
  330. package/src/parser/loadSVGFromString.ts +26 -0
  331. package/src/parser/loadSVGFromURL.ts +40 -0
  332. package/src/parser/normalizeAttr.ts +10 -0
  333. package/src/parser/normalizeValue.ts +63 -0
  334. package/src/parser/parseAttributes.ts +90 -0
  335. package/src/parser/parseElements.ts +28 -0
  336. package/src/parser/parseFontDeclaration.ts +44 -0
  337. package/src/parser/parsePointsAttribute.ts +36 -0
  338. package/src/parser/parseSVGDocument.ts +106 -0
  339. package/src/parser/parseStyleAttribute.ts +27 -0
  340. package/src/parser/parseStyleObject.ts +15 -0
  341. package/src/parser/parseStyleString.ts +16 -0
  342. package/src/parser/parseTransformAttribute.ts +155 -0
  343. package/src/parser/parseUseDirectives.ts +79 -0
  344. package/src/parser/percent.ts +27 -0
  345. package/src/parser/recursivelyParseGradientsXlink.ts +42 -0
  346. package/src/parser/rotateMatrix.ts +21 -0
  347. package/src/parser/scaleMatrix.ts +9 -0
  348. package/src/parser/selectorMatches.ts +25 -0
  349. package/src/parser/setStrokeFillOpacity.ts +40 -0
  350. package/src/parser/skewMatrix.ts +6 -0
  351. package/src/parser/translateMatrix.ts +8 -0
  352. package/src/shapes/ActiveSelection.ts +157 -0
  353. package/src/shapes/Circle.ts +205 -0
  354. package/src/shapes/Ellipse.ts +154 -0
  355. package/src/shapes/Group.ts +1053 -0
  356. package/src/shapes/IText/DraggableTextDelegate.ts +394 -0
  357. package/src/shapes/IText/IText.ts +666 -0
  358. package/src/shapes/IText/ITextBehavior.ts +1055 -0
  359. package/src/shapes/IText/ITextClickBehavior.ts +321 -0
  360. package/src/shapes/IText/ITextKeyBehavior.ts +683 -0
  361. package/src/shapes/IText/constants.ts +47 -0
  362. package/src/shapes/Image.ts +789 -0
  363. package/src/shapes/Line.ts +329 -0
  364. package/src/shapes/Object/AnimatableObject.ts +106 -0
  365. package/src/shapes/Object/FabricObject.ts +19 -0
  366. package/src/shapes/Object/FabricObjectSVGExportMixin.ts +277 -0
  367. package/src/shapes/Object/InteractiveObject.ts +645 -0
  368. package/src/shapes/Object/Object.ts +1896 -0
  369. package/src/shapes/Object/ObjectGeometry.ts +830 -0
  370. package/src/shapes/Object/ObjectOrigin.ts +354 -0
  371. package/src/shapes/Object/StackedObject.ts +191 -0
  372. package/src/shapes/Object/defaultValues.ts +112 -0
  373. package/src/shapes/Path.ts +395 -0
  374. package/src/shapes/Polygon.ts +19 -0
  375. package/src/shapes/Polyline.ts +333 -0
  376. package/src/shapes/Rect.ts +199 -0
  377. package/src/shapes/Text/StyledText.ts +319 -0
  378. package/src/shapes/Text/Text.ts +1948 -0
  379. package/src/shapes/Text/TextSVGExportMixin.ts +288 -0
  380. package/src/shapes/Textbox.ts +471 -0
  381. package/src/shapes/Triangle.ts +45 -0
  382. package/src/typedefs.ts +119 -0
  383. package/src/util/animation/AnimationBase.ts +166 -0
  384. package/src/util/animation/AnimationFrameProvider.ts +28 -0
  385. package/src/util/animation/AnimationRegistry.ts +58 -0
  386. package/src/util/animation/ArrayAnimation.ts +27 -0
  387. package/src/util/animation/ColorAnimation.ts +74 -0
  388. package/src/util/animation/ValueAnimation.ts +29 -0
  389. package/src/util/animation/animate.ts +74 -0
  390. package/src/util/animation/easing.ts +327 -0
  391. package/src/util/animation/types.ts +136 -0
  392. package/src/util/applyMixins.ts +22 -0
  393. package/src/util/class_registry.ts +54 -0
  394. package/src/util/dom_event.ts +28 -0
  395. package/src/util/dom_misc.ts +138 -0
  396. package/src/util/dom_request.ts +64 -0
  397. package/src/util/dom_style.ts +20 -0
  398. package/src/util/fireEvent.ts +15 -0
  399. package/src/util/internals/cloneDeep.ts +2 -0
  400. package/src/util/internals/getRandomInt.ts +8 -0
  401. package/src/util/internals/ifNaN.ts +9 -0
  402. package/src/util/internals/index.ts +3 -0
  403. package/src/util/internals/removeFromArray.ts +14 -0
  404. package/src/util/internals/uid.ts +3 -0
  405. package/src/util/lang_class.ts +90 -0
  406. package/src/util/lang_string.ts +79 -0
  407. package/src/util/misc/boundingBoxFromPoints.ts +37 -0
  408. package/src/util/misc/capValue.ts +2 -0
  409. package/src/util/misc/cos.ts +24 -0
  410. package/src/util/misc/dom.ts +50 -0
  411. package/src/util/misc/findScaleTo.ts +44 -0
  412. package/src/util/misc/groupSVGElements.ts +15 -0
  413. package/src/util/misc/isTransparent.ts +51 -0
  414. package/src/util/misc/matrix.ts +207 -0
  415. package/src/util/misc/mergeClipPaths.ts +40 -0
  416. package/src/util/misc/objectEnlive.ts +189 -0
  417. package/src/util/misc/objectTransforms.ts +129 -0
  418. package/src/util/misc/pick.ts +17 -0
  419. package/src/util/misc/planeChange.ts +136 -0
  420. package/src/util/misc/projectStroke/StrokeLineCapProjections.ts +112 -0
  421. package/src/util/misc/projectStroke/StrokeLineJoinProjections.ts +231 -0
  422. package/src/util/misc/projectStroke/StrokeProjectionsBase.ts +75 -0
  423. package/src/util/misc/projectStroke/index.ts +53 -0
  424. package/src/util/misc/projectStroke/types.ts +24 -0
  425. package/src/util/misc/radiansDegreesConversion.ts +18 -0
  426. package/src/util/misc/resolveOrigin.ts +22 -0
  427. package/src/util/misc/rotatePoint.ts +15 -0
  428. package/src/util/misc/sin.ts +26 -0
  429. package/src/util/misc/svgParsing.ts +181 -0
  430. package/src/util/misc/textStyles.ts +133 -0
  431. package/src/util/misc/toFixed.ts +8 -0
  432. package/src/util/misc/vectors.ts +82 -0
  433. package/src/util/path.ts +941 -0
  434. package/src/util/transform_matrix_removal.ts +60 -0
  435. package/src/util/types.ts +78 -0
  436. package/tsconfig.json +106 -0
  437. package/HEADER.js +0 -203
  438. package/build.js +0 -287
  439. package/dist/fabric.js +0 -31187
  440. package/dist/fabric.min.js +0 -1
  441. package/old-travis-reference.yml +0 -97
  442. package/src/brushes/circle_brush.class.js +0 -144
  443. package/src/brushes/pattern_brush.class.js +0 -61
  444. package/src/brushes/pencil_brush.class.js +0 -310
  445. package/src/brushes/spray_brush.class.js +0 -219
  446. package/src/canvas.class.js +0 -1312
  447. package/src/color.class.js +0 -636
  448. package/src/control.class.js +0 -339
  449. package/src/controls.actions.js +0 -740
  450. package/src/controls.render.js +0 -99
  451. package/src/elements_parser.js +0 -152
  452. package/src/filters/2d_backend.class.js +0 -65
  453. package/src/filters/blendcolor_filter.class.js +0 -251
  454. package/src/filters/blendimage_filter.class.js +0 -247
  455. package/src/filters/blur_filter.class.js +0 -217
  456. package/src/filters/brightness_filter.class.js +0 -113
  457. package/src/filters/colormatrix_filter.class.js +0 -159
  458. package/src/filters/composed_filter.class.js +0 -72
  459. package/src/filters/contrast_filter.class.js +0 -113
  460. package/src/filters/convolute_filter.class.js +0 -352
  461. package/src/filters/filter_boilerplate.js +0 -111
  462. package/src/filters/filter_generator.js +0 -85
  463. package/src/filters/gamma_filter.class.js +0 -136
  464. package/src/filters/grayscale_filter.class.js +0 -154
  465. package/src/filters/hue_rotation.class.js +0 -107
  466. package/src/filters/invert_filter.class.js +0 -111
  467. package/src/filters/noise_filter.class.js +0 -134
  468. package/src/filters/pixelate_filter.class.js +0 -137
  469. package/src/filters/removecolor_filter.class.js +0 -173
  470. package/src/filters/resize_filter.class.js +0 -490
  471. package/src/filters/saturate_filter.class.js +0 -119
  472. package/src/filters/vibrance_filter.class.js +0 -122
  473. package/src/filters/webgl_backend.class.js +0 -396
  474. package/src/globalFabric.js +0 -4
  475. package/src/gradient.class.js +0 -490
  476. package/src/intersection.class.js +0 -172
  477. package/src/log.js +0 -11
  478. package/src/mixins/animation.mixin.js +0 -231
  479. package/src/mixins/canvas_dataurl_exporter.mixin.js +0 -97
  480. package/src/mixins/canvas_events.mixin.js +0 -974
  481. package/src/mixins/canvas_gestures.mixin.js +0 -149
  482. package/src/mixins/canvas_grouping.mixin.js +0 -177
  483. package/src/mixins/canvas_serialization.mixin.js +0 -228
  484. package/src/mixins/collection.mixin.js +0 -170
  485. package/src/mixins/default_controls.js +0 -114
  486. package/src/mixins/itext.svg_export.js +0 -241
  487. package/src/mixins/itext_behavior.mixin.js +0 -940
  488. package/src/mixins/itext_click_behavior.mixin.js +0 -278
  489. package/src/mixins/itext_key_behavior.mixin.js +0 -694
  490. package/src/mixins/object.svg_export.js +0 -258
  491. package/src/mixins/object_geometry.mixin.js +0 -683
  492. package/src/mixins/object_interactivity.mixin.js +0 -314
  493. package/src/mixins/object_origin.mixin.js +0 -255
  494. package/src/mixins/object_stacking.mixin.js +0 -80
  495. package/src/mixins/object_straightening.mixin.js +0 -80
  496. package/src/mixins/observable.mixin.js +0 -141
  497. package/src/mixins/shared_methods.mixin.js +0 -94
  498. package/src/mixins/stateful.mixin.js +0 -107
  499. package/src/mixins/text_style.mixin.js +0 -324
  500. package/src/parser.js +0 -1090
  501. package/src/pattern.class.js +0 -189
  502. package/src/point.class.js +0 -337
  503. package/src/shadow.class.js +0 -195
  504. package/src/shapes/active_selection.class.js +0 -155
  505. package/src/shapes/circle.class.js +0 -210
  506. package/src/shapes/ellipse.class.js +0 -181
  507. package/src/shapes/group.class.js +0 -593
  508. package/src/shapes/image.class.js +0 -764
  509. package/src/shapes/itext.class.js +0 -526
  510. package/src/shapes/line.class.js +0 -324
  511. package/src/shapes/object.class.js +0 -2008
  512. package/src/shapes/path.class.js +0 -384
  513. package/src/shapes/polygon.class.js +0 -81
  514. package/src/shapes/polyline.class.js +0 -268
  515. package/src/shapes/rect.class.js +0 -187
  516. package/src/shapes/text.class.js +0 -1696
  517. package/src/shapes/textbox.class.js +0 -461
  518. package/src/shapes/triangle.class.js +0 -93
  519. package/src/static_canvas.class.js +0 -1881
  520. package/src/util/anim_ease.js +0 -398
  521. package/src/util/animate.js +0 -254
  522. package/src/util/animate_color.js +0 -74
  523. package/src/util/dom_event.js +0 -50
  524. package/src/util/dom_misc.js +0 -300
  525. package/src/util/dom_request.js +0 -54
  526. package/src/util/dom_style.js +0 -70
  527. package/src/util/lang_array.js +0 -94
  528. package/src/util/lang_class.js +0 -115
  529. package/src/util/lang_object.js +0 -75
  530. package/src/util/lang_string.js +0 -110
  531. package/src/util/misc.js +0 -1330
  532. package/src/util/named_accessors.mixin.js +0 -428
  533. package/src/util/path.js +0 -829
@@ -0,0 +1,156 @@
1
+ import type { T2DPipelineState, TWebGLAttributeLocationMap, TWebGLPipelineState, TWebGLProgramCacheItem, TWebGLUniformLocationMap } from './typedefs';
2
+ export type AbstractBaseFilterOptions<T> = {
3
+ mainParameter: string;
4
+ vertexSource: string;
5
+ fragmentSource: T;
6
+ };
7
+ export type BaseFilterOptions = AbstractBaseFilterOptions<string>;
8
+ export interface AnyFilter extends AbstractBaseFilter<string | Record<string, string>> {
9
+ }
10
+ export declare abstract class AbstractBaseFilter<T> {
11
+ /**
12
+ * Filter type
13
+ * @param {String} type
14
+ * @default
15
+ */
16
+ type: string;
17
+ /**
18
+ * Array of attributes to send with buffers. do not modify
19
+ * @private
20
+ */
21
+ vertexSource: string;
22
+ fragmentSource: T;
23
+ /**
24
+ * Name of the parameter that can be changed in the filter.
25
+ * Some filters have more than one parameter and there is no
26
+ * mainParameter
27
+ * @private
28
+ */
29
+ mainParameter?: keyof this;
30
+ /**
31
+ * Constructor
32
+ * @param {Object} [options] Options object
33
+ */
34
+ constructor(options?: Partial<AbstractBaseFilterOptions<T>> & Record<string, any>);
35
+ abstract getFragmentSource(): string;
36
+ /**
37
+ * Compile this filter's shader program.
38
+ *
39
+ * @param {WebGLRenderingContext} gl The GL canvas context to use for shader compilation.
40
+ * @param {String} fragmentSource fragmentShader source for compilation
41
+ * @param {String} vertexSource vertexShader source for compilation
42
+ */
43
+ createProgram(gl: WebGLRenderingContext, fragmentSource?: string, vertexSource?: string): {
44
+ program: WebGLProgram;
45
+ attributeLocations: TWebGLAttributeLocationMap;
46
+ uniformLocations: TWebGLUniformLocationMap;
47
+ };
48
+ /**
49
+ * Return a map of attribute names to WebGLAttributeLocation objects.
50
+ *
51
+ * @param {WebGLRenderingContext} gl The canvas context used to compile the shader program.
52
+ * @param {WebGLShaderProgram} program The shader program from which to take attribute locations.
53
+ * @returns {Object} A map of attribute names to attribute locations.
54
+ */
55
+ getAttributeLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLAttributeLocationMap;
56
+ /**
57
+ * Return a map of uniform names to WebGLUniformLocation objects.
58
+ *
59
+ * Intended to be overridden by subclasses.
60
+ *
61
+ * @param {WebGLRenderingContext} gl The canvas context used to compile the shader program.
62
+ * @param {WebGLShaderProgram} program The shader program from which to take uniform locations.
63
+ * @returns {Object} A map of uniform names to uniform locations.
64
+ */
65
+ abstract getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
66
+ /**
67
+ * Send attribute data from this filter to its shader program on the GPU.
68
+ *
69
+ * @param {WebGLRenderingContext} gl The canvas context used to compile the shader program.
70
+ * @param {Object} attributeLocations A map of shader attribute names to their locations.
71
+ */
72
+ sendAttributeData(gl: WebGLRenderingContext, attributeLocations: Record<string, number>, aPositionData: Float32Array): void;
73
+ _setupFrameBuffer(options: TWebGLPipelineState): void;
74
+ _swapTextures(options: TWebGLPipelineState): void;
75
+ /**
76
+ * Generic isNeutral implementation for one parameter based filters.
77
+ * Used only in image applyFilters to discard filters that will not have an effect
78
+ * on the image
79
+ * Other filters may need their own version ( ColorMatrix, HueRotation, gamma, ComposedFilter )
80
+ * @param {Object} options
81
+ **/
82
+ isNeutralState(options?: any): boolean;
83
+ /**
84
+ * Apply this filter to the input image data provided.
85
+ *
86
+ * Determines whether to use WebGL or Canvas2D based on the options.webgl flag.
87
+ *
88
+ * @param {Object} options
89
+ * @param {Number} options.passes The number of filters remaining to be executed
90
+ * @param {Boolean} options.webgl Whether to use webgl to render the filter.
91
+ * @param {WebGLTexture} options.sourceTexture The texture setup as the source to be filtered.
92
+ * @param {WebGLTexture} options.targetTexture The texture where filtered output should be drawn.
93
+ * @param {WebGLRenderingContext} options.context The GL context used for rendering.
94
+ * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.
95
+ */
96
+ applyTo(options: TWebGLPipelineState | T2DPipelineState): void;
97
+ abstract applyTo2d(options: T2DPipelineState): void;
98
+ getCacheKey(): string;
99
+ /**
100
+ * Retrieves the cached shader.
101
+ * @param {Object} options
102
+ * @param {WebGLRenderingContext} options.context The GL context used for rendering.
103
+ * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.
104
+ * @return {WebGLProgram} the compiled program shader
105
+ */
106
+ retrieveShader(options: TWebGLPipelineState): TWebGLProgramCacheItem;
107
+ /**
108
+ * Apply this filter using webgl.
109
+ *
110
+ * @param {Object} options
111
+ * @param {Number} options.passes The number of filters remaining to be executed
112
+ * @param {Boolean} options.webgl Whether to use webgl to render the filter.
113
+ * @param {WebGLTexture} options.originalTexture The texture of the original input image.
114
+ * @param {WebGLTexture} options.sourceTexture The texture setup as the source to be filtered.
115
+ * @param {WebGLTexture} options.targetTexture The texture where filtered output should be drawn.
116
+ * @param {WebGLRenderingContext} options.context The GL context used for rendering.
117
+ * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.
118
+ */
119
+ applyToWebGL(options: TWebGLPipelineState): void;
120
+ bindAdditionalTexture(gl: WebGLRenderingContext, texture: WebGLTexture, textureUnit: number): void;
121
+ unbindAdditionalTexture(gl: WebGLRenderingContext, textureUnit: number): void;
122
+ getMainParameter(): this[keyof this] | undefined;
123
+ setMainParameter(value: any): void;
124
+ /**
125
+ * Send uniform data from this filter to its shader program on the GPU.
126
+ *
127
+ * Intended to be overridden by subclasses.
128
+ *
129
+ * @param {WebGLRenderingContext} gl The canvas context used to compile the shader program.
130
+ * @param {Object} uniformLocations A map of shader uniform names to their locations.
131
+ */
132
+ abstract sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
133
+ /**
134
+ * If needed by a 2d filter, this functions can create an helper canvas to be used
135
+ * remember that options.targetCanvas is available for use till end of chain.
136
+ */
137
+ createHelpLayer(options: T2DPipelineState): void;
138
+ /**
139
+ * Returns object representation of an instance
140
+ * @return {Object} Object representation of an instance
141
+ */
142
+ toObject(): {
143
+ type: string;
144
+ };
145
+ /**
146
+ * Returns a JSON representation of an instance
147
+ * @return {Object} JSON
148
+ */
149
+ toJSON(): {
150
+ type: string;
151
+ };
152
+ }
153
+ export declare abstract class BaseFilter extends AbstractBaseFilter<string> {
154
+ getFragmentSource(): string;
155
+ }
156
+ //# sourceMappingURL=BaseFilter.d.ts.map
@@ -0,0 +1,80 @@
1
+ import { TClassProperties } from '../typedefs';
2
+ import { AbstractBaseFilter } from './BaseFilter';
3
+ import { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';
4
+ /**
5
+ * Color Blend filter class
6
+ * @example
7
+ * const filter = new BlendColor({
8
+ * color: '#000',
9
+ * mode: 'multiply'
10
+ * });
11
+ *
12
+ * const filter = new BlendImage({
13
+ * image: fabricImageObject,
14
+ * mode: 'multiply',
15
+ * alpha: 0.5
16
+ * });
17
+ * object.filters.push(filter);
18
+ * object.applyFilters();
19
+ * canvas.renderAll();
20
+ */
21
+ export declare class BlendColor extends AbstractBaseFilter<Record<string, string>> {
22
+ /**
23
+ * Color to make the blend operation with. default to a reddish color since black or white
24
+ * gives always strong result.
25
+ * @type String
26
+ * @default
27
+ **/
28
+ color: string;
29
+ mode: 'multiply' | 'add' | 'diff' | 'difference' | 'screen' | 'subtract' | 'darken' | 'lighten' | 'overlay' | 'exclusion' | 'tint';
30
+ /**
31
+ * alpha value. represent the strength of the blend color operation.
32
+ * @type Number
33
+ * @default
34
+ **/
35
+ alpha: number;
36
+ /**
37
+ * build the fragment source for the filters, joining the common part with
38
+ * the specific one.
39
+ * @param {String} mode the mode of the filter, a key of this.fragmentSource
40
+ * @return {String} the source to be compiled
41
+ * @private
42
+ */
43
+ buildSource(mode: string): string;
44
+ getCacheKey(): string;
45
+ getFragmentSource(): string;
46
+ /**
47
+ * Apply the Blend operation to a Uint8ClampedArray representing the pixels of an image.
48
+ *
49
+ * @param {Object} options
50
+ * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.
51
+ */
52
+ applyTo2d({ imageData: { data } }: T2DPipelineState): void;
53
+ /**
54
+ * Return WebGL uniform locations for this filter's shader.
55
+ *
56
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
57
+ * @param {WebGLShaderProgram} program This filter's compiled shader program.
58
+ */
59
+ getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
60
+ /**
61
+ * Send data from this filter to its shader program's uniforms.
62
+ *
63
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
64
+ * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
65
+ */
66
+ sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
67
+ /**
68
+ * Returns object representation of an instance
69
+ * @return {Object} Object representation of an instance
70
+ */
71
+ toObject(): {
72
+ type: string;
73
+ color: string;
74
+ mode: "darken" | "difference" | "exclusion" | "lighten" | "multiply" | "overlay" | "screen" | "add" | "diff" | "subtract" | "tint";
75
+ alpha: number;
76
+ };
77
+ static fromObject(object: any): Promise<BlendColor>;
78
+ }
79
+ export declare const blendColorDefaultValues: Partial<TClassProperties<BlendColor>>;
80
+ //# sourceMappingURL=BlendColor.d.ts.map
@@ -0,0 +1,90 @@
1
+ import { Image } from '../shapes/Image';
2
+ import type { TClassProperties } from '../typedefs';
3
+ import { AbstractBaseFilter } from './BaseFilter';
4
+ import type { T2DPipelineState, TWebGLPipelineState, TWebGLUniformLocationMap } from './typedefs';
5
+ import { WebGLFilterBackend } from './WebGLFilterBackend';
6
+ /**
7
+ * Image Blend filter class
8
+ * @example
9
+ * const filter = new filters.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 BlendImage extends AbstractBaseFilter<Record<string, string>> {
24
+ /**
25
+ * Color to make the blend operation with. default to a reddish color since black or white
26
+ * gives always strong result.
27
+ **/
28
+ image: Image;
29
+ mode: 'multiply' | 'mask';
30
+ /**
31
+ * alpha value. represent the strength of the blend image operation.
32
+ * not implemented.
33
+ **/
34
+ alpha: number;
35
+ getCacheKey(): string;
36
+ getFragmentSource(): string;
37
+ applyToWebGL(options: TWebGLPipelineState): void;
38
+ createTexture(backend: WebGLFilterBackend, image: Image): any;
39
+ /**
40
+ * Calculate a transformMatrix to adapt the image to blend over
41
+ * @param {Object} options
42
+ * @param {WebGLRenderingContext} options.context The GL context used for rendering.
43
+ * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.
44
+ */
45
+ calculateMatrix(): number[];
46
+ /**
47
+ * Apply the Blend operation to a Uint8ClampedArray representing the pixels of an image.
48
+ *
49
+ * @param {Object} options
50
+ * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.
51
+ */
52
+ applyTo2d({ imageData: { data, width, height }, filterBackend: { resources }, }: T2DPipelineState): void;
53
+ /**
54
+ * Return WebGL uniform locations for this filter's shader.
55
+ *
56
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
57
+ * @param {WebGLShaderProgram} program This filter's compiled shader program.
58
+ */
59
+ getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
60
+ /**
61
+ * Send data from this filter to its shader program's uniforms.
62
+ *
63
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
64
+ * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
65
+ */
66
+ sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
67
+ /**
68
+ * Returns object representation of an instance
69
+ * @return {Object} Object representation of an instance
70
+ */
71
+ toObject(): {
72
+ type: string;
73
+ image: Record<string, any>;
74
+ mode: "multiply" | "mask";
75
+ alpha: number;
76
+ };
77
+ /**
78
+ * Create filter instance from an object representation
79
+ * @static
80
+ * @param {object} object Object to create an instance from
81
+ * @param {object} [options]
82
+ * @param {AbortSignal} [options.signal] handle aborting image loading, see https://developer.mozilla.org/en-US/docs/Web/API/AbortController/signal
83
+ * @returns {Promise<BlendImage>}
84
+ */
85
+ static fromObject(object: Record<string, any>, options: {
86
+ signal: AbortSignal;
87
+ }): Promise<BlendImage>;
88
+ }
89
+ export declare const blendImageDefaultValues: Partial<TClassProperties<BlendImage>>;
90
+ //# sourceMappingURL=BlendImage.d.ts.map
@@ -0,0 +1,50 @@
1
+ import type { TClassProperties } from '../typedefs';
2
+ import { BaseFilter } from './BaseFilter';
3
+ import type { TWebGLPipelineState, T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';
4
+ /**
5
+ * Blur filter class
6
+ * @example
7
+ * const filter = new Blur({
8
+ * blur: 0.5
9
+ * });
10
+ * object.filters.push(filter);
11
+ * object.applyFilters();
12
+ * canvas.renderAll();
13
+ */
14
+ export declare class Blur extends BaseFilter {
15
+ /**
16
+ * blur value, in percentage of image dimensions.
17
+ * specific to keep the image blur constant at different resolutions
18
+ * range between 0 and 1.
19
+ * @type Number
20
+ * @default
21
+ */
22
+ blur: number;
23
+ horizontal: boolean;
24
+ aspectRatio: number;
25
+ applyTo(options: TWebGLPipelineState | T2DPipelineState): void;
26
+ applyTo2d(options: T2DPipelineState): void;
27
+ simpleBlur({ ctx, imageData, filterBackend: { resources }, }: T2DPipelineState): ImageData;
28
+ /**
29
+ * Return WebGL uniform locations for this filter's shader.
30
+ *
31
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
32
+ * @param {WebGLShaderProgram} program This filter's compiled shader program.
33
+ */
34
+ getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
35
+ /**
36
+ * Send data from this filter to its shader program's uniforms.
37
+ *
38
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
39
+ * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
40
+ */
41
+ sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
42
+ /**
43
+ * choose right value of image percentage to blur with
44
+ * @returns {Array} a numeric array with delta values
45
+ */
46
+ chooseRightDelta(): number[];
47
+ static fromObject(object: any): Promise<Blur>;
48
+ }
49
+ export declare const blurDefaultValues: Partial<TClassProperties<Blur>>;
50
+ //# sourceMappingURL=Blur.d.ts.map
@@ -0,0 +1,46 @@
1
+ import { TClassProperties } from '../typedefs';
2
+ import { BaseFilter } from './BaseFilter';
3
+ import { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';
4
+ /**
5
+ * MyFilter filter class
6
+ * @example
7
+ * const filter = new MyFilter({
8
+ * add here an example of how to use your filter
9
+ * });
10
+ * object.filters.push(filter);
11
+ * object.applyFilters();
12
+ */
13
+ export declare class MyFilter extends BaseFilter {
14
+ /**
15
+ * MyFilter value, from -1 to 1.
16
+ * translated to -255 to 255 for 2d
17
+ * 0.0039215686 is the part of 1 that get translated to 1 in 2d
18
+ * @param {Number} myParameter
19
+ * @default
20
+ */
21
+ myParameter: number;
22
+ /**
23
+ * Apply the MyFilter operation to a Uint8ClampedArray representing the pixels of an image.
24
+ *
25
+ * @param {Object} options
26
+ * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.
27
+ */
28
+ applyTo2d(options: T2DPipelineState): void;
29
+ /**
30
+ * Return WebGL uniform locations for this filter's shader.
31
+ *
32
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
33
+ * @param {WebGLShaderProgram} program This filter's compiled shader program.
34
+ */
35
+ getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
36
+ /**
37
+ * Send data from this filter to its shader program's uniforms.
38
+ *
39
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
40
+ * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
41
+ */
42
+ sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
43
+ static fromObject(object: any): Promise<MyFilter>;
44
+ }
45
+ export declare const myFilterDefaultValues: Partial<TClassProperties<MyFilter>>;
46
+ //# sourceMappingURL=Boilerplate.d.ts.map
@@ -0,0 +1,46 @@
1
+ import type { TClassProperties } from '../typedefs';
2
+ import { BaseFilter } from './BaseFilter';
3
+ import type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';
4
+ /**
5
+ * Brightness filter class
6
+ * @example
7
+ * const filter = new Brightness({
8
+ * brightness: 0.05
9
+ * });
10
+ * object.filters.push(filter);
11
+ * object.applyFilters();
12
+ */
13
+ export declare class Brightness extends BaseFilter {
14
+ /**
15
+ * Brightness value, from -1 to 1.
16
+ * translated to -255 to 255 for 2d
17
+ * 0.0039215686 is the part of 1 that get translated to 1 in 2d
18
+ * @param {Number} brightness
19
+ * @default
20
+ */
21
+ brightness: number;
22
+ /**
23
+ * Apply the Brightness operation to a Uint8ClampedArray representing the pixels of an image.
24
+ *
25
+ * @param {Object} options
26
+ * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.
27
+ */
28
+ applyTo2d({ imageData: { data } }: T2DPipelineState): void;
29
+ /**
30
+ * Return WebGL uniform locations for this filter's shader.
31
+ *
32
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
33
+ * @param {WebGLShaderProgram} program This filter's compiled shader program.
34
+ */
35
+ getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
36
+ /**
37
+ * Send data from this filter to its shader program's uniforms.
38
+ *
39
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
40
+ * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
41
+ */
42
+ sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
43
+ static fromObject(object: any): Promise<Brightness>;
44
+ }
45
+ export declare const brightnessDefaultValues: Partial<TClassProperties<Brightness>>;
46
+ //# 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,62 @@
1
+ import type { TClassProperties } from '../typedefs';
2
+ import { BaseFilter } from './BaseFilter';
3
+ import type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';
4
+ /**
5
+ * Color Matrix filter class
6
+ * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}
7
+ * @see {@Link http://phoboslab.org/log/2013/11/fast-image-filters-with-webgl demo}
8
+ * @example <caption>Kodachrome filter</caption>
9
+ * const filter = new ColorMatrix({
10
+ * matrix: [
11
+ 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,
12
+ -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,
13
+ -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,
14
+ 0, 0, 0, 1, 0
15
+ ]
16
+ * });
17
+ * object.filters.push(filter);
18
+ * object.applyFilters();
19
+ */
20
+ export declare class ColorMatrix extends BaseFilter {
21
+ /**
22
+ * Colormatrix for pixels.
23
+ * array of 20 floats. Numbers in positions 4, 9, 14, 19 loose meaning
24
+ * outside the -1, 1 range.
25
+ * 0.0039215686 is the part of 1 that get translated to 1 in 2d
26
+ * @param {Array} matrix array of 20 numbers.
27
+ * @default
28
+ */
29
+ matrix: number[];
30
+ /**
31
+ * Lock the colormatrix on the color part, skipping alpha, mainly for non webgl scenario
32
+ * to save some calculation
33
+ * @type Boolean
34
+ * @default true
35
+ */
36
+ colorsOnly: boolean;
37
+ setOptions({ matrix, ...options }: Record<string, any>): void;
38
+ /**
39
+ * Apply the ColorMatrix operation to a Uint8Array representing the pixels of an image.
40
+ *
41
+ * @param {Object} options
42
+ * @param {ImageData} options.imageData The Uint8Array to be filtered.
43
+ */
44
+ applyTo2d(options: T2DPipelineState): void;
45
+ /**
46
+ * Return WebGL uniform locations for this filter's shader.
47
+ *
48
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
49
+ * @param {WebGLShaderProgram} program This filter's compiled shader program.
50
+ */
51
+ getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
52
+ /**
53
+ * Send data from this filter to its shader program's uniforms.
54
+ *
55
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
56
+ * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
57
+ */
58
+ sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
59
+ static fromObject(object: any): Promise<ColorMatrix>;
60
+ }
61
+ export declare const colorMatrixDefaultValues: Partial<TClassProperties<ColorMatrix>>;
62
+ //# sourceMappingURL=ColorMatrix.d.ts.map