@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
@@ -137,4 +137,4 @@ export class ListItemDirective {
137
137
  }], wmListItem: [{
138
138
  type: Input
139
139
  }] }); })();
140
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1pdGVtLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9kYXRhL2xpc3Qvc3JjL2xpc3QtaXRlbS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdILFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixRQUFRLEVBQ1IsS0FBSyxFQUVMLFFBQVEsRUFDRyxnQkFBZ0IsRUFDOUIsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzQyxPQUFPLEVBQWtCLE1BQU0sRUFBRSxHQUFHLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7O0FBUWpELE1BQU0sT0FBTyxpQkFBaUI7SUFpQjFCLE9BQU87UUFDSCw2REFBNkQ7UUFDN0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7SUFDL0MsQ0FBQztJQUVELElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksSUFBSTtRQUNKLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ2xCLE1BQU0saUJBQWlC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QUFFLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ3pELElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFDO1lBQ2pGLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUNELDJDQUEyQztRQUMzQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxlQUFlO1FBQ1gsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDNUIsQ0FBQztrRkE1SFEsaUJBQWlCO29FQUFqQixpQkFBaUI7WUFBakIsc0ZBQUEsYUFBUyxJQUFROztZQUFqQixzQ0FBaUIsaUNBQUE7OztpRkFBakIsaUJBQWlCO2NBSjdCLFNBQVM7ZUFBQztnQkFDUCxRQUFRLEVBQUUsY0FBYztnQkFDeEIsUUFBUSxFQUFFLGFBQWE7YUFDMUI7O3NCQXVENEUsUUFBUTtxQkF6Q3BELFFBQVE7a0JBQXBDLFdBQVc7bUJBQUMsY0FBYztZQUNRLFdBQVc7a0JBQTdDLFdBQVc7bUJBQUMsb0JBQW9CO1lBR2pDLE9BQU87a0JBRE4sWUFBWTttQkFBQyxPQUFPO1lBa0NSLFVBQVU7a0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3RvcixcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgUXVlcnlMaXN0LCBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdGb3JPZkNvbnRleHQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7JGludm9rZVdhdGNoZXJzLCAkd2F0Y2gsIEFwcH0gZnJvbSAnQHdtL2NvcmUnO1xuXG5pbXBvcnQgeyBMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9saXN0LmNvbXBvbmVudCc7XG5cbmRlY2xhcmUgY29uc3QgJCwgXztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbd21MaXN0SXRlbV0nLFxuICAgIGV4cG9ydEFzOiAnbGlzdEl0ZW1SZWYnXG59KVxuZXhwb3J0IGNsYXNzIExpc3RJdGVtRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcblxuICAgIHB1YmxpYyBpdGVtO1xuICAgIHB1YmxpYyBjb250ZXh0O1xuICAgIHB1YmxpYyBkZXN0cm95OiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdCgpO1xuICAgIHB1YmxpYyBkZXN0cm95JDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5kZXN0cm95LmFzT2JzZXJ2YWJsZSgpO1xuICAgIHB1YmxpYyBuYXRpdmVFbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgICBwdWJsaWMgcmVhZG9ubHkgbGlzdENvbXBvbmVudDogTGlzdENvbXBvbmVudDtcblxuICAgIHByaXZhdGUgaXRlbUNsYXNzID0gJyc7XG4gICAgcHJpdmF0ZSBfY3VycmVudEl0ZW1XaWRnZXRzID0ge307XG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hY3RpdmUnKSBpc0FjdGl2ZSA9IGZhbHNlO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZGlzYWJsZS1pdGVtJykgZGlzYWJsZUl0ZW0gPSBmYWxzZTtcblxuICAgIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzJylcbiAgICBvbkZvY3VzKCkge1xuICAgICAgICAvLyBtYWludGFpbnMgd2hpY2ggZWxlbWVudCBpcyBmb2N1c2VkL3NlbGVjdGVkIG1vc3QgcmVjZW50bHkuXG4gICAgICAgIHRoaXMubGlzdENvbXBvbmVudC5sYXN0U2VsZWN0ZWRJdGVtID0gdGhpcztcbiAgICB9XG5cbiAgICBnZXQgJGluZGV4KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZXh0LmluZGV4O1xuICAgIH1cblxuICAgIGdldCAkZXZlbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGV4dC5ldmVuO1xuICAgIH1cblxuICAgIGdldCAkb2RkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZXh0Lm9kZDtcbiAgICB9XG5cbiAgICBnZXQgJGZpcnN0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZXh0LmZpcnN0O1xuICAgIH1cblxuICAgIGdldCAkbGFzdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGV4dC5sYXN0O1xuICAgIH1cblxuICAgIGdldCBjdXJyZW50SXRlbVdpZGdldHMgKCkge1xuICAgICAgICBjb25zdCBjb21wb25lbnRFbGVtZW50cyA9IEFycmF5LmZyb20odGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1t3aWRnZXQtaWRdJykpO1xuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih0aGlzLl9jdXJyZW50SXRlbVdpZGdldHMsIGNvbXBvbmVudEVsZW1lbnRzLnJlZHVjZSgocmVzdWx0LCBjb21wOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHJlc3VsdFtjb21wLndpZGdldC5uYW1lXSA9IGNvbXAud2lkZ2V0O1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSwge30pKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgd21MaXN0SXRlbSh2YWwpIHtcbiAgICAgICAgdGhpcy5pdGVtID0gdmFsO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qOiBJbmplY3RvciwgZWxSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgYXBwOiBBcHAsIEBPcHRpb25hbCgpIHB1YmxpYyBfdmlld1BhcmVudDogTGlzdENvbXBvbmVudCkge1xuICAgICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYgPSBpbmouZ2V0KFZpZXdDb250YWluZXJSZWYpO1xuICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQgPSBlbFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICB0aGlzLmxpc3RDb21wb25lbnQgPSBfdmlld1BhcmVudDtcbiAgICAgICAgLy8gdGhpcy5jb250ZXh0ID0gKDxOZ0Zvck9mQ29udGV4dDxMaXN0SXRlbURpcmVjdGl2ZT4+KDxhbnk+aW5qKS52aWV3LmNvbnRleHQpO1xuICAgICAgICB0aGlzLmNvbnRleHQgPSAodGhpcy5pbmogYXMgYW55KS5fbFZpZXdbOF07XG4gICAgICAgIC8vdGhpcy5jb250ZXh0ID0gKHRoaXMudmlld0NvbnRhaW5lclJlZiBhcyBhbnkpLl9ob3N0TFZpZXcuZmluZCh0ID0+IHQgJiYgISF0LiRpbXBsaWNpdCk7XG4gICAgICAgIHRoaXMuaXRlbUNsYXNzV2F0Y2hlcih0aGlzLmxpc3RDb21wb25lbnQpO1xuICAgICAgICB0aGlzLmRpc2FibGVJdGVtV2F0Y2hlcih0aGlzLmxpc3RDb21wb25lbnQpO1xuICAgICAgICAkKHRoaXMubmF0aXZlRWxlbWVudCkuZGF0YSgnbGlzdEl0ZW1Db250ZXh0JywgdGhpcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWdpc3RlcldhdGNoKGV4cHJlc3Npb246IHN0cmluZywgY2FsbGJhY2s6IEZ1bmN0aW9uKSB7XG4gICAgICAgIC8vIFJlbW92aW5nIG5nRm9yIGNvbnRleHQgYXMgdGhlIHNhbWUgcHJvcGVydGllcyBhcmUgYXZhaWxibGUgb24gbGlzdGl0ZW0gc2NvcGUuXG4gICAgICAgIC8vIHBhc3Npbmcgdmlld3BhcmVudCBjb250ZXh0IGZvciBhY2Nlc3NpbmcgdmFyaWJhbGVzIGFuZCB3aWRnZXRzLlxuICAgICAgICAvL1tDU1BdOiBleHByZXNzaW9uIHdpbGwgYmUgZ2VuZXJhdGVkIGluIHRoZSBjb21wb25lbnQgYXMgZS5nLiAnaXRlbS5jbGFzc05hbWUnXG4gICAgICAgIHRoaXMuZGVzdHJveSQuc3Vic2NyaWJlKCR3YXRjaChleHByZXNzaW9uLCAodGhpcy5saXN0Q29tcG9uZW50IGFzIGFueSkudmlld1BhcmVudCwgdGhpcywgY2FsbGJhY2spKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGl0ZW1DbGFzc1dhdGNoZXIobGlzdENvbXBvbmVudDogTGlzdENvbXBvbmVudCkge1xuICAgICAgICBpZiAobGlzdENvbXBvbmVudC5iaW5kaXRlbWNsYXNzKSB7XG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyV2F0Y2gobGlzdENvbXBvbmVudC5iaW5kaXRlbWNsYXNzLCBudiA9PiB0aGlzLml0ZW1DbGFzcyA9IG52IHx8ICcnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaXRlbUNsYXNzID0gbGlzdENvbXBvbmVudC5pdGVtY2xhc3M7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGRpc2FibGVJdGVtV2F0Y2hlcigkbGlzdDogTGlzdENvbXBvbmVudCkge1xuICAgICAgICBpZiAoJGxpc3QuYmluZGRpc2FibGVpdGVtKSB7XG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyV2F0Y2goJGxpc3QuYmluZGRpc2FibGVpdGVtLCBudiA9PiB0aGlzLmRpc2FibGVJdGVtID0gbnYgfHwgZmFsc2UpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kaXNhYmxlSXRlbSA9ICRsaXN0LmRpc2FibGVpdGVtIHx8IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRVcENVREhhbmRsZXJzKCkge1xuICAgICAgICBjb25zdCAkZWRpdEl0ZW0gPSB0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmVkaXQtbGlzdC1pdGVtJyk7XG4gICAgICAgIGNvbnN0ICRkZWxldGVJdGVtID0gdGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5kZWxldGUtbGlzdC1pdGVtJyk7XG5cbiAgICAgICAgaWYgKCRlZGl0SXRlbSkge1xuICAgICAgICAgICAgLy8gVHJpZ2dlcmVkIG9uIGNsaWNrIG9mIGVkaXQgYWN0aW9uXG4gICAgICAgICAgICAkZWRpdEl0ZW0uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBldnQgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubGlzdENvbXBvbmVudC51cGRhdGUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCRkZWxldGVJdGVtKSB7XG4gICAgICAgICAgICAvLyBUcmlnZ2VyZWQgb24gY2xpY2sgb2YgZGVsZXRlIGFjdGlvblxuICAgICAgICAgICAgJGRlbGV0ZUl0ZW0uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBldnQgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubGlzdENvbXBvbmVudC5kZWxldGUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAodGhpcy5saXN0Q29tcG9uZW50Lm1vdXNlRW50ZXJDQikge1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCAoJGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5saXN0Q29tcG9uZW50Lmludm9rZUV2ZW50Q2FsbGJhY2soJ21vdXNlZW50ZXInLCB7d2lkZ2V0OiB0aGlzLCAkZXZlbnR9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmxpc3RDb21wb25lbnQubW91c2VMZWF2ZUNCKSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsICgkZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxpc3RDb21wb25lbnQuaW52b2tlRXZlbnRDYWxsYmFjaygnbW91c2VsZWF2ZScsIHt3aWRnZXQ6IHRoaXMsICRldmVudH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gYWRkaW5nIGl0ZW0gYXR0cmlidXRlIG9uIGV2ZXJ5IGxpc3QgaXRlbVxuICAgICAgICAkKHRoaXMubmF0aXZlRWxlbWVudCkuYXR0cignbGlzdGl0ZW1pbmRleCcsIHRoaXMuJGluZGV4KTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMuc2V0VXBDVURIYW5kbGVycygpO1xuICAgIH1cbn1cbiJdfQ==
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1pdGVtLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9kYXRhL2xpc3Qvc3JjL2xpc3QtaXRlbS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdILFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixRQUFRLEVBQ1IsS0FBSyxFQUVMLFFBQVEsRUFDRyxnQkFBZ0IsRUFDOUIsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzQyxPQUFPLEVBQWtCLE1BQU0sRUFBRSxHQUFHLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7O0FBUWpELE1BQU0sT0FBTyxpQkFBaUI7SUFpQjFCLE9BQU87UUFDSCw2REFBNkQ7UUFDN0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7SUFDL0MsQ0FBQztJQUVELElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksSUFBSTtRQUNKLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ2xCLE1BQU0saUJBQWlC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QUFFLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ3pELElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFDO1lBQ2pGLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUNELDJDQUEyQztRQUMzQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxlQUFlO1FBQ1gsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDNUIsQ0FBQztrRkE1SFEsaUJBQWlCO29FQUFqQixpQkFBaUI7WUFBakIsc0ZBQUEsYUFBUyxJQUFROztZQUFqQixzQ0FBaUIsaUNBQUE7OztpRkFBakIsaUJBQWlCO2NBSjdCLFNBQVM7ZUFBQztnQkFDUCxRQUFRLEVBQUUsY0FBYztnQkFDeEIsUUFBUSxFQUFFLGFBQWE7YUFDMUI7O3NCQXVENEUsUUFBUTtxQkF6Q3BELFFBQVE7a0JBQXBDLFdBQVc7bUJBQUMsY0FBYztZQUNRLFdBQVc7a0JBQTdDLFdBQVc7bUJBQUMsb0JBQW9CO1lBR2pDLE9BQU87a0JBRE4sWUFBWTttQkFBQyxPQUFPO1lBa0NSLFVBQVU7a0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3RvcixcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgUXVlcnlMaXN0LCBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdGb3JPZkNvbnRleHQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7JGludm9rZVdhdGNoZXJzLCAkd2F0Y2gsIEFwcH0gZnJvbSAnQHdtL2NvcmUnO1xuXG5pbXBvcnQgeyBMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9saXN0LmNvbXBvbmVudCc7XG5cbmRlY2xhcmUgY29uc3QgJDtcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbd21MaXN0SXRlbV0nLFxuICAgIGV4cG9ydEFzOiAnbGlzdEl0ZW1SZWYnXG59KVxuZXhwb3J0IGNsYXNzIExpc3RJdGVtRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcblxuICAgIHB1YmxpYyBpdGVtO1xuICAgIHB1YmxpYyBjb250ZXh0O1xuICAgIHB1YmxpYyBkZXN0cm95OiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdCgpO1xuICAgIHB1YmxpYyBkZXN0cm95JDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5kZXN0cm95LmFzT2JzZXJ2YWJsZSgpO1xuICAgIHB1YmxpYyBuYXRpdmVFbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgICBwdWJsaWMgcmVhZG9ubHkgbGlzdENvbXBvbmVudDogTGlzdENvbXBvbmVudDtcblxuICAgIHByaXZhdGUgaXRlbUNsYXNzID0gJyc7XG4gICAgcHJpdmF0ZSBfY3VycmVudEl0ZW1XaWRnZXRzID0ge307XG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hY3RpdmUnKSBpc0FjdGl2ZSA9IGZhbHNlO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZGlzYWJsZS1pdGVtJykgZGlzYWJsZUl0ZW0gPSBmYWxzZTtcblxuICAgIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzJylcbiAgICBvbkZvY3VzKCkge1xuICAgICAgICAvLyBtYWludGFpbnMgd2hpY2ggZWxlbWVudCBpcyBmb2N1c2VkL3NlbGVjdGVkIG1vc3QgcmVjZW50bHkuXG4gICAgICAgIHRoaXMubGlzdENvbXBvbmVudC5sYXN0U2VsZWN0ZWRJdGVtID0gdGhpcztcbiAgICB9XG5cbiAgICBnZXQgJGluZGV4KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZXh0LmluZGV4O1xuICAgIH1cblxuICAgIGdldCAkZXZlbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGV4dC5ldmVuO1xuICAgIH1cblxuICAgIGdldCAkb2RkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZXh0Lm9kZDtcbiAgICB9XG5cbiAgICBnZXQgJGZpcnN0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZXh0LmZpcnN0O1xuICAgIH1cblxuICAgIGdldCAkbGFzdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGV4dC5sYXN0O1xuICAgIH1cblxuICAgIGdldCBjdXJyZW50SXRlbVdpZGdldHMgKCkge1xuICAgICAgICBjb25zdCBjb21wb25lbnRFbGVtZW50cyA9IEFycmF5LmZyb20odGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1t3aWRnZXQtaWRdJykpO1xuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih0aGlzLl9jdXJyZW50SXRlbVdpZGdldHMsIGNvbXBvbmVudEVsZW1lbnRzLnJlZHVjZSgocmVzdWx0LCBjb21wOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHJlc3VsdFtjb21wLndpZGdldC5uYW1lXSA9IGNvbXAud2lkZ2V0O1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSwge30pKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgd21MaXN0SXRlbSh2YWwpIHtcbiAgICAgICAgdGhpcy5pdGVtID0gdmFsO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qOiBJbmplY3RvciwgZWxSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgYXBwOiBBcHAsIEBPcHRpb25hbCgpIHB1YmxpYyBfdmlld1BhcmVudDogTGlzdENvbXBvbmVudCkge1xuICAgICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYgPSBpbmouZ2V0KFZpZXdDb250YWluZXJSZWYpO1xuICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQgPSBlbFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICB0aGlzLmxpc3RDb21wb25lbnQgPSBfdmlld1BhcmVudDtcbiAgICAgICAgLy8gdGhpcy5jb250ZXh0ID0gKDxOZ0Zvck9mQ29udGV4dDxMaXN0SXRlbURpcmVjdGl2ZT4+KDxhbnk+aW5qKS52aWV3LmNvbnRleHQpO1xuICAgICAgICB0aGlzLmNvbnRleHQgPSAodGhpcy5pbmogYXMgYW55KS5fbFZpZXdbOF07XG4gICAgICAgIC8vdGhpcy5jb250ZXh0ID0gKHRoaXMudmlld0NvbnRhaW5lclJlZiBhcyBhbnkpLl9ob3N0TFZpZXcuZmluZCh0ID0+IHQgJiYgISF0LiRpbXBsaWNpdCk7XG4gICAgICAgIHRoaXMuaXRlbUNsYXNzV2F0Y2hlcih0aGlzLmxpc3RDb21wb25lbnQpO1xuICAgICAgICB0aGlzLmRpc2FibGVJdGVtV2F0Y2hlcih0aGlzLmxpc3RDb21wb25lbnQpO1xuICAgICAgICAkKHRoaXMubmF0aXZlRWxlbWVudCkuZGF0YSgnbGlzdEl0ZW1Db250ZXh0JywgdGhpcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWdpc3RlcldhdGNoKGV4cHJlc3Npb246IHN0cmluZywgY2FsbGJhY2s6IEZ1bmN0aW9uKSB7XG4gICAgICAgIC8vIFJlbW92aW5nIG5nRm9yIGNvbnRleHQgYXMgdGhlIHNhbWUgcHJvcGVydGllcyBhcmUgYXZhaWxibGUgb24gbGlzdGl0ZW0gc2NvcGUuXG4gICAgICAgIC8vIHBhc3Npbmcgdmlld3BhcmVudCBjb250ZXh0IGZvciBhY2Nlc3NpbmcgdmFyaWJhbGVzIGFuZCB3aWRnZXRzLlxuICAgICAgICAvL1tDU1BdOiBleHByZXNzaW9uIHdpbGwgYmUgZ2VuZXJhdGVkIGluIHRoZSBjb21wb25lbnQgYXMgZS5nLiAnaXRlbS5jbGFzc05hbWUnXG4gICAgICAgIHRoaXMuZGVzdHJveSQuc3Vic2NyaWJlKCR3YXRjaChleHByZXNzaW9uLCAodGhpcy5saXN0Q29tcG9uZW50IGFzIGFueSkudmlld1BhcmVudCwgdGhpcywgY2FsbGJhY2spKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGl0ZW1DbGFzc1dhdGNoZXIobGlzdENvbXBvbmVudDogTGlzdENvbXBvbmVudCkge1xuICAgICAgICBpZiAobGlzdENvbXBvbmVudC5iaW5kaXRlbWNsYXNzKSB7XG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyV2F0Y2gobGlzdENvbXBvbmVudC5iaW5kaXRlbWNsYXNzLCBudiA9PiB0aGlzLml0ZW1DbGFzcyA9IG52IHx8ICcnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaXRlbUNsYXNzID0gbGlzdENvbXBvbmVudC5pdGVtY2xhc3M7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGRpc2FibGVJdGVtV2F0Y2hlcigkbGlzdDogTGlzdENvbXBvbmVudCkge1xuICAgICAgICBpZiAoJGxpc3QuYmluZGRpc2FibGVpdGVtKSB7XG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyV2F0Y2goJGxpc3QuYmluZGRpc2FibGVpdGVtLCBudiA9PiB0aGlzLmRpc2FibGVJdGVtID0gbnYgfHwgZmFsc2UpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kaXNhYmxlSXRlbSA9ICRsaXN0LmRpc2FibGVpdGVtIHx8IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRVcENVREhhbmRsZXJzKCkge1xuICAgICAgICBjb25zdCAkZWRpdEl0ZW0gPSB0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmVkaXQtbGlzdC1pdGVtJyk7XG4gICAgICAgIGNvbnN0ICRkZWxldGVJdGVtID0gdGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5kZWxldGUtbGlzdC1pdGVtJyk7XG5cbiAgICAgICAgaWYgKCRlZGl0SXRlbSkge1xuICAgICAgICAgICAgLy8gVHJpZ2dlcmVkIG9uIGNsaWNrIG9mIGVkaXQgYWN0aW9uXG4gICAgICAgICAgICAkZWRpdEl0ZW0uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBldnQgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubGlzdENvbXBvbmVudC51cGRhdGUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCRkZWxldGVJdGVtKSB7XG4gICAgICAgICAgICAvLyBUcmlnZ2VyZWQgb24gY2xpY2sgb2YgZGVsZXRlIGFjdGlvblxuICAgICAgICAgICAgJGRlbGV0ZUl0ZW0uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBldnQgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubGlzdENvbXBvbmVudC5kZWxldGUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAodGhpcy5saXN0Q29tcG9uZW50Lm1vdXNlRW50ZXJDQikge1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCAoJGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5saXN0Q29tcG9uZW50Lmludm9rZUV2ZW50Q2FsbGJhY2soJ21vdXNlZW50ZXInLCB7d2lkZ2V0OiB0aGlzLCAkZXZlbnR9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmxpc3RDb21wb25lbnQubW91c2VMZWF2ZUNCKSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsICgkZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxpc3RDb21wb25lbnQuaW52b2tlRXZlbnRDYWxsYmFjaygnbW91c2VsZWF2ZScsIHt3aWRnZXQ6IHRoaXMsICRldmVudH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gYWRkaW5nIGl0ZW0gYXR0cmlidXRlIG9uIGV2ZXJ5IGxpc3QgaXRlbVxuICAgICAgICAkKHRoaXMubmF0aXZlRWxlbWVudCkuYXR0cignbGlzdGl0ZW1pbmRleCcsIHRoaXMuJGluZGV4KTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMuc2V0VXBDVURIYW5kbGVycygpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,4 +1,5 @@
1
1
  import { SwipeAnimation } from '@swipey';
2
+ import { map, reduce } from "lodash-es";
2
3
  export class ListAnimator extends SwipeAnimation {
3
4
  constructor(list) {
4
5
  super();
@@ -28,7 +29,7 @@ export class ListAnimator extends SwipeAnimation {
28
29
  }
29
30
  // Returns the total width occupied by all the children inside the element
30
31
  computeTotalChildrenWidth($ele) {
31
- return _.reduce($ele.children(), (totalWidth, el) => {
32
+ return reduce($ele.children(), (totalWidth, el) => {
32
33
  return totalWidth + $(el).outerWidth();
33
34
  }, 0);
34
35
  }
@@ -37,7 +38,8 @@ export class ListAnimator extends SwipeAnimation {
37
38
  const totalWidth = this.computeTotalChildrenWidth($ele);
38
39
  const reverse = this.position === 'right';
39
40
  let d = 0;
40
- return _.map($ele.children(), e => {
41
+ // @ts-ignore
42
+ return map($ele.children(), e => {
41
43
  const f = (totalWidth - d) / totalWidth;
42
44
  d += $(e).outerWidth();
43
45
  return reverse ? f : (d / totalWidth);
@@ -228,4 +230,4 @@ export class ListAnimator extends SwipeAnimation {
228
230
  return 10;
229
231
  }
230
232
  }
231
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5hbmltYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9kYXRhL2xpc3Qvc3JjL2xpc3QuYW5pbWF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQU96QyxNQUFNLE9BQU8sWUFBYSxTQUFRLGNBQWM7SUFZNUMsWUFBb0IsSUFBbUI7UUFDbkMsS0FBSyxFQUFFLENBQUM7UUFEUSxTQUFJLEdBQUosSUFBSSxDQUFlO1FBRW5DLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRXJGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxvREFBb0QsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNwRyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMscURBQXFELENBQUMsQ0FBQyxNQUFNLENBQUM7UUFFdEcscUZBQXFGO1FBQ3JGLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUN0RCxPQUFPO1FBQ1gsQ0FBQztRQUVELG9EQUFvRDtRQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVwQixpRkFBaUY7UUFDakYsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxD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QUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO2dCQUU5SCx3SEFBd0g7Z0JBQ3hILElBQUksY0FBYyxHQUFHLEVBQUUsRUFBRSxDQUFDO29CQUN0Qix5QkFBeUI7b0JBQ3pCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDcEMsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVNLE9BQU87UUFDVixJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ25CLENBQUM7SUFDTCxDQUFDO0lBRU0sT0FBTztRQUNWLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDbkIsQ0FBQztJQUNMLENBQUM7SUFFTSxTQUFTO1FBQ1osT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTd2lwZUFuaW1hdGlvbiB9IGZyb20gJ0Bzd2lwZXknO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvaW5wdXQnO1xuXG5pbXBvcnQgeyBMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9saXN0LmNvbXBvbmVudCc7XG5cbmRlY2xhcmUgIGNvbnN0IF8sICQ7XG5cbmV4cG9ydCBjbGFzcyBMaXN0QW5pbWF0b3IgZXh0ZW5kcyBTd2lwZUFuaW1hdGlvbiB7XG4gICAgcHJpdmF0ZSAkZWw6IEpRdWVyeTxIVE1MRWxlbWVudD47XG4gICAgcHJpdmF0ZSBsaTogSlF1ZXJ5PEhUTUxFbGVtZW50PjtcbiAgICBwcml2YXRlIGxpbWl0OiBudW1iZXI7XG4gICAgcHJpdmF0ZSB0cmFuc2l0aW9uUHJvcG9ydGlvbnM6IGFueTtcbiAgICBwcml2YXRlIHJpZ2h0Q2hpbGRyZW5Db3VudDogbnVtYmVyO1xuICAgIHByaXZhdGUgbGVmdENoaWxkcmVuQ291bnQ6IG51bWJlcjtcbiAgICBwcml2YXRlIHBvc2l0aW9uOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBhY3Rpb25QYW5lbDogSlF1ZXJ5PEhUTUxFbGVtZW50PjtcbiAgICBwcml2YXRlIGFjdGlvbkl0ZW1zOiBRdWVyeUxpc3Q8QnV0dG9uQ29tcG9uZW50PjtcbiAgICBwdWJsaWMgJGJ0blN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBsaXN0OiBMaXN0Q29tcG9uZW50KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuJGVsID0gJCh0aGlzLmxpc3QuZ2V0TmF0aXZlRWxlbWVudCgpKS5maW5kKCd1bC5hcHAtbGl2ZWxpc3QtY29udGFpbmVyJykuZmlyc3QoKTtcblxuICAgICAgICB0aGlzLmxlZnRDaGlsZHJlbkNvdW50ID0gdGhpcy4kZWwuZmluZCgnPi5hcHAtbGlzdC1pdGVtLWxlZnQtYWN0aW9uLXBhbmVsID4gYnV0dG9uOnZpc2libGUnKS5sZW5ndGg7XG4gICAgICAgIHRoaXMucmlnaHRDaGlsZHJlbkNvdW50ID0gdGhpcy4kZWwuZmluZCgnPi5hcHAtbGlzdC1pdGVtLXJpZ2h0LWFjdGlvbi1wYW5lbCA+IGJ1dHRvbjp2aXNpYmxlJykubGVuZ3RoO1xuXG4gICAgICAgIC8vIHdoZW4gdGhlcmUgYXJlIG5vIGNoaWxkcmVuIGluIGJvdGggdGhlIHRlbXBsYXRlcyB0aGVuIGRvIG5vdCBhcHBseSBzd2lwZUFuaW1hdGlvbjtcbiAgICAgICAgaWYgKCF0aGlzLmxlZnRDaGlsZHJlbkNvdW50ICYmICF0aGlzLnJpZ2h0Q2hpbGRyZW5Db3VudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gaW5pdGlhbGlzZSBzd2lwZSBhbmltYXRpb24gb24gdGhlIGxpc3QgY29tcG9uZW50LlxuICAgICAgICB0aGlzLmluaXQodGhpcy4kZWwpO1xuXG4gICAgICAgIC8vIHJldHJpZXZlcyBhbGwgdGhlIGJ1dHRvbiBjb21wb25lbnRzIHdoaWNoIGFyZSBwbGFjZWQgb3V0c2lkZSB0aGUgbGlzdFRlbXBsYXRlLlxuICAgICAgICB0aGlzLiRidG5TdWJzY3JpcHRpb24gPSB0aGlzLmxpc3QuYnRuQ29tcG9uZW50cy5jaGFuZ2VzLnN1YnNjcmliZShpdGVtcyA9PiB0aGlzLmFjdGlvbkl0ZW1zID0gaXRlbXMpO1xuICAgIH1cblxuICAgIC8vIFRoaXMgbWV0aG9kIHNldHMgdGhlIGNzcyBmb3IgbGVmdCBvciByaWdodCBhY3Rpb24gcGFuZWxzIGJhc2VkIG9uIHRoZSB0ZW1wbGF0ZS4gQXBwZW5kcyB0aGUgYWN0aW9uVGVtcGxhdGUgYmVmb3JlIGxpLlxuICAgIHByaXZhdGUgY3JlYXRlQWN0aW9uUGFuZWwobGk6IEpRdWVyeTxIVE1MRWxlbWVudD4sIGFjdGlvblBhbmVsVGVtcGxhdGU6IEpRdWVyeTxIVE1MRWxlbWVudD4pOiBKUXVlcnk8SFRNTEVsZW1lbnQ+IHtcbiAgICAgICAgYWN0aW9uUGFuZWxUZW1wbGF0ZS5jc3Moe1xuICAgICAgICAgICAgd2lkdGg6IGxpLm91dGVyV2lkdGgoKSArICdweCcsXG4gICAgICAgICAgICBoZWlnaHQ6IGxpLm91dGVySGVpZ2h0KCkgKyAncHgnLFxuICAgICAgICAgICAgbWFyZ2luQm90dG9tOiAtMSAqIGxpLm91dGVySGVpZ2h0KCkgKyAncHgnLFxuICAgICAgICAgICAgZmxvYXQ6ICdsZWZ0JyxcbiAgICAgICAgICAgIHBhZGRpbmc6IDBcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGFjdGlvblBhbmVsVGVtcGxhdGUuaW5zZXJ0QmVmb3JlKGxpKTtcbiAgICB9XG5cbiAgICAvLyBSZXR1cm5zIHRoZSB0b3RhbCB3aWR0aCBvY2N1cGllZCBieSBhbGwgdGhlIGNoaWxkcmVuIGluc2lkZSB0aGUgZWxlbWVudFxuICAgIHByaXZhdGUgY29tcHV0ZVRvdGFsQ2hpbGRyZW5XaWR0aCgkZWxlOiBKUXVlcnk8SFRNTEVsZW1lbnQ+KTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIF8ucmVkdWNlKCRlbGUuY2hpbGRyZW4oKSwgKHRvdGFsV2lkdGgsIGVsKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdG90YWxXaWR0aCArICQoZWwpLm91dGVyV2lkdGgoKTtcbiAgICAgICAgfSwgMCk7XG4gICAgfVxuXG4gICAgLy8gUmV0dXJucyBhbW91bnQgb2YgdHJhbnNpdGlvbiB0byBiZSBhcHBsaWVkIG9uIGVsZW1lbnQgd2hlbiBzd2lwZWQgbGVmdCBvciByaWdodFxuICAgIHByaXZhdGUgY29tcHV0ZVRyYW5zaXRpb25Qcm9wb3J0aW9ucygkZWxlOiBKUXVlcnk8SFRNTEVsZW1lbnQ+KTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgdG90YWxXaWR0aCA9IHRoaXMuY29tcHV0ZVRvdGFsQ2hpbGRyZW5XaWR0aCgkZWxlKTtcbiAgICAgICAgY29uc3QgcmV2ZXJzZSA9IHRoaXMucG9zaXRpb24gPT09ICdyaWdodCc7XG4gICAgICAgIGxldCBkID0gMDtcbiAgICAgICAgcmV0dXJuIF8ubWFwKCRlbGUuY2hpbGRyZW4oKSwgZSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmID0gKHRvdGFsV2lkdGggLSBkKSAvIHRvdGFsV2lkdGg7XG4gICAgICAgICAgICBkICs9ICQoZSkub3V0ZXJXaWR0aCgpO1xuICAgICAgICAgICAgcmV0dXJuIHJldmVyc2UgPyBmIDogKGQgLyB0b3RhbFdpZHRoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gUmVzZXRzIHRoZSB0cmFuc2Zvcm0gYXBwbGllZCBvbiB0aGUgZWxlbWVudC5cbiAgICBwcml2YXRlIHJlc2V0RWxlbWVudChlbDogSlF1ZXJ5PEhUTUxFbGVtZW50Pik6IHZvaWQge1xuICAgICAgICBpZiAoZWwpIHtcbiAgICAgICAgICAgIGVsLmNzcyh7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAnbm9uZScsXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogJ25vbmUnXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZXNldEVsZW1lbnQodGhpcy5saSk7XG4gICAgICAgIHRoaXMucmVzZXRFbGVtZW50KHRoaXMuYWN0aW9uUGFuZWwpO1xuICAgICAgICBpZiAodGhpcy5hY3Rpb25QYW5lbCkge1xuICAgICAgICAgICAgdGhpcy5hY3Rpb25QYW5lbCA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXR1cm5zIHRoZSB0YXJnZXQgYnV0dG9uIChjaGlsZCBlbGVtZW50KSBpbnNpZGUgdGhlIGxlZnQgYW5kIHJpZ2h0IGFjdGlvblBhbmVscy5cbiAgICBwcml2YXRlIGdldENoaWxkQWN0aW9uRWxlbWVudChhY3Rpb25UZW1wbGF0ZSk6IEpRdWVyeTxIVE1MRWxlbWVudD4ge1xuICAgICAgICBpZiAoYWN0aW9uVGVtcGxhdGUuY2hpbGRyZW4oKS5sZW5ndGgpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnBvc2l0aW9uID09PSAnbGVmdCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYWN0aW9uVGVtcGxhdGUuY2hpbGRyZW4oKS5maXJzdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGFjdGlvblRlbXBsYXRlLmNoaWxkcmVuKCkubGFzdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gY3JlYXRlIHRoZSBhY3Rpb25QYW5lbHMgYW5kIHNldCB0aGUgYmFja2dyb3VuZC1jb2xvciBmb3IgcmVtYWluaW5nIHBhbmVsIGFzIHRoYXQgb2YgZmlyc3QgY2hpbGQgZWxlbWVudFxuICAgIC8vIGNhbGN1bGF0ZXMgdGhlIGNoaWxkcmVuJ3Mgd2lkdGggYW5kIGl0cyB0cmFuc2l0aW9uIHByb3BvcnRpb25hdGVzLlxuICAgIHByaXZhdGUgaW5pdEFjdGlvblBhbmVsKGFjdGlvblRlbXBsYXRlOiBKUXVlcnk8SFRNTEVsZW1lbnQ+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aW9uUGFuZWwgPSB0aGlzLmNyZWF0ZUFjdGlvblBhbmVsKHRoaXMubGksIGFjdGlvblRlbXBsYXRlKTtcbiAgICAgICAgdGhpcy5hY3Rpb25QYW5lbC5jc3Moe1xuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGlzLmdldENoaWxkQWN0aW9uRWxlbWVudCh0aGlzLmFjdGlvblBhbmVsKS5jc3MoJ2JhY2tncm91bmQtY29sb3InKVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5saW1pdCA9IHRoaXMuY29tcHV0ZVRvdGFsQ2hpbGRyZW5XaWR0aCh0aGlzLmFjdGlvblBhbmVsKTtcbiAgICAgICAgdGhpcy50cmFuc2l0aW9uUHJvcG9ydGlvbnMgPSB0aGlzLmNvbXB1dGVUcmFuc2l0aW9uUHJvcG9ydGlvbnModGhpcy5hY3Rpb25QYW5lbCk7XG4gICAgfVxuXG4gICAgcHVibGljIGJvdW5kcyhlPzogYW55LCAkZD86IG51bWJlcik6IGFueSB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9ICQoZS50YXJnZXQpLmNsb3Nlc3QoJ2xpJyk7XG4gICAgICAgIC8vIGRlZmF1bHQgYm91bmRzIHdoZW4gYWN0aW9uIHRlbXBsYXRlIG1hcmt1cCBpcyBub3QgYXZhaWxhYmxlLlxuICAgICAgICBsZXQgYm91bmRzOiB7fSA9IHtcbiAgICAgICAgICAgIHN0cmljdFVwcGVyOiB0cnVlLFxuICAgICAgICAgICAgc3RyaWN0TG93ZXI6IHRydWUsXG4gICAgICAgICAgICBsb3dlcjogMCxcbiAgICAgICAgICAgIGNlbnRlcjogMCxcbiAgICAgICAgICAgIHVwcGVyOiAwXG4gICAgICAgIH07XG4gICAgICAgIC8vIGFwcGx5IHN3aXBlIGFuaW1hdGlvbiBvbmx5IG9uIGxpc3QgaXRlbXMgaGF2aW5nIFwiYXBwLWxpc3QtaXRlbVwiIGNsYXNzLlxuICAgICAgICBpZiAoIXRhcmdldC5oYXNDbGFzcygnYXBwLWxpc3QtaXRlbScpKSB7XG4gICAgICAgICAgICByZXR1cm4gYm91bmRzO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5saSB8fCB0aGlzLmxpWzBdICE9PSB0YXJnZXRbMF0pIHtcbiAgICAgICAgICAgIGxldCBzZWxlY3RvciA9ICAkZCA+IDAgPyAnLmFwcC1saXN0LWl0ZW0tbGVmdC1hY3Rpb24tcGFuZWwnIDogJy5hcHAtbGlzdC1pdGVtLXJpZ2h0LWFjdGlvbi1wYW5lbCc7XG4gICAgICAgICAgICBsZXQgYWN0aW9uVGVtcGxhdGUgPSB0aGlzLiRlbC5maW5kKCc+JyArIHNlbGVjdG9yKTtcblxuICAgICAgICAgICAgLy8gd2hlbiBncm91cGJ5IGlzIHNldCBzZWxlY3QgdGhlIGFjdGlvbiBwYW5lbCBmcm9tIHRoZSBsaXN0IGdyb3VwIGl0ZW1zLlxuICAgICAgICAgICAgaWYgKCFhY3Rpb25UZW1wbGF0ZS5sZW5ndGggJiYgdGhpcy5saXN0Lmdyb3VwYnkpIHtcbiAgICAgICAgICAgICAgICBzZWxlY3RvciA9ICdsaSA+IHVsLmxpc3QtZ3JvdXAgPicgKyBzZWxlY3RvcjtcbiAgICAgICAgICAgICAgICBhY3Rpb25UZW1wbGF0ZSA9IHRoaXMuJGVsLmZpbmQoJz4nICsgc2VsZWN0b3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBjaGVjayBmb3IgY2hpbGRyZW4gdmlzaWJsaXR5LiBJZiBjaGlsZHJlbiBhcmUgdmlzaWJsZSB0aGVuIGluaXRpYXRlIHRoZSBhY3Rpb24gcGFuZWwuXG4gICAgICAgICAgICBpZiAoIWFjdGlvblRlbXBsYXRlLmxlbmd0aCB8fCAhYWN0aW9uVGVtcGxhdGUuZmluZCgnYnV0dG9uOnZpc2libGUnKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYm91bmRzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnJlc2V0U3RhdGUoKTtcbiAgICAgICAgICAgIHRoaXMubGkgPSB0YXJnZXQ7XG5cbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPSBhY3Rpb25UZW1wbGF0ZS5hdHRyKCdwb3NpdGlvbicpO1xuICAgICAgICAgICAgdGhpcy5pbml0QWN0aW9uUGFuZWwoYWN0aW9uVGVtcGxhdGUpO1xuXG4gICAgICAgICAgICBpZiAoJGQgPiAwKSB7XG4gICAgICAgICAgICAgICAgLy8gYm91bmRzIHdoaWxlIHN3aXBpbmcgZnJvbSByaWdodCB0byBsZWZ0IHRvIG9wZW4gbGVmdCBhY3Rpb24gcGFuZWwuIEl0IGNhbiBiZSBtb3ZlZCB1cHRvIGxpbWl0IHZhbHVlIChVcHBlciBib3VuZCkuXG4gICAgICAgICAgICAgICAgYm91bmRzID0ge1xuICAgICAgICAgICAgICAgICAgICBzdHJpY3RVcHBlcjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGxvd2VyOiAwLFxuICAgICAgICAgICAgICAgICAgICBjZW50ZXI6IDAsXG4gICAgICAgICAgICAgICAgICAgIHVwcGVyOiB0aGlzLmxpbWl0XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gYm91bmRzIHdoaWxlIHN3aXBpbmcgZnJvbSBsZWZ0IHRvIHJpZ2h0IHRvIG9wZW4gcmlnaHQgYWN0aW9uIHBhbmVsLiBJdCBjYW4gYmUgbW92ZWQgaW4gcmV2ZXJzZSBkaXJlY3Rpb24gd2l0aCAtbGltaXQgdmFsdWUgKGxvd2VyIGJvdW5kKS5cbiAgICAgICAgICAgICAgICBib3VuZHMgPSB7XG4gICAgICAgICAgICAgICAgICAgIHN0cmljdExvd2VyOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgbG93ZXI6IC10aGlzLmxpbWl0LFxuICAgICAgICAgICAgICAgICAgICBjZW50ZXI6IDAsXG4gICAgICAgICAgICAgICAgICAgIHVwcGVyOiAwXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnBvc2l0aW9uID09PSAnbGVmdCcpIHtcbiAgICAgICAgICAgIC8vIHdoZW4gbGVmdCBhY3Rpb24gcGFuZWwgaXMgdmlzaWJsZSAoaS5lLiBjZW50ZXIgYXQgbGltaXQgdmFsdWUpIHRoZW4gdGhpcyBjYW4gYmUgbW92ZWQgYnkgZGlzdGFuY2UgKGxpbWl0KSBpbiByZXZlcnNlIGRpcmVjdGlvbiB0byBjbG9zZSB0aGUgdmlldy5cbiAgICAgICAgICAgIGJvdW5kcyA9IHtcbiAgICAgICAgICAgICAgICBzdHJpY3RVcHBlcjogZmFsc2UsXG4gICAgICAgICAgICAgICAgbG93ZXI6IC10aGlzLmxpbWl0LFxuICAgICAgICAgICAgICAgIGNlbnRlcjogdGhpcy5saW1pdFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnBvc2l0aW9uID09PSAncmlnaHQnKSB7XG4gICAgICAgICAgICAvLyB3aGVuIHJpZ2h0IGFjdGlvbiBwYW5lbCBpcyB2aXNpYmxlIChpLmUuIGNlbnRlciBhdCAtbGltaXQgdmFsdWUpIHRoZW4gdGhpcyBjYW4gYmUgbW92ZWQgYnkgZGlzdGFuY2UgKGxpbWl0KSB0byBjbG9zZSB0aGUgdmlldy5cbiAgICAgICAgICAgIGJvdW5kcyA9IHtcbiAgICAgICAgICAgICAgICBjZW50ZXI6IC10aGlzLmxpbWl0LFxuICAgICAgICAgICAgICAgIHVwcGVyOiB0aGlzLmxpbWl0LFxuICAgICAgICAgICAgICAgIHN0cmljdExvd2VyOiBmYWxzZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYm91bmRzO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb250ZXh0KCk6IGFueSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb21wdXRlQWN0aW9uVHJhbnNpdGlvbjogKGluZGV4OiBudW1iZXIsICRkOiBudW1iZXIpOiBudW1iZXIgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNpZ24gPSAkZCA+IDAgPyAxIDogLTE7XG5cbiAgICAgICAgICAgICAgICBpZiAoc2lnbiAqICRkID4gdGhpcy5saW1pdCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBvbmNlIHRoZSBkaXN0YW5jZSBzd2lwZWQgaXMgYmV5b25kIHRoZSBsaW1pdCwgdGhlbiBjYWxjdWxhdGUgdGhlIHByb3BvcnRpb25hdGUgZGlzdGFuY2UgbW92ZWQgYWZ0ZXIgdGhlIGxpbWl0IHZhbHVlLlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKCRkIC0gc2lnbiAqIHRoaXMubGltaXQpICsgKHRoaXMudHJhbnNpdGlvblByb3BvcnRpb25zW2luZGV4XSAqIHNpZ24gKiB0aGlzLmxpbWl0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNpdGlvblByb3BvcnRpb25zW2luZGV4XSAqICRkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBhbmltYXRpb24oKTogYW55IHtcbiAgICAgICAgcmV0dXJuIFt7XG4gICAgICAgICAgICB0YXJnZXQ6ICgpID0+IHRoaXMubGksXG4gICAgICAgICAgICBjc3M6IHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGUzZCgke3skRCArICRkfX1weCwgMCwgMCknXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIHsgLy8gc3R5bGVzIHRvIGJlIGFwcGxpZWQgb24gdGhlIGNoaWxkIGVsZW1lbnRzIG9mIGFjdGlvbiBwYW5lbFxuICAgICAgICAgICAgdGFyZ2V0OiAoKSA9PiAodGhpcy5hY3Rpb25QYW5lbCAmJiB0aGlzLmFjdGlvblBhbmVsLmNoaWxkcmVuKCkpLFxuICAgICAgICAgICAgY3NzOiB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlM2QoJHt7Y29tcHV0ZUFjdGlvblRyYW5zaXRpb24oJGksICREICsgJGQpfX1weCwgMCwgMCknXG4gICAgICAgICAgICB9XG4gICAgICAgIH1dO1xuICAgIH1cblxuICAgIC8vIFRyaWdnZXJzIGZ1bGwgc3dpcGUgZXZlbnQgb24gdGhlIHRhcmdldCBlbGVtZW50LlxuICAgIHB1YmxpYyBpbnZva2VGdWxsU3dpcGVFdnQoJGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBsZXQgdGFyZ2V0LCBhY3Rpb25zLCBpbmRleDtcbiAgICAgICAgLy8gQ2hlY2sgaWYgYnV0dG9uIGFyZSB2aXNpYmxlIG9yIG5vdCwgaW52b2tlIHRoZSB0YXAgZXZlbnQgb2YgdGhlIGxhc3QgYnV0dG9uIHdoaWNoIGlzIHZpc2libGUuXG4gICAgICAgIGlmICh0aGlzLnBvc2l0aW9uID09PSAnbGVmdCcpIHtcbiAgICAgICAgICAgIGFjdGlvbnMgPSB0aGlzLmFjdGlvbkl0ZW1zLmZpbHRlcihidG4gPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBidG4uZ2V0QXR0cignc3dpcGUtcG9zaXRpb24nKSA9PT0gJ2xlZnQnICYmIGJ0bi4kZWxlbWVudC5pcygnOnZpc2libGUnKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaW5kZXggPSAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYWN0aW9ucyA9IHRoaXMuYWN0aW9uSXRlbXMuZmlsdGVyKGJ0biA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJ0bi5nZXRBdHRyKCdzd2lwZS1wb3NpdGlvbicpID09PSAncmlnaHQnICYmIGJ0bi4kZWxlbWVudC5pcygnOnZpc2libGUnKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaW5kZXggPSBhY3Rpb25zLmxlbmd0aCAtIDE7XG4gICAgICAgIH1cbiAgICAgICAgdGFyZ2V0ID0gYWN0aW9uc1tpbmRleF07XG4gICAgICAgIGlmICh0YXJnZXQgJiYgdGFyZ2V0Lmhhc0V2ZW50Q2FsbGJhY2soJ3RhcCcpKSB7XG4gICAgICAgICAgICB0YXJnZXQuaW52b2tlRXZlbnRDYWxsYmFjaygndGFwJywgeyRldmVudH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVzZXRTdGF0ZSgpO1xuICAgICAgICB0aGlzLmxpID0gbnVsbDtcbiAgICB9XG5cbiAgICAvLyBDYWxsZWQgd2hlbiBzd2lwZUVuZCBpcyB0cmlnZ2VyZWQuIGQgY29udGFpbnMgdGhlIHRvdGFsIGRpc3RhbmNlIGNvdmVyZWQgYnkgdGhlIGVsZW1lbnQgdW50aWwgdG91Y2hFbmQuXG4gICAgcHVibGljIG9uQW5pbWF0aW9uKCRldmVudDogRXZlbnQsIGQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICAvLyBzZXQgdGhlIHNlbGVjdGVkaXRlbSBvbiB0aGUgbGlzdCBjb21wb25lbnQgb24gc3dpcGUuXG4gICAgICAgIHRoaXMubGlzdC50cmlnZ2VyTGlzdEl0ZW1TZWxlY3Rpb24odGhpcy5saSwgJGV2ZW50KTtcbiAgICAgICAgaWYgKHRoaXMuYWN0aW9uUGFuZWwgJiYgdGhpcy5hY3Rpb25QYW5lbC5hdHRyKCdlbmFibGVmdWxsc3dpcGUnKSA9PT0gJ3RydWUnKSB7XG4gICAgICAgICAgICBjb25zdCBzaWduID0gZCA+IDAgPyAxIDogLTE7XG4gICAgICAgICAgICBjb25zdCAkZWwgPSB0aGlzLmdldENoaWxkQWN0aW9uRWxlbWVudCh0aGlzLmFjdGlvblBhbmVsKTtcbiAgICAgICAgICAgIGlmICgkZWwpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMucG9zaXRpb24gPT09ICdyaWdodCcgPyB0aGlzLnJpZ2h0Q2hpbGRyZW5Db3VudCAtIDEgOiAwO1xuICAgICAgICAgICAgICAgIC8vIHByb3BvcnRpb25hdGUgYW1vdW50IG9mIGRpc3RhbmNlIGNvdmVyZWQgYnkgdGhlIHRhcmdldCBlbGVtZW50LlxuICAgICAgICAgICAgICAgIGNvbnN0IGRpc3RQZXJjZW50YWdlID0gdGhpcy50cmFuc2l0aW9uUHJvcG9ydGlvbnNbaW5kZXhdICogc2lnbiAqIGQgKiAxMDAgLyAodGhpcy5saS5vdXRlcldpZHRoKCkgLSB0aGlzLmxpbWl0ICsgJGVsLndpZHRoKCkpO1xuXG4gICAgICAgICAgICAgICAgLy8gSWYgZGlzdGFuY2UgdHJhdmVsbGVkIGJ5IHRoZSB0YXJnZXQgYnV0dG9uIGVsZW1lbnQgaXMgbW9yZSB0aGFuIDUwJSBvZiB0aGUgbGlzdCBpdGVtIHdpZHRoIHRoZW4gaW52b2tlIHRoZSBmdWxsc3dpcGUuXG4gICAgICAgICAgICAgICAgaWYgKGRpc3RQZXJjZW50YWdlID4gNTApIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gaW52b2tlIGZ1bGxzd2lwZSBldmVudFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmludm9rZUZ1bGxTd2lwZUV2dCgkZXZlbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbkxvd2VyKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wb3NpdGlvbiA9PT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0U3RhdGUoKTtcbiAgICAgICAgICAgIHRoaXMubGkgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uVXBwZXIoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnBvc2l0aW9uID09PSAncmlnaHQnKSB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0U3RhdGUoKTtcbiAgICAgICAgICAgIHRoaXMubGkgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHRocmVzaG9sZCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gMTA7XG4gICAgfVxufVxuIl19
233
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5hbmltYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9kYXRhL2xpc3Qvc3JjL2xpc3QuYW5pbWF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUl6QyxPQUFPLEVBQUMsR0FBRyxFQUFFLE1BQU0sRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUl0QyxNQUFNLE9BQU8sWUFBYSxTQUFRLGNBQWM7SUFZNUMsWUFBb0IsSUFBbUI7UUFDbkMsS0FBSyxFQUFFLENBQUM7UUFEUSxTQUFJLEdBQUosSUFBSSxDQUFlO1FBRW5DLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRXJGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxvREFBb0QsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNwRyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMscURBQXFELENBQUMsQ0FBQyxNQUFNLENBQUM7UUFFdEcscUZBQXFGO1FBQ3JGLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUN0RCxPQUFPO1FBQ1gsQ0FBQztRQUVELG9EQUFvRDtRQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVwQixpRkFBaUY7UUFDakYsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMs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QUFDLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBRTlILHdIQUF3SDtnQkFDeEgsSUFBSSxjQUFjLEdBQUcsRUFBRSxFQUFFLENBQUM7b0JBQ3RCLHlCQUF5QjtvQkFDekIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNwQyxDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRU0sT0FBTztRQUNWLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDbkIsQ0FBQztJQUNMLENBQUM7SUFFTSxPQUFPO1FBQ1YsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQztRQUNuQixDQUFDO0lBQ0wsQ0FBQztJQUVNLFNBQVM7UUFDWixPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFN3aXBlQW5pbWF0aW9uIH0gZnJvbSAnQHN3aXBleSc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAd20vY29tcG9uZW50cy9pbnB1dCc7XG5cbmltcG9ydCB7IExpc3RDb21wb25lbnQgfSBmcm9tICcuL2xpc3QuY29tcG9uZW50JztcbmltcG9ydCB7bWFwLCByZWR1Y2V9IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuZGVjbGFyZSBjb25zdCAkO1xuXG5leHBvcnQgY2xhc3MgTGlzdEFuaW1hdG9yIGV4dGVuZHMgU3dpcGVBbmltYXRpb24ge1xuICAgIHByaXZhdGUgJGVsOiBKUXVlcnk8SFRNTEVsZW1lbnQ+O1xuICAgIHByaXZhdGUgbGk6IEpRdWVyeTxIVE1MRWxlbWVudD47XG4gICAgcHJpdmF0ZSBsaW1pdDogbnVtYmVyO1xuICAgIHByaXZhdGUgdHJhbnNpdGlvblByb3BvcnRpb25zOiBhbnk7XG4gICAgcHJpdmF0ZSByaWdodENoaWxkcmVuQ291bnQ6IG51bWJlcjtcbiAgICBwcml2YXRlIGxlZnRDaGlsZHJlbkNvdW50OiBudW1iZXI7XG4gICAgcHJpdmF0ZSBwb3NpdGlvbjogc3RyaW5nO1xuICAgIHByaXZhdGUgYWN0aW9uUGFuZWw6IEpRdWVyeTxIVE1MRWxlbWVudD47XG4gICAgcHJpdmF0ZSBhY3Rpb25JdGVtczogUXVlcnlMaXN0PEJ1dHRvbkNvbXBvbmVudD47XG4gICAgcHVibGljICRidG5TdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbGlzdDogTGlzdENvbXBvbmVudCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLiRlbCA9ICQodGhpcy5saXN0LmdldE5hdGl2ZUVsZW1lbnQoKSkuZmluZCgndWwuYXBwLWxpdmVsaXN0LWNvbnRhaW5lcicpLmZpcnN0KCk7XG5cbiAgICAgICAgdGhpcy5sZWZ0Q2hpbGRyZW5Db3VudCA9IHRoaXMuJGVsLmZpbmQoJz4uYXBwLWxpc3QtaXRlbS1sZWZ0LWFjdGlvbi1wYW5lbCA+IGJ1dHRvbjp2aXNpYmxlJykubGVuZ3RoO1xuICAgICAgICB0aGlzLnJpZ2h0Q2hpbGRyZW5Db3VudCA9IHRoaXMuJGVsLmZpbmQoJz4uYXBwLWxpc3QtaXRlbS1yaWdodC1hY3Rpb24tcGFuZWwgPiBidXR0b246dmlzaWJsZScpLmxlbmd0aDtcblxuICAgICAgICAvLyB3aGVuIHRoZXJlIGFyZSBubyBjaGlsZHJlbiBpbiBib3RoIHRoZSB0ZW1wbGF0ZXMgdGhlbiBkbyBub3QgYXBwbHkgc3dpcGVBbmltYXRpb247XG4gICAgICAgIGlmICghdGhpcy5sZWZ0Q2hpbGRyZW5Db3VudCAmJiAhdGhpcy5yaWdodENoaWxkcmVuQ291bnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGluaXRpYWxpc2Ugc3dpcGUgYW5pbWF0aW9uIG9uIHRoZSBsaXN0IGNvbXBvbmVudC5cbiAgICAgICAgdGhpcy5pbml0KHRoaXMuJGVsKTtcblxuICAgICAgICAvLyByZXRyaWV2ZXMgYWxsIHRoZSBidXR0b24gY29tcG9uZW50cyB3aGljaCBhcmUgcGxhY2VkIG91dHNpZGUgdGhlIGxpc3RUZW1wbGF0ZS5cbiAgICAgICAgdGhpcy4kYnRuU3Vic2NyaXB0aW9uID0gdGhpcy5saXN0LmJ0bkNvbXBvbmVudHMuY2hhbmdlcy5zdWJzY3JpYmUoaXRlbXMgPT4gdGhpcy5hY3Rpb25JdGVtcyA9IGl0ZW1zKTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIG1ldGhvZCBzZXRzIHRoZSBjc3MgZm9yIGxlZnQgb3IgcmlnaHQgYWN0aW9uIHBhbmVscyBiYXNlZCBvbiB0aGUgdGVtcGxhdGUuIEFwcGVuZHMgdGhlIGFjdGlvblRlbXBsYXRlIGJlZm9yZSBsaS5cbiAgICBwcml2YXRlIGNyZWF0ZUFjdGlvblBhbmVsKGxpOiBKUXVlcnk8SFRNTEVsZW1lbnQ+LCBhY3Rpb25QYW5lbFRlbXBsYXRlOiBKUXVlcnk8SFRNTEVsZW1lbnQ+KTogSlF1ZXJ5PEhUTUxFbGVtZW50PiB7XG4gICAgICAgIGFjdGlvblBhbmVsVGVtcGxhdGUuY3NzKHtcbiAgICAgICAgICAgIHdpZHRoOiBsaS5vdXRlcldpZHRoKCkgKyAncHgnLFxuICAgICAgICAgICAgaGVpZ2h0OiBsaS5vdXRlckhlaWdodCgpICsgJ3B4JyxcbiAgICAgICAgICAgIG1hcmdpbkJvdHRvbTogLTEgKiBsaS5vdXRlckhlaWdodCgpICsgJ3B4JyxcbiAgICAgICAgICAgIGZsb2F0OiAnbGVmdCcsXG4gICAgICAgICAgICBwYWRkaW5nOiAwXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBhY3Rpb25QYW5lbFRlbXBsYXRlLmluc2VydEJlZm9yZShsaSk7XG4gICAgfVxuXG4gICAgLy8gUmV0dXJucyB0aGUgdG90YWwgd2lkdGggb2NjdXBpZWQgYnkgYWxsIHRoZSBjaGlsZHJlbiBpbnNpZGUgdGhlIGVsZW1lbnRcbiAgICBwcml2YXRlIGNvbXB1dGVUb3RhbENoaWxkcmVuV2lkdGgoJGVsZTogSlF1ZXJ5PEhUTUxFbGVtZW50Pik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiByZWR1Y2UoJGVsZS5jaGlsZHJlbigpLCAodG90YWxXaWR0aCwgZWwpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0b3RhbFdpZHRoICsgJChlbCkub3V0ZXJXaWR0aCgpO1xuICAgICAgICB9LCAwKTtcbiAgICB9XG5cbiAgICAvLyBSZXR1cm5zIGFtb3VudCBvZiB0cmFuc2l0aW9uIHRvIGJlIGFwcGxpZWQgb24gZWxlbWVudCB3aGVuIHN3aXBlZCBsZWZ0IG9yIHJpZ2h0XG4gICAgcHJpdmF0ZSBjb21wdXRlVHJhbnNpdGlvblByb3BvcnRpb25zKCRlbGU6IEpRdWVyeTxIVE1MRWxlbWVudD4pOiBudW1iZXIge1xuICAgICAgICBjb25zdCB0b3RhbFdpZHRoID0gdGhpcy5jb21wdXRlVG90YWxDaGlsZHJlbldpZHRoKCRlbGUpO1xuICAgICAgICBjb25zdCByZXZlcnNlID0gdGhpcy5wb3NpdGlvbiA9PT0gJ3JpZ2h0JztcbiAgICAgICAgbGV0IGQgPSAwO1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHJldHVybiBtYXAoJGVsZS5jaGlsZHJlbigpLCBlID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGYgPSAodG90YWxXaWR0aCAtIGQpIC8gdG90YWxXaWR0aDtcbiAgICAgICAgICAgIGQgKz0gJChlKS5vdXRlcldpZHRoKCk7XG4gICAgICAgICAgICByZXR1cm4gcmV2ZXJzZSA/IGYgOiAoZCAvIHRvdGFsV2lkdGgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBSZXNldHMgdGhlIHRyYW5zZm9ybSBhcHBsaWVkIG9uIHRoZSBlbGVtZW50LlxuICAgIHByaXZhdGUgcmVzZXRFbGVtZW50KGVsOiBKUXVlcnk8SFRNTEVsZW1lbnQ+KTogdm9pZCB7XG4gICAgICAgIGlmIChlbCkge1xuICAgICAgICAgICAgZWwuY3NzKHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICdub25lJyxcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiAnbm9uZSdcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldFN0YXRlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlc2V0RWxlbWVudCh0aGlzLmxpKTtcbiAgICAgICAgdGhpcy5yZXNldEVsZW1lbnQodGhpcy5hY3Rpb25QYW5lbCk7XG4gICAgICAgIGlmICh0aGlzLmFjdGlvblBhbmVsKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGlvblBhbmVsID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJldHVybnMgdGhlIHRhcmdldCBidXR0b24gKGNoaWxkIGVsZW1lbnQpIGluc2lkZSB0aGUgbGVmdCBhbmQgcmlnaHQgYWN0aW9uUGFuZWxzLlxuICAgIHByaXZhdGUgZ2V0Q2hpbGRBY3Rpb25FbGVtZW50KGFjdGlvblRlbXBsYXRlKTogSlF1ZXJ5PEhUTUxFbGVtZW50PiB7XG4gICAgICAgIGlmIChhY3Rpb25UZW1wbGF0ZS5jaGlsZHJlbigpLmxlbmd0aCkge1xuICAgICAgICAgICAgaWYgKHRoaXMucG9zaXRpb24gPT09ICdsZWZ0Jykge1xuICAgICAgICAgICAgICAgIHJldHVybiBhY3Rpb25UZW1wbGF0ZS5jaGlsZHJlbigpLmZpcnN0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYWN0aW9uVGVtcGxhdGUuY2hpbGRyZW4oKS5sYXN0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBjcmVhdGUgdGhlIGFjdGlvblBhbmVscyBhbmQgc2V0IHRoZSBiYWNrZ3JvdW5kLWNvbG9yIGZvciByZW1haW5pbmcgcGFuZWwgYXMgdGhhdCBvZiBmaXJzdCBjaGlsZCBlbGVtZW50XG4gICAgLy8gY2FsY3VsYXRlcyB0aGUgY2hpbGRyZW4ncyB3aWR0aCBhbmQgaXRzIHRyYW5zaXRpb24gcHJvcG9ydGlvbmF0ZXMuXG4gICAgcHJpdmF0ZSBpbml0QWN0aW9uUGFuZWwoYWN0aW9uVGVtcGxhdGU6IEpRdWVyeTxIVE1MRWxlbWVudD4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY3Rpb25QYW5lbCA9IHRoaXMuY3JlYXRlQWN0aW9uUGFuZWwodGhpcy5saSwgYWN0aW9uVGVtcGxhdGUpO1xuICAgICAgICB0aGlzLmFjdGlvblBhbmVsLmNzcyh7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoaXMuZ2V0Q2hpbGRBY3Rpb25FbGVtZW50KHRoaXMuYWN0aW9uUGFuZWwpLmNzcygnYmFja2dyb3VuZC1jb2xvcicpXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmxpbWl0ID0gdGhpcy5jb21wdXRlVG90YWxDaGlsZHJlbldpZHRoKHRoaXMuYWN0aW9uUGFuZWwpO1xuICAgICAgICB0aGlzLnRyYW5zaXRpb25Qcm9wb3J0aW9ucyA9IHRoaXMuY29tcHV0ZVRyYW5zaXRpb25Qcm9wb3J0aW9ucyh0aGlzLmFjdGlvblBhbmVsKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYm91bmRzKGU/OiBhbnksICRkPzogbnVtYmVyKTogYW55IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gJChlLnRhcmdldCkuY2xvc2VzdCgnbGknKTtcbiAgICAgICAgLy8gZGVmYXVsdCBib3VuZHMgd2hlbiBhY3Rpb24gdGVtcGxhdGUgbWFya3VwIGlzIG5vdCBhdmFpbGFibGUuXG4gICAgICAgIGxldCBib3VuZHM6IHt9ID0ge1xuICAgICAgICAgICAgc3RyaWN0VXBwZXI6IHRydWUsXG4gICAgICAgICAgICBzdHJpY3RMb3dlcjogdHJ1ZSxcbiAgICAgICAgICAgIGxvd2VyOiAwLFxuICAgICAgICAgICAgY2VudGVyOiAwLFxuICAgICAgICAgICAgdXBwZXI6IDBcbiAgICAgICAgfTtcbiAgICAgICAgLy8gYXBwbHkgc3dpcGUgYW5pbWF0aW9uIG9ubHkgb24gbGlzdCBpdGVtcyBoYXZpbmcgXCJhcHAtbGlzdC1pdGVtXCIgY2xhc3MuXG4gICAgICAgIGlmICghdGFyZ2V0Lmhhc0NsYXNzKCdhcHAtbGlzdC1pdGVtJykpIHtcbiAgICAgICAgICAgIHJldHVybiBib3VuZHM7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmxpIHx8IHRoaXMubGlbMF0gIT09IHRhcmdldFswXSkge1xuICAgICAgICAgICAgbGV0IHNlbGVjdG9yID0gICRkID4gMCA/ICcuYXBwLWxpc3QtaXRlbS1sZWZ0LWFjdGlvbi1wYW5lbCcgOiAnLmFwcC1saXN0LWl0ZW0tcmlnaHQtYWN0aW9uLXBhbmVsJztcbiAgICAgICAgICAgIGxldCBhY3Rpb25UZW1wbGF0ZSA9IHRoaXMuJGVsLmZpbmQoJz4nICsgc2VsZWN0b3IpO1xuXG4gICAgICAgICAgICAvLyB3aGVuIGdyb3VwYnkgaXMgc2V0IHNlbGVjdCB0aGUgYWN0aW9uIHBhbmVsIGZyb20gdGhlIGxpc3QgZ3JvdXAgaXRlbXMuXG4gICAgICAgICAgICBpZiAoIWFjdGlvblRlbXBsYXRlLmxlbmd0aCAmJiB0aGlzLmxpc3QuZ3JvdXBieSkge1xuICAgICAgICAgICAgICAgIHNlbGVjdG9yID0gJ2xpID4gdWwubGlzdC1ncm91cCA+JyArIHNlbGVjdG9yO1xuICAgICAgICAgICAgICAgIGFjdGlvblRlbXBsYXRlID0gdGhpcy4kZWwuZmluZCgnPicgKyBzZWxlY3Rvcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGNoZWNrIGZvciBjaGlsZHJlbiB2aXNpYmxpdHkuIElmIGNoaWxkcmVuIGFyZSB2aXNpYmxlIHRoZW4gaW5pdGlhdGUgdGhlIGFjdGlvbiBwYW5lbC5cbiAgICAgICAgICAgIGlmICghYWN0aW9uVGVtcGxhdGUubGVuZ3RoIHx8ICFhY3Rpb25UZW1wbGF0ZS5maW5kKCdidXR0b246dmlzaWJsZScpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBib3VuZHM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMucmVzZXRTdGF0ZSgpO1xuICAgICAgICAgICAgdGhpcy5saSA9IHRhcmdldDtcblxuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbiA9IGFjdGlvblRlbXBsYXRlLmF0dHIoJ3Bvc2l0aW9uJyk7XG4gICAgICAgICAgICB0aGlzLmluaXRBY3Rpb25QYW5lbChhY3Rpb25UZW1wbGF0ZSk7XG5cbiAgICAgICAgICAgIGlmICgkZCA+IDApIHtcbiAgICAgICAgICAgICAgICAvLyBib3VuZHMgd2hpbGUgc3dpcGluZyBmcm9tIHJpZ2h0IHRvIGxlZnQgdG8gb3BlbiBsZWZ0IGFjdGlvbiBwYW5lbC4gSXQgY2FuIGJlIG1vdmVkIHVwdG8gbGltaXQgdmFsdWUgKFVwcGVyIGJvdW5kKS5cbiAgICAgICAgICAgICAgICBib3VuZHMgPSB7XG4gICAgICAgICAgICAgICAgICAgIHN0cmljdFVwcGVyOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgbG93ZXI6IDAsXG4gICAgICAgICAgICAgICAgICAgIGNlbnRlcjogMCxcbiAgICAgICAgICAgICAgICAgICAgdXBwZXI6IHRoaXMubGltaXRcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBib3VuZHMgd2hpbGUgc3dpcGluZyBmcm9tIGxlZnQgdG8gcmlnaHQgdG8gb3BlbiByaWdodCBhY3Rpb24gcGFuZWwuIEl0IGNhbiBiZSBtb3ZlZCBpbiByZXZlcnNlIGRpcmVjdGlvbiB3aXRoIC1saW1pdCB2YWx1ZSAobG93ZXIgYm91bmQpLlxuICAgICAgICAgICAgICAgIGJvdW5kcyA9IHtcbiAgICAgICAgICAgICAgICAgICAgc3RyaWN0TG93ZXI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBsb3dlcjogLXRoaXMubGltaXQsXG4gICAgICAgICAgICAgICAgICAgIGNlbnRlcjogMCxcbiAgICAgICAgICAgICAgICAgICAgdXBwZXI6IDBcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMucG9zaXRpb24gPT09ICdsZWZ0Jykge1xuICAgICAgICAgICAgLy8gd2hlbiBsZWZ0IGFjdGlvbiBwYW5lbCBpcyB2aXNpYmxlIChpLmUuIGNlbnRlciBhdCBsaW1pdCB2YWx1ZSkgdGhlbiB0aGlzIGNhbiBiZSBtb3ZlZCBieSBkaXN0YW5jZSAobGltaXQpIGluIHJldmVyc2UgZGlyZWN0aW9uIHRvIGNsb3NlIHRoZSB2aWV3LlxuICAgICAgICAgICAgYm91bmRzID0ge1xuICAgICAgICAgICAgICAgIHN0cmljdFVwcGVyOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBsb3dlcjogLXRoaXMubGltaXQsXG4gICAgICAgICAgICAgICAgY2VudGVyOiB0aGlzLmxpbWl0XG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMucG9zaXRpb24gPT09ICdyaWdodCcpIHtcbiAgICAgICAgICAgIC8vIHdoZW4gcmlnaHQgYWN0aW9uIHBhbmVsIGlzIHZpc2libGUgKGkuZS4gY2VudGVyIGF0IC1saW1pdCB2YWx1ZSkgdGhlbiB0aGlzIGNhbiBiZSBtb3ZlZCBieSBkaXN0YW5jZSAobGltaXQpIHRvIGNsb3NlIHRoZSB2aWV3LlxuICAgICAgICAgICAgYm91bmRzID0ge1xuICAgICAgICAgICAgICAgIGNlbnRlcjogLXRoaXMubGltaXQsXG4gICAgICAgICAgICAgICAgdXBwZXI6IHRoaXMubGltaXQsXG4gICAgICAgICAgICAgICAgc3RyaWN0TG93ZXI6IGZhbHNlXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBib3VuZHM7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbnRleHQoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvbXB1dGVBY3Rpb25UcmFuc2l0aW9uOiAoaW5kZXg6IG51bWJlciwgJGQ6IG51bWJlcik6IG51bWJlciA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2lnbiA9ICRkID4gMCA/IDEgOiAtMTtcblxuICAgICAgICAgICAgICAgIGlmIChzaWduICogJGQgPiB0aGlzLmxpbWl0KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIG9uY2UgdGhlIGRpc3RhbmNlIHN3aXBlZCBpcyBiZXlvbmQgdGhlIGxpbWl0LCB0aGVuIGNhbGN1bGF0ZSB0aGUgcHJvcG9ydGlvbmF0ZSBkaXN0YW5jZSBtb3ZlZCBhZnRlciB0aGUgbGltaXQgdmFsdWUuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoJGQgLSBzaWduICogdGhpcy5saW1pdCkgKyAodGhpcy50cmFuc2l0aW9uUHJvcG9ydGlvbnNbaW5kZXhdICogc2lnbiAqIHRoaXMubGltaXQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc2l0aW9uUHJvcG9ydGlvbnNbaW5kZXhdICogJGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIGFuaW1hdGlvbigpOiBhbnkge1xuICAgICAgICByZXR1cm4gW3tcbiAgICAgICAgICAgIHRhcmdldDogKCkgPT4gdGhpcy5saSxcbiAgICAgICAgICAgIGNzczoge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZTNkKCR7eyREICsgJGR9fXB4LCAwLCAwKSdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgeyAvLyBzdHlsZXMgdG8gYmUgYXBwbGllZCBvbiB0aGUgY2hpbGQgZWxlbWVudHMgb2YgYWN0aW9uIHBhbmVsXG4gICAgICAgICAgICB0YXJnZXQ6ICgpID0+ICh0aGlzLmFjdGlvblBhbmVsICYmIHRoaXMuYWN0aW9uUGFuZWwuY2hpbGRyZW4oKSksXG4gICAgICAgICAgICBjc3M6IHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGUzZCgke3tjb21wdXRlQWN0aW9uVHJhbnNpdGlvbigkaSwgJEQgKyAkZCl9fXB4LCAwLCAwKSdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfV07XG4gICAgfVxuXG4gICAgLy8gVHJpZ2dlcnMgZnVsbCBzd2lwZSBldmVudCBvbiB0aGUgdGFyZ2V0IGVsZW1lbnQuXG4gICAgcHVibGljIGludm9rZUZ1bGxTd2lwZUV2dCgkZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGxldCB0YXJnZXQsIGFjdGlvbnMsIGluZGV4O1xuICAgICAgICAvLyBDaGVjayBpZiBidXR0b24gYXJlIHZpc2libGUgb3Igbm90LCBpbnZva2UgdGhlIHRhcCBldmVudCBvZiB0aGUgbGFzdCBidXR0b24gd2hpY2ggaXMgdmlzaWJsZS5cbiAgICAgICAgaWYgKHRoaXMucG9zaXRpb24gPT09ICdsZWZ0Jykge1xuICAgICAgICAgICAgYWN0aW9ucyA9IHRoaXMuYWN0aW9uSXRlbXMuZmlsdGVyKGJ0biA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJ0bi5nZXRBdHRyKCdzd2lwZS1wb3NpdGlvbicpID09PSAnbGVmdCcgJiYgYnRuLiRlbGVtZW50LmlzKCc6dmlzaWJsZScpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpbmRleCA9IDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhY3Rpb25zID0gdGhpcy5hY3Rpb25JdGVtcy5maWx0ZXIoYnRuID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYnRuLmdldEF0dHIoJ3N3aXBlLXBvc2l0aW9uJykgPT09ICdyaWdodCcgJiYgYnRuLiRlbGVtZW50LmlzKCc6dmlzaWJsZScpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpbmRleCA9IGFjdGlvbnMubGVuZ3RoIC0gMTtcbiAgICAgICAgfVxuICAgICAgICB0YXJnZXQgPSBhY3Rpb25zW2luZGV4XTtcbiAgICAgICAgaWYgKHRhcmdldCAmJiB0YXJnZXQuaGFzRXZlbnRDYWxsYmFjaygndGFwJykpIHtcbiAgICAgICAgICAgIHRhcmdldC5pbnZva2VFdmVudENhbGxiYWNrKCd0YXAnLCB7JGV2ZW50fSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZXNldFN0YXRlKCk7XG4gICAgICAgIHRoaXMubGkgPSBudWxsO1xuICAgIH1cblxuICAgIC8vIENhbGxlZCB3aGVuIHN3aXBlRW5kIGlzIHRyaWdnZXJlZC4gZCBjb250YWlucyB0aGUgdG90YWwgZGlzdGFuY2UgY292ZXJlZCBieSB0aGUgZWxlbWVudCB1bnRpbCB0b3VjaEVuZC5cbiAgICBwdWJsaWMgb25BbmltYXRpb24oJGV2ZW50OiBFdmVudCwgZDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIC8vIHNldCB0aGUgc2VsZWN0ZWRpdGVtIG9uIHRoZSBsaXN0IGNvbXBvbmVudCBvbiBzd2lwZS5cbiAgICAgICAgdGhpcy5saXN0LnRyaWdnZXJMaXN0SXRlbVNlbGVjdGlvbih0aGlzLmxpLCAkZXZlbnQpO1xuICAgICAgICBpZiAodGhpcy5hY3Rpb25QYW5lbCAmJiB0aGlzLmFjdGlvblBhbmVsLmF0dHIoJ2VuYWJsZWZ1bGxzd2lwZScpID09PSAndHJ1ZScpIHtcbiAgICAgICAgICAgIGNvbnN0IHNpZ24gPSBkID4gMCA/IDEgOiAtMTtcbiAgICAgICAgICAgIGNvbnN0ICRlbCA9IHRoaXMuZ2V0Q2hpbGRBY3Rpb25FbGVtZW50KHRoaXMuYWN0aW9uUGFuZWwpO1xuICAgICAgICAgICAgaWYgKCRlbCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5wb3NpdGlvbiA9PT0gJ3JpZ2h0JyA/IHRoaXMucmlnaHRDaGlsZHJlbkNvdW50IC0gMSA6IDA7XG4gICAgICAgICAgICAgICAgLy8gcHJvcG9ydGlvbmF0ZSBhbW91bnQgb2YgZGlzdGFuY2UgY292ZXJlZCBieSB0aGUgdGFyZ2V0IGVsZW1lbnQuXG4gICAgICAgICAgICAgICAgY29uc3QgZGlzdFBlcmNlbnRhZ2UgPSB0aGlzLnRyYW5zaXRpb25Qcm9wb3J0aW9uc1tpbmRleF0gKiBzaWduICogZCAqIDEwMCAvICh0aGlzLmxpLm91dGVyV2lkdGgoKSAtIHRoaXMubGltaXQgKyAkZWwud2lkdGgoKSk7XG5cbiAgICAgICAgICAgICAgICAvLyBJZiBkaXN0YW5jZSB0cmF2ZWxsZWQgYnkgdGhlIHRhcmdldCBidXR0b24gZWxlbWVudCBpcyBtb3JlIHRoYW4gNTAlIG9mIHRoZSBsaXN0IGl0ZW0gd2lkdGggdGhlbiBpbnZva2UgdGhlIGZ1bGxzd2lwZS5cbiAgICAgICAgICAgICAgICBpZiAoZGlzdFBlcmNlbnRhZ2UgPiA1MCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBpbnZva2UgZnVsbHN3aXBlIGV2ZW50XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW52b2tlRnVsbFN3aXBlRXZ0KCRldmVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uTG93ZXIoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnBvc2l0aW9uID09PSAnbGVmdCcpIHtcbiAgICAgICAgICAgIHRoaXMucmVzZXRTdGF0ZSgpO1xuICAgICAgICAgICAgdGhpcy5saSA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25VcHBlcigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucG9zaXRpb24gPT09ICdyaWdodCcpIHtcbiAgICAgICAgICAgIHRoaXMucmVzZXRTdGF0ZSgpO1xuICAgICAgICAgICAgdGhpcy5saSA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgdGhyZXNob2xkKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAxMDtcbiAgICB9XG59XG4iXX0=