{"version":3,"file":"VDatePickerHeader.mjs","names":["VBtn","VIcon","Colorable","Localable","Themeable","createNativeLocaleFormatter","monthChange","mixins","extend","name","props","disabled","Boolean","format","Function","min","String","max","nextAriaLabel","nextIcon","type","default","prevAriaLabel","prevIcon","readonly","value","Number","required","data","isReversing","computed","formatter","split","currentLocale","month","year","timeZone","length","watch","newVal","oldVal","methods","genBtn","change","ariaLabelId","ariaLabel","$vuetify","lang","t","undefined","calculateChange","$createElement","attrs","dark","icon","light","on","click","e","stopPropagation","$emit","rtl","sign","map","genHeader","color","header","setTextColor","key","$slots","transition","staticClass","class","render","themeClasses"],"sources":["../../../src/components/VDatePicker/VDatePickerHeader.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\nimport './VDatePickerHeader.sass'\n\n// Components\nimport VBtn from '../VBtn'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Localable from '../../mixins/localable'\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport { createNativeLocaleFormatter, monthChange } from './util'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, PropType } from 'vue'\nimport { DatePickerFormatter } from 'vuetify/types'\n\nexport default mixins(\n  Colorable,\n  Localable,\n  Themeable\n/* @vue/component */\n).extend({\n  name: 'v-date-picker-header',\n\n  props: {\n    disabled: Boolean,\n    format: Function as PropType<DatePickerFormatter | undefined>,\n    min: String,\n    max: String,\n    nextAriaLabel: String,\n    nextIcon: {\n      type: String,\n      default: '$next',\n    },\n    prevAriaLabel: String,\n    prevIcon: {\n      type: String,\n      default: '$prev',\n    },\n    readonly: Boolean,\n    value: {\n      type: [Number, String],\n      required: true,\n    },\n  },\n\n  data () {\n    return {\n      isReversing: false,\n    }\n  },\n\n  computed: {\n    formatter (): DatePickerFormatter {\n      if (this.format) {\n        return this.format\n      } else if (String(this.value).split('-')[1]) {\n        return createNativeLocaleFormatter(this.currentLocale, { month: 'long', year: 'numeric', timeZone: 'UTC' }, { length: 7 })\n      } else {\n        return createNativeLocaleFormatter(this.currentLocale, { year: 'numeric', timeZone: 'UTC' }, { length: 4 })\n      }\n    },\n  },\n\n  watch: {\n    value (newVal, oldVal) {\n      this.isReversing = newVal < oldVal\n    },\n  },\n\n  methods: {\n    genBtn (change: number) {\n      const ariaLabelId = change > 0 ? this.nextAriaLabel : this.prevAriaLabel\n      const ariaLabel = ariaLabelId ? this.$vuetify.lang.t(ariaLabelId) : undefined\n      const disabled = this.disabled ||\n        (change < 0 && this.min && this.calculateChange(change) < this.min) ||\n        (change > 0 && this.max && this.calculateChange(change) > this.max)\n\n      return this.$createElement(VBtn, {\n        attrs: { 'aria-label': ariaLabel },\n        props: {\n          dark: this.dark,\n          disabled,\n          icon: true,\n          light: this.light,\n        },\n        on: {\n          click: (e: Event) => {\n            e.stopPropagation()\n            this.$emit('input', this.calculateChange(change))\n          },\n        },\n      }, [\n        this.$createElement(VIcon, ((change < 0) === !this.$vuetify.rtl) ? this.prevIcon : this.nextIcon),\n      ])\n    },\n    calculateChange (sign: number) {\n      const [year, month] = String(this.value).split('-').map(Number)\n\n      if (month == null) {\n        return `${year + sign}`\n      } else {\n        return monthChange(String(this.value), sign)\n      }\n    },\n    genHeader () {\n      const color = !this.disabled && (this.color || 'accent')\n      const header = this.$createElement('div', this.setTextColor(color, {\n        key: String(this.value),\n      }), [this.$createElement('button', {\n        attrs: {\n          type: 'button',\n        },\n        on: {\n          click: () => this.$emit('toggle'),\n        },\n      }, [this.$slots.default || this.formatter(String(this.value))])])\n\n      const transition = this.$createElement('transition', {\n        props: {\n          name: (this.isReversing === !this.$vuetify.rtl) ? 'tab-reverse-transition' : 'tab-transition',\n        },\n      }, [header])\n\n      return this.$createElement('div', {\n        staticClass: 'v-date-picker-header__value',\n        class: {\n          'v-date-picker-header__value--disabled': this.disabled,\n        },\n      }, [transition])\n    },\n  },\n\n  render (): VNode {\n    return this.$createElement('div', {\n      staticClass: 'v-date-picker-header',\n      class: {\n        'v-date-picker-header--disabled': this.disabled,\n        ...this.themeClasses,\n      },\n    }, [\n      this.genBtn(-1),\n      this.genHeader(),\n      this.genBtn(+1),\n    ])\n  },\n})\n"],"mappings":"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"}