@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,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@angular/forms'), require('angular-imask'), require('@wm/components/base'), require('@wm/core'), require('rxjs'), require('tslib')) :
3
- typeof define === 'function' && define.amd ? define(['exports', '@angular/core', '@angular/common', '@angular/forms', 'angular-imask', '@wm/components/base', '@wm/core', 'rxjs', 'tslib'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.wm = global.wm || {}, global.wm.components = global.wm.components || {}, global.wm.components.input = {}), global.ng.core, global.ng.common, global.ng.forms, global.angularIMask, global.wm.components.base, global.wm.core, global.rxjs, global.tslib));
5
- })(this, (function (exports, i0, i1, i2$1, i3, i2, i1$1, rxjs, tslib) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@angular/forms'), require('angular-imask'), require('@wm/components/base'), require('@wm/core'), require('lodash-es'), require('rxjs'), require('tslib')) :
3
+ typeof define === 'function' && define.amd ? define(['exports', '@angular/core', '@angular/common', '@angular/forms', 'angular-imask', '@wm/components/base', '@wm/core', 'lodash-es', 'rxjs', 'tslib'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.wm = global.wm || {}, global.wm.components = global.wm.components || {}, global.wm.components.input = {}), global.ng.core, global.ng.common, global.ng.forms, global.angularIMask, global.wm.components.base, global.wm.core, global._, global.rxjs, global.tslib));
5
+ })(this, (function (exports, i0, i1, i2$1, i3, i2, i1$1, lodashEs, rxjs, tslib) { 'use strict';
6
6
 
7
7
  function _interopNamespaceDefault(e) {
8
8
  var n = Object.create(null);
@@ -206,8 +206,8 @@
206
206
  }] }); })();
207
207
 
208
208
  class BaseFormComponent extends i2.StylableComponent {
209
- constructor(inj, config, initPromise) {
210
- super(inj, config, initPromise);
209
+ constructor(inj, config, explicitContext, initPromise) {
210
+ super(inj, config, explicitContext, initPromise);
211
211
  this.inj = inj;
212
212
  this.binddatavalue = this.$element.attr('datavalue.bind');
213
213
  }
@@ -236,11 +236,11 @@
236
236
  }
237
237
  binddatavalue = binddatavalue.replace(/\[\$i\]/g, '[0]');
238
238
  // In case of list widget context will be the listItem.
239
- if (_.has(this.context, binddatavalue.split('.')[0])) {
240
- _.set(this.context, binddatavalue, value);
239
+ if (lodashEs.has(this.context, binddatavalue.split('.')[0])) {
240
+ lodashEs.set(this.context, binddatavalue, value);
241
241
  }
242
242
  else {
243
- _.set(this.viewParent, binddatavalue, value);
243
+ lodashEs.set(this.viewParent, binddatavalue, value);
244
244
  }
245
245
  }
246
246
  invokeOnChange(value, $event) {
@@ -273,7 +273,7 @@
273
273
  });
274
274
  }
275
275
  }
276
- static { this.ɵfac = function BaseFormComponent_Factory(t) { return new (t || BaseFormComponent)(i0__namespace.ɵɵinject(i0__namespace.Injector), i0__namespace.ɵɵinject(i2.WidgetConfig), i0__namespace.ɵɵinject(Promise)); }; }
276
+ static { this.ɵfac = function BaseFormComponent_Factory(t) { return new (t || BaseFormComponent)(i0__namespace.ɵɵinject(i0__namespace.Injector), i0__namespace.ɵɵinject(i2.WidgetConfig), i0__namespace.ɵɵinject('EXPLICIT_CONTEXT', 8), i0__namespace.ɵɵinject(Promise)); }; }
277
277
  static { this.ɵprov = /*@__PURE__*/ i0__namespace.ɵɵdefineInjectable({ token: BaseFormComponent, factory: BaseFormComponent.ɵfac }); }
278
278
  }
279
279
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(BaseFormComponent, [{
@@ -281,6 +281,11 @@
281
281
  }], () => [{ type: i0__namespace.Injector }, { type: undefined, decorators: [{
282
282
  type: i0.Inject,
283
283
  args: [i2.WidgetConfig]
284
+ }] }, { type: undefined, decorators: [{
285
+ type: i0.Inject,
286
+ args: ['EXPLICIT_CONTEXT']
287
+ }, {
288
+ type: i0.Optional
284
289
  }] }, { type: Promise }], null); })();
285
290
 
286
291
  /*
@@ -585,17 +590,17 @@
585
590
  // invoke on datavalue change.
586
591
  this.invokeOnChange(val, undefined, true);
587
592
  }
588
- constructor(inj, config, groupby) {
589
- super(inj, config);
593
+ constructor(inj, config, explicitContext, groupby) {
594
+ super(inj, config, explicitContext);
590
595
  this.groupby = groupby;
591
596
  this.datasetItems = [];
592
597
  this.acceptsArray = false; // set to true if proxyModel on widget accepts array type.
593
598
  this.dataset$ = new rxjs.Subject();
594
599
  this.datavalue$ = new rxjs.Subject();
595
600
  this.allowempty = true;
596
- this._debounceDatavalueUpdation = _.debounce((values) => {
601
+ this._debounceDatavalueUpdation = lodashEs.debounce((values) => {
597
602
  // if no item is found in datasetItems, wait untill the dataset updates by preserving the datavalue in toBeProcessedDatavalue.
598
- if (!i1$1.isDefined(this._modelByKey) || (_.isArray(this._modelByKey) && !this._modelByKey.length)) {
603
+ if (!i1$1.isDefined(this._modelByKey) || (lodashEs.isArray(this._modelByKey) && !this._modelByKey.length)) {
599
604
  this.toBeProcessedDatavalue = values;
600
605
  this._modelByValue = '';
601
606
  }
@@ -603,7 +608,7 @@
603
608
  // obtain the first array value when multiple is set to false.
604
609
  // set the modelByValue only when undefined.
605
610
  if (!i1$1.isDefined(this._modelByValue)) {
606
- this._modelByValue = (!this.multiple && _.isArray(this.toBeProcessedDatavalue)) ? this.toBeProcessedDatavalue[0] : this.toBeProcessedDatavalue;
611
+ this._modelByValue = (!this.multiple && lodashEs.isArray(this.toBeProcessedDatavalue)) ? this.toBeProcessedDatavalue[0] : this.toBeProcessedDatavalue;
607
612
  }
608
613
  this.toBeProcessedDatavalue = undefined;
609
614
  }
@@ -633,7 +638,7 @@
633
638
  if (!this.datasetItems.length) {
634
639
  return;
635
640
  }
636
- if (this.multiple && !_.isArray(keys)) {
641
+ if (this.multiple && !lodashEs.isArray(keys)) {
637
642
  keys = [keys];
638
643
  }
639
644
  // Set the _modelByKey to the modified keys.
@@ -641,10 +646,10 @@
641
646
  if (this.multiple) {
642
647
  this._modelByValue = [];
643
648
  keys.forEach(key => {
644
- const itemByKey = _.find(this.datasetItems, item => {
649
+ const itemByKey = lodashEs.find(this.datasetItems, item => {
645
650
  // not triple equal, as the instance type can be different.
646
651
  // only value comparison should be done.
647
- return _.toString(item.key) === _.toString(key);
652
+ return lodashEs.toString(item.key) === lodashEs.toString(key);
648
653
  });
649
654
  if (itemByKey) {
650
655
  itemByKey.selected = true;
@@ -654,10 +659,10 @@
654
659
  }
655
660
  else {
656
661
  this._modelByValue = '';
657
- const itemByKey = _.find(this.datasetItems, item => {
662
+ const itemByKey = lodashEs.find(this.datasetItems, item => {
658
663
  // not triple equal, as the instance type can be different.
659
664
  // only value comparison should be done.
660
- return _.toString(item.key) === _.toString(keys);
665
+ return lodashEs.toString(item.key) === lodashEs.toString(keys);
661
666
  });
662
667
  if (itemByKey) {
663
668
  itemByKey.selected = true;
@@ -676,14 +681,14 @@
676
681
  selectByValue(values) {
677
682
  this.resetDatasetItems();
678
683
  // if datavalue is not defined or empty then set the model as undefined.
679
- if (!i1$1.isDefined(values) || values === '' || _.isNull(values) || (values instanceof Array && !values.length)) {
684
+ if (!i1$1.isDefined(values) || values === '' || lodashEs.isNull(values) || (values instanceof Array && !values.length)) {
680
685
  this._modelByKey = undefined;
681
686
  // do not return when allowempty is set to true.
682
687
  if (!this.allowempty || !i1$1.isDefined(values)) {
683
688
  return;
684
689
  }
685
690
  }
686
- if (this.acceptsArray && !_.isArray(values)) {
691
+ if (this.acceptsArray && !lodashEs.isArray(values)) {
687
692
  values = this.allowempty ? [values] : i2.extractDataAsArray(values);
688
693
  }
689
694
  // preserve the datavalue if datasetItems are empty.
@@ -692,16 +697,16 @@
692
697
  return;
693
698
  }
694
699
  const filterField = this.datafield === i2.ALLFIELDS ? 'dataObject' : 'key';
695
- if (_.isArray(values)) {
700
+ if (lodashEs.isArray(values)) {
696
701
  this._modelByKey = [];
697
702
  values.forEach(val => {
698
- const itemByValue = _.find(this.datasetItems, item => {
703
+ const itemByValue = lodashEs.find(this.datasetItems, item => {
699
704
  if (filterField === 'dataObject') {
700
705
  if (this.compareby && this.compareby.length) {
701
706
  return i1$1.isEqualWithFields(item[filterField], val, this.compareby);
702
707
  }
703
708
  }
704
- return (_.isObject(item.value) ? _.isEqual(item.value, val) : (_.toString(item.value)).toLowerCase() === (_.toString(val)).toLowerCase());
709
+ return (lodashEs.isObject(item.value) ? lodashEs.isEqual(item.value, val) : (lodashEs.toString(item.value)).toLowerCase() === (lodashEs.toString(val)).toLowerCase());
705
710
  });
706
711
  if (itemByValue) {
707
712
  itemByValue.selected = true;
@@ -711,13 +716,13 @@
711
716
  }
712
717
  else {
713
718
  this._modelByKey = undefined;
714
- const itemByValue = _.find(this.datasetItems, item => {
719
+ const itemByValue = lodashEs.find(this.datasetItems, item => {
715
720
  if (filterField === 'dataObject') {
716
721
  if (this.compareby && this.compareby.length) {
717
722
  return i1$1.isEqualWithFields(item[filterField], values, this.compareby);
718
723
  }
719
724
  }
720
- return (_.isObject(item.value) ? _.isEqual(item.value, values) : (_.toString(item.value)).toLowerCase() === (_.toString(values)).toLowerCase());
725
+ return (lodashEs.isObject(item.value) ? lodashEs.isEqual(item.value, values) : (lodashEs.toString(item.value)).toLowerCase() === (lodashEs.toString(values)).toLowerCase());
721
726
  });
722
727
  if (itemByValue) {
723
728
  itemByValue.selected = true;
@@ -740,7 +745,7 @@
740
745
  }
741
746
  // This function parses the dataset and extracts the displayOptions from parsed dataset.
742
747
  initDatasetItems() {
743
- if (!this.dataset || _.isEmpty(this.dataset)) {
748
+ if (!this.dataset || lodashEs.isEmpty(this.dataset)) {
744
749
  this.datasetItems = [];
745
750
  // notify the dataset listeners
746
751
  this.dataset$.next(this.datasetItems);
@@ -768,7 +773,7 @@
768
773
  postDatasetItemsInit() {
769
774
  if (this.datasetItems.length && !this._defaultQueryInvoked) {
770
775
  // use the latest of toBeProcessedDatavalue, datavalue
771
- const _datavalue = _.isEmpty(this.toBeProcessedDatavalue) ? this.datavalue : this.toBeProcessedDatavalue;
776
+ const _datavalue = lodashEs.isEmpty(this.toBeProcessedDatavalue) ? this.datavalue : this.toBeProcessedDatavalue;
772
777
  this.selectByValue(_datavalue);
773
778
  }
774
779
  // notify the dataset listeners
@@ -838,7 +843,7 @@
838
843
  this.cancelLocaleChangeSubscription();
839
844
  }
840
845
  }
841
- static { this.ɵfac = function DatasetAwareFormComponent_Factory(t) { return new (t || DatasetAwareFormComponent)(i0__namespace.ɵɵinject(i0__namespace.Injector), i0__namespace.ɵɵinject(i2.WidgetConfig), i0__namespace.ɵɵinjectAttribute('groupby')); }; }
846
+ static { this.ɵfac = function DatasetAwareFormComponent_Factory(t) { return new (t || DatasetAwareFormComponent)(i0__namespace.ɵɵinject(i0__namespace.Injector), i0__namespace.ɵɵinject(i2.WidgetConfig), i0__namespace.ɵɵinject('EXPLICIT_CONTEXT', 8), i0__namespace.ɵɵinjectAttribute('groupby')); }; }
842
847
  static { this.ɵprov = /*@__PURE__*/ i0__namespace.ɵɵdefineInjectable({ token: DatasetAwareFormComponent, factory: DatasetAwareFormComponent.ɵfac }); }
843
848
  }
844
849
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(DatasetAwareFormComponent, [{
@@ -846,6 +851,11 @@
846
851
  }], () => [{ type: i0__namespace.Injector }, { type: undefined, decorators: [{
847
852
  type: i0.Inject,
848
853
  args: [i2.WidgetConfig]
854
+ }] }, { type: undefined, decorators: [{
855
+ type: i0.Inject,
856
+ args: ['EXPLICIT_CONTEXT']
857
+ }, {
858
+ type: i0.Optional
849
859
  }] }, { type: undefined, decorators: [{
850
860
  type: i0.Attribute,
851
861
  args: ['groupby']
@@ -1050,7 +1060,8 @@
1050
1060
  // construct the _model from the checked elements.
1051
1061
  const inputElements = this.nativeElement.querySelectorAll('input:checked');
1052
1062
  const keys = [];
1053
- _.forEach(inputElements, ($el) => {
1063
+ lodashEs.forEach(inputElements, ($el) => {
1064
+ // @ts-ignore
1054
1065
  keys.push($el.value);
1055
1066
  });
1056
1067
  this.modelByKey = keys;
@@ -1069,7 +1080,7 @@
1069
1080
  return callback();
1070
1081
  });
1071
1082
  }
1072
- else if (!_.includes(['change'], eventName)) {
1083
+ else if (!lodashEs.includes(['change'], eventName)) {
1073
1084
  super.handleEvent(node, eventName, callback, locals);
1074
1085
  }
1075
1086
  }
@@ -1128,7 +1139,7 @@
1128
1139
  type: i0.HostListener,
1129
1140
  args: ['keydown.enter', ['$event', '"ENTER"']]
1130
1141
  }] }); })();
1131
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassDebugInfo(CheckboxsetComponent, { className: "CheckboxsetComponent", filePath: "checkboxset/checkboxset.component.ts", lineNumber: 26 }); })();
1142
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassDebugInfo(CheckboxsetComponent, { className: "CheckboxsetComponent", filePath: "checkboxset/checkboxset.component.ts", lineNumber: 27 }); })();
1132
1143
 
1133
1144
  const registerProps$a = () => {
1134
1145
  i2.register('wm-form-group', new Map([
@@ -1274,7 +1285,7 @@
1274
1285
  }
1275
1286
  // invoke the change callback
1276
1287
  handleChange(newValue) {
1277
- if (this.autotrim && this.datavalue && _.isString(this.datavalue)) {
1288
+ if (this.autotrim && this.datavalue && lodashEs.isString(this.datavalue)) {
1278
1289
  this.datavalue = this.datavalue.trim();
1279
1290
  }
1280
1291
  this.invokeOnChange(this.datavalue, { type: 'change' }, this.ngModel.valid);
@@ -1292,7 +1303,7 @@
1292
1303
  // Update the model on enter key press
1293
1304
  flushViewChanges(val) {
1294
1305
  // when val contains masked value, update the model with unmasked value
1295
- const unMaskedVal = _.get(this.imask, 'maskRef.unmaskedValue');
1306
+ const unMaskedVal = lodashEs.get(this.imask, 'maskRef.unmaskedValue');
1296
1307
  val = unMaskedVal ? unMaskedVal : val;
1297
1308
  this.ngModel.update.next(val);
1298
1309
  i1$1.$appDigest();
@@ -1349,7 +1360,8 @@
1349
1360
  set datavalue(value) {
1350
1361
  this.lastValIsDecimal = false;
1351
1362
  // set text value to null if data value is empty.
1352
- if (_.includes([null, undefined, ''], value)) {
1363
+ // @ts-ignore
1364
+ if (lodashEs.includes([null, undefined, ''], value)) {
1353
1365
  const input = this.inputEl.nativeElement;
1354
1366
  const prevDataValue = this.prevDatavalue;
1355
1367
  this.displayValue = input.value = this.proxyModel = null;
@@ -1362,8 +1374,8 @@
1362
1374
  }
1363
1375
  // if the widget has default value and if we change the locale, the value should be in selected locale format.
1364
1376
  if (this.isDefaultQuery) {
1365
- const isLocalizedNumber = _.isString(value) && _.includes(value, this.DECIMAL);
1366
- const parts = isLocalizedNumber ? value.split(this.DECIMAL) : _.isString(value) && value.split('.');
1377
+ const isLocalizedNumber = lodashEs.isString(value) && lodashEs.includes(value, this.DECIMAL);
1378
+ const parts = isLocalizedNumber ? value.split(this.DECIMAL) : lodashEs.isString(value) && value.split('.');
1367
1379
  this.decimalValue = parts[1] || '';
1368
1380
  value = isLocalizedNumber ? value : this.transformNumber(value);
1369
1381
  }
@@ -1378,7 +1390,7 @@
1378
1390
  model = NaN;
1379
1391
  }
1380
1392
  // On keypress, if the user types a decimal and is still active on the input do not throw error.
1381
- if (_.isNaN(model) && strVal[strVal.length - 1] === this.DECIMAL && this.ngModelOptions.updateOn === 'change' && this.$element.find('input:focus').length) {
1393
+ if (isNaN(model) && strVal[strVal.length - 1] === this.DECIMAL && this.ngModelOptions.updateOn === 'change' && this.$element.find('input:focus').length) {
1382
1394
  this.lastValIsDecimal = true;
1383
1395
  }
1384
1396
  // get a valid number form the text.
@@ -1414,7 +1426,7 @@
1414
1426
  */
1415
1427
  isValid(val) {
1416
1428
  // id number is infinite then consider it as invalid value
1417
- if (_.isNaN(val) || !_.isFinite(val) || (!Number.isInteger(this.step) &&
1429
+ if (isNaN(val) || !isFinite(val) || (!Number.isInteger(this.step) &&
1418
1430
  this.countDecimals(val) > this.countDecimals(this.step))) {
1419
1431
  this.isInvalidNumber = true;
1420
1432
  return false;
@@ -1432,11 +1444,11 @@
1432
1444
  * @returns {number}
1433
1445
  */
1434
1446
  getValueInRange(value) {
1435
- if (!_.isNaN(this.minvalue) && value < this.minvalue) {
1447
+ if (!isNaN(this.minvalue) && value < this.minvalue) {
1436
1448
  this.validateType = 'minvalue';
1437
1449
  return this.minvalue;
1438
1450
  }
1439
- if (!_.isNaN(this.maxvalue) && value > this.maxvalue) {
1451
+ if (!isNaN(this.maxvalue) && value > this.maxvalue) {
1440
1452
  this.validateType = 'maxvalue';
1441
1453
  return this.maxvalue;
1442
1454
  }
@@ -1565,7 +1577,7 @@
1565
1577
  const valInWholeNum = parseInt(value.toString().replace(/\D/g, ''));
1566
1578
  financialVal = valInWholeNum * this.step;
1567
1579
  }
1568
- if (!_.isNaN(financialVal)) {
1580
+ if (!isNaN(financialVal)) {
1569
1581
  // When update on key is set keypress, update the datavalue else update only the display value
1570
1582
  if (this.ngModelOptions.updateOn === 'change') {
1571
1583
  this.datavalue = parseFloat(financialVal.toFixed(stepVal));
@@ -1625,7 +1637,7 @@
1625
1637
  const targetVal = $event.target.value.replace(/,/g, '');
1626
1638
  // proxyModel to be updated from $event.target.value if present to support arrow keys when input changes else pick up from this.proxymodel
1627
1639
  let proxyModel;
1628
- if (targetVal && !_.isNaN(parseFloat(targetVal))) {
1640
+ if (targetVal && !isNaN(parseFloat(targetVal))) {
1629
1641
  proxyModel = parseFloat(targetVal);
1630
1642
  }
1631
1643
  else {
@@ -1636,14 +1648,14 @@
1636
1648
  if (this.numberNotInRange) {
1637
1649
  const inputValue = this.parseNumber(this.inputEl.nativeElement.value);
1638
1650
  // take the textbox value as current model if the value is valid.
1639
- if (!_.isNaN(inputValue)) {
1651
+ if (!isNaN(inputValue)) {
1640
1652
  value = this.getValueInRange(inputValue);
1641
1653
  proxyModel = inputValue;
1642
1654
  this.resetValidations();
1643
1655
  }
1644
1656
  }
1645
1657
  else {
1646
- if (_.isUndefined(proxyModel) || _.isNull(proxyModel)) {
1658
+ if (lodashEs.isUndefined(proxyModel) || lodashEs.isNull(proxyModel)) {
1647
1659
  proxyModel = value = this.getValueInRange((this.minvalue || 0));
1648
1660
  this.resetValidations();
1649
1661
  }
@@ -1654,7 +1666,7 @@
1654
1666
  if ((key === 'UP' && proxyModel <= value) || (key === 'DOWN' && proxyModel >= value)) {
1655
1667
  const decimalRoundValue = Math.max(this.countDecimals(proxyModel), this.countDecimals(this.step));
1656
1668
  // update the modelProxy.
1657
- this.proxyModel = _.round(value, decimalRoundValue);
1669
+ this.proxyModel = lodashEs.round(value, decimalRoundValue);
1658
1670
  this.updateDisplayText();
1659
1671
  this.handleChange(this.proxyModel);
1660
1672
  }
@@ -1689,7 +1701,7 @@
1689
1701
  validateInputEntry($event) {
1690
1702
  this.isDefaultQuery = false;
1691
1703
  // allow actions if control key is pressed or if backspace is pressed. (for Mozilla).
1692
- if ($event.ctrlKey || _.includes(['Backspace', 'ArrowRight', 'ArrowLeft', 'Tab', 'Enter', 'Delete'], $event.key)) {
1704
+ if ($event.ctrlKey || lodashEs.includes(['Backspace', 'ArrowRight', 'ArrowLeft', 'Tab', 'Enter', 'Delete'], $event.key)) {
1693
1705
  return;
1694
1706
  }
1695
1707
  const validity = new RegExp(`^[\\d\\s-,.e+${this.GROUP}${this.DECIMAL}]$`, 'i');
@@ -1720,18 +1732,18 @@
1720
1732
  return false;
1721
1733
  }
1722
1734
  // comma cannot be entered consecutively
1723
- if (_.includes(inputValue, ',') && inputValue[inputValue.length - 1] === ',' && $event.key === ',') {
1735
+ if (lodashEs.includes(inputValue, ',') && inputValue[inputValue.length - 1] === ',' && $event.key === ',') {
1724
1736
  return false;
1725
1737
  }
1726
1738
  // a decimal value can be entered only once in the input.
1727
- if (_.includes(inputValue, this.DECIMAL) && $event.key === this.DECIMAL) {
1739
+ if (lodashEs.includes(inputValue, this.DECIMAL) && $event.key === this.DECIMAL) {
1728
1740
  return false;
1729
1741
  }
1730
1742
  // 'e' can be entered only once in the input.
1731
- if (_.intersection(_.toArray(inputValue), ['e', 'E']).length && _.includes('eE', $event.key)) {
1743
+ if (lodashEs.intersection(lodashEs.toArray(inputValue), ['e', 'E']).length && lodashEs.includes('eE', $event.key)) {
1732
1744
  return false;
1733
1745
  }
1734
- if ((_.includes(inputValue, '+') || _.includes(inputValue, '-')) && ($event.key === '+' || $event.key === '-')) {
1746
+ if ((lodashEs.includes(inputValue, '+') || lodashEs.includes(inputValue, '-')) && ($event.key === '+' || $event.key === '-')) {
1735
1747
  return false;
1736
1748
  }
1737
1749
  // Do not allow user to enter only space without any input value
@@ -2043,7 +2055,7 @@
2043
2055
  return callback();
2044
2056
  });
2045
2057
  }
2046
- else if (!_.includes(['change'], eventName)) {
2058
+ else if (!lodashEs.includes(['change'], eventName)) {
2047
2059
  super.handleEvent(node, eventName, callback, locals);
2048
2060
  }
2049
2061
  }
@@ -2089,7 +2101,7 @@
2089
2101
  }, {
2090
2102
  type: i0.Optional
2091
2103
  }] }], null); })();
2092
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassDebugInfo(RadiosetComponent, { className: "RadiosetComponent", filePath: "radioset/radioset.component.ts", lineNumber: 25 }); })();
2104
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassDebugInfo(RadiosetComponent, { className: "RadiosetComponent", filePath: "radioset/radioset.component.ts", lineNumber: 26 }); })();
2093
2105
 
2094
2106
  const selectProps = new Map([
2095
2107
  ['autofocus', i2.PROP_BOOLEAN],
@@ -2185,7 +2197,7 @@
2185
2197
  }
2186
2198
  // Change event is registered from the template, Prevent the framework from registering one more event
2187
2199
  handleEvent(node, eventName, eventCallback, locals) {
2188
- if (!_.includes(['blur', 'change'], eventName)) {
2200
+ if (!lodashEs.includes(['blur', 'change'], eventName)) {
2189
2201
  super.handleEvent(this.selectEl.nativeElement, eventName, eventCallback, locals);
2190
2202
  }
2191
2203
  }
@@ -2312,7 +2324,7 @@
2312
2324
  type: i0.ViewChild,
2313
2325
  args: ['select', { static: true, read: i0.ElementRef }]
2314
2326
  }] }); })();
2315
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassDebugInfo(SelectComponent, { className: "SelectComponent", filePath: "select/select.component.ts", lineNumber: 23 }); })();
2327
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassDebugInfo(SelectComponent, { className: "SelectComponent", filePath: "select/select.component.ts", lineNumber: 22 }); })();
2316
2328
 
2317
2329
  const switchProps = new Map([
2318
2330
  ['class', i2.PROP_STRING],
@@ -2407,7 +2419,7 @@
2407
2419
  // This function sets the selectedItem by either using compareby fields or selected flag on datasetItems.
2408
2420
  setSelectedValue() {
2409
2421
  if (i1$1.isDefined(this.datavalue) || i1$1.isDefined(this.toBeProcessedDatavalue)) {
2410
- this.selectedItem = _.find(this.datasetItems, { selected: true });
2422
+ this.selectedItem = lodashEs.find(this.datasetItems, { selected: true });
2411
2423
  return;
2412
2424
  }
2413
2425
  // If no value is provided, set first value as default if options are available else set -1 ie no selection
@@ -2426,7 +2438,7 @@
2426
2438
  updateHighlighter(skipAnimation) {
2427
2439
  const handler = $(this.nativeElement).find('span.app-switch-overlay');
2428
2440
  this.setSelectedValue();
2429
- let left, index = this.selectedItem ? _.findIndex(this.datasetItems, { key: this.selectedItem.key }) : -1;
2441
+ let left, index = this.selectedItem ? lodashEs.findIndex(this.datasetItems, { key: this.selectedItem.key }) : -1;
2430
2442
  if (index === undefined || index === null) {
2431
2443
  index = -1;
2432
2444
  }
@@ -2456,7 +2468,7 @@
2456
2468
  }
2457
2469
  this.modelByKey = option.key;
2458
2470
  this.invokeOnTouched();
2459
- if (this.selectedItem && $index === _.findIndex(this.datasetItems, { key: this.selectedItem.key })) {
2471
+ if (this.selectedItem && $index === lodashEs.findIndex(this.datasetItems, { key: this.selectedItem.key })) {
2460
2472
  if (this.datasetItems.length === 2) {
2461
2473
  $index = $index === 1 ? 0 : 1;
2462
2474
  }
@@ -2516,7 +2528,7 @@
2516
2528
  }, {
2517
2529
  type: i0.Optional
2518
2530
  }] }], null); })();
2519
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassDebugInfo(SwitchComponent, { className: "SwitchComponent", filePath: "switch/switch.component.ts", lineNumber: 24 }); })();
2531
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassDebugInfo(SwitchComponent, { className: "SwitchComponent", filePath: "switch/switch.component.ts", lineNumber: 25 }); })();
2520
2532
 
2521
2533
  const inputCalendarTypeProps = new Map([
2522
2534
  ['autocomplete', { value: true, ...i2.PROP_BOOLEAN }],
@@ -3035,7 +3047,7 @@
3035
3047
  type: i0.ViewChild,
3036
3048
  args: ['input', { read: i3.IMaskDirective }]
3037
3049
  }] }); })();
3038
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassDebugInfo(InputTextComponent, { className: "InputTextComponent", filePath: "text/text/input-text.component.ts", lineNumber: 25 }); })();
3050
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassDebugInfo(InputTextComponent, { className: "InputTextComponent", filePath: "text/text/input-text.component.ts", lineNumber: 23 }); })();
3039
3051
 
3040
3052
  const textareaProps = new Map([
3041
3053
  ['autofocus', i2.PROP_BOOLEAN],
@@ -3147,7 +3159,7 @@
3147
3159
  let mobileInputVal;
3148
3160
  // In case of mobile date / time picker check for input element's value which has 'mobile-input' class
3149
3161
  if (this.inputEl.length > 1 && this.inputEl.hasClass('mobile-input')) {
3150
- _.forEach(this.inputEl, (el) => {
3162
+ lodashEs.forEach(this.inputEl, (el) => {
3151
3163
  if ($(el).hasClass('mobile-input') && el.value) {
3152
3164
  mobileInputVal = el.value;
3153
3165
  }
@@ -3394,5 +3406,6 @@
3394
3406
  exports.SelectComponent = SelectComponent;
3395
3407
  exports.SwitchComponent = SwitchComponent;
3396
3408
  exports.TextareaComponent = TextareaComponent;
3409
+ exports.unStringify = unStringify;
3397
3410
 
3398
3411
  }));
@@ -2,6 +2,7 @@ import { AfterViewInit, ElementRef, Injector, OnInit } from '@angular/core';
2
2
  import { NgModel } from '@angular/forms';
3
3
  import { BaseFormCustomComponent } from '../base-form-custom.component';
4
4
  import * as i0 from "@angular/core";
5
+ export declare const unStringify: (val: any, defaultVal?: any) => any;
5
6
  export declare class CheckboxComponent extends BaseFormCustomComponent implements OnInit, AfterViewInit {
6
7
  type: any;
7
8
  static initializeProps: void;
@@ -1,4 +1,4 @@
1
- import { Injector, OnInit, OnDestroy } from '@angular/core';
1
+ import { Injector, OnDestroy, OnInit } from '@angular/core';
2
2
  import { Subject } from 'rxjs';
3
3
  import { DataSetItem, IWidgetConfig } from '@wm/components/base';
4
4
  import { BaseFormCustomComponent } from './base-form-custom.component';
@@ -44,7 +44,7 @@ export declare abstract class DatasetAwareFormComponent extends BaseFormCustomCo
44
44
  set modelByKey(val: any);
45
45
  get datavalue(): any;
46
46
  set datavalue(val: any);
47
- protected constructor(inj: Injector, config: IWidgetConfig, groupby?: string);
47
+ protected constructor(inj: Injector, config: IWidgetConfig, explicitContext: any, groupby?: string);
48
48
  /**
49
49
  * This function sets the _datavalue value from the model and sets the selected flag when item is found.
50
50
  * Here model is the value obtained from ngModel.
@@ -59,7 +59,7 @@ export declare abstract class DatasetAwareFormComponent extends BaseFormCustomCo
59
59
  * @param values represent the datavalue.
60
60
  */
61
61
  protected selectByValue(values: Array<any> | any): void;
62
- protected readonly _debounceDatavalueUpdation: any;
62
+ protected readonly _debounceDatavalueUpdation: import("lodash").DebouncedFunc<(values: any) => void>;
63
63
  protected initDisplayValues(): void;
64
64
  protected initDatasetItems(): void;
65
65
  protected postDatasetItemsInit(): void;
@@ -71,6 +71,6 @@ export declare abstract class DatasetAwareFormComponent extends BaseFormCustomCo
71
71
  onPropertyChange(key: string, nv: any, ov?: any): void;
72
72
  ngOnInit(): void;
73
73
  ngOnDestroy(): void;
74
- static ɵfac: i0.ɵɵFactoryDeclaration<DatasetAwareFormComponent, [null, null, { attribute: "groupby"; }]>;
74
+ static ɵfac: i0.ɵɵFactoryDeclaration<DatasetAwareFormComponent, [null, null, { optional: true; }, { attribute: "groupby"; }]>;
75
75
  static ɵprov: i0.ɵɵInjectableDeclaration<DatasetAwareFormComponent>;
76
76
  }
@@ -1,10 +1,11 @@
1
- import { Injector, Injectable, Inject } from '@angular/core';
1
+ import { Inject, Injectable, Injector, Optional } from '@angular/core';
2
2
  import { DataSource } from '@wm/core';
3
3
  import { StylableComponent, WidgetConfig } from '@wm/components/base';
4
+ import { has, set } from "lodash-es";
4
5
  import * as i0 from "@angular/core";
5
6
  export class BaseFormComponent extends StylableComponent {
6
- constructor(inj, config, initPromise) {
7
- super(inj, config, initPromise);
7
+ constructor(inj, config, explicitContext, initPromise) {
8
+ super(inj, config, explicitContext, initPromise);
8
9
  this.inj = inj;
9
10
  this.binddatavalue = this.$element.attr('datavalue.bind');
10
11
  }
@@ -33,11 +34,11 @@ export class BaseFormComponent extends StylableComponent {
33
34
  }
34
35
  binddatavalue = binddatavalue.replace(/\[\$i\]/g, '[0]');
35
36
  // In case of list widget context will be the listItem.
36
- if (_.has(this.context, binddatavalue.split('.')[0])) {
37
- _.set(this.context, binddatavalue, value);
37
+ if (has(this.context, binddatavalue.split('.')[0])) {
38
+ set(this.context, binddatavalue, value);
38
39
  }
39
40
  else {
40
- _.set(this.viewParent, binddatavalue, value);
41
+ set(this.viewParent, binddatavalue, value);
41
42
  }
42
43
  }
43
44
  invokeOnChange(value, $event) {
@@ -70,7 +71,7 @@ export class BaseFormComponent extends StylableComponent {
70
71
  });
71
72
  }
72
73
  }
73
- static { this.ɵfac = function BaseFormComponent_Factory(t) { return new (t || BaseFormComponent)(i0.ɵɵinject(i0.Injector), i0.ɵɵinject(WidgetConfig), i0.ɵɵinject(Promise)); }; }
74
+ static { this.ɵfac = function BaseFormComponent_Factory(t) { return new (t || BaseFormComponent)(i0.ɵɵinject(i0.Injector), i0.ɵɵinject(WidgetConfig), i0.ɵɵinject('EXPLICIT_CONTEXT', 8), i0.ɵɵinject(Promise)); }; }
74
75
  static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: BaseFormComponent, factory: BaseFormComponent.ɵfac }); }
75
76
  }
76
77
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BaseFormComponent, [{
@@ -78,5 +79,10 @@ export class BaseFormComponent extends StylableComponent {
78
79
  }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
79
80
  type: Inject,
80
81
  args: [WidgetConfig]
82
+ }] }, { type: undefined, decorators: [{
83
+ type: Inject,
84
+ args: ['EXPLICIT_CONTEXT']
85
+ }, {
86
+ type: Optional
81
87
  }] }, { type: Promise }], null); })();
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9kZWZhdWx0L3NyYy9iYXNlLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQWlCLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUVwQyxPQUFPLEVBQWlCLGlCQUFpQixFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUtyRixNQUFNLE9BQWdCLGlCQUFrQixTQUFRLGlCQUFpQjtJQU83RCxZQUNjLEdBQWEsRUFDRCxNQUFxQixFQUMzQyxXQUEwQjtRQUUxQixLQUFLLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUp0QixRQUFHLEdBQUgsR0FBRyxDQUFVO1FBS3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsSUFBSSxTQUFTLENBQUMsU0FBUztRQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxtQkFBbUIsQ0FBQyxLQUFLO1FBQ3JCLElBQUksYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFFdkMsOENBQThDO1FBQzlDLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDMUYsT0FBTztRQUNYLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ2pFLE9BQU87UUFDZixDQUFDO1FBRUQsNkJBQTZCO1FBQzdCLElBQUksQ0FBQyxhQUFhLElBQUksYUFBYSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxhQUFhLENBQUMsVUFBVSxDQUFDLDRCQUE0QixDQUFDLEVBQUUsQ0FBQztZQUNuSCxPQUFPO1FBQ1gsQ0FBQztRQUVELGFBQWEsR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV6RCx1REFBdUQ7UUFDdkQsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDbkQsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM5QyxDQUFDO2FBQU0sQ0FBQztZQUNKLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDakQsQ0FBQztJQUNMLENBQUM7SUFFUyxjQUFjLENBQUMsS0FBSyxFQUFFLE1BQWM7UUFDMUMsNEJBQTRCO1FBQzVCLElBQUksTUFBTSxFQUFFLENBQUM7WUFDVCxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUN4QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUU7b0JBQy9CLE1BQU07b0JBQ04sTUFBTSxFQUFFLEtBQUs7b0JBQ2IsTUFBTSxFQUFFLElBQUksQ0FBQyxhQUFhO2lCQUM3QixDQUFDLENBQUM7WUFDUCxDQUFDO1FBQ0wsQ0FBQztRQUNELDRCQUE0QjtRQUM1QixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBRVMsbUJBQW1CLENBQUMsR0FBUTtRQUNsQyxJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQztJQUM3QixDQUFDO0lBRUQsZUFBZTtRQUNYLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUVoQyxtSkFBbUo7UUFDM0ksSUFBSSxjQUFjLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNyRCxJQUFJLGNBQWMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBUyxNQUFNO2dCQUNqQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLEtBQUssRUFBRSxJQUFJLE1BQU0sQ0FBQyxPQUFPLEtBQUssRUFBRSxJQUFJLE1BQU0sQ0FBQyxPQUFPLEtBQUssRUFBRSxJQUFJLE1BQU0sQ0FBQyxPQUFPLEtBQUssRUFBRSxFQUFFLENBQUM7b0JBQ25HLE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDN0IsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztJQUNMLENBQUM7a0ZBckZpQixpQkFBaUIsd0NBU3ZCLFlBQVk7dUVBVE4saUJBQWlCLFdBQWpCLGlCQUFpQjs7aUZBQWpCLGlCQUFpQjtjQUR0QyxVQUFVOztzQkFVRixNQUFNO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RvciwgQWZ0ZXJWaWV3SW5pdCwgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7RGF0YVNvdXJjZX0gZnJvbSAnQHdtL2NvcmUnO1xuXG5pbXBvcnQgeyBJV2lkZ2V0Q29uZmlnLCBTdHlsYWJsZUNvbXBvbmVudCwgV2lkZ2V0Q29uZmlnIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5cbmRlY2xhcmUgY29uc3QgXztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VGb3JtQ29tcG9uZW50IGV4dGVuZHMgU3R5bGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0e1xuXG4gICAgcHJpdmF0ZSBkYXRhdmFsO1xuICAgIHByaXZhdGUgcHJldkRhdGF2YWx1ZTtcbiAgICBwcm90ZWN0ZWQgYmluZGRhdGF2YWx1ZTogc3RyaW5nO1xuICAgIHByaXZhdGUgZGF0YXZhbHVlc291cmNlOiBhbnk7XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBpbmo6IEluamVjdG9yLFxuICAgICAgICBASW5qZWN0KFdpZGdldENvbmZpZykgY29uZmlnOiBJV2lkZ2V0Q29uZmlnLFxuICAgICAgICBpbml0UHJvbWlzZT86IFByb21pc2U8YW55PlxuICAgICkge1xuICAgICAgICBzdXBlcihpbmosIGNvbmZpZywgaW5pdFByb21pc2UpO1xuICAgICAgICB0aGlzLmJpbmRkYXRhdmFsdWUgPSB0aGlzLiRlbGVtZW50LmF0dHIoJ2RhdGF2YWx1ZS5iaW5kJyk7XG4gICAgfVxuXG4gICAgc2V0IGRhdGF2YWx1ZShkYXRhdmFsdWUpIHtcbiAgICAgICAgdGhpcy5kYXRhdmFsID0gZGF0YXZhbHVlO1xuICAgIH1cblxuICAgIGdldCBkYXRhdmFsdWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGF2YWw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVzcG9uc2libGUgZm9yIHVwZGF0aW5nIHRoZSB2YXJpYWJsZSBib3VuZCB0byB0aGUgd2lkZ2V0J3MgZGF0YXZhbHVlIHByb3BlcnR5LlxuICAgICAqIEBwYXJhbSB2YWx1ZVxuICAgICAqL1xuICAgIHVwZGF0ZUJvdW5kVmFyaWFibGUodmFsdWUpIHtcbiAgICAgICAgbGV0IGJpbmRkYXRhdmFsdWUgPSB0aGlzLmJpbmRkYXRhdmFsdWU7XG5cbiAgICAgICAgLy8gcmV0dXJuIGlmIHRoZSB2YXJpYWJsZSBib3VuZCBpcyBub3Qgc3RhdGljLlxuICAgICAgICBpZiAodGhpcy5kYXRhdmFsdWVzb3VyY2UgJiYgdGhpcy5kYXRhdmFsdWVzb3VyY2UuZXhlY3V0ZShEYXRhU291cmNlLk9wZXJhdGlvbi5JU19BUElfQVdBUkUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5kYXRhdmFsdWVzb3VyY2UgJiYgIXRoaXMuZGF0YXZhbHVlc291cmNlLnR3b1dheUJpbmRpbmcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyByZXR1cm4gaWYgd2lkZ2V0IGlzIGJvdW5kLlxuICAgICAgICBpZiAoIWJpbmRkYXRhdmFsdWUgfHwgYmluZGRhdGF2YWx1ZS5zdGFydHNXaXRoKCdXaWRnZXRzLicpIHx8IGJpbmRkYXRhdmFsdWUuc3RhcnRzV2l0aCgnaXRlbVJlZi5jdXJyZW50SXRlbVdpZGdldHMnKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgYmluZGRhdGF2YWx1ZSA9IGJpbmRkYXRhdmFsdWUucmVwbGFjZSgvXFxbXFwkaVxcXS9nLCAnWzBdJyk7XG5cbiAgICAgICAgLy8gSW4gY2FzZSBvZiBsaXN0IHdpZGdldCBjb250ZXh0IHdpbGwgYmUgdGhlIGxpc3RJdGVtLlxuICAgICAgICBpZiAoXy5oYXModGhpcy5jb250ZXh0LCBiaW5kZGF0YXZhbHVlLnNwbGl0KCcuJylbMF0pKSB7XG4gICAgICAgICAgICBfLnNldCh0aGlzLmNvbnRleHQsIGJpbmRkYXRhdmFsdWUsIHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIF8uc2V0KHRoaXMudmlld1BhcmVudCwgYmluZGRhdGF2YWx1ZSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGludm9rZU9uQ2hhbmdlKHZhbHVlLCAkZXZlbnQ/OiBFdmVudCkge1xuICAgICAgICAvLyBpbnZva2UgdGhlIGV2ZW50IGNhbGxiYWNrXG4gICAgICAgIGlmICgkZXZlbnQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmRhdGF2YWx1ZSAhPT0gdGhpcy5wcmV2RGF0YXZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVCb3VuZFZhcmlhYmxlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ2NoYW5nZScsIHtcbiAgICAgICAgICAgICAgICAgICAgJGV2ZW50LFxuICAgICAgICAgICAgICAgICAgICBuZXdWYWw6IHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBvbGRWYWw6IHRoaXMucHJldkRhdGF2YWx1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIHVwZGF0ZSB0aGUgcHJldmlvdXMgdmFsdWVcbiAgICAgICAgdGhpcy5wcmV2RGF0YXZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHVwZGF0ZVByZXZEYXRhdmFsdWUodmFsOiBhbnkpIHtcbiAgICAgICAgdGhpcy5wcmV2RGF0YXZhbHVlID0gdmFsO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG5cbi8vIFtXTVMtMTg4OTJdLSBzdG9wcGluZyBldmVudCBwcm9wYWdhdGlvbiBbZm9yIEFycm93TGVmdCwgQXJyb3dVcCwgQXJyb3dSaWdodCwgQXJyb3dEb3duIGFjdGlvbnNdICB3aGVuIGZvcm0gd2lkZ2V0cyBvciBmb3JtIGlzIGluc2lkZSBsaXN0IHdpZGdldFxuICAgICAgICBsZXQgcGFyZW50RWxlbUxpc3QgPSAkKHRoaXMubmF0aXZlRWxlbWVudCkucGFyZW50cygpO1xuICAgICAgICBpZiAocGFyZW50RWxlbUxpc3QuY2xvc2VzdCgnW3dtTGlzdF0nKS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuJGVsZW1lbnQua2V5ZG93bihmdW5jdGlvbigkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICBpZiAoJGV2ZW50LmtleUNvZGUgPT09IDM3IHx8ICRldmVudC5rZXlDb2RlID09PSAzOCB8fCAkZXZlbnQua2V5Q29kZSA9PT0gMzkgfHwgJGV2ZW50LmtleUNvZGUgPT09IDQwKSB7XG4gICAgICAgICAgICAgICAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9kZWZhdWx0L3NyYy9iYXNlLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXBGLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFcEMsT0FBTyxFQUFpQixpQkFBaUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRixPQUFPLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxNQUFNLFdBQVcsQ0FBQzs7QUFHbkMsTUFBTSxPQUFnQixpQkFBa0IsU0FBUSxpQkFBaUI7SUFPN0QsWUFDYyxHQUFhLEVBQ0QsTUFBcUIsRUFDSCxlQUFvQixFQUM1RCxXQUEwQjtRQUUxQixLQUFLLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFMdkMsUUFBRyxHQUFILEdBQUcsQ0FBVTtRQU12QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELElBQUksU0FBUyxDQUFDLFNBQVM7UUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsbUJBQW1CLENBQUMsS0FBSztRQUNyQixJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBRXZDLDhDQUE4QztRQUM5QyxJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQzFGLE9BQU87UUFDWCxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNqRSxPQUFPO1FBQ2YsQ0FBQztRQUVELDZCQUE2QjtRQUM3QixJQUFJLENBQUMsYUFBYSxJQUFJLGFBQWEsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksYUFBYSxDQUFDLFVBQVUsQ0FBQyw0QkFBNEIsQ0FBQyxFQUFFLENBQUM7WUFDbkgsT0FBTztRQUNYLENBQUM7UUFFRCxhQUFhLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFekQsdURBQXVEO1FBQ3ZELElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDakQsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVDLENBQUM7YUFBTSxDQUFDO1lBQ0osR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQy9DLENBQUM7SUFDTCxDQUFDO0lBRVMsY0FBYyxDQUFDLEtBQUssRUFBRSxNQUFjO1FBQzFDLDRCQUE0QjtRQUM1QixJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1QsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNoQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFO29CQUMvQixNQUFNO29CQUNOLE1BQU0sRUFBRSxLQUFLO29CQUNiLE1BQU0sRUFBRSxJQUFJLENBQUMsYUFBYTtpQkFDN0IsQ0FBQyxDQUFDO1lBQ1AsQ0FBQztRQUNMLENBQUM7UUFDRCw0QkFBNEI7UUFDNUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQUVTLG1CQUFtQixDQUFDLEdBQVE7UUFDbEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUM7SUFDN0IsQ0FBQztJQUVELGVBQWU7UUFDWCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFaEMsbUpBQW1KO1FBQzNJLElBQUksY0FBYyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDckQsSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVMsTUFBTTtnQkFDakMsSUFBSSxNQUFNLENBQUMsT0FBTyxLQUFLLEVBQUUsSUFBSSxNQUFNLENBQUMsT0FBTyxLQUFLLEVBQUUsSUFBSSxNQUFNLENBQUMsT0FBTyxLQUFLLEVBQUUsSUFBSSxNQUFNLENBQUMsT0FBTyxLQUFLLEVBQUUsRUFBRSxDQUFDO29CQUNuRyxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQzdCLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7SUFDTCxDQUFDO2tGQXRGaUIsaUJBQWlCLHdDQVN2QixZQUFZLGVBQ1osa0JBQWtCO3VFQVZaLGlCQUFpQixXQUFqQixpQkFBaUI7O2lGQUFqQixpQkFBaUI7Y0FEdEMsVUFBVTs7c0JBVUYsTUFBTTt1QkFBQyxZQUFZOztzQkFDbkIsTUFBTTt1QkFBQyxrQkFBa0I7O3NCQUFHLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtEYXRhU291cmNlfSBmcm9tICdAd20vY29yZSc7XG5cbmltcG9ydCB7IElXaWRnZXRDb25maWcsIFN0eWxhYmxlQ29tcG9uZW50LCBXaWRnZXRDb25maWcgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcbmltcG9ydCB7aGFzLCBzZXR9IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VGb3JtQ29tcG9uZW50IGV4dGVuZHMgU3R5bGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0e1xuXG4gICAgcHJpdmF0ZSBkYXRhdmFsO1xuICAgIHByaXZhdGUgcHJldkRhdGF2YWx1ZTtcbiAgICBwcm90ZWN0ZWQgYmluZGRhdGF2YWx1ZTogc3RyaW5nO1xuICAgIHByaXZhdGUgZGF0YXZhbHVlc291cmNlOiBhbnk7XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBpbmo6IEluamVjdG9yLFxuICAgICAgICBASW5qZWN0KFdpZGdldENvbmZpZykgY29uZmlnOiBJV2lkZ2V0Q29uZmlnLFxuICAgICAgICBASW5qZWN0KCdFWFBMSUNJVF9DT05URVhUJykgQE9wdGlvbmFsKCkgZXhwbGljaXRDb250ZXh0OiBhbnksXG4gICAgICAgIGluaXRQcm9taXNlPzogUHJvbWlzZTxhbnk+XG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGluaiwgY29uZmlnLCBleHBsaWNpdENvbnRleHQsIGluaXRQcm9taXNlKTtcbiAgICAgICAgdGhpcy5iaW5kZGF0YXZhbHVlID0gdGhpcy4kZWxlbWVudC5hdHRyKCdkYXRhdmFsdWUuYmluZCcpO1xuICAgIH1cblxuICAgIHNldCBkYXRhdmFsdWUoZGF0YXZhbHVlKSB7XG4gICAgICAgIHRoaXMuZGF0YXZhbCA9IGRhdGF2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgZGF0YXZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhdmFsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlc3BvbnNpYmxlIGZvciB1cGRhdGluZyB0aGUgdmFyaWFibGUgYm91bmQgdG8gdGhlIHdpZGdldCdzIGRhdGF2YWx1ZSBwcm9wZXJ0eS5cbiAgICAgKiBAcGFyYW0gdmFsdWVcbiAgICAgKi9cbiAgICB1cGRhdGVCb3VuZFZhcmlhYmxlKHZhbHVlKSB7XG4gICAgICAgIGxldCBiaW5kZGF0YXZhbHVlID0gdGhpcy5iaW5kZGF0YXZhbHVlO1xuXG4gICAgICAgIC8vIHJldHVybiBpZiB0aGUgdmFyaWFibGUgYm91bmQgaXMgbm90IHN0YXRpYy5cbiAgICAgICAgaWYgKHRoaXMuZGF0YXZhbHVlc291cmNlICYmIHRoaXMuZGF0YXZhbHVlc291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uSVNfQVBJX0FXQVJFKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZGF0YXZhbHVlc291cmNlICYmICF0aGlzLmRhdGF2YWx1ZXNvdXJjZS50d29XYXlCaW5kaW5nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gcmV0dXJuIGlmIHdpZGdldCBpcyBib3VuZC5cbiAgICAgICAgaWYgKCFiaW5kZGF0YXZhbHVlIHx8IGJpbmRkYXRhdmFsdWUuc3RhcnRzV2l0aCgnV2lkZ2V0cy4nKSB8fCBiaW5kZGF0YXZhbHVlLnN0YXJ0c1dpdGgoJ2l0ZW1SZWYuY3VycmVudEl0ZW1XaWRnZXRzJykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGJpbmRkYXRhdmFsdWUgPSBiaW5kZGF0YXZhbHVlLnJlcGxhY2UoL1xcW1xcJGlcXF0vZywgJ1swXScpO1xuXG4gICAgICAgIC8vIEluIGNhc2Ugb2YgbGlzdCB3aWRnZXQgY29udGV4dCB3aWxsIGJlIHRoZSBsaXN0SXRlbS5cbiAgICAgICAgaWYgKGhhcyh0aGlzLmNvbnRleHQsIGJpbmRkYXRhdmFsdWUuc3BsaXQoJy4nKVswXSkpIHtcbiAgICAgICAgICAgIHNldCh0aGlzLmNvbnRleHQsIGJpbmRkYXRhdmFsdWUsIHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNldCh0aGlzLnZpZXdQYXJlbnQsIGJpbmRkYXRhdmFsdWUsIHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBpbnZva2VPbkNoYW5nZSh2YWx1ZSwgJGV2ZW50PzogRXZlbnQpIHtcbiAgICAgICAgLy8gaW52b2tlIHRoZSBldmVudCBjYWxsYmFja1xuICAgICAgICBpZiAoJGV2ZW50KSB7XG4gICAgICAgICAgICBpZiAodGhpcy5kYXRhdmFsdWUgIT09IHRoaXMucHJldkRhdGF2YWx1ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlQm91bmRWYXJpYWJsZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdjaGFuZ2UnLCB7XG4gICAgICAgICAgICAgICAgICAgICRldmVudCxcbiAgICAgICAgICAgICAgICAgICAgbmV3VmFsOiB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgb2xkVmFsOiB0aGlzLnByZXZEYXRhdmFsdWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyB1cGRhdGUgdGhlIHByZXZpb3VzIHZhbHVlXG4gICAgICAgIHRoaXMucHJldkRhdGF2YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB1cGRhdGVQcmV2RGF0YXZhbHVlKHZhbDogYW55KSB7XG4gICAgICAgIHRoaXMucHJldkRhdGF2YWx1ZSA9IHZhbDtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuXG4vLyBbV01TLTE4ODkyXS0gc3RvcHBpbmcgZXZlbnQgcHJvcGFnYXRpb24gW2ZvciBBcnJvd0xlZnQsIEFycm93VXAsIEFycm93UmlnaHQsIEFycm93RG93biBhY3Rpb25zXSAgd2hlbiBmb3JtIHdpZGdldHMgb3IgZm9ybSBpcyBpbnNpZGUgbGlzdCB3aWRnZXRcbiAgICAgICAgbGV0IHBhcmVudEVsZW1MaXN0ID0gJCh0aGlzLm5hdGl2ZUVsZW1lbnQpLnBhcmVudHMoKTtcbiAgICAgICAgaWYgKHBhcmVudEVsZW1MaXN0LmNsb3Nlc3QoJ1t3bUxpc3RdJykubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLiRlbGVtZW50LmtleWRvd24oZnVuY3Rpb24oJGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgaWYgKCRldmVudC5rZXlDb2RlID09PSAzNyB8fCAkZXZlbnQua2V5Q29kZSA9PT0gMzggfHwgJGV2ZW50LmtleUNvZGUgPT09IDM5IHx8ICRldmVudC5rZXlDb2RlID09PSA0MCkge1xuICAgICAgICAgICAgICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=