material-ui-pickers
Version:
React components, that implements material design pickers for material-ui v1
1,028 lines (863 loc) • 227 kB
JavaScript
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react'), require('prop-types'), require('@material-ui/core/IconButton'), require('@material-ui/core/InputAdornment'), require('@material-ui/core/TextField'), require('@material-ui/core/SvgIcon'), require('@material-ui/core/Button'), require('@material-ui/core/Dialog'), require('@material-ui/core/DialogActions'), require('@material-ui/core/DialogContent'), require('@material-ui/core/styles'), require('@material-ui/core/styles/createStyles'), require('@material-ui/core/styles/withStyles'), require('@material-ui/core/Toolbar'), require('@material-ui/core/Typography'), require('react-dom'), require('@material-ui/core/Popover'), require('@material-ui/core/Paper'), require('@material-ui/core/Tab'), require('@material-ui/core/Tabs')) :
typeof define === 'function' && define.amd ? define(['exports', 'react', 'prop-types', '@material-ui/core/IconButton', '@material-ui/core/InputAdornment', '@material-ui/core/TextField', '@material-ui/core/SvgIcon', '@material-ui/core/Button', '@material-ui/core/Dialog', '@material-ui/core/DialogActions', '@material-ui/core/DialogContent', '@material-ui/core/styles', '@material-ui/core/styles/createStyles', '@material-ui/core/styles/withStyles', '@material-ui/core/Toolbar', '@material-ui/core/Typography', 'react-dom', '@material-ui/core/Popover', '@material-ui/core/Paper', '@material-ui/core/Tab', '@material-ui/core/Tabs'], factory) :
(global = global || self, factory(global['material-ui-pickers'] = {}, global.React, global.PropTypes, global['material-ui'].IconButton, global['material-ui'].InputAdornment, global['material-ui'].TextField, global['material-ui'].SvgIcon, global['material-ui'].Button, global['material-ui'].Dialog, global['material-ui'].DialogActions, global['material-ui'].DialogContent, global['material-ui'].styles, global['material-ui'].createStyles, global['material-ui'].withStyles, global['material-ui'].Toolbar, global['material-ui'].Typography, global.ReactDOM, global['material-ui'].Popover, global['material-ui'].Paper, global['material-ui'].Tab, global['material-ui'].Tabs));
}(this, function (exports, React, PropTypes$1, IconButton, InputAdornment, TextField, SvgIcon, Button, Dialog, DialogActions, DialogContent, styles$j, createStyles, withStyles, Toolbar, Typography, reactDom, Popover, Paper, Tab, Tabs) { 'use strict';
var React__default = 'default' in React ? React['default'] : React;
var PropTypes$1__default = 'default' in PropTypes$1 ? PropTypes$1['default'] : PropTypes$1;
IconButton = IconButton && IconButton.hasOwnProperty('default') ? IconButton['default'] : IconButton;
InputAdornment = InputAdornment && InputAdornment.hasOwnProperty('default') ? InputAdornment['default'] : InputAdornment;
TextField = TextField && TextField.hasOwnProperty('default') ? TextField['default'] : TextField;
SvgIcon = SvgIcon && SvgIcon.hasOwnProperty('default') ? SvgIcon['default'] : SvgIcon;
Button = Button && Button.hasOwnProperty('default') ? Button['default'] : Button;
Dialog = Dialog && Dialog.hasOwnProperty('default') ? Dialog['default'] : Dialog;
DialogActions = DialogActions && DialogActions.hasOwnProperty('default') ? DialogActions['default'] : DialogActions;
DialogContent = DialogContent && DialogContent.hasOwnProperty('default') ? DialogContent['default'] : DialogContent;
createStyles = createStyles && createStyles.hasOwnProperty('default') ? createStyles['default'] : createStyles;
withStyles = withStyles && withStyles.hasOwnProperty('default') ? withStyles['default'] : withStyles;
Toolbar = Toolbar && Toolbar.hasOwnProperty('default') ? Toolbar['default'] : Toolbar;
Typography = Typography && Typography.hasOwnProperty('default') ? Typography['default'] : Typography;
var reactDom__default = 'default' in reactDom ? reactDom['default'] : reactDom;
Popover = Popover && Popover.hasOwnProperty('default') ? Popover['default'] : Popover;
Paper = Paper && Paper.hasOwnProperty('default') ? Paper['default'] : Paper;
Tab = Tab && Tab.hasOwnProperty('default') ? Tab['default'] : Tab;
Tabs = Tabs && Tabs.hasOwnProperty('default') ? Tabs['default'] : Tabs;
/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.
See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */
/* global Reflect, Promise */
var extendStatics = function(d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
function __extends(d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
}
var __assign = function() {
__assign = Object.assign || function __assign(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
function __rest(s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)
t[p[i]] = s[p[i]];
return t;
}
var findClosestEnabledDate = function (_a) {
var date = _a.date,
utils = _a.utils,
minDate = _a.minDate,
maxDate = _a.maxDate,
disableFuture = _a.disableFuture,
disablePast = _a.disablePast,
shouldDisableDate = _a.shouldDisableDate;
var today = utils.startOfDay(utils.date());
minDate = minDate && utils.date(minDate);
maxDate = maxDate && utils.date(maxDate);
if (disablePast && utils.isBefore(minDate, today)) {
minDate = today;
}
if (disableFuture && utils.isAfter(maxDate, today)) {
maxDate = today;
}
var forward = date;
var backward = date;
if (utils.isBefore(date, minDate)) {
forward = utils.date(minDate);
backward = null;
}
if (utils.isAfter(date, maxDate)) {
if (backward) {
backward = utils.date(maxDate);
}
forward = null;
}
while (forward || backward) {
if (forward && utils.isAfter(forward, maxDate)) {
forward = null;
}
if (backward && utils.isBefore(backward, minDate)) {
backward = null;
}
if (forward) {
if (!shouldDisableDate(forward)) {
return forward;
}
forward = utils.addDays(forward, 1);
}
if (backward) {
if (!shouldDisableDate(backward)) {
return backward;
}
backward = utils.addDays(backward, -1);
}
}
return null;
};
var isYearOnlyView = function (views) {
return views.length === 1 && views[0] === 'year';
};
var isYearAndMonthViews = function (views) {
return views.length === 2 && views.includes('month') && views.includes('year');
};
var getFormatByViews = function (views, utils) {
if (isYearOnlyView(views)) {
return utils.yearFormat;
}
if (isYearAndMonthViews(views)) {
return utils.yearMonthFormat;
}
return utils.dateFormat;
};
var date = PropTypes$1.oneOfType([PropTypes$1.object, PropTypes$1.string, PropTypes$1.number, PropTypes$1.instanceOf(Date)]);
var datePickerView = PropTypes$1.oneOf(['year', 'month', 'day']);
var DomainPropTypes = {
date: date,
datePickerView: datePickerView
};
var MuiPickersContext = React.createContext(null); // TODO remove in v3.0
var MuiPickersContextConsumer = MuiPickersContext.Consumer;
var MuiPickersUtilsProvider =
/** @class */
function (_super) {
__extends(MuiPickersUtilsProvider, _super);
function MuiPickersUtilsProvider() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.state = {
utils: null
};
return _this;
}
MuiPickersUtilsProvider.getDerivedStateFromProps = function (_a) {
var Utils = _a.utils,
locale = _a.locale,
moment = _a.moment;
return {
utils: new Utils({
locale: locale,
moment: moment
})
};
};
MuiPickersUtilsProvider.prototype.render = function () {
return React.createElement(MuiPickersContext.Provider, {
value: this.state.utils,
children: this.props.children
});
};
MuiPickersUtilsProvider.propTypes = {
utils: PropTypes$1.func.isRequired,
locale: PropTypes$1.oneOfType([PropTypes$1.object, PropTypes$1.string]),
children: PropTypes$1.oneOfType([PropTypes$1.element.isRequired, PropTypes$1.arrayOf(PropTypes$1.element.isRequired)]).isRequired,
moment: PropTypes$1.func
};
return MuiPickersUtilsProvider;
}(React.Component);
var checkUtils = function (utils) {
if (!utils) {
// tslint:disable-next-line
throw new Error('Can not find utils in context. You either a) forgot to wrap your component tree in MuiPickersUtilsProvider; or b) mixed named and direct file imports. Recommendation: use named imports from the module index.');
}
};
var withUtils = function () {
return function (Component) {
var WithUtils = function (props) {
return React.createElement(MuiPickersContext.Consumer, null, function (utils) {
checkUtils(utils);
return React.createElement(Component, __assign({
utils: utils
}, props));
});
};
WithUtils.displayName = "WithUtils(" + (Component.displayName || Component.name) + ")";
return WithUtils;
};
};
var getInitialDate = function (_a) {
var utils = _a.utils,
value = _a.value,
initialFocusedDate = _a.initialFocusedDate;
var initialDate = value || initialFocusedDate || utils.date();
var date = utils.date(initialDate);
return date && utils.isValid(date) ? date : utils.date();
};
var BasePicker =
/** @class */
function (_super) {
__extends(BasePicker, _super);
function BasePicker() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.state = {
date: getInitialDate(_this.props),
isAccepted: false
};
_this.changeDate = function (date, callback) {
return _this.setState({
date: date
}, callback);
};
_this.handleAcceptedChange = function (isAccepted, callback) {
return _this.setState({
isAccepted: isAccepted
}, callback);
};
_this.handleClear = function () {
return _this.props.onChange(null);
};
_this.handleAccept = function () {
return _this.props.onChange(_this.state.date);
};
_this.handleSetTodayDate = function () {
return _this.handleChange(_this.props.utils.date(), false);
};
_this.handleTextFieldChange = function (date) {
var _a = _this.props,
onChange = _a.onChange,
utils = _a.utils,
mergePreviousDateOnChange = _a.mergePreviousDateOnChange;
if (mergePreviousDateOnChange) {
date = utils.mergeDateAndTime(_this.state.date, date);
}
if (date === null) {
onChange(null);
} else {
_this.changeDate(date, function () {
return onChange(date);
});
}
};
_this.pick12hOr24hFormat = function (default12hFormat, default24hFormat) {
var _a = _this.props,
format = _a.format,
ampm = _a.ampm;
if (format) {
return format;
}
return ampm ? default12hFormat : default24hFormat;
};
_this.handleChange = function (newDate, isFinish) {
if (isFinish === void 0) {
isFinish = true;
}
var _a = _this.props,
autoOk = _a.autoOk,
onChange = _a.onChange;
_this.changeDate(newDate, function () {
if (isFinish && autoOk) {
onChange(newDate); // pass down accept true, and make it false in the next tick
_this.handleAcceptedChange(true, function () {
return _this.handleAcceptedChange(false);
});
}
});
};
_this.handleDismiss = function () {
_this.setState({
date: getInitialDate(_this.props)
});
};
return _this;
}
BasePicker.prototype.componentDidUpdate = function (prevProps) {
var _a = this.props,
utils = _a.utils,
value = _a.value,
initialFocusedDate = _a.initialFocusedDate;
if (prevProps.value !== value || prevProps.utils.locale !== utils.locale || prevProps.initialFocusedDate !== initialFocusedDate) {
this.changeDate(getInitialDate(this.props));
}
};
BasePicker.prototype.render = function () {
return this.props.children(__assign({}, this.state, {
utils: this.props.utils,
changeDate: this.changeDate,
handleAcceptedChange: this.handleAcceptedChange,
handleClear: this.handleClear,
handleAccept: this.handleAccept,
handleDismiss: this.handleDismiss,
handleSetTodayDate: this.handleSetTodayDate,
handleTextFieldChange: this.handleTextFieldChange,
pick12hOr24hFormat: this.pick12hOr24hFormat,
handleChange: this.handleChange
}));
};
BasePicker.propTypes = {
value: DomainPropTypes.date,
onChange: PropTypes$1.func.isRequired,
autoOk: PropTypes$1.bool,
initialFocusedDate: PropTypes$1.any
};
BasePicker.defaultProps = {
value: new Date(),
autoOK: false,
ampm: true
};
return BasePicker;
}(React.Component);
var BasePicker$1 = withUtils()(BasePicker);
var getDisplayDate = function (_a) {
var utils = _a.utils,
value = _a.value,
format = _a.format,
invalidLabel = _a.invalidLabel,
emptyLabel = _a.emptyLabel,
labelFunc = _a.labelFunc;
var isEmpty = value === null;
var date = utils.date(value);
if (labelFunc) {
return labelFunc(isEmpty ? null : date, invalidLabel);
}
if (isEmpty) {
return emptyLabel;
}
return utils.isValid(date) ? utils.format(date, format) : invalidLabel;
};
var getError = function (value, props) {
var utils = props.utils,
maxDate = props.maxDate,
minDate = props.minDate,
disablePast = props.disablePast,
disableFuture = props.disableFuture,
maxDateMessage = props.maxDateMessage,
minDateMessage = props.minDateMessage,
invalidDateMessage = props.invalidDateMessage; // if null - do not show error
if (utils.isNull(value)) {
return '';
}
if (!utils.isValid(value)) {
return invalidDateMessage;
}
if (maxDate && utils.isAfter(value, utils.endOfDay(utils.date(maxDate))) || disableFuture && utils.isAfter(value, utils.endOfDay(utils.date()))) {
return maxDateMessage;
}
if (minDate && utils.isBefore(value, utils.startOfDay(utils.date(minDate))) || disablePast && utils.isBefore(value, utils.startOfDay(utils.date()))) {
return minDateMessage;
}
return '';
};
var KeyboardIcon = function (props) {
return React__default.createElement(SvgIcon, __assign({}, props), React__default.createElement("path", {
d: "M17 12h-5v5h5v-5zM16 1v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1h-2zm3 18H5V8h14v11z"
}), React__default.createElement("path", {
fill: "none",
d: "M0 0h24v24H0z"
}));
};
var commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
function unwrapExports (x) {
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x.default : x;
}
function createCommonjsModule(fn, module) {
return module = { exports: {} }, fn(module, module.exports), module.exports;
}
var reactTextMask = createCommonjsModule(function (module, exports) {
!function(e,t){module.exports=t(React__default);}(commonjsGlobal,function(e){return function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={exports:{},id:n,loaded:!1};return e[n].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var r={};return t.m=e,t.c=r,t.p="",t(0)}([function(e,t,r){function n(e){return e&&e.__esModule?e:{default:e}}function o(e,t){var r={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return !t||"object"!=typeof t&&"function"!=typeof t?e:t}function u(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t);}Object.defineProperty(t,"__esModule",{value:!0}),t.conformToMask=void 0;var s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n]);}return e},l=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n);}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}(),f=r(3);Object.defineProperty(t,"conformToMask",{enumerable:!0,get:function(){return n(f).default}});var c=r(11),p=n(c),d=r(9),h=n(d),v=r(5),y=n(v),m=r(2),b=function(e){function t(){var e;i(this,t);for(var r=arguments.length,n=Array(r),o=0;o<r;o++)n[o]=arguments[o];var u=a(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(n)));return u.setRef=u.setRef.bind(u),u.onBlur=u.onBlur.bind(u),u.onChange=u.onChange.bind(u),u}return u(t,e),l(t,[{key:"setRef",value:function(e){this.inputElement=e;}},{key:"initTextMask",value:function(){var e=this.props,t=this.props.value;this.textMaskInputElement=(0, y.default)(s({inputElement:this.inputElement},e)),this.textMaskInputElement.update(t);}},{key:"componentDidMount",value:function(){this.initTextMask();}},{key:"componentDidUpdate",value:function(e){var t=this.props,r=t.value,n=t.pipe,o=t.mask,i=t.guide,a=t.placeholderChar,u=t.showMask,s={guide:i,placeholderChar:a,showMask:u},l="function"==typeof n&&"function"==typeof e.pipe?n.toString()!==e.pipe.toString():(0, m.isNil)(n)&&!(0, m.isNil)(e.pipe)||!(0, m.isNil)(n)&&(0, m.isNil)(e.pipe),f=o.toString()!==e.mask.toString(),c=Object.keys(s).some(function(t){return s[t]!==e[t]})||f||l,p=r!==this.inputElement.value;(p||c)&&this.initTextMask();}},{key:"render",value:function e(){var t=this.props,e=t.render,r=o(t,["render"]);return delete r.mask,delete r.guide,delete r.pipe,delete r.placeholderChar,delete r.keepCharPositions,delete r.value,delete r.onBlur,delete r.onChange,delete r.showMask,e(this.setRef,s({onBlur:this.onBlur,onChange:this.onChange,defaultValue:this.props.value},r))}},{key:"onChange",value:function(e){this.textMaskInputElement.update(),"function"==typeof this.props.onChange&&this.props.onChange(e);}},{key:"onBlur",value:function(e){"function"==typeof this.props.onBlur&&this.props.onBlur(e);}}]),t}(p.default.PureComponent);t.default=b,b.propTypes={mask:h.default.oneOfType([h.default.array,h.default.func,h.default.bool,h.default.shape({mask:h.default.oneOfType([h.default.array,h.default.func]),pipe:h.default.func})]).isRequired,guide:h.default.bool,value:h.default.oneOfType([h.default.string,h.default.number]),pipe:h.default.func,placeholderChar:h.default.string,keepCharPositions:h.default.bool,showMask:h.default.bool},b.defaultProps={render:function(e,t){return p.default.createElement("input",s({ref:e},t))}};},function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.placeholderChar="_",t.strFunction="function";},function(e,t,r){function n(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l.placeholderChar;if(!o(e))throw new Error("Text-mask:convertMaskToPlaceholder; The mask property must be an array.");if(e.indexOf(t)!==-1)throw new Error("Placeholder character must not be used as part of the mask. Please specify a character that is not present in your mask as your placeholder character.\n\n"+("The placeholder character that was received is: "+JSON.stringify(t)+"\n\n")+("The mask that was received is: "+JSON.stringify(e)));return e.map(function(e){return e instanceof RegExp?t:e}).join("")}function o(e){return Array.isArray&&Array.isArray(e)||e instanceof Array}function i(e){return "string"==typeof e||e instanceof String}function a(e){return "number"==typeof e&&void 0===e.length&&!isNaN(e)}function u(e){return "undefined"==typeof e||null===e}function s(e){for(var t=[],r=void 0;r=e.indexOf(c),r!==-1;)t.push(r),e.splice(r,1);return {maskWithoutCaretTraps:e,indexes:t}}Object.defineProperty(t,"__esModule",{value:!0}),t.convertMaskToPlaceholder=n,t.isArray=o,t.isString=i,t.isNumber=a,t.isNil=u,t.processCaretTraps=s;var l=r(1),f=[],c="[]";},function(e,t,r){function n(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:s,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:u,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!(0, i.isArray)(t)){if(("undefined"==typeof t?"undefined":o(t))!==a.strFunction)throw new Error("Text-mask:conformToMask; The mask property must be an array.");t=t(e,r),t=(0, i.processCaretTraps)(t).maskWithoutCaretTraps;}var n=r.guide,l=void 0===n||n,f=r.previousConformedValue,c=void 0===f?s:f,p=r.placeholderChar,d=void 0===p?a.placeholderChar:p,h=r.placeholder,v=void 0===h?(0, i.convertMaskToPlaceholder)(t,d):h,y=r.currentCaretPosition,m=r.keepCharPositions,b=l===!1&&void 0!==c,g=e.length,k=c.length,C=v.length,O=t.length,T=g-k,P=T>0,x=y+(P?-T:0),w=x+Math.abs(T);if(m===!0&&!P){for(var S=s,_=x;_<w;_++)v[_]===d&&(S+=d);e=e.slice(0,x)+S+e.slice(x,g);}for(var M=e.split(s).map(function(e,t){return {char:e,isNew:t>=x&&t<w}}),j=g-1;j>=0;j--){var E=M[j].char;if(E!==d){var R=j>=x&&k===O;E===v[R?j-T:j]&&M.splice(j,1);}}var V=s,N=!1;e:for(var A=0;A<C;A++){var B=v[A];if(B===d){if(M.length>0)for(;M.length>0;){var I=M.shift(),F=I.char,q=I.isNew;if(F===d&&b!==!0){V+=d;continue e}if(t[A].test(F)){if(m===!0&&q!==!1&&c!==s&&l!==!1&&P){for(var D=M.length,L=null,W=0;W<D;W++){var J=M[W];if(J.char!==d&&J.isNew===!1)break;if(J.char===d){L=W;break}}null!==L?(V+=F,M.splice(L,1)):A--;}else V+=F;continue e}N=!0;}b===!1&&(V+=v.substr(A,C));break}V+=B;}if(b&&P===!1){for(var U=null,H=0;H<V.length;H++)v[H]===d&&(U=H);V=null!==U?V.substr(0,U+1):s;}return {conformedValue:V,meta:{someCharsRejected:N}}}Object.defineProperty(t,"__esModule",{value:!0});var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.default=n;var i=r(2),a=r(1),u=[],s="";},function(e,t){function r(e){var t=e.previousConformedValue,r=void 0===t?o:t,i=e.previousPlaceholder,a=void 0===i?o:i,u=e.currentCaretPosition,s=void 0===u?0:u,l=e.conformedValue,f=e.rawValue,c=e.placeholderChar,p=e.placeholder,d=e.indexesOfPipedChars,h=void 0===d?n:d,v=e.caretTrapIndexes,y=void 0===v?n:v;if(0===s||!f.length)return 0;var m=f.length,b=r.length,g=p.length,k=l.length,C=m-b,O=C>0,T=0===b,P=C>1&&!O&&!T;if(P)return s;var x=O&&(r===l||l===p),w=0,S=void 0,_=void 0;if(x)w=s-C;else{var M=l.toLowerCase(),j=f.toLowerCase(),E=j.substr(0,s).split(o),R=E.filter(function(e){return M.indexOf(e)!==-1});_=R[R.length-1];var V=a.substr(0,R.length).split(o).filter(function(e){return e!==c}).length,N=p.substr(0,R.length).split(o).filter(function(e){return e!==c}).length,A=N!==V,B=void 0!==a[R.length-1]&&void 0!==p[R.length-2]&&a[R.length-1]!==c&&a[R.length-1]!==p[R.length-1]&&a[R.length-1]===p[R.length-2];!O&&(A||B)&&V>0&&p.indexOf(_)>-1&&void 0!==f[s]&&(S=!0,_=f[s]);for(var I=h.map(function(e){return M[e]}),F=I.filter(function(e){return e===_}).length,q=R.filter(function(e){return e===_}).length,D=p.substr(0,p.indexOf(c)).split(o).filter(function(e,t){return e===_&&f[t]!==e}).length,L=D+q+F+(S?1:0),W=0,J=0;J<k;J++){var U=M[J];if(w=J+1,U===_&&W++,W>=L)break}}if(O){for(var H=w,Y=w;Y<=g;Y++)if(p[Y]===c&&(H=Y),p[Y]===c||y.indexOf(Y)!==-1||Y===g)return H}else if(S){for(var z=w-1;z>=0;z--)if(l[z]===_||y.indexOf(z)!==-1||0===z)return z}else for(var G=w;G>=0;G--)if(p[G-1]===c||y.indexOf(G)!==-1||0===G)return G}Object.defineProperty(t,"__esModule",{value:!0}),t.default=r;var n=[],o="";},function(e,t,r){function n(e){return e&&e.__esModule?e:{default:e}}function o(e){var t={previousConformedValue:void 0,previousPlaceholder:void 0};return {state:t,update:function(r){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,o=n.inputElement,l=n.mask,c=n.guide,y=n.pipe,b=n.placeholderChar,g=void 0===b?h.placeholderChar:b,k=n.keepCharPositions,C=void 0!==k&&k,O=n.showMask,T=void 0!==O&&O;if("undefined"==typeof r&&(r=o.value),r!==t.previousConformedValue){("undefined"==typeof l?"undefined":s(l))===m&&void 0!==l.pipe&&void 0!==l.mask&&(y=l.pipe,l=l.mask);var P=void 0,x=void 0;if(l instanceof Array&&(P=(0, d.convertMaskToPlaceholder)(l,g)),l!==!1){var w=a(r),S=o.selectionEnd,_=t.previousConformedValue,M=t.previousPlaceholder,j=void 0;if(("undefined"==typeof l?"undefined":s(l))===h.strFunction){if(x=l(w,{currentCaretPosition:S,previousConformedValue:_,placeholderChar:g}),x===!1)return;var E=(0, d.processCaretTraps)(x),R=E.maskWithoutCaretTraps,V=E.indexes;x=R,j=V,P=(0, d.convertMaskToPlaceholder)(x,g);}else x=l;var N={previousConformedValue:_,guide:c,placeholderChar:g,pipe:y,placeholder:P,currentCaretPosition:S,keepCharPositions:C},A=(0, p.default)(w,x,N),B=A.conformedValue,I=("undefined"==typeof y?"undefined":s(y))===h.strFunction,F={};I&&(F=y(B,u({rawValue:w},N)),F===!1?F={value:_,rejected:!0}:(0, d.isString)(F)&&(F={value:F}));var q=I?F.value:B,D=(0, f.default)({previousConformedValue:_,previousPlaceholder:M,conformedValue:q,placeholder:P,rawValue:w,currentCaretPosition:S,placeholderChar:g,indexesOfPipedChars:F.indexesOfPipedChars,caretTrapIndexes:j}),L=q===P&&0===D,W=T?P:v,J=L?W:q;t.previousConformedValue=J,t.previousPlaceholder=P,o.value!==J&&(o.value=J,i(o,D));}}}}}function i(e,t){document.activeElement===e&&(b?g(function(){return e.setSelectionRange(t,t,y)},0):e.setSelectionRange(t,t,y));}function a(e){if((0, d.isString)(e))return e;if((0, d.isNumber)(e))return String(e);if(void 0===e||null===e)return v;throw new Error("The 'value' provided to Text Mask needs to be a string or a number. The value received was:\n\n "+JSON.stringify(e))}Object.defineProperty(t,"__esModule",{value:!0});var u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n]);}return e},s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.default=o;var l=r(4),f=n(l),c=r(3),p=n(c),d=r(2),h=r(1),v="",y="none",m="object",b="undefined"!=typeof navigator&&/Android/i.test(navigator.userAgent),g="undefined"!=typeof requestAnimationFrame?requestAnimationFrame:setTimeout;},function(e,t){function r(e){return function(){return e}}var n=function(){};n.thatReturns=r,n.thatReturnsFalse=r(!1),n.thatReturnsTrue=r(!0),n.thatReturnsNull=r(null),n.thatReturnsThis=function(){return this},n.thatReturnsArgument=function(e){return e},e.exports=n;},function(e,t,r){function n(e,t,r,n,i,a,u,s){if(!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var f=[r,n,i,a,u,s],c=0;l=new Error(t.replace(/%s/g,function(){return f[c++]})),l.name="Invariant Violation";}throw l.framesToPop=1,l}}e.exports=n;},function(e,t,r){var n=r(6),o=r(7),i=r(10);e.exports=function(){function e(e,t,r,n,a,u){u!==i&&o(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");}function t(){return e}e.isRequired=e;var r={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t};return r.checkPropTypes=n,r.PropTypes=r,r};},function(e,t,r){e.exports=r(8)();},function(e,t){var r="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";e.exports=r;},function(t,r){t.exports=e;}])});
});
var MaskedInput = unwrapExports(reactTextMask);
var reactTextMask_1 = reactTextMask.reactTextMask;
var Input =
/** @class */
function (_super) {
__extends(Input, _super);
function Input() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.createInputRef = function (ref) {
var inputRef = _this.props.inputRef;
if (inputRef && typeof inputRef === 'function') {
// @ts-ignore inputElement exists in Masked input. Issue in typings
inputRef(ref ? ref.inputElement : null);
}
};
return _this;
}
Input.prototype.render = function () {
var _a = this.props,
inputRef = _a.inputRef,
keepCharPositions = _a.keepCharPositions,
rest = __rest(_a, ["inputRef", "keepCharPositions"]);
return this.props.mask ? React.createElement(MaskedInput, __assign({}, rest, {
ref: this.createInputRef,
keepCharPositions: keepCharPositions
})) : React.createElement("input", __assign({}, rest, {
ref: inputRef
}));
};
Input.propTypes = {
mask: PropTypes$1.any,
inputRef: PropTypes$1.func.isRequired
};
return Input;
}(React.PureComponent);
var DateTextField =
/** @class */
function (_super) {
__extends(DateTextField, _super);
function DateTextField() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.state = DateTextField.getStateFromProps(_this.props);
_this.commitUpdates = function (value) {
var _a = _this.props,
onChange = _a.onChange,
clearable = _a.clearable,
onClear = _a.onClear,
utils = _a.utils,
format = _a.format,
onError = _a.onError;
if (value === '') {
if (_this.props.value === null) {
_this.setState(DateTextField.getStateFromProps(_this.props));
} else if (clearable && onClear) {
onClear();
}
return;
}
var oldValue = utils.date(_this.state.value);
var newValue = utils.parse(value, format);
var error = getError(newValue, _this.props);
_this.setState({
error: error,
displayValue: value,
value: error ? newValue : oldValue
}, function () {
if (!error && !utils.isEqual(newValue, oldValue)) {
onChange(newValue);
}
if (error && onError) {
onError(newValue, error);
}
});
};
_this.handleBlur = function (e) {
if (_this.props.keyboard) {
e.preventDefault();
e.stopPropagation();
_this.commitUpdates(e.target.value);
if (_this.props.onBlur) {
_this.props.onBlur(e);
}
}
};
_this.handleChange = function (e) {
var _a = _this.props,
utils = _a.utils,
format = _a.format,
onInputChange = _a.onInputChange;
var parsedValue = utils.parse(e.target.value, format);
if (onInputChange) {
onInputChange(e);
}
_this.setState({
displayValue: e.target.value,
error: getError(parsedValue, _this.props)
});
};
_this.handleFocus = function (e) {
e.stopPropagation();
e.preventDefault();
if (!_this.props.keyboard) {
_this.openPicker(e);
}
};
_this.handleKeyPress = function (e) {
if (e.key === 'Enter') {
if (!_this.props.disableOpenOnEnter) {
_this.openPicker(e);
} else {
// @ts-ignore TODO check me
_this.commitUpdates(e.target.value);
}
}
};
_this.openPicker = function (e) {
var _a = _this.props,
disabled = _a.disabled,
onClick = _a.onClick;
if (!disabled) {
onClick(e);
}
};
return _this;
}
DateTextField.prototype.componentDidUpdate = function (prevProps) {
var utils = this.props.utils;
if (!utils.isEqual(utils.date(this.props.value), utils.date(prevProps.value)) || prevProps.format !== this.props.format || prevProps.maxDate !== this.props.maxDate || prevProps.minDate !== this.props.minDate || prevProps.emptyLabel !== this.props.emptyLabel || prevProps.labelFunc !== this.props.labelFunc || prevProps.utils !== this.props.utils) {
this.setState(DateTextField.getStateFromProps(this.props));
}
};
DateTextField.prototype.render = function () {
var _a = this.props,
adornmentPosition = _a.adornmentPosition,
clearable = _a.clearable,
disabled = _a.disabled,
disableFuture = _a.disableFuture,
disableOpenOnEnter = _a.disableOpenOnEnter,
disablePast = _a.disablePast,
emptyLabel = _a.emptyLabel,
format = _a.format,
InputAdornmentProps = _a.InputAdornmentProps,
InputProps = _a.InputProps,
invalidDateMessage = _a.invalidDateMessage,
invalidLabel = _a.invalidLabel,
keyboard = _a.keyboard,
KeyboardButtonProps = _a.KeyboardButtonProps,
keyboardIcon = _a.keyboardIcon,
labelFunc = _a.labelFunc,
mask = _a.mask,
maxDate = _a.maxDate,
maxDateMessage = _a.maxDateMessage,
minDate = _a.minDate,
minDateMessage = _a.minDateMessage,
onBlur = _a.onBlur,
onClear = _a.onClear,
onClick = _a.onClick,
pipe = _a.pipe,
keepCharPositions = _a.keepCharPositions,
TextFieldComponent = _a.TextFieldComponent,
utils = _a.utils,
value = _a.value,
onInputChange = _a.onInputChange,
other = __rest(_a, ["adornmentPosition", "clearable", "disabled", "disableFuture", "disableOpenOnEnter", "disablePast", "emptyLabel", "format", "InputAdornmentProps", "InputProps", "invalidDateMessage", "invalidLabel", "keyboard", "KeyboardButtonProps", "keyboardIcon", "labelFunc", "mask", "maxDate", "maxDateMessage", "minDate", "minDateMessage", "onBlur", "onClear", "onClick", "pipe", "keepCharPositions", "TextFieldComponent", "utils", "value", "onInputChange"]);
var _b = this.state,
displayValue = _b.displayValue,
error = _b.error;
var localInputProps = {
inputComponent: Input,
inputProps: {
mask: !keyboard ? null : mask,
pipe: !keyboard ? null : pipe,
keepCharPositions: !keyboard ? undefined : keepCharPositions,
readOnly: !keyboard
}
};
if (keyboard) {
localInputProps[adornmentPosition + "Adornment"] = React.createElement(InputAdornment, __assign({
position: adornmentPosition
}, InputAdornmentProps), React.createElement(IconButton, __assign({
disabled: disabled,
onClick: this.openPicker
}, KeyboardButtonProps), keyboardIcon));
}
var Component = TextFieldComponent;
var inputProps = __assign({}, localInputProps, InputProps);
return React.createElement(Component, __assign({
onClick: this.handleFocus,
error: !!error,
helperText: error,
onKeyPress: this.handleKeyPress,
onBlur: this.handleBlur,
disabled: disabled,
value: displayValue
}, other, {
onError: undefined,
onChange: this.handleChange,
InputProps: inputProps
}));
};
DateTextField.propTypes = {
value: PropTypes$1.oneOfType([PropTypes$1.object, PropTypes$1.string, PropTypes$1.number, PropTypes$1.instanceOf(Date)]),
minDate: DomainPropTypes.date,
maxDate: DomainPropTypes.date,
disablePast: PropTypes$1.bool,
disableFuture: PropTypes$1.bool,
format: PropTypes$1.string,
onBlur: PropTypes$1.func,
onChange: PropTypes$1.func.isRequired,
onClear: PropTypes$1.func,
onClick: PropTypes$1.func.isRequired,
clearable: PropTypes$1.bool,
utils: PropTypes$1.object.isRequired,
InputProps: PropTypes$1.shape({}),
mask: PropTypes$1.any,
minDateMessage: PropTypes$1.node,
maxDateMessage: PropTypes$1.node,
invalidLabel: PropTypes$1.string,
emptyLabel: PropTypes$1.string,
labelFunc: PropTypes$1.func,
keyboard: PropTypes$1.bool,
keyboardIcon: PropTypes$1.node,
disableOpenOnEnter: PropTypes$1.bool,
invalidDateMessage: PropTypes$1.node,
TextFieldComponent: PropTypes$1.oneOfType([PropTypes$1.string, PropTypes$1.func, PropTypes$1.node]),
InputAdornmentProps: PropTypes$1.object,
KeyboardButtonProps: PropTypes$1.object,
adornmentPosition: PropTypes$1.oneOf(['start', 'end']),
onError: PropTypes$1.func,
onInputChange: PropTypes$1.func,
pipe: PropTypes$1.func,
keepCharPositions: PropTypes$1.bool
};
DateTextField.defaultProps = {
disabled: false,
invalidLabel: 'Unknown',
emptyLabel: '',
keyboard: false,
keyboardIcon: React.createElement(KeyboardIcon, null),
disableOpenOnEnter: false,
invalidDateMessage: 'Invalid Date Format',
clearable: false,
disablePast: false,
disableFuture: false,
minDate: new Date('1900-01-01'),
maxDate: new Date('2100-01-01'),
minDateMessage: 'Date should not be before minimal date',
maxDateMessage: 'Date should not be after maximal date',
TextFieldComponent: TextField,
InputAdornmentProps: {},
KeyboardButtonProps: {},
adornmentPosition: 'end',
keepCharPositions: false
};
DateTextField.getStateFromProps = function (props) {
return {
value: props.value,
displayValue: getDisplayDate(props),
error: getError(props.utils.date(props.value), props)
};
};
return DateTextField;
}(React.PureComponent);
var DateTextField$1 = withUtils()(DateTextField);
function toVal(mix) {
var k, y, str='';
if (mix) {
if (typeof mix === 'object') {
for (k in mix) {
if (mix[k] && (y = toVal(!!mix.push ? mix[k] : k))) {
str && (str += ' ');
str += y;
}
}
} else if (typeof mix !== 'boolean') {
str && (str += ' ');
str += mix;
}
}
return str;
}
function clsx () {
var i=0, x, str='';
while (i < arguments.length) {
if (x = toVal(arguments[i++])) {
str && (str += ' ');
str += x;
}
}
return str;
}
function _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
}
var classCallCheck = _classCallCheck;
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);
}
}
function _createClass(Constructor, protoProps, staticProps) {
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
if (staticProps) _defineProperties(Constructor, staticProps);
return Constructor;
}
var createClass = _createClass;
var _typeof_1 = createCommonjsModule(function (module) {
function _typeof2(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); }
function _typeof(obj) {
if (typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol") {
module.exports = _typeof = function _typeof(obj) {
return _typeof2(obj);
};
} else {
module.exports = _typeof = function _typeof(obj) {
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : _typeof2(obj);
};
}
return _typeof(obj);
}
module.exports = _typeof;
});
function _assertThisInitialized(self) {
if (self === void 0) {
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
}
return self;
}
var assertThisInitialized = _assertThisInitialized;
function _possibleConstructorReturn(self, call) {
if (call && (_typeof_1(call) === "object" || typeof call === "function")) {
return call;
}
return assertThisInitialized(self);
}
var possibleConstructorReturn = _possibleConstructorReturn;
var getPrototypeOf = createCommonjsModule(function (module) {
function _getPrototypeOf(o) {
module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
return o.__proto__ || Object.getPrototypeOf(o);
};
return _getPrototypeOf(o);
}
module.exports = _getPrototypeOf;
});
var setPrototypeOf = createCommonjsModule(function (module) {
function _setPrototypeOf(o, p) {
module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
o.__proto__ = p;
return o;
};
return _setPrototypeOf(o, p);
}
module.exports = _setPrototypeOf;
});
function _inherits(subClass, superClass) {
if (typeof superClass !== "function" && superClass !== null) {
throw new TypeError("Super expression must either be null or a function");
}
subClass.prototype = Object.create(superClass && superClass.prototype, {
constructor: {
value: subClass,
writable: true,
configurable: true
}
});
if (superClass) setPrototypeOf(subClass, superClass);
}
var inherits = _inherits;
function _objectWithoutPropertiesLoose(source, excluded) {
if (source == null) return {};
var target = {};
var sourceKeys = Object.keys(source);
var key, i;
for (i = 0; i < sourceKeys.length; i++) {
key = sourceKeys[i];
if (excluded.indexOf(key) >= 0) continue;
target[key] = source[key];
}
return target;
}
var objectWithoutPropertiesLoose = _objectWithoutPropertiesLoose;
function _objectWithoutProperties(source, excluded) {
if (source == null) return {};
var target = objectWithoutPropertiesLoose(source, excluded);
var key, i;
if (Object.getOwnPropertySymbols) {
var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
for (i = 0; i < sourceSymbolKeys.length; i++) {
key = sourceSymbolKeys[i];
if (excluded.indexOf(key) >= 0) continue;
if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
target[key] = source[key];
}
}
return target;
}
var objectWithoutProperties = _objectWithoutProperties;
var _extends_1 = createCommonjsModule(function (module) {
function _extends() {
module.exports = _extends = Object.assign || function (target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];
for (var key in source) {
if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key];
}
}
}
return target;
};
return _extends.apply(this, arguments);
}
module.exports = _extends;
});
/**
* Copyright (c) 2014-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
var warning = function() {};
{
var printWarning = function printWarning(format, args) {
var len = arguments.length;
args = new Array(len > 1 ? len - 1 : 0);
for (var key = 1; key < len; key++) {
args[key - 1] = arguments[key];
}
var argIndex = 0;
var message = 'Warning: ' +
format.replace(/%s/g, function() {
return args[argIndex++];
});
if (typeof console !== 'undefined') {
console.error(message);
}
try {
// --- Welcome to debugging React ---
// This error was thrown as a convenience so that you can use this stack
// to find the callsite that caused this warning to fire.
throw new Error(message);
} catch (x) {}
};
warning = function(condition, format, args) {
var len = arguments.length;
args = new Array(len > 2 ? len - 2 : 0);
for (var key = 2; key < len; key++) {
args[key - 2] = arguments[key];
}
if (format === undefined) {
throw new Error(
'`warning(condition, format, ...args)` requires a warning ' +
'message argument'
);
}
if (!condition) {
printWarning.apply(null, [format].concat(args));
}
};
}
var warning_1 = warning;
var reactEventListener_cjs = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, '__esModule', { value: true });
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
var _classCallCheck = _interopDefault(classCallCheck);
var _createClass = _interopDefault(createClass);
var _possibleConstructorReturn = _interopDefault(possibleConstructorReturn);
var _getPrototypeOf = _interopDefault(getPrototypeOf);
var _inherits = _interopDefault(inherits);
var _typeof = _interopDefault(_typeof_1);
var _objectWithoutProperties = _interopDefault(objectWithoutProperties);
var _extends = _interopDefault(_extends_1);
var React = _interopDefault(React__default);
var PropTypes = _interopDefault(PropTypes$1__default);
var warning = _interopDefault(warning_1);
function defineProperty(object, property, attr) {
return Object.defineProperty(object, property, attr);
} // Passive options
// Inspired by https://github.com/Modernizr/Moder