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.
- package/dist/json/attributes.json +3 -3
- package/dist/json/web-types.json +8 -8
- package/dist/vuetify.css +2 -2
- package/dist/vuetify.css.map +1 -1
- package/dist/vuetify.js +87 -61
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +2 -2
- package/es5/components/VDatePicker/VDatePicker.js +12 -38
- package/es5/components/VDatePicker/VDatePicker.js.map +1 -1
- package/es5/components/VDatePicker/mixins/date-picker-table.js +9 -1
- package/es5/components/VDatePicker/mixins/date-picker-table.js.map +1 -1
- package/es5/components/VDatePicker/util/index.js +8 -0
- package/es5/components/VDatePicker/util/index.js.map +1 -1
- package/es5/components/VDatePicker/util/sanitizeDateString.js +37 -0
- package/es5/components/VDatePicker/util/sanitizeDateString.js.map +1 -0
- package/es5/components/VPagination/VPagination.js +1 -0
- package/es5/components/VPagination/VPagination.js.map +1 -1
- package/es5/framework.js +1 -1
- package/lib/components/VDatePicker/VDatePicker.js +1 -12
- package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
- package/lib/components/VDatePicker/mixins/date-picker-table.js +12 -2
- package/lib/components/VDatePicker/mixins/date-picker-table.js.map +1 -1
- package/lib/components/VDatePicker/util/index.js +2 -1
- package/lib/components/VDatePicker/util/index.js.map +1 -1
- package/lib/components/VDatePicker/util/sanitizeDateString.js +12 -0
- package/lib/components/VDatePicker/util/sanitizeDateString.js.map +1 -0
- package/lib/components/VPagination/VPagination.js +1 -0
- package/lib/components/VPagination/VPagination.js.map +1 -1
- package/lib/framework.js +1 -1
- package/package.json +2 -2
- package/src/components/VDatePicker/VDatePicker.ts +1 -7
- package/src/components/VDatePicker/__tests__/VDatePickerDateTable.spec.ts +32 -0
- package/src/components/VDatePicker/__tests__/VDatePickerMonthTable.spec.ts +32 -0
- package/src/components/VDatePicker/mixins/date-picker-table.ts +10 -2
- package/src/components/VDatePicker/util/__tests__/sanitizeDateString.spec.ts +10 -0
- package/src/components/VDatePicker/util/index.ts +2 -0
- package/src/components/VDatePicker/util/sanitizeDateString.ts +8 -0
- package/src/components/VPagination/VPagination.ts +1 -0
- package/src/components/VPagination/__tests__/__snapshots__/VPagination.spec.ts.snap +6 -3
- package/src/components/VTextField/VTextField.sass +2 -2
|
@@ -39,32 +39,6 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
39
39
|
|
|
40
40
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
41
41
|
|
|
42
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
|
|
43
|
-
|
|
44
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
|
|
45
|
-
|
|
46
|
-
function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
47
|
-
|
|
48
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
49
|
-
|
|
50
|
-
// Adds leading zero to month/day if necessary, returns 'YYYY' if type = 'year',
|
|
51
|
-
// 'YYYY-MM' if 'month' and 'YYYY-MM-DD' if 'date'
|
|
52
|
-
function sanitizeDateString(dateString, type) {
|
|
53
|
-
var _dateString$split = dateString.split('-'),
|
|
54
|
-
_dateString$split2 = _slicedToArray(_dateString$split, 3),
|
|
55
|
-
year = _dateString$split2[0],
|
|
56
|
-
_dateString$split2$ = _dateString$split2[1],
|
|
57
|
-
month = _dateString$split2$ === void 0 ? 1 : _dateString$split2$,
|
|
58
|
-
_dateString$split2$2 = _dateString$split2[2],
|
|
59
|
-
date = _dateString$split2$2 === void 0 ? 1 : _dateString$split2$2;
|
|
60
|
-
|
|
61
|
-
return "".concat(year, "-").concat((0, _util.pad)(month), "-").concat((0, _util.pad)(date)).substr(0, {
|
|
62
|
-
date: 10,
|
|
63
|
-
month: 7,
|
|
64
|
-
year: 4
|
|
65
|
-
}[type]);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
42
|
var _default2 = (0, _mixins.default)(_localable.default, _picker.default).extend({
|
|
69
43
|
name: 'v-date-picker',
|
|
70
44
|
props: {
|
|
@@ -172,7 +146,7 @@ var _default2 = (0, _mixins.default)(_localable.default, _picker.default).extend
|
|
|
172
146
|
|
|
173
147
|
var multipleValue = (0, _helpers.wrapInArray)(_this.value);
|
|
174
148
|
var date = multipleValue[multipleValue.length - 1] || (typeof _this.showCurrent === 'string' ? _this.showCurrent : "".concat(now.getFullYear(), "-").concat(now.getMonth() + 1));
|
|
175
|
-
return sanitizeDateString(date, _this.type === 'date' ? 'month' : 'year');
|
|
149
|
+
return (0, _util.sanitizeDateString)(date, _this.type === 'date' ? 'month' : 'year');
|
|
176
150
|
}()
|
|
177
151
|
};
|
|
178
152
|
},
|
|
@@ -199,7 +173,7 @@ var _default2 = (0, _mixins.default)(_localable.default, _picker.default).extend
|
|
|
199
173
|
},
|
|
200
174
|
current: function current() {
|
|
201
175
|
if (this.showCurrent === true) {
|
|
202
|
-
return sanitizeDateString("".concat(this.now.getFullYear(), "-").concat(this.now.getMonth() + 1, "-").concat(this.now.getDate()), this.type);
|
|
176
|
+
return (0, _util.sanitizeDateString)("".concat(this.now.getFullYear(), "-").concat(this.now.getMonth() + 1, "-").concat(this.now.getDate()), this.type);
|
|
203
177
|
}
|
|
204
178
|
|
|
205
179
|
return this.showCurrent || null;
|
|
@@ -214,16 +188,16 @@ var _default2 = (0, _mixins.default)(_localable.default, _picker.default).extend
|
|
|
214
188
|
return Number((this.pickerDate || this.tableDate).split('-')[0]);
|
|
215
189
|
},
|
|
216
190
|
minMonth: function minMonth() {
|
|
217
|
-
return this.min ? sanitizeDateString(this.min, 'month') : null;
|
|
191
|
+
return this.min ? (0, _util.sanitizeDateString)(this.min, 'month') : null;
|
|
218
192
|
},
|
|
219
193
|
maxMonth: function maxMonth() {
|
|
220
|
-
return this.max ? sanitizeDateString(this.max, 'month') : null;
|
|
194
|
+
return this.max ? (0, _util.sanitizeDateString)(this.max, 'month') : null;
|
|
221
195
|
},
|
|
222
196
|
minYear: function minYear() {
|
|
223
|
-
return this.min ? sanitizeDateString(this.min, 'year') : null;
|
|
197
|
+
return this.min ? (0, _util.sanitizeDateString)(this.min, 'year') : null;
|
|
224
198
|
},
|
|
225
199
|
maxYear: function maxYear() {
|
|
226
|
-
return this.max ? sanitizeDateString(this.max, 'year') : null;
|
|
200
|
+
return this.max ? (0, _util.sanitizeDateString)(this.max, 'year') : null;
|
|
227
201
|
},
|
|
228
202
|
formatters: function formatters() {
|
|
229
203
|
return {
|
|
@@ -291,16 +265,16 @@ var _default2 = (0, _mixins.default)(_localable.default, _picker.default).extend
|
|
|
291
265
|
// Make a ISO 8601 strings from val and prev for comparision, otherwise it will incorrectly
|
|
292
266
|
// compare for example '2000-9' and '2000-10'
|
|
293
267
|
var sanitizeType = this.type === 'month' ? 'year' : 'month';
|
|
294
|
-
this.isReversing = sanitizeDateString(val, sanitizeType) < sanitizeDateString(prev, sanitizeType);
|
|
268
|
+
this.isReversing = (0, _util.sanitizeDateString)(val, sanitizeType) < (0, _util.sanitizeDateString)(prev, sanitizeType);
|
|
295
269
|
this.$emit('update:picker-date', val);
|
|
296
270
|
},
|
|
297
271
|
pickerDate: function pickerDate(val) {
|
|
298
272
|
if (val) {
|
|
299
273
|
this.tableDate = val;
|
|
300
274
|
} else if (this.lastValue && this.type === 'date') {
|
|
301
|
-
this.tableDate = sanitizeDateString(this.lastValue, 'month');
|
|
275
|
+
this.tableDate = (0, _util.sanitizeDateString)(this.lastValue, 'month');
|
|
302
276
|
} else if (this.lastValue && this.type === 'month') {
|
|
303
|
-
this.tableDate = sanitizeDateString(this.lastValue, 'year');
|
|
277
|
+
this.tableDate = (0, _util.sanitizeDateString)(this.lastValue, 'year');
|
|
304
278
|
}
|
|
305
279
|
},
|
|
306
280
|
value: function value(newValue, oldValue) {
|
|
@@ -308,7 +282,7 @@ var _default2 = (0, _mixins.default)(_localable.default, _picker.default).extend
|
|
|
308
282
|
this.setInputDate();
|
|
309
283
|
|
|
310
284
|
if (!this.isMultiple && this.value && !this.pickerDate || this.isMultiple && this.multipleValue.length && (!oldValue || !oldValue.length) && !this.pickerDate) {
|
|
311
|
-
this.tableDate = sanitizeDateString(this.inputDate, this.type === 'month' ? 'year' : 'month');
|
|
285
|
+
this.tableDate = (0, _util.sanitizeDateString)(this.inputDate, this.type === 'month' ? 'year' : 'month');
|
|
312
286
|
}
|
|
313
287
|
},
|
|
314
288
|
type: function type(_type) {
|
|
@@ -316,7 +290,7 @@ var _default2 = (0, _mixins.default)(_localable.default, _picker.default).extend
|
|
|
316
290
|
|
|
317
291
|
if (this.value && this.value.length) {
|
|
318
292
|
var output = this.multipleValue.map(function (val) {
|
|
319
|
-
return sanitizeDateString(val, _type);
|
|
293
|
+
return (0, _util.sanitizeDateString)(val, _type);
|
|
320
294
|
}).filter(this.isDateAllowed);
|
|
321
295
|
this.$emit('input', this.isMultiple ? output : output[0]);
|
|
322
296
|
}
|
|
@@ -498,7 +472,7 @@ var _default2 = (0, _mixins.default)(_localable.default, _picker.default).extend
|
|
|
498
472
|
props: {
|
|
499
473
|
allowedDates: this.type === 'month' ? this.allowedDates : null,
|
|
500
474
|
color: this.color,
|
|
501
|
-
current: this.current ? sanitizeDateString(this.current, 'month') : null,
|
|
475
|
+
current: this.current ? (0, _util.sanitizeDateString)(this.current, 'month') : null,
|
|
502
476
|
dark: this.dark,
|
|
503
477
|
disabled: this.disabled,
|
|
504
478
|
events: this.type === 'month' ? this.events : null,
|
|
@@ -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"}
|
|
@@ -198,6 +198,12 @@ var _default2 = (0, _mixins.default)(_colorable.default, _localable.default, _th
|
|
|
198
198
|
return _this2.$createElement('div', _this2.setBackgroundColor(color));
|
|
199
199
|
})) : null;
|
|
200
200
|
},
|
|
201
|
+
isValidScroll: function isValidScroll(e, calculateTableDate) {
|
|
202
|
+
var tableDate = calculateTableDate(e.deltaY); // tableDate is 'YYYY-MM' for DateTable and 'YYYY' for MonthTable
|
|
203
|
+
|
|
204
|
+
var sanitizeType = tableDate.split('-').length === 1 ? 'year' : 'month';
|
|
205
|
+
return e.deltaY === 0 || e.deltaY < 0 && (this.min ? tableDate >= (0, _util.sanitizeDateString)(this.min, sanitizeType) : true) || e.deltaY > 0 && (this.max ? tableDate <= (0, _util.sanitizeDateString)(this.max, sanitizeType) : true);
|
|
206
|
+
},
|
|
201
207
|
wheel: function wheel(e, calculateTableDate) {
|
|
202
208
|
this.$emit('update:table-date', calculateTableDate(e.deltaY));
|
|
203
209
|
},
|
|
@@ -234,7 +240,9 @@ var _default2 = (0, _mixins.default)(_colorable.default, _localable.default, _th
|
|
|
234
240
|
wheel: function wheel(e) {
|
|
235
241
|
e.preventDefault();
|
|
236
242
|
|
|
237
|
-
_this3.
|
|
243
|
+
if (_this3.isValidScroll(e, calculateTableDate)) {
|
|
244
|
+
_this3.wheelThrottle(e, calculateTableDate);
|
|
245
|
+
}
|
|
238
246
|
}
|
|
239
247
|
} : undefined,
|
|
240
248
|
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"}
|
|
@@ -27,6 +27,12 @@ Object.defineProperty(exports, "monthChange", {
|
|
|
27
27
|
return _monthChange.default;
|
|
28
28
|
}
|
|
29
29
|
});
|
|
30
|
+
Object.defineProperty(exports, "sanitizeDateString", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function get() {
|
|
33
|
+
return _sanitizeDateString.default;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
30
36
|
Object.defineProperty(exports, "pad", {
|
|
31
37
|
enumerable: true,
|
|
32
38
|
get: function get() {
|
|
@@ -40,6 +46,8 @@ var _createNativeLocaleFormatter = _interopRequireDefault(require("./createNativ
|
|
|
40
46
|
|
|
41
47
|
var _monthChange = _interopRequireDefault(require("./monthChange"));
|
|
42
48
|
|
|
49
|
+
var _sanitizeDateString = _interopRequireDefault(require("./sanitizeDateString"));
|
|
50
|
+
|
|
43
51
|
var _pad = _interopRequireDefault(require("./pad"));
|
|
44
52
|
|
|
45
53
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/VDatePicker/util/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/VDatePicker/util/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAIA;;AACA;;AACA;;AACA","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,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _pad = _interopRequireDefault(require("./pad"));
|
|
9
|
+
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
|
|
12
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
|
|
13
|
+
|
|
14
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
|
|
15
|
+
|
|
16
|
+
function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
17
|
+
|
|
18
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
19
|
+
|
|
20
|
+
var _default = function _default(dateString, type) {
|
|
21
|
+
var _dateString$split = dateString.split('-'),
|
|
22
|
+
_dateString$split2 = _slicedToArray(_dateString$split, 3),
|
|
23
|
+
year = _dateString$split2[0],
|
|
24
|
+
_dateString$split2$ = _dateString$split2[1],
|
|
25
|
+
month = _dateString$split2$ === void 0 ? 1 : _dateString$split2$,
|
|
26
|
+
_dateString$split2$2 = _dateString$split2[2],
|
|
27
|
+
date = _dateString$split2$2 === void 0 ? 1 : _dateString$split2$2;
|
|
28
|
+
|
|
29
|
+
return "".concat(year, "-").concat((0, _pad.default)(month), "-").concat((0, _pad.default)(date)).substr(0, {
|
|
30
|
+
date: 10,
|
|
31
|
+
month: 7,
|
|
32
|
+
year: 4
|
|
33
|
+
}[type]);
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
exports.default = _default;
|
|
37
|
+
//# sourceMappingURL=sanitizeDateString.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/VDatePicker/util/sanitizeDateString.ts"],"names":[],"mappings":";;;;;;;AAEA;;;;;;;;;;;;eAEe,kBAAC,UAAD,EAAqB,IAArB,EAAgE;AAAA,0BACzC,UAAU,CAAC,KAAX,CAAiB,GAAjB,CADyC;AAAA;AAAA,MACtE,IADsE;AAAA;AAAA,MAChE,KADgE,oCACxD,CADwD;AAAA;AAAA,MACrD,IADqD,qCAC9C,CAD8C;;AAE7E,SAAO,UAAG,IAAH,cAAW,kBAAI,KAAJ,CAAX,cAAyB,kBAAI,IAAJ,CAAzB,EAAqC,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,C","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"}
|
|
@@ -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/es5/framework.js
CHANGED
|
@@ -13,18 +13,7 @@ import mixins from '../../util/mixins';
|
|
|
13
13
|
import { wrapInArray } from '../../util/helpers';
|
|
14
14
|
import { daysInMonth } from '../VCalendar/util/timestamp';
|
|
15
15
|
import { consoleWarn } from '../../util/console';
|
|
16
|
-
import { createItemTypeListeners, createNativeLocaleFormatter, pad } from './util';
|
|
17
|
-
// 'YYYY-MM' if 'month' and 'YYYY-MM-DD' if 'date'
|
|
18
|
-
|
|
19
|
-
function sanitizeDateString(dateString, type) {
|
|
20
|
-
const [year, month = 1, date = 1] = dateString.split('-');
|
|
21
|
-
return `${year}-${pad(month)}-${pad(date)}`.substr(0, {
|
|
22
|
-
date: 10,
|
|
23
|
-
month: 7,
|
|
24
|
-
year: 4
|
|
25
|
-
}[type]);
|
|
26
|
-
}
|
|
27
|
-
|
|
16
|
+
import { createItemTypeListeners, createNativeLocaleFormatter, pad, sanitizeDateString } from './util';
|
|
28
17
|
export default mixins(Localable, Picker).extend({
|
|
29
18
|
name: 'v-date-picker',
|
|
30
19
|
props: {
|