fabric 5.3.0 → 6.0.0-beta10

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 (634) 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 +51 -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 +615 -189
  13. package/CONTRIBUTING.md +233 -59
  14. package/README.md +200 -235
  15. package/babel-jest.config.js +6 -0
  16. package/bower.json +1 -3
  17. package/dist/fabric.d.ts +54 -0
  18. package/dist/index.d.ts +2 -0
  19. package/dist/index.js +28452 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/index.min.js +1 -0
  22. package/dist/index.mjs +28385 -0
  23. package/dist/index.mjs.map +1 -0
  24. package/dist/index.node.cjs +28538 -0
  25. package/dist/index.node.cjs.map +1 -0
  26. package/dist/index.node.d.ts +20 -0
  27. package/dist/index.node.mjs +28477 -0
  28. package/dist/index.node.mjs.map +1 -0
  29. package/dist/src/ClassRegistry.d.ts +13 -0
  30. package/dist/src/Collection.d.ts +136 -0
  31. package/dist/src/CommonMethods.d.ts +32 -0
  32. package/dist/src/EventTypeDefs.d.ts +227 -0
  33. package/dist/src/Intersection.d.ts +112 -0
  34. package/dist/src/Observable.d.ts +60 -0
  35. package/dist/src/Pattern/Pattern.d.ts +99 -0
  36. package/dist/src/Pattern/index.d.ts +3 -0
  37. package/dist/src/Pattern/types.d.ts +9 -0
  38. package/dist/src/Point.d.ts +232 -0
  39. package/dist/src/Shadow.d.ts +96 -0
  40. package/dist/src/brushes/BaseBrush.d.ts +101 -0
  41. package/dist/src/brushes/CircleBrush.d.ts +44 -0
  42. package/dist/src/brushes/CircleBrush.test.d.ts +2 -0
  43. package/dist/src/brushes/PatternBrush.d.ts +23 -0
  44. package/dist/src/brushes/PencilBrush.d.ts +92 -0
  45. package/dist/src/brushes/SprayBrush.d.ts +74 -0
  46. package/dist/src/brushes/typedefs.d.ts +18 -0
  47. package/dist/src/cache.d.ts +47 -0
  48. package/dist/src/canvas/Canvas.d.ts +364 -0
  49. package/dist/src/canvas/DOMManagers/CanvasDOMManager.d.ts +29 -0
  50. package/dist/src/canvas/DOMManagers/StaticCanvasDOMManager.d.ts +29 -0
  51. package/dist/src/canvas/DOMManagers/util.d.ts +24 -0
  52. package/dist/src/canvas/DOMManagers/util.spec.d.ts +2 -0
  53. package/dist/src/canvas/SelectableCanvas.d.ts +723 -0
  54. package/dist/src/canvas/StaticCanvas.d.ts +747 -0
  55. package/dist/src/canvas/TextEditingManager.d.ts +21 -0
  56. package/dist/src/canvas/canvas_gestures.mixin.d.ts +2 -0
  57. package/dist/src/color/Color.d.ts +152 -0
  58. package/dist/src/color/color_map.d.ts +155 -0
  59. package/dist/src/color/constants.d.ts +104 -0
  60. package/dist/src/color/typedefs.d.ts +16 -0
  61. package/dist/src/color/util.d.ts +27 -0
  62. package/dist/src/config.d.ts +115 -0
  63. package/dist/src/constants.d.ts +21 -0
  64. package/dist/src/controls/Control.d.ts +229 -0
  65. package/dist/src/controls/changeWidth.d.ts +13 -0
  66. package/dist/src/controls/commonControls.d.ts +28 -0
  67. package/dist/src/controls/controlRendering.d.ts +29 -0
  68. package/dist/src/controls/drag.d.ts +12 -0
  69. package/dist/src/controls/fireEvent.d.ts +3 -0
  70. package/dist/src/controls/index.d.ts +13 -0
  71. package/dist/src/controls/polyControl.d.ts +5 -0
  72. package/dist/src/controls/rotate.d.ts +12 -0
  73. package/dist/src/controls/scale.d.ts +47 -0
  74. package/dist/src/controls/scaleSkew.d.ts +39 -0
  75. package/dist/src/controls/skew.d.ts +33 -0
  76. package/dist/src/controls/util.d.ts +41 -0
  77. package/dist/src/controls/wrapWithFireEvent.d.ts +8 -0
  78. package/dist/src/controls/wrapWithFixedAnchor.d.ts +9 -0
  79. package/dist/src/env/browser.d.ts +3 -0
  80. package/dist/src/env/index.d.ts +28 -0
  81. package/dist/src/env/node.d.ts +6 -0
  82. package/dist/src/env/types.d.ts +15 -0
  83. package/dist/src/filters/BaseFilter.d.ts +160 -0
  84. package/dist/src/filters/BlendColor.d.ts +81 -0
  85. package/dist/src/filters/BlendImage.d.ts +93 -0
  86. package/dist/src/filters/Blur.d.ts +52 -0
  87. package/dist/src/filters/Boilerplate.d.ts +48 -0
  88. package/dist/src/filters/Brightness.d.ts +48 -0
  89. package/dist/src/filters/Canvas2dFilterBackend.d.ts +27 -0
  90. package/dist/src/filters/ColorMatrix.d.ts +64 -0
  91. package/dist/src/filters/ColorMatrixFilters.d.ts +537 -0
  92. package/dist/src/filters/Composed.d.ts +46 -0
  93. package/dist/src/filters/Contrast.d.ts +46 -0
  94. package/dist/src/filters/Convolute.d.ts +83 -0
  95. package/dist/src/filters/FilterBackend.d.ts +15 -0
  96. package/dist/src/filters/GLProbes/GLProbe.d.ts +7 -0
  97. package/dist/src/filters/GLProbes/NodeGLProbe.d.ts +11 -0
  98. package/dist/src/filters/GLProbes/WebGLProbe.d.ts +20 -0
  99. package/dist/src/filters/Gamma.d.ts +55 -0
  100. package/dist/src/filters/Grayscale.d.ts +47 -0
  101. package/dist/src/filters/HueRotation.d.ts +25 -0
  102. package/dist/src/filters/Invert.d.ts +56 -0
  103. package/dist/src/filters/Noise.d.ts +55 -0
  104. package/dist/src/filters/Pixelate.d.ts +45 -0
  105. package/dist/src/filters/RemoveColor.d.ts +64 -0
  106. package/dist/src/filters/Resize.d.ts +137 -0
  107. package/dist/src/filters/Saturation.d.ts +49 -0
  108. package/dist/src/filters/Vibrance.d.ts +49 -0
  109. package/dist/src/filters/WebGLFilterBackend.d.ts +128 -0
  110. package/dist/src/filters/filters.d.ts +21 -0
  111. package/dist/src/filters/index.d.ts +7 -0
  112. package/dist/src/filters/shaders/baseFilter.d.ts +4 -0
  113. package/dist/src/filters/shaders/blendColor.d.ts +13 -0
  114. package/dist/src/filters/shaders/blendImage.d.ts +3 -0
  115. package/dist/src/filters/shaders/blur.d.ts +2 -0
  116. package/dist/src/filters/shaders/brightness.d.ts +2 -0
  117. package/dist/src/filters/shaders/colorMatrix.d.ts +2 -0
  118. package/dist/src/filters/shaders/constrast.d.ts +2 -0
  119. package/dist/src/filters/shaders/convolute.d.ts +11 -0
  120. package/dist/src/filters/shaders/gamma.d.ts +2 -0
  121. package/dist/src/filters/shaders/grayscale.d.ts +3 -0
  122. package/dist/src/filters/shaders/invert.d.ts +2 -0
  123. package/dist/src/filters/shaders/noise.d.ts +2 -0
  124. package/dist/src/filters/shaders/pixelate.d.ts +2 -0
  125. package/dist/src/filters/shaders/removeColor.d.ts +2 -0
  126. package/dist/src/filters/shaders/saturation.d.ts +2 -0
  127. package/dist/src/filters/shaders/vibrance.d.ts +2 -0
  128. package/dist/src/filters/typedefs.d.ts +48 -0
  129. package/dist/src/filters/utils.d.ts +3 -0
  130. package/dist/src/gradient/Gradient.d.ts +150 -0
  131. package/dist/src/gradient/constants.d.ts +15 -0
  132. package/dist/src/gradient/index.d.ts +3 -0
  133. package/dist/src/gradient/parser/index.d.ts +4 -0
  134. package/dist/src/gradient/parser/misc.d.ts +4 -0
  135. package/dist/src/gradient/parser/parseColorStops.d.ts +3 -0
  136. package/dist/src/gradient/parser/parseCoords.d.ts +17 -0
  137. package/dist/src/gradient/typedefs.d.ts +93 -0
  138. package/dist/src/mixins/eraser_brush.mixin.d.ts +2 -0
  139. package/dist/src/parkinglot/canvas_animation.mixin.d.ts +2 -0
  140. package/dist/src/parkinglot/straighten.d.ts +2 -0
  141. package/dist/src/parser/applyViewboxTransform.d.ts +5 -0
  142. package/dist/src/parser/attributes.d.ts +6 -0
  143. package/dist/src/parser/constants.d.ts +53 -0
  144. package/dist/src/parser/doesSomeParentMatch.d.ts +2 -0
  145. package/dist/src/parser/elementById.d.ts +6 -0
  146. package/dist/src/parser/elementMatchesRule.d.ts +5 -0
  147. package/dist/src/parser/elements_parser.d.ts +3 -0
  148. package/dist/src/parser/getCSSRules.d.ts +7 -0
  149. package/dist/src/parser/getGlobalStylesForElement.d.ts +5 -0
  150. package/dist/src/parser/getGradientDefs.d.ts +7 -0
  151. package/dist/src/parser/getMultipleNodes.d.ts +2 -0
  152. package/dist/src/parser/getSvgRegex.d.ts +2 -0
  153. package/dist/src/parser/hasAncestorWithNodeName.d.ts +2 -0
  154. package/dist/src/parser/index.d.ts +9 -0
  155. package/dist/src/parser/loadSVGFromString.d.ts +18 -0
  156. package/dist/src/parser/loadSVGFromURL.d.ts +19 -0
  157. package/dist/src/parser/normalizeAttr.d.ts +2 -0
  158. package/dist/src/parser/normalizeValue.d.ts +2 -0
  159. package/dist/src/parser/parseAttributes.d.ts +9 -0
  160. package/dist/src/parser/parseFontDeclaration.d.ts +10 -0
  161. package/dist/src/parser/parsePointsAttribute.d.ts +12 -0
  162. package/dist/src/parser/parseSVGDocument.d.ts +23 -0
  163. package/dist/src/parser/parseStyleAttribute.d.ts +9 -0
  164. package/dist/src/parser/parseStyleObject.d.ts +2 -0
  165. package/dist/src/parser/parseStyleString.d.ts +2 -0
  166. package/dist/src/parser/parseTransformAttribute.d.ts +11 -0
  167. package/dist/src/parser/parseUseDirectives.d.ts +2 -0
  168. package/dist/src/parser/percent.d.ts +9 -0
  169. package/dist/src/parser/recursivelyParseGradientsXlink.d.ts +2 -0
  170. package/dist/src/parser/selectorMatches.d.ts +2 -0
  171. package/dist/src/parser/setStrokeFillOpacity.d.ts +6 -0
  172. package/dist/src/parser/typedefs.d.ts +9 -0
  173. package/dist/src/shapes/ActiveSelection.d.ts +83 -0
  174. package/dist/src/shapes/Circle.d.ts +99 -0
  175. package/dist/src/shapes/Ellipse.d.ts +84 -0
  176. package/dist/src/shapes/Group.d.ts +407 -0
  177. package/dist/src/shapes/IText/DraggableTextDelegate.d.ts +78 -0
  178. package/dist/src/shapes/IText/IText.d.ts +336 -0
  179. package/dist/src/shapes/IText/ITextBehavior.d.ts +287 -0
  180. package/dist/src/shapes/IText/ITextClickBehavior.d.ts +73 -0
  181. package/dist/src/shapes/IText/ITextKeyBehavior.d.ts +195 -0
  182. package/dist/src/shapes/IText/constants.d.ts +13 -0
  183. package/dist/src/shapes/Image.d.ts +309 -0
  184. package/dist/src/shapes/Line.d.ts +121 -0
  185. package/dist/src/shapes/Object/AnimatableObject.d.ts +33 -0
  186. package/dist/src/shapes/Object/FabricObject.d.ts +11 -0
  187. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts +74 -0
  188. package/dist/src/shapes/Object/InteractiveObject.d.ts +296 -0
  189. package/dist/src/shapes/Object/Object.d.ts +599 -0
  190. package/dist/src/shapes/Object/ObjectGeometry.d.ts +327 -0
  191. package/dist/src/shapes/Object/ObjectOrigin.d.ts +109 -0
  192. package/dist/src/shapes/Object/StackedObject.d.ts +72 -0
  193. package/dist/src/shapes/Object/defaultValues.d.ts +76 -0
  194. package/dist/src/shapes/Object/types/BaseProps.d.ts +84 -0
  195. package/dist/src/shapes/Object/types/BorderProps.d.ts +37 -0
  196. package/dist/src/shapes/Object/types/ControlProps.d.ts +62 -0
  197. package/dist/src/shapes/Object/types/FabricObjectProps.d.ts +96 -0
  198. package/dist/src/shapes/Object/types/FillStrokeProps.d.ts +80 -0
  199. package/dist/src/shapes/Object/types/LockInteractionProps.d.ts +51 -0
  200. package/dist/src/shapes/Object/types/ObjectProps.d.ts +42 -0
  201. package/dist/src/shapes/Object/types/SerializedObjectProps.d.ts +66 -0
  202. package/dist/src/shapes/Object/types/index.d.ts +6 -0
  203. package/dist/src/shapes/Path.d.ts +214 -0
  204. package/dist/src/shapes/Polygon.d.ts +10 -0
  205. package/dist/src/shapes/Polyline.d.ts +147 -0
  206. package/dist/src/shapes/Rect.d.ts +82 -0
  207. package/dist/src/shapes/Text/StyledText.d.ts +123 -0
  208. package/dist/src/shapes/Text/Text.d.ts +688 -0
  209. package/dist/src/shapes/Text/TextSVGExportMixin.d.ts +32 -0
  210. package/dist/src/shapes/Text/constants.d.ts +13 -0
  211. package/dist/src/shapes/Textbox.d.ts +204 -0
  212. package/dist/src/shapes/Triangle.d.ts +26 -0
  213. package/dist/src/typedefs.d.ts +96 -0
  214. package/dist/src/util/animation/AnimationBase.d.ts +54 -0
  215. package/dist/src/util/animation/AnimationFrameProvider.d.ts +3 -0
  216. package/dist/src/util/animation/AnimationRegistry.d.ts +29 -0
  217. package/dist/src/util/animation/ArrayAnimation.d.ts +10 -0
  218. package/dist/src/util/animation/ColorAnimation.d.ts +11 -0
  219. package/dist/src/util/animation/ValueAnimation.d.ts +10 -0
  220. package/dist/src/util/animation/animate.d.ts +37 -0
  221. package/dist/src/util/animation/easing.d.ts +130 -0
  222. package/dist/src/util/animation/index.d.ts +3 -0
  223. package/dist/src/util/animation/types.d.ts +87 -0
  224. package/dist/src/util/applyMixins.d.ts +8 -0
  225. package/dist/src/util/dom_event.d.ts +5 -0
  226. package/dist/src/util/dom_misc.d.ts +12 -0
  227. package/dist/src/util/dom_request.d.ts +14 -0
  228. package/dist/src/util/dom_style.d.ts +7 -0
  229. package/dist/src/util/index.d.ts +36 -0
  230. package/dist/src/util/internals/cleanupSvgAttribute.d.ts +2 -0
  231. package/dist/src/util/internals/cleanupSvgAttribute.test.d.ts +2 -0
  232. package/dist/src/util/internals/cloneDeep.d.ts +2 -0
  233. package/dist/src/util/internals/cloneDeep.test.d.ts +2 -0
  234. package/dist/src/util/internals/getRandomInt.d.ts +8 -0
  235. package/dist/src/util/internals/getRandomInt.test.d.ts +2 -0
  236. package/dist/src/util/internals/ifNaN.d.ts +8 -0
  237. package/dist/src/util/internals/index.d.ts +4 -0
  238. package/dist/src/util/internals/removeFromArray.d.ts +9 -0
  239. package/dist/src/util/internals/uid.d.ts +2 -0
  240. package/dist/src/util/lang_string.d.ts +22 -0
  241. package/dist/src/util/misc/boundingBoxFromPoints.d.ts +9 -0
  242. package/dist/src/util/misc/capValue.d.ts +2 -0
  243. package/dist/src/util/misc/cos.d.ts +10 -0
  244. package/dist/src/util/misc/dom.d.ts +28 -0
  245. package/dist/src/util/misc/findScaleTo.d.ts +20 -0
  246. package/dist/src/util/misc/groupSVGElements.d.ts +9 -0
  247. package/dist/src/util/misc/isTransparent.d.ts +11 -0
  248. package/dist/src/util/misc/matrix.d.ts +168 -0
  249. package/dist/src/util/misc/mergeClipPaths.d.ts +23 -0
  250. package/dist/src/util/misc/objectEnlive.d.ts +41 -0
  251. package/dist/src/util/misc/objectTransforms.d.ts +68 -0
  252. package/dist/src/util/misc/pick.d.ts +9 -0
  253. package/dist/src/util/misc/planeChange.d.ts +81 -0
  254. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts +52 -0
  255. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts +82 -0
  256. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts +26 -0
  257. package/dist/src/util/misc/projectStroke/index.d.ts +12 -0
  258. package/dist/src/util/misc/projectStroke/types.d.ts +23 -0
  259. package/dist/src/util/misc/radiansDegreesConversion.d.ts +14 -0
  260. package/dist/src/util/misc/resolveOrigin.d.ts +9 -0
  261. package/dist/src/util/misc/rotatePoint.d.ts +12 -0
  262. package/dist/src/util/misc/sin.d.ts +10 -0
  263. package/dist/src/util/misc/svgParsing.d.ts +45 -0
  264. package/dist/src/util/misc/textStyles.d.ts +32 -0
  265. package/dist/src/util/misc/toFixed.d.ts +8 -0
  266. package/dist/src/util/misc/vectors.d.ts +58 -0
  267. package/dist/src/util/path/index.d.ts +96 -0
  268. package/dist/src/util/path/regex.d.ts +2 -0
  269. package/dist/src/util/path/typechecks.d.ts +24 -0
  270. package/dist/src/util/path/typedefs.d.ts +220 -0
  271. package/dist/src/util/transform_matrix_removal.d.ts +14 -0
  272. package/dist/src/util/typeAssertions.d.ts +19 -0
  273. package/e2e/site/index.html +25 -0
  274. package/e2e/utils/objects.ts +36 -0
  275. package/fabric.ts +72 -0
  276. package/index.node.ts +43 -0
  277. package/index.ts +1 -0
  278. package/jest.config.js +194 -0
  279. package/lib/aligning_guidelines.js +2 -2
  280. package/package.json +110 -40
  281. package/playwright.config.ts +64 -0
  282. package/publish.js +0 -26
  283. package/rollup.config.mjs +99 -0
  284. package/rollup.test.config.js +24 -0
  285. package/scripts/build.mjs +50 -0
  286. package/scripts/buildLock.mjs +115 -0
  287. package/scripts/buildReporter.mjs +15 -0
  288. package/scripts/buildStats.mjs +139 -0
  289. package/scripts/dirname.mjs +14 -0
  290. package/scripts/git.mjs +36 -0
  291. package/scripts/index.mjs +564 -0
  292. package/scripts/sandbox.mjs +149 -0
  293. package/src/ClassRegistry.ts +56 -0
  294. package/src/Collection.ts +346 -0
  295. package/src/CommonMethods.ts +63 -0
  296. package/src/EventTypeDefs.ts +298 -0
  297. package/src/Intersection.ts +302 -0
  298. package/src/Observable.ts +181 -0
  299. package/src/Pattern/Pattern.ts +207 -0
  300. package/src/Pattern/index.ts +2 -0
  301. package/src/Pattern/types.ts +17 -0
  302. package/src/Point.ts +388 -0
  303. package/src/Shadow.ts +214 -0
  304. package/src/brushes/{base_brush.class.js → BaseBrush.ts} +63 -42
  305. package/src/brushes/CircleBrush.test.ts +11 -0
  306. package/src/brushes/CircleBrush.ts +140 -0
  307. package/src/brushes/PatternBrush.ts +70 -0
  308. package/src/brushes/PencilBrush.ts +300 -0
  309. package/src/brushes/SprayBrush.ts +214 -0
  310. package/src/brushes/typedefs.ts +18 -0
  311. package/src/cache.ts +90 -0
  312. package/src/canvas/Canvas.ts +1598 -0
  313. package/src/canvas/DOMManagers/CanvasDOMManager.ts +124 -0
  314. package/src/canvas/DOMManagers/StaticCanvasDOMManager.ts +80 -0
  315. package/src/canvas/DOMManagers/util.spec.ts +26 -0
  316. package/src/canvas/DOMManagers/util.ts +98 -0
  317. package/src/canvas/SelectableCanvas.ts +1506 -0
  318. package/src/canvas/StaticCanvas.ts +1634 -0
  319. package/src/canvas/TextEditingManager.ts +70 -0
  320. package/src/canvas/canvas_gestures.mixin.ts +207 -0
  321. package/src/color/Color.ts +320 -0
  322. package/src/color/color_map.ts +154 -0
  323. package/src/color/constants.ts +107 -0
  324. package/src/color/typedefs.ts +18 -0
  325. package/src/color/util.ts +93 -0
  326. package/src/config.ts +159 -0
  327. package/src/constants.ts +29 -0
  328. package/src/controls/Control.ts +385 -0
  329. package/src/controls/changeWidth.ts +53 -0
  330. package/src/controls/commonControls.ts +105 -0
  331. package/src/controls/controlRendering.ts +138 -0
  332. package/src/controls/drag.ts +32 -0
  333. package/src/controls/fireEvent.ts +18 -0
  334. package/src/controls/index.ts +22 -0
  335. package/src/controls/polyControl.ts +135 -0
  336. package/src/controls/rotate.ts +87 -0
  337. package/src/controls/scale.ts +277 -0
  338. package/src/controls/scaleSkew.ts +92 -0
  339. package/src/controls/skew.ts +243 -0
  340. package/src/controls/util.ts +155 -0
  341. package/src/controls/wrapWithFireEvent.ts +25 -0
  342. package/src/controls/wrapWithFixedAnchor.ts +20 -0
  343. package/src/env/browser.ts +32 -0
  344. package/src/env/index.ts +38 -0
  345. package/src/env/node.ts +58 -0
  346. package/src/env/types.ts +15 -0
  347. package/src/filters/{base_filter.class.js → BaseFilter.ts} +203 -151
  348. package/src/filters/BlendColor.ts +219 -0
  349. package/src/filters/BlendImage.ts +230 -0
  350. package/src/filters/Blur.ts +181 -0
  351. package/src/filters/Boilerplate.ts +94 -0
  352. package/src/filters/Brightness.ts +85 -0
  353. package/src/filters/Canvas2dFilterBackend.ts +65 -0
  354. package/src/filters/ColorMatrix.ts +147 -0
  355. package/src/filters/ColorMatrixFilters.ts +79 -0
  356. package/src/filters/Composed.ts +78 -0
  357. package/src/filters/Contrast.ts +84 -0
  358. package/src/filters/Convolute.ts +186 -0
  359. package/src/filters/FilterBackend.ts +38 -0
  360. package/src/filters/GLProbes/GLProbe.ts +7 -0
  361. package/src/filters/GLProbes/NodeGLProbe.ts +15 -0
  362. package/src/filters/GLProbes/WebGLProbe.ts +47 -0
  363. package/src/filters/Gamma.ts +112 -0
  364. package/src/filters/Grayscale.ts +104 -0
  365. package/src/filters/HueRotation.ts +64 -0
  366. package/src/filters/Invert.ts +101 -0
  367. package/src/filters/Noise.ts +96 -0
  368. package/src/filters/Pixelate.ts +98 -0
  369. package/src/filters/RemoveColor.ts +137 -0
  370. package/src/filters/Resize.ts +540 -0
  371. package/src/filters/Saturation.ts +89 -0
  372. package/src/filters/Vibrance.ts +90 -0
  373. package/src/filters/WebGLFilterBackend.ts +456 -0
  374. package/src/filters/filters.ts +28 -0
  375. package/src/filters/index.ts +12 -0
  376. package/src/filters/shaders/baseFilter.ts +17 -0
  377. package/src/filters/shaders/blendColor.ts +33 -0
  378. package/src/filters/shaders/blendImage.ts +32 -0
  379. package/src/filters/shaders/blur.ts +24 -0
  380. package/src/filters/shaders/brightness.ts +11 -0
  381. package/src/filters/shaders/colorMatrix.ts +12 -0
  382. package/src/filters/shaders/constrast.ts +11 -0
  383. package/src/filters/shaders/convolute.ts +154 -0
  384. package/src/filters/shaders/gamma.ts +15 -0
  385. package/src/filters/shaders/grayscale.ts +36 -0
  386. package/src/filters/shaders/invert.ts +19 -0
  387. package/src/filters/shaders/noise.ts +16 -0
  388. package/src/filters/shaders/pixelate.ts +19 -0
  389. package/src/filters/shaders/removeColor.ts +13 -0
  390. package/src/filters/shaders/saturation.ts +15 -0
  391. package/src/filters/shaders/vibrance.ts +16 -0
  392. package/src/filters/typedefs.ts +59 -0
  393. package/src/filters/utils.ts +7 -0
  394. package/src/gradient/Gradient.ts +409 -0
  395. package/src/gradient/constants.ts +12 -0
  396. package/src/gradient/index.ts +2 -0
  397. package/src/gradient/parser/index.ts +3 -0
  398. package/src/gradient/parser/misc.ts +13 -0
  399. package/src/gradient/parser/parseColorStops.ts +56 -0
  400. package/src/gradient/parser/parseCoords.ts +73 -0
  401. package/src/gradient/typedefs.ts +104 -0
  402. package/src/mixins/{eraser_brush.mixin.js → eraser_brush.mixin.ts} +350 -239
  403. package/src/parkinglot/canvas_animation.mixin.ts +121 -0
  404. package/src/parkinglot/straighten.ts +58 -0
  405. package/src/parser/applyViewboxTransform.ts +158 -0
  406. package/src/parser/attributes.ts +25 -0
  407. package/src/parser/constants.ts +116 -0
  408. package/src/parser/doesSomeParentMatch.ts +18 -0
  409. package/src/parser/elementById.ts +21 -0
  410. package/src/parser/elementMatchesRule.ts +16 -0
  411. package/src/parser/elements_parser.ts +158 -0
  412. package/src/parser/getCSSRules.ts +61 -0
  413. package/src/parser/getGlobalStylesForElement.ts +19 -0
  414. package/src/parser/getGradientDefs.ts +31 -0
  415. package/src/parser/getMultipleNodes.ts +15 -0
  416. package/src/parser/getSvgRegex.ts +3 -0
  417. package/src/parser/hasAncestorWithNodeName.ts +14 -0
  418. package/src/parser/index.ts +8 -0
  419. package/src/parser/loadSVGFromString.ts +29 -0
  420. package/src/parser/loadSVGFromURL.ts +47 -0
  421. package/src/parser/normalizeAttr.ts +10 -0
  422. package/src/parser/normalizeValue.ts +64 -0
  423. package/src/parser/parseAttributes.ts +90 -0
  424. package/src/parser/parseFontDeclaration.ts +44 -0
  425. package/src/parser/parsePointsAttribute.ts +34 -0
  426. package/src/parser/parseSVGDocument.ts +118 -0
  427. package/src/parser/parseStyleAttribute.ts +27 -0
  428. package/src/parser/parseStyleObject.ts +15 -0
  429. package/src/parser/parseStyleString.ts +16 -0
  430. package/src/parser/parseTransformAttribute.ts +94 -0
  431. package/src/parser/parseUseDirectives.ts +78 -0
  432. package/src/parser/percent.ts +27 -0
  433. package/src/parser/recursivelyParseGradientsXlink.ts +42 -0
  434. package/src/parser/selectorMatches.ts +25 -0
  435. package/src/parser/setStrokeFillOpacity.ts +40 -0
  436. package/src/parser/typedefs.ts +13 -0
  437. package/src/shapes/ActiveSelection.ts +192 -0
  438. package/src/shapes/Circle.ts +236 -0
  439. package/src/shapes/Ellipse.ts +177 -0
  440. package/src/shapes/Group.ts +1103 -0
  441. package/src/shapes/IText/DraggableTextDelegate.ts +385 -0
  442. package/src/shapes/IText/IText.ts +696 -0
  443. package/src/shapes/IText/ITextBehavior.ts +1073 -0
  444. package/src/shapes/IText/ITextClickBehavior.ts +292 -0
  445. package/src/shapes/IText/ITextKeyBehavior.ts +675 -0
  446. package/src/shapes/IText/constants.ts +53 -0
  447. package/src/shapes/Image.ts +848 -0
  448. package/src/shapes/Line.ts +285 -0
  449. package/src/shapes/Object/AnimatableObject.ts +103 -0
  450. package/src/shapes/Object/FabricObject.ts +29 -0
  451. package/src/shapes/Object/FabricObjectSVGExportMixin.ts +278 -0
  452. package/src/shapes/Object/InteractiveObject.ts +669 -0
  453. package/src/shapes/Object/Object.ts +1589 -0
  454. package/src/shapes/Object/ObjectGeometry.ts +814 -0
  455. package/src/shapes/Object/ObjectOrigin.ts +277 -0
  456. package/src/shapes/Object/StackedObject.ts +206 -0
  457. package/src/shapes/Object/defaultValues.ts +110 -0
  458. package/src/shapes/Object/types/BaseProps.ts +96 -0
  459. package/src/shapes/Object/types/BorderProps.ts +40 -0
  460. package/src/shapes/Object/types/ControlProps.ts +69 -0
  461. package/src/shapes/Object/types/FabricObjectProps.ts +111 -0
  462. package/src/shapes/Object/types/FillStrokeProps.ts +90 -0
  463. package/src/shapes/Object/types/LockInteractionProps.ts +57 -0
  464. package/src/shapes/Object/types/ObjectProps.ts +49 -0
  465. package/src/shapes/Object/types/SerializedObjectProps.ts +73 -0
  466. package/src/shapes/Object/types/index.ts +8 -0
  467. package/src/shapes/Path.ts +434 -0
  468. package/src/shapes/Polygon.ts +22 -0
  469. package/src/shapes/Polyline.ts +364 -0
  470. package/src/shapes/Rect.ts +230 -0
  471. package/src/shapes/Text/StyledText.ts +323 -0
  472. package/src/shapes/Text/Text.ts +1891 -0
  473. package/src/shapes/Text/TextSVGExportMixin.ts +289 -0
  474. package/src/shapes/Text/constants.ts +111 -0
  475. package/src/shapes/Textbox.ts +526 -0
  476. package/src/shapes/Triangle.ts +62 -0
  477. package/src/typedefs.ts +121 -0
  478. package/src/util/animation/AnimationBase.ts +166 -0
  479. package/src/util/animation/AnimationFrameProvider.ts +9 -0
  480. package/src/util/animation/AnimationRegistry.ts +58 -0
  481. package/src/util/animation/ArrayAnimation.ts +27 -0
  482. package/src/util/animation/ColorAnimation.ts +74 -0
  483. package/src/util/animation/ValueAnimation.ts +29 -0
  484. package/src/util/animation/animate.ts +74 -0
  485. package/src/util/animation/easing.ts +327 -0
  486. package/src/util/animation/index.ts +2 -0
  487. package/src/util/animation/types.ts +136 -0
  488. package/src/util/applyMixins.ts +22 -0
  489. package/src/util/dom_event.ts +28 -0
  490. package/src/util/dom_misc.ts +44 -0
  491. package/src/util/dom_request.ts +64 -0
  492. package/src/util/dom_style.ts +20 -0
  493. package/src/util/index.ts +106 -0
  494. package/src/util/internals/cleanupSvgAttribute.test.ts +16 -0
  495. package/src/util/internals/cleanupSvgAttribute.ts +8 -0
  496. package/src/util/internals/cloneDeep.test.ts +16 -0
  497. package/src/util/internals/cloneDeep.ts +2 -0
  498. package/src/util/internals/getRandomInt.test.ts +33 -0
  499. package/src/util/internals/getRandomInt.ts +8 -0
  500. package/src/util/internals/ifNaN.ts +9 -0
  501. package/src/util/internals/index.ts +3 -0
  502. package/src/util/internals/removeFromArray.ts +14 -0
  503. package/src/util/internals/uid.ts +3 -0
  504. package/src/util/lang_string.ts +79 -0
  505. package/src/util/misc/boundingBoxFromPoints.ts +38 -0
  506. package/src/util/misc/capValue.ts +2 -0
  507. package/src/util/misc/cos.ts +24 -0
  508. package/src/util/misc/dom.ts +55 -0
  509. package/src/util/misc/findScaleTo.ts +29 -0
  510. package/src/util/misc/groupSVGElements.ts +15 -0
  511. package/src/util/misc/isTransparent.ts +28 -0
  512. package/src/util/misc/matrix.ts +313 -0
  513. package/src/util/misc/mergeClipPaths.ts +40 -0
  514. package/src/util/misc/objectEnlive.ts +174 -0
  515. package/src/util/misc/objectTransforms.ts +130 -0
  516. package/src/util/misc/pick.ts +29 -0
  517. package/src/util/misc/planeChange.ts +127 -0
  518. package/src/util/misc/projectStroke/StrokeLineCapProjections.ts +113 -0
  519. package/src/util/misc/projectStroke/StrokeLineJoinProjections.ts +227 -0
  520. package/src/util/misc/projectStroke/StrokeProjectionsBase.ts +76 -0
  521. package/src/util/misc/projectStroke/index.ts +55 -0
  522. package/src/util/misc/projectStroke/types.ts +24 -0
  523. package/src/util/misc/radiansDegreesConversion.ts +18 -0
  524. package/src/util/misc/resolveOrigin.ts +22 -0
  525. package/src/util/misc/rotatePoint.ts +15 -0
  526. package/src/util/misc/sin.ts +26 -0
  527. package/src/util/misc/svgParsing.ts +171 -0
  528. package/src/util/misc/textStyles.ts +132 -0
  529. package/src/util/misc/toFixed.ts +8 -0
  530. package/src/util/misc/vectors.ts +83 -0
  531. package/src/util/path/index.ts +1039 -0
  532. package/src/util/path/regex.ts +39 -0
  533. package/src/util/path/typechecks.ts +145 -0
  534. package/src/util/path/typedefs.ts +305 -0
  535. package/src/util/transform_matrix_removal.ts +61 -0
  536. package/src/util/typeAssertions.ts +78 -0
  537. package/tsconfig.json +106 -0
  538. package/HEADER.js +0 -203
  539. package/build.js +0 -287
  540. package/dist/fabric.js +0 -31187
  541. package/dist/fabric.min.js +0 -1
  542. package/old-travis-reference.yml +0 -97
  543. package/src/brushes/circle_brush.class.js +0 -144
  544. package/src/brushes/pattern_brush.class.js +0 -61
  545. package/src/brushes/pencil_brush.class.js +0 -310
  546. package/src/brushes/spray_brush.class.js +0 -219
  547. package/src/canvas.class.js +0 -1312
  548. package/src/color.class.js +0 -636
  549. package/src/control.class.js +0 -339
  550. package/src/controls.actions.js +0 -740
  551. package/src/controls.render.js +0 -99
  552. package/src/elements_parser.js +0 -152
  553. package/src/filters/2d_backend.class.js +0 -65
  554. package/src/filters/blendcolor_filter.class.js +0 -251
  555. package/src/filters/blendimage_filter.class.js +0 -247
  556. package/src/filters/blur_filter.class.js +0 -217
  557. package/src/filters/brightness_filter.class.js +0 -113
  558. package/src/filters/colormatrix_filter.class.js +0 -159
  559. package/src/filters/composed_filter.class.js +0 -72
  560. package/src/filters/contrast_filter.class.js +0 -113
  561. package/src/filters/convolute_filter.class.js +0 -352
  562. package/src/filters/filter_boilerplate.js +0 -111
  563. package/src/filters/filter_generator.js +0 -85
  564. package/src/filters/gamma_filter.class.js +0 -136
  565. package/src/filters/grayscale_filter.class.js +0 -154
  566. package/src/filters/hue_rotation.class.js +0 -107
  567. package/src/filters/invert_filter.class.js +0 -111
  568. package/src/filters/noise_filter.class.js +0 -134
  569. package/src/filters/pixelate_filter.class.js +0 -137
  570. package/src/filters/removecolor_filter.class.js +0 -173
  571. package/src/filters/resize_filter.class.js +0 -490
  572. package/src/filters/saturate_filter.class.js +0 -119
  573. package/src/filters/vibrance_filter.class.js +0 -122
  574. package/src/filters/webgl_backend.class.js +0 -396
  575. package/src/globalFabric.js +0 -4
  576. package/src/gradient.class.js +0 -490
  577. package/src/intersection.class.js +0 -172
  578. package/src/log.js +0 -11
  579. package/src/mixins/animation.mixin.js +0 -231
  580. package/src/mixins/canvas_dataurl_exporter.mixin.js +0 -97
  581. package/src/mixins/canvas_events.mixin.js +0 -974
  582. package/src/mixins/canvas_gestures.mixin.js +0 -149
  583. package/src/mixins/canvas_grouping.mixin.js +0 -177
  584. package/src/mixins/canvas_serialization.mixin.js +0 -228
  585. package/src/mixins/collection.mixin.js +0 -170
  586. package/src/mixins/default_controls.js +0 -114
  587. package/src/mixins/itext.svg_export.js +0 -241
  588. package/src/mixins/itext_behavior.mixin.js +0 -940
  589. package/src/mixins/itext_click_behavior.mixin.js +0 -278
  590. package/src/mixins/itext_key_behavior.mixin.js +0 -694
  591. package/src/mixins/object.svg_export.js +0 -258
  592. package/src/mixins/object_geometry.mixin.js +0 -683
  593. package/src/mixins/object_interactivity.mixin.js +0 -314
  594. package/src/mixins/object_origin.mixin.js +0 -255
  595. package/src/mixins/object_stacking.mixin.js +0 -80
  596. package/src/mixins/object_straightening.mixin.js +0 -80
  597. package/src/mixins/observable.mixin.js +0 -141
  598. package/src/mixins/shared_methods.mixin.js +0 -94
  599. package/src/mixins/stateful.mixin.js +0 -107
  600. package/src/mixins/text_style.mixin.js +0 -324
  601. package/src/parser.js +0 -1090
  602. package/src/pattern.class.js +0 -189
  603. package/src/point.class.js +0 -337
  604. package/src/shadow.class.js +0 -195
  605. package/src/shapes/active_selection.class.js +0 -155
  606. package/src/shapes/circle.class.js +0 -210
  607. package/src/shapes/ellipse.class.js +0 -181
  608. package/src/shapes/group.class.js +0 -593
  609. package/src/shapes/image.class.js +0 -764
  610. package/src/shapes/itext.class.js +0 -526
  611. package/src/shapes/line.class.js +0 -324
  612. package/src/shapes/object.class.js +0 -2008
  613. package/src/shapes/path.class.js +0 -384
  614. package/src/shapes/polygon.class.js +0 -81
  615. package/src/shapes/polyline.class.js +0 -268
  616. package/src/shapes/rect.class.js +0 -187
  617. package/src/shapes/text.class.js +0 -1696
  618. package/src/shapes/textbox.class.js +0 -461
  619. package/src/shapes/triangle.class.js +0 -93
  620. package/src/static_canvas.class.js +0 -1881
  621. package/src/util/anim_ease.js +0 -398
  622. package/src/util/animate.js +0 -254
  623. package/src/util/animate_color.js +0 -74
  624. package/src/util/dom_event.js +0 -50
  625. package/src/util/dom_misc.js +0 -300
  626. package/src/util/dom_request.js +0 -54
  627. package/src/util/dom_style.js +0 -70
  628. package/src/util/lang_array.js +0 -94
  629. package/src/util/lang_class.js +0 -115
  630. package/src/util/lang_object.js +0 -75
  631. package/src/util/lang_string.js +0 -110
  632. package/src/util/misc.js +0 -1330
  633. package/src/util/named_accessors.mixin.js +0 -428
  634. package/src/util/path.js +0 -829
@@ -0,0 +1,160 @@
1
+ import type { T2DPipelineState, TWebGLAttributeLocationMap, TWebGLPipelineState, TWebGLProgramCacheItem, TWebGLUniformLocationMap } from './typedefs';
2
+ import type { Abortable } from '../typedefs';
3
+ export declare class BaseFilter {
4
+ /**
5
+ * Filter type
6
+ * @param {String} type
7
+ * @default
8
+ */
9
+ get type(): string;
10
+ /**
11
+ * The class type. Used to identify which class this is.
12
+ * This is used for serialization purposes and internally it can be used
13
+ * to identify classes. As a developer you could use `instance of Class`
14
+ * but to avoid importing all the code and blocking tree shaking we try
15
+ * to avoid doing that.
16
+ */
17
+ static type: string;
18
+ static defaults: Record<string, any>;
19
+ /**
20
+ * Array of attributes to send with buffers. do not modify
21
+ * @private
22
+ */
23
+ vertexSource: string;
24
+ /**
25
+ * Name of the parameter that can be changed in the filter.
26
+ * Some filters have more than one parameter and there is no
27
+ * mainParameter
28
+ * @private
29
+ */
30
+ mainParameter?: keyof this | undefined;
31
+ /**
32
+ * Constructor
33
+ * @param {Object} [options] Options object
34
+ */
35
+ constructor({ ...options }?: Record<string, any>);
36
+ protected getFragmentSource(): string;
37
+ /**
38
+ * Compile this filter's shader program.
39
+ *
40
+ * @param {WebGLRenderingContext} gl The GL canvas context to use for shader compilation.
41
+ * @param {String} fragmentSource fragmentShader source for compilation
42
+ * @param {String} vertexSource vertexShader source for compilation
43
+ */
44
+ createProgram(gl: WebGLRenderingContext, fragmentSource?: string, vertexSource?: string): {
45
+ program: WebGLProgram;
46
+ attributeLocations: TWebGLAttributeLocationMap;
47
+ uniformLocations: TWebGLUniformLocationMap;
48
+ };
49
+ /**
50
+ * Return a map of attribute names to WebGLAttributeLocation objects.
51
+ *
52
+ * @param {WebGLRenderingContext} gl The canvas context used to compile the shader program.
53
+ * @param {WebGLShaderProgram} program The shader program from which to take attribute locations.
54
+ * @returns {Object} A map of attribute names to attribute locations.
55
+ */
56
+ getAttributeLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLAttributeLocationMap;
57
+ /**
58
+ * Return a map of uniform names to WebGLUniformLocation objects.
59
+ *
60
+ * Intended to be overridden by subclasses.
61
+ *
62
+ * @param {WebGLRenderingContext} gl The canvas context used to compile the shader program.
63
+ * @param {WebGLShaderProgram} program The shader program from which to take uniform locations.
64
+ * @returns {Object} A map of uniform names to uniform locations.
65
+ */
66
+ getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
67
+ /**
68
+ * Send attribute data from this filter to its shader program on the GPU.
69
+ *
70
+ * @param {WebGLRenderingContext} gl The canvas context used to compile the shader program.
71
+ * @param {Object} attributeLocations A map of shader attribute names to their locations.
72
+ */
73
+ sendAttributeData(gl: WebGLRenderingContext, attributeLocations: Record<string, number>, aPositionData: Float32Array): void;
74
+ _setupFrameBuffer(options: TWebGLPipelineState): void;
75
+ _swapTextures(options: TWebGLPipelineState): void;
76
+ /**
77
+ * Generic isNeutral implementation for one parameter based filters.
78
+ * Used only in image applyFilters to discard filters that will not have an effect
79
+ * on the image
80
+ * Other filters may need their own version ( ColorMatrix, HueRotation, gamma, ComposedFilter )
81
+ * @param {Object} options
82
+ **/
83
+ isNeutralState(options?: any): boolean;
84
+ /**
85
+ * Apply this filter to the input image data provided.
86
+ *
87
+ * Determines whether to use WebGL or Canvas2D based on the options.webgl flag.
88
+ *
89
+ * @param {Object} options
90
+ * @param {Number} options.passes The number of filters remaining to be executed
91
+ * @param {Boolean} options.webgl Whether to use webgl to render the filter.
92
+ * @param {WebGLTexture} options.sourceTexture The texture setup as the source to be filtered.
93
+ * @param {WebGLTexture} options.targetTexture The texture where filtered output should be drawn.
94
+ * @param {WebGLRenderingContext} options.context The GL context used for rendering.
95
+ * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.
96
+ */
97
+ applyTo(options: TWebGLPipelineState | T2DPipelineState): void;
98
+ applyTo2d(options: T2DPipelineState): void;
99
+ /**
100
+ * Returns a string that represent the current selected shader code for the filter.
101
+ * Used to force recompilation when parameters change or to retrieve the shader from cache
102
+ * @type string
103
+ **/
104
+ getCacheKey(): string;
105
+ /**
106
+ * Retrieves the cached shader.
107
+ * @param {Object} options
108
+ * @param {WebGLRenderingContext} options.context The GL context used for rendering.
109
+ * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.
110
+ * @return {WebGLProgram} the compiled program shader
111
+ */
112
+ retrieveShader(options: TWebGLPipelineState): TWebGLProgramCacheItem;
113
+ /**
114
+ * Apply this filter using webgl.
115
+ *
116
+ * @param {Object} options
117
+ * @param {Number} options.passes The number of filters remaining to be executed
118
+ * @param {Boolean} options.webgl Whether to use webgl to render the filter.
119
+ * @param {WebGLTexture} options.originalTexture The texture of the original input image.
120
+ * @param {WebGLTexture} options.sourceTexture The texture setup as the source to be filtered.
121
+ * @param {WebGLTexture} options.targetTexture The texture where filtered output should be drawn.
122
+ * @param {WebGLRenderingContext} options.context The GL context used for rendering.
123
+ * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.
124
+ */
125
+ applyToWebGL(options: TWebGLPipelineState): void;
126
+ bindAdditionalTexture(gl: WebGLRenderingContext, texture: WebGLTexture, textureUnit: number): void;
127
+ unbindAdditionalTexture(gl: WebGLRenderingContext, textureUnit: number): void;
128
+ getMainParameter(): this[keyof this] | undefined;
129
+ setMainParameter(value: any): void;
130
+ /**
131
+ * Send uniform data from this filter to its shader program on the GPU.
132
+ *
133
+ * Intended to be overridden by subclasses.
134
+ *
135
+ * @param {WebGLRenderingContext} gl The canvas context used to compile the shader program.
136
+ * @param {Object} uniformLocations A map of shader uniform names to their locations.
137
+ */
138
+ sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
139
+ /**
140
+ * If needed by a 2d filter, this functions can create an helper canvas to be used
141
+ * remember that options.targetCanvas is available for use till end of chain.
142
+ */
143
+ createHelpLayer(options: T2DPipelineState): void;
144
+ /**
145
+ * Returns object representation of an instance
146
+ * @return {Object} Object representation of an instance
147
+ */
148
+ toObject(): {
149
+ type: string;
150
+ };
151
+ /**
152
+ * Returns a JSON representation of an instance
153
+ * @return {Object} JSON
154
+ */
155
+ toJSON(): {
156
+ type: string;
157
+ };
158
+ static fromObject({ type, ...filterOptions }: Record<string, any>, options: Abortable): Promise<BaseFilter>;
159
+ }
160
+ //# sourceMappingURL=BaseFilter.d.ts.map
@@ -0,0 +1,81 @@
1
+ import type { TClassProperties } from '../typedefs';
2
+ import { BaseFilter } from './BaseFilter';
3
+ import type { 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
+ static type: string;
46
+ getCacheKey(): string;
47
+ protected getFragmentSource(): string;
48
+ /**
49
+ * Apply the Blend operation to a Uint8ClampedArray representing the pixels of an image.
50
+ *
51
+ * @param {Object} options
52
+ * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.
53
+ */
54
+ applyTo2d({ imageData: { data } }: T2DPipelineState): void;
55
+ /**
56
+ * Return WebGL uniform locations for this filter's shader.
57
+ *
58
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
59
+ * @param {WebGLShaderProgram} program This filter's compiled shader program.
60
+ */
61
+ getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
62
+ /**
63
+ * Send data from this filter to its shader program's uniforms.
64
+ *
65
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
66
+ * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
67
+ */
68
+ sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
69
+ /**
70
+ * Returns object representation of an instance
71
+ * @return {Object} Object representation of an instance
72
+ */
73
+ toObject(): {
74
+ type: string;
75
+ color: string;
76
+ mode: TBlendMode;
77
+ alpha: number;
78
+ };
79
+ }
80
+ export {};
81
+ //# sourceMappingURL=BlendColor.d.ts.map
@@ -0,0 +1,93 @@
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 type { 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 type: string;
38
+ static defaults: Partial<TClassProperties<BlendImage>>;
39
+ getCacheKey(): string;
40
+ getFragmentSource(): string;
41
+ applyToWebGL(options: TWebGLPipelineState): void;
42
+ createTexture(backend: WebGLFilterBackend, image: Image): WebGLTexture | null;
43
+ /**
44
+ * Calculate a transformMatrix to adapt the image to blend over
45
+ * @param {Object} options
46
+ * @param {WebGLRenderingContext} options.context The GL context used for rendering.
47
+ * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.
48
+ */
49
+ calculateMatrix(): number[];
50
+ /**
51
+ * Apply the Blend operation to a Uint8ClampedArray representing the pixels of an image.
52
+ *
53
+ * @param {Object} options
54
+ * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.
55
+ */
56
+ applyTo2d({ imageData: { data, width, height }, filterBackend: { resources }, }: T2DPipelineState): void;
57
+ /**
58
+ * Return WebGL uniform locations for this filter's shader.
59
+ *
60
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
61
+ * @param {WebGLShaderProgram} program This filter's compiled shader program.
62
+ */
63
+ getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
64
+ /**
65
+ * Send data from this filter to its shader program's uniforms.
66
+ *
67
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
68
+ * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
69
+ */
70
+ sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
71
+ /**
72
+ * Returns object representation of an instance
73
+ * @return {Object} Object representation of an instance
74
+ */
75
+ toObject(): {
76
+ type: string;
77
+ 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;
78
+ mode: TBlendImageMode;
79
+ alpha: number;
80
+ };
81
+ /**
82
+ * Create filter instance from an object representation
83
+ * @static
84
+ * @param {object} object Object to create an instance from
85
+ * @param {object} [options]
86
+ * @param {AbortSignal} [options.signal] handle aborting image loading, see https://developer.mozilla.org/en-US/docs/Web/API/AbortController/signal
87
+ * @returns {Promise<BlendImage>}
88
+ */
89
+ static fromObject({ type, image, ...filterOptions }: Record<string, any>, options: {
90
+ signal: AbortSignal;
91
+ }): Promise<BaseFilter>;
92
+ }
93
+ //# sourceMappingURL=BlendImage.d.ts.map
@@ -0,0 +1,52 @@
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 type: string;
27
+ static defaults: Partial<TClassProperties<Blur>>;
28
+ getFragmentSource(): string;
29
+ applyTo(options: TWebGLPipelineState | T2DPipelineState): void;
30
+ applyTo2d(options: T2DPipelineState): void;
31
+ simpleBlur({ ctx, imageData, filterBackend: { resources }, }: T2DPipelineState): ImageData;
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
+ * choose right value of image percentage to blur with
48
+ * @returns {Array} a numeric array with delta values
49
+ */
50
+ chooseRightDelta(): number[];
51
+ }
52
+ //# sourceMappingURL=Blur.d.ts.map
@@ -0,0 +1,48 @@
1
+ import type { TClassProperties } from '../typedefs';
2
+ import { BaseFilter } from './BaseFilter';
3
+ import type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';
4
+ export declare const 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,48 @@
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 type: string;
24
+ static defaults: Partial<TClassProperties<Brightness>>;
25
+ getFragmentSource(): string;
26
+ /**
27
+ * Apply the Brightness operation to a Uint8ClampedArray representing the pixels of an image.
28
+ *
29
+ * @param {Object} options
30
+ * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.
31
+ */
32
+ applyTo2d({ imageData: { data } }: T2DPipelineState): void;
33
+ /**
34
+ * Return WebGL uniform locations for this filter's shader.
35
+ *
36
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
37
+ * @param {WebGLShaderProgram} program This filter's compiled shader program.
38
+ */
39
+ getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
40
+ /**
41
+ * Send data from this filter to its shader program's uniforms.
42
+ *
43
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
44
+ * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
45
+ */
46
+ sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
47
+ }
48
+ //# sourceMappingURL=Brightness.d.ts.map
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Canvas 2D filter backend.
3
+ */
4
+ import type { BaseFilter } from './BaseFilter';
5
+ import type { 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,64 @@
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 type: string;
39
+ static defaults: Partial<TClassProperties<ColorMatrix>>;
40
+ setOptions({ matrix, ...options }: Record<string, any>): void;
41
+ getFragmentSource(): string;
42
+ /**
43
+ * Apply the ColorMatrix operation to a Uint8Array representing the pixels of an image.
44
+ *
45
+ * @param {Object} options
46
+ * @param {ImageData} options.imageData The Uint8Array to be filtered.
47
+ */
48
+ applyTo2d(options: T2DPipelineState): void;
49
+ /**
50
+ * Return WebGL uniform locations for this filter's shader.
51
+ *
52
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
53
+ * @param {WebGLShaderProgram} program This filter's compiled shader program.
54
+ */
55
+ getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
56
+ /**
57
+ * Send data from this filter to its shader program's uniforms.
58
+ *
59
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
60
+ * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
61
+ */
62
+ sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
63
+ }
64
+ //# sourceMappingURL=ColorMatrix.d.ts.map