@wavemaker/app-runtime-wm-build 11.4.0-next.1417075 → 11.4.0-next.1417076

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.
@@ -11229,7 +11229,7 @@
11229
11229
  if (openedDialogs.indexOf(ref) !== -1) {
11230
11230
  openedDialogs.splice(openedDialogs.indexOf(ref), 1);
11231
11231
  }
11232
- if (openedDialogs.length === 0 && core$1.isMobileApp()) {
11232
+ if (openedDialogs.length === 0 && (core$1.isMobile() || core$1.isMobileApp())) {
11233
11233
  var parentSelector = $("body > app-root")[0];
11234
11234
  parentSelector.removeAttribute("aria-hidden");
11235
11235
  }
@@ -26924,22 +26924,24 @@
26924
26924
  configurable: true
26925
26925
  });
26926
26926
  DateTimePickerComponent.prototype.validateSelectedDate = function() {
26927
- var _a, _b, _c, _d, _e, _f, _g;
26927
+ var _a, _b, _c, _d, _e;
26928
26928
  if (!this.changedValue) {
26929
26929
  return true;
26930
26930
  }
26931
26931
  var cd = moment(this.changedValue);
26932
- 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)) {
26933
26935
  return false;
26934
26936
  }
26935
- 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)) {
26936
26938
  return false;
26937
26939
  }
26938
- 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) {
26939
26941
  return false;
26940
26942
  }
26941
26943
  var cdSt = cd.startOf("day").toDate().getTime();
26942
- 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) {
26943
26945
  return d.getTime() === cdSt;
26944
26946
  }))) {
26945
26947
  return false;
@@ -26988,6 +26990,9 @@
26988
26990
  newVal.setMilliseconds(oldVal.getMilliseconds());
26989
26991
  }
26990
26992
  this.changedValue = newVal;
26993
+ if (this.mode === "DATE" && oldVal !== newVal && this.validateSelectedDate()) {
26994
+ this.onOkClick();
26995
+ }
26991
26996
  };
26992
26997
  DateTimePickerComponent.prototype.onTimeUpdate = function(newVal) {
26993
26998
  this.changedValue = newVal;
@@ -27009,6 +27014,10 @@
27009
27014
  this.triggerChange();
27010
27015
  this.hideModal();
27011
27016
  };
27017
+ DateTimePickerComponent.prototype.setToday = function() {
27018
+ var today = moment().startOf("day").toDate();
27019
+ this.onDateUpdate(today);
27020
+ };
27012
27021
  DateTimePickerComponent.prototype.reset = function() {
27013
27022
  this.changedValue = this._value;
27014
27023
  };
@@ -27043,7 +27052,7 @@
27043
27052
  type: core.Component,
27044
27053
  args: [ {
27045
27054
  selector: "wm-datetimepicker",
27046
- 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 '
27047
27056
  } ]
27048
27057
  } ];
27049
27058
  DateTimePickerComponent.ctorParameters = function() {
@@ -27126,8 +27135,8 @@
27126
27135
  }
27127
27136
  return arr;
27128
27137
  };
27129
- TimePickerComponent.prototype.set = function(_h, unit) {
27130
- var index = _h.index, value = _h.value;
27138
+ TimePickerComponent.prototype.set = function(_f, unit) {
27139
+ var index = _f.index, value = _f.value;
27131
27140
  if (unit === "HOUR") {
27132
27141
  this.value = moment(this.value).hour(parseInt(value)).toDate();
27133
27142
  } else if (unit === "MINUTE") {
@@ -36432,15 +36441,17 @@
36432
36441
  _this.dialogService = inj.get(core.AbstractDialogService);
36433
36442
  _this.bsModal = inj.get(modal.BsModalService);
36434
36443
  var router$1 = inj.get(router.Router);
36435
- var subscriptions = [ _this.bsModal.onShown.subscribe((function() {
36444
+ var subscriptions = [ _this.bsModal.onShown.subscribe((function(_a) {
36445
+ var id = _a.id;
36436
36446
  var ref = _this.dialogService.getLastOpenedDialog();
36437
36447
  if (ref === _this) {
36438
36448
  invokeOpenedCallback(ref);
36449
+ _this.dialogId = id;
36439
36450
  }
36440
36451
  })), _this.bsModal.onShow.subscribe((function() {
36441
36452
  focusTrapObj.activeElement = document.activeElement;
36442
36453
  })), _this.bsModal.onHidden.subscribe((function(closeReason) {
36443
- var ref = closeReason === "esc" || closeReason === "backdrop-click" ? _this.dialogService.getLastOpenedDialog() : _this.dialogService.getDialogRefFromClosedDialogs();
36454
+ var ref = closeReason === "esc" || closeReason === "backdrop-click" || _this.dialogId && (closeReason === null || closeReason === void 0 ? void 0 : closeReason.id) === _this.dialogId ? _this.dialogService.getLastOpenedDialog() : _this.dialogService.getDialogRefFromClosedDialogs();
36444
36455
  if (ref === _this) {
36445
36456
  _this.dialogService.removeFromOpenedDialogs(ref);
36446
36457
  _this.dialogService.removeFromClosedDialogs(ref);
@@ -36480,7 +36491,7 @@
36480
36491
  Object.assign(this.context, initState);
36481
36492
  this.modalOptions.ariaLabelledBy = this.titleId;
36482
36493
  this.dialogRef = this.bsModal.show(this.getTemplateRef(), this.modalOptions);
36483
- if (this.dialogService.getOpenedDialogs().length === 1 && core.isMobileApp()) {
36494
+ if (this.dialogService.getOpenedDialogs().length === 1 && (core.isMobile() || core.isMobileApp())) {
36484
36495
  var parentSelector = $("body > app-root")[0];
36485
36496
  parentSelector.setAttribute("aria-hidden", "true");
36486
36497
  }
@@ -42315,11 +42326,31 @@
42315
42326
  $index: _this.dn.currentPage
42316
42327
  });
42317
42328
  _this.goToPage();
42329
+ if (_this.navigation === "Basic") {
42330
+ _this._setAriaForBasicNavigation();
42331
+ }
42318
42332
  }
42319
42333
  }), base.DEBOUNCE_TIMES.PAGINATION_DEBOUNCE_TIME);
42320
42334
  base.styler(_this.nativeElement, _this);
42321
42335
  return _this;
42322
42336
  }
42337
+ PaginationComponent.prototype._setAriaForBasicNavigation = function() {
42338
+ _.forEach(this.nativeElement.getElementsByTagName("a"), (function(item) {
42339
+ item.setAttribute("href", "javascript:void(0);");
42340
+ var childNode = item.querySelector("span");
42341
+ if ((childNode === null || childNode === void 0 ? void 0 : childNode.dataset.isacitvepage) === "true") {
42342
+ item.setAttribute("aria-current", "true");
42343
+ setTimeout((function() {
42344
+ return item.focus();
42345
+ }));
42346
+ }
42347
+ if ((childNode === null || childNode === void 0 ? void 0 : childNode.dataset.isdisabled) === "true") {
42348
+ item.setAttribute("aria-disabled", "true");
42349
+ } else {
42350
+ item.removeAttribute("aria-disabled");
42351
+ }
42352
+ }));
42353
+ };
42323
42354
  PaginationComponent.prototype.setResult = function(result) {
42324
42355
  this.result = result;
42325
42356
  this.resultEmitter.emit(this.result);
@@ -42436,9 +42467,7 @@
42436
42467
  this.resetPageNavigation();
42437
42468
  }
42438
42469
  if (this.navigation === "Basic") {
42439
- _.forEach(this.nativeElement.getElementsByTagName("a"), (function(item) {
42440
- item.setAttribute("href", "javascript:void(0);");
42441
- }));
42470
+ this._setAriaForBasicNavigation();
42442
42471
  }
42443
42472
  } else {
42444
42473
  if (newVal && !_.isString(newVal)) {
@@ -42715,7 +42744,7 @@
42715
42744
  type: core.Component,
42716
42745
  args: [ {
42717
42746
  selector: "[wmPagination]",
42718
- 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',
42747
+ 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',
42719
42748
  providers: [ base.provideAsWidgetRef(PaginationComponent) ]
42720
42749
  } ]
42721
42750
  } ];
@@ -44748,7 +44777,7 @@
44748
44777
  return this.datasource.execute(operation, options);
44749
44778
  };
44750
44779
  ListComponent.prototype.handleKeyDown = function($event, action) {
44751
- var _this = this;
44780
+ var _d, _e;
44752
44781
  $event.stopPropagation();
44753
44782
  if ($event.keyCode !== 13 && $event.keyCode !== 9 && !(($event.target.classList.contains("form-control") || $event.target.classList.contains("note-editable")) && $event.keyCode === 32)) {
44754
44783
  $event.preventDefault();
@@ -44790,27 +44819,21 @@
44790
44819
  }
44791
44820
  if (action === "focusPrev") {
44792
44821
  if (this.isListElementMovable) {
44793
- var prev_1;
44794
44822
  presentIndex = presentIndex <= 0 ? 0 : presentIndex;
44795
- this.lastSelectedItem = this.getListItemByIndex(presentIndex);
44796
44823
  if (presentIndex === 0) {
44797
- prev_1 = this.listItems.last;
44798
44824
  return;
44799
44825
  }
44800
- this.listItems.forEach((function($liItem, idx) {
44801
- if (idx === presentIndex) {
44802
- prev_1.nativeElement.before($liItem.nativeElement);
44803
- _this.lastSelectedItem.nativeElement.focus();
44804
- var arr = _this.listItems.toArray();
44805
- var temp = arr[presentIndex];
44806
- arr[presentIndex] = arr[presentIndex - 1];
44807
- arr[presentIndex - 1] = temp;
44808
- _this.listItems.reset(arr);
44809
- _this.currentIndex = presentIndex;
44810
- _this.ariaText = "selected ";
44811
- }
44812
- prev_1 = $liItem;
44813
- }));
44826
+ this.lastSelectedItem = this.getListItemByIndex(presentIndex);
44827
+ var prevElt = this.getListItemByIndex(presentIndex - 1);
44828
+ prevElt.nativeElement.before(this.lastSelectedItem.nativeElement);
44829
+ this.lastSelectedItem.nativeElement.focus();
44830
+ this.statePersistence.removeWidgetState(this, "selectedItem");
44831
+ var arr = this.listItems.toArray();
44832
+ _d = __read([ arr[presentIndex], arr[presentIndex - 1] ], 2), arr[presentIndex - 1] = _d[0],
44833
+ arr[presentIndex] = _d[1];
44834
+ this.listItems.reset(arr);
44835
+ this.currentIndex = presentIndex;
44836
+ this.ariaText = "selected ";
44814
44837
  } else {
44815
44838
  presentIndex = presentIndex <= 0 ? 0 : presentIndex - 1;
44816
44839
  this.lastSelectedItem = this.getListItemByIndex(presentIndex);
@@ -44820,27 +44843,21 @@
44820
44843
  }
44821
44844
  } else if (action === "focusNext") {
44822
44845
  if (this.isListElementMovable) {
44823
- var prev_2;
44824
44846
  presentIndex = presentIndex < listItems.length - 1 ? presentIndex : listItems.length - 1;
44825
- this.lastSelectedItem = this.getListItemByIndex(presentIndex);
44826
44847
  if (presentIndex === this.listItems.length - 1) {
44827
- prev_2 = this.listItems.first;
44828
44848
  return;
44829
44849
  }
44830
- this.listItems.forEach((function($liItem, idx) {
44831
- if (idx === presentIndex + 1) {
44832
- prev_2.nativeElement.before($liItem.nativeElement);
44833
- _this.lastSelectedItem.nativeElement.focus();
44834
- var arr = _this.listItems.toArray();
44835
- var temp = arr[presentIndex + 1];
44836
- arr[presentIndex + 1] = arr[presentIndex];
44837
- arr[presentIndex] = temp;
44838
- _this.listItems.reset(arr);
44839
- _this.currentIndex = idx + 1;
44840
- _this.ariaText = "selected ";
44841
- }
44842
- prev_2 = $liItem;
44843
- }));
44850
+ this.lastSelectedItem = this.getListItemByIndex(presentIndex);
44851
+ var nextElt = this.getListItemByIndex(presentIndex + 1);
44852
+ nextElt.nativeElement.after(this.lastSelectedItem.nativeElement);
44853
+ this.lastSelectedItem.nativeElement.focus();
44854
+ this.statePersistence.removeWidgetState(this, "selectedItem");
44855
+ var arr = this.listItems.toArray();
44856
+ _e = __read([ arr[presentIndex + 1], arr[presentIndex] ], 2), arr[presentIndex] = _e[0],
44857
+ arr[presentIndex + 1] = _e[1];
44858
+ this.listItems.reset(arr);
44859
+ this.currentIndex = presentIndex + 2;
44860
+ this.ariaText = "selected ";
44844
44861
  } else {
44845
44862
  presentIndex = presentIndex < listItems.length - 1 ? presentIndex + 1 : listItems.length - 1;
44846
44863
  this.lastSelectedItem = this.getListItemByIndex(presentIndex);
@@ -44862,11 +44879,10 @@
44862
44879
  this.isListElementMovable = !this.isListElementMovable;
44863
44880
  this.onItemClick($event, this.getListItemByIndex(presentIndex));
44864
44881
  this.currentIndex = presentIndex + 1;
44865
- var name = this.getListItemByIndex(presentIndex).item.name;
44866
44882
  if (this.isListElementMovable) {
44867
- this.ariaText = name + " grabbed, current position ";
44883
+ this.ariaText = "Item " + this.currentIndex + " grabbed, current position ";
44868
44884
  } else {
44869
- this.ariaText = name + " dropped, final position ";
44885
+ this.ariaText = "Item " + this.currentIndex + " dropped, final position ";
44870
44886
  }
44871
44887
  }
44872
44888
  };
@@ -45104,7 +45120,7 @@
45104
45120
  type: core$1.Component,
45105
45121
  args: [ {
45106
45122
  selector: "div[wmList]",
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',
45123
+ 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',
45108
45124
  providers: [ base.provideAsWidgetRef(ListComponent) ]
45109
45125
  } ]
45110
45126
  } ];
@@ -45724,6 +45740,7 @@
45724
45740
  _this.rowDef = {};
45725
45741
  _this.rowInstance = {};
45726
45742
  _this.fullFieldDefs = [];
45743
+ _this.variableInflight = true;
45727
45744
  _this.applyProps = new Map;
45728
45745
  _this.redraw = _.debounce(_this._redraw, 150);
45729
45746
  _this.debouncedHandleLoading = _.debounce(_this.handleLoading, 350);
@@ -46469,6 +46486,9 @@
46469
46486
  set: function(newValue) {
46470
46487
  var _a;
46471
46488
  this.isDataLoading = false;
46489
+ if (this.variableInflight && _.isEmpty(newValue)) {
46490
+ return;
46491
+ }
46472
46492
  this.variableInflight = false;
46473
46493
  if (this.gridOptions.isNavTypeScrollOrOndemand()) {
46474
46494
  _a = __read(this.paginationService.updateFieldsOnPagination(this, newValue), 2),
@@ -46922,6 +46942,9 @@
46922
46942
  };
46923
46943
  TableComponent.prototype.setGridData = function(serverData) {
46924
46944
  var data = this.filternullrecords ? this.removeEmptyRecords(serverData) : serverData;
46945
+ if (_.get(this.datasource, "category") === "wm.Variable") {
46946
+ this.variableInflight = false;
46947
+ }
46925
46948
  if (!this.variableInflight) {
46926
46949
  if (data && data.length === 0) {
46927
46950
  this.callDataGridMethod("setStatus", "nodata", this.nodatamessage);
@@ -47216,10 +47239,8 @@
47216
47239
  this.variableInflight = false;
47217
47240
  this.callDataGridMethod("setStatus", "nodata", this.nodatamessage);
47218
47241
  }
47219
- if (this.dataset) {
47220
- this.watchVariableDataSet(this.dataset);
47221
- this.onDataSourceChange();
47222
- }
47242
+ this.watchVariableDataSet(this.dataset);
47243
+ this.onDataSourceChange();
47223
47244
  break;
47224
47245
 
47225
47246
  case "dataset":
@@ -58397,40 +58418,36 @@
58397
58418
  var TabsAnimator = function(_super) {
58398
58419
  __extends(TabsAnimator, _super);
58399
58420
  function TabsAnimator(tabs) {
58400
- var e_1, _a;
58401
58421
  var _this = _super.call(this) || this;
58402
58422
  _this.tabs = tabs;
58403
58423
  _this._$el = $(_this.tabs.getNativeElement()).find(">.tab-content");
58404
- var childEls = _this._$el.find(">[wmTabPane]");
58405
- _this._noOfTabs = childEls.length;
58406
- var maxWidth = _this._noOfTabs * 100 + "%";
58407
- core.addClass(_this.tabs.getNativeElement(), "has-transition");
58408
- core.setCSSFromObj(_this._$el[0], {
58409
- maxWidth: maxWidth,
58410
- width: maxWidth
58411
- });
58412
- var width = 100 / _this._noOfTabs + "%";
58413
- try {
58414
- for (var _b = __values(Array.from(childEls)), _c = _b.next(); !_c.done; _c = _b.next()) {
58415
- var child = _c.value;
58416
- core.setCSS(child, "width", width);
58417
- }
58418
- } catch (e_1_1) {
58419
- e_1 = {
58420
- error: e_1_1
58421
- };
58422
- } finally {
58423
- try {
58424
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
58425
- } finally {
58426
- if (e_1) throw e_1.error;
58427
- }
58428
- }
58429
58424
  _this.init(_this._$el);
58430
58425
  return _this;
58431
58426
  }
58427
+ TabsAnimator.prototype.calibrate = function() {
58428
+ var activeTabIndex = this.tabs.getActiveTabIndex();
58429
+ var panes = this._$el.find(">.tab-pane");
58430
+ var activeTabVisibleIndex = 0;
58431
+ var noOfVisiblePanes = 0;
58432
+ var visiblePanes = [];
58433
+ panes.each((function(i, p) {
58434
+ if (!$(p).prop("hidden")) {
58435
+ noOfVisiblePanes++;
58436
+ if (i === activeTabIndex) {
58437
+ activeTabVisibleIndex = noOfVisiblePanes - 1;
58438
+ }
58439
+ visiblePanes.push(p);
58440
+ }
58441
+ return true;
58442
+ }));
58443
+ return {
58444
+ activeTabIndex: activeTabVisibleIndex,
58445
+ noOfTabs: noOfVisiblePanes,
58446
+ panes: visiblePanes
58447
+ };
58448
+ };
58432
58449
  TabsAnimator.prototype.bounds = function() {
58433
- 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;
58450
+ var _a = this.calibrate(), activeTabIndex = _a.activeTabIndex, noOfTabs = _a.noOfTabs, panes = _a.panes, w = $(panes[0]).width(), centerVal = -1 * activeTabIndex * w;
58434
58451
  this.clearContentFocus();
58435
58452
  return {
58436
58453
  strict: false,
@@ -58457,8 +58474,18 @@
58457
58474
  }
58458
58475
  };
58459
58476
  TabsAnimator.prototype.transitionTabIntoView = function() {
58460
- var activeTabIndex = this.tabs.getActiveTabIndex();
58461
- core.setCSS(this._$el[0], "transform", "translate3d(" + -1 * activeTabIndex / this._noOfTabs * 100 + "%, 0, 0)");
58477
+ var _a = this.calibrate(), activeTabIndex = _a.activeTabIndex, noOfTabs = _a.noOfTabs, panes = _a.panes;
58478
+ var maxWidth = noOfTabs * 100 + "%";
58479
+ core.setCSSFromObj(this._$el[0], {
58480
+ maxWidth: maxWidth,
58481
+ width: maxWidth
58482
+ });
58483
+ core.addClass(this.tabs.getNativeElement(), "has-transition");
58484
+ var width = 100 / noOfTabs + "%";
58485
+ panes.forEach((function(p) {
58486
+ core.setCSS(p, "width", width);
58487
+ }));
58488
+ core.setCSS(this._$el[0], "transform", "translate3d(" + -1 * activeTabIndex / noOfTabs * 100 + "%, 0, 0)");
58462
58489
  };
58463
58490
  TabsAnimator.prototype.onUpper = function($event) {
58464
58491
  this.tabs.prev($event);
@@ -58584,6 +58611,7 @@
58584
58611
  };
58585
58612
  TabPaneComponent.prototype.onPropertyChange = function(key, nv, ov) {
58586
58613
  var _this = this;
58614
+ var _a;
58587
58615
  if (key === "content") {
58588
58616
  if (this.isActive) {
58589
58617
  setTimeout((function() {
@@ -58594,6 +58622,10 @@
58594
58622
  this.nativeElement.hidden = !nv;
58595
58623
  if (this._isFirstLoad) {
58596
58624
  this.tabsRef.selectDefaultPaneByIndex(this.tabsRef.defaultpaneindex);
58625
+ } else if (!nv && this.isActive) {
58626
+ this.tabsRef.next();
58627
+ } else if (nv || !this.isActive) {
58628
+ (_a = this.tabsRef.tabsAnimator) === null || _a === void 0 ? void 0 : _a.transitionTabIntoView();
58597
58629
  }
58598
58630
  this._isFirstLoad = false;
58599
58631
  } else {
@@ -67549,10 +67581,10 @@
67549
67581
  }));
67550
67582
 
67551
67583
  (function(global, factory) {
67552
- typeof exports === "object" && typeof module !== "undefined" ? factory(exports, require("@angular/core"), require("@wm/core"), require("@wm/components/base"), require("@wm/components/page"), require("@wm/mobile/core"), require("@angular/common")) : typeof define === "function" && define.amd ? define("@wm/mobile/components/page", [ "exports", "@angular/core", "@wm/core", "@wm/components/base", "@wm/components/page", "@wm/mobile/core", "@angular/common" ], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self,
67584
+ typeof exports === "object" && typeof module !== "undefined" ? factory(exports, require("@angular/core"), require("@wm/core"), require("@wm/components/base"), require("ngx-bootstrap/modal"), require("@wm/components/page"), require("@wm/mobile/core"), require("@angular/common")) : typeof define === "function" && define.amd ? define("@wm/mobile/components/page", [ "exports", "@angular/core", "@wm/core", "@wm/components/base", "ngx-bootstrap/modal", "@wm/components/page", "@wm/mobile/core", "@angular/common" ], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self,
67553
67585
  factory((global.wm = global.wm || {}, global.wm.mobile = global.wm.mobile || {},
67554
- global.wm.mobile.components = global.wm.mobile.components || {}, global.wm.mobile.components.page = {}), global.ng.core, global.wm.core, global.wm.components.base, global.wm.components.page, global.wm.mobile.core, global.ng.common));
67555
- })(this, (function(exports, core$1, core, base, page, core$2, common) {
67586
+ global.wm.mobile.components = global.wm.mobile.components || {}, global.wm.mobile.components.page = {}), global.ng.core, global.wm.core, global.wm.components.base, global.modal, global.wm.components.page, global.wm.mobile.core, global.ng.common));
67587
+ })(this, (function(exports, core$1, core, base, modal, page, core$2, common) {
67556
67588
  "use strict";
67557
67589
  var PageContentLoaderComponent = function() {
67558
67590
  function PageContentLoaderComponent(el) {
@@ -67574,18 +67606,30 @@
67574
67606
  } ];
67575
67607
  };
67576
67608
  var MobilePageDirective = function() {
67577
- function MobilePageDirective(app, elRef, deviceService, page, navigationService) {
67609
+ function MobilePageDirective(app, elRef, modalService, deviceService, page, navigationService) {
67578
67610
  var _this = this;
67611
+ this.modalService = modalService;
67579
67612
  this.deviceService = deviceService;
67580
67613
  this.page = page;
67581
67614
  this.navigationService = navigationService;
67615
+ this.subscriptions = [];
67582
67616
  core.addClass(elRef.nativeElement, "mobile-app-page");
67583
67617
  this._$ele = $(elRef.nativeElement);
67584
67618
  page.subscribe("wmMobileTabbar:ready", (function() {
67585
67619
  return _this._$ele.addClass("has-tabbar");
67586
67620
  }));
67621
+ var modalsOpened = [];
67622
+ this.subscriptions = [ modalService.onShown.subscribe((function(_a) {
67623
+ var id = _a.id;
67624
+ id && modalsOpened.push(id);
67625
+ })), modalService.onHidden.subscribe((function(_a) {
67626
+ var id = _a.id;
67627
+ id && _.remove(modalsOpened, id);
67628
+ })) ];
67587
67629
  this._backBtnListenerDestroyer = deviceService.onBackButtonTap((function($event) {
67588
- if (app.landingPageName === app.activePageName) {
67630
+ if (modalsOpened.length > 0) {
67631
+ modalService.hide(modalsOpened.pop());
67632
+ } else if (app.landingPageName === app.activePageName) {
67589
67633
  window.navigator["app"].exitApp();
67590
67634
  } else {
67591
67635
  _this.navigationService.goToPrevious();
@@ -67594,6 +67638,9 @@
67594
67638
  }));
67595
67639
  }
67596
67640
  MobilePageDirective.prototype.ngOnDestroy = function() {
67641
+ this.subscriptions.map((function(s) {
67642
+ return s.unsubscribe();
67643
+ }));
67597
67644
  this._backBtnListenerDestroyer();
67598
67645
  };
67599
67646
  return MobilePageDirective;
@@ -67609,6 +67656,8 @@
67609
67656
  type: core.App
67610
67657
  }, {
67611
67658
  type: core$1.ElementRef
67659
+ }, {
67660
+ type: modal.BsModalService
67612
67661
  }, {
67613
67662
  type: core$2.DeviceService
67614
67663
  }, {