@dotss/ui 1.0.2 → 1.0.4
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/DatePicker/DatePicker.cjs +12 -12
- package/DatePicker/DatePicker.es.js +244 -236
- package/Icon/Icon.cjs +1 -1
- package/Icon/Icon.es.js +1 -1
- package/Tab/Tab.cjs +6 -6
- package/Tab/Tab.es.js +115 -110
- package/package.json +1 -1
- package/resources/tictoccroc/icons/{index.ts-DGZWXCgv.cjs → index.ts-DQT-xh5P.cjs} +1 -1
- package/resources/tictoccroc/icons/{index.ts-BPirIj0F.js → index.ts-DrS5ov5F.js} +16 -14
- package/resources/tictoccroc/icons/line/index.d.ts +1 -0
- package/resources/tictoccroc/icons/line/money-line.svg-BlHnCVds.cjs +1 -0
- package/resources/tictoccroc/icons/line/money-line.svg-CmMXUYQs.js +5 -0
- package/utils/getIconLabel/getIconLabel.cjs +1 -1
- package/utils/getIconLabel/getIconLabel.es.js +2 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("@emotion/react/jsx-runtime"),d=require("react"),
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("@emotion/react/jsx-runtime"),d=require("react"),ut=require("../Flexbox/Flexbox.cjs"),_e=require("../Icon/Icon.cjs"),Xe=require("../IconButton/IconButton.cjs"),ft=require("../Menu/Menu.cjs"),dt=require("../Menu/MenuBlock/MenuBlock.cjs"),Ne=require("../Menu/MenuButton/MenuButton.cjs"),pt=require("../core/useTheme.cjs"),ht=require("@emotion/styled"),te=require("../utils/getContrastingTextColor/getContrastingTextColor.cjs"),mt=e=>e&&e.__esModule?e:{default:e},S=mt(ht),yt=S.default.div`
|
|
2
2
|
position: relative;
|
|
3
3
|
display: flex;
|
|
4
4
|
flex-direction: column;
|
|
5
5
|
gap: ${({theme:{spacing:e}})=>e.content(2)}px;
|
|
6
|
-
`,
|
|
6
|
+
`,Be=S.default.div`
|
|
7
7
|
display: inline-flex;
|
|
8
8
|
align-items: center;
|
|
9
9
|
justify-content: flex-start;
|
|
@@ -12,14 +12,14 @@
|
|
|
12
12
|
cursor: ${({clickable:e})=>e?"pointer":"default"};
|
|
13
13
|
|
|
14
14
|
${({theme:{typography:{h4B:e}}})=>({fontSize:e.size,fontWeight:e.weight,lineHeight:e.lineHeight,letterSpacing:e.letterSpacing})};
|
|
15
|
-
`,
|
|
15
|
+
`,gt=S.default.div`
|
|
16
16
|
display: flex;
|
|
17
17
|
align-items: center;
|
|
18
18
|
justify-content: center;
|
|
19
19
|
gap: ${({theme:{spacing:e}})=>e.content(4)}px;
|
|
20
20
|
|
|
21
21
|
${({theme:{typography:{h2B:e}}})=>({fontSize:e.size,fontWeight:e.weight,lineHeight:e.lineHeight,letterSpacing:e.letterSpacing})};
|
|
22
|
-
`,
|
|
22
|
+
`,Dt=S.default.div`
|
|
23
23
|
display: flex;
|
|
24
24
|
align-items: center;
|
|
25
25
|
padding: 0 ${({theme:{spacing:e},edgeSpacing:n})=>e.content(n||0)}px;
|
|
@@ -30,19 +30,19 @@
|
|
|
30
30
|
text-align: center;
|
|
31
31
|
${({theme:{palette:{grey:e},typography:{b4M:n}}})=>({fontSize:n.size,fontWeight:n.weight,lineHeight:n.lineHeight,letterSpacing:n.letterSpacing,color:e[50]})};
|
|
32
32
|
}
|
|
33
|
-
`,
|
|
33
|
+
`,wt=S.default.div`
|
|
34
34
|
overflow: hidden;
|
|
35
|
-
|
|
35
|
+
`,$t=S.default.div`
|
|
36
36
|
display: flex;
|
|
37
37
|
transform: translate3d(0, 0, 0);
|
|
38
|
-
`,
|
|
38
|
+
`,Ke=S.default.div`
|
|
39
39
|
display: flex;
|
|
40
40
|
flex-direction: column;
|
|
41
41
|
min-width: 100%;
|
|
42
42
|
gap: ${({theme:{spacing:e}})=>e.content(2)}px;
|
|
43
43
|
padding: ${({theme:{spacing:e}})=>e.content(2)}px
|
|
44
44
|
${({theme:{spacing:e},edgeSpacing:n})=>e.content(n||0)}px;
|
|
45
|
-
`,
|
|
45
|
+
`,Pe=S.default.div`
|
|
46
46
|
display: flex;
|
|
47
47
|
width: 100%;
|
|
48
48
|
`,Ue=S.default.div`
|
|
@@ -83,18 +83,18 @@
|
|
|
83
83
|
|
|
84
84
|
${({theme:{typography:{b2R:e}}})=>({fontSize:e.size,fontWeight:e.weight,lineHeight:e.lineHeight,letterSpacing:e.letterSpacing})};
|
|
85
85
|
|
|
86
|
-
${({theme:{palette:{brand:e,grey:n}},variant:r,today:
|
|
86
|
+
${({theme:{palette:{brand:e,grey:n}},variant:r,today:u,selected:o})=>{if(o){let p={fontWeight:700,color:te.default(e.primary.main,[n.white,n[100]]),"& > div:nth-of-type(1):before":{content:'""',position:"absolute",top:"50%",left:"50%",width:30,height:30,transform:"translate(-50%, -50%)",backgroundColor:e.primary.main,borderRadius:"50%"},'&[aria-disabled="true"] > div:nth-of-type(1):before':{backgroundColor:e.primary.disable}};return r==="start"&&(p={fontWeight:700,color:te.default(e.primary.main,[n.white,n[100]]),overflow:"hidden","& > div:nth-of-type(1):before":{content:'""',position:"absolute",top:"50%",left:"50%",width:30,height:30,transform:"translate(-50%, -50%)",backgroundColor:e.primary.main,borderTopLeftRadius:100,borderBottomLeftRadius:100},'&[aria-disabled="true"] > div:nth-of-type(1):before':{backgroundColor:e.primary.disable},"& > div:nth-of-type(1):after":{content:'""',position:"absolute",top:"50%",left:"50%",width:"100%",height:30,transform:"translateY(-50%)",backgroundColor:e.primary.main},'&[aria-disabled="true"] > div:nth-of-type(1):after':{backgroundColor:e.primary.disable}}),r==="end"&&(p={fontWeight:700,color:te.default(e.primary.main,[n.white,n[100]]),overflow:"hidden","& > div:nth-of-type(1):before":{content:'""',position:"absolute",top:"50%",left:"50%",width:30,height:30,transform:"translate(-50%, -50%)",backgroundColor:e.primary.main,borderTopRightRadius:100,borderBottomRightRadius:100},'&[aria-disabled="true"] > div:nth-of-type(1):before':{backgroundColor:e.primary.disable},"& > div:nth-of-type(1):after":{content:'""',position:"absolute",top:"50%",right:"50%",width:"100%",height:30,transform:"translateY(-50%)",backgroundColor:e.primary.main},'&[aria-disabled="true"] > div:nth-of-type(1):after':{backgroundColor:e.primary.disable}}),r==="middle"&&(p={fontWeight:700,color:te.default(e.primary.main,[n.white,n[100]]),overflow:"hidden","& > div:nth-of-type(1):after":{content:'""',position:"absolute",top:"50%",left:"50%",width:"calc(100% + 1px)",height:30,transform:"translate(-50%, -50%)",backgroundColor:e.primary.main},'&[aria-disabled="true"] > div:nth-of-type(1):after':{backgroundColor:e.primary.disable}}),p}return u?{"& > div:nth-of-type(1):after":{content:'""',position:"absolute",top:"50%",left:"50%",width:30,height:30,transform:"translate(-50%, -50%)",border:`1px solid ${e.primary.main}`,borderRadius:"50%"}}:null}};
|
|
87
87
|
|
|
88
|
-
${({theme:{palette:{pink:e,brand:n}},holiday:r,selected:
|
|
88
|
+
${({theme:{palette:{pink:e,brand:n}},holiday:r,selected:u})=>{let o=null;return r&&(o={color:te.default(u?n.primary.main:"transparent",[e[30],e[100]]),'&[aria-disabled="true"]':{color:e[30]}}),o}}
|
|
89
89
|
`,Ge=S.default.div`
|
|
90
90
|
display: flex;
|
|
91
91
|
align-items: center;
|
|
92
92
|
justify-content: center;
|
|
93
93
|
|
|
94
94
|
cursor: ${({clickable:e})=>e?"pointer":"default"};
|
|
95
|
-
`,
|
|
95
|
+
`,Ve=S.default.span`
|
|
96
96
|
width: 100%;
|
|
97
97
|
min-width: 100%;
|
|
98
98
|
height: 6px;
|
|
99
99
|
min-height: 6px;
|
|
100
|
-
`,$t=30,wt=d.forwardRef(function({children:n,onChange:r,onChangeMonth:f,value:o,date:g,minDate:h,maxDate:p,holidayDates:je,disableDates:_,showWeekHead:Qe=!1,multiple:v=!1,period:re=!1,enableMonthSelect:J=!1,showToday:Ae=!1,edgeSpacing:he=0,renderEvent:F,inlineCSS:Ze,monthProps:ne,...Ce},et){const{spacing:ve}=ft.default(),[w,pe]=d.useState((typeof g=="string"||typeof g=="number"?new Date(g):g)||new Date),[x,Q]=d.useState(()=>Array.isArray(o)&&o.length>0?y(o[0]):y(o)),[z,ie]=d.useState(()=>Array.isArray(o)&&o.length>1?y(o[o.length-1]):null),[M,Te]=d.useState(0),[b,X]=d.useState(1),[Re,We]=d.useState(!1),[me,ye]=d.useState(!1),Z=d.useRef(null),D=d.useRef(null),se=d.useRef(0),W=d.useRef(0),T=d.useRef(!1),C=d.useRef(b),ge=d.useRef(),oe=d.useRef(null),De=d.useRef(null),j=w.getFullYear(),ae=w.getMonth(),He=Me(j,ae),Y=E(ae),N=y(o),B=y(je),K=y(_),$e=P(w,h)||de(w,h),we=O(w,p)||de(w,p),ce=new Date(j,ae-1),le=new Date(j,ae+1),L=`${j}. ${Y}`,q=`${j}년 ${Y}월`,U=re&&!!x&&!!z,Fe=[{year:ce.getFullYear(),month:E(ce.getMonth()),weeks:Me(ce.getFullYear(),ce.getMonth())},{year:j,month:Y,weeks:He},{year:le.getFullYear(),month:E(le.getMonth()),weeks:Me(le.getFullYear(),le.getMonth())}],xe=typeof F=="function",tt=Fe[1].weeks.length*($t+(xe?10:0)+ve.content(2))+ve.content(2),ze=t=>()=>{v&&(D.current&&(D.current.style.transition="none",D.current.style.cursor="grabbing"),se.current=t,T.current=!0)},I=d.useCallback(()=>{if(!T.current)return;const t=M-W.current,l=Math.abs(M-t),s=M*.1;D.current&&(D.current.style.transform=`translate3d(-${M*b}px, 0, 0)`,D.current.style.cursor="grab",D.current.style.transition="transform 0.2s"),se.current=0,W.current=0,T.current=!1,!(l<=s)&&(M<t?X(c=>c+1):M>t&&X(c=>c-1))},[M,b]),be=(t,l)=>()=>{if(!(T.current||b!==1)&&!l){if(!re){r==null||r(t,y);return}if(R(t,x)&&Array.isArray(o)&&o.length===1){Q(null),ie(null),r==null||r([],y);return}else if(R(t,x)&&!Array.isArray(o)&&R(t,o)){Q(null),ie(null),r==null||r([],y);return}if(!x){Q(t),r==null||r(t,y);return}if(!z&&x){const[s,c]=O(t,x)?[x,t]:[t,x];Q(s),ie(c);const i=Je([s,c],_);r==null||r(i,y);return}x&&z&&(Q(t),ie(null),r==null||r(t,y))}},rt=t=>ze(t.clientX)(),nt=t=>ze(t.touches[0].clientX)(),Ye=()=>{Re||(D.current&&(D.current.style.transition="transform 0.2s"),X(t=>t-1))},Le=()=>{Re||(D.current&&(D.current.style.transition="transform 0.2s"),X(t=>t+1))},ue=t=>{t.stopPropagation(),ye(l=>!l)},it=()=>ye(!1),st=t=>{if(!t)return;const[l,s]=t.toString().split(".").map(Number);pe(new Date(l,s-1)),f&&typeof f=="function"&&f(y(new Date(l,s-1)),y),ye(!1)},qe=(t,l)=>s=>{const c=new Date(t);let i=null;if(s.stopPropagation(),s.key==="ArrowRight")i=new Date(c),i.setDate(c.getDate()+1);else if(s.key==="ArrowLeft")i=new Date(c),i.setDate(c.getDate()-1);else if(s.key==="ArrowDown")i=new Date(c),i.setDate(c.getDate()+7);else if(s.key==="ArrowUp")i=new Date(c),i.setDate(c.getDate()-7);else if(s.key==="Home")i=new Date(c),i.setDate(c.getDate()-c.getDay());else if(s.key==="End")i=new Date(c),i.setDate(c.getDate()+(6-c.getDay()));else if(s.key==="PageUp")i=new Date(c),i.setMonth(c.getMonth()-1);else if(s.key==="PageDown")i=new Date(c),i.setMonth(c.getMonth()+1);else if(s.key==="Enter"||s.key===" "){s.preventDefault(),be(t,l)();return}else if(s.key==="Escape"){s.preventDefault(),r==null||r([],y);return}if(i&&Z.current){const $=c.getMonth(),m=c.getFullYear(),k=i.getMonth(),u=i.getFullYear(),A=y(i),H=Z.current.querySelector(`[data-date="${A}"]`);if(H){if($!==k||m!==u){i>c?(Le(),setTimeout(()=>{H.focus()},0)):(Ye(),setTimeout(()=>{H.focus()},0));return}H.focus()}}};return d.useLayoutEffect(()=>{var t;Te(((t=Z.current)==null?void 0:t.clientWidth)||0)},[v]),d.useEffect(()=>{const t=()=>{var l;Te(((l=Z.current)==null?void 0:l.clientWidth)||0)};return window.addEventListener("resize",t),window.addEventListener("scroll",t),()=>{window.removeEventListener("resize",t),window.removeEventListener("scroll",t)}},[v]),d.useEffect(()=>{const t=D.current,l=(i,$,m)=>{if(!t||!T.current)return;W.current=i-se.current;const k=$-se.current,u=5;if(T.current=T.current||Math.abs(W.current)>u&&Math.abs(k)<u*2,m.cancelable&&m.preventDefault(),T.current){if($e&&W.current>0){I();return}if(we&&W.current<0){I();return}Math.abs(W.current)>=10&&(t.style.transform=`translate3d(${W.current-M*b}px, 0, 0)`,t.style.cursor="grabbing")}},s=i=>l(i.touches[0].clientX,i.touches[0].clientY,i),c=i=>{T.current&&l(i.clientX,i.clientY,i)};return t==null||t.addEventListener("mousemove",c),t==null||t.addEventListener("touchmove",s),()=>{t==null||t.removeEventListener("mousemove",c),t==null||t.removeEventListener("touchmove",s)}},[M,b,I,we,$e]),d.useEffect(()=>{We(!0),ge.current=setTimeout(()=>{if(D.current&&(D.current.style.transition="none"),b>C.current){X(1);const t=new Date(w.setMonth(w.getMonth()+1));pe(t),f&&typeof f=="function"&&f(y(t),y),C.current=1}else if(b<C.current){const t=new Date(w.setMonth(w.getMonth()-1));pe(t),f&&typeof f=="function"&&f(y(t),y),X(1),C.current=1}else C.current=b;We(!1)},200)},[b,w,f]),d.useLayoutEffect(()=>{if(!re||!Array.isArray(o))return;const t=Je(o,_);o.length<t.length&&(r==null||r(t,y))},[re,o,r,_]),d.useEffect(()=>{let t;return me&&(t=setTimeout(()=>{if(De.current){const l=De.current.querySelector("ul"),s=l==null?void 0:l.querySelector(`[data-value="${L}"]`);s==null||s.scrollIntoView({block:"start"})}},200)),()=>{clearTimeout(t)}},[me,L]),d.useEffect(()=>()=>{ge.current&&clearTimeout(ge.current)},[]),a.jsxs(pt,{ref:et,"aria-label":"달력",role:"application",...Ce,css:Ze,children:[v?a.jsxs(mt,{children:[a.jsx(_e.default,{name:"ChevronLeftLine",size:"small",onClick:Ye,disabled:$e,"aria-label":`이전 달로 이동, 현재 ${q}`}),J&&a.jsxs(Ge,{ref:oe,clickable:!0,onClick:ue,"aria-label":q,...ne,children:[L,a.jsx(Xe.default,{iconOnly:!0,isMenuOpen:!1,size:"xSmall",variant:"text",menuId:"date-picker-month-menu",onClick:ue,"aria-label":`달 변경, 현재 ${q}`,startAdornment:a.jsx(Ee.default,{name:"ArrowDownFill",size:"xSmall"})})]}),!J&&a.jsx(Ge,{ref:oe,id:"date-picker-title",clickable:!1,"aria-label":q,...ne,children:L}),a.jsx(_e.default,{name:"ChevronRightLine",size:"small",onClick:Le,disabled:we,"aria-label":`다음 달로 이동, 현재 ${q}`})]}):a.jsxs(a.Fragment,{children:[J&&a.jsxs(Ne,{ref:oe,clickable:!0,onClick:ue,"aria-label":q,...ne,children:[L,a.jsx(Xe.default,{iconOnly:!0,isMenuOpen:!1,size:"xSmall",variant:"text",menuId:"date-picker-month-menu",onClick:ue,"aria-label":`달 변경, 현재 ${q}`,startAdornment:a.jsx(Ee.default,{name:"ArrowDownFill",size:"xSmall"})})]}),!J&&a.jsx(Ne,{id:"date-picker-title",clickable:!1,...ne,children:L})]}),J&&a.jsx(lt.default,{id:"date-picker-month-menu",anchorRef:oe,ref:De,open:me,onClose:it,onChange:st,value:L,placement:v?"bottom-center":"bottom-left",width:160,fitToAnchorWidth:!1,maxHeight:368,children:Array.from({length:130},(t,l)=>{const s=1970+l;return Array.from({length:12},(c,i)=>{const $=i+1,m=$<10?`0${$}`:$,k=new Date(s,i+1,0).getDate(),u=`${s}-${m}-${k}`,A=`${s}-${m}-01`;return P(u,h)||O(A,p)?null:a.jsx(ut.default,{value:`${s}. ${m}`,"aria-label":`${s}년 ${m}월 선택`,children:`${s}. ${m}`},`${s}-${m}`)})})}),a.jsxs(ct.default,{flexDirection:"column",role:"grid","aria-label":`${j}년 ${Y}월 달력`,children:[Qe&&a.jsxs(yt,{id:"date-picker-week-head",role:"row",edgeSpacing:he,children:[a.jsx("span",{role:"columnheader",children:"일"}),a.jsx("span",{role:"columnheader",children:"월"}),a.jsx("span",{role:"columnheader",children:"화"}),a.jsx("span",{role:"columnheader",children:"수"}),a.jsx("span",{role:"columnheader",children:"목"}),a.jsx("span",{role:"columnheader",children:"금"}),a.jsx("span",{role:"columnheader",children:"토"})]}),a.jsx(gt,{ref:Z,role:"presentation",children:a.jsxs(Dt,{role:"presentation",ref:D,onMouseDown:rt,onMouseUp:I,onMouseLeave:I,onTouchStart:nt,onTouchEnd:I,onTouchCancel:I,style:{transform:v?`translate3d(-${M*b}px, 0, 0)`:void 0,cursor:v?"grab":void 0,maxHeight:tt},children:[v&&Fe.map(({year:t,month:l,weeks:s},c)=>a.jsx(Be,{role:"rowgroup",edgeSpacing:he,className:c===1?"week-body-current":"",children:s.map((i,$)=>a.jsx(Ke,{role:"row",children:i.map((m,k)=>{const u=`${t}-${l}-${V(m||0)}`,A=!m,H=R(u,new Date),ke=Array.isArray(B)?B.includes(u):B===u,ee=Array.isArray(N)?N.includes(u):N===u,G=!m||(Array.isArray(K)?K.includes(u):K===u)||O(u,p)||P(u,h),Se=U&&R(u,x),fe=U&&R(u,z),ot=U&&O(u,x)&&P(u,z),Ie=de(u,w),at=Ie&&$===0&&m===1||Ie&&ee,Oe=F==null?void 0:F(u);return a.jsxs(Ue,{as:"button",role:"gridcell",variant:Se?"start":fe?"end":ot?"middle":void 0,onClick:be(u,G),today:Ae&&H,holiday:ke,tabIndex:at?0:-1,"aria-rowindex":$+1,"aria-colindex":k+1,selected:ee,"aria-selected":ee,"aria-disabled":G,"aria-hidden":m===null,"data-date":u,onKeyDown:qe(u,G),children:[a.jsx("div",{"aria-label":`${Ve(u)}`,children:a.jsx("span",{children:m})}),!A&&Oe,!A&&xe&&!Oe&&a.jsx(Pe,{})]},`${t}-${l}-week-row-${k}-${m?u:`${$}-${k}`}`)})},`${t}-${l}-week-row-${String(i)}`))},`week-body-${t}-${l}`)),!v&&a.jsx(Be,{role:"rowgroup",edgeSpacing:he,children:He.map((t,l)=>a.jsx(Ke,{role:"row",children:t.map((s,c)=>{const i=`${j}-${Y}-${V(s||0)}`,$=!s,m=R(i,new Date),k=Array.isArray(B)?B.includes(i):B===i,u=Array.isArray(N)?N.includes(i):N===i,A=!s||(Array.isArray(K)?K.includes(i):K===i)||O(i,p)||P(i,h),H=U&&R(i,x),ke=U&&R(i,z),ee=U&&O(i,x)&&P(i,z),G=de(i,w),Se=G&&l===0&&s===1||G&&u,fe=F==null?void 0:F(i);return a.jsxs(Ue,{as:"button",variant:H?"start":ke?"end":ee?"middle":void 0,role:"gridcell",onClick:be(i,A),today:Ae&&m,holiday:k,"aria-rowindex":l+1,"aria-colindex":c+1,selected:u,"aria-selected":u,"aria-disabled":A,"aria-hidden":s===null,tabIndex:Se?0:-1,"data-date":i,onKeyDown:qe(i,A),children:[a.jsx("div",{"aria-label":`${Ve(i)}`,children:a.jsx("span",{children:s})}),!$&&fe,!$&&xe&&!fe&&a.jsx(Pe,{})]},`${j}-${Y}-week-row-${t}-${s?i:`${l}-${c}`}`)})},`${j}-${Y}-week-row-${String(t)}`))})]})})]}),n]})});function Me(e,n){let r=[];const f=new Date(e,n,1),o=new Date(e,n+1,0).getDate(),g=f.getDay();let h=Array.from({length:g}).fill(null);for(let p=1;p<=o;p+=1)h.push(p),(h.length===7||p===o)&&(r.push(h),h=[]);return r=r.map(p=>Array.from({length:7}).map((je,_)=>p[_]||null)),r}function E(e){return String(e+1).length===1?`0${e+1}`:e+1}function V(e){return String(e).length===1?`0${e}`:e}function y(e){if(Array.isArray(e))return e.map(n=>n instanceof Date?`${n.getFullYear()}-${E(n.getMonth())}-${V(n.getDate())}`:n);if(e instanceof Date)return`${e.getFullYear()}-${E(e.getMonth())}-${V(e.getDate())}`;if(typeof e=="number"){const n=new Date(e);return`${n.getFullYear()}-${E(n.getMonth())}-${V(n.getDate())}`}return e}function Ve(e){const[n,r,f]=e.split("-");return`${n}년 ${Number(r)}월 ${Number(f)}일`}function O(e,n){if(!e||!n)return!1;const r=e instanceof Date?e:new Date(e);r.setHours(0),r.setMinutes(0),r.setSeconds(0),r.setMilliseconds(0);const f=r.getTime(),o=n instanceof Date?n:new Date(n);o.setHours(0),o.setMinutes(0),o.setSeconds(0),o.setMilliseconds(0);const g=o.getTime();return f>g}function P(e,n){if(!e||!n)return!1;const r=e instanceof Date?e:new Date(e);r.setHours(0),r.setMinutes(0),r.setSeconds(0),r.setMilliseconds(0);const f=r.getTime(),o=n instanceof Date?n:new Date(n);o.setHours(0),o.setMinutes(0),o.setSeconds(0),o.setMilliseconds(0);const g=o.getTime();return f<g}function de(e,n){if(!e||!n)return!1;const r=e instanceof Date?e:new Date(e),f=n instanceof Date?n:new Date(n);return`${r.getFullYear()}-${r.getMonth()}`==`${f.getFullYear()}-${f.getMonth()}`}function R(e,n){if(!e||!n)return!1;const r=e instanceof Date?e:new Date(e);r.setHours(0),r.setMinutes(0),r.setSeconds(0),r.setMilliseconds(0);const f=r.getTime(),o=n instanceof Date?n:new Date(n);o.setHours(0),o.setMinutes(0),o.setSeconds(0),o.setMilliseconds(0);const g=o.getTime();return f===g}function Je(e,n){if(!e||!Array.isArray(e)||e.length===0)return[];const r=e.map(p=>p instanceof Date?p:p===null?new Date:new Date(p)),f=new Date(Math.min(...r.map(p=>p.getTime()))),o=new Date(Math.max(...r.map(p=>p.getTime()))),g=[],h=new Date(f);for(;h<=o;){if(Array.isArray(n)&&n.includes(h)){h.setDate(h.getDate()+1);continue}else if(n===h){h.setDate(h.getDate()+1);continue}g.push(`${h.getFullYear()}-${E(h.getMonth())}-${V(h.getDate())}`),h.setDate(h.getDate()+1)}return g}exports.default=wt;
|
|
100
|
+
`,xt=30,Je=5,bt=d.forwardRef(function({children:n,onChange:r,onChangeMonth:u,value:o,date:p,minDate:h,maxDate:y,holidayDates:je,disableDates:_,showWeekHead:Ce=!1,multiple:M=!1,period:re=!1,enableMonthSelect:J=!1,showToday:Ae=!1,edgeSpacing:pe=0,renderEvent:F,inlineCSS:et,monthProps:ne,...tt},rt){const{spacing:ve}=pt.default(),[$,ie]=d.useState((typeof p=="string"||typeof p=="number"?new Date(p):p)||new Date),[x,Q]=d.useState(()=>Array.isArray(o)&&o.length>0?g(o[0]):g(o)),[Y,se]=d.useState(()=>Array.isArray(o)&&o.length>1?g(o[o.length-1]):null),[j,Te]=d.useState(0),[b,X]=d.useState(1),[Re,He]=d.useState(!1),[he,me]=d.useState(!1),Z=d.useRef(null),D=d.useRef(null),ye=d.useRef(0),We=d.useRef(0),H=d.useRef(0),T=d.useRef(!1),C=d.useRef(b),ge=d.useRef(),oe=d.useRef(null),De=d.useRef(null),A=$.getFullYear(),ae=$.getMonth(),Fe=Me(A,ae),z=q(ae),N=g(o),B=g(je),K=g(_),we=G($,h)||de($,h),$e=O($,y)||de($,y),ce=new Date(A,ae-1),le=new Date(A,ae+1),L=`${A}. ${z}`,E=`${A}년 ${z}월`,P=re&&!!x&&!!Y,Ye=[{year:ce.getFullYear(),month:q(ce.getMonth()),weeks:Me(ce.getFullYear(),ce.getMonth())},{year:A,month:z,weeks:Fe},{year:le.getFullYear(),month:q(le.getMonth()),weeks:Me(le.getFullYear(),le.getMonth())}],xe=typeof F=="function",nt=Ye[1].weeks.length*(xt+(xe?10:0)+ve.content(2))+ve.content(2),ze=(t,l)=>()=>{D.current&&(D.current.style.transition="none",D.current.style.cursor="grabbing"),ye.current=t,We.current=l},I=d.useCallback(()=>{if(!T.current)return;const t=j-H.current,l=Math.abs(j-t),s=j*.1;D.current&&(D.current.style.transform=`translate3d(-${j*b}px, 0, 0)`,D.current.style.cursor="grab",D.current.style.transition="transform 0.2s"),ye.current=0,H.current=0,T.current=!1,!(l<=s)&&(j<t?X(c=>c+1):j>t&&X(c=>c-1))},[j,b]),be=(t,l)=>()=>{if(!(T.current||b!==1)&&!l){if(!re){r==null||r(t,g);return}if(R(t,x)&&Array.isArray(o)&&o.length===1){Q(null),se(null),r==null||r([],g);return}else if(R(t,x)&&!Array.isArray(o)&&R(t,o)){Q(null),se(null),r==null||r([],g);return}if(!x){Q(t),r==null||r(t,g);return}if(!Y&&x){const[s,c]=O(t,x)?[x,t]:[t,x];Q(s),se(c);const i=Ze([s,c],_);r==null||r(i,g);return}x&&Y&&(Q(t),se(null),r==null||r(t,g))}},it=t=>{M&&(T.current=!0,ze(t.clientX,t.clientY)())},st=t=>{M&&ze(t.touches[0].clientX,t.touches[0].clientY)()},Le=()=>{Re||(D.current&&(D.current.style.transition="transform 0.2s"),X(t=>t-1))},Ee=()=>{Re||(D.current&&(D.current.style.transition="transform 0.2s"),X(t=>t+1))},ue=t=>{t.stopPropagation(),me(l=>!l)},ot=()=>me(!1),at=t=>{if(!t)return;const[l,s]=t.toString().split(".").map(Number);ie(new Date(l,s-1)),u&&typeof u=="function"&&u(g(new Date(l,s-1)),g),me(!1)},Ie=(t,l)=>s=>{const c=new Date(t);let i=null;if(s.stopPropagation(),s.key==="ArrowRight")i=new Date(c),i.setDate(c.getDate()+1);else if(s.key==="ArrowLeft")i=new Date(c),i.setDate(c.getDate()-1);else if(s.key==="ArrowDown")i=new Date(c),i.setDate(c.getDate()+7);else if(s.key==="ArrowUp")i=new Date(c),i.setDate(c.getDate()-7);else if(s.key==="Home")i=new Date(c),i.setDate(c.getDate()-c.getDay());else if(s.key==="End")i=new Date(c),i.setDate(c.getDate()+(6-c.getDay()));else if(s.key==="PageUp")i=new Date(c),i.setMonth(c.getMonth()-1);else if(s.key==="PageDown")i=new Date(c),i.setMonth(c.getMonth()+1);else if(s.key==="Enter"||s.key===" "){s.preventDefault(),be(t,l)();return}else if(s.key==="Escape"){s.preventDefault(),r==null||r([],g);return}if(i&&Z.current){const w=c.getMonth(),m=c.getFullYear(),k=i.getMonth(),f=i.getFullYear(),v=g(i),W=Z.current.querySelector(`[data-date="${v}"]`);if(W){if(w!==k||m!==f){i>c?(Ee(),setTimeout(()=>{W.focus()},0)):(Le(),setTimeout(()=>{W.focus()},0));return}W.focus()}}};return d.useLayoutEffect(()=>{var t;Te(((t=Z.current)==null?void 0:t.clientWidth)||0)},[M]),d.useEffect(()=>{const t=()=>{var l;Te(((l=Z.current)==null?void 0:l.clientWidth)||0)};return window.addEventListener("resize",t),window.addEventListener("scroll",t),()=>{window.removeEventListener("resize",t),window.removeEventListener("scroll",t)}},[M]),d.useEffect(()=>{const t=D.current,l=(i,w,m)=>{if(!t)return;H.current=i-ye.current;const k=w-We.current;if(T.current=T.current||Math.abs(H.current)>Je&&Math.abs(k)<Je*2,T.current&&m.cancelable&&(m.preventDefault(),m.stopPropagation()),T.current){if(we&&H.current>0){I();return}if($e&&H.current<0){I();return}Math.abs(H.current)>=10&&(t.style.transform=`translate3d(${H.current-j*b}px, 0, 0)`,t.style.cursor="grabbing")}},s=i=>l(i.touches[0].clientX,i.touches[0].clientY,i),c=i=>{T.current&&l(i.clientX,i.clientY,i)};return t==null||t.addEventListener("mousemove",c),t==null||t.addEventListener("touchmove",s),()=>{t==null||t.removeEventListener("mousemove",c),t==null||t.removeEventListener("touchmove",s)}},[j,b,I,$e,we]),d.useEffect(()=>{He(!0),ge.current=setTimeout(()=>{if(D.current&&(D.current.style.transition="none"),b>C.current){X(1);const t=new Date($.setMonth($.getMonth()+1));ie(t),u&&typeof u=="function"&&u(g(t),g),C.current=1}else if(b<C.current){const t=new Date($.setMonth($.getMonth()-1));ie(t),u&&typeof u=="function"&&u(g(t),g),X(1),C.current=1}else C.current=b;He(!1)},200)},[b,$,u]),d.useLayoutEffect(()=>{if(!re||!Array.isArray(o))return;const t=Ze(o,_);o.length<t.length&&(r==null||r(t,g))},[re,o,r,_]),d.useEffect(()=>{let t;return he&&(t=setTimeout(()=>{if(De.current){const l=De.current.querySelector("ul"),s=l==null?void 0:l.querySelector(`[data-value="${L}"]`);s==null||s.scrollIntoView({block:"start"})}},200)),()=>{clearTimeout(t)}},[he,L]),d.useEffect(()=>()=>{ge.current&&clearTimeout(ge.current)},[]),d.useEffect(()=>{p&&ie((typeof p=="string"||typeof p=="number"?new Date(p):p)||new Date)},[p]),a.jsxs(yt,{ref:rt,"aria-label":"달력",role:"application",...tt,css:et,children:[M?a.jsxs(gt,{children:[a.jsx(Xe.default,{name:"ChevronLeftLine",size:"small",onClick:Le,disabled:we,"aria-label":`이전 달로 이동, 현재 ${E}`}),J&&a.jsxs(Ge,{ref:oe,clickable:!0,onClick:ue,"aria-label":E,...ne,children:[L,a.jsx(Ne.default,{iconOnly:!0,isMenuOpen:!1,size:"xSmall",variant:"text",menuId:"date-picker-month-menu",onClick:ue,"aria-label":`달 변경, 현재 ${E}`,startAdornment:a.jsx(_e.default,{name:"ArrowDownFill",size:"xSmall"})})]}),!J&&a.jsx(Ge,{ref:oe,id:"date-picker-title",clickable:!1,"aria-label":E,...ne,children:L}),a.jsx(Xe.default,{name:"ChevronRightLine",size:"small",onClick:Ee,disabled:$e,"aria-label":`다음 달로 이동, 현재 ${E}`})]}):a.jsxs(a.Fragment,{children:[J&&a.jsxs(Be,{ref:oe,clickable:!0,onClick:ue,"aria-label":E,...ne,children:[L,a.jsx(Ne.default,{iconOnly:!0,isMenuOpen:!1,size:"xSmall",variant:"text",menuId:"date-picker-month-menu",onClick:ue,"aria-label":`달 변경, 현재 ${E}`,startAdornment:a.jsx(_e.default,{name:"ArrowDownFill",size:"xSmall"})})]}),!J&&a.jsx(Be,{id:"date-picker-title",clickable:!1,...ne,children:L})]}),J&&a.jsx(ft.default,{id:"date-picker-month-menu",anchorRef:oe,ref:De,open:he,onClose:ot,onChange:at,value:L,placement:M?"bottom-center":"bottom-left",width:160,fitToAnchorWidth:!1,maxHeight:368,children:Array.from({length:130},(t,l)=>{const s=1970+l;return Array.from({length:12},(c,i)=>{const w=i+1,m=w<10?`0${w}`:w,k=new Date(s,i+1,0).getDate(),f=`${s}-${m}-${k}`,v=`${s}-${m}-01`;return G(f,h)||O(v,y)?null:a.jsx(dt.default,{value:`${s}. ${m}`,"aria-label":`${s}년 ${m}월 선택`,children:`${s}. ${m}`},`${s}-${m}`)})})}),a.jsxs(ut.default,{flexDirection:"column",role:"grid","aria-label":`${A}년 ${z}월 달력`,children:[Ce&&a.jsxs(Dt,{id:"date-picker-week-head",role:"row",edgeSpacing:pe,children:[a.jsx("span",{role:"columnheader",children:"일"}),a.jsx("span",{role:"columnheader",children:"월"}),a.jsx("span",{role:"columnheader",children:"화"}),a.jsx("span",{role:"columnheader",children:"수"}),a.jsx("span",{role:"columnheader",children:"목"}),a.jsx("span",{role:"columnheader",children:"금"}),a.jsx("span",{role:"columnheader",children:"토"})]}),a.jsx(wt,{ref:Z,role:"presentation",children:a.jsxs($t,{role:"presentation",ref:D,onMouseDown:it,onMouseUp:I,onMouseLeave:I,onTouchStart:st,onTouchEnd:I,onTouchCancel:I,style:{transform:M?`translate3d(-${j*b}px, 0, 0)`:void 0,cursor:M?"grab":void 0,maxHeight:nt},children:[M&&Ye.map(({year:t,month:l,weeks:s},c)=>a.jsx(Ke,{role:"rowgroup",edgeSpacing:pe,className:c===1?"week-body-current":"",children:s.map((i,w)=>a.jsx(Pe,{role:"row",children:i.map((m,k)=>{const f=`${t}-${l}-${V(m||0)}`,v=!m,W=R(f,new Date),ke=Array.isArray(B)?B.includes(f):B===f,ee=Array.isArray(N)?N.includes(f):N===f,U=!m||(Array.isArray(K)?K.includes(f):K===f)||O(f,y)||G(f,h),Se=P&&R(f,x),fe=P&&R(f,Y),ct=P&&O(f,x)&&G(f,Y),Oe=de(f,$),lt=Oe&&w===0&&m===1||Oe&&ee,qe=F==null?void 0:F(f);return a.jsxs(Ue,{as:"button",role:"gridcell",variant:Se?"start":fe?"end":ct?"middle":void 0,onClick:be(f,U),today:Ae&&W,holiday:ke,tabIndex:lt?0:-1,"aria-rowindex":w+1,"aria-colindex":k+1,selected:ee,"aria-selected":ee,"aria-disabled":U,"aria-hidden":m===null,"data-date":f,onKeyDown:Ie(f,U),children:[a.jsx("div",{"aria-label":`${Qe(f)}`,children:a.jsx("span",{children:m})}),!v&&qe,!v&&xe&&!qe&&a.jsx(Ve,{})]},`${t}-${l}-week-row-${k}-${m?f:`${w}-${k}`}`)})},`${t}-${l}-week-row-${String(i)}`))},`week-body-${t}-${l}`)),!M&&a.jsx(Ke,{role:"rowgroup",edgeSpacing:pe,children:Fe.map((t,l)=>a.jsx(Pe,{role:"row",children:t.map((s,c)=>{const i=`${A}-${z}-${V(s||0)}`,w=!s,m=R(i,new Date),k=Array.isArray(B)?B.includes(i):B===i,f=Array.isArray(N)?N.includes(i):N===i,v=!s||(Array.isArray(K)?K.includes(i):K===i)||O(i,y)||G(i,h),W=P&&R(i,x),ke=P&&R(i,Y),ee=P&&O(i,x)&&G(i,Y),U=de(i,$),Se=U&&l===0&&s===1||U&&f,fe=F==null?void 0:F(i);return a.jsxs(Ue,{as:"button",variant:W?"start":ke?"end":ee?"middle":void 0,role:"gridcell",onClick:be(i,v),today:Ae&&m,holiday:k,"aria-rowindex":l+1,"aria-colindex":c+1,selected:f,"aria-selected":f,"aria-disabled":v,"aria-hidden":s===null,tabIndex:Se?0:-1,"data-date":i,onKeyDown:Ie(i,v),children:[a.jsx("div",{"aria-label":`${Qe(i)}`,children:a.jsx("span",{children:s})}),!w&&fe,!w&&xe&&!fe&&a.jsx(Ve,{})]},`${A}-${z}-week-row-${t}-${s?i:`${l}-${c}`}`)})},`${A}-${z}-week-row-${String(t)}`))})]})})]}),n]})});function Me(e,n){let r=[];const u=new Date(e,n,1),o=new Date(e,n+1,0).getDate(),p=u.getDay();let h=Array.from({length:p}).fill(null);for(let y=1;y<=o;y+=1)h.push(y),(h.length===7||y===o)&&(r.push(h),h=[]);return r=r.map(y=>Array.from({length:7}).map((je,_)=>y[_]||null)),r}function q(e){return String(e+1).length===1?`0${e+1}`:e+1}function V(e){return String(e).length===1?`0${e}`:e}function g(e){if(Array.isArray(e))return e.map(n=>n instanceof Date?`${n.getFullYear()}-${q(n.getMonth())}-${V(n.getDate())}`:n);if(e instanceof Date)return`${e.getFullYear()}-${q(e.getMonth())}-${V(e.getDate())}`;if(typeof e=="number"){const n=new Date(e);return`${n.getFullYear()}-${q(n.getMonth())}-${V(n.getDate())}`}return e}function Qe(e){const[n,r,u]=e.split("-");return`${n}년 ${Number(r)}월 ${Number(u)}일`}function O(e,n){if(!e||!n)return!1;const r=e instanceof Date?e:new Date(e);r.setHours(0),r.setMinutes(0),r.setSeconds(0),r.setMilliseconds(0);const u=r.getTime(),o=n instanceof Date?n:new Date(n);o.setHours(0),o.setMinutes(0),o.setSeconds(0),o.setMilliseconds(0);const p=o.getTime();return u>p}function G(e,n){if(!e||!n)return!1;const r=e instanceof Date?e:new Date(e);r.setHours(0),r.setMinutes(0),r.setSeconds(0),r.setMilliseconds(0);const u=r.getTime(),o=n instanceof Date?n:new Date(n);o.setHours(0),o.setMinutes(0),o.setSeconds(0),o.setMilliseconds(0);const p=o.getTime();return u<p}function de(e,n){if(!e||!n)return!1;const r=e instanceof Date?e:new Date(e),u=n instanceof Date?n:new Date(n);return`${r.getFullYear()}-${r.getMonth()}`==`${u.getFullYear()}-${u.getMonth()}`}function R(e,n){if(!e||!n)return!1;const r=e instanceof Date?e:new Date(e);r.setHours(0),r.setMinutes(0),r.setSeconds(0),r.setMilliseconds(0);const u=r.getTime(),o=n instanceof Date?n:new Date(n);o.setHours(0),o.setMinutes(0),o.setSeconds(0),o.setMilliseconds(0);const p=o.getTime();return u===p}function Ze(e,n){if(!e||!Array.isArray(e)||e.length===0)return[];const r=e.map(y=>y instanceof Date?y:y===null?new Date:new Date(y)),u=new Date(Math.min(...r.map(y=>y.getTime()))),o=new Date(Math.max(...r.map(y=>y.getTime()))),p=[],h=new Date(u);for(;h<=o;){if(Array.isArray(n)&&n.includes(h)){h.setDate(h.getDate()+1);continue}else if(n===h){h.setDate(h.getDate()+1);continue}p.push(`${h.getFullYear()}-${q(h.getMonth())}-${V(h.getDate())}`),h.setDate(h.getDate()+1)}return p}exports.default=bt;
|