UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 4.74 kB
{"version":3,"file":"use-time-picker.mjs","sources":["../../../../../../../packages/components/time-picker/src/composables/use-time-picker.ts"],"sourcesContent":["import { ref, watch } from 'vue'\nimport { makeList } from '../utils'\n\nimport type { Dayjs } from 'dayjs'\nimport type {\n GetDisabledHours,\n GetDisabledMinutes,\n GetDisabledSeconds,\n} from '../common/props'\n\nconst makeAvailableArr = (disabledList: boolean[]): number[] => {\n const trueOrNumber = (isDisabled: boolean, index: number) =>\n isDisabled || index\n\n const getNumber = (predicate: number | true): predicate is number =>\n predicate !== true\n\n return disabledList.map(trueOrNumber).filter(getNumber)\n}\n\nexport const getTimeLists = (\n disabledHours?: GetDisabledHours,\n disabledMinutes?: GetDisabledMinutes,\n disabledSeconds?: GetDisabledSeconds\n) => {\n const getHoursList = (role: string, compare?: Dayjs) => {\n return makeList(24, disabledHours && (() => disabledHours?.(role, compare)))\n }\n\n const getMinutesList = (hour: number, role: string, compare?: Dayjs) => {\n return makeList(\n 60,\n disabledMinutes && (() => disabledMinutes?.(hour, role, compare))\n )\n }\n\n const getSecondsList = (\n hour: number,\n minute: number,\n role: string,\n compare?: Dayjs\n ) => {\n return makeList(\n 60,\n disabledSeconds && (() => disabledSeconds?.(hour, minute, role, compare))\n )\n }\n\n return {\n getHoursList,\n getMinutesList,\n getSecondsList,\n }\n}\n\nexport const buildAvailableTimeSlotGetter = (\n disabledHours: GetDisabledHours,\n disabledMinutes: GetDisabledMinutes,\n disabledSeconds: GetDisabledSeconds\n) => {\n const { getHoursList, getMinutesList, getSecondsList } = getTimeLists(\n disabledHours,\n disabledMinutes,\n disabledSeconds\n )\n\n const getAvailableHours: GetDisabledHours = (role, compare?) => {\n return makeAvailableArr(getHoursList(role, compare))\n }\n\n const getAvailableMinutes: GetDisabledMinutes = (hour, role, compare?) => {\n return makeAvailableArr(getMinutesList(hour, role, compare))\n }\n\n const getAvailableSeconds: GetDisabledSeconds = (\n hour,\n minute,\n role,\n compare?\n ) => {\n return makeAvailableArr(getSecondsList(hour, minute, role, compare))\n }\n\n return {\n getAvailableHours,\n getAvailableMinutes,\n getAvailableSeconds,\n }\n}\n\nexport const useOldValue = (props: {\n parsedValue?: string | Dayjs | Dayjs[]\n visible: boolean\n}) => {\n const oldValue = ref(props.parsedValue)\n\n watch(\n () => props.visible,\n (val) => {\n if (!val) {\n oldValue.value = props.parsedValue\n }\n }\n )\n\n return oldValue\n}\n"],"names":[],"mappings":";;;AAUA,MAAM,gBAAA,GAAmB,CAAC,YAAA,KAAsC;AAC9D,EAAA,MAAM,YAAA,GAAe,CAAC,UAAA,EAAqB,KAAA,KACzC,UAAA,IAAc,KAAA;AAEhB,EAAA,MAAM,SAAA,GAAY,CAAC,SAAA,KACjB,SAAA,KAAc,IAAA;AAEhB,EAAA,OAAO,YAAA,CAAa,GAAA,CAAI,YAAY,CAAA,CAAE,OAAO,SAAS,CAAA;AACxD,CAAA;AAEO,MAAM,YAAA,GAAe,CAC1B,aAAA,EACA,eAAA,EACA,eAAA,KACG;AACH,EAAA,MAAM,YAAA,GAAe,CAAC,IAAA,EAAc,OAAA,KAAoB;AACtD,IAAA,OAAO,SAAS,EAAA,EAAI,aAAA,KAAkB,MAAM,aAAA,IAAA,IAAA,GAAA,MAAA,GAAA,aAAA,CAAgB,MAAM,OAAA,CAAA,CAAS,CAAA;AAAA,EAC7E,CAAA;AAEA,EAAA,MAAM,cAAA,GAAiB,CAAC,IAAA,EAAc,IAAA,EAAc,OAAA,KAAoB;AACtE,IAAA,OAAO,QAAA;AAAA,MACL,EAAA;AAAA,MACA,eAAA,KAAoB,MAAM,eAAA,IAAA,IAAA,GAAA,MAAA,GAAA,eAAA,CAAkB,IAAA,EAAM,IAAA,EAAM,OAAA,CAAA;AAAA,KAC1D;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,cAAA,GAAiB,CACrB,IAAA,EACA,MAAA,EACA,MACA,OAAA,KACG;AACH,IAAA,OAAO,QAAA;AAAA,MACL,EAAA;AAAA,MACA,eAAA,KAAoB,MAAM,eAAA,IAAA,IAAA,GAAA,MAAA,GAAA,eAAA,CAAkB,IAAA,EAAM,QAAQ,IAAA,EAAM,OAAA,CAAA;AAAA,KAClE;AAAA,EACF,CAAA;AAEA,EAAA,OAAO;AAAA,IACL,YAAA;AAAA,IACA,cAAA;AAAA,IACA;AAAA,GACF;AACF;AAEO,MAAM,4BAAA,GAA+B,CAC1C,aAAA,EACA,eAAA,EACA,eAAA,KACG;AACH,EAAA,MAAM,EAAE,YAAA,EAAc,cAAA,EAAgB,cAAA,EAAe,GAAI,YAAA;AAAA,IACvD,aAAA;AAAA,IACA,eAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,MAAM,iBAAA,GAAsC,CAAC,IAAA,EAAM,OAAA,KAAa;AAC9D,IAAA,OAAO,gBAAA,CAAiB,YAAA,CAAa,IAAA,EAAM,OAAO,CAAC,CAAA;AAAA,EACrD,CAAA;AAEA,EAAA,MAAM,mBAAA,GAA0C,CAAC,IAAA,EAAM,IAAA,EAAM,OAAA,KAAa;AACxE,IAAA,OAAO,gBAAA,CAAiB,cAAA,CAAe,IAAA,EAAM,IAAA,EAAM,OAAO,CAAC,CAAA;AAAA,EAC7D,CAAA;AAEA,EAAA,MAAM,mBAAA,GAA0C,CAC9C,IAAA,EACA,MAAA,EACA,MACA,OAAA,KACG;AACH,IAAA,OAAO,iBAAiB,cAAA,CAAe,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,OAAO,CAAC,CAAA;AAAA,EACrE,CAAA;AAEA,EAAA,OAAO;AAAA,IACL,iBAAA;AAAA,IACA,mBAAA;AAAA,IACA;AAAA,GACF;AACF;AAEO,MAAM,WAAA,GAAc,CAAC,KAAA,KAGtB;AACJ,EAAA,MAAM,QAAA,GAAW,GAAA,CAAI,KAAA,CAAM,WAAW,CAAA;AAEtC,EAAA,KAAA;AAAA,IACE,MAAM,KAAA,CAAM,OAAA;AAAA,IACZ,CAAC,GAAA,KAAQ;AACP,MAAA,IAAI,CAAC,GAAA,EAAK;AACR,QAAA,QAAA,CAAS,QAAQ,KAAA,CAAM,WAAA;AAAA,MACzB;AAAA,IACF;AAAA,GACF;AAEA,EAAA,OAAO,QAAA;AACT;;;;"}