element-plus
Version:
A Component Library for Vue 3
1 lines • 2.08 kB
Source Map (JSON)
{"version":3,"file":"use-shortcut.mjs","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"],"names":[],"mappings":";;;;AAeO,MAAM,WAAA,GAAc,CAAC,IAAA,KAA+C;AACzE,EAAA,MAAM,EAAE,IAAA,EAAK,GAAI,kBAAA,EAAmB;AACpC,EAAA,MAAM,QAAQ,QAAA,EAAS;AACvB,EAAA,MAAM,QAAQ,QAAA,EAAS;AAEvB,EAAA,MAAM,mBAAA,GAAsB,CAAC,QAAA,KAAuB;AAClD,IAAA,MAAM,cAAA,GAAiB,WAAW,QAAA,CAAS,KAAK,IAC5C,QAAA,CAAS,KAAA,KACT,QAAA,CAAS,KAAA;AAEb,IAAA,IAAI,cAAA,EAAgB;AAClB,MAAA,IAAA,CAAK,MAAA,EAAQ;AAAA,QACX,MAAM,cAAA,CAAe,CAAC,CAAC,CAAA,CAAE,MAAA,CAAO,KAAK,KAAK,CAAA;AAAA,QAC1C,MAAM,cAAA,CAAe,CAAC,CAAC,CAAA,CAAE,MAAA,CAAO,KAAK,KAAK;AAAA,OAC3C,CAAA;AACD,MAAA;AAAA,IACF;AACA,IAAA,IAAI,SAAS,OAAA,EAAS;AACpB,MAAA,QAAA,CAAS,OAAA,CAAQ;AAAA,QACf,KAAA;AAAA,QACA,KAAA;AAAA,QACA;AAAA,OACD,CAAA;AAAA,IACH;AAAA,EACF,CAAA;AAEA,EAAA,OAAO,mBAAA;AACT;;;;"}