@syncfusion/ej2-calendars 21.2.10 → 22.1.34

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 (264) hide show
  1. package/.eslintrc.json +1 -0
  2. package/CHANGELOG.md +7 -31
  3. package/dist/ej2-calendars.min.js +2 -2
  4. package/dist/ej2-calendars.umd.min.js +2 -2
  5. package/dist/ej2-calendars.umd.min.js.map +1 -1
  6. package/dist/es6/ej2-calendars.es2015.js +246 -19
  7. package/dist/es6/ej2-calendars.es2015.js.map +1 -1
  8. package/dist/es6/ej2-calendars.es5.js +245 -18
  9. package/dist/es6/ej2-calendars.es5.js.map +1 -1
  10. package/dist/global/ej2-calendars.min.js +2 -2
  11. package/dist/global/ej2-calendars.min.js.map +1 -1
  12. package/dist/global/index.d.ts +1 -1
  13. package/package.json +10 -10
  14. package/src/calendar/calendar-model.d.ts +1 -1
  15. package/src/calendar/calendar.d.ts +5 -5
  16. package/src/calendar/calendar.js +2 -2
  17. package/src/datepicker/datepicker-model.d.ts +8 -1
  18. package/src/datepicker/datepicker.d.ts +13 -0
  19. package/src/datepicker/datepicker.js +70 -3
  20. package/src/daterangepicker/daterangepicker-model.d.ts +8 -1
  21. package/src/daterangepicker/daterangepicker.d.ts +13 -0
  22. package/src/daterangepicker/daterangepicker.js +91 -6
  23. package/src/datetimepicker/datetimepicker-model.d.ts +8 -1
  24. package/src/datetimepicker/datetimepicker.d.ts +10 -1
  25. package/src/datetimepicker/datetimepicker.js +50 -5
  26. package/src/maskbase/masked-date-time.js +6 -1
  27. package/src/timepicker/timepicker-model.d.ts +7 -0
  28. package/src/timepicker/timepicker.d.ts +7 -0
  29. package/src/timepicker/timepicker.js +27 -2
  30. package/styles/bootstrap-dark.css +715 -19
  31. package/styles/bootstrap.css +711 -15
  32. package/styles/bootstrap4.css +711 -16
  33. package/styles/bootstrap5-dark.css +708 -12
  34. package/styles/bootstrap5.css +708 -12
  35. package/styles/calendar/_bootstrap-dark-definition.scss +1 -1
  36. package/styles/calendar/_bootstrap4-definition.scss +1 -1
  37. package/styles/calendar/_layout.scss +64 -19
  38. package/styles/calendar/_material-definition.scss +1 -1
  39. package/styles/calendar/_material3-dark-definition.scss +1 -0
  40. package/styles/calendar/_material3-definition.scss +195 -0
  41. package/styles/calendar/_theme.scss +2 -1
  42. package/styles/calendar/bootstrap-dark.css +3 -2
  43. package/styles/calendar/bootstrap.css +2 -1
  44. package/styles/calendar/bootstrap4.css +3 -2
  45. package/styles/calendar/bootstrap5-dark.css +2 -1
  46. package/styles/calendar/bootstrap5.css +2 -1
  47. package/styles/calendar/fabric-dark.css +2 -1
  48. package/styles/calendar/fabric.css +2 -1
  49. package/styles/calendar/fluent-dark.css +2 -1
  50. package/styles/calendar/fluent.css +2 -1
  51. package/styles/calendar/highcontrast-light.css +2 -1
  52. package/styles/calendar/highcontrast.css +2 -1
  53. package/styles/calendar/icons/_material3-dark.scss +1 -0
  54. package/styles/calendar/material-dark.css +2 -1
  55. package/styles/calendar/material.css +3 -2
  56. package/styles/calendar/material3-dark.css +895 -0
  57. package/styles/calendar/material3-dark.scss +6 -0
  58. package/styles/calendar/material3.css +951 -0
  59. package/styles/calendar/material3.scss +6 -0
  60. package/styles/calendar/tailwind-dark.css +2 -1
  61. package/styles/calendar/tailwind.css +2 -1
  62. package/styles/datepicker/_bootstrap-dark-definition.scss +71 -11
  63. package/styles/datepicker/_bootstrap-definition.scss +71 -9
  64. package/styles/datepicker/_bootstrap4-definition.scss +70 -9
  65. package/styles/datepicker/_bootstrap5-definition.scss +67 -6
  66. package/styles/datepicker/_fabric-dark-definition.scss +70 -9
  67. package/styles/datepicker/_fabric-definition.scss +70 -9
  68. package/styles/datepicker/_fluent-definition.scss +67 -6
  69. package/styles/datepicker/_fusionnew-definition.scss +67 -6
  70. package/styles/datepicker/_highcontrast-definition.scss +69 -8
  71. package/styles/datepicker/_highcontrast-light-definition.scss +69 -8
  72. package/styles/datepicker/_layout.scss +214 -66
  73. package/styles/datepicker/_material-dark-definition.scss +67 -6
  74. package/styles/datepicker/_material-definition.scss +67 -6
  75. package/styles/datepicker/_material3-dark-definition.scss +1 -0
  76. package/styles/datepicker/_material3-definition.scss +116 -0
  77. package/styles/datepicker/_tailwind-definition.scss +67 -6
  78. package/styles/datepicker/_theme.scss +0 -1
  79. package/styles/datepicker/bootstrap-dark.css +262 -8
  80. package/styles/datepicker/bootstrap.css +262 -8
  81. package/styles/datepicker/bootstrap4.css +261 -8
  82. package/styles/datepicker/bootstrap5-dark.css +259 -5
  83. package/styles/datepicker/bootstrap5.css +259 -5
  84. package/styles/datepicker/fabric-dark.css +255 -8
  85. package/styles/datepicker/fabric.css +255 -8
  86. package/styles/datepicker/fluent-dark.css +258 -5
  87. package/styles/datepicker/fluent.css +258 -5
  88. package/styles/datepicker/highcontrast-light.css +260 -7
  89. package/styles/datepicker/highcontrast.css +260 -7
  90. package/styles/datepicker/icons/_bootstrap-dark.scss +21 -0
  91. package/styles/datepicker/icons/_bootstrap.scss +20 -0
  92. package/styles/datepicker/icons/_bootstrap4.scss +20 -0
  93. package/styles/datepicker/icons/_bootstrap5.scss +20 -0
  94. package/styles/datepicker/icons/_fabric-dark.scss +13 -0
  95. package/styles/datepicker/icons/_fabric.scss +13 -0
  96. package/styles/datepicker/icons/_fluent.scss +20 -0
  97. package/styles/datepicker/icons/_fusionnew.scss +20 -0
  98. package/styles/datepicker/icons/_highcontrast-light.scss +20 -0
  99. package/styles/datepicker/icons/_highcontrast.scss +20 -0
  100. package/styles/datepicker/icons/_material-dark.scss +13 -0
  101. package/styles/datepicker/icons/_material.scss +13 -0
  102. package/styles/datepicker/icons/_material3-dark.scss +1 -0
  103. package/styles/datepicker/icons/_material3.scss +23 -0
  104. package/styles/datepicker/icons/_tailwind.scss +20 -0
  105. package/styles/datepicker/material-dark.css +252 -5
  106. package/styles/datepicker/material.css +204 -40
  107. package/styles/datepicker/material3-dark.css +510 -0
  108. package/styles/datepicker/material3-dark.scss +8 -0
  109. package/styles/datepicker/material3.css +566 -0
  110. package/styles/datepicker/material3.scss +8 -0
  111. package/styles/datepicker/tailwind-dark.css +258 -5
  112. package/styles/datepicker/tailwind.css +258 -5
  113. package/styles/daterangepicker/_bootstrap-dark-definition.scss +67 -2
  114. package/styles/daterangepicker/_bootstrap-definition.scss +65 -0
  115. package/styles/daterangepicker/_bootstrap4-definition.scss +65 -0
  116. package/styles/daterangepicker/_bootstrap5-definition.scss +65 -0
  117. package/styles/daterangepicker/_fabric-dark-definition.scss +65 -0
  118. package/styles/daterangepicker/_fabric-definition.scss +65 -0
  119. package/styles/daterangepicker/_fluent-definition.scss +66 -1
  120. package/styles/daterangepicker/_fusionnew-definition.scss +65 -0
  121. package/styles/daterangepicker/_highcontrast-definition.scss +65 -0
  122. package/styles/daterangepicker/_highcontrast-light-definition.scss +65 -0
  123. package/styles/daterangepicker/_layout.scss +325 -116
  124. package/styles/daterangepicker/_material-dark-definition.scss +65 -0
  125. package/styles/daterangepicker/_material-definition.scss +65 -0
  126. package/styles/daterangepicker/_material3-dark-definition.scss +1 -0
  127. package/styles/daterangepicker/_material3-definition.scss +278 -0
  128. package/styles/daterangepicker/_tailwind-definition.scss +65 -0
  129. package/styles/daterangepicker/_theme.scss +21 -1
  130. package/styles/daterangepicker/bootstrap-dark.css +358 -7
  131. package/styles/daterangepicker/bootstrap.css +355 -4
  132. package/styles/daterangepicker/bootstrap4.css +355 -4
  133. package/styles/daterangepicker/bootstrap5-dark.css +355 -4
  134. package/styles/daterangepicker/bootstrap5.css +355 -4
  135. package/styles/daterangepicker/fabric-dark.css +355 -4
  136. package/styles/daterangepicker/fabric.css +355 -4
  137. package/styles/daterangepicker/fluent-dark.css +356 -5
  138. package/styles/daterangepicker/fluent.css +356 -5
  139. package/styles/daterangepicker/highcontrast-light.css +355 -4
  140. package/styles/daterangepicker/highcontrast.css +355 -4
  141. package/styles/daterangepicker/icons/_bootstrap-dark.scss +20 -0
  142. package/styles/daterangepicker/icons/_bootstrap.scss +20 -0
  143. package/styles/daterangepicker/icons/_bootstrap4.scss +20 -0
  144. package/styles/daterangepicker/icons/_bootstrap5.scss +20 -0
  145. package/styles/daterangepicker/icons/_fabric-dark.scss +20 -0
  146. package/styles/daterangepicker/icons/_fabric.scss +20 -0
  147. package/styles/daterangepicker/icons/_fluent.scss +20 -0
  148. package/styles/daterangepicker/icons/_fusionnew.scss +20 -0
  149. package/styles/daterangepicker/icons/_highcontrast-light.scss +20 -0
  150. package/styles/daterangepicker/icons/_highcontrast.scss +20 -0
  151. package/styles/daterangepicker/icons/_material-dark.scss +20 -0
  152. package/styles/daterangepicker/icons/_material.scss +20 -0
  153. package/styles/daterangepicker/icons/_material3-dark.scss +1 -0
  154. package/styles/daterangepicker/icons/_material3.scss +32 -2
  155. package/styles/daterangepicker/icons/_tailwind.scss +20 -0
  156. package/styles/daterangepicker/material-dark.css +355 -4
  157. package/styles/daterangepicker/material.css +309 -70
  158. package/styles/daterangepicker/material3-dark.css +1330 -0
  159. package/styles/daterangepicker/material3-dark.scss +8 -0
  160. package/styles/daterangepicker/material3.css +1386 -0
  161. package/styles/daterangepicker/material3.scss +8 -0
  162. package/styles/daterangepicker/tailwind-dark.css +355 -4
  163. package/styles/daterangepicker/tailwind.css +355 -4
  164. package/styles/datetimepicker/_bootstrap-dark-definition.scss +5 -0
  165. package/styles/datetimepicker/_bootstrap-definition.scss +5 -0
  166. package/styles/datetimepicker/_bootstrap4-definition.scss +5 -0
  167. package/styles/datetimepicker/_bootstrap5-definition.scss +5 -0
  168. package/styles/datetimepicker/_fabric-dark-definition.scss +5 -0
  169. package/styles/datetimepicker/_fabric-definition.scss +5 -0
  170. package/styles/datetimepicker/_fluent-definition.scss +5 -0
  171. package/styles/datetimepicker/_fusionnew-definition.scss +5 -0
  172. package/styles/datetimepicker/_highcontrast-definition.scss +5 -0
  173. package/styles/datetimepicker/_highcontrast-light-definition.scss +5 -0
  174. package/styles/datetimepicker/_layout.scss +47 -4
  175. package/styles/datetimepicker/_material-dark-definition.scss +5 -0
  176. package/styles/datetimepicker/_material-definition.scss +5 -0
  177. package/styles/datetimepicker/_material3-dark-definition.scss +1 -0
  178. package/styles/datetimepicker/_material3-definition.scss +71 -0
  179. package/styles/datetimepicker/_tailwind-definition.scss +5 -0
  180. package/styles/datetimepicker/bootstrap-dark.css +8 -2
  181. package/styles/datetimepicker/bootstrap.css +8 -2
  182. package/styles/datetimepicker/bootstrap4.css +8 -2
  183. package/styles/datetimepicker/bootstrap5-dark.css +8 -2
  184. package/styles/datetimepicker/bootstrap5.css +8 -2
  185. package/styles/datetimepicker/fabric-dark.css +8 -2
  186. package/styles/datetimepicker/fabric.css +8 -2
  187. package/styles/datetimepicker/fluent-dark.css +8 -2
  188. package/styles/datetimepicker/fluent.css +8 -2
  189. package/styles/datetimepicker/highcontrast-light.css +8 -2
  190. package/styles/datetimepicker/highcontrast.css +8 -2
  191. package/styles/datetimepicker/icons/_material3-dark.scss +1 -0
  192. package/styles/datetimepicker/material-dark.css +8 -2
  193. package/styles/datetimepicker/material.css +8 -2
  194. package/styles/datetimepicker/material3-dark.css +283 -0
  195. package/styles/datetimepicker/material3-dark.scss +9 -0
  196. package/styles/datetimepicker/material3.css +339 -0
  197. package/styles/datetimepicker/material3.scss +9 -0
  198. package/styles/datetimepicker/tailwind-dark.css +8 -2
  199. package/styles/datetimepicker/tailwind.css +8 -2
  200. package/styles/fabric-dark.css +704 -15
  201. package/styles/fabric.css +704 -15
  202. package/styles/fluent-dark.css +708 -13
  203. package/styles/fluent.css +708 -13
  204. package/styles/highcontrast-light.css +709 -14
  205. package/styles/highcontrast.css +709 -14
  206. package/styles/material-dark.css +701 -12
  207. package/styles/material.css +608 -114
  208. package/styles/material3-dark.css +3179 -0
  209. package/styles/material3-dark.scss +7 -0
  210. package/styles/material3.css +3235 -0
  211. package/styles/material3.scss +7 -0
  212. package/styles/tailwind-dark.css +707 -12
  213. package/styles/tailwind.css +707 -12
  214. package/styles/timepicker/_bootstrap-dark-definition.scss +28 -0
  215. package/styles/timepicker/_bootstrap-definition.scss +28 -0
  216. package/styles/timepicker/_bootstrap4-definition.scss +28 -0
  217. package/styles/timepicker/_bootstrap5-definition.scss +28 -0
  218. package/styles/timepicker/_fabric-dark-definition.scss +28 -0
  219. package/styles/timepicker/_fabric-definition.scss +28 -0
  220. package/styles/timepicker/_fluent-definition.scss +28 -0
  221. package/styles/timepicker/_fusionnew-definition.scss +28 -0
  222. package/styles/timepicker/_highcontrast-definition.scss +28 -0
  223. package/styles/timepicker/_highcontrast-light-definition.scss +28 -0
  224. package/styles/timepicker/_layout.scss +86 -1
  225. package/styles/timepicker/_material-dark-definition.scss +28 -0
  226. package/styles/timepicker/_material-definition.scss +28 -0
  227. package/styles/timepicker/_material3-dark-definition.scss +1 -0
  228. package/styles/timepicker/_material3-definition.scss +99 -0
  229. package/styles/timepicker/_tailwind-definition.scss +28 -0
  230. package/styles/timepicker/_theme.scss +13 -0
  231. package/styles/timepicker/bootstrap-dark.css +84 -0
  232. package/styles/timepicker/bootstrap.css +84 -0
  233. package/styles/timepicker/bootstrap4.css +84 -0
  234. package/styles/timepicker/bootstrap5-dark.css +84 -0
  235. package/styles/timepicker/bootstrap5.css +84 -0
  236. package/styles/timepicker/fabric-dark.css +84 -0
  237. package/styles/timepicker/fabric.css +84 -0
  238. package/styles/timepicker/fluent-dark.css +84 -0
  239. package/styles/timepicker/fluent.css +84 -0
  240. package/styles/timepicker/highcontrast-light.css +84 -0
  241. package/styles/timepicker/highcontrast.css +84 -0
  242. package/styles/timepicker/icons/_bootstrap-dark.scss +12 -0
  243. package/styles/timepicker/icons/_bootstrap.scss +12 -0
  244. package/styles/timepicker/icons/_bootstrap4.scss +12 -0
  245. package/styles/timepicker/icons/_bootstrap5.scss +12 -0
  246. package/styles/timepicker/icons/_fabric-dark.scss +12 -0
  247. package/styles/timepicker/icons/_fabric.scss +12 -0
  248. package/styles/timepicker/icons/_fluent.scss +12 -0
  249. package/styles/timepicker/icons/_fusionnew.scss +12 -0
  250. package/styles/timepicker/icons/_highcontrast-light.scss +12 -0
  251. package/styles/timepicker/icons/_highcontrast.scss +12 -0
  252. package/styles/timepicker/icons/_material-dark.scss +12 -0
  253. package/styles/timepicker/icons/_material.scss +12 -0
  254. package/styles/timepicker/icons/_material3-dark.scss +1 -0
  255. package/styles/timepicker/icons/_material3.scss +12 -0
  256. package/styles/timepicker/icons/_tailwind.scss +12 -0
  257. package/styles/timepicker/material-dark.css +84 -0
  258. package/styles/timepicker/material.css +84 -0
  259. package/styles/timepicker/material3-dark.css +382 -0
  260. package/styles/timepicker/material3-dark.scss +7 -0
  261. package/styles/timepicker/material3.css +438 -0
  262. package/styles/timepicker/material3.scss +7 -0
  263. package/styles/timepicker/tailwind-dark.css +84 -0
  264. package/styles/timepicker/tailwind.css +84 -0
@@ -1,4 +1,4 @@
1
- import { Animation, Browser, ChildProperty, Collection, Component, Event, EventHandler, HijriParser, Internationalization, KeyboardEvents, L10n, NotifyPropertyChanges, Property, addClass, append, attributes, cldrData, closest, createElement, detach, extend, formatUnit, getDefaultDateObject, getUniqueID, getValue, isNullOrUndefined, isUndefined, merge, prepend, remove, removeClass, rippleEffect, select, setStyleAttribute, setValue, throwError } from '@syncfusion/ej2-base';
1
+ import { Animation, Browser, ChildProperty, Collection, Component, Event, EventHandler, HijriParser, Internationalization, KeyboardEvents, L10n, NotifyPropertyChanges, Property, Touch, addClass, append, attributes, cldrData, closest, createElement, detach, extend, formatUnit, getDefaultDateObject, getUniqueID, getValue, isNullOrUndefined, isUndefined, merge, prepend, remove, removeClass, rippleEffect, select, setStyleAttribute, setValue, throwError } from '@syncfusion/ej2-base';
2
2
  import { Popup } from '@syncfusion/ej2-popups';
3
3
  import { Input } from '@syncfusion/ej2-inputs';
4
4
  import { Button } from '@syncfusion/ej2-buttons';
@@ -1507,7 +1507,7 @@ let CalendarBase = class CalendarBase extends Component {
1507
1507
  }
1508
1508
  }
1509
1509
  navigatePrevious(e) {
1510
- e.preventDefault();
1510
+ !Browser.isDevice && e.preventDefault();
1511
1511
  if (this.calendarMode === 'Gregorian') {
1512
1512
  this.previous();
1513
1513
  }
@@ -1538,7 +1538,7 @@ let CalendarBase = class CalendarBase extends Component {
1538
1538
  }
1539
1539
  }
1540
1540
  navigateNext(eve) {
1541
- eve.preventDefault();
1541
+ !Browser.isDevice && eve.preventDefault();
1542
1542
  if (this.calendarMode === 'Gregorian') {
1543
1543
  this.next();
1544
1544
  }
@@ -3217,7 +3217,9 @@ let DatePicker = class DatePicker extends Calendar {
3217
3217
  render() {
3218
3218
  this.initialize();
3219
3219
  this.bindEvents();
3220
- Input.calculateWidth(this.inputElement, this.inputWrapper.container);
3220
+ if (this.floatLabelType === 'Auto') {
3221
+ Input.calculateWidth(this.inputElement, this.inputWrapper.container);
3222
+ }
3221
3223
  if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {
3222
3224
  this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon');
3223
3225
  }
@@ -3300,6 +3302,9 @@ let DatePicker = class DatePicker extends Calendar {
3300
3302
  this.l10n = new L10n('datepicker', l10nLocale, this.locale);
3301
3303
  this.setProperties({ placeholder: this.placeholder || this.l10n.getConstant('placeholder') }, true);
3302
3304
  }
3305
+ if (this.fullScreenMode && Browser.isDevice) {
3306
+ this.cssClass = "e-popup-expand";
3307
+ }
3303
3308
  let updatedCssClassValues = this.cssClass;
3304
3309
  if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {
3305
3310
  updatedCssClassValues = (this.cssClass.replace(/\s+/g, ' ')).trim();
@@ -4096,6 +4101,13 @@ let DatePicker = class DatePicker extends Calendar {
4096
4101
  zIndex: this.zIndex,
4097
4102
  collision: Browser.isDevice ? { X: 'fit', Y: 'fit' } : { X: 'flip', Y: 'flip' },
4098
4103
  open: () => {
4104
+ if (Browser.isDevice && this.fullScreenMode) {
4105
+ this.iconRight = parseInt(window.getComputedStyle(this.calendarElement.querySelector('.e-header.e-month .e-prev')).marginRight, 10) > 16 ? true : false;
4106
+ this.touchModule = new Touch(this.calendarElement.querySelector(".e-content.e-month"), {
4107
+ swipe: this.CalendarSwipeHandler.bind(this)
4108
+ });
4109
+ EventHandler.add(this.calendarElement.querySelector(".e-content.e-month"), "touchstart", this.TouchStartHandler, this);
4110
+ }
4099
4111
  if (this.getModuleName() !== 'datetimepicker') {
4100
4112
  if (document.activeElement !== this.inputElement) {
4101
4113
  this.defaultKeyConfigs = extend(this.defaultKeyConfigs, this.keyConfigs);
@@ -4137,6 +4149,45 @@ let DatePicker = class DatePicker extends Calendar {
4137
4149
  this.popupObj.element.className += ' ' + this.cssClass;
4138
4150
  this.setAriaAttributes();
4139
4151
  }
4152
+ CalendarSwipeHandler(e) {
4153
+ let direction = 0;
4154
+ if (this.iconRight) {
4155
+ switch (e.swipeDirection) {
4156
+ case "Left":
4157
+ direction = 1;
4158
+ break;
4159
+ case "Right":
4160
+ direction = -1;
4161
+ break;
4162
+ default:
4163
+ break;
4164
+ }
4165
+ }
4166
+ else {
4167
+ switch (e.swipeDirection) {
4168
+ case "Up":
4169
+ direction = 1;
4170
+ break;
4171
+ case "Down":
4172
+ direction = -1;
4173
+ break;
4174
+ default:
4175
+ break;
4176
+ }
4177
+ }
4178
+ if (this.touchStart) {
4179
+ if (direction === 1) {
4180
+ this.navigateNext(e);
4181
+ }
4182
+ else if (direction === -1) {
4183
+ this.navigatePrevious(e);
4184
+ }
4185
+ this.touchStart = false;
4186
+ }
4187
+ }
4188
+ TouchStartHandler(e) {
4189
+ this.touchStart = true;
4190
+ }
4140
4191
  setAriaDisabled() {
4141
4192
  if (!this.enabled) {
4142
4193
  this.inputElement.setAttribute('aria-disabled', 'true');
@@ -4175,12 +4226,25 @@ let DatePicker = class DatePicker extends Calendar {
4175
4226
  dateOptions = { format: 'MMM d', skeleton: 'dateTime', calendar: 'islamic' };
4176
4227
  }
4177
4228
  monthSpan.textContent = '' + this.globalize.formatDate(this.value || new Date(), dateOptions);
4178
- modelHeader.appendChild(yearHeading);
4229
+ if (this.fullScreenMode) {
4230
+ const modelCloseIcon = this.createElement("span", { className: "e-popup-close" });
4231
+ EventHandler.add(modelCloseIcon, 'mousedown touchstart', this.modelCloseHandler, this);
4232
+ const modelTodayButton = this.calendarElement.querySelector("button.e-today");
4233
+ h2.classList.add("e-day-wrapper");
4234
+ modelTodayButton.classList.add("e-outline");
4235
+ modelHeader.appendChild(modelCloseIcon);
4236
+ modelHeader.appendChild(modelTodayButton);
4237
+ }
4238
+ if (!this.fullScreenMode)
4239
+ modelHeader.appendChild(yearHeading);
4179
4240
  h2.appendChild(daySpan);
4180
4241
  h2.appendChild(monthSpan);
4181
4242
  modelHeader.appendChild(h2);
4182
4243
  this.calendarElement.insertBefore(modelHeader, this.calendarElement.firstElementChild);
4183
4244
  }
4245
+ modelCloseHandler(e) {
4246
+ this.hide();
4247
+ }
4184
4248
  changeTrigger(event) {
4185
4249
  if (this.inputElement.value !== this.previousElementValue) {
4186
4250
  if (((this.previousDate && this.previousDate.valueOf()) !== (this.value && this.value.valueOf()))) {
@@ -5038,6 +5102,9 @@ __decorate$1([
5038
5102
  __decorate$1([
5039
5103
  Property(true)
5040
5104
  ], DatePicker.prototype, "enabled", void 0);
5105
+ __decorate$1([
5106
+ Property(false)
5107
+ ], DatePicker.prototype, "fullScreenMode", void 0);
5041
5108
  __decorate$1([
5042
5109
  Property({})
5043
5110
  ], DatePicker.prototype, "htmlAttributes", void 0);
@@ -5249,7 +5316,9 @@ let DateRangePicker = class DateRangePicker extends CalendarBase {
5249
5316
  if (this.element.hasAttribute('data-val')) {
5250
5317
  this.element.setAttribute('data-val', 'false');
5251
5318
  }
5252
- Input.calculateWidth(this.inputElement, this.inputWrapper.container);
5319
+ if (this.floatLabelType === 'Auto') {
5320
+ Input.calculateWidth(this.inputElement, this.inputWrapper.container);
5321
+ }
5253
5322
  if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {
5254
5323
  this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon');
5255
5324
  }
@@ -5289,7 +5358,7 @@ let DateRangePicker = class DateRangePicker extends CalendarBase {
5289
5358
  /**
5290
5359
  * Mobile View
5291
5360
  */
5292
- this.isMobile = window.matchMedia('(max-width:550px)').matches;
5361
+ this.isMobile = (Browser.isDevice && this.fullScreenMode) ? true : window.matchMedia('(max-width:550px)').matches;
5293
5362
  this.inputElement = this.element;
5294
5363
  this.angularTag = null;
5295
5364
  if (this.element.tagName === 'EJS-DATERANGEPICKER') {
@@ -5621,7 +5690,7 @@ let DateRangePicker = class DateRangePicker extends CalendarBase {
5621
5690
  }
5622
5691
  updateHiddenInput() {
5623
5692
  if (this.firstHiddenChild && this.secondHiddenChild) {
5624
- const format = { type: 'datetime', skeleton: 'yMd' };
5693
+ const format = { format: this.formatString, type: 'datetime', skeleton: 'yMd' };
5625
5694
  if (typeof this.startDate === 'string') {
5626
5695
  this.startDate = this.globalize.parseDate(this.startDate, format);
5627
5696
  }
@@ -6030,7 +6099,6 @@ let DateRangePicker = class DateRangePicker extends CalendarBase {
6030
6099
  this.trigger('focus', focusArguments);
6031
6100
  }
6032
6101
  this.updateClearIconState();
6033
- this.updateHiddenInput();
6034
6102
  if (this.openOnFocus && !this.preventFocus) {
6035
6103
  this.preventFocus = true;
6036
6104
  this.show();
@@ -7746,6 +7814,16 @@ let DateRangePicker = class DateRangePicker extends CalendarBase {
7746
7814
  createControl() {
7747
7815
  const controlContainer = this.createElement('div', { className: RANGECONTAINER });
7748
7816
  const headerContainer = this.createElement('div', { className: RANGEHEADER });
7817
+ if (this.isMobile && this.fullScreenMode) {
7818
+ const modelHeaderIconWrapper = this.createElement("div", { className: "e-model-header-wrapper" });
7819
+ const modelCloseIcon = this.createElement("span", { className: "e-popup-close" });
7820
+ EventHandler.add(modelCloseIcon, 'mousedown touchstart', this.modelRangeCloseHandler, this);
7821
+ const modelApplyButton = this.createElement("span", { className: "e-apply" });
7822
+ EventHandler.add(modelApplyButton, 'mousedown touchstart', this.applyFunction, this);
7823
+ modelHeaderIconWrapper.appendChild(modelCloseIcon);
7824
+ modelHeaderIconWrapper.appendChild(modelApplyButton);
7825
+ headerContainer.appendChild(modelHeaderIconWrapper);
7826
+ }
7749
7827
  const labelContainer = this.createRangeHeader();
7750
7828
  headerContainer.appendChild(labelContainer);
7751
7829
  const daySpan = this.createElement('div', { className: DAYSPAN });
@@ -7785,6 +7863,9 @@ let DateRangePicker = class DateRangePicker extends CalendarBase {
7785
7863
  }
7786
7864
  this.renderPopup();
7787
7865
  }
7866
+ modelRangeCloseHandler(e) {
7867
+ this.hide();
7868
+ }
7788
7869
  cancelFunction(eve) {
7789
7870
  if (document.activeElement !== this.inputElement) {
7790
7871
  this.preventFocus = true;
@@ -7997,7 +8078,24 @@ let DateRangePicker = class DateRangePicker extends CalendarBase {
7997
8078
  this.liCollections = this.presetElement.querySelectorAll('.' + LISTCLASS);
7998
8079
  this.wireListEvents();
7999
8080
  if (this.isMobile) {
8000
- this.presetElement.style.width = this.inputWrapper.container.getBoundingClientRect().width + 'px';
8081
+ if (this.fullScreenMode) {
8082
+ const modelWrapper = createElement('div', { className: 'e-range-mob-popup-wrap' });
8083
+ const modelHeader = this.createElement('div', { className: 'e-model-header' });
8084
+ const modelTitleSpan = this.createElement("span", { className: "e-model-title" });
8085
+ modelTitleSpan.textContent = "Select Preset";
8086
+ const modelCloseIcon = this.createElement("span", { className: "e-popup-close" });
8087
+ EventHandler.add(modelCloseIcon, 'mousedown touchstart', this.modelRangeCloseHandler, this);
8088
+ const presetContent = this.presetElement;
8089
+ modelHeader.appendChild(modelCloseIcon);
8090
+ modelHeader.appendChild(modelTitleSpan);
8091
+ modelWrapper.appendChild(modelHeader);
8092
+ modelWrapper.appendChild(presetContent);
8093
+ this.popupWrapper.insertBefore(modelWrapper, this.popupWrapper.firstElementChild);
8094
+ this.presetElement.style.width = '100%';
8095
+ }
8096
+ else {
8097
+ this.presetElement.style.width = this.inputWrapper.container.getBoundingClientRect().width + 'px';
8098
+ }
8001
8099
  }
8002
8100
  if (!isNullOrUndefined(this.activeIndex) && this.activeIndex > -1) {
8003
8101
  addClass([this.liCollections[this.activeIndex]], ACTIVE$1);
@@ -8046,6 +8144,15 @@ let DateRangePicker = class DateRangePicker extends CalendarBase {
8046
8144
  enableRtl: this.enableRtl,
8047
8145
  zIndex: this.zIndex,
8048
8146
  open: () => {
8147
+ if (this.isMobile && this.fullScreenMode) {
8148
+ this.iconRangeRight = this.calendarElement && window.getComputedStyle(this.calendarElement.querySelector('.e-header.e-month .e-prev')).cssFloat;
8149
+ if (this.iconRangeRight) {
8150
+ this.touchRangeModule = new Touch(this.calendarElement.querySelector(".e-content.e-month"), {
8151
+ swipe: this.dateRangeSwipeHandler.bind(this)
8152
+ });
8153
+ EventHandler.add(this.calendarElement.querySelector(".e-content.e-month"), "touchstart", this.touchStartRangeHandler, this);
8154
+ }
8155
+ }
8049
8156
  attributes(this.inputElement, { 'aria-expanded': 'true', 'aria-owns': this.inputElement.id + '_options' });
8050
8157
  if (this.value) {
8051
8158
  attributes(this.inputElement, { 'aria-activedescendant': this.inputElement.id });
@@ -8138,6 +8245,45 @@ let DateRangePicker = class DateRangePicker extends CalendarBase {
8138
8245
  }
8139
8246
  EventHandler.add(document, 'mousedown touchstart', this.documentHandler, this);
8140
8247
  }
8248
+ dateRangeSwipeHandler(e) {
8249
+ let direction = 0;
8250
+ if (this.iconRangeRight == 'left') {
8251
+ switch (e.swipeDirection) {
8252
+ case "Left":
8253
+ direction = 1;
8254
+ break;
8255
+ case "Right":
8256
+ direction = -1;
8257
+ break;
8258
+ default:
8259
+ break;
8260
+ }
8261
+ }
8262
+ else {
8263
+ switch (e.swipeDirection) {
8264
+ case "Up":
8265
+ direction = 1;
8266
+ break;
8267
+ case "Down":
8268
+ direction = -1;
8269
+ break;
8270
+ default:
8271
+ break;
8272
+ }
8273
+ }
8274
+ if (this.touchRangeStart) {
8275
+ if (direction === 1) {
8276
+ this.navigateNext(e);
8277
+ }
8278
+ else if (direction === -1) {
8279
+ this.navigatePrevious(e);
8280
+ }
8281
+ this.touchRangeStart = false;
8282
+ }
8283
+ }
8284
+ touchStartRangeHandler(e) {
8285
+ this.touchRangeStart = true;
8286
+ }
8141
8287
  popupCloseHandler(e) {
8142
8288
  switch (e.keyCode) {
8143
8289
  case 27:
@@ -8389,6 +8535,9 @@ let DateRangePicker = class DateRangePicker extends CalendarBase {
8389
8535
  }
8390
8536
  }
8391
8537
  createInput() {
8538
+ if (this.fullScreenMode && this.isMobile) {
8539
+ this.cssClass = "e-popup-expand";
8540
+ }
8392
8541
  let updatedCssClassValue = this.cssClass;
8393
8542
  if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {
8394
8543
  updatedCssClassValue = (this.cssClass.replace(/\s+/g, ' ')).trim();
@@ -9478,6 +9627,9 @@ __decorate$2([
9478
9627
  __decorate$2([
9479
9628
  Property(false)
9480
9629
  ], DateRangePicker.prototype, "openOnFocus", void 0);
9630
+ __decorate$2([
9631
+ Property(false)
9632
+ ], DateRangePicker.prototype, "fullScreenMode", void 0);
9481
9633
  __decorate$2([
9482
9634
  Event()
9483
9635
  ], DateRangePicker.prototype, "created", void 0);
@@ -9884,6 +10036,9 @@ let TimePicker = class TimePicker extends Component {
9884
10036
  return (!isNullOrUndefined(value) && value instanceof Date && !isNaN(+value)) ? value : null;
9885
10037
  }
9886
10038
  createInputElement() {
10039
+ if (this.fullScreenMode && Browser.isDevice) {
10040
+ this.cssClass = "e-popup-expand";
10041
+ }
9887
10042
  let updatedCssClassesValue = this.cssClass;
9888
10043
  const isBindClearAction = this.enableMask ? false : true;
9889
10044
  if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {
@@ -10130,7 +10285,26 @@ let TimePicker = class TimePicker extends Component {
10130
10285
  if (!Browser.isDevice) {
10131
10286
  this.popupObj.collision = { X: 'none', Y: 'flip' };
10132
10287
  }
10133
- this.popupObj.element.style.maxHeight = POPUPDIMENSION;
10288
+ if (Browser.isDevice && this.fullScreenMode) {
10289
+ this.popupObj.element.style.maxHeight = "100%";
10290
+ this.popupObj.element.style.width = "100%";
10291
+ }
10292
+ else {
10293
+ this.popupObj.element.style.maxHeight = POPUPDIMENSION;
10294
+ }
10295
+ if (Browser.isDevice && this.fullScreenMode) {
10296
+ const modelHeader = this.createElement('div', { className: 'e-model-header' });
10297
+ const modelTitleSpan = this.createElement("span", { className: "e-model-title" });
10298
+ modelTitleSpan.textContent = "Select time";
10299
+ const modelCloseIcon = this.createElement("span", { className: "e-popup-close" });
10300
+ EventHandler.add(modelCloseIcon, 'mousedown touchstart', this.timePopupCloseHandler, this);
10301
+ modelHeader.appendChild(modelCloseIcon);
10302
+ modelHeader.appendChild(modelTitleSpan);
10303
+ this.popupWrapper.insertBefore(modelHeader, this.popupWrapper.firstElementChild);
10304
+ }
10305
+ }
10306
+ timePopupCloseHandler(e) {
10307
+ this.hide();
10134
10308
  }
10135
10309
  //util function
10136
10310
  getFormattedValue(value) {
@@ -11370,7 +11544,7 @@ let TimePicker = class TimePicker extends Component {
11370
11544
  this.prevDate = this.valueWithMinutes = date;
11371
11545
  if ((typeof date !== 'number') || (this.value && +new Date(+this.value).setMilliseconds(0)) !== +date) {
11372
11546
  this.setProperties({ value: date }, true);
11373
- if (this.enableMask) {
11547
+ if (this.enableMask && this.value) {
11374
11548
  this.createMask();
11375
11549
  }
11376
11550
  }
@@ -12008,6 +12182,9 @@ __decorate$3([
12008
12182
  __decorate$3([
12009
12183
  Property(true)
12010
12184
  ], TimePicker.prototype, "enabled", void 0);
12185
+ __decorate$3([
12186
+ Property(false)
12187
+ ], TimePicker.prototype, "fullScreenMode", void 0);
12011
12188
  __decorate$3([
12012
12189
  Property(false)
12013
12190
  ], TimePicker.prototype, "readonly", void 0);
@@ -12299,7 +12476,9 @@ let DateTimePicker = class DateTimePicker extends DatePicker {
12299
12476
  this.inputElement.tabIndex = -1;
12300
12477
  }
12301
12478
  }
12302
- Input.calculateWidth(this.inputElement, this.inputWrapper.container);
12479
+ if (this.floatLabelType === 'Auto') {
12480
+ Input.calculateWidth(this.inputElement, this.inputWrapper.container);
12481
+ }
12303
12482
  if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {
12304
12483
  this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-date-time-icon');
12305
12484
  }
@@ -12619,7 +12798,12 @@ let DateTimePicker = class DateTimePicker extends DatePicker {
12619
12798
  this.renderPopup();
12620
12799
  this.setTimeScrollPosition();
12621
12800
  this.openPopup(e);
12622
- this.popupObject.refreshPosition(this.inputElement);
12801
+ if (!Browser.isDevice || (Browser.isDevice && !this.fullScreenMode)) {
12802
+ this.popupObject.refreshPosition(this.inputElement);
12803
+ }
12804
+ if (Browser.isDevice && this.fullScreenMode) {
12805
+ this.dateTimeWrapper.style.left = '0px';
12806
+ }
12623
12807
  }
12624
12808
  }
12625
12809
  }
@@ -12723,7 +12907,31 @@ let DateTimePicker = class DateTimePicker extends DatePicker {
12723
12907
  }
12724
12908
  }
12725
12909
  });
12726
- this.popupObject.element.style.maxHeight = POPUPDIMENSION$1;
12910
+ if (Browser.isDevice && this.fullScreenMode) {
12911
+ this.popupObject.element.style.display = "flex";
12912
+ this.popupObject.element.style.maxHeight = "100%";
12913
+ this.popupObject.element.style.width = "100%";
12914
+ }
12915
+ else {
12916
+ this.popupObject.element.style.maxHeight = POPUPDIMENSION$1;
12917
+ }
12918
+ if (Browser.isDevice && this.fullScreenMode) {
12919
+ const modelWrapper = createElement('div', { className: 'e-datetime-mob-popup-wrap' });
12920
+ const modelHeader = this.createElement('div', { className: 'e-model-header' });
12921
+ const modelTitleSpan = this.createElement("span", { className: "e-model-title" });
12922
+ modelTitleSpan.textContent = "Select time";
12923
+ const modelCloseIcon = this.createElement("span", { className: "e-popup-close" });
12924
+ EventHandler.add(modelCloseIcon, 'mousedown touchstart', this.dateTimeCloseHandler, this);
12925
+ const timeContent = this.dateTimeWrapper.querySelector(".e-content");
12926
+ modelHeader.appendChild(modelCloseIcon);
12927
+ modelHeader.appendChild(modelTitleSpan);
12928
+ modelWrapper.appendChild(modelHeader);
12929
+ modelWrapper.appendChild(timeContent);
12930
+ this.dateTimeWrapper.insertBefore(modelWrapper, this.dateTimeWrapper.firstElementChild);
12931
+ }
12932
+ }
12933
+ dateTimeCloseHandler(e) {
12934
+ this.hide();
12727
12935
  }
12728
12936
  setDimension(width) {
12729
12937
  if (typeof width === 'number') {
@@ -12779,7 +12987,12 @@ let DateTimePicker = class DateTimePicker extends DatePicker {
12779
12987
  getPopupHeight() {
12780
12988
  const height = parseInt(POPUPDIMENSION$1, 10);
12781
12989
  const popupHeight = this.dateTimeWrapper.getBoundingClientRect().height;
12782
- return popupHeight > height ? height : popupHeight;
12990
+ if (Browser.isDevice && this.fullScreenMode) {
12991
+ return popupHeight;
12992
+ }
12993
+ else {
12994
+ return popupHeight > height ? height : popupHeight;
12995
+ }
12783
12996
  }
12784
12997
  changeEvent(e) {
12785
12998
  super.changeEvent(e);
@@ -12817,7 +13030,13 @@ let DateTimePicker = class DateTimePicker extends DatePicker {
12817
13030
  const height = nextElement ? nextElement.offsetTop : element.offsetTop;
12818
13031
  const lineHeight = element.getBoundingClientRect().height;
12819
13032
  if ((height + element.offsetTop) > listHeight) {
12820
- this.dateTimeWrapper.scrollTop = nextElement ? (height - (listHeight / HALFPOSITION$1 + lineHeight / HALFPOSITION$1)) : height;
13033
+ if (Browser.isDevice && this.fullScreenMode) {
13034
+ const listContent = this.dateTimeWrapper.querySelector('.e-content');
13035
+ listContent.scrollTop = nextElement ? (height - (listHeight / HALFPOSITION$1 + lineHeight / HALFPOSITION$1)) : height;
13036
+ }
13037
+ else {
13038
+ this.dateTimeWrapper.scrollTop = nextElement ? (height - (listHeight / HALFPOSITION$1 + lineHeight / HALFPOSITION$1)) : height;
13039
+ }
12821
13040
  }
12822
13041
  else {
12823
13042
  this.dateTimeWrapper.scrollTop = 0;
@@ -13603,6 +13822,9 @@ __decorate$4([
13603
13822
  __decorate$4([
13604
13823
  Property(false)
13605
13824
  ], DateTimePicker.prototype, "strictMode", void 0);
13825
+ __decorate$4([
13826
+ Property(false)
13827
+ ], DateTimePicker.prototype, "fullScreenMode", void 0);
13606
13828
  __decorate$4([
13607
13829
  Property(null)
13608
13830
  ], DateTimePicker.prototype, "serverTimezoneOffset", void 0);
@@ -13800,7 +14022,12 @@ class MaskedDateTime {
13800
14022
  }
13801
14023
  }
13802
14024
  validCharacterCheck() {
13803
- const start = this.parent.inputElement.selectionStart;
14025
+ let start = this.parent.inputElement.selectionStart;
14026
+ if (this.parent.moduleName !== 'timepicker') {
14027
+ if (start === this.hiddenMask.length && this.mask === this.parent.inputElement.value) {
14028
+ start = 0;
14029
+ }
14030
+ }
13804
14031
  for (let i = start, j = start - 1; i < this.hiddenMask.length || j >= 0; i++, j--) {
13805
14032
  if (i < this.hiddenMask.length && this.validCharacters.indexOf(this.hiddenMask[i]) !== -1) {
13806
14033
  this.setSelection(this.hiddenMask[i]);
@@ -14330,7 +14557,7 @@ class MaskedDateTime {
14330
14557
  navigateSelection(isbackward) {
14331
14558
  const start = this.parent.inputElement.selectionStart;
14332
14559
  const end = this.parent.inputElement.selectionEnd;
14333
- let formatIndex = isbackward ? start - 1 : end + 1;
14560
+ let formatIndex = isbackward ? start - 1 : end;
14334
14561
  this.navigated = true;
14335
14562
  while (formatIndex < this.hiddenMask.length && formatIndex >= 0) {
14336
14563
  if (this.validCharacters.indexOf(this.hiddenMask[formatIndex]) >= 0) {