@wavemaker/app-runtime-wm-build 11.3.6-rc.5325 → 11.3.6-rc.5345

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wavemaker/app-runtime-wm-build",
3
- "version": "11.3.6-rc.5325",
3
+ "version": "11.3.6-rc.5345",
4
4
  "description": "All modules required for a wavemaker application.",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -8973,11 +8973,9 @@
8973
8973
  });
8974
8974
  };
8975
8975
  var getKeyboardFocusableElements = function(element) {
8976
- var elementNodeList = element.querySelectorAll("a, button, input, textarea, select, details, iframe, embed, object, summary dialog, audio[controls], video[controls], [contenteditable]");
8977
- var elements = Array.from(elementNodeList);
8978
- return elements.filter((function(el) {
8979
- return !el.hasAttribute("disabled") && !el.hasAttribute("hidden") && (!el.hasAttribute("tabindex") || el.hasAttribute("tabindex") && !el.getAttribute("tabindex").startsWith("-"));
8980
- }));
8976
+ return [ element.querySelectorAll('a, button, input, textarea, select, details, iframe, embed, object, summary dialog, audio[controls], video[controls], [contenteditable], [tabindex]:not([tabindex="-1"])') ].filter((function(el) {
8977
+ return !el[0].hasAttribute("disabled") && !el[0].hasAttribute("hidden");
8978
+ }))[0];
8981
8979
  };
8982
8980
  exports.APPLY_STYLES_TYPE = void 0;
8983
8981
  (function(APPLY_STYLES_TYPE) {
@@ -15062,7 +15060,7 @@
15062
15060
  }
15063
15061
  var markup = "<" + tagName$q + " wmPopover " + transpiler.getAttrMarkup(attrs) + ">";
15064
15062
  var contextAttrs = table ? 'let-row="row"' : "";
15065
- markup += "<ng-template " + contextAttrs + '><div tabindex="0" class="popover-start sr-only" aria-label="">popover content start</div>';
15063
+ markup += "<ng-template " + contextAttrs + '><button class="popover-start"></button>';
15066
15064
  if (popoverTemplate) {
15067
15065
  markup += "" + (popoverTemplate ? popoverTemplate : "");
15068
15066
  }
@@ -15073,7 +15071,7 @@
15073
15071
  if (shared.get("hasPopoverContent")) {
15074
15072
  markup += "</div>";
15075
15073
  }
15076
- return markup + '<div tabindex="0" class="popover-end sr-only" aria-label="">popover content ended</div></ng-template></' + tagName$q + ">";
15074
+ return markup + '<button class="popover-end"></button></ng-template></' + tagName$q + ">";
15077
15075
  }
15078
15076
  };
15079
15077
  }));
@@ -27416,18 +27414,14 @@
27416
27414
  var newDay = newDate.getDate().toString();
27417
27415
  _.filter($("span:contains(" + newDay + ")").not(".is-other-month"), (function(obj) {
27418
27416
  if ($(obj).text() === newDay) {
27419
- if ($(obj).hasClass("selected")) {
27420
- $(obj).parent().attr("aria-selected", "true");
27421
- }
27422
27417
  $(obj).attr("aria-label", moment(newDate).format("dddd, MMMM Do YYYY"));
27423
- $("[bsdatepickerdaydecorator]").not(".is-other-month").attr("tabindex", "-1");
27424
- $(obj).attr("tabindex", "0");
27425
27418
  $(obj).focus();
27426
27419
  _this.activeDate = newDate;
27427
27420
  }
27428
27421
  }));
27429
27422
  if (newDate.getMonth() === (new Date).getMonth() && newDate.getFullYear() === (new Date).getFullYear()) {
27430
27423
  _this.hightlightToday();
27424
+ $("span:contains(" + (new Date).getDate().toString() + ")").not(".is-other-month").parent().attr("aria-selected", "true");
27431
27425
  }
27432
27426
  }));
27433
27427
  };
@@ -27469,9 +27463,6 @@
27469
27463
  if (event.originalEvent) {
27470
27464
  _this.setFocusForDate(-1);
27471
27465
  }
27472
- setTimeout((function() {
27473
- $(".bs-datepicker-head .previous").focus();
27474
- }));
27475
27466
  }));
27476
27467
  datePickerHead.find(".next").click((function(event) {
27477
27468
  _this.next = _this.getMonth(_this.activeDate, 2);
@@ -27480,9 +27471,6 @@
27480
27471
  if (event.originalEvent) {
27481
27472
  _this.setFocusForDate(1);
27482
27473
  }
27483
- setTimeout((function() {
27484
- $(".bs-datepicker-head .next").focus();
27485
- }));
27486
27474
  }));
27487
27475
  datePickerHead.find(".current").click((function(event) {
27488
27476
  if (event.originalEvent) {
@@ -27497,19 +27485,6 @@
27497
27485
  }));
27498
27486
  datePickerHead.find(".next").attr("aria-label", "Next Month, " + this.next.fullMonth + " " + this.next.date.getFullYear());
27499
27487
  datePickerHead.find(".previous").attr("aria-label", "Previous Month, " + this.prev.fullMonth + " " + this.prev.date.getFullYear());
27500
- setTimeout((function() {
27501
- var currentNodes = datePickerHead.find(".current span");
27502
- var msg = "Changed to month ";
27503
- datePickerHead.find(".current").attr("aria-live", "assertive").attr("aria-atomic", "false");
27504
- if (_this.clicked) {
27505
- if ($(currentNodes[0]).text()) {
27506
- datePickerHead.find(".ng-star-inserted").prepend('<div class="sr-only">' + msg + "</div>");
27507
- }
27508
- if ($(currentNodes[1]).text()) {
27509
- datePickerHead.find(".current").last().prepend('<div class="sr-only"> and year </div>');
27510
- }
27511
- }
27512
- }));
27513
27488
  };
27514
27489
  BaseDateTimeComponent.prototype.setFocusForMonthOrDay = function() {
27515
27490
  var activeMonthOrYear = $(".bs-datepicker-head .current").first().text();
@@ -27645,6 +27620,8 @@
27645
27620
  BaseDateTimeComponent.prototype.loadMonths = function() {
27646
27621
  var _this = this;
27647
27622
  setTimeout((function() {
27623
+ var datePickerBody = $(".bs-datepicker-body");
27624
+ datePickerBody.find("table.months span").attr("tabindex", "0");
27648
27625
  _this.addKeyBoardEventsForMonths();
27649
27626
  _this.addDatepickerMouseEvents();
27650
27627
  }));
@@ -27687,6 +27664,8 @@
27687
27664
  BaseDateTimeComponent.prototype.loadYears = function() {
27688
27665
  var _this = this;
27689
27666
  setTimeout((function() {
27667
+ var datePickerBody = $(".bs-datepicker-body");
27668
+ datePickerBody.find("table.years span").attr("tabindex", "0");
27690
27669
  _this.addKeyBoardEventsForYears();
27691
27670
  _this.addDatepickerMouseEvents();
27692
27671
  }));
@@ -27703,8 +27682,6 @@
27703
27682
  }
27704
27683
  }
27705
27684
  setTimeout((function() {
27706
- $(".bs-datepicker-body table.months span").attr("tabindex", "-1");
27707
- $(".bs-datepicker-body table.months span:contains(" + newMonth + ")").attr("tabindex", "0");
27708
27685
  $(".bs-datepicker-body table.months span:contains(" + newMonth + ")").focus();
27709
27686
  _this.activeDate = newDate;
27710
27687
  }));
@@ -27753,8 +27730,6 @@
27753
27730
  }
27754
27731
  }
27755
27732
  setTimeout((function() {
27756
- $(".bs-datepicker-body table.years span").attr("tabindex", "-1");
27757
- $(".bs-datepicker-body table.years span:contains(" + newYear + ")").attr("tabindex", "0");
27758
27733
  $(".bs-datepicker-body table.years span:contains(" + newYear + ")").focus();
27759
27734
  _this.activeDate = newDate;
27760
27735
  }));
@@ -27921,6 +27896,11 @@
27921
27896
  children[i].classList.remove("add-opacity");
27922
27897
  }
27923
27898
  displayInputElem.classList.remove("remove-opacity");
27899
+ var allDateTimeElements = this.nativeElement.getElementsByTagName("*");
27900
+ for (var i = 0; i < allDateTimeElements.length; i++) {
27901
+ allDateTimeElements[i].setAttribute("tabindex", this.tabindex);
27902
+ }
27903
+ displayInputElem.removeAttribute("tabindex");
27924
27904
  }
27925
27905
  };
27926
27906
  BaseDateTimeComponent.prototype.onDateTimeInputFocus = function(skipFocus) {
@@ -27937,6 +27917,11 @@
27937
27917
  children[i].classList.add("add-opacity");
27938
27918
  }
27939
27919
  displayInputElem.classList.add("remove-opacity");
27920
+ var allDateTimeElements = this.nativeElement.getElementsByTagName("*");
27921
+ for (var i = 0; i < allDateTimeElements.length; i++) {
27922
+ allDateTimeElements[i].setAttribute("tabindex", "-1");
27923
+ }
27924
+ displayInputElem.setAttribute("tabindex", this.tabindex);
27940
27925
  return;
27941
27926
  }
27942
27927
  if (displayInputElem && this._triggeredByUser) {
@@ -28019,10 +28004,7 @@
28019
28004
  this.isReadOnly = this.dataentrymode != "undefined" && !this.isDataEntryModeEnabledOnInput(this.dataentrymode);
28020
28005
  var mobileInput = this.getMobileInput();
28021
28006
  if (mobileInput) {
28022
- setTimeout((function() {
28023
- mobileInput.style.width = mobileInput.parentElement.clientWidth + "px";
28024
- mobileInput.style.height = mobileInput.parentElement.clientHeight + "px";
28025
- }));
28007
+ mobileInput.style.width = mobileInput.parentElement.clientWidth + "px";
28026
28008
  }
28027
28009
  };
28028
28010
  BaseDateTimeComponent.prototype.ngOnDestroy = function() {
@@ -28285,7 +28267,7 @@
28285
28267
  if (this.isDropDownDisplayEnabledOnInput(this.showdropdownon)) {
28286
28268
  event.stopPropagation();
28287
28269
  var action = this.keyEventPlugin.constructor.getEventFullKey(event);
28288
- if (action === "enter") {
28270
+ if (action === "enter" || action === "arrowdown") {
28289
28271
  var newVal = core$1.getDateObj(event.target.value, {
28290
28272
  pattern: this.datepattern
28291
28273
  });
@@ -28327,7 +28309,7 @@
28327
28309
  type: core.Component,
28328
28310
  args: [ {
28329
28311
  selector: "[wmDate]",
28330
- 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',
28312
+ 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',
28331
28313
  providers: [ base.provideAs(DateComponent, forms.NG_VALUE_ACCESSOR, true), base.provideAs(DateComponent, forms.NG_VALIDATORS, true), base.provideAsWidgetRef(DateComponent) ]
28332
28314
  } ]
28333
28315
  } ];
@@ -28779,7 +28761,7 @@
28779
28761
  type: core.Component,
28780
28762
  args: [ {
28781
28763
  selector: "[wmDateTime]",
28782
- 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',
28764
+ 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',
28783
28765
  providers: [ base.provideAs(DatetimeComponent, forms.NG_VALUE_ACCESSOR, true), base.provideAs(DatetimeComponent, forms.NG_VALIDATORS, true), base.provideAsWidgetRef(DatetimeComponent), {
28784
28766
  provide: timepicker.TimepickerConfig,
28785
28767
  deps: [ core$1.AbstractI18nService ],
@@ -35751,9 +35733,6 @@
35751
35733
  return _this.hidePopover();
35752
35734
  };
35753
35735
  }
35754
- setTimeout((function() {
35755
- _this.anchorRef.nativeElement.removeAttribute("aria-describedby");
35756
- }));
35757
35736
  var deRegister = this.eventManager.addEventListener(popoverContainer, "keydown.esc", (function() {
35758
35737
  _this.isOpen = false;
35759
35738
  _this.setFocusToPopoverLink();
@@ -35761,6 +35740,8 @@
35761
35740
  }));
35762
35741
  var popoverStartBtn = popoverContainer.querySelector(".popover-start");
35763
35742
  var popoverEndBtn = popoverContainer.querySelector(".popover-end");
35743
+ popoverStartBtn.setAttribute("aria-hidden", "true");
35744
+ popoverEndBtn.setAttribute("aria-hidden", "true");
35764
35745
  popoverStartBtn.onkeydown = function(event) {
35765
35746
  var action = _this.keyEventPlugin.constructor.getEventFullKey(event);
35766
35747
  if (action === "shift.tab") {
@@ -35784,6 +35765,7 @@
35784
35765
  return _this.close();
35785
35766
  };
35786
35767
  }
35768
+ core.setAttr(popoverContainer, "tabindex", 0);
35787
35769
  setTimeout((function() {
35788
35770
  return popoverStartBtn.focus();
35789
35771
  }), 50);
@@ -36462,7 +36444,7 @@
36462
36444
  var subscriptions = [ _this.bsModal.onShown.subscribe((function(_a) {
36463
36445
  var id = _a.id;
36464
36446
  var ref = _this.dialogService.getLastOpenedDialog();
36465
- if (ref === _this) {
36447
+ if (ref === _this && !_this.dialogId) {
36466
36448
  invokeOpenedCallback(ref);
36467
36449
  _this.dialogId = id;
36468
36450
  }
@@ -36476,6 +36458,7 @@
36476
36458
  ref = _this.dialogService.getLastOpenedDialog();
36477
36459
  }
36478
36460
  if (ref === _this) {
36461
+ _this.dialogId = null;
36479
36462
  _this.dialogService.removeFromOpenedDialogs(ref);
36480
36463
  _this.dialogService.removeFromClosedDialogs(ref);
36481
36464
  invokeClosedCallback(ref);
@@ -44706,9 +44689,9 @@
44706
44689
  }
44707
44690
  }
44708
44691
  };
44709
- ListComponent.prototype.onUpdate = function(evt, ui, presentIndex) {
44692
+ ListComponent.prototype.onUpdate = function(evt, ui) {
44710
44693
  var data = this.fieldDefs;
44711
- var newIndex = ui === undefined ? presentIndex : ui.item.index();
44694
+ var newIndex = ui.item.index();
44712
44695
  var oldIndex = this.$ulEle.data("oldIndex");
44713
44696
  var minIndex = _.min([ newIndex, oldIndex ]);
44714
44697
  var maxIndex = _.max([ newIndex, oldIndex ]);
@@ -44904,10 +44887,8 @@
44904
44887
  this.currentIndex = presentIndex + 1;
44905
44888
  if (this.isListElementMovable) {
44906
44889
  this.ariaText = "Item " + this.currentIndex + " grabbed, current position ";
44907
- this.$ulEle.data("oldIndex", presentIndex);
44908
44890
  } else {
44909
44891
  this.ariaText = "Item " + this.currentIndex + " dropped, final position ";
44910
- this.onUpdate($event, undefined, presentIndex);
44911
44892
  }
44912
44893
  }
44913
44894
  };
@@ -44952,12 +44933,10 @@
44952
44933
  this.dataNavigator.widget.maxResults = nv;
44953
44934
  this.dataNavigator.maxResults = nv;
44954
44935
  } else if (key === "enablereorder") {
44955
- if (nv && this.$ulEle) {
44956
- this.$ulEle.attr("aria-describedby", this.titleId);
44936
+ if (nv) {
44957
44937
  this.configureDnD();
44958
44938
  this.$ulEle.sortable("enable");
44959
44939
  } else if (this.$ulEle && !nv) {
44960
- this.$ulEle.removeAttr("aria-describedby");
44961
44940
  this.$ulEle.sortable("disable");
44962
44941
  }
44963
44942
  } else {
@@ -45111,18 +45090,9 @@
45111
45090
  _super.prototype.ngAfterViewInit.call(_this);
45112
45091
  _this.setUpCUDHandlers();
45113
45092
  _this.selectedItemWidgets = _this.multiselect ? [] : {};
45114
- var ele = $(_this.nativeElement).find(".app-livelist-container");
45115
45093
  if (_this.enablereorder && !_this.groupby) {
45116
- if (ele) {
45117
- ele.attr("aria-describedby", _this.titleId);
45118
- }
45119
45094
  _this.configureDnD();
45120
45095
  }
45121
- if (!_this.enablereorder) {
45122
- if (ele) {
45123
- ele.removeAttr("aria-describedby");
45124
- }
45125
- }
45126
45096
  if (_this.groupby && _this.collapsible) {
45127
45097
  _this.handleHeaderClick = base.handleHeaderClick;
45128
45098
  _this.toggleAllHeaders = base.toggleAllHeaders.bind(undefined, _this);
@@ -45132,16 +45102,6 @@
45132
45102
  this.setupHandlers();
45133
45103
  var $ul = this.nativeElement.querySelector("ul.app-livelist-container");
45134
45104
  base.styler($ul, this, base.APPLY_STYLES_TYPE.SCROLLABLE_CONTAINER);
45135
- if (this.enablereorder) {
45136
- if ($ul) {
45137
- $ul.setAttribute("aria-describedby", this.titleId);
45138
- }
45139
- }
45140
- if (!this.enablereorder) {
45141
- if ($ul) {
45142
- $ul.removeAttribute("aria-describedby");
45143
- }
45144
- }
45145
45105
  if (core.isMobileApp() && $ul.querySelector(".app-list-item-action-panel")) {
45146
45106
  this._listAnimator = new ListAnimator(this);
45147
45107
  }
@@ -45166,7 +45126,7 @@
45166
45126
  type: core$1.Component,
45167
45127
  args: [ {
45168
45128
  selector: "div[wmList]",
45169
- template: '<div class="panel-heading" *ngIf="title || subheading || iconclass">\n <h3 class="panel-title">\n <div class="pull-left">\n <i class="app-icon panel-icon {{iconclass}}" aria-hidden="true" [hidden]="!iconclass"></i>\n </div>\n <div class="pull-left">\n <div class="heading" [innerHTML]="title"></div>\n <div class="description" [innerHTML]="subheading"></div>\n </div>\n </h3>\n</div>\n\n<nav class="app-datanavigator" [attr.aria-disabled]="dataNavigator.isDisablePrevious" aria-label="Page navigation" *ngIf="navigation === \'Inline\' && !noDataFound">\n <ul class="pager">\n <li class="previous" [ngClass]="{\'disabled\': (dataNavigator ? dataNavigator.isDisablePrevious : true)}">\n <a href="javascript:void(0);" (click)="dataNavigator.navigatePage(\'prev\', $event)"\n [attr.aria-disabled]="dataNavigator.isDisablePrevious">\n <i class="wi wi-chevron-left" aria-hidden="true"></i>\n <span class="sr-only">Go to Previous page {{dataNavigator.isDisablePrevious ? \', Disabled\' : \'\'}}</span>\n </a>\n </li>\n </ul>\n</nav>\n<div *ngIf="navigation === \'Inline\' && !noDataFound" aria-live="polite" aria-atomic="true" class="sr-only"> {{\'Page \' + dataNavigator.dn.currentPage + \' of \' + dataNavigator.pageCount }}</div>\n\n<div>\n <div id={{titleId}} class="sr-only" *ngIf="enablereorder">\n Press space bar to toggle drag drop mode, use arrow keys to move selected elements.\n </div>\n\n <div aria-live="assertive" *ngIf="listItems && enablereorder && currentIndex" class="sr-only" >\n {{ariaText + currentIndex + \' of \' + listItems.length}}\n </div>\n</div>\n\n<ul [attr.tabindex]="tabindex" class="app-livelist-container clearfix {{direction === \'horizontal\' ? \'app-horizontal-list\': \'\'}} {{listclass}}" role="list"\n (keydown.enter)="handleKeyDown($event, \'select\')"\n\n (keydown.space)="handleKeyDown($event, \'space\')"\n\n (keydown.arrowup)="handleKeyDown($event, \'focusPrev\')"\n (keydown.arrowdown)="handleKeyDown($event, \'focusNext\')"\n (keydown.arrowleft)="handleKeyDown($event, \'focusPrev\')"\n (keydown.arrowright)="handleKeyDown($event, \'focusNext\')"\n\n (keydown.shift.arrowup)="handleKeyDown($event, \'selectPrev\')"\n (keydown.shift.arrowdown)="handleKeyDown($event, \'selectNext\')"\n (keydown.shift.arrowleft)="handleKeyDown($event, \'selectPrev\')"\n (keydown.shift.arrowright)="handleKeyDown($event, \'selectNext\')"\n [hidden]="noDataFound && !variableInflight"\n>\n <ng-template [ngIf]="!groupby" [ngIfElse]="groupedListTemplate">\n <li *ngFor="let item of fieldDefs; index as $index; first as $first; last as $last;" class="app-list-item {{direction === \'horizontal\' ? \'\' : itemsPerRowClass}}" [ngClass]="listItemRef.itemClass"\n [wmListItem]="item"\n #listItemRef="listItemRef"\n [attr.tabindex]="tabindex"\n role="listitem">\n <ng-container [ngTemplateOutlet]="listTemplate" [ngTemplateOutletContext]="{item: item, $index: $index, itemRef: listItemRef, $first: $first, $last: $last, currentItemWidgets: listItemRef.currentItemWidgets}"></ng-container>\n </li>\n </ng-template>\n <ng-container [ngTemplateOutlet]="listLeftActionTemplate"></ng-container>\n <ng-container [ngTemplateOutlet]="listRightActionTemplate"></ng-container>\n</ul>\n\n<div class="no-data-msg" *ngIf="noDataFound && !variableInflight" [textContent]="nodatamessage"></div>\n\n<div class="loading-data-msg" *ngIf="variableInflight && !pulltorefresh">\n <span>\n <i class="app-icon panel-icon fa-spin" aria-hidden="true" [ngClass]="loadingicon"></i>\n <span class="sr-only">Loading</span>\n <span class="loading-text" [textContent]="loadingdatamsg"></span>\n </span>\n</div>\n\n<nav class="app-datanavigator" [attr.aria-disabled]="dataNavigator.isDisableNext" *ngIf="navigation === \'Inline\' && !noDataFound">\n <ul class="pager">\n <li class="next" [ngClass]="{\'disabled\': (dataNavigator ? dataNavigator.isDisableNext : true)}">\n <a href="javascript:void(0);" (click)="dataNavigator.navigatePage(\'next\', $event)"\n [attr.aria-disabled]="dataNavigator.isDisableNext">\n <i class="wi wi-chevron-right" aria-hidden="true"></i>\n <span class="sr-only">Go to Next page {{dataNavigator.isDisableNext ? \', Disabled\' : \'\'}}</span>\n </a>\n </li>\n </ul>\n</nav>\n\n<div class="panel-footer" *ngIf="navigation !== \'None\'" [hidden]="!showNavigation || (onDemandLoad && dataNavigator.isDisableNext) || (dataNavigator.dataSize <= pagesize) || (!dataNavigator.dataSize && !dataNavigator.datasource?.pagination?.next)">\n <nav wmPagination\n navigationalign.bind="navigationalign"\n navigation.bind="navControls"\n showrecordcount.bind="showrecordcount"\n maxsize.bind="maxsize"\n boundarylinks.bind="boundarylinks"\n forceellipses.bind="forceellipses"\n directionlinks.bind="directionlinks"\n show.bind="!onDemandLoad"\n paginationchange.event="beforePaginationChange($event, $index)"\n ></nav>\n <a *ngIf="onDemandLoad" href="javascript:void(0);"\n (click)="dataNavigator.navigatePage(\'next\', $event)"\n class="app-button btn btn-block"\n [ngClass]="paginationclass"\n [textContent]="ondemandmessage"\n ></a>\n</div>\n\n\x3c!--This template will be displayed when groupby is specified--\x3e\n<ng-template #groupedListTemplate>\n <li *ngFor="let groupObj of groupedData" class="app-list-item-group clearfix">\n <ul [attr.tabindex]="tabindex" class="list-group item-group" [ngClass]="listclass">\n <li class="app-list-item-header list-item list-group-header" (click)="handleHeaderClick($event)" [ngClass]="{\'collapsible-content\': collapsible}">\n <h4>{{groupObj.key}}\n <div class="header-action">\n <i class="app-icon wi action wi-chevron-up" *ngIf="collapsible"></i>\n <span *ngIf="showcount" class="label label-default">{{groupObj.data.length}}</span>\n </div>\n </h4>\n </li>\n <ul class="list-group clearfix {{direction === \'horizontal\' ? \'app-horizontal-list\': \'\'}}">\n <li *ngFor="let item of groupObj.data; index as $index; first as $first; last as $last;" [attr.tabindex]="tabindex"\n class="app-list-item group-list-item {{itemsPerRowClass}}"\n [ngClass]="listItemRef.itemClass"\n [wmListItem]="item" #listItemRef="listItemRef">\n <ng-container [ngTemplateOutlet]="listTemplate" [ngTemplateOutletContext]="{item: item, $index: $index, itemRef: listItemRef, $first: $first, $last: $last, currentItemWidgets: listItemRef.currentItemWidgets}"></ng-container>\n </li>\n </ul>\n </ul>\n </li>\n</ng-template>\n',
45129
+ template: '<div class="panel-heading" *ngIf="title || subheading || iconclass">\n <h3 class="panel-title">\n <div class="pull-left">\n <i class="app-icon panel-icon {{iconclass}}" aria-hidden="true" [hidden]="!iconclass"></i>\n </div>\n <div class="pull-left">\n <div class="heading" [innerHTML]="title"></div>\n <div class="description" [innerHTML]="subheading"></div>\n </div>\n </h3>\n</div>\n\n<nav class="app-datanavigator" [attr.aria-disabled]="dataNavigator.isDisablePrevious" aria-label="Page navigation" *ngIf="navigation === \'Inline\' && !noDataFound">\n <ul class="pager">\n <li class="previous" [ngClass]="{\'disabled\': (dataNavigator ? dataNavigator.isDisablePrevious : true)}">\n <a href="javascript:void(0);" (click)="dataNavigator.navigatePage(\'prev\', $event)"\n [attr.aria-disabled]="dataNavigator.isDisablePrevious">\n <i class="wi wi-chevron-left" aria-hidden="true"></i>\n <span class="sr-only">Go to Previous page {{dataNavigator.isDisablePrevious ? \', Disabled\' : \'\'}}</span>\n </a>\n </li>\n </ul>\n</nav>\n<div *ngIf="navigation === \'Inline\' && !noDataFound" aria-live="polite" aria-atomic="true" class="sr-only"> {{\'Page \' + dataNavigator.dn.currentPage + \' of \' + dataNavigator.pageCount }}</div>\n\n<div>\n <div id={{titleId}} class="sr-only" *ngIf="enablereorder">\n Press space bar to toggle drag drop mode, use arrow keys to move selected elements.\n </div>\n\n <div aria-live="assertive" *ngIf="listItems && enablereorder && currentIndex" class="sr-only" >\n {{ariaText + currentIndex + \' of \' + listItems.length}}\n </div>\n</div>\n\n<ul [attr.tabindex]="tabindex" [attr.aria-describedby] = "titleId" class="app-livelist-container clearfix {{direction === \'horizontal\' ? \'app-horizontal-list\': \'\'}} {{listclass}}" role="list"\n (keydown.enter)="handleKeyDown($event, \'select\')"\n\n (keydown.space)="handleKeyDown($event, \'space\')"\n\n (keydown.arrowup)="handleKeyDown($event, \'focusPrev\')"\n (keydown.arrowdown)="handleKeyDown($event, \'focusNext\')"\n (keydown.arrowleft)="handleKeyDown($event, \'focusPrev\')"\n (keydown.arrowright)="handleKeyDown($event, \'focusNext\')"\n\n (keydown.shift.arrowup)="handleKeyDown($event, \'selectPrev\')"\n (keydown.shift.arrowdown)="handleKeyDown($event, \'selectNext\')"\n (keydown.shift.arrowleft)="handleKeyDown($event, \'selectPrev\')"\n (keydown.shift.arrowright)="handleKeyDown($event, \'selectNext\')"\n [hidden]="noDataFound && !variableInflight"\n>\n <ng-template [ngIf]="!groupby" [ngIfElse]="groupedListTemplate">\n <li *ngFor="let item of fieldDefs; index as $index; first as $first; last as $last;" class="app-list-item {{direction === \'horizontal\' ? \'\' : itemsPerRowClass}}" [ngClass]="listItemRef.itemClass"\n [wmListItem]="item"\n #listItemRef="listItemRef"\n [attr.tabindex]="tabindex"\n role="listitem">\n <ng-container [ngTemplateOutlet]="listTemplate" [ngTemplateOutletContext]="{item: item, $index: $index, itemRef: listItemRef, $first: $first, $last: $last, currentItemWidgets: listItemRef.currentItemWidgets}"></ng-container>\n </li>\n </ng-template>\n <ng-container [ngTemplateOutlet]="listLeftActionTemplate"></ng-container>\n <ng-container [ngTemplateOutlet]="listRightActionTemplate"></ng-container>\n</ul>\n\n<div class="no-data-msg" *ngIf="noDataFound && !variableInflight" [textContent]="nodatamessage"></div>\n\n<div class="loading-data-msg" *ngIf="variableInflight && !pulltorefresh">\n <span>\n <i class="app-icon panel-icon fa-spin" aria-hidden="true" [ngClass]="loadingicon"></i>\n <span class="sr-only">Loading</span>\n <span class="loading-text" [textContent]="loadingdatamsg"></span>\n </span>\n</div>\n\n<nav class="app-datanavigator" [attr.aria-disabled]="dataNavigator.isDisableNext" *ngIf="navigation === \'Inline\' && !noDataFound">\n <ul class="pager">\n <li class="next" [ngClass]="{\'disabled\': (dataNavigator ? dataNavigator.isDisableNext : true)}">\n <a href="javascript:void(0);" (click)="dataNavigator.navigatePage(\'next\', $event)"\n [attr.aria-disabled]="dataNavigator.isDisableNext">\n <i class="wi wi-chevron-right" aria-hidden="true"></i>\n <span class="sr-only">Go to Next page {{dataNavigator.isDisableNext ? \', Disabled\' : \'\'}}</span>\n </a>\n </li>\n </ul>\n</nav>\n\n<div class="panel-footer" *ngIf="navigation !== \'None\'" [hidden]="!showNavigation || (onDemandLoad && dataNavigator.isDisableNext) || (dataNavigator.dataSize <= pagesize) || (!dataNavigator.dataSize && !dataNavigator.datasource?.pagination?.next)">\n <nav wmPagination\n navigationalign.bind="navigationalign"\n navigation.bind="navControls"\n showrecordcount.bind="showrecordcount"\n maxsize.bind="maxsize"\n boundarylinks.bind="boundarylinks"\n forceellipses.bind="forceellipses"\n directionlinks.bind="directionlinks"\n show.bind="!onDemandLoad"\n paginationchange.event="beforePaginationChange($event, $index)"\n ></nav>\n <a *ngIf="onDemandLoad" href="javascript:void(0);"\n (click)="dataNavigator.navigatePage(\'next\', $event)"\n class="app-button btn btn-block"\n [ngClass]="paginationclass"\n [textContent]="ondemandmessage"\n ></a>\n</div>\n\n\x3c!--This template will be displayed when groupby is specified--\x3e\n<ng-template #groupedListTemplate>\n <li *ngFor="let groupObj of groupedData" class="app-list-item-group clearfix">\n <ul [attr.tabindex]="tabindex" class="list-group item-group" [ngClass]="listclass">\n <li class="app-list-item-header list-item list-group-header" (click)="handleHeaderClick($event)" [ngClass]="{\'collapsible-content\': collapsible}">\n <h4>{{groupObj.key}}\n <div class="header-action">\n <i class="app-icon wi action wi-chevron-up" *ngIf="collapsible"></i>\n <span *ngIf="showcount" class="label label-default">{{groupObj.data.length}}</span>\n </div>\n </h4>\n </li>\n <ul class="list-group clearfix {{direction === \'horizontal\' ? \'app-horizontal-list\': \'\'}}">\n <li *ngFor="let item of groupObj.data; index as $index; first as $first; last as $last;" [attr.tabindex]="tabindex"\n class="app-list-item group-list-item {{itemsPerRowClass}}"\n [ngClass]="listItemRef.itemClass"\n [wmListItem]="item" #listItemRef="listItemRef">\n <ng-container [ngTemplateOutlet]="listTemplate" [ngTemplateOutletContext]="{item: item, $index: $index, itemRef: listItemRef, $first: $first, $last: $last, currentItemWidgets: listItemRef.currentItemWidgets}"></ng-container>\n </li>\n </ul>\n </ul>\n </li>\n</ng-template>\n',
45170
45130
  providers: [ base.provideAsWidgetRef(ListComponent) ]
45171
45131
  } ]
45172
45132
  } ];
@@ -46536,6 +46496,11 @@
46536
46496
  return;
46537
46497
  }
46538
46498
  this.variableInflight = false;
46499
+ if (newValue && newValue.length === 0) {
46500
+ this.callDataGridMethod("setStatus", "nodata", this.nodatamessage);
46501
+ } else {
46502
+ this.callDataGridMethod("setStatus", "ready");
46503
+ }
46539
46504
  if (this.gridOptions.isNavTypeScrollOrOndemand()) {
46540
46505
  _a = __read(this.paginationService.updateFieldsOnPagination(this, newValue), 2),
46541
46506
  this._gridData = _a[0], this.currentPage = _a[1];