{"version":3,"file":"basic-year-table.mjs","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/basic-year-table.vue"],"sourcesContent":["<template>\r\n  <table class=\"sg-year-table\" @click=\"handleYearTableClick\">\r\n    <tbody>\r\n      <tr>\r\n        <td class=\"available\" :class=\"getCellStyle(startYear + 0)\">\r\n          <a class=\"cell\">{{ startYear }}</a>\r\n        </td>\r\n        <td class=\"available\" :class=\"getCellStyle(startYear + 1)\">\r\n          <a class=\"cell\">{{ startYear + 1 }}</a>\r\n        </td>\r\n        <td class=\"available\" :class=\"getCellStyle(startYear + 2)\">\r\n          <a class=\"cell\">{{ startYear + 2 }}</a>\r\n        </td>\r\n        <td class=\"available\" :class=\"getCellStyle(startYear + 3)\">\r\n          <a class=\"cell\">{{ startYear + 3 }}</a>\r\n        </td>\r\n      </tr>\r\n      <tr>\r\n        <td class=\"available\" :class=\"getCellStyle(startYear + 4)\">\r\n          <a class=\"cell\">{{ startYear + 4 }}</a>\r\n        </td>\r\n        <td class=\"available\" :class=\"getCellStyle(startYear + 5)\">\r\n          <a class=\"cell\">{{ startYear + 5 }}</a>\r\n        </td>\r\n        <td class=\"available\" :class=\"getCellStyle(startYear + 6)\">\r\n          <a class=\"cell\">{{ startYear + 6 }}</a>\r\n        </td>\r\n        <td class=\"available\" :class=\"getCellStyle(startYear + 7)\">\r\n          <a class=\"cell\">{{ startYear + 7 }}</a>\r\n        </td>\r\n      </tr>\r\n      <tr>\r\n        <td class=\"available\" :class=\"getCellStyle(startYear + 8)\">\r\n          <a class=\"cell\">{{ startYear + 8 }}</a>\r\n        </td>\r\n        <td class=\"available\" :class=\"getCellStyle(startYear + 9)\">\r\n          <a class=\"cell\">{{ startYear + 9 }}</a>\r\n        </td>\r\n        <td></td>\r\n        <td></td>\r\n      </tr>\r\n    </tbody>\r\n  </table>\r\n</template>\r\n\r\n<script lang=\"ts\">\r\nimport { defineComponent, computed } from 'vue'\r\nimport dayjs from 'dayjs'\r\nimport { useLocale } from '@sgui-plus/hooks'\r\nimport { rangeArr } from '@sgui-plus/components/time-picker'\r\nimport { hasClass } from '@sgui-plus/utils/dom'\r\nimport { coerceTruthyValueToArray } from '@sgui-plus/utils/util'\r\n\r\nimport type { PropType } from 'vue'\r\nimport type { Dayjs } from 'dayjs'\r\n\r\nconst datesInYear = (year: Dayjs, lang: string) => {\r\n  const firstDay = dayjs(String(year)).locale(lang).startOf('year')\r\n  const lastDay = firstDay.endOf('year')\r\n  const numOfDays = lastDay.dayOfYear()\r\n  return rangeArr(numOfDays).map((n) => firstDay.add(n, 'day').toDate())\r\n}\r\n\r\nexport default defineComponent({\r\n  props: {\r\n    disabledDate: {\r\n      type: Function as PropType<(_: Date) => void>,\r\n    },\r\n    parsedValue: {\r\n      type: Object as PropType<Dayjs>,\r\n    },\r\n    date: {\r\n      type: Object as PropType<Dayjs>,\r\n    },\r\n  },\r\n\r\n  emits: ['pick'],\r\n\r\n  setup(props, ctx) {\r\n    const { lang } = useLocale()\r\n    const startYear = computed(() => {\r\n      return Math.floor(props.date!.year() / 10) * 10\r\n    })\r\n    const getCellStyle = (year) => {\r\n      const style = {} as any\r\n      const today = dayjs().locale(lang.value)\r\n\r\n      style.disabled = props.disabledDate\r\n        ? datesInYear(year, lang.value).every(props.disabledDate)\r\n        : false\r\n\r\n      style.current =\r\n        coerceTruthyValueToArray(props.parsedValue).findIndex(\r\n          (_) => _.year() === year\r\n        ) >= 0\r\n\r\n      style.today = today.year() === year\r\n\r\n      return style\r\n    }\r\n\r\n    const handleYearTableClick = (event: MouseEvent) => {\r\n      const target = event.target as HTMLDivElement\r\n      if (target.tagName === 'A') {\r\n        if (hasClass((target as any).parentNode, 'disabled')) return\r\n        const year = target.textContent || target.innerText\r\n        ctx.emit('pick', Number(year))\r\n      }\r\n    }\r\n    return {\r\n      startYear,\r\n      getCellStyle,\r\n      handleYearTableClick,\r\n    }\r\n  },\r\n})\r\n</script>\r\n"],"names":["_openBlock","_createElementBlock","_createElementVNode","_normalizeClass","_toDisplayString"],"mappings":"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"}