@wavemaker/app-ng-runtime 11.4.0-next.28701 → 11.4.0-rc.5342

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 (92) hide show
  1. app-ng-runtime/build-task/basic/tree/tree.build.d.ts +1 -2
  2. app-ng-runtime/build-task/bundles/index.umd.js +7 -9
  3. app-ng-runtime/build-task/bundles/index.umd.js.map +1 -1
  4. app-ng-runtime/build-task/esm2015/basic/tree/tree.build.js +3 -4
  5. app-ng-runtime/build-task/esm2015/navigation/popover/popover.build.js +3 -3
  6. app-ng-runtime/build-task/fesm2015/index.js +7 -9
  7. app-ng-runtime/build-task/fesm2015/index.js.map +1 -1
  8. app-ng-runtime/components/base/bundles/index.umd.js +7 -4
  9. app-ng-runtime/components/base/bundles/index.umd.js.map +1 -1
  10. app-ng-runtime/components/base/esm2015/utils/widget-utils.js +7 -4
  11. app-ng-runtime/components/base/esm2015/widgets/common/dialog/dialog.service.js +3 -3
  12. app-ng-runtime/components/base/fesm2015/index.js +8 -5
  13. app-ng-runtime/components/base/fesm2015/index.js.map +1 -1
  14. app-ng-runtime/components/base/utils/widget-utils.d.ts +1 -1
  15. app-ng-runtime/components/basic/tree/bundles/index.umd.js +280 -256
  16. app-ng-runtime/components/basic/tree/bundles/index.umd.js.map +1 -1
  17. app-ng-runtime/components/basic/tree/esm2015/public_api.js +2 -2
  18. app-ng-runtime/components/basic/tree/esm2015/tree.component.js +322 -0
  19. app-ng-runtime/components/basic/tree/esm2015/tree.module.js +3 -3
  20. app-ng-runtime/components/basic/tree/fesm2015/index.js +260 -248
  21. app-ng-runtime/components/basic/tree/fesm2015/index.js.map +1 -1
  22. app-ng-runtime/components/basic/tree/index.metadata.json +1 -1
  23. app-ng-runtime/components/basic/tree/public_api.d.ts +1 -1
  24. app-ng-runtime/components/basic/tree/tree.component.d.ts +34 -0
  25. app-ng-runtime/components/containers/tabs/bundles/index.umd.js +39 -23
  26. app-ng-runtime/components/containers/tabs/bundles/index.umd.js.map +1 -1
  27. app-ng-runtime/components/containers/tabs/esm2015/tab-pane/tab-pane.component.js +8 -1
  28. app-ng-runtime/components/containers/tabs/esm2015/tabs.animator.js +33 -13
  29. app-ng-runtime/components/containers/tabs/fesm2015/index.js +40 -13
  30. app-ng-runtime/components/containers/tabs/fesm2015/index.js.map +1 -1
  31. app-ng-runtime/components/containers/tabs/tabs.animator.d.ts +5 -1
  32. app-ng-runtime/components/data/list/bundles/index.umd.js +51 -42
  33. app-ng-runtime/components/data/list/bundles/index.umd.js.map +1 -1
  34. app-ng-runtime/components/data/list/esm2015/list.component.js +51 -42
  35. app-ng-runtime/components/data/list/fesm2015/index.js +50 -41
  36. app-ng-runtime/components/data/list/fesm2015/index.js.map +1 -1
  37. app-ng-runtime/components/data/list/index.metadata.json +1 -1
  38. app-ng-runtime/components/data/pagination/bundles/index.umd.js +21 -4
  39. app-ng-runtime/components/data/pagination/bundles/index.umd.js.map +1 -1
  40. app-ng-runtime/components/data/pagination/esm2015/pagination.component.js +22 -5
  41. app-ng-runtime/components/data/pagination/fesm2015/index.js +21 -4
  42. app-ng-runtime/components/data/pagination/fesm2015/index.js.map +1 -1
  43. app-ng-runtime/components/data/pagination/index.metadata.json +1 -1
  44. app-ng-runtime/components/data/pagination/pagination.component.d.ts +1 -0
  45. app-ng-runtime/components/data/table/bundles/index.umd.js +7 -0
  46. app-ng-runtime/components/data/table/bundles/index.umd.js.map +1 -1
  47. app-ng-runtime/components/data/table/esm2015/table.component.js +8 -1
  48. app-ng-runtime/components/data/table/fesm2015/index.js +7 -0
  49. app-ng-runtime/components/data/table/fesm2015/index.js.map +1 -1
  50. app-ng-runtime/components/data/table/index.metadata.json +1 -1
  51. app-ng-runtime/components/dialogs/default/base-dialog.d.ts +1 -0
  52. app-ng-runtime/components/dialogs/default/bundles/index.umd.js +13 -4
  53. app-ng-runtime/components/dialogs/default/bundles/index.umd.js.map +1 -1
  54. app-ng-runtime/components/dialogs/default/esm2015/base-dialog.js +14 -6
  55. app-ng-runtime/components/dialogs/default/fesm2015/index.js +13 -5
  56. app-ng-runtime/components/dialogs/default/fesm2015/index.js.map +1 -1
  57. app-ng-runtime/components/dialogs/default/index.metadata.json +1 -1
  58. app-ng-runtime/components/input/epoch/bundles/index.umd.js +66 -29
  59. app-ng-runtime/components/input/epoch/bundles/index.umd.js.map +1 -1
  60. app-ng-runtime/components/input/epoch/date-time/date-time-picker.component.d.ts +1 -0
  61. app-ng-runtime/components/input/epoch/esm2015/base-date-time.component.js +43 -25
  62. app-ng-runtime/components/input/epoch/esm2015/date/date.component.js +3 -3
  63. app-ng-runtime/components/input/epoch/esm2015/date-time/date-time-picker.component.js +31 -11
  64. app-ng-runtime/components/input/epoch/esm2015/date-time/date-time.component.js +2 -2
  65. app-ng-runtime/components/input/epoch/fesm2015/index.js +75 -37
  66. app-ng-runtime/components/input/epoch/fesm2015/index.js.map +1 -1
  67. app-ng-runtime/components/input/epoch/index.metadata.json +1 -1
  68. app-ng-runtime/components/navigation/popover/bundles/index.umd.js +3 -4
  69. app-ng-runtime/components/navigation/popover/bundles/index.umd.js.map +1 -1
  70. app-ng-runtime/components/navigation/popover/esm2015/popover.component.js +5 -6
  71. app-ng-runtime/components/navigation/popover/fesm2015/index.js +4 -5
  72. app-ng-runtime/components/navigation/popover/fesm2015/index.js.map +1 -1
  73. app-ng-runtime/mobile/components/page/default/bundles/index.umd.js +24 -6
  74. app-ng-runtime/mobile/components/page/default/bundles/index.umd.js.map +1 -1
  75. app-ng-runtime/mobile/components/page/default/esm2015/page.directive.js +20 -3
  76. app-ng-runtime/mobile/components/page/default/fesm2015/index.js +19 -2
  77. app-ng-runtime/mobile/components/page/default/fesm2015/index.js.map +1 -1
  78. app-ng-runtime/mobile/components/page/default/index.metadata.json +1 -1
  79. app-ng-runtime/mobile/components/page/default/page.directive.d.ts +4 -1
  80. app-ng-runtime/package.json +1 -1
  81. app-ng-runtime/scripts/datatable/datatable.js +23 -23
  82. app-ng-runtime/scripts/tree-keyboard-navigation/keyboard-navigation.js +251 -0
  83. app-ng-runtime/variables/bundles/index.umd.js +14 -4
  84. app-ng-runtime/variables/bundles/index.umd.js.map +1 -1
  85. app-ng-runtime/variables/esm2015/manager/action/notification-action.manager.js +5 -6
  86. app-ng-runtime/variables/esm2015/service/variables.service.js +8 -1
  87. app-ng-runtime/variables/fesm2015/index.js +11 -5
  88. app-ng-runtime/variables/fesm2015/index.js.map +1 -1
  89. app-ng-runtime/variables/index.metadata.json +1 -1
  90. app-ng-runtime/variables/service/variables.service.d.ts +4 -0
  91. app-ng-runtime/components/basic/tree/esm2015/tree.directive.js +0 -310
  92. app-ng-runtime/components/basic/tree/tree.directive.d.ts +0 -35
@@ -378,22 +378,32 @@
378
378
  configurable: true
379
379
  });
380
380
  DateTimePickerComponent.prototype.validateSelectedDate = function () {
381
- var _a, _b, _c, _d, _e, _f, _g;
381
+ var _a, _b, _c, _d, _e;
382
382
  if (!this.changedValue) {
383
383
  return true;
384
384
  }
385
385
  var cd = moment(this.changedValue);
386
- if (((_a = this._bsDatepickerConfig) === null || _a === void 0 ? void 0 : _a.minDate) && ((_b = this._bsDatepickerConfig) === null || _b === void 0 ? void 0 : _b.minDate) > this.changedValue) {
386
+ var minDate = (_a = this._bsDatepickerConfig) === null || _a === void 0 ? void 0 : _a.minDate;
387
+ var maxDate = (_b = this._bsDatepickerConfig) === null || _b === void 0 ? void 0 : _b.maxDate;
388
+ if (minDate
389
+ && ((this.mode === 'DATE'
390
+ && moment(minDate).startOf('day').toDate() > this.changedValue)
391
+ || (this.mode !== 'DATE'
392
+ && minDate > this.changedValue))) {
387
393
  return false;
388
394
  }
389
- if (((_c = this._bsDatepickerConfig) === null || _c === void 0 ? void 0 : _c.maxDate) && ((_d = this._bsDatepickerConfig) === null || _d === void 0 ? void 0 : _d.maxDate) < this.changedValue) {
395
+ if (maxDate
396
+ && ((this.mode === 'DATE'
397
+ && moment(maxDate).endOf('day').toDate() < this.changedValue)
398
+ || (this.mode !== 'DATE'
399
+ && maxDate < this.changedValue))) {
390
400
  return false;
391
401
  }
392
- if (((_f = (_e = this._bsDatepickerConfig) === null || _e === void 0 ? void 0 : _e.daysDisabled) === null || _f === void 0 ? void 0 : _f.indexOf(cd.day())) >= 0) {
402
+ if (((_d = (_c = this._bsDatepickerConfig) === null || _c === void 0 ? void 0 : _c.daysDisabled) === null || _d === void 0 ? void 0 : _d.indexOf(cd.day())) >= 0) {
393
403
  return false;
394
404
  }
395
405
  var cdSt = cd.startOf('day').toDate().getTime();
396
- if ((_g = this.excludedDatesToDisable) === null || _g === void 0 ? void 0 : _g.find(function (d) { return d.getTime() === cdSt; })) {
406
+ if ((_e = this.excludedDatesToDisable) === null || _e === void 0 ? void 0 : _e.find(function (d) { return d.getTime() === cdSt; })) {
397
407
  return false;
398
408
  }
399
409
  return true;
@@ -442,6 +452,11 @@
442
452
  newVal.setMilliseconds(oldVal.getMilliseconds());
443
453
  }
444
454
  this.changedValue = newVal;
455
+ if (this.mode === 'DATE'
456
+ && oldVal !== newVal
457
+ && this.validateSelectedDate()) {
458
+ this.onOkClick();
459
+ }
445
460
  };
446
461
  DateTimePickerComponent.prototype.onTimeUpdate = function (newVal) {
447
462
  this.changedValue = newVal;
@@ -461,6 +476,10 @@
461
476
  this.triggerChange();
462
477
  this.hideModal();
463
478
  };
479
+ DateTimePickerComponent.prototype.setToday = function () {
480
+ var today = moment().startOf('day').toDate();
481
+ this.onDateUpdate(today);
482
+ };
464
483
  DateTimePickerComponent.prototype.reset = function () {
465
484
  this.changedValue = this._value;
466
485
  };
@@ -495,7 +514,7 @@
495
514
  DateTimePickerComponent.decorators = [
496
515
  { type: core.Component, args: [{
497
516
  selector: 'wm-datetimepicker',
498
- template: " \n <ng-template #datetimepickerTemplate>\n <div class=\"app-datetime-picker\">\n <div class=\"modal-body\">\n <div class=\"mobile-datetime-picker-options\">\n \n </div>\n <bs-datepicker-inline\n [bsConfig]=\"bsDatepickerConfig\"\n [datesDisabled]=\"excludedDatesToDisable\"\n bsDatepicker\n [bsValue]=\"changedValue\"\n (bsValueChange)=\"onDateUpdate($event)\"\n *ngIf=\"mode === 'DATE_TIME' || mode === 'DATE'\">\n </bs-datepicker-inline>\n <wm-timepicker\n [value]=\"changedValue\"\n [min]=\"minTime\"\n [max]=\"maxTime\"\n (change)=\"onTimeUpdate($event)\"\n *ngIf=\"mode === 'DATE_TIME' || mode === 'TIME'\"></wm-timepicker>\n <span class=\"text-primary date-picker-value\">\n {{getDateLabel()}}\n </span>\n </div>\n <div class=\"modal-footer\">\n <button\n class=\"btn btn-secondary clear-btn\"\n (click)=\"clear()\">{{appLocale.MESSAGE_DATE_PICKER_CLEAR || \"Clear\" }}</button>\n <button\n class=\"btn btn-primary pull-right ok-btn\"\n (click)=\"onOkClick()\">{{appLocale.MESSAGE_DATE_PICKER_OK || \"Ok\" }}</button>\n <button\n class=\"btn btn-secondary pull-right cancel-btn\"\n (click)=\"hideModal()\">{{appLocale.MESSAGE_DATE_PICKER_CANCEL || \"Cancel\" }}</button>\n \n </div>\n </div>\n </ng-template>\n "
517
+ template: " \n <ng-template #datetimepickerTemplate>\n <div class=\"app-datetime-picker\">\n <div class=\"modal-body\">\n <div class=\"mobile-datetime-picker-options\">\n \n </div>\n <bs-datepicker-inline\n [bsConfig]=\"bsDatepickerConfig\"\n [datesDisabled]=\"excludedDatesToDisable\"\n bsDatepicker\n [bsValue]=\"changedValue\"\n (bsValueChange)=\"onDateUpdate($event)\"\n *ngIf=\"mode === 'DATE_TIME' || mode === 'DATE'\">\n </bs-datepicker-inline>\n <wm-timepicker\n [value]=\"changedValue\"\n [min]=\"minTime\"\n [max]=\"maxTime\"\n (change)=\"onTimeUpdate($event)\"\n *ngIf=\"mode === 'DATE_TIME' || mode === 'TIME'\"></wm-timepicker>\n <span class=\"text-primary date-picker-value\">\n {{getDateLabel()}}\n </span>\n </div>\n <div class=\"modal-footer\">\n <button\n *ngIf=\"mode === 'DATE_TIME' || mode === 'DATE'\"\n class=\"btn btn-secondary today-btn\"\n (click)=\"setToday()\">{{appLocale.MESSAGE_DATE_PICKER_TODAY || \"Today\" }}</button>\n <button\n class=\"btn btn-primary pull-right ok-btn\"\n *ngIf=\"mode === 'DATE_TIME' || mode === 'TIME'\"\n (click)=\"onOkClick()\">{{appLocale.MESSAGE_DATE_PICKER_OK || \"Ok\" }}</button>\n <button\n class=\"btn btn-secondary pull-right clear-btn\"\n (click)=\"clear()\">{{appLocale.MESSAGE_DATE_PICKER_CLEAR || \"Clear\" }}</button>\n </div>\n </div>\n </ng-template>\n "
499
518
  },] }
500
519
  ];
501
520
  DateTimePickerComponent.ctorParameters = function () { return [
@@ -544,8 +563,8 @@
544
563
  }
545
564
  return arr;
546
565
  };
547
- TimePickerComponent.prototype.set = function (_h, unit) {
548
- var index = _h.index, value = _h.value;
566
+ TimePickerComponent.prototype.set = function (_f, unit) {
567
+ var index = _f.index, value = _f.value;
549
568
  if (unit === 'HOUR') {
550
569
  this.value = moment(this.value).hour(parseInt(value)).toDate();
551
570
  }
@@ -659,7 +678,6 @@
659
678
  enumerable: false,
660
679
  configurable: true
661
680
  });
662
- ;
663
681
  /**
664
682
  * returns true if the input value is default (i.e open date picker on input click)
665
683
  * @param1 dropdownvalue, user selected value (by default datepicker opens on input click)
@@ -709,7 +727,7 @@
709
727
  };
710
728
  }
711
729
  /* WMS-18269 | Extending the existing validation for 'required' */
712
- if (this["show"] && this["required"]) {
730
+ if (this['show'] && this['required']) {
713
731
  return !!c.value ? null : { required: true };
714
732
  }
715
733
  this.validateType = '';
@@ -852,14 +870,18 @@
852
870
  var newDay = newDate.getDate().toString();
853
871
  _.filter($("span:contains(" + newDay + ")").not('.is-other-month'), function (obj) {
854
872
  if ($(obj).text() === newDay) {
873
+ if ($(obj).hasClass('selected')) {
874
+ $(obj).parent().attr('aria-selected', 'true');
875
+ }
855
876
  $(obj).attr('aria-label', moment(newDate).format('dddd, MMMM Do YYYY'));
877
+ $('[bsdatepickerdaydecorator]').not('.is-other-month').attr('tabindex', '-1');
878
+ $(obj).attr('tabindex', '0');
856
879
  $(obj).focus();
857
880
  _this.activeDate = newDate;
858
881
  }
859
882
  });
860
883
  if (newDate.getMonth() === new Date().getMonth() && newDate.getFullYear() === new Date().getFullYear()) {
861
884
  _this.hightlightToday();
862
- $("span:contains(" + new Date().getDate().toString() + ")").not('.is-other-month').parent().attr('aria-selected', 'true');
863
885
  }
864
886
  });
865
887
  };
@@ -910,6 +932,9 @@
910
932
  if (event.originalEvent) {
911
933
  _this.setFocusForDate(-1);
912
934
  }
935
+ setTimeout(function () {
936
+ $(".bs-datepicker-head .previous").focus();
937
+ });
913
938
  });
914
939
  datePickerHead.find(".next").click(function (event) {
915
940
  _this.next = _this.getMonth(_this.activeDate, 2);
@@ -919,6 +944,9 @@
919
944
  if (event.originalEvent) {
920
945
  _this.setFocusForDate(1);
921
946
  }
947
+ setTimeout(function () {
948
+ $(".bs-datepicker-head .next").focus();
949
+ });
922
950
  });
923
951
  datePickerHead.find(".current").click(function (event) {
924
952
  // check for original mouse click
@@ -935,6 +963,22 @@
935
963
  });
936
964
  datePickerHead.find('.next').attr('aria-label', "Next Month, " + this.next.fullMonth + " " + this.next.date.getFullYear());
937
965
  datePickerHead.find('.previous').attr('aria-label', "Previous Month, " + this.prev.fullMonth + " " + this.prev.date.getFullYear());
966
+ setTimeout(function () {
967
+ var currentNodes = datePickerHead.find('.current span');
968
+ var msg = 'Changed to month ';
969
+ // currentNodes.each((i) => {
970
+ // msg =`${msg} ${$(currentNodes[i]).text()}`;
971
+ // });
972
+ datePickerHead.find('.current').attr("aria-live", "assertive").attr("aria-atomic", "false");
973
+ if (_this.clicked) {
974
+ if ($(currentNodes[0]).text()) {
975
+ datePickerHead.find('.ng-star-inserted').prepend("<div class=\"sr-only\">" + msg + "</div>");
976
+ }
977
+ if ($(currentNodes[1]).text()) {
978
+ datePickerHead.find('.current').last().prepend("<div class=\"sr-only\"> and year </div>");
979
+ }
980
+ }
981
+ });
938
982
  };
939
983
  /**
940
984
  * This method sets focus for months/days depending on the loaded datepicker table
@@ -1102,8 +1146,6 @@
1102
1146
  BaseDateTimeComponent.prototype.loadMonths = function () {
1103
1147
  var _this = this;
1104
1148
  setTimeout(function () {
1105
- var datePickerBody = $('.bs-datepicker-body');
1106
- datePickerBody.find('table.months span').attr('tabindex', '0');
1107
1149
  _this.addKeyBoardEventsForMonths();
1108
1150
  _this.addDatepickerMouseEvents();
1109
1151
  });
@@ -1158,8 +1200,6 @@
1158
1200
  BaseDateTimeComponent.prototype.loadYears = function () {
1159
1201
  var _this = this;
1160
1202
  setTimeout(function () {
1161
- var datePickerBody = $('.bs-datepicker-body');
1162
- datePickerBody.find('table.years span').attr('tabindex', '0');
1163
1203
  _this.addKeyBoardEventsForYears();
1164
1204
  _this.addDatepickerMouseEvents();
1165
1205
  });
@@ -1181,6 +1221,8 @@
1181
1221
  }
1182
1222
  }
1183
1223
  setTimeout(function () {
1224
+ $(".bs-datepicker-body table.months span").attr('tabindex', '-1');
1225
+ $(".bs-datepicker-body table.months span:contains(" + newMonth + ")").attr('tabindex', '0');
1184
1226
  $(".bs-datepicker-body table.months span:contains(" + newMonth + ")").focus();
1185
1227
  _this.activeDate = newDate;
1186
1228
  });
@@ -1241,6 +1283,8 @@
1241
1283
  }
1242
1284
  }
1243
1285
  setTimeout(function () {
1286
+ $(".bs-datepicker-body table.years span").attr('tabindex', '-1');
1287
+ $(".bs-datepicker-body table.years span:contains(" + newYear + ")").attr('tabindex', '0');
1244
1288
  $(".bs-datepicker-body table.years span:contains(" + newYear + ")").focus();
1245
1289
  _this.activeDate = newDate;
1246
1290
  });
@@ -1432,11 +1476,6 @@
1432
1476
  children[i].classList.remove('add-opacity');
1433
1477
  }
1434
1478
  displayInputElem.classList.remove('remove-opacity');
1435
- var allDateTimeElements = this.nativeElement.getElementsByTagName('*');
1436
- for (var i = 0; i < allDateTimeElements.length; i++) {
1437
- allDateTimeElements[i].setAttribute('tabindex', this.tabindex);
1438
- }
1439
- displayInputElem.removeAttribute('tabindex');
1440
1479
  }
1441
1480
  };
1442
1481
  BaseDateTimeComponent.prototype.onDateTimeInputFocus = function (skipFocus) {
@@ -1452,11 +1491,6 @@
1452
1491
  children[i].classList.add('add-opacity');
1453
1492
  }
1454
1493
  displayInputElem.classList.add('remove-opacity');
1455
- var allDateTimeElements = this.nativeElement.getElementsByTagName('*');
1456
- for (var i = 0; i < allDateTimeElements.length; i++) {
1457
- allDateTimeElements[i].setAttribute('tabindex', '-1');
1458
- }
1459
- displayInputElem.setAttribute('tabindex', this.tabindex);
1460
1494
  return;
1461
1495
  }
1462
1496
  if (displayInputElem && this._triggeredByUser) {
@@ -1548,7 +1582,10 @@
1548
1582
  // this mobileinput width varies in ios hence setting width here.
1549
1583
  var mobileInput = this.getMobileInput();
1550
1584
  if (mobileInput) {
1551
- mobileInput.style.width = mobileInput.parentElement.clientWidth + 'px';
1585
+ setTimeout(function () {
1586
+ mobileInput.style.width = '100%';
1587
+ mobileInput.style.height = '100%';
1588
+ });
1552
1589
  }
1553
1590
  };
1554
1591
  BaseDateTimeComponent.prototype.ngOnDestroy = function () {
@@ -1819,7 +1856,7 @@
1819
1856
  if (this.isDropDownDisplayEnabledOnInput(this.showdropdownon)) {
1820
1857
  event.stopPropagation();
1821
1858
  var action = this.keyEventPlugin.constructor.getEventFullKey(event);
1822
- if (action === 'enter' || action === 'arrowdown') {
1859
+ if (action === 'enter') {
1823
1860
  var newVal = core$1.getDateObj(event.target.value, { pattern: this.datepattern });
1824
1861
  event.preventDefault();
1825
1862
  var formattedDate = core$1.getFormattedDate(this.datePipe, newVal, this.dateInputFormat, this.timeZone, null, this.isCurrentDate, this);
@@ -1871,7 +1908,7 @@
1871
1908
  DateComponent.decorators = [
1872
1909
  { type: core.Component, args: [{
1873
1910
  selector: '[wmDate]',
1874
- template: " <input class=\"form-control app-textbox app-dateinput display-input\"\n focus-target\n type=\"text\"\n [name]=\"name\"\n [tabindex]=\"tabindex\"\n [value]=\"displayValue\"\n (click)=\"toggleDpDropdown($event, true)\"\n (focus)=\"onDateTimeInputFocus(); invokeOnFocus($event);\"\n (blur)=\"onInputBlur($event)\"\n [disabled]=\"disabled || readonly\"\n [autofocus]=\"autofocus\"\n [required]=\"required\"\n [readOnly]=\"isReadOnly\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"hint\"\n (change)=\"onDisplayDateChange($event)\"\n (keydown)=\"this._triggeredByUser = true; onDisplayKeydown($event);\">\n\n <span class=\"input-group-btn\">\n <button type=\"button\"\n class=\"btn btn-default btn-time\"\n [tabindex]=\"tabindex\"\n [disabled]=\"disabled || readonly\"\n [attr.aria-label]=\"displayValue ? 'Change Date ' + displayValue : 'Choose date by pressing enter'\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n (click)=\"toggleDpDropdown($event, false)\">\n <i aria-hidden=\"true\"\n class=\"app-icon wm-sl-l sl-calendar\"></i>\n </button>\n </span>\n <div style=\"width: 0;display: inline-block;\">\n <input class=\"model-holder\"\n aria-label=\"datepicker dropdownmenu\"\n aria-controls=\"date\"\n [container]=\"containerTarget || 'body'\"\n [bsConfig]=\"_dateOptions\"\n [isOpen]=\"isOpen\"\n #datepicker=\"bsDatepicker\"\n bsDatepicker\n [daysDisabled]=\"excludedDaysToDisable\"\n [datesDisabled]=\"excludedDatesToDisable\"\n placement=\"bottom right\"\n [isDisabled]=\"disabled || readonly\"\n [bsValue]=\"bsDataValue\"\n (onShown)=\"onDatePickerOpen()\"\n (onHidden)=\"hideDatepickerDropdown()\"\n (bsValueChange)=\"onDateChange($event)\">\n</div>\n\n<ng-template [ngIf]=\"loadNativeDateInput\">\n <wm-datetimepicker\n dateTimePicker\n mode=\"DATE\"\n [config]=\"_dateOptions\"\n [placement]=\"modal\"\n [excludedDaysToDisable]=\"excludedDaysToDisable\"\n [excludedDatesToDisable]=\"excludedDatesToDisable\"\n [displayFormat]=\"dateInputFormat\"\n [value]=\"bsDataValue\"\n (change)=\"onDateChange($event)\">\n </wm-datetimepicker>\n <div class=\"mobile-input mobile-datepicker-container\"\n tabindex=\"1000000\"\n (focus)=\"onDateTimeInputFocus(true); invokeOnFocus($event);\"\n (blur)=\"onDateTimeInputBlur(); invokeOnTouched($event)\"\n (click)=\"!(disabled || readonly || isCurrentDate) && showDatePickerModal()\">\n </div>\n</ng-template>\n",
1911
+ template: " <input class=\"form-control app-textbox app-dateinput display-input\"\n focus-target\n type=\"text\"\n [name]=\"name\"\n [tabindex]=\"loadNativeDateInput ? '-1' : tabindex\"\n [attr.aria-hidden]=\"!!loadNativeDateInput\"\n [value]=\"displayValue\"\n (click)=\"toggleDpDropdown($event, true)\"\n (focus)=\"onDateTimeInputFocus(); invokeOnFocus($event);\"\n (blur)=\"onInputBlur($event)\"\n [disabled]=\"disabled || readonly\"\n [autofocus]=\"autofocus\"\n [required]=\"required\"\n [readOnly]=\"isReadOnly\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"hint\"\n (change)=\"onDisplayDateChange($event)\"\n (keydown)=\"this._triggeredByUser = true; onDisplayKeydown($event);\">\n\n <span class=\"input-group-btn\">\n <button type=\"button\"\n class=\"btn btn-default btn-time\"\n [tabindex]=\"loadNativeDateInput ? '-1' : tabindex\"\n [attr.aria-hidden]=\"!!loadNativeDateInput\"\n [disabled]=\"disabled || readonly\"\n [attr.aria-label]=\"displayValue ? 'Change Date ' + displayValue : 'Choose date by pressing enter'\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n (click)=\"toggleDpDropdown($event, false)\">\n <i aria-hidden=\"true\"\n class=\"app-icon wm-sl-l sl-calendar\"></i>\n </button>\n </span>\n <div style=\"width: 0;display: inline-block;\">\n <input class=\"model-holder\"\n aria-label=\"datepicker dropdownmenu\"\n aria-controls=\"date\"\n [tabindex]=\"-1\"\n [attr.aria-hidden]=\"!!loadNativeDateInput\"\n [container]=\"containerTarget || 'body'\"\n [bsConfig]=\"_dateOptions\"\n [isOpen]=\"isOpen\"\n #datepicker=\"bsDatepicker\"\n bsDatepicker\n [daysDisabled]=\"excludedDaysToDisable\"\n [datesDisabled]=\"excludedDatesToDisable\"\n placement=\"bottom right\"\n [isDisabled]=\"disabled || readonly\"\n [bsValue]=\"bsDataValue\"\n (onShown)=\"onDatePickerOpen()\"\n (onHidden)=\"hideDatepickerDropdown()\"\n (bsValueChange)=\"onDateChange($event)\">\n</div>\n\n<ng-template [ngIf]=\"loadNativeDateInput\">\n <wm-datetimepicker\n dateTimePicker\n mode=\"DATE\"\n [config]=\"_dateOptions\"\n [placement]=\"modal\"\n [excludedDaysToDisable]=\"excludedDaysToDisable\"\n [excludedDatesToDisable]=\"excludedDatesToDisable\"\n [displayFormat]=\"dateInputFormat\"\n [value]=\"bsDataValue\"\n (change)=\"onDateChange($event)\">\n </wm-datetimepicker>\n <div class=\"mobile-input mobile-datepicker-container\"\n [tabindex]=\"tabindex || 0\"\n (focus)=\"onDateTimeInputFocus(true); invokeOnFocus($event);\"\n (blur)=\"onDateTimeInputBlur(); invokeOnTouched($event)\"\n [attr.aria-label]=\"displayValue ? 'Change Date' + displayValue : 'Choose Date'\"\n (click)=\"!(disabled || readonly || isCurrentDate) && showDatePickerModal()\">\n </div>\n</ng-template>\n",
1875
1912
  providers: [
1876
1913
  base.provideAs(DateComponent, forms.NG_VALUE_ACCESSOR, true),
1877
1914
  base.provideAs(DateComponent, forms.NG_VALIDATORS, true),
@@ -2359,7 +2396,7 @@
2359
2396
  DatetimeComponent.decorators = [
2360
2397
  { type: core.Component, args: [{
2361
2398
  selector: '[wmDateTime]',
2362
- template: " <div dropdown\n [isOpen]=\"isTimeOpen\"\n autoClose=\"false\"\n [container]=\"'body'\"\n (onShown)=\"onTimepickerOpen()\"\n style=\"display: inherit;\">\n <input class=\"form-control app-textbox display-input\"\n [attr.aria-label]=\"hint\"\n focus-target\n [name]=\"name\"\n [tabindex]=\"tabindex\"\n type=\"text\"\n [value]=\"displayValue\"\n (click)=\"toggleDpDropdown($event, true)\"\n (focus)=\"onDateTimeInputFocus(); invokeOnFocus($event);\"\n (blur)=\"onInputBlur($event)\"\n (change)=\"onDateChange($event)\"\n [autofocus]=\"autofocus\"\n [disabled]=\"disabled || readonly || isCurrentDate\"\n [required]=\"required\"\n [readOnly]=\"isReadOnly\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n (keydown)=\"this._triggeredByUser = true; onDisplayKeydown($event)\">\n\n <span class=\"input-group-btn\">\n <button type=\"button\"\n class=\"btn btn-default btn-date\"\n [tabindex]=\"tabindex\"\n [disabled]=\"disabled || readonly || isCurrentDate\"\n [attr.aria-label]=\"displayValue ? 'Change Date ' + displayValue : 'Choose date by pressing enter'\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n (click)=\"toggleDpDropdown($event, false)\">\n <i aria-hidden=\"true\"\n class=\"app-icon wm-sl-l sl-calendar\"></i>\n </button>\n <button type=\"button\"\n class=\"btn btn-default btn-time\"\n [tabindex]=\"tabindex\"\n [disabled]=\"disabled || readonly || isCurrentDate\"\n aria-label=\"Select time\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n (click)=\"toggleTimePicker(!isTimeOpen, $event)\">\n <i aria-hidden=\"true\"\n class=\"app-icon wm-sl-l sl-time\"></i>\n </button>\n </span>\n <div style=\"width: 0;display: inline-block;\">\n <input class=\"model-holder\"\n aria-label=\"datepicker dropdownmenu\"\n aria-controls=\"date\"\n focus-target\n [container]=\"containerTarget || 'body'\"\n [bsConfig]=\"_dateOptions\"\n [isOpen]=\"isDateOpen\"\n placement=\"bottom right\"\n (onShown)=\"onDatePickerOpen()\"\n (onHidden)=\"hideDatepickerDropdown()\"\n [daysDisabled]=\"excludedDaysToDisable\"\n [datesDisabled]=\"excludedDatesToDisable\"\n #datepicker=bsDatepicker\n bsDatepicker\n [isDisabled]=\"disabled || readonly || isCurrentDate\"\n [bsValue]=\"bsDateValue\"\n (bsValueChange)=\"onModelUpdate($event, 'date')\">\n </div>\n <div *dropdownMenu\n class=\"dropdown-menu\"\n aria-label=\"timepicker dropdown\"\n aria-controls=\"time\"\n (click)=\"preventTpClose($event)\">\n <timepicker class=\"model-holder\"\n [showMeridian]=\"ismeridian\"\n [readonlyInput]=\"disabled || readonly || isCurrentDate\"\n [(ngModel)]=\"bsTimeValue\"\n [min]=\"minTime\"\n [max]=\"maxTime\"\n [hourStep]=\"hourstep\"\n [minuteStep]=\"minutestep\"\n [secondsStep]=\"secondsstep\"\n [mousewheel]=\"true\"\n [arrowkeys]=\"true\"\n (isValid)=\"isValid($event)\"\n [showSeconds]=\"showseconds\"\n (ngModelChange)=\"onModelUpdate($event, 'time')\"></timepicker>\n </div>\n </div>\n<ng-template [ngIf]=\"loadNativeDateInput\">\n <wm-datetimepicker\n dateTimePicker\n [config]=\"_dateOptions\"\n [placement]=\"modal\"\n [excludedDaysToDisable]=\"excludedDaysToDisable\"\n [excludedDatesToDisable]=\"excludedDatesToDisable\"\n [displayFormat]=\"dateInputFormat\"\n [value]=\"bsDateValue\"\n (change)=\"onModelUpdate($event, 'date')\">\n </wm-datetimepicker>\n <div class=\"mobile-input mobile-datepicker-container\"\n tabindex=\"1000000\"\n (focus)=\"onDateTimeInputFocus(true); invokeOnFocus($event)\"\n (blur)=\"onDateTimeInputBlur(); invokeOnTouched($event)\"\n (click)=\"!(disabled || readonly || isCurrentDate) && showDatePickerModal()\">\n </div>\n</ng-template>\n",
2399
+ template: " <div dropdown\n [isOpen]=\"isTimeOpen\"\n autoClose=\"false\"\n [container]=\"'body'\"\n (onShown)=\"onTimepickerOpen()\"\n style=\"display: inherit;\">\n <input class=\"form-control app-textbox display-input\"\n [attr.aria-label]=\"hint\"\n focus-target\n [name]=\"name\"\n [tabindex]=\"loadNativeDateInput ? '-1' : tabindex\"\n [attr.aria-hidden]=\"!!loadNativeDateInput\"\n type=\"text\"\n [value]=\"displayValue\"\n (click)=\"toggleDpDropdown($event, true)\"\n (focus)=\"onDateTimeInputFocus(); invokeOnFocus($event);\"\n (blur)=\"onInputBlur($event)\"\n (change)=\"onDateChange($event)\"\n [autofocus]=\"autofocus\"\n [disabled]=\"disabled || readonly || isCurrentDate\"\n [required]=\"required\"\n [readOnly]=\"isReadOnly\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n (keydown)=\"this._triggeredByUser = true; onDisplayKeydown($event)\">\n\n <span class=\"input-group-btn\">\n <button type=\"button\"\n class=\"btn btn-default btn-date\"\n [tabindex]=\"loadNativeDateInput ? '-1' : tabindex\"\n [attr.aria-hidden]=\"!!loadNativeDateInput\"\n [disabled]=\"disabled || readonly || isCurrentDate\"\n [attr.aria-label]=\"displayValue ? 'Change Date ' + displayValue : 'Choose date by pressing enter'\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n (click)=\"toggleDpDropdown($event, false)\">\n <i aria-hidden=\"true\"\n class=\"app-icon wm-sl-l sl-calendar\"></i>\n </button>\n <button type=\"button\"\n class=\"btn btn-default btn-time\"\n [tabindex]=\"loadNativeDateInput ? '-1' : tabindex\"\n [attr.aria-hidden]=\"!!loadNativeDateInput\"\n [disabled]=\"disabled || readonly || isCurrentDate\"\n aria-label=\"Select time\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n (click)=\"toggleTimePicker(!isTimeOpen, $event)\">\n <i aria-hidden=\"true\"\n class=\"app-icon wm-sl-l sl-time\"></i>\n </button>\n </span>\n <div style=\"width: 0;display: inline-block;\">\n <input class=\"model-holder\"\n aria-label=\"datepicker dropdownmenu\"\n aria-controls=\"date\"\n focus-target\n [tabindex]=\"-1\"\n [attr.aria-hidden]=\"!!loadNativeDateInput\"\n [container]=\"containerTarget || 'body'\"\n [bsConfig]=\"_dateOptions\"\n [isOpen]=\"isDateOpen\"\n placement=\"bottom right\"\n (onShown)=\"onDatePickerOpen()\"\n (onHidden)=\"hideDatepickerDropdown()\"\n [daysDisabled]=\"excludedDaysToDisable\"\n [datesDisabled]=\"excludedDatesToDisable\"\n #datepicker=bsDatepicker\n bsDatepicker\n [isDisabled]=\"disabled || readonly || isCurrentDate\"\n [bsValue]=\"bsDateValue\"\n (bsValueChange)=\"onModelUpdate($event, 'date')\">\n </div>\n <div *dropdownMenu\n class=\"dropdown-menu\"\n aria-label=\"timepicker dropdown\"\n aria-controls=\"time\"\n (click)=\"preventTpClose($event)\">\n <timepicker class=\"model-holder\"\n [showMeridian]=\"ismeridian\"\n [readonlyInput]=\"disabled || readonly || isCurrentDate\"\n [(ngModel)]=\"bsTimeValue\"\n [min]=\"minTime\"\n [max]=\"maxTime\"\n [hourStep]=\"hourstep\"\n [minuteStep]=\"minutestep\"\n [secondsStep]=\"secondsstep\"\n [mousewheel]=\"true\"\n [arrowkeys]=\"true\"\n (isValid)=\"isValid($event)\"\n [showSeconds]=\"showseconds\"\n (ngModelChange)=\"onModelUpdate($event, 'time')\"></timepicker>\n </div>\n </div>\n<ng-template [ngIf]=\"loadNativeDateInput\">\n <wm-datetimepicker\n dateTimePicker\n [config]=\"_dateOptions\"\n [placement]=\"modal\"\n [excludedDaysToDisable]=\"excludedDaysToDisable\"\n [excludedDatesToDisable]=\"excludedDatesToDisable\"\n [displayFormat]=\"dateInputFormat\"\n [value]=\"bsDateValue\"\n (change)=\"onModelUpdate($event, 'date')\">\n </wm-datetimepicker>\n <div class=\"mobile-input mobile-datepicker-container\"\n [tabindex]=\"tabindex || 0\"\n (focus)=\"onDateTimeInputFocus(true); invokeOnFocus($event)\"\n (blur)=\"onDateTimeInputBlur(); invokeOnTouched($event)\"\n (click)=\"!(disabled || readonly || isCurrentDate) && showDatePickerModal()\">\n </div>\n</ng-template>\n",
2363
2400
  providers: [
2364
2401
  base.provideAs(DatetimeComponent, forms.NG_VALUE_ACCESSOR, true),
2365
2402
  base.provideAs(DatetimeComponent, forms.NG_VALIDATORS, true),