@syncfusion/ej2-calendars 27.1.48 → 27.1.50

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.
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 27.1.48
3
+ * version : 27.1.50
4
4
  * Copyright Syncfusion Inc. 2001 - 2023. All rights reserved.
5
5
  * Use of this code is subject to the terms of our license.
6
6
  * A copy of the current license can be obtained at any time by e-mailing
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "_from": "@syncfusion/ej2-calendars@*",
3
3
  "_id": "@syncfusion/ej2-calendars@18.32.5",
4
4
  "_inBundle": false,
5
- "_integrity": "sha512-4Wah1EymU4154eL/oMegUwjMYRSgQlMjBK+yJSeGq0LApQAc/sNQlsU3ViuBZAzzQXtzQZGNI7NyX2/cIBoXJw==",
5
+ "_integrity": "sha512-rksJYsGIPpCObDMJj5UXpkHFC3zmO0oIq9E4epQ7uMf79Wwm7p1xmvrBVW4Ie71RnIfpTbHXPqJuFrfidkJcRQ==",
6
6
  "_location": "/@syncfusion/ej2-calendars",
7
7
  "_phantomChildren": {},
8
8
  "_requested": {
@@ -31,8 +31,8 @@
31
31
  "/@syncfusion/ej2-schedule",
32
32
  "/@syncfusion/ej2-vue-calendars"
33
33
  ],
34
- "_resolved": "https://nexus.syncfusioninternal.com/repository/ej2-release/@syncfusion/ej2-calendars/-/ej2-calendars-18.32.5.tgz",
35
- "_shasum": "0f89918ef767a73b5b8d1aab41c7e0fdf0e6de50",
34
+ "_resolved": "https://nexus.syncfusioninternal.com/repository/ej2-hotfix-new/@syncfusion/ej2-calendars/-/ej2-calendars-18.32.5.tgz",
35
+ "_shasum": "c76c6f7cbc4265f8ddd213a442133b7c0a8f34e0",
36
36
  "_spec": "@syncfusion/ej2-calendars@*",
37
37
  "_where": "/jenkins/workspace/elease-automation_release_27.1.1/packages/included",
38
38
  "author": {
@@ -43,12 +43,11 @@
43
43
  },
44
44
  "bundleDependencies": false,
45
45
  "dependencies": {
46
- "@syncfusion/ej2-base": "~27.1.48",
47
- "@syncfusion/ej2-buttons": "~27.1.48",
48
- "@syncfusion/ej2-inputs": "~27.1.48",
49
- "@syncfusion/ej2-lists": "~27.1.48",
50
- "@syncfusion/ej2-popups": "~27.1.48",
51
- "markdown-spellcheck": "^1.3.1"
46
+ "@syncfusion/ej2-base": "~27.1.50",
47
+ "@syncfusion/ej2-buttons": "~27.1.50",
48
+ "@syncfusion/ej2-inputs": "~27.1.50",
49
+ "@syncfusion/ej2-lists": "~27.1.50",
50
+ "@syncfusion/ej2-popups": "~27.1.50"
52
51
  },
53
52
  "deprecated": false,
54
53
  "description": "A complete package of date or time components with built-in features such as date formatting, inline editing, multiple (range) selection, range restriction, month and year selection, strict mode, and globalization.",
@@ -81,6 +80,6 @@
81
80
  "url": "git+https://github.com/syncfusion/ej2-javascript-ui-controls.git"
82
81
  },
83
82
  "typings": "index.d.ts",
84
- "version": "27.1.48",
83
+ "version": "27.1.50",
85
84
  "sideEffects": false
86
85
  }
@@ -501,22 +501,19 @@ var CalendarBase = /** @class */ (function (_super) {
501
501
  this.effect = '';
502
502
  switch (e.action) {
503
503
  case 'moveLeft':
504
- if (this.getModuleName() !== 'daterangepicker' && !isNullOrUndefined(e.target) &&
505
- e.target.classList.length > 0 && e.target.classList.contains(CONTENTTABLE)) {
504
+ if (this.getModuleName() !== 'daterangepicker' && !isNullOrUndefined(e.target)) {
506
505
  this.keyboardNavigate(-1, view, e, this.max, this.min);
507
506
  e.preventDefault();
508
507
  }
509
508
  break;
510
509
  case 'moveRight':
511
- if (this.getModuleName() !== 'daterangepicker' && !isNullOrUndefined(e.target) &&
512
- e.target.classList.length > 0 && e.target.classList.contains(CONTENTTABLE)) {
510
+ if (this.getModuleName() !== 'daterangepicker' && !isNullOrUndefined(e.target)) {
513
511
  this.keyboardNavigate(1, view, e, this.max, this.min);
514
512
  e.preventDefault();
515
513
  }
516
514
  break;
517
515
  case 'moveUp':
518
- if (this.getModuleName() !== 'daterangepicker' && !isNullOrUndefined(e.target) &&
519
- e.target.classList.length > 0 && e.target.classList.contains(CONTENTTABLE)) {
516
+ if (this.getModuleName() !== 'daterangepicker' && !isNullOrUndefined(e.target)) {
520
517
  if (view === 0) {
521
518
  this.keyboardNavigate(-7, view, e, this.max, this.min); // move the current date to the previous seven days.
522
519
  }
@@ -527,8 +524,7 @@ var CalendarBase = /** @class */ (function (_super) {
527
524
  }
528
525
  break;
529
526
  case 'moveDown':
530
- if (this.getModuleName() !== 'daterangepicker' && !isNullOrUndefined(e.target) &&
531
- e.target.classList.length > 0 && e.target.classList.contains(CONTENTTABLE)) {
527
+ if (this.getModuleName() !== 'daterangepicker' && !isNullOrUndefined(e.target)) {
532
528
  if (view === 0) {
533
529
  this.keyboardNavigate(7, view, e, this.max, this.min);
534
530
  }
@@ -1058,7 +1054,7 @@ var CalendarBase = /** @class */ (function (_super) {
1058
1054
  return this.createElement('td', attrs);
1059
1055
  };
1060
1056
  CalendarBase.prototype.firstDay = function (date) {
1061
- var collection = this.currentView() !== 'Decade' ? this.tableBodyElement.querySelectorAll('td' + ':not(.' + OTHERMONTH + '') :
1057
+ var collection = this.currentView() !== 'Decade' ? this.tableBodyElement.querySelectorAll('td:not(.' + OTHERMONTH + '):not(.' + WEEKNUMBER + ')') :
1062
1058
  this.tableBodyElement.querySelectorAll('td' + ':not(.' + OTHERDECADE + '');
1063
1059
  if (collection.length) {
1064
1060
  for (var i = 0; i < collection.length; i++) {
@@ -1089,7 +1085,7 @@ var CalendarBase = /** @class */ (function (_super) {
1089
1085
  };
1090
1086
  CalendarBase.prototype.findLastDay = function (date) {
1091
1087
  var collection = this.currentView() === 'Decade' ? this.tableBodyElement.querySelectorAll('td' + ':not(.' + OTHERDECADE + '') :
1092
- this.tableBodyElement.querySelectorAll('td' + ':not(.' + OTHERMONTH + '');
1088
+ this.tableBodyElement.querySelectorAll('td:not(.' + OTHERMONTH + '):not(.' + WEEKNUMBER + ')');
1093
1089
  if (collection.length) {
1094
1090
  for (var i = collection.length - 1; i >= 0; i--) {
1095
1091
  if (!collection[i].classList.contains(DISABLED)) {
@@ -442,6 +442,7 @@ export declare class DatePicker extends Calendar implements IInput {
442
442
  protected popupUpdate(): void;
443
443
  protected strictModeUpdate(): void;
444
444
  private createCalendar;
445
+ protected getAmPmValue(date: string | null | undefined): string;
445
446
  private CalendarSwipeHandler;
446
447
  private TouchStartHandler;
447
448
  private setAriaDisabled;
@@ -331,9 +331,9 @@ var DatePicker = /** @class */ (function (_super) {
331
331
  formatOptions = { format: this.formatString, type: 'dateTime', skeleton: 'yMd', calendar: 'islamic' };
332
332
  }
333
333
  }
334
- returnDate = this.checkDateValue(this.globalize.parseDate(val, formatOptions));
334
+ returnDate = this.checkDateValue(this.globalize.parseDate(this.getAmPmValue(val), formatOptions));
335
335
  if (isNullOrUndefined(returnDate) && (this.getModuleName() === 'datetimepicker')) {
336
- returnDate = this.checkDateValue(this.globalize.parseDate(val, formatDateTime));
336
+ returnDate = this.checkDateValue(this.globalize.parseDate(this.getAmPmValue(val), formatDateTime));
337
337
  }
338
338
  return returnDate;
339
339
  };
@@ -928,9 +928,8 @@ var DatePicker = /** @class */ (function (_super) {
928
928
  this.inputElement.value = this.inputElement.value.trim();
929
929
  }
930
930
  if ((this.getModuleName() === 'datetimepicker')) {
931
- if (this.checkDateValue(this.globalize.parseDate(this.inputElement.value, dateOptions))) {
932
- var modifiedValue = this.inputElement.value.replace(/(am|pm|Am|aM|pM|Pm)/g, function (match) { return match.toLocaleUpperCase(); });
933
- date = this.globalize.parseDate(modifiedValue, dateOptions);
931
+ if (this.checkDateValue(this.globalize.parseDate(this.getAmPmValue(this.inputElement.value), dateOptions))) {
932
+ date = this.globalize.parseDate(this.getAmPmValue(this.inputElement.value), dateOptions);
934
933
  }
935
934
  else {
936
935
  if (this.calendarMode === 'Gregorian') {
@@ -939,11 +938,11 @@ var DatePicker = /** @class */ (function (_super) {
939
938
  else {
940
939
  formatOptions = { format: format, type: 'dateTime', skeleton: 'yMd', calendar: 'islamic' };
941
940
  }
942
- date = this.globalize.parseDate(this.inputElement.value, formatOptions);
941
+ date = this.globalize.parseDate(this.getAmPmValue(this.inputElement.value), formatOptions);
943
942
  }
944
943
  }
945
944
  else {
946
- date = this.globalize.parseDate(this.inputElement.value, dateOptions);
945
+ date = this.globalize.parseDate(this.getAmPmValue(this.inputElement.value), dateOptions);
947
946
  date = (!isNullOrUndefined(date) && isNaN(+date)) ? null : date;
948
947
  if (!isNullOrUndefined(this.formatString) && this.inputElement.value !== '' && this.strictMode) {
949
948
  if ((this.isPopupClicked || (!this.isPopupClicked && this.inputElement.value === this.previousElementValue))
@@ -1053,6 +1052,20 @@ var DatePicker = /** @class */ (function (_super) {
1053
1052
  this.popupObj.element.className += ' ' + this.cssClass;
1054
1053
  this.setAriaAttributes();
1055
1054
  };
1055
+ DatePicker.prototype.getAmPmValue = function (date) {
1056
+ try {
1057
+ if (typeof date === 'string' && date.trim() !== '') {
1058
+ // Replace am/pm variants with uppercase AM/PM
1059
+ return date.replace(/(am|pm|Am|aM|pM|Pm)/g, function (match) { return match.toLocaleUpperCase(); });
1060
+ }
1061
+ // If date is null, undefined, or an empty string, return a default value or empty string
1062
+ return '';
1063
+ }
1064
+ catch (error) {
1065
+ console.error('Error occurred while processing date:', error);
1066
+ return ''; // Return a default value in case of an error
1067
+ }
1068
+ };
1056
1069
  DatePicker.prototype.CalendarSwipeHandler = function (e) {
1057
1070
  var direction = 0;
1058
1071
  if (this.iconRight) {
@@ -1739,19 +1752,19 @@ var DatePicker = /** @class */ (function (_super) {
1739
1752
  case 'value':
1740
1753
  if (((isNullOrUndefined(this.datepickerOptions) || (this.datepickerOptions['value'] === undefined)) || dynamic)) {
1741
1754
  var value = this.inputElement.getAttribute(prop);
1742
- this.setProperties(setValue(prop, this.globalize.parseDate(value, options), {}), !dynamic);
1755
+ this.setProperties(setValue(prop, this.globalize.parseDate(this.getAmPmValue(value), options), {}), !dynamic);
1743
1756
  }
1744
1757
  break;
1745
1758
  case 'min':
1746
1759
  if ((+this.min === +new Date(1900, 0, 1)) || dynamic) {
1747
1760
  var min = this.inputElement.getAttribute(prop);
1748
- this.setProperties(setValue(prop, this.globalize.parseDate(min, options), {}), !dynamic);
1761
+ this.setProperties(setValue(prop, this.globalize.parseDate(this.getAmPmValue(min), options), {}), !dynamic);
1749
1762
  }
1750
1763
  break;
1751
1764
  case 'max':
1752
1765
  if ((+this.max === +new Date(2099, 11, 31)) || dynamic) {
1753
1766
  var max = this.inputElement.getAttribute(prop);
1754
- this.setProperties(setValue(prop, this.globalize.parseDate(max, options), {}), !dynamic);
1767
+ this.setProperties(setValue(prop, this.globalize.parseDate(this.getAmPmValue(max), options), {}), !dynamic);
1755
1768
  }
1756
1769
  break;
1757
1770
  case 'type':
@@ -834,6 +834,7 @@ export declare class DateRangePicker extends CalendarBase {
834
834
  private clearModelvalue;
835
835
  private createHiddenInput;
836
836
  private setMinMaxDays;
837
+ private getAmPmValue;
837
838
  private getStartEndValue;
838
839
  /**
839
840
  * Called internally if any of the property value changed.
@@ -544,10 +544,10 @@ var DateRangePicker = /** @class */ (function (_super) {
544
544
  if (this.firstHiddenChild && this.secondHiddenChild) {
545
545
  var format = { format: this.formatString, type: 'datetime', skeleton: 'yMd' };
546
546
  if (typeof this.startDate === 'string') {
547
- this.startDate = this.globalize.parseDate(this.startDate, format);
547
+ this.startDate = this.globalize.parseDate(this.getAmPmValue(this.startDate), format);
548
548
  }
549
549
  if (typeof this.endDate === 'string') {
550
- this.endDate = this.globalize.parseDate(this.endDate, format);
550
+ this.endDate = this.globalize.parseDate(this.getAmPmValue(this.endDate), format);
551
551
  }
552
552
  this.firstHiddenChild.value = (this.startDate && this.globalize.formatDate(this.startDate, format))
553
553
  || (this.inputElement.value);
@@ -723,7 +723,7 @@ var DateRangePicker = /** @class */ (function (_super) {
723
723
  break;
724
724
  case 'min':
725
725
  if ((isNullOrUndefined(this.min) || +this.min === +new Date(1900, 0, 1)) || isDynamic) {
726
- var dateValue = this.globalize.parseDate(this.inputElement.getAttribute(prop), format);
726
+ var dateValue = this.globalize.parseDate(this.getAmPmValue(this.inputElement.getAttribute(prop)), format);
727
727
  this.setProperties(setValue(prop, dateValue, {}), !isDynamic);
728
728
  }
729
729
  break;
@@ -732,20 +732,20 @@ var DateRangePicker = /** @class */ (function (_super) {
732
732
  break;
733
733
  case 'max':
734
734
  if ((isNullOrUndefined(this.max) || +this.max === +new Date(2099, 11, 31)) || isDynamic) {
735
- var dateValue = this.globalize.parseDate(this.inputElement.getAttribute(prop), format);
735
+ var dateValue = this.globalize.parseDate(this.getAmPmValue(this.inputElement.getAttribute(prop)), format);
736
736
  this.setProperties(setValue(prop, dateValue, {}), !isDynamic);
737
737
  }
738
738
  break;
739
739
  case 'startDate':
740
740
  if (isNullOrUndefined(this.startDate)) {
741
- var dateValue = this.globalize.parseDate(this.inputElement.getAttribute(prop), format);
741
+ var dateValue = this.globalize.parseDate(this.getAmPmValue(this.inputElement.getAttribute(prop)), format);
742
742
  this.startValue = dateValue;
743
743
  this.setValue();
744
744
  }
745
745
  break;
746
746
  case 'endDate':
747
747
  if (isNullOrUndefined(this.endDate)) {
748
- var dateValue = this.globalize.parseDate(this.inputElement.getAttribute(prop), format);
748
+ var dateValue = this.globalize.parseDate(this.getAmPmValue(this.inputElement.getAttribute(prop)), format);
749
749
  this.endValue = dateValue;
750
750
  this.setValue();
751
751
  }
@@ -980,8 +980,8 @@ var DateRangePicker = /** @class */ (function (_super) {
980
980
  if (range.length > 1) {
981
981
  this.invalidValueString = null;
982
982
  var dateOptions = { format: this.formatString, type: 'date', skeleton: 'yMd' };
983
- var start = this.globalize.parseDate(range[0], dateOptions);
984
- var end = this.globalize.parseDate(range[1], dateOptions);
983
+ var start = this.globalize.parseDate(this.getAmPmValue(range[0]), dateOptions);
984
+ var end = this.globalize.parseDate(this.getAmPmValue(range[1]), dateOptions);
985
985
  var startDate = this.getStartEndDate(start, false, range, dateOptions);
986
986
  var endDate = this.getStartEndDate(end, true, range, dateOptions);
987
987
  if (!isNullOrUndefined(startDate) && !isNaN(+startDate) && !isNullOrUndefined(endDate) && !isNaN(+endDate)) {
@@ -1057,7 +1057,7 @@ var DateRangePicker = /** @class */ (function (_super) {
1057
1057
  };
1058
1058
  DateRangePicker.prototype.getStartEndDate = function (date, isEnd, range, dateOptions) {
1059
1059
  if (this.depth === 'Month') {
1060
- return this.globalize.parseDate(range[isEnd ? 1 : 0].trim(), dateOptions);
1060
+ return this.globalize.parseDate(this.getAmPmValue(range[isEnd ? 1 : 0]).trim(), dateOptions);
1061
1061
  }
1062
1062
  else if (this.depth === 'Year' && !isNullOrUndefined(date)) {
1063
1063
  return new Date(date.getFullYear(), date.getMonth() + (isEnd ? 1 : 0), isEnd ? 0 : 1);
@@ -4272,6 +4272,20 @@ var DateRangePicker = /** @class */ (function (_super) {
4272
4272
  this.updateHeader();
4273
4273
  }
4274
4274
  };
4275
+ DateRangePicker.prototype.getAmPmValue = function (date) {
4276
+ try {
4277
+ if (typeof date === 'string' && date.trim() !== '') {
4278
+ // Replace am/pm variants with uppercase AM/PM
4279
+ return date.replace(/(am|pm|Am|aM|pM|Pm)/g, function (match) { return match.toLocaleUpperCase(); });
4280
+ }
4281
+ // If date is null, undefined, or an empty string, return a default value or empty string
4282
+ return '';
4283
+ }
4284
+ catch (error) {
4285
+ console.error('Error occurred while processing date:', error);
4286
+ return ''; // Return a default value in case of an error
4287
+ }
4288
+ };
4275
4289
  DateRangePicker.prototype.getStartEndValue = function (date, isEnd) {
4276
4290
  if (this.depth === 'Month') {
4277
4291
  return this.checkDateValue(new Date(this.checkValue(date)));
@@ -4372,7 +4386,7 @@ var DateRangePicker = /** @class */ (function (_super) {
4372
4386
  break;
4373
4387
  case 'startDate':
4374
4388
  if (typeof newProp.startDate === 'string') {
4375
- newProp.startDate = this.globalize.parseDate(newProp.startDate, format);
4389
+ newProp.startDate = this.globalize.parseDate(this.getAmPmValue(newProp.startDate), format);
4376
4390
  }
4377
4391
  if (+this.initStartDate !== +newProp.startDate) {
4378
4392
  this.startValue = this.getStartEndValue(newProp.startDate, false);
@@ -4382,7 +4396,7 @@ var DateRangePicker = /** @class */ (function (_super) {
4382
4396
  break;
4383
4397
  case 'endDate':
4384
4398
  if (typeof newProp.endDate === 'string') {
4385
- newProp.endDate = this.globalize.parseDate(newProp.endDate, format);
4399
+ newProp.endDate = this.globalize.parseDate(this.getAmPmValue(newProp.endDate), format);
4386
4400
  }
4387
4401
  if (+this.initEndDate !== +newProp.endDate) {
4388
4402
  this.endValue = this.getStartEndValue(newProp.endDate, true);
@@ -572,12 +572,12 @@ var DateTimePicker = /** @class */ (function (_super) {
572
572
  if (this.dateFormatString === '') {
573
573
  this.dateFormatString = this.cldrDateTimeFormat();
574
574
  }
575
- dateObject = this.globalize.parseDate(this.inputElement.value, {
575
+ dateObject = this.globalize.parseDate(this.getAmPmValue(this.inputElement.value), {
576
576
  format: this.dateFormatString, type: 'datetime'
577
577
  });
578
578
  }
579
579
  else {
580
- dateObject = this.globalize.parseDate(this.inputElement.value, {
580
+ dateObject = this.globalize.parseDate(this.getAmPmValue(this.inputElement.value), {
581
581
  format: this.cldrDateTimeFormat(), type: 'datetime', calendar: 'islamic'
582
582
  });
583
583
  }
@@ -514,6 +514,7 @@ export declare class TimePicker extends Component<HTMLElement> implements IInput
514
514
  private getCldrDateTimeFormat;
515
515
  private checkInvalidValue;
516
516
  requiredModules(): ModuleDeclaration[];
517
+ protected getAmPmValue(date: string | null | undefined): string;
517
518
  private cldrFormat;
518
519
  destroy(): void;
519
520
  protected ensureInputAttribute(): void;
@@ -403,18 +403,18 @@ var TimePicker = /** @class */ (function (_super) {
403
403
  if (!(/^[a-zA-Z0-9- ]*$/).test(value)) {
404
404
  valueExpression = this.setCurrentDate(this.getDateObject(value));
405
405
  if (isNullOrUndefined(valueExpression)) {
406
- valueExpression = this.checkDateValue(this.globalize.parseDate(valueString, {
406
+ valueExpression = this.checkDateValue(this.globalize.parseDate(this.getAmPmValue(valueString), {
407
407
  format: this.getCldrDateTimeFormat(), type: 'datetime'
408
408
  }));
409
409
  if (isNullOrUndefined(valueExpression)) {
410
- valueExpression = this.checkDateValue(this.globalize.parseDate(valueString, {
410
+ valueExpression = this.checkDateValue(this.globalize.parseDate(this.getAmPmValue(valueString), {
411
411
  format: this.formatString, type: 'dateTime', skeleton: 'yMd'
412
412
  }));
413
413
  }
414
414
  }
415
415
  }
416
416
  }
417
- valueExp = this.globalize.parseDate(valueString, {
417
+ valueExp = this.globalize.parseDate(this.getAmPmValue(valueString), {
418
418
  format: this.getCldrDateTimeFormat(), type: 'datetime'
419
419
  });
420
420
  valueExpression = (!isNullOrUndefined(valueExp) && valueExp instanceof Date && !isNaN(+valueExp)) ? valueExp : null;
@@ -453,6 +453,20 @@ var TimePicker = /** @class */ (function (_super) {
453
453
  }
454
454
  return modules;
455
455
  };
456
+ TimePicker.prototype.getAmPmValue = function (date) {
457
+ try {
458
+ if (typeof date === 'string' && date.trim() !== '') {
459
+ // Replace am/pm variants with uppercase AM/PM
460
+ return date.replace(/(am|pm|Am|aM|pM|Pm)/g, function (match) { return match.toLocaleUpperCase(); });
461
+ }
462
+ // If date is null, undefined, or an empty string, return a default value or empty string
463
+ return '';
464
+ }
465
+ catch (error) {
466
+ console.error('Error occurred while processing date:', error);
467
+ return ''; // Return a default value in case of an error
468
+ }
469
+ };
456
470
  TimePicker.prototype.cldrFormat = function (type) {
457
471
  var cldrDateTimeString;
458
472
  if (this.locale === 'en' || this.locale === 'en-US') {
@@ -1960,10 +1974,10 @@ var TimePicker = /** @class */ (function (_super) {
1960
1974
  };
1961
1975
  TimePicker.prototype.timeParse = function (today, val) {
1962
1976
  var value;
1963
- value = this.globalize.parseDate(today + ' ' + val, {
1977
+ value = this.globalize.parseDate(this.getAmPmValue(today + ' ' + val), {
1964
1978
  format: this.cldrDateFormat() + ' ' + this.cldrTimeFormat(), type: 'datetime'
1965
1979
  });
1966
- value = isNullOrUndefined(value) ? this.globalize.parseDate(today + ' ' + val, {
1980
+ value = isNullOrUndefined(value) ? this.globalize.parseDate(this.getAmPmValue(today + ' ' + val), {
1967
1981
  format: this.cldrDateFormat() + ' ' + this.dateToNumeric(), type: 'datetime'
1968
1982
  }) : value;
1969
1983
  value = isNullOrUndefined(value) ? value : new Date(value.setMilliseconds(0));