react-native-svg
Version:
SVG library for react-native
2 lines • 7.88 kB
JavaScript
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=exports.SVGPoint=exports.SVGMatrix=void 0;exports.invert=invert;exports.matrixTransform=_matrixTransform;exports.multiply_matrices=multiply_matrices;exports.ownerSVGElement=void 0;var _assertThisInitialized2=_interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _react=require("react");var _SvgTouchableMixin=_interopRequireDefault(require("../lib/SvgTouchableMixin"));var _reactNative=require("react-native");function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=(0,_getPrototypeOf2.default)(Derived),result;if(hasNativeReflectConstruct){var NewTarget=(0,_getPrototypeOf2.default)(this).constructor;result=Reflect.construct(Super,arguments,NewTarget);}else{result=Super.apply(this,arguments);}return(0,_possibleConstructorReturn2.default)(this,result);};}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true;}catch(e){return false;}}var RNSVGRenderableManager=_reactNative.NativeModules.RNSVGRenderableManager;function multiply_matrices(l,r){var al=l.a,bl=l.b,cl=l.c,dl=l.d,el=l.e,fl=l.f;var ar=r.a,br=r.b,cr=r.c,dr=r.d,er=r.e,fr=r.f;var a=al*ar+cl*br;var c=al*cr+cl*dr;var e=al*er+cl*fr+el;var b=bl*ar+dl*br;var d=bl*cr+dl*dr;var f=bl*er+dl*fr+fl;return{a:a,c:c,e:e,b:b,d:d,f:f};}function invert(_ref){var a=_ref.a,b=_ref.b,c=_ref.c,d=_ref.d,e=_ref.e,f=_ref.f;var n=a*d-b*c;return{a:d/n,b:-b/n,c:-c/n,d:a/n,e:(c*f-d*e)/n,f:-(a*f-b*e)/n};}var deg2rad=Math.PI/180;var SVGMatrix=function(){function SVGMatrix(matrix){(0,_classCallCheck2.default)(this,SVGMatrix);if(matrix){var a=matrix.a,b=matrix.b,c=matrix.c,d=matrix.d,e=matrix.e,f=matrix.f;this.a=a;this.b=b;this.c=c;this.d=d;this.e=e;this.f=f;}else{this.a=1;this.b=0;this.c=0;this.d=1;this.e=0;this.f=0;}}(0,_createClass2.default)(SVGMatrix,[{key:"multiply",value:function multiply(secondMatrix){return new SVGMatrix(multiply_matrices(this,secondMatrix));}},{key:"inverse",value:function inverse(){return new SVGMatrix(invert(this));}},{key:"translate",value:function translate(x,y){return new SVGMatrix(multiply_matrices(this,{a:1,b:0,c:0,d:1,e:x,f:y}));}},{key:"scale",value:function scale(scaleFactor){return new SVGMatrix(multiply_matrices(this,{a:scaleFactor,b:0,c:0,d:scaleFactor,e:0,f:0}));}},{key:"scaleNonUniform",value:function scaleNonUniform(scaleFactorX,scaleFactorY){return new SVGMatrix(multiply_matrices(this,{a:scaleFactorX,b:0,c:0,d:scaleFactorY,e:0,f:0}));}},{key:"rotate",value:function rotate(angle){var cos=Math.cos(deg2rad*angle);var sin=Math.sin(deg2rad*angle);return new SVGMatrix(multiply_matrices(this,{a:cos,b:sin,c:-sin,d:cos,e:0,f:0}));}},{key:"rotateFromVector",value:function rotateFromVector(x,y){var angle=Math.atan2(y,x);var cos=Math.cos(deg2rad*angle);var sin=Math.sin(deg2rad*angle);return new SVGMatrix(multiply_matrices(this,{a:cos,b:sin,c:-sin,d:cos,e:0,f:0}));}},{key:"flipX",value:function flipX(){return new SVGMatrix(multiply_matrices(this,{a:-1,b:0,c:0,d:1,e:0,f:0}));}},{key:"flipY",value:function flipY(){return new SVGMatrix(multiply_matrices(this,{a:1,b:0,c:0,d:-1,e:0,f:0}));}},{key:"skewX",value:function skewX(angle){return new SVGMatrix(multiply_matrices(this,{a:1,b:0,c:Math.tan(deg2rad*angle),d:1,e:0,f:0}));}},{key:"skewY",value:function skewY(angle){return new SVGMatrix(multiply_matrices(this,{a:1,b:Math.tan(deg2rad*angle),c:0,d:1,e:0,f:0}));}}]);return SVGMatrix;}();exports.SVGMatrix=SVGMatrix;function _matrixTransform(matrix,point){var a=matrix.a,b=matrix.b,c=matrix.c,d=matrix.d,e=matrix.e,f=matrix.f;var x=point.x,y=point.y;return{x:a*x+c*y+e,y:b*x+d*y+f};}var SVGPoint=function(){function SVGPoint(point){(0,_classCallCheck2.default)(this,SVGPoint);if(point){var _x=point.x,_y=point.y;this.x=_x;this.y=_y;}else{this.x=0;this.y=0;}}(0,_createClass2.default)(SVGPoint,[{key:"matrixTransform",value:function matrixTransform(matrix){return new SVGPoint(_matrixTransform(matrix,this));}}]);return SVGPoint;}();exports.SVGPoint=SVGPoint;var ownerSVGElement={createSVGPoint:function createSVGPoint(){return new SVGPoint();},createSVGMatrix:function createSVGMatrix(){return new SVGMatrix();}};exports.ownerSVGElement=ownerSVGElement;var Shape=function(_Component){(0,_inherits2.default)(Shape,_Component);var _super=_createSuper(Shape);function Shape(_props,context){var _this;(0,_classCallCheck2.default)(this,Shape);_this=_super.call(this,_props,context);(0,_defineProperty2.default)((0,_assertThisInitialized2.default)(_this),"root",null);(0,_defineProperty2.default)((0,_assertThisInitialized2.default)(_this),"refMethod",function(instance){_this.root=instance;});(0,_defineProperty2.default)((0,_assertThisInitialized2.default)(_this),"setNativeProps",function(props){_this.root&&_this.root.setNativeProps(props);});(0,_defineProperty2.default)((0,_assertThisInitialized2.default)(_this),"getBBox",function(options){var _ref2=options||{},_ref2$fill=_ref2.fill,fill=_ref2$fill===void 0?true:_ref2$fill,_ref2$stroke=_ref2.stroke,stroke=_ref2$stroke===void 0?true:_ref2$stroke,_ref2$markers=_ref2.markers,markers=_ref2$markers===void 0?true:_ref2$markers,_ref2$clipped=_ref2.clipped,clipped=_ref2$clipped===void 0?true:_ref2$clipped;var handle=(0,_reactNative.findNodeHandle)(_this.root);return RNSVGRenderableManager.getBBox(handle,{fill:fill,stroke:stroke,markers:markers,clipped:clipped});});(0,_defineProperty2.default)((0,_assertThisInitialized2.default)(_this),"getCTM",function(){var handle=(0,_reactNative.findNodeHandle)(_this.root);return new SVGMatrix(RNSVGRenderableManager.getCTM(handle));});(0,_defineProperty2.default)((0,_assertThisInitialized2.default)(_this),"getScreenCTM",function(){var handle=(0,_reactNative.findNodeHandle)(_this.root);return new SVGMatrix(RNSVGRenderableManager.getScreenCTM(handle));});(0,_defineProperty2.default)((0,_assertThisInitialized2.default)(_this),"isPointInFill",function(options){var handle=(0,_reactNative.findNodeHandle)(_this.root);return RNSVGRenderableManager.isPointInFill(handle,options);});(0,_defineProperty2.default)((0,_assertThisInitialized2.default)(_this),"isPointInStroke",function(options){var handle=(0,_reactNative.findNodeHandle)(_this.root);return RNSVGRenderableManager.isPointInStroke(handle,options);});(0,_defineProperty2.default)((0,_assertThisInitialized2.default)(_this),"getTotalLength",function(){var handle=(0,_reactNative.findNodeHandle)(_this.root);return RNSVGRenderableManager.getTotalLength(handle);});(0,_defineProperty2.default)((0,_assertThisInitialized2.default)(_this),"getPointAtLength",function(length){var handle=(0,_reactNative.findNodeHandle)(_this.root);return new SVGPoint(RNSVGRenderableManager.getPointAtLength(handle,{length:length}));});(0,_SvgTouchableMixin.default)((0,_assertThisInitialized2.default)(_this));return _this;}return(0,_createClass2.default)(Shape);}(_react.Component);exports.default=Shape;Shape.prototype.ownerSVGElement=ownerSVGElement;
//# sourceMappingURL=Shape.js.map