{"version":3,"file":"week-picker.mjs","sources":["../../../../../../packages/components/week-picker/src/week-picker.tsx"],"sourcesContent":["import { defineComponent, provide, reactive, ref, toRef } from 'vue'\nimport dayjs from 'dayjs'\nimport customParseFormat from 'dayjs/plugin/customParseFormat.js'\nimport advancedFormat from 'dayjs/plugin/advancedFormat.js'\nimport localeData from 'dayjs/plugin/localeData.js'\nimport weekOfYear from 'dayjs/plugin/weekOfYear.js'\nimport weekYear from 'dayjs/plugin/weekYear.js'\nimport dayOfYear from 'dayjs/plugin/dayOfYear.js'\nimport isSameOrAfter from 'dayjs/plugin/isSameOrAfter.js'\nimport isSameOrBefore from 'dayjs/plugin/isSameOrBefore.js'\nimport { useNamespace } from '@code-monkey-ui/hooks'\nimport {\n  CommonPicker,\n  DEFAULT_FORMATS_DATE,\n  DEFAULT_FORMATS_DATEPICKER,\n} from '@code-monkey-ui/components/time-picker'\nimport WeekPickPanel from './date-picker-com/panel-week-pick.vue'\nimport { ROOT_WEEK_PICKER_INJECTION_KEY } from './constants'\n\nimport { weekPickerProps } from './props/week-picker'\nimport type { WeekPickerExpose } from './instance'\n\ndayjs.extend(localeData)\ndayjs.extend(advancedFormat)\ndayjs.extend(customParseFormat)\ndayjs.extend(weekOfYear)\ndayjs.extend(weekYear)\ndayjs.extend(dayOfYear)\ndayjs.extend(isSameOrAfter)\ndayjs.extend(isSameOrBefore)\n\nexport default defineComponent({\n  name: 'ElWeekPicker',\n  install: null,\n  props: weekPickerProps,\n  emits: ['update:modelValue'],\n  setup(props, { expose, emit, slots }) {\n    const ns = useNamespace('picker-panel')\n\n    provide('ElPopperOptions', reactive(toRef(props, 'popperOptions')))\n    provide(ROOT_WEEK_PICKER_INJECTION_KEY, {\n      slots,\n      pickerNs: ns,\n    })\n\n    const commonPicker = ref<InstanceType<typeof CommonPicker>>()\n    const refProps: WeekPickerExpose = {\n      focus: (focusStartInput = true) => {\n        commonPicker.value?.focus(focusStartInput)\n      },\n      handleOpen: () => {\n        commonPicker.value?.handleOpen()\n      },\n      handleClose: () => {\n        commonPicker.value?.handleClose()\n      },\n    }\n\n    expose(refProps)\n\n    const onModelValueUpdated = (val: any) => {\n      emit('update:modelValue', val)\n    }\n\n    return () => {\n      // since props always have all defined keys on it, {format, ...props} will always overwrite format\n      // pick props.format or provide default value here before spreading\n      const format =\n        props.format ??\n        (DEFAULT_FORMATS_DATEPICKER[props.type] || DEFAULT_FORMATS_DATE)\n\n      return (\n        <CommonPicker\n          {...props}\n          format={format}\n          type=\"week\"\n          ref={commonPicker}\n          onUpdate:modelValue={onModelValueUpdated}\n        >\n          {{\n            default: (scopedProps: /**FIXME: remove any type */ any) => (\n              <WeekPickPanel\n                {...scopedProps}\n                weekStart={props.weekStart}\n                v-slots={slots}\n              />\n            ),\n            'range-separator': slots['range-separator'],\n          }}\n        </CommonPicker>\n      )\n    }\n  },\n})\n"],"names":["dayjs","extend","localeData","advancedFormat","customParseFormat","weekOfYear","weekYear","dayOfYear","isSameOrAfter","isSameOrBefore","defineComponent","name","install","props","weekPickerProps","emits","expose","emit","slots","provide","toRef","pickerNs","commonPicker","focus","focusStartInput","handleOpen","handleClose","onModelValueUpdated","val","_createVNode","DEFAULT_FORMATS_DATEPICKER","_mergeProps"],"mappings":"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"}