@wavemaker/app-runtime-wm-build 11.4.0-next.25501 → 11.4.0-next.25703

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5052,7 +5052,12 @@
5052
5052
  fieldDefs = [];
5053
5053
  parent.gridOptions.setCurrentPage(1);
5054
5054
  }
5055
- var currentPage = parent.currentPage;
5055
+ var currentPage;
5056
+ if (parent.widgetType === "wm-table") {
5057
+ currentPage = parent.gridOptions.showviewlessbutton && parent.gridOptions.mode === "viewless" ? parent.gridOptions.getCurrentPage() : parent.currentPage;
5058
+ } else {
5059
+ currentPage = parent.currentPage;
5060
+ }
5056
5061
  var dataNavigator = parent.dataNavigator;
5057
5062
  var pagesize = parent.pagesize;
5058
5063
  if (!isDefined(fieldDefs) || dataNavigator.isFirstPage()) {
@@ -8652,6 +8657,16 @@
8652
8657
  var routeRegex = new RegExp("^(#/|#)" + routeName + "$");
8653
8658
  return routeRegex.test(link);
8654
8659
  };
8660
+ var hasLinkToCurrentPage = function(nodes, routeUrl) {
8661
+ return nodes.some((function(node) {
8662
+ if (isActiveNavItem(node.link, routeUrl)) {
8663
+ return true;
8664
+ }
8665
+ if (node.children) {
8666
+ return hasLinkToCurrentPage(node.children, routeUrl);
8667
+ }
8668
+ }));
8669
+ };
8655
8670
  var getOrderByExpr = function(pageableObj) {
8656
8671
  pageableObj = pageableObj || [];
8657
8672
  var expressions = [], KEY_VAL_SEPARATOR = " ", FIELD_SEPARATOR = ",";
@@ -11214,6 +11229,10 @@
11214
11229
  if (openedDialogs.indexOf(ref) !== -1) {
11215
11230
  openedDialogs.splice(openedDialogs.indexOf(ref), 1);
11216
11231
  }
11232
+ if (openedDialogs.length === 0 && (core$1.isMobile() || core$1.isMobileApp())) {
11233
+ var parentSelector = $("body > app-root")[0];
11234
+ parentSelector.removeAttribute("aria-hidden");
11235
+ }
11217
11236
  };
11218
11237
  DialogServiceImpl.prototype.getOpenedDialogs = function() {
11219
11238
  return openedDialogs;
@@ -12389,7 +12408,8 @@
12389
12408
  mindate: "mindate",
12390
12409
  maxdate: "maxdate",
12391
12410
  excludedates: "excludedates",
12392
- excludedays: "excludedays"
12411
+ excludedays: "excludedays",
12412
+ invalidNumber: "invalidNumber"
12393
12413
  };
12394
12414
  var BaseFieldValidations = function() {
12395
12415
  function BaseFieldValidations(instance, formwidget, widgettype, widgetControl, widgetContext, tableFieldType) {
@@ -13022,6 +13042,7 @@
13022
13042
  exports.getWidgetPropsByType = getWidgetPropsByType;
13023
13043
  exports.groupData = groupData;
13024
13044
  exports.handleHeaderClick = handleHeaderClick;
13045
+ exports.hasLinkToCurrentPage = hasLinkToCurrentPage;
13025
13046
  exports.interpolateBindExpressions = interpolateBindExpressions;
13026
13047
  exports.isActiveNavItem = isActiveNavItem;
13027
13048
  exports.isBooleanAttr = isBooleanAttr;
@@ -14199,7 +14220,7 @@
14199
14220
  var eventsTmpl = widgetType === core.FormWidgetType.UPLOAD ? "" : getEventsTemplate(attrs);
14200
14221
  var controlLayout = core.isMobileApp() ? "col-xs-12" : "col-sm-12";
14201
14222
  var isInList = pCounter === (parentList && parentList.get("parent_form_reference"));
14202
- attrs.set("__errormsg", formFieldErrorMsgId);
14223
+ attrs.set("__validationId", formFieldErrorMsgId);
14203
14224
  attrs.set("__widgetType", widgetType);
14204
14225
  attrs.delete("widget");
14205
14226
  shared.set("counter", counter);
@@ -14209,7 +14230,7 @@
14209
14230
  } else {
14210
14231
  setDefaultPlaceholder(attrs, widgetType, 2);
14211
14232
  }
14212
- return "<" + tagName$X + ' data-role="' + dataRole + '" [formGroup]="' + pCounter + '.ngform" wmFormField captionPosition #' + counter + '="wmFormField" widgettype="' + widgetType + '" ' + transpiler.getFormMarkupAttr(attrs) + '>\n <div class="live-field form-group app-composite-widget clearfix caption-{{' + pCounter + '.captionposition}}" widget="' + widgetType + '">\n <label [hidden]="!' + counter + '.displayname" class="app-label control-label formfield-label {{' + pCounter + '._captionClass}}"\n [ngStyle]="{width: ' + pCounter + ".captionsize}\" [ngClass]=\"{'text-danger': " + counter + "._control?.invalid && " + counter + "._control?.touched && " + pCounter + ".isUpdateMode,\n required: " + pCounter + ".isUpdateMode && " + counter + '.required}" [textContent]="' + counter + '.displayname"> </label>\n <div [ngClass]="' + counter + ".displayname ? " + pCounter + "._widgetClass : '" + controlLayout + '\'">\n <label class="form-control-static app-label" *ngIf="!(' + pCounter + ".isUpdateMode || " + counter + ".viewmodewidget === 'default' || " + counter + ".widgettype === 'upload')\"\n [hidden]=\"" + pCounter + ".isUpdateMode || " + counter + ".viewmodewidget === 'default' || " + counter + ".widgettype === 'upload'\" [innerHTML]=\"" + getCaptionByWidget(attrs, widgetType, counter) + '"></label>\n ' + getTemplate(attrs, widgetType, eventsTmpl, counter, pCounter, isInList) + '\n <span aria-hidden="true" *ngIf="' + counter + '.showPendingSpinner" class="form-field-spinner fa fa-circle-o-notch fa-spin form-control-feedback"></span>\n <p *ngIf="!(' + counter + "._control?.invalid && " + counter + "._control?.touched) && " + pCounter + '.isUpdateMode"\n class="help-block" aria-hidden="true" role="alert" aria-live="polite" [textContent]="' + counter + '.hint"></p>\n ' + validationMsg + "\n </div>\n </div>";
14233
+ return "<" + tagName$X + ' data-role="' + dataRole + '" [formGroup]="' + pCounter + '.ngform" wmFormField captionPosition #' + counter + '="wmFormField" widgettype="' + widgetType + '" ' + transpiler.getFormMarkupAttr(attrs) + '>\n <div class="live-field form-group app-composite-widget clearfix caption-{{' + pCounter + '.captionposition}}" widget="' + widgetType + '">\n <label [hidden]="!' + counter + '.displayname" class="app-label control-label formfield-label {{' + pCounter + '._captionClass}}"\n [ngStyle]="{width: ' + pCounter + ".captionsize}\" [ngClass]=\"{'text-danger': " + counter + "._control?.invalid && " + counter + "._control?.touched && " + pCounter + ".isUpdateMode,\n required: " + pCounter + ".isUpdateMode && " + counter + '.required}" [textContent]="' + counter + '.displayname"> </label>\n <div [ngClass]="' + counter + ".displayname ? " + pCounter + "._widgetClass : '" + controlLayout + '\'">\n <label class="form-control-static app-label"\n [hidden]="' + pCounter + ".isUpdateMode || " + counter + ".viewmodewidget === 'default' || " + counter + ".widgettype === 'upload'\" [innerHTML]=\"" + getCaptionByWidget(attrs, widgetType, counter) + '"></label>\n ' + getTemplate(attrs, widgetType, eventsTmpl, counter, pCounter, isInList) + '\n <span aria-hidden="true" *ngIf="' + counter + '.showPendingSpinner" class="form-field-spinner fa fa-circle-o-notch fa-spin form-control-feedback"></span>\n <p *ngIf="!(' + counter + "._control?.invalid && " + counter + "._control?.touched) && " + pCounter + '.isUpdateMode"\n class="help-block" aria-hidden="true" role="alert" aria-live="polite" [textContent]="' + counter + '.hint"></p>\n ' + validationMsg + "\n </div>\n </div>";
14213
14234
  },
14214
14235
  post: function() {
14215
14236
  return "</" + tagName$X + ">";
@@ -21253,8 +21274,8 @@
21253
21274
  var \u02750 = getChangeEvt;
21254
21275
  var overrideSummerNote = function() {
21255
21276
  if (!$.summernote.__overidden) {
21256
- var origFn_1 = $.summernote.ui.button.bind($.summernote);
21257
- $.summernote.ui.button = function() {
21277
+ var origFn_1 = $.summernote.ui_template().button.bind($.summernote);
21278
+ $.summernote.ui_template.button = function() {
21258
21279
  var args = [];
21259
21280
  for (var _i = 0; _i < arguments.length; _i++) {
21260
21281
  args[_i] = arguments[_i];
@@ -26903,22 +26924,24 @@
26903
26924
  configurable: true
26904
26925
  });
26905
26926
  DateTimePickerComponent.prototype.validateSelectedDate = function() {
26906
- var _a, _b, _c, _d, _e, _f, _g;
26927
+ var _a, _b, _c, _d, _e;
26907
26928
  if (!this.changedValue) {
26908
26929
  return true;
26909
26930
  }
26910
26931
  var cd = moment(this.changedValue);
26911
- if (((_a = this._bsDatepickerConfig) === null || _a === void 0 ? void 0 : _a.minDate) && ((_b = this._bsDatepickerConfig) === null || _b === void 0 ? void 0 : _b.minDate) > this.changedValue) {
26932
+ var minDate = (_a = this._bsDatepickerConfig) === null || _a === void 0 ? void 0 : _a.minDate;
26933
+ var maxDate = (_b = this._bsDatepickerConfig) === null || _b === void 0 ? void 0 : _b.maxDate;
26934
+ if (minDate && (this.mode === "DATE" && moment(minDate).startOf("day").toDate() > this.changedValue || this.mode !== "DATE" && minDate > this.changedValue)) {
26912
26935
  return false;
26913
26936
  }
26914
- if (((_c = this._bsDatepickerConfig) === null || _c === void 0 ? void 0 : _c.maxDate) && ((_d = this._bsDatepickerConfig) === null || _d === void 0 ? void 0 : _d.maxDate) < this.changedValue) {
26937
+ if (maxDate && (this.mode === "DATE" && moment(maxDate).endOf("day").toDate() < this.changedValue || this.mode !== "DATE" && maxDate < this.changedValue)) {
26915
26938
  return false;
26916
26939
  }
26917
- if (((_f = (_e = this._bsDatepickerConfig) === null || _e === void 0 ? void 0 : _e.daysDisabled) === null || _f === void 0 ? void 0 : _f.indexOf(cd.day())) >= 0) {
26940
+ if (((_d = (_c = this._bsDatepickerConfig) === null || _c === void 0 ? void 0 : _c.daysDisabled) === null || _d === void 0 ? void 0 : _d.indexOf(cd.day())) >= 0) {
26918
26941
  return false;
26919
26942
  }
26920
26943
  var cdSt = cd.startOf("day").toDate().getTime();
26921
- if ((_g = this.excludedDatesToDisable) === null || _g === void 0 ? void 0 : _g.find((function(d) {
26944
+ if ((_e = this.excludedDatesToDisable) === null || _e === void 0 ? void 0 : _e.find((function(d) {
26922
26945
  return d.getTime() === cdSt;
26923
26946
  }))) {
26924
26947
  return false;
@@ -26967,6 +26990,9 @@
26967
26990
  newVal.setMilliseconds(oldVal.getMilliseconds());
26968
26991
  }
26969
26992
  this.changedValue = newVal;
26993
+ if (this.mode === "DATE" && oldVal !== newVal && this.validateSelectedDate()) {
26994
+ this.onOkClick();
26995
+ }
26970
26996
  };
26971
26997
  DateTimePickerComponent.prototype.onTimeUpdate = function(newVal) {
26972
26998
  this.changedValue = newVal;
@@ -26988,6 +27014,10 @@
26988
27014
  this.triggerChange();
26989
27015
  this.hideModal();
26990
27016
  };
27017
+ DateTimePickerComponent.prototype.setToday = function() {
27018
+ var today = moment().startOf("day").toDate();
27019
+ this.onDateUpdate(today);
27020
+ };
26991
27021
  DateTimePickerComponent.prototype.reset = function() {
26992
27022
  this.changedValue = this._value;
26993
27023
  };
@@ -27022,7 +27052,7 @@
27022
27052
  type: core.Component,
27023
27053
  args: [ {
27024
27054
  selector: "wm-datetimepicker",
27025
- template: ' \n <ng-template #datetimepickerTemplate>\n <div class="app-datetime-picker">\n <div class="modal-body">\n <div class="mobile-datetime-picker-options">\n \n </div>\n <bs-datepicker-inline\n [bsConfig]="bsDatepickerConfig"\n [datesDisabled]="excludedDatesToDisable"\n bsDatepicker\n [bsValue]="changedValue"\n (bsValueChange)="onDateUpdate($event)"\n *ngIf="mode === \'DATE_TIME\' || mode === \'DATE\'">\n </bs-datepicker-inline>\n <wm-timepicker\n [value]="changedValue"\n [min]="minTime"\n [max]="maxTime"\n (change)="onTimeUpdate($event)"\n *ngIf="mode === \'DATE_TIME\' || mode === \'TIME\'"></wm-timepicker>\n <span class="text-primary date-picker-value">\n {{getDateLabel()}}\n </span>\n </div>\n <div class="modal-footer">\n <button\n class="btn btn-secondary clear-btn"\n (click)="clear()">{{appLocale.MESSAGE_DATE_PICKER_CLEAR || "Clear" }}</button>\n <button\n class="btn btn-primary pull-right ok-btn"\n (click)="onOkClick()">{{appLocale.MESSAGE_DATE_PICKER_OK || "Ok" }}</button>\n <button\n class="btn btn-secondary pull-right cancel-btn"\n (click)="hideModal()">{{appLocale.MESSAGE_DATE_PICKER_CANCEL || "Cancel" }}</button>\n \n </div>\n </div>\n </ng-template>\n '
27055
+ template: ' \n <ng-template #datetimepickerTemplate>\n <div class="app-datetime-picker">\n <div class="modal-body">\n <div class="mobile-datetime-picker-options">\n \n </div>\n <bs-datepicker-inline\n [bsConfig]="bsDatepickerConfig"\n [datesDisabled]="excludedDatesToDisable"\n bsDatepicker\n [bsValue]="changedValue"\n (bsValueChange)="onDateUpdate($event)"\n *ngIf="mode === \'DATE_TIME\' || mode === \'DATE\'">\n </bs-datepicker-inline>\n <wm-timepicker\n [value]="changedValue"\n [min]="minTime"\n [max]="maxTime"\n (change)="onTimeUpdate($event)"\n *ngIf="mode === \'DATE_TIME\' || mode === \'TIME\'"></wm-timepicker>\n <span class="text-primary date-picker-value">\n {{getDateLabel()}}\n </span>\n </div>\n <div class="modal-footer">\n <button\n *ngIf="mode === \'DATE_TIME\' || mode === \'DATE\'"\n class="btn btn-secondary today-btn"\n (click)="setToday()">{{appLocale.MESSAGE_DATE_PICKER_TODAY || "Today" }}</button>\n <button\n class="btn btn-primary pull-right ok-btn"\n *ngIf="mode === \'DATE_TIME\' || mode === \'TIME\'"\n (click)="onOkClick()">{{appLocale.MESSAGE_DATE_PICKER_OK || "Ok" }}</button>\n <button\n class="btn btn-secondary pull-right clear-btn"\n (click)="clear()">{{appLocale.MESSAGE_DATE_PICKER_CLEAR || "Clear" }}</button>\n </div>\n </div>\n </ng-template>\n '
27026
27056
  } ]
27027
27057
  } ];
27028
27058
  DateTimePickerComponent.ctorParameters = function() {
@@ -27105,8 +27135,8 @@
27105
27135
  }
27106
27136
  return arr;
27107
27137
  };
27108
- TimePickerComponent.prototype.set = function(_h, unit) {
27109
- var index = _h.index, value = _h.value;
27138
+ TimePickerComponent.prototype.set = function(_f, unit) {
27139
+ var index = _f.index, value = _f.value;
27110
27140
  if (unit === "HOUR") {
27111
27141
  this.value = moment(this.value).hour(parseInt(value)).toDate();
27112
27142
  } else if (unit === "MINUTE") {
@@ -27204,6 +27234,7 @@
27204
27234
  function BaseDateTimeComponent(inj, WIDGET_CONFIG) {
27205
27235
  var _this = _super.call(this, inj, WIDGET_CONFIG) || this;
27206
27236
  _this.isReadOnly = false;
27237
+ _this.clicked = false;
27207
27238
  _this.formatsByLocale = {
27208
27239
  timezone: ""
27209
27240
  };
@@ -27370,6 +27401,7 @@
27370
27401
  };
27371
27402
  BaseDateTimeComponent.prototype.setActiveDateFocus = function(newDate, isMouseEvent) {
27372
27403
  var _this = this;
27404
+ this.setNextData(newDate);
27373
27405
  var activeMonth = this.activeDate.getMonth();
27374
27406
  if (!isMouseEvent) {
27375
27407
  if (newDate.getMonth() < activeMonth) {
@@ -27407,15 +27439,35 @@
27407
27439
  this.loadYears();
27408
27440
  }
27409
27441
  };
27442
+ BaseDateTimeComponent.prototype.getMonth = function(date, inc) {
27443
+ var currentMonth = new Date(date);
27444
+ var month = currentMonth.getMonth();
27445
+ var year = currentMonth.getFullYear();
27446
+ month += inc;
27447
+ var newDate = new Date(year, month);
27448
+ var fullMonth = newDate.toLocaleString("en-US", {
27449
+ month: "long"
27450
+ });
27451
+ return {
27452
+ date: newDate,
27453
+ fullMonth: fullMonth
27454
+ };
27455
+ };
27410
27456
  BaseDateTimeComponent.prototype.addDatepickerMouseEvents = function() {
27411
27457
  var _this = this;
27412
27458
  var datePickerHead = $(".bs-datepicker-head");
27413
27459
  datePickerHead.find(".previous").click((function(event) {
27460
+ _this.next = _this.getMonth(_this.activeDate, 0);
27461
+ _this.prev = _this.getMonth(_this.activeDate, -2);
27462
+ _this.clicked = true;
27414
27463
  if (event.originalEvent) {
27415
27464
  _this.setFocusForDate(-1);
27416
27465
  }
27417
27466
  }));
27418
27467
  datePickerHead.find(".next").click((function(event) {
27468
+ _this.next = _this.getMonth(_this.activeDate, 2);
27469
+ _this.prev = _this.getMonth(_this.activeDate, 0);
27470
+ _this.clicked = true;
27419
27471
  if (event.originalEvent) {
27420
27472
  _this.setFocusForDate(1);
27421
27473
  }
@@ -27431,8 +27483,8 @@
27431
27483
  _this.setFocusForMonthOrDay();
27432
27484
  }
27433
27485
  }));
27434
- datePickerHead.find(".next").attr("aria-label", "Next");
27435
- datePickerHead.find(".previous").attr("aria-label", "Previous");
27486
+ datePickerHead.find(".next").attr("aria-label", "Next Month, " + this.next.fullMonth + " " + this.next.date.getFullYear());
27487
+ datePickerHead.find(".previous").attr("aria-label", "Previous Month, " + this.prev.fullMonth + " " + this.prev.date.getFullYear());
27436
27488
  };
27437
27489
  BaseDateTimeComponent.prototype.setFocusForMonthOrDay = function() {
27438
27490
  var activeMonthOrYear = $(".bs-datepicker-head .current").first().text();
@@ -27498,6 +27550,10 @@
27498
27550
  this.loadDays();
27499
27551
  this.setActiveDateFocus(this.activeDate);
27500
27552
  };
27553
+ BaseDateTimeComponent.prototype.setNextData = function(nextDate) {
27554
+ this.next = this.getMonth(nextDate, 1);
27555
+ this.prev = this.getMonth(nextDate, -1);
27556
+ };
27501
27557
  BaseDateTimeComponent.prototype.loadDays = function() {
27502
27558
  var _this = this;
27503
27559
  setTimeout((function() {
@@ -27616,6 +27672,7 @@
27616
27672
  };
27617
27673
  BaseDateTimeComponent.prototype.setActiveMonthFocus = function(newDate, isMoouseEvent) {
27618
27674
  var _this = this;
27675
+ this.setNextData(newDate);
27619
27676
  var newMonth = months[newDate.getMonth()];
27620
27677
  if (!isMoouseEvent) {
27621
27678
  if (newDate.getFullYear() < this.activeDate.getFullYear()) {
@@ -28179,7 +28236,6 @@
28179
28236
  if (!skipFocus) {
28180
28237
  this.onDateTimeInputFocus();
28181
28238
  }
28182
- return;
28183
28239
  }
28184
28240
  if ($event.type === "click") {
28185
28241
  this.invokeEventCallback("click", {
@@ -28253,7 +28309,7 @@
28253
28309
  type: core.Component,
28254
28310
  args: [ {
28255
28311
  selector: "[wmDate]",
28256
- 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',
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',
28257
28313
  providers: [ base.provideAs(DateComponent, forms.NG_VALUE_ACCESSOR, true), base.provideAs(DateComponent, forms.NG_VALIDATORS, true), base.provideAsWidgetRef(DateComponent) ]
28258
28314
  } ]
28259
28315
  } ];
@@ -33572,9 +33628,10 @@
33572
33628
  };
33573
33629
  var MenuComponent = function(_super) {
33574
33630
  __extends(MenuComponent, _super);
33575
- function MenuComponent(inj, route, userDefinedExecutionContext, bsDropdown, parentNav, selectEventCB) {
33631
+ function MenuComponent(inj, route, app, userDefinedExecutionContext, bsDropdown, parentNav, selectEventCB) {
33576
33632
  var _this = _super.call(this, inj, WIDGET_CONFIG$1) || this;
33577
33633
  _this.route = route;
33634
+ _this.app = app;
33578
33635
  _this.userDefinedExecutionContext = userDefinedExecutionContext;
33579
33636
  _this.bsDropdown = bsDropdown;
33580
33637
  _this.parentNav = parentNav;
@@ -33588,6 +33645,9 @@
33588
33645
  }
33589
33646
  var datasetSubscription = _this.nodes$.subscribe((function() {
33590
33647
  if (!_.isEmpty(_this.nodes)) {
33648
+ if (base.hasLinkToCurrentPage(_this.nodes, _this.route.url)) {
33649
+ core.addClass(_this.nativeElement.querySelector(".dropdown-toggle"), "active");
33650
+ }
33591
33651
  if (_this.parentNav) {
33592
33652
  return;
33593
33653
  }
@@ -33662,26 +33722,22 @@
33662
33722
  }
33663
33723
  $event.preventDefault();
33664
33724
  };
33665
- MenuComponent.prototype.hasLinkToCurrentPage = function(nodes) {
33666
- var _this = this;
33667
- return nodes.some((function(node) {
33668
- if (base.isActiveNavItem(node.link, _this.route.url)) {
33669
- return true;
33670
- }
33671
- if (node.children) {
33672
- return _this.hasLinkToCurrentPage(node.children);
33673
- }
33674
- }));
33675
- };
33676
33725
  MenuComponent.prototype.resetNodes = function() {
33677
33726
  _super.prototype.resetNodes.call(this);
33678
- if (this.autoopen === AUTO_OPEN.ACTIVE_PAGE && this.hasLinkToCurrentPage(this.nodes) || this.autoopen === AUTO_OPEN.ALWAYS) {
33727
+ if (this.autoopen === AUTO_OPEN.ACTIVE_PAGE && base.hasLinkToCurrentPage(this.nodes, this.route.url) || this.autoopen === AUTO_OPEN.ALWAYS) {
33679
33728
  this.bsDropdown.show();
33680
33729
  }
33681
33730
  };
33682
33731
  MenuComponent.prototype.ngOnInit = function() {
33732
+ var _this = this;
33683
33733
  _super.prototype.ngOnInit.call(this);
33684
33734
  this.setMenuPosition();
33735
+ var cancelSubscription = this.app.subscribe("highlightActiveLink", (function(data) {
33736
+ core.toggleClass(_this.nativeElement.querySelector(".dropdown-toggle"), "active", base.hasLinkToCurrentPage(_this.nodes, _this.route.url));
33737
+ }));
33738
+ this.registerDestroyListener((function() {
33739
+ return cancelSubscription();
33740
+ }));
33685
33741
  };
33686
33742
  MenuComponent.prototype.onPropertyChange = function(key, nv, ov) {
33687
33743
  if (key === "tabindex") {
@@ -33752,6 +33808,8 @@
33752
33808
  type: core$1.Injector
33753
33809
  }, {
33754
33810
  type: router.Router
33811
+ }, {
33812
+ type: core.App
33755
33813
  }, {
33756
33814
  type: core.UserDefinedExecutionContext
33757
33815
  }, {
@@ -33869,8 +33927,9 @@
33869
33927
  VERTICAL: "vertical"
33870
33928
  };
33871
33929
  var MenuDropdownItemComponent = function() {
33872
- function MenuDropdownItemComponent(menuRef, userDefinedExecutionContext, parentNav, elRef) {
33930
+ function MenuDropdownItemComponent(app, menuRef, userDefinedExecutionContext, parentNav, elRef) {
33873
33931
  var _this = this;
33932
+ this.app = app;
33874
33933
  this.menuRef = menuRef;
33875
33934
  this.userDefinedExecutionContext = userDefinedExecutionContext;
33876
33935
  this.parentNav = parentNav;
@@ -33896,10 +33955,14 @@
33896
33955
  this.menualign = menuAlignClass[this.menuRef.menualign] || menuAlignClass["pull-left"];
33897
33956
  }
33898
33957
  MenuDropdownItemComponent.prototype.ngOnInit = function() {
33958
+ var _this = this;
33899
33959
  if (this.parentNav) {
33900
- if (base.isActiveNavItem(this.item.link, this.menuRef.route.url)) {
33960
+ if (base.hasLinkToCurrentPage([ this.item ], this.menuRef.route.url)) {
33901
33961
  core.addClass(this.nativeElement, "active");
33902
33962
  }
33963
+ this.highlightActiveLinkSubscription = this.app.subscribe("highlightActiveLink", (function(data) {
33964
+ core.toggleClass(_this.nativeElement, "active", base.hasLinkToCurrentPage([ _this.item ], _this.menuRef.route.url));
33965
+ }));
33903
33966
  }
33904
33967
  };
33905
33968
  MenuDropdownItemComponent.prototype.getInitialKeyMovements = function() {
@@ -33968,6 +34031,11 @@
33968
34031
  $event.stopPropagation();
33969
34032
  }
33970
34033
  };
34034
+ MenuDropdownItemComponent.prototype.ngOnDestroy = function() {
34035
+ if (this.highlightActiveLinkSubscription) {
34036
+ this.highlightActiveLinkSubscription();
34037
+ }
34038
+ };
33971
34039
  return MenuDropdownItemComponent;
33972
34040
  }();
33973
34041
  MenuDropdownItemComponent.decorators = [ {
@@ -33979,6 +34047,8 @@
33979
34047
  } ];
33980
34048
  MenuDropdownItemComponent.ctorParameters = function() {
33981
34049
  return [ {
34050
+ type: core.App
34051
+ }, {
33982
34052
  type: MenuComponent
33983
34053
  }, {
33984
34054
  type: core.UserDefinedExecutionContext
@@ -35670,6 +35740,8 @@
35670
35740
  }));
35671
35741
  var popoverStartBtn = popoverContainer.querySelector(".popover-start");
35672
35742
  var popoverEndBtn = popoverContainer.querySelector(".popover-end");
35743
+ popoverStartBtn.setAttribute("aria-hidden", "true");
35744
+ popoverEndBtn.setAttribute("aria-hidden", "true");
35673
35745
  popoverStartBtn.onkeydown = function(event) {
35674
35746
  var action = _this.keyEventPlugin.constructor.getEventFullKey(event);
35675
35747
  if (action === "shift.tab") {
@@ -36369,16 +36441,24 @@
36369
36441
  _this.dialogService = inj.get(core.AbstractDialogService);
36370
36442
  _this.bsModal = inj.get(modal.BsModalService);
36371
36443
  var router$1 = inj.get(router.Router);
36372
- var subscriptions = [ _this.bsModal.onShown.subscribe((function() {
36444
+ var subscriptions = [ _this.bsModal.onShown.subscribe((function(_a) {
36445
+ var id = _a.id;
36373
36446
  var ref = _this.dialogService.getLastOpenedDialog();
36374
- if (ref === _this) {
36447
+ if (ref === _this && !_this.dialogId) {
36375
36448
  invokeOpenedCallback(ref);
36449
+ _this.dialogId = id;
36376
36450
  }
36377
36451
  })), _this.bsModal.onShow.subscribe((function() {
36378
36452
  focusTrapObj.activeElement = document.activeElement;
36379
36453
  })), _this.bsModal.onHidden.subscribe((function(closeReason) {
36380
- var ref = closeReason === "esc" || closeReason === "backdrop-click" ? _this.dialogService.getLastOpenedDialog() : _this.dialogService.getDialogRefFromClosedDialogs();
36454
+ var ref = _this.dialogService.getDialogRefFromClosedDialogs();
36455
+ if (_this.dialogId && (closeReason === null || closeReason === void 0 ? void 0 : closeReason.id) === _this.dialogId) {
36456
+ ref = _this;
36457
+ } else if (closeReason === "esc" || closeReason === "backdrop-click") {
36458
+ ref = _this.dialogService.getLastOpenedDialog();
36459
+ }
36381
36460
  if (ref === _this) {
36461
+ _this.dialogId = null;
36382
36462
  _this.dialogService.removeFromOpenedDialogs(ref);
36383
36463
  _this.dialogService.removeFromClosedDialogs(ref);
36384
36464
  invokeClosedCallback(ref);
@@ -36417,6 +36497,10 @@
36417
36497
  Object.assign(this.context, initState);
36418
36498
  this.modalOptions.ariaLabelledBy = this.titleId;
36419
36499
  this.dialogRef = this.bsModal.show(this.getTemplateRef(), this.modalOptions);
36500
+ if (this.dialogService.getOpenedDialogs().length === 1 && (core.isMobile() || core.isMobileApp())) {
36501
+ var parentSelector = $("body > app-root")[0];
36502
+ parentSelector.setAttribute("aria-hidden", "true");
36503
+ }
36420
36504
  };
36421
36505
  BaseDialog.prototype.close = function() {
36422
36506
  if (this.dialogRef) {
@@ -42248,11 +42332,31 @@
42248
42332
  $index: _this.dn.currentPage
42249
42333
  });
42250
42334
  _this.goToPage();
42335
+ if (_this.navigation === "Basic") {
42336
+ _this._setAriaForBasicNavigation();
42337
+ }
42251
42338
  }
42252
42339
  }), base.DEBOUNCE_TIMES.PAGINATION_DEBOUNCE_TIME);
42253
42340
  base.styler(_this.nativeElement, _this);
42254
42341
  return _this;
42255
42342
  }
42343
+ PaginationComponent.prototype._setAriaForBasicNavigation = function() {
42344
+ _.forEach(this.nativeElement.getElementsByTagName("a"), (function(item) {
42345
+ item.setAttribute("href", "javascript:void(0);");
42346
+ var childNode = item.querySelector("span");
42347
+ if ((childNode === null || childNode === void 0 ? void 0 : childNode.dataset.isacitvepage) === "true") {
42348
+ item.setAttribute("aria-current", "true");
42349
+ setTimeout((function() {
42350
+ return item.focus();
42351
+ }));
42352
+ }
42353
+ if ((childNode === null || childNode === void 0 ? void 0 : childNode.dataset.isdisabled) === "true") {
42354
+ item.setAttribute("aria-disabled", "true");
42355
+ } else {
42356
+ item.removeAttribute("aria-disabled");
42357
+ }
42358
+ }));
42359
+ };
42256
42360
  PaginationComponent.prototype.setResult = function(result) {
42257
42361
  this.result = result;
42258
42362
  this.resultEmitter.emit(this.result);
@@ -42314,7 +42418,7 @@
42314
42418
  }
42315
42419
  this.isDisableCurrent = isCurrentPageFirst && isCurrentPageLast;
42316
42420
  if (this.dataset && this.dataset.length && this.isDisableNext && this.parent.onDemandLoad && this.parent.widgetType === "wm-table") {
42317
- this.parent.callDataGridMethod("hideLoadingIndicator", this.isDisableNext, false);
42421
+ this.parent.callDataGridMethod("hideLoadingIndicator", this.isDisableNext, this.parent.infScroll);
42318
42422
  }
42319
42423
  };
42320
42424
  PaginationComponent.prototype.isDataSourceHasPaging = function() {
@@ -42369,9 +42473,7 @@
42369
42473
  this.resetPageNavigation();
42370
42474
  }
42371
42475
  if (this.navigation === "Basic") {
42372
- _.forEach(this.nativeElement.getElementsByTagName("a"), (function(item) {
42373
- item.setAttribute("href", "javascript:void(0);");
42374
- }));
42476
+ this._setAriaForBasicNavigation();
42375
42477
  }
42376
42478
  } else {
42377
42479
  if (newVal && !_.isString(newVal)) {
@@ -42648,7 +42750,7 @@
42648
42750
  type: core.Component,
42649
42751
  args: [ {
42650
42752
  selector: "[wmPagination]",
42651
- template: '\n<ul class="pagination advanced {{navigationClass}}" *ngIf="navcontrols === \'Classic\'">\n <li [ngClass]="{\'disabled\':isDisableFirst}">\n <a [title]="appLocale.LABEL_FIRST" name="first" href="javascript:void(0);" aria-label="First"\n (click)="navigatePage(\'first\', $event)">\n <span aria-hidden="true"><i class="wi wi-first-page"></i></span>\n <span class="sr-only">{{appLocale.LABEL_FIRST}}</span>\n </a>\n </li>\n <li [ngClass]="{\'disabled\':isDisablePrevious}">\n <a [title]="appLocale.LABEL_PREVIOUS" name="prev" href="javascript:void(0);" aria-label="Previous"\n (click)="navigatePage(\'prev\', $event)">\n <span aria-hidden="true"><i class="wi wi-chevron-left"></i></span>\n <span class="sr-only">{{appLocale.LABEL_PREVIOUS}}</span>\n </a>\n </li>\n <li class="pagecount disabled">\n <a><input type="number" [disabled]="isDisableCurrent" [(ngModel)]="dn.currentPage" [attr.aria-label]="\'Page Navigation \' + dn.currentPage"\n (keydown)="onKeyDown($event)" (change)="onModelChange($event)" class="form-control"/></a>\n </li>\n <li class="disabled">\n <a [hidden]="isDisableCount"> / {{pageCount}}</a>\n </li>\n <li [ngClass]="{\'disabled\':isDisableNext}">\n <a [title]="appLocale.LABEL_NEXT" name="next" href="javascript:void(0);" aria-label="Next"\n (click)="navigatePage(\'next\', $event)">\n <span aria-hidden="true"><i class="wi wi-chevron-right"></i></span>\n <span class="sr-only">{{appLocale.LABEL_NEXT}}</span>\n </a>\n </li>\n <li [ngClass]="{\'disabled\':isDisableLast}">\n <a [title]="appLocale.LABEL_LAST" name="last" href="javascript:void(0);" aria-label="Last"\n (click)="navigatePage(\'last\', $event)">\n <span aria-hidden="true"><i class="wi wi-last-page"></i></span>\n <span class="sr-only">{{appLocale.LABEL_LAST}}</span>\n </a>\n </li>\n <li *ngIf="showrecordcount" class="totalcount disabled">\n <a>{{appLocale.LABEL_TOTAL_RECORDS}}: {{dataSize}}</a>\n </li>\n</ul>\n<ul class="pager {{navigationClass}}" *ngIf="navcontrols === \'Pager\'">\n <li class="previous" [ngClass]="{\'disabled\':isDisablePrevious}">\n <a href="javascript:void(0);" (click)="navigatePage(\'prev\', $event)" aria-label="Previous">\n <span aria-hidden="true"><i class="wi wi-chevron-left"></i></span>\n {{appLocale.LABEL_PREVIOUS}}\n <span class="sr-only">{{appLocale.LABEL_PREVIOUS}}</span>\n </a>\n </li>\n <li class="next" [ngClass]="{\'disabled\':isDisableNext}">\n <a href="javascript:void(0);" (click)="navigatePage(\'next\', $event)" aria-label="Next">\n {{appLocale.LABEL_NEXT}}\n <span aria-hidden="true"><i class="wi wi-chevron-right"></i></span>\n <span class="sr-only">{{appLocale.LABEL_NEXT}}</span>\n </a>\n </li>\n</ul>\n\n<pagination class="pagination basic" [ngClass]="navigationClass" *ngIf="navcontrols === \'Basic\'" role="navigation"\n [itemsPerPage]="maxResults" [totalItems]="dataSize"\n [ngModel]="dn.currentPage" (pageChanged)="pageChanged($event)"\n [attr.aria-label]="\'Page \' + dn.currentPage + \' of \' + pageCount + \' pages\'"\n [boundaryLinks]="boundarylinks" [maxSize]="maxsize"\n [directionLinks]="directionlinks" previousText="." nextText="." firstText="." lastText="."></pagination>\n\n<ul *ngIf="navcontrols === \'Basic\' && showrecordcount" class="pagination">\n <li class="totalcount disabled basiccount"><a>{{appLocale.LABEL_TOTAL_RECORDS}}: {{dataSize}}</a></li>\n</ul>\n',
42753
+ template: '\n<ul class="pagination advanced {{navigationClass}}" *ngIf="navcontrols === \'Classic\'">\n <li [ngClass]="{\'disabled\':isDisableFirst}">\n <a [title]="appLocale.LABEL_FIRST" name="first" href="javascript:void(0);"\n [attr.aria-disabled]="isDisableFirst"\n (click)="navigatePage(\'first\', $event)">\n <span aria-hidden="true"><i class="wi wi-first-page"></i></span>\n <span class="sr-only">Go to first page {{ isDisableFirst ? \' , Disabled\' : \'\'}}</span>\n </a>\n </li>\n <li [ngClass]="{\'disabled\':isDisablePrevious}">\n <a [title]="appLocale.LABEL_PREVIOUS" name="prev" href="javascript:void(0);"\n [attr.aria-disabled]="isDisablePrevious"\n (click)="navigatePage(\'prev\', $event)">\n <span aria-hidden="true"><i class="wi wi-chevron-left"></i></span>\n <span class="sr-only">Go to previous page {{ isDisablePrevious ? \', Disabled\' : \'\'}}</span>\n </a>\n </li>\n <li class="pagecount disabled">\n <a href="javascript:void(0);">\n <input type="number" [disabled]="isDisableCurrent" [(ngModel)]="dn.currentPage" [attr.aria-label]="\'Showing Page \' + dn.currentPage + \' of \' + pageCount"\n (keydown)="onKeyDown($event)" (change)="onModelChange($event)" class="form-control"/>\n </a>\n </li>\n <li class="disabled">\n <a [hidden]="isDisableCount"> / {{pageCount}}</a>\n </li>\n <li [ngClass]="{\'disabled\':isDisableNext}">\n <a [title]="appLocale.LABEL_NEXT" name="next" href="javascript:void(0);"\n [attr.aria-disabled]="isDisableNext"\n (click)="navigatePage(\'next\', $event)">\n <span aria-hidden="true"><i class="wi wi-chevron-right"></i></span>\n <span class="sr-only">Go to next page {{ isDisableNext ? \' , Disabled\' : \'\'}}</span>\n </a>\n </li>\n <li [ngClass]="{\'disabled\':isDisableLast}">\n <a [title]="appLocale.LABEL_LAST" name="last" href="javascript:void(0);"\n [attr.aria-disabled]="isDisableLast"\n (click)="navigatePage(\'last\', $event)">\n <span aria-hidden="true"><i class="wi wi-last-page"></i></span>\n <span class="sr-only">Go to last page {{ isDisableLast ? \' , Disabled\' : \'\'}}</span>\n </a>\n </li>\n <li *ngIf="showrecordcount" class="totalcount disabled">\n <a href="javascript:void(0);" tabindex="-1" aria-disabled="true">{{appLocale.LABEL_TOTAL_RECORDS}}: {{dataSize}}</a>\n </li>\n</ul>\n<ul class="pager {{navigationClass}}" *ngIf="navcontrols === \'Pager\'">\n <li class="previous" [ngClass]="{\'disabled\':isDisablePrevious}">\n <a href="javascript:void(0);" (click)="navigatePage(\'prev\', $event)"\n [attr.aria-disabled]="isDisablePrevious">\n <span aria-hidden="true"><i class="wi wi-chevron-left"></i></span>\n {{appLocale.LABEL_PREVIOUS}}\n <span class="sr-only">{{ isDisablePrevious ? \' , Disabled\' : \'\'}}</span>\n </a>\n </li>\n <li class="next" [ngClass]="{\'disabled\':isDisableNext}">\n <a href="javascript:void(0);" (click)="navigatePage(\'next\', $event)"\n [attr.aria-disabled]="isDisableNext">\n <span aria-hidden="true"><i class="wi wi-chevron-right"></i></span>\n {{appLocale.LABEL_NEXT}}\n <span class="sr-only">{{ isDisableNext ? \' , Disabled\' : \'\'}}</span>\n </a>\n </li>\n</ul>\n\n<pagination class="pagination basic" [ngClass]="navigationClass" *ngIf="navcontrols === \'Basic\'" role="navigation"\n [itemsPerPage]="maxResults" [totalItems]="dataSize"\n [ngModel]="dn.currentPage" (pageChanged)="pageChanged($event)"\n [attr.aria-label]="\'Showing Page \' + dn.currentPage + \' of \' + pageCount + \' pages\'"\n [boundaryLinks]="boundarylinks" [maxSize]="maxsize"\n [directionLinks]="directionlinks"\n firstText="Firtst" lastText="Last"\n [customPreviousTemplate]="prevTemplate"\n [customNextTemplate]="nextTemplate"\n [customPageTemplate]="pageTemplate"></pagination>\n\n<ul *ngIf="navcontrols === \'Basic\' && showrecordcount" class="pagination">\n <li class="totalcount disabled basiccount">\n <a href="javascript:void(0);" tabindex="-1" aria-disabled="true">{{appLocale.LABEL_TOTAL_RECORDS}}: {{dataSize}}</a>\n </li>\n</ul>\n\n<ng-template #pageTemplate let-page>\n <span class="sr-only" [attr.data-isacitvepage]="page.active">{{\'Page \'}}</span>\n {{page.number}}\n <span class="sr-only" *ngIf="page.active"> {{\', Showing page \' + page.number + \' of \' + pageCount}}</span>\n</ng-template>\n<ng-template #prevTemplate let-disabled="disabled">\n <span class="sr-only" [attr.data-isdisabled]="disabled">Go to Previous page {{disabled ? \', Disabled\' : \'\'}}</span>\n</ng-template>\n<ng-template #nextTemplate let-disabled="disabled">\n <span class="sr-only" [attr.data-isdisabled]="disabled">Go to Next page {{disabled ? \', Disabled\' : \'\'}}</span>\n</ng-template>\n',
42652
42754
  providers: [ base.provideAsWidgetRef(PaginationComponent) ]
42653
42755
  } ]
42654
42756
  } ];
@@ -44220,10 +44322,15 @@
44220
44322
  var dataSource = this.datasource;
44221
44323
  if (dataSource && dataSource.execute(core.DataSource.Operation.IS_API_AWARE) && core.isDataSourceEqual(data.variable, dataSource)) {
44222
44324
  this.ngZone.run((function() {
44223
- var _a;
44325
+ var _a, _b, _c;
44224
44326
  _this.handleStateParams(data);
44225
44327
  _this.variableInflight = data.active;
44226
- _this.noDataFound = !((_a = data.data) === null || _a === void 0 ? void 0 : _a.pagination.totalElements);
44328
+ var totalEle = (_b = (_a = data.data) === null || _a === void 0 ? void 0 : _a.pagination) === null || _b === void 0 ? void 0 : _b.totalElements;
44329
+ if (!_.isUndefined(totalEle)) {
44330
+ _this.noDataFound = totalEle === 0 ? true : false;
44331
+ } else {
44332
+ _this.noDataFound = _.isEmpty((_c = data.data) === null || _c === void 0 ? void 0 : _c.data);
44333
+ }
44227
44334
  }));
44228
44335
  }
44229
44336
  };
@@ -44293,10 +44400,10 @@
44293
44400
  }
44294
44401
  };
44295
44402
  ListComponent.prototype.updateFieldDefs = function(newVal) {
44296
- var _b;
44403
+ var _d;
44297
44404
  if (this.infScroll || this.onDemandLoad) {
44298
- _b = __read(this.paginationService.updateFieldsOnPagination(this, newVal), 2), this.fieldDefs = _b[0],
44299
- this.currentPage = _b[1];
44405
+ _d = __read(this.paginationService.updateFieldsOnPagination(this, newVal), 2), this.fieldDefs = _d[0],
44406
+ this.currentPage = _d[1];
44300
44407
  } else {
44301
44408
  this.fieldDefs = newVal;
44302
44409
  }
@@ -44676,9 +44783,9 @@
44676
44783
  return this.datasource.execute(operation, options);
44677
44784
  };
44678
44785
  ListComponent.prototype.handleKeyDown = function($event, action) {
44679
- var _this = this;
44786
+ var _d, _e;
44680
44787
  $event.stopPropagation();
44681
- if ($event.keyCode !== 13 && $event.keyCode !== 9 && !($event.target.classList.contains("form-control") && $event.keyCode === 32)) {
44788
+ if ($event.keyCode !== 13 && $event.keyCode !== 9 && !(($event.target.classList.contains("form-control") || $event.target.classList.contains("note-editable")) && $event.keyCode === 32)) {
44682
44789
  $event.preventDefault();
44683
44790
  }
44684
44791
  var listItems = this.listItems;
@@ -44718,27 +44825,21 @@
44718
44825
  }
44719
44826
  if (action === "focusPrev") {
44720
44827
  if (this.isListElementMovable) {
44721
- var prev_1;
44722
44828
  presentIndex = presentIndex <= 0 ? 0 : presentIndex;
44723
- this.lastSelectedItem = this.getListItemByIndex(presentIndex);
44724
44829
  if (presentIndex === 0) {
44725
- prev_1 = this.listItems.last;
44726
44830
  return;
44727
44831
  }
44728
- this.listItems.forEach((function($liItem, idx) {
44729
- if (idx === presentIndex) {
44730
- prev_1.nativeElement.before($liItem.nativeElement);
44731
- _this.lastSelectedItem.nativeElement.focus();
44732
- var arr = _this.listItems.toArray();
44733
- var temp = arr[presentIndex];
44734
- arr[presentIndex] = arr[presentIndex - 1];
44735
- arr[presentIndex - 1] = temp;
44736
- _this.listItems.reset(arr);
44737
- _this.currentIndex = presentIndex;
44738
- _this.ariaText = "selected ";
44739
- }
44740
- prev_1 = $liItem;
44741
- }));
44832
+ this.lastSelectedItem = this.getListItemByIndex(presentIndex);
44833
+ var prevElt = this.getListItemByIndex(presentIndex - 1);
44834
+ prevElt.nativeElement.before(this.lastSelectedItem.nativeElement);
44835
+ this.lastSelectedItem.nativeElement.focus();
44836
+ this.statePersistence.removeWidgetState(this, "selectedItem");
44837
+ var arr = this.listItems.toArray();
44838
+ _d = __read([ arr[presentIndex], arr[presentIndex - 1] ], 2), arr[presentIndex - 1] = _d[0],
44839
+ arr[presentIndex] = _d[1];
44840
+ this.listItems.reset(arr);
44841
+ this.currentIndex = presentIndex;
44842
+ this.ariaText = "selected ";
44742
44843
  } else {
44743
44844
  presentIndex = presentIndex <= 0 ? 0 : presentIndex - 1;
44744
44845
  this.lastSelectedItem = this.getListItemByIndex(presentIndex);
@@ -44748,27 +44849,21 @@
44748
44849
  }
44749
44850
  } else if (action === "focusNext") {
44750
44851
  if (this.isListElementMovable) {
44751
- var prev_2;
44752
44852
  presentIndex = presentIndex < listItems.length - 1 ? presentIndex : listItems.length - 1;
44753
- this.lastSelectedItem = this.getListItemByIndex(presentIndex);
44754
44853
  if (presentIndex === this.listItems.length - 1) {
44755
- prev_2 = this.listItems.first;
44756
44854
  return;
44757
44855
  }
44758
- this.listItems.forEach((function($liItem, idx) {
44759
- if (idx === presentIndex + 1) {
44760
- prev_2.nativeElement.before($liItem.nativeElement);
44761
- _this.lastSelectedItem.nativeElement.focus();
44762
- var arr = _this.listItems.toArray();
44763
- var temp = arr[presentIndex + 1];
44764
- arr[presentIndex + 1] = arr[presentIndex];
44765
- arr[presentIndex] = temp;
44766
- _this.listItems.reset(arr);
44767
- _this.currentIndex = idx + 1;
44768
- _this.ariaText = "selected ";
44769
- }
44770
- prev_2 = $liItem;
44771
- }));
44856
+ this.lastSelectedItem = this.getListItemByIndex(presentIndex);
44857
+ var nextElt = this.getListItemByIndex(presentIndex + 1);
44858
+ nextElt.nativeElement.after(this.lastSelectedItem.nativeElement);
44859
+ this.lastSelectedItem.nativeElement.focus();
44860
+ this.statePersistence.removeWidgetState(this, "selectedItem");
44861
+ var arr = this.listItems.toArray();
44862
+ _e = __read([ arr[presentIndex + 1], arr[presentIndex] ], 2), arr[presentIndex] = _e[0],
44863
+ arr[presentIndex + 1] = _e[1];
44864
+ this.listItems.reset(arr);
44865
+ this.currentIndex = presentIndex + 2;
44866
+ this.ariaText = "selected ";
44772
44867
  } else {
44773
44868
  presentIndex = presentIndex < listItems.length - 1 ? presentIndex + 1 : listItems.length - 1;
44774
44869
  this.lastSelectedItem = this.getListItemByIndex(presentIndex);
@@ -44790,11 +44885,10 @@
44790
44885
  this.isListElementMovable = !this.isListElementMovable;
44791
44886
  this.onItemClick($event, this.getListItemByIndex(presentIndex));
44792
44887
  this.currentIndex = presentIndex + 1;
44793
- var name = this.getListItemByIndex(presentIndex).item.name;
44794
44888
  if (this.isListElementMovable) {
44795
- this.ariaText = name + " grabbed, current position ";
44889
+ this.ariaText = "Item " + this.currentIndex + " grabbed, current position ";
44796
44890
  } else {
44797
- this.ariaText = name + " dropped, final position ";
44891
+ this.ariaText = "Item " + this.currentIndex + " dropped, final position ";
44798
44892
  }
44799
44893
  }
44800
44894
  };
@@ -45032,7 +45126,7 @@
45032
45126
  type: core$1.Component,
45033
45127
  args: [ {
45034
45128
  selector: "div[wmList]",
45035
- 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 <i class="wi wi-chevron-left" aria-hidden="true"></i>\n <span class="sr-only">Previous</span>\n </a>\n </li>\n </ul>\n</nav>\n<div *ngIf="navigation === \'Inline\' && !noDataFound" aria-live="polite" aria-atomic="true" class="sr-only"> {{\'Item \' + dataNavigator.dn.currentPage + \' of \' + dataNavigator.pageCount }}</div>\n\n<div>\n <div id={{titleId}} class="sr-only" >\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" 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 <i class="wi wi-chevron-right" aria-hidden="true"></i>\n <span class="sr-only">Next</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',
45036
45130
  providers: [ base.provideAsWidgetRef(ListComponent) ]
45037
45131
  } ]
45038
45132
  } ];
@@ -45547,6 +45641,10 @@
45547
45641
  value: "No data found."
45548
45642
  }, base.PROP_STRING) ], [ "ondemandmessage", Object.assign({
45549
45643
  value: "Load More"
45644
+ }, base.PROP_STRING) ], [ "showviewlessbutton", Object.assign({
45645
+ value: false
45646
+ }, base.PROP_BOOLEAN) ], [ "viewlessmessage", Object.assign({
45647
+ value: "View Less"
45550
45648
  }, base.PROP_STRING) ], [ "pagesize", base.PROP_NUMBER ], [ "radioselect", base.PROP_BOOLEAN ], [ "rowclass", base.PROP_STRING ], [ "rowngclass", base.PROP_STRING ], [ "searchlabel", Object.assign({
45551
45649
  value: "Search"
45552
45650
  }, base.PROP_STRING) ], [ "show", Object.assign({
@@ -45627,6 +45725,7 @@
45627
45725
  _this.columns = {};
45628
45726
  _this.formfields = {};
45629
45727
  _this.enablesort = true;
45728
+ _this.showviewlessbutton = false;
45630
45729
  _this.primaryKey = [];
45631
45730
  _this.selectedItems = [];
45632
45731
  _this.selectedItemChange = new rxjs.Subject;
@@ -45647,6 +45746,7 @@
45647
45746
  _this.rowDef = {};
45648
45747
  _this.rowInstance = {};
45649
45748
  _this.fullFieldDefs = [];
45749
+ _this.variableInflight = true;
45650
45750
  _this.applyProps = new Map;
45651
45751
  _this.redraw = _.debounce(_this._redraw, 150);
45652
45752
  _this.debouncedHandleLoading = _.debounce(_this.handleLoading, 350);
@@ -45669,6 +45769,7 @@
45669
45769
  data: [],
45670
45770
  colDefs: [],
45671
45771
  startRowIndex: 1,
45772
+ mode: "",
45672
45773
  sortInfo: {
45673
45774
  field: "",
45674
45775
  direction: ""
@@ -45699,6 +45800,10 @@
45699
45800
  isSearchTrigerred: false,
45700
45801
  isDatasetUpdated: false,
45701
45802
  isDataUpdatedByUser: false,
45803
+ showviewlessbutton: false,
45804
+ ondemandmessage: "",
45805
+ viewlessmessage: "",
45806
+ loadingdatamsg: "",
45702
45807
  isNextPageData: undefined,
45703
45808
  ACTIONS: {
45704
45809
  DELETE: "delete",
@@ -45723,6 +45828,14 @@
45723
45828
  getPageSize: function() {
45724
45829
  return _this.pagesize;
45725
45830
  },
45831
+ getPageCount: function() {
45832
+ return _this.dataNavigator.pageCount;
45833
+ },
45834
+ enableNavigation: function() {
45835
+ _this.dataNavigator.widget.isDisableNext = false;
45836
+ _this.dataNavigator.widget.isDisableLast = false;
45837
+ _this.gridOptions.mode = "viewless";
45838
+ },
45726
45839
  setDeletedRowIndex: function(id) {
45727
45840
  _this.setDataGridOption("deletedRowIndex", id);
45728
45841
  },
@@ -45757,7 +45870,9 @@
45757
45870
  }
45758
45871
  _this.callDataGridMethod("selectRows", _this.items);
45759
45872
  _this.selectedItems = _this.callDataGridMethod("getSelectedRows");
45760
- _this.selectedItemChange.next(_this.selectedItems);
45873
+ if (_this.selectedItems.length) {
45874
+ _this.selectedItemChange.next(_this.selectedItems);
45875
+ }
45761
45876
  if (_this._isPageSearch && _this.filterInfo) {
45762
45877
  _this.searchSortHandler(_this.filterInfo, undefined, "search");
45763
45878
  }
@@ -45766,9 +45881,11 @@
45766
45881
  onRowSelect: function(row, e) {
45767
45882
  _this.ngZone.run((function() {
45768
45883
  _this.selectedItems = _this.callDataGridMethod("getSelectedRows");
45769
- _this.selectedItemChange.next(_this.selectedItems);
45884
+ if (_this.selectedItems.length) {
45885
+ _this.selectedItemChange.next(_this.selectedItems);
45886
+ }
45770
45887
  var rowData = _this.addRowIndex(row);
45771
- if (rowData.$index && _this.getConfiguredState() !== "none" && _this.dataNavigator && base.unsupportedStatePersistenceTypes.indexOf(_this.navigation) < 0) {
45888
+ if (_this.selectedItems.length && rowData.$index && _this.getConfiguredState() !== "none" && _this.dataNavigator && base.unsupportedStatePersistenceTypes.indexOf(_this.navigation) < 0) {
45772
45889
  var obj = {
45773
45890
  page: _this.dataNavigator.dn.currentPage,
45774
45891
  index: rowData.$index - 1
@@ -46208,9 +46325,14 @@
46208
46325
  _this.callDataGridMethod("addLoadMoreBtn", _this.ondemandmessage, _this.loadingdatamsg, (function($event) {
46209
46326
  _this.gridOptions.setIsNextPageData(true);
46210
46327
  _this.gridOptions.setIsDataUpdatedByUser(false);
46211
- _this.dataNavigator.navigatePage("next", $event);
46212
- _this.isDataLoading = true;
46213
- }));
46328
+ if (_this.gridOptions.mode === "viewless") {
46329
+ _this.dataNavigator.navigatePage("first", $event, true);
46330
+ _this.gridOptions.mode = "";
46331
+ } else {
46332
+ _this.dataNavigator.navigatePage("next", $event);
46333
+ _this.isDataLoading = true;
46334
+ }
46335
+ }), _this.infScroll);
46214
46336
  },
46215
46337
  bindScrollEvt: function() {
46216
46338
  if (_this._gridData && _this._gridData.length && _this.infScroll) {
@@ -46370,7 +46492,15 @@
46370
46492
  set: function(newValue) {
46371
46493
  var _a;
46372
46494
  this.isDataLoading = false;
46495
+ if (this.variableInflight && _.isEmpty(newValue)) {
46496
+ return;
46497
+ }
46373
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
+ }
46374
46504
  if (this.gridOptions.isNavTypeScrollOrOndemand()) {
46375
46505
  _a = __read(this.paginationService.updateFieldsOnPagination(this, newValue), 2),
46376
46506
  this._gridData = _a[0], this.currentPage = _a[1];
@@ -46488,6 +46618,10 @@
46488
46618
  this.gridOptions.securityUtils.pipeTransform = this.trustAsPipe;
46489
46619
  this.gridOptions.navigation = this.navigation;
46490
46620
  this.gridOptions.isdynamictable = this.isdynamictable;
46621
+ this.gridOptions.showviewlessbutton = this.showviewlessbutton;
46622
+ this.gridOptions.ondemandmessage = this.ondemandmessage;
46623
+ this.gridOptions.viewlessmessage = this.viewlessmessage;
46624
+ this.gridOptions.loadingdatamsg = this.loadingdatamsg;
46491
46625
  if (!_.isEmpty(this.gridData)) {
46492
46626
  this.gridOptions.data = core.getClonedObject(this.gridData);
46493
46627
  }
@@ -46819,6 +46953,9 @@
46819
46953
  };
46820
46954
  TableComponent.prototype.setGridData = function(serverData) {
46821
46955
  var data = this.filternullrecords ? this.removeEmptyRecords(serverData) : serverData;
46956
+ if (_.get(this.datasource, "category") === "wm.Variable") {
46957
+ this.variableInflight = false;
46958
+ }
46822
46959
  if (!this.variableInflight) {
46823
46960
  if (data && data.length === 0) {
46824
46961
  this.callDataGridMethod("setStatus", "nodata", this.nodatamessage);
@@ -47113,10 +47250,8 @@
47113
47250
  this.variableInflight = false;
47114
47251
  this.callDataGridMethod("setStatus", "nodata", this.nodatamessage);
47115
47252
  }
47116
- if (this.dataset) {
47117
- this.watchVariableDataSet(this.dataset);
47118
- this.onDataSourceChange();
47119
- }
47253
+ this.watchVariableDataSet(this.dataset);
47254
+ this.onDataSourceChange();
47120
47255
  break;
47121
47256
 
47122
47257
  case "dataset":
@@ -47225,6 +47360,11 @@
47225
47360
  if (nv) {
47226
47361
  this.$element.find(".on-demand-datagrid > a").text(nv);
47227
47362
  }
47363
+ this.gridOptions.ondemandmessage = nv;
47364
+ break;
47365
+
47366
+ case "viewlessmessage":
47367
+ this.gridOptions.viewlessmessage = nv;
47228
47368
  break;
47229
47369
 
47230
47370
  case "show":
@@ -50949,15 +51089,20 @@
50949
51089
  };
50950
51090
  };
50951
51091
  var \u02752 = findInvalidElement;
50952
- var setTouchedState = function(ngForm) {
51092
+ var setTouchedState = function(self, ngForm, fieldName) {
51093
+ var _a, _b;
50953
51094
  if (ngForm.valid) {
50954
51095
  return;
50955
51096
  }
50956
51097
  if (ngForm.controls) {
50957
- _.forEach(ngForm.controls, (function(ctrl) {
50958
- setTouchedState(ctrl);
51098
+ _.forEach(ngForm.controls, (function(ctrl, fieldName) {
51099
+ setTouchedState(self, ctrl, fieldName);
50959
51100
  }));
50960
51101
  } else {
51102
+ var element = self.$element.find('[wmformfield][key="' + fieldName + '"]');
51103
+ element[0].setAttribute("__errormsg", element[0].getAttribute("__validationId"));
51104
+ (_a = element[0].querySelector("input")) === null || _a === void 0 ? void 0 : _a.setAttribute("aria-invalid", ngForm.invalid);
51105
+ (_b = element[0].querySelector("input")) === null || _b === void 0 ? void 0 : _b.setAttribute("aria-describedby", element[0].getAttribute("__validationId"));
50961
51106
  ngForm.markAsTouched();
50962
51107
  }
50963
51108
  };
@@ -51254,7 +51399,7 @@
51254
51399
  }));
51255
51400
  };
51256
51401
  FormComponent.prototype.highlightInvalidFields = function() {
51257
- setTouchedState(this.ngform);
51402
+ setTouchedState(this, this.ngform, "");
51258
51403
  };
51259
51404
  FormComponent.prototype.validateFieldsOnSubmit = function() {
51260
51405
  this.setValidationMsgs();
@@ -51783,8 +51928,8 @@
51783
51928
  FormComponent.prototype.generateFormFields = function() {
51784
51929
  return __awaiter(this, void 0, void 0, (function() {
51785
51930
  var noOfColumns, $gridLayout, columnWidth, fieldTemplate, colCount, index, userFields, fields, colTmpl, componentFactoryRef, component;
51786
- return __generator(this, (function(_b) {
51787
- switch (_b.label) {
51931
+ return __generator(this, (function(_c) {
51932
+ switch (_c.label) {
51788
51933
  case 0:
51789
51934
  if (_.isUndefined(this._isGridLayoutPresent)) {
51790
51935
  this._isGridLayoutPresent = this.$element.find(".panel-body [wmlayoutgrid]").length > 0;
@@ -51843,7 +51988,7 @@
51843
51988
  }) ];
51844
51989
 
51845
51990
  case 1:
51846
- componentFactoryRef = _b.sent();
51991
+ componentFactoryRef = _c.sent();
51847
51992
  component = this.dynamicFormRef.createComponent(componentFactoryRef, 0, this.inj);
51848
51993
  core.extendProto(component.instance, this._dynamicContext);
51849
51994
  $gridLayout[0].appendChild(component.location.nativeElement);
@@ -52364,10 +52509,18 @@
52364
52509
  $($evt.target).closest(".live-field").addClass("active");
52365
52510
  };
52366
52511
  FormFieldDirective.prototype._onBlurField = function($evt) {
52367
- var _a, _b;
52512
+ var _a, _b, _c, _d;
52368
52513
  $($evt.target).closest(".live-field").removeClass("active");
52369
- (_a = this.nativeElement.querySelector("input")) === null || _a === void 0 ? void 0 : _a.setAttribute("aria-invalid", "" + this.ngform.controls[this._fieldName].invalid);
52370
- (_b = this.nativeElement.querySelector("input")) === null || _b === void 0 ? void 0 : _b.setAttribute("aria-describedby", "" + this.nativeElement.getAttribute("__errormsg"));
52514
+ var ele = this.nativeElement.querySelector("p.text-danger");
52515
+ if (this.ngform.controls[this._fieldName].invalid && this.ngform.controls[this._fieldName].touched && this.form.isUpdateMode) {
52516
+ this.nativeElement.setAttribute("__errormsg", "" + this.nativeElement.getAttribute("__validationId"));
52517
+ (_a = this.nativeElement.querySelector("input")) === null || _a === void 0 ? void 0 : _a.setAttribute("aria-invalid", "" + this.ngform.controls[this._fieldName].invalid);
52518
+ (_b = this.nativeElement.querySelector("input")) === null || _b === void 0 ? void 0 : _b.setAttribute("aria-describedby", "" + this.nativeElement.getAttribute("__validationId"));
52519
+ } else {
52520
+ this.nativeElement.removeAttribute("__errormsg");
52521
+ (_c = this.nativeElement.querySelector("input")) === null || _c === void 0 ? void 0 : _c.removeAttribute("aria-invalid");
52522
+ (_d = this.nativeElement.querySelector("input")) === null || _d === void 0 ? void 0 : _d.removeAttribute("aria-describedby");
52523
+ }
52371
52524
  this._activeField = false;
52372
52525
  this._triggeredByUser = false;
52373
52526
  this._clicktriggeredByUser = false;
@@ -52589,7 +52742,7 @@
52589
52742
  });
52590
52743
  };
52591
52744
  FormFieldDirective.prototype.onValueChange = function(val) {
52592
- var _a, _b;
52745
+ var _a, _b, _c, _d;
52593
52746
  if (!this.isDestroyed) {
52594
52747
  var captionEl = $(this.nativeElement).find(".caption-floating");
52595
52748
  if (captionEl.length > 0) {
@@ -52601,8 +52754,15 @@
52601
52754
  isFocused: this._activeField
52602
52755
  });
52603
52756
  }
52604
- (_a = this.nativeElement.querySelector("input")) === null || _a === void 0 ? void 0 : _a.setAttribute("aria-invalid", this._triggeredByUser && this.ngform.controls[this._fieldName].invalid ? "true" : "false");
52605
- (_b = this.nativeElement.querySelector("input")) === null || _b === void 0 ? void 0 : _b.setAttribute("aria-describedby", "" + this.nativeElement.getAttribute("__errormsg"));
52757
+ if (this.ngform.controls[this._fieldName].invalid && this.ngform.controls[this._fieldName].touched && this.form.isUpdateMode) {
52758
+ this.nativeElement.setAttribute("__errormsg", "" + this.nativeElement.getAttribute("__validationId"));
52759
+ (_a = this.nativeElement.querySelector("input")) === null || _a === void 0 ? void 0 : _a.setAttribute("aria-invalid", this._triggeredByUser && this.ngform.controls[this._fieldName].invalid ? "true" : "false");
52760
+ (_b = this.nativeElement.querySelector("input")) === null || _b === void 0 ? void 0 : _b.setAttribute("aria-describedby", "" + this.nativeElement.getAttribute("__validationId"));
52761
+ } else {
52762
+ this.nativeElement.removeAttribute("__errormsg");
52763
+ (_c = this.nativeElement.querySelector("input")) === null || _c === void 0 ? void 0 : _c.removeAttribute("aria-invalid");
52764
+ (_d = this.nativeElement.querySelector("input")) === null || _d === void 0 ? void 0 : _d.removeAttribute("aria-describedby");
52765
+ }
52606
52766
  this.form.onFieldValueChange(this, val);
52607
52767
  this.notifyChanges();
52608
52768
  if (this.$element.find(".active").length > 0 || this.form.touched) {
@@ -58269,40 +58429,36 @@
58269
58429
  var TabsAnimator = function(_super) {
58270
58430
  __extends(TabsAnimator, _super);
58271
58431
  function TabsAnimator(tabs) {
58272
- var e_1, _a;
58273
58432
  var _this = _super.call(this) || this;
58274
58433
  _this.tabs = tabs;
58275
58434
  _this._$el = $(_this.tabs.getNativeElement()).find(">.tab-content");
58276
- var childEls = _this._$el.find(">[wmTabPane]");
58277
- _this._noOfTabs = childEls.length;
58278
- var maxWidth = _this._noOfTabs * 100 + "%";
58279
- core.addClass(_this.tabs.getNativeElement(), "has-transition");
58280
- core.setCSSFromObj(_this._$el[0], {
58281
- maxWidth: maxWidth,
58282
- width: maxWidth
58283
- });
58284
- var width = 100 / _this._noOfTabs + "%";
58285
- try {
58286
- for (var _b = __values(Array.from(childEls)), _c = _b.next(); !_c.done; _c = _b.next()) {
58287
- var child = _c.value;
58288
- core.setCSS(child, "width", width);
58289
- }
58290
- } catch (e_1_1) {
58291
- e_1 = {
58292
- error: e_1_1
58293
- };
58294
- } finally {
58295
- try {
58296
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
58297
- } finally {
58298
- if (e_1) throw e_1.error;
58299
- }
58300
- }
58301
58435
  _this.init(_this._$el);
58302
58436
  return _this;
58303
58437
  }
58438
+ TabsAnimator.prototype.calibrate = function() {
58439
+ var activeTabIndex = this.tabs.getActiveTabIndex();
58440
+ var panes = this._$el.find(">.tab-pane");
58441
+ var activeTabVisibleIndex = 0;
58442
+ var noOfVisiblePanes = 0;
58443
+ var visiblePanes = [];
58444
+ panes.each((function(i, p) {
58445
+ if (!$(p).prop("hidden")) {
58446
+ noOfVisiblePanes++;
58447
+ if (i === activeTabIndex) {
58448
+ activeTabVisibleIndex = noOfVisiblePanes - 1;
58449
+ }
58450
+ visiblePanes.push(p);
58451
+ }
58452
+ return true;
58453
+ }));
58454
+ return {
58455
+ activeTabIndex: activeTabVisibleIndex,
58456
+ noOfTabs: noOfVisiblePanes,
58457
+ panes: visiblePanes
58458
+ };
58459
+ };
58304
58460
  TabsAnimator.prototype.bounds = function() {
58305
- var activeTabIndex = this.tabs.getActiveTabIndex(), w = this._$el.find(">.tab-pane").first().width(), noOfTabs = this._$el.find(">.tab-pane:visible").length, centerVal = -1 * activeTabIndex * w;
58461
+ var _a = this.calibrate(), activeTabIndex = _a.activeTabIndex, noOfTabs = _a.noOfTabs, panes = _a.panes, w = $(panes[0]).width(), centerVal = -1 * activeTabIndex * w;
58306
58462
  this.clearContentFocus();
58307
58463
  return {
58308
58464
  strict: false,
@@ -58329,8 +58485,18 @@
58329
58485
  }
58330
58486
  };
58331
58487
  TabsAnimator.prototype.transitionTabIntoView = function() {
58332
- var activeTabIndex = this.tabs.getActiveTabIndex();
58333
- core.setCSS(this._$el[0], "transform", "translate3d(" + -1 * activeTabIndex / this._noOfTabs * 100 + "%, 0, 0)");
58488
+ var _a = this.calibrate(), activeTabIndex = _a.activeTabIndex, noOfTabs = _a.noOfTabs, panes = _a.panes;
58489
+ var maxWidth = noOfTabs * 100 + "%";
58490
+ core.setCSSFromObj(this._$el[0], {
58491
+ maxWidth: maxWidth,
58492
+ width: maxWidth
58493
+ });
58494
+ core.addClass(this.tabs.getNativeElement(), "has-transition");
58495
+ var width = 100 / noOfTabs + "%";
58496
+ panes.forEach((function(p) {
58497
+ core.setCSS(p, "width", width);
58498
+ }));
58499
+ core.setCSS(this._$el[0], "transform", "translate3d(" + -1 * activeTabIndex / noOfTabs * 100 + "%, 0, 0)");
58334
58500
  };
58335
58501
  TabsAnimator.prototype.onUpper = function($event) {
58336
58502
  this.tabs.prev($event);
@@ -58456,6 +58622,7 @@
58456
58622
  };
58457
58623
  TabPaneComponent.prototype.onPropertyChange = function(key, nv, ov) {
58458
58624
  var _this = this;
58625
+ var _a;
58459
58626
  if (key === "content") {
58460
58627
  if (this.isActive) {
58461
58628
  setTimeout((function() {
@@ -58466,6 +58633,10 @@
58466
58633
  this.nativeElement.hidden = !nv;
58467
58634
  if (this._isFirstLoad) {
58468
58635
  this.tabsRef.selectDefaultPaneByIndex(this.tabsRef.defaultpaneindex);
58636
+ } else if (!nv && this.isActive) {
58637
+ this.tabsRef.next();
58638
+ } else if (nv || !this.isActive) {
58639
+ (_a = this.tabsRef.tabsAnimator) === null || _a === void 0 ? void 0 : _a.transitionTabIntoView();
58469
58640
  }
58470
58641
  this._isFirstLoad = false;
58471
58642
  } else {
@@ -61798,9 +61969,9 @@
61798
61969
  }));
61799
61970
 
61800
61971
  (function(global, factory) {
61801
- typeof exports === "object" && typeof module !== "undefined" ? factory(exports, require("@wm/core"), require("angular2-websocket/angular2-websocket"), require("@metrichor/jmespath"), require("@angular/core"), require("@angular/router"), require("@wm/oAuth"), require("@wm/security"), require("@wavemaker/variables"), require("@angular/common"), require("@angular/common/http"), require("ngx-toastr"), require("@wm/http")) : typeof define === "function" && define.amd ? define("@wm/variables", [ "exports", "@wm/core", "angular2-websocket/angular2-websocket", "@metrichor/jmespath", "@angular/core", "@angular/router", "@wm/oAuth", "@wm/security", "@wavemaker/variables", "@angular/common", "@angular/common/http", "ngx-toastr", "@wm/http" ], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self,
61802
- factory((global.wm = global.wm || {}, global.wm.variables = {}), global.wm.core, global.angularWebSocket, global.jmespath, global.ng.core, global.ng.router, global.wm.oAuth, global.wm.security, global.wm_common_variables, global.ng.common, global.ng.common.http, global.ngxToastr, global.wm.http));
61803
- })(this, (function(exports, core, angular2Websocket, jmespath, core$1, router, oAuth, security, variables, common, http, ngxToastr, http$1) {
61972
+ typeof exports === "object" && typeof module !== "undefined" ? factory(exports, require("@wavemaker/variables"), require("@wm/core"), require("angular2-websocket/angular2-websocket"), require("@metrichor/jmespath"), require("@angular/core"), require("@angular/router"), require("@wm/oAuth"), require("@wm/security"), require("@angular/common"), require("@angular/common/http"), require("ngx-toastr"), require("@wm/http")) : typeof define === "function" && define.amd ? define("@wm/variables", [ "exports", "@wavemaker/variables", "@wm/core", "angular2-websocket/angular2-websocket", "@metrichor/jmespath", "@angular/core", "@angular/router", "@wm/oAuth", "@wm/security", "@angular/common", "@angular/common/http", "ngx-toastr", "@wm/http" ], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self,
61973
+ factory((global.wm = global.wm || {}, global.wm.variables = {}), global.wm_common_variables, global.wm.core, global.angularWebSocket, global.jmespath, global.ng.core, global.ng.router, global.wm.oAuth, global.wm.security, global.ng.common, global.ng.common.http, global.ngxToastr, global.wm.http));
61974
+ })(this, (function(exports, variables, core, angular2Websocket, jmespath, core$1, router, oAuth, security, common, http, ngxToastr, http$1) {
61804
61975
  "use strict";
61805
61976
  var CONSTANTS = {
61806
61977
  hasCordova: window["cordova"] !== undefined,
@@ -62102,14 +62273,7 @@
62102
62273
  }
62103
62274
  }
62104
62275
  };
62105
- var $rootScope = {
62106
- project: {
62107
- deployedUrl: "./",
62108
- id: "temp_id"
62109
- },
62110
- projectName: "test_project_name",
62111
- isApplicationType: true
62112
- };
62276
+ var $rootScope = variables.$rootScope;
62113
62277
  /*! *****************************************************************************
62114
62278
  Copyright (c) Microsoft Corporation.
62115
62279
 
@@ -65413,6 +65577,9 @@
65413
65577
  }
65414
65578
  } : _a, scripts = _b.resources.scripts;
65415
65579
  var baseUrl = getPrefabBaseUrl(prefabName);
65580
+ scripts = scripts.filter((function(script) {
65581
+ return !script.startsWith("npm://");
65582
+ }));
65416
65583
  var _scripts = scripts.map((function(url) {
65417
65584
  return getPrefabResourceUrl(url, baseUrl);
65418
65585
  }));