material-components
Version:
Stateless UI components for react that follow material design
209 lines (178 loc) • 7.87 kB
JavaScript
Object.defineProperty(exports, '__esModule', {
value: true
});
var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _moment = require('moment');
var _moment2 = _interopRequireDefault(_moment);
var _dialog = require('./dialog');
var _dialog2 = _interopRequireDefault(_dialog);
var _calendar = require('./calendar');
var _calendar2 = _interopRequireDefault(_calendar);
var _helpersScreen = require('./helpers/screen');
var _helpersScreen2 = _interopRequireDefault(_helpersScreen);
var DatePicker = (function (_Component) {
_inherits(DatePicker, _Component);
function DatePicker() {
_classCallCheck(this, DatePicker);
_get(Object.getPrototypeOf(DatePicker.prototype), 'constructor', this).apply(this, arguments);
}
_createClass(DatePicker, [{
key: 'componentDidMount',
value: function componentDidMount() {
var _this = this;
window.addEventListener('resize', this._resize = function () {
return _this.forceUpdate();
});
}
}, {
key: 'componentWillUnmount',
value: function componentWillUnmount() {
window.removeEventListener('resize', this._resize);
}
}, {
key: 'render',
value: function render() {
var _this2 = this;
var _context$componentStyle = this.context.componentStyle;
var secondaryColor = _context$componentStyle.secondaryColor;
var secondaryFontColor = _context$componentStyle.secondaryFontColor;
var _props = this.props;
var className = _props.className;
var isOpen = _props.isOpen;
var locale = _props.locale;
var month = _props.month;
var onCancel = _props.onCancel;
var onChange = _props.onChange;
var onNavigate = _props.onNavigate;
var onOk = _props.onOk;
var pickingValue = _props.pickingValue;
var style = _props.style;
var validDays = _props.validDays;
var year = _props.year;
var _screen$getSize = _helpersScreen2['default'].getSize();
var width = _screen$getSize.width;
var height = _screen$getSize.height;
var isPortrait = height > width;
var displayDate = pickingValue ? (0, _moment2['default'])(pickingValue) : (0, _moment2['default'])({ year: year, month: month, day: 1 });
displayDate.locale(locale);
var dateLines = null;
if (!pickingValue) {
dateLines = [displayDate.format('MMM')];
} else if (isPortrait) {
dateLines = [displayDate.format('ddd MMM D')];
} else {
dateLines = [displayDate.format('ddd'), displayDate.format('MMM D')];
}
return _react2['default'].createElement(
_dialog2['default'],
{
isOpen: isOpen,
onOk: pickingValue ? function (e) {
return onOk({ target: { value: _this2.props.pickingValue } });
} : null,
okLabel: 'OK',
onCancel: onCancel,
cancelLabel: 'Cancel',
width: isPortrait ? 328 : 496,
height: isPortrait ? 388 : 292,
hideDivider: true,
noPadding: true,
ignoreResizeEvents: true,
className: className,
style: Object.assign({ overflow: 'hidden' }, style) },
_react2['default'].createElement(
'div',
{
style: {
width: isPortrait ? '100%' : '168px',
height: isPortrait ? '96px' : '322px',
marginBottom: isPortrait ? 0 : '-56px',
backgroundColor: secondaryColor,
color: secondaryFontColor,
padding: isPortrait ? '16px 24px' : '16px',
position: 'absolute'
} },
_react2['default'].createElement(
'div',
{ style: { fontSize: '15px', marginBottom: '2px' } },
displayDate.get('year')
),
_react2['default'].createElement(
'div',
{ style: { fontSize: '36px', fontWeight: 600, lineHeight: '40px' } },
dateLines.map(function (line, index) {
return _react2['default'].createElement(
'div',
{ key: index },
line
);
})
)
),
_react2['default'].createElement(_calendar2['default'], {
locale: locale,
month: month,
onChange: onChange,
onNavigate: onNavigate,
validDays: validDays,
value: pickingValue,
year: year,
style: {
margin: isPortrait ? '104px 24px 0' : '8px 24px 0 192px'
}
})
);
}
}], [{
key: 'displayName',
value: 'DatePicker',
enumerable: true
}, {
key: 'contextTypes',
value: {
componentStyle: _propTypes2['default'].object
},
enumerable: true
}, {
key: 'propTypes',
value: {
className: _propTypes2['default'].string,
isOpen: _propTypes2['default'].bool,
locale: _propTypes2['default'].string,
month: _propTypes2['default'].number,
onCancel: _propTypes2['default'].func,
onChange: _propTypes2['default'].func,
onNavigate: _propTypes2['default'].func,
onOk: _propTypes2['default'].func,
pickingValue: _propTypes2['default'].object,
style: _propTypes2['default'].object,
validDays: _propTypes2['default'].array,
year: _propTypes2['default'].number
},
enumerable: true
}, {
key: 'defaultProps',
value: {
className: '',
isOpen: false,
locale: 'en',
month: new Date().getMonth(),
style: {},
validDays: null,
year: new Date().getFullYear()
},
enumerable: true
}]);
return DatePicker;
})(_react.Component);
exports['default'] = DatePicker;
module.exports = exports['default'];
;