@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
@@ -1,16 +1,17 @@
1
+ import { endsWith, filter, get, includes, isArray, isEqual, isNumber, isObject, split, startsWith, toLower, toString, values } from "lodash-es";
1
2
  export class LocalDataProvider {
2
3
  applyFilter(entry, queryText, filtername) {
3
- entry = _.isNumber(entry) ? entry.toString() : entry;
4
- if (_.includes(filtername, 'start')) {
5
- return _.startsWith(entry, queryText);
4
+ entry = isNumber(entry) ? entry.toString() : entry;
5
+ if (includes(filtername, 'start')) {
6
+ return startsWith(entry, queryText);
6
7
  }
7
- else if (_.includes(filtername, 'end')) {
8
- return _.endsWith(entry, queryText);
8
+ else if (includes(filtername, 'end')) {
9
+ return endsWith(entry, queryText);
9
10
  }
10
- else if (_.includes(filtername, 'exact')) {
11
- return _.isEqual(entry, queryText);
11
+ else if (includes(filtername, 'exact')) {
12
+ return isEqual(entry, queryText);
12
13
  }
13
- return _.includes(entry, queryText);
14
+ return includes(entry, queryText);
14
15
  }
15
16
  // LocalData filtering is done based on the searchkey.
16
17
  filter(config) {
@@ -18,7 +19,7 @@ export class LocalDataProvider {
18
19
  let casesensitive = config.casesensitive;
19
20
  const matchMode = config.matchMode;
20
21
  // for supporting existing projects
21
- if (matchMode && !_.includes(matchMode, 'ignorecase')) {
22
+ if (matchMode && !includes(matchMode, 'ignorecase')) {
22
23
  casesensitive = true;
23
24
  }
24
25
  let queryText = config.query, filteredData;
@@ -28,13 +29,13 @@ export class LocalDataProvider {
28
29
  * return the filtered data containing the matching string.
29
30
  */
30
31
  if (config.searchKey) {
31
- const keys = _.split(config.searchKey, ',');
32
- filteredData = _.filter(config.dataset, (item) => {
32
+ const keys = split(config.searchKey, ',');
33
+ filteredData = filter(config.dataset, (item) => {
33
34
  return keys.some(key => {
34
- let a = _.get(item, key), b = queryText;
35
+ let a = get(item, key), b = queryText;
35
36
  if (!casesensitive) {
36
- a = _.toLower(_.toString(a));
37
- b = _.toLower(_.toString(b));
37
+ a = toLower(toString(a));
38
+ b = toLower(toString(b));
38
39
  }
39
40
  return this.applyFilter(a, b, matchMode);
40
41
  });
@@ -43,21 +44,23 @@ export class LocalDataProvider {
43
44
  else {
44
45
  // local search on data with array of objects.
45
46
  // Iterate over each item and return the filtered data containing the matching string.
46
- if (_.isArray(entries) && _.isObject(entries[0])) {
47
- filteredData = _.filter(entries, entry => {
48
- let a = _.values(entry).join(' ');
47
+ if (isArray(entries) && isObject(entries[0])) {
48
+ filteredData = filter(entries, entry => {
49
+ let a = values(entry).join(' ');
49
50
  if (!casesensitive) {
50
- a = _.toLower(a);
51
- queryText = _.toLower(queryText);
51
+ a = toLower(a);
52
+ // @ts-ignore
53
+ queryText = toLower(queryText);
52
54
  }
53
55
  return this.applyFilter(a, queryText);
54
56
  });
55
57
  }
56
58
  else {
57
- filteredData = _.filter(entries, entry => {
59
+ filteredData = filter(entries, entry => {
58
60
  if (!casesensitive) {
59
- entry = _.toLower(entry);
60
- queryText = _.toLower(queryText);
61
+ entry = toLower(entry);
62
+ // @ts-ignore
63
+ queryText = toLower(queryText);
61
64
  }
62
65
  return this.applyFilter(entry, queryText, matchMode);
63
66
  });
@@ -71,4 +74,4 @@ export class LocalDataProvider {
71
74
  });
72
75
  }
73
76
  }
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtZGF0YS1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9iYXNpYy9zZWFyY2gvc3JjL2RhdGEtcHJvdmlkZXIvbG9jYWwtZGF0YS1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLE9BQU8saUJBQWlCO0lBQ2xCLFdBQVcsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLFVBQVc7UUFDN0MsS0FBSyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3JELElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLEVBQUcsQ0FBQztZQUNuQyxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzFDLENBQUM7YUFBTSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdkMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN4QyxDQUFDO2FBQU0sSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ3pDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELHNEQUFzRDtJQUMvQyxNQUFNLENBQUMsTUFBMkI7UUFDckMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUMvQixJQUFJ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Q0wsQ0FBQztZQUNELE9BQU8sQ0FBQztnQkFDSixJQUFJLEVBQUUsWUFBWTtnQkFDbEIsV0FBVyxFQUFFLEtBQUs7Z0JBQ2xCLFVBQVUsRUFBRSxJQUFJO2FBQ25CLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSURhdGFQcm92aWRlciwgSURhdGFQcm92aWRlckNvbmZpZyB9IGZyb20gJy4vZGF0YS1wcm92aWRlcic7XG5cbmRlY2xhcmUgY29uc3QgXztcblxuZXhwb3J0IGNsYXNzIExvY2FsRGF0YVByb3ZpZGVyIGltcGxlbWVudHMgSURhdGFQcm92aWRlciB7XG4gICAgcHJpdmF0ZSBhcHBseUZpbHRlcihlbnRyeSwgcXVlcnlUZXh0LCBmaWx0ZXJuYW1lPykge1xuICAgICAgICBlbnRyeSA9IF8uaXNOdW1iZXIoZW50cnkpID8gZW50cnkudG9TdHJpbmcoKSA6IGVudHJ5O1xuICAgICAgICBpZiAoXy5pbmNsdWRlcyhmaWx0ZXJuYW1lLCAnc3RhcnQnKSApIHtcbiAgICAgICAgICAgIHJldHVybiBfLnN0YXJ0c1dpdGgoZW50cnksIHF1ZXJ5VGV4dCk7XG4gICAgICAgIH0gZWxzZSBpZiAoXy5pbmNsdWRlcyhmaWx0ZXJuYW1lLCAnZW5kJykpIHtcbiAgICAgICAgICAgIHJldHVybiBfLmVuZHNXaXRoKGVudHJ5LCBxdWVyeVRleHQpO1xuICAgICAgICB9IGVsc2UgaWYgKF8uaW5jbHVkZXMoZmlsdGVybmFtZSwgJ2V4YWN0JykpIHtcbiAgICAgICAgICAgIHJldHVybiBfLmlzRXF1YWwoZW50cnksIHF1ZXJ5VGV4dCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIF8uaW5jbHVkZXMoZW50cnksIHF1ZXJ5VGV4dCk7XG4gICAgfVxuXG4gICAgLy8gTG9jYWxEYXRhIGZpbHRlcmluZyBpcyBkb25lIGJhc2VkIG9uIHRoZSBzZWFyY2hrZXkuXG4gICAgcHVibGljIGZpbHRlcihjb25maWc6IElEYXRhUHJvdmlkZXJDb25maWcpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICBjb25zdCBlbnRyaWVzID0gY29uZmlnLmRhdGFzZXQ7XG4gICAgICAgIGxldCBjYXNlc2Vuc2l0aXZlID0gY29uZmlnLmNhc2VzZW5zaXRpdmU7XG4gICAgICAgIGNvbnN0IG1hdGNoTW9kZSA9IGNvbmZpZy5tYXRjaE1vZGU7XG4gICAgICAgIC8vIGZvciBzdXBwb3J0aW5nIGV4aXN0aW5nIHByb2plY3RzXG4gICAgICAgIGlmIChtYXRjaE1vZGUgJiYgIV8uaW5jbHVkZXMobWF0Y2hNb2RlLCAnaWdub3JlY2FzZScpKSB7XG4gICAgICAgICAgICBjYXNlc2Vuc2l0aXZlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcXVlcnlUZXh0ID0gY29uZmlnLnF1ZXJ5LFxuICAgICAgICBmaWx0ZXJlZERhdGE7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgc2VhcmNoS2V5IGlzIGRlZmluZWQsIHRoZW4gY2hlY2sgZm9yIG1hdGNoIHN0cmluZyBhZ2FpbnN0IGVhY2ggaXRlbSBpbiB0aGUgZGF0YXNldCB3aXRoIGl0ZW0ncyBmaWVsZCBuYW1lIGFzIHRoZSBzZWFyY2hLZXlcbiAgICAgICAgICAgICAqIHJldHVybiB0aGUgZmlsdGVyZWQgZGF0YSBjb250YWluaW5nIHRoZSBtYXRjaGluZyBzdHJpbmcuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmIChjb25maWcuc2VhcmNoS2V5KSB7XG4gICAgICAgICAgICAgICAgY29uc3Qga2V5cyA9IF8uc3BsaXQoY29uZmlnLnNlYXJjaEtleSwgJywnKTtcblxuICAgICAgICAgICAgICAgIGZpbHRlcmVkRGF0YSA9IF8uZmlsdGVyKGNvbmZpZy5kYXRhc2V0LCAoaXRlbTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBrZXlzLnNvbWUoa2V5ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhID0gXy5nZXQoaXRlbSwga2V5KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiID0gcXVlcnlUZXh0O1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjYXNlc2Vuc2l0aXZlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYSA9IF8udG9Mb3dlcihfLnRvU3RyaW5nKGEpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiID0gXy50b0xvd2VyKF8udG9TdHJpbmcoYikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXBwbHlGaWx0ZXIoYSwgYiwgbWF0Y2hNb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIGxvY2FsIHNlYXJjaCBvbiBkYXRhIHdpdGggYXJyYXkgb2Ygb2JqZWN0cy5cbiAgICAgICAgICAgICAgICAvLyBJdGVyYXRlIG92ZXIgZWFjaCBpdGVtIGFuZCByZXR1cm4gdGhlIGZpbHRlcmVkIGRhdGEgY29udGFpbmluZyB0aGUgbWF0Y2hpbmcgc3RyaW5nLlxuICAgICAgICAgICAgICAgIGlmIChfLmlzQXJyYXkoZW50cmllcykgJiYgXy5pc09iamVjdChlbnRyaWVzWzBdKSkge1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJlZERhdGEgPSBfLmZpbHRlcihlbnRyaWVzLCBlbnRyeSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9IF8udmFsdWVzKGVudHJ5KS5qb2luKCcgJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNhc2VzZW5zaXRpdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhID0gXy50b0xvd2VyKGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5VGV4dCA9IF8udG9Mb3dlcihxdWVyeVRleHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXBwbHlGaWx0ZXIoYSwgcXVlcnlUZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyZWREYXRhID0gXy5maWx0ZXIoZW50cmllcywgZW50cnkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjYXNlc2Vuc2l0aXZlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50cnkgPSBfLnRvTG93ZXIoZW50cnkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5VGV4dCA9IF8udG9Mb3dlcihxdWVyeVRleHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXBwbHlGaWx0ZXIoZW50cnksIHF1ZXJ5VGV4dCwgbWF0Y2hNb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgICAgICAgZGF0YTogZmlsdGVyZWREYXRhLFxuICAgICAgICAgICAgICAgIGhhc01vcmVEYXRhOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBpc0xhc3RQYWdlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtZGF0YS1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9iYXNpYy9zZWFyY2gvc3JjL2RhdGEtcHJvdmlkZXIvbG9jYWwtZGF0YS1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0gsUUFBUSxFQUNSLE1BQU0sRUFDTixHQUFHLEVBQ0gsUUFBUSxFQUNSLE9BQU8sRUFDUCxPQUFPLEVBQ1AsUUFBUSxFQUNSLFFBQVEsRUFDUixLQUFLLEVBQ0wsVUFBVSxFQUNWLE9BQU8sRUFDUCxRQUFRLEVBQ1IsTUFBTSxFQUNULE1BQU0sV0FBVyxDQUFDO0FBRW5CLE1BQU0sT0FBTyxpQkFBaUI7SUFDbEIsV0FBVyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsVUFBVztRQUM3QyxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNuRCxJQUFJLFFBQVEsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNoQyxPQUFPLFVBQVUsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDeEMsQ0FBQzthQUFNLElBQUksUUFBUSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3JDLE9BQU8sUUFBUSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN0QyxDQUFDO2FBQU0sSUFBSSxRQUFRLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDdkMsT0FBTyxPQUFPLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFDRCxPQUFPLFFBQVEsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVE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QUNsQixVQUFVLEVBQUUsSUFBSTthQUNuQixDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElEYXRhUHJvdmlkZXIsIElEYXRhUHJvdmlkZXJDb25maWcgfSBmcm9tICcuL2RhdGEtcHJvdmlkZXInO1xuaW1wb3J0IHtcbiAgICBlbmRzV2l0aCxcbiAgICBmaWx0ZXIsXG4gICAgZ2V0LFxuICAgIGluY2x1ZGVzLFxuICAgIGlzQXJyYXksXG4gICAgaXNFcXVhbCxcbiAgICBpc051bWJlcixcbiAgICBpc09iamVjdCxcbiAgICBzcGxpdCxcbiAgICBzdGFydHNXaXRoLFxuICAgIHRvTG93ZXIsXG4gICAgdG9TdHJpbmcsXG4gICAgdmFsdWVzXG59IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuZXhwb3J0IGNsYXNzIExvY2FsRGF0YVByb3ZpZGVyIGltcGxlbWVudHMgSURhdGFQcm92aWRlciB7XG4gICAgcHJpdmF0ZSBhcHBseUZpbHRlcihlbnRyeSwgcXVlcnlUZXh0LCBmaWx0ZXJuYW1lPykge1xuICAgICAgICBlbnRyeSA9IGlzTnVtYmVyKGVudHJ5KSA/IGVudHJ5LnRvU3RyaW5nKCkgOiBlbnRyeTtcbiAgICAgICAgaWYgKGluY2x1ZGVzKGZpbHRlcm5hbWUsICdzdGFydCcpKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RhcnRzV2l0aChlbnRyeSwgcXVlcnlUZXh0KTtcbiAgICAgICAgfSBlbHNlIGlmIChpbmNsdWRlcyhmaWx0ZXJuYW1lLCAnZW5kJykpIHtcbiAgICAgICAgICAgIHJldHVybiBlbmRzV2l0aChlbnRyeSwgcXVlcnlUZXh0KTtcbiAgICAgICAgfSBlbHNlIGlmIChpbmNsdWRlcyhmaWx0ZXJuYW1lLCAnZXhhY3QnKSkge1xuICAgICAgICAgICAgcmV0dXJuIGlzRXF1YWwoZW50cnksIHF1ZXJ5VGV4dCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGluY2x1ZGVzKGVudHJ5LCBxdWVyeVRleHQpO1xuICAgIH1cblxuICAgIC8vIExvY2FsRGF0YSBmaWx0ZXJpbmcgaXMgZG9uZSBiYXNlZCBvbiB0aGUgc2VhcmNoa2V5LlxuICAgIHB1YmxpYyBmaWx0ZXIoY29uZmlnOiBJRGF0YVByb3ZpZGVyQ29uZmlnKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgY29uc3QgZW50cmllcyA9IGNvbmZpZy5kYXRhc2V0O1xuICAgICAgICBsZXQgY2FzZXNlbnNpdGl2ZSA9IGNvbmZpZy5jYXNlc2Vuc2l0aXZlO1xuICAgICAgICBjb25zdCBtYXRjaE1vZGUgPSBjb25maWcubWF0Y2hNb2RlO1xuICAgICAgICAvLyBmb3Igc3VwcG9ydGluZyBleGlzdGluZyBwcm9qZWN0c1xuICAgICAgICBpZiAobWF0Y2hNb2RlICYmICFpbmNsdWRlcyhtYXRjaE1vZGUsICdpZ25vcmVjYXNlJykpIHtcbiAgICAgICAgICAgIGNhc2VzZW5zaXRpdmUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGxldCBxdWVyeVRleHQgPSBjb25maWcucXVlcnksXG4gICAgICAgIGZpbHRlcmVkRGF0YTtcblxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBJZiBzZWFyY2hLZXkgaXMgZGVmaW5lZCwgdGhlbiBjaGVjayBmb3IgbWF0Y2ggc3RyaW5nIGFnYWluc3QgZWFjaCBpdGVtIGluIHRoZSBkYXRhc2V0IHdpdGggaXRlbSdzIGZpZWxkIG5hbWUgYXMgdGhlIHNlYXJjaEtleVxuICAgICAgICAgICAgICogcmV0dXJuIHRoZSBmaWx0ZXJlZCBkYXRhIGNvbnRhaW5pbmcgdGhlIG1hdGNoaW5nIHN0cmluZy5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKGNvbmZpZy5zZWFyY2hLZXkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBrZXlzID0gc3BsaXQoY29uZmlnLnNlYXJjaEtleSwgJywnKTtcblxuICAgICAgICAgICAgICAgIGZpbHRlcmVkRGF0YSA9IGZpbHRlcihjb25maWcuZGF0YXNldCwgKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ga2V5cy5zb21lKGtleSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9IGdldChpdGVtLCBrZXkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIgPSBxdWVyeVRleHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNhc2VzZW5zaXRpdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhID0gdG9Mb3dlcih0b1N0cmluZyhhKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYiA9IHRvTG93ZXIodG9TdHJpbmcoYikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXBwbHlGaWx0ZXIoYSwgYiwgbWF0Y2hNb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIGxvY2FsIHNlYXJjaCBvbiBkYXRhIHdpdGggYXJyYXkgb2Ygb2JqZWN0cy5cbiAgICAgICAgICAgICAgICAvLyBJdGVyYXRlIG92ZXIgZWFjaCBpdGVtIGFuZCByZXR1cm4gdGhlIGZpbHRlcmVkIGRhdGEgY29udGFpbmluZyB0aGUgbWF0Y2hpbmcgc3RyaW5nLlxuICAgICAgICAgICAgICAgIGlmIChpc0FycmF5KGVudHJpZXMpICYmIGlzT2JqZWN0KGVudHJpZXNbMF0pKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcmVkRGF0YSA9IGZpbHRlcihlbnRyaWVzLCBlbnRyeSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9IHZhbHVlcyhlbnRyeSkuam9pbignICcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjYXNlc2Vuc2l0aXZlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYSA9IHRvTG93ZXIoYSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5VGV4dCA9IHRvTG93ZXIocXVlcnlUZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmFwcGx5RmlsdGVyKGEsIHF1ZXJ5VGV4dCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcmVkRGF0YSA9IGZpbHRlcihlbnRyaWVzLCBlbnRyeSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNhc2VzZW5zaXRpdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeSA9IHRvTG93ZXIoZW50cnkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeVRleHQgPSB0b0xvd2VyKHF1ZXJ5VGV4dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hcHBseUZpbHRlcihlbnRyeSwgcXVlcnlUZXh0LCBtYXRjaE1vZGUpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXNvbHZlKHtcbiAgICAgICAgICAgICAgICBkYXRhOiBmaWx0ZXJlZERhdGEsXG4gICAgICAgICAgICAgICAgaGFzTW9yZURhdGE6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGlzTGFzdFBhZ2U6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
@@ -1,5 +1,6 @@
1
1
  import { AppConstants, DataSource, findValueOf, getClonedObject } from '@wm/core';
2
2
  import { interpolateBindExpressions } from '@wm/components/base';
3
+ import { assign, get, indexOf, isArray, isEmpty, isObject, set, slice, split } from "lodash-es";
3
4
  export class RemoteDataProvider {
4
5
  filter(config) {
5
6
  return this.filterData(config).then(response => this.onFilterSuccess(config, response), () => this.onFilterFailure());
@@ -15,7 +16,7 @@ export class RemoteDataProvider {
15
16
  interpolateBindExpressions(config.viewParent, dataoptions.filterExpr, (filterexpressions) => {
16
17
  requestParams.filterExpr = dataoptions.filterExpr = filterexpressions;
17
18
  dataoptions.filterExpr = filterexpressions;
18
- config.datasource.execute(DataSource.Operation.GET_RELATED_TABLE_DATA, _.assign({ relatedField: dataoptions.relatedField }, requestParams)).then(resolve, reject);
19
+ config.datasource.execute(DataSource.Operation.GET_RELATED_TABLE_DATA, assign({ relatedField: dataoptions.relatedField }, requestParams)).then(resolve, reject);
19
20
  });
20
21
  });
21
22
  }
@@ -26,7 +27,7 @@ export class RemoteDataProvider {
26
27
  page: config.page,
27
28
  fields: dataoptions.distinctField,
28
29
  entityName: dataoptions.tableName,
29
- filterFields: _.assign(dataoptions.filterFields, requestParams.filterFields),
30
+ filterFields: assign(dataoptions.filterFields, requestParams.filterFields),
30
31
  filterExpr: getClonedObject(dataoptions.filterExpr || {})
31
32
  });
32
33
  }
@@ -50,7 +51,7 @@ export class RemoteDataProvider {
50
51
  // in case data received is value as string then add that string value to object and convert object into array
51
52
  if (tempResponse) {
52
53
  const tempObj = {};
53
- _.set(tempObj, operationResult, tempResponse);
54
+ set(tempObj, operationResult, tempResponse);
54
55
  data = [tempObj]; // convert data into an array having tempObj
55
56
  }
56
57
  else {
@@ -63,7 +64,7 @@ export class RemoteDataProvider {
63
64
  return [];
64
65
  }
65
66
  isLastPageForDistinctApi(data, page, totalElements, _isLastPage) {
66
- return page > 1 && !_isLastPage && _.isEmpty(data) && totalElements === AppConstants.INT_MAX_VALUE;
67
+ return page > 1 && !_isLastPage && isEmpty(data) && totalElements === AppConstants.INT_MAX_VALUE;
67
68
  }
68
69
  // this function processes the response depending on pageOptions, isPageable and prepares the formattedDataset.
69
70
  onFilterSuccess(config, response) {
@@ -72,8 +73,8 @@ export class RemoteDataProvider {
72
73
  let _isLastPage;
73
74
  let page;
74
75
  let isPaginatedData;
75
- const expressionArray = _.split(config.binddataset, '.');
76
- const dataExpression = _.slice(expressionArray, _.indexOf(expressionArray, 'dataSet') + 1).join('.');
76
+ const expressionArray = split(config.binddataset, '.');
77
+ const dataExpression = slice(expressionArray, indexOf(expressionArray, 'dataSet') + 1).join('.');
77
78
  const $I = '[$i]';
78
79
  return new Promise((resolve, reject) => {
79
80
  const pageOptions = response.pagination;
@@ -95,19 +96,19 @@ export class RemoteDataProvider {
95
96
  }
96
97
  // if data expression exists, extract the data from the expression path
97
98
  if (dataExpression) {
98
- if (_.isArray(data)) {
99
+ if (isArray(data)) {
99
100
  const index = dataExpression.lastIndexOf($I);
100
101
  if (index > -1) {
101
102
  const restExpr = dataExpression.substr(index + 5);
102
103
  formattedData = data.map(datum => findValueOf(datum, restExpr));
103
104
  }
104
105
  }
105
- else if (_.isObject(data)) {
106
- formattedData = _.get(data, dataExpression);
106
+ else if (isObject(data)) {
107
+ formattedData = get(data, dataExpression);
107
108
  }
108
109
  data = formattedData || data;
109
110
  }
110
- if (!_.isArray(data)) {
111
+ if (!isArray(data)) {
111
112
  data = this.getTransformedData(config.datasource, data);
112
113
  }
113
114
  // in case of no data received, resolve the promise with empty array
@@ -120,4 +121,4 @@ export class RemoteDataProvider {
120
121
  });
121
122
  }
122
123
  }
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWRhdGEtcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvYmFzaWMvc2VhcmNoL3NyYy9kYXRhLXByb3ZpZGVyL3JlbW90ZS1kYXRhLXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFbEYsT0FBTyxFQUF1QiwwQkFBMEIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBS3RGLE1BQU0sT0FBTyxrQkFBa0I7SUFDcEIsTUFBTSxDQUFDLE1BQTJCO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQztJQUMxSCxDQUFDO0lBRU8sVUFBVSxDQUFDLE1BQU07UUFDckIsSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztZQUV2QyxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBRWpHLHNFQUFzRTtZQUN0RSwrQkFBK0I7WUFDL0IsSUFBSSxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQzNCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7b0JBQ25DLDBCQUEwQixDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFD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LElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQztnQkFDaEQsQ0FBQztnQkFDRCxJQUFJLEdBQUcsYUFBYSxJQUFJLElBQUksQ0FBQztZQUNqQyxDQUFDO1lBQ0QsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDbkIsSUFBSSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzVELENBQUM7WUFDRCxvRUFBb0U7WUFDcEUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDZixPQUFPLENBQUMsRUFBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7WUFDL0YsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLE9BQU8sQ0FBQyxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztZQUNqRyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBDb25zdGFudHMsIERhdGFTb3VyY2UsIGZpbmRWYWx1ZU9mLCBnZXRDbG9uZWRPYmplY3QgfSBmcm9tICdAd20vY29yZSc7XG5cbmltcG9ydCB7IGNvbnZlcnREYXRhVG9PYmplY3QsIGludGVycG9sYXRlQmluZEV4cHJlc3Npb25zIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQgeyBJRGF0YVByb3ZpZGVyLCBJRGF0YVByb3ZpZGVyQ29uZmlnIH0gZnJvbSAnLi9kYXRhLXByb3ZpZGVyJztcblxuZGVjbGFyZSBjb25zdCBfO1xuXG5leHBvcnQgY2xhc3MgUmVtb3RlRGF0YVByb3ZpZGVyIGltcGxlbWVudHMgSURhdGFQcm92aWRlciB7XG4gICAgcHVibGljIGZpbHRlcihjb25maWc6IElEYXRhUHJvdmlkZXJDb25maWcpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJEYXRhKGNvbmZpZykudGhlbihyZXNwb25zZSA9PiB0aGlzLm9uRmlsdGVyU3VjY2Vzcyhjb25maWcsIHJlc3BvbnNlKSwgKCkgPT4gdGhpcy5vbkZpbHRlckZhaWx1cmUoKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaWx0ZXJEYXRhKGNvbmZpZykge1xuICAgICAgICBpZiAoY29uZmlnLmRhdGFvcHRpb25zKSB7XG4gICAgICAgICAgICBjb25zdCBkYXRhb3B0aW9ucyA9IGNvbmZpZy5kYXRhb3B0aW9ucztcblxuICAgICAgICAgICAgY29uc3QgcmVxdWVzdFBhcmFtcyA9IGNvbmZpZy5kYXRhc291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uR0VUX1JFUVVFU1RfUEFSQU1TLCBjb25maWcpO1xuXG4gICAgICAgICAgICAvLyBJZiBvcHRpb25zIGFyZSBzcGVjaWZpZWQsIG1ha2Ugc3BlY2lmaWNzIGNhbGxzIHRvIGZldGNoIHRoZSByZXN1bHRzXG4gICAgICAgICAgICAvLyBGZXRjaCB0aGUgcmVsYXRlZCBmaWVsZCBkYXRhXG4gICAgICAgICAgICBpZiAoZGF0YW9wdGlvbnMucmVsYXRlZEZpZWxkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaW50ZXJwb2xhdGVCaW5kRXhwcmVzc2lvbnMoY29uZmlnLnZpZXdQYXJlbnQsIGRhdGFvcHRpb25zLmZpbHRlckV4cHIsIChmaWx0ZXJleHByZXNzaW9ucykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFBhcmFtcy5maWx0ZXJFeHByID0gZGF0YW9wdGlvbnMuZmlsdGVyRXhwciA9IGZpbHRlcmV4cHJlc3Npb25zO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YW9wdGlvbnMuZmlsdGVyRXhwciA9IGZpbHRlcmV4cHJlc3Npb25zO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25maWcuZGF0YXNvdXJjZS5leGVjdXRlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGFTb3VyY2UuT3BlcmF0aW9uLkdFVF9SRUxBVEVEX1RBQkxFX0RBVEEsIF8uYXNzaWduKHtyZWxhdGVkRmllbGQ6IGRhdGFvcHRpb25zLnJlbGF0ZWRGaWVsZH0sIHJlcXVlc3RQYXJhbXMpXG4gICAgICAgICAgICAgICAgICAgICAgICApLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBGZXRjaCB0aGUgZGlzdGluY3QgZGF0YVxuICAgICAgICAgICAgaWYgKGRhdGFvcHRpb25zLmRpc3RpbmN0RmllbGQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY29uZmlnLmRhdGFzb3VyY2UuZXhlY3V0ZShcbiAgICAgICAgICAgICAgICAgICAgRGF0YVNvdXJjZS5PcGVyYXRpb24uR0VUX0RJU1RJTkNUX0RBVEFfQllfRklFTERTLFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlc2l6ZTogY29uZmlnLmxpbWl0IHx8IGNvbmZpZy5wYWdlc2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2U6IGNvbmZpZy5wYWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRzOiBkYXRhb3B0aW9ucy5kaXN0aW5jdEZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5TmFtZTogZGF0YW9wdGlvbnMudGFibGVOYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyRmllbGRzOiBfLmFzc2lnbihkYXRhb3B0aW9ucy5maWx0ZXJGaWVsZHMsIHJlcXVlc3RQYXJhbXMuZmlsdGVyRmllbGRzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlckV4cHI6IGdldENsb25lZE9iamVjdChkYXRhb3B0aW9ucy5maWx0ZXJFeHByIHx8IHt9KVxuXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gc2VhcmNoIHJlY29yZHMgdXNpbmcgdGhlIHNlYXJjaGtleVxuICAgICAgICByZXR1cm4gY29uZmlnLmRhdGFzb3VyY2UuZXhlY3V0ZShcbiAgICAgICAgICAgIERhdGFTb3VyY2UuT3BlcmF0aW9uLlNFQVJDSF9SRUNPUkRTLCBjb25maWdcbiAgICAgICAgKTtcbiAgICB9XG5cblxuICAgIC8vIENoZWNrIGlmIHRoZSBwYWdlIHJldHJpZXZlZCBjdXJyZW50bHkgaXMgdGhlIGxhc3QgcGFnZS4gSWYgbGFzdCBwYWdlLCBkb24ndCBzZW5kIGFueSBtb3JlIHJlcXVlc3RcbiAgICBwcm90ZWN0ZWQgaXNMYXN0KHBhZ2U6IG51bWJlciwgZGF0YVNpemU6IG51bWJlciwgbWF4UmVzdWx0czogbnVtYmVyLCBjdXJyZW50UmVzdWx0cz86IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICAvLyBpZiBsYXN0IHBhZ2UgaW5mbyBpcyBub3QgcmV0dXJuZWQgYnkgYmFja2VuZCBhbmQgY3VycmVudCByZXN1bHRzIGlzIGxlc3MgdGhhbiBtYXggcmVzdWx0cywgdGhpcyBpcyB0aGUgbGFzdCBwYWdlXG4gICAgICAgIGlmIChkYXRhU2l6ZSA9PT0gQXBwQ29uc3RhbnRzLklOVF9NQVhfVkFMVUUpIHtcbiAgICAgICAgICAgIHJldHVybiBjdXJyZW50UmVzdWx0cyAhPT0gMCAmJiBjdXJyZW50UmVzdWx0cyA8IG1heFJlc3VsdHM7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFnZUNvdW50ID0gKChkYXRhU2l6ZSA+IG1heFJlc3VsdHMpID8gKE1hdGguY2VpbChkYXRhU2l6ZSAvIG1heFJlc3VsdHMpKSA6IChkYXRhU2l6ZSA8IDAgPyAwIDogMSkpO1xuICAgICAgICByZXR1cm4gcGFnZSA9PT0gcGFnZUNvdW50O1xuICAgIH1cblxuICAgIC8vIHRoaXMgZnVuY3Rpb24gdHJhbnNmb3JtIHRoZSByZXNwb25zZSBkYXRhIGluIGNhc2UgaXQgaXMgbm90IGFuIGFycmF5XG4gICAgcHJvdGVjdGVkIGdldFRyYW5zZm9ybWVkRGF0YSh2YXJpYWJsZTogYW55LCBkYXRhOiBhbnkpOiBhbnkge1xuICAgICAgICBjb25zdCBvcGVyYXRpb25SZXN1bHQgPSB2YXJpYWJsZS5vcGVyYXRpb24gKyAnUmVzdWx0JzsgLy8gd2hlbiBvdXRwdXQgaXMgb25seSBzdHJpbmcgaXQgaXMgYXZhaWxhYmxlIGFzIG9wcmF0aW9uTmFtZVJlc3VsdFxuICAgICAgICBjb25zdCB0ZW1wUmVzcG9uc2UgPSBkYXRhW29wZXJhdGlvblJlc3VsdF07XG5cbiAgICAgICAgLy8gaW4gY2FzZSBkYXRhIHJlY2VpdmVkIGlzIHZhbHVlIGFzIHN0cmluZyB0aGVuIGFkZCB0aGF0IHN0cmluZyB2YWx1ZSB0byBvYmplY3QgYW5kIGNvbnZlcnQgb2JqZWN0IGludG8gYXJyYXlcbiAgICAgICAgaWYgKHRlbXBSZXNwb25zZSkge1xuICAgICAgICAgICAgY29uc3QgdGVtcE9iaiA9IHt9O1xuICAgICAgICAgICAgXy5zZXQodGVtcE9iaiwgb3BlcmF0aW9uUmVzdWx0LCB0ZW1wUmVzcG9uc2UpO1xuICAgICAgICAgICAgZGF0YSA9IFt0ZW1wT2JqXTsgLy8gY29udmVydCBkYXRhIGludG8gYW4gYXJyYXkgaGF2aW5nIHRlbXBPYmpcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIGluIGNhc2UgZGF0YSByZWNlaXZlZCBpcyBhbHJlYWR5IGFuIG9iamVjdCB0aGVuIGNvbnZlcnQgaXQgaW50byBhbiBhcnJheVxuICAgICAgICAgICAgZGF0YSA9IFtkYXRhXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkZpbHRlckZhaWx1cmUoKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzTGFzdFBhZ2VGb3JEaXN0aW5jdEFwaShkYXRhLCBwYWdlLCB0b3RhbEVsZW1lbnRzLCBfaXNMYXN0UGFnZSkge1xuICAgICAgICByZXR1cm4gcGFnZSA+IDEgJiYgIV9pc0xhc3RQYWdlICYmIF8uaXNFbXB0eShkYXRhKSAmJiB0b3RhbEVsZW1lbnRzID09PSBBcHBDb25zdGFudHMuSU5UX01BWF9WQUxVRTtcbiAgICB9XG5cblxuICAgIC8vIHRoaXMgZnVuY3Rpb24gcHJvY2Vzc2VzIHRoZSByZXNwb25zZSBkZXBlbmRpbmcgb24gcGFnZU9wdGlvbnMsIGlzUGFnZWFibGUgYW5kIHByZXBhcmVzIHRoZSBmb3JtYXR0ZWREYXRhc2V0LlxuICAgIHByb3RlY3RlZCBvbkZpbHRlclN1Y2Nlc3MoY29uZmlnOiBJRGF0YVByb3ZpZGVyQ29uZmlnLCByZXNwb25zZSk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGxldCBkYXRhOiBhbnkgPSByZXNwb25zZS5kYXRhO1xuICAgICAgICBsZXQgZm9ybWF0dGVkRGF0YTogYW55O1xuICAgICAgICBsZXQgX2lzTGFzdFBhZ2U6IGJvb2xlYW47XG4gICAgICAgIGxldCBwYWdlOiBudW1iZXI7XG4gICAgICAgIGxldCBpc1BhZ2luYXRlZERhdGE6IGJvb2xlYW47XG5cbiAgICAgICAgY29uc3QgZXhwcmVzc2lvbkFycmF5ID0gXy5zcGxpdChjb25maWcuYmluZGRhdGFzZXQsICcuJyk7XG4gICAgICAgIGNvbnN0IGRhdGFFeHByZXNzaW9uID0gXy5zbGljZShleHByZXNzaW9uQXJyYXksIF8uaW5kZXhPZihleHByZXNzaW9uQXJyYXksICdkYXRhU2V0JykgKyAxKS5qb2luKCcuJyk7XG4gICAgICAgIGNvbnN0ICRJID0gJ1skaV0nO1xuXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwYWdlT3B0aW9ucyA9IHJlc3BvbnNlLnBhZ2luYXRpb247XG5cbiAgICAgICAgICAgIGlmIChjb25maWcuZGF0YXNvdXJjZS5leGVjdXRlKERhdGFTb3VyY2UuT3BlcmF0aW9uLklTX1BBR0VBQkxFKSkge1xuICAgICAgICAgICAgICAgIHBhZ2UgPSBwYWdlT3B0aW9ucy5udW1iZXIgKyAxO1xuICAgICAgICAgICAgICAgIF9pc0xhc3RQYWdlID0gdGhpcy5pc0xhc3QocGFnZSwgKGNvbmZpZy5saW1pdCA+IDAgJiYgY29uZmlnLmxpbWl0KSB8fCBwYWdlT3B0aW9ucy50b3RhbEVsZW1lbnRzLCBwYWdlT3B0aW9ucy5zaXplLCBwYWdlT3B0aW9ucy5udW1iZXJPZkVsZW1lbnRzKTtcbiAgICAgICAgICAgICAgICBpc1BhZ2luYXRlZERhdGEgPSB0cnVlO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNMYXN0UGFnZUZvckRpc3RpbmN0QXBpKGRhdGEsIHBhZ2UsIHBhZ2VPcHRpb25zLnRvdGFsRWxlbWVudHMsIF9pc0xhc3RQYWdlKSkge1xuICAgICAgICAgICAgICAgICAgICBfaXNMYXN0UGFnZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogW10sXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0xhc3RQYWdlOiBfaXNMYXN0UGFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhc01vcmVEYXRhOiBwYWdlID4gMSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzUGFnaW5hdGVkRGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBpZiBkYXRhIGV4cHJlc3Npb24gZXhpc3RzLCBleHRyYWN0IHRoZSBkYXRhIGZyb20gdGhlIGV4cHJlc3Npb24gcGF0aFxuICAgICAgICAgICAgaWYgKGRhdGFFeHByZXNzaW9uKSB7XG4gICAgICAgICAgICAgICAgaWYgKF8uaXNBcnJheShkYXRhKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IGRhdGFFeHByZXNzaW9uLmxhc3RJbmRleE9mKCRJKTtcbiAgICAgICAgICAgICAgICAgICAgaWYoaW5kZXggPiAtMSl7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN0RXhwciA9IGRhdGFFeHByZXNzaW9uLnN1YnN0cihpbmRleCArIDUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVkRGF0YSA9IGRhdGEubWFwKGRhdHVtID0+IGZpbmRWYWx1ZU9mKGRhdHVtLCByZXN0RXhwcikpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChfLmlzT2JqZWN0KGRhdGEpKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvcm1hdHRlZERhdGEgPSBfLmdldChkYXRhLCBkYXRhRXhwcmVzc2lvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRhdGEgPSBmb3JtYXR0ZWREYXRhIHx8IGRhdGE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIV8uaXNBcnJheShkYXRhKSkge1xuICAgICAgICAgICAgICAgIGRhdGEgPSB0aGlzLmdldFRyYW5zZm9ybWVkRGF0YShjb25maWcuZGF0YXNvdXJjZSwgZGF0YSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBpbiBjYXNlIG9mIG5vIGRhdGEgcmVjZWl2ZWQsIHJlc29sdmUgdGhlIHByb21pc2Ugd2l0aCBlbXB0eSBhcnJheVxuICAgICAgICAgICAgaWYgKCFkYXRhLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJlc29sdmUoe2RhdGE6IFtdLCBpc0xhc3RQYWdlOiBfaXNMYXN0UGFnZSwgaGFzTW9yZURhdGE6IHBhZ2UgPiAxLCBpc1BhZ2luYXRlZERhdGEsIHBhZ2V9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSh7ZGF0YTogZGF0YSwgaXNMYXN0UGFnZTogX2lzTGFzdFBhZ2UsIGhhc01vcmVEYXRhOiBwYWdlID4gMSwgaXNQYWdpbmF0ZWREYXRhLCBwYWdlfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWRhdGEtcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvYmFzaWMvc2VhcmNoL3NyYy9kYXRhLXByb3ZpZGVyL3JlbW90ZS1kYXRhLXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFbEYsT0FBTyxFQUF1QiwwQkFBMEIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRGLE9BQU8sRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUU5RixNQUFNLE9BQU8sa0JBQWtCO0lBQ3BCLE1BQU0sQ0FBQyxNQUEyQjtRQUNyQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDMUgsQ0FBQztJQUVPLFVBQVUsQ0FBQyxNQUFNO1FBQ3JCLElBQUksTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7WUFFdkMsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUVqRyxzRUFBc0U7WUFDdEUsK0JBQStCO1lBQy9CLElBQUksV0FBVyxDQUFD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QixhQUFhLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQztnQkFDOUMsQ0FBQztnQkFDRCxJQUFJLEdBQUcsYUFBYSxJQUFJLElBQUksQ0FBQztZQUNqQyxDQUFDO1lBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNqQixJQUFJLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDNUQsQ0FBQztZQUNELG9FQUFvRTtZQUNwRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNmLE9BQU8sQ0FBQyxFQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztZQUMvRixDQUFDO2lCQUFNLENBQUM7Z0JBQ0osT0FBTyxDQUFDLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1lBQ2pHLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcENvbnN0YW50cywgRGF0YVNvdXJjZSwgZmluZFZhbHVlT2YsIGdldENsb25lZE9iamVjdCB9IGZyb20gJ0B3bS9jb3JlJztcblxuaW1wb3J0IHsgY29udmVydERhdGFUb09iamVjdCwgaW50ZXJwb2xhdGVCaW5kRXhwcmVzc2lvbnMgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcbmltcG9ydCB7IElEYXRhUHJvdmlkZXIsIElEYXRhUHJvdmlkZXJDb25maWcgfSBmcm9tICcuL2RhdGEtcHJvdmlkZXInO1xuaW1wb3J0IHthc3NpZ24sIGdldCwgaW5kZXhPZiwgaXNBcnJheSwgaXNFbXB0eSwgaXNPYmplY3QsIHNldCwgc2xpY2UsIHNwbGl0fSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cbmV4cG9ydCBjbGFzcyBSZW1vdGVEYXRhUHJvdmlkZXIgaW1wbGVtZW50cyBJRGF0YVByb3ZpZGVyIHtcbiAgICBwdWJsaWMgZmlsdGVyKGNvbmZpZzogSURhdGFQcm92aWRlckNvbmZpZyk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbHRlckRhdGEoY29uZmlnKS50aGVuKHJlc3BvbnNlID0+IHRoaXMub25GaWx0ZXJTdWNjZXNzKGNvbmZpZywgcmVzcG9uc2UpLCAoKSA9PiB0aGlzLm9uRmlsdGVyRmFpbHVyZSgpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbHRlckRhdGEoY29uZmlnKSB7XG4gICAgICAgIGlmIChjb25maWcuZGF0YW9wdGlvbnMpIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGFvcHRpb25zID0gY29uZmlnLmRhdGFvcHRpb25zO1xuXG4gICAgICAgICAgICBjb25zdCByZXF1ZXN0UGFyYW1zID0gY29uZmlnLmRhdGFzb3VyY2UuZXhlY3V0ZShEYXRhU291cmNlLk9wZXJhdGlvbi5HRVRfUkVRVUVTVF9QQVJBTVMsIGNvbmZpZyk7XG5cbiAgICAgICAgICAgIC8vIElmIG9wdGlvbnMgYXJlIHNwZWNpZmllZCwgbWFrZSBzcGVjaWZpY3MgY2FsbHMgdG8gZmV0Y2ggdGhlIHJlc3VsdHNcbiAgICAgICAgICAgIC8vIEZldGNoIHRoZSByZWxhdGVkIGZpZWxkIGRhdGFcbiAgICAgICAgICAgIGlmIChkYXRhb3B0aW9ucy5yZWxhdGVkRmllbGQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpbnRlcnBvbGF0ZUJpbmRFeHByZXNzaW9ucyhjb25maWcudmlld1BhcmVudCwgZGF0YW9wdGlvbnMuZmlsdGVyRXhwciwgKGZpbHRlcmV4cHJlc3Npb25zKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0UGFyYW1zLmZpbHRlckV4cHIgPSBkYXRhb3B0aW9ucy5maWx0ZXJFeHByID0gZmlsdGVyZXhwcmVzc2lvbnM7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhb3B0aW9ucy5maWx0ZXJFeHByID0gZmlsdGVyZXhwcmVzc2lvbnM7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy5kYXRhc291cmNlLmV4ZWN1dGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0YVNvdXJjZS5PcGVyYXRpb24uR0VUX1JFTEFURURfVEFCTEVfREFUQSwgYXNzaWduKHtyZWxhdGVkRmllbGQ6IGRhdGFvcHRpb25zLnJlbGF0ZWRGaWVsZH0sIHJlcXVlc3RQYXJhbXMpXG4gICAgICAgICAgICAgICAgICAgICAgICApLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBGZXRjaCB0aGUgZGlzdGluY3QgZGF0YVxuICAgICAgICAgICAgaWYgKGRhdGFvcHRpb25zLmRpc3RpbmN0RmllbGQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY29uZmlnLmRhdGFzb3VyY2UuZXhlY3V0ZShcbiAgICAgICAgICAgICAgICAgICAgRGF0YVNvdXJjZS5PcGVyYXRpb24uR0VUX0RJU1RJTkNUX0RBVEFfQllfRklFTERTLFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlc2l6ZTogY29uZmlnLmxpbWl0IHx8IGNvbmZpZy5wYWdlc2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2U6IGNvbmZpZy5wYWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRzOiBkYXRhb3B0aW9ucy5kaXN0aW5jdEZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5TmFtZTogZGF0YW9wdGlvbnMudGFibGVOYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyRmllbGRzOiBhc3NpZ24oZGF0YW9wdGlvbnMuZmlsdGVyRmllbGRzLCByZXF1ZXN0UGFyYW1zLmZpbHRlckZpZWxkcyksXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJFeHByOiBnZXRDbG9uZWRPYmplY3QoZGF0YW9wdGlvbnMuZmlsdGVyRXhwciB8fCB7fSlcblxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHNlYXJjaCByZWNvcmRzIHVzaW5nIHRoZSBzZWFyY2hrZXlcbiAgICAgICAgcmV0dXJuIGNvbmZpZy5kYXRhc291cmNlLmV4ZWN1dGUoXG4gICAgICAgICAgICBEYXRhU291cmNlLk9wZXJhdGlvbi5TRUFSQ0hfUkVDT1JEUywgY29uZmlnXG4gICAgICAgICk7XG4gICAgfVxuXG5cbiAgICAvLyBDaGVjayBpZiB0aGUgcGFnZSByZXRyaWV2ZWQgY3VycmVudGx5IGlzIHRoZSBsYXN0IHBhZ2UuIElmIGxhc3QgcGFnZSwgZG9uJ3Qgc2VuZCBhbnkgbW9yZSByZXF1ZXN0XG4gICAgcHJvdGVjdGVkIGlzTGFzdChwYWdlOiBudW1iZXIsIGRhdGFTaXplOiBudW1iZXIsIG1heFJlc3VsdHM6IG51bWJlciwgY3VycmVudFJlc3VsdHM/OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgLy8gaWYgbGFzdCBwYWdlIGluZm8gaXMgbm90IHJldHVybmVkIGJ5IGJhY2tlbmQgYW5kIGN1cnJlbnQgcmVzdWx0cyBpcyBsZXNzIHRoYW4gbWF4IHJlc3VsdHMsIHRoaXMgaXMgdGhlIGxhc3QgcGFnZVxuICAgICAgICBpZiAoZGF0YVNpemUgPT09IEFwcENvbnN0YW50cy5JTlRfTUFYX1ZBTFVFKSB7XG4gICAgICAgICAgICByZXR1cm4gY3VycmVudFJlc3VsdHMgIT09IDAgJiYgY3VycmVudFJlc3VsdHMgPCBtYXhSZXN1bHRzO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhZ2VDb3VudCA9ICgoZGF0YVNpemUgPiBtYXhSZXN1bHRzKSA/IChNYXRoLmNlaWwoZGF0YVNpemUgLyBtYXhSZXN1bHRzKSkgOiAoZGF0YVNpemUgPCAwID8gMCA6IDEpKTtcbiAgICAgICAgcmV0dXJuIHBhZ2UgPT09IHBhZ2VDb3VudDtcbiAgICB9XG5cbiAgICAvLyB0aGlzIGZ1bmN0aW9uIHRyYW5zZm9ybSB0aGUgcmVzcG9uc2UgZGF0YSBpbiBjYXNlIGl0IGlzIG5vdCBhbiBhcnJheVxuICAgIHByb3RlY3RlZCBnZXRUcmFuc2Zvcm1lZERhdGEodmFyaWFibGU6IGFueSwgZGF0YTogYW55KTogYW55IHtcbiAgICAgICAgY29uc3Qgb3BlcmF0aW9uUmVzdWx0ID0gdmFyaWFibGUub3BlcmF0aW9uICsgJ1Jlc3VsdCc7IC8vIHdoZW4gb3V0cHV0IGlzIG9ubHkgc3RyaW5nIGl0IGlzIGF2YWlsYWJsZSBhcyBvcHJhdGlvbk5hbWVSZXN1bHRcbiAgICAgICAgY29uc3QgdGVtcFJlc3BvbnNlID0gZGF0YVtvcGVyYXRpb25SZXN1bHRdO1xuXG4gICAgICAgIC8vIGluIGNhc2UgZGF0YSByZWNlaXZlZCBpcyB2YWx1ZSBhcyBzdHJpbmcgdGhlbiBhZGQgdGhhdCBzdHJpbmcgdmFsdWUgdG8gb2JqZWN0IGFuZCBjb252ZXJ0IG9iamVjdCBpbnRvIGFycmF5XG4gICAgICAgIGlmICh0ZW1wUmVzcG9uc2UpIHtcbiAgICAgICAgICAgIGNvbnN0IHRlbXBPYmogPSB7fTtcbiAgICAgICAgICAgIHNldCh0ZW1wT2JqLCBvcGVyYXRpb25SZXN1bHQsIHRlbXBSZXNwb25zZSk7XG4gICAgICAgICAgICBkYXRhID0gW3RlbXBPYmpdOyAvLyBjb252ZXJ0IGRhdGEgaW50byBhbiBhcnJheSBoYXZpbmcgdGVtcE9ialxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gaW4gY2FzZSBkYXRhIHJlY2VpdmVkIGlzIGFscmVhZHkgYW4gb2JqZWN0IHRoZW4gY29udmVydCBpdCBpbnRvIGFuIGFycmF5XG4gICAgICAgICAgICBkYXRhID0gW2RhdGFdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uRmlsdGVyRmFpbHVyZSgpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNMYXN0UGFnZUZvckRpc3RpbmN0QXBpKGRhdGEsIHBhZ2UsIHRvdGFsRWxlbWVudHMsIF9pc0xhc3RQYWdlKSB7XG4gICAgICAgIHJldHVybiBwYWdlID4gMSAmJiAhX2lzTGFzdFBhZ2UgJiYgaXNFbXB0eShkYXRhKSAmJiB0b3RhbEVsZW1lbnRzID09PSBBcHBDb25zdGFudHMuSU5UX01BWF9WQUxVRTtcbiAgICB9XG5cblxuICAgIC8vIHRoaXMgZnVuY3Rpb24gcHJvY2Vzc2VzIHRoZSByZXNwb25zZSBkZXBlbmRpbmcgb24gcGFnZU9wdGlvbnMsIGlzUGFnZWFibGUgYW5kIHByZXBhcmVzIHRoZSBmb3JtYXR0ZWREYXRhc2V0LlxuICAgIHByb3RlY3RlZCBvbkZpbHRlclN1Y2Nlc3MoY29uZmlnOiBJRGF0YVByb3ZpZGVyQ29uZmlnLCByZXNwb25zZSk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGxldCBkYXRhOiBhbnkgPSByZXNwb25zZS5kYXRhO1xuICAgICAgICBsZXQgZm9ybWF0dGVkRGF0YTogYW55O1xuICAgICAgICBsZXQgX2lzTGFzdFBhZ2U6IGJvb2xlYW47XG4gICAgICAgIGxldCBwYWdlOiBudW1iZXI7XG4gICAgICAgIGxldCBpc1BhZ2luYXRlZERhdGE6IGJvb2xlYW47XG5cbiAgICAgICAgY29uc3QgZXhwcmVzc2lvbkFycmF5ID0gc3BsaXQoY29uZmlnLmJpbmRkYXRhc2V0LCAnLicpO1xuICAgICAgICBjb25zdCBkYXRhRXhwcmVzc2lvbiA9IHNsaWNlKGV4cHJlc3Npb25BcnJheSwgaW5kZXhPZihleHByZXNzaW9uQXJyYXksICdkYXRhU2V0JykgKyAxKS5qb2luKCcuJyk7XG4gICAgICAgIGNvbnN0ICRJID0gJ1skaV0nO1xuXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwYWdlT3B0aW9ucyA9IHJlc3BvbnNlLnBhZ2luYXRpb247XG5cbiAgICAgICAgICAgIGlmIChjb25maWcuZGF0YXNvdXJjZS5leGVjdXRlKERhdGFTb3VyY2UuT3BlcmF0aW9uLklTX1BBR0VBQkxFKSkge1xuICAgICAgICAgICAgICAgIHBhZ2UgPSBwYWdlT3B0aW9ucy5udW1iZXIgKyAxO1xuICAgICAgICAgICAgICAgIF9pc0xhc3RQYWdlID0gdGhpcy5pc0xhc3QocGFnZSwgKGNvbmZpZy5saW1pdCA+IDAgJiYgY29uZmlnLmxpbWl0KSB8fCBwYWdlT3B0aW9ucy50b3RhbEVsZW1lbnRzLCBwYWdlT3B0aW9ucy5zaXplLCBwYWdlT3B0aW9ucy5udW1iZXJPZkVsZW1lbnRzKTtcbiAgICAgICAgICAgICAgICBpc1BhZ2luYXRlZERhdGEgPSB0cnVlO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNMYXN0UGFnZUZvckRpc3RpbmN0QXBpKGRhdGEsIHBhZ2UsIHBhZ2VPcHRpb25zLnRvdGFsRWxlbWVudHMsIF9pc0xhc3RQYWdlKSkge1xuICAgICAgICAgICAgICAgICAgICBfaXNMYXN0UGFnZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogW10sXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0xhc3RQYWdlOiBfaXNMYXN0UGFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhc01vcmVEYXRhOiBwYWdlID4gMSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzUGFnaW5hdGVkRGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBpZiBkYXRhIGV4cHJlc3Npb24gZXhpc3RzLCBleHRyYWN0IHRoZSBkYXRhIGZyb20gdGhlIGV4cHJlc3Npb24gcGF0aFxuICAgICAgICAgICAgaWYgKGRhdGFFeHByZXNzaW9uKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzQXJyYXkoZGF0YSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSBkYXRhRXhwcmVzc2lvbi5sYXN0SW5kZXhPZigkSSk7XG4gICAgICAgICAgICAgICAgICAgIGlmKGluZGV4ID4gLTEpe1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdEV4cHIgPSBkYXRhRXhwcmVzc2lvbi5zdWJzdHIoaW5kZXggKyA1KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdHRlZERhdGEgPSBkYXRhLm1hcChkYXR1bSA9PiBmaW5kVmFsdWVPZihkYXR1bSwgcmVzdEV4cHIpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNPYmplY3QoZGF0YSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVkRGF0YSA9IGdldChkYXRhLCBkYXRhRXhwcmVzc2lvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRhdGEgPSBmb3JtYXR0ZWREYXRhIHx8IGRhdGE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWlzQXJyYXkoZGF0YSkpIHtcbiAgICAgICAgICAgICAgICBkYXRhID0gdGhpcy5nZXRUcmFuc2Zvcm1lZERhdGEoY29uZmlnLmRhdGFzb3VyY2UsIGRhdGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gaW4gY2FzZSBvZiBubyBkYXRhIHJlY2VpdmVkLCByZXNvbHZlIHRoZSBwcm9taXNlIHdpdGggZW1wdHkgYXJyYXlcbiAgICAgICAgICAgIGlmICghZGF0YS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKHtkYXRhOiBbXSwgaXNMYXN0UGFnZTogX2lzTGFzdFBhZ2UsIGhhc01vcmVEYXRhOiBwYWdlID4gMSwgaXNQYWdpbmF0ZWREYXRhLCBwYWdlfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlc29sdmUoe2RhdGE6IGRhdGEsIGlzTGFzdFBhZ2U6IF9pc0xhc3RQYWdlLCBoYXNNb3JlRGF0YTogcGFnZSA+IDEsIGlzUGFnaW5hdGVkRGF0YSwgcGFnZX0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=