@wavemaker/app-ng-runtime 11.4.0-next.25701 → 11.4.0-next.25703

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 (59) hide show
  1. app-ng-runtime/build-task/basic/tree/tree.build.d.ts +2 -1
  2. app-ng-runtime/build-task/bundles/index.umd.js +9 -7
  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 +4 -3
  5. app-ng-runtime/build-task/esm2015/navigation/popover/popover.build.js +3 -3
  6. app-ng-runtime/build-task/fesm2015/index.js +9 -7
  7. app-ng-runtime/build-task/fesm2015/index.js.map +1 -1
  8. app-ng-runtime/components/base/bundles/index.umd.js +3 -6
  9. app-ng-runtime/components/base/bundles/index.umd.js.map +1 -1
  10. app-ng-runtime/components/base/esm2015/utils/widget-utils.js +4 -7
  11. app-ng-runtime/components/base/fesm2015/index.js +3 -6
  12. app-ng-runtime/components/base/fesm2015/index.js.map +1 -1
  13. app-ng-runtime/components/base/utils/widget-utils.d.ts +1 -1
  14. app-ng-runtime/components/basic/tree/bundles/index.umd.js +256 -280
  15. app-ng-runtime/components/basic/tree/bundles/index.umd.js.map +1 -1
  16. app-ng-runtime/components/basic/tree/esm2015/public_api.js +2 -2
  17. app-ng-runtime/components/basic/tree/esm2015/tree.directive.js +310 -0
  18. app-ng-runtime/components/basic/tree/esm2015/tree.module.js +3 -3
  19. app-ng-runtime/components/basic/tree/fesm2015/index.js +248 -260
  20. app-ng-runtime/components/basic/tree/fesm2015/index.js.map +1 -1
  21. app-ng-runtime/components/basic/tree/index.metadata.json +1 -1
  22. app-ng-runtime/components/basic/tree/public_api.d.ts +1 -1
  23. app-ng-runtime/components/basic/tree/tree.directive.d.ts +35 -0
  24. app-ng-runtime/components/data/list/bundles/index.umd.js +4 -28
  25. app-ng-runtime/components/data/list/bundles/index.umd.js.map +1 -1
  26. app-ng-runtime/components/data/list/esm2015/list.component.js +5 -29
  27. app-ng-runtime/components/data/list/fesm2015/index.js +4 -28
  28. app-ng-runtime/components/data/list/fesm2015/index.js.map +1 -1
  29. app-ng-runtime/components/data/list/index.metadata.json +1 -1
  30. app-ng-runtime/components/dialogs/default/bundles/index.umd.js.map +1 -1
  31. app-ng-runtime/components/dialogs/default/esm2015/base-dialog.js +1 -1
  32. app-ng-runtime/components/dialogs/default/fesm2015/index.js.map +1 -1
  33. app-ng-runtime/components/dialogs/default/index.metadata.json +1 -1
  34. app-ng-runtime/components/input/epoch/bundles/index.umd.js +21 -39
  35. app-ng-runtime/components/input/epoch/bundles/index.umd.js.map +1 -1
  36. app-ng-runtime/components/input/epoch/esm2015/base-date-time.component.js +25 -43
  37. app-ng-runtime/components/input/epoch/esm2015/date/date.component.js +3 -3
  38. app-ng-runtime/components/input/epoch/esm2015/date-time/date-time.component.js +2 -2
  39. app-ng-runtime/components/input/epoch/fesm2015/index.js +27 -45
  40. app-ng-runtime/components/input/epoch/fesm2015/index.js.map +1 -1
  41. app-ng-runtime/components/input/epoch/index.metadata.json +1 -1
  42. app-ng-runtime/components/navigation/popover/bundles/index.umd.js +4 -3
  43. app-ng-runtime/components/navigation/popover/bundles/index.umd.js.map +1 -1
  44. app-ng-runtime/components/navigation/popover/esm2015/popover.component.js +6 -5
  45. app-ng-runtime/components/navigation/popover/fesm2015/index.js +5 -4
  46. app-ng-runtime/components/navigation/popover/fesm2015/index.js.map +1 -1
  47. app-ng-runtime/package.json +1 -1
  48. app-ng-runtime/scripts/datatable/datatable.js +23 -23
  49. app-ng-runtime/variables/bundles/index.umd.js +4 -14
  50. app-ng-runtime/variables/bundles/index.umd.js.map +1 -1
  51. app-ng-runtime/variables/esm2015/manager/action/notification-action.manager.js +6 -5
  52. app-ng-runtime/variables/esm2015/service/variables.service.js +1 -8
  53. app-ng-runtime/variables/fesm2015/index.js +5 -11
  54. app-ng-runtime/variables/fesm2015/index.js.map +1 -1
  55. app-ng-runtime/variables/index.metadata.json +1 -1
  56. app-ng-runtime/variables/service/variables.service.d.ts +0 -4
  57. app-ng-runtime/components/basic/tree/esm2015/tree.component.js +0 -322
  58. app-ng-runtime/components/basic/tree/tree.component.d.ts +0 -34
  59. app-ng-runtime/scripts/tree-keyboard-navigation/keyboard-navigation.js +0 -251
@@ -380,6 +380,7 @@ class BaseDateTimeComponent extends BaseFormCustomComponent {
380
380
  this.loadNativeDateInput = isMobile() && !this.showcustompicker;
381
381
  }
382
382
  get timeZone() { return this.inj.get(AbstractI18nService).getTimezone(this); }
383
+ ;
383
384
  /**
384
385
  * returns true if the input value is default (i.e open date picker on input click)
385
386
  * @param1 dropdownvalue, user selected value (by default datepicker opens on input click)
@@ -429,7 +430,7 @@ class BaseDateTimeComponent extends BaseFormCustomComponent {
429
430
  };
430
431
  }
431
432
  /* WMS-18269 | Extending the existing validation for 'required' */
432
- if (this['show'] && this['required']) {
433
+ if (this["show"] && this["required"]) {
433
434
  return !!c.value ? null : { required: true };
434
435
  }
435
436
  this.validateType = '';
@@ -570,18 +571,14 @@ class BaseDateTimeComponent extends BaseFormCustomComponent {
570
571
  const newDay = newDate.getDate().toString();
571
572
  _.filter($(`span:contains(${newDay})`).not('.is-other-month'), (obj) => {
572
573
  if ($(obj).text() === newDay) {
573
- if ($(obj).hasClass('selected')) {
574
- $(obj).parent().attr('aria-selected', 'true');
575
- }
576
574
  $(obj).attr('aria-label', moment(newDate).format('dddd, MMMM Do YYYY'));
577
- $('[bsdatepickerdaydecorator]').not('.is-other-month').attr('tabindex', '-1');
578
- $(obj).attr('tabindex', '0');
579
575
  $(obj).focus();
580
576
  this.activeDate = newDate;
581
577
  }
582
578
  });
583
579
  if (newDate.getMonth() === new Date().getMonth() && newDate.getFullYear() === new Date().getFullYear()) {
584
580
  this.hightlightToday();
581
+ $(`span:contains(${new Date().getDate().toString()})`).not('.is-other-month').parent().attr('aria-selected', 'true');
585
582
  }
586
583
  });
587
584
  }
@@ -609,7 +606,7 @@ class BaseDateTimeComponent extends BaseFormCustomComponent {
609
606
  getMonth(date, inc) {
610
607
  const currentMonth = new Date(date);
611
608
  let month = currentMonth.getMonth();
612
- const year = currentMonth.getFullYear();
609
+ let year = currentMonth.getFullYear();
613
610
  month += inc;
614
611
  const newDate = new Date(year, month);
615
612
  const fullMonth = newDate.toLocaleString('en-US', { month: 'long' });
@@ -631,9 +628,6 @@ class BaseDateTimeComponent extends BaseFormCustomComponent {
631
628
  if (event.originalEvent) {
632
629
  this.setFocusForDate(-1);
633
630
  }
634
- setTimeout(() => {
635
- $(`.bs-datepicker-head .previous`).focus();
636
- });
637
631
  });
638
632
  datePickerHead.find(`.next`).click((event) => {
639
633
  this.next = this.getMonth(this.activeDate, 2);
@@ -643,9 +637,6 @@ class BaseDateTimeComponent extends BaseFormCustomComponent {
643
637
  if (event.originalEvent) {
644
638
  this.setFocusForDate(1);
645
639
  }
646
- setTimeout(() => {
647
- $(`.bs-datepicker-head .next`).focus();
648
- });
649
640
  });
650
641
  datePickerHead.find(`.current`).click((event) => {
651
642
  // check for original mouse click
@@ -662,22 +653,6 @@ class BaseDateTimeComponent extends BaseFormCustomComponent {
662
653
  });
663
654
  datePickerHead.find('.next').attr('aria-label', `Next Month, ${this.next.fullMonth} ${this.next.date.getFullYear()}`);
664
655
  datePickerHead.find('.previous').attr('aria-label', `Previous Month, ${this.prev.fullMonth} ${this.prev.date.getFullYear()}`);
665
- setTimeout(() => {
666
- const currentNodes = datePickerHead.find('.current span');
667
- const msg = 'Changed to month ';
668
- // currentNodes.each((i) => {
669
- // msg =`${msg} ${$(currentNodes[i]).text()}`;
670
- // });
671
- datePickerHead.find('.current').attr("aria-live", "assertive").attr("aria-atomic", "false");
672
- if (this.clicked) {
673
- if ($(currentNodes[0]).text()) {
674
- datePickerHead.find('.ng-star-inserted').prepend(`<div class="sr-only">${msg}</div>`);
675
- }
676
- if ($(currentNodes[1]).text()) {
677
- datePickerHead.find('.current').last().prepend(`<div class="sr-only"> and year </div>`);
678
- }
679
- }
680
- });
681
656
  }
682
657
  /**
683
658
  * This method sets focus for months/days depending on the loaded datepicker table
@@ -841,6 +816,8 @@ class BaseDateTimeComponent extends BaseFormCustomComponent {
841
816
  */
842
817
  loadMonths() {
843
818
  setTimeout(() => {
819
+ const datePickerBody = $('.bs-datepicker-body');
820
+ datePickerBody.find('table.months span').attr('tabindex', '0');
844
821
  this.addKeyBoardEventsForMonths();
845
822
  this.addDatepickerMouseEvents();
846
823
  });
@@ -893,6 +870,8 @@ class BaseDateTimeComponent extends BaseFormCustomComponent {
893
870
  */
894
871
  loadYears() {
895
872
  setTimeout(() => {
873
+ const datePickerBody = $('.bs-datepicker-body');
874
+ datePickerBody.find('table.years span').attr('tabindex', '0');
896
875
  this.addKeyBoardEventsForYears();
897
876
  this.addDatepickerMouseEvents();
898
877
  });
@@ -913,8 +892,6 @@ class BaseDateTimeComponent extends BaseFormCustomComponent {
913
892
  }
914
893
  }
915
894
  setTimeout(() => {
916
- $(`.bs-datepicker-body table.months span`).attr('tabindex', '-1');
917
- $(`.bs-datepicker-body table.months span:contains(${newMonth})`).attr('tabindex', '0');
918
895
  $(`.bs-datepicker-body table.months span:contains(${newMonth})`).focus();
919
896
  this.activeDate = newDate;
920
897
  });
@@ -973,8 +950,6 @@ class BaseDateTimeComponent extends BaseFormCustomComponent {
973
950
  }
974
951
  }
975
952
  setTimeout(() => {
976
- $(`.bs-datepicker-body table.years span`).attr('tabindex', '-1');
977
- $(`.bs-datepicker-body table.years span:contains(${newYear})`).attr('tabindex', '0');
978
953
  $(`.bs-datepicker-body table.years span:contains(${newYear})`).focus();
979
954
  this.activeDate = newDate;
980
955
  });
@@ -1155,27 +1130,37 @@ class BaseDateTimeComponent extends BaseFormCustomComponent {
1155
1130
  }
1156
1131
  onDateTimeInputBlur() {
1157
1132
  // removing the opacity on blur of the mobile widget
1158
- const displayInputElem = this.getMobileInput();
1133
+ let displayInputElem = this.getMobileInput();
1159
1134
  if (displayInputElem && !hasCordova()) {
1160
- const children = this.nativeElement.children;
1135
+ let children = this.nativeElement.children;
1161
1136
  for (let i = 0; i < children.length; i++) {
1162
1137
  children[i].classList.remove('add-opacity');
1163
1138
  }
1164
1139
  displayInputElem.classList.remove('remove-opacity');
1140
+ let allDateTimeElements = this.nativeElement.getElementsByTagName('*');
1141
+ for (let i = 0; i < allDateTimeElements.length; i++) {
1142
+ allDateTimeElements[i].setAttribute('tabindex', this.tabindex);
1143
+ }
1144
+ displayInputElem.removeAttribute('tabindex');
1165
1145
  }
1166
1146
  }
1167
1147
  onDateTimeInputFocus(skipFocus = false) {
1168
1148
  if (!this.loadNativeDateInput) {
1169
1149
  return;
1170
1150
  }
1171
- const displayInputElem = this.getMobileInput();
1151
+ let displayInputElem = this.getMobileInput();
1172
1152
  // toggling the classes to show and hide the native widget using opacity
1173
1153
  if (skipFocus && !hasCordova()) {
1174
- const children = this.nativeElement.children;
1154
+ let children = this.nativeElement.children;
1175
1155
  for (let i = 0; i < children.length; i++) {
1176
1156
  children[i].classList.add('add-opacity');
1177
1157
  }
1178
1158
  displayInputElem.classList.add('remove-opacity');
1159
+ let allDateTimeElements = this.nativeElement.getElementsByTagName('*');
1160
+ for (let i = 0; i < allDateTimeElements.length; i++) {
1161
+ allDateTimeElements[i].setAttribute('tabindex', '-1');
1162
+ }
1163
+ displayInputElem.setAttribute('tabindex', this.tabindex);
1179
1164
  return;
1180
1165
  }
1181
1166
  if (displayInputElem && this._triggeredByUser) {
@@ -1265,12 +1250,9 @@ class BaseDateTimeComponent extends BaseFormCustomComponent {
1265
1250
  this.containerTarget = getContainerTargetClass(this.nativeElement);
1266
1251
  this.isReadOnly = this.dataentrymode != 'undefined' && !this.isDataEntryModeEnabledOnInput(this.dataentrymode);
1267
1252
  // this mobileinput width varies in ios hence setting width here.
1268
- const mobileInput = this.getMobileInput();
1253
+ let mobileInput = this.getMobileInput();
1269
1254
  if (mobileInput) {
1270
- setTimeout(() => {
1271
- mobileInput.style.width = '100%';
1272
- mobileInput.style.height = '100%';
1273
- });
1255
+ mobileInput.style.width = mobileInput.parentElement.clientWidth + 'px';
1274
1256
  }
1275
1257
  }
1276
1258
  ngOnDestroy() {
@@ -1515,7 +1497,7 @@ class DateComponent extends BaseDateTimeComponent {
1515
1497
  if (this.isDropDownDisplayEnabledOnInput(this.showdropdownon)) {
1516
1498
  event.stopPropagation();
1517
1499
  const action = this.keyEventPlugin.constructor.getEventFullKey(event);
1518
- if (action === 'enter') {
1500
+ if (action === 'enter' || action === 'arrowdown') {
1519
1501
  const newVal = getDateObj(event.target.value, { pattern: this.datepattern });
1520
1502
  event.preventDefault();
1521
1503
  const formattedDate = getFormattedDate(this.datePipe, newVal, this.dateInputFormat, this.timeZone, null, this.isCurrentDate, this);
@@ -1566,7 +1548,7 @@ DateComponent.initializeProps = registerProps$2();
1566
1548
  DateComponent.decorators = [
1567
1549
  { type: Component, args: [{
1568
1550
  selector: '[wmDate]',
1569
- 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",
1551
+ 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",
1570
1552
  providers: [
1571
1553
  provideAs(DateComponent, NG_VALUE_ACCESSOR, true),
1572
1554
  provideAs(DateComponent, NG_VALIDATORS, true),
@@ -2027,7 +2009,7 @@ DatetimeComponent.initializeProps = registerProps$1();
2027
2009
  DatetimeComponent.decorators = [
2028
2010
  { type: Component, args: [{
2029
2011
  selector: '[wmDateTime]',
2030
- 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",
2012
+ 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",
2031
2013
  providers: [
2032
2014
  provideAs(DatetimeComponent, NG_VALUE_ACCESSOR, true),
2033
2015
  provideAs(DatetimeComponent, NG_VALIDATORS, true),