@wavemaker/app-ng-runtime 11.8.0-next.24904 → 11.8.0-next.27301

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 (346) hide show
  1. app-ng-runtime/build-task/bundles/index.umd.js +5 -5
  2. app-ng-runtime/build-task/esm2022/basic/progress/progress-bar/progress-bar.build.mjs +1 -1
  3. app-ng-runtime/build-task/esm2022/page/page.build.mjs +3 -2
  4. app-ng-runtime/build-task/fesm2022/index.mjs +2 -1
  5. app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
  6. app-ng-runtime/components/advanced/carousel/bundles/index.umd.js +5 -5
  7. app-ng-runtime/components/advanced/carousel/esm2022/carousel.animator.mjs +3 -2
  8. app-ng-runtime/components/advanced/carousel/esm2022/carousel.directive.mjs +1 -1
  9. app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs +2 -1
  10. app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
  11. app-ng-runtime/components/advanced/login/bundles/index.umd.js +6 -6
  12. app-ng-runtime/components/advanced/login/esm2022/login.component.mjs +4 -3
  13. app-ng-runtime/components/advanced/login/fesm2022/index.mjs +3 -2
  14. app-ng-runtime/components/advanced/login/fesm2022/index.mjs.map +1 -1
  15. app-ng-runtime/components/base/bundles/index.umd.js +203 -171
  16. app-ng-runtime/components/base/esm2022/directives/show-in-device.directive.mjs +1 -1
  17. app-ng-runtime/components/base/esm2022/pipes/custom-pipes.mjs +12 -11
  18. app-ng-runtime/components/base/esm2022/pipes/wm-pipe.mjs +3 -2
  19. app-ng-runtime/components/base/esm2022/utils/data-utils.mjs +30 -29
  20. app-ng-runtime/components/base/esm2022/utils/form-utils.mjs +47 -41
  21. app-ng-runtime/components/base/esm2022/utils/live-utils.mjs +8 -7
  22. app-ng-runtime/components/base/esm2022/utils/widget-utils.mjs +28 -27
  23. app-ng-runtime/components/base/esm2022/widgets/common/base/base-container.component.mjs +4 -3
  24. app-ng-runtime/components/base/esm2022/widgets/common/base/base-field-validations.mjs +24 -21
  25. app-ng-runtime/components/base/esm2022/widgets/common/base/base.component.mjs +12 -11
  26. app-ng-runtime/components/base/esm2022/widgets/common/base/dataset-aware-nav.component.mjs +40 -14
  27. app-ng-runtime/components/base/esm2022/widgets/common/base/partial-container.directive.mjs +3 -2
  28. app-ng-runtime/components/base/esm2022/widgets/common/dialog/dialog.service.mjs +3 -2
  29. app-ng-runtime/components/base/esm2022/widgets/common/lazy-load/lazy-load.directive.mjs +1 -1
  30. app-ng-runtime/components/base/esm2022/widgets/common/partial/partial.directive.mjs +3 -2
  31. app-ng-runtime/components/base/esm2022/widgets/common/partial-param/partial-param.directive.mjs +3 -2
  32. app-ng-runtime/components/base/esm2022/widgets/common/smooth-scroll/smooth-scroll.directive.mjs +6 -5
  33. app-ng-runtime/components/base/esm2022/widgets/framework/deviceview.mjs +1 -1
  34. app-ng-runtime/components/base/esm2022/widgets/framework/property-change-handler.mjs +3 -2
  35. app-ng-runtime/components/base/esm2022/widgets/framework/widget-proxy-provider.mjs +4 -3
  36. app-ng-runtime/components/base/fesm2022/index.mjs +206 -173
  37. app-ng-runtime/components/base/fesm2022/index.mjs.map +1 -1
  38. app-ng-runtime/components/base/pipes/custom-pipes.d.ts +1 -1
  39. app-ng-runtime/components/base/utils/data-utils.d.ts +0 -1
  40. app-ng-runtime/components/base/utils/widget-utils.d.ts +2 -2
  41. app-ng-runtime/components/base/widgets/common/base/base-field-validations.d.ts +1 -1
  42. app-ng-runtime/components/base/widgets/common/base/partial-container.directive.d.ts +1 -1
  43. app-ng-runtime/components/basic/default/bundles/index.umd.js +10 -10
  44. app-ng-runtime/components/basic/default/esm2022/label/label.directive.mjs +4 -3
  45. app-ng-runtime/components/basic/default/esm2022/spinner/spinner.component.mjs +6 -5
  46. app-ng-runtime/components/basic/default/fesm2022/index.mjs +7 -6
  47. app-ng-runtime/components/basic/default/fesm2022/index.mjs.map +1 -1
  48. app-ng-runtime/components/basic/progress/bundles/index.umd.js +13 -13
  49. app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +5 -4
  50. app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.component.mjs +6 -5
  51. app-ng-runtime/components/basic/progress/esm2022/utils.mjs +3 -3
  52. app-ng-runtime/components/basic/progress/fesm2022/index.mjs +10 -9
  53. app-ng-runtime/components/basic/progress/fesm2022/index.mjs.map +1 -1
  54. app-ng-runtime/components/basic/rich-text-editor/bundles/index.umd.js +15 -10
  55. app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.component.mjs +14 -8
  56. app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs +13 -7
  57. app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
  58. app-ng-runtime/components/basic/rich-text-editor/rich-text-editor.component.d.ts +2 -2
  59. app-ng-runtime/components/basic/search/bundles/index.umd.js +67 -65
  60. app-ng-runtime/components/basic/search/esm2022/data-provider/data-provider.mjs +1 -1
  61. app-ng-runtime/components/basic/search/esm2022/data-provider/local-data-provider.mjs +26 -23
  62. app-ng-runtime/components/basic/search/esm2022/data-provider/remote-data-provider.mjs +12 -11
  63. app-ng-runtime/components/basic/search/esm2022/search.component.mjs +31 -30
  64. app-ng-runtime/components/basic/search/fesm2022/index.mjs +66 -63
  65. app-ng-runtime/components/basic/search/fesm2022/index.mjs.map +1 -1
  66. app-ng-runtime/components/basic/tree/bundles/index.umd.js +9 -9
  67. app-ng-runtime/components/basic/tree/esm2022/tree.component.mjs +7 -6
  68. app-ng-runtime/components/basic/tree/fesm2022/index.mjs +6 -5
  69. app-ng-runtime/components/basic/tree/fesm2022/index.mjs.map +1 -1
  70. app-ng-runtime/components/chart/bundles/index.umd.js +72 -63
  71. app-ng-runtime/components/chart/chart.component.d.ts +1 -1
  72. app-ng-runtime/components/chart/chart.utils.d.ts +3 -3
  73. app-ng-runtime/components/chart/esm2022/chart.component.mjs +58 -48
  74. app-ng-runtime/components/chart/esm2022/chart.utils.mjs +14 -13
  75. app-ng-runtime/components/chart/fesm2022/index.mjs +69 -59
  76. app-ng-runtime/components/chart/fesm2022/index.mjs.map +1 -1
  77. app-ng-runtime/components/containers/accordion/bundles/index.umd.js +16 -16
  78. app-ng-runtime/components/containers/accordion/esm2022/accordion.directive.mjs +14 -13
  79. app-ng-runtime/components/containers/accordion/fesm2022/index.mjs +13 -12
  80. app-ng-runtime/components/containers/accordion/fesm2022/index.mjs.map +1 -1
  81. app-ng-runtime/components/containers/panel/bundles/index.umd.js +5 -5
  82. app-ng-runtime/components/containers/panel/esm2022/panel.component.mjs +3 -2
  83. app-ng-runtime/components/containers/panel/fesm2022/index.mjs +2 -1
  84. app-ng-runtime/components/containers/panel/fesm2022/index.mjs.map +1 -1
  85. app-ng-runtime/components/containers/panel/panel.component.d.ts +1 -1
  86. app-ng-runtime/components/containers/tabs/bundles/index.umd.js +17 -17
  87. app-ng-runtime/components/containers/tabs/esm2022/tabs.component.mjs +15 -14
  88. app-ng-runtime/components/containers/tabs/fesm2022/index.mjs +14 -13
  89. app-ng-runtime/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  90. app-ng-runtime/components/data/form/bundles/index.umd.js +75 -75
  91. app-ng-runtime/components/data/form/esm2022/form-action/form-action.directive.mjs +3 -2
  92. app-ng-runtime/components/data/form/esm2022/form-field/form-field.directive.mjs +10 -9
  93. app-ng-runtime/components/data/form/esm2022/form.component.mjs +54 -53
  94. app-ng-runtime/components/data/form/esm2022/live-filter/live-filter.directive.mjs +3 -2
  95. app-ng-runtime/components/data/form/esm2022/live-form/live-form.directive.mjs +11 -10
  96. app-ng-runtime/components/data/form/fesm2022/index.mjs +77 -76
  97. app-ng-runtime/components/data/form/fesm2022/index.mjs.map +1 -1
  98. app-ng-runtime/components/data/form/form.component.d.ts +2 -2
  99. app-ng-runtime/components/data/form/live-form/live-form.directive.d.ts +1 -1
  100. app-ng-runtime/components/data/list/bundles/index.umd.js +692 -687
  101. app-ng-runtime/components/data/list/esm2022/list-item.directive.mjs +1 -1
  102. app-ng-runtime/components/data/list/esm2022/list.animator.mjs +5 -3
  103. app-ng-runtime/components/data/list/esm2022/list.component.mjs +687 -682
  104. app-ng-runtime/components/data/list/fesm2022/index.mjs +690 -684
  105. app-ng-runtime/components/data/list/fesm2022/index.mjs.map +1 -1
  106. app-ng-runtime/components/data/list/list.component.d.ts +53 -53
  107. app-ng-runtime/components/data/live-table/bundles/index.umd.js +1 -1
  108. app-ng-runtime/components/data/live-table/esm2022/live-table.component.mjs +2 -2
  109. app-ng-runtime/components/data/live-table/fesm2022/index.mjs +1 -1
  110. app-ng-runtime/components/data/live-table/fesm2022/index.mjs.map +1 -1
  111. app-ng-runtime/components/data/pagination/bundles/index.umd.js +14 -14
  112. app-ng-runtime/components/data/pagination/esm2022/pagination.component.mjs +12 -11
  113. app-ng-runtime/components/data/pagination/fesm2022/index.mjs +11 -10
  114. app-ng-runtime/components/data/pagination/fesm2022/index.mjs.map +1 -1
  115. app-ng-runtime/components/data/table/bundles/index.umd.js +175 -172
  116. app-ng-runtime/components/data/table/esm2022/table-action/table-action.directive.mjs +3 -2
  117. app-ng-runtime/components/data/table/esm2022/table-column/table-column.directive.mjs +19 -18
  118. app-ng-runtime/components/data/table/esm2022/table-cud.directive.mjs +7 -6
  119. app-ng-runtime/components/data/table/esm2022/table-filter.directive.mjs +53 -55
  120. app-ng-runtime/components/data/table/esm2022/table-row-action/table-row-action.directive.mjs +3 -2
  121. app-ng-runtime/components/data/table/esm2022/table.component.mjs +98 -91
  122. app-ng-runtime/components/data/table/fesm2022/index.mjs +172 -168
  123. app-ng-runtime/components/data/table/fesm2022/index.mjs.map +1 -1
  124. app-ng-runtime/components/data/table/table-column/table-column.directive.d.ts +6 -6
  125. app-ng-runtime/components/data/table/table.component.d.ts +2 -2
  126. app-ng-runtime/components/dialogs/default/bundles/index.umd.js +2 -2
  127. app-ng-runtime/components/dialogs/default/esm2022/base-dialog.mjs +3 -3
  128. app-ng-runtime/components/dialogs/default/esm2022/dialog-body/dialog-body.directive.mjs +1 -1
  129. app-ng-runtime/components/dialogs/default/fesm2022/index.mjs +1 -1
  130. app-ng-runtime/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  131. app-ng-runtime/components/input/calendar/bundles/index.umd.js +33 -31
  132. app-ng-runtime/components/input/calendar/esm2022/calendar.component.mjs +31 -28
  133. app-ng-runtime/components/input/calendar/fesm2022/index.mjs +30 -27
  134. app-ng-runtime/components/input/calendar/fesm2022/index.mjs.map +1 -1
  135. app-ng-runtime/components/input/chips/bundles/index.umd.js +29 -28
  136. app-ng-runtime/components/input/chips/chips.component.d.ts +1 -1
  137. app-ng-runtime/components/input/chips/esm2022/chips.component.mjs +27 -25
  138. app-ng-runtime/components/input/chips/fesm2022/index.mjs +26 -24
  139. app-ng-runtime/components/input/chips/fesm2022/index.mjs.map +1 -1
  140. app-ng-runtime/components/input/default/base-form.component.d.ts +3 -3
  141. app-ng-runtime/components/input/default/bundles/index.umd.js +75 -62
  142. app-ng-runtime/components/input/default/checkbox/checkbox.component.d.ts +1 -0
  143. app-ng-runtime/components/input/default/dataset-aware-form.component.d.ts +4 -4
  144. app-ng-runtime/components/input/default/esm2022/base-form.component.mjs +14 -8
  145. app-ng-runtime/components/input/default/esm2022/caption-position.directive.mjs +3 -2
  146. app-ng-runtime/components/input/default/esm2022/checkbox/checkbox.component.mjs +2 -2
  147. app-ng-runtime/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +6 -4
  148. app-ng-runtime/components/input/default/esm2022/dataset-aware-form.component.mjs +29 -23
  149. app-ng-runtime/components/input/default/esm2022/radioset/radioset.component.mjs +4 -3
  150. app-ng-runtime/components/input/default/esm2022/select/select.component.mjs +4 -3
  151. app-ng-runtime/components/input/default/esm2022/switch/switch.component.mjs +6 -5
  152. app-ng-runtime/components/input/default/esm2022/text/base/base-input.mjs +4 -3
  153. app-ng-runtime/components/input/default/esm2022/text/locale/number-locale.mjs +20 -18
  154. app-ng-runtime/components/input/default/esm2022/text/text/input-text.component.mjs +2 -2
  155. app-ng-runtime/components/input/default/fesm2022/index.mjs +75 -62
  156. app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
  157. app-ng-runtime/components/input/epoch/base-date-time.component.d.ts +1 -1
  158. app-ng-runtime/components/input/epoch/bundles/index.umd.js +53 -51
  159. app-ng-runtime/components/input/epoch/esm2022/base-date-time.component.mjs +34 -31
  160. app-ng-runtime/components/input/epoch/esm2022/date/date.component.mjs +5 -4
  161. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time-picker.component.mjs +5 -4
  162. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.component.mjs +7 -6
  163. app-ng-runtime/components/input/epoch/esm2022/picker/picker.component.mjs +1 -1
  164. app-ng-runtime/components/input/epoch/esm2022/time/time.component.mjs +6 -5
  165. app-ng-runtime/components/input/epoch/fesm2022/index.mjs +48 -45
  166. app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
  167. app-ng-runtime/components/input/file-upload/bundles/index.umd.js +15 -15
  168. app-ng-runtime/components/input/file-upload/esm2022/file-upload.component.mjs +13 -12
  169. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs +12 -11
  170. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  171. app-ng-runtime/components/input/rating/bundles/index.umd.js +12 -12
  172. app-ng-runtime/components/input/rating/esm2022/rating.component.mjs +10 -9
  173. app-ng-runtime/components/input/rating/fesm2022/index.mjs +9 -8
  174. app-ng-runtime/components/input/rating/fesm2022/index.mjs.map +1 -1
  175. app-ng-runtime/components/navigation/breadcrumb/bundles/index.umd.js +1 -1
  176. app-ng-runtime/components/navigation/breadcrumb/esm2022/breadcrumb.component.mjs +2 -2
  177. app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs +1 -1
  178. app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
  179. app-ng-runtime/components/navigation/menu/bundles/index.umd.js +23 -22
  180. app-ng-runtime/components/navigation/menu/esm2022/menu-adapator.component.mjs +3 -2
  181. app-ng-runtime/components/navigation/menu/esm2022/menu-dropdown-item/menu-dropdown-item.component.mjs +6 -5
  182. app-ng-runtime/components/navigation/menu/esm2022/menu.component.mjs +8 -7
  183. app-ng-runtime/components/navigation/menu/esm2022/nav/nav.component.mjs +10 -8
  184. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs +20 -18
  185. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  186. app-ng-runtime/components/navigation/menu/menu-dropdown-item/menu-dropdown-item.component.d.ts +12 -1
  187. app-ng-runtime/components/navigation/popover/esm2022/popover.component.mjs +1 -1
  188. app-ng-runtime/components/navigation/popover/fesm2022/index.mjs.map +1 -1
  189. app-ng-runtime/components/prefab/bundles/index.umd.js +6 -6
  190. app-ng-runtime/components/prefab/esm2022/prefab-container/prefab-container.directive.mjs +3 -2
  191. app-ng-runtime/components/prefab/esm2022/prefab.directive.mjs +3 -2
  192. app-ng-runtime/components/prefab/fesm2022/index.mjs +3 -2
  193. app-ng-runtime/components/prefab/fesm2022/index.mjs.map +1 -1
  194. app-ng-runtime/core/bundles/index.umd.js +119 -130
  195. app-ng-runtime/core/esm2022/public_api.mjs +2 -2
  196. app-ng-runtime/core/esm2022/services/field-type.service.mjs +3 -2
  197. app-ng-runtime/core/esm2022/services/field-widget.service.mjs +3 -2
  198. app-ng-runtime/core/esm2022/services/pagination.service.mjs +7 -6
  199. app-ng-runtime/core/esm2022/services/state-persistence.service.mjs +17 -16
  200. app-ng-runtime/core/esm2022/services/utils.service.mjs +3 -2
  201. app-ng-runtime/core/esm2022/services/viewport.service.mjs +3 -2
  202. app-ng-runtime/core/esm2022/utils/build-utils.mjs +5 -4
  203. app-ng-runtime/core/esm2022/utils/expression-parser.mjs +5 -4
  204. app-ng-runtime/core/esm2022/utils/lru-cache.mjs +3 -2
  205. app-ng-runtime/core/esm2022/utils/utils.mjs +79 -82
  206. app-ng-runtime/core/esm2022/utils/watcher.mjs +9 -7
  207. app-ng-runtime/core/fesm2022/index.mjs +117 -123
  208. app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
  209. app-ng-runtime/core/public_api.d.ts +1 -1
  210. app-ng-runtime/core/services/pagination.service.d.ts +1 -1
  211. app-ng-runtime/core/utils/utils.d.ts +5 -9
  212. app-ng-runtime/http/bundles/index.umd.js +7 -7
  213. app-ng-runtime/http/esm2022/http.service.mjs +5 -4
  214. app-ng-runtime/http/esm2022/wm-http-request.mjs +1 -1
  215. app-ng-runtime/http/esm2022/wm-http-response.mjs +1 -1
  216. app-ng-runtime/http/fesm2022/index.mjs +4 -3
  217. app-ng-runtime/http/fesm2022/index.mjs.map +1 -1
  218. app-ng-runtime/mobile/components/basic/default/bundles/index.umd.js +24 -20
  219. app-ng-runtime/mobile/components/basic/default/esm2022/anchor/anchor.directive.mjs +5 -4
  220. app-ng-runtime/mobile/components/basic/default/esm2022/file-browser/file-browser.component.mjs +12 -8
  221. app-ng-runtime/mobile/components/basic/default/esm2022/file-browser/file-selector.service.mjs +5 -3
  222. app-ng-runtime/mobile/components/basic/default/esm2022/image-cache/image-cache.directive.mjs +3 -2
  223. app-ng-runtime/mobile/components/basic/default/esm2022/process-manager/process-manager.component.mjs +5 -4
  224. app-ng-runtime/mobile/components/basic/default/fesm2022/index.mjs +21 -16
  225. app-ng-runtime/mobile/components/basic/default/fesm2022/index.mjs.map +1 -1
  226. app-ng-runtime/mobile/components/containers/segmented-control/bundles/index.umd.js +7 -7
  227. app-ng-runtime/mobile/components/containers/segmented-control/esm2022/segment-content/segment-content.component.mjs +2 -2
  228. app-ng-runtime/mobile/components/containers/segmented-control/esm2022/segmented-control.component.mjs +4 -3
  229. app-ng-runtime/mobile/components/containers/segmented-control/fesm2022/index.mjs +4 -3
  230. app-ng-runtime/mobile/components/containers/segmented-control/fesm2022/index.mjs.map +1 -1
  231. app-ng-runtime/mobile/components/data/media-list/bundles/index.umd.js +8 -8
  232. app-ng-runtime/mobile/components/data/media-list/esm2022/media-list.component.mjs +4 -3
  233. app-ng-runtime/mobile/components/data/media-list/fesm2022/index.mjs +3 -2
  234. app-ng-runtime/mobile/components/data/media-list/fesm2022/index.mjs.map +1 -1
  235. app-ng-runtime/mobile/components/page/default/bundles/index.umd.js +5 -5
  236. app-ng-runtime/mobile/components/page/default/esm2022/page.directive.mjs +3 -2
  237. app-ng-runtime/mobile/components/page/default/fesm2022/index.mjs +2 -1
  238. app-ng-runtime/mobile/components/page/default/fesm2022/index.mjs.map +1 -1
  239. app-ng-runtime/mobile/components/page/tab-bar/bundles/index.umd.js +9 -9
  240. app-ng-runtime/mobile/components/page/tab-bar/esm2022/tabbar.component.mjs +7 -6
  241. app-ng-runtime/mobile/components/page/tab-bar/fesm2022/index.mjs +6 -5
  242. app-ng-runtime/mobile/components/page/tab-bar/fesm2022/index.mjs.map +1 -1
  243. app-ng-runtime/mobile/core/bundles/index.umd.js +25 -25
  244. app-ng-runtime/mobile/core/esm2022/services/device-file-download.service.mjs +5 -4
  245. app-ng-runtime/mobile/core/esm2022/services/device-file-opener.service.mjs +3 -2
  246. app-ng-runtime/mobile/core/esm2022/services/device-file-upload.service.mjs +4 -3
  247. app-ng-runtime/mobile/core/esm2022/services/device-file.service.mjs +6 -5
  248. app-ng-runtime/mobile/core/esm2022/services/device.service.mjs +3 -2
  249. app-ng-runtime/mobile/core/esm2022/services/ext-app-message.service.mjs +5 -4
  250. app-ng-runtime/mobile/core/esm2022/services/network.service.mjs +9 -8
  251. app-ng-runtime/mobile/core/fesm2022/index.mjs +22 -21
  252. app-ng-runtime/mobile/core/fesm2022/index.mjs.map +1 -1
  253. app-ng-runtime/mobile/core/services/ext-app-message.service.d.ts +1 -1
  254. app-ng-runtime/mobile/core/services/network.service.d.ts +7 -1
  255. app-ng-runtime/mobile/offline/bundles/index.umd.js +161 -144
  256. app-ng-runtime/mobile/offline/esm2022/models/local-db-store.mjs +23 -21
  257. app-ng-runtime/mobile/offline/esm2022/services/change-log.service.mjs +7 -6
  258. app-ng-runtime/mobile/offline/esm2022/services/local-db-data-pull.service.mjs +37 -35
  259. app-ng-runtime/mobile/offline/esm2022/services/local-db-management.service.mjs +54 -45
  260. app-ng-runtime/mobile/offline/esm2022/services/local-db.service.mjs +5 -4
  261. app-ng-runtime/mobile/offline/esm2022/services/workers/error-blocker.mjs +4 -3
  262. app-ng-runtime/mobile/offline/esm2022/services/workers/file-handler.mjs +18 -13
  263. app-ng-runtime/mobile/offline/esm2022/services/workers/multi-part-param-transformer.mjs +9 -5
  264. app-ng-runtime/mobile/offline/esm2022/utils/live-variable.utils.mjs +12 -11
  265. app-ng-runtime/mobile/offline/esm2022/utils/query-executor.utils.mjs +5 -4
  266. app-ng-runtime/mobile/offline/esm2022/utils/security.utils.mjs +3 -2
  267. app-ng-runtime/mobile/offline/fesm2022/index.mjs +156 -138
  268. app-ng-runtime/mobile/offline/fesm2022/index.mjs.map +1 -1
  269. app-ng-runtime/mobile/runtime/bundles/index.umd.js +11 -8
  270. app-ng-runtime/mobile/runtime/esm2022/mobile-runtime.module.mjs +3 -2
  271. app-ng-runtime/mobile/runtime/esm2022/services/cookie.service.mjs +6 -2
  272. app-ng-runtime/mobile/runtime/esm2022/services/http-interceptor.service.mjs +4 -3
  273. app-ng-runtime/mobile/runtime/fesm2022/index.mjs +8 -4
  274. app-ng-runtime/mobile/runtime/fesm2022/index.mjs.map +1 -1
  275. app-ng-runtime/mobile/runtime-dynamic/bundles/index.umd.js +2 -2
  276. app-ng-runtime/mobile/runtime-dynamic/esm2022/services/live-sync.service.mjs +3 -3
  277. app-ng-runtime/mobile/runtime-dynamic/fesm2022/index.mjs +2 -2
  278. app-ng-runtime/mobile/runtime-dynamic/fesm2022/index.mjs.map +1 -1
  279. app-ng-runtime/mobile/variables/bundles/index.umd.js +23 -16
  280. app-ng-runtime/mobile/variables/esm2022/services/camera-service.mjs +2 -2
  281. app-ng-runtime/mobile/variables/esm2022/services/datasync-service.mjs +10 -9
  282. app-ng-runtime/mobile/variables/esm2022/services/file-service.mjs +11 -3
  283. app-ng-runtime/mobile/variables/fesm2022/index.mjs +19 -11
  284. app-ng-runtime/mobile/variables/fesm2022/index.mjs.map +1 -1
  285. app-ng-runtime/oAuth/bundles/index.umd.js +12 -12
  286. app-ng-runtime/oAuth/esm2022/oAuth.service.mjs +4 -3
  287. app-ng-runtime/oAuth/esm2022/oAuth.utils.mjs +8 -7
  288. app-ng-runtime/oAuth/fesm2022/index.mjs +9 -8
  289. app-ng-runtime/oAuth/fesm2022/index.mjs.map +1 -1
  290. app-ng-runtime/package.json +1 -1
  291. app-ng-runtime/runtime/base/bundles/index.umd.js +121 -120
  292. app-ng-runtime/runtime/base/esm2022/components/base-layout.component.mjs +4 -3
  293. app-ng-runtime/runtime/base/esm2022/components/base-page.component.mjs +14 -13
  294. app-ng-runtime/runtime/base/esm2022/components/base-partial.component.mjs +13 -12
  295. app-ng-runtime/runtime/base/esm2022/components/base-prefab.component.mjs +15 -14
  296. app-ng-runtime/runtime/base/esm2022/components/base-spa-page.component.mjs +14 -13
  297. app-ng-runtime/runtime/base/esm2022/components/custom-toaster.component.mjs +6 -5
  298. app-ng-runtime/runtime/base/esm2022/directives/accessroles.directive.mjs +11 -10
  299. app-ng-runtime/runtime/base/esm2022/guards/page-not-found.guard.mjs +1 -1
  300. app-ng-runtime/runtime/base/esm2022/guards/role.guard.mjs +3 -2
  301. app-ng-runtime/runtime/base/esm2022/services/app-defaults.service.mjs +1 -1
  302. app-ng-runtime/runtime/base/esm2022/services/app.manager.service.mjs +17 -14
  303. app-ng-runtime/runtime/base/esm2022/services/app.service.mjs +7 -6
  304. app-ng-runtime/runtime/base/esm2022/services/dynamic-component-ref-provider.service.mjs +3 -2
  305. app-ng-runtime/runtime/base/esm2022/services/http-interceptor.services.mjs +4 -3
  306. app-ng-runtime/runtime/base/esm2022/services/i18n.service.mjs +12 -10
  307. app-ng-runtime/runtime/base/esm2022/services/navigation.service.mjs +8 -7
  308. app-ng-runtime/runtime/base/esm2022/services/prefab-manager.service.mjs +3 -2
  309. app-ng-runtime/runtime/base/esm2022/services/spinner.service.mjs +7 -6
  310. app-ng-runtime/runtime/base/esm2022/services/toaster.service.mjs +6 -5
  311. app-ng-runtime/runtime/base/esm2022/util/wm-route-reuse-strategy.mjs +6 -7
  312. app-ng-runtime/runtime/base/fesm2022/index.mjs +119 -117
  313. app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
  314. app-ng-runtime/runtime/base/services/i18n.service.d.ts +1 -1
  315. app-ng-runtime/runtime/dynamic/bundles/index.umd.js +7 -7
  316. app-ng-runtime/runtime/dynamic/esm2022/app/services/component-ref-provider.service.mjs +4 -3
  317. app-ng-runtime/runtime/dynamic/esm2022/main.mjs +3 -2
  318. app-ng-runtime/runtime/dynamic/fesm2022/index.mjs +4 -3
  319. app-ng-runtime/runtime/dynamic/fesm2022/index.mjs.map +1 -1
  320. app-ng-runtime/scripts/jquery-ui/ui/widgets/droppable.js +7 -7
  321. app-ng-runtime/scripts/jquery-ui/ui/widgets/resizable.js +13 -10
  322. app-ng-runtime/scripts/jquery-ui/ui/widgets/sortable.js +7 -7
  323. app-ng-runtime/security/bundles/index.umd.js +14 -14
  324. app-ng-runtime/security/esm2022/security.service.mjs +12 -11
  325. app-ng-runtime/security/fesm2022/index.mjs +11 -10
  326. app-ng-runtime/security/fesm2022/index.mjs.map +1 -1
  327. app-ng-runtime/security/security.service.d.ts +1 -1
  328. app-ng-runtime/swipey/esm2022/swipe.animation.mjs +1 -1
  329. app-ng-runtime/swipey/fesm2022/index.mjs.map +1 -1
  330. app-ng-runtime/transpiler/bundles/index.umd.js +10 -9
  331. app-ng-runtime/transpiler/esm2022/build.mjs +8 -6
  332. app-ng-runtime/transpiler/fesm2022/index.mjs +7 -5
  333. app-ng-runtime/transpiler/fesm2022/index.mjs.map +1 -1
  334. app-ng-runtime/variables/bundles/index.umd.js +155 -145
  335. app-ng-runtime/variables/esm2022/manager/action/login-action.manager.mjs +15 -14
  336. app-ng-runtime/variables/esm2022/manager/action/notification-action.manager.mjs +9 -8
  337. app-ng-runtime/variables/esm2022/manager/variable/base-variable.manager.mjs +3 -2
  338. app-ng-runtime/variables/esm2022/manager/variable/web-socket-variable.manager.mjs +11 -10
  339. app-ng-runtime/variables/esm2022/service/variables.service.mjs +7 -6
  340. app-ng-runtime/variables/esm2022/util/action/navigation-action.utils.mjs +4 -4
  341. app-ng-runtime/variables/esm2022/util/variable/pagination.utils.mjs +30 -23
  342. app-ng-runtime/variables/esm2022/util/variable/service-variable.utils.mjs +29 -28
  343. app-ng-runtime/variables/esm2022/util/variable/variables.utils.mjs +75 -70
  344. app-ng-runtime/variables/fesm2022/index.mjs +169 -158
  345. app-ng-runtime/variables/fesm2022/index.mjs.map +1 -1
  346. app-ng-runtime/variables/util/variable/service-variable.utils.d.ts +1 -1
@@ -3,9 +3,10 @@ import { InjectionToken, forwardRef, ElementRef, inject, ViewContainerRef, Injec
3
3
  import * as i1$1 from '@angular/common';
4
4
  import { Location, CommonModule } from '@angular/common';
5
5
  import * as i1 from '@wm/core';
6
- import { FormWidgetType, checkIsCustomPipeExpression, $parseExpr, isValidWebURL, encodeUrl, stringStartsWith, prettifyLabel, deHyphenate, initCaps, getClonedObject, setCSS, isDefined, IDGenerator, toBoolean, isChangeFromWatch, $unwatch, resetChangeFromWatch, isObject, toDimension, $appDigest, removeClass, addClass, setCSSFromObj, App, findParent, setAttr, isMobileApp, switchClass, removeAttr, $parseEvent, $invokeWatchers, $watch, transformFileURI, ComponentType, noop as noop$1, isLargeTabletLandscape, isLargeTabletPortrait, isKitkatDevice, debounce, hasOffsetStr, AbstractI18nService, CURRENCY_INFO, isMobile, AbstractDialogService, DataSource, processFilterExpBindNode, MatchMode, isEqualWithFields, getFormattedDate, isAndroid, isNumberType, DataType, findValueOf, validateAccessRoles, VALIDATOR, isIos } from '@wm/core';
6
+ import { FormWidgetType, checkIsCustomPipeExpression, $parseExpr, isValidWebURL, encodeUrl, stringStartsWith, prettifyLabel, deHyphenate, initCaps, getClonedObject, setCSS, isDefined, IDGenerator, toBoolean, isChangeFromWatch, $unwatch, resetChangeFromWatch, isObject as isObject$1, toDimension, $appDigest, removeClass, addClass, setCSSFromObj, App, findParent, setAttr, isMobileApp, switchClass, removeAttr, $parseEvent, $invokeWatchers, $watch, transformFileURI, ComponentType, noop as noop$1, isLargeTabletLandscape, isLargeTabletPortrait, isKitkatDevice, debounce as debounce$1, hasOffsetStr, AbstractI18nService, CURRENCY_INFO, isMobile, AbstractDialogService, DataSource, processFilterExpBindNode, MatchMode, isEqualWithFields, getFormattedDate, isAndroid, isNumberType, DataType, findValueOf, validateAccessRoles, VALIDATOR, isIos } from '@wm/core';
7
7
  import { SecurityModule, SecurityService } from '@wm/security';
8
- import { createFocusTrap } from '@wavemaker/focus-trap/dist/focus-trap';
8
+ import { createFocusTrap } from '@wavemaker/focus-trap';
9
+ import { isNull, get, forEach, join, union, isArray, isObject, includes, split, isString, assignWith, startsWith, isFunction, extend, camelCase, map, pickBy, assign, debounce, isDate, isUndefined, filter as filter$1, isEmpty, keys, head, replace, each, intersection, cloneDeep, orderBy, trim, isEqual, uniqWith, uniqBy, sortBy, groupBy, toLower, values, first, omitBy, toUpper, find, concat } from 'lodash-es';
9
10
  import * as i1$2 from '@angular/platform-browser';
10
11
  import { EventManager } from '@angular/platform-browser';
11
12
  import { ReplaySubject, Subject } from 'rxjs';
@@ -88,7 +89,7 @@ const getObjValueByKey = (obj, strKey) => {
88
89
  /* convert indexes to properties, so as to work for even 'key1[0].child1'*/
89
90
  strKey.replace(/\[(\w+)\]/g, '.$1').split('.').forEach(key => {
90
91
  // If obj is null, then assign val to null.
91
- val = (val && val[key]) || (_.isNull(obj) ? obj : obj[key]);
92
+ val = (val && val[key]) || (isNull(obj) ? obj : obj[key]);
92
93
  });
93
94
  return val;
94
95
  }
@@ -123,7 +124,7 @@ const getEvaluatedData = (dataObj, options, context) => {
123
124
  // Handling field name with special charecters
124
125
  // Ex: field = "f name"
125
126
  if (!bindExpr && !expr) {
126
- return _.get(dataObj, field);
127
+ return get(dataObj, field);
127
128
  }
128
129
  return $parseExpr(expressionValue)(context, Object.assign({}, dataObj, { __1: dataObj }));
129
130
  };
@@ -160,12 +161,12 @@ const hasLinkToCurrentPage = (nodes, routeUrl) => {
160
161
  const getOrderByExpr = pageableObj => {
161
162
  pageableObj = pageableObj || [];
162
163
  const expressions = [], KEY_VAL_SEPARATOR = ' ', FIELD_SEPARATOR = ',';
163
- _.forEach(pageableObj, obj => {
164
+ forEach(pageableObj, obj => {
164
165
  if (obj.direction) {
165
166
  expressions.push(obj.property + KEY_VAL_SEPARATOR + obj.direction.toLowerCase());
166
167
  }
167
168
  });
168
- return _.join(expressions, FIELD_SEPARATOR);
169
+ return join(expressions, FIELD_SEPARATOR);
169
170
  };
170
171
  const isDataSetWidget = widget => {
171
172
  return DATASET_WIDGETS.has(widget);
@@ -255,13 +256,13 @@ const getMatchModeTypesMap = (multiMode) => {
255
256
  modes.string.push('in', 'notin');
256
257
  modes.character.push('in', 'notin');
257
258
  }
258
- _.forEach(typesMap, (types, primType) => {
259
- _.forEach(types, type => {
259
+ forEach(typesMap, (types, primType) => {
260
+ forEach(types, type => {
260
261
  matchModeTypesMap[type] = modes[primType];
261
262
  });
262
263
  });
263
264
  // this is used in filter criteria when the user types the column name manually and where we dont know the type of the column
264
- matchModeTypesMap['default'] = _.union(modes['number'], modes['string'], modes['character'], modes['date'], modes['date']);
265
+ matchModeTypesMap['default'] = union(modes['number'], modes['string'], modes['character'], modes['date'], modes['date']);
265
266
  return matchModeTypesMap;
266
267
  };
267
268
  const getMatchModeMsgs = (appLocale) => {
@@ -293,14 +294,14 @@ const getMatchModeMsgs = (appLocale) => {
293
294
  // Returns array of classes that are evaluated true for given object or array
294
295
  const getClassesArray = classVal => {
295
296
  let classes = [];
296
- if (_.isArray(classVal)) {
297
+ if (isArray(classVal)) {
297
298
  classVal.forEach(v => {
298
299
  classes = classes.concat(getClassesArray(v));
299
300
  });
300
301
  return classes;
301
302
  }
302
- if (_.isObject(classVal)) {
303
- _.forEach(classVal, (val, key) => {
303
+ if (isObject(classVal)) {
304
+ forEach(classVal, (val, key) => {
304
305
  if (val) {
305
306
  classes = classes.concat(key.split(' '));
306
307
  }
@@ -314,9 +315,9 @@ const getConditionalClasses = (nv, ov) => {
314
315
  // if the conditional class property has already toAdd and toRemove arrays then take that otherwise build those arrays
315
316
  const classToAdd = nv.toAdd || nv;
316
317
  const classToRemove = nv.toRemove || ov;
317
- if (_.isObject(nv)) {
318
- toAdd = _.isArray(classToAdd) ? classToAdd : getClassesArray(classToAdd || []);
319
- toRemove = classToRemove ? (_.isArray(classToRemove) ? classToRemove : getClassesArray(classToRemove)) : [];
318
+ if (isObject(nv)) {
319
+ toAdd = isArray(classToAdd) ? classToAdd : getClassesArray(classToAdd || []);
320
+ toRemove = classToRemove ? (isArray(classToRemove) ? classToRemove : getClassesArray(classToRemove)) : [];
320
321
  }
321
322
  else {
322
323
  toAdd = classToAdd ? [classToAdd] : [];
@@ -331,9 +332,9 @@ const pushFieldDef = (dataObject, columnDefObj, namePrefix, options) => {
331
332
  if (!options) {
332
333
  options = {};
333
334
  }
334
- _.forEach(dataObject, (value, title) => {
335
- if (_.includes(title, '.')) {
336
- relatedInfo = _.split(title, '.');
335
+ forEach(dataObject, (value, title) => {
336
+ if (includes(title, '.')) {
337
+ relatedInfo = split(title, '.');
337
338
  relatedTable = relatedInfo[0];
338
339
  relatedField = relatedInfo[1];
339
340
  isRelated = true;
@@ -342,7 +343,7 @@ const pushFieldDef = (dataObject, columnDefObj, namePrefix, options) => {
342
343
  modifiedTitle = title;
343
344
  }
344
345
  else {
345
- if (_.isString(title)) {
346
+ if (isString(title)) {
346
347
  modifiedTitle = prettifyLabel(title);
347
348
  modifiedTitle = deHyphenate(modifiedTitle);
348
349
  modifiedTitle = namePrefix ? initCaps(namePrefix) + ' ' + modifiedTitle : modifiedTitle;
@@ -354,7 +355,7 @@ const pushFieldDef = (dataObject, columnDefObj, namePrefix, options) => {
354
355
  title = namePrefix ? namePrefix + '.' + title : title;
355
356
  if (isRelated) {
356
357
  // For related columns, shorten the title to last two words
357
- fieldName = _.split(modifiedTitle, ' ');
358
+ fieldName = split(modifiedTitle, ' ');
358
359
  fieldName = fieldName.length > 1 ? fieldName[fieldName.length - 2] + ' ' + fieldName[fieldName.length - 1] : fieldName[0];
359
360
  }
360
361
  else {
@@ -363,7 +364,7 @@ const pushFieldDef = (dataObject, columnDefObj, namePrefix, options) => {
363
364
  const defObj = options.setBindingField ? { 'displayName': fieldName, 'field': title, 'relatedTable': relatedTable, 'relatedField': relatedField || modifiedTitle }
364
365
  : { 'displayName': fieldName, 'relatedTable': relatedTable, 'relatedField': relatedField || modifiedTitle };
365
366
  /*if field is a leaf node, push it in the columnDefs*/
366
- if (!_.isObject(value) || (_.isArray(value) && !value[0])) {
367
+ if (!isObject(value) || (isArray(value) && !value[0])) {
367
368
  /*if the column counter has reached upperBound return*/
368
369
  if (options.upperBound && options.columnCount === options.upperBound) {
369
370
  return;
@@ -379,7 +380,7 @@ const pushFieldDef = (dataObject, columnDefObj, namePrefix, options) => {
379
380
  columnDefObj.objects.push(defObj);
380
381
  }
381
382
  /* if field is an array node, process its first child */
382
- if (_.isArray(value) && value[0]) {
383
+ if (isArray(value) && value[0]) {
383
384
  pushFieldDef(value[0], columnDefObj, title + '[0]', options);
384
385
  }
385
386
  else {
@@ -390,17 +391,17 @@ const pushFieldDef = (dataObject, columnDefObj, namePrefix, options) => {
390
391
  };
391
392
  const getMetaDataFromData = (data) => {
392
393
  let dataObject;
393
- if (_.isArray(data)) {
394
- if (_.isObject(data[0])) {
394
+ if (isArray(data)) {
395
+ if (isObject(data[0])) {
395
396
  dataObject = getClonedObject(data[0]);
396
397
  /*Loop over the object to find out any null values. If any null values are present in the first row, check and assign the values from other row.
397
398
  * As column generation is dependent on data, for related fields if first row value is null, columns are not generated.
398
399
  * To prevent this, check the data in other rows and generate the columns. New keys from others rows are also added*/
399
- _.forEach(data, (row, index) => {
400
+ forEach(data, (row, index) => {
400
401
  if ((index + 1) >= 10) { // Limit the data search to first 10 records
401
402
  return false;
402
403
  }
403
- _.assignWith(dataObject, row, (objValue, srcValue) => {
404
+ assignWith(dataObject, row, (objValue, srcValue) => {
404
405
  return (objValue === null || objValue === undefined) ? srcValue : objValue;
405
406
  });
406
407
  });
@@ -789,11 +790,11 @@ const globalPropertyChangeHandler = (component, key, nv) => {
789
790
  }
790
791
  }
791
792
  // Set the value in the component and trigger appDigest when there is a change in the value
792
- if (nv !== ov || isObject(nv) || isObject(ov)) {
793
+ if (nv !== ov || isObject$1(nv) || isObject$1(ov)) {
793
794
  if (isDimensionProp(key)) {
794
795
  nv = toDimension(nv);
795
796
  }
796
- else if (_.startsWith(nv, 'resources/')) {
797
+ else if (startsWith(nv, 'resources/')) {
797
798
  const ref = component;
798
799
  if (ref._parentPrefab_ === undefined) {
799
800
  ref._parentPrefab_ = component.$element.parent().closest('[prefabname][prefabname!="__self__"]').attr('prefabname') || '';
@@ -834,7 +835,7 @@ const proxyHandler = {
834
835
  },
835
836
  get: (target, key) => {
836
837
  const v = target[key];
837
- if (_.isFunction(v)) { // bind the proper context for the methods
838
+ if (isFunction(v)) { // bind the proper context for the methods
838
839
  return v.bind(target);
839
840
  }
840
841
  return v;
@@ -863,7 +864,7 @@ class WidgetProxyProvider {
863
864
  // bind proper context for the methods
864
865
  invokeLater(() => {
865
866
  for (const key in instance) {
866
- if (_.isFunction(instance[key]) && key !== 'constructor' && key !== 'super' && !_.startsWith(key, 'ng')) {
867
+ if (isFunction(instance[key]) && key !== 'constructor' && key !== 'super' && !startsWith(key, 'ng')) {
867
868
  instance[key] = instance[key].bind(instance);
868
869
  }
869
870
  }
@@ -894,21 +895,21 @@ class WidgetProxyProvider {
894
895
  // Gets list of classes to add and remove and applies on the $el
895
896
  const updateClasses = (toAdd, toRemove, el) => {
896
897
  if (toRemove && toRemove.length) {
897
- removeClass(el, _.join(toRemove, ' '));
898
+ removeClass(el, join(toRemove, ' '));
898
899
  }
899
900
  if (toAdd && toAdd.length) {
900
- addClass(el, _.join(toAdd, ' '));
901
+ addClass(el, join(toAdd, ' '));
901
902
  }
902
903
  };
903
904
  // To add and remove styles on the $el
904
905
  const updateStyles = (nv, ov, el) => {
905
- if (ov && _.isObject(ov)) {
906
+ if (ov && isObject(ov)) {
906
907
  const keys = Object.keys(ov || {});
907
908
  keys.forEach(function (key) {
908
909
  setCSS(el, key, '');
909
910
  });
910
911
  }
911
- if (nv && _.isObject(nv)) {
912
+ if (nv && isObject(nv)) {
912
913
  setCSSFromObj(el, nv);
913
914
  }
914
915
  };
@@ -1020,7 +1021,7 @@ class BaseComponent {
1020
1021
  });
1021
1022
  }
1022
1023
  if (explicitContext) {
1023
- _.extend(this.context, explicitContext);
1024
+ extend(this.context, explicitContext);
1024
1025
  }
1025
1026
  }
1026
1027
  getNativeElement() {
@@ -1094,8 +1095,8 @@ class BaseComponent {
1094
1095
  }
1095
1096
  if (parentContexts) {
1096
1097
  let parentContextObj = {};
1097
- if (_.isArray(parentContexts)) {
1098
- _.forEach(parentContexts, (contextObj) => {
1098
+ if (isArray(parentContexts)) {
1099
+ forEach(parentContexts, (contextObj) => {
1099
1100
  Object.assign(parentContextObj, contextObj);
1100
1101
  });
1101
1102
  }
@@ -1253,7 +1254,7 @@ class BaseComponent {
1253
1254
  this.eventHandlers.set(this.getMappedEventName(eventName), { callback: eventCallback, locals });
1254
1255
  // prepend eventName with on and convert it to camelcase.
1255
1256
  // eg, "click" ---> onClick
1256
- const onEventName = _.camelCase(`on-${eventName}`);
1257
+ const onEventName = camelCase(`on-${eventName}`);
1257
1258
  // save the eventCallback in widgetScope.
1258
1259
  this[onEventName] = eventCallback;
1259
1260
  // events needs to be setup after viewInit
@@ -1335,7 +1336,7 @@ class BaseComponent {
1335
1336
  if (_tNodeAttrs === null) {
1336
1337
  return actualAttrs.sort();
1337
1338
  }
1338
- _.forEach(_tNodeAttrs, (attr, i) => {
1339
+ forEach(_tNodeAttrs, (attr, i) => {
1339
1340
  if (typeof attr === 'number') {
1340
1341
  return false;
1341
1342
  }
@@ -1360,7 +1361,7 @@ class BaseComponent {
1360
1361
  * Process the attributes
1361
1362
  */
1362
1363
  processAttrs() {
1363
- _.map(this.getAttributes(), (attrName) => {
1364
+ map(this.getAttributes(), (attrName) => {
1364
1365
  let attrValue = this.nativeElement.attributes[attrName].value;
1365
1366
  this.$attrs.set(attrName, attrValue);
1366
1367
  this.processAttr(attrName, attrValue);
@@ -1549,9 +1550,9 @@ class BaseContainerComponent extends StylableComponent {
1549
1550
  super(inj, WIDGET_CONFIG, explicitContext);
1550
1551
  }
1551
1552
  updateRedrawableComponents(widgets) {
1552
- _.pickBy(widgets, widget => {
1553
+ pickBy(widgets, widget => {
1553
1554
  // check for redrawable widget and whether it is already exist in reDrawableComponents query list or not
1554
- if (widget && widget.nativeElement && widget.nativeElement.hasAttribute('redrawable') && !_.includes(this.reDrawableComponents._results, widget)) {
1555
+ if (widget && widget.nativeElement && widget.nativeElement.hasAttribute('redrawable') && !includes(this.reDrawableComponents._results, widget)) {
1555
1556
  this.reDrawableComponents._results.push(widget);
1556
1557
  }
1557
1558
  if (widget && widget.Widgets) {
@@ -1892,7 +1893,7 @@ class PartialDirective extends StylableComponent {
1892
1893
  this.registerDestroyListener(this.viewport.subscribe("orientationchange" /* ViewportEvent.ORIENTATION_CHANGE */, data => this.callback('orientationchange', data)));
1893
1894
  }
1894
1895
  callback(eventName, locals) {
1895
- locals = _.assign({ widget: this }, locals);
1896
+ locals = assign({ widget: this }, locals);
1896
1897
  this.invokeEventCallback(eventName, locals);
1897
1898
  }
1898
1899
  ngOnAttach() {
@@ -1937,7 +1938,7 @@ class PartialParamHandlerDirective {
1937
1938
  if (!value && bindExpr) {
1938
1939
  this.widgetRef.registerDestroyListener(
1939
1940
  //[Todo-CSP]: expr fn should be generated be default
1940
- $watch(bindExpr, this.widgetRef.getViewParent(), _.get(this.widgetRef, 'context'), nv => {
1941
+ $watch(bindExpr, this.widgetRef.getViewParent(), get(this.widgetRef, 'context'), nv => {
1941
1942
  this.widgetRef.partialParams[name] = nv;
1942
1943
  // notify the partial container of the param changes
1943
1944
  this.widgetRef.params$.next();
@@ -2037,7 +2038,7 @@ class PartialContainerDirective {
2037
2038
  this.resolver = resolver;
2038
2039
  this.partialRefProvider = partialRefProvider;
2039
2040
  this.contentInitialized = false;
2040
- this.renderPartial = _.debounce(this._renderPartial, 200);
2041
+ this.renderPartial = debounce(this._renderPartial, 200);
2041
2042
  componentInstance.registerPropertyChangeListener((key, nv, ov) => {
2042
2043
  if (key === 'content') {
2043
2044
  if (componentInstance.$lazyLoad) {
@@ -2228,8 +2229,8 @@ class SmoothScrollDirective {
2228
2229
  let iScroll = new IScroll(el, scrollOptions);
2229
2230
  if ($events) {
2230
2231
  // map all events on previous iscroll to the newly created iscroll.
2231
- _.forEach($events, (listeners, key) => {
2232
- _.forEach(listeners, l => {
2232
+ forEach($events, (listeners, key) => {
2233
+ forEach(listeners, l => {
2233
2234
  iScroll.on(key, l);
2234
2235
  });
2235
2236
  });
@@ -2258,7 +2259,7 @@ class SmoothScrollDirective {
2258
2259
  }
2259
2260
  };
2260
2261
  this._$el[0].iscroll = iScroll;
2261
- _.forEach(this.pendingIscrolls, (_el, index) => {
2262
+ forEach(this.pendingIscrolls, (_el, index) => {
2262
2263
  if (_el.isSameNode(this._$el[0])) {
2263
2264
  this.app.notify('iscroll-update', { el: _el });
2264
2265
  this.pendingIscrolls.splice(index, 1);
@@ -2296,7 +2297,7 @@ class SmoothScrollDirective {
2296
2297
  }
2297
2298
  // Check for scrollable content and if smoothscroll-container div is already added.
2298
2299
  if (iScroll.wrapper
2299
- && !_.includes(iScroll.wrapper.children[0].classList, 'smoothscroll-container')
2300
+ && !includes(iScroll.wrapper.children[0].classList, 'smoothscroll-container')
2300
2301
  && iScroll.wrapper.scrollHeight > iScroll.wrapper.clientHeight) {
2301
2302
  const cloneEvents = iScroll._events;
2302
2303
  const prevActiveEl = document.activeElement;
@@ -2356,7 +2357,7 @@ const refreshIscrolls = function (iScroll) {
2356
2357
  }
2357
2358
  };
2358
2359
  // on window resize, recalculate the iscroll position and refresh scrollers.
2359
- window.addEventListener('resize', debounce(refreshIscrolls, 200));
2360
+ window.addEventListener('resize', debounce$1(refreshIscrolls, 200));
2360
2361
 
2361
2362
  class TextContentDirective {
2362
2363
  set textContent(nv) {
@@ -2386,7 +2387,7 @@ class WmPipe {
2386
2387
  this.pipeName = pipeName;
2387
2388
  this.customPipeManager = customPipeManager;
2388
2389
  this.pipeRef = this.customPipeManager ? this.customPipeManager.getCustomPipe(pipeName) : null;
2389
- this.isCustomPipe = this.pipeRef && _.isFunction(this.pipeRef.formatter);
2390
+ this.isCustomPipe = this.pipeRef && isFunction(this.pipeRef.formatter);
2390
2391
  }
2391
2392
  customFormatter(data, args) {
2392
2393
  try {
@@ -2401,7 +2402,7 @@ class WmPipe {
2401
2402
  const getEpochValue = data => {
2402
2403
  let epoch;
2403
2404
  // For data in form of string number ('123'), convert to number (123). And don't parse date objects.
2404
- if (!_.isDate(data) && !isNaN(data)) {
2405
+ if (!isDate(data) && !isNaN(data)) {
2405
2406
  data = parseInt(data, 10);
2406
2407
  }
2407
2408
  // get the timestamp value. If data is time string, append date string to the time value
@@ -2486,7 +2487,7 @@ class ToNumberPipe {
2486
2487
  if (fracSize && !String(fracSize).match(/^(\d+)?\.((\d+)(-(\d+))?)?$/)) {
2487
2488
  fracSize = '1.' + fracSize + '-' + fracSize;
2488
2489
  }
2489
- if (!_.isNaN(+data)) {
2490
+ if (!isNaN(+data)) {
2490
2491
  const locale = this.i18nService && this.i18nService.getwidgetLocale() ? this.i18nService.getwidgetLocale() : undefined;
2491
2492
  const formattedLocale = locale ? locale['number'] : null;
2492
2493
  return this.decimalPipe.transform(data, fracSize, formattedLocale);
@@ -2512,7 +2513,7 @@ class ToCurrencyPipe {
2512
2513
  transform(data, currencySymbol, fracSize) {
2513
2514
  const _currencySymbol = (CURRENCY_INFO[currencySymbol] || {}).symbol || currencySymbol || '';
2514
2515
  let _val = new ToNumberPipe(this.decimalPipe, this.i18nService).transform(data, fracSize);
2515
- const isNegativeNumber = _.startsWith(_val, '-');
2516
+ const isNegativeNumber = startsWith(_val, '-');
2516
2517
  if (isNegativeNumber) {
2517
2518
  _val = _val.replace('-', '');
2518
2519
  }
@@ -2536,7 +2537,7 @@ class ToCurrencyPipe {
2536
2537
  }] }], null); })();
2537
2538
  class PrefixPipe {
2538
2539
  transform(data, padding) {
2539
- return (_.isUndefined(data) || data === null || data === '') ? data : ((padding || '') + data);
2540
+ return (isUndefined(data) || data === null || data === '') ? data : ((padding || '') + data);
2540
2541
  }
2541
2542
  static { this.ɵfac = function PrefixPipe_Factory(t) { return new (t || PrefixPipe)(); }; }
2542
2543
  static { this.ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "prefix", type: PrefixPipe, pure: true }); }
@@ -2549,7 +2550,7 @@ class PrefixPipe {
2549
2550
  }], null, null); })();
2550
2551
  class SuffixPipe {
2551
2552
  transform(data, padding) {
2552
- return (_.isUndefined(data) || data === null || data === '') ? data : (data + (padding || ''));
2553
+ return (isUndefined(data) || data === null || data === '') ? data : (data + (padding || ''));
2553
2554
  }
2554
2555
  static { this.ɵfac = function SuffixPipe_Factory(t) { return new (t || SuffixPipe)(); }; }
2555
2556
  static { this.ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "suffix", type: SuffixPipe, pure: true }); }
@@ -2573,7 +2574,7 @@ class CustomPipe {
2573
2574
  argumentArr.push(arguments[i]);
2574
2575
  }
2575
2576
  let pipeRef = this.custmeUserPipe.getCustomPipe(pipename);
2576
- if (!pipeRef || !_.isFunction(pipeRef.formatter)) {
2577
+ if (!pipeRef || !isFunction(pipeRef.formatter)) {
2577
2578
  console.warn('formatter is not defined, please check the custom pipes documentation');
2578
2579
  return data;
2579
2580
  }
@@ -2641,12 +2642,12 @@ class FilterPipe {
2641
2642
  return [];
2642
2643
  }
2643
2644
  // If object is passed as first paramter
2644
- if (_.isObject(field)) {
2645
- return _.filter(data, field);
2645
+ if (isObject(field)) {
2646
+ return filter$1(data, field);
2646
2647
  }
2647
2648
  // If key value pair is provided
2648
- return _.filter(data, item => {
2649
- return _.includes(item[field], value);
2649
+ return filter$1(data, item => {
2650
+ return includes(item[field], value);
2650
2651
  });
2651
2652
  }
2652
2653
  static { this.ɵfac = function FilterPipe_Factory(t) { return new (t || FilterPipe)(); }; }
@@ -2979,7 +2980,7 @@ class DialogServiceImpl {
2979
2980
  * closes all the opened dialogs
2980
2981
  */
2981
2982
  closeAllDialogs() {
2982
- _.forEach(openedDialogs.reverse(), (dialog) => {
2983
+ forEach(openedDialogs.reverse(), (dialog) => {
2983
2984
  dialog.close();
2984
2985
  });
2985
2986
  }
@@ -3220,7 +3221,7 @@ const LIVE_CONSTANTS = {
3220
3221
  };
3221
3222
  // Returns true if widget is autocomplete or chips
3222
3223
  function isSearchWidgetType(widget) {
3223
- return _.includes([FormWidgetType.AUTOCOMPLETE, FormWidgetType.TYPEAHEAD, FormWidgetType.CHIPS], widget);
3224
+ return includes([FormWidgetType.AUTOCOMPLETE, FormWidgetType.TYPEAHEAD, FormWidgetType.CHIPS], widget);
3224
3225
  }
3225
3226
  function onSuccess(response, res, rej) {
3226
3227
  if (response.error) {
@@ -3309,7 +3310,7 @@ function fetchRelatedFieldData(dataSource, formField, options) {
3309
3310
  }
3310
3311
  primaryKeys = dataSource.execute(DataSource.Operation.GET_RELATED_PRIMARY_KEYS, relatedField);
3311
3312
  formField.datafield = datafield;
3312
- formField._primaryKey = _.isEmpty(primaryKeys) ? undefined : primaryKeys[0];
3313
+ formField._primaryKey = isEmpty(primaryKeys) ? undefined : primaryKeys[0];
3313
3314
  formField.compareby = primaryKeys && primaryKeys.join(',');
3314
3315
  displayField = datafield === ALLFIELDS ? undefined : datafield;
3315
3316
  formField.displayfield = displayField = (formField.displayfield || displayField || formField._primaryKey);
@@ -3328,12 +3329,12 @@ function fetchRelatedFieldData(dataSource, formField, options) {
3328
3329
  dataSource.execute(DataSource.Operation.GET_RELATED_TABLE_DATA, {
3329
3330
  relatedField,
3330
3331
  pagesize: formField.limit,
3331
- orderBy: formField.orderby ? _.replace(formField.orderby, /:/g, ' ') : '',
3332
+ orderBy: formField.orderby ? replace(formField.orderby, /:/g, ' ') : '',
3332
3333
  filterFields: {},
3333
3334
  filterExpr: formField.filterexpressions ? formField.filterexpressions : {}
3334
3335
  }).then(response => {
3335
3336
  formField.dataset = response.data;
3336
- formField.displayfield = formField.displayfield || _.head(_.keys(_.get(response, '[0]')));
3337
+ formField.displayfield = formField.displayfield || head(keys(get(response, '[0]')));
3337
3338
  if (formField.showPendingSpinner) {
3338
3339
  formField.showPendingSpinner = false;
3339
3340
  }
@@ -3348,8 +3349,8 @@ function fetchRelatedFieldData(dataSource, formField, options) {
3348
3349
  * @param callbackFn - function to be called with the new replaced values if any in the filterexpressions object
3349
3350
  */
3350
3351
  const interpolateBindExpressions = (context, filterexpressions, callbackFn) => {
3351
- const debouncedFn = debounce(() => {
3352
- if (_.isFunction(callbackFn)) {
3352
+ const debouncedFn = debounce$1(() => {
3353
+ if (isFunction(callbackFn)) {
3353
3354
  callbackFn(filterexpressions);
3354
3355
  }
3355
3356
  }, 300);
@@ -3358,8 +3359,8 @@ const interpolateBindExpressions = (context, filterexpressions, callbackFn) => {
3358
3359
  * without this it will never be called. processFilterExpBindNode will be called only for the binded variable expressions.
3359
3360
  */
3360
3361
  debouncedFn();
3361
- const filterExpressions = filterexpressions ? (_.isObject(filterexpressions) ? filterexpressions : JSON.parse(filterexpressions)) : {};
3362
- const destroyFn = context.registerDestroyListener ? context.registerDestroyListener.bind(context) : _.noop;
3362
+ const filterExpressions = filterexpressions ? (isObject(filterexpressions) ? filterexpressions : JSON.parse(filterexpressions)) : {};
3363
+ const destroyFn = context.registerDestroyListener ? context.registerDestroyListener.bind(context) : noop;
3363
3364
  const filterSubscription = processFilterExpBindNode(context, filterExpressions).subscribe((response) => {
3364
3365
  filterexpressions = JSON.stringify(response.filterExpressions);
3365
3366
  debouncedFn();
@@ -3387,7 +3388,7 @@ const getDistinctFieldProperties = (dataSource, formField) => {
3387
3388
  fieldColumn = formField['lookup-field'];
3388
3389
  props.distinctField = fieldColumn;
3389
3390
  props.aliasColumn = fieldColumn.replace('.', '$'); // For related fields, In response . is replaced by $
3390
- props.filterExpr = formField.filterexpressions ? (_.isObject(formField.filterexpressions) ? formField.filterexpressions : JSON.parse(formField.filterexpressions)) : {};
3391
+ props.filterExpr = formField.filterexpressions ? (isObject(formField.filterexpressions) ? formField.filterexpressions : JSON.parse(formField.filterexpressions)) : {};
3391
3392
  }
3392
3393
  else {
3393
3394
  props.tableName = dataSource.execute(DataSource.Operation.GET_ENTITY_NAME);
@@ -3460,14 +3461,14 @@ function setFieldDataSet(formField, data, options) {
3460
3461
  const emptySupportWidgets = [FormWidgetType.SELECT, FormWidgetType.RADIOSET];
3461
3462
  const emptyOption = {};
3462
3463
  const dataSet = [];
3463
- if (options.isEnableEmptyFilter && _.includes(emptySupportWidgets, formField[options.widget]) &&
3464
+ if (options.isEnableEmptyFilter && includes(emptySupportWidgets, formField[options.widget]) &&
3464
3465
  !formField['is-range'] && !formField.multiple) {
3465
3466
  // If empty option is selected, push an empty object in to dataSet
3466
3467
  emptyOption[LIVE_CONSTANTS.LABEL_KEY] = LIVE_CONSTANTS.EMPTY_KEY;
3467
3468
  emptyOption[LIVE_CONSTANTS.LABEL_VALUE] = options.EMPTY_VALUE || LIVE_CONSTANTS.EMPTY_VALUE;
3468
3469
  dataSet.push(emptyOption);
3469
3470
  }
3470
- _.each(data, key => {
3471
+ each(data, key => {
3471
3472
  const value = key[options.aliasColumn];
3472
3473
  const option = {};
3473
3474
  if (value !== null && value !== '') {
@@ -3495,7 +3496,7 @@ function setFieldDataSet(formField, data, options) {
3495
3496
  *
3496
3497
  */
3497
3498
  function fetchDistinctValues(dataSource, formFields, options) {
3498
- if (_.isEmpty(formFields)) {
3499
+ if (isEmpty(formFields)) {
3499
3500
  return;
3500
3501
  }
3501
3502
  formFields.forEach(formField => {
@@ -3607,7 +3608,7 @@ function getRangeMatchMode(minValue, maxValue) {
3607
3608
  * @param {object} enableemptyfilter empty filter options
3608
3609
  */
3609
3610
  function getEnableEmptyFilter(enableemptyfilter) {
3610
- return enableemptyfilter && _.intersection(enableemptyfilter.split(','), LIVE_CONSTANTS.NULL_EMPTY).length > 0;
3611
+ return enableemptyfilter && intersection(enableemptyfilter.split(','), LIVE_CONSTANTS.NULL_EMPTY).length > 0;
3611
3612
  }
3612
3613
  /**
3613
3614
  * @ngdoc function
@@ -3622,14 +3623,14 @@ function getEnableEmptyFilter(enableemptyfilter) {
3622
3623
  */
3623
3624
  function getEmptyMatchMode(enableemptyfilter) {
3624
3625
  let matchMode;
3625
- const emptyFilterOptions = _.split(enableemptyfilter, ',');
3626
- if (_.intersection(emptyFilterOptions, LIVE_CONSTANTS.NULL_EMPTY).length === 2) {
3626
+ const emptyFilterOptions = split(enableemptyfilter, ',');
3627
+ if (intersection(emptyFilterOptions, LIVE_CONSTANTS.NULL_EMPTY).length === 2) {
3627
3628
  matchMode = MatchMode.NULLOREMPTY;
3628
3629
  }
3629
- else if (_.includes(emptyFilterOptions, LIVE_CONSTANTS.NULL)) {
3630
+ else if (includes(emptyFilterOptions, LIVE_CONSTANTS.NULL)) {
3630
3631
  matchMode = MatchMode.NULL;
3631
3632
  }
3632
- else if (_.includes(emptyFilterOptions, LIVE_CONSTANTS.EMPTY)) {
3633
+ else if (includes(emptyFilterOptions, LIVE_CONSTANTS.EMPTY)) {
3633
3634
  matchMode = MatchMode.EMPTY;
3634
3635
  }
3635
3636
  return matchMode;
@@ -3645,13 +3646,13 @@ function getEmptyMatchMode(enableemptyfilter) {
3645
3646
  * @returns {Array<any>}
3646
3647
  */
3647
3648
  const createArrayFrom = (data) => {
3648
- if (_.isUndefined(data) || _.isNull(data)) {
3649
+ if (isUndefined(data) || isNull(data)) {
3649
3650
  return [];
3650
3651
  }
3651
- if (_.isString(data)) {
3652
+ if (isString(data)) {
3652
3653
  data = data.split(',').map(Function.prototype.call, String.prototype.trim);
3653
3654
  }
3654
- if (!_.isArray(data)) {
3655
+ if (!isArray(data)) {
3655
3656
  data = [data];
3656
3657
  }
3657
3658
  return data;
@@ -3671,13 +3672,13 @@ const createArrayFrom = (data) => {
3671
3672
  */
3672
3673
  function applyFilterOnField(dataSource, filterDef, formFields, newVal, options = {}) {
3673
3674
  const fieldName = filterDef.field || filterDef.key;
3674
- const filterOnFields = _.filter(formFields, { 'filter-on': fieldName });
3675
+ const filterOnFields = filter$1(formFields, { 'filter-on': fieldName });
3675
3676
  newVal = filterDef['is-range'] ? getRangeFieldValue(filterDef.minValue, filterDef.maxValue) : (isDefined(newVal) ? newVal : filterDef.value);
3676
- if (!dataSource || (options.isFirst && (_.isUndefined(newVal) || newVal === ''))) {
3677
+ if (!dataSource || (options.isFirst && (isUndefined(newVal) || newVal === ''))) {
3677
3678
  return;
3678
3679
  }
3679
3680
  // Loop over the fields for which the current field is filter on field
3680
- _.forEach(filterOnFields, filterField => {
3681
+ forEach(filterOnFields, filterField => {
3681
3682
  const filterKey = filterField.field || filterField.key;
3682
3683
  const lookUpField = filterDef['lookup-field'] || filterDef._primaryKey;
3683
3684
  const filterWidget = filterField['edit-widget-type'] || filterField.widgettype;
@@ -3703,7 +3704,7 @@ function applyFilterOnField(dataSource, filterDef, formFields, newVal, options =
3703
3704
  else {
3704
3705
  matchMode = MatchMode.EQUALS;
3705
3706
  }
3706
- filterVal = (_.isObject(newVal) && !_.isArray(newVal)) ? newVal[lookUpField] : newVal;
3707
+ filterVal = (isObject(newVal) && !isArray(newVal)) ? newVal[lookUpField] : newVal;
3707
3708
  filterFields[filterOn] = {
3708
3709
  'value': filterVal,
3709
3710
  'matchMode': matchMode
@@ -3738,9 +3739,9 @@ function transformData(dataObject, variableName) {
3738
3739
  // data sanity testing
3739
3740
  dataObject = dataObject || [];
3740
3741
  // if the dataObject is not an array make it an array
3741
- if (!_.isArray(dataObject)) {
3742
+ if (!isArray(dataObject)) {
3742
3743
  // if the data returned is of type string, make it an object inside an array
3743
- if (_.isString(dataObject)) {
3744
+ if (isString(dataObject)) {
3744
3745
  keys = variableName.substring(variableName.indexOf('.') + 1, variableName.length).split('.');
3745
3746
  oldKeys = [];
3746
3747
  numKeys = keys.length;
@@ -3764,9 +3765,9 @@ function transformData(dataObject, variableName) {
3764
3765
  /*if the dataObject is an array and each value is a string, then lite-transform the string to an object
3765
3766
  * lite-transform: just checking if the first value is string and then transforming the object, instead of traversing through the whole array
3766
3767
  * */
3767
- if (_.isString(dataObject[0])) {
3768
+ if (isString(dataObject[0])) {
3768
3769
  tempArr = [];
3769
- _.forEach(dataObject, str => {
3770
+ forEach(dataObject, str => {
3770
3771
  newObj = {};
3771
3772
  newObj[variableName.split('.').join('-')] = str;
3772
3773
  tempArr.push(newObj);
@@ -3809,18 +3810,18 @@ const ROLLUP_PATTERNS = {
3809
3810
  /**
3810
3811
  * function to get the ordered dataset based on the given orderby
3811
3812
  */
3812
- const getOrderedDataset = (dataSet, orderBy, innerItem) => {
3813
- if (!orderBy) {
3814
- return _.cloneDeep(dataSet);
3813
+ const getOrderedDataset = (dataSet, orderBy$1, innerItem) => {
3814
+ if (!orderBy$1) {
3815
+ return cloneDeep(dataSet);
3815
3816
  }
3816
3817
  // The order by only works when the dataset contains list of objects.
3817
- const items = orderBy.split(','), fields = [], directions = [];
3818
+ const items = orderBy$1.split(','), fields = [], directions = [];
3818
3819
  items.forEach(obj => {
3819
3820
  const item = obj.split(':');
3820
3821
  fields.push(innerItem ? innerItem + '.' + item[0] : item[0]);
3821
3822
  directions.push(item[1]);
3822
3823
  });
3823
- return _.orderBy(dataSet, fields, directions);
3824
+ return orderBy(dataSet, fields, directions);
3824
3825
  };
3825
3826
  /**
3826
3827
  * Returns an array of object, each object contain the DataSetItem whose key, value, label are extracted from object keys.
@@ -3829,10 +3830,10 @@ const transformDataWithKeys = (dataSet) => {
3829
3830
  const data = [];
3830
3831
  // if the dataset is instance of object (not an array) or the first item in the dataset array is an object,
3831
3832
  // then we extract the keys from the object and prepare the dataset items.
3832
- if (_.isObject(dataSet[0]) || (_.isObject(dataSet) && !(dataSet instanceof Array))) {
3833
+ if (isObject(dataSet[0]) || (isObject(dataSet) && !(dataSet instanceof Array))) {
3833
3834
  // getting keys of the object
3834
3835
  const objectKeys = Object.keys(dataSet[0] || dataSet);
3835
- _.forEach(objectKeys, (objKey, index) => {
3836
+ forEach(objectKeys, (objKey, index) => {
3836
3837
  data.push({
3837
3838
  key: objKey,
3838
3839
  label: objKey,
@@ -3845,21 +3846,21 @@ const transformDataWithKeys = (dataSet) => {
3845
3846
  };
3846
3847
  // Converts any type of data to array.
3847
3848
  const extractDataAsArray = data => {
3848
- if (_.isUndefined(data) || _.isNull(data) || _.trim(data) === '') {
3849
+ if (isUndefined(data) || isNull(data) || trim(data) === '') {
3849
3850
  return [];
3850
3851
  }
3851
- if (_.isString(data)) {
3852
- data = _.split(data, ',').map(str => str.trim());
3852
+ if (isString(data)) {
3853
+ data = split(data, ',').map(str => str.trim());
3853
3854
  }
3854
- if (!_.isArray(data)) {
3855
+ if (!isArray(data)) {
3855
3856
  data = [data];
3856
3857
  }
3857
3858
  return data;
3858
3859
  };
3859
3860
  // This function return always an object containing dataset details.
3860
3861
  const convertDataToObject = dataResult => {
3861
- if (_.isString(dataResult)) {
3862
- dataResult = _.split(dataResult, ',').map(str => str.trim());
3862
+ if (isString(dataResult)) {
3863
+ dataResult = split(dataResult, ',').map(str => str.trim());
3863
3864
  }
3864
3865
  return dataResult;
3865
3866
  };
@@ -3871,7 +3872,7 @@ const isSeachWidget = (widgetType) => {
3871
3872
  const setGroupbyKey = (scope, context, dataSetItem, innerItem) => {
3872
3873
  if (scope && isSeachWidget(scope.widgetType)) {
3873
3874
  if (scope.groupby) {
3874
- if (_.includes(scope.groupby, '(')) {
3875
+ if (includes(scope.groupby, '(')) {
3875
3876
  //[Todo-CSP]: can generate expr fn in page based on groupby property on widget
3876
3877
  const groupDataByUserDefinedFn = $parseEvent(scope.groupby);
3877
3878
  dataSetItem.groupby = groupDataByUserDefinedFn(context, { 'row': dataSetItem.dataObject || dataSetItem });
@@ -3902,10 +3903,10 @@ const transformFormData = (context, dataSet, myDataField, displayOptions, startI
3902
3903
  }
3903
3904
  dataSet = convertDataToObject(dataSet);
3904
3905
  // startIndex is the index of the next new item.
3905
- if (_.isUndefined(startIndex)) {
3906
+ if (isUndefined(startIndex)) {
3906
3907
  startIndex = 1;
3907
3908
  }
3908
- if (_.isString(dataSet)) {
3909
+ if (isString(dataSet)) {
3909
3910
  dataSet = dataSet.split(',').map(str => str.trim());
3910
3911
  dataSet.forEach((option, index) => {
3911
3912
  const dataSetItem = { key: option, value: option, label: (isDefined(option) && option !== null) ? option.toString() : '', index: startIndex + index };
@@ -3913,17 +3914,21 @@ const transformFormData = (context, dataSet, myDataField, displayOptions, startI
3913
3914
  data.push(dataSetItem);
3914
3915
  });
3915
3916
  }
3916
- else if (_.isArray(dataSet) && !_.isObject(dataSet[0])) { // array of primitive values only
3917
+ else if (isArray(dataSet) && !isObject(dataSet[0])) { // array of primitive values only
3917
3918
  dataSet.forEach((option, index) => {
3918
3919
  const dataSetItem = { key: option, value: option, label: (isDefined(option) && option !== null) ? option.toString() : '', index: startIndex + index };
3919
3920
  setGroupbyKey(scope, context, dataSetItem, 'value');
3920
3921
  data.push(dataSetItem);
3921
3922
  });
3922
3923
  }
3923
- else if (!(dataSet instanceof Array) && _.isObject(dataSet)) {
3924
+ else if (!(dataSet instanceof Array) && isObject(dataSet)) {
3924
3925
  const i = 0;
3925
- _.forEach(dataSet, (value, key) => {
3926
- const dataSetItem = { key: _.trim(key), value: key, label: (isDefined(value) && value !== null) ? value.toString() : '', index: startIndex, dataObject: dataSet };
3926
+ forEach(dataSet, (value, key) => {
3927
+ // @ts-ignore
3928
+ const dataSetItem = { key: trim(key), value: key, label: (isDefined(value) && value !== null) ? value.toString() : '',
3929
+ index: startIndex,
3930
+ dataObject: dataSet
3931
+ };
3927
3932
  setGroupbyKey(scope, context, dataSetItem, 'value');
3928
3933
  data.push(dataSetItem);
3929
3934
  });
@@ -3935,7 +3940,7 @@ const transformFormData = (context, dataSet, myDataField, displayOptions, startI
3935
3940
  dataSet.forEach((option, index) => {
3936
3941
  const key = myDataField === ALLFIELDS ? startIndex + index : getObjValueByKey(option, myDataField);
3937
3942
  // Omit all the items whose datafield (key) is null or undefined.
3938
- if (!_.isUndefined(key) && !_.isNull(key)) {
3943
+ if (!isUndefined(key) && !isNull(key)) {
3939
3944
  const label = getEvaluatedData(option, {
3940
3945
  field: displayOptions.displayField,
3941
3946
  expression: displayOptions.displayExpr,
@@ -3967,16 +3972,16 @@ const transformFormData = (context, dataSet, myDataField, displayOptions, startI
3967
3972
  const getUniqObjsByDataField = (data, dataField, displayField, allowEmptyFields) => {
3968
3973
  let uniqData;
3969
3974
  const isAllFields = dataField === ALLFIELDS;
3970
- uniqData = isAllFields ? _.uniqWith(data, _.isEqual) : _.uniqBy(data, 'key');
3975
+ uniqData = isAllFields ? uniqWith(data, isEqual) : uniqBy(data, 'key');
3971
3976
  if (!displayField || allowEmptyFields) {
3972
3977
  return uniqData;
3973
3978
  }
3974
3979
  // return objects having non empty datafield and display field values.
3975
- return _.filter(uniqData, (obj) => {
3980
+ return filter$1(uniqData, (obj) => {
3976
3981
  if (isAllFields) {
3977
- return _.trim(obj.label);
3982
+ return trim(obj.label);
3978
3983
  }
3979
- return _.trim(obj.key) && _.trim(obj.label);
3984
+ return trim(obj.key) && trim(obj.label);
3980
3985
  });
3981
3986
  };
3982
3987
  /**
@@ -3988,7 +3993,7 @@ const getUniqObjsByDataField = (data, dataField, displayField, allowEmptyFields)
3988
3993
  */
3989
3994
  const setItemByCompare = (datasetItems, compareWithDataObj, compareByField) => {
3990
3995
  // compare the fields based on fields given to compareby property.
3991
- _.forEach(datasetItems, opt => {
3996
+ forEach(datasetItems, opt => {
3992
3997
  if (isEqualWithFields(opt.value, compareWithDataObj, compareByField)) {
3993
3998
  opt.selected = true;
3994
3999
  return false;
@@ -4005,13 +4010,13 @@ const setItemByCompare = (datasetItems, compareWithDataObj, compareByField) => {
4005
4010
  */
4006
4011
  const getSortedGroupedData = (groupedLiData, groupBy, orderby) => {
4007
4012
  const _groupedData = [];
4008
- _.forEach(_.keys(groupedLiData), (groupkey, index) => {
4013
+ forEach(keys(groupedLiData), (groupkey, index) => {
4009
4014
  const liData = getOrderedDataset(groupedLiData[groupkey], orderby, 'dataObject');
4010
4015
  _groupedData.push({
4011
4016
  key: groupkey,
4012
- data: _.sortBy(liData, data => {
4017
+ data: sortBy(liData, data => {
4013
4018
  data._groupIndex = index + 1;
4014
- return _.get(data, groupBy) || _.get(data.dataObject, groupBy);
4019
+ return get(data, groupBy) || get(data.dataObject, groupBy);
4015
4020
  })
4016
4021
  });
4017
4022
  });
@@ -4031,10 +4036,11 @@ const getSortedGroupedData = (groupedLiData, groupBy, orderby) => {
4031
4036
  */
4032
4037
  const groupData = (compRef, data, groupby, match, orderby, dateformat, datePipe, innerItem, AppDefaults) => {
4033
4038
  let groupedLiData = {};
4034
- if (_.includes(groupby, '(')) {
4039
+ if (includes(groupby, '(')) {
4035
4040
  //[Todo-CSP]: can generate expr fn in page based on groupby property on widget
4036
4041
  const groupDataByUserDefinedFn = $parseEvent(groupby);
4037
- groupedLiData = _.groupBy(data, val => {
4042
+ groupedLiData = groupBy(data, val => {
4043
+ // @ts-ignore
4038
4044
  return groupDataByUserDefinedFn(compRef.viewParent, { 'row': val.dataObject || val });
4039
4045
  });
4040
4046
  }
@@ -4060,14 +4066,14 @@ const getGroupedData = (fieldDefs, groupby, match, orderby, dateFormat, datePipe
4060
4066
  }
4061
4067
  // handling case-in-sensitive scenario
4062
4068
  // ordering the data based on groupby field. If there is innerItem then apply orderby using the innerItem's containing the groupby field.
4063
- fieldDefs = _.orderBy(fieldDefs, fieldDef => {
4064
- const groupKey = _.get(innerItem ? fieldDef[innerItem] : fieldDef, groupby);
4069
+ fieldDefs = orderBy(fieldDefs, fieldDef => {
4070
+ const groupKey = get(innerItem ? fieldDef[innerItem] : fieldDef, groupby);
4065
4071
  if (groupKey) {
4066
- return _.toLower(groupKey);
4072
+ return toLower(groupKey);
4067
4073
  }
4068
4074
  });
4069
4075
  // extract the grouped data based on the field obtained from 'groupDataByField'.
4070
- const groupedLiData = _.groupBy(fieldDefs, groupDataByField.bind(undefined, groupby, match, innerItem, dateFormat, datePipe, AppDefaults));
4076
+ const groupedLiData = groupBy(fieldDefs, groupDataByField.bind(undefined, groupby, match, innerItem, dateFormat, datePipe, AppDefaults));
4071
4077
  momentLocale._calendar = momentCalendarOptions; // Reset to default moment calendar options
4072
4078
  return groupedLiData;
4073
4079
  };
@@ -4133,9 +4139,9 @@ const getTimeRolledUpString = (concatStr, rollUp, dateformat, datePipe, AppDefau
4133
4139
  // groups the fields based on the groupby value.
4134
4140
  const groupDataByField = (groupby, match, innerItem, dateFormat, datePipe, AppDefaults, liData) => {
4135
4141
  // get the groupby field value from the liData or innerItem in the liData.
4136
- let concatStr = _.get(innerItem ? liData[innerItem] : liData, groupby);
4142
+ let concatStr = get(innerItem ? liData[innerItem] : liData, groupby);
4137
4143
  // by default set the undefined groupKey as 'others'
4138
- if (_.isUndefined(concatStr) || _.isNull(concatStr) || concatStr.toString().trim() === '') {
4144
+ if (isUndefined(concatStr) || isNull(concatStr) || concatStr.toString().trim() === '') {
4139
4145
  return GROUP_BY_OPTIONS.OTHERS;
4140
4146
  }
4141
4147
  // if match prop is alphabetic ,get the starting alphabet of the word as key.
@@ -4143,7 +4149,7 @@ const groupDataByField = (groupby, match, innerItem, dateFormat, datePipe, AppDe
4143
4149
  concatStr = concatStr.substr(0, 1);
4144
4150
  }
4145
4151
  // if match contains the time options then get the concatStr using 'getTimeRolledUpString'
4146
- if (_.includes(_.values(TIME_ROLLUP_OPTIONS), match)) {
4152
+ if (includes(values(TIME_ROLLUP_OPTIONS), match)) {
4147
4153
  concatStr = getTimeRolledUpString(concatStr, match, dateFormat, datePipe, AppDefaults);
4148
4154
  }
4149
4155
  return concatStr;
@@ -4158,13 +4164,13 @@ const toggleAllHeaders = (el) => {
4158
4164
  // toggle the collapse icon on list header.
4159
4165
  const groupIcons = groups.find('li.list-group-header .app-icon');
4160
4166
  if (groupIcons) {
4161
- _.forEach(groupIcons, (icon) => {
4162
- icon = $(icon);
4163
- if (icon.hasClass('wi-chevron-down')) {
4164
- icon.removeClass('wi-chevron-down').addClass('wi-chevron-up');
4167
+ forEach(groupIcons, (icon) => {
4168
+ const $icon = $(icon);
4169
+ if ($icon.hasClass('wi-chevron-down')) {
4170
+ $icon.removeClass('wi-chevron-down').addClass('wi-chevron-up');
4165
4171
  }
4166
4172
  else {
4167
- icon.removeClass('wi-chevron-up').addClass('wi-chevron-down');
4173
+ $icon.removeClass('wi-chevron-up').addClass('wi-chevron-down');
4168
4174
  }
4169
4175
  });
4170
4176
  }
@@ -4229,8 +4235,8 @@ const EDIT_MODE = {
4229
4235
  };
4230
4236
  // Method to set the header config of the data table
4231
4237
  const setHeaderConfig = (headerConfig, config, field, index) => {
4232
- _.forEach(headerConfig, cols => {
4233
- if (_.get(cols, 'isGroup')) {
4238
+ forEach(headerConfig, cols => {
4239
+ if (get(cols, 'isGroup')) {
4234
4240
  if (cols.field === field) {
4235
4241
  cols.columns[index] = config;
4236
4242
  }
@@ -4286,8 +4292,8 @@ const getFieldLayoutConfig = (captionWidth, captionPosition, os) => {
4286
4292
  }
4287
4293
  else if (captionWidth) {
4288
4294
  // handling itemsperrow containing string of classes
4289
- _.forEach(_.split(captionWidth, ' '), function (cls) {
4290
- const keys = _.split(cls, '-'), tier = keys[0];
4295
+ forEach(split(captionWidth, ' '), function (cls) {
4296
+ const keys = split(cls, '-'), tier = keys[0];
4291
4297
  let _captionWidth, widgetWidth;
4292
4298
  _captionWidth = parseInt(keys[1], 10);
4293
4299
  widgetWidth = 12 - _captionWidth;
@@ -4302,7 +4308,7 @@ const getFieldLayoutConfig = (captionWidth, captionPosition, os) => {
4302
4308
  };
4303
4309
  };
4304
4310
  const getDefaultViewModeWidget = widget => {
4305
- if (_.includes(['checkbox', 'toggle', 'rating'], widget)) {
4311
+ if (includes(['checkbox', 'toggle', 'rating'], widget)) {
4306
4312
  return VIEW_MODE_OPTIONS.DEFAULT;
4307
4313
  }
4308
4314
  return VIEW_MODE_OPTIONS.LABEL;
@@ -4372,7 +4378,7 @@ const getDataTableFilterWidget = type => {
4372
4378
  if (type === DataType.BOOLEAN) {
4373
4379
  widget = FormWidgetType.SELECT;
4374
4380
  }
4375
- if (_.includes([FormWidgetType.TEXT, FormWidgetType.NUMBER, FormWidgetType.SELECT, FormWidgetType.AUTOCOMPLETE,
4381
+ if (includes([FormWidgetType.TEXT, FormWidgetType.NUMBER, FormWidgetType.SELECT, FormWidgetType.AUTOCOMPLETE,
4376
4382
  FormWidgetType.DATE, FormWidgetType.TIME, FormWidgetType.DATETIME], widget)) {
4377
4383
  return widget;
4378
4384
  }
@@ -4430,10 +4436,10 @@ const getValidLink = (link) => {
4430
4436
  const routRegex = /^(\/|#\/|#)(?!\W).*/;
4431
4437
  if (link) {
4432
4438
  if (routRegex.test(link)) {
4433
- link = _.first(link.match(/[\w]+.*/g)) || '';
4439
+ link = first(link.match(/[\w]+.*/g)) || '';
4434
4440
  return `#/${link}`;
4435
4441
  }
4436
- if (_.startsWith(link, 'www.')) {
4442
+ if (startsWith(link, 'www.')) {
4437
4443
  return `//${link}`;
4438
4444
  }
4439
4445
  return link;
@@ -4445,7 +4451,7 @@ let DatasetAwareNavComponent = class DatasetAwareNavComponent extends StylableCo
4445
4451
  this.nodes = [];
4446
4452
  this.nodes$ = new Subject();
4447
4453
  // debounce function for reset nodes functions.
4448
- this._resetNodes = _.debounce(this.resetNodes, 50);
4454
+ this._resetNodes = debounce(this.resetNodes, 50);
4449
4455
  this.securityService = this.inj.get(SecurityService);
4450
4456
  this.binditemlabel = this.nativeElement.getAttribute('itemlabel.bind');
4451
4457
  this.binditemicon = this.nativeElement.getAttribute('itemicon.bind');
@@ -4465,24 +4471,49 @@ let DatasetAwareNavComponent = class DatasetAwareNavComponent extends StylableCo
4465
4471
  */
4466
4472
  getNode(fields, node) {
4467
4473
  const context = this.viewParent.pageScope || this.viewParent;
4468
- const children = getEvaluatedData(node, { field: this.itemchildren, bindExpression: this.binditemchildren }, context) || _.get(node, fields.childrenField);
4474
+ const children = getEvaluatedData(node, {
4475
+ field: this.itemchildren,
4476
+ bindExpression: this.binditemchildren
4477
+ }, context) || get(node, fields.childrenField);
4469
4478
  const navNode = {
4470
- action: getEvaluatedData(node, { field: this.itemaction, bindExpression: this.binditemaction }, context) || _.get(node, fields.actionField),
4471
- badge: getEvaluatedData(node, { field: this.itembadge, bindExpression: this.binditembadge }, context) || _.get(node, fields.badgeField),
4479
+ action: getEvaluatedData(node, {
4480
+ field: this.itemaction,
4481
+ bindExpression: this.binditemaction
4482
+ }, context) || get(node, fields.actionField),
4483
+ badge: getEvaluatedData(node, {
4484
+ field: this.itembadge,
4485
+ bindExpression: this.binditembadge
4486
+ }, context) || get(node, fields.badgeField),
4472
4487
  children: Array.isArray(children) ? this.getNodes(children) : [],
4473
- class: _.get(node, fields.classField),
4488
+ class: get(node, fields.classField),
4474
4489
  disabled: node.disabled,
4475
- icon: getEvaluatedData(node, { field: this.itemicon, bindExpression: this.binditemicon }, context) || _.get(node, fields.iconField),
4476
- id: getEvaluatedData(node, { field: this.itemid, bindExpression: this.binditemid }, context) || _.get(node, fields.idField),
4477
- label: getEvaluatedData(node, { field: this.itemlabel, bindExpression: this.binditemlabel }, context) || _.get(node, fields.labelField),
4478
- link: getValidLink(getEvaluatedData(node, { field: this.itemlink, bindExpression: this.binditemlink }, context) || _.get(node, fields.linkField)),
4479
- target: getValidLink(getEvaluatedData(node, { field: this.itemtarget, bindExpression: this.binditemtarget }, context) || _.get(node, fields.targetField)),
4490
+ icon: getEvaluatedData(node, {
4491
+ field: this.itemicon,
4492
+ bindExpression: this.binditemicon
4493
+ }, context) || get(node, fields.iconField),
4494
+ id: getEvaluatedData(node, {
4495
+ field: this.itemid,
4496
+ bindExpression: this.binditemid
4497
+ }, context) || get(node, fields.idField),
4498
+ label: getEvaluatedData(node, {
4499
+ field: this.itemlabel,
4500
+ bindExpression: this.binditemlabel
4501
+ }, context) || get(node, fields.labelField),
4502
+ link: getValidLink(getEvaluatedData(node, {
4503
+ field: this.itemlink,
4504
+ bindExpression: this.binditemlink
4505
+ }, context) || get(node, fields.linkField)),
4506
+ target: getValidLink(getEvaluatedData(node, {
4507
+ field: this.itemtarget,
4508
+ bindExpression: this.binditemtarget
4509
+ }, context) || get(node, fields.targetField)),
4480
4510
  role: getEvaluatedData(node, { field: this.userrole, bindExpression: this.binduserrole }, context),
4481
4511
  isactive: getEvaluatedData(node, { field: this.isactive, bindExpression: this.bindisactive }, context),
4482
4512
  // older projects have display field & data field property for menu.
4483
4513
  value: this.datafield ? (this.datafield === 'All Fields' ? node : findValueOf(node, this.datafield)) : node
4484
4514
  };
4485
- return _.omitBy(navNode, _.isUndefined);
4515
+ // @ts-ignore
4516
+ return omitBy(navNode, isUndefined);
4486
4517
  }
4487
4518
  resetItemFieldMap() {
4488
4519
  this._itemFieldMap = null;
@@ -4514,7 +4545,7 @@ let DatasetAwareNavComponent = class DatasetAwareNavComponent extends StylableCo
4514
4545
  prepareNodeDataSet(nv) {
4515
4546
  nv = createArrayFrom(nv);
4516
4547
  return nv.map((val) => {
4517
- if (!isObject(val)) {
4548
+ if (!isObject$1(val)) {
4518
4549
  return {
4519
4550
  label: val,
4520
4551
  value: val
@@ -4620,7 +4651,7 @@ class BaseFieldValidations {
4620
4651
  if (this.instance.regexp) {
4621
4652
  _validator.push(Validators.pattern(this.instance.regexp));
4622
4653
  }
4623
- if (this.formwidget && _.isFunction(this.formwidget.validate)) {
4654
+ if (this.formwidget && isFunction(this.formwidget.validate)) {
4624
4655
  _validator.push(this.formwidget.validate.bind(this.formwidget));
4625
4656
  }
4626
4657
  return _validator;
@@ -4647,7 +4678,7 @@ class BaseFieldValidations {
4647
4678
  }
4648
4679
  getPromiseList(validators) {
4649
4680
  const arr = [];
4650
- _.forEach(validators, (fn, index) => {
4681
+ forEach(validators, (fn, index) => {
4651
4682
  let promise = fn;
4652
4683
  if (fn instanceof Function && fn.bind) {
4653
4684
  promise = fn(this.widgetControl, this.widgetContext);
@@ -4669,10 +4700,11 @@ class BaseFieldValidations {
4669
4700
  // if err obj has validationMessage key, then set validationMessage using this value
4670
4701
  // else return the value of the first key in the err object as validation message.
4671
4702
  if (err.hasOwnProperty('errorMessage')) {
4672
- this.instance.validationmessage = _.get(err, 'errorMessage');
4703
+ this.instance.validationmessage = get(err, 'errorMessage');
4673
4704
  }
4674
4705
  else {
4675
- const keys = _.keys(err);
4706
+ // @ts-ignore
4707
+ const keys = keys(err);
4676
4708
  this.instance.validationmessage = (err[keys[0]]).toString();
4677
4709
  }
4678
4710
  return err;
@@ -4705,7 +4737,7 @@ class BaseFieldValidations {
4705
4737
  }
4706
4738
  }
4707
4739
  isDefaultValidator(type) {
4708
- return _.get(VALIDATOR, _.toUpper(type));
4740
+ return get(VALIDATOR, toUpper(type));
4709
4741
  }
4710
4742
  // default validator is bound to a function then watch for value changes
4711
4743
  // otherwise set the value of default validator directly
@@ -4721,10 +4753,10 @@ class BaseFieldValidations {
4721
4753
  }
4722
4754
  // sets the default validation on the form field
4723
4755
  setValidators(validators) {
4724
- let _cloneValidators = _.cloneDeep(validators);
4756
+ let _cloneValidators = cloneDeep(validators);
4725
4757
  this.hasValidators = true;
4726
4758
  this._syncValidators = [];
4727
- _.forEach(_cloneValidators, (obj, index) => {
4759
+ forEach(_cloneValidators, (obj, index) => {
4728
4760
  // custom validation is bound to function.
4729
4761
  if (obj && obj instanceof Function) {
4730
4762
  // passing formfield and form as arguments to the obj (i.e. validator function)
@@ -4733,17 +4765,17 @@ class BaseFieldValidations {
4733
4765
  }
4734
4766
  else {
4735
4767
  // checks for default validator like required, maxchars etc.
4736
- const key = _.get(obj, 'type');
4737
- this.defaultValidatorMessages[key] = _.get(obj, 'errorMessage');
4768
+ const key = get(obj, 'type');
4769
+ this.defaultValidatorMessages[key] = get(obj, 'errorMessage');
4738
4770
  if (this.isDefaultValidator(key)) {
4739
- const value = _.get(obj, 'validator');
4771
+ const value = get(obj, 'validator');
4740
4772
  this.setDefaultValidator(key, value);
4741
4773
  _cloneValidators[index] = '';
4742
4774
  }
4743
4775
  }
4744
4776
  });
4745
4777
  // _syncValidators contains all the custom validations on the form field. will not include default validators.
4746
- this._syncValidators = _.filter(_cloneValidators, val => {
4778
+ this._syncValidators = filter$1(_cloneValidators, val => {
4747
4779
  if (val) {
4748
4780
  return val;
4749
4781
  }
@@ -4751,8 +4783,8 @@ class BaseFieldValidations {
4751
4783
  this.applyDefaultValidators();
4752
4784
  }
4753
4785
  observeOn(fields, context) {
4754
- _.forEach(fields, field => {
4755
- const formfield = _.find(this.widgetContext[context], { 'key': field });
4786
+ forEach(fields, field => {
4787
+ const formfield = find(this.widgetContext[context], { 'key': field });
4756
4788
  if (formfield) {
4757
4789
  if (!formfield.notifyForFields) {
4758
4790
  formfield.notifyForFields = [];
@@ -4783,13 +4815,13 @@ class BaseFieldValidations {
4783
4815
  const watchName = `${this.instance.widgetId}_` + key + '_formField';
4784
4816
  $unwatch(watchName);
4785
4817
  //[Todo-CSP]: Need clarity generate this expr fn if form is present in the page
4786
- this.instance.registerDestroyListener($watch('boundFn(fn)', _.extend(this.instance, this.instance.viewParent), { fn }, (nv, ov) => {
4818
+ this.instance.registerDestroyListener($watch('boundFn(fn)', extend(this.instance, this.instance.viewParent), { fn }, (nv, ov) => {
4787
4819
  this.instance.widget[key] = nv;
4788
4820
  this.applyDefaultValidators();
4789
4821
  }, watchName));
4790
4822
  }
4791
4823
  isNullOrEmptyOrFalsy(value) {
4792
- return _.isEmpty(value);
4824
+ return isEmpty(value);
4793
4825
  }
4794
4826
  // invokes both custom sync validations and default validations.
4795
4827
  applyDefaultValidators() {
@@ -4800,7 +4832,7 @@ class BaseFieldValidations {
4800
4832
  if (this.formwidget && (this.instance.value === this.formwidget.prevDatavalue || this.isNullOrEmptyOrFalsy(this.instance.value))) {
4801
4833
  opt['emitEvent'] = false;
4802
4834
  }
4803
- this.widgetControl.setValidators(_.concat(this._syncValidators || [], validators));
4835
+ this.widgetControl.setValidators(concat(this._syncValidators || [], validators));
4804
4836
  this.widgetControl.updateValueAndValidity(opt);
4805
4837
  this.setCustomValidationMessage();
4806
4838
  }
@@ -4810,14 +4842,15 @@ class BaseFieldValidations {
4810
4842
  return;
4811
4843
  }
4812
4844
  if (fieldErrors.hasOwnProperty('errorMessage')) {
4813
- this.instance.validationmessage = _.get(fieldErrors, 'errorMessage');
4845
+ this.instance.validationmessage = get(fieldErrors, 'errorMessage');
4814
4846
  }
4815
4847
  else {
4816
- const keys = _.keys(fieldErrors);
4848
+ // @ts-ignore
4849
+ const keys = keys(fieldErrors);
4817
4850
  const key = keys[0];
4818
- const validationMsgKey = _.get(DEFAULT_VALIDATOR, key) || this.formwidget.validateType;
4851
+ const validationMsgKey = get(DEFAULT_VALIDATOR, key) || this.formwidget.validateType;
4819
4852
  if (validationMsgKey) {
4820
- const msg = _.get(this.defaultValidatorMessages, validationMsgKey) || this.instance.validationmessage;
4853
+ const msg = get(this.defaultValidatorMessages, validationMsgKey) || this.instance.validationmessage;
4821
4854
  if (msg && msg instanceof Function) {
4822
4855
  // passing formfield and form as arguments to the errorMessage function.
4823
4856
  this.instance.validationmessage = msg(this.widgetControl, this.widgetContext);