Commit 3076b0d24f5cbbcd369a4b2922d003a6e477a0e2

Authored by Aresn
Committed by GitHub
2 parents 1c722892 88156b0b

Merge pull request #3678 from SergioCrisostomo/datepicker

Fix multidate parser value types, prevent undefined in focusedDate
src/components/date-picker/picker.vue
@@ -651,7 +651,7 @@ @@ -651,7 +651,7 @@
651 this.internalValue = Array.isArray(dates) ? dates : [dates]; 651 this.internalValue = Array.isArray(dates) ? dates : [dates];
652 } 652 }
653 653
654 - this.focusedDate = this.internalValue[0]; 654 + if (this.internalValue[0]) this.focusedDate = this.internalValue[0];
655 this.focusedTime = { 655 this.focusedTime = {
656 ...this.focusedTime, 656 ...this.focusedTime,
657 time: this.internalValue.map(extractTime) 657 time: this.internalValue.map(extractTime)
src/components/date-picker/util.js
@@ -226,7 +226,15 @@ export const TYPE_VALUE_RESOLVER_MAP = { @@ -226,7 +226,15 @@ export const TYPE_VALUE_RESOLVER_MAP = {
226 formatter: (value, format) => { 226 formatter: (value, format) => {
227 return value.filter(Boolean).map(date => formatDate(date, format)).join(','); 227 return value.filter(Boolean).map(date => formatDate(date, format)).join(',');
228 }, 228 },
229 - parser: (text, format) => text.split(',').map(string => parseDate(string.trim(), format)) 229 + parser: (value, format) => {
  230 + const values = typeof value === 'string' ? value.split(',') : value;
  231 + return values.map(value => {
  232 + if (value instanceof Date) return value;
  233 + if (typeof value === 'string') value = value.trim();
  234 + else if (typeof value !== 'number' && !value) value = '';
  235 + return parseDate(value, format);
  236 + });
  237 + }
230 }, 238 },
231 number: { 239 number: {
232 formatter(value) { 240 formatter(value) {