@egov3/system-design 1.3.124 → 1.3.127

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 (45) hide show
  1. package/dist/cjs/components/Calendar/Body/CalendarBody.module.css.js +2 -2
  2. package/dist/cjs/components/Calendar/Body/index.js +18 -14
  3. package/dist/cjs/components/Calendar/Body/index.js.map +1 -1
  4. package/dist/cjs/components/Calendar/Calendar.module.css.js +22 -0
  5. package/dist/cjs/components/Calendar/Calendar.module.css.js.map +1 -0
  6. package/dist/cjs/components/Calendar/Header/CalendarHeader.module.css.js +2 -2
  7. package/dist/cjs/components/Calendar/Header/index.js +16 -11
  8. package/dist/cjs/components/Calendar/Header/index.js.map +1 -1
  9. package/dist/cjs/components/Calendar/index.js +68 -34
  10. package/dist/cjs/components/Calendar/index.js.map +1 -1
  11. package/dist/cjs/constants/i18n/Calendar.js +42 -0
  12. package/dist/cjs/constants/i18n/Calendar.js.map +1 -0
  13. package/dist/cjs/constants/i18n/index.js +2 -0
  14. package/dist/cjs/constants/i18n/index.js.map +1 -1
  15. package/dist/cjs/customHooks/useCalendar.js +47 -32
  16. package/dist/cjs/customHooks/useCalendar.js.map +1 -1
  17. package/dist/cjs/utils/calendar.js +64 -0
  18. package/dist/cjs/utils/calendar.js.map +1 -0
  19. package/dist/cjs/utils/date/getMonthNameProper.js +27 -2
  20. package/dist/cjs/utils/date/getMonthNameProper.js.map +1 -1
  21. package/dist/esm/components/Calendar/Body/CalendarBody.module.css.js +2 -2
  22. package/dist/esm/components/Calendar/Body/index.js +17 -13
  23. package/dist/esm/components/Calendar/Body/index.js.map +1 -1
  24. package/dist/esm/components/Calendar/Calendar.module.css.js +18 -0
  25. package/dist/esm/components/Calendar/Calendar.module.css.js.map +1 -0
  26. package/dist/esm/components/Calendar/Header/CalendarHeader.module.css.js +2 -2
  27. package/dist/esm/components/Calendar/Header/index.js +15 -10
  28. package/dist/esm/components/Calendar/Header/index.js.map +1 -1
  29. package/dist/esm/components/Calendar/index.js +68 -34
  30. package/dist/esm/components/Calendar/index.js.map +1 -1
  31. package/dist/esm/constants/i18n/Calendar.js +40 -0
  32. package/dist/esm/constants/i18n/Calendar.js.map +1 -0
  33. package/dist/esm/constants/i18n/index.js +2 -0
  34. package/dist/esm/constants/i18n/index.js.map +1 -1
  35. package/dist/esm/customHooks/useCalendar.js +46 -31
  36. package/dist/esm/customHooks/useCalendar.js.map +1 -1
  37. package/dist/esm/utils/calendar.js +54 -0
  38. package/dist/esm/utils/calendar.js.map +1 -0
  39. package/dist/esm/utils/date/getMonthNameProper.js +27 -2
  40. package/dist/esm/utils/date/getMonthNameProper.js.map +1 -1
  41. package/dist/types/components/Calendar/Body/index.d.ts +3 -1
  42. package/dist/types/components/Calendar/index.d.ts +19 -0
  43. package/dist/types/index.d.ts +3 -2
  44. package/dist/types/interfaces/Calendar.d.ts +7 -1
  45. 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_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"};
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_today__Igk3j {\n border: 1px solid var(--surface-accent);\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","today":"CalendarBody-module_today__Igk3j","years":"CalendarBody-module_years__4Peqd","yearItem":"CalendarBody-module_yearItem__mr9MS","yearItemSelected":"CalendarBody-module_yearItemSelected__HsDcR"};
7
7
  function styleInject(css, options) {
8
8
  if (typeof document === 'undefined') return;
9
9
  const head = document.head || document.getElementsByTagName('head')[0];
@@ -3,25 +3,27 @@
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
+ var index$2 = require('../../../constants/calendar/index.js');
7
+ var index$1 = require('../../../constants/i18n/index.js');
8
+ var useCalendar = require('../../../customHooks/useCalendar.js');
7
9
  var getMonthNameProper = require('../../../utils/date/getMonthNameProper.js');
8
10
  var joinClasses = require('../../../utils/joinClasses.js');
9
- var useCalendar = require('../../../customHooks/useCalendar.js');
10
11
  var CalendarBody_module = require('./CalendarBody.module.css.js');
11
12
 
12
- const WEEK_DAYS = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"];
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({
13
+ const CalendarBody = ({ lang, month = new Date().getMonth(), year = new Date().getFullYear(), selectedDate = null, rangeStart = null, rangeEnd = null, maxDate = null, selectedPeriodInterval = index$2.PERIOD_KEYS.from, onDayClick, onMonthChange, }) => {
14
+ const { days, years, visibleMonth, visibleYear, isYearPickerOpen, isNextMonthDisabled, setIsYearPickerOpen, yearListRef, changeMonth, pickYear, } = useCalendar.useCalendar({
15
15
  month,
16
16
  year,
17
17
  selectedDate,
18
18
  selectedPeriodInterval,
19
19
  rangeStart,
20
20
  rangeEnd,
21
+ maxDate,
21
22
  onMonthChange,
22
23
  });
23
- const monthName = getMonthNameProper.getMonthNameProper(visibleMonth);
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: () => {
24
+ const monthName = getMonthNameProper.getMonthNameProper(visibleMonth, lang);
25
+ const weekDays = index$1.i18n.Calendar.WeekDays[lang];
26
+ return (jsxRuntime.jsxs("div", { className: CalendarBody_module.default.wrapper, "data-testid": "CalendarBody", children: [jsxRuntime.jsxs("div", { className: CalendarBody_module.default.header, "data-testid": "CalendarBody_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: () => {
25
27
  setIsYearPickerOpen(true);
26
28
  }, "data-testid": "Calendar_CHOOSE_YEAR_BTN", children: [jsxRuntime.jsx(index.BaseComponents.Typography, { tag: "span", fontClass: "body1Medium", "data-testid": "Calendar_CURRENT_YEAR", children: visibleYear }), jsxRuntime.jsx(graphics.Icons.Basic.ChevronDownSmall, { width: "24px", height: "24px", fill: "var(--icon-accent-color)" })] })] }), isYearPickerOpen ? (jsxRuntime.jsx("button", { type: "button", onClick: () => {
27
29
  setIsYearPickerOpen(false);
@@ -29,13 +31,15 @@ const CalendarBody = ({ month = new Date().getMonth(), year = new Date().getFull
29
31
  changeMonth(-1);
30
32
  }, "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: () => {
31
33
  changeMonth(1);
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) => {
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) {
35
- onDayClick?.(cell.date);
36
- }
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()));
38
- }) })] }));
34
+ }, "data-testid": "Calendar_NEXT_MONTH_BTN", disabled: isNextMonthDisabled, children: jsxRuntime.jsx(graphics.Icons.Basic.ChevronRight, { width: "24px", height: "24px", fill: "var(--icon-accent-color)" }) })] }))] }), isYearPickerOpen ? (jsxRuntime.jsx("div", { ref: yearListRef, className: CalendarBody_module.default.years, "data-testid": "Calendar_YEARS_LIST", children: years.map((yearItem) => (jsxRuntime.jsx("button", { "data-testid": `CalendarBody_YEAR_${yearItem}`, "data-year": yearItem, type: "button", className: joinClasses.joinClasses(CalendarBody_module.default.yearItem, yearItem === visibleYear && CalendarBody_module.default.yearItemSelected), onClick: () => {
35
+ pickYear(yearItem);
36
+ }, children: jsxRuntime.jsx(index.BaseComponents.Typography, { tag: "span", fontClass: "body1Medium", children: yearItem }) }, yearItem))) })) : (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("div", { className: CalendarBody_module.default.weekDays, "data-testid": "Calendar_WEEK_DAYS", children: weekDays.map((day) => (jsxRuntime.jsx(index.BaseComponents.Typography, { tag: "span", fontClass: "body2Medium", className: CalendarBody_module.default.weekDay, "data-testid": `CalendarBody_WEEK_DAY_${day}`, children: day }, day))) }), jsxRuntime.jsx("div", { className: CalendarBody_module.default.grid, "data-testid": "Calendar_DAYS_GRID", children: days.map((cell) => {
37
+ 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.isToday && CalendarBody_module.default.today, cell.isSelected && CalendarBody_module.default.selected), onClick: () => {
38
+ if (cell.isCurrentMonth && !cell.isDisabled) {
39
+ onDayClick?.(cell.date);
40
+ }
41
+ }, 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", "data-testid": `CalendarBody_DAY_${cell.date.toISOString().slice(0, 10)}_LABEL`, children: cell.day })) }, cell.date.toISOString()));
42
+ }) })] }))] }));
39
43
  };
40
44
 
41
45
  exports.CalendarBody = CalendarBody;
@@ -1 +1 @@
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":";;;;;;;;;;;AASA,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;MAatD,YAAY,GAAG,CAAC,EAC3B,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,EAC7B,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAC/B,YAAY,GAAG,IAAI,EACnB,UAAU,GAAG,IAAI,EACjB,QAAQ,GAAG,IAAI,EACf,sBAAsB,GAAGA,mBAAW,CAAC,IAAI,EACzC,UAAU,EACV,aAAa,GACM,KAAI;IACvB,MAAM,EACJ,IAAI,EAEJ,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,mBAAmB,EAEnB,WACQ,CACT,GAAGC,uBAAW,CAAC;QACd,KAAK;QACL,IAAI;QACJ,YAAY;QACZ,sBAAsB;QACtB,UAAU;QACV,QAAQ;QACR,aAAa;AACd,KAAA,CAAC;AACF,IAAA,MAAM,SAAS,GAAGC,qCAAkB,CAAC,YAAY,CAAC;IAElD,QACEC,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEC,2BAAM,CAAC,OAAO,EAAA,aAAA,EAAc,cAAc,EAAA,QAAA,EAAA,CACxDD,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEC,2BAAM,CAAC,MAAM,EAAA,QAAA,EAAA,CAC3BD,eAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAEC,2BAAM,CAAC,SAAS,EAAA,aAAA,EACf,2BAA2B,EAAA,QAAA,EAAA,CAEvCC,cAAA,CAACC,oBAAc,CAAC,UAAU,EAAA,EACxB,GAAG,EAAC,MAAM,EACV,SAAS,EAAC,aAAa,EAAA,aAAA,EACX,yBAAyB,EAAA,QAAA,EAEpC,SAAS,EAAA,CACgB,EAC5BH,eAAA,CAAA,QAAA,EAAA,EACE,SAAS,EAAEC,2BAAM,CAAC,UAAU,EAC5B,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,MAAK;oCACZ,mBAAmB,CAAC,IAAI,CAAC;gCAC3B,CAAC,EAAA,aAAA,EACW,0BAA0B,EAAA,QAAA,EAAA,CAEtCC,cAAA,CAACC,oBAAc,CAAC,UAAU,EAAA,EACxB,GAAG,EAAC,MAAM,EACV,SAAS,EAAC,aAAa,EAAA,aAAA,EACX,uBAAuB,EAAA,QAAA,EAElC,WAAW,EAAA,CACc,EAC5BD,cAAA,CAACE,cAAK,CAAC,KAAK,CAAC,gBAAgB,EAAA,EAC3B,KAAK,EAAC,MAAM,EACZ,MAAM,EAAC,MAAM,EACb,IAAI,EAAC,0BAA0B,EAAA,CAC/B,CAAA,EAAA,CACK,CAAA,EAAA,CACL,EACL,gBAAgB,IACfF,cAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,MAAK;4BACZ,mBAAmB,CAAC,KAAK,CAAC;AAC5B,wBAAA,CAAC,iBACW,gCAAgC,EAAA,QAAA,EAE5CA,cAAA,CAACE,cAAK,CAAC,OAAO,CAAC,KAAK,EAAA,EAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAA,CAAG,EAAA,CAC3C,KAETJ,kDACEE,cAAA,CAAA,QAAA,EAAA,EACE,SAAS,EAAED,2BAAM,CAAC,SAAS,EAC3B,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,MAAK;AACZ,oCAAA,WAAW,CAAC,EAAE,CAAC;AACjB,gCAAA,CAAC,iBACW,yBAAyB,EAAA,QAAA,EAErCC,cAAA,CAACE,cAAK,CAAC,KAAK,CAAC,WAAW,EAAA,EACtB,KAAK,EAAC,MAAM,EACZ,MAAM,EAAC,MAAM,EACb,IAAI,EAAC,0BAA0B,GAC/B,EAAA,CACK,EACTF,cAAA,CAAA,QAAA,EAAA,EACE,SAAS,EAAED,2BAAM,CAAC,SAAS,EAC3B,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,MAAK;oCACZ,WAAW,CAAC,CAAC,CAAC;AAChB,gCAAA,CAAC,iBACW,yBAAyB,EAAA,QAAA,EAErCC,eAACE,cAAK,CAAC,KAAK,CAAC,YAAY,EAAA,EACvB,KAAK,EAAC,MAAM,EACZ,MAAM,EAAC,MAAM,EACb,IAAI,EAAC,0BAA0B,EAAA,CAC/B,GACK,CAAA,EAAA,CACR,CACJ,IACG,EACNF,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAED,2BAAM,CAAC,QAAQ,YAC5B,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,MACjBC,eAACC,oBAAc,CAAC,UAAU,EAAA,EACxB,GAAG,EAAC,MAAM,EACV,SAAS,EAAC,aAAa,EAEvB,SAAS,EAAEF,2BAAM,CAAC,OAAO,EAAA,QAAA,EAExB,GAAG,EAAA,EAHC,GAAG,CAIkB,CAC7B,CAAC,GACE,EACNC,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAED,2BAAM,CAAC,IAAI,EAAA,QAAA,EACxB,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;oBACjB,QACEC,cAAA,CAAA,QAAA,EAAA,EAEE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAEG,uBAAW,CACpBJ,2BAAM,CAAC,GAAG,EACV,CAAC,IAAI,CAAC,cAAc,IAAIA,2BAAM,CAAC,SAAS,EACxC,IAAI,CAAC,UAAU,IAAIA,2BAAM,CAAC,WAAW,EACrC,IAAI,CAAC,SAAS,IAAIA,2BAAM,CAAC,OAAO,EAChC,IAAI,CAAC,OAAO,IAAIA,2BAAM,CAAC,KAAK,EAC5B,IAAI,CAAC,UAAU,IAAIA,2BAAM,CAAC,QAAQ,CACnC,EACD,OAAO,EAAE,MAAK;4BACZ,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AAC3C,gCAAA,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC;AACxB,4BAAA;AACH,wBAAA,CAAC,EACD,QAAQ,EAAE,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,UAAU,EAAA,aAAA,EACpC,CAAA,iBAAA,EAAoB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA,CAAE,EAAA,QAAA,EAEtE,IAAI,CAAC,cAAc,KAClBC,cAAA,CAACC,oBAAc,CAAC,UAAU,EAAA,EAAC,GAAG,EAAC,MAAM,EAAC,SAAS,EAAC,aAAa,EAAA,QAAA,EAC1D,IAAI,CAAC,GAAG,EAAA,CACiB,CAC7B,EAAA,EAtBI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAuBrB;AAEb,gBAAA,CAAC,CAAC,EAAA,CACE,CAAA,EAAA,CACF;AAEV;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/Calendar/Body/index.tsx"],"sourcesContent":[null],"names":["PERIOD_KEYS","useCalendar","getMonthNameProper","i18n","_jsxs","styles","_jsx","BaseComponents","Icons","joinClasses","_Fragment"],"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 = ".Calendar-module_wrapper__4sYTJ {\n display: flex;\n flex-direction: column;\n gap: 16px;\n padding: 16px;\n}\n";
6
+ var styles = {"wrapper":"Calendar-module_wrapper__4sYTJ"};
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=Calendar.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Calendar.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;"}
@@ -2,8 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
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"};
5
+ var css_248z = ".CalendarHeader-module_tab__-gPIw {\n width: 368px;\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 8px;\n flex: 1 0 0;\n}\n\n.CalendarHeader-module_titleActiv__AqXMv {\n padding: 8px 0px;\n width: 180px;\n color: var(--text-primary);\n text-align: center;\n border-bottom: 2px solid var(--icon-accent-color);\n}\n\n.CalendarHeader-module_title__P2RVF {\n width: 180px;\n padding: 8px 0px;\n color: var(--text-disabled-color);\n text-align: center;\n border-bottom: 2px solid var(--surface-surface-3-color);\n}\n\n.CalendarHeader-module_titleError__zDkX0 {\n text-align: center;\n border-bottom: 2px solid var(--text-error);\n}\n";
6
+ var styles = {"tab":"CalendarHeader-module_tab__-gPIw","titleActiv":"CalendarHeader-module_titleActiv__AqXMv","title":"CalendarHeader-module_title__P2RVF"};
7
7
  function styleInject(css, options) {
8
8
  if (typeof document === 'undefined') return;
9
9
  const head = document.head || document.getElementsByTagName('head')[0];
@@ -1,21 +1,26 @@
1
1
  'use strict';
2
2
 
3
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');
4
+ var index$2 = require('../../../baseComponents/index.js');
5
+ var index$1 = require('../../../constants/calendar/index.js');
6
+ var index = require('../../../constants/i18n/index.js');
7
+ var calendar = require('../../../utils/calendar.js');
7
8
  var CalendarHeader_module = require('./CalendarHeader.module.css.js');
8
9
 
9
- const CalendarHeader = ({ setSelectedPeriodInterval, selectedPeriodInterval, selectedPeriod, }) => {
10
+ const CalendarHeader = ({ lang, setSelectedPeriodInterval, selectedPeriodInterval, selectedPeriod, }) => {
11
+ const langDic = index.i18n.Calendar;
10
12
  const tabs = [
11
- { key: index.PERIOD_KEYS.from, label: "Период с" },
12
- { key: index.PERIOD_KEYS.to, label: "Период до" },
13
+ { key: index$1.PERIOD_KEYS.from, label: langDic.PeriodFrom[lang] },
14
+ { key: index$1.PERIOD_KEYS.to, label: langDic.PeriodTo[lang] },
13
15
  ];
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))) }));
16
+ return (jsxRuntime.jsx("div", { "data-testid": "CalendarTab_WRAP", className: CalendarHeader_module.default.tab, children: tabs.map((tab) => {
17
+ const dateLabel = calendar.formatCalendarDate(selectedPeriod[calendar.getPeriodDateKey(tab.key)]) ||
18
+ "...*";
19
+ const tabClassName = selectedPeriodInterval === tab.key ? CalendarHeader_module.default.titleActiv : CalendarHeader_module.default.title;
20
+ return (jsxRuntime.jsx("button", { type: "button", "data-testid": `CalendarTabButton_${tab.key.toUpperCase()}`, className: tabClassName, onClick: () => {
21
+ setSelectedPeriodInterval(tab.key);
22
+ }, "aria-label": `${langDic.TabButtonAria[lang]} ${tab.label}`, children: jsxRuntime.jsxs(index$2.BaseComponents.Typography, { "data-testid": `CalendarTabTitle_${tab.key.toUpperCase()}`, tag: "span", fontClass: "body1Medium", "aria-label": tab.label, children: [tab.label, " ", dateLabel] }) }, tab.key));
23
+ }) }));
19
24
  };
20
25
 
21
26
  exports.CalendarHeader = CalendarHeader;
@@ -1 +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;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/Calendar/Header/index.tsx"],"sourcesContent":[null],"names":["i18n","PERIOD_KEYS","_jsx","styles","formatCalendarDate","getPeriodDateKey","_jsxs","BaseComponents"],"mappings":";;;;;;;;;AAcO,MAAM,cAAc,GAAG,CAAC,EAC7B,IAAI,EACJ,yBAAyB,EACzB,sBAAsB,EACtB,cAAc,GACD,KAAI;AACjB,IAAA,MAAM,OAAO,GAAGA,UAAI,CAAC,QAAQ;AAE7B,IAAA,MAAM,IAAI,GAA0C;AAClD,QAAA,EAAE,GAAG,EAAEC,mBAAW,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AAC1D,QAAA,EAAE,GAAG,EAAEA,mBAAW,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;KACvD;AACD,IAAA,QACEC,cAAA,CAAA,KAAA,EAAA,EAAA,aAAA,EAAiB,kBAAkB,EAAC,SAAS,EAAEC,6BAAM,CAAC,GAAG,EAAA,QAAA,EACtD,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI;AAChB,YAAA,MAAM,SAAS,GACbC,2BAAkB,CAAC,cAAc,CAACC,yBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7D,gBAAA,MAAM;AACR,YAAA,MAAM,YAAY,GAChB,sBAAsB,KAAK,GAAG,CAAC,GAAG,GAAGF,6BAAM,CAAC,UAAU,GAAGA,6BAAM,CAAC,KAAK;YAEvE,QACED,2BACE,IAAI,EAAC,QAAQ,EAAA,aAAA,EAEA,CAAA,kBAAA,EAAqB,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAA,CAAE,EACzD,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,MAAK;AACZ,oBAAA,yBAAyB,CAAC,GAAG,CAAC,GAAG,CAAC;gBACpC,CAAC,EAAA,YAAA,EACW,CAAA,EAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA,CAAA,EAAI,GAAG,CAAC,KAAK,EAAE,EAAA,QAAA,EAEzDI,eAAA,CAACC,sBAAc,CAAC,UAAU,EAAA,EAAA,aAAA,EACX,oBAAoB,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,EACxD,GAAG,EAAC,MAAM,EACV,SAAS,EAAC,aAAa,EAAA,YAAA,EACX,GAAG,CAAC,KAAK,EAAA,QAAA,EAAA,CAEpB,GAAG,CAAC,KAAK,EAAA,GAAA,EAAG,SAAS,CAAA,EAAA,CACI,EAAA,EAfvB,GAAG,CAAC,GAAG,CAgBL;QAEb,CAAC,CAAC,EAAA,CACE;AAEV;;;;"}
@@ -4,45 +4,79 @@ var jsxRuntime = require('react/jsx-runtime');
4
4
  var React = require('react');
5
5
  var index$1 = require('../../baseComponents/index.js');
6
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');
7
+ var index$2 = require('../../constants/i18n/index.js');
8
+ var calendar = require('../../utils/calendar.js');
9
+ var index$4 = require('./Body/index.js');
10
+ var Calendar_module = require('./Calendar.module.css.js');
11
+ var index$3 = require('./Header/index.js');
10
12
 
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);
13
+ const EMPTY_PERIOD = {
14
+ fromDate: null,
15
+ toDate: null,
16
+ periodSelected: false,
17
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]);
18
+ const normalizeSelectedPeriod = (period = EMPTY_PERIOD) => {
19
+ const fromDate = calendar.normalizeCalendarDate(period.fromDate);
20
+ const toDate = calendar.normalizeCalendarDate(period.toDate);
21
+ return {
22
+ ...period,
23
+ fromDate,
24
+ toDate,
25
+ periodSelected: Boolean(fromDate && toDate),
26
+ };
27
+ };
28
+ const Calendar = ({ mode = "period", isOpen = true, setIsOpen, lang, title, maxDate = null, selectedDate, selectedPeriod, defaultPeriodInterval = index.PERIOD_KEYS.from, onDateChange, onPeriodChange, onSave, }) => {
29
+ const langDic = index$2.i18n.Calendar;
30
+ const isPeriodMode = mode === "period";
31
+ const normalizedMaxDate = calendar.normalizeCalendarDate(maxDate);
32
+ const normalizedSelectedDate = calendar.normalizeCalendarDate(selectedDate);
33
+ const actualSelectedPeriod = normalizeSelectedPeriod(selectedPeriod);
34
+ const [selectedPeriodInterval, setSelectedPeriodInterval] = React.useState(defaultPeriodInterval);
35
+ const rangeStart = actualSelectedPeriod.fromDate ?? null;
36
+ const rangeEnd = actualSelectedPeriod.toDate ?? null;
37
+ let selectedCalendarDate = normalizedSelectedDate;
38
+ if (isPeriodMode) {
39
+ selectedCalendarDate =
40
+ selectedPeriodInterval === index.PERIOD_KEYS.from ? rangeStart : rangeEnd;
41
+ }
42
+ const visibleDate = selectedCalendarDate ?? new Date();
43
+ const defaultModalTitle = isPeriodMode
44
+ ? langDic.SelectPeriodTitle[lang]
45
+ : langDic.SelectDateTitle[lang];
46
+ const modalTitle = title ?? defaultModalTitle;
47
+ const isSaveDisabled = isPeriodMode
48
+ ? !actualSelectedPeriod.periodSelected ||
49
+ calendar.isCalendarDateAfter(rangeEnd, normalizedMaxDate)
50
+ : !normalizedSelectedDate ||
51
+ calendar.isCalendarDateAfter(normalizedSelectedDate, normalizedMaxDate);
52
+ const handleDateChange = (date) => {
53
+ const nextDate = normalizedSelectedDate?.getTime() === date.getTime() ? null : date;
54
+ onDateChange?.(nextDate);
55
+ };
56
+ const handlePeriodChange = (date) => {
57
+ const nextPeriod = calendar.updateSelectedPeriod(actualSelectedPeriod, selectedPeriodInterval, date);
58
+ onPeriodChange?.(nextPeriod);
59
+ };
29
60
  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
- });
61
+ if (isPeriodMode) {
62
+ handlePeriodChange(date);
63
+ return;
64
+ }
65
+ handleDateChange(date);
41
66
  };
42
- const handlePeriodChange = (periodKey) => {
43
- setSelectedPeriodInterval(periodKey);
67
+ const handleSave = () => {
68
+ onSave?.(isPeriodMode ? actualSelectedPeriod : normalizedSelectedDate);
44
69
  };
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 })] }));
70
+ return (jsxRuntime.jsx(index$1.BaseComponents.Modal, { variant: "small", setIsOpen: setIsOpen, isOpen: isOpen, lang: lang, header: {
71
+ isClosable: true,
72
+ title: modalTitle,
73
+ }, footerButtons: [
74
+ {
75
+ text: langDic.SaveButton[lang],
76
+ onClick: handleSave,
77
+ isDisabled: isSaveDisabled,
78
+ },
79
+ ], children: jsxRuntime.jsxs("div", { className: Calendar_module.default.wrapper, "data-testid": "Calendar_WRAPPER", children: [isPeriodMode && (jsxRuntime.jsx(index$3.CalendarHeader, { lang: lang, selectedPeriod: actualSelectedPeriod, selectedPeriodInterval: selectedPeriodInterval, setSelectedPeriodInterval: setSelectedPeriodInterval })), jsxRuntime.jsx(index$4.CalendarBody, { lang: lang, month: visibleDate.getMonth(), year: visibleDate.getFullYear(), selectedDate: selectedCalendarDate, selectedPeriodInterval: selectedPeriodInterval, rangeStart: rangeStart, rangeEnd: rangeEnd, maxDate: normalizedMaxDate, onDayClick: handleDayClick })] }) }));
46
80
  };
47
81
 
48
82
  exports.Calendar = Calendar;
@@ -1 +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
+ {"version":3,"file":"index.js","sources":["../../../../src/components/Calendar/index.tsx"],"sourcesContent":[null],"names":["normalizeCalendarDate","PERIOD_KEYS","i18n","useState","isCalendarDateAfter","updateSelectedPeriod","_jsx","BaseComponents","_jsxs","styles","CalendarHeader","CalendarBody"],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ 'use strict';
2
+
3
+ const Calendar = {
4
+ SaveButton: {
5
+ ru: "Сохранить",
6
+ kk: "Сақтау",
7
+ en: "Save",
8
+ },
9
+ SelectDateTitle: {
10
+ ru: "Выберите дату",
11
+ kk: "Күнді таңдаңыз",
12
+ en: "Select date",
13
+ },
14
+ SelectPeriodTitle: {
15
+ ru: "Выберите период",
16
+ kk: "Кезеңді таңдаңыз",
17
+ en: "Select period",
18
+ },
19
+ PeriodFrom: {
20
+ ru: "Период с",
21
+ kk: "Кезең басы",
22
+ en: "Period from",
23
+ },
24
+ PeriodTo: {
25
+ ru: "Период до",
26
+ kk: "Кезең соңы",
27
+ en: "Period to",
28
+ },
29
+ TabButtonAria: {
30
+ ru: "Кнопка",
31
+ kk: "Батырма",
32
+ en: "Button",
33
+ },
34
+ WeekDays: {
35
+ ru: ["Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "Вс"],
36
+ kk: ["Дс", "Сс", "Ср", "Бс", "Жм", "Сн", "Жс"],
37
+ en: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
38
+ },
39
+ };
40
+
41
+ exports.Calendar = Calendar;
42
+ //# sourceMappingURL=Calendar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Calendar.js","sources":["../../../../src/constants/i18n/Calendar.tsx"],"sourcesContent":[null],"names":[],"mappings":";;AAAO,MAAM,QAAQ,GAAG;AACtB,IAAA,UAAU,EAAE;AACV,QAAA,EAAE,EAAE,WAAW;AACf,QAAA,EAAE,EAAE,QAAQ;AACZ,QAAA,EAAE,EAAE,MAAM;AACX,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,EAAE,EAAE,eAAe;AACnB,QAAA,EAAE,EAAE,gBAAgB;AACpB,QAAA,EAAE,EAAE,aAAa;AAClB,KAAA;AACD,IAAA,iBAAiB,EAAE;AACjB,QAAA,EAAE,EAAE,iBAAiB;AACrB,QAAA,EAAE,EAAE,kBAAkB;AACtB,QAAA,EAAE,EAAE,eAAe;AACpB,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,EAAE,EAAE,UAAU;AACd,QAAA,EAAE,EAAE,YAAY;AAChB,QAAA,EAAE,EAAE,aAAa;AAClB,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,EAAE,EAAE,WAAW;AACf,QAAA,EAAE,EAAE,YAAY;AAChB,QAAA,EAAE,EAAE,WAAW;AAChB,KAAA;AACD,IAAA,aAAa,EAAE;AACb,QAAA,EAAE,EAAE,QAAQ;AACZ,QAAA,EAAE,EAAE,SAAS;AACb,QAAA,EAAE,EAAE,QAAQ;AACb,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC9C,QAAA,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC9C,QAAA,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;AACtD,KAAA;;;;;"}
@@ -1,5 +1,6 @@
1
1
  'use strict';
2
2
 
3
+ var Calendar = require('./Calendar.js');
3
4
  var Common = require('./Common.js');
4
5
  var ErrorModal = require('./ErrorModal.js');
5
6
  var Agreement = require('./Identity/Agreement.js');
@@ -20,6 +21,7 @@ var Feedback = require('./Services/Feedback.js');
20
21
  var FileUpload = require('./Services/FileUpload.js');
21
22
 
22
23
  const i18n = {
24
+ Calendar: Calendar.Calendar,
23
25
  Common: Common.Common,
24
26
  DocCard: DocCard.DocCard,
25
27
  Feedback: Feedback.Feedback,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/constants/i18n/index.tsx"],"sourcesContent":[null],"names":["Common","DocCard","Feedback","Modal","IdentityHeader","SelectBoxButton","ErrorModal","SetUpAccess","ProfileHealthGeneral","EdsSuccess","Auth","Agreement","HelpNotificationItem","MsgBody","EmptyMessages","MsgComponentHeader","FileUpload","SearchBar"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAmBO,MAAM,IAAI,GAAG;YAClBA,aAAM;aACNC,eAAO;cACPC,iBAAQ;WACRC,WAAK;oBACLC,6BAAc;qBACdC,+BAAe;gBACfC,qBAAU;iBACVC,uBAAW;0BACXC,yCAAoB;gBACpBC,qBAAU;UACVC,SAAI;eACJC,mBAAS;0BACTC,yCAAoB;aACpBC,eAAO;mBACPC,2BAAa;wBACbC,qCAAkB;gBAClBC,qBAAU;eACVC,mBAAS;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/constants/i18n/index.tsx"],"sourcesContent":[null],"names":["Calendar","Common","DocCard","Feedback","Modal","IdentityHeader","SelectBoxButton","ErrorModal","SetUpAccess","ProfileHealthGeneral","EdsSuccess","Auth","Agreement","HelpNotificationItem","MsgBody","EmptyMessages","MsgComponentHeader","FileUpload","SearchBar"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAoBO,MAAM,IAAI,GAAG;cAClBA,iBAAQ;YACRC,aAAM;aACNC,eAAO;cACPC,iBAAQ;WACRC,WAAK;oBACLC,6BAAc;qBACdC,+BAAe;gBACfC,qBAAU;iBACVC,uBAAW;0BACXC,yCAAoB;gBACpBC,qBAAU;UACVC,SAAI;eACJC,mBAAS;0BACTC,yCAAoB;aACpBC,eAAO;mBACPC,2BAAa;wBACbC,qCAAkB;gBAClBC,qBAAU;eACVC,mBAAS;;;;;"}
@@ -2,75 +2,89 @@
2
2
 
3
3
  var React = require('react');
4
4
  var index = require('../constants/calendar/index.js');
5
+ var calendar = require('../utils/calendar.js');
5
6
  var getDaysInMonth = require('../utils/date/getDaysInMonth.js');
6
7
 
7
8
  const TODAY = new Date();
8
9
  const YEARS_BACK = 100;
9
- const isSameDate = (left, right) => left.getFullYear() === right.getFullYear() &&
10
- left.getMonth() === right.getMonth() &&
11
- left.getDate() === right.getDate();
12
- const buildCalendarDays = (month, year, selectedDate, selectedPeriodInterval, rangeStart, rangeEnd) => {
10
+ const getDateTimestamp = (date) => date ? calendar.getCalendarDateWithoutTime(date).getTime() : null;
11
+ const buildCalendarDays = ({ month, year, selectedDate, selectedPeriodInterval, rangeStart, rangeEnd, maxDate, }) => {
13
12
  const firstDayIndex = (new Date(year, month, 1).getDay() + 6) % 7;
14
13
  const daysInMonth = getDaysInMonth.getDaysInMonth(month, year);
15
14
  const trailingDays = (7 - ((firstDayIndex + daysInMonth) % 7)) % 7;
16
15
  const cellCount = firstDayIndex + daysInMonth + trailingDays;
17
16
  const startDate = new Date(year, month, 1 - firstDayIndex);
18
- return Array.from({ length: cellCount }, (_, index$1) => {
19
- const date = new Date(startDate.getFullYear(), startDate.getMonth(), startDate.getDate() + index$1);
17
+ const rangeStartTime = getDateTimestamp(rangeStart);
18
+ const rangeEndTime = getDateTimestamp(rangeEnd);
19
+ const maxDateTime = getDateTimestamp(maxDate);
20
+ const isDateInRange = (dateTime) => rangeStartTime !== null &&
21
+ rangeEndTime !== null &&
22
+ dateTime >= rangeStartTime &&
23
+ dateTime <= rangeEndTime;
24
+ const isDateDisabled = (dateTime) => {
25
+ if (maxDateTime !== null && dateTime > maxDateTime) {
26
+ return true;
27
+ }
28
+ if (selectedPeriodInterval === index.PERIOD_KEYS.from) {
29
+ return rangeEndTime !== null && dateTime > rangeEndTime;
30
+ }
31
+ return rangeStartTime !== null && dateTime < rangeStartTime;
32
+ };
33
+ return Array.from({ length: cellCount }, (_, index) => {
34
+ const date = new Date(startDate.getFullYear(), startDate.getMonth(), startDate.getDate() + index);
35
+ const dateTime = calendar.getCalendarDateWithoutTime(date).getTime();
20
36
  return {
21
37
  date,
22
38
  day: date.getDate(),
23
39
  isCurrentMonth: date.getMonth() === month,
24
- isToday: isSameDate(date, TODAY),
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())),
40
+ isToday: calendar.isSameCalendarDate(date, TODAY),
41
+ isSelected: selectedDate ? calendar.isSameCalendarDate(date, selectedDate) : false,
42
+ isInRange: isDateInRange(dateTime),
43
+ isDisabled: isDateDisabled(dateTime),
36
44
  };
37
45
  });
38
46
  };
39
- const useCalendar = ({ month, year, selectedDate, selectedPeriodInterval, rangeStart, rangeEnd, onMonthChange, }) => {
40
- const [visibleDate, setVisibleDate] = React.useState(() => new Date(year, month, 1));
47
+ const useCalendar = ({ month, year, selectedDate, selectedPeriodInterval, rangeStart, rangeEnd, maxDate, onMonthChange, }) => {
48
+ const [visibleDate, setVisibleDate] = React.useState(() => calendar.clampCalendarVisibleDate(new Date(year, month, 1), maxDate));
41
49
  const [isYearPickerOpen, setIsYearPickerOpen] = React.useState(false);
42
50
  const yearListRef = React.useRef(null);
43
51
  const visibleMonth = visibleDate.getMonth();
44
52
  const visibleYear = visibleDate.getFullYear();
45
- const days = React.useMemo(() => buildCalendarDays(visibleMonth, visibleYear, selectedDate, selectedPeriodInterval, rangeStart, rangeEnd), [
46
- visibleMonth,
47
- visibleYear,
48
- rangeEnd,
49
- rangeStart,
53
+ const days = buildCalendarDays({
54
+ month: visibleMonth,
55
+ year: visibleYear,
50
56
  selectedDate,
51
57
  selectedPeriodInterval,
52
- ]);
53
- const maxYear = TODAY.getFullYear();
58
+ rangeStart,
59
+ rangeEnd,
60
+ maxDate,
61
+ });
62
+ const maxYear = maxDate?.getFullYear() ?? TODAY.getFullYear();
54
63
  const minYear = maxYear - YEARS_BACK;
55
64
  const years = Array.from({ length: maxYear - minYear + 1 }, (_, index) => maxYear - index);
65
+ const isNextMonthDisabled = Boolean(maxDate && calendar.isCalendarMonthAfterDate(visibleMonth + 1, visibleYear, maxDate));
56
66
  const changeMonth = (offset) => {
57
67
  setVisibleDate((current) => {
58
68
  const next = new Date(current.getFullYear(), current.getMonth() + offset, 1);
59
- onMonthChange?.(next);
60
- return next;
69
+ const clampedNext = calendar.clampCalendarVisibleDate(next, maxDate);
70
+ if (clampedNext.getTime() === current.getTime()) {
71
+ return current;
72
+ }
73
+ onMonthChange?.(clampedNext);
74
+ return clampedNext;
61
75
  });
62
76
  };
63
77
  const pickYear = (pickedYear) => {
64
78
  setVisibleDate((current) => {
65
- const next = new Date(pickedYear, current.getMonth(), 1);
79
+ const next = calendar.clampCalendarVisibleDate(new Date(pickedYear, current.getMonth(), 1), maxDate);
66
80
  onMonthChange?.(next);
67
81
  return next;
68
82
  });
69
83
  setIsYearPickerOpen(false);
70
84
  };
71
85
  React.useEffect(() => {
72
- setVisibleDate(new Date(year, month, 1));
73
- }, [month, year]);
86
+ setVisibleDate(calendar.clampCalendarVisibleDate(new Date(year, month, 1), maxDate));
87
+ }, [month, maxDate, year]);
74
88
  React.useEffect(() => {
75
89
  if (!isYearPickerOpen || !yearListRef.current) {
76
90
  return;
@@ -84,6 +98,7 @@ const useCalendar = ({ month, year, selectedDate, selectedPeriodInterval, rangeS
84
98
  visibleMonth,
85
99
  visibleYear,
86
100
  isYearPickerOpen,
101
+ isNextMonthDisabled,
87
102
  setIsYearPickerOpen,
88
103
  yearListRef,
89
104
  changeMonth,
@@ -1 +1 @@
1
- {"version":3,"file":"useCalendar.js","sources":["../../../src/customHooks/useCalendar.tsx"],"sourcesContent":[null],"names":["getDaysInMonth","index","PERIOD_KEYS","useState","useRef","useMemo","useEffect"],"mappings":"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"}
1
+ {"version":3,"file":"useCalendar.js","sources":["../../../src/customHooks/useCalendar.tsx"],"sourcesContent":[null],"names":["getCalendarDateWithoutTime","getDaysInMonth","PERIOD_KEYS","isSameCalendarDate","useState","clampCalendarVisibleDate","useRef","isCalendarMonthAfterDate","useEffect"],"mappings":"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"}