@elastic/eui
Version:
Elastic UI Component Library
139 lines (138 loc) • 9.9 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.EuiAbsoluteTab = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _react = _interopRequireWildcard(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _moment = _interopRequireDefault(require("moment"));
var _datemath = _interopRequireDefault(require("@elastic/datemath"));
var _date_picker = require("../../date_picker");
var _form = require("../../../form");
var _i18n = require("../../../i18n");
var _react2 = require("@emotion/react");
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0 and the Server Side Public License, v 1; you may not use this file except
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/ // eslint-disable-line import/named
var EuiAbsoluteTab = /*#__PURE__*/function (_Component) {
(0, _inherits2.default)(EuiAbsoluteTab, _Component);
var _super = _createSuper(EuiAbsoluteTab);
function EuiAbsoluteTab(props) {
var _this;
(0, _classCallCheck2.default)(this, EuiAbsoluteTab);
_this = _super.call(this, props);
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "state", void 0);
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleChange", function (date, event) {
var onChange = _this.props.onChange;
if (date === null) {
return;
}
onChange(date.toISOString(), event);
var valueAsMoment = (0, _moment.default)(date);
_this.setState({
valueAsMoment: valueAsMoment,
textInputValue: valueAsMoment.format(_this.props.dateFormat),
isTextInvalid: false
});
});
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleTextChange", function (event) {
var onChange = _this.props.onChange;
var valueAsMoment = (0, _moment.default)(event.target.value, _this.props.dateFormat, true);
var dateIsValid = valueAsMoment.isValid();
if (dateIsValid) {
onChange(valueAsMoment.toISOString(), event);
}
_this.setState({
textInputValue: event.target.value,
isTextInvalid: !dateIsValid,
valueAsMoment: dateIsValid ? valueAsMoment : null
});
});
var parsedValue = _datemath.default.parse(props.value, {
roundUp: props.roundUp
});
var _valueAsMoment = parsedValue && parsedValue.isValid() ? parsedValue : (0, _moment.default)();
var textInputValue = _valueAsMoment.locale(_this.props.locale || 'en').format(_this.props.dateFormat);
_this.state = {
isTextInvalid: false,
textInputValue: textInputValue,
valueAsMoment: _valueAsMoment
};
return _this;
}
(0, _createClass2.default)(EuiAbsoluteTab, [{
key: "render",
value: function render() {
var _this2 = this;
var _this$props = this.props,
dateFormat = _this$props.dateFormat,
timeFormat = _this$props.timeFormat,
locale = _this$props.locale,
utcOffset = _this$props.utcOffset,
labelPrefix = _this$props.labelPrefix;
var _this$state = this.state,
valueAsMoment = _this$state.valueAsMoment,
isTextInvalid = _this$state.isTextInvalid,
textInputValue = _this$state.textInputValue;
return (0, _react2.jsx)("div", null, (0, _react2.jsx)(_date_picker.EuiDatePicker, {
inline: true,
showTimeSelect: true,
shadow: false,
selected: valueAsMoment,
onChange: this.handleChange,
dateFormat: dateFormat,
timeFormat: timeFormat,
locale: locale,
utcOffset: utcOffset
}), (0, _react2.jsx)(_i18n.EuiI18n, {
token: "euiAbsoluteTab.dateFormatError",
default: "Expected format: {dateFormat}",
values: {
dateFormat: dateFormat
}
}, function (dateFormatError) {
return (0, _react2.jsx)(_form.EuiFormRow, {
className: "euiSuperDatePicker__absoluteDateFormRow",
isInvalid: isTextInvalid,
error: isTextInvalid ? dateFormatError : undefined
}, (0, _react2.jsx)(_form.EuiFieldText, {
compressed: true,
isInvalid: isTextInvalid,
value: textInputValue,
onChange: _this2.handleTextChange,
"data-test-subj": 'superDatePickerAbsoluteDateInput',
prepend: (0, _react2.jsx)(_form.EuiFormLabel, null, labelPrefix)
}));
}));
}
}]);
return EuiAbsoluteTab;
}(_react.Component);
exports.EuiAbsoluteTab = EuiAbsoluteTab;
EuiAbsoluteTab.propTypes = {
dateFormat: _propTypes.default.string.isRequired,
timeFormat: _propTypes.default.string.isRequired,
locale: _propTypes.default.any,
value: _propTypes.default.string.isRequired,
onChange: _propTypes.default.func.isRequired,
roundUp: _propTypes.default.bool.isRequired,
position: _propTypes.default.oneOf(["start", "end"]).isRequired,
labelPrefix: _propTypes.default.string.isRequired,
utcOffset: _propTypes.default.number
};