"use strict";
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const date = require("../../../../constants/date.js");
const runtime = require("../../../../utils/vue/props/runtime.js");
const selectionModes = [
  "date",
  "dates",
  "year",
  "years",
  "month",
  "months",
  "week",
  "range"
];
const datePickerSharedProps = runtime.buildProps({
  cellClassName: { type: runtime.definePropType(Function) },
  disabledDate: { type: runtime.definePropType(Function) },
  date: {
    type: runtime.definePropType(Object),
    required: true
  },
  minDate: { type: runtime.definePropType(Object) },
  maxDate: { type: runtime.definePropType(Object) },
  parsedValue: { type: runtime.definePropType([Object, Array]) },
  rangeState: {
    type: runtime.definePropType(Object),
    default: () => ({
      endDate: null,
      selecting: false
    })
  },
  disabled: Boolean
});
const panelSharedProps = runtime.buildProps({
  type: {
    type: runtime.definePropType(String),
    required: true,
    values: date.datePickTypes
  },
  dateFormat: String,
  timeFormat: String,
  showNow: {
    type: Boolean,
    default: true
  },
  showConfirm: Boolean,
  showFooter: {
    type: Boolean,
    default: true
  },
  showWeekNumber: Boolean,
  border: Boolean,
  disabled: Boolean,
  editable: {
    type: Boolean,
    default: true
  }
});
const panelRangeSharedProps = runtime.buildProps({
  unlinkPanels: Boolean,
  visible: {
    type: Boolean,
    default: true
  },
  showConfirm: Boolean,
  showFooter: {
    type: Boolean,
    default: true
  },
  border: Boolean,
  disabled: Boolean,
  parsedValue: { type: runtime.definePropType(Array) }
});
const selectionModeWithDefault = (mode) => {
  return {
    type: String,
    values: selectionModes,
    default: mode
  };
};
exports.datePickerSharedProps = datePickerSharedProps;
exports.panelRangeSharedProps = panelRangeSharedProps;
exports.panelSharedProps = panelSharedProps;
exports.selectionModeWithDefault = selectionModeWithDefault;
