vuetify 2.4.3 → 2.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/json/attributes.json +3 -3
  2. package/dist/json/web-types.json +8 -8
  3. package/dist/vuetify.css +2 -2
  4. package/dist/vuetify.css.map +1 -1
  5. package/dist/vuetify.js +87 -61
  6. package/dist/vuetify.js.map +1 -1
  7. package/dist/vuetify.min.css +2 -2
  8. package/dist/vuetify.min.js +2 -2
  9. package/es5/components/VDatePicker/VDatePicker.js +12 -38
  10. package/es5/components/VDatePicker/VDatePicker.js.map +1 -1
  11. package/es5/components/VDatePicker/mixins/date-picker-table.js +9 -1
  12. package/es5/components/VDatePicker/mixins/date-picker-table.js.map +1 -1
  13. package/es5/components/VDatePicker/util/index.js +8 -0
  14. package/es5/components/VDatePicker/util/index.js.map +1 -1
  15. package/es5/components/VDatePicker/util/sanitizeDateString.js +37 -0
  16. package/es5/components/VDatePicker/util/sanitizeDateString.js.map +1 -0
  17. package/es5/components/VPagination/VPagination.js +1 -0
  18. package/es5/components/VPagination/VPagination.js.map +1 -1
  19. package/es5/framework.js +1 -1
  20. package/lib/components/VDatePicker/VDatePicker.js +1 -12
  21. package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
  22. package/lib/components/VDatePicker/mixins/date-picker-table.js +12 -2
  23. package/lib/components/VDatePicker/mixins/date-picker-table.js.map +1 -1
  24. package/lib/components/VDatePicker/util/index.js +2 -1
  25. package/lib/components/VDatePicker/util/index.js.map +1 -1
  26. package/lib/components/VDatePicker/util/sanitizeDateString.js +12 -0
  27. package/lib/components/VDatePicker/util/sanitizeDateString.js.map +1 -0
  28. package/lib/components/VPagination/VPagination.js +1 -0
  29. package/lib/components/VPagination/VPagination.js.map +1 -1
  30. package/lib/framework.js +1 -1
  31. package/package.json +2 -2
  32. package/src/components/VDatePicker/VDatePicker.ts +1 -7
  33. package/src/components/VDatePicker/__tests__/VDatePickerDateTable.spec.ts +32 -0
  34. package/src/components/VDatePicker/__tests__/VDatePickerMonthTable.spec.ts +32 -0
  35. package/src/components/VDatePicker/mixins/date-picker-table.ts +10 -2
  36. package/src/components/VDatePicker/util/__tests__/sanitizeDateString.spec.ts +10 -0
  37. package/src/components/VDatePicker/util/index.ts +2 -0
  38. package/src/components/VDatePicker/util/sanitizeDateString.ts +8 -0
  39. package/src/components/VPagination/VPagination.ts +1 -0
  40. package/src/components/VPagination/__tests__/__snapshots__/VPagination.spec.ts.snap +6 -3
  41. package/src/components/VTextField/VTextField.sass +2 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VDatePicker/VDatePicker.ts"],"names":[],"mappings":"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","sourcesContent":["// Components\nimport VDatePickerTitle from './VDatePickerTitle'\nimport VDatePickerHeader from './VDatePickerHeader'\nimport VDatePickerDateTable from './VDatePickerDateTable'\nimport VDatePickerMonthTable from './VDatePickerMonthTable'\nimport VDatePickerYears from './VDatePickerYears'\n\n// Mixins\nimport Localable from '../../mixins/localable'\nimport Picker from '../../mixins/picker'\n\n// Utils\nimport isDateAllowed from './util/isDateAllowed'\nimport mixins from '../../util/mixins'\nimport { wrapInArray } from '../../util/helpers'\nimport { daysInMonth } from '../VCalendar/util/timestamp'\nimport { consoleWarn } from '../../util/console'\nimport {\n createItemTypeListeners,\n createNativeLocaleFormatter,\n pad,\n} from './util'\n\n// Types\nimport {\n PropType,\n PropValidator,\n} from 'vue/types/options'\nimport { VNode } from 'vue'\nimport {\n DatePickerFormatter,\n DatePickerMultipleFormatter,\n DatePickerAllowedDatesFunction,\n DatePickerEventColors,\n DatePickerEvents,\n DatePickerType,\n} from 'vuetify/types'\n\ntype DatePickerValue = string | string[] | undefined\ninterface Formatters {\n year: DatePickerFormatter\n titleDate: DatePickerFormatter | DatePickerMultipleFormatter\n}\n\n// Adds leading zero to month/day if necessary, returns 'YYYY' if type = 'year',\n// 'YYYY-MM' if 'month' and 'YYYY-MM-DD' if 'date'\nfunction sanitizeDateString (dateString: string, type: 'date' | 'month' | 'year'): string {\n const [year, month = 1, date = 1] = dateString.split('-')\n return `${year}-${pad(month)}-${pad(date)}`.substr(0, { date: 10, month: 7, year: 4 }[type])\n}\n\nexport default mixins(\n Localable,\n Picker,\n/* @vue/component */\n).extend({\n name: 'v-date-picker',\n\n props: {\n allowedDates: Function as PropType<DatePickerAllowedDatesFunction | undefined>,\n // Function formatting the day in date picker table\n dayFormat: Function as PropType<DatePickerAllowedDatesFunction | undefined>,\n disabled: Boolean,\n events: {\n type: [Array, Function, Object],\n default: () => null,\n } as PropValidator<DatePickerEvents | null>,\n eventColor: {\n type: [Array, Function, Object, String],\n default: () => 'warning',\n } as PropValidator<DatePickerEventColors>,\n firstDayOfWeek: {\n type: [String, Number],\n default: 0,\n },\n // Function formatting the tableDate in the day/month table header\n headerDateFormat: Function as PropType<DatePickerFormatter | undefined>,\n localeFirstDayOfYear: {\n type: [String, Number],\n default: 0,\n },\n max: String,\n min: String,\n // Function formatting month in the months table\n monthFormat: Function as PropType<DatePickerFormatter | undefined>,\n multiple: Boolean,\n nextIcon: {\n type: String,\n default: '$next',\n },\n nextMonthAriaLabel: {\n type: String,\n default: '$vuetify.datePicker.nextMonthAriaLabel',\n },\n nextYearAriaLabel: {\n type: String,\n default: '$vuetify.datePicker.nextYearAriaLabel',\n },\n pickerDate: String,\n prevIcon: {\n type: String,\n default: '$prev',\n },\n prevMonthAriaLabel: {\n type: String,\n default: '$vuetify.datePicker.prevMonthAriaLabel',\n },\n prevYearAriaLabel: {\n type: String,\n default: '$vuetify.datePicker.prevYearAriaLabel',\n },\n range: Boolean,\n reactive: Boolean,\n readonly: Boolean,\n scrollable: Boolean,\n showCurrent: {\n type: [Boolean, String],\n default: true,\n },\n selectedItemsText: {\n type: String,\n default: '$vuetify.datePicker.itemsSelected',\n },\n showAdjacentMonths: Boolean,\n showWeek: Boolean,\n // Function formatting currently selected date in the picker title\n titleDateFormat: Function as PropType<DatePickerFormatter | DatePickerMultipleFormatter | undefined>,\n type: {\n type: String,\n default: 'date',\n validator: (type: any) => ['date', 'month'].includes(type), // TODO: year\n } as PropValidator<DatePickerType>,\n value: [Array, String] as PropType<DatePickerValue>,\n weekdayFormat: Function as PropType<DatePickerFormatter | undefined>,\n // Function formatting the year in table header and pickup title\n yearFormat: Function as PropType<DatePickerFormatter | undefined>,\n yearIcon: String,\n },\n\n data () {\n const now = new Date()\n return {\n activePicker: this.type.toUpperCase(),\n inputDay: null as number | null,\n inputMonth: null as number | null,\n inputYear: null as number | null,\n isReversing: false,\n now,\n // tableDate is a string in 'YYYY' / 'YYYY-M' format (leading zero for month is not required)\n tableDate: (() => {\n if (this.pickerDate) {\n return this.pickerDate\n }\n\n const multipleValue = wrapInArray(this.value)\n const date = multipleValue[multipleValue.length - 1] ||\n (typeof this.showCurrent === 'string' ? this.showCurrent : `${now.getFullYear()}-${now.getMonth() + 1}`)\n return sanitizeDateString(date as string, this.type === 'date' ? 'month' : 'year')\n })(),\n }\n },\n\n computed: {\n multipleValue (): string[] {\n return wrapInArray(this.value)\n },\n isMultiple (): boolean {\n return this.multiple || this.range\n },\n lastValue (): string | null {\n return this.isMultiple ? this.multipleValue[this.multipleValue.length - 1] : (this.value as string | null)\n },\n selectedMonths (): string | string[] | undefined {\n if (!this.value || this.type === 'month') {\n return this.value\n } else if (this.isMultiple) {\n return this.multipleValue.map(val => val.substr(0, 7))\n } else {\n return (this.value as string).substr(0, 7)\n }\n },\n current (): string | null {\n if (this.showCurrent === true) {\n return sanitizeDateString(`${this.now.getFullYear()}-${this.now.getMonth() + 1}-${this.now.getDate()}`, this.type)\n }\n\n return this.showCurrent || null\n },\n inputDate (): string {\n return this.type === 'date'\n ? `${this.inputYear}-${pad(this.inputMonth! + 1)}-${pad(this.inputDay!)}`\n : `${this.inputYear}-${pad(this.inputMonth! + 1)}`\n },\n tableMonth (): number {\n return Number((this.pickerDate || this.tableDate).split('-')[1]) - 1\n },\n tableYear (): number {\n return Number((this.pickerDate || this.tableDate).split('-')[0])\n },\n minMonth (): string | null {\n return this.min ? sanitizeDateString(this.min, 'month') : null\n },\n maxMonth (): string | null {\n return this.max ? sanitizeDateString(this.max, 'month') : null\n },\n minYear (): string | null {\n return this.min ? sanitizeDateString(this.min, 'year') : null\n },\n maxYear (): string | null {\n return this.max ? sanitizeDateString(this.max, 'year') : null\n },\n formatters (): Formatters {\n return {\n year: this.yearFormat || createNativeLocaleFormatter(this.currentLocale, { year: 'numeric', timeZone: 'UTC' }, { length: 4 }),\n titleDate: this.titleDateFormat ||\n (this.isMultiple ? this.defaultTitleMultipleDateFormatter : this.defaultTitleDateFormatter),\n }\n },\n defaultTitleMultipleDateFormatter (): DatePickerMultipleFormatter {\n return dates => {\n if (!dates.length) {\n return '-'\n }\n\n if (dates.length === 1) {\n return this.defaultTitleDateFormatter(dates[0])\n }\n\n return this.$vuetify.lang.t(this.selectedItemsText, dates.length)\n }\n },\n defaultTitleDateFormatter (): DatePickerFormatter {\n const titleFormats = {\n year: { year: 'numeric', timeZone: 'UTC' },\n month: { month: 'long', timeZone: 'UTC' },\n date: { weekday: 'short', month: 'short', day: 'numeric', timeZone: 'UTC' },\n }\n\n const titleDateFormatter = createNativeLocaleFormatter(this.currentLocale, titleFormats[this.type], {\n start: 0,\n length: { date: 10, month: 7, year: 4 }[this.type],\n })\n\n const landscapeFormatter = (date: string) => titleDateFormatter(date)\n .replace(/([^\\d\\s])([\\d])/g, (match, nonDigit, digit) => `${nonDigit} ${digit}`)\n .replace(', ', ',<br>')\n\n return this.landscape ? landscapeFormatter : titleDateFormatter\n },\n },\n\n watch: {\n tableDate (val: string, prev: string) {\n // Make a ISO 8601 strings from val and prev for comparision, otherwise it will incorrectly\n // compare for example '2000-9' and '2000-10'\n const sanitizeType = this.type === 'month' ? 'year' : 'month'\n this.isReversing = sanitizeDateString(val, sanitizeType) < sanitizeDateString(prev, sanitizeType)\n this.$emit('update:picker-date', val)\n },\n pickerDate (val: string | null) {\n if (val) {\n this.tableDate = val\n } else if (this.lastValue && this.type === 'date') {\n this.tableDate = sanitizeDateString(this.lastValue, 'month')\n } else if (this.lastValue && this.type === 'month') {\n this.tableDate = sanitizeDateString(this.lastValue, 'year')\n }\n },\n value (newValue: DatePickerValue, oldValue: DatePickerValue) {\n this.checkMultipleProp()\n this.setInputDate()\n\n if (\n (!this.isMultiple && this.value && !this.pickerDate) ||\n (this.isMultiple && this.multipleValue.length && (!oldValue || !oldValue.length) && !this.pickerDate)\n ) {\n this.tableDate = sanitizeDateString(this.inputDate, this.type === 'month' ? 'year' : 'month')\n }\n },\n type (type: DatePickerType) {\n this.activePicker = type.toUpperCase()\n\n if (this.value && this.value.length) {\n const output = this.multipleValue\n .map((val: string) => sanitizeDateString(val, type))\n .filter(this.isDateAllowed)\n this.$emit('input', this.isMultiple ? output : output[0])\n }\n },\n },\n\n created () {\n this.checkMultipleProp()\n\n if (this.pickerDate !== this.tableDate) {\n this.$emit('update:picker-date', this.tableDate)\n }\n this.setInputDate()\n },\n\n methods: {\n emitInput (newInput: string) {\n if (this.range) {\n if (this.multipleValue.length !== 1) {\n this.$emit('input', [newInput])\n } else {\n const output = [this.multipleValue[0], newInput]\n this.$emit('input', output)\n this.$emit('change', output)\n }\n return\n }\n\n const output = this.multiple\n ? (\n this.multipleValue.indexOf(newInput) === -1\n ? this.multipleValue.concat([newInput])\n : this.multipleValue.filter(x => x !== newInput)\n )\n : newInput\n\n this.$emit('input', output)\n this.multiple || this.$emit('change', newInput)\n },\n checkMultipleProp () {\n if (this.value == null) return\n const valueType = this.value.constructor.name\n const expected = this.isMultiple ? 'Array' : 'String'\n if (valueType !== expected) {\n consoleWarn(`Value must be ${this.isMultiple ? 'an' : 'a'} ${expected}, got ${valueType}`, this)\n }\n },\n isDateAllowed (value: string): boolean {\n return isDateAllowed(value, this.min, this.max, this.allowedDates)\n },\n yearClick (value: number) {\n this.inputYear = value\n if (this.type === 'month') {\n this.tableDate = `${value}`\n } else {\n this.tableDate = `${value}-${pad((this.tableMonth || 0) + 1)}`\n }\n this.activePicker = 'MONTH'\n if (this.reactive && !this.readonly && !this.isMultiple && this.isDateAllowed(this.inputDate)) {\n this.$emit('input', this.inputDate)\n }\n },\n monthClick (value: string) {\n this.inputYear = parseInt(value.split('-')[0], 10)\n this.inputMonth = parseInt(value.split('-')[1], 10) - 1\n if (this.type === 'date') {\n if (this.inputDay) {\n this.inputDay = Math.min(this.inputDay, daysInMonth(this.inputYear, this.inputMonth + 1))\n }\n\n this.tableDate = value\n this.activePicker = 'DATE'\n if (this.reactive && !this.readonly && !this.isMultiple && this.isDateAllowed(this.inputDate)) {\n this.$emit('input', this.inputDate)\n }\n } else {\n this.emitInput(this.inputDate)\n }\n },\n dateClick (value: string) {\n this.inputYear = parseInt(value.split('-')[0], 10)\n this.inputMonth = parseInt(value.split('-')[1], 10) - 1\n this.inputDay = parseInt(value.split('-')[2], 10)\n this.emitInput(this.inputDate)\n },\n genPickerTitle (): VNode {\n return this.$createElement(VDatePickerTitle, {\n props: {\n date: this.value ? (this.formatters.titleDate as (value: any) => string)(this.isMultiple ? this.multipleValue : this.value) : '',\n disabled: this.disabled,\n readonly: this.readonly,\n selectingYear: this.activePicker === 'YEAR',\n year: this.formatters.year(this.multipleValue.length ? `${this.inputYear}` : this.tableDate),\n yearIcon: this.yearIcon,\n value: this.multipleValue[0],\n },\n slot: 'title',\n on: {\n 'update:selecting-year': (value: boolean) => this.activePicker = value ? 'YEAR' : this.type.toUpperCase(),\n },\n })\n },\n genTableHeader (): VNode {\n return this.$createElement(VDatePickerHeader, {\n props: {\n nextIcon: this.nextIcon,\n color: this.color,\n dark: this.dark,\n disabled: this.disabled,\n format: this.headerDateFormat,\n light: this.light,\n locale: this.locale,\n min: this.activePicker === 'DATE' ? this.minMonth : this.minYear,\n max: this.activePicker === 'DATE' ? this.maxMonth : this.maxYear,\n nextAriaLabel: this.activePicker === 'DATE' ? this.nextMonthAriaLabel : this.nextYearAriaLabel,\n prevAriaLabel: this.activePicker === 'DATE' ? this.prevMonthAriaLabel : this.prevYearAriaLabel,\n prevIcon: this.prevIcon,\n readonly: this.readonly,\n value: this.activePicker === 'DATE' ? `${pad(this.tableYear, 4)}-${pad(this.tableMonth + 1)}` : `${pad(this.tableYear, 4)}`,\n },\n on: {\n toggle: () => this.activePicker = (this.activePicker === 'DATE' ? 'MONTH' : 'YEAR'),\n input: (value: string) => this.tableDate = value,\n },\n })\n },\n genDateTable (): VNode {\n return this.$createElement(VDatePickerDateTable, {\n props: {\n allowedDates: this.allowedDates,\n color: this.color,\n current: this.current,\n dark: this.dark,\n disabled: this.disabled,\n events: this.events,\n eventColor: this.eventColor,\n firstDayOfWeek: this.firstDayOfWeek,\n format: this.dayFormat,\n light: this.light,\n locale: this.locale,\n localeFirstDayOfYear: this.localeFirstDayOfYear,\n min: this.min,\n max: this.max,\n range: this.range,\n readonly: this.readonly,\n scrollable: this.scrollable,\n showAdjacentMonths: this.showAdjacentMonths,\n showWeek: this.showWeek,\n tableDate: `${pad(this.tableYear, 4)}-${pad(this.tableMonth + 1)}`,\n value: this.value,\n weekdayFormat: this.weekdayFormat,\n },\n ref: 'table',\n on: {\n input: this.dateClick,\n 'update:table-date': (value: string) => this.tableDate = value,\n ...createItemTypeListeners(this, ':date'),\n },\n })\n },\n genMonthTable (): VNode {\n return this.$createElement(VDatePickerMonthTable, {\n props: {\n allowedDates: this.type === 'month' ? this.allowedDates : null,\n color: this.color,\n current: this.current ? sanitizeDateString(this.current, 'month') : null,\n dark: this.dark,\n disabled: this.disabled,\n events: this.type === 'month' ? this.events : null,\n eventColor: this.type === 'month' ? this.eventColor : null,\n format: this.monthFormat,\n light: this.light,\n locale: this.locale,\n min: this.minMonth,\n max: this.maxMonth,\n range: this.range,\n readonly: this.readonly && this.type === 'month',\n scrollable: this.scrollable,\n value: this.selectedMonths,\n tableDate: `${pad(this.tableYear, 4)}`,\n },\n ref: 'table',\n on: {\n input: this.monthClick,\n 'update:table-date': (value: string) => this.tableDate = value,\n ...createItemTypeListeners(this, ':month'),\n },\n })\n },\n genYears (): VNode {\n return this.$createElement(VDatePickerYears, {\n props: {\n color: this.color,\n format: this.yearFormat,\n locale: this.locale,\n min: this.minYear,\n max: this.maxYear,\n value: this.tableYear,\n },\n on: {\n input: this.yearClick,\n ...createItemTypeListeners(this, ':year'),\n },\n })\n },\n genPickerBody (): VNode {\n const children = this.activePicker === 'YEAR' ? [\n this.genYears(),\n ] : [\n this.genTableHeader(),\n this.activePicker === 'DATE' ? this.genDateTable() : this.genMonthTable(),\n ]\n\n return this.$createElement('div', {\n key: this.activePicker,\n }, children)\n },\n setInputDate () {\n if (this.lastValue) {\n const array = this.lastValue.split('-')\n this.inputYear = parseInt(array[0], 10)\n this.inputMonth = parseInt(array[1], 10) - 1\n if (this.type === 'date') {\n this.inputDay = parseInt(array[2], 10)\n }\n } else {\n this.inputYear = this.inputYear || this.now.getFullYear()\n this.inputMonth = this.inputMonth == null ? this.inputMonth : this.now.getMonth()\n this.inputDay = this.inputDay || this.now.getDate()\n }\n },\n },\n\n render (): VNode {\n return this.genPicker('v-picker--date')\n },\n})\n"],"sourceRoot":"","file":"VDatePicker.js"}
1
+ {"version":3,"sources":["../../../src/components/VDatePicker/VDatePicker.ts"],"names":[],"mappings":"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","sourcesContent":["// Components\nimport VDatePickerTitle from './VDatePickerTitle'\nimport VDatePickerHeader from './VDatePickerHeader'\nimport VDatePickerDateTable from './VDatePickerDateTable'\nimport VDatePickerMonthTable from './VDatePickerMonthTable'\nimport VDatePickerYears from './VDatePickerYears'\n\n// Mixins\nimport Localable from '../../mixins/localable'\nimport Picker from '../../mixins/picker'\n\n// Utils\nimport isDateAllowed from './util/isDateAllowed'\nimport mixins from '../../util/mixins'\nimport { wrapInArray } from '../../util/helpers'\nimport { daysInMonth } from '../VCalendar/util/timestamp'\nimport { consoleWarn } from '../../util/console'\nimport {\n createItemTypeListeners,\n createNativeLocaleFormatter,\n pad,\n sanitizeDateString,\n} from './util'\n\n// Types\nimport {\n PropType,\n PropValidator,\n} from 'vue/types/options'\nimport { VNode } from 'vue'\nimport {\n DatePickerFormatter,\n DatePickerMultipleFormatter,\n DatePickerAllowedDatesFunction,\n DatePickerEventColors,\n DatePickerEvents,\n DatePickerType,\n} from 'vuetify/types'\n\ntype DatePickerValue = string | string[] | undefined\ninterface Formatters {\n year: DatePickerFormatter\n titleDate: DatePickerFormatter | DatePickerMultipleFormatter\n}\n\nexport default mixins(\n Localable,\n Picker,\n/* @vue/component */\n).extend({\n name: 'v-date-picker',\n\n props: {\n allowedDates: Function as PropType<DatePickerAllowedDatesFunction | undefined>,\n // Function formatting the day in date picker table\n dayFormat: Function as PropType<DatePickerAllowedDatesFunction | undefined>,\n disabled: Boolean,\n events: {\n type: [Array, Function, Object],\n default: () => null,\n } as PropValidator<DatePickerEvents | null>,\n eventColor: {\n type: [Array, Function, Object, String],\n default: () => 'warning',\n } as PropValidator<DatePickerEventColors>,\n firstDayOfWeek: {\n type: [String, Number],\n default: 0,\n },\n // Function formatting the tableDate in the day/month table header\n headerDateFormat: Function as PropType<DatePickerFormatter | undefined>,\n localeFirstDayOfYear: {\n type: [String, Number],\n default: 0,\n },\n max: String,\n min: String,\n // Function formatting month in the months table\n monthFormat: Function as PropType<DatePickerFormatter | undefined>,\n multiple: Boolean,\n nextIcon: {\n type: String,\n default: '$next',\n },\n nextMonthAriaLabel: {\n type: String,\n default: '$vuetify.datePicker.nextMonthAriaLabel',\n },\n nextYearAriaLabel: {\n type: String,\n default: '$vuetify.datePicker.nextYearAriaLabel',\n },\n pickerDate: String,\n prevIcon: {\n type: String,\n default: '$prev',\n },\n prevMonthAriaLabel: {\n type: String,\n default: '$vuetify.datePicker.prevMonthAriaLabel',\n },\n prevYearAriaLabel: {\n type: String,\n default: '$vuetify.datePicker.prevYearAriaLabel',\n },\n range: Boolean,\n reactive: Boolean,\n readonly: Boolean,\n scrollable: Boolean,\n showCurrent: {\n type: [Boolean, String],\n default: true,\n },\n selectedItemsText: {\n type: String,\n default: '$vuetify.datePicker.itemsSelected',\n },\n showAdjacentMonths: Boolean,\n showWeek: Boolean,\n // Function formatting currently selected date in the picker title\n titleDateFormat: Function as PropType<DatePickerFormatter | DatePickerMultipleFormatter | undefined>,\n type: {\n type: String,\n default: 'date',\n validator: (type: any) => ['date', 'month'].includes(type), // TODO: year\n } as PropValidator<DatePickerType>,\n value: [Array, String] as PropType<DatePickerValue>,\n weekdayFormat: Function as PropType<DatePickerFormatter | undefined>,\n // Function formatting the year in table header and pickup title\n yearFormat: Function as PropType<DatePickerFormatter | undefined>,\n yearIcon: String,\n },\n\n data () {\n const now = new Date()\n return {\n activePicker: this.type.toUpperCase(),\n inputDay: null as number | null,\n inputMonth: null as number | null,\n inputYear: null as number | null,\n isReversing: false,\n now,\n // tableDate is a string in 'YYYY' / 'YYYY-M' format (leading zero for month is not required)\n tableDate: (() => {\n if (this.pickerDate) {\n return this.pickerDate\n }\n\n const multipleValue = wrapInArray(this.value)\n const date = multipleValue[multipleValue.length - 1] ||\n (typeof this.showCurrent === 'string' ? this.showCurrent : `${now.getFullYear()}-${now.getMonth() + 1}`)\n return sanitizeDateString(date as string, this.type === 'date' ? 'month' : 'year')\n })(),\n }\n },\n\n computed: {\n multipleValue (): string[] {\n return wrapInArray(this.value)\n },\n isMultiple (): boolean {\n return this.multiple || this.range\n },\n lastValue (): string | null {\n return this.isMultiple ? this.multipleValue[this.multipleValue.length - 1] : (this.value as string | null)\n },\n selectedMonths (): string | string[] | undefined {\n if (!this.value || this.type === 'month') {\n return this.value\n } else if (this.isMultiple) {\n return this.multipleValue.map(val => val.substr(0, 7))\n } else {\n return (this.value as string).substr(0, 7)\n }\n },\n current (): string | null {\n if (this.showCurrent === true) {\n return sanitizeDateString(`${this.now.getFullYear()}-${this.now.getMonth() + 1}-${this.now.getDate()}`, this.type)\n }\n\n return this.showCurrent || null\n },\n inputDate (): string {\n return this.type === 'date'\n ? `${this.inputYear}-${pad(this.inputMonth! + 1)}-${pad(this.inputDay!)}`\n : `${this.inputYear}-${pad(this.inputMonth! + 1)}`\n },\n tableMonth (): number {\n return Number((this.pickerDate || this.tableDate).split('-')[1]) - 1\n },\n tableYear (): number {\n return Number((this.pickerDate || this.tableDate).split('-')[0])\n },\n minMonth (): string | null {\n return this.min ? sanitizeDateString(this.min, 'month') : null\n },\n maxMonth (): string | null {\n return this.max ? sanitizeDateString(this.max, 'month') : null\n },\n minYear (): string | null {\n return this.min ? sanitizeDateString(this.min, 'year') : null\n },\n maxYear (): string | null {\n return this.max ? sanitizeDateString(this.max, 'year') : null\n },\n formatters (): Formatters {\n return {\n year: this.yearFormat || createNativeLocaleFormatter(this.currentLocale, { year: 'numeric', timeZone: 'UTC' }, { length: 4 }),\n titleDate: this.titleDateFormat ||\n (this.isMultiple ? this.defaultTitleMultipleDateFormatter : this.defaultTitleDateFormatter),\n }\n },\n defaultTitleMultipleDateFormatter (): DatePickerMultipleFormatter {\n return dates => {\n if (!dates.length) {\n return '-'\n }\n\n if (dates.length === 1) {\n return this.defaultTitleDateFormatter(dates[0])\n }\n\n return this.$vuetify.lang.t(this.selectedItemsText, dates.length)\n }\n },\n defaultTitleDateFormatter (): DatePickerFormatter {\n const titleFormats = {\n year: { year: 'numeric', timeZone: 'UTC' },\n month: { month: 'long', timeZone: 'UTC' },\n date: { weekday: 'short', month: 'short', day: 'numeric', timeZone: 'UTC' },\n }\n\n const titleDateFormatter = createNativeLocaleFormatter(this.currentLocale, titleFormats[this.type], {\n start: 0,\n length: { date: 10, month: 7, year: 4 }[this.type],\n })\n\n const landscapeFormatter = (date: string) => titleDateFormatter(date)\n .replace(/([^\\d\\s])([\\d])/g, (match, nonDigit, digit) => `${nonDigit} ${digit}`)\n .replace(', ', ',<br>')\n\n return this.landscape ? landscapeFormatter : titleDateFormatter\n },\n },\n\n watch: {\n tableDate (val: string, prev: string) {\n // Make a ISO 8601 strings from val and prev for comparision, otherwise it will incorrectly\n // compare for example '2000-9' and '2000-10'\n const sanitizeType = this.type === 'month' ? 'year' : 'month'\n this.isReversing = sanitizeDateString(val, sanitizeType) < sanitizeDateString(prev, sanitizeType)\n this.$emit('update:picker-date', val)\n },\n pickerDate (val: string | null) {\n if (val) {\n this.tableDate = val\n } else if (this.lastValue && this.type === 'date') {\n this.tableDate = sanitizeDateString(this.lastValue, 'month')\n } else if (this.lastValue && this.type === 'month') {\n this.tableDate = sanitizeDateString(this.lastValue, 'year')\n }\n },\n value (newValue: DatePickerValue, oldValue: DatePickerValue) {\n this.checkMultipleProp()\n this.setInputDate()\n\n if (\n (!this.isMultiple && this.value && !this.pickerDate) ||\n (this.isMultiple && this.multipleValue.length && (!oldValue || !oldValue.length) && !this.pickerDate)\n ) {\n this.tableDate = sanitizeDateString(this.inputDate, this.type === 'month' ? 'year' : 'month')\n }\n },\n type (type: DatePickerType) {\n this.activePicker = type.toUpperCase()\n\n if (this.value && this.value.length) {\n const output = this.multipleValue\n .map((val: string) => sanitizeDateString(val, type))\n .filter(this.isDateAllowed)\n this.$emit('input', this.isMultiple ? output : output[0])\n }\n },\n },\n\n created () {\n this.checkMultipleProp()\n\n if (this.pickerDate !== this.tableDate) {\n this.$emit('update:picker-date', this.tableDate)\n }\n this.setInputDate()\n },\n\n methods: {\n emitInput (newInput: string) {\n if (this.range) {\n if (this.multipleValue.length !== 1) {\n this.$emit('input', [newInput])\n } else {\n const output = [this.multipleValue[0], newInput]\n this.$emit('input', output)\n this.$emit('change', output)\n }\n return\n }\n\n const output = this.multiple\n ? (\n this.multipleValue.indexOf(newInput) === -1\n ? this.multipleValue.concat([newInput])\n : this.multipleValue.filter(x => x !== newInput)\n )\n : newInput\n\n this.$emit('input', output)\n this.multiple || this.$emit('change', newInput)\n },\n checkMultipleProp () {\n if (this.value == null) return\n const valueType = this.value.constructor.name\n const expected = this.isMultiple ? 'Array' : 'String'\n if (valueType !== expected) {\n consoleWarn(`Value must be ${this.isMultiple ? 'an' : 'a'} ${expected}, got ${valueType}`, this)\n }\n },\n isDateAllowed (value: string): boolean {\n return isDateAllowed(value, this.min, this.max, this.allowedDates)\n },\n yearClick (value: number) {\n this.inputYear = value\n if (this.type === 'month') {\n this.tableDate = `${value}`\n } else {\n this.tableDate = `${value}-${pad((this.tableMonth || 0) + 1)}`\n }\n this.activePicker = 'MONTH'\n if (this.reactive && !this.readonly && !this.isMultiple && this.isDateAllowed(this.inputDate)) {\n this.$emit('input', this.inputDate)\n }\n },\n monthClick (value: string) {\n this.inputYear = parseInt(value.split('-')[0], 10)\n this.inputMonth = parseInt(value.split('-')[1], 10) - 1\n if (this.type === 'date') {\n if (this.inputDay) {\n this.inputDay = Math.min(this.inputDay, daysInMonth(this.inputYear, this.inputMonth + 1))\n }\n\n this.tableDate = value\n this.activePicker = 'DATE'\n if (this.reactive && !this.readonly && !this.isMultiple && this.isDateAllowed(this.inputDate)) {\n this.$emit('input', this.inputDate)\n }\n } else {\n this.emitInput(this.inputDate)\n }\n },\n dateClick (value: string) {\n this.inputYear = parseInt(value.split('-')[0], 10)\n this.inputMonth = parseInt(value.split('-')[1], 10) - 1\n this.inputDay = parseInt(value.split('-')[2], 10)\n this.emitInput(this.inputDate)\n },\n genPickerTitle (): VNode {\n return this.$createElement(VDatePickerTitle, {\n props: {\n date: this.value ? (this.formatters.titleDate as (value: any) => string)(this.isMultiple ? this.multipleValue : this.value) : '',\n disabled: this.disabled,\n readonly: this.readonly,\n selectingYear: this.activePicker === 'YEAR',\n year: this.formatters.year(this.multipleValue.length ? `${this.inputYear}` : this.tableDate),\n yearIcon: this.yearIcon,\n value: this.multipleValue[0],\n },\n slot: 'title',\n on: {\n 'update:selecting-year': (value: boolean) => this.activePicker = value ? 'YEAR' : this.type.toUpperCase(),\n },\n })\n },\n genTableHeader (): VNode {\n return this.$createElement(VDatePickerHeader, {\n props: {\n nextIcon: this.nextIcon,\n color: this.color,\n dark: this.dark,\n disabled: this.disabled,\n format: this.headerDateFormat,\n light: this.light,\n locale: this.locale,\n min: this.activePicker === 'DATE' ? this.minMonth : this.minYear,\n max: this.activePicker === 'DATE' ? this.maxMonth : this.maxYear,\n nextAriaLabel: this.activePicker === 'DATE' ? this.nextMonthAriaLabel : this.nextYearAriaLabel,\n prevAriaLabel: this.activePicker === 'DATE' ? this.prevMonthAriaLabel : this.prevYearAriaLabel,\n prevIcon: this.prevIcon,\n readonly: this.readonly,\n value: this.activePicker === 'DATE' ? `${pad(this.tableYear, 4)}-${pad(this.tableMonth + 1)}` : `${pad(this.tableYear, 4)}`,\n },\n on: {\n toggle: () => this.activePicker = (this.activePicker === 'DATE' ? 'MONTH' : 'YEAR'),\n input: (value: string) => this.tableDate = value,\n },\n })\n },\n genDateTable (): VNode {\n return this.$createElement(VDatePickerDateTable, {\n props: {\n allowedDates: this.allowedDates,\n color: this.color,\n current: this.current,\n dark: this.dark,\n disabled: this.disabled,\n events: this.events,\n eventColor: this.eventColor,\n firstDayOfWeek: this.firstDayOfWeek,\n format: this.dayFormat,\n light: this.light,\n locale: this.locale,\n localeFirstDayOfYear: this.localeFirstDayOfYear,\n min: this.min,\n max: this.max,\n range: this.range,\n readonly: this.readonly,\n scrollable: this.scrollable,\n showAdjacentMonths: this.showAdjacentMonths,\n showWeek: this.showWeek,\n tableDate: `${pad(this.tableYear, 4)}-${pad(this.tableMonth + 1)}`,\n value: this.value,\n weekdayFormat: this.weekdayFormat,\n },\n ref: 'table',\n on: {\n input: this.dateClick,\n 'update:table-date': (value: string) => this.tableDate = value,\n ...createItemTypeListeners(this, ':date'),\n },\n })\n },\n genMonthTable (): VNode {\n return this.$createElement(VDatePickerMonthTable, {\n props: {\n allowedDates: this.type === 'month' ? this.allowedDates : null,\n color: this.color,\n current: this.current ? sanitizeDateString(this.current, 'month') : null,\n dark: this.dark,\n disabled: this.disabled,\n events: this.type === 'month' ? this.events : null,\n eventColor: this.type === 'month' ? this.eventColor : null,\n format: this.monthFormat,\n light: this.light,\n locale: this.locale,\n min: this.minMonth,\n max: this.maxMonth,\n range: this.range,\n readonly: this.readonly && this.type === 'month',\n scrollable: this.scrollable,\n value: this.selectedMonths,\n tableDate: `${pad(this.tableYear, 4)}`,\n },\n ref: 'table',\n on: {\n input: this.monthClick,\n 'update:table-date': (value: string) => this.tableDate = value,\n ...createItemTypeListeners(this, ':month'),\n },\n })\n },\n genYears (): VNode {\n return this.$createElement(VDatePickerYears, {\n props: {\n color: this.color,\n format: this.yearFormat,\n locale: this.locale,\n min: this.minYear,\n max: this.maxYear,\n value: this.tableYear,\n },\n on: {\n input: this.yearClick,\n ...createItemTypeListeners(this, ':year'),\n },\n })\n },\n genPickerBody (): VNode {\n const children = this.activePicker === 'YEAR' ? [\n this.genYears(),\n ] : [\n this.genTableHeader(),\n this.activePicker === 'DATE' ? this.genDateTable() : this.genMonthTable(),\n ]\n\n return this.$createElement('div', {\n key: this.activePicker,\n }, children)\n },\n setInputDate () {\n if (this.lastValue) {\n const array = this.lastValue.split('-')\n this.inputYear = parseInt(array[0], 10)\n this.inputMonth = parseInt(array[1], 10) - 1\n if (this.type === 'date') {\n this.inputDay = parseInt(array[2], 10)\n }\n } else {\n this.inputYear = this.inputYear || this.now.getFullYear()\n this.inputMonth = this.inputMonth == null ? this.inputMonth : this.now.getMonth()\n this.inputDay = this.inputDay || this.now.getDate()\n }\n },\n },\n\n render (): VNode {\n return this.genPicker('v-picker--date')\n },\n})\n"],"sourceRoot":"","file":"VDatePicker.js"}
@@ -6,7 +6,7 @@ import Colorable from '../../../mixins/colorable';
6
6
  import Localable from '../../../mixins/localable';
7
7
  import Themeable from '../../../mixins/themeable'; // Utils
8
8
 
9
- import { createItemTypeNativeListeners } from '../util';
9
+ import { createItemTypeNativeListeners, sanitizeDateString } from '../util';
10
10
  import isDateAllowed from '../util/isDateAllowed';
11
11
  import { mergeListeners } from '../../../util/mergeData';
12
12
  import mixins from '../../../util/mixins';
@@ -155,6 +155,13 @@ export default mixins(Colorable, Localable, Themeable
155
155
  }, eventColors.map(color => this.$createElement('div', this.setBackgroundColor(color)))) : null;
156
156
  },
157
157
 
158
+ isValidScroll(e, calculateTableDate) {
159
+ const tableDate = calculateTableDate(e.deltaY); // tableDate is 'YYYY-MM' for DateTable and 'YYYY' for MonthTable
160
+
161
+ const sanitizeType = tableDate.split('-').length === 1 ? 'year' : 'month';
162
+ return e.deltaY === 0 || e.deltaY < 0 && (this.min ? tableDate >= sanitizeDateString(this.min, sanitizeType) : true) || e.deltaY > 0 && (this.max ? tableDate <= sanitizeDateString(this.max, sanitizeType) : true);
163
+ },
164
+
158
165
  wheel(e, calculateTableDate) {
159
166
  this.$emit('update:table-date', calculateTableDate(e.deltaY));
160
167
  },
@@ -187,7 +194,10 @@ export default mixins(Colorable, Localable, Themeable
187
194
  on: !this.disabled && this.scrollable ? {
188
195
  wheel: e => {
189
196
  e.preventDefault();
190
- this.wheelThrottle(e, calculateTableDate);
197
+
198
+ if (this.isValidScroll(e, calculateTableDate)) {
199
+ this.wheelThrottle(e, calculateTableDate);
200
+ }
191
201
  }
192
202
  } : undefined,
193
203
  directives: [touchDirective]
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/VDatePicker/mixins/date-picker-table.ts"],"names":[],"mappings":"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","sourcesContent":["import '../VDatePickerTable.sass'\n\n// Directives\nimport Touch from '../../../directives/touch'\n\n// Mixins\nimport Colorable from '../../../mixins/colorable'\nimport Localable from '../../../mixins/localable'\nimport Themeable from '../../../mixins/themeable'\n\n// Utils\nimport { createItemTypeNativeListeners } from '../util'\nimport isDateAllowed from '../util/isDateAllowed'\nimport { mergeListeners } from '../../../util/mergeData'\nimport mixins from '../../../util/mixins'\nimport { throttle } from '../../../util/helpers'\n\n// Types\nimport {\n PropType,\n VNodeChildren,\n} from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport {\n DatePickerAllowedDatesFunction,\n DatePickerEventColors,\n DatePickerEventColorValue,\n DatePickerEvents,\n DatePickerFormatter,\n TouchWrapper,\n} from 'vuetify/types'\n\ntype CalculateTableDateFunction = (v: number) => string\n\nexport default mixins(\n Colorable,\n Localable,\n Themeable\n/* @vue/component */\n).extend({\n directives: { Touch },\n\n props: {\n allowedDates: Function as PropType<DatePickerAllowedDatesFunction | undefined>,\n current: String,\n disabled: Boolean,\n format: Function as PropType<DatePickerFormatter | undefined>,\n events: {\n type: [Array, Function, Object],\n default: () => null,\n } as PropValidator<DatePickerEvents | null>,\n eventColor: {\n type: [Array, Function, Object, String],\n default: () => 'warning',\n } as PropValidator<DatePickerEventColors>,\n min: String,\n max: String,\n range: Boolean,\n readonly: Boolean,\n scrollable: Boolean,\n tableDate: {\n type: String,\n required: true,\n },\n value: [String, Array] as PropType<string | string[]>,\n },\n\n data: () => ({\n isReversing: false,\n wheelThrottle: null as any,\n }),\n\n computed: {\n computedTransition (): string {\n return (this.isReversing === !this.$vuetify.rtl) ? 'tab-reverse-transition' : 'tab-transition'\n },\n displayedMonth (): number {\n return Number(this.tableDate.split('-')[1]) - 1\n },\n displayedYear (): number {\n return Number(this.tableDate.split('-')[0])\n },\n },\n\n watch: {\n tableDate (newVal: string, oldVal: string) {\n this.isReversing = newVal < oldVal\n },\n },\n\n mounted () {\n this.wheelThrottle = throttle(this.wheel, 250)\n },\n\n methods: {\n genButtonClasses (isAllowed: boolean, isFloating: boolean, isSelected: boolean, isCurrent: boolean) {\n return {\n 'v-size--default': !isFloating,\n 'v-date-picker-table__current': isCurrent,\n 'v-btn--active': isSelected,\n 'v-btn--flat': !isAllowed || this.disabled,\n 'v-btn--text': isSelected === isCurrent,\n 'v-btn--rounded': isFloating,\n 'v-btn--disabled': !isAllowed || this.disabled,\n 'v-btn--outlined': isCurrent && !isSelected,\n ...this.themeClasses,\n }\n },\n genButtonEvents (value: string, isAllowed: boolean, mouseEventType: string) {\n if (this.disabled) return undefined\n\n return mergeListeners({\n click: () => {\n if (isAllowed && !this.readonly) this.$emit('input', value)\n },\n }, createItemTypeNativeListeners(this, `:${mouseEventType}`, value))\n },\n genButton (value: string, isFloating: boolean, mouseEventType: string, formatter: DatePickerFormatter, isOtherMonth = false) {\n const isAllowed = isDateAllowed(value, this.min, this.max, this.allowedDates)\n const isSelected = this.isSelected(value) && isAllowed\n const isCurrent = value === this.current\n const setColor = isSelected ? this.setBackgroundColor : this.setTextColor\n const color = (isSelected || isCurrent) && (this.color || 'accent')\n\n return this.$createElement('button', setColor(color, {\n staticClass: 'v-btn',\n class: this.genButtonClasses(isAllowed && !isOtherMonth, isFloating, isSelected, isCurrent),\n attrs: {\n type: 'button',\n },\n domProps: {\n disabled: this.disabled || !isAllowed || isOtherMonth,\n },\n on: this.genButtonEvents(value, isAllowed, mouseEventType),\n }), [\n this.$createElement('div', {\n staticClass: 'v-btn__content',\n }, [formatter(value)]),\n this.genEvents(value),\n ])\n },\n getEventColors (date: string) {\n const arrayize = (v: string | string[]) => Array.isArray(v) ? v : [v]\n let eventData: boolean | DatePickerEventColorValue\n let eventColors: string[] = []\n\n if (Array.isArray(this.events)) {\n eventData = this.events.includes(date)\n } else if (this.events instanceof Function) {\n eventData = this.events(date) || false\n } else if (this.events) {\n eventData = this.events[date] || false\n } else {\n eventData = false\n }\n\n if (!eventData) {\n return []\n } else if (eventData !== true) {\n eventColors = arrayize(eventData)\n } else if (typeof this.eventColor === 'string') {\n eventColors = [this.eventColor]\n } else if (typeof this.eventColor === 'function') {\n eventColors = arrayize(this.eventColor(date))\n } else if (Array.isArray(this.eventColor)) {\n eventColors = this.eventColor\n } else {\n eventColors = arrayize(this.eventColor[date])\n }\n\n return eventColors.filter(v => v)\n },\n genEvents (date: string) {\n const eventColors = this.getEventColors(date)\n\n return eventColors.length ? this.$createElement('div', {\n staticClass: 'v-date-picker-table__events',\n }, eventColors.map(color => this.$createElement('div', this.setBackgroundColor(color)))) : null\n },\n wheel (e: WheelEvent, calculateTableDate: CalculateTableDateFunction) {\n this.$emit('update:table-date', calculateTableDate(e.deltaY))\n },\n touch (value: number, calculateTableDate: CalculateTableDateFunction) {\n this.$emit('update:table-date', calculateTableDate(value))\n },\n genTable (staticClass: string, children: VNodeChildren, calculateTableDate: CalculateTableDateFunction) {\n const transition = this.$createElement('transition', {\n props: { name: this.computedTransition },\n }, [this.$createElement('table', { key: this.tableDate }, children)])\n\n const touchDirective = {\n name: 'touch',\n value: {\n left: (e: TouchWrapper) => (e.offsetX < -15) && this.touch(1, calculateTableDate),\n right: (e: TouchWrapper) => (e.offsetX > 15) && this.touch(-1, calculateTableDate),\n },\n }\n\n return this.$createElement('div', {\n staticClass,\n class: {\n 'v-date-picker-table--disabled': this.disabled,\n ...this.themeClasses,\n },\n on: (!this.disabled && this.scrollable) ? {\n wheel: (e: WheelEvent) => {\n e.preventDefault()\n this.wheelThrottle(e, calculateTableDate)\n },\n } : undefined,\n directives: [touchDirective],\n }, [transition])\n },\n isSelected (value: string): boolean {\n if (Array.isArray(this.value)) {\n if (this.range && this.value.length === 2) {\n const [from, to] = [...this.value].sort()\n return from <= value && value <= to\n } else {\n return this.value.indexOf(value) !== -1\n }\n }\n\n return value === this.value\n },\n },\n})\n"],"sourceRoot":"","file":"date-picker-table.js"}
1
+ {"version":3,"sources":["../../../../src/components/VDatePicker/mixins/date-picker-table.ts"],"names":[],"mappings":"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","sourcesContent":["import '../VDatePickerTable.sass'\n\n// Directives\nimport Touch from '../../../directives/touch'\n\n// Mixins\nimport Colorable from '../../../mixins/colorable'\nimport Localable from '../../../mixins/localable'\nimport Themeable from '../../../mixins/themeable'\n\n// Utils\nimport { createItemTypeNativeListeners, sanitizeDateString } from '../util'\nimport isDateAllowed from '../util/isDateAllowed'\nimport { mergeListeners } from '../../../util/mergeData'\nimport mixins from '../../../util/mixins'\nimport { throttle } from '../../../util/helpers'\n\n// Types\nimport {\n PropType,\n VNodeChildren,\n} from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport {\n DatePickerAllowedDatesFunction,\n DatePickerEventColors,\n DatePickerEventColorValue,\n DatePickerEvents,\n DatePickerFormatter,\n TouchWrapper,\n} from 'vuetify/types'\n\ntype CalculateTableDateFunction = (v: number) => string\n\nexport default mixins(\n Colorable,\n Localable,\n Themeable\n/* @vue/component */\n).extend({\n directives: { Touch },\n\n props: {\n allowedDates: Function as PropType<DatePickerAllowedDatesFunction | undefined>,\n current: String,\n disabled: Boolean,\n format: Function as PropType<DatePickerFormatter | undefined>,\n events: {\n type: [Array, Function, Object],\n default: () => null,\n } as PropValidator<DatePickerEvents | null>,\n eventColor: {\n type: [Array, Function, Object, String],\n default: () => 'warning',\n } as PropValidator<DatePickerEventColors>,\n min: String,\n max: String,\n range: Boolean,\n readonly: Boolean,\n scrollable: Boolean,\n tableDate: {\n type: String,\n required: true,\n },\n value: [String, Array] as PropType<string | string[]>,\n },\n\n data: () => ({\n isReversing: false,\n wheelThrottle: null as any,\n }),\n\n computed: {\n computedTransition (): string {\n return (this.isReversing === !this.$vuetify.rtl) ? 'tab-reverse-transition' : 'tab-transition'\n },\n displayedMonth (): number {\n return Number(this.tableDate.split('-')[1]) - 1\n },\n displayedYear (): number {\n return Number(this.tableDate.split('-')[0])\n },\n },\n\n watch: {\n tableDate (newVal: string, oldVal: string) {\n this.isReversing = newVal < oldVal\n },\n },\n\n mounted () {\n this.wheelThrottle = throttle(this.wheel, 250)\n },\n\n methods: {\n genButtonClasses (isAllowed: boolean, isFloating: boolean, isSelected: boolean, isCurrent: boolean) {\n return {\n 'v-size--default': !isFloating,\n 'v-date-picker-table__current': isCurrent,\n 'v-btn--active': isSelected,\n 'v-btn--flat': !isAllowed || this.disabled,\n 'v-btn--text': isSelected === isCurrent,\n 'v-btn--rounded': isFloating,\n 'v-btn--disabled': !isAllowed || this.disabled,\n 'v-btn--outlined': isCurrent && !isSelected,\n ...this.themeClasses,\n }\n },\n genButtonEvents (value: string, isAllowed: boolean, mouseEventType: string) {\n if (this.disabled) return undefined\n\n return mergeListeners({\n click: () => {\n if (isAllowed && !this.readonly) this.$emit('input', value)\n },\n }, createItemTypeNativeListeners(this, `:${mouseEventType}`, value))\n },\n genButton (value: string, isFloating: boolean, mouseEventType: string, formatter: DatePickerFormatter, isOtherMonth = false) {\n const isAllowed = isDateAllowed(value, this.min, this.max, this.allowedDates)\n const isSelected = this.isSelected(value) && isAllowed\n const isCurrent = value === this.current\n const setColor = isSelected ? this.setBackgroundColor : this.setTextColor\n const color = (isSelected || isCurrent) && (this.color || 'accent')\n\n return this.$createElement('button', setColor(color, {\n staticClass: 'v-btn',\n class: this.genButtonClasses(isAllowed && !isOtherMonth, isFloating, isSelected, isCurrent),\n attrs: {\n type: 'button',\n },\n domProps: {\n disabled: this.disabled || !isAllowed || isOtherMonth,\n },\n on: this.genButtonEvents(value, isAllowed, mouseEventType),\n }), [\n this.$createElement('div', {\n staticClass: 'v-btn__content',\n }, [formatter(value)]),\n this.genEvents(value),\n ])\n },\n getEventColors (date: string) {\n const arrayize = (v: string | string[]) => Array.isArray(v) ? v : [v]\n let eventData: boolean | DatePickerEventColorValue\n let eventColors: string[] = []\n\n if (Array.isArray(this.events)) {\n eventData = this.events.includes(date)\n } else if (this.events instanceof Function) {\n eventData = this.events(date) || false\n } else if (this.events) {\n eventData = this.events[date] || false\n } else {\n eventData = false\n }\n\n if (!eventData) {\n return []\n } else if (eventData !== true) {\n eventColors = arrayize(eventData)\n } else if (typeof this.eventColor === 'string') {\n eventColors = [this.eventColor]\n } else if (typeof this.eventColor === 'function') {\n eventColors = arrayize(this.eventColor(date))\n } else if (Array.isArray(this.eventColor)) {\n eventColors = this.eventColor\n } else {\n eventColors = arrayize(this.eventColor[date])\n }\n\n return eventColors.filter(v => v)\n },\n genEvents (date: string) {\n const eventColors = this.getEventColors(date)\n\n return eventColors.length ? this.$createElement('div', {\n staticClass: 'v-date-picker-table__events',\n }, eventColors.map(color => this.$createElement('div', this.setBackgroundColor(color)))) : null\n },\n isValidScroll (e: WheelEvent, calculateTableDate: CalculateTableDateFunction) {\n const tableDate = calculateTableDate(e.deltaY)\n // tableDate is 'YYYY-MM' for DateTable and 'YYYY' for MonthTable\n const sanitizeType = tableDate.split('-').length === 1 ? 'year' : 'month'\n return (e.deltaY === 0) ||\n (e.deltaY < 0 && (this.min ? tableDate >= sanitizeDateString(this.min, sanitizeType) : true)) ||\n (e.deltaY > 0 && (this.max ? tableDate <= sanitizeDateString(this.max, sanitizeType) : true))\n },\n wheel (e: WheelEvent, calculateTableDate: CalculateTableDateFunction) {\n this.$emit('update:table-date', calculateTableDate(e.deltaY))\n },\n touch (value: number, calculateTableDate: CalculateTableDateFunction) {\n this.$emit('update:table-date', calculateTableDate(value))\n },\n genTable (staticClass: string, children: VNodeChildren, calculateTableDate: CalculateTableDateFunction) {\n const transition = this.$createElement('transition', {\n props: { name: this.computedTransition },\n }, [this.$createElement('table', { key: this.tableDate }, children)])\n\n const touchDirective = {\n name: 'touch',\n value: {\n left: (e: TouchWrapper) => (e.offsetX < -15) && this.touch(1, calculateTableDate),\n right: (e: TouchWrapper) => (e.offsetX > 15) && this.touch(-1, calculateTableDate),\n },\n }\n\n return this.$createElement('div', {\n staticClass,\n class: {\n 'v-date-picker-table--disabled': this.disabled,\n ...this.themeClasses,\n },\n on: (!this.disabled && this.scrollable) ? {\n wheel: (e: WheelEvent) => {\n e.preventDefault()\n if (this.isValidScroll(e, calculateTableDate)) { this.wheelThrottle(e, calculateTableDate) }\n },\n } : undefined,\n directives: [touchDirective],\n }, [transition])\n },\n isSelected (value: string): boolean {\n if (Array.isArray(this.value)) {\n if (this.range && this.value.length === 2) {\n const [from, to] = [...this.value].sort()\n return from <= value && value <= to\n } else {\n return this.value.indexOf(value) !== -1\n }\n }\n\n return value === this.value\n },\n },\n})\n"],"sourceRoot":"","file":"date-picker-table.js"}
@@ -1,6 +1,7 @@
1
1
  import { createItemTypeListeners, createItemTypeNativeListeners } from './eventHelpers';
2
2
  import createNativeLocaleFormatter from './createNativeLocaleFormatter';
3
3
  import monthChange from './monthChange';
4
+ import sanitizeDateString from './sanitizeDateString';
4
5
  import pad from './pad';
5
- export { createItemTypeListeners, createItemTypeNativeListeners, createNativeLocaleFormatter, monthChange, pad };
6
+ export { createItemTypeListeners, createItemTypeNativeListeners, createNativeLocaleFormatter, monthChange, sanitizeDateString, pad };
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/VDatePicker/util/index.ts"],"names":[],"mappings":"AAAA,SACE,uBADF,EAEE,6BAFF,QAGO,gBAHP;AAIA,OAAO,2BAAP,MAAwC,+BAAxC;AACA,OAAO,WAAP,MAAwB,eAAxB;AACA,OAAO,GAAP,MAAgB,OAAhB;AAEA,SACE,uBADF,EAEE,6BAFF,EAGE,2BAHF,EAIE,WAJF,EAKE,GALF","sourcesContent":["import {\n createItemTypeListeners,\n createItemTypeNativeListeners,\n} from './eventHelpers'\nimport createNativeLocaleFormatter from './createNativeLocaleFormatter'\nimport monthChange from './monthChange'\nimport pad from './pad'\n\nexport {\n createItemTypeListeners,\n createItemTypeNativeListeners,\n createNativeLocaleFormatter,\n monthChange,\n pad,\n}\n"],"sourceRoot":"","file":"index.js"}
1
+ {"version":3,"sources":["../../../../src/components/VDatePicker/util/index.ts"],"names":[],"mappings":"AAAA,SACE,uBADF,EAEE,6BAFF,QAGO,gBAHP;AAIA,OAAO,2BAAP,MAAwC,+BAAxC;AACA,OAAO,WAAP,MAAwB,eAAxB;AACA,OAAO,kBAAP,MAA+B,sBAA/B;AACA,OAAO,GAAP,MAAgB,OAAhB;AAEA,SACE,uBADF,EAEE,6BAFF,EAGE,2BAHF,EAIE,WAJF,EAKE,kBALF,EAME,GANF","sourcesContent":["import {\n createItemTypeListeners,\n createItemTypeNativeListeners,\n} from './eventHelpers'\nimport createNativeLocaleFormatter from './createNativeLocaleFormatter'\nimport monthChange from './monthChange'\nimport sanitizeDateString from './sanitizeDateString'\nimport pad from './pad'\n\nexport {\n createItemTypeListeners,\n createItemTypeNativeListeners,\n createNativeLocaleFormatter,\n monthChange,\n sanitizeDateString,\n pad,\n}\n"],"sourceRoot":"","file":"index.js"}
@@ -0,0 +1,12 @@
1
+ // Adds leading zero to month/day if necessary, returns 'YYYY' if type = 'year',
2
+ // 'YYYY-MM' if 'month' and 'YYYY-MM-DD' if 'date'
3
+ import pad from './pad';
4
+ export default ((dateString, type) => {
5
+ const [year, month = 1, date = 1] = dateString.split('-');
6
+ return `${year}-${pad(month)}-${pad(date)}`.substr(0, {
7
+ date: 10,
8
+ month: 7,
9
+ year: 4
10
+ }[type]);
11
+ });
12
+ //# sourceMappingURL=sanitizeDateString.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/VDatePicker/util/sanitizeDateString.ts"],"names":[],"mappings":"AAAA;AACA;AACA,OAAO,GAAP,MAAgB,OAAhB;AAEA,gBAAe,CAAC,UAAD,EAAqB,IAArB,KAAgE;AAC7E,QAAM,CAAC,IAAD,EAAO,KAAK,GAAG,CAAf,EAAkB,IAAI,GAAG,CAAzB,IAA8B,UAAU,CAAC,KAAX,CAAiB,GAAjB,CAApC;AACA,SAAO,GAAG,IAAI,IAAI,GAAG,CAAC,KAAD,CAAO,IAAI,GAAG,CAAC,IAAD,CAAM,EAAlC,CAAqC,MAArC,CAA4C,CAA5C,EAA+C;AAAE,IAAA,IAAI,EAAE,EAAR;AAAY,IAAA,KAAK,EAAE,CAAnB;AAAsB,IAAA,IAAI,EAAE;AAA5B,IAAgC,IAAhC,CAA/C,CAAP;AACD,CAHD","sourcesContent":["// Adds leading zero to month/day if necessary, returns 'YYYY' if type = 'year',\n// 'YYYY-MM' if 'month' and 'YYYY-MM-DD' if 'date'\nimport pad from './pad'\n\nexport default (dateString: string, type: 'date' | 'month' | 'year'): string => {\n const [year, month = 1, date = 1] = dateString.split('-')\n return `${year}-${pad(month)}-${pad(date)}`.substr(0, { date: 10, month: 7, year: 4 }[type])\n}\n"],"sourceRoot":"","file":"sanitizeDateString.js"}
@@ -164,6 +164,7 @@ export default mixins(Colorable, Intersectable({
164
164
  'v-pagination__navigation--disabled': disabled
165
165
  },
166
166
  attrs: {
167
+ disabled,
167
168
  type: 'button',
168
169
  'aria-label': label
169
170
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VPagination/VPagination.ts"],"names":[],"mappings":"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","sourcesContent":["import './VPagination.sass'\n\nimport VIcon from '../VIcon'\n\n// Directives\nimport Resize from '../../directives/resize'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Intersectable from '../../mixins/intersectable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, CreateElement, VNodeChildrenArrayContents } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Colorable,\n Intersectable({ onVisible: ['init'] }),\n Themeable\n).extend({\n name: 'v-pagination',\n\n directives: { Resize },\n\n props: {\n circle: Boolean,\n disabled: Boolean,\n length: {\n type: Number,\n default: 0,\n validator: (val: number) => val % 1 === 0,\n },\n nextIcon: {\n type: String,\n default: '$next',\n },\n prevIcon: {\n type: String,\n default: '$prev',\n },\n totalVisible: [Number, String],\n value: {\n type: Number,\n default: 0,\n },\n pageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.page',\n },\n currentPageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.currentPage',\n },\n previousAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.previous',\n },\n nextAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.next',\n },\n wrapperAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.wrapper',\n },\n },\n\n data () {\n return {\n maxButtons: 0,\n selected: null as number | null,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-pagination': true,\n 'v-pagination--circle': this.circle,\n 'v-pagination--disabled': this.disabled,\n ...this.themeClasses,\n }\n },\n\n items (): (string | number)[] {\n const totalVisible = parseInt(this.totalVisible, 10)\n\n if (totalVisible === 0) {\n return []\n }\n\n const maxLength = Math.min(\n Math.max(0, totalVisible) || this.length,\n Math.max(0, this.maxButtons) || this.length,\n this.length\n )\n\n if (this.length <= maxLength) {\n return this.range(1, this.length)\n }\n\n const even = maxLength % 2 === 0 ? 1 : 0\n const left = Math.floor(maxLength / 2)\n const right = this.length - left + 1 + even\n\n if (this.value > left && this.value < right) {\n const start = this.value - left + 2\n const end = this.value + left - 2 - even\n\n return [1, '...', ...this.range(start, end), '...', this.length]\n } else if (this.value === left) {\n const end = this.value + left - 1 - even\n return [...this.range(1, end), '...', this.length]\n } else if (this.value === right) {\n const start = this.value - left + 1\n return [1, '...', ...this.range(start, this.length)]\n } else {\n return [\n ...this.range(1, left),\n '...',\n ...this.range(right, this.length),\n ]\n }\n },\n },\n\n watch: {\n value () {\n this.init()\n },\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init () {\n this.selected = null\n\n this.$nextTick(this.onResize)\n // TODO: Change this (f75dee3a, cbdf7caa)\n setTimeout(() => (this.selected = this.value), 100)\n },\n onResize () {\n const width = this.$el && this.$el.parentElement\n ? this.$el.parentElement.clientWidth\n : window.innerWidth\n\n this.maxButtons = Math.floor((width - 96) / 42)\n },\n next (e: Event) {\n e.preventDefault()\n this.$emit('input', this.value + 1)\n this.$emit('next')\n },\n previous (e: Event) {\n e.preventDefault()\n this.$emit('input', this.value - 1)\n this.$emit('previous')\n },\n range (from: number, to: number) {\n const range = []\n\n from = from > 0 ? from : 1\n\n for (let i = from; i <= to; i++) {\n range.push(i)\n }\n\n return range\n },\n genIcon (h: CreateElement, icon: string, disabled: boolean, fn: EventListener, label: String): VNode {\n return h('li', [\n h('button', {\n staticClass: 'v-pagination__navigation',\n class: {\n 'v-pagination__navigation--disabled': disabled,\n },\n attrs: {\n type: 'button',\n 'aria-label': label,\n },\n on: disabled ? {} : { click: fn },\n }, [h(VIcon, [icon])]),\n ])\n },\n genItem (h: CreateElement, i: string | number): VNode {\n const color: string | false = (i === this.value) && (this.color || 'primary')\n const isCurrentPage = i === this.value\n const ariaLabel = isCurrentPage ? this.currentPageAriaLabel : this.pageAriaLabel\n\n return h('button', this.setBackgroundColor(color, {\n staticClass: 'v-pagination__item',\n class: {\n 'v-pagination__item--active': i === this.value,\n },\n attrs: {\n type: 'button',\n 'aria-current': isCurrentPage,\n 'aria-label': this.$vuetify.lang.t(ariaLabel, i),\n },\n on: {\n click: () => this.$emit('input', i),\n },\n }), [i.toString()])\n },\n genItems (h: CreateElement): VNode[] {\n return this.items.map((i, index) => {\n return h('li', { key: index }, [\n isNaN(Number(i)) ? h('span', { class: 'v-pagination__more' }, [i.toString()]) : this.genItem(h, i),\n ])\n })\n },\n genList (h: CreateElement, children: VNodeChildrenArrayContents): VNode {\n return h('ul', {\n directives: [{\n modifiers: { quiet: true },\n name: 'resize',\n value: this.onResize,\n }],\n class: this.classes,\n }, children)\n },\n },\n\n render (h): VNode {\n const children = [\n this.genIcon(h,\n this.$vuetify.rtl ? this.nextIcon : this.prevIcon,\n this.value <= 1,\n this.previous,\n this.$vuetify.lang.t(this.previousAriaLabel)),\n this.genItems(h),\n this.genIcon(h,\n this.$vuetify.rtl ? this.prevIcon : this.nextIcon,\n this.value >= this.length,\n this.next,\n this.$vuetify.lang.t(this.nextAriaLabel)),\n ]\n\n return h('nav', {\n attrs: {\n role: 'navigation',\n 'aria-label': this.$vuetify.lang.t(this.wrapperAriaLabel),\n },\n }, [this.genList(h, children)])\n },\n})\n"],"sourceRoot":"","file":"VPagination.js"}
1
+ {"version":3,"sources":["../../../src/components/VPagination/VPagination.ts"],"names":[],"mappings":"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","sourcesContent":["import './VPagination.sass'\n\nimport VIcon from '../VIcon'\n\n// Directives\nimport Resize from '../../directives/resize'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Intersectable from '../../mixins/intersectable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, CreateElement, VNodeChildrenArrayContents } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Colorable,\n Intersectable({ onVisible: ['init'] }),\n Themeable\n).extend({\n name: 'v-pagination',\n\n directives: { Resize },\n\n props: {\n circle: Boolean,\n disabled: Boolean,\n length: {\n type: Number,\n default: 0,\n validator: (val: number) => val % 1 === 0,\n },\n nextIcon: {\n type: String,\n default: '$next',\n },\n prevIcon: {\n type: String,\n default: '$prev',\n },\n totalVisible: [Number, String],\n value: {\n type: Number,\n default: 0,\n },\n pageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.page',\n },\n currentPageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.currentPage',\n },\n previousAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.previous',\n },\n nextAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.next',\n },\n wrapperAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.wrapper',\n },\n },\n\n data () {\n return {\n maxButtons: 0,\n selected: null as number | null,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-pagination': true,\n 'v-pagination--circle': this.circle,\n 'v-pagination--disabled': this.disabled,\n ...this.themeClasses,\n }\n },\n\n items (): (string | number)[] {\n const totalVisible = parseInt(this.totalVisible, 10)\n\n if (totalVisible === 0) {\n return []\n }\n\n const maxLength = Math.min(\n Math.max(0, totalVisible) || this.length,\n Math.max(0, this.maxButtons) || this.length,\n this.length\n )\n\n if (this.length <= maxLength) {\n return this.range(1, this.length)\n }\n\n const even = maxLength % 2 === 0 ? 1 : 0\n const left = Math.floor(maxLength / 2)\n const right = this.length - left + 1 + even\n\n if (this.value > left && this.value < right) {\n const start = this.value - left + 2\n const end = this.value + left - 2 - even\n\n return [1, '...', ...this.range(start, end), '...', this.length]\n } else if (this.value === left) {\n const end = this.value + left - 1 - even\n return [...this.range(1, end), '...', this.length]\n } else if (this.value === right) {\n const start = this.value - left + 1\n return [1, '...', ...this.range(start, this.length)]\n } else {\n return [\n ...this.range(1, left),\n '...',\n ...this.range(right, this.length),\n ]\n }\n },\n },\n\n watch: {\n value () {\n this.init()\n },\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init () {\n this.selected = null\n\n this.$nextTick(this.onResize)\n // TODO: Change this (f75dee3a, cbdf7caa)\n setTimeout(() => (this.selected = this.value), 100)\n },\n onResize () {\n const width = this.$el && this.$el.parentElement\n ? this.$el.parentElement.clientWidth\n : window.innerWidth\n\n this.maxButtons = Math.floor((width - 96) / 42)\n },\n next (e: Event) {\n e.preventDefault()\n this.$emit('input', this.value + 1)\n this.$emit('next')\n },\n previous (e: Event) {\n e.preventDefault()\n this.$emit('input', this.value - 1)\n this.$emit('previous')\n },\n range (from: number, to: number) {\n const range = []\n\n from = from > 0 ? from : 1\n\n for (let i = from; i <= to; i++) {\n range.push(i)\n }\n\n return range\n },\n genIcon (h: CreateElement, icon: string, disabled: boolean, fn: EventListener, label: String): VNode {\n return h('li', [\n h('button', {\n staticClass: 'v-pagination__navigation',\n class: {\n 'v-pagination__navigation--disabled': disabled,\n },\n attrs: {\n disabled,\n type: 'button',\n 'aria-label': label,\n },\n on: disabled ? {} : { click: fn },\n }, [h(VIcon, [icon])]),\n ])\n },\n genItem (h: CreateElement, i: string | number): VNode {\n const color: string | false = (i === this.value) && (this.color || 'primary')\n const isCurrentPage = i === this.value\n const ariaLabel = isCurrentPage ? this.currentPageAriaLabel : this.pageAriaLabel\n\n return h('button', this.setBackgroundColor(color, {\n staticClass: 'v-pagination__item',\n class: {\n 'v-pagination__item--active': i === this.value,\n },\n attrs: {\n type: 'button',\n 'aria-current': isCurrentPage,\n 'aria-label': this.$vuetify.lang.t(ariaLabel, i),\n },\n on: {\n click: () => this.$emit('input', i),\n },\n }), [i.toString()])\n },\n genItems (h: CreateElement): VNode[] {\n return this.items.map((i, index) => {\n return h('li', { key: index }, [\n isNaN(Number(i)) ? h('span', { class: 'v-pagination__more' }, [i.toString()]) : this.genItem(h, i),\n ])\n })\n },\n genList (h: CreateElement, children: VNodeChildrenArrayContents): VNode {\n return h('ul', {\n directives: [{\n modifiers: { quiet: true },\n name: 'resize',\n value: this.onResize,\n }],\n class: this.classes,\n }, children)\n },\n },\n\n render (h): VNode {\n const children = [\n this.genIcon(h,\n this.$vuetify.rtl ? this.nextIcon : this.prevIcon,\n this.value <= 1,\n this.previous,\n this.$vuetify.lang.t(this.previousAriaLabel)),\n this.genItems(h),\n this.genIcon(h,\n this.$vuetify.rtl ? this.prevIcon : this.nextIcon,\n this.value >= this.length,\n this.next,\n this.$vuetify.lang.t(this.nextAriaLabel)),\n ]\n\n return h('nav', {\n attrs: {\n role: 'navigation',\n 'aria-label': this.$vuetify.lang.t(this.wrapperAriaLabel),\n },\n }, [this.genList(h, children)])\n },\n})\n"],"sourceRoot":"","file":"VPagination.js"}
package/lib/framework.js CHANGED
@@ -46,7 +46,7 @@ export default class Vuetify {
46
46
  }
47
47
  Vuetify.install = install;
48
48
  Vuetify.installed = false;
49
- Vuetify.version = "2.4.3";
49
+ Vuetify.version = "2.4.4";
50
50
  Vuetify.config = {
51
51
  silent: false
52
52
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "vuetify",
3
3
  "description": "Vue Material Component Framework",
4
- "version": "2.4.3",
4
+ "version": "2.4.4",
5
5
  "author": {
6
6
  "name": "John Leider",
7
7
  "email": "john@vuetifyjs.com"
@@ -114,5 +114,5 @@
114
114
  "attributes": "dist/json/attributes.json"
115
115
  },
116
116
  "web-types": "dist/json/web-types.json",
117
- "gitHead": "7b2e19f5011ace057853681b88159998750570c5"
117
+ "gitHead": "eeefd9cb112aea7a7edf60629c470fdbd0b08721"
118
118
  }
@@ -19,6 +19,7 @@ import {
19
19
  createItemTypeListeners,
20
20
  createNativeLocaleFormatter,
21
21
  pad,
22
+ sanitizeDateString,
22
23
  } from './util'
23
24
 
24
25
  // Types
@@ -42,13 +43,6 @@ interface Formatters {
42
43
  titleDate: DatePickerFormatter | DatePickerMultipleFormatter
43
44
  }
44
45
 
45
- // Adds leading zero to month/day if necessary, returns 'YYYY' if type = 'year',
46
- // 'YYYY-MM' if 'month' and 'YYYY-MM-DD' if 'date'
47
- function sanitizeDateString (dateString: string, type: 'date' | 'month' | 'year'): string {
48
- const [year, month = 1, date = 1] = dateString.split('-')
49
- return `${year}-${pad(month)}-${pad(date)}`.substr(0, { date: 10, month: 7, year: 4 }[type])
50
- }
51
-
52
46
  export default mixins(
53
47
  Localable,
54
48
  Picker,
@@ -252,6 +252,38 @@ describe('VDatePickerDateTable.ts', () => {
252
252
  expect(tableDate).not.toHaveBeenCalled()
253
253
  })
254
254
 
255
+ it('should not emit tableDate event when scrollable but tableDate less than min', () => {
256
+ const wrapper = mountFunction({
257
+ propsData: {
258
+ tableDate: '2005-05',
259
+ scrollable: true,
260
+ min: '2005-05',
261
+ },
262
+ })
263
+
264
+ const tableDate = jest.fn()
265
+ wrapper.vm.$on('update:table-date', tableDate)
266
+
267
+ wrapper.trigger('wheel', { deltaY: -50 })
268
+ expect(tableDate).not.toHaveBeenCalled()
269
+ })
270
+
271
+ it('should emit tableDate event when scrollable and tableDate greater than min', () => {
272
+ const wrapper = mountFunction({
273
+ propsData: {
274
+ tableDate: '2005-05',
275
+ scrollable: true,
276
+ min: '2005-03',
277
+ },
278
+ })
279
+
280
+ const tableDate = jest.fn()
281
+ wrapper.vm.$on('update:table-date', tableDate)
282
+
283
+ wrapper.trigger('wheel', { deltaY: -50 })
284
+ expect(tableDate).toHaveBeenCalledWith('2005-04')
285
+ })
286
+
255
287
  // TODO
256
288
  it.skip('should emit tableDate event when swiped', () => {
257
289
  const wrapper = mountFunction({
@@ -142,6 +142,38 @@ describe('VDatePickerMonthTable.ts', () => {
142
142
  expect(tableDate).not.toHaveBeenCalled()
143
143
  })
144
144
 
145
+ it('should not emit tableDate event when scrollable but tableDate less than min', () => {
146
+ const wrapper = mountFunction({
147
+ propsData: {
148
+ tableDate: '2005',
149
+ scrollable: true,
150
+ min: '2005',
151
+ },
152
+ })
153
+
154
+ const tableDate = jest.fn()
155
+ wrapper.vm.$on('update:table-date', tableDate)
156
+
157
+ wrapper.trigger('wheel', { deltaY: -50 })
158
+ expect(tableDate).not.toHaveBeenCalled()
159
+ })
160
+
161
+ it('should emit tableDate event when scrollable and tableDate greater than min', () => {
162
+ const wrapper = mountFunction({
163
+ propsData: {
164
+ tableDate: '2005',
165
+ scrollable: true,
166
+ min: '2003',
167
+ },
168
+ })
169
+
170
+ const tableDate = jest.fn()
171
+ wrapper.vm.$on('update:table-date', tableDate)
172
+
173
+ wrapper.trigger('wheel', { deltaY: -50 })
174
+ expect(tableDate).toHaveBeenCalledWith('2004')
175
+ })
176
+
145
177
  // TODO
146
178
  it.skip('should emit tableDate event when swiped', () => {
147
179
  const wrapper = mountFunction({
@@ -9,7 +9,7 @@ import Localable from '../../../mixins/localable'
9
9
  import Themeable from '../../../mixins/themeable'
10
10
 
11
11
  // Utils
12
- import { createItemTypeNativeListeners } from '../util'
12
+ import { createItemTypeNativeListeners, sanitizeDateString } from '../util'
13
13
  import isDateAllowed from '../util/isDateAllowed'
14
14
  import { mergeListeners } from '../../../util/mergeData'
15
15
  import mixins from '../../../util/mixins'
@@ -177,6 +177,14 @@ export default mixins(
177
177
  staticClass: 'v-date-picker-table__events',
178
178
  }, eventColors.map(color => this.$createElement('div', this.setBackgroundColor(color)))) : null
179
179
  },
180
+ isValidScroll (e: WheelEvent, calculateTableDate: CalculateTableDateFunction) {
181
+ const tableDate = calculateTableDate(e.deltaY)
182
+ // tableDate is 'YYYY-MM' for DateTable and 'YYYY' for MonthTable
183
+ const sanitizeType = tableDate.split('-').length === 1 ? 'year' : 'month'
184
+ return (e.deltaY === 0) ||
185
+ (e.deltaY < 0 && (this.min ? tableDate >= sanitizeDateString(this.min, sanitizeType) : true)) ||
186
+ (e.deltaY > 0 && (this.max ? tableDate <= sanitizeDateString(this.max, sanitizeType) : true))
187
+ },
180
188
  wheel (e: WheelEvent, calculateTableDate: CalculateTableDateFunction) {
181
189
  this.$emit('update:table-date', calculateTableDate(e.deltaY))
182
190
  },
@@ -205,7 +213,7 @@ export default mixins(
205
213
  on: (!this.disabled && this.scrollable) ? {
206
214
  wheel: (e: WheelEvent) => {
207
215
  e.preventDefault()
208
- this.wheelThrottle(e, calculateTableDate)
216
+ if (this.isValidScroll(e, calculateTableDate)) { this.wheelThrottle(e, calculateTableDate) }
209
217
  },
210
218
  } : undefined,
211
219
  directives: [touchDirective],
@@ -0,0 +1,10 @@
1
+ import sanitizeDateString from '../sanitizeDateString'
2
+
3
+ describe('VDatePicker/util/sanitizeDateString.ts', () => {
4
+ it('should sanitize date string based upon type', () => {
5
+ expect(sanitizeDateString('2000-01-02T14:48:00.000Z', 'date')).toBe('2000-01-02')
6
+ expect(sanitizeDateString('2000-01-02T14:48:00.000Z', 'month')).toBe('2000-01')
7
+ expect(sanitizeDateString('2000-01-02T14:48:00.000Z', 'year')).toBe('2000')
8
+ expect(sanitizeDateString('2000-1-2', 'date')).toBe('2000-01-02')
9
+ })
10
+ })
@@ -4,6 +4,7 @@ import {
4
4
  } from './eventHelpers'
5
5
  import createNativeLocaleFormatter from './createNativeLocaleFormatter'
6
6
  import monthChange from './monthChange'
7
+ import sanitizeDateString from './sanitizeDateString'
7
8
  import pad from './pad'
8
9
 
9
10
  export {
@@ -11,5 +12,6 @@ export {
11
12
  createItemTypeNativeListeners,
12
13
  createNativeLocaleFormatter,
13
14
  monthChange,
15
+ sanitizeDateString,
14
16
  pad,
15
17
  }
@@ -0,0 +1,8 @@
1
+ // Adds leading zero to month/day if necessary, returns 'YYYY' if type = 'year',
2
+ // 'YYYY-MM' if 'month' and 'YYYY-MM-DD' if 'date'
3
+ import pad from './pad'
4
+
5
+ export default (dateString: string, type: 'date' | 'month' | 'year'): string => {
6
+ const [year, month = 1, date = 1] = dateString.split('-')
7
+ return `${year}-${pad(month)}-${pad(date)}`.substr(0, { date: 10, month: 7, year: 4 }[type])
8
+ }
@@ -182,6 +182,7 @@ export default mixins(
182
182
  'v-pagination__navigation--disabled': disabled,
183
183
  },
184
184
  attrs: {
185
+ disabled,
185
186
  type: 'button',
186
187
  'aria-label': label,
187
188
  },