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

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,11 +8973,9 @@
8973
8973
  });
8974
8974
  };
8975
8975
  var getKeyboardFocusableElements = function(element) {
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
- }));
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];
8981
8979
  };
8982
8980
  exports.APPLY_STYLES_TYPE = void 0;
8983
8981
  (function(APPLY_STYLES_TYPE) {
@@ -13442,19 +13440,21 @@
13442
13440
  __proto__: null,
13443
13441
  default: search_build
13444
13442
  });
13445
- var tagName$1o = "ul";
13443
+ var tagName$1o = "div";
13446
13444
  transpiler.register("wm-tree", (function() {
13447
13445
  return {
13448
13446
  pre: function(attrs) {
13449
- return "<" + tagName$1o + ' wmTree class="ztree" ' + transpiler.getAttrMarkup(attrs) + ">";
13447
+ return "<" + tagName$1o + " wmTree " + transpiler.getAttrMarkup(attrs) + ">";
13450
13448
  },
13451
13449
  post: function() {
13452
13450
  return "</" + tagName$1o + ">";
13453
13451
  }
13454
13452
  };
13455
13453
  }));
13456
- var tree_build = Object.freeze({
13457
- __proto__: null
13454
+ var tree_build = function() {};
13455
+ var tree_build$1 = Object.freeze({
13456
+ __proto__: null,
13457
+ default: tree_build
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 + '><div tabindex="0" class="popover-start sr-only" aria-label="">popover content start</div>';
15063
+ markup += "<ng-template " + contextAttrs + '><button class="popover-start"></button>';
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 + '<div tabindex="0" class="popover-end sr-only" aria-label="">popover content ended</div></ng-template></' + tagName$q + ">";
15074
+ return markup + '<button class="popover-end"></button></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;
16438
+ exports.treeBuild = tree_build$1;
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")) : 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,
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,
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));
22787
- })(this, (function(exports, core, common, base) {
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) {
22788
22788
  "use strict";
22789
22789
  /*! *****************************************************************************
22790
22790
  Copyright (c) Microsoft Corporation.
@@ -23161,344 +23161,352 @@
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
+ };
23164
23195
  var WIDGET_INFO = {
23165
23196
  widgetType: "wm-tree",
23166
23197
  hostClass: "app-tree"
23167
23198
  };
23168
- var defaultTreeIconClass = "plus-minus";
23169
- var TreeComponent = function(_super) {
23170
- __extends(TreeComponent, _super);
23171
- function TreeComponent(inj) {
23199
+ var TreeDirective = function(_super) {
23200
+ __extends(TreeDirective, _super);
23201
+ function TreeDirective(inj, binddatavalue, bindnodelabel, bindnodeicon, bindnodechildren, bindnodeid) {
23172
23202
  var _this = _super.call(this, inj, WIDGET_INFO) || this;
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
- };
23203
+ _this.binddatavalue = binddatavalue;
23204
+ _this.bindnodelabel = bindnodelabel;
23205
+ _this.bindnodeicon = bindnodeicon;
23206
+ _this.bindnodechildren = bindnodechildren;
23207
+ _this.bindnodeid = bindnodeid;
23189
23208
  base.styler(_this.nativeElement, _this, base.APPLY_STYLES_TYPE.CONTAINER);
23209
+ _this.bindEvents();
23190
23210
  return _this;
23191
23211
  }
23192
- TreeComponent.prototype.onPropertyChange = function(key, nv, ov) {
23212
+ TreeDirective.prototype.onPropertyChange = function(key, nv, ov) {
23193
23213
  switch (key) {
23194
23214
  case "dataset":
23195
23215
  this.nodes = this.getNodes(nv);
23196
- if (this.level > 0) {
23197
- this.expandTree(this.level, this.nodes, 0);
23198
- }
23216
+ this._selectNode = undefined;
23199
23217
  this.renderTree();
23200
23218
  break;
23201
23219
 
23202
- case "levels":
23203
- if (nv > 0) {
23204
- this.level = nv;
23205
- }
23206
- break;
23207
-
23208
- case "treeicons":
23209
- this.treeicon = nv;
23210
- break;
23211
-
23220
+ case "nodeicon":
23212
23221
  case "nodelabel":
23213
- this.nodelabel = nv;
23214
- break;
23215
-
23216
- case "icon":
23217
- this.nodeicon = nv;
23218
-
23222
+ case "nodechildren":
23219
23223
  case "orderby":
23220
23224
  this.renderTree();
23221
23225
  break;
23222
23226
 
23223
- case "class":
23224
- this.treeClass = nv;
23227
+ case "treeicons":
23228
+ this.changeTreeIcons(nv, ov);
23229
+ break;
23230
+
23231
+ case "datavalue":
23232
+ this.selectById(nv);
23225
23233
  break;
23226
23234
 
23227
23235
  default:
23228
23236
  _super.prototype.onPropertyChange.call(this, key, nv, ov);
23229
- break;
23230
23237
  }
23231
23238
  };
23232
- TreeComponent.prototype.expandTree = function(level, node, childLevel) {
23239
+ TreeDirective.prototype.constructNodes = function(nodes, parent, levels, deep, _evalDataValue) {
23233
23240
  var _this = this;
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);
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);
23238
23294
  } else {
23239
- childLevel = 0;
23240
- return;
23295
+ if (!nodeIcon) {
23296
+ $iconNode.addClass("leaf-node");
23297
+ }
23298
+ $li.addClass("leaf-node");
23241
23299
  }
23242
23300
  }));
23243
23301
  };
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) {
23302
+ TreeDirective.prototype.getNodesFromString = function(value) {
23257
23303
  return value.split(",").map((function(item) {
23258
23304
  return {
23259
- name: item && item.trim()
23305
+ label: item && item.trim()
23260
23306
  };
23261
23307
  }));
23262
23308
  };
23263
- TreeComponent.prototype.getNodes = function(newVal) {
23309
+ TreeDirective.prototype.getNodes = function(newVal) {
23264
23310
  var nodes;
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)) {
23311
+ if (_.isString(newVal) && !_.isEmpty(newVal)) {
23270
23312
  newVal = newVal.trim();
23271
23313
  if (newVal) {
23272
23314
  nodes = this.getNodesFromString(newVal);
23273
23315
  }
23316
+ } else if (_.isArray(newVal)) {
23317
+ newVal = base.getOrderedDataset(newVal, this.orderby);
23318
+ nodes = newVal;
23319
+ } else if (_.isObject(newVal)) {
23320
+ nodes = [ newVal ];
23274
23321
  }
23275
23322
  return nodes;
23276
23323
  };
23277
- TreeComponent.prototype.setNodeclasses = function(treeId, treeNode) {
23278
- return treeNode.icon ? {
23279
- add: [ "" + treeNode.icon ]
23280
- } : "";
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
+ }
23281
23353
  };
23282
- TreeComponent.prototype.setNodeData = function(nodes, depth, level, parentNode, type) {
23354
+ TreeDirective.prototype.renderTree = function(forceRender) {
23283
23355
  var _this = this;
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
- }
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);
23314
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();
23315
23388
  }
23316
23389
  };
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;
23331
- } else {
23332
- path = this.getPath(treeNode.getParentNode(), path) + "/" + treeNode.name;
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;
23333
23397
  }
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,
23342
- $path: path
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
- }));
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) || {};
23364
23420
  }
23365
- })) : "";
23366
- };
23367
- TreeComponent.prototype.onCollapse = function(event, treeId, treeNode) {
23368
- var path = this.getPath(treeNode, "");
23369
- var eventParams = {
23370
- $event: event,
23371
- $item: treeNode,
23421
+ } else {
23422
+ this.datavalue = value;
23423
+ }
23424
+ if (nodeAction) {
23425
+ core.$parseEvent(nodeAction)(this);
23426
+ }
23427
+ this.invokeEventCallback("select", {
23428
+ $event: evt,
23429
+ $item: data,
23372
23430
  $path: path
23373
- };
23374
- this.invokeEventCallback("collapse", eventParams);
23431
+ });
23432
+ core.$appDigest();
23375
23433
  };
23376
- TreeComponent.prototype.modifyObjects = function(array) {
23434
+ TreeDirective.prototype.bindEvents = function() {
23377
23435
  var _this = this;
23378
- array.forEach((function(obj) {
23379
- if (obj.label !== undefined) {
23380
- obj.name = obj.label;
23381
- delete obj.label;
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);
23382
23442
  }
23383
- if (obj.children !== undefined) {
23384
- _this.modifyObjects(obj.children);
23443
+ if (target.is("i") || target.is("span.title") && _this.nodeclick === "expand") {
23444
+ _this.toggleExpandCollapseNode(evt, $i, li);
23385
23445
  }
23386
23446
  }));
23387
- return array;
23388
23447
  };
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;
23448
+ TreeDirective.prototype.findSelectedNodeParent = function($li) {
23449
+ return $li.find("> span.title").parents(".app-tree li");
23413
23450
  };
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;
23451
+ TreeDirective.prototype.selectById = function(value) {
23452
+ this.selectNode(undefined, value);
23437
23453
  };
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);
23454
+ TreeDirective.prototype.deselectById = function(value) {
23455
+ this.selecteditem = {};
23456
+ this.selectById();
23471
23457
  };
23472
- TreeComponent.prototype.ngAfterViewInit = function() {
23473
- var _this = this;
23474
- setTimeout((function() {
23475
- _this.changeTreeIcons(_this.treeicon || defaultTreeIconClass);
23476
- }), 200);
23477
- };
23478
- return TreeComponent;
23458
+ return TreeDirective;
23479
23459
  }(base.StylableComponent);
23480
- TreeComponent.initializeProps = registerProps();
23481
- TreeComponent.decorators = [ {
23482
- type: core.Component,
23460
+ TreeDirective.initializeProps = registerProps();
23461
+ TreeDirective.decorators = [ {
23462
+ type: core$1.Directive,
23483
23463
  args: [ {
23484
- selector: "ul[wmTree]",
23485
- template: '<ul #wmTree class="ztree" id="ztree"></ul> ',
23486
- providers: [ base.provideAsWidgetRef(TreeComponent) ],
23487
- encapsulation: core.ViewEncapsulation.None
23464
+ selector: "div[wmTree]",
23465
+ providers: [ base.provideAsWidgetRef(TreeDirective) ]
23488
23466
  } ]
23489
23467
  } ];
23490
- TreeComponent.ctorParameters = function() {
23468
+ TreeDirective.ctorParameters = function() {
23491
23469
  return [ {
23492
- type: core.Injector
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
+ } ]
23493
23501
  } ];
23494
23502
  };
23495
- var components = [ TreeComponent ];
23503
+ var components = [ TreeDirective ];
23496
23504
  var TreeModule = function() {
23497
23505
  function TreeModule() {}
23498
23506
  return TreeModule;
23499
23507
  }();
23500
23508
  TreeModule.decorators = [ {
23501
- type: core.NgModule,
23509
+ type: core$1.NgModule,
23502
23510
  args: [ {
23503
23511
  imports: [ common.CommonModule, base.WmComponentsModule ],
23504
23512
  declarations: __spreadArray([], __read(components)),
@@ -23506,7 +23514,7 @@
23506
23514
  entryComponents: []
23507
23515
  } ]
23508
23516
  } ];
23509
- exports.TreeComponent = TreeComponent;
23517
+ exports.TreeDirective = TreeDirective;
23510
23518
  exports.TreeModule = TreeModule;
23511
23519
  exports["\u0275a"] = registerProps;
23512
23520
  Object.defineProperty(exports, "__esModule", {
@@ -27406,18 +27414,14 @@
27406
27414
  var newDay = newDate.getDate().toString();
27407
27415
  _.filter($("span:contains(" + newDay + ")").not(".is-other-month"), (function(obj) {
27408
27416
  if ($(obj).text() === newDay) {
27409
- if ($(obj).hasClass("selected")) {
27410
- $(obj).parent().attr("aria-selected", "true");
27411
- }
27412
27417
  $(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");
27415
27418
  $(obj).focus();
27416
27419
  _this.activeDate = newDate;
27417
27420
  }
27418
27421
  }));
27419
27422
  if (newDate.getMonth() === (new Date).getMonth() && newDate.getFullYear() === (new Date).getFullYear()) {
27420
27423
  _this.hightlightToday();
27424
+ $("span:contains(" + (new Date).getDate().toString() + ")").not(".is-other-month").parent().attr("aria-selected", "true");
27421
27425
  }
27422
27426
  }));
27423
27427
  };
@@ -27459,9 +27463,6 @@
27459
27463
  if (event.originalEvent) {
27460
27464
  _this.setFocusForDate(-1);
27461
27465
  }
27462
- setTimeout((function() {
27463
- $(".bs-datepicker-head .previous").focus();
27464
- }));
27465
27466
  }));
27466
27467
  datePickerHead.find(".next").click((function(event) {
27467
27468
  _this.next = _this.getMonth(_this.activeDate, 2);
@@ -27470,9 +27471,6 @@
27470
27471
  if (event.originalEvent) {
27471
27472
  _this.setFocusForDate(1);
27472
27473
  }
27473
- setTimeout((function() {
27474
- $(".bs-datepicker-head .next").focus();
27475
- }));
27476
27474
  }));
27477
27475
  datePickerHead.find(".current").click((function(event) {
27478
27476
  if (event.originalEvent) {
@@ -27487,19 +27485,6 @@
27487
27485
  }));
27488
27486
  datePickerHead.find(".next").attr("aria-label", "Next Month, " + this.next.fullMonth + " " + this.next.date.getFullYear());
27489
27487
  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
- }));
27503
27488
  };
27504
27489
  BaseDateTimeComponent.prototype.setFocusForMonthOrDay = function() {
27505
27490
  var activeMonthOrYear = $(".bs-datepicker-head .current").first().text();
@@ -27635,6 +27620,8 @@
27635
27620
  BaseDateTimeComponent.prototype.loadMonths = function() {
27636
27621
  var _this = this;
27637
27622
  setTimeout((function() {
27623
+ var datePickerBody = $(".bs-datepicker-body");
27624
+ datePickerBody.find("table.months span").attr("tabindex", "0");
27638
27625
  _this.addKeyBoardEventsForMonths();
27639
27626
  _this.addDatepickerMouseEvents();
27640
27627
  }));
@@ -27677,6 +27664,8 @@
27677
27664
  BaseDateTimeComponent.prototype.loadYears = function() {
27678
27665
  var _this = this;
27679
27666
  setTimeout((function() {
27667
+ var datePickerBody = $(".bs-datepicker-body");
27668
+ datePickerBody.find("table.years span").attr("tabindex", "0");
27680
27669
  _this.addKeyBoardEventsForYears();
27681
27670
  _this.addDatepickerMouseEvents();
27682
27671
  }));
@@ -27693,8 +27682,6 @@
27693
27682
  }
27694
27683
  }
27695
27684
  setTimeout((function() {
27696
- $(".bs-datepicker-body table.months span").attr("tabindex", "-1");
27697
- $(".bs-datepicker-body table.months span:contains(" + newMonth + ")").attr("tabindex", "0");
27698
27685
  $(".bs-datepicker-body table.months span:contains(" + newMonth + ")").focus();
27699
27686
  _this.activeDate = newDate;
27700
27687
  }));
@@ -27743,8 +27730,6 @@
27743
27730
  }
27744
27731
  }
27745
27732
  setTimeout((function() {
27746
- $(".bs-datepicker-body table.years span").attr("tabindex", "-1");
27747
- $(".bs-datepicker-body table.years span:contains(" + newYear + ")").attr("tabindex", "0");
27748
27733
  $(".bs-datepicker-body table.years span:contains(" + newYear + ")").focus();
27749
27734
  _this.activeDate = newDate;
27750
27735
  }));
@@ -27911,6 +27896,11 @@
27911
27896
  children[i].classList.remove("add-opacity");
27912
27897
  }
27913
27898
  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");
27914
27904
  }
27915
27905
  };
27916
27906
  BaseDateTimeComponent.prototype.onDateTimeInputFocus = function(skipFocus) {
@@ -27927,6 +27917,11 @@
27927
27917
  children[i].classList.add("add-opacity");
27928
27918
  }
27929
27919
  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);
27930
27925
  return;
27931
27926
  }
27932
27927
  if (displayInputElem && this._triggeredByUser) {
@@ -28009,10 +28004,7 @@
28009
28004
  this.isReadOnly = this.dataentrymode != "undefined" && !this.isDataEntryModeEnabledOnInput(this.dataentrymode);
28010
28005
  var mobileInput = this.getMobileInput();
28011
28006
  if (mobileInput) {
28012
- setTimeout((function() {
28013
- mobileInput.style.width = "100%";
28014
- mobileInput.style.height = "100%";
28015
- }));
28007
+ mobileInput.style.width = mobileInput.parentElement.clientWidth + "px";
28016
28008
  }
28017
28009
  };
28018
28010
  BaseDateTimeComponent.prototype.ngOnDestroy = function() {
@@ -28275,7 +28267,7 @@
28275
28267
  if (this.isDropDownDisplayEnabledOnInput(this.showdropdownon)) {
28276
28268
  event.stopPropagation();
28277
28269
  var action = this.keyEventPlugin.constructor.getEventFullKey(event);
28278
- if (action === "enter") {
28270
+ if (action === "enter" || action === "arrowdown") {
28279
28271
  var newVal = core$1.getDateObj(event.target.value, {
28280
28272
  pattern: this.datepattern
28281
28273
  });
@@ -28317,7 +28309,7 @@
28317
28309
  type: core.Component,
28318
28310
  args: [ {
28319
28311
  selector: "[wmDate]",
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',
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',
28321
28313
  providers: [ base.provideAs(DateComponent, forms.NG_VALUE_ACCESSOR, true), base.provideAs(DateComponent, forms.NG_VALIDATORS, true), base.provideAsWidgetRef(DateComponent) ]
28322
28314
  } ]
28323
28315
  } ];
@@ -28769,7 +28761,7 @@
28769
28761
  type: core.Component,
28770
28762
  args: [ {
28771
28763
  selector: "[wmDateTime]",
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',
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',
28773
28765
  providers: [ base.provideAs(DatetimeComponent, forms.NG_VALUE_ACCESSOR, true), base.provideAs(DatetimeComponent, forms.NG_VALIDATORS, true), base.provideAsWidgetRef(DatetimeComponent), {
28774
28766
  provide: timepicker.TimepickerConfig,
28775
28767
  deps: [ core$1.AbstractI18nService ],
@@ -35741,9 +35733,6 @@
35741
35733
  return _this.hidePopover();
35742
35734
  };
35743
35735
  }
35744
- setTimeout((function() {
35745
- _this.anchorRef.nativeElement.removeAttribute("aria-describedby");
35746
- }));
35747
35736
  var deRegister = this.eventManager.addEventListener(popoverContainer, "keydown.esc", (function() {
35748
35737
  _this.isOpen = false;
35749
35738
  _this.setFocusToPopoverLink();
@@ -35751,6 +35740,8 @@
35751
35740
  }));
35752
35741
  var popoverStartBtn = popoverContainer.querySelector(".popover-start");
35753
35742
  var popoverEndBtn = popoverContainer.querySelector(".popover-end");
35743
+ popoverStartBtn.setAttribute("aria-hidden", "true");
35744
+ popoverEndBtn.setAttribute("aria-hidden", "true");
35754
35745
  popoverStartBtn.onkeydown = function(event) {
35755
35746
  var action = _this.keyEventPlugin.constructor.getEventFullKey(event);
35756
35747
  if (action === "shift.tab") {
@@ -35774,6 +35765,7 @@
35774
35765
  return _this.close();
35775
35766
  };
35776
35767
  }
35768
+ core.setAttr(popoverContainer, "tabindex", 0);
35777
35769
  setTimeout((function() {
35778
35770
  return popoverStartBtn.focus();
35779
35771
  }), 50);
@@ -44697,9 +44689,9 @@
44697
44689
  }
44698
44690
  }
44699
44691
  };
44700
- ListComponent.prototype.onUpdate = function(evt, ui, presentIndex) {
44692
+ ListComponent.prototype.onUpdate = function(evt, ui) {
44701
44693
  var data = this.fieldDefs;
44702
- var newIndex = ui === undefined ? presentIndex : ui.item.index();
44694
+ var newIndex = ui.item.index();
44703
44695
  var oldIndex = this.$ulEle.data("oldIndex");
44704
44696
  var minIndex = _.min([ newIndex, oldIndex ]);
44705
44697
  var maxIndex = _.max([ newIndex, oldIndex ]);
@@ -44895,10 +44887,8 @@
44895
44887
  this.currentIndex = presentIndex + 1;
44896
44888
  if (this.isListElementMovable) {
44897
44889
  this.ariaText = "Item " + this.currentIndex + " grabbed, current position ";
44898
- this.$ulEle.data("oldIndex", presentIndex);
44899
44890
  } else {
44900
44891
  this.ariaText = "Item " + this.currentIndex + " dropped, final position ";
44901
- this.onUpdate($event, undefined, presentIndex);
44902
44892
  }
44903
44893
  }
44904
44894
  };
@@ -44943,12 +44933,10 @@
44943
44933
  this.dataNavigator.widget.maxResults = nv;
44944
44934
  this.dataNavigator.maxResults = nv;
44945
44935
  } else if (key === "enablereorder") {
44946
- if (nv && this.$ulEle) {
44947
- this.$ulEle.attr("aria-describedby", this.titleId);
44936
+ if (nv) {
44948
44937
  this.configureDnD();
44949
44938
  this.$ulEle.sortable("enable");
44950
44939
  } else if (this.$ulEle && !nv) {
44951
- this.$ulEle.removeAttr("aria-describedby");
44952
44940
  this.$ulEle.sortable("disable");
44953
44941
  }
44954
44942
  } else {
@@ -45102,18 +45090,9 @@
45102
45090
  _super.prototype.ngAfterViewInit.call(_this);
45103
45091
  _this.setUpCUDHandlers();
45104
45092
  _this.selectedItemWidgets = _this.multiselect ? [] : {};
45105
- var ele = $(_this.nativeElement).find(".app-livelist-container");
45106
45093
  if (_this.enablereorder && !_this.groupby) {
45107
- if (ele) {
45108
- ele.attr("aria-describedby", _this.titleId);
45109
- }
45110
45094
  _this.configureDnD();
45111
45095
  }
45112
- if (!_this.enablereorder) {
45113
- if (ele) {
45114
- ele.removeAttr("aria-describedby");
45115
- }
45116
- }
45117
45096
  if (_this.groupby && _this.collapsible) {
45118
45097
  _this.handleHeaderClick = base.handleHeaderClick;
45119
45098
  _this.toggleAllHeaders = base.toggleAllHeaders.bind(undefined, _this);
@@ -45123,16 +45102,6 @@
45123
45102
  this.setupHandlers();
45124
45103
  var $ul = this.nativeElement.querySelector("ul.app-livelist-container");
45125
45104
  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
- }
45136
45105
  if (core.isMobileApp() && $ul.querySelector(".app-list-item-action-panel")) {
45137
45106
  this._listAnimator = new ListAnimator(this);
45138
45107
  }
@@ -45157,7 +45126,7 @@
45157
45126
  type: core$1.Component,
45158
45127
  args: [ {
45159
45128
  selector: "div[wmList]",
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',
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',
45161
45130
  providers: [ base.provideAsWidgetRef(ListComponent) ]
45162
45131
  } ]
45163
45132
  } ];
@@ -71582,11 +71551,11 @@
71582
71551
  }
71583
71552
  };
71584
71553
  NotificationActionManager.prototype.notifyViaDialog = function(variable, options) {
71585
- var commonPageDialogId = "Common" + _.capitalize(variable.operation) + "Dialog", dialogId = commonPageDialogId;
71554
+ var commonPageDialogId = "Common" + _.capitalize(variable.operation) + "Dialog", variableOwner = variable.owner, dialogId = variableOwner === VARIABLE_CONSTANTS.OWNER.APP ? commonPageDialogId : "notification" + variable.operation + "dialog";
71586
71555
  var closeCallBackFn = function() {
71587
71556
  return initiateCallback("onOk", variable, options.data);
71588
71557
  };
71589
- exports.dialogService.open(dialogId, undefined, {
71558
+ exports.dialogService.open(dialogId, variable._context, {
71590
71559
  notification: {
71591
71560
  title: options.title || variable.dataBinding.title,
71592
71561
  text: options.message || variable.dataBinding.text,
@@ -71594,11 +71563,11 @@
71594
71563
  cancelButtonText: options.cancelButtonText || variable.dataBinding.cancelButtonText || "CANCEL",
71595
71564
  alerttype: options.alerttype || variable.dataBinding.alerttype || "information",
71596
71565
  onOk: function() {
71597
- exports.dialogService.close(dialogId, undefined, closeCallBackFn);
71566
+ exports.dialogService.close(dialogId, variable._context, closeCallBackFn);
71598
71567
  },
71599
71568
  onCancel: function() {
71600
71569
  initiateCallback("onCancel", variable, options.data);
71601
- exports.dialogService.close(dialogId, undefined);
71570
+ exports.dialogService.close(dialogId, variable._context);
71602
71571
  },
71603
71572
  onClose: function() {
71604
71573
  initiateCallback("onClose", variable, options.data);
@@ -73033,13 +73002,6 @@
73033
73002
  type: core.AbstractHttpService
73034
73003
  } ];
73035
73004
  };
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
- }();
73043
73005
  var VariablesService = function() {
73044
73006
  function VariablesService(httpService, metadataService, navigationService, routerService, toasterService, oAuthService, securityService, dialogService) {
73045
73007
  this.httpService = httpService;
@@ -73146,7 +73108,6 @@
73146
73108
  if (this.isVariableSeperated(variablesJson, variableName)) {
73147
73109
  this.processBinding(varInstance, scope, "dataBinding", this.getBindSourceTarget(varInstance));
73148
73110
  varInstance.httpService = this.httpService;
73149
- varInstance.dateFormatter = new Formatter;
73150
73111
  varInstance.subscribe("afterInvoke", (function() {
73151
73112
  return core.$invokeWatchers(true);
73152
73113
  }));
@@ -73236,7 +73197,6 @@
73236
73197
  exports.DB_CONSTANTS = DB_CONSTANTS;
73237
73198
  exports.DeviceVariableManager = DeviceVariableManager;
73238
73199
  exports.DeviceVariableService = DeviceVariableService;
73239
- exports.Formatter = Formatter;
73240
73200
  exports.MetadataService = MetadataService;
73241
73201
  exports.SWAGGER_CONSTANTS = SWAGGER_CONSTANTS;
73242
73202
  exports.VARIABLE_CONSTANTS = VARIABLE_CONSTANTS;