@syncfusion/ej2-calendars 20.2.46 → 20.3.47

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (262) hide show
  1. package/dist/ej2-calendars.min.js +10 -0
  2. package/dist/ej2-calendars.umd.min.js +2 -2
  3. package/dist/ej2-calendars.umd.min.js.map +1 -1
  4. package/dist/es6/ej2-calendars.es2015.js +141 -59
  5. package/dist/es6/ej2-calendars.es2015.js.map +1 -1
  6. package/dist/es6/ej2-calendars.es5.js +141 -59
  7. package/dist/es6/ej2-calendars.es5.js.map +1 -1
  8. package/dist/global/ej2-calendars.min.js +2 -2
  9. package/dist/global/ej2-calendars.min.js.map +1 -1
  10. package/dist/global/index.d.ts +1 -1
  11. package/package.json +11 -11
  12. package/src/calendar/calendar.d.ts +3 -2
  13. package/src/calendar/calendar.js +37 -12
  14. package/src/calendar/islamic.js +4 -4
  15. package/src/datepicker/datepicker.js +22 -9
  16. package/src/daterangepicker/daterangepicker.d.ts +1 -0
  17. package/src/daterangepicker/daterangepicker.js +34 -14
  18. package/src/datetimepicker/datetimepicker.js +18 -8
  19. package/src/timepicker/timepicker.js +26 -12
  20. package/styles/bootstrap-dark.css +21 -2
  21. package/styles/bootstrap.css +21 -2
  22. package/styles/bootstrap4.css +21 -2
  23. package/styles/bootstrap5-dark.css +26 -4
  24. package/styles/bootstrap5.css +26 -4
  25. package/styles/calendar/_all.scss +1 -1
  26. package/styles/calendar/_bootstrap-dark-definition.scss +8 -7
  27. package/styles/calendar/_bootstrap-definition.scss +6 -6
  28. package/styles/calendar/_bootstrap4-definition.scss +6 -5
  29. package/styles/calendar/_bootstrap5-definition.scss +29 -3
  30. package/styles/calendar/_fabric-dark-definition.scss +4 -1
  31. package/styles/calendar/_fabric-definition.scss +1 -0
  32. package/styles/calendar/_fluent-definition.scss +30 -4
  33. package/styles/calendar/_fusionnew-definition.scss +29 -3
  34. package/styles/calendar/_highcontrast-light-definition.scss +3 -1
  35. package/styles/calendar/_layout.scss +153 -95
  36. package/styles/calendar/_material-dark-definition.scss +3 -1
  37. package/styles/calendar/_material3-definition.scss +29 -3
  38. package/styles/calendar/_tailwind-definition.scss +27 -5
  39. package/styles/calendar/_theme.scss +111 -66
  40. package/styles/calendar/bootstrap-dark.css +1 -0
  41. package/styles/calendar/bootstrap.css +1 -0
  42. package/styles/calendar/bootstrap4.css +1 -0
  43. package/styles/calendar/bootstrap5-dark.css +1 -0
  44. package/styles/calendar/bootstrap5.css +1 -0
  45. package/styles/calendar/fabric-dark.css +1 -0
  46. package/styles/calendar/fabric.css +1 -0
  47. package/styles/calendar/fluent-dark.css +1 -0
  48. package/styles/calendar/fluent.css +1 -0
  49. package/styles/calendar/highcontrast-light.css +1 -0
  50. package/styles/calendar/highcontrast.css +1 -0
  51. package/styles/calendar/icons/_bootstrap-dark.scss +2 -1
  52. package/styles/calendar/icons/_bootstrap.scss +2 -1
  53. package/styles/calendar/icons/_bootstrap4.scss +2 -1
  54. package/styles/calendar/icons/_bootstrap5.scss +2 -1
  55. package/styles/calendar/icons/_fabric-dark.scss +2 -1
  56. package/styles/calendar/icons/_fabric.scss +2 -1
  57. package/styles/calendar/icons/_fluent.scss +2 -1
  58. package/styles/calendar/icons/_fusionnew.scss +2 -1
  59. package/styles/calendar/icons/_highcontrast-light.scss +2 -1
  60. package/styles/calendar/icons/_highcontrast.scss +2 -1
  61. package/styles/calendar/icons/_material-dark.scss +2 -1
  62. package/styles/calendar/icons/_material.scss +2 -1
  63. package/styles/calendar/icons/_material3.scss +2 -1
  64. package/styles/calendar/icons/_tailwind.scss +2 -1
  65. package/styles/calendar/material-dark.css +1 -0
  66. package/styles/calendar/material.css +1 -0
  67. package/styles/calendar/tailwind-dark.css +2 -0
  68. package/styles/calendar/tailwind.css +2 -0
  69. package/styles/datepicker/_all.scss +1 -1
  70. package/styles/datepicker/_bootstrap-dark-definition.scss +4 -1
  71. package/styles/datepicker/_bootstrap-definition.scss +2 -0
  72. package/styles/datepicker/_bootstrap4-definition.scss +2 -0
  73. package/styles/datepicker/_bootstrap5-definition.scss +5 -1
  74. package/styles/datepicker/_fabric-dark-definition.scss +3 -0
  75. package/styles/datepicker/_fabric-definition.scss +2 -0
  76. package/styles/datepicker/_fluent-definition.scss +4 -1
  77. package/styles/datepicker/_fusionnew-definition.scss +5 -1
  78. package/styles/datepicker/_highcontrast-definition.scss +2 -0
  79. package/styles/datepicker/_highcontrast-light-definition.scss +4 -1
  80. package/styles/datepicker/_layout.scss +134 -6
  81. package/styles/datepicker/_material-dark-definition.scss +4 -1
  82. package/styles/datepicker/_material-definition.scss +2 -0
  83. package/styles/datepicker/_material3-definition.scss +5 -1
  84. package/styles/datepicker/_tailwind-definition.scss +5 -1
  85. package/styles/datepicker/_theme.scss +7 -7
  86. package/styles/datepicker/bootstrap-dark.css +3 -1
  87. package/styles/datepicker/bootstrap.css +3 -1
  88. package/styles/datepicker/bootstrap4.css +3 -1
  89. package/styles/datepicker/bootstrap5-dark.css +4 -2
  90. package/styles/datepicker/bootstrap5.css +4 -2
  91. package/styles/datepicker/fabric-dark.css +3 -1
  92. package/styles/datepicker/fabric.css +3 -1
  93. package/styles/datepicker/fluent-dark.css +4 -2
  94. package/styles/datepicker/fluent.css +4 -2
  95. package/styles/datepicker/highcontrast-light.css +3 -1
  96. package/styles/datepicker/highcontrast.css +3 -1
  97. package/styles/datepicker/icons/_bootstrap-dark.scss +7 -6
  98. package/styles/datepicker/icons/_bootstrap.scss +7 -6
  99. package/styles/datepicker/icons/_bootstrap4.scss +7 -6
  100. package/styles/datepicker/icons/_bootstrap5.scss +7 -6
  101. package/styles/datepicker/icons/_fabric-dark.scss +6 -5
  102. package/styles/datepicker/icons/_fabric.scss +7 -6
  103. package/styles/datepicker/icons/_fluent.scss +7 -6
  104. package/styles/datepicker/icons/_fusionnew.scss +7 -6
  105. package/styles/datepicker/icons/_highcontrast-light.scss +7 -6
  106. package/styles/datepicker/icons/_highcontrast.scss +7 -7
  107. package/styles/datepicker/icons/_material-dark.scss +7 -6
  108. package/styles/datepicker/icons/_material.scss +7 -6
  109. package/styles/datepicker/icons/_material3.scss +7 -6
  110. package/styles/datepicker/icons/_tailwind.scss +7 -6
  111. package/styles/datepicker/material-dark.css +3 -1
  112. package/styles/datepicker/material.css +85 -0
  113. package/styles/datepicker/tailwind-dark.css +4 -2
  114. package/styles/datepicker/tailwind.css +4 -2
  115. package/styles/daterangepicker/_all.scss +1 -1
  116. package/styles/daterangepicker/_bootstrap-dark-definition.scss +4 -0
  117. package/styles/daterangepicker/_bootstrap-definition.scss +5 -1
  118. package/styles/daterangepicker/_bootstrap4-definition.scss +4 -0
  119. package/styles/daterangepicker/_bootstrap5-definition.scss +7 -0
  120. package/styles/daterangepicker/_fabric-dark-definition.scss +7 -2
  121. package/styles/daterangepicker/_fabric-definition.scss +5 -1
  122. package/styles/daterangepicker/_fluent-definition.scss +6 -1
  123. package/styles/daterangepicker/_fusionnew-definition.scss +6 -0
  124. package/styles/daterangepicker/_highcontrast-definition.scss +6 -2
  125. package/styles/daterangepicker/_highcontrast-light-definition.scss +8 -3
  126. package/styles/daterangepicker/_layout.scss +280 -56
  127. package/styles/daterangepicker/_material-dark-definition.scss +7 -2
  128. package/styles/daterangepicker/_material-definition.scss +6 -1
  129. package/styles/daterangepicker/_material3-definition.scss +6 -0
  130. package/styles/daterangepicker/_tailwind-definition.scss +5 -0
  131. package/styles/daterangepicker/_theme.scss +55 -27
  132. package/styles/daterangepicker/bootstrap-dark.css +11 -1
  133. package/styles/daterangepicker/bootstrap.css +11 -1
  134. package/styles/daterangepicker/bootstrap4.css +11 -1
  135. package/styles/daterangepicker/bootstrap5-dark.css +13 -2
  136. package/styles/daterangepicker/bootstrap5.css +13 -2
  137. package/styles/daterangepicker/fabric-dark.css +11 -1
  138. package/styles/daterangepicker/fabric.css +11 -1
  139. package/styles/daterangepicker/fluent-dark.css +12 -2
  140. package/styles/daterangepicker/fluent.css +12 -2
  141. package/styles/daterangepicker/highcontrast-light.css +11 -1
  142. package/styles/daterangepicker/highcontrast.css +11 -1
  143. package/styles/daterangepicker/icons/_bootstrap-dark.scss +13 -8
  144. package/styles/daterangepicker/icons/_bootstrap.scss +13 -8
  145. package/styles/daterangepicker/icons/_bootstrap4.scss +13 -8
  146. package/styles/daterangepicker/icons/_bootstrap5.scss +13 -8
  147. package/styles/daterangepicker/icons/_fabric-dark.scss +13 -8
  148. package/styles/daterangepicker/icons/_fabric.scss +13 -8
  149. package/styles/daterangepicker/icons/_fluent.scss +13 -8
  150. package/styles/daterangepicker/icons/_fusionnew.scss +13 -8
  151. package/styles/daterangepicker/icons/_highcontrast-light.scss +13 -8
  152. package/styles/daterangepicker/icons/_highcontrast.scss +13 -8
  153. package/styles/daterangepicker/icons/_material-dark.scss +13 -7
  154. package/styles/daterangepicker/icons/_material.scss +13 -7
  155. package/styles/daterangepicker/icons/_material3.scss +13 -8
  156. package/styles/daterangepicker/icons/_tailwind.scss +13 -8
  157. package/styles/daterangepicker/material-dark.css +13 -3
  158. package/styles/daterangepicker/material.css +123 -0
  159. package/styles/daterangepicker/tailwind-dark.css +13 -2
  160. package/styles/daterangepicker/tailwind.css +13 -2
  161. package/styles/datetimepicker/_all.scss +1 -1
  162. package/styles/datetimepicker/_bootstrap-dark-definition.scss +7 -3
  163. package/styles/datetimepicker/_bootstrap-definition.scss +6 -1
  164. package/styles/datetimepicker/_bootstrap4-definition.scss +6 -1
  165. package/styles/datetimepicker/_bootstrap5-definition.scss +5 -0
  166. package/styles/datetimepicker/_fabric-dark-definition.scss +5 -0
  167. package/styles/datetimepicker/_fabric-definition.scss +4 -0
  168. package/styles/datetimepicker/_fluent-definition.scss +8 -3
  169. package/styles/datetimepicker/_fusionnew-definition.scss +5 -0
  170. package/styles/datetimepicker/_highcontrast-definition.scss +4 -0
  171. package/styles/datetimepicker/_highcontrast-light-definition.scss +6 -1
  172. package/styles/datetimepicker/_layout.scss +2 -3
  173. package/styles/datetimepicker/_material-dark-definition.scss +6 -1
  174. package/styles/datetimepicker/_material-definition.scss +4 -0
  175. package/styles/datetimepicker/_material3-definition.scss +5 -0
  176. package/styles/datetimepicker/_tailwind-definition.scss +5 -0
  177. package/styles/datetimepicker/_theme.scss +2 -1
  178. package/styles/datetimepicker/bootstrap-dark.css +2 -0
  179. package/styles/datetimepicker/bootstrap.css +2 -0
  180. package/styles/datetimepicker/bootstrap4.css +2 -0
  181. package/styles/datetimepicker/bootstrap5-dark.css +3 -0
  182. package/styles/datetimepicker/bootstrap5.css +3 -0
  183. package/styles/datetimepicker/fabric-dark.css +2 -0
  184. package/styles/datetimepicker/fabric.css +2 -0
  185. package/styles/datetimepicker/fluent-dark.css +3 -0
  186. package/styles/datetimepicker/fluent.css +3 -0
  187. package/styles/datetimepicker/highcontrast-light.css +2 -0
  188. package/styles/datetimepicker/highcontrast.css +2 -0
  189. package/styles/datetimepicker/icons/_bootstrap-dark.scss +1 -1
  190. package/styles/datetimepicker/icons/_bootstrap.scss +1 -1
  191. package/styles/datetimepicker/icons/_bootstrap4.scss +1 -1
  192. package/styles/datetimepicker/icons/_bootstrap5.scss +1 -1
  193. package/styles/datetimepicker/icons/_fabric-dark.scss +1 -1
  194. package/styles/datetimepicker/icons/_fabric.scss +1 -1
  195. package/styles/datetimepicker/icons/_fluent.scss +1 -1
  196. package/styles/datetimepicker/icons/_fusionnew.scss +1 -1
  197. package/styles/datetimepicker/icons/_highcontrast-light.scss +1 -0
  198. package/styles/datetimepicker/icons/_highcontrast.scss +1 -1
  199. package/styles/datetimepicker/icons/_material-dark.scss +1 -1
  200. package/styles/datetimepicker/icons/_material.scss +1 -0
  201. package/styles/datetimepicker/icons/_material3.scss +1 -1
  202. package/styles/datetimepicker/icons/_tailwind.scss +1 -1
  203. package/styles/datetimepicker/material-dark.css +2 -0
  204. package/styles/datetimepicker/material.css +2 -0
  205. package/styles/datetimepicker/tailwind-dark.css +3 -0
  206. package/styles/datetimepicker/tailwind.css +3 -0
  207. package/styles/fabric-dark.css +21 -2
  208. package/styles/fabric.css +21 -4
  209. package/styles/fluent-dark.css +25 -4
  210. package/styles/fluent.css +25 -4
  211. package/styles/highcontrast-light.css +21 -2
  212. package/styles/highcontrast.css +21 -2
  213. package/styles/material-dark.css +23 -4
  214. package/styles/material.css +215 -0
  215. package/styles/tailwind-dark.css +27 -4
  216. package/styles/tailwind.css +27 -4
  217. package/styles/timepicker/_all.scss +1 -1
  218. package/styles/timepicker/_bootstrap-dark-definition.scss +6 -1
  219. package/styles/timepicker/_bootstrap-definition.scss +4 -0
  220. package/styles/timepicker/_bootstrap4-definition.scss +5 -0
  221. package/styles/timepicker/_bootstrap5-definition.scss +5 -0
  222. package/styles/timepicker/_fabric-dark-definition.scss +6 -1
  223. package/styles/timepicker/_fabric-definition.scss +4 -0
  224. package/styles/timepicker/_fluent-definition.scss +5 -0
  225. package/styles/timepicker/_fusionnew-definition.scss +5 -0
  226. package/styles/timepicker/_highcontrast-definition.scss +4 -0
  227. package/styles/timepicker/_highcontrast-light-definition.scss +6 -1
  228. package/styles/timepicker/_layout.scss +4 -5
  229. package/styles/timepicker/_material-dark-definition.scss +6 -1
  230. package/styles/timepicker/_material-definition.scss +4 -0
  231. package/styles/timepicker/_material3-definition.scss +5 -0
  232. package/styles/timepicker/_tailwind-definition.scss +5 -0
  233. package/styles/timepicker/_theme.scss +2 -1
  234. package/styles/timepicker/bootstrap-dark.css +4 -0
  235. package/styles/timepicker/bootstrap.css +4 -0
  236. package/styles/timepicker/bootstrap4.css +4 -0
  237. package/styles/timepicker/bootstrap5-dark.css +5 -0
  238. package/styles/timepicker/bootstrap5.css +5 -0
  239. package/styles/timepicker/fabric-dark.css +4 -0
  240. package/styles/timepicker/fabric.css +4 -0
  241. package/styles/timepicker/fluent-dark.css +5 -0
  242. package/styles/timepicker/fluent.css +5 -0
  243. package/styles/timepicker/highcontrast-light.css +4 -0
  244. package/styles/timepicker/highcontrast.css +4 -0
  245. package/styles/timepicker/icons/_bootstrap-dark.scss +1 -2
  246. package/styles/timepicker/icons/_bootstrap.scss +1 -2
  247. package/styles/timepicker/icons/_bootstrap4.scss +1 -2
  248. package/styles/timepicker/icons/_bootstrap5.scss +1 -2
  249. package/styles/timepicker/icons/_fabric-dark.scss +1 -2
  250. package/styles/timepicker/icons/_fabric.scss +1 -2
  251. package/styles/timepicker/icons/_fluent.scss +1 -2
  252. package/styles/timepicker/icons/_fusionnew.scss +1 -2
  253. package/styles/timepicker/icons/_highcontrast-light.scss +1 -2
  254. package/styles/timepicker/icons/_highcontrast.scss +1 -2
  255. package/styles/timepicker/icons/_material-dark.scss +1 -2
  256. package/styles/timepicker/icons/_material.scss +1 -1
  257. package/styles/timepicker/icons/_material3.scss +1 -2
  258. package/styles/timepicker/icons/_tailwind.scss +1 -2
  259. package/styles/timepicker/material-dark.css +4 -0
  260. package/styles/timepicker/material.css +4 -0
  261. package/styles/timepicker/tailwind-dark.css +5 -0
  262. package/styles/timepicker/tailwind.css +5 -0
@@ -83,6 +83,7 @@ var CalendarBase = /** @__PURE__ @class */ (function (_super) {
83
83
  _this.isTodayClicked = false;
84
84
  _this.preventChange = false;
85
85
  _this.isAngular = false;
86
+ _this.previousDates = false;
86
87
  return _this;
87
88
  }
88
89
  /**
@@ -132,7 +133,7 @@ var CalendarBase = /** @__PURE__ @class */ (function (_super) {
132
133
  this.calendarElement.classList.add(DEVICE);
133
134
  }
134
135
  attributes(this.calendarElement, {
135
- 'role': 'calendar'
136
+ 'data-role': 'calendar'
136
137
  });
137
138
  }
138
139
  this.createHeader();
@@ -260,7 +261,7 @@ var CalendarBase = /** @__PURE__ @class */ (function (_super) {
260
261
  };
261
262
  CalendarBase.prototype.createContent = function () {
262
263
  this.contentElement = this.createElement('div', { className: CONTENT });
263
- this.table = this.createElement('table', { attrs: { tabIndex: '0', 'role': 'grid', 'aria-activedescendant': '' } });
264
+ this.table = this.createElement('table', { attrs: { tabIndex: '0', 'role': 'grid', 'aria-activedescendant': '', 'aria-labelledby': this.element.id } });
264
265
  if (this.getModuleName() === 'calendar') {
265
266
  this.element.appendChild(this.contentElement);
266
267
  }
@@ -651,7 +652,7 @@ var CalendarBase = /** @__PURE__ @class */ (function (_super) {
651
652
  var numCells = this.weekNumber ? 8 : 7;
652
653
  var tdEles;
653
654
  if (this.calendarMode === 'Gregorian') {
654
- tdEles = this.renderDays(this.currentDate, value, null, null, isCustomDate);
655
+ tdEles = this.renderDays(this.currentDate, value, null, null, isCustomDate, e);
655
656
  }
656
657
  else {
657
658
  tdEles = this.islamicModule.islamicRenderDays(this.currentDate, value);
@@ -664,7 +665,7 @@ var CalendarBase = /** @__PURE__ @class */ (function (_super) {
664
665
  this.islamicModule.islamicRenderTemplate(tdEles, numCells, MONTH, e, value);
665
666
  }
666
667
  };
667
- CalendarBase.prototype.renderDays = function (currentDate, value, multiSelection, values, isTodayDate) {
668
+ CalendarBase.prototype.renderDays = function (currentDate, value, multiSelection, values, isTodayDate, e) {
668
669
  var tdEles = [];
669
670
  var cellsCount = 42;
670
671
  var todayDate = isTodayDate ? new Date(+currentDate) : this.getDate(new Date(), this.timezone);
@@ -755,6 +756,10 @@ var CalendarBase = /** @__PURE__ @class */ (function (_super) {
755
756
  // if (args.isDisabled && +this.value === +args.date) {
756
757
  // this.setProperties({ value: null }, true);
757
758
  // }
759
+ var currentTarget = void 0;
760
+ if (!isNullOrUndefined(e) && e.type == 'click') {
761
+ currentTarget = e.currentTarget;
762
+ }
758
763
  if (multiSelection && !isNullOrUndefined(values) && !disabledCls) {
759
764
  for (var tempValue = 0; tempValue < values.length; tempValue++) {
760
765
  var type = (this.calendarMode === 'Gregorian') ? 'gregorian' : 'islamic';
@@ -765,6 +770,22 @@ var CalendarBase = /** @__PURE__ @class */ (function (_super) {
765
770
  || (this.getDateVal(localDate, value))) {
766
771
  addClass([tdEle], SELECTED);
767
772
  }
773
+ if (!isNullOrUndefined(currentTarget) && currentTarget.innerText === tdEle.innerText && this.previousDates && currentTarget.classList.contains(SELECTED)) {
774
+ removeClass([tdEle], SELECTED);
775
+ this.previousDates = false;
776
+ var copyValues = this.copyValues(values);
777
+ for (var i = 0; i < copyValues.length; i++) {
778
+ var type_1 = (this.calendarMode === 'Gregorian') ? 'gregorian' : 'islamic';
779
+ var formatOptions_1 = { format: null, type: 'date', skeleton: 'short', calendar: type_1 };
780
+ var localDateString_1 = this.globalize.formatDate(date, formatOptions_1);
781
+ var tempDateString_1 = this.globalize.formatDate(copyValues[i], formatOptions_1);
782
+ if (localDateString_1 === tempDateString_1) {
783
+ var index = copyValues.indexOf(copyValues[i]);
784
+ copyValues.splice(index, 1);
785
+ }
786
+ }
787
+ this.setProperties({ values: copyValues }, true);
788
+ }
768
789
  else {
769
790
  this.updateFocus(otherMnthBool, disabledCls, localDate, tdEle, currentDate);
770
791
  }
@@ -872,7 +893,6 @@ var CalendarBase = /** @__PURE__ @class */ (function (_super) {
872
893
  var year = startYear + rowIterator;
873
894
  localDate.setFullYear(year);
874
895
  var tdEle = this.dayCell(localDate);
875
- attributes(tdEle, { 'role': 'gridcell' });
876
896
  var dayLink = this.createElement('span');
877
897
  dayLink.textContent = this.globalize.formatDate(localDate, {
878
898
  format: null, type: 'dateTime', skeleton: 'y'
@@ -913,7 +933,7 @@ var CalendarBase = /** @__PURE__ @class */ (function (_super) {
913
933
  var date = this.globalize.parseDate(this.globalize.formatDate(localDate, dateFormatOptions), dateFormatOptions);
914
934
  var value = date.valueOf();
915
935
  var attrs = {
916
- className: CELL, attrs: { 'id': '' + getUniqueID('' + value), 'aria-selected': 'false', 'role': 'gridcell' }
936
+ className: CELL, attrs: { 'id': '' + getUniqueID('' + value), 'aria-selected': 'false' }
917
937
  };
918
938
  return this.createElement('td', attrs);
919
939
  };
@@ -987,7 +1007,7 @@ var CalendarBase = /** @__PURE__ @class */ (function (_super) {
987
1007
  var row = count;
988
1008
  var rowIterator = 0;
989
1009
  for (var dayCell = 0; dayCell < elements.length / count; ++dayCell) {
990
- trEle = this.createElement('tr', { attrs: { 'role': 'row' } });
1010
+ trEle = this.createElement('tr');
991
1011
  for (rowIterator = 0 + rowIterator; rowIterator < row; rowIterator++) {
992
1012
  if (!elements[rowIterator].classList.contains('e-week-number') && !isNullOrUndefined(elements[rowIterator].children[0])) {
993
1013
  addClass([elements[rowIterator].children[0]], [LINK]);
@@ -2207,8 +2227,8 @@ var Calendar = /** @__PURE__ @class */ (function (_super) {
2207
2227
  Calendar.prototype.renderMonths = function (e, value, isCustomDate) {
2208
2228
  _super.prototype.renderMonths.call(this, e, this.value, isCustomDate);
2209
2229
  };
2210
- Calendar.prototype.renderDays = function (currentDate, value, isMultiSelect, values, isCustomDate) {
2211
- var tempDays = _super.prototype.renderDays.call(this, currentDate, this.value, this.isMultiSelection, this.values, isCustomDate);
2230
+ Calendar.prototype.renderDays = function (currentDate, value, isMultiSelect, values, isCustomDate, e) {
2231
+ var tempDays = _super.prototype.renderDays.call(this, currentDate, this.value, this.isMultiSelection, this.values, isCustomDate, e);
2212
2232
  if (this.isMultiSelection) {
2213
2233
  _super.prototype.validateValues.call(this, this.isMultiSelection, this.values);
2214
2234
  }
@@ -2246,9 +2266,14 @@ var Calendar = /** @__PURE__ @class */ (function (_super) {
2246
2266
  if (eve.classList.contains(OTHERMONTH)) {
2247
2267
  if (this.isMultiSelection) {
2248
2268
  var copyValues = this.copyValues(this.values);
2249
- copyValues.push(this.getIdValue(e, null));
2250
- this.setProperties({ values: copyValues }, true);
2251
- this.setProperties({ value: this.values[this.values.length - 1] }, true);
2269
+ if (copyValues.toString().indexOf(this.getIdValue(e, null).toString()) === -1) {
2270
+ copyValues.push(this.getIdValue(e, null));
2271
+ this.setProperties({ values: copyValues }, true);
2272
+ this.setProperties({ value: this.values[this.values.length - 1] }, true);
2273
+ }
2274
+ else {
2275
+ this.previousDates = true;
2276
+ }
2252
2277
  }
2253
2278
  else {
2254
2279
  this.setProperties({ value: this.getIdValue(e, null) }, true);
@@ -2899,14 +2924,14 @@ var Islamic = /** @__PURE__ @class */ (function () {
2899
2924
  dayLink.textContent = this.calendarInstance.globalize.formatDate(localDate, { type: 'dateTime', format: 'y', calendar: 'islamic' });
2900
2925
  if (islamicDate.year === parseInt(startHdrYr) - 1 || (year_1 < startFullYr) || (year_1 > endFullYr) && islamicDate.year !== parseInt(endHdrYr)) {
2901
2926
  addClass([tdEle], OTHERMONTH$1);
2902
- if (year_1 < new Date(this.islamicInValue(this.calendarInstance.min)).getFullYear()
2903
- || year_1 > new Date(this.islamicInValue(this.calendarInstance.max)).getFullYear()) {
2904
- addClass([tdEle], DISABLED$1);
2905
- }
2906
2927
  }
2907
2928
  else if (year_1 < new Date(this.islamicInValue(this.calendarInstance.min)).getFullYear()
2908
2929
  || year_1 > new Date(this.islamicInValue(this.calendarInstance.max)).getFullYear()) {
2909
2930
  addClass([tdEle], DISABLED$1);
2931
+ if (year_1 < new Date(this.islamicInValue(this.calendarInstance.min)).getFullYear()
2932
+ || year_1 > new Date(this.islamicInValue(this.calendarInstance.max)).getFullYear()) {
2933
+ addClass([tdEle], DISABLED$1);
2934
+ }
2910
2935
  }
2911
2936
  else if (!isNullOrUndefined(value) &&
2912
2937
  (this.getIslamicDate(localDate)).year ===
@@ -3157,6 +3182,10 @@ var DatePicker = /** @__PURE__ @class */ (function (_super) {
3157
3182
  DatePicker.prototype.render = function () {
3158
3183
  this.initialize();
3159
3184
  this.bindEvents();
3185
+ Input.calculateWidth(this.inputElement, this.inputWrapper.container);
3186
+ if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {
3187
+ this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon');
3188
+ }
3160
3189
  this.renderComplete();
3161
3190
  this.setTimeZone(this.serverTimezoneOffset);
3162
3191
  };
@@ -3220,10 +3249,9 @@ var DatePicker = /** @__PURE__ @class */ (function (_super) {
3220
3249
  };
3221
3250
  DatePicker.prototype.createInput = function () {
3222
3251
  var ariaAttrs = {
3223
- 'aria-live': 'assertive', 'aria-atomic': 'true',
3224
- 'aria-haspopup': 'true', 'aria-activedescendant': 'null',
3225
- 'aria-owns': this.element.id + '_options', 'aria-expanded': 'false', 'role': 'combobox', 'autocomplete': 'off',
3226
- 'autocorrect': 'off', 'autocapitalize': 'off', 'spellcheck': 'false', 'aria-invalid': 'false'
3252
+ 'aria-live': 'assertive', 'aria-atomic': 'true', 'aria-expanded': 'false',
3253
+ 'role': 'combobox', 'autocomplete': 'off', 'autocorrect': 'off',
3254
+ 'autocapitalize': 'off', 'spellcheck': 'false', 'aria-invalid': 'false'
3227
3255
  };
3228
3256
  if (this.getModuleName() === 'datepicker') {
3229
3257
  var l10nLocale = { placeholder: this.placeholder };
@@ -4427,8 +4455,7 @@ var DatePicker = /** @__PURE__ @class */ (function (_super) {
4427
4455
  }
4428
4456
  var ariaAttrs = {
4429
4457
  'aria-live': 'assertive', 'aria-atomic': 'true', 'aria-disabled': 'true',
4430
- 'aria-haspopup': 'true', 'aria-activedescendant': 'null',
4431
- 'aria-owns': this.element.id + '_options', 'aria-expanded': 'false', 'role': 'combobox', 'autocomplete': 'off',
4458
+ 'aria-expanded': 'false', 'role': 'combobox', 'autocomplete': 'off',
4432
4459
  'autocorrect': 'off', 'autocapitalize': 'off', 'spellcheck': 'false'
4433
4460
  };
4434
4461
  if (this.inputElement) {
@@ -4753,11 +4780,15 @@ var DatePicker = /** @__PURE__ @class */ (function (_super) {
4753
4780
  DatePicker.prototype.setAriaAttributes = function () {
4754
4781
  if (this.isCalendar()) {
4755
4782
  Input.addAttributes({ 'aria-expanded': 'true' }, this.inputElement);
4756
- attributes(this.inputElement, { 'aria-activedescendant': '' + this.setActiveDescendant() });
4783
+ attributes(this.inputElement, { 'aria-owns': this.inputElement.id + '_options' });
4784
+ if (this.value) {
4785
+ attributes(this.inputElement, { 'aria-activedescendant': '' + this.setActiveDescendant() });
4786
+ }
4757
4787
  }
4758
4788
  else {
4759
4789
  Input.addAttributes({ 'aria-expanded': 'false' }, this.inputElement);
4760
- attributes(this.inputElement, { 'aria-activedescendant': 'null' });
4790
+ this.inputElement.removeAttribute('aria-owns');
4791
+ this.inputElement.removeAttribute('aria-activedescendant');
4761
4792
  }
4762
4793
  };
4763
4794
  DatePicker.prototype.errorClass = function () {
@@ -4881,11 +4912,18 @@ var DatePicker = /** @__PURE__ @class */ (function (_super) {
4881
4912
  break;
4882
4913
  case 'width':
4883
4914
  this.setWidth(newProp.width);
4915
+ Input.calculateWidth(this.inputElement, this.inputWrapper.container);
4916
+ if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {
4917
+ this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon');
4918
+ }
4884
4919
  break;
4885
4920
  case 'floatLabelType':
4886
4921
  this.floatLabelType = newProp.floatLabelType;
4887
4922
  Input.removeFloating(this.inputWrapper);
4888
4923
  Input.addFloating(this.inputElement, this.floatLabelType, this.placeholder);
4924
+ if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {
4925
+ this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon');
4926
+ }
4889
4927
  break;
4890
4928
  case 'enableMask':
4891
4929
  if (this.enableMask) {
@@ -4907,7 +4945,7 @@ var DatePicker = /** @__PURE__ @class */ (function (_super) {
4907
4945
  }
4908
4946
  break;
4909
4947
  }
4910
- if (!this.isDynamicValueChanged) {
4948
+ if (!this.isDynamicValueChanged && !this.isIconClicked) {
4911
4949
  this.hide(null);
4912
4950
  }
4913
4951
  this.isDynamicValueChanged = false;
@@ -5146,6 +5184,7 @@ var DateRangePicker = /** @__PURE__ @class */ (function (_super) {
5146
5184
  _this.invalidValueString = null;
5147
5185
  _this.isAngular = false;
5148
5186
  _this.preventChange = false;
5187
+ _this.isPropChanged = false;
5149
5188
  _this.dateRangeOptions = options;
5150
5189
  return _this;
5151
5190
  }
@@ -5164,6 +5203,10 @@ var DateRangePicker = /** @__PURE__ @class */ (function (_super) {
5164
5203
  if (this.element.hasAttribute('data-val')) {
5165
5204
  this.element.setAttribute('data-val', 'false');
5166
5205
  }
5206
+ Input.calculateWidth(this.inputElement, this.inputWrapper.container);
5207
+ if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {
5208
+ this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon');
5209
+ }
5167
5210
  this.renderComplete();
5168
5211
  };
5169
5212
  /**
@@ -7329,7 +7372,7 @@ var DateRangePicker = /** @__PURE__ @class */ (function (_super) {
7329
7372
  if (this.enableRtl) {
7330
7373
  this.calendarElement.classList.add(RTL$1);
7331
7374
  }
7332
- attributes(this.calendarElement, { 'role': 'calendar' });
7375
+ attributes(this.calendarElement, { 'data-role': 'calendar' });
7333
7376
  _super.prototype.createHeader.call(this);
7334
7377
  _super.prototype.createContent.call(this);
7335
7378
  };
@@ -7888,7 +7931,7 @@ var DateRangePicker = /** @__PURE__ @class */ (function (_super) {
7888
7931
  if (!isUndefined(this.presets[0].start && this.presets[0].end && this.presets[0].label)) {
7889
7932
  this.presetElement = this.createElement('div', { className: PRESETS, attrs: { 'tabindex': '0' } });
7890
7933
  var listTag = ListBase.createList(this.createElement, this.presetsItem, null, true);
7891
- attributes(listTag, { 'role': 'listbox', 'aria-hidden': 'false', 'id': this.element.id + '_options' });
7934
+ attributes(listTag, { 'role': 'listbox', 'aria-hidden': 'false', 'id': this.element.id + '_options', 'tabindex': '0' });
7892
7935
  this.presetElement.appendChild(listTag);
7893
7936
  this.popupWrapper.appendChild(this.presetElement);
7894
7937
  var customElement = this.presetElement.querySelector('#custom_range');
@@ -7949,7 +7992,13 @@ var DateRangePicker = /** @__PURE__ @class */ (function (_super) {
7949
7992
  enableRtl: this.enableRtl,
7950
7993
  zIndex: this.zIndex,
7951
7994
  open: function () {
7952
- attributes(_this.inputElement, { 'aria-expanded': 'true' });
7995
+ attributes(_this.inputElement, { 'aria-expanded': 'true', 'aria-owns': _this.inputElement.id + '_options' });
7996
+ if (_this.value) {
7997
+ attributes(_this.inputElement, { 'aria-activedescendant': _this.inputElement.id });
7998
+ }
7999
+ else {
8000
+ _this.inputElement.removeAttribute('aria-activedescendant');
8001
+ }
7953
8002
  addClass([_this.inputWrapper.buttons[0]], ACTIVE$1);
7954
8003
  if (!_this.isMobile) {
7955
8004
  if (_this.cancelButton) {
@@ -7997,6 +8046,8 @@ var DateRangePicker = /** @__PURE__ @class */ (function (_super) {
7997
8046
  },
7998
8047
  close: function () {
7999
8048
  attributes(_this.inputElement, { 'aria-expanded': 'false' });
8049
+ _this.inputElement.removeAttribute('aria-owns');
8050
+ _this.inputElement.removeAttribute('aria-activedescendant');
8000
8051
  removeClass([_this.inputWrapper.buttons[0]], ACTIVE$1);
8001
8052
  if (_this.isRangeIconClicked) {
8002
8053
  _this.inputWrapper.container.children[1].focus();
@@ -8263,7 +8314,7 @@ var DateRangePicker = /** @__PURE__ @class */ (function (_super) {
8263
8314
  }
8264
8315
  var target = e.target;
8265
8316
  if (!this.inputWrapper.container.contains(target) ||
8266
- (!isNullOrUndefined(this.popupObj) && !closest(target, '[id="' + this.popupWrapper.id + '"]') && e.type === 'mousedown')) {
8317
+ (!isNullOrUndefined(this.popupObj) && !closest(target, '[id="' + this.popupWrapper.id + '"]') && e.type !== 'mousedown')) {
8267
8318
  if (e.type !== 'touchstart' && ((e.type === 'mousedown') ||
8268
8319
  this.closeEventArgs && !this.closeEventArgs.cancel)) {
8269
8320
  e.preventDefault();
@@ -8302,9 +8353,8 @@ var DateRangePicker = /** @__PURE__ @class */ (function (_super) {
8302
8353
  buttons: [DATERANGEICON]
8303
8354
  }, this.createElement);
8304
8355
  attributes(this.inputElement, {
8305
- 'aria-readonly': this.readonly ? 'true' : 'false', 'tabindex': '0', 'aria-haspopup': 'true',
8306
- 'aria-activedescendant': 'null', 'aria-owns': this.element.id + '_popup', 'aria-expanded': 'false',
8307
- 'role': 'combobox', 'autocomplete': 'off', 'aria-disabled': !this.enabled ? 'true' : 'false',
8356
+ 'tabindex': '0', 'aria-expanded': 'false', 'role': 'combobox',
8357
+ 'autocomplete': 'off', 'aria-disabled': !this.enabled ? 'true' : 'false',
8308
8358
  'autocorrect': 'off', 'autocapitalize': 'off', 'spellcheck': 'false'
8309
8359
  });
8310
8360
  Input.addAttributes({ 'aria-label': 'select' }, this.inputWrapper.buttons[0]);
@@ -8735,9 +8785,8 @@ var DateRangePicker = /** @__PURE__ @class */ (function (_super) {
8735
8785
  this.unBindEvents();
8736
8786
  this.hide(null);
8737
8787
  var ariaAttrs = {
8738
- 'aria-readonly': this.readonly ? 'true' : 'false', 'tabindex': '0', 'aria-haspopup': 'true',
8739
- 'aria-activedescendant': 'null', 'aria-owns': this.element.id + '_popup', 'aria-expanded': 'false',
8740
- 'role': 'combobox', 'autocomplete': 'off', 'aria-disabled': !this.enabled ? 'true' : 'false',
8788
+ 'tabindex': '0', 'aria-expanded': 'false', 'role': 'combobox',
8789
+ 'autocomplete': 'off', 'aria-disabled': !this.enabled ? 'true' : 'false',
8741
8790
  'autocorrect': 'off', 'autocapitalize': 'off', 'aria-invalid': 'false', 'spellcheck': 'false'
8742
8791
  };
8743
8792
  if (this.inputElement) {
@@ -9096,12 +9145,13 @@ var DateRangePicker = /** @__PURE__ @class */ (function (_super) {
9096
9145
  for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {
9097
9146
  var prop = _a[_i];
9098
9147
  var openPopup = ['maxDays', 'minDays', 'value'];
9099
- if (openPopup.indexOf(prop) < 0) {
9100
- this.hide(null);
9101
- }
9102
9148
  switch (prop) {
9103
9149
  case 'width':
9104
9150
  this.setEleWidth(this.width);
9151
+ Input.calculateWidth(this.inputElement, this.inputWrapper.container);
9152
+ if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {
9153
+ this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon');
9154
+ }
9105
9155
  break;
9106
9156
  case 'separator':
9107
9157
  this.previousEleValue = this.inputElement.value;
@@ -9115,7 +9165,6 @@ var DateRangePicker = /** @__PURE__ @class */ (function (_super) {
9115
9165
  break;
9116
9166
  case 'readonly':
9117
9167
  Input.setReadonly(this.readonly, this.inputElement);
9118
- this.inputElement.setAttribute('aria-readonly', '' + this.readonly);
9119
9168
  this.setRangeAllowEdit();
9120
9169
  break;
9121
9170
  case 'cssClass':
@@ -9293,6 +9342,9 @@ var DateRangePicker = /** @__PURE__ @class */ (function (_super) {
9293
9342
  this.floatLabelType = newProp.floatLabelType;
9294
9343
  Input.removeFloating(this.inputWrapper);
9295
9344
  Input.addFloating(this.inputElement, this.floatLabelType, this.placeholder);
9345
+ if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {
9346
+ this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon');
9347
+ }
9296
9348
  break;
9297
9349
  case 'start':
9298
9350
  this.setProperties({ start: newProp.start }, true);
@@ -9302,7 +9354,13 @@ var DateRangePicker = /** @__PURE__ @class */ (function (_super) {
9302
9354
  this.setProperties({ depth: newProp.depth }, true);
9303
9355
  this.refreshChange();
9304
9356
  break;
9357
+ default:
9358
+ this.isPropChanged = true;
9359
+ }
9360
+ if (openPopup.indexOf(prop) < 0 && !this.isPropChanged) {
9361
+ this.hide(null);
9305
9362
  }
9363
+ this.isPropChanged = false;
9306
9364
  }
9307
9365
  };
9308
9366
  __decorate$2([
@@ -9628,6 +9686,9 @@ var TimePicker = /** @__PURE__ @class */ (function (_super) {
9628
9686
  this.anchor = this.inputElement;
9629
9687
  this.inputElement.setAttribute('value', this.inputElement.value);
9630
9688
  this.inputEleValue = this.getDateObject(this.inputElement.value);
9689
+ if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {
9690
+ this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon');
9691
+ }
9631
9692
  this.renderComplete();
9632
9693
  };
9633
9694
  TimePicker.prototype.setTimeAllowEdit = function () {
@@ -9773,9 +9834,10 @@ var TimePicker = /** @__PURE__ @class */ (function (_super) {
9773
9834
  }, this.createElement);
9774
9835
  this.inputWrapper.container.style.width = this.setWidth(this.width);
9775
9836
  attributes(this.inputElement, {
9776
- 'aria-haspopup': 'true', 'aria-autocomplete': 'list', 'tabindex': '0', 'aria-activedescendant': 'null',
9777
- 'aria-owns': this.element.id + '_options', 'aria-expanded': 'false', 'role': 'combobox', 'autocomplete': 'off',
9778
- 'autocorrect': 'off', 'autocapitalize': 'off', 'spellcheck': 'false', 'aria-disabled': 'false', 'aria-invalid': 'false'
9837
+ 'aria-autocomplete': 'list', 'tabindex': '0',
9838
+ 'aria-expanded': 'false', 'role': 'combobox', 'autocomplete': 'off',
9839
+ 'autocorrect': 'off', 'autocapitalize': 'off', 'spellcheck': 'false',
9840
+ 'aria-disabled': 'false', 'aria-invalid': 'false'
9779
9841
  });
9780
9842
  if (!this.isNullOrEmpty(this.inputStyle)) {
9781
9843
  Input.addAttributes({ 'style': this.inputStyle }, this.inputElement);
@@ -9876,9 +9938,10 @@ var TimePicker = /** @__PURE__ @class */ (function (_super) {
9876
9938
  this.hide();
9877
9939
  this.unBindEvents();
9878
9940
  var ariaAttribute = {
9879
- 'aria-haspopup': 'true', 'aria-autocomplete': 'list', 'tabindex': '0', 'aria-activedescendant': 'null',
9880
- 'aria-owns': this.element.id + '_options', 'aria-expanded': 'false', 'role': 'combobox', 'autocomplete': 'off',
9881
- 'autocorrect': 'off', 'autocapitalize': 'off', 'spellcheck': 'false', 'aria-disabled': 'true', 'aria-invalid': 'false'
9941
+ 'aria-autocomplete': 'list', 'tabindex': '0',
9942
+ 'aria-expanded': 'false', 'role': 'combobox', 'autocomplete': 'off',
9943
+ 'autocorrect': 'off', 'autocapitalize': 'off', 'spellcheck': 'false',
9944
+ 'aria-disabled': 'true', 'aria-invalid': 'false'
9882
9945
  };
9883
9946
  if (this.inputElement) {
9884
9947
  Input.removeAttributes(ariaAttribute, this.inputElement);
@@ -9979,7 +10042,7 @@ var TimePicker = /** @__PURE__ @class */ (function (_super) {
9979
10042
  }, close: function () {
9980
10043
  removeClass([_this.inputWrapper.buttons[0]], SELECTED$4);
9981
10044
  _this.unWireListEvents();
9982
- _this.inputElement.setAttribute('aria-activedescendant', 'null');
10045
+ _this.inputElement.removeAttribute('aria-activedescendant');
9983
10046
  remove(_this.popupObj.element);
9984
10047
  _this.popupObj.destroy();
9985
10048
  _this.popupWrapper.innerHTML = '';
@@ -10471,6 +10534,8 @@ var TimePicker = /** @__PURE__ @class */ (function (_super) {
10471
10534
  _this.popupObj.hide(new Animation(animModel));
10472
10535
  removeClass([_this.inputWrapper.container], [ICONANIMATION]);
10473
10536
  attributes(_this.inputElement, { 'aria-expanded': 'false' });
10537
+ _this.inputElement.removeAttribute('aria-owns');
10538
+ _this.inputElement.removeAttribute('aria-activedescendant');
10474
10539
  EventHandler.remove(document, 'mousedown touchstart', _this.documentClickHandler);
10475
10540
  }
10476
10541
  if (Browser.isDevice && _this.modal) {
@@ -11234,11 +11299,11 @@ var TimePicker = /** @__PURE__ @class */ (function (_super) {
11234
11299
  this.clearIconState();
11235
11300
  };
11236
11301
  TimePicker.prototype.setActiveDescendant = function () {
11237
- if (!isNullOrUndefined(this.selectedElement)) {
11302
+ if (!isNullOrUndefined(this.selectedElement) && this.value) {
11238
11303
  attributes(this.inputElement, { 'aria-activedescendant': this.selectedElement.getAttribute('id') });
11239
11304
  }
11240
11305
  else {
11241
- attributes(this.inputElement, { 'aria-activedescendant': 'null' });
11306
+ this.inputElement.removeAttribute('aria-activedescendant');
11242
11307
  }
11243
11308
  };
11244
11309
  TimePicker.prototype.removeSelection = function () {
@@ -11328,7 +11393,7 @@ var TimePicker = /** @__PURE__ @class */ (function (_super) {
11328
11393
  };
11329
11394
  TimePicker.prototype.createListItems = function () {
11330
11395
  var _this = this;
11331
- this.listWrapper = this.createElement('div', { className: CONTENT$2, attrs: { 'tabindex': '0' } });
11396
+ this.listWrapper = this.createElement('div', { className: CONTENT$2, attrs: { 'tabindex': '-1' } });
11332
11397
  var start;
11333
11398
  var interval = this.step * 60000;
11334
11399
  var listItems = [];
@@ -11358,7 +11423,7 @@ var TimePicker = /** @__PURE__ @class */ (function (_super) {
11358
11423
  }
11359
11424
  };
11360
11425
  this.listTag = ListBase.createList(this.createElement, listItems, listBaseOptions, true);
11361
- attributes(this.listTag, { 'role': 'listbox', 'aria-hidden': 'false', 'id': this.element.id + '_options' });
11426
+ attributes(this.listTag, { 'role': 'listbox', 'aria-hidden': 'false', 'id': this.element.id + '_options', 'tabindex': '0' });
11362
11427
  append([this.listTag], this.listWrapper);
11363
11428
  };
11364
11429
  TimePicker.prototype.documentClickHandler = function (event) {
@@ -11571,6 +11636,7 @@ var TimePicker = /** @__PURE__ @class */ (function (_super) {
11571
11636
  }
11572
11637
  _this.setActiveDescendant();
11573
11638
  attributes(_this.inputElement, { 'aria-expanded': 'true' });
11639
+ attributes(_this.inputElement, { 'aria-owns': _this.inputElement.id + '_options' });
11574
11640
  addClass([_this.inputWrapper.container], FOCUS);
11575
11641
  EventHandler.add(document, 'mousedown touchstart', _this.documentClickHandler, _this);
11576
11642
  _this.setOverlayIndex(_this.mobileTimePopupWrap, _this.popupObj.element, _this.modal, Browser.isDevice);
@@ -11684,7 +11750,6 @@ var TimePicker = /** @__PURE__ @class */ (function (_super) {
11684
11750
  switch (prop) {
11685
11751
  case 'placeholder':
11686
11752
  Input.setPlaceholder(newProp.placeholder, this.inputElement);
11687
- this.inputElement.setAttribute('aria-placeholder', newProp.placeholder);
11688
11753
  break;
11689
11754
  case 'readonly':
11690
11755
  Input.setReadonly(this.readonly, this.inputElement, this.floatLabelType);
@@ -11739,6 +11804,10 @@ var TimePicker = /** @__PURE__ @class */ (function (_super) {
11739
11804
  case 'width':
11740
11805
  setStyleAttribute(this.inputWrapper.container, { 'width': this.setWidth(newProp.width) });
11741
11806
  this.containerStyle = this.inputWrapper.container.getBoundingClientRect();
11807
+ Input.calculateWidth(this.inputElement, this.inputWrapper.container);
11808
+ if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {
11809
+ this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon');
11810
+ }
11742
11811
  break;
11743
11812
  case 'format':
11744
11813
  this.setProperties({ format: newProp.format }, true);
@@ -11789,6 +11858,9 @@ var TimePicker = /** @__PURE__ @class */ (function (_super) {
11789
11858
  this.floatLabelType = newProp.floatLabelType;
11790
11859
  Input.removeFloating(this.inputWrapper);
11791
11860
  Input.addFloating(this.inputElement, this.floatLabelType, this.placeholder);
11861
+ if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {
11862
+ this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon');
11863
+ }
11792
11864
  break;
11793
11865
  case 'strictMode':
11794
11866
  this.invalidValueString = null;
@@ -12080,13 +12152,11 @@ var DateTimePicker = /** @__PURE__ @class */ (function (_super) {
12080
12152
  }
12081
12153
  var ariaAttribute = {
12082
12154
  'aria-live': 'assertive', 'aria-atomic': 'true', 'aria-invalid': 'false',
12083
- 'aria-haspopup': 'true', 'aria-activedescendant': 'null',
12084
12155
  'autocorrect': 'off', 'autocapitalize': 'off', 'spellcheck': 'false',
12085
- 'aria-owns': this.element.id + '_options', 'aria-expanded': 'false', 'role': 'combobox', 'autocomplete': 'off'
12156
+ 'aria-expanded': 'false', 'role': 'combobox', 'autocomplete': 'off'
12086
12157
  };
12087
12158
  if (this.inputElement) {
12088
12159
  Input.removeAttributes(ariaAttribute, this.inputElement);
12089
- this.inputElement.removeAttribute('aria-placeholder');
12090
12160
  }
12091
12161
  if (this.isCalendar()) {
12092
12162
  if (this.popupWrapper) {
@@ -12151,6 +12221,10 @@ var DateTimePicker = /** @__PURE__ @class */ (function (_super) {
12151
12221
  this.inputElement.tabIndex = -1;
12152
12222
  }
12153
12223
  }
12224
+ Input.calculateWidth(this.inputElement, this.inputWrapper.container);
12225
+ if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {
12226
+ this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-date-time-icon');
12227
+ }
12154
12228
  this.renderComplete();
12155
12229
  };
12156
12230
  DateTimePicker.prototype.setValue = function () {
@@ -12497,6 +12571,7 @@ var DateTimePicker = /** @__PURE__ @class */ (function (_super) {
12497
12571
  }
12498
12572
  addClass([_this.inputWrapper.container], [ICONANIMATION$1]);
12499
12573
  attributes(_this.inputElement, { 'aria-expanded': 'true' });
12574
+ attributes(_this.inputElement, { 'aria-owns': _this.inputElement.id + '_options' });
12500
12575
  EventHandler.add(document, 'mousedown touchstart', _this.documentClickHandler, _this);
12501
12576
  }
12502
12577
  });
@@ -12561,7 +12636,7 @@ var DateTimePicker = /** @__PURE__ @class */ (function (_super) {
12561
12636
  }, close: function () {
12562
12637
  removeClass([_this.timeIcon], ACTIVE$2);
12563
12638
  _this.unWireTimeListEvents();
12564
- _this.inputElement.setAttribute('aria-activedescendant', 'null');
12639
+ _this.inputElement.removeAttribute('aria-activedescendant');
12565
12640
  remove(_this.popupObject.element);
12566
12641
  _this.popupObject.destroy();
12567
12642
  _this.dateTimeWrapper.innerHTML = '';
@@ -12777,11 +12852,11 @@ var DateTimePicker = /** @__PURE__ @class */ (function (_super) {
12777
12852
  }
12778
12853
  };
12779
12854
  DateTimePicker.prototype.setTimeActiveDescendant = function () {
12780
- if (!isNullOrUndefined(this.selectedElement)) {
12855
+ if (!isNullOrUndefined(this.selectedElement) && this.value) {
12781
12856
  attributes(this.inputElement, { 'aria-activedescendant': this.selectedElement.getAttribute('id') });
12782
12857
  }
12783
12858
  else {
12784
- attributes(this.inputElement, { 'aria-activedescendant': 'null' });
12859
+ this.inputElement.removeAttribute('aria-activedescendant');
12785
12860
  }
12786
12861
  };
12787
12862
  DateTimePicker.prototype.addTimeSelection = function () {
@@ -12940,6 +13015,7 @@ var DateTimePicker = /** @__PURE__ @class */ (function (_super) {
12940
13015
  this.popupObject.hide(new Animation(animModel));
12941
13016
  this.inputWrapper.container.classList.remove(ICONANIMATION$1);
12942
13017
  attributes(this.inputElement, { 'aria-expanded': 'false' });
13018
+ this.inputElement.removeAttribute('aria-owns');
12943
13019
  EventHandler.remove(document, 'mousedown touchstart', this.documentClickHandler);
12944
13020
  }
12945
13021
  };
@@ -13327,7 +13403,6 @@ var DateTimePicker = /** @__PURE__ @class */ (function (_super) {
13327
13403
  break;
13328
13404
  case 'placeholder':
13329
13405
  Input.setPlaceholder(newProp.placeholder, this.inputElement);
13330
- this.inputElement.setAttribute('aria-placeholder', newProp.placeholder);
13331
13406
  break;
13332
13407
  case 'enabled':
13333
13408
  Input.setEnabled(this.enabled, this.inputElement);
@@ -13341,6 +13416,10 @@ var DateTimePicker = /** @__PURE__ @class */ (function (_super) {
13341
13416
  break;
13342
13417
  case 'width':
13343
13418
  this.setWidth(newProp.width);
13419
+ Input.calculateWidth(this.inputElement, this.inputWrapper.container);
13420
+ if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {
13421
+ this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-date-time-icon');
13422
+ }
13344
13423
  break;
13345
13424
  case 'readonly':
13346
13425
  Input.setReadonly(this.readonly, this.inputElement);
@@ -13349,6 +13428,9 @@ var DateTimePicker = /** @__PURE__ @class */ (function (_super) {
13349
13428
  this.floatLabelType = newProp.floatLabelType;
13350
13429
  Input.removeFloating(this.inputWrapper);
13351
13430
  Input.addFloating(this.inputElement, this.floatLabelType, this.placeholder);
13431
+ if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {
13432
+ this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-date-time-icon');
13433
+ }
13352
13434
  break;
13353
13435
  case 'scrollTo':
13354
13436
  if (this.checkDateValue(new Date(this.checkValue(newProp.scrollTo)))) {
@@ -13379,7 +13461,7 @@ var DateTimePicker = /** @__PURE__ @class */ (function (_super) {
13379
13461
  _super.prototype.onPropertyChanged.call(this, newProp, oldProp);
13380
13462
  break;
13381
13463
  }
13382
- if (!this.isDynamicValueChanged) {
13464
+ if (!this.isDynamicValueChanged && !this.isIconClicked) {
13383
13465
  this.hide(null);
13384
13466
  }
13385
13467
  this.isDynamicValueChanged = false;