@coolon/angular-ui-powerups 0.0.126 → 0.0.128

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 (350) hide show
  1. package/bundles/coolon-angular-ui-powerups.umd.js +3753 -3020
  2. package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
  3. package/bundles/coolon-angular-ui-powerups.umd.min.js +1 -1
  4. package/bundles/coolon-angular-ui-powerups.umd.min.js.map +1 -1
  5. package/coolon-angular-ui-powerups.d.ts +17 -18
  6. package/coolon-angular-ui-powerups.metadata.json +1 -1
  7. package/esm2015/coolon-angular-ui-powerups.js +16 -17
  8. package/esm2015/coolon-angular-ui-powerups.js.map +1 -1
  9. package/esm2015/coolon-angular-ui-powerups.metadata.json +1 -1
  10. package/esm2015/index.js +1 -1
  11. package/esm2015/index.js.map +1 -1
  12. package/esm2015/lib/angular-ui-powerups.module.ngfactory.js.map +1 -1
  13. package/esm2015/lib/interaction/abstract-interaction-context.js +104 -0
  14. package/esm2015/lib/interaction/abstract-interaction-context.js.map +1 -0
  15. package/esm2015/lib/interaction/abstract-interaction-context.metadata.json +1 -0
  16. package/esm2015/lib/interaction/activity-ref.js +123 -0
  17. package/esm2015/lib/interaction/activity-ref.js.map +1 -0
  18. package/esm2015/lib/interaction/activity-ref.metadata.json +1 -0
  19. package/esm2015/lib/interaction/activity.js +21 -1
  20. package/esm2015/lib/interaction/activity.js.map +1 -1
  21. package/esm2015/lib/interaction/activity.metadata.json +1 -1
  22. package/esm2015/lib/interaction/components/activity-container/activity-container.component.js +199 -230
  23. package/esm2015/lib/interaction/components/activity-container/activity-container.component.js.map +1 -1
  24. package/esm2015/lib/interaction/components/activity-container/activity-container.component.metadata.json +1 -1
  25. package/esm2015/lib/interaction/components/{activity-outlet → activity-container/activity-outlet}/activity-outlet.component.js +24 -31
  26. package/esm2015/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.js.map +1 -0
  27. package/esm2015/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.metadata.json +1 -0
  28. package/esm2015/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.ngfactory.js.map +1 -0
  29. package/esm2015/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.scss.shim.ngstyle.js.map +1 -0
  30. package/esm2015/lib/interaction/components/alert-dialog/alert-dialog.component.js +2 -3
  31. package/esm2015/lib/interaction/components/alert-dialog/alert-dialog.component.js.map +1 -1
  32. package/esm2015/lib/interaction/components/alert-dialog/alert-dialog.component.metadata.json +1 -1
  33. package/esm2015/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.js +4 -11
  34. package/esm2015/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.js.map +1 -1
  35. package/esm2015/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.metadata.json +1 -1
  36. package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +2 -3
  37. package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js.map +1 -1
  38. package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.metadata.json +1 -1
  39. package/esm2015/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.js +113 -0
  40. package/esm2015/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.js.map +1 -0
  41. package/esm2015/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.metadata.json +1 -0
  42. package/esm2015/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.ngfactory.js.map +1 -0
  43. package/esm2015/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.scss.shim.ngstyle.js.map +1 -0
  44. package/esm2015/lib/interaction/index.js +7 -6
  45. package/esm2015/lib/interaction/index.js.map +1 -1
  46. package/esm2015/lib/interaction/index.metadata.json +1 -1
  47. package/esm2015/lib/interaction/interaction-context.js +12 -67
  48. package/esm2015/lib/interaction/interaction-context.js.map +1 -1
  49. package/esm2015/lib/interaction/interaction-context.metadata.json +1 -1
  50. package/esm2015/lib/interaction/interaction.module.js +4 -4
  51. package/esm2015/lib/interaction/interaction.module.js.map +1 -1
  52. package/esm2015/lib/interaction/interaction.module.metadata.json +1 -1
  53. package/esm2015/lib/interaction/interaction.module.ngfactory.js.map +1 -1
  54. package/esm2015/lib/interaction/route-synchronisation-adapter.js +17 -0
  55. package/esm2015/lib/interaction/route-synchronisation-adapter.js.map +1 -0
  56. package/esm2015/lib/interaction/route-synchronisation-adapter.metadata.json +1 -0
  57. package/esm2015/lib/interaction/services/interaction-service-routing-adapter.js +72 -0
  58. package/esm2015/lib/interaction/services/interaction-service-routing-adapter.js.map +1 -0
  59. package/esm2015/lib/interaction/services/interaction-service-routing-adapter.metadata.json +1 -0
  60. package/esm2015/lib/interaction/services/interaction.service.js +174 -104
  61. package/esm2015/lib/interaction/services/interaction.service.js.map +1 -1
  62. package/esm2015/lib/interaction/services/interaction.service.metadata.json +1 -1
  63. package/esm2015/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context-factory.js +4 -2
  64. package/esm2015/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context-factory.js.map +1 -1
  65. package/esm2015/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context-factory.metadata.json +1 -1
  66. package/esm2015/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context.js +79 -87
  67. package/esm2015/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context.js.map +1 -1
  68. package/esm2015/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context.metadata.json +1 -1
  69. package/esm2015/lib/interaction/services/modal-interaction-context.factory.js +3 -1
  70. package/esm2015/lib/interaction/services/modal-interaction-context.factory.js.map +1 -1
  71. package/esm2015/lib/place/components/abstract-place-navigation.component.js +27 -6
  72. package/esm2015/lib/place/components/abstract-place-navigation.component.js.map +1 -1
  73. package/esm2015/lib/place/components/abstract-place-navigation.component.metadata.json +1 -1
  74. package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.js +9 -3
  75. package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.js.map +1 -1
  76. package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.metadata.json +1 -1
  77. package/esm2015/lib/place/components/place-outlet/place-outlet.component.js +98 -110
  78. package/esm2015/lib/place/components/place-outlet/place-outlet.component.js.map +1 -1
  79. package/esm2015/lib/place/components/place-outlet/place-outlet.component.metadata.json +1 -1
  80. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +9 -3
  81. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js.map +1 -1
  82. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.metadata.json +1 -1
  83. package/esm2015/lib/place/guards/place.guard.js +14 -13
  84. package/esm2015/lib/place/guards/place.guard.js.map +1 -1
  85. package/esm2015/lib/place/guards/place.guard.metadata.json +1 -1
  86. package/esm2015/lib/place/index.js +15 -2
  87. package/esm2015/lib/place/index.js.map +1 -1
  88. package/esm2015/lib/place/index.metadata.json +1 -1
  89. package/esm2015/lib/place/{guards → navigation}/place-component-deactivation-handler.js +28 -22
  90. package/esm2015/lib/place/navigation/place-component-deactivation-handler.js.map +1 -0
  91. package/esm2015/lib/place/navigation/place-component-deactivation-handler.metadata.json +1 -0
  92. package/esm2015/lib/place/navigation/session/abstract-pop-state-navigation.js +37 -0
  93. package/esm2015/lib/place/navigation/session/abstract-pop-state-navigation.js.map +1 -0
  94. package/esm2015/lib/place/navigation/session/abstract-pop-state-navigation.metadata.json +1 -0
  95. package/esm2015/lib/place/navigation/session/event-cleanup/event-clean-up-session.js +19 -0
  96. package/esm2015/lib/place/navigation/session/event-cleanup/event-clean-up-session.js.map +1 -0
  97. package/esm2015/lib/place/navigation/session/event-cleanup/event-clean-up-session.metadata.json +1 -0
  98. package/esm2015/lib/place/navigation/session/event-cleanup/wait-until-leaving-interaction-transition-cancelled.js +95 -0
  99. package/esm2015/lib/place/navigation/session/event-cleanup/wait-until-leaving-interaction-transition-cancelled.js.map +1 -0
  100. package/esm2015/lib/place/navigation/session/event-cleanup/wait-until-leaving-interaction-transition-cancelled.metadata.json +1 -0
  101. package/esm2015/lib/place/navigation/session/event-cleanup/wait-until-link-triggered-interaction-cancelation-finishes.js +132 -0
  102. package/esm2015/lib/place/navigation/session/event-cleanup/wait-until-link-triggered-interaction-cancelation-finishes.js.map +1 -0
  103. package/esm2015/lib/place/navigation/session/event-cleanup/wait-until-link-triggered-interaction-cancelation-finishes.metadata.json +1 -0
  104. package/esm2015/lib/place/navigation/session/event-cleanup/wait-until-popstate-during-can-deactivate-transition-finishes.js +123 -0
  105. package/esm2015/lib/place/navigation/session/event-cleanup/wait-until-popstate-during-can-deactivate-transition-finishes.js.map +1 -0
  106. package/esm2015/lib/place/navigation/session/event-cleanup/wait-until-popstate-during-can-deactivate-transition-finishes.metadata.json +1 -0
  107. package/esm2015/lib/place/navigation/session/interactions/navigating-during-interaction.js +62 -0
  108. package/esm2015/lib/place/navigation/session/interactions/navigating-during-interaction.js.map +1 -0
  109. package/esm2015/lib/place/navigation/session/interactions/navigating-during-interaction.metadata.json +1 -0
  110. package/esm2015/lib/place/navigation/session/interactions/pop-state-during-interaction-navigation.js +48 -0
  111. package/esm2015/lib/place/navigation/session/interactions/pop-state-during-interaction-navigation.js.map +1 -0
  112. package/esm2015/lib/place/navigation/session/interactions/pop-state-during-interaction-navigation.metadata.json +1 -0
  113. package/esm2015/lib/place/navigation/session/interactions/remove-last-interaction-from-url-navigation-session.js +104 -0
  114. package/esm2015/lib/place/navigation/session/interactions/remove-last-interaction-from-url-navigation-session.js.map +1 -0
  115. package/esm2015/lib/place/navigation/session/interactions/remove-last-interaction-from-url-navigation-session.metadata.json +1 -0
  116. package/esm2015/lib/place/navigation/session/interactions/synchronise-interaction-context-ids-with-route.js +141 -0
  117. package/esm2015/lib/place/navigation/session/interactions/synchronise-interaction-context-ids-with-route.js.map +1 -0
  118. package/esm2015/lib/place/navigation/session/interactions/synchronise-interaction-context-ids-with-route.metadata.json +1 -0
  119. package/esm2015/lib/place/navigation/session/navigating.js +54 -0
  120. package/esm2015/lib/place/navigation/session/navigating.js.map +1 -0
  121. package/esm2015/lib/place/navigation/session/navigating.metadata.json +1 -0
  122. package/esm2015/lib/place/navigation/session/navigation-context.js +38 -0
  123. package/esm2015/lib/place/navigation/session/navigation-context.js.map +1 -0
  124. package/esm2015/lib/place/navigation/session/navigation-context.metadata.json +1 -0
  125. package/esm2015/lib/place/navigation/session/navigation-session.js +326 -0
  126. package/esm2015/lib/place/navigation/session/navigation-session.js.map +1 -0
  127. package/esm2015/lib/place/navigation/session/navigation-session.metadata.json +1 -0
  128. package/esm2015/lib/place/navigation/session/pop-state-navigation.js +31 -0
  129. package/esm2015/lib/place/navigation/session/pop-state-navigation.js.map +1 -0
  130. package/esm2015/lib/place/navigation/session/pop-state-navigation.metadata.json +1 -0
  131. package/esm2015/lib/place/place-component.js +46 -15
  132. package/esm2015/lib/place/place-component.js.map +1 -1
  133. package/esm2015/lib/place/place-component.metadata.json +1 -1
  134. package/esm2015/lib/place/place-router.js +314 -309
  135. package/esm2015/lib/place/place-router.js.map +1 -1
  136. package/esm2015/lib/place/place-router.metadata.json +1 -1
  137. package/esm2015/lib/place/place.module.js.map +1 -1
  138. package/esm2015/lib/place/place.module.metadata.json +1 -1
  139. package/esm2015/lib/place/place.module.ngfactory.js.map +1 -1
  140. package/esm2015/lib/place/route/parameter-decorators.js +1 -0
  141. package/esm2015/lib/place/route/parameter-decorators.js.map +1 -1
  142. package/esm2015/lib/place/route/parameter-decorators.metadata.json +1 -1
  143. package/esm2015/lib/place/url-service.js +126 -0
  144. package/esm2015/lib/place/url-service.js.map +1 -0
  145. package/esm2015/lib/place/url-service.metadata.json +1 -0
  146. package/esm2015/lib/place/url-service.ngfactory.js.map +1 -0
  147. package/esm2015/lib/place/url-snapshot.js +15 -1
  148. package/esm2015/lib/place/url-snapshot.js.map +1 -1
  149. package/esm2015/lib/place/url-snapshot.metadata.json +1 -1
  150. package/esm2015/lib/place/visit.js +10 -0
  151. package/esm2015/lib/place/visit.js.map +1 -1
  152. package/esm2015/lib/place/visit.metadata.json +1 -1
  153. package/esm2015/public_api.js +2 -2
  154. package/esm2015/public_api.js.map +1 -1
  155. package/esm5/coolon-angular-ui-powerups.js +16 -17
  156. package/esm5/coolon-angular-ui-powerups.js.map +1 -1
  157. package/esm5/index.js +1 -1
  158. package/esm5/index.js.map +1 -1
  159. package/esm5/lib/angular-ui-powerups.module.ngfactory.js.map +1 -1
  160. package/esm5/lib/interaction/abstract-interaction-context.js +146 -0
  161. package/esm5/lib/interaction/abstract-interaction-context.js.map +1 -0
  162. package/esm5/lib/interaction/activity-ref.js +153 -0
  163. package/esm5/lib/interaction/activity-ref.js.map +1 -0
  164. package/esm5/lib/interaction/activity.js +29 -1
  165. package/esm5/lib/interaction/activity.js.map +1 -1
  166. package/esm5/lib/interaction/components/activity-container/activity-container.component.js +273 -265
  167. package/esm5/lib/interaction/components/activity-container/activity-container.component.js.map +1 -1
  168. package/esm5/lib/interaction/components/{activity-outlet → activity-container/activity-outlet}/activity-outlet.component.js +25 -32
  169. package/esm5/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.js.map +1 -0
  170. package/esm5/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.ngfactory.js.map +1 -0
  171. package/esm5/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.scss.shim.ngstyle.js.map +1 -0
  172. package/esm5/lib/interaction/components/alert-dialog/alert-dialog.component.js +2 -3
  173. package/esm5/lib/interaction/components/alert-dialog/alert-dialog.component.js.map +1 -1
  174. package/esm5/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.js +4 -10
  175. package/esm5/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.js.map +1 -1
  176. package/esm5/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +2 -3
  177. package/esm5/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js.map +1 -1
  178. package/esm5/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.js +158 -0
  179. package/esm5/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.js.map +1 -0
  180. package/esm5/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.ngfactory.js.map +1 -0
  181. package/esm5/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.scss.shim.ngstyle.js.map +1 -0
  182. package/esm5/lib/interaction/index.js +7 -6
  183. package/esm5/lib/interaction/index.js.map +1 -1
  184. package/esm5/lib/interaction/interaction-context.js +12 -106
  185. package/esm5/lib/interaction/interaction-context.js.map +1 -1
  186. package/esm5/lib/interaction/interaction.module.js +4 -4
  187. package/esm5/lib/interaction/interaction.module.js.map +1 -1
  188. package/esm5/lib/interaction/interaction.module.ngfactory.js.map +1 -1
  189. package/esm5/lib/interaction/route-synchronisation-adapter.js +17 -0
  190. package/esm5/lib/interaction/route-synchronisation-adapter.js.map +1 -0
  191. package/esm5/lib/interaction/services/interaction-service-routing-adapter.js +98 -0
  192. package/esm5/lib/interaction/services/interaction-service-routing-adapter.js.map +1 -0
  193. package/esm5/lib/interaction/services/interaction.service.js +243 -117
  194. package/esm5/lib/interaction/services/interaction.service.js.map +1 -1
  195. package/esm5/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context-factory.js +6 -2
  196. package/esm5/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context-factory.js.map +1 -1
  197. package/esm5/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context.js +96 -107
  198. package/esm5/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context.js.map +1 -1
  199. package/esm5/lib/interaction/services/modal-interaction-context.factory.js +3 -1
  200. package/esm5/lib/interaction/services/modal-interaction-context.factory.js.map +1 -1
  201. package/esm5/lib/place/components/abstract-place-navigation.component.js +24 -6
  202. package/esm5/lib/place/components/abstract-place-navigation.component.js.map +1 -1
  203. package/esm5/lib/place/components/list-place-nav/list-place-nav.component.js +6 -3
  204. package/esm5/lib/place/components/list-place-nav/list-place-nav.component.js.map +1 -1
  205. package/esm5/lib/place/components/place-outlet/place-outlet.component.js +130 -129
  206. package/esm5/lib/place/components/place-outlet/place-outlet.component.js.map +1 -1
  207. package/esm5/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +6 -3
  208. package/esm5/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js.map +1 -1
  209. package/esm5/lib/place/guards/place.guard.js +17 -13
  210. package/esm5/lib/place/guards/place.guard.js.map +1 -1
  211. package/esm5/lib/place/index.js +15 -2
  212. package/esm5/lib/place/index.js.map +1 -1
  213. package/esm5/lib/place/{guards → navigation}/place-component-deactivation-handler.js +45 -21
  214. package/esm5/lib/place/navigation/place-component-deactivation-handler.js.map +1 -0
  215. package/esm5/lib/place/navigation/session/abstract-pop-state-navigation.js +49 -0
  216. package/esm5/lib/place/navigation/session/abstract-pop-state-navigation.js.map +1 -0
  217. package/esm5/lib/place/navigation/session/event-cleanup/event-clean-up-session.js +36 -0
  218. package/esm5/lib/place/navigation/session/event-cleanup/event-clean-up-session.js.map +1 -0
  219. package/esm5/lib/place/navigation/session/event-cleanup/wait-until-leaving-interaction-transition-cancelled.js +151 -0
  220. package/esm5/lib/place/navigation/session/event-cleanup/wait-until-leaving-interaction-transition-cancelled.js.map +1 -0
  221. package/esm5/lib/place/navigation/session/event-cleanup/wait-until-link-triggered-interaction-cancelation-finishes.js +221 -0
  222. package/esm5/lib/place/navigation/session/event-cleanup/wait-until-link-triggered-interaction-cancelation-finishes.js.map +1 -0
  223. package/esm5/lib/place/navigation/session/event-cleanup/wait-until-popstate-during-can-deactivate-transition-finishes.js +186 -0
  224. package/esm5/lib/place/navigation/session/event-cleanup/wait-until-popstate-during-can-deactivate-transition-finishes.js.map +1 -0
  225. package/esm5/lib/place/navigation/session/interactions/navigating-during-interaction.js +107 -0
  226. package/esm5/lib/place/navigation/session/interactions/navigating-during-interaction.js.map +1 -0
  227. package/esm5/lib/place/navigation/session/interactions/pop-state-during-interaction-navigation.js +77 -0
  228. package/esm5/lib/place/navigation/session/interactions/pop-state-during-interaction-navigation.js.map +1 -0
  229. package/esm5/lib/place/navigation/session/interactions/remove-last-interaction-from-url-navigation-session.js +167 -0
  230. package/esm5/lib/place/navigation/session/interactions/remove-last-interaction-from-url-navigation-session.js.map +1 -0
  231. package/esm5/lib/place/navigation/session/interactions/synchronise-interaction-context-ids-with-route.js +185 -0
  232. package/esm5/lib/place/navigation/session/interactions/synchronise-interaction-context-ids-with-route.js.map +1 -0
  233. package/esm5/lib/place/navigation/session/navigating.js +75 -0
  234. package/esm5/lib/place/navigation/session/navigating.js.map +1 -0
  235. package/esm5/lib/place/navigation/session/navigation-context.js +32 -0
  236. package/esm5/lib/place/navigation/session/navigation-context.js.map +1 -0
  237. package/esm5/lib/place/navigation/session/navigation-session.js +450 -0
  238. package/esm5/lib/place/navigation/session/navigation-session.js.map +1 -0
  239. package/esm5/lib/place/navigation/session/pop-state-navigation.js +50 -0
  240. package/esm5/lib/place/navigation/session/pop-state-navigation.js.map +1 -0
  241. package/esm5/lib/place/place-component.js +61 -17
  242. package/esm5/lib/place/place-component.js.map +1 -1
  243. package/esm5/lib/place/place-router.js +414 -401
  244. package/esm5/lib/place/place-router.js.map +1 -1
  245. package/esm5/lib/place/place.module.js.map +1 -1
  246. package/esm5/lib/place/place.module.ngfactory.js.map +1 -1
  247. package/esm5/lib/place/route/parameter-decorators.js +1 -0
  248. package/esm5/lib/place/route/parameter-decorators.js.map +1 -1
  249. package/esm5/lib/place/url-service.js +176 -0
  250. package/esm5/lib/place/url-service.js.map +1 -0
  251. package/esm5/lib/place/url-service.ngfactory.js.map +1 -0
  252. package/esm5/lib/place/url-snapshot.js +22 -1
  253. package/esm5/lib/place/url-snapshot.js.map +1 -1
  254. package/esm5/lib/place/visit.js +14 -0
  255. package/esm5/lib/place/visit.js.map +1 -1
  256. package/esm5/public_api.js +2 -2
  257. package/esm5/public_api.js.map +1 -1
  258. package/fesm2015/coolon-angular-ui-powerups.js +2644 -2266
  259. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  260. package/fesm5/coolon-angular-ui-powerups.js +3703 -2982
  261. package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
  262. package/lib/interaction/abstract-interaction-context.d.ts +24 -0
  263. package/lib/interaction/activity-ref.d.ts +19 -0
  264. package/lib/interaction/activity.d.ts +5 -1
  265. package/lib/interaction/components/activity-container/activity-container.component.d.ts +42 -43
  266. package/lib/interaction/components/{activity-outlet → activity-container/activity-outlet}/activity-outlet.component.d.ts +7 -10
  267. package/lib/interaction/components/alert-dialog/alert-dialog.component.d.ts +2 -2
  268. package/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.d.ts +2 -5
  269. package/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.d.ts +2 -2
  270. package/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.d.ts +24 -0
  271. package/lib/interaction/index.d.ts +6 -5
  272. package/lib/interaction/interaction-context.d.ts +8 -29
  273. package/lib/interaction/route-synchronisation-adapter.d.ts +5 -0
  274. package/lib/interaction/services/interaction-service-routing-adapter.d.ts +15 -0
  275. package/lib/interaction/services/interaction.service.d.ts +52 -24
  276. package/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context-factory.d.ts +2 -1
  277. package/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context.d.ts +15 -12
  278. package/lib/interaction/services/modal-interaction-context.factory.d.ts +2 -1
  279. package/lib/place/components/abstract-place-navigation.component.d.ts +5 -3
  280. package/lib/place/components/list-place-nav/list-place-nav.component.d.ts +2 -1
  281. package/lib/place/components/place-outlet/place-outlet.component.d.ts +9 -10
  282. package/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.d.ts +2 -1
  283. package/lib/place/guards/place.guard.d.ts +4 -3
  284. package/lib/place/index.d.ts +15 -2
  285. package/lib/place/navigation/place-component-deactivation-handler.d.ts +22 -0
  286. package/lib/place/navigation/session/abstract-pop-state-navigation.d.ts +9 -0
  287. package/lib/place/navigation/session/event-cleanup/event-clean-up-session.d.ts +4 -0
  288. package/lib/place/navigation/session/event-cleanup/wait-until-leaving-interaction-transition-cancelled.d.ts +27 -0
  289. package/lib/place/navigation/session/event-cleanup/wait-until-link-triggered-interaction-cancelation-finishes.d.ts +43 -0
  290. package/lib/place/navigation/session/event-cleanup/wait-until-popstate-during-can-deactivate-transition-finishes.d.ts +33 -0
  291. package/lib/place/navigation/session/interactions/navigating-during-interaction.d.ts +15 -0
  292. package/lib/place/navigation/session/interactions/pop-state-during-interaction-navigation.d.ts +17 -0
  293. package/lib/place/navigation/session/interactions/remove-last-interaction-from-url-navigation-session.d.ts +24 -0
  294. package/lib/place/navigation/session/interactions/synchronise-interaction-context-ids-with-route.d.ts +15 -0
  295. package/lib/place/navigation/session/navigating.d.ts +11 -0
  296. package/lib/place/navigation/session/navigation-context.d.ts +28 -0
  297. package/lib/place/navigation/session/navigation-session.d.ts +51 -0
  298. package/lib/place/navigation/session/pop-state-navigation.d.ts +7 -0
  299. package/lib/place/place-component.d.ts +6 -3
  300. package/lib/place/place-router.d.ts +39 -35
  301. package/lib/place/url-service.d.ts +30 -0
  302. package/lib/place/url-snapshot.d.ts +3 -1
  303. package/lib/place/visit.d.ts +1 -0
  304. package/package.json +1 -1
  305. package/schematics/place-routes/templates/place-routes.ts.template +4 -3
  306. package/esm2015/lib/interaction/abstract-activity.js +0 -13
  307. package/esm2015/lib/interaction/abstract-activity.js.map +0 -1
  308. package/esm2015/lib/interaction/abstract-activity.metadata.json +0 -1
  309. package/esm2015/lib/interaction/components/activity-outlet/activity-outlet-context.js +0 -21
  310. package/esm2015/lib/interaction/components/activity-outlet/activity-outlet-context.js.map +0 -1
  311. package/esm2015/lib/interaction/components/activity-outlet/activity-outlet-context.metadata.json +0 -1
  312. package/esm2015/lib/interaction/components/activity-outlet/activity-outlet.component.js.map +0 -1
  313. package/esm2015/lib/interaction/components/activity-outlet/activity-outlet.component.metadata.json +0 -1
  314. package/esm2015/lib/interaction/components/activity-outlet/activity-outlet.component.ngfactory.js.map +0 -1
  315. package/esm2015/lib/interaction/components/activity-outlet/activity-outlet.component.scss.shim.ngstyle.js.map +0 -1
  316. package/esm2015/lib/interaction/components/inplace-interaction-context/inplace-interaction-context.component.js +0 -102
  317. package/esm2015/lib/interaction/components/inplace-interaction-context/inplace-interaction-context.component.js.map +0 -1
  318. package/esm2015/lib/interaction/components/inplace-interaction-context/inplace-interaction-context.component.metadata.json +0 -1
  319. package/esm2015/lib/interaction/components/inplace-interaction-context/inplace-interaction-context.component.ngfactory.js.map +0 -1
  320. package/esm2015/lib/interaction/components/inplace-interaction-context/inplace-interaction-context.component.scss.shim.ngstyle.js.map +0 -1
  321. package/esm2015/lib/interaction/interaction-context-base.js +0 -171
  322. package/esm2015/lib/interaction/interaction-context-base.js.map +0 -1
  323. package/esm2015/lib/interaction/interaction-context-base.metadata.json +0 -1
  324. package/esm2015/lib/place/guards/navigation-state.js +0 -1118
  325. package/esm2015/lib/place/guards/navigation-state.js.map +0 -1
  326. package/esm2015/lib/place/guards/navigation-state.metadata.json +0 -1
  327. package/esm2015/lib/place/guards/place-component-deactivation-handler.js.map +0 -1
  328. package/esm2015/lib/place/guards/place-component-deactivation-handler.metadata.json +0 -1
  329. package/esm5/lib/interaction/abstract-activity.js +0 -30
  330. package/esm5/lib/interaction/abstract-activity.js.map +0 -1
  331. package/esm5/lib/interaction/components/activity-outlet/activity-outlet-context.js +0 -21
  332. package/esm5/lib/interaction/components/activity-outlet/activity-outlet-context.js.map +0 -1
  333. package/esm5/lib/interaction/components/activity-outlet/activity-outlet.component.js.map +0 -1
  334. package/esm5/lib/interaction/components/activity-outlet/activity-outlet.component.ngfactory.js.map +0 -1
  335. package/esm5/lib/interaction/components/activity-outlet/activity-outlet.component.scss.shim.ngstyle.js.map +0 -1
  336. package/esm5/lib/interaction/components/inplace-interaction-context/inplace-interaction-context.component.js +0 -119
  337. package/esm5/lib/interaction/components/inplace-interaction-context/inplace-interaction-context.component.js.map +0 -1
  338. package/esm5/lib/interaction/components/inplace-interaction-context/inplace-interaction-context.component.ngfactory.js.map +0 -1
  339. package/esm5/lib/interaction/components/inplace-interaction-context/inplace-interaction-context.component.scss.shim.ngstyle.js.map +0 -1
  340. package/esm5/lib/interaction/interaction-context-base.js +0 -228
  341. package/esm5/lib/interaction/interaction-context-base.js.map +0 -1
  342. package/esm5/lib/place/guards/navigation-state.js +0 -1491
  343. package/esm5/lib/place/guards/navigation-state.js.map +0 -1
  344. package/esm5/lib/place/guards/place-component-deactivation-handler.js.map +0 -1
  345. package/lib/interaction/abstract-activity.d.ts +0 -6
  346. package/lib/interaction/components/activity-outlet/activity-outlet-context.d.ts +0 -7
  347. package/lib/interaction/components/inplace-interaction-context/inplace-interaction-context.component.d.ts +0 -17
  348. package/lib/interaction/interaction-context-base.d.ts +0 -29
  349. package/lib/place/guards/navigation-state.d.ts +0 -228
  350. package/lib/place/guards/place-component-deactivation-handler.d.ts +0 -15
@@ -1,19 +1,20 @@
1
1
  import { Injector } from '@angular/core';
2
- import { ActivatedRouteSnapshot, CanActivate, CanDeactivate, Router, RouterStateSnapshot, UrlSerializer, UrlTree } from '@angular/router';
2
+ import { ActivatedRouteSnapshot, CanActivate, CanDeactivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';
3
3
  import { InteractionService } from '../../interaction/services/interaction.service';
4
4
  import { PlaceComponent } from '../place-component';
5
5
  import { PlaceDefinition } from '../place-definition';
6
6
  import { PlaceHistory } from '../place-history';
7
7
  import { PlaceRouter } from '../place-router';
8
+ import { UrlService } from '../url-service';
8
9
  import { UrlSnapshot } from '../url-snapshot';
9
10
  export declare abstract class PlaceGuard implements CanActivate, CanDeactivate<PlaceComponent> {
10
11
  private readonly router;
11
- private urlSerializer;
12
+ private urlService;
12
13
  private readonly placeRouter;
13
14
  private readonly placeHistory;
14
15
  private readonly interactionService;
15
16
  private readonly injector;
16
- constructor(router: Router, urlSerializer: UrlSerializer, placeRouter: PlaceRouter, placeHistory: PlaceHistory, interactionService: InteractionService, injector: Injector);
17
+ constructor(router: Router, urlService: UrlService, placeRouter: PlaceRouter, placeHistory: PlaceHistory, interactionService: InteractionService, injector: Injector);
17
18
  canActivate(activatedRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<boolean | UrlTree>;
18
19
  canDeactivate(component: PlaceComponent, currentRoute: ActivatedRouteSnapshot, currentState: RouterStateSnapshot, nextState?: RouterStateSnapshot): Promise<boolean | UrlTree>;
19
20
  private handleGuardResult;
@@ -9,6 +9,7 @@ export * from "./place-history";
9
9
  export * from "./place-router";
10
10
  export * from "./place.decorator";
11
11
  export * from "./place.module";
12
+ export * from "./url-service";
12
13
  export * from "./url-snapshot";
13
14
  export * from "./visit";
14
15
  export * from "./components/abstract-place-navigation.component";
@@ -19,10 +20,22 @@ export * from "./components/place-outlet/place-outlet.component";
19
20
  export * from "./components/place-outlet/route-animations";
20
21
  export * from "./components/tabbed-place-navigation/tabbed-place-navigation.component";
21
22
  export * from "./guards/consolidated-param-map";
22
- export * from "./guards/navigation-state";
23
23
  export * from "./guards/noop-auth-guard.service";
24
- export * from "./guards/place-component-deactivation-handler";
25
24
  export * from "./guards/place.guard";
25
+ export * from "./navigation/place-component-deactivation-handler";
26
+ export * from "./navigation/session/abstract-pop-state-navigation";
27
+ export * from "./navigation/session/navigating";
28
+ export * from "./navigation/session/navigation-context";
29
+ export * from "./navigation/session/navigation-session";
30
+ export * from "./navigation/session/pop-state-navigation";
31
+ export * from "./navigation/session/event-cleanup/event-clean-up-session";
32
+ export * from "./navigation/session/event-cleanup/wait-until-leaving-interaction-transition-cancelled";
33
+ export * from "./navigation/session/event-cleanup/wait-until-link-triggered-interaction-cancelation-finishes";
34
+ export * from "./navigation/session/event-cleanup/wait-until-popstate-during-can-deactivate-transition-finishes";
35
+ export * from "./navigation/session/interactions/navigating-during-interaction";
36
+ export * from "./navigation/session/interactions/pop-state-during-interaction-navigation";
37
+ export * from "./navigation/session/interactions/remove-last-interaction-from-url-navigation-session";
38
+ export * from "./navigation/session/interactions/synchronise-interaction-context-ids-with-route";
26
39
  export * from "./route/formatter";
27
40
  export * from "./route/json-types";
28
41
  export * from "./route/parameter-decorators";
@@ -0,0 +1,22 @@
1
+ import { PlaceComponent } from '../place-component';
2
+ import { UrlSnapshot } from '../url-snapshot';
3
+ import { NavigationSession } from './session/navigation-session';
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 declare class PlaceComponentDeactivationHandler {
12
+ readonly component: PlaceComponent;
13
+ readonly navigationSession: NavigationSession;
14
+ readonly isPrimaryComponent: boolean;
15
+ private canDeactivatePromise;
16
+ constructor(component: PlaceComponent, navigationSession: NavigationSession, isPrimaryComponent: boolean);
17
+ readonly routerInteractionAdapter: import("../../interaction").InteractionServiceRoutingAdapter;
18
+ readonly urlService: import("..").UrlService;
19
+ canDeactivate(currentUrl: UrlSnapshot, nextState: UrlSnapshot): Promise<boolean | UrlSnapshot>;
20
+ protected canDeactivateComponent(currentUrl: UrlSnapshot, nextState: UrlSnapshot): Promise<UrlSnapshot | boolean>;
21
+ protected isNotJustAChangeInRouteId(nextState: UrlSnapshot): boolean;
22
+ }
@@ -0,0 +1,9 @@
1
+ import { NavigationContext } from './navigation-context';
2
+ import { NavigationSession } from './navigation-session';
3
+ export declare abstract class AbstractPopStateNavigation extends NavigationSession {
4
+ readonly poppedHistoryUrl: string;
5
+ readonly isPopState = true;
6
+ debugPropertyKeys: string[];
7
+ constructor(context: NavigationContext, startingUrl: string, poppedHistoryUrl: string);
8
+ repairBrowserHistoryAndUrlAfterGuardCancellation(): void;
9
+ }
@@ -0,0 +1,4 @@
1
+ import { NavigationSession } from '../navigation-session';
2
+ export declare abstract class EventCleanUpSession extends NavigationSession {
3
+ handleCanDeactivateCancelledEventScenario(newUrl: string): void;
4
+ }
@@ -0,0 +1,27 @@
1
+ import { NavigationCancel, NavigationEnd, NavigationError, NavigationStart } from '@angular/router';
2
+ import { PlaceComponent } from '../../../place-component';
3
+ import { UrlSnapshot } from '../../../url-snapshot';
4
+ import { NavigationContext } from '../navigation-context';
5
+ import { EventCleanUpSession } from './event-clean-up-session';
6
+ /**
7
+ * The sequence of router events are:
8
+ * NavigationError -> url = url of navigation link
9
+ * NavigationEnd
10
+ * onPopState url = Our currentUrl sans and interaction query params
11
+ * NavigationCancel url == same as above.
12
+ */
13
+ export declare class WaitUntilLeavingInteractionTransitionCancelled extends EventCleanUpSession {
14
+ readonly locationChangeTriggerUrl: string;
15
+ readonly isPopState = false;
16
+ firstCancelHandled: boolean;
17
+ popStateHandled: boolean;
18
+ popStateEventUrl: string;
19
+ debugPropertyKeys: string[];
20
+ constructor(context: NavigationContext, startingUrl: string, locationChangeTriggerUrl: string);
21
+ onRouterStarted(event: NavigationStart): void;
22
+ onRouterCancelled(event: NavigationCancel): void;
23
+ onRouterEnd(event: NavigationEnd): void;
24
+ onRouterError(event: NavigationError): void;
25
+ onPopState(event: NavigationStart): void;
26
+ canDeactivatePlace(component: PlaceComponent, currentUrl: UrlSnapshot, nextUrl: UrlSnapshot): Promise<boolean | UrlSnapshot>;
27
+ }
@@ -0,0 +1,43 @@
1
+ import { NavigationCancel, NavigationEnd, NavigationError, NavigationStart } from '@angular/router';
2
+ import { PlaceComponent } from '../../../place-component';
3
+ import { UrlSnapshot } from '../../../url-snapshot';
4
+ import { EventCleanUpSession } from './event-clean-up-session';
5
+ import { NavigationContext } from '../navigation-context';
6
+ /**
7
+ * This state handles the scenario where a link navigation triggered an interaction and the user clicked back a to cancel it.
8
+ * The routing event sequence is different depending on the link that was clicked.
9
+ *
10
+ * If the link was the same as the previous history location (i.e. they've gone back via a link rather than clicking back) then the sequence is:
11
+ *
12
+ * -> Idle -> NavigationTransition
13
+ * -> confirm dialog shown.
14
+ * -> click back
15
+ * -> NavigationCancel -> clickedLinkUrl === cancel.url
16
+ * -> NavigationEnd
17
+ *
18
+ * Otherwise if the link is different from teh history location then the sequence is:
19
+ *
20
+ * -> Idle -> NavigationTransition
21
+ * -> confirm dialog shown.
22
+ * -> click back
23
+ * -> NavigationCancel -> clickedLinkUrl !== cancel.url
24
+ * -> NavigationEnd
25
+ * -> PopState
26
+ * -> NavigationCancel
27
+ */
28
+ export declare class WaitUntilLinkTriggeredNavigationInteractionCancellationEventsFinish extends EventCleanUpSession {
29
+ readonly clickedLinkUrl: string;
30
+ readonly isPopState = false;
31
+ firstCancelEventUrl: string;
32
+ popStateEventUrl: string;
33
+ clickedLinkMatchedBackButtonUrl: boolean;
34
+ debugPropertyKeys: string[];
35
+ constructor(context: NavigationContext, startingUrl: string, clickedLinkUrl: string);
36
+ onRouterStarted(event: NavigationStart): void;
37
+ onRouterCancelled(event: NavigationCancel): void;
38
+ onRouterEnd(event: NavigationEnd): void;
39
+ onRouterError(event: NavigationError): void;
40
+ onPopState(event: NavigationStart): void;
41
+ finaliseRouting(): any;
42
+ canDeactivatePlace(component: PlaceComponent, currentUrl: UrlSnapshot, nextUrl: UrlSnapshot): Promise<boolean | UrlSnapshot>;
43
+ }
@@ -0,0 +1,33 @@
1
+ import { NavigationCancel, NavigationEnd, NavigationError, NavigationStart } from '@angular/router';
2
+ import { PlaceComponent } from '../../../place-component';
3
+ import { UrlSnapshot } from '../../../url-snapshot';
4
+ import { NavigationContext } from '../navigation-context';
5
+ import { EventCleanUpSession } from './event-clean-up-session';
6
+ /**
7
+ * This state handles the scenario where a pop state triggered and interaction and the user clickeb back a second time to cancel it.
8
+ * The sequence of routing events/state transitions is as follows.
9
+ * -> Idle -> PopStateTransition (poppedHistoryUrl == page to go to, startingUrl = page to stay on )
10
+ * -> confirm dialog shown.
11
+ * -> click back
12
+ * -> PopStateTransition -> CancelledDuringBackButtonNavigationInteraction(trigger url is the page before the popped history url)
13
+ * -> NavigationCancel (for the previous back)
14
+ * -> PopState
15
+ * -> NavigationCancel
16
+ */
17
+ export declare class WaitUntilPopStateDuringCanDeactivateInteractionFinishes extends EventCleanUpSession {
18
+ readonly locationChangeTriggerUrl: string;
19
+ readonly poppedHistoryUrl: string;
20
+ readonly isPopState = false;
21
+ firstCancelHandled: boolean;
22
+ popStateHandled: boolean;
23
+ popStateEventUrl: string;
24
+ debugPropertyKeys: string[];
25
+ private parentPageUrl;
26
+ constructor(context: NavigationContext, startingUrl: string, locationChangeTriggerUrl: string, poppedHistoryUrl: string);
27
+ onRouterStarted(event: NavigationStart): void;
28
+ onRouterCancelled(event: NavigationCancel): void;
29
+ onRouterEnd(event: NavigationEnd): void;
30
+ onRouterError(event: NavigationError): void;
31
+ onPopState(event: NavigationStart): void;
32
+ canDeactivatePlace(component: PlaceComponent, currentUrl: UrlSnapshot, nextUrl: UrlSnapshot): Promise<boolean | UrlSnapshot>;
33
+ }
@@ -0,0 +1,15 @@
1
+ import { NavigationCancel, NavigationEnd, NavigationError } from '@angular/router';
2
+ import { NavigationSession } from '../navigation-session';
3
+ /**
4
+ * This state exists to handle all events while any kind of navigation is in progress. That way all other states can
5
+ * happily ignore interaction contexts.
6
+ * NOTE: This state is activated when ever an interaction is started. It might be better to split it into
7
+ * different states for different scenarios, e.g. starting model, starting model during route guard etc.
8
+ */
9
+ export declare class NavigatingDuringInteraction extends NavigationSession {
10
+ readonly isPopState = false;
11
+ onRouterCancelled(event: NavigationCancel): void;
12
+ onRouterError(event: NavigationError): void;
13
+ onRouterEnd(event: NavigationEnd): void;
14
+ handleCanDeactivateCancelledEventScenario(locationTriggerUrl: string): void;
15
+ }
@@ -0,0 +1,17 @@
1
+ import { NavigationCancel, NavigationEnd } from '@angular/router';
2
+ import { AbstractPopStateNavigation } from '../abstract-pop-state-navigation';
3
+ import { NavigationContext } from '../navigation-context';
4
+ /**
5
+ * This state exists to handle all events while any kind of navigation is in progress. That way all other states can
6
+ * happily ignore interaction contexts.
7
+ */
8
+ export declare class PopStateDuringInteractionNavigation extends AbstractPopStateNavigation {
9
+ constructor(context: NavigationContext, startingUrl: string, poppedHistoryUrl: string);
10
+ /**
11
+ * Invoked when the place refuses to deactivate because of an unfinished interaction.
12
+ * @param event
13
+ */
14
+ onRouterCancelled(event: NavigationCancel): void;
15
+ onRouterEnd(event: NavigationEnd): void;
16
+ handleCanDeactivateCancelledEventScenario(newUrl: string): void;
17
+ }
@@ -0,0 +1,24 @@
1
+ import { NavigationCancel, NavigationEnd, NavigationStart } from '@angular/router';
2
+ import { NavigationContext } from '../navigation-context';
3
+ import { NavigationSession } from '../navigation-session';
4
+ /**
5
+ * This session tracks the process of removing the last interaction context from the URL and provides a promise
6
+ * the resolves when the process and completed. This case is special as the process involves a regular routing cycle
7
+ * followed by a call to location.back(). The later triggers a url change with no other routing events. So this
8
+ * class tracks when the first routing cycle finishes and then waits for the subsequent lone url change event.
9
+ */
10
+ export declare class RemoveLastInteractionFromUrlNavigationSession extends NavigationSession {
11
+ readonly isPopState = true;
12
+ debugPropertyKeys: string[];
13
+ private finished;
14
+ private gotPopState;
15
+ constructor(context: NavigationContext, startingUrl: string);
16
+ onPopState(event: NavigationStart): void;
17
+ onRouterStarted(event: NavigationStart): void;
18
+ onRouterCancelled(event: NavigationCancel): void;
19
+ onUrlChange(url: string): void;
20
+ private finishUp;
21
+ onRouterEnd(event: NavigationEnd): void;
22
+ handleCanDeactivateCancelledEventScenario(locationTriggerUrl: string): void;
23
+ readonly finishedPromise: Promise<boolean>;
24
+ }
@@ -0,0 +1,15 @@
1
+ import { NavigationCancel, NavigationEnd } from '@angular/router';
2
+ import { NavigationContext } from '../navigation-context';
3
+ import { NavigationSession } from '../navigation-session';
4
+ export declare class SynchroniseInteractionContextIdsWithRoute extends NavigationSession {
5
+ readonly wasTriggeredByPopState: boolean;
6
+ readonly isPopState = false;
7
+ constructor(context: NavigationContext, startingUrl: string, wasTriggeredByPopState: boolean);
8
+ notifyActive(): void;
9
+ onRouterEnd(event: NavigationEnd): void;
10
+ onRouterCancelled(event: NavigationCancel): void;
11
+ syncInteractionIdsWithRouter(): void;
12
+ addActivityContextToRoute(activeInteractionContextIds: string[], isFirst: boolean): void;
13
+ removeActivityContextFromRoute(activeInteractionContextId: string[]): void;
14
+ handleCanDeactivateCancelledEventScenario(newUrl: string): void;
15
+ }
@@ -0,0 +1,11 @@
1
+ import { NavigationCancel, NavigationEnd, NavigationError } from '@angular/router';
2
+ import { NavigationSession } from './navigation-session';
3
+ export declare class Navigating extends NavigationSession {
4
+ readonly isPopState = false;
5
+ debugPropertyKeys: string[];
6
+ private urlAfterRedirects;
7
+ onRouterCancelled(event: NavigationCancel): void;
8
+ onRouterError(event: NavigationError): void;
9
+ onRouterEnd(event: NavigationEnd): void;
10
+ handleCanDeactivateCancelledEventScenario(newUrl: string): void;
11
+ }
@@ -0,0 +1,28 @@
1
+ import { InteractionServiceRoutingAdapter } from '../../../interaction/services/interaction-service-routing-adapter';
2
+ import { UrlService } from '../../url-service';
3
+ import { UrlSnapshot } from '../../url-snapshot';
4
+ import { Visit } from '../../visit';
5
+ import { NavigationSession } from './navigation-session';
6
+ export interface NavigationContext {
7
+ readonly urlService: UrlService;
8
+ readonly routerInteractionAdapter: InteractionServiceRoutingAdapter;
9
+ finishRoutingSession(visits?: Visit[]): any;
10
+ transitionTo(newState: NavigationSession): any;
11
+ navigateByUrl(urlSnapshot: UrlSnapshot, options: {
12
+ replaceUrl: boolean;
13
+ }): Promise<boolean>;
14
+ }
15
+ export declare namespace NavigationContext {
16
+ class Impl implements NavigationContext {
17
+ readonly urlService: UrlService;
18
+ readonly routerInteractionAdapter: InteractionServiceRoutingAdapter;
19
+ readonly navigateByUrl: (urlSnapshot: UrlSnapshot, options: {
20
+ replaceUrl: boolean;
21
+ }) => Promise<boolean>;
22
+ readonly transitionTo: (newState: NavigationSession) => void;
23
+ readonly finishRoutingSession: (visits?: Visit[]) => void;
24
+ constructor(urlService: UrlService, routerInteractionAdapter: InteractionServiceRoutingAdapter, navigateByUrl: (urlSnapshot: UrlSnapshot, options: {
25
+ replaceUrl: boolean;
26
+ }) => Promise<boolean>, transitionTo: (newState: NavigationSession) => void, finishRoutingSession: (visits?: Visit[]) => void);
27
+ }
28
+ }
@@ -0,0 +1,51 @@
1
+ import { NavigationCancel, NavigationEnd, NavigationError, NavigationStart, RouterEvent } from '@angular/router';
2
+ import { GarbageCollector } from '@coolon/pectin';
3
+ import { InteractionContext } from '../../../interaction/interaction-context';
4
+ import { InteractionServiceRoutingAdapter } from '../../../interaction/services/interaction-service-routing-adapter';
5
+ import { PlaceComponent } from '../../place-component';
6
+ import { PlaceDefinition } from '../../place-definition';
7
+ import { UrlService } from '../../url-service';
8
+ import { UrlSnapshot } from '../../url-snapshot';
9
+ import { Visit } from '../../visit';
10
+ import { NavigationContext } from './navigation-context';
11
+ /**
12
+ * Transient states
13
+ */
14
+ export declare abstract class NavigationSession extends GarbageCollector {
15
+ readonly context: NavigationContext;
16
+ readonly startingUrl: string;
17
+ debugPropertyKeys: string[];
18
+ private _visits;
19
+ private componentDeactivationHandlers;
20
+ abstract readonly isPopState: boolean;
21
+ private _interactionContext;
22
+ constructor(context: NavigationContext, startingUrl: string);
23
+ readonly name: string;
24
+ readonly urlService: UrlService;
25
+ readonly interactionServiceAdapter: InteractionServiceRoutingAdapter;
26
+ storeVisit(visit: Visit): void;
27
+ getVisitFor(placeDef: PlaceDefinition): Visit;
28
+ readonly canDeactivateInteractionContext: InteractionContext;
29
+ notifyActive(): void;
30
+ onRouterStarted(event: NavigationStart): void;
31
+ onUrlChange(url: string): void;
32
+ onPopState(event: NavigationStart): void;
33
+ onRouterCancelled(event: NavigationCancel): void;
34
+ onRouterError(event: NavigationError): void;
35
+ onRouterEnd(event: NavigationEnd): void;
36
+ getVisits(): Visit[];
37
+ protected illegalTransition<R>(message: string | RouterEvent): R;
38
+ protected currentRouterUrl(): string;
39
+ resetBrowserLocation(url: any, options?: {
40
+ replaceCurrent: boolean;
41
+ }): void;
42
+ protected repairBrowserHistoryAndUrlAfterGuardCancellation(poppedHistoryToReplace: string, activeUrl: string): void;
43
+ ignore(event: RouterEvent, reason?: string): void;
44
+ toString(): string;
45
+ protected debugState(properties?: string[]): string;
46
+ canDeactivatePlace(component: PlaceComponent, currentUrl: UrlSnapshot, nextUrl: UrlSnapshot): Promise<boolean | UrlSnapshot>;
47
+ cancelCanDeactivateInteraction(newUrl: string): void;
48
+ abstract handleCanDeactivateCancelledEventScenario(newUrl: string): void;
49
+ protected reinstateUrlAfterAngularChangedItOnCancellation(url: string): void;
50
+ protected detachCanDeactivateInteractionContext(): InteractionContext;
51
+ }
@@ -0,0 +1,7 @@
1
+ import { NavigationCancel, NavigationEnd } from '@angular/router';
2
+ import { AbstractPopStateNavigation } from './abstract-pop-state-navigation';
3
+ export declare class PopStateNavigation extends AbstractPopStateNavigation {
4
+ onRouterCancelled(event: NavigationCancel): void;
5
+ onRouterEnd(event: NavigationEnd): void;
6
+ handleCanDeactivateCancelledEventScenario(locationTriggerUrl: string): void;
7
+ }
@@ -1,4 +1,4 @@
1
- import { Constructable, ValueModel } from '@coolon/pectin';
1
+ import { Constructable } from '@coolon/pectin';
2
2
  import 'reflect-metadata';
3
3
  import { DisposableComponent } from '../components/disposable-component';
4
4
  import { InteractionContext } from '../interaction/interaction-context';
@@ -8,11 +8,14 @@ import { Visit } from './visit';
8
8
  export declare const DEFINITION_META_DATA_KEY = "PLACE_DEFINITION_OPTIONS";
9
9
  export declare const ROUTE_PARAMETER_LIST_KEY: unique symbol;
10
10
  export declare class PlaceComponent extends DisposableComponent {
11
- private visit;
11
+ private visitModel;
12
+ private _inVisitUpdate;
12
13
  interactionContext?: InteractionContext;
13
14
  canDeactivate?(interactionContext: InteractionContext): boolean | Promise<boolean>;
14
15
  constructor();
15
- initialiseVisit(visit: ValueModel<Visit>): void;
16
+ initialiseVisit(visit: Visit, notifyVisitChanged: (current: Visit, previous: Visit) => void): void;
17
+ updateVisit(visit: Visit): void;
18
+ isInitialised(): boolean;
16
19
  private installBinding;
17
20
  readonly placeDefinition: PlaceDefinition;
18
21
  readonly childPlaces: Constructable<PlaceComponent>[];
@@ -1,50 +1,54 @@
1
1
  import { Location } from '@angular/common';
2
- import { ActivatedRoute, ActivatedRouteSnapshot, NavigationExtras, Router, UrlSerializer } from '@angular/router';
3
- import { GarbageCollector, HasOneIndexChain, ListModel, ValueModel } from '@coolon/pectin';
2
+ import { ActivatedRoute, NavigationCancel, NavigationEnd, NavigationError, NavigationExtras, NavigationStart, Router } from '@angular/router';
3
+ import { GarbageCollector, HasOneIndexChain, ListModel, MutableValueModel, ValueModelChain } from '@coolon/pectin';
4
4
  import { InteractionService } from '../interaction/services/interaction.service';
5
- import { NavigationState } from './guards/navigation-state';
5
+ import { NavigationSession } from './navigation/session/navigation-session';
6
6
  import { PlaceHistory } from './place-history';
7
+ import { UrlService } from './url-service';
7
8
  import { UrlSnapshot } from './url-snapshot';
8
9
  import { Visit } from './visit';
9
10
  export declare class PlaceRouter extends GarbageCollector {
10
- private readonly router;
11
- private readonly urlSerializer;
11
+ private readonly angularRouter;
12
12
  private readonly angularLocation;
13
- private readonly placeHistory;
14
13
  private readonly interactionService;
15
- private readonly _navigationStateModel;
14
+ private readonly urlService;
15
+ private readonly placeHistory;
16
+ readonly navigationSessionModel: MutableValueModel<NavigationSession>;
17
+ readonly navigationInProgress: ValueModelChain<boolean>;
18
+ readonly navigationSessionName: ValueModelChain<string>;
19
+ private readonly navigationContext;
16
20
  private readonly _activeVisits;
17
- readonly navigationInProgress: ValueModel<boolean>;
18
- readonly activeVisitIndex: HasOneIndexChain<'placeDefinition', Visit>;
19
- private _navigationSessionContext;
20
- private _navigationStateTypeModel;
21
- constructor(router: Router, urlSerializer: UrlSerializer, angularLocation: Location, placeHistory: PlaceHistory, interactionService: InteractionService);
22
- private processNavigationSuccess;
23
- readonly navigationState: NavigationState;
24
- readonly navigationStateModel: ValueModel<NavigationState>;
25
- readonly activeVisits: ListModel<Visit>;
26
- /**
27
- * placeRouter.navigate(placeDestinations.somePlace.createVisit(routeId, ...visitParams));
28
- * @param visit
29
- */
21
+ readonly activeVisitsByPlaceDefinition: HasOneIndexChain<'placeDefinition', Visit>;
22
+ private routerInteractionAdapter;
23
+ private sessionFinishedJobs;
24
+ constructor(angularRouter: Router, angularLocation: Location, interactionService: InteractionService, urlService: UrlService, placeHistory: PlaceHistory);
25
+ readonly navigationSession: NavigationSession;
26
+ readonly currentSession: NavigationSession;
27
+ onPopState(event: NavigationStart): void;
28
+ onRouterStarted(event: NavigationStart): void;
29
+ onUrlChanged(newUrl: string): void;
30
+ onRouterCancelled(event: NavigationCancel): void;
31
+ onRouterError(event: NavigationError): void;
32
+ onRouterEnd(event: NavigationEnd): void;
30
33
  navigate(visit: Visit, options?: {
31
34
  relativeTo: ActivatedRoute;
32
35
  }): Promise<void>;
33
- pushVisitChangesToRoute(activatedRoute: ActivatedRoute, previous: Visit, next: Visit): Promise<void>;
34
36
  doNavigation(visit: Visit, runNavigationCommands: (router: Router) => any): Promise<void>;
35
- protected runStateTransition(transition: (navigationSession: NavigationState) => NavigationState): void;
36
- private createRouteParameters;
37
- extractChildPath(activatedRoute: ActivatedRouteSnapshot): any[];
38
- parseUrl(url: string): UrlSnapshot;
39
- resetBrowserLocation(url: string, options: {
40
- replaceCurrent: boolean;
41
- }): void;
42
- forward(): void;
43
- createUrlSnapshot(...visits: Visit[]): UrlSnapshot;
44
- getCurrentRouterUrl(): string;
45
- getCurrentRouteSnapshot(): UrlSnapshot;
46
- getActiveInteractionIdsFromUrl(url: string): string[];
47
- hasActiveInteractionIds(url: string): boolean;
48
37
  navigateByUrl(urlSnapshot: UrlSnapshot, navigationExtras?: NavigationExtras): Promise<boolean>;
49
- syncInteractionIdsWithRouter(currentIds: string[], previous: string[]): void;
38
+ readonly activeVisits: ListModel<Visit>;
39
+ pushVisitChangesToRoute(previous: Visit, next: Visit): Promise<void>;
40
+ private createNavigationSession;
41
+ protected transitionTo(next: NavigationSession): void;
42
+ private routingSessionFinished;
43
+ private runAfterCurrentRoutingSession;
44
+ /**
45
+ * Sync's the current interaction state with the URL. We need to push something in the URL in order
46
+ * to be able to capture the back button on the first page. If we don't then the back click will exit
47
+ * the app directly and we don't get to ask.
48
+ */
49
+ syncInteractionContextIdsWithRouter(): Promise<unknown>;
50
+ private createRouteParameters;
51
+ }
52
+ export declare namespace NavigationStateMachine {
53
+ type VisitsUpdatedCallback = (visits: Visit[]) => void;
50
54
  }
@@ -0,0 +1,30 @@
1
+ import { Location } from '@angular/common';
2
+ import { Router, UrlSerializer } from '@angular/router';
3
+ import { UrlSnapshot } from './url-snapshot';
4
+ import { Visit } from './visit';
5
+ export declare class UrlService {
6
+ private readonly angularRouter;
7
+ readonly angularLocation: Location;
8
+ readonly urlSerializer: UrlSerializer;
9
+ constructor(angularRouter: Router, angularLocation: Location, urlSerializer: UrlSerializer);
10
+ parseUrl(url: string): UrlSnapshot;
11
+ createUrlSnapshot(...visits: Visit[]): UrlSnapshot;
12
+ getCurrentRouterUrl(): string;
13
+ getCurrentLocationUrl(): string;
14
+ /**
15
+ * Return the a UrlSnapshot using the browsers current location. Note this may not be the same
16
+ * as the routers current url.
17
+ */
18
+ getCurrentLocationUrlSnapshot(): UrlSnapshot;
19
+ /**
20
+ * Return the a UrlSnapshot using the routers current state. This may not be the same as
21
+ * the browsers actual url.
22
+ */
23
+ getCurrentRouterSnapshot(): UrlSnapshot;
24
+ getActiveInteractionIdsFromUrl(url: string): string[];
25
+ hasActiveInteractions(url: string): boolean;
26
+ resetBrowserLocation(url: string, options: {
27
+ replaceCurrent: boolean;
28
+ }): void;
29
+ back(): void;
30
+ }
@@ -15,9 +15,11 @@ export declare class UrlSnapshot {
15
15
  protected getSegmentsFor(visit: Visit): UrlSegment[];
16
16
  includesPathOf(placeDef: PlaceDefinition): UrlSegment;
17
17
  getInteractionIds(): string[];
18
- hasInteractionIds(): boolean;
18
+ hasInteractions(): boolean;
19
+ hasInteractionIds(ids: string[]): boolean;
19
20
  updateInteractionIds(ids: string[]): UrlSnapshot;
20
21
  removeInteractionIds(): UrlSnapshot;
22
+ toString(): string;
21
23
  }
22
24
  export declare namespace UrlSnapshot {
23
25
  const INTERACTION_QUERY_PARAM = "aup-interactions";
@@ -23,5 +23,6 @@ export declare class Visit {
23
23
  }): Visit;
24
24
  hasRoutingChangedFrom(other: Visit): boolean;
25
25
  hasChangedFrom(other: Visit): boolean;
26
+ toDebugString(): string;
26
27
  }
27
28
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coolon/angular-ui-powerups",
3
- "version": "0.0.126",
3
+ "version": "0.0.128",
4
4
  "schematics": "./schematics/collection.json",
5
5
  "dependencies": {
6
6
  "ts-morph": "^3.1.3",
@@ -17,7 +17,8 @@ import {
17
17
  InteractionService,
18
18
  PlaceGuard as AbstractPlaceGuard,
19
19
  PlaceHistory,
20
- PlaceRouter
20
+ PlaceRouter,
21
+ UrlService
21
22
  } from '@coolon/angular-ui-powerups';
22
23
  import { <%= config.authGuard.className %> } from '<%= config.authGuard.importPath %>';
23
24
 
@@ -30,12 +31,12 @@ import { <%= config.authGuard.className %> } from '<%= config.authGuard.importPa
30
31
  export class PlaceGuard extends AbstractPlaceGuard {
31
32
  // Note: We need an explicit constructor or the angular injector dies trying to instantiate us.
32
33
  constructor(router: Router,
33
- urlSerializer: UrlSerializer,
34
+ urlService: UrlService,
34
35
  placeRouter: PlaceRouter,
35
36
  placeHistory: PlaceHistory,
36
37
  interactionService:InteractionService,
37
38
  injector: Injector) {
38
- super(router, urlSerializer, placeRouter, placeHistory,interactionService, injector);
39
+ super(router, urlService, placeRouter, placeHistory,interactionService, injector);
39
40
  }
40
41
 
41
42
  getAuthGuard(injector:Injector) {
@@ -1,13 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- import { Activity } from './activity';
6
- /**
7
- * Deprecated. You can now extend the Activity class directly.
8
- * @abstract
9
- * @template D, R, E
10
- */
11
- export class AbstractActivity extends Activity {
12
- }
13
- //# sourceMappingURL=abstract-activity.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"abstract-activity.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/interaction/abstract-activity.ts"],"names":[],"mappings":";;;;AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;;;;;;AAOtC,MAAM,OAAgB,gBAAgC,SAAQ,QAAiB;CAC9E","sourcesContent":["import { DelegatingValueModel, EventListenerList, Trace, ValueModel } from '@coolon/pectin';\nimport { assert } from '@coolon/typescript-utilities';\nimport { DisposableComponent } from '../components/disposable-component';\nimport { Activity } from './activity';\nimport { ActivityOutletContext } from './components/activity-outlet/activity-outlet-context';\nimport { InteractionContext } from './interaction-context';\n\n/**\n * Deprecated. You can now extend the Activity class directly.\n */\nexport abstract class AbstractActivity<D, R, E = any> extends Activity<D, R, E> {\n}\n"]}
@@ -1 +0,0 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"AbstractActivity":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"./activity","name":"Activity","line":10,"character":62},"arity":3}}}]
@@ -1,21 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- /**
6
- * @record
7
- * @template D, R, E
8
- */
9
- export function ActivityOutletContext() { }
10
- if (false) {
11
- /** @type {?} */
12
- ActivityOutletContext.prototype.activityClass;
13
- /** @type {?} */
14
- ActivityOutletContext.prototype.activityData;
15
- /**
16
- * @param {?} component
17
- * @return {?}
18
- */
19
- ActivityOutletContext.prototype.componentReady = function (component) { };
20
- }
21
- //# sourceMappingURL=activity-outlet-context.js.map