@leechanyong/ispark-ui 0.5.8 → 0.5.9
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/ispark-ui.cjs +1 -1
- package/dist/ispark-ui.js +1 -1
- package/package.json +1 -1
package/dist/ispark-ui.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("vue"),q=require("radix-vue"),qe=require("@internationalized/date"),pB={key:0,class:"ui-button-spinner","aria-hidden":"true"},fB={key:1,class:"ui-button-icon"},yB={key:2,class:"ui-button-text"},kB={key:3,class:"ui-button-icon"},mB=u.defineComponent({__name:"UiButton",props:{variant:{default:"primary"},size:{default:"md"},iconSize:{},shape:{default:"rounded"},as:{default:"button"},type:{default:"button"},href:{},target:{},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},fullWidth:{type:Boolean,default:!1},iconOnly:{type:Boolean,default:!1},ariaLabel:{}},emits:["click"],setup(t,{expose:e,emit:n}){const o=/^\s*(?:javascript|data|vbscript|file):/i,a=h=>{if(!h)return;const p=h.trim();if(!o.test(p))return p},r=t,i=n,c=u.computed(()=>a(r.href)),s=h=>{if(r.disabled||r.loading){h.preventDefault(),h.stopPropagation();return}i("click",h)},d=u.ref(null);return e({focus:()=>{var h;return(h=d.value)==null?void 0:h.focus()},blur:()=>{var h;return(h=d.value)==null?void 0:h.blur()},el:d}),(h,p)=>(u.openBlock(),u.createBlock(u.resolveDynamicComponent(t.as),{ref_key:"rootEl",ref:d,class:u.normalizeClass(["ui-button",[`variant-${t.variant}`,`size-${t.size}`,`shape-${t.shape}`,t.iconSize?`icon-size-${t.iconSize}`:null,{"is-disabled":t.disabled,"is-loading":t.loading,"is-full":t.fullWidth,"is-icon-only":t.iconOnly}]]),type:t.as==="button"?t.type:void 0,href:t.as==="a"?c.value:void 0,target:t.as==="a"?t.target:void 0,rel:t.as==="a"&&t.target==="_blank"?"noopener noreferrer":void 0,disabled:t.as==="button"&&(t.disabled||t.loading)?!0:void 0,"aria-disabled":t.as==="a"&&(t.disabled||t.loading)?"true":void 0,tabindex:t.as==="a"&&(t.disabled||t.loading)?-1:void 0,"aria-busy":t.loading||void 0,"aria-label":t.ariaLabel,onClick:s},{default:u.withCtx(()=>[t.loading?(u.openBlock(),u.createElementBlock("span",pB)):h.$slots["icon-left"]?(u.openBlock(),u.createElementBlock("span",fB,[u.renderSlot(h.$slots,"icon-left",{},void 0,!0)])):u.createCommentVNode("",!0),h.$slots.default&&!t.iconOnly?(u.openBlock(),u.createElementBlock("span",yB,[u.renderSlot(h.$slots,"default",{},void 0,!0)])):u.createCommentVNode("",!0),h.$slots["icon-right"]&&!t.loading?(u.openBlock(),u.createElementBlock("span",kB,[u.renderSlot(h.$slots,"icon-right",{},void 0,!0)])):u.createCommentVNode("",!0)]),_:3},8,["class","type","href","target","rel","disabled","aria-disabled","tabindex","aria-busy","aria-label"]))}}),Te=(t,e)=>{const n=t.__vccOpts||t;for(const[o,a]of e)n[o]=a;return n},gB=Te(mB,[["__scopeId","data-v-b698fdf2"]]),bB=["for"],MB={key:0,class:"ui-input-required","aria-hidden":"true"},vB={key:0,class:"ui-input-icon is-left"},xB=["id","type","role","inputmode","value","placeholder","disabled","readonly","required","autocomplete","name","maxlength","aria-describedby","aria-invalid"],_B=["disabled","aria-label"],wB=["aria-label"],CB={key:4,class:"ui-input-icon is-right"},NB=["id"],LB=["id"],SB=u.defineComponent({inheritAttrs:!1,__name:"UiInput",props:{modelValue:{default:""},type:{default:"text"},label:{default:""},labelHidden:{type:Boolean,default:!1},error:{type:Boolean,default:!1},errorMessage:{default:""},placeholder:{default:""},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},required:{type:Boolean,default:!1},autocomplete:{default:void 0},name:{default:void 0},id:{default:void 0},maxLength:{default:void 0},min:{default:void 0},max:{default:void 0},step:{default:void 0},size:{default:"md"},iconSize:{},shape:{default:"rounded"},desc:{default:""},numberOnly:{type:Boolean,default:!1},allowDecimal:{type:Boolean,default:!1},allowNegative:{type:Boolean,default:!1},decimals:{default:void 0},useComma:{type:Boolean,default:void 0},clearable:{type:Boolean,default:!1},showPasswordToggle:{type:Boolean,default:!1},searchAriaLabel:{default:"검색"}},emits:["update:modelValue","enter","search","clear"],setup(t,{expose:e,emit:n}){const o=t,a=n,r=u.ref(),i=u.ref(!1),c=u.ref(!1),s=u.ref(!1),d=u.computed(()=>o.type==="search"||o.type==="password"&&s.value?"text":o.type),h=u.computed(()=>(o.clearable||o.type==="search")&&!!o.modelValue&&!o.disabled&&!o.readonly),p=u.computed(()=>o.showPasswordToggle&&o.type==="password"&&!o.disabled),f=u.useAttrs(),y=u.computed(()=>{const{class:z,style:ce,...he}=f;return he}),k=u.computed(()=>f.class),m=u.computed(()=>f.style??void 0),g=u.useId(),b=u.computed(()=>o.id||`ui-input-${g}`),M=u.computed(()=>o.desc?`${b.value}-desc`:void 0),x=u.computed(()=>o.errorMessage?`${b.value}-error`:void 0),_=u.computed(()=>o.error||!!o.errorMessage),w=u.computed(()=>x.value||M.value),C=u.computed(()=>{if(_.value)return"true";const z=f["aria-invalid"];if(z!=null)return typeof z=="boolean"||z==="true"||z==="false"||z==="grammar"||z==="spelling"?z:z?"true":"false"}),N=u.computed(()=>{if(o.numberOnly)return o.allowDecimal||o.allowNegative?"decimal":"numeric"}),L=u.computed(()=>{const z=o.decimals;if(z!==void 0&&Number.isInteger(z)&&z>=0)return z}),R=u.computed(()=>o.useComma!==void 0?o.useComma:o.numberOnly),O=z=>{if(!z||z==="-")return z;const ce=z.split(".");return ce[0]=ce[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),ce.join(".")},W=z=>z.replace(/,/g,""),le=u.computed(()=>{if(!R.value)return o.modelValue;const z=String(o.modelValue??"");return O(z)}),ne=z=>{const ce=W(z);if(typeof o.modelValue=="number"){if(ce===""||ce==="-")return ce;const he=parseFloat(ce);if(!Number.isNaN(he))return he}return ce},J=z=>{let ce="0-9";o.allowDecimal&&(ce+="."),o.allowNegative&&(ce+="-");const he=new RegExp(`[^${ce}]`,"g");let re=z.replace(he,"");if(o.allowNegative){const be=re.startsWith("-");re=re.replace(/-/g,""),be&&(re="-"+re)}if(o.allowDecimal){const be=re.indexOf(".");if(be!==-1){const st=re.slice(0,be);let Ue=re.slice(be+1).replace(/\./g,"");L.value!==void 0&&(Ue=Ue.slice(0,L.value)),re=Ue===""&&st===""?"":st+"."+Ue}}return re},A=z=>{const ce=z.trim();if(ce==="")return"";const he=J(ce);if(he===""||he==="-")return he;let re=parseFloat(he);if(Number.isNaN(re))return he;const be=o.min!==void 0?Number(o.min):void 0,st=o.max!==void 0?Number(o.max):void 0,Ue=o.step!==void 0?Number(o.step):void 0;if(be!==void 0&&!Number.isNaN(be)&&(re=Math.max(re,be)),st!==void 0&&!Number.isNaN(st)&&(re=Math.min(re,st)),Ue!==void 0&&Ue>0&&!Number.isNaN(Ue)){const cn=be!==void 0&&!Number.isNaN(be)?be:0;re=cn+Math.round((re-cn)/Ue)*Ue,be!==void 0&&!Number.isNaN(be)&&(re=Math.max(re,be)),st!==void 0&&!Number.isNaN(st)&&(re=Math.min(re,st));const Rt=(String(o.step).split(".")[1]||"").length,Xc=(String(o.min??"").split(".")[1]||"").length,ye=Math.max(Rt,Xc,o.allowDecimal?2:0),sn=L.value,ln=sn!==void 0?Math.min(ye,sn):ye;re=Number(re.toFixed(ln))}return String(re)},te=()=>{i.value=!0},j=z=>{i.value=!1;const ce=z.target;if(!o.numberOnly)return;const he=W(ce.value);if(o.min!==void 0||o.max!==void 0||o.step!==void 0){const re=A(he);R.value?ce.value=O(re):re!==ce.value&&(ce.value=re),a("update:modelValue",ne(re))}else if(R.value){const re=J(he);ce.value=O(re),a("update:modelValue",ne(re))}},Z=z=>{if(o.numberOnly){const ce=W(z.value),he=J(ce);if(R.value){const re=O(he);if(z.value!==re){const be=z.selectionStart??0,st=z.value.slice(0,be).replace(/,/g,"").length;z.value=re;let Ue=0,cn=0;for(let Rt=0;Rt<re.length&&(re[Rt]!==","&&cn++,!(cn>st));Rt++)Ue=Rt+1;z.setSelectionRange(Ue,Ue)}}else he!==z.value&&(z.value=he);a("update:modelValue",ne(he))}else a("update:modelValue",ne(z.value))},S=z=>{c.value||Z(z.target)},D=()=>{c.value=!0},F=z=>{c.value=!1,Z(z.target)},B=z=>{const ce=z.target,he=ne(ce.value);a("enter",he),o.type==="search"&&a("search",he)},ve=()=>{var z;o.disabled||a("search",ne(((z=r.value)==null?void 0:z.value)??""))},wt=()=>{a("update:modelValue",""),a("clear"),u.nextTick(()=>{var z;return(z=r.value)==null?void 0:z.focus()})},Je=()=>{s.value=!s.value,u.nextTick(()=>{var z;return(z=r.value)==null?void 0:z.focus()})};return e({focus:()=>{var z;return(z=r.value)==null?void 0:z.focus()},blur:()=>{var z;return(z=r.value)==null?void 0:z.blur()},el:r}),(z,ce)=>(u.openBlock(),u.createElementBlock("div",{class:u.normalizeClass(["ui-input-outer",[k.value,{"has-desc":!!t.desc&&!t.errorMessage,"has-error":_.value,"has-label":!!(t.label||z.$slots.label)}]]),style:u.normalizeStyle(m.value)},[t.label||z.$slots.label?(u.openBlock(),u.createElementBlock("label",{key:0,for:b.value,class:u.normalizeClass(["ui-input-label",{"is-hidden":t.labelHidden}])},[u.renderSlot(z.$slots,"label",{},()=>[u.createTextVNode(u.toDisplayString(t.label),1)],!0),t.required?(u.openBlock(),u.createElementBlock("span",MB,"*")):u.createCommentVNode("",!0)],10,bB)):u.createCommentVNode("",!0),u.createElementVNode("div",{class:u.normalizeClass(["ui-input-wrap",[`size-${t.size}`,`shape-${t.shape}`,t.iconSize?`icon-size-${t.iconSize}`:null,{"is-disabled":t.disabled,"is-focused":i.value,"is-error":_.value,"has-icon-left":!!z.$slots["icon-left"],"has-icon-right":!!z.$slots["icon-right"]||t.type==="search"||h.value||p.value}]])},[z.$slots["icon-left"]?(u.openBlock(),u.createElementBlock("span",vB,[u.renderSlot(z.$slots,"icon-left",{},void 0,!0)])):u.createCommentVNode("",!0),u.createElementVNode("input",u.mergeProps(y.value,{id:b.value,ref_key:"inputRef",ref:r,class:"ui-input",type:d.value,role:t.type==="search"?"searchbox":void 0,inputmode:N.value,value:le.value,placeholder:t.placeholder,disabled:t.disabled,readonly:t.readonly,required:t.required||void 0,autocomplete:t.autocomplete,name:t.name,maxlength:t.maxLength,"aria-describedby":w.value,"aria-invalid":C.value,onInput:S,onCompositionstart:D,onCompositionend:F,onFocus:te,onBlur:j,onKeydown:u.withKeys(B,["enter"])}),null,16,xB),h.value?(u.openBlock(),u.createElementBlock("button",{key:1,type:"button",class:"ui-input-icon is-right is-clear","aria-label":"입력 삭제",onClick:wt},[...ce[0]||(ce[0]=[u.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true"},[u.createElementVNode("circle",{cx:"12",cy:"12",r:"10",fill:"currentColor"}),u.createElementVNode("path",{d:"M8.5 8.5L15.5 15.5M15.5 8.5L8.5 15.5",stroke:"#fff","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])])):u.createCommentVNode("",!0),t.type==="search"?(u.openBlock(),u.createElementBlock("button",{key:2,type:"button",class:"ui-input-icon is-right is-search",disabled:t.disabled,"aria-label":t.searchAriaLabel,onClick:ve},[...ce[1]||(ce[1]=[u.createElementVNode("i",{class:"icon-search"},null,-1)])],8,_B)):p.value?(u.openBlock(),u.createElementBlock("button",{key:3,type:"button",class:"ui-input-icon is-right is-password-toggle","aria-label":s.value?"비밀번호 숨기기":"비밀번호 표시",onClick:Je},[u.createElementVNode("i",{class:u.normalizeClass(s.value?"icon-eye-off":"icon-eye")},null,2)],8,wB)):z.$slots["icon-right"]?(u.openBlock(),u.createElementBlock("span",CB,[u.renderSlot(z.$slots,"icon-right",{},void 0,!0)])):u.createCommentVNode("",!0)],2),t.errorMessage?(u.openBlock(),u.createElementBlock("p",{key:1,id:x.value,class:"ui-input-error",role:"alert"},u.toDisplayString(t.errorMessage),9,NB)):t.desc?(u.openBlock(),u.createElementBlock("p",{key:2,id:M.value,class:"ui-input-desc"},u.toDisplayString(t.desc),9,LB)):u.createCommentVNode("",!0)],6))}}),EB=Te(SB,[["__scopeId","data-v-7fa6e9b6"]]),IB=["for"],AB={key:0,class:"ui-select-required","aria-hidden":"true"},TB=["id"],DB=["id"],CS="__ui_select_empty__",$B=u.defineComponent({__name:"UiSelect",props:{modelValue:{default:""},options:{},placeholder:{default:"선택"},label:{default:""},labelHidden:{type:Boolean,default:!1},required:{type:Boolean,default:!1},id:{default:void 0},disabled:{type:Boolean,default:!1},size:{default:"md"},shape:{default:"rounded"},error:{type:Boolean,default:!1},errorMessage:{default:""},desc:{default:""}},emits:["update:modelValue","change"],setup(t,{expose:e,emit:n}){const o=t,a=n,r=u.useId(),i=u.computed(()=>o.id||`ui-select-${r}`),c=u.computed(()=>o.desc?`${i.value}-desc`:void 0),s=u.computed(()=>o.errorMessage?`${i.value}-error`:void 0),d=u.computed(()=>o.error||!!o.errorMessage),h=u.computed(()=>s.value||c.value),p=u.computed(()=>o.options.some(g=>g.value==="")),f=g=>g===""?CS:String(g),y=g=>{if(g===CS)return"";const b=o.options.find(M=>String(M.value)===g);return b?b.value:g},k=u.computed(()=>{const g=o.modelValue;return g===""||g===void 0?p.value?CS:"":String(g)}),m=g=>{const b=y(g);a("update:modelValue",b),a("change",b)};return e({focus:()=>{const g=document.getElementById(i.value);g==null||g.focus()}}),(g,b)=>(u.openBlock(),u.createElementBlock("div",{class:u.normalizeClass(["ui-select-outer",{"has-label":!!t.label}])},[t.label?(u.openBlock(),u.createElementBlock("label",{key:0,for:i.value,class:u.normalizeClass(["ui-select-label",{"is-hidden":t.labelHidden}])},[u.createTextVNode(u.toDisplayString(t.label)+" ",1),t.required?(u.openBlock(),u.createElementBlock("span",AB,"*")):u.createCommentVNode("",!0)],10,IB)):u.createCommentVNode("",!0),u.createVNode(u.unref(q.SelectRoot),{"model-value":k.value,disabled:t.disabled,"onUpdate:modelValue":m},{default:u.withCtx(()=>[u.createVNode(u.unref(q.SelectTrigger),{id:i.value,class:u.normalizeClass(["ui-select-trigger",[`size-${t.size}`,`shape-${t.shape}`,{"is-disabled":t.disabled,"is-error":d.value}]]),"aria-required":t.required||void 0,"aria-invalid":d.value?"true":void 0,"aria-describedby":h.value},{default:u.withCtx(()=>[u.createVNode(u.unref(q.SelectValue),{placeholder:t.placeholder,class:"ui-select-value"},null,8,["placeholder"]),u.createVNode(u.unref(q.SelectIcon),{class:"ui-select-icon"},{default:u.withCtx(()=>[...b[0]||(b[0]=[u.createElementVNode("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true"},[u.createElementVNode("path",{d:"M4 6l4 4 4-4",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])]),_:1})]),_:1},8,["id","class","aria-required","aria-invalid","aria-describedby"]),u.createVNode(u.unref(q.SelectPortal),null,{default:u.withCtx(()=>[u.createVNode(u.unref(q.SelectContent),{class:"ui-select-content",position:"popper",side:"bottom","side-offset":4},{default:u.withCtx(()=>[u.createVNode(u.unref(q.SelectViewport),null,{default:u.withCtx(()=>[(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(t.options,M=>(u.openBlock(),u.createBlock(u.unref(q.SelectItem),{key:M.value,value:f(M.value),disabled:M.disabled,class:"ui-select-item"},{default:u.withCtx(()=>[u.createVNode(u.unref(q.SelectItemText),null,{default:u.withCtx(()=>[u.createTextVNode(u.toDisplayString(M.label),1)]),_:2},1024)]),_:2},1032,["value","disabled"]))),128))]),_:1})]),_:1})]),_:1})]),_:1},8,["model-value","disabled"]),t.errorMessage?(u.openBlock(),u.createElementBlock("p",{key:1,id:s.value,class:"ui-select-error",role:"alert"},u.toDisplayString(t.errorMessage),9,TB)):t.desc?(u.openBlock(),u.createElementBlock("p",{key:2,id:c.value,class:"ui-select-desc"},u.toDisplayString(t.desc),9,DB)):u.createCommentVNode("",!0)],2))}}),uc=Te($B,[["__scopeId","data-v-7f744823"]]),zB={key:0,class:"ui-modal-header"},RB={class:"ui-modal-header-actions"},OB=["aria-label"],BB={key:0,width:"18",height:"18",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true"},qB={key:1,width:"18",height:"18",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true"},PB={class:"ui-modal-body"},FB={key:2,class:"ui-modal-footer"},PD=u.defineComponent({__name:"UiModal",props:{open:{type:Boolean,default:!1},title:{default:""},size:{default:"md"},showClose:{type:Boolean,default:!0},showOverlay:{type:Boolean,default:!0},showFullscreen:{type:Boolean,default:!1},closeOnOverlayClick:{type:Boolean,default:!0},closeOnEscape:{type:Boolean,default:!0},customClass:{default:""},maxWidth:{default:""}},emits:["update:open","close"],setup(t,{emit:e}){const n=t,o=e,a=p=>{o("update:open",p),p||o("close")},r=u.ref(!1),i=()=>{r.value=!r.value};u.watch(()=>n.open,p=>{p||(r.value=!1)});const c=p=>{n.closeOnEscape||p.preventDefault()},s=p=>{n.closeOnOverlayClick||p.preventDefault()},d=p=>{n.closeOnOverlayClick||p.preventDefault()},h=u.computed(()=>r.value||!n.maxWidth?{}:{maxWidth:n.maxWidth});return(p,f)=>(u.openBlock(),u.createBlock(u.unref(q.DialogRoot),{open:t.open,"onUpdate:open":a},{default:u.withCtx(()=>[u.createVNode(u.unref(q.DialogPortal),null,{default:u.withCtx(()=>[t.showOverlay?(u.openBlock(),u.createBlock(u.unref(q.DialogOverlay),{key:0,class:"ui-modal-overlay"})):u.createCommentVNode("",!0),u.createVNode(u.unref(q.DialogContent),{class:u.normalizeClass(["ui-modal-content",[`size-${t.size}`,t.customClass,{"is-fullscreen":r.value}]]),style:u.normalizeStyle(h.value),onEscapeKeyDown:c,onPointerDownOutside:s,onInteractOutside:d},{default:u.withCtx(()=>[p.$slots.header||t.title||t.showClose||t.showFullscreen?(u.openBlock(),u.createElementBlock("header",zB,[u.renderSlot(p.$slots,"header",{},()=>[t.title?(u.openBlock(),u.createBlock(u.unref(q.DialogTitle),{key:0,class:"ui-modal-title"},{default:u.withCtx(()=>[u.createTextVNode(u.toDisplayString(t.title),1)]),_:1})):(u.openBlock(),u.createBlock(u.unref(q.DialogTitle),{key:1,class:"ui-modal-sr-only"},{default:u.withCtx(()=>[...f[0]||(f[0]=[u.createTextVNode("모달",-1)])]),_:1})),u.createElementVNode("div",RB,[t.showFullscreen?(u.openBlock(),u.createElementBlock("button",{key:0,type:"button",class:"ui-modal-fullscreen-toggle","aria-label":r.value?"축소":"전체화면",onClick:i},[r.value?(u.openBlock(),u.createElementBlock("svg",qB,[...f[2]||(f[2]=[u.createElementVNode("path",{d:"M9 4v5H4M15 4v5h5M9 20v-5H4M15 20v-5h5",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])])):(u.openBlock(),u.createElementBlock("svg",BB,[...f[1]||(f[1]=[u.createElementVNode("path",{d:"M4 9V4h5M20 9V4h-5M4 15v5h5M20 15v5h-5",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])]))],8,OB)):u.createCommentVNode("",!0),t.showClose?(u.openBlock(),u.createBlock(u.unref(q.DialogClose),{key:1,class:"ui-modal-close","aria-label":"닫기"},{default:u.withCtx(()=>[...f[3]||(f[3]=[u.createElementVNode("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true"},[u.createElementVNode("path",{d:"M6 6L18 18M18 6L6 18",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])]),_:1})):u.createCommentVNode("",!0)])])])):u.createCommentVNode("",!0),!p.$slots.header&&!t.title&&!t.showClose&&!t.showFullscreen?(u.openBlock(),u.createBlock(u.unref(q.DialogTitle),{key:1,class:"ui-modal-sr-only"},{default:u.withCtx(()=>[...f[4]||(f[4]=[u.createTextVNode("모달",-1)])]),_:1})):u.createCommentVNode("",!0),u.createElementVNode("div",PB,[u.renderSlot(p.$slots,"default")]),p.$slots.footer?(u.openBlock(),u.createElementBlock("footer",FB,[u.renderSlot(p.$slots,"footer")])):u.createCommentVNode("",!0)]),_:3},8,["class","style"])]),_:3})]),_:3},8,["open"]))}}),VB={class:"ui-empty",role:"status","aria-live":"polite"},HB={class:"ui-empty-title"},jB={key:1,class:"ui-empty-desc"},UB={key:2,class:"ui-empty-action"},WB=u.defineComponent({__name:"UiEmpty",props:{icon:{default:void 0},title:{default:"데이터가 없습니다."},description:{default:void 0}},setup(t){return(e,n)=>(u.openBlock(),u.createElementBlock("div",VB,[t.icon?(u.openBlock(),u.createElementBlock("i",{key:0,class:u.normalizeClass([[t.icon,"size-24"],"ui-empty-icon"]),"aria-hidden":"true"},null,2)):u.createCommentVNode("",!0),u.createElementVNode("p",HB,u.toDisplayString(t.title),1),t.description?(u.openBlock(),u.createElementBlock("p",jB,u.toDisplayString(t.description),1)):u.createCommentVNode("",!0),e.$slots.default?(u.openBlock(),u.createElementBlock("div",UB,[u.renderSlot(e.$slots,"default",{},void 0,!0)])):u.createCommentVNode("",!0)]))}}),FD=Te(WB,[["__scopeId","data-v-c90c8029"]]),GB={key:0,class:"ui-table-scroll-hint"},KB=["aria-sort"],ZB={key:0,class:"ui-table-filter"},XB={class:"ui-table-filter-label"},JB=["onClick"],YB={key:0},QB=["colspan"],eq=["tabindex","role","aria-pressed","onClick","onKeydown"],tq=u.defineComponent({__name:"UiTable",props:{columns:{},data:{},stickyHeader:{type:Boolean,default:!1},maxHeight:{default:void 0},emptyText:{default:"데이터가 없습니다."},emptyIcon:{default:void 0},emptyDescription:{default:void 0},clickable:{type:Boolean,default:!1},size:{default:"md"},selectedRowKey:{default:void 0},selectedRowValue:{default:void 0},bordered:{type:Boolean,default:!0}},emits:["row-click","filter-change"],setup(t,{emit:e}){const n=t,o=u.ref(null),a=u.ref(!1),r=u.ref(!1);function i(){o.value&&(a.value=o.value.scrollWidth>o.value.clientWidth)}function c(){!r.value&&a.value&&(r.value=!0)}let s=null;const d=u.ref(typeof window<"u"?window.innerWidth:9999);let h=null;function p(){h&&clearTimeout(h),h=setTimeout(()=>{d.value=window.innerWidth},150)}u.onMounted(()=>{window.addEventListener("resize",p),o.value&&(typeof ResizeObserver<"u"&&(s=new ResizeObserver(()=>{i(),a.value||(r.value=!1)}),s.observe(o.value)),i())}),u.onUnmounted(()=>{window.removeEventListener("resize",p),h&&clearTimeout(h),s==null||s.disconnect()});const f=u.computed(()=>n.columns.filter(A=>!A.hideBelow||d.value>A.hideBelow)),y=u.computed(()=>{let A=0,te=!1;for(const j of f.value)if(j.width){const Z=parseInt(j.width);isNaN(Z)||(A+=Z,te=!0)}return te&&A>0?`${A}px`:void 0}),k=u.ref(null),m=u.computed(()=>!!n.selectedRowKey&&n.selectedRowValue!==void 0),g=A=>m.value?A[n.selectedRowKey]===n.selectedRowValue:n.clickable&&k.value===A,b=u.ref({key:"",order:""}),M=A=>A.sortable===!0,x=A=>b.value.key===A?b.value.order:"",_=A=>{if(!M(A))return;const te=x(A.key);return te==="asc"?"ascending":te==="desc"?"descending":"none"},w=A=>{if(M(A)){if(b.value.key!==A.key){b.value={key:A.key,order:"asc"};return}if(b.value.order==="asc"){b.value.order="desc";return}b.value={key:"",order:""}}},C=(A,te)=>{const j=A??"";if(te==="string")return String(j);if(te==="number"){const D=Number(String(j).replaceAll(",",""));return Number.isNaN(D)?Number.NEGATIVE_INFINITY:D}if(te==="date"){const D=Date.parse(String(j));return Number.isNaN(D)?Number.NEGATIVE_INFINITY:D}const Z=Number(String(j).replaceAll(",",""));if(!Number.isNaN(Z))return Z;const S=Date.parse(String(j));return Number.isNaN(S)?String(j):S},N=u.computed(()=>{let A=[...n.data];const te=R.value;for(const[D,F]of Object.entries(te))F&&(A=A.filter(B=>String(B[D])===F));const{key:j,order:Z}=b.value;if(!j||!Z)return A;const S=n.columns.find(D=>D.key===j);return S?A.sort((D,F)=>{const B=C(D[j],S.sortType??"auto"),ve=C(F[j],S.sortType??"auto"),wt=Z==="asc"?1:-1;return typeof B=="string"&&typeof ve=="string"?wt*B.localeCompare(ve,"ko"):B===ve?0:wt*(B>ve?1:-1)}):A});u.watch(()=>n.columns,A=>{const te=b.value.key;if(!te)return;const j=A.find(Z=>Z.key===te);(!j||!M(j))&&(b.value={key:"",order:""})},{deep:!0});const L=e,R=u.ref({}),O=A=>A.filterable===!0&&A.filterOptions&&A.filterOptions.length>0,W=A=>R.value[A]??"",le=(A,te)=>{const j=String(te);j===""?delete R.value[A.key]:R.value[A.key]=j,L("filter-change",{...R.value})},ne=(A,te,j)=>{(A.key==="Enter"||A.key===" "||A.key==="Spacebar")&&(A.preventDefault(),J(te,j))},J=(A,te)=>{m.value||(k.value=A),L("row-click",A,te)};return u.watch(()=>n.data,()=>{m.value||(k.value=null),u.nextTick(i)}),(A,te)=>(u.openBlock(),u.createElementBlock("div",{ref_key:"wrapRef",ref:o,class:u.normalizeClass(["ui-table-wrap",[{"is-scrollable":!!t.maxHeight,"is-borderless":!t.bordered,"is-overflowing":a.value},t.size==="sm"?"is-sm":""]]),style:u.normalizeStyle(t.maxHeight?{maxHeight:t.maxHeight}:void 0),onScroll:c},[u.createVNode(u.Transition,{name:"scroll-hint-fade"},{default:u.withCtx(()=>[a.value&&!r.value?(u.openBlock(),u.createElementBlock("div",GB," ← 스크롤하여 더 보기 → ")):u.createCommentVNode("",!0)]),_:1}),u.createElementVNode("table",{class:"ui-table",style:u.normalizeStyle(y.value?{minWidth:y.value}:void 0)},[u.createElementVNode("colgroup",null,[(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(f.value,j=>(u.openBlock(),u.createElementBlock("col",{key:j.key,style:u.normalizeStyle(j.width?{width:j.width}:void 0)},null,4))),128))]),u.createElementVNode("thead",{class:u.normalizeClass({"is-sticky":t.stickyHeader})},[u.createElementVNode("tr",null,[(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(f.value,(j,Z)=>(u.openBlock(),u.createElementBlock("th",{key:j.key,class:u.normalizeClass({"is-last":Z===f.value.length-1,"is-sortable":M(j)}),style:u.normalizeStyle({textAlign:j.headerAlign||"center"}),"aria-sort":_(j)},[u.renderSlot(A.$slots,`header-${j.key}`,{column:j,isSortable:M(j),sortOrder:x(j.key),onSort:()=>w(j)},()=>[O(j)?(u.openBlock(),u.createElementBlock("div",ZB,[u.createElementVNode("span",XB,u.toDisplayString(j.label),1),u.createVNode(uc,{"model-value":W(j.key),options:j.filterOptions,size:"xs",onChange:S=>le(j,S)},null,8,["model-value","options","onChange"])])):M(j)?(u.openBlock(),u.createElementBlock("button",{key:1,type:"button",class:"ui-table-sort-btn",onClick:S=>w(j)},[u.createElementVNode("span",null,u.toDisplayString(j.label),1),u.createElementVNode("span",{class:u.normalizeClass(["ui-table-sort-mark",{"is-active":!!x(j.key),"is-desc":x(j.key)==="desc"}]),"aria-hidden":"true"},"▲",2)],8,JB)):(u.openBlock(),u.createElementBlock(u.Fragment,{key:2},[u.createTextVNode(u.toDisplayString(j.label),1)],64))],!0)],14,KB))),128))])],2),u.createElementVNode("tbody",null,[!t.data||t.data.length===0?(u.openBlock(),u.createElementBlock("tr",YB,[u.createElementVNode("td",{colspan:f.value.length,class:"ui-table-empty"},[u.renderSlot(A.$slots,"empty",{},()=>[u.createVNode(FD,{icon:t.emptyIcon,title:t.emptyText,description:t.emptyDescription},null,8,["icon","title","description"])],!0)],8,QB)])):(u.openBlock(!0),u.createElementBlock(u.Fragment,{key:1},u.renderList(N.value,(j,Z)=>(u.openBlock(),u.createElementBlock("tr",{key:Z,class:u.normalizeClass({"is-clickable":t.clickable,"is-selected":g(j)}),tabindex:t.clickable?0:void 0,role:t.clickable?"button":void 0,"aria-pressed":t.clickable&&g(j)?"true":void 0,onClick:S=>t.clickable&&J(j,Z),onKeydown:S=>t.clickable&&ne(S,j,Z)},[(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(f.value,(S,D)=>(u.openBlock(),u.createElementBlock("td",{key:S.key,class:u.normalizeClass({"is-last":D===f.value.length-1}),style:u.normalizeStyle({textAlign:S.align||"center"})},[u.renderSlot(A.$slots,`cell-${S.key}`,{row:j,value:j[S.key],index:Z},()=>[u.createTextVNode(u.toDisplayString(j[S.key]),1)],!0)],6))),128))],42,eq))),128))])],4)],38))}}),nq=Te(tq,[["__scopeId","data-v-5b41aafe"]]);/**
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("vue"),q=require("radix-vue"),qe=require("@internationalized/date"),pB={key:0,class:"ui-button-spinner","aria-hidden":"true"},fB={key:1,class:"ui-button-icon"},yB={key:2,class:"ui-button-text"},kB={key:3,class:"ui-button-icon"},mB=u.defineComponent({__name:"UiButton",props:{variant:{default:"primary"},size:{default:"md"},iconSize:{},shape:{default:"rounded"},as:{default:"button"},type:{default:"button"},href:{},target:{},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},fullWidth:{type:Boolean,default:!1},iconOnly:{type:Boolean,default:!1},ariaLabel:{}},emits:["click"],setup(t,{expose:e,emit:n}){const o=/^\s*(?:javascript|data|vbscript|file):/i,a=h=>{if(!h)return;const p=h.trim();if(!o.test(p))return p},r=t,i=n,c=u.computed(()=>a(r.href)),s=h=>{if(r.disabled||r.loading){h.preventDefault(),h.stopPropagation();return}i("click",h)},d=u.ref(null);return e({focus:()=>{var h;return(h=d.value)==null?void 0:h.focus()},blur:()=>{var h;return(h=d.value)==null?void 0:h.blur()},el:d}),(h,p)=>(u.openBlock(),u.createBlock(u.resolveDynamicComponent(t.as),{ref_key:"rootEl",ref:d,class:u.normalizeClass(["ui-button",[`variant-${t.variant}`,`size-${t.size}`,`shape-${t.shape}`,t.iconSize?`icon-size-${t.iconSize}`:null,{"is-disabled":t.disabled,"is-loading":t.loading,"is-full":t.fullWidth,"is-icon-only":t.iconOnly}]]),type:t.as==="button"?t.type:void 0,href:t.as==="a"?c.value:void 0,target:t.as==="a"?t.target:void 0,rel:t.as==="a"&&t.target==="_blank"?"noopener noreferrer":void 0,disabled:t.as==="button"&&(t.disabled||t.loading)?!0:void 0,"aria-disabled":t.as==="a"&&(t.disabled||t.loading)?"true":void 0,tabindex:t.as==="a"&&(t.disabled||t.loading)?-1:void 0,"aria-busy":t.loading||void 0,"aria-label":t.ariaLabel,onClick:s},{default:u.withCtx(()=>[t.loading?(u.openBlock(),u.createElementBlock("span",pB)):h.$slots["icon-left"]?(u.openBlock(),u.createElementBlock("span",fB,[u.renderSlot(h.$slots,"icon-left",{},void 0,!0)])):u.createCommentVNode("",!0),h.$slots.default&&!t.iconOnly?(u.openBlock(),u.createElementBlock("span",yB,[u.renderSlot(h.$slots,"default",{},void 0,!0)])):u.createCommentVNode("",!0),h.$slots["icon-right"]&&!t.loading?(u.openBlock(),u.createElementBlock("span",kB,[u.renderSlot(h.$slots,"icon-right",{},void 0,!0)])):u.createCommentVNode("",!0)]),_:3},8,["class","type","href","target","rel","disabled","aria-disabled","tabindex","aria-busy","aria-label"]))}}),Te=(t,e)=>{const n=t.__vccOpts||t;for(const[o,a]of e)n[o]=a;return n},gB=Te(mB,[["__scopeId","data-v-b698fdf2"]]),bB=["for"],MB={key:0,class:"ui-input-required","aria-hidden":"true"},vB={key:0,class:"ui-input-icon is-left"},xB=["id","type","role","inputmode","value","placeholder","disabled","readonly","required","autocomplete","name","maxlength","aria-describedby","aria-invalid"],_B=["disabled","aria-label"],wB=["aria-label"],CB={key:4,class:"ui-input-icon is-right"},NB=["id"],LB=["id"],SB=u.defineComponent({inheritAttrs:!1,__name:"UiInput",props:{modelValue:{default:""},type:{default:"text"},label:{default:""},labelHidden:{type:Boolean,default:!1},error:{type:Boolean,default:!1},errorMessage:{default:""},placeholder:{default:""},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},required:{type:Boolean,default:!1},autocomplete:{default:void 0},name:{default:void 0},id:{default:void 0},maxLength:{default:void 0},min:{default:void 0},max:{default:void 0},step:{default:void 0},size:{default:"md"},iconSize:{},shape:{default:"rounded"},desc:{default:""},numberOnly:{type:Boolean,default:!1},allowDecimal:{type:Boolean,default:!1},allowNegative:{type:Boolean,default:!1},decimals:{default:void 0},useComma:{type:Boolean,default:void 0},clearable:{type:Boolean,default:!1},showPasswordToggle:{type:Boolean,default:!1},searchAriaLabel:{default:"검색"}},emits:["update:modelValue","enter","search","clear"],setup(t,{expose:e,emit:n}){const o=t,a=n,r=u.ref(),i=u.ref(!1),c=u.ref(!1),s=u.ref(!1),d=u.computed(()=>o.type==="search"||o.type==="password"&&s.value?"text":o.type),h=u.computed(()=>(o.clearable||o.type==="search")&&!!o.modelValue&&!o.disabled&&!o.readonly),p=u.computed(()=>o.showPasswordToggle&&o.type==="password"&&!o.disabled),f=u.useAttrs(),y=u.computed(()=>{const{class:z,style:ce,...he}=f;return he}),k=u.computed(()=>f.class),m=u.computed(()=>f.style??void 0),g=u.useId(),b=u.computed(()=>o.id||`ui-input-${g}`),M=u.computed(()=>o.desc?`${b.value}-desc`:void 0),x=u.computed(()=>o.errorMessage?`${b.value}-error`:void 0),_=u.computed(()=>o.error||!!o.errorMessage),w=u.computed(()=>x.value||M.value),C=u.computed(()=>{if(_.value)return"true";const z=f["aria-invalid"];if(z!=null)return typeof z=="boolean"||z==="true"||z==="false"||z==="grammar"||z==="spelling"?z:z?"true":"false"}),N=u.computed(()=>{if(o.numberOnly)return o.allowDecimal||o.allowNegative?"decimal":"numeric"}),L=u.computed(()=>{const z=o.decimals;if(z!==void 0&&Number.isInteger(z)&&z>=0)return z}),R=u.computed(()=>o.useComma!==void 0?o.useComma:o.numberOnly),O=z=>{if(!z||z==="-")return z;const ce=z.split(".");return ce[0]=ce[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),ce.join(".")},W=z=>z.replace(/,/g,""),le=u.computed(()=>{if(!R.value)return o.modelValue;const z=String(o.modelValue??"");return O(z)}),ne=z=>{const ce=W(z);if(typeof o.modelValue=="number"){if(ce===""||ce==="-")return ce;const he=parseFloat(ce);if(!Number.isNaN(he))return he}return ce},J=z=>{let ce="0-9";o.allowDecimal&&(ce+="."),o.allowNegative&&(ce+="-");const he=new RegExp(`[^${ce}]`,"g");let re=z.replace(he,"");if(o.allowNegative){const be=re.startsWith("-");re=re.replace(/-/g,""),be&&(re="-"+re)}if(o.allowDecimal){const be=re.indexOf(".");if(be!==-1){const st=re.slice(0,be);let Ue=re.slice(be+1).replace(/\./g,"");L.value!==void 0&&(Ue=Ue.slice(0,L.value)),re=Ue===""&&st===""?"":st+"."+Ue}}return re},A=z=>{const ce=z.trim();if(ce==="")return"";const he=J(ce);if(he===""||he==="-")return he;let re=parseFloat(he);if(Number.isNaN(re))return he;const be=o.min!==void 0?Number(o.min):void 0,st=o.max!==void 0?Number(o.max):void 0,Ue=o.step!==void 0?Number(o.step):void 0;if(be!==void 0&&!Number.isNaN(be)&&(re=Math.max(re,be)),st!==void 0&&!Number.isNaN(st)&&(re=Math.min(re,st)),Ue!==void 0&&Ue>0&&!Number.isNaN(Ue)){const cn=be!==void 0&&!Number.isNaN(be)?be:0;re=cn+Math.round((re-cn)/Ue)*Ue,be!==void 0&&!Number.isNaN(be)&&(re=Math.max(re,be)),st!==void 0&&!Number.isNaN(st)&&(re=Math.min(re,st));const Rt=(String(o.step).split(".")[1]||"").length,Xc=(String(o.min??"").split(".")[1]||"").length,ye=Math.max(Rt,Xc,o.allowDecimal?2:0),sn=L.value,ln=sn!==void 0?Math.min(ye,sn):ye;re=Number(re.toFixed(ln))}return String(re)},te=()=>{i.value=!0},j=z=>{i.value=!1;const ce=z.target;if(!o.numberOnly)return;const he=W(ce.value);if(o.min!==void 0||o.max!==void 0||o.step!==void 0){const re=A(he);R.value?ce.value=O(re):re!==ce.value&&(ce.value=re),a("update:modelValue",ne(re))}else if(R.value){const re=J(he);ce.value=O(re),a("update:modelValue",ne(re))}},Z=z=>{if(o.numberOnly){const ce=W(z.value),he=J(ce);if(R.value){const re=O(he);if(z.value!==re){const be=z.selectionStart??0,st=z.value.slice(0,be).replace(/,/g,"").length;z.value=re;let Ue=0,cn=0;for(let Rt=0;Rt<re.length&&(re[Rt]!==","&&cn++,!(cn>st));Rt++)Ue=Rt+1;z.setSelectionRange(Ue,Ue)}}else he!==z.value&&(z.value=he);a("update:modelValue",ne(he))}else a("update:modelValue",ne(z.value))},S=z=>{c.value||Z(z.target)},D=()=>{c.value=!0},F=z=>{c.value=!1,Z(z.target)},B=z=>{const ce=z.target,he=ne(ce.value);a("enter",he),o.type==="search"&&a("search",he)},ve=()=>{var z;o.disabled||a("search",ne(((z=r.value)==null?void 0:z.value)??""))},wt=()=>{a("update:modelValue",""),a("clear"),u.nextTick(()=>{var z;return(z=r.value)==null?void 0:z.focus()})},Je=()=>{s.value=!s.value,u.nextTick(()=>{var z;return(z=r.value)==null?void 0:z.focus()})};return e({focus:()=>{var z;return(z=r.value)==null?void 0:z.focus()},blur:()=>{var z;return(z=r.value)==null?void 0:z.blur()},el:r}),(z,ce)=>(u.openBlock(),u.createElementBlock("div",{class:u.normalizeClass(["ui-input-outer",[k.value,{"has-desc":!!t.desc&&!t.errorMessage,"has-error":_.value,"has-label":!!(t.label||z.$slots.label)}]]),style:u.normalizeStyle(m.value)},[t.label||z.$slots.label?(u.openBlock(),u.createElementBlock("label",{key:0,for:b.value,class:u.normalizeClass(["ui-input-label",{"is-hidden":t.labelHidden}])},[u.renderSlot(z.$slots,"label",{},()=>[u.createTextVNode(u.toDisplayString(t.label),1)],!0),t.required?(u.openBlock(),u.createElementBlock("span",MB,"*")):u.createCommentVNode("",!0)],10,bB)):u.createCommentVNode("",!0),u.createElementVNode("div",{class:u.normalizeClass(["ui-input-wrap",[`size-${t.size}`,`shape-${t.shape}`,t.iconSize?`icon-size-${t.iconSize}`:null,{"is-disabled":t.disabled,"is-focused":i.value,"is-error":_.value,"has-icon-left":!!z.$slots["icon-left"],"has-icon-right":!!z.$slots["icon-right"]||t.type==="search"||h.value||p.value}]])},[z.$slots["icon-left"]?(u.openBlock(),u.createElementBlock("span",vB,[u.renderSlot(z.$slots,"icon-left",{},void 0,!0)])):u.createCommentVNode("",!0),u.createElementVNode("input",u.mergeProps(y.value,{id:b.value,ref_key:"inputRef",ref:r,class:"ui-input",type:d.value,role:t.type==="search"?"searchbox":void 0,inputmode:N.value,value:le.value,placeholder:t.placeholder,disabled:t.disabled,readonly:t.readonly,required:t.required||void 0,autocomplete:t.autocomplete,name:t.name,maxlength:t.maxLength,"aria-describedby":w.value,"aria-invalid":C.value,onInput:S,onCompositionstart:D,onCompositionend:F,onFocus:te,onBlur:j,onKeydown:u.withKeys(B,["enter"])}),null,16,xB),h.value?(u.openBlock(),u.createElementBlock("button",{key:1,type:"button",class:"ui-input-icon is-right is-clear","aria-label":"입력 삭제",onClick:wt},[...ce[0]||(ce[0]=[u.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true"},[u.createElementVNode("circle",{cx:"12",cy:"12",r:"10",fill:"currentColor"}),u.createElementVNode("path",{d:"M8.5 8.5L15.5 15.5M15.5 8.5L8.5 15.5",stroke:"#fff","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])])):u.createCommentVNode("",!0),t.type==="search"?(u.openBlock(),u.createElementBlock("button",{key:2,type:"button",class:"ui-input-icon is-right is-search",disabled:t.disabled,"aria-label":t.searchAriaLabel,onClick:ve},[...ce[1]||(ce[1]=[u.createElementVNode("i",{class:"icon-search"},null,-1)])],8,_B)):p.value?(u.openBlock(),u.createElementBlock("button",{key:3,type:"button",class:"ui-input-icon is-right is-password-toggle","aria-label":s.value?"비밀번호 숨기기":"비밀번호 표시",onClick:Je},[u.createElementVNode("i",{class:u.normalizeClass(s.value?"icon-eye-off":"icon-eye")},null,2)],8,wB)):z.$slots["icon-right"]?(u.openBlock(),u.createElementBlock("span",CB,[u.renderSlot(z.$slots,"icon-right",{},void 0,!0)])):u.createCommentVNode("",!0)],2),t.errorMessage?(u.openBlock(),u.createElementBlock("p",{key:1,id:x.value,class:"ui-input-error",role:"alert"},u.toDisplayString(t.errorMessage),9,NB)):t.desc?(u.openBlock(),u.createElementBlock("p",{key:2,id:M.value,class:"ui-input-desc"},u.toDisplayString(t.desc),9,LB)):u.createCommentVNode("",!0)],6))}}),EB=Te(SB,[["__scopeId","data-v-7fa6e9b6"]]),IB=["for"],AB={key:0,class:"ui-select-required","aria-hidden":"true"},TB=["id"],DB=["id"],CS="__ui_select_empty__",$B=u.defineComponent({__name:"UiSelect",props:{modelValue:{default:""},options:{},placeholder:{default:"선택"},label:{default:""},labelHidden:{type:Boolean,default:!1},required:{type:Boolean,default:!1},id:{default:void 0},disabled:{type:Boolean,default:!1},size:{default:"md"},shape:{default:"rounded"},error:{type:Boolean,default:!1},errorMessage:{default:""},desc:{default:""}},emits:["update:modelValue","change"],setup(t,{expose:e,emit:n}){const o=t,a=n,r=u.useId(),i=u.computed(()=>o.id||`ui-select-${r}`),c=u.computed(()=>o.desc?`${i.value}-desc`:void 0),s=u.computed(()=>o.errorMessage?`${i.value}-error`:void 0),d=u.computed(()=>o.error||!!o.errorMessage),h=u.computed(()=>s.value||c.value),p=u.computed(()=>o.options.some(g=>g.value==="")),f=g=>g===""?CS:String(g),y=g=>{if(g===CS)return"";const b=o.options.find(M=>String(M.value)===g);return b?b.value:g},k=u.computed(()=>{const g=o.modelValue;return g===""||g===void 0?p.value?CS:"":String(g)}),m=g=>{const b=y(g);a("update:modelValue",b),a("change",b)};return e({focus:()=>{const g=document.getElementById(i.value);g==null||g.focus()}}),(g,b)=>(u.openBlock(),u.createElementBlock("div",{class:u.normalizeClass(["ui-select-outer",{"has-label":!!t.label}])},[t.label?(u.openBlock(),u.createElementBlock("label",{key:0,for:i.value,class:u.normalizeClass(["ui-select-label",{"is-hidden":t.labelHidden}])},[u.createTextVNode(u.toDisplayString(t.label)+" ",1),t.required?(u.openBlock(),u.createElementBlock("span",AB,"*")):u.createCommentVNode("",!0)],10,IB)):u.createCommentVNode("",!0),u.createVNode(u.unref(q.SelectRoot),{"model-value":k.value,disabled:t.disabled,"onUpdate:modelValue":m},{default:u.withCtx(()=>[u.createVNode(u.unref(q.SelectTrigger),{id:i.value,class:u.normalizeClass(["ui-select-trigger",[`size-${t.size}`,`shape-${t.shape}`,{"is-disabled":t.disabled,"is-error":d.value}]]),"aria-required":t.required||void 0,"aria-invalid":d.value?"true":void 0,"aria-describedby":h.value},{default:u.withCtx(()=>[u.createVNode(u.unref(q.SelectValue),{placeholder:t.placeholder,class:"ui-select-value"},null,8,["placeholder"]),u.createVNode(u.unref(q.SelectIcon),{class:"ui-select-icon"},{default:u.withCtx(()=>[...b[0]||(b[0]=[u.createElementVNode("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true"},[u.createElementVNode("path",{d:"M4 6l4 4 4-4",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"})],-1)])]),_:1})]),_:1},8,["id","class","aria-required","aria-invalid","aria-describedby"]),u.createVNode(u.unref(q.SelectPortal),null,{default:u.withCtx(()=>[u.createVNode(u.unref(q.SelectContent),{class:"ui-select-content",position:"popper",side:"bottom","side-offset":4},{default:u.withCtx(()=>[u.createVNode(u.unref(q.SelectViewport),null,{default:u.withCtx(()=>[(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(t.options,M=>(u.openBlock(),u.createBlock(u.unref(q.SelectItem),{key:M.value,value:f(M.value),disabled:M.disabled,class:"ui-select-item"},{default:u.withCtx(()=>[u.createVNode(u.unref(q.SelectItemText),null,{default:u.withCtx(()=>[u.createTextVNode(u.toDisplayString(M.label),1)]),_:2},1024)]),_:2},1032,["value","disabled"]))),128))]),_:1})]),_:1})]),_:1})]),_:1},8,["model-value","disabled"]),t.errorMessage?(u.openBlock(),u.createElementBlock("p",{key:1,id:s.value,class:"ui-select-error",role:"alert"},u.toDisplayString(t.errorMessage),9,TB)):t.desc?(u.openBlock(),u.createElementBlock("p",{key:2,id:c.value,class:"ui-select-desc"},u.toDisplayString(t.desc),9,DB)):u.createCommentVNode("",!0)],2))}}),uc=Te($B,[["__scopeId","data-v-7f744823"]]),zB={key:0,class:"ui-modal-header"},RB={class:"ui-modal-header-actions"},OB=["aria-label"],BB={key:0,width:"18",height:"18",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true"},qB={key:1,width:"18",height:"18",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true"},PB={class:"ui-modal-body"},FB={key:2,class:"ui-modal-footer"},PD=u.defineComponent({__name:"UiModal",props:{open:{type:Boolean,default:!1},title:{default:""},size:{default:"md"},showClose:{type:Boolean,default:!0},showOverlay:{type:Boolean,default:!0},showFullscreen:{type:Boolean,default:!0},closeOnOverlayClick:{type:Boolean,default:!0},closeOnEscape:{type:Boolean,default:!0},customClass:{default:""},maxWidth:{default:""}},emits:["update:open","close"],setup(t,{emit:e}){const n=t,o=e,a=p=>{o("update:open",p),p||o("close")},r=u.ref(!1),i=()=>{r.value=!r.value};u.watch(()=>n.open,p=>{p||(r.value=!1)});const c=p=>{n.closeOnEscape||p.preventDefault()},s=p=>{n.closeOnOverlayClick||p.preventDefault()},d=p=>{n.closeOnOverlayClick||p.preventDefault()},h=u.computed(()=>r.value||!n.maxWidth?{}:{maxWidth:n.maxWidth});return(p,f)=>(u.openBlock(),u.createBlock(u.unref(q.DialogRoot),{open:t.open,"onUpdate:open":a},{default:u.withCtx(()=>[u.createVNode(u.unref(q.DialogPortal),null,{default:u.withCtx(()=>[t.showOverlay?(u.openBlock(),u.createBlock(u.unref(q.DialogOverlay),{key:0,class:"ui-modal-overlay"})):u.createCommentVNode("",!0),u.createVNode(u.unref(q.DialogContent),{class:u.normalizeClass(["ui-modal-content",[`size-${t.size}`,t.customClass,{"is-fullscreen":r.value}]]),style:u.normalizeStyle(h.value),onEscapeKeyDown:c,onPointerDownOutside:s,onInteractOutside:d},{default:u.withCtx(()=>[p.$slots.header||t.title||t.showClose||t.showFullscreen?(u.openBlock(),u.createElementBlock("header",zB,[u.renderSlot(p.$slots,"header",{},()=>[t.title?(u.openBlock(),u.createBlock(u.unref(q.DialogTitle),{key:0,class:"ui-modal-title"},{default:u.withCtx(()=>[u.createTextVNode(u.toDisplayString(t.title),1)]),_:1})):(u.openBlock(),u.createBlock(u.unref(q.DialogTitle),{key:1,class:"ui-modal-sr-only"},{default:u.withCtx(()=>[...f[0]||(f[0]=[u.createTextVNode("모달",-1)])]),_:1})),u.createElementVNode("div",RB,[t.showFullscreen?(u.openBlock(),u.createElementBlock("button",{key:0,type:"button",class:"ui-modal-fullscreen-toggle","aria-label":r.value?"축소":"전체화면",onClick:i},[r.value?(u.openBlock(),u.createElementBlock("svg",qB,[...f[2]||(f[2]=[u.createElementVNode("path",{d:"M9 4v5H4M15 4v5h5M9 20v-5H4M15 20v-5h5",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])])):(u.openBlock(),u.createElementBlock("svg",BB,[...f[1]||(f[1]=[u.createElementVNode("path",{d:"M4 9V4h5M20 9V4h-5M4 15v5h5M20 15v5h-5",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])]))],8,OB)):u.createCommentVNode("",!0),t.showClose?(u.openBlock(),u.createBlock(u.unref(q.DialogClose),{key:1,class:"ui-modal-close","aria-label":"닫기"},{default:u.withCtx(()=>[...f[3]||(f[3]=[u.createElementVNode("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true"},[u.createElementVNode("path",{d:"M6 6L18 18M18 6L6 18",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])]),_:1})):u.createCommentVNode("",!0)])])])):u.createCommentVNode("",!0),!p.$slots.header&&!t.title&&!t.showClose&&!t.showFullscreen?(u.openBlock(),u.createBlock(u.unref(q.DialogTitle),{key:1,class:"ui-modal-sr-only"},{default:u.withCtx(()=>[...f[4]||(f[4]=[u.createTextVNode("모달",-1)])]),_:1})):u.createCommentVNode("",!0),u.createElementVNode("div",PB,[u.renderSlot(p.$slots,"default")]),p.$slots.footer?(u.openBlock(),u.createElementBlock("footer",FB,[u.renderSlot(p.$slots,"footer")])):u.createCommentVNode("",!0)]),_:3},8,["class","style"])]),_:3})]),_:3},8,["open"]))}}),VB={class:"ui-empty",role:"status","aria-live":"polite"},HB={class:"ui-empty-title"},jB={key:1,class:"ui-empty-desc"},UB={key:2,class:"ui-empty-action"},WB=u.defineComponent({__name:"UiEmpty",props:{icon:{default:void 0},title:{default:"데이터가 없습니다."},description:{default:void 0}},setup(t){return(e,n)=>(u.openBlock(),u.createElementBlock("div",VB,[t.icon?(u.openBlock(),u.createElementBlock("i",{key:0,class:u.normalizeClass([[t.icon,"size-24"],"ui-empty-icon"]),"aria-hidden":"true"},null,2)):u.createCommentVNode("",!0),u.createElementVNode("p",HB,u.toDisplayString(t.title),1),t.description?(u.openBlock(),u.createElementBlock("p",jB,u.toDisplayString(t.description),1)):u.createCommentVNode("",!0),e.$slots.default?(u.openBlock(),u.createElementBlock("div",UB,[u.renderSlot(e.$slots,"default",{},void 0,!0)])):u.createCommentVNode("",!0)]))}}),FD=Te(WB,[["__scopeId","data-v-c90c8029"]]),GB={key:0,class:"ui-table-scroll-hint"},KB=["aria-sort"],ZB={key:0,class:"ui-table-filter"},XB={class:"ui-table-filter-label"},JB=["onClick"],YB={key:0},QB=["colspan"],eq=["tabindex","role","aria-pressed","onClick","onKeydown"],tq=u.defineComponent({__name:"UiTable",props:{columns:{},data:{},stickyHeader:{type:Boolean,default:!1},maxHeight:{default:void 0},emptyText:{default:"데이터가 없습니다."},emptyIcon:{default:void 0},emptyDescription:{default:void 0},clickable:{type:Boolean,default:!1},size:{default:"md"},selectedRowKey:{default:void 0},selectedRowValue:{default:void 0},bordered:{type:Boolean,default:!0}},emits:["row-click","filter-change"],setup(t,{emit:e}){const n=t,o=u.ref(null),a=u.ref(!1),r=u.ref(!1);function i(){o.value&&(a.value=o.value.scrollWidth>o.value.clientWidth)}function c(){!r.value&&a.value&&(r.value=!0)}let s=null;const d=u.ref(typeof window<"u"?window.innerWidth:9999);let h=null;function p(){h&&clearTimeout(h),h=setTimeout(()=>{d.value=window.innerWidth},150)}u.onMounted(()=>{window.addEventListener("resize",p),o.value&&(typeof ResizeObserver<"u"&&(s=new ResizeObserver(()=>{i(),a.value||(r.value=!1)}),s.observe(o.value)),i())}),u.onUnmounted(()=>{window.removeEventListener("resize",p),h&&clearTimeout(h),s==null||s.disconnect()});const f=u.computed(()=>n.columns.filter(A=>!A.hideBelow||d.value>A.hideBelow)),y=u.computed(()=>{let A=0,te=!1;for(const j of f.value)if(j.width){const Z=parseInt(j.width);isNaN(Z)||(A+=Z,te=!0)}return te&&A>0?`${A}px`:void 0}),k=u.ref(null),m=u.computed(()=>!!n.selectedRowKey&&n.selectedRowValue!==void 0),g=A=>m.value?A[n.selectedRowKey]===n.selectedRowValue:n.clickable&&k.value===A,b=u.ref({key:"",order:""}),M=A=>A.sortable===!0,x=A=>b.value.key===A?b.value.order:"",_=A=>{if(!M(A))return;const te=x(A.key);return te==="asc"?"ascending":te==="desc"?"descending":"none"},w=A=>{if(M(A)){if(b.value.key!==A.key){b.value={key:A.key,order:"asc"};return}if(b.value.order==="asc"){b.value.order="desc";return}b.value={key:"",order:""}}},C=(A,te)=>{const j=A??"";if(te==="string")return String(j);if(te==="number"){const D=Number(String(j).replaceAll(",",""));return Number.isNaN(D)?Number.NEGATIVE_INFINITY:D}if(te==="date"){const D=Date.parse(String(j));return Number.isNaN(D)?Number.NEGATIVE_INFINITY:D}const Z=Number(String(j).replaceAll(",",""));if(!Number.isNaN(Z))return Z;const S=Date.parse(String(j));return Number.isNaN(S)?String(j):S},N=u.computed(()=>{let A=[...n.data];const te=R.value;for(const[D,F]of Object.entries(te))F&&(A=A.filter(B=>String(B[D])===F));const{key:j,order:Z}=b.value;if(!j||!Z)return A;const S=n.columns.find(D=>D.key===j);return S?A.sort((D,F)=>{const B=C(D[j],S.sortType??"auto"),ve=C(F[j],S.sortType??"auto"),wt=Z==="asc"?1:-1;return typeof B=="string"&&typeof ve=="string"?wt*B.localeCompare(ve,"ko"):B===ve?0:wt*(B>ve?1:-1)}):A});u.watch(()=>n.columns,A=>{const te=b.value.key;if(!te)return;const j=A.find(Z=>Z.key===te);(!j||!M(j))&&(b.value={key:"",order:""})},{deep:!0});const L=e,R=u.ref({}),O=A=>A.filterable===!0&&A.filterOptions&&A.filterOptions.length>0,W=A=>R.value[A]??"",le=(A,te)=>{const j=String(te);j===""?delete R.value[A.key]:R.value[A.key]=j,L("filter-change",{...R.value})},ne=(A,te,j)=>{(A.key==="Enter"||A.key===" "||A.key==="Spacebar")&&(A.preventDefault(),J(te,j))},J=(A,te)=>{m.value||(k.value=A),L("row-click",A,te)};return u.watch(()=>n.data,()=>{m.value||(k.value=null),u.nextTick(i)}),(A,te)=>(u.openBlock(),u.createElementBlock("div",{ref_key:"wrapRef",ref:o,class:u.normalizeClass(["ui-table-wrap",[{"is-scrollable":!!t.maxHeight,"is-borderless":!t.bordered,"is-overflowing":a.value},t.size==="sm"?"is-sm":""]]),style:u.normalizeStyle(t.maxHeight?{maxHeight:t.maxHeight}:void 0),onScroll:c},[u.createVNode(u.Transition,{name:"scroll-hint-fade"},{default:u.withCtx(()=>[a.value&&!r.value?(u.openBlock(),u.createElementBlock("div",GB," ← 스크롤하여 더 보기 → ")):u.createCommentVNode("",!0)]),_:1}),u.createElementVNode("table",{class:"ui-table",style:u.normalizeStyle(y.value?{minWidth:y.value}:void 0)},[u.createElementVNode("colgroup",null,[(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(f.value,j=>(u.openBlock(),u.createElementBlock("col",{key:j.key,style:u.normalizeStyle(j.width?{width:j.width}:void 0)},null,4))),128))]),u.createElementVNode("thead",{class:u.normalizeClass({"is-sticky":t.stickyHeader})},[u.createElementVNode("tr",null,[(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(f.value,(j,Z)=>(u.openBlock(),u.createElementBlock("th",{key:j.key,class:u.normalizeClass({"is-last":Z===f.value.length-1,"is-sortable":M(j)}),style:u.normalizeStyle({textAlign:j.headerAlign||"center"}),"aria-sort":_(j)},[u.renderSlot(A.$slots,`header-${j.key}`,{column:j,isSortable:M(j),sortOrder:x(j.key),onSort:()=>w(j)},()=>[O(j)?(u.openBlock(),u.createElementBlock("div",ZB,[u.createElementVNode("span",XB,u.toDisplayString(j.label),1),u.createVNode(uc,{"model-value":W(j.key),options:j.filterOptions,size:"xs",onChange:S=>le(j,S)},null,8,["model-value","options","onChange"])])):M(j)?(u.openBlock(),u.createElementBlock("button",{key:1,type:"button",class:"ui-table-sort-btn",onClick:S=>w(j)},[u.createElementVNode("span",null,u.toDisplayString(j.label),1),u.createElementVNode("span",{class:u.normalizeClass(["ui-table-sort-mark",{"is-active":!!x(j.key),"is-desc":x(j.key)==="desc"}]),"aria-hidden":"true"},"▲",2)],8,JB)):(u.openBlock(),u.createElementBlock(u.Fragment,{key:2},[u.createTextVNode(u.toDisplayString(j.label),1)],64))],!0)],14,KB))),128))])],2),u.createElementVNode("tbody",null,[!t.data||t.data.length===0?(u.openBlock(),u.createElementBlock("tr",YB,[u.createElementVNode("td",{colspan:f.value.length,class:"ui-table-empty"},[u.renderSlot(A.$slots,"empty",{},()=>[u.createVNode(FD,{icon:t.emptyIcon,title:t.emptyText,description:t.emptyDescription},null,8,["icon","title","description"])],!0)],8,QB)])):(u.openBlock(!0),u.createElementBlock(u.Fragment,{key:1},u.renderList(N.value,(j,Z)=>(u.openBlock(),u.createElementBlock("tr",{key:Z,class:u.normalizeClass({"is-clickable":t.clickable,"is-selected":g(j)}),tabindex:t.clickable?0:void 0,role:t.clickable?"button":void 0,"aria-pressed":t.clickable&&g(j)?"true":void 0,onClick:S=>t.clickable&&J(j,Z),onKeydown:S=>t.clickable&&ne(S,j,Z)},[(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(f.value,(S,D)=>(u.openBlock(),u.createElementBlock("td",{key:S.key,class:u.normalizeClass({"is-last":D===f.value.length-1}),style:u.normalizeStyle({textAlign:S.align||"center"})},[u.renderSlot(A.$slots,`cell-${S.key}`,{row:j,value:j[S.key],index:Z},()=>[u.createTextVNode(u.toDisplayString(j[S.key]),1)],!0)],6))),128))],42,eq))),128))])],4)],38))}}),nq=Te(tq,[["__scopeId","data-v-5b41aafe"]]);/**
|
|
2
2
|
* @license @lucide/vue v1.17.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
package/dist/ispark-ui.js
CHANGED
|
@@ -580,7 +580,7 @@ const sB = {
|
|
|
580
580
|
size: { default: "md" },
|
|
581
581
|
showClose: { type: Boolean, default: !0 },
|
|
582
582
|
showOverlay: { type: Boolean, default: !0 },
|
|
583
|
-
showFullscreen: { type: Boolean, default: !
|
|
583
|
+
showFullscreen: { type: Boolean, default: !0 },
|
|
584
584
|
closeOnOverlayClick: { type: Boolean, default: !0 },
|
|
585
585
|
closeOnEscape: { type: Boolean, default: !0 },
|
|
586
586
|
customClass: { default: "" },
|