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,220 @@
|
|
|
1
|
+
import type { TRadian } from '../../typedefs';
|
|
2
|
+
import type { XY, Point } from '../../Point';
|
|
3
|
+
export type TPathSegmentInfoCommon<C extends string> = {
|
|
4
|
+
x: number;
|
|
5
|
+
y: number;
|
|
6
|
+
command?: C;
|
|
7
|
+
length: number;
|
|
8
|
+
};
|
|
9
|
+
export type TCurveInfo<C extends string> = TPathSegmentInfoCommon<C> & {
|
|
10
|
+
/**
|
|
11
|
+
* Get the Point a certain percent distance along the curve
|
|
12
|
+
* @param pct
|
|
13
|
+
*/
|
|
14
|
+
iterator: (pct: number) => Point;
|
|
15
|
+
/**
|
|
16
|
+
* Get the angle to a percent
|
|
17
|
+
* @param pct
|
|
18
|
+
*/
|
|
19
|
+
angleFinder: (pct: number) => number;
|
|
20
|
+
/**
|
|
21
|
+
* Total length of the curve
|
|
22
|
+
*/
|
|
23
|
+
length: number;
|
|
24
|
+
};
|
|
25
|
+
export type TEndPathInfo = TPathSegmentInfoCommon<'Z'> & {
|
|
26
|
+
destX: number;
|
|
27
|
+
destY: number;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Relevant info to calculate path length/points on path
|
|
31
|
+
* for each command type in a simplified parsed path
|
|
32
|
+
*/
|
|
33
|
+
export type TPathSegmentCommandInfo = {
|
|
34
|
+
M: TPathSegmentInfoCommon<'M'>;
|
|
35
|
+
L: TPathSegmentInfoCommon<'L'>;
|
|
36
|
+
C: TCurveInfo<'C'>;
|
|
37
|
+
Q: TCurveInfo<'Q'>;
|
|
38
|
+
Z: TEndPathInfo;
|
|
39
|
+
};
|
|
40
|
+
export type TPathSegmentInfo = TPathSegmentCommandInfo[keyof TPathSegmentCommandInfo];
|
|
41
|
+
/**
|
|
42
|
+
* A parsed command of any length (even impossible ones)
|
|
43
|
+
*/
|
|
44
|
+
export type TParsedCommand = [command: string] | [command: string, arg1: number] | [command: string, arg1: number, arg2: number] | [command: string, arg1: number, arg2: number, arg3: number] | [command: string, arg1: number, arg2: number, arg3: number, arg4: number] | [
|
|
45
|
+
command: string,
|
|
46
|
+
arg1: number,
|
|
47
|
+
arg2: number,
|
|
48
|
+
arg3: number,
|
|
49
|
+
arg4: number,
|
|
50
|
+
arg5: number
|
|
51
|
+
] | [
|
|
52
|
+
command: string,
|
|
53
|
+
arg1: number,
|
|
54
|
+
arg2: number,
|
|
55
|
+
arg3: number,
|
|
56
|
+
arg4: number,
|
|
57
|
+
arg5: number,
|
|
58
|
+
arg6: number
|
|
59
|
+
] | [
|
|
60
|
+
command: string,
|
|
61
|
+
arg1: number,
|
|
62
|
+
arg2: number,
|
|
63
|
+
arg3: number,
|
|
64
|
+
arg4: number,
|
|
65
|
+
arg5: number,
|
|
66
|
+
arg6: number,
|
|
67
|
+
arg7: number
|
|
68
|
+
];
|
|
69
|
+
/**
|
|
70
|
+
* Command strings of any length
|
|
71
|
+
*/
|
|
72
|
+
type TCommand1<T extends TParsedCommand> = `${T[0]}`;
|
|
73
|
+
type TCommand2<T extends TParsedCommand> = `${T[0]} ${T[1]}`;
|
|
74
|
+
type TCommand3<T extends TParsedCommand> = `${T[0]} ${T[1]} ${T[2]}`;
|
|
75
|
+
type TCommand5<T extends TParsedCommand> = `${T[0]} ${T[1]} ${T[2]} ${T[3]} ${T[4]}`;
|
|
76
|
+
type TCommand7<T extends TParsedCommand> = `${T[0]} ${T[1]} ${T[2]} ${T[3]} ${T[4]} ${T[5]} ${T[6]}`;
|
|
77
|
+
type TCommand8<T extends TParsedCommand> = `${T[0]} ${T[1]} ${T[2]} ${T[3]} ${T[4]} ${T[5]} ${T[6]} ${T[7]}`;
|
|
78
|
+
/**
|
|
79
|
+
* Begin parsed SVG path commands
|
|
80
|
+
* Read about commands at {@link https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths|MDN}
|
|
81
|
+
*/
|
|
82
|
+
export type TParsedAbsoluteMoveToCommand = [command: 'M', x: number, y: number];
|
|
83
|
+
export type TParsedRelativeMoveToCommand = [
|
|
84
|
+
command: 'm',
|
|
85
|
+
dx: number,
|
|
86
|
+
dy: number
|
|
87
|
+
];
|
|
88
|
+
export type TParsedMoveToCommand = TParsedAbsoluteMoveToCommand | TParsedRelativeMoveToCommand;
|
|
89
|
+
export type TMoveToCommand = TCommand3<TParsedMoveToCommand>;
|
|
90
|
+
export type TParsedAbsoluteLineCommand = [command: 'L', x: number, y: number];
|
|
91
|
+
export type TParsedRelativeLineCommand = [command: 'l', dx: number, dy: number];
|
|
92
|
+
export type TParsedLineCommand = TParsedAbsoluteLineCommand | TParsedRelativeLineCommand;
|
|
93
|
+
export type TLineCommand = TCommand3<TParsedLineCommand>;
|
|
94
|
+
export type TParsedAbsoluteHorizontalLineCommand = [command: 'H', x: number];
|
|
95
|
+
export type TParsedRelativeHorizontalLineCommand = [command: 'h', dx: number];
|
|
96
|
+
export type TParsedHorizontalLineCommand = TParsedAbsoluteHorizontalLineCommand | TParsedRelativeHorizontalLineCommand;
|
|
97
|
+
export type THorizontalLineCommand = TCommand2<TParsedHorizontalLineCommand>;
|
|
98
|
+
export type TParsedAbsoluteVerticalLineCommand = [command: 'V', y: number];
|
|
99
|
+
export type TParsedRelativeVerticalLineCommand = [command: 'v', dy: number];
|
|
100
|
+
export type TParsedVerticalLineCommand = TParsedAbsoluteVerticalLineCommand | TParsedRelativeVerticalLineCommand;
|
|
101
|
+
export type TVerticalLineCommand = TCommand2<TParsedVerticalLineCommand>;
|
|
102
|
+
export type TParsedAbsoluteClosePathCommand = [command: 'Z'];
|
|
103
|
+
export type TParsedRelativeClosePathCommand = [command: 'z'];
|
|
104
|
+
export type TParsedClosePathCommand = TParsedAbsoluteClosePathCommand | TParsedRelativeClosePathCommand;
|
|
105
|
+
export type TClosePathCommand = TCommand1<TParsedClosePathCommand>;
|
|
106
|
+
export type TParsedAbsoluteCubicCurveCommand = [
|
|
107
|
+
command: 'C',
|
|
108
|
+
controlPoint1X: number,
|
|
109
|
+
controlPoint1Y: number,
|
|
110
|
+
controlPoint2X: number,
|
|
111
|
+
controlPoint2Y: number,
|
|
112
|
+
endX: number,
|
|
113
|
+
endY: number
|
|
114
|
+
];
|
|
115
|
+
export type TParsedRelativeCubicCurveCommand = [
|
|
116
|
+
command: 'c',
|
|
117
|
+
controlPoint1DX: number,
|
|
118
|
+
controlPoint1DY: number,
|
|
119
|
+
controlPoint2DX: number,
|
|
120
|
+
controlPoint2DY: number,
|
|
121
|
+
endDX: number,
|
|
122
|
+
endDY: number
|
|
123
|
+
];
|
|
124
|
+
export type TParsedCubicCurveCommand = TParsedAbsoluteCubicCurveCommand | TParsedRelativeCubicCurveCommand;
|
|
125
|
+
export type TCubicCurveCommand = TCommand7<TParsedCubicCurveCommand>;
|
|
126
|
+
export type TParsedAbsoluteCubicCurveShortcutCommand = [
|
|
127
|
+
command: 'S',
|
|
128
|
+
controlPoint2X: number,
|
|
129
|
+
controlPoint2Y: number,
|
|
130
|
+
endX: number,
|
|
131
|
+
endY: number
|
|
132
|
+
];
|
|
133
|
+
export type TParsedRelativeCubicCurveShortcutCommand = [
|
|
134
|
+
command: 's',
|
|
135
|
+
controlPoint2DX: number,
|
|
136
|
+
controlPoint2DY: number,
|
|
137
|
+
endDX: number,
|
|
138
|
+
endDY: number
|
|
139
|
+
];
|
|
140
|
+
export type TParsedCubicCurveShortcutCommand = TParsedAbsoluteCubicCurveShortcutCommand | TParsedRelativeCubicCurveShortcutCommand;
|
|
141
|
+
export type TCubicCurveShortcutCommand = TCommand5<TParsedCubicCurveShortcutCommand>;
|
|
142
|
+
export type TParsedAbsoluteQuadraticCurveCommand = [
|
|
143
|
+
command: 'Q',
|
|
144
|
+
controlPointX: number,
|
|
145
|
+
controlPointY: number,
|
|
146
|
+
endX: number,
|
|
147
|
+
endY: number
|
|
148
|
+
];
|
|
149
|
+
export type TParsedRelativeQuadraticCurveCommand = [
|
|
150
|
+
command: 'q',
|
|
151
|
+
controlPointDX: number,
|
|
152
|
+
controlPointDY: number,
|
|
153
|
+
endDX: number,
|
|
154
|
+
endDY: number
|
|
155
|
+
];
|
|
156
|
+
export type TParsedQuadraticCurveCommand = TParsedAbsoluteQuadraticCurveCommand | TParsedRelativeQuadraticCurveCommand;
|
|
157
|
+
export type TQuadraticCurveCommand = TCommand5<TParsedQuadraticCurveCommand>;
|
|
158
|
+
export type TParsedAbsoluteQuadraticCurveShortcutCommand = [
|
|
159
|
+
command: 'T',
|
|
160
|
+
endX: number,
|
|
161
|
+
endY: number
|
|
162
|
+
];
|
|
163
|
+
export type TParsedRelativeQuadraticCurveShortcutCommand = [
|
|
164
|
+
command: 't',
|
|
165
|
+
endDX: number,
|
|
166
|
+
endDY: number
|
|
167
|
+
];
|
|
168
|
+
export type TParsedQuadraticCurveShortcutCommand = TParsedAbsoluteQuadraticCurveShortcutCommand | TParsedRelativeQuadraticCurveShortcutCommand;
|
|
169
|
+
export type TQuadraticCurveShortcutCommand = TCommand3<TParsedQuadraticCurveShortcutCommand>;
|
|
170
|
+
export type TParsedAbsoluteArcCommand = [
|
|
171
|
+
command: 'A',
|
|
172
|
+
radiusX: number,
|
|
173
|
+
radiusY: number,
|
|
174
|
+
rotation: TRadian,
|
|
175
|
+
largeArc: 0 | 1,
|
|
176
|
+
sweep: 0 | 1,
|
|
177
|
+
endX: number,
|
|
178
|
+
endY: number
|
|
179
|
+
];
|
|
180
|
+
export type TParsedRelativeArcCommand = [
|
|
181
|
+
command: 'a',
|
|
182
|
+
radiusX: number,
|
|
183
|
+
radiusY: number,
|
|
184
|
+
rotation: TRadian,
|
|
185
|
+
largeArc: 0 | 1,
|
|
186
|
+
sweep: 0 | 1,
|
|
187
|
+
endDX: number,
|
|
188
|
+
endDY: number
|
|
189
|
+
];
|
|
190
|
+
export type TParsedArcCommand = TParsedAbsoluteArcCommand | TParsedRelativeArcCommand;
|
|
191
|
+
export type TArcCommandSingleFlag<T extends TParsedArcCommand> = `${T[0]} ${T[1]} ${T[2]} ${T[3]} ${T[4]}${T[5]} ${T[6]} ${T[7]}`;
|
|
192
|
+
export type TArcCommand = TCommand8<TParsedArcCommand> | TArcCommandSingleFlag<TParsedArcCommand>;
|
|
193
|
+
/**
|
|
194
|
+
* End parsed path commands
|
|
195
|
+
*/
|
|
196
|
+
/**
|
|
197
|
+
* Any old valid SVG path command
|
|
198
|
+
*/
|
|
199
|
+
export type TComplexParsedCommand = TParsedMoveToCommand | TParsedLineCommand | TParsedHorizontalLineCommand | TParsedVerticalLineCommand | TParsedClosePathCommand | TParsedCubicCurveCommand | TParsedCubicCurveShortcutCommand | TParsedQuadraticCurveCommand | TParsedQuadraticCurveShortcutCommand | TParsedArcCommand;
|
|
200
|
+
/**
|
|
201
|
+
* A series of path commands
|
|
202
|
+
*/
|
|
203
|
+
export type TComplexPathData = TComplexParsedCommand[];
|
|
204
|
+
/**
|
|
205
|
+
* Any SVG command that all Fabric functions can understand
|
|
206
|
+
*
|
|
207
|
+
*/
|
|
208
|
+
export type TSimpleParsedCommand = TParsedAbsoluteMoveToCommand | TParsedAbsoluteLineCommand | TParsedAbsoluteClosePathCommand | TParsedAbsoluteCubicCurveCommand | TParsedAbsoluteQuadraticCurveCommand;
|
|
209
|
+
/**
|
|
210
|
+
* A series of simple paths
|
|
211
|
+
*/
|
|
212
|
+
export type TSimplePathData = TSimpleParsedCommand[];
|
|
213
|
+
/**
|
|
214
|
+
* A point (vector) and angle between the vector and x-axis
|
|
215
|
+
*/
|
|
216
|
+
export type TPointAngle = XY & {
|
|
217
|
+
angle: TRadian;
|
|
218
|
+
};
|
|
219
|
+
export {};
|
|
220
|
+
//# sourceMappingURL=typedefs.d.ts.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { FabricObject } from '../shapes/Object/FabricObject';
|
|
2
|
+
import { TMat2D } from '../typedefs';
|
|
3
|
+
type FabricObjectWithTransformMatrix = FabricObject & {
|
|
4
|
+
transformMatrix?: TMat2D;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* This function is an helper for svg import. it removes the transform matrix
|
|
8
|
+
* and set to object properties that fabricjs can handle
|
|
9
|
+
* @private
|
|
10
|
+
* @param {Object} preserveAspectRatioOptions
|
|
11
|
+
*/
|
|
12
|
+
export declare const removeTransformMatrixForSvgParsing: (object: FabricObjectWithTransformMatrix, preserveAspectRatioOptions?: any) => void;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=transform_matrix_removal.d.ts.map
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ActiveSelection } from '../shapes/ActiveSelection';
|
|
2
|
+
import type { Group } from '../shapes/Group';
|
|
3
|
+
import type { FabricObject, TCachedFabricObject } from '../shapes/Object/Object';
|
|
4
|
+
import type { FabricObjectWithDragSupport } from '../shapes/Object/InteractiveObject';
|
|
5
|
+
import type { TFiller } from '../typedefs';
|
|
6
|
+
import type { Text } from '../shapes/Text/Text';
|
|
7
|
+
import type { Pattern } from '../Pattern';
|
|
8
|
+
import type { IText } from '../shapes/IText/IText';
|
|
9
|
+
import type { Textbox } from '../shapes/Textbox';
|
|
10
|
+
export declare const isFiller: (filler: TFiller | string | null) => filler is TFiller;
|
|
11
|
+
export declare const isSerializableFiller: (filler: TFiller | string | null) => filler is TFiller;
|
|
12
|
+
export declare const isPattern: (filler: TFiller) => filler is Pattern;
|
|
13
|
+
export declare const isCollection: (fabricObject?: FabricObject) => fabricObject is Group | ActiveSelection;
|
|
14
|
+
export declare const isActiveSelection: (fabricObject?: FabricObject) => fabricObject is ActiveSelection;
|
|
15
|
+
export declare const isTextObject: (fabricObject?: FabricObject) => fabricObject is Text<Partial<import("../shapes/Text/Text").TextProps>, import("../shapes/Text/Text").SerializedTextProps, import("../EventTypeDefs").ObjectEvents>;
|
|
16
|
+
export declare const isInteractiveTextObject: (fabricObject?: FabricObject) => fabricObject is IText<import("../shapes/IText/IText").ITextProps, import("../shapes/IText/IText").SerializedITextProps, import("../shapes/IText/ITextBehavior").ITextEvents> | Textbox;
|
|
17
|
+
export declare const isFabricObjectCached: (fabricObject: FabricObject) => fabricObject is TCachedFabricObject;
|
|
18
|
+
export declare const isFabricObjectWithDragSupport: (fabricObject?: FabricObject) => fabricObject is FabricObjectWithDragSupport;
|
|
19
|
+
//# sourceMappingURL=types.d.ts.map
|
package/fabric.ts
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
export { getEnv, getDocument, getWindow } from './src/env';
|
|
2
|
+
export { cache } from './src/cache';
|
|
3
|
+
export { VERSION as version, iMatrix } from './src/constants';
|
|
4
|
+
export { config } from './src/config';
|
|
5
|
+
export { classRegistry } from './src/ClassRegistry';
|
|
6
|
+
export { runningAnimations } from './src/util/animation/AnimationRegistry';
|
|
7
|
+
|
|
8
|
+
export { Observable } from './src/Observable';
|
|
9
|
+
|
|
10
|
+
export { StaticCanvas } from './src/canvas/StaticCanvas';
|
|
11
|
+
export { Canvas } from './src/canvas/Canvas';
|
|
12
|
+
|
|
13
|
+
export { Point } from './src/Point';
|
|
14
|
+
export { Intersection } from './src/Intersection';
|
|
15
|
+
export { Color } from './src/color/Color';
|
|
16
|
+
|
|
17
|
+
export { Gradient } from './src/gradient/Gradient';
|
|
18
|
+
export { Pattern } from './src/Pattern';
|
|
19
|
+
export { Shadow } from './src/Shadow';
|
|
20
|
+
|
|
21
|
+
export { BaseBrush } from './src/brushes/BaseBrush';
|
|
22
|
+
export { PencilBrush } from './src/brushes/PencilBrush';
|
|
23
|
+
export { CircleBrush } from './src/brushes/CircleBrush';
|
|
24
|
+
export { SprayBrush } from './src/brushes/SprayBrush';
|
|
25
|
+
export { PatternBrush } from './src/brushes/PatternBrush';
|
|
26
|
+
|
|
27
|
+
export { FabricObject as Object } from './src/shapes/Object/FabricObject';
|
|
28
|
+
export { Line } from './src/shapes/Line';
|
|
29
|
+
export { Circle } from './src/shapes/Circle';
|
|
30
|
+
export { Triangle } from './src/shapes/Triangle';
|
|
31
|
+
export { Ellipse } from './src/shapes/Ellipse';
|
|
32
|
+
export { Rect } from './src/shapes/Rect';
|
|
33
|
+
export { Path } from './src/shapes/Path';
|
|
34
|
+
export { Polyline } from './src/shapes/Polyline';
|
|
35
|
+
export { Polygon } from './src/shapes/Polygon';
|
|
36
|
+
export { Text } from './src/shapes/Text/Text';
|
|
37
|
+
export { IText } from './src/shapes/IText/IText';
|
|
38
|
+
export { Textbox } from './src/shapes/Textbox';
|
|
39
|
+
export { Group } from './src/shapes/Group';
|
|
40
|
+
export { ActiveSelection } from './src/shapes/ActiveSelection';
|
|
41
|
+
export { Image } from './src/shapes/Image';
|
|
42
|
+
export { createCollectionMixin } from './src/Collection';
|
|
43
|
+
|
|
44
|
+
export * as util from './src/util';
|
|
45
|
+
|
|
46
|
+
export * from './src/parser';
|
|
47
|
+
|
|
48
|
+
export { Control } from './src/controls/Control';
|
|
49
|
+
export * as controlsUtils from './src/controls';
|
|
50
|
+
|
|
51
|
+
export * from './src/filters';
|
package/index.node.ts
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// first we set the env variable by importing the node env file
|
|
2
|
+
import { getNodeCanvas } from './src/env/node';
|
|
3
|
+
|
|
4
|
+
import type { JpegConfig, PngConfig } from 'canvas';
|
|
5
|
+
import {
|
|
6
|
+
Canvas as CanvasBase,
|
|
7
|
+
StaticCanvas as StaticCanvasBase,
|
|
8
|
+
} from './fabric';
|
|
9
|
+
import { FabricObject } from './src/shapes/Object/Object';
|
|
10
|
+
|
|
11
|
+
FabricObject.ownDefaults.objectCaching = false;
|
|
12
|
+
|
|
13
|
+
export * from './fabric';
|
|
14
|
+
|
|
15
|
+
export class StaticCanvas extends StaticCanvasBase {
|
|
16
|
+
getNodeCanvas() {
|
|
17
|
+
return getNodeCanvas(this.lowerCanvasEl);
|
|
18
|
+
}
|
|
19
|
+
createPNGStream(opts?: PngConfig) {
|
|
20
|
+
return this.getNodeCanvas().createPNGStream(opts);
|
|
21
|
+
}
|
|
22
|
+
createJPEGStream(opts?: JpegConfig) {
|
|
23
|
+
return this.getNodeCanvas().createJPEGStream(opts);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export class Canvas extends CanvasBase {
|
|
28
|
+
getNodeCanvas() {
|
|
29
|
+
return getNodeCanvas(this.lowerCanvasEl);
|
|
30
|
+
}
|
|
31
|
+
createPNGStream(opts?: PngConfig) {
|
|
32
|
+
return this.getNodeCanvas().createPNGStream(opts);
|
|
33
|
+
}
|
|
34
|
+
createJPEGStream(opts?: JpegConfig) {
|
|
35
|
+
return this.getNodeCanvas().createJPEGStream(opts);
|
|
36
|
+
}
|
|
37
|
+
}
|
package/index.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './fabric';
|
package/package.json
CHANGED
|
@@ -2,16 +2,23 @@
|
|
|
2
2
|
"name": "fabric",
|
|
3
3
|
"description": "Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.",
|
|
4
4
|
"homepage": "http://fabricjs.com/",
|
|
5
|
-
"version": "
|
|
5
|
+
"version": "6.0.0-beta3",
|
|
6
6
|
"author": "Juriy Zaytsev <kangax@gmail.com>",
|
|
7
7
|
"contributors": [
|
|
8
8
|
{
|
|
9
9
|
"name": "Andrea Bogazzi",
|
|
10
|
-
"email": "andreabogazzi79@gmail.com"
|
|
10
|
+
"email": "andreabogazzi79@gmail.com",
|
|
11
|
+
"url": "https://github.com/asturur"
|
|
11
12
|
},
|
|
12
13
|
{
|
|
13
14
|
"name": "Steve Eberhardt",
|
|
14
|
-
"email": "melchiar2@gmail.com"
|
|
15
|
+
"email": "melchiar2@gmail.com",
|
|
16
|
+
"url": "https://github.com/melchiar"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"name": "Shachar Nencel",
|
|
20
|
+
"email": "shacharnen@gmail.com",
|
|
21
|
+
"url": "https://github.com/ShaMan123"
|
|
15
22
|
}
|
|
16
23
|
],
|
|
17
24
|
"keywords": [
|
|
@@ -24,17 +31,6 @@
|
|
|
24
31
|
"HTML5",
|
|
25
32
|
"object model"
|
|
26
33
|
],
|
|
27
|
-
"browser": {
|
|
28
|
-
"canvas": false,
|
|
29
|
-
"fs": false,
|
|
30
|
-
"jsdom": false,
|
|
31
|
-
"jsdom/lib/jsdom/living/generated/utils": false,
|
|
32
|
-
"jsdom/lib/jsdom/utils": false,
|
|
33
|
-
"http": false,
|
|
34
|
-
"https": false,
|
|
35
|
-
"xmldom": false,
|
|
36
|
-
"url": false
|
|
37
|
-
},
|
|
38
34
|
"repository": {
|
|
39
35
|
"type": "git",
|
|
40
36
|
"url": "https://github.com/fabricjs/fabric.js"
|
|
@@ -44,49 +40,113 @@
|
|
|
44
40
|
},
|
|
45
41
|
"license": "MIT",
|
|
46
42
|
"scripts": {
|
|
43
|
+
"docs": "typedoc --out docs fabric.ts",
|
|
44
|
+
"cli": "node ./scripts/index.mjs",
|
|
45
|
+
"sandboxscript": "node ./scripts/sandbox.mjs",
|
|
47
46
|
"changelog": "auto-changelog -o change-output.md --unreleased-only",
|
|
48
|
-
"build": "
|
|
49
|
-
"build:fast": "
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"test
|
|
47
|
+
"build": "npm run cli -- build",
|
|
48
|
+
"build:fast": "npm run build -- -f",
|
|
49
|
+
"dev": "npm run cli -- dev",
|
|
50
|
+
"start": "npm run sandboxscript -- start",
|
|
51
|
+
"export": "npm run cli -- website export",
|
|
52
|
+
"build-tests": "rollup -c ./rollup.test.config.js",
|
|
53
|
+
"test": "npm run cli -- test",
|
|
54
|
+
"sandbox": "npm run sandboxscript -- sandbox",
|
|
55
|
+
"test:unit-browser": "npm run test -- -s unit -p 8080 -l -c chrome firefox",
|
|
56
|
+
"test:visual-browser": "npm run test -- -s visual -p 8081 -l -c chrome firefox",
|
|
55
57
|
"test:coverage": "nyc --silent qunit test/node_test_setup.js test/lib test/unit",
|
|
56
58
|
"test:visual:coverage": "nyc --silent --no-clean qunit test/node_test_setup.js test/lib test/visual",
|
|
57
59
|
"coverage:report": "nyc report --reporter=lcov --reporter=text",
|
|
58
|
-
"
|
|
59
|
-
"test:visual": "qunit test/node_test_setup.js test/lib test/visual",
|
|
60
|
-
"test:visual:single": "qunit test/node_test_setup.js test/lib",
|
|
61
|
-
"test:all": "npm run test && npm run test:visual",
|
|
62
|
-
"lint": "eslint --config .eslintrc.json src",
|
|
60
|
+
"lint": "eslint --config .eslintrc.js src/**/*.ts",
|
|
63
61
|
"lint_tests": "eslint test/unit --config .eslintrc_tests && eslint test/visual --config .eslintrc_tests",
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
"testem:ci": "testem ci"
|
|
62
|
+
"all": "npm run build && npm run test -- --all && npm run lint && npm run lint_tests && npm run export",
|
|
63
|
+
"prettier:check": "prettier --check .",
|
|
64
|
+
"prettier:write": "prettier --write .",
|
|
65
|
+
"babel-constants": "babel --no-babelrc src/constants.ts --extensions '.ts' --out-dir dist/src/ --config-file ./.babelrcAlt --plugins=babel-plugin-import-json-value",
|
|
66
|
+
"babel-src": "babel --no-babelrc src --extensions '.ts' --ignore 'src/constants.ts' --out-dir dist/src --config-file ./.babelrcAlt"
|
|
70
67
|
},
|
|
71
68
|
"optionalDependencies": {
|
|
72
69
|
"canvas": "^2.8.0",
|
|
73
|
-
"jsdom": "^
|
|
70
|
+
"jsdom": "^20.0.1"
|
|
74
71
|
},
|
|
75
72
|
"devDependencies": {
|
|
73
|
+
"@babel/cli": "^7.20.7",
|
|
74
|
+
"@babel/core": "^7.20.12",
|
|
75
|
+
"@babel/preset-env": "^7.20.2",
|
|
76
|
+
"@babel/preset-typescript": "^7.18.6",
|
|
77
|
+
"@rollup/plugin-babel": "^6.0.3",
|
|
78
|
+
"@rollup/plugin-json": "^6.0.0",
|
|
79
|
+
"@rollup/plugin-terser": "^0.3.0",
|
|
80
|
+
"@rollup/plugin-typescript": "^11.0.0",
|
|
81
|
+
"@types/fs-extra": "^9.0.13",
|
|
82
|
+
"@types/jsdom": "^20.0.1",
|
|
83
|
+
"@types/lodash": "^4.14.180",
|
|
84
|
+
"@types/node": "^17.0.21",
|
|
85
|
+
"@typescript-eslint/eslint-plugin": "^5.53.0",
|
|
86
|
+
"@typescript-eslint/parser": "^5.53.0",
|
|
87
|
+
"abort-controller": "^3.0.0",
|
|
76
88
|
"auto-changelog": "^2.3.0",
|
|
89
|
+
"axios": "^0.27.2",
|
|
90
|
+
"babel-plugin-import-json-value": "^0.1.2",
|
|
91
|
+
"busboy": "^1.6.0",
|
|
77
92
|
"chalk": "^2.4.1",
|
|
78
|
-
"
|
|
79
|
-
"eslint": "
|
|
93
|
+
"commander": "^9.1.0",
|
|
94
|
+
"eslint": "^8.34.0",
|
|
95
|
+
"eslint-config-prettier": "^8.6.0",
|
|
96
|
+
"fireworm": "^0.7.2",
|
|
97
|
+
"fs-extra": "^10.0.1",
|
|
98
|
+
"fuzzy": "^0.1.3",
|
|
99
|
+
"inquirer": "^8.2.1",
|
|
100
|
+
"inquirer-checkbox-plus-prompt": "^1.0.1",
|
|
101
|
+
"kill-port": "^2.0.1",
|
|
102
|
+
"micromatch": "^4.0.5",
|
|
103
|
+
"moment": "^2.29.1",
|
|
80
104
|
"nyc": "^15.1.0",
|
|
81
|
-
"onchange": "^7.1.0",
|
|
82
105
|
"pixelmatch": "^4.0.2",
|
|
106
|
+
"prettier": "2.7.1",
|
|
107
|
+
"ps-list": "^8.1.0",
|
|
83
108
|
"qunit": "^2.17.2",
|
|
84
|
-
"
|
|
85
|
-
"
|
|
109
|
+
"rollup": "^3.9.1",
|
|
110
|
+
"semver": "^7.3.8",
|
|
111
|
+
"source-map-support": "^0.5.21",
|
|
112
|
+
"testem": "^3.8.0",
|
|
113
|
+
"tslib": "^2.4.1",
|
|
114
|
+
"typedoc": "^0.23.24",
|
|
115
|
+
"typescript": "^4.9.4"
|
|
86
116
|
},
|
|
87
117
|
"engines": {
|
|
88
118
|
"node": ">=14.0.0"
|
|
89
119
|
},
|
|
90
|
-
"
|
|
91
|
-
"
|
|
120
|
+
"module": "./dist/index.mjs",
|
|
121
|
+
"main": "./dist/index.node.cjs",
|
|
122
|
+
"types": "./dist/index.d.ts",
|
|
123
|
+
"typesVersions": {
|
|
124
|
+
">=4.2": {
|
|
125
|
+
"*": [
|
|
126
|
+
"dist/index.d.ts"
|
|
127
|
+
],
|
|
128
|
+
"node": [
|
|
129
|
+
"dist/index.node.d.ts"
|
|
130
|
+
],
|
|
131
|
+
"src/*": [
|
|
132
|
+
"src/*"
|
|
133
|
+
]
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
"exports": {
|
|
137
|
+
".": {
|
|
138
|
+
"import": "./dist/index.mjs",
|
|
139
|
+
"require": "./dist/index.js",
|
|
140
|
+
"default": "./dist/index.js",
|
|
141
|
+
"node": null,
|
|
142
|
+
"types": "./dist/index.d.ts"
|
|
143
|
+
},
|
|
144
|
+
"./node": {
|
|
145
|
+
"import": "./dist/index.node.mjs",
|
|
146
|
+
"require": "./dist/index.node.cjs",
|
|
147
|
+
"default": "./dist/index.node.cjs",
|
|
148
|
+
"node": "./dist/index.node.cjs",
|
|
149
|
+
"types": "./dist/index.node.d.ts"
|
|
150
|
+
}
|
|
151
|
+
}
|
|
92
152
|
}
|
package/publish.js
CHANGED
|
@@ -1,14 +1,5 @@
|
|
|
1
1
|
var cp = require('child_process');
|
|
2
|
-
var path = require('path');
|
|
3
|
-
var fs = require('fs');
|
|
4
2
|
|
|
5
|
-
// useful changelog regexp for atom
|
|
6
|
-
// \(#([0-9]+)\) [#$1](https://github.com/fabricjs/fabric.js/pull/$1)
|
|
7
|
-
|
|
8
|
-
// eslint-disable-next-line no-undef
|
|
9
|
-
var pkgPath = path.resolve(__dirname, './package.json');
|
|
10
|
-
var pkgText = fs.readFileSync(pkgPath); // get original pkg text to restore it later
|
|
11
|
-
var pkgObject = JSON.parse(pkgText); // parsed pkg to override its fields
|
|
12
3
|
var args = process.argv.slice(2).join(' '); // args will be passed to npm publish (like --dry-run)
|
|
13
4
|
var preRelease = process.env.PRE_RELEASE;
|
|
14
5
|
|
|
@@ -18,25 +9,8 @@ if (preRelease === 'true') {
|
|
|
18
9
|
args = '--tag beta ' + args;
|
|
19
10
|
}
|
|
20
11
|
|
|
21
|
-
// override package.json with updated fields
|
|
22
|
-
fs.writeFileSync(
|
|
23
|
-
pkgPath,
|
|
24
|
-
JSON.stringify(Object.assign(pkgObject, {
|
|
25
|
-
optionalDependencies: {},
|
|
26
|
-
version: pkgObject.version + '-browser',
|
|
27
|
-
}), null, '\t')
|
|
28
|
-
);
|
|
29
|
-
|
|
30
12
|
console.log('npm publish ' + args);
|
|
31
13
|
|
|
32
|
-
// publish -browser version
|
|
33
|
-
cp.execSync('npm publish ' + args);
|
|
34
|
-
|
|
35
|
-
console.log('Browser package is published');
|
|
36
|
-
|
|
37
|
-
// restore the original package.json contents
|
|
38
|
-
fs.writeFileSync(pkgPath, pkgText);
|
|
39
|
-
|
|
40
14
|
// publish the main version (the package is published "above" the -browser version)
|
|
41
15
|
cp.execSync('npm publish ' + args);
|
|
42
16
|
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import json from '@rollup/plugin-json';
|
|
2
|
+
import terser from '@rollup/plugin-terser';
|
|
3
|
+
import ts from '@rollup/plugin-typescript';
|
|
4
|
+
import { babel } from '@rollup/plugin-babel';
|
|
5
|
+
import path from 'path';
|
|
6
|
+
import chalk from 'chalk';
|
|
7
|
+
// import dts from "rollup-plugin-dts";
|
|
8
|
+
|
|
9
|
+
const splitter = /\n|\s|,/g;
|
|
10
|
+
|
|
11
|
+
const buildOutput = process.env.BUILD_OUTPUT || './dist/index.js';
|
|
12
|
+
|
|
13
|
+
const dirname = path.dirname(buildOutput);
|
|
14
|
+
const basename = path.basename(buildOutput, '.js');
|
|
15
|
+
|
|
16
|
+
const plugins = [
|
|
17
|
+
json(),
|
|
18
|
+
ts({
|
|
19
|
+
noForceEmit: true,
|
|
20
|
+
tsconfig: './tsconfig.json',
|
|
21
|
+
}),
|
|
22
|
+
babel({
|
|
23
|
+
extensions: ['.ts', '.js'],
|
|
24
|
+
babelHelpers: 'bundled',
|
|
25
|
+
}),
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* disallow circular deps
|
|
30
|
+
* @see https://rollupjs.org/configuration-options/#onwarn
|
|
31
|
+
* @param {*} warning
|
|
32
|
+
* @param {*} warn
|
|
33
|
+
*/
|
|
34
|
+
function onwarn(warning, warn) {
|
|
35
|
+
if (warning.code === 'CIRCULAR_DEPENDENCY') {
|
|
36
|
+
console.error(chalk.redBright(warning.message));
|
|
37
|
+
throw Object.assign(new Error(), warning);
|
|
38
|
+
}
|
|
39
|
+
warn(warning);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// https://rollupjs.org/guide/en/#configuration-files
|
|
43
|
+
export default [
|
|
44
|
+
{
|
|
45
|
+
input: process.env.BUILD_INPUT?.split(splitter) || ['./index.ts'],
|
|
46
|
+
output: [
|
|
47
|
+
{
|
|
48
|
+
file: path.resolve(dirname, `${basename}.mjs`),
|
|
49
|
+
name: 'fabric',
|
|
50
|
+
format: 'es',
|
|
51
|
+
sourcemap: true,
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
file: path.resolve(dirname, `${basename}.js`),
|
|
55
|
+
name: 'fabric',
|
|
56
|
+
format: 'umd',
|
|
57
|
+
sourcemap: true,
|
|
58
|
+
},
|
|
59
|
+
Number(process.env.MINIFY)
|
|
60
|
+
? {
|
|
61
|
+
file: path.resolve(dirname, `${basename}.min.js`),
|
|
62
|
+
name: 'fabric',
|
|
63
|
+
format: 'umd',
|
|
64
|
+
plugins: [terser()],
|
|
65
|
+
}
|
|
66
|
+
: null,
|
|
67
|
+
],
|
|
68
|
+
plugins,
|
|
69
|
+
onwarn,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
input: ['./index.node.ts'],
|
|
73
|
+
output: [
|
|
74
|
+
{
|
|
75
|
+
file: path.resolve(dirname, `${basename}.node.mjs`),
|
|
76
|
+
name: 'fabric',
|
|
77
|
+
format: 'es',
|
|
78
|
+
sourcemap: true,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
file: path.resolve(dirname, `${basename}.node.cjs`),
|
|
82
|
+
name: 'fabric',
|
|
83
|
+
format: 'cjs',
|
|
84
|
+
sourcemap: true,
|
|
85
|
+
},
|
|
86
|
+
],
|
|
87
|
+
plugins,
|
|
88
|
+
onwarn,
|
|
89
|
+
external: ['jsdom', 'jsdom/lib/jsdom/living/generated/utils.js', 'canvas'],
|
|
90
|
+
},
|
|
91
|
+
];
|