@egov3/system-design 1.3.123 → 1.3.126

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 (61) hide show
  1. package/dist/cjs/baseComponents/Modal/Modal.module.css.js +1 -1
  2. package/dist/cjs/components/Calendar/Body/CalendarBody.module.css.js +2 -2
  3. package/dist/cjs/components/Calendar/Body/index.js +25 -12
  4. package/dist/cjs/components/Calendar/Body/index.js.map +1 -1
  5. package/dist/cjs/components/Calendar/Calendar.module.css.js +22 -0
  6. package/dist/cjs/components/Calendar/Calendar.module.css.js.map +1 -0
  7. package/dist/cjs/components/Calendar/Header/CalendarHeader.module.css.js +22 -0
  8. package/dist/cjs/components/Calendar/Header/CalendarHeader.module.css.js.map +1 -0
  9. package/dist/cjs/components/Calendar/Header/index.js +27 -0
  10. package/dist/cjs/components/Calendar/Header/index.js.map +1 -0
  11. package/dist/cjs/components/Calendar/index.js +83 -0
  12. package/dist/cjs/components/Calendar/index.js.map +1 -0
  13. package/dist/cjs/components/index.js +54 -52
  14. package/dist/cjs/components/index.js.map +1 -1
  15. package/dist/cjs/constants/calendar/index.js +9 -0
  16. package/dist/cjs/constants/calendar/index.js.map +1 -0
  17. package/dist/cjs/constants/i18n/Calendar.js +42 -0
  18. package/dist/cjs/constants/i18n/Calendar.js.map +1 -0
  19. package/dist/cjs/constants/i18n/index.js +2 -0
  20. package/dist/cjs/constants/i18n/index.js.map +1 -1
  21. package/dist/cjs/customHooks/useCalendar.js +48 -15
  22. package/dist/cjs/customHooks/useCalendar.js.map +1 -1
  23. package/dist/cjs/utils/calendar.js +64 -0
  24. package/dist/cjs/utils/calendar.js.map +1 -0
  25. package/dist/cjs/utils/date/convertType.js +34 -0
  26. package/dist/cjs/utils/date/convertType.js.map +1 -0
  27. package/dist/cjs/utils/date/getMonthNameProper.js +27 -2
  28. package/dist/cjs/utils/date/getMonthNameProper.js.map +1 -1
  29. package/dist/esm/baseComponents/Modal/Modal.module.css.js +1 -1
  30. package/dist/esm/components/Calendar/Body/CalendarBody.module.css.js +2 -2
  31. package/dist/esm/components/Calendar/Body/index.js +25 -12
  32. package/dist/esm/components/Calendar/Body/index.js.map +1 -1
  33. package/dist/esm/components/Calendar/Calendar.module.css.js +18 -0
  34. package/dist/esm/components/Calendar/Calendar.module.css.js.map +1 -0
  35. package/dist/esm/components/Calendar/Header/CalendarHeader.module.css.js +18 -0
  36. package/dist/esm/components/Calendar/Header/CalendarHeader.module.css.js.map +1 -0
  37. package/dist/esm/components/Calendar/Header/index.js +25 -0
  38. package/dist/esm/components/Calendar/Header/index.js.map +1 -0
  39. package/dist/esm/components/Calendar/index.js +81 -0
  40. package/dist/esm/components/Calendar/index.js.map +1 -0
  41. package/dist/esm/components/index.js +2 -0
  42. package/dist/esm/components/index.js.map +1 -1
  43. package/dist/esm/constants/calendar/index.js +7 -0
  44. package/dist/esm/constants/calendar/index.js.map +1 -0
  45. package/dist/esm/constants/i18n/Calendar.js +40 -0
  46. package/dist/esm/constants/i18n/Calendar.js.map +1 -0
  47. package/dist/esm/constants/i18n/index.js +2 -0
  48. package/dist/esm/constants/i18n/index.js.map +1 -1
  49. package/dist/esm/customHooks/useCalendar.js +49 -16
  50. package/dist/esm/customHooks/useCalendar.js.map +1 -1
  51. package/dist/esm/utils/calendar.js +54 -0
  52. package/dist/esm/utils/calendar.js.map +1 -0
  53. package/dist/esm/utils/date/convertType.js +32 -0
  54. package/dist/esm/utils/date/convertType.js.map +1 -0
  55. package/dist/esm/utils/date/getMonthNameProper.js +27 -2
  56. package/dist/esm/utils/date/getMonthNameProper.js.map +1 -1
  57. package/dist/types/components/Calendar/Body/index.d.ts +8 -1
  58. package/dist/types/components/Calendar/index.d.ts +19 -0
  59. package/dist/types/index.d.ts +3 -1
  60. package/dist/types/interfaces/Calendar.d.ts +13 -0
  61. package/package.json +1 -1
@@ -0,0 +1,40 @@
1
+ const Calendar = {
2
+ SaveButton: {
3
+ ru: "Сохранить",
4
+ kk: "Сақтау",
5
+ en: "Save",
6
+ },
7
+ SelectDateTitle: {
8
+ ru: "Выберите дату",
9
+ kk: "Күнді таңдаңыз",
10
+ en: "Select date",
11
+ },
12
+ SelectPeriodTitle: {
13
+ ru: "Выберите период",
14
+ kk: "Кезеңді таңдаңыз",
15
+ en: "Select period",
16
+ },
17
+ PeriodFrom: {
18
+ ru: "Период с",
19
+ kk: "Кезең басы",
20
+ en: "Period from",
21
+ },
22
+ PeriodTo: {
23
+ ru: "Период до",
24
+ kk: "Кезең соңы",
25
+ en: "Period to",
26
+ },
27
+ TabButtonAria: {
28
+ ru: "Кнопка",
29
+ kk: "Батырма",
30
+ en: "Button",
31
+ },
32
+ WeekDays: {
33
+ ru: ["Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "Вс"],
34
+ kk: ["Дс", "Сс", "Ср", "Бс", "Жм", "Сн", "Жс"],
35
+ en: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
36
+ },
37
+ };
38
+
39
+ export { Calendar };
40
+ //# 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,3 +1,4 @@
1
+ import { Calendar } from './Calendar.js';
1
2
  import { Common } from './Common.js';
2
3
  import { ErrorModal } from './ErrorModal.js';
3
4
  import { Agreement } from './Identity/Agreement.js';
@@ -18,6 +19,7 @@ import { Feedback } from './Services/Feedback.js';
18
19
  import { FileUpload } from './Services/FileUpload.js';
19
20
 
20
21
  const i18n = {
22
+ Calendar,
21
23
  Common,
22
24
  DocCard,
23
25
  Feedback,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/constants/i18n/index.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAmBO,MAAM,IAAI,GAAG;IAClB,MAAM;IACN,OAAO;IACP,QAAQ;IACR,KAAK;IACL,cAAc;IACd,eAAe;IACf,UAAU;IACV,WAAW;IACX,oBAAoB;IACpB,UAAU;IACV,IAAI;IACJ,SAAS;IACT,oBAAoB;IACpB,OAAO;IACP,aAAa;IACb,kBAAkB;IAClB,UAAU;IACV,SAAS;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/constants/i18n/index.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAoBO,MAAM,IAAI,GAAG;IAClB,QAAQ;IACR,MAAM;IACN,OAAO;IACP,QAAQ;IACR,KAAK;IACL,cAAc;IACd,eAAe;IACf,UAAU;IACV,WAAW;IACX,oBAAoB;IACpB,UAAU;IACV,IAAI;IACJ,SAAS;IACT,oBAAoB;IACpB,OAAO;IACP,aAAa;IACb,kBAAkB;IAClB,UAAU;IACV,SAAS;;;;;"}
@@ -1,56 +1,88 @@
1
- import { useState, useRef, useMemo, useEffect } from 'react';
1
+ import { useState, useRef, useEffect } from 'react';
2
+ import { PERIOD_KEYS } from '../constants/calendar/index.js';
3
+ import { clampCalendarVisibleDate, isCalendarMonthAfterDate, getCalendarDateWithoutTime, isSameCalendarDate } from '../utils/calendar.js';
2
4
  import { getDaysInMonth } from '../utils/date/getDaysInMonth.js';
3
5
 
4
6
  const TODAY = new Date();
5
7
  const YEARS_BACK = 100;
6
- const isSameDate = (left, right) => left.getFullYear() === right.getFullYear() &&
7
- left.getMonth() === right.getMonth() &&
8
- left.getDate() === right.getDate();
9
- const buildCalendarDays = (month, year, selectedDate) => {
8
+ const getDateTimestamp = (date) => date ? getCalendarDateWithoutTime(date).getTime() : null;
9
+ const buildCalendarDays = ({ month, year, selectedDate, selectedPeriodInterval, rangeStart, rangeEnd, maxDate, }) => {
10
10
  const firstDayIndex = (new Date(year, month, 1).getDay() + 6) % 7;
11
11
  const daysInMonth = getDaysInMonth(month, year);
12
12
  const trailingDays = (7 - ((firstDayIndex + daysInMonth) % 7)) % 7;
13
13
  const cellCount = firstDayIndex + daysInMonth + trailingDays;
14
14
  const startDate = new Date(year, month, 1 - firstDayIndex);
15
+ const rangeStartTime = getDateTimestamp(rangeStart);
16
+ const rangeEndTime = getDateTimestamp(rangeEnd);
17
+ const maxDateTime = getDateTimestamp(maxDate);
18
+ const isDateInRange = (dateTime) => rangeStartTime !== null &&
19
+ rangeEndTime !== null &&
20
+ dateTime >= rangeStartTime &&
21
+ dateTime <= rangeEndTime;
22
+ const isDateDisabled = (dateTime) => {
23
+ if (maxDateTime !== null && dateTime > maxDateTime) {
24
+ return true;
25
+ }
26
+ if (selectedPeriodInterval === PERIOD_KEYS.from) {
27
+ return rangeEndTime !== null && dateTime > rangeEndTime;
28
+ }
29
+ return rangeStartTime !== null && dateTime < rangeStartTime;
30
+ };
15
31
  return Array.from({ length: cellCount }, (_, index) => {
16
32
  const date = new Date(startDate.getFullYear(), startDate.getMonth(), startDate.getDate() + index);
33
+ const dateTime = getCalendarDateWithoutTime(date).getTime();
17
34
  return {
18
35
  date,
19
36
  day: date.getDate(),
20
37
  isCurrentMonth: date.getMonth() === month,
21
- isToday: isSameDate(date, TODAY),
22
- isSelected: selectedDate ? isSameDate(date, selectedDate) : false,
38
+ isToday: isSameCalendarDate(date, TODAY),
39
+ isSelected: selectedDate ? isSameCalendarDate(date, selectedDate) : false,
40
+ isInRange: isDateInRange(dateTime),
41
+ isDisabled: isDateDisabled(dateTime),
23
42
  };
24
43
  });
25
44
  };
26
- const useCalendar = ({ month, year, selectedDate, onMonthChange, }) => {
27
- const [visibleDate, setVisibleDate] = useState(() => new Date(year, month, 1));
45
+ const useCalendar = ({ month, year, selectedDate, selectedPeriodInterval, rangeStart, rangeEnd, maxDate, onMonthChange, }) => {
46
+ const [visibleDate, setVisibleDate] = useState(() => clampCalendarVisibleDate(new Date(year, month, 1), maxDate));
28
47
  const [isYearPickerOpen, setIsYearPickerOpen] = useState(false);
29
48
  const yearListRef = useRef(null);
30
49
  const visibleMonth = visibleDate.getMonth();
31
50
  const visibleYear = visibleDate.getFullYear();
32
- const days = useMemo(() => buildCalendarDays(visibleMonth, visibleYear, selectedDate), [visibleMonth, visibleYear, selectedDate]);
33
- const maxYear = TODAY.getFullYear();
51
+ const days = buildCalendarDays({
52
+ month: visibleMonth,
53
+ year: visibleYear,
54
+ selectedDate,
55
+ selectedPeriodInterval,
56
+ rangeStart,
57
+ rangeEnd,
58
+ maxDate,
59
+ });
60
+ const maxYear = maxDate?.getFullYear() ?? TODAY.getFullYear();
34
61
  const minYear = maxYear - YEARS_BACK;
35
62
  const years = Array.from({ length: maxYear - minYear + 1 }, (_, index) => maxYear - index);
63
+ const isNextMonthDisabled = Boolean(maxDate && isCalendarMonthAfterDate(visibleMonth + 1, visibleYear, maxDate));
36
64
  const changeMonth = (offset) => {
37
65
  setVisibleDate((current) => {
38
66
  const next = new Date(current.getFullYear(), current.getMonth() + offset, 1);
39
- onMonthChange?.(next);
40
- return next;
67
+ const clampedNext = clampCalendarVisibleDate(next, maxDate);
68
+ if (clampedNext.getTime() === current.getTime()) {
69
+ return current;
70
+ }
71
+ onMonthChange?.(clampedNext);
72
+ return clampedNext;
41
73
  });
42
74
  };
43
75
  const pickYear = (pickedYear) => {
44
76
  setVisibleDate((current) => {
45
- const next = new Date(pickedYear, current.getMonth(), 1);
77
+ const next = clampCalendarVisibleDate(new Date(pickedYear, current.getMonth(), 1), maxDate);
46
78
  onMonthChange?.(next);
47
79
  return next;
48
80
  });
49
81
  setIsYearPickerOpen(false);
50
82
  };
51
83
  useEffect(() => {
52
- setVisibleDate(new Date(year, month, 1));
53
- }, [month, year]);
84
+ setVisibleDate(clampCalendarVisibleDate(new Date(year, month, 1), maxDate));
85
+ }, [month, maxDate, year]);
54
86
  useEffect(() => {
55
87
  if (!isYearPickerOpen || !yearListRef.current) {
56
88
  return;
@@ -64,6 +96,7 @@ const useCalendar = ({ month, year, selectedDate, onMonthChange, }) => {
64
96
  visibleMonth,
65
97
  visibleYear,
66
98
  isYearPickerOpen,
99
+ isNextMonthDisabled,
67
100
  setIsYearPickerOpen,
68
101
  yearListRef,
69
102
  changeMonth,
@@ -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":"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"}
@@ -0,0 +1,54 @@
1
+ import { convertType } from './date/convertType.js';
2
+
3
+ const formatCalendarDate = (date) => {
4
+ if (!date) {
5
+ return "";
6
+ }
7
+ return `${convertType.day.toString(date.getDate())}.${convertType.month.toString(date.getMonth())}.${date.getFullYear()}`;
8
+ };
9
+ const normalizeCalendarDate = (value) => {
10
+ if (!value) {
11
+ return null;
12
+ }
13
+ const normalizedDate = value instanceof Date ? value : new Date(value);
14
+ return Number.isNaN(normalizedDate.getTime()) ? null : normalizedDate;
15
+ };
16
+ const getCalendarDateWithoutTime = (date) => new Date(date.getFullYear(), date.getMonth(), date.getDate());
17
+ const isSameCalendarDate = (left, right) => left.getFullYear() === right.getFullYear() &&
18
+ left.getMonth() === right.getMonth() &&
19
+ left.getDate() === right.getDate();
20
+ const isCalendarDateAfter = (date, maxDate) => {
21
+ if (!date || !maxDate) {
22
+ return false;
23
+ }
24
+ return (getCalendarDateWithoutTime(date).getTime() >
25
+ getCalendarDateWithoutTime(maxDate).getTime());
26
+ };
27
+ const getPeriodDateKey = (periodKey) => `${periodKey}Date`;
28
+ const updateSelectedPeriod = (currentPeriod, selectedPeriodInterval, nextDate) => {
29
+ const periodDateKey = getPeriodDateKey(selectedPeriodInterval);
30
+ const currentDate = currentPeriod[periodDateKey];
31
+ const isSameDate = currentDate
32
+ ? isSameCalendarDate(currentDate, nextDate)
33
+ : false;
34
+ const nextPeriod = {
35
+ ...currentPeriod,
36
+ [periodDateKey]: isSameDate ? null : nextDate,
37
+ };
38
+ return {
39
+ ...nextPeriod,
40
+ periodSelected: Boolean(nextPeriod.fromDate && nextPeriod.toDate),
41
+ };
42
+ };
43
+ const isCalendarMonthAfterDate = (month, year, date) => year > date.getFullYear() ||
44
+ (year === date.getFullYear() && month > date.getMonth());
45
+ const clampCalendarVisibleDate = (date, maxDate) => {
46
+ if (!maxDate ||
47
+ !isCalendarMonthAfterDate(date.getMonth(), date.getFullYear(), maxDate)) {
48
+ return date;
49
+ }
50
+ return new Date(maxDate.getFullYear(), maxDate.getMonth(), 1);
51
+ };
52
+
53
+ export { clampCalendarVisibleDate, formatCalendarDate, getCalendarDateWithoutTime, getPeriodDateKey, isCalendarDateAfter, isCalendarMonthAfterDate, isSameCalendarDate, normalizeCalendarDate, updateSelectedPeriod };
54
+ //# sourceMappingURL=calendar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar.js","sources":["../../../src/utils/calendar.tsx"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -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,32 @@
1
1
  import { currentYear } from './index.js';
2
2
 
3
- const getMonthNameProper = (month) => {
4
- const monthName = new Date(currentYear, month).toLocaleString("ru-RU", {
3
+ const localeByLang = {
4
+ ru: "ru-RU",
5
+ kk: "kk-KZ",
6
+ en: "en-US",
7
+ };
8
+ const monthNamesByLang = {
9
+ kk: [
10
+ "Қаңтар",
11
+ "Ақпан",
12
+ "Наурыз",
13
+ "Сәуір",
14
+ "Мамыр",
15
+ "Маусым",
16
+ "Шілде",
17
+ "Тамыз",
18
+ "Қыркүйек",
19
+ "Қазан",
20
+ "Қараша",
21
+ "Желтоқсан",
22
+ ],
23
+ };
24
+ const getMonthNameProper = (month, lang) => {
25
+ const translatedMonthName = monthNamesByLang[lang]?.[month];
26
+ if (translatedMonthName) {
27
+ return translatedMonthName;
28
+ }
29
+ const monthName = new Date(currentYear, month).toLocaleString(localeByLang[lang], {
5
30
  month: "long",
6
31
  });
7
32
  return monthName.charAt(0).toUpperCase() + monthName.slice(1);
@@ -1 +1 @@
1
- {"version":3,"file":"getMonthNameProper.js","sources":["../../../../src/utils/date/getMonthNameProper.tsx"],"sourcesContent":[null],"names":[],"mappings":";;AAEO,MAAM,kBAAkB,GAAG,CAAC,KAAa,KAAY;AAC1D,IAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE;AACrE,QAAA,KAAK,EAAE,MAAM;AACd,KAAA,CAAC;AACF,IAAA,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/D;;;;"}
1
+ {"version":3,"file":"getMonthNameProper.js","sources":["../../../../src/utils/date/getMonthNameProper.tsx"],"sourcesContent":[null],"names":[],"mappings":";;AAGA,MAAM,YAAY,GAAuC;AACvD,IAAA,EAAE,EAAE,OAAO;AACX,IAAA,EAAE,EAAE,OAAO;AACX,IAAA,EAAE,EAAE,OAAO;CACZ;AAED,MAAM,gBAAgB,GAAkD;AACtE,IAAA,EAAE,EAAE;QACF,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,OAAO;QACP,OAAO;QACP,QAAQ;QACR,OAAO;QACP,OAAO;QACP,UAAU;QACV,OAAO;QACP,QAAQ;QACR,WAAW;AACZ,KAAA;CACF;MAEY,kBAAkB,GAAG,CAChC,KAAa,EACb,IAAwB,KACd;IACV,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AAE3D,IAAA,IAAI,mBAAmB,EAAE;AACvB,QAAA,OAAO,mBAAmB;AAC3B,IAAA;AAED,IAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,cAAc,CAC3D,YAAY,CAAC,IAAI,CAAC,EAClB;AACE,QAAA,KAAK,EAAE,MAAM;AACd,KAAA,CACF;AACD,IAAA,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/D;;;;"}
@@ -1,7 +1,14 @@
1
- interface ICalendarBodyProps {
1
+ import { TPeriodKeys } from '../../../interfaces/Calendar.js';
2
+ import { ILangProps } from '../../../interfaces/common/index.js';
3
+
4
+ interface ICalendarBodyProps extends ILangProps {
2
5
  month?: number;
3
6
  year?: number;
4
7
  selectedDate?: Date | null;
8
+ rangeStart?: Date | null;
9
+ rangeEnd?: Date | null;
10
+ maxDate?: Date | null;
11
+ selectedPeriodInterval?: TPeriodKeys;
5
12
  onDayClick?: (date: Date) => void;
6
13
  onMonthChange?: (date: Date) => void;
7
14
  }
@@ -0,0 +1,19 @@
1
+ import { Dispatch, SetStateAction } from 'react';
2
+ import { TCalendarMode, ISelectedPeriod, TPeriodKeys } from '../../interfaces/Calendar.js';
3
+ import { ILangProps } from '../../interfaces/common/index.js';
4
+
5
+ interface ICalendarProps extends ILangProps {
6
+ mode?: TCalendarMode;
7
+ isOpen?: boolean;
8
+ setIsOpen?: Dispatch<SetStateAction<boolean>>;
9
+ title?: string;
10
+ maxDate?: Date | null;
11
+ selectedDate?: Date | null;
12
+ selectedPeriod?: ISelectedPeriod;
13
+ defaultPeriodInterval?: TPeriodKeys;
14
+ onDateChange?: (date: Date | null) => void;
15
+ onPeriodChange?: (period: ISelectedPeriod) => void;
16
+ onSave?: (value: Date | null | ISelectedPeriod) => void;
17
+ }
18
+
19
+ export type { ICalendarProps };
@@ -1,4 +1,5 @@
1
1
  import { ICalendarBodyProps } from './components/Calendar/Body/index.js';
2
+ import { ICalendarProps } from './components/Calendar/index.js';
2
3
  import { INotificationWrapperProps } from './components/Notification/Wrapper/index.js';
3
4
  import { INotificationComponentProps } from './components/Notification/Item/index.js';
4
5
  import { IServiceCardComponentProps } from './components/ServiceCardComponent/index.js';
@@ -100,7 +101,8 @@ declare const SystemDesign: {
100
101
  ServiceCardComponent: ({ handleOrderService, badge, isNew, title, }: IServiceCardComponentProps) => react_jsx_runtime.JSX.Element;
101
102
  NotificationItem: ({ type, text, onClick, }: INotificationComponentProps) => react_jsx_runtime.JSX.Element;
102
103
  NotificationWrapper: ({ items, removeNotificationData, }: INotificationWrapperProps) => react_jsx_runtime.JSX.Element | null;
103
- CalendarBody: ({ month, year, selectedDate, onDayClick, onMonthChange, }: ICalendarBodyProps) => react_jsx_runtime.JSX.Element;
104
+ Calendar: ({ mode, isOpen, setIsOpen, lang, title, maxDate, selectedDate, selectedPeriod, defaultPeriodInterval, onDateChange, onPeriodChange, onSave, }: ICalendarProps) => react_jsx_runtime.JSX.Element;
105
+ CalendarBody: ({ lang, month, year, selectedDate, rangeStart, rangeEnd, maxDate, selectedPeriodInterval, onDayClick, onMonthChange, }: ICalendarBodyProps) => react_jsx_runtime.JSX.Element;
104
106
  };
105
107
  };
106
108
 
@@ -0,0 +1,13 @@
1
+ interface ISelectedPeriod {
2
+ fromDate?: Date | null;
3
+ toDate?: Date | null;
4
+ periodSelected: boolean;
5
+ }
6
+ type TCalendarMode = "default" | "period";
7
+ interface IPeriodKeys {
8
+ from: "from";
9
+ to: "to";
10
+ }
11
+ type TPeriodKeys = keyof IPeriodKeys;
12
+
13
+ export type { IPeriodKeys, ISelectedPeriod, TCalendarMode, 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.126",
4
4
  "type": "module",
5
5
  "main": "dist/cjs/index.js",
6
6
  "types": "dist/types/index.d.ts",