@wavemaker/app-runtime-wm-build 11.3.6-rc.5345 → 11.3.6-rc.5353

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.
@@ -3012,11 +3012,15 @@
3012
3012
  var isIos = function() {
3013
3013
  return isIphone() || isIpod() || isIpad();
3014
3014
  };
3015
- var isLargeTabletLandscape = function() {
3016
- return window.matchMedia("only screen and (min-device-width : 1366px) and (max-device-width : 1366px) and (min-device-height : 1024px) and (max-device-height : 1024px) and (min-width: 1366px) and (max-width: 1366px)").matches;
3015
+ var isLargeTabletLandscape = function(landScapeWidth, landScapeHeight) {
3016
+ var width = landScapeWidth || "1366px";
3017
+ var height = landScapeHeight || "1024px";
3018
+ return window.matchMedia("only screen and (min-device-width : " + width + ") and (max-device-width : " + width + ") and (min-device-height : " + height + ") and (max-device-height : " + height + ") and (min-width: " + width + ") and (max-width: " + width + ")").matches;
3017
3019
  };
3018
- var isLargeTabletPortrait = function() {
3019
- return window.matchMedia("only screen and (min-device-width : 1024px) and (max-device-width : 1024px) and (min-device-height : 1366px) and (max-device-height : 1366px) and (min-width: 1024px) and (max-width: 1024px)").matches;
3020
+ var isLargeTabletPortrait = function(landScapeWidth, landScapeHeight) {
3021
+ var height = landScapeWidth || "1366px";
3022
+ var width = landScapeHeight || "1024px";
3023
+ return window.matchMedia("only screen and (min-device-width : " + width + ") and (max-device-width : " + width + ") and (min-device-height : " + height + ") and (max-device-height : " + height + ") and (min-width: " + width + ") and (max-width: " + width + ")").matches;
3020
3024
  };
3021
3025
  var isMobile = function() {
3022
3026
  return isAndroid() || isIos() || isAndroidTablet() || $("#wm-mobile-display:visible").length > 0;
@@ -4466,6 +4470,8 @@
4466
4470
  this.isMobileType = true;
4467
4471
  }
4468
4472
  } else {
4473
+ MINIMUM_MOBILE_WIDTH = parseInt(getComputedStyle(document.documentElement).getPropertyValue("--screen-xs")) || 480;
4474
+ MINIMUM_TAB_WIDTH = parseInt(getComputedStyle(document.documentElement).getPropertyValue("--screen-sm")) || 768;
4469
4475
  if (minValue >= MINIMUM_MOBILE_WIDTH && maxValue >= MINIMUM_TAB_WIDTH) {
4470
4476
  this.type = 1;
4471
4477
  if (isAndroid() || isIos() || isAndroidTablet()) {
@@ -8973,9 +8979,11 @@
8973
8979
  });
8974
8980
  };
8975
8981
  var getKeyboardFocusableElements = function(element) {
8976
- return [ element.querySelectorAll('a, button, input, textarea, select, details, iframe, embed, object, summary dialog, audio[controls], video[controls], [contenteditable], [tabindex]:not([tabindex="-1"])') ].filter((function(el) {
8977
- return !el[0].hasAttribute("disabled") && !el[0].hasAttribute("hidden");
8978
- }))[0];
8982
+ var elementNodeList = element.querySelectorAll("a, button, input, textarea, select, details, iframe, embed, object, summary dialog, audio[controls], video[controls], [contenteditable]");
8983
+ var elements = Array.from(elementNodeList);
8984
+ return elements.filter((function(el) {
8985
+ return !el.hasAttribute("disabled") && !el.hasAttribute("hidden") && (!el.hasAttribute("tabindex") || el.hasAttribute("tabindex") && !el.getAttribute("tabindex").startsWith("-"));
8986
+ }));
8979
8987
  };
8980
8988
  exports.APPLY_STYLES_TYPE = void 0;
8981
8989
  (function(APPLY_STYLES_TYPE) {
@@ -10382,7 +10390,18 @@
10382
10390
  configurable: true
10383
10391
  });
10384
10392
  ShowInDeviceDirective.prototype.onResize = function($event) {
10385
- if (this.devices.indexOf("lg") > -1 && window.matchMedia("(min-width: 1200px)").matches && !core$1.isLargeTabletLandscape() || this.devices.indexOf("md") > -1 && (core$1.isLargeTabletLandscape() || window.matchMedia("(min-width: 992px) and (max-width: 1199px)").matches && !core$1.isLargeTabletPortrait()) || this.devices.indexOf("sm") > -1 && (window.matchMedia("(min-width: 768px) and (max-width: 991px)").matches || core$1.isLargeTabletPortrait()) || this.devices.indexOf("xs") > -1 && window.matchMedia("(max-width: 767px)").matches || this.devices.indexOf("all") > -1) {
10393
+ var lgWidth = getComputedStyle(document.documentElement).getPropertyValue("--screen-lg") || "1200px";
10394
+ var mdWidth = getComputedStyle(document.documentElement).getPropertyValue("--screen-md") || "992px";
10395
+ var smWidth = getComputedStyle(document.documentElement).getPropertyValue("--screen-sm") || "768px";
10396
+ var lgTabLandScapeWidth = getComputedStyle(document.documentElement).getPropertyValue("--screen-lg-tab-landscape") || "1366px";
10397
+ var lgTabPortraitWidth = getComputedStyle(document.documentElement).getPropertyValue("--screen-lg-tab-portrait") || "1024px";
10398
+ var lgWidthMin = parseFloat(lgWidth) - 1;
10399
+ var lgUnit = lgWidthMin + "px";
10400
+ var mdWidthMin = parseFloat(mdWidth) - 1;
10401
+ var mdUnit = mdWidthMin + "px";
10402
+ var smWidthMin = parseFloat(smWidth) - 1;
10403
+ var smUnit = smWidthMin + "px";
10404
+ if (this.devices.indexOf("lg") > -1 && window.matchMedia("(min-width: " + lgWidth + ")").matches && !core$1.isLargeTabletLandscape(lgTabLandScapeWidth, lgTabPortraitWidth) || this.devices.indexOf("md") > -1 && (core$1.isLargeTabletLandscape(lgTabLandScapeWidth, lgTabPortraitWidth) || window.matchMedia("(min-width: " + mdWidth + ") and (max-width: " + lgUnit + ")").matches && !core$1.isLargeTabletPortrait(lgTabLandScapeWidth, lgTabPortraitWidth)) || this.devices.indexOf("sm") > -1 && (window.matchMedia("(min-width: " + smWidth + ") and (max-width: " + mdUnit + ")").matches || core$1.isLargeTabletPortrait(lgTabLandScapeWidth, lgTabPortraitWidth)) || this.devices.indexOf("xs") > -1 && window.matchMedia("(max-width: " + smUnit + ")").matches || this.devices.indexOf("all") > -1) {
10386
10405
  if (!this.embeddedView) {
10387
10406
  this.embeddedView = this.viewContainerRef.createEmbeddedView(this.templateRef, this.context);
10388
10407
  }
@@ -15060,7 +15079,7 @@
15060
15079
  }
15061
15080
  var markup = "<" + tagName$q + " wmPopover " + transpiler.getAttrMarkup(attrs) + ">";
15062
15081
  var contextAttrs = table ? 'let-row="row"' : "";
15063
- markup += "<ng-template " + contextAttrs + '><button class="popover-start"></button>';
15082
+ markup += "<ng-template " + contextAttrs + '><div tabindex="0" class="popover-start sr-only" aria-label="">popover content start</div>';
15064
15083
  if (popoverTemplate) {
15065
15084
  markup += "" + (popoverTemplate ? popoverTemplate : "");
15066
15085
  }
@@ -15071,7 +15090,7 @@
15071
15090
  if (shared.get("hasPopoverContent")) {
15072
15091
  markup += "</div>";
15073
15092
  }
15074
- return markup + '<button class="popover-end"></button></ng-template></' + tagName$q + ">";
15093
+ return markup + '<div tabindex="0" class="popover-end sr-only" aria-label="">popover content ended</div></ng-template></' + tagName$q + ">";
15075
15094
  }
15076
15095
  };
15077
15096
  }));
@@ -27414,14 +27433,18 @@
27414
27433
  var newDay = newDate.getDate().toString();
27415
27434
  _.filter($("span:contains(" + newDay + ")").not(".is-other-month"), (function(obj) {
27416
27435
  if ($(obj).text() === newDay) {
27436
+ if ($(obj).hasClass("selected")) {
27437
+ $(obj).parent().attr("aria-selected", "true");
27438
+ }
27417
27439
  $(obj).attr("aria-label", moment(newDate).format("dddd, MMMM Do YYYY"));
27440
+ $("[bsdatepickerdaydecorator]").not(".is-other-month").attr("tabindex", "-1");
27441
+ $(obj).attr("tabindex", "0");
27418
27442
  $(obj).focus();
27419
27443
  _this.activeDate = newDate;
27420
27444
  }
27421
27445
  }));
27422
27446
  if (newDate.getMonth() === (new Date).getMonth() && newDate.getFullYear() === (new Date).getFullYear()) {
27423
27447
  _this.hightlightToday();
27424
- $("span:contains(" + (new Date).getDate().toString() + ")").not(".is-other-month").parent().attr("aria-selected", "true");
27425
27448
  }
27426
27449
  }));
27427
27450
  };
@@ -27463,6 +27486,9 @@
27463
27486
  if (event.originalEvent) {
27464
27487
  _this.setFocusForDate(-1);
27465
27488
  }
27489
+ setTimeout((function() {
27490
+ $(".bs-datepicker-head .previous").focus();
27491
+ }));
27466
27492
  }));
27467
27493
  datePickerHead.find(".next").click((function(event) {
27468
27494
  _this.next = _this.getMonth(_this.activeDate, 2);
@@ -27471,6 +27497,9 @@
27471
27497
  if (event.originalEvent) {
27472
27498
  _this.setFocusForDate(1);
27473
27499
  }
27500
+ setTimeout((function() {
27501
+ $(".bs-datepicker-head .next").focus();
27502
+ }));
27474
27503
  }));
27475
27504
  datePickerHead.find(".current").click((function(event) {
27476
27505
  if (event.originalEvent) {
@@ -27485,6 +27514,19 @@
27485
27514
  }));
27486
27515
  datePickerHead.find(".next").attr("aria-label", "Next Month, " + this.next.fullMonth + " " + this.next.date.getFullYear());
27487
27516
  datePickerHead.find(".previous").attr("aria-label", "Previous Month, " + this.prev.fullMonth + " " + this.prev.date.getFullYear());
27517
+ setTimeout((function() {
27518
+ var currentNodes = datePickerHead.find(".current span");
27519
+ var msg = "Changed to month ";
27520
+ datePickerHead.find(".current").attr("aria-live", "assertive").attr("aria-atomic", "false");
27521
+ if (_this.clicked) {
27522
+ if ($(currentNodes[0]).text()) {
27523
+ datePickerHead.find(".ng-star-inserted").prepend('<div class="sr-only">' + msg + "</div>");
27524
+ }
27525
+ if ($(currentNodes[1]).text()) {
27526
+ datePickerHead.find(".current").last().prepend('<div class="sr-only"> and year </div>');
27527
+ }
27528
+ }
27529
+ }));
27488
27530
  };
27489
27531
  BaseDateTimeComponent.prototype.setFocusForMonthOrDay = function() {
27490
27532
  var activeMonthOrYear = $(".bs-datepicker-head .current").first().text();
@@ -27620,8 +27662,6 @@
27620
27662
  BaseDateTimeComponent.prototype.loadMonths = function() {
27621
27663
  var _this = this;
27622
27664
  setTimeout((function() {
27623
- var datePickerBody = $(".bs-datepicker-body");
27624
- datePickerBody.find("table.months span").attr("tabindex", "0");
27625
27665
  _this.addKeyBoardEventsForMonths();
27626
27666
  _this.addDatepickerMouseEvents();
27627
27667
  }));
@@ -27664,8 +27704,6 @@
27664
27704
  BaseDateTimeComponent.prototype.loadYears = function() {
27665
27705
  var _this = this;
27666
27706
  setTimeout((function() {
27667
- var datePickerBody = $(".bs-datepicker-body");
27668
- datePickerBody.find("table.years span").attr("tabindex", "0");
27669
27707
  _this.addKeyBoardEventsForYears();
27670
27708
  _this.addDatepickerMouseEvents();
27671
27709
  }));
@@ -27682,6 +27720,8 @@
27682
27720
  }
27683
27721
  }
27684
27722
  setTimeout((function() {
27723
+ $(".bs-datepicker-body table.months span").attr("tabindex", "-1");
27724
+ $(".bs-datepicker-body table.months span:contains(" + newMonth + ")").attr("tabindex", "0");
27685
27725
  $(".bs-datepicker-body table.months span:contains(" + newMonth + ")").focus();
27686
27726
  _this.activeDate = newDate;
27687
27727
  }));
@@ -27730,6 +27770,8 @@
27730
27770
  }
27731
27771
  }
27732
27772
  setTimeout((function() {
27773
+ $(".bs-datepicker-body table.years span").attr("tabindex", "-1");
27774
+ $(".bs-datepicker-body table.years span:contains(" + newYear + ")").attr("tabindex", "0");
27733
27775
  $(".bs-datepicker-body table.years span:contains(" + newYear + ")").focus();
27734
27776
  _this.activeDate = newDate;
27735
27777
  }));
@@ -27896,11 +27938,6 @@
27896
27938
  children[i].classList.remove("add-opacity");
27897
27939
  }
27898
27940
  displayInputElem.classList.remove("remove-opacity");
27899
- var allDateTimeElements = this.nativeElement.getElementsByTagName("*");
27900
- for (var i = 0; i < allDateTimeElements.length; i++) {
27901
- allDateTimeElements[i].setAttribute("tabindex", this.tabindex);
27902
- }
27903
- displayInputElem.removeAttribute("tabindex");
27904
27941
  }
27905
27942
  };
27906
27943
  BaseDateTimeComponent.prototype.onDateTimeInputFocus = function(skipFocus) {
@@ -27917,11 +27954,6 @@
27917
27954
  children[i].classList.add("add-opacity");
27918
27955
  }
27919
27956
  displayInputElem.classList.add("remove-opacity");
27920
- var allDateTimeElements = this.nativeElement.getElementsByTagName("*");
27921
- for (var i = 0; i < allDateTimeElements.length; i++) {
27922
- allDateTimeElements[i].setAttribute("tabindex", "-1");
27923
- }
27924
- displayInputElem.setAttribute("tabindex", this.tabindex);
27925
27957
  return;
27926
27958
  }
27927
27959
  if (displayInputElem && this._triggeredByUser) {
@@ -28004,7 +28036,10 @@
28004
28036
  this.isReadOnly = this.dataentrymode != "undefined" && !this.isDataEntryModeEnabledOnInput(this.dataentrymode);
28005
28037
  var mobileInput = this.getMobileInput();
28006
28038
  if (mobileInput) {
28007
- mobileInput.style.width = mobileInput.parentElement.clientWidth + "px";
28039
+ setTimeout((function() {
28040
+ mobileInput.style.width = mobileInput.parentElement.clientWidth + "px";
28041
+ mobileInput.style.height = mobileInput.parentElement.clientHeight + "px";
28042
+ }));
28008
28043
  }
28009
28044
  };
28010
28045
  BaseDateTimeComponent.prototype.ngOnDestroy = function() {
@@ -28267,7 +28302,7 @@
28267
28302
  if (this.isDropDownDisplayEnabledOnInput(this.showdropdownon)) {
28268
28303
  event.stopPropagation();
28269
28304
  var action = this.keyEventPlugin.constructor.getEventFullKey(event);
28270
- if (action === "enter" || action === "arrowdown") {
28305
+ if (action === "enter") {
28271
28306
  var newVal = core$1.getDateObj(event.target.value, {
28272
28307
  pattern: this.datepattern
28273
28308
  });
@@ -28309,7 +28344,7 @@
28309
28344
  type: core.Component,
28310
28345
  args: [ {
28311
28346
  selector: "[wmDate]",
28312
- template: ' <input class="form-control app-textbox app-dateinput display-input"\n focus-target\n type="text"\n [name]="name"\n [tabindex]="tabindex"\n [value]="displayValue"\n (click)="toggleDpDropdown($event, true)"\n (focus)="onDateTimeInputFocus(); invokeOnFocus($event);"\n (blur)="onInputBlur($event)"\n [disabled]="disabled || readonly"\n [autofocus]="autofocus"\n [required]="required"\n [readOnly]="isReadOnly"\n [attr.placeholder]="placeholder"\n [attr.accesskey]="shortcutkey"\n [attr.aria-label]="hint"\n (change)="onDisplayDateChange($event)"\n (keydown)="this._triggeredByUser = true; onDisplayKeydown($event);">\n\n <span class="input-group-btn">\n <button type="button"\n class="btn btn-default btn-time"\n [tabindex]="tabindex"\n [disabled]="disabled || readonly"\n [attr.aria-label]="displayValue ? \'Change Date \' + displayValue : \'Choose date by pressing enter\'"\n aria-haspopup="true"\n aria-expanded="false"\n (click)="toggleDpDropdown($event, false)">\n <i aria-hidden="true"\n class="app-icon wm-sl-l sl-calendar"></i>\n </button>\n </span>\n <div style="width: 0;display: inline-block;">\n <input class="model-holder"\n aria-label="datepicker dropdownmenu"\n aria-controls="date"\n [container]="containerTarget || \'body\'"\n [bsConfig]="_dateOptions"\n [isOpen]="isOpen"\n #datepicker="bsDatepicker"\n bsDatepicker\n [daysDisabled]="excludedDaysToDisable"\n [datesDisabled]="excludedDatesToDisable"\n placement="bottom right"\n [isDisabled]="disabled || readonly"\n [bsValue]="bsDataValue"\n (onShown)="onDatePickerOpen()"\n (onHidden)="hideDatepickerDropdown()"\n (bsValueChange)="onDateChange($event)">\n</div>\n\n<ng-template [ngIf]="loadNativeDateInput">\n <wm-datetimepicker\n dateTimePicker\n mode="DATE"\n [config]="_dateOptions"\n [placement]="modal"\n [excludedDaysToDisable]="excludedDaysToDisable"\n [excludedDatesToDisable]="excludedDatesToDisable"\n [displayFormat]="dateInputFormat"\n [value]="bsDataValue"\n (change)="onDateChange($event)">\n </wm-datetimepicker>\n <div class="mobile-input mobile-datepicker-container"\n tabindex="1000000"\n (focus)="onDateTimeInputFocus(true); invokeOnFocus($event);"\n (blur)="onDateTimeInputBlur(); invokeOnTouched($event)"\n (click)="!(disabled || readonly || isCurrentDate) && showDatePickerModal()">\n </div>\n</ng-template>\n',
28347
+ template: ' <input class="form-control app-textbox app-dateinput display-input"\n focus-target\n type="text"\n [name]="name"\n [tabindex]="loadNativeDateInput ? \'-1\' : tabindex"\n [attr.aria-hidden]="!!loadNativeDateInput"\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]="loadNativeDateInput ? \'-1\' : tabindex"\n [attr.aria-hidden]="!!loadNativeDateInput"\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 [tabindex]="-1"\n [attr.aria-hidden]="!!loadNativeDateInput"\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]="tabindex || 0"\n (focus)="onDateTimeInputFocus(true); invokeOnFocus($event);"\n (blur)="onDateTimeInputBlur(); invokeOnTouched($event)"\n [attr.aria-label]="displayValue ? \'Change Date\' + displayValue : \'Choose Date\'"\n (click)="!(disabled || readonly || isCurrentDate) && showDatePickerModal()">\n </div>\n</ng-template>\n',
28313
28348
  providers: [ base.provideAs(DateComponent, forms.NG_VALUE_ACCESSOR, true), base.provideAs(DateComponent, forms.NG_VALIDATORS, true), base.provideAsWidgetRef(DateComponent) ]
28314
28349
  } ]
28315
28350
  } ];
@@ -28761,7 +28796,7 @@
28761
28796
  type: core.Component,
28762
28797
  args: [ {
28763
28798
  selector: "[wmDateTime]",
28764
- template: ' <div dropdown\n [isOpen]="isTimeOpen"\n autoClose="false"\n [container]="\'body\'"\n (onShown)="onTimepickerOpen()"\n style="display: inherit;">\n <input class="form-control app-textbox display-input"\n [attr.aria-label]="hint"\n focus-target\n [name]="name"\n [tabindex]="tabindex"\n type="text"\n [value]="displayValue"\n (click)="toggleDpDropdown($event, true)"\n (focus)="onDateTimeInputFocus(); invokeOnFocus($event);"\n (blur)="onInputBlur($event)"\n (change)="onDateChange($event)"\n [autofocus]="autofocus"\n [disabled]="disabled || readonly || isCurrentDate"\n [required]="required"\n [readOnly]="isReadOnly"\n [attr.placeholder]="placeholder"\n [attr.accesskey]="shortcutkey"\n (keydown)="this._triggeredByUser = true; onDisplayKeydown($event)">\n\n <span class="input-group-btn">\n <button type="button"\n class="btn btn-default btn-date"\n [tabindex]="tabindex"\n [disabled]="disabled || readonly || isCurrentDate"\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 <button type="button"\n class="btn btn-default btn-time"\n [tabindex]="tabindex"\n [disabled]="disabled || readonly || isCurrentDate"\n aria-label="Select time"\n aria-haspopup="true"\n aria-expanded="false"\n (click)="toggleTimePicker(!isTimeOpen, $event)">\n <i aria-hidden="true"\n class="app-icon wm-sl-l sl-time"></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 focus-target\n [container]="containerTarget || \'body\'"\n [bsConfig]="_dateOptions"\n [isOpen]="isDateOpen"\n placement="bottom right"\n (onShown)="onDatePickerOpen()"\n (onHidden)="hideDatepickerDropdown()"\n [daysDisabled]="excludedDaysToDisable"\n [datesDisabled]="excludedDatesToDisable"\n #datepicker=bsDatepicker\n bsDatepicker\n [isDisabled]="disabled || readonly || isCurrentDate"\n [bsValue]="bsDateValue"\n (bsValueChange)="onModelUpdate($event, \'date\')">\n </div>\n <div *dropdownMenu\n class="dropdown-menu"\n aria-label="timepicker dropdown"\n aria-controls="time"\n (click)="preventTpClose($event)">\n <timepicker class="model-holder"\n [showMeridian]="ismeridian"\n [readonlyInput]="disabled || readonly || isCurrentDate"\n [(ngModel)]="bsTimeValue"\n [min]="minTime"\n [max]="maxTime"\n [hourStep]="hourstep"\n [minuteStep]="minutestep"\n [secondsStep]="secondsstep"\n [mousewheel]="true"\n [arrowkeys]="true"\n (isValid)="isValid($event)"\n [showSeconds]="showseconds"\n (ngModelChange)="onModelUpdate($event, \'time\')"></timepicker>\n </div>\n </div>\n<ng-template [ngIf]="loadNativeDateInput">\n <wm-datetimepicker\n dateTimePicker\n [config]="_dateOptions"\n [placement]="modal"\n [excludedDaysToDisable]="excludedDaysToDisable"\n [excludedDatesToDisable]="excludedDatesToDisable"\n [displayFormat]="dateInputFormat"\n [value]="bsDateValue"\n (change)="onModelUpdate($event, \'date\')">\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',
28799
+ template: ' <div dropdown\n [isOpen]="isTimeOpen"\n autoClose="false"\n [container]="\'body\'"\n (onShown)="onTimepickerOpen()"\n style="display: inherit;">\n <input class="form-control app-textbox display-input"\n [attr.aria-label]="hint"\n focus-target\n [name]="name"\n [tabindex]="loadNativeDateInput ? \'-1\' : tabindex"\n [attr.aria-hidden]="!!loadNativeDateInput"\n type="text"\n [value]="displayValue"\n (click)="toggleDpDropdown($event, true)"\n (focus)="onDateTimeInputFocus(); invokeOnFocus($event);"\n (blur)="onInputBlur($event)"\n (change)="onDateChange($event)"\n [autofocus]="autofocus"\n [disabled]="disabled || readonly || isCurrentDate"\n [required]="required"\n [readOnly]="isReadOnly"\n [attr.placeholder]="placeholder"\n [attr.accesskey]="shortcutkey"\n (keydown)="this._triggeredByUser = true; onDisplayKeydown($event)">\n\n <span class="input-group-btn">\n <button type="button"\n class="btn btn-default btn-date"\n [tabindex]="loadNativeDateInput ? \'-1\' : tabindex"\n [attr.aria-hidden]="!!loadNativeDateInput"\n [disabled]="disabled || readonly || isCurrentDate"\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 <button type="button"\n class="btn btn-default btn-time"\n [tabindex]="loadNativeDateInput ? \'-1\' : tabindex"\n [attr.aria-hidden]="!!loadNativeDateInput"\n [disabled]="disabled || readonly || isCurrentDate"\n aria-label="Select time"\n aria-haspopup="true"\n aria-expanded="false"\n (click)="toggleTimePicker(!isTimeOpen, $event)">\n <i aria-hidden="true"\n class="app-icon wm-sl-l sl-time"></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 focus-target\n [tabindex]="-1"\n [attr.aria-hidden]="!!loadNativeDateInput"\n [container]="containerTarget || \'body\'"\n [bsConfig]="_dateOptions"\n [isOpen]="isDateOpen"\n placement="bottom right"\n (onShown)="onDatePickerOpen()"\n (onHidden)="hideDatepickerDropdown()"\n [daysDisabled]="excludedDaysToDisable"\n [datesDisabled]="excludedDatesToDisable"\n #datepicker=bsDatepicker\n bsDatepicker\n [isDisabled]="disabled || readonly || isCurrentDate"\n [bsValue]="bsDateValue"\n (bsValueChange)="onModelUpdate($event, \'date\')">\n </div>\n <div *dropdownMenu\n class="dropdown-menu"\n aria-label="timepicker dropdown"\n aria-controls="time"\n (click)="preventTpClose($event)">\n <timepicker class="model-holder"\n [showMeridian]="ismeridian"\n [readonlyInput]="disabled || readonly || isCurrentDate"\n [(ngModel)]="bsTimeValue"\n [min]="minTime"\n [max]="maxTime"\n [hourStep]="hourstep"\n [minuteStep]="minutestep"\n [secondsStep]="secondsstep"\n [mousewheel]="true"\n [arrowkeys]="true"\n (isValid)="isValid($event)"\n [showSeconds]="showseconds"\n (ngModelChange)="onModelUpdate($event, \'time\')"></timepicker>\n </div>\n </div>\n<ng-template [ngIf]="loadNativeDateInput">\n <wm-datetimepicker\n dateTimePicker\n [config]="_dateOptions"\n [placement]="modal"\n [excludedDaysToDisable]="excludedDaysToDisable"\n [excludedDatesToDisable]="excludedDatesToDisable"\n [displayFormat]="dateInputFormat"\n [value]="bsDateValue"\n (change)="onModelUpdate($event, \'date\')">\n </wm-datetimepicker>\n <div class="mobile-input mobile-datepicker-container"\n [tabindex]="tabindex || 0"\n (focus)="onDateTimeInputFocus(true); invokeOnFocus($event)"\n (blur)="onDateTimeInputBlur(); invokeOnTouched($event)"\n (click)="!(disabled || readonly || isCurrentDate) && showDatePickerModal()">\n </div>\n</ng-template>\n',
28765
28800
  providers: [ base.provideAs(DatetimeComponent, forms.NG_VALUE_ACCESSOR, true), base.provideAs(DatetimeComponent, forms.NG_VALIDATORS, true), base.provideAsWidgetRef(DatetimeComponent), {
28766
28801
  provide: timepicker.TimepickerConfig,
28767
28802
  deps: [ core$1.AbstractI18nService ],
@@ -32312,7 +32347,7 @@
32312
32347
  var value = _.get(dataObj, xKey);
32313
32348
  if (isLineTypeChart(this.type) && !core.isNumberType(this.xAxisDataType)) {
32314
32349
  this.xDataKeyArr.push(value);
32315
- return index;
32350
+ return value;
32316
32351
  }
32317
32352
  return value;
32318
32353
  };
@@ -35733,6 +35768,9 @@
35733
35768
  return _this.hidePopover();
35734
35769
  };
35735
35770
  }
35771
+ setTimeout((function() {
35772
+ _this.anchorRef.nativeElement.removeAttribute("aria-describedby");
35773
+ }));
35736
35774
  var deRegister = this.eventManager.addEventListener(popoverContainer, "keydown.esc", (function() {
35737
35775
  _this.isOpen = false;
35738
35776
  _this.setFocusToPopoverLink();
@@ -35740,8 +35778,6 @@
35740
35778
  }));
35741
35779
  var popoverStartBtn = popoverContainer.querySelector(".popover-start");
35742
35780
  var popoverEndBtn = popoverContainer.querySelector(".popover-end");
35743
- popoverStartBtn.setAttribute("aria-hidden", "true");
35744
- popoverEndBtn.setAttribute("aria-hidden", "true");
35745
35781
  popoverStartBtn.onkeydown = function(event) {
35746
35782
  var action = _this.keyEventPlugin.constructor.getEventFullKey(event);
35747
35783
  if (action === "shift.tab") {
@@ -35765,7 +35801,6 @@
35765
35801
  return _this.close();
35766
35802
  };
35767
35803
  }
35768
- core.setAttr(popoverContainer, "tabindex", 0);
35769
35804
  setTimeout((function() {
35770
35805
  return popoverStartBtn.focus();
35771
35806
  }), 50);
@@ -36444,7 +36479,7 @@
36444
36479
  var subscriptions = [ _this.bsModal.onShown.subscribe((function(_a) {
36445
36480
  var id = _a.id;
36446
36481
  var ref = _this.dialogService.getLastOpenedDialog();
36447
- if (ref === _this && !_this.dialogId) {
36482
+ if (ref === _this) {
36448
36483
  invokeOpenedCallback(ref);
36449
36484
  _this.dialogId = id;
36450
36485
  }
@@ -36458,7 +36493,6 @@
36458
36493
  ref = _this.dialogService.getLastOpenedDialog();
36459
36494
  }
36460
36495
  if (ref === _this) {
36461
- _this.dialogId = null;
36462
36496
  _this.dialogService.removeFromOpenedDialogs(ref);
36463
36497
  _this.dialogService.removeFromClosedDialogs(ref);
36464
36498
  invokeClosedCallback(ref);
@@ -44689,9 +44723,9 @@
44689
44723
  }
44690
44724
  }
44691
44725
  };
44692
- ListComponent.prototype.onUpdate = function(evt, ui) {
44726
+ ListComponent.prototype.onUpdate = function(evt, ui, presentIndex) {
44693
44727
  var data = this.fieldDefs;
44694
- var newIndex = ui.item.index();
44728
+ var newIndex = ui === undefined ? presentIndex : ui.item.index();
44695
44729
  var oldIndex = this.$ulEle.data("oldIndex");
44696
44730
  var minIndex = _.min([ newIndex, oldIndex ]);
44697
44731
  var maxIndex = _.max([ newIndex, oldIndex ]);
@@ -44887,8 +44921,10 @@
44887
44921
  this.currentIndex = presentIndex + 1;
44888
44922
  if (this.isListElementMovable) {
44889
44923
  this.ariaText = "Item " + this.currentIndex + " grabbed, current position ";
44924
+ this.$ulEle.data("oldIndex", presentIndex);
44890
44925
  } else {
44891
44926
  this.ariaText = "Item " + this.currentIndex + " dropped, final position ";
44927
+ this.onUpdate($event, undefined, presentIndex);
44892
44928
  }
44893
44929
  }
44894
44930
  };
@@ -44933,10 +44969,12 @@
44933
44969
  this.dataNavigator.widget.maxResults = nv;
44934
44970
  this.dataNavigator.maxResults = nv;
44935
44971
  } else if (key === "enablereorder") {
44936
- if (nv) {
44972
+ if (nv && this.$ulEle) {
44973
+ this.$ulEle.attr("aria-describedby", this.titleId);
44937
44974
  this.configureDnD();
44938
44975
  this.$ulEle.sortable("enable");
44939
44976
  } else if (this.$ulEle && !nv) {
44977
+ this.$ulEle.removeAttr("aria-describedby");
44940
44978
  this.$ulEle.sortable("disable");
44941
44979
  }
44942
44980
  } else {
@@ -45090,9 +45128,18 @@
45090
45128
  _super.prototype.ngAfterViewInit.call(_this);
45091
45129
  _this.setUpCUDHandlers();
45092
45130
  _this.selectedItemWidgets = _this.multiselect ? [] : {};
45131
+ var ele = $(_this.nativeElement).find(".app-livelist-container");
45093
45132
  if (_this.enablereorder && !_this.groupby) {
45133
+ if (ele) {
45134
+ ele.attr("aria-describedby", _this.titleId);
45135
+ }
45094
45136
  _this.configureDnD();
45095
45137
  }
45138
+ if (!_this.enablereorder) {
45139
+ if (ele) {
45140
+ ele.removeAttr("aria-describedby");
45141
+ }
45142
+ }
45096
45143
  if (_this.groupby && _this.collapsible) {
45097
45144
  _this.handleHeaderClick = base.handleHeaderClick;
45098
45145
  _this.toggleAllHeaders = base.toggleAllHeaders.bind(undefined, _this);
@@ -45102,6 +45149,16 @@
45102
45149
  this.setupHandlers();
45103
45150
  var $ul = this.nativeElement.querySelector("ul.app-livelist-container");
45104
45151
  base.styler($ul, this, base.APPLY_STYLES_TYPE.SCROLLABLE_CONTAINER);
45152
+ if (this.enablereorder) {
45153
+ if ($ul) {
45154
+ $ul.setAttribute("aria-describedby", this.titleId);
45155
+ }
45156
+ }
45157
+ if (!this.enablereorder) {
45158
+ if ($ul) {
45159
+ $ul.removeAttribute("aria-describedby");
45160
+ }
45161
+ }
45105
45162
  if (core.isMobileApp() && $ul.querySelector(".app-list-item-action-panel")) {
45106
45163
  this._listAnimator = new ListAnimator(this);
45107
45164
  }
@@ -45126,7 +45183,7 @@
45126
45183
  type: core$1.Component,
45127
45184
  args: [ {
45128
45185
  selector: "div[wmList]",
45129
- template: '<div class="panel-heading" *ngIf="title || subheading || iconclass">\n <h3 class="panel-title">\n <div class="pull-left">\n <i class="app-icon panel-icon {{iconclass}}" aria-hidden="true" [hidden]="!iconclass"></i>\n </div>\n <div class="pull-left">\n <div class="heading" [innerHTML]="title"></div>\n <div class="description" [innerHTML]="subheading"></div>\n </div>\n </h3>\n</div>\n\n<nav class="app-datanavigator" [attr.aria-disabled]="dataNavigator.isDisablePrevious" aria-label="Page navigation" *ngIf="navigation === \'Inline\' && !noDataFound">\n <ul class="pager">\n <li class="previous" [ngClass]="{\'disabled\': (dataNavigator ? dataNavigator.isDisablePrevious : true)}">\n <a href="javascript:void(0);" (click)="dataNavigator.navigatePage(\'prev\', $event)"\n [attr.aria-disabled]="dataNavigator.isDisablePrevious">\n <i class="wi wi-chevron-left" aria-hidden="true"></i>\n <span class="sr-only">Go to Previous page {{dataNavigator.isDisablePrevious ? \', Disabled\' : \'\'}}</span>\n </a>\n </li>\n </ul>\n</nav>\n<div *ngIf="navigation === \'Inline\' && !noDataFound" aria-live="polite" aria-atomic="true" class="sr-only"> {{\'Page \' + dataNavigator.dn.currentPage + \' of \' + dataNavigator.pageCount }}</div>\n\n<div>\n <div id={{titleId}} class="sr-only" *ngIf="enablereorder">\n Press space bar to toggle drag drop mode, use arrow keys to move selected elements.\n </div>\n\n <div aria-live="assertive" *ngIf="listItems && enablereorder && currentIndex" class="sr-only" >\n {{ariaText + currentIndex + \' of \' + listItems.length}}\n </div>\n</div>\n\n<ul [attr.tabindex]="tabindex" [attr.aria-describedby] = "titleId" class="app-livelist-container clearfix {{direction === \'horizontal\' ? \'app-horizontal-list\': \'\'}} {{listclass}}" role="list"\n (keydown.enter)="handleKeyDown($event, \'select\')"\n\n (keydown.space)="handleKeyDown($event, \'space\')"\n\n (keydown.arrowup)="handleKeyDown($event, \'focusPrev\')"\n (keydown.arrowdown)="handleKeyDown($event, \'focusNext\')"\n (keydown.arrowleft)="handleKeyDown($event, \'focusPrev\')"\n (keydown.arrowright)="handleKeyDown($event, \'focusNext\')"\n\n (keydown.shift.arrowup)="handleKeyDown($event, \'selectPrev\')"\n (keydown.shift.arrowdown)="handleKeyDown($event, \'selectNext\')"\n (keydown.shift.arrowleft)="handleKeyDown($event, \'selectPrev\')"\n (keydown.shift.arrowright)="handleKeyDown($event, \'selectNext\')"\n [hidden]="noDataFound && !variableInflight"\n>\n <ng-template [ngIf]="!groupby" [ngIfElse]="groupedListTemplate">\n <li *ngFor="let item of fieldDefs; index as $index; first as $first; last as $last;" class="app-list-item {{direction === \'horizontal\' ? \'\' : itemsPerRowClass}}" [ngClass]="listItemRef.itemClass"\n [wmListItem]="item"\n #listItemRef="listItemRef"\n [attr.tabindex]="tabindex"\n role="listitem">\n <ng-container [ngTemplateOutlet]="listTemplate" [ngTemplateOutletContext]="{item: item, $index: $index, itemRef: listItemRef, $first: $first, $last: $last, currentItemWidgets: listItemRef.currentItemWidgets}"></ng-container>\n </li>\n </ng-template>\n <ng-container [ngTemplateOutlet]="listLeftActionTemplate"></ng-container>\n <ng-container [ngTemplateOutlet]="listRightActionTemplate"></ng-container>\n</ul>\n\n<div class="no-data-msg" *ngIf="noDataFound && !variableInflight" [textContent]="nodatamessage"></div>\n\n<div class="loading-data-msg" *ngIf="variableInflight && !pulltorefresh">\n <span>\n <i class="app-icon panel-icon fa-spin" aria-hidden="true" [ngClass]="loadingicon"></i>\n <span class="sr-only">Loading</span>\n <span class="loading-text" [textContent]="loadingdatamsg"></span>\n </span>\n</div>\n\n<nav class="app-datanavigator" [attr.aria-disabled]="dataNavigator.isDisableNext" *ngIf="navigation === \'Inline\' && !noDataFound">\n <ul class="pager">\n <li class="next" [ngClass]="{\'disabled\': (dataNavigator ? dataNavigator.isDisableNext : true)}">\n <a href="javascript:void(0);" (click)="dataNavigator.navigatePage(\'next\', $event)"\n [attr.aria-disabled]="dataNavigator.isDisableNext">\n <i class="wi wi-chevron-right" aria-hidden="true"></i>\n <span class="sr-only">Go to Next page {{dataNavigator.isDisableNext ? \', Disabled\' : \'\'}}</span>\n </a>\n </li>\n </ul>\n</nav>\n\n<div class="panel-footer" *ngIf="navigation !== \'None\'" [hidden]="!showNavigation || (onDemandLoad && dataNavigator.isDisableNext) || (dataNavigator.dataSize <= pagesize) || (!dataNavigator.dataSize && !dataNavigator.datasource?.pagination?.next)">\n <nav wmPagination\n navigationalign.bind="navigationalign"\n navigation.bind="navControls"\n showrecordcount.bind="showrecordcount"\n maxsize.bind="maxsize"\n boundarylinks.bind="boundarylinks"\n forceellipses.bind="forceellipses"\n directionlinks.bind="directionlinks"\n show.bind="!onDemandLoad"\n paginationchange.event="beforePaginationChange($event, $index)"\n ></nav>\n <a *ngIf="onDemandLoad" href="javascript:void(0);"\n (click)="dataNavigator.navigatePage(\'next\', $event)"\n class="app-button btn btn-block"\n [ngClass]="paginationclass"\n [textContent]="ondemandmessage"\n ></a>\n</div>\n\n\x3c!--This template will be displayed when groupby is specified--\x3e\n<ng-template #groupedListTemplate>\n <li *ngFor="let groupObj of groupedData" class="app-list-item-group clearfix">\n <ul [attr.tabindex]="tabindex" class="list-group item-group" [ngClass]="listclass">\n <li class="app-list-item-header list-item list-group-header" (click)="handleHeaderClick($event)" [ngClass]="{\'collapsible-content\': collapsible}">\n <h4>{{groupObj.key}}\n <div class="header-action">\n <i class="app-icon wi action wi-chevron-up" *ngIf="collapsible"></i>\n <span *ngIf="showcount" class="label label-default">{{groupObj.data.length}}</span>\n </div>\n </h4>\n </li>\n <ul class="list-group clearfix {{direction === \'horizontal\' ? \'app-horizontal-list\': \'\'}}">\n <li *ngFor="let item of groupObj.data; index as $index; first as $first; last as $last;" [attr.tabindex]="tabindex"\n class="app-list-item group-list-item {{itemsPerRowClass}}"\n [ngClass]="listItemRef.itemClass"\n [wmListItem]="item" #listItemRef="listItemRef">\n <ng-container [ngTemplateOutlet]="listTemplate" [ngTemplateOutletContext]="{item: item, $index: $index, itemRef: listItemRef, $first: $first, $last: $last, currentItemWidgets: listItemRef.currentItemWidgets}"></ng-container>\n </li>\n </ul>\n </ul>\n </li>\n</ng-template>\n',
45186
+ 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" 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',
45130
45187
  providers: [ base.provideAsWidgetRef(ListComponent) ]
45131
45188
  } ]
45132
45189
  } ];
@@ -59923,7 +59980,7 @@
59923
59980
  value: true
59924
59981
  }, base.PROP_BOOLEAN) ], [ "title", Object.assign({
59925
59982
  value: "Step Title"
59926
- }, base.PROP_STRING) ] ]));
59983
+ }, base.PROP_STRING) ], [ "subtitle", base.PROP_STRING ] ]));
59927
59984
  };
59928
59985
  var DEFAULT_CLS$1 = "app-wizard-step-content";
59929
59986
  var WIDGET_CONFIG$1 = {
@@ -60227,6 +60284,7 @@
60227
60284
  this.setDefaultStep(step);
60228
60285
  }
60229
60286
  }
60287
+ this.addMoreText();
60230
60288
  };
60231
60289
  WizardComponent.prototype.onWizardHeaderClick = function($event, currentStep) {
60232
60290
  var _this = this;
@@ -60242,6 +60300,7 @@
60242
60300
  }));
60243
60301
  this.currentStep = currentStep;
60244
60302
  this.currentStep.active = true;
60303
+ this.addMoreText();
60245
60304
  }
60246
60305
  };
60247
60306
  WizardComponent.prototype.next = function(eventName) {
@@ -60268,6 +60327,7 @@
60268
60327
  nextStep.active = true;
60269
60328
  this.currentStep = nextStep;
60270
60329
  }
60330
+ this.addMoreText();
60271
60331
  };
60272
60332
  WizardComponent.prototype.prev = function() {
60273
60333
  var currentStep = this.currentStep;
@@ -60283,6 +60343,7 @@
60283
60343
  prevStep.active = true;
60284
60344
  this.currentStep = prevStep;
60285
60345
  }
60346
+ this.addMoreText();
60286
60347
  };
60287
60348
  WizardComponent.prototype.skip = function() {
60288
60349
  this.next("skip");
@@ -60298,6 +60359,42 @@
60298
60359
  steps: this.steps.toArray()
60299
60360
  });
60300
60361
  };
60362
+ WizardComponent.prototype.addMoreText = function() {
60363
+ setTimeout((function() {
60364
+ var newWindowWidth = $(window).width();
60365
+ if (newWindowWidth < 768) {
60366
+ $(".app-wizard-step.current .subtitle-wrapper .step-title").css({
60367
+ height: "auto",
60368
+ display: "block"
60369
+ });
60370
+ var subtitleTextLength = $(".app-wizard-step.current .subtitle-wrapper .step-title").height();
60371
+ $(".read_more").css("display", "none");
60372
+ $(".current .subtitle-wrapper").removeClass("readmore_subtitle");
60373
+ if (subtitleTextLength > 44) {
60374
+ $(".app-wizard-step.current .subtitle-wrapper .step-title").css({
60375
+ height: "44px",
60376
+ display: "-webkit-box"
60377
+ });
60378
+ $(".current .read_more").css("display", "block");
60379
+ $(".active .read_more").css("display", "none");
60380
+ $(".disable .read_more").css("display", "none");
60381
+ $(".app-wizard-step>a").css("height", "100px");
60382
+ }
60383
+ }
60384
+ }));
60385
+ };
60386
+ WizardComponent.prototype.readMoreSubtitle = function() {
60387
+ $(".current .subtitle-wrapper").addClass("readmore_subtitle");
60388
+ $(".current .read_more").css("display", "none");
60389
+ $(document).on("mouseup", (function(e) {
60390
+ var container = $(".subtitle-wrapper");
60391
+ if (!container.is(e.target) && container.has(e.target).length === 0) {
60392
+ $(".current .subtitle-wrapper").removeClass("readmore_subtitle");
60393
+ $(".current .read_more").css("display", "block");
60394
+ $(document).off("mouseup");
60395
+ }
60396
+ }));
60397
+ };
60301
60398
  WizardComponent.prototype.isFirstStep = function(stepRef) {
60302
60399
  return this.steps.first === stepRef;
60303
60400
  };
@@ -60320,6 +60417,11 @@
60320
60417
  WizardComponent.prototype.ngAfterViewInit = function() {
60321
60418
  _super.prototype.ngAfterViewInit.call(this);
60322
60419
  base.styler(this.nativeElement.querySelector(".panel-body"), this, base.APPLY_STYLES_TYPE.INNER_SHELL);
60420
+ setTimeout((function() {
60421
+ if ($(window).width() < 768) {
60422
+ $(".app-wizard").removeClass("vertical");
60423
+ }
60424
+ }));
60323
60425
  };
60324
60426
  return WizardComponent;
60325
60427
  }(base.StylableComponent);
@@ -60328,7 +60430,7 @@
60328
60430
  type: core.Component,
60329
60431
  args: [ {
60330
60432
  selector: "div[wmWizard]",
60331
- template: '<div class="app-wizard-heading" role="tab">\n <ul class="app-wizard-steps nav nav-pills {{stepClass}}">\n <li class="app-wizard-step" *ngFor="let step of steps; let i = index" [hidden]="!step.show"\n [ngClass]="{active: step.done, current: step.active, disabled: step.disabled}"\n (click)="onWizardHeaderClick($event, step)">\n <a href="javascript:void(0)" [attr.aria-label]="step.title" [attr.title]="step.title">\n <span class="arrow" *ngIf="class && class.includes(\'classic\')"></span>\n <span class="wizard-step-number">\n <span class="count" *ngIf="class && class.includes(\'number\') && !step.isDone">{{i+1}}</span>\n <i class="dottedstepper" *ngIf="class && (class.includes(\'dottedstepper\') || class.includes(\'text-inline\') && !class.includes(\'iconstepper\')) && !step.isDone"></i>\n <i class="app-icon wi wi-done" *ngIf="class && (class.includes(\'dottedstepper\') || class.includes(\'number\')) && step.isDone"></i>\n <i class="app-icon {{step.iconclass}}" *ngIf="(class && class.includes(\'iconstepper\')) && ((step.iconclass && !step.isDone) || (step.iconclass && step.isDone && step.doneiconclass ===\'\'))"></i>\n <i class="app-icon {{step.doneiconclass}}" *ngIf="step.doneiconclass && step.isDone && (class && class.includes(\'iconstepper\'))"></i>\n </span>\n <span class="title-wrapper">\n <span *ngIf="class && class.includes(\'text-inline\')">{{\'0\' + (i+1)}}</span>\n <span class="step-title" [textContent]="step.title"></span>\n </span>\n </a>\n </li>\n </ul>\n</div>\n<div class="app-wizard-body panel-body" role="tabpanel">\n <p wmMessage *ngIf="message.caption" caption.bind="message.caption" type.bind="message.type"></p>\n <ng-content ngProjectAs="form[wmWizardStep]"></ng-content>\n</div>\n<div class="app-wizard-actions panel-footer {{actionsalignment}}">\n <a class="app-wizard-skip" name="skipStep_{{name}}" *ngIf="currentStep?.enableskip" title="Skip step" (click)="skip()">Skip &raquo;</a>\n <div class="app-wizard-actions-right">\n <button type="button" name="cancelBtn_{{name}}" class="btn app-button btn-default" *ngIf="cancelable"\n (click)="cancel()" [title]="cancelbtnlabel" [textContent]="cancelbtnlabel"></button>\n <button type="button" name="previousBtn_{{name}}" class="btn app-button btn-default"\n *ngIf="hasPrevStep" (click)="prev()" [disabled]="!enablePrev">\n <i class="app-icon wi wi-chevron-left"></i>\n <span class="btn-caption" [textContent]="previousbtnlabel"></span>\n </button>\n <button type="button" name="nextBtn_{{name}}" class="btn app-button btn-primary"\n *ngIf="hasNextStep" (click)="next()" [disabled]="!enableNext">\n <span class="btn-caption" [textContent]="nextbtnlabel"></span>\n <i class="app-icon wi wi-chevron-right"></i>\n </button>\n <button type="button" name="doneBtn_{{name}}" class="btn app-button btn-success"\n *ngIf="showDoneBtn" (click)="done()"\n [disabled]="!enableDone">\n <i class="app-icon wm-sl-l sl-check"></i>\n <span class="btn-caption" [textContent]="donebtnlabel"></span>\n </button>\n </div>\n</div>\n',
60433
+ template: '<div class="app-wizard-heading" role="tab">\n <ul class="app-wizard-steps nav nav-pills {{stepClass}}">\n <li class="app-wizard-step" *ngFor="let step of steps; let i = index" [hidden]="!step.show"\n [ngClass]="{active: step.done, current: step.active, disabled: step.disabled}"\n (click)="onWizardHeaderClick($event, step)">\n <a href="javascript:void(0)" [attr.aria-label]="step.title" [attr.title]="step.title" [ngClass]="{\'title-center-align\':class && class.includes(\'classic\') && !step.subtitle}">\n <span class="arrow" *ngIf="class && class.includes(\'classic\')"></span>\n <span class="wizard-step-number">\n <span class="count" *ngIf="class && class.includes(\'number\') && !step.isDone">{{i+1}}</span>\n <i class="dottedstepper" *ngIf="class && (class.includes(\'dottedstepper\') || class.includes(\'text-inline\') && !class.includes(\'iconstepper\')) && !step.isDone"></i>\n <i class="app-icon wi wi-done" *ngIf="class && (class.includes(\'dottedstepper\') || class.includes(\'number\')) && step.isDone"></i>\n <i class="app-icon {{step.iconclass}}" *ngIf="(class && class.includes(\'iconstepper\')) && ((step.iconclass && !step.isDone) || (step.iconclass && step.isDone && step.doneiconclass ===\'\'))"></i>\n <i class="app-icon {{step.doneiconclass}}" *ngIf="step.doneiconclass && step.isDone && (class && class.includes(\'iconstepper\'))"></i>\n </span>\n <span class="title-wrapper">\n <span *ngIf="class && class.includes(\'text-inline\')">{{\'0\' + (i+1)}}</span>\n <span class="step-title" [textContent]="step.title"></span>\n </span>\n <span class="subtitle-wrapper" [attr.title]="step.subtitle" *ngIf="step.subtitle">\n <span class="step-title" [textContent]="step.subtitle"></span>\n <a class="read_more" (click)="readMoreSubtitle()" style="display:none">more</a>\n </span>\n </a> \n </li>\n </ul>\n</div>\n<div class="app-wizard-body panel-body" role="tabpanel">\n <p wmMessage *ngIf="message.caption" caption.bind="message.caption" type.bind="message.type"></p>\n <ng-content ngProjectAs="form[wmWizardStep]"></ng-content>\n</div>\n<div class="app-wizard-actions panel-footer {{actionsalignment}}">\n <a class="app-wizard-skip" name="skipStep_{{name}}" *ngIf="currentStep?.enableskip" title="Skip step" (click)="skip()">Skip &raquo;</a>\n <div class="app-wizard-actions-right">\n <button type="button" name="cancelBtn_{{name}}" class="btn app-button btn-default" *ngIf="cancelable"\n (click)="cancel()" [title]="cancelbtnlabel" [textContent]="cancelbtnlabel"></button>\n <button type="button" name="previousBtn_{{name}}" class="btn app-button btn-default"\n *ngIf="hasPrevStep" (click)="prev()" [disabled]="!enablePrev">\n <i class="app-icon wi wi-chevron-left"></i>\n <span class="btn-caption" [textContent]="previousbtnlabel"></span>\n </button>\n <button type="button" name="nextBtn_{{name}}" class="btn app-button btn-primary"\n *ngIf="hasNextStep" (click)="next()" [disabled]="!enableNext">\n <span class="btn-caption" [textContent]="nextbtnlabel"></span>\n <i class="app-icon wi wi-chevron-right"></i>\n </button>\n <button type="button" name="doneBtn_{{name}}" class="btn app-button btn-success"\n *ngIf="showDoneBtn" (click)="done()"\n [disabled]="!enableDone">\n <i class="app-icon wm-sl-l sl-check"></i>\n <span class="btn-caption" [textContent]="donebtnlabel"></span>\n </button>\n </div>\n</div>\n',
60332
60434
  providers: [ base.provideAsWidgetRef(WizardComponent) ]
60333
60435
  } ]
60334
60436
  } ];
@@ -82348,9 +82450,152 @@
82348
82450
  type: ComponentRefProvider
82349
82451
  } ];
82350
82452
  };
82453
+ var PipeProvider = function() {
82454
+ function PipeProvider(compiler, injector, domSanitizer, i18service) {
82455
+ var _this = this;
82456
+ var _a;
82457
+ this.compiler = compiler;
82458
+ this.injector = injector;
82459
+ this.domSanitizer = domSanitizer;
82460
+ this.i18service = i18service;
82461
+ this._locale = i2.getSessionStorageItem("selectedLocale") || "en";
82462
+ this.formatsByLocale = (_a = this.i18service) === null || _a === void 0 ? void 0 : _a.getwidgetLocale();
82463
+ this.preparePipeMeta = function(reference, name, pure, diDeps) {
82464
+ if (diDeps === void 0) {
82465
+ diDeps = [];
82466
+ }
82467
+ return {
82468
+ type: {
82469
+ reference: reference,
82470
+ diDeps: diDeps
82471
+ },
82472
+ name: name,
82473
+ pure: pure
82474
+ };
82475
+ };
82476
+ this._pipeData = [ this.preparePipeMeta(common.AsyncPipe, "async", false, [ i0.ChangeDetectorRef ]), this.preparePipeMeta(common.SlicePipe, "slice", false), this.preparePipeMeta(common.PercentPipe, "percent", true, [ this._locale ]), this.preparePipeMeta(common.I18nPluralPipe, "i18nPlural", true, [ common.NgLocalization ]), this.preparePipeMeta(common.I18nSelectPipe, "i18nSelect", true), this.preparePipeMeta(common.KeyValuePipe, "keyvalue", false, [ i0.KeyValueDiffers ]), this.preparePipeMeta(base.FileIconClassPipe, "fileIconClass", true), this.preparePipeMeta(base.FileExtensionFromMimePipe, "fileExtensionFromMime", true), this.preparePipeMeta(base.StateClassPipe, "stateClass", true), this.preparePipeMeta(base.FileSizePipe, "filesize", true), this.preparePipeMeta(base.FilterPipe, "filter", true), this.preparePipeMeta(common.UpperCasePipe, "uppercase", true), this.preparePipeMeta(common.LowerCasePipe, "lowercase", true), this.preparePipeMeta(common.JsonPipe, "json", false), this.preparePipeMeta(common.DecimalPipe, "number", true, [ this._locale ]), this.preparePipeMeta(common.TitleCasePipe, "titlecase", true), this.preparePipeMeta(common.CurrencyPipe, "currency", true, [ this._locale ]), this.preparePipeMeta(common.DatePipe, "date", true, [ this._locale ]), this.preparePipeMeta(base.ToDatePipe, "toDate", true, [ new common.DatePipe(this._locale) ]), this.preparePipeMeta(base.ToNumberPipe, "toNumber", true, [ new common.DecimalPipe(this._locale), this.i18service ]), this.preparePipeMeta(base.ToCurrencyPipe, "toCurrency", true, [ new common.DecimalPipe(this._locale), this.i18service ]), this.preparePipeMeta(base.PrefixPipe, "prefix", true), this.preparePipeMeta(base.SuffixPipe, "suffix", true), this.preparePipeMeta(base.TimeFromNowPipe, "timeFromNow", true), this.preparePipeMeta(base.NumberToStringPipe, "numberToString", true, [ new common.DecimalPipe(this._locale) ]), this.preparePipeMeta(base.StringToNumberPipe, "stringToNumber", true), this.preparePipeMeta(base.CustomPipe, "custom", true, [ this.injector.get(i2.CustomPipeManager) ]), this.preparePipeMeta(base.TrustAsPipe, "trustAs", true, [ this.domSanitizer ]), this.preparePipeMeta(base.SanitizePipe, "sanitize", true, [ this.domSanitizer ]) ];
82477
+ this._pipeMeta = new Map;
82478
+ this._pipeData.forEach((function(v) {
82479
+ _this._pipeMeta.set(v.name, v);
82480
+ }));
82481
+ }
82482
+ PipeProvider.prototype.unknownPipe = function(name) {
82483
+ throw Error("The pipe '" + name + "' could not be found");
82484
+ };
82485
+ PipeProvider.prototype.meta = function(name) {
82486
+ var meta = this._pipeMeta.get(name);
82487
+ if (!meta) {
82488
+ this.unknownPipe(name);
82489
+ }
82490
+ return meta;
82491
+ };
82492
+ PipeProvider.prototype.getPipeNameVsIsPureMap = function() {
82493
+ var _map = new Map;
82494
+ this._pipeMeta.forEach((function(v, k) {
82495
+ _map.set(k, v.pure);
82496
+ }));
82497
+ return _map;
82498
+ };
82499
+ PipeProvider.prototype.resolveDep = function(dep) {
82500
+ return this.injector.get(dep.token.identifier.reference);
82501
+ };
82502
+ PipeProvider.prototype.getInstance = function(name) {
82503
+ var e_1, _b;
82504
+ var _c = this.meta(name).type, ref = _c.reference, deps = _c.diDeps;
82505
+ if (!ref) {
82506
+ this.unknownPipe(name);
82507
+ }
82508
+ if (!deps.length) {
82509
+ return new ref;
82510
+ } else {
82511
+ var args = [];
82512
+ try {
82513
+ for (var deps_1 = __values(deps), deps_1_1 = deps_1.next(); !deps_1_1.done; deps_1_1 = deps_1.next()) {
82514
+ var dep = deps_1_1.value;
82515
+ args.push(dep);
82516
+ }
82517
+ } catch (e_1_1) {
82518
+ e_1 = {
82519
+ error: e_1_1
82520
+ };
82521
+ } finally {
82522
+ try {
82523
+ if (deps_1_1 && !deps_1_1.done && (_b = deps_1.return)) _b.call(deps_1);
82524
+ } finally {
82525
+ if (e_1) throw e_1.error;
82526
+ }
82527
+ }
82528
+ return new (ref.bind.apply(ref, __spreadArray([ void 0 ], __read(args))));
82529
+ }
82530
+ };
82531
+ return PipeProvider;
82532
+ }();
82533
+ PipeProvider.\u0275prov = i0__namespace.\u0275\u0275defineInjectable({
82534
+ factory: function PipeProvider_Factory() {
82535
+ return new PipeProvider(i0__namespace.\u0275\u0275inject(i0__namespace.Compiler), i0__namespace.\u0275\u0275inject(i0__namespace.INJECTOR), i0__namespace.\u0275\u0275inject(i1__namespace.DomSanitizer), i0__namespace.\u0275\u0275inject(i2__namespace.AbstractI18nService));
82536
+ },
82537
+ token: PipeProvider,
82538
+ providedIn: "root"
82539
+ });
82540
+ PipeProvider.decorators = [ {
82541
+ type: i0.Injectable,
82542
+ args: [ {
82543
+ providedIn: "root"
82544
+ } ]
82545
+ } ];
82546
+ PipeProvider.ctorParameters = function() {
82547
+ return [ {
82548
+ type: i0.Compiler
82549
+ }, {
82550
+ type: i0.Injector
82551
+ }, {
82552
+ type: i1.DomSanitizer
82553
+ }, {
82554
+ type: i2.AbstractI18nService
82555
+ } ];
82556
+ };
82557
+ var PipeService = function() {
82558
+ function PipeService(pipeProvider, $app) {
82559
+ this.pipeProvider = pipeProvider;
82560
+ this.$app = $app;
82561
+ this.supportedPipes = [ "toDate", "toCurrency", "prefix", "suffix", "numberToString", "stringToNumber", "timeFromNow", "trustAs", "sanitize" ];
82562
+ if (this.$app.isApplicationType) {
82563
+ this.supportedPipes.push("custom");
82564
+ }
82565
+ }
82566
+ PipeService.prototype.getPipe = function(name) {
82567
+ if (this.supportedPipes.includes(name)) {
82568
+ return this.pipeProvider.getInstance(name);
82569
+ } else {
82570
+ throw Error("The pipe '" + name + "' could not be found");
82571
+ }
82572
+ };
82573
+ return PipeService;
82574
+ }();
82575
+ PipeService.\u0275prov = i0__namespace.\u0275\u0275defineInjectable({
82576
+ factory: function PipeService_Factory() {
82577
+ return new PipeService(i0__namespace.\u0275\u0275inject(PipeProvider), i0__namespace.\u0275\u0275inject(i2__namespace.App));
82578
+ },
82579
+ token: PipeService,
82580
+ providedIn: "root"
82581
+ });
82582
+ PipeService.decorators = [ {
82583
+ type: i0.Injectable,
82584
+ args: [ {
82585
+ providedIn: "root"
82586
+ } ]
82587
+ } ];
82588
+ PipeService.ctorParameters = function() {
82589
+ return [ {
82590
+ type: PipeProvider
82591
+ }, {
82592
+ type: i2.App
82593
+ } ];
82594
+ };
82351
82595
  var injectorMap = {
82352
82596
  DialogService: i2.AbstractDialogService,
82353
82597
  i18nService: i2.AbstractI18nService,
82598
+ PipeService: PipeService,
82354
82599
  statePersistence: i2.StatePersistence,
82355
82600
  SpinnerService: i2.AbstractSpinnerService,
82356
82601
  StatePersistenceService: i2.StatePersistence,
@@ -83467,110 +83712,6 @@
83467
83712
  type: i2.AbstractI18nService
83468
83713
  } ];
83469
83714
  };
83470
- var PipeProvider = function() {
83471
- function PipeProvider(compiler, injector, domSanitizer, i18service) {
83472
- var _this = this;
83473
- var _a;
83474
- this.compiler = compiler;
83475
- this.injector = injector;
83476
- this.domSanitizer = domSanitizer;
83477
- this.i18service = i18service;
83478
- this._locale = i2.getSessionStorageItem("selectedLocale") || "en";
83479
- this.formatsByLocale = (_a = this.i18service) === null || _a === void 0 ? void 0 : _a.getwidgetLocale();
83480
- this.preparePipeMeta = function(reference, name, pure, diDeps) {
83481
- if (diDeps === void 0) {
83482
- diDeps = [];
83483
- }
83484
- return {
83485
- type: {
83486
- reference: reference,
83487
- diDeps: diDeps
83488
- },
83489
- name: name,
83490
- pure: pure
83491
- };
83492
- };
83493
- this._pipeData = [ this.preparePipeMeta(common.AsyncPipe, "async", false, [ i0.ChangeDetectorRef ]), this.preparePipeMeta(common.SlicePipe, "slice", false), this.preparePipeMeta(common.PercentPipe, "percent", true, [ this._locale ]), this.preparePipeMeta(common.I18nPluralPipe, "i18nPlural", true, [ common.NgLocalization ]), this.preparePipeMeta(common.I18nSelectPipe, "i18nSelect", true), this.preparePipeMeta(common.KeyValuePipe, "keyvalue", false, [ i0.KeyValueDiffers ]), this.preparePipeMeta(base.FileIconClassPipe, "fileIconClass", true), this.preparePipeMeta(base.FileExtensionFromMimePipe, "fileExtensionFromMime", true), this.preparePipeMeta(base.StateClassPipe, "stateClass", true), this.preparePipeMeta(base.FileSizePipe, "filesize", true), this.preparePipeMeta(base.FilterPipe, "filter", true), this.preparePipeMeta(common.UpperCasePipe, "uppercase", true), this.preparePipeMeta(common.LowerCasePipe, "lowercase", true), this.preparePipeMeta(common.JsonPipe, "json", false), this.preparePipeMeta(common.DecimalPipe, "number", true, [ this._locale ]), this.preparePipeMeta(common.TitleCasePipe, "titlecase", true), this.preparePipeMeta(common.CurrencyPipe, "currency", true, [ this._locale ]), this.preparePipeMeta(common.DatePipe, "date", true, [ this._locale ]), this.preparePipeMeta(base.ToDatePipe, "toDate", true, [ new common.DatePipe(this._locale) ]), this.preparePipeMeta(base.ToNumberPipe, "toNumber", true, [ new common.DecimalPipe(this._locale), this.i18service ]), this.preparePipeMeta(base.ToCurrencyPipe, "toCurrency", true, [ new common.DecimalPipe(this._locale), this.i18service ]), this.preparePipeMeta(base.PrefixPipe, "prefix", true), this.preparePipeMeta(base.SuffixPipe, "suffix", true), this.preparePipeMeta(base.TimeFromNowPipe, "timeFromNow", true), this.preparePipeMeta(base.NumberToStringPipe, "numberToString", true, [ new common.DecimalPipe(this._locale) ]), this.preparePipeMeta(base.StringToNumberPipe, "stringToNumber", true), this.preparePipeMeta(base.CustomPipe, "custom", true, [ this.injector.get(i2.CustomPipeManager) ]), this.preparePipeMeta(base.TrustAsPipe, "trustAs", true, [ this.domSanitizer ]), this.preparePipeMeta(base.SanitizePipe, "sanitize", true, [ this.domSanitizer ]) ];
83494
- this._pipeMeta = new Map;
83495
- this._pipeData.forEach((function(v) {
83496
- _this._pipeMeta.set(v.name, v);
83497
- }));
83498
- }
83499
- PipeProvider.prototype.unknownPipe = function(name) {
83500
- throw Error("The pipe '" + name + "' could not be found");
83501
- };
83502
- PipeProvider.prototype.meta = function(name) {
83503
- var meta = this._pipeMeta.get(name);
83504
- if (!meta) {
83505
- this.unknownPipe(name);
83506
- }
83507
- return meta;
83508
- };
83509
- PipeProvider.prototype.getPipeNameVsIsPureMap = function() {
83510
- var _map = new Map;
83511
- this._pipeMeta.forEach((function(v, k) {
83512
- _map.set(k, v.pure);
83513
- }));
83514
- return _map;
83515
- };
83516
- PipeProvider.prototype.resolveDep = function(dep) {
83517
- return this.injector.get(dep.token.identifier.reference);
83518
- };
83519
- PipeProvider.prototype.getInstance = function(name) {
83520
- var e_1, _b;
83521
- var _c = this.meta(name).type, ref = _c.reference, deps = _c.diDeps;
83522
- if (!ref) {
83523
- this.unknownPipe(name);
83524
- }
83525
- if (!deps.length) {
83526
- return new ref;
83527
- } else {
83528
- var args = [];
83529
- try {
83530
- for (var deps_1 = __values(deps), deps_1_1 = deps_1.next(); !deps_1_1.done; deps_1_1 = deps_1.next()) {
83531
- var dep = deps_1_1.value;
83532
- args.push(dep);
83533
- }
83534
- } catch (e_1_1) {
83535
- e_1 = {
83536
- error: e_1_1
83537
- };
83538
- } finally {
83539
- try {
83540
- if (deps_1_1 && !deps_1_1.done && (_b = deps_1.return)) _b.call(deps_1);
83541
- } finally {
83542
- if (e_1) throw e_1.error;
83543
- }
83544
- }
83545
- return new (ref.bind.apply(ref, __spreadArray([ void 0 ], __read(args))));
83546
- }
83547
- };
83548
- return PipeProvider;
83549
- }();
83550
- PipeProvider.\u0275prov = i0__namespace.\u0275\u0275defineInjectable({
83551
- factory: function PipeProvider_Factory() {
83552
- return new PipeProvider(i0__namespace.\u0275\u0275inject(i0__namespace.Compiler), i0__namespace.\u0275\u0275inject(i0__namespace.INJECTOR), i0__namespace.\u0275\u0275inject(i1__namespace.DomSanitizer), i0__namespace.\u0275\u0275inject(i2__namespace.AbstractI18nService));
83553
- },
83554
- token: PipeProvider,
83555
- providedIn: "root"
83556
- });
83557
- PipeProvider.decorators = [ {
83558
- type: i0.Injectable,
83559
- args: [ {
83560
- providedIn: "root"
83561
- } ]
83562
- } ];
83563
- PipeProvider.ctorParameters = function() {
83564
- return [ {
83565
- type: i0.Compiler
83566
- }, {
83567
- type: i0.Injector
83568
- }, {
83569
- type: i1.DomSanitizer
83570
- }, {
83571
- type: i2.AbstractI18nService
83572
- } ];
83573
- };
83574
83715
  var AppComponent = function() {
83575
83716
  function AppComponent(_pipeProvider, _appRef, elRef, oAuthService, dialogService, spinnerService, ngZone, router$1, app, appManager) {
83576
83717
  var _this = this;
@@ -84561,7 +84702,7 @@
84561
84702
  provide: http.HTTP_INTERCEPTORS,
84562
84703
  useClass: HttpCallInterceptor,
84563
84704
  multi: true
84564
- }, common.DecimalPipe, common.DatePipe, AppManagerService, PrefabManagerService, AuthGuard, RoleGuard, PageNotFoundGaurd, CanDeactivatePageGuard, AppJSResolve, AppExtensionJSResolve, I18nResolve, getSettingProvider(MAX_CACHE_SIZE, 10), getSettingProvider(MAX_CACHE_AGE, 30 * 60) ]
84705
+ }, PipeService, common.DecimalPipe, common.DatePipe, AppManagerService, PrefabManagerService, AuthGuard, RoleGuard, PageNotFoundGaurd, CanDeactivatePageGuard, AppJSResolve, AppExtensionJSResolve, I18nResolve, getSettingProvider(MAX_CACHE_SIZE, 10), getSettingProvider(MAX_CACHE_AGE, 30 * 60) ]
84565
84706
  };
84566
84707
  };
84567
84708
  RuntimeBaseModule.prototype.getDeviceDetails = function() {
@@ -84754,6 +84895,7 @@
84754
84895
  exports.NavigationServiceImpl = NavigationServiceImpl;
84755
84896
  exports.PageNotFoundGaurd = PageNotFoundGaurd;
84756
84897
  exports.PipeProvider = PipeProvider;
84898
+ exports.PipeService = PipeService;
84757
84899
  exports.PrefabConfigProvider = PrefabConfigProvider;
84758
84900
  exports.PrefabDirective = PrefabDirective;
84759
84901
  exports.PrefabManagerService = PrefabManagerService;