indicator-ui 0.0.122 → 0.0.124

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.
package/dist/index.js CHANGED
@@ -6948,7 +6948,7 @@ function saveFormatDate(date, { from, to, errorNull = false, locale, toTimeZone,
6948
6948
  if (toTimeZone) {
6949
6949
  parsedDate = (0,date_fns_tz__WEBPACK_IMPORTED_MODULE_0__.toZonedTime)(parsedDate, toTimeZone);
6950
6950
  }
6951
- return (0,date_fns_tz__WEBPACK_IMPORTED_MODULE_0__.format)(parsedDate, to, { locale: locale, timeZone: toTimeZone });
6951
+ return (0,date_fns_tz__WEBPACK_IMPORTED_MODULE_0__.format)(parsedDate, to, { locale: locale });
6952
6952
  }
6953
6953
  catch (e) {
6954
6954
  console.warn(e);
@@ -9145,7 +9145,7 @@ __webpack_require__.r(__webpack_exports__);
9145
9145
 
9146
9146
 
9147
9147
 
9148
- function DateField({ value, disabled, required, isError, onChange, onFocus, dateFormat = 'dd.MM.yyyy', onBlur, minYear = 1000, maxYear = 9999, additionStyles, }) {
9148
+ function DateField({ value, disabled, required, isError, onChange, onFocus, dateFormat = 'dd.MM.yyyy', onBlur, minYear = 1000, maxYear = 9999, additionStyles, timeZone, placeholder, }) {
9149
9149
  const [dateValue, setDateValue] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(value);
9150
9150
  (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
9151
9151
  if (value !== dateValue)
@@ -9153,12 +9153,21 @@ function DateField({ value, disabled, required, isError, onChange, onFocus, date
9153
9153
  }, [value]);
9154
9154
  const handleChange = (newDate) => {
9155
9155
  setDateValue(newDate);
9156
- const formatDate = (0,_lib__WEBPACK_IMPORTED_MODULE_3__.saveFormatDate)(newDate, { from: dateFormat, to: dateFormat, errorNull: true });
9156
+ const formatDate = (0,_lib__WEBPACK_IMPORTED_MODULE_3__.saveFormatDate)(newDate, {
9157
+ from: dateFormat,
9158
+ to: dateFormat,
9159
+ errorNull: true,
9160
+ fromTimeZone: timeZone,
9161
+ toTimeZone: timeZone,
9162
+ });
9157
9163
  if (newDate.length === dateFormat.length && formatDate !== null && onChange) {
9158
9164
  onChange(formatDate);
9159
9165
  }
9166
+ else if (newDate.length === 0) {
9167
+ onChange('');
9168
+ }
9160
9169
  };
9161
- return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_FlexField__WEBPACK_IMPORTED_MODULE_4__.FlexField, { value: dateValue, onChange: handleChange, disabled: disabled, isError: isError, onFocus: onFocus, onBlur: onBlur, mask: dateFormat, blocks: {
9170
+ return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_FlexField__WEBPACK_IMPORTED_MODULE_4__.FlexField, { value: dateValue, placeholder: placeholder, onChange: handleChange, disabled: disabled, isError: isError, onFocus: onFocus, onBlur: onBlur, mask: dateFormat, blocks: {
9162
9171
  YYYY: {
9163
9172
  mask: react_imask__WEBPACK_IMPORTED_MODULE_2__.IMask.MaskedRange,
9164
9173
  from: minYear, // минимальный год
@@ -9200,7 +9209,6 @@ __webpack_require__.r(__webpack_exports__);
9200
9209
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
9201
9210
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
9202
9211
  /* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! clsx */ "./node_modules/clsx/dist/clsx.mjs");
9203
- /* harmony import */ var date_fns_locale__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! date-fns/locale */ "./node_modules/date-fns/locale/ru.js");
9204
9212
  /* harmony import */ var _lib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/lib */ "./src/lib/index.ts");
9205
9213
  /* harmony import */ var _styles__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../styles */ "./src/ui/InputFields/DateTimeField/styles/index.ts");
9206
9214
  /* harmony import */ var _TimeField__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./TimeField */ "./src/ui/InputFields/DateTimeField/ui/TimeField.tsx");
@@ -9212,83 +9220,101 @@ __webpack_require__.r(__webpack_exports__);
9212
9220
 
9213
9221
 
9214
9222
 
9215
-
9216
- function DateTimeField({ value, fieldConfig = 'datetime', onChange, dateFormat = 'dd.MM.yyyy', timeFormat = 'HH:mm', outFormat = 'iso-8601', additionStyle, ...props }) {
9217
- const isInputDate = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(value != undefined);
9218
- const isInputTime = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(value != undefined);
9223
+ function DateTimeField({ value, fieldConfig = 'datetime', onChange, dateFormat = 'dd.MM.yyyy', timeFormat = 'HH:mm', outFormat = 'iso-8601', additionStyle, datePlaceholder, timePlaceholder, timeZone = 'Z', ...props }) {
9219
9224
  const getDateValue = () => {
9220
9225
  if (value === undefined)
9221
9226
  return undefined;
9222
9227
  if (outFormat === 'iso-8601') {
9223
9228
  return new Date(value);
9224
9229
  }
9225
- return (0,_lib__WEBPACK_IMPORTED_MODULE_3__.saveParseDate)(value, { from: outFormat });
9230
+ return (0,_lib__WEBPACK_IMPORTED_MODULE_3__.saveParseDate)(value, { from: outFormat, fromTimeZone: timeZone });
9231
+ };
9232
+ const initDate = () => {
9233
+ if (fieldConfig === 'time' || value === undefined)
9234
+ return undefined;
9235
+ const curDate = getDateValue();
9236
+ return (0,_lib__WEBPACK_IMPORTED_MODULE_3__.saveFormatDate)(curDate, { to: dateFormat, errorNull: true, toTimeZone: timeZone }) ?? undefined;
9237
+ };
9238
+ const initTime = () => {
9239
+ if (fieldConfig === 'date' || value === undefined)
9240
+ return undefined;
9241
+ const curDate = getDateValue();
9242
+ return (0,_lib__WEBPACK_IMPORTED_MODULE_3__.saveFormatDate)(curDate, { to: timeFormat, errorNull: true, toTimeZone: timeZone }) ?? undefined;
9243
+ };
9244
+ const setTimeInDate = (res, newTime) => {
9245
+ const dateTime = (0,_lib__WEBPACK_IMPORTED_MODULE_3__.saveParseDate)(newTime, { from: timeFormat, fromTimeZone: timeZone });
9246
+ if (dateTime != null) {
9247
+ res.setHours(dateTime.getHours());
9248
+ res.setMinutes(dateTime.getMinutes());
9249
+ res.setSeconds(dateTime.getSeconds());
9250
+ res.setMilliseconds(dateTime.getMilliseconds());
9251
+ }
9252
+ };
9253
+ const setDateInDate = (res, newDate) => {
9254
+ const dateTime = (0,_lib__WEBPACK_IMPORTED_MODULE_3__.saveParseDate)(newDate, { from: dateFormat, fromTimeZone: timeZone });
9255
+ if (dateTime != null) {
9256
+ res.setFullYear(dateTime.getFullYear());
9257
+ res.setMonth(dateTime.getMonth());
9258
+ res.setDate(dateTime.getDate());
9259
+ }
9226
9260
  };
9227
9261
  const setDateValue = (newValue) => {
9228
- if (onChange) {
9262
+ if (onChange && newValue) {
9263
+ let dateFormat = '';
9229
9264
  if (outFormat === 'iso-8601') {
9230
- onChange(newValue.toISOString());
9265
+ dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX";
9231
9266
  }
9232
9267
  else {
9233
- const res = (0,_lib__WEBPACK_IMPORTED_MODULE_3__.saveFormatDate)(newValue, { to: outFormat });
9234
- if (res != null && typeof res === 'string') {
9235
- onChange(res);
9236
- }
9268
+ dateFormat = outFormat;
9269
+ }
9270
+ const res = (0,_lib__WEBPACK_IMPORTED_MODULE_3__.saveFormatDate)(newValue, {
9271
+ to: dateFormat,
9272
+ toTimeZone: timeZone,
9273
+ fromTimeZone: timeZone
9274
+ });
9275
+ if (res != null && typeof res === 'string') {
9276
+ onChange(res);
9237
9277
  }
9238
9278
  }
9239
9279
  };
9280
+ const [time, setTime] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(initTime());
9281
+ const [date, setDate] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(initDate());
9282
+ (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
9283
+ if (time === '' && date === '') {
9284
+ onChange('');
9285
+ }
9286
+ else if (time || date) {
9287
+ const resDate = new Date();
9288
+ switch (fieldConfig) {
9289
+ case 'datetime':
9290
+ if (time && date) {
9291
+ setDateInDate(resDate, date);
9292
+ setTimeInDate(resDate, time);
9293
+ }
9294
+ break;
9295
+ case 'date':
9296
+ if (date) {
9297
+ setDateInDate(resDate, date);
9298
+ }
9299
+ break;
9300
+ case 'time':
9301
+ if (time) {
9302
+ setTimeInDate(resDate, time);
9303
+ }
9304
+ break;
9305
+ }
9306
+ setDateValue(resDate);
9307
+ }
9308
+ }, [time, date]);
9240
9309
  const getTimeContent = () => {
9241
9310
  if (fieldConfig == 'date')
9242
9311
  return undefined;
9243
- const handleChange = (newTime) => {
9244
- const dateValue = getDateValue();
9245
- let res = new Date();
9246
- const dateTime = (0,_lib__WEBPACK_IMPORTED_MODULE_3__.saveParseDate)(newTime, { from: timeFormat });
9247
- if (dateValue != null) {
9248
- res = dateValue;
9249
- }
9250
- if (dateTime != null) {
9251
- res.setHours(dateTime.getHours());
9252
- res.setMinutes(dateTime.getMinutes());
9253
- res.setSeconds(dateTime.getSeconds());
9254
- res.setMilliseconds(dateTime.getMilliseconds());
9255
- setDateValue(res);
9256
- }
9257
- };
9258
- const getTime = () => {
9259
- if (value === undefined)
9260
- return undefined;
9261
- const dateValue = getDateValue();
9262
- const res = (0,_lib__WEBPACK_IMPORTED_MODULE_3__.saveFormatDate)(dateValue, { to: timeFormat, locale: date_fns_locale__WEBPACK_IMPORTED_MODULE_7__.ru });
9263
- return typeof res === 'string' ? res : undefined;
9264
- };
9265
- return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { className: _styles__WEBPACK_IMPORTED_MODULE_4__.DateTimeFieldStyle.item, children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_TimeField__WEBPACK_IMPORTED_MODULE_5__.TimeField, { ...props, onChange: handleChange, value: getTime(), timeFormat: timeFormat }) }));
9312
+ return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { className: _styles__WEBPACK_IMPORTED_MODULE_4__.DateTimeFieldStyle.item, children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_TimeField__WEBPACK_IMPORTED_MODULE_5__.TimeField, { ...props, placeholder: timePlaceholder, onChange: setTime, timeZone: timeZone, value: time, timeFormat: timeFormat }) }));
9266
9313
  };
9267
9314
  const getDateContent = () => {
9268
9315
  if (fieldConfig == 'time')
9269
9316
  return undefined;
9270
- const handleChange = (newDate) => {
9271
- const dateValue = getDateValue();
9272
- let res = new Date();
9273
- const dateTime = (0,_lib__WEBPACK_IMPORTED_MODULE_3__.saveParseDate)(newDate, { from: dateFormat });
9274
- if (dateValue != null) {
9275
- res = dateValue;
9276
- }
9277
- if (dateTime != null) {
9278
- res.setFullYear(dateTime.getFullYear());
9279
- res.setMonth(dateTime.getMonth());
9280
- res.setDate(dateTime.getDate());
9281
- setDateValue(res);
9282
- }
9283
- };
9284
- const getDate = () => {
9285
- if (value === undefined)
9286
- return undefined;
9287
- const dateValue = getDateValue();
9288
- const res = (0,_lib__WEBPACK_IMPORTED_MODULE_3__.saveFormatDate)(dateValue, { to: dateFormat, locale: date_fns_locale__WEBPACK_IMPORTED_MODULE_7__.ru });
9289
- return typeof res === 'string' ? res : undefined;
9290
- };
9291
- return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { className: _styles__WEBPACK_IMPORTED_MODULE_4__.DateTimeFieldStyle.item, children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_DateField__WEBPACK_IMPORTED_MODULE_6__.DateField, { ...props, value: getDate(), onChange: handleChange, dateFormat: dateFormat }) }));
9317
+ return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { className: _styles__WEBPACK_IMPORTED_MODULE_4__.DateTimeFieldStyle.item, children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_DateField__WEBPACK_IMPORTED_MODULE_6__.DateField, { ...props, placeholder: datePlaceholder, value: date, timeZone: timeZone, onChange: setDate, dateFormat: dateFormat }) }));
9292
9318
  };
9293
9319
  return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", { className: (0,clsx__WEBPACK_IMPORTED_MODULE_2__["default"])(_styles__WEBPACK_IMPORTED_MODULE_4__.DateTimeFieldStyle.DateTimeField, additionStyle), children: [getDateContent(), getTimeContent()] }));
9294
9320
  }
@@ -9318,7 +9344,7 @@ __webpack_require__.r(__webpack_exports__);
9318
9344
 
9319
9345
 
9320
9346
 
9321
- function TimeField({ value, disabled, required, isError, onChange, onFocus, timeFormat = 'HH:mm', onBlur, additionStyles, }) {
9347
+ function TimeField({ value, disabled, required, isError, onChange, onFocus, timeFormat = 'HH:mm', onBlur, placeholder, additionStyles, timeZone, }) {
9322
9348
  const [timeValue, setTimeValue] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(value);
9323
9349
  (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
9324
9350
  if (value !== timeValue)
@@ -9326,12 +9352,21 @@ function TimeField({ value, disabled, required, isError, onChange, onFocus, time
9326
9352
  }, [value]);
9327
9353
  const handleChange = (newTime) => {
9328
9354
  setTimeValue(newTime);
9329
- const formatTime = (0,_lib__WEBPACK_IMPORTED_MODULE_3__.saveFormatDate)(newTime, { from: timeFormat, to: timeFormat, errorNull: true });
9355
+ const formatTime = (0,_lib__WEBPACK_IMPORTED_MODULE_3__.saveFormatDate)(newTime, {
9356
+ from: timeFormat,
9357
+ to: timeFormat,
9358
+ errorNull: true,
9359
+ fromTimeZone: timeZone,
9360
+ toTimeZone: timeZone,
9361
+ });
9330
9362
  if (newTime.length === timeFormat.length && formatTime !== null && onChange) {
9331
9363
  onChange(formatTime);
9332
9364
  }
9365
+ else if (newTime.length === 0) {
9366
+ onChange('');
9367
+ }
9333
9368
  };
9334
- return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_FlexField__WEBPACK_IMPORTED_MODULE_4__.FlexField, { value: timeValue, onChange: handleChange, disabled: disabled, isError: isError, onFocus: onFocus, onBlur: onBlur, mask: timeFormat, blocks: {
9369
+ return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_FlexField__WEBPACK_IMPORTED_MODULE_4__.FlexField, { value: timeValue, placeholder: placeholder, onChange: handleChange, disabled: disabled, isError: isError, onFocus: onFocus, onBlur: onBlur, mask: timeFormat, blocks: {
9335
9370
  HH: {
9336
9371
  mask: react_imask__WEBPACK_IMPORTED_MODULE_2__.IMask.MaskedRange,
9337
9372
  from: 0,