@steroidsjs/core 3.0.72 → 3.0.74

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.
@@ -6957,6 +6957,15 @@
6957
6957
  "example": "{width: '45%'}",
6958
6958
  "defaultValue": null
6959
6959
  },
6960
+ {
6961
+ "name": "timeZone",
6962
+ "decorators": [],
6963
+ "description": "Часовой пояс в формате IANA, для выделения текущего дня, если дата изменена в CalendarSystem.\nНе влияет на изменение даты в Calendar.",
6964
+ "required": false,
6965
+ "type": "string",
6966
+ "example": "'Europe/Moscow'",
6967
+ "defaultValue": null
6968
+ },
6960
6969
  {
6961
6970
  "name": "value",
6962
6971
  "decorators": [],
@@ -7142,6 +7151,14 @@
7142
7151
  "type": "CSSProperties",
7143
7152
  "example": "{width: '45%'}"
7144
7153
  },
7154
+ {
7155
+ "name": "timeZone",
7156
+ "decorators": [],
7157
+ "description": "Часовой пояс в формате IANA, для выделения текущего дня, если дата изменена в CalendarSystem.\nНе влияет на изменение даты в Calendar.",
7158
+ "required": false,
7159
+ "type": "string",
7160
+ "example": "'Europe/Moscow'"
7161
+ },
7145
7162
  {
7146
7163
  "name": "toYear",
7147
7164
  "decorators": [],
@@ -7150,6 +7167,14 @@
7150
7167
  "type": "Date",
7151
7168
  "example": null
7152
7169
  },
7170
+ {
7171
+ "name": "todayDate",
7172
+ "decorators": [],
7173
+ "description": "Текущая дата в формате Date, используется для выделения текущего дня в календаре.\nНе влияет на изменение даты в Calendar.",
7174
+ "required": true,
7175
+ "type": "Date",
7176
+ "example": null
7177
+ },
7153
7178
  {
7154
7179
  "name": "value",
7155
7180
  "decorators": [],
@@ -7822,6 +7847,15 @@
7822
7847
  "example": "{width: '45%'}",
7823
7848
  "defaultValue": null
7824
7849
  },
7850
+ {
7851
+ "name": "timeZone",
7852
+ "decorators": [],
7853
+ "description": "Часовой пояс в формате IANA",
7854
+ "required": false,
7855
+ "type": "string",
7856
+ "example": "'Europe/Moscow'",
7857
+ "defaultValue": null
7858
+ },
7825
7859
  {
7826
7860
  "name": "users",
7827
7861
  "decorators": [],
package/en.json CHANGED
@@ -1000,11 +1000,14 @@
1000
1000
  "Сохранение в localStorage уровней вложенности.": "",
1001
1001
  "Изначально отображать все элементы раскрытыми": "",
1002
1002
  "Нужно ли отображать кнопку \"сегодня\" под календарем.": "",
1003
+ "Часовой пояс в формате IANA, для выделения текущего дня, если дата изменена в CalendarSystem.\nНе влияет на изменение даты в Calendar.": "",
1004
+ "Текущая дата в формате Date, используется для выделения текущего дня в календаре.\nНе влияет на изменение даты в Calendar.": "",
1003
1005
  "Дополнительные свойства для списка календарей бокового календаря": "",
1004
1006
  "Дополнительные свойства для бокового календаря": "",
1005
1007
  "Данные для формы с текущими датами календаря": "",
1006
1008
  "Свойства для сетки дня": "",
1007
1009
  "Свойства для сетки месяца": "",
1010
+ "Часовой пояс в формате IANA": "",
1008
1011
  "Свойства для сетки недели": "",
1009
1012
  "Конечная дата": "",
1010
1013
  "Начальная дата": "",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steroidsjs/core",
3
- "version": "3.0.72",
3
+ "version": "3.0.74",
4
4
  "description": "",
5
5
  "author": "Vladimir Kozhin <hello@kozhindev.com>",
6
6
  "repository": {
@@ -63,6 +63,12 @@ export interface ICalendarProps extends IUiComponent {
63
63
  * @default true
64
64
  */
65
65
  showTodayButton?: boolean;
66
+ /**
67
+ * Часовой пояс в формате IANA, для выделения текущего дня, если дата изменена в CalendarSystem.
68
+ * Не влияет на изменение даты в Calendar.
69
+ * @example 'Europe/Moscow'
70
+ */
71
+ timeZone?: string;
66
72
  }
67
73
  export interface ICalendarViewProps extends ICalendarProps {
68
74
  /**
@@ -97,6 +103,11 @@ export interface ICalendarViewProps extends ICalendarProps {
97
103
  * Функция изменения состояние отображения панели для выбора месяца/года
98
104
  */
99
105
  toggleCaptionPanel: () => void;
106
+ /**
107
+ * Текущая дата в формате Date, используется для выделения текущего дня в календаре.
108
+ * Не влияет на изменение даты в Calendar.
109
+ */
110
+ todayDate: Date;
100
111
  }
101
112
  declare function Calendar(props: ICalendarProps): import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
102
113
  declare namespace Calendar {
@@ -1,8 +1,16 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  exports.__esModule = true;
3
6
  var react_1 = require("react");
7
+ var dayjs_1 = __importDefault(require("dayjs"));
8
+ var utc_1 = __importDefault(require("dayjs/plugin/utc"));
9
+ var timezone_1 = __importDefault(require("dayjs/plugin/timezone"));
4
10
  var hooks_1 = require("../../../hooks");
5
11
  var calendar_1 = require("../../../utils/calendar");
12
+ dayjs_1["default"].extend(utc_1["default"]);
13
+ dayjs_1["default"].extend(timezone_1["default"]);
6
14
  function Calendar(props) {
7
15
  var components = (0, hooks_1.useComponents)();
8
16
  var currentYear = new Date().getFullYear();
@@ -38,6 +46,15 @@ function Calendar(props) {
38
46
  props.onMonthChange(newMonth);
39
47
  }
40
48
  }, [props]);
49
+ var getTodayByTimezone = (0, react_1.useCallback)(function (timeZone) {
50
+ var now = (0, dayjs_1["default"])();
51
+ var zoned = timeZone ? now.tz(timeZone) : now;
52
+ var y = zoned.year();
53
+ var m = zoned.month();
54
+ var d = zoned.date();
55
+ return new Date(y, m, d, 12, 0, 0, 0);
56
+ }, []);
57
+ var todayDate = (0, react_1.useMemo)(function () { return getTodayByTimezone(props.timeZone); }, [props.timeZone, getTodayByTimezone]);
41
58
  var viewProps = (0, react_1.useMemo)(function () { return ({
42
59
  month: month,
43
60
  toYear: toYear,
@@ -47,6 +64,7 @@ function Calendar(props) {
47
64
  selectedDates: selectedDates,
48
65
  toggleCaptionPanel: toggleCaptionPanel,
49
66
  isCaptionPanelVisible: isCaptionPanelVisible,
67
+ todayDate: todayDate,
50
68
  showTodayButton: props.showTodayButton,
51
69
  style: props.style,
52
70
  className: props.className,
@@ -56,7 +74,7 @@ function Calendar(props) {
56
74
  numberOfMonths: props.numberOfMonths
57
75
  }); }, [fromYear, isCaptionPanelVisible, month, onDaySelect, onMonthSelect, props.className,
58
76
  props.numberOfMonths, props.pickerProps, props.showFooter, props.showTodayButton, props.style,
59
- props.viewProps, selectedDates, toYear, toggleCaptionPanel]);
77
+ props.viewProps, selectedDates, toYear, toggleCaptionPanel, todayDate]);
60
78
  return components.ui.renderView(props.view || 'content.CalendarView', viewProps);
61
79
  }
62
80
  Calendar.defaultProps = {
@@ -165,6 +165,11 @@ export interface ICalendarSystemProps extends IUiComponent {
165
165
  dateFromAttribute?: string;
166
166
  dateToAttribute?: string;
167
167
  };
168
+ /**
169
+ * Часовой пояс в формате IANA
170
+ * @example 'Europe/Moscow'
171
+ */
172
+ timeZone?: string;
168
173
  [key: string]: any;
169
174
  }
170
175
  export interface ICalendarSystemViewProps extends Pick<ICalendarSystemProps, 'className' | 'style' | 'additionalViewProps' | 'users' | 'asideCalendarProps' | 'asideCalendarCheckboxListProps'> {
@@ -2,15 +2,21 @@ import React from 'react';
2
2
  import { ICalendarSystemProps, ICalendarUser, IEventGroup } from '../CalendarSystem';
3
3
  export declare const useCalendarSystem: (props: ICalendarSystemProps) => {
4
4
  monthGridWeekDays: any;
5
- monthGridCalendarDays: import("../CalendarSystem").IDay[];
6
- weekGridTwentyFourHoursArray: string[];
7
- weekGridCurrentWeekDays: {
8
- dayNumber: number;
5
+ monthGridCalendarDays: {
9
6
  date: Date;
7
+ dayNumber: number;
10
8
  outOfRange?: boolean;
11
9
  isToday?: boolean;
12
10
  formattedDisplay?: string;
13
11
  }[];
12
+ weekGridTwentyFourHoursArray: string[];
13
+ weekGridCurrentWeekDays: {
14
+ date: Date;
15
+ formattedDisplay: any;
16
+ isToday: boolean;
17
+ dayNumber: number;
18
+ outOfRange?: boolean;
19
+ }[];
14
20
  dayGridTwentyFourHoursArray: string[];
15
21
  dayGridCurrentDay: import("../CalendarSystem").IDay;
16
22
  dateToDisplay: any;
@@ -61,21 +61,21 @@ var useCalendarSystem = function (props) {
61
61
  setUsers(props.users);
62
62
  }, [props.users]);
63
63
  //Главная дата, от которой происходят все вычисления
64
- var _f = react_1["default"].useState((0, utils_1.getFormattedDay)()), generalCurrentDay = _f[0], setGeneralCurrentDay = _f[1];
64
+ var _f = react_1["default"].useState((0, utils_1.getFormattedDay)(null, props.timeZone)), generalCurrentDay = _f[0], setGeneralCurrentDay = _f[1];
65
65
  var isGeneralCurrentDayNeedsUpdate = (0, react_1.useRef)(true);
66
66
  var updateGeneralCurrentDay = (0, react_1.useCallback)(function (newDate) {
67
67
  if (!isGeneralCurrentDayNeedsUpdate.current) {
68
68
  isGeneralCurrentDayNeedsUpdate.current = true;
69
69
  return;
70
70
  }
71
- setGeneralCurrentDay((0, utils_1.getFormattedDay)(newDate));
72
- }, [isGeneralCurrentDayNeedsUpdate]);
71
+ setGeneralCurrentDay((0, utils_1.getFormattedDay)(newDate, props.timeZone));
72
+ }, [isGeneralCurrentDayNeedsUpdate, props.timeZone]);
73
73
  var onCalendarChangedMonth = react_1["default"].useCallback(function (newDate) {
74
74
  updateGeneralCurrentDay(newDate);
75
75
  }, [updateGeneralCurrentDay]);
76
76
  var _g = (0, useDisplayDate_1["default"])(generalCurrentDay), dateToDisplay = _g.dateToDisplay, changeDisplayFormat = _g.changeDisplayFormat;
77
- var _h = (0, useMonthGrid_1["default"])(generalCurrentDay), monthGridWeekDays = _h.monthGridWeekDays, monthGridCalendarDays = _h.monthGridCalendarDays;
78
- var _j = (0, useWeekGrid_1["default"])(generalCurrentDay), weekGridTwentyFourHoursArray = _j.weekGridTwentyFourHoursArray, weekGridCurrentWeekDays = _j.weekGridCurrentWeekDays;
77
+ var _h = (0, useMonthGrid_1["default"])(generalCurrentDay, props.timeZone), monthGridWeekDays = _h.monthGridWeekDays, monthGridCalendarDays = _h.monthGridCalendarDays;
78
+ var _j = (0, useWeekGrid_1["default"])(generalCurrentDay, props.timeZone), weekGridTwentyFourHoursArray = _j.weekGridTwentyFourHoursArray, weekGridCurrentWeekDays = _j.weekGridCurrentWeekDays;
79
79
  var _k = (0, useDayGrid_1.useDayGrid)(generalCurrentDay), dayGridTwentyFourHoursArray = _k.dayGridTwentyFourHoursArray, dayGridCurrentDay = _k.dayGridCurrentDay;
80
80
  var _l = (0, useCalendarType_1.useCalendarType)(function (newType) {
81
81
  if (newType === CalendarType_1["default"].DAY) {
@@ -1,6 +1,12 @@
1
1
  import { IDay } from '../CalendarSystem';
2
- declare const useMonthGrid: (generalCurrentDay: IDay) => {
2
+ declare const useMonthGrid: (generalCurrentDay: IDay, timeZone?: string) => {
3
3
  monthGridWeekDays: any;
4
- monthGridCalendarDays: IDay[];
4
+ monthGridCalendarDays: {
5
+ date: Date;
6
+ dayNumber: number;
7
+ outOfRange?: boolean;
8
+ isToday?: boolean;
9
+ formattedDisplay?: string;
10
+ }[];
5
11
  };
6
12
  export default useMonthGrid;
@@ -18,7 +18,7 @@ var utils_1 = require("../utils/utils");
18
18
  var FIRST_DAY = 1;
19
19
  var ONE_MONTH = 1;
20
20
  var TOTAL_DAYS_IN_CALENDAR = 42;
21
- var useMonthGrid = function (generalCurrentDay) {
21
+ var useMonthGrid = function (generalCurrentDay, timeZone) {
22
22
  var currentMonthData = (0, react_1.useMemo)(function () {
23
23
  var _a, _b;
24
24
  var currentYear = (_a = generalCurrentDay.date) === null || _a === void 0 ? void 0 : _a.getFullYear();
@@ -70,8 +70,12 @@ var useMonthGrid = function (generalCurrentDay) {
70
70
  outOfRange: currentDate.getMonth() > currentMonth
71
71
  });
72
72
  }
73
- return innerCalendarArray.map(function (day) { return (0, utils_1.isDateIsToday)(day.date) ? (__assign(__assign({}, day), { isToday: true })) : day; });
74
- }, [generalCurrentDay.date, currentMonthData]);
73
+ return innerCalendarArray.map(function (day) {
74
+ var zoned = (0, utils_1.getDateInTimeZone)(day.date, timeZone);
75
+ return (0, utils_1.isTodayInTimeZone)(zoned, timeZone)
76
+ ? __assign(__assign({}, day), { date: zoned, isToday: true }) : __assign(__assign({}, day), { date: zoned });
77
+ });
78
+ }, [generalCurrentDay.date, currentMonthData, timeZone]);
75
79
  return {
76
80
  monthGridWeekDays: (0, utils_1.getWeekDays)(),
77
81
  monthGridCalendarDays: calendarArray
@@ -1,12 +1,12 @@
1
1
  import { IDay } from '../CalendarSystem';
2
- declare const useWeekGrid: (generalCurrentDay: IDay) => {
2
+ declare const useWeekGrid: (generalCurrentDay: IDay, timeZone?: string) => {
3
3
  weekGridTwentyFourHoursArray: string[];
4
4
  weekGridCurrentWeekDays: {
5
- dayNumber: number;
6
5
  date: Date;
6
+ formattedDisplay: any;
7
+ isToday: boolean;
8
+ dayNumber: number;
7
9
  outOfRange?: boolean;
8
- isToday?: boolean;
9
- formattedDisplay?: string;
10
10
  }[];
11
11
  };
12
12
  export default useWeekGrid;
@@ -2,11 +2,11 @@
2
2
  exports.__esModule = true;
3
3
  var react_1 = require("react");
4
4
  var utils_1 = require("../utils/utils");
5
- var useWeekGrid = function (generalCurrentDay) {
5
+ var useWeekGrid = function (generalCurrentDay, timeZone) {
6
6
  var currentWeek = (0, react_1.useMemo)(function () {
7
- var formattedWeek = (0, utils_1.getFormattedWeekFromDate)(generalCurrentDay.date);
7
+ var formattedWeek = (0, utils_1.getFormattedWeekFromDate)(generalCurrentDay.date, timeZone);
8
8
  return formattedWeek;
9
- }, [generalCurrentDay.date]);
9
+ }, [generalCurrentDay.date, timeZone]);
10
10
  return {
11
11
  weekGridTwentyFourHoursArray: (0, utils_1.getTwentyFourHoursArray)(),
12
12
  weekGridCurrentWeekDays: currentWeek
@@ -1,17 +1,23 @@
1
1
  import { CSSProperties } from 'react';
2
2
  import { IDay, IEvent, IEventGroup } from '../CalendarSystem';
3
- export declare const getWeekDaysFromDate: (date: Date) => IDay[];
4
- export declare const isDateIsToday: (date: Date) => boolean;
3
+ export declare const getDateInTimeZone: (date: Date, timeZone?: string) => Date;
4
+ export declare const isTodayInTimeZone: (date: Date, timeZone?: string) => boolean;
5
+ export declare const getWeekDaysFromDate: (date: Date, timeZone?: string) => IDay[];
5
6
  export declare const getOmittedEvent: (event: IEvent | Omit<IEvent, 'color'>) => any;
6
7
  export declare const sortEventsInGroup: (group: IEventGroup) => Omit<IEvent, "color">[];
7
8
  export declare const getSourceCalendarControl: (control: string) => HTMLElement;
8
- export declare const getFormattedDay: (date?: Date) => IDay;
9
- export declare const getFormattedWeekFromDate: (fromDate?: Date) => {
9
+ export declare const getFormattedDay: (date?: Date, timeZone?: string) => {
10
10
  dayNumber: number;
11
11
  date: Date;
12
+ formattedDisplay: any;
13
+ isToday: boolean;
14
+ };
15
+ export declare const getFormattedWeekFromDate: (fromDate?: Date, timeZone?: string) => {
16
+ date: Date;
17
+ formattedDisplay: any;
18
+ isToday: boolean;
19
+ dayNumber: number;
12
20
  outOfRange?: boolean;
13
- isToday?: boolean;
14
- formattedDisplay?: string;
15
21
  }[];
16
22
  export declare const getTwentyFourHoursArray: () => string[];
17
23
  export declare const getWeekDays: () => any;
@@ -14,37 +14,57 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
15
  };
16
16
  exports.__esModule = true;
17
- exports.formatEventTime = exports.getTopMarginFromEvent = exports.getProportionFromEvent = exports.getWeekDays = exports.getTwentyFourHoursArray = exports.getFormattedWeekFromDate = exports.getFormattedDay = exports.getSourceCalendarControl = exports.sortEventsInGroup = exports.getOmittedEvent = exports.isDateIsToday = exports.getWeekDaysFromDate = void 0;
17
+ exports.formatEventTime = exports.getTopMarginFromEvent = exports.getProportionFromEvent = exports.getWeekDays = exports.getTwentyFourHoursArray = exports.getFormattedWeekFromDate = exports.getFormattedDay = exports.getSourceCalendarControl = exports.sortEventsInGroup = exports.getOmittedEvent = exports.getWeekDaysFromDate = exports.isTodayInTimeZone = exports.getDateInTimeZone = void 0;
18
18
  /* eslint-disable no-plusplus */
19
19
  var dayjs_1 = __importDefault(require("dayjs"));
20
+ var utc_1 = __importDefault(require("dayjs/plugin/utc"));
21
+ var timezone_1 = __importDefault(require("dayjs/plugin/timezone"));
20
22
  var omit_1 = __importDefault(require("lodash-es/omit"));
21
23
  var concat_1 = __importDefault(require("lodash-es/concat"));
22
24
  var slice_1 = __importDefault(require("lodash-es/slice"));
23
25
  var upperFirst_1 = __importDefault(require("lodash-es/upperFirst"));
24
26
  var ceil_1 = __importDefault(require("lodash-es/ceil"));
25
27
  var calendar_1 = require("../../../../utils/calendar");
26
- var SIX_DAYS_DIFF = 6;
27
- var MAX_DAYS_DIFF_IN_WEEK = 7;
28
+ dayjs_1["default"].extend(utc_1["default"]);
29
+ dayjs_1["default"].extend(timezone_1["default"]);
28
30
  var WEEK_DAY_FORMAT = 'dd, D MMM';
29
- var getWeekDaysFromDate = function (date) {
31
+ // Возвращает дату, смещённую относительно указанного часового пояса.
32
+ var getDateInTimeZone = function (date, timeZone) {
33
+ if (!timeZone) {
34
+ return date;
35
+ }
36
+ var zoned = dayjs_1["default"].utc(date).tz(timeZone, true); // true => сохраняет локальное время
37
+ return zoned.toDate();
38
+ };
39
+ exports.getDateInTimeZone = getDateInTimeZone;
40
+ // Проверяет, является ли данная дата сегодняшним днём в указанном часовом поясе.
41
+ var isTodayInTimeZone = function (date, timeZone) {
42
+ if (!timeZone) {
43
+ return (0, dayjs_1["default"])(date).isToday();
44
+ }
45
+ var now = (0, dayjs_1["default"])().tz(timeZone);
46
+ var target = dayjs_1["default"].utc(date).tz(timeZone);
47
+ return now.isSame(target, 'day');
48
+ };
49
+ exports.isTodayInTimeZone = isTodayInTimeZone;
50
+ var getWeekDaysFromDate = function (date, timeZone) {
30
51
  var weekDays = [];
31
52
  var firstDayOfWeek = new Date(date);
32
53
  var currentDay = date.getDay();
33
- var diff = currentDay === 0 ? SIX_DAYS_DIFF : currentDay - 1; // Разница между текущим днем и понедельником
34
- firstDayOfWeek.setDate(firstDayOfWeek.getDate() - diff); // Устанавливаем первый день недели (понедельник)
35
- for (var i = 0; i < MAX_DAYS_DIFF_IN_WEEK; i++) {
54
+ var diff = currentDay === 0 ? 6 : currentDay - 1;
55
+ firstDayOfWeek.setDate(firstDayOfWeek.getDate() - diff);
56
+ for (var i = 0; i < 7; i++) {
36
57
  var currentDate = new Date(firstDayOfWeek);
37
- currentDate.setDate(currentDate.getDate() + i);
58
+ currentDate.setDate(firstDayOfWeek.getDate() + i);
59
+ var zonedDate = (0, exports.getDateInTimeZone)(currentDate, timeZone);
38
60
  weekDays.push({
39
- dayNumber: currentDate.getDate(),
40
- date: new Date(currentDate)
61
+ dayNumber: zonedDate.getDate(),
62
+ date: zonedDate
41
63
  });
42
64
  }
43
65
  return weekDays;
44
66
  };
45
67
  exports.getWeekDaysFromDate = getWeekDaysFromDate;
46
- var isDateIsToday = function (date) { return (0, dayjs_1["default"])(date).isToday(); };
47
- exports.isDateIsToday = isDateIsToday;
48
68
  var getOmittedEvent = function (event) { return (0, omit_1["default"])(event, ['color', 'eventGroupId']); };
49
69
  exports.getOmittedEvent = getOmittedEvent;
50
70
  var sortEventsInGroup = function (group) { return group.events
@@ -56,26 +76,29 @@ var sortEventsInGroup = function (group) { return group.events
56
76
  exports.sortEventsInGroup = sortEventsInGroup;
57
77
  var getSourceCalendarControl = function (control) { return document.querySelector("[data-icon=\"control-".concat(control, "\"]")); };
58
78
  exports.getSourceCalendarControl = getSourceCalendarControl;
59
- var getFormattedDay = function (date) {
79
+ var getFormattedDay = function (date, timeZone) {
60
80
  if (date === void 0) { date = null; }
61
- var dateToFormat = date || new Date();
81
+ var base = date ? (0, dayjs_1["default"])(date) : (0, dayjs_1["default"])();
82
+ // Сбрасываем время до начала дня в часовом поясе
83
+ var zoned = timeZone
84
+ ? base.tz(timeZone).startOf('day')
85
+ : base.startOf('day');
86
+ var dayNumber = zoned.date();
87
+ var formattedDisplay = (0, calendar_1.convertDate)(zoned.toDate(), null, WEEK_DAY_FORMAT);
62
88
  return {
63
- dayNumber: dateToFormat.getDate(),
64
- date: new Date(dateToFormat),
65
- formattedDisplay: (0, calendar_1.convertDate)(dateToFormat, null, WEEK_DAY_FORMAT),
66
- isToday: (0, exports.isDateIsToday)(dateToFormat)
89
+ dayNumber: dayNumber,
90
+ date: zoned.toDate(),
91
+ formattedDisplay: formattedDisplay,
92
+ isToday: true
67
93
  };
68
94
  };
69
95
  exports.getFormattedDay = getFormattedDay;
70
- //TODO использовать существующие функции а не дублировать функционал
71
- var getFormattedWeekFromDate = function (fromDate) {
96
+ var getFormattedWeekFromDate = function (fromDate, timeZone) {
72
97
  if (fromDate === void 0) { fromDate = null; }
73
98
  var currentWeek = (0, exports.getWeekDaysFromDate)(fromDate || new Date());
74
99
  return currentWeek.map(function (dayOfWeek) {
75
- var copyOfDayWeek = __assign({}, dayOfWeek);
76
- copyOfDayWeek.formattedDisplay = (0, calendar_1.convertDate)(dayOfWeek.date, null, WEEK_DAY_FORMAT);
77
- copyOfDayWeek.isToday = (0, exports.isDateIsToday)(copyOfDayWeek.date);
78
- return copyOfDayWeek;
100
+ var zonedDate = dayOfWeek.date;
101
+ return __assign(__assign({}, dayOfWeek), { date: zonedDate, formattedDisplay: (0, calendar_1.convertDate)(zonedDate, null, WEEK_DAY_FORMAT), isToday: (0, exports.isTodayInTimeZone)(zonedDate, timeZone) });
79
102
  });
80
103
  };
81
104
  exports.getFormattedWeekFromDate = getFormattedWeekFromDate;
@@ -50,7 +50,8 @@ function AutoCompleteField(props) {
50
50
  primaryKey: props.primaryKey,
51
51
  items: items,
52
52
  inputValue: props.input.value,
53
- sourceItems: sourceItems
53
+ sourceItems: sourceItems,
54
+ hasCloseOnSelect: props.hasCloseOnSelect
54
55
  }), isOpened = _c.isOpened, setIsOpened = _c.setIsOpened, setIsFocused = _c.setIsFocused, hoveredId = _c.hoveredId, setHoveredId = _c.setHoveredId, selectedIds = _c.selectedIds, setSelectedIds = _c.setSelectedIds;
55
56
  var onOpen = (0, react_1.useCallback)(function () {
56
57
  setQuery('');
@@ -130,6 +131,7 @@ AutoCompleteField.defaultProps = {
130
131
  multiple: false,
131
132
  disabled: false,
132
133
  required: false,
133
- showClear: false
134
+ showClear: false,
135
+ hasCloseOnSelect: true
134
136
  };
135
137
  exports["default"] = (0, fieldWrapper_1["default"])(enums_1.FieldEnum.AUTO_COMPLETE_FIELD, AutoCompleteField);