@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
@@ -0,0 +1,24 @@
1
+ import { Constructable, Disposable } from '@coolon/pectin';
2
+ import { Activity } from './activity';
3
+ import { Alert } from './alert';
4
+ import { Confirm } from './confirm';
5
+ import { InteractionContext } from './interaction-context';
6
+ export declare abstract class AbstractInteractionContext implements InteractionContext {
7
+ abstract readonly identifier: string;
8
+ abstract cancelActiveActivity(): Promise<boolean>;
9
+ abstract dispose(): void;
10
+ abstract registerDisposable<T extends Disposable>(disposable: T): T;
11
+ abstract isActive(): boolean;
12
+ protected abstract createAndLaunchActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data: D, disableClose: boolean): Promise<R>;
13
+ startActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data?: D): Promise<R>;
14
+ confirm(confirm: Confirm): Promise<boolean>;
15
+ alert(alert: Alert): Promise<void>;
16
+ confirmOrReject(confirm: Confirm): Promise<void>;
17
+ /**
18
+ * Presents the confirmation to the user and runs the activity only if the user confirms.
19
+ * @param confirm:Confirm the confirmation to display.
20
+ * @param activityType the activity to run if confirmed.
21
+ * @param data the activity data.
22
+ */
23
+ confirmThen<D, R, E>(confirm: Confirm, activityType: Constructable<Activity<D, R, E>>, data?: D): Promise<R>;
24
+ }
@@ -0,0 +1,19 @@
1
+ import { Constructable, Deferred } from '@coolon/pectin';
2
+ import { Activity } from './activity';
3
+ import { InteractionContext } from './interaction-context';
4
+ export declare class ActivityRef<D, R, E> {
5
+ readonly activityClass: Constructable<Activity<D, R, E>>;
6
+ readonly activityData: D;
7
+ readonly onComplete: (activityRef: ActivityRef<D, R, E>) => void;
8
+ private _complete;
9
+ private _activity;
10
+ private deferredResult;
11
+ constructor(activityClass: Constructable<Activity<D, R, E>>, activityData: D, onComplete: (activityRef: ActivityRef<D, R, E>) => void);
12
+ isActivityRealised(): boolean;
13
+ isComplete(): boolean;
14
+ readonly activity: Activity<D, R, E>;
15
+ notifyActivityCreated(activity: Activity<D, R, E>, nestedInteractionContext: InteractionContext): void;
16
+ protected finishActivity(resolveOrReject: (deferred: Deferred<R>) => void): void;
17
+ cancel(): void;
18
+ readonly activityResult: Promise<R>;
19
+ }
@@ -1,16 +1,20 @@
1
1
  import { InjectionToken } from '@angular/core';
2
2
  import { GarbageCollector, ValueModel } from '@coolon/pectin';
3
+ import { InteractionContext } from './interaction-context';
3
4
  export declare const ACTIVITY_DATA: InjectionToken<any>;
4
5
  export declare abstract class Activity<D, R, E = any> extends GarbageCollector {
5
6
  private readonly _busyModel;
6
7
  private _activityContext;
7
- initialise(activityContext: Activity.Callbacks<R, E>): void;
8
+ private _interactionContext;
9
+ initialise(nestedInteractionContext: InteractionContext, activityContext: Activity.Callbacks<R, E>): void;
10
+ readonly interactionContext: InteractionContext;
8
11
  done(result?: R): void;
9
12
  cancel(error?: E): void;
10
13
  onActivityReady(): void;
11
14
  readonly busy: ValueModel<boolean>;
12
15
  busyWhile(busyModel: ValueModel<boolean>): void;
13
16
  isBusy(): boolean;
17
+ isInitialised(): boolean;
14
18
  }
15
19
  export declare namespace Activity {
16
20
  interface Callbacks<R, E> {
@@ -1,56 +1,55 @@
1
- import { AfterViewInit, EventEmitter, OnInit, QueryList } from '@angular/core';
1
+ import { AfterViewInit, OnInit, QueryList } from '@angular/core';
2
2
  import { MatTabGroup } from '@angular/material';
3
- import { Constructable, MutableListModel, ValueModel } from '@coolon/pectin';
3
+ import { Constructable, Disposable } from '@coolon/pectin';
4
+ import { AbstractInteractionContext } from '../../abstract-interaction-context';
4
5
  import { Activity } from '../../activity';
5
- import { InteractionContext } from '../../interaction-context';
6
- import { InteractionContextBase } from '../../interaction-context-base';
7
- import { ActivityOutletContext } from '../activity-outlet/activity-outlet-context';
8
- import { ActivityOutletComponent } from '../activity-outlet/activity-outlet.component';
9
- /**
10
- * Note: this class is mutable and is stored in a list model. This is normally a big no no but
11
- * we're manually deriving other models from the list after view state changes. I.e. we not
12
- * using pectin chains on any of the mutable fields.
13
- */
14
- declare class TabContext<D, R, E> implements ActivityOutletContext<D, R, E> {
15
- readonly activityData: D;
16
- readonly activityClass: Constructable<Activity<D, R, E>>;
17
- readonly interactionContext: InteractionContext;
18
- readonly activityCallbacks: Activity.Callbacks<R, E>;
19
- private _complete;
20
- private _component;
21
- constructor(activityData: D, activityClass: Constructable<Activity<D, R, E>>, interactionContext: InteractionContext, activityCallbacks: Activity.Callbacks<R, E>);
22
- isComponentRealised(): boolean;
23
- isComplete(): boolean;
24
- componentReady(component: Activity<D, R, E>): void;
25
- readonly component: Activity<D, R, E>;
26
- onDone(result: R): void;
27
- onCancel(error: E): void;
28
- dispose(): void;
29
- }
30
- export declare class ActivityContainerComponent<D, R, E> extends InteractionContextBase implements OnInit, AfterViewInit {
31
- private readonly throttledNestedActivityFinishEvents;
32
- private readonly _initialActivityOutletContext;
33
- initialActivityOutletContext: ActivityOutletContext<D, R, E>;
34
- initialActivityOutletContextEvent: EventEmitter<ActivityOutletContext<D, R, E>>;
6
+ import { ActivityRef } from '../../activity-ref';
7
+ import { InteractionService } from '../../services/interaction.service';
8
+ import { ActivityOutletComponent } from './activity-outlet/activity-outlet.component';
9
+ export declare class ActivityContainerComponent<D, R, E> extends AbstractInteractionContext implements OnInit, AfterViewInit {
35
10
  dynamicHeight: boolean;
36
11
  tabs: MatTabGroup;
37
- outlets: QueryList<ActivityOutletComponent<any, any, any>>;
38
- readonly activityTabs: MutableListModel<TabContext<any, any, any>>;
39
- readonly active: ValueModel<boolean>;
40
- private readonly _activityList;
12
+ activityOutlets: QueryList<ActivityOutletComponent<any, any, any>>;
13
+ activityTabs: ActivityRef<any, any, any>[];
14
+ private _identifier;
15
+ private _deferredCleanUp;
16
+ private interactionServiceApi;
17
+ private garbage;
18
+ private syncSelectedTabTimeout;
41
19
  constructor();
42
20
  ngOnInit(): void;
43
21
  ngAfterViewInit(): void;
44
- _startActivity<D1, R1, E1>(activityType: Constructable<Activity<D1, R1, E1>>, data?: D1): Promise<R1>;
45
- private finishInitialActivity;
46
- private onNestedActivityFinished;
47
- private cleanupStaleNestedActivities;
22
+ initialise(identifier: string, api: InteractionService.Api): void;
23
+ readonly identifier: string;
24
+ isInitialised(): boolean;
25
+ /**
26
+ * Returns true if an activity is currently running.
27
+ */
28
+ isActive(): boolean;
29
+ registerDisposable<T extends Disposable>(disposable: T): T;
30
+ dispose(): void;
31
+ getActiveActivityRef(): ActivityRef<any, any, any>;
32
+ /**
33
+ * Cancels the current activity and returns true the context is no longer active, false if
34
+ * there is still another activity running.
35
+ */
36
+ cancelActiveActivity(): Promise<boolean>;
37
+ protected createAndLaunchActivity<D1, R1, E1>(activityType: Constructable<Activity<D1, R1, E1>>, data: D1, disableClose: boolean): Promise<R1>;
38
+ private getActiveActivityCount;
39
+ /**
40
+ * Checks if this interaction context has finished an is in the process of waiting
41
+ * for all the infrastructure (including route updates) to be completed.
42
+ */
43
+ isCleaningUp(): boolean;
44
+ waitForInteractionContextCleanupToFinish(): Promise<any>;
45
+ private finishAndStartCleanup;
46
+ launchActivity<D1, R1, E1>(activityRef: ActivityRef<D1, R1, E1>): void;
47
+ activityIndex(index: number, activityRef: ActivityRef<any, any, any>): number;
48
+ private onAnimationFinished;
48
49
  /**
49
50
  * Synchronises the selected tab index. Returns true if there was no change to the selected index.
50
51
  */
51
52
  private synchroniseSelectedTabIndex;
52
- private onAnimationFinished;
53
- private updateActivityList;
54
53
  private getSelectedOutlet;
54
+ private triggerTabSynchronisation;
55
55
  }
56
- export {};
@@ -1,24 +1,21 @@
1
1
  import { ComponentFactoryResolver, Injector, OnInit, ViewContainerRef } from '@angular/core';
2
- import { Activity } from '../../activity';
3
- import { InteractionContext } from '../../interaction-context';
4
- import { ActivityOutletContext } from './activity-outlet-context';
2
+ import { Activity } from '../../../activity';
3
+ import { ActivityRef } from '../../../activity-ref';
4
+ import { InteractionContext } from '../../../interaction-context';
5
5
  /**
6
6
  * ActivityOutletComponent creates and displays an activity and delegates the interaction context functionality to an
7
7
  * external service.
8
- *
9
- * It might be nice to have wrapper component that allows more declarative use, i.e.
10
- * <activity-view [activityClass]="...", [activityData]="..." (done)=".." (cancel)="..."></activity-view>
11
8
  */
12
9
  export declare class ActivityOutletComponent<D, R, E> implements OnInit {
13
10
  private componentFactoryResolver;
14
11
  private viewContainerRef;
15
12
  private injector;
16
- interactionContext: InteractionContext;
17
- private _activityContext;
18
- activityContext: ActivityOutletContext<D, R, E>;
19
13
  private activityComponentRef;
14
+ nestedInteractionContext: InteractionContext;
15
+ private _activityRef;
16
+ activityRef: ActivityRef<D, R, E>;
20
17
  constructor(componentFactoryResolver: ComponentFactoryResolver, viewContainerRef: ViewContainerRef, injector: Injector);
21
18
  ngOnInit(): void;
22
- loadActivity(activityContext: ActivityOutletContext<D, R, E>): void;
19
+ loadActivity(activityRef: ActivityRef<D, R, E>): void;
23
20
  readonly component: Activity<D, R, E>;
24
21
  }
@@ -1,7 +1,7 @@
1
1
  import { OnInit } from '@angular/core';
2
- import { AbstractActivity } from '../../abstract-activity';
2
+ import { Activity } from '../../activity';
3
3
  import { Alert } from '../../alert';
4
- export declare class AlertDialogComponent extends AbstractActivity<Alert, void> implements OnInit {
4
+ export declare class AlertDialogComponent extends Activity<Alert, void> implements OnInit {
5
5
  readonly alert: Alert;
6
6
  constructor(alert: Alert);
7
7
  ngOnInit(): void;
@@ -1,13 +1,10 @@
1
1
  import { OnInit } from '@angular/core';
2
2
  import { Constructable } from '@coolon/pectin';
3
- import { AbstractActivity } from '../../abstract-activity';
4
3
  import { Activity } from '../../activity';
5
4
  import { Confirm } from '../../confirm';
6
- import { InteractionContext } from '../../interaction-context';
7
- export declare class ConfirmThenDialogComponent<D, R, E> extends AbstractActivity<ConfirmThenDialogComponent.Data<D, R, E>, R, E> implements OnInit {
5
+ export declare class ConfirmThenDialogComponent<D, R, E> extends Activity<ConfirmThenDialogComponent.Data<D, R, E>, R, E> implements OnInit {
8
6
  readonly config: ConfirmThenDialogComponent.Data<D, R, E>;
9
- readonly interactionContext: InteractionContext;
10
- constructor(config: ConfirmThenDialogComponent.Data<D, R, E>, interactionContext: InteractionContext);
7
+ constructor(config: ConfirmThenDialogComponent.Data<D, R, E>);
11
8
  ngOnInit(): void;
12
9
  readonly confirm: Confirm;
13
10
  isDestructive(): boolean;
@@ -1,7 +1,7 @@
1
1
  import { OnInit } from '@angular/core';
2
- import { AbstractActivity } from '../../abstract-activity';
2
+ import { Activity } from '../../activity';
3
3
  import { Confirm } from '../../confirm';
4
- export declare class ConfirmationDialogComponent extends AbstractActivity<Confirm, void> implements OnInit {
4
+ export declare class ConfirmationDialogComponent extends Activity<Confirm, void> implements OnInit {
5
5
  readonly confirm: Confirm;
6
6
  constructor(confirm: Confirm);
7
7
  ngOnInit(): void;
@@ -0,0 +1,24 @@
1
+ import { AfterViewInit } from '@angular/core';
2
+ import { Constructable } from '@coolon/pectin';
3
+ import { DisposableComponent } from '../../../components/disposable-component';
4
+ import { Activity } from '../../activity';
5
+ import { Alert } from '../../alert';
6
+ import { Confirm } from '../../confirm';
7
+ import { InteractionContext } from '../../interaction-context';
8
+ import { InteractionService } from '../../services/interaction.service';
9
+ import { ActivityContainerComponent } from '../activity-container/activity-container.component';
10
+ export declare class InPlaceInteractionContextComponent<D, R, E> extends DisposableComponent implements InteractionContext, AfterViewInit {
11
+ readonly interactionService: InteractionService;
12
+ activityContainerComponent: ActivityContainerComponent<any, any, any>;
13
+ constructor(interactionService: InteractionService);
14
+ ngAfterViewInit(): void;
15
+ initialise(id: string, api: InteractionService.Api): void;
16
+ readonly identifier: string;
17
+ alert(alert: Alert): Promise<void>;
18
+ cancelActiveActivity(): Promise<boolean>;
19
+ confirm(confirm: Confirm): Promise<boolean>;
20
+ confirmOrReject(confirm: Confirm): Promise<void>;
21
+ confirmThen<D1, R1, E1>(confirm: Confirm, activityType: Constructable<Activity<D1, R1, E1>>, data?: D1): Promise<R1>;
22
+ isActive(): boolean;
23
+ startActivity<D1, R1, E1>(activityType: Constructable<Activity<D1, R1, E1>>, data?: D1): Promise<R1>;
24
+ }
@@ -1,21 +1,22 @@
1
1
  /**
2
2
  * @file Automatically generated by barrelsby.
3
3
  */
4
- export * from "./abstract-activity";
4
+ export * from "./abstract-interaction-context";
5
+ export * from "./activity-ref";
5
6
  export * from "./activity";
6
7
  export * from "./alert";
7
8
  export * from "./confirm";
8
- export * from "./interaction-context-base";
9
9
  export * from "./interaction-context";
10
10
  export * from "./interaction.module";
11
11
  export * from "./result";
12
+ export * from "./route-synchronisation-adapter";
12
13
  export * from "./components/activity-container/activity-container.component";
13
- export * from "./components/activity-outlet/activity-outlet-context";
14
- export * from "./components/activity-outlet/activity-outlet.component";
14
+ export * from "./components/activity-container/activity-outlet/activity-outlet.component";
15
15
  export * from "./components/alert-dialog/alert-dialog.component";
16
16
  export * from "./components/confirm-then-dialog/confirm-then-dialog.component";
17
17
  export * from "./components/confirmation-dialog/confirmation-dialog.component";
18
- export * from "./components/inplace-interaction-context/inplace-interaction-context.component";
18
+ export * from "./components/inplace-interaction-context/in-place-interaction-context.component";
19
+ export * from "./services/interaction-service-routing-adapter";
19
20
  export * from "./services/interaction.service";
20
21
  export * from "./services/modal-interaction-context.factory";
21
22
  export * from "./services/mat-dialog-interaction/dialog-interaction-context-factory";
@@ -1,35 +1,14 @@
1
- import { Constructable, GarbageCollector, ListModel, ValueModel } from '@coolon/pectin';
1
+ import { Constructable, Disposable } from '@coolon/pectin';
2
2
  import { Activity } from './activity';
3
3
  import { Alert } from './alert';
4
4
  import { Confirm } from './confirm';
5
- export declare abstract class InteractionContext extends GarbageCollector {
6
- abstract readonly active: ValueModel<boolean>;
7
- abstract readonly activityList: ListModel<Activity<any, any, any>>;
8
- abstract readonly activeActivity: ValueModel<Activity<any, any, any>>;
9
- /**
10
- * Returns true if an activity is currently running.
11
- */
5
+ export interface InteractionContext extends Disposable, Disposable.Collector {
6
+ readonly identifier: string;
12
7
  isActive(): boolean;
13
- dispose(): void;
14
- /**
15
- * Cancels the current activity and returns true the context is no longer active, false if
16
- * there is still another activity running.
17
- */
8
+ startActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data?: D): Promise<R>;
18
9
  cancelActiveActivity(): Promise<boolean>;
19
- /**
20
- * Returns the activity that is currently active.
21
- * This model is only updated in the next tick after the view has been updated.
22
- */
23
- abstract getActiveActivity(): Promise<Activity<any, any>>;
24
- abstract startActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data?: D): Promise<R>;
25
- abstract alert(alert: Alert): Promise<void>;
26
- abstract confirm(confirm: Confirm): Promise<boolean>;
27
- abstract confirmOrReject(confirm: Confirm): Promise<void>;
28
- /**
29
- * Presents the confirmation to the user and runs the activity only if the user confirms.
30
- * @param confirm:Confirm the confirmation to display.
31
- * @param activityType the activity to run if confirmed.
32
- * @param data the activity data.
33
- */
34
- abstract confirmThen<D, R, E>(confirm: Confirm, activityType: Constructable<Activity<D, R, E>>, data?: D): Promise<R>;
10
+ confirm(confirm: Confirm): Promise<boolean>;
11
+ alert(alert: Alert): Promise<void>;
12
+ confirmOrReject(confirm: Confirm): Promise<void>;
13
+ confirmThen<D, R, E>(confirm: Confirm, activityType: Constructable<Activity<D, R, E>>, data?: D): Promise<R>;
35
14
  }
@@ -0,0 +1,5 @@
1
+ import { Activity } from './activity';
2
+ import { InteractionContext } from './interaction-context';
3
+ export interface RouteSynchronisationAdapter {
4
+ synchroniseRoute(interactionContext: InteractionContext, activities: Activity<any, any>[]): any;
5
+ }
@@ -0,0 +1,15 @@
1
+ import { ListModel, ValueModel } from '@coolon/pectin';
2
+ import { PlaceComponent } from '../../place/place-component';
3
+ import { InteractionContext } from '../interaction-context';
4
+ export declare class InteractionServiceRoutingAdapter {
5
+ private readonly activeInteractionContextIds;
6
+ private readonly activeModalContext;
7
+ readonly createExclusiveInteractionContext: () => InteractionContext;
8
+ constructor(activeInteractionContextIds: ListModel<string>, activeModalContext: ValueModel<InteractionContext>, createExclusiveInteractionContext: () => InteractionContext);
9
+ isActive(): boolean;
10
+ isModalActive(): boolean;
11
+ isComponentInteracting(component: PlaceComponent): boolean;
12
+ getActiveInteractionContextIds(): string[];
13
+ cancelCurrentModalInteraction(): Promise<boolean>;
14
+ cancelComponentInteraction(component: PlaceComponent): Promise<boolean>;
15
+ }
@@ -1,20 +1,23 @@
1
- import { BooleanValueModelChain, Disposable, GarbageCollector, ListModelChain, MutableValueModel, ValueModel } from '@coolon/pectin';
1
+ import { BooleanValueModelChain, Disposable, GarbageCollector, ListModel, ListModelChain, ValueModel } from '@coolon/pectin';
2
+ import { PlaceRouter } from '../../place/place-router';
3
+ import { InPlaceInteractionContextComponent } from '../components/inplace-interaction-context/in-place-interaction-context.component';
2
4
  import { InteractionContext } from '../interaction-context';
5
+ import { InteractionServiceRoutingAdapter } from './interaction-service-routing-adapter';
3
6
  import { ModalInteractionContextFactory } from './modal-interaction-context.factory';
4
7
  export declare class InteractionService {
5
8
  readonly modelInteractionContextFactory: ModalInteractionContextFactory;
6
9
  private readonly garbage;
7
10
  readonly active: BooleanValueModelChain;
8
- private readonly exclusiveContext;
9
- private readonly _activeModalInteractionContextModel;
10
- private readonly _activeInlineInteractionContextModel;
11
- private readonly _activeInteractionContext;
11
+ private readonly _navigationInProgress;
12
+ private placeRouter;
13
+ private exclusiveInteractionRegistry;
14
+ private modalInteractionRegistry;
15
+ private inPlaceInteractionRegistry;
16
+ private activeModalContext;
12
17
  readonly activeInteractionContextIds: ListModelChain<string>;
13
- readonly modelInteractionActive: BooleanValueModelChain;
14
- readonly inlineInteractionActive: BooleanValueModelChain;
18
+ readonly inModalInteraction: BooleanValueModelChain;
15
19
  constructor(modelInteractionContextFactory: ModalInteractionContextFactory);
16
20
  isActive(): boolean;
17
- isModalActive(): boolean;
18
21
  /**
19
22
  * @deprecated use #createModalInteractionContextDisposedWith instead.
20
23
  * @param disposable
@@ -25,8 +28,7 @@ export declare class InteractionService {
25
28
  * @param disposable
26
29
  */
27
30
  createModalInteractionContextDisposedWith(disposable: Disposable.Collector): InteractionContext;
28
- _registerInplaceInteractionContext(interactionContext: InteractionContext): void;
29
- getActiveContext(): InteractionContext;
31
+ registerInplaceInteractionContext(interactionContext: InPlaceInteractionContextComponent<any, any, any>): void;
30
32
  /**
31
33
  * Creates an interaction context that will prevent any other contexts from starting an
32
34
  * activity until it is disposed. This is intended for use by the router for passing
@@ -34,22 +36,48 @@ export declare class InteractionService {
34
36
  * try and interact in a way that we can't track and synchronise with the browser back
35
37
  * button.
36
38
  */
37
- _createExclusiveModalInteractionContext(): InteractionContext;
39
+ registerPlaceRouter(router: PlaceRouter): InteractionServiceRoutingAdapter;
38
40
  }
39
41
  export declare namespace InteractionService {
40
- interface Callback {
41
- onStarted(monitor: Monitor): any;
42
- onFinished(monitor: Monitor): any;
42
+ interface Api {
43
+ /**
44
+ * Notifies the interaction service that a particular interactionContext has become active. The interaction
45
+ * services will then push changes to the router to track state. If the router is idle, the promise will
46
+ * resolve when the routing has finished updating. Otherwise it will return immediately.
47
+ * @param interactionContext
48
+ */
49
+ notifyActive(interactionContext: InteractionContext): Promise<unknown>;
50
+ /**
51
+ * Notifies the interaction service that a particular interactionContext has become idle. The interaction
52
+ * services will then push changes to the router to track state. If the router is idle, the promise will
53
+ * resolve when the routing has finished updating. Otherwise it will return immediately.
54
+ * @param interactionContext
55
+ */
56
+ notifyFinished(interactionContext: InteractionContext): Promise<unknown>;
43
57
  }
44
- class Monitor extends GarbageCollector {
45
- readonly id: string;
46
- readonly interactionContext: InteractionContext;
47
- readonly currentActiveMonitor: MutableValueModel<Monitor>;
48
- readonly exclusiveContext: ValueModel<InteractionContext>;
49
- constructor(id: string, interactionContext: InteractionContext, currentActiveMonitor: MutableValueModel<Monitor>, exclusiveContext: ValueModel<InteractionContext>);
50
- protected onStarted(): void;
51
- private assertCanStart;
52
- protected onFinished(): void;
53
- private assertCurrentlyActive;
58
+ /**
59
+ * Provides a mechanism for the service to keep track of what the API adapters are doing to
60
+ * ensure the rules are followed, i.e. modal or in-place interaction aren't started while
61
+ * an exclusive routing interaction is active.
62
+ */
63
+ class ContextRegistry extends GarbageCollector {
64
+ private _interactions;
65
+ private _disabledDelegate;
66
+ readonly active: BooleanValueModelChain;
67
+ readonly interactionContextIds: ListModelChain<string>;
68
+ constructor();
69
+ readonly interactionContexts: ListModel<InteractionContext>;
70
+ start(context: InteractionContext): void;
71
+ finish(context: InteractionContext): void;
72
+ isActive(): boolean;
73
+ disableWhen(disabled: ValueModel<boolean>): void;
74
+ }
75
+ class ApiAdapter implements Api {
76
+ private readonly placeRouter;
77
+ private readonly contextRegistry;
78
+ constructor(placeRouter: PlaceRouter, contextRegistry: ContextRegistry);
79
+ notifyActive(context: InteractionContext): Promise<any>;
80
+ private isNavigationInProgress;
81
+ notifyFinished(context: InteractionContext): Promise<any>;
54
82
  }
55
83
  }
@@ -3,6 +3,7 @@ import { MatDialog } from '@angular/material';
3
3
  import { MatDialogConfig } from '@angular/material/dialog';
4
4
  import { BooleanValueModelChain } from '@coolon/pectin';
5
5
  import { InteractionContext } from '../../interaction-context';
6
+ import { InteractionService } from '../interaction.service';
6
7
  import { ModalInteractionContextFactory } from '../modal-interaction-context.factory';
7
8
  export declare const DIALOG_INTERACTION_SERVICE_DEFAULTS: InjectionToken<MatDialogConfig<any>>;
8
9
  export declare class DialogInteractionContextFactory extends ModalInteractionContextFactory {
@@ -11,5 +12,5 @@ export declare class DialogInteractionContextFactory extends ModalInteractionCon
11
12
  readonly matDialogDefaultConfig: MatDialogConfig<any>;
12
13
  readonly active: BooleanValueModelChain;
13
14
  constructor(dialogService: MatDialog, dialogServiceDefaults: MatDialogConfig<any>, matDialogDefaultConfig: MatDialogConfig<any>);
14
- createInteractionContext(): InteractionContext;
15
+ createInteractionContext(identifier: string, api: InteractionService.Api): InteractionContext;
15
16
  }
@@ -1,18 +1,21 @@
1
1
  import { MatDialog } from '@angular/material';
2
2
  import { MatDialogConfig } from '@angular/material/dialog';
3
- import { Constructable, ListModel, ValueModel } from '@coolon/pectin';
3
+ import { Constructable, Disposable } from '@coolon/pectin';
4
+ import { AbstractInteractionContext } from '../../abstract-interaction-context';
4
5
  import { Activity } from '../../activity';
5
- import { InteractionContextBase } from '../../interaction-context-base';
6
- export declare class DialogInteractionContext extends InteractionContextBase {
6
+ import { InteractionService } from '../interaction.service';
7
+ export declare class DialogInteractionContext extends AbstractInteractionContext {
8
+ readonly identifier: string;
9
+ private readonly api;
7
10
  private readonly dialogService;
8
11
  readonly config: MatDialogConfig<any>;
9
- private readonly _activeModel;
10
- constructor(dialogService: MatDialog, config: MatDialogConfig<any>);
11
- readonly active: ValueModel<boolean>;
12
- protected _startActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data: D, disableClose?: boolean): Promise<R>;
13
- /**
14
- * Updates teh delegate on the next tick to avoid modifying state during the current change detection cycle.
15
- * @param delegate
16
- */
17
- safelyUpdateActivityListDelegate(delegate: ListModel<Activity<any, any>>): void;
12
+ private garbage;
13
+ private _currentActivityRef;
14
+ private activityContainer;
15
+ constructor(identifier: string, api: InteractionService.Api, dialogService: MatDialog, config: MatDialogConfig<any>);
16
+ cancelActiveActivity(): Promise<boolean>;
17
+ dispose(): void;
18
+ registerDisposable<T extends Disposable>(disposable: T): T;
19
+ isActive(): boolean;
20
+ protected createAndLaunchActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data: D, disableClose: boolean): Promise<R>;
18
21
  }
@@ -1,4 +1,5 @@
1
1
  import { InteractionContext } from '../interaction-context';
2
+ import { InteractionService } from './interaction.service';
2
3
  export declare abstract class ModalInteractionContextFactory {
3
- abstract createInteractionContext(): InteractionContext;
4
+ abstract createInteractionContext(identifier: string, api: InteractionService.Api): InteractionContext;
4
5
  }
@@ -1,9 +1,10 @@
1
1
  import { OnInit } from '@angular/core';
2
- import { Command, Constructable, ListModel, ListModelChain, ValueModel, ValueModelChain } from '@coolon/pectin';
2
+ import { Command, Constructable, DelegatingValueModel, ListModel, ListModelChain, ValueModel } from '@coolon/pectin';
3
3
  import { DisposableComponent } from '../../components/disposable-component';
4
4
  import { NavItem } from '../nav-item';
5
5
  import { PlaceComponent } from '../place-component';
6
6
  import { PlaceDefinition } from '../place-definition';
7
+ import { PlaceRouter } from '../place-router';
7
8
  import { PlaceOutletComponent } from './place-outlet/place-outlet.component';
8
9
  export declare class AbstractPlaceNavigationComponent extends DisposableComponent implements OnInit {
9
10
  places: Constructable<PlaceComponent>[];
@@ -12,8 +13,9 @@ export declare class AbstractPlaceNavigationComponent extends DisposableComponen
12
13
  placeOutletModel: ValueModel<PlaceOutletComponent>;
13
14
  readonly placeDefinitions: ListModelChain<PlaceDefinition>;
14
15
  readonly commandFactory: Command.Factory<PlaceDefinition, void>;
15
- readonly activePlaceDefinition: ValueModelChain<PlaceDefinition>;
16
- constructor();
16
+ readonly _activePlaceComponent: DelegatingValueModel<PlaceComponent>;
17
+ private activePlaceDefinition;
18
+ constructor(placeRouter: PlaceRouter);
17
19
  getNav(placeDef: PlaceDefinition): NavItem;
18
20
  isActive(place: PlaceDefinition): boolean;
19
21
  ngOnInit(): void;
@@ -1,7 +1,8 @@
1
+ import { PlaceRouter } from '../../place-router';
1
2
  import { AbstractPlaceNavigationComponent } from '../abstract-place-navigation.component';
2
3
  export declare class ListPlaceNavComponent extends AbstractPlaceNavigationComponent {
3
4
  expanded: boolean;
4
- constructor();
5
+ constructor(placeRouter: PlaceRouter);
5
6
  expandMenu(): void;
6
7
  collapseMenu(): void;
7
8
  toggleMenu(): void;
@@ -16,30 +16,29 @@ export declare class PlaceOutletComponent extends DisposableComponent implements
16
16
  customPlaceAnimationOrder: Constructable<PlaceComponent>[];
17
17
  readonly placeChanged: EventEmitter<PlaceComponent>;
18
18
  routerOut: RouterOutlet;
19
- private readonly _activePlace;
20
- private readonly _activePlaceVisitModel;
21
- private readonly _inOutletActivation;
22
- private readonly _inOutletDeactivation;
23
- private readonly _inOutletUpdate;
24
- private readonly _inRouteVisitUpdate;
19
+ private outletActivated;
25
20
  private readonly _activatedRouteModel;
26
- private readonly _placeDefinition;
21
+ private readonly _activePlaceModel;
22
+ private readonly _activePlaceDefinition;
27
23
  private parentOutletModel;
28
24
  readonly placeAnimationOrder: ValueModelChain<number>;
29
25
  private initialPlaceIndex;
30
- private routerVisit;
26
+ private routerVisitModel;
27
+ private _isPushingVisitToRoute;
28
+ private navigationInProgress;
31
29
  constructor(router: Router, placeRouter: PlaceRouter, placeConfig: PlaceConfig, parentOutlet: PlaceOutletComponent);
32
30
  ngOnInit(): void;
33
31
  getAnimationOrder(): number;
34
32
  readonly animationDuration: string;
35
33
  navigate(visit: Visit): void;
36
34
  readonly parentOutlet: PlaceOutletComponent;
37
- pushRouteChangesToVisit(): void;
38
- pushVisitChangesToRoute(next: Visit, previous: Visit): void;
39
35
  readonly activePlaceModel: ValueModel<PlaceComponent>;
40
36
  readonly activatedRouteModel: ValueModel<ActivatedRoute>;
41
37
  onOutletActivated(routerOutlet: RouterOutlet, place: PlaceComponent): void;
42
38
  onOutletDeactivated(): void;
39
+ private checkStateAndInitialise;
40
+ private initialisePlace;
41
+ private pushVisitChangeToRoute;
43
42
  animationStarted(): void;
44
43
  animationDone(): void;
45
44
  }
@@ -1,4 +1,5 @@
1
+ import { PlaceRouter } from '../../place-router';
1
2
  import { AbstractPlaceNavigationComponent } from '../abstract-place-navigation.component';
2
3
  export declare class TabbedPlaceNavigationComponent extends AbstractPlaceNavigationComponent {
3
- constructor();
4
+ constructor(placeRouter: PlaceRouter);
4
5
  }