@syncfusion/ej2-calendars 21.2.9 → 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 (265) 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 +263 -31
  7. package/dist/es6/ej2-calendars.es2015.js.map +1 -1
  8. package/dist/es6/ej2-calendars.es5.js +264 -31
  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 +15 -1
  19. package/src/datepicker/datepicker.js +81 -9
  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.d.ts +2 -0
  27. package/src/maskbase/masked-date-time.js +13 -5
  28. package/src/timepicker/timepicker-model.d.ts +7 -0
  29. package/src/timepicker/timepicker.d.ts +7 -0
  30. package/src/timepicker/timepicker.js +28 -5
  31. package/styles/bootstrap-dark.css +715 -19
  32. package/styles/bootstrap.css +711 -15
  33. package/styles/bootstrap4.css +711 -16
  34. package/styles/bootstrap5-dark.css +708 -12
  35. package/styles/bootstrap5.css +708 -12
  36. package/styles/calendar/_bootstrap-dark-definition.scss +1 -1
  37. package/styles/calendar/_bootstrap4-definition.scss +1 -1
  38. package/styles/calendar/_layout.scss +64 -19
  39. package/styles/calendar/_material-definition.scss +1 -1
  40. package/styles/calendar/_material3-dark-definition.scss +1 -0
  41. package/styles/calendar/_material3-definition.scss +195 -0
  42. package/styles/calendar/_theme.scss +2 -1
  43. package/styles/calendar/bootstrap-dark.css +3 -2
  44. package/styles/calendar/bootstrap.css +2 -1
  45. package/styles/calendar/bootstrap4.css +3 -2
  46. package/styles/calendar/bootstrap5-dark.css +2 -1
  47. package/styles/calendar/bootstrap5.css +2 -1
  48. package/styles/calendar/fabric-dark.css +2 -1
  49. package/styles/calendar/fabric.css +2 -1
  50. package/styles/calendar/fluent-dark.css +2 -1
  51. package/styles/calendar/fluent.css +2 -1
  52. package/styles/calendar/highcontrast-light.css +2 -1
  53. package/styles/calendar/highcontrast.css +2 -1
  54. package/styles/calendar/icons/_material3-dark.scss +1 -0
  55. package/styles/calendar/material-dark.css +2 -1
  56. package/styles/calendar/material.css +3 -2
  57. package/styles/calendar/material3-dark.css +895 -0
  58. package/styles/calendar/material3-dark.scss +6 -0
  59. package/styles/calendar/material3.css +951 -0
  60. package/styles/calendar/material3.scss +6 -0
  61. package/styles/calendar/tailwind-dark.css +2 -1
  62. package/styles/calendar/tailwind.css +2 -1
  63. package/styles/datepicker/_bootstrap-dark-definition.scss +71 -11
  64. package/styles/datepicker/_bootstrap-definition.scss +71 -9
  65. package/styles/datepicker/_bootstrap4-definition.scss +70 -9
  66. package/styles/datepicker/_bootstrap5-definition.scss +67 -6
  67. package/styles/datepicker/_fabric-dark-definition.scss +70 -9
  68. package/styles/datepicker/_fabric-definition.scss +70 -9
  69. package/styles/datepicker/_fluent-definition.scss +67 -6
  70. package/styles/datepicker/_fusionnew-definition.scss +67 -6
  71. package/styles/datepicker/_highcontrast-definition.scss +69 -8
  72. package/styles/datepicker/_highcontrast-light-definition.scss +69 -8
  73. package/styles/datepicker/_layout.scss +214 -66
  74. package/styles/datepicker/_material-dark-definition.scss +67 -6
  75. package/styles/datepicker/_material-definition.scss +67 -6
  76. package/styles/datepicker/_material3-dark-definition.scss +1 -0
  77. package/styles/datepicker/_material3-definition.scss +116 -0
  78. package/styles/datepicker/_tailwind-definition.scss +67 -6
  79. package/styles/datepicker/_theme.scss +0 -1
  80. package/styles/datepicker/bootstrap-dark.css +262 -8
  81. package/styles/datepicker/bootstrap.css +262 -8
  82. package/styles/datepicker/bootstrap4.css +261 -8
  83. package/styles/datepicker/bootstrap5-dark.css +259 -5
  84. package/styles/datepicker/bootstrap5.css +259 -5
  85. package/styles/datepicker/fabric-dark.css +255 -8
  86. package/styles/datepicker/fabric.css +255 -8
  87. package/styles/datepicker/fluent-dark.css +258 -5
  88. package/styles/datepicker/fluent.css +258 -5
  89. package/styles/datepicker/highcontrast-light.css +260 -7
  90. package/styles/datepicker/highcontrast.css +260 -7
  91. package/styles/datepicker/icons/_bootstrap-dark.scss +21 -0
  92. package/styles/datepicker/icons/_bootstrap.scss +20 -0
  93. package/styles/datepicker/icons/_bootstrap4.scss +20 -0
  94. package/styles/datepicker/icons/_bootstrap5.scss +20 -0
  95. package/styles/datepicker/icons/_fabric-dark.scss +13 -0
  96. package/styles/datepicker/icons/_fabric.scss +13 -0
  97. package/styles/datepicker/icons/_fluent.scss +20 -0
  98. package/styles/datepicker/icons/_fusionnew.scss +20 -0
  99. package/styles/datepicker/icons/_highcontrast-light.scss +20 -0
  100. package/styles/datepicker/icons/_highcontrast.scss +20 -0
  101. package/styles/datepicker/icons/_material-dark.scss +13 -0
  102. package/styles/datepicker/icons/_material.scss +13 -0
  103. package/styles/datepicker/icons/_material3-dark.scss +1 -0
  104. package/styles/datepicker/icons/_material3.scss +23 -0
  105. package/styles/datepicker/icons/_tailwind.scss +20 -0
  106. package/styles/datepicker/material-dark.css +252 -5
  107. package/styles/datepicker/material.css +204 -40
  108. package/styles/datepicker/material3-dark.css +510 -0
  109. package/styles/datepicker/material3-dark.scss +8 -0
  110. package/styles/datepicker/material3.css +566 -0
  111. package/styles/datepicker/material3.scss +8 -0
  112. package/styles/datepicker/tailwind-dark.css +258 -5
  113. package/styles/datepicker/tailwind.css +258 -5
  114. package/styles/daterangepicker/_bootstrap-dark-definition.scss +67 -2
  115. package/styles/daterangepicker/_bootstrap-definition.scss +65 -0
  116. package/styles/daterangepicker/_bootstrap4-definition.scss +65 -0
  117. package/styles/daterangepicker/_bootstrap5-definition.scss +65 -0
  118. package/styles/daterangepicker/_fabric-dark-definition.scss +65 -0
  119. package/styles/daterangepicker/_fabric-definition.scss +65 -0
  120. package/styles/daterangepicker/_fluent-definition.scss +66 -1
  121. package/styles/daterangepicker/_fusionnew-definition.scss +65 -0
  122. package/styles/daterangepicker/_highcontrast-definition.scss +65 -0
  123. package/styles/daterangepicker/_highcontrast-light-definition.scss +65 -0
  124. package/styles/daterangepicker/_layout.scss +325 -116
  125. package/styles/daterangepicker/_material-dark-definition.scss +65 -0
  126. package/styles/daterangepicker/_material-definition.scss +65 -0
  127. package/styles/daterangepicker/_material3-dark-definition.scss +1 -0
  128. package/styles/daterangepicker/_material3-definition.scss +278 -0
  129. package/styles/daterangepicker/_tailwind-definition.scss +65 -0
  130. package/styles/daterangepicker/_theme.scss +21 -1
  131. package/styles/daterangepicker/bootstrap-dark.css +358 -7
  132. package/styles/daterangepicker/bootstrap.css +355 -4
  133. package/styles/daterangepicker/bootstrap4.css +355 -4
  134. package/styles/daterangepicker/bootstrap5-dark.css +355 -4
  135. package/styles/daterangepicker/bootstrap5.css +355 -4
  136. package/styles/daterangepicker/fabric-dark.css +355 -4
  137. package/styles/daterangepicker/fabric.css +355 -4
  138. package/styles/daterangepicker/fluent-dark.css +356 -5
  139. package/styles/daterangepicker/fluent.css +356 -5
  140. package/styles/daterangepicker/highcontrast-light.css +355 -4
  141. package/styles/daterangepicker/highcontrast.css +355 -4
  142. package/styles/daterangepicker/icons/_bootstrap-dark.scss +20 -0
  143. package/styles/daterangepicker/icons/_bootstrap.scss +20 -0
  144. package/styles/daterangepicker/icons/_bootstrap4.scss +20 -0
  145. package/styles/daterangepicker/icons/_bootstrap5.scss +20 -0
  146. package/styles/daterangepicker/icons/_fabric-dark.scss +20 -0
  147. package/styles/daterangepicker/icons/_fabric.scss +20 -0
  148. package/styles/daterangepicker/icons/_fluent.scss +20 -0
  149. package/styles/daterangepicker/icons/_fusionnew.scss +20 -0
  150. package/styles/daterangepicker/icons/_highcontrast-light.scss +20 -0
  151. package/styles/daterangepicker/icons/_highcontrast.scss +20 -0
  152. package/styles/daterangepicker/icons/_material-dark.scss +20 -0
  153. package/styles/daterangepicker/icons/_material.scss +20 -0
  154. package/styles/daterangepicker/icons/_material3-dark.scss +1 -0
  155. package/styles/daterangepicker/icons/_material3.scss +32 -2
  156. package/styles/daterangepicker/icons/_tailwind.scss +20 -0
  157. package/styles/daterangepicker/material-dark.css +355 -4
  158. package/styles/daterangepicker/material.css +309 -70
  159. package/styles/daterangepicker/material3-dark.css +1330 -0
  160. package/styles/daterangepicker/material3-dark.scss +8 -0
  161. package/styles/daterangepicker/material3.css +1386 -0
  162. package/styles/daterangepicker/material3.scss +8 -0
  163. package/styles/daterangepicker/tailwind-dark.css +355 -4
  164. package/styles/daterangepicker/tailwind.css +355 -4
  165. package/styles/datetimepicker/_bootstrap-dark-definition.scss +5 -0
  166. package/styles/datetimepicker/_bootstrap-definition.scss +5 -0
  167. package/styles/datetimepicker/_bootstrap4-definition.scss +5 -0
  168. package/styles/datetimepicker/_bootstrap5-definition.scss +5 -0
  169. package/styles/datetimepicker/_fabric-dark-definition.scss +5 -0
  170. package/styles/datetimepicker/_fabric-definition.scss +5 -0
  171. package/styles/datetimepicker/_fluent-definition.scss +5 -0
  172. package/styles/datetimepicker/_fusionnew-definition.scss +5 -0
  173. package/styles/datetimepicker/_highcontrast-definition.scss +5 -0
  174. package/styles/datetimepicker/_highcontrast-light-definition.scss +5 -0
  175. package/styles/datetimepicker/_layout.scss +47 -4
  176. package/styles/datetimepicker/_material-dark-definition.scss +5 -0
  177. package/styles/datetimepicker/_material-definition.scss +5 -0
  178. package/styles/datetimepicker/_material3-dark-definition.scss +1 -0
  179. package/styles/datetimepicker/_material3-definition.scss +71 -0
  180. package/styles/datetimepicker/_tailwind-definition.scss +5 -0
  181. package/styles/datetimepicker/bootstrap-dark.css +8 -2
  182. package/styles/datetimepicker/bootstrap.css +8 -2
  183. package/styles/datetimepicker/bootstrap4.css +8 -2
  184. package/styles/datetimepicker/bootstrap5-dark.css +8 -2
  185. package/styles/datetimepicker/bootstrap5.css +8 -2
  186. package/styles/datetimepicker/fabric-dark.css +8 -2
  187. package/styles/datetimepicker/fabric.css +8 -2
  188. package/styles/datetimepicker/fluent-dark.css +8 -2
  189. package/styles/datetimepicker/fluent.css +8 -2
  190. package/styles/datetimepicker/highcontrast-light.css +8 -2
  191. package/styles/datetimepicker/highcontrast.css +8 -2
  192. package/styles/datetimepicker/icons/_material3-dark.scss +1 -0
  193. package/styles/datetimepicker/material-dark.css +8 -2
  194. package/styles/datetimepicker/material.css +8 -2
  195. package/styles/datetimepicker/material3-dark.css +283 -0
  196. package/styles/datetimepicker/material3-dark.scss +9 -0
  197. package/styles/datetimepicker/material3.css +339 -0
  198. package/styles/datetimepicker/material3.scss +9 -0
  199. package/styles/datetimepicker/tailwind-dark.css +8 -2
  200. package/styles/datetimepicker/tailwind.css +8 -2
  201. package/styles/fabric-dark.css +704 -15
  202. package/styles/fabric.css +704 -15
  203. package/styles/fluent-dark.css +708 -13
  204. package/styles/fluent.css +708 -13
  205. package/styles/highcontrast-light.css +709 -14
  206. package/styles/highcontrast.css +709 -14
  207. package/styles/material-dark.css +701 -12
  208. package/styles/material.css +608 -114
  209. package/styles/material3-dark.css +3179 -0
  210. package/styles/material3-dark.scss +7 -0
  211. package/styles/material3.css +3235 -0
  212. package/styles/material3.scss +7 -0
  213. package/styles/tailwind-dark.css +707 -12
  214. package/styles/tailwind.css +707 -12
  215. package/styles/timepicker/_bootstrap-dark-definition.scss +28 -0
  216. package/styles/timepicker/_bootstrap-definition.scss +28 -0
  217. package/styles/timepicker/_bootstrap4-definition.scss +28 -0
  218. package/styles/timepicker/_bootstrap5-definition.scss +28 -0
  219. package/styles/timepicker/_fabric-dark-definition.scss +28 -0
  220. package/styles/timepicker/_fabric-definition.scss +28 -0
  221. package/styles/timepicker/_fluent-definition.scss +28 -0
  222. package/styles/timepicker/_fusionnew-definition.scss +28 -0
  223. package/styles/timepicker/_highcontrast-definition.scss +28 -0
  224. package/styles/timepicker/_highcontrast-light-definition.scss +28 -0
  225. package/styles/timepicker/_layout.scss +86 -1
  226. package/styles/timepicker/_material-dark-definition.scss +28 -0
  227. package/styles/timepicker/_material-definition.scss +28 -0
  228. package/styles/timepicker/_material3-dark-definition.scss +1 -0
  229. package/styles/timepicker/_material3-definition.scss +99 -0
  230. package/styles/timepicker/_tailwind-definition.scss +28 -0
  231. package/styles/timepicker/_theme.scss +13 -0
  232. package/styles/timepicker/bootstrap-dark.css +84 -0
  233. package/styles/timepicker/bootstrap.css +84 -0
  234. package/styles/timepicker/bootstrap4.css +84 -0
  235. package/styles/timepicker/bootstrap5-dark.css +84 -0
  236. package/styles/timepicker/bootstrap5.css +84 -0
  237. package/styles/timepicker/fabric-dark.css +84 -0
  238. package/styles/timepicker/fabric.css +84 -0
  239. package/styles/timepicker/fluent-dark.css +84 -0
  240. package/styles/timepicker/fluent.css +84 -0
  241. package/styles/timepicker/highcontrast-light.css +84 -0
  242. package/styles/timepicker/highcontrast.css +84 -0
  243. package/styles/timepicker/icons/_bootstrap-dark.scss +12 -0
  244. package/styles/timepicker/icons/_bootstrap.scss +12 -0
  245. package/styles/timepicker/icons/_bootstrap4.scss +12 -0
  246. package/styles/timepicker/icons/_bootstrap5.scss +12 -0
  247. package/styles/timepicker/icons/_fabric-dark.scss +12 -0
  248. package/styles/timepicker/icons/_fabric.scss +12 -0
  249. package/styles/timepicker/icons/_fluent.scss +12 -0
  250. package/styles/timepicker/icons/_fusionnew.scss +12 -0
  251. package/styles/timepicker/icons/_highcontrast-light.scss +12 -0
  252. package/styles/timepicker/icons/_highcontrast.scss +12 -0
  253. package/styles/timepicker/icons/_material-dark.scss +12 -0
  254. package/styles/timepicker/icons/_material.scss +12 -0
  255. package/styles/timepicker/icons/_material3-dark.scss +1 -0
  256. package/styles/timepicker/icons/_material3.scss +12 -0
  257. package/styles/timepicker/icons/_tailwind.scss +12 -0
  258. package/styles/timepicker/material-dark.css +84 -0
  259. package/styles/timepicker/material.css +84 -0
  260. package/styles/timepicker/material3-dark.css +382 -0
  261. package/styles/timepicker/material3-dark.scss +7 -0
  262. package/styles/timepicker/material3.css +438 -0
  263. package/styles/timepicker/material3.scss +7 -0
  264. package/styles/timepicker/tailwind-dark.css +84 -0
  265. package/styles/timepicker/tailwind.css +84 -0
@@ -2,7 +2,7 @@
2
2
  import { EmitType } from '@syncfusion/ej2-base';
3
3
  import { L10n } from '@syncfusion/ej2-base';
4
4
  import { KeyboardEvents, KeyboardEventArgs } from '@syncfusion/ej2-base';
5
- import { ModuleDeclaration } from '@syncfusion/ej2-base';
5
+ import { ModuleDeclaration, Touch } from '@syncfusion/ej2-base';
6
6
  import { ClearedEventArgs, CalendarType, CalendarView, DayHeaderFormats } from '../calendar/calendar';
7
7
  import { DatePicker, PopupObjectArgs } from '../datepicker/datepicker';
8
8
  import { DateTimePickerModel } from './datetimepicker-model';
@@ -52,6 +52,8 @@ export declare class DateTimePicker extends DatePicker {
52
52
  protected scrollInvoked: boolean;
53
53
  protected maskedDateValue: string;
54
54
  protected moduleName: string;
55
+ protected touchDTModule: Touch;
56
+ protected touchDTStart: boolean;
55
57
  /**
56
58
  * Specifies the format of the time value that to be displayed in time popup list.
57
59
  *
@@ -290,6 +292,12 @@ export declare class DateTimePicker extends DatePicker {
290
292
  * [`Strict Mode`](../../datetimepicker/strict-mode/) documentation.
291
293
  */
292
294
  strictMode: boolean;
295
+ /**
296
+ * Specifies the component popup display full screen in mobile devices.
297
+ *
298
+ * @default false
299
+ */
300
+ fullScreenMode: boolean;
293
301
  /**
294
302
  * By default, the date value will be processed based on system time zone.
295
303
  * If you want to process the initial date value using server time zone
@@ -534,6 +542,7 @@ export declare class DateTimePicker extends DatePicker {
534
542
  private isTimePopupOpen;
535
543
  private isDatePopupOpen;
536
544
  private renderPopup;
545
+ private dateTimeCloseHandler;
537
546
  private setDimension;
538
547
  private setPopupWidth;
539
548
  protected wireTimeListEvents(): void;
@@ -228,7 +228,9 @@ var DateTimePicker = /** @class */ (function (_super) {
228
228
  this.inputElement.tabIndex = -1;
229
229
  }
230
230
  }
231
- Input.calculateWidth(this.inputElement, this.inputWrapper.container);
231
+ if (this.floatLabelType === 'Auto') {
232
+ Input.calculateWidth(this.inputElement, this.inputWrapper.container);
233
+ }
232
234
  if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {
233
235
  this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-date-time-icon');
234
236
  }
@@ -549,7 +551,12 @@ var DateTimePicker = /** @class */ (function (_super) {
549
551
  this.renderPopup();
550
552
  this.setTimeScrollPosition();
551
553
  this.openPopup(e);
552
- this.popupObject.refreshPosition(this.inputElement);
554
+ if (!Browser.isDevice || (Browser.isDevice && !this.fullScreenMode)) {
555
+ this.popupObject.refreshPosition(this.inputElement);
556
+ }
557
+ if (Browser.isDevice && this.fullScreenMode) {
558
+ this.dateTimeWrapper.style.left = '0px';
559
+ }
553
560
  }
554
561
  }
555
562
  };
@@ -655,7 +662,31 @@ var DateTimePicker = /** @class */ (function (_super) {
655
662
  }
656
663
  }
657
664
  });
658
- this.popupObject.element.style.maxHeight = POPUPDIMENSION;
665
+ if (Browser.isDevice && this.fullScreenMode) {
666
+ this.popupObject.element.style.display = "flex";
667
+ this.popupObject.element.style.maxHeight = "100%";
668
+ this.popupObject.element.style.width = "100%";
669
+ }
670
+ else {
671
+ this.popupObject.element.style.maxHeight = POPUPDIMENSION;
672
+ }
673
+ if (Browser.isDevice && this.fullScreenMode) {
674
+ var modelWrapper = createElement('div', { className: 'e-datetime-mob-popup-wrap' });
675
+ var modelHeader = this.createElement('div', { className: 'e-model-header' });
676
+ var modelTitleSpan = this.createElement("span", { className: "e-model-title" });
677
+ modelTitleSpan.textContent = "Select time";
678
+ var modelCloseIcon = this.createElement("span", { className: "e-popup-close" });
679
+ EventHandler.add(modelCloseIcon, 'mousedown touchstart', this.dateTimeCloseHandler, this);
680
+ var timeContent = this.dateTimeWrapper.querySelector(".e-content");
681
+ modelHeader.appendChild(modelCloseIcon);
682
+ modelHeader.appendChild(modelTitleSpan);
683
+ modelWrapper.appendChild(modelHeader);
684
+ modelWrapper.appendChild(timeContent);
685
+ this.dateTimeWrapper.insertBefore(modelWrapper, this.dateTimeWrapper.firstElementChild);
686
+ }
687
+ };
688
+ DateTimePicker.prototype.dateTimeCloseHandler = function (e) {
689
+ this.hide();
659
690
  };
660
691
  DateTimePicker.prototype.setDimension = function (width) {
661
692
  if (typeof width === 'number') {
@@ -711,7 +742,12 @@ var DateTimePicker = /** @class */ (function (_super) {
711
742
  DateTimePicker.prototype.getPopupHeight = function () {
712
743
  var height = parseInt(POPUPDIMENSION, 10);
713
744
  var popupHeight = this.dateTimeWrapper.getBoundingClientRect().height;
714
- return popupHeight > height ? height : popupHeight;
745
+ if (Browser.isDevice && this.fullScreenMode) {
746
+ return popupHeight;
747
+ }
748
+ else {
749
+ return popupHeight > height ? height : popupHeight;
750
+ }
715
751
  };
716
752
  DateTimePicker.prototype.changeEvent = function (e) {
717
753
  _super.prototype.changeEvent.call(this, e);
@@ -749,7 +785,13 @@ var DateTimePicker = /** @class */ (function (_super) {
749
785
  var height = nextElement ? nextElement.offsetTop : element.offsetTop;
750
786
  var lineHeight = element.getBoundingClientRect().height;
751
787
  if ((height + element.offsetTop) > listHeight) {
752
- this.dateTimeWrapper.scrollTop = nextElement ? (height - (listHeight / HALFPOSITION + lineHeight / HALFPOSITION)) : height;
788
+ if (Browser.isDevice && this.fullScreenMode) {
789
+ var listContent = this.dateTimeWrapper.querySelector('.e-content');
790
+ listContent.scrollTop = nextElement ? (height - (listHeight / HALFPOSITION + lineHeight / HALFPOSITION)) : height;
791
+ }
792
+ else {
793
+ this.dateTimeWrapper.scrollTop = nextElement ? (height - (listHeight / HALFPOSITION + lineHeight / HALFPOSITION)) : height;
794
+ }
753
795
  }
754
796
  else {
755
797
  this.dateTimeWrapper.scrollTop = 0;
@@ -1537,6 +1579,9 @@ var DateTimePicker = /** @class */ (function (_super) {
1537
1579
  __decorate([
1538
1580
  Property(false)
1539
1581
  ], DateTimePicker.prototype, "strictMode", void 0);
1582
+ __decorate([
1583
+ Property(false)
1584
+ ], DateTimePicker.prototype, "fullScreenMode", void 0);
1540
1585
  __decorate([
1541
1586
  Property(null)
1542
1587
  ], DateTimePicker.prototype, "serverTimezoneOffset", void 0);
@@ -27,6 +27,7 @@ export declare class MaskedDateTime {
27
27
  private previousDate;
28
28
  private isNavigate;
29
29
  private navigated;
30
+ private isBlur;
30
31
  private formatRegex;
31
32
  private isDeletion;
32
33
  private isShortYear;
@@ -67,4 +68,5 @@ export declare class MaskedDateTime {
67
68
  export interface events {
68
69
  module: string;
69
70
  e: KeyboardEventArgs;
71
+ isBlur: boolean;
70
72
  }
@@ -34,6 +34,7 @@ var MaskedDateTime = /** @class */ (function () {
34
34
  this.isComplete = false;
35
35
  this.isNavigate = false;
36
36
  this.navigated = false;
37
+ this.isBlur = false;
37
38
  this.formatRegex = /EEEEE|EEEE|EEE|EE|E|dddd|ddd|dd|d|MMMM|MMM|MM|M|yyyy|yy|y|HH|H|hh|h|mm|m|fff|ff|f|aa|a|ss|s|zzzz|zzz|zz|z|'[^']*'|'[^']*'/g;
38
39
  this.isDeletion = false;
39
40
  this.isShortYear = false;
@@ -80,8 +81,7 @@ var MaskedDateTime = /** @class */ (function () {
80
81
  this.parent.off('keyDownHandler', this.maskKeydownHandler);
81
82
  this.parent.off('clearHandler', this.clearHandler);
82
83
  };
83
- MaskedDateTime.prototype.createMask = function (navigated) {
84
- if (navigated === void 0) { navigated = false; }
84
+ MaskedDateTime.prototype.createMask = function (mask) {
85
85
  this.isDayPart = this.isMonthPart = this.isYearPart = this.isHourPart = this.isMinutePart = this.isSecondsPart = false;
86
86
  this.dateformat = this.getCulturedFormat();
87
87
  if (this.parent.maskPlaceholder.day) {
@@ -114,7 +114,8 @@ var MaskedDateTime = /** @class */ (function () {
114
114
  this.mask = this.previousValue = inputValue;
115
115
  this.parent.maskedDateValue = this.mask;
116
116
  if (this.parent.value) {
117
- this.navigated = navigated;
117
+ this.navigated = true;
118
+ this.isBlur = mask.isBlur;
118
119
  this.setDynamicValue();
119
120
  }
120
121
  };
@@ -128,6 +129,11 @@ var MaskedDateTime = /** @class */ (function () {
128
129
  };
129
130
  MaskedDateTime.prototype.validCharacterCheck = function () {
130
131
  var start = this.parent.inputElement.selectionStart;
132
+ if (this.parent.moduleName !== 'timepicker') {
133
+ if (start === this.hiddenMask.length && this.mask === this.parent.inputElement.value) {
134
+ start = 0;
135
+ }
136
+ }
131
137
  for (var i = start, j = start - 1; i < this.hiddenMask.length || j >= 0; i++, j--) {
132
138
  if (i < this.hiddenMask.length && this.validCharacters.indexOf(this.hiddenMask[i]) !== -1) {
133
139
  this.setSelection(this.hiddenMask[i]);
@@ -143,7 +149,9 @@ var MaskedDateTime = /** @class */ (function () {
143
149
  this.maskDateValue = new Date(+this.parent.value);
144
150
  this.isDayPart = this.isMonthPart = this.isYearPart = this.isHourPart = this.isMinutePart = this.isSecondsPart = true;
145
151
  this.updateValue();
146
- this.validCharacterCheck();
152
+ if (!this.isBlur) {
153
+ this.validCharacterCheck();
154
+ }
147
155
  };
148
156
  MaskedDateTime.prototype.setSelection = function (validChar) {
149
157
  var start = -1;
@@ -656,7 +664,7 @@ var MaskedDateTime = /** @class */ (function () {
656
664
  MaskedDateTime.prototype.navigateSelection = function (isbackward) {
657
665
  var start = this.parent.inputElement.selectionStart;
658
666
  var end = this.parent.inputElement.selectionEnd;
659
- var formatIndex = isbackward ? start - 1 : end + 1;
667
+ var formatIndex = isbackward ? start - 1 : end;
660
668
  this.navigated = true;
661
669
  while (formatIndex < this.hiddenMask.length && formatIndex >= 0) {
662
670
  if (this.validCharacters.indexOf(this.hiddenMask[formatIndex]) >= 0) {
@@ -168,6 +168,13 @@ export interface TimePickerModel extends ComponentModel{
168
168
  */
169
169
  enabled?: boolean;
170
170
 
171
+ /**
172
+ * Specifies the component popup display full screen in mobile devices.
173
+ *
174
+ * @default false
175
+ */
176
+ fullScreenMode?: boolean;
177
+
171
178
  /**
172
179
  * Specifies the component in readonly state.
173
180
  *
@@ -288,6 +288,12 @@ export declare class TimePicker extends Component<HTMLElement> implements IInput
288
288
  * @default true
289
289
  */
290
290
  enabled: boolean;
291
+ /**
292
+ * Specifies the component popup display full screen in mobile devices.
293
+ *
294
+ * @default false
295
+ */
296
+ fullScreenMode: boolean;
291
297
  /**
292
298
  * Specifies the component in readonly state.
293
299
  *
@@ -504,6 +510,7 @@ export declare class TimePicker extends Component<HTMLElement> implements IInput
504
510
  protected getPopupHeight(): number;
505
511
  private generateList;
506
512
  private renderPopup;
513
+ private timePopupCloseHandler;
507
514
  private getFormattedValue;
508
515
  private getDateObject;
509
516
  private updateHtmlAttributeToWrapper;
@@ -329,6 +329,9 @@ var TimePicker = /** @class */ (function (_super) {
329
329
  return (!isNullOrUndefined(value) && value instanceof Date && !isNaN(+value)) ? value : null;
330
330
  };
331
331
  TimePicker.prototype.createInputElement = function () {
332
+ if (this.fullScreenMode && Browser.isDevice) {
333
+ this.cssClass = "e-popup-expand";
334
+ }
332
335
  var updatedCssClassesValue = this.cssClass;
333
336
  var isBindClearAction = this.enableMask ? false : true;
334
337
  if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {
@@ -576,7 +579,26 @@ var TimePicker = /** @class */ (function (_super) {
576
579
  if (!Browser.isDevice) {
577
580
  this.popupObj.collision = { X: 'none', Y: 'flip' };
578
581
  }
579
- this.popupObj.element.style.maxHeight = POPUPDIMENSION;
582
+ if (Browser.isDevice && this.fullScreenMode) {
583
+ this.popupObj.element.style.maxHeight = "100%";
584
+ this.popupObj.element.style.width = "100%";
585
+ }
586
+ else {
587
+ this.popupObj.element.style.maxHeight = POPUPDIMENSION;
588
+ }
589
+ if (Browser.isDevice && this.fullScreenMode) {
590
+ var modelHeader = this.createElement('div', { className: 'e-model-header' });
591
+ var modelTitleSpan = this.createElement("span", { className: "e-model-title" });
592
+ modelTitleSpan.textContent = "Select time";
593
+ var modelCloseIcon = this.createElement("span", { className: "e-popup-close" });
594
+ EventHandler.add(modelCloseIcon, 'mousedown touchstart', this.timePopupCloseHandler, this);
595
+ modelHeader.appendChild(modelCloseIcon);
596
+ modelHeader.appendChild(modelTitleSpan);
597
+ this.popupWrapper.insertBefore(modelHeader, this.popupWrapper.firstElementChild);
598
+ }
599
+ };
600
+ TimePicker.prototype.timePopupCloseHandler = function (e) {
601
+ this.hide();
580
602
  };
581
603
  //util function
582
604
  TimePicker.prototype.getFormattedValue = function (value) {
@@ -1138,9 +1160,7 @@ var TimePicker = /** @class */ (function (_super) {
1138
1160
  if (this.isValidLI(li)) {
1139
1161
  this.checkValue(li.getAttribute('data-value'));
1140
1162
  if (this.enableMask) {
1141
- this.notify('createMask', {
1142
- module: 'MaskedDateTime', navigated: true
1143
- });
1163
+ this.createMask();
1144
1164
  }
1145
1165
  this.selectedElement = li;
1146
1166
  this.activeIndex = Array.prototype.slice.call(this.liCollections).indexOf(li);
@@ -1822,7 +1842,7 @@ var TimePicker = /** @class */ (function (_super) {
1822
1842
  this.prevDate = this.valueWithMinutes = date;
1823
1843
  if ((typeof date !== 'number') || (this.value && +new Date(+this.value).setMilliseconds(0)) !== +date) {
1824
1844
  this.setProperties({ value: date }, true);
1825
- if (this.enableMask) {
1845
+ if (this.enableMask && this.value) {
1826
1846
  this.createMask();
1827
1847
  }
1828
1848
  }
@@ -2462,6 +2482,9 @@ var TimePicker = /** @class */ (function (_super) {
2462
2482
  __decorate([
2463
2483
  Property(true)
2464
2484
  ], TimePicker.prototype, "enabled", void 0);
2485
+ __decorate([
2486
+ Property(false)
2487
+ ], TimePicker.prototype, "fullScreenMode", void 0);
2465
2488
  __decorate([
2466
2489
  Property(false)
2467
2490
  ], TimePicker.prototype, "readonly", void 0);