{"version":3,"file":"calendar-cell.vue2.mjs","sources":["../../../components/calendar/calendar-cell.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { computed } from 'vue'\r\n\r\nimport { useNameHelper } from '@vexip-ui/config'\r\nimport { toAttrValue } from '@vexip-ui/utils'\r\n\r\nimport type { PropType } from 'vue'\r\nimport type { LocaleConfig } from '@vexip-ui/config'\r\nimport type { MonthIndex, WeekIndex } from './symbol'\r\n\r\nconst props = defineProps({\r\n  date: {\r\n    type: Date,\r\n    required: true,\r\n  },\r\n  locale: {\r\n    type: Object as PropType<LocaleConfig['calendar']>,\r\n    required: true,\r\n  },\r\n  selected: {\r\n    type: Boolean,\r\n    default: false,\r\n  },\r\n  hovered: {\r\n    type: Boolean,\r\n    default: false,\r\n  },\r\n  isPrev: {\r\n    type: Boolean,\r\n    default: false,\r\n  },\r\n  isNext: {\r\n    type: Boolean,\r\n    default: false,\r\n  },\r\n  isToday: {\r\n    type: Boolean,\r\n    default: false,\r\n  },\r\n  disabled: {\r\n    type: Boolean,\r\n    default: false,\r\n  },\r\n  inRange: {\r\n    type: Boolean,\r\n    default: false,\r\n  },\r\n})\r\n\r\nconst emit = defineEmits(['select', 'hover'])\r\n\r\ndefineSlots<{\r\n  item: (params: {\r\n    date: Date,\r\n    label: string,\r\n    selected: boolean,\r\n    hovered: boolean,\r\n    isPrev: boolean,\r\n    isNext: boolean,\r\n    isToday: boolean,\r\n    disabled: boolean,\r\n    inRange: boolean,\r\n  }) => any,\r\n  default: (params: {\r\n    date: Date,\r\n    label: string,\r\n    selected: boolean,\r\n    hovered: boolean,\r\n    isPrev: boolean,\r\n    isNext: boolean,\r\n    isToday: boolean,\r\n    disabled: boolean,\r\n    inRange: boolean,\r\n  }) => any,\r\n}>()\r\n\r\nconst nh = useNameHelper('calendar')\r\n\r\nconst label = computed(() => {\r\n  const label = props.locale.ariaLabel\r\n  const year = props.date.getFullYear()\r\n  const month = (props.date.getMonth() + 1) as MonthIndex\r\n  const day = props.date.getDate()\r\n  const weekDay = (props.date.getDay() || 7) as WeekIndex\r\n\r\n  return `${label[`week${weekDay}`]}, ${label[`month${month}`]} ${day}, ${year}`\r\n})\r\n</script>\r\n\r\n<template>\r\n  <div\r\n    :class=\"nh.be('cell')\"\r\n    role=\"gridcell\"\r\n    :aria-selected=\"toAttrValue(selected)\"\r\n    :aria-disabled=\"toAttrValue(disabled)\"\r\n    @mouseenter=\"emit('hover', date)\"\r\n  >\r\n    <slot\r\n      name=\"item\"\r\n      :date=\"date\"\r\n      :label=\"label\"\r\n      :selected=\"selected\"\r\n      :hovered=\"hovered\"\r\n      :is-prev=\"isPrev\"\r\n      :is-next=\"isNext\"\r\n      :is-today=\"isToday\"\r\n      :disabled=\"disabled\"\r\n      :in-range=\"inRange\"\r\n    >\r\n      <div\r\n        :class=\"{\r\n          [nh.be('index')]: true,\r\n          [nh.bem('index', 'selected')]: selected,\r\n          [nh.bem('index', 'hovered')]: hovered,\r\n          [nh.bem('index', 'prev')]: isPrev,\r\n          [nh.bem('index', 'next')]: isNext,\r\n          [nh.bem('index', 'today')]: isToday,\r\n          [nh.bem('index', 'disabled')]: disabled,\r\n          [nh.bem('index', 'in-range')]: inRange,\r\n        }\"\r\n        tabindex=\"0\"\r\n        role=\"button\"\r\n        :aria-label=\"label\"\r\n        :aria-disabled=\"toAttrValue(disabled)\"\r\n        @click=\"emit('select', date)\"\r\n        @keydown.enter.prevent=\"emit('select', date)\"\r\n        @keydown.space.prevent=\"emit('select', date)\"\r\n      >\r\n        <slot\r\n          :date=\"date\"\r\n          :label=\"label\"\r\n          :selected=\"selected\"\r\n          :hovered=\"hovered\"\r\n          :is-prev=\"isPrev\"\r\n          :is-next=\"isNext\"\r\n          :is-today=\"isToday\"\r\n          :disabled=\"disabled\"\r\n          :in-range=\"inRange\"\r\n        >\r\n          <div :class=\"nh.be('index-inner')\">\r\n            {{ date.getDate() }}\r\n          </div>\r\n        </slot>\r\n      </div>\r\n    </slot>\r\n  </div>\r\n</template>\r\n"],"names":["props","__props","emit","__emit","nh","useNameHelper","label","computed","year","month","day","weekDay","_createElementBlock","_normalizeClass","_unref","toAttrValue","_cache","$event","_renderSlot","_ctx","_createElementVNode","_withKeys","_withModifiers","_toDisplayString"],"mappings":"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"}