{"version":3,"file":"use-shortcut.mjs","names":[],"sources":["../../../../../../../packages/components/date-picker-panel/src/composables/use-shortcut.ts"],"sourcesContent":["import { getCurrentInstance, useAttrs, useSlots } from 'vue'\nimport dayjs from 'dayjs'\nimport { isFunction } from '@element-plus/utils'\n\nimport type { SetupContext } from 'vue'\nimport type { useLocale } from '@element-plus/hooks'\nimport type { RangePickerSharedEmits } from '../props/shared'\n\n// FIXME: extract this to `date-picker.ts`\nexport type Shortcut = {\n  text: string\n  value: [Date, Date] | (() => [Date, Date])\n  onClick?: (ctx: Omit<SetupContext<RangePickerSharedEmits>, 'expose'>) => void\n}\n\nexport const useShortcut = (lang: ReturnType<typeof useLocale>['lang']) => {\n  const { emit } = getCurrentInstance()!\n  const attrs = useAttrs()\n  const slots = useSlots()\n\n  const handleShortcutClick = (shortcut: Shortcut) => {\n    const shortcutValues = isFunction(shortcut.value)\n      ? shortcut.value()\n      : shortcut.value\n\n    if (shortcutValues) {\n      emit('pick', [\n        dayjs(shortcutValues[0]).locale(lang.value),\n        dayjs(shortcutValues[1]).locale(lang.value),\n      ])\n      return\n    }\n    if (shortcut.onClick) {\n      shortcut.onClick({\n        attrs,\n        slots,\n        emit,\n      })\n    }\n  }\n\n  return handleShortcutClick\n}\n"],"mappings":";;;;;AAeA,MAAa,eAAe,SAA+C;CACzE,MAAM,EAAE,SAAS,oBAAoB;CACrC,MAAM,QAAQ,UAAU;CACxB,MAAM,QAAQ,UAAU;CAExB,MAAM,uBAAuB,aAAuB;EAClD,MAAM,iBAAiB,WAAW,SAAS,MAAM,GAC7C,SAAS,OAAO,GAChB,SAAS;AAEb,MAAI,gBAAgB;AAClB,QAAK,QAAQ,CACX,MAAM,eAAe,GAAG,CAAC,OAAO,KAAK,MAAM,EAC3C,MAAM,eAAe,GAAG,CAAC,OAAO,KAAK,MAAM,CAC5C,CAAC;AACF;;AAEF,MAAI,SAAS,QACX,UAAS,QAAQ;GACf;GACA;GACA;GACD,CAAC;;AAIN,QAAO"}