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.
- package/.babelrc +11 -0
- package/.babelrcAlt +19 -0
- package/.browserslistrc +5 -0
- package/.eslintignore +3 -0
- package/.eslintrc.js +43 -0
- package/.eslintrc.json +38 -46
- package/.eslintrc_tests +12 -0
- package/.gitattributes +2 -0
- package/.gitpod.yml +17 -1
- package/.prettierignore +19 -0
- package/.prettierrc +4 -0
- package/CHANGELOG.md +532 -189
- package/CONTRIBUTING.md +224 -59
- package/README.md +200 -235
- package/bower.json +1 -3
- package/dist/fabric.d.ts +42 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +27582 -0
- package/dist/index.js.map +1 -0
- package/dist/index.min.js +1 -0
- package/dist/index.mjs +27519 -0
- package/dist/index.mjs.map +1 -0
- package/dist/index.node.cjs +27663 -0
- package/dist/index.node.cjs.map +1 -0
- package/dist/index.node.d.ts +14 -0
- package/dist/index.node.mjs +27606 -0
- package/dist/index.node.mjs.map +1 -0
- package/dist/src/ClassRegistry.d.ts +13 -0
- package/dist/src/Collection.d.ts +136 -0
- package/dist/src/CommonMethods.d.ts +32 -0
- package/dist/src/EventTypeDefs.d.ts +227 -0
- package/dist/src/Intersection.d.ts +112 -0
- package/dist/src/Observable.d.ts +60 -0
- package/dist/src/Pattern.d.ts +113 -0
- package/dist/src/Point.d.ts +232 -0
- package/dist/src/Shadow.d.ts +97 -0
- package/dist/src/brushes/BaseBrush.d.ts +105 -0
- package/dist/src/brushes/CircleBrush.d.ts +49 -0
- package/dist/src/brushes/PatternBrush.d.ts +23 -0
- package/dist/src/brushes/PencilBrush.d.ts +92 -0
- package/dist/src/brushes/SprayBrush.d.ts +79 -0
- package/dist/src/cache.d.ts +47 -0
- package/dist/src/canvas/Canvas.d.ts +548 -0
- package/dist/src/canvas/SelectableCanvas.d.ts +754 -0
- package/dist/src/canvas/StaticCanvas.d.ts +778 -0
- package/dist/src/canvas/TextEditingManager.d.ts +17 -0
- package/dist/src/canvas/canvas_gestures.mixin.d.ts +2 -0
- package/dist/src/color/Color.d.ts +174 -0
- package/dist/src/color/color_map.d.ts +155 -0
- package/dist/src/color/constants.d.ts +22 -0
- package/dist/src/color/util.d.ts +12 -0
- package/dist/src/config.d.ts +115 -0
- package/dist/src/constants.d.ts +14 -0
- package/dist/src/controls/Control.d.ts +228 -0
- package/dist/src/controls/changeWidth.d.ts +13 -0
- package/dist/src/controls/commonControls.d.ts +28 -0
- package/dist/src/controls/controlRendering.d.ts +29 -0
- package/dist/src/controls/drag.d.ts +12 -0
- package/dist/src/controls/index.d.ts +13 -0
- package/dist/src/controls/polyControl.d.ts +5 -0
- package/dist/src/controls/rotate.d.ts +12 -0
- package/dist/src/controls/scale.d.ts +47 -0
- package/dist/src/controls/scaleSkew.d.ts +39 -0
- package/dist/src/controls/skew.d.ts +33 -0
- package/dist/src/controls/util.d.ts +41 -0
- package/dist/src/controls/wrapWithFireEvent.d.ts +8 -0
- package/dist/src/controls/wrapWithFixedAnchor.d.ts +9 -0
- package/dist/src/env/browser.d.ts +3 -0
- package/dist/src/env/index.d.ts +15 -0
- package/dist/src/env/node.d.ts +5 -0
- package/dist/src/env/types.d.ts +15 -0
- package/dist/src/filters/BaseFilter.d.ts +153 -0
- package/dist/src/filters/BlendColor.d.ts +80 -0
- package/dist/src/filters/BlendImage.d.ts +92 -0
- package/dist/src/filters/Blur.d.ts +51 -0
- package/dist/src/filters/Boilerplate.d.ts +48 -0
- package/dist/src/filters/Brightness.d.ts +47 -0
- package/dist/src/filters/Canvas2dFilterBackend.d.ts +27 -0
- package/dist/src/filters/ColorMatrix.d.ts +63 -0
- package/dist/src/filters/ColorMatrixFilters.d.ts +545 -0
- package/dist/src/filters/Composed.d.ts +45 -0
- package/dist/src/filters/Contrast.d.ts +45 -0
- package/dist/src/filters/Convolute.d.ts +82 -0
- package/dist/src/filters/FilterBackend.d.ts +14 -0
- package/dist/src/filters/GLProbes/GLProbe.d.ts +11 -0
- package/dist/src/filters/GLProbes/NodeGLProbe.d.ts +11 -0
- package/dist/src/filters/GLProbes/WebGLProbe.d.ts +20 -0
- package/dist/src/filters/Gamma.d.ts +54 -0
- package/dist/src/filters/Grayscale.d.ts +46 -0
- package/dist/src/filters/HueRotation.d.ts +24 -0
- package/dist/src/filters/Invert.d.ts +55 -0
- package/dist/src/filters/Noise.d.ts +54 -0
- package/dist/src/filters/Pixelate.d.ts +44 -0
- package/dist/src/filters/RemoveColor.d.ts +63 -0
- package/dist/src/filters/Resize.d.ts +136 -0
- package/dist/src/filters/Saturation.d.ts +48 -0
- package/dist/src/filters/Vibrance.d.ts +48 -0
- package/dist/src/filters/WebGLFilterBackend.d.ts +126 -0
- package/dist/src/filters/filters.d.ts +21 -0
- package/dist/src/filters/index.d.ts +5 -0
- package/dist/src/filters/shaders/baseFilter.d.ts +4 -0
- package/dist/src/filters/shaders/blendColor.d.ts +13 -0
- package/dist/src/filters/shaders/blendImage.d.ts +3 -0
- package/dist/src/filters/shaders/blur.d.ts +2 -0
- package/dist/src/filters/shaders/brightness.d.ts +2 -0
- package/dist/src/filters/shaders/colorMatrix.d.ts +2 -0
- package/dist/src/filters/shaders/constrast.d.ts +2 -0
- package/dist/src/filters/shaders/convolute.d.ts +11 -0
- package/dist/src/filters/shaders/gamma.d.ts +2 -0
- package/dist/src/filters/shaders/grayscale.d.ts +3 -0
- package/dist/src/filters/shaders/invert.d.ts +2 -0
- package/dist/src/filters/shaders/noise.d.ts +2 -0
- package/dist/src/filters/shaders/pixelate.d.ts +2 -0
- package/dist/src/filters/shaders/removeColor.d.ts +2 -0
- package/dist/src/filters/shaders/saturation.d.ts +2 -0
- package/dist/src/filters/shaders/vibrance.d.ts +2 -0
- package/dist/src/filters/typedefs.d.ts +49 -0
- package/dist/src/gradient/Gradient.d.ts +149 -0
- package/dist/src/gradient/constants.d.ts +15 -0
- package/dist/src/gradient/parser/index.d.ts +4 -0
- package/dist/src/gradient/parser/misc.d.ts +4 -0
- package/dist/src/gradient/parser/parseColorStops.d.ts +3 -0
- package/dist/src/gradient/parser/parseCoords.d.ts +17 -0
- package/dist/src/gradient/typedefs.d.ts +93 -0
- package/dist/src/mixins/eraser_brush.mixin.d.ts +2 -0
- package/dist/src/parkinglot/canvas_animation.mixin.d.ts +2 -0
- package/dist/src/parkinglot/straighten.d.ts +2 -0
- package/dist/src/parser/applyViewboxTransform.d.ts +5 -0
- package/dist/src/parser/attributes.d.ts +6 -0
- package/dist/src/parser/constants.d.ts +53 -0
- package/dist/src/parser/doesSomeParentMatch.d.ts +2 -0
- package/dist/src/parser/elementById.d.ts +6 -0
- package/dist/src/parser/elementMatchesRule.d.ts +5 -0
- package/dist/src/parser/elements_parser.d.ts +3 -0
- package/dist/src/parser/getCSSRules.d.ts +7 -0
- package/dist/src/parser/getGlobalStylesForElement.d.ts +5 -0
- package/dist/src/parser/getGradientDefs.d.ts +7 -0
- package/dist/src/parser/getMultipleNodes.d.ts +2 -0
- package/dist/src/parser/getSvgRegex.d.ts +2 -0
- package/dist/src/parser/hasAncestorWithNodeName.d.ts +2 -0
- package/dist/src/parser/index.d.ts +10 -0
- package/dist/src/parser/loadSVGFromString.d.ts +12 -0
- package/dist/src/parser/loadSVGFromURL.d.ts +13 -0
- package/dist/src/parser/normalizeAttr.d.ts +2 -0
- package/dist/src/parser/normalizeValue.d.ts +2 -0
- package/dist/src/parser/parseAttributes.d.ts +9 -0
- package/dist/src/parser/parseElements.d.ts +11 -0
- package/dist/src/parser/parseFontDeclaration.d.ts +10 -0
- package/dist/src/parser/parsePointsAttribute.d.ts +12 -0
- package/dist/src/parser/parseSVGDocument.d.ts +15 -0
- package/dist/src/parser/parseStyleAttribute.d.ts +9 -0
- package/dist/src/parser/parseStyleObject.d.ts +2 -0
- package/dist/src/parser/parseStyleString.d.ts +2 -0
- package/dist/src/parser/parseTransformAttribute.d.ts +10 -0
- package/dist/src/parser/parseUseDirectives.d.ts +2 -0
- package/dist/src/parser/percent.d.ts +9 -0
- package/dist/src/parser/recursivelyParseGradientsXlink.d.ts +2 -0
- package/dist/src/parser/rotateMatrix.d.ts +2 -0
- package/dist/src/parser/scaleMatrix.d.ts +2 -0
- package/dist/src/parser/selectorMatches.d.ts +2 -0
- package/dist/src/parser/setStrokeFillOpacity.d.ts +6 -0
- package/dist/src/parser/skewMatrix.d.ts +2 -0
- package/dist/src/parser/translateMatrix.d.ts +2 -0
- package/dist/src/shapes/ActiveSelection.d.ts +82 -0
- package/dist/src/shapes/Circle.d.ts +99 -0
- package/dist/src/shapes/Ellipse.d.ts +84 -0
- package/dist/src/shapes/Group.d.ts +408 -0
- package/dist/src/shapes/IText/DraggableTextDelegate.d.ts +78 -0
- package/dist/src/shapes/IText/IText.d.ts +335 -0
- package/dist/src/shapes/IText/ITextBehavior.d.ts +287 -0
- package/dist/src/shapes/IText/ITextClickBehavior.d.ts +83 -0
- package/dist/src/shapes/IText/ITextKeyBehavior.d.ts +195 -0
- package/dist/src/shapes/IText/constants.d.ts +13 -0
- package/dist/src/shapes/Image.d.ts +311 -0
- package/dist/src/shapes/Line.d.ts +126 -0
- package/dist/src/shapes/Object/AnimatableObject.d.ts +33 -0
- package/dist/src/shapes/Object/FabricObject.d.ts +11 -0
- package/dist/src/shapes/Object/FabricObjectSVGExportMixin.d.ts +74 -0
- package/dist/src/shapes/Object/InteractiveObject.d.ts +296 -0
- package/dist/src/shapes/Object/Object.d.ts +594 -0
- package/dist/src/shapes/Object/ObjectGeometry.d.ts +327 -0
- package/dist/src/shapes/Object/ObjectOrigin.d.ts +109 -0
- package/dist/src/shapes/Object/StackedObject.d.ts +72 -0
- package/dist/src/shapes/Object/defaultValues.d.ts +76 -0
- package/dist/src/shapes/Object/types/BaseProps.d.ts +84 -0
- package/dist/src/shapes/Object/types/BorderProps.d.ts +37 -0
- package/dist/src/shapes/Object/types/ControlProps.d.ts +62 -0
- package/dist/src/shapes/Object/types/FabricObjectProps.d.ts +96 -0
- package/dist/src/shapes/Object/types/FillStrokeProps.d.ts +80 -0
- package/dist/src/shapes/Object/types/LockInteractionProps.d.ts +51 -0
- package/dist/src/shapes/Object/types/ObjectProps.d.ts +42 -0
- package/dist/src/shapes/Object/types/SerializedObjectProps.d.ts +66 -0
- package/dist/src/shapes/Object/types/index.d.ts +6 -0
- package/dist/src/shapes/Path.d.ts +130 -0
- package/dist/src/shapes/Polygon.d.ts +9 -0
- package/dist/src/shapes/Polyline.d.ts +140 -0
- package/dist/src/shapes/Rect.d.ts +76 -0
- package/dist/src/shapes/Text/StyledText.d.ts +119 -0
- package/dist/src/shapes/Text/Text.d.ts +673 -0
- package/dist/src/shapes/Text/TextSVGExportMixin.d.ts +32 -0
- package/dist/src/shapes/Text/constants.d.ts +7 -0
- package/dist/src/shapes/Textbox.d.ts +185 -0
- package/dist/src/shapes/Triangle.d.ts +25 -0
- package/dist/src/typedefs.d.ts +90 -0
- package/dist/src/util/animation/AnimationBase.d.ts +54 -0
- package/dist/src/util/animation/AnimationFrameProvider.d.ts +3 -0
- package/dist/src/util/animation/AnimationRegistry.d.ts +29 -0
- package/dist/src/util/animation/ArrayAnimation.d.ts +10 -0
- package/dist/src/util/animation/ColorAnimation.d.ts +11 -0
- package/dist/src/util/animation/ValueAnimation.d.ts +10 -0
- package/dist/src/util/animation/animate.d.ts +37 -0
- package/dist/src/util/animation/easing.d.ts +130 -0
- package/dist/src/util/animation/types.d.ts +87 -0
- package/dist/src/util/applyMixins.d.ts +8 -0
- package/dist/src/util/dom_event.d.ts +5 -0
- package/dist/src/util/dom_misc.d.ts +39 -0
- package/dist/src/util/dom_request.d.ts +14 -0
- package/dist/src/util/dom_style.d.ts +7 -0
- package/dist/src/util/fireEvent.d.ts +3 -0
- package/dist/src/util/index.d.ts +35 -0
- package/dist/src/util/internals/cloneDeep.d.ts +2 -0
- package/dist/src/util/internals/getRandomInt.d.ts +8 -0
- package/dist/src/util/internals/ifNaN.d.ts +8 -0
- package/dist/src/util/internals/index.d.ts +4 -0
- package/dist/src/util/internals/removeFromArray.d.ts +9 -0
- package/dist/src/util/internals/uid.d.ts +2 -0
- package/dist/src/util/lang_string.d.ts +22 -0
- package/dist/src/util/misc/boundingBoxFromPoints.d.ts +9 -0
- package/dist/src/util/misc/capValue.d.ts +2 -0
- package/dist/src/util/misc/cos.d.ts +10 -0
- package/dist/src/util/misc/dom.d.ts +28 -0
- package/dist/src/util/misc/findScaleTo.d.ts +29 -0
- package/dist/src/util/misc/groupSVGElements.d.ts +9 -0
- package/dist/src/util/misc/isTransparent.d.ts +11 -0
- package/dist/src/util/misc/matrix.d.ts +92 -0
- package/dist/src/util/misc/mergeClipPaths.d.ts +23 -0
- package/dist/src/util/misc/objectEnlive.d.ts +56 -0
- package/dist/src/util/misc/objectTransforms.d.ts +68 -0
- package/dist/src/util/misc/pick.d.ts +9 -0
- package/dist/src/util/misc/planeChange.d.ts +84 -0
- package/dist/src/util/misc/projectStroke/StrokeLineCapProjections.d.ts +51 -0
- package/dist/src/util/misc/projectStroke/StrokeLineJoinProjections.d.ts +81 -0
- package/dist/src/util/misc/projectStroke/StrokeProjectionsBase.d.ts +25 -0
- package/dist/src/util/misc/projectStroke/index.d.ts +11 -0
- package/dist/src/util/misc/projectStroke/types.d.ts +23 -0
- package/dist/src/util/misc/radiansDegreesConversion.d.ts +14 -0
- package/dist/src/util/misc/resolveOrigin.d.ts +9 -0
- package/dist/src/util/misc/rotatePoint.d.ts +12 -0
- package/dist/src/util/misc/sin.d.ts +10 -0
- package/dist/src/util/misc/svgParsing.d.ts +53 -0
- package/dist/src/util/misc/textStyles.d.ts +32 -0
- package/dist/src/util/misc/toFixed.d.ts +8 -0
- package/dist/src/util/misc/vectors.d.ts +57 -0
- package/dist/src/util/path/index.d.ts +96 -0
- package/dist/src/util/path/regex.d.ts +3 -0
- package/dist/src/util/path/typechecks.d.ts +24 -0
- package/dist/src/util/path/typedefs.d.ts +220 -0
- package/dist/src/util/transform_matrix_removal.d.ts +14 -0
- package/dist/src/util/types.d.ts +19 -0
- package/fabric.ts +51 -0
- package/index.node.ts +37 -0
- package/index.ts +1 -0
- package/package.json +100 -40
- package/publish.js +0 -26
- package/rollup.config.mjs +91 -0
- package/rollup.test.config.js +24 -0
- package/scripts/build.mjs +50 -0
- package/scripts/buildLock.mjs +115 -0
- package/scripts/buildReporter.mjs +15 -0
- package/scripts/buildStats.mjs +139 -0
- package/scripts/dirname.mjs +14 -0
- package/scripts/git.mjs +36 -0
- package/scripts/index.mjs +564 -0
- package/scripts/sandbox.mjs +149 -0
- package/src/ClassRegistry.ts +56 -0
- package/src/Collection.ts +346 -0
- package/src/CommonMethods.ts +63 -0
- package/src/EventTypeDefs.ts +296 -0
- package/src/Intersection.ts +302 -0
- package/src/Observable.ts +181 -0
- package/src/Pattern.ts +227 -0
- package/src/Point.ts +388 -0
- package/src/Shadow.ts +214 -0
- package/src/brushes/{base_brush.class.js → BaseBrush.ts} +65 -42
- package/src/brushes/CircleBrush.ts +145 -0
- package/src/brushes/PatternBrush.ts +70 -0
- package/src/brushes/PencilBrush.ts +300 -0
- package/src/brushes/SprayBrush.ts +219 -0
- package/src/cache.ts +90 -0
- package/src/canvas/Canvas.ts +1607 -0
- package/src/canvas/SelectableCanvas.ts +1608 -0
- package/src/canvas/StaticCanvas.ts +1734 -0
- package/src/canvas/TextEditingManager.ts +48 -0
- package/src/canvas/canvas_gestures.mixin.ts +207 -0
- package/src/color/Color.ts +404 -0
- package/src/color/color_map.ts +154 -0
- package/src/color/constants.ts +26 -0
- package/src/color/util.ts +32 -0
- package/src/config.ts +159 -0
- package/src/constants.ts +20 -0
- package/src/controls/Control.ts +380 -0
- package/src/controls/changeWidth.ts +52 -0
- package/src/controls/commonControls.ts +105 -0
- package/src/controls/controlRendering.ts +138 -0
- package/src/controls/drag.ts +31 -0
- package/src/controls/index.ts +22 -0
- package/src/controls/polyControl.ts +135 -0
- package/src/controls/rotate.ts +87 -0
- package/src/controls/scale.ts +277 -0
- package/src/controls/scaleSkew.ts +92 -0
- package/src/controls/skew.ts +242 -0
- package/src/controls/util.ts +154 -0
- package/src/controls/wrapWithFireEvent.ts +25 -0
- package/src/controls/wrapWithFixedAnchor.ts +20 -0
- package/src/env/browser.ts +32 -0
- package/src/env/index.ts +24 -0
- package/src/env/node.ts +56 -0
- package/src/env/types.ts +15 -0
- package/src/filters/{base_filter.class.js → BaseFilter.ts} +192 -151
- package/src/filters/BlendColor.ts +217 -0
- package/src/filters/BlendImage.ts +228 -0
- package/src/filters/Blur.ts +179 -0
- package/src/filters/Boilerplate.ts +94 -0
- package/src/filters/Brightness.ts +83 -0
- package/src/filters/Canvas2dFilterBackend.ts +65 -0
- package/src/filters/ColorMatrix.ts +145 -0
- package/src/filters/ColorMatrixFilters.ts +77 -0
- package/src/filters/Composed.ts +76 -0
- package/src/filters/Contrast.ts +82 -0
- package/src/filters/Convolute.ts +184 -0
- package/src/filters/FilterBackend.ts +34 -0
- package/src/filters/GLProbes/GLProbe.ts +11 -0
- package/src/filters/GLProbes/NodeGLProbe.ts +15 -0
- package/src/filters/GLProbes/WebGLProbe.ts +46 -0
- package/src/filters/Gamma.ts +110 -0
- package/src/filters/Grayscale.ts +102 -0
- package/src/filters/HueRotation.ts +62 -0
- package/src/filters/Invert.ts +99 -0
- package/src/filters/Noise.ts +94 -0
- package/src/filters/Pixelate.ts +96 -0
- package/src/filters/RemoveColor.ts +135 -0
- package/src/filters/Resize.ts +538 -0
- package/src/filters/Saturation.ts +87 -0
- package/src/filters/Vibrance.ts +88 -0
- package/src/filters/WebGLFilterBackend.ts +430 -0
- package/src/filters/filters.ts +28 -0
- package/src/filters/index.ts +5 -0
- package/src/filters/shaders/baseFilter.ts +19 -0
- package/src/filters/shaders/blendColor.ts +33 -0
- package/src/filters/shaders/blendImage.ts +32 -0
- package/src/filters/shaders/blur.ts +24 -0
- package/src/filters/shaders/brightness.ts +11 -0
- package/src/filters/shaders/colorMatrix.ts +12 -0
- package/src/filters/shaders/constrast.ts +11 -0
- package/src/filters/shaders/convolute.ts +154 -0
- package/src/filters/shaders/gamma.ts +15 -0
- package/src/filters/shaders/grayscale.ts +36 -0
- package/src/filters/shaders/invert.ts +19 -0
- package/src/filters/shaders/noise.ts +16 -0
- package/src/filters/shaders/pixelate.ts +19 -0
- package/src/filters/shaders/removeColor.ts +13 -0
- package/src/filters/shaders/saturation.ts +15 -0
- package/src/filters/shaders/vibrance.ts +16 -0
- package/src/filters/typedefs.ts +65 -0
- package/src/gradient/Gradient.ts +406 -0
- package/src/gradient/constants.ts +12 -0
- package/src/gradient/parser/index.ts +3 -0
- package/src/gradient/parser/misc.ts +13 -0
- package/src/gradient/parser/parseColorStops.ts +56 -0
- package/src/gradient/parser/parseCoords.ts +73 -0
- package/src/gradient/typedefs.ts +104 -0
- package/src/mixins/{eraser_brush.mixin.js → eraser_brush.mixin.ts} +350 -239
- package/src/parkinglot/canvas_animation.mixin.ts +121 -0
- package/src/parkinglot/straighten.ts +58 -0
- package/src/parser/applyViewboxTransform.ts +157 -0
- package/src/parser/attributes.ts +25 -0
- package/src/parser/constants.ts +115 -0
- package/src/parser/doesSomeParentMatch.ts +19 -0
- package/src/parser/elementById.ts +21 -0
- package/src/parser/elementMatchesRule.ts +16 -0
- package/src/parser/elements_parser.ts +191 -0
- package/src/parser/getCSSRules.ts +62 -0
- package/src/parser/getGlobalStylesForElement.ts +19 -0
- package/src/parser/getGradientDefs.ts +31 -0
- package/src/parser/getMultipleNodes.ts +15 -0
- package/src/parser/getSvgRegex.ts +5 -0
- package/src/parser/hasAncestorWithNodeName.ts +14 -0
- package/src/parser/index.ts +9 -0
- package/src/parser/loadSVGFromString.ts +26 -0
- package/src/parser/loadSVGFromURL.ts +40 -0
- package/src/parser/normalizeAttr.ts +10 -0
- package/src/parser/normalizeValue.ts +63 -0
- package/src/parser/parseAttributes.ts +90 -0
- package/src/parser/parseElements.ts +28 -0
- package/src/parser/parseFontDeclaration.ts +44 -0
- package/src/parser/parsePointsAttribute.ts +34 -0
- package/src/parser/parseSVGDocument.ts +93 -0
- package/src/parser/parseStyleAttribute.ts +27 -0
- package/src/parser/parseStyleObject.ts +15 -0
- package/src/parser/parseStyleString.ts +16 -0
- package/src/parser/parseTransformAttribute.ts +155 -0
- package/src/parser/parseUseDirectives.ts +78 -0
- package/src/parser/percent.ts +27 -0
- package/src/parser/recursivelyParseGradientsXlink.ts +42 -0
- package/src/parser/rotateMatrix.ts +21 -0
- package/src/parser/scaleMatrix.ts +9 -0
- package/src/parser/selectorMatches.ts +25 -0
- package/src/parser/setStrokeFillOpacity.ts +40 -0
- package/src/parser/skewMatrix.ts +6 -0
- package/src/parser/translateMatrix.ts +8 -0
- package/src/shapes/ActiveSelection.ts +189 -0
- package/src/shapes/Circle.ts +242 -0
- package/src/shapes/Ellipse.ts +179 -0
- package/src/shapes/Group.ts +1100 -0
- package/src/shapes/IText/DraggableTextDelegate.ts +382 -0
- package/src/shapes/IText/IText.ts +693 -0
- package/src/shapes/IText/ITextBehavior.ts +1064 -0
- package/src/shapes/IText/ITextClickBehavior.ts +325 -0
- package/src/shapes/IText/ITextKeyBehavior.ts +685 -0
- package/src/shapes/IText/constants.ts +47 -0
- package/src/shapes/Image.ts +841 -0
- package/src/shapes/Line.ts +346 -0
- package/src/shapes/Object/AnimatableObject.ts +106 -0
- package/src/shapes/Object/FabricObject.ts +29 -0
- package/src/shapes/Object/FabricObjectSVGExportMixin.ts +277 -0
- package/src/shapes/Object/InteractiveObject.ts +672 -0
- package/src/shapes/Object/Object.ts +1561 -0
- package/src/shapes/Object/ObjectGeometry.ts +813 -0
- package/src/shapes/Object/ObjectOrigin.ts +276 -0
- package/src/shapes/Object/StackedObject.ts +206 -0
- package/src/shapes/Object/defaultValues.ts +108 -0
- package/src/shapes/Object/types/BaseProps.ts +96 -0
- package/src/shapes/Object/types/BorderProps.ts +40 -0
- package/src/shapes/Object/types/ControlProps.ts +69 -0
- package/src/shapes/Object/types/FabricObjectProps.ts +111 -0
- package/src/shapes/Object/types/FillStrokeProps.ts +90 -0
- package/src/shapes/Object/types/LockInteractionProps.ts +57 -0
- package/src/shapes/Object/types/ObjectProps.ts +46 -0
- package/src/shapes/Object/types/SerializedObjectProps.ts +73 -0
- package/src/shapes/Object/types/index.ts +8 -0
- package/src/shapes/Path.ts +416 -0
- package/src/shapes/Polygon.ts +20 -0
- package/src/shapes/Polyline.ts +359 -0
- package/src/shapes/Rect.ts +233 -0
- package/src/shapes/Text/StyledText.ts +329 -0
- package/src/shapes/Text/Text.ts +1884 -0
- package/src/shapes/Text/TextSVGExportMixin.ts +288 -0
- package/src/shapes/Text/constants.ts +91 -0
- package/src/shapes/Textbox.ts +477 -0
- package/src/shapes/Triangle.ts +60 -0
- package/src/typedefs.ts +115 -0
- package/src/util/animation/AnimationBase.ts +166 -0
- package/src/util/animation/AnimationFrameProvider.ts +9 -0
- package/src/util/animation/AnimationRegistry.ts +58 -0
- package/src/util/animation/ArrayAnimation.ts +27 -0
- package/src/util/animation/ColorAnimation.ts +74 -0
- package/src/util/animation/ValueAnimation.ts +29 -0
- package/src/util/animation/animate.ts +74 -0
- package/src/util/animation/easing.ts +327 -0
- package/src/util/animation/types.ts +136 -0
- package/src/util/applyMixins.ts +22 -0
- package/src/util/dom_event.ts +28 -0
- package/src/util/dom_misc.ts +121 -0
- package/src/util/dom_request.ts +64 -0
- package/src/util/dom_style.ts +20 -0
- package/src/util/fireEvent.ts +15 -0
- package/src/util/index.ts +102 -0
- package/src/util/internals/cloneDeep.ts +2 -0
- package/src/util/internals/getRandomInt.ts +8 -0
- package/src/util/internals/ifNaN.ts +9 -0
- package/src/util/internals/index.ts +3 -0
- package/src/util/internals/removeFromArray.ts +14 -0
- package/src/util/internals/uid.ts +3 -0
- package/src/util/lang_string.ts +79 -0
- package/src/util/misc/boundingBoxFromPoints.ts +37 -0
- package/src/util/misc/capValue.ts +2 -0
- package/src/util/misc/cos.ts +24 -0
- package/src/util/misc/dom.ts +50 -0
- package/src/util/misc/findScaleTo.ts +44 -0
- package/src/util/misc/groupSVGElements.ts +15 -0
- package/src/util/misc/isTransparent.ts +28 -0
- package/src/util/misc/matrix.ts +207 -0
- package/src/util/misc/mergeClipPaths.ts +40 -0
- package/src/util/misc/objectEnlive.ts +189 -0
- package/src/util/misc/objectTransforms.ts +129 -0
- package/src/util/misc/pick.ts +29 -0
- package/src/util/misc/planeChange.ts +136 -0
- package/src/util/misc/projectStroke/StrokeLineCapProjections.ts +112 -0
- package/src/util/misc/projectStroke/StrokeLineJoinProjections.ts +226 -0
- package/src/util/misc/projectStroke/StrokeProjectionsBase.ts +75 -0
- package/src/util/misc/projectStroke/index.ts +53 -0
- package/src/util/misc/projectStroke/types.ts +24 -0
- package/src/util/misc/radiansDegreesConversion.ts +18 -0
- package/src/util/misc/resolveOrigin.ts +22 -0
- package/src/util/misc/rotatePoint.ts +15 -0
- package/src/util/misc/sin.ts +26 -0
- package/src/util/misc/svgParsing.ts +181 -0
- package/src/util/misc/textStyles.ts +134 -0
- package/src/util/misc/toFixed.ts +8 -0
- package/src/util/misc/vectors.ts +82 -0
- package/src/util/path/index.ts +1038 -0
- package/src/util/path/regex.ts +41 -0
- package/src/util/path/typechecks.ts +145 -0
- package/src/util/path/typedefs.ts +305 -0
- package/src/util/transform_matrix_removal.ts +60 -0
- package/src/util/types.ts +78 -0
- package/tsconfig.json +106 -0
- package/HEADER.js +0 -203
- package/build.js +0 -287
- package/dist/fabric.js +0 -31187
- package/dist/fabric.min.js +0 -1
- package/old-travis-reference.yml +0 -97
- package/src/brushes/circle_brush.class.js +0 -144
- package/src/brushes/pattern_brush.class.js +0 -61
- package/src/brushes/pencil_brush.class.js +0 -310
- package/src/brushes/spray_brush.class.js +0 -219
- package/src/canvas.class.js +0 -1312
- package/src/color.class.js +0 -636
- package/src/control.class.js +0 -339
- package/src/controls.actions.js +0 -740
- package/src/controls.render.js +0 -99
- package/src/elements_parser.js +0 -152
- package/src/filters/2d_backend.class.js +0 -65
- package/src/filters/blendcolor_filter.class.js +0 -251
- package/src/filters/blendimage_filter.class.js +0 -247
- package/src/filters/blur_filter.class.js +0 -217
- package/src/filters/brightness_filter.class.js +0 -113
- package/src/filters/colormatrix_filter.class.js +0 -159
- package/src/filters/composed_filter.class.js +0 -72
- package/src/filters/contrast_filter.class.js +0 -113
- package/src/filters/convolute_filter.class.js +0 -352
- package/src/filters/filter_boilerplate.js +0 -111
- package/src/filters/filter_generator.js +0 -85
- package/src/filters/gamma_filter.class.js +0 -136
- package/src/filters/grayscale_filter.class.js +0 -154
- package/src/filters/hue_rotation.class.js +0 -107
- package/src/filters/invert_filter.class.js +0 -111
- package/src/filters/noise_filter.class.js +0 -134
- package/src/filters/pixelate_filter.class.js +0 -137
- package/src/filters/removecolor_filter.class.js +0 -173
- package/src/filters/resize_filter.class.js +0 -490
- package/src/filters/saturate_filter.class.js +0 -119
- package/src/filters/vibrance_filter.class.js +0 -122
- package/src/filters/webgl_backend.class.js +0 -396
- package/src/globalFabric.js +0 -4
- package/src/gradient.class.js +0 -490
- package/src/intersection.class.js +0 -172
- package/src/log.js +0 -11
- package/src/mixins/animation.mixin.js +0 -231
- package/src/mixins/canvas_dataurl_exporter.mixin.js +0 -97
- package/src/mixins/canvas_events.mixin.js +0 -974
- package/src/mixins/canvas_gestures.mixin.js +0 -149
- package/src/mixins/canvas_grouping.mixin.js +0 -177
- package/src/mixins/canvas_serialization.mixin.js +0 -228
- package/src/mixins/collection.mixin.js +0 -170
- package/src/mixins/default_controls.js +0 -114
- package/src/mixins/itext.svg_export.js +0 -241
- package/src/mixins/itext_behavior.mixin.js +0 -940
- package/src/mixins/itext_click_behavior.mixin.js +0 -278
- package/src/mixins/itext_key_behavior.mixin.js +0 -694
- package/src/mixins/object.svg_export.js +0 -258
- package/src/mixins/object_geometry.mixin.js +0 -683
- package/src/mixins/object_interactivity.mixin.js +0 -314
- package/src/mixins/object_origin.mixin.js +0 -255
- package/src/mixins/object_stacking.mixin.js +0 -80
- package/src/mixins/object_straightening.mixin.js +0 -80
- package/src/mixins/observable.mixin.js +0 -141
- package/src/mixins/shared_methods.mixin.js +0 -94
- package/src/mixins/stateful.mixin.js +0 -107
- package/src/mixins/text_style.mixin.js +0 -324
- package/src/parser.js +0 -1090
- package/src/pattern.class.js +0 -189
- package/src/point.class.js +0 -337
- package/src/shadow.class.js +0 -195
- package/src/shapes/active_selection.class.js +0 -155
- package/src/shapes/circle.class.js +0 -210
- package/src/shapes/ellipse.class.js +0 -181
- package/src/shapes/group.class.js +0 -593
- package/src/shapes/image.class.js +0 -764
- package/src/shapes/itext.class.js +0 -526
- package/src/shapes/line.class.js +0 -324
- package/src/shapes/object.class.js +0 -2008
- package/src/shapes/path.class.js +0 -384
- package/src/shapes/polygon.class.js +0 -81
- package/src/shapes/polyline.class.js +0 -268
- package/src/shapes/rect.class.js +0 -187
- package/src/shapes/text.class.js +0 -1696
- package/src/shapes/textbox.class.js +0 -461
- package/src/shapes/triangle.class.js +0 -93
- package/src/static_canvas.class.js +0 -1881
- package/src/util/anim_ease.js +0 -398
- package/src/util/animate.js +0 -254
- package/src/util/animate_color.js +0 -74
- package/src/util/dom_event.js +0 -50
- package/src/util/dom_misc.js +0 -300
- package/src/util/dom_request.js +0 -54
- package/src/util/dom_style.js +0 -70
- package/src/util/lang_array.js +0 -94
- package/src/util/lang_class.js +0 -115
- package/src/util/lang_object.js +0 -75
- package/src/util/lang_string.js +0 -110
- package/src/util/misc.js +0 -1330
- package/src/util/named_accessors.mixin.js +0 -428
- package/src/util/path.js +0 -829
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { XY, Point } from '../../../Point';
|
|
2
|
+
import { StrokeProjectionsBase } from './StrokeProjectionsBase';
|
|
3
|
+
import { TProjection, TProjectStrokeOnPointsOptions } from './types';
|
|
4
|
+
/**
|
|
5
|
+
* class in charge of finding projections for each type of line cap for start/end of an open path
|
|
6
|
+
* @see {@link [Open path projections at #8344](https://github.com/fabricjs/fabric.js/pull/8344#1-open-path)}
|
|
7
|
+
*
|
|
8
|
+
* Reference:
|
|
9
|
+
* - MDN:
|
|
10
|
+
* - https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineCap
|
|
11
|
+
* - https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-linecap
|
|
12
|
+
* - Spec: https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-linecap-dev
|
|
13
|
+
* - Playground to understand how the line joins works: https://hypertolosana.github.io/efficient-webgl-stroking/index.html
|
|
14
|
+
* - View the calculated projections for each of the control points: https://codesandbox.io/s/project-stroke-points-with-context-to-trace-b8jc4j?file=/src/index.js
|
|
15
|
+
*/
|
|
16
|
+
export declare class StrokeLineCapProjections extends StrokeProjectionsBase {
|
|
17
|
+
/**
|
|
18
|
+
* edge point
|
|
19
|
+
*/
|
|
20
|
+
A: Point;
|
|
21
|
+
/**
|
|
22
|
+
* point next to edge point
|
|
23
|
+
*/
|
|
24
|
+
T: Point;
|
|
25
|
+
constructor(A: XY, T: XY, options: TProjectStrokeOnPointsOptions);
|
|
26
|
+
calcOrthogonalProjection(from: Point, to: Point, magnitude?: number): Point;
|
|
27
|
+
/**
|
|
28
|
+
* OPEN PATH START/END - Line cap: Butt
|
|
29
|
+
* Calculation: to find the projections, just find the points orthogonal to the stroke
|
|
30
|
+
*
|
|
31
|
+
* @see https://github.com/fabricjs/fabric.js/pull/8344#1-1-butt
|
|
32
|
+
*/
|
|
33
|
+
projectButt(): Point[];
|
|
34
|
+
/**
|
|
35
|
+
* OPEN PATH START/END - Line cap: Round
|
|
36
|
+
* Calculation: same as stroke line join `round`
|
|
37
|
+
*
|
|
38
|
+
* @see https://github.com/fabricjs/fabric.js/pull/8344#1-2-round
|
|
39
|
+
*/
|
|
40
|
+
projectRound(): Point[];
|
|
41
|
+
/**
|
|
42
|
+
* OPEN PATH START/END - Line cap: Square
|
|
43
|
+
* Calculation: project a rectangle of points on the stroke in the opposite direction of the vector `AT`
|
|
44
|
+
*
|
|
45
|
+
* @see https://github.com/fabricjs/fabric.js/pull/8344#1-3-square
|
|
46
|
+
*/
|
|
47
|
+
projectSquare(): Point[];
|
|
48
|
+
protected projectPoints(): Point[];
|
|
49
|
+
project(): TProjection[];
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=StrokeLineCapProjections.d.ts.map
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { XY, Point } from '../../../Point';
|
|
2
|
+
import { getBisector } from '../vectors';
|
|
3
|
+
import { StrokeProjectionsBase } from './StrokeProjectionsBase';
|
|
4
|
+
import { TProjection, TProjectStrokeOnPointsOptions } from './types';
|
|
5
|
+
/**
|
|
6
|
+
* class in charge of finding projections for each type of line join
|
|
7
|
+
* @see {@link [Closed path projections at #8344](https://github.com/fabricjs/fabric.js/pull/8344#2-closed-path)}
|
|
8
|
+
*
|
|
9
|
+
* - MDN:
|
|
10
|
+
* - https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineJoin
|
|
11
|
+
* - https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-linejoin
|
|
12
|
+
* - Spec: https://svgwg.org/svg2-draft/painting.html#StrokeLinejoinProperty
|
|
13
|
+
* - Playground to understand how the line joins works: https://hypertolosana.github.io/efficient-webgl-stroking/index.html
|
|
14
|
+
* - View the calculated projections for each of the control points: https://codesandbox.io/s/project-stroke-points-with-context-to-trace-b8jc4j?file=/src/index.js
|
|
15
|
+
*
|
|
16
|
+
*/
|
|
17
|
+
export declare class StrokeLineJoinProjections extends StrokeProjectionsBase {
|
|
18
|
+
/**
|
|
19
|
+
* The point being projected (the angle ∠BAC)
|
|
20
|
+
*/
|
|
21
|
+
A: Point;
|
|
22
|
+
/**
|
|
23
|
+
* The point before A
|
|
24
|
+
*/
|
|
25
|
+
B: Point;
|
|
26
|
+
/**
|
|
27
|
+
* The point after A
|
|
28
|
+
*/
|
|
29
|
+
C: Point;
|
|
30
|
+
/**
|
|
31
|
+
* The bisector of A (∠BAC)
|
|
32
|
+
*/
|
|
33
|
+
bisector: ReturnType<typeof getBisector>;
|
|
34
|
+
constructor(A: XY, B: XY, C: XY, options: TProjectStrokeOnPointsOptions);
|
|
35
|
+
get bisectorVector(): Point;
|
|
36
|
+
get bisectorAngle(): import("../../../typedefs").TRadian;
|
|
37
|
+
calcOrthogonalProjection(from: Point, to: Point, magnitude?: number): Point;
|
|
38
|
+
/**
|
|
39
|
+
* BEVEL
|
|
40
|
+
* Calculation: the projection points are formed by the vector orthogonal to the vertex.
|
|
41
|
+
*
|
|
42
|
+
* @see https://github.com/fabricjs/fabric.js/pull/8344#2-2-bevel
|
|
43
|
+
*/
|
|
44
|
+
projectBevel(): Point[];
|
|
45
|
+
/**
|
|
46
|
+
* MITER
|
|
47
|
+
* Calculation: the corner is formed by extending the outer edges of the stroke
|
|
48
|
+
* at the tangents of the path segments until they intersect.
|
|
49
|
+
*
|
|
50
|
+
* @see https://github.com/fabricjs/fabric.js/pull/8344#2-1-miter
|
|
51
|
+
*/
|
|
52
|
+
projectMiter(): Point[];
|
|
53
|
+
/**
|
|
54
|
+
* ROUND (without skew)
|
|
55
|
+
* Calculation: the projections are the two vectors parallel to X and Y axes
|
|
56
|
+
*
|
|
57
|
+
* @see https://github.com/fabricjs/fabric.js/pull/8344#2-3-1-round-without-skew
|
|
58
|
+
*/
|
|
59
|
+
private projectRoundNoSkew;
|
|
60
|
+
/**
|
|
61
|
+
* ROUND (with skew)
|
|
62
|
+
* Calculation: the projections are the points furthest from the vertex in
|
|
63
|
+
* the direction of the X and Y axes after distortion.
|
|
64
|
+
*
|
|
65
|
+
* @todo TODO:
|
|
66
|
+
* - Consider only projections that are inside the beginning and end of the circle segment
|
|
67
|
+
*
|
|
68
|
+
* @see https://github.com/fabricjs/fabric.js/pull/8344#2-3-2-round-skew
|
|
69
|
+
*/
|
|
70
|
+
private projectRoundWithSkew;
|
|
71
|
+
projectRound(): Point[];
|
|
72
|
+
/**
|
|
73
|
+
* Project stroke width on points returning projections for each point as follows:
|
|
74
|
+
* - `miter`: 1 point corresponding to the outer boundary. If the miter limit is exceeded, it will be 2 points (becomes bevel)
|
|
75
|
+
* - `bevel`: 2 points corresponding to the bevel possible boundaries, orthogonal to the stroke.
|
|
76
|
+
* - `round`: same as `bevel` when it has no skew, with skew are 4 points.
|
|
77
|
+
*/
|
|
78
|
+
protected projectPoints(): Point[];
|
|
79
|
+
project(): TProjection[];
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=StrokeLineJoinProjections.d.ts.map
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { XY, Point } from '../../../Point';
|
|
2
|
+
import { TProjectStrokeOnPointsOptions, TProjection } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* @see https://github.com/fabricjs/fabric.js/pull/8344
|
|
5
|
+
*/
|
|
6
|
+
export declare abstract class StrokeProjectionsBase {
|
|
7
|
+
options: TProjectStrokeOnPointsOptions;
|
|
8
|
+
scale: Point;
|
|
9
|
+
strokeUniformScalar: Point;
|
|
10
|
+
strokeProjectionMagnitude: number;
|
|
11
|
+
static getAcuteAngleFactor(vector1: Point, vector2?: Point): 1 | -1;
|
|
12
|
+
constructor(options: TProjectStrokeOnPointsOptions);
|
|
13
|
+
/**
|
|
14
|
+
* When the stroke is uniform, scaling affects the arrangement of points. So we must take it into account.
|
|
15
|
+
*/
|
|
16
|
+
protected createSideVector(from: XY, to: XY): Point;
|
|
17
|
+
protected abstract calcOrthogonalProjection(from: Point, to: Point, magnitude?: number): Point;
|
|
18
|
+
protected projectOrthogonally(from: Point, to: Point, magnitude?: number): Point;
|
|
19
|
+
protected isSkewed(): boolean;
|
|
20
|
+
protected applySkew(point: Point): Point;
|
|
21
|
+
protected scaleUnitVector(unitVector: Point, scalar: number): Point;
|
|
22
|
+
protected abstract projectPoints(): Point[];
|
|
23
|
+
abstract project(): TProjection[];
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=StrokeProjectionsBase.d.ts.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { XY } from '../../../Point';
|
|
2
|
+
import { TProjection, TProjectStrokeOnPointsOptions } from './types';
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
* Used to calculate object's bounding box
|
|
6
|
+
*
|
|
7
|
+
* @see https://github.com/fabricjs/fabric.js/pull/8344
|
|
8
|
+
*
|
|
9
|
+
*/
|
|
10
|
+
export declare const projectStrokeOnPoints: (points: XY[], options: TProjectStrokeOnPointsOptions, openPath?: boolean) => TProjection[];
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Point } from '../../../Point';
|
|
2
|
+
import { TDegree } from '../../../typedefs';
|
|
3
|
+
import { getBisector } from '../vectors';
|
|
4
|
+
export type TProjectStrokeOnPointsOptions = {
|
|
5
|
+
strokeWidth: number;
|
|
6
|
+
strokeLineCap: CanvasLineCap;
|
|
7
|
+
strokeLineJoin: CanvasLineJoin;
|
|
8
|
+
/**
|
|
9
|
+
* https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-miterlimit
|
|
10
|
+
*/
|
|
11
|
+
strokeMiterLimit: number;
|
|
12
|
+
strokeUniform: boolean;
|
|
13
|
+
scaleX: number;
|
|
14
|
+
scaleY: number;
|
|
15
|
+
skewX: TDegree;
|
|
16
|
+
skewY: TDegree;
|
|
17
|
+
};
|
|
18
|
+
export type TProjection = {
|
|
19
|
+
projectedPoint: Point;
|
|
20
|
+
originPoint: Point;
|
|
21
|
+
bisector?: ReturnType<typeof getBisector>;
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { TRadian, TDegree } from '../../typedefs';
|
|
2
|
+
/**
|
|
3
|
+
* Transforms degrees to radians.
|
|
4
|
+
* @param {TDegree} degrees value in degrees
|
|
5
|
+
* @return {TRadian} value in radians
|
|
6
|
+
*/
|
|
7
|
+
export declare const degreesToRadians: (degrees: TDegree) => TRadian;
|
|
8
|
+
/**
|
|
9
|
+
* Transforms radians to degrees.
|
|
10
|
+
* @param {TRadian} radians value in radians
|
|
11
|
+
* @return {TDegree} value in degrees
|
|
12
|
+
*/
|
|
13
|
+
export declare const radiansToDegrees: (radians: TRadian) => TDegree;
|
|
14
|
+
//# sourceMappingURL=radiansDegreesConversion.d.ts.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { TOriginX, TOriginY } from '../../typedefs';
|
|
2
|
+
/**
|
|
3
|
+
* Resolves origin value relative to center
|
|
4
|
+
* @private
|
|
5
|
+
* @param {TOriginX | TOriginY} originValue originX / originY
|
|
6
|
+
* @returns number
|
|
7
|
+
*/
|
|
8
|
+
export declare const resolveOrigin: (originValue: TOriginX | TOriginY | number) => number;
|
|
9
|
+
//# sourceMappingURL=resolveOrigin.d.ts.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Point } from '../../Point';
|
|
2
|
+
import type { TRadian } from '../../typedefs';
|
|
3
|
+
/**
|
|
4
|
+
* Rotates `point` around `origin` with `radians`
|
|
5
|
+
* @deprecated use the Point.rotate
|
|
6
|
+
* @param {Point} origin The origin of the rotation
|
|
7
|
+
* @param {Point} origin The origin of the rotation
|
|
8
|
+
* @param {TRadian} radians The radians of the angle for the rotation
|
|
9
|
+
* @return {Point} The new rotated point
|
|
10
|
+
*/
|
|
11
|
+
export declare const rotatePoint: (point: Point, origin: Point, radians: TRadian) => Point;
|
|
12
|
+
//# sourceMappingURL=rotatePoint.d.ts.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { TRadian } from '../../typedefs';
|
|
2
|
+
/**
|
|
3
|
+
* Calculate the cos of an angle, avoiding returning floats for known results
|
|
4
|
+
* This function is here just to avoid getting 0.999999999999999 when dealing
|
|
5
|
+
* with numbers that are really 1 or 0.
|
|
6
|
+
* @param {TRadian} angle the angle
|
|
7
|
+
* @return {Number} the sin value for angle.
|
|
8
|
+
*/
|
|
9
|
+
export declare const sin: (angle: TRadian) => number;
|
|
10
|
+
//# sourceMappingURL=sin.d.ts.map
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { SVGElementName, TBBox, TMat2D } from '../../typedefs';
|
|
2
|
+
/**
|
|
3
|
+
* Returns array of attributes for given svg that fabric parses
|
|
4
|
+
* @param {SVGElementName} type Type of svg element (eg. 'circle')
|
|
5
|
+
* @return {Array} string names of supported attributes
|
|
6
|
+
*/
|
|
7
|
+
export declare const getSvgAttributes: (type: SVGElementName) => string[];
|
|
8
|
+
/**
|
|
9
|
+
* Converts from attribute value to pixel value if applicable.
|
|
10
|
+
* Returns converted pixels or original value not converted.
|
|
11
|
+
* @param {string} value number to operate on
|
|
12
|
+
* @param {number} fontSize
|
|
13
|
+
* @return {number}
|
|
14
|
+
*/
|
|
15
|
+
export declare const parseUnit: (value: string, fontSize: number) => number;
|
|
16
|
+
export declare const enum MeetOrSlice {
|
|
17
|
+
meet = "meet",
|
|
18
|
+
slice = "slice"
|
|
19
|
+
}
|
|
20
|
+
export declare const enum MinMidMax {
|
|
21
|
+
min = "Min",
|
|
22
|
+
mid = "Mid",
|
|
23
|
+
max = "Max",
|
|
24
|
+
none = "none"
|
|
25
|
+
}
|
|
26
|
+
export type TPreserveArParsed = {
|
|
27
|
+
meetOrSlice: MeetOrSlice;
|
|
28
|
+
alignX: MinMidMax;
|
|
29
|
+
alignY: MinMidMax;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Parse preserveAspectRatio attribute from element
|
|
33
|
+
* https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/preserveAspectRatio
|
|
34
|
+
* @param {string} attribute to be parsed
|
|
35
|
+
* @return {Object} an object containing align and meetOrSlice attribute
|
|
36
|
+
*/
|
|
37
|
+
export declare const parsePreserveAspectRatioAttribute: (attribute: string) => TPreserveArParsed;
|
|
38
|
+
/**
|
|
39
|
+
* given an array of 6 number returns something like `"matrix(...numbers)"`
|
|
40
|
+
* @param {TMat2D} transform an array with 6 numbers
|
|
41
|
+
* @return {String} transform matrix for svg
|
|
42
|
+
*/
|
|
43
|
+
export declare const matrixToSVG: (transform: TMat2D) => string;
|
|
44
|
+
/**
|
|
45
|
+
* Adobe Illustrator (at least CS5) is unable to render rgba()-based fill values
|
|
46
|
+
* we work around it by "moving" alpha channel into opacity attribute and setting fill's alpha to 1
|
|
47
|
+
* @param prop
|
|
48
|
+
* @param value
|
|
49
|
+
* @returns
|
|
50
|
+
*/
|
|
51
|
+
export declare const colorPropToSVG: (prop: string, value?: any) => string;
|
|
52
|
+
export declare const createSVGRect: (color: string, { left, top, width, height }: TBBox, precision?: number) => string;
|
|
53
|
+
//# sourceMappingURL=svgParsing.d.ts.map
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { TextStyle, TextStyleDeclaration } from '../../shapes/Text/StyledText';
|
|
2
|
+
export type TextStyleArray = {
|
|
3
|
+
start: number;
|
|
4
|
+
end: number;
|
|
5
|
+
style: TextStyleDeclaration;
|
|
6
|
+
}[];
|
|
7
|
+
/**
|
|
8
|
+
* @param {Object} prevStyle first style to compare
|
|
9
|
+
* @param {Object} thisStyle second style to compare
|
|
10
|
+
* @param {boolean} forTextSpans whether to check overline, underline, and line-through properties
|
|
11
|
+
* @return {boolean} true if the style changed
|
|
12
|
+
*/
|
|
13
|
+
export declare const hasStyleChanged: (prevStyle: TextStyleDeclaration, thisStyle: TextStyleDeclaration, forTextSpans?: boolean) => boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Returns the array form of a text object's inline styles property with styles grouped in ranges
|
|
16
|
+
* rather than per character. This format is less verbose, and is better suited for storage
|
|
17
|
+
* so it is used in serialization (not during runtime).
|
|
18
|
+
* @param {object} styles per character styles for a text object
|
|
19
|
+
* @param {String} text the text string that the styles are applied to
|
|
20
|
+
* @return {{start: number, end: number, style: object}[]}
|
|
21
|
+
*/
|
|
22
|
+
export declare const stylesToArray: (styles: TextStyle, text: string) => TextStyleArray;
|
|
23
|
+
/**
|
|
24
|
+
* Returns the object form of the styles property with styles that are assigned per
|
|
25
|
+
* character rather than grouped by range. This format is more verbose, and is
|
|
26
|
+
* only used during runtime (not for serialization/storage)
|
|
27
|
+
* @param {Array} styles the serialized form of a text object's styles
|
|
28
|
+
* @param {String} text the text string that the styles are applied to
|
|
29
|
+
* @return {Object}
|
|
30
|
+
*/
|
|
31
|
+
export declare const stylesFromArray: (styles: TextStyleArray | TextStyle, text: string) => TextStyle;
|
|
32
|
+
//# sourceMappingURL=textStyles.d.ts.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A wrapper around Number#toFixed, which contrary to native method returns number, not string.
|
|
3
|
+
* @param {number|string} number number to operate on
|
|
4
|
+
* @param {number} fractionDigits number of fraction digits to "leave"
|
|
5
|
+
* @return {number}
|
|
6
|
+
*/
|
|
7
|
+
export declare const toFixed: (number: number | string, fractionDigits: number) => number;
|
|
8
|
+
//# sourceMappingURL=toFixed.d.ts.map
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { XY, Point } from '../../Point';
|
|
2
|
+
import { TRadian } from '../../typedefs';
|
|
3
|
+
/**
|
|
4
|
+
* Rotates `vector` with `radians`
|
|
5
|
+
* @param {Point} vector The vector to rotate (x and y)
|
|
6
|
+
* @param {Number} radians The radians of the angle for the rotation
|
|
7
|
+
* @return {Point} The new rotated point
|
|
8
|
+
*/
|
|
9
|
+
export declare const rotateVector: (vector: Point, radians: TRadian) => Point;
|
|
10
|
+
/**
|
|
11
|
+
* Creates a vector from points represented as a point
|
|
12
|
+
*
|
|
13
|
+
* @param {Point} from
|
|
14
|
+
* @param {Point} to
|
|
15
|
+
* @returns {Point} vector
|
|
16
|
+
*/
|
|
17
|
+
export declare const createVector: (from: XY, to: XY) => Point;
|
|
18
|
+
/**
|
|
19
|
+
* return the magnitude of a vector
|
|
20
|
+
* @return {number}
|
|
21
|
+
*/
|
|
22
|
+
export declare const magnitude: (point: Point) => number;
|
|
23
|
+
/**
|
|
24
|
+
* Calculates the angle between 2 vectors
|
|
25
|
+
* @param {Point} a
|
|
26
|
+
* @param {Point} b
|
|
27
|
+
* @returns the angle in radians from `a` to `b`
|
|
28
|
+
*/
|
|
29
|
+
export declare const calcAngleBetweenVectors: (a: Point, b: Point) => TRadian;
|
|
30
|
+
/**
|
|
31
|
+
* Calculates the angle between the x axis and the vector
|
|
32
|
+
* @param {Point} v
|
|
33
|
+
* @returns the angle in radians of `v`
|
|
34
|
+
*/
|
|
35
|
+
export declare const calcVectorRotation: (v: Point) => TRadian;
|
|
36
|
+
/**
|
|
37
|
+
* @param {Point} v
|
|
38
|
+
* @returns {Point} vector representing the unit vector pointing to the direction of `v`
|
|
39
|
+
*/
|
|
40
|
+
export declare const getUnitVector: (v: Point) => Point;
|
|
41
|
+
/**
|
|
42
|
+
* @param {Point} A
|
|
43
|
+
* @param {Point} B
|
|
44
|
+
* @param {Point} C
|
|
45
|
+
* @returns {{ vector: Point, angle: TRadian}} vector representing the bisector of A and A's angle
|
|
46
|
+
*/
|
|
47
|
+
export declare const getBisector: (A: Point, B: Point, C: Point) => {
|
|
48
|
+
vector: Point;
|
|
49
|
+
angle: TRadian;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* @param {Point} v
|
|
53
|
+
* @param {Boolean} [counterClockwise] the direction of the orthogonal vector, defaults to `true`
|
|
54
|
+
* @returns {Point} the unit orthogonal vector
|
|
55
|
+
*/
|
|
56
|
+
export declare const getOrthonormalVector: (v: Point, counterClockwise?: boolean) => Point;
|
|
57
|
+
//# sourceMappingURL=vectors.d.ts.map
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import type { TMat2D, TRectBounds } from '../../typedefs';
|
|
2
|
+
import { TComplexPathData, TParsedAbsoluteCubicCurveCommand, TPathSegmentInfo, TPointAngle, TSimplePathData, TParsedArcCommand } from './typedefs';
|
|
3
|
+
import { Point } from '../../Point';
|
|
4
|
+
/**
|
|
5
|
+
* Calculate bounding box of a cubic Bezier curve
|
|
6
|
+
* Taken from http://jsbin.com/ivomiq/56/edit (no credits available)
|
|
7
|
+
* TODO: can we normalize this with the starting points set at 0 and then translated the bbox?
|
|
8
|
+
* @param {number} begx starting point
|
|
9
|
+
* @param {number} begy
|
|
10
|
+
* @param {number} cp1x first control point
|
|
11
|
+
* @param {number} cp1y
|
|
12
|
+
* @param {number} cp2x second control point
|
|
13
|
+
* @param {number} cp2y
|
|
14
|
+
* @param {number} endx end of bezier
|
|
15
|
+
* @param {number} endy
|
|
16
|
+
* @return {TRectBounds} the rectangular bounds
|
|
17
|
+
*/
|
|
18
|
+
export declare function getBoundsOfCurve(begx: number, begy: number, cp1x: number, cp1y: number, cp2x: number, cp2y: number, endx: number, endy: number): TRectBounds;
|
|
19
|
+
/**
|
|
20
|
+
* Converts arc to a bunch of cubic Bezier curves
|
|
21
|
+
* @param {number} fx starting point x
|
|
22
|
+
* @param {number} fy starting point y
|
|
23
|
+
* @param {TParsedArcCommand} coords Arc command
|
|
24
|
+
*/
|
|
25
|
+
export declare const fromArcToBeziers: (fx: number, fy: number, [_, rx, ry, rot, large, sweep, tx, ty]: TParsedArcCommand) => TParsedAbsoluteCubicCurveCommand[];
|
|
26
|
+
/**
|
|
27
|
+
* This function takes a parsed SVG path and makes it simpler for fabricJS logic.
|
|
28
|
+
* Simplification consist of:
|
|
29
|
+
* - All commands converted to absolute (lowercase to uppercase)
|
|
30
|
+
* - S converted to C
|
|
31
|
+
* - T converted to Q
|
|
32
|
+
* - A converted to C
|
|
33
|
+
* @param {TComplexPathData} path the array of commands of a parsed SVG path for `Path`
|
|
34
|
+
* @return {TSimplePathData} the simplified array of commands of a parsed SVG path for `Path`
|
|
35
|
+
* TODO: figure out how to remove the type assertions in a nice way
|
|
36
|
+
*/
|
|
37
|
+
export declare const makePathSimpler: (path: TComplexPathData) => TSimplePathData;
|
|
38
|
+
/**
|
|
39
|
+
* Run over a parsed and simplified path and extract some information (length of each command and starting point)
|
|
40
|
+
* @param {TSimplePathData} path parsed path commands
|
|
41
|
+
* @return {TPathSegmentInfo[]} path commands information
|
|
42
|
+
*/
|
|
43
|
+
export declare const getPathSegmentsInfo: (path: TSimplePathData) => TPathSegmentInfo[];
|
|
44
|
+
/**
|
|
45
|
+
* Get the point on the path that is distance along the path
|
|
46
|
+
* @param path
|
|
47
|
+
* @param distance
|
|
48
|
+
* @param infos
|
|
49
|
+
*/
|
|
50
|
+
export declare const getPointOnPath: (path: TSimplePathData, distance: number, infos?: TPathSegmentInfo[]) => TPointAngle | undefined;
|
|
51
|
+
/**
|
|
52
|
+
*
|
|
53
|
+
* @param {string} pathString
|
|
54
|
+
* @return {TComplexPathData} An array of SVG path commands
|
|
55
|
+
* @example <caption>Usage</caption>
|
|
56
|
+
* parsePath('M 3 4 Q 3 5 2 1 4 0 Q 9 12 2 1 4 0') === [
|
|
57
|
+
* ['M', 3, 4],
|
|
58
|
+
* ['Q', 3, 5, 2, 1, 4, 0],
|
|
59
|
+
* ['Q', 9, 12, 2, 1, 4, 0],
|
|
60
|
+
* ];
|
|
61
|
+
*
|
|
62
|
+
*/
|
|
63
|
+
export declare const parsePath: (pathString: string) => TComplexPathData;
|
|
64
|
+
/**
|
|
65
|
+
*
|
|
66
|
+
* Converts points to a smooth SVG path
|
|
67
|
+
* @param {XY[]} points Array of points
|
|
68
|
+
* @param {number} [correction] Apply a correction to the path (usually we use `width / 1000`). If value is undefined 0 is used as the correction value.
|
|
69
|
+
* @return {(string|number)[][]} An array of SVG path commands
|
|
70
|
+
*/
|
|
71
|
+
export declare const getSmoothPathFromPoints: (points: Point[], correction?: number) => TSimplePathData;
|
|
72
|
+
/**
|
|
73
|
+
* Transform a path by transforming each segment.
|
|
74
|
+
* it has to be a simplified path or it won't work.
|
|
75
|
+
* WARNING: this depends from pathOffset for correct operation
|
|
76
|
+
* @param {TSimplePathData} path fabricJS parsed and simplified path commands
|
|
77
|
+
* @param {TMat2D} transform matrix that represent the transformation
|
|
78
|
+
* @param {Point} [pathOffset] `Path.pathOffset`
|
|
79
|
+
* @returns {TSimplePathData} the transformed path
|
|
80
|
+
*/
|
|
81
|
+
export declare const transformPath: (path: TSimplePathData, transform: TMat2D, pathOffset: Point) => TSimplePathData;
|
|
82
|
+
/**
|
|
83
|
+
* Returns an array of path commands to create a regular polygon
|
|
84
|
+
* @param {number} numVertexes
|
|
85
|
+
* @param {number} radius
|
|
86
|
+
* @returns {TSimplePathData} An array of SVG path commands
|
|
87
|
+
*/
|
|
88
|
+
export declare const getRegularPolygonPath: (numVertexes: number, radius: number) => TSimplePathData;
|
|
89
|
+
/**
|
|
90
|
+
* Join path commands to go back to svg format
|
|
91
|
+
* @param {TSimplePathData} pathData fabricJS parsed path commands
|
|
92
|
+
* @param {number} fractionDigits number of fraction digits to "leave"
|
|
93
|
+
* @return {String} joined path 'M 0 0 L 20 30'
|
|
94
|
+
*/
|
|
95
|
+
export declare const joinPath: (pathData: TSimplePathData, fractionDigits?: number) => string;
|
|
96
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { TComplexParsedCommand, TParsedAbsoluteArcCommand, TParsedAbsoluteClosePathCommand, TParsedAbsoluteCubicCurveCommand, TParsedAbsoluteCubicCurveShortcutCommand, TParsedAbsoluteHorizontalLineCommand, TParsedAbsoluteLineCommand, TParsedAbsoluteMoveToCommand, TParsedAbsoluteQuadraticCurveCommand, TParsedAbsoluteQuadraticCurveShortcutCommand, TParsedAbsoluteVerticalLineCommand, TParsedClosePathCommand, TParsedLineCommand, TParsedRelativeArcCommand, TParsedRelativeClosePathCommand, TParsedRelativeCubicCurveCommand, TParsedRelativeCubicCurveShortcutCommand, TParsedRelativeHorizontalLineCommand, TParsedRelativeLineCommand, TParsedRelativeMoveToCommand, TParsedRelativeQuadraticCurveCommand, TParsedRelativeQuadraticCurveShortcutCommand, TParsedRelativeVerticalLineCommand } from './typedefs';
|
|
2
|
+
export declare function isAbsMoveToCmd(cmd: TComplexParsedCommand): cmd is TParsedAbsoluteMoveToCommand;
|
|
3
|
+
export declare function isRelMoveToCmd(cmd: TComplexParsedCommand): cmd is TParsedRelativeMoveToCommand;
|
|
4
|
+
export declare function isAbsLineCmd(cmd: TComplexParsedCommand): cmd is TParsedAbsoluteLineCommand;
|
|
5
|
+
export declare function isRelLineCmd(cmd: TComplexParsedCommand): cmd is TParsedRelativeLineCommand;
|
|
6
|
+
export declare function isLineCommand(cmd: TComplexParsedCommand): cmd is TParsedLineCommand;
|
|
7
|
+
export declare function isAbsHorizontalLineCmd(cmd: TComplexParsedCommand): cmd is TParsedAbsoluteHorizontalLineCommand;
|
|
8
|
+
export declare function isRelHorizontalLineCmd(cmd: TComplexParsedCommand): cmd is TParsedRelativeHorizontalLineCommand;
|
|
9
|
+
export declare function isAbsVerticalLineCmd(cmd: TComplexParsedCommand): cmd is TParsedAbsoluteVerticalLineCommand;
|
|
10
|
+
export declare function isRelVerticalLineCmd(cmd: TComplexParsedCommand): cmd is TParsedRelativeVerticalLineCommand;
|
|
11
|
+
export declare function isAbsClosePathCmd(cmd: TComplexParsedCommand): cmd is TParsedAbsoluteClosePathCommand;
|
|
12
|
+
export declare function isRelClosePathCmd(cmd: TComplexParsedCommand): cmd is TParsedRelativeClosePathCommand;
|
|
13
|
+
export declare function isClosePathCommand(cmd: TComplexParsedCommand): cmd is TParsedClosePathCommand;
|
|
14
|
+
export declare function isAbsCubicCurveCmd(cmd: TComplexParsedCommand): cmd is TParsedAbsoluteCubicCurveCommand;
|
|
15
|
+
export declare function isRelCubicCurveCmd(cmd: TComplexParsedCommand): cmd is TParsedRelativeCubicCurveCommand;
|
|
16
|
+
export declare function isAbsCubicCurveShortcutCmd(cmd: TComplexParsedCommand): cmd is TParsedAbsoluteCubicCurveShortcutCommand;
|
|
17
|
+
export declare function isRelCubicCurveShortcutCmd(cmd: TComplexParsedCommand): cmd is TParsedRelativeCubicCurveShortcutCommand;
|
|
18
|
+
export declare function isAbsQuadraticCurveCmd(cmd: TComplexParsedCommand): cmd is TParsedAbsoluteQuadraticCurveCommand;
|
|
19
|
+
export declare function isRelQuadraticCurveCmd(cmd: TComplexParsedCommand): cmd is TParsedRelativeQuadraticCurveCommand;
|
|
20
|
+
export declare function isAbsQuadraticCurveShortcutCmd(cmd: TComplexParsedCommand): cmd is TParsedAbsoluteQuadraticCurveShortcutCommand;
|
|
21
|
+
export declare function isRelQuadraticCurveShortcutCmd(cmd: TComplexParsedCommand): cmd is TParsedRelativeQuadraticCurveShortcutCommand;
|
|
22
|
+
export declare function isAbsArcCmd(cmd: TComplexParsedCommand): cmd is TParsedAbsoluteArcCommand;
|
|
23
|
+
export declare function isRelArcCmd(cmd: TComplexParsedCommand): cmd is TParsedRelativeArcCommand;
|
|
24
|
+
//# sourceMappingURL=typechecks.d.ts.map
|