@wavemaker/app-runtime-wm-build 11.4.0-next.28152 → 11.4.0-rc.121

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()) {
@@ -5052,7 +5058,12 @@
5052
5058
  fieldDefs = [];
5053
5059
  parent.gridOptions.setCurrentPage(1);
5054
5060
  }
5055
- var currentPage = parent.currentPage;
5061
+ var currentPage;
5062
+ if (parent.widgetType === "wm-table") {
5063
+ currentPage = parent.gridOptions.showviewlessbutton && parent.gridOptions.mode === "viewless" ? parent.gridOptions.getCurrentPage() : parent.currentPage;
5064
+ } else {
5065
+ currentPage = parent.currentPage;
5066
+ }
5056
5067
  var dataNavigator = parent.dataNavigator;
5057
5068
  var pagesize = parent.pagesize;
5058
5069
  if (!isDefined(fieldDefs) || dataNavigator.isFirstPage()) {
@@ -8652,6 +8663,16 @@
8652
8663
  var routeRegex = new RegExp("^(#/|#)" + routeName + "$");
8653
8664
  return routeRegex.test(link);
8654
8665
  };
8666
+ var hasLinkToCurrentPage = function(nodes, routeUrl) {
8667
+ return nodes.some((function(node) {
8668
+ if (isActiveNavItem(node.link, routeUrl)) {
8669
+ return true;
8670
+ }
8671
+ if (node.children) {
8672
+ return hasLinkToCurrentPage(node.children, routeUrl);
8673
+ }
8674
+ }));
8675
+ };
8655
8676
  var getOrderByExpr = function(pageableObj) {
8656
8677
  pageableObj = pageableObj || [];
8657
8678
  var expressions = [], KEY_VAL_SEPARATOR = " ", FIELD_SEPARATOR = ",";
@@ -8958,9 +8979,11 @@
8958
8979
  });
8959
8980
  };
8960
8981
  var getKeyboardFocusableElements = function(element) {
8961
- 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) {
8962
- return !el[0].hasAttribute("disabled") && !el[0].hasAttribute("hidden");
8963
- }))[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
+ }));
8964
8987
  };
8965
8988
  exports.APPLY_STYLES_TYPE = void 0;
8966
8989
  (function(APPLY_STYLES_TYPE) {
@@ -10367,7 +10390,18 @@
10367
10390
  configurable: true
10368
10391
  });
10369
10392
  ShowInDeviceDirective.prototype.onResize = function($event) {
10370
- 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) {
10371
10405
  if (!this.embeddedView) {
10372
10406
  this.embeddedView = this.viewContainerRef.createEmbeddedView(this.templateRef, this.context);
10373
10407
  }
@@ -11214,6 +11248,10 @@
11214
11248
  if (openedDialogs.indexOf(ref) !== -1) {
11215
11249
  openedDialogs.splice(openedDialogs.indexOf(ref), 1);
11216
11250
  }
11251
+ if (openedDialogs.length === 0 && (core$1.isMobile() || core$1.isMobileApp())) {
11252
+ var parentSelector = $("body > app-root")[0];
11253
+ parentSelector.removeAttribute("aria-hidden");
11254
+ }
11217
11255
  };
11218
11256
  DialogServiceImpl.prototype.getOpenedDialogs = function() {
11219
11257
  return openedDialogs;
@@ -12389,7 +12427,8 @@
12389
12427
  mindate: "mindate",
12390
12428
  maxdate: "maxdate",
12391
12429
  excludedates: "excludedates",
12392
- excludedays: "excludedays"
12430
+ excludedays: "excludedays",
12431
+ invalidNumber: "invalidNumber"
12393
12432
  };
12394
12433
  var BaseFieldValidations = function() {
12395
12434
  function BaseFieldValidations(instance, formwidget, widgettype, widgetControl, widgetContext, tableFieldType) {
@@ -13022,6 +13061,7 @@
13022
13061
  exports.getWidgetPropsByType = getWidgetPropsByType;
13023
13062
  exports.groupData = groupData;
13024
13063
  exports.handleHeaderClick = handleHeaderClick;
13064
+ exports.hasLinkToCurrentPage = hasLinkToCurrentPage;
13025
13065
  exports.interpolateBindExpressions = interpolateBindExpressions;
13026
13066
  exports.isActiveNavItem = isActiveNavItem;
13027
13067
  exports.isBooleanAttr = isBooleanAttr;
@@ -13419,21 +13459,19 @@
13419
13459
  __proto__: null,
13420
13460
  default: search_build
13421
13461
  });
13422
- var tagName$1o = "div";
13462
+ var tagName$1o = "ul";
13423
13463
  transpiler.register("wm-tree", (function() {
13424
13464
  return {
13425
13465
  pre: function(attrs) {
13426
- return "<" + tagName$1o + " wmTree " + transpiler.getAttrMarkup(attrs) + ">";
13466
+ return "<" + tagName$1o + ' wmTree class="ztree" ' + transpiler.getAttrMarkup(attrs) + ">";
13427
13467
  },
13428
13468
  post: function() {
13429
13469
  return "</" + tagName$1o + ">";
13430
13470
  }
13431
13471
  };
13432
13472
  }));
13433
- var tree_build = function() {};
13434
- var tree_build$1 = Object.freeze({
13435
- __proto__: null,
13436
- default: tree_build
13473
+ var tree_build = Object.freeze({
13474
+ __proto__: null
13437
13475
  });
13438
13476
  var tagName$1n = "div";
13439
13477
  transpiler.register("wm-card", (function() {
@@ -14199,7 +14237,7 @@
14199
14237
  var eventsTmpl = widgetType === core.FormWidgetType.UPLOAD ? "" : getEventsTemplate(attrs);
14200
14238
  var controlLayout = core.isMobileApp() ? "col-xs-12" : "col-sm-12";
14201
14239
  var isInList = pCounter === (parentList && parentList.get("parent_form_reference"));
14202
- attrs.set("__errormsg", formFieldErrorMsgId);
14240
+ attrs.set("__validationId", formFieldErrorMsgId);
14203
14241
  attrs.set("__widgetType", widgetType);
14204
14242
  attrs.delete("widget");
14205
14243
  shared.set("counter", counter);
@@ -15039,7 +15077,7 @@
15039
15077
  }
15040
15078
  var markup = "<" + tagName$q + " wmPopover " + transpiler.getAttrMarkup(attrs) + ">";
15041
15079
  var contextAttrs = table ? 'let-row="row"' : "";
15042
- markup += "<ng-template " + contextAttrs + '><button class="popover-start"></button>';
15080
+ markup += "<ng-template " + contextAttrs + '><div tabindex="0" class="popover-start sr-only" aria-label="">popover content start</div>';
15043
15081
  if (popoverTemplate) {
15044
15082
  markup += "" + (popoverTemplate ? popoverTemplate : "");
15045
15083
  }
@@ -15050,7 +15088,7 @@
15050
15088
  if (shared.get("hasPopoverContent")) {
15051
15089
  markup += "</div>";
15052
15090
  }
15053
- return markup + '<button class="popover-end"></button></ng-template></' + tagName$q + ">";
15091
+ return markup + '<div tabindex="0" class="popover-end sr-only" aria-label="">popover content ended</div></ng-template></' + tagName$q + ">";
15054
15092
  }
15055
15093
  };
15056
15094
  }));
@@ -16414,7 +16452,7 @@
16414
16452
  exports.tileBuild = tile_build$1;
16415
16453
  exports.timeBuild = time_build$1;
16416
16454
  exports.topNavBuild = topNav_build$1;
16417
- exports.treeBuild = tree_build$1;
16455
+ exports.treeBuild = tree_build;
16418
16456
  exports.videoBuild = video_build$1;
16419
16457
  exports.wizardBuild = wizard_build$1;
16420
16458
  exports.wizardStepBuild = wizardStep_build$1;
@@ -23140,346 +23178,435 @@
23140
23178
  value: 0
23141
23179
  }, base.PROP_NUMBER) ], [ "treeicons", base.PROP_STRING ] ]));
23142
23180
  };
23143
- var defaultTreeIconClass = "plus-minus";
23144
- var ICON_CLASSES = {
23145
- folder: {
23146
- expanded: "wi-folder-open",
23147
- collapsed: "wi-folder"
23148
- },
23149
- "circle-plus-minus": {
23150
- expanded: "wi-remove-circle-outline",
23151
- collapsed: "wi-add-circle-outline"
23152
- },
23153
- chevron: {
23154
- expanded: "wi-keyboard-arrow-down",
23155
- collapsed: "wi-keyboard-arrow-right"
23156
- },
23157
- menu: {
23158
- expanded: "wi-arrow-down",
23159
- collapsed: "wi-arrow-right"
23160
- },
23161
- triangle: {
23162
- expanded: "wi-arrow-drop-down-circle",
23163
- collapsed: "wi-play-circle-filled"
23164
- },
23165
- "expand-collapse": {
23166
- expanded: "wi-expand-less",
23167
- collapsed: "wi-expand-more"
23168
- },
23169
- "plus-minus": {
23170
- expanded: "wi-minus",
23171
- collapsed: "wi-plus"
23172
- }
23173
- };
23174
23181
  var WIDGET_INFO = {
23175
23182
  widgetType: "wm-tree",
23176
23183
  hostClass: "app-tree"
23177
23184
  };
23178
- var TreeDirective = function(_super) {
23179
- __extends(TreeDirective, _super);
23180
- function TreeDirective(inj, binddatavalue, bindnodelabel, bindnodeicon, bindnodechildren, bindnodeid) {
23185
+ var defaultTreeIconClass = "plus-minus";
23186
+ var TreeComponent = function(_super) {
23187
+ __extends(TreeComponent, _super);
23188
+ function TreeComponent(inj) {
23181
23189
  var _this = _super.call(this, inj, WIDGET_INFO) || this;
23182
- _this.binddatavalue = binddatavalue;
23183
- _this.bindnodelabel = bindnodelabel;
23184
- _this.bindnodeicon = bindnodeicon;
23185
- _this.bindnodechildren = bindnodechildren;
23186
- _this.bindnodeid = bindnodeid;
23190
+ _this.setting = {
23191
+ data: {
23192
+ simpleData: {
23193
+ enable: false
23194
+ },
23195
+ key: {
23196
+ children: "children",
23197
+ name: "label"
23198
+ }
23199
+ },
23200
+ view: {
23201
+ dblClickExpand: false,
23202
+ fontCss: {
23203
+ "font-awesome": true
23204
+ },
23205
+ switchIcon: {}
23206
+ },
23207
+ check: {},
23208
+ callback: {}
23209
+ };
23187
23210
  base.styler(_this.nativeElement, _this, base.APPLY_STYLES_TYPE.CONTAINER);
23188
- _this.bindEvents();
23189
23211
  return _this;
23190
23212
  }
23191
- TreeDirective.prototype.onPropertyChange = function(key, nv, ov) {
23213
+ TreeComponent.prototype.onPropertyChange = function(key, nv, ov) {
23192
23214
  switch (key) {
23193
23215
  case "dataset":
23194
23216
  this.nodes = this.getNodes(nv);
23195
- this._selectNode = undefined;
23217
+ if (this.level > 0) {
23218
+ this.expandTree(this.level, this.nodes, 0);
23219
+ }
23220
+ this.renderTree();
23221
+ break;
23222
+
23223
+ case "levels":
23224
+ if (nv > 0) {
23225
+ this.level = nv;
23226
+ }
23227
+ this.renderTree();
23228
+ break;
23229
+
23230
+ case "treeicons":
23231
+ this.treeicon = nv;
23196
23232
  this.renderTree();
23197
23233
  break;
23198
23234
 
23199
- case "nodeicon":
23200
23235
  case "nodelabel":
23236
+ this.setting.data.key.name = this.labelKey;
23237
+ this.renderTree();
23238
+ break;
23239
+
23201
23240
  case "nodechildren":
23202
- case "orderby":
23241
+ this.setting.data.key.children = this.childrenKey;
23203
23242
  this.renderTree();
23204
23243
  break;
23205
23244
 
23206
- case "treeicons":
23207
- this.changeTreeIcons(nv, ov);
23245
+ case "nodeicon":
23246
+ this.nodeicon = this.iconKey;
23247
+ this.renderTree();
23208
23248
  break;
23209
23249
 
23210
- case "datavalue":
23211
- this.selectById(nv);
23250
+ case "orderby":
23251
+ this.renderTree();
23252
+ break;
23253
+
23254
+ case "class":
23255
+ this.treeClass = nv;
23256
+ this.renderTree();
23212
23257
  break;
23213
23258
 
23214
23259
  default:
23215
23260
  _super.prototype.onPropertyChange.call(this, key, nv, ov);
23261
+ break;
23216
23262
  }
23217
23263
  };
23218
- TreeDirective.prototype.constructNodes = function(nodes, parent, levels, deep, _evalDataValue) {
23264
+ TreeComponent.prototype.expandTree = function(level, node, childLevel) {
23219
23265
  var _this = this;
23220
- var $ul = $("<ul></ul>");
23221
- var _iconClses = ICON_CLASSES[this.treeicons || defaultTreeIconClass];
23222
- var _expr = this.binddatavalue || this.datavalue;
23223
- var _iconCls, _cls;
23224
- _cls = levels > 0 ? " expanded " : " collapsed ";
23225
- _iconCls = _cls + (levels > 0 ? _iconClses.expanded : _iconClses.collapsed);
23226
- deep = deep || 0;
23227
- parent.append($ul);
23228
- nodes.forEach((function(node, idx) {
23229
- var $li = $("<li></li>"), $iconNode = $("<i></i>"), nodeLabel = base.getEvaluatedData(node, {
23230
- field: _this.nodelabel,
23231
- bindExpression: _this.bindnodelabel
23232
- }, _this.viewParent) || node.label, nodeIcon = base.getEvaluatedData(node, {
23233
- field: _this.nodeicon,
23234
- bindExpression: _this.bindnodeicon
23235
- }, _this.viewParent) || node.icon, nodeChildren = base.getEvaluatedData(node, {
23236
- field: _this.nodechildren,
23237
- bindExpression: _this.bindnodechildren
23238
- }, _this.viewParent) || node.children;
23239
- var nodeIdValue = base.getEvaluatedData(node, {
23240
- field: _this.nodeid,
23241
- bindExpression: _this.bindnodeid
23242
- }, _this.viewParent);
23243
- if (nodeIdValue === undefined) {
23244
- nodeIdValue = node.children;
23245
- }
23246
- var isNodeMatched = false, expandCollapseIcon;
23247
- $li.data("nodedata", node).append($iconNode).append('<span class="title">' + nodeLabel + "</span>").appendTo($ul);
23248
- if (_this.bindnodeid || _this.nodeid) {
23249
- isNodeMatched = _this.binddatavalue ? nodeIdValue === _evalDataValue : nodeIdValue === _expr;
23250
- if (nodeIdValue !== undefined) {
23251
- $li.attr("id", nodeIdValue);
23252
- }
23253
- } else if (_this.binddatavalue) {
23254
- isNodeMatched = !!core.$parseExpr(_expr)(_this, node);
23255
- }
23256
- if (!_this._selectNode) {
23257
- if (_expr === "FirstNode" && idx === 0 || !deep && _expr === "LastNode" && idx === nodes.length - 1 || isNodeMatched) {
23258
- _this._selectNode = $li;
23259
- _this.datavalue = nodeIdValue;
23260
- }
23261
- }
23262
- if (nodeIcon) {
23263
- $iconNode.addClass(nodeIcon);
23264
- }
23265
- if (nodeChildren && nodeChildren.length) {
23266
- $li.addClass("parent-node " + _cls);
23267
- expandCollapseIcon = $('<i class="wi ' + _iconCls + '"></i>');
23268
- if (nodeIcon) {
23269
- $iconNode.addClass(nodeIcon);
23270
- }
23271
- $li.prepend(expandCollapseIcon);
23272
- _this.constructNodes(nodeChildren, $li, levels - 1, deep + 1, _evalDataValue);
23266
+ node.map((function(childNode) {
23267
+ var children = _this.getChildren(childNode);
23268
+ if (children && !("open" in childNode) && childLevel < level) {
23269
+ childNode["open"] = true;
23270
+ _this.expandTree(level, children, childLevel + 1);
23273
23271
  } else {
23274
- if (!nodeIcon) {
23275
- $iconNode.addClass("leaf-node");
23276
- }
23277
- $li.addClass("leaf-node");
23272
+ childLevel = 0;
23273
+ return;
23278
23274
  }
23279
23275
  }));
23280
23276
  };
23281
- TreeDirective.prototype.getNodesFromString = function(value) {
23277
+ TreeComponent.prototype.setTreeTemplate = function(value) {
23278
+ if (value === "Classic") {
23279
+ this.setting.check["enable"] = false;
23280
+ } else if (value === "Checkbox") {
23281
+ this.setting.check["enable"] = true;
23282
+ this.setting.check["chkStyle"] = "checkbox";
23283
+ } else if (value === "Radio") {
23284
+ this.setting.check["enable"] = true;
23285
+ this.setting.check["chkStyle"] = "radio";
23286
+ this.setting.check["radioType"] = "all";
23287
+ }
23288
+ };
23289
+ TreeComponent.prototype.getNodesFromString = function(value) {
23282
23290
  return value.split(",").map((function(item) {
23283
23291
  return {
23284
23292
  label: item && item.trim()
23285
23293
  };
23286
23294
  }));
23287
23295
  };
23288
- TreeDirective.prototype.getNodes = function(newVal) {
23296
+ TreeComponent.prototype.getNodes = function(newVal) {
23289
23297
  var nodes;
23290
- if (_.isString(newVal) && !_.isEmpty(newVal)) {
23298
+ if (_.isArray(newVal)) {
23299
+ nodes = base.getOrderedDataset(newVal, this.orderby);
23300
+ } else if (_.isObject(newVal)) {
23301
+ nodes = [ newVal ];
23302
+ } else if (_.isString(newVal) && !_.isEmpty(newVal)) {
23291
23303
  newVal = newVal.trim();
23292
23304
  if (newVal) {
23293
23305
  nodes = this.getNodesFromString(newVal);
23294
23306
  }
23295
- } else if (_.isArray(newVal)) {
23296
- newVal = base.getOrderedDataset(newVal, this.orderby);
23297
- nodes = newVal;
23298
- } else if (_.isObject(newVal)) {
23299
- nodes = [ newVal ];
23300
23307
  }
23301
23308
  return nodes;
23302
23309
  };
23303
- TreeDirective.prototype.changeTreeIcons = function(nv, ov) {
23304
- var $el = $(this.nativeElement);
23305
- nv = nv || defaultTreeIconClass;
23306
- ov = ov || defaultTreeIconClass;
23307
- $el.find("i.expanded").removeClass(ICON_CLASSES[ov].expanded).addClass(ICON_CLASSES[nv].expanded);
23308
- $el.find("i.collapsed").removeClass(ICON_CLASSES[ov].collapsed).addClass(ICON_CLASSES[nv].collapsed);
23309
- };
23310
- TreeDirective.prototype.toggleExpandCollapseNode = function($event, $i, $li) {
23311
- var treeIcons = ICON_CLASSES[this.treeicons || defaultTreeIconClass];
23312
- var $liPath = this.findSelectedNodeParent($li);
23313
- var path = "";
23314
- $liPath.each((function(i, el) {
23315
- var current = $(el).children(".title").text();
23316
- path = "/" + (current + path);
23310
+ TreeComponent.prototype.setNodeclasses = function(treeId, treeNode) {
23311
+ return treeNode.icon ? {
23312
+ add: [ "" + treeNode.icon ]
23313
+ } : "";
23314
+ };
23315
+ TreeComponent.prototype.setNodeData = function(nodes, depth, level, parentNode, type) {
23316
+ var _this = this;
23317
+ if (depth === 0) {
23318
+ nodes.map((function(node) {
23319
+ var children = _this.getChildren(node);
23320
+ if (children) {
23321
+ _this.setNodeData(children, depth, level, parentNode, type);
23322
+ }
23323
+ if (node.icon && _this.nodelabel == "icon") {
23324
+ node[type] = node.icon;
23325
+ } else if (node.name && _this.nodelabel == "name") {
23326
+ node[type] = node.name;
23327
+ } else {
23328
+ return;
23329
+ }
23330
+ }));
23331
+ } else {
23332
+ nodes.map((function(node) {
23333
+ var children = _this.getChildren(node);
23334
+ if (children && level > 1) {
23335
+ if (depth === level) {
23336
+ parentNode = node;
23337
+ }
23338
+ _this.setNodeData(children, depth, level - 1, parentNode, type);
23339
+ }
23340
+ if (level === 1 && (type === "name" ? _this.nodelabel.includes("label") || _this.nodelabel.includes("name") : _this.nodeicon.includes("label") || _this.nodeicon.includes("name"))) {
23341
+ parentNode[type] = node.name || node.label;
23342
+ return;
23343
+ } else if (level === 1 && node.icon !== undefined && (type === "name" ? _this.nodelabel.includes("icon") : _this.nodeicon.includes("icon"))) {
23344
+ parentNode[type] = node.icon;
23345
+ return;
23346
+ } else {
23347
+ return;
23348
+ }
23349
+ }));
23350
+ }
23351
+ };
23352
+ TreeComponent.prototype.changeTreeIcons = function(nv) {
23353
+ var eleClose = $('ul[name="' + this.name + '"] li span.button.switch');
23354
+ $(eleClose).map((function(idx, ele) {
23355
+ $(ele).addClass(nv);
23356
+ $(ele).on("click", (function(e) {
23357
+ setTimeout((function() {
23358
+ $(ele).addClass(nv);
23359
+ }), 0);
23360
+ }));
23317
23361
  }));
23362
+ };
23363
+ TreeComponent.prototype.getPath = function(treeNode, path) {
23364
+ if (treeNode.getParentNode() === null) {
23365
+ path = "/" + treeNode[this.labelKey] + path;
23366
+ } else {
23367
+ path = this.getPath(treeNode.getParentNode(), path) + "/" + treeNode[this.labelKey];
23368
+ }
23369
+ return path;
23370
+ };
23371
+ TreeComponent.prototype.onClick = function(event, treeId, treeNode, clickFlag) {
23372
+ if (this.nodeclick === "expand") {
23373
+ var nodes = this.treeObj.getSelectedNodes();
23374
+ if (nodes.length > 0) {
23375
+ this.expandNode(nodes[0], !nodes[0].open, true);
23376
+ }
23377
+ }
23378
+ var path = this.getPath(treeNode, "");
23318
23379
  var eventParams = {
23319
- $event: $event,
23320
- $item: $li.data("nodedata"),
23380
+ $event: event,
23381
+ $item: treeNode,
23321
23382
  $path: path
23322
23383
  };
23323
- if ($i.hasClass("collapsed")) {
23324
- $i.removeClass("collapsed " + treeIcons.collapsed).addClass("expanded " + treeIcons.expanded);
23325
- $li.removeClass("collapsed").addClass("expanded");
23326
- this.invokeEventCallback("expand", eventParams);
23327
- } else if ($i.hasClass("expanded")) {
23328
- $i.removeClass("expanded " + treeIcons.expanded).addClass("collapsed " + treeIcons.collapsed);
23329
- $li.removeClass("expanded").addClass("collapsed");
23330
- this.invokeEventCallback("collapse", eventParams);
23331
- }
23384
+ this.setSelectedItem(treeNode);
23385
+ this.invokeEventCallback("select", eventParams);
23386
+ };
23387
+ TreeComponent.prototype.onExpand = function(event, treeId, treeNode) {
23388
+ var self = this;
23389
+ var path = this.getPath(treeNode, "");
23390
+ var eventParams = {
23391
+ $event: event,
23392
+ $item: treeNode,
23393
+ $path: path
23394
+ };
23395
+ this.invokeEventCallback("expand", eventParams);
23396
+ var children = this.getChildren(treeNode);
23397
+ children === null || children === void 0 ? void 0 : children.map((function(el) {
23398
+ if (el.isParent) {
23399
+ var ele_1 = $("#" + el.tId + "_switch");
23400
+ $(ele_1).addClass(self.treeicon || defaultTreeIconClass);
23401
+ $(ele_1).on("click", (function(e) {
23402
+ setTimeout((function() {
23403
+ $(ele_1).addClass(self.treeicon || defaultTreeIconClass);
23404
+ }), 0);
23405
+ }));
23406
+ }
23407
+ }));
23408
+ };
23409
+ TreeComponent.prototype.onCollapse = function(event, treeId, treeNode) {
23410
+ var path = this.getPath(treeNode, "");
23411
+ var eventParams = {
23412
+ $event: event,
23413
+ $item: treeNode,
23414
+ $path: path
23415
+ };
23416
+ this.invokeEventCallback("collapse", eventParams);
23417
+ };
23418
+ TreeComponent.prototype.getChildren = function(node) {
23419
+ return node[this.childrenKey];
23332
23420
  };
23333
- TreeDirective.prototype.renderTree = function(forceRender) {
23421
+ Object.defineProperty(TreeComponent.prototype, "childrenKey", {
23422
+ get: function() {
23423
+ if (!this.nodechildren) {
23424
+ return "children";
23425
+ }
23426
+ var depth = this.countDepth(this.nodechildren);
23427
+ return depth ? this.nodechildren.split(".").pop() : this.nodechildren;
23428
+ },
23429
+ enumerable: false,
23430
+ configurable: true
23431
+ });
23432
+ Object.defineProperty(TreeComponent.prototype, "labelKey", {
23433
+ get: function() {
23434
+ if (!this.nodelabel) {
23435
+ return "label";
23436
+ }
23437
+ var depth = this.countDepth(this.nodelabel);
23438
+ return depth ? this.nodelabel.split(".").pop() : this.nodelabel;
23439
+ },
23440
+ enumerable: false,
23441
+ configurable: true
23442
+ });
23443
+ Object.defineProperty(TreeComponent.prototype, "iconKey", {
23444
+ get: function() {
23445
+ if (!this.nodeicon) {
23446
+ return "icon";
23447
+ }
23448
+ var depth = this.countDepth(this.nodeicon);
23449
+ return depth ? this.nodeicon.split(".").pop() : this.nodeicon;
23450
+ },
23451
+ enumerable: false,
23452
+ configurable: true
23453
+ });
23454
+ Object.defineProperty(TreeComponent.prototype, "treeObj", {
23455
+ get: function() {
23456
+ return $.fn.zTree.getZTreeObj("" + this.name);
23457
+ },
23458
+ enumerable: false,
23459
+ configurable: true
23460
+ });
23461
+ TreeComponent.prototype.modifyObjects = function(array) {
23334
23462
  var _this = this;
23335
- var docFrag, $li, $liPath, data, path = "";
23336
- var levels = +this.nativeElement.getAttribute("levels") || 0, $el = $(this.nativeElement);
23337
- $el.empty();
23338
- if (forceRender) {
23339
- this._selectNode = undefined;
23340
- }
23341
- if (this.nodes && this.nodes.length) {
23342
- docFrag = document.createDocumentFragment();
23343
- this.constructNodes(this.nodes, $(docFrag), levels, 0, this.datavalue);
23344
- $el.append(docFrag);
23345
- }
23346
- if (this._selectNode) {
23347
- $li = this._selectNode;
23348
- $li.addClass("selected");
23349
- data = $li.data("nodedata");
23350
- $liPath = this.findSelectedNodeParent($li);
23351
- if (!$liPath.length) {
23352
- $liPath = $li;
23353
- }
23354
- $liPath.each((function(i, el) {
23355
- var $current = $(el), $i = $current.children("i.collapsed"), $title = $current.children(".title");
23356
- _this.toggleExpandCollapseNode(undefined, $i, $current);
23357
- path = "/" + ($title.text() + path);
23358
- }));
23359
- this.selecteditem = core.getClonedObject(data) || {};
23360
- this.selecteditem.path = path;
23361
- this.invokeEventCallback("select", {
23362
- $event: undefined,
23363
- $item: data,
23364
- $path: path
23365
- });
23366
- core.$appDigest();
23367
- }
23463
+ array.forEach((function(obj) {
23464
+ obj.icon = obj[_this.nodeicon];
23465
+ var children = _this.getChildren(obj);
23466
+ if (children === null || children === void 0 ? void 0 : children.length) {
23467
+ _this.modifyObjects(children);
23468
+ }
23469
+ }));
23368
23470
  };
23369
- TreeDirective.prototype.selectNode = function(evt, value) {
23471
+ TreeComponent.prototype.setNodeChildren = function(nodes, depth, level, parentNode) {
23370
23472
  var _this = this;
23371
- var target = evt && $(evt.target), $el = $(this.nativeElement), $li = _.isObject(value) ? value : $el.find('li[id="' + value + '"]').first();
23372
- var data, path = "", $liPath, nodeAction;
23373
- $el.find(".selected").removeClass("selected");
23374
- if (!$li.length) {
23375
- return;
23376
- }
23377
- $li.addClass("selected");
23378
- data = $li.data("nodedata");
23379
- nodeAction = data[this.nodeaction || "action"];
23380
- $liPath = target ? target.parents(".app-tree li") : this.findSelectedNodeParent($li);
23381
- $liPath.each((function(i, el) {
23382
- var current = $(el).children(".title").text();
23383
- path = "/" + (current + path);
23384
- }));
23385
- $li.parentsUntil($el, "li.parent-node.collapsed").each((function(index, el) {
23386
- var $current = $(el), $i = $current.children("i.collapsed");
23387
- _this.toggleExpandCollapseNode(undefined, $i, $current);
23388
- }));
23389
- this.selecteditem = core.getClonedObject(data) || {};
23390
- this.selecteditem.path = path;
23391
- if (target) {
23392
- if (this.nodeid || this.bindnodeid) {
23393
- this.datavalue = base.getEvaluatedData(data, {
23394
- field: this.nodeid,
23395
- bindExpression: this.bindnodeid
23396
- }, this.viewParent);
23397
- } else {
23398
- this.datavalue = core.getClonedObject(data) || {};
23473
+ if (depth <= 0) {
23474
+ return nodes;
23475
+ }
23476
+ for (var i = 0; i < nodes.length; i++) {
23477
+ var node = nodes[i];
23478
+ if (depth === level) {
23479
+ parentNode = nodes[i];
23480
+ }
23481
+ var children = this.getChildren(node);
23482
+ if (children === null || children === void 0 ? void 0 : children.length) {
23483
+ if (level === 1) {
23484
+ parentNode[this.childrenKey] = children.map((function(child) {
23485
+ var _a;
23486
+ return _a = {}, _a[_this.labelKey] = child[_this.labelKey], _a[_this.childrenKey] = _this.getChildren(child),
23487
+ _a.icon = child[_this.iconKey], _a;
23488
+ }));
23489
+ return;
23490
+ } else {
23491
+ this.setNodeChildren(children, depth, level - 1, parentNode);
23492
+ }
23399
23493
  }
23400
- } else {
23401
- this.datavalue = value;
23402
23494
  }
23403
- if (nodeAction) {
23404
- core.$parseEvent(nodeAction)(this);
23495
+ return nodes;
23496
+ };
23497
+ TreeComponent.prototype.countDepth = function(str) {
23498
+ var e_1, _a;
23499
+ var regex = /\[.*?\]/g;
23500
+ var matches = str.match(regex);
23501
+ var count = 1;
23502
+ if (matches === null) return count;
23503
+ try {
23504
+ for (var matches_1 = __values(matches), matches_1_1 = matches_1.next(); !matches_1_1.done; matches_1_1 = matches_1.next()) {
23505
+ var match = matches_1_1.value;
23506
+ count++;
23507
+ }
23508
+ } catch (e_1_1) {
23509
+ e_1 = {
23510
+ error: e_1_1
23511
+ };
23512
+ } finally {
23513
+ try {
23514
+ if (matches_1_1 && !matches_1_1.done && (_a = matches_1.return)) _a.call(matches_1);
23515
+ } finally {
23516
+ if (e_1) throw e_1.error;
23517
+ }
23405
23518
  }
23406
- this.invokeEventCallback("select", {
23407
- $event: evt,
23408
- $item: data,
23409
- $path: path
23410
- });
23411
- core.$appDigest();
23519
+ return count;
23412
23520
  };
23413
- TreeDirective.prototype.bindEvents = function() {
23414
- var _this = this;
23415
- $(this.nativeElement).on("click", (function(evt) {
23416
- var target = $(evt.target), li = target.closest("li"), $i = target.is("i") ? target : target.siblings("i.collapsed,i.expanded");
23417
- evt.stopPropagation();
23418
- if (target.is("span.title")) {
23419
- _this.selecteditem = {};
23420
- _this.selectNode(evt, li);
23521
+ TreeComponent.prototype.renderTree = function() {
23522
+ if (this.nodes) {
23523
+ this.nativeElement.setAttribute("id", this.name);
23524
+ if (this.nodeicon && this.nodeicon !== "icon") {
23525
+ this.modifyObjects(this.nodes);
23421
23526
  }
23422
- if (target.is("i") || target.is("span.title") && _this.nodeclick === "expand") {
23423
- _this.toggleExpandCollapseNode(evt, $i, li);
23527
+ this.setTreeTemplate(this.treeClass);
23528
+ if (this.nodelabel) {
23529
+ var depth = 0;
23530
+ if (this.nodelabel.includes("children")) {
23531
+ depth = this.countDepth(this.nodelabel);
23532
+ }
23533
+ this.setNodeData(this.nodes, depth, depth, null, "name");
23424
23534
  }
23425
- }));
23535
+ if (this.nodeicon) {
23536
+ var depth = 0;
23537
+ if (this.nodeicon.includes("children")) {
23538
+ depth = this.countDepth(this.nodeicon);
23539
+ }
23540
+ this.setNodeData(this.nodes, depth, depth, null, "icon");
23541
+ }
23542
+ if (this.nodechildren) {
23543
+ var depth = this.countDepth(this.nodechildren);
23544
+ if (depth > 1) {
23545
+ this.nodes = this.setNodeChildren(this.nodes, depth, depth, null);
23546
+ }
23547
+ }
23548
+ }
23549
+ this.setting.view["nodeClasses"] = this.setNodeclasses;
23550
+ this.setting.callback["onClick"] = this.onClick.bind(this);
23551
+ this.setting.callback["onExpand"] = this.onExpand.bind(this);
23552
+ this.setting.callback["onCollapse"] = this.onCollapse.bind(this);
23553
+ var zTree = $.fn.zTree.init($('ul[name="' + this.name + '"]'), this.setting, this.nodes);
23554
+ $.fn.zTreeKeyboardNavigation(zTree, $('ul[name="' + this.name + '"]'), null, this.treeicon || defaultTreeIconClass);
23426
23555
  };
23427
- TreeDirective.prototype.findSelectedNodeParent = function($li) {
23428
- return $li.find("> span.title").parents(".app-tree li");
23556
+ TreeComponent.prototype.setSelectedItem = function(treeNode) {
23557
+ this.selecteditem = core.getClonedObject(treeNode) || {};
23558
+ this.selecteditem.path = this.getPath(treeNode, "");
23559
+ var deSelectElm = $("li[treenode].selected");
23560
+ deSelectElm.removeClass("selected");
23561
+ var selectElm = $("#" + treeNode.tId + ":has(.curSelectedNode)");
23562
+ selectElm.addClass("selected");
23429
23563
  };
23430
- TreeDirective.prototype.selectById = function(value) {
23431
- this.selectNode(undefined, value);
23564
+ TreeComponent.prototype.expandNode = function(node, expand, eventFlag) {
23565
+ this.treeObj.expandNode(node, expand, false, false, eventFlag);
23566
+ var el = $("#" + node.tId + "_switch");
23567
+ $(el).addClass(this.treeicon || defaultTreeIconClass);
23432
23568
  };
23433
- TreeDirective.prototype.deselectById = function(value) {
23434
- this.selecteditem = {};
23435
- this.selectById();
23569
+ TreeComponent.prototype.ngAfterViewInit = function() {
23570
+ var _this = this;
23571
+ setTimeout((function() {
23572
+ _this.changeTreeIcons(_this.treeicon || defaultTreeIconClass);
23573
+ if (_this.datavalue) {
23574
+ var nodes = _this.treeObj.getNodes();
23575
+ var selectNode = void 0;
23576
+ if (_this.datavalue === "FirstNode") {
23577
+ if (nodes.length) {
23578
+ selectNode = nodes[0];
23579
+ }
23580
+ }
23581
+ if (_this.datavalue === "LastNode") {
23582
+ if (nodes.length) {
23583
+ selectNode = nodes[nodes.length - 1];
23584
+ }
23585
+ }
23586
+ _this.treeObj.selectNode(selectNode, false);
23587
+ _this.setSelectedItem(selectNode);
23588
+ _this.expandNode(selectNode, true, false);
23589
+ }
23590
+ }), 200);
23436
23591
  };
23437
- return TreeDirective;
23592
+ return TreeComponent;
23438
23593
  }(base.StylableComponent);
23439
- TreeDirective.initializeProps = registerProps();
23440
- TreeDirective.decorators = [ {
23441
- type: core$1.Directive,
23594
+ TreeComponent.initializeProps = registerProps();
23595
+ TreeComponent.decorators = [ {
23596
+ type: core$1.Component,
23442
23597
  args: [ {
23443
- selector: "div[wmTree]",
23444
- providers: [ base.provideAsWidgetRef(TreeDirective) ]
23598
+ selector: "ul[wmTree]",
23599
+ template: '<ul #wmTree class="ztree" id="ztree"></ul> ',
23600
+ providers: [ base.provideAsWidgetRef(TreeComponent) ],
23601
+ encapsulation: core$1.ViewEncapsulation.None
23445
23602
  } ]
23446
23603
  } ];
23447
- TreeDirective.ctorParameters = function() {
23604
+ TreeComponent.ctorParameters = function() {
23448
23605
  return [ {
23449
23606
  type: core$1.Injector
23450
- }, {
23451
- type: undefined,
23452
- decorators: [ {
23453
- type: core$1.Attribute,
23454
- args: [ "datavalue.bind" ]
23455
- } ]
23456
- }, {
23457
- type: undefined,
23458
- decorators: [ {
23459
- type: core$1.Attribute,
23460
- args: [ "nodelabel.bind" ]
23461
- } ]
23462
- }, {
23463
- type: undefined,
23464
- decorators: [ {
23465
- type: core$1.Attribute,
23466
- args: [ "nodeicon.bind" ]
23467
- } ]
23468
- }, {
23469
- type: undefined,
23470
- decorators: [ {
23471
- type: core$1.Attribute,
23472
- args: [ "nodechildren.bind" ]
23473
- } ]
23474
- }, {
23475
- type: undefined,
23476
- decorators: [ {
23477
- type: core$1.Attribute,
23478
- args: [ "nodeid.bind" ]
23479
- } ]
23480
23607
  } ];
23481
23608
  };
23482
- var components = [ TreeDirective ];
23609
+ var components = [ TreeComponent ];
23483
23610
  var TreeModule = function() {
23484
23611
  function TreeModule() {}
23485
23612
  return TreeModule;
@@ -23493,7 +23620,7 @@
23493
23620
  entryComponents: []
23494
23621
  } ]
23495
23622
  } ];
23496
- exports.TreeDirective = TreeDirective;
23623
+ exports.TreeComponent = TreeComponent;
23497
23624
  exports.TreeModule = TreeModule;
23498
23625
  exports["\u0275a"] = registerProps;
23499
23626
  Object.defineProperty(exports, "__esModule", {
@@ -26903,22 +27030,24 @@
26903
27030
  configurable: true
26904
27031
  });
26905
27032
  DateTimePickerComponent.prototype.validateSelectedDate = function() {
26906
- var _a, _b, _c, _d, _e, _f, _g;
27033
+ var _a, _b, _c, _d, _e;
26907
27034
  if (!this.changedValue) {
26908
27035
  return true;
26909
27036
  }
26910
27037
  var cd = moment(this.changedValue);
26911
- if (((_a = this._bsDatepickerConfig) === null || _a === void 0 ? void 0 : _a.minDate) && ((_b = this._bsDatepickerConfig) === null || _b === void 0 ? void 0 : _b.minDate) > this.changedValue) {
27038
+ var minDate = (_a = this._bsDatepickerConfig) === null || _a === void 0 ? void 0 : _a.minDate;
27039
+ var maxDate = (_b = this._bsDatepickerConfig) === null || _b === void 0 ? void 0 : _b.maxDate;
27040
+ if (minDate && (this.mode === "DATE" && moment(minDate).startOf("day").toDate() > this.changedValue || this.mode !== "DATE" && minDate > this.changedValue)) {
26912
27041
  return false;
26913
27042
  }
26914
- if (((_c = this._bsDatepickerConfig) === null || _c === void 0 ? void 0 : _c.maxDate) && ((_d = this._bsDatepickerConfig) === null || _d === void 0 ? void 0 : _d.maxDate) < this.changedValue) {
27043
+ if (maxDate && (this.mode === "DATE" && moment(maxDate).endOf("day").toDate() < this.changedValue || this.mode !== "DATE" && maxDate < this.changedValue)) {
26915
27044
  return false;
26916
27045
  }
26917
- if (((_f = (_e = this._bsDatepickerConfig) === null || _e === void 0 ? void 0 : _e.daysDisabled) === null || _f === void 0 ? void 0 : _f.indexOf(cd.day())) >= 0) {
27046
+ if (((_d = (_c = this._bsDatepickerConfig) === null || _c === void 0 ? void 0 : _c.daysDisabled) === null || _d === void 0 ? void 0 : _d.indexOf(cd.day())) >= 0) {
26918
27047
  return false;
26919
27048
  }
26920
27049
  var cdSt = cd.startOf("day").toDate().getTime();
26921
- if ((_g = this.excludedDatesToDisable) === null || _g === void 0 ? void 0 : _g.find((function(d) {
27050
+ if ((_e = this.excludedDatesToDisable) === null || _e === void 0 ? void 0 : _e.find((function(d) {
26922
27051
  return d.getTime() === cdSt;
26923
27052
  }))) {
26924
27053
  return false;
@@ -26967,6 +27096,9 @@
26967
27096
  newVal.setMilliseconds(oldVal.getMilliseconds());
26968
27097
  }
26969
27098
  this.changedValue = newVal;
27099
+ if (this.mode === "DATE" && oldVal !== newVal && this.validateSelectedDate()) {
27100
+ this.onOkClick();
27101
+ }
26970
27102
  };
26971
27103
  DateTimePickerComponent.prototype.onTimeUpdate = function(newVal) {
26972
27104
  this.changedValue = newVal;
@@ -26988,6 +27120,10 @@
26988
27120
  this.triggerChange();
26989
27121
  this.hideModal();
26990
27122
  };
27123
+ DateTimePickerComponent.prototype.setToday = function() {
27124
+ var today = moment().startOf("day").toDate();
27125
+ this.onDateUpdate(today);
27126
+ };
26991
27127
  DateTimePickerComponent.prototype.reset = function() {
26992
27128
  this.changedValue = this._value;
26993
27129
  };
@@ -27022,7 +27158,7 @@
27022
27158
  type: core.Component,
27023
27159
  args: [ {
27024
27160
  selector: "wm-datetimepicker",
27025
- template: ' \n <ng-template #datetimepickerTemplate>\n <div class="app-datetime-picker">\n <div class="modal-body">\n <div class="mobile-datetime-picker-options">\n \n </div>\n <bs-datepicker-inline\n [bsConfig]="bsDatepickerConfig"\n [datesDisabled]="excludedDatesToDisable"\n bsDatepicker\n [bsValue]="changedValue"\n (bsValueChange)="onDateUpdate($event)"\n *ngIf="mode === \'DATE_TIME\' || mode === \'DATE\'">\n </bs-datepicker-inline>\n <wm-timepicker\n [value]="changedValue"\n [min]="minTime"\n [max]="maxTime"\n (change)="onTimeUpdate($event)"\n *ngIf="mode === \'DATE_TIME\' || mode === \'TIME\'"></wm-timepicker>\n <span class="text-primary date-picker-value">\n {{getDateLabel()}}\n </span>\n </div>\n <div class="modal-footer">\n <button\n class="btn btn-secondary clear-btn"\n (click)="clear()">{{appLocale.MESSAGE_DATE_PICKER_CLEAR || "Clear" }}</button>\n <button\n class="btn btn-primary pull-right ok-btn"\n (click)="onOkClick()">{{appLocale.MESSAGE_DATE_PICKER_OK || "Ok" }}</button>\n <button\n class="btn btn-secondary pull-right cancel-btn"\n (click)="hideModal()">{{appLocale.MESSAGE_DATE_PICKER_CANCEL || "Cancel" }}</button>\n \n </div>\n </div>\n </ng-template>\n '
27161
+ template: ' \n <ng-template #datetimepickerTemplate>\n <div class="app-datetime-picker">\n <div class="modal-body">\n <div class="mobile-datetime-picker-options">\n \n </div>\n <bs-datepicker-inline\n [bsConfig]="bsDatepickerConfig"\n [datesDisabled]="excludedDatesToDisable"\n bsDatepicker\n [bsValue]="changedValue"\n (bsValueChange)="onDateUpdate($event)"\n *ngIf="mode === \'DATE_TIME\' || mode === \'DATE\'">\n </bs-datepicker-inline>\n <wm-timepicker\n [value]="changedValue"\n [min]="minTime"\n [max]="maxTime"\n (change)="onTimeUpdate($event)"\n *ngIf="mode === \'DATE_TIME\' || mode === \'TIME\'"></wm-timepicker>\n <span class="text-primary date-picker-value">\n {{getDateLabel()}}\n </span>\n </div>\n <div class="modal-footer">\n <button\n *ngIf="mode === \'DATE_TIME\' || mode === \'DATE\'"\n class="btn btn-secondary today-btn"\n (click)="setToday()">{{appLocale.MESSAGE_DATE_PICKER_TODAY || "Today" }}</button>\n <button\n class="btn btn-primary pull-right ok-btn"\n *ngIf="mode === \'DATE_TIME\' || mode === \'TIME\'"\n (click)="onOkClick()">{{appLocale.MESSAGE_DATE_PICKER_OK || "Ok" }}</button>\n <button\n class="btn btn-secondary pull-right clear-btn"\n (click)="clear()">{{appLocale.MESSAGE_DATE_PICKER_CLEAR || "Clear" }}</button>\n </div>\n </div>\n </ng-template>\n '
27026
27162
  } ]
27027
27163
  } ];
27028
27164
  DateTimePickerComponent.ctorParameters = function() {
@@ -27105,8 +27241,8 @@
27105
27241
  }
27106
27242
  return arr;
27107
27243
  };
27108
- TimePickerComponent.prototype.set = function(_h, unit) {
27109
- var index = _h.index, value = _h.value;
27244
+ TimePickerComponent.prototype.set = function(_f, unit) {
27245
+ var index = _f.index, value = _f.value;
27110
27246
  if (unit === "HOUR") {
27111
27247
  this.value = moment(this.value).hour(parseInt(value)).toDate();
27112
27248
  } else if (unit === "MINUTE") {
@@ -27371,6 +27507,7 @@
27371
27507
  };
27372
27508
  BaseDateTimeComponent.prototype.setActiveDateFocus = function(newDate, isMouseEvent) {
27373
27509
  var _this = this;
27510
+ this.setNextData(newDate);
27374
27511
  var activeMonth = this.activeDate.getMonth();
27375
27512
  if (!isMouseEvent) {
27376
27513
  if (newDate.getMonth() < activeMonth) {
@@ -27383,14 +27520,18 @@
27383
27520
  var newDay = newDate.getDate().toString();
27384
27521
  _.filter($("span:contains(" + newDay + ")").not(".is-other-month"), (function(obj) {
27385
27522
  if ($(obj).text() === newDay) {
27523
+ if ($(obj).hasClass("selected")) {
27524
+ $(obj).parent().attr("aria-selected", "true");
27525
+ }
27386
27526
  $(obj).attr("aria-label", moment(newDate).format("dddd, MMMM Do YYYY"));
27527
+ $("[bsdatepickerdaydecorator]").not(".is-other-month").attr("tabindex", "-1");
27528
+ $(obj).attr("tabindex", "0");
27387
27529
  $(obj).focus();
27388
27530
  _this.activeDate = newDate;
27389
27531
  }
27390
27532
  }));
27391
27533
  if (newDate.getMonth() === (new Date).getMonth() && newDate.getFullYear() === (new Date).getFullYear()) {
27392
27534
  _this.hightlightToday();
27393
- $("span:contains(" + (new Date).getDate().toString() + ")").not(".is-other-month").parent().attr("aria-selected", "true");
27394
27535
  }
27395
27536
  }));
27396
27537
  };
@@ -27432,6 +27573,9 @@
27432
27573
  if (event.originalEvent) {
27433
27574
  _this.setFocusForDate(-1);
27434
27575
  }
27576
+ setTimeout((function() {
27577
+ $(".bs-datepicker-head .previous").focus();
27578
+ }));
27435
27579
  }));
27436
27580
  datePickerHead.find(".next").click((function(event) {
27437
27581
  _this.next = _this.getMonth(_this.activeDate, 2);
@@ -27440,6 +27584,9 @@
27440
27584
  if (event.originalEvent) {
27441
27585
  _this.setFocusForDate(1);
27442
27586
  }
27587
+ setTimeout((function() {
27588
+ $(".bs-datepicker-head .next").focus();
27589
+ }));
27443
27590
  }));
27444
27591
  datePickerHead.find(".current").click((function(event) {
27445
27592
  if (event.originalEvent) {
@@ -27452,8 +27599,21 @@
27452
27599
  _this.setFocusForMonthOrDay();
27453
27600
  }
27454
27601
  }));
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());
27602
+ datePickerHead.find(".next").attr("aria-label", "Next Month, " + this.next.fullMonth + " " + this.next.date.getFullYear());
27603
+ datePickerHead.find(".previous").attr("aria-label", "Previous Month, " + this.prev.fullMonth + " " + this.prev.date.getFullYear());
27604
+ setTimeout((function() {
27605
+ var currentNodes = datePickerHead.find(".current span");
27606
+ var msg = "Changed to month ";
27607
+ datePickerHead.find(".current").attr("aria-live", "assertive").attr("aria-atomic", "false");
27608
+ if (_this.clicked) {
27609
+ if ($(currentNodes[0]).text()) {
27610
+ datePickerHead.find(".ng-star-inserted").prepend('<div class="sr-only">' + msg + "</div>");
27611
+ }
27612
+ if ($(currentNodes[1]).text()) {
27613
+ datePickerHead.find(".current").last().prepend('<div class="sr-only"> and year </div>');
27614
+ }
27615
+ }
27616
+ }));
27457
27617
  };
27458
27618
  BaseDateTimeComponent.prototype.setFocusForMonthOrDay = function() {
27459
27619
  var activeMonthOrYear = $(".bs-datepicker-head .current").first().text();
@@ -27519,14 +27679,14 @@
27519
27679
  this.loadDays();
27520
27680
  this.setActiveDateFocus(this.activeDate);
27521
27681
  };
27682
+ BaseDateTimeComponent.prototype.setNextData = function(nextDate) {
27683
+ this.next = this.getMonth(nextDate, 1);
27684
+ this.prev = this.getMonth(nextDate, -1);
27685
+ };
27522
27686
  BaseDateTimeComponent.prototype.loadDays = function() {
27523
27687
  var _this = this;
27524
27688
  setTimeout((function() {
27525
27689
  $("[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
27690
  _this.addKeyBoardEventsForDays();
27531
27691
  _this.addDatepickerMouseEvents();
27532
27692
  }));
@@ -27589,8 +27749,6 @@
27589
27749
  BaseDateTimeComponent.prototype.loadMonths = function() {
27590
27750
  var _this = this;
27591
27751
  setTimeout((function() {
27592
- var datePickerBody = $(".bs-datepicker-body");
27593
- datePickerBody.find("table.months span").attr("tabindex", "0");
27594
27752
  _this.addKeyBoardEventsForMonths();
27595
27753
  _this.addDatepickerMouseEvents();
27596
27754
  }));
@@ -27633,14 +27791,13 @@
27633
27791
  BaseDateTimeComponent.prototype.loadYears = function() {
27634
27792
  var _this = this;
27635
27793
  setTimeout((function() {
27636
- var datePickerBody = $(".bs-datepicker-body");
27637
- datePickerBody.find("table.years span").attr("tabindex", "0");
27638
27794
  _this.addKeyBoardEventsForYears();
27639
27795
  _this.addDatepickerMouseEvents();
27640
27796
  }));
27641
27797
  };
27642
27798
  BaseDateTimeComponent.prototype.setActiveMonthFocus = function(newDate, isMoouseEvent) {
27643
27799
  var _this = this;
27800
+ this.setNextData(newDate);
27644
27801
  var newMonth = months[newDate.getMonth()];
27645
27802
  if (!isMoouseEvent) {
27646
27803
  if (newDate.getFullYear() < this.activeDate.getFullYear()) {
@@ -27650,6 +27807,8 @@
27650
27807
  }
27651
27808
  }
27652
27809
  setTimeout((function() {
27810
+ $(".bs-datepicker-body table.months span").attr("tabindex", "-1");
27811
+ $(".bs-datepicker-body table.months span:contains(" + newMonth + ")").attr("tabindex", "0");
27653
27812
  $(".bs-datepicker-body table.months span:contains(" + newMonth + ")").focus();
27654
27813
  _this.activeDate = newDate;
27655
27814
  }));
@@ -27698,6 +27857,8 @@
27698
27857
  }
27699
27858
  }
27700
27859
  setTimeout((function() {
27860
+ $(".bs-datepicker-body table.years span").attr("tabindex", "-1");
27861
+ $(".bs-datepicker-body table.years span:contains(" + newYear + ")").attr("tabindex", "0");
27701
27862
  $(".bs-datepicker-body table.years span:contains(" + newYear + ")").focus();
27702
27863
  _this.activeDate = newDate;
27703
27864
  }));
@@ -27864,11 +28025,6 @@
27864
28025
  children[i].classList.remove("add-opacity");
27865
28026
  }
27866
28027
  displayInputElem.classList.remove("remove-opacity");
27867
- var allDateTimeElements = this.nativeElement.getElementsByTagName("*");
27868
- for (var i = 0; i < allDateTimeElements.length; i++) {
27869
- allDateTimeElements[i].setAttribute("tabindex", this.tabindex);
27870
- }
27871
- displayInputElem.removeAttribute("tabindex");
27872
28028
  }
27873
28029
  };
27874
28030
  BaseDateTimeComponent.prototype.onDateTimeInputFocus = function(skipFocus) {
@@ -27885,11 +28041,6 @@
27885
28041
  children[i].classList.add("add-opacity");
27886
28042
  }
27887
28043
  displayInputElem.classList.add("remove-opacity");
27888
- var allDateTimeElements = this.nativeElement.getElementsByTagName("*");
27889
- for (var i = 0; i < allDateTimeElements.length; i++) {
27890
- allDateTimeElements[i].setAttribute("tabindex", "-1");
27891
- }
27892
- displayInputElem.setAttribute("tabindex", this.tabindex);
27893
28044
  return;
27894
28045
  }
27895
28046
  if (displayInputElem && this._triggeredByUser) {
@@ -27972,7 +28123,10 @@
27972
28123
  this.isReadOnly = this.dataentrymode != "undefined" && !this.isDataEntryModeEnabledOnInput(this.dataentrymode);
27973
28124
  var mobileInput = this.getMobileInput();
27974
28125
  if (mobileInput) {
27975
- mobileInput.style.width = mobileInput.parentElement.clientWidth + "px";
28126
+ setTimeout((function() {
28127
+ mobileInput.style.width = "100%";
28128
+ mobileInput.style.height = "100%";
28129
+ }));
27976
28130
  }
27977
28131
  };
27978
28132
  BaseDateTimeComponent.prototype.ngOnDestroy = function() {
@@ -28235,7 +28389,7 @@
28235
28389
  if (this.isDropDownDisplayEnabledOnInput(this.showdropdownon)) {
28236
28390
  event.stopPropagation();
28237
28391
  var action = this.keyEventPlugin.constructor.getEventFullKey(event);
28238
- if (action === "enter" || action === "arrowdown") {
28392
+ if (action === "enter") {
28239
28393
  var newVal = core$1.getDateObj(event.target.value, {
28240
28394
  pattern: this.datepattern
28241
28395
  });
@@ -28277,7 +28431,7 @@
28277
28431
  type: core.Component,
28278
28432
  args: [ {
28279
28433
  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',
28434
+ 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',
28281
28435
  providers: [ base.provideAs(DateComponent, forms.NG_VALUE_ACCESSOR, true), base.provideAs(DateComponent, forms.NG_VALIDATORS, true), base.provideAsWidgetRef(DateComponent) ]
28282
28436
  } ]
28283
28437
  } ];
@@ -28729,7 +28883,7 @@
28729
28883
  type: core.Component,
28730
28884
  args: [ {
28731
28885
  selector: "[wmDateTime]",
28732
- 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',
28886
+ 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',
28733
28887
  providers: [ base.provideAs(DatetimeComponent, forms.NG_VALUE_ACCESSOR, true), base.provideAs(DatetimeComponent, forms.NG_VALIDATORS, true), base.provideAsWidgetRef(DatetimeComponent), {
28734
28888
  provide: timepicker.TimepickerConfig,
28735
28889
  deps: [ core$1.AbstractI18nService ],
@@ -32280,7 +32434,7 @@
32280
32434
  var value = _.get(dataObj, xKey);
32281
32435
  if (isLineTypeChart(this.type) && !core.isNumberType(this.xAxisDataType)) {
32282
32436
  this.xDataKeyArr.push(value);
32283
- return index;
32437
+ return value;
32284
32438
  }
32285
32439
  return value;
32286
32440
  };
@@ -33596,9 +33750,10 @@
33596
33750
  };
33597
33751
  var MenuComponent = function(_super) {
33598
33752
  __extends(MenuComponent, _super);
33599
- function MenuComponent(inj, route, userDefinedExecutionContext, bsDropdown, parentNav, selectEventCB) {
33753
+ function MenuComponent(inj, route, app, userDefinedExecutionContext, bsDropdown, parentNav, selectEventCB) {
33600
33754
  var _this = _super.call(this, inj, WIDGET_CONFIG$1) || this;
33601
33755
  _this.route = route;
33756
+ _this.app = app;
33602
33757
  _this.userDefinedExecutionContext = userDefinedExecutionContext;
33603
33758
  _this.bsDropdown = bsDropdown;
33604
33759
  _this.parentNav = parentNav;
@@ -33612,6 +33767,9 @@
33612
33767
  }
33613
33768
  var datasetSubscription = _this.nodes$.subscribe((function() {
33614
33769
  if (!_.isEmpty(_this.nodes)) {
33770
+ if (base.hasLinkToCurrentPage(_this.nodes, _this.route.url)) {
33771
+ core.addClass(_this.nativeElement.querySelector(".dropdown-toggle"), "active");
33772
+ }
33615
33773
  if (_this.parentNav) {
33616
33774
  return;
33617
33775
  }
@@ -33686,26 +33844,22 @@
33686
33844
  }
33687
33845
  $event.preventDefault();
33688
33846
  };
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
33847
  MenuComponent.prototype.resetNodes = function() {
33701
33848
  _super.prototype.resetNodes.call(this);
33702
- if (this.autoopen === AUTO_OPEN.ACTIVE_PAGE && this.hasLinkToCurrentPage(this.nodes) || this.autoopen === AUTO_OPEN.ALWAYS) {
33849
+ if (this.autoopen === AUTO_OPEN.ACTIVE_PAGE && base.hasLinkToCurrentPage(this.nodes, this.route.url) || this.autoopen === AUTO_OPEN.ALWAYS) {
33703
33850
  this.bsDropdown.show();
33704
33851
  }
33705
33852
  };
33706
33853
  MenuComponent.prototype.ngOnInit = function() {
33854
+ var _this = this;
33707
33855
  _super.prototype.ngOnInit.call(this);
33708
33856
  this.setMenuPosition();
33857
+ var cancelSubscription = this.app.subscribe("highlightActiveLink", (function(data) {
33858
+ core.toggleClass(_this.nativeElement.querySelector(".dropdown-toggle"), "active", base.hasLinkToCurrentPage(_this.nodes, _this.route.url));
33859
+ }));
33860
+ this.registerDestroyListener((function() {
33861
+ return cancelSubscription();
33862
+ }));
33709
33863
  };
33710
33864
  MenuComponent.prototype.onPropertyChange = function(key, nv, ov) {
33711
33865
  if (key === "tabindex") {
@@ -33776,6 +33930,8 @@
33776
33930
  type: core$1.Injector
33777
33931
  }, {
33778
33932
  type: router.Router
33933
+ }, {
33934
+ type: core.App
33779
33935
  }, {
33780
33936
  type: core.UserDefinedExecutionContext
33781
33937
  }, {
@@ -33893,8 +34049,9 @@
33893
34049
  VERTICAL: "vertical"
33894
34050
  };
33895
34051
  var MenuDropdownItemComponent = function() {
33896
- function MenuDropdownItemComponent(menuRef, userDefinedExecutionContext, parentNav, elRef) {
34052
+ function MenuDropdownItemComponent(app, menuRef, userDefinedExecutionContext, parentNav, elRef) {
33897
34053
  var _this = this;
34054
+ this.app = app;
33898
34055
  this.menuRef = menuRef;
33899
34056
  this.userDefinedExecutionContext = userDefinedExecutionContext;
33900
34057
  this.parentNav = parentNav;
@@ -33920,10 +34077,14 @@
33920
34077
  this.menualign = menuAlignClass[this.menuRef.menualign] || menuAlignClass["pull-left"];
33921
34078
  }
33922
34079
  MenuDropdownItemComponent.prototype.ngOnInit = function() {
34080
+ var _this = this;
33923
34081
  if (this.parentNav) {
33924
- if (base.isActiveNavItem(this.item.link, this.menuRef.route.url)) {
34082
+ if (base.hasLinkToCurrentPage([ this.item ], this.menuRef.route.url)) {
33925
34083
  core.addClass(this.nativeElement, "active");
33926
34084
  }
34085
+ this.highlightActiveLinkSubscription = this.app.subscribe("highlightActiveLink", (function(data) {
34086
+ core.toggleClass(_this.nativeElement, "active", base.hasLinkToCurrentPage([ _this.item ], _this.menuRef.route.url));
34087
+ }));
33927
34088
  }
33928
34089
  };
33929
34090
  MenuDropdownItemComponent.prototype.getInitialKeyMovements = function() {
@@ -33992,6 +34153,11 @@
33992
34153
  $event.stopPropagation();
33993
34154
  }
33994
34155
  };
34156
+ MenuDropdownItemComponent.prototype.ngOnDestroy = function() {
34157
+ if (this.highlightActiveLinkSubscription) {
34158
+ this.highlightActiveLinkSubscription();
34159
+ }
34160
+ };
33995
34161
  return MenuDropdownItemComponent;
33996
34162
  }();
33997
34163
  MenuDropdownItemComponent.decorators = [ {
@@ -34003,6 +34169,8 @@
34003
34169
  } ];
34004
34170
  MenuDropdownItemComponent.ctorParameters = function() {
34005
34171
  return [ {
34172
+ type: core.App
34173
+ }, {
34006
34174
  type: MenuComponent
34007
34175
  }, {
34008
34176
  type: core.UserDefinedExecutionContext
@@ -35687,6 +35855,9 @@
35687
35855
  return _this.hidePopover();
35688
35856
  };
35689
35857
  }
35858
+ setTimeout((function() {
35859
+ _this.anchorRef.nativeElement.removeAttribute("aria-describedby");
35860
+ }));
35690
35861
  var deRegister = this.eventManager.addEventListener(popoverContainer, "keydown.esc", (function() {
35691
35862
  _this.isOpen = false;
35692
35863
  _this.setFocusToPopoverLink();
@@ -35717,7 +35888,6 @@
35717
35888
  return _this.close();
35718
35889
  };
35719
35890
  }
35720
- core.setAttr(popoverContainer, "tabindex", 0);
35721
35891
  setTimeout((function() {
35722
35892
  return popoverStartBtn.focus();
35723
35893
  }), 50);
@@ -36393,16 +36563,24 @@
36393
36563
  _this.dialogService = inj.get(core.AbstractDialogService);
36394
36564
  _this.bsModal = inj.get(modal.BsModalService);
36395
36565
  var router$1 = inj.get(router.Router);
36396
- var subscriptions = [ _this.bsModal.onShown.subscribe((function() {
36566
+ var subscriptions = [ _this.bsModal.onShown.subscribe((function(_a) {
36567
+ var id = _a.id;
36397
36568
  var ref = _this.dialogService.getLastOpenedDialog();
36398
- if (ref === _this) {
36569
+ if (ref === _this && !_this.dialogId) {
36399
36570
  invokeOpenedCallback(ref);
36571
+ _this.dialogId = id;
36400
36572
  }
36401
36573
  })), _this.bsModal.onShow.subscribe((function() {
36402
36574
  focusTrapObj.activeElement = document.activeElement;
36403
36575
  })), _this.bsModal.onHidden.subscribe((function(closeReason) {
36404
- var ref = closeReason === "esc" || closeReason === "backdrop-click" ? _this.dialogService.getLastOpenedDialog() : _this.dialogService.getDialogRefFromClosedDialogs();
36576
+ var ref = _this.dialogService.getDialogRefFromClosedDialogs();
36577
+ if (_this.dialogId && (closeReason === null || closeReason === void 0 ? void 0 : closeReason.id) === _this.dialogId) {
36578
+ ref = _this;
36579
+ } else if (closeReason === "esc" || closeReason === "backdrop-click") {
36580
+ ref = _this.dialogService.getLastOpenedDialog();
36581
+ }
36405
36582
  if (ref === _this) {
36583
+ _this.dialogId = null;
36406
36584
  _this.dialogService.removeFromOpenedDialogs(ref);
36407
36585
  _this.dialogService.removeFromClosedDialogs(ref);
36408
36586
  invokeClosedCallback(ref);
@@ -36441,6 +36619,10 @@
36441
36619
  Object.assign(this.context, initState);
36442
36620
  this.modalOptions.ariaLabelledBy = this.titleId;
36443
36621
  this.dialogRef = this.bsModal.show(this.getTemplateRef(), this.modalOptions);
36622
+ if (this.dialogService.getOpenedDialogs().length === 1 && (core.isMobile() || core.isMobileApp())) {
36623
+ var parentSelector = $("body > app-root")[0];
36624
+ parentSelector.setAttribute("aria-hidden", "true");
36625
+ }
36444
36626
  };
36445
36627
  BaseDialog.prototype.close = function() {
36446
36628
  if (this.dialogRef) {
@@ -42272,11 +42454,31 @@
42272
42454
  $index: _this.dn.currentPage
42273
42455
  });
42274
42456
  _this.goToPage();
42457
+ if (_this.navigation === "Basic") {
42458
+ _this._setAriaForBasicNavigation();
42459
+ }
42275
42460
  }
42276
42461
  }), base.DEBOUNCE_TIMES.PAGINATION_DEBOUNCE_TIME);
42277
42462
  base.styler(_this.nativeElement, _this);
42278
42463
  return _this;
42279
42464
  }
42465
+ PaginationComponent.prototype._setAriaForBasicNavigation = function() {
42466
+ _.forEach(this.nativeElement.getElementsByTagName("a"), (function(item) {
42467
+ item.setAttribute("href", "javascript:void(0);");
42468
+ var childNode = item.querySelector("span");
42469
+ if ((childNode === null || childNode === void 0 ? void 0 : childNode.dataset.isacitvepage) === "true") {
42470
+ item.setAttribute("aria-current", "true");
42471
+ setTimeout((function() {
42472
+ return item.focus();
42473
+ }));
42474
+ }
42475
+ if ((childNode === null || childNode === void 0 ? void 0 : childNode.dataset.isdisabled) === "true") {
42476
+ item.setAttribute("aria-disabled", "true");
42477
+ } else {
42478
+ item.removeAttribute("aria-disabled");
42479
+ }
42480
+ }));
42481
+ };
42280
42482
  PaginationComponent.prototype.setResult = function(result) {
42281
42483
  this.result = result;
42282
42484
  this.resultEmitter.emit(this.result);
@@ -42338,7 +42540,7 @@
42338
42540
  }
42339
42541
  this.isDisableCurrent = isCurrentPageFirst && isCurrentPageLast;
42340
42542
  if (this.dataset && this.dataset.length && this.isDisableNext && this.parent.onDemandLoad && this.parent.widgetType === "wm-table") {
42341
- this.parent.callDataGridMethod("hideLoadingIndicator", this.isDisableNext, false);
42543
+ this.parent.callDataGridMethod("hideLoadingIndicator", this.isDisableNext, this.parent.infScroll);
42342
42544
  }
42343
42545
  };
42344
42546
  PaginationComponent.prototype.isDataSourceHasPaging = function() {
@@ -42393,9 +42595,7 @@
42393
42595
  this.resetPageNavigation();
42394
42596
  }
42395
42597
  if (this.navigation === "Basic") {
42396
- _.forEach(this.nativeElement.getElementsByTagName("a"), (function(item) {
42397
- item.setAttribute("href", "javascript:void(0);");
42398
- }));
42598
+ this._setAriaForBasicNavigation();
42399
42599
  }
42400
42600
  } else {
42401
42601
  if (newVal && !_.isString(newVal)) {
@@ -42672,7 +42872,7 @@
42672
42872
  type: core.Component,
42673
42873
  args: [ {
42674
42874
  selector: "[wmPagination]",
42675
- template: '\n<ul class="pagination advanced {{navigationClass}}" *ngIf="navcontrols === \'Classic\'">\n <li [ngClass]="{\'disabled\':isDisableFirst}">\n <a [title]="appLocale.LABEL_FIRST" name="first" href="javascript:void(0);" aria-label="First"\n (click)="navigatePage(\'first\', $event)">\n <span aria-hidden="true"><i class="wi wi-first-page"></i></span>\n <span class="sr-only">{{appLocale.LABEL_FIRST}}</span>\n </a>\n </li>\n <li [ngClass]="{\'disabled\':isDisablePrevious}">\n <a [title]="appLocale.LABEL_PREVIOUS" name="prev" href="javascript:void(0);" aria-label="Previous"\n (click)="navigatePage(\'prev\', $event)">\n <span aria-hidden="true"><i class="wi wi-chevron-left"></i></span>\n <span class="sr-only">{{appLocale.LABEL_PREVIOUS}}</span>\n </a>\n </li>\n <li class="pagecount disabled">\n <a><input type="number" [disabled]="isDisableCurrent" [(ngModel)]="dn.currentPage" [attr.aria-label]="\'Page Navigation \' + dn.currentPage"\n (keydown)="onKeyDown($event)" (change)="onModelChange($event)" class="form-control"/></a>\n </li>\n <li class="disabled">\n <a [hidden]="isDisableCount"> / {{pageCount}}</a>\n </li>\n <li [ngClass]="{\'disabled\':isDisableNext}">\n <a [title]="appLocale.LABEL_NEXT" name="next" href="javascript:void(0);" aria-label="Next"\n (click)="navigatePage(\'next\', $event)">\n <span aria-hidden="true"><i class="wi wi-chevron-right"></i></span>\n <span class="sr-only">{{appLocale.LABEL_NEXT}}</span>\n </a>\n </li>\n <li [ngClass]="{\'disabled\':isDisableLast}">\n <a [title]="appLocale.LABEL_LAST" name="last" href="javascript:void(0);" aria-label="Last"\n (click)="navigatePage(\'last\', $event)">\n <span aria-hidden="true"><i class="wi wi-last-page"></i></span>\n <span class="sr-only">{{appLocale.LABEL_LAST}}</span>\n </a>\n </li>\n <li *ngIf="showrecordcount" class="totalcount disabled">\n <a>{{appLocale.LABEL_TOTAL_RECORDS}}: {{dataSize}}</a>\n </li>\n</ul>\n<ul class="pager {{navigationClass}}" *ngIf="navcontrols === \'Pager\'">\n <li class="previous" [ngClass]="{\'disabled\':isDisablePrevious}">\n <a href="javascript:void(0);" (click)="navigatePage(\'prev\', $event)" aria-label="Previous">\n <span aria-hidden="true"><i class="wi wi-chevron-left"></i></span>\n {{appLocale.LABEL_PREVIOUS}}\n <span class="sr-only">{{appLocale.LABEL_PREVIOUS}}</span>\n </a>\n </li>\n <li class="next" [ngClass]="{\'disabled\':isDisableNext}">\n <a href="javascript:void(0);" (click)="navigatePage(\'next\', $event)" aria-label="Next">\n {{appLocale.LABEL_NEXT}}\n <span aria-hidden="true"><i class="wi wi-chevron-right"></i></span>\n <span class="sr-only">{{appLocale.LABEL_NEXT}}</span>\n </a>\n </li>\n</ul>\n\n<pagination class="pagination basic" [ngClass]="navigationClass" *ngIf="navcontrols === \'Basic\'" role="navigation"\n [itemsPerPage]="maxResults" [totalItems]="dataSize"\n [ngModel]="dn.currentPage" (pageChanged)="pageChanged($event)"\n [attr.aria-label]="\'Page \' + dn.currentPage + \' of \' + pageCount + \' pages\'"\n [boundaryLinks]="boundarylinks" [maxSize]="maxsize"\n [directionLinks]="directionlinks" previousText="." nextText="." firstText="." lastText="."></pagination>\n\n<ul *ngIf="navcontrols === \'Basic\' && showrecordcount" class="pagination">\n <li class="totalcount disabled basiccount"><a>{{appLocale.LABEL_TOTAL_RECORDS}}: {{dataSize}}</a></li>\n</ul>\n',
42875
+ template: '\n<ul class="pagination advanced {{navigationClass}}" *ngIf="navcontrols === \'Classic\'">\n <li [ngClass]="{\'disabled\':isDisableFirst}">\n <a [title]="appLocale.LABEL_FIRST" name="first" href="javascript:void(0);"\n [attr.aria-disabled]="isDisableFirst"\n (click)="navigatePage(\'first\', $event)">\n <span aria-hidden="true"><i class="wi wi-first-page"></i></span>\n <span class="sr-only">Go to first page {{ isDisableFirst ? \' , Disabled\' : \'\'}}</span>\n </a>\n </li>\n <li [ngClass]="{\'disabled\':isDisablePrevious}">\n <a [title]="appLocale.LABEL_PREVIOUS" name="prev" href="javascript:void(0);"\n [attr.aria-disabled]="isDisablePrevious"\n (click)="navigatePage(\'prev\', $event)">\n <span aria-hidden="true"><i class="wi wi-chevron-left"></i></span>\n <span class="sr-only">Go to previous page {{ isDisablePrevious ? \', Disabled\' : \'\'}}</span>\n </a>\n </li>\n <li class="pagecount disabled">\n <a href="javascript:void(0);">\n <input type="number" [disabled]="isDisableCurrent" [(ngModel)]="dn.currentPage" [attr.aria-label]="\'Showing Page \' + dn.currentPage + \' of \' + pageCount"\n (keydown)="onKeyDown($event)" (change)="onModelChange($event)" class="form-control"/>\n </a>\n </li>\n <li class="disabled">\n <a [hidden]="isDisableCount"> / {{pageCount}}</a>\n </li>\n <li [ngClass]="{\'disabled\':isDisableNext}">\n <a [title]="appLocale.LABEL_NEXT" name="next" href="javascript:void(0);"\n [attr.aria-disabled]="isDisableNext"\n (click)="navigatePage(\'next\', $event)">\n <span aria-hidden="true"><i class="wi wi-chevron-right"></i></span>\n <span class="sr-only">Go to next page {{ isDisableNext ? \' , Disabled\' : \'\'}}</span>\n </a>\n </li>\n <li [ngClass]="{\'disabled\':isDisableLast}">\n <a [title]="appLocale.LABEL_LAST" name="last" href="javascript:void(0);"\n [attr.aria-disabled]="isDisableLast"\n (click)="navigatePage(\'last\', $event)">\n <span aria-hidden="true"><i class="wi wi-last-page"></i></span>\n <span class="sr-only">Go to last page {{ isDisableLast ? \' , Disabled\' : \'\'}}</span>\n </a>\n </li>\n <li *ngIf="showrecordcount" class="totalcount disabled">\n <a href="javascript:void(0);" tabindex="-1" aria-disabled="true">{{appLocale.LABEL_TOTAL_RECORDS}}: {{dataSize}}</a>\n </li>\n</ul>\n<ul class="pager {{navigationClass}}" *ngIf="navcontrols === \'Pager\'">\n <li class="previous" [ngClass]="{\'disabled\':isDisablePrevious}">\n <a href="javascript:void(0);" (click)="navigatePage(\'prev\', $event)"\n [attr.aria-disabled]="isDisablePrevious">\n <span aria-hidden="true"><i class="wi wi-chevron-left"></i></span>\n {{appLocale.LABEL_PREVIOUS}}\n <span class="sr-only">{{ isDisablePrevious ? \' , Disabled\' : \'\'}}</span>\n </a>\n </li>\n <li class="next" [ngClass]="{\'disabled\':isDisableNext}">\n <a href="javascript:void(0);" (click)="navigatePage(\'next\', $event)"\n [attr.aria-disabled]="isDisableNext">\n <span aria-hidden="true"><i class="wi wi-chevron-right"></i></span>\n {{appLocale.LABEL_NEXT}}\n <span class="sr-only">{{ isDisableNext ? \' , Disabled\' : \'\'}}</span>\n </a>\n </li>\n</ul>\n\n<pagination class="pagination basic" [ngClass]="navigationClass" *ngIf="navcontrols === \'Basic\'" role="navigation"\n [itemsPerPage]="maxResults" [totalItems]="dataSize"\n [ngModel]="dn.currentPage" (pageChanged)="pageChanged($event)"\n [attr.aria-label]="\'Showing Page \' + dn.currentPage + \' of \' + pageCount + \' pages\'"\n [boundaryLinks]="boundarylinks" [maxSize]="maxsize"\n [directionLinks]="directionlinks"\n firstText="Firtst" lastText="Last"\n [customPreviousTemplate]="prevTemplate"\n [customNextTemplate]="nextTemplate"\n [customPageTemplate]="pageTemplate"></pagination>\n\n<ul *ngIf="navcontrols === \'Basic\' && showrecordcount" class="pagination">\n <li class="totalcount disabled basiccount">\n <a href="javascript:void(0);" tabindex="-1" aria-disabled="true">{{appLocale.LABEL_TOTAL_RECORDS}}: {{dataSize}}</a>\n </li>\n</ul>\n\n<ng-template #pageTemplate let-page>\n <span class="sr-only" [attr.data-isacitvepage]="page.active">{{\'Page \'}}</span>\n {{page.number}}\n <span class="sr-only" *ngIf="page.active"> {{\', Showing page \' + page.number + \' of \' + pageCount}}</span>\n</ng-template>\n<ng-template #prevTemplate let-disabled="disabled">\n <span class="sr-only" [attr.data-isdisabled]="disabled">Go to Previous page {{disabled ? \', Disabled\' : \'\'}}</span>\n</ng-template>\n<ng-template #nextTemplate let-disabled="disabled">\n <span class="sr-only" [attr.data-isdisabled]="disabled">Go to Next page {{disabled ? \', Disabled\' : \'\'}}</span>\n</ng-template>\n',
42676
42876
  providers: [ base.provideAsWidgetRef(PaginationComponent) ]
42677
42877
  } ]
42678
42878
  } ];
@@ -44611,9 +44811,9 @@
44611
44811
  }
44612
44812
  }
44613
44813
  };
44614
- ListComponent.prototype.onUpdate = function(evt, ui) {
44814
+ ListComponent.prototype.onUpdate = function(evt, ui, presentIndex) {
44615
44815
  var data = this.fieldDefs;
44616
- var newIndex = ui.item.index();
44816
+ var newIndex = ui === undefined ? presentIndex : ui.item.index();
44617
44817
  var oldIndex = this.$ulEle.data("oldIndex");
44618
44818
  var minIndex = _.min([ newIndex, oldIndex ]);
44619
44819
  var maxIndex = _.max([ newIndex, oldIndex ]);
@@ -44705,9 +44905,9 @@
44705
44905
  return this.datasource.execute(operation, options);
44706
44906
  };
44707
44907
  ListComponent.prototype.handleKeyDown = function($event, action) {
44708
- var _this = this;
44908
+ var _d, _e;
44709
44909
  $event.stopPropagation();
44710
- if ($event.keyCode !== 13 && $event.keyCode !== 9 && !($event.target.classList.contains("form-control") && $event.keyCode === 32)) {
44910
+ if ($event.keyCode !== 13 && $event.keyCode !== 9 && !(($event.target.classList.contains("form-control") || $event.target.classList.contains("note-editable")) && $event.keyCode === 32)) {
44711
44911
  $event.preventDefault();
44712
44912
  }
44713
44913
  var listItems = this.listItems;
@@ -44747,27 +44947,21 @@
44747
44947
  }
44748
44948
  if (action === "focusPrev") {
44749
44949
  if (this.isListElementMovable) {
44750
- var prev_1;
44751
44950
  presentIndex = presentIndex <= 0 ? 0 : presentIndex;
44752
- this.lastSelectedItem = this.getListItemByIndex(presentIndex);
44753
44951
  if (presentIndex === 0) {
44754
- prev_1 = this.listItems.last;
44755
44952
  return;
44756
44953
  }
44757
- this.listItems.forEach((function($liItem, idx) {
44758
- if (idx === presentIndex) {
44759
- prev_1.nativeElement.before($liItem.nativeElement);
44760
- _this.lastSelectedItem.nativeElement.focus();
44761
- var arr = _this.listItems.toArray();
44762
- var temp = arr[presentIndex];
44763
- arr[presentIndex] = arr[presentIndex - 1];
44764
- arr[presentIndex - 1] = temp;
44765
- _this.listItems.reset(arr);
44766
- _this.currentIndex = presentIndex;
44767
- _this.ariaText = "selected ";
44768
- }
44769
- prev_1 = $liItem;
44770
- }));
44954
+ this.lastSelectedItem = this.getListItemByIndex(presentIndex);
44955
+ var prevElt = this.getListItemByIndex(presentIndex - 1);
44956
+ prevElt.nativeElement.before(this.lastSelectedItem.nativeElement);
44957
+ this.lastSelectedItem.nativeElement.focus();
44958
+ this.statePersistence.removeWidgetState(this, "selectedItem");
44959
+ var arr = this.listItems.toArray();
44960
+ _d = __read([ arr[presentIndex], arr[presentIndex - 1] ], 2), arr[presentIndex - 1] = _d[0],
44961
+ arr[presentIndex] = _d[1];
44962
+ this.listItems.reset(arr);
44963
+ this.currentIndex = presentIndex;
44964
+ this.ariaText = "selected ";
44771
44965
  } else {
44772
44966
  presentIndex = presentIndex <= 0 ? 0 : presentIndex - 1;
44773
44967
  this.lastSelectedItem = this.getListItemByIndex(presentIndex);
@@ -44777,27 +44971,21 @@
44777
44971
  }
44778
44972
  } else if (action === "focusNext") {
44779
44973
  if (this.isListElementMovable) {
44780
- var prev_2;
44781
44974
  presentIndex = presentIndex < listItems.length - 1 ? presentIndex : listItems.length - 1;
44782
- this.lastSelectedItem = this.getListItemByIndex(presentIndex);
44783
44975
  if (presentIndex === this.listItems.length - 1) {
44784
- prev_2 = this.listItems.first;
44785
44976
  return;
44786
44977
  }
44787
- this.listItems.forEach((function($liItem, idx) {
44788
- if (idx === presentIndex + 1) {
44789
- prev_2.nativeElement.before($liItem.nativeElement);
44790
- _this.lastSelectedItem.nativeElement.focus();
44791
- var arr = _this.listItems.toArray();
44792
- var temp = arr[presentIndex + 1];
44793
- arr[presentIndex + 1] = arr[presentIndex];
44794
- arr[presentIndex] = temp;
44795
- _this.listItems.reset(arr);
44796
- _this.currentIndex = idx + 1;
44797
- _this.ariaText = "selected ";
44798
- }
44799
- prev_2 = $liItem;
44800
- }));
44978
+ this.lastSelectedItem = this.getListItemByIndex(presentIndex);
44979
+ var nextElt = this.getListItemByIndex(presentIndex + 1);
44980
+ nextElt.nativeElement.after(this.lastSelectedItem.nativeElement);
44981
+ this.lastSelectedItem.nativeElement.focus();
44982
+ this.statePersistence.removeWidgetState(this, "selectedItem");
44983
+ var arr = this.listItems.toArray();
44984
+ _e = __read([ arr[presentIndex + 1], arr[presentIndex] ], 2), arr[presentIndex] = _e[0],
44985
+ arr[presentIndex + 1] = _e[1];
44986
+ this.listItems.reset(arr);
44987
+ this.currentIndex = presentIndex + 2;
44988
+ this.ariaText = "selected ";
44801
44989
  } else {
44802
44990
  presentIndex = presentIndex < listItems.length - 1 ? presentIndex + 1 : listItems.length - 1;
44803
44991
  this.lastSelectedItem = this.getListItemByIndex(presentIndex);
@@ -44819,11 +45007,12 @@
44819
45007
  this.isListElementMovable = !this.isListElementMovable;
44820
45008
  this.onItemClick($event, this.getListItemByIndex(presentIndex));
44821
45009
  this.currentIndex = presentIndex + 1;
44822
- var name = this.getListItemByIndex(presentIndex).item.name;
44823
45010
  if (this.isListElementMovable) {
44824
- this.ariaText = name + " grabbed, current position ";
45011
+ this.ariaText = "Item " + this.currentIndex + " grabbed, current position ";
45012
+ this.$ulEle.data("oldIndex", presentIndex);
44825
45013
  } else {
44826
- this.ariaText = name + " dropped, final position ";
45014
+ this.ariaText = "Item " + this.currentIndex + " dropped, final position ";
45015
+ this.onUpdate($event, undefined, presentIndex);
44827
45016
  }
44828
45017
  }
44829
45018
  };
@@ -44868,10 +45057,12 @@
44868
45057
  this.dataNavigator.widget.maxResults = nv;
44869
45058
  this.dataNavigator.maxResults = nv;
44870
45059
  } else if (key === "enablereorder") {
44871
- if (nv) {
45060
+ if (nv && this.$ulEle) {
45061
+ this.$ulEle.attr("aria-describedby", this.titleId);
44872
45062
  this.configureDnD();
44873
45063
  this.$ulEle.sortable("enable");
44874
45064
  } else if (this.$ulEle && !nv) {
45065
+ this.$ulEle.removeAttr("aria-describedby");
44875
45066
  this.$ulEle.sortable("disable");
44876
45067
  }
44877
45068
  } else {
@@ -45025,9 +45216,18 @@
45025
45216
  _super.prototype.ngAfterViewInit.call(_this);
45026
45217
  _this.setUpCUDHandlers();
45027
45218
  _this.selectedItemWidgets = _this.multiselect ? [] : {};
45219
+ var ele = $(_this.nativeElement).find(".app-livelist-container");
45028
45220
  if (_this.enablereorder && !_this.groupby) {
45221
+ if (ele) {
45222
+ ele.attr("aria-describedby", _this.titleId);
45223
+ }
45029
45224
  _this.configureDnD();
45030
45225
  }
45226
+ if (!_this.enablereorder) {
45227
+ if (ele) {
45228
+ ele.removeAttr("aria-describedby");
45229
+ }
45230
+ }
45031
45231
  if (_this.groupby && _this.collapsible) {
45032
45232
  _this.handleHeaderClick = base.handleHeaderClick;
45033
45233
  _this.toggleAllHeaders = base.toggleAllHeaders.bind(undefined, _this);
@@ -45037,6 +45237,16 @@
45037
45237
  this.setupHandlers();
45038
45238
  var $ul = this.nativeElement.querySelector("ul.app-livelist-container");
45039
45239
  base.styler($ul, this, base.APPLY_STYLES_TYPE.SCROLLABLE_CONTAINER);
45240
+ if (this.enablereorder) {
45241
+ if ($ul) {
45242
+ $ul.setAttribute("aria-describedby", this.titleId);
45243
+ }
45244
+ }
45245
+ if (!this.enablereorder) {
45246
+ if ($ul) {
45247
+ $ul.removeAttribute("aria-describedby");
45248
+ }
45249
+ }
45040
45250
  if (core.isMobileApp() && $ul.querySelector(".app-list-item-action-panel")) {
45041
45251
  this._listAnimator = new ListAnimator(this);
45042
45252
  }
@@ -45061,7 +45271,7 @@
45061
45271
  type: core$1.Component,
45062
45272
  args: [ {
45063
45273
  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',
45274
+ 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<div 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</div>\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<div 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</div>\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
45275
  providers: [ base.provideAsWidgetRef(ListComponent) ]
45066
45276
  } ]
45067
45277
  } ];
@@ -45576,6 +45786,10 @@
45576
45786
  value: "No data found."
45577
45787
  }, base.PROP_STRING) ], [ "ondemandmessage", Object.assign({
45578
45788
  value: "Load More"
45789
+ }, base.PROP_STRING) ], [ "showviewlessbutton", Object.assign({
45790
+ value: false
45791
+ }, base.PROP_BOOLEAN) ], [ "viewlessmessage", Object.assign({
45792
+ value: "View Less"
45579
45793
  }, base.PROP_STRING) ], [ "pagesize", base.PROP_NUMBER ], [ "radioselect", base.PROP_BOOLEAN ], [ "rowclass", base.PROP_STRING ], [ "rowngclass", base.PROP_STRING ], [ "searchlabel", Object.assign({
45580
45794
  value: "Search"
45581
45795
  }, base.PROP_STRING) ], [ "show", Object.assign({
@@ -45656,6 +45870,7 @@
45656
45870
  _this.columns = {};
45657
45871
  _this.formfields = {};
45658
45872
  _this.enablesort = true;
45873
+ _this.showviewlessbutton = false;
45659
45874
  _this.primaryKey = [];
45660
45875
  _this.selectedItems = [];
45661
45876
  _this.selectedItemChange = new rxjs.Subject;
@@ -45676,6 +45891,7 @@
45676
45891
  _this.rowDef = {};
45677
45892
  _this.rowInstance = {};
45678
45893
  _this.fullFieldDefs = [];
45894
+ _this.variableInflight = true;
45679
45895
  _this.applyProps = new Map;
45680
45896
  _this.redraw = _.debounce(_this._redraw, 150);
45681
45897
  _this.debouncedHandleLoading = _.debounce(_this.handleLoading, 350);
@@ -45698,6 +45914,7 @@
45698
45914
  data: [],
45699
45915
  colDefs: [],
45700
45916
  startRowIndex: 1,
45917
+ mode: "",
45701
45918
  sortInfo: {
45702
45919
  field: "",
45703
45920
  direction: ""
@@ -45728,6 +45945,10 @@
45728
45945
  isSearchTrigerred: false,
45729
45946
  isDatasetUpdated: false,
45730
45947
  isDataUpdatedByUser: false,
45948
+ showviewlessbutton: false,
45949
+ ondemandmessage: "",
45950
+ viewlessmessage: "",
45951
+ loadingdatamsg: "",
45731
45952
  isNextPageData: undefined,
45732
45953
  ACTIONS: {
45733
45954
  DELETE: "delete",
@@ -45752,6 +45973,14 @@
45752
45973
  getPageSize: function() {
45753
45974
  return _this.pagesize;
45754
45975
  },
45976
+ getPageCount: function() {
45977
+ return _this.dataNavigator.pageCount;
45978
+ },
45979
+ enableNavigation: function() {
45980
+ _this.dataNavigator.widget.isDisableNext = false;
45981
+ _this.dataNavigator.widget.isDisableLast = false;
45982
+ _this.gridOptions.mode = "viewless";
45983
+ },
45755
45984
  setDeletedRowIndex: function(id) {
45756
45985
  _this.setDataGridOption("deletedRowIndex", id);
45757
45986
  },
@@ -45786,7 +46015,9 @@
45786
46015
  }
45787
46016
  _this.callDataGridMethod("selectRows", _this.items);
45788
46017
  _this.selectedItems = _this.callDataGridMethod("getSelectedRows");
45789
- _this.selectedItemChange.next(_this.selectedItems);
46018
+ if (_this.selectedItems.length) {
46019
+ _this.selectedItemChange.next(_this.selectedItems);
46020
+ }
45790
46021
  if (_this._isPageSearch && _this.filterInfo) {
45791
46022
  _this.searchSortHandler(_this.filterInfo, undefined, "search");
45792
46023
  }
@@ -45795,9 +46026,11 @@
45795
46026
  onRowSelect: function(row, e) {
45796
46027
  _this.ngZone.run((function() {
45797
46028
  _this.selectedItems = _this.callDataGridMethod("getSelectedRows");
45798
- _this.selectedItemChange.next(_this.selectedItems);
46029
+ if (_this.selectedItems.length) {
46030
+ _this.selectedItemChange.next(_this.selectedItems);
46031
+ }
45799
46032
  var rowData = _this.addRowIndex(row);
45800
- if (rowData.$index && _this.getConfiguredState() !== "none" && _this.dataNavigator && base.unsupportedStatePersistenceTypes.indexOf(_this.navigation) < 0) {
46033
+ if (_this.selectedItems.length && rowData.$index && _this.getConfiguredState() !== "none" && _this.dataNavigator && base.unsupportedStatePersistenceTypes.indexOf(_this.navigation) < 0) {
45801
46034
  var obj = {
45802
46035
  page: _this.dataNavigator.dn.currentPage,
45803
46036
  index: rowData.$index - 1
@@ -46237,9 +46470,14 @@
46237
46470
  _this.callDataGridMethod("addLoadMoreBtn", _this.ondemandmessage, _this.loadingdatamsg, (function($event) {
46238
46471
  _this.gridOptions.setIsNextPageData(true);
46239
46472
  _this.gridOptions.setIsDataUpdatedByUser(false);
46240
- _this.dataNavigator.navigatePage("next", $event);
46241
- _this.isDataLoading = true;
46242
- }));
46473
+ if (_this.gridOptions.mode === "viewless") {
46474
+ _this.dataNavigator.navigatePage("first", $event, true);
46475
+ _this.gridOptions.mode = "";
46476
+ } else {
46477
+ _this.dataNavigator.navigatePage("next", $event);
46478
+ _this.isDataLoading = true;
46479
+ }
46480
+ }), _this.infScroll);
46243
46481
  },
46244
46482
  bindScrollEvt: function() {
46245
46483
  if (_this._gridData && _this._gridData.length && _this.infScroll) {
@@ -46399,7 +46637,15 @@
46399
46637
  set: function(newValue) {
46400
46638
  var _a;
46401
46639
  this.isDataLoading = false;
46640
+ if (this.variableInflight && _.isEmpty(newValue)) {
46641
+ return;
46642
+ }
46402
46643
  this.variableInflight = false;
46644
+ if (newValue && newValue.length === 0) {
46645
+ this.callDataGridMethod("setStatus", "nodata", this.nodatamessage);
46646
+ } else {
46647
+ this.callDataGridMethod("setStatus", "ready");
46648
+ }
46403
46649
  if (this.gridOptions.isNavTypeScrollOrOndemand()) {
46404
46650
  _a = __read(this.paginationService.updateFieldsOnPagination(this, newValue), 2),
46405
46651
  this._gridData = _a[0], this.currentPage = _a[1];
@@ -46517,6 +46763,10 @@
46517
46763
  this.gridOptions.securityUtils.pipeTransform = this.trustAsPipe;
46518
46764
  this.gridOptions.navigation = this.navigation;
46519
46765
  this.gridOptions.isdynamictable = this.isdynamictable;
46766
+ this.gridOptions.showviewlessbutton = this.showviewlessbutton;
46767
+ this.gridOptions.ondemandmessage = this.ondemandmessage;
46768
+ this.gridOptions.viewlessmessage = this.viewlessmessage;
46769
+ this.gridOptions.loadingdatamsg = this.loadingdatamsg;
46520
46770
  if (!_.isEmpty(this.gridData)) {
46521
46771
  this.gridOptions.data = core.getClonedObject(this.gridData);
46522
46772
  }
@@ -46848,6 +47098,9 @@
46848
47098
  };
46849
47099
  TableComponent.prototype.setGridData = function(serverData) {
46850
47100
  var data = this.filternullrecords ? this.removeEmptyRecords(serverData) : serverData;
47101
+ if (_.get(this.datasource, "category") === "wm.Variable") {
47102
+ this.variableInflight = false;
47103
+ }
46851
47104
  if (!this.variableInflight) {
46852
47105
  if (data && data.length === 0) {
46853
47106
  this.callDataGridMethod("setStatus", "nodata", this.nodatamessage);
@@ -47142,10 +47395,8 @@
47142
47395
  this.variableInflight = false;
47143
47396
  this.callDataGridMethod("setStatus", "nodata", this.nodatamessage);
47144
47397
  }
47145
- if (this.dataset) {
47146
- this.watchVariableDataSet(this.dataset);
47147
- this.onDataSourceChange();
47148
- }
47398
+ this.watchVariableDataSet(this.dataset);
47399
+ this.onDataSourceChange();
47149
47400
  break;
47150
47401
 
47151
47402
  case "dataset":
@@ -47254,6 +47505,11 @@
47254
47505
  if (nv) {
47255
47506
  this.$element.find(".on-demand-datagrid > a").text(nv);
47256
47507
  }
47508
+ this.gridOptions.ondemandmessage = nv;
47509
+ break;
47510
+
47511
+ case "viewlessmessage":
47512
+ this.gridOptions.viewlessmessage = nv;
47257
47513
  break;
47258
47514
 
47259
47515
  case "show":
@@ -50978,15 +51234,20 @@
50978
51234
  };
50979
51235
  };
50980
51236
  var \u02752 = findInvalidElement;
50981
- var setTouchedState = function(ngForm) {
51237
+ var setTouchedState = function(self, ngForm, fieldName) {
51238
+ var _a, _b;
50982
51239
  if (ngForm.valid) {
50983
51240
  return;
50984
51241
  }
50985
51242
  if (ngForm.controls) {
50986
- _.forEach(ngForm.controls, (function(ctrl) {
50987
- setTouchedState(ctrl);
51243
+ _.forEach(ngForm.controls, (function(ctrl, fieldName) {
51244
+ setTouchedState(self, ctrl, fieldName);
50988
51245
  }));
50989
51246
  } else {
51247
+ var element = self.$element.find('[wmformfield][key="' + fieldName + '"]');
51248
+ element[0].setAttribute("__errormsg", element[0].getAttribute("__validationId"));
51249
+ (_a = element[0].querySelector("input")) === null || _a === void 0 ? void 0 : _a.setAttribute("aria-invalid", ngForm.invalid);
51250
+ (_b = element[0].querySelector("input")) === null || _b === void 0 ? void 0 : _b.setAttribute("aria-describedby", element[0].getAttribute("__validationId"));
50990
51251
  ngForm.markAsTouched();
50991
51252
  }
50992
51253
  };
@@ -51283,7 +51544,7 @@
51283
51544
  }));
51284
51545
  };
51285
51546
  FormComponent.prototype.highlightInvalidFields = function() {
51286
- setTouchedState(this.ngform);
51547
+ setTouchedState(this, this.ngform, "");
51287
51548
  };
51288
51549
  FormComponent.prototype.validateFieldsOnSubmit = function() {
51289
51550
  this.setValidationMsgs();
@@ -51812,8 +52073,8 @@
51812
52073
  FormComponent.prototype.generateFormFields = function() {
51813
52074
  return __awaiter(this, void 0, void 0, (function() {
51814
52075
  var noOfColumns, $gridLayout, columnWidth, fieldTemplate, colCount, index, userFields, fields, colTmpl, componentFactoryRef, component;
51815
- return __generator(this, (function(_b) {
51816
- switch (_b.label) {
52076
+ return __generator(this, (function(_c) {
52077
+ switch (_c.label) {
51817
52078
  case 0:
51818
52079
  if (_.isUndefined(this._isGridLayoutPresent)) {
51819
52080
  this._isGridLayoutPresent = this.$element.find(".panel-body [wmlayoutgrid]").length > 0;
@@ -51872,7 +52133,7 @@
51872
52133
  }) ];
51873
52134
 
51874
52135
  case 1:
51875
- componentFactoryRef = _b.sent();
52136
+ componentFactoryRef = _c.sent();
51876
52137
  component = this.dynamicFormRef.createComponent(componentFactoryRef, 0, this.inj);
51877
52138
  core.extendProto(component.instance, this._dynamicContext);
51878
52139
  $gridLayout[0].appendChild(component.location.nativeElement);
@@ -52393,10 +52654,18 @@
52393
52654
  $($evt.target).closest(".live-field").addClass("active");
52394
52655
  };
52395
52656
  FormFieldDirective.prototype._onBlurField = function($evt) {
52396
- var _a, _b;
52657
+ var _a, _b, _c, _d;
52397
52658
  $($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"));
52659
+ var ele = this.nativeElement.querySelector("p.text-danger");
52660
+ if (this.ngform.controls[this._fieldName].invalid && this.ngform.controls[this._fieldName].touched && this.form.isUpdateMode) {
52661
+ this.nativeElement.setAttribute("__errormsg", "" + this.nativeElement.getAttribute("__validationId"));
52662
+ (_a = this.nativeElement.querySelector("input")) === null || _a === void 0 ? void 0 : _a.setAttribute("aria-invalid", "" + this.ngform.controls[this._fieldName].invalid);
52663
+ (_b = this.nativeElement.querySelector("input")) === null || _b === void 0 ? void 0 : _b.setAttribute("aria-describedby", "" + this.nativeElement.getAttribute("__validationId"));
52664
+ } else {
52665
+ this.nativeElement.removeAttribute("__errormsg");
52666
+ (_c = this.nativeElement.querySelector("input")) === null || _c === void 0 ? void 0 : _c.removeAttribute("aria-invalid");
52667
+ (_d = this.nativeElement.querySelector("input")) === null || _d === void 0 ? void 0 : _d.removeAttribute("aria-describedby");
52668
+ }
52400
52669
  this._activeField = false;
52401
52670
  this._triggeredByUser = false;
52402
52671
  this._clicktriggeredByUser = false;
@@ -52618,7 +52887,7 @@
52618
52887
  });
52619
52888
  };
52620
52889
  FormFieldDirective.prototype.onValueChange = function(val) {
52621
- var _a, _b;
52890
+ var _a, _b, _c, _d;
52622
52891
  if (!this.isDestroyed) {
52623
52892
  var captionEl = $(this.nativeElement).find(".caption-floating");
52624
52893
  if (captionEl.length > 0) {
@@ -52630,8 +52899,15 @@
52630
52899
  isFocused: this._activeField
52631
52900
  });
52632
52901
  }
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"));
52902
+ if (this.ngform.controls[this._fieldName].invalid && this.ngform.controls[this._fieldName].touched && this.form.isUpdateMode) {
52903
+ this.nativeElement.setAttribute("__errormsg", "" + this.nativeElement.getAttribute("__validationId"));
52904
+ (_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");
52905
+ (_b = this.nativeElement.querySelector("input")) === null || _b === void 0 ? void 0 : _b.setAttribute("aria-describedby", "" + this.nativeElement.getAttribute("__validationId"));
52906
+ } else {
52907
+ this.nativeElement.removeAttribute("__errormsg");
52908
+ (_c = this.nativeElement.querySelector("input")) === null || _c === void 0 ? void 0 : _c.removeAttribute("aria-invalid");
52909
+ (_d = this.nativeElement.querySelector("input")) === null || _d === void 0 ? void 0 : _d.removeAttribute("aria-describedby");
52910
+ }
52635
52911
  this.form.onFieldValueChange(this, val);
52636
52912
  this.notifyChanges();
52637
52913
  if (this.$element.find(".active").length > 0 || this.form.touched) {
@@ -58298,40 +58574,36 @@
58298
58574
  var TabsAnimator = function(_super) {
58299
58575
  __extends(TabsAnimator, _super);
58300
58576
  function TabsAnimator(tabs) {
58301
- var e_1, _a;
58302
58577
  var _this = _super.call(this) || this;
58303
58578
  _this.tabs = tabs;
58304
58579
  _this._$el = $(_this.tabs.getNativeElement()).find(">.tab-content");
58305
- var childEls = _this._$el.find(">[wmTabPane]");
58306
- _this._noOfTabs = childEls.length;
58307
- var maxWidth = _this._noOfTabs * 100 + "%";
58308
- core.addClass(_this.tabs.getNativeElement(), "has-transition");
58309
- core.setCSSFromObj(_this._$el[0], {
58310
- maxWidth: maxWidth,
58311
- width: maxWidth
58312
- });
58313
- var width = 100 / _this._noOfTabs + "%";
58314
- try {
58315
- for (var _b = __values(Array.from(childEls)), _c = _b.next(); !_c.done; _c = _b.next()) {
58316
- var child = _c.value;
58317
- core.setCSS(child, "width", width);
58318
- }
58319
- } catch (e_1_1) {
58320
- e_1 = {
58321
- error: e_1_1
58322
- };
58323
- } finally {
58324
- try {
58325
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
58326
- } finally {
58327
- if (e_1) throw e_1.error;
58328
- }
58329
- }
58330
58580
  _this.init(_this._$el);
58331
58581
  return _this;
58332
58582
  }
58583
+ TabsAnimator.prototype.calibrate = function() {
58584
+ var activeTabIndex = this.tabs.getActiveTabIndex();
58585
+ var panes = this._$el.find(">.tab-pane");
58586
+ var activeTabVisibleIndex = 0;
58587
+ var noOfVisiblePanes = 0;
58588
+ var visiblePanes = [];
58589
+ panes.each((function(i, p) {
58590
+ if (!$(p).prop("hidden")) {
58591
+ noOfVisiblePanes++;
58592
+ if (i === activeTabIndex) {
58593
+ activeTabVisibleIndex = noOfVisiblePanes - 1;
58594
+ }
58595
+ visiblePanes.push(p);
58596
+ }
58597
+ return true;
58598
+ }));
58599
+ return {
58600
+ activeTabIndex: activeTabVisibleIndex,
58601
+ noOfTabs: noOfVisiblePanes,
58602
+ panes: visiblePanes
58603
+ };
58604
+ };
58333
58605
  TabsAnimator.prototype.bounds = function() {
58334
- var activeTabIndex = this.tabs.getActiveTabIndex(), w = this._$el.find(">.tab-pane").first().width(), noOfTabs = this._$el.find(">.tab-pane:visible").length, centerVal = -1 * activeTabIndex * w;
58606
+ var _a = this.calibrate(), activeTabIndex = _a.activeTabIndex, noOfTabs = _a.noOfTabs, panes = _a.panes, w = $(panes[0]).width(), centerVal = -1 * activeTabIndex * w;
58335
58607
  this.clearContentFocus();
58336
58608
  return {
58337
58609
  strict: false,
@@ -58358,8 +58630,18 @@
58358
58630
  }
58359
58631
  };
58360
58632
  TabsAnimator.prototype.transitionTabIntoView = function() {
58361
- var activeTabIndex = this.tabs.getActiveTabIndex();
58362
- core.setCSS(this._$el[0], "transform", "translate3d(" + -1 * activeTabIndex / this._noOfTabs * 100 + "%, 0, 0)");
58633
+ var _a = this.calibrate(), activeTabIndex = _a.activeTabIndex, noOfTabs = _a.noOfTabs, panes = _a.panes;
58634
+ var maxWidth = noOfTabs * 100 + "%";
58635
+ core.setCSSFromObj(this._$el[0], {
58636
+ maxWidth: maxWidth,
58637
+ width: maxWidth
58638
+ });
58639
+ core.addClass(this.tabs.getNativeElement(), "has-transition");
58640
+ var width = 100 / noOfTabs + "%";
58641
+ panes.forEach((function(p) {
58642
+ core.setCSS(p, "width", width);
58643
+ }));
58644
+ core.setCSS(this._$el[0], "transform", "translate3d(" + -1 * activeTabIndex / noOfTabs * 100 + "%, 0, 0)");
58363
58645
  };
58364
58646
  TabsAnimator.prototype.onUpper = function($event) {
58365
58647
  this.tabs.prev($event);
@@ -58485,6 +58767,7 @@
58485
58767
  };
58486
58768
  TabPaneComponent.prototype.onPropertyChange = function(key, nv, ov) {
58487
58769
  var _this = this;
58770
+ var _a;
58488
58771
  if (key === "content") {
58489
58772
  if (this.isActive) {
58490
58773
  setTimeout((function() {
@@ -58495,6 +58778,10 @@
58495
58778
  this.nativeElement.hidden = !nv;
58496
58779
  if (this._isFirstLoad) {
58497
58780
  this.tabsRef.selectDefaultPaneByIndex(this.tabsRef.defaultpaneindex);
58781
+ } else if (!nv && this.isActive) {
58782
+ this.tabsRef.next();
58783
+ } else if (nv || !this.isActive) {
58784
+ (_a = this.tabsRef.tabsAnimator) === null || _a === void 0 ? void 0 : _a.transitionTabIntoView();
58498
58785
  }
58499
58786
  this._isFirstLoad = false;
58500
58787
  } else {
@@ -59781,7 +60068,7 @@
59781
60068
  value: true
59782
60069
  }, base.PROP_BOOLEAN) ], [ "title", Object.assign({
59783
60070
  value: "Step Title"
59784
- }, base.PROP_STRING) ] ]));
60071
+ }, base.PROP_STRING) ], [ "subtitle", base.PROP_STRING ] ]));
59785
60072
  };
59786
60073
  var DEFAULT_CLS$1 = "app-wizard-step-content";
59787
60074
  var WIDGET_CONFIG$1 = {
@@ -60085,6 +60372,7 @@
60085
60372
  this.setDefaultStep(step);
60086
60373
  }
60087
60374
  }
60375
+ this.addMoreText();
60088
60376
  };
60089
60377
  WizardComponent.prototype.onWizardHeaderClick = function($event, currentStep) {
60090
60378
  var _this = this;
@@ -60100,6 +60388,7 @@
60100
60388
  }));
60101
60389
  this.currentStep = currentStep;
60102
60390
  this.currentStep.active = true;
60391
+ this.addMoreText();
60103
60392
  }
60104
60393
  };
60105
60394
  WizardComponent.prototype.next = function(eventName) {
@@ -60126,6 +60415,7 @@
60126
60415
  nextStep.active = true;
60127
60416
  this.currentStep = nextStep;
60128
60417
  }
60418
+ this.addMoreText();
60129
60419
  };
60130
60420
  WizardComponent.prototype.prev = function() {
60131
60421
  var currentStep = this.currentStep;
@@ -60141,6 +60431,7 @@
60141
60431
  prevStep.active = true;
60142
60432
  this.currentStep = prevStep;
60143
60433
  }
60434
+ this.addMoreText();
60144
60435
  };
60145
60436
  WizardComponent.prototype.skip = function() {
60146
60437
  this.next("skip");
@@ -60156,6 +60447,42 @@
60156
60447
  steps: this.steps.toArray()
60157
60448
  });
60158
60449
  };
60450
+ WizardComponent.prototype.addMoreText = function() {
60451
+ setTimeout((function() {
60452
+ var newWindowWidth = $(window).width();
60453
+ if (newWindowWidth < 768) {
60454
+ $(".app-wizard-step.current .subtitle-wrapper .step-title").css({
60455
+ height: "auto",
60456
+ display: "block"
60457
+ });
60458
+ var subtitleTextLength = $(".app-wizard-step.current .subtitle-wrapper .step-title").height();
60459
+ $(".read_more").css("display", "none");
60460
+ $(".current .subtitle-wrapper").removeClass("readmore_subtitle");
60461
+ if (subtitleTextLength > 44) {
60462
+ $(".app-wizard-step.current .subtitle-wrapper .step-title").css({
60463
+ height: "44px",
60464
+ display: "-webkit-box"
60465
+ });
60466
+ $(".current .read_more").css("display", "block");
60467
+ $(".active .read_more").css("display", "none");
60468
+ $(".disable .read_more").css("display", "none");
60469
+ $(".app-wizard-step>a").css("height", "100px");
60470
+ }
60471
+ }
60472
+ }));
60473
+ };
60474
+ WizardComponent.prototype.readMoreSubtitle = function() {
60475
+ $(".current .subtitle-wrapper").addClass("readmore_subtitle");
60476
+ $(".current .read_more").css("display", "none");
60477
+ $(document).on("mouseup", (function(e) {
60478
+ var container = $(".subtitle-wrapper");
60479
+ if (!container.is(e.target) && container.has(e.target).length === 0) {
60480
+ $(".current .subtitle-wrapper").removeClass("readmore_subtitle");
60481
+ $(".current .read_more").css("display", "block");
60482
+ $(document).off("mouseup");
60483
+ }
60484
+ }));
60485
+ };
60159
60486
  WizardComponent.prototype.isFirstStep = function(stepRef) {
60160
60487
  return this.steps.first === stepRef;
60161
60488
  };
@@ -60178,6 +60505,11 @@
60178
60505
  WizardComponent.prototype.ngAfterViewInit = function() {
60179
60506
  _super.prototype.ngAfterViewInit.call(this);
60180
60507
  base.styler(this.nativeElement.querySelector(".panel-body"), this, base.APPLY_STYLES_TYPE.INNER_SHELL);
60508
+ setTimeout((function() {
60509
+ if ($(window).width() < 768) {
60510
+ $(".app-wizard").removeClass("vertical");
60511
+ }
60512
+ }));
60181
60513
  };
60182
60514
  return WizardComponent;
60183
60515
  }(base.StylableComponent);
@@ -60186,7 +60518,7 @@
60186
60518
  type: core.Component,
60187
60519
  args: [ {
60188
60520
  selector: "div[wmWizard]",
60189
- 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',
60521
+ 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',
60190
60522
  providers: [ base.provideAsWidgetRef(WizardComponent) ]
60191
60523
  } ]
60192
60524
  } ];
@@ -67450,10 +67782,10 @@
67450
67782
  }));
67451
67783
 
67452
67784
  (function(global, factory) {
67453
- typeof exports === "object" && typeof module !== "undefined" ? factory(exports, require("@angular/core"), require("@wm/core"), require("@wm/components/base"), require("@wm/components/page"), require("@wm/mobile/core"), require("@angular/common")) : typeof define === "function" && define.amd ? define("@wm/mobile/components/page", [ "exports", "@angular/core", "@wm/core", "@wm/components/base", "@wm/components/page", "@wm/mobile/core", "@angular/common" ], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self,
67785
+ typeof exports === "object" && typeof module !== "undefined" ? factory(exports, require("@angular/core"), require("@wm/core"), require("@wm/components/base"), require("ngx-bootstrap/modal"), require("@wm/components/page"), require("@wm/mobile/core"), require("@angular/common")) : typeof define === "function" && define.amd ? define("@wm/mobile/components/page", [ "exports", "@angular/core", "@wm/core", "@wm/components/base", "ngx-bootstrap/modal", "@wm/components/page", "@wm/mobile/core", "@angular/common" ], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self,
67454
67786
  factory((global.wm = global.wm || {}, global.wm.mobile = global.wm.mobile || {},
67455
- global.wm.mobile.components = global.wm.mobile.components || {}, global.wm.mobile.components.page = {}), global.ng.core, global.wm.core, global.wm.components.base, global.wm.components.page, global.wm.mobile.core, global.ng.common));
67456
- })(this, (function(exports, core$1, core, base, page, core$2, common) {
67787
+ global.wm.mobile.components = global.wm.mobile.components || {}, global.wm.mobile.components.page = {}), global.ng.core, global.wm.core, global.wm.components.base, global.modal, global.wm.components.page, global.wm.mobile.core, global.ng.common));
67788
+ })(this, (function(exports, core$1, core, base, modal, page, core$2, common) {
67457
67789
  "use strict";
67458
67790
  var PageContentLoaderComponent = function() {
67459
67791
  function PageContentLoaderComponent(el) {
@@ -67475,18 +67807,30 @@
67475
67807
  } ];
67476
67808
  };
67477
67809
  var MobilePageDirective = function() {
67478
- function MobilePageDirective(app, elRef, deviceService, page, navigationService) {
67810
+ function MobilePageDirective(app, elRef, modalService, deviceService, page, navigationService) {
67479
67811
  var _this = this;
67812
+ this.modalService = modalService;
67480
67813
  this.deviceService = deviceService;
67481
67814
  this.page = page;
67482
67815
  this.navigationService = navigationService;
67816
+ this.subscriptions = [];
67483
67817
  core.addClass(elRef.nativeElement, "mobile-app-page");
67484
67818
  this._$ele = $(elRef.nativeElement);
67485
67819
  page.subscribe("wmMobileTabbar:ready", (function() {
67486
67820
  return _this._$ele.addClass("has-tabbar");
67487
67821
  }));
67822
+ var modalsOpened = [];
67823
+ this.subscriptions = [ modalService.onShown.subscribe((function(_a) {
67824
+ var id = _a.id;
67825
+ id && modalsOpened.push(id);
67826
+ })), modalService.onHidden.subscribe((function(_a) {
67827
+ var id = _a.id;
67828
+ id && _.remove(modalsOpened, id);
67829
+ })) ];
67488
67830
  this._backBtnListenerDestroyer = deviceService.onBackButtonTap((function($event) {
67489
- if (app.landingPageName === app.activePageName) {
67831
+ if (modalsOpened.length > 0) {
67832
+ modalService.hide(modalsOpened.pop());
67833
+ } else if (app.landingPageName === app.activePageName) {
67490
67834
  window.navigator["app"].exitApp();
67491
67835
  } else {
67492
67836
  _this.navigationService.goToPrevious();
@@ -67495,6 +67839,9 @@
67495
67839
  }));
67496
67840
  }
67497
67841
  MobilePageDirective.prototype.ngOnDestroy = function() {
67842
+ this.subscriptions.map((function(s) {
67843
+ return s.unsubscribe();
67844
+ }));
67498
67845
  this._backBtnListenerDestroyer();
67499
67846
  };
67500
67847
  return MobilePageDirective;
@@ -67510,6 +67857,8 @@
67510
67857
  type: core.App
67511
67858
  }, {
67512
67859
  type: core$1.ElementRef
67860
+ }, {
67861
+ type: modal.BsModalService
67513
67862
  }, {
67514
67863
  type: core$2.DeviceService
67515
67864
  }, {
@@ -71391,30 +71740,37 @@
71391
71740
  toaster.onHidden.subscribe(this.onToasterHide.bind(this, variable));
71392
71741
  }
71393
71742
  };
71743
+ NotificationActionManager.prototype.getDialogConfig = function(variable, options, dialogId, closeCallBackFn) {
71744
+ return {
71745
+ title: options.title || variable.dataBinding.title,
71746
+ text: options.message || variable.dataBinding.text,
71747
+ okButtonText: options.okButtonText || variable.dataBinding.okButtonText || "OK",
71748
+ cancelButtonText: options.cancelButtonText || variable.dataBinding.cancelButtonText || "CANCEL",
71749
+ alerttype: options.alerttype || variable.dataBinding.alerttype || "information",
71750
+ onOk: function() {
71751
+ exports.dialogService.close(dialogId, undefined, closeCallBackFn);
71752
+ },
71753
+ onCancel: function() {
71754
+ initiateCallback("onCancel", variable, options.data);
71755
+ exports.dialogService.close(dialogId, undefined);
71756
+ },
71757
+ onClose: function() {
71758
+ initiateCallback("onClose", variable, options.data);
71759
+ }
71760
+ };
71761
+ };
71394
71762
  NotificationActionManager.prototype.notifyViaDialog = function(variable, options) {
71395
- var commonPageDialogId = "Common" + _.capitalize(variable.operation) + "Dialog", variableOwner = variable.owner, dialogId = variableOwner === VARIABLE_CONSTANTS.OWNER.APP ? commonPageDialogId : "notification" + variable.operation + "dialog";
71763
+ var isPrefabType = core.getWmProjectProperties().type === "PREFAB";
71764
+ var dialogPrefix = isPrefabType ? "Prefab" : "Common";
71765
+ var dialogId = dialogPrefix + _.capitalize(variable.operation) + "Dialog";
71396
71766
  var closeCallBackFn = function() {
71397
71767
  return initiateCallback("onOk", variable, options.data);
71398
71768
  };
71399
- exports.dialogService.open(dialogId, variable._context, {
71400
- notification: {
71401
- title: options.title || variable.dataBinding.title,
71402
- text: options.message || variable.dataBinding.text,
71403
- okButtonText: options.okButtonText || variable.dataBinding.okButtonText || "OK",
71404
- cancelButtonText: options.cancelButtonText || variable.dataBinding.cancelButtonText || "CANCEL",
71405
- alerttype: options.alerttype || variable.dataBinding.alerttype || "information",
71406
- onOk: function() {
71407
- exports.dialogService.close(dialogId, variable._context, closeCallBackFn);
71408
- },
71409
- onCancel: function() {
71410
- initiateCallback("onCancel", variable, options.data);
71411
- exports.dialogService.close(dialogId, variable._context);
71412
- },
71413
- onClose: function() {
71414
- initiateCallback("onClose", variable, options.data);
71415
- }
71416
- }
71417
- });
71769
+ var dialogConfig = this.getDialogConfig(variable, options, dialogId, closeCallBackFn);
71770
+ dialogConfig = isPrefabType ? dialogConfig : {
71771
+ notification: dialogConfig
71772
+ };
71773
+ exports.dialogService.open(dialogId, undefined, dialogConfig);
71418
71774
  };
71419
71775
  NotificationActionManager.prototype.notify = function(variable, options, success, error) {
71420
71776
  var operation = variable.operation;
@@ -72843,6 +73199,13 @@
72843
73199
  type: core.AbstractHttpService
72844
73200
  } ];
72845
73201
  };
73202
+ var Formatter = function() {
73203
+ function Formatter() {}
73204
+ Formatter.prototype.format = function(value, format) {
73205
+ return exports.appManager.getPipe("date").transform(value, format);
73206
+ };
73207
+ return Formatter;
73208
+ }();
72846
73209
  var VariablesService = function() {
72847
73210
  function VariablesService(httpService, metadataService, navigationService, routerService, toasterService, oAuthService, securityService, dialogService) {
72848
73211
  this.httpService = httpService;
@@ -72949,6 +73312,7 @@
72949
73312
  if (this.isVariableSeperated(variablesJson, variableName)) {
72950
73313
  this.processBinding(varInstance, scope, "dataBinding", this.getBindSourceTarget(varInstance));
72951
73314
  varInstance.httpService = this.httpService;
73315
+ varInstance.dateFormatter = new Formatter;
72952
73316
  varInstance.subscribe("afterInvoke", (function() {
72953
73317
  return core.$invokeWatchers(true);
72954
73318
  }));
@@ -73038,6 +73402,7 @@
73038
73402
  exports.DB_CONSTANTS = DB_CONSTANTS;
73039
73403
  exports.DeviceVariableManager = DeviceVariableManager;
73040
73404
  exports.DeviceVariableService = DeviceVariableService;
73405
+ exports.Formatter = Formatter;
73041
73406
  exports.MetadataService = MetadataService;
73042
73407
  exports.SWAGGER_CONSTANTS = SWAGGER_CONSTANTS;
73043
73408
  exports.VARIABLE_CONSTANTS = VARIABLE_CONSTANTS;
@@ -82189,9 +82554,152 @@
82189
82554
  type: ComponentRefProvider
82190
82555
  } ];
82191
82556
  };
82557
+ var PipeProvider = function() {
82558
+ function PipeProvider(compiler, injector, domSanitizer, i18service) {
82559
+ var _this = this;
82560
+ var _a;
82561
+ this.compiler = compiler;
82562
+ this.injector = injector;
82563
+ this.domSanitizer = domSanitizer;
82564
+ this.i18service = i18service;
82565
+ this._locale = i2.getSessionStorageItem("selectedLocale") || "en";
82566
+ this.formatsByLocale = (_a = this.i18service) === null || _a === void 0 ? void 0 : _a.getwidgetLocale();
82567
+ this.preparePipeMeta = function(reference, name, pure, diDeps) {
82568
+ if (diDeps === void 0) {
82569
+ diDeps = [];
82570
+ }
82571
+ return {
82572
+ type: {
82573
+ reference: reference,
82574
+ diDeps: diDeps
82575
+ },
82576
+ name: name,
82577
+ pure: pure
82578
+ };
82579
+ };
82580
+ 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 ]) ];
82581
+ this._pipeMeta = new Map;
82582
+ this._pipeData.forEach((function(v) {
82583
+ _this._pipeMeta.set(v.name, v);
82584
+ }));
82585
+ }
82586
+ PipeProvider.prototype.unknownPipe = function(name) {
82587
+ throw Error("The pipe '" + name + "' could not be found");
82588
+ };
82589
+ PipeProvider.prototype.meta = function(name) {
82590
+ var meta = this._pipeMeta.get(name);
82591
+ if (!meta) {
82592
+ this.unknownPipe(name);
82593
+ }
82594
+ return meta;
82595
+ };
82596
+ PipeProvider.prototype.getPipeNameVsIsPureMap = function() {
82597
+ var _map = new Map;
82598
+ this._pipeMeta.forEach((function(v, k) {
82599
+ _map.set(k, v.pure);
82600
+ }));
82601
+ return _map;
82602
+ };
82603
+ PipeProvider.prototype.resolveDep = function(dep) {
82604
+ return this.injector.get(dep.token.identifier.reference);
82605
+ };
82606
+ PipeProvider.prototype.getInstance = function(name) {
82607
+ var e_1, _b;
82608
+ var _c = this.meta(name).type, ref = _c.reference, deps = _c.diDeps;
82609
+ if (!ref) {
82610
+ this.unknownPipe(name);
82611
+ }
82612
+ if (!deps.length) {
82613
+ return new ref;
82614
+ } else {
82615
+ var args = [];
82616
+ try {
82617
+ for (var deps_1 = __values(deps), deps_1_1 = deps_1.next(); !deps_1_1.done; deps_1_1 = deps_1.next()) {
82618
+ var dep = deps_1_1.value;
82619
+ args.push(dep);
82620
+ }
82621
+ } catch (e_1_1) {
82622
+ e_1 = {
82623
+ error: e_1_1
82624
+ };
82625
+ } finally {
82626
+ try {
82627
+ if (deps_1_1 && !deps_1_1.done && (_b = deps_1.return)) _b.call(deps_1);
82628
+ } finally {
82629
+ if (e_1) throw e_1.error;
82630
+ }
82631
+ }
82632
+ return new (ref.bind.apply(ref, __spreadArray([ void 0 ], __read(args))));
82633
+ }
82634
+ };
82635
+ return PipeProvider;
82636
+ }();
82637
+ PipeProvider.\u0275prov = i0__namespace.\u0275\u0275defineInjectable({
82638
+ factory: function PipeProvider_Factory() {
82639
+ 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));
82640
+ },
82641
+ token: PipeProvider,
82642
+ providedIn: "root"
82643
+ });
82644
+ PipeProvider.decorators = [ {
82645
+ type: i0.Injectable,
82646
+ args: [ {
82647
+ providedIn: "root"
82648
+ } ]
82649
+ } ];
82650
+ PipeProvider.ctorParameters = function() {
82651
+ return [ {
82652
+ type: i0.Compiler
82653
+ }, {
82654
+ type: i0.Injector
82655
+ }, {
82656
+ type: i1.DomSanitizer
82657
+ }, {
82658
+ type: i2.AbstractI18nService
82659
+ } ];
82660
+ };
82661
+ var PipeService = function() {
82662
+ function PipeService(pipeProvider, $app) {
82663
+ this.pipeProvider = pipeProvider;
82664
+ this.$app = $app;
82665
+ this.supportedPipes = [ "toDate", "toCurrency", "prefix", "suffix", "numberToString", "stringToNumber", "timeFromNow", "trustAs", "sanitize" ];
82666
+ if (this.$app.isApplicationType) {
82667
+ this.supportedPipes.push("custom");
82668
+ }
82669
+ }
82670
+ PipeService.prototype.getPipe = function(name) {
82671
+ if (this.supportedPipes.includes(name)) {
82672
+ return this.pipeProvider.getInstance(name);
82673
+ } else {
82674
+ throw Error("The pipe '" + name + "' could not be found");
82675
+ }
82676
+ };
82677
+ return PipeService;
82678
+ }();
82679
+ PipeService.\u0275prov = i0__namespace.\u0275\u0275defineInjectable({
82680
+ factory: function PipeService_Factory() {
82681
+ return new PipeService(i0__namespace.\u0275\u0275inject(PipeProvider), i0__namespace.\u0275\u0275inject(i2__namespace.App));
82682
+ },
82683
+ token: PipeService,
82684
+ providedIn: "root"
82685
+ });
82686
+ PipeService.decorators = [ {
82687
+ type: i0.Injectable,
82688
+ args: [ {
82689
+ providedIn: "root"
82690
+ } ]
82691
+ } ];
82692
+ PipeService.ctorParameters = function() {
82693
+ return [ {
82694
+ type: PipeProvider
82695
+ }, {
82696
+ type: i2.App
82697
+ } ];
82698
+ };
82192
82699
  var injectorMap = {
82193
82700
  DialogService: i2.AbstractDialogService,
82194
82701
  i18nService: i2.AbstractI18nService,
82702
+ PipeService: PipeService,
82195
82703
  statePersistence: i2.StatePersistence,
82196
82704
  SpinnerService: i2.AbstractSpinnerService,
82197
82705
  StatePersistenceService: i2.StatePersistence,
@@ -83308,110 +83816,6 @@
83308
83816
  type: i2.AbstractI18nService
83309
83817
  } ];
83310
83818
  };
83311
- var PipeProvider = function() {
83312
- function PipeProvider(compiler, injector, domSanitizer, i18service) {
83313
- var _this = this;
83314
- var _a;
83315
- this.compiler = compiler;
83316
- this.injector = injector;
83317
- this.domSanitizer = domSanitizer;
83318
- this.i18service = i18service;
83319
- this._locale = i2.getSessionStorageItem("selectedLocale") || "en";
83320
- this.formatsByLocale = (_a = this.i18service) === null || _a === void 0 ? void 0 : _a.getwidgetLocale();
83321
- this.preparePipeMeta = function(reference, name, pure, diDeps) {
83322
- if (diDeps === void 0) {
83323
- diDeps = [];
83324
- }
83325
- return {
83326
- type: {
83327
- reference: reference,
83328
- diDeps: diDeps
83329
- },
83330
- name: name,
83331
- pure: pure
83332
- };
83333
- };
83334
- 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 ]) ];
83335
- this._pipeMeta = new Map;
83336
- this._pipeData.forEach((function(v) {
83337
- _this._pipeMeta.set(v.name, v);
83338
- }));
83339
- }
83340
- PipeProvider.prototype.unknownPipe = function(name) {
83341
- throw Error("The pipe '" + name + "' could not be found");
83342
- };
83343
- PipeProvider.prototype.meta = function(name) {
83344
- var meta = this._pipeMeta.get(name);
83345
- if (!meta) {
83346
- this.unknownPipe(name);
83347
- }
83348
- return meta;
83349
- };
83350
- PipeProvider.prototype.getPipeNameVsIsPureMap = function() {
83351
- var _map = new Map;
83352
- this._pipeMeta.forEach((function(v, k) {
83353
- _map.set(k, v.pure);
83354
- }));
83355
- return _map;
83356
- };
83357
- PipeProvider.prototype.resolveDep = function(dep) {
83358
- return this.injector.get(dep.token.identifier.reference);
83359
- };
83360
- PipeProvider.prototype.getInstance = function(name) {
83361
- var e_1, _b;
83362
- var _c = this.meta(name).type, ref = _c.reference, deps = _c.diDeps;
83363
- if (!ref) {
83364
- this.unknownPipe(name);
83365
- }
83366
- if (!deps.length) {
83367
- return new ref;
83368
- } else {
83369
- var args = [];
83370
- try {
83371
- for (var deps_1 = __values(deps), deps_1_1 = deps_1.next(); !deps_1_1.done; deps_1_1 = deps_1.next()) {
83372
- var dep = deps_1_1.value;
83373
- args.push(dep);
83374
- }
83375
- } catch (e_1_1) {
83376
- e_1 = {
83377
- error: e_1_1
83378
- };
83379
- } finally {
83380
- try {
83381
- if (deps_1_1 && !deps_1_1.done && (_b = deps_1.return)) _b.call(deps_1);
83382
- } finally {
83383
- if (e_1) throw e_1.error;
83384
- }
83385
- }
83386
- return new (ref.bind.apply(ref, __spreadArray([ void 0 ], __read(args))));
83387
- }
83388
- };
83389
- return PipeProvider;
83390
- }();
83391
- PipeProvider.\u0275prov = i0__namespace.\u0275\u0275defineInjectable({
83392
- factory: function PipeProvider_Factory() {
83393
- 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));
83394
- },
83395
- token: PipeProvider,
83396
- providedIn: "root"
83397
- });
83398
- PipeProvider.decorators = [ {
83399
- type: i0.Injectable,
83400
- args: [ {
83401
- providedIn: "root"
83402
- } ]
83403
- } ];
83404
- PipeProvider.ctorParameters = function() {
83405
- return [ {
83406
- type: i0.Compiler
83407
- }, {
83408
- type: i0.Injector
83409
- }, {
83410
- type: i1.DomSanitizer
83411
- }, {
83412
- type: i2.AbstractI18nService
83413
- } ];
83414
- };
83415
83819
  var AppComponent = function() {
83416
83820
  function AppComponent(_pipeProvider, _appRef, elRef, oAuthService, dialogService, spinnerService, ngZone, router$1, app, appManager) {
83417
83821
  var _this = this;
@@ -83548,7 +83952,7 @@
83548
83952
  type: i0.Component,
83549
83953
  args: [ {
83550
83954
  selector: "app-root",
83551
- template: '<ng-container *ngIf="startApp">\n <router-outlet></router-outlet>\n <div wmContainer partialContainer content="Common" hidden class="ng-hide" *ngIf="isApplicationType"></div>\n <app-spinner name="globalspinner" classname="global-spinner" role="alert" aria-live="assertive" [attr.aria-label]="spinner.arialabel || \'Loading\'" [show]="spinner.show" [spinnermessages]="spinner.messages"></app-spinner>\n <div wmDialog name="oAuthLoginDialog" title="Application is requesting you to sign in with"\n close.event="closeOAuthDialog()">\n <ng-template #dialogBody>\n <ul class="list-items">\n <li class="list-item" *ngFor="let provider of providersConfig">\n <button class="btn" (click)="provider.invoke()">{{provider.name}}</button>\n </li>\n </ul>\n </ng-template>\n </div>\n <div wmConfirmDialog name="_app-confirm-dialog" title.bind="title" message.bind="message" oktext.bind="oktext"\n canceltext.bind="canceltext" closable="false" iconclass.bind="iconclass"\n escape.event="onEscape()" ok.event="onOk()" cancel.event="onCancel()" close.event="onClose()" opened.event="onOpen()"></div>\n <div wmAppExt></div>\n <i id="wm-mobile-display"></i>\n</ng-container>\n\x3c!--Dummy container to create the component dynamically--\x3e\n<ng-container #dynamicComponent></ng-container>\n',
83955
+ template: '<ng-container *ngIf="startApp">\n <router-outlet></router-outlet>\n <div wmContainer partialContainer content="Common" hidden class="ng-hide" *ngIf="isApplicationType"></div>\n <app-spinner name="globalspinner" classname="global-spinner" role="alert" aria-live="assertive" [attr.aria-label]="spinner.arialabel || \'Loading\'" [show]="spinner.show" [spinnermessages]="spinner.messages"></app-spinner>\n <div wmDialog name="oAuthLoginDialog" title="Application is requesting you to sign in with"\n close.event="closeOAuthDialog()">\n <ng-template #dialogBody>\n <ul class="list-items">\n <li class="list-item" *ngFor="let provider of providersConfig">\n <button class="btn" (click)="provider.invoke()">{{provider.name}}</button>\n </li>\n </ul>\n </ng-template>\n </div>\n <div wmConfirmDialog name="_app-confirm-dialog" title.bind="title" message.bind="message" oktext.bind="oktext"\n canceltext.bind="canceltext" closable="false" iconclass.bind="iconclass"\n escape.event="onEscape()" ok.event="onOk()" cancel.event="onCancel()" close.event="onClose()" opened.event="onOpen()"></div>\n <div *ngIf="!isApplicationType" wmConfirmDialog name="PrefabConfirmDialog" title.bind="title" message.bind="text" oktext.bind="okButtonText"\n canceltext.bind="cancelButtonText" closable="false" iconclass.bind="iconclass"\n escape.event="onEscape()" ok.event="onOk()" cancel.event="onCancel()" close.event="onClose()" opened.event="onOpen()"></div>\n <div *ngIf="!isApplicationType" wmAlertDialog name="PrefabAlertDialog" title.bind="title" message.bind="text" oktext.bind="okButtonText"\n canceltext.bind="cancelButtonText" closable="false" iconclass.bind="iconclass"\n escape.event="onEscape()" ok.event="onOk()" cancel.event="onCancel()" close.event="onClose()" opened.event="onOpen()"></div>\n <div wmAppExt></div>\n <i id="wm-mobile-display"></i>\n</ng-container>\n\x3c!--Dummy container to create the component dynamically--\x3e\n<ng-container #dynamicComponent></ng-container>\n',
83552
83956
  encapsulation: i0.ViewEncapsulation.None
83553
83957
  } ]
83554
83958
  } ];
@@ -84402,7 +84806,7 @@
84402
84806
  provide: http.HTTP_INTERCEPTORS,
84403
84807
  useClass: HttpCallInterceptor,
84404
84808
  multi: true
84405
- }, common.DecimalPipe, common.DatePipe, AppManagerService, PrefabManagerService, AuthGuard, RoleGuard, PageNotFoundGaurd, CanDeactivatePageGuard, AppJSResolve, AppExtensionJSResolve, I18nResolve, getSettingProvider(MAX_CACHE_SIZE, 10), getSettingProvider(MAX_CACHE_AGE, 30 * 60) ]
84809
+ }, 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) ]
84406
84810
  };
84407
84811
  };
84408
84812
  RuntimeBaseModule.prototype.getDeviceDetails = function() {
@@ -84595,6 +84999,7 @@
84595
84999
  exports.NavigationServiceImpl = NavigationServiceImpl;
84596
85000
  exports.PageNotFoundGaurd = PageNotFoundGaurd;
84597
85001
  exports.PipeProvider = PipeProvider;
85002
+ exports.PipeService = PipeService;
84598
85003
  exports.PrefabConfigProvider = PrefabConfigProvider;
84599
85004
  exports.PrefabDirective = PrefabDirective;
84600
85005
  exports.PrefabManagerService = PrefabManagerService;