@syncfusion/ej2-calendars 20.2.50 → 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/CHANGELOG.md +0 -6
  2. package/dist/ej2-calendars.min.js +10 -0
  3. package/dist/ej2-calendars.umd.min.js +2 -2
  4. package/dist/ej2-calendars.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-calendars.es2015.js +65 -52
  6. package/dist/es6/ej2-calendars.es2015.js.map +1 -1
  7. package/dist/es6/ej2-calendars.es5.js +65 -52
  8. package/dist/es6/ej2-calendars.es5.js.map +1 -1
  9. package/dist/global/ej2-calendars.min.js +2 -2
  10. package/dist/global/ej2-calendars.min.js.map +1 -1
  11. package/dist/global/index.d.ts +1 -1
  12. package/package.json +11 -11
  13. package/src/calendar/calendar.js +4 -5
  14. package/src/calendar/islamic.js +4 -4
  15. package/src/datepicker/datepicker.js +11 -9
  16. package/src/daterangepicker/daterangepicker.d.ts +1 -0
  17. package/src/daterangepicker/daterangepicker.js +23 -14
  18. package/src/datetimepicker/datetimepicker.js +7 -8
  19. package/src/timepicker/timepicker.js +16 -12
  20. package/styles/bootstrap-dark.css +13 -184
  21. package/styles/bootstrap.css +13 -184
  22. package/styles/bootstrap4.css +13 -184
  23. package/styles/bootstrap5-dark.css +18 -186
  24. package/styles/bootstrap5.css +18 -186
  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 +23 -18
  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 -80
  87. package/styles/datepicker/bootstrap.css +3 -80
  88. package/styles/datepicker/bootstrap4.css +3 -80
  89. package/styles/datepicker/bootstrap5-dark.css +4 -81
  90. package/styles/datepicker/bootstrap5.css +4 -81
  91. package/styles/datepicker/fabric-dark.css +3 -80
  92. package/styles/datepicker/fabric.css +3 -80
  93. package/styles/datepicker/fluent-dark.css +4 -81
  94. package/styles/datepicker/fluent.css +4 -81
  95. package/styles/datepicker/highcontrast-light.css +3 -80
  96. package/styles/datepicker/highcontrast.css +3 -80
  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 -80
  112. package/styles/datepicker/material.css +9 -3
  113. package/styles/datepicker/tailwind-dark.css +4 -81
  114. package/styles/datepicker/tailwind.css +4 -81
  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 +144 -71
  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 +3 -104
  133. package/styles/daterangepicker/bootstrap.css +3 -104
  134. package/styles/daterangepicker/bootstrap4.css +3 -104
  135. package/styles/daterangepicker/bootstrap5-dark.css +5 -105
  136. package/styles/daterangepicker/bootstrap5.css +5 -105
  137. package/styles/daterangepicker/fabric-dark.css +3 -104
  138. package/styles/daterangepicker/fabric.css +3 -104
  139. package/styles/daterangepicker/fluent-dark.css +4 -105
  140. package/styles/daterangepicker/fluent.css +4 -105
  141. package/styles/daterangepicker/highcontrast-light.css +3 -104
  142. package/styles/daterangepicker/highcontrast.css +3 -104
  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 +5 -106
  158. package/styles/daterangepicker/material.css +12 -0
  159. package/styles/daterangepicker/tailwind-dark.css +5 -105
  160. package/styles/daterangepicker/tailwind.css +5 -105
  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 +13 -184
  208. package/styles/fabric.css +13 -186
  209. package/styles/fluent-dark.css +17 -186
  210. package/styles/fluent.css +17 -186
  211. package/styles/highcontrast-light.css +13 -184
  212. package/styles/highcontrast.css +13 -184
  213. package/styles/material-dark.css +15 -186
  214. package/styles/material.css +28 -3
  215. package/styles/tailwind-dark.css +19 -186
  216. package/styles/tailwind.css +19 -186
  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
@@ -118,7 +118,7 @@ let CalendarBase = class CalendarBase extends Component {
118
118
  this.calendarElement.classList.add(DEVICE);
119
119
  }
120
120
  attributes(this.calendarElement, {
121
- 'role': 'calendar'
121
+ 'data-role': 'calendar'
122
122
  });
123
123
  }
124
124
  this.createHeader();
@@ -246,7 +246,7 @@ let CalendarBase = class CalendarBase extends Component {
246
246
  }
247
247
  createContent() {
248
248
  this.contentElement = this.createElement('div', { className: CONTENT });
249
- this.table = this.createElement('table', { attrs: { tabIndex: '0', 'role': 'grid', 'aria-activedescendant': '' } });
249
+ this.table = this.createElement('table', { attrs: { tabIndex: '0', 'role': 'grid', 'aria-activedescendant': '', 'aria-labelledby': this.element.id } });
250
250
  if (this.getModuleName() === 'calendar') {
251
251
  this.element.appendChild(this.contentElement);
252
252
  }
@@ -876,7 +876,6 @@ let CalendarBase = class CalendarBase extends Component {
876
876
  const year = startYear + rowIterator;
877
877
  localDate.setFullYear(year);
878
878
  const tdEle = this.dayCell(localDate);
879
- attributes(tdEle, { 'role': 'gridcell' });
880
879
  const dayLink = this.createElement('span');
881
880
  dayLink.textContent = this.globalize.formatDate(localDate, {
882
881
  format: null, type: 'dateTime', skeleton: 'y'
@@ -917,7 +916,7 @@ let CalendarBase = class CalendarBase extends Component {
917
916
  const date = this.globalize.parseDate(this.globalize.formatDate(localDate, dateFormatOptions), dateFormatOptions);
918
917
  const value = date.valueOf();
919
918
  const attrs = {
920
- className: CELL, attrs: { 'id': '' + getUniqueID('' + value), 'aria-selected': 'false', 'role': 'gridcell' }
919
+ className: CELL, attrs: { 'id': '' + getUniqueID('' + value), 'aria-selected': 'false' }
921
920
  };
922
921
  return this.createElement('td', attrs);
923
922
  }
@@ -991,7 +990,7 @@ let CalendarBase = class CalendarBase extends Component {
991
990
  let row = count;
992
991
  let rowIterator = 0;
993
992
  for (let dayCell = 0; dayCell < elements.length / count; ++dayCell) {
994
- trEle = this.createElement('tr', { attrs: { 'role': 'row' } });
993
+ trEle = this.createElement('tr');
995
994
  for (rowIterator = 0 + rowIterator; rowIterator < row; rowIterator++) {
996
995
  if (!elements[rowIterator].classList.contains('e-week-number') && !isNullOrUndefined(elements[rowIterator].children[0])) {
997
996
  addClass([elements[rowIterator].children[0]], [LINK]);
@@ -2902,14 +2901,14 @@ class Islamic {
2902
2901
  dayLink.textContent = this.calendarInstance.globalize.formatDate(localDate, { type: 'dateTime', format: 'y', calendar: 'islamic' });
2903
2902
  if (islamicDate.year === parseInt(startHdrYr) - 1 || (year < startFullYr) || (year > endFullYr) && islamicDate.year !== parseInt(endHdrYr)) {
2904
2903
  addClass([tdEle], OTHERMONTH$1);
2905
- if (year < new Date(this.islamicInValue(this.calendarInstance.min)).getFullYear()
2906
- || year > new Date(this.islamicInValue(this.calendarInstance.max)).getFullYear()) {
2907
- addClass([tdEle], DISABLED$1);
2908
- }
2909
2904
  }
2910
2905
  else if (year < new Date(this.islamicInValue(this.calendarInstance.min)).getFullYear()
2911
2906
  || year > new Date(this.islamicInValue(this.calendarInstance.max)).getFullYear()) {
2912
2907
  addClass([tdEle], DISABLED$1);
2908
+ if (year < new Date(this.islamicInValue(this.calendarInstance.min)).getFullYear()
2909
+ || year > new Date(this.islamicInValue(this.calendarInstance.max)).getFullYear()) {
2910
+ addClass([tdEle], DISABLED$1);
2911
+ }
2913
2912
  }
2914
2913
  else if (!isNullOrUndefined(value) &&
2915
2914
  (this.getIslamicDate(localDate)).year ===
@@ -3210,10 +3209,9 @@ let DatePicker = class DatePicker extends Calendar {
3210
3209
  }
3211
3210
  createInput() {
3212
3211
  const ariaAttrs = {
3213
- 'aria-live': 'assertive', 'aria-atomic': 'true',
3214
- 'aria-haspopup': 'true', 'aria-activedescendant': 'null',
3215
- 'aria-owns': this.element.id + '_options', 'aria-expanded': 'false', 'role': 'combobox', 'autocomplete': 'off',
3216
- 'autocorrect': 'off', 'autocapitalize': 'off', 'spellcheck': 'false', 'aria-invalid': 'false'
3212
+ 'aria-live': 'assertive', 'aria-atomic': 'true', 'aria-expanded': 'false',
3213
+ 'role': 'combobox', 'autocomplete': 'off', 'autocorrect': 'off',
3214
+ 'autocapitalize': 'off', 'spellcheck': 'false', 'aria-invalid': 'false'
3217
3215
  };
3218
3216
  if (this.getModuleName() === 'datepicker') {
3219
3217
  const l10nLocale = { placeholder: this.placeholder };
@@ -4411,8 +4409,7 @@ let DatePicker = class DatePicker extends Calendar {
4411
4409
  }
4412
4410
  const ariaAttrs = {
4413
4411
  'aria-live': 'assertive', 'aria-atomic': 'true', 'aria-disabled': 'true',
4414
- 'aria-haspopup': 'true', 'aria-activedescendant': 'null',
4415
- 'aria-owns': this.element.id + '_options', 'aria-expanded': 'false', 'role': 'combobox', 'autocomplete': 'off',
4412
+ 'aria-expanded': 'false', 'role': 'combobox', 'autocomplete': 'off',
4416
4413
  'autocorrect': 'off', 'autocapitalize': 'off', 'spellcheck': 'false'
4417
4414
  };
4418
4415
  if (this.inputElement) {
@@ -4736,11 +4733,15 @@ let DatePicker = class DatePicker extends Calendar {
4736
4733
  setAriaAttributes() {
4737
4734
  if (this.isCalendar()) {
4738
4735
  Input.addAttributes({ 'aria-expanded': 'true' }, this.inputElement);
4739
- attributes(this.inputElement, { 'aria-activedescendant': '' + this.setActiveDescendant() });
4736
+ attributes(this.inputElement, { 'aria-owns': this.inputElement.id + '_options' });
4737
+ if (this.value) {
4738
+ attributes(this.inputElement, { 'aria-activedescendant': '' + this.setActiveDescendant() });
4739
+ }
4740
4740
  }
4741
4741
  else {
4742
4742
  Input.addAttributes({ 'aria-expanded': 'false' }, this.inputElement);
4743
- attributes(this.inputElement, { 'aria-activedescendant': 'null' });
4743
+ this.inputElement.removeAttribute('aria-owns');
4744
+ this.inputElement.removeAttribute('aria-activedescendant');
4744
4745
  }
4745
4746
  }
4746
4747
  errorClass() {
@@ -4896,7 +4897,7 @@ let DatePicker = class DatePicker extends Calendar {
4896
4897
  }
4897
4898
  break;
4898
4899
  }
4899
- if (!this.isDynamicValueChanged) {
4900
+ if (!this.isDynamicValueChanged && !this.isIconClicked) {
4900
4901
  this.hide(null);
4901
4902
  }
4902
4903
  this.isDynamicValueChanged = false;
@@ -5115,6 +5116,7 @@ let DateRangePicker = class DateRangePicker extends CalendarBase {
5115
5116
  this.invalidValueString = null;
5116
5117
  this.isAngular = false;
5117
5118
  this.preventChange = false;
5119
+ this.isPropChanged = false;
5118
5120
  this.dateRangeOptions = options;
5119
5121
  }
5120
5122
  /**
@@ -7281,7 +7283,7 @@ let DateRangePicker = class DateRangePicker extends CalendarBase {
7281
7283
  if (this.enableRtl) {
7282
7284
  this.calendarElement.classList.add(RTL$1);
7283
7285
  }
7284
- attributes(this.calendarElement, { 'role': 'calendar' });
7286
+ attributes(this.calendarElement, { 'data-role': 'calendar' });
7285
7287
  super.createHeader();
7286
7288
  super.createContent();
7287
7289
  }
@@ -7839,7 +7841,7 @@ let DateRangePicker = class DateRangePicker extends CalendarBase {
7839
7841
  if (!isUndefined(this.presets[0].start && this.presets[0].end && this.presets[0].label)) {
7840
7842
  this.presetElement = this.createElement('div', { className: PRESETS, attrs: { 'tabindex': '0' } });
7841
7843
  const listTag = ListBase.createList(this.createElement, this.presetsItem, null, true);
7842
- attributes(listTag, { 'role': 'listbox', 'aria-hidden': 'false', 'id': this.element.id + '_options' });
7844
+ attributes(listTag, { 'role': 'listbox', 'aria-hidden': 'false', 'id': this.element.id + '_options', 'tabindex': '0' });
7843
7845
  this.presetElement.appendChild(listTag);
7844
7846
  this.popupWrapper.appendChild(this.presetElement);
7845
7847
  const customElement = this.presetElement.querySelector('#custom_range');
@@ -7899,7 +7901,13 @@ let DateRangePicker = class DateRangePicker extends CalendarBase {
7899
7901
  enableRtl: this.enableRtl,
7900
7902
  zIndex: this.zIndex,
7901
7903
  open: () => {
7902
- attributes(this.inputElement, { 'aria-expanded': 'true' });
7904
+ attributes(this.inputElement, { 'aria-expanded': 'true', 'aria-owns': this.inputElement.id + '_options' });
7905
+ if (this.value) {
7906
+ attributes(this.inputElement, { 'aria-activedescendant': this.inputElement.id });
7907
+ }
7908
+ else {
7909
+ this.inputElement.removeAttribute('aria-activedescendant');
7910
+ }
7903
7911
  addClass([this.inputWrapper.buttons[0]], ACTIVE$1);
7904
7912
  if (!this.isMobile) {
7905
7913
  if (this.cancelButton) {
@@ -7947,6 +7955,8 @@ let DateRangePicker = class DateRangePicker extends CalendarBase {
7947
7955
  },
7948
7956
  close: () => {
7949
7957
  attributes(this.inputElement, { 'aria-expanded': 'false' });
7958
+ this.inputElement.removeAttribute('aria-owns');
7959
+ this.inputElement.removeAttribute('aria-activedescendant');
7950
7960
  removeClass([this.inputWrapper.buttons[0]], ACTIVE$1);
7951
7961
  if (this.isRangeIconClicked) {
7952
7962
  this.inputWrapper.container.children[1].focus();
@@ -8213,7 +8223,7 @@ let DateRangePicker = class DateRangePicker extends CalendarBase {
8213
8223
  }
8214
8224
  const target = e.target;
8215
8225
  if (!this.inputWrapper.container.contains(target) ||
8216
- (!isNullOrUndefined(this.popupObj) && !closest(target, '[id="' + this.popupWrapper.id + '"]') && e.type === 'mousedown')) {
8226
+ (!isNullOrUndefined(this.popupObj) && !closest(target, '[id="' + this.popupWrapper.id + '"]') && e.type !== 'mousedown')) {
8217
8227
  if (e.type !== 'touchstart' && ((e.type === 'mousedown') ||
8218
8228
  this.closeEventArgs && !this.closeEventArgs.cancel)) {
8219
8229
  e.preventDefault();
@@ -8252,9 +8262,8 @@ let DateRangePicker = class DateRangePicker extends CalendarBase {
8252
8262
  buttons: [DATERANGEICON]
8253
8263
  }, this.createElement);
8254
8264
  attributes(this.inputElement, {
8255
- 'aria-readonly': this.readonly ? 'true' : 'false', 'tabindex': '0', 'aria-haspopup': 'true',
8256
- 'aria-activedescendant': 'null', 'aria-owns': this.element.id + '_popup', 'aria-expanded': 'false',
8257
- 'role': 'combobox', 'autocomplete': 'off', 'aria-disabled': !this.enabled ? 'true' : 'false',
8265
+ 'tabindex': '0', 'aria-expanded': 'false', 'role': 'combobox',
8266
+ 'autocomplete': 'off', 'aria-disabled': !this.enabled ? 'true' : 'false',
8258
8267
  'autocorrect': 'off', 'autocapitalize': 'off', 'spellcheck': 'false'
8259
8268
  });
8260
8269
  Input.addAttributes({ 'aria-label': 'select' }, this.inputWrapper.buttons[0]);
@@ -8685,9 +8694,8 @@ let DateRangePicker = class DateRangePicker extends CalendarBase {
8685
8694
  this.unBindEvents();
8686
8695
  this.hide(null);
8687
8696
  const ariaAttrs = {
8688
- 'aria-readonly': this.readonly ? 'true' : 'false', 'tabindex': '0', 'aria-haspopup': 'true',
8689
- 'aria-activedescendant': 'null', 'aria-owns': this.element.id + '_popup', 'aria-expanded': 'false',
8690
- 'role': 'combobox', 'autocomplete': 'off', 'aria-disabled': !this.enabled ? 'true' : 'false',
8697
+ 'tabindex': '0', 'aria-expanded': 'false', 'role': 'combobox',
8698
+ 'autocomplete': 'off', 'aria-disabled': !this.enabled ? 'true' : 'false',
8691
8699
  'autocorrect': 'off', 'autocapitalize': 'off', 'aria-invalid': 'false', 'spellcheck': 'false'
8692
8700
  };
8693
8701
  if (this.inputElement) {
@@ -9043,9 +9051,6 @@ let DateRangePicker = class DateRangePicker extends CalendarBase {
9043
9051
  const format = { format: this.formatString, type: 'date', skeleton: 'yMd' };
9044
9052
  for (const prop of Object.keys(newProp)) {
9045
9053
  const openPopup = ['maxDays', 'minDays', 'value'];
9046
- if (openPopup.indexOf(prop) < 0) {
9047
- this.hide(null);
9048
- }
9049
9054
  switch (prop) {
9050
9055
  case 'width':
9051
9056
  this.setEleWidth(this.width);
@@ -9066,7 +9071,6 @@ let DateRangePicker = class DateRangePicker extends CalendarBase {
9066
9071
  break;
9067
9072
  case 'readonly':
9068
9073
  Input.setReadonly(this.readonly, this.inputElement);
9069
- this.inputElement.setAttribute('aria-readonly', '' + this.readonly);
9070
9074
  this.setRangeAllowEdit();
9071
9075
  break;
9072
9076
  case 'cssClass':
@@ -9256,7 +9260,13 @@ let DateRangePicker = class DateRangePicker extends CalendarBase {
9256
9260
  this.setProperties({ depth: newProp.depth }, true);
9257
9261
  this.refreshChange();
9258
9262
  break;
9263
+ default:
9264
+ this.isPropChanged = true;
9265
+ }
9266
+ if (openPopup.indexOf(prop) < 0 && !this.isPropChanged) {
9267
+ this.hide(null);
9259
9268
  }
9269
+ this.isPropChanged = false;
9260
9270
  }
9261
9271
  }
9262
9272
  };
@@ -9709,9 +9719,10 @@ let TimePicker = class TimePicker extends Component {
9709
9719
  }, this.createElement);
9710
9720
  this.inputWrapper.container.style.width = this.setWidth(this.width);
9711
9721
  attributes(this.inputElement, {
9712
- 'aria-haspopup': 'true', 'aria-autocomplete': 'list', 'tabindex': '0', 'aria-activedescendant': 'null',
9713
- 'aria-owns': this.element.id + '_options', 'aria-expanded': 'false', 'role': 'combobox', 'autocomplete': 'off',
9714
- 'autocorrect': 'off', 'autocapitalize': 'off', 'spellcheck': 'false', 'aria-disabled': 'false', 'aria-invalid': 'false'
9722
+ 'aria-autocomplete': 'list', 'tabindex': '0',
9723
+ 'aria-expanded': 'false', 'role': 'combobox', 'autocomplete': 'off',
9724
+ 'autocorrect': 'off', 'autocapitalize': 'off', 'spellcheck': 'false',
9725
+ 'aria-disabled': 'false', 'aria-invalid': 'false'
9715
9726
  });
9716
9727
  if (!this.isNullOrEmpty(this.inputStyle)) {
9717
9728
  Input.addAttributes({ 'style': this.inputStyle }, this.inputElement);
@@ -9812,9 +9823,10 @@ let TimePicker = class TimePicker extends Component {
9812
9823
  this.hide();
9813
9824
  this.unBindEvents();
9814
9825
  const ariaAttribute = {
9815
- 'aria-haspopup': 'true', 'aria-autocomplete': 'list', 'tabindex': '0', 'aria-activedescendant': 'null',
9816
- 'aria-owns': this.element.id + '_options', 'aria-expanded': 'false', 'role': 'combobox', 'autocomplete': 'off',
9817
- 'autocorrect': 'off', 'autocapitalize': 'off', 'spellcheck': 'false', 'aria-disabled': 'true', 'aria-invalid': 'false'
9826
+ 'aria-autocomplete': 'list', 'tabindex': '0',
9827
+ 'aria-expanded': 'false', 'role': 'combobox', 'autocomplete': 'off',
9828
+ 'autocorrect': 'off', 'autocapitalize': 'off', 'spellcheck': 'false',
9829
+ 'aria-disabled': 'true', 'aria-invalid': 'false'
9818
9830
  };
9819
9831
  if (this.inputElement) {
9820
9832
  Input.removeAttributes(ariaAttribute, this.inputElement);
@@ -9914,7 +9926,7 @@ let TimePicker = class TimePicker extends Component {
9914
9926
  }, close: () => {
9915
9927
  removeClass([this.inputWrapper.buttons[0]], SELECTED$4);
9916
9928
  this.unWireListEvents();
9917
- this.inputElement.setAttribute('aria-activedescendant', 'null');
9929
+ this.inputElement.removeAttribute('aria-activedescendant');
9918
9930
  remove(this.popupObj.element);
9919
9931
  this.popupObj.destroy();
9920
9932
  this.popupWrapper.innerHTML = '';
@@ -10403,6 +10415,8 @@ let TimePicker = class TimePicker extends Component {
10403
10415
  this.popupObj.hide(new Animation(animModel));
10404
10416
  removeClass([this.inputWrapper.container], [ICONANIMATION]);
10405
10417
  attributes(this.inputElement, { 'aria-expanded': 'false' });
10418
+ this.inputElement.removeAttribute('aria-owns');
10419
+ this.inputElement.removeAttribute('aria-activedescendant');
10406
10420
  EventHandler.remove(document, 'mousedown touchstart', this.documentClickHandler);
10407
10421
  }
10408
10422
  if (Browser.isDevice && this.modal) {
@@ -11165,11 +11179,11 @@ let TimePicker = class TimePicker extends Component {
11165
11179
  this.clearIconState();
11166
11180
  }
11167
11181
  setActiveDescendant() {
11168
- if (!isNullOrUndefined(this.selectedElement)) {
11182
+ if (!isNullOrUndefined(this.selectedElement) && this.value) {
11169
11183
  attributes(this.inputElement, { 'aria-activedescendant': this.selectedElement.getAttribute('id') });
11170
11184
  }
11171
11185
  else {
11172
- attributes(this.inputElement, { 'aria-activedescendant': 'null' });
11186
+ this.inputElement.removeAttribute('aria-activedescendant');
11173
11187
  }
11174
11188
  }
11175
11189
  removeSelection() {
@@ -11258,7 +11272,7 @@ let TimePicker = class TimePicker extends Component {
11258
11272
  return value;
11259
11273
  }
11260
11274
  createListItems() {
11261
- this.listWrapper = this.createElement('div', { className: CONTENT$2, attrs: { 'tabindex': '0' } });
11275
+ this.listWrapper = this.createElement('div', { className: CONTENT$2, attrs: { 'tabindex': '-1' } });
11262
11276
  let start;
11263
11277
  const interval = this.step * 60000;
11264
11278
  const listItems = [];
@@ -11288,7 +11302,7 @@ let TimePicker = class TimePicker extends Component {
11288
11302
  }
11289
11303
  };
11290
11304
  this.listTag = ListBase.createList(this.createElement, listItems, listBaseOptions, true);
11291
- attributes(this.listTag, { 'role': 'listbox', 'aria-hidden': 'false', 'id': this.element.id + '_options' });
11305
+ attributes(this.listTag, { 'role': 'listbox', 'aria-hidden': 'false', 'id': this.element.id + '_options', 'tabindex': '0' });
11292
11306
  append([this.listTag], this.listWrapper);
11293
11307
  }
11294
11308
  documentClickHandler(event) {
@@ -11500,6 +11514,7 @@ let TimePicker = class TimePicker extends Component {
11500
11514
  }
11501
11515
  this.setActiveDescendant();
11502
11516
  attributes(this.inputElement, { 'aria-expanded': 'true' });
11517
+ attributes(this.inputElement, { 'aria-owns': this.inputElement.id + '_options' });
11503
11518
  addClass([this.inputWrapper.container], FOCUS);
11504
11519
  EventHandler.add(document, 'mousedown touchstart', this.documentClickHandler, this);
11505
11520
  this.setOverlayIndex(this.mobileTimePopupWrap, this.popupObj.element, this.modal, Browser.isDevice);
@@ -11612,7 +11627,6 @@ let TimePicker = class TimePicker extends Component {
11612
11627
  switch (prop) {
11613
11628
  case 'placeholder':
11614
11629
  Input.setPlaceholder(newProp.placeholder, this.inputElement);
11615
- this.inputElement.setAttribute('aria-placeholder', newProp.placeholder);
11616
11630
  break;
11617
11631
  case 'readonly':
11618
11632
  Input.setReadonly(this.readonly, this.inputElement, this.floatLabelType);
@@ -11999,13 +12013,11 @@ let DateTimePicker = class DateTimePicker extends DatePicker {
11999
12013
  }
12000
12014
  const ariaAttribute = {
12001
12015
  'aria-live': 'assertive', 'aria-atomic': 'true', 'aria-invalid': 'false',
12002
- 'aria-haspopup': 'true', 'aria-activedescendant': 'null',
12003
12016
  'autocorrect': 'off', 'autocapitalize': 'off', 'spellcheck': 'false',
12004
- 'aria-owns': this.element.id + '_options', 'aria-expanded': 'false', 'role': 'combobox', 'autocomplete': 'off'
12017
+ 'aria-expanded': 'false', 'role': 'combobox', 'autocomplete': 'off'
12005
12018
  };
12006
12019
  if (this.inputElement) {
12007
12020
  Input.removeAttributes(ariaAttribute, this.inputElement);
12008
- this.inputElement.removeAttribute('aria-placeholder');
12009
12021
  }
12010
12022
  if (this.isCalendar()) {
12011
12023
  if (this.popupWrapper) {
@@ -12419,6 +12431,7 @@ let DateTimePicker = class DateTimePicker extends DatePicker {
12419
12431
  }
12420
12432
  addClass([this.inputWrapper.container], [ICONANIMATION$1]);
12421
12433
  attributes(this.inputElement, { 'aria-expanded': 'true' });
12434
+ attributes(this.inputElement, { 'aria-owns': this.inputElement.id + '_options' });
12422
12435
  EventHandler.add(document, 'mousedown touchstart', this.documentClickHandler, this);
12423
12436
  }
12424
12437
  });
@@ -12482,7 +12495,7 @@ let DateTimePicker = class DateTimePicker extends DatePicker {
12482
12495
  }, close: () => {
12483
12496
  removeClass([this.timeIcon], ACTIVE$2);
12484
12497
  this.unWireTimeListEvents();
12485
- this.inputElement.setAttribute('aria-activedescendant', 'null');
12498
+ this.inputElement.removeAttribute('aria-activedescendant');
12486
12499
  remove(this.popupObject.element);
12487
12500
  this.popupObject.destroy();
12488
12501
  this.dateTimeWrapper.innerHTML = '';
@@ -12698,11 +12711,11 @@ let DateTimePicker = class DateTimePicker extends DatePicker {
12698
12711
  }
12699
12712
  }
12700
12713
  setTimeActiveDescendant() {
12701
- if (!isNullOrUndefined(this.selectedElement)) {
12714
+ if (!isNullOrUndefined(this.selectedElement) && this.value) {
12702
12715
  attributes(this.inputElement, { 'aria-activedescendant': this.selectedElement.getAttribute('id') });
12703
12716
  }
12704
12717
  else {
12705
- attributes(this.inputElement, { 'aria-activedescendant': 'null' });
12718
+ this.inputElement.removeAttribute('aria-activedescendant');
12706
12719
  }
12707
12720
  }
12708
12721
  addTimeSelection() {
@@ -12860,6 +12873,7 @@ let DateTimePicker = class DateTimePicker extends DatePicker {
12860
12873
  this.popupObject.hide(new Animation(animModel));
12861
12874
  this.inputWrapper.container.classList.remove(ICONANIMATION$1);
12862
12875
  attributes(this.inputElement, { 'aria-expanded': 'false' });
12876
+ this.inputElement.removeAttribute('aria-owns');
12863
12877
  EventHandler.remove(document, 'mousedown touchstart', this.documentClickHandler);
12864
12878
  }
12865
12879
  }
@@ -13245,7 +13259,6 @@ let DateTimePicker = class DateTimePicker extends DatePicker {
13245
13259
  break;
13246
13260
  case 'placeholder':
13247
13261
  Input.setPlaceholder(newProp.placeholder, this.inputElement);
13248
- this.inputElement.setAttribute('aria-placeholder', newProp.placeholder);
13249
13262
  break;
13250
13263
  case 'enabled':
13251
13264
  Input.setEnabled(this.enabled, this.inputElement);
@@ -13304,7 +13317,7 @@ let DateTimePicker = class DateTimePicker extends DatePicker {
13304
13317
  super.onPropertyChanged(newProp, oldProp);
13305
13318
  break;
13306
13319
  }
13307
- if (!this.isDynamicValueChanged) {
13320
+ if (!this.isDynamicValueChanged && !this.isIconClicked) {
13308
13321
  this.hide(null);
13309
13322
  }
13310
13323
  this.isDynamicValueChanged = false;