react-rating
Advanced tools
Comparing version 0.6.5 to 0.7.0
@@ -1,2 +0,2 @@ | ||
/*! react-rating - 0.6.5 | (c) 2015, 2017 dreyescat | MIT | https://github.com/dreyescat/react-rating */ | ||
/*! react-rating - 0.7.0 | (c) 2015, 2017 dreyescat | MIT | https://github.com/dreyescat/react-rating */ | ||
(function webpackUniversalModuleDefinition(root, factory) { | ||
@@ -73,4 +73,5 @@ if(typeof exports === 'object' && typeof module === 'object') | ||
var React = __webpack_require__(2); | ||
var Style = __webpack_require__(3); | ||
var Symbol = __webpack_require__(5); | ||
var createReactClass = __webpack_require__(3); | ||
var Style = __webpack_require__(11); | ||
var Symbol = __webpack_require__(13); | ||
@@ -96,5 +97,3 @@ // Returns the index of the rate in the range (start, stop, step). | ||
var Rating = React.createClass({ | ||
displayName: 'Rating', | ||
var Rating = createReactClass({ | ||
// Define propTypes only in development. | ||
@@ -289,6 +288,1249 @@ propTypes: "boolean" !== 'undefined' && (true) && { | ||
/** | ||
* Copyright 2013-present, Facebook, Inc. | ||
* All rights reserved. | ||
* | ||
* This source code is licensed under the BSD-style license found in the | ||
* LICENSE file in the root directory of this source tree. An additional grant | ||
* of patent rights can be found in the PATENTS file in the same directory. | ||
* | ||
*/ | ||
'use strict'; | ||
var merge = __webpack_require__(4); | ||
var React = __webpack_require__(2); | ||
var factory = __webpack_require__(4); | ||
// Hack to grab NoopUpdateQueue from isomorphic React | ||
var ReactNoopUpdateQueue = new React.Component().updater; | ||
module.exports = factory( | ||
React.Component, | ||
React.isValidElement, | ||
ReactNoopUpdateQueue | ||
); | ||
/***/ }, | ||
/* 4 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
/* WEBPACK VAR INJECTION */(function(process) {/** | ||
* Copyright 2013-present, Facebook, Inc. | ||
* All rights reserved. | ||
* | ||
* This source code is licensed under the BSD-style license found in the | ||
* LICENSE file in the root directory of this source tree. An additional grant | ||
* of patent rights can be found in the PATENTS file in the same directory. | ||
* | ||
*/ | ||
'use strict'; | ||
var _assign = __webpack_require__(6); | ||
var emptyObject = __webpack_require__(7); | ||
var _invariant = __webpack_require__(8); | ||
if (process.env.NODE_ENV !== 'production') { | ||
var warning = __webpack_require__(9); | ||
} | ||
var MIXINS_KEY = 'mixins'; | ||
// Helper function to allow the creation of anonymous functions which do not | ||
// have .name set to the name of the variable being assigned to. | ||
function identity(fn) { | ||
return fn; | ||
} | ||
var ReactPropTypeLocationNames; | ||
if (process.env.NODE_ENV !== 'production') { | ||
ReactPropTypeLocationNames = { | ||
prop: 'prop', | ||
context: 'context', | ||
childContext: 'child context', | ||
}; | ||
} else { | ||
ReactPropTypeLocationNames = {}; | ||
} | ||
function factory(ReactComponent, isValidElement, ReactNoopUpdateQueue) { | ||
/** | ||
* Policies that describe methods in `ReactClassInterface`. | ||
*/ | ||
var injectedMixins = []; | ||
/** | ||
* Composite components are higher-level components that compose other composite | ||
* or host components. | ||
* | ||
* To create a new type of `ReactClass`, pass a specification of | ||
* your new class to `React.createClass`. The only requirement of your class | ||
* specification is that you implement a `render` method. | ||
* | ||
* var MyComponent = React.createClass({ | ||
* render: function() { | ||
* return <div>Hello World</div>; | ||
* } | ||
* }); | ||
* | ||
* The class specification supports a specific protocol of methods that have | ||
* special meaning (e.g. `render`). See `ReactClassInterface` for | ||
* more the comprehensive protocol. Any other properties and methods in the | ||
* class specification will be available on the prototype. | ||
* | ||
* @interface ReactClassInterface | ||
* @internal | ||
*/ | ||
var ReactClassInterface = { | ||
/** | ||
* An array of Mixin objects to include when defining your component. | ||
* | ||
* @type {array} | ||
* @optional | ||
*/ | ||
mixins: 'DEFINE_MANY', | ||
/** | ||
* An object containing properties and methods that should be defined on | ||
* the component's constructor instead of its prototype (static methods). | ||
* | ||
* @type {object} | ||
* @optional | ||
*/ | ||
statics: 'DEFINE_MANY', | ||
/** | ||
* Definition of prop types for this component. | ||
* | ||
* @type {object} | ||
* @optional | ||
*/ | ||
propTypes: 'DEFINE_MANY', | ||
/** | ||
* Definition of context types for this component. | ||
* | ||
* @type {object} | ||
* @optional | ||
*/ | ||
contextTypes: 'DEFINE_MANY', | ||
/** | ||
* Definition of context types this component sets for its children. | ||
* | ||
* @type {object} | ||
* @optional | ||
*/ | ||
childContextTypes: 'DEFINE_MANY', | ||
// ==== Definition methods ==== | ||
/** | ||
* Invoked when the component is mounted. Values in the mapping will be set on | ||
* `this.props` if that prop is not specified (i.e. using an `in` check). | ||
* | ||
* This method is invoked before `getInitialState` and therefore cannot rely | ||
* on `this.state` or use `this.setState`. | ||
* | ||
* @return {object} | ||
* @optional | ||
*/ | ||
getDefaultProps: 'DEFINE_MANY_MERGED', | ||
/** | ||
* Invoked once before the component is mounted. The return value will be used | ||
* as the initial value of `this.state`. | ||
* | ||
* getInitialState: function() { | ||
* return { | ||
* isOn: false, | ||
* fooBaz: new BazFoo() | ||
* } | ||
* } | ||
* | ||
* @return {object} | ||
* @optional | ||
*/ | ||
getInitialState: 'DEFINE_MANY_MERGED', | ||
/** | ||
* @return {object} | ||
* @optional | ||
*/ | ||
getChildContext: 'DEFINE_MANY_MERGED', | ||
/** | ||
* Uses props from `this.props` and state from `this.state` to render the | ||
* structure of the component. | ||
* | ||
* No guarantees are made about when or how often this method is invoked, so | ||
* it must not have side effects. | ||
* | ||
* render: function() { | ||
* var name = this.props.name; | ||
* return <div>Hello, {name}!</div>; | ||
* } | ||
* | ||
* @return {ReactComponent} | ||
* @nosideeffects | ||
* @required | ||
*/ | ||
render: 'DEFINE_ONCE', | ||
// ==== Delegate methods ==== | ||
/** | ||
* Invoked when the component is initially created and about to be mounted. | ||
* This may have side effects, but any external subscriptions or data created | ||
* by this method must be cleaned up in `componentWillUnmount`. | ||
* | ||
* @optional | ||
*/ | ||
componentWillMount: 'DEFINE_MANY', | ||
/** | ||
* Invoked when the component has been mounted and has a DOM representation. | ||
* However, there is no guarantee that the DOM node is in the document. | ||
* | ||
* Use this as an opportunity to operate on the DOM when the component has | ||
* been mounted (initialized and rendered) for the first time. | ||
* | ||
* @param {DOMElement} rootNode DOM element representing the component. | ||
* @optional | ||
*/ | ||
componentDidMount: 'DEFINE_MANY', | ||
/** | ||
* Invoked before the component receives new props. | ||
* | ||
* Use this as an opportunity to react to a prop transition by updating the | ||
* state using `this.setState`. Current props are accessed via `this.props`. | ||
* | ||
* componentWillReceiveProps: function(nextProps, nextContext) { | ||
* this.setState({ | ||
* likesIncreasing: nextProps.likeCount > this.props.likeCount | ||
* }); | ||
* } | ||
* | ||
* NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop | ||
* transition may cause a state change, but the opposite is not true. If you | ||
* need it, you are probably looking for `componentWillUpdate`. | ||
* | ||
* @param {object} nextProps | ||
* @optional | ||
*/ | ||
componentWillReceiveProps: 'DEFINE_MANY', | ||
/** | ||
* Invoked while deciding if the component should be updated as a result of | ||
* receiving new props, state and/or context. | ||
* | ||
* Use this as an opportunity to `return false` when you're certain that the | ||
* transition to the new props/state/context will not require a component | ||
* update. | ||
* | ||
* shouldComponentUpdate: function(nextProps, nextState, nextContext) { | ||
* return !equal(nextProps, this.props) || | ||
* !equal(nextState, this.state) || | ||
* !equal(nextContext, this.context); | ||
* } | ||
* | ||
* @param {object} nextProps | ||
* @param {?object} nextState | ||
* @param {?object} nextContext | ||
* @return {boolean} True if the component should update. | ||
* @optional | ||
*/ | ||
shouldComponentUpdate: 'DEFINE_ONCE', | ||
/** | ||
* Invoked when the component is about to update due to a transition from | ||
* `this.props`, `this.state` and `this.context` to `nextProps`, `nextState` | ||
* and `nextContext`. | ||
* | ||
* Use this as an opportunity to perform preparation before an update occurs. | ||
* | ||
* NOTE: You **cannot** use `this.setState()` in this method. | ||
* | ||
* @param {object} nextProps | ||
* @param {?object} nextState | ||
* @param {?object} nextContext | ||
* @param {ReactReconcileTransaction} transaction | ||
* @optional | ||
*/ | ||
componentWillUpdate: 'DEFINE_MANY', | ||
/** | ||
* Invoked when the component's DOM representation has been updated. | ||
* | ||
* Use this as an opportunity to operate on the DOM when the component has | ||
* been updated. | ||
* | ||
* @param {object} prevProps | ||
* @param {?object} prevState | ||
* @param {?object} prevContext | ||
* @param {DOMElement} rootNode DOM element representing the component. | ||
* @optional | ||
*/ | ||
componentDidUpdate: 'DEFINE_MANY', | ||
/** | ||
* Invoked when the component is about to be removed from its parent and have | ||
* its DOM representation destroyed. | ||
* | ||
* Use this as an opportunity to deallocate any external resources. | ||
* | ||
* NOTE: There is no `componentDidUnmount` since your component will have been | ||
* destroyed by that point. | ||
* | ||
* @optional | ||
*/ | ||
componentWillUnmount: 'DEFINE_MANY', | ||
// ==== Advanced methods ==== | ||
/** | ||
* Updates the component's currently mounted DOM representation. | ||
* | ||
* By default, this implements React's rendering and reconciliation algorithm. | ||
* Sophisticated clients may wish to override this. | ||
* | ||
* @param {ReactReconcileTransaction} transaction | ||
* @internal | ||
* @overridable | ||
*/ | ||
updateComponent: 'OVERRIDE_BASE' | ||
}; | ||
/** | ||
* Mapping from class specification keys to special processing functions. | ||
* | ||
* Although these are declared like instance properties in the specification | ||
* when defining classes using `React.createClass`, they are actually static | ||
* and are accessible on the constructor instead of the prototype. Despite | ||
* being static, they must be defined outside of the "statics" key under | ||
* which all other static methods are defined. | ||
*/ | ||
var RESERVED_SPEC_KEYS = { | ||
displayName: function (Constructor, displayName) { | ||
Constructor.displayName = displayName; | ||
}, | ||
mixins: function (Constructor, mixins) { | ||
if (mixins) { | ||
for (var i = 0; i < mixins.length; i++) { | ||
mixSpecIntoComponent(Constructor, mixins[i]); | ||
} | ||
} | ||
}, | ||
childContextTypes: function (Constructor, childContextTypes) { | ||
if (process.env.NODE_ENV !== 'production') { | ||
validateTypeDef(Constructor, childContextTypes, 'childContext'); | ||
} | ||
Constructor.childContextTypes = _assign({}, Constructor.childContextTypes, childContextTypes); | ||
}, | ||
contextTypes: function (Constructor, contextTypes) { | ||
if (process.env.NODE_ENV !== 'production') { | ||
validateTypeDef(Constructor, contextTypes, 'context'); | ||
} | ||
Constructor.contextTypes = _assign({}, Constructor.contextTypes, contextTypes); | ||
}, | ||
/** | ||
* Special case getDefaultProps which should move into statics but requires | ||
* automatic merging. | ||
*/ | ||
getDefaultProps: function (Constructor, getDefaultProps) { | ||
if (Constructor.getDefaultProps) { | ||
Constructor.getDefaultProps = createMergedResultFunction(Constructor.getDefaultProps, getDefaultProps); | ||
} else { | ||
Constructor.getDefaultProps = getDefaultProps; | ||
} | ||
}, | ||
propTypes: function (Constructor, propTypes) { | ||
if (process.env.NODE_ENV !== 'production') { | ||
validateTypeDef(Constructor, propTypes, 'prop'); | ||
} | ||
Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes); | ||
}, | ||
statics: function (Constructor, statics) { | ||
mixStaticSpecIntoComponent(Constructor, statics); | ||
}, | ||
autobind: function () {} }; | ||
function validateTypeDef(Constructor, typeDef, location) { | ||
for (var propName in typeDef) { | ||
if (typeDef.hasOwnProperty(propName)) { | ||
// use a warning instead of an _invariant so components | ||
// don't show up in prod but only in __DEV__ | ||
process.env.NODE_ENV !== 'production' ? warning(typeof typeDef[propName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', Constructor.displayName || 'ReactClass', ReactPropTypeLocationNames[location], propName) : void 0; | ||
} | ||
} | ||
} | ||
function validateMethodOverride(isAlreadyDefined, name) { | ||
var specPolicy = ReactClassInterface.hasOwnProperty(name) ? ReactClassInterface[name] : null; | ||
// Disallow overriding of base class methods unless explicitly allowed. | ||
if (ReactClassMixin.hasOwnProperty(name)) { | ||
_invariant(specPolicy === 'OVERRIDE_BASE', 'ReactClassInterface: You are attempting to override ' + '`%s` from your class specification. Ensure that your method names ' + 'do not overlap with React methods.', name); | ||
} | ||
// Disallow defining methods more than once unless explicitly allowed. | ||
if (isAlreadyDefined) { | ||
_invariant(specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED', 'ReactClassInterface: You are attempting to define ' + '`%s` on your component more than once. This conflict may be due ' + 'to a mixin.', name); | ||
} | ||
} | ||
/** | ||
* Mixin helper which handles policy validation and reserved | ||
* specification keys when building React classes. | ||
*/ | ||
function mixSpecIntoComponent(Constructor, spec) { | ||
if (!spec) { | ||
if (process.env.NODE_ENV !== 'production') { | ||
var typeofSpec = typeof spec; | ||
var isMixinValid = typeofSpec === 'object' && spec !== null; | ||
process.env.NODE_ENV !== 'production' ? warning(isMixinValid, '%s: You\'re attempting to include a mixin that is either null ' + 'or not an object. Check the mixins included by the component, ' + 'as well as any mixins they include themselves. ' + 'Expected object but got %s.', Constructor.displayName || 'ReactClass', spec === null ? null : typeofSpec) : void 0; | ||
} | ||
return; | ||
} | ||
_invariant(typeof spec !== 'function', 'ReactClass: You\'re attempting to ' + 'use a component class or function as a mixin. Instead, just use a ' + 'regular object.'); | ||
_invariant(!isValidElement(spec), 'ReactClass: You\'re attempting to ' + 'use a component as a mixin. Instead, just use a regular object.'); | ||
var proto = Constructor.prototype; | ||
var autoBindPairs = proto.__reactAutoBindPairs; | ||
// By handling mixins before any other properties, we ensure the same | ||
// chaining order is applied to methods with DEFINE_MANY policy, whether | ||
// mixins are listed before or after these methods in the spec. | ||
if (spec.hasOwnProperty(MIXINS_KEY)) { | ||
RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins); | ||
} | ||
for (var name in spec) { | ||
if (!spec.hasOwnProperty(name)) { | ||
continue; | ||
} | ||
if (name === MIXINS_KEY) { | ||
// We have already handled mixins in a special case above. | ||
continue; | ||
} | ||
var property = spec[name]; | ||
var isAlreadyDefined = proto.hasOwnProperty(name); | ||
validateMethodOverride(isAlreadyDefined, name); | ||
if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) { | ||
RESERVED_SPEC_KEYS[name](Constructor, property); | ||
} else { | ||
// Setup methods on prototype: | ||
// The following member methods should not be automatically bound: | ||
// 1. Expected ReactClass methods (in the "interface"). | ||
// 2. Overridden methods (that were mixed in). | ||
var isReactClassMethod = ReactClassInterface.hasOwnProperty(name); | ||
var isFunction = typeof property === 'function'; | ||
var shouldAutoBind = isFunction && !isReactClassMethod && !isAlreadyDefined && spec.autobind !== false; | ||
if (shouldAutoBind) { | ||
autoBindPairs.push(name, property); | ||
proto[name] = property; | ||
} else { | ||
if (isAlreadyDefined) { | ||
var specPolicy = ReactClassInterface[name]; | ||
// These cases should already be caught by validateMethodOverride. | ||
_invariant(isReactClassMethod && (specPolicy === 'DEFINE_MANY_MERGED' || specPolicy === 'DEFINE_MANY'), 'ReactClass: Unexpected spec policy %s for key %s ' + 'when mixing in component specs.', specPolicy, name); | ||
// For methods which are defined more than once, call the existing | ||
// methods before calling the new property, merging if appropriate. | ||
if (specPolicy === 'DEFINE_MANY_MERGED') { | ||
proto[name] = createMergedResultFunction(proto[name], property); | ||
} else if (specPolicy === 'DEFINE_MANY') { | ||
proto[name] = createChainedFunction(proto[name], property); | ||
} | ||
} else { | ||
proto[name] = property; | ||
if (process.env.NODE_ENV !== 'production') { | ||
// Add verbose displayName to the function, which helps when looking | ||
// at profiling tools. | ||
if (typeof property === 'function' && spec.displayName) { | ||
proto[name].displayName = spec.displayName + '_' + name; | ||
} | ||
} | ||
} | ||
} | ||
} | ||
} | ||
} | ||
function mixStaticSpecIntoComponent(Constructor, statics) { | ||
if (!statics) { | ||
return; | ||
} | ||
for (var name in statics) { | ||
var property = statics[name]; | ||
if (!statics.hasOwnProperty(name)) { | ||
continue; | ||
} | ||
var isReserved = name in RESERVED_SPEC_KEYS; | ||
_invariant(!isReserved, 'ReactClass: You are attempting to define a reserved ' + 'property, `%s`, that shouldn\'t be on the "statics" key. Define it ' + 'as an instance property instead; it will still be accessible on the ' + 'constructor.', name); | ||
var isInherited = name in Constructor; | ||
_invariant(!isInherited, 'ReactClass: You are attempting to define ' + '`%s` on your component more than once. This conflict may be ' + 'due to a mixin.', name); | ||
Constructor[name] = property; | ||
} | ||
} | ||
/** | ||
* Merge two objects, but throw if both contain the same key. | ||
* | ||
* @param {object} one The first object, which is mutated. | ||
* @param {object} two The second object | ||
* @return {object} one after it has been mutated to contain everything in two. | ||
*/ | ||
function mergeIntoWithNoDuplicateKeys(one, two) { | ||
_invariant(one && two && typeof one === 'object' && typeof two === 'object', 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.'); | ||
for (var key in two) { | ||
if (two.hasOwnProperty(key)) { | ||
_invariant(one[key] === undefined, 'mergeIntoWithNoDuplicateKeys(): ' + 'Tried to merge two objects with the same key: `%s`. This conflict ' + 'may be due to a mixin; in particular, this may be caused by two ' + 'getInitialState() or getDefaultProps() methods returning objects ' + 'with clashing keys.', key); | ||
one[key] = two[key]; | ||
} | ||
} | ||
return one; | ||
} | ||
/** | ||
* Creates a function that invokes two functions and merges their return values. | ||
* | ||
* @param {function} one Function to invoke first. | ||
* @param {function} two Function to invoke second. | ||
* @return {function} Function that invokes the two argument functions. | ||
* @private | ||
*/ | ||
function createMergedResultFunction(one, two) { | ||
return function mergedResult() { | ||
var a = one.apply(this, arguments); | ||
var b = two.apply(this, arguments); | ||
if (a == null) { | ||
return b; | ||
} else if (b == null) { | ||
return a; | ||
} | ||
var c = {}; | ||
mergeIntoWithNoDuplicateKeys(c, a); | ||
mergeIntoWithNoDuplicateKeys(c, b); | ||
return c; | ||
}; | ||
} | ||
/** | ||
* Creates a function that invokes two functions and ignores their return vales. | ||
* | ||
* @param {function} one Function to invoke first. | ||
* @param {function} two Function to invoke second. | ||
* @return {function} Function that invokes the two argument functions. | ||
* @private | ||
*/ | ||
function createChainedFunction(one, two) { | ||
return function chainedFunction() { | ||
one.apply(this, arguments); | ||
two.apply(this, arguments); | ||
}; | ||
} | ||
/** | ||
* Binds a method to the component. | ||
* | ||
* @param {object} component Component whose method is going to be bound. | ||
* @param {function} method Method to be bound. | ||
* @return {function} The bound method. | ||
*/ | ||
function bindAutoBindMethod(component, method) { | ||
var boundMethod = method.bind(component); | ||
if (process.env.NODE_ENV !== 'production') { | ||
boundMethod.__reactBoundContext = component; | ||
boundMethod.__reactBoundMethod = method; | ||
boundMethod.__reactBoundArguments = null; | ||
var componentName = component.constructor.displayName; | ||
var _bind = boundMethod.bind; | ||
boundMethod.bind = function (newThis) { | ||
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { | ||
args[_key - 1] = arguments[_key]; | ||
} | ||
// User is trying to bind() an autobound method; we effectively will | ||
// ignore the value of "this" that the user is trying to use, so | ||
// let's warn. | ||
if (newThis !== component && newThis !== null) { | ||
process.env.NODE_ENV !== 'production' ? warning(false, 'bind(): React component methods may only be bound to the ' + 'component instance. See %s', componentName) : void 0; | ||
} else if (!args.length) { | ||
process.env.NODE_ENV !== 'production' ? warning(false, 'bind(): You are binding a component method to the component. ' + 'React does this for you automatically in a high-performance ' + 'way, so you can safely remove this call. See %s', componentName) : void 0; | ||
return boundMethod; | ||
} | ||
var reboundMethod = _bind.apply(boundMethod, arguments); | ||
reboundMethod.__reactBoundContext = component; | ||
reboundMethod.__reactBoundMethod = method; | ||
reboundMethod.__reactBoundArguments = args; | ||
return reboundMethod; | ||
}; | ||
} | ||
return boundMethod; | ||
} | ||
/** | ||
* Binds all auto-bound methods in a component. | ||
* | ||
* @param {object} component Component whose method is going to be bound. | ||
*/ | ||
function bindAutoBindMethods(component) { | ||
var pairs = component.__reactAutoBindPairs; | ||
for (var i = 0; i < pairs.length; i += 2) { | ||
var autoBindKey = pairs[i]; | ||
var method = pairs[i + 1]; | ||
component[autoBindKey] = bindAutoBindMethod(component, method); | ||
} | ||
} | ||
var IsMountedMixin = { | ||
componentDidMount: function () { | ||
this.__isMounted = true; | ||
}, | ||
componentWillUnmount: function () { | ||
this.__isMounted = false; | ||
} | ||
}; | ||
/** | ||
* Add more to the ReactClass base class. These are all legacy features and | ||
* therefore not already part of the modern ReactComponent. | ||
*/ | ||
var ReactClassMixin = { | ||
/** | ||
* TODO: This will be deprecated because state should always keep a consistent | ||
* type signature and the only use case for this, is to avoid that. | ||
*/ | ||
replaceState: function (newState, callback) { | ||
this.updater.enqueueReplaceState(this, newState, callback); | ||
}, | ||
/** | ||
* Checks whether or not this composite component is mounted. | ||
* @return {boolean} True if mounted, false otherwise. | ||
* @protected | ||
* @final | ||
*/ | ||
isMounted: function () { | ||
if (process.env.NODE_ENV !== 'production') { | ||
process.env.NODE_ENV !== 'production' ? warning(this.__didWarnIsMounted, '%s: isMounted is deprecated. Instead, make sure to clean up ' + 'subscriptions and pending requests in componentWillUnmount to ' + 'prevent memory leaks.', this.constructor && this.constructor.displayName || this.name || 'Component') : void 0; | ||
this.__didWarnIsMounted = true; | ||
} | ||
return !!this.__isMounted; | ||
} | ||
}; | ||
var ReactClassComponent = function () {}; | ||
_assign(ReactClassComponent.prototype, ReactComponent.prototype, ReactClassMixin); | ||
/** | ||
* Creates a composite component class given a class specification. | ||
* See https://facebook.github.io/react/docs/top-level-api.html#react.createclass | ||
* | ||
* @param {object} spec Class specification (which must define `render`). | ||
* @return {function} Component constructor function. | ||
* @public | ||
*/ | ||
function createClass(spec) { | ||
// To keep our warnings more understandable, we'll use a little hack here to | ||
// ensure that Constructor.name !== 'Constructor'. This makes sure we don't | ||
// unnecessarily identify a class without displayName as 'Constructor'. | ||
var Constructor = identity(function (props, context, updater) { | ||
// This constructor gets overridden by mocks. The argument is used | ||
// by mocks to assert on what gets mounted. | ||
if (process.env.NODE_ENV !== 'production') { | ||
process.env.NODE_ENV !== 'production' ? warning(this instanceof Constructor, 'Something is calling a React component directly. Use a factory or ' + 'JSX instead. See: https://fb.me/react-legacyfactory') : void 0; | ||
} | ||
// Wire up auto-binding | ||
if (this.__reactAutoBindPairs.length) { | ||
bindAutoBindMethods(this); | ||
} | ||
this.props = props; | ||
this.context = context; | ||
this.refs = emptyObject; | ||
this.updater = updater || ReactNoopUpdateQueue; | ||
this.state = null; | ||
// ReactClasses doesn't have constructors. Instead, they use the | ||
// getInitialState and componentWillMount methods for initialization. | ||
var initialState = this.getInitialState ? this.getInitialState() : null; | ||
if (process.env.NODE_ENV !== 'production') { | ||
// We allow auto-mocks to proceed as if they're returning null. | ||
if (initialState === undefined && this.getInitialState._isMockFunction) { | ||
// This is probably bad practice. Consider warning here and | ||
// deprecating this convenience. | ||
initialState = null; | ||
} | ||
} | ||
_invariant(typeof initialState === 'object' && !Array.isArray(initialState), '%s.getInitialState(): must return an object or null', Constructor.displayName || 'ReactCompositeComponent'); | ||
this.state = initialState; | ||
}); | ||
Constructor.prototype = new ReactClassComponent(); | ||
Constructor.prototype.constructor = Constructor; | ||
Constructor.prototype.__reactAutoBindPairs = []; | ||
injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor)); | ||
mixSpecIntoComponent(Constructor, IsMountedMixin); | ||
mixSpecIntoComponent(Constructor, spec); | ||
// Initialize the defaultProps property after all mixins have been merged. | ||
if (Constructor.getDefaultProps) { | ||
Constructor.defaultProps = Constructor.getDefaultProps(); | ||
} | ||
if (process.env.NODE_ENV !== 'production') { | ||
// This is a tag to indicate that the use of these method names is ok, | ||
// since it's used with createClass. If it's not, then it's likely a | ||
// mistake so we'll warn you to use the static property, property | ||
// initializer or constructor respectively. | ||
if (Constructor.getDefaultProps) { | ||
Constructor.getDefaultProps.isReactClassApproved = {}; | ||
} | ||
if (Constructor.prototype.getInitialState) { | ||
Constructor.prototype.getInitialState.isReactClassApproved = {}; | ||
} | ||
} | ||
_invariant(Constructor.prototype.render, 'createClass(...): Class specification must implement a `render` method.'); | ||
if (process.env.NODE_ENV !== 'production') { | ||
process.env.NODE_ENV !== 'production' ? warning(!Constructor.prototype.componentShouldUpdate, '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', spec.displayName || 'A component') : void 0; | ||
process.env.NODE_ENV !== 'production' ? warning(!Constructor.prototype.componentWillRecieveProps, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', spec.displayName || 'A component') : void 0; | ||
} | ||
// Reduce time spent doing lookups by setting these on the prototype. | ||
for (var methodName in ReactClassInterface) { | ||
if (!Constructor.prototype[methodName]) { | ||
Constructor.prototype[methodName] = null; | ||
} | ||
} | ||
return Constructor; | ||
} | ||
return createClass; | ||
} | ||
module.exports = factory; | ||
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | ||
/***/ }, | ||
/* 5 */ | ||
/***/ function(module, exports) { | ||
// shim for using process in browser | ||
var process = module.exports = {}; | ||
// cached from whatever global is present so that test runners that stub it | ||
// don't break things. But we need to wrap it in a try catch in case it is | ||
// wrapped in strict mode code which doesn't define any globals. It's inside a | ||
// function because try/catches deoptimize in certain engines. | ||
var cachedSetTimeout; | ||
var cachedClearTimeout; | ||
function defaultSetTimout() { | ||
throw new Error('setTimeout has not been defined'); | ||
} | ||
function defaultClearTimeout () { | ||
throw new Error('clearTimeout has not been defined'); | ||
} | ||
(function () { | ||
try { | ||
if (typeof setTimeout === 'function') { | ||
cachedSetTimeout = setTimeout; | ||
} else { | ||
cachedSetTimeout = defaultSetTimout; | ||
} | ||
} catch (e) { | ||
cachedSetTimeout = defaultSetTimout; | ||
} | ||
try { | ||
if (typeof clearTimeout === 'function') { | ||
cachedClearTimeout = clearTimeout; | ||
} else { | ||
cachedClearTimeout = defaultClearTimeout; | ||
} | ||
} catch (e) { | ||
cachedClearTimeout = defaultClearTimeout; | ||
} | ||
} ()) | ||
function runTimeout(fun) { | ||
if (cachedSetTimeout === setTimeout) { | ||
//normal enviroments in sane situations | ||
return setTimeout(fun, 0); | ||
} | ||
// if setTimeout wasn't available but was latter defined | ||
if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { | ||
cachedSetTimeout = setTimeout; | ||
return setTimeout(fun, 0); | ||
} | ||
try { | ||
// when when somebody has screwed with setTimeout but no I.E. maddness | ||
return cachedSetTimeout(fun, 0); | ||
} catch(e){ | ||
try { | ||
// When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally | ||
return cachedSetTimeout.call(null, fun, 0); | ||
} catch(e){ | ||
// same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error | ||
return cachedSetTimeout.call(this, fun, 0); | ||
} | ||
} | ||
} | ||
function runClearTimeout(marker) { | ||
if (cachedClearTimeout === clearTimeout) { | ||
//normal enviroments in sane situations | ||
return clearTimeout(marker); | ||
} | ||
// if clearTimeout wasn't available but was latter defined | ||
if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { | ||
cachedClearTimeout = clearTimeout; | ||
return clearTimeout(marker); | ||
} | ||
try { | ||
// when when somebody has screwed with setTimeout but no I.E. maddness | ||
return cachedClearTimeout(marker); | ||
} catch (e){ | ||
try { | ||
// When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally | ||
return cachedClearTimeout.call(null, marker); | ||
} catch (e){ | ||
// same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. | ||
// Some versions of I.E. have different rules for clearTimeout vs setTimeout | ||
return cachedClearTimeout.call(this, marker); | ||
} | ||
} | ||
} | ||
var queue = []; | ||
var draining = false; | ||
var currentQueue; | ||
var queueIndex = -1; | ||
function cleanUpNextTick() { | ||
if (!draining || !currentQueue) { | ||
return; | ||
} | ||
draining = false; | ||
if (currentQueue.length) { | ||
queue = currentQueue.concat(queue); | ||
} else { | ||
queueIndex = -1; | ||
} | ||
if (queue.length) { | ||
drainQueue(); | ||
} | ||
} | ||
function drainQueue() { | ||
if (draining) { | ||
return; | ||
} | ||
var timeout = runTimeout(cleanUpNextTick); | ||
draining = true; | ||
var len = queue.length; | ||
while(len) { | ||
currentQueue = queue; | ||
queue = []; | ||
while (++queueIndex < len) { | ||
if (currentQueue) { | ||
currentQueue[queueIndex].run(); | ||
} | ||
} | ||
queueIndex = -1; | ||
len = queue.length; | ||
} | ||
currentQueue = null; | ||
draining = false; | ||
runClearTimeout(timeout); | ||
} | ||
process.nextTick = function (fun) { | ||
var args = new Array(arguments.length - 1); | ||
if (arguments.length > 1) { | ||
for (var i = 1; i < arguments.length; i++) { | ||
args[i - 1] = arguments[i]; | ||
} | ||
} | ||
queue.push(new Item(fun, args)); | ||
if (queue.length === 1 && !draining) { | ||
runTimeout(drainQueue); | ||
} | ||
}; | ||
// v8 likes predictible objects | ||
function Item(fun, array) { | ||
this.fun = fun; | ||
this.array = array; | ||
} | ||
Item.prototype.run = function () { | ||
this.fun.apply(null, this.array); | ||
}; | ||
process.title = 'browser'; | ||
process.browser = true; | ||
process.env = {}; | ||
process.argv = []; | ||
process.version = ''; // empty string to avoid regexp issues | ||
process.versions = {}; | ||
function noop() {} | ||
process.on = noop; | ||
process.addListener = noop; | ||
process.once = noop; | ||
process.off = noop; | ||
process.removeListener = noop; | ||
process.removeAllListeners = noop; | ||
process.emit = noop; | ||
process.binding = function (name) { | ||
throw new Error('process.binding is not supported'); | ||
}; | ||
process.cwd = function () { return '/' }; | ||
process.chdir = function (dir) { | ||
throw new Error('process.chdir is not supported'); | ||
}; | ||
process.umask = function() { return 0; }; | ||
/***/ }, | ||
/* 6 */ | ||
/***/ function(module, exports) { | ||
/* | ||
object-assign | ||
(c) Sindre Sorhus | ||
@license MIT | ||
*/ | ||
'use strict'; | ||
/* eslint-disable no-unused-vars */ | ||
var getOwnPropertySymbols = Object.getOwnPropertySymbols; | ||
var hasOwnProperty = Object.prototype.hasOwnProperty; | ||
var propIsEnumerable = Object.prototype.propertyIsEnumerable; | ||
function toObject(val) { | ||
if (val === null || val === undefined) { | ||
throw new TypeError('Object.assign cannot be called with null or undefined'); | ||
} | ||
return Object(val); | ||
} | ||
function shouldUseNative() { | ||
try { | ||
if (!Object.assign) { | ||
return false; | ||
} | ||
// Detect buggy property enumeration order in older V8 versions. | ||
// https://bugs.chromium.org/p/v8/issues/detail?id=4118 | ||
var test1 = new String('abc'); // eslint-disable-line no-new-wrappers | ||
test1[5] = 'de'; | ||
if (Object.getOwnPropertyNames(test1)[0] === '5') { | ||
return false; | ||
} | ||
// https://bugs.chromium.org/p/v8/issues/detail?id=3056 | ||
var test2 = {}; | ||
for (var i = 0; i < 10; i++) { | ||
test2['_' + String.fromCharCode(i)] = i; | ||
} | ||
var order2 = Object.getOwnPropertyNames(test2).map(function (n) { | ||
return test2[n]; | ||
}); | ||
if (order2.join('') !== '0123456789') { | ||
return false; | ||
} | ||
// https://bugs.chromium.org/p/v8/issues/detail?id=3056 | ||
var test3 = {}; | ||
'abcdefghijklmnopqrst'.split('').forEach(function (letter) { | ||
test3[letter] = letter; | ||
}); | ||
if (Object.keys(Object.assign({}, test3)).join('') !== | ||
'abcdefghijklmnopqrst') { | ||
return false; | ||
} | ||
return true; | ||
} catch (err) { | ||
// We don't expect any of the above to throw, but better to be safe. | ||
return false; | ||
} | ||
} | ||
module.exports = shouldUseNative() ? Object.assign : function (target, source) { | ||
var from; | ||
var to = toObject(target); | ||
var symbols; | ||
for (var s = 1; s < arguments.length; s++) { | ||
from = Object(arguments[s]); | ||
for (var key in from) { | ||
if (hasOwnProperty.call(from, key)) { | ||
to[key] = from[key]; | ||
} | ||
} | ||
if (getOwnPropertySymbols) { | ||
symbols = getOwnPropertySymbols(from); | ||
for (var i = 0; i < symbols.length; i++) { | ||
if (propIsEnumerable.call(from, symbols[i])) { | ||
to[symbols[i]] = from[symbols[i]]; | ||
} | ||
} | ||
} | ||
} | ||
return to; | ||
}; | ||
/***/ }, | ||
/* 7 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
/* WEBPACK VAR INJECTION */(function(process) {/** | ||
* Copyright (c) 2013-present, Facebook, Inc. | ||
* All rights reserved. | ||
* | ||
* This source code is licensed under the BSD-style license found in the | ||
* LICENSE file in the root directory of this source tree. An additional grant | ||
* of patent rights can be found in the PATENTS file in the same directory. | ||
* | ||
*/ | ||
'use strict'; | ||
var emptyObject = {}; | ||
if (process.env.NODE_ENV !== 'production') { | ||
Object.freeze(emptyObject); | ||
} | ||
module.exports = emptyObject; | ||
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | ||
/***/ }, | ||
/* 8 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
/* WEBPACK VAR INJECTION */(function(process) {/** | ||
* Copyright (c) 2013-present, Facebook, Inc. | ||
* All rights reserved. | ||
* | ||
* This source code is licensed under the BSD-style license found in the | ||
* LICENSE file in the root directory of this source tree. An additional grant | ||
* of patent rights can be found in the PATENTS file in the same directory. | ||
* | ||
*/ | ||
'use strict'; | ||
/** | ||
* Use invariant() to assert state which your program assumes to be true. | ||
* | ||
* Provide sprintf-style format (only %s is supported) and arguments | ||
* to provide information about what broke and what you were | ||
* expecting. | ||
* | ||
* The invariant message will be stripped in production, but the invariant | ||
* will remain to ensure logic does not differ in production. | ||
*/ | ||
var validateFormat = function validateFormat(format) {}; | ||
if (process.env.NODE_ENV !== 'production') { | ||
validateFormat = function validateFormat(format) { | ||
if (format === undefined) { | ||
throw new Error('invariant requires an error message argument'); | ||
} | ||
}; | ||
} | ||
function invariant(condition, format, a, b, c, d, e, f) { | ||
validateFormat(format); | ||
if (!condition) { | ||
var error; | ||
if (format === undefined) { | ||
error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.'); | ||
} else { | ||
var args = [a, b, c, d, e, f]; | ||
var argIndex = 0; | ||
error = new Error(format.replace(/%s/g, function () { | ||
return args[argIndex++]; | ||
})); | ||
error.name = 'Invariant Violation'; | ||
} | ||
error.framesToPop = 1; // we don't care about invariant's own frame | ||
throw error; | ||
} | ||
} | ||
module.exports = invariant; | ||
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | ||
/***/ }, | ||
/* 9 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
/* WEBPACK VAR INJECTION */(function(process) {/** | ||
* Copyright 2014-2015, Facebook, Inc. | ||
* All rights reserved. | ||
* | ||
* This source code is licensed under the BSD-style license found in the | ||
* LICENSE file in the root directory of this source tree. An additional grant | ||
* of patent rights can be found in the PATENTS file in the same directory. | ||
* | ||
*/ | ||
'use strict'; | ||
var emptyFunction = __webpack_require__(10); | ||
/** | ||
* Similar to invariant but only logs a warning if the condition is not met. | ||
* This can be used to log issues in development environments in critical | ||
* paths. Removing the logging code for production environments will keep the | ||
* same logic and follow the same code paths. | ||
*/ | ||
var warning = emptyFunction; | ||
if (process.env.NODE_ENV !== 'production') { | ||
(function () { | ||
var printWarning = function printWarning(format) { | ||
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { | ||
args[_key - 1] = arguments[_key]; | ||
} | ||
var argIndex = 0; | ||
var message = 'Warning: ' + format.replace(/%s/g, function () { | ||
return args[argIndex++]; | ||
}); | ||
if (typeof console !== 'undefined') { | ||
console.error(message); | ||
} | ||
try { | ||
// --- Welcome to debugging React --- | ||
// This error was thrown as a convenience so that you can use this stack | ||
// to find the callsite that caused this warning to fire. | ||
throw new Error(message); | ||
} catch (x) {} | ||
}; | ||
warning = function warning(condition, format) { | ||
if (format === undefined) { | ||
throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument'); | ||
} | ||
if (format.indexOf('Failed Composite propType: ') === 0) { | ||
return; // Ignore CompositeComponent proptype check. | ||
} | ||
if (!condition) { | ||
for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { | ||
args[_key2 - 2] = arguments[_key2]; | ||
} | ||
printWarning.apply(undefined, [format].concat(args)); | ||
} | ||
}; | ||
})(); | ||
} | ||
module.exports = warning; | ||
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) | ||
/***/ }, | ||
/* 10 */ | ||
/***/ function(module, exports) { | ||
"use strict"; | ||
/** | ||
* Copyright (c) 2013-present, Facebook, Inc. | ||
* All rights reserved. | ||
* | ||
* This source code is licensed under the BSD-style license found in the | ||
* LICENSE file in the root directory of this source tree. An additional grant | ||
* of patent rights can be found in the PATENTS file in the same directory. | ||
* | ||
* | ||
*/ | ||
function makeEmptyFunction(arg) { | ||
return function () { | ||
return arg; | ||
}; | ||
} | ||
/** | ||
* This function accepts and discards inputs; it has no side effects. This is | ||
* primarily useful idiomatically for overridable function endpoints which | ||
* always need to be callable, since JS lacks a null-call idiom ala Cocoa. | ||
*/ | ||
var emptyFunction = function emptyFunction() {}; | ||
emptyFunction.thatReturns = makeEmptyFunction; | ||
emptyFunction.thatReturnsFalse = makeEmptyFunction(false); | ||
emptyFunction.thatReturnsTrue = makeEmptyFunction(true); | ||
emptyFunction.thatReturnsNull = makeEmptyFunction(null); | ||
emptyFunction.thatReturnsThis = function () { | ||
return this; | ||
}; | ||
emptyFunction.thatReturnsArgument = function (arg) { | ||
return arg; | ||
}; | ||
module.exports = emptyFunction; | ||
/***/ }, | ||
/* 11 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
'use strict'; | ||
var merge = __webpack_require__(12); | ||
var style = { | ||
@@ -315,3 +1557,3 @@ display: 'inline-block', | ||
/***/ }, | ||
/* 4 */ | ||
/* 12 */ | ||
/***/ function(module, exports) { | ||
@@ -333,3 +1575,3 @@ | ||
/***/ }, | ||
/* 5 */ | ||
/* 13 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
@@ -342,6 +1584,5 @@ | ||
var React = __webpack_require__(2); | ||
var createReactClass = __webpack_require__(3); | ||
var PercentageSymbol = React.createClass({ | ||
displayName: 'PercentageSymbol', | ||
var PercentageSymbol = createReactClass({ | ||
// Define propTypes only in development. They will be void in production. | ||
@@ -348,0 +1589,0 @@ propTypes: "boolean" !== 'undefined' && (true) && { |
@@ -1,2 +0,7 @@ | ||
/*! react-rating - 0.6.5 | (c) 2015, 2017 dreyescat | MIT | https://github.com/dreyescat/react-rating */ | ||
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("react")):"function"==typeof define&&define.amd?define(["react"],e):"object"==typeof exports?exports.ReactRating=e(require("react")):t.ReactRating=e(t.React)}(this,function(t){return function(t){function e(i){if(o[i])return o[i].exports;var n=o[i]={exports:{},id:i,loaded:!1};return t[i].call(n.exports,n,n.exports,e),n.loaded=!0,n.exports}var o={};return e.m=t,e.c=o,e.p="/lib",e(0)}([function(t,e,o){"use strict";t.exports=o(3)},function(e,o){e.exports=t},function(t,e,o){"use strict";function i(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}var n=o(1),r=n.createClass({displayName:"PercentageSymbol",propTypes:!1,_iconNode:function(t){return n.isValidElement(t)?t:"object"==typeof t&&null!==t?n.createElement("span",{style:t}):"[object String]"===Object.prototype.toString.call(t)?n.createElement("span",{className:t}):void 0},render:function(){var t,e=this._iconNode(this.props.background),o=this._iconNode(this.props.icon),r=(t={display:"inline-block",position:"absolute",overflow:"hidden",top:0},i(t,"rtl"===this.props.direction?"right":"left",0),i(t,"width",void 0!==this.props.percent?this.props.percent+"%":"auto"),t),s={cursor:this.props.onClick||this.props.onMouseOver?"pointer":"auto",display:"inline-block",position:"relative"};return n.createElement("span",{style:s,onClick:this.props.onClick,onMouseMove:this.props.onMouseMove},e,n.createElement("span",{style:r},o))}});t.exports=r},function(t,e,o){"use strict";function i(t,e){var o={};for(var i in t)e.indexOf(i)>=0||Object.prototype.hasOwnProperty.call(t,i)&&(o[i]=t[i]);return o}var n=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var o=arguments[e];for(var i in o)Object.prototype.hasOwnProperty.call(o,i)&&(t[i]=o[i])}return t},r=o(1),s=o(5),a=o(2),p=function(t,e){var o=t.step,i=o>0?t.start:t.stop,n=o>0?t.stop:t.start;if(o&&i<=e&&e<=n)return(e-t.start)/o},c=r.createClass({displayName:"Rating",propTypes:!1,getDefaultProps:function(){return{start:0,stop:5,step:1,empty:s.empty,placeholder:s.placeholder,full:s.full,fractions:1,scale:3,onChange:function(t){},onClick:function(t){},onRate:function(t){}}},componentDidMount:function(){this.setState({direction:window.getComputedStyle(this.refs.container,null).getPropertyValue("direction")})},componentWillReceiveProps:function(t){var e=void 0!==t.initialRate?t.initialRate:t.placeholderRate;this.setState({index:p(t,e),selected:void 0!==t.initialRate})},getInitialState:function(){var t=void 0!==this.props.initialRate?this.props.initialRate:this.props.placeholderRate;return{index:this._rateToIndex(t),indexOver:void 0,direction:"ltr"}},handleClick:function(t,e){var o=t+this._fractionalIndex(e);this.props.onClick(this._indexToRate(o),e),this.state.index!==o&&(this.props.onChange(this._indexToRate(o)),this.setState({indexOver:void 0,index:o,selected:!0}))},handleMouseLeave:function(){this.props.onRate(),this.setState({indexOver:void 0})},handleMouseMove:function(t,e){var o=t+this._fractionalIndex(e);this.state.indexOver!==o&&(this.props.onRate(this._indexToRate(o)),this.setState({indexOver:o}))},_indexToRate:function(t){return this.props.start+Math.floor(t)*this.props.step+this.props.step*this._roundToFraction(t%1)},_rateToIndex:function(t){return p(this.props,t)},_roundToFraction:function(t){var e=Math.ceil(t%1*this.props.fractions)/this.props.fractions,o=Math.pow(10,this.props.scale);return Math.floor(t)+Math.floor(e*o)/o},_fractionalIndex:function(t){var e="rtl"===this.state.direction?t.currentTarget.getBoundingClientRect().right-t.clientX:t.clientX-t.currentTarget.getBoundingClientRect().left;return this._roundToFraction(e/t.currentTarget.offsetWidth)},render:function(){for(var t=[],e=[].concat(this.props.empty),o=[].concat(this.props.placeholder),s=[].concat(this.props.full),p=this.props.quiet||void 0===this.state.indexOver?this.state.index:this.state.indexOver,c=Math.floor(p),l=this.state.selected||void 0!==this.props.initialRate||void 0===this.props.placeholderRate||!this.props.quiet&&void 0!==this.state.indexOver?s:o,d=0;d<Math.floor(this._rateToIndex(this.props.stop));d++){var h=d-c===0?p%1*100:d-c<0?100:0;t.push(r.createElement(a,{key:d,background:e[d%e.length],icon:l[d%l.length],percent:h,onClick:!this.props.readonly&&this.handleClick.bind(this,d),onMouseMove:!this.props.readonly&&this.handleMouseMove.bind(this,d),direction:this.state.direction}))}var u=this.props,e=(u.start,u.stop,u.step,u.empty),o=(u.initialRate,u.placeholderRate,u.placeholder),s=u.full,f=u.readonly,v=(u.quiet,u.fractions,u.scale,u.onChange,u.onClick,u.onRate,i(u,["start","stop","step","empty","initialRate","placeholderRate","placeholder","full","readonly","quiet","fractions","scale","onChange","onClick","onRate"]));return r.createElement("span",n({ref:"container",onMouseLeave:!f&&this.handleMouseLeave},v),t)}});t.exports=c},function(t,e){"use strict";t.exports=function(){for(var t={},e=0;e<arguments.length;e++){var o=arguments[e];for(var i in o)t[i]=o[i]}return t}},function(t,e,o){"use strict";var i=o(4),n={display:"inline-block",borderRadius:"50%",border:"5px double white",width:30,height:30};t.exports={empty:i(n,{backgroundColor:"#ccc"}),full:i(n,{backgroundColor:"black"}),placeholder:i(n,{backgroundColor:"red"})}}])}); | ||
/*! react-rating - 0.7.0 | (c) 2015, 2017 dreyescat | MIT | https://github.com/dreyescat/react-rating */ | ||
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("react")):"function"==typeof define&&define.amd?define(["react"],e):"object"==typeof exports?exports.ReactRating=e(require("react")):t.ReactRating=e(t.React)}(this,function(t){return function(t){function e(o){if(n[o])return n[o].exports;var r=n[o]={exports:{},id:o,loaded:!1};return t[o].call(r.exports,r,r.exports,e),r.loaded=!0,r.exports}var n={};return e.m=t,e.c=n,e.p="/lib",e(0)}([function(t,e,n){"use strict";t.exports=n(5)},function(t,e){function n(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function r(t){if(p===setTimeout)return setTimeout(t,0);if((p===n||!p)&&setTimeout)return p=setTimeout,setTimeout(t,0);try{return p(t,0)}catch(e){try{return p.call(null,t,0)}catch(e){return p.call(this,t,0)}}}function i(t){if(l===clearTimeout)return clearTimeout(t);if((l===o||!l)&&clearTimeout)return l=clearTimeout,clearTimeout(t);try{return l(t)}catch(e){try{return l.call(null,t)}catch(e){return l.call(this,t)}}}function a(){m&&f&&(m=!1,f.length?h=f.concat(h):v=-1,h.length&&s())}function s(){if(!m){var t=r(a);m=!0;for(var e=h.length;e;){for(f=h,h=[];++v<e;)f&&f[v].run();v=-1,e=h.length}f=null,m=!1,i(t)}}function c(t,e){this.fun=t,this.array=e}function u(){}var p,l,d=t.exports={};!function(){try{p="function"==typeof setTimeout?setTimeout:n}catch(t){p=n}try{l="function"==typeof clearTimeout?clearTimeout:o}catch(t){l=o}}();var f,h=[],m=!1,v=-1;d.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];h.push(new c(t,e)),1!==h.length||m||r(s)},c.prototype.run=function(){this.fun.apply(null,this.array)},d.title="browser",d.browser=!0,d.env={},d.argv=[],d.version="",d.versions={},d.on=u,d.addListener=u,d.once=u,d.off=u,d.removeListener=u,d.removeAllListeners=u,d.emit=u,d.binding=function(t){throw new Error("process.binding is not supported")},d.cwd=function(){return"/"},d.chdir=function(t){throw new Error("process.chdir is not supported")},d.umask=function(){return 0}},function(e,n){e.exports=t},function(t,e,n){"use strict";var o=n(2),r=n(8),i=(new o.Component).updater;t.exports=r(o.Component,o.isValidElement,i)},function(t,e,n){"use strict";function o(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var r=n(2),i=n(3),a=i({propTypes:!1,_iconNode:function(t){return r.isValidElement(t)?t:"object"==typeof t&&null!==t?r.createElement("span",{style:t}):"[object String]"===Object.prototype.toString.call(t)?r.createElement("span",{className:t}):void 0},render:function(){var t,e=this._iconNode(this.props.background),n=this._iconNode(this.props.icon),i=(t={display:"inline-block",position:"absolute",overflow:"hidden",top:0},o(t,"rtl"===this.props.direction?"right":"left",0),o(t,"width",void 0!==this.props.percent?this.props.percent+"%":"auto"),t),a={cursor:this.props.onClick||this.props.onMouseOver?"pointer":"auto",display:"inline-block",position:"relative"};return r.createElement("span",{style:a,onClick:this.props.onClick,onMouseMove:this.props.onMouseMove},e,r.createElement("span",{style:i},n))}});t.exports=a},function(t,e,n){"use strict";function o(t,e){var n={};for(var o in t)e.indexOf(o)>=0||Object.prototype.hasOwnProperty.call(t,o)&&(n[o]=t[o]);return n}var r=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t},i=n(2),a=n(3),s=n(7),c=n(4),u=function(t,e){var n=t.step,o=n>0?t.start:t.stop,r=n>0?t.stop:t.start;if(n&&o<=e&&e<=r)return(e-t.start)/n},p=a({propTypes:!1,getDefaultProps:function(){return{start:0,stop:5,step:1,empty:s.empty,placeholder:s.placeholder,full:s.full,fractions:1,scale:3,onChange:function(t){},onClick:function(t){},onRate:function(t){}}},componentDidMount:function(){this.setState({direction:window.getComputedStyle(this.refs.container,null).getPropertyValue("direction")})},componentWillReceiveProps:function(t){var e=void 0!==t.initialRate?t.initialRate:t.placeholderRate;this.setState({index:u(t,e),selected:void 0!==t.initialRate})},getInitialState:function(){var t=void 0!==this.props.initialRate?this.props.initialRate:this.props.placeholderRate;return{index:this._rateToIndex(t),indexOver:void 0,direction:"ltr"}},handleClick:function(t,e){var n=t+this._fractionalIndex(e);this.props.onClick(this._indexToRate(n),e),this.state.index!==n&&(this.props.onChange(this._indexToRate(n)),this.setState({indexOver:void 0,index:n,selected:!0}))},handleMouseLeave:function(){this.props.onRate(),this.setState({indexOver:void 0})},handleMouseMove:function(t,e){var n=t+this._fractionalIndex(e);this.state.indexOver!==n&&(this.props.onRate(this._indexToRate(n)),this.setState({indexOver:n}))},_indexToRate:function(t){return this.props.start+Math.floor(t)*this.props.step+this.props.step*this._roundToFraction(t%1)},_rateToIndex:function(t){return u(this.props,t)},_roundToFraction:function(t){var e=Math.ceil(t%1*this.props.fractions)/this.props.fractions,n=Math.pow(10,this.props.scale);return Math.floor(t)+Math.floor(e*n)/n},_fractionalIndex:function(t){var e="rtl"===this.state.direction?t.currentTarget.getBoundingClientRect().right-t.clientX:t.clientX-t.currentTarget.getBoundingClientRect().left;return this._roundToFraction(e/t.currentTarget.offsetWidth)},render:function(){for(var t=[],e=[].concat(this.props.empty),n=[].concat(this.props.placeholder),a=[].concat(this.props.full),s=this.props.quiet||void 0===this.state.indexOver?this.state.index:this.state.indexOver,u=Math.floor(s),p=this.state.selected||void 0!==this.props.initialRate||void 0===this.props.placeholderRate||!this.props.quiet&&void 0!==this.state.indexOver?a:n,l=0;l<Math.floor(this._rateToIndex(this.props.stop));l++){var d=l-u===0?s%1*100:l-u<0?100:0;t.push(i.createElement(c,{key:l,background:e[l%e.length],icon:p[l%p.length],percent:d,onClick:!this.props.readonly&&this.handleClick.bind(this,l),onMouseMove:!this.props.readonly&&this.handleMouseMove.bind(this,l),direction:this.state.direction}))}var f=this.props,e=(f.start,f.stop,f.step,f.empty),n=(f.initialRate,f.placeholderRate,f.placeholder),a=f.full,h=f.readonly,m=(f.quiet,f.fractions,f.scale,f.onChange,f.onClick,f.onRate,o(f,["start","stop","step","empty","initialRate","placeholderRate","placeholder","full","readonly","quiet","fractions","scale","onChange","onClick","onRate"]));return i.createElement("span",r({ref:"container",onMouseLeave:!h&&this.handleMouseLeave},m),t)}});t.exports=p},function(t,e){"use strict";t.exports=function(){for(var t={},e=0;e<arguments.length;e++){var n=arguments[e];for(var o in n)t[o]=n[o]}return t}},function(t,e,n){"use strict";var o=n(6),r={display:"inline-block",borderRadius:"50%",border:"5px double white",width:30,height:30};t.exports={empty:o(r,{backgroundColor:"#ccc"}),full:o(r,{backgroundColor:"black"}),placeholder:o(r,{backgroundColor:"red"})}},function(t,e,n){(function(e){"use strict";function o(t){return t}function r(t,n,r){function l(t,n,o){for(var r in n)n.hasOwnProperty(r)&&("production"!==e.env.NODE_ENV?c("function"==typeof n[r],"%s: %s type `%s` is invalid; it must be a function, usually from React.PropTypes.",t.displayName||"ReactClass",u[o],r):void 0)}function d(t,e){var n=b.hasOwnProperty(e)?b[e]:null;O.hasOwnProperty(e)&&s("OVERRIDE_BASE"===n,"ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.",e),t&&s("DEFINE_MANY"===n||"DEFINE_MANY_MERGED"===n,"ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",e)}function f(t,o){if(o){s("function"!=typeof o,"ReactClass: You're attempting to use a component class or function as a mixin. Instead, just use a regular object."),s(!n(o),"ReactClass: You're attempting to use a component as a mixin. Instead, just use a regular object.");var r=t.prototype,i=r.__reactAutoBindPairs;o.hasOwnProperty(p)&&x.mixins(t,o.mixins);for(var a in o)if(o.hasOwnProperty(a)&&a!==p){var u=o[a],l=r.hasOwnProperty(a);if(d(l,a),x.hasOwnProperty(a))x[a](t,u);else{var f=b.hasOwnProperty(a),h="function"==typeof u,m=h&&!f&&!l&&o.autobind!==!1;if(m)i.push(a,u),r[a]=u;else if(l){var E=b[a];s(f&&("DEFINE_MANY_MERGED"===E||"DEFINE_MANY"===E),"ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.",E,a),"DEFINE_MANY_MERGED"===E?r[a]=v(r[a],u):"DEFINE_MANY"===E&&(r[a]=y(r[a],u))}else r[a]=u,"production"!==e.env.NODE_ENV&&"function"==typeof u&&o.displayName&&(r[a].displayName=o.displayName+"_"+a)}}}else if("production"!==e.env.NODE_ENV){var g=typeof o,N="object"===g&&null!==o;"production"!==e.env.NODE_ENV?c(N,"%s: You're attempting to include a mixin that is either null or not an object. Check the mixins included by the component, as well as any mixins they include themselves. Expected object but got %s.",t.displayName||"ReactClass",null===o?null:g):void 0}}function h(t,e){if(e)for(var n in e){var o=e[n];if(e.hasOwnProperty(n)){var r=n in x;s(!r,'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\'t be on the "statics" key. Define it as an instance property instead; it will still be accessible on the constructor.',n);var i=n in t;s(!i,"ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",n),t[n]=o}}}function m(t,e){s(t&&e&&"object"==typeof t&&"object"==typeof e,"mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.");for(var n in e)e.hasOwnProperty(n)&&(s(void 0===t[n],"mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.",n),t[n]=e[n]);return t}function v(t,e){return function(){var n=t.apply(this,arguments),o=e.apply(this,arguments);if(null==n)return o;if(null==o)return n;var r={};return m(r,n),m(r,o),r}}function y(t,e){return function(){t.apply(this,arguments),e.apply(this,arguments)}}function E(t,n){var o=n.bind(t);if("production"!==e.env.NODE_ENV){o.__reactBoundContext=t,o.__reactBoundMethod=n,o.__reactBoundArguments=null;var r=t.constructor.displayName,i=o.bind;o.bind=function(a){for(var s=arguments.length,u=Array(s>1?s-1:0),p=1;p<s;p++)u[p-1]=arguments[p];if(a!==t&&null!==a)"production"!==e.env.NODE_ENV?c(!1,"bind(): React component methods may only be bound to the component instance. See %s",r):void 0;else if(!u.length)return"production"!==e.env.NODE_ENV?c(!1,"bind(): You are binding a component method to the component. React does this for you automatically in a high-performance way, so you can safely remove this call. See %s",r):void 0,o;var l=i.apply(o,arguments);return l.__reactBoundContext=t,l.__reactBoundMethod=n,l.__reactBoundArguments=u,l}}return o}function g(t){for(var e=t.__reactAutoBindPairs,n=0;n<e.length;n+=2){var o=e[n],r=e[n+1];t[o]=E(t,r)}}function N(t){var n=o(function(t,o,i){"production"!==e.env.NODE_ENV&&("production"!==e.env.NODE_ENV?c(this instanceof n,"Something is calling a React component directly. Use a factory or JSX instead. See: https://fb.me/react-legacyfactory"):void 0),this.__reactAutoBindPairs.length&&g(this),this.props=t,this.context=o,this.refs=a,this.updater=i||r,this.state=null;var u=this.getInitialState?this.getInitialState():null;"production"!==e.env.NODE_ENV&&void 0===u&&this.getInitialState._isMockFunction&&(u=null),s("object"==typeof u&&!Array.isArray(u),"%s.getInitialState(): must return an object or null",n.displayName||"ReactCompositeComponent"),this.state=u});n.prototype=new R,n.prototype.constructor=n,n.prototype.__reactAutoBindPairs=[],_.forEach(f.bind(null,n)),f(n,D),f(n,t),n.getDefaultProps&&(n.defaultProps=n.getDefaultProps()),"production"!==e.env.NODE_ENV&&(n.getDefaultProps&&(n.getDefaultProps.isReactClassApproved={}),n.prototype.getInitialState&&(n.prototype.getInitialState.isReactClassApproved={})),s(n.prototype.render,"createClass(...): Class specification must implement a `render` method."),"production"!==e.env.NODE_ENV&&("production"!==e.env.NODE_ENV?c(!n.prototype.componentShouldUpdate,"%s has a method called componentShouldUpdate(). Did you mean shouldComponentUpdate()? The name is phrased as a question because the function is expected to return a value.",t.displayName||"A component"):void 0,"production"!==e.env.NODE_ENV?c(!n.prototype.componentWillRecieveProps,"%s has a method called componentWillRecieveProps(). Did you mean componentWillReceiveProps()?",t.displayName||"A component"):void 0);for(var i in b)n.prototype[i]||(n.prototype[i]=null);return n}var _=[],b={mixins:"DEFINE_MANY",statics:"DEFINE_MANY",propTypes:"DEFINE_MANY",contextTypes:"DEFINE_MANY",childContextTypes:"DEFINE_MANY",getDefaultProps:"DEFINE_MANY_MERGED",getInitialState:"DEFINE_MANY_MERGED",getChildContext:"DEFINE_MANY_MERGED",render:"DEFINE_ONCE",componentWillMount:"DEFINE_MANY",componentDidMount:"DEFINE_MANY",componentWillReceiveProps:"DEFINE_MANY",shouldComponentUpdate:"DEFINE_ONCE",componentWillUpdate:"DEFINE_MANY",componentDidUpdate:"DEFINE_MANY",componentWillUnmount:"DEFINE_MANY",updateComponent:"OVERRIDE_BASE"},x={displayName:function(t,e){t.displayName=e},mixins:function(t,e){if(e)for(var n=0;n<e.length;n++)f(t,e[n])},childContextTypes:function(t,n){"production"!==e.env.NODE_ENV&&l(t,n,"childContext"),t.childContextTypes=i({},t.childContextTypes,n)},contextTypes:function(t,n){"production"!==e.env.NODE_ENV&&l(t,n,"context"),t.contextTypes=i({},t.contextTypes,n)},getDefaultProps:function(t,e){t.getDefaultProps?t.getDefaultProps=v(t.getDefaultProps,e):t.getDefaultProps=e},propTypes:function(t,n){"production"!==e.env.NODE_ENV&&l(t,n,"prop"),t.propTypes=i({},t.propTypes,n)},statics:function(t,e){h(t,e)},autobind:function(){}},D={componentDidMount:function(){this.__isMounted=!0},componentWillUnmount:function(){this.__isMounted=!1}},O={replaceState:function(t,e){this.updater.enqueueReplaceState(this,t,e)},isMounted:function(){return"production"!==e.env.NODE_ENV&&("production"!==e.env.NODE_ENV?c(this.__didWarnIsMounted,"%s: isMounted is deprecated. Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks.",this.constructor&&this.constructor.displayName||this.name||"Component"):void 0,this.__didWarnIsMounted=!0),!!this.__isMounted}},R=function(){};return i(R.prototype,t.prototype,O),N}var i=n(13),a=n(10),s=n(11);if("production"!==e.env.NODE_ENV)var c=n(12);var u,p="mixins";u="production"!==e.env.NODE_ENV?{prop:"prop",context:"context",childContext:"child context"}:{},t.exports=r}).call(e,n(1))},function(t,e){"use strict";function n(t){return function(){return t}}var o=function(){};o.thatReturns=n,o.thatReturnsFalse=n(!1),o.thatReturnsTrue=n(!0),o.thatReturnsNull=n(null),o.thatReturnsThis=function(){return this},o.thatReturnsArgument=function(t){return t},t.exports=o},function(t,e,n){(function(e){"use strict";var n={};"production"!==e.env.NODE_ENV&&Object.freeze(n),t.exports=n}).call(e,n(1))},function(t,e,n){(function(e){"use strict";function n(t,e,n,r,i,a,s,c){if(o(e),!t){var u;if(void 0===e)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var p=[n,r,i,a,s,c],l=0;u=new Error(e.replace(/%s/g,function(){return p[l++]})),u.name="Invariant Violation"}throw u.framesToPop=1,u}}var o=function(t){};"production"!==e.env.NODE_ENV&&(o=function(t){if(void 0===t)throw new Error("invariant requires an error message argument")}),t.exports=n}).call(e,n(1))},function(t,e,n){(function(e){"use strict";var o=n(9),r=o;"production"!==e.env.NODE_ENV&&!function(){var t=function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),o=1;o<e;o++)n[o-1]=arguments[o];var r=0,i="Warning: "+t.replace(/%s/g,function(){return n[r++]});"undefined"!=typeof console&&console.error(i);try{throw new Error(i)}catch(t){}};r=function(e,n){if(void 0===n)throw new Error("`warning(condition, format, ...args)` requires a warning message argument");if(0!==n.indexOf("Failed Composite propType: ")&&!e){for(var o=arguments.length,r=Array(o>2?o-2:0),i=2;i<o;i++)r[i-2]=arguments[i];t.apply(void 0,[n].concat(r))}}}(),t.exports=r}).call(e,n(1))},function(t,e){/* | ||
object-assign | ||
(c) Sindre Sorhus | ||
@license MIT | ||
*/ | ||
"use strict";function n(t){if(null===t||void 0===t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}function o(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e["_"+String.fromCharCode(n)]=n;var o=Object.getOwnPropertyNames(e).map(function(t){return e[t]});if("0123456789"!==o.join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(t){r[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(t){return!1}}var r=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;t.exports=o()?Object.assign:function(t,e){for(var o,s,c=n(t),u=1;u<arguments.length;u++){o=Object(arguments[u]);for(var p in o)i.call(o,p)&&(c[p]=o[p]);if(r){s=r(o);for(var l=0;l<s.length;l++)a.call(o,s[l])&&(c[s[l]]=o[s[l]])}}return c}}])}); |
{ | ||
"name": "react-rating", | ||
"version": "0.6.5", | ||
"version": "0.7.0", | ||
"description": "A rating react component with custom symbols", | ||
@@ -48,6 +48,9 @@ "main": "lib/react-rating.js", | ||
"chai": "^3.2.0", | ||
"create-react-class": "^15.5.1", | ||
"font-awesome": "^4.3.0", | ||
"mocha": "^2.2.5", | ||
"node-libs-browser": "^0.5.2", | ||
"react": "^0.14.8", | ||
"prismjs": "^1.6.0", | ||
"react": "^15.4.2", | ||
"react-dom": "^15.4.2", | ||
"webpack": "^1.10.1", | ||
@@ -54,0 +57,0 @@ "webpack-dev-server": "^1.10.1" |
'use strict'; | ||
var React = require('react'); | ||
var createReactClass = require('create-react-class'); | ||
var PercentageSymbol = React.createClass({ | ||
var PercentageSymbol = createReactClass({ | ||
// Define propTypes only in development. They will be void in production. | ||
@@ -7,0 +8,0 @@ propTypes: typeof __DEV__ !== 'undefined' && __DEV__ && { |
'use strict'; | ||
var React = require('react'); | ||
var createReactClass = require('create-react-class'); | ||
var Style = require('./style'); | ||
@@ -26,3 +27,3 @@ var Symbol = require('./PercentageSymbol'); | ||
var Rating = React.createClass({ | ||
var Rating = createReactClass({ | ||
// Define propTypes only in development. | ||
@@ -29,0 +30,0 @@ propTypes: typeof __DEV__ !== 'undefined' && __DEV__ && { |
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 2 instances in 1 package
91232
1817
14
10
25