{"version":3,"file":"time-picker.mjs","sources":["../../../../../../packages/components/time-picker/src/time-picker.tsx"],"sourcesContent":["import { defineComponent, provide, ref } from 'vue'\nimport dayjs from 'dayjs'\nimport customParseFormat from 'dayjs/plugin/customParseFormat'\nimport { DEFAULT_FORMATS_TIME } from './constants'\nimport Picker from './common/picker.vue'\nimport TimePickPanel from './time-picker-com/panel-time-pick.vue'\nimport TimeRangePanel from './time-picker-com/panel-time-range.vue'\nimport { timePickerDefaultProps } from './common/props'\ndayjs.extend(customParseFormat)\n\nexport default defineComponent({\n  name: 'BTimePicker',\n  install: null,\n  props: {\n    ...timePickerDefaultProps,\n    isRange: {\n      type: Boolean,\n      default: false,\n    },\n  },\n  emits: ['update:modelValue'],\n  setup(props, ctx) {\n    const commonPicker = ref<InstanceType<typeof Picker>>()\n    const [type, Panel] = props.isRange\n      ? ['timerange', TimeRangePanel]\n      : ['time', TimePickPanel]\n\n    const modelUpdater = (value: any) => ctx.emit('update:modelValue', value)\n    provide('BPopperOptions', props.popperOptions)\n    ctx.expose({\n      /**\n       * @description focus on the input element\n       */\n      focus: (e: FocusEvent | undefined) => {\n        commonPicker.value?.handleFocusInput(e)\n      },\n      /**\n       * @description blur from the input element\n       */\n      blur: (e: FocusEvent | undefined) => {\n        commonPicker.value?.handleBlurInput(e)\n      },\n      /**\n       * @description opens the picker element\n       */\n      handleOpen: () => {\n        commonPicker.value?.handleOpen()\n      },\n      /**\n       * @description closes the picker element\n       */\n      handleClose: () => {\n        commonPicker.value?.handleClose()\n      },\n    })\n\n    return () => {\n      const format = props.format ?? DEFAULT_FORMATS_TIME\n\n      return (\n        <Picker\n          {...props}\n          ref={commonPicker}\n          type={type}\n          format={format}\n          data-test-name={'time-picker'}\n          onUpdate:modelValue={modelUpdater}\n        >\n          {{\n            default: (props: any) => <Panel {...props} />,\n          }}\n        </Picker>\n      )\n    }\n  },\n})\n"],"names":["dayjs","extend","customParseFormat","defineComponent","name","install","props","timePickerDefaultProps","isRange","type","Boolean","default","emits","setup","ctx","commonPicker","ref","Panel","TimeRangePanel","TimePickPanel","modelUpdater","value","emit","provide","popperOptions","expose","focus","e","handleFocusInput","blur","handleBlurInput","handleOpen","handleClose","format","DEFAULT_FORMATS_TIME","_createVNode","Picker","_mergeProps"],"mappings":";;;;;;;;;AAQAA,KAAAA,CAAMC,OAAOC,iBAAiB,CAAA,CAAA;AAE9B,iBAAeC,eAAgB,CAAA;AAAA,EAC7BC,IAAM,EAAA,aAAA;AAAA,EACNC,OAAS,EAAA,IAAA;AAAA,EACTC,KAAO,EAAA;AAAA,IACL,GAAGC,sBAAAA;AAAAA,IACHC,OAAS,EAAA;AAAA,MACPC,IAAMC,EAAAA,OAAAA;AAAAA,MACNC,OAAS,EAAA,KAAA;AAAA,KACX;AAAA,GACF;AAAA,EACAC,KAAAA,EAAO,CAAC,mBAAmB,CAAA;AAAA,EAC3BC,KAAAA,CAAMP,OAAOQ,GAAK,EAAA;AAChB,IAAA,MAAMC,eAAeC,GAAkC,EAAA,CAAA;AACvD,IAAA,MAAM,CAACP,IAAAA,EAAMQ,KAAK,CAAA,GAAIX,KAAME,CAAAA,OAAAA,GACxB,CAAC,WAAA,EAAaU,cAAc,CAAA,GAC5B,CAAC,MAAA,EAAQC,aAAa,CAAA,CAAA;AAE1B,IAAA,MAAMC,YAAgBC,GAAAA,CAAAA,KAAAA,KAAeP,GAAIQ,CAAAA,IAAAA,CAAK,qBAAqBD,KAAK,CAAA,CAAA;AACxEE,IAAQ,OAAA,CAAA,gBAAA,EAAkBjB,MAAMkB,aAAa,CAAA,CAAA;AAC7CV,IAAAA,GAAAA,CAAIW,MAAO,CAAA;AAAA,MAITC,OAAQC,CAA8B,CAAA,KAAA;AACpCZ,QAAaM,YAAAA,CAAAA,KAAAA,EAAOO,iBAAiBD,CAAC,CAAA,CAAA;AAAA,OACxC;AAAA,MAIAE,MAAOF,CAA8B,CAAA,KAAA;AACnCZ,QAAaM,YAAAA,CAAAA,KAAAA,EAAOS,gBAAgBH,CAAC,CAAA,CAAA;AAAA,OACvC;AAAA,MAIAI,YAAY,MAAM;AAChBhB,QAAAA,YAAAA,CAAaM,OAAOU,UAAY,EAAA,CAAA;AAAA,OAClC;AAAA,MAIAC,aAAa,MAAM;AACjBjB,QAAAA,YAAAA,CAAaM,OAAOW,WAAa,EAAA,CAAA;AAAA,OACnC;AAAA,KACD,CAAA,CAAA;AAED,IAAA,OAAO,MAAM;AACX,MAAMC,MAAAA,MAAAA,GAAS3B,MAAM2B,MAAUC,IAAAA,oBAAAA,CAAAA;AAE/B,MAAA,OAAAC,WAAA,CAAAC,YAAA,EAAAC,UAAA,CAEQ/B,KAAK,EAAA;AAAA,QAAA,KACJS,EAAAA,YAAAA;AAAAA,QAAY,MACXN,EAAAA,IAAAA;AAAAA,QAAI,QACFwB,EAAAA,MAAAA;AAAAA,QAAM,gBACE,EAAA,aAAA;AAAA,QAAa,qBACRb,EAAAA,YAAAA;AAAAA,OAAY,CAAA,EAAA;AAAA,QAG/BT,SAAUL,CAAAA,MAAAA,KAAU6B,WAAA,CAAA,KAAA,EAAgB7B,QAAK,IAAA,CAAA;AAAA,OAAI,CAAA,CAAA;AAAA,KAIrD,CAAA;AAAA,GACF;AACF,CAAC,CAAA;;;;"}