UNPKG

@skbkontur/db-viewer-ui

Version:

Database Viewer with custom configuration

71 lines 2.89 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TimePicker = void 0; const tslib_1 = require("tslib"); const jsx_runtime_1 = require("react/jsx-runtime"); const edi_ui_1 = require("@skbkontur/edi-ui"); const react_ui_1 = require("@skbkontur/react-ui"); const react_1 = tslib_1.__importDefault(require("react")); function unlessNull(value, defaultValue) { if (value === null || value === undefined) { return defaultValue; } return value; } const emptyValue = ""; class TimePicker extends react_1.default.Component { constructor(props) { super(props); Object.defineProperty(this, "handleChange", { enumerable: true, configurable: true, writable: true, value: (value) => { this.setState({ value: value }); } }); Object.defineProperty(this, "handleBlur", { enumerable: true, configurable: true, writable: true, value: (e) => { const { defaultTime } = this.props; const { value } = this.state; const trimmed = value.endsWith(".") || value.endsWith(":") ? value.slice(0, -1) : value; if (edi_ui_1.TimeUtils.isCorrectTime(trimmed)) { this.props.onChange(e, trimmed); if (defaultTime === trimmed) { this.setState({ value: emptyValue }); } } else { this.setState({ value: emptyValue }); this.props.onChange(e, defaultTime || "00:00"); } } }); Object.defineProperty(this, "handleFocus", { enumerable: true, configurable: true, writable: true, value: () => { const { defaultTime } = this.props; if (!edi_ui_1.TimeUtils.isCorrectTime(this.state.value)) { this.setState({ value: defaultTime }); } } }); this.state = { value: unlessNull(props.value, emptyValue) }; } componentDidUpdate(prevProps) { if (prevProps.value !== this.props.value) { this.setState({ value: unlessNull(this.props.value, emptyValue) }); } } render() { const { disabled, warning, error, useSeconds, defaultTime } = this.props; return ((0, jsx_runtime_1.jsx)(react_ui_1.Input, { disabled: disabled, mask: useSeconds ? "99:99:99.999" : "99:99", value: this.state.value, width: useSeconds ? 96 : 58, error: error, placeholder: disabled ? undefined : defaultTime, onValueChange: this.handleChange, onBlur: this.handleBlur, onFocus: this.handleFocus, warning: warning })); } } exports.TimePicker = TimePicker; //# sourceMappingURL=TimePicker.js.map