@skbkontur/cassandra-distributed-task-queue-ui
Version:
.NET library implementing distributed task queue machinery using Apache Cassandra
93 lines • 3.88 kB
JavaScript
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
;