{"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  GetDisabledHoursState,\n  GetDisabledMinutesState,\n  GetDisabledSecondsState,\n} from '../types'\nimport type {\n  GetDisabledHours,\n  GetDisabledMinutes,\n  GetDisabledSeconds,\n} from '../props/shared'\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: GetDisabledHoursState = (role, compare?) => {\n    return makeAvailableArr(getHoursList(role, compare))\n  }\n\n  const getAvailableMinutes: GetDisabledMinutesState = (\n    hour,\n    role,\n    compare?\n  ) => {\n    return makeAvailableArr(getMinutesList(hour, role, compare))\n  }\n\n  const getAvailableSeconds: GetDisabledSecondsState = (\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":"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"}