@wavemaker/app-runtime-wm-build 11.4.0-next.140413 → 11.4.0-next.140415

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);
@@ -27371,6 +27392,7 @@
27371
27392
  };
27372
27393
  BaseDateTimeComponent.prototype.setActiveDateFocus = function(newDate, isMouseEvent) {
27373
27394
  var _this = this;
27395
+ this.setNextData(newDate);
27374
27396
  var activeMonth = this.activeDate.getMonth();
27375
27397
  if (!isMouseEvent) {
27376
27398
  if (newDate.getMonth() < activeMonth) {
@@ -27452,8 +27474,8 @@
27452
27474
  _this.setFocusForMonthOrDay();
27453
27475
  }
27454
27476
  }));
27455
- datePickerHead.find(".next").attr("aria-label", "Next Month " + this.next.fullMonth + " " + this.next.date.getFullYear());
27456
- datePickerHead.find(".previous").attr("aria-label", "Previous Month " + this.prev.fullMonth + " " + this.prev.date.getFullYear());
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());
27457
27479
  };
27458
27480
  BaseDateTimeComponent.prototype.setFocusForMonthOrDay = function() {
27459
27481
  var activeMonthOrYear = $(".bs-datepicker-head .current").first().text();
@@ -27519,14 +27541,14 @@
27519
27541
  this.loadDays();
27520
27542
  this.setActiveDateFocus(this.activeDate);
27521
27543
  };
27544
+ BaseDateTimeComponent.prototype.setNextData = function(nextDate) {
27545
+ this.next = this.getMonth(nextDate, 1);
27546
+ this.prev = this.getMonth(nextDate, -1);
27547
+ };
27522
27548
  BaseDateTimeComponent.prototype.loadDays = function() {
27523
27549
  var _this = this;
27524
27550
  setTimeout((function() {
27525
27551
  $("[bsdatepickerdaydecorator]").not(".is-other-month").attr("tabindex", "0");
27526
- if (_this.clicked === false) {
27527
- _this.next = _this.getMonth(_this.activeDate, 1);
27528
- _this.prev = _this.getMonth(_this.activeDate, -1);
27529
- }
27530
27552
  _this.addKeyBoardEventsForDays();
27531
27553
  _this.addDatepickerMouseEvents();
27532
27554
  }));
@@ -27641,6 +27663,7 @@
27641
27663
  };
27642
27664
  BaseDateTimeComponent.prototype.setActiveMonthFocus = function(newDate, isMoouseEvent) {
27643
27665
  var _this = this;
27666
+ this.setNextData(newDate);
27644
27667
  var newMonth = months[newDate.getMonth()];
27645
27668
  if (!isMoouseEvent) {
27646
27669
  if (newDate.getFullYear() < this.activeDate.getFullYear()) {
@@ -28277,7 +28300,7 @@
28277
28300
  type: core.Component,
28278
28301
  args: [ {
28279
28302
  selector: "[wmDate]",
28280
- 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',
28281
28304
  providers: [ base.provideAs(DateComponent, forms.NG_VALUE_ACCESSOR, true), base.provideAs(DateComponent, forms.NG_VALIDATORS, true), base.provideAsWidgetRef(DateComponent) ]
28282
28305
  } ]
28283
28306
  } ];
@@ -33596,9 +33619,10 @@
33596
33619
  };
33597
33620
  var MenuComponent = function(_super) {
33598
33621
  __extends(MenuComponent, _super);
33599
- function MenuComponent(inj, route, userDefinedExecutionContext, bsDropdown, parentNav, selectEventCB) {
33622
+ function MenuComponent(inj, route, app, userDefinedExecutionContext, bsDropdown, parentNav, selectEventCB) {
33600
33623
  var _this = _super.call(this, inj, WIDGET_CONFIG$1) || this;
33601
33624
  _this.route = route;
33625
+ _this.app = app;
33602
33626
  _this.userDefinedExecutionContext = userDefinedExecutionContext;
33603
33627
  _this.bsDropdown = bsDropdown;
33604
33628
  _this.parentNav = parentNav;
@@ -33612,6 +33636,9 @@
33612
33636
  }
33613
33637
  var datasetSubscription = _this.nodes$.subscribe((function() {
33614
33638
  if (!_.isEmpty(_this.nodes)) {
33639
+ if (base.hasLinkToCurrentPage(_this.nodes, _this.route.url)) {
33640
+ core.addClass(_this.nativeElement.querySelector(".dropdown-toggle"), "active");
33641
+ }
33615
33642
  if (_this.parentNav) {
33616
33643
  return;
33617
33644
  }
@@ -33686,26 +33713,22 @@
33686
33713
  }
33687
33714
  $event.preventDefault();
33688
33715
  };
33689
- MenuComponent.prototype.hasLinkToCurrentPage = function(nodes) {
33690
- var _this = this;
33691
- return nodes.some((function(node) {
33692
- if (base.isActiveNavItem(node.link, _this.route.url)) {
33693
- return true;
33694
- }
33695
- if (node.children) {
33696
- return _this.hasLinkToCurrentPage(node.children);
33697
- }
33698
- }));
33699
- };
33700
33716
  MenuComponent.prototype.resetNodes = function() {
33701
33717
  _super.prototype.resetNodes.call(this);
33702
- 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) {
33703
33719
  this.bsDropdown.show();
33704
33720
  }
33705
33721
  };
33706
33722
  MenuComponent.prototype.ngOnInit = function() {
33723
+ var _this = this;
33707
33724
  _super.prototype.ngOnInit.call(this);
33708
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
+ }));
33709
33732
  };
33710
33733
  MenuComponent.prototype.onPropertyChange = function(key, nv, ov) {
33711
33734
  if (key === "tabindex") {
@@ -33776,6 +33799,8 @@
33776
33799
  type: core$1.Injector
33777
33800
  }, {
33778
33801
  type: router.Router
33802
+ }, {
33803
+ type: core.App
33779
33804
  }, {
33780
33805
  type: core.UserDefinedExecutionContext
33781
33806
  }, {
@@ -33893,8 +33918,9 @@
33893
33918
  VERTICAL: "vertical"
33894
33919
  };
33895
33920
  var MenuDropdownItemComponent = function() {
33896
- function MenuDropdownItemComponent(menuRef, userDefinedExecutionContext, parentNav, elRef) {
33921
+ function MenuDropdownItemComponent(app, menuRef, userDefinedExecutionContext, parentNav, elRef) {
33897
33922
  var _this = this;
33923
+ this.app = app;
33898
33924
  this.menuRef = menuRef;
33899
33925
  this.userDefinedExecutionContext = userDefinedExecutionContext;
33900
33926
  this.parentNav = parentNav;
@@ -33920,10 +33946,14 @@
33920
33946
  this.menualign = menuAlignClass[this.menuRef.menualign] || menuAlignClass["pull-left"];
33921
33947
  }
33922
33948
  MenuDropdownItemComponent.prototype.ngOnInit = function() {
33949
+ var _this = this;
33923
33950
  if (this.parentNav) {
33924
- if (base.isActiveNavItem(this.item.link, this.menuRef.route.url)) {
33951
+ if (base.hasLinkToCurrentPage([ this.item ], this.menuRef.route.url)) {
33925
33952
  core.addClass(this.nativeElement, "active");
33926
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
+ }));
33927
33957
  }
33928
33958
  };
33929
33959
  MenuDropdownItemComponent.prototype.getInitialKeyMovements = function() {
@@ -33992,6 +34022,11 @@
33992
34022
  $event.stopPropagation();
33993
34023
  }
33994
34024
  };
34025
+ MenuDropdownItemComponent.prototype.ngOnDestroy = function() {
34026
+ if (this.highlightActiveLinkSubscription) {
34027
+ this.highlightActiveLinkSubscription();
34028
+ }
34029
+ };
33995
34030
  return MenuDropdownItemComponent;
33996
34031
  }();
33997
34032
  MenuDropdownItemComponent.decorators = [ {
@@ -34003,6 +34038,8 @@
34003
34038
  } ];
34004
34039
  MenuDropdownItemComponent.ctorParameters = function() {
34005
34040
  return [ {
34041
+ type: core.App
34042
+ }, {
34006
34043
  type: MenuComponent
34007
34044
  }, {
34008
34045
  type: core.UserDefinedExecutionContext
@@ -35694,6 +35731,8 @@
35694
35731
  }));
35695
35732
  var popoverStartBtn = popoverContainer.querySelector(".popover-start");
35696
35733
  var popoverEndBtn = popoverContainer.querySelector(".popover-end");
35734
+ popoverStartBtn.setAttribute("aria-hidden", "true");
35735
+ popoverEndBtn.setAttribute("aria-hidden", "true");
35697
35736
  popoverStartBtn.onkeydown = function(event) {
35698
35737
  var action = _this.keyEventPlugin.constructor.getEventFullKey(event);
35699
35738
  if (action === "shift.tab") {
@@ -36441,6 +36480,10 @@
36441
36480
  Object.assign(this.context, initState);
36442
36481
  this.modalOptions.ariaLabelledBy = this.titleId;
36443
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
+ }
36444
36487
  };
36445
36488
  BaseDialog.prototype.close = function() {
36446
36489
  if (this.dialogRef) {
@@ -42338,7 +42381,7 @@
42338
42381
  }
42339
42382
  this.isDisableCurrent = isCurrentPageFirst && isCurrentPageLast;
42340
42383
  if (this.dataset && this.dataset.length && this.isDisableNext && this.parent.onDemandLoad && this.parent.widgetType === "wm-table") {
42341
- this.parent.callDataGridMethod("hideLoadingIndicator", this.isDisableNext, false);
42384
+ this.parent.callDataGridMethod("hideLoadingIndicator", this.isDisableNext, this.parent.infScroll);
42342
42385
  }
42343
42386
  };
42344
42387
  PaginationComponent.prototype.isDataSourceHasPaging = function() {
@@ -44707,7 +44750,7 @@
44707
44750
  ListComponent.prototype.handleKeyDown = function($event, action) {
44708
44751
  var _this = this;
44709
44752
  $event.stopPropagation();
44710
- 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)) {
44711
44754
  $event.preventDefault();
44712
44755
  }
44713
44756
  var listItems = this.listItems;
@@ -45061,7 +45104,7 @@
45061
45104
  type: core$1.Component,
45062
45105
  args: [ {
45063
45106
  selector: "div[wmList]",
45064
- 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',
45065
45108
  providers: [ base.provideAsWidgetRef(ListComponent) ]
45066
45109
  } ]
45067
45110
  } ];
@@ -45576,6 +45619,10 @@
45576
45619
  value: "No data found."
45577
45620
  }, base.PROP_STRING) ], [ "ondemandmessage", Object.assign({
45578
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"
45579
45626
  }, base.PROP_STRING) ], [ "pagesize", base.PROP_NUMBER ], [ "radioselect", base.PROP_BOOLEAN ], [ "rowclass", base.PROP_STRING ], [ "rowngclass", base.PROP_STRING ], [ "searchlabel", Object.assign({
45580
45627
  value: "Search"
45581
45628
  }, base.PROP_STRING) ], [ "show", Object.assign({
@@ -45656,6 +45703,7 @@
45656
45703
  _this.columns = {};
45657
45704
  _this.formfields = {};
45658
45705
  _this.enablesort = true;
45706
+ _this.showviewlessbutton = false;
45659
45707
  _this.primaryKey = [];
45660
45708
  _this.selectedItems = [];
45661
45709
  _this.selectedItemChange = new rxjs.Subject;
@@ -45698,6 +45746,7 @@
45698
45746
  data: [],
45699
45747
  colDefs: [],
45700
45748
  startRowIndex: 1,
45749
+ mode: "",
45701
45750
  sortInfo: {
45702
45751
  field: "",
45703
45752
  direction: ""
@@ -45728,6 +45777,10 @@
45728
45777
  isSearchTrigerred: false,
45729
45778
  isDatasetUpdated: false,
45730
45779
  isDataUpdatedByUser: false,
45780
+ showviewlessbutton: false,
45781
+ ondemandmessage: "",
45782
+ viewlessmessage: "",
45783
+ loadingdatamsg: "",
45731
45784
  isNextPageData: undefined,
45732
45785
  ACTIONS: {
45733
45786
  DELETE: "delete",
@@ -45752,6 +45805,14 @@
45752
45805
  getPageSize: function() {
45753
45806
  return _this.pagesize;
45754
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
+ },
45755
45816
  setDeletedRowIndex: function(id) {
45756
45817
  _this.setDataGridOption("deletedRowIndex", id);
45757
45818
  },
@@ -45786,7 +45847,9 @@
45786
45847
  }
45787
45848
  _this.callDataGridMethod("selectRows", _this.items);
45788
45849
  _this.selectedItems = _this.callDataGridMethod("getSelectedRows");
45789
- _this.selectedItemChange.next(_this.selectedItems);
45850
+ if (_this.selectedItems.length) {
45851
+ _this.selectedItemChange.next(_this.selectedItems);
45852
+ }
45790
45853
  if (_this._isPageSearch && _this.filterInfo) {
45791
45854
  _this.searchSortHandler(_this.filterInfo, undefined, "search");
45792
45855
  }
@@ -45795,9 +45858,11 @@
45795
45858
  onRowSelect: function(row, e) {
45796
45859
  _this.ngZone.run((function() {
45797
45860
  _this.selectedItems = _this.callDataGridMethod("getSelectedRows");
45798
- _this.selectedItemChange.next(_this.selectedItems);
45861
+ if (_this.selectedItems.length) {
45862
+ _this.selectedItemChange.next(_this.selectedItems);
45863
+ }
45799
45864
  var rowData = _this.addRowIndex(row);
45800
- 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) {
45801
45866
  var obj = {
45802
45867
  page: _this.dataNavigator.dn.currentPage,
45803
45868
  index: rowData.$index - 1
@@ -46237,9 +46302,14 @@
46237
46302
  _this.callDataGridMethod("addLoadMoreBtn", _this.ondemandmessage, _this.loadingdatamsg, (function($event) {
46238
46303
  _this.gridOptions.setIsNextPageData(true);
46239
46304
  _this.gridOptions.setIsDataUpdatedByUser(false);
46240
- _this.dataNavigator.navigatePage("next", $event);
46241
- _this.isDataLoading = true;
46242
- }));
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);
46243
46313
  },
46244
46314
  bindScrollEvt: function() {
46245
46315
  if (_this._gridData && _this._gridData.length && _this.infScroll) {
@@ -46517,6 +46587,10 @@
46517
46587
  this.gridOptions.securityUtils.pipeTransform = this.trustAsPipe;
46518
46588
  this.gridOptions.navigation = this.navigation;
46519
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;
46520
46594
  if (!_.isEmpty(this.gridData)) {
46521
46595
  this.gridOptions.data = core.getClonedObject(this.gridData);
46522
46596
  }
@@ -47254,6 +47328,11 @@
47254
47328
  if (nv) {
47255
47329
  this.$element.find(".on-demand-datagrid > a").text(nv);
47256
47330
  }
47331
+ this.gridOptions.ondemandmessage = nv;
47332
+ break;
47333
+
47334
+ case "viewlessmessage":
47335
+ this.gridOptions.viewlessmessage = nv;
47257
47336
  break;
47258
47337
 
47259
47338
  case "show":
@@ -50978,15 +51057,20 @@
50978
51057
  };
50979
51058
  };
50980
51059
  var \u02752 = findInvalidElement;
50981
- var setTouchedState = function(ngForm) {
51060
+ var setTouchedState = function(self, ngForm, fieldName) {
51061
+ var _a, _b;
50982
51062
  if (ngForm.valid) {
50983
51063
  return;
50984
51064
  }
50985
51065
  if (ngForm.controls) {
50986
- _.forEach(ngForm.controls, (function(ctrl) {
50987
- setTouchedState(ctrl);
51066
+ _.forEach(ngForm.controls, (function(ctrl, fieldName) {
51067
+ setTouchedState(self, ctrl, fieldName);
50988
51068
  }));
50989
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"));
50990
51074
  ngForm.markAsTouched();
50991
51075
  }
50992
51076
  };
@@ -51283,7 +51367,7 @@
51283
51367
  }));
51284
51368
  };
51285
51369
  FormComponent.prototype.highlightInvalidFields = function() {
51286
- setTouchedState(this.ngform);
51370
+ setTouchedState(this, this.ngform, "");
51287
51371
  };
51288
51372
  FormComponent.prototype.validateFieldsOnSubmit = function() {
51289
51373
  this.setValidationMsgs();
@@ -51812,8 +51896,8 @@
51812
51896
  FormComponent.prototype.generateFormFields = function() {
51813
51897
  return __awaiter(this, void 0, void 0, (function() {
51814
51898
  var noOfColumns, $gridLayout, columnWidth, fieldTemplate, colCount, index, userFields, fields, colTmpl, componentFactoryRef, component;
51815
- return __generator(this, (function(_b) {
51816
- switch (_b.label) {
51899
+ return __generator(this, (function(_c) {
51900
+ switch (_c.label) {
51817
51901
  case 0:
51818
51902
  if (_.isUndefined(this._isGridLayoutPresent)) {
51819
51903
  this._isGridLayoutPresent = this.$element.find(".panel-body [wmlayoutgrid]").length > 0;
@@ -51872,7 +51956,7 @@
51872
51956
  }) ];
51873
51957
 
51874
51958
  case 1:
51875
- componentFactoryRef = _b.sent();
51959
+ componentFactoryRef = _c.sent();
51876
51960
  component = this.dynamicFormRef.createComponent(componentFactoryRef, 0, this.inj);
51877
51961
  core.extendProto(component.instance, this._dynamicContext);
51878
51962
  $gridLayout[0].appendChild(component.location.nativeElement);
@@ -52393,10 +52477,18 @@
52393
52477
  $($evt.target).closest(".live-field").addClass("active");
52394
52478
  };
52395
52479
  FormFieldDirective.prototype._onBlurField = function($evt) {
52396
- var _a, _b;
52480
+ var _a, _b, _c, _d;
52397
52481
  $($evt.target).closest(".live-field").removeClass("active");
52398
- (_a = this.nativeElement.querySelector("input")) === null || _a === void 0 ? void 0 : _a.setAttribute("aria-invalid", "" + this.ngform.controls[this._fieldName].invalid);
52399
- (_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
+ }
52400
52492
  this._activeField = false;
52401
52493
  this._triggeredByUser = false;
52402
52494
  this._clicktriggeredByUser = false;
@@ -52618,7 +52710,7 @@
52618
52710
  });
52619
52711
  };
52620
52712
  FormFieldDirective.prototype.onValueChange = function(val) {
52621
- var _a, _b;
52713
+ var _a, _b, _c, _d;
52622
52714
  if (!this.isDestroyed) {
52623
52715
  var captionEl = $(this.nativeElement).find(".caption-floating");
52624
52716
  if (captionEl.length > 0) {
@@ -52630,8 +52722,15 @@
52630
52722
  isFocused: this._activeField
52631
52723
  });
52632
52724
  }
52633
- (_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");
52634
- (_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
+ }
52635
52734
  this.form.onFieldValueChange(this, val);
52636
52735
  this.notifyChanges();
52637
52736
  if (this.$element.find(".active").length > 0 || this.form.touched) {