{"version":3,"file":"JDateRangeField.vue.cjs","sources":["../../../../src/components/molecules/JDateRangeField.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport JDatepicker from '@/components/atoms/JDatepicker.vue'\nimport { cn } from '@/lib/utils'\n\nexport type DateRangeValue = { start: string | null; end: string | null }\n\nconst props = withDefaults(\n  defineProps<{\n    modelValue?: DateRangeValue\n    min?: string\n    max?: string\n    disabled?: boolean\n    required?: boolean\n    placeholder?: { start?: string; end?: string }\n    separator?: string\n    class?: string\n    id?: string\n    name?: string\n  }>(),\n  {\n    separator: '~',\n  }\n)\n\nconst emit = defineEmits<{\n  'update:modelValue': [value: DateRangeValue]\n  'change': [value: DateRangeValue]\n  'focus': [event: FocusEvent]\n  'blur': [event: FocusEvent]\n}>()\n\nconst current = computed<DateRangeValue>(() => props.modelValue ?? { start: null, end: null })\n\nconst handleChange = (key: 'start' | 'end', val: string | null) => {\n  const next = { ...current.value, [key]: val }\n  emit('update:modelValue', next)\n  emit('change', next)\n}\n</script>\n\n<template>\n  <div :class=\"cn('flex items-center gap-1 w-full', props.class)\">\n    <JDatepicker\n      :model-value=\"current.start\"\n      :disabled=\"disabled\"\n      :required=\"required\"\n      :placeholder=\"placeholder?.start ?? '시작일'\"\n      class=\"flex-1\"\n      @update:model-value=\"handleChange('start', $event)\"\n      @focus=\"emit('focus', $event)\"\n      @blur=\"emit('blur', $event)\"\n    />\n    <span class=\"text-muted-foreground text-xs shrink-0 select-none px-0.5\">{{ separator }}</span>\n    <JDatepicker\n      :model-value=\"current.end\"\n      :disabled=\"disabled\"\n      :required=\"required\"\n      :placeholder=\"placeholder?.end ?? '종료일'\"\n      class=\"flex-1\"\n      @update:model-value=\"handleChange('end', $event)\"\n      @focus=\"emit('focus', $event)\"\n      @blur=\"emit('blur', $event)\"\n    />\n  </div>\n</template>\n"],"names":["props","__props","emit","__emit","current","computed","handleChange","key","val","next","_createElementBlock","_normalizeClass","_unref","cn","_createVNode","JDatepicker","_cache","$event","_createElementVNode","_hoisted_1","_toDisplayString"],"mappings":"0hBAOA,MAAMA,EAAQC,EAkBRC,EAAOC,EAOPC,EAAUC,WAAyB,IAAML,EAAM,YAAc,CAAE,MAAO,KAAM,IAAK,KAAM,EAEvFM,EAAe,CAACC,EAAsBC,IAAuB,CACjE,MAAMC,EAAO,CAAE,GAAGL,EAAQ,MAAO,CAACG,CAAG,EAAGC,CAAA,EACxCN,EAAK,oBAAqBO,CAAI,EAC9BP,EAAK,SAAUO,CAAI,CACrB,8BAIEC,EAAAA,mBAsBM,MAAA,CAtBA,MAAKC,EAAAA,eAAEC,QAAAC,EAAAA,EAAA,EAAE,iCAAmCb,EAAM,KAAK,CAAA,CAAA,GAC3Dc,EAAAA,YASEC,EAAAA,QAAA,CARC,cAAaX,EAAA,MAAQ,MACrB,SAAUH,EAAA,SACV,SAAUA,EAAA,SACV,YAAaA,EAAA,aAAa,OAAK,MAChC,MAAM,SACL,sBAAkBe,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAEX,EAAY,QAAUW,CAAM,GAChD,QAAKD,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAEf,EAAI,QAAUe,CAAM,GAC3B,OAAID,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAEf,EAAI,OAASe,CAAM,EAAA,8DAE5BC,EAAAA,mBAA8F,OAA9FC,EAA8FC,EAAAA,gBAAnBnB,EAAA,SAAS,EAAA,CAAA,EACpFa,EAAAA,YASEC,EAAAA,QAAA,CARC,cAAaX,EAAA,MAAQ,IACrB,SAAUH,EAAA,SACV,SAAUA,EAAA,SACV,YAAaA,EAAA,aAAa,KAAG,MAC9B,MAAM,SACL,sBAAkBe,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAEX,EAAY,MAAQW,CAAM,GAC9C,QAAKD,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAEf,EAAI,QAAUe,CAAM,GAC3B,OAAID,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAEf,EAAI,OAASe,CAAM,EAAA"}