{"version":3,"file":"date-picker.mjs","sources":["../../../../../../packages/components/date-picker/src/date-picker.ts"],"sourcesContent":["import { defineComponent, h, provide, ref, renderSlot } from 'vue'\r\nimport dayjs from 'dayjs'\r\nimport customParseFormat from 'dayjs/plugin/customParseFormat'\r\nimport advancedFormat from 'dayjs/plugin/advancedFormat'\r\nimport localeData from 'dayjs/plugin/localeData'\r\nimport weekOfYear from 'dayjs/plugin/weekOfYear'\r\nimport weekYear from 'dayjs/plugin/weekYear'\r\nimport dayOfYear from 'dayjs/plugin/dayOfYear'\r\nimport isSameOrAfter from 'dayjs/plugin/isSameOrAfter'\r\nimport isSameOrBefore from 'dayjs/plugin/isSameOrBefore'\r\nimport {\r\n  CommonPicker,\r\n  DEFAULT_FORMATS_DATE,\r\n  DEFAULT_FORMATS_DATEPICKER,\r\n  timePickerDefaultProps,\r\n  PopperOptionsContextKey\r\n} from '@sgui-plus/components/time-picker'\r\nimport DatePickPanel from './date-picker-com/panel-date-pick.vue'\r\nimport DateRangePickPanel from './date-picker-com/panel-date-range.vue'\r\nimport MonthRangePickPanel from './date-picker-com/panel-month-range.vue'\r\nimport { ROOT_PICKER_INJECTION_KEY } from './date-picker.type'\r\nimport type { PropType } from 'vue'\r\nimport type { IDatePickerType } from './date-picker.type'\r\n\r\ndayjs.extend(localeData)\r\ndayjs.extend(advancedFormat)\r\ndayjs.extend(customParseFormat)\r\ndayjs.extend(weekOfYear)\r\ndayjs.extend(weekYear)\r\ndayjs.extend(dayOfYear)\r\ndayjs.extend(isSameOrAfter)\r\ndayjs.extend(isSameOrBefore)\r\n\r\nconst getPanel = function (type: IDatePickerType) {\r\n  if (type === 'daterange' || type === 'datetimerange'  || type === 'datenoonrange') {\r\n    return DateRangePickPanel\r\n  } else if (type === 'monthrange') {\r\n    return MonthRangePickPanel\r\n  }\r\n  return DatePickPanel\r\n}\r\n\r\nexport default defineComponent({\r\n  name: 'SgDatePicker',\r\n  install: null,\r\n  props: {\r\n    ...timePickerDefaultProps,\r\n    type: {\r\n      type: String as PropType<IDatePickerType>,\r\n      default: 'date',\r\n    },\r\n  },\r\n  emits: ['update:modelValue'],\r\n  setup(props, ctx) {\r\n    provide(PopperOptionsContextKey, props.popperOptions)\r\n    provide(ROOT_PICKER_INJECTION_KEY, {\r\n      ctx,\r\n    } as any)\r\n    const commonPicker = ref()\r\n    const refProps = {\r\n      ...props,\r\n      focus: (focusStartInput = true) => {\r\n        commonPicker.value?.focus(focusStartInput)\r\n      },\r\n    }\r\n    ctx.expose(refProps)\r\n    return () => {\r\n      // since props always have all defined keys on it, {format, ...props} will always overwrite format\r\n      // pick props.format or provide default value here before spreading\r\n      const format =\r\n        props.format ??\r\n        (DEFAULT_FORMATS_DATEPICKER[props.type] || DEFAULT_FORMATS_DATE)\r\n      return h(\r\n        CommonPicker,\r\n        {\r\n          ...props,\r\n          format,\r\n          type: props.type,\r\n          ref: commonPicker,\r\n          'onUpdate:modelValue': (value) =>\r\n            ctx.emit('update:modelValue', value),\r\n        },\r\n        {\r\n          default: (scopedProps) => h(getPanel(props.type), scopedProps),\r\n          'range-separator': () => renderSlot(ctx.slots, 'range-separator'),\r\n        }\r\n      )\r\n    }\r\n  },\r\n})\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAqBA,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACzB,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AAC7B,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAChC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACzB,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACvB,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACxB,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAC5B,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AAC7B,MAAM,QAAQ,GAAG,SAAS,IAAI,EAAE;AAChC,EAAE,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,eAAe,IAAI,IAAI,KAAK,eAAe,EAAE;AACpF,IAAI,OAAO,kBAAkB,CAAC;AAC9B,GAAG,MAAM,IAAI,IAAI,KAAK,YAAY,EAAE;AACpC,IAAI,OAAO,mBAAmB,CAAC;AAC/B,GAAG;AACH,EAAE,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AACF,iBAAe,eAAe,CAAC;AAC/B,EAAE,IAAI,EAAE,cAAc;AACtB,EAAE,OAAO,EAAE,IAAI;AACf,EAAE,KAAK,EAAE;AACT,IAAI,GAAG,sBAAsB;AAC7B,IAAI,IAAI,EAAE;AACV,MAAM,IAAI,EAAE,MAAM;AAClB,MAAM,OAAO,EAAE,MAAM;AACrB,KAAK;AACL,GAAG;AACH,EAAE,KAAK,EAAE,CAAC,mBAAmB,CAAC;AAC9B,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;AACpB,IAAI,OAAO,CAAC,uBAAuB,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;AAC1D,IAAI,OAAO,CAAC,yBAAyB,EAAE;AACvC,MAAM,GAAG;AACT,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC;AAC/B,IAAI,MAAM,QAAQ,GAAG;AACrB,MAAM,GAAG,KAAK;AACd,MAAM,KAAK,EAAE,CAAC,eAAe,GAAG,IAAI,KAAK;AACzC,QAAQ,IAAI,EAAE,CAAC;AACf,QAAQ,CAAC,EAAE,GAAG,YAAY,CAAC,KAAK,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;AAC/E,OAAO;AACP,KAAK,CAAC;AACN,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACzB,IAAI,OAAO,MAAM;AACjB,MAAM,IAAI,EAAE,CAAC;AACb,MAAM,MAAM,MAAM,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,KAAK,IAAI,GAAG,EAAE,GAAG,0BAA0B,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC;AACvH,MAAM,OAAO,CAAC,CAAC,YAAY,EAAE;AAC7B,QAAQ,GAAG,KAAK;AAChB,QAAQ,MAAM;AACd,QAAQ,IAAI,EAAE,KAAK,CAAC,IAAI;AACxB,QAAQ,GAAG,EAAE,YAAY;AACzB,QAAQ,qBAAqB,EAAE,CAAC,KAAK,KAAK,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC;AAC9E,OAAO,EAAE;AACT,QAAQ,OAAO,EAAE,CAAC,WAAW,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;AACtE,QAAQ,iBAAiB,EAAE,MAAM,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,iBAAiB,CAAC;AACzE,OAAO,CAAC,CAAC;AACT,KAAK,CAAC;AACN,GAAG;AACH,CAAC,CAAC;;;;"}