@coolon/angular-ui-powerups 12.4.8 → 13.0.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 (316) hide show
  1. package/assets/activities/activities.scss +1 -1
  2. package/assets/cards.scss +1 -1
  3. package/assets/form.scss +1 -1
  4. package/assets/interaction/editor/inline-string-editor.scss +1 -1
  5. package/assets/interaction.scss +1 -1
  6. package/assets/mixins.scss +2 -2
  7. package/assets/pills.scss +1 -1
  8. package/assets/styles.scss +1 -1
  9. package/{esm2015/lib/angular-ui-powerups.module.js → esm2020/lib/angular-ui-powerups.module.mjs} +5 -5
  10. package/esm2020/lib/components/busy-overlay/busy-overlay.component.mjs +32 -0
  11. package/{esm2015/lib/components/cards/abstract-card-container.component.js → esm2020/lib/components/cards/abstract-card-container.component.mjs} +4 -4
  12. package/esm2020/lib/components/cards/card-container/card-container.component.mjs +129 -0
  13. package/esm2020/lib/components/cards/card-stack/card-stack.component.mjs +81 -0
  14. package/esm2020/lib/components/commands/command/command.component.mjs +96 -0
  15. package/{esm2015/lib/components/commands/command-face/command-face.component.js → esm2020/lib/components/commands/command-face/command-face.component.mjs} +5 -10
  16. package/esm2020/lib/components/commands/command-face.mjs +112 -0
  17. package/{esm2015/lib/components/commands/flex.component.js → esm2020/lib/components/commands/flex.component.mjs} +4 -4
  18. package/esm2020/lib/components/commands/group/popup-menu/abstract-popup-menu.component.mjs +84 -0
  19. package/esm2020/lib/components/commands/group/popup-menu/more-menu.component.mjs +57 -0
  20. package/esm2020/lib/components/commands/group/popup-menu/popup-menu-renderer/popup-menu-renderer.component.mjs +101 -0
  21. package/esm2020/lib/components/commands/group/popup-menu/popup-menu.component.mjs +53 -0
  22. package/esm2020/lib/components/commands/group/tool-bar/tool-bar.component.mjs +31 -0
  23. package/{esm2015/lib/components/commands/separator.component.js → esm2020/lib/components/commands/separator.component.mjs} +5 -5
  24. package/{esm2015/lib/components/components.module.js → esm2020/lib/components/components.module.mjs} +6 -6
  25. package/{esm2015/lib/components/disposable-component.js → esm2020/lib/components/disposable-component.mjs} +4 -4
  26. package/{esm2015/lib/components/empty-state/empty-state.component.js → esm2020/lib/components/empty-state/empty-state.component.mjs} +6 -10
  27. package/{esm2015/lib/components/focus-container/focus-container.component.js → esm2020/lib/components/focus-container/focus-container.component.mjs} +6 -11
  28. package/{esm2015/lib/components/focusable.component.js → esm2020/lib/components/focusable.component.mjs} +6 -8
  29. package/{esm2015/lib/components/forms/abstract-input.component.js → esm2020/lib/components/forms/abstract-input.component.mjs} +4 -4
  30. package/{esm2015/lib/components/forms/abstract-list-input.component.js → esm2020/lib/components/forms/abstract-list-input.component.mjs} +4 -4
  31. package/{esm2015/lib/components/forms/abstract-value-input.component.js → esm2020/lib/components/forms/abstract-value-input.component.mjs} +4 -4
  32. package/esm2020/lib/components/forms/autocomplete-input/autocomplete-input.component.mjs +72 -0
  33. package/esm2020/lib/components/forms/checkbox-input/checkbox-input.component.mjs +29 -0
  34. package/esm2020/lib/components/forms/multiple-select-input/multiple-select-input.component.mjs +52 -0
  35. package/esm2020/lib/components/forms/number-input/number-input.component.mjs +33 -0
  36. package/esm2020/lib/components/forms/password-input/password-input.component.mjs +24 -0
  37. package/esm2020/lib/components/forms/select-input/select-input.component.mjs +57 -0
  38. package/esm2020/lib/components/forms/string-input/string-input.component.mjs +48 -0
  39. package/esm2020/lib/components/forms/text-input/text-input.component.mjs +30 -0
  40. package/esm2020/lib/components/icon/icon.component.mjs +52 -0
  41. package/esm2020/lib/components/labelled-value/labelled-value.component.mjs +20 -0
  42. package/esm2020/lib/components/loading-container/loading-container.component.mjs +50 -0
  43. package/esm2020/lib/components/noop/noop.component.mjs +13 -0
  44. package/{esm2015/lib/components/resize-aware.component.js → esm2020/lib/components/resize-aware.component.mjs} +4 -4
  45. package/esm2020/lib/components/scroll-container/scroll-container.component.mjs +15 -0
  46. package/esm2020/lib/components/section-header/section-header.component.mjs +36 -0
  47. package/{esm2015/lib/components/switch-case/switch-case.component.js → esm2020/lib/components/switch-case/switch-case.component.mjs} +11 -15
  48. package/esm2020/lib/components/tables/abstract-table-model.mjs +185 -0
  49. package/esm2020/lib/components/tables/abstract-table.component.mjs +168 -0
  50. package/{esm2015/lib/components/tables/column-list-model.js → esm2020/lib/components/tables/column-list-model.mjs} +2 -2
  51. package/{esm2015/lib/components/tables/table/cell-portal-ref.js → esm2020/lib/components/tables/table/cell-portal-ref.mjs} +2 -2
  52. package/esm2020/lib/components/tables/table/column-model.mjs +392 -0
  53. package/esm2020/lib/components/tables/table/column-template/column-template.directive.mjs +35 -0
  54. package/esm2020/lib/components/tables/table/default-cell-renderer/default-cell-renderer.component.mjs +22 -0
  55. package/esm2020/lib/components/tables/table/default-header-cell-renderer/default-header-cell-renderer.component.mjs +15 -0
  56. package/esm2020/lib/components/tables/table/edit-row-controls/edit-row-controls.component.mjs +55 -0
  57. package/esm2020/lib/components/tables/table/paginator/paginator.component.mjs +40 -0
  58. package/esm2020/lib/components/tables/table/select-cell-renderer/select-cell-renderer.component.mjs +26 -0
  59. package/esm2020/lib/components/tables/table/select-header-cell-renderer/select-header-cell-renderer.component.mjs +31 -0
  60. package/esm2020/lib/components/tables/table/table-cell-renderer/table-cell-renderer.component.mjs +93 -0
  61. package/esm2020/lib/components/tables/table/table-header-cell-renderer/table-header-cell-renderer.component.mjs +32 -0
  62. package/{esm2015/lib/components/tables/table/table-row-menu/table-row-menu.component.js → esm2020/lib/components/tables/table/table-row-menu/table-row-menu.component.mjs} +5 -5
  63. package/esm2020/lib/components/tables/table/table.component.mjs +95 -0
  64. package/esm2020/lib/components/tables/tree-table/decorated-tree-node.mjs +171 -0
  65. package/esm2020/lib/components/tables/tree-table/tree-inheritance-icon/tree-inheritance-icon.component.mjs +72 -0
  66. package/esm2020/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.mjs +91 -0
  67. package/{esm2015/lib/components/tables/tree-table/tree-label-column-model.js → esm2020/lib/components/tables/tree-table/tree-label-column-model.mjs} +2 -2
  68. package/esm2020/lib/components/tables/tree-table/tree-table-component.mjs +95 -0
  69. package/esm2020/lib/components/tables/tree-table/tree-table-model.mjs +94 -0
  70. package/{esm2015/lib/components/text/markdown/markdown.component.js → esm2020/lib/components/text/markdown/markdown.component.mjs} +6 -10
  71. package/{esm2015/lib/components/vertical-focus-container/vertical-focus-container.component.js → esm2020/lib/components/vertical-focus-container/vertical-focus-container.component.mjs} +6 -11
  72. package/{esm2015/lib/directives/command.directive.js → esm2020/lib/directives/command.directive.mjs} +4 -4
  73. package/{esm2015/lib/directives/directives.module.js → esm2020/lib/directives/directives.module.mjs} +5 -5
  74. package/{esm2015/lib/directives/focus-binding-factory.js → esm2020/lib/directives/focus-binding-factory.mjs} +4 -4
  75. package/{esm2015/lib/directives/focus-binding.directive.js → esm2020/lib/directives/focus-binding.directive.mjs} +4 -4
  76. package/{esm2015/lib/directives/highlight-text-model.directive.js → esm2020/lib/directives/highlight-text-model.directive.mjs} +4 -4
  77. package/{esm2015/lib/directives/highlight.pipe.js → esm2020/lib/directives/highlight.pipe.mjs} +7 -8
  78. package/esm2020/lib/interaction/activity.mjs +87 -0
  79. package/{esm2015/lib/interaction/alert.js → esm2020/lib/interaction/alert.mjs} +2 -2
  80. package/{esm2015/lib/interaction/components/abstract-confirm-dialog.component.js → esm2020/lib/interaction/components/abstract-confirm-dialog.component.mjs} +4 -4
  81. package/{esm2015/lib/interaction/components/abstract-dialog.component.js → esm2020/lib/interaction/components/abstract-dialog.component.mjs} +4 -4
  82. package/esm2020/lib/interaction/components/activity-actions/activity-actions.component.mjs +109 -0
  83. package/esm2020/lib/interaction/components/activity-body/activity-body.component.mjs +23 -0
  84. package/esm2020/lib/interaction/components/activity-container/activity-container.component.mjs +205 -0
  85. package/{esm2015/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.js → esm2020/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.mjs} +5 -9
  86. package/esm2020/lib/interaction/components/activity-title/activity-title.component.mjs +41 -0
  87. package/{esm2015/lib/interaction/components/activity-triggers/abstract-activity-trigger.component.js → esm2020/lib/interaction/components/activity-triggers/abstract-activity-trigger.component.mjs} +5 -6
  88. package/esm2020/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.mjs +24 -0
  89. package/esm2020/lib/interaction/components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component.mjs +22 -0
  90. package/esm2020/lib/interaction/components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component.mjs +30 -0
  91. package/esm2020/lib/interaction/components/add-card-activity/add-card-activity.component.mjs +91 -0
  92. package/esm2020/lib/interaction/components/add-item-interaction-context/add-item-interaction-context.component.mjs +73 -0
  93. package/esm2020/lib/interaction/components/alert-dialog/alert-dialog.component.mjs +30 -0
  94. package/esm2020/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.mjs +30 -0
  95. package/esm2020/lib/interaction/components/confirm-then-execute-dialog/confirm-then-execute-dialog.component.mjs +34 -0
  96. package/esm2020/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.mjs +29 -0
  97. package/esm2020/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.mjs +173 -0
  98. package/esm2020/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.mjs +91 -0
  99. package/esm2020/lib/interaction/components/input-activities/input-activity.mjs +103 -0
  100. package/{esm2015/lib/interaction/components/input-activities/select-input-activity.js → esm2020/lib/interaction/components/input-activities/select-input-activity.mjs} +6 -8
  101. package/{esm2015/lib/interaction/components/input-activities/string-input-activity.js → esm2020/lib/interaction/components/input-activities/string-input-activity.mjs} +4 -4
  102. package/{esm2015/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.js → esm2020/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.mjs} +5 -9
  103. package/{esm2015/lib/interaction/directives/interaction-context-trigger-for.directive.js → esm2020/lib/interaction/directives/interaction-context-trigger-for.directive.mjs} +5 -5
  104. package/{esm2015/lib/interaction/interaction.module.js → esm2020/lib/interaction/interaction.module.mjs} +5 -11
  105. package/{esm2015/lib/interaction/services/interaction.service.js → esm2020/lib/interaction/services/interaction.service.mjs} +4 -4
  106. package/esm2020/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context-factory.mjs +47 -0
  107. package/esm2020/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context.mjs +61 -0
  108. package/{esm2015/lib/place/components/abstract-place-navigation.component.js → esm2020/lib/place/components/abstract-place-navigation.component.mjs} +4 -4
  109. package/esm2020/lib/place/components/list-place-nav/list-place-nav.component.mjs +23 -0
  110. package/esm2020/lib/place/components/not-authorised-notice/not-authorised-notice.component.mjs +13 -0
  111. package/esm2020/lib/place/components/place-outlet/place-outlet.component.mjs +256 -0
  112. package/esm2020/lib/place/components/side-place-navigation/side-place-navigation.component.mjs +93 -0
  113. package/esm2020/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.mjs +22 -0
  114. package/{esm2015/lib/place/guards/consolidated-param-map.js → esm2020/lib/place/guards/consolidated-param-map.mjs} +2 -2
  115. package/esm2020/lib/place/guards/noop-auth-guard.service.mjs +18 -0
  116. package/esm2020/lib/place/guards/place.guard.mjs +109 -0
  117. package/esm2020/lib/place/navigation/place-component-deactivation-handler.mjs +83 -0
  118. package/esm2020/lib/place/navigation/session/event-cleanup/wait-until-leaving-interaction-transition-cancelled.mjs +43 -0
  119. package/esm2020/lib/place/navigation/session/event-cleanup/wait-until-link-triggered-navigation-interaction-cancelation-type-determined.mjs +152 -0
  120. package/esm2020/lib/place/navigation/session/event-cleanup/wait-until-popstate-during-can-deactivate-transition-finishes.mjs +62 -0
  121. package/{esm2015/lib/place/navigation/session/interactions/synchronise-interaction-context-ids-with-route.js → esm2020/lib/place/navigation/session/interactions/synchronise-interaction-context-ids-with-route.mjs} +2 -2
  122. package/esm2020/lib/place/navigation/session/navigation-session.mjs +157 -0
  123. package/esm2020/lib/place/place-component.mjs +198 -0
  124. package/{esm2015/lib/place/place-definition.js → esm2020/lib/place/place-definition.mjs} +2 -2
  125. package/esm2020/lib/place/place-history.mjs +138 -0
  126. package/esm2020/lib/place/place-router.mjs +331 -0
  127. package/esm2020/lib/place/place.decorator.mjs +18 -0
  128. package/{esm2015/lib/place/place.module.js → esm2020/lib/place/place.module.mjs} +5 -6
  129. package/{esm2015/lib/place/route/formatter.js → esm2020/lib/place/route/formatter.mjs} +2 -2
  130. package/esm2020/lib/place/route/parameter-definition.mjs +123 -0
  131. package/esm2020/lib/place/route/visit-sanitiser.mjs +41 -0
  132. package/{esm2015/lib/place/url-service.js → esm2020/lib/place/url-service.mjs} +4 -4
  133. package/{esm2015/lib/place/url-snapshot.js → esm2020/lib/place/url-snapshot.mjs} +2 -2
  134. package/esm2020/lib/place/visit.mjs +69 -0
  135. package/{esm2015/lib/services/markdown/markdown.service.js → esm2020/lib/services/markdown/markdown.service.mjs} +5 -5
  136. package/esm2020/lib/services/markdown/pill-plugin.mjs +37 -0
  137. package/{esm2015/lib/services/visibility-service.js → esm2020/lib/services/visibility-service.mjs} +4 -4
  138. package/fesm2015/{coolon-angular-ui-powerups.js → coolon-angular-ui-powerups.mjs} +1202 -1417
  139. package/fesm2015/coolon-angular-ui-powerups.mjs.map +1 -0
  140. package/fesm2020/coolon-angular-ui-powerups.mjs +9891 -0
  141. package/fesm2020/coolon-angular-ui-powerups.mjs.map +1 -0
  142. package/package.json +39 -26
  143. package/schematics/activity/index.js +3 -3
  144. package/schematics/activity/index.js.map +1 -1
  145. package/schematics/aup-i18n/index.js +7 -7
  146. package/schematics/aup-i18n/index.js.map +1 -1
  147. package/schematics/bootstrap-app/index.js +9 -9
  148. package/schematics/bootstrap-app/index.js.map +1 -1
  149. package/schematics/bootstrap-app/templates/src/styles.scss.template +2 -2
  150. package/schematics/component/index.js +3 -3
  151. package/schematics/component/index.js.map +1 -1
  152. package/schematics/ng-add/index.js +2 -2
  153. package/schematics/ng-add/index.js.map +1 -1
  154. package/schematics/place-add/index.js +3 -3
  155. package/schematics/place-add/index.js.map +1 -1
  156. package/schematics/place-bootstrap/index.js +1 -1
  157. package/schematics/place-bootstrap/index.js.map +1 -1
  158. package/schematics/place-routes/place-builder.js +6 -6
  159. package/schematics/place-routes/place-builder.js.map +1 -1
  160. package/schematics/place-routes/place-class-scanner.js +4 -4
  161. package/schematics/place-routes/place-class-scanner.js.map +1 -1
  162. package/schematics/place-routes/place-def.js +4 -4
  163. package/schematics/place-routes/place-def.js.map +1 -1
  164. package/schematics/utils/decorators/decorated-class.js +1 -1
  165. package/schematics/utils/decorators/decorated-class.js.map +1 -1
  166. package/schematics/utils/import-def.js +3 -3
  167. package/schematics/utils/import-def.js.map +1 -1
  168. package/schematics/utils/method-scanner.js +5 -5
  169. package/schematics/utils/method-scanner.js.map +1 -1
  170. package/schematics/utils/path-helper.js +3 -3
  171. package/schematics/utils/path-helper.js.map +1 -1
  172. package/schematics/utils/source-file-scanner.js +6 -6
  173. package/schematics/utils/source-file-scanner.js.map +1 -1
  174. package/schematics/utils/source-file-utilities.js +2 -2
  175. package/schematics/utils/source-file-utilities.js.map +1 -1
  176. package/schematics/utils/template-utilities.js +4 -4
  177. package/schematics/utils/template-utilities.js.map +1 -1
  178. package/bundles/coolon-angular-ui-powerups.umd.js +0 -11847
  179. package/bundles/coolon-angular-ui-powerups.umd.js.map +0 -1
  180. package/esm2015/lib/components/busy-overlay/busy-overlay.component.js +0 -36
  181. package/esm2015/lib/components/cards/card-container/card-container.component.js +0 -133
  182. package/esm2015/lib/components/cards/card-stack/card-stack.component.js +0 -85
  183. package/esm2015/lib/components/commands/command/command.component.js +0 -100
  184. package/esm2015/lib/components/commands/command-face.js +0 -112
  185. package/esm2015/lib/components/commands/group/popup-menu/abstract-popup-menu.component.js +0 -89
  186. package/esm2015/lib/components/commands/group/popup-menu/more-menu.component.js +0 -61
  187. package/esm2015/lib/components/commands/group/popup-menu/popup-menu-renderer/popup-menu-renderer.component.js +0 -104
  188. package/esm2015/lib/components/commands/group/popup-menu/popup-menu.component.js +0 -58
  189. package/esm2015/lib/components/commands/group/tool-bar/tool-bar.component.js +0 -36
  190. package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.js +0 -76
  191. package/esm2015/lib/components/forms/checkbox-input/checkbox-input.component.js +0 -33
  192. package/esm2015/lib/components/forms/multiple-select-input/multiple-select-input.component.js +0 -56
  193. package/esm2015/lib/components/forms/number-input/number-input.component.js +0 -37
  194. package/esm2015/lib/components/forms/password-input/password-input.component.js +0 -28
  195. package/esm2015/lib/components/forms/select-input/select-input.component.js +0 -61
  196. package/esm2015/lib/components/forms/string-input/string-input.component.js +0 -52
  197. package/esm2015/lib/components/forms/text-input/text-input.component.js +0 -34
  198. package/esm2015/lib/components/icon/icon.component.js +0 -56
  199. package/esm2015/lib/components/labelled-value/labelled-value.component.js +0 -24
  200. package/esm2015/lib/components/loading-container/loading-container.component.js +0 -54
  201. package/esm2015/lib/components/noop/noop.component.js +0 -17
  202. package/esm2015/lib/components/scroll-container/scroll-container.component.js +0 -19
  203. package/esm2015/lib/components/section-header/section-header.component.js +0 -40
  204. package/esm2015/lib/components/tables/abstract-table-model.js +0 -188
  205. package/esm2015/lib/components/tables/abstract-table.component.js +0 -170
  206. package/esm2015/lib/components/tables/table/column-model.js +0 -389
  207. package/esm2015/lib/components/tables/table/column-template/column-template.directive.js +0 -36
  208. package/esm2015/lib/components/tables/table/default-cell-renderer/default-cell-renderer.component.js +0 -26
  209. package/esm2015/lib/components/tables/table/default-header-cell-renderer/default-header-cell-renderer.component.js +0 -19
  210. package/esm2015/lib/components/tables/table/edit-row-controls/edit-row-controls.component.js +0 -60
  211. package/esm2015/lib/components/tables/table/paginator/paginator.component.js +0 -44
  212. package/esm2015/lib/components/tables/table/select-cell-renderer/select-cell-renderer.component.js +0 -32
  213. package/esm2015/lib/components/tables/table/select-header-cell-renderer/select-header-cell-renderer.component.js +0 -37
  214. package/esm2015/lib/components/tables/table/table-cell-renderer/table-cell-renderer.component.js +0 -98
  215. package/esm2015/lib/components/tables/table/table-header-cell-renderer/table-header-cell-renderer.component.js +0 -36
  216. package/esm2015/lib/components/tables/table/table.component.js +0 -100
  217. package/esm2015/lib/components/tables/tree-table/decorated-tree-node.js +0 -171
  218. package/esm2015/lib/components/tables/tree-table/tree-inheritance-icon/tree-inheritance-icon.component.js +0 -76
  219. package/esm2015/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.js +0 -96
  220. package/esm2015/lib/components/tables/tree-table/tree-table-component.js +0 -100
  221. package/esm2015/lib/components/tables/tree-table/tree-table-model.js +0 -94
  222. package/esm2015/lib/interaction/activity.js +0 -88
  223. package/esm2015/lib/interaction/components/activity-actions/activity-actions.component.js +0 -113
  224. package/esm2015/lib/interaction/components/activity-body/activity-body.component.js +0 -27
  225. package/esm2015/lib/interaction/components/activity-container/activity-container.component.js +0 -214
  226. package/esm2015/lib/interaction/components/activity-title/activity-title.component.js +0 -45
  227. package/esm2015/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.js +0 -28
  228. package/esm2015/lib/interaction/components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component.js +0 -26
  229. package/esm2015/lib/interaction/components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component.js +0 -34
  230. package/esm2015/lib/interaction/components/add-card-activity/add-card-activity.component.js +0 -95
  231. package/esm2015/lib/interaction/components/add-item-interaction-context/add-item-interaction-context.component.js +0 -77
  232. package/esm2015/lib/interaction/components/alert-dialog/alert-dialog.component.js +0 -34
  233. package/esm2015/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.js +0 -34
  234. package/esm2015/lib/interaction/components/confirm-then-execute-dialog/confirm-then-execute-dialog.component.js +0 -39
  235. package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +0 -33
  236. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.js +0 -176
  237. package/esm2015/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.js +0 -96
  238. package/esm2015/lib/interaction/components/input-activities/input-activity.js +0 -107
  239. package/esm2015/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context-factory.js +0 -41
  240. package/esm2015/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context.js +0 -58
  241. package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.js +0 -27
  242. package/esm2015/lib/place/components/not-authorised-notice/not-authorised-notice.component.js +0 -17
  243. package/esm2015/lib/place/components/place-outlet/place-outlet.component.js +0 -263
  244. package/esm2015/lib/place/components/side-place-navigation/side-place-navigation.component.js +0 -97
  245. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +0 -26
  246. package/esm2015/lib/place/guards/noop-auth-guard.service.js +0 -21
  247. package/esm2015/lib/place/guards/place.guard.js +0 -116
  248. package/esm2015/lib/place/navigation/place-component-deactivation-handler.js +0 -88
  249. package/esm2015/lib/place/navigation/session/event-cleanup/wait-until-leaving-interaction-transition-cancelled.js +0 -46
  250. package/esm2015/lib/place/navigation/session/event-cleanup/wait-until-link-triggered-navigation-interaction-cancelation-type-determined.js +0 -159
  251. package/esm2015/lib/place/navigation/session/event-cleanup/wait-until-popstate-during-can-deactivate-transition-finishes.js +0 -65
  252. package/esm2015/lib/place/navigation/session/navigation-session.js +0 -160
  253. package/esm2015/lib/place/place-component.js +0 -204
  254. package/esm2015/lib/place/place-history.js +0 -139
  255. package/esm2015/lib/place/place-router.js +0 -336
  256. package/esm2015/lib/place/place.decorator.js +0 -19
  257. package/esm2015/lib/place/route/parameter-definition.js +0 -128
  258. package/esm2015/lib/place/route/visit-sanitiser.js +0 -44
  259. package/esm2015/lib/place/visit.js +0 -69
  260. package/esm2015/lib/services/markdown/pill-plugin.js +0 -38
  261. package/fesm2015/coolon-angular-ui-powerups.js.map +0 -1
  262. /package/{esm2015/coolon-angular-ui-powerups.js → esm2020/coolon-angular-ui-powerups.mjs} +0 -0
  263. /package/{esm2015/index.js → esm2020/index.mjs} +0 -0
  264. /package/{esm2015/lib/animations/exports.js → esm2020/lib/animations/exports.mjs} +0 -0
  265. /package/{esm2015/lib/animations/slide-animations.js → esm2020/lib/animations/slide-animations.mjs} +0 -0
  266. /package/{esm2015/lib/components/alignment.js → esm2020/lib/components/alignment.mjs} +0 -0
  267. /package/{esm2015/lib/components/commands/group/command-container.js → esm2020/lib/components/commands/group/command-container.mjs} +0 -0
  268. /package/{esm2015/lib/components/commands/group/popup-aware.component.js → esm2020/lib/components/commands/group/popup-aware.component.mjs} +0 -0
  269. /package/{esm2015/lib/components/commands/group/popup-container.js → esm2020/lib/components/commands/group/popup-container.mjs} +0 -0
  270. /package/{esm2015/lib/components/exports.js → esm2020/lib/components/exports.mjs} +0 -0
  271. /package/{esm2015/lib/components/tables/edit-session.js → esm2020/lib/components/tables/edit-session.mjs} +0 -0
  272. /package/{esm2015/lib/components/tables/table/cell-editors.js → esm2020/lib/components/tables/table/cell-editors.mjs} +0 -0
  273. /package/{esm2015/lib/components/tables/table/cell-renderer.js → esm2020/lib/components/tables/table/cell-renderer.mjs} +0 -0
  274. /package/{esm2015/lib/components/tables/table/column-text-properties.js → esm2020/lib/components/tables/table/column-text-properties.mjs} +0 -0
  275. /package/{esm2015/lib/components/tables/table/mutable-cell-renderer.js → esm2020/lib/components/tables/table/mutable-cell-renderer.mjs} +0 -0
  276. /package/{esm2015/lib/components/tables/table/table-def.js → esm2020/lib/components/tables/table/table-def.mjs} +0 -0
  277. /package/{esm2015/lib/components/tables/table/table-model.js → esm2020/lib/components/tables/table/table-model.mjs} +0 -0
  278. /package/{esm2015/lib/components/tables/table/text-search-predicate.js → esm2020/lib/components/tables/table/text-search-predicate.mjs} +0 -0
  279. /package/{esm2015/lib/components/tables/tree-table/flattened-tree-list-model.js → esm2020/lib/components/tables/tree-table/flattened-tree-list-model.mjs} +0 -0
  280. /package/{esm2015/lib/components/tables/tree-table/tree-expansion-model.js → esm2020/lib/components/tables/tree-table/tree-expansion-model.mjs} +0 -0
  281. /package/{esm2015/lib/components/track-by.js → esm2020/lib/components/track-by.mjs} +0 -0
  282. /package/{esm2015/lib/components/types/bounds.class.js → esm2020/lib/components/types/bounds.class.mjs} +0 -0
  283. /package/{esm2015/lib/components/types/dimension.class.js → esm2020/lib/components/types/dimension.class.mjs} +0 -0
  284. /package/{esm2015/lib/components/types/point.class.js → esm2020/lib/components/types/point.class.mjs} +0 -0
  285. /package/{esm2015/lib/directives/exports.js → esm2020/lib/directives/exports.mjs} +0 -0
  286. /package/{esm2015/lib/directives/focus-binding.js → esm2020/lib/directives/focus-binding.mjs} +0 -0
  287. /package/{esm2015/lib/interaction/abstract-interaction-context.js → esm2020/lib/interaction/abstract-interaction-context.mjs} +0 -0
  288. /package/{esm2015/lib/interaction/activity-ref.js → esm2020/lib/interaction/activity-ref.mjs} +0 -0
  289. /package/{esm2015/lib/interaction/components/editors/edit-context.js → esm2020/lib/interaction/components/editors/edit-context.mjs} +0 -0
  290. /package/{esm2015/lib/interaction/components/editors/inline-string-editor/inline-editor-model.js → esm2020/lib/interaction/components/editors/inline-string-editor/inline-editor-model.mjs} +0 -0
  291. /package/{esm2015/lib/interaction/confirm.js → esm2020/lib/interaction/confirm.mjs} +0 -0
  292. /package/{esm2015/lib/interaction/exports.js → esm2020/lib/interaction/exports.mjs} +0 -0
  293. /package/{esm2015/lib/interaction/in-place-interaction-context.js → esm2020/lib/interaction/in-place-interaction-context.mjs} +0 -0
  294. /package/{esm2015/lib/interaction/interaction-context.js → esm2020/lib/interaction/interaction-context.mjs} +0 -0
  295. /package/{esm2015/lib/interaction/route-synchronisation-adapter.js → esm2020/lib/interaction/route-synchronisation-adapter.mjs} +0 -0
  296. /package/{esm2015/lib/interaction/services/interaction-service-routing-adapter.js → esm2020/lib/interaction/services/interaction-service-routing-adapter.mjs} +0 -0
  297. /package/{esm2015/lib/interaction/services/modal-interaction-context.factory.js → esm2020/lib/interaction/services/modal-interaction-context.factory.mjs} +0 -0
  298. /package/{esm2015/lib/place/components/place-outlet/route-animations.js → esm2020/lib/place/components/place-outlet/route-animations.mjs} +0 -0
  299. /package/{esm2015/lib/place/exports.js → esm2020/lib/place/exports.mjs} +0 -0
  300. /package/{esm2015/lib/place/nav-item.js → esm2020/lib/place/nav-item.mjs} +0 -0
  301. /package/{esm2015/lib/place/navigation/session/abstract-pop-state-navigation.js → esm2020/lib/place/navigation/session/abstract-pop-state-navigation.mjs} +0 -0
  302. /package/{esm2015/lib/place/navigation/session/event-cleanup/event-clean-up-session.js → esm2020/lib/place/navigation/session/event-cleanup/event-clean-up-session.mjs} +0 -0
  303. /package/{esm2015/lib/place/navigation/session/interactions/navigating-during-interaction.js → esm2020/lib/place/navigation/session/interactions/navigating-during-interaction.mjs} +0 -0
  304. /package/{esm2015/lib/place/navigation/session/interactions/pop-state-during-interaction-navigation.js → esm2020/lib/place/navigation/session/interactions/pop-state-during-interaction-navigation.mjs} +0 -0
  305. /package/{esm2015/lib/place/navigation/session/interactions/remove-last-interaction-from-url-navigation-session.js → esm2020/lib/place/navigation/session/interactions/remove-last-interaction-from-url-navigation-session.mjs} +0 -0
  306. /package/{esm2015/lib/place/navigation/session/navigating.js → esm2020/lib/place/navigation/session/navigating.mjs} +0 -0
  307. /package/{esm2015/lib/place/navigation/session/navigation-context.js → esm2020/lib/place/navigation/session/navigation-context.mjs} +0 -0
  308. /package/{esm2015/lib/place/navigation/session/pop-state-navigation.js → esm2020/lib/place/navigation/session/pop-state-navigation.mjs} +0 -0
  309. /package/{esm2015/lib/place/place-access-guard.js → esm2020/lib/place/place-access-guard.mjs} +0 -0
  310. /package/{esm2015/lib/place/place-config.js → esm2020/lib/place/place-config.mjs} +0 -0
  311. /package/{esm2015/lib/place/route/json-types.js → esm2020/lib/place/route/json-types.mjs} +0 -0
  312. /package/{esm2015/lib/place/route/parameter-decorators.js → esm2020/lib/place/route/parameter-decorators.mjs} +0 -0
  313. /package/{esm2015/lib/place/route/parameter-sanitiser.js → esm2020/lib/place/route/parameter-sanitiser.mjs} +0 -0
  314. /package/{esm2015/lib/place/route/parameter-snapshot.js → esm2020/lib/place/route/parameter-snapshot.mjs} +0 -0
  315. /package/{esm2015/lib/services/exports.js → esm2020/lib/services/exports.mjs} +0 -0
  316. /package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
@@ -1,116 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { Injectable, Injector } from '@angular/core';
3
- import { Router } from '@angular/router';
4
- import { lang } from '@coolon/pectin';
5
- import { InteractionService } from '../../interaction/services/interaction.service';
6
- import { PlaceComponent } from '../place-component';
7
- import { PlaceHistory } from '../place-history';
8
- import { PlaceRouter } from '../place-router';
9
- import { VisitSanitiser } from '../route/visit-sanitiser';
10
- import { UrlService } from '../url-service';
11
- import { UrlSnapshot } from '../url-snapshot';
12
- import { Visit } from '../visit';
13
- import { ConsolidatedParameterMap } from './consolidated-param-map';
14
- import * as i0 from "@angular/core";
15
- import * as i1 from "@angular/router";
16
- import * as i2 from "../url-service";
17
- import * as i3 from "../place-router";
18
- import * as i4 from "../place-history";
19
- import * as i5 from "../../interaction/services/interaction.service";
20
- export class PlaceGuard {
21
- constructor(router, urlService, placeRouter, placeHistory, interactionService, injector) {
22
- this.router = router;
23
- this.urlService = urlService;
24
- this.placeRouter = placeRouter;
25
- this.placeHistory = placeHistory;
26
- this.interactionService = interactionService;
27
- this.injector = injector;
28
- }
29
- // @Trace()
30
- canActivate(activatedRoute, state) {
31
- return __awaiter(this, void 0, void 0, function* () {
32
- if (PlaceComponent.isPlaceComponentConstructor(activatedRoute.component)) {
33
- const placeDefinition = PlaceComponent.getDefinition(activatedRoute.component);
34
- if (placeDefinition.authenticate) {
35
- if (!(yield this.placeRouter.accessGuard.value.isAuthenticated())) {
36
- const redirectLocation = this.placeRouter.getAuthenticationFailureRedirect(activatedRoute, state);
37
- const nextPlaceDef = this.getPlaceDefinition(redirectLocation);
38
- if (nextPlaceDef.authenticate) {
39
- lang.illegalState(`handleNotAuthenticated hook returned place ${nextPlaceDef.component.name} that requires authentication.`);
40
- }
41
- return this.createUrlTree(redirectLocation);
42
- }
43
- }
44
- const result = yield this.cleanInteractionState(activatedRoute, state, () => __awaiter(this, void 0, void 0, function* () {
45
- const navigationSession = this.placeRouter.navigationSession;
46
- // Parse our route params.
47
- const params = new ConsolidatedParameterMap(activatedRoute.url, activatedRoute.paramMap);
48
- // console.log("RouteParams", params)
49
- const parsedParams = placeDefinition.parseRouteParams(params);
50
- const initialVisit = navigationSession.getVisitFor(placeDefinition) || new Visit(placeDefinition, parsedParams);
51
- const sanitiser = new VisitSanitiser(navigationSession, activatedRoute, this.router, this.placeHistory, this.injector);
52
- const sanitisedVisit = yield sanitiser.sanitise(initialVisit.mergeRouteParameters(parsedParams));
53
- // Save the visit with any updated parameters. We need to save it so we remember any non route parameters
54
- navigationSession.storeVisit(sanitisedVisit);
55
- if (initialVisit.hasRoutingChangedFrom(sanitisedVisit)) {
56
- // Regenerate the url
57
- const urlSnapshot = this.urlService.parseUrl(state.url).updateVisitSegments(sanitisedVisit);
58
- // console.log('##### Place Guard Redirect', urlSnapshot);
59
- return urlSnapshot;
60
- }
61
- else {
62
- return true;
63
- }
64
- }));
65
- return result instanceof UrlSnapshot ? result.urlTree : result;
66
- }
67
- else {
68
- return lang.illegalState(`expected component to be an instance of PlaceComponent, got ${activatedRoute.component}`);
69
- }
70
- });
71
- }
72
- // @Trace()
73
- canDeactivate(component, currentRoute, currentState, nextState) {
74
- return __awaiter(this, void 0, void 0, function* () {
75
- if (!component) {
76
- // this happens when the place wasn't authorised and the associated
77
- // router outlet was removed from the dom.
78
- return true;
79
- }
80
- const currentUrl = this.urlService.parseUrl(currentState.url);
81
- const nextUrl = this.urlService.parseUrl(nextState.url);
82
- const result = yield this.placeRouter.navigationSession.canDeactivatePlace(component, currentUrl, nextUrl);
83
- return result instanceof UrlSnapshot ? result.urlTree : result;
84
- });
85
- }
86
- getPlaceDefinition(result) {
87
- return result instanceof Visit ?
88
- result.placeDefinition :
89
- PlaceComponent.getDefinition(result);
90
- }
91
- createUrlTree(result) {
92
- const visit = result instanceof Visit ? result : new Visit(PlaceComponent.getDefinition(result), {});
93
- return this.urlService.createUrlSnapshot(visit).urlTree;
94
- }
95
- // @Trace()
96
- cleanInteractionState(route, state, next) {
97
- return __awaiter(this, void 0, void 0, function* () {
98
- const url = this.urlService.parseUrl(state.url);
99
- if (!this.interactionService.isActive() && url.hasInteractions()) {
100
- // This happens if we reload the page or the url was pasted as the route should only be activated
101
- // after the interaction context has become active.
102
- return url.removeInteractionIds();
103
- }
104
- else {
105
- return next();
106
- }
107
- });
108
- }
109
- }
110
- PlaceGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: PlaceGuard, deps: [{ token: i1.Router }, { token: i2.UrlService }, { token: i3.PlaceRouter }, { token: i4.PlaceHistory }, { token: i5.InteractionService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
111
- PlaceGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: PlaceGuard, providedIn: 'root' });
112
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: PlaceGuard, decorators: [{
113
- type: Injectable,
114
- args: [{ providedIn: 'root' }]
115
- }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.UrlService }, { type: i3.PlaceRouter }, { type: i4.PlaceHistory }, { type: i5.InteractionService }, { type: i0.Injector }]; } });
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UuZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9wbGFjZS9ndWFyZHMvcGxhY2UuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFJTCxNQUFNLEVBR1AsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQWlCLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDakMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7QUFHcEUsTUFBTSxPQUFPLFVBQVU7SUFHckIsWUFBNkIsTUFBYyxFQUN2QixVQUFzQixFQUNiLFdBQXdCLEVBQ3hCLFlBQTBCLEVBQzFCLGtCQUFzQyxFQUN0QyxRQUFrQjtRQUxsQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ3ZCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDYixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixpQkFBWSxHQUFaLFlB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QkFBcUIsQ0FBQyxLQUE2QixFQUFFLEtBQTBCLEVBQUUsSUFBMEM7O1lBQy9ILE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxJQUFJLEdBQUcsQ0FBQyxlQUFlLEVBQUUsRUFBRTtnQkFDaEUsaUdBQWlHO2dCQUNqRyxtREFBbUQ7Z0JBQ25ELE9BQU8sR0FBRyxDQUFDLG9CQUFvQixFQUFFLENBQUM7YUFDbkM7aUJBQU07Z0JBQ0wsT0FBTyxJQUFJLEVBQUUsQ0FBQzthQUNmO1FBQ0gsQ0FBQztLQUFBOzt3R0E3RlUsVUFBVTs0R0FBVixVQUFVLGNBREcsTUFBTTs0RkFDbkIsVUFBVTtrQkFEdEIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgQ2FuQWN0aXZhdGUsXG4gIENhbkRlYWN0aXZhdGUsXG4gIFJvdXRlcixcbiAgUm91dGVyU3RhdGVTbmFwc2hvdCxcbiAgVXJsVHJlZVxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ29uc3RydWN0YWJsZSwgbGFuZyB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IEludGVyYWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2ludGVyYWN0aW9uL3NlcnZpY2VzL2ludGVyYWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGxhY2VDb21wb25lbnQgfSBmcm9tICcuLi9wbGFjZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgUGxhY2VEZWZpbml0aW9uIH0gZnJvbSAnLi4vcGxhY2UtZGVmaW5pdGlvbic7XG5pbXBvcnQgeyBQbGFjZUhpc3RvcnkgfSBmcm9tICcuLi9wbGFjZS1oaXN0b3J5JztcbmltcG9ydCB7IFBsYWNlUm91dGVyIH0gZnJvbSAnLi4vcGxhY2Utcm91dGVyJztcbmltcG9ydCB7IFZpc2l0U2FuaXRpc2VyIH0gZnJvbSAnLi4vcm91dGUvdmlzaXQtc2FuaXRpc2VyJztcbmltcG9ydCB7IFVybFNlcnZpY2UgfSBmcm9tICcuLi91cmwtc2VydmljZSc7XG5pbXBvcnQgeyBVcmxTbmFwc2hvdCB9IGZyb20gJy4uL3VybC1zbmFwc2hvdCc7XG5pbXBvcnQgeyBWaXNpdCB9IGZyb20gJy4uL3Zpc2l0JztcbmltcG9ydCB7IENvbnNvbGlkYXRlZFBhcmFtZXRlck1hcCB9IGZyb20gJy4vY29uc29saWRhdGVkLXBhcmFtLW1hcCc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgUGxhY2VHdWFyZCBpbXBsZW1lbnRzIENhbkFjdGl2YXRlLCBDYW5EZWFjdGl2YXRlPFBsYWNlQ29tcG9uZW50PiB7XG5cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgICAgICAgICAgICBwcml2YXRlIHVybFNlcnZpY2U6IFVybFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcGxhY2VSb3V0ZXI6IFBsYWNlUm91dGVyLFxuICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHBsYWNlSGlzdG9yeTogUGxhY2VIaXN0b3J5LFxuICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGludGVyYWN0aW9uU2VydmljZTogSW50ZXJhY3Rpb25TZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3Rvcikge1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgYXN5bmMgY2FuQWN0aXZhdGUoYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KTogUHJvbWlzZTxib29sZWFuIHwgVXJsVHJlZT4ge1xuXG4gICAgaWYgKFBsYWNlQ29tcG9uZW50LmlzUGxhY2VDb21wb25lbnRDb25zdHJ1Y3RvcihhY3RpdmF0ZWRSb3V0ZS5jb21wb25lbnQpKSB7XG4gICAgICBjb25zdCBwbGFjZURlZmluaXRpb24gPSBQbGFjZUNvbXBvbmVudC5nZXREZWZpbml0aW9uKGFjdGl2YXRlZFJvdXRlLmNvbXBvbmVudCk7XG5cbiAgICAgIGlmIChwbGFjZURlZmluaXRpb24uYXV0aGVudGljYXRlKSB7XG5cbiAgICAgICAgaWYgKCFhd2FpdCB0aGlzLnBsYWNlUm91dGVyLmFjY2Vzc0d1YXJkLnZhbHVlLmlzQXV0aGVudGljYXRlZCgpKSB7XG4gICAgICAgICAgY29uc3QgcmVkaXJlY3RMb2NhdGlvbiA9IHRoaXMucGxhY2VSb3V0ZXIuZ2V0QXV0aGVudGljYXRpb25GYWlsdXJlUmVkaXJlY3QoYWN0aXZhdGVkUm91dGUsIHN0YXRlKTtcbiAgICAgICAgICBjb25zdCBuZXh0UGxhY2VEZWYgPSB0aGlzLmdldFBsYWNlRGVmaW5pdGlvbihyZWRpcmVjdExvY2F0aW9uKTtcbiAgICAgICAgICBpZiAobmV4dFBsYWNlRGVmLmF1dGhlbnRpY2F0ZSkge1xuICAgICAgICAgICAgbGFuZy5pbGxlZ2FsU3RhdGUoYGhhbmRsZU5vdEF1dGhlbnRpY2F0ZWQgaG9vayByZXR1cm5lZCBwbGFjZSAke25leHRQbGFjZURlZi5jb21wb25lbnQubmFtZX0gdGhhdCByZXF1aXJlcyBhdXRoZW50aWNhdGlvbi5gKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlVXJsVHJlZShyZWRpcmVjdExvY2F0aW9uKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmNsZWFuSW50ZXJhY3Rpb25TdGF0ZShhY3RpdmF0ZWRSb3V0ZSwgc3RhdGUsIGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgbmF2aWdhdGlvblNlc3Npb24gPSB0aGlzLnBsYWNlUm91dGVyLm5hdmlnYXRpb25TZXNzaW9uO1xuXG4gICAgICAgIC8vIFBhcnNlIG91ciByb3V0ZSBwYXJhbXMuXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBDb25zb2xpZGF0ZWRQYXJhbWV0ZXJNYXAoYWN0aXZhdGVkUm91dGUudXJsLCBhY3RpdmF0ZWRSb3V0ZS5wYXJhbU1hcCk7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwiUm91dGVQYXJhbXNcIiwgcGFyYW1zKVxuICAgICAgICBjb25zdCBwYXJzZWRQYXJhbXMgPSBwbGFjZURlZmluaXRpb24ucGFyc2VSb3V0ZVBhcmFtcyhwYXJhbXMpO1xuICAgICAgICBjb25zdCBpbml0aWFsVmlzaXQgPSBuYXZpZ2F0aW9uU2Vzc2lvbi5nZXRWaXNpdEZvcihwbGFjZURlZmluaXRpb24pIHx8IG5ldyBWaXNpdChwbGFjZURlZmluaXRpb24sIHBhcnNlZFBhcmFtcyk7XG5cbiAgICAgICAgY29uc3Qgc2FuaXRpc2VyID0gbmV3IFZpc2l0U2FuaXRpc2VyKG5hdmlnYXRpb25TZXNzaW9uLCBhY3RpdmF0ZWRSb3V0ZSwgdGhpcy5yb3V0ZXIsIHRoaXMucGxhY2VIaXN0b3J5LCB0aGlzLmluamVjdG9yKTtcbiAgICAgICAgY29uc3Qgc2FuaXRpc2VkVmlzaXQgPSBhd2FpdCBzYW5pdGlzZXIuc2FuaXRpc2UoaW5pdGlhbFZpc2l0Lm1lcmdlUm91dGVQYXJhbWV0ZXJzKHBhcnNlZFBhcmFtcykpO1xuXG4gICAgICAgIC8vIFNhdmUgdGhlIHZpc2l0IHdpdGggYW55IHVwZGF0ZWQgcGFyYW1ldGVycy4gIFdlIG5lZWQgdG8gc2F2ZSBpdCBzbyB3ZSByZW1lbWJlciBhbnkgbm9uIHJvdXRlIHBhcmFtZXRlcnNcbiAgICAgICAgbmF2aWdhdGlvblNlc3Npb24uc3RvcmVWaXNpdChzYW5pdGlzZWRWaXNpdCk7XG4gICAgICAgIGlmIChpbml0aWFsVmlzaXQuaGFzUm91dGluZ0NoYW5nZWRGcm9tKHNhbml0aXNlZFZpc2l0KSkge1xuICAgICAgICAgIC8vIFJlZ2VuZXJhdGUgdGhlIHVybFxuICAgICAgICAgIGNvbnN0IHVybFNuYXBzaG90ID0gdGhpcy51cmxTZXJ2aWNlLnBhcnNlVXJsKHN0YXRlLnVybCkudXBkYXRlVmlzaXRTZWdtZW50cyhzYW5pdGlzZWRWaXNpdCk7XG4gICAgICAgICAgLy8gY29uc29sZS5sb2coJyMjIyMjIFBsYWNlIEd1YXJkIFJlZGlyZWN0JywgdXJsU25hcHNob3QpO1xuICAgICAgICAgIHJldHVybiB1cmxTbmFwc2hvdDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gcmVzdWx0IGluc3RhbmNlb2YgVXJsU25hcHNob3QgPyByZXN1bHQudXJsVHJlZSA6IHJlc3VsdDtcblxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbGFuZy5pbGxlZ2FsU3RhdGUoYGV4cGVjdGVkIGNvbXBvbmVudCB0byBiZSBhbiBpbnN0YW5jZSBvZiBQbGFjZUNvbXBvbmVudCwgZ290ICR7YWN0aXZhdGVkUm91dGUuY29tcG9uZW50fWApO1xuICAgIH1cbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIGFzeW5jIGNhbkRlYWN0aXZhdGUoY29tcG9uZW50OiBQbGFjZUNvbXBvbmVudCwgY3VycmVudFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBjdXJyZW50U3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QsIG5leHRTdGF0ZT86IFJvdXRlclN0YXRlU25hcHNob3QpOiBQcm9taXNlPGJvb2xlYW4gfCBVcmxUcmVlPiB7XG4gICAgaWYgKCFjb21wb25lbnQpIHtcbiAgICAgIC8vIHRoaXMgaGFwcGVucyB3aGVuIHRoZSBwbGFjZSB3YXNuJ3QgYXV0aG9yaXNlZCBhbmQgdGhlIGFzc29jaWF0ZWRcbiAgICAgIC8vIHJvdXRlciBvdXRsZXQgd2FzIHJlbW92ZWQgZnJvbSB0aGUgZG9tLlxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGNvbnN0IGN1cnJlbnRVcmwgPSB0aGlzLnVybFNlcnZpY2UucGFyc2VVcmwoY3VycmVudFN0YXRlLnVybCk7XG4gICAgY29uc3QgbmV4dFVybCA9IHRoaXMudXJsU2VydmljZS5wYXJzZVVybChuZXh0U3RhdGUudXJsKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnBsYWNlUm91dGVyLm5hdmlnYXRpb25TZXNzaW9uLmNhbkRlYWN0aXZhdGVQbGFjZShjb21wb25lbnQsIGN1cnJlbnRVcmwsIG5leHRVcmwpO1xuICAgIHJldHVybiByZXN1bHQgaW5zdGFuY2VvZiBVcmxTbmFwc2hvdCA/IHJlc3VsdC51cmxUcmVlIDogcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQbGFjZURlZmluaXRpb24ocmVzdWx0OiBDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50PiB8IFZpc2l0KTogUGxhY2VEZWZpbml0aW9uIHtcbiAgICByZXR1cm4gcmVzdWx0IGluc3RhbmNlb2YgVmlzaXQgP1xuICAgICAgcmVzdWx0LnBsYWNlRGVmaW5pdGlvbiA6XG4gICAgICBQbGFjZUNvbXBvbmVudC5nZXREZWZpbml0aW9uKHJlc3VsdCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVVybFRyZWUocmVzdWx0OiBDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50PiB8IFZpc2l0KSB7XG4gICAgY29uc3QgdmlzaXQgPSByZXN1bHQgaW5zdGFuY2VvZiBWaXNpdCA/IHJlc3VsdCA6IG5ldyBWaXNpdChQbGFjZUNvbXBvbmVudC5nZXREZWZpbml0aW9uKHJlc3VsdCksIHt9KTtcbiAgICByZXR1cm4gdGhpcy51cmxTZXJ2aWNlLmNyZWF0ZVVybFNuYXBzaG90KHZpc2l0KS51cmxUcmVlO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgYXN5bmMgY2xlYW5JbnRlcmFjdGlvblN0YXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCwgbmV4dDogKCkgPT4gUHJvbWlzZTxib29sZWFuIHwgVXJsU25hcHNob3Q+KTogUHJvbWlzZTxib29sZWFuIHwgVXJsU25hcHNob3Q+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLnVybFNlcnZpY2UucGFyc2VVcmwoc3RhdGUudXJsKTtcbiAgICBpZiAoIXRoaXMuaW50ZXJhY3Rpb25TZXJ2aWNlLmlzQWN0aXZlKCkgJiYgdXJsLmhhc0ludGVyYWN0aW9ucygpKSB7XG4gICAgICAvLyBUaGlzIGhhcHBlbnMgaWYgd2UgcmVsb2FkIHRoZSBwYWdlIG9yIHRoZSB1cmwgd2FzIHBhc3RlZCBhcyB0aGUgcm91dGUgc2hvdWxkIG9ubHkgYmUgYWN0aXZhdGVkXG4gICAgICAvLyBhZnRlciB0aGUgaW50ZXJhY3Rpb24gY29udGV4dCBoYXMgYmVjb21lIGFjdGl2ZS5cbiAgICAgIHJldHVybiB1cmwucmVtb3ZlSW50ZXJhY3Rpb25JZHMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG5leHQoKTtcbiAgICB9XG4gIH1cblxufVxuIl19
@@ -1,88 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { assert } from '@coolon/pectin';
3
- import { isEqual } from 'lodash-es';
4
- /**
5
- * This class handles the logic around canDeactivate for a given router state transition. It's core responsibilities are:
6
- * 1. Ensure we only ask the component to deactivate once on a given navigation cycle (since visit sanitisation can result in multiple round trips to through the router.)
7
- * 2. Ensure only the primary place component is asked when there are nested places. The primary component is the one at the top
8
- * of the routing change tree.
9
- * 3. Automatically handle standard interaction scenarios on the components behalf.
10
- */
11
- export class PlaceComponentDeactivationHandler {
12
- constructor(component, navigationSession, isPrimaryComponent) {
13
- this.component = component;
14
- this.navigationSession = navigationSession;
15
- this.isPrimaryComponent = isPrimaryComponent;
16
- assert.notNil(component);
17
- }
18
- get routerInteractionAdapter() {
19
- return this.navigationSession.interactionServiceAdapter;
20
- }
21
- get urlService() {
22
- return this.navigationSession.urlService;
23
- }
24
- get placeDefinition() {
25
- return this.component.placeDefinition;
26
- }
27
- // @Trace()
28
- canDeactivate(currentUrl, nextState) {
29
- return __awaiter(this, void 0, void 0, function* () {
30
- // We'll get called multiple times if there's any parameter sanitisation so
31
- // we always return true if we accepted promise from a previous cycle of the current
32
- // navigation session.
33
- if (!this.canDeactivatePromise) {
34
- // console.log(`creating deactivate promise for -> ${this.component.constructor.name}`);
35
- this.canDeactivatePromise = this.canDeactivateComponent(currentUrl, nextState);
36
- }
37
- return this.canDeactivatePromise;
38
- });
39
- }
40
- // @Trace()
41
- canDeactivateComponent(currentUrl, nextState) {
42
- return __awaiter(this, void 0, void 0, function* () {
43
- // Automatically cancel any active activities if the navigation session was triggered by the back button.
44
- // If we handled more than just the pop state then it leads to the UI ignoring clicks and just cancelling things which is deeply disconcerting.
45
- if (this.navigationSession.isPopState) {
46
- if (this.isPrimaryComponent && this.routerInteractionAdapter.isModalActive()) {
47
- const routeIds = this.urlService.getActiveInteractionIdsFromUrl(nextState.url);
48
- const currentIds = this.routerInteractionAdapter.getActiveInteractionContextIds();
49
- if (!isEqual(currentIds, routeIds)) { // why am I checking this????
50
- yield this.routerInteractionAdapter.cancelCurrentModalInteraction();
51
- return false;
52
- }
53
- }
54
- else {
55
- // check if the component has an in place interaction
56
- if (this.routerInteractionAdapter.isComponentInteracting(this.component)) {
57
- yield this.routerInteractionAdapter.cancelComponentInteraction(this.component);
58
- return false;
59
- }
60
- }
61
- }
62
- // No interaction in progress, so ask the component .
63
- // This may start an interaction, hence checking the interaction context before now. I.e. if the place pops up the dialog, and
64
- // the user clicks back again, we'll re-enter here and go bang when the component tries to open another dialog.
65
- if (this.isGoingToADifferentPlace(nextState)) {
66
- const canLeave = yield this.component._canLeavePlace(this.navigationSession.canDeactivateInteractionContext);
67
- // The component has an active interaction but no deactivation hook. Rather than guessing what to do
68
- // we'll just cancel the navigation and print a warning.
69
- if (canLeave && this.routerInteractionAdapter.isComponentInteracting(this.component)) {
70
- console.warn('Route changed while component has active interaction, cancelling navigation');
71
- return false;
72
- }
73
- return canLeave;
74
- }
75
- else {
76
- // either an interaction or visit parameter change.
77
- return yield this.component._canChangeRouteParameters(this.navigationSession.canDeactivateInteractionContext, nextState);
78
- }
79
- });
80
- }
81
- isGoingToADifferentPlace(nextState) {
82
- // Because places with a route-id cover two route segments we get asked to deactivate
83
- // if the route id is added or removed. So if our path is still present the url
84
- // then we shouldn't deactivate the place.
85
- return !nextState.includesPathOf(this.component.placeDefinition);
86
- }
87
- }
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UtY29tcG9uZW50LWRlYWN0aXZhdGlvbi1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvcGxhY2UvbmF2aWdhdGlvbi9wbGFjZS1jb21wb25lbnQtZGVhY3RpdmF0aW9uLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBUyxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBTXBDOzs7Ozs7R0FNRztBQUNILE1BQU0sT0FBTyxpQ0FBaUM7SUFJNUMsWUFBcUIsU0FBeUIsRUFBVyxpQkFBb0MsRUFBVyxrQkFBMkI7UUFBOUcsY0FBUyxHQUFULFNBQVMsQ0FBZ0I7UUFBVyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQVcsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFTO1FBQ2pJLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksd0JBQXdCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLHlCQUF5QixDQUFDO0lBQzFELENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxXQUFXO0lBQ0wsYUFBYSxDQUFDLFVBQXVCLEVBQUUsU0FBc0I7O1lBQ2pFLDJFQUEyRTtZQUMzRSxvRkFBb0Y7WUFDcEYsc0JBQXNCO1lBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7Z0JBQzlCLHdGQUF3RjtnQkFDeEYsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7YUFDaEY7WUFDRCxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztRQUNuQyxDQUFDO0tBQUE7SUFHRCxXQUFXO0lBQ0ssc0JBQXNCLENBQUMsVUFBdUIsRUFBRSxTQUFzQjs7WUFDcEYseUdBQXlHO1lBQ3pHLCtJQUErSTtZQUMvSSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLEVBQUU7Z0JBRXJDLElBQUksSUFBSSxDQUFDLGtCQUFrQixJQUFJLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxhQUFhLEVBQUUsRUFBRTtvQkFDNUUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyw4QkFBOEIsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQy9FLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO29CQUNsRixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFFLDZCQUE2Qjt3QkFDakUsTUFBTSxJQUFJLENBQUMsd0JBQXdCLENBQUMsNkJBQTZCLEVBQUUsQ0FBQzt3QkFDcEUsT0FBTyxLQUFLLENBQUM7cUJBQ2Q7aUJBQ0Y7cUJBQU07b0JBQ0wscURBQXFEO29CQUNyRCxJQUFJLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7d0JBQ3hFLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzt3QkFDL0UsT0FBTyxLQUFLLENBQUM7cUJBQ2Q7aUJBQ0Y7YUFDRjtZQUVELHFEQUFxRDtZQUNyRCw4SEFBOEg7WUFDOUgsK0dBQStHO1lBQy9HLElBQUksSUFBSSxDQUFDLHdCQUF3QixDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUM1QyxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO2dCQUM3RyxxR0FBcUc7Z0JBQ3JHLHdEQUF3RDtnQkFDeEQsSUFBSSxRQUFRLElBQUksSUFBSSxDQUFDLHdCQUF3QixDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRTtvQkFDcEYsT0FBTyxDQUFDLElBQUksQ0FBQyw2RUFBNkUsQ0FBQyxDQUFDO29CQUM1RixPQUFPLEtBQUssQ0FBQztpQkFDZDtnQkFFRCxPQUFPLFFBQVEsQ0FBQzthQUNqQjtpQkFBTTtnQkFDTCxtREFBbUQ7Z0JBQ25ELE9BQU8sTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQywrQkFBK0IsRUFBRSxTQUFTLENBQUMsQ0FBQzthQUMxSDtRQUNILENBQUM7S0FBQTtJQUVTLHdCQUF3QixDQUFDLFNBQXNCO1FBQ3ZELHFGQUFxRjtRQUNyRixnRkFBZ0Y7UUFDaEYsMENBQTBDO1FBQzFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbkUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhY2UsIGFzc2VydCB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcblxuaW1wb3J0IHsgaXNFcXVhbCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBQbGFjZUNvbXBvbmVudCB9IGZyb20gJy4uL3BsYWNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBQbGFjZURlZmluaXRpb24gfSBmcm9tICcuLi9wbGFjZS1kZWZpbml0aW9uJztcbmltcG9ydCB7IFVybFNuYXBzaG90IH0gZnJvbSAnLi4vdXJsLXNuYXBzaG90JztcbmltcG9ydCB7IE5hdmlnYXRpb25TZXNzaW9uIH0gZnJvbSAnLi9zZXNzaW9uL25hdmlnYXRpb24tc2Vzc2lvbic7XG5cbi8qKlxuICogVGhpcyBjbGFzcyBoYW5kbGVzIHRoZSBsb2dpYyBhcm91bmQgY2FuRGVhY3RpdmF0ZSBmb3IgYSBnaXZlbiByb3V0ZXIgc3RhdGUgdHJhbnNpdGlvbi4gIEl0J3MgY29yZSByZXNwb25zaWJpbGl0aWVzIGFyZTpcbiAqIDEuIEVuc3VyZSB3ZSBvbmx5IGFzayB0aGUgY29tcG9uZW50IHRvIGRlYWN0aXZhdGUgb25jZSBvbiBhIGdpdmVuIG5hdmlnYXRpb24gY3ljbGUgKHNpbmNlIHZpc2l0IHNhbml0aXNhdGlvbiBjYW4gcmVzdWx0IGluIG11bHRpcGxlIHJvdW5kIHRyaXBzIHRvIHRocm91Z2ggdGhlIHJvdXRlci4pXG4gKiAyLiBFbnN1cmUgb25seSB0aGUgcHJpbWFyeSBwbGFjZSBjb21wb25lbnQgaXMgYXNrZWQgd2hlbiB0aGVyZSBhcmUgbmVzdGVkIHBsYWNlcy4gIFRoZSBwcmltYXJ5IGNvbXBvbmVudCBpcyB0aGUgb25lIGF0IHRoZSB0b3BcbiAqICAgIG9mIHRoZSByb3V0aW5nIGNoYW5nZSB0cmVlLlxuICogMy4gQXV0b21hdGljYWxseSBoYW5kbGUgc3RhbmRhcmQgaW50ZXJhY3Rpb24gc2NlbmFyaW9zIG9uIHRoZSBjb21wb25lbnRzIGJlaGFsZi5cbiAqL1xuZXhwb3J0IGNsYXNzIFBsYWNlQ29tcG9uZW50RGVhY3RpdmF0aW9uSGFuZGxlciB7XG5cbiAgcHJpdmF0ZSBjYW5EZWFjdGl2YXRlUHJvbWlzZTogUHJvbWlzZTxib29sZWFuIHwgVXJsU25hcHNob3Q+O1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGNvbXBvbmVudDogUGxhY2VDb21wb25lbnQsIHJlYWRvbmx5IG5hdmlnYXRpb25TZXNzaW9uOiBOYXZpZ2F0aW9uU2Vzc2lvbiwgcmVhZG9ubHkgaXNQcmltYXJ5Q29tcG9uZW50OiBib29sZWFuKSB7XG4gICAgYXNzZXJ0Lm5vdE5pbChjb21wb25lbnQpO1xuICB9XG5cbiAgZ2V0IHJvdXRlckludGVyYWN0aW9uQWRhcHRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5uYXZpZ2F0aW9uU2Vzc2lvbi5pbnRlcmFjdGlvblNlcnZpY2VBZGFwdGVyO1xuICB9XG5cbiAgZ2V0IHVybFNlcnZpY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMubmF2aWdhdGlvblNlc3Npb24udXJsU2VydmljZTtcbiAgfVxuXG4gIGdldCBwbGFjZURlZmluaXRpb24oKTpQbGFjZURlZmluaXRpb24ge1xuICAgIHJldHVybiB0aGlzLmNvbXBvbmVudC5wbGFjZURlZmluaXRpb247XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBhc3luYyBjYW5EZWFjdGl2YXRlKGN1cnJlbnRVcmw6IFVybFNuYXBzaG90LCBuZXh0U3RhdGU6IFVybFNuYXBzaG90KTogUHJvbWlzZTxib29sZWFuIHwgVXJsU25hcHNob3Q+IHtcbiAgICAvLyBXZSdsbCBnZXQgY2FsbGVkIG11bHRpcGxlIHRpbWVzIGlmIHRoZXJlJ3MgYW55IHBhcmFtZXRlciBzYW5pdGlzYXRpb24gc29cbiAgICAvLyB3ZSBhbHdheXMgcmV0dXJuIHRydWUgaWYgd2UgYWNjZXB0ZWQgcHJvbWlzZSBmcm9tIGEgcHJldmlvdXMgY3ljbGUgb2YgdGhlIGN1cnJlbnRcbiAgICAvLyBuYXZpZ2F0aW9uIHNlc3Npb24uXG4gICAgaWYgKCF0aGlzLmNhbkRlYWN0aXZhdGVQcm9taXNlKSB7XG4gICAgICAvLyBjb25zb2xlLmxvZyhgY3JlYXRpbmcgZGVhY3RpdmF0ZSBwcm9taXNlIGZvciAtPiAke3RoaXMuY29tcG9uZW50LmNvbnN0cnVjdG9yLm5hbWV9YCk7XG4gICAgICB0aGlzLmNhbkRlYWN0aXZhdGVQcm9taXNlID0gdGhpcy5jYW5EZWFjdGl2YXRlQ29tcG9uZW50KGN1cnJlbnRVcmwsIG5leHRTdGF0ZSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNhbkRlYWN0aXZhdGVQcm9taXNlO1xuICB9XG5cblxuICAvLyBAVHJhY2UoKVxuICBwcm90ZWN0ZWQgYXN5bmMgY2FuRGVhY3RpdmF0ZUNvbXBvbmVudChjdXJyZW50VXJsOiBVcmxTbmFwc2hvdCwgbmV4dFN0YXRlOiBVcmxTbmFwc2hvdCk6IFByb21pc2U8VXJsU25hcHNob3QgfCBib29sZWFuPiB7XG4gICAgLy8gQXV0b21hdGljYWxseSBjYW5jZWwgYW55IGFjdGl2ZSBhY3Rpdml0aWVzIGlmIHRoZSBuYXZpZ2F0aW9uIHNlc3Npb24gd2FzIHRyaWdnZXJlZCBieSB0aGUgYmFjayBidXR0b24uXG4gICAgLy8gSWYgd2UgaGFuZGxlZCBtb3JlIHRoYW4ganVzdCB0aGUgcG9wIHN0YXRlIHRoZW4gaXQgbGVhZHMgdG8gdGhlIFVJIGlnbm9yaW5nIGNsaWNrcyBhbmQganVzdCBjYW5jZWxsaW5nIHRoaW5ncyB3aGljaCBpcyBkZWVwbHkgZGlzY29uY2VydGluZy5cbiAgICBpZiAodGhpcy5uYXZpZ2F0aW9uU2Vzc2lvbi5pc1BvcFN0YXRlKSB7XG5cbiAgICAgIGlmICh0aGlzLmlzUHJpbWFyeUNvbXBvbmVudCAmJiB0aGlzLnJvdXRlckludGVyYWN0aW9uQWRhcHRlci5pc01vZGFsQWN0aXZlKCkpIHtcbiAgICAgICAgY29uc3Qgcm91dGVJZHMgPSB0aGlzLnVybFNlcnZpY2UuZ2V0QWN0aXZlSW50ZXJhY3Rpb25JZHNGcm9tVXJsKG5leHRTdGF0ZS51cmwpO1xuICAgICAgICBjb25zdCBjdXJyZW50SWRzID0gdGhpcy5yb3V0ZXJJbnRlcmFjdGlvbkFkYXB0ZXIuZ2V0QWN0aXZlSW50ZXJhY3Rpb25Db250ZXh0SWRzKCk7XG4gICAgICAgIGlmICghaXNFcXVhbChjdXJyZW50SWRzLCByb3V0ZUlkcykpIHsgLy8gd2h5IGFtIEkgY2hlY2tpbmcgdGhpcz8/Pz9cbiAgICAgICAgICBhd2FpdCB0aGlzLnJvdXRlckludGVyYWN0aW9uQWRhcHRlci5jYW5jZWxDdXJyZW50TW9kYWxJbnRlcmFjdGlvbigpO1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gY2hlY2sgaWYgdGhlIGNvbXBvbmVudCBoYXMgYW4gaW4gcGxhY2UgaW50ZXJhY3Rpb25cbiAgICAgICAgaWYgKHRoaXMucm91dGVySW50ZXJhY3Rpb25BZGFwdGVyLmlzQ29tcG9uZW50SW50ZXJhY3RpbmcodGhpcy5jb21wb25lbnQpKSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5yb3V0ZXJJbnRlcmFjdGlvbkFkYXB0ZXIuY2FuY2VsQ29tcG9uZW50SW50ZXJhY3Rpb24odGhpcy5jb21wb25lbnQpO1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5vIGludGVyYWN0aW9uIGluIHByb2dyZXNzLCBzbyBhc2sgdGhlIGNvbXBvbmVudCAuXG4gICAgLy8gVGhpcyBtYXkgc3RhcnQgYW4gaW50ZXJhY3Rpb24sIGhlbmNlIGNoZWNraW5nIHRoZSBpbnRlcmFjdGlvbiBjb250ZXh0IGJlZm9yZSBub3cuIEkuZS4gaWYgdGhlIHBsYWNlIHBvcHMgdXAgdGhlIGRpYWxvZywgYW5kXG4gICAgLy8gdGhlIHVzZXIgY2xpY2tzIGJhY2sgYWdhaW4sIHdlJ2xsIHJlLWVudGVyIGhlcmUgYW5kIGdvIGJhbmcgd2hlbiB0aGUgY29tcG9uZW50IHRyaWVzIHRvIG9wZW4gYW5vdGhlciBkaWFsb2cuXG4gICAgaWYgKHRoaXMuaXNHb2luZ1RvQURpZmZlcmVudFBsYWNlKG5leHRTdGF0ZSkpIHtcbiAgICAgIGNvbnN0IGNhbkxlYXZlID0gYXdhaXQgdGhpcy5jb21wb25lbnQuX2NhbkxlYXZlUGxhY2UodGhpcy5uYXZpZ2F0aW9uU2Vzc2lvbi5jYW5EZWFjdGl2YXRlSW50ZXJhY3Rpb25Db250ZXh0KTtcbiAgICAgIC8vIFRoZSBjb21wb25lbnQgaGFzIGFuIGFjdGl2ZSBpbnRlcmFjdGlvbiBidXQgbm8gZGVhY3RpdmF0aW9uIGhvb2suICBSYXRoZXIgdGhhbiBndWVzc2luZyB3aGF0IHRvIGRvXG4gICAgICAvLyB3ZSdsbCBqdXN0IGNhbmNlbCB0aGUgbmF2aWdhdGlvbiBhbmQgcHJpbnQgYSB3YXJuaW5nLlxuICAgICAgaWYgKGNhbkxlYXZlICYmIHRoaXMucm91dGVySW50ZXJhY3Rpb25BZGFwdGVyLmlzQ29tcG9uZW50SW50ZXJhY3RpbmcodGhpcy5jb21wb25lbnQpKSB7XG4gICAgICAgIGNvbnNvbGUud2FybignUm91dGUgY2hhbmdlZCB3aGlsZSBjb21wb25lbnQgaGFzIGFjdGl2ZSBpbnRlcmFjdGlvbiwgY2FuY2VsbGluZyBuYXZpZ2F0aW9uJyk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNhbkxlYXZlO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBlaXRoZXIgYW4gaW50ZXJhY3Rpb24gb3IgdmlzaXQgcGFyYW1ldGVyIGNoYW5nZS5cbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmNvbXBvbmVudC5fY2FuQ2hhbmdlUm91dGVQYXJhbWV0ZXJzKHRoaXMubmF2aWdhdGlvblNlc3Npb24uY2FuRGVhY3RpdmF0ZUludGVyYWN0aW9uQ29udGV4dCwgbmV4dFN0YXRlKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNHb2luZ1RvQURpZmZlcmVudFBsYWNlKG5leHRTdGF0ZTogVXJsU25hcHNob3QpIHtcbiAgICAvLyBCZWNhdXNlIHBsYWNlcyB3aXRoIGEgcm91dGUtaWQgY292ZXIgdHdvIHJvdXRlIHNlZ21lbnRzIHdlIGdldCBhc2tlZCB0byBkZWFjdGl2YXRlXG4gICAgLy8gaWYgdGhlIHJvdXRlIGlkIGlzIGFkZGVkIG9yIHJlbW92ZWQuICBTbyBpZiBvdXIgcGF0aCBpcyBzdGlsbCBwcmVzZW50IHRoZSB1cmxcbiAgICAvLyB0aGVuIHdlIHNob3VsZG4ndCBkZWFjdGl2YXRlIHRoZSBwbGFjZS5cbiAgICByZXR1cm4gIW5leHRTdGF0ZS5pbmNsdWRlc1BhdGhPZih0aGlzLmNvbXBvbmVudC5wbGFjZURlZmluaXRpb24pO1xuICB9XG59XG4iXX0=
@@ -1,46 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { EventCleanUpSession } from './event-clean-up-session';
3
- /**
4
- * The sequence of router events are:
5
- * NavigationError -> url = url of navigation link
6
- * NavigationEnd
7
- * onPopState url = Our currentUrl sans and interaction query params
8
- * NavigationCancel url == same as above.
9
- */
10
- export class WaitUntilLeavingInteractionTransitionCancelled extends EventCleanUpSession {
11
- constructor(context, startingUrl, locationChangeTriggerUrl) {
12
- super(context, startingUrl);
13
- this.locationChangeTriggerUrl = locationChangeTriggerUrl;
14
- this.isPopState = false;
15
- this.firstCancelHandled = false;
16
- this.popStateHandled = false;
17
- this.debugPropertyKeys = ['idle', 'startingUrl', 'poppedHistoryUrl', 'locationChangeTriggerUrl', 'popStateEventUrl', 'firstCancelHandled', 'popStateHandled'];
18
- }
19
- // @Trace()
20
- onRouterStarted(event) {
21
- this.ignore(event);
22
- }
23
- // @Trace()
24
- onRouterCancelled(event) {
25
- this.repairBrowserHistoryAndUrlAfterGuardCancellation(this.locationChangeTriggerUrl, this.startingUrl);
26
- this.context.finishRoutingSession();
27
- }
28
- // @Trace()
29
- onRouterEnd(event) {
30
- this.ignore(event);
31
- }
32
- // @Trace()
33
- onRouterError(event) {
34
- this.ignore(event);
35
- }
36
- // @Trace()
37
- onPopState(event) {
38
- this.ignore(event);
39
- }
40
- canDeactivatePlace(component, currentUrl, nextUrl) {
41
- return __awaiter(this, void 0, void 0, function* () {
42
- return false;
43
- });
44
- }
45
- }
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FpdC11bnRpbC1sZWF2aW5nLWludGVyYWN0aW9uLXRyYW5zaXRpb24tY2FuY2VsbGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvcGxhY2UvbmF2aWdhdGlvbi9zZXNzaW9uL2V2ZW50LWNsZWFudXAvd2FpdC11bnRpbC1sZWF2aW5nLWludGVyYWN0aW9uLXRyYW5zaXRpb24tY2FuY2VsbGVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFRQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUvRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLE9BQU8sOENBQStDLFNBQVEsbUJBQW1CO0lBUXJGLFlBQVksT0FBMEIsRUFDMUIsV0FBbUIsRUFDVix3QkFBZ0M7UUFDbkQsS0FBSyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztRQURULDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBUTtRQVI1QyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQzVCLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUMzQixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUV4QixzQkFBaUIsR0FBRyxDQUFDLE1BQU0sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsMEJBQTBCLEVBQUUsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQU16SixDQUFDO0lBRUQsV0FBVztJQUNYLGVBQWUsQ0FBQyxLQUFzQjtRQUNwQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxXQUFXO0lBQ1gsaUJBQWlCLENBQUMsS0FBdUI7UUFDdkMsSUFBSSxDQUFDLGdEQUFnRCxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdkcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxXQUFXO0lBQ1gsV0FBVyxDQUFDLEtBQW9CO1FBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELFdBQVc7SUFDWCxhQUFhLENBQUMsS0FBc0I7UUFDbEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsV0FBVztJQUNYLFVBQVUsQ0FBQyxLQUFzQjtRQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFSyxrQkFBa0IsQ0FBQyxTQUF5QixFQUFFLFVBQXVCLEVBQUUsT0FBb0I7O1lBQy9GLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztLQUFBO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOYXZpZ2F0aW9uQ2FuY2VsLCBOYXZpZ2F0aW9uRW5kLCBOYXZpZ2F0aW9uRXJyb3IsIE5hdmlnYXRpb25TdGFydCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBMb2dnZXIsIFRyYWNlIH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHsgUGxhY2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9wbGFjZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgVXJsU25hcHNob3QgfSBmcm9tICcuLi8uLi8uLi91cmwtc25hcHNob3QnO1xuaW1wb3J0IHsgU3luY2hyb25pc2VJbnRlcmFjdGlvbkNvbnRleHRJZHNXaXRoUm91dGUgfSBmcm9tICcuLi9pbnRlcmFjdGlvbnMvc3luY2hyb25pc2UtaW50ZXJhY3Rpb24tY29udGV4dC1pZHMtd2l0aC1yb3V0ZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uQ29udGV4dCB9IGZyb20gJy4uL25hdmlnYXRpb24tY29udGV4dCc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2Vzc2lvbiB9IGZyb20gJy4uL25hdmlnYXRpb24tc2Vzc2lvbic7XG5pbXBvcnQgeyBsYW5nIH0gZnJvbSAnQGNvb2xvbi90eXBlc2NyaXB0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyBFdmVudENsZWFuVXBTZXNzaW9uIH0gZnJvbSAnLi9ldmVudC1jbGVhbi11cC1zZXNzaW9uJztcblxuLyoqXG4gKiBUaGUgc2VxdWVuY2Ugb2Ygcm91dGVyIGV2ZW50cyBhcmU6XG4gKiBOYXZpZ2F0aW9uRXJyb3IgLT4gdXJsID0gdXJsIG9mIG5hdmlnYXRpb24gbGlua1xuICogTmF2aWdhdGlvbkVuZFxuICogb25Qb3BTdGF0ZSB1cmwgPSBPdXIgY3VycmVudFVybCBzYW5zIGFuZCBpbnRlcmFjdGlvbiBxdWVyeSBwYXJhbXNcbiAqIE5hdmlnYXRpb25DYW5jZWwgdXJsID09IHNhbWUgYXMgYWJvdmUuXG4gKi9cbmV4cG9ydCBjbGFzcyBXYWl0VW50aWxMZWF2aW5nSW50ZXJhY3Rpb25UcmFuc2l0aW9uQ2FuY2VsbGVkIGV4dGVuZHMgRXZlbnRDbGVhblVwU2Vzc2lvbiB7XG5cbiAgcmVhZG9ubHkgaXNQb3BTdGF0ZSA9IGZhbHNlO1xuICBmaXJzdENhbmNlbEhhbmRsZWQgPSBmYWxzZTtcbiAgcG9wU3RhdGVIYW5kbGVkID0gZmFsc2U7XG4gIHBvcFN0YXRlRXZlbnRVcmw6IHN0cmluZztcbiAgZGVidWdQcm9wZXJ0eUtleXMgPSBbJ2lkbGUnLCAnc3RhcnRpbmdVcmwnLCAncG9wcGVkSGlzdG9yeVVybCcsICdsb2NhdGlvbkNoYW5nZVRyaWdnZXJVcmwnLCAncG9wU3RhdGVFdmVudFVybCcsICdmaXJzdENhbmNlbEhhbmRsZWQnLCAncG9wU3RhdGVIYW5kbGVkJ107XG5cbiAgY29uc3RydWN0b3IoY29udGV4dDogTmF2aWdhdGlvbkNvbnRleHQsXG4gICAgICAgICAgICAgIHN0YXJ0aW5nVXJsOiBzdHJpbmcsXG4gICAgICAgICAgICAgIHJlYWRvbmx5IGxvY2F0aW9uQ2hhbmdlVHJpZ2dlclVybDogc3RyaW5nKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RhcnRpbmdVcmwpO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgb25Sb3V0ZXJTdGFydGVkKGV2ZW50OiBOYXZpZ2F0aW9uU3RhcnQpOiB2b2lkIHtcbiAgICB0aGlzLmlnbm9yZShldmVudCk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBvblJvdXRlckNhbmNlbGxlZChldmVudDogTmF2aWdhdGlvbkNhbmNlbCk6IHZvaWQge1xuICAgIHRoaXMucmVwYWlyQnJvd3Nlckhpc3RvcnlBbmRVcmxBZnRlckd1YXJkQ2FuY2VsbGF0aW9uKHRoaXMubG9jYXRpb25DaGFuZ2VUcmlnZ2VyVXJsLCB0aGlzLnN0YXJ0aW5nVXJsKTtcbiAgICB0aGlzLmNvbnRleHQuZmluaXNoUm91dGluZ1Nlc3Npb24oKTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIG9uUm91dGVyRW5kKGV2ZW50OiBOYXZpZ2F0aW9uRW5kKTogdm9pZCB7XG4gICAgdGhpcy5pZ25vcmUoZXZlbnQpO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgb25Sb3V0ZXJFcnJvcihldmVudDogTmF2aWdhdGlvbkVycm9yKTogdm9pZCB7XG4gICAgdGhpcy5pZ25vcmUoZXZlbnQpO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgb25Qb3BTdGF0ZShldmVudDogTmF2aWdhdGlvblN0YXJ0KTogdm9pZCB7XG4gICAgdGhpcy5pZ25vcmUoZXZlbnQpO1xuICB9XG5cbiAgYXN5bmMgY2FuRGVhY3RpdmF0ZVBsYWNlKGNvbXBvbmVudDogUGxhY2VDb21wb25lbnQsIGN1cnJlbnRVcmw6IFVybFNuYXBzaG90LCBuZXh0VXJsOiBVcmxTbmFwc2hvdCk6IFByb21pc2U8Ym9vbGVhbiB8IFVybFNuYXBzaG90PiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iXX0=
@@ -1,159 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { EventCleanUpSession } from './event-clean-up-session';
3
- /**
4
- * This state handles the scenario where a link navigation triggered an interaction and the user clicked back a to cancel it.
5
- * The routing event sequence is different depending on the link that was clicked.
6
- *
7
- * NOTE: In angular prior to 10 the sequence of routing events was different depending on the initial link that was clicked.
8
- * This class used have ugle if/else code to handle it and a not that it should be split into sub states.
9
- * During the update to angular 10 I did this (as the tests for this scenario were failings). After doing so
10
- * it appears that angular now behaves the same in both cases. But rather that revert the changes I've left the
11
- * sub-state handling in in case it ever comes back.
12
- */
13
- export class WaitUntilLinkTriggeredNavigationInteractionCancellationTypeDetermined extends EventCleanUpSession {
14
- constructor(context, startingUrl, clickedLinkUrl) {
15
- super(context, startingUrl);
16
- this.clickedLinkUrl = clickedLinkUrl;
17
- this.isPopState = false;
18
- this.clickedLinkMatchedBackButtonUrl = false;
19
- this.debugPropertyKeys = ['idle', 'startingUrl', 'clickedLinkUrl', 'firstCancelEventUrl', 'clickedLinkMatchedBackButtonUrl', 'popStateEventUrl'];
20
- }
21
- // @Trace()
22
- onRouterStarted(event) {
23
- this.ignore(event);
24
- }
25
- // @Trace()
26
- onRouterCancelled(event) {
27
- if (event.url === this.clickedLinkUrl) {
28
- this.context.transitionTo(new WaitForLinkSameAsBackToPlayOut(this.context, this.startingUrl, this.clickedLinkUrl));
29
- }
30
- else {
31
- this.context.transitionTo(new WaitForLinkDifferentFromBackToPlayOut(this.context, this.startingUrl, this.clickedLinkUrl));
32
- }
33
- }
34
- canDeactivatePlace(component, currentUrl, nextUrl) {
35
- return __awaiter(this, void 0, void 0, function* () {
36
- return false;
37
- });
38
- }
39
- }
40
- class WaitForLinkSameAsBackToPlayOut extends EventCleanUpSession {
41
- constructor(context, startingUrl, clickedLinkUrl) {
42
- super(context, startingUrl);
43
- this.clickedLinkUrl = clickedLinkUrl;
44
- this.isPopState = false;
45
- this.debugPropertyKeys = ['idle', 'startingUrl', 'clickedLinkUrl', 'popStateEventUrl'];
46
- }
47
- // @Trace()
48
- onRouterEnd(event) {
49
- this.ignore(event);
50
- }
51
- // @Trace()
52
- onRouterError(event) {
53
- this.ignore(event);
54
- }
55
- // @Trace()
56
- onPopState(event) {
57
- this.popStateEventUrl = event.url;
58
- this.ignore(event);
59
- }
60
- // @Trace()
61
- onRouterCancelled(event) {
62
- if (this.popStateEventUrl) {
63
- this.finaliseRouting();
64
- }
65
- }
66
- // @Trace()
67
- finaliseRouting() {
68
- this.repairBrowserHistoryAndUrlAfterGuardCancellation(this.clickedLinkUrl, this.startingUrl);
69
- return this.context.finishRoutingSession();
70
- }
71
- canDeactivatePlace(component, currentUrl, nextUrl) {
72
- return __awaiter(this, void 0, void 0, function* () {
73
- return false;
74
- });
75
- }
76
- }
77
- // See the note above. This class is identical to the previous but I've left it here in case angular decides to
78
- // route differently in this scenario going forward.
79
- class WaitForLinkDifferentFromBackToPlayOut extends EventCleanUpSession {
80
- constructor(context, startingUrl, clickedLinkUrl) {
81
- super(context, startingUrl);
82
- this.clickedLinkUrl = clickedLinkUrl;
83
- this.isPopState = false;
84
- this.debugPropertyKeys = ['idle', 'startingUrl', 'clickedLinkUrl', 'popStateEventUrl'];
85
- }
86
- // @Trace()
87
- onRouterEnd(event) {
88
- this.ignore(event);
89
- }
90
- // @Trace()
91
- onRouterError(event) {
92
- this.ignore(event);
93
- }
94
- // @Trace()
95
- onPopState(event) {
96
- this.popStateEventUrl = event.url;
97
- this.ignore(event);
98
- }
99
- // @Trace()
100
- onRouterCancelled(event) {
101
- if (this.popStateEventUrl) {
102
- this.finaliseRouting();
103
- }
104
- }
105
- // @Trace()
106
- finaliseRouting() {
107
- this.repairBrowserHistoryAndUrlAfterGuardCancellation(this.clickedLinkUrl, this.startingUrl);
108
- return this.context.finishRoutingSession();
109
- }
110
- canDeactivatePlace(component, currentUrl, nextUrl) {
111
- return __awaiter(this, void 0, void 0, function* () {
112
- return false;
113
- });
114
- }
115
- }
116
- //
117
- // ### Router State Transition: null -> Navigating(startingUrl: /activities/dialogs;l=en, urlAfterRedirects: undefined)
118
- // ### ###### Router Event: NavigationStart
119
- // NavigationStart(id: 6, url: '/home')
120
- // NavigationStart {id: 6, url: "/home", navigationTrigger: "imperative", restoredState: null}
121
- // logger.js:39 Ignoring router event: NavigationStart -> /home :: Navigating(startingUrl: /activities/dialogs;l=en, urlAfterRedirects: undefined)
122
- // ### ###### Router Event: RoutesRecognized
123
- // RoutesRecognized(id: 6, url: '/home', urlAfterRedirects: '/home', state: Route(url:'', path:'') { Route(url:'home', path:'home') } )
124
- // RoutesRecognized {id: 6, url: "/home", urlAfterRedirects: "/home", state: RouterStateSnapshot}
125
- // ###### Router Event: GuardsCheckStart
126
- // GuardsCheckStart(id: 6, url: '/home', urlAfterRedirects: '/home', state: Route(url:'', path:'') { Route(url:'home', path:'home') } )
127
- // GuardsCheckStart {id: 6, url: "/home", urlAfterRedirects: "/home", state: RouterStateSnapshot}
128
- // logger.js:39 back button pressed during navigation session interaction promise
129
- // logger.js:39 cancelling current navigation activity..
130
- // logger.js:39 ### Router State Transition: Navigating(startingUrl: /activities/dialogs;l=en, urlAfterRedirects: undefined) -> WaitUntilLinkTriggeredNavigationInteractionCancellationEventsFinish(idle: undefined, startingUrl: /activities/dialogs;l=en, clickedLinkUrl: /home, firstCancelEventUrl: undefined, clickedLinkMatchedBackButtonUrl: false, popStateEventUrl: undefined)
131
- // ###### Router Event: GuardsCheckEnd
132
- // GuardsCheckEnd(id: 6, url: '/home', urlAfterRedirects: '/home', state: Route(url:'', path:'') { Route(url:'home', path:'home') } , shouldActivate: false)
133
- // GuardsCheckEnd {id: 6, url: "/home", urlAfterRedirects: "/home", state: RouterStateSnapshot, shouldActivate: false}
134
- // ###### Router Event: NavigationCancel
135
- // NavigationCancel(id: 6, url: '/home')
136
- // NavigationCancel {id: 6, url: "/home", reason: ""}
137
- // logger.js:54 WaitUntilLinkTriggeredNavigationInteractionCancellationEventsFinish.onRouterCancelled
138
- // logger.js:19 args NavigationCancel {id: 6, url: "/home", reason: ""}
139
- // logger.js:39 Ignoring router event: NavigationCancel -> /home :: WaitUntilLinkTriggeredNavigationInteractionCancellationEventsFinish(idle: undefined, startingUrl: /activities/dialogs;l=en, clickedLinkUrl: /home, firstCancelEventUrl: /home, clickedLinkMatchedBackButtonUrl: true, popStateEventUrl: undefined)
140
- // logger.js:28 <-- WaitUntilLinkTriggeredNavigationInteractionCancellationEventsFinish.onRouterCancelled undefined
141
- // logger.js:54 WaitUntilLinkTriggeredNavigationInteractionCancellationEventsFinish.onRouterEnd
142
- // logger.js:19 args NavigationEnd {id: -1, url: "", urlAfterRedirects: ""}
143
- // logger.js:54 WaitUntilLinkTriggeredNavigationInteractionCancellationEventsFinish.finaliseRouting
144
- // logger.js:39 WORK-AROUND: Updating browser location after pop state - see angular issue #13586
145
- // navigation-session.ts:129 replacing /activities/dialogs;l=en with /home
146
- // navigation-session.ts:131 pushing /activities/dialogs;l=en back onto the history.
147
- // ????? place-router.ts:281 ### Router Session Finished (was WaitUntilLinkTriggeredNavigationInteractionCancellationEventsFinish(idle: undefined, startingUrl: /activities/dialogs;l=en, clickedLinkUrl: /home, firstCancelEventUrl: /home, clickedLinkMatchedBackButtonUrl: true, popStateEventUrl: undefined))
148
- // logger.js:28 <-- WaitUntilLinkTriggeredNavigationInteractionCancellationEventsFinish.finaliseRouting undefined
149
- // logger.js:28 <-- WaitUntilLinkTriggeredNavigationInteractionCancellationEventsFinish.onRouterEnd undefined
150
- // ###### Router Event: NavigationStart
151
- // NavigationStart(id: 7, url: '/home')
152
- // NavigationStart {id: 7, url: "/home", navigationTrigger: "popstate", restoredState: {…}}
153
- // logger.js:39 ### Router State Transition: null -> PopStateNavigation(startingUrl: /activities/dialogs;l=en, poppedHistoryUrl: /home)
154
- // ###### Router Event: RoutesRecognized
155
- // RoutesRecognized(id: 7, url: '/home', urlAfterRedirects: '/home', state: Route(url:'', path:'') { Route(url:'home', path:'home') } )
156
- // RoutesRecognized {id: 7, url: "/home", urlAfterRedirects: "/home", state: RouterStateSnapshot}
157
- // ###### Router Event: GuardsCheckStart
158
- // GuardsCheckStart(id: 7, url: '/home', urlAfterRedirects: '/home', state: Route(url:'', path:'') { Route(url:'home', path:'home') } )
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FpdC11bnRpbC1saW5rLXRyaWdnZXJlZC1uYXZpZ2F0aW9uLWludGVyYWN0aW9uLWNhbmNlbGF0aW9uLXR5cGUtZGV0ZXJtaW5lZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL3BsYWNlL25hdmlnYXRpb24vc2Vzc2lvbi9ldmVudC1jbGVhbnVwL3dhaXQtdW50aWwtbGluay10cmlnZ2VyZWQtbmF2aWdhdGlvbi1pbnRlcmFjdGlvbi1jYW5jZWxhdGlvbi10eXBlLWRldGVybWluZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUtBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRS9EOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sT0FBTyxxRUFBc0UsU0FBUSxtQkFBbUI7SUFRNUcsWUFBWSxPQUEwQixFQUMxQixXQUFtQixFQUNWLGNBQXNCO1FBQ3pDLEtBQUssQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFEVCxtQkFBYyxHQUFkLGNBQWMsQ0FBUTtRQVJsQyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBRzVCLG9DQUErQixHQUFHLEtBQUssQ0FBQztRQUN4QyxzQkFBaUIsR0FBRyxDQUFDLE1BQU0sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUsaUNBQWlDLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQU01SSxDQUFDO0lBRUQsV0FBVztJQUNYLGVBQWUsQ0FBQyxLQUFzQjtRQUNwQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxXQUFXO0lBQ1gsaUJBQWlCLENBQUMsS0FBdUI7UUFDdkMsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDckMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENB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ZXNDb250ZW50IjpbImltcG9ydCB7IE5hdmlnYXRpb25DYW5jZWwsIE5hdmlnYXRpb25FbmQsIE5hdmlnYXRpb25FcnJvciwgTmF2aWdhdGlvblN0YXJ0IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFRyYWNlIH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHsgUGxhY2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9wbGFjZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgVXJsU25hcHNob3QgfSBmcm9tICcuLi8uLi8uLi91cmwtc25hcHNob3QnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkNvbnRleHQgfSBmcm9tICcuLi9uYXZpZ2F0aW9uLWNvbnRleHQnO1xuaW1wb3J0IHsgRXZlbnRDbGVhblVwU2Vzc2lvbiB9IGZyb20gJy4vZXZlbnQtY2xlYW4tdXAtc2Vzc2lvbic7XG5cbi8qKlxuICogVGhpcyBzdGF0ZSBoYW5kbGVzIHRoZSBzY2VuYXJpbyB3aGVyZSBhIGxpbmsgbmF2aWdhdGlvbiB0cmlnZ2VyZWQgYW4gaW50ZXJhY3Rpb24gYW5kIHRoZSB1c2VyIGNsaWNrZWQgYmFjayBhIHRvIGNhbmNlbCBpdC5cbiAqIFRoZSByb3V0aW5nIGV2ZW50IHNlcXVlbmNlIGlzIGRpZmZlcmVudCBkZXBlbmRpbmcgb24gdGhlIGxpbmsgdGhhdCB3YXMgY2xpY2tlZC5cbiAqXG4gKiBOT1RFOiBJbiBhbmd1bGFyIHByaW9yIHRvIDEwIHRoZSBzZXF1ZW5jZSBvZiByb3V0aW5nIGV2ZW50cyB3YXMgZGlmZmVyZW50IGRlcGVuZGluZyBvbiB0aGUgaW5pdGlhbCBsaW5rIHRoYXQgd2FzIGNsaWNrZWQuXG4gKiAgICAgICBUaGlzIGNsYXNzIHVzZWQgaGF2ZSB1Z2xlIGlmL2Vsc2UgY29kZSB0byBoYW5kbGUgaXQgYW5kIGEgbm90IHRoYXQgaXQgc2hvdWxkIGJlIHNwbGl0IGludG8gc3ViIHN0YXRlcy5cbiAqICAgICAgIER1cmluZyB0aGUgdXBkYXRlIHRvIGFuZ3VsYXIgMTAgSSBkaWQgdGhpcyAoYXMgdGhlIHRlc3RzIGZvciB0aGlzIHNjZW5hcmlvIHdlcmUgZmFpbGluZ3MpLiBBZnRlciBkb2luZyBzb1xuICogICAgICAgaXQgYXBwZWFycyB0aGF0IGFuZ3VsYXIgbm93IGJlaGF2ZXMgdGhlIHNhbWUgaW4gYm90aCBjYXNlcy4gQnV0IHJhdGhlciB0aGF0IHJldmVydCB0aGUgY2hhbmdlcyBJJ3ZlIGxlZnQgdGhlXG4gKiAgICAgICBzdWItc3RhdGUgaGFuZGxpbmcgaW4gaW4gY2FzZSBpdCBldmVyIGNvbWVzIGJhY2suXG4gKi9cbmV4cG9ydCBjbGFzcyBXYWl0VW50aWxMaW5rVHJpZ2dlcmVkTmF2aWdhdGlvbkludGVyYWN0aW9uQ2FuY2VsbGF0aW9uVHlwZURldGVybWluZWQgZXh0ZW5kcyBFdmVudENsZWFuVXBTZXNzaW9uIHtcblxuICByZWFkb25seSBpc1BvcFN0YXRlID0gZmFsc2U7XG4gIGZpcnN0Q2FuY2VsRXZlbnRVcmw6IHN0cmluZztcbiAgcG9wU3RhdGVFdmVudFVybDogc3RyaW5nO1xuICBjbGlja2VkTGlua01hdGNoZWRCYWNrQnV0dG9uVXJsID0gZmFsc2U7XG4gIGRlYnVnUHJvcGVydHlLZXlzID0gWydpZGxlJywgJ3N0YXJ0aW5nVXJsJywgJ2NsaWNrZWRMaW5rVXJsJywgJ2ZpcnN0Q2FuY2VsRXZlbnRVcmwnLCAnY2xpY2tlZExpbmtNYXRjaGVkQmFja0J1dHRvblVybCcsICdwb3BTdGF0ZUV2ZW50VXJsJ107XG5cbiAgY29uc3RydWN0b3IoY29udGV4dDogTmF2aWdhdGlvbkNvbnRleHQsXG4gICAgICAgICAgICAgIHN0YXJ0aW5nVXJsOiBzdHJpbmcsXG4gICAgICAgICAgICAgIHJlYWRvbmx5IGNsaWNrZWRMaW5rVXJsOiBzdHJpbmcpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdGFydGluZ1VybCk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBvblJvdXRlclN0YXJ0ZWQoZXZlbnQ6IE5hdmlnYXRpb25TdGFydCk6IHZvaWQge1xuICAgIHRoaXMuaWdub3JlKGV2ZW50KTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIG9uUm91dGVyQ2FuY2VsbGVkKGV2ZW50OiBOYXZpZ2F0aW9uQ2FuY2VsKTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LnVybCA9PT0gdGhpcy5jbGlja2VkTGlua1VybCkge1xuICAgICAgdGhpcy5jb250ZXh0LnRyYW5zaXRpb25UbyhuZXcgV2FpdEZvckxpbmtTYW1lQXNCYWNrVG9QbGF5T3V0KHRoaXMuY29udGV4dCwgdGhpcy5zdGFydGluZ1VybCwgdGhpcy5jbGlja2VkTGlua1VybCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvbnRleHQudHJhbnNpdGlvblRvKG5ldyBXYWl0Rm9yTGlua0RpZmZlcmVudEZyb21CYWNrVG9QbGF5T3V0KHRoaXMuY29udGV4dCwgdGhpcy5zdGFydGluZ1VybCwgdGhpcy5jbGlja2VkTGlua1VybCkpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNhbkRlYWN0aXZhdGVQbGFjZShjb21wb25lbnQ6IFBsYWNlQ29tcG9uZW50LCBjdXJyZW50VXJsOiBVcmxTbmFwc2hvdCwgbmV4dFVybDogVXJsU25hcHNob3QpOiBQcm9taXNlPGJvb2xlYW4gfCBVcmxTbmFwc2hvdD4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5jbGFzcyBXYWl0Rm9yTGlua1NhbWVBc0JhY2tUb1BsYXlPdXQgZXh0ZW5kcyBFdmVudENsZWFuVXBTZXNzaW9uIHtcbiAgcmVhZG9ubHkgaXNQb3BTdGF0ZSA9IGZhbHNlO1xuICBwb3BTdGF0ZUV2ZW50VXJsOiBzdHJpbmc7XG4gIGRlYnVnUHJvcGVydHlLZXlzID0gWydpZGxlJywgJ3N0YXJ0aW5nVXJsJywgJ2NsaWNrZWRMaW5rVXJsJywgJ3BvcFN0YXRlRXZlbnRVcmwnXTtcblxuICBjb25zdHJ1Y3Rvcihjb250ZXh0OiBOYXZpZ2F0aW9uQ29udGV4dCxcbiAgICAgICAgICAgICAgc3RhcnRpbmdVcmw6IHN0cmluZyxcbiAgICAgICAgICAgICAgcmVhZG9ubHkgY2xpY2tlZExpbmtVcmw6IHN0cmluZykge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0YXJ0aW5nVXJsKTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIG9uUm91dGVyRW5kKGV2ZW50OiBOYXZpZ2F0aW9uRW5kKTogdm9pZCB7XG4gICAgdGhpcy5pZ25vcmUoZXZlbnQpO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgb25Sb3V0ZXJFcnJvcihldmVudDogTmF2aWdhdGlvbkVycm9yKTogdm9pZCB7XG4gICAgdGhpcy5pZ25vcmUoZXZlbnQpO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgb25Qb3BTdGF0ZShldmVudDogTmF2aWdhdGlvblN0YXJ0KTogdm9pZCB7XG4gICAgdGhpcy5wb3BTdGF0ZUV2ZW50VXJsID0gZXZlbnQudXJsO1xuICAgIHRoaXMuaWdub3JlKGV2ZW50KTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIG9uUm91dGVyQ2FuY2VsbGVkKGV2ZW50OiBOYXZpZ2F0aW9uQ2FuY2VsKSB7XG4gICAgaWYgKHRoaXMucG9wU3RhdGVFdmVudFVybCkge1xuICAgICAgdGhpcy5maW5hbGlzZVJvdXRpbmcoKTtcbiAgICB9XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBmaW5hbGlzZVJvdXRpbmcoKSB7XG4gICAgdGhpcy5yZXBhaXJCcm93c2VySGlzdG9yeUFuZFVybEFmdGVyR3VhcmRDYW5jZWxsYXRpb24odGhpcy5jbGlja2VkTGlua1VybCwgdGhpcy5zdGFydGluZ1VybCk7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dC5maW5pc2hSb3V0aW5nU2Vzc2lvbigpO1xuICB9XG5cblxuICBhc3luYyBjYW5EZWFjdGl2YXRlUGxhY2UoY29tcG9uZW50OiBQbGFjZUNvbXBvbmVudCwgY3VycmVudFVybDogVXJsU25hcHNob3QsIG5leHRVcmw6IFVybFNuYXBzaG90KTogUHJvbWlzZTxib29sZWFuIHwgVXJsU25hcHNob3Q+IHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxufVxuXG4vLyBTZWUgdGhlIG5vdGUgYWJvdmUuICBUaGlzIGNsYXNzIGlzIGlkZW50aWNhbCB0byB0aGUgcHJldmlvdXMgYnV0IEkndmUgbGVmdCBpdCBoZXJlIGluIGNhc2UgYW5ndWxhciBkZWNpZGVzIHRvXG4vLyByb3V0ZSBkaWZmZXJlbnRseSBpbiB0aGlzIHNjZW5hcmlvIGdvaW5nIGZvcndhcmQuXG5jbGFzcyBXYWl0Rm9yTGlua0RpZmZlcmVudEZyb21CYWNrVG9QbGF5T3V0IGV4dGVuZHMgRXZlbnRDbGVhblVwU2Vzc2lvbiB7XG4gIHJlYWRvbmx5IGlzUG9wU3RhdGUgPSBmYWxzZTtcbiAgcG9wU3RhdGVFdmVudFVybDogc3RyaW5nO1xuICBkZWJ1Z1Byb3BlcnR5S2V5cyA9IFsnaWRsZScsICdzdGFydGluZ1VybCcsICdjbGlja2VkTGlua1VybCcsICdwb3BTdGF0ZUV2ZW50VXJsJ107XG5cbiAgY29uc3RydWN0b3IoY29udGV4dDogTmF2aWdhdGlvbkNvbnRleHQsXG4gICAgICAgICAgICAgIHN0YXJ0aW5nVXJsOiBzdHJpbmcsXG4gICAgICAgICAgICAgIHJlYWRvbmx5IGNsaWNrZWRMaW5rVXJsOiBzdHJpbmcpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdGFydGluZ1VybCk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBvblJvdXRlckVuZChldmVudDogTmF2aWdhdGlvbkVuZCk6IHZvaWQge1xuICAgIHRoaXMuaWdub3JlKGV2ZW50KTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIG9uUm91dGVyRXJyb3IoZXZlbnQ6IE5hdmlnYXRpb25FcnJvcik6IHZvaWQge1xuICAgIHRoaXMuaWdub3JlKGV2ZW50KTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIG9uUG9wU3RhdGUoZXZlbnQ6IE5hdmlnYXRpb25TdGFydCk6IHZvaWQge1xuICAgIHRoaXMucG9wU3RhdGVFdmVudFVybCA9IGV2ZW50LnVybDtcbiAgICB0aGlzLmlnbm9yZShldmVudCk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBvblJvdXRlckNhbmNlbGxlZChldmVudDogTmF2aWdhdGlvbkNhbmNlbCkge1xuICAgIGlmICh0aGlzLnBvcFN0YXRlRXZlbnRVcmwpIHtcbiAgICAgIHRoaXMuZmluYWxpc2VSb3V0aW5nKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgZmluYWxpc2VSb3V0aW5nKCkge1xuICAgIHRoaXMucmVwYWlyQnJvd3Nlckhpc3RvcnlBbmRVcmxBZnRlckd1YXJkQ2FuY2VsbGF0aW9uKHRoaXMuY2xpY2tlZExpbmtVcmwsIHRoaXMuc3RhcnRpbmdVcmwpO1xuICAgIHJldHVybiB0aGlzLmNvbnRleHQuZmluaXNoUm91dGluZ1Nlc3Npb24oKTtcbiAgfVxuXG4gIGFzeW5jIGNhbkRlYWN0aXZhdGVQbGFjZShjb21wb25lbnQ6IFBsYWNlQ29tcG9uZW50LCBjdXJyZW50VXJsOiBVcmxTbmFwc2hvdCwgbmV4dFVybDogVXJsU25hcHNob3QpOiBQcm9taXNlPGJvb2xlYW4gfCBVcmxTbmFwc2hvdD4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5cbi8vXG4vLyAjIyMgUm91dGVyIFN0YXRlIFRyYW5zaXRpb246IG51bGwgLT4gTmF2aWdhdGluZyhzdGFydGluZ1VybDogL2FjdGl2aXRpZXMvZGlhbG9ncztsPWVuLCB1cmxBZnRlclJlZGlyZWN0czogdW5kZWZpbmVkKVxuLy8gICMjIyAjIyMjIyMgUm91dGVyIEV2ZW50OiBOYXZpZ2F0aW9uU3RhcnRcbi8vICBOYXZpZ2F0aW9uU3RhcnQoaWQ6IDYsIHVybDogJy9ob21lJylcbi8vICBOYXZpZ2F0aW9uU3RhcnQge2lkOiA2LCB1cmw6IFwiL2hvbWVcIiwgbmF2aWdhdGlvblRyaWdnZXI6IFwiaW1wZXJhdGl2ZVwiLCByZXN0b3JlZFN0YXRlOiBudWxsfVxuLy8gbG9nZ2VyLmpzOjM5IElnbm9yaW5nIHJvdXRlciBldmVudDogTmF2aWdhdGlvblN0YXJ0IC0+IC9ob21lIDo6IE5hdmlnYXRpbmcoc3RhcnRpbmdVcmw6IC9hY3Rpdml0aWVzL2RpYWxvZ3M7bD1lbiwgdXJsQWZ0ZXJSZWRpcmVjdHM6IHVuZGVmaW5lZClcbi8vICAjIyMgIyMjIyMjIFJvdXRlciBFdmVudDogUm91dGVzUmVjb2duaXplZFxuLy8gIFJvdXRlc1JlY29nbml6ZWQoaWQ6IDYsIHVybDogJy9ob21lJywgdXJsQWZ0ZXJSZWRpcmVjdHM6ICcvaG9tZScsIHN0YXRlOiBSb3V0ZSh1cmw6JycsIHBhdGg6JycpIHsgUm91dGUodXJsOidob21lJywgcGF0aDonaG9tZScpIH0gKVxuLy8gIFJvdXRlc1JlY29nbml6ZWQge2lkOiA2LCB1cmw6IFwiL2hvbWVcIiwgdXJsQWZ0ZXJSZWRpcmVjdHM6IFwiL2hvbWVcIiwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3R9XG4vLyAgIyMjIyMjIFJvdXRlciBFdmVudDogR3VhcmRzQ2hlY2tTdGFydFxuLy8gIEd1YXJkc0NoZWNrU3RhcnQoaWQ6IDYsIHVybDogJy9ob21lJywgdXJsQWZ0ZXJSZWRpcmVjdHM6ICcvaG9tZScsIHN0YXRlOiBSb3V0ZSh1cmw6JycsIHBhdGg6JycpIHsgUm91dGUodXJsOidob21lJywgcGF0aDonaG9tZScpIH0gKVxuLy8gIEd1YXJkc0NoZWNrU3RhcnQge2lkOiA2LCB1cmw6IFwiL2hvbWVcIiwgdXJsQWZ0ZXJSZWRpcmVjdHM6IFwiL2hvbWVcIiwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3R9XG4vLyBsb2dnZXIuanM6MzkgYmFjayBidXR0b24gcHJlc3NlZCBkdXJpbmcgbmF2aWdhdGlvbiBzZXNzaW9uIGludGVyYWN0aW9uIHByb21pc2Vcbi8vIGxvZ2dlci5qczozOSBjYW5jZWxsaW5nIGN1cnJlbnQgbmF2aWdhdGlvbiBhY3Rpdml0eS4uXG4vLyAgIGxvZ2dlci5qczozOSAjIyMgUm91dGVyIFN0YXRlIFRyYW5zaXRpb246IE5hdmlnYXRpbmcoc3RhcnRpbmdVcmw6IC9hY3Rpdml0aWVzL2RpYWxvZ3M7bD1lbiwgdXJsQWZ0ZXJSZWRpcmVjdHM6IHVuZGVmaW5lZCkgLT4gV2FpdFVudGlsTGlua1RyaWdnZXJlZE5hdmlnYXRpb25JbnRlcmFjdGlvbkNhbmNlbGxhdGlvbkV2ZW50c0ZpbmlzaChpZGxlOiB1bmRlZmluZWQsIHN0YXJ0aW5nVXJsOiAvYWN0aXZpdGllcy9kaWFsb2dzO2w9ZW4sIGNsaWNrZWRMaW5rVXJsOiAvaG9tZSwgZmlyc3RDYW5jZWxFdmVudFVybDogdW5kZWZpbmVkLCBjbGlja2VkTGlua01hdGNoZWRCYWNrQnV0dG9uVXJsOiBmYWxzZSwgcG9wU3RhdGVFdmVudFVybDogdW5kZWZpbmVkKVxuLy8gICMjIyMjIyBSb3V0ZXIgRXZlbnQ6IEd1YXJkc0NoZWNrRW5kXG4vLyAgR3VhcmRzQ2hlY2tFbmQoaWQ6IDYsIHVybDogJy9ob21lJywgdXJsQWZ0ZXJSZWRpcmVjdHM6ICcvaG9tZScsIHN0YXRlOiBSb3V0ZSh1cmw6JycsIHBhdGg6JycpIHsgUm91dGUodXJsOidob21lJywgcGF0aDonaG9tZScpIH0gLCBzaG91bGRBY3RpdmF0ZTogZmFsc2UpXG4vLyAgR3VhcmRzQ2hlY2tFbmQge2lkOiA2LCB1cmw6IFwiL2hvbWVcIiwgdXJsQWZ0ZXJSZWRpcmVjdHM6IFwiL2hvbWVcIiwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QsIHNob3VsZEFjdGl2YXRlOiBmYWxzZX1cbi8vICAjIyMjIyMgUm91dGVyIEV2ZW50OiBOYXZpZ2F0aW9uQ2FuY2VsXG4vLyAgTmF2aWdhdGlvbkNhbmNlbChpZDogNiwgdXJsOiAnL2hvbWUnKVxuLy8gIE5hdmlnYXRpb25DYW5jZWwge2lkOiA2LCB1cmw6IFwiL2hvbWVcIiwgcmVhc29uOiBcIlwifVxuLy8gbG9nZ2VyLmpzOjU0IFdhaXRVbnRpbExpbmtUcmlnZ2VyZWROYXZpZ2F0aW9uSW50ZXJhY3Rpb25DYW5jZWxsYXRpb25FdmVudHNGaW5pc2gub25Sb3V0ZXJDYW5jZWxsZWRcbi8vIGxvZ2dlci5qczoxOSBhcmdzIE5hdmlnYXRpb25DYW5jZWwge2lkOiA2LCB1cmw6IFwiL2hvbWVcIiwgcmVhc29uOiBcIlwifVxuLy8gbG9nZ2VyLmpzOjM5IElnbm9yaW5nIHJvdXRlciBldmVudDogTmF2aWdhdGlvbkNhbmNlbCAtPiAvaG9tZSA6OiBXYWl0VW50aWxMaW5rVHJpZ2dlcmVkTmF2aWdhdGlvbkludGVyYWN0aW9uQ2FuY2VsbGF0aW9uRXZlbnRzRmluaXNoKGlkbGU6IHVuZGVmaW5lZCwgc3RhcnRpbmdVcmw6IC9hY3Rpdml0aWVzL2RpYWxvZ3M7bD1lbiwgY2xpY2tlZExpbmtVcmw6IC9ob21lLCBmaXJzdENhbmNlbEV2ZW50VXJsOiAvaG9tZSwgY2xpY2tlZExpbmtNYXRjaGVkQmFja0J1dHRvblVybDogdHJ1ZSwgcG9wU3RhdGVFdmVudFVybDogdW5kZWZpbmVkKVxuLy8gbG9nZ2VyLmpzOjI4IDwtLSBXYWl0VW50aWxMaW5rVHJpZ2dlcmVkTmF2aWdhdGlvbkludGVyYWN0aW9uQ2FuY2VsbGF0aW9uRXZlbnRzRmluaXNoLm9uUm91dGVyQ2FuY2VsbGVkIHVuZGVmaW5lZFxuLy8gbG9nZ2VyLmpzOjU0IFdhaXRVbnRpbExpbmtUcmlnZ2VyZWROYXZpZ2F0aW9uSW50ZXJhY3Rpb25DYW5jZWxsYXRpb25FdmVudHNGaW5pc2gub25Sb3V0ZXJFbmRcbi8vIGxvZ2dlci5qczoxOSBhcmdzIE5hdmlnYXRpb25FbmQge2lkOiAtMSwgdXJsOiBcIlwiLCB1cmxBZnRlclJlZGlyZWN0czogXCJcIn1cbi8vIGxvZ2dlci5qczo1NCBXYWl0VW50aWxMaW5rVHJpZ2dlcmVkTmF2aWdhdGlvbkludGVyYWN0aW9uQ2FuY2VsbGF0aW9uRXZlbnRzRmluaXNoLmZpbmFsaXNlUm91dGluZ1xuLy8gbG9nZ2VyLmpzOjM5IFdPUkstQVJPVU5EOiBVcGRhdGluZyBicm93c2VyIGxvY2F0aW9uIGFmdGVyIHBvcCBzdGF0ZSAtIHNlZSBhbmd1bGFyIGlzc3VlICMxMzU4NlxuLy8gbmF2aWdhdGlvbi1zZXNzaW9uLnRzOjEyOSByZXBsYWNpbmcgL2FjdGl2aXRpZXMvZGlhbG9ncztsPWVuIHdpdGggL2hvbWVcbi8vICAgbmF2aWdhdGlvbi1zZXNzaW9uLnRzOjEzMSBwdXNoaW5nIC9hY3Rpdml0aWVzL2RpYWxvZ3M7bD1lbiBiYWNrIG9udG8gdGhlIGhpc3RvcnkuXG4vLyAgPz8/Pz8gcGxhY2Utcm91dGVyLnRzOjI4MSAjIyMgUm91dGVyIFNlc3Npb24gRmluaXNoZWQgKHdhcyBXYWl0VW50aWxMaW5rVHJpZ2dlcmVkTmF2aWdhdGlvbkludGVyYWN0aW9uQ2FuY2VsbGF0aW9uRXZlbnRzRmluaXNoKGlkbGU6IHVuZGVmaW5lZCwgc3RhcnRpbmdVcmw6IC9hY3Rpdml0aWVzL2RpYWxvZ3M7bD1lbiwgY2xpY2tlZExpbmtVcmw6IC9ob21lLCBmaXJzdENhbmNlbEV2ZW50VXJsOiAvaG9tZSwgY2xpY2tlZExpbmtNYXRjaGVkQmFja0J1dHRvblVybDogdHJ1ZSwgcG9wU3RhdGVFdmVudFVybDogdW5kZWZpbmVkKSlcbi8vIGxvZ2dlci5qczoyOCA8LS0gV2FpdFVudGlsTGlua1RyaWdnZXJlZE5hdmlnYXRpb25JbnRlcmFjdGlvbkNhbmNlbGxhdGlvbkV2ZW50c0ZpbmlzaC5maW5hbGlzZVJvdXRpbmcgdW5kZWZpbmVkXG4vLyBsb2dnZXIuanM6MjggPC0tIFdhaXRVbnRpbExpbmtUcmlnZ2VyZWROYXZpZ2F0aW9uSW50ZXJhY3Rpb25DYW5jZWxsYXRpb25FdmVudHNGaW5pc2gub25Sb3V0ZXJFbmQgdW5kZWZpbmVkXG4vLyAgIyMjIyMjIFJvdXRlciBFdmVudDogTmF2aWdhdGlvblN0YXJ0XG4vLyAgTmF2aWdhdGlvblN0YXJ0KGlkOiA3LCB1cmw6ICcvaG9tZScpXG4vLyAgTmF2aWdhdGlvblN0YXJ0IHtpZDogNywgdXJsOiBcIi9ob21lXCIsIG5hdmlnYXRpb25UcmlnZ2VyOiBcInBvcHN0YXRlXCIsIHJlc3RvcmVkU3RhdGU6IHvigKZ9fVxuLy8gbG9nZ2VyLmpzOjM5ICMjIyBSb3V0ZXIgU3RhdGUgVHJhbnNpdGlvbjogbnVsbCAtPiBQb3BTdGF0ZU5hdmlnYXRpb24oc3RhcnRpbmdVcmw6IC9hY3Rpdml0aWVzL2RpYWxvZ3M7bD1lbiwgcG9wcGVkSGlzdG9yeVVybDogL2hvbWUpXG4vLyAgIyMjIyMjIFJvdXRlciBFdmVudDogUm91dGVzUmVjb2duaXplZFxuLy8gIFJvdXRlc1JlY29nbml6ZWQoaWQ6IDcsIHVybDogJy9ob21lJywgdXJsQWZ0ZXJSZWRpcmVjdHM6ICcvaG9tZScsIHN0YXRlOiBSb3V0ZSh1cmw6JycsIHBhdGg6JycpIHsgUm91dGUodXJsOidob21lJywgcGF0aDonaG9tZScpIH0gKVxuLy8gIFJvdXRlc1JlY29nbml6ZWQge2lkOiA3LCB1cmw6IFwiL2hvbWVcIiwgdXJsQWZ0ZXJSZWRpcmVjdHM6IFwiL2hvbWVcIiwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3R9XG4vLyAgIyMjIyMjIFJvdXRlciBFdmVudDogR3VhcmRzQ2hlY2tTdGFydFxuLy8gIEd1YXJkc0NoZWNrU3RhcnQoaWQ6IDcsIHVybDogJy9ob21lJywgdXJsQWZ0ZXJSZWRpcmVjdHM6ICcvaG9tZScsIHN0YXRlOiBSb3V0ZSh1cmw6JycsIHBhdGg6JycpIHsgUm91dGUodXJsOidob21lJywgcGF0aDonaG9tZScpIH0gKVxuIl19
@@ -1,65 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { EventCleanUpSession } from './event-clean-up-session';
3
- /**
4
- * This state handles the scenario where a pop state triggered and interaction and the user clickeb back a second time to cancel it.
5
- * The sequence of routing events/state transitions is as follows.
6
- * -> Idle -> PopStateTransition (poppedHistoryUrl == page to go to, startingUrl = page to stay on )
7
- * -> confirm dialog shown.
8
- * -> click back
9
- * -> PopStateTransition -> CancelledDuringBackButtonNavigationInteraction(trigger url is the page before the popped history url)
10
- * -> NavigationCancel (for the previous back)
11
- * -> PopState
12
- * -> NavigationCancel
13
- */
14
- export class WaitUntilPopStateDuringCanDeactivateInteractionFinishes extends EventCleanUpSession {
15
- constructor(context, startingUrl, locationChangeTriggerUrl, poppedHistoryUrl) {
16
- super(context, startingUrl);
17
- this.locationChangeTriggerUrl = locationChangeTriggerUrl;
18
- this.poppedHistoryUrl = poppedHistoryUrl;
19
- this.isPopState = false;
20
- this.firstCancelHandled = false;
21
- this.popStateHandled = false;
22
- this.debugPropertyKeys = ['idle', 'startingUrl', 'poppedHistoryUrl', 'locationChangeTriggerUrl', 'popStateEventUrl', 'firstCancelHandled', 'popStateHandled'];
23
- }
24
- // @Trace()
25
- onRouterStarted(event) {
26
- this.ignore(event);
27
- }
28
- // @Trace()
29
- onRouterCancelled(event) {
30
- if (!this.firstCancelHandled) {
31
- this.firstCancelHandled = true;
32
- this.parentPageUrl = event.url;
33
- this.ignore(event);
34
- }
35
- else {
36
- if (this.popStateHandled) {
37
- const grandParentPageUrl = event.url;
38
- this.repairBrowserHistoryAndUrlAfterGuardCancellation(grandParentPageUrl, this.parentPageUrl);
39
- // we've had one more back click than normal so we need to add our initial url back in as well.
40
- this.resetBrowserLocation(this.startingUrl, { replaceCurrent: false });
41
- return this.context.finishRoutingSession();
42
- }
43
- }
44
- }
45
- // @Trace()
46
- onRouterEnd(event) {
47
- this.ignore(event);
48
- }
49
- // @Trace()
50
- onRouterError(event) {
51
- void this.ignore(event);
52
- }
53
- // @Trace()
54
- onPopState(event) {
55
- this.popStateHandled = true;
56
- this.popStateEventUrl = event.url;
57
- this.ignore(event);
58
- }
59
- canDeactivatePlace(component, currentUrl, nextUrl) {
60
- return __awaiter(this, void 0, void 0, function* () {
61
- return false;
62
- });
63
- }
64
- }
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FpdC11bnRpbC1wb3BzdGF0ZS1kdXJpbmctY2FuLWRlYWN0aXZhdGUtdHJhbnNpdGlvbi1maW5pc2hlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL3BsYWNlL25hdmlnYXRpb24vc2Vzc2lvbi9ldmVudC1jbGVhbnVwL3dhaXQtdW50aWwtcG9wc3RhdGUtZHVyaW5nLWNhbi1kZWFjdGl2YXRlLXRyYW5zaXRpb24tZmluaXNoZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUtBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRS9EOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLE9BQU8sdURBQXdELFNBQVEsbUJBQW1CO0lBUzlGLFlBQVksT0FBMEIsRUFDMUIsV0FBbUIsRUFDVix3QkFBZ0MsRUFDaEMsZ0JBQXdCO1FBQzNDLEtBQUssQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFGVCw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQVE7UUFDaEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFRO1FBVnBDLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDNUIsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQzNCLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBRXhCLHNCQUFpQixHQUFHLENBQUMsTUFBTSxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSwwQkFBMEIsRUFBRSxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBUXpKLENBQUM7SUFFRCxXQUFXO0lBQ1gsZUFBZSxDQUFDLEtBQXNCO1FBQ3BDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELFdBQVc7SUFDWCxpQkFBaUIsQ0FBQyxLQUF1QjtRQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQzVCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7WUFDL0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO1lBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDcEI7YUFBTTtZQUNMLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtnQkFDeEIsTUFBTSxrQkFBa0IsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO2dCQUNyQyxJQUFJLENBQUMsZ0RBQWdELENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUM5RiwrRkFBK0Y7Z0JBQy9GLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUMsY0FBYyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7Z0JBQ3JFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO2FBQzVDO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsV0FBVztJQUNYLFdBQVcsQ0FBQyxLQUFvQjtRQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxXQUFXO0lBQ1gsYUFBYSxDQUFDLEtBQXNCO1FBQ2xDLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsV0FBVztJQUNYLFVBQVUsQ0FBQyxLQUFzQjtRQUMvQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQztRQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFSyxrQkFBa0IsQ0FBQyxTQUF5QixFQUFFLFVBQXVCLEVBQUUsT0FBb0I7O1lBQy9GLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztLQUFBO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOYXZpZ2F0aW9uQ2FuY2VsLCBOYXZpZ2F0aW9uRW5kLCBOYXZpZ2F0aW9uRXJyb3IsIE5hdmlnYXRpb25TdGFydCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBMb2dnZXIsIFRyYWNlIH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHsgUGxhY2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9wbGFjZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgVXJsU25hcHNob3QgfSBmcm9tICcuLi8uLi8uLi91cmwtc25hcHNob3QnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkNvbnRleHQgfSBmcm9tICcuLi9uYXZpZ2F0aW9uLWNvbnRleHQnO1xuaW1wb3J0IHsgRXZlbnRDbGVhblVwU2Vzc2lvbiB9IGZyb20gJy4vZXZlbnQtY2xlYW4tdXAtc2Vzc2lvbic7XG5cbi8qKlxuICogVGhpcyBzdGF0ZSBoYW5kbGVzIHRoZSBzY2VuYXJpbyB3aGVyZSBhIHBvcCBzdGF0ZSB0cmlnZ2VyZWQgYW5kIGludGVyYWN0aW9uIGFuZCB0aGUgdXNlciBjbGlja2ViIGJhY2sgYSBzZWNvbmQgdGltZSB0byBjYW5jZWwgaXQuXG4gKiBUaGUgc2VxdWVuY2Ugb2Ygcm91dGluZyBldmVudHMvc3RhdGUgdHJhbnNpdGlvbnMgaXMgYXMgZm9sbG93cy5cbiAqIC0+IElkbGUgLT4gUG9wU3RhdGVUcmFuc2l0aW9uIChwb3BwZWRIaXN0b3J5VXJsID09IHBhZ2UgdG8gZ28gdG8sIHN0YXJ0aW5nVXJsID0gcGFnZSB0byBzdGF5IG9uIClcbiAqIC0+IGNvbmZpcm0gZGlhbG9nIHNob3duLlxuICogLT4gY2xpY2sgYmFja1xuICogLT4gUG9wU3RhdGVUcmFuc2l0aW9uIC0+IENhbmNlbGxlZER1cmluZ0JhY2tCdXR0b25OYXZpZ2F0aW9uSW50ZXJhY3Rpb24odHJpZ2dlciB1cmwgaXMgdGhlIHBhZ2UgYmVmb3JlIHRoZSBwb3BwZWQgaGlzdG9yeSB1cmwpXG4gKiAtPiBOYXZpZ2F0aW9uQ2FuY2VsIChmb3IgdGhlIHByZXZpb3VzIGJhY2spXG4gKiAtPiBQb3BTdGF0ZVxuICogLT4gTmF2aWdhdGlvbkNhbmNlbFxuICovXG5leHBvcnQgY2xhc3MgV2FpdFVudGlsUG9wU3RhdGVEdXJpbmdDYW5EZWFjdGl2YXRlSW50ZXJhY3Rpb25GaW5pc2hlcyBleHRlbmRzIEV2ZW50Q2xlYW5VcFNlc3Npb24ge1xuXG4gIHJlYWRvbmx5IGlzUG9wU3RhdGUgPSBmYWxzZTtcbiAgZmlyc3RDYW5jZWxIYW5kbGVkID0gZmFsc2U7XG4gIHBvcFN0YXRlSGFuZGxlZCA9IGZhbHNlO1xuICBwb3BTdGF0ZUV2ZW50VXJsOiBzdHJpbmc7XG4gIGRlYnVnUHJvcGVydHlLZXlzID0gWydpZGxlJywgJ3N0YXJ0aW5nVXJsJywgJ3BvcHBlZEhpc3RvcnlVcmwnLCAnbG9jYXRpb25DaGFuZ2VUcmlnZ2VyVXJsJywgJ3BvcFN0YXRlRXZlbnRVcmwnLCAnZmlyc3RDYW5jZWxIYW5kbGVkJywgJ3BvcFN0YXRlSGFuZGxlZCddO1xuICBwcml2YXRlIHBhcmVudFBhZ2VVcmw6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihjb250ZXh0OiBOYXZpZ2F0aW9uQ29udGV4dCxcbiAgICAgICAgICAgICAgc3RhcnRpbmdVcmw6IHN0cmluZyxcbiAgICAgICAgICAgICAgcmVhZG9ubHkgbG9jYXRpb25DaGFuZ2VUcmlnZ2VyVXJsOiBzdHJpbmcsXG4gICAgICAgICAgICAgIHJlYWRvbmx5IHBvcHBlZEhpc3RvcnlVcmw6IHN0cmluZykge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0YXJ0aW5nVXJsKTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIG9uUm91dGVyU3RhcnRlZChldmVudDogTmF2aWdhdGlvblN0YXJ0KTogdm9pZCB7XG4gICAgdGhpcy5pZ25vcmUoZXZlbnQpO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgb25Sb3V0ZXJDYW5jZWxsZWQoZXZlbnQ6IE5hdmlnYXRpb25DYW5jZWwpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZmlyc3RDYW5jZWxIYW5kbGVkKSB7XG4gICAgICB0aGlzLmZpcnN0Q2FuY2VsSGFuZGxlZCA9IHRydWU7XG4gICAgICB0aGlzLnBhcmVudFBhZ2VVcmwgPSBldmVudC51cmw7XG4gICAgICB0aGlzLmlnbm9yZShldmVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLnBvcFN0YXRlSGFuZGxlZCkge1xuICAgICAgICBjb25zdCBncmFuZFBhcmVudFBhZ2VVcmwgPSBldmVudC51cmw7XG4gICAgICAgIHRoaXMucmVwYWlyQnJvd3Nlckhpc3RvcnlBbmRVcmxBZnRlckd1YXJkQ2FuY2VsbGF0aW9uKGdyYW5kUGFyZW50UGFnZVVybCwgdGhpcy5wYXJlbnRQYWdlVXJsKTtcbiAgICAgICAgLy8gd2UndmUgaGFkIG9uZSBtb3JlIGJhY2sgY2xpY2sgdGhhbiBub3JtYWwgc28gd2UgbmVlZCB0byBhZGQgb3VyIGluaXRpYWwgdXJsIGJhY2sgaW4gYXMgd2VsbC5cbiAgICAgICAgdGhpcy5yZXNldEJyb3dzZXJMb2NhdGlvbih0aGlzLnN0YXJ0aW5nVXJsLCB7cmVwbGFjZUN1cnJlbnQ6IGZhbHNlfSk7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRleHQuZmluaXNoUm91dGluZ1Nlc3Npb24oKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBvblJvdXRlckVuZChldmVudDogTmF2aWdhdGlvbkVuZCk6IHZvaWQge1xuICAgIHRoaXMuaWdub3JlKGV2ZW50KTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIG9uUm91dGVyRXJyb3IoZXZlbnQ6IE5hdmlnYXRpb25FcnJvcik6IHZvaWQge1xuICAgIHZvaWQgdGhpcy5pZ25vcmUoZXZlbnQpO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgb25Qb3BTdGF0ZShldmVudDogTmF2aWdhdGlvblN0YXJ0KTogdm9pZCB7XG4gICAgdGhpcy5wb3BTdGF0ZUhhbmRsZWQgPSB0cnVlO1xuICAgIHRoaXMucG9wU3RhdGVFdmVudFVybCA9IGV2ZW50LnVybDtcbiAgICB0aGlzLmlnbm9yZShldmVudCk7XG4gIH1cblxuICBhc3luYyBjYW5EZWFjdGl2YXRlUGxhY2UoY29tcG9uZW50OiBQbGFjZUNvbXBvbmVudCwgY3VycmVudFVybDogVXJsU25hcHNob3QsIG5leHRVcmw6IFVybFNuYXBzaG90KTogUHJvbWlzZTxib29sZWFuIHwgVXJsU25hcHNob3Q+IHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==