@wishket/design-system 2.1.5 → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Components/Inputs/Calendar/Calendar.d.ts +10 -1
- package/dist/Components/Inputs/Calendar/Calendar.js +18 -9
- package/dist/Components/Inputs/Calendar/Calendar.parts.js +1 -1
- package/dist/Components/Inputs/Calendar/Calendar.types.d.ts +3 -0
- package/dist/Components/Inputs/Calendar/Calendar.utils.d.ts +1 -0
- package/dist/Components/Inputs/Calendar/Calendar.utils.js +1 -1
- package/dist/cjs/Components/Inputs/Calendar/Calendar.js +7 -7
- package/dist/cjs/Components/Inputs/Calendar/Calendar.parts.js +6 -6
- package/dist/cjs/Components/Inputs/Calendar/Calendar.utils.js +1 -1
- package/package.json +1 -1
|
@@ -14,6 +14,9 @@ import { CalendarProps } from './Calendar.types';
|
|
|
14
14
|
* @param {boolean} [props.isError] - 에러 상태 표시 여부
|
|
15
15
|
* @param {string} [props.className] - 컨테이너에 머지될 클래스 (예: 부모 너비에 맞추기 위한 `w-full`)
|
|
16
16
|
* @param {string} [props.triggerClassName] - 트리거(TextFieldContainer)에 머지될 클래스
|
|
17
|
+
* @param {string} [props.dropdownClassName] - dropdown popup 영역에 머지될 클래스 (예: 모바일 풀너비 `w-full`)
|
|
18
|
+
* @param {string} [props.minDate] - 선택 가능한 최소 날짜 (YYYY-MM-DD). 이전 날짜 셀은 disabled 처리
|
|
19
|
+
* @param {string} [props.maxDate] - 선택 가능한 최대 날짜 (YYYY-MM-DD). 이후 날짜 셀은 disabled 처리
|
|
17
20
|
*
|
|
18
21
|
* @example
|
|
19
22
|
* ```tsx
|
|
@@ -42,7 +45,13 @@ import { CalendarProps } from './Calendar.types';
|
|
|
42
45
|
* triggerClassName="w-full"
|
|
43
46
|
* selected="2024-03-21"
|
|
44
47
|
* />
|
|
48
|
+
*
|
|
49
|
+
* // 과거 날짜 선택 disable (오늘 이후만 선택 가능)
|
|
50
|
+
* <Calendar
|
|
51
|
+
* minDate="2026-05-04"
|
|
52
|
+
* placeholder="시작일"
|
|
53
|
+
* />
|
|
45
54
|
* ```
|
|
46
55
|
*/
|
|
47
|
-
declare const Calendar: ({ defaultDate, selected, onChange, disabled, placeholder, isError, className, triggerClassName, }: CalendarProps) => import("react/jsx-runtime").JSX.Element;
|
|
56
|
+
declare const Calendar: ({ defaultDate, selected, onChange, disabled, placeholder, isError, className, triggerClassName, dropdownClassName, minDate, maxDate, }: CalendarProps) => import("react/jsx-runtime").JSX.Element;
|
|
48
57
|
export { Calendar };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use client";import{jsxs as e,jsx as a}from"react/jsx-runtime";import{useState as t,useEffect as r}from"react";import{twMerge as s}from"tailwind-merge";import"../../DataDisplays/Avatar/Avatar.js";import{Typography as
|
|
1
|
+
"use client";import{jsxs as e,jsx as a}from"react/jsx-runtime";import{useState as t,useEffect as r}from"react";import{twMerge as s}from"tailwind-merge";import"../../DataDisplays/Avatar/Avatar.js";import{Typography as n}from"../../Base/Typography/Typography.js";import{Box as o}from"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";import{SystemIcon as i}from"../../DataDisplays/SystemIcon/SystemIcon.js";import"../../DataDisplays/SystemIcon/SystemIcon.constants.js";import"../../DataDisplays/Accordion/Accordion.js";import{TextFieldContainer as l}from"../TextFieldContainer/TextFieldContainer.js";import{SelectHeader as d,WeekHeader as m,DateBox as c}from"./Calendar.parts.js";import{generateDate as p,today as y,getKoreanTimeString as g,getMonthDate as x,isSameDate as h,isDateOutOfRange as u}from"./Calendar.utils.js";
|
|
2
2
|
/**
|
|
3
3
|
* 날짜를 선택할 수 있는 캘린더 컴포넌트입니다.
|
|
4
4
|
*
|
|
@@ -14,6 +14,9 @@
|
|
|
14
14
|
* @param {boolean} [props.isError] - 에러 상태 표시 여부
|
|
15
15
|
* @param {string} [props.className] - 컨테이너에 머지될 클래스 (예: 부모 너비에 맞추기 위한 `w-full`)
|
|
16
16
|
* @param {string} [props.triggerClassName] - 트리거(TextFieldContainer)에 머지될 클래스
|
|
17
|
+
* @param {string} [props.dropdownClassName] - dropdown popup 영역에 머지될 클래스 (예: 모바일 풀너비 `w-full`)
|
|
18
|
+
* @param {string} [props.minDate] - 선택 가능한 최소 날짜 (YYYY-MM-DD). 이전 날짜 셀은 disabled 처리
|
|
19
|
+
* @param {string} [props.maxDate] - 선택 가능한 최대 날짜 (YYYY-MM-DD). 이후 날짜 셀은 disabled 처리
|
|
17
20
|
*
|
|
18
21
|
* @example
|
|
19
22
|
* ```tsx
|
|
@@ -42,13 +45,19 @@
|
|
|
42
45
|
* triggerClassName="w-full"
|
|
43
46
|
* selected="2024-03-21"
|
|
44
47
|
* />
|
|
48
|
+
*
|
|
49
|
+
* // 과거 날짜 선택 disable (오늘 이후만 선택 가능)
|
|
50
|
+
* <Calendar
|
|
51
|
+
* minDate="2026-05-04"
|
|
52
|
+
* placeholder="시작일"
|
|
53
|
+
* />
|
|
45
54
|
* ```
|
|
46
|
-
*/const
|
|
55
|
+
*/const f=({defaultDate:f,selected:w,onChange:D,disabled:b,placeholder:j,isError:C,className:N,triggerClassName:$,dropdownClassName:B,minDate:v,maxDate:A})=>{const[F,I]=t(!1),S=()=>{b||I((e=>!e))},T=f?p(f):y,[L,k]=t(w?p(w):T),z=w?p(w):T,{year:E,month:_,date:q}=g(z),{dateList:G}=x(L.year,L.month),H=[...Array.from({length:G[0].day},(()=>null)),...G],J=e=>{if(w&&h(e,z))return;if(u(e,v,A))return;const a=`${e.year}-${e.month}-${e.date}`;null==D||D(a),I(!1)};return r((()=>{!F&&w&&k(p(w));
|
|
47
56
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
48
|
-
}),[
|
|
49
|
-
/*#__PURE__*/a(
|
|
50
|
-
/*#__PURE__*/a(i,{name:"medium_calendar",className:
|
|
51
|
-
/*#__PURE__*/a(
|
|
52
|
-
/*#__PURE__*/a(d,{visibleDate:
|
|
53
|
-
/*#__PURE__*/a(
|
|
54
|
-
/*#__PURE__*/a(
|
|
57
|
+
}),[F]),/*#__PURE__*/e(o,{className:s("relative h-fit w-fit select-none",N),"data-testid":"design-system-calendar--container",children:[
|
|
58
|
+
/*#__PURE__*/a(o,{className:"cursor-pointer",children:/*#__PURE__*/e(l,{isFocused:F,isError:C,isDisabled:b,testId:"design-system-calendar--trigger",onClick:S,className:$,children:[
|
|
59
|
+
/*#__PURE__*/a(i,{name:"medium_calendar",className:b||!w?"text-w-gray-300":"text-w-gray-400"}),
|
|
60
|
+
/*#__PURE__*/a(n,{variant:"body16",className:s("text-w-gray-600 min-w-[178px]",!w&&"text-w-gray-300",b&&"text-w-gray-300"),"data-testid":"design-system-calendar--selected-date",children:w?`${E} ${_} ${q}`:j})]})}),F&&/*#__PURE__*/a("div",{className:"fixed top-0 left-0 z-10 h-screen w-screen bg-transparent",onClick:S}),F&&/*#__PURE__*/e(o,{"data-testid":"design-system-calendar--content",className:s("border-w-gray-200 bg-w-white shadow-graymedium absolute top-[54px] z-30 flex w-[350px] flex-col gap-4 rounded-xl border px-[15px] py-[23px]",B),children:[
|
|
61
|
+
/*#__PURE__*/a(d,{visibleDate:L,onChange:e=>{k(e)}}),
|
|
62
|
+
/*#__PURE__*/a(m,{}),
|
|
63
|
+
/*#__PURE__*/a(o,{className:"grid w-full grid-cols-7 place-content-center place-items-center gap-1",children:H.map(((e,t)=>{const r=!(!e||!w)&&h(e,z);return e?/*#__PURE__*/a(c,{date:e,selected:r,disabled:u(e,v,A),onChange:J},`${e.year}-${e.month}-${e.date}`):/*#__PURE__*/a(c,{disabled:!0},t)}))})]})]})};export{f as Calendar};
|
|
@@ -4,4 +4,4 @@ return e(l,{className:"flex h-[50px] w-full gap-4",children:[
|
|
|
4
4
|
/*#__PURE__*/t(l,{"data-testid":"design-system-calendar--to-prev-month",className:"size-6 cursor-pointer text-gray-600",onClick:()=>{i?null==o||o({year:a.year-1,month:12,date:1}):null==o||o({year:a.year,month:a.month-1,date:1})},children:/*#__PURE__*/t(n,{name:"large_arrow_left",className:"text-gray-600"})}),
|
|
5
5
|
/*#__PURE__*/e(r,{variant:"subTitle18",className:"h-fit w-full text-center leading-normal text-gray-900",children:[c," ",d]}),
|
|
6
6
|
/*#__PURE__*/t(l,{"data-testid":"design-system-calendar--to-next-month",className:"size-6 cursor-pointer text-gray-600",onClick:()=>{m?null==o||o({year:a.year+1,month:1,date:1}):null==o||o({year:a.year,month:a.month+1,date:1})},children:/*#__PURE__*/t(n,{name:"large_arrow_right",className:"text-gray-600"})})]})},c=({selected:e,date:n,disabled:s=!1,onChange:o})=>{const i=1===String(null==n?void 0:n.date).length?`0${null==n?void 0:n.date}`:null==n?void 0:n.date;/*#__PURE__*/
|
|
7
|
-
return t(l,{className:a("bg-w-white flex
|
|
7
|
+
return t(l,{className:a("bg-w-white flex aspect-square w-full max-w-[42px] cursor-pointer items-center justify-center rounded-full p-2 text-center",!s&&!e&&"hover:bg-primary-10",e&&"bg-primary",s&&"cursor-default"),onClick:()=>{s||null==o||o(n)},children:/*#__PURE__*/t(r,{variant:"body16",className:a("text-w-gray-900",e&&"text-w-white",s&&"text-w-gray-300"),children:i})})};export{c as DateBox,m as SelectHeader,i as WeekHeader};
|
|
@@ -2,6 +2,7 @@ import { DateType } from './Calendar.types';
|
|
|
2
2
|
export declare const today: DateType;
|
|
3
3
|
export declare const generateDate: (data: string) => DateType;
|
|
4
4
|
export declare const isSameDate: (referencePoint: string | DateType, target: DateType) => boolean | undefined;
|
|
5
|
+
export declare const isDateOutOfRange: (date: DateType, minDate?: string, maxDate?: string) => boolean;
|
|
5
6
|
export declare const getMonthDate: (year: number, month: number) => {
|
|
6
7
|
lastDate: number;
|
|
7
8
|
firstDay: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{dayMap as e}from"./Calendar.constants.js";const t={year:(new Date).getFullYear(),month:(new Date).getMonth()+1,date:(new Date).getDate(),day:(new Date).getDay()},a=e=>{const[t,a,r]=null==e?void 0:e.split("-"),n=new Date(Number(t),Number(a)-1,Number(r)).getDay();return{year:Number(t),month:Number(a),date:Number(r),day:n}},r=(e,t)=>{if("string"==typeof e){const[a,r,n]=e.split("-");return new Date(Number(a),Number(r)-1,Number(n)).getTime()==new Date(t.year,Number(t.month)-1,Number(t.date)).getTime()}if("object"==typeof e)return new Date(e.year,Number(e.month)-1,Number(e.date)).getTime()==new Date(t.year,Number(t.month)-1,Number(t.date)).getTime()},n=(e,t)=>{const a=new Date(e,t,0).getDate();return{lastDate:a,firstDay:new Date(e,t-1,1).getDay(),lastDay:new Date(e,t-1,a).getDay(),dateList:new Array(a).fill(null).map(((a,r)=>({year:e,month:t,date:r+1,day:new Date(e,t-1,r+1).getDay()})))}},
|
|
1
|
+
import{dayMap as e}from"./Calendar.constants.js";const t={year:(new Date).getFullYear(),month:(new Date).getMonth()+1,date:(new Date).getDate(),day:(new Date).getDay()},a=e=>{const[t,a,r]=null==e?void 0:e.split("-"),n=new Date(Number(t),Number(a)-1,Number(r)).getDay();return{year:Number(t),month:Number(a),date:Number(r),day:n}},r=(e,t)=>{if("string"==typeof e){const[a,r,n]=e.split("-");return new Date(Number(a),Number(r)-1,Number(n)).getTime()==new Date(t.year,Number(t.month)-1,Number(t.date)).getTime()}if("object"==typeof e)return new Date(e.year,Number(e.month)-1,Number(e.date)).getTime()==new Date(t.year,Number(t.month)-1,Number(t.date)).getTime()},n=(e,t,a)=>{if(!t&&!a)return!1;if(void 0===e.date)return!1;const r=new Date(e.year,e.month-1,e.date).getTime();if(t){const[e,a,n]=t.split("-").map(Number);if(r<new Date(e,a-1,n).getTime())return!0}if(a){const[e,t,n]=a.split("-").map(Number);if(r>new Date(e,t-1,n).getTime())return!0}return!1},m=(e,t)=>{const a=new Date(e,t,0).getDate();return{lastDate:a,firstDay:new Date(e,t-1,1).getDay(),lastDay:new Date(e,t-1,a).getDay(),dateList:new Array(a).fill(null).map(((a,r)=>({year:e,month:t,date:r+1,day:new Date(e,t-1,r+1).getDay()})))}},i=t=>{const{year:a,month:r,date:n}=t,m=r.toString().padStart(2,"0"),i=null==n?void 0:n.toString().padStart(2,"0"),u=new Date(`${a}-${m}-${i}`),o=new Intl.DateTimeFormat("ko-KR",{timeZone:"Asia/Seoul",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",hour12:!0}).format(u),[D,d,g,y,s]=o.replace(/\./g,"").split(" "),b=new Date(Number(D),Number(d)-1,Number(g)).getDay();return{year:`${D}년`,month:`${d}월`,date:`${g}일`,time:`${y} ${s}`,day:e.get(b)}};export{a as generateDate,i as getKoreanTimeString,m as getMonthDate,n as isDateOutOfRange,r as isSameDate,t as today};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
"use client";"use strict";var e=require("react/jsx-runtime"),a=require("react"),t=require("tailwind-merge");require("../../DataDisplays/Avatar/Avatar.js");var r=require("../../Base/Typography/Typography.js"),s=require("../../Base/Layouts/Box/Box.js");require("../../Base/Layouts/FullBleed/FullBleed.js");var n=require("../../DataDisplays/SystemIcon/SystemIcon.js");require("../../DataDisplays/SystemIcon/SystemIcon.constants.js"),require("../../DataDisplays/Accordion/Accordion.js");var i=require("../TextFieldContainer/TextFieldContainer.js"),l=require("./Calendar.parts.js"),d=require("./Calendar.utils.js");exports.Calendar=({defaultDate:o,selected:c,onChange:
|
|
1
|
+
"use client";"use strict";var e=require("react/jsx-runtime"),a=require("react"),t=require("tailwind-merge");require("../../DataDisplays/Avatar/Avatar.js");var r=require("../../Base/Typography/Typography.js"),s=require("../../Base/Layouts/Box/Box.js");require("../../Base/Layouts/FullBleed/FullBleed.js");var n=require("../../DataDisplays/SystemIcon/SystemIcon.js");require("../../DataDisplays/SystemIcon/SystemIcon.constants.js"),require("../../DataDisplays/Accordion/Accordion.js");var i=require("../TextFieldContainer/TextFieldContainer.js"),l=require("./Calendar.parts.js"),d=require("./Calendar.utils.js");exports.Calendar=({defaultDate:o,selected:c,onChange:g,disabled:x,placeholder:m,isError:u,className:y,triggerClassName:p,dropdownClassName:D,minDate:h,maxDate:j})=>{const[w,f]=a.useState(!1),q=()=>{x||f((e=>!e))},B=o?d.generateDate(o):d.today,[C,b]=a.useState(c?d.generateDate(c):B),N=c?d.generateDate(c):B,{year:S,month:v,date:$}=d.getKoreanTimeString(N),{dateList:T}=d.getMonthDate(C.year,C.month),F=[...Array.from({length:T[0].day},(()=>null)),...T],I=e=>{if(c&&d.isSameDate(e,N))return;if(d.isDateOutOfRange(e,h,j))return;const a=`${e.year}-${e.month}-${e.date}`;null==g||g(a),f(!1)};return a.useEffect((()=>{!w&&c&&b(d.generateDate(c));
|
|
2
2
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
3
|
-
}),[
|
|
4
|
-
/*#__PURE__*/e.jsx(s.Box,{className:"cursor-pointer",children:/*#__PURE__*/e.jsxs(i.TextFieldContainer,{isFocused:
|
|
5
|
-
/*#__PURE__*/e.jsx(n.SystemIcon,{name:"medium_calendar",className:
|
|
6
|
-
/*#__PURE__*/e.jsx(r.Typography,{variant:"body16",className:t.twMerge("text-w-gray-600 min-w-[178px]",!c&&"text-w-gray-300",
|
|
7
|
-
/*#__PURE__*/e.jsx(l.SelectHeader,{visibleDate:
|
|
3
|
+
}),[w]),/*#__PURE__*/e.jsxs(s.Box,{className:t.twMerge("relative h-fit w-fit select-none",y),"data-testid":"design-system-calendar--container",children:[
|
|
4
|
+
/*#__PURE__*/e.jsx(s.Box,{className:"cursor-pointer",children:/*#__PURE__*/e.jsxs(i.TextFieldContainer,{isFocused:w,isError:u,isDisabled:x,testId:"design-system-calendar--trigger",onClick:q,className:p,children:[
|
|
5
|
+
/*#__PURE__*/e.jsx(n.SystemIcon,{name:"medium_calendar",className:x||!c?"text-w-gray-300":"text-w-gray-400"}),
|
|
6
|
+
/*#__PURE__*/e.jsx(r.Typography,{variant:"body16",className:t.twMerge("text-w-gray-600 min-w-[178px]",!c&&"text-w-gray-300",x&&"text-w-gray-300"),"data-testid":"design-system-calendar--selected-date",children:c?`${S} ${v} ${$}`:m})]})}),w&&/*#__PURE__*/e.jsx("div",{className:"fixed top-0 left-0 z-10 h-screen w-screen bg-transparent",onClick:q}),w&&/*#__PURE__*/e.jsxs(s.Box,{"data-testid":"design-system-calendar--content",className:t.twMerge("border-w-gray-200 bg-w-white shadow-graymedium absolute top-[54px] z-30 flex w-[350px] flex-col gap-4 rounded-xl border px-[15px] py-[23px]",D),children:[
|
|
7
|
+
/*#__PURE__*/e.jsx(l.SelectHeader,{visibleDate:C,onChange:e=>{b(e)}}),
|
|
8
8
|
/*#__PURE__*/e.jsx(l.WeekHeader,{}),
|
|
9
|
-
/*#__PURE__*/e.jsx(s.Box,{className:"grid w-full grid-cols-7 place-content-center place-items-center gap-1",children:
|
|
9
|
+
/*#__PURE__*/e.jsx(s.Box,{className:"grid w-full grid-cols-7 place-content-center place-items-center gap-1",children:F.map(((a,t)=>{const r=!(!a||!c)&&d.isSameDate(a,N);return a?/*#__PURE__*/e.jsx(l.DateBox,{date:a,selected:r,disabled:d.isDateOutOfRange(a,h,j),onChange:I},`${a.year}-${a.month}-${a.date}`):/*#__PURE__*/e.jsx(l.DateBox,{disabled:!0},t)}))})]})]})};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
"use strict";var e=require("react/jsx-runtime"),
|
|
2
|
-
return e.jsx(t.Box,{className:
|
|
1
|
+
"use strict";var e=require("react/jsx-runtime"),a=require("tailwind-merge");require("../../DataDisplays/Avatar/Avatar.js");var r=require("../../Base/Typography/Typography.js"),t=require("../../Base/Layouts/Box/Box.js");require("../../Base/Layouts/FullBleed/FullBleed.js"),require("react");var s=require("../../DataDisplays/SystemIcon/SystemIcon.js");require("../../DataDisplays/SystemIcon/SystemIcon.constants.js"),require("../../DataDisplays/Accordion/Accordion.js");var l=require("./Calendar.utils.js"),n=require("./Calendar.constants.js");exports.DateBox=({selected:s,date:l,disabled:n=!1,onChange:o})=>{const i=1===String(null==l?void 0:l.date).length?`0${null==l?void 0:l.date}`:null==l?void 0:l.date;/*#__PURE__*/
|
|
2
|
+
return e.jsx(t.Box,{className:a.twMerge("bg-w-white flex aspect-square w-full max-w-[42px] cursor-pointer items-center justify-center rounded-full p-2 text-center",!n&&!s&&"hover:bg-primary-10",s&&"bg-primary",n&&"cursor-default"),onClick:()=>{n||null==o||o(l)},children:/*#__PURE__*/e.jsx(r.Typography,{variant:"body16",className:a.twMerge("text-w-gray-900",s&&"text-w-white",n&&"text-w-gray-300"),children:i})})},exports.SelectHeader=({visibleDate:a,onChange:n})=>{const o=1===(null==a?void 0:a.month),i=12===(null==a?void 0:a.month),{year:c,month:d}=a&&l.getKoreanTimeString(a);/*#__PURE__*/
|
|
3
3
|
return e.jsxs(t.Box,{className:"flex h-[50px] w-full gap-4",children:[
|
|
4
|
-
/*#__PURE__*/e.jsx(t.Box,{"data-testid":"design-system-calendar--to-prev-month",className:"size-6 cursor-pointer text-gray-600",onClick:()=>{
|
|
5
|
-
/*#__PURE__*/e.jsxs(
|
|
6
|
-
/*#__PURE__*/e.jsx(t.Box,{"data-testid":"design-system-calendar--to-next-month",className:"size-6 cursor-pointer text-gray-600",onClick:()=>{
|
|
7
|
-
return e.jsx(t.Box,{className:"grid w-full grid-cols-7 place-items-center gap-1",children:
|
|
4
|
+
/*#__PURE__*/e.jsx(t.Box,{"data-testid":"design-system-calendar--to-prev-month",className:"size-6 cursor-pointer text-gray-600",onClick:()=>{o?null==n||n({year:a.year-1,month:12,date:1}):null==n||n({year:a.year,month:a.month-1,date:1})},children:/*#__PURE__*/e.jsx(s.SystemIcon,{name:"large_arrow_left",className:"text-gray-600"})}),
|
|
5
|
+
/*#__PURE__*/e.jsxs(r.Typography,{variant:"subTitle18",className:"h-fit w-full text-center leading-normal text-gray-900",children:[c," ",d]}),
|
|
6
|
+
/*#__PURE__*/e.jsx(t.Box,{"data-testid":"design-system-calendar--to-next-month",className:"size-6 cursor-pointer text-gray-600",onClick:()=>{i?null==n||n({year:a.year+1,month:1,date:1}):null==n||n({year:a.year,month:a.month+1,date:1})},children:/*#__PURE__*/e.jsx(s.SystemIcon,{name:"large_arrow_right",className:"text-gray-600"})})]})},exports.WeekHeader=()=>{const a=Array.from(n.dayMap.values());/*#__PURE__*/
|
|
7
|
+
return e.jsx(t.Box,{className:"grid w-full grid-cols-7 place-items-center gap-1",children:a.map((a=>/*#__PURE__*/e.jsx(t.Box,{className:"flex h-5 items-center justify-center",children:/*#__PURE__*/e.jsx(r.Typography,{variant:"body13",className:"text-w-gray-500 leading-normal",children:a})},a)))})};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("./Calendar.constants.js");const t={year:(new Date).getFullYear(),month:(new Date).getMonth()+1,date:(new Date).getDate(),day:(new Date).getDay()};exports.generateDate=e=>{const[t,a,r]=null==e?void 0:e.split("-"),n=new Date(Number(t),Number(a)-1,Number(r)).getDay();return{year:Number(t),month:Number(a),date:Number(r),day:n}},exports.getKoreanTimeString=t=>{const{year:a,month:r,date:n}=t,
|
|
1
|
+
"use strict";var e=require("./Calendar.constants.js");const t={year:(new Date).getFullYear(),month:(new Date).getMonth()+1,date:(new Date).getDate(),day:(new Date).getDay()};exports.generateDate=e=>{const[t,a,r]=null==e?void 0:e.split("-"),n=new Date(Number(t),Number(a)-1,Number(r)).getDay();return{year:Number(t),month:Number(a),date:Number(r),day:n}},exports.getKoreanTimeString=t=>{const{year:a,month:r,date:n}=t,i=r.toString().padStart(2,"0"),m=null==n?void 0:n.toString().padStart(2,"0"),o=new Date(`${a}-${i}-${m}`),u=new Intl.DateTimeFormat("ko-KR",{timeZone:"Asia/Seoul",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",hour12:!0}).format(o),[D,s,g,d,y]=u.replace(/\./g,"").split(" "),b=new Date(Number(D),Number(s)-1,Number(g)).getDay();return{year:`${D}년`,month:`${s}월`,date:`${g}일`,time:`${d} ${y}`,day:e.dayMap.get(b)}},exports.getMonthDate=(e,t)=>{const a=new Date(e,t,0).getDate();return{lastDate:a,firstDay:new Date(e,t-1,1).getDay(),lastDay:new Date(e,t-1,a).getDay(),dateList:new Array(a).fill(null).map(((a,r)=>({year:e,month:t,date:r+1,day:new Date(e,t-1,r+1).getDay()})))}},exports.isDateOutOfRange=(e,t,a)=>{if(!t&&!a)return!1;if(void 0===e.date)return!1;const r=new Date(e.year,e.month-1,e.date).getTime();if(t){const[e,a,n]=t.split("-").map(Number);if(r<new Date(e,a-1,n).getTime())return!0}if(a){const[e,t,n]=a.split("-").map(Number);if(r>new Date(e,t-1,n).getTime())return!0}return!1},exports.isSameDate=(e,t)=>{if("string"==typeof e){const[a,r,n]=e.split("-");return new Date(Number(a),Number(r)-1,Number(n)).getTime()==new Date(t.year,Number(t.month)-1,Number(t.date)).getTime()}if("object"==typeof e)return new Date(e.year,Number(e.month)-1,Number(e.date)).getTime()==new Date(t.year,Number(t.month)-1,Number(t.date)).getTime()},exports.today=t;
|