@wavemaker/app-runtime-wm-build 11.4.0-next.25703 → 11.4.0-next.25705

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.
@@ -8973,9 +8973,11 @@
8973
8973
  });
8974
8974
  };
8975
8975
  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];
8976
+ var elementNodeList = element.querySelectorAll("a, button, input, textarea, select, details, iframe, embed, object, summary dialog, audio[controls], video[controls], [contenteditable]");
8977
+ var elements = Array.from(elementNodeList);
8978
+ return elements.filter((function(el) {
8979
+ return !el.hasAttribute("disabled") && !el.hasAttribute("hidden") && (!el.hasAttribute("tabindex") || el.hasAttribute("tabindex") && !el.getAttribute("tabindex").startsWith("-"));
8980
+ }));
8979
8981
  };
8980
8982
  exports.APPLY_STYLES_TYPE = void 0;
8981
8983
  (function(APPLY_STYLES_TYPE) {
@@ -13440,21 +13442,19 @@
13440
13442
  __proto__: null,
13441
13443
  default: search_build
13442
13444
  });
13443
- var tagName$1o = "div";
13445
+ var tagName$1o = "ul";
13444
13446
  transpiler.register("wm-tree", (function() {
13445
13447
  return {
13446
13448
  pre: function(attrs) {
13447
- return "<" + tagName$1o + " wmTree " + transpiler.getAttrMarkup(attrs) + ">";
13449
+ return "<" + tagName$1o + ' wmTree class="ztree" ' + transpiler.getAttrMarkup(attrs) + ">";
13448
13450
  },
13449
13451
  post: function() {
13450
13452
  return "</" + tagName$1o + ">";
13451
13453
  }
13452
13454
  };
13453
13455
  }));
13454
- var tree_build = function() {};
13455
- var tree_build$1 = Object.freeze({
13456
- __proto__: null,
13457
- default: tree_build
13456
+ var tree_build = Object.freeze({
13457
+ __proto__: null
13458
13458
  });
13459
13459
  var tagName$1n = "div";
13460
13460
  transpiler.register("wm-card", (function() {
@@ -15060,7 +15060,7 @@
15060
15060
  }
15061
15061
  var markup = "<" + tagName$q + " wmPopover " + transpiler.getAttrMarkup(attrs) + ">";
15062
15062
  var contextAttrs = table ? 'let-row="row"' : "";
15063
- markup += "<ng-template " + contextAttrs + '><button class="popover-start"></button>';
15063
+ markup += "<ng-template " + contextAttrs + '><div tabindex="0" class="popover-start sr-only" aria-label="">popover content start</div>';
15064
15064
  if (popoverTemplate) {
15065
15065
  markup += "" + (popoverTemplate ? popoverTemplate : "");
15066
15066
  }
@@ -15071,7 +15071,7 @@
15071
15071
  if (shared.get("hasPopoverContent")) {
15072
15072
  markup += "</div>";
15073
15073
  }
15074
- return markup + '<button class="popover-end"></button></ng-template></' + tagName$q + ">";
15074
+ return markup + '<div tabindex="0" class="popover-end sr-only" aria-label="">popover content ended</div></ng-template></' + tagName$q + ">";
15075
15075
  }
15076
15076
  };
15077
15077
  }));
@@ -16435,7 +16435,7 @@
16435
16435
  exports.tileBuild = tile_build$1;
16436
16436
  exports.timeBuild = time_build$1;
16437
16437
  exports.topNavBuild = topNav_build$1;
16438
- exports.treeBuild = tree_build$1;
16438
+ exports.treeBuild = tree_build;
16439
16439
  exports.videoBuild = video_build$1;
16440
16440
  exports.wizardBuild = wizard_build$1;
16441
16441
  exports.wizardStepBuild = wizardStep_build$1;
@@ -22781,10 +22781,10 @@
22781
22781
  }));
22782
22782
 
22783
22783
  (function(global, factory) {
22784
- typeof exports === "object" && typeof module !== "undefined" ? factory(exports, require("@angular/core"), require("@angular/common"), require("@wm/components/base"), require("@wm/core")) : typeof define === "function" && define.amd ? define("@wm/components/basic/tree", [ "exports", "@angular/core", "@angular/common", "@wm/components/base", "@wm/core" ], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self,
22784
+ typeof exports === "object" && typeof module !== "undefined" ? factory(exports, require("@angular/core"), require("@angular/common"), require("@wm/components/base")) : typeof define === "function" && define.amd ? define("@wm/components/basic/tree", [ "exports", "@angular/core", "@angular/common", "@wm/components/base" ], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self,
22785
22785
  factory((global.wm = global.wm || {}, global.wm.components = global.wm.components || {},
22786
- global.wm.components.basic = global.wm.components.basic || {}, global.wm.components.basic.tree = {}), global.ng.core, global.ng.common, global.wm.components.base, global.wm.core));
22787
- })(this, (function(exports, core$1, common, base, core) {
22786
+ global.wm.components.basic = global.wm.components.basic || {}, global.wm.components.basic.tree = {}), global.ng.core, global.ng.common, global.wm.components.base));
22787
+ })(this, (function(exports, core, common, base) {
22788
22788
  "use strict";
22789
22789
  /*! *****************************************************************************
22790
22790
  Copyright (c) Microsoft Corporation.
@@ -23161,352 +23161,344 @@
23161
23161
  value: 0
23162
23162
  }, base.PROP_NUMBER) ], [ "treeicons", base.PROP_STRING ] ]));
23163
23163
  };
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
23164
  var WIDGET_INFO = {
23196
23165
  widgetType: "wm-tree",
23197
23166
  hostClass: "app-tree"
23198
23167
  };
23199
- var TreeDirective = function(_super) {
23200
- __extends(TreeDirective, _super);
23201
- function TreeDirective(inj, binddatavalue, bindnodelabel, bindnodeicon, bindnodechildren, bindnodeid) {
23168
+ var defaultTreeIconClass = "plus-minus";
23169
+ var TreeComponent = function(_super) {
23170
+ __extends(TreeComponent, _super);
23171
+ function TreeComponent(inj) {
23202
23172
  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;
23173
+ _this.setting = {
23174
+ data: {
23175
+ simpleData: {
23176
+ enable: true
23177
+ }
23178
+ },
23179
+ view: {
23180
+ dblClickExpand: false,
23181
+ fontCss: {
23182
+ "font-awesome": true
23183
+ },
23184
+ switchIcon: {}
23185
+ },
23186
+ check: {},
23187
+ callback: {}
23188
+ };
23208
23189
  base.styler(_this.nativeElement, _this, base.APPLY_STYLES_TYPE.CONTAINER);
23209
- _this.bindEvents();
23210
23190
  return _this;
23211
23191
  }
23212
- TreeDirective.prototype.onPropertyChange = function(key, nv, ov) {
23192
+ TreeComponent.prototype.onPropertyChange = function(key, nv, ov) {
23213
23193
  switch (key) {
23214
23194
  case "dataset":
23215
23195
  this.nodes = this.getNodes(nv);
23216
- this._selectNode = undefined;
23196
+ if (this.level > 0) {
23197
+ this.expandTree(this.level, this.nodes, 0);
23198
+ }
23217
23199
  this.renderTree();
23218
23200
  break;
23219
23201
 
23220
- case "nodeicon":
23221
- case "nodelabel":
23222
- case "nodechildren":
23223
- case "orderby":
23224
- this.renderTree();
23202
+ case "levels":
23203
+ if (nv > 0) {
23204
+ this.level = nv;
23205
+ }
23225
23206
  break;
23226
23207
 
23227
23208
  case "treeicons":
23228
- this.changeTreeIcons(nv, ov);
23209
+ this.treeicon = nv;
23229
23210
  break;
23230
23211
 
23231
- case "datavalue":
23232
- this.selectById(nv);
23212
+ case "nodelabel":
23213
+ this.nodelabel = nv;
23214
+ break;
23215
+
23216
+ case "icon":
23217
+ this.nodeicon = nv;
23218
+
23219
+ case "orderby":
23220
+ this.renderTree();
23221
+ break;
23222
+
23223
+ case "class":
23224
+ this.treeClass = nv;
23233
23225
  break;
23234
23226
 
23235
23227
  default:
23236
23228
  _super.prototype.onPropertyChange.call(this, key, nv, ov);
23229
+ break;
23237
23230
  }
23238
23231
  };
23239
- TreeDirective.prototype.constructNodes = function(nodes, parent, levels, deep, _evalDataValue) {
23232
+ TreeComponent.prototype.expandTree = function(level, node, childLevel) {
23240
23233
  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);
23234
+ node.map((function(childNode) {
23235
+ if ("children" in childNode && !("open" in childNode) && childLevel < level) {
23236
+ childNode["open"] = true;
23237
+ _this.expandTree(level, childNode.children, childLevel + 1);
23294
23238
  } else {
23295
- if (!nodeIcon) {
23296
- $iconNode.addClass("leaf-node");
23297
- }
23298
- $li.addClass("leaf-node");
23239
+ childLevel = 0;
23240
+ return;
23299
23241
  }
23300
23242
  }));
23301
23243
  };
23302
- TreeDirective.prototype.getNodesFromString = function(value) {
23244
+ TreeComponent.prototype.setTreeTemplate = function(value) {
23245
+ if (value === "Classic") {
23246
+ this.setting.check["enable"] = false;
23247
+ } else if (value === "Checkbox") {
23248
+ this.setting.check["enable"] = true;
23249
+ this.setting.check["chkStyle"] = "checkbox";
23250
+ } else if (value === "Radio") {
23251
+ this.setting.check["enable"] = true;
23252
+ this.setting.check["chkStyle"] = "radio";
23253
+ this.setting.check["radioType"] = "all";
23254
+ }
23255
+ };
23256
+ TreeComponent.prototype.getNodesFromString = function(value) {
23303
23257
  return value.split(",").map((function(item) {
23304
23258
  return {
23305
- label: item && item.trim()
23259
+ name: item && item.trim()
23306
23260
  };
23307
23261
  }));
23308
23262
  };
23309
- TreeDirective.prototype.getNodes = function(newVal) {
23263
+ TreeComponent.prototype.getNodes = function(newVal) {
23310
23264
  var nodes;
23311
- if (_.isString(newVal) && !_.isEmpty(newVal)) {
23265
+ if (_.isArray(newVal)) {
23266
+ nodes = base.getOrderedDataset(newVal, this.orderby);
23267
+ } else if (_.isObject(newVal)) {
23268
+ nodes = [ newVal ];
23269
+ } else if (_.isString(newVal) && !_.isEmpty(newVal)) {
23312
23270
  newVal = newVal.trim();
23313
23271
  if (newVal) {
23314
23272
  nodes = this.getNodesFromString(newVal);
23315
23273
  }
23316
- } else if (_.isArray(newVal)) {
23317
- newVal = base.getOrderedDataset(newVal, this.orderby);
23318
- nodes = newVal;
23319
- } else if (_.isObject(newVal)) {
23320
- nodes = [ newVal ];
23321
23274
  }
23322
23275
  return nodes;
23323
23276
  };
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);
23338
- }));
23339
- var eventParams = {
23340
- $event: $event,
23341
- $item: $li.data("nodedata"),
23342
- $path: path
23343
- };
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
- }
23277
+ TreeComponent.prototype.setNodeclasses = function(treeId, treeNode) {
23278
+ return treeNode.icon ? {
23279
+ add: [ "" + treeNode.icon ]
23280
+ } : "";
23353
23281
  };
23354
- TreeDirective.prototype.renderTree = function(forceRender) {
23282
+ TreeComponent.prototype.setNodeData = function(nodes, depth, level, parentNode, type) {
23355
23283
  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);
23284
+ if (depth === 0) {
23285
+ nodes.map((function(node) {
23286
+ if (node.children) {
23287
+ _this.setNodeData(node.children, depth, level, parentNode, type);
23288
+ }
23289
+ if (node.icon && _this.nodelabel == "icon") {
23290
+ node[type] = node.icon;
23291
+ } else if (node.name && _this.nodelabel == "name") {
23292
+ node[type] = node.name;
23293
+ } else {
23294
+ return;
23295
+ }
23296
+ }));
23297
+ } else {
23298
+ nodes.map((function(node) {
23299
+ if (node.children && level > 1) {
23300
+ if (depth === level) {
23301
+ parentNode = node;
23302
+ }
23303
+ _this.setNodeData(node.children, depth, level - 1, parentNode, type);
23304
+ }
23305
+ if (level === 1 && (type === "name" ? _this.nodelabel.includes("label") || _this.nodelabel.includes("name") : _this.nodeicon.includes("label") || _this.nodeicon.includes("name"))) {
23306
+ parentNode[type] = node.name || node.label;
23307
+ return;
23308
+ } else if (level === 1 && node.icon !== undefined && (type === "name" ? _this.nodelabel.includes("icon") : _this.nodeicon.includes("icon"))) {
23309
+ parentNode[type] = node.icon;
23310
+ return;
23311
+ } else {
23312
+ return;
23313
+ }
23379
23314
  }));
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
23315
  }
23389
23316
  };
23390
- TreeDirective.prototype.selectNode = function(evt, value) {
23391
- 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) || {};
23420
- }
23317
+ TreeComponent.prototype.changeTreeIcons = function(nv) {
23318
+ var eleClose = $('ul[name="' + this.name + '"] li span.button.switch');
23319
+ $(eleClose).map((function(idx, ele) {
23320
+ $(ele).addClass(nv);
23321
+ $(ele).on("click", (function(e) {
23322
+ setTimeout((function() {
23323
+ $(ele).addClass(nv);
23324
+ }), 0);
23325
+ }));
23326
+ }));
23327
+ };
23328
+ TreeComponent.prototype.getPath = function(treeNode, path) {
23329
+ if (treeNode.getParentNode() === null) {
23330
+ path = "/" + treeNode.name + path;
23421
23331
  } else {
23422
- this.datavalue = value;
23423
- }
23424
- if (nodeAction) {
23425
- core.$parseEvent(nodeAction)(this);
23332
+ path = this.getPath(treeNode.getParentNode(), path) + "/" + treeNode.name;
23426
23333
  }
23427
- this.invokeEventCallback("select", {
23428
- $event: evt,
23429
- $item: data,
23334
+ return path;
23335
+ };
23336
+ TreeComponent.prototype.onClick = function(event, treeId, treeNode, clickFlag) {
23337
+ var treeObj = $.fn.zTree.getZTreeObj("" + this.name);
23338
+ var path = this.getPath(treeNode, "");
23339
+ var eventParams = {
23340
+ $event: event,
23341
+ $item: treeNode,
23430
23342
  $path: path
23431
- });
23432
- core.$appDigest();
23343
+ };
23344
+ this.invokeEventCallback("select", eventParams);
23345
+ };
23346
+ TreeComponent.prototype.onExpand = function(event, treeId, treeNode) {
23347
+ var self = this;
23348
+ var path = this.getPath(treeNode, "");
23349
+ var eventParams = {
23350
+ $event: event,
23351
+ $item: treeNode,
23352
+ $path: path
23353
+ };
23354
+ this.invokeEventCallback("expand", eventParams);
23355
+ treeNode.children ? treeNode.children.map((function(el) {
23356
+ if (el.isParent) {
23357
+ var ele_1 = $("#" + el.tId + "_switch");
23358
+ $(ele_1).addClass(self.treeicon || defaultTreeIconClass);
23359
+ $(ele_1).on("click", (function(e) {
23360
+ setTimeout((function() {
23361
+ $(ele_1).addClass(self.treeicon || defaultTreeIconClass);
23362
+ }), 0);
23363
+ }));
23364
+ }
23365
+ })) : "";
23433
23366
  };
23434
- TreeDirective.prototype.bindEvents = function() {
23367
+ TreeComponent.prototype.onCollapse = function(event, treeId, treeNode) {
23368
+ var path = this.getPath(treeNode, "");
23369
+ var eventParams = {
23370
+ $event: event,
23371
+ $item: treeNode,
23372
+ $path: path
23373
+ };
23374
+ this.invokeEventCallback("collapse", eventParams);
23375
+ };
23376
+ TreeComponent.prototype.modifyObjects = function(array) {
23435
23377
  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);
23378
+ array.forEach((function(obj) {
23379
+ if (obj.label !== undefined) {
23380
+ obj.name = obj.label;
23381
+ delete obj.label;
23442
23382
  }
23443
- if (target.is("i") || target.is("span.title") && _this.nodeclick === "expand") {
23444
- _this.toggleExpandCollapseNode(evt, $i, li);
23383
+ if (obj.children !== undefined) {
23384
+ _this.modifyObjects(obj.children);
23445
23385
  }
23446
23386
  }));
23387
+ return array;
23447
23388
  };
23448
- TreeDirective.prototype.findSelectedNodeParent = function($li) {
23449
- return $li.find("> span.title").parents(".app-tree li");
23389
+ TreeComponent.prototype.setNodeChildren = function(nodes, depth, level, parentNode) {
23390
+ if (depth <= 0) {
23391
+ return nodes;
23392
+ }
23393
+ for (var i = 0; i < nodes.length; i++) {
23394
+ var node = nodes[i];
23395
+ if (depth === level) {
23396
+ parentNode = nodes[i];
23397
+ }
23398
+ if (node.children && node.children.length > 0) {
23399
+ if (level === 1) {
23400
+ parentNode.children = node.children.map((function(child) {
23401
+ return {
23402
+ name: child.name,
23403
+ children: child === null || child === void 0 ? void 0 : child.children
23404
+ };
23405
+ }));
23406
+ return;
23407
+ } else {
23408
+ this.setNodeChildren(node.children, depth, level - 1, parentNode);
23409
+ }
23410
+ }
23411
+ }
23412
+ return nodes;
23450
23413
  };
23451
- TreeDirective.prototype.selectById = function(value) {
23452
- this.selectNode(undefined, value);
23414
+ TreeComponent.prototype.countDepth = function(str) {
23415
+ var e_1, _a;
23416
+ var regex = /\[.*?\]/g;
23417
+ var matches = str.match(regex);
23418
+ var count = 1;
23419
+ if (matches === null) return count;
23420
+ try {
23421
+ for (var matches_1 = __values(matches), matches_1_1 = matches_1.next(); !matches_1_1.done; matches_1_1 = matches_1.next()) {
23422
+ var match = matches_1_1.value;
23423
+ count++;
23424
+ }
23425
+ } catch (e_1_1) {
23426
+ e_1 = {
23427
+ error: e_1_1
23428
+ };
23429
+ } finally {
23430
+ try {
23431
+ if (matches_1_1 && !matches_1_1.done && (_a = matches_1.return)) _a.call(matches_1);
23432
+ } finally {
23433
+ if (e_1) throw e_1.error;
23434
+ }
23435
+ }
23436
+ return count;
23453
23437
  };
23454
- TreeDirective.prototype.deselectById = function(value) {
23455
- this.selecteditem = {};
23456
- this.selectById();
23438
+ TreeComponent.prototype.renderTree = function() {
23439
+ console.log(this.nodes, "this.nodes");
23440
+ if (this.nodes) {
23441
+ this.nativeElement.setAttribute("id", this.name);
23442
+ this.nodes = this.modifyObjects(this.nodes);
23443
+ this.setTreeTemplate(this.treeClass);
23444
+ if (this.nodelabel) {
23445
+ var depth = 0;
23446
+ if (this.nodelabel.includes("children")) {
23447
+ depth = this.countDepth(this.nodelabel);
23448
+ }
23449
+ this.setNodeData(this.nodes, depth, depth, null, "name");
23450
+ }
23451
+ if (this.nodeicon) {
23452
+ var depth = 0;
23453
+ if (this.nodeicon.includes("children")) {
23454
+ depth = this.countDepth(this.nodeicon);
23455
+ }
23456
+ this.setNodeData(this.nodes, depth, depth, null, "icon");
23457
+ }
23458
+ if (this.nodechildren) {
23459
+ var depth = this.countDepth(this.nodechildren);
23460
+ if (depth > 1) {
23461
+ this.nodes = this.setNodeChildren(this.nodes, depth, depth, null);
23462
+ }
23463
+ }
23464
+ }
23465
+ this.setting.view["nodeClasses"] = this.setNodeclasses;
23466
+ this.setting.callback["onClick"] = this.onClick.bind(this);
23467
+ this.setting.callback["onExpand"] = this.onExpand.bind(this);
23468
+ this.setting.callback["onCollapse"] = this.onCollapse.bind(this);
23469
+ var zTree = $.fn.zTree.init($('ul[name="' + this.name + '"]'), this.setting, this.nodes);
23470
+ $.fn.zTreeKeyboardNavigation(zTree, $('ul[name="' + this.name + '"]'), null, this.treeicon || defaultTreeIconClass);
23457
23471
  };
23458
- return TreeDirective;
23472
+ TreeComponent.prototype.ngAfterViewInit = function() {
23473
+ var _this = this;
23474
+ setTimeout((function() {
23475
+ _this.changeTreeIcons(_this.treeicon || defaultTreeIconClass);
23476
+ }), 200);
23477
+ };
23478
+ return TreeComponent;
23459
23479
  }(base.StylableComponent);
23460
- TreeDirective.initializeProps = registerProps();
23461
- TreeDirective.decorators = [ {
23462
- type: core$1.Directive,
23480
+ TreeComponent.initializeProps = registerProps();
23481
+ TreeComponent.decorators = [ {
23482
+ type: core.Component,
23463
23483
  args: [ {
23464
- selector: "div[wmTree]",
23465
- providers: [ base.provideAsWidgetRef(TreeDirective) ]
23484
+ selector: "ul[wmTree]",
23485
+ template: '<ul #wmTree class="ztree" id="ztree"></ul> ',
23486
+ providers: [ base.provideAsWidgetRef(TreeComponent) ],
23487
+ encapsulation: core.ViewEncapsulation.None
23466
23488
  } ]
23467
23489
  } ];
23468
- TreeDirective.ctorParameters = function() {
23490
+ TreeComponent.ctorParameters = function() {
23469
23491
  return [ {
23470
- 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
- } ]
23492
+ type: core.Injector
23501
23493
  } ];
23502
23494
  };
23503
- var components = [ TreeDirective ];
23495
+ var components = [ TreeComponent ];
23504
23496
  var TreeModule = function() {
23505
23497
  function TreeModule() {}
23506
23498
  return TreeModule;
23507
23499
  }();
23508
23500
  TreeModule.decorators = [ {
23509
- type: core$1.NgModule,
23501
+ type: core.NgModule,
23510
23502
  args: [ {
23511
23503
  imports: [ common.CommonModule, base.WmComponentsModule ],
23512
23504
  declarations: __spreadArray([], __read(components)),
@@ -23514,7 +23506,7 @@
23514
23506
  entryComponents: []
23515
23507
  } ]
23516
23508
  } ];
23517
- exports.TreeDirective = TreeDirective;
23509
+ exports.TreeComponent = TreeComponent;
23518
23510
  exports.TreeModule = TreeModule;
23519
23511
  exports["\u0275a"] = registerProps;
23520
23512
  Object.defineProperty(exports, "__esModule", {
@@ -27414,14 +27406,18 @@
27414
27406
  var newDay = newDate.getDate().toString();
27415
27407
  _.filter($("span:contains(" + newDay + ")").not(".is-other-month"), (function(obj) {
27416
27408
  if ($(obj).text() === newDay) {
27409
+ if ($(obj).hasClass("selected")) {
27410
+ $(obj).parent().attr("aria-selected", "true");
27411
+ }
27417
27412
  $(obj).attr("aria-label", moment(newDate).format("dddd, MMMM Do YYYY"));
27413
+ $("[bsdatepickerdaydecorator]").not(".is-other-month").attr("tabindex", "-1");
27414
+ $(obj).attr("tabindex", "0");
27418
27415
  $(obj).focus();
27419
27416
  _this.activeDate = newDate;
27420
27417
  }
27421
27418
  }));
27422
27419
  if (newDate.getMonth() === (new Date).getMonth() && newDate.getFullYear() === (new Date).getFullYear()) {
27423
27420
  _this.hightlightToday();
27424
- $("span:contains(" + (new Date).getDate().toString() + ")").not(".is-other-month").parent().attr("aria-selected", "true");
27425
27421
  }
27426
27422
  }));
27427
27423
  };
@@ -27463,6 +27459,9 @@
27463
27459
  if (event.originalEvent) {
27464
27460
  _this.setFocusForDate(-1);
27465
27461
  }
27462
+ setTimeout((function() {
27463
+ $(".bs-datepicker-head .previous").focus();
27464
+ }));
27466
27465
  }));
27467
27466
  datePickerHead.find(".next").click((function(event) {
27468
27467
  _this.next = _this.getMonth(_this.activeDate, 2);
@@ -27471,6 +27470,9 @@
27471
27470
  if (event.originalEvent) {
27472
27471
  _this.setFocusForDate(1);
27473
27472
  }
27473
+ setTimeout((function() {
27474
+ $(".bs-datepicker-head .next").focus();
27475
+ }));
27474
27476
  }));
27475
27477
  datePickerHead.find(".current").click((function(event) {
27476
27478
  if (event.originalEvent) {
@@ -27485,6 +27487,19 @@
27485
27487
  }));
27486
27488
  datePickerHead.find(".next").attr("aria-label", "Next Month, " + this.next.fullMonth + " " + this.next.date.getFullYear());
27487
27489
  datePickerHead.find(".previous").attr("aria-label", "Previous Month, " + this.prev.fullMonth + " " + this.prev.date.getFullYear());
27490
+ setTimeout((function() {
27491
+ var currentNodes = datePickerHead.find(".current span");
27492
+ var msg = "Changed to month ";
27493
+ datePickerHead.find(".current").attr("aria-live", "assertive").attr("aria-atomic", "false");
27494
+ if (_this.clicked) {
27495
+ if ($(currentNodes[0]).text()) {
27496
+ datePickerHead.find(".ng-star-inserted").prepend('<div class="sr-only">' + msg + "</div>");
27497
+ }
27498
+ if ($(currentNodes[1]).text()) {
27499
+ datePickerHead.find(".current").last().prepend('<div class="sr-only"> and year </div>');
27500
+ }
27501
+ }
27502
+ }));
27488
27503
  };
27489
27504
  BaseDateTimeComponent.prototype.setFocusForMonthOrDay = function() {
27490
27505
  var activeMonthOrYear = $(".bs-datepicker-head .current").first().text();
@@ -27620,8 +27635,6 @@
27620
27635
  BaseDateTimeComponent.prototype.loadMonths = function() {
27621
27636
  var _this = this;
27622
27637
  setTimeout((function() {
27623
- var datePickerBody = $(".bs-datepicker-body");
27624
- datePickerBody.find("table.months span").attr("tabindex", "0");
27625
27638
  _this.addKeyBoardEventsForMonths();
27626
27639
  _this.addDatepickerMouseEvents();
27627
27640
  }));
@@ -27664,8 +27677,6 @@
27664
27677
  BaseDateTimeComponent.prototype.loadYears = function() {
27665
27678
  var _this = this;
27666
27679
  setTimeout((function() {
27667
- var datePickerBody = $(".bs-datepicker-body");
27668
- datePickerBody.find("table.years span").attr("tabindex", "0");
27669
27680
  _this.addKeyBoardEventsForYears();
27670
27681
  _this.addDatepickerMouseEvents();
27671
27682
  }));
@@ -27682,6 +27693,8 @@
27682
27693
  }
27683
27694
  }
27684
27695
  setTimeout((function() {
27696
+ $(".bs-datepicker-body table.months span").attr("tabindex", "-1");
27697
+ $(".bs-datepicker-body table.months span:contains(" + newMonth + ")").attr("tabindex", "0");
27685
27698
  $(".bs-datepicker-body table.months span:contains(" + newMonth + ")").focus();
27686
27699
  _this.activeDate = newDate;
27687
27700
  }));
@@ -27730,6 +27743,8 @@
27730
27743
  }
27731
27744
  }
27732
27745
  setTimeout((function() {
27746
+ $(".bs-datepicker-body table.years span").attr("tabindex", "-1");
27747
+ $(".bs-datepicker-body table.years span:contains(" + newYear + ")").attr("tabindex", "0");
27733
27748
  $(".bs-datepicker-body table.years span:contains(" + newYear + ")").focus();
27734
27749
  _this.activeDate = newDate;
27735
27750
  }));
@@ -27896,11 +27911,6 @@
27896
27911
  children[i].classList.remove("add-opacity");
27897
27912
  }
27898
27913
  displayInputElem.classList.remove("remove-opacity");
27899
- var allDateTimeElements = this.nativeElement.getElementsByTagName("*");
27900
- for (var i = 0; i < allDateTimeElements.length; i++) {
27901
- allDateTimeElements[i].setAttribute("tabindex", this.tabindex);
27902
- }
27903
- displayInputElem.removeAttribute("tabindex");
27904
27914
  }
27905
27915
  };
27906
27916
  BaseDateTimeComponent.prototype.onDateTimeInputFocus = function(skipFocus) {
@@ -27917,11 +27927,6 @@
27917
27927
  children[i].classList.add("add-opacity");
27918
27928
  }
27919
27929
  displayInputElem.classList.add("remove-opacity");
27920
- var allDateTimeElements = this.nativeElement.getElementsByTagName("*");
27921
- for (var i = 0; i < allDateTimeElements.length; i++) {
27922
- allDateTimeElements[i].setAttribute("tabindex", "-1");
27923
- }
27924
- displayInputElem.setAttribute("tabindex", this.tabindex);
27925
27930
  return;
27926
27931
  }
27927
27932
  if (displayInputElem && this._triggeredByUser) {
@@ -28004,7 +28009,10 @@
28004
28009
  this.isReadOnly = this.dataentrymode != "undefined" && !this.isDataEntryModeEnabledOnInput(this.dataentrymode);
28005
28010
  var mobileInput = this.getMobileInput();
28006
28011
  if (mobileInput) {
28007
- mobileInput.style.width = mobileInput.parentElement.clientWidth + "px";
28012
+ setTimeout((function() {
28013
+ mobileInput.style.width = "100%";
28014
+ mobileInput.style.height = "100%";
28015
+ }));
28008
28016
  }
28009
28017
  };
28010
28018
  BaseDateTimeComponent.prototype.ngOnDestroy = function() {
@@ -28267,7 +28275,7 @@
28267
28275
  if (this.isDropDownDisplayEnabledOnInput(this.showdropdownon)) {
28268
28276
  event.stopPropagation();
28269
28277
  var action = this.keyEventPlugin.constructor.getEventFullKey(event);
28270
- if (action === "enter" || action === "arrowdown") {
28278
+ if (action === "enter") {
28271
28279
  var newVal = core$1.getDateObj(event.target.value, {
28272
28280
  pattern: this.datepattern
28273
28281
  });
@@ -28309,7 +28317,7 @@
28309
28317
  type: core.Component,
28310
28318
  args: [ {
28311
28319
  selector: "[wmDate]",
28312
- template: ' <input class="form-control app-textbox app-dateinput display-input"\n focus-target\n type="text"\n [name]="name"\n [tabindex]="tabindex"\n [value]="displayValue"\n (click)="toggleDpDropdown($event, true)"\n (focus)="onDateTimeInputFocus(); invokeOnFocus($event);"\n (blur)="onInputBlur($event)"\n [disabled]="disabled || readonly"\n [autofocus]="autofocus"\n [required]="required"\n [readOnly]="isReadOnly"\n [attr.placeholder]="placeholder"\n [attr.accesskey]="shortcutkey"\n [attr.aria-label]="hint"\n (change)="onDisplayDateChange($event)"\n (keydown)="this._triggeredByUser = true; onDisplayKeydown($event);">\n\n <span class="input-group-btn">\n <button type="button"\n class="btn btn-default btn-time"\n [tabindex]="tabindex"\n [disabled]="disabled || readonly"\n [attr.aria-label]="displayValue ? \'Change Date \' + displayValue : \'Choose date by pressing enter\'"\n aria-haspopup="true"\n aria-expanded="false"\n (click)="toggleDpDropdown($event, false)">\n <i aria-hidden="true"\n class="app-icon wm-sl-l sl-calendar"></i>\n </button>\n </span>\n <div style="width: 0;display: inline-block;">\n <input class="model-holder"\n aria-label="datepicker dropdownmenu"\n aria-controls="date"\n [container]="containerTarget || \'body\'"\n [bsConfig]="_dateOptions"\n [isOpen]="isOpen"\n #datepicker="bsDatepicker"\n bsDatepicker\n [daysDisabled]="excludedDaysToDisable"\n [datesDisabled]="excludedDatesToDisable"\n placement="bottom right"\n [isDisabled]="disabled || readonly"\n [bsValue]="bsDataValue"\n (onShown)="onDatePickerOpen()"\n (onHidden)="hideDatepickerDropdown()"\n (bsValueChange)="onDateChange($event)">\n</div>\n\n<ng-template [ngIf]="loadNativeDateInput">\n <wm-datetimepicker\n dateTimePicker\n mode="DATE"\n [config]="_dateOptions"\n [placement]="modal"\n [excludedDaysToDisable]="excludedDaysToDisable"\n [excludedDatesToDisable]="excludedDatesToDisable"\n [displayFormat]="dateInputFormat"\n [value]="bsDataValue"\n (change)="onDateChange($event)">\n </wm-datetimepicker>\n <div class="mobile-input mobile-datepicker-container"\n tabindex="1000000"\n (focus)="onDateTimeInputFocus(true); invokeOnFocus($event);"\n (blur)="onDateTimeInputBlur(); invokeOnTouched($event)"\n (click)="!(disabled || readonly || isCurrentDate) && showDatePickerModal()">\n </div>\n</ng-template>\n',
28320
+ template: ' <input class="form-control app-textbox app-dateinput display-input"\n focus-target\n type="text"\n [name]="name"\n [tabindex]="loadNativeDateInput ? \'-1\' : tabindex"\n [attr.aria-hidden]="!!loadNativeDateInput"\n [value]="displayValue"\n (click)="toggleDpDropdown($event, true)"\n (focus)="onDateTimeInputFocus(); invokeOnFocus($event);"\n (blur)="onInputBlur($event)"\n [disabled]="disabled || readonly"\n [autofocus]="autofocus"\n [required]="required"\n [readOnly]="isReadOnly"\n [attr.placeholder]="placeholder"\n [attr.accesskey]="shortcutkey"\n [attr.aria-label]="hint"\n (change)="onDisplayDateChange($event)"\n (keydown)="this._triggeredByUser = true; onDisplayKeydown($event);">\n\n <span class="input-group-btn">\n <button type="button"\n class="btn btn-default btn-time"\n [tabindex]="loadNativeDateInput ? \'-1\' : tabindex"\n [attr.aria-hidden]="!!loadNativeDateInput"\n [disabled]="disabled || readonly"\n [attr.aria-label]="displayValue ? \'Change Date \' + displayValue : \'Choose date by pressing enter\'"\n aria-haspopup="true"\n aria-expanded="false"\n (click)="toggleDpDropdown($event, false)">\n <i aria-hidden="true"\n class="app-icon wm-sl-l sl-calendar"></i>\n </button>\n </span>\n <div style="width: 0;display: inline-block;">\n <input class="model-holder"\n aria-label="datepicker dropdownmenu"\n aria-controls="date"\n [tabindex]="-1"\n [attr.aria-hidden]="!!loadNativeDateInput"\n [container]="containerTarget || \'body\'"\n [bsConfig]="_dateOptions"\n [isOpen]="isOpen"\n #datepicker="bsDatepicker"\n bsDatepicker\n [daysDisabled]="excludedDaysToDisable"\n [datesDisabled]="excludedDatesToDisable"\n placement="bottom right"\n [isDisabled]="disabled || readonly"\n [bsValue]="bsDataValue"\n (onShown)="onDatePickerOpen()"\n (onHidden)="hideDatepickerDropdown()"\n (bsValueChange)="onDateChange($event)">\n</div>\n\n<ng-template [ngIf]="loadNativeDateInput">\n <wm-datetimepicker\n dateTimePicker\n mode="DATE"\n [config]="_dateOptions"\n [placement]="modal"\n [excludedDaysToDisable]="excludedDaysToDisable"\n [excludedDatesToDisable]="excludedDatesToDisable"\n [displayFormat]="dateInputFormat"\n [value]="bsDataValue"\n (change)="onDateChange($event)">\n </wm-datetimepicker>\n <div class="mobile-input mobile-datepicker-container"\n [tabindex]="tabindex || 0"\n (focus)="onDateTimeInputFocus(true); invokeOnFocus($event);"\n (blur)="onDateTimeInputBlur(); invokeOnTouched($event)"\n [attr.aria-label]="displayValue ? \'Change Date\' + displayValue : \'Choose Date\'"\n (click)="!(disabled || readonly || isCurrentDate) && showDatePickerModal()">\n </div>\n</ng-template>\n',
28313
28321
  providers: [ base.provideAs(DateComponent, forms.NG_VALUE_ACCESSOR, true), base.provideAs(DateComponent, forms.NG_VALIDATORS, true), base.provideAsWidgetRef(DateComponent) ]
28314
28322
  } ]
28315
28323
  } ];
@@ -28761,7 +28769,7 @@
28761
28769
  type: core.Component,
28762
28770
  args: [ {
28763
28771
  selector: "[wmDateTime]",
28764
- template: ' <div dropdown\n [isOpen]="isTimeOpen"\n autoClose="false"\n [container]="\'body\'"\n (onShown)="onTimepickerOpen()"\n style="display: inherit;">\n <input class="form-control app-textbox display-input"\n [attr.aria-label]="hint"\n focus-target\n [name]="name"\n [tabindex]="tabindex"\n type="text"\n [value]="displayValue"\n (click)="toggleDpDropdown($event, true)"\n (focus)="onDateTimeInputFocus(); invokeOnFocus($event);"\n (blur)="onInputBlur($event)"\n (change)="onDateChange($event)"\n [autofocus]="autofocus"\n [disabled]="disabled || readonly || isCurrentDate"\n [required]="required"\n [readOnly]="isReadOnly"\n [attr.placeholder]="placeholder"\n [attr.accesskey]="shortcutkey"\n (keydown)="this._triggeredByUser = true; onDisplayKeydown($event)">\n\n <span class="input-group-btn">\n <button type="button"\n class="btn btn-default btn-date"\n [tabindex]="tabindex"\n [disabled]="disabled || readonly || isCurrentDate"\n [attr.aria-label]="displayValue ? \'Change Date \' + displayValue : \'Choose date by pressing enter\'"\n aria-haspopup="true"\n aria-expanded="false"\n (click)="toggleDpDropdown($event, false)">\n <i aria-hidden="true"\n class="app-icon wm-sl-l sl-calendar"></i>\n </button>\n <button type="button"\n class="btn btn-default btn-time"\n [tabindex]="tabindex"\n [disabled]="disabled || readonly || isCurrentDate"\n aria-label="Select time"\n aria-haspopup="true"\n aria-expanded="false"\n (click)="toggleTimePicker(!isTimeOpen, $event)">\n <i aria-hidden="true"\n class="app-icon wm-sl-l sl-time"></i>\n </button>\n </span>\n <div style="width: 0;display: inline-block;">\n <input class="model-holder"\n aria-label="datepicker dropdownmenu"\n aria-controls="date"\n focus-target\n [container]="containerTarget || \'body\'"\n [bsConfig]="_dateOptions"\n [isOpen]="isDateOpen"\n placement="bottom right"\n (onShown)="onDatePickerOpen()"\n (onHidden)="hideDatepickerDropdown()"\n [daysDisabled]="excludedDaysToDisable"\n [datesDisabled]="excludedDatesToDisable"\n #datepicker=bsDatepicker\n bsDatepicker\n [isDisabled]="disabled || readonly || isCurrentDate"\n [bsValue]="bsDateValue"\n (bsValueChange)="onModelUpdate($event, \'date\')">\n </div>\n <div *dropdownMenu\n class="dropdown-menu"\n aria-label="timepicker dropdown"\n aria-controls="time"\n (click)="preventTpClose($event)">\n <timepicker class="model-holder"\n [showMeridian]="ismeridian"\n [readonlyInput]="disabled || readonly || isCurrentDate"\n [(ngModel)]="bsTimeValue"\n [min]="minTime"\n [max]="maxTime"\n [hourStep]="hourstep"\n [minuteStep]="minutestep"\n [secondsStep]="secondsstep"\n [mousewheel]="true"\n [arrowkeys]="true"\n (isValid)="isValid($event)"\n [showSeconds]="showseconds"\n (ngModelChange)="onModelUpdate($event, \'time\')"></timepicker>\n </div>\n </div>\n<ng-template [ngIf]="loadNativeDateInput">\n <wm-datetimepicker\n dateTimePicker\n [config]="_dateOptions"\n [placement]="modal"\n [excludedDaysToDisable]="excludedDaysToDisable"\n [excludedDatesToDisable]="excludedDatesToDisable"\n [displayFormat]="dateInputFormat"\n [value]="bsDateValue"\n (change)="onModelUpdate($event, \'date\')">\n </wm-datetimepicker>\n <div class="mobile-input mobile-datepicker-container"\n tabindex="1000000"\n (focus)="onDateTimeInputFocus(true); invokeOnFocus($event)"\n (blur)="onDateTimeInputBlur(); invokeOnTouched($event)"\n (click)="!(disabled || readonly || isCurrentDate) && showDatePickerModal()">\n </div>\n</ng-template>\n',
28772
+ template: ' <div dropdown\n [isOpen]="isTimeOpen"\n autoClose="false"\n [container]="\'body\'"\n (onShown)="onTimepickerOpen()"\n style="display: inherit;">\n <input class="form-control app-textbox display-input"\n [attr.aria-label]="hint"\n focus-target\n [name]="name"\n [tabindex]="loadNativeDateInput ? \'-1\' : tabindex"\n [attr.aria-hidden]="!!loadNativeDateInput"\n type="text"\n [value]="displayValue"\n (click)="toggleDpDropdown($event, true)"\n (focus)="onDateTimeInputFocus(); invokeOnFocus($event);"\n (blur)="onInputBlur($event)"\n (change)="onDateChange($event)"\n [autofocus]="autofocus"\n [disabled]="disabled || readonly || isCurrentDate"\n [required]="required"\n [readOnly]="isReadOnly"\n [attr.placeholder]="placeholder"\n [attr.accesskey]="shortcutkey"\n (keydown)="this._triggeredByUser = true; onDisplayKeydown($event)">\n\n <span class="input-group-btn">\n <button type="button"\n class="btn btn-default btn-date"\n [tabindex]="loadNativeDateInput ? \'-1\' : tabindex"\n [attr.aria-hidden]="!!loadNativeDateInput"\n [disabled]="disabled || readonly || isCurrentDate"\n [attr.aria-label]="displayValue ? \'Change Date \' + displayValue : \'Choose date by pressing enter\'"\n aria-haspopup="true"\n aria-expanded="false"\n (click)="toggleDpDropdown($event, false)">\n <i aria-hidden="true"\n class="app-icon wm-sl-l sl-calendar"></i>\n </button>\n <button type="button"\n class="btn btn-default btn-time"\n [tabindex]="loadNativeDateInput ? \'-1\' : tabindex"\n [attr.aria-hidden]="!!loadNativeDateInput"\n [disabled]="disabled || readonly || isCurrentDate"\n aria-label="Select time"\n aria-haspopup="true"\n aria-expanded="false"\n (click)="toggleTimePicker(!isTimeOpen, $event)">\n <i aria-hidden="true"\n class="app-icon wm-sl-l sl-time"></i>\n </button>\n </span>\n <div style="width: 0;display: inline-block;">\n <input class="model-holder"\n aria-label="datepicker dropdownmenu"\n aria-controls="date"\n focus-target\n [tabindex]="-1"\n [attr.aria-hidden]="!!loadNativeDateInput"\n [container]="containerTarget || \'body\'"\n [bsConfig]="_dateOptions"\n [isOpen]="isDateOpen"\n placement="bottom right"\n (onShown)="onDatePickerOpen()"\n (onHidden)="hideDatepickerDropdown()"\n [daysDisabled]="excludedDaysToDisable"\n [datesDisabled]="excludedDatesToDisable"\n #datepicker=bsDatepicker\n bsDatepicker\n [isDisabled]="disabled || readonly || isCurrentDate"\n [bsValue]="bsDateValue"\n (bsValueChange)="onModelUpdate($event, \'date\')">\n </div>\n <div *dropdownMenu\n class="dropdown-menu"\n aria-label="timepicker dropdown"\n aria-controls="time"\n (click)="preventTpClose($event)">\n <timepicker class="model-holder"\n [showMeridian]="ismeridian"\n [readonlyInput]="disabled || readonly || isCurrentDate"\n [(ngModel)]="bsTimeValue"\n [min]="minTime"\n [max]="maxTime"\n [hourStep]="hourstep"\n [minuteStep]="minutestep"\n [secondsStep]="secondsstep"\n [mousewheel]="true"\n [arrowkeys]="true"\n (isValid)="isValid($event)"\n [showSeconds]="showseconds"\n (ngModelChange)="onModelUpdate($event, \'time\')"></timepicker>\n </div>\n </div>\n<ng-template [ngIf]="loadNativeDateInput">\n <wm-datetimepicker\n dateTimePicker\n [config]="_dateOptions"\n [placement]="modal"\n [excludedDaysToDisable]="excludedDaysToDisable"\n [excludedDatesToDisable]="excludedDatesToDisable"\n [displayFormat]="dateInputFormat"\n [value]="bsDateValue"\n (change)="onModelUpdate($event, \'date\')">\n </wm-datetimepicker>\n <div class="mobile-input mobile-datepicker-container"\n [tabindex]="tabindex || 0"\n (focus)="onDateTimeInputFocus(true); invokeOnFocus($event)"\n (blur)="onDateTimeInputBlur(); invokeOnTouched($event)"\n (click)="!(disabled || readonly || isCurrentDate) && showDatePickerModal()">\n </div>\n</ng-template>\n',
28765
28773
  providers: [ base.provideAs(DatetimeComponent, forms.NG_VALUE_ACCESSOR, true), base.provideAs(DatetimeComponent, forms.NG_VALIDATORS, true), base.provideAsWidgetRef(DatetimeComponent), {
28766
28774
  provide: timepicker.TimepickerConfig,
28767
28775
  deps: [ core$1.AbstractI18nService ],
@@ -35733,6 +35741,9 @@
35733
35741
  return _this.hidePopover();
35734
35742
  };
35735
35743
  }
35744
+ setTimeout((function() {
35745
+ _this.anchorRef.nativeElement.removeAttribute("aria-describedby");
35746
+ }));
35736
35747
  var deRegister = this.eventManager.addEventListener(popoverContainer, "keydown.esc", (function() {
35737
35748
  _this.isOpen = false;
35738
35749
  _this.setFocusToPopoverLink();
@@ -35740,8 +35751,6 @@
35740
35751
  }));
35741
35752
  var popoverStartBtn = popoverContainer.querySelector(".popover-start");
35742
35753
  var popoverEndBtn = popoverContainer.querySelector(".popover-end");
35743
- popoverStartBtn.setAttribute("aria-hidden", "true");
35744
- popoverEndBtn.setAttribute("aria-hidden", "true");
35745
35754
  popoverStartBtn.onkeydown = function(event) {
35746
35755
  var action = _this.keyEventPlugin.constructor.getEventFullKey(event);
35747
35756
  if (action === "shift.tab") {
@@ -35765,7 +35774,6 @@
35765
35774
  return _this.close();
35766
35775
  };
35767
35776
  }
35768
- core.setAttr(popoverContainer, "tabindex", 0);
35769
35777
  setTimeout((function() {
35770
35778
  return popoverStartBtn.focus();
35771
35779
  }), 50);
@@ -44689,9 +44697,9 @@
44689
44697
  }
44690
44698
  }
44691
44699
  };
44692
- ListComponent.prototype.onUpdate = function(evt, ui) {
44700
+ ListComponent.prototype.onUpdate = function(evt, ui, presentIndex) {
44693
44701
  var data = this.fieldDefs;
44694
- var newIndex = ui.item.index();
44702
+ var newIndex = ui === undefined ? presentIndex : ui.item.index();
44695
44703
  var oldIndex = this.$ulEle.data("oldIndex");
44696
44704
  var minIndex = _.min([ newIndex, oldIndex ]);
44697
44705
  var maxIndex = _.max([ newIndex, oldIndex ]);
@@ -44887,8 +44895,10 @@
44887
44895
  this.currentIndex = presentIndex + 1;
44888
44896
  if (this.isListElementMovable) {
44889
44897
  this.ariaText = "Item " + this.currentIndex + " grabbed, current position ";
44898
+ this.$ulEle.data("oldIndex", presentIndex);
44890
44899
  } else {
44891
44900
  this.ariaText = "Item " + this.currentIndex + " dropped, final position ";
44901
+ this.onUpdate($event, undefined, presentIndex);
44892
44902
  }
44893
44903
  }
44894
44904
  };
@@ -44933,10 +44943,12 @@
44933
44943
  this.dataNavigator.widget.maxResults = nv;
44934
44944
  this.dataNavigator.maxResults = nv;
44935
44945
  } else if (key === "enablereorder") {
44936
- if (nv) {
44946
+ if (nv && this.$ulEle) {
44947
+ this.$ulEle.attr("aria-describedby", this.titleId);
44937
44948
  this.configureDnD();
44938
44949
  this.$ulEle.sortable("enable");
44939
44950
  } else if (this.$ulEle && !nv) {
44951
+ this.$ulEle.removeAttr("aria-describedby");
44940
44952
  this.$ulEle.sortable("disable");
44941
44953
  }
44942
44954
  } else {
@@ -45090,9 +45102,18 @@
45090
45102
  _super.prototype.ngAfterViewInit.call(_this);
45091
45103
  _this.setUpCUDHandlers();
45092
45104
  _this.selectedItemWidgets = _this.multiselect ? [] : {};
45105
+ var ele = $(_this.nativeElement).find(".app-livelist-container");
45093
45106
  if (_this.enablereorder && !_this.groupby) {
45107
+ if (ele) {
45108
+ ele.attr("aria-describedby", _this.titleId);
45109
+ }
45094
45110
  _this.configureDnD();
45095
45111
  }
45112
+ if (!_this.enablereorder) {
45113
+ if (ele) {
45114
+ ele.removeAttr("aria-describedby");
45115
+ }
45116
+ }
45096
45117
  if (_this.groupby && _this.collapsible) {
45097
45118
  _this.handleHeaderClick = base.handleHeaderClick;
45098
45119
  _this.toggleAllHeaders = base.toggleAllHeaders.bind(undefined, _this);
@@ -45102,6 +45123,16 @@
45102
45123
  this.setupHandlers();
45103
45124
  var $ul = this.nativeElement.querySelector("ul.app-livelist-container");
45104
45125
  base.styler($ul, this, base.APPLY_STYLES_TYPE.SCROLLABLE_CONTAINER);
45126
+ if (this.enablereorder) {
45127
+ if ($ul) {
45128
+ $ul.setAttribute("aria-describedby", this.titleId);
45129
+ }
45130
+ }
45131
+ if (!this.enablereorder) {
45132
+ if ($ul) {
45133
+ $ul.removeAttribute("aria-describedby");
45134
+ }
45135
+ }
45105
45136
  if (core.isMobileApp() && $ul.querySelector(".app-list-item-action-panel")) {
45106
45137
  this._listAnimator = new ListAnimator(this);
45107
45138
  }
@@ -45126,7 +45157,7 @@
45126
45157
  type: core$1.Component,
45127
45158
  args: [ {
45128
45159
  selector: "div[wmList]",
45129
- template: '<div class="panel-heading" *ngIf="title || subheading || iconclass">\n <h3 class="panel-title">\n <div class="pull-left">\n <i class="app-icon panel-icon {{iconclass}}" aria-hidden="true" [hidden]="!iconclass"></i>\n </div>\n <div class="pull-left">\n <div class="heading" [innerHTML]="title"></div>\n <div class="description" [innerHTML]="subheading"></div>\n </div>\n </h3>\n</div>\n\n<nav class="app-datanavigator" [attr.aria-disabled]="dataNavigator.isDisablePrevious" aria-label="Page navigation" *ngIf="navigation === \'Inline\' && !noDataFound">\n <ul class="pager">\n <li class="previous" [ngClass]="{\'disabled\': (dataNavigator ? dataNavigator.isDisablePrevious : true)}">\n <a href="javascript:void(0);" (click)="dataNavigator.navigatePage(\'prev\', $event)"\n [attr.aria-disabled]="dataNavigator.isDisablePrevious">\n <i class="wi wi-chevron-left" aria-hidden="true"></i>\n <span class="sr-only">Go to Previous page {{dataNavigator.isDisablePrevious ? \', Disabled\' : \'\'}}</span>\n </a>\n </li>\n </ul>\n</nav>\n<div *ngIf="navigation === \'Inline\' && !noDataFound" aria-live="polite" aria-atomic="true" class="sr-only"> {{\'Page \' + dataNavigator.dn.currentPage + \' of \' + dataNavigator.pageCount }}</div>\n\n<div>\n <div id={{titleId}} class="sr-only" *ngIf="enablereorder">\n Press space bar to toggle drag drop mode, use arrow keys to move selected elements.\n </div>\n\n <div aria-live="assertive" *ngIf="listItems && enablereorder && currentIndex" class="sr-only" >\n {{ariaText + currentIndex + \' of \' + listItems.length}}\n </div>\n</div>\n\n<ul [attr.tabindex]="tabindex" [attr.aria-describedby] = "titleId" class="app-livelist-container clearfix {{direction === \'horizontal\' ? \'app-horizontal-list\': \'\'}} {{listclass}}" role="list"\n (keydown.enter)="handleKeyDown($event, \'select\')"\n\n (keydown.space)="handleKeyDown($event, \'space\')"\n\n (keydown.arrowup)="handleKeyDown($event, \'focusPrev\')"\n (keydown.arrowdown)="handleKeyDown($event, \'focusNext\')"\n (keydown.arrowleft)="handleKeyDown($event, \'focusPrev\')"\n (keydown.arrowright)="handleKeyDown($event, \'focusNext\')"\n\n (keydown.shift.arrowup)="handleKeyDown($event, \'selectPrev\')"\n (keydown.shift.arrowdown)="handleKeyDown($event, \'selectNext\')"\n (keydown.shift.arrowleft)="handleKeyDown($event, \'selectPrev\')"\n (keydown.shift.arrowright)="handleKeyDown($event, \'selectNext\')"\n [hidden]="noDataFound && !variableInflight"\n>\n <ng-template [ngIf]="!groupby" [ngIfElse]="groupedListTemplate">\n <li *ngFor="let item of fieldDefs; index as $index; first as $first; last as $last;" class="app-list-item {{direction === \'horizontal\' ? \'\' : itemsPerRowClass}}" [ngClass]="listItemRef.itemClass"\n [wmListItem]="item"\n #listItemRef="listItemRef"\n [attr.tabindex]="tabindex"\n role="listitem">\n <ng-container [ngTemplateOutlet]="listTemplate" [ngTemplateOutletContext]="{item: item, $index: $index, itemRef: listItemRef, $first: $first, $last: $last, currentItemWidgets: listItemRef.currentItemWidgets}"></ng-container>\n </li>\n </ng-template>\n <ng-container [ngTemplateOutlet]="listLeftActionTemplate"></ng-container>\n <ng-container [ngTemplateOutlet]="listRightActionTemplate"></ng-container>\n</ul>\n\n<div class="no-data-msg" *ngIf="noDataFound && !variableInflight" [textContent]="nodatamessage"></div>\n\n<div class="loading-data-msg" *ngIf="variableInflight && !pulltorefresh">\n <span>\n <i class="app-icon panel-icon fa-spin" aria-hidden="true" [ngClass]="loadingicon"></i>\n <span class="sr-only">Loading</span>\n <span class="loading-text" [textContent]="loadingdatamsg"></span>\n </span>\n</div>\n\n<nav class="app-datanavigator" [attr.aria-disabled]="dataNavigator.isDisableNext" *ngIf="navigation === \'Inline\' && !noDataFound">\n <ul class="pager">\n <li class="next" [ngClass]="{\'disabled\': (dataNavigator ? dataNavigator.isDisableNext : true)}">\n <a href="javascript:void(0);" (click)="dataNavigator.navigatePage(\'next\', $event)"\n [attr.aria-disabled]="dataNavigator.isDisableNext">\n <i class="wi wi-chevron-right" aria-hidden="true"></i>\n <span class="sr-only">Go to Next page {{dataNavigator.isDisableNext ? \', Disabled\' : \'\'}}</span>\n </a>\n </li>\n </ul>\n</nav>\n\n<div class="panel-footer" *ngIf="navigation !== \'None\'" [hidden]="!showNavigation || (onDemandLoad && dataNavigator.isDisableNext) || (dataNavigator.dataSize <= pagesize) || (!dataNavigator.dataSize && !dataNavigator.datasource?.pagination?.next)">\n <nav wmPagination\n navigationalign.bind="navigationalign"\n navigation.bind="navControls"\n showrecordcount.bind="showrecordcount"\n maxsize.bind="maxsize"\n boundarylinks.bind="boundarylinks"\n forceellipses.bind="forceellipses"\n directionlinks.bind="directionlinks"\n show.bind="!onDemandLoad"\n paginationchange.event="beforePaginationChange($event, $index)"\n ></nav>\n <a *ngIf="onDemandLoad" href="javascript:void(0);"\n (click)="dataNavigator.navigatePage(\'next\', $event)"\n class="app-button btn btn-block"\n [ngClass]="paginationclass"\n [textContent]="ondemandmessage"\n ></a>\n</div>\n\n\x3c!--This template will be displayed when groupby is specified--\x3e\n<ng-template #groupedListTemplate>\n <li *ngFor="let groupObj of groupedData" class="app-list-item-group clearfix">\n <ul [attr.tabindex]="tabindex" class="list-group item-group" [ngClass]="listclass">\n <li class="app-list-item-header list-item list-group-header" (click)="handleHeaderClick($event)" [ngClass]="{\'collapsible-content\': collapsible}">\n <h4>{{groupObj.key}}\n <div class="header-action">\n <i class="app-icon wi action wi-chevron-up" *ngIf="collapsible"></i>\n <span *ngIf="showcount" class="label label-default">{{groupObj.data.length}}</span>\n </div>\n </h4>\n </li>\n <ul class="list-group clearfix {{direction === \'horizontal\' ? \'app-horizontal-list\': \'\'}}">\n <li *ngFor="let item of groupObj.data; index as $index; first as $first; last as $last;" [attr.tabindex]="tabindex"\n class="app-list-item group-list-item {{itemsPerRowClass}}"\n [ngClass]="listItemRef.itemClass"\n [wmListItem]="item" #listItemRef="listItemRef">\n <ng-container [ngTemplateOutlet]="listTemplate" [ngTemplateOutletContext]="{item: item, $index: $index, itemRef: listItemRef, $first: $first, $last: $last, currentItemWidgets: listItemRef.currentItemWidgets}"></ng-container>\n </li>\n </ul>\n </ul>\n </li>\n</ng-template>\n',
45160
+ 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',
45130
45161
  providers: [ base.provideAsWidgetRef(ListComponent) ]
45131
45162
  } ]
45132
45163
  } ];
@@ -71551,11 +71582,11 @@
71551
71582
  }
71552
71583
  };
71553
71584
  NotificationActionManager.prototype.notifyViaDialog = function(variable, options) {
71554
- var commonPageDialogId = "Common" + _.capitalize(variable.operation) + "Dialog", variableOwner = variable.owner, dialogId = variableOwner === VARIABLE_CONSTANTS.OWNER.APP ? commonPageDialogId : "notification" + variable.operation + "dialog";
71585
+ var commonPageDialogId = "Common" + _.capitalize(variable.operation) + "Dialog", dialogId = commonPageDialogId;
71555
71586
  var closeCallBackFn = function() {
71556
71587
  return initiateCallback("onOk", variable, options.data);
71557
71588
  };
71558
- exports.dialogService.open(dialogId, variable._context, {
71589
+ exports.dialogService.open(dialogId, undefined, {
71559
71590
  notification: {
71560
71591
  title: options.title || variable.dataBinding.title,
71561
71592
  text: options.message || variable.dataBinding.text,
@@ -71563,11 +71594,11 @@
71563
71594
  cancelButtonText: options.cancelButtonText || variable.dataBinding.cancelButtonText || "CANCEL",
71564
71595
  alerttype: options.alerttype || variable.dataBinding.alerttype || "information",
71565
71596
  onOk: function() {
71566
- exports.dialogService.close(dialogId, variable._context, closeCallBackFn);
71597
+ exports.dialogService.close(dialogId, undefined, closeCallBackFn);
71567
71598
  },
71568
71599
  onCancel: function() {
71569
71600
  initiateCallback("onCancel", variable, options.data);
71570
- exports.dialogService.close(dialogId, variable._context);
71601
+ exports.dialogService.close(dialogId, undefined);
71571
71602
  },
71572
71603
  onClose: function() {
71573
71604
  initiateCallback("onClose", variable, options.data);
@@ -73002,6 +73033,13 @@
73002
73033
  type: core.AbstractHttpService
73003
73034
  } ];
73004
73035
  };
73036
+ var Formatter = function() {
73037
+ function Formatter() {}
73038
+ Formatter.prototype.format = function(value, format) {
73039
+ return exports.appManager.getPipe("date").transform(value, format);
73040
+ };
73041
+ return Formatter;
73042
+ }();
73005
73043
  var VariablesService = function() {
73006
73044
  function VariablesService(httpService, metadataService, navigationService, routerService, toasterService, oAuthService, securityService, dialogService) {
73007
73045
  this.httpService = httpService;
@@ -73108,6 +73146,7 @@
73108
73146
  if (this.isVariableSeperated(variablesJson, variableName)) {
73109
73147
  this.processBinding(varInstance, scope, "dataBinding", this.getBindSourceTarget(varInstance));
73110
73148
  varInstance.httpService = this.httpService;
73149
+ varInstance.dateFormatter = new Formatter;
73111
73150
  varInstance.subscribe("afterInvoke", (function() {
73112
73151
  return core.$invokeWatchers(true);
73113
73152
  }));
@@ -73197,6 +73236,7 @@
73197
73236
  exports.DB_CONSTANTS = DB_CONSTANTS;
73198
73237
  exports.DeviceVariableManager = DeviceVariableManager;
73199
73238
  exports.DeviceVariableService = DeviceVariableService;
73239
+ exports.Formatter = Formatter;
73200
73240
  exports.MetadataService = MetadataService;
73201
73241
  exports.SWAGGER_CONSTANTS = SWAGGER_CONSTANTS;
73202
73242
  exports.VARIABLE_CONSTANTS = VARIABLE_CONSTANTS;