material-ui
Advanced tools
Comparing version 0.7.3 to 0.7.4
@@ -0,1 +1,28 @@ | ||
## 0.7.4 | ||
###### _Apr. 21, 2015_ | ||
##### General | ||
- Updated to react v0.13 | ||
##### Components | ||
- AppBar | ||
- Fixed IE toString.Call() issue (#518, #468) | ||
- Buttons | ||
- Button events now do not fire on disabled buttons (#512) | ||
- Fixed rapid keyboard tabbing issue (#528) | ||
- DatePicker | ||
- Added autoOk, minDate, and maxDate props (#538) | ||
- Dialog | ||
- Fixed IE toString.Call() issue (#518, #468) | ||
- Added modal prop (#523) | ||
- Fixed warnings caused by overwriting props (#500) | ||
- Added ability to give an action button autofocus (#552) | ||
- DropDownMenu | ||
- Handle selectIndex less than 0 (#480) | ||
- Fixed issue of using this component outside strict mode (#533) | ||
- LeftNav | ||
- Added onNavOpen & onNavClose events (#495) | ||
- Switches | ||
- Fixed errors on disabled switches on mobile (#476) | ||
## 0.7.3 | ||
@@ -2,0 +29,0 @@ ###### _Apr. 1, 2015_ |
@@ -0,0 +0,0 @@ module.exports = { |
@@ -30,3 +30,3 @@ var React = require('react'); | ||
componentDidMount: function() { | ||
if (process.NODE_ENV !== 'production' && | ||
if (process.NODE_ENV !== 'production' && | ||
(this.props.iconElementLeft && this.props.iconClassNameLeft)) { | ||
@@ -51,3 +51,3 @@ var warning = 'Properties iconClassNameLeft and iconElementLeft cannot be simultaneously ' + | ||
// If not, just use it as a node. | ||
title = toString.call(this.props.title) === '[object String]' ? | ||
title = Object.prototype.toString.call(this.props.title) === '[object String]' ? | ||
React.createElement("h1", {className: "mui-app-bar-title"}, this.props.title) : | ||
@@ -77,3 +77,3 @@ this.props.title; | ||
menuElementRight = (this.props.children) ? this.props.children : | ||
menuElementRight = (this.props.children) ? this.props.children : | ||
(this.props.iconElementRight) ? this.props.iconElementRight : ''; | ||
@@ -80,0 +80,0 @@ |
@@ -0,0 +0,0 @@ var React = require('react'), |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -13,3 +13,6 @@ var React = require('react'); | ||
onDayTouchTap: React.PropTypes.func, | ||
selectedDate: React.PropTypes.object.isRequired | ||
selectedDate: React.PropTypes.object.isRequired, | ||
maxDate: React.PropTypes.object, | ||
minDate: React.PropTypes.object, | ||
autoOk: React.PropTypes.bool | ||
}, | ||
@@ -40,6 +43,20 @@ | ||
}, | ||
_isDisabled: function(day){ | ||
var minDate = this.props.minDate; | ||
var maxDate = this.props.maxDate; | ||
if(minDate != null && day < minDate){ | ||
return true; | ||
} | ||
if(maxDate != null && day > maxDate){ | ||
return true; | ||
} | ||
return false; | ||
}, | ||
_getDayElements: function(week) { | ||
return week.map(function(day, i) { | ||
var selected = DateTime.isEqualDate(this.props.selectedDate, day); | ||
var disabled = this._isDisabled(day); | ||
return ( | ||
@@ -49,2 +66,3 @@ React.createElement(DayButton, { | ||
date: day, | ||
disabled: disabled, | ||
onTouchTap: this._handleDayTouchTap, | ||
@@ -51,0 +69,0 @@ selected: selected}) |
@@ -13,5 +13,14 @@ var React = require('react'); | ||
onLeftTouchTap: React.PropTypes.func, | ||
onRightTouchTap: React.PropTypes.func | ||
onRightTouchTap: React.PropTypes.func, | ||
maxDate: React.PropTypes.object, | ||
minDate: React.PropTypes.object | ||
}, | ||
getDefaultProps: function () { | ||
return { | ||
maxDate: null, | ||
minDate: null | ||
}; | ||
}, | ||
getInitialState: function() { | ||
@@ -33,3 +42,22 @@ return { | ||
}, | ||
_isDisabled: function(direction){ | ||
var date = this.props.displayDate; | ||
var minDate = this.props.minDate; | ||
var maxDate = this.props.maxDate; | ||
if(direction == "left" && minDate){ | ||
if(date.getFullYear() < minDate.getFullYear()) return true; | ||
if(date.getFullYear() == minDate.getFullYear()){ | ||
return date.getMonth() <= minDate.getMonth(); | ||
} | ||
}else if(direction == "right" && maxDate){ | ||
if(date.getFullYear() > maxDate.getFullYear()) return true; | ||
if(date.getFullYear() == maxDate.getFullYear()){ | ||
return date.getMonth() >= maxDate.getMonth(); | ||
} | ||
} | ||
return false; | ||
}, | ||
render: function() { | ||
@@ -39,2 +67,5 @@ var month = DateTime.getFullMonth(this.props.displayDate); | ||
var disableLeft = this._isDisabled("left"); | ||
var disableRight = this._isDisabled("right"); | ||
return ( | ||
@@ -50,2 +81,3 @@ React.createElement("div", {className: "mui-date-picker-calendar-toolbar"}, | ||
React.createElement(IconButton, { | ||
disabled: disableLeft, | ||
className: "mui-date-picker-calendar-toolbar-button-left", | ||
@@ -57,2 +89,3 @@ onTouchTap: this.props.onLeftTouchTap}, | ||
React.createElement(IconButton, { | ||
disabled: disableRight, | ||
className: "mui-date-picker-calendar-toolbar-button-right", | ||
@@ -59,0 +92,0 @@ onTouchTap: this.props.onRightTouchTap}, |
@@ -17,3 +17,6 @@ var React = require('react'); | ||
initialDate: React.PropTypes.object, | ||
isActive: React.PropTypes.bool | ||
isActive: React.PropTypes.bool, | ||
maxDate: React.PropTypes.object, | ||
minDate: React.PropTypes.object, | ||
onSelectedDate: React.PropTypes.func | ||
}, | ||
@@ -27,3 +30,5 @@ | ||
return { | ||
initialDate: new Date() | ||
initialDate: new Date(), | ||
maxDate: null, | ||
minDate: null | ||
}; | ||
@@ -68,2 +73,4 @@ }, | ||
React.createElement(CalendarToolbar, { | ||
minDate: this.props.minDate, | ||
maxDate: this.props.maxDate, | ||
displayDate: this.state.displayDate, | ||
@@ -86,2 +93,4 @@ onLeftTouchTap: this._handleLeftTouchTap, | ||
React.createElement(CalendarMonth, { | ||
minDate: this.props.minDate, | ||
maxDate: this.props.maxDate, | ||
key: this.state.displayDate.toDateString(), | ||
@@ -138,2 +147,3 @@ displayDate: this.state.displayDate, | ||
} | ||
if(this.props.onSelectedDate) this.props.onSelectedDate(d); | ||
}, | ||
@@ -140,0 +150,0 @@ |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -18,2 +18,4 @@ var React = require('react'); | ||
onDismiss: React.PropTypes.func, | ||
minDate: React.PropTypes.object, | ||
maxDate: React.PropTypes.object, | ||
}, | ||
@@ -51,2 +53,6 @@ | ||
if(this.props.autoOk){ | ||
actions = actions.slice(0, 1); | ||
} | ||
return ( | ||
@@ -62,3 +68,6 @@ React.createElement(DialogWindow, React.__spread({}, other, | ||
React.createElement(Calendar, { | ||
minDate: this.props.minDate, | ||
maxDate: this.props.maxDate, | ||
ref: "calendar", | ||
onSelectedDate: this._onSelectedDate, | ||
initialDate: this.props.initialDate, | ||
@@ -78,2 +87,8 @@ isActive: this.state.isCalendarActive}) | ||
_onSelectedDate: function(){ | ||
if(this.props.autoOk){ | ||
setTimeout(this._handleOKTouchTap.bind(this), 300); | ||
} | ||
}, | ||
_handleCancelTouchTap: function() { | ||
@@ -117,3 +132,3 @@ this.dismiss(); | ||
} | ||
} | ||
} | ||
} | ||
@@ -123,2 +138,2 @@ | ||
module.exports = DatePickerDialog; | ||
module.exports = DatePickerDialog; |
@@ -22,2 +22,5 @@ var React = require('react'); | ||
onDismiss: React.PropTypes.func, | ||
minDate: React.PropTypes.object, | ||
maxDate: React.PropTypes.object, | ||
autoOk: React.PropTypes.bool, | ||
}, | ||
@@ -31,3 +34,6 @@ | ||
return { | ||
formatDate: DateTime.format | ||
formatDate: DateTime.format, | ||
minDate: null, | ||
maxDate: null, | ||
autoOk: false | ||
}; | ||
@@ -52,3 +58,6 @@ }, | ||
this.props,formatDate=$__0.formatDate,mode=$__0.mode,onFocus=$__0.onFocus,onTouchTap=$__0.onTouchTap,onShow=$__0.onShow,onDismiss=$__0.onDismiss,other=(function(source, exclusion) {var rest = {};var hasOwn = Object.prototype.hasOwnProperty;if (source == null) {throw new TypeError();}for (var key in source) {if (hasOwn.call(source, key) && !hasOwn.call(exclusion, key)) {rest[key] = source[key];}}return rest;})($__0,{formatDate:1,mode:1,onFocus:1,onTouchTap:1,onShow:1,onDismiss:1}); | ||
this.props,formatDate=$__0.formatDate,mode=$__0.mode,onFocus=$__0.onFocus,onTouchTap=$__0.onTouchTap,onShow=$__0.onShow,onDismiss=$__0.onDismiss,minDate=$__0.minDate,maxDate=$__0.maxDate,autoOk=$__0.autoOk,other=(function(source, exclusion) {var rest = {};var hasOwn = Object.prototype.hasOwnProperty;if (source == null) {throw new TypeError();}for (var key in source) {if (hasOwn.call(source, key) && !hasOwn.call(exclusion, key)) {rest[key] = source[key];}}return rest;})($__0,{formatDate:1,mode:1,onFocus:1,onTouchTap:1,onShow:1,onDismiss:1,minDate:1,maxDate:1,autoOk:1}); | ||
var classes = this.getClasses('mui-date-picker', { | ||
@@ -73,2 +82,5 @@ 'mui-is-landscape': this.props.mode === 'landscape', | ||
React.createElement(DatePickerDialog, { | ||
minDate: minDate, | ||
maxDate: maxDate, | ||
autoOk: autoOk, | ||
ref: "dialogWindow", | ||
@@ -75,0 +87,0 @@ initialDate: this.state.dialogDate, |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -16,2 +16,3 @@ var React = require('react'); | ||
actions: React.PropTypes.array, | ||
actionFocus: React.PropTypes.string, | ||
contentClassName: React.PropTypes.string, | ||
@@ -22,3 +23,4 @@ openImmediately: React.PropTypes.bool, | ||
onShow: React.PropTypes.func, | ||
repositionOnUpdate: React.PropTypes.bool | ||
repositionOnUpdate: React.PropTypes.bool, | ||
modal: React.PropTypes.bool | ||
}, | ||
@@ -33,3 +35,4 @@ | ||
actions: [], | ||
repositionOnUpdate: true | ||
repositionOnUpdate: true, | ||
modal: false | ||
}; | ||
@@ -49,2 +52,3 @@ }, | ||
this._onShow(); | ||
this._focusOnAction(); | ||
} | ||
@@ -55,2 +59,3 @@ }, | ||
this._positionDialog(); | ||
this._focusOnAction(); | ||
}, | ||
@@ -95,2 +100,3 @@ | ||
this.refs.dialogOverlay.preventScrolling(); | ||
this._focusOnAction(); | ||
@@ -103,15 +109,22 @@ this.setState({ open: true }); | ||
var originalClassName = reactObject.props.className; | ||
var newClassname = originalClassName ? originalClassName + ' ' + className : className; | ||
reactObject.props.className = originalClassName ? | ||
originalClassName + ' ' + className : className; | ||
return React.cloneElement(reactObject, { className: newClassname }); | ||
}, | ||
_getAction: function(actionJSON, key) { | ||
var onClickHandler = actionJSON.onClick ? actionJSON.onClick : this.dismiss; | ||
var props = { | ||
key: key, | ||
secondary: true, | ||
onClick: actionJSON.onClick ? actionJSON.onClick : this.dismiss, | ||
label: actionJSON.text | ||
}; | ||
if (actionJSON.ref) { | ||
props.ref = actionJSON.ref; | ||
props.keyboardFocused = actionJSON.ref === this.props.actionFocus; | ||
} | ||
return ( | ||
React.createElement(FlatButton, { | ||
key: key, | ||
secondary: true, | ||
onClick: onClickHandler, | ||
label: actionJSON.text}) | ||
React.createElement(FlatButton, React.__spread({}, | ||
props)) | ||
); | ||
@@ -126,3 +139,3 @@ }, | ||
for (var i = 0; i < actions.length; i++) { | ||
currentAction = actions[i]; | ||
var currentAction = actions[i]; | ||
@@ -134,3 +147,3 @@ //if the current action isn't a react object, create one | ||
this._addClassName(currentAction, 'mui-dialog-window-action'); | ||
currentAction = this._addClassName(currentAction, 'mui-dialog-window-action'); | ||
actionObjects.push(currentAction); | ||
@@ -171,2 +184,8 @@ }; | ||
_focusOnAction: function() { | ||
if (this.props.actionFocus) { | ||
this.refs[this.props.actionFocus].getDOMNode().focus(); | ||
} | ||
}, | ||
_onShow: function() { | ||
@@ -181,8 +200,10 @@ if (this.props.onShow) this.props.onShow(); | ||
_handleOverlayTouchTap: function() { | ||
this.dismiss(); | ||
if (this.props.onClickAway) this.props.onClickAway(); | ||
if (!this.props.modal) { | ||
this.dismiss(); | ||
if (this.props.onClickAway) this.props.onClickAway(); | ||
} | ||
}, | ||
_handleWindowKeyUp: function(e) { | ||
if (e.keyCode == KeyCode.ESC) { | ||
if (!this.props.modal && e.keyCode == KeyCode.ESC) { | ||
this.dismiss(); | ||
@@ -189,0 +210,0 @@ } |
@@ -24,3 +24,3 @@ var React = require('react'); | ||
// If not, just use it as a node. | ||
title = toString.call(this.props.title) === '[object String]' ? | ||
title = Object.prototype.toString.call(this.props.title) === '[object String]' ? | ||
React.createElement("h3", {className: "mui-dialog-title"}, this.props.title) : | ||
@@ -27,0 +27,0 @@ this.props.title; |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -5,3 +5,2 @@ var React = require('react'); | ||
var DropDownArrow = require('./svg-icons/drop-down-arrow'); | ||
var KeyLine = require('./utils/key-line'); | ||
var Paper = require('./paper'); | ||
@@ -39,8 +38,7 @@ var Menu = require('./menu/menu'); | ||
if (this.props.autoWidth) this._setWidth(); | ||
if (this.props.hasOwnProperty('selectedIndex')) this._setSelectedIndex(this.props); | ||
}, | ||
componentWillReceiveProps: function(nextProps) { | ||
if (nextProps.hasOwnProperty('selectedIndex')) { | ||
this.setState({selectedIndex: nextProps.selectedIndex}); | ||
} | ||
if (props.hasOwnProperty('selectedIndex')) this._setSelectedIndex(nextProps); | ||
}, | ||
@@ -82,2 +80,12 @@ | ||
_setSelectedIndex: function(props) { | ||
var selectedIndex = props.selectedIndex; | ||
if (process.NODE_ENV !== 'production' && selectedIndex < 0) { | ||
console.warn('Cannot set selectedIndex to a negative index.', selectedIndex); | ||
} | ||
this.setState({selectedIndex: (selectedIndex > -1) ? selectedIndex : 0}); | ||
}, | ||
_onControlClick: function(e) { | ||
@@ -97,2 +105,2 @@ this.setState({ open: !this.state.open }); | ||
module.exports = DropDownMenu; | ||
module.exports = DropDownMenu; |
@@ -18,2 +18,3 @@ var React = require('react'); | ||
disableTouchRipple: React.PropTypes.bool, | ||
keyboardFocused: React.PropTypes.bool, | ||
linkButton: React.PropTypes.bool, | ||
@@ -32,3 +33,3 @@ onBlur: React.PropTypes.func, | ||
return { | ||
isKeyboardFocused: false | ||
isKeyboardFocused: !this.props.disabled && this.props.keyboardFocused | ||
}; | ||
@@ -104,5 +105,7 @@ }, | ||
_handleWindowKeydown: function(e) { | ||
if (e.keyCode == KeyCode.TAB) this._tabPressed = true; | ||
if (e.keyCode == KeyCode.ENTER && this.state.isKeyboardFocused) { | ||
this._handleTouchTap(e); | ||
if (!this.props.disabled) { | ||
if (e.keyCode == KeyCode.TAB) this._tabPressed = true; | ||
if (e.keyCode == KeyCode.ENTER && this.state.isKeyboardFocused) { | ||
this._handleTouchTap(e); | ||
} | ||
} | ||
@@ -112,3 +115,3 @@ }, | ||
_handleWindowKeyup: function(e) { | ||
if (e.keyCode == KeyCode.SPACE && this.state.isKeyboardFocused) { | ||
if (!this.props.disabled && e.keyCode == KeyCode.SPACE && this.state.isKeyboardFocused) { | ||
this._handleTouchTap(e); | ||
@@ -119,30 +122,46 @@ } | ||
_handleBlur: function(e) { | ||
this.setState({ | ||
isKeyboardFocused: false | ||
}); | ||
this._cancelFocusTimeout(); | ||
if (!this.props.disabled) { | ||
this.setState({ | ||
isKeyboardFocused: false | ||
}); | ||
if (this.props.onBlur) this.props.onBlur(e); | ||
if (this.props.onBlur) this.props.onBlur(e); | ||
} | ||
}, | ||
_handleFocus: function(e) { | ||
//setTimeout is needed becuase the focus event fires first | ||
//Wait so that we can capture if this was a keyboard focus | ||
//or touch focus | ||
setTimeout(function() { | ||
if (this._tabPressed) { | ||
this.setState({ | ||
isKeyboardFocused: true | ||
}); | ||
} | ||
}.bind(this), 150); | ||
if (!this.props.disabled) { | ||
//setTimeout is needed because the focus event fires first | ||
//Wait so that we can capture if this was a keyboard focus | ||
//or touch focus | ||
this._focusTimeout = setTimeout(function() { | ||
if (this._tabPressed) { | ||
this.setState({ | ||
isKeyboardFocused: true | ||
}); | ||
} | ||
}.bind(this), 150); | ||
if (this.props.onFocus) this.props.onFocus(e); | ||
if (this.props.onFocus) this.props.onFocus(e); | ||
} | ||
}, | ||
_handleTouchTap: function(e) { | ||
this._tabPressed = false; | ||
this.setState({ | ||
isKeyboardFocused: false | ||
}); | ||
if (this.props.onTouchTap) this.props.onTouchTap(e); | ||
this._cancelFocusTimeout(); | ||
if (!this.props.disabled) { | ||
this._tabPressed = false; | ||
this.setState({ | ||
isKeyboardFocused: false | ||
}); | ||
if (this.props.onTouchTap) this.props.onTouchTap(e); | ||
} | ||
}, | ||
_cancelFocusTimeout: function () { | ||
if (this._focusTimeout) { | ||
clearTimeout(this._focusTimeout); | ||
this._focusTimeout = null; | ||
} | ||
} | ||
@@ -152,2 +171,2 @@ | ||
module.exports = EnhancedButton; | ||
module.exports = EnhancedButton; |
@@ -14,3 +14,3 @@ var React = require('react'); | ||
propTypes: { | ||
propTypes: { | ||
id: React.PropTypes.string, | ||
@@ -21,12 +21,12 @@ inputType: React.PropTypes.string.isRequired, | ||
name: React.PropTypes.string, | ||
value: React.PropTypes.string, | ||
label: React.PropTypes.string, | ||
onSwitch: React.PropTypes.func, | ||
required: React.PropTypes.bool, | ||
disabled: React.PropTypes.bool, | ||
defaultSwitched: React.PropTypes.bool, | ||
value: React.PropTypes.string, | ||
label: React.PropTypes.string, | ||
onSwitch: React.PropTypes.func, | ||
required: React.PropTypes.bool, | ||
disabled: React.PropTypes.bool, | ||
defaultSwitched: React.PropTypes.bool, | ||
labelPosition: React.PropTypes.oneOf(['left', 'right']), | ||
disableFocusRipple: React.PropTypes.bool, | ||
disableTouchRipple: React.PropTypes.bool | ||
}, | ||
}, | ||
@@ -49,3 +49,3 @@ windowListeners: { | ||
isKeyboardFocused: false | ||
} | ||
}; | ||
}, | ||
@@ -121,9 +121,14 @@ | ||
onFocus: this._handleFocus, | ||
onMouseUp: this._handleMouseUp, | ||
onMouseDown: this._handleMouseDown, | ||
onMouseOut: this._handleMouseOut, | ||
onTouchStart: this._handleTouchStart, | ||
onTouchEnd: this._handleTouchEnd | ||
}; | ||
var hideTouchRipple = this.props.disabled || disableTouchRipple; | ||
if(!hideTouchRipple) { | ||
inputProps.onMouseUp = this._handleMouseUp; | ||
inputProps.onMouseDown = this._handleMouseDown; | ||
inputProps.onMouseOut = this._handleMouseOut; | ||
inputProps.onTouchStart = this._handleTouchStart; | ||
inputProps.onTouchEnd = this._handleTouchEnd; | ||
} | ||
if (!this.props.hasOwnProperty('checkedLink')) { | ||
@@ -154,3 +159,3 @@ inputProps.onChange = this._handleChange; | ||
var ripples = [ | ||
this.props.disabled || disableTouchRipple ? null : touchRipple, | ||
hideTouchRipple ? null : touchRipple, | ||
this.props.disabled || disableFocusRipple ? null : focusRipple | ||
@@ -204,3 +209,3 @@ ]; | ||
setSwitched: function(newSwitchedValue) { | ||
if (!this.props.hasOwnProperty('checked') || this.props.checked == false) { | ||
if (!this.props.hasOwnProperty('checked') || this.props.checked === false) { | ||
this.setState({switched: newSwitchedValue}); | ||
@@ -207,0 +212,0 @@ this.refs.checkbox.getDOMNode().checked = newSwitchedValue; |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -23,3 +23,3 @@ var React = require('react'); | ||
return { | ||
tooltipShown: false | ||
tooltipShown: false | ||
}; | ||
@@ -95,3 +95,5 @@ }, | ||
_showTooltip: function() { | ||
if (!this.props.disabled) this.setState({ tooltipShown: true }); | ||
if (!this.props.disabled && this.props.tooltip) { | ||
this.setState({ tooltipShown: true }); | ||
} | ||
}, | ||
@@ -98,0 +100,0 @@ |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -18,3 +18,5 @@ var React = require('react'), | ||
menuItems: React.PropTypes.array.isRequired, | ||
selectedIndex: React.PropTypes.number | ||
selectedIndex: React.PropTypes.number, | ||
onNavOpen: React.PropTypes.func, | ||
onNavClose: React.PropTypes.func | ||
}, | ||
@@ -45,2 +47,3 @@ | ||
this.setState({ open: false }); | ||
if (this.props.onNavClose) this.props.onNavClose(); | ||
return this; | ||
@@ -51,2 +54,3 @@ }, | ||
this.setState({ open: true }); | ||
if (this.props.onNavOpen) this.props.onNavOpen(); | ||
return this; | ||
@@ -108,2 +112,2 @@ }, | ||
module.exports = LeftNav; | ||
module.exports = LeftNav; |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -145,3 +145,3 @@ var React = require('react'); | ||
//Set the menu with | ||
//Set the menu width | ||
this._setKeyWidth(el); | ||
@@ -148,0 +148,0 @@ |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -10,2 +10,8 @@ var React = require('react'); | ||
getDefaultProps: function(){ | ||
return { | ||
className: '' | ||
} | ||
}, | ||
getClasses: function(initialClasses, additionalClassObj) { | ||
@@ -15,3 +21,3 @@ var classString = ''; | ||
//Initialize the classString with the classNames that were passed in | ||
if (this.props.className) classString += ' ' + this.props.className; | ||
if (this.props.className.length) classString += ' ' + this.props.className; | ||
@@ -18,0 +24,0 @@ //Add in initial classes |
@@ -22,3 +22,4 @@ var Events = require('../utils/events'); | ||
e.target != el && | ||
!Dom.isDescendant(el, e.target)) { | ||
!Dom.isDescendant(el, e.target) && | ||
document.documentElement.contains(e.target)) { | ||
if (this.componentClickAway) this.componentClickAway(); | ||
@@ -36,2 +37,2 @@ } | ||
}; | ||
}; |
@@ -0,0 +0,0 @@ var Events = require('../utils/events'); |
@@ -0,0 +0,0 @@ var React = require('react'), |
@@ -0,0 +0,0 @@ var React = require('react'), |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'), |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'), |
@@ -0,0 +0,0 @@ var React = require('react'), |
@@ -0,0 +0,0 @@ var React = require('react'), |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react/addons'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var Classable = require('./mixins/classable'); |
@@ -0,0 +0,0 @@ var Classable = require('./mixins/classable'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react/addons'); |
@@ -0,0 +0,0 @@ var Events = require('./events'); |
@@ -0,0 +0,0 @@ module.exports = { |
@@ -0,0 +0,0 @@ module.exports = { |
@@ -0,0 +0,0 @@ module.exports = { |
@@ -0,0 +0,0 @@ module.exports = { |
@@ -0,0 +0,0 @@ module.exports = { |
@@ -0,0 +0,0 @@ var index = 0; |
{ | ||
"name": "material-ui", | ||
"author": "Call-em-all Engineering Team", | ||
"version": "0.7.3", | ||
"version": "0.7.4", | ||
"description": "Material Design UI components built with React", | ||
"main": "./lib", | ||
"scripts": { | ||
"test": "echo \"Error: no test specified\" && exit 1" | ||
"test": "echo \"Error: no test specified\" && exit 1", | ||
"prebuild": "rm -rf lib", | ||
"build:js": "./node_modules/.bin/jsx --harmony ./src ./lib", | ||
"build:jsx": "./node_modules/.bin/jsx --harmony -x jsx ./src ./lib", | ||
"build": "npm run build:js && npm run build:jsx", | ||
"prepublish": "npm run build" | ||
}, | ||
@@ -31,3 +36,3 @@ "keywords": [ | ||
"peerDependencies": { | ||
"react": ">=0.12", | ||
"react": ">=0.13", | ||
"react-tap-event-plugin": ">=0.1.3" | ||
@@ -34,0 +39,0 @@ }, |
@@ -0,0 +0,0 @@ # [Material-UI](http://callemall.github.io/material-ui/) |
@@ -0,0 +0,0 @@ module.exports = { |
@@ -30,3 +30,3 @@ var React = require('react'); | ||
componentDidMount: function() { | ||
if (process.NODE_ENV !== 'production' && | ||
if (process.NODE_ENV !== 'production' && | ||
(this.props.iconElementLeft && this.props.iconClassNameLeft)) { | ||
@@ -51,3 +51,3 @@ var warning = 'Properties iconClassNameLeft and iconElementLeft cannot be simultaneously ' + | ||
// If not, just use it as a node. | ||
title = toString.call(this.props.title) === '[object String]' ? | ||
title = Object.prototype.toString.call(this.props.title) === '[object String]' ? | ||
<h1 className="mui-app-bar-title">{this.props.title}</h1> : | ||
@@ -60,4 +60,4 @@ this.props.title; | ||
menuElementLeft = ( | ||
<div className="mui-app-bar-navigation-icon-button"> | ||
{this.props.iconElementLeft} | ||
<div className="mui-app-bar-navigation-icon-button"> | ||
{this.props.iconElementLeft} | ||
</div> | ||
@@ -69,3 +69,3 @@ ); | ||
<IconButton | ||
className="mui-app-bar-navigation-icon-button" | ||
className="mui-app-bar-navigation-icon-button" | ||
iconClassName={this.props.iconClassNameLeft} | ||
@@ -79,3 +79,3 @@ onTouchTap={this._onMenuIconButtonTouchTap}> | ||
menuElementRight = (this.props.children) ? this.props.children : | ||
menuElementRight = (this.props.children) ? this.props.children : | ||
(this.props.iconElementRight) ? this.props.iconElementRight : ''; | ||
@@ -82,0 +82,0 @@ |
@@ -0,0 +0,0 @@ var React = require('react'), |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -13,3 +13,6 @@ var React = require('react'); | ||
onDayTouchTap: React.PropTypes.func, | ||
selectedDate: React.PropTypes.object.isRequired | ||
selectedDate: React.PropTypes.object.isRequired, | ||
maxDate: React.PropTypes.object, | ||
minDate: React.PropTypes.object, | ||
autoOk: React.PropTypes.bool | ||
}, | ||
@@ -40,6 +43,20 @@ | ||
}, | ||
_isDisabled: function(day){ | ||
var minDate = this.props.minDate; | ||
var maxDate = this.props.maxDate; | ||
if(minDate != null && day < minDate){ | ||
return true; | ||
} | ||
if(maxDate != null && day > maxDate){ | ||
return true; | ||
} | ||
return false; | ||
}, | ||
_getDayElements: function(week) { | ||
return week.map(function(day, i) { | ||
var selected = DateTime.isEqualDate(this.props.selectedDate, day); | ||
var disabled = this._isDisabled(day); | ||
return ( | ||
@@ -49,2 +66,3 @@ <DayButton | ||
date={day} | ||
disabled={disabled} | ||
onTouchTap={this._handleDayTouchTap} | ||
@@ -51,0 +69,0 @@ selected={selected} /> |
@@ -13,5 +13,14 @@ var React = require('react'); | ||
onLeftTouchTap: React.PropTypes.func, | ||
onRightTouchTap: React.PropTypes.func | ||
onRightTouchTap: React.PropTypes.func, | ||
maxDate: React.PropTypes.object, | ||
minDate: React.PropTypes.object | ||
}, | ||
getDefaultProps: function () { | ||
return { | ||
maxDate: null, | ||
minDate: null | ||
}; | ||
}, | ||
getInitialState: function() { | ||
@@ -33,3 +42,22 @@ return { | ||
}, | ||
_isDisabled: function(direction){ | ||
var date = this.props.displayDate; | ||
var minDate = this.props.minDate; | ||
var maxDate = this.props.maxDate; | ||
if(direction == "left" && minDate){ | ||
if(date.getFullYear() < minDate.getFullYear()) return true; | ||
if(date.getFullYear() == minDate.getFullYear()){ | ||
return date.getMonth() <= minDate.getMonth(); | ||
} | ||
}else if(direction == "right" && maxDate){ | ||
if(date.getFullYear() > maxDate.getFullYear()) return true; | ||
if(date.getFullYear() == maxDate.getFullYear()){ | ||
return date.getMonth() >= maxDate.getMonth(); | ||
} | ||
} | ||
return false; | ||
}, | ||
render: function() { | ||
@@ -39,2 +67,5 @@ var month = DateTime.getFullMonth(this.props.displayDate); | ||
var disableLeft = this._isDisabled("left"); | ||
var disableRight = this._isDisabled("right"); | ||
return ( | ||
@@ -50,2 +81,3 @@ <div className="mui-date-picker-calendar-toolbar"> | ||
<IconButton | ||
disabled={disableLeft} | ||
className="mui-date-picker-calendar-toolbar-button-left" | ||
@@ -57,2 +89,3 @@ onTouchTap={this.props.onLeftTouchTap}> | ||
<IconButton | ||
disabled={disableRight} | ||
className="mui-date-picker-calendar-toolbar-button-right" | ||
@@ -59,0 +92,0 @@ onTouchTap={this.props.onRightTouchTap}> |
@@ -17,3 +17,6 @@ var React = require('react'); | ||
initialDate: React.PropTypes.object, | ||
isActive: React.PropTypes.bool | ||
isActive: React.PropTypes.bool, | ||
maxDate: React.PropTypes.object, | ||
minDate: React.PropTypes.object, | ||
onSelectedDate: React.PropTypes.func | ||
}, | ||
@@ -27,3 +30,5 @@ | ||
return { | ||
initialDate: new Date() | ||
initialDate: new Date(), | ||
maxDate: null, | ||
minDate: null | ||
}; | ||
@@ -68,2 +73,4 @@ }, | ||
<CalendarToolbar | ||
minDate={this.props.minDate} | ||
maxDate={this.props.maxDate} | ||
displayDate={this.state.displayDate} | ||
@@ -86,2 +93,4 @@ onLeftTouchTap={this._handleLeftTouchTap} | ||
<CalendarMonth | ||
minDate={this.props.minDate} | ||
maxDate={this.props.maxDate} | ||
key={this.state.displayDate.toDateString()} | ||
@@ -138,2 +147,3 @@ displayDate={this.state.displayDate} | ||
} | ||
if(this.props.onSelectedDate) this.props.onSelectedDate(d); | ||
}, | ||
@@ -140,0 +150,0 @@ |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -18,2 +18,4 @@ var React = require('react'); | ||
onDismiss: React.PropTypes.func, | ||
minDate: React.PropTypes.object, | ||
maxDate: React.PropTypes.object, | ||
}, | ||
@@ -51,2 +53,6 @@ | ||
if(this.props.autoOk){ | ||
actions = actions.slice(0, 1); | ||
} | ||
return ( | ||
@@ -62,3 +68,6 @@ <DialogWindow {...other} | ||
<Calendar | ||
minDate={this.props.minDate} | ||
maxDate={this.props.maxDate} | ||
ref="calendar" | ||
onSelectedDate={this._onSelectedDate} | ||
initialDate={this.props.initialDate} | ||
@@ -78,2 +87,8 @@ isActive={this.state.isCalendarActive} /> | ||
_onSelectedDate: function(){ | ||
if(this.props.autoOk){ | ||
setTimeout(this._handleOKTouchTap.bind(this), 300); | ||
} | ||
}, | ||
_handleCancelTouchTap: function() { | ||
@@ -117,3 +132,3 @@ this.dismiss(); | ||
} | ||
} | ||
} | ||
} | ||
@@ -123,2 +138,2 @@ | ||
module.exports = DatePickerDialog; | ||
module.exports = DatePickerDialog; |
@@ -22,2 +22,5 @@ var React = require('react'); | ||
onDismiss: React.PropTypes.func, | ||
minDate: React.PropTypes.object, | ||
maxDate: React.PropTypes.object, | ||
autoOk: React.PropTypes.bool, | ||
}, | ||
@@ -31,3 +34,6 @@ | ||
return { | ||
formatDate: DateTime.format | ||
formatDate: DateTime.format, | ||
minDate: null, | ||
maxDate: null, | ||
autoOk: false | ||
}; | ||
@@ -51,2 +57,5 @@ }, | ||
onDismiss, | ||
minDate, | ||
maxDate, | ||
autoOk, | ||
...other | ||
@@ -73,2 +82,5 @@ } = this.props; | ||
<DatePickerDialog | ||
minDate={minDate} | ||
maxDate={maxDate} | ||
autoOk={autoOk} | ||
ref="dialogWindow" | ||
@@ -75,0 +87,0 @@ initialDate={this.state.dialogDate} |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -16,2 +16,3 @@ var React = require('react'); | ||
actions: React.PropTypes.array, | ||
actionFocus: React.PropTypes.string, | ||
contentClassName: React.PropTypes.string, | ||
@@ -22,3 +23,4 @@ openImmediately: React.PropTypes.bool, | ||
onShow: React.PropTypes.func, | ||
repositionOnUpdate: React.PropTypes.bool | ||
repositionOnUpdate: React.PropTypes.bool, | ||
modal: React.PropTypes.bool | ||
}, | ||
@@ -33,3 +35,4 @@ | ||
actions: [], | ||
repositionOnUpdate: true | ||
repositionOnUpdate: true, | ||
modal: false | ||
}; | ||
@@ -49,2 +52,3 @@ }, | ||
this._onShow(); | ||
this._focusOnAction(); | ||
} | ||
@@ -55,2 +59,3 @@ }, | ||
this._positionDialog(); | ||
this._focusOnAction(); | ||
}, | ||
@@ -95,2 +100,3 @@ | ||
this.refs.dialogOverlay.preventScrolling(); | ||
this._focusOnAction(); | ||
@@ -103,15 +109,22 @@ this.setState({ open: true }); | ||
var originalClassName = reactObject.props.className; | ||
var newClassname = originalClassName ? originalClassName + ' ' + className : className; | ||
reactObject.props.className = originalClassName ? | ||
originalClassName + ' ' + className : className; | ||
return React.cloneElement(reactObject, { className: newClassname }); | ||
}, | ||
_getAction: function(actionJSON, key) { | ||
var onClickHandler = actionJSON.onClick ? actionJSON.onClick : this.dismiss; | ||
var props = { | ||
key: key, | ||
secondary: true, | ||
onClick: actionJSON.onClick ? actionJSON.onClick : this.dismiss, | ||
label: actionJSON.text | ||
}; | ||
if (actionJSON.ref) { | ||
props.ref = actionJSON.ref; | ||
props.keyboardFocused = actionJSON.ref === this.props.actionFocus; | ||
} | ||
return ( | ||
<FlatButton | ||
key={key} | ||
secondary={true} | ||
onClick={onClickHandler} | ||
label={actionJSON.text} /> | ||
{...props} /> | ||
); | ||
@@ -126,3 +139,3 @@ }, | ||
for (var i = 0; i < actions.length; i++) { | ||
currentAction = actions[i]; | ||
var currentAction = actions[i]; | ||
@@ -134,3 +147,3 @@ //if the current action isn't a react object, create one | ||
this._addClassName(currentAction, 'mui-dialog-window-action'); | ||
currentAction = this._addClassName(currentAction, 'mui-dialog-window-action'); | ||
actionObjects.push(currentAction); | ||
@@ -171,2 +184,8 @@ }; | ||
_focusOnAction: function() { | ||
if (this.props.actionFocus) { | ||
this.refs[this.props.actionFocus].getDOMNode().focus(); | ||
} | ||
}, | ||
_onShow: function() { | ||
@@ -181,8 +200,10 @@ if (this.props.onShow) this.props.onShow(); | ||
_handleOverlayTouchTap: function() { | ||
this.dismiss(); | ||
if (this.props.onClickAway) this.props.onClickAway(); | ||
if (!this.props.modal) { | ||
this.dismiss(); | ||
if (this.props.onClickAway) this.props.onClickAway(); | ||
} | ||
}, | ||
_handleWindowKeyUp: function(e) { | ||
if (e.keyCode == KeyCode.ESC) { | ||
if (!this.props.modal && e.keyCode == KeyCode.ESC) { | ||
this.dismiss(); | ||
@@ -189,0 +210,0 @@ } |
@@ -24,3 +24,3 @@ var React = require('react'); | ||
// If not, just use it as a node. | ||
title = toString.call(this.props.title) === '[object String]' ? | ||
title = Object.prototype.toString.call(this.props.title) === '[object String]' ? | ||
<h3 className="mui-dialog-title">{this.props.title}</h3> : | ||
@@ -27,0 +27,0 @@ this.props.title; |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -5,3 +5,2 @@ var React = require('react'); | ||
var DropDownArrow = require('./svg-icons/drop-down-arrow'); | ||
var KeyLine = require('./utils/key-line'); | ||
var Paper = require('./paper'); | ||
@@ -39,8 +38,7 @@ var Menu = require('./menu/menu'); | ||
if (this.props.autoWidth) this._setWidth(); | ||
if (this.props.hasOwnProperty('selectedIndex')) this._setSelectedIndex(this.props); | ||
}, | ||
componentWillReceiveProps: function(nextProps) { | ||
if (nextProps.hasOwnProperty('selectedIndex')) { | ||
this.setState({selectedIndex: nextProps.selectedIndex}); | ||
} | ||
if (props.hasOwnProperty('selectedIndex')) this._setSelectedIndex(nextProps); | ||
}, | ||
@@ -82,2 +80,12 @@ | ||
_setSelectedIndex: function(props) { | ||
var selectedIndex = props.selectedIndex; | ||
if (process.NODE_ENV !== 'production' && selectedIndex < 0) { | ||
console.warn('Cannot set selectedIndex to a negative index.', selectedIndex); | ||
} | ||
this.setState({selectedIndex: (selectedIndex > -1) ? selectedIndex : 0}); | ||
}, | ||
_onControlClick: function(e) { | ||
@@ -97,2 +105,2 @@ this.setState({ open: !this.state.open }); | ||
module.exports = DropDownMenu; | ||
module.exports = DropDownMenu; |
@@ -18,2 +18,3 @@ var React = require('react'); | ||
disableTouchRipple: React.PropTypes.bool, | ||
keyboardFocused: React.PropTypes.bool, | ||
linkButton: React.PropTypes.bool, | ||
@@ -32,3 +33,3 @@ onBlur: React.PropTypes.func, | ||
return { | ||
isKeyboardFocused: false | ||
isKeyboardFocused: !this.props.disabled && this.props.keyboardFocused | ||
}; | ||
@@ -104,5 +105,7 @@ }, | ||
_handleWindowKeydown: function(e) { | ||
if (e.keyCode == KeyCode.TAB) this._tabPressed = true; | ||
if (e.keyCode == KeyCode.ENTER && this.state.isKeyboardFocused) { | ||
this._handleTouchTap(e); | ||
if (!this.props.disabled) { | ||
if (e.keyCode == KeyCode.TAB) this._tabPressed = true; | ||
if (e.keyCode == KeyCode.ENTER && this.state.isKeyboardFocused) { | ||
this._handleTouchTap(e); | ||
} | ||
} | ||
@@ -112,3 +115,3 @@ }, | ||
_handleWindowKeyup: function(e) { | ||
if (e.keyCode == KeyCode.SPACE && this.state.isKeyboardFocused) { | ||
if (!this.props.disabled && e.keyCode == KeyCode.SPACE && this.state.isKeyboardFocused) { | ||
this._handleTouchTap(e); | ||
@@ -119,30 +122,46 @@ } | ||
_handleBlur: function(e) { | ||
this.setState({ | ||
isKeyboardFocused: false | ||
}); | ||
this._cancelFocusTimeout(); | ||
if (!this.props.disabled) { | ||
this.setState({ | ||
isKeyboardFocused: false | ||
}); | ||
if (this.props.onBlur) this.props.onBlur(e); | ||
if (this.props.onBlur) this.props.onBlur(e); | ||
} | ||
}, | ||
_handleFocus: function(e) { | ||
//setTimeout is needed becuase the focus event fires first | ||
//Wait so that we can capture if this was a keyboard focus | ||
//or touch focus | ||
setTimeout(function() { | ||
if (this._tabPressed) { | ||
this.setState({ | ||
isKeyboardFocused: true | ||
}); | ||
} | ||
}.bind(this), 150); | ||
if (!this.props.disabled) { | ||
//setTimeout is needed because the focus event fires first | ||
//Wait so that we can capture if this was a keyboard focus | ||
//or touch focus | ||
this._focusTimeout = setTimeout(function() { | ||
if (this._tabPressed) { | ||
this.setState({ | ||
isKeyboardFocused: true | ||
}); | ||
} | ||
}.bind(this), 150); | ||
if (this.props.onFocus) this.props.onFocus(e); | ||
if (this.props.onFocus) this.props.onFocus(e); | ||
} | ||
}, | ||
_handleTouchTap: function(e) { | ||
this._tabPressed = false; | ||
this.setState({ | ||
isKeyboardFocused: false | ||
}); | ||
if (this.props.onTouchTap) this.props.onTouchTap(e); | ||
this._cancelFocusTimeout(); | ||
if (!this.props.disabled) { | ||
this._tabPressed = false; | ||
this.setState({ | ||
isKeyboardFocused: false | ||
}); | ||
if (this.props.onTouchTap) this.props.onTouchTap(e); | ||
} | ||
}, | ||
_cancelFocusTimeout: function () { | ||
if (this._focusTimeout) { | ||
clearTimeout(this._focusTimeout); | ||
this._focusTimeout = null; | ||
} | ||
} | ||
@@ -152,2 +171,2 @@ | ||
module.exports = EnhancedButton; | ||
module.exports = EnhancedButton; |
@@ -14,3 +14,3 @@ var React = require('react'); | ||
propTypes: { | ||
propTypes: { | ||
id: React.PropTypes.string, | ||
@@ -21,12 +21,12 @@ inputType: React.PropTypes.string.isRequired, | ||
name: React.PropTypes.string, | ||
value: React.PropTypes.string, | ||
label: React.PropTypes.string, | ||
onSwitch: React.PropTypes.func, | ||
required: React.PropTypes.bool, | ||
disabled: React.PropTypes.bool, | ||
defaultSwitched: React.PropTypes.bool, | ||
value: React.PropTypes.string, | ||
label: React.PropTypes.string, | ||
onSwitch: React.PropTypes.func, | ||
required: React.PropTypes.bool, | ||
disabled: React.PropTypes.bool, | ||
defaultSwitched: React.PropTypes.bool, | ||
labelPosition: React.PropTypes.oneOf(['left', 'right']), | ||
disableFocusRipple: React.PropTypes.bool, | ||
disableTouchRipple: React.PropTypes.bool | ||
}, | ||
}, | ||
@@ -49,3 +49,3 @@ windowListeners: { | ||
isKeyboardFocused: false | ||
} | ||
}; | ||
}, | ||
@@ -121,9 +121,14 @@ | ||
onFocus: this._handleFocus, | ||
onMouseUp: this._handleMouseUp, | ||
onMouseDown: this._handleMouseDown, | ||
onMouseOut: this._handleMouseOut, | ||
onTouchStart: this._handleTouchStart, | ||
onTouchEnd: this._handleTouchEnd | ||
}; | ||
var hideTouchRipple = this.props.disabled || disableTouchRipple; | ||
if(!hideTouchRipple) { | ||
inputProps.onMouseUp = this._handleMouseUp; | ||
inputProps.onMouseDown = this._handleMouseDown; | ||
inputProps.onMouseOut = this._handleMouseOut; | ||
inputProps.onTouchStart = this._handleTouchStart; | ||
inputProps.onTouchEnd = this._handleTouchEnd; | ||
} | ||
if (!this.props.hasOwnProperty('checkedLink')) { | ||
@@ -154,3 +159,3 @@ inputProps.onChange = this._handleChange; | ||
var ripples = [ | ||
this.props.disabled || disableTouchRipple ? null : touchRipple, | ||
hideTouchRipple ? null : touchRipple, | ||
this.props.disabled || disableFocusRipple ? null : focusRipple | ||
@@ -204,3 +209,3 @@ ]; | ||
setSwitched: function(newSwitchedValue) { | ||
if (!this.props.hasOwnProperty('checked') || this.props.checked == false) { | ||
if (!this.props.hasOwnProperty('checked') || this.props.checked === false) { | ||
this.setState({switched: newSwitchedValue}); | ||
@@ -207,0 +212,0 @@ this.refs.checkbox.getDOMNode().checked = newSwitchedValue; |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -23,3 +23,3 @@ var React = require('react'); | ||
return { | ||
tooltipShown: false | ||
tooltipShown: false | ||
}; | ||
@@ -95,3 +95,5 @@ }, | ||
_showTooltip: function() { | ||
if (!this.props.disabled) this.setState({ tooltipShown: true }); | ||
if (!this.props.disabled && this.props.tooltip) { | ||
this.setState({ tooltipShown: true }); | ||
} | ||
}, | ||
@@ -98,0 +100,0 @@ |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -18,3 +18,5 @@ var React = require('react'), | ||
menuItems: React.PropTypes.array.isRequired, | ||
selectedIndex: React.PropTypes.number | ||
selectedIndex: React.PropTypes.number, | ||
onNavOpen: React.PropTypes.func, | ||
onNavClose: React.PropTypes.func | ||
}, | ||
@@ -45,2 +47,3 @@ | ||
this.setState({ open: false }); | ||
if (this.props.onNavClose) this.props.onNavClose(); | ||
return this; | ||
@@ -51,2 +54,3 @@ }, | ||
this.setState({ open: true }); | ||
if (this.props.onNavOpen) this.props.onNavOpen(); | ||
return this; | ||
@@ -108,2 +112,2 @@ }, | ||
module.exports = LeftNav; | ||
module.exports = LeftNav; |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -145,3 +145,3 @@ var React = require('react'); | ||
//Set the menu with | ||
//Set the menu width | ||
this._setKeyWidth(el); | ||
@@ -148,0 +148,0 @@ |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -10,2 +10,8 @@ var React = require('react'); | ||
getDefaultProps: function(){ | ||
return { | ||
className: '' | ||
} | ||
}, | ||
getClasses: function(initialClasses, additionalClassObj) { | ||
@@ -15,3 +21,3 @@ var classString = ''; | ||
//Initialize the classString with the classNames that were passed in | ||
if (this.props.className) classString += ' ' + this.props.className; | ||
if (this.props.className.length) classString += ' ' + this.props.className; | ||
@@ -18,0 +24,0 @@ //Add in initial classes |
@@ -22,3 +22,4 @@ var Events = require('../utils/events'); | ||
e.target != el && | ||
!Dom.isDescendant(el, e.target)) { | ||
!Dom.isDescendant(el, e.target) && | ||
document.documentElement.contains(e.target)) { | ||
if (this.componentClickAway) this.componentClickAway(); | ||
@@ -36,2 +37,2 @@ } | ||
}; | ||
}; |
@@ -0,0 +0,0 @@ var Events = require('../utils/events'); |
@@ -0,0 +0,0 @@ var React = require('react'), |
@@ -0,0 +0,0 @@ var React = require('react'), |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'), |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'), |
@@ -0,0 +0,0 @@ var React = require('react'), |
@@ -0,0 +0,0 @@ var React = require('react'), |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react/addons'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var Classable = require('./mixins/classable'); |
@@ -0,0 +0,0 @@ var Classable = require('./mixins/classable'); |
@@ -0,0 +0,0 @@ var React = require('react'); |
@@ -0,0 +0,0 @@ var React = require('react/addons'); |
@@ -0,0 +0,0 @@ var Events = require('./events'); |
@@ -0,0 +0,0 @@ module.exports = { |
@@ -0,0 +0,0 @@ module.exports = { |
@@ -0,0 +0,0 @@ module.exports = { |
@@ -0,0 +0,0 @@ module.exports = { |
@@ -0,0 +0,0 @@ module.exports = { |
@@ -0,0 +0,0 @@ var index = 0; |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
8860
381478