{"version":3,"file":"use-shortcut.mjs","sources":["../../../../../../packages/components/date-picker/src/composables/use-shortcut.ts"],"sourcesContent":["import { getCurrentInstance, useAttrs, useSlots } from 'vue'\nimport dayjs from 'dayjs'\nimport { isFunction } from '@element-ultra/utils'\nimport type { SetupContext } from 'vue'\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: string) => {\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),\n        dayjs(shortcutValues[1]).locale(lang),\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"],"names":[],"mappings":";;;;;AAaa,MAAA,WAAA,GAAc,CAAC,IAAiB,KAAA;AAC3C,EAAM,MAAA,EAAE,IAAK,EAAA,GAAI,kBAAmB,EAAA,CAAA;AACpC,EAAA,MAAM,QAAQ,QAAS,EAAA,CAAA;AACvB,EAAA,MAAM,QAAQ,QAAS,EAAA,CAAA;AAEvB,EAAM,MAAA,mBAAA,GAAsB,CAAC,QAAuB,KAAA;AAClD,IAAM,MAAA,cAAA,GAAiB,WAAW,QAAS,CAAA,KAAK,IAC5C,QAAS,CAAA,KAAA,KACT,QAAS,CAAA,KAAA,CAAA;AAEb,IAAA,IAAI,cAAgB,EAAA;AAClB,MAAA,IAAA,CAAK,MAAQ,EAAA;AAAA,QACX,MAAM,cAAe,CAAA,CAAC,CAAC,CAAA,CAAE,OAAO,IAAI,CAAA;AAAA,QACpC,MAAM,cAAe,CAAA,CAAC,CAAC,CAAA,CAAE,OAAO,IAAI,CAAA;AAAA,OACrC,CAAA,CAAA;AACD,MAAA,OAAA;AAAA,KACF;AACA,IAAA,IAAI,SAAS,OAAS,EAAA;AACpB,MAAA,QAAA,CAAS,OAAQ,CAAA;AAAA,QACf,KAAA;AAAA,QACA,KAAA;AAAA,QACA,IAAA;AAAA,OACD,CAAA,CAAA;AAAA,KACH;AAAA,GACF,CAAA;AAEA,EAAO,OAAA,mBAAA,CAAA;AACT;;;;"}