UNPKG

material-ui-pickers

Version:

React components, that implements material design pickers for material-ui v1

1,028 lines (863 loc) 227 kB
(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