@wavemaker/app-ng-runtime 11.6.0-next.140456 → 11.6.0-next.140458

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 (71) hide show
  1. app-ng-runtime/build-task/bundles/index.umd.js +1 -1
  2. app-ng-runtime/build-task/esm2022/data/form/form-field/form-field.build.mjs +3 -3
  3. app-ng-runtime/build-task/fesm2022/index.mjs +1 -1
  4. app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
  5. app-ng-runtime/components/chart/bundles/index.umd.js +1 -1
  6. app-ng-runtime/components/chart/esm2022/chart.utils.mjs +2 -2
  7. app-ng-runtime/components/chart/fesm2022/index.mjs +1 -1
  8. app-ng-runtime/components/chart/fesm2022/index.mjs.map +1 -1
  9. app-ng-runtime/components/data/form/bundles/index.umd.js +41 -24
  10. app-ng-runtime/components/data/form/esm2022/form-field/form-field.directive.mjs +31 -22
  11. app-ng-runtime/components/data/form/esm2022/form.component.mjs +22 -10
  12. app-ng-runtime/components/data/form/fesm2022/index.mjs +45 -24
  13. app-ng-runtime/components/data/form/fesm2022/index.mjs.map +1 -1
  14. app-ng-runtime/components/data/form/form-field/form-field.directive.d.ts +3 -1
  15. app-ng-runtime/components/data/form/form.component.d.ts +2 -2
  16. app-ng-runtime/components/data/table/bundles/index.umd.js +6 -2
  17. app-ng-runtime/components/data/table/esm2022/table.component.mjs +10 -7
  18. app-ng-runtime/components/data/table/fesm2022/index.mjs +6 -2
  19. app-ng-runtime/components/data/table/fesm2022/index.mjs.map +1 -1
  20. app-ng-runtime/components/data/table/table.component.d.ts +4 -4
  21. app-ng-runtime/components/input/calendar/bundles/index.umd.js +6 -0
  22. app-ng-runtime/components/input/calendar/calendar.component.d.ts +1 -1
  23. app-ng-runtime/components/input/calendar/esm2022/calendar.component.mjs +8 -2
  24. app-ng-runtime/components/input/calendar/fesm2022/index.mjs +6 -0
  25. app-ng-runtime/components/input/calendar/fesm2022/index.mjs.map +1 -1
  26. app-ng-runtime/components/input/default/bundles/index.umd.js +52 -30
  27. app-ng-runtime/components/input/default/caption-position.directive.d.ts +1 -1
  28. app-ng-runtime/components/input/default/esm2022/caption-position.directive.mjs +2 -2
  29. app-ng-runtime/components/input/default/esm2022/select/select.component.mjs +60 -37
  30. app-ng-runtime/components/input/default/fesm2022/index.mjs +53 -31
  31. app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
  32. app-ng-runtime/components/input/default/select/select.component.d.ts +4 -1
  33. app-ng-runtime/components/input/epoch/base-date-time.component.d.ts +11 -11
  34. app-ng-runtime/components/input/epoch/bundles/index.umd.js +112 -87
  35. app-ng-runtime/components/input/epoch/esm2022/base-date-time.component.mjs +100 -78
  36. app-ng-runtime/components/input/epoch/esm2022/date/date.component.mjs +5 -5
  37. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.component.mjs +6 -5
  38. app-ng-runtime/components/input/epoch/esm2022/time/time.component.mjs +7 -5
  39. app-ng-runtime/components/input/epoch/fesm2022/index.mjs +112 -87
  40. app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
  41. app-ng-runtime/components/navigation/menu/bundles/index.umd.js +15 -5
  42. app-ng-runtime/components/navigation/menu/esm2022/menu.component.mjs +14 -6
  43. app-ng-runtime/components/navigation/menu/esm2022/menu.props.mjs +2 -1
  44. app-ng-runtime/components/navigation/menu/esm2022/nav/nav.component.mjs +3 -3
  45. app-ng-runtime/components/navigation/menu/esm2022/nav/nav.props.mjs +2 -1
  46. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs +15 -5
  47. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  48. app-ng-runtime/components/navigation/menu/menu.component.d.ts +3 -0
  49. app-ng-runtime/components/navigation/menu/nav/nav.component.d.ts +1 -0
  50. app-ng-runtime/components/navigation/popover/bundles/index.umd.js +8 -8
  51. app-ng-runtime/components/navigation/popover/esm2022/popover.component.mjs +11 -11
  52. app-ng-runtime/components/navigation/popover/fesm2022/index.mjs +8 -8
  53. app-ng-runtime/components/navigation/popover/fesm2022/index.mjs.map +1 -1
  54. app-ng-runtime/core/bundles/index.umd.js +13 -1
  55. app-ng-runtime/core/esm2022/utils/expression-parser.mjs +13 -2
  56. app-ng-runtime/core/esm2022/utils/utils.mjs +4 -3
  57. app-ng-runtime/core/fesm2022/index.mjs +14 -2
  58. app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
  59. app-ng-runtime/package.json +1 -1
  60. app-ng-runtime/runtime/base/bundles/index.umd.js +4 -0
  61. app-ng-runtime/runtime/base/components/base-page.component.d.ts +2 -3
  62. app-ng-runtime/runtime/base/esm2022/components/base-page.component.mjs +7 -4
  63. app-ng-runtime/runtime/base/fesm2022/index.mjs +5 -1
  64. app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
  65. app-ng-runtime/scripts/@wavemaker/nvd3/build/nv.d3.min.js +1 -1
  66. app-ng-runtime/scripts/datatable/datatable.js +5 -2
  67. app-ng-runtime/variables/bundles/index.umd.js +13 -7
  68. app-ng-runtime/variables/esm2022/util/variable/variables.utils.mjs +15 -9
  69. app-ng-runtime/variables/fesm2022/index.mjs +13 -7
  70. app-ng-runtime/variables/fesm2022/index.mjs.map +1 -1
  71. app-ng-runtime/variables/util/variable/variables.utils.d.ts +1 -1
@@ -1,4 +1,5 @@
1
1
  import { AfterViewInit, ElementRef, Injector } from '@angular/core';
2
+ import { App } from '@wm/core';
2
3
  import { DatasetAwareFormComponent } from '../dataset-aware-form.component';
3
4
  import * as i0 from "@angular/core";
4
5
  export declare class SelectComponent extends DatasetAwareFormComponent implements AfterViewInit {
@@ -13,13 +14,15 @@ export declare class SelectComponent extends DatasetAwareFormComponent implement
13
14
  name: string;
14
15
  autofocus: boolean;
15
16
  hint: string;
17
+ private app;
16
18
  selectEl: ElementRef;
17
19
  set datasource(ds: any);
18
- constructor(inj: Injector);
20
+ constructor(inj: Injector, app: App);
19
21
  ngAfterViewInit(): void;
20
22
  protected handleEvent(node: HTMLElement, eventName: string, eventCallback: Function, locals: any): void;
21
23
  onSelectValueChange($event: any): void;
22
24
  onPropertyChange(key: string, nv: any, ov?: any): void;
25
+ isIosPlatform(): boolean;
23
26
  /**
24
27
  * When caption floating is enabled and placeholder is given, do not show placeholder until user focuses on the field
25
28
  * When focused add the placeholder to the option which is selected
@@ -1,5 +1,5 @@
1
1
  import { AfterViewInit, Injector, OnDestroy } from '@angular/core';
2
- import { Validator, AbstractControl } from '@angular/forms';
2
+ import { AbstractControl, Validator } from '@angular/forms';
3
3
  import { TimepickerConfig } from 'ngx-bootstrap/timepicker';
4
4
  import { BaseFormCustomComponent } from '@wm/components/input';
5
5
  import { BsDatepickerConfig, BsDatepickerDirective } from 'ngx-bootstrap/datepicker';
@@ -125,23 +125,20 @@ export declare abstract class BaseDateTimeComponent extends BaseFormCustomCompon
125
125
  * @param newDate - newly selected date value
126
126
  */
127
127
  private isOtheryear;
128
- /**
129
- * This method is used to set focus for active day
130
- * @param newDate - newly selected date value
131
- * @param isMouseEvent - boolean value represents the event is mouse event/ keyboard event
132
- */
133
- private setActiveDateFocus;
128
+ showDatePickerModal(bsDataval: any): void;
134
129
  /**
135
130
  * This method is used to load other month days or other month or other year
136
131
  * @param btnClass - class(previous/next) of the button which we have to click
137
132
  * @param timePeriod - String value decides to load other month days or other month or other year
138
133
  */
139
134
  private goToOtherMonthOryear;
140
- private getMonth;
141
135
  /**
142
- * This method sets the mouse events to Datepicker popup. These events are required when we navigate date picker through mouse.
136
+ * This method is used to set focus for active day
137
+ * @param newDate - newly selected date value
138
+ * @param isMouseEvent - boolean value represents the event is mouse event/ keyboard event
143
139
  */
144
- private addDatepickerMouseEvents;
140
+ private setActiveDateFocus;
141
+ private getMonth;
145
142
  /**
146
143
  * This method sets focus for months/days depending on the loaded datepicker table
147
144
  */
@@ -224,7 +221,10 @@ export declare abstract class BaseDateTimeComponent extends BaseFormCustomCompon
224
221
  onDateTimeInputBlur(): void;
225
222
  onDateTimeInputFocus(skipFocus?: boolean): void;
226
223
  getCordovaPluginDatePickerApi(): any;
227
- showDatePickerModal(): void;
224
+ /**
225
+ * This method sets the mouse events to Datepicker popup. These events are required when we navigate date picker through mouse.
226
+ */
227
+ private addDatepickerMouseEvents;
228
228
  blurDateInput(isPickerOpen: any): void;
229
229
  onPropertyChange(key: any, nv: any, ov?: any): void;
230
230
  ngAfterViewInit(): void;
@@ -863,6 +863,37 @@
863
863
  isOtheryear(newDate) {
864
864
  return (newDate.getMonth() === 0 && this.activeDate.getMonth() === 11) || (newDate.getMonth() === 11 && this.activeDate.getMonth() === 0);
865
865
  }
866
+ showDatePickerModal(bsDataval) {
867
+ bsDataval ? this.activeDate = bsDataval : this.activeDate = new Date();
868
+ this.setNextData(this.activeDate);
869
+ this.datetimepickerComponent.show();
870
+ setTimeout(() => {
871
+ this.addDatepickerMouseEvents();
872
+ this.setActiveDateFocus(this.activeDate, true);
873
+ }, 500);
874
+ return;
875
+ }
876
+ /**
877
+ * This method is used to load other month days or other month or other year
878
+ * @param btnClass - class(previous/next) of the button which we have to click
879
+ * @param timePeriod - String value decides to load other month days or other month or other year
880
+ */
881
+ goToOtherMonthOryear(btnClass, timePeriod) {
882
+ const $node = $(`.bs-datepicker-head .${btnClass}`);
883
+ if ($node.attr('disabled')) {
884
+ return;
885
+ }
886
+ $node.trigger('click');
887
+ if (timePeriod === 'days') {
888
+ this.loadDays();
889
+ }
890
+ else if (timePeriod === 'month') {
891
+ this.loadMonths();
892
+ }
893
+ else if (timePeriod === 'year') {
894
+ this.loadYears();
895
+ }
896
+ }
866
897
  /**
867
898
  * This method is used to set focus for active day
868
899
  * @param newDate - newly selected date value
@@ -870,6 +901,7 @@
870
901
  */
871
902
  setActiveDateFocus(newDate, isMouseEvent) {
872
903
  this.setNextData(newDate);
904
+ this.clicked = false;
873
905
  const activeMonth = this.activeDate.getMonth();
874
906
  // check for keyboard event
875
907
  if (!isMouseEvent) {
@@ -899,27 +931,6 @@
899
931
  }
900
932
  });
901
933
  }
902
- /**
903
- * This method is used to load other month days or other month or other year
904
- * @param btnClass - class(previous/next) of the button which we have to click
905
- * @param timePeriod - String value decides to load other month days or other month or other year
906
- */
907
- goToOtherMonthOryear(btnClass, timePeriod) {
908
- const $node = $(`.bs-datepicker-head .${btnClass}`);
909
- if ($node.attr('disabled')) {
910
- return;
911
- }
912
- $node.trigger('click');
913
- if (timePeriod === 'days') {
914
- this.loadDays();
915
- }
916
- else if (timePeriod === 'month') {
917
- this.loadMonths();
918
- }
919
- else if (timePeriod === 'year') {
920
- this.loadYears();
921
- }
922
- }
923
934
  getMonth(date, inc) {
924
935
  const currentMonth = new Date(date);
925
936
  let month = currentMonth.getMonth();
@@ -932,57 +943,6 @@
932
943
  fullMonth: fullMonth
933
944
  };
934
945
  }
935
- /**
936
- * This method sets the mouse events to Datepicker popup. These events are required when we navigate date picker through mouse.
937
- */
938
- addDatepickerMouseEvents() {
939
- const datePickerHead = $(`.bs-datepicker-head`);
940
- datePickerHead.find(`.previous`).click((event) => {
941
- this.next = this.getMonth(this.activeDate, 0);
942
- this.prev = this.getMonth(this.activeDate, -2);
943
- this.clicked = true;
944
- // check for original mouse click
945
- if (event.originalEvent) {
946
- this.setFocusForDate(-1);
947
- }
948
- var prevMon = this.getMonth(this.activeDate, -1);
949
- $(`.bs-datepicker-head .previous`).prepend(`<p aria-hidden="false" class="sr-only">Changed to Previous Month, ${prevMon.fullMonth} and year ${prevMon.date.getFullYear()}</p>`);
950
- setTimeout(() => {
951
- $(`.bs-datepicker-head .previous`).focus();
952
- });
953
- });
954
- datePickerHead.find(`.next`).click((event) => {
955
- this.next = this.getMonth(this.activeDate, 2);
956
- this.prev = this.getMonth(this.activeDate, 0);
957
- this.clicked = true;
958
- // check for original mouse click
959
- if (event.originalEvent) {
960
- this.setFocusForDate(1);
961
- }
962
- var nextMon = this.getMonth(this.activeDate, 1);
963
- $(`.bs-datepicker-head .next`).prepend(`<p aria-hidden="false" class="sr-only">Changed to Next Month, ${nextMon.fullMonth} and year ${nextMon.date.getFullYear()}</p>`);
964
- setTimeout(() => {
965
- $(`.bs-datepicker-head .next`).focus();
966
- });
967
- });
968
- datePickerHead.find(`.current`).click((event) => {
969
- // check for original mouse click
970
- if (event.originalEvent) {
971
- this.setFocusForCurrentMonthOryear();
972
- }
973
- });
974
- $('.bs-datepicker-body, .bs-datepicker-action-buttons').click((event) => {
975
- event.stopPropagation();
976
- // check for original mouse click
977
- if (event.originalEvent) {
978
- this.setFocusForMonthOrDay();
979
- }
980
- });
981
- if (!this.clicked) {
982
- datePickerHead.find('.next').attr('aria-label', `Next Month, ${this.next.fullMonth} ${this.next.date.getFullYear()}`);
983
- datePickerHead.find('.previous').attr('aria-label', `Previous Month, ${this.prev.fullMonth} ${this.prev.date.getFullYear()}`);
984
- }
985
- }
986
946
  /**
987
947
  * This method sets focus for months/days depending on the loaded datepicker table
988
948
  */
@@ -1488,9 +1448,71 @@
1488
1448
  return _.get(window, 'cordova.wavemaker.datePicker.selectDate');
1489
1449
  }
1490
1450
  }
1491
- showDatePickerModal() {
1492
- this.datetimepickerComponent.show();
1493
- return;
1451
+ /**
1452
+ * This method sets the mouse events to Datepicker popup. These events are required when we navigate date picker through mouse.
1453
+ */
1454
+ addDatepickerMouseEvents() {
1455
+ $(".bs-datepicker-head .previous span").attr("aria-hidden", true);
1456
+ $(".bs-datepicker-head .next span").attr("aria-hidden", true);
1457
+ $(".bs-datepicker-head").on("click", ".previous", (event) => {
1458
+ this.next = this.getMonth(this.activeDate, 0);
1459
+ this.prev = this.getMonth(this.activeDate, -2);
1460
+ this.clicked = true;
1461
+ // check for original mouse click
1462
+ if (event.originalEvent) {
1463
+ this.setFocusForDate(-1);
1464
+ }
1465
+ var prevMon = this.getMonth(this.activeDate, -1);
1466
+ setTimeout(() => {
1467
+ $(".bs-datepicker-head .previous span").attr("aria-hidden", true);
1468
+ $(".bs-datepicker-head .next span").attr("aria-hidden", true);
1469
+ $(".bs-datepicker-head .next").attr('aria-label', `Next Month, ${this.next.fullMonth} ${this.next.date.getFullYear()}`);
1470
+ $(".bs-datepicker-head .previous").attr('aria-label', `Previous Month, ${this.prev.fullMonth} ${this.prev.date.getFullYear()}`);
1471
+ $('.bs-datepicker-head .current').first().append(`<h2 aria-hidden="false" aria-atomic="true" aria-live='polite' class="sr-only">Changed to Previous Month, ${prevMon.fullMonth} and year ${prevMon.date.getFullYear()}</h2>`);
1472
+ $('.bs-datepicker-head').on('focus', '.current', function () {
1473
+ $('.bs-datepicker-head .current').find('h2').remove();
1474
+ });
1475
+ $(`.bs-datepicker-head .previous`).focus();
1476
+ });
1477
+ });
1478
+ $(".bs-datepicker-head").on("click", ".next", (event) => {
1479
+ this.next = this.getMonth(this.activeDate, 2);
1480
+ this.prev = this.getMonth(this.activeDate, 0);
1481
+ this.clicked = true;
1482
+ // check for original mouse click
1483
+ if (event.originalEvent) {
1484
+ this.setFocusForDate(1);
1485
+ }
1486
+ var nextMon = this.getMonth(this.activeDate, 1);
1487
+ setTimeout(() => {
1488
+ $(".bs-datepicker-head .previous span").attr("aria-hidden", true);
1489
+ $(".bs-datepicker-head .next span").attr("aria-hidden", true);
1490
+ $(".bs-datepicker-head .next").attr('aria-label', `Next Month, ${this.next.fullMonth} ${this.next.date.getFullYear()}`);
1491
+ $(".bs-datepicker-head .previous").attr('aria-label', `Previous Month, ${this.prev.fullMonth} ${this.prev.date.getFullYear()}`);
1492
+ $('.bs-datepicker-head .current').first().append(`<h2 aria-hidden="false" aria-atomic="true" aria-live='polite' class="sr-only">Changed to Next Month, ${nextMon.fullMonth} and year ${nextMon.date.getFullYear()}</h2>`);
1493
+ $('.bs-datepicker-head').on('focus', '.current', function () {
1494
+ $('.bs-datepicker-head .current').find('h2').remove();
1495
+ });
1496
+ $(`.bs-datepicker-head .next`).focus();
1497
+ });
1498
+ });
1499
+ $(".bs-datepicker-head").on("click", ".current", (event) => {
1500
+ // check for original mouse click
1501
+ if (event.originalEvent) {
1502
+ this.setFocusForCurrentMonthOryear();
1503
+ }
1504
+ });
1505
+ $('.bs-datepicker-body').on("click", ".bs-datepicker-action-buttons", (event) => {
1506
+ event.stopPropagation();
1507
+ // check for original mouse click
1508
+ if (event.originalEvent) {
1509
+ this.setFocusForMonthOrDay();
1510
+ }
1511
+ });
1512
+ // if(!this.clicked) {
1513
+ $(".bs-datepicker-head .next").attr('aria-label', `Next Month, ${this.next.fullMonth} ${this.next.date.getFullYear()}`);
1514
+ $(".bs-datepicker-head .previous").attr('aria-label', `Previous Month, ${this.prev.fullMonth} ${this.prev.date.getFullYear()}`);
1515
+ // }
1494
1516
  }
1495
1517
  blurDateInput(isPickerOpen) {
1496
1518
  const displayInputElem = this.nativeElement.querySelector('.display-input');
@@ -1658,14 +1680,14 @@
1658
1680
  i0__namespace.ɵɵlistener("change", function DateComponent_ng_template_7_Template_wm_datetimepicker_change_0_listener($event) { i0__namespace.ɵɵrestoreView(_r3); const ctx_r2 = i0__namespace.ɵɵnextContext(); return i0__namespace.ɵɵresetView(ctx_r2.onDateChange($event)); });
1659
1681
  i0__namespace.ɵɵelementEnd();
1660
1682
  i0__namespace.ɵɵelementStart(1, "div", 9);
1661
- i0__namespace.ɵɵlistener("focus", function DateComponent_ng_template_7_Template_div_focus_1_listener($event) { i0__namespace.ɵɵrestoreView(_r3); const ctx_r4 = i0__namespace.ɵɵnextContext(); ctx_r4.onDateTimeInputFocus(true); return i0__namespace.ɵɵresetView(ctx_r4.invokeOnFocus($event)); })("blur", function DateComponent_ng_template_7_Template_div_blur_1_listener($event) { i0__namespace.ɵɵrestoreView(_r3); const ctx_r5 = i0__namespace.ɵɵnextContext(); ctx_r5.onDateTimeInputBlur(); return i0__namespace.ɵɵresetView(ctx_r5.invokeOnTouched($event)); })("click", function DateComponent_ng_template_7_Template_div_click_1_listener() { i0__namespace.ɵɵrestoreView(_r3); const ctx_r6 = i0__namespace.ɵɵnextContext(); return i0__namespace.ɵɵresetView(!(ctx_r6.disabled || ctx_r6.readonly || ctx_r6.isCurrentDate) && ctx_r6.showDatePickerModal()); });
1683
+ i0__namespace.ɵɵlistener("click", function DateComponent_ng_template_7_Template_div_click_1_listener() { i0__namespace.ɵɵrestoreView(_r3); const ctx_r4 = i0__namespace.ɵɵnextContext(); return i0__namespace.ɵɵresetView(!(ctx_r4.disabled || ctx_r4.readonly || ctx_r4.isCurrentDate) && ctx_r4.showDatePickerModal(ctx_r4.bsDataValue)); })("focus", function DateComponent_ng_template_7_Template_div_focus_1_listener($event) { i0__namespace.ɵɵrestoreView(_r3); const ctx_r5 = i0__namespace.ɵɵnextContext(); ctx_r5.onDateTimeInputFocus(true); return i0__namespace.ɵɵresetView(ctx_r5.invokeOnFocus($event)); })("blur", function DateComponent_ng_template_7_Template_div_blur_1_listener($event) { i0__namespace.ɵɵrestoreView(_r3); const ctx_r6 = i0__namespace.ɵɵnextContext(); ctx_r6.onDateTimeInputBlur(); return i0__namespace.ɵɵresetView(ctx_r6.invokeOnTouched($event)); });
1662
1684
  i0__namespace.ɵɵelementEnd();
1663
1685
  } if (rf & 2) {
1664
1686
  const ctx_r1 = i0__namespace.ɵɵnextContext();
1665
1687
  i0__namespace.ɵɵproperty("config", ctx_r1._dateOptions)("placement", ctx_r1.modal)("excludedDaysToDisable", ctx_r1.excludedDaysToDisable)("excludedDatesToDisable", ctx_r1.excludedDatesToDisable)("displayFormat", ctx_r1.dateInputFormat)("value", ctx_r1.bsDataValue);
1666
1688
  i0__namespace.ɵɵadvance(1);
1667
1689
  i0__namespace.ɵɵproperty("tabindex", ctx_r1.tabindex || 0);
1668
- i0__namespace.ɵɵattribute("aria-label", ctx_r1.displayValue ? "Change Date" + ctx_r1.displayValue : "Choose Date");
1690
+ i0__namespace.ɵɵattribute("aria-label", ctx_r1.displayValue ? "Change Date " + ctx_r1.displayValue : ctx_r1.hint || "Choose Date");
1669
1691
  } }
1670
1692
  const CURRENT_DATE$1 = 'CURRENT_DATE';
1671
1693
  const DEFAULT_CLS$2 = 'app-date input-group';
@@ -1899,7 +1921,7 @@
1899
1921
  base.provideAs(DateComponent, i5.NG_VALUE_ACCESSOR, true),
1900
1922
  base.provideAs(DateComponent, i5.NG_VALIDATORS, true),
1901
1923
  base.provideAsWidgetRef(DateComponent)
1902
- ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c0$2, decls: 8, vars: 25, consts: [["focus-target", "", "type", "text", 1, "form-control", "app-textbox", "app-dateinput", "display-input", 3, "name", "tabindex", "value", "disabled", "autofocus", "required", "readOnly", "click", "focus", "blur", "change", "keydown"], [1, "input-group-btn"], ["type", "button", "aria-haspopup", "true", "aria-expanded", "false", 1, "btn", "btn-default", "btn-time", 3, "tabindex", "disabled", "click"], ["aria-hidden", "true", 1, "app-icon", "wm-sl-l", "sl-calendar"], [2, "width", "0", "display", "inline-block"], ["aria-label", "datepicker dropdownmenu", "aria-controls", "date", "bsDatepicker", "", "placement", "bottom right", 1, "model-holder", 3, "tabindex", "container", "bsConfig", "isOpen", "daysDisabled", "datesDisabled", "isDisabled", "bsValue", "onShown", "onHidden", "bsValueChange"], ["datepicker", "bsDatepicker"], [3, "ngIf"], ["dateTimePicker", "", "mode", "DATE", 3, "config", "placement", "excludedDaysToDisable", "excludedDatesToDisable", "displayFormat", "value", "change"], [1, "mobile-input", "mobile-datepicker-container", 3, "tabindex", "focus", "blur", "click"]], template: function DateComponent_Template(rf, ctx) { if (rf & 1) {
1924
+ ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c0$2, decls: 8, vars: 25, consts: [["focus-target", "", "type", "text", 1, "form-control", "app-textbox", "app-dateinput", "display-input", 3, "name", "tabindex", "value", "disabled", "autofocus", "required", "readOnly", "click", "focus", "blur", "change", "keydown"], [1, "input-group-btn"], ["type", "button", "aria-haspopup", "true", "aria-expanded", "false", 1, "btn", "btn-default", "btn-time", 3, "tabindex", "disabled", "click"], ["aria-hidden", "true", 1, "app-icon", "wm-sl-l", "sl-calendar"], [2, "width", "0", "display", "inline-block"], ["aria-label", "datepicker dropdownmenu", "aria-controls", "date", "bsDatepicker", "", "placement", "bottom right", 1, "model-holder", 3, "tabindex", "container", "bsConfig", "isOpen", "daysDisabled", "datesDisabled", "isDisabled", "bsValue", "onShown", "onHidden", "bsValueChange"], ["datepicker", "bsDatepicker"], [3, "ngIf"], ["dateTimePicker", "", "mode", "DATE", 3, "config", "placement", "excludedDaysToDisable", "excludedDatesToDisable", "displayFormat", "value", "change"], ["role", "button", 1, "mobile-input", "mobile-datepicker-container", 3, "tabindex", "click", "focus", "blur"]], template: function DateComponent_Template(rf, ctx) { if (rf & 1) {
1903
1925
  i0__namespace.ɵɵelementStart(0, "input", 0);
1904
1926
  i0__namespace.ɵɵlistener("click", function DateComponent_Template_input_click_0_listener($event) { return ctx.toggleDpDropdown($event, true); })("focus", function DateComponent_Template_input_focus_0_listener($event) { ctx.onDateTimeInputFocus(); return ctx.invokeOnFocus($event); })("blur", function DateComponent_Template_input_blur_0_listener($event) { return ctx.onInputBlur($event); })("change", function DateComponent_Template_input_change_0_listener($event) { return ctx.onDisplayDateChange($event); })("keydown", function DateComponent_Template_input_keydown_0_listener($event) { ctx._triggeredByUser = true; return ctx.onDisplayKeydown($event); });
1905
1927
  i0__namespace.ɵɵelementEnd();
@@ -1930,7 +1952,7 @@
1930
1952
  base.provideAs(DateComponent, i5.NG_VALUE_ACCESSOR, true),
1931
1953
  base.provideAs(DateComponent, i5.NG_VALIDATORS, true),
1932
1954
  base.provideAsWidgetRef(DateComponent)
1933
- ], 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" }]
1955
+ ], 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 (click)=\"!(disabled || readonly || isCurrentDate) && showDatePickerModal(bsDataValue)\"\n (focus)=\"onDateTimeInputFocus(true); invokeOnFocus($event);\"\n (blur)=\"onDateTimeInputBlur(); invokeOnTouched($event)\"\n [attr.aria-label]=\"displayValue ? 'Change Date ' + displayValue : hint || 'Choose Date'\"\n role=\"button\">\n </div>\n</ng-template>\n" }]
1934
1956
  }], function () { return [{ type: i0__namespace.Injector }, { type: i0__namespace.ChangeDetectorRef }, { type: i1$1__namespace.AppDefaults }]; }, { bsDatePickerDirective: [{
1935
1957
  type: i0.ViewChild,
1936
1958
  args: [i3.BsDatepickerDirective]
@@ -1998,13 +2020,14 @@
1998
2020
  i0__namespace.ɵɵlistener("change", function DatetimeComponent_ng_template_11_Template_wm_datetimepicker_change_0_listener($event) { i0__namespace.ɵɵrestoreView(_r9); const ctx_r8 = i0__namespace.ɵɵnextContext(); return i0__namespace.ɵɵresetView(ctx_r8.onModelUpdate($event, "date")); });
1999
2021
  i0__namespace.ɵɵelementEnd();
2000
2022
  i0__namespace.ɵɵelementStart(1, "div", 15);
2001
- i0__namespace.ɵɵlistener("focus", function DatetimeComponent_ng_template_11_Template_div_focus_1_listener($event) { i0__namespace.ɵɵrestoreView(_r9); const ctx_r10 = i0__namespace.ɵɵnextContext(); ctx_r10.onDateTimeInputFocus(true); return i0__namespace.ɵɵresetView(ctx_r10.invokeOnFocus($event)); })("blur", function DatetimeComponent_ng_template_11_Template_div_blur_1_listener($event) { i0__namespace.ɵɵrestoreView(_r9); const ctx_r11 = i0__namespace.ɵɵnextContext(); ctx_r11.onDateTimeInputBlur(); return i0__namespace.ɵɵresetView(ctx_r11.invokeOnTouched($event)); })("click", function DatetimeComponent_ng_template_11_Template_div_click_1_listener() { i0__namespace.ɵɵrestoreView(_r9); const ctx_r12 = i0__namespace.ɵɵnextContext(); return i0__namespace.ɵɵresetView(!(ctx_r12.disabled || ctx_r12.readonly || ctx_r12.isCurrentDate) && ctx_r12.showDatePickerModal()); });
2023
+ i0__namespace.ɵɵlistener("click", function DatetimeComponent_ng_template_11_Template_div_click_1_listener() { i0__namespace.ɵɵrestoreView(_r9); const ctx_r10 = i0__namespace.ɵɵnextContext(); return i0__namespace.ɵɵresetView(!(ctx_r10.disabled || ctx_r10.readonly || ctx_r10.isCurrentDate) && ctx_r10.showDatePickerModal(ctx_r10.bsDateValue)); })("focus", function DatetimeComponent_ng_template_11_Template_div_focus_1_listener($event) { i0__namespace.ɵɵrestoreView(_r9); const ctx_r11 = i0__namespace.ɵɵnextContext(); ctx_r11.onDateTimeInputFocus(true); return i0__namespace.ɵɵresetView(ctx_r11.invokeOnFocus($event)); })("blur", function DatetimeComponent_ng_template_11_Template_div_blur_1_listener($event) { i0__namespace.ɵɵrestoreView(_r9); const ctx_r12 = i0__namespace.ɵɵnextContext(); ctx_r12.onDateTimeInputBlur(); return i0__namespace.ɵɵresetView(ctx_r12.invokeOnTouched($event)); });
2002
2024
  i0__namespace.ɵɵelementEnd();
2003
2025
  } if (rf & 2) {
2004
2026
  const ctx_r2 = i0__namespace.ɵɵnextContext();
2005
2027
  i0__namespace.ɵɵproperty("config", ctx_r2._dateOptions)("placement", ctx_r2.modal)("excludedDaysToDisable", ctx_r2.excludedDaysToDisable)("excludedDatesToDisable", ctx_r2.excludedDatesToDisable)("displayFormat", ctx_r2.dateInputFormat)("value", ctx_r2.bsDateValue);
2006
2028
  i0__namespace.ɵɵadvance(1);
2007
2029
  i0__namespace.ɵɵproperty("tabindex", ctx_r2.tabindex || 0);
2030
+ i0__namespace.ɵɵattribute("aria-label", ctx_r2.displayValue ? "Change Date " + ctx_r2.displayValue : ctx_r2.hint || "Choose Date");
2008
2031
  } }
2009
2032
  const DEFAULT_CLS$1 = 'app-datetime input-group';
2010
2033
  const WIDGET_CONFIG$1 = { widgetType: 'wm-datetime', hostClass: DEFAULT_CLS$1 };
@@ -2407,7 +2430,7 @@
2407
2430
  base.provideAs(DatetimeComponent, i5.NG_VALIDATORS, true),
2408
2431
  base.provideAsWidgetRef(DatetimeComponent),
2409
2432
  { provide: i6.TimepickerConfig, deps: [i1$1.AbstractI18nService], useFactory: getTimepickerConfig }
2410
- ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c0$1, decls: 12, vars: 30, consts: [["dropdown", "", "autoClose", "false", 2, "display", "inherit", 3, "isOpen", "container", "onShown"], ["focus-target", "", "type", "text", 1, "form-control", "app-textbox", "display-input", 3, "name", "tabindex", "value", "autofocus", "disabled", "required", "readOnly", "click", "focus", "blur", "change", "keydown"], [1, "input-group-btn"], ["type", "button", "aria-haspopup", "true", "aria-expanded", "false", 1, "btn", "btn-default", "btn-date", 3, "tabindex", "disabled", "click"], ["aria-hidden", "true", 1, "app-icon", "wm-sl-l", "sl-calendar"], ["type", "button", "aria-label", "Select time", "aria-haspopup", "true", "aria-expanded", "false", 1, "btn", "btn-default", "btn-time", 3, "tabindex", "disabled", "click"], ["aria-hidden", "true", 1, "app-icon", "wm-sl-l", "sl-time"], [2, "width", "0", "display", "inline-block"], ["aria-label", "datepicker dropdownmenu", "aria-controls", "date", "focus-target", "", "placement", "bottom right", "bsDatepicker", "", 1, "model-holder", 3, "tabindex", "container", "bsConfig", "isOpen", "daysDisabled", "datesDisabled", "isDisabled", "bsValue", "onShown", "onHidden", "bsValueChange"], ["datepicker", "bsDatepicker"], ["class", "dropdown-menu", "aria-label", "timepicker dropdown", "aria-controls", "time", 3, "click", 4, "dropdownMenu"], [3, "ngIf"], ["aria-label", "timepicker dropdown", "aria-controls", "time", 1, "dropdown-menu", 3, "click"], [1, "model-holder", 3, "showMeridian", "readonlyInput", "ngModel", "min", "max", "hourStep", "minuteStep", "secondsStep", "mousewheel", "arrowkeys", "showSeconds", "ngModelChange", "isValid"], ["dateTimePicker", "", 3, "config", "placement", "excludedDaysToDisable", "excludedDatesToDisable", "displayFormat", "value", "change"], [1, "mobile-input", "mobile-datepicker-container", 3, "tabindex", "focus", "blur", "click"]], template: function DatetimeComponent_Template(rf, ctx) { if (rf & 1) {
2433
+ ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c0$1, decls: 12, vars: 30, consts: [["dropdown", "", "autoClose", "false", 2, "display", "inherit", 3, "isOpen", "container", "onShown"], ["focus-target", "", "type", "text", 1, "form-control", "app-textbox", "display-input", 3, "name", "tabindex", "value", "autofocus", "disabled", "required", "readOnly", "click", "focus", "blur", "change", "keydown"], [1, "input-group-btn"], ["type", "button", "aria-haspopup", "true", "aria-expanded", "false", 1, "btn", "btn-default", "btn-date", 3, "tabindex", "disabled", "click"], ["aria-hidden", "true", 1, "app-icon", "wm-sl-l", "sl-calendar"], ["type", "button", "aria-label", "Select time", "aria-haspopup", "true", "aria-expanded", "false", 1, "btn", "btn-default", "btn-time", 3, "tabindex", "disabled", "click"], ["aria-hidden", "true", 1, "app-icon", "wm-sl-l", "sl-time"], [2, "width", "0", "display", "inline-block"], ["aria-label", "datepicker dropdownmenu", "aria-controls", "date", "focus-target", "", "placement", "bottom right", "bsDatepicker", "", 1, "model-holder", 3, "tabindex", "container", "bsConfig", "isOpen", "daysDisabled", "datesDisabled", "isDisabled", "bsValue", "onShown", "onHidden", "bsValueChange"], ["datepicker", "bsDatepicker"], ["class", "dropdown-menu", "aria-label", "timepicker dropdown", "aria-controls", "time", 3, "click", 4, "dropdownMenu"], [3, "ngIf"], ["aria-label", "timepicker dropdown", "aria-controls", "time", 1, "dropdown-menu", 3, "click"], [1, "model-holder", 3, "showMeridian", "readonlyInput", "ngModel", "min", "max", "hourStep", "minuteStep", "secondsStep", "mousewheel", "arrowkeys", "showSeconds", "ngModelChange", "isValid"], ["dateTimePicker", "", 3, "config", "placement", "excludedDaysToDisable", "excludedDatesToDisable", "displayFormat", "value", "change"], ["role", "button", 1, "mobile-input", "mobile-datepicker-container", 3, "tabindex", "click", "focus", "blur"]], template: function DatetimeComponent_Template(rf, ctx) { if (rf & 1) {
2411
2434
  i0__namespace.ɵɵelementStart(0, "div", 0);
2412
2435
  i0__namespace.ɵɵlistener("onShown", function DatetimeComponent_Template_div_onShown_0_listener() { return ctx.onTimepickerOpen(); });
2413
2436
  i0__namespace.ɵɵelementStart(1, "input", 1);
@@ -2426,7 +2449,7 @@
2426
2449
  i0__namespace.ɵɵelementEnd()();
2427
2450
  i0__namespace.ɵɵtemplate(10, DatetimeComponent_div_10_Template, 2, 11, "div", 10);
2428
2451
  i0__namespace.ɵɵelementEnd();
2429
- i0__namespace.ɵɵtemplate(11, DatetimeComponent_ng_template_11_Template, 2, 7, "ng-template", 11);
2452
+ i0__namespace.ɵɵtemplate(11, DatetimeComponent_ng_template_11_Template, 2, 8, "ng-template", 11);
2430
2453
  } if (rf & 2) {
2431
2454
  i0__namespace.ɵɵproperty("isOpen", ctx.isTimeOpen)("container", "body");
2432
2455
  i0__namespace.ɵɵadvance(1);
@@ -2452,7 +2475,7 @@
2452
2475
  base.provideAs(DatetimeComponent, i5.NG_VALIDATORS, true),
2453
2476
  base.provideAsWidgetRef(DatetimeComponent),
2454
2477
  { provide: i6.TimepickerConfig, deps: [i1$1.AbstractI18nService], useFactory: getTimepickerConfig }
2455
- ], 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" }]
2478
+ ], 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 (click)=\"!(disabled || readonly || isCurrentDate) && showDatePickerModal(bsDateValue)\"\n [attr.aria-label]=\"displayValue ? 'Change Date ' + displayValue : hint || 'Choose Date'\"\n (focus)=\"onDateTimeInputFocus(true); invokeOnFocus($event)\"\n (blur)=\"onDateTimeInputBlur(); invokeOnTouched($event)\"\n role=\"button\">\n </div>\n</ng-template>\n" }]
2456
2479
  }], function () { return [{ type: i0__namespace.Injector }, { type: i0__namespace.NgZone }, { type: i0__namespace.ChangeDetectorRef }, { type: i1$1__namespace.AppDefaults }, { type: i1$1__namespace.App }]; }, { bsDatePickerDirective: [{
2457
2480
  type: i0.ViewChild,
2458
2481
  args: [i3.BsDatepickerDirective]
@@ -2508,11 +2531,13 @@
2508
2531
  i0__namespace.ɵɵlistener("change", function TimeComponent_ng_template_6_Template_wm_datetimepicker_change_0_listener($event) { i0__namespace.ɵɵrestoreView(_r8); const ctx_r7 = i0__namespace.ɵɵnextContext(); return i0__namespace.ɵɵresetView(ctx_r7.onTimeChange($event)); });
2509
2532
  i0__namespace.ɵɵelementEnd();
2510
2533
  i0__namespace.ɵɵelementStart(1, "div", 10);
2511
- i0__namespace.ɵɵlistener("focus", function TimeComponent_ng_template_6_Template_div_focus_1_listener($event) { i0__namespace.ɵɵrestoreView(_r8); const ctx_r9 = i0__namespace.ɵɵnextContext(); ctx_r9.onDateTimeInputFocus(true); ctx_r9.invokeOnFocus($event); return i0__namespace.ɵɵresetView(ctx_r9.assignModel()); })("blur", function TimeComponent_ng_template_6_Template_div_blur_1_listener($event) { i0__namespace.ɵɵrestoreView(_r8); const ctx_r10 = i0__namespace.ɵɵnextContext(); ctx_r10.onDateTimeInputBlur(); return i0__namespace.ɵɵresetView(ctx_r10.invokeOnTouched($event)); })("click", function TimeComponent_ng_template_6_Template_div_click_1_listener() { i0__namespace.ɵɵrestoreView(_r8); const ctx_r11 = i0__namespace.ɵɵnextContext(); return i0__namespace.ɵɵresetView(!(ctx_r11.disabled || ctx_r11.readonly || ctx_r11.isCurrentTime) && ctx_r11.showDatePickerModal()); });
2534
+ i0__namespace.ɵɵlistener("click", function TimeComponent_ng_template_6_Template_div_click_1_listener() { i0__namespace.ɵɵrestoreView(_r8); const ctx_r9 = i0__namespace.ɵɵnextContext(); return i0__namespace.ɵɵresetView(!(ctx_r9.disabled || ctx_r9.readonly || ctx_r9.isCurrentTime) && ctx_r9.showDatePickerModal(ctx_r9.bsTimeValue)); })("focus", function TimeComponent_ng_template_6_Template_div_focus_1_listener($event) { i0__namespace.ɵɵrestoreView(_r8); const ctx_r10 = i0__namespace.ɵɵnextContext(); ctx_r10.onDateTimeInputFocus(true); ctx_r10.invokeOnFocus($event); return i0__namespace.ɵɵresetView(ctx_r10.assignModel()); })("blur", function TimeComponent_ng_template_6_Template_div_blur_1_listener($event) { i0__namespace.ɵɵrestoreView(_r8); const ctx_r11 = i0__namespace.ɵɵnextContext(); ctx_r11.onDateTimeInputBlur(); return i0__namespace.ɵɵresetView(ctx_r11.invokeOnTouched($event)); });
2512
2535
  i0__namespace.ɵɵelementEnd();
2513
2536
  } if (rf & 2) {
2514
2537
  const ctx_r1 = i0__namespace.ɵɵnextContext();
2515
2538
  i0__namespace.ɵɵproperty("minTime", ctx_r1.minTime)("maxTime", ctx_r1.maxTime)("placement", ctx_r1.modal)("displayFormat", ctx_r1.timepattern)("value", ctx_r1.bsTimeValue);
2539
+ i0__namespace.ɵɵadvance(1);
2540
+ i0__namespace.ɵɵattribute("aria-label", ctx_r1.displayValue ? "Change time " + ctx_r1.displayValue : ctx_r1.hint || "Select time");
2516
2541
  } }
2517
2542
  const CURRENT_TIME = 'CURRENT_TIME';
2518
2543
  const DEFAULT_CLS = 'input-group app-timeinput';
@@ -2809,7 +2834,7 @@
2809
2834
  base.provideAs(TimeComponent, i5.NG_VALIDATORS, true),
2810
2835
  base.provideAsWidgetRef(TimeComponent),
2811
2836
  { provide: i6.TimepickerConfig, deps: [i1$1.AbstractI18nService], useFactory: getTimepickerConfig }
2812
- ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c0, decls: 7, vars: 16, consts: [["dropdown", "", 2, "display", "inherit", 3, "isOpen", "container", "onShown", "onHidden"], ["focus-target", "", "type", "text", "role", "timer", 1, "form-control", "app-textbox", "display-input", 3, "tabindex", "name", "value", "disabled", "autofocus", "required", "readOnly", "click", "focus", "blur", "change", "keydown"], [1, "input-group-btn", "dropdown-toggle"], ["type", "button", "aria-label", "Select time", "aria-haspopup", "true", "aria-expanded", "false", 1, "btn", "btn-default", "btn-date", 3, "tabindex", "disabled", "click"], ["aria-hidden", "true", 1, "app-icon", "wm-sl-l", "sl-time"], ["class", "dropdown-menu", 3, "click", 4, "dropdownMenu"], [3, "ngIf"], [1, "dropdown-menu", 3, "click"], [1, "model-holder", 3, "showMeridian", "readonlyInput", "ngModel", "disabled", "min", "max", "hourStep", "minuteStep", "secondsStep", "mousewheel", "arrowkeys", "showSeconds", "ngModelChange", "isValid"], ["dateTimePicker", "", "mode", "TIME", 3, "minTime", "maxTime", "placement", "displayFormat", "value", "change"], ["tabindex", "1000000", 1, "mobile-input", "mobile-datepicker-container", 3, "focus", "blur", "click"]], template: function TimeComponent_Template(rf, ctx) { if (rf & 1) {
2837
+ ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c0, decls: 7, vars: 16, consts: [["dropdown", "", 2, "display", "inherit", 3, "isOpen", "container", "onShown", "onHidden"], ["focus-target", "", "type", "text", "role", "timer", 1, "form-control", "app-textbox", "display-input", 3, "tabindex", "name", "value", "disabled", "autofocus", "required", "readOnly", "click", "focus", "blur", "change", "keydown"], [1, "input-group-btn", "dropdown-toggle"], ["type", "button", "aria-label", "Select time", "aria-haspopup", "true", "aria-expanded", "false", 1, "btn", "btn-default", "btn-date", 3, "tabindex", "disabled", "click"], ["aria-hidden", "true", 1, "app-icon", "wm-sl-l", "sl-time"], ["class", "dropdown-menu", 3, "click", 4, "dropdownMenu"], [3, "ngIf"], [1, "dropdown-menu", 3, "click"], [1, "model-holder", 3, "showMeridian", "readonlyInput", "ngModel", "disabled", "min", "max", "hourStep", "minuteStep", "secondsStep", "mousewheel", "arrowkeys", "showSeconds", "ngModelChange", "isValid"], ["dateTimePicker", "", "mode", "TIME", 3, "minTime", "maxTime", "placement", "displayFormat", "value", "change"], ["tabindex", "1000000", "role", "button", 1, "mobile-input", "mobile-datepicker-container", 3, "click", "focus", "blur"]], template: function TimeComponent_Template(rf, ctx) { if (rf & 1) {
2813
2838
  i0__namespace.ɵɵelementStart(0, "div", 0);
2814
2839
  i0__namespace.ɵɵlistener("onShown", function TimeComponent_Template_div_onShown_0_listener() { return ctx.onShown(); })("onHidden", function TimeComponent_Template_div_onHidden_0_listener() { return ctx.hideTimepickerDropdown(); });
2815
2840
  i0__namespace.ɵɵelementStart(1, "input", 1);
@@ -2821,7 +2846,7 @@
2821
2846
  i0__namespace.ɵɵelementEnd()();
2822
2847
  i0__namespace.ɵɵtemplate(5, TimeComponent_div_5_Template, 2, 12, "div", 5);
2823
2848
  i0__namespace.ɵɵelementEnd();
2824
- i0__namespace.ɵɵtemplate(6, TimeComponent_ng_template_6_Template, 2, 5, "ng-template", 6);
2849
+ i0__namespace.ɵɵtemplate(6, TimeComponent_ng_template_6_Template, 2, 6, "ng-template", 6);
2825
2850
  } if (rf & 2) {
2826
2851
  i0__namespace.ɵɵproperty("isOpen", ctx.status.isopen)("container", "body");
2827
2852
  i0__namespace.ɵɵadvance(1);
@@ -2840,7 +2865,7 @@
2840
2865
  base.provideAs(TimeComponent, i5.NG_VALIDATORS, true),
2841
2866
  base.provideAsWidgetRef(TimeComponent),
2842
2867
  { provide: i6.TimepickerConfig, deps: [i1$1.AbstractI18nService], useFactory: getTimepickerConfig }
2843
- ], template: " <div dropdown [isOpen]=\"status.isopen\" (onShown)=\"onShown()\" (onHidden)=\"hideTimepickerDropdown()\" [container]=\"'body'\" style=\"display: inherit\">\n <input class=\"form-control app-textbox display-input\" [attr.aria-label]=\"hint\"\n focus-target\n [tabindex]=\"tabindex\"\n [name]=\"name\"\n type=\"text\"\n role=\"timer\"\n [value]=\"displayValue\"\n [disabled]=\"disabled || readonly || isCurrentTime\"\n [autofocus]=\"autofocus\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-atomic]=\"isCurrentTime ? 'true' : 'false'\"\n [required]=\"required\"\n [readOnly]=\"isReadOnly\"\n (click)=\"toggleDropdown($event, true)\"\n (focus)=\"onDateTimeInputFocus(); invokeOnFocus($event);\"\n (blur)=\"onInputBlur($event)\"\n (change)=\"onDisplayTimeChange($event)\"\n (keydown)=\"this._triggeredByUser = true; onDisplayKeydown($event)\">\n <span class=\"input-group-btn dropdown-toggle\">\n <button type=\"button\" class=\"btn btn-default btn-date\" [tabindex]=\"tabindex\" [disabled]=\"disabled || readonly || isCurrentTime\" aria-label=\"Select time\" aria-haspopup=\"true\" aria-expanded=\"false\" (click)=\"toggleDropdown($event, false)\"><i aria-hidden=\"true\" class=\"app-icon wm-sl-l sl-time\"></i></button>\n </span>\n <div *dropdownMenu class=\"dropdown-menu\" (click)=\"preventTpClose($event)\">\n <timepicker class=\"model-holder\"\n [showMeridian]=\"ismeridian\"\n [readonlyInput]=\"isDisabled\"\n [(ngModel)]=\"bsTimeValue\"\n [disabled]=\"disabled || readonly || isCurrentTime\"\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\" (ngModelChange)=\"onTimeChange($event)\"></timepicker>\n </div>\n </div>\n<ng-template [ngIf]=\"loadNativeDateInput\">\n <wm-datetimepicker\n dateTimePicker\n mode=\"TIME\"\n [minTime]=\"minTime\"\n [maxTime]=\"maxTime\"\n [placement]=\"modal\"\n [displayFormat]=\"timepattern\"\n [value]=\"bsTimeValue\"\n (change)=\"onTimeChange($event)\">\n </wm-datetimepicker>\n <div class=\"mobile-input mobile-datepicker-container\"\n tabindex=\"1000000\"\n (focus)=\"onDateTimeInputFocus(true); invokeOnFocus($event); assignModel()\"\n (blur)=\"onDateTimeInputBlur(); invokeOnTouched($event)\"\n (click)=\"!(disabled || readonly || isCurrentTime) && showDatePickerModal()\">\n </div>\n</ng-template>\n" }]
2868
+ ], template: " <div dropdown [isOpen]=\"status.isopen\" (onShown)=\"onShown()\" (onHidden)=\"hideTimepickerDropdown()\" [container]=\"'body'\" style=\"display: inherit\">\n <input class=\"form-control app-textbox display-input\" [attr.aria-label]=\"hint\"\n focus-target\n [tabindex]=\"tabindex\"\n [name]=\"name\"\n type=\"text\"\n role=\"timer\"\n [value]=\"displayValue\"\n [disabled]=\"disabled || readonly || isCurrentTime\"\n [autofocus]=\"autofocus\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-atomic]=\"isCurrentTime ? 'true' : 'false'\"\n [required]=\"required\"\n [readOnly]=\"isReadOnly\"\n (click)=\"toggleDropdown($event, true)\"\n (focus)=\"onDateTimeInputFocus(); invokeOnFocus($event);\"\n (blur)=\"onInputBlur($event)\"\n (change)=\"onDisplayTimeChange($event)\"\n (keydown)=\"this._triggeredByUser = true; onDisplayKeydown($event)\">\n <span class=\"input-group-btn dropdown-toggle\">\n <button type=\"button\" class=\"btn btn-default btn-date\" [tabindex]=\"tabindex\" [disabled]=\"disabled || readonly || isCurrentTime\" aria-label=\"Select time\" aria-haspopup=\"true\" aria-expanded=\"false\" (click)=\"toggleDropdown($event, false)\"><i aria-hidden=\"true\" class=\"app-icon wm-sl-l sl-time\"></i></button>\n </span>\n <div *dropdownMenu class=\"dropdown-menu\" (click)=\"preventTpClose($event)\">\n <timepicker class=\"model-holder\"\n [showMeridian]=\"ismeridian\"\n [readonlyInput]=\"isDisabled\"\n [(ngModel)]=\"bsTimeValue\"\n [disabled]=\"disabled || readonly || isCurrentTime\"\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\" (ngModelChange)=\"onTimeChange($event)\"></timepicker>\n </div>\n </div>\n<ng-template [ngIf]=\"loadNativeDateInput\">\n <wm-datetimepicker\n dateTimePicker\n mode=\"TIME\"\n [minTime]=\"minTime\"\n [maxTime]=\"maxTime\"\n [placement]=\"modal\"\n [displayFormat]=\"timepattern\"\n [value]=\"bsTimeValue\"\n (change)=\"onTimeChange($event)\">\n </wm-datetimepicker>\n <div class=\"mobile-input mobile-datepicker-container\"\n tabindex=\"1000000\"\n (click)=\"!(disabled || readonly || isCurrentTime) && showDatePickerModal(bsTimeValue)\"\n [attr.aria-label]=\"displayValue ? 'Change time ' + displayValue : hint || 'Select time'\"\n (focus)=\"onDateTimeInputFocus(true); invokeOnFocus($event); assignModel()\"\n (blur)=\"onDateTimeInputBlur(); invokeOnTouched($event)\"\n role=\"button\">\n </div>\n</ng-template>\n" }]
2844
2869
  }], function () { return [{ type: i0__namespace.Injector }, { type: i0__namespace.NgZone }, { type: i1$1__namespace.AppDefaults }, { type: i1$1__namespace.App }]; }, null); })();
2845
2870
 
2846
2871
  const components = [