@wavemaker/app-runtime-wm-build 11.4.0-next.141707 → 11.4.0-next.1417071

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.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];
@@ -27204,6 +27225,7 @@
27204
27225
  function BaseDateTimeComponent(inj, WIDGET_CONFIG) {
27205
27226
  var _this = _super.call(this, inj, WIDGET_CONFIG) || this;
27206
27227
  _this.isReadOnly = false;
27228
+ _this.clicked = false;
27207
27229
  _this.formatsByLocale = {
27208
27230
  timezone: ""
27209
27231
  };
@@ -27370,6 +27392,7 @@
27370
27392
  };
27371
27393
  BaseDateTimeComponent.prototype.setActiveDateFocus = function(newDate, isMouseEvent) {
27372
27394
  var _this = this;
27395
+ this.setNextData(newDate);
27373
27396
  var activeMonth = this.activeDate.getMonth();
27374
27397
  if (!isMouseEvent) {
27375
27398
  if (newDate.getMonth() < activeMonth) {
@@ -27407,15 +27430,35 @@
27407
27430
  this.loadYears();
27408
27431
  }
27409
27432
  };
27433
+ BaseDateTimeComponent.prototype.getMonth = function(date, inc) {
27434
+ var currentMonth = new Date(date);
27435
+ var month = currentMonth.getMonth();
27436
+ var year = currentMonth.getFullYear();
27437
+ month += inc;
27438
+ var newDate = new Date(year, month);
27439
+ var fullMonth = newDate.toLocaleString("en-US", {
27440
+ month: "long"
27441
+ });
27442
+ return {
27443
+ date: newDate,
27444
+ fullMonth: fullMonth
27445
+ };
27446
+ };
27410
27447
  BaseDateTimeComponent.prototype.addDatepickerMouseEvents = function() {
27411
27448
  var _this = this;
27412
27449
  var datePickerHead = $(".bs-datepicker-head");
27413
27450
  datePickerHead.find(".previous").click((function(event) {
27451
+ _this.next = _this.getMonth(_this.activeDate, 0);
27452
+ _this.prev = _this.getMonth(_this.activeDate, -2);
27453
+ _this.clicked = true;
27414
27454
  if (event.originalEvent) {
27415
27455
  _this.setFocusForDate(-1);
27416
27456
  }
27417
27457
  }));
27418
27458
  datePickerHead.find(".next").click((function(event) {
27459
+ _this.next = _this.getMonth(_this.activeDate, 2);
27460
+ _this.prev = _this.getMonth(_this.activeDate, 0);
27461
+ _this.clicked = true;
27419
27462
  if (event.originalEvent) {
27420
27463
  _this.setFocusForDate(1);
27421
27464
  }
@@ -27431,8 +27474,8 @@
27431
27474
  _this.setFocusForMonthOrDay();
27432
27475
  }
27433
27476
  }));
27434
- datePickerHead.find(".next").attr("aria-label", "Next");
27435
- datePickerHead.find(".previous").attr("aria-label", "Previous");
27477
+ datePickerHead.find(".next").attr("aria-label", "Next Month, " + this.next.fullMonth + " " + this.next.date.getFullYear());
27478
+ datePickerHead.find(".previous").attr("aria-label", "Previous Month, " + this.prev.fullMonth + " " + this.prev.date.getFullYear());
27436
27479
  };
27437
27480
  BaseDateTimeComponent.prototype.setFocusForMonthOrDay = function() {
27438
27481
  var activeMonthOrYear = $(".bs-datepicker-head .current").first().text();
@@ -27498,6 +27541,10 @@
27498
27541
  this.loadDays();
27499
27542
  this.setActiveDateFocus(this.activeDate);
27500
27543
  };
27544
+ BaseDateTimeComponent.prototype.setNextData = function(nextDate) {
27545
+ this.next = this.getMonth(nextDate, 1);
27546
+ this.prev = this.getMonth(nextDate, -1);
27547
+ };
27501
27548
  BaseDateTimeComponent.prototype.loadDays = function() {
27502
27549
  var _this = this;
27503
27550
  setTimeout((function() {
@@ -27616,6 +27663,7 @@
27616
27663
  };
27617
27664
  BaseDateTimeComponent.prototype.setActiveMonthFocus = function(newDate, isMoouseEvent) {
27618
27665
  var _this = this;
27666
+ this.setNextData(newDate);
27619
27667
  var newMonth = months[newDate.getMonth()];
27620
27668
  if (!isMoouseEvent) {
27621
27669
  if (newDate.getFullYear() < this.activeDate.getFullYear()) {
@@ -28179,7 +28227,6 @@
28179
28227
  if (!skipFocus) {
28180
28228
  this.onDateTimeInputFocus();
28181
28229
  }
28182
- return;
28183
28230
  }
28184
28231
  if ($event.type === "click") {
28185
28232
  this.invokeEventCallback("click", {
@@ -28253,7 +28300,7 @@
28253
28300
  type: core.Component,
28254
28301
  args: [ {
28255
28302
  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',
28303
+ 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
28304
  providers: [ base.provideAs(DateComponent, forms.NG_VALUE_ACCESSOR, true), base.provideAs(DateComponent, forms.NG_VALIDATORS, true), base.provideAsWidgetRef(DateComponent) ]
28258
28305
  } ]
28259
28306
  } ];
@@ -33572,9 +33619,10 @@
33572
33619
  };
33573
33620
  var MenuComponent = function(_super) {
33574
33621
  __extends(MenuComponent, _super);
33575
- function MenuComponent(inj, route, userDefinedExecutionContext, bsDropdown, parentNav, selectEventCB) {
33622
+ function MenuComponent(inj, route, app, userDefinedExecutionContext, bsDropdown, parentNav, selectEventCB) {
33576
33623
  var _this = _super.call(this, inj, WIDGET_CONFIG$1) || this;
33577
33624
  _this.route = route;
33625
+ _this.app = app;
33578
33626
  _this.userDefinedExecutionContext = userDefinedExecutionContext;
33579
33627
  _this.bsDropdown = bsDropdown;
33580
33628
  _this.parentNav = parentNav;
@@ -33588,6 +33636,9 @@
33588
33636
  }
33589
33637
  var datasetSubscription = _this.nodes$.subscribe((function() {
33590
33638
  if (!_.isEmpty(_this.nodes)) {
33639
+ if (base.hasLinkToCurrentPage(_this.nodes, _this.route.url)) {
33640
+ core.addClass(_this.nativeElement.querySelector(".dropdown-toggle"), "active");
33641
+ }
33591
33642
  if (_this.parentNav) {
33592
33643
  return;
33593
33644
  }
@@ -33662,26 +33713,22 @@
33662
33713
  }
33663
33714
  $event.preventDefault();
33664
33715
  };
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
33716
  MenuComponent.prototype.resetNodes = function() {
33677
33717
  _super.prototype.resetNodes.call(this);
33678
- if (this.autoopen === AUTO_OPEN.ACTIVE_PAGE && this.hasLinkToCurrentPage(this.nodes) || this.autoopen === AUTO_OPEN.ALWAYS) {
33718
+ if (this.autoopen === AUTO_OPEN.ACTIVE_PAGE && base.hasLinkToCurrentPage(this.nodes, this.route.url) || this.autoopen === AUTO_OPEN.ALWAYS) {
33679
33719
  this.bsDropdown.show();
33680
33720
  }
33681
33721
  };
33682
33722
  MenuComponent.prototype.ngOnInit = function() {
33723
+ var _this = this;
33683
33724
  _super.prototype.ngOnInit.call(this);
33684
33725
  this.setMenuPosition();
33726
+ var cancelSubscription = this.app.subscribe("highlightActiveLink", (function(data) {
33727
+ core.toggleClass(_this.nativeElement.querySelector(".dropdown-toggle"), "active", base.hasLinkToCurrentPage(_this.nodes, _this.route.url));
33728
+ }));
33729
+ this.registerDestroyListener((function() {
33730
+ return cancelSubscription();
33731
+ }));
33685
33732
  };
33686
33733
  MenuComponent.prototype.onPropertyChange = function(key, nv, ov) {
33687
33734
  if (key === "tabindex") {
@@ -33752,6 +33799,8 @@
33752
33799
  type: core$1.Injector
33753
33800
  }, {
33754
33801
  type: router.Router
33802
+ }, {
33803
+ type: core.App
33755
33804
  }, {
33756
33805
  type: core.UserDefinedExecutionContext
33757
33806
  }, {
@@ -33869,8 +33918,9 @@
33869
33918
  VERTICAL: "vertical"
33870
33919
  };
33871
33920
  var MenuDropdownItemComponent = function() {
33872
- function MenuDropdownItemComponent(menuRef, userDefinedExecutionContext, parentNav, elRef) {
33921
+ function MenuDropdownItemComponent(app, menuRef, userDefinedExecutionContext, parentNav, elRef) {
33873
33922
  var _this = this;
33923
+ this.app = app;
33874
33924
  this.menuRef = menuRef;
33875
33925
  this.userDefinedExecutionContext = userDefinedExecutionContext;
33876
33926
  this.parentNav = parentNav;
@@ -33896,10 +33946,14 @@
33896
33946
  this.menualign = menuAlignClass[this.menuRef.menualign] || menuAlignClass["pull-left"];
33897
33947
  }
33898
33948
  MenuDropdownItemComponent.prototype.ngOnInit = function() {
33949
+ var _this = this;
33899
33950
  if (this.parentNav) {
33900
- if (base.isActiveNavItem(this.item.link, this.menuRef.route.url)) {
33951
+ if (base.hasLinkToCurrentPage([ this.item ], this.menuRef.route.url)) {
33901
33952
  core.addClass(this.nativeElement, "active");
33902
33953
  }
33954
+ this.highlightActiveLinkSubscription = this.app.subscribe("highlightActiveLink", (function(data) {
33955
+ core.toggleClass(_this.nativeElement, "active", base.hasLinkToCurrentPage([ _this.item ], _this.menuRef.route.url));
33956
+ }));
33903
33957
  }
33904
33958
  };
33905
33959
  MenuDropdownItemComponent.prototype.getInitialKeyMovements = function() {
@@ -33968,6 +34022,11 @@
33968
34022
  $event.stopPropagation();
33969
34023
  }
33970
34024
  };
34025
+ MenuDropdownItemComponent.prototype.ngOnDestroy = function() {
34026
+ if (this.highlightActiveLinkSubscription) {
34027
+ this.highlightActiveLinkSubscription();
34028
+ }
34029
+ };
33971
34030
  return MenuDropdownItemComponent;
33972
34031
  }();
33973
34032
  MenuDropdownItemComponent.decorators = [ {
@@ -33979,6 +34038,8 @@
33979
34038
  } ];
33980
34039
  MenuDropdownItemComponent.ctorParameters = function() {
33981
34040
  return [ {
34041
+ type: core.App
34042
+ }, {
33982
34043
  type: MenuComponent
33983
34044
  }, {
33984
34045
  type: core.UserDefinedExecutionContext
@@ -35670,6 +35731,8 @@
35670
35731
  }));
35671
35732
  var popoverStartBtn = popoverContainer.querySelector(".popover-start");
35672
35733
  var popoverEndBtn = popoverContainer.querySelector(".popover-end");
35734
+ popoverStartBtn.setAttribute("aria-hidden", "true");
35735
+ popoverEndBtn.setAttribute("aria-hidden", "true");
35673
35736
  popoverStartBtn.onkeydown = function(event) {
35674
35737
  var action = _this.keyEventPlugin.constructor.getEventFullKey(event);
35675
35738
  if (action === "shift.tab") {
@@ -36417,6 +36480,10 @@
36417
36480
  Object.assign(this.context, initState);
36418
36481
  this.modalOptions.ariaLabelledBy = this.titleId;
36419
36482
  this.dialogRef = this.bsModal.show(this.getTemplateRef(), this.modalOptions);
36483
+ if (this.dialogService.getOpenedDialogs().length === 1 && core.isMobileApp()) {
36484
+ var parentSelector = $("body > app-root")[0];
36485
+ parentSelector.setAttribute("aria-hidden", "true");
36486
+ }
36420
36487
  };
36421
36488
  BaseDialog.prototype.close = function() {
36422
36489
  if (this.dialogRef) {
@@ -42314,7 +42381,7 @@
42314
42381
  }
42315
42382
  this.isDisableCurrent = isCurrentPageFirst && isCurrentPageLast;
42316
42383
  if (this.dataset && this.dataset.length && this.isDisableNext && this.parent.onDemandLoad && this.parent.widgetType === "wm-table") {
42317
- this.parent.callDataGridMethod("hideLoadingIndicator", this.isDisableNext, false);
42384
+ this.parent.callDataGridMethod("hideLoadingIndicator", this.isDisableNext, this.parent.infScroll);
42318
42385
  }
42319
42386
  };
42320
42387
  PaginationComponent.prototype.isDataSourceHasPaging = function() {
@@ -44220,10 +44287,15 @@
44220
44287
  var dataSource = this.datasource;
44221
44288
  if (dataSource && dataSource.execute(core.DataSource.Operation.IS_API_AWARE) && core.isDataSourceEqual(data.variable, dataSource)) {
44222
44289
  this.ngZone.run((function() {
44223
- var _a;
44290
+ var _a, _b, _c;
44224
44291
  _this.handleStateParams(data);
44225
44292
  _this.variableInflight = data.active;
44226
- _this.noDataFound = !((_a = data.data) === null || _a === void 0 ? void 0 : _a.pagination.totalElements);
44293
+ var totalEle = (_b = (_a = data.data) === null || _a === void 0 ? void 0 : _a.pagination) === null || _b === void 0 ? void 0 : _b.totalElements;
44294
+ if (!_.isUndefined(totalEle)) {
44295
+ _this.noDataFound = totalEle === 0 ? true : false;
44296
+ } else {
44297
+ _this.noDataFound = _.isEmpty((_c = data.data) === null || _c === void 0 ? void 0 : _c.data);
44298
+ }
44227
44299
  }));
44228
44300
  }
44229
44301
  };
@@ -44293,10 +44365,10 @@
44293
44365
  }
44294
44366
  };
44295
44367
  ListComponent.prototype.updateFieldDefs = function(newVal) {
44296
- var _b;
44368
+ var _d;
44297
44369
  if (this.infScroll || this.onDemandLoad) {
44298
- _b = __read(this.paginationService.updateFieldsOnPagination(this, newVal), 2), this.fieldDefs = _b[0],
44299
- this.currentPage = _b[1];
44370
+ _d = __read(this.paginationService.updateFieldsOnPagination(this, newVal), 2), this.fieldDefs = _d[0],
44371
+ this.currentPage = _d[1];
44300
44372
  } else {
44301
44373
  this.fieldDefs = newVal;
44302
44374
  }
@@ -44678,7 +44750,7 @@
44678
44750
  ListComponent.prototype.handleKeyDown = function($event, action) {
44679
44751
  var _this = this;
44680
44752
  $event.stopPropagation();
44681
- if ($event.keyCode !== 13 && $event.keyCode !== 9 && !($event.target.classList.contains("form-control") && $event.keyCode === 32)) {
44753
+ if ($event.keyCode !== 13 && $event.keyCode !== 9 && !(($event.target.classList.contains("form-control") || $event.target.classList.contains("note-editable")) && $event.keyCode === 32)) {
44682
44754
  $event.preventDefault();
44683
44755
  }
44684
44756
  var listItems = this.listItems;
@@ -45032,7 +45104,7 @@
45032
45104
  type: core$1.Component,
45033
45105
  args: [ {
45034
45106
  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',
45107
+ 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" *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 <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',
45036
45108
  providers: [ base.provideAsWidgetRef(ListComponent) ]
45037
45109
  } ]
45038
45110
  } ];
@@ -45547,6 +45619,10 @@
45547
45619
  value: "No data found."
45548
45620
  }, base.PROP_STRING) ], [ "ondemandmessage", Object.assign({
45549
45621
  value: "Load More"
45622
+ }, base.PROP_STRING) ], [ "showviewlessbutton", Object.assign({
45623
+ value: false
45624
+ }, base.PROP_BOOLEAN) ], [ "viewlessmessage", Object.assign({
45625
+ value: "View Less"
45550
45626
  }, base.PROP_STRING) ], [ "pagesize", base.PROP_NUMBER ], [ "radioselect", base.PROP_BOOLEAN ], [ "rowclass", base.PROP_STRING ], [ "rowngclass", base.PROP_STRING ], [ "searchlabel", Object.assign({
45551
45627
  value: "Search"
45552
45628
  }, base.PROP_STRING) ], [ "show", Object.assign({
@@ -45627,6 +45703,7 @@
45627
45703
  _this.columns = {};
45628
45704
  _this.formfields = {};
45629
45705
  _this.enablesort = true;
45706
+ _this.showviewlessbutton = false;
45630
45707
  _this.primaryKey = [];
45631
45708
  _this.selectedItems = [];
45632
45709
  _this.selectedItemChange = new rxjs.Subject;
@@ -45669,6 +45746,7 @@
45669
45746
  data: [],
45670
45747
  colDefs: [],
45671
45748
  startRowIndex: 1,
45749
+ mode: "",
45672
45750
  sortInfo: {
45673
45751
  field: "",
45674
45752
  direction: ""
@@ -45699,6 +45777,10 @@
45699
45777
  isSearchTrigerred: false,
45700
45778
  isDatasetUpdated: false,
45701
45779
  isDataUpdatedByUser: false,
45780
+ showviewlessbutton: false,
45781
+ ondemandmessage: "",
45782
+ viewlessmessage: "",
45783
+ loadingdatamsg: "",
45702
45784
  isNextPageData: undefined,
45703
45785
  ACTIONS: {
45704
45786
  DELETE: "delete",
@@ -45723,6 +45805,14 @@
45723
45805
  getPageSize: function() {
45724
45806
  return _this.pagesize;
45725
45807
  },
45808
+ getPageCount: function() {
45809
+ return _this.dataNavigator.pageCount;
45810
+ },
45811
+ enableNavigation: function() {
45812
+ _this.dataNavigator.widget.isDisableNext = false;
45813
+ _this.dataNavigator.widget.isDisableLast = false;
45814
+ _this.gridOptions.mode = "viewless";
45815
+ },
45726
45816
  setDeletedRowIndex: function(id) {
45727
45817
  _this.setDataGridOption("deletedRowIndex", id);
45728
45818
  },
@@ -45757,7 +45847,9 @@
45757
45847
  }
45758
45848
  _this.callDataGridMethod("selectRows", _this.items);
45759
45849
  _this.selectedItems = _this.callDataGridMethod("getSelectedRows");
45760
- _this.selectedItemChange.next(_this.selectedItems);
45850
+ if (_this.selectedItems.length) {
45851
+ _this.selectedItemChange.next(_this.selectedItems);
45852
+ }
45761
45853
  if (_this._isPageSearch && _this.filterInfo) {
45762
45854
  _this.searchSortHandler(_this.filterInfo, undefined, "search");
45763
45855
  }
@@ -45766,9 +45858,11 @@
45766
45858
  onRowSelect: function(row, e) {
45767
45859
  _this.ngZone.run((function() {
45768
45860
  _this.selectedItems = _this.callDataGridMethod("getSelectedRows");
45769
- _this.selectedItemChange.next(_this.selectedItems);
45861
+ if (_this.selectedItems.length) {
45862
+ _this.selectedItemChange.next(_this.selectedItems);
45863
+ }
45770
45864
  var rowData = _this.addRowIndex(row);
45771
- if (rowData.$index && _this.getConfiguredState() !== "none" && _this.dataNavigator && base.unsupportedStatePersistenceTypes.indexOf(_this.navigation) < 0) {
45865
+ if (_this.selectedItems.length && rowData.$index && _this.getConfiguredState() !== "none" && _this.dataNavigator && base.unsupportedStatePersistenceTypes.indexOf(_this.navigation) < 0) {
45772
45866
  var obj = {
45773
45867
  page: _this.dataNavigator.dn.currentPage,
45774
45868
  index: rowData.$index - 1
@@ -46208,9 +46302,14 @@
46208
46302
  _this.callDataGridMethod("addLoadMoreBtn", _this.ondemandmessage, _this.loadingdatamsg, (function($event) {
46209
46303
  _this.gridOptions.setIsNextPageData(true);
46210
46304
  _this.gridOptions.setIsDataUpdatedByUser(false);
46211
- _this.dataNavigator.navigatePage("next", $event);
46212
- _this.isDataLoading = true;
46213
- }));
46305
+ if (_this.gridOptions.mode === "viewless") {
46306
+ _this.dataNavigator.navigatePage("first", $event, true);
46307
+ _this.gridOptions.mode = "";
46308
+ } else {
46309
+ _this.dataNavigator.navigatePage("next", $event);
46310
+ _this.isDataLoading = true;
46311
+ }
46312
+ }), _this.infScroll);
46214
46313
  },
46215
46314
  bindScrollEvt: function() {
46216
46315
  if (_this._gridData && _this._gridData.length && _this.infScroll) {
@@ -46488,6 +46587,10 @@
46488
46587
  this.gridOptions.securityUtils.pipeTransform = this.trustAsPipe;
46489
46588
  this.gridOptions.navigation = this.navigation;
46490
46589
  this.gridOptions.isdynamictable = this.isdynamictable;
46590
+ this.gridOptions.showviewlessbutton = this.showviewlessbutton;
46591
+ this.gridOptions.ondemandmessage = this.ondemandmessage;
46592
+ this.gridOptions.viewlessmessage = this.viewlessmessage;
46593
+ this.gridOptions.loadingdatamsg = this.loadingdatamsg;
46491
46594
  if (!_.isEmpty(this.gridData)) {
46492
46595
  this.gridOptions.data = core.getClonedObject(this.gridData);
46493
46596
  }
@@ -47225,6 +47328,11 @@
47225
47328
  if (nv) {
47226
47329
  this.$element.find(".on-demand-datagrid > a").text(nv);
47227
47330
  }
47331
+ this.gridOptions.ondemandmessage = nv;
47332
+ break;
47333
+
47334
+ case "viewlessmessage":
47335
+ this.gridOptions.viewlessmessage = nv;
47228
47336
  break;
47229
47337
 
47230
47338
  case "show":
@@ -50949,15 +51057,20 @@
50949
51057
  };
50950
51058
  };
50951
51059
  var \u02752 = findInvalidElement;
50952
- var setTouchedState = function(ngForm) {
51060
+ var setTouchedState = function(self, ngForm, fieldName) {
51061
+ var _a, _b;
50953
51062
  if (ngForm.valid) {
50954
51063
  return;
50955
51064
  }
50956
51065
  if (ngForm.controls) {
50957
- _.forEach(ngForm.controls, (function(ctrl) {
50958
- setTouchedState(ctrl);
51066
+ _.forEach(ngForm.controls, (function(ctrl, fieldName) {
51067
+ setTouchedState(self, ctrl, fieldName);
50959
51068
  }));
50960
51069
  } else {
51070
+ var element = self.$element.find('[wmformfield][key="' + fieldName + '"]');
51071
+ element[0].setAttribute("__errormsg", element[0].getAttribute("__validationId"));
51072
+ (_a = element[0].querySelector("input")) === null || _a === void 0 ? void 0 : _a.setAttribute("aria-invalid", ngForm.invalid);
51073
+ (_b = element[0].querySelector("input")) === null || _b === void 0 ? void 0 : _b.setAttribute("aria-describedby", element[0].getAttribute("__validationId"));
50961
51074
  ngForm.markAsTouched();
50962
51075
  }
50963
51076
  };
@@ -51254,7 +51367,7 @@
51254
51367
  }));
51255
51368
  };
51256
51369
  FormComponent.prototype.highlightInvalidFields = function() {
51257
- setTouchedState(this.ngform);
51370
+ setTouchedState(this, this.ngform, "");
51258
51371
  };
51259
51372
  FormComponent.prototype.validateFieldsOnSubmit = function() {
51260
51373
  this.setValidationMsgs();
@@ -51783,8 +51896,8 @@
51783
51896
  FormComponent.prototype.generateFormFields = function() {
51784
51897
  return __awaiter(this, void 0, void 0, (function() {
51785
51898
  var noOfColumns, $gridLayout, columnWidth, fieldTemplate, colCount, index, userFields, fields, colTmpl, componentFactoryRef, component;
51786
- return __generator(this, (function(_b) {
51787
- switch (_b.label) {
51899
+ return __generator(this, (function(_c) {
51900
+ switch (_c.label) {
51788
51901
  case 0:
51789
51902
  if (_.isUndefined(this._isGridLayoutPresent)) {
51790
51903
  this._isGridLayoutPresent = this.$element.find(".panel-body [wmlayoutgrid]").length > 0;
@@ -51843,7 +51956,7 @@
51843
51956
  }) ];
51844
51957
 
51845
51958
  case 1:
51846
- componentFactoryRef = _b.sent();
51959
+ componentFactoryRef = _c.sent();
51847
51960
  component = this.dynamicFormRef.createComponent(componentFactoryRef, 0, this.inj);
51848
51961
  core.extendProto(component.instance, this._dynamicContext);
51849
51962
  $gridLayout[0].appendChild(component.location.nativeElement);
@@ -52364,10 +52477,18 @@
52364
52477
  $($evt.target).closest(".live-field").addClass("active");
52365
52478
  };
52366
52479
  FormFieldDirective.prototype._onBlurField = function($evt) {
52367
- var _a, _b;
52480
+ var _a, _b, _c, _d;
52368
52481
  $($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"));
52482
+ var ele = this.nativeElement.querySelector("p.text-danger");
52483
+ if (this.ngform.controls[this._fieldName].invalid && this.ngform.controls[this._fieldName].touched && this.form.isUpdateMode) {
52484
+ this.nativeElement.setAttribute("__errormsg", "" + this.nativeElement.getAttribute("__validationId"));
52485
+ (_a = this.nativeElement.querySelector("input")) === null || _a === void 0 ? void 0 : _a.setAttribute("aria-invalid", "" + this.ngform.controls[this._fieldName].invalid);
52486
+ (_b = this.nativeElement.querySelector("input")) === null || _b === void 0 ? void 0 : _b.setAttribute("aria-describedby", "" + this.nativeElement.getAttribute("__validationId"));
52487
+ } else {
52488
+ this.nativeElement.removeAttribute("__errormsg");
52489
+ (_c = this.nativeElement.querySelector("input")) === null || _c === void 0 ? void 0 : _c.removeAttribute("aria-invalid");
52490
+ (_d = this.nativeElement.querySelector("input")) === null || _d === void 0 ? void 0 : _d.removeAttribute("aria-describedby");
52491
+ }
52371
52492
  this._activeField = false;
52372
52493
  this._triggeredByUser = false;
52373
52494
  this._clicktriggeredByUser = false;
@@ -52589,7 +52710,7 @@
52589
52710
  });
52590
52711
  };
52591
52712
  FormFieldDirective.prototype.onValueChange = function(val) {
52592
- var _a, _b;
52713
+ var _a, _b, _c, _d;
52593
52714
  if (!this.isDestroyed) {
52594
52715
  var captionEl = $(this.nativeElement).find(".caption-floating");
52595
52716
  if (captionEl.length > 0) {
@@ -52601,8 +52722,15 @@
52601
52722
  isFocused: this._activeField
52602
52723
  });
52603
52724
  }
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"));
52725
+ if (this.ngform.controls[this._fieldName].invalid && this.ngform.controls[this._fieldName].touched && this.form.isUpdateMode) {
52726
+ this.nativeElement.setAttribute("__errormsg", "" + this.nativeElement.getAttribute("__validationId"));
52727
+ (_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");
52728
+ (_b = this.nativeElement.querySelector("input")) === null || _b === void 0 ? void 0 : _b.setAttribute("aria-describedby", "" + this.nativeElement.getAttribute("__validationId"));
52729
+ } else {
52730
+ this.nativeElement.removeAttribute("__errormsg");
52731
+ (_c = this.nativeElement.querySelector("input")) === null || _c === void 0 ? void 0 : _c.removeAttribute("aria-invalid");
52732
+ (_d = this.nativeElement.querySelector("input")) === null || _d === void 0 ? void 0 : _d.removeAttribute("aria-describedby");
52733
+ }
52606
52734
  this.form.onFieldValueChange(this, val);
52607
52735
  this.notifyChanges();
52608
52736
  if (this.$element.find(".active").length > 0 || this.form.touched) {
@@ -61798,9 +61926,9 @@
61798
61926
  }));
61799
61927
 
61800
61928
  (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) {
61929
+ 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,
61930
+ 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));
61931
+ })(this, (function(exports, variables, core, angular2Websocket, jmespath, core$1, router, oAuth, security, common, http, ngxToastr, http$1) {
61804
61932
  "use strict";
61805
61933
  var CONSTANTS = {
61806
61934
  hasCordova: window["cordova"] !== undefined,
@@ -62102,14 +62230,7 @@
62102
62230
  }
62103
62231
  }
62104
62232
  };
62105
- var $rootScope = {
62106
- project: {
62107
- deployedUrl: "./",
62108
- id: "temp_id"
62109
- },
62110
- projectName: "test_project_name",
62111
- isApplicationType: true
62112
- };
62233
+ var $rootScope = variables.$rootScope;
62113
62234
  /*! *****************************************************************************
62114
62235
  Copyright (c) Microsoft Corporation.
62115
62236
 
@@ -65413,6 +65534,9 @@
65413
65534
  }
65414
65535
  } : _a, scripts = _b.resources.scripts;
65415
65536
  var baseUrl = getPrefabBaseUrl(prefabName);
65537
+ scripts = scripts.filter((function(script) {
65538
+ return !script.startsWith("npm://");
65539
+ }));
65416
65540
  var _scripts = scripts.map((function(url) {
65417
65541
  return getPrefabResourceUrl(url, baseUrl);
65418
65542
  }));