fabric 5.3.0 → 6.0.0-beta3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (604) hide show
  1. package/.babelrc +11 -0
  2. package/.babelrcAlt +19 -0
  3. package/.browserslistrc +5 -0
  4. package/.eslintignore +3 -0
  5. package/.eslintrc.js +43 -0
  6. package/.eslintrc.json +38 -46
  7. package/.eslintrc_tests +12 -0
  8. package/.gitattributes +2 -0
  9. package/.gitpod.yml +17 -1
  10. package/.prettierignore +19 -0
  11. package/.prettierrc +4 -0
  12. package/CHANGELOG.md +532 -189
  13. package/CONTRIBUTING.md +224 -59
  14. package/README.md +200 -235
  15. package/bower.json +1 -3
  16. package/dist/fabric.d.ts +42 -0
  17. package/dist/index.d.ts +2 -0
  18. package/dist/index.js +27582 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/index.min.js +1 -0
  21. package/dist/index.mjs +27519 -0
  22. package/dist/index.mjs.map +1 -0
  23. package/dist/index.node.cjs +27663 -0
  24. package/dist/index.node.cjs.map +1 -0
  25. package/dist/index.node.d.ts +14 -0
  26. package/dist/index.node.mjs +27606 -0
  27. package/dist/index.node.mjs.map +1 -0
  28. package/dist/src/ClassRegistry.d.ts +13 -0
  29. package/dist/src/Collection.d.ts +136 -0
  30. package/dist/src/CommonMethods.d.ts +32 -0
  31. package/dist/src/EventTypeDefs.d.ts +227 -0
  32. package/dist/src/Intersection.d.ts +112 -0
  33. package/dist/src/Observable.d.ts +60 -0
  34. package/dist/src/Pattern.d.ts +113 -0
  35. package/dist/src/Point.d.ts +232 -0
  36. package/dist/src/Shadow.d.ts +97 -0
  37. package/dist/src/brushes/BaseBrush.d.ts +105 -0
  38. package/dist/src/brushes/CircleBrush.d.ts +49 -0
  39. package/dist/src/brushes/PatternBrush.d.ts +23 -0
  40. package/dist/src/brushes/PencilBrush.d.ts +92 -0
  41. package/dist/src/brushes/SprayBrush.d.ts +79 -0
  42. package/dist/src/cache.d.ts +47 -0
  43. package/dist/src/canvas/Canvas.d.ts +548 -0
  44. package/dist/src/canvas/SelectableCanvas.d.ts +754 -0
  45. package/dist/src/canvas/StaticCanvas.d.ts +778 -0
  46. package/dist/src/canvas/TextEditingManager.d.ts +17 -0
  47. package/dist/src/canvas/canvas_gestures.mixin.d.ts +2 -0
  48. package/dist/src/color/Color.d.ts +174 -0
  49. package/dist/src/color/color_map.d.ts +155 -0
  50. package/dist/src/color/constants.d.ts +22 -0
  51. package/dist/src/color/util.d.ts +12 -0
  52. package/dist/src/config.d.ts +115 -0
  53. package/dist/src/constants.d.ts +14 -0
  54. package/dist/src/controls/Control.d.ts +228 -0
  55. package/dist/src/controls/changeWidth.d.ts +13 -0
  56. package/dist/src/controls/commonControls.d.ts +28 -0
  57. package/dist/src/controls/controlRendering.d.ts +29 -0
  58. package/dist/src/controls/drag.d.ts +12 -0
  59. package/dist/src/controls/index.d.ts +13 -0
  60. package/dist/src/controls/polyControl.d.ts +5 -0
  61. package/dist/src/controls/rotate.d.ts +12 -0
  62. package/dist/src/controls/scale.d.ts +47 -0
  63. package/dist/src/controls/scaleSkew.d.ts +39 -0
  64. package/dist/src/controls/skew.d.ts +33 -0
  65. package/dist/src/controls/util.d.ts +41 -0
  66. package/dist/src/controls/wrapWithFireEvent.d.ts +8 -0
  67. package/dist/src/controls/wrapWithFixedAnchor.d.ts +9 -0
  68. package/dist/src/env/browser.d.ts +3 -0
  69. package/dist/src/env/index.d.ts +15 -0
  70. package/dist/src/env/node.d.ts +5 -0
  71. package/dist/src/env/types.d.ts +15 -0
  72. package/dist/src/filters/BaseFilter.d.ts +153 -0
  73. package/dist/src/filters/BlendColor.d.ts +80 -0
  74. package/dist/src/filters/BlendImage.d.ts +92 -0
  75. package/dist/src/filters/Blur.d.ts +51 -0
  76. package/dist/src/filters/Boilerplate.d.ts +48 -0
  77. package/dist/src/filters/Brightness.d.ts +47 -0
  78. package/dist/src/filters/Canvas2dFilterBackend.d.ts +27 -0
  79. package/dist/src/filters/ColorMatrix.d.ts +63 -0
  80. package/dist/src/filters/ColorMatrixFilters.d.ts +545 -0
  81. package/dist/src/filters/Composed.d.ts +45 -0
  82. package/dist/src/filters/Contrast.d.ts +45 -0
  83. package/dist/src/filters/Convolute.d.ts +82 -0
  84. package/dist/src/filters/FilterBackend.d.ts +14 -0
  85. package/dist/src/filters/GLProbes/GLProbe.d.ts +11 -0
  86. package/dist/src/filters/GLProbes/NodeGLProbe.d.ts +11 -0
  87. package/dist/src/filters/GLProbes/WebGLProbe.d.ts +20 -0
  88. package/dist/src/filters/Gamma.d.ts +54 -0
  89. package/dist/src/filters/Grayscale.d.ts +46 -0
  90. package/dist/src/filters/HueRotation.d.ts +24 -0
  91. package/dist/src/filters/Invert.d.ts +55 -0
  92. package/dist/src/filters/Noise.d.ts +54 -0
  93. package/dist/src/filters/Pixelate.d.ts +44 -0
  94. package/dist/src/filters/RemoveColor.d.ts +63 -0
  95. package/dist/src/filters/Resize.d.ts +136 -0
  96. package/dist/src/filters/Saturation.d.ts +48 -0
  97. package/dist/src/filters/Vibrance.d.ts +48 -0
  98. package/dist/src/filters/WebGLFilterBackend.d.ts +126 -0
  99. package/dist/src/filters/filters.d.ts +21 -0
  100. package/dist/src/filters/index.d.ts +5 -0
  101. package/dist/src/filters/shaders/baseFilter.d.ts +4 -0
  102. package/dist/src/filters/shaders/blendColor.d.ts +13 -0
  103. package/dist/src/filters/shaders/blendImage.d.ts +3 -0
  104. package/dist/src/filters/shaders/blur.d.ts +2 -0
  105. package/dist/src/filters/shaders/brightness.d.ts +2 -0
  106. package/dist/src/filters/shaders/colorMatrix.d.ts +2 -0
  107. package/dist/src/filters/shaders/constrast.d.ts +2 -0
  108. package/dist/src/filters/shaders/convolute.d.ts +11 -0
  109. package/dist/src/filters/shaders/gamma.d.ts +2 -0
  110. package/dist/src/filters/shaders/grayscale.d.ts +3 -0
  111. package/dist/src/filters/shaders/invert.d.ts +2 -0
  112. package/dist/src/filters/shaders/noise.d.ts +2 -0
  113. package/dist/src/filters/shaders/pixelate.d.ts +2 -0
  114. package/dist/src/filters/shaders/removeColor.d.ts +2 -0
  115. package/dist/src/filters/shaders/saturation.d.ts +2 -0
  116. package/dist/src/filters/shaders/vibrance.d.ts +2 -0
  117. package/dist/src/filters/typedefs.d.ts +49 -0
  118. package/dist/src/gradient/Gradient.d.ts +149 -0
  119. package/dist/src/gradient/constants.d.ts +15 -0
  120. package/dist/src/gradient/parser/index.d.ts +4 -0
  121. package/dist/src/gradient/parser/misc.d.ts +4 -0
  122. package/dist/src/gradient/parser/parseColorStops.d.ts +3 -0
  123. package/dist/src/gradient/parser/parseCoords.d.ts +17 -0
  124. package/dist/src/gradient/typedefs.d.ts +93 -0
  125. package/dist/src/mixins/eraser_brush.mixin.d.ts +2 -0
  126. package/dist/src/parkinglot/canvas_animation.mixin.d.ts +2 -0
  127. package/dist/src/parkinglot/straighten.d.ts +2 -0
  128. package/dist/src/parser/applyViewboxTransform.d.ts +5 -0
  129. package/dist/src/parser/attributes.d.ts +6 -0
  130. package/dist/src/parser/constants.d.ts +53 -0
  131. package/dist/src/parser/doesSomeParentMatch.d.ts +2 -0
  132. package/dist/src/parser/elementById.d.ts +6 -0
  133. package/dist/src/parser/elementMatchesRule.d.ts +5 -0
  134. package/dist/src/parser/elements_parser.d.ts +3 -0
  135. package/dist/src/parser/getCSSRules.d.ts +7 -0
  136. package/dist/src/parser/getGlobalStylesForElement.d.ts +5 -0
  137. package/dist/src/parser/getGradientDefs.d.ts +7 -0
  138. package/dist/src/parser/getMultipleNodes.d.ts +2 -0
  139. package/dist/src/parser/getSvgRegex.d.ts +2 -0
  140. package/dist/src/parser/hasAncestorWithNodeName.d.ts +2 -0
  141. package/dist/src/parser/index.d.ts +10 -0
  142. package/dist/src/parser/loadSVGFromString.d.ts +12 -0
  143. package/dist/src/parser/loadSVGFromURL.d.ts +13 -0
  144. package/dist/src/parser/normalizeAttr.d.ts +2 -0
  145. package/dist/src/parser/normalizeValue.d.ts +2 -0
  146. package/dist/src/parser/parseAttributes.d.ts +9 -0
  147. package/dist/src/parser/parseElements.d.ts +11 -0
  148. package/dist/src/parser/parseFontDeclaration.d.ts +10 -0
  149. package/dist/src/parser/parsePointsAttribute.d.ts +12 -0
  150. package/dist/src/parser/parseSVGDocument.d.ts +15 -0
  151. package/dist/src/parser/parseStyleAttribute.d.ts +9 -0
  152. package/dist/src/parser/parseStyleObject.d.ts +2 -0
  153. package/dist/src/parser/parseStyleString.d.ts +2 -0
  154. package/dist/src/parser/parseTransformAttribute.d.ts +10 -0
  155. package/dist/src/parser/parseUseDirectives.d.ts +2 -0
  156. package/dist/src/parser/percent.d.ts +9 -0
  157. package/dist/src/parser/recursivelyParseGradientsXlink.d.ts +2 -0
  158. package/dist/src/parser/rotateMatrix.d.ts +2 -0
  159. package/dist/src/parser/scaleMatrix.d.ts +2 -0
  160. package/dist/src/parser/selectorMatches.d.ts +2 -0
  161. package/dist/src/parser/setStrokeFillOpacity.d.ts +6 -0
  162. package/dist/src/parser/skewMatrix.d.ts +2 -0
  163. package/dist/src/parser/translateMatrix.d.ts +2 -0
  164. package/dist/src/shapes/ActiveSelection.d.ts +82 -0
  165. package/dist/src/shapes/Circle.d.ts +99 -0
  166. package/dist/src/shapes/Ellipse.d.ts +84 -0
  167. package/dist/src/shapes/Group.d.ts +408 -0
  168. package/dist/src/shapes/IText/DraggableTextDelegate.d.ts +78 -0
  169. package/dist/src/shapes/IText/IText.d.ts +335 -0
  170. package/dist/src/shapes/IText/ITextBehavior.d.ts +287 -0
  171. package/dist/src/shapes/IText/ITextClickBehavior.d.ts +83 -0
  172. package/dist/src/shapes/IText/ITextKeyBehavior.d.ts +195 -0
  173. package/dist/src/shapes/IText/constants.d.ts +13 -0
  174. package/dist/src/shapes/Image.d.ts +311 -0
  175. package/dist/src/shapes/Line.d.ts +126 -0
  176. package/dist/src/shapes/Object/AnimatableObject.d.ts +33 -0
  177. package/dist/src/shapes/Object/FabricObject.d.ts +11 -0
  178. package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts +74 -0
  179. package/dist/src/shapes/Object/InteractiveObject.d.ts +296 -0
  180. package/dist/src/shapes/Object/Object.d.ts +594 -0
  181. package/dist/src/shapes/Object/ObjectGeometry.d.ts +327 -0
  182. package/dist/src/shapes/Object/ObjectOrigin.d.ts +109 -0
  183. package/dist/src/shapes/Object/StackedObject.d.ts +72 -0
  184. package/dist/src/shapes/Object/defaultValues.d.ts +76 -0
  185. package/dist/src/shapes/Object/types/BaseProps.d.ts +84 -0
  186. package/dist/src/shapes/Object/types/BorderProps.d.ts +37 -0
  187. package/dist/src/shapes/Object/types/ControlProps.d.ts +62 -0
  188. package/dist/src/shapes/Object/types/FabricObjectProps.d.ts +96 -0
  189. package/dist/src/shapes/Object/types/FillStrokeProps.d.ts +80 -0
  190. package/dist/src/shapes/Object/types/LockInteractionProps.d.ts +51 -0
  191. package/dist/src/shapes/Object/types/ObjectProps.d.ts +42 -0
  192. package/dist/src/shapes/Object/types/SerializedObjectProps.d.ts +66 -0
  193. package/dist/src/shapes/Object/types/index.d.ts +6 -0
  194. package/dist/src/shapes/Path.d.ts +130 -0
  195. package/dist/src/shapes/Polygon.d.ts +9 -0
  196. package/dist/src/shapes/Polyline.d.ts +140 -0
  197. package/dist/src/shapes/Rect.d.ts +76 -0
  198. package/dist/src/shapes/Text/StyledText.d.ts +119 -0
  199. package/dist/src/shapes/Text/Text.d.ts +673 -0
  200. package/dist/src/shapes/Text/TextSVGExportMixin.d.ts +32 -0
  201. package/dist/src/shapes/Text/constants.d.ts +7 -0
  202. package/dist/src/shapes/Textbox.d.ts +185 -0
  203. package/dist/src/shapes/Triangle.d.ts +25 -0
  204. package/dist/src/typedefs.d.ts +90 -0
  205. package/dist/src/util/animation/AnimationBase.d.ts +54 -0
  206. package/dist/src/util/animation/AnimationFrameProvider.d.ts +3 -0
  207. package/dist/src/util/animation/AnimationRegistry.d.ts +29 -0
  208. package/dist/src/util/animation/ArrayAnimation.d.ts +10 -0
  209. package/dist/src/util/animation/ColorAnimation.d.ts +11 -0
  210. package/dist/src/util/animation/ValueAnimation.d.ts +10 -0
  211. package/dist/src/util/animation/animate.d.ts +37 -0
  212. package/dist/src/util/animation/easing.d.ts +130 -0
  213. package/dist/src/util/animation/types.d.ts +87 -0
  214. package/dist/src/util/applyMixins.d.ts +8 -0
  215. package/dist/src/util/dom_event.d.ts +5 -0
  216. package/dist/src/util/dom_misc.d.ts +39 -0
  217. package/dist/src/util/dom_request.d.ts +14 -0
  218. package/dist/src/util/dom_style.d.ts +7 -0
  219. package/dist/src/util/fireEvent.d.ts +3 -0
  220. package/dist/src/util/index.d.ts +35 -0
  221. package/dist/src/util/internals/cloneDeep.d.ts +2 -0
  222. package/dist/src/util/internals/getRandomInt.d.ts +8 -0
  223. package/dist/src/util/internals/ifNaN.d.ts +8 -0
  224. package/dist/src/util/internals/index.d.ts +4 -0
  225. package/dist/src/util/internals/removeFromArray.d.ts +9 -0
  226. package/dist/src/util/internals/uid.d.ts +2 -0
  227. package/dist/src/util/lang_string.d.ts +22 -0
  228. package/dist/src/util/misc/boundingBoxFromPoints.d.ts +9 -0
  229. package/dist/src/util/misc/capValue.d.ts +2 -0
  230. package/dist/src/util/misc/cos.d.ts +10 -0
  231. package/dist/src/util/misc/dom.d.ts +28 -0
  232. package/dist/src/util/misc/findScaleTo.d.ts +29 -0
  233. package/dist/src/util/misc/groupSVGElements.d.ts +9 -0
  234. package/dist/src/util/misc/isTransparent.d.ts +11 -0
  235. package/dist/src/util/misc/matrix.d.ts +92 -0
  236. package/dist/src/util/misc/mergeClipPaths.d.ts +23 -0
  237. package/dist/src/util/misc/objectEnlive.d.ts +56 -0
  238. package/dist/src/util/misc/objectTransforms.d.ts +68 -0
  239. package/dist/src/util/misc/pick.d.ts +9 -0
  240. package/dist/src/util/misc/planeChange.d.ts +84 -0
  241. package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts +51 -0
  242. package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts +81 -0
  243. package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts +25 -0
  244. package/dist/src/util/misc/projectStroke/index.d.ts +11 -0
  245. package/dist/src/util/misc/projectStroke/types.d.ts +23 -0
  246. package/dist/src/util/misc/radiansDegreesConversion.d.ts +14 -0
  247. package/dist/src/util/misc/resolveOrigin.d.ts +9 -0
  248. package/dist/src/util/misc/rotatePoint.d.ts +12 -0
  249. package/dist/src/util/misc/sin.d.ts +10 -0
  250. package/dist/src/util/misc/svgParsing.d.ts +53 -0
  251. package/dist/src/util/misc/textStyles.d.ts +32 -0
  252. package/dist/src/util/misc/toFixed.d.ts +8 -0
  253. package/dist/src/util/misc/vectors.d.ts +57 -0
  254. package/dist/src/util/path/index.d.ts +96 -0
  255. package/dist/src/util/path/regex.d.ts +3 -0
  256. package/dist/src/util/path/typechecks.d.ts +24 -0
  257. package/dist/src/util/path/typedefs.d.ts +220 -0
  258. package/dist/src/util/transform_matrix_removal.d.ts +14 -0
  259. package/dist/src/util/types.d.ts +19 -0
  260. package/fabric.ts +51 -0
  261. package/index.node.ts +37 -0
  262. package/index.ts +1 -0
  263. package/package.json +100 -40
  264. package/publish.js +0 -26
  265. package/rollup.config.mjs +91 -0
  266. package/rollup.test.config.js +24 -0
  267. package/scripts/build.mjs +50 -0
  268. package/scripts/buildLock.mjs +115 -0
  269. package/scripts/buildReporter.mjs +15 -0
  270. package/scripts/buildStats.mjs +139 -0
  271. package/scripts/dirname.mjs +14 -0
  272. package/scripts/git.mjs +36 -0
  273. package/scripts/index.mjs +564 -0
  274. package/scripts/sandbox.mjs +149 -0
  275. package/src/ClassRegistry.ts +56 -0
  276. package/src/Collection.ts +346 -0
  277. package/src/CommonMethods.ts +63 -0
  278. package/src/EventTypeDefs.ts +296 -0
  279. package/src/Intersection.ts +302 -0
  280. package/src/Observable.ts +181 -0
  281. package/src/Pattern.ts +227 -0
  282. package/src/Point.ts +388 -0
  283. package/src/Shadow.ts +214 -0
  284. package/src/brushes/{base_brush.class.js → BaseBrush.ts} +65 -42
  285. package/src/brushes/CircleBrush.ts +145 -0
  286. package/src/brushes/PatternBrush.ts +70 -0
  287. package/src/brushes/PencilBrush.ts +300 -0
  288. package/src/brushes/SprayBrush.ts +219 -0
  289. package/src/cache.ts +90 -0
  290. package/src/canvas/Canvas.ts +1607 -0
  291. package/src/canvas/SelectableCanvas.ts +1608 -0
  292. package/src/canvas/StaticCanvas.ts +1734 -0
  293. package/src/canvas/TextEditingManager.ts +48 -0
  294. package/src/canvas/canvas_gestures.mixin.ts +207 -0
  295. package/src/color/Color.ts +404 -0
  296. package/src/color/color_map.ts +154 -0
  297. package/src/color/constants.ts +26 -0
  298. package/src/color/util.ts +32 -0
  299. package/src/config.ts +159 -0
  300. package/src/constants.ts +20 -0
  301. package/src/controls/Control.ts +380 -0
  302. package/src/controls/changeWidth.ts +52 -0
  303. package/src/controls/commonControls.ts +105 -0
  304. package/src/controls/controlRendering.ts +138 -0
  305. package/src/controls/drag.ts +31 -0
  306. package/src/controls/index.ts +22 -0
  307. package/src/controls/polyControl.ts +135 -0
  308. package/src/controls/rotate.ts +87 -0
  309. package/src/controls/scale.ts +277 -0
  310. package/src/controls/scaleSkew.ts +92 -0
  311. package/src/controls/skew.ts +242 -0
  312. package/src/controls/util.ts +154 -0
  313. package/src/controls/wrapWithFireEvent.ts +25 -0
  314. package/src/controls/wrapWithFixedAnchor.ts +20 -0
  315. package/src/env/browser.ts +32 -0
  316. package/src/env/index.ts +24 -0
  317. package/src/env/node.ts +56 -0
  318. package/src/env/types.ts +15 -0
  319. package/src/filters/{base_filter.class.js → BaseFilter.ts} +192 -151
  320. package/src/filters/BlendColor.ts +217 -0
  321. package/src/filters/BlendImage.ts +228 -0
  322. package/src/filters/Blur.ts +179 -0
  323. package/src/filters/Boilerplate.ts +94 -0
  324. package/src/filters/Brightness.ts +83 -0
  325. package/src/filters/Canvas2dFilterBackend.ts +65 -0
  326. package/src/filters/ColorMatrix.ts +145 -0
  327. package/src/filters/ColorMatrixFilters.ts +77 -0
  328. package/src/filters/Composed.ts +76 -0
  329. package/src/filters/Contrast.ts +82 -0
  330. package/src/filters/Convolute.ts +184 -0
  331. package/src/filters/FilterBackend.ts +34 -0
  332. package/src/filters/GLProbes/GLProbe.ts +11 -0
  333. package/src/filters/GLProbes/NodeGLProbe.ts +15 -0
  334. package/src/filters/GLProbes/WebGLProbe.ts +46 -0
  335. package/src/filters/Gamma.ts +110 -0
  336. package/src/filters/Grayscale.ts +102 -0
  337. package/src/filters/HueRotation.ts +62 -0
  338. package/src/filters/Invert.ts +99 -0
  339. package/src/filters/Noise.ts +94 -0
  340. package/src/filters/Pixelate.ts +96 -0
  341. package/src/filters/RemoveColor.ts +135 -0
  342. package/src/filters/Resize.ts +538 -0
  343. package/src/filters/Saturation.ts +87 -0
  344. package/src/filters/Vibrance.ts +88 -0
  345. package/src/filters/WebGLFilterBackend.ts +430 -0
  346. package/src/filters/filters.ts +28 -0
  347. package/src/filters/index.ts +5 -0
  348. package/src/filters/shaders/baseFilter.ts +19 -0
  349. package/src/filters/shaders/blendColor.ts +33 -0
  350. package/src/filters/shaders/blendImage.ts +32 -0
  351. package/src/filters/shaders/blur.ts +24 -0
  352. package/src/filters/shaders/brightness.ts +11 -0
  353. package/src/filters/shaders/colorMatrix.ts +12 -0
  354. package/src/filters/shaders/constrast.ts +11 -0
  355. package/src/filters/shaders/convolute.ts +154 -0
  356. package/src/filters/shaders/gamma.ts +15 -0
  357. package/src/filters/shaders/grayscale.ts +36 -0
  358. package/src/filters/shaders/invert.ts +19 -0
  359. package/src/filters/shaders/noise.ts +16 -0
  360. package/src/filters/shaders/pixelate.ts +19 -0
  361. package/src/filters/shaders/removeColor.ts +13 -0
  362. package/src/filters/shaders/saturation.ts +15 -0
  363. package/src/filters/shaders/vibrance.ts +16 -0
  364. package/src/filters/typedefs.ts +65 -0
  365. package/src/gradient/Gradient.ts +406 -0
  366. package/src/gradient/constants.ts +12 -0
  367. package/src/gradient/parser/index.ts +3 -0
  368. package/src/gradient/parser/misc.ts +13 -0
  369. package/src/gradient/parser/parseColorStops.ts +56 -0
  370. package/src/gradient/parser/parseCoords.ts +73 -0
  371. package/src/gradient/typedefs.ts +104 -0
  372. package/src/mixins/{eraser_brush.mixin.js → eraser_brush.mixin.ts} +350 -239
  373. package/src/parkinglot/canvas_animation.mixin.ts +121 -0
  374. package/src/parkinglot/straighten.ts +58 -0
  375. package/src/parser/applyViewboxTransform.ts +157 -0
  376. package/src/parser/attributes.ts +25 -0
  377. package/src/parser/constants.ts +115 -0
  378. package/src/parser/doesSomeParentMatch.ts +19 -0
  379. package/src/parser/elementById.ts +21 -0
  380. package/src/parser/elementMatchesRule.ts +16 -0
  381. package/src/parser/elements_parser.ts +191 -0
  382. package/src/parser/getCSSRules.ts +62 -0
  383. package/src/parser/getGlobalStylesForElement.ts +19 -0
  384. package/src/parser/getGradientDefs.ts +31 -0
  385. package/src/parser/getMultipleNodes.ts +15 -0
  386. package/src/parser/getSvgRegex.ts +5 -0
  387. package/src/parser/hasAncestorWithNodeName.ts +14 -0
  388. package/src/parser/index.ts +9 -0
  389. package/src/parser/loadSVGFromString.ts +26 -0
  390. package/src/parser/loadSVGFromURL.ts +40 -0
  391. package/src/parser/normalizeAttr.ts +10 -0
  392. package/src/parser/normalizeValue.ts +63 -0
  393. package/src/parser/parseAttributes.ts +90 -0
  394. package/src/parser/parseElements.ts +28 -0
  395. package/src/parser/parseFontDeclaration.ts +44 -0
  396. package/src/parser/parsePointsAttribute.ts +34 -0
  397. package/src/parser/parseSVGDocument.ts +93 -0
  398. package/src/parser/parseStyleAttribute.ts +27 -0
  399. package/src/parser/parseStyleObject.ts +15 -0
  400. package/src/parser/parseStyleString.ts +16 -0
  401. package/src/parser/parseTransformAttribute.ts +155 -0
  402. package/src/parser/parseUseDirectives.ts +78 -0
  403. package/src/parser/percent.ts +27 -0
  404. package/src/parser/recursivelyParseGradientsXlink.ts +42 -0
  405. package/src/parser/rotateMatrix.ts +21 -0
  406. package/src/parser/scaleMatrix.ts +9 -0
  407. package/src/parser/selectorMatches.ts +25 -0
  408. package/src/parser/setStrokeFillOpacity.ts +40 -0
  409. package/src/parser/skewMatrix.ts +6 -0
  410. package/src/parser/translateMatrix.ts +8 -0
  411. package/src/shapes/ActiveSelection.ts +189 -0
  412. package/src/shapes/Circle.ts +242 -0
  413. package/src/shapes/Ellipse.ts +179 -0
  414. package/src/shapes/Group.ts +1100 -0
  415. package/src/shapes/IText/DraggableTextDelegate.ts +382 -0
  416. package/src/shapes/IText/IText.ts +693 -0
  417. package/src/shapes/IText/ITextBehavior.ts +1064 -0
  418. package/src/shapes/IText/ITextClickBehavior.ts +325 -0
  419. package/src/shapes/IText/ITextKeyBehavior.ts +685 -0
  420. package/src/shapes/IText/constants.ts +47 -0
  421. package/src/shapes/Image.ts +841 -0
  422. package/src/shapes/Line.ts +346 -0
  423. package/src/shapes/Object/AnimatableObject.ts +106 -0
  424. package/src/shapes/Object/FabricObject.ts +29 -0
  425. package/src/shapes/Object/FabricObjectSVGExportMixin.ts +277 -0
  426. package/src/shapes/Object/InteractiveObject.ts +672 -0
  427. package/src/shapes/Object/Object.ts +1561 -0
  428. package/src/shapes/Object/ObjectGeometry.ts +813 -0
  429. package/src/shapes/Object/ObjectOrigin.ts +276 -0
  430. package/src/shapes/Object/StackedObject.ts +206 -0
  431. package/src/shapes/Object/defaultValues.ts +108 -0
  432. package/src/shapes/Object/types/BaseProps.ts +96 -0
  433. package/src/shapes/Object/types/BorderProps.ts +40 -0
  434. package/src/shapes/Object/types/ControlProps.ts +69 -0
  435. package/src/shapes/Object/types/FabricObjectProps.ts +111 -0
  436. package/src/shapes/Object/types/FillStrokeProps.ts +90 -0
  437. package/src/shapes/Object/types/LockInteractionProps.ts +57 -0
  438. package/src/shapes/Object/types/ObjectProps.ts +46 -0
  439. package/src/shapes/Object/types/SerializedObjectProps.ts +73 -0
  440. package/src/shapes/Object/types/index.ts +8 -0
  441. package/src/shapes/Path.ts +416 -0
  442. package/src/shapes/Polygon.ts +20 -0
  443. package/src/shapes/Polyline.ts +359 -0
  444. package/src/shapes/Rect.ts +233 -0
  445. package/src/shapes/Text/StyledText.ts +329 -0
  446. package/src/shapes/Text/Text.ts +1884 -0
  447. package/src/shapes/Text/TextSVGExportMixin.ts +288 -0
  448. package/src/shapes/Text/constants.ts +91 -0
  449. package/src/shapes/Textbox.ts +477 -0
  450. package/src/shapes/Triangle.ts +60 -0
  451. package/src/typedefs.ts +115 -0
  452. package/src/util/animation/AnimationBase.ts +166 -0
  453. package/src/util/animation/AnimationFrameProvider.ts +9 -0
  454. package/src/util/animation/AnimationRegistry.ts +58 -0
  455. package/src/util/animation/ArrayAnimation.ts +27 -0
  456. package/src/util/animation/ColorAnimation.ts +74 -0
  457. package/src/util/animation/ValueAnimation.ts +29 -0
  458. package/src/util/animation/animate.ts +74 -0
  459. package/src/util/animation/easing.ts +327 -0
  460. package/src/util/animation/types.ts +136 -0
  461. package/src/util/applyMixins.ts +22 -0
  462. package/src/util/dom_event.ts +28 -0
  463. package/src/util/dom_misc.ts +121 -0
  464. package/src/util/dom_request.ts +64 -0
  465. package/src/util/dom_style.ts +20 -0
  466. package/src/util/fireEvent.ts +15 -0
  467. package/src/util/index.ts +102 -0
  468. package/src/util/internals/cloneDeep.ts +2 -0
  469. package/src/util/internals/getRandomInt.ts +8 -0
  470. package/src/util/internals/ifNaN.ts +9 -0
  471. package/src/util/internals/index.ts +3 -0
  472. package/src/util/internals/removeFromArray.ts +14 -0
  473. package/src/util/internals/uid.ts +3 -0
  474. package/src/util/lang_string.ts +79 -0
  475. package/src/util/misc/boundingBoxFromPoints.ts +37 -0
  476. package/src/util/misc/capValue.ts +2 -0
  477. package/src/util/misc/cos.ts +24 -0
  478. package/src/util/misc/dom.ts +50 -0
  479. package/src/util/misc/findScaleTo.ts +44 -0
  480. package/src/util/misc/groupSVGElements.ts +15 -0
  481. package/src/util/misc/isTransparent.ts +28 -0
  482. package/src/util/misc/matrix.ts +207 -0
  483. package/src/util/misc/mergeClipPaths.ts +40 -0
  484. package/src/util/misc/objectEnlive.ts +189 -0
  485. package/src/util/misc/objectTransforms.ts +129 -0
  486. package/src/util/misc/pick.ts +29 -0
  487. package/src/util/misc/planeChange.ts +136 -0
  488. package/src/util/misc/projectStroke/StrokeLineCapProjections.ts +112 -0
  489. package/src/util/misc/projectStroke/StrokeLineJoinProjections.ts +226 -0
  490. package/src/util/misc/projectStroke/StrokeProjectionsBase.ts +75 -0
  491. package/src/util/misc/projectStroke/index.ts +53 -0
  492. package/src/util/misc/projectStroke/types.ts +24 -0
  493. package/src/util/misc/radiansDegreesConversion.ts +18 -0
  494. package/src/util/misc/resolveOrigin.ts +22 -0
  495. package/src/util/misc/rotatePoint.ts +15 -0
  496. package/src/util/misc/sin.ts +26 -0
  497. package/src/util/misc/svgParsing.ts +181 -0
  498. package/src/util/misc/textStyles.ts +134 -0
  499. package/src/util/misc/toFixed.ts +8 -0
  500. package/src/util/misc/vectors.ts +82 -0
  501. package/src/util/path/index.ts +1038 -0
  502. package/src/util/path/regex.ts +41 -0
  503. package/src/util/path/typechecks.ts +145 -0
  504. package/src/util/path/typedefs.ts +305 -0
  505. package/src/util/transform_matrix_removal.ts +60 -0
  506. package/src/util/types.ts +78 -0
  507. package/tsconfig.json +106 -0
  508. package/HEADER.js +0 -203
  509. package/build.js +0 -287
  510. package/dist/fabric.js +0 -31187
  511. package/dist/fabric.min.js +0 -1
  512. package/old-travis-reference.yml +0 -97
  513. package/src/brushes/circle_brush.class.js +0 -144
  514. package/src/brushes/pattern_brush.class.js +0 -61
  515. package/src/brushes/pencil_brush.class.js +0 -310
  516. package/src/brushes/spray_brush.class.js +0 -219
  517. package/src/canvas.class.js +0 -1312
  518. package/src/color.class.js +0 -636
  519. package/src/control.class.js +0 -339
  520. package/src/controls.actions.js +0 -740
  521. package/src/controls.render.js +0 -99
  522. package/src/elements_parser.js +0 -152
  523. package/src/filters/2d_backend.class.js +0 -65
  524. package/src/filters/blendcolor_filter.class.js +0 -251
  525. package/src/filters/blendimage_filter.class.js +0 -247
  526. package/src/filters/blur_filter.class.js +0 -217
  527. package/src/filters/brightness_filter.class.js +0 -113
  528. package/src/filters/colormatrix_filter.class.js +0 -159
  529. package/src/filters/composed_filter.class.js +0 -72
  530. package/src/filters/contrast_filter.class.js +0 -113
  531. package/src/filters/convolute_filter.class.js +0 -352
  532. package/src/filters/filter_boilerplate.js +0 -111
  533. package/src/filters/filter_generator.js +0 -85
  534. package/src/filters/gamma_filter.class.js +0 -136
  535. package/src/filters/grayscale_filter.class.js +0 -154
  536. package/src/filters/hue_rotation.class.js +0 -107
  537. package/src/filters/invert_filter.class.js +0 -111
  538. package/src/filters/noise_filter.class.js +0 -134
  539. package/src/filters/pixelate_filter.class.js +0 -137
  540. package/src/filters/removecolor_filter.class.js +0 -173
  541. package/src/filters/resize_filter.class.js +0 -490
  542. package/src/filters/saturate_filter.class.js +0 -119
  543. package/src/filters/vibrance_filter.class.js +0 -122
  544. package/src/filters/webgl_backend.class.js +0 -396
  545. package/src/globalFabric.js +0 -4
  546. package/src/gradient.class.js +0 -490
  547. package/src/intersection.class.js +0 -172
  548. package/src/log.js +0 -11
  549. package/src/mixins/animation.mixin.js +0 -231
  550. package/src/mixins/canvas_dataurl_exporter.mixin.js +0 -97
  551. package/src/mixins/canvas_events.mixin.js +0 -974
  552. package/src/mixins/canvas_gestures.mixin.js +0 -149
  553. package/src/mixins/canvas_grouping.mixin.js +0 -177
  554. package/src/mixins/canvas_serialization.mixin.js +0 -228
  555. package/src/mixins/collection.mixin.js +0 -170
  556. package/src/mixins/default_controls.js +0 -114
  557. package/src/mixins/itext.svg_export.js +0 -241
  558. package/src/mixins/itext_behavior.mixin.js +0 -940
  559. package/src/mixins/itext_click_behavior.mixin.js +0 -278
  560. package/src/mixins/itext_key_behavior.mixin.js +0 -694
  561. package/src/mixins/object.svg_export.js +0 -258
  562. package/src/mixins/object_geometry.mixin.js +0 -683
  563. package/src/mixins/object_interactivity.mixin.js +0 -314
  564. package/src/mixins/object_origin.mixin.js +0 -255
  565. package/src/mixins/object_stacking.mixin.js +0 -80
  566. package/src/mixins/object_straightening.mixin.js +0 -80
  567. package/src/mixins/observable.mixin.js +0 -141
  568. package/src/mixins/shared_methods.mixin.js +0 -94
  569. package/src/mixins/stateful.mixin.js +0 -107
  570. package/src/mixins/text_style.mixin.js +0 -324
  571. package/src/parser.js +0 -1090
  572. package/src/pattern.class.js +0 -189
  573. package/src/point.class.js +0 -337
  574. package/src/shadow.class.js +0 -195
  575. package/src/shapes/active_selection.class.js +0 -155
  576. package/src/shapes/circle.class.js +0 -210
  577. package/src/shapes/ellipse.class.js +0 -181
  578. package/src/shapes/group.class.js +0 -593
  579. package/src/shapes/image.class.js +0 -764
  580. package/src/shapes/itext.class.js +0 -526
  581. package/src/shapes/line.class.js +0 -324
  582. package/src/shapes/object.class.js +0 -2008
  583. package/src/shapes/path.class.js +0 -384
  584. package/src/shapes/polygon.class.js +0 -81
  585. package/src/shapes/polyline.class.js +0 -268
  586. package/src/shapes/rect.class.js +0 -187
  587. package/src/shapes/text.class.js +0 -1696
  588. package/src/shapes/textbox.class.js +0 -461
  589. package/src/shapes/triangle.class.js +0 -93
  590. package/src/static_canvas.class.js +0 -1881
  591. package/src/util/anim_ease.js +0 -398
  592. package/src/util/animate.js +0 -254
  593. package/src/util/animate_color.js +0 -74
  594. package/src/util/dom_event.js +0 -50
  595. package/src/util/dom_misc.js +0 -300
  596. package/src/util/dom_request.js +0 -54
  597. package/src/util/dom_style.js +0 -70
  598. package/src/util/lang_array.js +0 -94
  599. package/src/util/lang_class.js +0 -115
  600. package/src/util/lang_object.js +0 -75
  601. package/src/util/lang_string.js +0 -110
  602. package/src/util/misc.js +0 -1330
  603. package/src/util/named_accessors.mixin.js +0 -428
  604. package/src/util/path.js +0 -829
@@ -0,0 +1,45 @@
1
+ import type { TClassProperties } from '../typedefs';
2
+ import { BaseFilter } from './BaseFilter';
3
+ import type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';
4
+ export declare const contrastDefaultValues: Partial<TClassProperties<Contrast>>;
5
+ /**
6
+ * Contrast filter class
7
+ * @example
8
+ * const filter = new Contrast({
9
+ * contrast: 0.25
10
+ * });
11
+ * object.filters.push(filter);
12
+ * object.applyFilters();
13
+ */
14
+ export declare class Contrast extends BaseFilter {
15
+ /**
16
+ * contrast value, range from -1 to 1.
17
+ * @param {Number} contrast
18
+ * @default 0
19
+ */
20
+ contrast: number;
21
+ static defaults: Partial<TClassProperties<Contrast>>;
22
+ getFragmentSource(): string;
23
+ /**
24
+ * Apply the Contrast operation to a Uint8Array representing the pixels of an image.
25
+ *
26
+ * @param {Object} options
27
+ * @param {ImageData} options.imageData The Uint8Array to be filtered.
28
+ */
29
+ applyTo2d({ imageData: { data } }: T2DPipelineState): void;
30
+ /**
31
+ * Return WebGL uniform locations for this filter's shader.
32
+ *
33
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
34
+ * @param {WebGLShaderProgram} program This filter's compiled shader program.
35
+ */
36
+ getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
37
+ /**
38
+ * Send data from this filter to its shader program's uniforms.
39
+ *
40
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
41
+ * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
42
+ */
43
+ sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
44
+ }
45
+ //# sourceMappingURL=Contrast.d.ts.map
@@ -0,0 +1,82 @@
1
+ import type { TClassProperties } from '../typedefs';
2
+ import { BaseFilter } from './BaseFilter';
3
+ import type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';
4
+ export declare const convoluteDefaultValues: Partial<TClassProperties<Convolute>>;
5
+ /**
6
+ * Adapted from <a href="http://www.html5rocks.com/en/tutorials/canvas/imagefilters/">html5rocks article</a>
7
+ * @example <caption>Sharpen filter</caption>
8
+ * const filter = new Convolute({
9
+ * matrix: [ 0, -1, 0,
10
+ * -1, 5, -1,
11
+ * 0, -1, 0 ]
12
+ * });
13
+ * object.filters.push(filter);
14
+ * object.applyFilters();
15
+ * canvas.renderAll();
16
+ * @example <caption>Blur filter</caption>
17
+ * const filter = new Convolute({
18
+ * matrix: [ 1/9, 1/9, 1/9,
19
+ * 1/9, 1/9, 1/9,
20
+ * 1/9, 1/9, 1/9 ]
21
+ * });
22
+ * object.filters.push(filter);
23
+ * object.applyFilters();
24
+ * canvas.renderAll();
25
+ * @example <caption>Emboss filter</caption>
26
+ * const filter = new Convolute({
27
+ * matrix: [ 1, 1, 1,
28
+ * 1, 0.7, -1,
29
+ * -1, -1, -1 ]
30
+ * });
31
+ * object.filters.push(filter);
32
+ * object.applyFilters();
33
+ * canvas.renderAll();
34
+ * @example <caption>Emboss filter with opaqueness</caption>
35
+ * const filter = new Convolute({
36
+ * opaque: true,
37
+ * matrix: [ 1, 1, 1,
38
+ * 1, 0.7, -1,
39
+ * -1, -1, -1 ]
40
+ * });
41
+ * object.filters.push(filter);
42
+ * object.applyFilters();
43
+ * canvas.renderAll();
44
+ */
45
+ export declare class Convolute extends BaseFilter {
46
+ opaque: boolean;
47
+ matrix: number[];
48
+ static defaults: Partial<TClassProperties<Convolute>>;
49
+ getCacheKey(): "Convolute_3_1" | "Convolute_3_0" | "Convolute_5_1" | "Convolute_5_0" | "Convolute_7_1" | "Convolute_7_0" | "Convolute_9_1" | "Convolute_9_0";
50
+ getFragmentSource(): string;
51
+ /**
52
+ * Apply the Brightness operation to a Uint8ClampedArray representing the pixels of an image.
53
+ *
54
+ * @param {Object} options
55
+ * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.
56
+ */
57
+ applyTo2d(options: T2DPipelineState): void;
58
+ /**
59
+ * Return WebGL uniform locations for this filter's shader.
60
+ *
61
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
62
+ * @param {WebGLShaderProgram} program This filter's compiled shader program.
63
+ */
64
+ getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
65
+ /**
66
+ * Send data from this filter to its shader program's uniforms.
67
+ *
68
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
69
+ * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
70
+ */
71
+ sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
72
+ /**
73
+ * Returns object representation of an instance
74
+ * @return {Object} Object representation of an instance
75
+ */
76
+ toObject(): {
77
+ opaque: boolean;
78
+ matrix: number[];
79
+ type: string;
80
+ };
81
+ }
82
+ //# sourceMappingURL=Convolute.d.ts.map
@@ -0,0 +1,14 @@
1
+ import { Canvas2dFilterBackend } from './Canvas2dFilterBackend';
2
+ import { WebGLFilterBackend } from './WebGLFilterBackend';
3
+ export type FilterBackend = WebGLFilterBackend | Canvas2dFilterBackend;
4
+ /**
5
+ * Verifies if it is possible to initialize webgl or fallback on a canvas2d filtering backend
6
+ */
7
+ export declare function initFilterBackend(): FilterBackend;
8
+ /**
9
+ * Get the current fabricJS filter backend or initialize one if not available yet
10
+ * @param [strict] pass `true` to create the backend if it wasn't created yet (default behavior),
11
+ * pass `false` to get the backend ref without mutating it
12
+ */
13
+ export declare function getFilterBackend(strict?: boolean): FilterBackend;
14
+ //# sourceMappingURL=FilterBackend.d.ts.map
@@ -0,0 +1,11 @@
1
+ export declare enum GLPrecision {
2
+ low = "lowp",
3
+ medium = "mediump",
4
+ high = "highp"
5
+ }
6
+ export declare abstract class GLProbe {
7
+ GLPrecision: GLPrecision | undefined;
8
+ abstract queryWebGL(canvas: HTMLCanvasElement): void;
9
+ abstract isSupported(textureSize: number): boolean;
10
+ }
11
+ //# sourceMappingURL=GLProbe.d.ts.map
@@ -0,0 +1,11 @@
1
+ import { GLProbe } from './GLProbe';
2
+ /**
3
+ * @todo GL rendering in node is possible:
4
+ * - https://github.com/stackgl/headless-gl
5
+ * - https://github.com/akira-cn/node-canvas-webgl
6
+ */
7
+ export declare class NodeGLProbe extends GLProbe {
8
+ queryWebGL(): void;
9
+ isSupported(): boolean;
10
+ }
11
+ //# sourceMappingURL=NodeGLProbe.d.ts.map
@@ -0,0 +1,20 @@
1
+ import { GLProbe } from './GLProbe';
2
+ /**
3
+ * Lazy initialize WebGL constants
4
+ */
5
+ export declare class WebGLProbe extends GLProbe {
6
+ maxTextureSize?: number;
7
+ /**
8
+ * Tests if webgl supports certain precision
9
+ * @param {WebGL} Canvas WebGL context to test on
10
+ * @param {GLPrecision} Precision to test can be any of following
11
+ * @returns {Boolean} Whether the user's browser WebGL supports given precision.
12
+ */
13
+ private testPrecision;
14
+ /**
15
+ * query browser for WebGL
16
+ */
17
+ queryWebGL(canvas: HTMLCanvasElement): void;
18
+ isSupported(textureSize: number): boolean;
19
+ }
20
+ //# sourceMappingURL=WebGLProbe.d.ts.map
@@ -0,0 +1,54 @@
1
+ import type { TClassProperties } from '../typedefs';
2
+ import { BaseFilter } from './BaseFilter';
3
+ import type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';
4
+ export type GammaInput = [number, number, number];
5
+ export declare const gammaDefaultValues: Partial<TClassProperties<Gamma>>;
6
+ /**
7
+ * Gamma filter class
8
+ * @example
9
+ * const filter = new Gamma({
10
+ * gamma: [1, 0.5, 2.1]
11
+ * });
12
+ * object.filters.push(filter);
13
+ * object.applyFilters();
14
+ */
15
+ export declare class Gamma extends BaseFilter {
16
+ /**
17
+ * Gamma array value, from 0.01 to 2.2.
18
+ * @param {Array} gamma
19
+ * @default
20
+ */
21
+ gamma: GammaInput;
22
+ rgbValues?: {
23
+ r: Uint8Array;
24
+ g: Uint8Array;
25
+ b: Uint8Array;
26
+ };
27
+ static defaults: Partial<TClassProperties<Gamma>>;
28
+ getFragmentSource(): string;
29
+ constructor({ gamma, ...options }?: {
30
+ gamma?: GammaInput;
31
+ });
32
+ /**
33
+ * Apply the Gamma operation to a Uint8Array representing the pixels of an image.
34
+ *
35
+ * @param {Object} options
36
+ * @param {ImageData} options.imageData The Uint8Array to be filtered.
37
+ */
38
+ applyTo2d({ imageData: { data } }: T2DPipelineState): void;
39
+ /**
40
+ * Return WebGL uniform locations for this filter's shader.
41
+ *
42
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
43
+ * @param {WebGLShaderProgram} program This filter's compiled shader program.
44
+ */
45
+ getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
46
+ /**
47
+ * Send data from this filter to its shader program's uniforms.
48
+ *
49
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
50
+ * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
51
+ */
52
+ sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
53
+ }
54
+ //# sourceMappingURL=Gamma.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
+ export type TGrayscaleMode = 'average' | 'lightness' | 'luminosity';
5
+ export declare const grayscaleDefaultValues: Partial<TClassProperties<Grayscale>>;
6
+ /**
7
+ * Grayscale image filter class
8
+ * @example
9
+ * const filter = new Grayscale();
10
+ * object.filters.push(filter);
11
+ * object.applyFilters();
12
+ */
13
+ export declare class Grayscale extends BaseFilter {
14
+ mode: TGrayscaleMode;
15
+ static defaults: Partial<TClassProperties<Grayscale>>;
16
+ /**
17
+ * Apply the Grayscale operation to a Uint8Array representing the pixels of an image.
18
+ *
19
+ * @param {Object} options
20
+ * @param {ImageData} options.imageData The Uint8Array to be filtered.
21
+ */
22
+ applyTo2d({ imageData: { data } }: T2DPipelineState): void;
23
+ getCacheKey(): string;
24
+ getFragmentSource(): string;
25
+ /**
26
+ * Return WebGL uniform locations for this filter's shader.
27
+ *
28
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
29
+ * @param {WebGLShaderProgram} program This filter's compiled shader program.
30
+ */
31
+ getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
32
+ /**
33
+ * Send data from this filter to its shader program's uniforms.
34
+ *
35
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
36
+ * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
37
+ */
38
+ sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
39
+ /**
40
+ * Grayscale filter isNeutralState implementation
41
+ * The filter is never neutral
42
+ * on the image
43
+ **/
44
+ isNeutralState(): boolean;
45
+ }
46
+ //# sourceMappingURL=Grayscale.d.ts.map
@@ -0,0 +1,24 @@
1
+ import type { TClassProperties } from '../typedefs';
2
+ import { ColorMatrix } from './ColorMatrix';
3
+ import type { TWebGLPipelineState, T2DPipelineState } from './typedefs';
4
+ export declare const hueRotationDefaultValues: Partial<TClassProperties<HueRotation>>;
5
+ /**
6
+ * HueRotation filter class
7
+ * @example
8
+ * const filter = new HueRotation({
9
+ * rotation: -0.5
10
+ * });
11
+ * object.filters.push(filter);
12
+ * object.applyFilters();
13
+ */
14
+ export declare class HueRotation extends ColorMatrix {
15
+ /**
16
+ * HueRotation value, from -1 to 1.
17
+ */
18
+ rotation: number;
19
+ static defaults: Partial<TClassProperties<HueRotation>>;
20
+ calculateMatrix(): void;
21
+ isNeutralState(): boolean;
22
+ applyTo(options: TWebGLPipelineState | T2DPipelineState): void;
23
+ }
24
+ //# sourceMappingURL=HueRotation.d.ts.map
@@ -0,0 +1,55 @@
1
+ import type { TClassProperties } from '../typedefs';
2
+ import { BaseFilter } from './BaseFilter';
3
+ import type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';
4
+ export declare const invertDefaultValues: Partial<TClassProperties<Invert>>;
5
+ /**
6
+ * @example
7
+ * const filter = new Invert();
8
+ * object.filters.push(filter);
9
+ * object.applyFilters(canvas.renderAll.bind(canvas));
10
+ */
11
+ export declare class Invert extends BaseFilter {
12
+ /**
13
+ * Invert also alpha.
14
+ * @param {Boolean} alpha
15
+ * @default
16
+ **/
17
+ alpha: boolean;
18
+ /**
19
+ * Filter invert. if false, does nothing
20
+ * @param {Boolean} invert
21
+ * @default
22
+ */
23
+ invert: boolean;
24
+ static defaults: Partial<TClassProperties<Invert>>;
25
+ /**
26
+ * Apply the Invert operation to a Uint8Array representing the pixels of an image.
27
+ *
28
+ * @param {Object} options
29
+ * @param {ImageData} options.imageData The Uint8Array to be filtered.
30
+ */
31
+ applyTo2d({ imageData: { data } }: T2DPipelineState): void;
32
+ protected getFragmentSource(): string;
33
+ /**
34
+ * Invert filter isNeutralState implementation
35
+ * Used only in image applyFilters to discard filters that will not have an effect
36
+ * on the image
37
+ * @param {Object} options
38
+ **/
39
+ isNeutralState(): boolean;
40
+ /**
41
+ * Return WebGL uniform locations for this filter's shader.
42
+ *
43
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
44
+ * @param {WebGLShaderProgram} program This filter's compiled shader program.
45
+ */
46
+ getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
47
+ /**
48
+ * Send data from this filter to its shader program's uniforms.
49
+ *
50
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
51
+ * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
52
+ */
53
+ sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
54
+ }
55
+ //# sourceMappingURL=Invert.d.ts.map
@@ -0,0 +1,54 @@
1
+ import type { TClassProperties } from '../typedefs';
2
+ import { BaseFilter } from './BaseFilter';
3
+ import type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';
4
+ export declare const noiseDefaultValues: Partial<TClassProperties<Noise>>;
5
+ /**
6
+ * Noise filter class
7
+ * @example
8
+ * const filter = new Noise({
9
+ * noise: 700
10
+ * });
11
+ * object.filters.push(filter);
12
+ * object.applyFilters();
13
+ * canvas.renderAll();
14
+ */
15
+ export declare class Noise extends BaseFilter {
16
+ /**
17
+ * Noise value, from
18
+ * @param {Number} noise
19
+ * @default
20
+ */
21
+ noise: number;
22
+ static defaults: Partial<TClassProperties<Noise>>;
23
+ getFragmentSource(): string;
24
+ /**
25
+ * Apply the Brightness operation to a Uint8ClampedArray representing the pixels of an image.
26
+ *
27
+ * @param {Object} options
28
+ * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.
29
+ */
30
+ applyTo2d({ imageData: { data } }: T2DPipelineState): void;
31
+ /**
32
+ * Return WebGL uniform locations for this filter's shader.
33
+ *
34
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
35
+ * @param {WebGLShaderProgram} program This filter's compiled shader program.
36
+ */
37
+ getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
38
+ /**
39
+ * Send data from this filter to its shader program's uniforms.
40
+ *
41
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
42
+ * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
43
+ */
44
+ sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
45
+ /**
46
+ * Returns object representation of an instance
47
+ * @return {Object} Object representation of an instance
48
+ */
49
+ toObject(): {
50
+ noise: number;
51
+ type: string;
52
+ };
53
+ }
54
+ //# sourceMappingURL=Noise.d.ts.map
@@ -0,0 +1,44 @@
1
+ import type { TClassProperties } from '../typedefs';
2
+ import { BaseFilter } from './BaseFilter';
3
+ import type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';
4
+ export declare const pixelateDefaultValues: Partial<TClassProperties<Pixelate>>;
5
+ /**
6
+ * Pixelate filter class
7
+ * @example
8
+ * const filter = new Pixelate({
9
+ * blocksize: 8
10
+ * });
11
+ * object.filters.push(filter);
12
+ * object.applyFilters();
13
+ */
14
+ export declare class Pixelate extends BaseFilter {
15
+ blocksize: number;
16
+ static defaults: Partial<TClassProperties<Pixelate>>;
17
+ /**
18
+ * Apply the Pixelate operation to a Uint8ClampedArray representing the pixels of an image.
19
+ *
20
+ * @param {Object} options
21
+ * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.
22
+ */
23
+ applyTo2d({ imageData: { data, width, height } }: T2DPipelineState): void;
24
+ /**
25
+ * Indicate when the filter is not gonna apply changes to the image
26
+ **/
27
+ isNeutralState(): boolean;
28
+ protected getFragmentSource(): string;
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
+ }
44
+ //# sourceMappingURL=Pixelate.d.ts.map
@@ -0,0 +1,63 @@
1
+ import type { TClassProperties } from '../typedefs';
2
+ import { BaseFilter } from './BaseFilter';
3
+ import type { T2DPipelineState, TWebGLUniformLocationMap } from './typedefs';
4
+ export declare const removeColorDefaultValues: Partial<TClassProperties<RemoveColor>>;
5
+ /**
6
+ * Remove white filter class
7
+ * @example
8
+ * const filter = new RemoveColor({
9
+ * threshold: 0.2,
10
+ * });
11
+ * object.filters.push(filter);
12
+ * object.applyFilters();
13
+ * canvas.renderAll();
14
+ */
15
+ export declare class RemoveColor extends BaseFilter {
16
+ /**
17
+ * Color to remove, in any format understood by {@link Color}.
18
+ * @param {String} type
19
+ * @default
20
+ */
21
+ color: string;
22
+ /**
23
+ * distance to actual color, as value up or down from each r,g,b
24
+ * between 0 and 1
25
+ **/
26
+ distance: number;
27
+ /**
28
+ * For color to remove inside distance, use alpha channel for a smoother deletion
29
+ * NOT IMPLEMENTED YET
30
+ **/
31
+ useAlpha: boolean;
32
+ static defaults: Partial<TClassProperties<RemoveColor>>;
33
+ getFragmentShader(): string;
34
+ /**
35
+ * Applies filter to canvas element
36
+ * @param {Object} canvasEl Canvas element to apply filter to
37
+ */
38
+ applyTo2d({ imageData: { data } }: T2DPipelineState): void;
39
+ /**
40
+ * Return WebGL uniform locations for this filter's shader.
41
+ *
42
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
43
+ * @param {WebGLShaderProgram} program This filter's compiled shader program.
44
+ */
45
+ getUniformLocations(gl: WebGLRenderingContext, program: WebGLProgram): TWebGLUniformLocationMap;
46
+ /**
47
+ * Send data from this filter to its shader program's uniforms.
48
+ *
49
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
50
+ * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
51
+ */
52
+ sendUniformData(gl: WebGLRenderingContext, uniformLocations: TWebGLUniformLocationMap): void;
53
+ /**
54
+ * Returns object representation of an instance
55
+ * @return {Object} Object representation of an instance
56
+ */
57
+ toObject(): {
58
+ color: string;
59
+ distance: number;
60
+ type: string;
61
+ };
62
+ }
63
+ //# sourceMappingURL=RemoveColor.d.ts.map
@@ -0,0 +1,136 @@
1
+ import type { TClassProperties } from '../typedefs';
2
+ import { BaseFilter } from './BaseFilter';
3
+ import type { T2DPipelineState, TWebGLPipelineState } from './typedefs';
4
+ export declare const resizeDefaultValues: Partial<TClassProperties<Resize>>;
5
+ type TResizeType = 'bilinear' | 'hermite' | 'sliceHack' | 'lanczos';
6
+ /**
7
+ * Resize image filter class
8
+ * @example
9
+ * const filter = new Resize();
10
+ * object.filters.push(filter);
11
+ * object.applyFilters(canvas.renderAll.bind(canvas));
12
+ */
13
+ export declare class Resize extends BaseFilter {
14
+ /**
15
+ * Resize type
16
+ * for webgl resizeType is just lanczos, for canvas2d can be:
17
+ * bilinear, hermite, sliceHack, lanczos.
18
+ * @default
19
+ */
20
+ resizeType: TResizeType;
21
+ /**
22
+ * Scale factor for resizing, x axis
23
+ * @param {Number} scaleX
24
+ * @default
25
+ */
26
+ scaleX: number;
27
+ /**
28
+ * Scale factor for resizing, y axis
29
+ * @param {Number} scaleY
30
+ * @default
31
+ */
32
+ scaleY: number;
33
+ /**
34
+ * LanczosLobes parameter for lanczos filter, valid for resizeType lanczos
35
+ * @param {Number} lanczosLobes
36
+ * @default
37
+ */
38
+ lanczosLobes: number;
39
+ fragmentSourceTOP: string;
40
+ static defaults: Partial<TClassProperties<Resize>>;
41
+ /**
42
+ * Return WebGL uniform locations for this filter's shader.
43
+ *
44
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
45
+ * @param {WebGLShaderProgram} program This filter's compiled shader program.
46
+ */
47
+ getUniformLocations(gl: any, program: any): {
48
+ uDelta: any;
49
+ uTaps: any;
50
+ };
51
+ /**
52
+ * Send data from this filter to its shader program's uniforms.
53
+ *
54
+ * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.
55
+ * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects
56
+ */
57
+ sendUniformData(gl: any, uniformLocations: any): void;
58
+ getFilterWindow(): number;
59
+ getCacheKey(): string;
60
+ getFragmentSource(): string;
61
+ getTaps(): any[];
62
+ /**
63
+ * Generate vertex and shader sources from the necessary steps numbers
64
+ * @param {Number} filterWindow
65
+ */
66
+ generateShader(filterWindow: number): string;
67
+ /**
68
+ * Apply the resize filter to the image
69
+ * Determines whether to use WebGL or Canvas2D based on the options.webgl flag.
70
+ *
71
+ * @param {Object} options
72
+ * @param {Number} options.passes The number of filters remaining to be executed
73
+ * @param {Boolean} options.webgl Whether to use webgl to render the filter.
74
+ * @param {WebGLTexture} options.sourceTexture The texture setup as the source to be filtered.
75
+ * @param {WebGLTexture} options.targetTexture The texture where filtered output should be drawn.
76
+ * @param {WebGLRenderingContext} options.context The GL context used for rendering.
77
+ * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.
78
+ */
79
+ applyTo(options: TWebGLPipelineState | T2DPipelineState): void;
80
+ isNeutralState(): boolean;
81
+ lanczosCreate(lobes: number): (x: number) => number;
82
+ applyTo2d(options: T2DPipelineState): void;
83
+ /**
84
+ * Filter sliceByTwo
85
+ * @param {Object} canvasEl Canvas element to apply filter to
86
+ * @param {Number} oW Original Width
87
+ * @param {Number} oH Original Height
88
+ * @param {Number} dW Destination Width
89
+ * @param {Number} dH Destination Height
90
+ * @returns {ImageData}
91
+ */
92
+ sliceByTwo(options: T2DPipelineState, oW: number, oH: number, dW: number, dH: number): any;
93
+ /**
94
+ * Filter lanczosResize
95
+ * @param {Object} canvasEl Canvas element to apply filter to
96
+ * @param {Number} oW Original Width
97
+ * @param {Number} oH Original Height
98
+ * @param {Number} dW Destination Width
99
+ * @param {Number} dH Destination Height
100
+ * @returns {ImageData}
101
+ */
102
+ lanczosResize(options: T2DPipelineState, oW: number, oH: number, dW: number, dH: number): any;
103
+ /**
104
+ * bilinearFiltering
105
+ * @param {Object} canvasEl Canvas element to apply filter to
106
+ * @param {Number} oW Original Width
107
+ * @param {Number} oH Original Height
108
+ * @param {Number} dW Destination Width
109
+ * @param {Number} dH Destination Height
110
+ * @returns {ImageData}
111
+ */
112
+ bilinearFiltering(options: T2DPipelineState, oW: number, oH: number, dW: number, dH: number): ImageData;
113
+ /**
114
+ * hermiteFastResize
115
+ * @param {Object} canvasEl Canvas element to apply filter to
116
+ * @param {Number} oW Original Width
117
+ * @param {Number} oH Original Height
118
+ * @param {Number} dW Destination Width
119
+ * @param {Number} dH Destination Height
120
+ * @returns {ImageData}
121
+ */
122
+ hermiteFastResize(options: T2DPipelineState, oW: number, oH: number, dW: number, dH: number): ImageData;
123
+ /**
124
+ * Returns object representation of an instance
125
+ * @return {Object} Object representation of an instance
126
+ */
127
+ toObject(): {
128
+ type: string;
129
+ scaleX: number;
130
+ scaleY: number;
131
+ resizeType: TResizeType;
132
+ lanczosLobes: number;
133
+ };
134
+ }
135
+ export {};
136
+ //# sourceMappingURL=Resize.d.ts.map