@krds.ui/vue 0.0.4 → 0.0.5
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/krds-vue.es.js +167 -162
- package/dist/krds-vue.es.js.map +1 -1
- package/dist/krds-vue.umd.js +1 -1
- package/dist/krds-vue.umd.js.map +1 -1
- package/dist/types/index.d.ts +8 -0
- package/package.json +16 -45
package/dist/krds-vue.umd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(function(y,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(y=typeof globalThis<"u"?globalThis:y||self,e(y.KrdsVue={},y.Vue))})(this,(function(y,e){"use strict";const x=e.defineComponent({name:"KrdsButton",props:{type:{type:String,default:"button"},size:{type:String,default:void 0},variant:{type:String,default:"primary"},icon:{type:Boolean,default:!1},border:{type:Boolean,default:!1},pure:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},class:{type:String,default:void 0}},emits:["click"],setup(t,{emit:r,slots:o}){const s=e.computed(()=>{const a=["krds-btn"];return t.icon&&a.push("icon"),t.border&&a.push("border"),t.pure&&a.push("pure"),t.variant&&!t.icon&&a.push(t.variant),t.size&&a.push(t.size),t.class&&a.push(t.class),a}),i=a=>{t.disabled||r("click",a)};return()=>e.h("button",{type:t.type,class:s.value,disabled:t.disabled,onClick:i},o.default?.())}}),A=e.defineComponent({name:"KrdsButtonGroup",props:{},setup(t,{slots:r}){return()=>e.h("div",{class:"btn-group"},r.default?.())}}),O=e.defineComponent({name:"KrdsIcon",props:{name:{type:String,required:!0},class:{type:String,default:void 0}},setup(t){return()=>e.h("i",{class:["svg-icon",t.name,t.class].filter(Boolean).join(" ")})}}),q=e.defineComponent({name:"KrdsLink",props:{href:{type:String,default:"#!"},target:{type:String,default:void 0},title:{type:String,default:void 0},size:{type:String,default:void 0},link:{type:Boolean,default:!0},basic:{type:Boolean,default:!1},pure:{type:Boolean,default:!1},class:{type:String,default:void 0}},emits:["click"],setup(t,{emit:r,slots:o}){const s=e.computed(()=>{const n=["krds-btn"];return t.size&&n.push(t.size),t.link&&n.push("link"),t.basic&&n.push("basic"),t.pure&&n.push("pure"),t.class&&n.push(t.class),n}),i=e.computed(()=>{const n={href:t.href,class:s.value};return t.target&&(n.target=t.target),t.title&&(n.title=t.title),t.target==="_blank"&&(n.rel="noopener noreferrer"),n}),a=n=>{r("click",n)};return()=>e.h("a",{...i.value,onClick:a},o.default?.())}}),T=e.defineComponent({name:"KrdsSpinner",props:{label:{type:String,default:void 0}},render(){const t=[e.h("span",{class:"sr-only"},"로딩 중")];return this.label&&t.push(e.h("span",this.label)),e.h("div",{class:"krds-spinner",role:"status"},t)}}),H=e.defineComponent({name:"KrdsInput",props:{modelValue:{type:[String,Number],default:void 0},type:{type:String,default:"text"},size:{type:String,default:void 0},placeholder:{type:String,default:void 0},maxlength:{type:Number,default:void 0},minlength:{type:Number,default:void 0},max:{type:Number,default:void 0},min:{type:Number,default:void 0},step:{type:Number,default:void 0},autocomplete:{type:String,default:void 0},autofocus:{type:Boolean,default:!1},name:{type:String,default:void 0},required:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},error:{type:String,default:void 0},state:{type:String,default:"default"},icon:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},class:{type:String,default:void 0},id:{type:String,default:void 0}},emits:["update:modelValue","input","change","focus","blur","keydown","keyup"],setup(t,{emit:r,slots:o}){const s=e.computed(()=>{const h=["krds-input"];return t.size&&h.push(t.size),t.class&&h.push(t.class),h}),i=h=>{const E=h.target,c=t.type==="number"?Number(E.value):E.value;r("update:modelValue",c),r("input",h)},a=h=>{r("change",h)},n=h=>{r("focus",h)},d=h=>{r("blur",h)},m=h=>{r("keydown",h)},S=h=>{r("keyup",h)},C=e.computed(()=>{const h={type:t.type,class:s.value,value:t.modelValue,placeholder:t.placeholder,name:t.name,id:t.id,required:t.required,readonly:t.readonly,disabled:t.disabled,autocomplete:t.autocomplete,autofocus:t.autofocus,onInput:i,onChange:a,onFocus:n,onBlur:d,onKeydown:m,onKeyup:S};return t.maxlength!==void 0&&(h.maxlength=t.maxlength),t.minlength!==void 0&&(h.minlength=t.minlength),t.type==="number"&&(t.max!==void 0&&(h.max=t.max),t.min!==void 0&&(h.min=t.min),t.step!==void 0&&(h.step=t.step)),h}),v=e.computed(()=>{const h=["form-conts"];return t.state!=="default"&&h.push(`is-${t.state}`),t.icon&&h.push("btn-ico-wrap"),h});return()=>{const h=[e.h("input",C.value)];return t.loading?e.h("div",{class:v.value},[e.h("div",{class:"form-spinner"},[...h,e.h(T)])]):(o.default&&h.push(...o.default()),e.h("div",{class:v.value},h))}}}),R=e.defineComponent({name:"KrdsFormLabel",props:{for:{type:String,default:void 0},class:{type:String,default:void 0},style:{type:[String,Object],default:void 0},id:{type:String,default:void 0}},emits:["click"],setup(t,{emit:r,slots:o}){const s=i=>{r("click",i)};return()=>e.h("div",{class:"form-tit"},[e.h("label",{for:t.for,id:t.id,class:t.class,style:t.style,onClick:s},o.default?.())])}}),j=e.defineComponent({name:"KrdsFormHint",props:{type:{type:String,default:"hint"},class:{type:String,default:void 0},style:{type:[String,Object],default:void 0},id:{type:String,default:void 0}},emits:["click"],setup(t,{emit:r,slots:o}){const s=a=>{r("click",a)},i=()=>{let a;switch(t.type){case"error":a="form-hint-invalid";break;case"success":a="form-hint-success";break;case"information":a="form-hint-information";break;default:a="form-hint";break}return t.class?`${a} ${t.class}`:a};return()=>e.h("p",{id:t.id,class:i(),style:t.style,onClick:s},o.default?.())}}),Y=e.defineComponent({name:"KrdsFormGroup",props:{class:{type:String,default:void 0},style:{type:[String,Object],default:void 0},id:{type:String,default:void 0}},setup(t,{slots:r}){const o=e.computed(()=>{const s=["form-group"];return t.class&&s.push(t.class),s});return()=>e.h("div",{id:t.id,class:o.value,style:t.style},r.default?.())}});function ye(t,r){const o=new Date,s=e.ref(t||o.getFullYear()),i=e.ref(r||o.getMonth()+1),a=e.ref(null),n=e.ref(null),d=e.ref(null),m=e.computed(()=>{const p=o.getFullYear(),f=[];for(let k=p-10;k<=p+10;k++)f.push(k);return f}),S=e.computed(()=>Array.from({length:12},(p,f)=>f+1)),C=()=>{a.value=null,n.value=null},v=()=>{i.value===1?(i.value=12,s.value-=1):i.value-=1},h=()=>{i.value===12?(i.value=1,s.value+=1):i.value+=1},E=(p,f=!1)=>{if(f)a.value=p,n.value=p;else if(!a.value||a.value&&n.value)a.value=p,n.value=null;else{const k=new Date(a.value.replace(/\./g,"-"));new Date(p.replace(/\./g,"-"))<k?(a.value=p,n.value=null):n.value=p}};return{currentYear:s,currentMonth:i,selectedStartDate:a,selectedEndDate:n,activeDateSelector:d,yearOptions:m,monthOptions:S,clearDateSelection:C,prevMonth:v,nextMonth:h,handleDateSelection:E,selectToday:()=>{const p=`${o.getFullYear()}.${String(o.getMonth()+1).padStart(2,"0")}.${String(o.getDate()).padStart(2,"0")}`;E(p,!0)},isDateInSelectedRange:p=>{if(!a.value||!n.value)return{isInRange:!1,isStart:!1,isEnd:!1};const f=new Date(p.replace(/\./g,"-")),k=new Date(a.value.replace(/\./g,"-")),w=new Date(n.value.replace(/\./g,"-")),I=p===a.value,N=p===n.value;return{isInRange:f>=k&&f<=w,isStart:I,isEnd:N}}}}function ke(t,r,o={}){let s=null;const i=typeof o=="string"?{ignore:o}:o,{ignore:a,event:n="click"}=i,d=()=>{s=S=>{const C=S.target;t.value?.contains(C)||a&&C.closest(a)||r()},document.addEventListener(n,s)},m=()=>{if(s){const S=typeof o=="string"?"click":o.event||"click";document.removeEventListener(S,s),s=null}};return e.onMounted(()=>{d()}),e.onBeforeUnmount(()=>{m()}),{setupGlobalListeners:d,removeGlobalListeners:m}}const be={class:"form-conts"},Se={class:"calendar-input"},Ce=["id","name","placeholder","value","readonly","disabled","required","autofocus"],Be=["disabled","aria-expanded"],we={class:"calendar-head"},Ve={class:"calendar-switch-wrap"},ve={class:"calendar-drop-down"},Ke=["aria-expanded"],Ee={class:"calendar-select calendar-year-wrap"},De={class:"sel year"},Ne=["onClick"],_e={class:"calendar-drop-down"},Ie=["aria-expanded"],ze={class:"calendar-select calendar-mon-wrap"},Me={class:"sel month"},xe=["onClick"],Te={class:"calendar-body"},$e={class:"calendar-table-wrap"},Le={class:"calendar-tbl"},Pe=["data-date"],Fe=["aria-pressed","onClick"],Ae={class:"calendar-footer"},Oe={class:"calendar-btn-wrap"},G=e.defineComponent({__name:"KrdsDateInput",props:{modelValue:{default:void 0},size:{default:"medium"},placeholder:{default:"YYYY.MM.DD"},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},autofocus:{type:Boolean,default:!1},eventDates:{default:()=>[]},holidays:{default:()=>[]},initialYear:{default:void 0},initialMonth:{default:void 0},name:{default:void 0},required:{type:Boolean,default:!1},class:{default:void 0},style:{},id:{default:void 0}},emits:["update:modelValue","input","change","focus","blur"],setup(t,{emit:r}){const o=t,s=r,i=e.ref(),a=e.ref(),n=e.ref(!1),d=e.ref(null),{currentYear:m,currentMonth:S,selectedStartDate:C,selectedEndDate:v,yearOptions:h,monthOptions:E,prevMonth:c,nextMonth:l,handleDateSelection:p,selectToday:f,isDateInSelectedRange:k}=ye(o.initialYear,o.initialMonth),w=()=>{n.value&&a.value?.focus(),n.value=!1,d.value=null};ke(i,w,".calendar-conts");const I=e.computed(()=>{const u=["krds-input","datepicker","cal"];return o.size&&u.push(o.size),o.class&&u.push(o.class),u}),N=e.computed(()=>["form-conts","calendar-conts"]),D=e.computed(()=>({"krds-calendar-area":!0,active:n.value})),K=e.computed(()=>{const u=m.value,g=S.value,b=new Date(u,g-1,1),z=new Date(b);z.setDate(z.getDate()-b.getDay());const _=[],V=new Date(z);for(let F=0;F<6;F++){const he=[];for(let pe=0;pe<7;pe++){const ct=`${V.getFullYear()}.${String(V.getMonth()+1).padStart(2,"0")}.${String(V.getDate()).padStart(2,"0")}`,ge=V.getDay();he.push({day:V.getDate(),dateString:ct,isCurrentMonth:V.getMonth()===g-1,isToday:V.toDateString()===new Date().toDateString(),isPrevMonth:V.getMonth()<g-1||V.getMonth()===11&&g===1,isNextMonth:V.getMonth()>g-1||V.getMonth()===0&&g===12,isSunday:ge===0,isSaturday:ge===6}),V.setDate(V.getDate()+1)}_.push(he)}return _}),M=u=>{const g=[];if(u.isPrevMonth&&g.push("old"),u.isNextMonth&&g.push("new"),u.isToday&&g.push("today"),u.isSunday&&g.push("day-off"),o.holidays?.includes(u.dateString)&&g.push("day-off"),o.eventDates?.includes(u.dateString)&&g.push("day-event"),u.isCurrentMonth){const b=k(u.dateString);b.isInRange&&(g.push("period"),b.isStart&&g.push("start"),b.isEnd&&g.push("end"))}return g},B=e.computed(()=>[{id:"get-today",label:"오늘",class:"text",variant:void 0,size:"small",handler:f},{id:"cancel-btn",label:"취소",class:void 0,variant:"tertiary",size:"small",handler:w},{id:"confirm-btn",label:"확인",class:void 0,variant:"primary",size:"small",handler:at}]),me=u=>{d.value===u?d.value=null:d.value=u},et=u=>{m.value=u,d.value=null},tt=u=>{S.value=u,d.value=null},at=()=>{if(C.value){if(v.value&&C.value!==v.value){const u=`${C.value} ~ ${v.value}`;s("update:modelValue",u)}else s("update:modelValue",C.value);w()}},nt=()=>{n.value=!0,d.value=null,setTimeout(()=>{i.value?.querySelector(".calendar-wrap")?.focus()},50)},lt=()=>{n.value?w():nt()},st=u=>{u.code==="Escape"&&(d.value?d.value=null:n.value&&w())},ot=u=>{const g=u.target;s("update:modelValue",g.value),s("input",u)},rt=u=>{s("change",u)},it=u=>{s("focus",u)},dt=u=>{s("blur",u)};return(u,g)=>(e.openBlock(),e.createElementBlock("div",be,[e.createElementVNode("div",{class:e.normalizeClass(N.value)},[e.createElementVNode("div",Se,[e.createElementVNode("input",{id:u.id,name:u.name,class:e.normalizeClass(I.value),placeholder:u.placeholder,value:u.modelValue,readonly:u.readonly,disabled:u.disabled,required:u.required,autofocus:u.autofocus,type:"text",onInput:ot,onChange:rt,onFocus:it,onBlur:dt},null,42,Ce),e.createElementVNode("button",{ref_key:"datePickerButtonRef",ref:a,class:e.normalizeClass(`krds-btn ${u.size||"medium"} icon form-btn-datepicker`),disabled:u.disabled,"aria-expanded":n.value,type:"button",onClick:lt},[...g[4]||(g[4]=[e.createElementVNode("span",{class:"sr-only"},"달력 열기",-1),e.createElementVNode("i",{class:"svg-icon ico-calendar"},null,-1)])],10,Be)]),e.createElementVNode("div",{ref_key:"datePickerAreaRef",ref:i,class:e.normalizeClass(D.value)},[e.withDirectives(e.createElementVNode("div",{class:"calendar-wrap bottom","aria-label":"달력",tabindex:"0",onKeydown:st},[e.createElementVNode("div",we,[e.createElementVNode("button",{type:"button",class:"btn-cal-move prev",onClick:g[0]||(g[0]=(...b)=>e.unref(c)&&e.unref(c)(...b))},[...g[5]||(g[5]=[e.createElementVNode("span",{class:"sr-only"},"이전 달",-1)])]),e.createElementVNode("div",Ve,[e.createElementVNode("div",ve,[e.createElementVNode("button",{type:"button",class:"btn-cal-switch year","aria-label":"연도 선택","aria-expanded":d.value==="year",onClick:g[1]||(g[1]=b=>me("year"))},e.toDisplayString(e.unref(m))+"년 ",9,Ke),e.withDirectives(e.createElementVNode("div",Ee,[e.createElementVNode("ul",De,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(h),b=>(e.openBlock(),e.createElementBlock("li",{key:b},[e.createElementVNode("button",{type:"button",class:e.normalizeClass({active:b===e.unref(m)}),onClick:z=>et(b)},e.toDisplayString(b)+"년",11,Ne)]))),128))])],512),[[e.vShow,d.value==="year"]])]),e.createElementVNode("div",_e,[e.createElementVNode("button",{type:"button",class:"btn-cal-switch month","aria-label":"월 선택","aria-expanded":d.value==="month",onClick:g[2]||(g[2]=b=>me("month"))},e.toDisplayString(e.unref(S).toString().padStart(2,"0"))+"월 ",9,Ie),e.withDirectives(e.createElementVNode("div",ze,[e.createElementVNode("ul",Me,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(E),b=>(e.openBlock(),e.createElementBlock("li",{key:b},[e.createElementVNode("button",{type:"button",class:e.normalizeClass({active:b===e.unref(S)}),onClick:z=>tt(b)},e.toDisplayString(b.toString().padStart(2,"0"))+"월 ",11,xe)]))),128))])],512),[[e.vShow,d.value==="month"]])])]),e.createElementVNode("button",{type:"button",class:"btn-cal-move next",onClick:g[3]||(g[3]=(...b)=>e.unref(l)&&e.unref(l)(...b))},[...g[6]||(g[6]=[e.createElementVNode("span",{class:"sr-only"},"다음 달",-1)])])]),e.createElementVNode("div",Te,[e.createElementVNode("div",$e,[e.createElementVNode("table",Le,[e.createElementVNode("caption",null,e.toDisplayString(e.unref(m))+"년 "+e.toDisplayString(e.unref(S).toString().padStart(2,"0"))+"월",1),g[7]||(g[7]=e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",null,"일"),e.createElementVNode("th",null,"월"),e.createElementVNode("th",null,"화"),e.createElementVNode("th",null,"수"),e.createElementVNode("th",null,"목"),e.createElementVNode("th",null,"금"),e.createElementVNode("th",null,"토")])],-1)),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(K.value,(b,z)=>(e.openBlock(),e.createElementBlock("tr",{key:z},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b,(_,V)=>(e.openBlock(),e.createElementBlock("td",{key:V,class:e.normalizeClass(M(_)),"data-date":_.dateString},[e.createElementVNode("button",{type:"button",class:"btn-set-date","aria-pressed":e.unref(k)(_.dateString).isInRange?"true":"false",onClick:F=>e.unref(p)(_.dateString)},[e.createElementVNode("span",null,e.toDisplayString(_.day),1)],8,Fe)],10,Pe))),128))]))),128))])])])]),e.createElementVNode("div",Ae,[e.createElementVNode("div",Oe,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(B.value,b=>(e.openBlock(),e.createBlock(e.unref(x),{id:b.id,key:b.id,class:e.normalizeClass(b.class),variant:b.variant,size:b.size,onClick:b.handler},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(b.label),1)]),_:2},1032,["id","class","variant","size","onClick"]))),128))])])],544),[[e.vShow,n.value]])],2)],2)]))}}),W=e.defineComponent({name:"KrdsTextarea",props:{modelValue:{type:String,default:""},size:{type:String,default:void 0},placeholder:{type:String,default:void 0},maxlength:{type:Number,default:void 0},minlength:{type:Number,default:void 0},rows:{type:Number,default:4},cols:{type:Number,default:void 0},autofocus:{type:Boolean,default:!1},name:{type:String,default:void 0},required:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},showCount:{type:Boolean,default:!0},resize:{type:String,default:"vertical"},class:{type:String,default:void 0},style:{type:[String,Object],default:void 0},id:{type:String,default:void 0}},emits:["update:modelValue","input","change","focus","blur","keydown","keyup"],setup(t,{emit:r}){const o=e.ref(0);e.watch(()=>t.modelValue,l=>{o.value=(l||"").length},{immediate:!0});const s=e.computed(()=>{const l=["krds-input"];return t.size&&l.push(t.size),t.class&&l.push(t.class),l}),i=e.computed(()=>{const l={};return t.resize&&(l.resize=t.resize),l}),a=l=>{const f=l.target.value;o.value=f.length,r("update:modelValue",f),r("input",l)},n=l=>{r("change",l)},d=l=>{r("focus",l)},m=l=>{r("blur",l)},S=l=>{r("keydown",l)},C=l=>{r("keyup",l)},v=e.computed(()=>{const l={class:s.value,style:i.value,value:t.modelValue,placeholder:t.placeholder,name:t.name,id:t.id,required:t.required,readonly:t.readonly,disabled:t.disabled,autofocus:t.autofocus,rows:t.rows,cols:t.cols,onInput:a,onChange:n,onFocus:d,onBlur:m,onKeydown:S,onKeyup:C};return t.maxlength!==void 0&&(l.maxlength=t.maxlength),t.minlength!==void 0&&(l.minlength=t.minlength),l}),h=e.computed(()=>["form-conts"]),E=e.computed(()=>["textarea-wrap"]),c=e.computed(()=>{if(!t.showCount)return null;const l=o.value,p=t.maxlength;return{current:l,max:p||""}});return()=>{const l=[e.h("textarea",v.value)];return c.value&&l.push(e.h("p",{class:"textarea-count"},[e.h("span",{class:"count-now"},c.value.current),e.h("span",{class:"count-total"},c.value.max?`/${c.value.max}`:"")])),e.h("div",{class:h.value},[e.h("div",{class:E.value},l)])}}}),U=e.defineComponent({name:"KrdsFileUpload",props:{modelValue:{type:Array,default:()=>[]},size:{type:String,default:"medium"},accept:{type:String,default:void 0},maxFiles:{type:Number,default:10},maxFileSize:{type:Number,default:20*1024*1024},multiple:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},dragAndDrop:{type:Boolean,default:!0},title:{type:String,default:"타이틀영역"},description:{type:String,default:"컨텐츠 영역"},placeholder:{type:String,default:"첨부할 파일을 여기에 끌어다 놓거나, 파일 선택 버튼을 눌러 파일을 직접 선택해주세요."},showPreview:{type:Boolean,default:!0},showDownload:{type:Boolean,default:!0},showPreviewButton:{type:Boolean,default:!0},showClearAll:{type:Boolean,default:!0},name:{type:String,default:void 0},required:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},class:{type:String,default:void 0},style:{type:[String,Object],default:void 0},id:{type:String,default:void 0}},emits:["update:modelValue","file-added","file-removed","file-error","upload-start","upload-progress","upload-complete","upload-error","clear-all","download","preview"],setup(t,{emit:r}){e.ref(!1),e.computed(()=>{const s=["krds-file-upload","line"];return t.class&&s.push(t.class),s});const o=e.computed(()=>t.modelValue?.length||0);return e.computed(()=>!t.disabled&&o.value<t.maxFiles),()=>null}}),J=e.defineComponent({name:"KrdsBadge",props:{type:{type:String,default:"outline"},color:{type:String,default:"primary"},size:{type:String,default:"large"},number:{type:Boolean,default:!1},class:{type:String,default:void 0}},emits:["click"],setup(t,{emit:r,slots:o}){const s=e.computed(()=>{const a=["krds-badge"];return a.push(`${t.type}-${t.color}`),t.size&&a.push(t.size),t.number&&a.push("number"),t.class&&a.push(t.class),a}),i=a=>{r("click",a)};return()=>e.h("span",{type:t.type,color:t.color,size:t.size,number:t.number,class:s.value,onClick:i},o.default?.())}}),Q=e.defineComponent({name:"KrdsTag",props:{link:{type:Boolean,default:!1},href:{type:String,default:"#"},target:{type:String,default:void 0},rel:{type:String,default:void 0},class:{type:String,default:void 0}},emits:["remove"],setup(t,{emit:r,slots:o}){const s=e.computed(()=>{const n=["krds-btn-tag"];return t.link&&n.push("link"),t.class&&n.push(t.class),n}),i=n=>{r("remove",n)},a=()=>e.h("button",{type:"button",class:"btn-delete",onClick:i},[e.h("span",{class:"sr-only"},"삭제")]);return()=>{const n=[],d=o.default?.();if(d&&n.push(d),t.link||n.push(a()),t.link){const m={href:t.href,class:s.value};return t.target&&(m.target=t.target),t.rel&&(m.rel=t.rel),e.h("a",m,n)}return e.h("span",{class:s.value},n)}}}),X=e.defineComponent({name:"KrdsTagGroup",props:{size:{type:String,default:"medium"},class:{type:String,default:void 0}},setup(t,{slots:r}){const o=e.computed(()=>{const s=["krds-tag-wrap"];return t.size&&s.push(t.size),t.class&&s.push(t.class),s});return()=>e.h("div",{class:o.value},r.default?.())}}),Z=e.defineComponent({name:"KrdsMasthead",props:{class:{type:String,default:void 0}},emits:["click"],setup(t,{emit:r,slots:o}){const s=e.computed(()=>{const a=[""];return t.class&&a.push(t.class),a}),i=a=>{r("click",a)};return()=>e.h("div",{id:"krds-masthead",class:s.value,onClick:i},[e.h("div",{class:"toggle-wrap"},[e.h("div",{class:"toggle-head"},[e.h("div",{class:"inner"},[e.h("span",{class:"nuri-txt"},o.default?.())])])])])}});let qe=0;function $(t="krds"){return`${t}-${++qe}`}function L(...t){return t.filter(Boolean).join(" ")}const ee=e.defineComponent({name:"KrdsToggleSwitch",props:{modelValue:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},label:{type:String,default:void 0},size:{type:String,default:"medium",validator:t=>["medium","large"].includes(t)},name:{type:String,default:void 0},required:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},class:{type:String,default:void 0},id:{type:String,default:void 0}},emits:["update:modelValue","change"],setup(t,{emit:r,attrs:o}){const s=e.computed(()=>t.modelValue),i=e.computed(()=>L("krds-form-toggle-switch",t.size,t.class)),a=d=>{if(t.disabled)return;const S=d.target.checked;r("update:modelValue",S),r("change",S)},n=e.computed(()=>t.id||$("toggle-switch"));return()=>e.h("div",{class:i.value},[e.h("input",{type:"checkbox",id:n.value,name:t.name,checked:s.value,disabled:t.disabled,onChange:a,...o}),e.h("label",{for:n.value},[e.h("span",{class:"switch-toggle"},[e.h("i")]),t.label||""])])}}),te=e.defineComponent({name:"KrdsCheckArea",props:{class:{type:String,default:void 0}},setup(t,{slots:r}){return()=>{const o=["krds-check-area"];return t.class&&o.push(t.class),e.h("div",{class:o},r.default?.())}}}),ae=e.defineComponent({name:"KrdsCheckbox",props:{modelValue:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},size:{type:String,default:"medium",validator:t=>["medium","large"].includes(t)},chip:{type:Boolean,default:!1},class:{type:String,default:void 0},id:{type:String,default:void 0}},emits:["update:modelValue","change"],slots:Object,setup(t,{emit:r,attrs:o,slots:s}){const i=e.computed(()=>t.modelValue),a=e.computed(()=>{const m=t.chip?"krds-form-chip":"krds-form-check";return L(m,t.size,t.class)}),n=m=>{if(t.disabled)return;const C=m.target.checked;r("update:modelValue",C),r("change",C)},d=e.computed(()=>t.id||$("checkbox"));return()=>{const m=[e.h("input",{type:"checkbox",id:d.value,checked:i.value,disabled:t.disabled,onChange:n,...o}),e.h("label",{for:d.value},s.default?.())];return s.description&&!t.chip&&m.push(e.h("div",{class:"krds-form-check-cnt"},e.h("p",{class:"krds-form-check-p"},s.description()))),e.h("div",{class:a.value},m)}}}),ne=e.defineComponent({name:"KrdsStepIndicator",props:{modelValue:{type:Number,default:0},class:{type:String,default:void 0}},emits:["update:modelValue"],setup(t,{slots:r}){const o=e.computed(()=>{const d=["krds-step-wrap"];return t.class&&d.push(t.class),d}),s=d=>{const m=t.modelValue||0;return d<m?"done":d===m?"active":"pending"},i=e.ref(0),a=()=>{i.value=0},n=()=>i.value++;return e.provide("stepIndicator",{activeStep:e.computed(()=>t.modelValue||0),getStepStatus:s,getNextStepIndex:n,resetStepIndex:a}),()=>(a(),e.h("ol",{class:o.value},r.default?.()))}}),le=e.defineComponent({name:"KrdsStep",props:{step:{type:[String,Number],required:!0},title:{type:String,required:!0},status:{type:String,default:void 0},class:{type:String,default:void 0}},emits:["click"],setup(t,{emit:r,slots:o}){const s=e.inject("stepIndicator"),i=s?s.getNextStepIndex():-1,a=e.computed(()=>t.status?t.status:s&&i>=0?s.getStepStatus(i):"pending"),n=e.computed(()=>{const m=[a.value];return t.class&&m.push(t.class),m}),d=m=>{r("click",m,t.step)};return()=>{const m=a.value==="active";return e.h("li",{class:n.value,onClick:d},[e.h("span",[m&&e.h("em",{class:"sr-only"},"현재단계"),e.h("i",{class:"step"},t.step),e.h("span",{class:"step-tit"},t.title),o.default?.()])])}}}),se=e.defineComponent({name:"KrdsSkipLink",props:{href:{type:String,required:!0,validator:t=>t.startsWith("#")},class:{type:[String,Array,Object],default:void 0},id:{type:String,default:"krds-skip-link"}},setup(t,{slots:r}){return()=>e.h("div",{id:t.id,class:t.class},[e.h("a",{href:t.href},r.default?.())])}}),He=["id","aria-label"],Re={class:"breadcrumb"},je=["href","aria-current","onClick"],Ye={key:0},oe=e.defineComponent({__name:"KrdsBreadcrumb",props:{items:{},id:{default:void 0},ariaLabel:{default:"현재 경로"},showHomeIcon:{type:Boolean,default:!0}},emits:["item-click"],setup(t,{emit:r}){const o=t,s=r,i=n=>n===o.items.length-1,a=(n,d)=>{n.onClick&&n.onClick(d),s("item-click",n,d)};return(n,d)=>(e.openBlock(),e.createElementBlock("nav",{id:n.id,class:"krds-breadcrumb-wrap","aria-label":n.ariaLabel},[e.createElementVNode("ol",Re,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.items,(m,S)=>(e.openBlock(),e.createElementBlock("li",{key:`breadcrumb-${S}`,class:e.normalizeClass({home:S===0&&n.showHomeIcon})},[e.createElementVNode("a",{href:m.href||"#",class:"txt","aria-current":i(S)?"page":void 0,onClick:C=>a(m,C)},[S===0&&n.showHomeIcon?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",Ye,e.toDisplayString(m.text),1))],8,je)],2))),128))])],8,He))}}),re=e.defineComponent({name:"KrdsInPageNavigation",props:{title:{type:String,default:void 0},caption:{type:String,default:"이 페이지의 구성"},items:{type:Array,default:()=>[]},autoActive:{type:Boolean,default:!0},headerTopSelector:{type:String,default:"#krds-masthead"},headerInnerSelector:{type:String,default:"#krds-header .header-in"},class:{type:String,default:void 0}},emits:["itemClick"],slots:Object,setup(t,{emit:r,slots:o}){const s=e.ref(""),i=e.ref(new Map),a=e.computed(()=>{const c=["krds-in-page-navigation-type"];return t.class&&c.push(t.class),c}),n=()=>{const c=t.headerTopSelector,l=t.headerInnerSelector,p=document.querySelector(c)?.clientHeight||0,f=document.querySelector(l)?.clientHeight||0;return p+f},d=(c,l)=>{if(r("itemClick",c,l),c.href.startsWith("#")){l.preventDefault();const p=document.querySelector(c.href);if(p){const f=n();if(window.scrollTo({left:0,top:p.getBoundingClientRect().top+window.scrollY-f,behavior:"smooth"}),s.value=c.href,l instanceof KeyboardEvent){const k=p.querySelector(".sec-tit, h1, h2, h3, h4, h5, h6");k&&k instanceof HTMLElement&&(k.setAttribute("tabindex","-1"),k.focus({preventScroll:!0}))}}}},m=()=>{i.value.clear(),t.items&&t.items.filter(c=>c.href.startsWith("#")).forEach(c=>{const l=document.querySelector(c.href);l&&i.value.set(c.href,l)})},S=()=>{if(!t.autoActive||!t.items||i.value.size===0)return;const c=window.innerHeight,l=Math.ceil(c/5),p=window.scrollY+c,f=document.body.scrollHeight,k=t.items.filter(K=>K.href.startsWith("#")&&i.value.has(K.href)).map(K=>({href:K.href,element:i.value.get(K.href),item:K}));if(k.length===0)return;const w=k[0],I=k[k.length-1],N=w.element.offsetTop;let D="";if(p>=f)D=I.href;else if(window.scrollY<=N)D=w.href;else for(const K of k){const M=K.element.offsetHeight,B=K.element.offsetTop-l;if(window.scrollY>B&&window.scrollY<=B+M){D=K.href;break}}D&&D!==s.value&&(s.value=D)},C=()=>{if(!t.items)return;const c=t.items.find(l=>l.active);c?s.value=c.href:t.items.length>0&&(s.value=t.items[0].href)};e.onMounted(()=>{if(C(),t.autoActive){m(),S(),window.addEventListener("scroll",S,{passive:!0});const c=new MutationObserver(()=>{m()});c.observe(document.body,{childList:!0,subtree:!0}),e.onUnmounted(()=>{c.disconnect()})}}),e.onUnmounted(()=>{t.autoActive&&(window.removeEventListener("scroll",S),i.value.clear())});const v=()=>!t.caption&&!t.title?null:e.h("div",{class:"in-page-navigation-header"},[t.caption&&e.h("p",{class:"quick-caption"},t.caption),t.title&&e.h("p",{class:"quick-title"},t.title)]),h=()=>{if(!t.items)return null;const c=t.items.map(l=>{const p=s.value===l.href||!t.autoActive&&l.active;return e.h("li",{key:l.href},[e.h("a",{href:l.href,class:p?"active":"",onClick:f=>d(l,f),onKeydown:f=>{(f.key==="Enter"||f.key===" ")&&(f.preventDefault(),d(l,f))}},l.text)])});return e.h("nav",{class:"in-page-navigation-list"},[e.h("ul",{},c)])},E=()=>o.action?e.h("div",{class:"in-page-navigation-action"},[o.action()]):null;return()=>e.h("div",{class:a.value},[e.h("div",{class:"krds-in-page-navigation-area"},[v(),h(),E()].filter(Boolean))])}}),Ge=["id"],We={class:"page-links"},Ue=["href","aria-current","onClick"],Je={key:0},Qe=["aria-label"],ie=e.defineComponent({__name:"KrdsPagination",props:{modelValue:{default:1},min:{default:1},max:{},id:{default:void 0},ariaLabel:{default:"페이지 내비게이션"},pageRange:{default:8}},emits:["update:modelValue"],setup(t,{emit:r}){const o=t,s=r,i=e.computed(()=>Math.max(1,o.min)),a=e.computed(()=>o.modelValue??i.value),n=e.computed(()=>a.value<=i.value),d=e.computed(()=>a.value>=o.max),m=e.computed(()=>{if(!n.value)return"#"}),S=e.computed(()=>{if(!d.value)return"#"}),C=e.computed(()=>{const{pageRange:c,max:l}=o,p=1,f=[];if(l<=c+2*p)for(let k=i.value;k<=l;k++)f.push({type:"page",key:`page-${k}`,page:k,href:"#"});else{const k=Math.min(p,l),w=Math.max(l-p+1,1),I=Math.max(i.value,a.value-Math.floor(c/2)),N=Math.min(l,I+c-1),D=Math.max(i.value,N-c+1);for(let B=i.value;B<=k;B++)f.push({type:"page",key:`page-${B}`,page:B,href:"#"});D>k+1&&f.push({type:"ellipsis",key:"ellipsis-left",ariaLabel:"페이지 생략"});const K=Math.max(D,k+1),M=Math.min(N,w-1);for(let B=K;B<=M;B++)f.push({type:"page",key:`page-${B}`,page:B,href:"#"});N<w-1&&f.push({type:"ellipsis",key:"ellipsis-right",ariaLabel:"페이지 생략"});for(let B=w;B<=l;B++)f.push({type:"page",key:`page-${B}`,page:B,href:"#"})}return f}),v=(c,l)=>{if(c===a.value){l.preventDefault();return}s("update:modelValue",c)},h=c=>{if(n.value){c.preventDefault();return}const l=a.value-1;s("update:modelValue",l)},E=c=>{if(d.value){c.preventDefault();return}const l=a.value+1;s("update:modelValue",l)};return(c,l)=>{const p=e.resolveDirective("sr-only");return e.openBlock(),e.createElementBlock("div",{id:c.id,class:"krds-pagination"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.value?"span":"a"),{href:n.value?void 0:m.value,class:e.normalizeClass(["page-navi","prev",{disabled:n.value}]),onClick:h},{default:e.withCtx(()=>[...l[0]||(l[0]=[e.createTextVNode(" 이전 ",-1)])]),_:1},8,["href","class"])),e.createElementVNode("div",We,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(C.value,f=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:f.key},[f.type==="page"?(e.openBlock(),e.createElementBlock("a",{key:0,href:f.href||"#",class:e.normalizeClass(["page-link",{active:f.page===a.value}]),"aria-current":f.page===a.value?"page":void 0,onClick:k=>v(f.page,k)},[f.page===a.value?e.withDirectives((e.openBlock(),e.createElementBlock("span",Je,[...l[1]||(l[1]=[e.createTextVNode("현재페이지",-1)])])),[[p]]):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(f.page),1)],10,Ue)):f.type==="ellipsis"?(e.openBlock(),e.createElementBlock("span",{key:1,class:"page-link link-dot","aria-label":f.ariaLabel},null,8,Qe)):e.createCommentVNode("",!0)],64))),128))]),(e.openBlock(),e.createBlock(e.resolveDynamicComponent(d.value?"span":"a"),{href:d.value?void 0:S.value,class:e.normalizeClass(["page-navi","next",{disabled:d.value}]),onClick:E},{default:e.withCtx(()=>[...l[2]||(l[2]=[e.createTextVNode(" 다음 ",-1)])]),_:1},8,["href","class"]))],8,Ge)}}}),de=Object.freeze(Object.defineProperty({__proto__:null,KrdsBadge:J,KrdsBreadcrumb:oe,KrdsButton:x,KrdsButtonGroup:A,KrdsCheckArea:te,KrdsCheckbox:ae,KrdsDateInput:G,KrdsFileUpload:U,KrdsFormGroup:Y,KrdsFormHint:j,KrdsFormLabel:R,KrdsIcon:O,KrdsInPageNavigation:re,KrdsInput:H,KrdsLink:q,KrdsMasthead:Z,KrdsPagination:ie,KrdsSkipLink:se,KrdsSpinner:T,KrdsStep:le,KrdsStepIndicator:ne,KrdsTag:Q,KrdsTagGroup:X,KrdsTextarea:W,KrdsToggleSwitch:ee},Symbol.toStringTag,{value:"Module"})),P={mounted(t,r){r.value!==!1&&t.classList.add("sr-only")},updated(t,r){r.value===!1?t.classList.remove("sr-only"):t.classList.add("sr-only")},unmounted(t){t.classList.remove("sr-only")}},ce={"sr-only":P},ue=t=>{t.directive("sr-only",P)},fe=Object.freeze(Object.defineProperty({__proto__:null,default:ce,directives:ce,installDirectives:ue,vSrOnly:P},Symbol.toStringTag,{value:"Module"})),Xe={install(t,r={}){t.provide("krds:config",r);const o=r.components||Object.keys(de);o.forEach(s=>{const i=de[s];i&&t.component(s,i)}),typeof fe=="object"&&fe!==null&&ue(t),t.config.globalProperties.$krds={version:"__VERSION__"},process.env.NODE_ENV!=="production"&&console.log(`[KRDS Vue] v__VERSION__ 설치 완료 - 컴포넌트: ${o.length}개`)}},Ze="__VERSION__";y.KrdsBadge=J,y.KrdsBreadcrumb=oe,y.KrdsButton=x,y.KrdsButtonGroup=A,y.KrdsCheckArea=te,y.KrdsCheckbox=ae,y.KrdsDateInput=G,y.KrdsFileUpload=U,y.KrdsFormGroup=Y,y.KrdsFormHint=j,y.KrdsFormLabel=R,y.KrdsIcon=O,y.KrdsInPageNavigation=re,y.KrdsInput=H,y.KrdsLink=q,y.KrdsMasthead=Z,y.KrdsPagination=ie,y.KrdsSkipLink=se,y.KrdsSpinner=T,y.KrdsStep=le,y.KrdsStepIndicator=ne,y.KrdsTag=Q,y.KrdsTagGroup=X,y.KrdsTextarea=W,y.KrdsToggleSwitch=ee,y.classNames=L,y.default=Xe,y.generateId=$,y.version=Ze,Object.defineProperties(y,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
|
|
1
|
+
(function(g,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(g=typeof globalThis<"u"?globalThis:g||self,e(g.KrdsVue={},g.Vue))})(this,(function(g,e){"use strict";const $=e.defineComponent({name:"KrdsButton",props:{type:{type:String,default:"button"},size:{type:String,default:void 0},variant:{type:String,default:"primary"},icon:{type:Boolean,default:!1},border:{type:Boolean,default:!1},pure:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},class:{type:String,default:void 0}},emits:["click"],setup(t,{emit:r,slots:o}){const s=e.computed(()=>{const a=["krds-btn"];return t.icon&&a.push("icon"),t.border&&a.push("border"),t.pure&&a.push("pure"),t.variant&&!t.icon&&a.push(t.variant),t.size&&a.push(t.size),t.class&&a.push(t.class),a}),i=a=>{t.disabled||r("click",a)};return()=>e.h("button",{type:t.type,class:s.value,disabled:t.disabled,onClick:i},o.default?.())}}),A=e.defineComponent({name:"KrdsButtonGroup",props:{},setup(t,{slots:r}){return()=>e.h("div",{class:"btn-group"},r.default?.())}}),O=e.defineComponent({name:"KrdsIcon",props:{name:{type:String,required:!0},class:{type:String,default:void 0}},setup(t){return()=>e.h("i",{class:["svg-icon",t.name,t.class].filter(Boolean).join(" ")})}}),q=e.defineComponent({name:"KrdsLink",props:{href:{type:String,default:"#!"},target:{type:String,default:void 0},title:{type:String,default:void 0},size:{type:String,default:void 0},link:{type:Boolean,default:!0},basic:{type:Boolean,default:!1},pure:{type:Boolean,default:!1},class:{type:String,default:void 0}},emits:["click"],setup(t,{emit:r,slots:o}){const s=e.computed(()=>{const n=["krds-btn"];return t.size&&n.push(t.size),t.link&&n.push("link"),t.basic&&n.push("basic"),t.pure&&n.push("pure"),t.class&&n.push(t.class),n}),i=e.computed(()=>{const n={href:t.href,class:s.value};return t.target&&(n.target=t.target),t.title&&(n.title=t.title),t.target==="_blank"&&(n.rel="noopener noreferrer"),n}),a=n=>{r("click",n)};return()=>e.h("a",{...i.value,onClick:a},o.default?.())}}),T=e.defineComponent({name:"KrdsSpinner",props:{label:{type:String,default:void 0}},render(){const t=[e.h("span",{class:"sr-only"},"로딩 중")];return this.label&&t.push(e.h("span",this.label)),e.h("div",{class:"krds-spinner",role:"status"},t)}}),H=e.defineComponent({name:"KrdsInput",props:{modelValue:{type:[String,Number],default:void 0},type:{type:String,default:"text"},size:{type:String,default:void 0},placeholder:{type:String,default:void 0},maxlength:{type:Number,default:void 0},minlength:{type:Number,default:void 0},max:{type:Number,default:void 0},min:{type:Number,default:void 0},step:{type:Number,default:void 0},autocomplete:{type:String,default:void 0},autofocus:{type:Boolean,default:!1},name:{type:String,default:void 0},required:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},error:{type:String,default:void 0},state:{type:String,default:"default"},icon:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},class:{type:String,default:void 0},id:{type:String,default:void 0}},emits:["update:modelValue","input","change","focus","blur","keydown","keyup"],setup(t,{emit:r,slots:o}){const s=e.computed(()=>{const h=["krds-input"];return t.size&&h.push(t.size),t.class&&h.push(t.class),h}),i=h=>{const E=h.target,c=t.type==="number"?Number(E.value):E.value;r("update:modelValue",c),r("input",h)},a=h=>{r("change",h)},n=h=>{r("focus",h)},d=h=>{r("blur",h)},m=h=>{r("keydown",h)},S=h=>{r("keyup",h)},C=e.computed(()=>{const h={type:t.type,class:s.value,value:t.modelValue,placeholder:t.placeholder,name:t.name,id:t.id,required:t.required,readonly:t.readonly,disabled:t.disabled,autocomplete:t.autocomplete,autofocus:t.autofocus,onInput:i,onChange:a,onFocus:n,onBlur:d,onKeydown:m,onKeyup:S};return t.maxlength!==void 0&&(h.maxlength=t.maxlength),t.minlength!==void 0&&(h.minlength=t.minlength),t.type==="number"&&(t.max!==void 0&&(h.max=t.max),t.min!==void 0&&(h.min=t.min),t.step!==void 0&&(h.step=t.step)),h}),v=e.computed(()=>{const h=["form-conts"];return t.state!=="default"&&h.push(`is-${t.state}`),t.icon&&h.push("btn-ico-wrap"),h});return()=>{const h=[e.h("input",C.value)];return t.loading?e.h("div",{class:v.value},[e.h("div",{class:"form-spinner"},[...h,e.h(T)])]):(o.default&&h.push(...o.default()),e.h("div",{class:v.value},h))}}}),R=e.defineComponent({name:"KrdsFormLabel",props:{for:{type:String,default:void 0},class:{type:String,default:void 0},style:{type:[String,Object],default:void 0},id:{type:String,default:void 0}},emits:["click"],setup(t,{emit:r,slots:o}){const s=i=>{r("click",i)};return()=>e.h("div",{class:"form-tit"},[e.h("label",{for:t.for,id:t.id,class:t.class,style:t.style,onClick:s},o.default?.())])}}),j=e.defineComponent({name:"KrdsFormHint",props:{type:{type:String,default:"hint"},class:{type:String,default:void 0},style:{type:[String,Object],default:void 0},id:{type:String,default:void 0}},emits:["click"],setup(t,{emit:r,slots:o}){const s=a=>{r("click",a)},i=()=>{let a;switch(t.type){case"error":a="form-hint-invalid";break;case"success":a="form-hint-success";break;case"information":a="form-hint-information";break;default:a="form-hint";break}return t.class?`${a} ${t.class}`:a};return()=>e.h("p",{id:t.id,class:i(),style:t.style,onClick:s},o.default?.())}}),Y=e.defineComponent({name:"KrdsFormGroup",props:{class:{type:String,default:void 0},style:{type:[String,Object],default:void 0},id:{type:String,default:void 0}},setup(t,{slots:r}){const o=e.computed(()=>{const s=["form-group"];return t.class&&s.push(t.class),s});return()=>e.h("div",{id:t.id,class:o.value,style:t.style},r.default?.())}});function ye(t,r){const o=new Date,s=e.ref(t||o.getFullYear()),i=e.ref(r||o.getMonth()+1),a=e.ref(null),n=e.ref(null),d=e.ref(null),m=e.computed(()=>{const p=o.getFullYear(),f=[];for(let k=p-10;k<=p+10;k++)f.push(k);return f}),S=e.computed(()=>Array.from({length:12},(p,f)=>f+1)),C=()=>{a.value=null,n.value=null},v=()=>{i.value===1?(i.value=12,s.value-=1):i.value-=1},h=()=>{i.value===12?(i.value=1,s.value+=1):i.value+=1},E=(p,f=!1)=>{if(f)a.value=p,n.value=p;else if(!a.value||a.value&&n.value)a.value=p,n.value=null;else{const k=new Date(a.value.replace(/\./g,"-"));new Date(p.replace(/\./g,"-"))<k?(a.value=p,n.value=null):n.value=p}};return{currentYear:s,currentMonth:i,selectedStartDate:a,selectedEndDate:n,activeDateSelector:d,yearOptions:m,monthOptions:S,clearDateSelection:C,prevMonth:v,nextMonth:h,handleDateSelection:E,selectToday:()=>{const p=`${o.getFullYear()}.${String(o.getMonth()+1).padStart(2,"0")}.${String(o.getDate()).padStart(2,"0")}`;E(p,!0)},isDateInSelectedRange:p=>{if(!a.value||!n.value)return{isInRange:!1,isStart:!1,isEnd:!1};const f=new Date(p.replace(/\./g,"-")),k=new Date(a.value.replace(/\./g,"-")),w=new Date(n.value.replace(/\./g,"-")),I=p===a.value,N=p===n.value;return{isInRange:f>=k&&f<=w,isStart:I,isEnd:N}}}}function ke(t,r,o={}){let s=null;const i=typeof o=="string"?{ignore:o}:o,{ignore:a,event:n="click"}=i,d=()=>{s=S=>{const C=S.target;t.value?.contains(C)||a&&C.closest(a)||r()},document.addEventListener(n,s)},m=()=>{if(s){const S=typeof o=="string"?"click":o.event||"click";document.removeEventListener(S,s),s=null}};return e.onMounted(()=>{d()}),e.onBeforeUnmount(()=>{m()}),{setupGlobalListeners:d,removeGlobalListeners:m}}const be={class:"form-conts"},Se={class:"calendar-input"},Ce=["id","name","placeholder","value","readonly","disabled","required","autofocus"],Be=["disabled","aria-expanded"],we={class:"calendar-head"},Ve={class:"calendar-switch-wrap"},ve={class:"calendar-drop-down"},Ke=["aria-expanded"],Ee={class:"calendar-select calendar-year-wrap"},De={class:"sel year"},Ne=["onClick"],_e={class:"calendar-drop-down"},Ie=["aria-expanded"],ze={class:"calendar-select calendar-mon-wrap"},Me={class:"sel month"},$e=["onClick"],Te={class:"calendar-body"},xe={class:"calendar-table-wrap"},Le={class:"calendar-tbl"},Pe=["data-date"],Fe=["aria-pressed","onClick"],Ae={class:"calendar-footer"},Oe={class:"calendar-btn-wrap"},G=e.defineComponent({__name:"KrdsDateInput",props:{modelValue:{default:void 0},size:{default:"medium"},placeholder:{default:"YYYY.MM.DD"},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},autofocus:{type:Boolean,default:!1},eventDates:{default:()=>[]},holidays:{default:()=>[]},initialYear:{default:void 0},initialMonth:{default:void 0},name:{default:void 0},required:{type:Boolean,default:!1},class:{default:void 0},style:{},id:{default:void 0}},emits:["update:modelValue","input","change","focus","blur"],setup(t,{emit:r}){const o=t,s=r,i=e.ref(),a=e.ref(),n=e.ref(!1),d=e.ref(null),{currentYear:m,currentMonth:S,selectedStartDate:C,selectedEndDate:v,yearOptions:h,monthOptions:E,prevMonth:c,nextMonth:l,handleDateSelection:p,selectToday:f,isDateInSelectedRange:k}=ye(o.initialYear,o.initialMonth),w=()=>{n.value&&a.value?.focus(),n.value=!1,d.value=null};ke(i,w,".calendar-conts");const I=e.computed(()=>{const u=["krds-input","datepicker","cal"];return o.size&&u.push(o.size),o.class&&u.push(o.class),u}),N=e.computed(()=>["form-conts","calendar-conts"]),D=e.computed(()=>({"krds-calendar-area":!0,active:n.value})),K=e.computed(()=>{const u=m.value,y=S.value,b=new Date(u,y-1,1),z=new Date(b);z.setDate(z.getDate()-b.getDay());const _=[],V=new Date(z);for(let F=0;F<6;F++){const he=[];for(let pe=0;pe<7;pe++){const ut=`${V.getFullYear()}.${String(V.getMonth()+1).padStart(2,"0")}.${String(V.getDate()).padStart(2,"0")}`,ge=V.getDay();he.push({day:V.getDate(),dateString:ut,isCurrentMonth:V.getMonth()===y-1,isToday:V.toDateString()===new Date().toDateString(),isPrevMonth:V.getMonth()<y-1||V.getMonth()===11&&y===1,isNextMonth:V.getMonth()>y-1||V.getMonth()===0&&y===12,isSunday:ge===0,isSaturday:ge===6}),V.setDate(V.getDate()+1)}_.push(he)}return _}),M=u=>{const y=[];if(u.isPrevMonth&&y.push("old"),u.isNextMonth&&y.push("new"),u.isToday&&y.push("today"),u.isSunday&&y.push("day-off"),o.holidays?.includes(u.dateString)&&y.push("day-off"),o.eventDates?.includes(u.dateString)&&y.push("day-event"),u.isCurrentMonth){const b=k(u.dateString);b.isInRange&&(y.push("period"),b.isStart&&y.push("start"),b.isEnd&&y.push("end"))}return y},B=e.computed(()=>[{id:"get-today",label:"오늘",class:"text",variant:void 0,size:"small",handler:f},{id:"cancel-btn",label:"취소",class:void 0,variant:"tertiary",size:"small",handler:w},{id:"confirm-btn",label:"확인",class:void 0,variant:"primary",size:"small",handler:nt}]),me=u=>{d.value===u?d.value=null:d.value=u},tt=u=>{m.value=u,d.value=null},at=u=>{S.value=u,d.value=null},nt=()=>{if(C.value){if(v.value&&C.value!==v.value){const u=`${C.value} ~ ${v.value}`;s("update:modelValue",u)}else s("update:modelValue",C.value);w()}},lt=()=>{n.value=!0,d.value=null,setTimeout(()=>{i.value?.querySelector(".calendar-wrap")?.focus()},50)},st=()=>{n.value?w():lt()},ot=u=>{u.code==="Escape"&&(d.value?d.value=null:n.value&&w())},rt=u=>{const y=u.target;s("update:modelValue",y.value),s("input",u)},it=u=>{s("change",u)},dt=u=>{s("focus",u)},ct=u=>{s("blur",u)};return(u,y)=>(e.openBlock(),e.createElementBlock("div",be,[e.createElementVNode("div",{class:e.normalizeClass(N.value)},[e.createElementVNode("div",Se,[e.createElementVNode("input",{id:u.id,name:u.name,class:e.normalizeClass(I.value),placeholder:u.placeholder,value:u.modelValue,readonly:u.readonly,disabled:u.disabled,required:u.required,autofocus:u.autofocus,type:"text",onInput:rt,onChange:it,onFocus:dt,onBlur:ct},null,42,Ce),e.createElementVNode("button",{ref_key:"datePickerButtonRef",ref:a,class:e.normalizeClass(`krds-btn ${u.size||"medium"} icon form-btn-datepicker`),disabled:u.disabled,"aria-expanded":n.value,type:"button",onClick:st},[...y[4]||(y[4]=[e.createElementVNode("span",{class:"sr-only"},"달력 열기",-1),e.createElementVNode("i",{class:"svg-icon ico-calendar"},null,-1)])],10,Be)]),e.createElementVNode("div",{ref_key:"datePickerAreaRef",ref:i,class:e.normalizeClass(D.value)},[e.withDirectives(e.createElementVNode("div",{class:"calendar-wrap bottom","aria-label":"달력",tabindex:"0",onKeydown:ot},[e.createElementVNode("div",we,[e.createElementVNode("button",{type:"button",class:"btn-cal-move prev",onClick:y[0]||(y[0]=(...b)=>e.unref(c)&&e.unref(c)(...b))},[...y[5]||(y[5]=[e.createElementVNode("span",{class:"sr-only"},"이전 달",-1)])]),e.createElementVNode("div",Ve,[e.createElementVNode("div",ve,[e.createElementVNode("button",{type:"button",class:"btn-cal-switch year","aria-label":"연도 선택","aria-expanded":d.value==="year",onClick:y[1]||(y[1]=b=>me("year"))},e.toDisplayString(e.unref(m))+"년 ",9,Ke),e.withDirectives(e.createElementVNode("div",Ee,[e.createElementVNode("ul",De,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(h),b=>(e.openBlock(),e.createElementBlock("li",{key:b},[e.createElementVNode("button",{type:"button",class:e.normalizeClass({active:b===e.unref(m)}),onClick:z=>tt(b)},e.toDisplayString(b)+"년",11,Ne)]))),128))])],512),[[e.vShow,d.value==="year"]])]),e.createElementVNode("div",_e,[e.createElementVNode("button",{type:"button",class:"btn-cal-switch month","aria-label":"월 선택","aria-expanded":d.value==="month",onClick:y[2]||(y[2]=b=>me("month"))},e.toDisplayString(e.unref(S).toString().padStart(2,"0"))+"월 ",9,Ie),e.withDirectives(e.createElementVNode("div",ze,[e.createElementVNode("ul",Me,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(E),b=>(e.openBlock(),e.createElementBlock("li",{key:b},[e.createElementVNode("button",{type:"button",class:e.normalizeClass({active:b===e.unref(S)}),onClick:z=>at(b)},e.toDisplayString(b.toString().padStart(2,"0"))+"월 ",11,$e)]))),128))])],512),[[e.vShow,d.value==="month"]])])]),e.createElementVNode("button",{type:"button",class:"btn-cal-move next",onClick:y[3]||(y[3]=(...b)=>e.unref(l)&&e.unref(l)(...b))},[...y[6]||(y[6]=[e.createElementVNode("span",{class:"sr-only"},"다음 달",-1)])])]),e.createElementVNode("div",Te,[e.createElementVNode("div",xe,[e.createElementVNode("table",Le,[e.createElementVNode("caption",null,e.toDisplayString(e.unref(m))+"년 "+e.toDisplayString(e.unref(S).toString().padStart(2,"0"))+"월",1),y[7]||(y[7]=e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",null,"일"),e.createElementVNode("th",null,"월"),e.createElementVNode("th",null,"화"),e.createElementVNode("th",null,"수"),e.createElementVNode("th",null,"목"),e.createElementVNode("th",null,"금"),e.createElementVNode("th",null,"토")])],-1)),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(K.value,(b,z)=>(e.openBlock(),e.createElementBlock("tr",{key:z},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b,(_,V)=>(e.openBlock(),e.createElementBlock("td",{key:V,class:e.normalizeClass(M(_)),"data-date":_.dateString},[e.createElementVNode("button",{type:"button",class:"btn-set-date","aria-pressed":e.unref(k)(_.dateString).isInRange?"true":"false",onClick:F=>e.unref(p)(_.dateString)},[e.createElementVNode("span",null,e.toDisplayString(_.day),1)],8,Fe)],10,Pe))),128))]))),128))])])])]),e.createElementVNode("div",Ae,[e.createElementVNode("div",Oe,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(B.value,b=>(e.openBlock(),e.createBlock(e.unref($),{id:b.id,key:b.id,class:e.normalizeClass(b.class),variant:b.variant,size:b.size,onClick:b.handler},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(b.label),1)]),_:2},1032,["id","class","variant","size","onClick"]))),128))])])],544),[[e.vShow,n.value]])],2)],2)]))}}),U=e.defineComponent({name:"KrdsTextarea",props:{modelValue:{type:String,default:""},size:{type:String,default:void 0},placeholder:{type:String,default:void 0},maxlength:{type:Number,default:void 0},minlength:{type:Number,default:void 0},rows:{type:Number,default:4},cols:{type:Number,default:void 0},autofocus:{type:Boolean,default:!1},name:{type:String,default:void 0},required:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},showCount:{type:Boolean,default:!0},resize:{type:String,default:"vertical"},class:{type:String,default:void 0},style:{type:[String,Object],default:void 0},id:{type:String,default:void 0}},emits:["update:modelValue","input","change","focus","blur","keydown","keyup"],setup(t,{emit:r}){const o=e.ref(0);e.watch(()=>t.modelValue,l=>{o.value=(l||"").length},{immediate:!0});const s=e.computed(()=>{const l=["krds-input"];return t.size&&l.push(t.size),t.class&&l.push(t.class),l}),i=e.computed(()=>{const l={};return t.resize&&(l.resize=t.resize),l}),a=l=>{const f=l.target.value;o.value=f.length,r("update:modelValue",f),r("input",l)},n=l=>{r("change",l)},d=l=>{r("focus",l)},m=l=>{r("blur",l)},S=l=>{r("keydown",l)},C=l=>{r("keyup",l)},v=e.computed(()=>{const l={class:s.value,style:i.value,value:t.modelValue,placeholder:t.placeholder,name:t.name,id:t.id,required:t.required,readonly:t.readonly,disabled:t.disabled,autofocus:t.autofocus,rows:t.rows,cols:t.cols,onInput:a,onChange:n,onFocus:d,onBlur:m,onKeydown:S,onKeyup:C};return t.maxlength!==void 0&&(l.maxlength=t.maxlength),t.minlength!==void 0&&(l.minlength=t.minlength),l}),h=e.computed(()=>["form-conts"]),E=e.computed(()=>["textarea-wrap"]),c=e.computed(()=>{if(!t.showCount)return null;const l=o.value,p=t.maxlength;return{current:l,max:p||""}});return()=>{const l=[e.h("textarea",v.value)];return c.value&&l.push(e.h("p",{class:"textarea-count"},[e.h("span",{class:"count-now"},c.value.current),e.h("span",{class:"count-total"},c.value.max?`/${c.value.max}`:"")])),e.h("div",{class:h.value},[e.h("div",{class:E.value},l)])}}}),W=e.defineComponent({name:"KrdsFileUpload",props:{modelValue:{type:Array,default:()=>[]},size:{type:String,default:"medium"},accept:{type:String,default:void 0},maxFiles:{type:Number,default:10},maxFileSize:{type:Number,default:20*1024*1024},multiple:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},dragAndDrop:{type:Boolean,default:!0},title:{type:String,default:"타이틀영역"},description:{type:String,default:"컨텐츠 영역"},placeholder:{type:String,default:"첨부할 파일을 여기에 끌어다 놓거나, 파일 선택 버튼을 눌러 파일을 직접 선택해주세요."},showPreview:{type:Boolean,default:!0},showDownload:{type:Boolean,default:!0},showPreviewButton:{type:Boolean,default:!0},showClearAll:{type:Boolean,default:!0},name:{type:String,default:void 0},required:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},class:{type:String,default:void 0},style:{type:[String,Object],default:void 0},id:{type:String,default:void 0}},emits:["update:modelValue","file-added","file-removed","file-error","upload-start","upload-progress","upload-complete","upload-error","clear-all","download","preview"],setup(t,{emit:r}){e.ref(!1),e.computed(()=>{const s=["krds-file-upload","line"];return t.class&&s.push(t.class),s});const o=e.computed(()=>t.modelValue?.length||0);return e.computed(()=>!t.disabled&&o.value<t.maxFiles),()=>null}}),J=e.defineComponent({name:"KrdsBadge",props:{type:{type:String,default:"outline"},color:{type:String,default:"primary"},size:{type:String,default:"large"},number:{type:Boolean,default:!1},class:{type:String,default:void 0}},emits:["click"],setup(t,{emit:r,slots:o}){const s=e.computed(()=>{const a=["krds-badge"];return a.push(`${t.type}-${t.color}`),t.size&&a.push(t.size),t.number&&a.push("number"),t.class&&a.push(t.class),a}),i=a=>{r("click",a)};return()=>e.h("span",{type:t.type,color:t.color,size:t.size,number:t.number,class:s.value,onClick:i},o.default?.())}}),Q=e.defineComponent({name:"KrdsTag",props:{link:{type:Boolean,default:!1},href:{type:String,default:"#"},target:{type:String,default:void 0},rel:{type:String,default:void 0},class:{type:String,default:void 0}},emits:["remove"],setup(t,{emit:r,slots:o}){const s=e.computed(()=>{const n=["krds-btn-tag"];return t.link&&n.push("link"),t.class&&n.push(t.class),n}),i=n=>{r("remove",n)},a=()=>e.h("button",{type:"button",class:"btn-delete",onClick:i},[e.h("span",{class:"sr-only"},"삭제")]);return()=>{const n=[],d=o.default?.();if(d&&n.push(d),t.link||n.push(a()),t.link){const m={href:t.href,class:s.value};return t.target&&(m.target=t.target),t.rel&&(m.rel=t.rel),e.h("a",m,n)}return e.h("span",{class:s.value},n)}}}),X=e.defineComponent({name:"KrdsTagGroup",props:{size:{type:String,default:"medium"},class:{type:String,default:void 0}},setup(t,{slots:r}){const o=e.computed(()=>{const s=["krds-tag-wrap"];return t.size&&s.push(t.size),t.class&&s.push(t.class),s});return()=>e.h("div",{class:o.value},r.default?.())}}),Z=e.defineComponent({name:"KrdsMasthead",props:{class:{type:String,default:void 0}},emits:["click"],setup(t,{emit:r,slots:o}){const s=e.computed(()=>{const a=[""];return t.class&&a.push(t.class),a}),i=a=>{r("click",a)};return()=>e.h("div",{id:"krds-masthead",class:s.value,onClick:i},[e.h("div",{class:"toggle-wrap"},[e.h("div",{class:"toggle-head"},[e.h("div",{class:"inner"},[e.h("span",{class:"nuri-txt"},o.default?.())])])])])}});let qe=0;function x(t="krds"){return`${t}-${++qe}`}function He(){const t=Date.now().toString(36).slice(-4),r=Math.random().toString(36).substring(2,5);return`${t}${r}`}function L(...t){return t.filter(Boolean).join(" ")}const ee=e.defineComponent({name:"KrdsToggleSwitch",props:{modelValue:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},label:{type:String,default:void 0},size:{type:String,default:"medium",validator:t=>["medium","large"].includes(t)},name:{type:String,default:void 0},required:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},class:{type:String,default:void 0},id:{type:String,default:void 0}},emits:["update:modelValue","change"],setup(t,{emit:r,attrs:o}){const s=e.computed(()=>t.modelValue),i=e.computed(()=>L("krds-form-toggle-switch",t.size,t.class)),a=d=>{if(t.disabled)return;const S=d.target.checked;r("update:modelValue",S),r("change",S)},n=e.computed(()=>t.id||x("toggle-switch"));return()=>e.h("div",{class:i.value},[e.h("input",{type:"checkbox",id:n.value,name:t.name,checked:s.value,disabled:t.disabled,onChange:a,...o}),e.h("label",{for:n.value},[e.h("span",{class:"switch-toggle"},[e.h("i")]),t.label||""])])}}),te=e.defineComponent({name:"KrdsCheckArea",props:{class:{type:String,default:void 0}},setup(t,{slots:r}){return()=>{const o=["krds-check-area"];return t.class&&o.push(t.class),e.h("div",{class:o},r.default?.())}}}),ae=e.defineComponent({name:"KrdsCheckbox",props:{modelValue:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},size:{type:String,default:"medium",validator:t=>["medium","large"].includes(t)},chip:{type:Boolean,default:!1},class:{type:String,default:void 0},id:{type:String,default:void 0}},emits:["update:modelValue","change"],slots:Object,setup(t,{emit:r,attrs:o,slots:s}){const i=e.computed(()=>t.modelValue),a=e.computed(()=>{const m=t.chip?"krds-form-chip":"krds-form-check";return L(m,t.size,t.class)}),n=m=>{if(t.disabled)return;const C=m.target.checked;r("update:modelValue",C),r("change",C)},d=e.computed(()=>t.id||x("checkbox"));return()=>{const m=[e.h("input",{type:"checkbox",id:d.value,checked:i.value,disabled:t.disabled,onChange:n,...o}),e.h("label",{for:d.value},s.default?.())];return s.description&&!t.chip&&m.push(e.h("div",{class:"krds-form-check-cnt"},e.h("p",{class:"krds-form-check-p"},s.description()))),e.h("div",{class:a.value},m)}}}),ne=e.defineComponent({name:"KrdsStepIndicator",props:{modelValue:{type:Number,default:0},class:{type:String,default:void 0}},emits:["update:modelValue"],setup(t,{slots:r}){const o=e.computed(()=>{const d=["krds-step-wrap"];return t.class&&d.push(t.class),d}),s=d=>{const m=t.modelValue||0;return d<m?"done":d===m?"active":"pending"},i=e.ref(0),a=()=>{i.value=0},n=()=>i.value++;return e.provide("stepIndicator",{activeStep:e.computed(()=>t.modelValue||0),getStepStatus:s,getNextStepIndex:n,resetStepIndex:a}),()=>(a(),e.h("ol",{class:o.value},r.default?.()))}}),le=e.defineComponent({name:"KrdsStep",props:{step:{type:[String,Number],required:!0},title:{type:String,required:!0},status:{type:String,default:void 0},class:{type:String,default:void 0}},emits:["click"],setup(t,{emit:r,slots:o}){const s=e.inject("stepIndicator"),i=s?s.getNextStepIndex():-1,a=e.computed(()=>t.status?t.status:s&&i>=0?s.getStepStatus(i):"pending"),n=e.computed(()=>{const m=[a.value];return t.class&&m.push(t.class),m}),d=m=>{r("click",m,t.step)};return()=>{const m=a.value==="active";return e.h("li",{class:n.value,onClick:d},[e.h("span",[m&&e.h("em",{class:"sr-only"},"현재단계"),e.h("i",{class:"step"},t.step),e.h("span",{class:"step-tit"},t.title),o.default?.()])])}}}),se=e.defineComponent({name:"KrdsSkipLink",props:{href:{type:String,required:!0,validator:t=>t.startsWith("#")},class:{type:[String,Array,Object],default:void 0},id:{type:String,default:"krds-skip-link"}},setup(t,{slots:r}){return()=>e.h("div",{id:t.id,class:t.class},[e.h("a",{href:t.href},r.default?.())])}}),Re=["id","aria-label"],je={class:"breadcrumb"},Ye=["href","aria-current","onClick"],Ge={key:0},oe=e.defineComponent({__name:"KrdsBreadcrumb",props:{items:{},id:{default:void 0},ariaLabel:{default:"현재 경로"},showHomeIcon:{type:Boolean,default:!0}},emits:["item-click"],setup(t,{emit:r}){const o=t,s=r,i=n=>n===o.items.length-1,a=(n,d)=>{n.onClick&&n.onClick(d),s("item-click",n,d)};return(n,d)=>(e.openBlock(),e.createElementBlock("nav",{id:n.id,class:"krds-breadcrumb-wrap","aria-label":n.ariaLabel},[e.createElementVNode("ol",je,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.items,(m,S)=>(e.openBlock(),e.createElementBlock("li",{key:`breadcrumb-${S}`,class:e.normalizeClass({home:S===0&&n.showHomeIcon})},[e.createElementVNode("a",{href:m.href||"#",class:"txt","aria-current":i(S)?"page":void 0,onClick:C=>a(m,C)},[S===0&&n.showHomeIcon?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",Ge,e.toDisplayString(m.text),1))],8,Ye)],2))),128))])],8,Re))}}),re=e.defineComponent({name:"KrdsInPageNavigation",props:{title:{type:String,default:void 0},caption:{type:String,default:"이 페이지의 구성"},items:{type:Array,default:()=>[]},autoActive:{type:Boolean,default:!0},headerTopSelector:{type:String,default:"#krds-masthead"},headerInnerSelector:{type:String,default:"#krds-header .header-in"},class:{type:String,default:void 0}},emits:["itemClick"],slots:Object,setup(t,{emit:r,slots:o}){const s=e.ref(""),i=e.ref(new Map),a=e.computed(()=>{const c=["krds-in-page-navigation-type"];return t.class&&c.push(t.class),c}),n=()=>{const c=t.headerTopSelector,l=t.headerInnerSelector,p=document.querySelector(c)?.clientHeight||0,f=document.querySelector(l)?.clientHeight||0;return p+f},d=(c,l)=>{if(r("itemClick",c,l),c.href.startsWith("#")){l.preventDefault();const p=document.querySelector(c.href);if(p){const f=n();if(window.scrollTo({left:0,top:p.getBoundingClientRect().top+window.scrollY-f,behavior:"smooth"}),s.value=c.href,l instanceof KeyboardEvent){const k=p.querySelector(".sec-tit, h1, h2, h3, h4, h5, h6");k&&k instanceof HTMLElement&&(k.setAttribute("tabindex","-1"),k.focus({preventScroll:!0}))}}}},m=()=>{i.value.clear(),t.items&&t.items.filter(c=>c.href.startsWith("#")).forEach(c=>{const l=document.querySelector(c.href);l&&i.value.set(c.href,l)})},S=()=>{if(!t.autoActive||!t.items||i.value.size===0)return;const c=window.innerHeight,l=Math.ceil(c/5),p=window.scrollY+c,f=document.body.scrollHeight,k=t.items.filter(K=>K.href.startsWith("#")&&i.value.has(K.href)).map(K=>({href:K.href,element:i.value.get(K.href),item:K}));if(k.length===0)return;const w=k[0],I=k[k.length-1],N=w.element.offsetTop;let D="";if(p>=f)D=I.href;else if(window.scrollY<=N)D=w.href;else for(const K of k){const M=K.element.offsetHeight,B=K.element.offsetTop-l;if(window.scrollY>B&&window.scrollY<=B+M){D=K.href;break}}D&&D!==s.value&&(s.value=D)},C=()=>{if(!t.items)return;const c=t.items.find(l=>l.active);c?s.value=c.href:t.items.length>0&&(s.value=t.items[0].href)};e.onMounted(()=>{if(C(),t.autoActive){m(),S(),window.addEventListener("scroll",S,{passive:!0});const c=new MutationObserver(()=>{m()});c.observe(document.body,{childList:!0,subtree:!0}),e.onUnmounted(()=>{c.disconnect()})}}),e.onUnmounted(()=>{t.autoActive&&(window.removeEventListener("scroll",S),i.value.clear())});const v=()=>!t.caption&&!t.title?null:e.h("div",{class:"in-page-navigation-header"},[t.caption&&e.h("p",{class:"quick-caption"},t.caption),t.title&&e.h("p",{class:"quick-title"},t.title)]),h=()=>{if(!t.items)return null;const c=t.items.map(l=>{const p=s.value===l.href||!t.autoActive&&l.active;return e.h("li",{key:l.href},[e.h("a",{href:l.href,class:p?"active":"",onClick:f=>d(l,f),onKeydown:f=>{(f.key==="Enter"||f.key===" ")&&(f.preventDefault(),d(l,f))}},l.text)])});return e.h("nav",{class:"in-page-navigation-list"},[e.h("ul",{},c)])},E=()=>o.action?e.h("div",{class:"in-page-navigation-action"},[o.action()]):null;return()=>e.h("div",{class:a.value},[e.h("div",{class:"krds-in-page-navigation-area"},[v(),h(),E()].filter(Boolean))])}}),Ue=["id"],We={class:"page-links"},Je=["href","aria-current","onClick"],Qe={key:0},Xe=["aria-label"],ie=e.defineComponent({__name:"KrdsPagination",props:{modelValue:{default:1},min:{default:1},max:{},id:{default:void 0},ariaLabel:{default:"페이지 내비게이션"},pageRange:{default:8}},emits:["update:modelValue"],setup(t,{emit:r}){const o=t,s=r,i=e.computed(()=>Math.max(1,o.min)),a=e.computed(()=>o.modelValue??i.value),n=e.computed(()=>a.value<=i.value),d=e.computed(()=>a.value>=o.max),m=e.computed(()=>{if(!n.value)return"#"}),S=e.computed(()=>{if(!d.value)return"#"}),C=e.computed(()=>{const{pageRange:c,max:l}=o,p=1,f=[];if(l<=c+2*p)for(let k=i.value;k<=l;k++)f.push({type:"page",key:`page-${k}`,page:k,href:"#"});else{const k=Math.min(p,l),w=Math.max(l-p+1,1),I=Math.max(i.value,a.value-Math.floor(c/2)),N=Math.min(l,I+c-1),D=Math.max(i.value,N-c+1);for(let B=i.value;B<=k;B++)f.push({type:"page",key:`page-${B}`,page:B,href:"#"});D>k+1&&f.push({type:"ellipsis",key:"ellipsis-left",ariaLabel:"페이지 생략"});const K=Math.max(D,k+1),M=Math.min(N,w-1);for(let B=K;B<=M;B++)f.push({type:"page",key:`page-${B}`,page:B,href:"#"});N<w-1&&f.push({type:"ellipsis",key:"ellipsis-right",ariaLabel:"페이지 생략"});for(let B=w;B<=l;B++)f.push({type:"page",key:`page-${B}`,page:B,href:"#"})}return f}),v=(c,l)=>{if(c===a.value){l.preventDefault();return}s("update:modelValue",c)},h=c=>{if(n.value){c.preventDefault();return}const l=a.value-1;s("update:modelValue",l)},E=c=>{if(d.value){c.preventDefault();return}const l=a.value+1;s("update:modelValue",l)};return(c,l)=>{const p=e.resolveDirective("sr-only");return e.openBlock(),e.createElementBlock("div",{id:c.id,class:"krds-pagination"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.value?"span":"a"),{href:n.value?void 0:m.value,class:e.normalizeClass(["page-navi","prev",{disabled:n.value}]),onClick:h},{default:e.withCtx(()=>[...l[0]||(l[0]=[e.createTextVNode(" 이전 ",-1)])]),_:1},8,["href","class"])),e.createElementVNode("div",We,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(C.value,f=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:f.key},[f.type==="page"?(e.openBlock(),e.createElementBlock("a",{key:0,href:f.href||"#",class:e.normalizeClass(["page-link",{active:f.page===a.value}]),"aria-current":f.page===a.value?"page":void 0,onClick:k=>v(f.page,k)},[f.page===a.value?e.withDirectives((e.openBlock(),e.createElementBlock("span",Qe,[...l[1]||(l[1]=[e.createTextVNode("현재페이지",-1)])])),[[p]]):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(f.page),1)],10,Je)):f.type==="ellipsis"?(e.openBlock(),e.createElementBlock("span",{key:1,class:"page-link link-dot","aria-label":f.ariaLabel},null,8,Xe)):e.createCommentVNode("",!0)],64))),128))]),(e.openBlock(),e.createBlock(e.resolveDynamicComponent(d.value?"span":"a"),{href:d.value?void 0:S.value,class:e.normalizeClass(["page-navi","next",{disabled:d.value}]),onClick:E},{default:e.withCtx(()=>[...l[2]||(l[2]=[e.createTextVNode(" 다음 ",-1)])]),_:1},8,["href","class"]))],8,Ue)}}}),de=Object.freeze(Object.defineProperty({__proto__:null,KrdsBadge:J,KrdsBreadcrumb:oe,KrdsButton:$,KrdsButtonGroup:A,KrdsCheckArea:te,KrdsCheckbox:ae,KrdsDateInput:G,KrdsFileUpload:W,KrdsFormGroup:Y,KrdsFormHint:j,KrdsFormLabel:R,KrdsIcon:O,KrdsInPageNavigation:re,KrdsInput:H,KrdsLink:q,KrdsMasthead:Z,KrdsPagination:ie,KrdsSkipLink:se,KrdsSpinner:T,KrdsStep:le,KrdsStepIndicator:ne,KrdsTag:Q,KrdsTagGroup:X,KrdsTextarea:U,KrdsToggleSwitch:ee},Symbol.toStringTag,{value:"Module"})),P={mounted(t,r){r.value!==!1&&t.classList.add("sr-only")},updated(t,r){r.value===!1?t.classList.remove("sr-only"):t.classList.add("sr-only")},unmounted(t){t.classList.remove("sr-only")}},ce={"sr-only":P},ue=t=>{t.directive("sr-only",P)},fe=Object.freeze(Object.defineProperty({__proto__:null,default:ce,directives:ce,installDirectives:ue,vSrOnly:P},Symbol.toStringTag,{value:"Module"})),Ze={install(t,r={}){t.provide("krds:config",r);const o=r.components||Object.keys(de);o.forEach(s=>{const i=de[s];i&&t.component(s,i)}),typeof fe=="object"&&fe!==null&&ue(t),t.config.globalProperties.$krds={version:"__VERSION__"},process.env.NODE_ENV!=="production"&&console.log(`[KRDS Vue] v__VERSION__ 설치 완료 - 컴포넌트: ${o.length}개`)}},et="__VERSION__";g.KrdsBadge=J,g.KrdsBreadcrumb=oe,g.KrdsButton=$,g.KrdsButtonGroup=A,g.KrdsCheckArea=te,g.KrdsCheckbox=ae,g.KrdsDateInput=G,g.KrdsFileUpload=W,g.KrdsFormGroup=Y,g.KrdsFormHint=j,g.KrdsFormLabel=R,g.KrdsIcon=O,g.KrdsInPageNavigation=re,g.KrdsInput=H,g.KrdsLink=q,g.KrdsMasthead=Z,g.KrdsPagination=ie,g.KrdsSkipLink=se,g.KrdsSpinner=T,g.KrdsStep=le,g.KrdsStepIndicator=ne,g.KrdsTag=Q,g.KrdsTagGroup=X,g.KrdsTextarea=U,g.KrdsToggleSwitch=ee,g.classNames=L,g.default=Ze,g.generateId=x,g.generateUid=He,g.version=et,Object.defineProperties(g,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
|
|
2
2
|
//# sourceMappingURL=krds-vue.umd.js.map
|