@wavemaker/app-ng-runtime 11.4.0-next.25501 → 11.4.0-next.25701

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.
Files changed (145) hide show
  1. app-ng-runtime/build-task/basic/tree/tree.build.d.ts +1 -2
  2. app-ng-runtime/build-task/bundles/index.umd.js +9 -11
  3. app-ng-runtime/build-task/bundles/index.umd.js.map +1 -1
  4. app-ng-runtime/build-task/esm2015/basic/tree/tree.build.js +3 -4
  5. app-ng-runtime/build-task/esm2015/data/form/form-field/form-field.build.js +3 -3
  6. app-ng-runtime/build-task/esm2015/navigation/popover/popover.build.js +3 -3
  7. app-ng-runtime/build-task/fesm2015/index.js +9 -11
  8. app-ng-runtime/build-task/fesm2015/index.js.map +1 -1
  9. app-ng-runtime/components/base/bundles/index.umd.js +29 -4
  10. app-ng-runtime/components/base/bundles/index.umd.js.map +1 -1
  11. app-ng-runtime/components/base/esm2015/public_api.js +2 -2
  12. app-ng-runtime/components/base/esm2015/utils/widget-utils.js +22 -4
  13. app-ng-runtime/components/base/esm2015/widgets/common/base/base-field-validations.js +3 -2
  14. app-ng-runtime/components/base/esm2015/widgets/common/dialog/dialog.service.js +7 -1
  15. app-ng-runtime/components/base/fesm2015/index.js +30 -6
  16. app-ng-runtime/components/base/fesm2015/index.js.map +1 -1
  17. app-ng-runtime/components/base/index.metadata.json +1 -1
  18. app-ng-runtime/components/base/public_api.d.ts +1 -1
  19. app-ng-runtime/components/base/utils/widget-utils.d.ts +8 -1
  20. app-ng-runtime/components/basic/rich-text-editor/bundles/index.umd.js +2 -2
  21. app-ng-runtime/components/basic/rich-text-editor/bundles/index.umd.js.map +1 -1
  22. app-ng-runtime/components/basic/rich-text-editor/esm2015/rich-text-editor.component.js +3 -3
  23. app-ng-runtime/components/basic/rich-text-editor/fesm2015/index.js +2 -2
  24. app-ng-runtime/components/basic/rich-text-editor/fesm2015/index.js.map +1 -1
  25. app-ng-runtime/components/basic/tree/bundles/index.umd.js +280 -256
  26. app-ng-runtime/components/basic/tree/bundles/index.umd.js.map +1 -1
  27. app-ng-runtime/components/basic/tree/esm2015/public_api.js +2 -2
  28. app-ng-runtime/components/basic/tree/esm2015/tree.component.js +322 -0
  29. app-ng-runtime/components/basic/tree/esm2015/tree.module.js +3 -3
  30. app-ng-runtime/components/basic/tree/fesm2015/index.js +260 -248
  31. app-ng-runtime/components/basic/tree/fesm2015/index.js.map +1 -1
  32. app-ng-runtime/components/basic/tree/index.metadata.json +1 -1
  33. app-ng-runtime/components/basic/tree/public_api.d.ts +1 -1
  34. app-ng-runtime/components/basic/tree/tree.component.d.ts +34 -0
  35. app-ng-runtime/components/containers/tabs/bundles/index.umd.js +39 -23
  36. app-ng-runtime/components/containers/tabs/bundles/index.umd.js.map +1 -1
  37. app-ng-runtime/components/containers/tabs/esm2015/tab-pane/tab-pane.component.js +8 -1
  38. app-ng-runtime/components/containers/tabs/esm2015/tabs.animator.js +33 -13
  39. app-ng-runtime/components/containers/tabs/fesm2015/index.js +40 -13
  40. app-ng-runtime/components/containers/tabs/fesm2015/index.js.map +1 -1
  41. app-ng-runtime/components/containers/tabs/tabs.animator.d.ts +5 -1
  42. app-ng-runtime/components/data/form/bundles/index.umd.js +37 -13
  43. app-ng-runtime/components/data/form/bundles/index.umd.js.map +1 -1
  44. app-ng-runtime/components/data/form/esm2015/form-field/form-field.directive.js +26 -7
  45. app-ng-runtime/components/data/form/esm2015/form.component.js +10 -5
  46. app-ng-runtime/components/data/form/fesm2015/index.js +34 -10
  47. app-ng-runtime/components/data/form/fesm2015/index.js.map +1 -1
  48. app-ng-runtime/components/data/form/index.metadata.json +1 -1
  49. app-ng-runtime/components/data/list/bundles/index.umd.js +63 -48
  50. app-ng-runtime/components/data/list/bundles/index.umd.js.map +1 -1
  51. app-ng-runtime/components/data/list/esm2015/list.component.js +61 -46
  52. app-ng-runtime/components/data/list/fesm2015/index.js +60 -45
  53. app-ng-runtime/components/data/list/fesm2015/index.js.map +1 -1
  54. app-ng-runtime/components/data/list/index.metadata.json +1 -1
  55. app-ng-runtime/components/data/list/list.component.d.ts +1 -1
  56. app-ng-runtime/components/data/pagination/bundles/index.umd.js +22 -5
  57. app-ng-runtime/components/data/pagination/bundles/index.umd.js.map +1 -1
  58. app-ng-runtime/components/data/pagination/esm2015/pagination.component.js +23 -6
  59. app-ng-runtime/components/data/pagination/fesm2015/index.js +22 -5
  60. app-ng-runtime/components/data/pagination/fesm2015/index.js.map +1 -1
  61. app-ng-runtime/components/data/pagination/index.metadata.json +1 -1
  62. app-ng-runtime/components/data/pagination/pagination.component.d.ts +1 -0
  63. app-ng-runtime/components/data/table/bundles/index.umd.js +66 -13
  64. app-ng-runtime/components/data/table/bundles/index.umd.js.map +1 -1
  65. app-ng-runtime/components/data/table/esm2015/table-filter.directive.js +3 -2
  66. app-ng-runtime/components/data/table/esm2015/table.component.js +63 -13
  67. app-ng-runtime/components/data/table/esm2015/table.props.js +3 -1
  68. app-ng-runtime/components/data/table/fesm2015/index.js +66 -13
  69. app-ng-runtime/components/data/table/fesm2015/index.js.map +1 -1
  70. app-ng-runtime/components/data/table/index.metadata.json +1 -1
  71. app-ng-runtime/components/data/table/table.component.d.ts +9 -0
  72. app-ng-runtime/components/dialogs/default/base-dialog.d.ts +1 -0
  73. app-ng-runtime/components/dialogs/default/bundles/index.umd.js +17 -3
  74. app-ng-runtime/components/dialogs/default/bundles/index.umd.js.map +1 -1
  75. app-ng-runtime/components/dialogs/default/esm2015/base-dialog.js +18 -5
  76. app-ng-runtime/components/dialogs/default/fesm2015/index.js +17 -4
  77. app-ng-runtime/components/dialogs/default/fesm2015/index.js.map +1 -1
  78. app-ng-runtime/components/dialogs/default/index.metadata.json +1 -1
  79. app-ng-runtime/components/input/epoch/base-date-time.component.d.ts +5 -0
  80. app-ng-runtime/components/input/epoch/bundles/index.umd.js +97 -32
  81. app-ng-runtime/components/input/epoch/bundles/index.umd.js.map +1 -1
  82. app-ng-runtime/components/input/epoch/date-time/date-time-picker.component.d.ts +1 -0
  83. app-ng-runtime/components/input/epoch/esm2015/base-date-time.component.js +73 -26
  84. app-ng-runtime/components/input/epoch/esm2015/date/date.component.js +3 -4
  85. app-ng-runtime/components/input/epoch/esm2015/date-time/date-time-picker.component.js +31 -11
  86. app-ng-runtime/components/input/epoch/esm2015/date-time/date-time.component.js +2 -2
  87. app-ng-runtime/components/input/epoch/fesm2015/index.js +105 -39
  88. app-ng-runtime/components/input/epoch/fesm2015/index.js.map +1 -1
  89. app-ng-runtime/components/input/epoch/index.metadata.json +1 -1
  90. app-ng-runtime/components/navigation/menu/bundles/index.umd.js +25 -19
  91. app-ng-runtime/components/navigation/menu/bundles/index.umd.js.map +1 -1
  92. app-ng-runtime/components/navigation/menu/esm2015/menu-dropdown-item/menu-dropdown-item.component.js +15 -5
  93. app-ng-runtime/components/navigation/menu/esm2015/menu.component.js +14 -19
  94. app-ng-runtime/components/navigation/menu/fesm2015/index.js +25 -20
  95. app-ng-runtime/components/navigation/menu/fesm2015/index.js.map +1 -1
  96. app-ng-runtime/components/navigation/menu/index.metadata.json +1 -1
  97. app-ng-runtime/components/navigation/menu/menu-dropdown-item/menu-dropdown-item.component.d.ts +7 -4
  98. app-ng-runtime/components/navigation/menu/menu.component.d.ts +3 -7
  99. app-ng-runtime/components/navigation/popover/bundles/index.umd.js +3 -1
  100. app-ng-runtime/components/navigation/popover/bundles/index.umd.js.map +1 -1
  101. app-ng-runtime/components/navigation/popover/esm2015/popover.component.js +5 -3
  102. app-ng-runtime/components/navigation/popover/fesm2015/index.js +4 -2
  103. app-ng-runtime/components/navigation/popover/fesm2015/index.js.map +1 -1
  104. app-ng-runtime/core/bundles/index.umd.js +7 -1
  105. app-ng-runtime/core/bundles/index.umd.js.map +1 -1
  106. app-ng-runtime/core/esm2015/services/pagination.service.js +8 -2
  107. app-ng-runtime/core/fesm2015/index.js +7 -1
  108. app-ng-runtime/core/fesm2015/index.js.map +1 -1
  109. app-ng-runtime/mobile/components/page/default/bundles/index.umd.js +24 -6
  110. app-ng-runtime/mobile/components/page/default/bundles/index.umd.js.map +1 -1
  111. app-ng-runtime/mobile/components/page/default/esm2015/page.directive.js +20 -3
  112. app-ng-runtime/mobile/components/page/default/fesm2015/index.js +19 -2
  113. app-ng-runtime/mobile/components/page/default/fesm2015/index.js.map +1 -1
  114. app-ng-runtime/mobile/components/page/default/index.metadata.json +1 -1
  115. app-ng-runtime/mobile/components/page/default/page.directive.d.ts +4 -1
  116. app-ng-runtime/mobile/core/bundles/index.umd.js +2 -1
  117. app-ng-runtime/mobile/core/bundles/index.umd.js.map +1 -1
  118. app-ng-runtime/mobile/core/esm2015/services/device.service.js +3 -2
  119. app-ng-runtime/mobile/core/fesm2015/index.js +2 -1
  120. app-ng-runtime/mobile/core/fesm2015/index.js.map +1 -1
  121. app-ng-runtime/mobile/runtime-dynamic/bundles/index.umd.js +3 -2
  122. app-ng-runtime/mobile/runtime-dynamic/bundles/index.umd.js.map +1 -1
  123. app-ng-runtime/mobile/runtime-dynamic/esm2015/services/live-sync.service.js +4 -3
  124. app-ng-runtime/mobile/runtime-dynamic/fesm2015/index.js +3 -2
  125. app-ng-runtime/mobile/runtime-dynamic/fesm2015/index.js.map +1 -1
  126. app-ng-runtime/package.json +1 -1
  127. app-ng-runtime/runtime/base/bundles/index.umd.js +1 -0
  128. app-ng-runtime/runtime/base/bundles/index.umd.js.map +1 -1
  129. app-ng-runtime/runtime/base/esm2015/services/prefab-manager.service.js +2 -1
  130. app-ng-runtime/runtime/base/fesm2015/index.js +1 -0
  131. app-ng-runtime/runtime/base/fesm2015/index.js.map +1 -1
  132. app-ng-runtime/scripts/datatable/datatable.js +117 -48
  133. app-ng-runtime/scripts/summernote/dist/summernote-lite.min.js +3 -3
  134. app-ng-runtime/scripts/tree-keyboard-navigation/keyboard-navigation.js +251 -0
  135. app-ng-runtime/variables/bundles/index.umd.js +19 -16
  136. app-ng-runtime/variables/bundles/index.umd.js.map +1 -1
  137. app-ng-runtime/variables/esm2015/constants/variables.constants.js +3 -9
  138. app-ng-runtime/variables/esm2015/manager/action/notification-action.manager.js +5 -6
  139. app-ng-runtime/variables/esm2015/service/variables.service.js +8 -1
  140. app-ng-runtime/variables/fesm2015/index.js +13 -14
  141. app-ng-runtime/variables/fesm2015/index.js.map +1 -1
  142. app-ng-runtime/variables/index.metadata.json +1 -1
  143. app-ng-runtime/variables/service/variables.service.d.ts +4 -0
  144. app-ng-runtime/components/basic/tree/esm2015/tree.directive.js +0 -310
  145. app-ng-runtime/components/basic/tree/tree.directive.d.ts +0 -35
@@ -574,11 +574,17 @@ class ListComponent extends StylableComponent {
574
574
  const dataSource = this.datasource;
575
575
  if (dataSource && dataSource.execute(DataSource.Operation.IS_API_AWARE) && isDataSourceEqual(data.variable, dataSource)) {
576
576
  this.ngZone.run(() => {
577
- var _a;
577
+ var _a, _b, _c;
578
578
  this.handleStateParams(data);
579
579
  this.variableInflight = data.active;
580
- // WMS-17268: Update nodatafound flag once the response is recieved from the server
581
- this.noDataFound = !((_a = data.data) === null || _a === void 0 ? void 0 : _a.pagination.totalElements);
580
+ // Fix for [WMS-23772] Update nodatafound flag once the response is recieved from the server
581
+ const totalEle = (_b = (_a = data.data) === null || _a === void 0 ? void 0 : _a.pagination) === null || _b === void 0 ? void 0 : _b.totalElements;
582
+ if (!_.isUndefined(totalEle)) {
583
+ this.noDataFound = totalEle === 0 ? true : false;
584
+ }
585
+ else { // totalelements is undefined
586
+ this.noDataFound = _.isEmpty((_c = data.data) === null || _c === void 0 ? void 0 : _c.data);
587
+ }
582
588
  });
583
589
  }
584
590
  }
@@ -982,9 +988,10 @@ class ListComponent extends StylableComponent {
982
988
  }
983
989
  }
984
990
  // Triggers after the sorting.
985
- onUpdate(evt, ui) {
991
+ onUpdate(evt, ui, presentIndex) {
986
992
  const data = this.fieldDefs;
987
- const newIndex = ui.item.index();
993
+ // If ui is not present then it is called from drag and drop using keyboard
994
+ const newIndex = ui === undefined ? presentIndex : ui.item.index();
988
995
  const oldIndex = this.$ulEle.data('oldIndex');
989
996
  const minIndex = _.min([newIndex, oldIndex]);
990
997
  const maxIndex = _.max([newIndex, oldIndex]);
@@ -1089,7 +1096,7 @@ class ListComponent extends StylableComponent {
1089
1096
  }
1090
1097
  handleKeyDown($event, action) {
1091
1098
  $event.stopPropagation();
1092
- if ($event.keyCode !== 13 && $event.keyCode !== 9 && !($event.target.classList.contains('form-control') && $event.keyCode === 32)) {
1099
+ if ($event.keyCode !== 13 && $event.keyCode !== 9 && !(($event.target.classList.contains('form-control') || $event.target.classList.contains('note-editable')) && $event.keyCode === 32)) {
1093
1100
  $event.preventDefault();
1094
1101
  }
1095
1102
  const listItems = this.listItems;
@@ -1130,27 +1137,20 @@ class ListComponent extends StylableComponent {
1130
1137
  }
1131
1138
  if (action === 'focusPrev') {
1132
1139
  if (this.isListElementMovable) {
1133
- let prev;
1134
1140
  presentIndex = presentIndex <= 0 ? 0 : (presentIndex);
1135
- this.lastSelectedItem = this.getListItemByIndex(presentIndex);
1136
1141
  if (presentIndex === 0) {
1137
- prev = this.listItems.last;
1138
1142
  return;
1139
1143
  }
1140
- this.listItems.forEach(($liItem, idx) => {
1141
- if (idx === presentIndex) {
1142
- prev.nativeElement.before($liItem.nativeElement);
1143
- this.lastSelectedItem.nativeElement.focus();
1144
- const arr = this.listItems.toArray();
1145
- let temp = arr[presentIndex];
1146
- arr[presentIndex] = arr[presentIndex - 1];
1147
- arr[presentIndex - 1] = temp;
1148
- this.listItems.reset(arr);
1149
- this.currentIndex = presentIndex;
1150
- this.ariaText = "selected ";
1151
- }
1152
- prev = $liItem;
1153
- });
1144
+ this.lastSelectedItem = this.getListItemByIndex(presentIndex);
1145
+ const prevElt = this.getListItemByIndex(presentIndex - 1);
1146
+ prevElt.nativeElement.before(this.lastSelectedItem.nativeElement);
1147
+ this.lastSelectedItem.nativeElement.focus();
1148
+ this.statePersistence.removeWidgetState(this, 'selectedItem');
1149
+ const arr = this.listItems.toArray();
1150
+ [arr[presentIndex - 1], arr[presentIndex]] = [arr[presentIndex], arr[presentIndex - 1]];
1151
+ this.listItems.reset(arr);
1152
+ this.currentIndex = presentIndex;
1153
+ this.ariaText = "selected ";
1154
1154
  }
1155
1155
  else {
1156
1156
  presentIndex = presentIndex <= 0 ? 0 : (presentIndex - 1);
@@ -1162,27 +1162,20 @@ class ListComponent extends StylableComponent {
1162
1162
  }
1163
1163
  else if (action === 'focusNext') {
1164
1164
  if (this.isListElementMovable) {
1165
- let prev;
1166
1165
  presentIndex = presentIndex < (listItems.length - 1) ? (presentIndex) : (listItems.length - 1);
1167
- this.lastSelectedItem = this.getListItemByIndex(presentIndex);
1168
1166
  if (presentIndex === this.listItems.length - 1) {
1169
- prev = this.listItems.first;
1170
1167
  return;
1171
1168
  }
1172
- this.listItems.forEach(($liItem, idx) => {
1173
- if (idx === presentIndex + 1) {
1174
- prev.nativeElement.before($liItem.nativeElement);
1175
- this.lastSelectedItem.nativeElement.focus();
1176
- const arr = this.listItems.toArray();
1177
- let temp = arr[presentIndex + 1];
1178
- arr[presentIndex + 1] = arr[presentIndex];
1179
- arr[presentIndex] = temp;
1180
- this.listItems.reset(arr);
1181
- this.currentIndex = idx + 1;
1182
- this.ariaText = "selected ";
1183
- }
1184
- prev = $liItem;
1185
- });
1169
+ this.lastSelectedItem = this.getListItemByIndex(presentIndex);
1170
+ const nextElt = this.getListItemByIndex(presentIndex + 1);
1171
+ nextElt.nativeElement.after(this.lastSelectedItem.nativeElement);
1172
+ this.lastSelectedItem.nativeElement.focus();
1173
+ this.statePersistence.removeWidgetState(this, 'selectedItem');
1174
+ const arr = this.listItems.toArray();
1175
+ [arr[presentIndex], arr[presentIndex + 1]] = [arr[presentIndex + 1], arr[presentIndex]];
1176
+ this.listItems.reset(arr);
1177
+ this.currentIndex = presentIndex + 2;
1178
+ this.ariaText = "selected ";
1186
1179
  }
1187
1180
  else {
1188
1181
  presentIndex = presentIndex < (listItems.length - 1) ? (presentIndex + 1) : (listItems.length - 1);
@@ -1208,12 +1201,13 @@ class ListComponent extends StylableComponent {
1208
1201
  this.isListElementMovable = !this.isListElementMovable;
1209
1202
  this.onItemClick($event, this.getListItemByIndex(presentIndex));
1210
1203
  this.currentIndex = presentIndex + 1;
1211
- let name = this.getListItemByIndex(presentIndex).item.name;
1212
1204
  if (this.isListElementMovable) {
1213
- this.ariaText = name + " grabbed, current position ";
1205
+ this.ariaText = `Item ${this.currentIndex} grabbed, current position `;
1206
+ this.$ulEle.data('oldIndex', presentIndex);
1214
1207
  }
1215
1208
  else {
1216
- this.ariaText = name + " dropped, final position ";
1209
+ this.ariaText = `Item ${this.currentIndex} dropped, final position `;
1210
+ this.onUpdate($event, undefined, presentIndex);
1217
1211
  }
1218
1212
  }
1219
1213
  }
@@ -1265,11 +1259,13 @@ class ListComponent extends StylableComponent {
1265
1259
  this.dataNavigator.maxResults = nv;
1266
1260
  }
1267
1261
  else if (key === 'enablereorder') {
1268
- if (nv) {
1262
+ if (nv && this.$ulEle) {
1263
+ this.$ulEle.attr('aria-describedby', this.titleId);
1269
1264
  this.configureDnD();
1270
1265
  this.$ulEle.sortable('enable');
1271
1266
  }
1272
1267
  else if (this.$ulEle && !nv) {
1268
+ this.$ulEle.removeAttr('aria-describedby');
1273
1269
  this.$ulEle.sortable('disable');
1274
1270
  }
1275
1271
  }
@@ -1433,9 +1429,18 @@ class ListComponent extends StylableComponent {
1433
1429
  super.ngAfterViewInit();
1434
1430
  this.setUpCUDHandlers();
1435
1431
  this.selectedItemWidgets = this.multiselect ? [] : {};
1432
+ var ele = $(this.nativeElement).find('.app-livelist-container');
1436
1433
  if (this.enablereorder && !this.groupby) {
1434
+ if (ele) {
1435
+ ele.attr('aria-describedby', this.titleId);
1436
+ }
1437
1437
  this.configureDnD();
1438
1438
  }
1439
+ if (!this.enablereorder) {
1440
+ if (ele) {
1441
+ ele.removeAttr('aria-describedby');
1442
+ }
1443
+ }
1439
1444
  if (this.groupby && this.collapsible) {
1440
1445
  this.handleHeaderClick = handleHeaderClick;
1441
1446
  this.toggleAllHeaders = toggleAllHeaders.bind(undefined, this);
@@ -1445,6 +1450,16 @@ class ListComponent extends StylableComponent {
1445
1450
  this.setupHandlers();
1446
1451
  const $ul = this.nativeElement.querySelector('ul.app-livelist-container');
1447
1452
  styler($ul, this, APPLY_STYLES_TYPE.SCROLLABLE_CONTAINER);
1453
+ if (this.enablereorder) {
1454
+ if ($ul) {
1455
+ $ul.setAttribute('aria-describedby', this.titleId);
1456
+ }
1457
+ }
1458
+ if (!this.enablereorder) {
1459
+ if ($ul) {
1460
+ $ul.removeAttribute('aria-describedby');
1461
+ }
1462
+ }
1448
1463
  if (isMobileApp() && $ul.querySelector('.app-list-item-action-panel')) {
1449
1464
  this._listAnimator = new ListAnimator(this);
1450
1465
  }
@@ -1465,7 +1480,7 @@ ListComponent.initializeProps = registerProps();
1465
1480
  ListComponent.decorators = [
1466
1481
  { type: Component, args: [{
1467
1482
  selector: 'div[wmList]',
1468
- template: "<div class=\"panel-heading\" *ngIf=\"title || subheading || iconclass\">\n <h3 class=\"panel-title\">\n <div class=\"pull-left\">\n <i class=\"app-icon panel-icon {{iconclass}}\" aria-hidden=\"true\" [hidden]=\"!iconclass\"></i>\n </div>\n <div class=\"pull-left\">\n <div class=\"heading\" [innerHTML]=\"title\"></div>\n <div class=\"description\" [innerHTML]=\"subheading\"></div>\n </div>\n </h3>\n</div>\n\n<nav class=\"app-datanavigator\" [attr.aria-disabled]=\"dataNavigator.isDisablePrevious\" aria-label=\"Page navigation\" *ngIf=\"navigation === 'Inline' && !noDataFound\">\n <ul class=\"pager\">\n <li class=\"previous\" [ngClass]=\"{'disabled': (dataNavigator ? dataNavigator.isDisablePrevious : true)}\">\n <a href=\"javascript:void(0);\" (click)=\"dataNavigator.navigatePage('prev', $event)\">\n <i class=\"wi wi-chevron-left\" aria-hidden=\"true\"></i>\n <span class=\"sr-only\">Previous</span>\n </a>\n </li>\n </ul>\n</nav>\n<div *ngIf=\"navigation === 'Inline' && !noDataFound\" aria-live=\"polite\" aria-atomic=\"true\" class=\"sr-only\"> {{'Item ' + dataNavigator.dn.currentPage + ' of ' + dataNavigator.pageCount }}</div>\n\n<div>\n <div id={{titleId}} class=\"sr-only\" >\n Press space bar to toggle drag drop mode, use arrow keys to move selected elements.\n </div>\n \n <div aria-live=\"assertive\" *ngIf=\"listItems\" class=\"sr-only\" >\n {{ariaText + currentIndex + ' of ' + listItems.length}}\n </div> \n</div>\n\n<ul [attr.tabindex]=\"tabindex\" [attr.aria-describedby] = \"titleId\" class=\"app-livelist-container clearfix {{direction === 'horizontal' ? 'app-horizontal-list': ''}} {{listclass}}\" role=\"list\"\n (keydown.enter)=\"handleKeyDown($event, 'select')\"\n\n (keydown.space)=\"handleKeyDown($event, 'space')\"\n\n (keydown.arrowup)=\"handleKeyDown($event, 'focusPrev')\"\n (keydown.arrowdown)=\"handleKeyDown($event, 'focusNext')\"\n (keydown.arrowleft)=\"handleKeyDown($event, 'focusPrev')\"\n (keydown.arrowright)=\"handleKeyDown($event, 'focusNext')\"\n\n (keydown.shift.arrowup)=\"handleKeyDown($event, 'selectPrev')\"\n (keydown.shift.arrowdown)=\"handleKeyDown($event, 'selectNext')\"\n (keydown.shift.arrowleft)=\"handleKeyDown($event, 'selectPrev')\"\n (keydown.shift.arrowright)=\"handleKeyDown($event, 'selectNext')\"\n [hidden]=\"noDataFound && !variableInflight\"\n>\n <ng-template [ngIf]=\"!groupby\" [ngIfElse]=\"groupedListTemplate\">\n <li *ngFor=\"let item of fieldDefs; index as $index; first as $first; last as $last;\" class=\"app-list-item {{direction === 'horizontal' ? '' : itemsPerRowClass}}\" [ngClass]=\"listItemRef.itemClass\"\n [wmListItem]=\"item\"\n #listItemRef=\"listItemRef\"\n [attr.tabindex]=\"tabindex\"\n role=\"listitem\">\n <ng-container [ngTemplateOutlet]=\"listTemplate\" [ngTemplateOutletContext]=\"{item: item, $index: $index, itemRef: listItemRef, $first: $first, $last: $last, currentItemWidgets: listItemRef.currentItemWidgets}\"></ng-container>\n </li>\n </ng-template>\n <ng-container [ngTemplateOutlet]=\"listLeftActionTemplate\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"listRightActionTemplate\"></ng-container>\n</ul>\n\n<div class=\"no-data-msg\" *ngIf=\"noDataFound && !variableInflight\" [textContent]=\"nodatamessage\"></div>\n\n<div class=\"loading-data-msg\" *ngIf=\"variableInflight && !pulltorefresh\">\n <span>\n <i class=\"app-icon panel-icon fa-spin\" aria-hidden=\"true\" [ngClass]=\"loadingicon\"></i>\n <span class=\"sr-only\">Loading</span>\n <span class=\"loading-text\" [textContent]=\"loadingdatamsg\"></span>\n </span>\n</div>\n\n<nav class=\"app-datanavigator\" [attr.aria-disabled]=\"dataNavigator.isDisableNext\" *ngIf=\"navigation === 'Inline' && !noDataFound\">\n <ul class=\"pager\">\n <li class=\"next\" [ngClass]=\"{'disabled': (dataNavigator ? dataNavigator.isDisableNext : true)}\">\n <a href=\"javascript:void(0);\" (click)=\"dataNavigator.navigatePage('next', $event)\">\n <i class=\"wi wi-chevron-right\" aria-hidden=\"true\"></i>\n <span class=\"sr-only\">Next</span>\n </a>\n </li>\n </ul>\n</nav>\n\n<div class=\"panel-footer\" *ngIf=\"navigation !== 'None'\" [hidden]=\"!showNavigation || (onDemandLoad && dataNavigator.isDisableNext) || (dataNavigator.dataSize <= pagesize) || (!dataNavigator.dataSize && !dataNavigator.datasource?.pagination?.next)\">\n <nav wmPagination\n navigationalign.bind=\"navigationalign\"\n navigation.bind=\"navControls\"\n showrecordcount.bind=\"showrecordcount\"\n maxsize.bind=\"maxsize\"\n boundarylinks.bind=\"boundarylinks\"\n forceellipses.bind=\"forceellipses\"\n directionlinks.bind=\"directionlinks\"\n show.bind=\"!onDemandLoad\"\n paginationchange.event=\"beforePaginationChange($event, $index)\"\n ></nav>\n <a *ngIf=\"onDemandLoad\" href=\"javascript:void(0);\"\n (click)=\"dataNavigator.navigatePage('next', $event)\"\n class=\"app-button btn btn-block\"\n [ngClass]=\"paginationclass\"\n [textContent]=\"ondemandmessage\"\n ></a>\n</div>\n\n<!--This template will be displayed when groupby is specified-->\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",
1483
+ 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<!--This template will be displayed when groupby is specified-->\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",
1469
1484
  providers: [
1470
1485
  provideAsWidgetRef(ListComponent)
1471
1486
  ]