| | |
| | | }, |
| | | |
| | | render: function() { |
| | | var DOM = React.DOM, |
| | | className = 'rdt' + (this.props.className ? |
| | | var className = 'rdt' + (this.props.className ? |
| | | ( Array.isArray( this.props.className ) ? |
| | | ' ' + this.props.className.join( ' ' ) : ' ' + this.props.className) : ''), |
| | | children = [] |
| | | ; |
| | | |
| | | if ( this.props.input ) { |
| | | children = [ DOM.input( assign({ |
| | | children = [ React.createElement('input', assign({ |
| | | key: 'i', |
| | | type: 'text', |
| | | className: 'form-control', |
| | |
| | | if ( this.state.open ) |
| | | className += ' rdtOpen'; |
| | | |
| | | return DOM.div({className: className}, children.concat( |
| | | DOM.div( |
| | | return React.createElement('div', {className: className}, children.concat( |
| | | React.createElement('div', |
| | | { key: 'dt', className: 'rdtPicker' }, |
| | | React.createElement( CalendarContainer, {view: this.state.currentView, viewProps: this.getComponentProps(), onClickOutside: this.handleClickOutside }) |
| | | ) |
| | |
| | | process.removeListener = noop; |
| | | process.removeAllListeners = noop; |
| | | process.emit = noop; |
| | | process.prependListener = noop; |
| | | process.prependOnceListener = noop; |
| | | |
| | | process.listeners = function (name) { return [] } |
| | | |
| | | process.binding = function (name) { |
| | | throw new Error('process.binding is not supported'); |
| | |
| | | return emptyFunction.thatReturnsNull; |
| | | } |
| | | |
| | | for (var i = 0; i < arrayOfTypeCheckers.length; i++) { |
| | | var checker = arrayOfTypeCheckers[i]; |
| | | if (typeof checker !== 'function') { |
| | | warning( |
| | | false, |
| | | 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' + |
| | | 'received %s at index %s.', |
| | | getPostfixForTypeWarning(checker), |
| | | i |
| | | ); |
| | | return emptyFunction.thatReturnsNull; |
| | | } |
| | | } |
| | | |
| | | function validate(props, propName, componentName, location, propFullName) { |
| | | for (var i = 0; i < arrayOfTypeCheckers.length; i++) { |
| | | var checker = arrayOfTypeCheckers[i]; |
| | |
| | | // This handles more types than `getPropType`. Only used for error messages. |
| | | // See `createPrimitiveTypeChecker`. |
| | | function getPreciseType(propValue) { |
| | | if (typeof propValue === 'undefined' || propValue === null) { |
| | | return '' + propValue; |
| | | } |
| | | var propType = getPropType(propValue); |
| | | if (propType === 'object') { |
| | | if (propValue instanceof Date) { |
| | |
| | | } |
| | | } |
| | | return propType; |
| | | } |
| | | |
| | | // Returns a string that is postfixed to a warning about an invalid type. |
| | | // For example, "undefined" or "of type array" |
| | | function getPostfixForTypeWarning(value) { |
| | | var type = getPreciseType(value); |
| | | switch (type) { |
| | | case 'array': |
| | | case 'object': |
| | | return 'an ' + type; |
| | | case 'boolean': |
| | | case 'date': |
| | | case 'regexp': |
| | | return 'a ' + type; |
| | | default: |
| | | return type; |
| | | } |
| | | } |
| | | |
| | | // Returns class name of the object, if any. |
| | |
| | | |
| | | var emptyFunction = __webpack_require__(5); |
| | | var invariant = __webpack_require__(6); |
| | | var ReactPropTypesSecret = __webpack_require__(8); |
| | | |
| | | module.exports = function() { |
| | | // Important! |
| | | // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`. |
| | | function shim() { |
| | | function shim(props, propName, componentName, location, propFullName, secret) { |
| | | if (secret === ReactPropTypesSecret) { |
| | | // It is still safe when called from React. |
| | | return; |
| | | } |
| | | invariant( |
| | | false, |
| | | 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + |
| | |
| | | function getShim() { |
| | | return shim; |
| | | }; |
| | | // Important! |
| | | // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`. |
| | | var ReactPropTypes = { |
| | | array: shim, |
| | | bool: shim, |
| | |
| | | |
| | | var React = __webpack_require__(12); |
| | | var factory = __webpack_require__(13); |
| | | |
| | | if (typeof React === 'undefined') { |
| | | throw Error( |
| | | 'create-react-class could not find the React object. If you are using script tags, ' + |
| | | 'make sure that React is being loaded before create-react-class.' |
| | | ); |
| | | } |
| | | |
| | | // Hack to grab NoopUpdateQueue from isomorphic React |
| | | var ReactNoopUpdateQueue = new React.Component().updater; |
| | |
| | | ReactPropTypeLocationNames = { |
| | | prop: 'prop', |
| | | context: 'context', |
| | | childContext: 'child context', |
| | | childContext: 'child context' |
| | | }; |
| | | } else { |
| | | ReactPropTypeLocationNames = {}; |
| | |
| | | /** |
| | | * Policies that describe methods in `ReactClassInterface`. |
| | | */ |
| | | |
| | | |
| | | var injectedMixins = []; |
| | | |
| | |
| | | * @internal |
| | | */ |
| | | var ReactClassInterface = { |
| | | |
| | | /** |
| | | * An array of Mixin objects to include when defining your component. |
| | | * |
| | |
| | | * } |
| | | * |
| | | * @return {ReactComponent} |
| | | * @nosideeffects |
| | | * @required |
| | | */ |
| | | render: 'DEFINE_ONCE', |
| | |
| | | * @overridable |
| | | */ |
| | | updateComponent: 'OVERRIDE_BASE' |
| | | |
| | | }; |
| | | |
| | | /** |
| | |
| | | * which all other static methods are defined. |
| | | */ |
| | | var RESERVED_SPEC_KEYS = { |
| | | displayName: function (Constructor, displayName) { |
| | | displayName: function(Constructor, displayName) { |
| | | Constructor.displayName = displayName; |
| | | }, |
| | | mixins: function (Constructor, mixins) { |
| | | mixins: function(Constructor, mixins) { |
| | | if (mixins) { |
| | | for (var i = 0; i < mixins.length; i++) { |
| | | mixSpecIntoComponent(Constructor, mixins[i]); |
| | | } |
| | | } |
| | | }, |
| | | childContextTypes: function (Constructor, childContextTypes) { |
| | | childContextTypes: function(Constructor, childContextTypes) { |
| | | if (process.env.NODE_ENV !== 'production') { |
| | | validateTypeDef(Constructor, childContextTypes, 'childContext'); |
| | | } |
| | | Constructor.childContextTypes = _assign({}, Constructor.childContextTypes, childContextTypes); |
| | | Constructor.childContextTypes = _assign( |
| | | {}, |
| | | Constructor.childContextTypes, |
| | | childContextTypes |
| | | ); |
| | | }, |
| | | contextTypes: function (Constructor, contextTypes) { |
| | | contextTypes: function(Constructor, contextTypes) { |
| | | if (process.env.NODE_ENV !== 'production') { |
| | | validateTypeDef(Constructor, contextTypes, 'context'); |
| | | } |
| | | Constructor.contextTypes = _assign({}, Constructor.contextTypes, contextTypes); |
| | | Constructor.contextTypes = _assign( |
| | | {}, |
| | | Constructor.contextTypes, |
| | | contextTypes |
| | | ); |
| | | }, |
| | | /** |
| | | * Special case getDefaultProps which should move into statics but requires |
| | | * automatic merging. |
| | | */ |
| | | getDefaultProps: function (Constructor, getDefaultProps) { |
| | | getDefaultProps: function(Constructor, getDefaultProps) { |
| | | if (Constructor.getDefaultProps) { |
| | | Constructor.getDefaultProps = createMergedResultFunction(Constructor.getDefaultProps, getDefaultProps); |
| | | Constructor.getDefaultProps = createMergedResultFunction( |
| | | Constructor.getDefaultProps, |
| | | getDefaultProps |
| | | ); |
| | | } else { |
| | | Constructor.getDefaultProps = getDefaultProps; |
| | | } |
| | | }, |
| | | propTypes: function (Constructor, propTypes) { |
| | | propTypes: function(Constructor, propTypes) { |
| | | if (process.env.NODE_ENV !== 'production') { |
| | | validateTypeDef(Constructor, propTypes, 'prop'); |
| | | } |
| | | Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes); |
| | | }, |
| | | statics: function (Constructor, statics) { |
| | | statics: function(Constructor, statics) { |
| | | mixStaticSpecIntoComponent(Constructor, statics); |
| | | }, |
| | | autobind: function () {} }; |
| | | 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; |
| | | if (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 |
| | | ); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | function validateMethodOverride(isAlreadyDefined, name) { |
| | | var specPolicy = ReactClassInterface.hasOwnProperty(name) ? ReactClassInterface[name] : null; |
| | | 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); |
| | | _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); |
| | | _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 |
| | | ); |
| | | } |
| | | } |
| | | |
| | |
| | | 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; |
| | | if (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 |
| | | ); |
| | | } |
| | | } |
| | | |
| | | 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.'); |
| | | _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; |
| | |
| | | // 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; |
| | | var shouldAutoBind = |
| | | isFunction && |
| | | !isReactClassMethod && |
| | | !isAlreadyDefined && |
| | | spec.autobind !== false; |
| | | |
| | | if (shouldAutoBind) { |
| | | autoBindPairs.push(name, property); |
| | |
| | | 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); |
| | | _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. |
| | |
| | | } |
| | | |
| | | 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); |
| | | _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); |
| | | _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; |
| | | } |
| | | } |
| | |
| | | * @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.'); |
| | | _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); |
| | | _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]; |
| | | } |
| | | } |
| | |
| | | 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++) { |
| | | 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]; |
| | | } |
| | | |
| | |
| | | // 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; |
| | | if (process.env.NODE_ENV !== 'production') { |
| | | warning( |
| | | false, |
| | | 'bind(): React component methods may only be bound to the ' + |
| | | 'component instance. See %s', |
| | | componentName |
| | | ); |
| | | } |
| | | } 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; |
| | | if (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 |
| | | ); |
| | | } |
| | | return boundMethod; |
| | | } |
| | | var reboundMethod = _bind.apply(boundMethod, arguments); |
| | |
| | | } |
| | | } |
| | | |
| | | var IsMountedMixin = { |
| | | componentDidMount: function () { |
| | | var IsMountedPreMixin = { |
| | | componentDidMount: function() { |
| | | this.__isMounted = true; |
| | | }, |
| | | componentWillUnmount: function () { |
| | | } |
| | | }; |
| | | |
| | | var IsMountedPostMixin = { |
| | | componentWillUnmount: function() { |
| | | this.__isMounted = false; |
| | | } |
| | | }; |
| | |
| | | * 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) { |
| | | replaceState: function(newState, callback) { |
| | | this.updater.enqueueReplaceState(this, newState, callback); |
| | | }, |
| | | |
| | |
| | | * @protected |
| | | * @final |
| | | */ |
| | | isMounted: function () { |
| | | 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; |
| | | 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' |
| | | ); |
| | | this.__didWarnIsMounted = true; |
| | | } |
| | | return !!this.__isMounted; |
| | | } |
| | | }; |
| | | |
| | | var ReactClassComponent = function () {}; |
| | | _assign(ReactClassComponent.prototype, ReactComponent.prototype, ReactClassMixin); |
| | | var ReactClassComponent = function() {}; |
| | | _assign( |
| | | ReactClassComponent.prototype, |
| | | ReactComponent.prototype, |
| | | ReactClassMixin |
| | | ); |
| | | |
| | | /** |
| | | * Creates a composite component class given a class specification. |
| | |
| | | // 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) { |
| | | 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; |
| | | warning( |
| | | this instanceof Constructor, |
| | | 'Something is calling a React component directly. Use a factory or ' + |
| | | 'JSX instead. See: https://fb.me/react-legacyfactory' |
| | | ); |
| | | } |
| | | |
| | | // Wire up auto-binding |
| | |
| | | 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) { |
| | | 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'); |
| | | _invariant( |
| | | typeof initialState === 'object' && !Array.isArray(initialState), |
| | | '%s.getInitialState(): must return an object or null', |
| | | Constructor.displayName || 'ReactCompositeComponent' |
| | | ); |
| | | |
| | | this.state = initialState; |
| | | }); |
| | |
| | | |
| | | injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor)); |
| | | |
| | | mixSpecIntoComponent(Constructor, IsMountedMixin); |
| | | mixSpecIntoComponent(Constructor, IsMountedPreMixin); |
| | | mixSpecIntoComponent(Constructor, spec); |
| | | mixSpecIntoComponent(Constructor, IsMountedPostMixin); |
| | | |
| | | // Initialize the defaultProps property after all mixins have been merged. |
| | | if (Constructor.getDefaultProps) { |
| | |
| | | } |
| | | } |
| | | |
| | | _invariant(Constructor.prototype.render, 'createClass(...): Class specification must implement a `render` method.'); |
| | | _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; |
| | | 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' |
| | | ); |
| | | warning( |
| | | !Constructor.prototype.componentWillRecieveProps, |
| | | '%s has a method called ' + |
| | | 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', |
| | | spec.displayName || 'A component' |
| | | ); |
| | | } |
| | | |
| | | // Reduce time spent doing lookups by setting these on the prototype. |
| | |
| | | onClickOutside = __webpack_require__(19) |
| | | ; |
| | | |
| | | var DOM = React.DOM; |
| | | var DateTimePickerDays = onClickOutside( createClass({ |
| | | render: function() { |
| | | var footer = this.renderFooter(), |
| | |
| | | ; |
| | | |
| | | tableChildren = [ |
| | | DOM.thead({ key: 'th' }, [ |
| | | DOM.tr({ key: 'h' }, [ |
| | | DOM.th({ key: 'p', className: 'rdtPrev', onClick: this.props.subtractTime( 1, 'months' )}, DOM.span({}, '‹' )), |
| | | DOM.th({ key: 's', className: 'rdtSwitch', onClick: this.props.showView( 'months' ), colSpan: 5, 'data-value': this.props.viewDate.month() }, locale.months( date ) + ' ' + date.year() ), |
| | | DOM.th({ key: 'n', className: 'rdtNext', onClick: this.props.addTime( 1, 'months' )}, DOM.span({}, '›' )) |
| | | React.createElement('thead', { key: 'th' }, [ |
| | | React.createElement('tr', { key: 'h' }, [ |
| | | React.createElement('th', { key: 'p', className: 'rdtPrev', onClick: this.props.subtractTime( 1, 'months' )}, React.createElement('span', {}, '‹' )), |
| | | React.createElement('th', { key: 's', className: 'rdtSwitch', onClick: this.props.showView( 'months' ), colSpan: 5, 'data-value': this.props.viewDate.month() }, locale.months( date ) + ' ' + date.year() ), |
| | | React.createElement('th', { key: 'n', className: 'rdtNext', onClick: this.props.addTime( 1, 'months' )}, React.createElement('span', {}, '›' )) |
| | | ]), |
| | | DOM.tr({ key: 'd'}, this.getDaysOfWeek( locale ).map( function( day, index ) { return DOM.th({ key: day + index, className: 'dow'}, day ); }) ) |
| | | React.createElement('tr', { key: 'd'}, this.getDaysOfWeek( locale ).map( function( day, index ) { return React.createElement('th', { key: day + index, className: 'dow'}, day ); }) ) |
| | | ]), |
| | | DOM.tbody({ key: 'tb' }, this.renderDays()) |
| | | React.createElement('tbody', { key: 'tb' }, this.renderDays()) |
| | | ]; |
| | | |
| | | if ( footer ) |
| | | tableChildren.push( footer ); |
| | | |
| | | return DOM.div({ className: 'rdtDays' }, |
| | | DOM.table({}, tableChildren ) |
| | | return React.createElement('div', { className: 'rdtDays' }, |
| | | React.createElement('table', {}, tableChildren ) |
| | | ); |
| | | }, |
| | | |
| | |
| | | days.push( renderer( dayProps, currentDate, selected ) ); |
| | | |
| | | if ( days.length === 7 ) { |
| | | weeks.push( DOM.tr({ key: prevMonth.format( 'M_D' )}, days ) ); |
| | | weeks.push( React.createElement('tr', { key: prevMonth.format( 'M_D' )}, days ) ); |
| | | days = []; |
| | | } |
| | | |
| | |
| | | }, |
| | | |
| | | renderDay: function( props, currentDate ) { |
| | | return DOM.td( props, currentDate.date() ); |
| | | return React.createElement('td', props, currentDate.date() ); |
| | | }, |
| | | |
| | | renderFooter: function() { |
| | |
| | | |
| | | var date = this.props.selectedDate || this.props.viewDate; |
| | | |
| | | return DOM.tfoot({ key: 'tf'}, |
| | | DOM.tr({}, |
| | | DOM.td({ onClick: this.props.showView( 'time' ), colSpan: 7, className: 'rdtTimeToggle' }, date.format( this.props.timeFormat )) |
| | | return React.createElement('tfoot', { key: 'tf'}, |
| | | React.createElement('tr', {}, |
| | | React.createElement('td', { onClick: this.props.showView( 'time' ), colSpan: 7, className: 'rdtTimeToggle' }, date.format( this.props.timeFormat )) |
| | | ) |
| | | ); |
| | | }, |
| | |
| | | onClickOutside = __webpack_require__(19) |
| | | ; |
| | | |
| | | var DOM = React.DOM; |
| | | var DateTimePickerMonths = onClickOutside( createClass({ |
| | | render: function() { |
| | | return DOM.div({ className: 'rdtMonths' }, [ |
| | | DOM.table({ key: 'a' }, DOM.thead( {}, DOM.tr( {}, [ |
| | | DOM.th({ key: 'prev', className: 'rdtPrev', onClick: this.props.subtractTime( 1, 'years' )}, DOM.span({}, '‹' )), |
| | | DOM.th({ key: 'year', className: 'rdtSwitch', onClick: this.props.showView( 'years' ), colSpan: 2, 'data-value': this.props.viewDate.year() }, this.props.viewDate.year() ), |
| | | DOM.th({ key: 'next', className: 'rdtNext', onClick: this.props.addTime( 1, 'years' )}, DOM.span({}, '›' )) |
| | | return React.createElement('div', { className: 'rdtMonths' }, [ |
| | | React.createElement('table', { key: 'a' }, React.createElement('thead', {}, React.createElement('tr', {}, [ |
| | | React.createElement('th', { key: 'prev', className: 'rdtPrev', onClick: this.props.subtractTime( 1, 'years' )}, React.createElement('span', {}, '‹' )), |
| | | React.createElement('th', { key: 'year', className: 'rdtSwitch', onClick: this.props.showView( 'years' ), colSpan: 2, 'data-value': this.props.viewDate.year() }, this.props.viewDate.year() ), |
| | | React.createElement('th', { key: 'next', className: 'rdtNext', onClick: this.props.addTime( 1, 'years' )}, React.createElement('span', {}, '›' )) |
| | | ]))), |
| | | DOM.table({ key: 'months' }, DOM.tbody({ key: 'b' }, this.renderMonths())) |
| | | React.createElement('table', { key: 'months' }, React.createElement('tbody', { key: 'b' }, this.renderMonths())) |
| | | ]); |
| | | }, |
| | | |
| | |
| | | months.push( renderer( props, i, year, date && date.clone() ) ); |
| | | |
| | | if ( months.length === 4 ) { |
| | | rows.push( DOM.tr({ key: month + '_' + rows.length }, months ) ); |
| | | rows.push( React.createElement('tr', { key: month + '_' + rows.length }, months ) ); |
| | | months = []; |
| | | } |
| | | |
| | |
| | | // Because some months are up to 5 characters long, we want to |
| | | // use a fixed string length for consistency |
| | | var monthStrFixedLength = monthStr.substring( 0, strLength ); |
| | | return DOM.td( props, capitalize( monthStrFixedLength ) ); |
| | | return React.createElement('td', props, capitalize( monthStrFixedLength ) ); |
| | | }, |
| | | |
| | | alwaysValidDate: function() { |
| | |
| | | onClickOutside = __webpack_require__(19) |
| | | ; |
| | | |
| | | var DOM = React.DOM; |
| | | |
| | | var DateTimePickerYears = onClickOutside( createClass({ |
| | | render: function() { |
| | | var year = parseInt( this.props.viewDate.year() / 10, 10 ) * 10; |
| | | |
| | | return DOM.div({ className: 'rdtYears' }, [ |
| | | DOM.table({ key: 'a' }, DOM.thead({}, DOM.tr({}, [ |
| | | DOM.th({ key: 'prev', className: 'rdtPrev', onClick: this.props.subtractTime( 10, 'years' )}, DOM.span({}, '‹' )), |
| | | DOM.th({ key: 'year', className: 'rdtSwitch', onClick: this.props.showView( 'years' ), colSpan: 2 }, year + '-' + ( year + 9 ) ), |
| | | DOM.th({ key: 'next', className: 'rdtNext', onClick: this.props.addTime( 10, 'years' )}, DOM.span({}, '›' )) |
| | | return React.createElement('div', { className: 'rdtYears' }, [ |
| | | React.createElement('table', { key: 'a' }, React.createElement('thead', {}, React.createElement('tr', {}, [ |
| | | React.createElement('th', { key: 'prev', className: 'rdtPrev', onClick: this.props.subtractTime( 10, 'years' )}, React.createElement('span', {}, '‹' )), |
| | | React.createElement('th', { key: 'year', className: 'rdtSwitch', onClick: this.props.showView( 'years' ), colSpan: 2 }, year + '-' + ( year + 9 ) ), |
| | | React.createElement('th', { key: 'next', className: 'rdtNext', onClick: this.props.addTime( 10, 'years' )}, React.createElement('span', {}, '›' )) |
| | | ]))), |
| | | DOM.table({ key: 'years' }, DOM.tbody( {}, this.renderYears( year ))) |
| | | React.createElement('table', { key: 'years' }, React.createElement('tbody', {}, this.renderYears( year ))) |
| | | ]); |
| | | }, |
| | | |
| | |
| | | years.push( renderer( props, year, selectedDate && selectedDate.clone() )); |
| | | |
| | | if ( years.length === 4 ) { |
| | | rows.push( DOM.tr({ key: i }, years ) ); |
| | | rows.push( React.createElement('tr', { key: i }, years ) ); |
| | | years = []; |
| | | } |
| | | |
| | |
| | | }, |
| | | |
| | | renderYear: function( props, year ) { |
| | | return DOM.td( props, year ); |
| | | return React.createElement('td', props, year ); |
| | | }, |
| | | |
| | | alwaysValidDate: function() { |
| | |
| | | onClickOutside = __webpack_require__(19) |
| | | ; |
| | | |
| | | var DOM = React.DOM; |
| | | var DateTimePickerTime = onClickOutside( createClass({ |
| | | getInitialState: function() { |
| | | return this.calculateState( this.props ); |
| | |
| | | value = 12; |
| | | } |
| | | } |
| | | return DOM.div({ key: type, className: 'rdtCounter' }, [ |
| | | DOM.span({ key: 'up', className: 'rdtBtn', onMouseDown: this.onStartClicking( 'increase', type ) }, '▲' ), |
| | | DOM.div({ key: 'c', className: 'rdtCount' }, value ), |
| | | DOM.span({ key: 'do', className: 'rdtBtn', onMouseDown: this.onStartClicking( 'decrease', type ) }, '▼' ) |
| | | return React.createElement('div', { key: type, className: 'rdtCounter' }, [ |
| | | React.createElement('span', { key: 'up', className: 'rdtBtn', onMouseDown: this.onStartClicking( 'increase', type ) }, '▲' ), |
| | | React.createElement('div', { key: 'c', className: 'rdtCount' }, value ), |
| | | React.createElement('span', { key: 'do', className: 'rdtBtn', onMouseDown: this.onStartClicking( 'decrease', type ) }, '▼' ) |
| | | ]); |
| | | } |
| | | return ''; |
| | | }, |
| | | |
| | | renderDayPart: function() { |
| | | return DOM.div({ key: 'dayPart', className: 'rdtCounter' }, [ |
| | | DOM.span({ key: 'up', className: 'rdtBtn', onMouseDown: this.onStartClicking( 'toggleDayPart', 'hours') }, '▲' ), |
| | | DOM.div({ key: this.state.daypart, className: 'rdtCount' }, this.state.daypart ), |
| | | DOM.span({ key: 'do', className: 'rdtBtn', onMouseDown: this.onStartClicking( 'toggleDayPart', 'hours') }, '▼' ) |
| | | return React.createElement('div', { key: 'dayPart', className: 'rdtCounter' }, [ |
| | | React.createElement('span', { key: 'up', className: 'rdtBtn', onMouseDown: this.onStartClicking( 'toggleDayPart', 'hours') }, '▲' ), |
| | | React.createElement('div', { key: this.state.daypart, className: 'rdtCount' }, this.state.daypart ), |
| | | React.createElement('span', { key: 'do', className: 'rdtBtn', onMouseDown: this.onStartClicking( 'toggleDayPart', 'hours') }, '▼' ) |
| | | ]); |
| | | }, |
| | | |
| | |
| | | |
| | | this.state.counters.forEach( function( c ) { |
| | | if ( counters.length ) |
| | | counters.push( DOM.div({ key: 'sep' + counters.length, className: 'rdtCounterSeparator' }, ':' ) ); |
| | | counters.push( React.createElement('div', { key: 'sep' + counters.length, className: 'rdtCounterSeparator' }, ':' ) ); |
| | | counters.push( me.renderCounter( c ) ); |
| | | }); |
| | | |
| | |
| | | } |
| | | |
| | | if ( this.state.counters.length === 3 && this.props.timeFormat.indexOf( 'S' ) !== -1 ) { |
| | | counters.push( DOM.div({ className: 'rdtCounterSeparator', key: 'sep5' }, ':' ) ); |
| | | counters.push( React.createElement('div', { className: 'rdtCounterSeparator', key: 'sep5' }, ':' ) ); |
| | | counters.push( |
| | | DOM.div({ className: 'rdtCounter rdtMilli', key: 'm' }, |
| | | DOM.input({ value: this.state.milliseconds, type: 'text', onChange: this.updateMilli } ) |
| | | React.createElement('div', { className: 'rdtCounter rdtMilli', key: 'm' }, |
| | | React.createElement('input', { value: this.state.milliseconds, type: 'text', onChange: this.updateMilli } ) |
| | | ) |
| | | ); |
| | | } |
| | | |
| | | return DOM.div({ className: 'rdtTime' }, |
| | | DOM.table({}, [ |
| | | return React.createElement('div', { className: 'rdtTime' }, |
| | | React.createElement('table', {}, [ |
| | | this.renderHeader(), |
| | | DOM.tbody({ key: 'b'}, DOM.tr({}, DOM.td({}, |
| | | DOM.div({ className: 'rdtCounters' }, counters ) |
| | | React.createElement('tbody', { key: 'b'}, React.createElement('tr', {}, React.createElement('td', {}, |
| | | React.createElement('div', { className: 'rdtCounters' }, counters ) |
| | | ))) |
| | | ]) |
| | | ); |
| | |
| | | return null; |
| | | |
| | | var date = this.props.selectedDate || this.props.viewDate; |
| | | return DOM.thead({ key: 'h' }, DOM.tr({}, |
| | | DOM.th({ className: 'rdtSwitch', colSpan: 4, onClick: this.props.showView( 'days' ) }, date.format( this.props.dateFormat ) ) |
| | | return React.createElement('thead', { key: 'h' }, React.createElement('tr', {}, |
| | | React.createElement('th', { className: 'rdtSwitch', colSpan: 4, onClick: this.props.showView( 'days' ) }, date.format( this.props.dateFormat ) ) |
| | | )); |
| | | }, |
| | | |