superdesk-ui-framework 4.0.67 → 4.0.69

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.
@@ -17303,7 +17303,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE_13__;
17303
17303
  }
17304
17304
  }.call(this));
17305
17305
 
17306
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(55), __webpack_require__(72)(module)))
17306
+ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(55), __webpack_require__(73)(module)))
17307
17307
 
17308
17308
  /***/ }),
17309
17309
 
@@ -17335,7 +17335,7 @@ module.exports = g;
17335
17335
 
17336
17336
  /***/ }),
17337
17337
 
17338
- /***/ 72:
17338
+ /***/ 73:
17339
17339
  /***/ (function(module, exports) {
17340
17340
 
17341
17341
  module.exports = function(module) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "superdesk-ui-framework",
3
- "version": "4.0.67",
3
+ "version": "4.0.69",
4
4
  "license": "AGPL-3.0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -215,7 +215,7 @@ var DatePicker = /** @class */ (function (_super) {
215
215
  // updating internal state so a user can continue typing and enter a valid value
216
216
  _this.setState({ value: event.value, valid: false });
217
217
  }
218
- }, locale: locale, dateFormat: this.props.dateFormat.replace('YYYY', 'yy').replace('MM', 'mm').replace('DD', 'dd'), showIcon: true, icon: "icon-calendar", headerTemplate: function () {
218
+ }, locale: locale, placeholder: this.props.dateFormat.replace('YYYY', 'yyyy').replace('MM', 'mm').replace('DD', 'dd'), dateFormat: this.props.dateFormat.replace('YYYY', 'yy').replace('MM', 'mm').replace('DD', 'dd'), showIcon: true, icon: "icon-calendar", headerTemplate: function () {
219
219
  return _this.props.headerButtonBar == null ? null : (React.createElement("div", { className: "datepicker-header-toolbar" }, _this.props.headerButtonBar.map(function (_a, i) {
220
220
  var label = _a.label, days = _a.days;
221
221
  return (React.createElement("button", { key: i, className: "btn btn--small", onClick: function () {
@@ -68,11 +68,11 @@ var DatePicker_1 = require("../components/DatePicker");
68
68
  var common_1 = require("@sourcefabric/common");
69
69
  var lodash_1 = require("lodash");
70
70
  var TimePicker_1 = require("./TimePicker");
71
- var IconButton_1 = require("./IconButton");
72
71
  var Form_1 = require("./Form");
73
72
  var react_id_generator_1 = __importDefault(require("react-id-generator"));
74
73
  var date_fns_1 = require("date-fns");
75
74
  var helpers_1 = require("../helpers");
75
+ var Button_1 = require("./Button");
76
76
  var DateTimePicker = /** @class */ (function (_super) {
77
77
  __extends(DateTimePicker, _super);
78
78
  function DateTimePicker() {
@@ -169,12 +169,13 @@ var DateTimePicker = /** @class */ (function (_super) {
169
169
  }
170
170
  })();
171
171
  return (React.createElement(Form_1.InputWrapper, { label: this.props.label, error: this.props.error, invalid: this.props.error != null, required: this.props.required, disabled: this.props.disabled, info: this.props.info, inlineLabel: this.props.inlineLabel, labelHidden: this.props.labelHidden, htmlId: this.htmlId, tabindex: this.props.tabindex, fullWidth: this.props.fullWidth, inputWrapper: this.props.inputWrapper, "data-test-id": this.props['data-test-id'], ref: this.props.ref },
172
- React.createElement(common_1.Spacer, { h: true, gap: "8", alignItems: "end", noWrap: true },
172
+ React.createElement(common_1.Spacer, { h: true, gap: "8", alignItems: "center", noWrap: true },
173
173
  React.createElement("div", { style: { flexGrow: 1 } },
174
174
  React.createElement(DatePicker_1.DatePicker, { disabled: this.props.disabled, preview: this.props.preview, required: this.props.required, hideClearButton: true, value: dateValue, onChange: this.handleDateChange, dateFormat: this.props.dateFormat, inlineLabel: true, labelHidden: true, fullWidth: this.props.fullWidth, "data-test-id": "date-input" })),
175
- React.createElement("div", { style: { flexGrow: 1 } },
175
+ React.createElement("div", { style: { flexGrow: 0, color: 'var(--color-text-muted)' } }, "@"),
176
+ React.createElement("div", { className: "time-picker--date-time", style: { flexGrow: 1 } },
176
177
  React.createElement(TimePicker_1.TimePicker, { disabled: this.props.disabled || (timeRequiresDate && dateValue == null), preview: this.props.preview, value: timeValue, onChange: this.handleTimeChange, inlineLabel: true, labelHidden: true, allowSeconds: this.props.allowSeconds, fullWidth: this.props.fullWidth, required: this.props.required, headerTemplate: this.props.timeHeaderTemplate, footerTemplate: this.props.timeFooterTemplate, "data-test-id": "time-input" })),
177
- this.props.preview !== true && (React.createElement(IconButton_1.IconButton, { disabled: this.props.disabled, icon: "remove-sign", onClick: this.handleClear, ariaValue: "Clear" })))));
178
+ this.props.preview !== true && (React.createElement(Button_1.Button, { icon: "remove-sign", text: "Clear", tooltip: "Clear", onClick: this.handleClear, type: "default", style: "hollow", iconOnly: true, disabled: this.props.disabled })))));
178
179
  };
179
180
  return DateTimePicker;
180
181
  }(React.PureComponent));
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import { IInputWrapper } from './Form/InputWrapper';
3
3
  interface IProps extends IInputWrapper {
4
4
  value: string | null;
5
- onChange(valueNext: string): void;
5
+ onChange(valueNext: string | null): void;
6
6
  allowSeconds?: boolean;
7
7
  headerTemplate?: React.ReactNode;
8
8
  footerTemplate?: React.ReactNode;
@@ -54,9 +54,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
54
54
  exports.TimePicker = void 0;
55
55
  var React = __importStar(require("react"));
56
56
  var react_id_generator_1 = __importDefault(require("react-id-generator"));
57
+ var classnames_1 = __importDefault(require("classnames"));
57
58
  var Form_1 = require("./Form");
58
59
  var TimePickerPopover_1 = require("./TimePickerPopover");
59
60
  var ShowPopup_1 = require("./ShowPopup");
61
+ var Icon_1 = require("./Icon");
62
+ var IconButton_1 = require("./IconButton");
60
63
  var TimePicker = /** @class */ (function (_super) {
61
64
  __extends(TimePicker, _super);
62
65
  function TimePicker(props) {
@@ -75,7 +78,7 @@ var TimePicker = /** @class */ (function (_super) {
75
78
  return (React.createElement("div", null,
76
79
  React.createElement("span", null, this.props.value)));
77
80
  }
78
- return (React.createElement(Form_1.InputWrapper, { label: this.props.label, error: this.props.error, invalid: this.props.error != null, required: this.props.required, disabled: this.props.disabled, info: this.props.info, inlineLabel: this.props.inlineLabel, labelHidden: this.props.labelHidden, htmlId: this.htmlId, tabindex: this.props.tabindex },
81
+ return (React.createElement(Form_1.InputWrapper, { label: this.props.label, error: this.props.error, invalid: this.props.error != null, required: this.props.required, disabled: this.props.disabled, info: this.props.info, inlineLabel: this.props.inlineLabel, labelHidden: this.props.labelHidden, htmlId: this.htmlId, tabindex: this.props.tabindex, inputWrapper: this.props.inputWrapper },
79
82
  this.state.popupOpen && (React.createElement(ShowPopup_1.PopupPositioner, { getReferenceElement: function () { return _this.timeInputRef.current; }, placement: "bottom-start", onClose: function () {
80
83
  _this.setState({
81
84
  popupOpen: false,
@@ -86,17 +89,37 @@ var TimePicker = /** @class */ (function (_super) {
86
89
  popupOpen: false,
87
90
  });
88
91
  }, allowSeconds: this.props.allowSeconds, headerTemplate: this.props.headerTemplate, footerTemplate: this.props.footerTemplate }))),
89
- React.createElement("input", { style: {
90
- cursor: 'pointer',
91
- }, ref: this.timeInputRef, value: (_a = this.props.value) !== null && _a !== void 0 ? _a : '', type: "time", onClick: function (e) {
92
- // don't show default popup
93
- e.preventDefault();
94
- _this.setState({
95
- popupOpen: true,
96
- });
97
- }, className: "sd-input__input", id: this.htmlId, "aria-labelledby": this.htmlId + 'label', step: this.props.allowSeconds ? 1 : undefined, required: this.props.required, disabled: this.props.disabled, onChange: function (event) {
98
- _this.props.onChange(event.target.value);
99
- }, "data-test-id": this.props['data-test-id'] })));
92
+ React.createElement("div", { className: "time-picker__input" },
93
+ React.createElement("input", { style: {
94
+ cursor: 'pointer',
95
+ }, ref: this.timeInputRef, value: (_a = this.props.value) !== null && _a !== void 0 ? _a : '', type: "time", onClick: function (e) {
96
+ // don't show default popup
97
+ e.preventDefault();
98
+ _this.setState({
99
+ popupOpen: true,
100
+ });
101
+ }, onKeyDown: function (event) {
102
+ // don't show default popup
103
+ event.preventDefault();
104
+ if (event.key === ' ') {
105
+ _this.setState({
106
+ popupOpen: !_this.state.popupOpen,
107
+ });
108
+ }
109
+ else if ((event.key === 'Enter' || event.key === 'Escape') && _this.state.popupOpen) {
110
+ _this.setState({
111
+ popupOpen: false,
112
+ });
113
+ }
114
+ }, className: (0, classnames_1.default)('sd-input__input', {
115
+ 'sd-input__input--has-value': this.props.value != null,
116
+ }), id: this.htmlId, "aria-labelledby": this.htmlId + 'label', step: this.props.allowSeconds ? 1 : undefined, required: this.props.required, disabled: this.props.disabled, onChange: function (event) {
117
+ _this.props.onChange(event.target.value);
118
+ }, "data-test-id": this.props['data-test-id'] }),
119
+ React.createElement("div", { className: "time-picker__icon-wrapper" },
120
+ React.createElement(Icon_1.Icon, { name: "time" }),
121
+ React.createElement("div", { className: "clear-time-picker" },
122
+ React.createElement(IconButton_1.IconButton, { icon: "remove-sign", size: "small", ariaValue: "Clear", toolTipFlow: "left", onClick: function () { return _this.props.onChange(null); } }))))));
100
123
  };
101
124
  return TimePicker;
102
125
  }(React.PureComponent));
@@ -64,7 +64,7 @@ var TimeValueHolder = /** @class */ (function (_super) {
64
64
  }
65
65
  TimeValueHolder.prototype.scrollToValue = function () {
66
66
  var _a;
67
- (_a = this.spanEl.current) === null || _a === void 0 ? void 0 : _a.scrollIntoView();
67
+ (_a = this.spanEl.current) === null || _a === void 0 ? void 0 : _a.scrollIntoView({ block: 'start', behavior: 'smooth' });
68
68
  };
69
69
  TimeValueHolder.prototype.render = function () {
70
70
  var _a;
@@ -152,18 +152,22 @@ var TimePickerPopover = /** @class */ (function (_super) {
152
152
  overflowY: 'auto',
153
153
  scrollbarWidth: 'none',
154
154
  marginTop: 'var(--gap-1)',
155
+ scrollBehavior: 'smooth',
155
156
  };
156
- return (React.createElement("div", { className: "sd-shadow--z2 radius-md", onBlur: this.props.closePopup },
157
+ return (React.createElement("div", { className: "sd-shadow--z2 radius-md", onBlur: this.props.closePopup, onKeyDown: function (event) {
158
+ if (event.key === 'Enter' || event.key === 'Escape') {
159
+ event.preventDefault();
160
+ _this.props.closePopup();
161
+ }
162
+ }, tabIndex: 0 },
157
163
  React.createElement(common_1.Spacer, { v: true, gap: "0", style: {
158
- width: 200,
159
- padding: 'var(--gap-1)',
160
- backgroundColor: 'var(--color-bg-00)',
164
+ minWidth: 200,
165
+ maxWidth: 'max-content',
166
+ backgroundColor: 'var(--color-dropdown-menu-Bg)',
161
167
  borderRadius: 'var(--b-radius--small)',
162
168
  } },
163
- this.props.headerTemplate && (React.createElement(React.Fragment, null,
164
- this.props.headerTemplate,
165
- React.createElement(ContentDivider_1.ContentDivider, { border: true, type: "solid", orientation: "horizontal", margin: "none" }))),
166
- React.createElement(common_1.Spacer, { h: true, gap: "4", noWrap: true, justifyContent: "center", alignItems: "start" },
169
+ this.props.headerTemplate && (React.createElement("div", { className: "px-1-5 py-1", style: { borderBottom: '1px solid var(--color-line-x-light)' } }, this.props.headerTemplate)),
170
+ React.createElement(common_1.Spacer, { h: true, gap: "4", noWrap: true, justifyContent: "center", alignItems: "start", style: { paddingInline: 'var(--gap-1)' } },
167
171
  React.createElement(common_1.Spacer, { v: true, gap: "4", style: styleForColumnOfUnit, alignItems: "center", noWrap: true }, (0, time_1.getOptionsForTimeUnit)('hours', this.is12HourFormat).map(function (hour) {
168
172
  var isActiveHour = hour === parseUnitOfTime('hours', _this.props.value, _this.is12HourFormat);
169
173
  return (React.createElement(TimeValueHolder, { key: hour, ref: isActiveHour ? _this.inputRefs[0] : undefined, onClick: function () {
@@ -216,9 +220,7 @@ var TimePickerPopover = /** @class */ (function (_super) {
216
220
  value: 'PM',
217
221
  },
218
222
  ], value: parseInt(((_a = this.props.value) !== null && _a !== void 0 ? _a : '').split(':')[0], 10) < 12 ? 'AM' : 'PM' })))),
219
- this.props.footerTemplate && (React.createElement(React.Fragment, null,
220
- React.createElement(ContentDivider_1.ContentDivider, { border: true, type: "solid", orientation: "horizontal", margin: "none" }),
221
- this.props.footerTemplate)))));
223
+ this.props.footerTemplate && (React.createElement("div", { className: "px-1-5 py-1", style: { borderTop: '1px solid var(--color-line-x-light)' } }, this.props.footerTemplate)))));
222
224
  };
223
225
  return TimePickerPopover;
224
226
  }(React.PureComponent));