@wavemaker/app-runtime-wm-build 11.4.2-rc.5405 → 11.4.2-rc.5568

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.
@@ -17071,7 +17071,9 @@
17071
17071
  };
17072
17072
  BaseFormCustomComponent.prototype.invokeOnChange = function(value, $event, valid) {
17073
17073
  this._onChange(value);
17074
- _super.prototype.invokeOnChange.call(this, value, $event);
17074
+ if (valid) {
17075
+ _super.prototype.invokeOnChange.call(this, value, $event);
17076
+ }
17075
17077
  };
17076
17078
  BaseFormCustomComponent.prototype.invokeOnTouched = function($event) {
17077
17079
  this._onTouched();
@@ -22705,7 +22707,7 @@
22705
22707
  type: core$1.Component,
22706
22708
  args: [ {
22707
22709
  selector: "[wmSearch]",
22708
- template: '<ng-template #customItemTemplate let-model="item" let-index="index" let-query="query" let-match="match">\n \x3c!-- Default item template --\x3e\n <a *ngIf="!content">\n <img *ngIf="model.imgSrc" [src]="model.imgSrc" alt="Search" [style.width]="imagewidth">\n <span [title]="model.label" [innerHtml]="highlight(match, query) || model.label"></span>\n </a>\n \x3c!-- Custom partial template --\x3e\n <a *ngIf="content" [ngClass]="{customTemplate: content}" partialContainer [wmItemTemplate]="content" [userComponentParams]="match.item">\n <div partial-container-target></div>\n </a>\n</ng-template>\n\n<ng-template #customListTemplate let-matches="matches" let-itemTemplate="itemTemplate" let-query="query">\n <ul #ulElement class="app-search dropdown-menu" scrollable>\n <li #liElements *ngFor="let match of matches" [ngClass]="{active: typeaheadContainer && typeaheadContainer.isActive(match), \'list-group-header\': match && match.isHeader()}"\n (mouseenter)="typeaheadContainer.selectActive(match);"\n (click)="match && !match.isHeader() && typeaheadContainer.selectMatch(match, $event); $typeaheadEvent = $event; notifySubscriber();">\n \x3c!-- itemTemplate comes from the <input> --\x3e\n <h4 *ngIf="match.isHeader()" class="group-title">{{match.value}}</h4>\n <ng-container *ngIf="!match.isHeader()" [ngTemplateOutlet]="itemTemplate"\n [ngTemplateOutletContext]="{item: match.item, index: i, match: match, query: query}">\n </ng-container>\n </li>\n <div class="status" [hidden]="_loadingItems || !(datacompletemsg && dataProvider.isLastPage)">\n <span [textContent]="datacompletemsg"></span>\n </div>\n <div class="status" [hidden]="!_loadingItems">\n <i class="fa fa-circle-o-notch fa-spin"></i>\n <span [textContent]="loadingdatamsg"></span>\n </div>\n </ul>\n</ng-template>\n\n\x3c!--This template is for search inside mobile navbar.--\x3e\n<ng-container *ngIf="navsearchbar; else searchTemplate">\n <input [title]="query || \'\'" type="text" class="app-textbox form-control list-of-objs app-search-input" [placeholder]="placeholder || \'\'"\n focus-target\n container="body"\n [disabled]="disabled"\n autocomplete="off"\n [(ngModel)]="query"\n [readonly]="readonly"\n [disabled]="disabled"\n [typeahead]="typeaheadDataSource"\n [typeaheadWaitMs]="debouncetime"\n [typeaheadItemTemplate]="customItemTemplate"\n [optionsListTemplate]="customListTemplate"\n (input)="onInputChange($event)"\n (keydown)="listenQuery = true"\n (keydown.enter)="$typeaheadEvent = $event;handleEnterEvent($event)"\n (keydown.arrowdown)="selectNext($event)"\n (blur)="invokeOnTouched($event)"\n (click)="handleFocus($event);"\n (focus)="_unsubscribeDv = false; listenQuery = true; handleFocus($event); invokeOnFocus($event);"\n (focusout)="onFocusOut()"\n [typeaheadMinLength]="minchars"\n [typeaheadOptionsLimit]="limit"\n (typeaheadLoading)="_loadingItems"\n (typeaheadOnSelect)="typeaheadOnSelect($event)"\n typeaheadOptionField="label"\n [typeaheadGroupField]="groupby ? \'groupby\' : null"\n [typeaheadAsync]="true"\n [typeaheadScrollable]="true"\n [adaptivePosition]="true"\n [typeaheadOptionsInScrollableView]="optionslimitinscrollableview"\n [dropup]="dropup"\n [tabindex]="tabindex"\n [attr.name]="name"\n [attr.aria-label]="hint || \'Search field\'"/>\n <i class="btn-close wi wi-cancel" [hidden]="!showClosebtn" (click)="clearSearch($event);"></i>\n</ng-container>\n\x3c!--This template is for both web and fullscreen mode in mobile.--\x3e\n<ng-template #searchTemplate>\n <span class="wi wi-arrow-left form-control-feedback back-btn" aria-hidden="true" (click)="closeSearch()"></span>\n <span class="sr-only">Back button</span>\n <input [title]="query || \'\'" type="text" class="app-textbox form-control list-of-objs app-search-input" [placeholder]="placeholder || \'\'"\n focus-target\n [container]="containerTarget || \'body\'"\n [disabled]="disabled"\n autocomplete="off"\n [(ngModel)]="query"\n [readonly]="readonly"\n [typeahead]="typeaheadDataSource"\n [typeaheadWaitMs]="debouncetime"\n [typeaheadItemTemplate]="customItemTemplate"\n [optionsListTemplate]="customListTemplate"\n (input)="onInputChange($event)"\n (keydown)="listenQuery = true"\n (keydown.enter)="$typeaheadEvent = $event;handleEnterEvent($event)"\n (keydown.arrowdown)="selectNext($event)"\n (blur)="invokeOnTouched($event); onFocusOut()"\n (click)="handleFocus($event);"\n (focus)="_unsubscribeDv = false; listenQuery = true; handleFocus($event); invokeOnFocus($event)"\n [typeaheadMinLength]="minchars"\n [typeaheadOptionsLimit]="limit"\n (typeaheadLoading)="_loadingItems"\n (typeaheadOnSelect)="typeaheadOnSelect($event)"\n typeaheadOptionField="label"\n [typeaheadGroupField]="groupby ? \'groupby\' : null"\n [typeaheadAsync]="true"\n [typeaheadScrollable]="true"\n [adaptivePosition]="true"\n [typeaheadOptionsInScrollableView]="optionslimitinscrollableview"\n [tabindex]="tabindex"\n [dropup]="dropup"\n [attr.name]="name"\n [attr.aria-label]="hint || \'Search field\'">\n <input class="model-holder" ng-model="proxyModel" ng-required="required" tabindex="-1" aria-hidden="true">\n <span *ngIf="_loadingItems" aria-hidden="true" class="fa fa-circle-o-notch fa-spin form-control-feedback"></span>\n <span class="wi wi-close form-control-feedback clear-btn" [ngClass]="{\'show-btn\': isQueryEntered()}" (click)="clearSearch($event, true)"></span>\n <span class="sr-only">Clear button</span>\n <span *ngIf="showsearchicon" class="input-group-addon" aria-label="search icon" [ngClass]="{\'disabled\': disabled}">\n <form>\n <button title="Search" [disabled]="disabled" class="app-search-button wm-sl-l sl-search" type="submit"\n (click)="onSearchSelect($event)"></button>\n </form>\n </span>\n</ng-template>\n',
22710
+ template: '<ng-template #customItemTemplate let-model="item" let-index="index" let-query="query" let-match="match">\n \x3c!-- Default item template --\x3e\n <a *ngIf="!content">\n <img *ngIf="model.imgSrc" [src]="model.imgSrc" alt="Search" [style.width]="imagewidth">\n <span [title]="model.label" [innerHtml]="highlight(match, query) || model.label"></span>\n </a>\n \x3c!-- Custom partial template --\x3e\n <a *ngIf="content" [ngClass]="{customTemplate: content}" partialContainer [wmItemTemplate]="content" [userComponentParams]="match.item">\n <div partial-container-target></div>\n </a>\n</ng-template>\n\n<ng-template #customListTemplate let-matches="matches" let-itemTemplate="itemTemplate" let-query="query">\n <ul #ulElement class="app-search dropdown-menu" scrollable>\n <li #liElements *ngFor="let match of matches" [ngClass]="{active: typeaheadContainer && typeaheadContainer.isActive(match), \'list-group-header\': match && match.isHeader()}"\n (mouseenter)="typeaheadContainer.selectActive(match);"\n (click)="match && !match.isHeader() && typeaheadContainer.selectMatch(match, $event); $typeaheadEvent = $event; notifySubscriber();">\n \x3c!-- itemTemplate comes from the <input> --\x3e\n <h4 *ngIf="match.isHeader()" class="group-title">{{match.value}}</h4>\n <ng-container *ngIf="!match.isHeader()" [ngTemplateOutlet]="itemTemplate"\n [ngTemplateOutletContext]="{item: match.item, index: i, match: match, query: query}">\n </ng-container>\n </li>\n <div class="status" [hidden]="_loadingItems || !(datacompletemsg && dataProvider.isLastPage)">\n <span [textContent]="datacompletemsg"></span>\n </div>\n <div class="status" [hidden]="!_loadingItems">\n <i class="fa fa-circle-o-notch fa-spin"></i>\n <span [textContent]="loadingdatamsg"></span>\n </div>\n </ul>\n</ng-template>\n\n\x3c!--This template is for search inside mobile navbar.--\x3e\n<ng-container *ngIf="navsearchbar; else searchTemplate">\n <input [title]="query || \'\'" type="text" class="app-textbox form-control list-of-objs app-search-input" [placeholder]="placeholder || \'\'"\n focus-target\n container="body"\n [disabled]="disabled"\n autocomplete="off"\n [(ngModel)]="query"\n [readonly]="readonly"\n [disabled]="disabled"\n [typeahead]="typeaheadDataSource"\n [typeaheadWaitMs]="debouncetime"\n [typeaheadItemTemplate]="customItemTemplate"\n [optionsListTemplate]="customListTemplate"\n (input)="onInputChange($event)"\n (keydown)="listenQuery = true"\n (keydown.enter)="$typeaheadEvent = $event;handleEnterEvent($event)"\n (keydown.arrowdown)="selectNext($event)"\n (blur)="invokeOnTouched($event)"\n (click)="handleFocus($event);"\n (focus)="_unsubscribeDv = false; listenQuery = true; handleFocus($event); invokeOnFocus($event);"\n (focusout)="onFocusOut()"\n [typeaheadMinLength]="minchars"\n [typeaheadOptionsLimit]="limit"\n (typeaheadLoading)="_loadingItems"\n (typeaheadOnSelect)="typeaheadOnSelect($event)"\n typeaheadOptionField="label"\n [typeaheadGroupField]="groupby ? \'groupby\' : null"\n [typeaheadAsync]="true"\n [typeaheadScrollable]="true"\n [typeaheadOptionsInScrollableView]="optionslimitinscrollableview"\n [dropup]="dropup"\n [tabindex]="tabindex"\n [attr.name]="name"\n [attr.aria-label]="hint || \'Search field\'"/>\n <i class="btn-close wi wi-cancel" [hidden]="!showClosebtn" (click)="clearSearch($event);"></i>\n</ng-container>\n\x3c!--This template is for both web and fullscreen mode in mobile.--\x3e\n<ng-template #searchTemplate>\n <span class="wi wi-arrow-left form-control-feedback back-btn" aria-hidden="true" (click)="closeSearch()"></span>\n <span class="sr-only">Back button</span>\n <input [title]="query || \'\'" type="text" class="app-textbox form-control list-of-objs app-search-input" [placeholder]="placeholder || \'\'"\n focus-target\n [container]="containerTarget || \'body\'"\n [disabled]="disabled"\n autocomplete="off"\n [(ngModel)]="query"\n [readonly]="readonly"\n [typeahead]="typeaheadDataSource"\n [typeaheadWaitMs]="debouncetime"\n [typeaheadItemTemplate]="customItemTemplate"\n [optionsListTemplate]="customListTemplate"\n (input)="onInputChange($event)"\n (keydown)="listenQuery = true"\n (keydown.enter)="$typeaheadEvent = $event;handleEnterEvent($event)"\n (keydown.arrowdown)="selectNext($event)"\n (blur)="invokeOnTouched($event); onFocusOut()"\n (click)="handleFocus($event);"\n (focus)="_unsubscribeDv = false; listenQuery = true; handleFocus($event); invokeOnFocus($event)"\n [typeaheadMinLength]="minchars"\n [typeaheadOptionsLimit]="limit"\n (typeaheadLoading)="_loadingItems"\n (typeaheadOnSelect)="typeaheadOnSelect($event)"\n typeaheadOptionField="label"\n [typeaheadGroupField]="groupby ? \'groupby\' : null"\n [typeaheadAsync]="true"\n [typeaheadScrollable]="true"\n [typeaheadOptionsInScrollableView]="optionslimitinscrollableview"\n [tabindex]="tabindex"\n [dropup]="dropup"\n [attr.name]="name"\n [attr.aria-label]="hint || \'Search field\'">\n <input class="model-holder" ng-model="proxyModel" ng-required="required" tabindex="-1" aria-hidden="true">\n <span *ngIf="_loadingItems" aria-hidden="true" class="fa fa-circle-o-notch fa-spin form-control-feedback"></span>\n <span class="wi wi-close form-control-feedback clear-btn" [ngClass]="{\'show-btn\': isQueryEntered()}" (click)="clearSearch($event, true)"></span>\n <span class="sr-only">Clear button</span>\n <span *ngIf="showsearchicon" class="input-group-addon" aria-label="search icon" [ngClass]="{\'disabled\': disabled}">\n <form>\n <button title="Search" [disabled]="disabled" class="app-search-button wm-sl-l sl-search" type="submit"\n (click)="onSearchSelect($event)"></button>\n </form>\n </span>\n</ng-template>\n',
22709
22711
  providers: [ base.provideAs(SearchComponent, forms.NG_VALUE_ACCESSOR, true), base.provideAs(SearchComponent, forms.NG_VALIDATORS, true), base.provideAsWidgetRef(SearchComponent) ]
22710
22712
  } ]
22711
22713
  } ];
@@ -28148,7 +28150,7 @@
28148
28150
  }, base.PROP_BOOLEAN) ], [ "clearbutton", Object.assign({
28149
28151
  value: true
28150
28152
  }, base.PROP_BOOLEAN) ], [ "adaptiveposition", Object.assign({
28151
- value: true
28153
+ value: false
28152
28154
  }, base.PROP_BOOLEAN) ], [ "todaybuttonlabel", Object.assign({
28153
28155
  value: "LABEL_TODAY_DATE"
28154
28156
  }, base.PROP_STRING) ], [ "clearbuttonlabel", Object.assign({
@@ -28442,7 +28444,7 @@
28442
28444
  }, base.PROP_BOOLEAN) ], [ "clearbutton", Object.assign({
28443
28445
  value: true
28444
28446
  }, base.PROP_BOOLEAN) ], [ "adaptiveposition", Object.assign({
28445
- value: true
28447
+ value: false
28446
28448
  }, base.PROP_BOOLEAN) ], [ "todaybuttonlabel", Object.assign({
28447
28449
  value: "LABEL_TODAY_DATE"
28448
28450
  }, base.PROP_STRING) ], [ "clearbuttonlabel", Object.assign({
@@ -33769,7 +33771,6 @@
33769
33771
  core.$appDigest();
33770
33772
  };
33771
33773
  MenuComponent.prototype.onHide = function() {
33772
- this.$element.find(">.dropdown-toggle").focus();
33773
33774
  this.$element.find("li").removeClass("open");
33774
33775
  this._selectFirstItem = false;
33775
33776
  core.$appDigest();
@@ -38073,9 +38074,10 @@
38073
38074
  value;
38074
38075
  }
38075
38076
  var registerProps = function() {
38076
- base.register("wm-dialog", new Map([ [ "animation", base.PROP_STRING ], [ "class", base.PROP_STRING ], [ "closable", Object.assign({
38077
- value: true
38078
- }, base.PROP_BOOLEAN) ], [ "iconclass", {
38077
+ base.register("wm-dialog", new Map([ [ "animation", base.PROP_STRING ], [ "class", base.PROP_STRING ], [ "closable", {
38078
+ value: true,
38079
+ PROP_BOOLEAN: base.PROP_BOOLEAN
38080
+ } ], [ "iconclass", {
38079
38081
  value: "wi wi-file-text",
38080
38082
  PROP_STRING: base.PROP_STRING
38081
38083
  } ], [ "iconheight", base.PROP_STRING ], [ "iconmargin", base.PROP_STRING ], [ "iconurl", base.PROP_STRING ], [ "iconwidth", base.PROP_STRING ], [ "modal", Object.assign({
@@ -38110,7 +38112,7 @@
38110
38112
  _this = _super.call(this, inj, WIDGET_INFO, {
38111
38113
  class: DIALOG_CLS + " " + (dialogClass || ""),
38112
38114
  backdrop: backdrop,
38113
- keyboard: core.toBoolean(closable) ? true : !core.toBoolean(modal)
38115
+ keyboard: !core.toBoolean(modal)
38114
38116
  }) || this;
38115
38117
  return _this;
38116
38118
  }
@@ -46913,9 +46915,6 @@
46913
46915
  }
46914
46916
  } else {
46915
46917
  this.resetPageNavigation();
46916
- if (newVal === "" || newVal === undefined || _.get(this.datasource, "category") === "wm.Variable") {
46917
- this.variableInflight = false;
46918
- }
46919
46918
  if (!this.variableInflight) {
46920
46919
  this.callDataGridMethod("setStatus", "nodata", this.nodatamessage);
46921
46920
  }
@@ -47055,7 +47054,7 @@
47055
47054
  };
47056
47055
  TableComponent.prototype.setGridData = function(serverData) {
47057
47056
  var data = this.filternullrecords ? this.removeEmptyRecords(serverData) : serverData;
47058
- if (_.get(this.datasource, "category") === "wm.Variable" || _.get(this.datasource, "category") === undefined) {
47057
+ if (_.get(this.datasource, "category") === "wm.Variable") {
47059
47058
  this.variableInflight = false;
47060
47059
  }
47061
47060
  if (!this.variableInflight) {
@@ -58673,14 +58672,14 @@
58673
58672
  $event: $event
58674
58673
  });
58675
58674
  };
58676
- TabPaneComponent.prototype.select = function($event) {
58675
+ TabPaneComponent.prototype.select = function($event, isKeyBoardEvent) {
58677
58676
  if (this.isActive || this.disabled) {
58678
58677
  return;
58679
58678
  }
58680
58679
  this.isActive = true;
58681
58680
  this.$lazyLoad();
58682
58681
  this.redrawChildren();
58683
- this.notifyParent($event);
58682
+ this.notifyParent($event, isKeyBoardEvent);
58684
58683
  };
58685
58684
  TabPaneComponent.prototype.tabpaneHeaderClick = function($event, paneIndex) {
58686
58685
  this.invokeEventCallback("headerclick", {
@@ -58718,8 +58717,8 @@
58718
58717
  }
58719
58718
  }), 100);
58720
58719
  };
58721
- TabPaneComponent.prototype.notifyParent = function(evt) {
58722
- this.tabsRef.notifyChange(this, evt);
58720
+ TabPaneComponent.prototype.notifyParent = function(evt, isKeyBoardEvent) {
58721
+ this.tabsRef.notifyChange(this, evt, isKeyBoardEvent);
58723
58722
  };
58724
58723
  TabPaneComponent.prototype.handleSwipeLeft = function() {
58725
58724
  this.tabsRef.next();
@@ -58917,7 +58916,7 @@
58917
58916
  paneRef.remove();
58918
58917
  }
58919
58918
  };
58920
- TabsComponent.prototype.notifyChange = function(paneRef, evt) {
58919
+ TabsComponent.prototype.notifyChange = function(paneRef, evt, isKeyBoardEvent) {
58921
58920
  if (!this.isSelectableTab(paneRef)) {
58922
58921
  return;
58923
58922
  }
@@ -58949,7 +58948,7 @@
58949
58948
  if (!evt || !headerElement || !headerElement.length) {
58950
58949
  headerElement = this.nativeElement.querySelector("li[data-paneid=" + paneRef.widgetId + "]");
58951
58950
  var insideTabs = !!$(headerElement).closest(".app-tabs").parent().closest(".app-tabs").length;
58952
- if (!insideTabs) {
58951
+ if (!insideTabs && isKeyBoardEvent) {
58953
58952
  $(headerElement).children().focus();
58954
58953
  }
58955
58954
  }
@@ -59021,16 +59020,16 @@
59021
59020
  }
59022
59021
  }
59023
59022
  };
59024
- TabsComponent.prototype.next = function($event) {
59023
+ TabsComponent.prototype.next = function($event, isKeyBoardEvent) {
59025
59024
  var pane = this.getSelectableTabAfterIndex(this.getActiveTabIndex());
59026
59025
  if (pane) {
59027
- pane.select($event);
59026
+ pane.select($event, isKeyBoardEvent);
59028
59027
  }
59029
59028
  };
59030
- TabsComponent.prototype.prev = function($event) {
59029
+ TabsComponent.prototype.prev = function($event, isKeyBoardEvent) {
59031
59030
  var pane = this.getSelectableTabBeforeIndex(this.getActiveTabIndex());
59032
59031
  if (pane) {
59033
- pane.select($event);
59032
+ pane.select($event, isKeyBoardEvent);
59034
59033
  }
59035
59034
  };
59036
59035
  TabsComponent.prototype.selectDefaultPaneByIndex = function(index) {
@@ -59119,13 +59118,13 @@
59119
59118
  switch (event.key) {
59120
59119
  case "ArrowLeft":
59121
59120
  case "ArrowUp":
59122
- this.prev();
59121
+ this.prev(null, true);
59123
59122
  event.preventDefault();
59124
59123
  break;
59125
59124
 
59126
59125
  case "ArrowRight":
59127
59126
  case "ArrowDown":
59128
- this.next();
59127
+ this.next(null, true);
59129
59128
  event.preventDefault();
59130
59129
  break;
59131
59130