UNPKG

vuetify

Version:

Vue Material Component Framework

1 lines 6.55 kB
{"version":3,"file":"VDatePickerYears.mjs","names":["Colorable","Localable","createItemTypeNativeListeners","createNativeLocaleFormatter","mergeListeners","mixins","extend","name","props","format","Function","min","Number","String","max","readonly","Boolean","value","data","defaultColor","computed","formatter","currentLocale","year","timeZone","length","mounted","setTimeout","activeItem","$el","getElementsByClassName","scrollTop","offsetTop","offsetHeight","scrollHeight","methods","genYearItem","formatted","active","parseInt","color","$createElement","setTextColor","key","class","on","click","$emit","genYearItems","children","selectedYear","Date","getFullYear","maxYear","minYear","Math","push","render","staticClass","ref"],"sources":["../../../src/components/VDatePicker/VDatePickerYears.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\nimport './VDatePickerYears.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Localable from '../../mixins/localable'\n\n// Utils\nimport {\n createItemTypeNativeListeners,\n createNativeLocaleFormatter,\n} from './util'\nimport { mergeListeners } from '../../util/mergeData'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode, PropType } from 'vue'\nimport { DatePickerFormatter } from 'vuetify/types'\n\ninterface options extends Vue {\n $el: HTMLElement\n}\n\nexport default mixins<options &\n/* eslint-disable indent */\n ExtractVue<[\n typeof Colorable,\n typeof Localable\n ]>\n/* eslint-enable indent */\n>(\n Colorable,\n Localable\n/* @vue/component */\n).extend({\n name: 'v-date-picker-years',\n\n props: {\n format: Function as PropType<DatePickerFormatter | undefined>,\n min: [Number, String],\n max: [Number, String],\n readonly: Boolean,\n value: [Number, String],\n },\n\n data () {\n return {\n defaultColor: 'primary',\n }\n },\n\n computed: {\n formatter (): DatePickerFormatter {\n return this.format || createNativeLocaleFormatter(this.currentLocale, { year: 'numeric', timeZone: 'UTC' }, { length: 4 })\n },\n },\n\n mounted () {\n setTimeout(() => {\n const activeItem = this.$el.getElementsByClassName('active')[0]\n if (activeItem) {\n this.$el.scrollTop = activeItem.offsetTop - this.$el.offsetHeight / 2 + activeItem.offsetHeight / 2\n } else if (this.min && !this.max) {\n this.$el.scrollTop = this.$el.scrollHeight\n } else if (!this.min && this.max) {\n this.$el.scrollTop = 0\n } else {\n this.$el.scrollTop = this.$el.scrollHeight / 2 - this.$el.offsetHeight / 2\n }\n })\n },\n\n methods: {\n genYearItem (year: number): VNode {\n const formatted = this.formatter(`${year}`)\n const active = parseInt(this.value, 10) === year\n const color = active && (this.color || 'primary')\n\n return this.$createElement('li', this.setTextColor(color, {\n key: year,\n class: { active },\n on: mergeListeners({\n click: () => this.$emit('input', year),\n }, createItemTypeNativeListeners(this, ':year', year)),\n }), formatted)\n },\n\n genYearItems (): VNode[] {\n const children = []\n const selectedYear = this.value ? parseInt(this.value, 10) : new Date().getFullYear()\n const maxYear = this.max ? parseInt(this.max, 10) : (selectedYear + 100)\n const minYear = Math.min(maxYear, this.min ? parseInt(this.min, 10) : (selectedYear - 100))\n\n for (let year = maxYear; year >= minYear; year--) {\n children.push(this.genYearItem(year))\n }\n\n return children\n },\n },\n\n render (): VNode {\n return this.$createElement('ul', {\n staticClass: 'v-date-picker-years',\n ref: 'years',\n }, this.genYearItems())\n },\n})\n"],"mappings":"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"}