@coolon/angular-ui-powerups 16.1.0-alpha.238 → 16.1.0-aplpha.0

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 (400) hide show
  1. package/assets/activities/activities.scss +6 -8
  2. package/assets/activities/input-activities.scss +6 -14
  3. package/assets/form.scss +23 -77
  4. package/assets/icons.scss +1 -2
  5. package/assets/interaction/editor/inline-string-editor.scss +0 -4
  6. package/assets/interaction.scss +1 -1
  7. package/assets/styles.scss +0 -4
  8. package/assets/table.scss +31 -84
  9. package/assets/tabs.scss +2 -15
  10. package/esm2022/lib/angular-ui-powerups.module.mjs +9 -9
  11. package/esm2022/lib/animations/slide-animations.mjs +10 -15
  12. package/esm2022/lib/components/alignment.mjs +1 -1
  13. package/esm2022/lib/components/busy-overlay/busy-overlay.component.mjs +12 -7
  14. package/esm2022/lib/components/cards/abstract-card-container.component.mjs +7 -31
  15. package/esm2022/lib/components/cards/card-container/card-container.component.mjs +6 -6
  16. package/esm2022/lib/components/cards/card-stack/card-stack.component.mjs +81 -0
  17. package/esm2022/lib/components/commands/command/command.component.mjs +33 -35
  18. package/esm2022/lib/components/commands/command-face/command-face.component.mjs +5 -13
  19. package/esm2022/lib/components/commands/command-face.mjs +11 -12
  20. package/esm2022/lib/components/commands/flex.component.mjs +4 -4
  21. package/esm2022/lib/components/commands/group/command-container.mjs +1 -1
  22. package/esm2022/lib/components/commands/group/popup-aware.component.mjs +8 -31
  23. package/esm2022/lib/components/commands/group/popup-container.mjs +1 -1
  24. package/esm2022/lib/components/commands/group/popup-menu/abstract-popup-menu.component.mjs +25 -27
  25. package/esm2022/lib/components/commands/group/popup-menu/more-menu.component.mjs +24 -15
  26. package/esm2022/lib/components/commands/group/popup-menu/popup-menu-renderer/popup-menu-renderer.component.mjs +12 -18
  27. package/esm2022/lib/components/commands/group/popup-menu/popup-menu.component.mjs +23 -14
  28. package/esm2022/lib/components/commands/group/tool-bar/tool-bar.component.mjs +19 -12
  29. package/esm2022/lib/components/commands/separator.component.mjs +14 -8
  30. package/esm2022/lib/components/components.module.mjs +58 -73
  31. package/esm2022/lib/components/disposable-component.mjs +40 -74
  32. package/esm2022/lib/components/empty-state/empty-state.component.mjs +9 -5
  33. package/esm2022/lib/components/exports.mjs +12 -16
  34. package/esm2022/lib/components/focus-container/focus-container.component.mjs +4 -4
  35. package/esm2022/lib/components/focusable.component.mjs +5 -5
  36. package/esm2022/lib/components/forms/abstract-input.component.mjs +18 -67
  37. package/esm2022/lib/components/forms/abstract-list-input.component.mjs +4 -4
  38. package/esm2022/lib/components/forms/abstract-value-input.component.mjs +4 -4
  39. package/esm2022/lib/components/forms/autocomplete-input/autocomplete-input.component.mjs +15 -18
  40. package/esm2022/lib/components/forms/checkbox-input/checkbox-input.component.mjs +8 -10
  41. package/esm2022/lib/components/forms/multiple-select-input/multiple-select-input.component.mjs +11 -12
  42. package/esm2022/lib/components/forms/number-input/number-input.component.mjs +13 -94
  43. package/esm2022/lib/components/forms/password-input/password-input.component.mjs +7 -44
  44. package/esm2022/lib/components/forms/select-input/select-input.component.mjs +19 -21
  45. package/esm2022/lib/components/forms/string-input/string-input.component.mjs +16 -35
  46. package/esm2022/lib/components/forms/text-input/text-input.component.mjs +8 -12
  47. package/esm2022/lib/components/icon/icon.component.mjs +7 -10
  48. package/esm2022/lib/components/labelled-value/labelled-value.component.mjs +4 -4
  49. package/esm2022/lib/components/loading-container/loading-container.component.mjs +12 -7
  50. package/esm2022/lib/components/noop/noop.component.mjs +7 -5
  51. package/esm2022/lib/components/resize-aware.component.mjs +27 -64
  52. package/esm2022/lib/components/scroll-container/scroll-container.component.mjs +5 -5
  53. package/esm2022/lib/components/section-header/section-header.component.mjs +4 -4
  54. package/esm2022/lib/components/switch-case/switch-case.component.mjs +17 -15
  55. package/esm2022/lib/components/tables/abstract-table-model.mjs +113 -116
  56. package/esm2022/lib/components/tables/abstract-table.component.mjs +8 -23
  57. package/esm2022/lib/components/tables/column/column-list-model.mjs +44 -0
  58. package/esm2022/lib/components/tables/column/column-model.mjs +23 -20
  59. package/esm2022/lib/components/tables/column/column-template/column-template.directive.mjs +4 -5
  60. package/esm2022/lib/components/tables/column/custom-template-column-model.mjs +3 -4
  61. package/esm2022/lib/components/tables/column/custom-value-column-model.mjs +5 -5
  62. package/esm2022/lib/components/tables/column/editor-controls-column-model.mjs +21 -0
  63. package/esm2022/lib/components/tables/column/list-propery-column-model.mjs +21 -8
  64. package/esm2022/lib/components/tables/column/property-column-model.mjs +20 -7
  65. package/esm2022/lib/components/tables/column/selection-column-model.mjs +13 -35
  66. package/esm2022/lib/components/tables/editor/edit-row-controls/edit-row-controls.component.mjs +60 -0
  67. package/esm2022/lib/components/tables/editor/edit-session.mjs +26 -0
  68. package/esm2022/lib/components/tables/editor/editable-cell-renderer.mjs +2 -0
  69. package/esm2022/lib/components/tables/filter/column-text-search-formatter.mjs +1 -1
  70. package/esm2022/lib/components/tables/filter/enable-cell-text-search.decorator.mjs +2 -3
  71. package/esm2022/lib/components/tables/filter/table-filter-model.mjs +12 -16
  72. package/esm2022/lib/components/tables/filter/text-search-predicate.mjs +2 -17
  73. package/esm2022/lib/components/tables/paginator/paginator.component.mjs +5 -5
  74. package/esm2022/lib/components/tables/renderer/cell-editors.mjs +2 -0
  75. package/esm2022/lib/components/tables/renderer/cell-portal-ref.mjs +26 -22
  76. package/esm2022/lib/components/tables/renderer/default-cell-renderer/default-cell-renderer.component.mjs +8 -6
  77. package/esm2022/lib/components/tables/renderer/default-header-cell-renderer/default-header-cell-renderer.component.mjs +7 -5
  78. package/esm2022/lib/components/tables/renderer/select-header-cell/selection-header-cell.component.mjs +8 -19
  79. package/esm2022/lib/components/tables/renderer/selection-cell/selection-cell.component.mjs +9 -18
  80. package/esm2022/lib/components/tables/renderer/table-body/table-body.component.mjs +53 -266
  81. package/esm2022/lib/components/tables/renderer/table-cell/table-cell.component.mjs +50 -9
  82. package/esm2022/lib/components/tables/renderer/table-header-cell/table-header-cell.component.mjs +7 -5
  83. package/esm2022/lib/components/tables/renderer/table-more-menu/table-more-menu-popup/table-more-menu-popup.component.mjs +33 -0
  84. package/esm2022/lib/components/tables/renderer/table-more-menu/table-more-menu.component.mjs +60 -0
  85. package/esm2022/lib/components/tables/table/table-model.mjs +35 -18
  86. package/esm2022/lib/components/tables/table/table.component.mjs +64 -42
  87. package/esm2022/lib/components/tables/table-row-menu/table-row-menu.component.mjs +84 -0
  88. package/esm2022/lib/components/tables/tree-table/decorated-tree-node.mjs +4 -5
  89. package/esm2022/lib/components/tables/tree-table/flattened-tree-list-model.mjs +1 -1
  90. package/esm2022/lib/components/tables/tree-table/tree-expansion-model.mjs +1 -1
  91. package/esm2022/lib/components/tables/tree-table/tree-inheritance-icon/tree-inheritance-icon.component.mjs +7 -5
  92. package/esm2022/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.mjs +6 -6
  93. package/esm2022/lib/components/tables/tree-table/tree-label-column-model.mjs +4 -4
  94. package/esm2022/lib/components/tables/tree-table/tree-table-component.mjs +8 -15
  95. package/esm2022/lib/components/tables/tree-table/tree-table-model.mjs +7 -4
  96. package/esm2022/lib/components/text/markdown/markdown.component.mjs +6 -6
  97. package/esm2022/lib/components/track.mjs +1 -1
  98. package/esm2022/lib/components/types/bounds.class.mjs +1 -1
  99. package/esm2022/lib/components/types/loadable.mjs +2 -0
  100. package/esm2022/lib/components/vertical-focus-container/vertical-focus-container.component.mjs +4 -4
  101. package/esm2022/lib/directives/command.directive.mjs +14 -26
  102. package/esm2022/lib/directives/directives.module.mjs +10 -10
  103. package/esm2022/lib/directives/exports.mjs +1 -2
  104. package/esm2022/lib/directives/focus-binding-factory.mjs +4 -5
  105. package/esm2022/lib/directives/focus-binding.directive.mjs +5 -5
  106. package/esm2022/lib/directives/focus-binding.mjs +2 -22
  107. package/esm2022/lib/directives/garbage-collector.directive.mjs +4 -5
  108. package/esm2022/lib/directives/highlight-text-model.directive.mjs +4 -4
  109. package/esm2022/lib/directives/highlight.pipe.mjs +13 -22
  110. package/esm2022/lib/interaction/abstract-interaction-context.mjs +8 -6
  111. package/esm2022/lib/interaction/activity-ref.mjs +2 -2
  112. package/esm2022/lib/interaction/activity.mjs +23 -24
  113. package/esm2022/lib/interaction/alert.mjs +2 -2
  114. package/esm2022/lib/interaction/components/abstract-confirm-dialog.component.mjs +10 -14
  115. package/esm2022/lib/interaction/components/abstract-dialog.component.mjs +45 -5
  116. package/esm2022/lib/interaction/components/activity-actions/activity-actions.component.mjs +17 -30
  117. package/esm2022/lib/interaction/components/activity-body/activity-body.component.mjs +4 -10
  118. package/esm2022/lib/interaction/components/activity-container/activity-container.component.mjs +25 -119
  119. package/esm2022/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.mjs +19 -55
  120. package/esm2022/lib/interaction/components/activity-title/activity-title.component.mjs +6 -6
  121. package/esm2022/lib/interaction/components/activity-triggers/abstract-activity-trigger.component.mjs +4 -5
  122. package/esm2022/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.mjs +4 -5
  123. package/esm2022/lib/interaction/components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component.mjs +4 -5
  124. package/esm2022/lib/interaction/components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component.mjs +4 -5
  125. package/esm2022/lib/interaction/components/add-card-activity/add-card-activity.component.mjs +4 -4
  126. package/esm2022/lib/interaction/components/add-item-interaction-context/add-item-interaction-context.component.mjs +4 -5
  127. package/esm2022/lib/interaction/components/alert-dialog/alert-dialog.component.mjs +12 -12
  128. package/esm2022/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.mjs +10 -6
  129. package/esm2022/lib/interaction/components/confirm-then-execute-dialog/confirm-then-execute-dialog.component.mjs +10 -6
  130. package/esm2022/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.mjs +11 -9
  131. package/esm2022/lib/interaction/components/editors/edit-context.mjs +1 -1
  132. package/esm2022/lib/interaction/components/editors/inline-string-editor/inline-editor-model.mjs +2 -2
  133. package/esm2022/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.mjs +13 -13
  134. package/esm2022/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.mjs +9 -25
  135. package/esm2022/lib/interaction/components/input-activities/input-activity.mjs +5 -6
  136. package/esm2022/lib/interaction/components/input-activities/select-input-activity.mjs +38 -44
  137. package/esm2022/lib/interaction/components/input-activities/string-input-activity.mjs +12 -14
  138. package/esm2022/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.mjs +5 -6
  139. package/esm2022/lib/interaction/confirm.mjs +2 -26
  140. package/esm2022/lib/interaction/directives/interaction-context-trigger-for.directive.mjs +6 -6
  141. package/esm2022/lib/interaction/exports.mjs +1 -6
  142. package/esm2022/lib/interaction/in-place-interaction-context.mjs +1 -1
  143. package/esm2022/lib/interaction/interaction-context.mjs +2 -3
  144. package/esm2022/lib/interaction/interaction.module.mjs +36 -44
  145. package/esm2022/lib/interaction/route-synchronisation-adapter.mjs +1 -1
  146. package/esm2022/lib/interaction/services/interaction-service-routing-adapter.mjs +4 -4
  147. package/esm2022/lib/interaction/services/interaction.service.mjs +10 -23
  148. package/esm2022/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context-factory.mjs +10 -16
  149. package/esm2022/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context.mjs +5 -29
  150. package/esm2022/lib/interaction/services/modal-interaction-context.factory.mjs +1 -1
  151. package/esm2022/lib/place/components/abstract-place-navigation.component.mjs +5 -15
  152. package/esm2022/lib/place/components/list-place-nav/list-place-nav.component.mjs +9 -8
  153. package/esm2022/lib/place/components/not-authorised-notice/not-authorised-notice.component.mjs +7 -5
  154. package/esm2022/lib/place/components/place-outlet/place-outlet.component.mjs +21 -23
  155. package/esm2022/lib/place/components/place-outlet/route-animations.mjs +1 -1
  156. package/esm2022/lib/place/components/side-place-navigation/side-place-navigation.component.mjs +11 -19
  157. package/esm2022/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.mjs +7 -7
  158. package/esm2022/lib/place/guards/consolidated-param-map.mjs +4 -4
  159. package/esm2022/lib/place/guards/noop-auth-guard.service.mjs +7 -5
  160. package/esm2022/lib/place/guards/place.guard.mjs +14 -30
  161. package/esm2022/lib/place/navigation/place-component-deactivation-handler.mjs +2 -2
  162. package/esm2022/lib/place/navigation/session/abstract-pop-state-navigation.mjs +1 -1
  163. package/esm2022/lib/place/navigation/session/event-cleanup/event-clean-up-session.mjs +1 -1
  164. package/esm2022/lib/place/navigation/session/event-cleanup/wait-until-leaving-interaction-transition-cancelled.mjs +1 -1
  165. package/esm2022/lib/place/navigation/session/event-cleanup/wait-until-link-triggered-navigation-interaction-cancelation-type-determined.mjs +1 -1
  166. package/esm2022/lib/place/navigation/session/event-cleanup/wait-until-popstate-during-can-deactivate-transition-finishes.mjs +1 -1
  167. package/esm2022/lib/place/navigation/session/interactions/navigating-during-interaction.mjs +2 -2
  168. package/esm2022/lib/place/navigation/session/interactions/pop-state-during-interaction-navigation.mjs +1 -1
  169. package/esm2022/lib/place/navigation/session/interactions/remove-last-interaction-from-url-navigation-session.mjs +4 -39
  170. package/esm2022/lib/place/navigation/session/interactions/synchronise-interaction-context-ids-with-route.mjs +9 -9
  171. package/esm2022/lib/place/navigation/session/navigating.mjs +2 -2
  172. package/esm2022/lib/place/navigation/session/navigation-context.mjs +1 -1
  173. package/esm2022/lib/place/navigation/session/navigation-session.mjs +2 -11
  174. package/esm2022/lib/place/navigation/session/pop-state-navigation.mjs +1 -1
  175. package/esm2022/lib/place/place-access-guard.mjs +1 -1
  176. package/esm2022/lib/place/place-auth-service.mjs +7 -8
  177. package/esm2022/lib/place/place-component.mjs +79 -82
  178. package/esm2022/lib/place/place-config.mjs +1 -1
  179. package/esm2022/lib/place/place-definition.mjs +5 -18
  180. package/esm2022/lib/place/place-history.mjs +8 -17
  181. package/esm2022/lib/place/place-router.mjs +70 -191
  182. package/esm2022/lib/place/place.decorator.mjs +3 -4
  183. package/esm2022/lib/place/place.module.mjs +17 -17
  184. package/esm2022/lib/place/route/formatter.mjs +2 -2
  185. package/esm2022/lib/place/route/json-types.mjs +1 -1
  186. package/esm2022/lib/place/route/parameter-decorators.mjs +51 -55
  187. package/esm2022/lib/place/route/parameter-definition.mjs +2 -6
  188. package/esm2022/lib/place/route/parameter-sanitiser.mjs +2 -7
  189. package/esm2022/lib/place/route/parameter-snapshot.mjs +1 -1
  190. package/esm2022/lib/place/route/visit-segment-sanitiser.mjs +1 -1
  191. package/esm2022/lib/place/url-service.mjs +4 -4
  192. package/esm2022/lib/place/url-snapshot.mjs +3 -3
  193. package/esm2022/lib/place/visit-segment.mjs +2 -3
  194. package/esm2022/lib/place/visit.mjs +5 -5
  195. package/esm2022/lib/services/markdown/markdown.service.mjs +7 -5
  196. package/esm2022/lib/services/markdown/pill-plugin.mjs +3 -1
  197. package/esm2022/lib/services/visibility-service.mjs +7 -7
  198. package/fesm2022/coolon-angular-ui-powerups.mjs +3634 -5281
  199. package/fesm2022/coolon-angular-ui-powerups.mjs.map +1 -1
  200. package/lib/angular-ui-powerups.module.d.ts +5 -5
  201. package/lib/animations/slide-animations.d.ts +0 -1
  202. package/lib/components/busy-overlay/busy-overlay.component.d.ts +4 -1
  203. package/lib/components/cards/abstract-card-container.component.d.ts +3 -6
  204. package/lib/components/cards/card-container/card-container.component.d.ts +1 -1
  205. package/lib/components/cards/card-stack/card-stack.component.d.ts +68 -0
  206. package/lib/components/commands/command/command.component.d.ts +10 -9
  207. package/lib/components/commands/command-face/command-face.component.d.ts +0 -2
  208. package/lib/components/commands/command-face.d.ts +9 -8
  209. package/lib/components/commands/group/popup-aware.component.d.ts +5 -10
  210. package/lib/components/commands/group/popup-container.d.ts +1 -1
  211. package/lib/components/commands/group/popup-menu/abstract-popup-menu.component.d.ts +6 -6
  212. package/lib/components/commands/group/popup-menu/more-menu.component.d.ts +4 -2
  213. package/lib/components/commands/group/popup-menu/popup-menu-renderer/popup-menu-renderer.component.d.ts +2 -4
  214. package/lib/components/commands/group/popup-menu/popup-menu.component.d.ts +4 -2
  215. package/lib/components/commands/group/tool-bar/tool-bar.component.d.ts +7 -3
  216. package/lib/components/commands/separator.component.d.ts +4 -2
  217. package/lib/components/components.module.d.ts +30 -33
  218. package/lib/components/disposable-component.d.ts +9 -26
  219. package/lib/components/empty-state/empty-state.component.d.ts +4 -1
  220. package/lib/components/exports.d.ts +11 -15
  221. package/lib/components/forms/abstract-input.component.d.ts +7 -16
  222. package/lib/components/forms/abstract-list-input.component.d.ts +1 -1
  223. package/lib/components/forms/abstract-value-input.component.d.ts +1 -1
  224. package/lib/components/forms/autocomplete-input/autocomplete-input.component.d.ts +2 -2
  225. package/lib/components/forms/checkbox-input/checkbox-input.component.d.ts +0 -2
  226. package/lib/components/forms/number-input/number-input.component.d.ts +4 -16
  227. package/lib/components/forms/password-input/password-input.component.d.ts +1 -7
  228. package/lib/components/forms/select-input/select-input.component.d.ts +3 -4
  229. package/lib/components/forms/string-input/string-input.component.d.ts +1 -7
  230. package/lib/components/forms/text-input/text-input.component.d.ts +0 -3
  231. package/lib/components/loading-container/loading-container.component.d.ts +4 -1
  232. package/lib/components/noop/noop.component.d.ts +1 -0
  233. package/lib/components/resize-aware.component.d.ts +7 -26
  234. package/lib/components/switch-case/switch-case.component.d.ts +7 -6
  235. package/lib/components/tables/abstract-table-model.d.ts +37 -51
  236. package/lib/components/tables/abstract-table.component.d.ts +7 -8
  237. package/lib/components/tables/column/column-list-model.d.ts +13 -0
  238. package/lib/components/tables/column/column-model.d.ts +17 -14
  239. package/lib/components/tables/column/custom-template-column-model.d.ts +2 -3
  240. package/lib/components/tables/column/custom-value-column-model.d.ts +3 -4
  241. package/lib/components/tables/column/editor-controls-column-model.d.ts +13 -0
  242. package/lib/components/tables/column/list-propery-column-model.d.ts +7 -5
  243. package/lib/components/tables/column/property-column-model.d.ts +9 -7
  244. package/lib/components/tables/column/selection-column-model.d.ts +4 -10
  245. package/lib/components/tables/editor/edit-row-controls/edit-row-controls.component.d.ts +17 -0
  246. package/lib/components/tables/editor/edit-session.d.ts +9 -0
  247. package/lib/components/tables/{renderer → editor}/editable-cell-renderer.d.ts +1 -1
  248. package/lib/components/tables/filter/enable-cell-text-search.decorator.d.ts +1 -1
  249. package/lib/components/tables/filter/table-filter-model.d.ts +1 -1
  250. package/lib/components/tables/filter/text-search-predicate.d.ts +0 -9
  251. package/lib/components/tables/renderer/cell-editors.d.ts +9 -0
  252. package/lib/components/tables/renderer/cell-portal-ref.d.ts +25 -22
  253. package/lib/components/tables/renderer/default-cell-renderer/default-cell-renderer.component.d.ts +2 -1
  254. package/lib/components/tables/renderer/default-header-cell-renderer/default-header-cell-renderer.component.d.ts +1 -0
  255. package/lib/components/tables/renderer/select-header-cell/selection-header-cell.component.d.ts +2 -3
  256. package/lib/components/tables/renderer/selection-cell/selection-cell.component.d.ts +0 -1
  257. package/lib/components/tables/renderer/table-body/table-body.component.d.ts +21 -55
  258. package/lib/components/tables/renderer/table-cell/table-cell.component.d.ts +14 -5
  259. package/lib/components/tables/renderer/table-header-cell/table-header-cell.component.d.ts +1 -0
  260. package/lib/components/tables/renderer/table-more-menu/table-more-menu-popup/table-more-menu-popup.component.d.ts +15 -0
  261. package/lib/components/tables/renderer/table-more-menu/table-more-menu.component.d.ts +23 -0
  262. package/lib/components/tables/table/table-model.d.ts +36 -10
  263. package/lib/components/tables/table/table.component.d.ts +13 -17
  264. package/lib/components/tables/table-row-menu/table-row-menu.component.d.ts +28 -0
  265. package/lib/components/tables/tree-table/flattened-tree-list-model.d.ts +1 -1
  266. package/lib/components/tables/tree-table/tree-expansion-model.d.ts +2 -2
  267. package/lib/components/tables/tree-table/tree-inheritance-icon/tree-inheritance-icon.component.d.ts +1 -0
  268. package/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.d.ts +3 -3
  269. package/lib/components/tables/tree-table/tree-label-column-model.d.ts +3 -4
  270. package/lib/components/tables/tree-table/tree-table-component.d.ts +3 -6
  271. package/lib/components/tables/tree-table/tree-table-model.d.ts +6 -5
  272. package/lib/components/text/markdown/markdown.component.d.ts +1 -1
  273. package/lib/components/types/loadable.d.ts +5 -0
  274. package/lib/directives/command.directive.d.ts +5 -7
  275. package/lib/directives/directives.module.d.ts +5 -5
  276. package/lib/directives/exports.d.ts +0 -1
  277. package/lib/directives/focus-binding.d.ts +0 -1
  278. package/lib/directives/highlight.pipe.d.ts +2 -8
  279. package/lib/interaction/abstract-interaction-context.d.ts +5 -5
  280. package/lib/interaction/activity-ref.d.ts +4 -4
  281. package/lib/interaction/activity.d.ts +8 -8
  282. package/lib/interaction/components/abstract-confirm-dialog.component.d.ts +2 -3
  283. package/lib/interaction/components/abstract-dialog.component.d.ts +15 -6
  284. package/lib/interaction/components/activity-actions/activity-actions.component.d.ts +9 -12
  285. package/lib/interaction/components/activity-body/activity-body.component.d.ts +1 -2
  286. package/lib/interaction/components/activity-container/activity-container.component.d.ts +13 -32
  287. package/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.d.ts +7 -6
  288. package/lib/interaction/components/activity-title/activity-title.component.d.ts +1 -1
  289. package/lib/interaction/components/activity-triggers/abstract-activity-trigger.component.d.ts +2 -2
  290. package/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.d.ts +1 -1
  291. package/lib/interaction/components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component.d.ts +1 -1
  292. package/lib/interaction/components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component.d.ts +1 -1
  293. package/lib/interaction/components/add-card-activity/add-card-activity.component.d.ts +2 -2
  294. package/lib/interaction/components/add-item-interaction-context/add-item-interaction-context.component.d.ts +3 -3
  295. package/lib/interaction/components/alert-dialog/alert-dialog.component.d.ts +1 -6
  296. package/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.d.ts +2 -2
  297. package/lib/interaction/components/confirm-then-execute-dialog/confirm-then-execute-dialog.component.d.ts +2 -2
  298. package/lib/interaction/components/editors/edit-context.d.ts +1 -1
  299. package/lib/interaction/components/editors/inline-string-editor/inline-editor-model.d.ts +1 -1
  300. package/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.d.ts +2 -2
  301. package/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.d.ts +10 -12
  302. package/lib/interaction/components/input-activities/input-activity.d.ts +1 -1
  303. package/lib/interaction/components/input-activities/select-input-activity.d.ts +2 -2
  304. package/lib/interaction/components/input-activities/string-input-activity.d.ts +1 -1
  305. package/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.d.ts +2 -2
  306. package/lib/interaction/confirm.d.ts +0 -4
  307. package/lib/interaction/directives/interaction-context-trigger-for.directive.d.ts +5 -5
  308. package/lib/interaction/exports.d.ts +0 -5
  309. package/lib/interaction/in-place-interaction-context.d.ts +2 -2
  310. package/lib/interaction/interaction-context.d.ts +4 -10
  311. package/lib/interaction/interaction.module.d.ts +33 -35
  312. package/lib/interaction/route-synchronisation-adapter.d.ts +3 -3
  313. package/lib/interaction/services/interaction-service-routing-adapter.d.ts +4 -4
  314. package/lib/interaction/services/interaction.service.d.ts +4 -5
  315. package/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context-factory.d.ts +5 -4
  316. package/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context.d.ts +5 -6
  317. package/lib/interaction/services/modal-interaction-context.factory.d.ts +2 -2
  318. package/lib/place/components/abstract-place-navigation.component.d.ts +2 -3
  319. package/lib/place/components/not-authorised-notice/not-authorised-notice.component.d.ts +1 -0
  320. package/lib/place/components/place-outlet/place-outlet.component.d.ts +7 -6
  321. package/lib/place/components/side-place-navigation/side-place-navigation.component.d.ts +1 -2
  322. package/lib/place/guards/noop-auth-guard.service.d.ts +1 -0
  323. package/lib/place/guards/place.guard.d.ts +1 -8
  324. package/lib/place/navigation/place-component-deactivation-handler.d.ts +4 -4
  325. package/lib/place/navigation/session/abstract-pop-state-navigation.d.ts +1 -1
  326. package/lib/place/navigation/session/event-cleanup/wait-until-leaving-interaction-transition-cancelled.d.ts +3 -3
  327. package/lib/place/navigation/session/event-cleanup/wait-until-link-triggered-navigation-interaction-cancelation-type-determined.d.ts +3 -3
  328. package/lib/place/navigation/session/event-cleanup/wait-until-popstate-during-can-deactivate-transition-finishes.d.ts +3 -3
  329. package/lib/place/navigation/session/interactions/pop-state-during-interaction-navigation.d.ts +1 -1
  330. package/lib/place/navigation/session/interactions/remove-last-interaction-from-url-navigation-session.d.ts +3 -16
  331. package/lib/place/navigation/session/interactions/synchronise-interaction-context-ids-with-route.d.ts +1 -1
  332. package/lib/place/navigation/session/navigation-context.d.ts +5 -5
  333. package/lib/place/navigation/session/navigation-session.d.ts +8 -15
  334. package/lib/place/place-access-guard.d.ts +1 -1
  335. package/lib/place/place-auth-service.d.ts +8 -8
  336. package/lib/place/place-component.d.ts +23 -15
  337. package/lib/place/place-definition.d.ts +3 -6
  338. package/lib/place/place-history.d.ts +4 -5
  339. package/lib/place/place-router.d.ts +10 -41
  340. package/lib/place/place.decorator.d.ts +1 -9
  341. package/lib/place/place.module.d.ts +8 -8
  342. package/lib/place/route/json-types.d.ts +3 -1
  343. package/lib/place/route/parameter-decorators.d.ts +6 -5
  344. package/lib/place/route/parameter-definition.d.ts +5 -5
  345. package/lib/place/route/parameter-sanitiser.d.ts +1 -8
  346. package/lib/place/route/parameter-snapshot.d.ts +2 -2
  347. package/lib/place/route/visit-segment-sanitiser.d.ts +3 -3
  348. package/lib/place/url-service.d.ts +1 -1
  349. package/lib/place/url-snapshot.d.ts +1 -1
  350. package/lib/place/visit-segment.d.ts +6 -6
  351. package/lib/place/visit.d.ts +4 -4
  352. package/lib/services/markdown/markdown.service.d.ts +1 -0
  353. package/lib/services/visibility-service.d.ts +1 -1
  354. package/package.json +20 -19
  355. package/assets/draw.scss +0 -20
  356. package/assets/layout.scss +0 -3
  357. package/assets/place.scss +0 -31
  358. package/esm2022/lib/components/commands/button-renderer/button-renderer.component.mjs +0 -115
  359. package/esm2022/lib/components/file/file-download/file-download.component.mjs +0 -89
  360. package/esm2022/lib/components/forms/form-field.mjs +0 -2
  361. package/esm2022/lib/components/forms/search-input/search-input.component.mjs +0 -33
  362. package/esm2022/lib/components/loadable-component.mjs +0 -69
  363. package/esm2022/lib/components/tables/column/column-manager.mjs +0 -82
  364. package/esm2022/lib/components/tables/column/column-order-manager.mjs +0 -19
  365. package/esm2022/lib/components/tables/footer/footer-row-model.mjs +0 -135
  366. package/esm2022/lib/components/tables/renderer/abstract-cell-renderer.mjs +0 -7
  367. package/esm2022/lib/components/tables/renderer/editable-cell-renderer.mjs +0 -2
  368. package/esm2022/lib/components/tables/renderer/table-action-column/menu-builder.mjs +0 -2
  369. package/esm2022/lib/components/tables/renderer/table-action-column/table-action-column.component.mjs +0 -153
  370. package/esm2022/lib/components/tables/renderer/table-custom-more-menu/table-custom-more-menu-popup.component.mjs +0 -45
  371. package/esm2022/lib/components/tables/renderer/table-custom-more-menu/table-custom-more-menu.component.mjs +0 -71
  372. package/esm2022/lib/components/tables/renderer/table-footer-row/table-footer-row.component.mjs +0 -32
  373. package/esm2022/lib/directives/resize-observer.directive.mjs +0 -40
  374. package/esm2022/lib/interaction/activity-context.mjs +0 -4
  375. package/esm2022/lib/interaction/components/alert-renderer/alert-renderer.component.mjs +0 -55
  376. package/esm2022/lib/interaction/components/confirm-renderer/confirm-renderer.component.mjs +0 -54
  377. package/esm2022/lib/interaction/components/slide-down-interaction-context/slide-down-interaction-context.component.mjs +0 -134
  378. package/esm2022/lib/interaction/interaction-context-provider.mjs +0 -17
  379. package/esm2022/lib/place/place-metadata.mjs +0 -16
  380. package/lib/components/commands/button-renderer/button-renderer.component.d.ts +0 -30
  381. package/lib/components/file/file-download/file-download.component.d.ts +0 -45
  382. package/lib/components/forms/form-field.d.ts +0 -5
  383. package/lib/components/forms/search-input/search-input.component.d.ts +0 -10
  384. package/lib/components/loadable-component.d.ts +0 -20
  385. package/lib/components/tables/column/column-manager.d.ts +0 -19
  386. package/lib/components/tables/column/column-order-manager.d.ts +0 -20
  387. package/lib/components/tables/footer/footer-row-model.d.ts +0 -72
  388. package/lib/components/tables/renderer/abstract-cell-renderer.d.ts +0 -6
  389. package/lib/components/tables/renderer/table-action-column/menu-builder.d.ts +0 -7
  390. package/lib/components/tables/renderer/table-action-column/table-action-column.component.d.ts +0 -42
  391. package/lib/components/tables/renderer/table-custom-more-menu/table-custom-more-menu-popup.component.d.ts +0 -19
  392. package/lib/components/tables/renderer/table-custom-more-menu/table-custom-more-menu.component.d.ts +0 -24
  393. package/lib/components/tables/renderer/table-footer-row/table-footer-row.component.d.ts +0 -10
  394. package/lib/directives/resize-observer.directive.d.ts +0 -16
  395. package/lib/interaction/activity-context.d.ts +0 -9
  396. package/lib/interaction/components/alert-renderer/alert-renderer.component.d.ts +0 -17
  397. package/lib/interaction/components/confirm-renderer/confirm-renderer.component.d.ts +0 -15
  398. package/lib/interaction/components/slide-down-interaction-context/slide-down-interaction-context.component.d.ts +0 -53
  399. package/lib/interaction/interaction-context-provider.d.ts +0 -11
  400. package/lib/place/place-metadata.d.ts +0 -8
@@ -1,5 +1,5 @@
1
1
  import { lang } from '@coolon/typescript-utilities';
2
- import { isEqual } from 'lodash-es';
2
+ import { isEqual } from 'lodash';
3
3
  import { NavigationSession } from '../navigation-session';
4
4
  import { RemoveLastInteractionFromUrlNavigationSession } from './remove-last-interaction-from-url-navigation-session';
5
5
  export class SynchroniseInteractionContextIdsWithRoute extends NavigationSession {
@@ -13,7 +13,10 @@ export class SynchroniseInteractionContextIdsWithRoute extends NavigationSession
13
13
  return true;
14
14
  }
15
15
  notifyActive() {
16
- this.syncInteractionIdsWithRouter();
16
+ // TODO: Do I still need this??
17
+ setTimeout(() => {
18
+ this.syncInteractionIdsWithRouter();
19
+ });
17
20
  }
18
21
  // @Trace()
19
22
  onRouterEnd(event) {
@@ -64,12 +67,9 @@ export class SynchroniseInteractionContextIdsWithRoute extends NavigationSession
64
67
  // noop. Our url will be back to the non interaction version now so we dont' need to do anything.
65
68
  }
66
69
  else {
67
- // Pop our interaction id's from the browser history. We use location.back() (not an imperative
68
- // replaceUrl) so the history entry that opening the interaction pushed is actually removed —
69
- // that keeps the browser back button a clean one-click close. RemoveLastInteractionFromUrl...
70
- // self-heals to a replaceUrl if the back() is silently dropped (Chrome 149 + 1Password), so a
71
- // dropped back() can no longer strand the backdrop or wedge the router. See that session's docs.
72
- const session = new RemoveLastInteractionFromUrlNavigationSession(this.context, this.urlService.getCurrentRouterUrl(), urlSnapshot);
70
+ // now we just pop our interaction id's from the browser history.
71
+ // console.log(`Removal of the last activity wasn't triggered by pop state so we have to trigger one to clean the history`);
72
+ const session = new RemoveLastInteractionFromUrlNavigationSession(this.context, this.urlService.getCurrentRouterUrl());
73
73
  this.context.transitionTo(session);
74
74
  this.urlService.back();
75
75
  }
@@ -86,4 +86,4 @@ export class SynchroniseInteractionContextIdsWithRoute extends NavigationSession
86
86
  lang.methodNotSupported();
87
87
  }
88
88
  }
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luY2hyb25pc2UtaW50ZXJhY3Rpb24tY29udGV4dC1pZHMtd2l0aC1yb3V0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL3BsYWNlL25hdmlnYXRpb24vc2Vzc2lvbi9pbnRlcmFjdGlvbnMvc3luY2hyb25pc2UtaW50ZXJhY3Rpb24tY29udGV4dC1pZHMtd2l0aC1yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFFbEQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUVsQyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsNkNBQTZDLEVBQUMsTUFBTSx1REFBdUQsQ0FBQztBQUVwSCxNQUFNLE9BQU8seUNBQTBDLFNBQVEsaUJBQWlCO0lBSVI7SUFGN0QsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUU1QixZQUFZLE9BQTBCLEVBQUUsV0FBbUIsRUFBVyxzQkFBK0I7UUFDbkcsS0FBSyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUR3QywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQVM7SUFFckcsQ0FBQztJQUVELElBQWEsaUJBQWlCO1FBQzVCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUdRLFlBQVk7UUFDbkIsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELFdBQVc7SUFDRixXQUFXLENBQUMsS0FBb0I7UUFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxXQUFXO0lBQ0YsaUJBQWlCLENBQUMsS0FBdUI7UUFDaEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lB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LENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05hdmlnYXRpb25DYW5jZWwsIE5hdmlnYXRpb25FbmR9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge2xhbmd9IGZyb20gJ0Bjb29sb24vdHlwZXNjcmlwdC11dGlsaXRpZXMnO1xuXG5pbXBvcnQge2lzRXF1YWx9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgdHlwZSB7TmF2aWdhdGlvbkNvbnRleHR9IGZyb20gJy4uL25hdmlnYXRpb24tY29udGV4dCc7XG5pbXBvcnQge05hdmlnYXRpb25TZXNzaW9ufSBmcm9tICcuLi9uYXZpZ2F0aW9uLXNlc3Npb24nO1xuaW1wb3J0IHtSZW1vdmVMYXN0SW50ZXJhY3Rpb25Gcm9tVXJsTmF2aWdhdGlvblNlc3Npb259IGZyb20gJy4vcmVtb3ZlLWxhc3QtaW50ZXJhY3Rpb24tZnJvbS11cmwtbmF2aWdhdGlvbi1zZXNzaW9uJztcblxuZXhwb3J0IGNsYXNzIFN5bmNocm9uaXNlSW50ZXJhY3Rpb25Db250ZXh0SWRzV2l0aFJvdXRlIGV4dGVuZHMgTmF2aWdhdGlvblNlc3Npb24ge1xuXG4gIHJlYWRvbmx5IGlzUG9wU3RhdGUgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihjb250ZXh0OiBOYXZpZ2F0aW9uQ29udGV4dCwgc3RhcnRpbmdVcmw6IHN0cmluZywgcmVhZG9ubHkgd2FzVHJpZ2dlcmVkQnlQb3BTdGF0ZTogYm9vbGVhbikge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0YXJ0aW5nVXJsKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGdldCBpc0ludGVyYWN0aW9uU3luYygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG5cbiAgb3ZlcnJpZGUgbm90aWZ5QWN0aXZlKCkge1xuICAgIHRoaXMuc3luY0ludGVyYWN0aW9uSWRzV2l0aFJvdXRlcigpO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgb3ZlcnJpZGUgb25Sb3V0ZXJFbmQoZXZlbnQ6IE5hdmlnYXRpb25FbmQpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRleHQuZmluaXNoUm91dGluZ1Nlc3Npb24oKTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIG92ZXJyaWRlIG9uUm91dGVyQ2FuY2VsbGVkKGV2ZW50OiBOYXZpZ2F0aW9uQ2FuY2VsKTogdm9pZCB7XG4gICAgdGhpcy5jb250ZXh0LmZpbmlzaFJvdXRpbmdTZXNzaW9uKCk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBzeW5jSW50ZXJhY3Rpb25JZHNXaXRoUm91dGVyKCk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnRJZHMgPSB0aGlzLmludGVyYWN0aW9uU2VydmljZUFkYXB0ZXIuZ2V0QWN0aXZlSW50ZXJhY3Rpb25Db250ZXh0SWRzKCk7XG4gICAgY29uc3QgcHJldmlvdXNJZHMgPSB0aGlzLnVybFNlcnZpY2UuZ2V0Q3VycmVudExvY2F0aW9uVXJsU25hcHNob3QoKS5nZXRJbnRlcmFjdGlvbklkcygpO1xuICAgIC8vIGNvbnNvbGUubG9nKGAtLS0+IHN5bmNocm9uaXNlSW50ZXJhY3Rpb25JZHNgLCB7IGlzOiBjdXJyZW50SWRzLmpvaW4oJywnKSwgd2FzOiBwcmV2aW91c0lkcy5qb2luKCcsJykgfSk7XG4gICAgaWYgKGlzRXF1YWwoY3VycmVudElkcywgcHJldmlvdXNJZHMpKSB7XG4gICAgICAvLyBjb25zb2xlLmxvZygnIyMjIEFjdGl2aXR5IGNvbnRleHQgaWRzIHdlcmUgdGhlIHNhbWUsIHNraXBwaW5nJyk7XG4gICAgICB0aGlzLmNvbnRleHQuZmluaXNoUm91dGluZ1Nlc3Npb24oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGN1cnJlbnRJZHMubGVuZ3RoID4gcHJldmlvdXNJZHMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGlzRmlyc3RBY3Rpdml0eSA9IGN1cnJlbnRJZHMubGVuZ3RoID4gcHJldmlvdXNJZHMubGVuZ3RoICYmIHByZXZpb3VzSWRzLmxlbmd0aCA8IDE7XG4gICAgICAgIHRoaXMuYWRkQWN0aXZpdHlDb250ZXh0VG9Sb3V0ZShjdXJyZW50SWRzLCBpc0ZpcnN0QWN0aXZpdHkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW1vdmVBY3Rpdml0eUNvbnRleHRGcm9tUm91dGUoY3VycmVudElkcyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgYWRkQWN0aXZpdHlDb250ZXh0VG9Sb3V0ZShhY3RpdmVJbnRlcmFjdGlvbkNvbnRleHRJZHM6IHJlYWRvbmx5IHN0cmluZ1tdLCBpc0ZpcnN0OiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3QgdXJsU25hcHNob3QgPSB0aGlzLnVybFNlcnZpY2UuZ2V0Q3VycmVudFJvdXRlclNuYXBzaG90KCkudXBkYXRlSW50ZXJhY3Rpb25JZHMoYWN0aXZlSW50ZXJhY3Rpb25Db250ZXh0SWRzKTtcbiAgICB0aGlzLmNvbnRleHQubmF2aWdhdGVCeVVybCh1cmxTbmFwc2hvdCwge1xuICAgICAgcmVwbGFjZVVybDogIWlzRmlyc3RcbiAgICB9KS50aGVuKHJlc3VsdCA9PiB7XG4gICAgICBpZiAoIXRoaXMudXJsU2VydmljZS5nZXRDdXJyZW50TG9jYXRpb25VcmxTbmFwc2hvdCgpLmhhc0ludGVyYWN0aW9uSWRzKGFjdGl2ZUludGVyYWN0aW9uQ29udGV4dElkcykpIHtcbiAgICAgICAgbGFuZy5pbGxlZ2FsU3RhdGUoYEV4cGVjdGVkIHVybCB0byBiZSAke3VybFNuYXBzaG90LnVybH0gYnV0IHdhcyAke3RoaXMudXJsU2VydmljZS5nZXRDdXJyZW50TG9jYXRpb25VcmwoKX1gKTtcbiAgICAgICAgLy8gdGhpcy51cmxTZXJ2aWNlLnJlc2V0QnJvd3NlckxvY2F0aW9uKHVybFNuYXBzaG90LnVybCwge3JlcGxhY2VDdXJyZW50OiAhaXNGaXJzdH0pXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuXG4gIC8vIEBUcmFjZSgpXG4gIHJlbW92ZUFjdGl2aXR5Q29udGV4dEZyb21Sb3V0ZShhY3RpdmVJbnRlcmFjdGlvbkNvbnRleHRJZDogcmVhZG9ubHkgc3RyaW5nW10pOiB2b2lkIHtcbiAgICBjb25zdCB1cmxTbmFwc2hvdCA9IHRoaXMudXJsU2VydmljZS5nZXRDdXJyZW50Um91dGVyU25hcHNob3QoKS51cGRhdGVJbnRlcmFjdGlvbklkcyhhY3RpdmVJbnRlcmFjdGlvbkNvbnRleHRJZCk7XG4gICAgY29uc3QgaXNSZW1vdmluZ0xhc3RBY3Rpdml0eSA9IGFjdGl2ZUludGVyYWN0aW9uQ29udGV4dElkLmxlbmd0aCA8IDE7XG4gICAgaWYgKGlzUmVtb3ZpbmdMYXN0QWN0aXZpdHkpIHtcbiAgICAgIGlmICh0aGlzLndhc1RyaWdnZXJlZEJ5UG9wU3RhdGUpIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ3JlbW92YWwgd2FzIHRyaWdnZXJlZCBieSBwb3Agc3RhdGUsIG5vdGhpbmcgdG8gZG8uJyk7XG4gICAgICAgIC8vICAgbm9vcC4gIE91ciB1cmwgd2lsbCBiZSBiYWNrIHRvIHRoZSBub24gaW50ZXJhY3Rpb24gdmVyc2lvbiBub3cgc28gd2UgZG9udCcgbmVlZCB0byBkbyBhbnl0aGluZy5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFBvcCBvdXIgaW50ZXJhY3Rpb24gaWQncyBmcm9tIHRoZSBicm93c2VyIGhpc3RvcnkuIFdlIHVzZSBsb2NhdGlvbi5iYWNrKCkgKG5vdCBhbiBpbXBlcmF0aXZlXG4gICAgICAgIC8vIHJlcGxhY2VVcmwpIHNvIHRoZSBoaXN0b3J5IGVudHJ5IHRoYXQgb3BlbmluZyB0aGUgaW50ZXJhY3Rpb24gcHVzaGVkIGlzIGFjdHVhbGx5IHJlbW92ZWQg4oCUXG4gICAgICAgIC8vIHRoYXQga2VlcHMgdGhlIGJyb3dzZXIgYmFjayBidXR0b24gYSBjbGVhbiBvbmUtY2xpY2sgY2xvc2UuIFJlbW92ZUxhc3RJbnRlcmFjdGlvbkZyb21VcmwuLi5cbiAgICAgICAgLy8gc2VsZi1oZWFscyB0byBhIHJlcGxhY2VVcmwgaWYgdGhlIGJhY2soKSBpcyBzaWxlbnRseSBkcm9wcGVkIChDaHJvbWUgMTQ5ICsgMVBhc3N3b3JkKSwgc28gYVxuICAgICAgICAvLyBkcm9wcGVkIGJhY2soKSBjYW4gbm8gbG9uZ2VyIHN0cmFuZCB0aGUgYmFja2Ryb3Agb3Igd2VkZ2UgdGhlIHJvdXRlci4gU2VlIHRoYXQgc2Vzc2lvbidzIGRvY3MuXG4gICAgICAgIGNvbnN0IHNlc3Npb24gPSBuZXcgUmVtb3ZlTGFzdEludGVyYWN0aW9uRnJvbVVybE5hdmlnYXRpb25TZXNzaW9uKHRoaXMuY29udGV4dCwgdGhpcy51cmxTZXJ2aWNlLmdldEN1cnJlbnRSb3V0ZXJVcmwoKSwgdXJsU25hcHNob3QpO1xuICAgICAgICB0aGlzLmNvbnRleHQudHJhbnNpdGlvblRvKHNlc3Npb24pO1xuICAgICAgICB0aGlzLnVybFNlcnZpY2UuYmFjaygpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyB3ZSd2ZSByZW1vdmVkIGFuIGludGVyYWN0aW9uLCBidXQgd2Ugc3RpbGwgaGF2ZSByZW1haW5pbmcgYWN0aXZpdGllcyBzbyB3ZVxuICAgICAgLy8gdXBkYXRlIHRoZSB1cmwgaW4gcGxhY2UgaWYgaXQgd2Fzbid0IGEgcG9wIHN0YXRlLiBJZiBpdCB3YXMgYSBwb3Agc3RhdGUgd2UgbmVlZFxuICAgICAgLy8gdG8gIHB1c2ggaXQgYmFjayB1cC5cbiAgICAgIC8vIHRoaXMudXJsU2VydmljZS5yZXNldEJyb3dzZXJMb2NhdGlvbih1cmxTbmFwc2hvdC51cmwsIHsgcmVwbGFjZUN1cnJlbnQ6ICF0aGlzLndhc1RyaWdnZXJlZEJ5UG9wU3RhdGUgfSk7XG4gICAgICB0aGlzLmNvbnRleHQubmF2aWdhdGVCeVVybCh1cmxTbmFwc2hvdCwge3JlcGxhY2VVcmw6ICF0aGlzLndhc1RyaWdnZXJlZEJ5UG9wU3RhdGV9KTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVDYW5EZWFjdGl2YXRlQ2FuY2VsbGVkRXZlbnRTY2VuYXJpbyhuZXdVcmw6IHN0cmluZyk6IHZvaWQge1xuICAgIGxhbmcubWV0aG9kTm90U3VwcG9ydGVkKCk7XG4gIH1cblxufVxuIl19
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luY2hyb25pc2UtaW50ZXJhY3Rpb24tY29udGV4dC1pZHMtd2l0aC1yb3V0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL3BsYWNlL25hdmlnYXRpb24vc2Vzc2lvbi9pbnRlcmFjdGlvbnMvc3luY2hyb25pc2UtaW50ZXJhY3Rpb24tY29udGV4dC1pZHMtd2l0aC1yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFcEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUVqQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsNkNBQTZDLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUV0SCxNQUFNLE9BQU8seUNBQTBDLFNBQVEsaUJBQWlCO0lBSVI7SUFGN0QsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUU1QixZQUFZLE9BQTBCLEVBQUUsV0FBbUIsRUFBVyxzQkFBK0I7UUFDbkcsS0FBSyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUR3QywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQVM7SUFFckcsQ0FBQztJQUVELElBQWEsaUJBQWlCO1FBQzVCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUdRLFlBQVk7UUFDbkIsK0JBQStCO1FBQy9CLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO0lBQ0YsV0FBVyxDQUFDLEtBQW9CO1FBQ3ZDLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsV0FBVztJQUNGLGlCQUFp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RCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOYXZpZ2F0aW9uQ2FuY2VsLCBOYXZpZ2F0aW9uRW5kIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGxhbmcgfSBmcm9tICdAY29vbG9uL3R5cGVzY3JpcHQtdXRpbGl0aWVzJztcblxuaW1wb3J0IHsgaXNFcXVhbCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uQ29udGV4dCB9IGZyb20gJy4uL25hdmlnYXRpb24tY29udGV4dCc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2Vzc2lvbiB9IGZyb20gJy4uL25hdmlnYXRpb24tc2Vzc2lvbic7XG5pbXBvcnQgeyBSZW1vdmVMYXN0SW50ZXJhY3Rpb25Gcm9tVXJsTmF2aWdhdGlvblNlc3Npb24gfSBmcm9tICcuL3JlbW92ZS1sYXN0LWludGVyYWN0aW9uLWZyb20tdXJsLW5hdmlnYXRpb24tc2Vzc2lvbic7XG5cbmV4cG9ydCBjbGFzcyBTeW5jaHJvbmlzZUludGVyYWN0aW9uQ29udGV4dElkc1dpdGhSb3V0ZSBleHRlbmRzIE5hdmlnYXRpb25TZXNzaW9uIHtcblxuICByZWFkb25seSBpc1BvcFN0YXRlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoY29udGV4dDogTmF2aWdhdGlvbkNvbnRleHQsIHN0YXJ0aW5nVXJsOiBzdHJpbmcsIHJlYWRvbmx5IHdhc1RyaWdnZXJlZEJ5UG9wU3RhdGU6IGJvb2xlYW4pIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdGFydGluZ1VybCk7XG4gIH1cblxuICBvdmVycmlkZSBnZXQgaXNJbnRlcmFjdGlvblN5bmMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuXG4gIG92ZXJyaWRlIG5vdGlmeUFjdGl2ZSgpIHtcbiAgICAvLyBUT0RPOiBEbyBJIHN0aWxsIG5lZWQgdGhpcz8/XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnN5bmNJbnRlcmFjdGlvbklkc1dpdGhSb3V0ZXIoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIG92ZXJyaWRlIG9uUm91dGVyRW5kKGV2ZW50OiBOYXZpZ2F0aW9uRW5kKTogdm9pZCB7XG4gICAgdGhpcy5jb250ZXh0LmZpbmlzaFJvdXRpbmdTZXNzaW9uKCk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBvdmVycmlkZSBvblJvdXRlckNhbmNlbGxlZChldmVudDogTmF2aWdhdGlvbkNhbmNlbCk6IHZvaWQge1xuICAgIHRoaXMuY29udGV4dC5maW5pc2hSb3V0aW5nU2Vzc2lvbigpO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgc3luY0ludGVyYWN0aW9uSWRzV2l0aFJvdXRlcigpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50SWRzID0gdGhpcy5pbnRlcmFjdGlvblNlcnZpY2VBZGFwdGVyLmdldEFjdGl2ZUludGVyYWN0aW9uQ29udGV4dElkcygpO1xuICAgIGNvbnN0IHByZXZpb3VzSWRzID0gdGhpcy51cmxTZXJ2aWNlLmdldEN1cnJlbnRMb2NhdGlvblVybFNuYXBzaG90KCkuZ2V0SW50ZXJhY3Rpb25JZHMoKTtcbiAgICAvLyBjb25zb2xlLmxvZyhgLS0tPiBzeW5jaHJvbmlzZUludGVyYWN0aW9uSWRzYCwgeyBpczogY3VycmVudElkcy5qb2luKCcsJyksIHdhczogcHJldmlvdXNJZHMuam9pbignLCcpIH0pO1xuICAgIGlmIChpc0VxdWFsKGN1cnJlbnRJZHMsIHByZXZpb3VzSWRzKSkge1xuICAgICAgLy8gY29uc29sZS5sb2coJyMjIyBBY3Rpdml0eSBjb250ZXh0IGlkcyB3ZXJlIHRoZSBzYW1lLCBza2lwcGluZycpO1xuICAgICAgdGhpcy5jb250ZXh0LmZpbmlzaFJvdXRpbmdTZXNzaW9uKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChjdXJyZW50SWRzLmxlbmd0aCA+IHByZXZpb3VzSWRzLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBpc0ZpcnN0QWN0aXZpdHkgPSBjdXJyZW50SWRzLmxlbmd0aCA+IHByZXZpb3VzSWRzLmxlbmd0aCAmJiBwcmV2aW91c0lkcy5sZW5ndGggPCAxO1xuICAgICAgICB0aGlzLmFkZEFjdGl2aXR5Q29udGV4dFRvUm91dGUoY3VycmVudElkcywgaXNGaXJzdEFjdGl2aXR5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVtb3ZlQWN0aXZpdHlDb250ZXh0RnJvbVJvdXRlKGN1cnJlbnRJZHMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIGFkZEFjdGl2aXR5Q29udGV4dFRvUm91dGUoYWN0aXZlSW50ZXJhY3Rpb25Db250ZXh0SWRzOiByZWFkb25seSBzdHJpbmdbXSwgaXNGaXJzdDogYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IHVybFNuYXBzaG90ID0gdGhpcy51cmxTZXJ2aWNlLmdldEN1cnJlbnRSb3V0ZXJTbmFwc2hvdCgpLnVwZGF0ZUludGVyYWN0aW9uSWRzKGFjdGl2ZUludGVyYWN0aW9uQ29udGV4dElkcyk7XG4gICAgdGhpcy5jb250ZXh0Lm5hdmlnYXRlQnlVcmwodXJsU25hcHNob3QsIHtcbiAgICAgIHJlcGxhY2VVcmw6ICFpc0ZpcnN0XG4gICAgfSkudGhlbihyZXN1bHQgPT4ge1xuICAgICAgaWYgKCF0aGlzLnVybFNlcnZpY2UuZ2V0Q3VycmVudExvY2F0aW9uVXJsU25hcHNob3QoKS5oYXNJbnRlcmFjdGlvbklkcyhhY3RpdmVJbnRlcmFjdGlvbkNvbnRleHRJZHMpKSB7XG4gICAgICAgIGxhbmcuaWxsZWdhbFN0YXRlKGBFeHBlY3RlZCB1cmwgdG8gYmUgJHt1cmxTbmFwc2hvdC51cmx9IGJ1dCB3YXMgJHt0aGlzLnVybFNlcnZpY2UuZ2V0Q3VycmVudExvY2F0aW9uVXJsKCl9YCk7XG4gICAgICAgIC8vIHRoaXMudXJsU2VydmljZS5yZXNldEJyb3dzZXJMb2NhdGlvbih1cmxTbmFwc2hvdC51cmwsIHtyZXBsYWNlQ3VycmVudDogIWlzRmlyc3R9KVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cblxuICAvLyBAVHJhY2UoKVxuICByZW1vdmVBY3Rpdml0eUNvbnRleHRGcm9tUm91dGUoYWN0aXZlSW50ZXJhY3Rpb25Db250ZXh0SWQ6IHJlYWRvbmx5IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgY29uc3QgdXJsU25hcHNob3QgPSB0aGlzLnVybFNlcnZpY2UuZ2V0Q3VycmVudFJvdXRlclNuYXBzaG90KCkudXBkYXRlSW50ZXJhY3Rpb25JZHMoYWN0aXZlSW50ZXJhY3Rpb25Db250ZXh0SWQpO1xuICAgIGNvbnN0IGlzUmVtb3ZpbmdMYXN0QWN0aXZpdHkgPSBhY3RpdmVJbnRlcmFjdGlvbkNvbnRleHRJZC5sZW5ndGggPCAxO1xuICAgIGlmIChpc1JlbW92aW5nTGFzdEFjdGl2aXR5KSB7XG4gICAgICBpZiAodGhpcy53YXNUcmlnZ2VyZWRCeVBvcFN0YXRlKSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdyZW1vdmFsIHdhcyB0cmlnZ2VyZWQgYnkgcG9wIHN0YXRlLCBub3RoaW5nIHRvIGRvLicpO1xuICAgICAgICAvLyAgIG5vb3AuICBPdXIgdXJsIHdpbGwgYmUgYmFjayB0byB0aGUgbm9uIGludGVyYWN0aW9uIHZlcnNpb24gbm93IHNvIHdlIGRvbnQnIG5lZWQgdG8gZG8gYW55dGhpbmcuXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBub3cgd2UganVzdCBwb3Agb3VyIGludGVyYWN0aW9uIGlkJ3MgZnJvbSB0aGUgYnJvd3NlciBoaXN0b3J5LlxuICAgICAgICAvLyBjb25zb2xlLmxvZyhgUmVtb3ZhbCBvZiB0aGUgbGFzdCBhY3Rpdml0eSB3YXNuJ3QgdHJpZ2dlcmVkIGJ5IHBvcCBzdGF0ZSBzbyB3ZSBoYXZlIHRvIHRyaWdnZXIgb25lIHRvIGNsZWFuIHRoZSBoaXN0b3J5YCk7XG4gICAgICAgIGNvbnN0IHNlc3Npb24gPSBuZXcgUmVtb3ZlTGFzdEludGVyYWN0aW9uRnJvbVVybE5hdmlnYXRpb25TZXNzaW9uKHRoaXMuY29udGV4dCwgdGhpcy51cmxTZXJ2aWNlLmdldEN1cnJlbnRSb3V0ZXJVcmwoKSk7XG4gICAgICAgIHRoaXMuY29udGV4dC50cmFuc2l0aW9uVG8oc2Vzc2lvbik7XG4gICAgICAgIHRoaXMudXJsU2VydmljZS5iYWNrKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHdlJ3ZlIHJlbW92ZWQgYW4gaW50ZXJhY3Rpb24sIGJ1dCB3ZSBzdGlsbCBoYXZlIHJlbWFpbmluZyBhY3Rpdml0aWVzIHNvIHdlXG4gICAgICAvLyB1cGRhdGUgdGhlIHVybCBpbiBwbGFjZSBpZiBpdCB3YXNuJ3QgYSBwb3Agc3RhdGUuIElmIGl0IHdhcyBhIHBvcCBzdGF0ZSB3ZSBuZWVkXG4gICAgICAvLyB0byAgcHVzaCBpdCBiYWNrIHVwLlxuICAgICAgLy8gdGhpcy51cmxTZXJ2aWNlLnJlc2V0QnJvd3NlckxvY2F0aW9uKHVybFNuYXBzaG90LnVybCwgeyByZXBsYWNlQ3VycmVudDogIXRoaXMud2FzVHJpZ2dlcmVkQnlQb3BTdGF0ZSB9KTtcbiAgICAgIHRoaXMuY29udGV4dC5uYXZpZ2F0ZUJ5VXJsKHVybFNuYXBzaG90LCB7IHJlcGxhY2VVcmw6ICF0aGlzLndhc1RyaWdnZXJlZEJ5UG9wU3RhdGUgfSk7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlQ2FuRGVhY3RpdmF0ZUNhbmNlbGxlZEV2ZW50U2NlbmFyaW8obmV3VXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBsYW5nLm1ldGhvZE5vdFN1cHBvcnRlZCgpO1xuICB9XG5cbn1cbiJdfQ==
@@ -1,5 +1,5 @@
1
- import { WaitUntilLinkTriggeredNavigationInteractionCancellationTypeDetermined } from './event-cleanup/wait-until-link-triggered-navigation-interaction-cancelation-type-determined';
2
1
  import { NavigationSession } from './navigation-session';
2
+ import { WaitUntilLinkTriggeredNavigationInteractionCancellationTypeDetermined } from './event-cleanup/wait-until-link-triggered-navigation-interaction-cancelation-type-determined';
3
3
  export class Navigating extends NavigationSession {
4
4
  isPopState = false;
5
5
  debugPropertyKeys = ['startingUrl', 'urlAfterRedirects'];
@@ -22,4 +22,4 @@ export class Navigating extends NavigationSession {
22
22
  this.context.transitionTo(new WaitUntilLinkTriggeredNavigationInteractionCancellationTypeDetermined(this.context, this.startingUrl, newUrl));
23
23
  }
24
24
  }
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL3BsYWNlL25hdmlnYXRpb24vc2Vzc2lvbi9uYXZpZ2F0aW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxxRUFBcUUsRUFBQyxNQUFNLDhGQUE4RixDQUFDO0FBQ25MLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBR3ZELE1BQU0sT0FBTyxVQUFXLFNBQVEsaUJBQWlCO0lBQ3RDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFFbkIsaUJBQWlCLEdBQUcsQ0FBQyxhQUFhLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUMxRCxpQkFBaUIsQ0FBUztJQUV6QixpQkFBaUIsQ0FBQyxLQUF1QjtRQUNoRCxtRkFBbUY7UUFDbkYsNEVBQTRFO1FBQzVFLElBQUksS0FBSyxDQUFDLElBQUksZ0RBQXdDLEVBQUU7WUFDdEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxDQUFBO1NBQ3BDO0lBQ0gsQ0FBQztJQUVRLGFBQWEsQ0FBQyxLQUFzQjtRQUMzQywwQkFBMEI7UUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFUSxXQUFXLENBQUMsS0FBb0I7UUFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRUQseUNBQXlDLENBQUMsTUFBYztRQUN0RCxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLHFFQUFxRSxDQUNqRyxJQUFJLENBQUMsT0FBTyxFQUNaLElBQUksQ0FBQyxXQUFXLEVBQ2hCLE1BQU0sQ0FDUCxDQUFDLENBQUM7SUFDTCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05hdmlnYXRpb25DYW5jZWwsIE5hdmlnYXRpb25DYW5jZWxsYXRpb25Db2RlLCBOYXZpZ2F0aW9uRW5kLCBOYXZpZ2F0aW9uRXJyb3J9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1dhaXRVbnRpbExpbmtUcmlnZ2VyZWROYXZpZ2F0aW9uSW50ZXJhY3Rpb25DYW5jZWxsYXRpb25UeXBlRGV0ZXJtaW5lZH0gZnJvbSAnLi9ldmVudC1jbGVhbnVwL3dhaXQtdW50aWwtbGluay10cmlnZ2VyZWQtbmF2aWdhdGlvbi1pbnRlcmFjdGlvbi1jYW5jZWxhdGlvbi10eXBlLWRldGVybWluZWQnO1xuaW1wb3J0IHtOYXZpZ2F0aW9uU2Vzc2lvbn0gZnJvbSAnLi9uYXZpZ2F0aW9uLXNlc3Npb24nO1xuXG5cbmV4cG9ydCBjbGFzcyBOYXZpZ2F0aW5nIGV4dGVuZHMgTmF2aWdhdGlvblNlc3Npb24ge1xuICByZWFkb25seSBpc1BvcFN0YXRlID0gZmFsc2U7XG5cbiAgb3ZlcnJpZGUgZGVidWdQcm9wZXJ0eUtleXMgPSBbJ3N0YXJ0aW5nVXJsJywgJ3VybEFmdGVyUmVkaXJlY3RzJ107XG4gIHByaXZhdGUgdXJsQWZ0ZXJSZWRpcmVjdHM6IHN0cmluZztcblxuICBvdmVycmlkZSBvblJvdXRlckNhbmNlbGxlZChldmVudDogTmF2aWdhdGlvbkNhbmNlbCk6IHZvaWQge1xuICAgIC8vIHJlZGlyZWN0cyBjb21lIGZyb20gb3VyIGd1YXJkcyBzbyB3ZSdsbCBiZSBwcm9jZXNzaW5nIHBhcmFtZXRlciB1cGRhdGVzIGFuZCBuZWVkXG4gICAgLy8gdG8ga2VlcCB0aGUgc2FtZSBzZXNzaW9uIHJ1bm5pbmcgc28gd2UgZG9uJ3QgbG9vc2UgYW55IGFjY3VtdWxhdGVkIHN0YXRlLlxuICAgIGlmIChldmVudC5jb2RlICE9PSBOYXZpZ2F0aW9uQ2FuY2VsbGF0aW9uQ29kZS5SZWRpcmVjdCkge1xuICAgICAgdGhpcy5jb250ZXh0LmZpbmlzaFJvdXRpbmdTZXNzaW9uKClcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZSBvblJvdXRlckVycm9yKGV2ZW50OiBOYXZpZ2F0aW9uRXJyb3IpOiB2b2lkIHtcbiAgICAvLyBuYXZpZ2F0aW9uIHdhcyBhYm9ydGVkLlxuICAgIHRoaXMuY29udGV4dC5maW5pc2hSb3V0aW5nU2Vzc2lvbigpO1xuICB9XG5cbiAgb3ZlcnJpZGUgb25Sb3V0ZXJFbmQoZXZlbnQ6IE5hdmlnYXRpb25FbmQpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRleHQuZmluaXNoUm91dGluZ1Nlc3Npb24odGhpcy5jcmVhdGVVcGRhdGVkVmlzaXQoZXZlbnQudXJsQWZ0ZXJSZWRpcmVjdHMpKTtcbiAgfVxuXG4gIGhhbmRsZUNhbkRlYWN0aXZhdGVDYW5jZWxsZWRFdmVudFNjZW5hcmlvKG5ld1VybDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5jb250ZXh0LnRyYW5zaXRpb25UbyhuZXcgV2FpdFVudGlsTGlua1RyaWdnZXJlZE5hdmlnYXRpb25JbnRlcmFjdGlvbkNhbmNlbGxhdGlvblR5cGVEZXRlcm1pbmVkKFxuICAgICAgdGhpcy5jb250ZXh0LFxuICAgICAgdGhpcy5zdGFydGluZ1VybCxcbiAgICAgIG5ld1VybFxuICAgICkpO1xuICB9XG5cbn1cbiJdfQ==
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL3BsYWNlL25hdmlnYXRpb24vc2Vzc2lvbi9uYXZpZ2F0aW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxxRUFBcUUsRUFBRSxNQUFNLDhGQUE4RixDQUFDO0FBR3JMLE1BQU0sT0FBTyxVQUFXLFNBQVEsaUJBQWlCO0lBQ3RDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFFbkIsaUJBQWlCLEdBQUcsQ0FBQyxhQUFhLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUMxRCxpQkFBaUIsQ0FBUztJQUV6QixpQkFBaUIsQ0FBQyxLQUF1QjtRQUNoRCxtRkFBbUY7UUFDbkYsNEVBQTRFO1FBQzVFLElBQUksS0FBSyxDQUFDLElBQUksZ0RBQXdDLEVBQUU7WUFDdEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxDQUFBO1NBQ3BDO0lBQ0gsQ0FBQztJQUVRLGFBQWEsQ0FBQyxLQUFzQjtRQUMzQywwQkFBMEI7UUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFUSxXQUFXLENBQUMsS0FBb0I7UUFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRUQseUNBQXlDLENBQUMsTUFBYztRQUN0RCxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLHFFQUFxRSxDQUNqRyxJQUFJLENBQUMsT0FBTyxFQUNaLElBQUksQ0FBQyxXQUFXLEVBQ2hCLE1BQU0sQ0FDUCxDQUFDLENBQUM7SUFDTCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05hdmlnYXRpb25DYW5jZWwsIE5hdmlnYXRpb25DYW5jZWxsYXRpb25Db2RlLCBOYXZpZ2F0aW9uRW5kLCBOYXZpZ2F0aW9uRXJyb3J9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2Vzc2lvbiB9IGZyb20gJy4vbmF2aWdhdGlvbi1zZXNzaW9uJztcbmltcG9ydCB7IFdhaXRVbnRpbExpbmtUcmlnZ2VyZWROYXZpZ2F0aW9uSW50ZXJhY3Rpb25DYW5jZWxsYXRpb25UeXBlRGV0ZXJtaW5lZCB9IGZyb20gJy4vZXZlbnQtY2xlYW51cC93YWl0LXVudGlsLWxpbmstdHJpZ2dlcmVkLW5hdmlnYXRpb24taW50ZXJhY3Rpb24tY2FuY2VsYXRpb24tdHlwZS1kZXRlcm1pbmVkJztcblxuXG5leHBvcnQgY2xhc3MgTmF2aWdhdGluZyBleHRlbmRzIE5hdmlnYXRpb25TZXNzaW9uIHtcbiAgcmVhZG9ubHkgaXNQb3BTdGF0ZSA9IGZhbHNlO1xuXG4gIG92ZXJyaWRlIGRlYnVnUHJvcGVydHlLZXlzID0gWydzdGFydGluZ1VybCcsICd1cmxBZnRlclJlZGlyZWN0cyddO1xuICBwcml2YXRlIHVybEFmdGVyUmVkaXJlY3RzOiBzdHJpbmc7XG5cbiAgb3ZlcnJpZGUgb25Sb3V0ZXJDYW5jZWxsZWQoZXZlbnQ6IE5hdmlnYXRpb25DYW5jZWwpOiB2b2lkIHtcbiAgICAvLyByZWRpcmVjdHMgY29tZSBmcm9tIG91ciBndWFyZHMgc28gd2UnbGwgYmUgcHJvY2Vzc2luZyBwYXJhbWV0ZXIgdXBkYXRlcyBhbmQgbmVlZFxuICAgIC8vIHRvIGtlZXAgdGhlIHNhbWUgc2Vzc2lvbiBydW5uaW5nIHNvIHdlIGRvbid0IGxvb3NlIGFueSBhY2N1bXVsYXRlZCBzdGF0ZS5cbiAgICBpZiAoZXZlbnQuY29kZSAhPT0gTmF2aWdhdGlvbkNhbmNlbGxhdGlvbkNvZGUuUmVkaXJlY3QpIHtcbiAgICAgIHRoaXMuY29udGV4dC5maW5pc2hSb3V0aW5nU2Vzc2lvbigpXG4gICAgfVxuICB9XG5cbiAgb3ZlcnJpZGUgb25Sb3V0ZXJFcnJvcihldmVudDogTmF2aWdhdGlvbkVycm9yKTogdm9pZCB7XG4gICAgLy8gbmF2aWdhdGlvbiB3YXMgYWJvcnRlZC5cbiAgICB0aGlzLmNvbnRleHQuZmluaXNoUm91dGluZ1Nlc3Npb24oKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG9uUm91dGVyRW5kKGV2ZW50OiBOYXZpZ2F0aW9uRW5kKTogdm9pZCB7XG4gICAgdGhpcy5jb250ZXh0LmZpbmlzaFJvdXRpbmdTZXNzaW9uKHRoaXMuY3JlYXRlVXBkYXRlZFZpc2l0KGV2ZW50LnVybEFmdGVyUmVkaXJlY3RzKSk7XG4gIH1cblxuICBoYW5kbGVDYW5EZWFjdGl2YXRlQ2FuY2VsbGVkRXZlbnRTY2VuYXJpbyhuZXdVcmw6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY29udGV4dC50cmFuc2l0aW9uVG8obmV3IFdhaXRVbnRpbExpbmtUcmlnZ2VyZWROYXZpZ2F0aW9uSW50ZXJhY3Rpb25DYW5jZWxsYXRpb25UeXBlRGV0ZXJtaW5lZChcbiAgICAgIHRoaXMuY29udGV4dCxcbiAgICAgIHRoaXMuc3RhcnRpbmdVcmwsXG4gICAgICBuZXdVcmxcbiAgICApKTtcbiAgfVxuXG59XG4iXX0=
@@ -16,4 +16,4 @@ export var NavigationContext;
16
16
  }
17
17
  NavigationContext.Impl = Impl;
18
18
  })(NavigationContext || (NavigationContext = {}));
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvcGxhY2UvbmF2aWdhdGlvbi9zZXNzaW9uL25hdmlnYXRpb24tY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQkEsTUFBTSxLQUFXLGlCQUFpQixDQVdqQztBQVhELFdBQWlCLGlCQUFpQjtJQUNoQyxNQUFhLElBQUk7UUFDTTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBSnJCLFlBQXFCLFVBQXNCLEVBQ3RCLHdCQUEwRCxFQUMxRCxhQUE4RixFQUM5RixZQUFtRCxFQUNuRCxvQkFBNkM7WUFKN0MsZUFBVSxHQUFWLFVBQVUsQ0FBWTtZQUN0Qiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQWtDO1lBQzFELGtCQUFhLEdBQWIsYUFBYSxDQUFpRjtZQUM5RixpQkFBWSxHQUFaLFlBQVksQ0FBdUM7WUFDbkQseUJBQW9CLEdBQXBCLG9CQUFvQixDQUF5QjtRQUNsRSxDQUFDO0tBRUY7SUFSWSxzQkFBSSxPQVFoQixDQUFBO0FBRUgsQ0FBQyxFQVhnQixpQkFBaUIsS0FBakIsaUJBQWlCLFFBV2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge0ludGVyYWN0aW9uU2VydmljZVJvdXRpbmdBZGFwdGVyfSBmcm9tICcuLi8uLi8uLi9pbnRlcmFjdGlvbi9zZXJ2aWNlcy9pbnRlcmFjdGlvbi1zZXJ2aWNlLXJvdXRpbmctYWRhcHRlcic7XG5pbXBvcnQgdHlwZSB7VXJsU2VydmljZX0gZnJvbSAnLi4vLi4vdXJsLXNlcnZpY2UnO1xuaW1wb3J0IHR5cGUge1VybFNuYXBzaG90fSBmcm9tICcuLi8uLi91cmwtc25hcHNob3QnO1xuaW1wb3J0IHR5cGUge1Zpc2l0fSBmcm9tICcuLi8uLi92aXNpdCc7XG5pbXBvcnQgdHlwZSB7TmF2aWdhdGlvblNlc3Npb259IGZyb20gJy4vbmF2aWdhdGlvbi1zZXNzaW9uJztcblxuZXhwb3J0IGludGVyZmFjZSBOYXZpZ2F0aW9uQ29udGV4dCB7XG4gIHJlYWRvbmx5IHVybFNlcnZpY2U6IFVybFNlcnZpY2UsXG4gIHJlYWRvbmx5IHJvdXRlckludGVyYWN0aW9uQWRhcHRlcjogSW50ZXJhY3Rpb25TZXJ2aWNlUm91dGluZ0FkYXB0ZXI7XG5cbiAgZmluaXNoUm91dGluZ1Nlc3Npb24odmlzaXQ/OiBWaXNpdCk7XG5cbiAgdHJhbnNpdGlvblRvKG5ld1N0YXRlOiBOYXZpZ2F0aW9uU2Vzc2lvbik7XG5cbiAgbmF2aWdhdGVCeVVybCh1cmxTbmFwc2hvdDogVXJsU25hcHNob3QsIG9wdGlvbnM6IHsgcmVwbGFjZVVybDogYm9vbGVhbiB9KTogUHJvbWlzZTxib29sZWFuPjtcbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBOYXZpZ2F0aW9uQ29udGV4dCB7XG4gIGV4cG9ydCBjbGFzcyBJbXBsIGltcGxlbWVudHMgTmF2aWdhdGlvbkNvbnRleHQge1xuICAgIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHVybFNlcnZpY2U6IFVybFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcmVhZG9ubHkgcm91dGVySW50ZXJhY3Rpb25BZGFwdGVyOiBJbnRlcmFjdGlvblNlcnZpY2VSb3V0aW5nQWRhcHRlcixcbiAgICAgICAgICAgICAgICByZWFkb25seSBuYXZpZ2F0ZUJ5VXJsOiAodXJsU25hcHNob3Q6IFVybFNuYXBzaG90LCBvcHRpb25zOiB7IHJlcGxhY2VVcmw6IGJvb2xlYW4gfSk9PiBQcm9taXNlPGJvb2xlYW4+LFxuICAgICAgICAgICAgICAgIHJlYWRvbmx5IHRyYW5zaXRpb25UbzogKG5ld1N0YXRlOiBOYXZpZ2F0aW9uU2Vzc2lvbikgPT4gdm9pZCxcbiAgICAgICAgICAgICAgICByZWFkb25seSBmaW5pc2hSb3V0aW5nU2Vzc2lvbjogKHZpc2l0PzogVmlzaXQpID0+IHZvaWQpIHtcbiAgICB9XG5cbiAgfVxuXG59XG4iXX0=
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvcGxhY2UvbmF2aWdhdGlvbi9zZXNzaW9uL25hdmlnYXRpb24tY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrQkEsTUFBTSxLQUFXLGlCQUFpQixDQVdqQztBQVhELFdBQWlCLGlCQUFpQjtJQUNoQyxNQUFhLElBQUk7UUFDTTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBSnJCLFlBQXFCLFVBQXNCLEVBQ3RCLHdCQUEwRCxFQUMxRCxhQUE4RixFQUM5RixZQUFtRCxFQUNuRCxvQkFBNkM7WUFKN0MsZUFBVSxHQUFWLFVBQVUsQ0FBWTtZQUN0Qiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQWtDO1lBQzFELGtCQUFhLEdBQWIsYUFBYSxDQUFpRjtZQUM5RixpQkFBWSxHQUFaLFlBQVksQ0FBdUM7WUFDbkQseUJBQW9CLEdBQXBCLG9CQUFvQixDQUF5QjtRQUNsRSxDQUFDO0tBRUY7SUFSWSxzQkFBSSxPQVFoQixDQUFBO0FBRUgsQ0FBQyxFQVhnQixpQkFBaUIsS0FBakIsaUJBQWlCLFFBV2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW50ZXJhY3Rpb25TZXJ2aWNlUm91dGluZ0FkYXB0ZXIgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmFjdGlvbi9zZXJ2aWNlcy9pbnRlcmFjdGlvbi1zZXJ2aWNlLXJvdXRpbmctYWRhcHRlcic7XG5pbXBvcnQgeyBVcmxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXJsLXNlcnZpY2UnO1xuaW1wb3J0IHsgVXJsU25hcHNob3QgfSBmcm9tICcuLi8uLi91cmwtc25hcHNob3QnO1xuaW1wb3J0IHsgVmlzaXQgfSBmcm9tICcuLi8uLi92aXNpdCc7XG5pbXBvcnQge1Zpc2l0U2VnbWVudH0gZnJvbSBcIi4uLy4uL3Zpc2l0LXNlZ21lbnRcIjtcbmltcG9ydCB7IE5hdmlnYXRpb25TZXNzaW9uIH0gZnJvbSAnLi9uYXZpZ2F0aW9uLXNlc3Npb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5hdmlnYXRpb25Db250ZXh0IHtcbiAgcmVhZG9ubHkgdXJsU2VydmljZTogVXJsU2VydmljZSxcbiAgcmVhZG9ubHkgcm91dGVySW50ZXJhY3Rpb25BZGFwdGVyOiBJbnRlcmFjdGlvblNlcnZpY2VSb3V0aW5nQWRhcHRlcjtcblxuICBmaW5pc2hSb3V0aW5nU2Vzc2lvbih2aXNpdD86IFZpc2l0KTtcblxuICB0cmFuc2l0aW9uVG8obmV3U3RhdGU6IE5hdmlnYXRpb25TZXNzaW9uKTtcblxuICBuYXZpZ2F0ZUJ5VXJsKHVybFNuYXBzaG90OiBVcmxTbmFwc2hvdCwgb3B0aW9uczogeyByZXBsYWNlVXJsOiBib29sZWFuIH0pOiBQcm9taXNlPGJvb2xlYW4+O1xufVxuXG5leHBvcnQgbmFtZXNwYWNlIE5hdmlnYXRpb25Db250ZXh0IHtcbiAgZXhwb3J0IGNsYXNzIEltcGwgaW1wbGVtZW50cyBOYXZpZ2F0aW9uQ29udGV4dCB7XG4gICAgY29uc3RydWN0b3IocmVhZG9ubHkgdXJsU2VydmljZTogVXJsU2VydmljZSxcbiAgICAgICAgICAgICAgICByZWFkb25seSByb3V0ZXJJbnRlcmFjdGlvbkFkYXB0ZXI6IEludGVyYWN0aW9uU2VydmljZVJvdXRpbmdBZGFwdGVyLFxuICAgICAgICAgICAgICAgIHJlYWRvbmx5IG5hdmlnYXRlQnlVcmw6ICh1cmxTbmFwc2hvdDogVXJsU25hcHNob3QsIG9wdGlvbnM6IHsgcmVwbGFjZVVybDogYm9vbGVhbiB9KT0+IFByb21pc2U8Ym9vbGVhbj4sXG4gICAgICAgICAgICAgICAgcmVhZG9ubHkgdHJhbnNpdGlvblRvOiAobmV3U3RhdGU6IE5hdmlnYXRpb25TZXNzaW9uKSA9PiB2b2lkLFxuICAgICAgICAgICAgICAgIHJlYWRvbmx5IGZpbmlzaFJvdXRpbmdTZXNzaW9uOiAodmlzaXQ/OiBWaXNpdCkgPT4gdm9pZCkge1xuICAgIH1cblxuICB9XG5cbn1cbiJdfQ==
@@ -17,7 +17,7 @@ export class NavigationSession extends GarbageCollector {
17
17
  this.startingUrl = startingUrl;
18
18
  // console.log(`new ${this.constructor.name}`)
19
19
  // TODO: can I get away without creating one every time?
20
- this._interactionContext = this.context.routerInteractionAdapter.createNavigationSessionInteractionContext();
20
+ this._interactionContext = this.context.routerInteractionAdapter.createExclusiveInteractionContext();
21
21
  this.onDispose(() => {
22
22
  // the interaction context can be detached during the back button cancellation state transition
23
23
  // as the transition is synchronous and activityCancellation isn't. Otherwise dispose will be
@@ -31,15 +31,6 @@ export class NavigationSession extends GarbageCollector {
31
31
  get isInteractionSync() {
32
32
  return false;
33
33
  }
34
- /**
35
- * Interruptible sessions are internal housekeeping navigations (e.g. interaction-id
36
- * synchronisation) that a real user- or model-driven navigation is allowed to queue behind
37
- * and supersede, rather than being rejected. Real navigations (Navigating, PopState) are not
38
- * interruptible.
39
- */
40
- get isInterruptible() {
41
- return this.isInteractionSync;
42
- }
43
34
  get name() {
44
35
  return this.constructor.name;
45
36
  }
@@ -182,4 +173,4 @@ export class NavigationSession extends GarbageCollector {
182
173
  return context;
183
174
  }
184
175
  }
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1zZXNzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvcGxhY2UvbmF2aWdhdGlvbi9zZXNzaW9uL25hdmlnYXRpb24tc2Vzc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBTzlELE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFFbEMsT0FBTyxFQUFDLGlDQUFpQyxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFHMUY7O0dBRUc7QUFDSCxNQUFNLE9BQWdCLGlCQUFrQixTQUFRLGdCQUFnQjtJQVd6QztJQUFxQztJQVQxRCxpQkFBaUIsR0FBYSxFQUFFLENBQUM7SUFDekIsY0FBYyxHQUFHLElBQUksR0FBRyxFQUFpQyxDQUFDO0lBRTFELDZCQUE2QixHQUFHLElBQUksR0FBRyxFQUFxRCxDQUFDO0lBSTdGLG1CQUFtQixDQUFxQjtJQUVoRCxZQUFxQixPQUEwQixFQUFXLFdBQW1CO1FBQzNFLEtBQUssRUFBRSxDQUFDO1FBRFcsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7UUFBVyxnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUUzRSw4Q0FBOEM7UUFDOUMsd0RBQXdEO1FBQ3hELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLHlDQUF5QyxFQUFFLENBQUM7UUFDN0csSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbEIsK0ZBQStGO1lBQy9GLDhGQUE4RjtZQUM5RixpR0FBaUc7WUFDakcsOEZBQThGO1lBQzlGLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO2dCQUM1QixJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLENB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QU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsOEJBQThCLENBQUMsTUFBYztRQUMzQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxtRUFBbUUsQ0FBQyxDQUFDO1FBQzNGLHFHQUFxRztRQUNyRyxtQkFBbUI7UUFDbkIsTUFBTSwrQkFBK0IsR0FBRyxJQUFJLENBQUMscUNBQXFDLEVBQUUsQ0FBQztRQUNyRix1RkFBdUY7UUFDdkYsdUZBQXVGO1FBQ3ZGLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLDBDQUEwQyxDQUFDLENBQUM7UUFDbEUsK0JBQStCLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQy9ELCtCQUErQixDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLHlDQUF5QyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFJUywrQ0FBK0MsQ0FBQyxHQUFXO1FBQ25FLHNGQUFzRjtRQUN0Rix3R0FBd0c7UUFDeEcsb0NBQW9DO1FBQ3BDLGlCQUFpQjtRQUNqQixzRUFBc0U7UUFDdEUsd0RBQXdEO1FBQ3hELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLEVBQUUsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRVMscUNBQXFDO1FBQzdDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztRQUN6QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmF2aWdhdGlvbkNhbmNlbCwgTmF2aWdhdGlvbkVuZCwgTmF2aWdhdGlvbkVycm9yLCBOYXZpZ2F0aW9uU3RhcnQsIFJvdXRlckV2ZW50fSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XG5pbXBvcnQge0dhcmJhZ2VDb2xsZWN0b3IsIGxhbmcsIExvZ2dlcn0gZnJvbSBcIkBjb29sb24vcGVjdGluXCI7XG5pbXBvcnQgdHlwZSB7SW50ZXJhY3Rpb25Db250ZXh0fSBmcm9tIFwiLi4vLi4vLi4vaW50ZXJhY3Rpb24vaW50ZXJhY3Rpb24tY29udGV4dFwiO1xuaW1wb3J0IHR5cGUge0ludGVyYWN0aW9uU2VydmljZVJvdXRpbmdBZGFwdGVyfSBmcm9tIFwiLi4vLi4vLi4vaW50ZXJhY3Rpb24vc2VydmljZXMvaW50ZXJhY3Rpb24tc2VydmljZS1yb3V0aW5nLWFkYXB0ZXJcIjtcbmltcG9ydCB0eXBlIHtQbGFjZUNvbXBvbmVudH0gZnJvbSBcIi4uLy4uL3BsYWNlLWNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUge1BsYWNlRGVmaW5pdGlvbn0gZnJvbSBcIi4uLy4uL3BsYWNlLWRlZmluaXRpb25cIjtcbmltcG9ydCB0eXBlIHtVcmxTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vdXJsLXNlcnZpY2VcIjtcbmltcG9ydCB0eXBlIHtVcmxTbmFwc2hvdH0gZnJvbSBcIi4uLy4uL3VybC1zbmFwc2hvdFwiO1xuaW1wb3J0IHtWaXNpdH0gZnJvbSBcIi4uLy4uL3Zpc2l0XCI7XG5pbXBvcnQgdHlwZSB7VmlzaXRTZWdtZW50fSBmcm9tIFwiLi4vLi4vdmlzaXQtc2VnbWVudFwiO1xuaW1wb3J0IHtQbGFjZUNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXJ9IGZyb20gXCIuLi9wbGFjZS1jb21wb25lbnQtZGVhY3RpdmF0aW9uLWhhbmRsZXJcIjtcbmltcG9ydCB0eXBlIHtOYXZpZ2F0aW9uQ29udGV4dH0gZnJvbSBcIi4vbmF2aWdhdGlvbi1jb250ZXh0XCI7XG5cbi8qKlxuICogVHJhbnNpZW50IHN0YXRlc1xuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTmF2aWdhdGlvblNlc3Npb24gZXh0ZW5kcyBHYXJiYWdlQ29sbGVjdG9yIHtcblxuICBkZWJ1Z1Byb3BlcnR5S2V5czogc3RyaW5nW10gPSBbXTtcbiAgcHJpdmF0ZSBfdmlzaXRTZWdtZW50cyA9IG5ldyBNYXA8UGxhY2VEZWZpbml0aW9uLCBWaXNpdFNlZ21lbnQ+KCk7XG5cbiAgcHJpdmF0ZSBjb21wb25lbnREZWFjdGl2YXRpb25IYW5kbGVycyA9IG5ldyBNYXA8UGxhY2VDb21wb25lbnQsIFBsYWNlQ29tcG9uZW50RGVhY3RpdmF0aW9uSGFuZGxlcj4oKTtcbiAgYWJzdHJhY3QgcmVhZG9ubHkgaXNQb3BTdGF0ZTogYm9vbGVhbjtcblxuXG4gIHByaXZhdGUgX2ludGVyYWN0aW9uQ29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0O1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGNvbnRleHQ6IE5hdmlnYXRpb25Db250ZXh0LCByZWFkb25seSBzdGFydGluZ1VybDogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcbiAgICAvLyBjb25zb2xlLmxvZyhgbmV3ICR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfWApXG4gICAgLy8gVE9ETzogY2FuIEkgZ2V0IGF3YXkgd2l0aG91dCBjcmVhdGluZyBvbmUgZXZlcnkgdGltZT9cbiAgICB0aGlzLl9pbnRlcmFjdGlvbkNvbnRleHQgPSB0aGlzLmNvbnRleHQucm91dGVySW50ZXJhY3Rpb25BZGFwdGVyLmNyZWF0ZU5hdmlnYXRpb25TZXNzaW9uSW50ZXJhY3Rpb25Db250ZXh0KCk7XG4gICAgdGhpcy5vbkRpc3Bvc2UoKCkgPT4ge1xuICAgICAgLy8gdGhlIGludGVyYWN0aW9uIGNvbnRleHQgY2FuIGJlIGRldGFjaGVkIGR1cmluZyB0aGUgYmFjayBidXR0b24gY2FuY2VsbGF0aW9uIHN0YXRlIHRyYW5zaXRpb25cbiAgICAgIC8vIGFzIHRoZSB0cmFuc2l0aW9uIGlzIHN5bmNocm9ub3VzIGFuZCBhY3Rpdml0eUNhbmNlbGxhdGlvbiBpc24ndC4gIE90aGVyd2lzZSBkaXNwb3NlIHdpbGwgYmVcbiAgICAgIC8vIGNhbGxlZCBiZWZvcmUgdGhlIGNvbnRleHQgaGFzIGJlZW4gY2FuY2VsbGVkLiAgSXQgbWlnaHQgYmUgd29yayBoYXZpbmcgdGhlIGludGVyYWN0aW9uIGNvbnRleHRcbiAgICAgIC8vIGF1dG9tYXRpY2FsbHkgY2FuY2VsIGlmIHRoZSBjb250ZXh0IGlzIGRpc3Bvc2VkIHNvIHdlIGRvbid0IGhhdmUgd29ycnkgYWJvdXQgZGV0YWNoaW5nIGV0Yy5cbiAgICAgIGlmICh0aGlzLl9pbnRlcmFjdGlvbkNvbnRleHQpIHtcbiAgICAgICAgdGhpcy5faW50ZXJhY3Rpb25Db250ZXh0LmRpc3Bvc2UoKTsgLy8gb3IgZG8gc29tZXRoaW5nIGxpa2UgY2FuY2VsQW5kRGlzcG9zZT9cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGdldCBpc0ludGVyYWN0aW9uU3luYygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogSW50ZXJydXB0aWJsZSBzZXNzaW9ucyBhcmUgaW50ZXJuYWwgaG91c2VrZWVwaW5nIG5hdmlnYXRpb25zIChlLmcuIGludGVyYWN0aW9uLWlkXG4gICAqIHN5bmNocm9uaXNhdGlvbikgdGhhdCBhIHJlYWwgdXNlci0gb3IgbW9kZWwtZHJpdmVuIG5hdmlnYXRpb24gaXMgYWxsb3dlZCB0byBxdWV1ZSBiZWhpbmRcbiAgICogYW5kIHN1cGVyc2VkZSwgcmF0aGVyIHRoYW4gYmVpbmcgcmVqZWN0ZWQuIFJlYWwgbmF2aWdhdGlvbnMgKE5hdmlnYXRpbmcsIFBvcFN0YXRlKSBhcmUgbm90XG4gICAqIGludGVycnVwdGlibGUuXG4gICAqL1xuICBnZXQgaXNJbnRlcnJ1cHRpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzSW50ZXJhY3Rpb25TeW5jO1xuICB9XG5cbiAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lO1xuICB9XG5cbiAgZ2V0IHVybFNlcnZpY2UoKTogVXJsU2VydmljZSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dC51cmxTZXJ2aWNlO1xuICB9XG5cbiAgZ2V0IGludGVyYWN0aW9uU2VydmljZUFkYXB0ZXIoKTogSW50ZXJhY3Rpb25TZXJ2aWNlUm91dGluZ0FkYXB0ZXIge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHQucm91dGVySW50ZXJhY3Rpb25BZGFwdGVyO1xuICB9XG5cbiAgaW5pdGlhbGlzZVZpc2l0U2VnbWVudHModmlzaXQ6IFZpc2l0KSB7XG4gICAgdmlzaXQuc2VnbWVudHMuZm9yRWFjaChpdCA9PiB0aGlzLnVwZGF0ZVZpc2l0U2VnbWVudChpdCkpXG4gIH1cblxuICB1cGRhdGVWaXNpdFNlZ21lbnQoc2VnbWVudDogVmlzaXRTZWdtZW50KSB7XG4gICAgLy8gY29uc29sZS5sb2coYHVwZGF0ZVZpc2l0U2VnbWVudGAsIHNlZ21lbnQudG9EZWJ1Z1N0cmluZygpKTtcbiAgICB0aGlzLl92aXNpdFNlZ21lbnRzLnNldChzZWdtZW50LnBsYWNlRGVmaW5pdGlvbiwgc2VnbWVudCk7XG4gIH1cblxuXG4gIGdldFZpc2l0U2VnbWVudEZvcihwbGFjZURlZjogUGxhY2VEZWZpbml0aW9uKSB7XG4gICAgY29uc3QgdmlzaXQgPSB0aGlzLl92aXNpdFNlZ21lbnRzLmdldChwbGFjZURlZik7XG4gICAgLy8gY29uc29sZS5sb2coYEdldHRpbmcgdmlzaXQgZm9yICR7cGxhY2VEZWYuY29tcG9uZW50Lm5hbWV9YCwge3Zpc2l0fSk7XG4gICAgcmV0dXJuIHZpc2l0O1xuICB9XG5cbiAgY3JlYXRlVXBkYXRlZFZpc2l0KHVybDogc3RyaW5nKSA6VmlzaXQge1xuICAgIC8vIFRoZSB2aXNpdCBzZWdtZW50cyBjYW4gaGF2ZSBhcmJpcmFyeSBwbGFjZXMgaW4gdGhlbSBhZnRlciByZWRpcmVjdHNcbiAgICAvLyBzbyB3ZSBoYXZlIHRvIGZpbHRlciB0aGVtIGJhc2VkIG9uIHRoZSBmaW5hbCB1cmwuXG4gICAgY29uc3Qgc25hcHNob3QgPSB0aGlzLnVybFNlcnZpY2UucGFyc2VVcmwodXJsKTtcbiAgICBjb25zdCBmaWx0ZXJlZFNlZ21lbnRzID0gQXJyYXkuZnJvbSh0aGlzLl92aXNpdFNlZ21lbnRzLnZhbHVlcygpKVxuICAgICAgLmZpbHRlcihpdCA9PiBzbmFwc2hvdC5jb250YWluc1Zpc2l0U2VnbWVudChpdCkpO1xuICAgIHJldHVybiBWaXNpdC5mcm9tU2VnbWVudHMoZmlsdGVyZWRTZWdtZW50cyk7XG4gIH1cblxuICBnZXQgY2FuRGVhY3RpdmF0ZUludGVyYWN0aW9uQ29udGV4dCgpOiBJbnRlcmFjdGlvbkNvbnRleHQge1xuICAgIHJldHVybiB0aGlzLl9pbnRlcmFjdGlvbkNvbnRleHQ7XG4gIH1cblxuICBub3RpZnlBY3RpdmUoKSB7XG4gICAgLy8gbm9vcC5cbiAgfVxuXG4gIG9uUm91dGVyU3RhcnRlZChldmVudDogTmF2aWdhdGlvblN0YXJ0KTogdm9pZCB7XG4gICAgLy8gbmF2aWdhdGlvbiBzZXNzaW9ucyBjYW4gaGF2ZSBtYW55IGNhbmNlbCBzdGFydCBjeWNsZXMgZHVlIHRvIHBsYWNlIGd1YXJkIHJlZGlyZWN0c1xuICAgIHRoaXMuaWdub3JlKGV2ZW50KTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIG9uVXJsQ2hhbmdlKHVybDogc3RyaW5nKSB7XG4gICAgLy8gTm9ybWFsbHkgd2UganVzdCBpZ25vcmUgdGhlc2UgYnV0IHRoZXkgYXJlIHRoZSBvbmx5IHdheSBvZiBkZXRlY3RpbmcgaWYgdGhlIGJhY2sgYnV0dG9uXG4gICAgLy8gd2FzIGNsaWNrZWQgZHVyaW5nIGEgY2FuRGVhY3RpdmF0ZSBwcm9taXNlLlxuICAgIC8vIDEuIGEgcm91dGUgaXMgaW4gcHJvZ3Jlc3MgYW5kIGF3YWl0aW5nIGEgY2FuRGVhY3RpdmF0ZUd1YXJkXG4gICAgLy8gMi4gdGhlIHVzZXIgdGhlIGNsaWNrcyB0aGUgYmFjayBidXR0b24uXG4gICAgLy8gU28gdG8gaGFuZGxlIHRoYXQgc2NlbmFyaW8gd2UgbmVlZCB0byBjaGVjayBpZiB3ZSd2ZSBnb3QgYSBjYW4gZGVhY3RpdmF0ZSBpbnRlcmFjdGlvbiBpblxuICAgIC8vIHByb2dyZXNzIGFuZCB0aGUgZG8gdGhlIGFwcHJvcHJpYXRlIGNsZWFuIHVwLlxuICAgIGlmICh0aGlzLmNhbkRlYWN0aXZhdGVJbnRlcmFjdGlvbkNvbnRleHQgJiYgdGhpcy5jYW5EZWFjdGl2YXRlSW50ZXJhY3Rpb25Db250ZXh0LmlzQWN0aXZlKCkpIHtcbiAgICAgIHRoaXMuY2FuY2VsQ2FuRGVhY3RpdmF0ZUludGVyYWN0aW9uKHVybCk7XG4gICAgfVxuICB9XG5cbiAgb25Qb3BTdGF0ZShldmVudDogTmF2aWdhdGlvblN0YXJ0KTogdm9pZCB7XG4gICAgcmV0dXJuIHRoaXMuaWxsZWdhbFRyYW5zaXRpb24oZXZlbnQpO1xuICB9XG5cbiAgb25Sb3V0ZXJDYW5jZWxsZWQoZXZlbnQ6IE5hdmlnYXRpb25DYW5jZWwpOiB2b2lkIHtcbiAgICByZXR1cm4gdGhpcy5pbGxlZ2FsVHJhbnNpdGlvbihldmVudCk7XG4gIH1cblxuICBvblJvdXRlckVycm9yKGV2ZW50OiBOYXZpZ2F0aW9uRXJyb3IpOiB2b2lkIHtcbiAgICByZXR1cm4gdGhpcy5pbGxlZ2FsVHJhbnNpdGlvbihldmVudCk7XG4gIH1cblxuICBvblJvdXRlckVuZChldmVudDogTmF2aWdhdGlvbkVuZCk6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLmlsbGVnYWxUcmFuc2l0aW9uKGV2ZW50KTtcbiAgfVxuXG4gIGdldFZpc2l0U2VnbWVudHMoKTogVmlzaXRTZWdtZW50W10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuX3Zpc2l0U2VnbWVudHMudmFsdWVzKCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlsbGVnYWxUcmFuc2l0aW9uPFI+KG1lc3NhZ2U6IHN0cmluZyB8IFJvdXRlckV2ZW50KTogUiB7XG4gICAgcmV0dXJuIGxhbmcuaWxsZWdhbFN0YXRlKGAke21lc3NhZ2UudG9TdHJpbmcoKX0gbm90IHN1cHBvcnRlZCBieSAke3RoaXMudG9TdHJpbmcoKX1gKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjdXJyZW50Um91dGVyVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudXJsU2VydmljZS5nZXRDdXJyZW50Um91dGVyVXJsKCk7XG4gIH1cblxuICByZXNldEJyb3dzZXJMb2NhdGlvbih1cmwsIG9wdGlvbnM6IHsgcmVwbGFjZUN1cnJlbnQ6IGJvb2xlYW4gfSA9IHsgcmVwbGFjZUN1cnJlbnQ6IGZhbHNlIH0pIHtcbiAgICAvLyBjb25zb2xlLmxvZyhgLS0tPiByZXNldHRpbmcgYnJvd3NlciBsb2NhdGlvbiB0bzogJHt1cmx9YCk7XG4gICAgdGhpcy51cmxTZXJ2aWNlLnJlc2V0QnJvd3NlckxvY2F0aW9uKHVybCwgb3B0aW9ucyk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBwcm90ZWN0ZWQgcmVwYWlyQnJvd3Nlckhpc3RvcnlBbmRVcmxBZnRlckd1YXJkQ2FuY2VsbGF0aW9uKHBvcHBlZEhpc3RvcnlUb1JlcGxhY2U6IHN0cmluZywgYWN0aXZlVXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAvLyBJbXBvcnRhbnQ6IEkgdHJpZWQgdG8gcGVyZm9ybSB0aGlzIGZpeCBhdCBhIGxhdGVyIHBvaW50IGludCBoZSByb3V0aW5nIGN5Y2xlIGJ1dCBpdCBjcmVhdGVkIGFsbCBraW5kcyBvZlxuICAgIC8vIHN0cmFuZ2VuZXNzLlxuICAgIExvZ2dlci5nZXQodGhpcykuaW5mbyhcIldPUkstQVJPVU5EOiBVcGRhdGluZyBicm93c2VyIGxvY2F0aW9uIGFmdGVyIHBvcCBzdGF0ZSAtIHNlZSBhbmd1bGFyIGlzc3VlICMxMzU4NlwiKTtcbiAgICAvLyBjb25zb2xlLmxvZyhgcmVwbGFjaW5nICR7dGhpcy51cmxTZXJ2aWNlLmdldEN1cnJlbnRMb2NhdGlvblVybFNuYXBzaG90KCkudXJsfSB3aXRoICR7cG9wcGVkSGlzdG9yeVRvUmVwbGFjZX1gKTtcbiAgICB0aGlzLnVybFNlcnZpY2UucmVzZXRCcm93c2VyTG9jYXRpb24ocG9wcGVkSGlzdG9yeVRvUmVwbGFjZSwgeyByZXBsYWNlQ3VycmVudDogdHJ1ZSB9KTtcbiAgICAvLyBjb25zb2xlLmxvZyhgcHVzaGluZyAke2FjdGl2ZVVybH0gYmFjayBvbnRvIHRoZSBoaXN0b3J5LmApO1xuICAgIHRoaXMudXJsU2VydmljZS5yZXNldEJyb3dzZXJMb2NhdGlvbihhY3RpdmVVcmwsIHsgcmVwbGFjZUN1cnJlbnQ6IGZhbHNlIH0pO1xuICB9XG5cblxuICBpZ25vcmUoZXZlbnQ6IFJvdXRlckV2ZW50LCByZWFzb24/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICByZWFzb24gPSByZWFzb24gPyBgIC0+ICR7cmVhc29ufWAgOiBcIlwiO1xuICAgIC8vIExvZ2dlci5nZXQodGhpcykuaW5mbyhgSWdub3Jpbmcgcm91dGVyIGV2ZW50JHtyZWFzb259OiAke2V2ZW50LmNvbnN0cnVjdG9yLm5hbWV9IC0+ICR7ZXZlbnQudXJsfSA6OiAke3RoaXMudG9TdHJpbmcoKX1gKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0oJHt0aGlzLmRlYnVnU3RhdGUoKX0pYDtcbiAgfVxuXG4gIHByb3RlY3RlZCBkZWJ1Z1N0YXRlKHByb3BlcnRpZXM/OiBzdHJpbmdbXSkge1xuICAgIHJldHVybiAocHJvcGVydGllcyB8fCB0aGlzLmRlYnVnUHJvcGVydHlLZXlzKS5tYXAocCA9PiB7XG4gICAgICByZXR1cm4gYCR7cH06ICR7dGhpc1twXX1gO1xuICAgIH0pLmpvaW4oXCIsIFwiKTtcbiAgfVxuXG4gIGFzeW5jIGNhbkRlYWN0aXZhdGVQbGFjZShjb21wb25lbnQ6IFBsYWNlQ29tcG9uZW50LCBjdXJyZW50VXJsOiBVcmxTbmFwc2hvdCwgbmV4dFVybDogVXJsU25hcHNob3QpOiBQcm9taXNlPGJvb2xlYW4gfCBVcmxTbmFwc2hvdD4ge1xuICAgIC8vIGNvbnNvbGUubG9nKGAtLS0+IGNhbkRlYWN0aXZhdGVQbGFjZSgke2NvbXBvbmVudC5wbGFjZURlZmluaXRpb24ucGF0aH0sICR7Y3VycmVudFVybC51cmx9IC0+ICR7bmV4dFVybC51cmx9KWApO1xuICAgIC8vIGxvb2t1cCB0aGUgaGFuZGxlciBhbmQgY3JlYXRlIGl0IGlmIHdlJ3ZlIG5vdCBzZWVuIGl0IHlldFxuICAgIGxldCBoYW5kbGVyID0gdGhpcy5jb21wb25lbnREZWFjdGl2YXRpb25IYW5kbGVycy5nZXQoY29tcG9uZW50KTtcbiAgICBpZiAoIWhhbmRsZXIpIHtcbiAgICAgIGNvbnN0IGlzUHJpbWFyeUhhbmRsZXIgPSB0aGlzLmNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXJzLnNpemUgPT09IDA7IC8vIG9ubHkgcHJpbWFyeSBoYW5kbGVyIGNhbmNlbHMgdGhlIGFwcCBtb2RlbCBpbnRlcmF0aW9uc1xuICAgICAgaGFuZGxlciA9IG5ldyBQbGFjZUNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXIoY29tcG9uZW50LCB0aGlzLCBpc1ByaW1hcnlIYW5kbGVyKTtcbiAgICAgIHRoaXMuY29tcG9uZW50RGVhY3RpdmF0aW9uSGFuZGxlcnMuc2V0KGNvbXBvbmVudCwgaGFuZGxlcik7XG4gICAgfVxuICAgIHJldHVybiBoYW5kbGVyLmNhbkRlYWN0aXZhdGUoY3VycmVudFVybCwgbmV4dFVybCkudGhlbihyZXN1bHQgPT4ge1xuICAgICAgLy8gY29uc29sZS5sb2coYDwtLS0gY2FuRGVhY3RpdmF0ZVBsYWNlKCR7Y29tcG9uZW50LnBsYWNlRGVmaW5pdGlvbi5wYXRofSk6ICR7cmVzdWx0fWApO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KS5jYXRjaChlcnJvciA9PiB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9KTtcbiAgfVxuXG4gIGNhbmNlbENhbkRlYWN0aXZhdGVJbnRlcmFjdGlvbihuZXdVcmw6IHN0cmluZyk6IHZvaWQge1xuICAgIExvZ2dlci5nZXQodGhpcykuaW5mbyhgYmFjayBidXR0b24gcHJlc3NlZCBkdXJpbmcgbmF2aWdhdGlvbiBzZXNzaW9uIGludGVyYWN0aW9uIHByb21pc2VgKTtcbiAgICAvLyBkZXRhY2ggdGhlIGludGVyYWN0aW9uIGZyb20gdGhlIHNlc3Npb24gc28gaXQgZG9lc24ndCBnZXQgZGlzcG9zZWQgdW50aWwgdGhlIGFjdGl2aXR5IGhhcyBmaW5pc2hlZFxuICAgIC8vIGFsbCBpdCdzIHRoaW5ncy5cbiAgICBjb25zdCBjYW5EZWFjdGl2YXRlSW50ZXJhY3Rpb25Db250ZXh0ID0gdGhpcy5kZXRhY2hDYW5EZWFjdGl2YXRlSW50ZXJhY3Rpb25Db250ZXh0KCk7XG4gICAgLy8gVE9ETzogSSBuZWVkIHRvIG1ha2UgdGhlIGV4Y2x1c2l2ZSBpbnRlcmFjdGlvbiBjb250ZXh0IGRpc2FsbG93IG5lc3RlZCBhY3Rpdml0aWVzIG9yXG4gICAgLy8gICAgICAgdGhhdCB3b3VsZCBtZXNzIHRoaW5ncyB1cCBlbnRpcmVseS4gT3IsIGNhbiBJIGRvIGEgY29udGV4dC5hYm9ydEFsbCgpLnRoZW4oLi4pXG4gICAgTG9nZ2VyLmdldCh0aGlzKS5pbmZvKFwiY2FuY2VsbGluZyBjdXJyZW50IG5hdmlnYXRpb24gYWN0aXZpdHkuLlwiKTtcbiAgICBjYW5EZWFjdGl2YXRlSW50ZXJhY3Rpb25Db250ZXh0LmNhbmNlbEFjdGl2ZUFjdGl2aXR5KCkudGhlbigoKSA9PiB7XG4gICAgICBjYW5EZWFjdGl2YXRlSW50ZXJhY3Rpb25Db250ZXh0LmRpc3Bvc2UoKTtcbiAgICB9KTtcblxuICAgIHRoaXMuaGFuZGxlQ2FuRGVhY3RpdmF0ZUNhbmNlbGxlZEV2ZW50U2NlbmFyaW8obmV3VXJsKTtcbiAgfVxuXG4gIGFic3RyYWN0IGhhbmRsZUNhbkRlYWN0aXZhdGVDYW5jZWxsZWRFdmVudFNjZW5hcmlvKG5ld1VybDogc3RyaW5nKTogdm9pZFxuXG4gIHByb3RlY3RlZCByZWluc3RhdGVVcmxBZnRlckFuZ3VsYXJDaGFuZ2VkSXRPbkNhbmNlbGxhdGlvbih1cmw6IHN0cmluZykge1xuICAgIC8vIEFuZ3VsYXIgY2FsbHMgX3RoaXMucmVzZXRVcmxUb0N1cnJlbnRVcmxUcmVlKCkgb24gY2FuY2VsbGluZyBhbmQgZnVja3Mgb3VyIGhpc3RvcnkuXG4gICAgLy8gU28gdGhpcyBtZWFucyB0aGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrIGlzIHRoZSB1cmwgd2Ugd2FudCB0byBnbyBiYWNrIHRvLCBhbmQgbm90IHRoZSBvbmUgdGhhdCB3YXMgb25cbiAgICAvLyBpdCBiZWZvcmUgdGhlIGNhbmNlbCBldmVudCBmaXJlZC5cbiAgICAvLyBTbyB3ZSBuZWVkIHRvOlxuICAgIC8vIC0gcmVwbGFjZSB0aGUganVzdCBpbnNlcnRlZCB1cmwgd2l0aCB0aGUgb25lIHRoYXQgdXNlZCB0byBiZSB0aGVyZS5cbiAgICAvLyAtIHB1c2ggb3VyIGFjdHVhbCB1cmwgYmFjayBvbnRvIHRoZSB0b3Agb2YgdGhlIHN0YWNrLlxuICAgIHRoaXMucmVzZXRCcm93c2VyTG9jYXRpb24odXJsLCB7IHJlcGxhY2VDdXJyZW50OiB0cnVlIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRldGFjaENhbkRlYWN0aXZhdGVJbnRlcmFjdGlvbkNvbnRleHQoKTogSW50ZXJhY3Rpb25Db250ZXh0IHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5faW50ZXJhY3Rpb25Db250ZXh0O1xuICAgIHRoaXMuX2ludGVyYWN0aW9uQ29udGV4dCA9IG51bGw7XG4gICAgcmV0dXJuIGNvbnRleHQ7XG4gIH1cbn1cbiJdfQ==
176
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1zZXNzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvcGxhY2UvbmF2aWdhdGlvbi9zZXNzaW9uL25hdmlnYXRpb24tc2Vzc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxPQUFPLEVBQU8sZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBUyxNQUFNLGdCQUFnQixDQUFDO0FBTzVFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFcEMsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFHNUY7O0dBRUc7QUFDSCxNQUFNLE9BQWdCLGlCQUFrQixTQUFRLGdCQUFnQjtJQVd6QztJQUFxQztJQVQxRCxpQkFBaUIsR0FBYSxFQUFFLENBQUM7SUFDekIsY0FBYyxHQUFHLElBQUksR0FBRyxFQUFpQyxDQUFDO0lBRTFELDZCQUE2QixHQUFHLElBQUksR0FBRyxFQUFxRCxDQUFDO0lBSTdGLG1CQUFtQixDQUFxQjtJQUVoRCxZQUFxQixPQUEwQixFQUFXLFdBQW1CO1FBQzNFLEtBQUssRUFBRSxDQUFDO1FBRFcsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7UUFBVyxnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUUzRSw4Q0FBOEM7UUFDOUMsd0RBQXdEO1FBQ3hELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLGlDQUFpQyxFQUFFLENBQUM7UUFDckcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbEIsK0ZBQStGO1lBQy9GLDhGQUE4RjtZQUM5RixpR0FBaUc7WUFDakcsOEZBQThGO1lBQzlGLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO2dCQUM1QixJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLENB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QU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLG1FQUFtRSxDQUFDLENBQUM7UUFDM0YscUdBQXFHO1FBQ3JHLG1CQUFtQjtRQUNuQixNQUFNLCtCQUErQixHQUFHLElBQUksQ0FBQyxxQ0FBcUMsRUFBRSxDQUFDO1FBQ3JGLHVGQUF1RjtRQUN2Rix1RkFBdUY7UUFDdkYsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsMENBQTBDLENBQUMsQ0FBQztRQUNsRSwrQkFBK0IsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDL0QsK0JBQStCLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMseUNBQXlDLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUlTLCtDQUErQyxDQUFDLEdBQVc7UUFDbkUsc0ZBQXNGO1FBQ3RGLHdHQUF3RztRQUN4RyxvQ0FBb0M7UUFDcEMsaUJBQWlCO1FBQ2pCLHNFQUFzRTtRQUN0RSx3REFBd0Q7UUFDeEQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsRUFBRSxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFUyxxQ0FBcUM7UUFDN0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1FBQ3pDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDaEMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgTmF2aWdhdGlvbkNhbmNlbCxcbiAgTmF2aWdhdGlvbkVuZCxcbiAgTmF2aWdhdGlvbkVycm9yLFxuICBOYXZpZ2F0aW9uU3RhcnQsXG4gIFJvdXRlckV2ZW50LFxuICBVcmxTZWdtZW50XG59IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7IERzbCwgR2FyYmFnZUNvbGxlY3RvciwgbGFuZywgTG9nZ2VyLCBUcmFjZSB9IGZyb20gXCJAY29vbG9uL3BlY3RpblwiO1xuaW1wb3J0IHsgSW50ZXJhY3Rpb25Db250ZXh0IH0gZnJvbSBcIi4uLy4uLy4uL2ludGVyYWN0aW9uL2ludGVyYWN0aW9uLWNvbnRleHRcIjtcbmltcG9ydCB7IEludGVyYWN0aW9uU2VydmljZVJvdXRpbmdBZGFwdGVyIH0gZnJvbSBcIi4uLy4uLy4uL2ludGVyYWN0aW9uL3NlcnZpY2VzL2ludGVyYWN0aW9uLXNlcnZpY2Utcm91dGluZy1hZGFwdGVyXCI7XG5pbXBvcnQgeyBQbGFjZUNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9wbGFjZS1jb21wb25lbnRcIjtcbmltcG9ydCB7IFBsYWNlRGVmaW5pdGlvbiB9IGZyb20gXCIuLi8uLi9wbGFjZS1kZWZpbml0aW9uXCI7XG5pbXBvcnQgeyBVcmxTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3VybC1zZXJ2aWNlXCI7XG5pbXBvcnQgeyBVcmxTbmFwc2hvdCB9IGZyb20gXCIuLi8uLi91cmwtc25hcHNob3RcIjtcbmltcG9ydCB7IFZpc2l0IH0gZnJvbSBcIi4uLy4uL3Zpc2l0XCI7XG5pbXBvcnQge1Zpc2l0U2VnbWVudH0gZnJvbSBcIi4uLy4uL3Zpc2l0LXNlZ21lbnRcIjtcbmltcG9ydCB7IFBsYWNlQ29tcG9uZW50RGVhY3RpdmF0aW9uSGFuZGxlciB9IGZyb20gXCIuLi9wbGFjZS1jb21wb25lbnQtZGVhY3RpdmF0aW9uLWhhbmRsZXJcIjtcbmltcG9ydCB7IE5hdmlnYXRpb25Db250ZXh0IH0gZnJvbSBcIi4vbmF2aWdhdGlvbi1jb250ZXh0XCI7XG5cbi8qKlxuICogVHJhbnNpZW50IHN0YXRlc1xuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTmF2aWdhdGlvblNlc3Npb24gZXh0ZW5kcyBHYXJiYWdlQ29sbGVjdG9yIHtcblxuICBkZWJ1Z1Byb3BlcnR5S2V5czogc3RyaW5nW10gPSBbXTtcbiAgcHJpdmF0ZSBfdmlzaXRTZWdtZW50cyA9IG5ldyBNYXA8UGxhY2VEZWZpbml0aW9uLCBWaXNpdFNlZ21lbnQ+KCk7XG5cbiAgcHJpdmF0ZSBjb21wb25lbnREZWFjdGl2YXRpb25IYW5kbGVycyA9IG5ldyBNYXA8UGxhY2VDb21wb25lbnQsIFBsYWNlQ29tcG9uZW50RGVhY3RpdmF0aW9uSGFuZGxlcj4oKTtcbiAgYWJzdHJhY3QgcmVhZG9ubHkgaXNQb3BTdGF0ZTogYm9vbGVhbjtcblxuXG4gIHByaXZhdGUgX2ludGVyYWN0aW9uQ29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0O1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGNvbnRleHQ6IE5hdmlnYXRpb25Db250ZXh0LCByZWFkb25seSBzdGFydGluZ1VybDogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcbiAgICAvLyBjb25zb2xlLmxvZyhgbmV3ICR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfWApXG4gICAgLy8gVE9ETzogY2FuIEkgZ2V0IGF3YXkgd2l0aG91dCBjcmVhdGluZyBvbmUgZXZlcnkgdGltZT9cbiAgICB0aGlzLl9pbnRlcmFjdGlvbkNvbnRleHQgPSB0aGlzLmNvbnRleHQucm91dGVySW50ZXJhY3Rpb25BZGFwdGVyLmNyZWF0ZUV4Y2x1c2l2ZUludGVyYWN0aW9uQ29udGV4dCgpO1xuICAgIHRoaXMub25EaXNwb3NlKCgpID0+IHtcbiAgICAgIC8vIHRoZSBpbnRlcmFjdGlvbiBjb250ZXh0IGNhbiBiZSBkZXRhY2hlZCBkdXJpbmcgdGhlIGJhY2sgYnV0dG9uIGNhbmNlbGxhdGlvbiBzdGF0ZSB0cmFuc2l0aW9uXG4gICAgICAvLyBhcyB0aGUgdHJhbnNpdGlvbiBpcyBzeW5jaHJvbm91cyBhbmQgYWN0aXZpdHlDYW5jZWxsYXRpb24gaXNuJ3QuICBPdGhlcndpc2UgZGlzcG9zZSB3aWxsIGJlXG4gICAgICAvLyBjYWxsZWQgYmVmb3JlIHRoZSBjb250ZXh0IGhhcyBiZWVuIGNhbmNlbGxlZC4gIEl0IG1pZ2h0IGJlIHdvcmsgaGF2aW5nIHRoZSBpbnRlcmFjdGlvbiBjb250ZXh0XG4gICAgICAvLyBhdXRvbWF0aWNhbGx5IGNhbmNlbCBpZiB0aGUgY29udGV4dCBpcyBkaXNwb3NlZCBzbyB3ZSBkb24ndCBoYXZlIHdvcnJ5IGFib3V0IGRldGFjaGluZyBldGMuXG4gICAgICBpZiAodGhpcy5faW50ZXJhY3Rpb25Db250ZXh0KSB7XG4gICAgICAgIHRoaXMuX2ludGVyYWN0aW9uQ29udGV4dC5kaXNwb3NlKCk7IC8vIG9yIGRvIHNvbWV0aGluZyBsaWtlIGNhbmNlbEFuZERpc3Bvc2U/XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBnZXQgaXNJbnRlcmFjdGlvblN5bmMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lO1xuICB9XG5cbiAgZ2V0IHVybFNlcnZpY2UoKTogVXJsU2VydmljZSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dC51cmxTZXJ2aWNlO1xuICB9XG5cbiAgZ2V0IGludGVyYWN0aW9uU2VydmljZUFkYXB0ZXIoKTogSW50ZXJhY3Rpb25TZXJ2aWNlUm91dGluZ0FkYXB0ZXIge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHQucm91dGVySW50ZXJhY3Rpb25BZGFwdGVyO1xuICB9XG5cbiAgaW5pdGlhbGlzZVZpc2l0U2VnbWVudHModmlzaXQ6IFZpc2l0KSB7XG4gICAgdmlzaXQuc2VnbWVudHMuZm9yRWFjaChpdCA9PiB0aGlzLnVwZGF0ZVZpc2l0U2VnbWVudChpdCkpXG4gIH1cblxuICB1cGRhdGVWaXNpdFNlZ21lbnQoc2VnbWVudDogVmlzaXRTZWdtZW50KSB7XG4gICAgLy8gY29uc29sZS5sb2coYHVwZGF0ZVZpc2l0U2VnbWVudGAsIHNlZ21lbnQudG9EZWJ1Z1N0cmluZygpKTtcbiAgICB0aGlzLl92aXNpdFNlZ21lbnRzLnNldChzZWdtZW50LnBsYWNlRGVmaW5pdGlvbiwgc2VnbWVudCk7XG4gIH1cblxuXG4gIGdldFZpc2l0U2VnbWVudEZvcihwbGFjZURlZjogUGxhY2VEZWZpbml0aW9uKSB7XG4gICAgY29uc3QgdmlzaXQgPSB0aGlzLl92aXNpdFNlZ21lbnRzLmdldChwbGFjZURlZik7XG4gICAgLy8gY29uc29sZS5sb2coYEdldHRpbmcgdmlzaXQgZm9yICR7cGxhY2VEZWYuY29tcG9uZW50Lm5hbWV9YCwge3Zpc2l0fSk7XG4gICAgcmV0dXJuIHZpc2l0O1xuICB9XG5cbiAgY3JlYXRlVXBkYXRlZFZpc2l0KHVybDogc3RyaW5nKSA6VmlzaXQge1xuICAgIC8vIFRoZSB2aXNpdCBzZWdtZW50cyBjYW4gaGF2ZSBhcmJpcmFyeSBwbGFjZXMgaW4gdGhlbSBhZnRlciByZWRpcmVjdHNcbiAgICAvLyBzbyB3ZSBoYXZlIHRvIGZpbHRlciB0aGVtIGJhc2VkIG9uIHRoZSBmaW5hbCB1cmwuXG4gICAgY29uc3Qgc25hcHNob3QgPSB0aGlzLnVybFNlcnZpY2UucGFyc2VVcmwodXJsKTtcbiAgICBjb25zdCBmaWx0ZXJlZFNlZ21lbnRzID0gQXJyYXkuZnJvbSh0aGlzLl92aXNpdFNlZ21lbnRzLnZhbHVlcygpKVxuICAgICAgLmZpbHRlcihpdCA9PiBzbmFwc2hvdC5jb250YWluc1Zpc2l0U2VnbWVudChpdCkpO1xuICAgIHJldHVybiBWaXNpdC5mcm9tU2VnbWVudHMoZmlsdGVyZWRTZWdtZW50cyk7XG4gIH1cblxuICBnZXQgY2FuRGVhY3RpdmF0ZUludGVyYWN0aW9uQ29udGV4dCgpOiBJbnRlcmFjdGlvbkNvbnRleHQge1xuICAgIHJldHVybiB0aGlzLl9pbnRlcmFjdGlvbkNvbnRleHQ7XG4gIH1cblxuICBub3RpZnlBY3RpdmUoKSB7XG4gICAgLy8gbm9vcC5cbiAgfVxuXG4gIG9uUm91dGVyU3RhcnRlZChldmVudDogTmF2aWdhdGlvblN0YXJ0KTogdm9pZCB7XG4gICAgLy8gbmF2aWdhdGlvbiBzZXNzaW9ucyBjYW4gaGF2ZSBtYW55IGNhbmNlbCBzdGFydCBjeWNsZXMgZHVlIHRvIHBsYWNlIGd1YXJkIHJlZGlyZWN0c1xuICAgIHRoaXMuaWdub3JlKGV2ZW50KTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIG9uVXJsQ2hhbmdlKHVybDogc3RyaW5nKSB7XG4gICAgLy8gTm9ybWFsbHkgd2UganVzdCBpZ25vcmUgdGhlc2UgYnV0IHRoZXkgYXJlIHRoZSBvbmx5IHdheSBvZiBkZXRlY3RpbmcgaWYgdGhlIGJhY2sgYnV0dG9uXG4gICAgLy8gd2FzIGNsaWNrZWQgZHVyaW5nIGEgY2FuRGVhY3RpdmF0ZSBwcm9taXNlLlxuICAgIC8vIDEuIGEgcm91dGUgaXMgaW4gcHJvZ3Jlc3MgYW5kIGF3YWl0aW5nIGEgY2FuRGVhY3RpdmF0ZUd1YXJkXG4gICAgLy8gMi4gdGhlIHVzZXIgdGhlIGNsaWNrcyB0aGUgYmFjayBidXR0b24uXG4gICAgLy8gU28gdG8gaGFuZGxlIHRoYXQgc2NlbmFyaW8gd2UgbmVlZCB0byBjaGVjayBpZiB3ZSd2ZSBnb3QgYSBjYW4gZGVhY3RpdmF0ZSBpbnRlcmFjdGlvbiBpblxuICAgIC8vIHByb2dyZXNzIGFuZCB0aGUgZG8gdGhlIGFwcHJvcHJpYXRlIGNsZWFuIHVwLlxuICAgIGlmICh0aGlzLmNhbkRlYWN0aXZhdGVJbnRlcmFjdGlvbkNvbnRleHQgJiYgdGhpcy5jYW5EZWFjdGl2YXRlSW50ZXJhY3Rpb25Db250ZXh0LmlzQWN0aXZlKCkpIHtcbiAgICAgIHRoaXMuY2FuY2VsQ2FuRGVhY3RpdmF0ZUludGVyYWN0aW9uKHVybCk7XG4gICAgfVxuICB9XG5cbiAgb25Qb3BTdGF0ZShldmVudDogTmF2aWdhdGlvblN0YXJ0KTogdm9pZCB7XG4gICAgcmV0dXJuIHRoaXMuaWxsZWdhbFRyYW5zaXRpb24oZXZlbnQpO1xuICB9XG5cbiAgb25Sb3V0ZXJDYW5jZWxsZWQoZXZlbnQ6IE5hdmlnYXRpb25DYW5jZWwpOiB2b2lkIHtcbiAgICByZXR1cm4gdGhpcy5pbGxlZ2FsVHJhbnNpdGlvbihldmVudCk7XG4gIH1cblxuICBvblJvdXRlckVycm9yKGV2ZW50OiBOYXZpZ2F0aW9uRXJyb3IpOiB2b2lkIHtcbiAgICByZXR1cm4gdGhpcy5pbGxlZ2FsVHJhbnNpdGlvbihldmVudCk7XG4gIH1cblxuICBvblJvdXRlckVuZChldmVudDogTmF2aWdhdGlvbkVuZCk6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLmlsbGVnYWxUcmFuc2l0aW9uKGV2ZW50KTtcbiAgfVxuXG4gIGdldFZpc2l0U2VnbWVudHMoKTogVmlzaXRTZWdtZW50W10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuX3Zpc2l0U2VnbWVudHMudmFsdWVzKCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlsbGVnYWxUcmFuc2l0aW9uPFI+KG1lc3NhZ2U6IHN0cmluZyB8IFJvdXRlckV2ZW50KTogUiB7XG4gICAgcmV0dXJuIGxhbmcuaWxsZWdhbFN0YXRlKGAke21lc3NhZ2UudG9TdHJpbmcoKX0gbm90IHN1cHBvcnRlZCBieSAke3RoaXMudG9TdHJpbmcoKX1gKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjdXJyZW50Um91dGVyVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudXJsU2VydmljZS5nZXRDdXJyZW50Um91dGVyVXJsKCk7XG4gIH1cblxuICByZXNldEJyb3dzZXJMb2NhdGlvbih1cmwsIG9wdGlvbnM6IHsgcmVwbGFjZUN1cnJlbnQ6IGJvb2xlYW4gfSA9IHsgcmVwbGFjZUN1cnJlbnQ6IGZhbHNlIH0pIHtcbiAgICAvLyBjb25zb2xlLmxvZyhgLS0tPiByZXNldHRpbmcgYnJvd3NlciBsb2NhdGlvbiB0bzogJHt1cmx9YCk7XG4gICAgdGhpcy51cmxTZXJ2aWNlLnJlc2V0QnJvd3NlckxvY2F0aW9uKHVybCwgb3B0aW9ucyk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBwcm90ZWN0ZWQgcmVwYWlyQnJvd3Nlckhpc3RvcnlBbmRVcmxBZnRlckd1YXJkQ2FuY2VsbGF0aW9uKHBvcHBlZEhpc3RvcnlUb1JlcGxhY2U6IHN0cmluZywgYWN0aXZlVXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAvLyBJbXBvcnRhbnQ6IEkgdHJpZWQgdG8gcGVyZm9ybSB0aGlzIGZpeCBhdCBhIGxhdGVyIHBvaW50IGludCBoZSByb3V0aW5nIGN5Y2xlIGJ1dCBpdCBjcmVhdGVkIGFsbCBraW5kcyBvZlxuICAgIC8vIHN0cmFuZ2VuZXNzLlxuICAgIExvZ2dlci5nZXQodGhpcykuaW5mbyhcIldPUkstQVJPVU5EOiBVcGRhdGluZyBicm93c2VyIGxvY2F0aW9uIGFmdGVyIHBvcCBzdGF0ZSAtIHNlZSBhbmd1bGFyIGlzc3VlICMxMzU4NlwiKTtcbiAgICAvLyBjb25zb2xlLmxvZyhgcmVwbGFjaW5nICR7dGhpcy51cmxTZXJ2aWNlLmdldEN1cnJlbnRMb2NhdGlvblVybFNuYXBzaG90KCkudXJsfSB3aXRoICR7cG9wcGVkSGlzdG9yeVRvUmVwbGFjZX1gKTtcbiAgICB0aGlzLnVybFNlcnZpY2UucmVzZXRCcm93c2VyTG9jYXRpb24ocG9wcGVkSGlzdG9yeVRvUmVwbGFjZSwgeyByZXBsYWNlQ3VycmVudDogdHJ1ZSB9KTtcbiAgICAvLyBjb25zb2xlLmxvZyhgcHVzaGluZyAke2FjdGl2ZVVybH0gYmFjayBvbnRvIHRoZSBoaXN0b3J5LmApO1xuICAgIHRoaXMudXJsU2VydmljZS5yZXNldEJyb3dzZXJMb2NhdGlvbihhY3RpdmVVcmwsIHsgcmVwbGFjZUN1cnJlbnQ6IGZhbHNlIH0pO1xuICB9XG5cblxuICBpZ25vcmUoZXZlbnQ6IFJvdXRlckV2ZW50LCByZWFzb24/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICByZWFzb24gPSByZWFzb24gPyBgIC0+ICR7cmVhc29ufWAgOiBcIlwiO1xuICAgIC8vIExvZ2dlci5nZXQodGhpcykuaW5mbyhgSWdub3Jpbmcgcm91dGVyIGV2ZW50JHtyZWFzb259OiAke2V2ZW50LmNvbnN0cnVjdG9yLm5hbWV9IC0+ICR7ZXZlbnQudXJsfSA6OiAke3RoaXMudG9TdHJpbmcoKX1gKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0oJHt0aGlzLmRlYnVnU3RhdGUoKX0pYDtcbiAgfVxuXG4gIHByb3RlY3RlZCBkZWJ1Z1N0YXRlKHByb3BlcnRpZXM/OiBzdHJpbmdbXSkge1xuICAgIHJldHVybiAocHJvcGVydGllcyB8fCB0aGlzLmRlYnVnUHJvcGVydHlLZXlzKS5tYXAocCA9PiB7XG4gICAgICByZXR1cm4gYCR7cH06ICR7dGhpc1twXX1gO1xuICAgIH0pLmpvaW4oXCIsIFwiKTtcbiAgfVxuXG4gIGFzeW5jIGNhbkRlYWN0aXZhdGVQbGFjZShjb21wb25lbnQ6IFBsYWNlQ29tcG9uZW50LCBjdXJyZW50VXJsOiBVcmxTbmFwc2hvdCwgbmV4dFVybDogVXJsU25hcHNob3QpOiBQcm9taXNlPGJvb2xlYW4gfCBVcmxTbmFwc2hvdD4ge1xuICAgIC8vIGNvbnNvbGUubG9nKGAtLS0+IGNhbkRlYWN0aXZhdGVQbGFjZSgke2NvbXBvbmVudC5wbGFjZURlZmluaXRpb24ucGF0aH0sICR7Y3VycmVudFVybC51cmx9IC0+ICR7bmV4dFVybC51cmx9KWApO1xuICAgIC8vIGxvb2t1cCB0aGUgaGFuZGxlciBhbmQgY3JlYXRlIGl0IGlmIHdlJ3ZlIG5vdCBzZWVuIGl0IHlldFxuICAgIGxldCBoYW5kbGVyID0gdGhpcy5jb21wb25lbnREZWFjdGl2YXRpb25IYW5kbGVycy5nZXQoY29tcG9uZW50KTtcbiAgICBpZiAoIWhhbmRsZXIpIHtcbiAgICAgIGNvbnN0IGlzUHJpbWFyeUhhbmRsZXIgPSB0aGlzLmNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXJzLnNpemUgPT09IDA7IC8vIG9ubHkgcHJpbWFyeSBoYW5kbGVyIGNhbmNlbHMgdGhlIGFwcCBtb2RlbCBpbnRlcmF0aW9uc1xuICAgICAgaGFuZGxlciA9IG5ldyBQbGFjZUNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXIoY29tcG9uZW50LCB0aGlzLCBpc1ByaW1hcnlIYW5kbGVyKTtcbiAgICAgIHRoaXMuY29tcG9uZW50RGVhY3RpdmF0aW9uSGFuZGxlcnMuc2V0KGNvbXBvbmVudCwgaGFuZGxlcik7XG4gICAgfVxuICAgIHJldHVybiBoYW5kbGVyLmNhbkRlYWN0aXZhdGUoY3VycmVudFVybCwgbmV4dFVybCkudGhlbihyZXN1bHQgPT4ge1xuICAgICAgLy8gY29uc29sZS5sb2coYDwtLS0gY2FuRGVhY3RpdmF0ZVBsYWNlKCR7Y29tcG9uZW50LnBsYWNlRGVmaW5pdGlvbi5wYXRofSk6ICR7cmVzdWx0fWApO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KS5jYXRjaChlcnJvciA9PiB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9KTtcbiAgfVxuXG4gIGNhbmNlbENhbkRlYWN0aXZhdGVJbnRlcmFjdGlvbihuZXdVcmw6IHN0cmluZyk6IHZvaWQge1xuICAgIExvZ2dlci5nZXQodGhpcykuaW5mbyhgYmFjayBidXR0b24gcHJlc3NlZCBkdXJpbmcgbmF2aWdhdGlvbiBzZXNzaW9uIGludGVyYWN0aW9uIHByb21pc2VgKTtcbiAgICAvLyBkZXRhY2ggdGhlIGludGVyYWN0aW9uIGZyb20gdGhlIHNlc3Npb24gc28gaXQgZG9lc24ndCBnZXQgZGlzcG9zZWQgdW50aWwgdGhlIGFjdGl2aXR5IGhhcyBmaW5pc2hlZFxuICAgIC8vIGFsbCBpdCdzIHRoaW5ncy5cbiAgICBjb25zdCBjYW5EZWFjdGl2YXRlSW50ZXJhY3Rpb25Db250ZXh0ID0gdGhpcy5kZXRhY2hDYW5EZWFjdGl2YXRlSW50ZXJhY3Rpb25Db250ZXh0KCk7XG4gICAgLy8gVE9ETzogSSBuZWVkIHRvIG1ha2UgdGhlIGV4Y2x1c2l2ZSBpbnRlcmFjdGlvbiBjb250ZXh0IGRpc2FsbG93IG5lc3RlZCBhY3Rpdml0aWVzIG9yXG4gICAgLy8gICAgICAgdGhhdCB3b3VsZCBtZXNzIHRoaW5ncyB1cCBlbnRpcmVseS4gT3IsIGNhbiBJIGRvIGEgY29udGV4dC5hYm9ydEFsbCgpLnRoZW4oLi4pXG4gICAgTG9nZ2VyLmdldCh0aGlzKS5pbmZvKFwiY2FuY2VsbGluZyBjdXJyZW50IG5hdmlnYXRpb24gYWN0aXZpdHkuLlwiKTtcbiAgICBjYW5EZWFjdGl2YXRlSW50ZXJhY3Rpb25Db250ZXh0LmNhbmNlbEFjdGl2ZUFjdGl2aXR5KCkudGhlbigoKSA9PiB7XG4gICAgICBjYW5EZWFjdGl2YXRlSW50ZXJhY3Rpb25Db250ZXh0LmRpc3Bvc2UoKTtcbiAgICB9KTtcblxuICAgIHRoaXMuaGFuZGxlQ2FuRGVhY3RpdmF0ZUNhbmNlbGxlZEV2ZW50U2NlbmFyaW8obmV3VXJsKTtcbiAgfVxuXG4gIGFic3RyYWN0IGhhbmRsZUNhbkRlYWN0aXZhdGVDYW5jZWxsZWRFdmVudFNjZW5hcmlvKG5ld1VybDogc3RyaW5nKTogdm9pZFxuXG4gIHByb3RlY3RlZCByZWluc3RhdGVVcmxBZnRlckFuZ3VsYXJDaGFuZ2VkSXRPbkNhbmNlbGxhdGlvbih1cmw6IHN0cmluZykge1xuICAgIC8vIEFuZ3VsYXIgY2FsbHMgX3RoaXMucmVzZXRVcmxUb0N1cnJlbnRVcmxUcmVlKCkgb24gY2FuY2VsbGluZyBhbmQgZnVja3Mgb3VyIGhpc3RvcnkuXG4gICAgLy8gU28gdGhpcyBtZWFucyB0aGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrIGlzIHRoZSB1cmwgd2Ugd2FudCB0byBnbyBiYWNrIHRvLCBhbmQgbm90IHRoZSBvbmUgdGhhdCB3YXMgb25cbiAgICAvLyBpdCBiZWZvcmUgdGhlIGNhbmNlbCBldmVudCBmaXJlZC5cbiAgICAvLyBTbyB3ZSBuZWVkIHRvOlxuICAgIC8vIC0gcmVwbGFjZSB0aGUganVzdCBpbnNlcnRlZCB1cmwgd2l0aCB0aGUgb25lIHRoYXQgdXNlZCB0byBiZSB0aGVyZS5cbiAgICAvLyAtIHB1c2ggb3VyIGFjdHVhbCB1cmwgYmFjayBvbnRvIHRoZSB0b3Agb2YgdGhlIHN0YWNrLlxuICAgIHRoaXMucmVzZXRCcm93c2VyTG9jYXRpb24odXJsLCB7IHJlcGxhY2VDdXJyZW50OiB0cnVlIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRldGFjaENhbkRlYWN0aXZhdGVJbnRlcmFjdGlvbkNvbnRleHQoKTogSW50ZXJhY3Rpb25Db250ZXh0IHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5faW50ZXJhY3Rpb25Db250ZXh0O1xuICAgIHRoaXMuX2ludGVyYWN0aW9uQ29udGV4dCA9IG51bGw7XG4gICAgcmV0dXJuIGNvbnRleHQ7XG4gIH1cbn1cbiJdfQ==
@@ -12,4 +12,4 @@ export class PopStateNavigation extends AbstractPopStateNavigation {
12
12
  this.context.transitionTo(new WaitUntilPopStateDuringCanDeactivateInteractionFinishes(this.context, this.startingUrl, locationTriggerUrl, this.poppedHistoryUrl));
13
13
  }
14
14
  }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wLXN0YXRlLW5hdmlnYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9wbGFjZS9uYXZpZ2F0aW9uL3Nlc3Npb24vcG9wLXN0YXRlLW5hdmlnYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDM0UsT0FBTyxFQUFDLHVEQUF1RCxFQUFDLE1BQU0sK0VBQStFLENBQUM7QUFFdEosTUFBTSxPQUFPLGtCQUFtQixTQUFRLDBCQUEwQjtJQUV2RCxpQkFBaUIsQ0FBQyxLQUF1QjtRQUNoRCxJQUFJLENBQUMsZ0RBQWdELEVBQUUsQ0FBQztRQUN4RCxJQUFJLENBQUMsT0FBTyxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVRLFdBQVcsQ0FBQyxLQUFvQjtRQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFFRCx5Q0FBeUMsQ0FBQyxrQkFBMEI7UUFDbEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSx1REFBdUQsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUNoRyxJQUFJLENBQUMsV0FBVyxFQUNoQixrQkFBa0IsRUFDbEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztJQUM1QixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05hdmlnYXRpb25DYW5jZWwsIE5hdmlnYXRpb25FbmR9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0Fic3RyYWN0UG9wU3RhdGVOYXZpZ2F0aW9ufSBmcm9tICcuL2Fic3RyYWN0LXBvcC1zdGF0ZS1uYXZpZ2F0aW9uJztcbmltcG9ydCB7V2FpdFVudGlsUG9wU3RhdGVEdXJpbmdDYW5EZWFjdGl2YXRlSW50ZXJhY3Rpb25GaW5pc2hlc30gZnJvbSAnLi9ldmVudC1jbGVhbnVwL3dhaXQtdW50aWwtcG9wc3RhdGUtZHVyaW5nLWNhbi1kZWFjdGl2YXRlLXRyYW5zaXRpb24tZmluaXNoZXMnO1xuXG5leHBvcnQgY2xhc3MgUG9wU3RhdGVOYXZpZ2F0aW9uIGV4dGVuZHMgQWJzdHJhY3RQb3BTdGF0ZU5hdmlnYXRpb24ge1xuXG4gIG92ZXJyaWRlIG9uUm91dGVyQ2FuY2VsbGVkKGV2ZW50OiBOYXZpZ2F0aW9uQ2FuY2VsKTogdm9pZCB7XG4gICAgdGhpcy5yZXBhaXJCcm93c2VySGlzdG9yeUFuZFVybEFmdGVyR3VhcmRDYW5jZWxsYXRpb24oKTtcbiAgICB0aGlzLmNvbnRleHQuZmluaXNoUm91dGluZ1Nlc3Npb24oKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG9uUm91dGVyRW5kKGV2ZW50OiBOYXZpZ2F0aW9uRW5kKTogdm9pZCB7XG4gICAgdGhpcy5jb250ZXh0LmZpbmlzaFJvdXRpbmdTZXNzaW9uKHRoaXMuY3JlYXRlVXBkYXRlZFZpc2l0KGV2ZW50LnVybEFmdGVyUmVkaXJlY3RzKSk7XG4gIH1cblxuICBoYW5kbGVDYW5EZWFjdGl2YXRlQ2FuY2VsbGVkRXZlbnRTY2VuYXJpbyhsb2NhdGlvblRyaWdnZXJVcmw6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY29udGV4dC50cmFuc2l0aW9uVG8obmV3IFdhaXRVbnRpbFBvcFN0YXRlRHVyaW5nQ2FuRGVhY3RpdmF0ZUludGVyYWN0aW9uRmluaXNoZXModGhpcy5jb250ZXh0LFxuICAgICAgdGhpcy5zdGFydGluZ1VybCxcbiAgICAgIGxvY2F0aW9uVHJpZ2dlclVybCxcbiAgICAgIHRoaXMucG9wcGVkSGlzdG9yeVVybCkpO1xuICB9XG5cbn1cbiJdfQ==
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wLXN0YXRlLW5hdmlnYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9wbGFjZS9uYXZpZ2F0aW9uL3Nlc3Npb24vcG9wLXN0YXRlLW5hdmlnYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHVEQUF1RCxFQUFFLE1BQU0sK0VBQStFLENBQUM7QUFFeEosTUFBTSxPQUFPLGtCQUFtQixTQUFRLDBCQUEwQjtJQUV2RCxpQkFBaUIsQ0FBQyxLQUF1QjtRQUNoRCxJQUFJLENBQUMsZ0RBQWdELEVBQUUsQ0FBQztRQUN4RCxJQUFJLENBQUMsT0FBTyxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVRLFdBQVcsQ0FBQyxLQUFvQjtRQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFFRCx5Q0FBeUMsQ0FBQyxrQkFBMEI7UUFDbEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSx1REFBdUQsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUNoRyxJQUFJLENBQUMsV0FBVyxFQUNoQixrQkFBa0IsRUFDbEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztJQUM1QixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOYXZpZ2F0aW9uQ2FuY2VsLCBOYXZpZ2F0aW9uRW5kIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFic3RyYWN0UG9wU3RhdGVOYXZpZ2F0aW9uIH0gZnJvbSAnLi9hYnN0cmFjdC1wb3Atc3RhdGUtbmF2aWdhdGlvbic7XG5pbXBvcnQgeyBXYWl0VW50aWxQb3BTdGF0ZUR1cmluZ0NhbkRlYWN0aXZhdGVJbnRlcmFjdGlvbkZpbmlzaGVzIH0gZnJvbSAnLi9ldmVudC1jbGVhbnVwL3dhaXQtdW50aWwtcG9wc3RhdGUtZHVyaW5nLWNhbi1kZWFjdGl2YXRlLXRyYW5zaXRpb24tZmluaXNoZXMnO1xuXG5leHBvcnQgY2xhc3MgUG9wU3RhdGVOYXZpZ2F0aW9uIGV4dGVuZHMgQWJzdHJhY3RQb3BTdGF0ZU5hdmlnYXRpb24ge1xuXG4gIG92ZXJyaWRlIG9uUm91dGVyQ2FuY2VsbGVkKGV2ZW50OiBOYXZpZ2F0aW9uQ2FuY2VsKTogdm9pZCB7XG4gICAgdGhpcy5yZXBhaXJCcm93c2VySGlzdG9yeUFuZFVybEFmdGVyR3VhcmRDYW5jZWxsYXRpb24oKTtcbiAgICB0aGlzLmNvbnRleHQuZmluaXNoUm91dGluZ1Nlc3Npb24oKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG9uUm91dGVyRW5kKGV2ZW50OiBOYXZpZ2F0aW9uRW5kKTogdm9pZCB7XG4gICAgdGhpcy5jb250ZXh0LmZpbmlzaFJvdXRpbmdTZXNzaW9uKHRoaXMuY3JlYXRlVXBkYXRlZFZpc2l0KGV2ZW50LnVybEFmdGVyUmVkaXJlY3RzKSk7XG4gIH1cblxuICBoYW5kbGVDYW5EZWFjdGl2YXRlQ2FuY2VsbGVkRXZlbnRTY2VuYXJpbyhsb2NhdGlvblRyaWdnZXJVcmw6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY29udGV4dC50cmFuc2l0aW9uVG8obmV3IFdhaXRVbnRpbFBvcFN0YXRlRHVyaW5nQ2FuRGVhY3RpdmF0ZUludGVyYWN0aW9uRmluaXNoZXModGhpcy5jb250ZXh0LFxuICAgICAgdGhpcy5zdGFydGluZ1VybCxcbiAgICAgIGxvY2F0aW9uVHJpZ2dlclVybCxcbiAgICAgIHRoaXMucG9wcGVkSGlzdG9yeVVybCkpO1xuICB9XG5cbn1cbiJdfQ==
@@ -12,4 +12,4 @@ export var PlaceAccessGuard;
12
12
  }
13
13
  PlaceAccessGuard.NoAuth = NoAuth;
14
14
  })(PlaceAccessGuard || (PlaceAccessGuard = {}));
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UtYWNjZXNzLWd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvcGxhY2UvcGxhY2UtYWNjZXNzLWd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE1BQU0sS0FBVyxnQkFBZ0IsQ0FhaEM7QUFiRCxXQUFpQixnQkFBZ0I7SUFFL0IsTUFBYSxNQUFNO1FBQ2pCLFdBQVc7UUFDWCxlQUFlO1lBQ2IsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsV0FBVztRQUNYLFlBQVksQ0FBQyxlQUFnQztZQUMzQyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7S0FFRjtJQVZZLHVCQUFNLFNBVWxCLENBQUE7QUFDSCxDQUFDLEVBYmdCLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFhaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7UGxhY2VEZWZpbml0aW9ufSBmcm9tICcuL3BsYWNlLWRlZmluaXRpb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBsYWNlQWNjZXNzR3VhcmQge1xuICBpc0F1dGhlbnRpY2F0ZWQoKTogYm9vbGVhbjtcbiAgaXNBdXRob3Jpc2VkKHBsYWNlRGVmaW5pdGlvbjogUGxhY2VEZWZpbml0aW9uKTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBQbGFjZUFjY2Vzc0d1YXJkIHtcblxuICBleHBvcnQgY2xhc3MgTm9BdXRoIGltcGxlbWVudHMgUGxhY2VBY2Nlc3NHdWFyZCB7XG4gICAgLy8gQFRyYWNlKClcbiAgICBpc0F1dGhlbnRpY2F0ZWQoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgLy8gQFRyYWNlKClcbiAgICBpc0F1dGhvcmlzZWQocGxhY2VEZWZpbml0aW9uOiBQbGFjZURlZmluaXRpb24pOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICB9XG59XG4iXX0=
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UtYWNjZXNzLWd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvcGxhY2UvcGxhY2UtYWNjZXNzLWd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE1BQU0sS0FBVyxnQkFBZ0IsQ0FhaEM7QUFiRCxXQUFpQixnQkFBZ0I7SUFFL0IsTUFBYSxNQUFNO1FBQ2pCLFdBQVc7UUFDWCxlQUFlO1lBQ2IsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsV0FBVztRQUNYLFlBQVksQ0FBQyxlQUFnQztZQUMzQyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7S0FFRjtJQVZZLHVCQUFNLFNBVWxCLENBQUE7QUFDSCxDQUFDLEVBYmdCLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFhaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1ZhbHVlTW9kZWx9IGZyb20gXCJAY29vbG9uL3BlY3RpblwiO1xuaW1wb3J0IHtBcnJheU11bHRpbWFwfSBmcm9tIFwiQHRlcHBlaXMvbXVsdGltYXBzXCI7XG5pbXBvcnQge1BsYWNlRGVmaW5pdGlvbn0gZnJvbSAnLi9wbGFjZS1kZWZpbml0aW9uJztcblxuZXhwb3J0IGludGVyZmFjZSBQbGFjZUFjY2Vzc0d1YXJkIHtcbiAgaXNBdXRoZW50aWNhdGVkKCk6IGJvb2xlYW47XG4gIGlzQXV0aG9yaXNlZChwbGFjZURlZmluaXRpb246IFBsYWNlRGVmaW5pdGlvbik6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgUGxhY2VBY2Nlc3NHdWFyZCB7XG5cbiAgZXhwb3J0IGNsYXNzIE5vQXV0aCBpbXBsZW1lbnRzIFBsYWNlQWNjZXNzR3VhcmQge1xuICAgIC8vIEBUcmFjZSgpXG4gICAgaXNBdXRoZW50aWNhdGVkKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIC8vIEBUcmFjZSgpXG4gICAgaXNBdXRob3Jpc2VkKHBsYWNlRGVmaW5pdGlvbjogUGxhY2VEZWZpbml0aW9uKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgfVxufVxuIl19
@@ -1,5 +1,5 @@
1
1
  import { AndValueModel, DelegatingValueModel, Dsl, GarbageCollector, MutableListModel, ReducingValueModel, ValueModel } from "@coolon/pectin";
2
- import { getPlaceDefinition } from "./place-metadata";
2
+ import { PlaceComponent } from "./place-component";
3
3
  import { Visit } from "./visit";
4
4
  function toPromise(disposedWith, condition$) {
5
5
  // TODO: move this functionality to pectin with a waitUnit(model$).isTruthy() DSL.
@@ -108,8 +108,7 @@ export class PlaceAuthService extends GarbageCollector {
108
108
  enablePlace(placeDefinition, options) {
109
109
  const { chain } = Dsl.disposeWith(this);
110
110
  const when$ = options.when$ ? options.when$ : chain(options.unless$).isFalsey();
111
- // NOTE: we're wrapping the when$ so callers can pass in the same model multiple times (pectin doesn't support depending on multiples of the same model yet)
112
- this.enabledPlaceChecker.enableWhen(getPlaceDefinition(placeDefinition), chain(when$).isTruthy(), options);
111
+ this.enabledPlaceChecker.enableWhen(PlaceComponent.getDefinition(placeDefinition), when$, options);
113
112
  }
114
113
  async waitUntilAuthenticationReady() {
115
114
  await toPromise(this, this._authNReady$);
@@ -118,12 +117,12 @@ export class PlaceAuthService extends GarbageCollector {
118
117
  await toPromise(this, this._authZReady$);
119
118
  await this.enabledPlaceChecker.waitUntilReady(placeDef);
120
119
  }
121
- async getAuthenticationFailureRedirect(activatedRoute, state) {
122
- const redirect = await this.authNOptions.redirectTo(activatedRoute, state);
120
+ getAuthenticationFailureRedirect(activatedRoute, state) {
121
+ const redirect = this.authNOptions.redirectTo(activatedRoute, state);
123
122
  return redirect instanceof Visit ? redirect : Visit.goto(redirect);
124
123
  }
125
- async getAuthorisationFailureRedirectOptions(component) {
126
- return (await this.authZOptions.redirectTo(component)).map(it => it instanceof Visit ? it : Visit.goto(it));
124
+ getAuthorisationFailureRedirectOptions(component) {
125
+ return this.authZOptions.redirectTo(component).map(it => it instanceof Visit ? it : Visit.goto(it));
127
126
  }
128
127
  isAuthenticated() {
129
128
  return this.accessGuard$.value.isAuthenticated();
@@ -149,4 +148,4 @@ export class PlaceAuthService extends GarbageCollector {
149
148
  }
150
149
  PlaceAuthService.AccessGuard = AccessGuard;
151
150
  })(PlaceAuthService || (PlaceAuthService = {}));
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UtYXV0aC1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvcGxhY2UvcGxhY2UtYXV0aC1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCxhQUFhLEVBR2Isb0JBQW9CLEVBRXBCLEdBQUcsRUFDSCxnQkFBZ0IsRUFHaEIsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixVQUFVLEVBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4QixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUVwRCxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sU0FBUyxDQUFDO0FBRzlCLFNBQVMsU0FBUyxDQUFDLFlBQWtDLEVBQUUsVUFBK0I7SUFDcEYsa0ZBQWtGO0lBQ2xGLE1BQU0sRUFBQyxJQUFJLEVBQUMsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzdDLE9BQU8sSUFBSSxPQUFPLENBQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQTtJQUN6RixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFJLFVBQWdDLEVBQUUsT0FBK0MsRUFBRSxRQUE0QztJQUMzSiw0Q0FBNEM7SUFDNUMsTUFBTSxFQUFDLEtBQUssRUFBQyxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDNUMsSUFBSSxPQUFPLENBQUMsYUFBYSxFQUFFO1FBQ3pCLE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FB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QUFDO0lBQ3JFLENBQUM7SUFFRCxLQUFLLENBQUMsc0NBQXNDLENBQUMsU0FBd0M7UUFDbkYsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5RyxDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUE7SUFDbEQsQ0FBQztJQUVELFlBQVksQ0FBQyxDQUFrQjtRQUM3QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNoRCxDQUFDO0NBQ0Y7QUFFRCxXQUFpQixnQkFBZ0I7SUFzQi9CLE1BQWEsV0FBVztRQUVIO1FBQ0E7UUFGbkIsWUFDbUIsYUFBc0IsRUFDdEIsU0FBNkI7WUFEN0Isa0JBQWEsR0FBYixhQUFhLENBQVM7WUFDdEIsY0FBUyxHQUFULFNBQVMsQ0FBb0I7UUFFaEQsQ0FBQztRQUVELGVBQWU7WUFDYixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDNUIsQ0FBQztRQUVELFlBQVksQ0FBQyxlQUFnQztZQUMzQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDekMsQ0FBQztLQUVGO0lBZlksNEJBQVcsY0FldkIsQ0FBQTtBQUVILENBQUMsRUF2Q2dCLGdCQUFnQixLQUFoQixnQkFBZ0IsUUF1Q2hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBSb3V0ZXJTdGF0ZVNuYXBzaG90fSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XG5pbXBvcnQge1xuICBBbmRWYWx1ZU1vZGVsLFxuICBDb21wdXRlZE1vZGVsTWVjaGFuaWNzLFxuICBDb25zdHJ1Y3RhYmxlLFxuICBEZWxlZ2F0aW5nVmFsdWVNb2RlbCxcbiAgRGlzcG9zYWJsZSxcbiAgRHNsLFxuICBHYXJiYWdlQ29sbGVjdG9yLFxuICBIYXNWYWx1ZSxcbiAgTXVsdGlNYXBNb2RlbENoYWluLFxuICBNdXRhYmxlTGlzdE1vZGVsLFxuICBSZWR1Y2luZ1ZhbHVlTW9kZWwsXG4gIFZhbHVlTW9kZWxcbn0gZnJvbSBcIkBjb29sb24vcGVjdGluXCI7XG5pbXBvcnQgdHlwZSB7UGxhY2VBY2Nlc3NHdWFyZH0gZnJvbSBcIi4vcGxhY2UtYWNjZXNzLWd1YXJkXCI7XG5pbXBvcnQgdHlwZSB7UGxhY2VDb21wb25lbnR9IGZyb20gXCIuL3BsYWNlLWNvbXBvbmVudFwiO1xuaW1wb3J0IHtnZXRQbGFjZURlZmluaXRpb259IGZyb20gXCIuL3BsYWNlLW1ldGFkYXRhXCI7XG5pbXBvcnQgdHlwZSB7UGxhY2VEZWZpbml0aW9ufSBmcm9tIFwiLi9wbGFjZS1kZWZpbml0aW9uXCI7XG5pbXBvcnQge1Zpc2l0fSBmcm9tIFwiLi92aXNpdFwiO1xuXG5cbmZ1bmN0aW9uIHRvUHJvbWlzZShkaXNwb3NlZFdpdGg6IERpc3Bvc2FibGUuQ29sbGVjdG9yLCBjb25kaXRpb24kOiBWYWx1ZU1vZGVsPGJvb2xlYW4+KSB7XG4gIC8vIFRPRE86IG1vdmUgdGhpcyBmdW5jdGlvbmFsaXR5IHRvIHBlY3RpbiB3aXRoIGEgd2FpdFVuaXQobW9kZWwkKS5pc1RydXRoeSgpIERTTC5cbiAgY29uc3Qge3doZW59ID0gRHNsLmRpc3Bvc2VXaXRoKGRpc3Bvc2VkV2l0aCk7XG4gIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSkgPT4ge1xuICAgIHdoZW4oY29uZGl0aW9uJCkuYmVjb21lc1RydXRoeSgoKSA9PiByZXNvbHZlKCksIHtvbmNlOiB0cnVlLCBpbml0aWFsVmFsdWU6IFwiZXZhbHVhdGVcIn0pXG4gIH0pO1xufVxuXG5mdW5jdGlvbiB3aXRoUG9zdHBvbmVVbnRpbDxUPihkaXNwb3NhYmxlOiBEaXNwb3NhYmxlLkNvbGxlY3Rvciwgb3B0aW9uczogQ29tcHV0ZWRNb2RlbE1lY2hhbmljcy5Qb3N0cG9uZU9wdGlvbnMsIGNhbGxiYWNrOiAodmFsdWUkOiBWYWx1ZU1vZGVsPGJvb2xlYW4+KSA9PiBUKTogVCB8IHVuZGVmaW5lZCB7XG4gIC8vIFRPRE86IG1vdmUgdGhpcyBmdW5jdGlvbmFsaXR5IHRvIHBvd2VydXBzXG4gIGNvbnN0IHtjaGFpbn0gPSBEc2wuZGlzcG9zZVdpdGgoZGlzcG9zYWJsZSk7XG4gIGlmIChvcHRpb25zLnBvc3Rwb25lVW50aWwpIHtcbiAgICByZXR1cm4gY2FsbGJhY2sob3B0aW9ucy5wb3N0cG9uZVVudGlsKTtcbiAgfSBlbHNlIGlmIChvcHRpb25zLnBvc3Rwb25lV2hpbGUpIHtcbiAgICByZXR1cm4gY2FsbGJhY2soY2hhaW4ob3B0aW9ucy5wb3N0cG9uZVdoaWxlKS5pc0ZhbHNleSgpKVxuICB9XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cblxuY2xhc3MgUGxhY2VBdXRoR3VhcmQgZXh0ZW5kcyBHYXJiYWdlQ29sbGVjdG9yIHtcbiAgcHJpdmF0ZSByZWFkb25seSByZWFkeVByb21pc2U6IFByb21pc2U8dm9pZD47XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgcGxhY2VEZWZpbml0aW9uOiBQbGFjZURlZmluaXRpb24sXG4gICAgICAgICAgICAgIHJlYWRvbmx5IGVuYWJsZWQkOiBWYWx1ZU1vZGVsPGJvb2xlYW4+LFxuICAgICAgICAgICAgICBvcHRpb25zOiBDb21wdXRlZE1vZGVsTWVjaGFuaWNzLlBvc3Rwb25lT3B0aW9ucykge1xuICAgIHN1cGVyKCk7XG4gICAgY29uc3Qge2NoYWlufSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICB0aGlzLnJlYWR5UHJvbWlzZSA9IHdpdGhQb3N0cG9uZVVudGlsKHRoaXMsIG9wdGlvbnMsIGNvbmRpdGlvbiQgPT4ge1xuICAgICAgcmV0dXJuIHRvUHJvbWlzZSh0aGlzLCBjb25kaXRpb24kKVxuICAgIH0pID8/IFByb21pc2UucmVzb2x2ZSgpXG4gIH1cblxuICBhc3luYyB3YWl0VW50aWxSZWFkeSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnJlYWR5UHJvbWlzZTtcbiAgfVxufVxuXG5cbmNsYXNzIEVuYWJsZWRQbGFjZUNoZWNrZXIgZXh0ZW5kcyBSZWR1Y2luZ1ZhbHVlTW9kZWw8UGxhY2VBdXRoU2VydmljZS5BdXRob3Jpc2F0aW9uQ2hlY2ssIHZvaWQ+IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IHBsYWNlR3VhcmRzJCA9IG5ldyBNdXRhYmxlTGlzdE1vZGVsPFBsYWNlQXV0aEd1YXJkPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IHBsYWNlR3VhcmRzQnlQbGFjZURlZiQ6IE11bHRpTWFwTW9kZWxDaGFpbjxQbGFjZURlZmluaXRpb24sIFBsYWNlQXV0aEd1YXJkPjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihbXSk7XG4gICAgY29uc3Qge2NoYWlufSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICB0aGlzLnBsYWNlR3VhcmRzQnlQbGFjZURlZiQgPSBjaGFpbih0aGlzLnBsYWNlR3VhcmRzJCkuaW5kZXhNYW55QnkoXCJwbGFjZURlZmluaXRpb25cIik7XG4gIH1cblxuICBlbmFibGVXaGVuKHBsYWNlRGVmaW5pdGlvbjogUGxhY2VEZWZpbml0aW9uLCBjb25kaXRpb24kOiBWYWx1ZU1vZGVsPGJvb2xlYW4+LCBvcHRpb25zOiBDb21wdXRlZE1vZGVsTWVjaGFuaWNzLlBvc3Rwb25lT3B0aW9ucyk6IHZvaWQge1xuICAgIGNvbnN0IHtjaGFpbn0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgdGhpcy5wbGFjZUd1YXJkcyQucHVzaChuZXcgUGxhY2VBdXRoR3VhcmQocGxhY2VEZWZpbml0aW9uLCBjb25kaXRpb24kLCBvcHRpb25zKSk7XG4gICAgdGhpcy50cmFja1NvdXJjZShjb25kaXRpb24kKTtcbiAgfVxuXG4gIGlzQXV0aG9yaXNlZChwbGFjZURlZjogUGxhY2VEZWZpbml0aW9uKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWUocGxhY2VEZWYpO1xuICB9XG5cbiAgY29tcHV0ZSh2YWx1ZXM6IHZvaWRbXSk6IChwbGFjZURlZjogUGxhY2VEZWZpbml0aW9uKSA9PiBib29sZWFuIHtcbiAgICByZXR1cm4gKGRlZikgPT4gdGhpcy5jaGVja1ByZWRpY2F0ZXNCeVBsYWNlKGRlZilcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tQcmVkaWNhdGVzQnlQbGFjZShkZWY6IFBsYWNlRGVmaW5pdGlvbikge1xuICAgIGNvbnN0IHBsYWNlUHJlZGljYXRlcyA9IHRoaXMucGxhY2VHdWFyZHNCeVBsYWNlRGVmJC5nZXQoZGVmKTtcbiAgICBpZiAoIXBsYWNlUHJlZGljYXRlcyB8fCBwbGFjZVByZWRpY2F0ZXMubGVuZ3RoIDwgMSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBwbGFjZVByZWRpY2F0ZXMucmVkdWNlKChzdW0sIG1vZGVsKSA9PiB7XG4gICAgICAgIHJldHVybiBzdW0gJiYgbW9kZWwuZW5hYmxlZCQudmFsdWU7XG4gICAgICB9LCB0cnVlKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyB3YWl0VW50aWxSZWFkeShwbGFjZURlZjogUGxhY2VEZWZpbml0aW9uKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcGxhY2VBdXRoR3VhcmRzID0gdGhpcy5wbGFjZUd1YXJkc0J5UGxhY2VEZWYkLmdldChwbGFjZURlZik7XG4gICAgaWYgKHBsYWNlQXV0aEd1YXJkcz8ubGVuZ3RoID4gMCkge1xuICAgICAgYXdhaXQgUHJvbWlzZS5hbGwocGxhY2VBdXRoR3VhcmRzLm1hcChpdCA9PiBpdC53YWl0VW50aWxSZWFkeSgpKSk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQbGFjZUF1dGhTZXJ2aWNlIGV4dGVuZHMgR2FyYmFnZUNvbGxlY3RvciB7XG5cblxuICBwcml2YXRlIGF1dGhaT3B0aW9uczogUGxhY2VBdXRoU2VydmljZS5BdXRob3Jpc2F0aW9uT3B0aW9ucztcbiAgcHJpdmF0ZSBhdXRoTk9wdGlvbnM6IFBsYWNlQXV0aFNlcnZpY2UuQXV0aGVudGljYXRpb25PcHRpb25zO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2F1dGhOUmVhZHkkID0gbmV3IEFuZFZhbHVlTW9kZWwoKS5zZXREZWZhdWx0KHRydWUpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9hdXRoWlJlYWR5JCA9IG5ldyBBbmRWYWx1ZU1vZGVsKCkuc2V0RGVmYXVsdCh0cnVlKTtcbiAgcHJpdmF0ZSBhdXRoZW50aWNhdGVkJCA9IHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKG5ldyBEZWxlZ2F0aW5nVmFsdWVNb2RlbDxib29sZWFuPikud2l0aERlZmF1bHQodHJ1ZSk7XG4gIHByaXZhdGUgYXV0aENoZWNrZXIkID0gdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUobmV3IERlbGVnYXRpbmdWYWx1ZU1vZGVsPFBsYWNlQXV0aFNlcnZpY2UuQXV0aG9yaXNhdGlvbkNoZWNrPikud2l0aERlZmF1bHQoKCkgPT4gdHJ1ZSk7XG4gIHByaXZhdGUgZW5hYmxlZFBsYWNlQ2hlY2tlciA9IHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKG5ldyBFbmFibGVkUGxhY2VDaGVja2VyKCkpO1xuXG4gIHJlYWRvbmx5IGFjY2Vzc0d1YXJkJDogVmFsdWVNb2RlbDxQbGFjZUF1dGhTZXJ2aWNlLkFjY2Vzc0d1YXJkPjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIGNvbnN0IHtjaGFpbn0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgdGhpcy5hY2Nlc3NHdWFyZCQgPSBjaGFpbi5yZWR1Y2UodGhpcy5hdXRoZW50aWNhdGVkJCxcbiAgICAgIHRoaXMuYXV0aENoZWNrZXIkLFxuICAgICAgdGhpcy5lbmFibGVkUGxhY2VDaGVja2VyLFxuICAgICAgKGF1dGhlbnRpY2F0ZWQsIGF1dGhDaGVjaywgZW5hYmxlZFBsYWNlQ2hlY2spID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQbGFjZUF1dGhTZXJ2aWNlLkFjY2Vzc0d1YXJkKGF1dGhlbnRpY2F0ZWQsIGRlZiA9PiBhdXRoQ2hlY2soZGVmKSAmJiBlbmFibGVkUGxhY2VDaGVjayhkZWYpKTtcbiAgICAgIH0pXG4gIH1cblxuICBjb25maWd1cmVBdXRoZW50aWNhdGlvbihvcHRpb25zOiBQbGFjZUF1dGhTZXJ2aWNlLkF1dGhlbnRpY2F0aW9uT3B0aW9ucykge1xuICAgIHRoaXMuYXV0aE5PcHRpb25zID0gb3B0aW9ucztcbiAgICB0aGlzLmF1dGhlbnRpY2F0ZWQkLnNldERlbGVnYXRlKG9wdGlvbnMuaXNBdXRoZW50aWNhdGVkJClcbiAgICB3aXRoUG9zdHBvbmVVbnRpbCh0aGlzLCBvcHRpb25zLCBjb25kaXRpb24kID0+IHRoaXMuX2F1dGhOUmVhZHkkLmFkZFNvdXJjZShjb25kaXRpb24kKSlcbiAgfVxuXG4gIGNvbmZpZ3VyZUF1dGhvcmlzYXRpb24ob3B0aW9uczogUGxhY2VBdXRoU2VydmljZS5BdXRob3Jpc2F0aW9uT3B0aW9ucykge1xuICAgIGNvbnN0IHtjaGFpbn0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgdGhpcy5hdXRoWk9wdGlvbnMgPSBvcHRpb25zO1xuICAgIGxldCBhdXRoQ2hlY2tlciQgPSBWYWx1ZU1vZGVsLmNvbnN0YW50KGRlZiA9PiBvcHRpb25zLmlzQXV0aG9yaXNlZChkZWYpKTtcbiAgICBpZiAob3B0aW9ucy5kZXBlbmRzT24kKSB7XG4gICAgICAvLyBoYXZlIHRvIHJldHVybiBhIG5ldyBmdW50aW9uIG9yIHRoZSB2YWx1ZSBtb2RlbCB3b24ndCBmaXJlIGEgY2hhbmdlIGV2ZW50XG4gICAgICBhdXRoQ2hlY2tlciQgPSBjaGFpbihhdXRoQ2hlY2tlciQpLm1hcChpdCA9PiBkZWYgPT4gaXQoZGVmKSwge2RlcGVuZHNPbjogb3B0aW9ucy5kZXBlbmRzT24kfSlcbiAgICB9XG4gICAgdGhpcy5hdXRoQ2hlY2tlciQuc2V0RGVsZWdhdGUoYXV0aENoZWNrZXIkKTtcbiAgICB3aXRoUG9zdHBvbmVVbnRpbCh0aGlzLCBvcHRpb25zLCBjb25kaXRpb24kID0+IHRoaXMuX2F1dGhaUmVhZHkkLmFkZFNvdXJjZShjb25kaXRpb24kKSlcbiAgfVxuXG4gIGVuYWJsZVBsYWNlKHBsYWNlRGVmaW5pdGlvbjogQ29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD4sIG9wdGlvbnM6IFBsYWNlQXV0aFNlcnZpY2UuQXV0aFBsYWNlT3B0aW9ucykge1xuICAgIGNvbnN0IHtjaGFpbn0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgY29uc3Qgd2hlbiQgPSBvcHRpb25zLndoZW4kID8gb3B0aW9ucy53aGVuJCA6IGNoYWluKG9wdGlvbnMudW5sZXNzJCkuaXNGYWxzZXkoKVxuICAgIC8vIE5PVEU6IHdlJ3JlIHdyYXBwaW5nIHRoZSB3aGVuJCBzbyBjYWxsZXJzIGNhbiBwYXNzIGluIHRoZSBzYW1lIG1vZGVsIG11bHRpcGxlIHRpbWVzIChwZWN0aW4gZG9lc24ndCBzdXBwb3J0IGRlcGVuZGluZyBvbiBtdWx0aXBsZXMgb2YgdGhlIHNhbWUgbW9kZWwgeWV0KVxuICAgIHRoaXMuZW5hYmxlZFBsYWNlQ2hlY2tlci5lbmFibGVXaGVuKGdldFBsYWNlRGVmaW5pdGlvbihwbGFjZURlZmluaXRpb24pLCBjaGFpbih3aGVuJCkuaXNUcnV0aHkoKSwgb3B0aW9ucyk7XG4gIH1cblxuXG4gIGFzeW5jIHdhaXRVbnRpbEF1dGhlbnRpY2F0aW9uUmVhZHkoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdG9Qcm9taXNlKHRoaXMsIHRoaXMuX2F1dGhOUmVhZHkkKTtcbiAgfVxuXG4gIGFzeW5jIHdhaXRVbnRpbEF1dGhvcmlzYXRpb25SZWFkeUZvcihwbGFjZURlZjogUGxhY2VEZWZpbml0aW9uKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdG9Qcm9taXNlKHRoaXMsIHRoaXMuX2F1dGhaUmVhZHkkKVxuICAgIGF3YWl0IHRoaXMuZW5hYmxlZFBsYWNlQ2hlY2tlci53YWl0VW50aWxSZWFkeShwbGFjZURlZilcbiAgfVxuXG4gIGFzeW5jIGdldEF1dGhlbnRpY2F0aW9uRmFpbHVyZVJlZGlyZWN0KGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IFByb21pc2U8VmlzaXQ+IHtcbiAgICBjb25zdCByZWRpcmVjdCA9IGF3YWl0IHRoaXMuYXV0aE5PcHRpb25zLnJlZGlyZWN0VG8oYWN0aXZhdGVkUm91dGUsIHN0YXRlKTtcbiAgICByZXR1cm4gcmVkaXJlY3QgaW5zdGFuY2VvZiBWaXNpdCA/IHJlZGlyZWN0IDogVmlzaXQuZ290byhyZWRpcmVjdCk7XG4gIH1cblxuICBhc3luYyBnZXRBdXRob3Jpc2F0aW9uRmFpbHVyZVJlZGlyZWN0T3B0aW9ucyhjb21wb25lbnQ6IENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+KTogUHJvbWlzZTxWaXNpdFtdPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmF1dGhaT3B0aW9ucy5yZWRpcmVjdFRvKGNvbXBvbmVudCkpLm1hcChpdCA9PiBpdCBpbnN0YW5jZW9mIFZpc2l0ID8gaXQgOiBWaXNpdC5nb3RvKGl0KSk7XG4gIH1cblxuICBpc0F1dGhlbnRpY2F0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWNjZXNzR3VhcmQkLnZhbHVlLmlzQXV0aGVudGljYXRlZCgpXG4gIH1cblxuICBpc0F1dGhvcmlzZWQoYzogUGxhY2VEZWZpbml0aW9uKSB7XG4gICAgcmV0dXJuIHRoaXMuYWNjZXNzR3VhcmQkLnZhbHVlLmlzQXV0aG9yaXNlZChjKVxuICB9XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgUGxhY2VBdXRoU2VydmljZSB7XG5cbiAgZXhwb3J0IHR5cGUgQXV0aG9yaXNhdGlvbkNoZWNrID0gKGRlZjogUGxhY2VEZWZpbml0aW9uKSA9PiBib29sZWFuO1xuXG4gIGV4cG9ydCBpbnRlcmZhY2UgQXV0aGVudGljYXRpb25PcHRpb25zIGV4dGVuZHMgQ29tcHV0ZWRNb2RlbE1lY2hhbmljcy5Qb3N0cG9uZU9wdGlvbnMge1xuICAgIGlzQXV0aGVudGljYXRlZCQ6IFZhbHVlTW9kZWw8Ym9vbGVhbj47XG5cbiAgICByZWRpcmVjdFRvKGFjdGl2YXRlZFJvdXRlPzogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU/OiBSb3V0ZXJTdGF0ZVNuYXBzaG90KTogVmlzaXQgfCBDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50PiB8IFByb21pc2U8VmlzaXQ+IHwgUHJvbWlzZTxDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50Pj47XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIEF1dGhvcmlzYXRpb25PcHRpb25zIGV4dGVuZHMgQ29tcHV0ZWRNb2RlbE1lY2hhbmljcy5Qb3N0cG9uZU9wdGlvbnMge1xuICAgIGlzQXV0aG9yaXNlZDogQXV0aG9yaXNhdGlvbkNoZWNrO1xuICAgIGRlcGVuZHNPbiQ/OiBIYXNWYWx1ZTx1bmtub3duPjtcblxuICAgIHJlZGlyZWN0VG8oY29tcG9uZW50OiBDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50Pik6IChDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50PiB8IFZpc2l0KVtdIHwgUHJvbWlzZTwoQ29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD4gfCBWaXNpdClbXT47XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIEF1dGhQbGFjZU9wdGlvbnMgZXh0ZW5kcyBDb21wdXRlZE1vZGVsTWVjaGFuaWNzLlBvc3Rwb25lT3B0aW9ucyB7XG4gICAgd2hlbiQ/OiBWYWx1ZU1vZGVsPGJvb2xlYW4+O1xuICAgIHVubGVzcyQ/OiBWYWx1ZU1vZGVsPGJvb2xlYW4+O1xuICB9XG5cbiAgZXhwb3J0IGNsYXNzIEFjY2Vzc0d1YXJkIGltcGxlbWVudHMgUGxhY2VBY2Nlc3NHdWFyZCB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGF1dGhlbnRpY2F0ZWQ6IGJvb2xlYW4sXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGNoZWNrQXV0aDogQXV0aG9yaXNhdGlvbkNoZWNrXG4gICAgKSB7XG4gICAgfVxuXG4gICAgaXNBdXRoZW50aWNhdGVkKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuYXV0aGVudGljYXRlZDtcbiAgICB9XG5cbiAgICBpc0F1dGhvcmlzZWQocGxhY2VEZWZpbml0aW9uOiBQbGFjZURlZmluaXRpb24pOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLmNoZWNrQXV0aChwbGFjZURlZmluaXRpb24pO1xuICAgIH1cblxuICB9XG5cbn1cbiJdfQ==
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UtYXV0aC1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvcGxhY2UvcGxhY2UtYXV0aC1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCxhQUFhLEVBR2Isb0JBQW9CLEVBRXBCLEdBQUcsRUFDSCxnQkFBZ0IsRUFHaEIsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixVQUFVLEVBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFakQsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLFNBQVMsQ0FBQztBQUc5QixTQUFTLFNBQVMsQ0FBQyxZQUFrQyxFQUFFLFVBQStCO0lBQ3BGLGtGQUFrRjtJQUNsRixNQUFNLEVBQUMsSUFBSSxFQUFDLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUM3QyxPQUFPLElBQUksT0FBTyxDQUFPLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDbkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBQyxDQUFDLENBQUE7SUFDekYsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBSSxVQUFnQyxFQUFFLE9BQStDLEVBQUUsUUFBNEM7SUFDM0osNENBQTRDO0lBQzVDLE1BQU0sRUFBQyxLQUFLLEVBQUMsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzVDLElBQUksT0FBTyxDQUFDLGFBQWEsRUFBRTtRQUN6QixPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7S0FDeEM7U0FBTSxJQUFJLE9BQU8sQ0FBQyxhQUFhLEVBQUU7UUFDaEMsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO0tBQ3pEO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUdELE1BQU0sY0FBZSxTQUFRLGdCQUFnQjtJQUd0QjtJQUNBO0lBSEosWUFBWSxDQUFnQjtJQUU3QyxZQUFxQixlQUFnQyxFQUNoQyxRQUE2QixFQUN0QyxPQUErQztRQUN6RCxLQUFLLEVBQUUsQ0FBQztRQUhXLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxhQUFRLEdBQVIsUUFBUSxDQUFxQjtRQUdoRCxNQUFNLEVBQUMsS0FBSyxFQUFDLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsWUFBWSxHQUFHLGlCQUFpQixDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDLEVBQUU7WUFDaEUsT0FBTyxTQUFTLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFBO1FBQ3BDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUN6QixDQUFDO0lBRUQsS0FBSyxDQUFDLGNBQWM7UUFDbEIsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzFCLENBQUM7Q0FDRjtBQUdELE1BQU0sbUJBQW9CLFNBQVEsa0JBQTZEO0lBRTVFLFlBQVksR0FBRyxJQUFJLGdCQUFnQixFQUFrQixDQUFDO0lBQ3RELHNCQUFzQixDQUFzRDtJQUU3RjtRQUNFLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNWLE1BQU0sRUFBQyxLQUFLLEVBQUMsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7SUFFRCxVQUFVLENBQUMsZUFBZ0MsRUFBRSxVQUErQixFQUFFLE9BQStDO1FBQzNILE1BQU0sRUFBQyxLQUFLLEVBQUMsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksY0FBYyxDQUFDLGVBQWUsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNqRixJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxZQUFZLENBQUMsUUFBeUI7UUFDcEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxPQUFPLENBQUMsTUFBYztRQUNwQixPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDbEQsQ0FBQztJQUVPLHNCQUFzQixDQUFDLEdBQW9CO1FBQ2pELE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLGVBQWUsSUFBSSxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNsRCxPQUFPLElBQUksQ0FBQztTQUNiO2FBQU07WUFDTCxPQUFPLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQzNDLE9BQU8sR0FBRyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQ3JDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUNWO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxjQUFjLENBQUMsUUFBeUI7UUFDNUMsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNsRSxJQUFJLGVBQWUsRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQy9CLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNuRTtJQUNILENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxnQkFBZ0I7SUFHNUMsWUFBWSxDQUF3QztJQUNwRCxZQUFZLENBQXlDO0lBRTVDLFlBQVksR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwRCxZQUFZLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0QsY0FBYyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLG9CQUE2QixDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlGLFlBQVksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxvQkFBeUQsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5SCxtQkFBbUIsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxtQkFBbUIsRUFBRSxDQUFDLENBQUM7SUFFeEUsWUFBWSxDQUEyQztJQUVoRTtRQUNFLEtBQUssRUFBRSxDQUFDO1FBQ1IsTUFBTSxFQUFDLEtBQUssRUFBQyxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQ2xELElBQUksQ0FBQyxZQUFZLEVBQ2pCLElBQUksQ0FBQyxtQkFBbUIsRUFDeEIsQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLEVBQUU7WUFDOUMsT0FBTyxJQUFJLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxRyxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxPQUErQztRQUNyRSxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQztRQUM1QixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtRQUN6RCxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQTtJQUN6RixDQUFDO0lBRUQsc0JBQXNCLENBQUMsT0FBOEM7UUFDbkUsTUFBTSxFQUFDLEtBQUssRUFBQyxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUM7UUFDNUIsSUFBSSxZQUFZLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN6RSxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUU7WUFDdEIsNEVBQTRFO1lBQzVFLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLFVBQVUsRUFBQyxDQUFDLENBQUE7U0FDOUY7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM1QyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQTtJQUN6RixDQUFDO0lBRUQsV0FBVyxDQUFDLGVBQThDLEVBQUUsT0FBMEM7UUFDcEcsTUFBTSxFQUFDLEtBQUssRUFBQyxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtRQUMvRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3JHLENBQUM7SUFHRCxLQUFLLENBQUMsNEJBQTRCO1FBQ2hDLE1BQU0sU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxRQUF5QjtRQUM1RCxNQUFNLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBQ3hDLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUN6RCxDQUFDO0lBRUQsZ0NBQWdDLENBQUMsY0FBc0MsRUFBRSxLQUEwQjtRQUNqRyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckUsT0FBTyxRQUFRLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELHNDQUFzQyxDQUFDLFNBQXdDO1FBQzdFLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdEcsQ0FBQztJQUVELGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFBO0lBQ2xELENBQUM7SUFFRCxZQUFZLENBQUMsQ0FBa0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDaEQsQ0FBQztDQUNGO0FBRUQsV0FBaUIsZ0JBQWdCO0lBc0IvQixNQUFhLFdBQVc7UUFFSDtRQUNBO1FBRm5CLFlBQ21CLGFBQXNCLEVBQ3RCLFNBQTZCO1lBRDdCLGtCQUFhLEdBQWIsYUFBYSxDQUFTO1lBQ3RCLGNBQVMsR0FBVCxTQUFTLENBQW9CO1FBRWhELENBQUM7UUFFRCxlQUFlO1lBQ2IsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQzVCLENBQUM7UUFFRCxZQUFZLENBQUMsZUFBZ0M7WUFDM0MsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7S0FFRjtJQWZZLDRCQUFXLGNBZXZCLENBQUE7QUFFSCxDQUFDLEVBdkNnQixnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBdUNoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUm91dGVyU3RhdGVTbmFwc2hvdH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHtcbiAgQW5kVmFsdWVNb2RlbCxcbiAgQ29tcHV0ZWRNb2RlbE1lY2hhbmljcyxcbiAgQ29uc3RydWN0YWJsZSxcbiAgRGVsZWdhdGluZ1ZhbHVlTW9kZWwsXG4gIERpc3Bvc2FibGUsXG4gIERzbCxcbiAgR2FyYmFnZUNvbGxlY3RvcixcbiAgSGFzVmFsdWUsXG4gIE11bHRpTWFwTW9kZWxDaGFpbixcbiAgTXV0YWJsZUxpc3RNb2RlbCxcbiAgUmVkdWNpbmdWYWx1ZU1vZGVsLFxuICBWYWx1ZU1vZGVsXG59IGZyb20gXCJAY29vbG9uL3BlY3RpblwiO1xuaW1wb3J0IHtQbGFjZUFjY2Vzc0d1YXJkfSBmcm9tIFwiLi9wbGFjZS1hY2Nlc3MtZ3VhcmRcIjtcbmltcG9ydCB7UGxhY2VDb21wb25lbnR9IGZyb20gXCIuL3BsYWNlLWNvbXBvbmVudFwiO1xuaW1wb3J0IHtQbGFjZURlZmluaXRpb259IGZyb20gXCIuL3BsYWNlLWRlZmluaXRpb25cIjtcbmltcG9ydCB7VmlzaXR9IGZyb20gXCIuL3Zpc2l0XCI7XG5cblxuZnVuY3Rpb24gdG9Qcm9taXNlKGRpc3Bvc2VkV2l0aDogRGlzcG9zYWJsZS5Db2xsZWN0b3IsIGNvbmRpdGlvbiQ6IFZhbHVlTW9kZWw8Ym9vbGVhbj4pIHtcbiAgLy8gVE9ETzogbW92ZSB0aGlzIGZ1bmN0aW9uYWxpdHkgdG8gcGVjdGluIHdpdGggYSB3YWl0VW5pdChtb2RlbCQpLmlzVHJ1dGh5KCkgRFNMLlxuICBjb25zdCB7d2hlbn0gPSBEc2wuZGlzcG9zZVdpdGgoZGlzcG9zZWRXaXRoKTtcbiAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XG4gICAgd2hlbihjb25kaXRpb24kKS5iZWNvbWVzVHJ1dGh5KCgpID0+IHJlc29sdmUoKSwge29uY2U6IHRydWUsIGluaXRpYWxWYWx1ZTogXCJldmFsdWF0ZVwifSlcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHdpdGhQb3N0cG9uZVVudGlsPFQ+KGRpc3Bvc2FibGU6IERpc3Bvc2FibGUuQ29sbGVjdG9yLCBvcHRpb25zOiBDb21wdXRlZE1vZGVsTWVjaGFuaWNzLlBvc3Rwb25lT3B0aW9ucywgY2FsbGJhY2s6ICh2YWx1ZSQ6IFZhbHVlTW9kZWw8Ym9vbGVhbj4pID0+IFQpOiBUIHwgdW5kZWZpbmVkIHtcbiAgLy8gVE9ETzogbW92ZSB0aGlzIGZ1bmN0aW9uYWxpdHkgdG8gcG93ZXJ1cHNcbiAgY29uc3Qge2NoYWlufSA9IERzbC5kaXNwb3NlV2l0aChkaXNwb3NhYmxlKTtcbiAgaWYgKG9wdGlvbnMucG9zdHBvbmVVbnRpbCkge1xuICAgIHJldHVybiBjYWxsYmFjayhvcHRpb25zLnBvc3Rwb25lVW50aWwpO1xuICB9IGVsc2UgaWYgKG9wdGlvbnMucG9zdHBvbmVXaGlsZSkge1xuICAgIHJldHVybiBjYWxsYmFjayhjaGFpbihvcHRpb25zLnBvc3Rwb25lV2hpbGUpLmlzRmFsc2V5KCkpXG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuXG5jbGFzcyBQbGFjZUF1dGhHdWFyZCBleHRlbmRzIEdhcmJhZ2VDb2xsZWN0b3Ige1xuICBwcml2YXRlIHJlYWRvbmx5IHJlYWR5UHJvbWlzZTogUHJvbWlzZTx2b2lkPjtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBwbGFjZURlZmluaXRpb246IFBsYWNlRGVmaW5pdGlvbixcbiAgICAgICAgICAgICAgcmVhZG9ubHkgZW5hYmxlZCQ6IFZhbHVlTW9kZWw8Ym9vbGVhbj4sXG4gICAgICAgICAgICAgIG9wdGlvbnM6IENvbXB1dGVkTW9kZWxNZWNoYW5pY3MuUG9zdHBvbmVPcHRpb25zKSB7XG4gICAgc3VwZXIoKTtcbiAgICBjb25zdCB7Y2hhaW59ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMpO1xuICAgIHRoaXMucmVhZHlQcm9taXNlID0gd2l0aFBvc3Rwb25lVW50aWwodGhpcywgb3B0aW9ucywgY29uZGl0aW9uJCA9PiB7XG4gICAgICByZXR1cm4gdG9Qcm9taXNlKHRoaXMsIGNvbmRpdGlvbiQpXG4gICAgfSkgPz8gUHJvbWlzZS5yZXNvbHZlKClcbiAgfVxuXG4gIGFzeW5jIHdhaXRVbnRpbFJlYWR5KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMucmVhZHlQcm9taXNlO1xuICB9XG59XG5cblxuY2xhc3MgRW5hYmxlZFBsYWNlQ2hlY2tlciBleHRlbmRzIFJlZHVjaW5nVmFsdWVNb2RlbDxQbGFjZUF1dGhTZXJ2aWNlLkF1dGhvcmlzYXRpb25DaGVjaywgdm9pZD4ge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcGxhY2VHdWFyZHMkID0gbmV3IE11dGFibGVMaXN0TW9kZWw8UGxhY2VBdXRoR3VhcmQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGxhY2VHdWFyZHNCeVBsYWNlRGVmJDogTXVsdGlNYXBNb2RlbENoYWluPFBsYWNlRGVmaW5pdGlvbiwgUGxhY2VBdXRoR3VhcmQ+O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKFtdKTtcbiAgICBjb25zdCB7Y2hhaW59ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMpO1xuICAgIHRoaXMucGxhY2VHdWFyZHNCeVBsYWNlRGVmJCA9IGNoYWluKHRoaXMucGxhY2VHdWFyZHMkKS5pbmRleE1hbnlCeShcInBsYWNlRGVmaW5pdGlvblwiKTtcbiAgfVxuXG4gIGVuYWJsZVdoZW4ocGxhY2VEZWZpbml0aW9uOiBQbGFjZURlZmluaXRpb24sIGNvbmRpdGlvbiQ6IFZhbHVlTW9kZWw8Ym9vbGVhbj4sIG9wdGlvbnM6IENvbXB1dGVkTW9kZWxNZWNoYW5pY3MuUG9zdHBvbmVPcHRpb25zKTogdm9pZCB7XG4gICAgY29uc3Qge2NoYWlufSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICB0aGlzLnBsYWNlR3VhcmRzJC5wdXNoKG5ldyBQbGFjZUF1dGhHdWFyZChwbGFjZURlZmluaXRpb24sIGNvbmRpdGlvbiQsIG9wdGlvbnMpKTtcbiAgICB0aGlzLnRyYWNrU291cmNlKGNvbmRpdGlvbiQpO1xuICB9XG5cbiAgaXNBdXRob3Jpc2VkKHBsYWNlRGVmOiBQbGFjZURlZmluaXRpb24pOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZShwbGFjZURlZik7XG4gIH1cblxuICBjb21wdXRlKHZhbHVlczogdm9pZFtdKTogKHBsYWNlRGVmOiBQbGFjZURlZmluaXRpb24pID0+IGJvb2xlYW4ge1xuICAgIHJldHVybiAoZGVmKSA9PiB0aGlzLmNoZWNrUHJlZGljYXRlc0J5UGxhY2UoZGVmKVxuICB9XG5cbiAgcHJpdmF0ZSBjaGVja1ByZWRpY2F0ZXNCeVBsYWNlKGRlZjogUGxhY2VEZWZpbml0aW9uKSB7XG4gICAgY29uc3QgcGxhY2VQcmVkaWNhdGVzID0gdGhpcy5wbGFjZUd1YXJkc0J5UGxhY2VEZWYkLmdldChkZWYpO1xuICAgIGlmICghcGxhY2VQcmVkaWNhdGVzIHx8IHBsYWNlUHJlZGljYXRlcy5sZW5ndGggPCAxKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHBsYWNlUHJlZGljYXRlcy5yZWR1Y2UoKHN1bSwgbW9kZWwpID0+IHtcbiAgICAgICAgcmV0dXJuIHN1bSAmJiBtb2RlbC5lbmFibGVkJC52YWx1ZTtcbiAgICAgIH0sIHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHdhaXRVbnRpbFJlYWR5KHBsYWNlRGVmOiBQbGFjZURlZmluaXRpb24pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBwbGFjZUF1dGhHdWFyZHMgPSB0aGlzLnBsYWNlR3VhcmRzQnlQbGFjZURlZiQuZ2V0KHBsYWNlRGVmKTtcbiAgICBpZiAocGxhY2VBdXRoR3VhcmRzPy5sZW5ndGggPiAwKSB7XG4gICAgICBhd2FpdCBQcm9taXNlLmFsbChwbGFjZUF1dGhHdWFyZHMubWFwKGl0ID0+IGl0LndhaXRVbnRpbFJlYWR5KCkpKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFBsYWNlQXV0aFNlcnZpY2UgZXh0ZW5kcyBHYXJiYWdlQ29sbGVjdG9yIHtcblxuXG4gIHByaXZhdGUgYXV0aFpPcHRpb25zOiBQbGFjZUF1dGhTZXJ2aWNlLkF1dGhvcmlzYXRpb25PcHRpb25zO1xuICBwcml2YXRlIGF1dGhOT3B0aW9uczogUGxhY2VBdXRoU2VydmljZS5BdXRoZW50aWNhdGlvbk9wdGlvbnM7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfYXV0aE5SZWFkeSQgPSBuZXcgQW5kVmFsdWVNb2RlbCgpLnNldERlZmF1bHQodHJ1ZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2F1dGhaUmVhZHkkID0gbmV3IEFuZFZhbHVlTW9kZWwoKS5zZXREZWZhdWx0KHRydWUpO1xuICBwcml2YXRlIGF1dGhlbnRpY2F0ZWQkID0gdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUobmV3IERlbGVnYXRpbmdWYWx1ZU1vZGVsPGJvb2xlYW4+KS53aXRoRGVmYXVsdCh0cnVlKTtcbiAgcHJpdmF0ZSBhdXRoQ2hlY2tlciQgPSB0aGlzLnJlZ2lzdGVyRGlzcG9zYWJsZShuZXcgRGVsZWdhdGluZ1ZhbHVlTW9kZWw8UGxhY2VBdXRoU2VydmljZS5BdXRob3Jpc2F0aW9uQ2hlY2s+KS53aXRoRGVmYXVsdCgoKSA9PiB0cnVlKTtcbiAgcHJpdmF0ZSBlbmFibGVkUGxhY2VDaGVja2VyID0gdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUobmV3IEVuYWJsZWRQbGFjZUNoZWNrZXIoKSk7XG5cbiAgcmVhZG9ubHkgYWNjZXNzR3VhcmQkOiBWYWx1ZU1vZGVsPFBsYWNlQXV0aFNlcnZpY2UuQWNjZXNzR3VhcmQ+O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgY29uc3Qge2NoYWlufSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICB0aGlzLmFjY2Vzc0d1YXJkJCA9IGNoYWluLnJlZHVjZSh0aGlzLmF1dGhlbnRpY2F0ZWQkLFxuICAgICAgdGhpcy5hdXRoQ2hlY2tlciQsXG4gICAgICB0aGlzLmVuYWJsZWRQbGFjZUNoZWNrZXIsXG4gICAgICAoYXV0aGVudGljYXRlZCwgYXV0aENoZWNrLCBlbmFibGVkUGxhY2VDaGVjaykgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IFBsYWNlQXV0aFNlcnZpY2UuQWNjZXNzR3VhcmQoYXV0aGVudGljYXRlZCwgZGVmID0+IGF1dGhDaGVjayhkZWYpICYmIGVuYWJsZWRQbGFjZUNoZWNrKGRlZikpO1xuICAgICAgfSlcbiAgfVxuXG4gIGNvbmZpZ3VyZUF1dGhlbnRpY2F0aW9uKG9wdGlvbnM6IFBsYWNlQXV0aFNlcnZpY2UuQXV0aGVudGljYXRpb25PcHRpb25zKSB7XG4gICAgdGhpcy5hdXRoTk9wdGlvbnMgPSBvcHRpb25zO1xuICAgIHRoaXMuYXV0aGVudGljYXRlZCQuc2V0RGVsZWdhdGUob3B0aW9ucy5pc0F1dGhlbnRpY2F0ZWQkKVxuICAgIHdpdGhQb3N0cG9uZVVudGlsKHRoaXMsIG9wdGlvbnMsIGNvbmRpdGlvbiQgPT4gdGhpcy5fYXV0aE5SZWFkeSQuYWRkU291cmNlKGNvbmRpdGlvbiQpKVxuICB9XG5cbiAgY29uZmlndXJlQXV0aG9yaXNhdGlvbihvcHRpb25zOiBQbGFjZUF1dGhTZXJ2aWNlLkF1dGhvcmlzYXRpb25PcHRpb25zKSB7XG4gICAgY29uc3Qge2NoYWlufSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICB0aGlzLmF1dGhaT3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgbGV0IGF1dGhDaGVja2VyJCA9IFZhbHVlTW9kZWwuY29uc3RhbnQoZGVmID0+IG9wdGlvbnMuaXNBdXRob3Jpc2VkKGRlZikpO1xuICAgIGlmIChvcHRpb25zLmRlcGVuZHNPbiQpIHtcbiAgICAgIC8vIGhhdmUgdG8gcmV0dXJuIGEgbmV3IGZ1bnRpb24gb3IgdGhlIHZhbHVlIG1vZGVsIHdvbid0IGZpcmUgYSBjaGFuZ2UgZXZlbnRcbiAgICAgIGF1dGhDaGVja2VyJCA9IGNoYWluKGF1dGhDaGVja2VyJCkubWFwKGl0ID0+IGRlZiA9PiBpdChkZWYpLCB7ZGVwZW5kc09uOiBvcHRpb25zLmRlcGVuZHNPbiR9KVxuICAgIH1cbiAgICB0aGlzLmF1dGhDaGVja2VyJC5zZXREZWxlZ2F0ZShhdXRoQ2hlY2tlciQpO1xuICAgIHdpdGhQb3N0cG9uZVVudGlsKHRoaXMsIG9wdGlvbnMsIGNvbmRpdGlvbiQgPT4gdGhpcy5fYXV0aFpSZWFkeSQuYWRkU291cmNlKGNvbmRpdGlvbiQpKVxuICB9XG5cbiAgZW5hYmxlUGxhY2UocGxhY2VEZWZpbml0aW9uOiBDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50Piwgb3B0aW9uczogUGxhY2VBdXRoU2VydmljZS5BdXRoUGxhY2VPcHRpb25zKSB7XG4gICAgY29uc3Qge2NoYWlufSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICBjb25zdCB3aGVuJCA9IG9wdGlvbnMud2hlbiQgPyBvcHRpb25zLndoZW4kIDogY2hhaW4ob3B0aW9ucy51bmxlc3MkKS5pc0ZhbHNleSgpXG4gICAgdGhpcy5lbmFibGVkUGxhY2VDaGVja2VyLmVuYWJsZVdoZW4oUGxhY2VDb21wb25lbnQuZ2V0RGVmaW5pdGlvbihwbGFjZURlZmluaXRpb24pLCB3aGVuJCwgb3B0aW9ucyk7XG4gIH1cblxuXG4gIGFzeW5jIHdhaXRVbnRpbEF1dGhlbnRpY2F0aW9uUmVhZHkoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdG9Qcm9taXNlKHRoaXMsIHRoaXMuX2F1dGhOUmVhZHkkKTtcbiAgfVxuXG4gIGFzeW5jIHdhaXRVbnRpbEF1dGhvcmlzYXRpb25SZWFkeUZvcihwbGFjZURlZjogUGxhY2VEZWZpbml0aW9uKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdG9Qcm9taXNlKHRoaXMsIHRoaXMuX2F1dGhaUmVhZHkkKVxuICAgIGF3YWl0IHRoaXMuZW5hYmxlZFBsYWNlQ2hlY2tlci53YWl0VW50aWxSZWFkeShwbGFjZURlZilcbiAgfVxuXG4gIGdldEF1dGhlbnRpY2F0aW9uRmFpbHVyZVJlZGlyZWN0KGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IFZpc2l0IHtcbiAgICBjb25zdCByZWRpcmVjdCA9IHRoaXMuYXV0aE5PcHRpb25zLnJlZGlyZWN0VG8oYWN0aXZhdGVkUm91dGUsIHN0YXRlKTtcbiAgICByZXR1cm4gcmVkaXJlY3QgaW5zdGFuY2VvZiBWaXNpdCA/IHJlZGlyZWN0IDogVmlzaXQuZ290byhyZWRpcmVjdCk7XG4gIH1cblxuICBnZXRBdXRob3Jpc2F0aW9uRmFpbHVyZVJlZGlyZWN0T3B0aW9ucyhjb21wb25lbnQ6IENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+KTogVmlzaXRbXSB7XG4gICAgcmV0dXJuIHRoaXMuYXV0aFpPcHRpb25zLnJlZGlyZWN0VG8oY29tcG9uZW50KS5tYXAoaXQgPT4gaXQgaW5zdGFuY2VvZiBWaXNpdCA/IGl0IDogVmlzaXQuZ290byhpdCkpO1xuICB9XG5cbiAgaXNBdXRoZW50aWNhdGVkKCkge1xuICAgIHJldHVybiB0aGlzLmFjY2Vzc0d1YXJkJC52YWx1ZS5pc0F1dGhlbnRpY2F0ZWQoKVxuICB9XG5cbiAgaXNBdXRob3Jpc2VkKGM6IFBsYWNlRGVmaW5pdGlvbikge1xuICAgIHJldHVybiB0aGlzLmFjY2Vzc0d1YXJkJC52YWx1ZS5pc0F1dGhvcmlzZWQoYylcbiAgfVxufVxuXG5leHBvcnQgbmFtZXNwYWNlIFBsYWNlQXV0aFNlcnZpY2Uge1xuXG4gIGV4cG9ydCB0eXBlIEF1dGhvcmlzYXRpb25DaGVjayA9IChkZWY6IFBsYWNlRGVmaW5pdGlvbikgPT4gYm9vbGVhbjtcblxuICBleHBvcnQgaW50ZXJmYWNlIEF1dGhlbnRpY2F0aW9uT3B0aW9ucyBleHRlbmRzIENvbXB1dGVkTW9kZWxNZWNoYW5pY3MuUG9zdHBvbmVPcHRpb25zIHtcbiAgICBpc0F1dGhlbnRpY2F0ZWQkOiBWYWx1ZU1vZGVsPGJvb2xlYW4+O1xuXG4gICAgcmVkaXJlY3RUbyhhY3RpdmF0ZWRSb3V0ZT86IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlPzogUm91dGVyU3RhdGVTbmFwc2hvdCk6IFZpc2l0IHwgQ29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD47XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIEF1dGhvcmlzYXRpb25PcHRpb25zIGV4dGVuZHMgQ29tcHV0ZWRNb2RlbE1lY2hhbmljcy5Qb3N0cG9uZU9wdGlvbnMge1xuICAgIGlzQXV0aG9yaXNlZDogQXV0aG9yaXNhdGlvbkNoZWNrO1xuICAgIGRlcGVuZHNPbiQ/OiBIYXNWYWx1ZTxhbnk+O1xuXG4gICAgcmVkaXJlY3RUbyhjb21wb25lbnQ6IENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+KTogKENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+IHwgVmlzaXQpW107XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIEF1dGhQbGFjZU9wdGlvbnMgZXh0ZW5kcyBDb21wdXRlZE1vZGVsTWVjaGFuaWNzLlBvc3Rwb25lT3B0aW9ucyB7XG4gICAgd2hlbiQ/OiBWYWx1ZU1vZGVsPGJvb2xlYW4+O1xuICAgIHVubGVzcyQ/OiBWYWx1ZU1vZGVsPGJvb2xlYW4+O1xuICB9XG5cbiAgZXhwb3J0IGNsYXNzIEFjY2Vzc0d1YXJkIGltcGxlbWVudHMgUGxhY2VBY2Nlc3NHdWFyZCB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGF1dGhlbnRpY2F0ZWQ6IGJvb2xlYW4sXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGNoZWNrQXV0aDogQXV0aG9yaXNhdGlvbkNoZWNrXG4gICAgKSB7XG4gICAgfVxuXG4gICAgaXNBdXRoZW50aWNhdGVkKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuYXV0aGVudGljYXRlZDtcbiAgICB9XG5cbiAgICBpc0F1dGhvcmlzZWQocGxhY2VEZWZpbml0aW9uOiBQbGFjZURlZmluaXRpb24pOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLmNoZWNrQXV0aChwbGFjZURlZmluaXRpb24pO1xuICAgIH1cblxuICB9XG5cbn1cbiJdfQ==