@wavemaker/app-ng-runtime 12.0.0-next.45752 → 12.0.0-next.46502

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 (318) hide show
  1. app-ng-runtime/build-task/bundles/index.umd.js +53 -45
  2. app-ng-runtime/build-task/esm2022/basic/default/anchor/anchor.build.mjs +2 -2
  3. app-ng-runtime/build-task/esm2022/basic/default/html/html.build.mjs +2 -2
  4. app-ng-runtime/build-task/esm2022/basic/default/icon/icon.build.mjs +2 -2
  5. app-ng-runtime/build-task/esm2022/basic/default/label/label.build.mjs +2 -2
  6. app-ng-runtime/build-task/esm2022/basic/default/picture/picture.build.mjs +2 -2
  7. app-ng-runtime/build-task/esm2022/basic/default/spinner/spinner.build.mjs +2 -2
  8. app-ng-runtime/build-task/esm2022/basic/progress/progress-circle/progress-circle.build.mjs +7 -2
  9. app-ng-runtime/build-task/esm2022/basic/rich-text-editor/rich-text-editor.build.mjs +2 -2
  10. app-ng-runtime/build-task/esm2022/containers/accordion/accordion-pane/accordion-pane.build.mjs +2 -2
  11. app-ng-runtime/build-task/esm2022/containers/accordion/accordion.build.mjs +3 -3
  12. app-ng-runtime/build-task/esm2022/containers/tile/tile.build.mjs +2 -2
  13. app-ng-runtime/build-task/esm2022/containers/wizard/wizard.build.mjs +2 -2
  14. app-ng-runtime/build-task/esm2022/data/form/form-field/form-field.build.mjs +4 -4
  15. app-ng-runtime/build-task/esm2022/device/barcode-scanner/barcode-scanner.build.mjs +2 -2
  16. app-ng-runtime/build-task/esm2022/device/camera/camera.build.mjs +2 -2
  17. app-ng-runtime/build-task/esm2022/dialogs/alert-dialog/alert-dialog.build.mjs +2 -2
  18. app-ng-runtime/build-task/esm2022/input/calendar/calendar.build.mjs +2 -2
  19. app-ng-runtime/build-task/esm2022/input/chips/chips.build.mjs +2 -2
  20. app-ng-runtime/build-task/esm2022/input/color-picker/color-picker.build.mjs +3 -3
  21. app-ng-runtime/build-task/esm2022/input/currency/currency.build.mjs +3 -3
  22. app-ng-runtime/build-task/esm2022/input/default/button/button.build.mjs +2 -2
  23. app-ng-runtime/build-task/esm2022/input/default/button-group/button-group.build.mjs +2 -2
  24. app-ng-runtime/build-task/esm2022/input/default/switch/switch.build.mjs +2 -2
  25. app-ng-runtime/build-task/esm2022/input/file-upload/file-upload.build.mjs +6 -2
  26. app-ng-runtime/build-task/esm2022/page/footer/footer.build.mjs +2 -2
  27. app-ng-runtime/build-task/esm2022/page/header/header.build.mjs +2 -2
  28. app-ng-runtime/build-task/esm2022/page/layout.build.mjs +2 -2
  29. app-ng-runtime/build-task/esm2022/page/left-panel/left-panel.build.mjs +2 -2
  30. app-ng-runtime/build-task/esm2022/page/page.build.mjs +2 -2
  31. app-ng-runtime/build-task/esm2022/page/right-panel/right-panel.build.mjs +2 -2
  32. app-ng-runtime/build-task/esm2022/page/top-nav/top-nav.build.mjs +2 -2
  33. app-ng-runtime/build-task/fesm2022/index.mjs +53 -45
  34. app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
  35. app-ng-runtime/components/advanced/carousel/bundles/index.umd.js +1 -1
  36. app-ng-runtime/components/advanced/carousel/esm2022/carousel.animator.mjs +2 -2
  37. app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs +1 -1
  38. app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
  39. app-ng-runtime/components/base/bundles/index.umd.js +1 -6
  40. app-ng-runtime/components/base/esm2022/pipes/custom-pipes.mjs +3 -3
  41. app-ng-runtime/components/base/esm2022/widgets/common/base/base.component.mjs +1 -6
  42. app-ng-runtime/components/base/fesm2022/index.mjs +1 -6
  43. app-ng-runtime/components/base/fesm2022/index.mjs.map +1 -1
  44. app-ng-runtime/components/base/pipes/custom-pipes.d.ts +1 -1
  45. app-ng-runtime/components/basic/default/anchor/anchor.component.d.ts +1 -0
  46. app-ng-runtime/components/basic/default/audio/audio.component.d.ts +3 -0
  47. app-ng-runtime/components/basic/default/bundles/index.umd.js +39 -19
  48. app-ng-runtime/components/basic/default/esm2022/anchor/anchor.component.mjs +4 -4
  49. app-ng-runtime/components/basic/default/esm2022/anchor/anchor.props.mjs +2 -1
  50. app-ng-runtime/components/basic/default/esm2022/audio/audio.component.mjs +14 -6
  51. app-ng-runtime/components/basic/default/esm2022/audio/audio.props.mjs +2 -1
  52. app-ng-runtime/components/basic/default/esm2022/html/html.props.mjs +2 -1
  53. app-ng-runtime/components/basic/default/esm2022/icon/icon.component.mjs +6 -7
  54. app-ng-runtime/components/basic/default/esm2022/icon/icon.props.mjs +2 -1
  55. app-ng-runtime/components/basic/default/esm2022/iframe/iframe.component.mjs +3 -3
  56. app-ng-runtime/components/basic/default/esm2022/iframe/iframe.props.mjs +3 -2
  57. app-ng-runtime/components/basic/default/esm2022/label/label.props.mjs +1 -1
  58. app-ng-runtime/components/basic/default/esm2022/picture/picture.directive.mjs +2 -2
  59. app-ng-runtime/components/basic/default/esm2022/picture/picture.props.mjs +3 -1
  60. app-ng-runtime/components/basic/default/esm2022/spinner/spinner.props.mjs +3 -2
  61. app-ng-runtime/components/basic/default/esm2022/video/video.component.mjs +8 -4
  62. app-ng-runtime/components/basic/default/esm2022/video/video.props.mjs +2 -1
  63. app-ng-runtime/components/basic/default/fesm2022/index.mjs +39 -19
  64. app-ng-runtime/components/basic/default/fesm2022/index.mjs.map +1 -1
  65. app-ng-runtime/components/basic/default/icon/icon.component.d.ts +1 -0
  66. app-ng-runtime/components/basic/default/iframe/iframe.component.d.ts +1 -0
  67. app-ng-runtime/components/basic/default/picture/picture.directive.d.ts +2 -1
  68. app-ng-runtime/components/basic/default/video/video.component.d.ts +2 -0
  69. app-ng-runtime/components/basic/progress/bundles/index.umd.js +17 -9
  70. app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +9 -5
  71. app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.props.mjs +2 -1
  72. app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.component.mjs +8 -6
  73. app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.props.mjs +2 -1
  74. app-ng-runtime/components/basic/progress/fesm2022/index.mjs +17 -9
  75. app-ng-runtime/components/basic/progress/fesm2022/index.mjs.map +1 -1
  76. app-ng-runtime/components/basic/progress/progress-bar/progress-bar.component.d.ts +2 -0
  77. app-ng-runtime/components/basic/progress/progress-circle/progress-circle.component.d.ts +3 -1
  78. app-ng-runtime/components/basic/rich-text-editor/bundles/index.umd.js +2 -0
  79. app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.component.mjs +2 -1
  80. app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.props.mjs +2 -1
  81. app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs +2 -0
  82. app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
  83. app-ng-runtime/components/basic/search/bundles/index.umd.js +16 -9
  84. app-ng-runtime/components/basic/search/esm2022/search.component.mjs +19 -13
  85. app-ng-runtime/components/basic/search/esm2022/search.props.mjs +2 -1
  86. app-ng-runtime/components/basic/search/fesm2022/index.mjs +16 -9
  87. app-ng-runtime/components/basic/search/fesm2022/index.mjs.map +1 -1
  88. app-ng-runtime/components/basic/search/search.component.d.ts +4 -2
  89. app-ng-runtime/components/chart/bundles/index.umd.js +1 -0
  90. app-ng-runtime/components/chart/esm2022/chart.utils.mjs +2 -1
  91. app-ng-runtime/components/chart/fesm2022/index.mjs +1 -0
  92. app-ng-runtime/components/chart/fesm2022/index.mjs.map +1 -1
  93. app-ng-runtime/components/containers/accordion/accordion-pane/accordion-pane.component.d.ts +1 -0
  94. app-ng-runtime/components/containers/accordion/bundles/index.umd.js +15 -9
  95. app-ng-runtime/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +13 -10
  96. app-ng-runtime/components/containers/accordion/esm2022/accordion.directive.mjs +4 -1
  97. app-ng-runtime/components/containers/accordion/fesm2022/index.mjs +15 -9
  98. app-ng-runtime/components/containers/accordion/fesm2022/index.mjs.map +1 -1
  99. app-ng-runtime/components/containers/panel/bundles/index.umd.js +14 -14
  100. app-ng-runtime/components/containers/panel/esm2022/panel.component.mjs +15 -15
  101. app-ng-runtime/components/containers/panel/fesm2022/index.mjs +14 -14
  102. app-ng-runtime/components/containers/panel/fesm2022/index.mjs.map +1 -1
  103. app-ng-runtime/components/containers/tabs/bundles/index.umd.js +2 -2
  104. app-ng-runtime/components/containers/tabs/esm2022/tabs.component.mjs +3 -3
  105. app-ng-runtime/components/containers/tabs/fesm2022/index.mjs +2 -2
  106. app-ng-runtime/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  107. app-ng-runtime/components/containers/wizard/bundles/index.umd.js +6 -6
  108. app-ng-runtime/components/containers/wizard/esm2022/wizard.component.mjs +7 -7
  109. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs +6 -6
  110. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  111. app-ng-runtime/components/data/list/bundles/index.umd.js +19 -11
  112. app-ng-runtime/components/data/list/esm2022/list-item.directive.mjs +10 -1
  113. app-ng-runtime/components/data/list/esm2022/list.component.mjs +12 -12
  114. app-ng-runtime/components/data/list/fesm2022/index.mjs +20 -12
  115. app-ng-runtime/components/data/list/fesm2022/index.mjs.map +1 -1
  116. app-ng-runtime/components/data/live-table/bundles/index.umd.js +2 -2
  117. app-ng-runtime/components/data/live-table/esm2022/live-table.component.mjs +3 -3
  118. app-ng-runtime/components/data/live-table/fesm2022/index.mjs +2 -2
  119. app-ng-runtime/components/data/live-table/fesm2022/index.mjs.map +1 -1
  120. app-ng-runtime/components/data/pagination/bundles/index.umd.js +2 -0
  121. app-ng-runtime/components/data/pagination/esm2022/pagination.component.mjs +3 -1
  122. app-ng-runtime/components/data/pagination/fesm2022/index.mjs +2 -0
  123. app-ng-runtime/components/data/pagination/fesm2022/index.mjs.map +1 -1
  124. app-ng-runtime/components/data/table/bundles/index.umd.js +42 -8
  125. app-ng-runtime/components/data/table/esm2022/table-column/table-column.directive.mjs +14 -5
  126. app-ng-runtime/components/data/table/esm2022/table.component.mjs +28 -5
  127. app-ng-runtime/components/data/table/esm2022/table.props.mjs +3 -1
  128. app-ng-runtime/components/data/table/fesm2022/index.mjs +43 -9
  129. app-ng-runtime/components/data/table/fesm2022/index.mjs.map +1 -1
  130. app-ng-runtime/components/data/table/table.component.d.ts +7 -0
  131. app-ng-runtime/components/dialogs/alert-dialog/bundles/index.umd.js +6 -4
  132. app-ng-runtime/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +7 -5
  133. app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs +6 -4
  134. app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
  135. app-ng-runtime/components/dialogs/confirm-dialog/bundles/index.umd.js +8 -5
  136. app-ng-runtime/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +9 -6
  137. app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs +8 -5
  138. app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
  139. app-ng-runtime/components/dialogs/default/bundles/index.umd.js +9 -3
  140. app-ng-runtime/components/dialogs/default/dialog-header/dialog-header.component.d.ts +2 -1
  141. app-ng-runtime/components/dialogs/default/esm2022/base-dialog.mjs +2 -1
  142. app-ng-runtime/components/dialogs/default/esm2022/dialog-header/dialog-header.component.mjs +9 -4
  143. app-ng-runtime/components/dialogs/default/fesm2022/index.mjs +9 -3
  144. app-ng-runtime/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  145. app-ng-runtime/components/dialogs/design-dialog/bundles/index.umd.js +4 -4
  146. app-ng-runtime/components/dialogs/design-dialog/esm2022/dialog.component.mjs +5 -5
  147. app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs +4 -4
  148. app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
  149. app-ng-runtime/components/dialogs/iframe-dialog/bundles/index.umd.js +9 -5
  150. app-ng-runtime/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +10 -6
  151. app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs +9 -5
  152. app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
  153. app-ng-runtime/components/dialogs/partial-dialog/bundles/index.umd.js +9 -5
  154. app-ng-runtime/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +10 -6
  155. app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs +9 -5
  156. app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
  157. app-ng-runtime/components/input/calendar/bundles/index.umd.js +2 -4
  158. app-ng-runtime/components/input/calendar/esm2022/calendar.component.mjs +3 -5
  159. app-ng-runtime/components/input/calendar/fesm2022/index.mjs +2 -4
  160. app-ng-runtime/components/input/calendar/fesm2022/index.mjs.map +1 -1
  161. app-ng-runtime/components/input/chips/bundles/index.umd.js +25 -7
  162. app-ng-runtime/components/input/chips/esm2022/chips.component.mjs +25 -8
  163. app-ng-runtime/components/input/chips/esm2022/chips.props.mjs +2 -1
  164. app-ng-runtime/components/input/chips/fesm2022/index.mjs +25 -7
  165. app-ng-runtime/components/input/chips/fesm2022/index.mjs.map +1 -1
  166. app-ng-runtime/components/input/color-picker/bundles/index.umd.js +5 -3
  167. app-ng-runtime/components/input/color-picker/color-picker.component.d.ts +1 -0
  168. app-ng-runtime/components/input/color-picker/esm2022/color-picker.component.mjs +6 -5
  169. app-ng-runtime/components/input/color-picker/esm2022/color-picker.props.mjs +2 -1
  170. app-ng-runtime/components/input/color-picker/fesm2022/index.mjs +5 -3
  171. app-ng-runtime/components/input/color-picker/fesm2022/index.mjs.map +1 -1
  172. app-ng-runtime/components/input/currency/bundles/index.umd.js +4 -3
  173. app-ng-runtime/components/input/currency/currency.component.d.ts +1 -0
  174. app-ng-runtime/components/input/currency/esm2022/currency.component.mjs +6 -6
  175. app-ng-runtime/components/input/currency/esm2022/currency.props.mjs +2 -1
  176. app-ng-runtime/components/input/currency/fesm2022/index.mjs +4 -3
  177. app-ng-runtime/components/input/currency/fesm2022/index.mjs.map +1 -1
  178. app-ng-runtime/components/input/default/bundles/index.umd.js +171 -94
  179. app-ng-runtime/components/input/default/button/button.component.d.ts +1 -0
  180. app-ng-runtime/components/input/default/checkbox/checkbox.component.d.ts +1 -0
  181. app-ng-runtime/components/input/default/esm2022/base-form.component.mjs +3 -3
  182. app-ng-runtime/components/input/default/esm2022/button/button.component.mjs +1 -1
  183. app-ng-runtime/components/input/default/esm2022/button/button.props.mjs +2 -1
  184. app-ng-runtime/components/input/default/esm2022/caption-position.directive.mjs +8 -7
  185. app-ng-runtime/components/input/default/esm2022/checkbox/checkbox.component.mjs +7 -7
  186. app-ng-runtime/components/input/default/esm2022/checkbox/checkbox.props.mjs +2 -1
  187. app-ng-runtime/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +21 -16
  188. app-ng-runtime/components/input/default/esm2022/number/number.component.mjs +5 -5
  189. app-ng-runtime/components/input/default/esm2022/number/number.props.mjs +3 -1
  190. app-ng-runtime/components/input/default/esm2022/radioset/radioset.component.mjs +28 -23
  191. app-ng-runtime/components/input/default/esm2022/select/select.component.mjs +7 -7
  192. app-ng-runtime/components/input/default/esm2022/select/select.props.mjs +2 -1
  193. app-ng-runtime/components/input/default/esm2022/switch/switch.component.mjs +6 -5
  194. app-ng-runtime/components/input/default/esm2022/switch/switch.props.mjs +2 -1
  195. app-ng-runtime/components/input/default/esm2022/text/calendar/input-calendar.component.mjs +5 -5
  196. app-ng-runtime/components/input/default/esm2022/text/calendar/input-calendar.props.mjs +2 -1
  197. app-ng-runtime/components/input/default/esm2022/text/color/input-color.component.mjs +5 -5
  198. app-ng-runtime/components/input/default/esm2022/text/color/input-color.props.mjs +2 -1
  199. app-ng-runtime/components/input/default/esm2022/text/email/input-email.component.mjs +5 -5
  200. app-ng-runtime/components/input/default/esm2022/text/email/input-email.props.mjs +2 -1
  201. app-ng-runtime/components/input/default/esm2022/text/locale/number-locale.mjs +66 -13
  202. app-ng-runtime/components/input/default/esm2022/text/number/input-number.component.mjs +5 -5
  203. app-ng-runtime/components/input/default/esm2022/text/number/input-number.props.mjs +2 -1
  204. app-ng-runtime/components/input/default/esm2022/text/text/input-text.component.mjs +5 -5
  205. app-ng-runtime/components/input/default/esm2022/text/text/input-text.props.mjs +2 -1
  206. app-ng-runtime/components/input/default/esm2022/textarea/textarea.component.mjs +6 -6
  207. app-ng-runtime/components/input/default/esm2022/textarea/textarea.props.mjs +2 -1
  208. app-ng-runtime/components/input/default/fesm2022/index.mjs +171 -94
  209. app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
  210. app-ng-runtime/components/input/default/number/number.component.d.ts +1 -0
  211. app-ng-runtime/components/input/default/select/select.component.d.ts +2 -0
  212. app-ng-runtime/components/input/default/text/calendar/input-calendar.component.d.ts +1 -0
  213. app-ng-runtime/components/input/default/text/color/input-color.component.d.ts +1 -0
  214. app-ng-runtime/components/input/default/text/email/input-email.component.d.ts +1 -0
  215. app-ng-runtime/components/input/default/text/locale/number-locale.d.ts +1 -0
  216. app-ng-runtime/components/input/default/text/number/input-number.component.d.ts +1 -0
  217. app-ng-runtime/components/input/default/text/text/input-text.component.d.ts +1 -0
  218. app-ng-runtime/components/input/default/textarea/textarea.component.d.ts +1 -0
  219. app-ng-runtime/components/input/epoch/base-date-time.component.d.ts +2 -1
  220. app-ng-runtime/components/input/epoch/bundles/index.umd.js +28 -21
  221. app-ng-runtime/components/input/epoch/date/date.component.d.ts +1 -0
  222. app-ng-runtime/components/input/epoch/date-time/date-time.component.d.ts +2 -1
  223. app-ng-runtime/components/input/epoch/esm2022/base-date-time.component.mjs +10 -6
  224. app-ng-runtime/components/input/epoch/esm2022/date/date.component.mjs +8 -8
  225. app-ng-runtime/components/input/epoch/esm2022/date/date.props.mjs +2 -1
  226. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.component.mjs +9 -9
  227. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.props.mjs +2 -1
  228. app-ng-runtime/components/input/epoch/esm2022/time/time.component.mjs +7 -7
  229. app-ng-runtime/components/input/epoch/esm2022/time/time.props.mjs +2 -1
  230. app-ng-runtime/components/input/epoch/fesm2022/index.mjs +25 -18
  231. app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
  232. app-ng-runtime/components/input/epoch/time/time.component.d.ts +1 -0
  233. app-ng-runtime/components/input/file-upload/bundles/index.umd.js +224 -121
  234. app-ng-runtime/components/input/file-upload/esm2022/file-upload.component.mjs +220 -123
  235. app-ng-runtime/components/input/file-upload/esm2022/file-upload.props.mjs +7 -1
  236. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs +225 -122
  237. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  238. app-ng-runtime/components/input/file-upload/file-upload.component.d.ts +18 -11
  239. app-ng-runtime/components/input/rating/bundles/index.umd.js +2 -2
  240. app-ng-runtime/components/input/rating/esm2022/rating.component.mjs +3 -3
  241. app-ng-runtime/components/input/rating/fesm2022/index.mjs +2 -2
  242. app-ng-runtime/components/input/rating/fesm2022/index.mjs.map +1 -1
  243. app-ng-runtime/components/input/slider/bundles/index.umd.js +5 -6
  244. app-ng-runtime/components/input/slider/esm2022/slider.component.mjs +6 -8
  245. app-ng-runtime/components/input/slider/esm2022/slider.props.mjs +2 -1
  246. app-ng-runtime/components/input/slider/fesm2022/index.mjs +5 -6
  247. app-ng-runtime/components/input/slider/fesm2022/index.mjs.map +1 -1
  248. app-ng-runtime/components/input/slider/slider.component.d.ts +1 -0
  249. app-ng-runtime/components/navigation/breadcrumb/bundles/index.umd.js +6 -6
  250. app-ng-runtime/components/navigation/breadcrumb/esm2022/breadcrumb.component.mjs +7 -7
  251. app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs +6 -6
  252. app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
  253. app-ng-runtime/components/navigation/menu/bundles/index.umd.js +8 -6
  254. app-ng-runtime/components/navigation/menu/esm2022/menu.component.mjs +8 -7
  255. app-ng-runtime/components/navigation/menu/esm2022/menu.props.mjs +2 -1
  256. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs +8 -6
  257. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  258. app-ng-runtime/components/navigation/menu/menu.component.d.ts +1 -0
  259. app-ng-runtime/components/navigation/popover/bundles/index.umd.js +121 -13
  260. app-ng-runtime/components/navigation/popover/esm2022/popover.component.mjs +122 -15
  261. app-ng-runtime/components/navigation/popover/esm2022/popover.props.mjs +2 -1
  262. app-ng-runtime/components/navigation/popover/fesm2022/index.mjs +121 -13
  263. app-ng-runtime/components/navigation/popover/fesm2022/index.mjs.map +1 -1
  264. app-ng-runtime/components/navigation/popover/popover.component.d.ts +15 -3
  265. app-ng-runtime/components/page/default/bundles/index.umd.js +2 -1
  266. app-ng-runtime/components/page/default/esm2022/page.props.mjs +4 -3
  267. app-ng-runtime/components/page/default/fesm2022/index.mjs +2 -1
  268. app-ng-runtime/components/page/default/fesm2022/index.mjs.map +1 -1
  269. app-ng-runtime/components/page/footer/bundles/index.umd.js +2 -1
  270. app-ng-runtime/components/page/footer/esm2022/footer.props.mjs +3 -2
  271. app-ng-runtime/components/page/footer/fesm2022/index.mjs +2 -1
  272. app-ng-runtime/components/page/footer/fesm2022/index.mjs.map +1 -1
  273. app-ng-runtime/components/page/header/bundles/index.umd.js +2 -1
  274. app-ng-runtime/components/page/header/esm2022/header.props.mjs +3 -2
  275. app-ng-runtime/components/page/header/fesm2022/index.mjs +2 -1
  276. app-ng-runtime/components/page/header/fesm2022/index.mjs.map +1 -1
  277. app-ng-runtime/components/page/left-panel/bundles/index.umd.js +2 -1
  278. app-ng-runtime/components/page/left-panel/esm2022/left-panel.props.mjs +3 -2
  279. app-ng-runtime/components/page/left-panel/fesm2022/index.mjs +2 -1
  280. app-ng-runtime/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  281. app-ng-runtime/components/page/right-panel/bundles/index.umd.js +2 -1
  282. app-ng-runtime/components/page/right-panel/esm2022/right-panel.props.mjs +3 -2
  283. app-ng-runtime/components/page/right-panel/fesm2022/index.mjs +2 -1
  284. app-ng-runtime/components/page/right-panel/fesm2022/index.mjs.map +1 -1
  285. app-ng-runtime/components/page/top-nav/bundles/index.umd.js +2 -1
  286. app-ng-runtime/components/page/top-nav/esm2022/top-nav.props.mjs +3 -2
  287. app-ng-runtime/components/page/top-nav/fesm2022/index.mjs +2 -1
  288. app-ng-runtime/components/page/top-nav/fesm2022/index.mjs.map +1 -1
  289. app-ng-runtime/core/bundles/index.umd.js +15 -13
  290. app-ng-runtime/core/esm2022/public_api.mjs +2 -2
  291. app-ng-runtime/core/esm2022/utils/build-utils.mjs +7 -7
  292. app-ng-runtime/core/esm2022/utils/utils.mjs +4 -5
  293. app-ng-runtime/core/fesm2022/index.mjs +11 -11
  294. app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
  295. app-ng-runtime/core/public_api.d.ts +1 -1
  296. app-ng-runtime/core/utils/utils.d.ts +1 -1
  297. app-ng-runtime/mobile/components/device/barcode-scanner/bundles/index.umd.js +2 -1
  298. app-ng-runtime/mobile/components/device/barcode-scanner/esm2022/barcode-scanner.props.mjs +3 -2
  299. app-ng-runtime/mobile/components/device/barcode-scanner/fesm2022/index.mjs +2 -1
  300. app-ng-runtime/mobile/components/device/barcode-scanner/fesm2022/index.mjs.map +1 -1
  301. app-ng-runtime/mobile/components/device/camera/bundles/index.umd.js +2 -1
  302. app-ng-runtime/mobile/components/device/camera/esm2022/camera.props.mjs +3 -2
  303. app-ng-runtime/mobile/components/device/camera/fesm2022/index.mjs +2 -1
  304. app-ng-runtime/mobile/components/device/camera/fesm2022/index.mjs.map +1 -1
  305. app-ng-runtime/package.json +1 -1
  306. app-ng-runtime/runtime/base/bundles/index.umd.js +6 -4
  307. app-ng-runtime/runtime/base/components/app-component/app.component.d.ts +2 -3
  308. app-ng-runtime/runtime/base/esm2022/components/app-component/app.component.mjs +5 -5
  309. app-ng-runtime/runtime/base/esm2022/guards/can-deactivate-page.guard.mjs +5 -4
  310. app-ng-runtime/runtime/base/fesm2022/index.mjs +6 -4
  311. app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
  312. app-ng-runtime/runtime/base/guards/can-deactivate-page.guard.d.ts +2 -1
  313. app-ng-runtime/scripts/datatable/datatable.js +32 -31
  314. app-ng-runtime/variables/bundles/index.umd.js +34 -16
  315. app-ng-runtime/variables/esm2022/manager/variable/web-socket-variable.manager.mjs +35 -17
  316. app-ng-runtime/variables/fesm2022/index.mjs +34 -16
  317. app-ng-runtime/variables/fesm2022/index.mjs.map +1 -1
  318. app-ng-runtime/variables/manager/variable/web-socket-variable.manager.d.ts +0 -4
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/data/list/src/list.props.ts","../../../../../projects/components/widgets/data/list/src/list-item.directive.ts","../../../../../projects/components/widgets/data/list/src/list.animator.ts","../../../../../projects/components/widgets/data/list/src/list.component.html","../../../../../projects/components/widgets/data/list/src/list.component.ts","../../../../../projects/components/widgets/data/list/src/list.module.ts","../../../../../projects/components/widgets/data/list/src/index.ts"],"sourcesContent":["import { isMobileApp } from '@wm/core';\n\nimport { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-list',\n new Map(\n [\n ['boundarylinks', {value: false, ...PROP_BOOLEAN}],\n ['class', PROP_STRING],\n ['collapsible', PROP_BOOLEAN],\n ['dateformat', PROP_STRING],\n ['dataset', PROP_ANY],\n ['datasource', PROP_ANY],\n ['direction', {value: 'vertical', ...PROP_STRING}],\n ['directionlinks', {value: true, ...PROP_BOOLEAN}],\n ['disableitem', PROP_BOOLEAN],\n ['enablereorder', PROP_BOOLEAN],\n ['forceellipses', {value: true, ...PROP_BOOLEAN}],\n ['groupby', PROP_STRING],\n ['iconclass', PROP_STRING],\n ['itemclass', {value: '', ...PROP_STRING}],\n ['itemsperrow', PROP_STRING],\n ['listclass', {value: 'list-group', ...PROP_STRING}],\n ['multiselect', PROP_BOOLEAN],\n ['loadingdatamsg', {value : 'Loading...', ...PROP_STRING}],\n ['loadingicon', {value : 'fa fa-circle-o-notch', ...PROP_STRING}],\n ['match', PROP_STRING],\n ['maxsize', {value: 5, ...PROP_NUMBER}],\n ['name', PROP_STRING],\n ['navigation', PROP_STRING],\n ['navigationalign', {value: 'left', ...PROP_STRING}],\n ['nodatamessage', {value : 'No data found', ...PROP_STRING}],\n ['ondemandmessage', {value : 'Load More', ...PROP_STRING}],\n ['orderby', PROP_STRING],\n ['paginationclass', PROP_STRING],\n ['pagesize', PROP_NUMBER],\n ['pulltorefresh', {value: isMobileApp(), ...PROP_BOOLEAN}],\n ['selectfirstitem', PROP_BOOLEAN],\n ['selectionlimit', PROP_NUMBER],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['showcount', PROP_BOOLEAN],\n ['showrecordcount', PROP_BOOLEAN],\n ['statehandler', {value: 'none', ...PROP_STRING}],\n ['subheading', PROP_STRING],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['title', PROP_STRING]\n ]\n )\n );\n};\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n Injector,\n Input,\n OnInit,\n Optional,\n ViewContainerRef\n} from '@angular/core';\n\nimport {Observable, Subject} from 'rxjs';\n\nimport {$watch, App} from '@wm/core';\n\nimport {ListComponent} from './list.component';\nimport {widgetIdGenerator} from \"@wm/components/base\";\n\ndeclare const $;\n\n@Directive({\n selector: '[wmListItem]',\n exportAs: 'listItemRef'\n})\nexport class ListItemDirective implements OnInit, AfterViewInit {\n\n public item;\n public context;\n public destroy: Subject<any> = new Subject();\n public destroy$: Observable<any> = this.destroy.asObservable();\n public nativeElement: HTMLElement;\n public readonly listComponent: ListComponent;\n\n private itemClass = '';\n private _currentItemWidgets = {};\n private viewContainerRef: ViewContainerRef;\n /**\n * To avoid re-rendering of widget, passing unique id as contextKey to createCustomInjector\n */\n protected trackId = widgetIdGenerator.nextUid();\n\n @HostBinding('class.active') isActive = false;\n @HostBinding('class.disable-item') disableItem = false;\n\n @HostListener('focus')\n onFocus() {\n // maintains which element is focused/selected most recently.\n this.listComponent.lastSelectedItem = this;\n }\n\n get $index() {\n return this.context.index;\n }\n\n get $even() {\n return this.context.even;\n }\n\n get $odd() {\n return this.context.odd;\n }\n\n get $first() {\n return this.context.first;\n }\n\n get $last() {\n return this.context.last;\n }\n\n get currentItemWidgets () {\n const componentElements = Array.from(this.nativeElement.querySelectorAll('[widget-id]'));\n return Object.assign(this._currentItemWidgets, componentElements.reduce((result, comp: any) => {\n result[comp.widget.name] = comp.widget;\n return result;\n }, {}));\n }\n\n @Input() set wmListItem(val) {\n this.item = val;\n }\n\n constructor(private inj: Injector, elRef: ElementRef, private app: App, @Optional() public _viewParent: ListComponent) {\n this.viewContainerRef = inj.get(ViewContainerRef);\n this.nativeElement = elRef.nativeElement;\n this.listComponent = _viewParent;\n // this.context = (<NgForOfContext<ListItemDirective>>(<any>inj).view.context);\n this.context = (this.inj as any)._lView[8];\n //this.context = (this.viewContainerRef as any)._hostLView.find(t => t && !!t.$implicit);\n this.itemClassWatcher(this.listComponent);\n this.disableItemWatcher(this.listComponent);\n $(this.nativeElement).data('listItemContext', this);\n }\n\n private registerWatch(expression: string, callback: Function) {\n // Removing ngFor context as the same properties are availble on listitem scope.\n // passing viewparent context for accessing varibales and widgets.\n //[CSP]: expression will be generated in the component as e.g. 'item.className'\n this.destroy$.subscribe($watch(expression, (this.listComponent as any).viewParent, this, callback));\n }\n\n private itemClassWatcher(listComponent: ListComponent) {\n if (listComponent.binditemclass) {\n this.registerWatch(listComponent.binditemclass, nv => this.itemClass = nv || '');\n } else {\n this.itemClass = listComponent.itemclass;\n }\n }\n\n private disableItemWatcher($list: ListComponent) {\n if ($list.binddisableitem) {\n this.registerWatch($list.binddisableitem, nv => this.disableItem = nv || false);\n } else {\n this.disableItem = $list.disableitem || false;\n }\n }\n\n private setUpCUDHandlers() {\n const $editItem = this.nativeElement.querySelector('.edit-list-item');\n const $deleteItem = this.nativeElement.querySelector('.delete-list-item');\n\n if ($editItem) {\n // Triggered on click of edit action\n $editItem.addEventListener('click', evt => {\n this.listComponent.update();\n });\n }\n\n if ($deleteItem) {\n // Triggered on click of delete action\n $deleteItem.addEventListener('click', evt => {\n this.listComponent.delete();\n });\n }\n }\n ngOnInit() {\n if (this.listComponent.mouseEnterCB) {\n this.nativeElement.addEventListener('mouseenter', ($event) => {\n this.listComponent.invokeEventCallback('mouseenter', {widget: this, $event});\n });\n }\n if (this.listComponent.mouseLeaveCB) {\n this.nativeElement.addEventListener('mouseleave', ($event) => {\n this.listComponent.invokeEventCallback('mouseleave', {widget: this, $event});\n });\n }\n // adding item attribute on every list item\n $(this.nativeElement).attr('listitemindex', this.$index);\n }\n\n ngAfterViewInit() {\n this.setUpCUDHandlers();\n }\n}\n","import { QueryList } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { SwipeAnimation } from '@swipey';\nimport { ButtonComponent } from '@wm/components/input';\n\nimport { ListComponent } from './list.component';\nimport {map, reduce} from \"lodash-es\";\n\ndeclare const $;\n\nexport class ListAnimator extends SwipeAnimation {\n private $el: JQuery<HTMLElement>;\n private li: JQuery<HTMLElement>;\n private limit: number;\n private transitionProportions: any;\n private rightChildrenCount: number;\n private leftChildrenCount: number;\n private position: string;\n private actionPanel: JQuery<HTMLElement>;\n private actionItems: QueryList<ButtonComponent>;\n public $btnSubscription: Subscription;\n\n constructor(private list: ListComponent) {\n super();\n this.$el = $(this.list.getNativeElement()).find('ul.app-livelist-container').first();\n\n this.leftChildrenCount = this.$el.find('>.app-list-item-left-action-panel > button:visible').length;\n this.rightChildrenCount = this.$el.find('>.app-list-item-right-action-panel > button:visible').length;\n\n // when there are no children in both the templates then do not apply swipeAnimation;\n if (!this.leftChildrenCount && !this.rightChildrenCount) {\n return;\n }\n\n // initialise swipe animation on the list component.\n this.init(this.$el);\n\n // retrieves all the button components which are placed outside the listTemplate.\n this.$btnSubscription = this.list.btnComponents.changes.subscribe(items => this.actionItems = items);\n }\n\n // This method sets the css for left or right action panels based on the template. Appends the actionTemplate before li.\n private createActionPanel(li: JQuery<HTMLElement>, actionPanelTemplate: JQuery<HTMLElement>): JQuery<HTMLElement> {\n actionPanelTemplate.css({\n width: li.outerWidth() + 'px',\n height: li.outerHeight() + 'px',\n marginBottom: -1 * li.outerHeight() + 'px',\n float: 'left',\n padding: 0\n });\n\n return actionPanelTemplate.insertBefore(li);\n }\n\n // Returns the total width occupied by all the children inside the element\n private computeTotalChildrenWidth($ele: JQuery<HTMLElement>): number {\n return reduce($ele.children(), (totalWidth, el) => {\n return totalWidth + $(el).outerWidth();\n }, 0);\n }\n\n // Returns amount of transition to be applied on element when swiped left or right\n private computeTransitionProportions($ele: JQuery<HTMLElement>): number {\n const totalWidth = this.computeTotalChildrenWidth($ele);\n const reverse = this.position === 'right';\n let d = 0;\n // @ts-ignore\n return map($ele.children(), e => {\n const f = (totalWidth - d) / totalWidth;\n d += $(e).outerWidth();\n return reverse ? f : (d / totalWidth);\n });\n }\n\n // Resets the transform applied on the element.\n private resetElement(el: JQuery<HTMLElement>): void {\n if (el) {\n el.css({\n transform: 'none',\n transition: 'none'\n });\n }\n }\n\n private resetState(): void {\n this.resetElement(this.li);\n this.resetElement(this.actionPanel);\n if (this.actionPanel) {\n this.actionPanel = null;\n }\n }\n\n // Returns the target button (child element) inside the left and right actionPanels.\n private getChildActionElement(actionTemplate): JQuery<HTMLElement> {\n if (actionTemplate.children().length) {\n if (this.position === 'left') {\n return actionTemplate.children().first();\n }\n return actionTemplate.children().last();\n }\n }\n\n // create the actionPanels and set the background-color for remaining panel as that of first child element\n // calculates the children's width and its transition proportionates.\n private initActionPanel(actionTemplate: JQuery<HTMLElement>): void {\n this.actionPanel = this.createActionPanel(this.li, actionTemplate);\n this.actionPanel.css({\n backgroundColor: this.getChildActionElement(this.actionPanel).css('background-color')\n });\n this.limit = this.computeTotalChildrenWidth(this.actionPanel);\n this.transitionProportions = this.computeTransitionProportions(this.actionPanel);\n }\n\n public bounds(e?: any, $d?: number): any {\n const target = $(e.target).closest('li');\n // default bounds when action template markup is not available.\n let bounds: {} = {\n strictUpper: true,\n strictLower: true,\n lower: 0,\n center: 0,\n upper: 0\n };\n // apply swipe animation only on list items having \"app-list-item\" class.\n if (!target.hasClass('app-list-item')) {\n return bounds;\n }\n if (!this.li || this.li[0] !== target[0]) {\n let selector = $d > 0 ? '.app-list-item-left-action-panel' : '.app-list-item-right-action-panel';\n let actionTemplate = this.$el.find('>' + selector);\n\n // when groupby is set select the action panel from the list group items.\n if (!actionTemplate.length && this.list.groupby) {\n selector = 'li > ul.list-group >' + selector;\n actionTemplate = this.$el.find('>' + selector);\n }\n\n // check for children visiblity. If children are visible then initiate the action panel.\n if (!actionTemplate.length || !actionTemplate.find('button:visible').length) {\n return bounds;\n }\n\n this.resetState();\n this.li = target;\n\n this.position = actionTemplate.attr('position');\n this.initActionPanel(actionTemplate);\n\n if ($d > 0) {\n // bounds while swiping from right to left to open left action panel. It can be moved upto limit value (Upper bound).\n bounds = {\n strictUpper: false,\n lower: 0,\n center: 0,\n upper: this.limit\n };\n } else {\n // bounds while swiping from left to right to open right action panel. It can be moved in reverse direction with -limit value (lower bound).\n bounds = {\n strictLower: false,\n lower: -this.limit,\n center: 0,\n upper: 0\n };\n }\n } else if (this.position === 'left') {\n // when left action panel is visible (i.e. center at limit value) then this can be moved by distance (limit) in reverse direction to close the view.\n bounds = {\n strictUpper: false,\n lower: -this.limit,\n center: this.limit\n };\n } else if (this.position === 'right') {\n // when right action panel is visible (i.e. center at -limit value) then this can be moved by distance (limit) to close the view.\n bounds = {\n center: -this.limit,\n upper: this.limit,\n strictLower: false\n };\n }\n return bounds;\n }\n\n public context(): any {\n return {\n computeActionTransition: (index: number, $d: number): number => {\n const sign = $d > 0 ? 1 : -1;\n\n if (sign * $d > this.limit) {\n // once the distance swiped is beyond the limit, then calculate the proportionate distance moved after the limit value.\n return ($d - sign * this.limit) + (this.transitionProportions[index] * sign * this.limit);\n }\n return this.transitionProportions[index] * $d;\n }\n };\n }\n\n public animation(): any {\n return [{\n target: () => this.li,\n css: {\n transform: 'translate3d(${{$D + $d}}px, 0, 0)'\n }\n }, { // styles to be applied on the child elements of action panel\n target: () => (this.actionPanel && this.actionPanel.children()),\n css: {\n transform: 'translate3d(${{computeActionTransition($i, $D + $d)}}px, 0, 0)'\n }\n }];\n }\n\n // Triggers full swipe event on the target element.\n public invokeFullSwipeEvt($event: Event): void {\n let target, actions, index;\n // Check if button are visible or not, invoke the tap event of the last button which is visible.\n if (this.position === 'left') {\n actions = this.actionItems.filter(btn => {\n return btn.getAttr('swipe-position') === 'left' && btn.$element.is(':visible');\n });\n index = 0;\n } else {\n actions = this.actionItems.filter(btn => {\n return btn.getAttr('swipe-position') === 'right' && btn.$element.is(':visible');\n });\n index = actions.length - 1;\n }\n target = actions[index];\n if (target && target.hasEventCallback('tap')) {\n target.invokeEventCallback('tap', {$event});\n }\n this.resetState();\n this.li = null;\n }\n\n // Called when swipeEnd is triggered. d contains the total distance covered by the element until touchEnd.\n public onAnimation($event: Event, d: number): void {\n // set the selecteditem on the list component on swipe.\n this.list.triggerListItemSelection(this.li, $event);\n if (this.actionPanel && this.actionPanel.attr('enablefullswipe') === 'true') {\n const sign = d > 0 ? 1 : -1;\n const $el = this.getChildActionElement(this.actionPanel);\n if ($el) {\n const index = this.position === 'right' ? this.rightChildrenCount - 1 : 0;\n // proportionate amount of distance covered by the target element.\n const distPercentage = this.transitionProportions[index] * sign * d * 100 / (this.li.outerWidth() - this.limit + $el.width());\n\n // If distance travelled by the target button element is more than 50% of the list item width then invoke the fullswipe.\n if (distPercentage > 50) {\n // invoke fullswipe event\n this.invokeFullSwipeEvt($event);\n }\n }\n }\n }\n\n public onLower(): void {\n if (this.position === 'left') {\n this.resetState();\n this.li = null;\n }\n }\n\n public onUpper(): void {\n if (this.position === 'right') {\n this.resetState();\n this.li = null;\n }\n }\n\n public threshold(): number {\n return 10;\n }\n}\n","<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\"\n [ngTemplateOutletInjector]=\"createCustomInjector('falt_' + listItemRef.trackId, {item: item, $index: $index, itemRef: listItemRef, $first: $first, $last: $last, currentItemWidgets: listItemRef.currentItemWidgets})\"\n [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; let groupIndex = index;\" 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; trackBy: trackByFn; 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\"\n [ngTemplateOutletInjector]=\"createCustomInjector('group_' + listItemRef.trackId, {item: item, $index: $index, itemRef: listItemRef, $first: $first, $last: $last, currentItemWidgets: listItemRef.currentItemWidgets})\"\n [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","import {\n AfterViewInit,\n Attribute,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef, Inject,\n Injector,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n QueryList,\n TemplateRef,\n ViewChild,\n ViewChildren\n} from '@angular/core';\n\nimport {Subscription} from 'rxjs';\n\nimport {\n $appDigest,\n $invokeWatchers,\n App,\n AppDefaults,\n DataSource,\n getClonedObject,\n isDataSourceEqual,\n isDefined,\n isMobile,\n isMobileApp,\n isObject,\n noop,\n switchClass,\n StatePersistence,\n PaginationService,\n setListClass,\n generateGUId\n} from '@wm/core';\nimport {\n APPLY_STYLES_TYPE,\n configureDnD,\n DEBOUNCE_TIMES,\n getOrderedDataset,\n groupData,\n handleHeaderClick,\n NAVIGATION_TYPE,\n unsupportedStatePersistenceTypes,\n provideAsWidgetRef,\n StylableComponent,\n styler,\n ToDatePipe,\n toggleAllHeaders,\n WidgetRef,\n extractDataSourceName\n} from '@wm/components/base';\nimport {PaginationComponent} from '@wm/components/data/pagination';\nimport {ButtonComponent} from '@wm/components/input';\n\nimport {registerProps} from './list.props';\nimport {ListItemDirective} from './list-item.directive';\nimport {ListAnimator} from './list.animator';\nimport {\n clone,\n cloneDeep,\n forEach,\n get, has,\n includes,\n isArray,\n isEmpty,\n isEqual,\n isNumber,\n isString,\n isUndefined,\n last, max, min, pullAllWith, pullAt, remove, some, toNumber\n} from \"lodash-es\";\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'app-livelist app-panel';\nconst WIDGET_CONFIG = {widgetType: 'wm-list', hostClass: DEFAULT_CLS};\n\n@Component({\n selector: 'div[wmList]',\n templateUrl: './list.component.html',\n providers: [\n provideAsWidgetRef(ListComponent)\n ]\n})\nexport class ListComponent extends StylableComponent implements OnInit, AfterViewInit, OnDestroy {\n static initializeProps = registerProps();\n\n @ContentChild('listTemplate') listTemplate: TemplateRef<ElementRef>;\n\n @ContentChild('listLeftActionTemplate') listLeftActionTemplate: TemplateRef<ElementRef>;\n @ContentChild('listRightActionTemplate') listRightActionTemplate: TemplateRef<ElementRef>;\n @ContentChildren(ButtonComponent) btnComponents;\n\n @ViewChild(PaginationComponent) dataNavigator;\n @ViewChildren(ListItemDirective) listItems: QueryList<ListItemDirective>;\n public noDataFound: boolean;\n public lastSelectedItem: ListItemDirective;\n public fieldDefs: Array<any>;\n public disableitem;\n public navigation: string;\n public navigationalign: string;\n public pagesize: number;\n public dataset: any;\n public multiselect: boolean;\n public selectfirstitem: boolean;\n public orderby: string;\n public loadingicon: string;\n public paginationclass: string;\n public ondemandmessage: string;\n public loadingdatamsg: string;\n public selectionlimit: number;\n public infScroll: boolean;\n public enablereorder: boolean;\n public itemsperrow: string;\n public itemclass: string;\n public selectedItemWidgets: Array<WidgetRef> | WidgetRef;\n public variableInflight;\n public name;\n public currentPage;\n public direction;\n public tabindex;\n public handleHeaderClick: Function;\n public toggleAllHeaders: void;\n public groupby: string;\n public collapsible: string;\n public datePipe: ToDatePipe;\n public binditemclass: string;\n public binddisableitem: string;\n public binddataset: string;\n public mouseEnterCB: string;\n public mouseLeaveCB: string;\n public pulltorefresh: boolean;\n public title: string;\n public subheading: string;\n public iconclass: string;\n public listclass: any;\n public statehandler: any;\n public currentIndex: number;\n public titleId: string;\n _isDependent;\n private itemsPerRowClass: string;\n private firstSelectedItem: ListItemDirective;\n private navigatorMaxResultWatch: Subscription;\n private navigatorResultWatch: Subscription;\n private navControls: string;\n private onDemandLoad: boolean;\n private _items: Array<any>;\n private dataNavigatorWatched: boolean;\n private datasource: any;\n private showNavigation: boolean;\n private reorderProps: any;\n private app: any;\n private appDefaults: any;\n private ngZone: NgZone;\n private statePersistence: StatePersistence;\n private paginationService: PaginationService;\n private binddatasource: string;\n private match: string;\n private dateformat: string;\n private groupedData: any;\n private cdRef: ChangeDetectorRef;\n private promiseResolverFn: Function;\n private propsInitPromise: Promise<any>;\n private $ulEle: any;\n private _listAnimator: ListAnimator;\n private _listenerDestroyers: Array<any>;\n private debouncedFetchNextDatasetOnScroll: Function;\n private isDataChanged: boolean;\n private isListElementMovable: boolean;\n private ariaText: String;\n private _pageLoad;\n private _selectedItemsExist;\n\n private touching;\n private touched;\n\n constructor(\n inj: Injector,\n cdRef: ChangeDetectorRef,\n datePipe: ToDatePipe,\n app: App,\n appDefaults: AppDefaults,\n ngZone: NgZone,\n @Attribute('itemclass.bind') binditemclass: string,\n @Attribute('disableitem.bind') binddisableitem: string,\n @Attribute('dataset.bind') binddataset: string,\n @Attribute('datasource.bind') binddatasource: string,\n @Attribute('mouseenter.event') mouseEnterCB: string,\n @Attribute('mouseleave.event') mouseLeaveCB: string,\n statePersistence: StatePersistence,\n paginationService: PaginationService,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n let resolveFn: Function = noop;\n const propsInitPromise = new Promise(res => resolveFn = res);\n super(inj, WIDGET_CONFIG, explicitContext, propsInitPromise);\n this.propsInitPromise = propsInitPromise;\n this.promiseResolverFn = resolveFn;\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.SHELL);\n this.cdRef = cdRef;\n this.ngZone = ngZone;\n this.datePipe = datePipe;\n this.statePersistence = statePersistence;\n this.paginationService = paginationService;\n this._pageLoad = true;\n\n this.binditemclass = binditemclass;\n this.binddisableitem = binddisableitem;\n this.binddataset = binddataset;\n this.mouseEnterCB = mouseEnterCB;\n this.mouseLeaveCB = mouseLeaveCB;\n this.binddatasource = binddatasource;\n\n this.app = app;\n this.appDefaults = appDefaults;\n this.variableInflight = false;\n\n this.noDataFound = !binddataset;\n this.titleId = 'wmlist-' + generateGUId();\n\n // Updates pagination, filter, sort etc options for service and crud variables\n this._listenerDestroyers = [\n this.app.subscribe('check-state-persistence-options', options => {\n let dataSourceName = get(this.datasource, 'name');\n // in Prefabs, this.datasource is not resolved at the time of variable invocation, so additional check is required.\n if (!dataSourceName) {\n dataSourceName = extractDataSourceName(this.binddatasource);\n }\n if (get(options, 'variable.name') !== dataSourceName) {\n return;\n }\n this.handleStateParams(options);\n }),\n // Show loading status based on the variable life cycle\n this.app.subscribe('toggle-variable-state', this.handleLoading.bind(this)),\n this.app.subscribe('setup-cud-listener', param => {\n if (this.nativeElement.getAttribute('name') !== param) {\n return;\n }\n this._isDependent = true;\n })\n ];\n }\n\n public get selecteditem() {\n if (this.multiselect) {\n return getClonedObject(this._items);\n }\n if (isEmpty(this._items)) {\n return {};\n }\n return getClonedObject(this._items[0]);\n }\n\n public set selecteditem(items) {\n this._items.length = 0;\n this.deselectListItems();\n\n if (isArray(items)) {\n items.forEach(item => this.selectItem(item));\n } else {\n this.selectItem(items);\n }\n $appDigest();\n }\n\n /**\n * Returns list of widgets present on list item by considering name and index of the widget.\n * If we did'nt pass index, it returns array of all the widgets which are matching to widget name\n * @param widgteName: Name of the widget\n * @param index: Index of the widget\n */\n public getWidgets(widgteName: string, index?: number) {\n let $target;\n const retVal = [];\n\n if (!widgteName) {\n return;\n }\n\n if (!isDefined(index)) {\n forEach(this.listItems.toArray(), (el) => {\n $target = get(el.currentItemWidgets, widgteName);\n if ($target) {\n retVal.push($target);\n }\n });\n\n return retVal;\n }\n index = +index || 0;\n\n $target = get(this.listItems.toArray(), index);\n\n if ($target) {\n return [get($target.currentItemWidgets, widgteName)];\n }\n }\n\n // returns listitem reference by index value. This refers to the same method getListItemByIndex.\n public getItem(index: number) {\n return this.getListItemByIndex(index);\n }\n\n /**\n * Returns index of listItem(listItemDirective / listItemObject)\n * If item is a directive, index is fetched from listItems\n * If item is an object, index is fetched from fieldDefs\n */\n public getIndex(item: any) {\n if (item instanceof ListItemDirective) {\n return this.getListItemIndex(item);\n } else if (item) {\n return this.fieldDefs.findIndex((obj) => isEqual(obj, item));\n }\n }\n\n create() {\n if (this._isDependent) {\n this.triggerWMEvent('insert');\n }\n }\n\n editRow(item?) {\n if (this._isDependent) {\n let listItem;\n if (item) {\n listItem = this.getItemRefByIndexOrModel(item).item;\n }\n this.triggerWMEvent('update', listItem);\n }\n }\n\n update(item?) {\n this.editRow(item);\n }\n\n deleteRow(item?) {\n if (this._isDependent) {\n let listItem;\n if (item) {\n listItem = this.getItemRefByIndexOrModel(item).item;\n }\n this.triggerWMEvent('delete', listItem);\n }\n }\n\n delete(item?) {\n this.deleteRow(item);\n }\n\n handleLoading(data) {\n const dataSource = this.datasource;\n if (dataSource && dataSource.execute(DataSource.Operation.IS_API_AWARE) && isDataSourceEqual(data.variable, dataSource)) {\n this.ngZone.run(() => {\n this.handleStateParams(data);\n this.variableInflight = data.active;\n // Fix for [WMS-23772] Update nodatafound flag once the response is recieved from the server\n const totalEle = data.data?.pagination?.totalElements;\n if (!isUndefined(totalEle)) {\n this.noDataFound = totalEle === 0 ? true : false;\n } else { // totalelements is undefined\n this.noDataFound = isEmpty(data.data?.data);\n }\n });\n }\n }\n\n public triggerListItemSelection($el: JQuery<HTMLElement>, $event: Event) {\n if ($el && $el[0]) {\n const listItemContext = $el.data('listItemContext');\n // Trigger click event only if the list item is from the corresponding list.\n if (listItemContext.listComponent === this) {\n this.onItemClick($event, listItemContext);\n }\n }\n }\n\n // this method is called form other data widgets like table.\n public execute(operation, options) {\n if ([DataSource.Operation.IS_API_AWARE, DataSource.Operation.IS_PAGEABLE, DataSource.Operation.SUPPORTS_SERVER_FILTER].includes(operation)) {\n return false;\n }\n return this.datasource.execute(operation, options);\n }\n\n public handleKeyDown($event, action: string) {\n $event.stopPropagation();\n if ($event.keyCode !== 13 && $event.keyCode !== 9 && !(($event.target.classList.contains('form-control') || $event.target.classList.contains('note-editable')) && $event.keyCode === 32)) {\n $event.preventDefault();\n }\n\n const listItems: QueryList<ListItemDirective> = this.listItems;\n\n let presentIndex: number = this.getListItemIndex(this.lastSelectedItem);\n\n if (this.multiselect) {\n const firstIndex: number = this.getListItemIndex(this.firstSelectedItem);\n const selectCount: number = isArray(this.selecteditem) ? this.selecteditem.length : (isObject(this.selecteditem) ? 1 : 0);\n if (action === 'selectPrev') {\n if (presentIndex > 0) {\n if ((presentIndex <= firstIndex) && this.checkSelectionLimit(selectCount)) {\n this.lastSelectedItem = this.getListItemByIndex(presentIndex - 1);\n this.toggleListItemSelection(this.lastSelectedItem);\n } else if (presentIndex > firstIndex) {\n this.toggleListItemSelection(this.getListItemByIndex(presentIndex));\n this.lastSelectedItem = this.getListItemByIndex(presentIndex - 1);\n } else {\n this.invokeEventCallback('selectionlimitexceed', {$event});\n }\n }\n } else if (action === 'selectNext') {\n if (presentIndex < listItems.length - 1) {\n if ((presentIndex >= firstIndex) && this.checkSelectionLimit(selectCount)) {\n this.lastSelectedItem = this.getListItemByIndex(presentIndex + 1);\n this.toggleListItemSelection(this.lastSelectedItem);\n } else if (presentIndex < firstIndex) {\n this.toggleListItemSelection(this.getListItemByIndex(presentIndex));\n this.lastSelectedItem = this.getListItemByIndex(presentIndex + 1);\n } else {\n this.invokeEventCallback('selectionlimitexceed', {$event});\n }\n }\n }\n }\n if (action === 'focusPrev') {\n if (this.isListElementMovable) {\n presentIndex = presentIndex <= 0 ? 0 : (presentIndex);\n if (presentIndex === 0) {\n return;\n }\n\n this.lastSelectedItem = this.getListItemByIndex(presentIndex);\n const prevElt = this.getListItemByIndex(presentIndex - 1);\n prevElt.nativeElement.before(this.lastSelectedItem.nativeElement);\n this.lastSelectedItem.nativeElement.focus();\n this.statePersistence.removeWidgetState(this, 'selectedItem');\n const arr = this.listItems.toArray();\n [arr[presentIndex - 1], arr[presentIndex]] = [arr[presentIndex], arr[presentIndex - 1]];\n this.listItems.reset(arr);\n this.currentIndex = presentIndex;\n this.ariaText = \"selected \";\n } else {\n presentIndex = presentIndex <= 0 ? 0 : (presentIndex - 1);\n this.lastSelectedItem = this.getListItemByIndex(presentIndex);\n this.lastSelectedItem.nativeElement.focus();\n this.currentIndex = presentIndex + 1;\n this.ariaText = \"selected \";\n }\n } else if (action === 'focusNext') {\n if (this.isListElementMovable) {\n presentIndex = presentIndex < (listItems.length - 1) ? (presentIndex) : (listItems.length - 1);\n if (presentIndex === this.listItems.length - 1) {\n return;\n }\n\n this.lastSelectedItem = this.getListItemByIndex(presentIndex);\n const nextElt = this.getListItemByIndex(presentIndex + 1);\n nextElt.nativeElement.after(this.lastSelectedItem.nativeElement);\n this.lastSelectedItem.nativeElement.focus();\n this.statePersistence.removeWidgetState(this, 'selectedItem');\n const arr = this.listItems.toArray();\n [arr[presentIndex], arr[presentIndex + 1]] = [arr[presentIndex + 1], arr[presentIndex]];\n this.listItems.reset(arr);\n this.currentIndex = presentIndex + 2;\n this.ariaText = \"selected \";\n } else {\n presentIndex = presentIndex < (listItems.length - 1) ? (presentIndex + 1) : (listItems.length - 1);\n this.lastSelectedItem = this.getListItemByIndex(presentIndex);\n this.lastSelectedItem.nativeElement.focus();\n this.currentIndex = presentIndex + 1;\n this.ariaText = \"selected \";\n }\n } else if (action === 'select') {\n // if the enter click is pressed on the item which is not the last selected item, the find the item from which the event is originated.\n if (presentIndex === -1 || !$($event.target).closest(this.lastSelectedItem.nativeElement)) {\n const $li = $($event.target).closest('li.app-list-item');\n const $ul = $li.closest('ul.app-livelist-container');\n presentIndex = $ul.find('li.app-list-item').index($li);\n }\n this.onItemClick($event, this.getListItemByIndex(presentIndex));\n } else if (action === 'space') {\n if (!this.enablereorder) {\n return;\n }\n this.isListElementMovable = !this.isListElementMovable;\n this.onItemClick($event, this.getListItemByIndex(presentIndex));\n this.currentIndex = presentIndex + 1;\n if (this.isListElementMovable) {\n this.ariaText = `Item ${this.currentIndex} grabbed, current position `;\n this.$ulEle.data('oldIndex', presentIndex);\n } else {\n this.ariaText = `Item ${this.currentIndex} dropped, final position `;\n this.onUpdate($event, undefined, presentIndex);\n }\n }\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'dataset') {\n if (!nv && this.binddatasource && !this.datasource) {\n return;\n }\n this.onDataSetChange(nv);\n } else if (key === 'datasource') {\n if (this.dataset) {\n this.onDataSetChange(this.dataset);\n }\n } else if (key === 'navigation') {\n // Support for older projects where navigation type was advanced instead of classic\n if (nv === 'Advanced') {\n this.navigation = 'Classic';\n return;\n }\n switchClass(this.nativeElement, nv, ov);\n this.onNavigationTypeChange(nv);\n if (this.dataNavigator) {\n this.dataNavigator.navigationClass = this.paginationclass;\n }\n } else if (key === 'itemsperrow') {\n setListClass(this);\n } else if (key === 'tabindex') {\n return;\n } else if (key === 'pulltorefresh' && nv) {\n this.app.notify('pullToRefresh:enable');\n this.subscribeToPullToRefresh();\n } else if (key === 'paginationclass') {\n if (this.dataNavigator) {\n // Adding setTimeout because in pagination component updateNavSize method is overriding navigationclass\n setTimeout(() => this.dataNavigator.navigationClass = nv);\n }\n } else if (key === 'pagesize') {\n this.dataNavigator.options = {\n maxResults: nv\n };\n this.dataNavigator.widget.maxResults = nv;\n this.dataNavigator.maxResults = nv;\n } else if (key === 'enablereorder') {\n if (nv && this.$ulEle) {\n this.$ulEle.attr('aria-describedby', this.titleId);\n this.configureDnD();\n this.$ulEle.sortable('enable');\n } else if (this.$ulEle && !nv) {\n this.$ulEle.removeAttr('aria-describedby');\n this.$ulEle.sortable('disable');\n }\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n public onItemClick(evt: any, $listItem: ListItemDirective) {\n let selectCount: number;\n\n if (!$listItem.disableItem) {\n this.firstSelectedItem = this.firstSelectedItem || $listItem;\n // Setting selectCount value based number of items selected.\n selectCount = isArray(this.selecteditem) ? this.selecteditem.length : (isObject(this.selecteditem) ? 1 : 0);\n\n // Handling multiselect for mobile device\n if (this.multiselect && isMobile()) {\n if (this.checkSelectionLimit(selectCount) || $listItem.isActive) {\n this.toggleListItemSelection($listItem);\n } else {\n this.invokeEventCallback('selectionlimitexceed', {$event: evt});\n }\n } else if ((evt.ctrlKey || evt.metaKey) && this.multiselect) {\n if (this.checkSelectionLimit(selectCount) || $listItem.isActive) {\n this.firstSelectedItem = this.lastSelectedItem = $listItem;\n this.toggleListItemSelection($listItem);\n } else {\n this.invokeEventCallback('selectionlimitexceed', {$event: evt});\n }\n } else if (evt.shiftKey && this.multiselect) {\n let first = $listItem.context.index;\n let last = this.firstSelectedItem.context.index;\n\n // if first is greater than last, then swap values\n if (first > last) {\n last = [first, first = last][0];\n }\n if (this.checkSelectionLimit(last - first)) {\n this.clearSelectedItems();\n this.listItems.forEach(($liItem: ListItemDirective) => {\n const index = $liItem.context.index;\n if (index >= first && index <= last) {\n this.toggleListItemSelection($liItem);\n }\n });\n this.lastSelectedItem = $listItem;\n } else {\n this.invokeEventCallback('selectionlimitexceed', {$event: evt});\n }\n\n } else {\n if (!$listItem.isActive || selectCount > 1) {\n this.clearSelectedItems();\n this.toggleListItemSelection($listItem);\n this.firstSelectedItem = this.lastSelectedItem = $listItem;\n }\n }\n $appDigest();\n }\n }\n\n // Empty the list content on clear\n public clear() {\n this.updateFieldDefs([]);\n }\n\n /**\n * deselects item in the list.\n * @param val: index | model of the list item.\n */\n public deselectItem(val: any) {\n const listItem = this.getItemRefByIndexOrModel(val);\n if (listItem && listItem.isActive) {\n this.toggleListItemSelection(listItem);\n }\n }\n\n /**\n * selects item in the list.\n * @param val: index | model of the list item.\n */\n public selectItem(val, statePersistenceTriggered?) {\n const listItem = this.getItemRefByIndexOrModel(val);\n if (!listItem) {\n return;\n }\n if (!listItem.isActive) {\n this.toggleListItemSelection(listItem, statePersistenceTriggered);\n }\n // focus the element.\n listItem.nativeElement.focus();\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.handleHeaderClick = noop;\n setTimeout(() => {\n this.debouncedFetchNextDatasetOnScroll = this.paginationService.debouncedFetchNextDatasetOnScroll(this.dataNavigator, DEBOUNCE_TIMES.PAGINATION_DEBOUNCE_TIME, this);\n }, 0);\n this._items = [];\n this.fieldDefs = [];\n this.reorderProps = {\n minIndex: null,\n maxIndex: null\n };\n }\n\n ngAfterViewInit() {\n this.promiseResolverFn();\n this.propsInitPromise.then(() => {\n super.ngAfterViewInit();\n this.setUpCUDHandlers();\n this.selectedItemWidgets = this.multiselect ? [] : {};\n var ele = $(this.nativeElement).find('.app-livelist-container');\n\n if (this.enablereorder && !this.groupby) {\n if (ele) {\n ele.attr('aria-describedby', this.titleId);\n }\n this.configureDnD();\n }\n if (!this.enablereorder) {\n if (ele) {\n ele.removeAttr('aria-describedby');\n }\n }\n if (this.groupby && this.collapsible) {\n this.handleHeaderClick = handleHeaderClick;\n this.toggleAllHeaders = toggleAllHeaders.bind(undefined, this);\n }\n setListClass(this);\n });\n this.setupHandlers();\n const $ul = this.nativeElement.querySelector('ul.app-livelist-container');\n styler($ul as HTMLElement, this, APPLY_STYLES_TYPE.SCROLLABLE_CONTAINER);\n if (this.enablereorder) {\n if ($ul) {\n $ul.setAttribute('aria-describedby', this.titleId);\n }\n }\n if (!this.enablereorder) {\n if ($ul) {\n $ul.removeAttribute('aria-describedby');\n }\n }\n if (isMobileApp() && $ul.querySelector('.app-list-item-action-panel')) {\n this._listAnimator = new ListAnimator(this);\n }\n }\n\n ngOnDestroy() {\n if (this._listAnimator && this._listAnimator.$btnSubscription) {\n this._listAnimator.$btnSubscription.unsubscribe();\n }\n this._listenerDestroyers.forEach(d => d && d());\n super.ngOnDestroy();\n }\n\n ngOnDetach() {\n super.ngOnDetach();\n this._pageLoad = true;\n }\n\n protected handleEvent(node: HTMLElement, eventName: string, eventCallback: Function, locals: any) {\n // tap and doubleTap events are not getting propagated.So, using mouse events instead.\n const touchToMouse = {\n tap: 'click',\n doubletap: 'dblclick'\n };\n if (includes(['click', 'tap', 'dblclick', 'doubletap'], eventName)) {\n this.eventManager.addEventListener(\n this.nativeElement,\n touchToMouse[eventName] || eventName,\n (evt) => {\n const target = $(evt.target).closest('.app-list-item');\n if (target.length) {\n const listItemContext: ListItemDirective = target.data('listItemContext');\n if (!listItemContext.disableItem) {\n this.invokeEventCallback(eventName, {\n widget: listItemContext,\n $event: evt,\n item: listItemContext.item\n });\n }\n }\n }\n );\n }\n }\n\n private getConfiguredState() {\n const mode = this.statePersistence.computeMode(this.statehandler);\n return mode && mode.toLowerCase();\n }\n\n private handleStateParams(options) {\n if (this._pageLoad && this.getConfiguredState() !== 'none') {\n this._pageLoad = false;\n const widgetState = this.statePersistence.getWidgetState(this);\n if (get(widgetState, 'pagination')) {\n options.options = options.options || {};\n options.options.page = widgetState.pagination;\n }\n if (get(widgetState, 'selectedItem')) {\n this._selectedItemsExist = true;\n }\n }\n }\n\n private triggerWMEvent(eventName, item?) {\n $invokeWatchers(true);\n // If we have multiselect for the livelist(List with form template), in run mode deleting a record is getting failed. Becuase the selecteditem will be array of objects. So consider the last object.\n let row = this.multiselect ? last(this.selecteditem) : this.selecteditem;\n if (item) {\n row = item;\n }\n this.app.notify('wm-event', {eventName, widgetName: this.name, row: row});\n }\n\n private resetNavigation() {\n this.showNavigation = false;\n this.navControls = undefined;\n this.infScroll = false;\n this.onDemandLoad = false;\n }\n\n private enableBasicNavigation() {\n this.navControls = NAVIGATION_TYPE.BASIC;\n this.showNavigation = true;\n }\n\n private enableInlineNavigation() {\n this.navControls = NAVIGATION_TYPE.INLINE;\n }\n\n private enableClassicNavigation() {\n this.navControls = NAVIGATION_TYPE.CLASSIC;\n this.showNavigation = true;\n }\n\n private enablePagerNavigation() {\n this.navControls = NAVIGATION_TYPE.PAGER;\n this.showNavigation = true;\n }\n\n private setNavigationTypeNone() {\n this.navControls = NAVIGATION_TYPE.NONE;\n this.showNavigation = false;\n }\n\n private enableInfiniteScroll() {\n this.infScroll = true;\n }\n\n private enableOnDemandLoad() {\n this.onDemandLoad = true;\n this.showNavigation = true;\n }\n\n /**\n * Sets Navigation type for the list.\n * @param type\n */\n private onNavigationTypeChange(type) {\n this.resetNavigation();\n switch (type) {\n case NAVIGATION_TYPE.BASIC:\n this.enableBasicNavigation();\n break;\n case NAVIGATION_TYPE.INLINE:\n this.enableInlineNavigation();\n break;\n case NAVIGATION_TYPE.ADVANCED:\n case NAVIGATION_TYPE.CLASSIC:\n this.enableClassicNavigation();\n break;\n case NAVIGATION_TYPE.PAGER:\n this.enablePagerNavigation();\n break;\n case NAVIGATION_TYPE.NONE :\n this.setNavigationTypeNone();\n break;\n case NAVIGATION_TYPE.SCROLL:\n this.enableInfiniteScroll();\n break;\n case NAVIGATION_TYPE.ONDEMAND:\n this.enableOnDemandLoad();\n break;\n }\n }\n\n /**\n * Update fieldDefs property, fieldDefs is the model of the List Component.\n * fieldDefs is an Array type.\n * @param newVal\n */\n private updateFieldDefs(newVal: Array<any>) {\n if (this.infScroll || this.onDemandLoad) {\n [this.fieldDefs, this.currentPage] = this.paginationService.updateFieldsOnPagination(this, newVal);\n } else {\n this.fieldDefs = newVal;\n }\n\n if (this.orderby) {\n this.fieldDefs = getOrderedDataset(this.fieldDefs, this.orderby);\n }\n if (this.groupby) {\n this.groupedData = groupData(this, this.fieldDefs, this.groupby, this.match, this.orderby, this.dateformat, this.datePipe, undefined, this.appDefaults);\n }\n\n if (!this.fieldDefs.length) {\n this.noDataFound = true;\n this.selecteditem = undefined;\n }\n $appDigest();\n this.listItems.setDirty();\n }\n\n private onDataChange(newVal) {\n // Check for newVal is not empty\n if (!isEmpty(newVal)) {\n\n this.noDataFound = false;\n this.isDataChanged = true;\n\n if (this.datasource && this.datasource.execute(DataSource.Operation.IS_API_AWARE)) {\n // clone the the data in case of live and service variables to prevent the two-way binding for these variables.\n newVal = cloneDeep(newVal);\n }\n\n if (isObject(newVal) && !isArray(newVal)) {\n newVal = isEmpty(newVal) ? [] : [newVal];\n }\n\n if (isString(newVal)) {\n newVal = newVal.split(',');\n }\n\n // if the page number is greater than 1 on initial load then we render the first page.\n if (this.datasource && this.datasource.owner === 'App' && (this.infScroll || this.onDemandLoad) && !this.currentPage && this.datasource.execute(DataSource.Operation.GET_PAGING_OPTIONS).number > 0) {\n newVal = this.datasource.execute(DataSource.Operation.LIST_RECORDS, {\n 'page': 1\n });\n }\n\n if (isArray(newVal)) {\n if (newVal.length) {\n this.invokeEventCallback('beforedatarender', {$data: newVal});\n }\n this.updateFieldDefs(newVal);\n }\n } else {\n this.updateFieldDefs([]);\n }\n }\n\n // Updates the dataSource when pagination is enabled for the Component.\n private setupDataSource() {\n const dataNavigator = this.dataNavigator;\n\n dataNavigator.options = {\n maxResults: this.pagesize || 20\n };\n\n this.dataNavigatorWatched = true;\n\n if (this.navigatorResultWatch) {\n this.navigatorResultWatch.unsubscribe();\n }\n /*Register a watch on the \"result\" property of the \"dataNavigator\" so that the paginated data is displayed in the live-list.*/\n this.navigatorResultWatch = dataNavigator.resultEmitter.subscribe((newVal: any) => {\n this.onDataChange(newVal);\n }, true);\n /*De-register the watch if it is exists */\n if (this.navigatorMaxResultWatch) {\n this.navigatorMaxResultWatch.unsubscribe();\n }\n /*Register a watch on the \"maxResults\" property of the \"dataNavigator\" so that the \"pageSize\" is displayed in the live-list.*/\n this.navigatorMaxResultWatch = dataNavigator.maxResultsEmitter.subscribe((val) => {\n this.pagesize = val;\n });\n\n dataNavigator.maxResults = this.pagesize || 20;\n this.removePropertyBinding('dataset');\n // when list having \"datasetboundexpr\" attr indicates that list is bound to item context\n // when dataset is bound to \"item.FIELD\" then item context is passed as the datasource.\n const datasetBoundExpr = this.getAttr('datasetboundexpr');\n this.dataNavigator.setBindDataSet(\n this.binddataset,\n this.viewParent,\n datasetBoundExpr ? this.context : this.datasource,\n this.dataset,\n this.binddatasource,\n datasetBoundExpr,\n this.statehandler\n );\n }\n\n private onDataSetChange(newVal) {\n if (get(this.datasource, 'category') === 'wm.Variable' && this.getConfiguredState() !== 'none' && this._pageLoad) {\n const widgetState = this.statePersistence.getWidgetState(this);\n this._pageLoad = false;\n if (get(widgetState, 'pagination')) {\n this.dataNavigator.pageChanged({page: widgetState.pagination}, true);\n }\n if (get(widgetState, 'selectedItem')) {\n this._selectedItemsExist = true;\n }\n }\n if (!this.dataNavigatorWatched) {\n if (this.navigation && this.navigation !== NAVIGATION_TYPE.NONE) {\n this.setupDataSource();\n } else {\n this.onDataChange(newVal);\n }\n } else if (this.navigation && this.navigation !== NAVIGATION_TYPE.NONE) {\n // If navigation is already setup and datasource is changed, update the datasource on navigation\n this.dataNavigator.setDataSource(this.datasource);\n }\n }\n\n // All the ListItem's Active state is set to false.\n private deselectListItems() {\n this.listItems.forEach(item => item.isActive = false);\n }\n\n // Deselect all the ListItems and clear the selecteditem(InOutBound Property model)\n private clearSelectedItems() {\n this.deselectListItems();\n this._items.length = 0;\n $appDigest();\n }\n\n /**\n * return the ListItemDirective instance by checking the equality of the model.\n * @param listModel: model to be searched for\n * @returns ListItem if the model is matched else return null.\n */\n private getListItemByModel(listModel): ListItemDirective {\n return this.listItems.find((listItem) => {\n let itemObj = listItem.item;\n if (this.groupby && !has(listModel, '_groupIndex')) {\n // If groupby is enabled, item contains _groupIndex property which should be excluded while comparing model.\n itemObj = clone(itemObj);\n delete itemObj._groupIndex;\n }\n if (isEqual(itemObj, listModel)) {\n return true;\n }\n }) || null;\n }\n\n private updateSelectedItemsWidgets(statePersistenceTriggered?) {\n let obj = {}, widgetState;\n const pageNum = get(this.dataNavigator, 'dn.currentPage') || 1;\n if (this.getConfiguredState() !== 'none') {\n // remove previously configured selected items for current page and construct new ones later below.\n widgetState = this.statePersistence.getWidgetState(this) || {};\n if (get(widgetState, 'selectedItem')) {\n // when multiselect is on and an item is selected without pressing CTRL, previously selected items in state should be empty.\n if (this.multiselect && this.selecteditem.length === 1) {\n widgetState.selectedItem = [];\n } else {\n remove(widgetState.selectedItem, function (selectedItem: any) {\n return selectedItem.page === pageNum;\n });\n }\n }\n }\n if (this.multiselect) {\n (this.selectedItemWidgets as Array<WidgetRef>).length = 0;\n }\n this.listItems.forEach((item: ListItemDirective, index) => {\n if (item.isActive) {\n if (this.multiselect) {\n (this.selectedItemWidgets as Array<WidgetRef>).push(item.currentItemWidgets);\n } else {\n this.selectedItemWidgets = item.currentItemWidgets;\n }\n obj = {page: pageNum, index: index};\n if (get(widgetState, 'selectedItem') && this.multiselect) {\n if (!some(widgetState.selectedItem, obj)) {\n widgetState.selectedItem.push(obj);\n }\n } else {\n widgetState.selectedItem = [obj];\n }\n }\n });\n if (this.getConfiguredState() !== 'none' && !statePersistenceTriggered) {\n if (unsupportedStatePersistenceTypes.indexOf(this.navigation) < 0) {\n this.statePersistence.removeWidgetState(this, 'selectedItem');\n this.statePersistence.setWidgetState(this, {'selectedItem': widgetState.selectedItem});\n } else {\n console.warn('Retain State handling on Widget ' + this.name + ' is not supported for current pagination type.');\n }\n }\n }\n\n /**\n * Selects the listItem and updates selecteditem property.\n * If the listItem is already a selected item then deselects the item.\n * @param {ListItemDirective} $listItem: Item to be selected of deselected.\n */\n private toggleListItemSelection($listItem: ListItemDirective, statePersistenceTriggered?) {\n // item is not allowed to get selected if it is disabled.\n if ($listItem && !$listItem.disableItem) {\n let item = $listItem.item;\n if (this.groupby && has(item, '_groupIndex')) {\n // If groupby is enabled, item contains _groupIndex property which should be excluded from selecteditem.\n item = clone(item);\n delete item._groupIndex;\n }\n if ($listItem.isActive) {\n this._items = pullAllWith(this._items, [item], isEqual);\n $listItem.isActive = false;\n } else {\n // if multiselect is false, clear the selectItem list before adding an item to the selectItem list.\n if (!this.multiselect) {\n this.clearSelectedItems();\n }\n this._items.push(item);\n this.invokeEventCallback('select', {widget: $listItem, $data: item});\n $listItem.isActive = true;\n }\n this.updateSelectedItemsWidgets(statePersistenceTriggered);\n }\n }\n\n /**\n * Method is Invoked when the model for the List Widget is changed.\n * @param {QueryList<ListItemDirective>} listItems\n */\n private onListRender(listItems: QueryList<ListItemDirective>) {\n // Added render callback event. This method(onListRender) is calling multiple times so checking isDatachanged flag because this falg is changed whenever new data is rendered.\n if (this.isDataChanged) {\n // Whenever dataset is changed, trigger watchers to evaluate listitem bind expressions.\n $invokeWatchers(true);\n this.invokeEventCallback('render', {$data: this.fieldDefs});\n }\n if (this.isDataChanged && this.getConfiguredState() !== 'none' && listItems.length && this._selectedItemsExist) {\n const widgetState = this.statePersistence.getWidgetState(this);\n if (get(widgetState, 'selectedItem')) {\n this._selectedItemsExist = false;\n const selectedItemsLength = isArray(this.selecteditem) ? this.selecteditem.length : toNumber(!isEmpty(this.selecteditem));\n const currentPage = get(this.dataNavigator, 'dn.currentPage') || 1;\n widgetState.pagination = widgetState.pagination || 1;\n // to prevent item selection from being triggered more than once\n if (selectedItemsLength !== widgetState.selectedItem.length && widgetState.pagination === currentPage) {\n widgetState.selectedItem.forEach((item) => {\n if (item.page === currentPage) {\n this.selectItem(item.index, true);\n }\n });\n }\n }\n }\n const selectedItems = isArray(this.selecteditem) ? this.selecteditem : [this.selecteditem];\n\n this.firstSelectedItem = this.lastSelectedItem = null;\n\n // don't select first item if multi-select is enabled and at least item is already selected in the list.\n // don't select first item if state information has selected items\n if (listItems.length && this.selectfirstitem && !(this._items.length && this.multiselect) && this._selectedItemsExist !== false) {\n const $firstItem: ListItemDirective = listItems.first;\n\n if (\n !$firstItem.disableItem &&\n this.isDataChanged &&\n // \"infinite scroll\" or \"load on demand\" is enabled and at least one item is selected then dont alter the selected list items.\n !(\n (this.infScroll || this.onDemandLoad) &&\n this._items.length\n )\n ) {\n this.clearSelectedItems();\n this.firstSelectedItem = this.lastSelectedItem = $firstItem;\n // selecting the first record\n this.selectItem(0);\n }\n } else {\n this.deselectListItems();\n selectedItems.forEach(selecteditem => {\n const listItem: ListItemDirective = this.getListItemByModel(selecteditem);\n if (listItem) {\n listItem.isActive = true;\n this.lastSelectedItem = listItem;\n // focus the active element\n listItem.nativeElement.focus();\n }\n });\n }\n\n if (this.fieldDefs.length && this.infScroll) {\n const smoothScrollEl = this.$element.closest('[wmsmoothscroll]');\n // if smoothscroll is set to false, then native scroll has to be applied\n // otherwise smoothscroll events will be binded.\n if (isMobileApp() && smoothScrollEl.length && smoothScrollEl.attr('wmsmoothscroll') === 'true') {\n this.paginationService.bindIScrollEvt(this, DEBOUNCE_TIMES.PAGINATION_DEBOUNCE_TIME);\n } else {\n // In case of mobile app when modal exists, and list items height is greater than the modal content provide ccontainer a scrollable height\n const modalBody = this.$element.closest('.modal-body');\n const listHt = this.$element.find('ul').height();\n const modalHt = window.innerHeight - 140;\n if (isMobile() && modalBody.length && listHt > modalHt) {\n this.$element.css('height', modalHt + 'px');\n }\n this.paginationService.bindScrollEvt(this, '> ul', DEBOUNCE_TIMES.PAGINATION_DEBOUNCE_TIME);\n }\n }\n\n this.isDataChanged = false;\n }\n\n private setupHandlers() {\n this.listItems.changes.subscribe(listItems => {\n this.onListRender(listItems);\n this.cdRef.detectChanges();\n });\n // handle click event in capturing phase.\n this.nativeElement.querySelector('ul.app-livelist-container').addEventListener('click', ($event) => {\n let target = $($event.target).closest('.app-list-item');\n // Recursively find the current list item\n while (target.get(0) && (target.closest('ul.app-livelist-container').get(0) !== $event.currentTarget)) {\n target = target.parent().closest('.app-list-item');\n }\n this.triggerListItemSelection(target, $event);\n }, true);\n }\n\n // Triggers on drag start while reordering.\n private onReorderStart(evt, ui) {\n ui.placeholder.height(ui.item.height());\n this.$ulEle.data('oldIndex', ui.item.index());\n }\n\n // Triggers during sorting\n private onSort(evt, ui) {\n // In case of infinite scroll, when the element doesn't have scroll enabled\n // on dragging the element to last item's position manually trigger loading of next items\n if (this.infScroll) {\n const lastItemOffset = this.$ulEle.find(`[listitemindex=${this.fieldDefs.length - 1}]`).offset();\n if (lastItemOffset && lastItemOffset.top < ui.offset.top) {\n this.paginationService.bindScrollEvt(this, '> ul', DEBOUNCE_TIMES.PAGINATION_DEBOUNCE_TIME);\n this.debouncedFetchNextDatasetOnScroll();\n }\n }\n }\n\n // Triggers after the sorting.\n private onUpdate(evt, ui, presentIndex?) {\n const data = this.fieldDefs;\n // If ui is not present then it is called from drag and drop using keyboard\n const newIndex = ui === undefined ? presentIndex : ui.item.index();\n const oldIndex = this.$ulEle.data('oldIndex');\n\n const minIndex = min([newIndex, oldIndex]);\n const maxIndex = max([newIndex, oldIndex]);\n\n const draggedItem = pullAt(data, oldIndex)[0];\n // Modify the data list only if we find a draggedItem\n if (draggedItem) {\n if (this.getConfiguredState() !== 'none') {\n this.statePersistence.removeWidgetState(this, 'selectedItem');\n }\n\n this.reorderProps.minIndex = min([minIndex, this.reorderProps.minIndex]);\n this.reorderProps.maxIndex = max([maxIndex, this.reorderProps.maxIndex]);\n\n data.splice(newIndex, 0, draggedItem);\n\n this.cdRef.markForCheck();\n this.cdRef.detectChanges();\n const $changedItem = {\n oldIndex: oldIndex,\n newIndex: newIndex,\n item: data[newIndex]\n };\n this.invokeEventCallback('reorder', {$event: evt, $data: data, $changedItem});\n this.$ulEle.removeData('oldIndex');\n }\n }\n\n // configures reordering the list items.\n private configureDnD() {\n let appendTo;\n const modalEl = $(document).find('.modal');\n if (this.getAttr('height')) { // when height is applied to the list, append should be the ul's parent as scroll is applied to the parent\n appendTo = 'parent';\n } else if (modalEl.length) { // In case of dialog, appendTo should be the modal ele\n appendTo = modalEl[modalEl.length - 1];\n } else { // As default append to should be body\n appendTo = 'body';\n }\n\n const options = isMobileApp() ? {} : {\n appendTo: appendTo,\n };\n\n const $el = $(this.nativeElement);\n this.$ulEle = $el.find('.app-livelist-container');\n\n configureDnD(this.$ulEle, options, this.onReorderStart.bind(this), this.onUpdate.bind(this), this.onSort.bind(this));\n\n this.$ulEle.droppable({'accept': '.app-list-item'});\n\n if (isMobileApp()) {\n this.$ulEle.sortable('disable');\n this.$ulEle.on('touchstart', function (event) {\n let self = this;\n if (!self.touching) {\n if (self.touched) {\n clearTimeout(self.touched);\n }\n setTimeout(() => {\n //Prevent context menu on mobile (IOS/ANDROID)\n if (event.cancelable) {\n event.preventDefault();\n }\n }, 50);\n self.touched = setTimeout(() => {\n $(event.currentTarget).addClass('no-selection');\n //Enable draggable\n $(event.currentTarget).sortable('enable');\n\n //Set internal flag\n self.touching = true;\n\n //trigger touchstart again to enable draggable through touch punch\n $(self).trigger(event);\n\n //Choose preferred duration for taphold\n }, 350);\n }\n }).on('touchend', function (event) {\n this.touching = false;\n $(event.currentTarget).removeClass('no-selection');\n\n //Disable draggable to enable default behaviour\n $(event.currentTarget).sortable('disable');\n\n clearTimeout(this.touched);\n }).on('touchmove', function () {\n clearTimeout(this.touched);\n });\n }\n\n }\n\n // returns true if the selection limit is reached.\n private checkSelectionLimit(count: number) {\n return (!this.selectionlimit || count < this.selectionlimit);\n }\n\n // returns listitem reference by index value.\n private getListItemByIndex(index: number): ListItemDirective {\n return this.listItems.toArray()[index];\n }\n\n /**\n * return index of an (listItemDirective) in the listItem\n * @param {ListItemDirective} item\n * @returns {number}\n */\n private getListItemIndex(item: ListItemDirective) {\n return this.listItems.toArray().indexOf(item);\n }\n\n /**\n * Returns ListItem Reference based on the input provided.\n * @param val: index | model of the list item.\n * @returns {ListItemDirective}\n */\n private getItemRefByIndexOrModel(val: any): ListItemDirective {\n let listItem: ListItemDirective;\n if (isNumber(val)) {\n listItem = this.getListItemByIndex(val);\n } else {\n listItem = this.getListItemByModel(val);\n }\n return listItem;\n }\n\n private beforePaginationChange($event, $index) {\n this.invokeEventCallback('paginationchange', {$event, $index});\n }\n\n trackByFn($index: number) {\n return $index; // Return a unique identifier for each item\n }\n\n // Invoke the datasource variable by default when pulltorefresh event is not specified.\n private subscribeToPullToRefresh() {\n this._listenerDestroyers.push(this.app.subscribe('pulltorefresh', () => {\n if (this.datasource && this.datasource.listRecords) {\n this.datasource.listRecords();\n }\n }));\n }\n\n private setUpCUDHandlers() {\n const $addItem = document.getElementsByClassName(\"add-list-item\")[0];\n if ($addItem) {\n // Triggered on click of add action\n $addItem.addEventListener('click', evt => {\n this.create();\n });\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { WmComponentsModule } from '@wm/components/base';\nimport { PaginationModule } from '@wm/components/data/pagination';\n\nimport { ListComponent } from './list.component';\nimport { ListItemDirective } from './list-item.directive';\n\nconst components = [\n ListComponent,\n ListItemDirective\n];\n\n@NgModule({\n imports: [\n CommonModule,\n PaginationModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class ListModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i2.ListComponent"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/data/list/src/list.props.ts","../../../../../projects/components/widgets/data/list/src/list-item.directive.ts","../../../../../projects/components/widgets/data/list/src/list.animator.ts","../../../../../projects/components/widgets/data/list/src/list.component.html","../../../../../projects/components/widgets/data/list/src/list.component.ts","../../../../../projects/components/widgets/data/list/src/list.module.ts","../../../../../projects/components/widgets/data/list/src/index.ts"],"sourcesContent":["import { isMobileApp } from '@wm/core';\n\nimport { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-list',\n new Map(\n [\n ['boundarylinks', {value: false, ...PROP_BOOLEAN}],\n ['class', PROP_STRING],\n ['collapsible', PROP_BOOLEAN],\n ['dateformat', PROP_STRING],\n ['dataset', PROP_ANY],\n ['datasource', PROP_ANY],\n ['direction', {value: 'vertical', ...PROP_STRING}],\n ['directionlinks', {value: true, ...PROP_BOOLEAN}],\n ['disableitem', PROP_BOOLEAN],\n ['enablereorder', PROP_BOOLEAN],\n ['forceellipses', {value: true, ...PROP_BOOLEAN}],\n ['groupby', PROP_STRING],\n ['iconclass', PROP_STRING],\n ['itemclass', {value: '', ...PROP_STRING}],\n ['itemsperrow', PROP_STRING],\n ['listclass', {value: 'list-group', ...PROP_STRING}],\n ['multiselect', PROP_BOOLEAN],\n ['loadingdatamsg', {value : 'Loading...', ...PROP_STRING}],\n ['loadingicon', {value : 'fa fa-circle-o-notch', ...PROP_STRING}],\n ['match', PROP_STRING],\n ['maxsize', {value: 5, ...PROP_NUMBER}],\n ['name', PROP_STRING],\n ['navigation', PROP_STRING],\n ['navigationalign', {value: 'left', ...PROP_STRING}],\n ['nodatamessage', {value : 'No data found', ...PROP_STRING}],\n ['ondemandmessage', {value : 'Load More', ...PROP_STRING}],\n ['orderby', PROP_STRING],\n ['paginationclass', PROP_STRING],\n ['pagesize', PROP_NUMBER],\n ['pulltorefresh', {value: isMobileApp(), ...PROP_BOOLEAN}],\n ['selectfirstitem', PROP_BOOLEAN],\n ['selectionlimit', PROP_NUMBER],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['showcount', PROP_BOOLEAN],\n ['showrecordcount', PROP_BOOLEAN],\n ['statehandler', {value: 'none', ...PROP_STRING}],\n ['subheading', PROP_STRING],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['title', PROP_STRING]\n ]\n )\n );\n};\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n Injector,\n Input,\n OnInit,\n Optional,\n ViewContainerRef\n} from '@angular/core';\n\nimport {Observable, Subject} from 'rxjs';\n\nimport {$watch, App} from '@wm/core';\n\nimport {ListComponent} from './list.component';\nimport {widgetIdGenerator} from \"@wm/components/base\";\nimport {BaseFormComponent} from \"@wm/components/input\";\n\ndeclare const $;\n\n@Directive({\n selector: '[wmListItem]',\n exportAs: 'listItemRef'\n})\nexport class ListItemDirective implements OnInit, AfterViewInit {\n\n public item;\n public context;\n public destroy: Subject<any> = new Subject();\n public destroy$: Observable<any> = this.destroy.asObservable();\n public nativeElement: HTMLElement;\n public readonly listComponent: ListComponent;\n\n private itemClass = '';\n private _currentItemWidgets = {};\n private viewContainerRef: ViewContainerRef;\n /**\n * To avoid re-rendering of widget, passing unique id as contextKey to createCustomInjector\n */\n protected trackId = widgetIdGenerator.nextUid();\n\n @HostBinding('class.active') isActive = false;\n @HostBinding('class.disable-item') disableItem = false;\n\n @HostListener('focus')\n onFocus() {\n // maintains which element is focused/selected most recently.\n this.listComponent.lastSelectedItem = this;\n }\n\n get $index() {\n return this.context.index;\n }\n\n get $even() {\n return this.context.even;\n }\n\n get $odd() {\n return this.context.odd;\n }\n\n get $first() {\n return this.context.first;\n }\n\n get $last() {\n return this.context.last;\n }\n\n get currentItemWidgets () {\n const componentElements = Array.from(this.nativeElement.querySelectorAll('[widget-id]'));\n return Object.assign(this._currentItemWidgets, componentElements.reduce((result, comp: any) => {\n result[comp.widget.name] = comp.widget;\n return result;\n }, {}));\n }\n\n @Input() set wmListItem(val) {\n this.item = val;\n }\n\n constructor(private inj: Injector, elRef: ElementRef, private app: App, @Optional() public _viewParent: ListComponent) {\n this.viewContainerRef = inj.get(ViewContainerRef);\n this.nativeElement = elRef.nativeElement;\n this.listComponent = _viewParent;\n // this.context = (<NgForOfContext<ListItemDirective>>(<any>inj).view.context);\n this.context = (this.inj as any)._lView[8];\n //this.context = (this.viewContainerRef as any)._hostLView.find(t => t && !!t.$implicit);\n this.itemClassWatcher(this.listComponent);\n this.disableItemWatcher(this.listComponent);\n $(this.nativeElement).data('listItemContext', this);\n }\n\n private registerWatch(expression: string, callback: Function) {\n // Removing ngFor context as the same properties are availble on listitem scope.\n // passing viewparent context for accessing varibales and widgets.\n //[CSP]: expression will be generated in the component as e.g. 'item.className'\n this.destroy$.subscribe($watch(expression, (this.listComponent as any).viewParent, this, callback));\n }\n\n private itemClassWatcher(listComponent: ListComponent) {\n if (listComponent.binditemclass) {\n this.registerWatch(listComponent.binditemclass, nv => this.itemClass = nv || '');\n } else {\n this.itemClass = listComponent.itemclass;\n }\n }\n\n private disableItemWatcher($list: ListComponent) {\n if ($list.binddisableitem) {\n this.registerWatch($list.binddisableitem, nv => this.disableItem = nv || false);\n } else {\n this.disableItem = $list.disableitem || false;\n }\n }\n\n private setUpCUDHandlers() {\n const $editItem = this.nativeElement.querySelector('.edit-list-item');\n const $deleteItem = this.nativeElement.querySelector('.delete-list-item');\n\n if ($editItem) {\n // Triggered on click of edit action\n $editItem.addEventListener('click', evt => {\n this.listComponent.update();\n });\n }\n\n if ($deleteItem) {\n // Triggered on click of delete action\n $deleteItem.addEventListener('click', evt => {\n this.listComponent.delete();\n });\n }\n }\n ngOnInit() {\n if (this.listComponent.mouseEnterCB) {\n this.nativeElement.addEventListener('mouseenter', ($event) => {\n this.listComponent.invokeEventCallback('mouseenter', {widget: this, $event});\n });\n }\n if (this.listComponent.mouseLeaveCB) {\n this.nativeElement.addEventListener('mouseleave', ($event) => {\n this.listComponent.invokeEventCallback('mouseleave', {widget: this, $event});\n });\n }\n // adding item attribute on every list item\n $(this.nativeElement).attr('listitemindex', this.$index);\n }\n\n ngAfterViewInit() {\n this.setUpCUDHandlers();\n const componentElements = Array.from(this.nativeElement.querySelectorAll('[widget-id]'));\n componentElements.forEach((component: any) => {\n if(component.widget instanceof BaseFormComponent) {\n if(!component.widget.$attrs.get('datavaluesource.bind')) {\n component.widget.datavaluesource = this.listComponent['datasource'];\n }\n }\n });\n }\n}\n","import { QueryList } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { SwipeAnimation } from '@swipey';\nimport { ButtonComponent } from '@wm/components/input';\n\nimport { ListComponent } from './list.component';\nimport {map, reduce} from \"lodash-es\";\n\ndeclare const $;\n\nexport class ListAnimator extends SwipeAnimation {\n private $el: JQuery<HTMLElement>;\n private li: JQuery<HTMLElement>;\n private limit: number;\n private transitionProportions: any;\n private rightChildrenCount: number;\n private leftChildrenCount: number;\n private position: string;\n private actionPanel: JQuery<HTMLElement>;\n private actionItems: QueryList<ButtonComponent>;\n public $btnSubscription: Subscription;\n\n constructor(private list: ListComponent) {\n super();\n this.$el = $(this.list.getNativeElement()).find('ul.app-livelist-container').first();\n\n this.leftChildrenCount = this.$el.find('>.app-list-item-left-action-panel > button:visible').length;\n this.rightChildrenCount = this.$el.find('>.app-list-item-right-action-panel > button:visible').length;\n\n // when there are no children in both the templates then do not apply swipeAnimation;\n if (!this.leftChildrenCount && !this.rightChildrenCount) {\n return;\n }\n\n // initialise swipe animation on the list component.\n this.init(this.$el);\n\n // retrieves all the button components which are placed outside the listTemplate.\n this.$btnSubscription = this.list.btnComponents.changes.subscribe(items => this.actionItems = items);\n }\n\n // This method sets the css for left or right action panels based on the template. Appends the actionTemplate before li.\n private createActionPanel(li: JQuery<HTMLElement>, actionPanelTemplate: JQuery<HTMLElement>): JQuery<HTMLElement> {\n actionPanelTemplate.css({\n width: li.outerWidth() + 'px',\n height: li.outerHeight() + 'px',\n marginBottom: -1 * li.outerHeight() + 'px',\n float: 'left',\n padding: 0\n });\n\n return actionPanelTemplate.insertBefore(li);\n }\n\n // Returns the total width occupied by all the children inside the element\n private computeTotalChildrenWidth($ele: JQuery<HTMLElement>): number {\n return reduce($ele.children(), (totalWidth, el) => {\n return totalWidth + $(el).outerWidth();\n }, 0);\n }\n\n // Returns amount of transition to be applied on element when swiped left or right\n private computeTransitionProportions($ele: JQuery<HTMLElement>): number {\n const totalWidth = this.computeTotalChildrenWidth($ele);\n const reverse = this.position === 'right';\n let d = 0;\n // @ts-ignore\n return map($ele.children(), e => {\n const f = (totalWidth - d) / totalWidth;\n d += $(e).outerWidth();\n return reverse ? f : (d / totalWidth);\n });\n }\n\n // Resets the transform applied on the element.\n private resetElement(el: JQuery<HTMLElement>): void {\n if (el) {\n el.css({\n transform: 'none',\n transition: 'none'\n });\n }\n }\n\n private resetState(): void {\n this.resetElement(this.li);\n this.resetElement(this.actionPanel);\n if (this.actionPanel) {\n this.actionPanel = null;\n }\n }\n\n // Returns the target button (child element) inside the left and right actionPanels.\n private getChildActionElement(actionTemplate): JQuery<HTMLElement> {\n if (actionTemplate.children().length) {\n if (this.position === 'left') {\n return actionTemplate.children().first();\n }\n return actionTemplate.children().last();\n }\n }\n\n // create the actionPanels and set the background-color for remaining panel as that of first child element\n // calculates the children's width and its transition proportionates.\n private initActionPanel(actionTemplate: JQuery<HTMLElement>): void {\n this.actionPanel = this.createActionPanel(this.li, actionTemplate);\n this.actionPanel.css({\n backgroundColor: this.getChildActionElement(this.actionPanel).css('background-color')\n });\n this.limit = this.computeTotalChildrenWidth(this.actionPanel);\n this.transitionProportions = this.computeTransitionProportions(this.actionPanel);\n }\n\n public bounds(e?: any, $d?: number): any {\n const target = $(e.target).closest('li');\n // default bounds when action template markup is not available.\n let bounds: {} = {\n strictUpper: true,\n strictLower: true,\n lower: 0,\n center: 0,\n upper: 0\n };\n // apply swipe animation only on list items having \"app-list-item\" class.\n if (!target.hasClass('app-list-item')) {\n return bounds;\n }\n if (!this.li || this.li[0] !== target[0]) {\n let selector = $d > 0 ? '.app-list-item-left-action-panel' : '.app-list-item-right-action-panel';\n let actionTemplate = this.$el.find('>' + selector);\n\n // when groupby is set select the action panel from the list group items.\n if (!actionTemplate.length && this.list.groupby) {\n selector = 'li > ul.list-group >' + selector;\n actionTemplate = this.$el.find('>' + selector);\n }\n\n // check for children visiblity. If children are visible then initiate the action panel.\n if (!actionTemplate.length || !actionTemplate.find('button:visible').length) {\n return bounds;\n }\n\n this.resetState();\n this.li = target;\n\n this.position = actionTemplate.attr('position');\n this.initActionPanel(actionTemplate);\n\n if ($d > 0) {\n // bounds while swiping from right to left to open left action panel. It can be moved upto limit value (Upper bound).\n bounds = {\n strictUpper: false,\n lower: 0,\n center: 0,\n upper: this.limit\n };\n } else {\n // bounds while swiping from left to right to open right action panel. It can be moved in reverse direction with -limit value (lower bound).\n bounds = {\n strictLower: false,\n lower: -this.limit,\n center: 0,\n upper: 0\n };\n }\n } else if (this.position === 'left') {\n // when left action panel is visible (i.e. center at limit value) then this can be moved by distance (limit) in reverse direction to close the view.\n bounds = {\n strictUpper: false,\n lower: -this.limit,\n center: this.limit\n };\n } else if (this.position === 'right') {\n // when right action panel is visible (i.e. center at -limit value) then this can be moved by distance (limit) to close the view.\n bounds = {\n center: -this.limit,\n upper: this.limit,\n strictLower: false\n };\n }\n return bounds;\n }\n\n public context(): any {\n return {\n computeActionTransition: (index: number, $d: number): number => {\n const sign = $d > 0 ? 1 : -1;\n\n if (sign * $d > this.limit) {\n // once the distance swiped is beyond the limit, then calculate the proportionate distance moved after the limit value.\n return ($d - sign * this.limit) + (this.transitionProportions[index] * sign * this.limit);\n }\n return this.transitionProportions[index] * $d;\n }\n };\n }\n\n public animation(): any {\n return [{\n target: () => this.li,\n css: {\n transform: 'translate3d(${{$D + $d}}px, 0, 0)'\n }\n }, { // styles to be applied on the child elements of action panel\n target: () => (this.actionPanel && this.actionPanel.children()),\n css: {\n transform: 'translate3d(${{computeActionTransition($i, $D + $d)}}px, 0, 0)'\n }\n }];\n }\n\n // Triggers full swipe event on the target element.\n public invokeFullSwipeEvt($event: Event): void {\n let target, actions, index;\n // Check if button are visible or not, invoke the tap event of the last button which is visible.\n if (this.position === 'left') {\n actions = this.actionItems.filter(btn => {\n return btn.getAttr('swipe-position') === 'left' && btn.$element.is(':visible');\n });\n index = 0;\n } else {\n actions = this.actionItems.filter(btn => {\n return btn.getAttr('swipe-position') === 'right' && btn.$element.is(':visible');\n });\n index = actions.length - 1;\n }\n target = actions[index];\n if (target && target.hasEventCallback('tap')) {\n target.invokeEventCallback('tap', {$event});\n }\n this.resetState();\n this.li = null;\n }\n\n // Called when swipeEnd is triggered. d contains the total distance covered by the element until touchEnd.\n public onAnimation($event: Event, d: number): void {\n // set the selecteditem on the list component on swipe.\n this.list.triggerListItemSelection(this.li, $event);\n if (this.actionPanel && this.actionPanel.attr('enablefullswipe') === 'true') {\n const sign = d > 0 ? 1 : -1;\n const $el = this.getChildActionElement(this.actionPanel);\n if ($el) {\n const index = this.position === 'right' ? this.rightChildrenCount - 1 : 0;\n // proportionate amount of distance covered by the target element.\n const distPercentage = this.transitionProportions[index] * sign * d * 100 / (this.li.outerWidth() - this.limit + $el.width());\n\n // If distance travelled by the target button element is more than 50% of the list item width then invoke the fullswipe.\n if (distPercentage > 50) {\n // invoke fullswipe event\n this.invokeFullSwipeEvt($event);\n }\n }\n }\n }\n\n public onLower(): void {\n if (this.position === 'left') {\n this.resetState();\n this.li = null;\n }\n }\n\n public onUpper(): void {\n if (this.position === 'right') {\n this.resetState();\n this.li = null;\n }\n }\n\n public threshold(): number {\n return 10;\n }\n}\n","<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\"\n [ngTemplateOutletInjector]=\"createCustomInjector('falt_' + listItemRef.trackId, {item: item, $index: $index, itemRef: listItemRef, $first: $first, $last: $last, currentItemWidgets: listItemRef.currentItemWidgets})\"\n [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; let groupIndex = index;\" 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 <li class=\"list-group-container\">\n <ul class=\"list-group clearfix {{direction === 'horizontal' ? 'app-horizontal-list': ''}}\">\n <li *ngFor=\"let item of groupObj.data; index as $index; trackBy: trackByFn; 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\"\n [ngTemplateOutletInjector]=\"createCustomInjector('group_' + listItemRef.trackId, {item: item, $index: $index, itemRef: listItemRef, $first: $first, $last: $last, currentItemWidgets: listItemRef.currentItemWidgets})\"\n [ngTemplateOutletContext]=\"{item: item, $index: $index, itemRef: listItemRef, $first: $first, $last: $last, currentItemWidgets: listItemRef.currentItemWidgets}\"></ng-container>\n </li>\n </ul>\n </li>\n </ul>\n </li>\n</ng-template>\n","import {\n AfterViewInit,\n Attribute,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef, Inject,\n Injector,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n QueryList,\n TemplateRef,\n ViewChild,\n ViewChildren\n} from '@angular/core';\n\nimport {Subscription} from 'rxjs';\n\nimport {\n $appDigest,\n $invokeWatchers,\n App,\n AppDefaults,\n DataSource,\n getClonedObject,\n isDataSourceEqual,\n isDefined,\n isMobile,\n isMobileApp,\n isObject,\n noop,\n switchClass,\n StatePersistence,\n PaginationService,\n setListClass,\n generateGUId\n} from '@wm/core';\nimport {\n APPLY_STYLES_TYPE,\n configureDnD,\n DEBOUNCE_TIMES,\n getOrderedDataset,\n groupData,\n handleHeaderClick,\n NAVIGATION_TYPE,\n unsupportedStatePersistenceTypes,\n provideAsWidgetRef,\n StylableComponent,\n styler,\n ToDatePipe,\n toggleAllHeaders,\n WidgetRef,\n extractDataSourceName\n} from '@wm/components/base';\nimport {PaginationComponent} from '@wm/components/data/pagination';\nimport {ButtonComponent} from '@wm/components/input';\n\nimport {registerProps} from './list.props';\nimport {ListItemDirective} from './list-item.directive';\nimport {ListAnimator} from './list.animator';\nimport {\n clone,\n cloneDeep,\n forEach,\n get, has,\n includes,\n isArray,\n isEmpty,\n isEqual,\n isNumber,\n isString,\n isUndefined,\n last, max, min, pullAllWith, pullAt, remove, some, toNumber\n} from \"lodash-es\";\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'app-livelist app-panel';\nconst WIDGET_CONFIG = {widgetType: 'wm-list', hostClass: DEFAULT_CLS};\n\n@Component({\n selector: 'div[wmList]',\n templateUrl: './list.component.html',\n providers: [\n provideAsWidgetRef(ListComponent)\n ]\n})\nexport class ListComponent extends StylableComponent implements OnInit, AfterViewInit, OnDestroy {\n static initializeProps = registerProps();\n\n @ContentChild('listTemplate') listTemplate: TemplateRef<ElementRef>;\n\n @ContentChild('listLeftActionTemplate') listLeftActionTemplate: TemplateRef<ElementRef>;\n @ContentChild('listRightActionTemplate') listRightActionTemplate: TemplateRef<ElementRef>;\n @ContentChildren(ButtonComponent) btnComponents;\n\n @ViewChild(PaginationComponent) dataNavigator;\n @ViewChildren(ListItemDirective) listItems: QueryList<ListItemDirective>;\n public noDataFound: boolean;\n public lastSelectedItem: ListItemDirective;\n public fieldDefs: Array<any>;\n public disableitem;\n public navigation: string;\n public navigationalign: string;\n public pagesize: number;\n public dataset: any;\n public multiselect: boolean;\n public selectfirstitem: boolean;\n public orderby: string;\n public loadingicon: string;\n public paginationclass: string;\n public ondemandmessage: string;\n public loadingdatamsg: string;\n public selectionlimit: number;\n public infScroll: boolean;\n public enablereorder: boolean;\n public itemsperrow: string;\n public itemclass: string;\n public selectedItemWidgets: Array<WidgetRef> | WidgetRef;\n public variableInflight;\n public name;\n public currentPage;\n public direction;\n public tabindex;\n public handleHeaderClick: Function;\n public toggleAllHeaders: void;\n public groupby: string;\n public collapsible: string;\n public datePipe: ToDatePipe;\n public binditemclass: string;\n public binddisableitem: string;\n public binddataset: string;\n public mouseEnterCB: string;\n public mouseLeaveCB: string;\n public pulltorefresh: boolean;\n public title: string;\n public subheading: string;\n public iconclass: string;\n public listclass: any;\n public statehandler: any;\n public currentIndex: number;\n public titleId: string;\n _isDependent;\n private itemsPerRowClass: string;\n private firstSelectedItem: ListItemDirective;\n private navigatorMaxResultWatch: Subscription;\n private navigatorResultWatch: Subscription;\n private navControls: string;\n private onDemandLoad: boolean;\n private _items: Array<any>;\n private dataNavigatorWatched: boolean;\n private datasource: any;\n private showNavigation: boolean;\n private reorderProps: any;\n private app: any;\n private appDefaults: any;\n private ngZone: NgZone;\n private statePersistence: StatePersistence;\n private paginationService: PaginationService;\n private binddatasource: string;\n private match: string;\n private dateformat: string;\n private groupedData: any;\n private cdRef: ChangeDetectorRef;\n private promiseResolverFn: Function;\n private propsInitPromise: Promise<any>;\n private $ulEle: any;\n private _listAnimator: ListAnimator;\n private _listenerDestroyers: Array<any>;\n private debouncedFetchNextDatasetOnScroll: Function;\n private isDataChanged: boolean;\n private isListElementMovable: boolean;\n private ariaText: String;\n private _pageLoad;\n private _selectedItemsExist;\n\n private touching;\n private touched;\n\n constructor(\n inj: Injector,\n cdRef: ChangeDetectorRef,\n datePipe: ToDatePipe,\n app: App,\n appDefaults: AppDefaults,\n ngZone: NgZone,\n @Attribute('itemclass.bind') binditemclass: string,\n @Attribute('disableitem.bind') binddisableitem: string,\n @Attribute('dataset.bind') binddataset: string,\n @Attribute('datasource.bind') binddatasource: string,\n @Attribute('mouseenter.event') mouseEnterCB: string,\n @Attribute('mouseleave.event') mouseLeaveCB: string,\n statePersistence: StatePersistence,\n paginationService: PaginationService,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n let resolveFn: Function = noop;\n const propsInitPromise = new Promise(res => resolveFn = res);\n super(inj, WIDGET_CONFIG, explicitContext, propsInitPromise);\n this.propsInitPromise = propsInitPromise;\n this.promiseResolverFn = resolveFn;\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.SHELL);\n this.cdRef = cdRef;\n this.ngZone = ngZone;\n this.datePipe = datePipe;\n this.statePersistence = statePersistence;\n this.paginationService = paginationService;\n this._pageLoad = true;\n\n this.binditemclass = binditemclass;\n this.binddisableitem = binddisableitem;\n this.binddataset = binddataset;\n this.mouseEnterCB = mouseEnterCB;\n this.mouseLeaveCB = mouseLeaveCB;\n this.binddatasource = binddatasource;\n\n this.app = app;\n this.appDefaults = appDefaults;\n this.variableInflight = false;\n\n this.noDataFound = !binddataset;\n this.titleId = 'wmlist-' + generateGUId();\n\n // Updates pagination, filter, sort etc options for service and crud variables\n this._listenerDestroyers = [\n this.app.subscribe('check-state-persistence-options', options => {\n let dataSourceName = get(this.datasource, 'name');\n // in Prefabs, this.datasource is not resolved at the time of variable invocation, so additional check is required.\n if (!dataSourceName) {\n dataSourceName = extractDataSourceName(this.binddatasource);\n }\n if (get(options, 'variable.name') !== dataSourceName) {\n return;\n }\n this.handleStateParams(options);\n }),\n // Show loading status based on the variable life cycle\n this.app.subscribe('toggle-variable-state', this.handleLoading.bind(this)),\n this.app.subscribe('setup-cud-listener', param => {\n if (this.nativeElement.getAttribute('name') !== param) {\n return;\n }\n this._isDependent = true;\n })\n ];\n }\n\n public get selecteditem() {\n if (this.multiselect) {\n return getClonedObject(this._items);\n }\n if (isEmpty(this._items)) {\n return {};\n }\n return getClonedObject(this._items[0]);\n }\n\n public set selecteditem(items) {\n this._items.length = 0;\n this.deselectListItems();\n\n if (isArray(items)) {\n items.forEach(item => this.selectItem(item));\n } else {\n this.selectItem(items);\n }\n $appDigest();\n }\n\n /**\n * Returns list of widgets present on list item by considering name and index of the widget.\n * If we did'nt pass index, it returns array of all the widgets which are matching to widget name\n * @param widgteName: Name of the widget\n * @param index: Index of the widget\n */\n public getWidgets(widgteName: string, index?: number) {\n let $target;\n const retVal = [];\n\n if (!widgteName) {\n return;\n }\n\n if (!isDefined(index)) {\n forEach(this.listItems.toArray(), (el) => {\n $target = get(el.currentItemWidgets, widgteName);\n if ($target) {\n retVal.push($target);\n }\n });\n\n return retVal;\n }\n index = +index || 0;\n\n $target = get(this.listItems.toArray(), index);\n\n if ($target) {\n return [get($target.currentItemWidgets, widgteName)];\n }\n }\n\n // returns listitem reference by index value. This refers to the same method getListItemByIndex.\n public getItem(index: number) {\n return this.getListItemByIndex(index);\n }\n\n /**\n * Returns index of listItem(listItemDirective / listItemObject)\n * If item is a directive, index is fetched from listItems\n * If item is an object, index is fetched from fieldDefs\n */\n public getIndex(item: any) {\n if (item instanceof ListItemDirective) {\n return this.getListItemIndex(item);\n } else if (item) {\n return this.fieldDefs.findIndex((obj) => isEqual(obj, item));\n }\n }\n\n create() {\n if (this._isDependent) {\n this.triggerWMEvent('insert');\n }\n }\n\n editRow(item?) {\n if (this._isDependent) {\n let listItem;\n if (item) {\n listItem = this.getItemRefByIndexOrModel(item).item;\n }\n this.triggerWMEvent('update', listItem);\n }\n }\n\n update(item?) {\n this.editRow(item);\n }\n\n deleteRow(item?) {\n if (this._isDependent) {\n let listItem;\n if (item) {\n listItem = this.getItemRefByIndexOrModel(item).item;\n }\n this.triggerWMEvent('delete', listItem);\n }\n }\n\n delete(item?) {\n this.deleteRow(item);\n }\n\n handleLoading(data) {\n const dataSource = this.datasource;\n if (dataSource && dataSource.execute(DataSource.Operation.IS_API_AWARE) && isDataSourceEqual(data.variable, dataSource)) {\n this.ngZone.run(() => {\n this.handleStateParams(data);\n this.variableInflight = data.active;\n // Fix for [WMS-23772] Update nodatafound flag once the response is recieved from the server\n const totalEle = data.data?.pagination?.totalElements;\n if (!isUndefined(totalEle)) {\n this.noDataFound = totalEle === 0 ? true : false;\n } else { // totalelements is undefined\n this.noDataFound = isEmpty(data.data?.data);\n }\n });\n }\n }\n\n public triggerListItemSelection($el: JQuery<HTMLElement>, $event: Event) {\n if ($el && $el[0]) {\n const listItemContext = $el.data('listItemContext');\n // Trigger click event only if the list item is from the corresponding list.\n if (listItemContext.listComponent === this) {\n this.onItemClick($event, listItemContext);\n }\n }\n }\n\n // this method is called form other data widgets like table.\n public execute(operation, options) {\n if ([DataSource.Operation.IS_API_AWARE, DataSource.Operation.IS_PAGEABLE, DataSource.Operation.SUPPORTS_SERVER_FILTER].includes(operation)) {\n return false;\n }\n return this.datasource.execute(operation, options);\n }\n\n public handleKeyDown($event, action: string) {\n $event.stopPropagation();\n if ($event.keyCode !== 13 && $event.keyCode !== 9 && !(($event.target.classList.contains('form-control') || $event.target.classList.contains('note-editable')) && $event.keyCode === 32)) {\n $event.preventDefault();\n }\n\n const listItems: QueryList<ListItemDirective> = this.listItems;\n\n let presentIndex: number = this.getListItemIndex(this.lastSelectedItem);\n\n if (this.multiselect) {\n const firstIndex: number = this.getListItemIndex(this.firstSelectedItem);\n const selectCount: number = isArray(this.selecteditem) ? this.selecteditem.length : (isObject(this.selecteditem) ? 1 : 0);\n if (action === 'selectPrev') {\n if (presentIndex > 0) {\n if ((presentIndex <= firstIndex) && this.checkSelectionLimit(selectCount)) {\n this.lastSelectedItem = this.getListItemByIndex(presentIndex - 1);\n this.toggleListItemSelection(this.lastSelectedItem);\n } else if (presentIndex > firstIndex) {\n this.toggleListItemSelection(this.getListItemByIndex(presentIndex));\n this.lastSelectedItem = this.getListItemByIndex(presentIndex - 1);\n } else {\n this.invokeEventCallback('selectionlimitexceed', {$event});\n }\n }\n } else if (action === 'selectNext') {\n if (presentIndex < listItems.length - 1) {\n if ((presentIndex >= firstIndex) && this.checkSelectionLimit(selectCount)) {\n this.lastSelectedItem = this.getListItemByIndex(presentIndex + 1);\n this.toggleListItemSelection(this.lastSelectedItem);\n } else if (presentIndex < firstIndex) {\n this.toggleListItemSelection(this.getListItemByIndex(presentIndex));\n this.lastSelectedItem = this.getListItemByIndex(presentIndex + 1);\n } else {\n this.invokeEventCallback('selectionlimitexceed', {$event});\n }\n }\n }\n }\n if (action === 'focusPrev') {\n if (this.isListElementMovable) {\n presentIndex = presentIndex <= 0 ? 0 : (presentIndex);\n if (presentIndex === 0) {\n return;\n }\n\n this.lastSelectedItem = this.getListItemByIndex(presentIndex);\n const prevElt = this.getListItemByIndex(presentIndex - 1);\n prevElt.nativeElement.before(this.lastSelectedItem.nativeElement);\n this.lastSelectedItem.nativeElement.focus();\n this.statePersistence.removeWidgetState(this, 'selectedItem');\n const arr = this.listItems.toArray();\n [arr[presentIndex - 1], arr[presentIndex]] = [arr[presentIndex], arr[presentIndex - 1]];\n this.listItems.reset(arr);\n this.currentIndex = presentIndex;\n this.ariaText = \"selected \";\n } else {\n presentIndex = presentIndex <= 0 ? 0 : (presentIndex - 1);\n this.lastSelectedItem = this.getListItemByIndex(presentIndex);\n this.lastSelectedItem.nativeElement.focus();\n this.currentIndex = presentIndex + 1;\n this.ariaText = \"selected \";\n }\n } else if (action === 'focusNext') {\n if (this.isListElementMovable) {\n presentIndex = presentIndex < (listItems.length - 1) ? (presentIndex) : (listItems.length - 1);\n if (presentIndex === this.listItems.length - 1) {\n return;\n }\n\n this.lastSelectedItem = this.getListItemByIndex(presentIndex);\n const nextElt = this.getListItemByIndex(presentIndex + 1);\n nextElt.nativeElement.after(this.lastSelectedItem.nativeElement);\n this.lastSelectedItem.nativeElement.focus();\n this.statePersistence.removeWidgetState(this, 'selectedItem');\n const arr = this.listItems.toArray();\n [arr[presentIndex], arr[presentIndex + 1]] = [arr[presentIndex + 1], arr[presentIndex]];\n this.listItems.reset(arr);\n this.currentIndex = presentIndex + 2;\n this.ariaText = \"selected \";\n } else {\n presentIndex = presentIndex < (listItems.length - 1) ? (presentIndex + 1) : (listItems.length - 1);\n this.lastSelectedItem = this.getListItemByIndex(presentIndex);\n this.lastSelectedItem.nativeElement.focus();\n this.currentIndex = presentIndex + 1;\n this.ariaText = \"selected \";\n }\n } else if (action === 'select') {\n // if the enter click is pressed on the item which is not the last selected item, the find the item from which the event is originated.\n if (presentIndex === -1 || !$($event.target).closest(this.lastSelectedItem.nativeElement)) {\n const $li = $($event.target).closest('li.app-list-item');\n const $ul = $li.closest('ul.app-livelist-container');\n presentIndex = $ul.find('li.app-list-item').index($li);\n }\n this.onItemClick($event, this.getListItemByIndex(presentIndex));\n } else if (action === 'space') {\n if (!this.enablereorder) {\n return;\n }\n this.isListElementMovable = !this.isListElementMovable;\n this.onItemClick($event, this.getListItemByIndex(presentIndex));\n this.currentIndex = presentIndex + 1;\n if (this.isListElementMovable) {\n this.ariaText = `Item ${this.currentIndex} grabbed, current position `;\n this.$ulEle.data('oldIndex', presentIndex);\n } else {\n this.ariaText = `Item ${this.currentIndex} dropped, final position `;\n this.onUpdate($event, undefined, presentIndex);\n }\n }\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'dataset') {\n if (!nv && this.binddatasource && !this.datasource) {\n return;\n }\n this.onDataSetChange(nv);\n } else if (key === 'datasource') {\n if (this.dataset) {\n this.onDataSetChange(this.dataset);\n }\n } else if (key === 'navigation') {\n // Support for older projects where navigation type was advanced instead of classic\n if (nv === 'Advanced') {\n this.navigation = 'Classic';\n return;\n }\n switchClass(this.nativeElement, nv, ov);\n this.onNavigationTypeChange(nv);\n if (this.dataNavigator) {\n this.dataNavigator.navigationClass = this.paginationclass;\n }\n } else if (key === 'itemsperrow') {\n setListClass(this);\n } else if (key === 'tabindex') {\n return;\n } else if (key === 'pulltorefresh' && nv) {\n this.app.notify('pullToRefresh:enable');\n this.subscribeToPullToRefresh();\n } else if (key === 'paginationclass') {\n if (this.dataNavigator) {\n // Adding setTimeout because in pagination component updateNavSize method is overriding navigationclass\n setTimeout(() => this.dataNavigator.navigationClass = nv);\n }\n } else if (key === 'pagesize') {\n this.dataNavigator.options = {\n maxResults: nv\n };\n this.dataNavigator.widget.maxResults = nv;\n this.dataNavigator.maxResults = nv;\n } else if (key === 'enablereorder') {\n if (nv && this.$ulEle) {\n this.$ulEle.attr('aria-describedby', this.titleId);\n this.configureDnD();\n this.$ulEle.sortable('enable');\n } else if (this.$ulEle && !nv) {\n this.$ulEle.removeAttr('aria-describedby');\n this.$ulEle.sortable('disable');\n }\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n public onItemClick(evt: any, $listItem: ListItemDirective) {\n let selectCount: number;\n\n if (!$listItem.disableItem) {\n this.firstSelectedItem = this.firstSelectedItem || $listItem;\n // Setting selectCount value based number of items selected.\n selectCount = isArray(this.selecteditem) ? this.selecteditem.length : (isObject(this.selecteditem) ? 1 : 0);\n\n // Handling multiselect for mobile device\n if (this.multiselect && isMobile()) {\n if (this.checkSelectionLimit(selectCount) || $listItem.isActive) {\n this.toggleListItemSelection($listItem);\n } else {\n this.invokeEventCallback('selectionlimitexceed', {$event: evt});\n }\n } else if ((evt.ctrlKey || evt.metaKey) && this.multiselect) {\n if (this.checkSelectionLimit(selectCount) || $listItem.isActive) {\n this.firstSelectedItem = this.lastSelectedItem = $listItem;\n this.toggleListItemSelection($listItem);\n } else {\n this.invokeEventCallback('selectionlimitexceed', {$event: evt});\n }\n } else if (evt.shiftKey && this.multiselect) {\n let first = $listItem.context.index;\n let last = this.firstSelectedItem.context.index;\n\n // if first is greater than last, then swap values\n if (first > last) {\n last = [first, first = last][0];\n }\n if (this.checkSelectionLimit(last - first)) {\n this.clearSelectedItems();\n this.listItems.forEach(($liItem: ListItemDirective) => {\n const index = $liItem.context.index;\n if (index >= first && index <= last) {\n this.toggleListItemSelection($liItem);\n }\n });\n this.lastSelectedItem = $listItem;\n } else {\n this.invokeEventCallback('selectionlimitexceed', {$event: evt});\n }\n\n } else {\n if (!$listItem.isActive || selectCount > 1) {\n this.clearSelectedItems();\n this.toggleListItemSelection($listItem);\n this.firstSelectedItem = this.lastSelectedItem = $listItem;\n }\n }\n $appDigest();\n }\n }\n\n // Empty the list content on clear\n public clear() {\n this.updateFieldDefs([]);\n }\n\n /**\n * deselects item in the list.\n * @param val: index | model of the list item.\n */\n public deselectItem(val: any) {\n const listItem = this.getItemRefByIndexOrModel(val);\n if (listItem && listItem.isActive) {\n this.toggleListItemSelection(listItem);\n }\n }\n\n /**\n * selects item in the list.\n * @param val: index | model of the list item.\n */\n public selectItem(val, statePersistenceTriggered?) {\n const listItem = this.getItemRefByIndexOrModel(val);\n if (!listItem) {\n return;\n }\n if (!listItem.isActive) {\n this.toggleListItemSelection(listItem, statePersistenceTriggered);\n }\n // focus the element.\n listItem.nativeElement.focus();\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.handleHeaderClick = noop;\n setTimeout(() => {\n this.debouncedFetchNextDatasetOnScroll = this.paginationService.debouncedFetchNextDatasetOnScroll(this.dataNavigator, DEBOUNCE_TIMES.PAGINATION_DEBOUNCE_TIME, this);\n }, 0);\n this._items = [];\n this.fieldDefs = [];\n this.reorderProps = {\n minIndex: null,\n maxIndex: null\n };\n }\n\n ngAfterViewInit() {\n this.promiseResolverFn();\n this.propsInitPromise.then(() => {\n super.ngAfterViewInit();\n this.setUpCUDHandlers();\n this.selectedItemWidgets = this.multiselect ? [] : {};\n var ele = $(this.nativeElement).find('.app-livelist-container');\n\n if (this.enablereorder && !this.groupby) {\n if (ele) {\n ele.attr('aria-describedby', this.titleId);\n }\n this.configureDnD();\n }\n if (!this.enablereorder) {\n if (ele) {\n ele.removeAttr('aria-describedby');\n }\n }\n if (this.groupby && this.collapsible) {\n this.handleHeaderClick = handleHeaderClick;\n this.toggleAllHeaders = toggleAllHeaders.bind(undefined, this);\n }\n setListClass(this);\n });\n this.setupHandlers();\n const $ul = this.nativeElement.querySelector('ul.app-livelist-container');\n styler($ul as HTMLElement, this, APPLY_STYLES_TYPE.SCROLLABLE_CONTAINER);\n if (this.enablereorder) {\n if ($ul) {\n $ul.setAttribute('aria-describedby', this.titleId);\n }\n }\n if (!this.enablereorder) {\n if ($ul) {\n $ul.removeAttribute('aria-describedby');\n }\n }\n if (isMobileApp() && $ul.querySelector('.app-list-item-action-panel')) {\n this._listAnimator = new ListAnimator(this);\n }\n }\n\n ngOnDestroy() {\n if (this._listAnimator && this._listAnimator.$btnSubscription) {\n this._listAnimator.$btnSubscription.unsubscribe();\n }\n this._listenerDestroyers.forEach(d => d && d());\n super.ngOnDestroy();\n }\n\n ngOnDetach() {\n super.ngOnDetach();\n this._pageLoad = true;\n }\n\n protected handleEvent(node: HTMLElement, eventName: string, eventCallback: Function, locals: any) {\n // tap and doubleTap events are not getting propagated.So, using mouse events instead.\n const touchToMouse = {\n tap: 'click',\n doubletap: 'dblclick'\n };\n if (includes(['click', 'tap', 'dblclick', 'doubletap'], eventName)) {\n this.eventManager.addEventListener(\n this.nativeElement,\n touchToMouse[eventName] || eventName,\n (evt) => {\n const target = $(evt.target).closest('.app-list-item');\n if (target.length) {\n const listItemContext: ListItemDirective = target.data('listItemContext');\n if (!listItemContext.disableItem) {\n this.invokeEventCallback(eventName, {\n widget: listItemContext,\n $event: evt,\n item: listItemContext.item\n });\n }\n }\n }\n );\n }\n }\n\n private getConfiguredState() {\n const mode = this.statePersistence.computeMode(this.statehandler);\n return mode && mode.toLowerCase();\n }\n\n private handleStateParams(options) {\n if (this._pageLoad && this.getConfiguredState() !== 'none') {\n this._pageLoad = false;\n const widgetState = this.statePersistence.getWidgetState(this);\n if (get(widgetState, 'pagination')) {\n options.options = options.options || {};\n options.options.page = widgetState.pagination;\n }\n if (get(widgetState, 'selectedItem')) {\n this._selectedItemsExist = true;\n }\n }\n }\n\n private triggerWMEvent(eventName, item?) {\n $invokeWatchers(true);\n // If we have multiselect for the livelist(List with form template), in run mode deleting a record is getting failed. Becuase the selecteditem will be array of objects. So consider the last object.\n let row = this.multiselect ? last(this.selecteditem) : this.selecteditem;\n if (item) {\n row = item;\n }\n this.app.notify('wm-event', {eventName, widgetName: this.name, row: row});\n }\n\n private resetNavigation() {\n this.showNavigation = false;\n this.navControls = undefined;\n this.infScroll = false;\n this.onDemandLoad = false;\n }\n\n private enableBasicNavigation() {\n this.navControls = NAVIGATION_TYPE.BASIC;\n this.showNavigation = true;\n }\n\n private enableInlineNavigation() {\n this.navControls = NAVIGATION_TYPE.INLINE;\n }\n\n private enableClassicNavigation() {\n this.navControls = NAVIGATION_TYPE.CLASSIC;\n this.showNavigation = true;\n }\n\n private enablePagerNavigation() {\n this.navControls = NAVIGATION_TYPE.PAGER;\n this.showNavigation = true;\n }\n\n private setNavigationTypeNone() {\n this.navControls = NAVIGATION_TYPE.NONE;\n this.showNavigation = false;\n }\n\n private enableInfiniteScroll() {\n this.infScroll = true;\n }\n\n private enableOnDemandLoad() {\n this.onDemandLoad = true;\n this.showNavigation = true;\n }\n\n /**\n * Sets Navigation type for the list.\n * @param type\n */\n private onNavigationTypeChange(type) {\n this.resetNavigation();\n switch (type) {\n case NAVIGATION_TYPE.BASIC:\n this.enableBasicNavigation();\n break;\n case NAVIGATION_TYPE.INLINE:\n this.enableInlineNavigation();\n break;\n case NAVIGATION_TYPE.ADVANCED:\n case NAVIGATION_TYPE.CLASSIC:\n this.enableClassicNavigation();\n break;\n case NAVIGATION_TYPE.PAGER:\n this.enablePagerNavigation();\n break;\n case NAVIGATION_TYPE.NONE :\n this.setNavigationTypeNone();\n break;\n case NAVIGATION_TYPE.SCROLL:\n this.enableInfiniteScroll();\n break;\n case NAVIGATION_TYPE.ONDEMAND:\n this.enableOnDemandLoad();\n break;\n }\n }\n\n /**\n * Update fieldDefs property, fieldDefs is the model of the List Component.\n * fieldDefs is an Array type.\n * @param newVal\n */\n private updateFieldDefs(newVal: Array<any>) {\n if (this.infScroll || this.onDemandLoad) {\n [this.fieldDefs, this.currentPage] = this.paginationService.updateFieldsOnPagination(this, newVal);\n } else {\n this.fieldDefs = newVal;\n }\n\n if (this.orderby) {\n this.fieldDefs = getOrderedDataset(this.fieldDefs, this.orderby);\n }\n if (this.groupby) {\n this.groupedData = groupData(this, this.fieldDefs, this.groupby, this.match, this.orderby, this.dateformat, this.datePipe, undefined, this.appDefaults);\n }\n\n if (!this.fieldDefs.length) {\n this.noDataFound = true;\n this.selecteditem = undefined;\n }\n $appDigest();\n this.listItems.setDirty();\n }\n\n private onDataChange(newVal) {\n // Check for newVal is not empty\n if (!isEmpty(newVal)) {\n\n this.noDataFound = false;\n this.isDataChanged = true;\n\n if (this.datasource && this.datasource.execute(DataSource.Operation.IS_API_AWARE)) {\n // clone the the data in case of live and service variables to prevent the two-way binding for these variables.\n newVal = cloneDeep(newVal);\n }\n\n if (isObject(newVal) && !isArray(newVal)) {\n newVal = isEmpty(newVal) ? [] : [newVal];\n }\n\n if (isString(newVal)) {\n newVal = newVal.split(',');\n }\n\n // if the page number is greater than 1 on initial load then we render the first page.\n if (this.datasource && this.datasource.owner === 'App' && (this.infScroll || this.onDemandLoad) && !this.currentPage && this.datasource.execute(DataSource.Operation.GET_PAGING_OPTIONS).number > 0) {\n newVal = this.datasource.execute(DataSource.Operation.LIST_RECORDS, {\n 'page': 1\n });\n }\n\n if (isArray(newVal)) {\n if (newVal.length) {\n this.invokeEventCallback('beforedatarender', {$data: newVal});\n }\n this.updateFieldDefs(newVal);\n }\n } else {\n this.updateFieldDefs([]);\n }\n }\n\n // Updates the dataSource when pagination is enabled for the Component.\n private setupDataSource() {\n const dataNavigator = this.dataNavigator;\n\n dataNavigator.options = {\n maxResults: this.pagesize || 20\n };\n\n this.dataNavigatorWatched = true;\n\n if (this.navigatorResultWatch) {\n this.navigatorResultWatch.unsubscribe();\n }\n /*Register a watch on the \"result\" property of the \"dataNavigator\" so that the paginated data is displayed in the live-list.*/\n this.navigatorResultWatch = dataNavigator.resultEmitter.subscribe((newVal: any) => {\n this.onDataChange(newVal);\n }, true);\n /*De-register the watch if it is exists */\n if (this.navigatorMaxResultWatch) {\n this.navigatorMaxResultWatch.unsubscribe();\n }\n /*Register a watch on the \"maxResults\" property of the \"dataNavigator\" so that the \"pageSize\" is displayed in the live-list.*/\n this.navigatorMaxResultWatch = dataNavigator.maxResultsEmitter.subscribe((val) => {\n this.pagesize = val;\n });\n\n dataNavigator.maxResults = this.pagesize || 20;\n this.removePropertyBinding('dataset');\n // when list having \"datasetboundexpr\" attr indicates that list is bound to item context\n // when dataset is bound to \"item.FIELD\" then item context is passed as the datasource.\n const datasetBoundExpr = this.getAttr('datasetboundexpr');\n this.dataNavigator.setBindDataSet(\n this.binddataset,\n this.viewParent,\n datasetBoundExpr ? this.context : this.datasource,\n this.dataset,\n this.binddatasource,\n datasetBoundExpr,\n this.statehandler\n );\n }\n\n private onDataSetChange(newVal) {\n if (get(this.datasource, 'category') === 'wm.Variable' && this.getConfiguredState() !== 'none' && this._pageLoad) {\n const widgetState = this.statePersistence.getWidgetState(this);\n this._pageLoad = false;\n if (get(widgetState, 'pagination')) {\n this.dataNavigator.pageChanged({page: widgetState.pagination}, true);\n }\n if (get(widgetState, 'selectedItem')) {\n this._selectedItemsExist = true;\n }\n }\n if (!this.dataNavigatorWatched) {\n if (this.navigation && this.navigation !== NAVIGATION_TYPE.NONE) {\n this.setupDataSource();\n } else {\n this.onDataChange(newVal);\n }\n } else if (this.navigation && this.navigation !== NAVIGATION_TYPE.NONE) {\n // If navigation is already setup and datasource is changed, update the datasource on navigation\n this.dataNavigator.setDataSource(this.datasource);\n }\n }\n\n // All the ListItem's Active state is set to false.\n private deselectListItems() {\n this.listItems.forEach(item => item.isActive = false);\n }\n\n // Deselect all the ListItems and clear the selecteditem(InOutBound Property model)\n private clearSelectedItems() {\n this.deselectListItems();\n this._items.length = 0;\n $appDigest();\n }\n\n /**\n * return the ListItemDirective instance by checking the equality of the model.\n * @param listModel: model to be searched for\n * @returns ListItem if the model is matched else return null.\n */\n private getListItemByModel(listModel): ListItemDirective {\n return this.listItems.find((listItem) => {\n let itemObj = listItem.item;\n if (this.groupby && !has(listModel, '_groupIndex')) {\n // If groupby is enabled, item contains _groupIndex property which should be excluded while comparing model.\n itemObj = clone(itemObj);\n delete itemObj._groupIndex;\n }\n if (isEqual(itemObj, listModel)) {\n return true;\n }\n }) || null;\n }\n\n private updateSelectedItemsWidgets(statePersistenceTriggered?) {\n let obj = {}, widgetState;\n const pageNum = get(this.dataNavigator, 'dn.currentPage') || 1;\n if (this.getConfiguredState() !== 'none') {\n // remove previously configured selected items for current page and construct new ones later below.\n widgetState = this.statePersistence.getWidgetState(this) || {};\n if (get(widgetState, 'selectedItem')) {\n // when multiselect is on and an item is selected without pressing CTRL, previously selected items in state should be empty.\n if (this.multiselect && this.selecteditem.length === 1) {\n widgetState.selectedItem = [];\n } else {\n remove(widgetState.selectedItem, function (selectedItem: any) {\n return selectedItem.page === pageNum;\n });\n }\n }\n }\n if (this.multiselect) {\n (this.selectedItemWidgets as Array<WidgetRef>).length = 0;\n }\n this.listItems.forEach((item: ListItemDirective, index) => {\n if (item.isActive) {\n if (this.multiselect) {\n (this.selectedItemWidgets as Array<WidgetRef>).push(item.currentItemWidgets);\n } else {\n this.selectedItemWidgets = item.currentItemWidgets;\n }\n obj = {page: pageNum, index: index};\n if (get(widgetState, 'selectedItem') && this.multiselect) {\n if (!some(widgetState.selectedItem, obj)) {\n widgetState.selectedItem.push(obj);\n }\n } else {\n widgetState.selectedItem = [obj];\n }\n }\n });\n if (this.getConfiguredState() !== 'none' && !statePersistenceTriggered) {\n if (unsupportedStatePersistenceTypes.indexOf(this.navigation) < 0) {\n this.statePersistence.removeWidgetState(this, 'selectedItem');\n this.statePersistence.setWidgetState(this, {'selectedItem': widgetState.selectedItem});\n } else {\n console.warn('Retain State handling on Widget ' + this.name + ' is not supported for current pagination type.');\n }\n }\n }\n\n /**\n * Selects the listItem and updates selecteditem property.\n * If the listItem is already a selected item then deselects the item.\n * @param {ListItemDirective} $listItem: Item to be selected of deselected.\n */\n private toggleListItemSelection($listItem: ListItemDirective, statePersistenceTriggered?) {\n // item is not allowed to get selected if it is disabled.\n if ($listItem && !$listItem.disableItem) {\n let item = $listItem.item;\n if (this.groupby && has(item, '_groupIndex')) {\n // If groupby is enabled, item contains _groupIndex property which should be excluded from selecteditem.\n item = clone(item);\n delete item._groupIndex;\n }\n if ($listItem.isActive) {\n this._items = pullAllWith(this._items, [item], isEqual);\n $listItem.isActive = false;\n } else {\n // if multiselect is false, clear the selectItem list before adding an item to the selectItem list.\n if (!this.multiselect) {\n this.clearSelectedItems();\n }\n this._items.push(item);\n this.invokeEventCallback('select', {widget: $listItem, $data: item});\n $listItem.isActive = true;\n }\n this.updateSelectedItemsWidgets(statePersistenceTriggered);\n }\n }\n\n /**\n * Method is Invoked when the model for the List Widget is changed.\n * @param {QueryList<ListItemDirective>} listItems\n */\n private onListRender(listItems: QueryList<ListItemDirective>) {\n // Added render callback event. This method(onListRender) is calling multiple times so checking isDatachanged flag because this falg is changed whenever new data is rendered.\n if (this.isDataChanged) {\n // Whenever dataset is changed, trigger watchers to evaluate listitem bind expressions.\n $invokeWatchers(true);\n this.invokeEventCallback('render', {$data: this.fieldDefs});\n }\n if (this.isDataChanged && this.getConfiguredState() !== 'none' && listItems.length && this._selectedItemsExist) {\n const widgetState = this.statePersistence.getWidgetState(this);\n if (get(widgetState, 'selectedItem')) {\n this._selectedItemsExist = false;\n const selectedItemsLength = isArray(this.selecteditem) ? this.selecteditem.length : toNumber(!isEmpty(this.selecteditem));\n const currentPage = get(this.dataNavigator, 'dn.currentPage') || 1;\n widgetState.pagination = widgetState.pagination || 1;\n // to prevent item selection from being triggered more than once\n if (selectedItemsLength !== widgetState.selectedItem.length && widgetState.pagination === currentPage) {\n widgetState.selectedItem.forEach((item) => {\n if (item.page === currentPage) {\n this.selectItem(item.index, true);\n }\n });\n }\n }\n }\n const selectedItems = isArray(this.selecteditem) ? this.selecteditem : [this.selecteditem];\n\n this.firstSelectedItem = this.lastSelectedItem = null;\n\n // don't select first item if multi-select is enabled and at least item is already selected in the list.\n // don't select first item if state information has selected items\n if (listItems.length && this.selectfirstitem && !(this._items.length && this.multiselect) && this._selectedItemsExist !== false) {\n const $firstItem: ListItemDirective = listItems.first;\n\n if (\n !$firstItem.disableItem &&\n this.isDataChanged &&\n // \"infinite scroll\" or \"load on demand\" is enabled and at least one item is selected then dont alter the selected list items.\n !(\n (this.infScroll || this.onDemandLoad) &&\n this._items.length\n )\n ) {\n this.clearSelectedItems();\n this.firstSelectedItem = this.lastSelectedItem = $firstItem;\n // selecting the first record\n this.selectItem(0);\n }\n } else {\n this.deselectListItems();\n selectedItems.forEach(selecteditem => {\n const listItem: ListItemDirective = this.getListItemByModel(selecteditem);\n if (listItem) {\n listItem.isActive = true;\n this.lastSelectedItem = listItem;\n // focus the active element\n listItem.nativeElement.focus();\n }\n });\n }\n\n if (this.fieldDefs.length && this.infScroll) {\n const smoothScrollEl = this.$element.closest('[wmsmoothscroll]');\n // if smoothscroll is set to false, then native scroll has to be applied\n // otherwise smoothscroll events will be binded.\n if (isMobileApp() && smoothScrollEl.length && smoothScrollEl.attr('wmsmoothscroll') === 'true') {\n this.paginationService.bindIScrollEvt(this, DEBOUNCE_TIMES.PAGINATION_DEBOUNCE_TIME);\n } else {\n // In case of mobile app when modal exists, and list items height is greater than the modal content provide ccontainer a scrollable height\n const modalBody = this.$element.closest('.modal-body');\n const listHt = this.$element.find('ul').height();\n const modalHt = window.innerHeight - 140;\n if (isMobile() && modalBody.length && listHt > modalHt) {\n this.$element.css('height', modalHt + 'px');\n }\n this.paginationService.bindScrollEvt(this, '> ul', DEBOUNCE_TIMES.PAGINATION_DEBOUNCE_TIME);\n }\n }\n\n this.isDataChanged = false;\n }\n\n private setupHandlers() {\n this.listItems.changes.subscribe(listItems => {\n this.onListRender(listItems);\n this.cdRef.detectChanges();\n });\n // handle click event in capturing phase.\n this.nativeElement.querySelector('ul.app-livelist-container').addEventListener('click', ($event) => {\n let target = $($event.target).closest('.app-list-item');\n // Recursively find the current list item\n while (target.get(0) && (target.closest('ul.app-livelist-container').get(0) !== $event.currentTarget)) {\n target = target.parent().closest('.app-list-item');\n }\n this.triggerListItemSelection(target, $event);\n }, true);\n }\n\n // Triggers on drag start while reordering.\n private onReorderStart(evt, ui) {\n ui.placeholder.height(ui.item.height());\n this.$ulEle.data('oldIndex', ui.item.index());\n }\n\n // Triggers during sorting\n private onSort(evt, ui) {\n // In case of infinite scroll, when the element doesn't have scroll enabled\n // on dragging the element to last item's position manually trigger loading of next items\n if (this.infScroll) {\n const lastItemOffset = this.$ulEle.find(`[listitemindex=${this.fieldDefs.length - 1}]`).offset();\n if (lastItemOffset && lastItemOffset.top < ui.offset.top) {\n this.paginationService.bindScrollEvt(this, '> ul', DEBOUNCE_TIMES.PAGINATION_DEBOUNCE_TIME);\n this.debouncedFetchNextDatasetOnScroll();\n }\n }\n }\n\n // Triggers after the sorting.\n private onUpdate(evt, ui, presentIndex?) {\n const data = this.fieldDefs;\n // If ui is not present then it is called from drag and drop using keyboard\n const newIndex = ui === undefined ? presentIndex : ui.item.index();\n const oldIndex = this.$ulEle.data('oldIndex');\n\n const minIndex = min([newIndex, oldIndex]);\n const maxIndex = max([newIndex, oldIndex]);\n\n const draggedItem = pullAt(data, oldIndex)[0];\n // Modify the data list only if we find a draggedItem\n if (draggedItem) {\n if (this.getConfiguredState() !== 'none') {\n this.statePersistence.removeWidgetState(this, 'selectedItem');\n }\n\n this.reorderProps.minIndex = min([minIndex, this.reorderProps.minIndex]);\n this.reorderProps.maxIndex = max([maxIndex, this.reorderProps.maxIndex]);\n\n data.splice(newIndex, 0, draggedItem);\n\n this.cdRef.markForCheck();\n this.cdRef.detectChanges();\n const $changedItem = {\n oldIndex: oldIndex,\n newIndex: newIndex,\n item: data[newIndex]\n };\n this.invokeEventCallback('reorder', {$event: evt, $data: data, $changedItem});\n this.$ulEle.removeData('oldIndex');\n }\n }\n\n // configures reordering the list items.\n private configureDnD() {\n let appendTo;\n const modalEl = $(document).find('.modal');\n if (this.getAttr('height')) { // when height is applied to the list, append should be the ul's parent as scroll is applied to the parent\n appendTo = 'parent';\n } else if (modalEl.length) { // In case of dialog, appendTo should be the modal ele\n appendTo = modalEl[modalEl.length - 1];\n } else { // As default append to should be body\n appendTo = 'body';\n }\n\n const options = isMobileApp() ? {} : {\n appendTo: appendTo,\n };\n\n const $el = $(this.nativeElement);\n this.$ulEle = $el.find('.app-livelist-container');\n\n configureDnD(this.$ulEle, options, this.onReorderStart.bind(this), this.onUpdate.bind(this), this.onSort.bind(this));\n\n this.$ulEle.droppable({'accept': '.app-list-item'});\n\n if (isMobileApp()) {\n this.$ulEle.sortable('disable');\n this.$ulEle.on('touchstart', function (event) {\n let self = this;\n if (!self.touching) {\n if (self.touched) {\n clearTimeout(self.touched);\n }\n setTimeout(() => {\n //Prevent context menu on mobile (IOS/ANDROID)\n if (event.cancelable) {\n event.preventDefault();\n }\n }, 50);\n self.touched = setTimeout(() => {\n $(event.currentTarget).addClass('no-selection');\n //Enable draggable\n $(event.currentTarget).sortable('enable');\n\n //Set internal flag\n self.touching = true;\n\n //trigger touchstart again to enable draggable through touch punch\n $(self).trigger(event);\n\n //Choose preferred duration for taphold\n }, 350);\n }\n }).on('touchend', function (event) {\n this.touching = false;\n $(event.currentTarget).removeClass('no-selection');\n\n //Disable draggable to enable default behaviour\n $(event.currentTarget).sortable('disable');\n\n clearTimeout(this.touched);\n }).on('touchmove', function () {\n clearTimeout(this.touched);\n });\n }\n\n }\n\n // returns true if the selection limit is reached.\n private checkSelectionLimit(count: number) {\n return (!this.selectionlimit || count < this.selectionlimit);\n }\n\n // returns listitem reference by index value.\n private getListItemByIndex(index: number): ListItemDirective {\n return this.listItems.toArray()[index];\n }\n\n /**\n * return index of an (listItemDirective) in the listItem\n * @param {ListItemDirective} item\n * @returns {number}\n */\n private getListItemIndex(item: ListItemDirective) {\n return this.listItems.toArray().indexOf(item);\n }\n\n /**\n * Returns ListItem Reference based on the input provided.\n * @param val: index | model of the list item.\n * @returns {ListItemDirective}\n */\n private getItemRefByIndexOrModel(val: any): ListItemDirective {\n let listItem: ListItemDirective;\n if (isNumber(val)) {\n listItem = this.getListItemByIndex(val);\n } else {\n listItem = this.getListItemByModel(val);\n }\n return listItem;\n }\n\n private beforePaginationChange($event, $index) {\n this.invokeEventCallback('paginationchange', {$event, $index});\n }\n\n trackByFn($index: number) {\n return $index; // Return a unique identifier for each item\n }\n\n // Invoke the datasource variable by default when pulltorefresh event is not specified.\n private subscribeToPullToRefresh() {\n this._listenerDestroyers.push(this.app.subscribe('pulltorefresh', () => {\n if (this.datasource && this.datasource.listRecords) {\n this.datasource.listRecords();\n }\n }));\n }\n\n private setUpCUDHandlers() {\n const $addItem = document.getElementsByClassName(\"add-list-item\")[0];\n if ($addItem) {\n // Triggered on click of add action\n $addItem.addEventListener('click', evt => {\n this.create();\n });\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { WmComponentsModule } from '@wm/components/base';\nimport { PaginationModule } from '@wm/components/data/pagination';\n\nimport { ListComponent } from './list.component';\nimport { ListItemDirective } from './list-item.directive';\n\nconst components = [\n ListComponent,\n ListItemDirective\n];\n\n@NgModule({\n imports: [\n CommonModule,\n PaginationModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class ListModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i2.ListComponent"],"mappings":"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"}