@egov3/system-design 1.3.123 → 1.3.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.
Files changed (38) hide show
  1. package/dist/cjs/components/Calendar/Body/CalendarBody.module.css.js +2 -2
  2. package/dist/cjs/components/Calendar/Body/index.js +14 -5
  3. package/dist/cjs/components/Calendar/Body/index.js.map +1 -1
  4. package/dist/cjs/components/Calendar/Header/CalendarHeader.module.css.js +22 -0
  5. package/dist/cjs/components/Calendar/Header/CalendarHeader.module.css.js.map +1 -0
  6. package/dist/cjs/components/Calendar/Header/index.js +22 -0
  7. package/dist/cjs/components/Calendar/Header/index.js.map +1 -0
  8. package/dist/cjs/components/Calendar/index.js +49 -0
  9. package/dist/cjs/components/Calendar/index.js.map +1 -0
  10. package/dist/cjs/components/index.js +54 -52
  11. package/dist/cjs/components/index.js.map +1 -1
  12. package/dist/cjs/constants/calendar/index.js +9 -0
  13. package/dist/cjs/constants/calendar/index.js.map +1 -0
  14. package/dist/cjs/customHooks/useCalendar.js +23 -5
  15. package/dist/cjs/customHooks/useCalendar.js.map +1 -1
  16. package/dist/cjs/utils/date/convertType.js +34 -0
  17. package/dist/cjs/utils/date/convertType.js.map +1 -0
  18. package/dist/esm/components/Calendar/Body/CalendarBody.module.css.js +2 -2
  19. package/dist/esm/components/Calendar/Body/index.js +14 -5
  20. package/dist/esm/components/Calendar/Body/index.js.map +1 -1
  21. package/dist/esm/components/Calendar/Header/CalendarHeader.module.css.js +18 -0
  22. package/dist/esm/components/Calendar/Header/CalendarHeader.module.css.js.map +1 -0
  23. package/dist/esm/components/Calendar/Header/index.js +20 -0
  24. package/dist/esm/components/Calendar/Header/index.js.map +1 -0
  25. package/dist/esm/components/Calendar/index.js +47 -0
  26. package/dist/esm/components/Calendar/index.js.map +1 -0
  27. package/dist/esm/components/index.js +2 -0
  28. package/dist/esm/components/index.js.map +1 -1
  29. package/dist/esm/constants/calendar/index.js +7 -0
  30. package/dist/esm/constants/calendar/index.js.map +1 -0
  31. package/dist/esm/customHooks/useCalendar.js +21 -3
  32. package/dist/esm/customHooks/useCalendar.js.map +1 -1
  33. package/dist/esm/utils/date/convertType.js +32 -0
  34. package/dist/esm/utils/date/convertType.js.map +1 -0
  35. package/dist/types/components/Calendar/Body/index.d.ts +5 -0
  36. package/dist/types/index.d.ts +2 -1
  37. package/dist/types/interfaces/Calendar.d.ts +7 -0
  38. package/package.json +1 -1
@@ -2,8 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var css_248z = ".CalendarBody-module_wrapper__fd17C {\n display: flex;\n flex-direction: column;\n color: var(--text-disabled-color);\n}\n\n.CalendarBody-module_header__33b3Q {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 12px;\n}\n\n.CalendarBody-module_monthYear__efUvQ {\n display: flex;\n align-items: center;\n gap: 6px;\n width: 100%;\n color: var(--text-primary);\n}\n\n.CalendarBody-module_yearButton__Y76y1 {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.CalendarBody-module_navButton__cGVVz {\n padding: 0;\n cursor: pointer;\n}\n\n.CalendarBody-module_weekDays__zXG3- {\n height: 24px;\n}\n\n.CalendarBody-module_grid__HNGTZ,\n.CalendarBody-module_weekDays__zXG3- {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n column-gap: calc((100% - 7 * 28px) / 6);\n text-align: center;\n}\n\n.CalendarBody-module_weekDay__hzksZ,\n.CalendarBody-module_day__0KNDZ {\n width: 28px;\n}\n\n.CalendarBody-module_day__0KNDZ {\n cursor: pointer;\n color: var(--text-primary);\n height: 28px;\n}\n\n.CalendarBody-module_muted__8XysY {\n color: var(--text-disabled-color);\n}\n\n.CalendarBody-module_hiddenDay__mCCeF {\n visibility: hidden;\n pointer-events: none;\n}\n\n.CalendarBody-module_selected__86UkJ {\n background-color: var(--surface-accent);\n color: var(--text-white-nonconvert-color);\n border-radius: 100px;\n}\n\n.CalendarBody-module_years__4Peqd {\n max-height: calc(5 * 24px + 4 * 6px);\n margin: 8px;\n overflow-y: auto;\n display: grid;\n grid-auto-rows: 24px;\n row-gap: 6px;\n}\n\n.CalendarBody-module_yearItem__mr9MS {\n cursor: pointer;\n color: var(--text-disabled-color);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.CalendarBody-module_yearItemSelected__HsDcR {\n color: var(--text-primary);\n}\n";
6
- var styles = {"wrapper":"CalendarBody-module_wrapper__fd17C","header":"CalendarBody-module_header__33b3Q","monthYear":"CalendarBody-module_monthYear__efUvQ","yearButton":"CalendarBody-module_yearButton__Y76y1","navButton":"CalendarBody-module_navButton__cGVVz","weekDays":"CalendarBody-module_weekDays__zXG3-","grid":"CalendarBody-module_grid__HNGTZ","weekDay":"CalendarBody-module_weekDay__hzksZ","day":"CalendarBody-module_day__0KNDZ","hiddenDay":"CalendarBody-module_hiddenDay__mCCeF","selected":"CalendarBody-module_selected__86UkJ"};
5
+ var css_248z = ".CalendarBody-module_wrapper__fd17C {\n display: flex;\n flex-direction: column;\n color: var(--text-disabled-color);\n}\n\n.CalendarBody-module_header__33b3Q {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 12px;\n}\n\n.CalendarBody-module_monthYear__efUvQ {\n display: flex;\n align-items: center;\n gap: 6px;\n width: 100%;\n color: var(--text-primary);\n}\n\n.CalendarBody-module_yearButton__Y76y1 {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.CalendarBody-module_navButton__cGVVz {\n padding: 0;\n cursor: pointer;\n}\n\n.CalendarBody-module_weekDays__zXG3- {\n height: 24px;\n}\n\n.CalendarBody-module_grid__HNGTZ,\n.CalendarBody-module_weekDays__zXG3- {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n column-gap: calc((100% - 7 * 28px) / 6);\n text-align: center;\n}\n\n.CalendarBody-module_weekDay__hzksZ,\n.CalendarBody-module_day__0KNDZ {\n width: 28px;\n}\n\n.CalendarBody-module_day__0KNDZ {\n cursor: pointer;\n color: var(--text-primary);\n height: 28px;\n}\n\n.CalendarBody-module_muted__8XysY {\n color: var(--text-disabled-color);\n}\n\n.CalendarBody-module_hiddenDay__mCCeF {\n visibility: hidden;\n pointer-events: none;\n}\n\n.CalendarBody-module_disabledDay__aHTaz {\n color: var(--text-disabled-color);\n cursor: not-allowed;\n}\n\n.CalendarBody-module_selected__86UkJ {\n background-color: var(--surface-accent);\n color: var(--text-white-nonconvert-color);\n border-radius: 100px;\n}\n\n.CalendarBody-module_years__4Peqd {\n max-height: calc(5 * 24px + 4 * 6px);\n margin: 8px;\n overflow-y: auto;\n display: grid;\n grid-auto-rows: 24px;\n row-gap: 6px;\n}\n\n.CalendarBody-module_yearItem__mr9MS {\n cursor: pointer;\n color: var(--text-disabled-color);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.CalendarBody-module_yearItemSelected__HsDcR {\n color: var(--text-primary);\n}\n";
6
+ var styles = {"wrapper":"CalendarBody-module_wrapper__fd17C","header":"CalendarBody-module_header__33b3Q","monthYear":"CalendarBody-module_monthYear__efUvQ","yearButton":"CalendarBody-module_yearButton__Y76y1","navButton":"CalendarBody-module_navButton__cGVVz","weekDays":"CalendarBody-module_weekDays__zXG3-","grid":"CalendarBody-module_grid__HNGTZ","weekDay":"CalendarBody-module_weekDay__hzksZ","day":"CalendarBody-module_day__0KNDZ","hiddenDay":"CalendarBody-module_hiddenDay__mCCeF","disabledDay":"CalendarBody-module_disabledDay__aHTaz","selected":"CalendarBody-module_selected__86UkJ"};
7
7
  function styleInject(css, options) {
8
8
  if (typeof document === 'undefined') return;
9
9
  const head = document.head || document.getElementsByTagName('head')[0];
@@ -3,14 +3,23 @@
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var graphics = require('@egov3/graphics');
5
5
  var index = require('../../../baseComponents/index.js');
6
+ var index$1 = require('../../../constants/calendar/index.js');
6
7
  var getMonthNameProper = require('../../../utils/date/getMonthNameProper.js');
7
8
  var joinClasses = require('../../../utils/joinClasses.js');
8
9
  var useCalendar = require('../../../customHooks/useCalendar.js');
9
10
  var CalendarBody_module = require('./CalendarBody.module.css.js');
10
11
 
11
12
  const WEEK_DAYS = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"];
12
- const CalendarBody = ({ month = new Date().getMonth(), year = new Date().getFullYear(), selectedDate = null, onDayClick, onMonthChange, }) => {
13
- const { days, visibleMonth, visibleYear, isYearPickerOpen, setIsYearPickerOpen, changeMonth} = useCalendar.useCalendar({ month, year, selectedDate, onMonthChange });
13
+ const CalendarBody = ({ month = new Date().getMonth(), year = new Date().getFullYear(), selectedDate = null, rangeStart = null, rangeEnd = null, selectedPeriodInterval = index$1.PERIOD_KEYS.from, onDayClick, onMonthChange, }) => {
14
+ const { days, visibleMonth, visibleYear, isYearPickerOpen, setIsYearPickerOpen, changeMonth} = useCalendar.useCalendar({
15
+ month,
16
+ year,
17
+ selectedDate,
18
+ selectedPeriodInterval,
19
+ rangeStart,
20
+ rangeEnd,
21
+ onMonthChange,
22
+ });
14
23
  const monthName = getMonthNameProper.getMonthNameProper(visibleMonth);
15
24
  return (jsxRuntime.jsxs("div", { className: CalendarBody_module.default.wrapper, "data-testid": "CalendarBody", children: [jsxRuntime.jsxs("div", { className: CalendarBody_module.default.header, children: [jsxRuntime.jsxs("div", { className: CalendarBody_module.default.monthYear, "data-testid": "Calendar_MONTH_YEAR_LABEL", children: [jsxRuntime.jsx(index.BaseComponents.Typography, { tag: "span", fontClass: "body1Medium", "data-testid": "CalendarBody_MONTH_YEAR", children: monthName }), jsxRuntime.jsxs("button", { className: CalendarBody_module.default.yearButton, type: "button", onClick: () => {
16
25
  setIsYearPickerOpen(true);
@@ -21,11 +30,11 @@ const CalendarBody = ({ month = new Date().getMonth(), year = new Date().getFull
21
30
  }, "data-testid": "Calendar_PREV_MONTH_BTN", children: jsxRuntime.jsx(graphics.Icons.Basic.ChevronLeft, { width: "24px", height: "24px", fill: "var(--icon-accent-color)" }) }), jsxRuntime.jsx("button", { className: CalendarBody_module.default.navButton, type: "button", onClick: () => {
22
31
  changeMonth(1);
23
32
  }, "data-testid": "Calendar_NEXT_MONTH_BTN", children: jsxRuntime.jsx(graphics.Icons.Basic.ChevronRight, { width: "24px", height: "24px", fill: "var(--icon-accent-color)" }) })] }))] }), jsxRuntime.jsx("div", { className: CalendarBody_module.default.weekDays, children: WEEK_DAYS.map((day) => (jsxRuntime.jsx(index.BaseComponents.Typography, { tag: "span", fontClass: "body2Medium", className: CalendarBody_module.default.weekDay, children: day }, day))) }), jsxRuntime.jsx("div", { className: CalendarBody_module.default.grid, children: days.map((cell) => {
24
- return (jsxRuntime.jsx("button", { type: "button", className: joinClasses.joinClasses(CalendarBody_module.default.day, !cell.isCurrentMonth && CalendarBody_module.default.hiddenDay, cell.isToday && CalendarBody_module.default.today, cell.isSelected && CalendarBody_module.default.selected), onClick: () => {
25
- if (cell.isCurrentMonth) {
33
+ return (jsxRuntime.jsx("button", { type: "button", className: joinClasses.joinClasses(CalendarBody_module.default.day, !cell.isCurrentMonth && CalendarBody_module.default.hiddenDay, cell.isDisabled && CalendarBody_module.default.disabledDay, cell.isInRange && CalendarBody_module.default.inRange, cell.isToday && CalendarBody_module.default.today, cell.isSelected && CalendarBody_module.default.selected), onClick: () => {
34
+ if (cell.isCurrentMonth && !cell.isDisabled) {
26
35
  onDayClick?.(cell.date);
27
36
  }
28
- }, disabled: !cell.isCurrentMonth, "data-testid": `CalendarBody_DAY_${cell.date.toISOString().slice(0, 10)}`, children: cell.isCurrentMonth && (jsxRuntime.jsx(index.BaseComponents.Typography, { tag: "span", fontClass: "body2Medium", children: cell.day })) }, cell.date.toISOString()));
37
+ }, disabled: !cell.isCurrentMonth || cell.isDisabled, "data-testid": `CalendarBody_DAY_${cell.date.toISOString().slice(0, 10)}`, children: cell.isCurrentMonth && (jsxRuntime.jsx(index.BaseComponents.Typography, { tag: "span", fontClass: "body2Medium", children: cell.day })) }, cell.date.toISOString()));
29
38
  }) })] }));
30
39
  };
31
40
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/components/Calendar/Body/index.tsx"],"sourcesContent":[null],"names":["useCalendar","getMonthNameProper","_jsxs","styles","_jsx","BaseComponents","Icons","joinClasses"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/Calendar/Body/index.tsx"],"sourcesContent":[null],"names":["PERIOD_KEYS","useCalendar","getMonthNameProper","_jsxs","styles","_jsx","BaseComponents","Icons","joinClasses"],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var css_248z = ".CalendarHeader-module_tab__-gPIw {\n width: 368px;\n display: flex;\n gap: 8px;\n}\n";
6
+ var styles = {"tab":"CalendarHeader-module_tab__-gPIw"};
7
+ function styleInject(css, options) {
8
+ if (typeof document === 'undefined') return;
9
+ const head = document.head || document.getElementsByTagName('head')[0];
10
+ const style = document.createElement('style');
11
+ style.type = 'text/css';
12
+ if (style.styleSheet) {
13
+ style.styleSheet.cssText = css;
14
+ } else {
15
+ style.appendChild(document.createTextNode(css));
16
+ }
17
+ head.appendChild(style);
18
+ }
19
+ styleInject(css_248z);
20
+
21
+ exports.default = styles;
22
+ //# sourceMappingURL=CalendarHeader.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalendarHeader.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var index$1 = require('../../../baseComponents/index.js');
5
+ var index = require('../../../constants/calendar/index.js');
6
+ var joinClasses = require('../../../utils/joinClasses.js');
7
+ var CalendarHeader_module = require('./CalendarHeader.module.css.js');
8
+
9
+ const CalendarHeader = ({ setSelectedPeriodInterval, selectedPeriodInterval, selectedPeriod, }) => {
10
+ const tabs = [
11
+ { key: index.PERIOD_KEYS.from, label: "Период с" },
12
+ { key: index.PERIOD_KEYS.to, label: "Период до" },
13
+ ];
14
+ return (jsxRuntime.jsx("div", { "data-testid": "CalendarTab_WRAP", className: CalendarHeader_module.default.tab, children: tabs.map((tab) => (jsxRuntime.jsx("button", { type: "button", "data-testid": `CalendarTabButton_${tab.key.toUpperCase()}`, className: joinClasses.joinClasses(selectedPeriodInterval === tab.key
15
+ ? CalendarHeader_module.default.titleActiv
16
+ : CalendarHeader_module.default.title), onClick: () => {
17
+ setSelectedPeriodInterval(tab.key);
18
+ }, "aria-label": `Кнопка ${tab.label}`, children: jsxRuntime.jsx(index$1.BaseComponents.Typography, { "data-testid": `CalendarTabTitle_${tab.key.toUpperCase()}`, tag: "span", fontClass: "body1Medium", "aria-label": tab.label, children: `${tab.label} ${selectedPeriod[`${tab.key}Date`] || "..."}` }) }, tab.key))) }));
19
+ };
20
+
21
+ exports.CalendarHeader = CalendarHeader;
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/Calendar/Header/index.tsx"],"sourcesContent":[null],"names":["PERIOD_KEYS","_jsx","styles","joinClasses","BaseComponents"],"mappings":";;;;;;;;AAYO,MAAM,cAAc,GAAG,CAAC,EAC7B,yBAAyB,EACzB,sBAAsB,EACtB,cAAc,GACD,KAAI;AACjB,IAAA,MAAM,IAAI,GAA0C;QAClD,EAAE,GAAG,EAAEA,iBAAW,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE;QAC5C,EAAE,GAAG,EAAEA,iBAAW,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE;KAC5C;AACD,IAAA,QACEC,cAAA,CAAA,KAAA,EAAA,EAAA,aAAA,EAAiB,kBAAkB,EAAC,SAAS,EAAEC,6BAAM,CAAC,GAAG,YACtD,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MACZD,cAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EAAA,aAAA,EAEA,CAAA,kBAAA,EAAqB,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,EACzD,SAAS,EAAEE,uBAAW,CACpB,sBAAsB,KAAK,GAAG,CAAC;kBAC3BD,6BAAM,CAAC;kBACPA,6BAAM,CAAC,KAAK,CACjB,EACD,OAAO,EAAE,MAAK;AACZ,gBAAA,yBAAyB,CAAC,GAAG,CAAC,GAAG,CAAC;YACpC,CAAC,EAAA,YAAA,EACW,CAAA,OAAA,EAAU,GAAG,CAAC,KAAK,CAAA,CAAE,EAAA,QAAA,EAEjCD,cAAA,CAACG,sBAAc,CAAC,UAAU,EAAA,EAAA,aAAA,EACX,CAAA,iBAAA,EAAoB,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAA,CAAE,EACxD,GAAG,EAAC,MAAM,EACV,SAAS,EAAC,aAAa,EAAA,YAAA,EACX,GAAG,CAAC,KAAK,EAAA,QAAA,EAEpB,CAAA,EAAG,GAAG,CAAC,KAAK,CAAA,CAAA,EAAI,cAAc,CAAC,CAAA,EAAG,GAAG,CAAC,GAAG,CAAA,IAAA,CAAM,CAAC,IAAI,KAAK,CAAA,CAAE,EAAA,CAClC,EAAA,EAnBvB,GAAG,CAAC,GAAG,CAoBL,CACV,CAAC,EAAA,CACE;AAEV;;;;"}
@@ -0,0 +1,49 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var index$1 = require('../../baseComponents/index.js');
6
+ var index = require('../../constants/calendar/index.js');
7
+ var convertType = require('../../utils/date/convertType.js');
8
+ var index$3 = require('./Body/index.js');
9
+ var index$2 = require('./Header/index.js');
10
+
11
+ const toDateString = (date) => `${convertType.convertType.day.toString(date.getDate())}.${convertType.convertType.month.toString(date.getMonth())}.${date.getFullYear()}`;
12
+ const toDate = (value) => {
13
+ if (!value)
14
+ return null;
15
+ const [day, month, year] = value.split(".").map(Number);
16
+ return new Date(year, month - 1, day);
17
+ };
18
+ const Calendar = () => {
19
+ const [selectedPeriodInterval, setSelectedPeriodInterval] = React.useState(index.PERIOD_KEYS.from);
20
+ const [selectedPeriod, setSelectedPeriod] = React.useState({
21
+ fromDate: "",
22
+ toDate: "",
23
+ periodSelected: false,
24
+ });
25
+ const rangeStart = toDate(selectedPeriod.fromDate);
26
+ const rangeEnd = toDate(selectedPeriod.toDate);
27
+ const visibleDate = React.useMemo(() => (selectedPeriodInterval === index.PERIOD_KEYS.to ? rangeEnd : rangeStart) ??
28
+ new Date(), [rangeEnd, rangeStart, selectedPeriodInterval]);
29
+ const handleDayClick = (date) => {
30
+ setSelectedPeriod((current) => {
31
+ const next = {
32
+ ...current,
33
+ [`${selectedPeriodInterval}Date`]: toDateString(date),
34
+ isAllSelected: false,
35
+ };
36
+ return {
37
+ ...next,
38
+ periodSelected: Boolean(next.fromDate && next.toDate),
39
+ };
40
+ });
41
+ };
42
+ const handlePeriodChange = (periodKey) => {
43
+ setSelectedPeriodInterval(periodKey);
44
+ };
45
+ return (jsxRuntime.jsxs(index$1.BaseComponents.Modal, { variant: "small", setIsOpen: () => { }, isOpen: true, lang: "ru", children: [jsxRuntime.jsx(index$2.CalendarHeader, { selectedPeriod: selectedPeriod, selectedPeriodInterval: selectedPeriodInterval, setSelectedPeriodInterval: handlePeriodChange }), jsxRuntime.jsx(index$3.CalendarBody, { month: visibleDate.getMonth(), year: visibleDate.getFullYear(), selectedDate: selectedPeriodInterval === index.PERIOD_KEYS.from ? rangeStart : rangeEnd, selectedPeriodInterval: selectedPeriodInterval, rangeStart: rangeStart, rangeEnd: rangeEnd, onDayClick: handleDayClick })] }));
46
+ };
47
+
48
+ exports.Calendar = Calendar;
49
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/Calendar/index.tsx"],"sourcesContent":[null],"names":["convertType","useState","PERIOD_KEYS","useMemo","_jsxs","BaseComponents","_jsx","CalendarHeader","CalendarBody"],"mappings":"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"}
@@ -1,61 +1,63 @@
1
1
  'use strict';
2
2
 
3
3
  require('../styles/colors.css.js');
4
+ var index$1 = require('./Calendar/index.js');
4
5
  var index = require('./Calendar/Body/index.js');
5
- var index$l = require('./ErrorModal/index.js');
6
- var index$q = require('./Identity/Agreement/index.js');
7
- var index$p = require('./Identity/Auth/index.js');
8
- var index$n = require('./Identity/EdsSuccess/index.js');
9
- var index$5 = require('./Identity/HelpInstruction/index.js');
10
- var index$f = require('./Identity/IdentityHeader/index.js');
11
- var index$e = require('./Identity/IdentityModal/index.js');
12
- var index$m = require('./Messages/EmptyMessages/index.js');
13
- var index$i = require('./Messages/HelpNotification/index.js');
14
- var index$h = require('./Messages/HelpNotificationItem/index.js');
15
- var index$d = require('./Messages/MsgBody/index.js');
16
- var index$c = require('./Messages/MsgComponentHeader/index.js');
17
- var index$b = require('./Messages/MsgSearch/index.js');
18
- var index$6 = require('./Navigation/ViewToggle/index.js');
19
- var index$2 = require('./Notification/Item/index.js');
20
- var index$1 = require('./Notification/Wrapper/index.js');
21
- var index$4 = require('./Presale/index.js');
22
- var index$o = require('./Profile/DocCard/index.js');
23
- var index$g = require('./Profile/IconToggleItem/index.js');
24
- var index$9 = require('./Profile/ProfileHealthGeneral/index.js');
25
- var index$8 = require('./Profile/RightMenuSectionItem/index.js');
26
- var index$7 = require('./Profile/SetUpAccess/index.js');
27
- var index$3 = require('./ServiceCardComponent/index.js');
28
- var index$k = require('./Services/Feedback/index.js');
29
- var index$j = require('./Services/FileForUpload/index.js');
30
- var index$a = require('./Services/NextStepComponent/index.js');
6
+ var index$m = require('./ErrorModal/index.js');
7
+ var index$r = require('./Identity/Agreement/index.js');
8
+ var index$q = require('./Identity/Auth/index.js');
9
+ var index$o = require('./Identity/EdsSuccess/index.js');
10
+ var index$6 = require('./Identity/HelpInstruction/index.js');
11
+ var index$g = require('./Identity/IdentityHeader/index.js');
12
+ var index$f = require('./Identity/IdentityModal/index.js');
13
+ var index$n = require('./Messages/EmptyMessages/index.js');
14
+ var index$j = require('./Messages/HelpNotification/index.js');
15
+ var index$i = require('./Messages/HelpNotificationItem/index.js');
16
+ var index$e = require('./Messages/MsgBody/index.js');
17
+ var index$d = require('./Messages/MsgComponentHeader/index.js');
18
+ var index$c = require('./Messages/MsgSearch/index.js');
19
+ var index$7 = require('./Navigation/ViewToggle/index.js');
20
+ var index$3 = require('./Notification/Item/index.js');
21
+ var index$2 = require('./Notification/Wrapper/index.js');
22
+ var index$5 = require('./Presale/index.js');
23
+ var index$p = require('./Profile/DocCard/index.js');
24
+ var index$h = require('./Profile/IconToggleItem/index.js');
25
+ var index$a = require('./Profile/ProfileHealthGeneral/index.js');
26
+ var index$9 = require('./Profile/RightMenuSectionItem/index.js');
27
+ var index$8 = require('./Profile/SetUpAccess/index.js');
28
+ var index$4 = require('./ServiceCardComponent/index.js');
29
+ var index$l = require('./Services/Feedback/index.js');
30
+ var index$k = require('./Services/FileForUpload/index.js');
31
+ var index$b = require('./Services/NextStepComponent/index.js');
31
32
 
32
33
  const Components = {
33
- Agreement: index$q.Agreement,
34
- Auth: index$p.Auth,
35
- DocCard: index$o.DocCard,
36
- EdsSuccess: index$n.EdsSuccess,
37
- EmptyMessages: index$m.EmptyMessages,
38
- ErrorModal: index$l.ErrorModal,
39
- Feedback: index$k.Feedback,
40
- FileForUpload: index$j.FileForUpload,
41
- HelpNotification: index$i.HelpNotification,
42
- HelpNotificationItem: index$h.HelpNotificationItem,
43
- IconToggleItem: index$g.IconToggleItem,
44
- IdentityHeader: index$f.IdentityHeader,
45
- IdentityModal: index$e.IdentityModal,
46
- MsgBody: index$d.MsgBody,
47
- MsgComponentHeader: index$c.MsgComponentHeader,
48
- MsgSearch: index$b.MsgSearch,
49
- NextStepComponent: index$a.NextStepComponent,
50
- ProfileHealthGeneral: index$9.ProfileHealthGeneral,
51
- RightMenuSectionItem: index$8.RightMenuSectionItem,
52
- SetUpAccess: index$7.SetUpAccess,
53
- ViewToggle: index$6.ViewToggle,
54
- HelpInstruction: index$5.HelpInstruction,
55
- PresaleComponent: index$4.PresaleComponent,
56
- ServiceCardComponent: index$3.ServiceCardComponent,
57
- NotificationItem: index$2.NotificationItem,
58
- NotificationWrapper: index$1.NotificationWrapper,
34
+ Agreement: index$r.Agreement,
35
+ Auth: index$q.Auth,
36
+ DocCard: index$p.DocCard,
37
+ EdsSuccess: index$o.EdsSuccess,
38
+ EmptyMessages: index$n.EmptyMessages,
39
+ ErrorModal: index$m.ErrorModal,
40
+ Feedback: index$l.Feedback,
41
+ FileForUpload: index$k.FileForUpload,
42
+ HelpNotification: index$j.HelpNotification,
43
+ HelpNotificationItem: index$i.HelpNotificationItem,
44
+ IconToggleItem: index$h.IconToggleItem,
45
+ IdentityHeader: index$g.IdentityHeader,
46
+ IdentityModal: index$f.IdentityModal,
47
+ MsgBody: index$e.MsgBody,
48
+ MsgComponentHeader: index$d.MsgComponentHeader,
49
+ MsgSearch: index$c.MsgSearch,
50
+ NextStepComponent: index$b.NextStepComponent,
51
+ ProfileHealthGeneral: index$a.ProfileHealthGeneral,
52
+ RightMenuSectionItem: index$9.RightMenuSectionItem,
53
+ SetUpAccess: index$8.SetUpAccess,
54
+ ViewToggle: index$7.ViewToggle,
55
+ HelpInstruction: index$6.HelpInstruction,
56
+ PresaleComponent: index$5.PresaleComponent,
57
+ ServiceCardComponent: index$4.ServiceCardComponent,
58
+ NotificationItem: index$3.NotificationItem,
59
+ NotificationWrapper: index$2.NotificationWrapper,
60
+ Calendar: index$1.Calendar,
59
61
  CalendarBody: index.CalendarBody,
60
62
  };
61
63
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/index.ts"],"sourcesContent":[null],"names":["Agreement","Auth","DocCard","EdsSuccess","EmptyMessages","ErrorModal","Feedback","FileForUpload","HelpNotification","HelpNotificationItem","IconToggleItem","IdentityHeader","IdentityModal","MsgBody","MsgComponentHeader","MsgSearch","NextStepComponent","ProfileHealthGeneral","RightMenuSectionItem","SetUpAccess","ViewToggle","HelpInstruction","PresaleComponent","ServiceCardComponent","NotificationItem","NotificationWrapper","CalendarBody"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BO,MAAM,UAAU,GAAG;eACxBA,iBAAS;UACTC,YAAI;aACJC,eAAO;gBACPC,kBAAU;mBACVC,qBAAa;gBACbC,kBAAU;cACVC,gBAAQ;mBACRC,qBAAa;sBACbC,wBAAgB;0BAChBC,4BAAoB;oBACpBC,sBAAc;oBACdC,sBAAc;mBACdC,qBAAa;aACbC,eAAO;wBACPC,0BAAkB;eAClBC,iBAAS;uBACTC,yBAAiB;0BACjBC,4BAAoB;0BACpBC,4BAAoB;iBACpBC,mBAAW;gBACXC,kBAAU;qBACVC,uBAAe;sBACfC,wBAAgB;0BAChBC,4BAAoB;sBACpBC,wBAAgB;yBAChBC,2BAAmB;kBACnBC,kBAAY;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/index.ts"],"sourcesContent":[null],"names":["Agreement","Auth","DocCard","EdsSuccess","EmptyMessages","ErrorModal","Feedback","FileForUpload","HelpNotification","HelpNotificationItem","IconToggleItem","IdentityHeader","IdentityModal","MsgBody","MsgComponentHeader","MsgSearch","NextStepComponent","ProfileHealthGeneral","RightMenuSectionItem","SetUpAccess","ViewToggle","HelpInstruction","PresaleComponent","ServiceCardComponent","NotificationItem","NotificationWrapper","Calendar","CalendarBody"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BO,MAAM,UAAU,GAAG;eACxBA,iBAAS;UACTC,YAAI;aACJC,eAAO;gBACPC,kBAAU;mBACVC,qBAAa;gBACbC,kBAAU;cACVC,gBAAQ;mBACRC,qBAAa;sBACbC,wBAAgB;0BAChBC,4BAAoB;oBACpBC,sBAAc;oBACdC,sBAAc;mBACdC,qBAAa;aACbC,eAAO;wBACPC,0BAAkB;eAClBC,iBAAS;uBACTC,yBAAiB;0BACjBC,4BAAoB;0BACpBC,4BAAoB;iBACpBC,mBAAW;gBACXC,kBAAU;qBACVC,uBAAe;sBACfC,wBAAgB;0BAChBC,4BAAoB;sBACpBC,wBAAgB;yBAChBC,2BAAmB;cACnBC,gBAAQ;kBACRC,kBAAY;;;;;"}
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ const PERIOD_KEYS = {
4
+ from: "from",
5
+ to: "to",
6
+ };
7
+
8
+ exports.PERIOD_KEYS = PERIOD_KEYS;
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/constants/calendar/index.tsx"],"sourcesContent":[null],"names":[],"mappings":";;AAEO,MAAM,WAAW,GAAgB;AACtC,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,EAAE,EAAE,IAAI;;;;;"}
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var React = require('react');
4
+ var index = require('../constants/calendar/index.js');
4
5
  var getDaysInMonth = require('../utils/date/getDaysInMonth.js');
5
6
 
6
7
  const TODAY = new Date();
@@ -8,30 +9,47 @@ const YEARS_BACK = 100;
8
9
  const isSameDate = (left, right) => left.getFullYear() === right.getFullYear() &&
9
10
  left.getMonth() === right.getMonth() &&
10
11
  left.getDate() === right.getDate();
11
- const buildCalendarDays = (month, year, selectedDate) => {
12
+ const buildCalendarDays = (month, year, selectedDate, selectedPeriodInterval, rangeStart, rangeEnd) => {
12
13
  const firstDayIndex = (new Date(year, month, 1).getDay() + 6) % 7;
13
14
  const daysInMonth = getDaysInMonth.getDaysInMonth(month, year);
14
15
  const trailingDays = (7 - ((firstDayIndex + daysInMonth) % 7)) % 7;
15
16
  const cellCount = firstDayIndex + daysInMonth + trailingDays;
16
17
  const startDate = new Date(year, month, 1 - firstDayIndex);
17
- return Array.from({ length: cellCount }, (_, index) => {
18
- const date = new Date(startDate.getFullYear(), startDate.getMonth(), startDate.getDate() + index);
18
+ return Array.from({ length: cellCount }, (_, index$1) => {
19
+ const date = new Date(startDate.getFullYear(), startDate.getMonth(), startDate.getDate() + index$1);
19
20
  return {
20
21
  date,
21
22
  day: date.getDate(),
22
23
  isCurrentMonth: date.getMonth() === month,
23
24
  isToday: isSameDate(date, TODAY),
24
25
  isSelected: selectedDate ? isSameDate(date, selectedDate) : false,
26
+ isInRange: Boolean(rangeStart &&
27
+ rangeEnd &&
28
+ date.getTime() >= rangeStart.getTime() &&
29
+ date.getTime() <= rangeEnd.getTime()),
30
+ isDisabled: Boolean((selectedPeriodInterval === index.PERIOD_KEYS.from &&
31
+ rangeEnd &&
32
+ date.getTime() > rangeEnd.getTime()) ||
33
+ (selectedPeriodInterval === index.PERIOD_KEYS.to &&
34
+ rangeStart &&
35
+ date.getTime() < rangeStart.getTime())),
25
36
  };
26
37
  });
27
38
  };
28
- const useCalendar = ({ month, year, selectedDate, onMonthChange, }) => {
39
+ const useCalendar = ({ month, year, selectedDate, selectedPeriodInterval, rangeStart, rangeEnd, onMonthChange, }) => {
29
40
  const [visibleDate, setVisibleDate] = React.useState(() => new Date(year, month, 1));
30
41
  const [isYearPickerOpen, setIsYearPickerOpen] = React.useState(false);
31
42
  const yearListRef = React.useRef(null);
32
43
  const visibleMonth = visibleDate.getMonth();
33
44
  const visibleYear = visibleDate.getFullYear();
34
- const days = React.useMemo(() => buildCalendarDays(visibleMonth, visibleYear, selectedDate), [visibleMonth, visibleYear, selectedDate]);
45
+ const days = React.useMemo(() => buildCalendarDays(visibleMonth, visibleYear, selectedDate, selectedPeriodInterval, rangeStart, rangeEnd), [
46
+ visibleMonth,
47
+ visibleYear,
48
+ rangeEnd,
49
+ rangeStart,
50
+ selectedDate,
51
+ selectedPeriodInterval,
52
+ ]);
35
53
  const maxYear = TODAY.getFullYear();
36
54
  const minYear = maxYear - YEARS_BACK;
37
55
  const years = Array.from({ length: maxYear - minYear + 1 }, (_, index) => maxYear - index);
@@ -1 +1 @@
1
- {"version":3,"file":"useCalendar.js","sources":["../../../src/customHooks/useCalendar.tsx"],"sourcesContent":[null],"names":["getDaysInMonth","useState","useRef","useMemo","useEffect"],"mappings":"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"}
1
+ {"version":3,"file":"useCalendar.js","sources":["../../../src/customHooks/useCalendar.tsx"],"sourcesContent":[null],"names":["getDaysInMonth","index","PERIOD_KEYS","useState","useRef","useMemo","useEffect"],"mappings":";;;;;;AAMA,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE;AACxB,MAAM,UAAU,GAAG,GAAG;AAYtB,MAAM,UAAU,GAAG,CAAC,IAAU,EAAE,KAAW,KACzC,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE;AAC1C,IAAA,IAAI,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC,QAAQ,EAAE;IACpC,IAAI,CAAC,OAAO,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE;AAEpC,MAAM,iBAAiB,GAAG,CACxB,KAAa,EACb,IAAY,EACZ,YAA0B,EAC1B,sBAAoC,EACpC,UAAwB,EACxB,QAAsB,KACA;IACtB,MAAM,aAAa,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC;IACjE,MAAM,WAAW,GAAGA,6BAAc,CAAC,KAAK,EAAE,IAAI,CAAC;AAC/C,IAAA,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,GAAG,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC;AAClE,IAAA,MAAM,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,YAAY;AAC5D,IAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,aAAa,CAAC;AAE1D,IAAA,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,EAAEC,OAAK,KAAI;QACpD,MAAM,IAAI,GAAG,IAAI,IAAI,CACnB,SAAS,CAAC,WAAW,EAAE,EACvB,SAAS,CAAC,QAAQ,EAAE,EACpB,SAAS,CAAC,OAAO,EAAE,GAAGA,OAAK,CAC5B;QAED,OAAO;YACL,IAAI;AACJ,YAAA,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE;AACnB,YAAA,cAAc,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,KAAK;AACzC,YAAA,OAAO,EAAE,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;AAChC,YAAA,UAAU,EAAE,YAAY,GAAG,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,KAAK;YACjE,SAAS,EAAE,OAAO,CAChB,UAAU;gBACR,QAAQ;AACR,gBAAA,IAAI,CAAC,OAAO,EAAE,IAAI,UAAU,CAAC,OAAO,EAAE;gBACtC,IAAI,CAAC,OAAO,EAAE,IAAI,QAAQ,CAAC,OAAO,EAAE,CACvC;YACD,UAAU,EAAE,OAAO,CACjB,CAAC,sBAAsB,KAAKC,iBAAW,CAAC,IAAI;gBAC1C,QAAQ;gBACR,IAAI,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE;AACnC,iBAAC,sBAAsB,KAAKA,iBAAW,CAAC,EAAE;oBACxC,UAAU;oBACV,IAAI,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,CAC3C;SACF;AACH,IAAA,CAAC,CAAC;AACJ,CAAC;MAEY,WAAW,GAAG,CAAC,EAC1B,KAAK,EACL,IAAI,EACJ,YAAY,EACZ,sBAAsB,EACtB,UAAU,EACV,QAAQ,EACR,aAAa,GACS,KAAI;IAC1B,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAGC,cAAQ,CAC5C,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAC/B;IACD,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAGA,cAAQ,CAAC,KAAK,CAAC;AAC/D,IAAA,MAAM,WAAW,GAAGC,YAAM,CAAwB,IAAI,CAAC;AAEvD,IAAA,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,EAAE;AAC3C,IAAA,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,EAAE;IAE7C,MAAM,IAAI,GAAGC,aAAO,CAClB,MACE,iBAAiB,CACf,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,sBAAsB,EACtB,UAAU,EACV,QAAQ,CACT,EACH;QACE,YAAY;QACZ,WAAW;QACX,QAAQ;QACR,UAAU;QACV,YAAY;QACZ,sBAAsB;AACvB,KAAA,CACF;AACD,IAAA,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,EAAE;AACnC,IAAA,MAAM,OAAO,GAAG,OAAO,GAAG,UAAU;IACpC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CACtB,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,GAAG,CAAC,EAAE,EACjC,CAAC,CAAC,EAAE,KAAK,KAAK,OAAO,GAAG,KAAK,CAC9B;AAED,IAAA,MAAM,WAAW,GAAG,CAAC,MAAc,KAAI;AACrC,QAAA,cAAc,CAAC,CAAC,OAAO,KAAI;AACzB,YAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CACnB,OAAO,CAAC,WAAW,EAAE,EACrB,OAAO,CAAC,QAAQ,EAAE,GAAG,MAAM,EAC3B,CAAC,CACF;AACD,YAAA,aAAa,GAAG,IAAI,CAAC;AACrB,YAAA,OAAO,IAAI;AACb,QAAA,CAAC,CAAC;AACJ,IAAA,CAAC;AAED,IAAA,MAAM,QAAQ,GAAG,CAAC,UAAkB,KAAI;AACtC,QAAA,cAAc,CAAC,CAAC,OAAO,KAAI;AACzB,YAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AACxD,YAAA,aAAa,GAAG,IAAI,CAAC;AACrB,YAAA,OAAO,IAAI;AACb,QAAA,CAAC,CAAC;QACF,mBAAmB,CAAC,KAAK,CAAC;AAC5B,IAAA,CAAC;IAEDC,eAAS,CAAC,MAAK;QACb,cAAc,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAC1C,IAAA,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAEjBA,eAAS,CAAC,MAAK;AACb,QAAA,IAAI,CAAC,gBAAgB,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;YAC7C;AACD,QAAA;AACD,QAAA,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,CAAC,aAAa,CACtD,CAAA,YAAA,EAAe,WAAW,CAAA,EAAA,CAAI,CAC/B;QACD,cAAc,EAAE,cAAc,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AACrD,IAAA,CAAC,EAAE,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;IAEnC,OAAO;QACL,IAAI;QACJ,KAAK;QACL,YAAY;QACZ,WAAW;QACX,gBAAgB;QAChB,mBAAmB;QACnB,WAAW;QACX,WAAW;QACX,QAAQ;KACT;AACH;;;;"}
@@ -0,0 +1,34 @@
1
+ 'use strict';
2
+
3
+ const convert = {
4
+ day: {
5
+ toString: (num) => {
6
+ return String(num).padStart(2, "0");
7
+ },
8
+ toNumber: (str) => {
9
+ return +str;
10
+ },
11
+ },
12
+ month: {
13
+ toString: (num) => {
14
+ return String(num + 1).padStart(2, "0");
15
+ },
16
+ toNumber: (str) => {
17
+ return +str - 1;
18
+ },
19
+ },
20
+ year: {
21
+ toString: (num) => {
22
+ return String(num);
23
+ },
24
+ toNumber: (str) => {
25
+ return +str;
26
+ },
27
+ },
28
+ };
29
+ const convertType = {
30
+ ...convert,
31
+ };
32
+
33
+ exports.convertType = convertType;
34
+ //# sourceMappingURL=convertType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convertType.js","sources":["../../../../src/utils/date/convertType.tsx"],"sourcesContent":[null],"names":[],"mappings":";;AAEA,MAAM,OAAO,GAAG;AACd,IAAA,GAAG,EAAE;AACH,QAAA,QAAQ,EAAE,CAAC,GAAW,KAAI;YACxB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;QACrC,CAAC;AACD,QAAA,QAAQ,EAAE,CAAC,GAAW,KAAI;YACxB,OAAO,CAAC,GAAG;QACb,CAAC;AACF,KAAA;AACD,IAAA,KAAK,EAAE;AACL,QAAA,QAAQ,EAAE,CAAC,GAAW,KAAI;AACxB,YAAA,OAAO,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;QACzC,CAAC;AACD,QAAA,QAAQ,EAAE,CAAC,GAAW,KAAI;AACxB,YAAA,OAAO,CAAC,GAAG,GAAG,CAAC;QACjB,CAAC;AACF,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,QAAQ,EAAE,CAAC,GAAW,KAAI;AACxB,YAAA,OAAO,MAAM,CAAC,GAAG,CAAC;QACpB,CAAC;AACD,QAAA,QAAQ,EAAE,CAAC,GAAW,KAAI;YACxB,OAAO,CAAC,GAAG;QACb,CAAC;AACF,KAAA;CACF;AA8CM,MAAM,WAAW,GAAG;AACzB,IAEA,GAAG,OAAO;;;;;"}
@@ -1,5 +1,5 @@
1
- var css_248z = ".CalendarBody-module_wrapper__fd17C {\n display: flex;\n flex-direction: column;\n color: var(--text-disabled-color);\n}\n\n.CalendarBody-module_header__33b3Q {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 12px;\n}\n\n.CalendarBody-module_monthYear__efUvQ {\n display: flex;\n align-items: center;\n gap: 6px;\n width: 100%;\n color: var(--text-primary);\n}\n\n.CalendarBody-module_yearButton__Y76y1 {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.CalendarBody-module_navButton__cGVVz {\n padding: 0;\n cursor: pointer;\n}\n\n.CalendarBody-module_weekDays__zXG3- {\n height: 24px;\n}\n\n.CalendarBody-module_grid__HNGTZ,\n.CalendarBody-module_weekDays__zXG3- {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n column-gap: calc((100% - 7 * 28px) / 6);\n text-align: center;\n}\n\n.CalendarBody-module_weekDay__hzksZ,\n.CalendarBody-module_day__0KNDZ {\n width: 28px;\n}\n\n.CalendarBody-module_day__0KNDZ {\n cursor: pointer;\n color: var(--text-primary);\n height: 28px;\n}\n\n.CalendarBody-module_muted__8XysY {\n color: var(--text-disabled-color);\n}\n\n.CalendarBody-module_hiddenDay__mCCeF {\n visibility: hidden;\n pointer-events: none;\n}\n\n.CalendarBody-module_selected__86UkJ {\n background-color: var(--surface-accent);\n color: var(--text-white-nonconvert-color);\n border-radius: 100px;\n}\n\n.CalendarBody-module_years__4Peqd {\n max-height: calc(5 * 24px + 4 * 6px);\n margin: 8px;\n overflow-y: auto;\n display: grid;\n grid-auto-rows: 24px;\n row-gap: 6px;\n}\n\n.CalendarBody-module_yearItem__mr9MS {\n cursor: pointer;\n color: var(--text-disabled-color);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.CalendarBody-module_yearItemSelected__HsDcR {\n color: var(--text-primary);\n}\n";
2
- var styles = {"wrapper":"CalendarBody-module_wrapper__fd17C","header":"CalendarBody-module_header__33b3Q","monthYear":"CalendarBody-module_monthYear__efUvQ","yearButton":"CalendarBody-module_yearButton__Y76y1","navButton":"CalendarBody-module_navButton__cGVVz","weekDays":"CalendarBody-module_weekDays__zXG3-","grid":"CalendarBody-module_grid__HNGTZ","weekDay":"CalendarBody-module_weekDay__hzksZ","day":"CalendarBody-module_day__0KNDZ","hiddenDay":"CalendarBody-module_hiddenDay__mCCeF","selected":"CalendarBody-module_selected__86UkJ"};
1
+ var css_248z = ".CalendarBody-module_wrapper__fd17C {\n display: flex;\n flex-direction: column;\n color: var(--text-disabled-color);\n}\n\n.CalendarBody-module_header__33b3Q {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 12px;\n}\n\n.CalendarBody-module_monthYear__efUvQ {\n display: flex;\n align-items: center;\n gap: 6px;\n width: 100%;\n color: var(--text-primary);\n}\n\n.CalendarBody-module_yearButton__Y76y1 {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.CalendarBody-module_navButton__cGVVz {\n padding: 0;\n cursor: pointer;\n}\n\n.CalendarBody-module_weekDays__zXG3- {\n height: 24px;\n}\n\n.CalendarBody-module_grid__HNGTZ,\n.CalendarBody-module_weekDays__zXG3- {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n column-gap: calc((100% - 7 * 28px) / 6);\n text-align: center;\n}\n\n.CalendarBody-module_weekDay__hzksZ,\n.CalendarBody-module_day__0KNDZ {\n width: 28px;\n}\n\n.CalendarBody-module_day__0KNDZ {\n cursor: pointer;\n color: var(--text-primary);\n height: 28px;\n}\n\n.CalendarBody-module_muted__8XysY {\n color: var(--text-disabled-color);\n}\n\n.CalendarBody-module_hiddenDay__mCCeF {\n visibility: hidden;\n pointer-events: none;\n}\n\n.CalendarBody-module_disabledDay__aHTaz {\n color: var(--text-disabled-color);\n cursor: not-allowed;\n}\n\n.CalendarBody-module_selected__86UkJ {\n background-color: var(--surface-accent);\n color: var(--text-white-nonconvert-color);\n border-radius: 100px;\n}\n\n.CalendarBody-module_years__4Peqd {\n max-height: calc(5 * 24px + 4 * 6px);\n margin: 8px;\n overflow-y: auto;\n display: grid;\n grid-auto-rows: 24px;\n row-gap: 6px;\n}\n\n.CalendarBody-module_yearItem__mr9MS {\n cursor: pointer;\n color: var(--text-disabled-color);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.CalendarBody-module_yearItemSelected__HsDcR {\n color: var(--text-primary);\n}\n";
2
+ var styles = {"wrapper":"CalendarBody-module_wrapper__fd17C","header":"CalendarBody-module_header__33b3Q","monthYear":"CalendarBody-module_monthYear__efUvQ","yearButton":"CalendarBody-module_yearButton__Y76y1","navButton":"CalendarBody-module_navButton__cGVVz","weekDays":"CalendarBody-module_weekDays__zXG3-","grid":"CalendarBody-module_grid__HNGTZ","weekDay":"CalendarBody-module_weekDay__hzksZ","day":"CalendarBody-module_day__0KNDZ","hiddenDay":"CalendarBody-module_hiddenDay__mCCeF","disabledDay":"CalendarBody-module_disabledDay__aHTaz","selected":"CalendarBody-module_selected__86UkJ"};
3
3
  function styleInject(css, options) {
4
4
  if (typeof document === 'undefined') return;
5
5
  const head = document.head || document.getElementsByTagName('head')[0];
@@ -1,14 +1,23 @@
1
1
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
2
  import { Icons } from '@egov3/graphics';
3
3
  import { BaseComponents } from '../../../baseComponents/index.js';
4
+ import { PERIOD_KEYS } from '../../../constants/calendar/index.js';
4
5
  import { getMonthNameProper } from '../../../utils/date/getMonthNameProper.js';
5
6
  import { joinClasses } from '../../../utils/joinClasses.js';
6
7
  import { useCalendar } from '../../../customHooks/useCalendar.js';
7
8
  import styles from './CalendarBody.module.css.js';
8
9
 
9
10
  const WEEK_DAYS = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"];
10
- const CalendarBody = ({ month = new Date().getMonth(), year = new Date().getFullYear(), selectedDate = null, onDayClick, onMonthChange, }) => {
11
- const { days, visibleMonth, visibleYear, isYearPickerOpen, setIsYearPickerOpen, changeMonth} = useCalendar({ month, year, selectedDate, onMonthChange });
11
+ const CalendarBody = ({ month = new Date().getMonth(), year = new Date().getFullYear(), selectedDate = null, rangeStart = null, rangeEnd = null, selectedPeriodInterval = PERIOD_KEYS.from, onDayClick, onMonthChange, }) => {
12
+ const { days, visibleMonth, visibleYear, isYearPickerOpen, setIsYearPickerOpen, changeMonth} = useCalendar({
13
+ month,
14
+ year,
15
+ selectedDate,
16
+ selectedPeriodInterval,
17
+ rangeStart,
18
+ rangeEnd,
19
+ onMonthChange,
20
+ });
12
21
  const monthName = getMonthNameProper(visibleMonth);
13
22
  return (jsxs("div", { className: styles.wrapper, "data-testid": "CalendarBody", children: [jsxs("div", { className: styles.header, children: [jsxs("div", { className: styles.monthYear, "data-testid": "Calendar_MONTH_YEAR_LABEL", children: [jsx(BaseComponents.Typography, { tag: "span", fontClass: "body1Medium", "data-testid": "CalendarBody_MONTH_YEAR", children: monthName }), jsxs("button", { className: styles.yearButton, type: "button", onClick: () => {
14
23
  setIsYearPickerOpen(true);
@@ -19,11 +28,11 @@ const CalendarBody = ({ month = new Date().getMonth(), year = new Date().getFull
19
28
  }, "data-testid": "Calendar_PREV_MONTH_BTN", children: jsx(Icons.Basic.ChevronLeft, { width: "24px", height: "24px", fill: "var(--icon-accent-color)" }) }), jsx("button", { className: styles.navButton, type: "button", onClick: () => {
20
29
  changeMonth(1);
21
30
  }, "data-testid": "Calendar_NEXT_MONTH_BTN", children: jsx(Icons.Basic.ChevronRight, { width: "24px", height: "24px", fill: "var(--icon-accent-color)" }) })] }))] }), jsx("div", { className: styles.weekDays, children: WEEK_DAYS.map((day) => (jsx(BaseComponents.Typography, { tag: "span", fontClass: "body2Medium", className: styles.weekDay, children: day }, day))) }), jsx("div", { className: styles.grid, children: days.map((cell) => {
22
- return (jsx("button", { type: "button", className: joinClasses(styles.day, !cell.isCurrentMonth && styles.hiddenDay, cell.isToday && styles.today, cell.isSelected && styles.selected), onClick: () => {
23
- if (cell.isCurrentMonth) {
31
+ return (jsx("button", { type: "button", className: joinClasses(styles.day, !cell.isCurrentMonth && styles.hiddenDay, cell.isDisabled && styles.disabledDay, cell.isInRange && styles.inRange, cell.isToday && styles.today, cell.isSelected && styles.selected), onClick: () => {
32
+ if (cell.isCurrentMonth && !cell.isDisabled) {
24
33
  onDayClick?.(cell.date);
25
34
  }
26
- }, disabled: !cell.isCurrentMonth, "data-testid": `CalendarBody_DAY_${cell.date.toISOString().slice(0, 10)}`, children: cell.isCurrentMonth && (jsx(BaseComponents.Typography, { tag: "span", fontClass: "body2Medium", children: cell.day })) }, cell.date.toISOString()));
35
+ }, disabled: !cell.isCurrentMonth || cell.isDisabled, "data-testid": `CalendarBody_DAY_${cell.date.toISOString().slice(0, 10)}`, children: cell.isCurrentMonth && (jsx(BaseComponents.Typography, { tag: "span", fontClass: "body2Medium", children: cell.day })) }, cell.date.toISOString()));
27
36
  }) })] }));
28
37
  };
29
38
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/components/Calendar/Body/index.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/Calendar/Body/index.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ var css_248z = ".CalendarHeader-module_tab__-gPIw {\n width: 368px;\n display: flex;\n gap: 8px;\n}\n";
2
+ var styles = {"tab":"CalendarHeader-module_tab__-gPIw"};
3
+ function styleInject(css, options) {
4
+ if (typeof document === 'undefined') return;
5
+ const head = document.head || document.getElementsByTagName('head')[0];
6
+ const style = document.createElement('style');
7
+ style.type = 'text/css';
8
+ if (style.styleSheet) {
9
+ style.styleSheet.cssText = css;
10
+ } else {
11
+ style.appendChild(document.createTextNode(css));
12
+ }
13
+ head.appendChild(style);
14
+ }
15
+ styleInject(css_248z);
16
+
17
+ export { styles as default };
18
+ //# sourceMappingURL=CalendarHeader.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalendarHeader.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,20 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { BaseComponents } from '../../../baseComponents/index.js';
3
+ import { PERIOD_KEYS } from '../../../constants/calendar/index.js';
4
+ import { joinClasses } from '../../../utils/joinClasses.js';
5
+ import styles from './CalendarHeader.module.css.js';
6
+
7
+ const CalendarHeader = ({ setSelectedPeriodInterval, selectedPeriodInterval, selectedPeriod, }) => {
8
+ const tabs = [
9
+ { key: PERIOD_KEYS.from, label: "Период с" },
10
+ { key: PERIOD_KEYS.to, label: "Период до" },
11
+ ];
12
+ return (jsx("div", { "data-testid": "CalendarTab_WRAP", className: styles.tab, children: tabs.map((tab) => (jsx("button", { type: "button", "data-testid": `CalendarTabButton_${tab.key.toUpperCase()}`, className: joinClasses(selectedPeriodInterval === tab.key
13
+ ? styles.titleActiv
14
+ : styles.title), onClick: () => {
15
+ setSelectedPeriodInterval(tab.key);
16
+ }, "aria-label": `Кнопка ${tab.label}`, children: jsx(BaseComponents.Typography, { "data-testid": `CalendarTabTitle_${tab.key.toUpperCase()}`, tag: "span", fontClass: "body1Medium", "aria-label": tab.label, children: `${tab.label} ${selectedPeriod[`${tab.key}Date`] || "..."}` }) }, tab.key))) }));
17
+ };
18
+
19
+ export { CalendarHeader };
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/Calendar/Header/index.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":";;;;;;AAYO,MAAM,cAAc,GAAG,CAAC,EAC7B,yBAAyB,EACzB,sBAAsB,EACtB,cAAc,GACD,KAAI;AACjB,IAAA,MAAM,IAAI,GAA0C;QAClD,EAAE,GAAG,EAAE,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE;QAC5C,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE;KAC5C;AACD,IAAA,QACEA,GAAA,CAAA,KAAA,EAAA,EAAA,aAAA,EAAiB,kBAAkB,EAAC,SAAS,EAAE,MAAM,CAAC,GAAG,YACtD,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MACZA,GAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EAAA,aAAA,EAEA,CAAA,kBAAA,EAAqB,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,EACzD,SAAS,EAAE,WAAW,CACpB,sBAAsB,KAAK,GAAG,CAAC;kBAC3B,MAAM,CAAC;kBACP,MAAM,CAAC,KAAK,CACjB,EACD,OAAO,EAAE,MAAK;AACZ,gBAAA,yBAAyB,CAAC,GAAG,CAAC,GAAG,CAAC;YACpC,CAAC,EAAA,YAAA,EACW,CAAA,OAAA,EAAU,GAAG,CAAC,KAAK,CAAA,CAAE,EAAA,QAAA,EAEjCA,GAAA,CAAC,cAAc,CAAC,UAAU,EAAA,EAAA,aAAA,EACX,CAAA,iBAAA,EAAoB,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAA,CAAE,EACxD,GAAG,EAAC,MAAM,EACV,SAAS,EAAC,aAAa,EAAA,YAAA,EACX,GAAG,CAAC,KAAK,EAAA,QAAA,EAEpB,CAAA,EAAG,GAAG,CAAC,KAAK,CAAA,CAAA,EAAI,cAAc,CAAC,CAAA,EAAG,GAAG,CAAC,GAAG,CAAA,IAAA,CAAM,CAAC,IAAI,KAAK,CAAA,CAAE,EAAA,CAClC,EAAA,EAnBvB,GAAG,CAAC,GAAG,CAoBL,CACV,CAAC,EAAA,CACE;AAEV;;;;"}
@@ -0,0 +1,47 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { useState, useMemo } from 'react';
3
+ import { BaseComponents } from '../../baseComponents/index.js';
4
+ import { PERIOD_KEYS } from '../../constants/calendar/index.js';
5
+ import { convertType } from '../../utils/date/convertType.js';
6
+ import { CalendarBody } from './Body/index.js';
7
+ import { CalendarHeader } from './Header/index.js';
8
+
9
+ const toDateString = (date) => `${convertType.day.toString(date.getDate())}.${convertType.month.toString(date.getMonth())}.${date.getFullYear()}`;
10
+ const toDate = (value) => {
11
+ if (!value)
12
+ return null;
13
+ const [day, month, year] = value.split(".").map(Number);
14
+ return new Date(year, month - 1, day);
15
+ };
16
+ const Calendar = () => {
17
+ const [selectedPeriodInterval, setSelectedPeriodInterval] = useState(PERIOD_KEYS.from);
18
+ const [selectedPeriod, setSelectedPeriod] = useState({
19
+ fromDate: "",
20
+ toDate: "",
21
+ periodSelected: false,
22
+ });
23
+ const rangeStart = toDate(selectedPeriod.fromDate);
24
+ const rangeEnd = toDate(selectedPeriod.toDate);
25
+ const visibleDate = useMemo(() => (selectedPeriodInterval === PERIOD_KEYS.to ? rangeEnd : rangeStart) ??
26
+ new Date(), [rangeEnd, rangeStart, selectedPeriodInterval]);
27
+ const handleDayClick = (date) => {
28
+ setSelectedPeriod((current) => {
29
+ const next = {
30
+ ...current,
31
+ [`${selectedPeriodInterval}Date`]: toDateString(date),
32
+ isAllSelected: false,
33
+ };
34
+ return {
35
+ ...next,
36
+ periodSelected: Boolean(next.fromDate && next.toDate),
37
+ };
38
+ });
39
+ };
40
+ const handlePeriodChange = (periodKey) => {
41
+ setSelectedPeriodInterval(periodKey);
42
+ };
43
+ return (jsxs(BaseComponents.Modal, { variant: "small", setIsOpen: () => { }, isOpen: true, lang: "ru", children: [jsx(CalendarHeader, { selectedPeriod: selectedPeriod, selectedPeriodInterval: selectedPeriodInterval, setSelectedPeriodInterval: handlePeriodChange }), jsx(CalendarBody, { month: visibleDate.getMonth(), year: visibleDate.getFullYear(), selectedDate: selectedPeriodInterval === PERIOD_KEYS.from ? rangeStart : rangeEnd, selectedPeriodInterval: selectedPeriodInterval, rangeStart: rangeStart, rangeEnd: rangeEnd, onDayClick: handleDayClick })] }));
44
+ };
45
+
46
+ export { Calendar };
47
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/Calendar/index.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":";;;;;;;;AAQA,MAAM,YAAY,GAAG,CAAC,IAAU,KAC9B,CAAA,EAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA,CAAA,EAAI,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AACpH,MAAM,MAAM,GAAG,CAAC,KAAc,KAAI;AAChC,IAAA,IAAI,CAAC,KAAK;AAAE,QAAA,OAAO,IAAI;AACvB,IAAA,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;IACvD,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC;AACvC,CAAC;AAEM,MAAM,QAAQ,GAAG,MAAK;AAC3B,IAAA,MAAM,CAAC,sBAAsB,EAAE,yBAAyB,CAAC,GACvD,QAAQ,CAAc,WAAW,CAAC,IAAI,CAAC;AACzC,IAAA,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAkB;AACpE,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,MAAM,EAAE,EAAE;AACV,QAAA,cAAc,EAAE,KAAK;AACtB,KAAA,CAAC;IAEF,MAAM,UAAU,GAAG,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC;IAClD,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC;IAC9C,MAAM,WAAW,GAAG,OAAO,CACzB,MACE,CAAC,sBAAsB,KAAK,WAAW,CAAC,EAAE,GAAG,QAAQ,GAAG,UAAU;QAClE,IAAI,IAAI,EAAE,EACZ,CAAC,QAAQ,EAAE,UAAU,EAAE,sBAAsB,CAAC,CAC/C;AAED,IAAA,MAAM,cAAc,GAAG,CAAC,IAAU,KAAI;AACpC,QAAA,iBAAiB,CAAC,CAAC,OAAO,KAAI;AAC5B,YAAA,MAAM,IAAI,GAAG;AACX,gBAAA,GAAG,OAAO;gBACV,CAAC,CAAA,EAAG,sBAAsB,CAAA,IAAA,CAAM,GAAG,YAAY,CAAC,IAAI,CAAC;AACrD,gBAAA,aAAa,EAAE,KAAK;aACrB;YACD,OAAO;AACL,gBAAA,GAAG,IAAI;gBACP,cAAc,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC;aACtD;AACH,QAAA,CAAC,CAAC;AACJ,IAAA,CAAC;AAED,IAAA,MAAM,kBAAkB,GAAG,CAAC,SAAsB,KAAI;QACpD,yBAAyB,CAAC,SAAS,CAAC;AACtC,IAAA,CAAC;IAED,QACEA,KAAC,cAAc,CAAC,KAAK,EAAA,EACnB,OAAO,EAAC,OAAO,EACf,SAAS,EAAE,MAAK,EAAE,CAAC,EACnB,MAAM,EAAE,IAAI,EACZ,IAAI,EAAC,IAAI,EAAA,QAAA,EAAA,CAETC,IAAC,cAAc,EAAA,EACb,cAAc,EAAE,cAAc,EAC9B,sBAAsB,EAAE,sBAAsB,EAC9C,yBAAyB,EAAE,kBAAkB,EAAA,CAC7C,EACFA,GAAA,CAAC,YAAY,IACX,KAAK,EAAE,WAAW,CAAC,QAAQ,EAAE,EAC7B,IAAI,EAAE,WAAW,CAAC,WAAW,EAAE,EAC/B,YAAY,EACV,sBAAsB,KAAK,WAAW,CAAC,IAAI,GAAG,UAAU,GAAG,QAAQ,EAErE,sBAAsB,EAAE,sBAAsB,EAC9C,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,cAAc,EAAA,CAC1B,CAAA,EAAA,CACmB;AAE3B;;;;"}
@@ -1,4 +1,5 @@
1
1
  import '../styles/colors.css.js';
2
+ import { Calendar } from './Calendar/index.js';
2
3
  import { CalendarBody } from './Calendar/Body/index.js';
3
4
  import { ErrorModal } from './ErrorModal/index.js';
4
5
  import { Agreement } from './Identity/Agreement/index.js';
@@ -54,6 +55,7 @@ const Components = {
54
55
  ServiceCardComponent,
55
56
  NotificationItem,
56
57
  NotificationWrapper,
58
+ Calendar,
57
59
  CalendarBody,
58
60
  };
59
61
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/index.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BO,MAAM,UAAU,GAAG;IACxB,SAAS;IACT,IAAI;IACJ,OAAO;IACP,UAAU;IACV,aAAa;IACb,UAAU;IACV,QAAQ;IACR,aAAa;IACb,gBAAgB;IAChB,oBAAoB;IACpB,cAAc;IACd,cAAc;IACd,aAAa;IACb,OAAO;IACP,kBAAkB;IAClB,SAAS;IACT,iBAAiB;IACjB,oBAAoB;IACpB,oBAAoB;IACpB,WAAW;IACX,UAAU;IACV,eAAe;IACf,gBAAgB;IAChB,oBAAoB;IACpB,gBAAgB;IAChB,mBAAmB;IACnB,YAAY;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/index.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BO,MAAM,UAAU,GAAG;IACxB,SAAS;IACT,IAAI;IACJ,OAAO;IACP,UAAU;IACV,aAAa;IACb,UAAU;IACV,QAAQ;IACR,aAAa;IACb,gBAAgB;IAChB,oBAAoB;IACpB,cAAc;IACd,cAAc;IACd,aAAa;IACb,OAAO;IACP,kBAAkB;IAClB,SAAS;IACT,iBAAiB;IACjB,oBAAoB;IACpB,oBAAoB;IACpB,WAAW;IACX,UAAU;IACV,eAAe;IACf,gBAAgB;IAChB,oBAAoB;IACpB,gBAAgB;IAChB,mBAAmB;IACnB,QAAQ;IACR,YAAY;;;;;"}
@@ -0,0 +1,7 @@
1
+ const PERIOD_KEYS = {
2
+ from: "from",
3
+ to: "to",
4
+ };
5
+
6
+ export { PERIOD_KEYS };
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/constants/calendar/index.tsx"],"sourcesContent":[null],"names":[],"mappings":"AAEO,MAAM,WAAW,GAAgB;AACtC,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,EAAE,EAAE,IAAI;;;;;"}
@@ -1,4 +1,5 @@
1
1
  import { useState, useRef, useMemo, useEffect } from 'react';
2
+ import { PERIOD_KEYS } from '../constants/calendar/index.js';
2
3
  import { getDaysInMonth } from '../utils/date/getDaysInMonth.js';
3
4
 
4
5
  const TODAY = new Date();
@@ -6,7 +7,7 @@ const YEARS_BACK = 100;
6
7
  const isSameDate = (left, right) => left.getFullYear() === right.getFullYear() &&
7
8
  left.getMonth() === right.getMonth() &&
8
9
  left.getDate() === right.getDate();
9
- const buildCalendarDays = (month, year, selectedDate) => {
10
+ const buildCalendarDays = (month, year, selectedDate, selectedPeriodInterval, rangeStart, rangeEnd) => {
10
11
  const firstDayIndex = (new Date(year, month, 1).getDay() + 6) % 7;
11
12
  const daysInMonth = getDaysInMonth(month, year);
12
13
  const trailingDays = (7 - ((firstDayIndex + daysInMonth) % 7)) % 7;
@@ -20,16 +21,33 @@ const buildCalendarDays = (month, year, selectedDate) => {
20
21
  isCurrentMonth: date.getMonth() === month,
21
22
  isToday: isSameDate(date, TODAY),
22
23
  isSelected: selectedDate ? isSameDate(date, selectedDate) : false,
24
+ isInRange: Boolean(rangeStart &&
25
+ rangeEnd &&
26
+ date.getTime() >= rangeStart.getTime() &&
27
+ date.getTime() <= rangeEnd.getTime()),
28
+ isDisabled: Boolean((selectedPeriodInterval === PERIOD_KEYS.from &&
29
+ rangeEnd &&
30
+ date.getTime() > rangeEnd.getTime()) ||
31
+ (selectedPeriodInterval === PERIOD_KEYS.to &&
32
+ rangeStart &&
33
+ date.getTime() < rangeStart.getTime())),
23
34
  };
24
35
  });
25
36
  };
26
- const useCalendar = ({ month, year, selectedDate, onMonthChange, }) => {
37
+ const useCalendar = ({ month, year, selectedDate, selectedPeriodInterval, rangeStart, rangeEnd, onMonthChange, }) => {
27
38
  const [visibleDate, setVisibleDate] = useState(() => new Date(year, month, 1));
28
39
  const [isYearPickerOpen, setIsYearPickerOpen] = useState(false);
29
40
  const yearListRef = useRef(null);
30
41
  const visibleMonth = visibleDate.getMonth();
31
42
  const visibleYear = visibleDate.getFullYear();
32
- const days = useMemo(() => buildCalendarDays(visibleMonth, visibleYear, selectedDate), [visibleMonth, visibleYear, selectedDate]);
43
+ const days = useMemo(() => buildCalendarDays(visibleMonth, visibleYear, selectedDate, selectedPeriodInterval, rangeStart, rangeEnd), [
44
+ visibleMonth,
45
+ visibleYear,
46
+ rangeEnd,
47
+ rangeStart,
48
+ selectedDate,
49
+ selectedPeriodInterval,
50
+ ]);
33
51
  const maxYear = TODAY.getFullYear();
34
52
  const minYear = maxYear - YEARS_BACK;
35
53
  const years = Array.from({ length: maxYear - minYear + 1 }, (_, index) => maxYear - index);
@@ -1 +1 @@
1
- {"version":3,"file":"useCalendar.js","sources":["../../../src/customHooks/useCalendar.tsx"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useCalendar.js","sources":["../../../src/customHooks/useCalendar.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;AAMA,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE;AACxB,MAAM,UAAU,GAAG,GAAG;AAYtB,MAAM,UAAU,GAAG,CAAC,IAAU,EAAE,KAAW,KACzC,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE;AAC1C,IAAA,IAAI,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC,QAAQ,EAAE;IACpC,IAAI,CAAC,OAAO,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE;AAEpC,MAAM,iBAAiB,GAAG,CACxB,KAAa,EACb,IAAY,EACZ,YAA0B,EAC1B,sBAAoC,EACpC,UAAwB,EACxB,QAAsB,KACA;IACtB,MAAM,aAAa,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC;IACjE,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC;AAC/C,IAAA,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,GAAG,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC;AAClE,IAAA,MAAM,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,YAAY;AAC5D,IAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,aAAa,CAAC;AAE1D,IAAA,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,KAAI;QACpD,MAAM,IAAI,GAAG,IAAI,IAAI,CACnB,SAAS,CAAC,WAAW,EAAE,EACvB,SAAS,CAAC,QAAQ,EAAE,EACpB,SAAS,CAAC,OAAO,EAAE,GAAG,KAAK,CAC5B;QAED,OAAO;YACL,IAAI;AACJ,YAAA,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE;AACnB,YAAA,cAAc,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,KAAK;AACzC,YAAA,OAAO,EAAE,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;AAChC,YAAA,UAAU,EAAE,YAAY,GAAG,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,KAAK;YACjE,SAAS,EAAE,OAAO,CAChB,UAAU;gBACR,QAAQ;AACR,gBAAA,IAAI,CAAC,OAAO,EAAE,IAAI,UAAU,CAAC,OAAO,EAAE;gBACtC,IAAI,CAAC,OAAO,EAAE,IAAI,QAAQ,CAAC,OAAO,EAAE,CACvC;YACD,UAAU,EAAE,OAAO,CACjB,CAAC,sBAAsB,KAAK,WAAW,CAAC,IAAI;gBAC1C,QAAQ;gBACR,IAAI,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE;AACnC,iBAAC,sBAAsB,KAAK,WAAW,CAAC,EAAE;oBACxC,UAAU;oBACV,IAAI,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,CAC3C;SACF;AACH,IAAA,CAAC,CAAC;AACJ,CAAC;MAEY,WAAW,GAAG,CAAC,EAC1B,KAAK,EACL,IAAI,EACJ,YAAY,EACZ,sBAAsB,EACtB,UAAU,EACV,QAAQ,EACR,aAAa,GACS,KAAI;IAC1B,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAC5C,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAC/B;IACD,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AAC/D,IAAA,MAAM,WAAW,GAAG,MAAM,CAAwB,IAAI,CAAC;AAEvD,IAAA,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,EAAE;AAC3C,IAAA,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,EAAE;IAE7C,MAAM,IAAI,GAAG,OAAO,CAClB,MACE,iBAAiB,CACf,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,sBAAsB,EACtB,UAAU,EACV,QAAQ,CACT,EACH;QACE,YAAY;QACZ,WAAW;QACX,QAAQ;QACR,UAAU;QACV,YAAY;QACZ,sBAAsB;AACvB,KAAA,CACF;AACD,IAAA,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,EAAE;AACnC,IAAA,MAAM,OAAO,GAAG,OAAO,GAAG,UAAU;IACpC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CACtB,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,GAAG,CAAC,EAAE,EACjC,CAAC,CAAC,EAAE,KAAK,KAAK,OAAO,GAAG,KAAK,CAC9B;AAED,IAAA,MAAM,WAAW,GAAG,CAAC,MAAc,KAAI;AACrC,QAAA,cAAc,CAAC,CAAC,OAAO,KAAI;AACzB,YAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CACnB,OAAO,CAAC,WAAW,EAAE,EACrB,OAAO,CAAC,QAAQ,EAAE,GAAG,MAAM,EAC3B,CAAC,CACF;AACD,YAAA,aAAa,GAAG,IAAI,CAAC;AACrB,YAAA,OAAO,IAAI;AACb,QAAA,CAAC,CAAC;AACJ,IAAA,CAAC;AAED,IAAA,MAAM,QAAQ,GAAG,CAAC,UAAkB,KAAI;AACtC,QAAA,cAAc,CAAC,CAAC,OAAO,KAAI;AACzB,YAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AACxD,YAAA,aAAa,GAAG,IAAI,CAAC;AACrB,YAAA,OAAO,IAAI;AACb,QAAA,CAAC,CAAC;QACF,mBAAmB,CAAC,KAAK,CAAC;AAC5B,IAAA,CAAC;IAED,SAAS,CAAC,MAAK;QACb,cAAc,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAC1C,IAAA,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAEjB,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,CAAC,gBAAgB,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;YAC7C;AACD,QAAA;AACD,QAAA,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,CAAC,aAAa,CACtD,CAAA,YAAA,EAAe,WAAW,CAAA,EAAA,CAAI,CAC/B;QACD,cAAc,EAAE,cAAc,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AACrD,IAAA,CAAC,EAAE,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;IAEnC,OAAO;QACL,IAAI;QACJ,KAAK;QACL,YAAY;QACZ,WAAW;QACX,gBAAgB;QAChB,mBAAmB;QACnB,WAAW;QACX,WAAW;QACX,QAAQ;KACT;AACH;;;;"}
@@ -0,0 +1,32 @@
1
+ const convert = {
2
+ day: {
3
+ toString: (num) => {
4
+ return String(num).padStart(2, "0");
5
+ },
6
+ toNumber: (str) => {
7
+ return +str;
8
+ },
9
+ },
10
+ month: {
11
+ toString: (num) => {
12
+ return String(num + 1).padStart(2, "0");
13
+ },
14
+ toNumber: (str) => {
15
+ return +str - 1;
16
+ },
17
+ },
18
+ year: {
19
+ toString: (num) => {
20
+ return String(num);
21
+ },
22
+ toNumber: (str) => {
23
+ return +str;
24
+ },
25
+ },
26
+ };
27
+ const convertType = {
28
+ ...convert,
29
+ };
30
+
31
+ export { convertType };
32
+ //# sourceMappingURL=convertType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convertType.js","sources":["../../../../src/utils/date/convertType.tsx"],"sourcesContent":[null],"names":[],"mappings":"AAEA,MAAM,OAAO,GAAG;AACd,IAAA,GAAG,EAAE;AACH,QAAA,QAAQ,EAAE,CAAC,GAAW,KAAI;YACxB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;QACrC,CAAC;AACD,QAAA,QAAQ,EAAE,CAAC,GAAW,KAAI;YACxB,OAAO,CAAC,GAAG;QACb,CAAC;AACF,KAAA;AACD,IAAA,KAAK,EAAE;AACL,QAAA,QAAQ,EAAE,CAAC,GAAW,KAAI;AACxB,YAAA,OAAO,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;QACzC,CAAC;AACD,QAAA,QAAQ,EAAE,CAAC,GAAW,KAAI;AACxB,YAAA,OAAO,CAAC,GAAG,GAAG,CAAC;QACjB,CAAC;AACF,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,QAAQ,EAAE,CAAC,GAAW,KAAI;AACxB,YAAA,OAAO,MAAM,CAAC,GAAG,CAAC;QACpB,CAAC;AACD,QAAA,QAAQ,EAAE,CAAC,GAAW,KAAI;YACxB,OAAO,CAAC,GAAG;QACb,CAAC;AACF,KAAA;CACF;AA8CM,MAAM,WAAW,GAAG;AACzB,IAEA,GAAG,OAAO;;;;;"}
@@ -1,7 +1,12 @@
1
+ import { TPeriodKeys } from '../../../interfaces/Calendar.js';
2
+
1
3
  interface ICalendarBodyProps {
2
4
  month?: number;
3
5
  year?: number;
4
6
  selectedDate?: Date | null;
7
+ rangeStart?: Date | null;
8
+ rangeEnd?: Date | null;
9
+ selectedPeriodInterval?: TPeriodKeys;
5
10
  onDayClick?: (date: Date) => void;
6
11
  onMonthChange?: (date: Date) => void;
7
12
  }
@@ -100,7 +100,8 @@ declare const SystemDesign: {
100
100
  ServiceCardComponent: ({ handleOrderService, badge, isNew, title, }: IServiceCardComponentProps) => react_jsx_runtime.JSX.Element;
101
101
  NotificationItem: ({ type, text, onClick, }: INotificationComponentProps) => react_jsx_runtime.JSX.Element;
102
102
  NotificationWrapper: ({ items, removeNotificationData, }: INotificationWrapperProps) => react_jsx_runtime.JSX.Element | null;
103
- CalendarBody: ({ month, year, selectedDate, onDayClick, onMonthChange, }: ICalendarBodyProps) => react_jsx_runtime.JSX.Element;
103
+ Calendar: () => react_jsx_runtime.JSX.Element;
104
+ CalendarBody: ({ month, year, selectedDate, rangeStart, rangeEnd, selectedPeriodInterval, onDayClick, onMonthChange, }: ICalendarBodyProps) => react_jsx_runtime.JSX.Element;
104
105
  };
105
106
  };
106
107
 
@@ -0,0 +1,7 @@
1
+ interface IPeriodKeys {
2
+ from: "from";
3
+ to: "to";
4
+ }
5
+ type TPeriodKeys = keyof IPeriodKeys;
6
+
7
+ export type { IPeriodKeys, TPeriodKeys };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@egov3/system-design",
3
- "version": "1.3.123",
3
+ "version": "1.3.124",
4
4
  "type": "module",
5
5
  "main": "dist/cjs/index.js",
6
6
  "types": "dist/types/index.d.ts",