decap-cms-widget-datetime 2.8.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,183 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _core = require("@emotion/core");
10
+ var _reactDatetime = _interopRequireDefault(require("react-datetime/css/react-datetime.css"));
11
+ var _reactDatetime2 = _interopRequireDefault(require("react-datetime"));
12
+ var _moment = _interopRequireDefault(require("moment"));
13
+ var _decapCmsUiDefault = require("decap-cms-ui-default");
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
16
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
17
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
18
+ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; } /** @jsx jsx */
19
+ var _ref = process.env.NODE_ENV === "production" ? {
20
+ name: "6zq5jn-NowButton",
21
+ styles: "position:absolute;right:20px;transform:translateY(-40px);width:fit-content;z-index:1;;label:NowButton;"
22
+ } : {
23
+ name: "6zq5jn-NowButton",
24
+ styles: "position:absolute;right:20px;transform:translateY(-40px);width:fit-content;z-index:1;;label:NowButton;",
25
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9EYXRlVGltZUNvbnRyb2wuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBWWMiLCJmaWxlIjoiLi4vLi4vc3JjL0RhdGVUaW1lQ29udHJvbC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBqc3gsIGNzcyB9IGZyb20gJ0BlbW90aW9uL2NvcmUnO1xuaW1wb3J0IHJlYWN0RGF0ZVRpbWVTdHlsZXMgZnJvbSAncmVhY3QtZGF0ZXRpbWUvY3NzL3JlYWN0LWRhdGV0aW1lLmNzcyc7XG5pbXBvcnQgRGF0ZVRpbWUgZnJvbSAncmVhY3QtZGF0ZXRpbWUnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgYnV0dG9ucyB9IGZyb20gJ2RlY2FwLWNtcy11aS1kZWZhdWx0JztcblxuZnVuY3Rpb24gTm93QnV0dG9uKHsgdCwgaGFuZGxlQ2hhbmdlIH0pIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMjBweDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00MHB4KTtcbiAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgYH1cbiAgICA+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICR7YnV0dG9ucy5idXR0b259XG4gICAgICAgICAgJHtidXR0b25zLndpZGdldH1cbiAgICAgICAgYH1cbiAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgIGhhbmRsZUNoYW5nZShtb21lbnQoKSk7XG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIHt0KCdlZGl0b3IuZWRpdG9yV2lkZ2V0cy5kYXRldGltZS5ub3cnKX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEYXRlVGltZUNvbnRyb2wgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGZpZWxkOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgZm9ySUQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgY2xhc3NOYW1lV3JhcHBlcjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIHNldEFjdGl2ZVN0eWxlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIHNldEluYWN0aXZlU3R5bGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdmFsdWU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5vYmplY3QsIFByb3BUeXBlcy5zdHJpbmddKSxcbiAgfTtcblxuICBnZXRGb3JtYXRzKCkge1xuICAgIGNvbnN0IHsgZmllbGQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgZm9ybWF0ID0gZmllbGQuZ2V0KCdmb3JtYXQnKTtcblxuICAgIC8vIGRhdGVGb3JtYXQgYW5kIHRpbWVGb3JtYXQgYXJlIHN0cmljdGx5IGZvciBtb2RpZnlpbmdcbiAgICAvLyBpbnB1dCBmaWVsZCB3aXRoIHRoZSBkYXRlL3RpbWUgcGlja2Vyc1xuICAgIGNvbnN0IGRhdGVGb3JtYXQgPSBmaWVsZC5nZXQoJ2RhdGVfZm9ybWF0Jyk7XG4gICAgLy8gc2hvdyB0aW1lLXBpY2tlcj8gZmFsc2UgaGlkZXMgaXQsIHRydWUgc2hvd3MgaXQgdXNpbmcgZGVmYXVsdCBmb3JtYXRcbiAgICBsZXQgdGltZUZvcm1hdCA9IGZpZWxkLmdldCgndGltZV9mb3JtYXQnKTtcbiAgICBpZiAodHlwZW9mIHRpbWVGb3JtYXQgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB0aW1lRm9ybWF0ID0gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgZm9ybWF0LFxuICAgICAgZGF0ZUZvcm1hdCxcbiAgICAgIHRpbWVGb3JtYXQsXG4gICAgfTtcbiAgfVxuXG4gIGdldERlZmF1bHRWYWx1ZSgpIHtcbiAgICBjb25zdCB7IGZpZWxkIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IGZpZWxkLmdldCgnZGVmYXVsdCcpO1xuICAgIHJldHVybiBkZWZhdWx0VmFsdWU7XG4gIH1cblxuICBnZXRQaWNrZXJVdGMoKSB7XG4gICAgY29uc3QgeyBmaWVsZCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBwaWNrZXJVdGMgPSBmaWVsZC5nZXQoJ3BpY2tlcl91dGMnKTtcbiAgICByZXR1cm4gcGlja2VyVXRjO1xuICB9XG5cbiAgZm9ybWF0cyA9IHRoaXMuZ2V0Rm9ybWF0cygpO1xuICBkZWZhdWx0VmFsdWUgPSB0aGlzLmdldERlZmF1bHRWYWx1ZSgpO1xuICBwaWNrZXJVdGMgPSB0aGlzLmdldFBpY2tlclV0YygpO1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAvKipcbiAgICAgKiBTZXQgdGhlIGN1cnJlbnQgZGF0ZSBhcyBkZWZhdWx0IHZhbHVlIGlmIG5vIHZhbHVlIGlzIHByb3ZpZGVkIGFuZCBkZWZhdWx0IGlzIGFic2VudC4gQW5cbiAgICAgKiBlbXB0eSBkZWZhdWx0IHN0cmluZyBtZWFucyB0aGUgdmFsdWUgaXMgaW50ZW50aW9uYWxseSBibGFuay5cbiAgICAgKi9cbiAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlQ2hhbmdlKHRoaXMuZGVmYXVsdFZhbHVlID09PSB1bmRlZmluZWQgPyBuZXcgRGF0ZSgpIDogdGhpcy5kZWZhdWx0VmFsdWUpO1xuICAgICAgfSwgMCk7XG4gICAgfVxuICB9XG5cbiAgLy8gRGF0ZSBpcyB2YWxpZCBpZiBkYXRldGltZSBpcyBhIG1vbWVudCBvciBEYXRlIG9iamVjdCBvdGhlcndpc2UgaXQncyBhIHN0cmluZy5cbiAgLy8gSGFuZGxlIHRoZSBlbXB0eSBjYXNlLCBpZiB0aGUgdXNlciB3YW50cyB0byBlbXB0eSB0aGUgZmllbGQuXG4gIGlzVmFsaWREYXRlID0gZGF0ZXRpbWUgPT5cbiAgICBtb21lbnQuaXNNb21lbnQoZGF0ZXRpbWUpIHx8IGRhdGV0aW1lIGluc3RhbmNlb2YgRGF0ZSB8fCBkYXRldGltZSA9PT0gJyc7XG5cbiAgaGFuZGxlQ2hhbmdlID0gZGF0ZXRpbWUgPT4ge1xuICAgIC8qKlxuICAgICAqIFNldCB0aGUgZGF0ZSBvbmx5IGlmIGl0IGlzIHZhbGlkLlxuICAgICAqL1xuICAgIGlmICghdGhpcy5pc1ZhbGlkRGF0ZShkYXRldGltZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB7IG9uQ2hhbmdlIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHsgZm9ybWF0IH0gPSB0aGlzLmZvcm1hdHM7XG5cbiAgICAvKipcbiAgICAgKiBQcm9kdWNlIGEgZm9ybWF0dGVkIHN0cmluZyBvbmx5IGlmIGEgZm9ybWF0IGlzIHNldCBpbiB0aGUgY29uZmlnLlxuICAgICAqIE90aGVyd2lzZSBwcm9kdWNlIGEgZGF0ZSBvYmplY3QuXG4gICAgICovXG4gICAgaWYgKGZvcm1hdCkge1xuICAgICAgY29uc3QgZm9ybWF0dGVkVmFsdWUgPSBkYXRldGltZSA/IG1vbWVudChkYXRldGltZSkuZm9ybWF0KGZvcm1hdCkgOiAnJztcbiAgICAgIG9uQ2hhbmdlKGZvcm1hdHRlZFZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdmFsdWUgPSBtb21lbnQuaXNNb21lbnQoZGF0ZXRpbWUpID8gZGF0ZXRpbWUudG9EYXRlKCkgOiBkYXRldGltZTtcbiAgICAgIG9uQ2hhbmdlKHZhbHVlKTtcbiAgICB9XG4gIH07XG5cbiAgb25DbG9zZSA9IGRhdGV0aW1lID0+IHtcbiAgICBjb25zdCB7IHNldEluYWN0aXZlU3R5bGUgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAoIXRoaXMuaXNWYWxpZERhdGUoZGF0ZXRpbWUpKSB7XG4gICAgICBjb25zdCBwYXJzZWREYXRlID0gbW9tZW50KGRhdGV0aW1lKTtcblxuICAgICAgaWYgKHBhcnNlZERhdGUuaXNWYWxpZCgpKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlQ2hhbmdlKGRhdGV0aW1lKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHdpbmRvdy5hbGVydCgnVGhlIGRhdGUgeW91IGVudGVyZWQgaXMgaW52YWxpZC4nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRJbmFjdGl2ZVN0eWxlKCk7XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgZm9ySUQsIHZhbHVlLCBjbGFzc05hbWVXcmFwcGVyLCBzZXRBY3RpdmVTdHlsZSwgdCwgaXNEaXNhYmxlZCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IGZvcm1hdCwgZGF0ZUZvcm1hdCwgdGltZUZvcm1hdCB9ID0gdGhpcy5mb3JtYXRzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgJHtyZWFjdERhdGVUaW1lU3R5bGVzfTtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIDxEYXRlVGltZVxuICAgICAgICAgIGRhdGVGb3JtYXQ9e2RhdGVGb3JtYXR9XG4gICAgICAgICAgdGltZUZvcm1hdD17dGltZUZvcm1hdH1cbiAgICAgICAgICB2YWx1ZT17bW9tZW50KHZhbHVlLCBmb3JtYXQpfVxuICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLmhhbmRsZUNoYW5nZX1cbiAgICAgICAgICBvbk9wZW49e3NldEFjdGl2ZVN0eWxlfVxuICAgICAgICAgIG9uQ2xvc2U9e3RoaXMub25DbG9zZX1cbiAgICAgICAgICBpbnB1dFByb3BzPXt7IGNsYXNzTmFtZTogY2xhc3NOYW1lV3JhcHBlciwgaWQ6IGZvcklEIH19XG4gICAgICAgICAgdXRjPXt0aGlzLnBpY2tlclV0Y31cbiAgICAgICAgLz5cbiAgICAgICAgeyFpc0Rpc2FibGVkICYmIDxOb3dCdXR0b24gdD17dH0gaGFuZGxlQ2hhbmdlPXt2ID0+IHRoaXMuaGFuZGxlQ2hhbmdlKHYpfSAvPn1cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cbiJdfQ== */",
26
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
27
+ };
28
+ function NowButton({
29
+ t,
30
+ handleChange
31
+ }) {
32
+ return (0, _core.jsx)("div", {
33
+ css: _ref
34
+ }, (0, _core.jsx)("button", {
35
+ css: /*#__PURE__*/(0, _core.css)(_decapCmsUiDefault.buttons.button, " ", _decapCmsUiDefault.buttons.widget, ";label:NowButton;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9EYXRlVGltZUNvbnRyb2wuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBcUJnQiIsImZpbGUiOiIuLi8uLi9zcmMvRGF0ZVRpbWVDb250cm9sLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBqc3gganN4ICovXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IGpzeCwgY3NzIH0gZnJvbSAnQGVtb3Rpb24vY29yZSc7XG5pbXBvcnQgcmVhY3REYXRlVGltZVN0eWxlcyBmcm9tICdyZWFjdC1kYXRldGltZS9jc3MvcmVhY3QtZGF0ZXRpbWUuY3NzJztcbmltcG9ydCBEYXRlVGltZSBmcm9tICdyZWFjdC1kYXRldGltZSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBidXR0b25zIH0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5mdW5jdGlvbiBOb3dCdXR0b24oeyB0LCBoYW5kbGVDaGFuZ2UgfSkge1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAyMHB4O1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwcHgpO1xuICAgICAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICBgfVxuICAgID5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgJHtidXR0b25zLmJ1dHRvbn1cbiAgICAgICAgICAke2J1dHRvbnMud2lkZ2V0fVxuICAgICAgICBgfVxuICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgaGFuZGxlQ2hhbmdlKG1vbWVudCgpKTtcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAge3QoJ2VkaXRvci5lZGl0b3JXaWRnZXRzLmRhdGV0aW1lLm5vdycpfVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERhdGVUaW1lQ29udHJvbCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgZmllbGQ6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBmb3JJRDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBjbGFzc05hbWVXcmFwcGVyOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgc2V0QWN0aXZlU3R5bGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2V0SW5hY3RpdmVTdHlsZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICB2YWx1ZTogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm9iamVjdCwgUHJvcFR5cGVzLnN0cmluZ10pLFxuICB9O1xuXG4gIGdldEZvcm1hdHMoKSB7XG4gICAgY29uc3QgeyBmaWVsZCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBmb3JtYXQgPSBmaWVsZC5nZXQoJ2Zvcm1hdCcpO1xuXG4gICAgLy8gZGF0ZUZvcm1hdCBhbmQgdGltZUZvcm1hdCBhcmUgc3RyaWN0bHkgZm9yIG1vZGlmeWluZ1xuICAgIC8vIGlucHV0IGZpZWxkIHdpdGggdGhlIGRhdGUvdGltZSBwaWNrZXJzXG4gICAgY29uc3QgZGF0ZUZvcm1hdCA9IGZpZWxkLmdldCgnZGF0ZV9mb3JtYXQnKTtcbiAgICAvLyBzaG93IHRpbWUtcGlja2VyPyBmYWxzZSBoaWRlcyBpdCwgdHJ1ZSBzaG93cyBpdCB1c2luZyBkZWZhdWx0IGZvcm1hdFxuICAgIGxldCB0aW1lRm9ybWF0ID0gZmllbGQuZ2V0KCd0aW1lX2Zvcm1hdCcpO1xuICAgIGlmICh0eXBlb2YgdGltZUZvcm1hdCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRpbWVGb3JtYXQgPSB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBmb3JtYXQsXG4gICAgICBkYXRlRm9ybWF0LFxuICAgICAgdGltZUZvcm1hdCxcbiAgICB9O1xuICB9XG5cbiAgZ2V0RGVmYXVsdFZhbHVlKCkge1xuICAgIGNvbnN0IHsgZmllbGQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgZGVmYXVsdFZhbHVlID0gZmllbGQuZ2V0KCdkZWZhdWx0Jyk7XG4gICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgfVxuXG4gIGdldFBpY2tlclV0YygpIHtcbiAgICBjb25zdCB7IGZpZWxkIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHBpY2tlclV0YyA9IGZpZWxkLmdldCgncGlja2VyX3V0YycpO1xuICAgIHJldHVybiBwaWNrZXJVdGM7XG4gIH1cblxuICBmb3JtYXRzID0gdGhpcy5nZXRGb3JtYXRzKCk7XG4gIGRlZmF1bHRWYWx1ZSA9IHRoaXMuZ2V0RGVmYXVsdFZhbHVlKCk7XG4gIHBpY2tlclV0YyA9IHRoaXMuZ2V0UGlja2VyVXRjKCk7XG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgY29uc3QgeyB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcblxuICAgIC8qKlxuICAgICAqIFNldCB0aGUgY3VycmVudCBkYXRlIGFzIGRlZmF1bHQgdmFsdWUgaWYgbm8gdmFsdWUgaXMgcHJvdmlkZWQgYW5kIGRlZmF1bHQgaXMgYWJzZW50LiBBblxuICAgICAqIGVtcHR5IGRlZmF1bHQgc3RyaW5nIG1lYW5zIHRoZSB2YWx1ZSBpcyBpbnRlbnRpb25hbGx5IGJsYW5rLlxuICAgICAqL1xuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5oYW5kbGVDaGFuZ2UodGhpcy5kZWZhdWx0VmFsdWUgPT09IHVuZGVmaW5lZCA/IG5ldyBEYXRlKCkgOiB0aGlzLmRlZmF1bHRWYWx1ZSk7XG4gICAgICB9LCAwKTtcbiAgICB9XG4gIH1cblxuICAvLyBEYXRlIGlzIHZhbGlkIGlmIGRhdGV0aW1lIGlzIGEgbW9tZW50IG9yIERhdGUgb2JqZWN0IG90aGVyd2lzZSBpdCdzIGEgc3RyaW5nLlxuICAvLyBIYW5kbGUgdGhlIGVtcHR5IGNhc2UsIGlmIHRoZSB1c2VyIHdhbnRzIHRvIGVtcHR5IHRoZSBmaWVsZC5cbiAgaXNWYWxpZERhdGUgPSBkYXRldGltZSA9PlxuICAgIG1vbWVudC5pc01vbWVudChkYXRldGltZSkgfHwgZGF0ZXRpbWUgaW5zdGFuY2VvZiBEYXRlIHx8IGRhdGV0aW1lID09PSAnJztcblxuICBoYW5kbGVDaGFuZ2UgPSBkYXRldGltZSA9PiB7XG4gICAgLyoqXG4gICAgICogU2V0IHRoZSBkYXRlIG9ubHkgaWYgaXQgaXMgdmFsaWQuXG4gICAgICovXG4gICAgaWYgKCF0aGlzLmlzVmFsaWREYXRlKGRhdGV0aW1lKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHsgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyBmb3JtYXQgfSA9IHRoaXMuZm9ybWF0cztcblxuICAgIC8qKlxuICAgICAqIFByb2R1Y2UgYSBmb3JtYXR0ZWQgc3RyaW5nIG9ubHkgaWYgYSBmb3JtYXQgaXMgc2V0IGluIHRoZSBjb25maWcuXG4gICAgICogT3RoZXJ3aXNlIHByb2R1Y2UgYSBkYXRlIG9iamVjdC5cbiAgICAgKi9cbiAgICBpZiAoZm9ybWF0KSB7XG4gICAgICBjb25zdCBmb3JtYXR0ZWRWYWx1ZSA9IGRhdGV0aW1lID8gbW9tZW50KGRhdGV0aW1lKS5mb3JtYXQoZm9ybWF0KSA6ICcnO1xuICAgICAgb25DaGFuZ2UoZm9ybWF0dGVkVmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IG1vbWVudC5pc01vbWVudChkYXRldGltZSkgPyBkYXRldGltZS50b0RhdGUoKSA6IGRhdGV0aW1lO1xuICAgICAgb25DaGFuZ2UodmFsdWUpO1xuICAgIH1cbiAgfTtcblxuICBvbkNsb3NlID0gZGF0ZXRpbWUgPT4ge1xuICAgIGNvbnN0IHsgc2V0SW5hY3RpdmVTdHlsZSB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmICghdGhpcy5pc1ZhbGlkRGF0ZShkYXRldGltZSkpIHtcbiAgICAgIGNvbnN0IHBhcnNlZERhdGUgPSBtb21lbnQoZGF0ZXRpbWUpO1xuXG4gICAgICBpZiAocGFyc2VkRGF0ZS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgdGhpcy5oYW5kbGVDaGFuZ2UoZGF0ZXRpbWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgd2luZG93LmFsZXJ0KCdUaGUgZGF0ZSB5b3UgZW50ZXJlZCBpcyBpbnZhbGlkLicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHNldEluYWN0aXZlU3R5bGUoKTtcbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBmb3JJRCwgdmFsdWUsIGNsYXNzTmFtZVdyYXBwZXIsIHNldEFjdGl2ZVN0eWxlLCB0LCBpc0Rpc2FibGVkIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHsgZm9ybWF0LCBkYXRlRm9ybWF0LCB0aW1lRm9ybWF0IH0gPSB0aGlzLmZvcm1hdHM7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAke3JlYWN0RGF0ZVRpbWVTdHlsZXN9O1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYH1cbiAgICAgID5cbiAgICAgICAgPERhdGVUaW1lXG4gICAgICAgICAgZGF0ZUZvcm1hdD17ZGF0ZUZvcm1hdH1cbiAgICAgICAgICB0aW1lRm9ybWF0PXt0aW1lRm9ybWF0fVxuICAgICAgICAgIHZhbHVlPXttb21lbnQodmFsdWUsIGZvcm1hdCl9XG4gICAgICAgICAgb25DaGFuZ2U9e3RoaXMuaGFuZGxlQ2hhbmdlfVxuICAgICAgICAgIG9uT3Blbj17c2V0QWN0aXZlU3R5bGV9XG4gICAgICAgICAgb25DbG9zZT17dGhpcy5vbkNsb3NlfVxuICAgICAgICAgIGlucHV0UHJvcHM9e3sgY2xhc3NOYW1lOiBjbGFzc05hbWVXcmFwcGVyLCBpZDogZm9ySUQgfX1cbiAgICAgICAgICB1dGM9e3RoaXMucGlja2VyVXRjfVxuICAgICAgICAvPlxuICAgICAgICB7IWlzRGlzYWJsZWQgJiYgPE5vd0J1dHRvbiB0PXt0fSBoYW5kbGVDaGFuZ2U9e3YgPT4gdGhpcy5oYW5kbGVDaGFuZ2Uodil9IC8+fVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxufVxuIl19 */")),
36
+ onClick: () => {
37
+ handleChange((0, _moment.default)());
38
+ }
39
+ }, t('editor.editorWidgets.datetime.now')));
40
+ }
41
+ class DateTimeControl extends _react.default.Component {
42
+ constructor(...args) {
43
+ super(...args);
44
+ _defineProperty(this, "formats", this.getFormats());
45
+ _defineProperty(this, "defaultValue", this.getDefaultValue());
46
+ _defineProperty(this, "pickerUtc", this.getPickerUtc());
47
+ // Date is valid if datetime is a moment or Date object otherwise it's a string.
48
+ // Handle the empty case, if the user wants to empty the field.
49
+ _defineProperty(this, "isValidDate", datetime => _moment.default.isMoment(datetime) || datetime instanceof Date || datetime === '');
50
+ _defineProperty(this, "handleChange", datetime => {
51
+ /**
52
+ * Set the date only if it is valid.
53
+ */
54
+ if (!this.isValidDate(datetime)) {
55
+ return;
56
+ }
57
+ const {
58
+ onChange
59
+ } = this.props;
60
+ const {
61
+ format
62
+ } = this.formats;
63
+
64
+ /**
65
+ * Produce a formatted string only if a format is set in the config.
66
+ * Otherwise produce a date object.
67
+ */
68
+ if (format) {
69
+ const formattedValue = datetime ? (0, _moment.default)(datetime).format(format) : '';
70
+ onChange(formattedValue);
71
+ } else {
72
+ const value = _moment.default.isMoment(datetime) ? datetime.toDate() : datetime;
73
+ onChange(value);
74
+ }
75
+ });
76
+ _defineProperty(this, "onClose", datetime => {
77
+ const {
78
+ setInactiveStyle
79
+ } = this.props;
80
+ if (!this.isValidDate(datetime)) {
81
+ const parsedDate = (0, _moment.default)(datetime);
82
+ if (parsedDate.isValid()) {
83
+ this.handleChange(datetime);
84
+ } else {
85
+ window.alert('The date you entered is invalid.');
86
+ }
87
+ }
88
+ setInactiveStyle();
89
+ });
90
+ }
91
+ getFormats() {
92
+ const {
93
+ field
94
+ } = this.props;
95
+ const format = field.get('format');
96
+
97
+ // dateFormat and timeFormat are strictly for modifying
98
+ // input field with the date/time pickers
99
+ const dateFormat = field.get('date_format');
100
+ // show time-picker? false hides it, true shows it using default format
101
+ let timeFormat = field.get('time_format');
102
+ if (typeof timeFormat === 'undefined') {
103
+ timeFormat = true;
104
+ }
105
+ return {
106
+ format,
107
+ dateFormat,
108
+ timeFormat
109
+ };
110
+ }
111
+ getDefaultValue() {
112
+ const {
113
+ field
114
+ } = this.props;
115
+ const defaultValue = field.get('default');
116
+ return defaultValue;
117
+ }
118
+ getPickerUtc() {
119
+ const {
120
+ field
121
+ } = this.props;
122
+ const pickerUtc = field.get('picker_utc');
123
+ return pickerUtc;
124
+ }
125
+ componentDidMount() {
126
+ const {
127
+ value
128
+ } = this.props;
129
+
130
+ /**
131
+ * Set the current date as default value if no value is provided and default is absent. An
132
+ * empty default string means the value is intentionally blank.
133
+ */
134
+ if (value === undefined) {
135
+ setTimeout(() => {
136
+ this.handleChange(this.defaultValue === undefined ? new Date() : this.defaultValue);
137
+ }, 0);
138
+ }
139
+ }
140
+ render() {
141
+ const {
142
+ forID,
143
+ value,
144
+ classNameWrapper,
145
+ setActiveStyle,
146
+ t,
147
+ isDisabled
148
+ } = this.props;
149
+ const {
150
+ format,
151
+ dateFormat,
152
+ timeFormat
153
+ } = this.formats;
154
+ return (0, _core.jsx)("div", {
155
+ css: /*#__PURE__*/(0, _core.css)(_reactDatetime.default, ";position:relative;;label:DateTimeControl;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9EYXRlVGltZUNvbnRyb2wuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBbUpnQiIsImZpbGUiOiIuLi8uLi9zcmMvRGF0ZVRpbWVDb250cm9sLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBqc3gganN4ICovXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IGpzeCwgY3NzIH0gZnJvbSAnQGVtb3Rpb24vY29yZSc7XG5pbXBvcnQgcmVhY3REYXRlVGltZVN0eWxlcyBmcm9tICdyZWFjdC1kYXRldGltZS9jc3MvcmVhY3QtZGF0ZXRpbWUuY3NzJztcbmltcG9ydCBEYXRlVGltZSBmcm9tICdyZWFjdC1kYXRldGltZSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBidXR0b25zIH0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5mdW5jdGlvbiBOb3dCdXR0b24oeyB0LCBoYW5kbGVDaGFuZ2UgfSkge1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAyMHB4O1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwcHgpO1xuICAgICAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICBgfVxuICAgID5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgJHtidXR0b25zLmJ1dHRvbn1cbiAgICAgICAgICAke2J1dHRvbnMud2lkZ2V0fVxuICAgICAgICBgfVxuICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgaGFuZGxlQ2hhbmdlKG1vbWVudCgpKTtcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAge3QoJ2VkaXRvci5lZGl0b3JXaWRnZXRzLmRhdGV0aW1lLm5vdycpfVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERhdGVUaW1lQ29udHJvbCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgZmllbGQ6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBmb3JJRDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBjbGFzc05hbWVXcmFwcGVyOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgc2V0QWN0aXZlU3R5bGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc2V0SW5hY3RpdmVTdHlsZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICB2YWx1ZTogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm9iamVjdCwgUHJvcFR5cGVzLnN0cmluZ10pLFxuICB9O1xuXG4gIGdldEZvcm1hdHMoKSB7XG4gICAgY29uc3QgeyBmaWVsZCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBmb3JtYXQgPSBmaWVsZC5nZXQoJ2Zvcm1hdCcpO1xuXG4gICAgLy8gZGF0ZUZvcm1hdCBhbmQgdGltZUZvcm1hdCBhcmUgc3RyaWN0bHkgZm9yIG1vZGlmeWluZ1xuICAgIC8vIGlucHV0IGZpZWxkIHdpdGggdGhlIGRhdGUvdGltZSBwaWNrZXJzXG4gICAgY29uc3QgZGF0ZUZvcm1hdCA9IGZpZWxkLmdldCgnZGF0ZV9mb3JtYXQnKTtcbiAgICAvLyBzaG93IHRpbWUtcGlja2VyPyBmYWxzZSBoaWRlcyBpdCwgdHJ1ZSBzaG93cyBpdCB1c2luZyBkZWZhdWx0IGZvcm1hdFxuICAgIGxldCB0aW1lRm9ybWF0ID0gZmllbGQuZ2V0KCd0aW1lX2Zvcm1hdCcpO1xuICAgIGlmICh0eXBlb2YgdGltZUZvcm1hdCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRpbWVGb3JtYXQgPSB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBmb3JtYXQsXG4gICAgICBkYXRlRm9ybWF0LFxuICAgICAgdGltZUZvcm1hdCxcbiAgICB9O1xuICB9XG5cbiAgZ2V0RGVmYXVsdFZhbHVlKCkge1xuICAgIGNvbnN0IHsgZmllbGQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgZGVmYXVsdFZhbHVlID0gZmllbGQuZ2V0KCdkZWZhdWx0Jyk7XG4gICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgfVxuXG4gIGdldFBpY2tlclV0YygpIHtcbiAgICBjb25zdCB7IGZpZWxkIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHBpY2tlclV0YyA9IGZpZWxkLmdldCgncGlja2VyX3V0YycpO1xuICAgIHJldHVybiBwaWNrZXJVdGM7XG4gIH1cblxuICBmb3JtYXRzID0gdGhpcy5nZXRGb3JtYXRzKCk7XG4gIGRlZmF1bHRWYWx1ZSA9IHRoaXMuZ2V0RGVmYXVsdFZhbHVlKCk7XG4gIHBpY2tlclV0YyA9IHRoaXMuZ2V0UGlja2VyVXRjKCk7XG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgY29uc3QgeyB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcblxuICAgIC8qKlxuICAgICAqIFNldCB0aGUgY3VycmVudCBkYXRlIGFzIGRlZmF1bHQgdmFsdWUgaWYgbm8gdmFsdWUgaXMgcHJvdmlkZWQgYW5kIGRlZmF1bHQgaXMgYWJzZW50LiBBblxuICAgICAqIGVtcHR5IGRlZmF1bHQgc3RyaW5nIG1lYW5zIHRoZSB2YWx1ZSBpcyBpbnRlbnRpb25hbGx5IGJsYW5rLlxuICAgICAqL1xuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5oYW5kbGVDaGFuZ2UodGhpcy5kZWZhdWx0VmFsdWUgPT09IHVuZGVmaW5lZCA/IG5ldyBEYXRlKCkgOiB0aGlzLmRlZmF1bHRWYWx1ZSk7XG4gICAgICB9LCAwKTtcbiAgICB9XG4gIH1cblxuICAvLyBEYXRlIGlzIHZhbGlkIGlmIGRhdGV0aW1lIGlzIGEgbW9tZW50IG9yIERhdGUgb2JqZWN0IG90aGVyd2lzZSBpdCdzIGEgc3RyaW5nLlxuICAvLyBIYW5kbGUgdGhlIGVtcHR5IGNhc2UsIGlmIHRoZSB1c2VyIHdhbnRzIHRvIGVtcHR5IHRoZSBmaWVsZC5cbiAgaXNWYWxpZERhdGUgPSBkYXRldGltZSA9PlxuICAgIG1vbWVudC5pc01vbWVudChkYXRldGltZSkgfHwgZGF0ZXRpbWUgaW5zdGFuY2VvZiBEYXRlIHx8IGRhdGV0aW1lID09PSAnJztcblxuICBoYW5kbGVDaGFuZ2UgPSBkYXRldGltZSA9PiB7XG4gICAgLyoqXG4gICAgICogU2V0IHRoZSBkYXRlIG9ubHkgaWYgaXQgaXMgdmFsaWQuXG4gICAgICovXG4gICAgaWYgKCF0aGlzLmlzVmFsaWREYXRlKGRhdGV0aW1lKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHsgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyBmb3JtYXQgfSA9IHRoaXMuZm9ybWF0cztcblxuICAgIC8qKlxuICAgICAqIFByb2R1Y2UgYSBmb3JtYXR0ZWQgc3RyaW5nIG9ubHkgaWYgYSBmb3JtYXQgaXMgc2V0IGluIHRoZSBjb25maWcuXG4gICAgICogT3RoZXJ3aXNlIHByb2R1Y2UgYSBkYXRlIG9iamVjdC5cbiAgICAgKi9cbiAgICBpZiAoZm9ybWF0KSB7XG4gICAgICBjb25zdCBmb3JtYXR0ZWRWYWx1ZSA9IGRhdGV0aW1lID8gbW9tZW50KGRhdGV0aW1lKS5mb3JtYXQoZm9ybWF0KSA6ICcnO1xuICAgICAgb25DaGFuZ2UoZm9ybWF0dGVkVmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IG1vbWVudC5pc01vbWVudChkYXRldGltZSkgPyBkYXRldGltZS50b0RhdGUoKSA6IGRhdGV0aW1lO1xuICAgICAgb25DaGFuZ2UodmFsdWUpO1xuICAgIH1cbiAgfTtcblxuICBvbkNsb3NlID0gZGF0ZXRpbWUgPT4ge1xuICAgIGNvbnN0IHsgc2V0SW5hY3RpdmVTdHlsZSB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmICghdGhpcy5pc1ZhbGlkRGF0ZShkYXRldGltZSkpIHtcbiAgICAgIGNvbnN0IHBhcnNlZERhdGUgPSBtb21lbnQoZGF0ZXRpbWUpO1xuXG4gICAgICBpZiAocGFyc2VkRGF0ZS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgdGhpcy5oYW5kbGVDaGFuZ2UoZGF0ZXRpbWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgd2luZG93LmFsZXJ0KCdUaGUgZGF0ZSB5b3UgZW50ZXJlZCBpcyBpbnZhbGlkLicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHNldEluYWN0aXZlU3R5bGUoKTtcbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBmb3JJRCwgdmFsdWUsIGNsYXNzTmFtZVdyYXBwZXIsIHNldEFjdGl2ZVN0eWxlLCB0LCBpc0Rpc2FibGVkIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHsgZm9ybWF0LCBkYXRlRm9ybWF0LCB0aW1lRm9ybWF0IH0gPSB0aGlzLmZvcm1hdHM7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e2Nzc2BcbiAgICAgICAgICAke3JlYWN0RGF0ZVRpbWVTdHlsZXN9O1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYH1cbiAgICAgID5cbiAgICAgICAgPERhdGVUaW1lXG4gICAgICAgICAgZGF0ZUZvcm1hdD17ZGF0ZUZvcm1hdH1cbiAgICAgICAgICB0aW1lRm9ybWF0PXt0aW1lRm9ybWF0fVxuICAgICAgICAgIHZhbHVlPXttb21lbnQodmFsdWUsIGZvcm1hdCl9XG4gICAgICAgICAgb25DaGFuZ2U9e3RoaXMuaGFuZGxlQ2hhbmdlfVxuICAgICAgICAgIG9uT3Blbj17c2V0QWN0aXZlU3R5bGV9XG4gICAgICAgICAgb25DbG9zZT17dGhpcy5vbkNsb3NlfVxuICAgICAgICAgIGlucHV0UHJvcHM9e3sgY2xhc3NOYW1lOiBjbGFzc05hbWVXcmFwcGVyLCBpZDogZm9ySUQgfX1cbiAgICAgICAgICB1dGM9e3RoaXMucGlja2VyVXRjfVxuICAgICAgICAvPlxuICAgICAgICB7IWlzRGlzYWJsZWQgJiYgPE5vd0J1dHRvbiB0PXt0fSBoYW5kbGVDaGFuZ2U9e3YgPT4gdGhpcy5oYW5kbGVDaGFuZ2Uodil9IC8+fVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxufVxuIl19 */"))
156
+ }, (0, _core.jsx)(_reactDatetime2.default, {
157
+ dateFormat: dateFormat,
158
+ timeFormat: timeFormat,
159
+ value: (0, _moment.default)(value, format),
160
+ onChange: this.handleChange,
161
+ onOpen: setActiveStyle,
162
+ onClose: this.onClose,
163
+ inputProps: {
164
+ className: classNameWrapper,
165
+ id: forID
166
+ },
167
+ utc: this.pickerUtc
168
+ }), !isDisabled && (0, _core.jsx)(NowButton, {
169
+ t: t,
170
+ handleChange: v => this.handleChange(v)
171
+ }));
172
+ }
173
+ }
174
+ exports.default = DateTimeControl;
175
+ _defineProperty(DateTimeControl, "propTypes", {
176
+ field: _propTypes.default.object.isRequired,
177
+ forID: _propTypes.default.string,
178
+ onChange: _propTypes.default.func.isRequired,
179
+ classNameWrapper: _propTypes.default.string.isRequired,
180
+ setActiveStyle: _propTypes.default.func.isRequired,
181
+ setInactiveStyle: _propTypes.default.func.isRequired,
182
+ value: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.string])
183
+ });
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _decapCmsUiDefault = require("decap-cms-ui-default");
10
+ var _core = require("@emotion/core");
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+ function DatePreview({
13
+ value
14
+ }) {
15
+ return (0, _core.jsx)(_decapCmsUiDefault.WidgetPreviewContainer, null, value ? value.toString() : null);
16
+ }
17
+ DatePreview.propTypes = {
18
+ value: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.string])
19
+ };
20
+ var _default = DatePreview;
21
+ exports.default = _default;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.DecapCmsWidgetDatetime = void 0;
7
+ var _DateTimeControl = _interopRequireDefault(require("./DateTimeControl"));
8
+ var _DateTimePreview = _interopRequireDefault(require("./DateTimePreview"));
9
+ var _schema = _interopRequireDefault(require("./schema"));
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
12
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
13
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
14
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
15
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
16
+ function Widget(opts = {}) {
17
+ return _objectSpread({
18
+ name: 'datetime',
19
+ controlComponent: _DateTimeControl.default,
20
+ previewComponent: _DateTimePreview.default,
21
+ schema: _schema.default
22
+ }, opts);
23
+ }
24
+ const DecapCmsWidgetDatetime = {
25
+ Widget,
26
+ controlComponent: _DateTimeControl.default,
27
+ previewComponent: _DateTimePreview.default
28
+ };
29
+ exports.DecapCmsWidgetDatetime = DecapCmsWidgetDatetime;
30
+ var _default = DecapCmsWidgetDatetime;
31
+ exports.default = _default;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _default = {
8
+ properties: {
9
+ format: {
10
+ type: 'string'
11
+ },
12
+ date_format: {
13
+ oneOf: [{
14
+ type: 'string'
15
+ }, {
16
+ type: 'boolean'
17
+ }]
18
+ },
19
+ time_format: {
20
+ oneOf: [{
21
+ type: 'string'
22
+ }, {
23
+ type: 'boolean'
24
+ }]
25
+ },
26
+ picker_utc: {
27
+ type: 'boolean'
28
+ }
29
+ }
30
+ };
31
+ exports.default = _default;
package/package.json ADDED
@@ -0,0 +1,33 @@
1
+ {
2
+ "name": "decap-cms-widget-datetime",
3
+ "description": "Widget for editing dates and times in Decap CMS.",
4
+ "version": "2.8.0-beta.0",
5
+ "homepage": "https://www.decapcms.org/docs/widgets/#datetime",
6
+ "repository": "https://github.com/decaporg/decap-cms/tree/master/packages/decap-cms-widget-datetime",
7
+ "bugs": "https://github.com/decaporg/decap-cms/issues",
8
+ "module": "dist/esm/index.js",
9
+ "main": "dist/decap-cms-widget-datetime.js",
10
+ "license": "MIT",
11
+ "keywords": [
12
+ "decap-cms",
13
+ "widget",
14
+ "date",
15
+ "time",
16
+ "datetime"
17
+ ],
18
+ "sideEffects": false,
19
+ "scripts": {
20
+ "develop": "yarn build:esm --watch",
21
+ "build": "cross-env NODE_ENV=production webpack",
22
+ "build:esm": "cross-env NODE_ENV=esm babel src --out-dir dist/esm --ignore \"**/__tests__\" --root-mode upward"
23
+ },
24
+ "peerDependencies": {
25
+ "@emotion/core": "^10.0.35",
26
+ "decap-cms-widget-date": "^2.5.7",
27
+ "react": "^16.8.4 || ^17.0.0"
28
+ },
29
+ "dependencies": {
30
+ "react-datetime": "^3.1.1"
31
+ },
32
+ "gitHead": "1bdf716e5655bf088a343cd90210a2d361a9db52"
33
+ }
@@ -0,0 +1,167 @@
1
+ /** @jsx jsx */
2
+ import React from 'react';
3
+ import PropTypes from 'prop-types';
4
+ import { jsx, css } from '@emotion/core';
5
+ import reactDateTimeStyles from 'react-datetime/css/react-datetime.css';
6
+ import DateTime from 'react-datetime';
7
+ import moment from 'moment';
8
+ import { buttons } from 'decap-cms-ui-default';
9
+
10
+ function NowButton({ t, handleChange }) {
11
+ return (
12
+ <div
13
+ css={css`
14
+ position: absolute;
15
+ right: 20px;
16
+ transform: translateY(-40px);
17
+ width: fit-content;
18
+ z-index: 1;
19
+ `}
20
+ >
21
+ <button
22
+ css={css`
23
+ ${buttons.button}
24
+ ${buttons.widget}
25
+ `}
26
+ onClick={() => {
27
+ handleChange(moment());
28
+ }}
29
+ >
30
+ {t('editor.editorWidgets.datetime.now')}
31
+ </button>
32
+ </div>
33
+ );
34
+ }
35
+
36
+ export default class DateTimeControl extends React.Component {
37
+ static propTypes = {
38
+ field: PropTypes.object.isRequired,
39
+ forID: PropTypes.string,
40
+ onChange: PropTypes.func.isRequired,
41
+ classNameWrapper: PropTypes.string.isRequired,
42
+ setActiveStyle: PropTypes.func.isRequired,
43
+ setInactiveStyle: PropTypes.func.isRequired,
44
+ value: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),
45
+ };
46
+
47
+ getFormats() {
48
+ const { field } = this.props;
49
+ const format = field.get('format');
50
+
51
+ // dateFormat and timeFormat are strictly for modifying
52
+ // input field with the date/time pickers
53
+ const dateFormat = field.get('date_format');
54
+ // show time-picker? false hides it, true shows it using default format
55
+ let timeFormat = field.get('time_format');
56
+ if (typeof timeFormat === 'undefined') {
57
+ timeFormat = true;
58
+ }
59
+
60
+ return {
61
+ format,
62
+ dateFormat,
63
+ timeFormat,
64
+ };
65
+ }
66
+
67
+ getDefaultValue() {
68
+ const { field } = this.props;
69
+ const defaultValue = field.get('default');
70
+ return defaultValue;
71
+ }
72
+
73
+ getPickerUtc() {
74
+ const { field } = this.props;
75
+ const pickerUtc = field.get('picker_utc');
76
+ return pickerUtc;
77
+ }
78
+
79
+ formats = this.getFormats();
80
+ defaultValue = this.getDefaultValue();
81
+ pickerUtc = this.getPickerUtc();
82
+
83
+ componentDidMount() {
84
+ const { value } = this.props;
85
+
86
+ /**
87
+ * Set the current date as default value if no value is provided and default is absent. An
88
+ * empty default string means the value is intentionally blank.
89
+ */
90
+ if (value === undefined) {
91
+ setTimeout(() => {
92
+ this.handleChange(this.defaultValue === undefined ? new Date() : this.defaultValue);
93
+ }, 0);
94
+ }
95
+ }
96
+
97
+ // Date is valid if datetime is a moment or Date object otherwise it's a string.
98
+ // Handle the empty case, if the user wants to empty the field.
99
+ isValidDate = datetime =>
100
+ moment.isMoment(datetime) || datetime instanceof Date || datetime === '';
101
+
102
+ handleChange = datetime => {
103
+ /**
104
+ * Set the date only if it is valid.
105
+ */
106
+ if (!this.isValidDate(datetime)) {
107
+ return;
108
+ }
109
+
110
+ const { onChange } = this.props;
111
+ const { format } = this.formats;
112
+
113
+ /**
114
+ * Produce a formatted string only if a format is set in the config.
115
+ * Otherwise produce a date object.
116
+ */
117
+ if (format) {
118
+ const formattedValue = datetime ? moment(datetime).format(format) : '';
119
+ onChange(formattedValue);
120
+ } else {
121
+ const value = moment.isMoment(datetime) ? datetime.toDate() : datetime;
122
+ onChange(value);
123
+ }
124
+ };
125
+
126
+ onClose = datetime => {
127
+ const { setInactiveStyle } = this.props;
128
+
129
+ if (!this.isValidDate(datetime)) {
130
+ const parsedDate = moment(datetime);
131
+
132
+ if (parsedDate.isValid()) {
133
+ this.handleChange(datetime);
134
+ } else {
135
+ window.alert('The date you entered is invalid.');
136
+ }
137
+ }
138
+
139
+ setInactiveStyle();
140
+ };
141
+
142
+ render() {
143
+ const { forID, value, classNameWrapper, setActiveStyle, t, isDisabled } = this.props;
144
+ const { format, dateFormat, timeFormat } = this.formats;
145
+
146
+ return (
147
+ <div
148
+ css={css`
149
+ ${reactDateTimeStyles};
150
+ position: relative;
151
+ `}
152
+ >
153
+ <DateTime
154
+ dateFormat={dateFormat}
155
+ timeFormat={timeFormat}
156
+ value={moment(value, format)}
157
+ onChange={this.handleChange}
158
+ onOpen={setActiveStyle}
159
+ onClose={this.onClose}
160
+ inputProps={{ className: classNameWrapper, id: forID }}
161
+ utc={this.pickerUtc}
162
+ />
163
+ {!isDisabled && <NowButton t={t} handleChange={v => this.handleChange(v)} />}
164
+ </div>
165
+ );
166
+ }
167
+ }
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { WidgetPreviewContainer } from 'decap-cms-ui-default';
4
+
5
+ function DatePreview({ value }) {
6
+ return <WidgetPreviewContainer>{value ? value.toString() : null}</WidgetPreviewContainer>;
7
+ }
8
+
9
+ DatePreview.propTypes = {
10
+ value: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),
11
+ };
12
+
13
+ export default DatePreview;
package/src/index.js ADDED
@@ -0,0 +1,16 @@
1
+ import controlComponent from './DateTimeControl';
2
+ import previewComponent from './DateTimePreview';
3
+ import schema from './schema';
4
+
5
+ function Widget(opts = {}) {
6
+ return {
7
+ name: 'datetime',
8
+ controlComponent,
9
+ previewComponent,
10
+ schema,
11
+ ...opts,
12
+ };
13
+ }
14
+
15
+ export const DecapCmsWidgetDatetime = { Widget, controlComponent, previewComponent };
16
+ export default DecapCmsWidgetDatetime;
package/src/schema.js ADDED
@@ -0,0 +1,8 @@
1
+ export default {
2
+ properties: {
3
+ format: { type: 'string' },
4
+ date_format: { oneOf: [{ type: 'string' }, { type: 'boolean' }] },
5
+ time_format: { oneOf: [{ type: 'string' }, { type: 'boolean' }] },
6
+ picker_utc: { type: 'boolean' },
7
+ },
8
+ };
@@ -0,0 +1,3 @@
1
+ const { getConfig } = require('../../scripts/webpack.js');
2
+
3
+ module.exports = getConfig();