UNPKG

krp-react-form-component

Version:

KRP React Component for Form Preview Component

170 lines (169 loc) 6.23 kB
"use strict"; require("core-js/modules/es.object.assign.js"); require("core-js/modules/es.weak-map.js"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; require("core-js/modules/web.dom-collections.iterator.js"); var _react = _interopRequireWildcard(require("react")); var _antd = require("antd"); var _propTypes = _interopRequireDefault(require("prop-types")); require("./CustomTimePicker.scss"); var _AppContext = require("../../../../context/AppContext"); var _CommonFormConstants = require("../../../../constants/CommonFormConstants"); var _moment = _interopRequireDefault(require("moment")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } const CustomTimePicker = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => { let { mode, name, required, lang, className, placeholder, format, minTime = "", maxTime = "", disabledHours, disabledMinutes, initState, formProps, formFieldName, errorMsg, handleTitleError, popupClassName } = _ref; const { resolveLocale } = (0, _react.useContext)(_AppContext.AppContext); const [open, setOpen] = (0, _react.useState)(false); const [value, setValue] = (0, _react.useState)(initState || null); const [prevValue, setPrevValue] = (0, _react.useState)(null); const handleOpenChange = () => { setOpen(true); setPrevValue(value); setValue(value); }; const handleConfirm = required => { if (value === null && required === 'yes') { formProps.setFields({ [formFieldName]: { value: null, errors: [new Error(errorMsg)] } }); } else { formProps.setFieldsValue({ [formFieldName]: value }); } handleTitleError(); setOpen(false); }; const handleClose = () => { setValue(prevValue); setOpen(false); }; const _onChange = (time, required) => { const min = (0, _moment.default)(minTime, _CommonFormConstants.CONSTANT.TIME_FORMAT); const max = (0, _moment.default)(maxTime, _CommonFormConstants.CONSTANT.TIME_FORMAT); if (minTime !== "" || maxTime !== "") { if (time.isBefore(min)) { time = min; } else if (time.isAfter(max)) { time = max; } } if (time === null && required === 'yes') { formProps.setFields({ [formFieldName]: { value: null, errors: [new Error(errorMsg)] } }); handleTitleError(); } setValue(time); if (mode !== "mobile") { formProps.setFieldsValue({ [formFieldName]: time }); } }; let attr = {}; if (mode === 'mobile') { attr = { initState: initState, formProps: formProps, formFieldName: formFieldName, errorMsg: errorMsg, handleTitleError: handleTitleError, popupClassName: "mobile-item-timepicker-popup ".concat(popupClassName), inputReadOnly: true, open: open, onOpenChange: handleOpenChange, // value: value, addon: () => /*#__PURE__*/_react.default.createElement("div", { className: "mobile-item-timepicker-extra-footer" }, /*#__PURE__*/_react.default.createElement("div", { className: "mobile-item-timepicker-extra-footer-container" }, /*#__PURE__*/_react.default.createElement(_antd.Button, { className: "mobile-item-timepicker-extra-footer-btn-left", icon: "close", shape: "circle", onClick: handleClose }), /*#__PURE__*/_react.default.createElement("div", { style: { marginLeft: 5 } }, resolveLocale('FORM_PREVIEW_TIMEPICKER_FOOTER_CLOSE'))), /*#__PURE__*/_react.default.createElement("div", { className: "mobile-item-timepicker-extra-footer-container" }, /*#__PURE__*/_react.default.createElement("div", { style: { marginRight: 5 } }, resolveLocale('FORM_PREVIEW_TIMEPICKER_FOOTER_OK')), /*#__PURE__*/_react.default.createElement(_antd.Button, { className: "mobile-item-timepicker-extra-footer-btn-right", icon: "check", shape: "circle", onClick: () => { handleConfirm(required); } }))) }; } return /*#__PURE__*/_react.default.createElement(_antd.TimePicker, _extends({ name: name, className: className, placeholder: placeholder, format: format, disabledHours: disabledHours, disabledMinutes: disabledMinutes, onChange: e => { _onChange(e, required); }, value: value }, attr)); }); CustomTimePicker.propTypes = { name: _propTypes.default.string, required: _propTypes.default.string, lang: _propTypes.default.string, className: _propTypes.default.string, placeholder: _propTypes.default.string, format: _propTypes.default.string, minTime: _propTypes.default.string, maxTime: _propTypes.default.string, disabledHours: _propTypes.default.func, disabledMinutes: _propTypes.default.func, initState: _propTypes.default.object, formProps: _propTypes.default.object, formFieldName: _propTypes.default.string, errorMsg: _propTypes.default.string, handleTitleError: _propTypes.default.func, popupClassName: _propTypes.default.string }; var _default = exports.default = CustomTimePicker;