{"version":3,"file":"VDatePickerMonths.mjs","names":["VBtn","useDate","useProxiedModel","computed","watchEffect","convertToUnit","createRange","genericComponent","propsFactory","useRender","makeVDatePickerMonthsProps","color","String","height","Number","modelValue","VDatePickerMonths","name","props","emits","date","setup","_ref","slots","adapter","model","months","startOfYear","map","i","text","format","getNextMonth","value","getMonth","_createVNode","month","btnProps","active","undefined","rounded","variant","onClick","_mergeProps"],"sources":["../../../src/components/VDatePicker/VDatePickerMonths.tsx"],"sourcesContent":["// Styles\nimport './VDatePickerMonths.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { useDate } from '@/composables/date'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, watchEffect } from 'vue'\nimport { convertToUnit, createRange, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nexport type VDatePickerMonthsSlots = {\n month: {\n month: {\n text: string\n value: number\n }\n i: number\n props: {\n onClick: () => void\n }\n }\n}\n\nexport const makeVDatePickerMonthsProps = propsFactory({\n color: String,\n height: [String, Number],\n modelValue: Number,\n}, 'VDatePickerMonths')\n\nexport const VDatePickerMonths = genericComponent()({\n name: 'VDatePickerMonths',\n\n props: makeVDatePickerMonthsProps(),\n\n emits: {\n 'update:modelValue': (date: any) => true,\n },\n\n setup (props, { slots }) {\n const adapter = useDate()\n const model = useProxiedModel(props, 'modelValue')\n\n const months = computed(() => {\n let date = adapter.startOfYear(adapter.date())\n\n return createRange(12).map(i => {\n const text = adapter.format(date, 'monthShort')\n date = adapter.getNextMonth(date)\n\n return {\n text,\n value: i,\n }\n })\n })\n\n watchEffect(() => {\n model.value = model.value ?? adapter.getMonth(adapter.date())\n })\n\n useRender(() => (\n \n
\n { months.value.map((month, i) => {\n const btnProps = {\n active: model.value === i,\n color: model.value === i ? props.color : undefined,\n rounded: true,\n text: month.text,\n variant: model.value === month.value ? 'flat' : 'text',\n onClick: () => onClick(i),\n } as const\n\n function onClick (i: number) {\n model.value = i\n }\n\n return slots.month?.({\n month,\n i,\n props: btnProps,\n }) ?? (\n onClick(i) }\n />\n )\n })}\n
\n \n ))\n\n return {}\n },\n})\n\nexport type VDatePickerMonths = InstanceType\n"],"mappings":"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"}