@wavemaker/app-runtime-wm-build 11.4.0-next.28701 → 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()) {
@@ -8973,9 +8979,11 @@
8973
8979
  });
8974
8980
  };
8975
8981
  var getKeyboardFocusableElements = function(element) {
8976
- return [ element.querySelectorAll('a, button, input, textarea, select, details, iframe, embed, object, summary dialog, audio[controls], video[controls], [contenteditable], [tabindex]:not([tabindex="-1"])') ].filter((function(el) {
8977
- return !el[0].hasAttribute("disabled") && !el[0].hasAttribute("hidden");
8978
- }))[0];
8982
+ var elementNodeList = element.querySelectorAll("a, button, input, textarea, select, details, iframe, embed, object, summary dialog, audio[controls], video[controls], [contenteditable]");
8983
+ var elements = Array.from(elementNodeList);
8984
+ return elements.filter((function(el) {
8985
+ return !el.hasAttribute("disabled") && !el.hasAttribute("hidden") && (!el.hasAttribute("tabindex") || el.hasAttribute("tabindex") && !el.getAttribute("tabindex").startsWith("-"));
8986
+ }));
8979
8987
  };
8980
8988
  exports.APPLY_STYLES_TYPE = void 0;
8981
8989
  (function(APPLY_STYLES_TYPE) {
@@ -10382,7 +10390,18 @@
10382
10390
  configurable: true
10383
10391
  });
10384
10392
  ShowInDeviceDirective.prototype.onResize = function($event) {
10385
- if (this.devices.indexOf("lg") > -1 && window.matchMedia("(min-width: 1200px)").matches && !core$1.isLargeTabletLandscape() || this.devices.indexOf("md") > -1 && (core$1.isLargeTabletLandscape() || window.matchMedia("(min-width: 992px) and (max-width: 1199px)").matches && !core$1.isLargeTabletPortrait()) || this.devices.indexOf("sm") > -1 && (window.matchMedia("(min-width: 768px) and (max-width: 991px)").matches || core$1.isLargeTabletPortrait()) || this.devices.indexOf("xs") > -1 && window.matchMedia("(max-width: 767px)").matches || this.devices.indexOf("all") > -1) {
10393
+ var lgWidth = getComputedStyle(document.documentElement).getPropertyValue("--screen-lg") || "1200px";
10394
+ var mdWidth = getComputedStyle(document.documentElement).getPropertyValue("--screen-md") || "992px";
10395
+ var smWidth = getComputedStyle(document.documentElement).getPropertyValue("--screen-sm") || "768px";
10396
+ var lgTabLandScapeWidth = getComputedStyle(document.documentElement).getPropertyValue("--screen-lg-tab-landscape") || "1366px";
10397
+ var lgTabPortraitWidth = getComputedStyle(document.documentElement).getPropertyValue("--screen-lg-tab-portrait") || "1024px";
10398
+ var lgWidthMin = parseFloat(lgWidth) - 1;
10399
+ var lgUnit = lgWidthMin + "px";
10400
+ var mdWidthMin = parseFloat(mdWidth) - 1;
10401
+ var mdUnit = mdWidthMin + "px";
10402
+ var smWidthMin = parseFloat(smWidth) - 1;
10403
+ var smUnit = smWidthMin + "px";
10404
+ if (this.devices.indexOf("lg") > -1 && window.matchMedia("(min-width: " + lgWidth + ")").matches && !core$1.isLargeTabletLandscape(lgTabLandScapeWidth, lgTabPortraitWidth) || this.devices.indexOf("md") > -1 && (core$1.isLargeTabletLandscape(lgTabLandScapeWidth, lgTabPortraitWidth) || window.matchMedia("(min-width: " + mdWidth + ") and (max-width: " + lgUnit + ")").matches && !core$1.isLargeTabletPortrait(lgTabLandScapeWidth, lgTabPortraitWidth)) || this.devices.indexOf("sm") > -1 && (window.matchMedia("(min-width: " + smWidth + ") and (max-width: " + mdUnit + ")").matches || core$1.isLargeTabletPortrait(lgTabLandScapeWidth, lgTabPortraitWidth)) || this.devices.indexOf("xs") > -1 && window.matchMedia("(max-width: " + smUnit + ")").matches || this.devices.indexOf("all") > -1) {
10386
10405
  if (!this.embeddedView) {
10387
10406
  this.embeddedView = this.viewContainerRef.createEmbeddedView(this.templateRef, this.context);
10388
10407
  }
@@ -11229,7 +11248,7 @@
11229
11248
  if (openedDialogs.indexOf(ref) !== -1) {
11230
11249
  openedDialogs.splice(openedDialogs.indexOf(ref), 1);
11231
11250
  }
11232
- if (openedDialogs.length === 0 && core$1.isMobileApp()) {
11251
+ if (openedDialogs.length === 0 && (core$1.isMobile() || core$1.isMobileApp())) {
11233
11252
  var parentSelector = $("body > app-root")[0];
11234
11253
  parentSelector.removeAttribute("aria-hidden");
11235
11254
  }
@@ -13440,21 +13459,19 @@
13440
13459
  __proto__: null,
13441
13460
  default: search_build
13442
13461
  });
13443
- var tagName$1o = "div";
13462
+ var tagName$1o = "ul";
13444
13463
  transpiler.register("wm-tree", (function() {
13445
13464
  return {
13446
13465
  pre: function(attrs) {
13447
- return "<" + tagName$1o + " wmTree " + transpiler.getAttrMarkup(attrs) + ">";
13466
+ return "<" + tagName$1o + ' wmTree class="ztree" ' + transpiler.getAttrMarkup(attrs) + ">";
13448
13467
  },
13449
13468
  post: function() {
13450
13469
  return "</" + tagName$1o + ">";
13451
13470
  }
13452
13471
  };
13453
13472
  }));
13454
- var tree_build = function() {};
13455
- var tree_build$1 = Object.freeze({
13456
- __proto__: null,
13457
- default: tree_build
13473
+ var tree_build = Object.freeze({
13474
+ __proto__: null
13458
13475
  });
13459
13476
  var tagName$1n = "div";
13460
13477
  transpiler.register("wm-card", (function() {
@@ -15060,7 +15077,7 @@
15060
15077
  }
15061
15078
  var markup = "<" + tagName$q + " wmPopover " + transpiler.getAttrMarkup(attrs) + ">";
15062
15079
  var contextAttrs = table ? 'let-row="row"' : "";
15063
- 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>';
15064
15081
  if (popoverTemplate) {
15065
15082
  markup += "" + (popoverTemplate ? popoverTemplate : "");
15066
15083
  }
@@ -15071,7 +15088,7 @@
15071
15088
  if (shared.get("hasPopoverContent")) {
15072
15089
  markup += "</div>";
15073
15090
  }
15074
- 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 + ">";
15075
15092
  }
15076
15093
  };
15077
15094
  }));
@@ -16435,7 +16452,7 @@
16435
16452
  exports.tileBuild = tile_build$1;
16436
16453
  exports.timeBuild = time_build$1;
16437
16454
  exports.topNavBuild = topNav_build$1;
16438
- exports.treeBuild = tree_build$1;
16455
+ exports.treeBuild = tree_build;
16439
16456
  exports.videoBuild = video_build$1;
16440
16457
  exports.wizardBuild = wizard_build$1;
16441
16458
  exports.wizardStepBuild = wizardStep_build$1;
@@ -23161,346 +23178,435 @@
23161
23178
  value: 0
23162
23179
  }, base.PROP_NUMBER) ], [ "treeicons", base.PROP_STRING ] ]));
23163
23180
  };
23164
- var defaultTreeIconClass = "plus-minus";
23165
- var ICON_CLASSES = {
23166
- folder: {
23167
- expanded: "wi-folder-open",
23168
- collapsed: "wi-folder"
23169
- },
23170
- "circle-plus-minus": {
23171
- expanded: "wi-remove-circle-outline",
23172
- collapsed: "wi-add-circle-outline"
23173
- },
23174
- chevron: {
23175
- expanded: "wi-keyboard-arrow-down",
23176
- collapsed: "wi-keyboard-arrow-right"
23177
- },
23178
- menu: {
23179
- expanded: "wi-arrow-down",
23180
- collapsed: "wi-arrow-right"
23181
- },
23182
- triangle: {
23183
- expanded: "wi-arrow-drop-down-circle",
23184
- collapsed: "wi-play-circle-filled"
23185
- },
23186
- "expand-collapse": {
23187
- expanded: "wi-expand-less",
23188
- collapsed: "wi-expand-more"
23189
- },
23190
- "plus-minus": {
23191
- expanded: "wi-minus",
23192
- collapsed: "wi-plus"
23193
- }
23194
- };
23195
23181
  var WIDGET_INFO = {
23196
23182
  widgetType: "wm-tree",
23197
23183
  hostClass: "app-tree"
23198
23184
  };
23199
- var TreeDirective = function(_super) {
23200
- __extends(TreeDirective, _super);
23201
- 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) {
23202
23189
  var _this = _super.call(this, inj, WIDGET_INFO) || this;
23203
- _this.binddatavalue = binddatavalue;
23204
- _this.bindnodelabel = bindnodelabel;
23205
- _this.bindnodeicon = bindnodeicon;
23206
- _this.bindnodechildren = bindnodechildren;
23207
- _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
+ };
23208
23210
  base.styler(_this.nativeElement, _this, base.APPLY_STYLES_TYPE.CONTAINER);
23209
- _this.bindEvents();
23210
23211
  return _this;
23211
23212
  }
23212
- TreeDirective.prototype.onPropertyChange = function(key, nv, ov) {
23213
+ TreeComponent.prototype.onPropertyChange = function(key, nv, ov) {
23213
23214
  switch (key) {
23214
23215
  case "dataset":
23215
23216
  this.nodes = this.getNodes(nv);
23216
- 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;
23217
23232
  this.renderTree();
23218
23233
  break;
23219
23234
 
23220
- case "nodeicon":
23221
23235
  case "nodelabel":
23236
+ this.setting.data.key.name = this.labelKey;
23237
+ this.renderTree();
23238
+ break;
23239
+
23222
23240
  case "nodechildren":
23223
- case "orderby":
23241
+ this.setting.data.key.children = this.childrenKey;
23224
23242
  this.renderTree();
23225
23243
  break;
23226
23244
 
23227
- case "treeicons":
23228
- this.changeTreeIcons(nv, ov);
23245
+ case "nodeicon":
23246
+ this.nodeicon = this.iconKey;
23247
+ this.renderTree();
23229
23248
  break;
23230
23249
 
23231
- case "datavalue":
23232
- this.selectById(nv);
23250
+ case "orderby":
23251
+ this.renderTree();
23252
+ break;
23253
+
23254
+ case "class":
23255
+ this.treeClass = nv;
23256
+ this.renderTree();
23233
23257
  break;
23234
23258
 
23235
23259
  default:
23236
23260
  _super.prototype.onPropertyChange.call(this, key, nv, ov);
23261
+ break;
23237
23262
  }
23238
23263
  };
23239
- TreeDirective.prototype.constructNodes = function(nodes, parent, levels, deep, _evalDataValue) {
23264
+ TreeComponent.prototype.expandTree = function(level, node, childLevel) {
23240
23265
  var _this = this;
23241
- var $ul = $("<ul></ul>");
23242
- var _iconClses = ICON_CLASSES[this.treeicons || defaultTreeIconClass];
23243
- var _expr = this.binddatavalue || this.datavalue;
23244
- var _iconCls, _cls;
23245
- _cls = levels > 0 ? " expanded " : " collapsed ";
23246
- _iconCls = _cls + (levels > 0 ? _iconClses.expanded : _iconClses.collapsed);
23247
- deep = deep || 0;
23248
- parent.append($ul);
23249
- nodes.forEach((function(node, idx) {
23250
- var $li = $("<li></li>"), $iconNode = $("<i></i>"), nodeLabel = base.getEvaluatedData(node, {
23251
- field: _this.nodelabel,
23252
- bindExpression: _this.bindnodelabel
23253
- }, _this.viewParent) || node.label, nodeIcon = base.getEvaluatedData(node, {
23254
- field: _this.nodeicon,
23255
- bindExpression: _this.bindnodeicon
23256
- }, _this.viewParent) || node.icon, nodeChildren = base.getEvaluatedData(node, {
23257
- field: _this.nodechildren,
23258
- bindExpression: _this.bindnodechildren
23259
- }, _this.viewParent) || node.children;
23260
- var nodeIdValue = base.getEvaluatedData(node, {
23261
- field: _this.nodeid,
23262
- bindExpression: _this.bindnodeid
23263
- }, _this.viewParent);
23264
- if (nodeIdValue === undefined) {
23265
- nodeIdValue = node.children;
23266
- }
23267
- var isNodeMatched = false, expandCollapseIcon;
23268
- $li.data("nodedata", node).append($iconNode).append('<span class="title">' + nodeLabel + "</span>").appendTo($ul);
23269
- if (_this.bindnodeid || _this.nodeid) {
23270
- isNodeMatched = _this.binddatavalue ? nodeIdValue === _evalDataValue : nodeIdValue === _expr;
23271
- if (nodeIdValue !== undefined) {
23272
- $li.attr("id", nodeIdValue);
23273
- }
23274
- } else if (_this.binddatavalue) {
23275
- isNodeMatched = !!core.$parseExpr(_expr)(_this, node);
23276
- }
23277
- if (!_this._selectNode) {
23278
- if (_expr === "FirstNode" && idx === 0 || !deep && _expr === "LastNode" && idx === nodes.length - 1 || isNodeMatched) {
23279
- _this._selectNode = $li;
23280
- _this.datavalue = nodeIdValue;
23281
- }
23282
- }
23283
- if (nodeIcon) {
23284
- $iconNode.addClass(nodeIcon);
23285
- }
23286
- if (nodeChildren && nodeChildren.length) {
23287
- $li.addClass("parent-node " + _cls);
23288
- expandCollapseIcon = $('<i class="wi ' + _iconCls + '"></i>');
23289
- if (nodeIcon) {
23290
- $iconNode.addClass(nodeIcon);
23291
- }
23292
- $li.prepend(expandCollapseIcon);
23293
- _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);
23294
23271
  } else {
23295
- if (!nodeIcon) {
23296
- $iconNode.addClass("leaf-node");
23297
- }
23298
- $li.addClass("leaf-node");
23272
+ childLevel = 0;
23273
+ return;
23299
23274
  }
23300
23275
  }));
23301
23276
  };
23302
- 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) {
23303
23290
  return value.split(",").map((function(item) {
23304
23291
  return {
23305
23292
  label: item && item.trim()
23306
23293
  };
23307
23294
  }));
23308
23295
  };
23309
- TreeDirective.prototype.getNodes = function(newVal) {
23296
+ TreeComponent.prototype.getNodes = function(newVal) {
23310
23297
  var nodes;
23311
- 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)) {
23312
23303
  newVal = newVal.trim();
23313
23304
  if (newVal) {
23314
23305
  nodes = this.getNodesFromString(newVal);
23315
23306
  }
23316
- } else if (_.isArray(newVal)) {
23317
- newVal = base.getOrderedDataset(newVal, this.orderby);
23318
- nodes = newVal;
23319
- } else if (_.isObject(newVal)) {
23320
- nodes = [ newVal ];
23321
23307
  }
23322
23308
  return nodes;
23323
23309
  };
23324
- TreeDirective.prototype.changeTreeIcons = function(nv, ov) {
23325
- var $el = $(this.nativeElement);
23326
- nv = nv || defaultTreeIconClass;
23327
- ov = ov || defaultTreeIconClass;
23328
- $el.find("i.expanded").removeClass(ICON_CLASSES[ov].expanded).addClass(ICON_CLASSES[nv].expanded);
23329
- $el.find("i.collapsed").removeClass(ICON_CLASSES[ov].collapsed).addClass(ICON_CLASSES[nv].collapsed);
23330
- };
23331
- TreeDirective.prototype.toggleExpandCollapseNode = function($event, $i, $li) {
23332
- var treeIcons = ICON_CLASSES[this.treeicons || defaultTreeIconClass];
23333
- var $liPath = this.findSelectedNodeParent($li);
23334
- var path = "";
23335
- $liPath.each((function(i, el) {
23336
- var current = $(el).children(".title").text();
23337
- 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
+ }));
23338
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, "");
23339
23379
  var eventParams = {
23340
- $event: $event,
23341
- $item: $li.data("nodedata"),
23380
+ $event: event,
23381
+ $item: treeNode,
23342
23382
  $path: path
23343
23383
  };
23344
- if ($i.hasClass("collapsed")) {
23345
- $i.removeClass("collapsed " + treeIcons.collapsed).addClass("expanded " + treeIcons.expanded);
23346
- $li.removeClass("collapsed").addClass("expanded");
23347
- this.invokeEventCallback("expand", eventParams);
23348
- } else if ($i.hasClass("expanded")) {
23349
- $i.removeClass("expanded " + treeIcons.expanded).addClass("collapsed " + treeIcons.collapsed);
23350
- $li.removeClass("expanded").addClass("collapsed");
23351
- this.invokeEventCallback("collapse", eventParams);
23352
- }
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);
23353
23417
  };
23354
- TreeDirective.prototype.renderTree = function(forceRender) {
23418
+ TreeComponent.prototype.getChildren = function(node) {
23419
+ return node[this.childrenKey];
23420
+ };
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) {
23355
23462
  var _this = this;
23356
- var docFrag, $li, $liPath, data, path = "";
23357
- var levels = +this.nativeElement.getAttribute("levels") || 0, $el = $(this.nativeElement);
23358
- $el.empty();
23359
- if (forceRender) {
23360
- this._selectNode = undefined;
23361
- }
23362
- if (this.nodes && this.nodes.length) {
23363
- docFrag = document.createDocumentFragment();
23364
- this.constructNodes(this.nodes, $(docFrag), levels, 0, this.datavalue);
23365
- $el.append(docFrag);
23366
- }
23367
- if (this._selectNode) {
23368
- $li = this._selectNode;
23369
- $li.addClass("selected");
23370
- data = $li.data("nodedata");
23371
- $liPath = this.findSelectedNodeParent($li);
23372
- if (!$liPath.length) {
23373
- $liPath = $li;
23374
- }
23375
- $liPath.each((function(i, el) {
23376
- var $current = $(el), $i = $current.children("i.collapsed"), $title = $current.children(".title");
23377
- _this.toggleExpandCollapseNode(undefined, $i, $current);
23378
- path = "/" + ($title.text() + path);
23379
- }));
23380
- this.selecteditem = core.getClonedObject(data) || {};
23381
- this.selecteditem.path = path;
23382
- this.invokeEventCallback("select", {
23383
- $event: undefined,
23384
- $item: data,
23385
- $path: path
23386
- });
23387
- core.$appDigest();
23388
- }
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
+ }));
23389
23470
  };
23390
- TreeDirective.prototype.selectNode = function(evt, value) {
23471
+ TreeComponent.prototype.setNodeChildren = function(nodes, depth, level, parentNode) {
23391
23472
  var _this = this;
23392
- var target = evt && $(evt.target), $el = $(this.nativeElement), $li = _.isObject(value) ? value : $el.find('li[id="' + value + '"]').first();
23393
- var data, path = "", $liPath, nodeAction;
23394
- $el.find(".selected").removeClass("selected");
23395
- if (!$li.length) {
23396
- return;
23397
- }
23398
- $li.addClass("selected");
23399
- data = $li.data("nodedata");
23400
- nodeAction = data[this.nodeaction || "action"];
23401
- $liPath = target ? target.parents(".app-tree li") : this.findSelectedNodeParent($li);
23402
- $liPath.each((function(i, el) {
23403
- var current = $(el).children(".title").text();
23404
- path = "/" + (current + path);
23405
- }));
23406
- $li.parentsUntil($el, "li.parent-node.collapsed").each((function(index, el) {
23407
- var $current = $(el), $i = $current.children("i.collapsed");
23408
- _this.toggleExpandCollapseNode(undefined, $i, $current);
23409
- }));
23410
- this.selecteditem = core.getClonedObject(data) || {};
23411
- this.selecteditem.path = path;
23412
- if (target) {
23413
- if (this.nodeid || this.bindnodeid) {
23414
- this.datavalue = base.getEvaluatedData(data, {
23415
- field: this.nodeid,
23416
- bindExpression: this.bindnodeid
23417
- }, this.viewParent);
23418
- } else {
23419
- 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
+ }
23420
23493
  }
23421
- } else {
23422
- this.datavalue = value;
23423
23494
  }
23424
- if (nodeAction) {
23425
- 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
+ }
23426
23518
  }
23427
- this.invokeEventCallback("select", {
23428
- $event: evt,
23429
- $item: data,
23430
- $path: path
23431
- });
23432
- core.$appDigest();
23519
+ return count;
23433
23520
  };
23434
- TreeDirective.prototype.bindEvents = function() {
23435
- var _this = this;
23436
- $(this.nativeElement).on("click", (function(evt) {
23437
- var target = $(evt.target), li = target.closest("li"), $i = target.is("i") ? target : target.siblings("i.collapsed,i.expanded");
23438
- evt.stopPropagation();
23439
- if (target.is("span.title")) {
23440
- _this.selecteditem = {};
23441
- _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);
23442
23526
  }
23443
- if (target.is("i") || target.is("span.title") && _this.nodeclick === "expand") {
23444
- _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");
23445
23534
  }
23446
- }));
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);
23447
23555
  };
23448
- TreeDirective.prototype.findSelectedNodeParent = function($li) {
23449
- 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");
23450
23563
  };
23451
- TreeDirective.prototype.selectById = function(value) {
23452
- 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);
23453
23568
  };
23454
- TreeDirective.prototype.deselectById = function(value) {
23455
- this.selecteditem = {};
23456
- 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);
23457
23591
  };
23458
- return TreeDirective;
23592
+ return TreeComponent;
23459
23593
  }(base.StylableComponent);
23460
- TreeDirective.initializeProps = registerProps();
23461
- TreeDirective.decorators = [ {
23462
- type: core$1.Directive,
23594
+ TreeComponent.initializeProps = registerProps();
23595
+ TreeComponent.decorators = [ {
23596
+ type: core$1.Component,
23463
23597
  args: [ {
23464
- selector: "div[wmTree]",
23465
- 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
23466
23602
  } ]
23467
23603
  } ];
23468
- TreeDirective.ctorParameters = function() {
23604
+ TreeComponent.ctorParameters = function() {
23469
23605
  return [ {
23470
23606
  type: core$1.Injector
23471
- }, {
23472
- type: undefined,
23473
- decorators: [ {
23474
- type: core$1.Attribute,
23475
- args: [ "datavalue.bind" ]
23476
- } ]
23477
- }, {
23478
- type: undefined,
23479
- decorators: [ {
23480
- type: core$1.Attribute,
23481
- args: [ "nodelabel.bind" ]
23482
- } ]
23483
- }, {
23484
- type: undefined,
23485
- decorators: [ {
23486
- type: core$1.Attribute,
23487
- args: [ "nodeicon.bind" ]
23488
- } ]
23489
- }, {
23490
- type: undefined,
23491
- decorators: [ {
23492
- type: core$1.Attribute,
23493
- args: [ "nodechildren.bind" ]
23494
- } ]
23495
- }, {
23496
- type: undefined,
23497
- decorators: [ {
23498
- type: core$1.Attribute,
23499
- args: [ "nodeid.bind" ]
23500
- } ]
23501
23607
  } ];
23502
23608
  };
23503
- var components = [ TreeDirective ];
23609
+ var components = [ TreeComponent ];
23504
23610
  var TreeModule = function() {
23505
23611
  function TreeModule() {}
23506
23612
  return TreeModule;
@@ -23514,7 +23620,7 @@
23514
23620
  entryComponents: []
23515
23621
  } ]
23516
23622
  } ];
23517
- exports.TreeDirective = TreeDirective;
23623
+ exports.TreeComponent = TreeComponent;
23518
23624
  exports.TreeModule = TreeModule;
23519
23625
  exports["\u0275a"] = registerProps;
23520
23626
  Object.defineProperty(exports, "__esModule", {
@@ -26924,22 +27030,24 @@
26924
27030
  configurable: true
26925
27031
  });
26926
27032
  DateTimePickerComponent.prototype.validateSelectedDate = function() {
26927
- var _a, _b, _c, _d, _e, _f, _g;
27033
+ var _a, _b, _c, _d, _e;
26928
27034
  if (!this.changedValue) {
26929
27035
  return true;
26930
27036
  }
26931
27037
  var cd = moment(this.changedValue);
26932
- if (((_a = this._bsDatepickerConfig) === null || _a === void 0 ? void 0 : _a.minDate) && ((_b = this._bsDatepickerConfig) === null || _b === void 0 ? void 0 : _b.minDate) > this.changedValue) {
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)) {
26933
27041
  return false;
26934
27042
  }
26935
- if (((_c = this._bsDatepickerConfig) === null || _c === void 0 ? void 0 : _c.maxDate) && ((_d = this._bsDatepickerConfig) === null || _d === void 0 ? void 0 : _d.maxDate) < this.changedValue) {
27043
+ if (maxDate && (this.mode === "DATE" && moment(maxDate).endOf("day").toDate() < this.changedValue || this.mode !== "DATE" && maxDate < this.changedValue)) {
26936
27044
  return false;
26937
27045
  }
26938
- if (((_f = (_e = this._bsDatepickerConfig) === null || _e === void 0 ? void 0 : _e.daysDisabled) === null || _f === void 0 ? void 0 : _f.indexOf(cd.day())) >= 0) {
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) {
26939
27047
  return false;
26940
27048
  }
26941
27049
  var cdSt = cd.startOf("day").toDate().getTime();
26942
- 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) {
26943
27051
  return d.getTime() === cdSt;
26944
27052
  }))) {
26945
27053
  return false;
@@ -26988,6 +27096,9 @@
26988
27096
  newVal.setMilliseconds(oldVal.getMilliseconds());
26989
27097
  }
26990
27098
  this.changedValue = newVal;
27099
+ if (this.mode === "DATE" && oldVal !== newVal && this.validateSelectedDate()) {
27100
+ this.onOkClick();
27101
+ }
26991
27102
  };
26992
27103
  DateTimePickerComponent.prototype.onTimeUpdate = function(newVal) {
26993
27104
  this.changedValue = newVal;
@@ -27009,6 +27120,10 @@
27009
27120
  this.triggerChange();
27010
27121
  this.hideModal();
27011
27122
  };
27123
+ DateTimePickerComponent.prototype.setToday = function() {
27124
+ var today = moment().startOf("day").toDate();
27125
+ this.onDateUpdate(today);
27126
+ };
27012
27127
  DateTimePickerComponent.prototype.reset = function() {
27013
27128
  this.changedValue = this._value;
27014
27129
  };
@@ -27043,7 +27158,7 @@
27043
27158
  type: core.Component,
27044
27159
  args: [ {
27045
27160
  selector: "wm-datetimepicker",
27046
- template: ' \n <ng-template #datetimepickerTemplate>\n <div class="app-datetime-picker">\n <div class="modal-body">\n <div class="mobile-datetime-picker-options">\n \n </div>\n <bs-datepicker-inline\n [bsConfig]="bsDatepickerConfig"\n [datesDisabled]="excludedDatesToDisable"\n bsDatepicker\n [bsValue]="changedValue"\n (bsValueChange)="onDateUpdate($event)"\n *ngIf="mode === \'DATE_TIME\' || mode === \'DATE\'">\n </bs-datepicker-inline>\n <wm-timepicker\n [value]="changedValue"\n [min]="minTime"\n [max]="maxTime"\n (change)="onTimeUpdate($event)"\n *ngIf="mode === \'DATE_TIME\' || mode === \'TIME\'"></wm-timepicker>\n <span class="text-primary date-picker-value">\n {{getDateLabel()}}\n </span>\n </div>\n <div class="modal-footer">\n <button\n class="btn btn-secondary clear-btn"\n (click)="clear()">{{appLocale.MESSAGE_DATE_PICKER_CLEAR || "Clear" }}</button>\n <button\n class="btn btn-primary pull-right ok-btn"\n (click)="onOkClick()">{{appLocale.MESSAGE_DATE_PICKER_OK || "Ok" }}</button>\n <button\n class="btn btn-secondary pull-right cancel-btn"\n (click)="hideModal()">{{appLocale.MESSAGE_DATE_PICKER_CANCEL || "Cancel" }}</button>\n \n </div>\n </div>\n </ng-template>\n '
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 '
27047
27162
  } ]
27048
27163
  } ];
27049
27164
  DateTimePickerComponent.ctorParameters = function() {
@@ -27126,8 +27241,8 @@
27126
27241
  }
27127
27242
  return arr;
27128
27243
  };
27129
- TimePickerComponent.prototype.set = function(_h, unit) {
27130
- var index = _h.index, value = _h.value;
27244
+ TimePickerComponent.prototype.set = function(_f, unit) {
27245
+ var index = _f.index, value = _f.value;
27131
27246
  if (unit === "HOUR") {
27132
27247
  this.value = moment(this.value).hour(parseInt(value)).toDate();
27133
27248
  } else if (unit === "MINUTE") {
@@ -27405,14 +27520,18 @@
27405
27520
  var newDay = newDate.getDate().toString();
27406
27521
  _.filter($("span:contains(" + newDay + ")").not(".is-other-month"), (function(obj) {
27407
27522
  if ($(obj).text() === newDay) {
27523
+ if ($(obj).hasClass("selected")) {
27524
+ $(obj).parent().attr("aria-selected", "true");
27525
+ }
27408
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");
27409
27529
  $(obj).focus();
27410
27530
  _this.activeDate = newDate;
27411
27531
  }
27412
27532
  }));
27413
27533
  if (newDate.getMonth() === (new Date).getMonth() && newDate.getFullYear() === (new Date).getFullYear()) {
27414
27534
  _this.hightlightToday();
27415
- $("span:contains(" + (new Date).getDate().toString() + ")").not(".is-other-month").parent().attr("aria-selected", "true");
27416
27535
  }
27417
27536
  }));
27418
27537
  };
@@ -27454,6 +27573,9 @@
27454
27573
  if (event.originalEvent) {
27455
27574
  _this.setFocusForDate(-1);
27456
27575
  }
27576
+ setTimeout((function() {
27577
+ $(".bs-datepicker-head .previous").focus();
27578
+ }));
27457
27579
  }));
27458
27580
  datePickerHead.find(".next").click((function(event) {
27459
27581
  _this.next = _this.getMonth(_this.activeDate, 2);
@@ -27462,6 +27584,9 @@
27462
27584
  if (event.originalEvent) {
27463
27585
  _this.setFocusForDate(1);
27464
27586
  }
27587
+ setTimeout((function() {
27588
+ $(".bs-datepicker-head .next").focus();
27589
+ }));
27465
27590
  }));
27466
27591
  datePickerHead.find(".current").click((function(event) {
27467
27592
  if (event.originalEvent) {
@@ -27476,6 +27601,19 @@
27476
27601
  }));
27477
27602
  datePickerHead.find(".next").attr("aria-label", "Next Month, " + this.next.fullMonth + " " + this.next.date.getFullYear());
27478
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
+ }));
27479
27617
  };
27480
27618
  BaseDateTimeComponent.prototype.setFocusForMonthOrDay = function() {
27481
27619
  var activeMonthOrYear = $(".bs-datepicker-head .current").first().text();
@@ -27611,8 +27749,6 @@
27611
27749
  BaseDateTimeComponent.prototype.loadMonths = function() {
27612
27750
  var _this = this;
27613
27751
  setTimeout((function() {
27614
- var datePickerBody = $(".bs-datepicker-body");
27615
- datePickerBody.find("table.months span").attr("tabindex", "0");
27616
27752
  _this.addKeyBoardEventsForMonths();
27617
27753
  _this.addDatepickerMouseEvents();
27618
27754
  }));
@@ -27655,8 +27791,6 @@
27655
27791
  BaseDateTimeComponent.prototype.loadYears = function() {
27656
27792
  var _this = this;
27657
27793
  setTimeout((function() {
27658
- var datePickerBody = $(".bs-datepicker-body");
27659
- datePickerBody.find("table.years span").attr("tabindex", "0");
27660
27794
  _this.addKeyBoardEventsForYears();
27661
27795
  _this.addDatepickerMouseEvents();
27662
27796
  }));
@@ -27673,6 +27807,8 @@
27673
27807
  }
27674
27808
  }
27675
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");
27676
27812
  $(".bs-datepicker-body table.months span:contains(" + newMonth + ")").focus();
27677
27813
  _this.activeDate = newDate;
27678
27814
  }));
@@ -27721,6 +27857,8 @@
27721
27857
  }
27722
27858
  }
27723
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");
27724
27862
  $(".bs-datepicker-body table.years span:contains(" + newYear + ")").focus();
27725
27863
  _this.activeDate = newDate;
27726
27864
  }));
@@ -27887,11 +28025,6 @@
27887
28025
  children[i].classList.remove("add-opacity");
27888
28026
  }
27889
28027
  displayInputElem.classList.remove("remove-opacity");
27890
- var allDateTimeElements = this.nativeElement.getElementsByTagName("*");
27891
- for (var i = 0; i < allDateTimeElements.length; i++) {
27892
- allDateTimeElements[i].setAttribute("tabindex", this.tabindex);
27893
- }
27894
- displayInputElem.removeAttribute("tabindex");
27895
28028
  }
27896
28029
  };
27897
28030
  BaseDateTimeComponent.prototype.onDateTimeInputFocus = function(skipFocus) {
@@ -27908,11 +28041,6 @@
27908
28041
  children[i].classList.add("add-opacity");
27909
28042
  }
27910
28043
  displayInputElem.classList.add("remove-opacity");
27911
- var allDateTimeElements = this.nativeElement.getElementsByTagName("*");
27912
- for (var i = 0; i < allDateTimeElements.length; i++) {
27913
- allDateTimeElements[i].setAttribute("tabindex", "-1");
27914
- }
27915
- displayInputElem.setAttribute("tabindex", this.tabindex);
27916
28044
  return;
27917
28045
  }
27918
28046
  if (displayInputElem && this._triggeredByUser) {
@@ -27995,7 +28123,10 @@
27995
28123
  this.isReadOnly = this.dataentrymode != "undefined" && !this.isDataEntryModeEnabledOnInput(this.dataentrymode);
27996
28124
  var mobileInput = this.getMobileInput();
27997
28125
  if (mobileInput) {
27998
- mobileInput.style.width = mobileInput.parentElement.clientWidth + "px";
28126
+ setTimeout((function() {
28127
+ mobileInput.style.width = "100%";
28128
+ mobileInput.style.height = "100%";
28129
+ }));
27999
28130
  }
28000
28131
  };
28001
28132
  BaseDateTimeComponent.prototype.ngOnDestroy = function() {
@@ -28258,7 +28389,7 @@
28258
28389
  if (this.isDropDownDisplayEnabledOnInput(this.showdropdownon)) {
28259
28390
  event.stopPropagation();
28260
28391
  var action = this.keyEventPlugin.constructor.getEventFullKey(event);
28261
- if (action === "enter" || action === "arrowdown") {
28392
+ if (action === "enter") {
28262
28393
  var newVal = core$1.getDateObj(event.target.value, {
28263
28394
  pattern: this.datepattern
28264
28395
  });
@@ -28300,7 +28431,7 @@
28300
28431
  type: core.Component,
28301
28432
  args: [ {
28302
28433
  selector: "[wmDate]",
28303
- template: ' <input class="form-control app-textbox app-dateinput display-input"\n focus-target\n type="text"\n [name]="name"\n [tabindex]="tabindex"\n [value]="displayValue"\n (click)="toggleDpDropdown($event, true)"\n (focus)="onDateTimeInputFocus(); invokeOnFocus($event);"\n (blur)="onInputBlur($event)"\n [disabled]="disabled || readonly"\n [autofocus]="autofocus"\n [required]="required"\n [readOnly]="isReadOnly"\n [attr.placeholder]="placeholder"\n [attr.accesskey]="shortcutkey"\n [attr.aria-label]="hint"\n (change)="onDisplayDateChange($event)"\n (keydown)="this._triggeredByUser = true; onDisplayKeydown($event);">\n\n <span class="input-group-btn">\n <button type="button"\n class="btn btn-default btn-time"\n [tabindex]="tabindex"\n [disabled]="disabled || readonly"\n [attr.aria-label]="displayValue ? \'Change Date \' + displayValue : \'Choose date by pressing enter\'"\n aria-haspopup="true"\n aria-expanded="false"\n (click)="toggleDpDropdown($event, false)">\n <i aria-hidden="true"\n class="app-icon wm-sl-l sl-calendar"></i>\n </button>\n </span>\n <div style="width: 0;display: inline-block;">\n <input class="model-holder"\n aria-label="datepicker dropdownmenu"\n aria-controls="date"\n [container]="containerTarget || \'body\'"\n [bsConfig]="_dateOptions"\n [isOpen]="isOpen"\n #datepicker="bsDatepicker"\n bsDatepicker\n [daysDisabled]="excludedDaysToDisable"\n [datesDisabled]="excludedDatesToDisable"\n placement="bottom right"\n [isDisabled]="disabled || readonly"\n [bsValue]="bsDataValue"\n (onShown)="onDatePickerOpen()"\n (onHidden)="hideDatepickerDropdown()"\n (bsValueChange)="onDateChange($event)">\n</div>\n\n<ng-template [ngIf]="loadNativeDateInput">\n <wm-datetimepicker\n dateTimePicker\n mode="DATE"\n [config]="_dateOptions"\n [placement]="modal"\n [excludedDaysToDisable]="excludedDaysToDisable"\n [excludedDatesToDisable]="excludedDatesToDisable"\n [displayFormat]="dateInputFormat"\n [value]="bsDataValue"\n (change)="onDateChange($event)">\n </wm-datetimepicker>\n <div class="mobile-input mobile-datepicker-container"\n tabindex="1000000"\n (focus)="onDateTimeInputFocus(true); invokeOnFocus($event);"\n (blur)="onDateTimeInputBlur(); invokeOnTouched($event)"\n (click)="!(disabled || readonly || isCurrentDate) && showDatePickerModal()">\n </div>\n</ng-template>\n',
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',
28304
28435
  providers: [ base.provideAs(DateComponent, forms.NG_VALUE_ACCESSOR, true), base.provideAs(DateComponent, forms.NG_VALIDATORS, true), base.provideAsWidgetRef(DateComponent) ]
28305
28436
  } ]
28306
28437
  } ];
@@ -28752,7 +28883,7 @@
28752
28883
  type: core.Component,
28753
28884
  args: [ {
28754
28885
  selector: "[wmDateTime]",
28755
- 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',
28756
28887
  providers: [ base.provideAs(DatetimeComponent, forms.NG_VALUE_ACCESSOR, true), base.provideAs(DatetimeComponent, forms.NG_VALIDATORS, true), base.provideAsWidgetRef(DatetimeComponent), {
28757
28888
  provide: timepicker.TimepickerConfig,
28758
28889
  deps: [ core$1.AbstractI18nService ],
@@ -32303,7 +32434,7 @@
32303
32434
  var value = _.get(dataObj, xKey);
32304
32435
  if (isLineTypeChart(this.type) && !core.isNumberType(this.xAxisDataType)) {
32305
32436
  this.xDataKeyArr.push(value);
32306
- return index;
32437
+ return value;
32307
32438
  }
32308
32439
  return value;
32309
32440
  };
@@ -35724,6 +35855,9 @@
35724
35855
  return _this.hidePopover();
35725
35856
  };
35726
35857
  }
35858
+ setTimeout((function() {
35859
+ _this.anchorRef.nativeElement.removeAttribute("aria-describedby");
35860
+ }));
35727
35861
  var deRegister = this.eventManager.addEventListener(popoverContainer, "keydown.esc", (function() {
35728
35862
  _this.isOpen = false;
35729
35863
  _this.setFocusToPopoverLink();
@@ -35731,8 +35865,6 @@
35731
35865
  }));
35732
35866
  var popoverStartBtn = popoverContainer.querySelector(".popover-start");
35733
35867
  var popoverEndBtn = popoverContainer.querySelector(".popover-end");
35734
- popoverStartBtn.setAttribute("aria-hidden", "true");
35735
- popoverEndBtn.setAttribute("aria-hidden", "true");
35736
35868
  popoverStartBtn.onkeydown = function(event) {
35737
35869
  var action = _this.keyEventPlugin.constructor.getEventFullKey(event);
35738
35870
  if (action === "shift.tab") {
@@ -35756,7 +35888,6 @@
35756
35888
  return _this.close();
35757
35889
  };
35758
35890
  }
35759
- core.setAttr(popoverContainer, "tabindex", 0);
35760
35891
  setTimeout((function() {
35761
35892
  return popoverStartBtn.focus();
35762
35893
  }), 50);
@@ -36432,16 +36563,24 @@
36432
36563
  _this.dialogService = inj.get(core.AbstractDialogService);
36433
36564
  _this.bsModal = inj.get(modal.BsModalService);
36434
36565
  var router$1 = inj.get(router.Router);
36435
- var subscriptions = [ _this.bsModal.onShown.subscribe((function() {
36566
+ var subscriptions = [ _this.bsModal.onShown.subscribe((function(_a) {
36567
+ var id = _a.id;
36436
36568
  var ref = _this.dialogService.getLastOpenedDialog();
36437
- if (ref === _this) {
36569
+ if (ref === _this && !_this.dialogId) {
36438
36570
  invokeOpenedCallback(ref);
36571
+ _this.dialogId = id;
36439
36572
  }
36440
36573
  })), _this.bsModal.onShow.subscribe((function() {
36441
36574
  focusTrapObj.activeElement = document.activeElement;
36442
36575
  })), _this.bsModal.onHidden.subscribe((function(closeReason) {
36443
- 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
+ }
36444
36582
  if (ref === _this) {
36583
+ _this.dialogId = null;
36445
36584
  _this.dialogService.removeFromOpenedDialogs(ref);
36446
36585
  _this.dialogService.removeFromClosedDialogs(ref);
36447
36586
  invokeClosedCallback(ref);
@@ -36480,7 +36619,7 @@
36480
36619
  Object.assign(this.context, initState);
36481
36620
  this.modalOptions.ariaLabelledBy = this.titleId;
36482
36621
  this.dialogRef = this.bsModal.show(this.getTemplateRef(), this.modalOptions);
36483
- if (this.dialogService.getOpenedDialogs().length === 1 && core.isMobileApp()) {
36622
+ if (this.dialogService.getOpenedDialogs().length === 1 && (core.isMobile() || core.isMobileApp())) {
36484
36623
  var parentSelector = $("body > app-root")[0];
36485
36624
  parentSelector.setAttribute("aria-hidden", "true");
36486
36625
  }
@@ -42315,11 +42454,31 @@
42315
42454
  $index: _this.dn.currentPage
42316
42455
  });
42317
42456
  _this.goToPage();
42457
+ if (_this.navigation === "Basic") {
42458
+ _this._setAriaForBasicNavigation();
42459
+ }
42318
42460
  }
42319
42461
  }), base.DEBOUNCE_TIMES.PAGINATION_DEBOUNCE_TIME);
42320
42462
  base.styler(_this.nativeElement, _this);
42321
42463
  return _this;
42322
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
+ };
42323
42482
  PaginationComponent.prototype.setResult = function(result) {
42324
42483
  this.result = result;
42325
42484
  this.resultEmitter.emit(this.result);
@@ -42436,9 +42595,7 @@
42436
42595
  this.resetPageNavigation();
42437
42596
  }
42438
42597
  if (this.navigation === "Basic") {
42439
- _.forEach(this.nativeElement.getElementsByTagName("a"), (function(item) {
42440
- item.setAttribute("href", "javascript:void(0);");
42441
- }));
42598
+ this._setAriaForBasicNavigation();
42442
42599
  }
42443
42600
  } else {
42444
42601
  if (newVal && !_.isString(newVal)) {
@@ -42715,7 +42872,7 @@
42715
42872
  type: core.Component,
42716
42873
  args: [ {
42717
42874
  selector: "[wmPagination]",
42718
- template: '\n<ul class="pagination advanced {{navigationClass}}" *ngIf="navcontrols === \'Classic\'">\n <li [ngClass]="{\'disabled\':isDisableFirst}">\n <a [title]="appLocale.LABEL_FIRST" name="first" href="javascript:void(0);" aria-label="First"\n (click)="navigatePage(\'first\', $event)">\n <span aria-hidden="true"><i class="wi wi-first-page"></i></span>\n <span class="sr-only">{{appLocale.LABEL_FIRST}}</span>\n </a>\n </li>\n <li [ngClass]="{\'disabled\':isDisablePrevious}">\n <a [title]="appLocale.LABEL_PREVIOUS" name="prev" href="javascript:void(0);" aria-label="Previous"\n (click)="navigatePage(\'prev\', $event)">\n <span aria-hidden="true"><i class="wi wi-chevron-left"></i></span>\n <span class="sr-only">{{appLocale.LABEL_PREVIOUS}}</span>\n </a>\n </li>\n <li class="pagecount disabled">\n <a><input type="number" [disabled]="isDisableCurrent" [(ngModel)]="dn.currentPage" [attr.aria-label]="\'Page Navigation \' + dn.currentPage"\n (keydown)="onKeyDown($event)" (change)="onModelChange($event)" class="form-control"/></a>\n </li>\n <li class="disabled">\n <a [hidden]="isDisableCount"> / {{pageCount}}</a>\n </li>\n <li [ngClass]="{\'disabled\':isDisableNext}">\n <a [title]="appLocale.LABEL_NEXT" name="next" href="javascript:void(0);" aria-label="Next"\n (click)="navigatePage(\'next\', $event)">\n <span aria-hidden="true"><i class="wi wi-chevron-right"></i></span>\n <span class="sr-only">{{appLocale.LABEL_NEXT}}</span>\n </a>\n </li>\n <li [ngClass]="{\'disabled\':isDisableLast}">\n <a [title]="appLocale.LABEL_LAST" name="last" href="javascript:void(0);" aria-label="Last"\n (click)="navigatePage(\'last\', $event)">\n <span aria-hidden="true"><i class="wi wi-last-page"></i></span>\n <span class="sr-only">{{appLocale.LABEL_LAST}}</span>\n </a>\n </li>\n <li *ngIf="showrecordcount" class="totalcount disabled">\n <a>{{appLocale.LABEL_TOTAL_RECORDS}}: {{dataSize}}</a>\n </li>\n</ul>\n<ul class="pager {{navigationClass}}" *ngIf="navcontrols === \'Pager\'">\n <li class="previous" [ngClass]="{\'disabled\':isDisablePrevious}">\n <a href="javascript:void(0);" (click)="navigatePage(\'prev\', $event)" aria-label="Previous">\n <span aria-hidden="true"><i class="wi wi-chevron-left"></i></span>\n {{appLocale.LABEL_PREVIOUS}}\n <span class="sr-only">{{appLocale.LABEL_PREVIOUS}}</span>\n </a>\n </li>\n <li class="next" [ngClass]="{\'disabled\':isDisableNext}">\n <a href="javascript:void(0);" (click)="navigatePage(\'next\', $event)" aria-label="Next">\n {{appLocale.LABEL_NEXT}}\n <span aria-hidden="true"><i class="wi wi-chevron-right"></i></span>\n <span class="sr-only">{{appLocale.LABEL_NEXT}}</span>\n </a>\n </li>\n</ul>\n\n<pagination class="pagination basic" [ngClass]="navigationClass" *ngIf="navcontrols === \'Basic\'" role="navigation"\n [itemsPerPage]="maxResults" [totalItems]="dataSize"\n [ngModel]="dn.currentPage" (pageChanged)="pageChanged($event)"\n [attr.aria-label]="\'Page \' + dn.currentPage + \' of \' + pageCount + \' pages\'"\n [boundaryLinks]="boundarylinks" [maxSize]="maxsize"\n [directionLinks]="directionlinks" previousText="." nextText="." firstText="." lastText="."></pagination>\n\n<ul *ngIf="navcontrols === \'Basic\' && showrecordcount" class="pagination">\n <li class="totalcount disabled basiccount"><a>{{appLocale.LABEL_TOTAL_RECORDS}}: {{dataSize}}</a></li>\n</ul>\n',
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',
42719
42876
  providers: [ base.provideAsWidgetRef(PaginationComponent) ]
42720
42877
  } ]
42721
42878
  } ];
@@ -44654,9 +44811,9 @@
44654
44811
  }
44655
44812
  }
44656
44813
  };
44657
- ListComponent.prototype.onUpdate = function(evt, ui) {
44814
+ ListComponent.prototype.onUpdate = function(evt, ui, presentIndex) {
44658
44815
  var data = this.fieldDefs;
44659
- var newIndex = ui.item.index();
44816
+ var newIndex = ui === undefined ? presentIndex : ui.item.index();
44660
44817
  var oldIndex = this.$ulEle.data("oldIndex");
44661
44818
  var minIndex = _.min([ newIndex, oldIndex ]);
44662
44819
  var maxIndex = _.max([ newIndex, oldIndex ]);
@@ -44748,7 +44905,7 @@
44748
44905
  return this.datasource.execute(operation, options);
44749
44906
  };
44750
44907
  ListComponent.prototype.handleKeyDown = function($event, action) {
44751
- var _this = this;
44908
+ var _d, _e;
44752
44909
  $event.stopPropagation();
44753
44910
  if ($event.keyCode !== 13 && $event.keyCode !== 9 && !(($event.target.classList.contains("form-control") || $event.target.classList.contains("note-editable")) && $event.keyCode === 32)) {
44754
44911
  $event.preventDefault();
@@ -44790,27 +44947,21 @@
44790
44947
  }
44791
44948
  if (action === "focusPrev") {
44792
44949
  if (this.isListElementMovable) {
44793
- var prev_1;
44794
44950
  presentIndex = presentIndex <= 0 ? 0 : presentIndex;
44795
- this.lastSelectedItem = this.getListItemByIndex(presentIndex);
44796
44951
  if (presentIndex === 0) {
44797
- prev_1 = this.listItems.last;
44798
44952
  return;
44799
44953
  }
44800
- this.listItems.forEach((function($liItem, idx) {
44801
- if (idx === presentIndex) {
44802
- prev_1.nativeElement.before($liItem.nativeElement);
44803
- _this.lastSelectedItem.nativeElement.focus();
44804
- var arr = _this.listItems.toArray();
44805
- var temp = arr[presentIndex];
44806
- arr[presentIndex] = arr[presentIndex - 1];
44807
- arr[presentIndex - 1] = temp;
44808
- _this.listItems.reset(arr);
44809
- _this.currentIndex = presentIndex;
44810
- _this.ariaText = "selected ";
44811
- }
44812
- prev_1 = $liItem;
44813
- }));
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 ";
44814
44965
  } else {
44815
44966
  presentIndex = presentIndex <= 0 ? 0 : presentIndex - 1;
44816
44967
  this.lastSelectedItem = this.getListItemByIndex(presentIndex);
@@ -44820,27 +44971,21 @@
44820
44971
  }
44821
44972
  } else if (action === "focusNext") {
44822
44973
  if (this.isListElementMovable) {
44823
- var prev_2;
44824
44974
  presentIndex = presentIndex < listItems.length - 1 ? presentIndex : listItems.length - 1;
44825
- this.lastSelectedItem = this.getListItemByIndex(presentIndex);
44826
44975
  if (presentIndex === this.listItems.length - 1) {
44827
- prev_2 = this.listItems.first;
44828
44976
  return;
44829
44977
  }
44830
- this.listItems.forEach((function($liItem, idx) {
44831
- if (idx === presentIndex + 1) {
44832
- prev_2.nativeElement.before($liItem.nativeElement);
44833
- _this.lastSelectedItem.nativeElement.focus();
44834
- var arr = _this.listItems.toArray();
44835
- var temp = arr[presentIndex + 1];
44836
- arr[presentIndex + 1] = arr[presentIndex];
44837
- arr[presentIndex] = temp;
44838
- _this.listItems.reset(arr);
44839
- _this.currentIndex = idx + 1;
44840
- _this.ariaText = "selected ";
44841
- }
44842
- prev_2 = $liItem;
44843
- }));
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 ";
44844
44989
  } else {
44845
44990
  presentIndex = presentIndex < listItems.length - 1 ? presentIndex + 1 : listItems.length - 1;
44846
44991
  this.lastSelectedItem = this.getListItemByIndex(presentIndex);
@@ -44862,11 +45007,12 @@
44862
45007
  this.isListElementMovable = !this.isListElementMovable;
44863
45008
  this.onItemClick($event, this.getListItemByIndex(presentIndex));
44864
45009
  this.currentIndex = presentIndex + 1;
44865
- var name = this.getListItemByIndex(presentIndex).item.name;
44866
45010
  if (this.isListElementMovable) {
44867
- this.ariaText = name + " grabbed, current position ";
45011
+ this.ariaText = "Item " + this.currentIndex + " grabbed, current position ";
45012
+ this.$ulEle.data("oldIndex", presentIndex);
44868
45013
  } else {
44869
- this.ariaText = name + " dropped, final position ";
45014
+ this.ariaText = "Item " + this.currentIndex + " dropped, final position ";
45015
+ this.onUpdate($event, undefined, presentIndex);
44870
45016
  }
44871
45017
  }
44872
45018
  };
@@ -44911,10 +45057,12 @@
44911
45057
  this.dataNavigator.widget.maxResults = nv;
44912
45058
  this.dataNavigator.maxResults = nv;
44913
45059
  } else if (key === "enablereorder") {
44914
- if (nv) {
45060
+ if (nv && this.$ulEle) {
45061
+ this.$ulEle.attr("aria-describedby", this.titleId);
44915
45062
  this.configureDnD();
44916
45063
  this.$ulEle.sortable("enable");
44917
45064
  } else if (this.$ulEle && !nv) {
45065
+ this.$ulEle.removeAttr("aria-describedby");
44918
45066
  this.$ulEle.sortable("disable");
44919
45067
  }
44920
45068
  } else {
@@ -45068,9 +45216,18 @@
45068
45216
  _super.prototype.ngAfterViewInit.call(_this);
45069
45217
  _this.setUpCUDHandlers();
45070
45218
  _this.selectedItemWidgets = _this.multiselect ? [] : {};
45219
+ var ele = $(_this.nativeElement).find(".app-livelist-container");
45071
45220
  if (_this.enablereorder && !_this.groupby) {
45221
+ if (ele) {
45222
+ ele.attr("aria-describedby", _this.titleId);
45223
+ }
45072
45224
  _this.configureDnD();
45073
45225
  }
45226
+ if (!_this.enablereorder) {
45227
+ if (ele) {
45228
+ ele.removeAttr("aria-describedby");
45229
+ }
45230
+ }
45074
45231
  if (_this.groupby && _this.collapsible) {
45075
45232
  _this.handleHeaderClick = base.handleHeaderClick;
45076
45233
  _this.toggleAllHeaders = base.toggleAllHeaders.bind(undefined, _this);
@@ -45080,6 +45237,16 @@
45080
45237
  this.setupHandlers();
45081
45238
  var $ul = this.nativeElement.querySelector("ul.app-livelist-container");
45082
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
+ }
45083
45250
  if (core.isMobileApp() && $ul.querySelector(".app-list-item-action-panel")) {
45084
45251
  this._listAnimator = new ListAnimator(this);
45085
45252
  }
@@ -45104,7 +45271,7 @@
45104
45271
  type: core$1.Component,
45105
45272
  args: [ {
45106
45273
  selector: "div[wmList]",
45107
- template: '<div class="panel-heading" *ngIf="title || subheading || iconclass">\n <h3 class="panel-title">\n <div class="pull-left">\n <i class="app-icon panel-icon {{iconclass}}" aria-hidden="true" [hidden]="!iconclass"></i>\n </div>\n <div class="pull-left">\n <div class="heading" [innerHTML]="title"></div>\n <div class="description" [innerHTML]="subheading"></div>\n </div>\n </h3>\n</div>\n\n<nav class="app-datanavigator" [attr.aria-disabled]="dataNavigator.isDisablePrevious" aria-label="Page navigation" *ngIf="navigation === \'Inline\' && !noDataFound">\n <ul class="pager">\n <li class="previous" [ngClass]="{\'disabled\': (dataNavigator ? dataNavigator.isDisablePrevious : true)}">\n <a href="javascript:void(0);" (click)="dataNavigator.navigatePage(\'prev\', $event)">\n <i class="wi wi-chevron-left" aria-hidden="true"></i>\n <span class="sr-only">Previous</span>\n </a>\n </li>\n </ul>\n</nav>\n<div *ngIf="navigation === \'Inline\' && !noDataFound" aria-live="polite" aria-atomic="true" class="sr-only"> {{\'Item \' + dataNavigator.dn.currentPage + \' of \' + dataNavigator.pageCount }}</div>\n\n<div>\n <div id={{titleId}} class="sr-only" *ngIf="enablereorder">\n Press space bar to toggle drag drop mode, use arrow keys to move selected elements.\n </div>\n\n <div aria-live="assertive" *ngIf="listItems && enablereorder && currentIndex" class="sr-only" >\n {{ariaText + currentIndex + \' of \' + listItems.length}}\n </div> \n</div>\n\n<ul [attr.tabindex]="tabindex" [attr.aria-describedby] = "titleId" class="app-livelist-container clearfix {{direction === \'horizontal\' ? \'app-horizontal-list\': \'\'}} {{listclass}}" role="list"\n (keydown.enter)="handleKeyDown($event, \'select\')"\n\n (keydown.space)="handleKeyDown($event, \'space\')"\n\n (keydown.arrowup)="handleKeyDown($event, \'focusPrev\')"\n (keydown.arrowdown)="handleKeyDown($event, \'focusNext\')"\n (keydown.arrowleft)="handleKeyDown($event, \'focusPrev\')"\n (keydown.arrowright)="handleKeyDown($event, \'focusNext\')"\n\n (keydown.shift.arrowup)="handleKeyDown($event, \'selectPrev\')"\n (keydown.shift.arrowdown)="handleKeyDown($event, \'selectNext\')"\n (keydown.shift.arrowleft)="handleKeyDown($event, \'selectPrev\')"\n (keydown.shift.arrowright)="handleKeyDown($event, \'selectNext\')"\n [hidden]="noDataFound && !variableInflight"\n>\n <ng-template [ngIf]="!groupby" [ngIfElse]="groupedListTemplate">\n <li *ngFor="let item of fieldDefs; index as $index; first as $first; last as $last;" class="app-list-item {{direction === \'horizontal\' ? \'\' : itemsPerRowClass}}" [ngClass]="listItemRef.itemClass"\n [wmListItem]="item"\n #listItemRef="listItemRef"\n [attr.tabindex]="tabindex"\n role="listitem">\n <ng-container [ngTemplateOutlet]="listTemplate" [ngTemplateOutletContext]="{item: item, $index: $index, itemRef: listItemRef, $first: $first, $last: $last, currentItemWidgets: listItemRef.currentItemWidgets}"></ng-container>\n </li>\n </ng-template>\n <ng-container [ngTemplateOutlet]="listLeftActionTemplate"></ng-container>\n <ng-container [ngTemplateOutlet]="listRightActionTemplate"></ng-container>\n</ul>\n\n<div class="no-data-msg" *ngIf="noDataFound && !variableInflight" [textContent]="nodatamessage"></div>\n\n<div class="loading-data-msg" *ngIf="variableInflight && !pulltorefresh">\n <span>\n <i class="app-icon panel-icon fa-spin" aria-hidden="true" [ngClass]="loadingicon"></i>\n <span class="sr-only">Loading</span>\n <span class="loading-text" [textContent]="loadingdatamsg"></span>\n </span>\n</div>\n\n<nav class="app-datanavigator" [attr.aria-disabled]="dataNavigator.isDisableNext" *ngIf="navigation === \'Inline\' && !noDataFound">\n <ul class="pager">\n <li class="next" [ngClass]="{\'disabled\': (dataNavigator ? dataNavigator.isDisableNext : true)}">\n <a href="javascript:void(0);" (click)="dataNavigator.navigatePage(\'next\', $event)">\n <i class="wi wi-chevron-right" aria-hidden="true"></i>\n <span class="sr-only">Next</span>\n </a>\n </li>\n </ul>\n</nav>\n\n<div class="panel-footer" *ngIf="navigation !== \'None\'" [hidden]="!showNavigation || (onDemandLoad && dataNavigator.isDisableNext) || (dataNavigator.dataSize <= pagesize) || (!dataNavigator.dataSize && !dataNavigator.datasource?.pagination?.next)">\n <nav wmPagination\n navigationalign.bind="navigationalign"\n navigation.bind="navControls"\n showrecordcount.bind="showrecordcount"\n maxsize.bind="maxsize"\n boundarylinks.bind="boundarylinks"\n forceellipses.bind="forceellipses"\n directionlinks.bind="directionlinks"\n show.bind="!onDemandLoad"\n paginationchange.event="beforePaginationChange($event, $index)"\n ></nav>\n <a *ngIf="onDemandLoad" href="javascript:void(0);"\n (click)="dataNavigator.navigatePage(\'next\', $event)"\n class="app-button btn btn-block"\n [ngClass]="paginationclass"\n [textContent]="ondemandmessage"\n ></a>\n</div>\n\n\x3c!--This template will be displayed when groupby is specified--\x3e\n<ng-template #groupedListTemplate>\n <li *ngFor="let groupObj of groupedData" class="app-list-item-group clearfix">\n <ul [attr.tabindex]="tabindex" class="list-group item-group" [ngClass]="listclass">\n <li class="app-list-item-header list-item list-group-header" (click)="handleHeaderClick($event)" [ngClass]="{\'collapsible-content\': collapsible}">\n <h4>{{groupObj.key}}\n <div class="header-action">\n <i class="app-icon wi action wi-chevron-up" *ngIf="collapsible"></i>\n <span *ngIf="showcount" class="label label-default">{{groupObj.data.length}}</span>\n </div>\n </h4>\n </li>\n <ul class="list-group clearfix {{direction === \'horizontal\' ? \'app-horizontal-list\': \'\'}}">\n <li *ngFor="let item of groupObj.data; index as $index; first as $first; last as $last;" [attr.tabindex]="tabindex"\n class="app-list-item group-list-item {{itemsPerRowClass}}"\n [ngClass]="listItemRef.itemClass"\n [wmListItem]="item" #listItemRef="listItemRef">\n <ng-container [ngTemplateOutlet]="listTemplate" [ngTemplateOutletContext]="{item: item, $index: $index, itemRef: listItemRef, $first: $first, $last: $last, currentItemWidgets: listItemRef.currentItemWidgets}"></ng-container>\n </li>\n </ul>\n </ul>\n </li>\n</ng-template>\n',
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',
45108
45275
  providers: [ base.provideAsWidgetRef(ListComponent) ]
45109
45276
  } ]
45110
45277
  } ];
@@ -46474,6 +46641,11 @@
46474
46641
  return;
46475
46642
  }
46476
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
+ }
46477
46649
  if (this.gridOptions.isNavTypeScrollOrOndemand()) {
46478
46650
  _a = __read(this.paginationService.updateFieldsOnPagination(this, newValue), 2),
46479
46651
  this._gridData = _a[0], this.currentPage = _a[1];
@@ -58402,40 +58574,36 @@
58402
58574
  var TabsAnimator = function(_super) {
58403
58575
  __extends(TabsAnimator, _super);
58404
58576
  function TabsAnimator(tabs) {
58405
- var e_1, _a;
58406
58577
  var _this = _super.call(this) || this;
58407
58578
  _this.tabs = tabs;
58408
58579
  _this._$el = $(_this.tabs.getNativeElement()).find(">.tab-content");
58409
- var childEls = _this._$el.find(">[wmTabPane]");
58410
- _this._noOfTabs = childEls.length;
58411
- var maxWidth = _this._noOfTabs * 100 + "%";
58412
- core.addClass(_this.tabs.getNativeElement(), "has-transition");
58413
- core.setCSSFromObj(_this._$el[0], {
58414
- maxWidth: maxWidth,
58415
- width: maxWidth
58416
- });
58417
- var width = 100 / _this._noOfTabs + "%";
58418
- try {
58419
- for (var _b = __values(Array.from(childEls)), _c = _b.next(); !_c.done; _c = _b.next()) {
58420
- var child = _c.value;
58421
- core.setCSS(child, "width", width);
58422
- }
58423
- } catch (e_1_1) {
58424
- e_1 = {
58425
- error: e_1_1
58426
- };
58427
- } finally {
58428
- try {
58429
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
58430
- } finally {
58431
- if (e_1) throw e_1.error;
58432
- }
58433
- }
58434
58580
  _this.init(_this._$el);
58435
58581
  return _this;
58436
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
+ };
58437
58605
  TabsAnimator.prototype.bounds = function() {
58438
- 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;
58439
58607
  this.clearContentFocus();
58440
58608
  return {
58441
58609
  strict: false,
@@ -58462,8 +58630,18 @@
58462
58630
  }
58463
58631
  };
58464
58632
  TabsAnimator.prototype.transitionTabIntoView = function() {
58465
- var activeTabIndex = this.tabs.getActiveTabIndex();
58466
- 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)");
58467
58645
  };
58468
58646
  TabsAnimator.prototype.onUpper = function($event) {
58469
58647
  this.tabs.prev($event);
@@ -58589,6 +58767,7 @@
58589
58767
  };
58590
58768
  TabPaneComponent.prototype.onPropertyChange = function(key, nv, ov) {
58591
58769
  var _this = this;
58770
+ var _a;
58592
58771
  if (key === "content") {
58593
58772
  if (this.isActive) {
58594
58773
  setTimeout((function() {
@@ -58599,6 +58778,10 @@
58599
58778
  this.nativeElement.hidden = !nv;
58600
58779
  if (this._isFirstLoad) {
58601
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();
58602
58785
  }
58603
58786
  this._isFirstLoad = false;
58604
58787
  } else {
@@ -59885,7 +60068,7 @@
59885
60068
  value: true
59886
60069
  }, base.PROP_BOOLEAN) ], [ "title", Object.assign({
59887
60070
  value: "Step Title"
59888
- }, base.PROP_STRING) ] ]));
60071
+ }, base.PROP_STRING) ], [ "subtitle", base.PROP_STRING ] ]));
59889
60072
  };
59890
60073
  var DEFAULT_CLS$1 = "app-wizard-step-content";
59891
60074
  var WIDGET_CONFIG$1 = {
@@ -60189,6 +60372,7 @@
60189
60372
  this.setDefaultStep(step);
60190
60373
  }
60191
60374
  }
60375
+ this.addMoreText();
60192
60376
  };
60193
60377
  WizardComponent.prototype.onWizardHeaderClick = function($event, currentStep) {
60194
60378
  var _this = this;
@@ -60204,6 +60388,7 @@
60204
60388
  }));
60205
60389
  this.currentStep = currentStep;
60206
60390
  this.currentStep.active = true;
60391
+ this.addMoreText();
60207
60392
  }
60208
60393
  };
60209
60394
  WizardComponent.prototype.next = function(eventName) {
@@ -60230,6 +60415,7 @@
60230
60415
  nextStep.active = true;
60231
60416
  this.currentStep = nextStep;
60232
60417
  }
60418
+ this.addMoreText();
60233
60419
  };
60234
60420
  WizardComponent.prototype.prev = function() {
60235
60421
  var currentStep = this.currentStep;
@@ -60245,6 +60431,7 @@
60245
60431
  prevStep.active = true;
60246
60432
  this.currentStep = prevStep;
60247
60433
  }
60434
+ this.addMoreText();
60248
60435
  };
60249
60436
  WizardComponent.prototype.skip = function() {
60250
60437
  this.next("skip");
@@ -60260,6 +60447,42 @@
60260
60447
  steps: this.steps.toArray()
60261
60448
  });
60262
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
+ };
60263
60486
  WizardComponent.prototype.isFirstStep = function(stepRef) {
60264
60487
  return this.steps.first === stepRef;
60265
60488
  };
@@ -60282,6 +60505,11 @@
60282
60505
  WizardComponent.prototype.ngAfterViewInit = function() {
60283
60506
  _super.prototype.ngAfterViewInit.call(this);
60284
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
+ }));
60285
60513
  };
60286
60514
  return WizardComponent;
60287
60515
  }(base.StylableComponent);
@@ -60290,7 +60518,7 @@
60290
60518
  type: core.Component,
60291
60519
  args: [ {
60292
60520
  selector: "div[wmWizard]",
60293
- 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',
60294
60522
  providers: [ base.provideAsWidgetRef(WizardComponent) ]
60295
60523
  } ]
60296
60524
  } ];
@@ -67554,10 +67782,10 @@
67554
67782
  }));
67555
67783
 
67556
67784
  (function(global, factory) {
67557
- 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,
67558
67786
  factory((global.wm = global.wm || {}, global.wm.mobile = global.wm.mobile || {},
67559
- 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));
67560
- })(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) {
67561
67789
  "use strict";
67562
67790
  var PageContentLoaderComponent = function() {
67563
67791
  function PageContentLoaderComponent(el) {
@@ -67579,18 +67807,30 @@
67579
67807
  } ];
67580
67808
  };
67581
67809
  var MobilePageDirective = function() {
67582
- function MobilePageDirective(app, elRef, deviceService, page, navigationService) {
67810
+ function MobilePageDirective(app, elRef, modalService, deviceService, page, navigationService) {
67583
67811
  var _this = this;
67812
+ this.modalService = modalService;
67584
67813
  this.deviceService = deviceService;
67585
67814
  this.page = page;
67586
67815
  this.navigationService = navigationService;
67816
+ this.subscriptions = [];
67587
67817
  core.addClass(elRef.nativeElement, "mobile-app-page");
67588
67818
  this._$ele = $(elRef.nativeElement);
67589
67819
  page.subscribe("wmMobileTabbar:ready", (function() {
67590
67820
  return _this._$ele.addClass("has-tabbar");
67591
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
+ })) ];
67592
67830
  this._backBtnListenerDestroyer = deviceService.onBackButtonTap((function($event) {
67593
- if (app.landingPageName === app.activePageName) {
67831
+ if (modalsOpened.length > 0) {
67832
+ modalService.hide(modalsOpened.pop());
67833
+ } else if (app.landingPageName === app.activePageName) {
67594
67834
  window.navigator["app"].exitApp();
67595
67835
  } else {
67596
67836
  _this.navigationService.goToPrevious();
@@ -67599,6 +67839,9 @@
67599
67839
  }));
67600
67840
  }
67601
67841
  MobilePageDirective.prototype.ngOnDestroy = function() {
67842
+ this.subscriptions.map((function(s) {
67843
+ return s.unsubscribe();
67844
+ }));
67602
67845
  this._backBtnListenerDestroyer();
67603
67846
  };
67604
67847
  return MobilePageDirective;
@@ -67614,6 +67857,8 @@
67614
67857
  type: core.App
67615
67858
  }, {
67616
67859
  type: core$1.ElementRef
67860
+ }, {
67861
+ type: modal.BsModalService
67617
67862
  }, {
67618
67863
  type: core$2.DeviceService
67619
67864
  }, {
@@ -71495,30 +71740,37 @@
71495
71740
  toaster.onHidden.subscribe(this.onToasterHide.bind(this, variable));
71496
71741
  }
71497
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
+ };
71498
71762
  NotificationActionManager.prototype.notifyViaDialog = function(variable, options) {
71499
- 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";
71500
71766
  var closeCallBackFn = function() {
71501
71767
  return initiateCallback("onOk", variable, options.data);
71502
71768
  };
71503
- exports.dialogService.open(dialogId, variable._context, {
71504
- notification: {
71505
- title: options.title || variable.dataBinding.title,
71506
- text: options.message || variable.dataBinding.text,
71507
- okButtonText: options.okButtonText || variable.dataBinding.okButtonText || "OK",
71508
- cancelButtonText: options.cancelButtonText || variable.dataBinding.cancelButtonText || "CANCEL",
71509
- alerttype: options.alerttype || variable.dataBinding.alerttype || "information",
71510
- onOk: function() {
71511
- exports.dialogService.close(dialogId, variable._context, closeCallBackFn);
71512
- },
71513
- onCancel: function() {
71514
- initiateCallback("onCancel", variable, options.data);
71515
- exports.dialogService.close(dialogId, variable._context);
71516
- },
71517
- onClose: function() {
71518
- initiateCallback("onClose", variable, options.data);
71519
- }
71520
- }
71521
- });
71769
+ var dialogConfig = this.getDialogConfig(variable, options, dialogId, closeCallBackFn);
71770
+ dialogConfig = isPrefabType ? dialogConfig : {
71771
+ notification: dialogConfig
71772
+ };
71773
+ exports.dialogService.open(dialogId, undefined, dialogConfig);
71522
71774
  };
71523
71775
  NotificationActionManager.prototype.notify = function(variable, options, success, error) {
71524
71776
  var operation = variable.operation;
@@ -72947,6 +73199,13 @@
72947
73199
  type: core.AbstractHttpService
72948
73200
  } ];
72949
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
+ }();
72950
73209
  var VariablesService = function() {
72951
73210
  function VariablesService(httpService, metadataService, navigationService, routerService, toasterService, oAuthService, securityService, dialogService) {
72952
73211
  this.httpService = httpService;
@@ -73053,6 +73312,7 @@
73053
73312
  if (this.isVariableSeperated(variablesJson, variableName)) {
73054
73313
  this.processBinding(varInstance, scope, "dataBinding", this.getBindSourceTarget(varInstance));
73055
73314
  varInstance.httpService = this.httpService;
73315
+ varInstance.dateFormatter = new Formatter;
73056
73316
  varInstance.subscribe("afterInvoke", (function() {
73057
73317
  return core.$invokeWatchers(true);
73058
73318
  }));
@@ -73142,6 +73402,7 @@
73142
73402
  exports.DB_CONSTANTS = DB_CONSTANTS;
73143
73403
  exports.DeviceVariableManager = DeviceVariableManager;
73144
73404
  exports.DeviceVariableService = DeviceVariableService;
73405
+ exports.Formatter = Formatter;
73145
73406
  exports.MetadataService = MetadataService;
73146
73407
  exports.SWAGGER_CONSTANTS = SWAGGER_CONSTANTS;
73147
73408
  exports.VARIABLE_CONSTANTS = VARIABLE_CONSTANTS;
@@ -82293,9 +82554,152 @@
82293
82554
  type: ComponentRefProvider
82294
82555
  } ];
82295
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
+ };
82296
82699
  var injectorMap = {
82297
82700
  DialogService: i2.AbstractDialogService,
82298
82701
  i18nService: i2.AbstractI18nService,
82702
+ PipeService: PipeService,
82299
82703
  statePersistence: i2.StatePersistence,
82300
82704
  SpinnerService: i2.AbstractSpinnerService,
82301
82705
  StatePersistenceService: i2.StatePersistence,
@@ -83412,110 +83816,6 @@
83412
83816
  type: i2.AbstractI18nService
83413
83817
  } ];
83414
83818
  };
83415
- var PipeProvider = function() {
83416
- function PipeProvider(compiler, injector, domSanitizer, i18service) {
83417
- var _this = this;
83418
- var _a;
83419
- this.compiler = compiler;
83420
- this.injector = injector;
83421
- this.domSanitizer = domSanitizer;
83422
- this.i18service = i18service;
83423
- this._locale = i2.getSessionStorageItem("selectedLocale") || "en";
83424
- this.formatsByLocale = (_a = this.i18service) === null || _a === void 0 ? void 0 : _a.getwidgetLocale();
83425
- this.preparePipeMeta = function(reference, name, pure, diDeps) {
83426
- if (diDeps === void 0) {
83427
- diDeps = [];
83428
- }
83429
- return {
83430
- type: {
83431
- reference: reference,
83432
- diDeps: diDeps
83433
- },
83434
- name: name,
83435
- pure: pure
83436
- };
83437
- };
83438
- 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 ]) ];
83439
- this._pipeMeta = new Map;
83440
- this._pipeData.forEach((function(v) {
83441
- _this._pipeMeta.set(v.name, v);
83442
- }));
83443
- }
83444
- PipeProvider.prototype.unknownPipe = function(name) {
83445
- throw Error("The pipe '" + name + "' could not be found");
83446
- };
83447
- PipeProvider.prototype.meta = function(name) {
83448
- var meta = this._pipeMeta.get(name);
83449
- if (!meta) {
83450
- this.unknownPipe(name);
83451
- }
83452
- return meta;
83453
- };
83454
- PipeProvider.prototype.getPipeNameVsIsPureMap = function() {
83455
- var _map = new Map;
83456
- this._pipeMeta.forEach((function(v, k) {
83457
- _map.set(k, v.pure);
83458
- }));
83459
- return _map;
83460
- };
83461
- PipeProvider.prototype.resolveDep = function(dep) {
83462
- return this.injector.get(dep.token.identifier.reference);
83463
- };
83464
- PipeProvider.prototype.getInstance = function(name) {
83465
- var e_1, _b;
83466
- var _c = this.meta(name).type, ref = _c.reference, deps = _c.diDeps;
83467
- if (!ref) {
83468
- this.unknownPipe(name);
83469
- }
83470
- if (!deps.length) {
83471
- return new ref;
83472
- } else {
83473
- var args = [];
83474
- try {
83475
- for (var deps_1 = __values(deps), deps_1_1 = deps_1.next(); !deps_1_1.done; deps_1_1 = deps_1.next()) {
83476
- var dep = deps_1_1.value;
83477
- args.push(dep);
83478
- }
83479
- } catch (e_1_1) {
83480
- e_1 = {
83481
- error: e_1_1
83482
- };
83483
- } finally {
83484
- try {
83485
- if (deps_1_1 && !deps_1_1.done && (_b = deps_1.return)) _b.call(deps_1);
83486
- } finally {
83487
- if (e_1) throw e_1.error;
83488
- }
83489
- }
83490
- return new (ref.bind.apply(ref, __spreadArray([ void 0 ], __read(args))));
83491
- }
83492
- };
83493
- return PipeProvider;
83494
- }();
83495
- PipeProvider.\u0275prov = i0__namespace.\u0275\u0275defineInjectable({
83496
- factory: function PipeProvider_Factory() {
83497
- 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));
83498
- },
83499
- token: PipeProvider,
83500
- providedIn: "root"
83501
- });
83502
- PipeProvider.decorators = [ {
83503
- type: i0.Injectable,
83504
- args: [ {
83505
- providedIn: "root"
83506
- } ]
83507
- } ];
83508
- PipeProvider.ctorParameters = function() {
83509
- return [ {
83510
- type: i0.Compiler
83511
- }, {
83512
- type: i0.Injector
83513
- }, {
83514
- type: i1.DomSanitizer
83515
- }, {
83516
- type: i2.AbstractI18nService
83517
- } ];
83518
- };
83519
83819
  var AppComponent = function() {
83520
83820
  function AppComponent(_pipeProvider, _appRef, elRef, oAuthService, dialogService, spinnerService, ngZone, router$1, app, appManager) {
83521
83821
  var _this = this;
@@ -83652,7 +83952,7 @@
83652
83952
  type: i0.Component,
83653
83953
  args: [ {
83654
83954
  selector: "app-root",
83655
- 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',
83656
83956
  encapsulation: i0.ViewEncapsulation.None
83657
83957
  } ]
83658
83958
  } ];
@@ -84506,7 +84806,7 @@
84506
84806
  provide: http.HTTP_INTERCEPTORS,
84507
84807
  useClass: HttpCallInterceptor,
84508
84808
  multi: true
84509
- }, 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) ]
84510
84810
  };
84511
84811
  };
84512
84812
  RuntimeBaseModule.prototype.getDeviceDetails = function() {
@@ -84699,6 +84999,7 @@
84699
84999
  exports.NavigationServiceImpl = NavigationServiceImpl;
84700
85000
  exports.PageNotFoundGaurd = PageNotFoundGaurd;
84701
85001
  exports.PipeProvider = PipeProvider;
85002
+ exports.PipeService = PipeService;
84702
85003
  exports.PrefabConfigProvider = PrefabConfigProvider;
84703
85004
  exports.PrefabDirective = PrefabDirective;
84704
85005
  exports.PrefabManagerService = PrefabManagerService;