UNPKG

@skbkontur/cassandra-distributed-task-queue-ui

Version:

.NET library implementing distributed task queue machinery using Apache Cassandra

93 lines 3.88 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DatePicker = 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")); const DatePickerDefaultProps = { width: 120, minDate: "01.01.1900", maxDate: "31.12.2099", isHoliday: (_day, isWeekend) => isWeekend, }; const defaultTime = "00:00"; class DatePicker extends react_1.default.Component { constructor() { super(...arguments); Object.defineProperty(this, "state", { enumerable: true, configurable: true, writable: true, value: { date: "", } }); Object.defineProperty(this, "handleChange", { enumerable: true, configurable: true, writable: true, value: (newStringifiedDate) => { this.setState({ date: newStringifiedDate }); if (edi_ui_1.StringUtils.isNullOrWhitespace(newStringifiedDate)) { this.props.onChange(null); return; } if (!react_ui_1.DatePicker.validate(newStringifiedDate)) { return; } const newDate = this.convertStringToDate(newStringifiedDate); this.props.onChange(newDate); } }); Object.defineProperty(this, "convertStringToDate", { enumerable: true, configurable: true, writable: true, value: (newStringifiedDate) => { const { timeZone } = this.props; const date = edi_ui_1.DateUtils.formatDate(newStringifiedDate, "dd.MM.yyyy"); const ISODate = edi_ui_1.DateUtils.formatDate(date, "yyyy-MM-dd"); const time = this.props.defaultTime || defaultTime; const timeZoneOffset = edi_ui_1.TimeUtils.getTimeZoneOffsetOrDefault(timeZone); return new Date(`${ISODate}T${time}${edi_ui_1.TimeUtils.timeZoneOffsetToString(timeZoneOffset)}`); } }); Object.defineProperty(this, "convertDateToStringWithTimezone", { enumerable: true, configurable: true, writable: true, value: (date, timeZone) => { const timeZoneOffset = edi_ui_1.TimeUtils.getTimeZoneOffsetOrDefault(timeZone); return date ? edi_ui_1.DateUtils.formatDate(date, "dd.MM.yyyy", timeZoneOffset) : ""; } }); } componentDidMount() { const { value, timeZone } = this.props; const stringifiedDate = this.convertDateToStringWithTimezone(value, timeZone); this.setState({ date: stringifiedDate }); } componentDidUpdate(prevProps) { const { value, timeZone } = this.props; if (prevProps.value !== this.props.value) { const stringifiedDate = this.convertDateToStringWithTimezone(value, timeZone); this.setState({ date: stringifiedDate }); } } render() { const { minDate, maxDate, timeZone } = this.props; return (jsx_runtime_1.jsx(react_ui_1.DatePicker, Object.assign({}, DatePickerDefaultProps, this.props, { maxDate: this.convertDateToStringWithTimezone(maxDate, timeZone), minDate: this.convertDateToStringWithTimezone(minDate, timeZone), value: this.state.date, onValueChange: this.handleChange }), void 0)); } } exports.DatePicker = DatePicker; Object.defineProperty(DatePicker, "defaultProps", { enumerable: true, configurable: true, writable: true, value: { timeZone: edi_ui_1.TimeUtils.TimeZones.UTC, } }); //# sourceMappingURL=DatePicker.js.map