New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

victory-core

Package Overview
Dependencies
Maintainers
5
Versions
309
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

victory-core - npm Package Compare versions

Comparing version

to
13.0.0

lib/victory-legend/victory-legend.js

14

CHANGELOG.md
VictoryCore Changelog
=====================
## 13.0.0 (2017-01-30)
- [189](https://github.com/FormidableLabs/victory-core/pull/189) and [191](https://github.com/FormidableLabs/victory-core/pull/190)
- Adds `VictoryLegend` component
- [190](https://github.com/FormidableLabs/victory-core/pull/189)
- Allows `VictoryContainer` to render either `<g>` or `<svg>` depending on the value of the standalone prop
- Passes a timer down in context for `VictorySharedEvents`
- Event handlers have access to the context they are being called from via an argument
- _i.e._ `onClick: (event, targetProps, eventKey, context) => {...}`
- Enhances `addEvents` so that evented components can pick up "parentControllerProps" from parent state
- useful for `VictoryZoomContainer`
- Adds the ability to define callbacks in the events prop that will be called after `setState`
- useful for allowing `VictoryZoomContainer` to call methods like `resumeAnimation`
## 12.0.2 (2017-01-14)

@@ -5,0 +19,0 @@

1

lib/index.js

@@ -7,2 +7,3 @@ Object.defineProperty(exports,"__esModule",{value:true});var _victoryAnimation=require("./victory-animation/victory-animation");Object.defineProperty(exports,"VictoryAnimation",{enumerable:true,get:function get(){return _interopRequireDefault(_victoryAnimation).default;}});var _victoryContainer=require("./victory-container/victory-container");Object.defineProperty(exports,"VictoryContainer",{enumerable:true,get:function get(){return _interopRequireDefault(_victoryContainer).

default;}});var _victoryTheme=require("./victory-theme/victory-theme");Object.defineProperty(exports,"VictoryTheme",{enumerable:true,get:function get(){return _interopRequireDefault(_victoryTheme).
default;}});var _victoryLegend=require("./victory-legend/victory-legend");Object.defineProperty(exports,"VictoryLegend",{enumerable:true,get:function get(){return _interopRequireDefault(_victoryLegend).
default;}});var _victoryTooltip=require("./victory-tooltip/victory-tooltip");Object.defineProperty(exports,"VictoryTooltip",{enumerable:true,get:function get(){return _interopRequireDefault(_victoryTooltip).

@@ -9,0 +10,0 @@ default;}});var _victoryPortal=require("./victory-portal/victory-portal");Object.defineProperty(exports,"VictoryPortal",{enumerable:true,get:function get(){return _interopRequireDefault(_victoryPortal).

32

lib/victory-container/victory-container.js

@@ -43,2 +43,4 @@ Object.defineProperty(exports,"__esModule",{value:true});var _omit2=require("lodash/omit");var _omit3=_interopRequireDefault(_omit2);var _assign2=require("lodash/assign");var _assign3=_interopRequireDefault(_assign2);var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _react=require("react");var _react2=_interopRequireDefault(_react);

function VictoryContainer(props){_classCallCheck(this,VictoryContainer);var _this=_possibleConstructorReturn(this,(VictoryContainer.__proto__||Object.getPrototypeOf(VictoryContainer)).call(this,

@@ -51,3 +53,2 @@ props));

this.savePortalRef=function(portal){return _this2.portalRef=portal;};
this.saveSvgRef=function(svg){return _this2.svgRef=svg;};
this.portalUpdate=function(key,el){return _this2.portalRef.portalUpdate(key,el);};

@@ -81,2 +82,7 @@ this.portalRegister=function(){return _this2.portalRef.portalRegister();};

return this.timer;
}},{key:"getChildren",value:function getChildren(
props){
return props.children;
}},{key:"renderContainer",value:function renderContainer(

@@ -86,15 +92,24 @@

props,svgProps,style){var
title=props.title,desc=props.desc,children=props.children,portalComponent=props.portalComponent,className=props.className;
return(
title=props.title,desc=props.desc,portalComponent=props.portalComponent,className=props.className,standalone=props.standalone;
return standalone?
_react2.default.createElement("svg",_extends({},svgProps,{style:style,className:className}),
_react2.default.createElement("title",{id:"title"},title),
_react2.default.createElement("desc",{id:"desc"},desc),
children,
_react2.default.cloneElement(portalComponent,{ref:this.savePortalRef})));
this.getChildren(props),
_react2.default.cloneElement(portalComponent,{ref:this.savePortalRef})):
_react2.default.createElement("g",_extends({},svgProps,{style:style,className:className}),
_react2.default.createElement("title",{id:"title"},title),
_react2.default.createElement("desc",{id:"desc"},desc),
this.getChildren(props),
_react2.default.cloneElement(portalComponent,{ref:this.savePortalRef}));
}},{key:"render",value:function render()
{var _props=
this.props,width=_props.width,height=_props.height,responsive=_props.responsive,events=_props.events;
this.props,width=_props.width,height=_props.height,responsive=_props.responsive,events=_props.events,standalone=_props.standalone;
var style=responsive?this.props.style:(0,_omit3.default)(this.props.style,["height","width"]);

@@ -104,4 +119,3 @@ var svgProps=(0,_assign3.default)(

"aria-labelledby":"title desc",role:"img",width:width,height:height,
viewBox:responsive?"0 0 "+width+" "+height:undefined,
ref:this.saveSvgRef},
viewBox:responsive&&standalone?"0 0 "+width+" "+height:undefined},

@@ -111,2 +125,2 @@ events);

return this.renderContainer(this.props,svgProps,style);
}}]);return VictoryContainer;}(_react2.default.Component);VictoryContainer.displayName="VictoryContainer";VictoryContainer.propTypes={className:_react.PropTypes.string,style:_react.PropTypes.object,height:_react.PropTypes.number,width:_react.PropTypes.number,events:_react.PropTypes.object,children:_react2.default.PropTypes.oneOfType([_react2.default.PropTypes.arrayOf(_react2.default.PropTypes.node),_react2.default.PropTypes.node]),title:_react.PropTypes.string,desc:_react.PropTypes.string,portalComponent:_react.PropTypes.element,responsive:_react.PropTypes.bool};VictoryContainer.defaultProps={title:"Victory Chart",desc:"",portalComponent:_react2.default.createElement(_portal2.default,null),responsive:true};VictoryContainer.contextTypes={getTimer:_react2.default.PropTypes.func};VictoryContainer.childContextTypes={portalUpdate:_react2.default.PropTypes.func,portalRegister:_react2.default.PropTypes.func,portalDeregister:_react2.default.PropTypes.func,getTimer:_react2.default.PropTypes.func};exports.default=VictoryContainer;
}}]);return VictoryContainer;}(_react2.default.Component);VictoryContainer.displayName="VictoryContainer";VictoryContainer.propTypes={className:_react.PropTypes.string,style:_react.PropTypes.object,height:_react.PropTypes.number,width:_react.PropTypes.number,events:_react.PropTypes.object,children:_react2.default.PropTypes.oneOfType([_react2.default.PropTypes.arrayOf(_react2.default.PropTypes.node),_react2.default.PropTypes.node]),title:_react.PropTypes.string,desc:_react.PropTypes.string,portalComponent:_react.PropTypes.element,responsive:_react.PropTypes.bool,standalone:_react.PropTypes.bool};VictoryContainer.defaultProps={title:"Victory Chart",desc:"",portalComponent:_react2.default.createElement(_portal2.default,null),responsive:true,standalone:true};VictoryContainer.contextTypes={getTimer:_react2.default.PropTypes.func};VictoryContainer.childContextTypes={portalUpdate:_react2.default.PropTypes.func,portalRegister:_react2.default.PropTypes.func,portalDeregister:_react2.default.PropTypes.func,getTimer:_react2.default.PropTypes.func};exports.default=VictoryContainer;

@@ -43,2 +43,10 @@ Object.defineProperty(exports,"__esModule",{value:true});var _defaults2=require("lodash/defaults");var _defaults3=_interopRequireDefault(_defaults2);var _partialRight2=require("lodash/partialRight");var _partialRight3=_interopRequireDefault(_partialRight2);var _isFunction2=require("lodash/isFunction");var _isFunction3=_interopRequireDefault(_isFunction2);var _assign2=require("lodash/assign");var _assign3=_interopRequireDefault(_assign2);var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();

function VictorySharedEvents(){_classCallCheck(this,VictorySharedEvents);var _this=_possibleConstructorReturn(this,(VictorySharedEvents.__proto__||Object.getPrototypeOf(VictorySharedEvents)).call(this));

@@ -48,6 +56,23 @@

_this.getScopedEvents=_index.Events.getScopedEvents.bind(_this);
_this.getEventState=_index.Events.getEventState.bind(_this);return _this;
}_createClass(VictorySharedEvents,[{key:"componentWillMount",value:function componentWillMount()
_this.getEventState=_index.Events.getEventState.bind(_this);
_this.getTimer=_this.getTimer.bind(_this);return _this;
}_createClass(VictorySharedEvents,[{key:"getChildContext",value:function getChildContext()
{
return{
getTimer:this.getTimer};
}},{key:"getTimer",value:function getTimer()
{
if(this.context.getTimer){
return this.context.getTimer();
}
if(!this.timer){
this.timer=new _index.Timer();
}
return this.timer;
}},{key:"componentWillMount",value:function componentWillMount()
{
this.setUpChildren(this.props);

@@ -174,2 +199,2 @@ }},{key:"componentWillReceiveProps",value:function componentWillReceiveProps(

return _react2.default.cloneElement(this.props.container,{children:this.props.children});
}}]);return VictorySharedEvents;}(_react2.default.Component);VictorySharedEvents.displayName="VictorySharedEvents";VictorySharedEvents.role="shared-event-wrapper";VictorySharedEvents.propTypes={children:_react2.default.PropTypes.oneOfType([_react2.default.PropTypes.arrayOf(_react2.default.PropTypes.node),_react2.default.PropTypes.node]),container:_react2.default.PropTypes.node,groupComponent:_react2.default.PropTypes.node,events:_react.PropTypes.arrayOf(_react.PropTypes.shape({childName:_react.PropTypes.oneOfType([_react.PropTypes.string,_react.PropTypes.array]),target:_react.PropTypes.string,eventKey:_react.PropTypes.oneOfType([_react.PropTypes.array,_react.PropTypes.func,_index.PropTypes.allOfType([_index.PropTypes.integer,_index.PropTypes.nonNegative]),_react.PropTypes.string]),eventHandlers:_react.PropTypes.object})),eventKey:_react.PropTypes.oneOfType([_react.PropTypes.array,_react.PropTypes.func,_index.PropTypes.allOfType([_index.PropTypes.integer,_index.PropTypes.nonNegative]),_react.PropTypes.string])};VictorySharedEvents.defaultProps={groupComponent:_react2.default.createElement("g",null)};exports.default=VictorySharedEvents;
}}]);return VictorySharedEvents;}(_react2.default.Component);VictorySharedEvents.displayName="VictorySharedEvents";VictorySharedEvents.role="shared-event-wrapper";VictorySharedEvents.propTypes={children:_react2.default.PropTypes.oneOfType([_react2.default.PropTypes.arrayOf(_react2.default.PropTypes.node),_react2.default.PropTypes.node]),container:_react2.default.PropTypes.node,groupComponent:_react2.default.PropTypes.node,events:_react.PropTypes.arrayOf(_react.PropTypes.shape({childName:_react.PropTypes.oneOfType([_react.PropTypes.string,_react.PropTypes.array]),target:_react.PropTypes.string,eventKey:_react.PropTypes.oneOfType([_react.PropTypes.array,_react.PropTypes.func,_index.PropTypes.allOfType([_index.PropTypes.integer,_index.PropTypes.nonNegative]),_react.PropTypes.string]),eventHandlers:_react.PropTypes.object})),eventKey:_react.PropTypes.oneOfType([_react.PropTypes.array,_react.PropTypes.func,_index.PropTypes.allOfType([_index.PropTypes.integer,_index.PropTypes.nonNegative]),_react.PropTypes.string])};VictorySharedEvents.defaultProps={groupComponent:_react2.default.createElement("g",null)};VictorySharedEvents.contextTypes={getTimer:_react2.default.PropTypes.func};VictorySharedEvents.childContextTypes={getTimer:_react2.default.PropTypes.func};exports.default=VictorySharedEvents;

@@ -196,2 +196,9 @@ Object.defineProperty(exports,"__esModule",{value:true});var _assign2=require("lodash/assign");var _assign3=_interopRequireDefault(_assign2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}

baseProps)};
baseProps),
legend:{
colorScale:colors,
style:{
data:{
type:"circle"},
labels:baseLabelStyles}}};

@@ -221,2 +221,9 @@ Object.defineProperty(exports,"__esModule",{value:true});var _assign2=require("lodash/assign");var _assign3=_interopRequireDefault(_assign2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}

baseProps)};
baseProps),
legend:{
colorScale:colors,
style:{
data:{
type:"circle"},
labels:baseLabelStyles}}};

@@ -1,2 +0,2 @@

Object.defineProperty(exports,"__esModule",{value:true});var _partialRight2=require("lodash/partialRight");var _partialRight3=_interopRequireDefault(_partialRight2);var _isFunction2=require("lodash/isFunction");var _isFunction3=_interopRequireDefault(_isFunction2);var _assign2=require("lodash/assign");var _assign3=_interopRequireDefault(_assign2);var _defaults2=require("lodash/defaults");var _defaults3=_interopRequireDefault(_defaults2);var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _get=function get(object,property,receiver){if(object===null)object=Function.prototype;var desc=Object.getOwnPropertyDescriptor(object,property);if(desc===undefined){var parent=Object.getPrototypeOf(object);if(parent===null){return undefined;}else{return get(parent,property,receiver);}}else if("value"in desc){return desc.value;}else{var getter=desc.get;if(getter===undefined){return undefined;}return getter.call(receiver);}};
Object.defineProperty(exports,"__esModule",{value:true});var _pick2=require("lodash/pick");var _pick3=_interopRequireDefault(_pick2);var _partialRight2=require("lodash/partialRight");var _partialRight3=_interopRequireDefault(_partialRight2);var _isFunction2=require("lodash/isFunction");var _isFunction3=_interopRequireDefault(_isFunction2);var _assign2=require("lodash/assign");var _assign3=_interopRequireDefault(_assign2);var _defaults2=require("lodash/defaults");var _defaults3=_interopRequireDefault(_defaults2);var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _get=function get(object,property,receiver){if(object===null)object=Function.prototype;var desc=Object.getOwnPropertyDescriptor(object,property);if(desc===undefined){var parent=Object.getPrototypeOf(object);if(parent===null){return undefined;}else{return get(parent,property,receiver);}}else if("value"in desc){return desc.value;}else{var getter=desc.get;if(getter===undefined){return undefined;}return getter.call(receiver);}};
var _events=require("./events");var _events2=_interopRequireDefault(_events);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _toConsumableArray(arr){if(Array.isArray(arr)){for(var i=0,arr2=Array(arr.length);i<arr.length;i++){arr2[i]=arr[i];}return arr2;}else{return Array.from(arr);}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call&&(typeof call==="object"||typeof call==="function")?call:self;}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}exports.default=

@@ -16,3 +16,3 @@

this.setupEvents(this.props);
}},{key:"componentWillReceiveProps",value:function componentWillReceiveProps(
}},{key:"componentWillUpdate",value:function componentWillUpdate(

@@ -30,9 +30,19 @@ newProps){

this.componentEvents=_events2.default.getComponentEvents(props,components);
this.baseProps=(0,_isFunction3.default)(WrappedComponent.getBaseProps)?
WrappedComponent.getBaseProps(props):{};
this.dataKeys=Object.keys(this.baseProps).filter(function(key){return key!=="parent";});
this.getSharedEventState=sharedEvents&&(0,_isFunction3.default)(sharedEvents.getEventState)?
sharedEvents.getEventState:function(){return undefined;};
this.baseProps=this.getBaseProps(props);
this.dataKeys=Object.keys(this.baseProps).filter(function(key){return key!=="parent";});
this.hasEvents=props.events||props.sharedEvents||this.componentEvents;
this.events=this.getAllEvents(props);
}},{key:"getBaseProps",value:function getBaseProps(
props){
var sharedParentState=this.getSharedEventState("parent","parent");
var parentState=this.getEventState("parent","parent");
var baseParentProps=(0,_defaults3.default)({},parentState,sharedParentState);
var parentPropsList=baseParentProps.parentControlledProps;
var parentProps=parentPropsList?(0,_pick3.default)(baseParentProps,parentPropsList):{};
var modifiedProps=(0,_defaults3.default)({},parentProps,props);
return(0,_isFunction3.default)(WrappedComponent.getBaseProps)?
WrappedComponent.getBaseProps(modifiedProps):{};
}},{key:"getAllEvents",value:function getAllEvents(

@@ -39,0 +49,0 @@

@@ -151,8 +151,18 @@ Object.defineProperty(exports,"__esModule",{value:true});var _without2=require("lodash/without");var _without3=_interopRequireDefault(_without2);var _isFunction2=require("lodash/isFunction");var _isFunction3=_interopRequireDefault(_isFunction2);var _isEmpty2=require("lodash/isEmpty");var _isEmpty3=_interopRequireDefault(_isEmpty2);var _partial2=require("lodash/partial");var _partial3=_interopRequireDefault(_partial2);var _merge2=require("lodash/merge");var _merge3=_interopRequireDefault(_merge2);var _extend6=require("lodash/extend");var _extend7=_interopRequireDefault(_extend6);var _assign2=require("lodash/assign");var _assign3=_interopRequireDefault(_assign2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}function _toConsumableArray(arr){if(Array.isArray(arr)){for(var i=0,arr2=Array(arr.length);i<arr.length;i++){arr2[i]=arr[i];}return arr2;}else{return Array.from(arr);}}exports.default=

var compileCallbacks=function compileCallbacks(eventReturn){
var getCallback=function getCallback(obj){return(0,_isFunction3.default)(obj.callback)&&obj.callback;};
var callbacks=Array.isArray(eventReturn)?
eventReturn.map(function(evtObj){return getCallback(evtObj);}):[getCallback(eventReturn)];
var callbackArray=callbacks.filter(function(callback){return callback!==false;});
return callbackArray.length?
function(){return callbackArray.forEach(function(callback){return callback();});}:undefined;
};
var onEvent=function onEvent(evt,childProps,eventKey,eventName){
var eventReturn=events[eventName](evt,childProps,eventKey);
var eventReturn=events[eventName](evt,childProps,eventKey,_this2);
if(eventReturn){
_this2.setState(parseEventReturn(eventReturn,eventKey));
var callbacks=compileCallbacks(eventReturn);
_this2.setState(parseEventReturn(eventReturn,eventKey),callbacks);
}

@@ -159,0 +169,0 @@ };

@@ -15,9 +15,26 @@ Object.defineProperty(exports,"__esModule",{value:true});var _isFunction2=require("lodash/isFunction");var _isFunction3=_interopRequireDefault(_isFunction2);var _react=require("react");var _react2=_interopRequireDefault(_react);

getTransformationMatrix:function getTransformationMatrix(svg){
return svg.getScreenCTM().inverse();
},
getSVGEventCoordinates:function getSVGEventCoordinates(evt){
var svg=this.getParentSVG(evt.target);
var matrix=svg.getScreenCTM().inverse();var
var matrix=this.getTransformationMatrix(svg);
return{
x:this.transformTarget(evt.clientX,matrix,"x"),
y:this.transformTarget(evt.clientY,matrix,"y")};
},
transformTarget:function transformTarget(target,matrix,dimension){var
a=matrix.a,d=matrix.d,e=matrix.e,f=matrix.f;
return dimension==="y"?
d*target+f:a*target+e;
},
getDomainCoordinates:function getDomainCoordinates(scale,domain){
domain=domain||{x:scale.x.domain(),y:scale.y.domain()};
return{
x:a*evt.clientX+e,
y:d*evt.clientY+f};
x:[scale.x(domain.x[0]),scale.x(domain.x[1])],
y:[scale.y(domain.y[0]),scale.y(domain.y[1])]};

@@ -24,0 +41,0 @@ },

@@ -75,3 +75,3 @@ Object.defineProperty(exports,"__esModule",{value:true});var _defaults2=require("lodash/defaults");var _defaults3=_interopRequireDefault(_defaults2);var _merge2=require("lodash/merge");var _merge3=_interopRequireDefault(_merge2);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}

var aproximateTextWidthInternal=function aproximateTextWidthInternal(text,style){
var approximateTextWidthInternal=function approximateTextWidthInternal(text,style){
var strLength=getWidestString(splitToLines(text.toString())).length;

@@ -82,3 +82,3 @@ return strLength*style.fontSize/style.characterConstant+

var aproximateTextHeightInternal=function aproximateTextHeightInternal(text,style){
var approximateTextHeightInternal=function approximateTextHeightInternal(text,style){
var splittedTextArray=splitToLines(text);

@@ -137,4 +137,4 @@ var lineCount=splittedTextArray.length;

var params=prepareParams(style);
var height=aproximateTextHeightInternal(text,params);
var width=aproximateTextWidthInternal(text,params);
var height=approximateTextHeightInternal(text,params);
var width=approximateTextWidthInternal(text,params);
var widthWithRotate=getSizeWithRotate(width,height,params.angle);

@@ -141,0 +141,0 @@ var heightWithRotate=getSizeWithRotate(height,width,params.angle);

{
"name": "victory-core",
"version": "12.0.2",
"version": "13.0.0",
"description": "Victory Core",

@@ -5,0 +5,0 @@ "main": "lib/index.js",

@@ -8,2 +8,3 @@ export { default as VictoryAnimation } from "./victory-animation/victory-animation";

export { default as VictoryTheme } from "./victory-theme/victory-theme";
export { default as VictoryLegend } from "./victory-legend/victory-legend";
export { default as VictoryTooltip } from "./victory-tooltip/victory-tooltip";

@@ -10,0 +11,0 @@ export { default as VictoryPortal } from "./victory-portal/victory-portal";

@@ -22,3 +22,4 @@ import React, { PropTypes } from "react";

portalComponent: PropTypes.element,
responsive: PropTypes.bool
responsive: PropTypes.bool,
standalone: PropTypes.bool
}

@@ -30,3 +31,4 @@

portalComponent: <Portal/>,
responsive: true
responsive: true,
standalone: true
}

@@ -52,3 +54,2 @@

this.savePortalRef = (portal) => this.portalRef = portal;
this.saveSvgRef = (svg) => this.svgRef = svg;
this.portalUpdate = (key, el) => this.portalRef.portalUpdate(key, el);

@@ -84,17 +85,31 @@ this.portalRegister = () => this.portalRef.portalRegister();

// overridden in custom containers
getChildren(props) {
return props.children;
}
// Overridden in victory-core-native
renderContainer(props, svgProps, style) {
const { title, desc, children, portalComponent, className } = props;
return (
<svg {...svgProps} style={style} className={className}>
<title id="title">{title}</title>
<desc id="desc">{desc}</desc>
{children}
{React.cloneElement(portalComponent, {ref: this.savePortalRef})}
</svg>
);
const { title, desc, portalComponent, className, standalone } = props;
return standalone ?
(
<svg {...svgProps} style={style} className={className}>
<title id="title">{title}</title>
<desc id="desc">{desc}</desc>
{this.getChildren(props)}
{React.cloneElement(portalComponent, {ref: this.savePortalRef})}
</svg>
) :
(
<g {...svgProps} style={style} className={className}>
<title id="title">{title}</title>
<desc id="desc">{desc}</desc>
{this.getChildren(props)}
{React.cloneElement(portalComponent, {ref: this.savePortalRef})}
</g>
);
}
render() {
const { width, height, responsive, events } = this.props;
const { width, height, responsive, events, standalone } = this.props;
const style = responsive ? this.props.style : omit(this.props.style, ["height", "width"]);

@@ -104,4 +119,3 @@ const svgProps = assign(

"aria-labelledby": "title desc", role: "img", width, height,
viewBox: responsive ? `0 0 ${width} ${height}` : undefined,
ref: this.saveSvgRef
viewBox: responsive && standalone ? `0 0 ${width} ${height}` : undefined
},

@@ -108,0 +122,0 @@ events

import { assign, isFunction, partialRight, defaults } from "lodash";
import React, { PropTypes } from "react";
import { PropTypes as CustomPropTypes, Events } from "../victory-util/index";
import { PropTypes as CustomPropTypes, Events, Timer } from "../victory-util/index";

@@ -43,2 +43,10 @@ export default class VictorySharedEvents extends React.Component {

static contextTypes = {
getTimer: React.PropTypes.func
};
static childContextTypes = {
getTimer: React.PropTypes.func
};
constructor() {

@@ -49,4 +57,21 @@ super();

this.getEventState = Events.getEventState.bind(this);
this.getTimer = this.getTimer.bind(this);
}
getChildContext() {
return {
getTimer: this.getTimer
};
}
getTimer() {
if (this.context.getTimer) {
return this.context.getTimer();
}
if (!this.timer) {
this.timer = new Timer();
}
return this.timer;
}
componentWillMount() {

@@ -53,0 +78,0 @@ this.setUpChildren(this.props);

@@ -196,3 +196,12 @@ import { assign } from "lodash";

}
}, baseProps)
}, baseProps),
legend: {
colorScale: colors,
style: {
data: {
type: "circle"
},
labels: baseLabelStyles
}
}
};

@@ -221,3 +221,12 @@ import { assign } from "lodash";

}
}, baseProps)
}, baseProps),
legend: {
colorScale: colors,
style: {
data: {
type: "circle"
},
labels: baseLabelStyles
}
}
};

@@ -1,2 +0,2 @@

import { defaults, assign, isFunction, partialRight } from "lodash";
import { defaults, assign, isFunction, partialRight, pick } from "lodash";
import Events from "./events";

@@ -18,3 +18,3 @@

componentWillReceiveProps(newProps) {
componentWillUpdate(newProps) {
if (isFunction(super.componentWillReceiveProps)) {

@@ -30,7 +30,6 @@ super.componentWillReceiveProps();

this.componentEvents = Events.getComponentEvents(props, components);
this.baseProps = isFunction(WrappedComponent.getBaseProps) ?
WrappedComponent.getBaseProps(props) : {};
this.dataKeys = Object.keys(this.baseProps).filter((key) => key !== "parent");
this.getSharedEventState = sharedEvents && isFunction(sharedEvents.getEventState) ?
sharedEvents.getEventState : () => undefined;
this.baseProps = this.getBaseProps(props);
this.dataKeys = Object.keys(this.baseProps).filter((key) => key !== "parent");
this.hasEvents = props.events || props.sharedEvents || this.componentEvents;

@@ -40,2 +39,13 @@ this.events = this.getAllEvents(props);

getBaseProps(props) {
const sharedParentState = this.getSharedEventState("parent", "parent");
const parentState = this.getEventState("parent", "parent");
const baseParentProps = defaults({}, parentState, sharedParentState);
const parentPropsList = baseParentProps.parentControlledProps;
const parentProps = parentPropsList ? pick(baseParentProps, parentPropsList) : {};
const modifiedProps = defaults({}, parentProps, props);
return isFunction(WrappedComponent.getBaseProps) ?
WrappedComponent.getBaseProps(modifiedProps) : {};
}
getAllEvents(props) {

@@ -42,0 +52,0 @@ if (Array.isArray(this.componentEvents)) {

@@ -151,8 +151,18 @@ import { assign, extend, merge, partial, isEmpty, isFunction, without } from "lodash";

const compileCallbacks = (eventReturn) => {
const getCallback = (obj) => isFunction(obj.callback) && obj.callback;
const callbacks = Array.isArray(eventReturn) ?
eventReturn.map((evtObj) => getCallback(evtObj)) : [getCallback(eventReturn)];
const callbackArray = callbacks.filter((callback) => callback !== false);
return callbackArray.length ?
() => callbackArray.forEach((callback) => callback()) : undefined;
};
// A function that calls a particular event handler, parses its return
// into a state mutation, and calls setState
const onEvent = (evt, childProps, eventKey, eventName) => {
const eventReturn = events[eventName](evt, childProps, eventKey);
const eventReturn = events[eventName](evt, childProps, eventKey, this);
if (eventReturn) {
this.setState(parseEventReturn(eventReturn, eventKey));
const callbacks = compileCallbacks(eventReturn);
this.setState(parseEventReturn(eventReturn, eventKey), callbacks);
}

@@ -159,0 +169,0 @@ };

@@ -15,9 +15,26 @@ import React from "react";

getTransformationMatrix(svg) {
return svg.getScreenCTM().inverse();
},
getSVGEventCoordinates(evt) {
const svg = this.getParentSVG(evt.target);
const matrix = svg.getScreenCTM().inverse();
const matrix = this.getTransformationMatrix(svg);
return {
x: this.transformTarget(evt.clientX, matrix, "x"),
y: this.transformTarget(evt.clientY, matrix, "y")
};
},
transformTarget(target, matrix, dimension) {
const {a, d, e, f} = matrix;
return dimension === "y" ?
d * target + f : a * target + e;
},
getDomainCoordinates(scale, domain) {
domain = domain || { x: scale.x.domain(), y: scale.y.domain()};
return {
x: a * evt.clientX + e,
y: d * evt.clientY + f
x: [scale.x(domain.x[0]), scale.x(domain.x[1])],
y: [scale.y(domain.y[0]), scale.y(domain.y[1])]
};

@@ -24,0 +41,0 @@ },

@@ -66,4 +66,4 @@ //http://www.pearsonified.com/2012/01/characters-per-line.php

const getWidestString = (strings) => strings.reduce((max, elem) =>
max.length >= elem.length ? max : elem
);
max.length >= elem.length ? max : elem
);

@@ -73,12 +73,12 @@ const getSizeWithRotate = (axisSize, dependentSize, angle) => {

return Math.abs(Math.cos(angleInRadian) * axisSize)
+ Math.abs(Math.sin(angleInRadian) * dependentSize);
+ Math.abs(Math.sin(angleInRadian) * dependentSize);
};
const aproximateTextWidthInternal = (text, style) => {
const approximateTextWidthInternal = (text, style) => {
const strLength = getWidestString(splitToLines(text.toString())).length;
return (strLength * style.fontSize / style.characterConstant)
+ style.letterSpacing * (Math.max(strLength - 1, 0));
+ style.letterSpacing * (Math.max(strLength - 1, 0));
};
const aproximateTextHeightInternal = (text, style) => {
const approximateTextHeightInternal = (text, style) => {
const splittedTextArray = splitToLines(text);

@@ -137,4 +137,4 @@ const lineCount = splittedTextArray.length;

const params = prepareParams(style);
const height = aproximateTextHeightInternal(text, params);
const width = aproximateTextWidthInternal(text, params);
const height = approximateTextHeightInternal(text, params);
const width = approximateTextWidthInternal(text, params);
const widthWithRotate = getSizeWithRotate(width, height, params.angle);

@@ -141,0 +141,0 @@ const heightWithRotate = getSizeWithRotate(height, width, params.angle);

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display