@coolon/angular-ui-powerups 2.0.0-alpha.8 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (372) hide show
  1. package/CHANGELOG.md +212 -0
  2. package/assets/commands.scss +3 -0
  3. package/assets/icons.scss +30 -0
  4. package/assets/interaction.scss +5 -0
  5. package/assets/styles.scss +2 -0
  6. package/assets/tabs.scss +1 -1
  7. package/bundles/coolon-angular-ui-powerups.umd.js +1729 -377
  8. package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
  9. package/bundles/coolon-angular-ui-powerups.umd.min.js +2 -2
  10. package/bundles/coolon-angular-ui-powerups.umd.min.js.map +1 -1
  11. package/coolon-angular-ui-powerups.d.ts +67 -54
  12. package/coolon-angular-ui-powerups.metadata.json +1 -1
  13. package/esm2015/coolon-angular-ui-powerups.js +65 -52
  14. package/esm2015/coolon-angular-ui-powerups.js.map +1 -1
  15. package/esm2015/coolon-angular-ui-powerups.metadata.json +1 -1
  16. package/esm2015/lib/angular-ui-powerups.module.ngfactory.js.map +1 -1
  17. package/esm2015/lib/components/card-container/card-container.component.js +1 -1
  18. package/esm2015/lib/components/card-container/card-container.component.metadata.json +1 -1
  19. package/esm2015/lib/components/commands/command/command.component.js +61 -0
  20. package/esm2015/lib/components/commands/command/command.component.js.map +1 -0
  21. package/esm2015/lib/components/commands/command/command.component.metadata.json +1 -0
  22. package/esm2015/lib/components/commands/command/command.component.ngfactory.js.map +1 -0
  23. package/esm2015/lib/components/commands/command-face/command-face.component.js +92 -0
  24. package/esm2015/lib/components/commands/command-face/command-face.component.js.map +1 -0
  25. package/esm2015/lib/components/commands/command-face/command-face.component.metadata.json +1 -0
  26. package/esm2015/lib/components/commands/command-face/command-face.component.ngfactory.js.map +1 -0
  27. package/esm2015/lib/components/commands/command-face/command-face.component.scss.ngstyle.js.map +1 -0
  28. package/esm2015/lib/components/commands/command-face.js +112 -0
  29. package/esm2015/lib/components/commands/command-face.js.map +1 -0
  30. package/esm2015/lib/components/commands/command-face.metadata.json +1 -0
  31. package/esm2015/lib/components/commands/flex.component.js +30 -0
  32. package/esm2015/lib/components/commands/flex.component.js.map +1 -0
  33. package/esm2015/lib/components/commands/flex.component.metadata.json +1 -0
  34. package/esm2015/lib/components/commands/flex.component.ngfactory.js.map +1 -0
  35. package/esm2015/lib/components/commands/group/command-group/command-group.component.js +47 -0
  36. package/esm2015/lib/components/commands/group/command-group/command-group.component.js.map +1 -0
  37. package/esm2015/lib/components/commands/group/command-group/command-group.component.metadata.json +1 -0
  38. package/esm2015/lib/components/commands/group/command-group/command-group.component.ngfactory.js.map +1 -0
  39. package/esm2015/lib/components/commands/group/command-group-menu-renderer/command-group-menu-renderer.component.js +55 -0
  40. package/esm2015/lib/components/commands/group/command-group-menu-renderer/command-group-menu-renderer.component.js.map +1 -0
  41. package/esm2015/lib/components/commands/group/command-group-menu-renderer/command-group-menu-renderer.component.metadata.json +1 -0
  42. package/esm2015/lib/components/commands/group/command-group-menu-renderer/command-group-menu-renderer.component.ngfactory.js.map +1 -0
  43. package/esm2015/lib/components/commands/group/command-group-renderer/command-group-renderer.component.js +39 -0
  44. package/esm2015/lib/components/commands/group/command-group-renderer/command-group-renderer.component.js.map +1 -0
  45. package/esm2015/lib/components/commands/group/command-group-renderer/command-group-renderer.component.metadata.json +1 -0
  46. package/esm2015/lib/components/commands/group/command-group-renderer/command-group-renderer.component.ngfactory.js.map +1 -0
  47. package/esm2015/lib/components/commands/group/command-group-renderer/command-group-renderer.component.scss.shim.ngstyle.js.map +1 -0
  48. package/esm2015/lib/components/commands/group/command-group.js +100 -0
  49. package/esm2015/lib/components/commands/group/command-group.js.map +1 -0
  50. package/esm2015/lib/components/commands/group/command-group.metadata.json +1 -0
  51. package/esm2015/lib/components/commands/group/more-menu.component.js +55 -0
  52. package/esm2015/lib/components/commands/group/more-menu.component.js.map +1 -0
  53. package/esm2015/lib/components/commands/group/more-menu.component.metadata.json +1 -0
  54. package/esm2015/lib/components/commands/group/more-menu.component.ngfactory.js.map +1 -0
  55. package/esm2015/lib/components/commands/group/popup-menu.component.js +65 -0
  56. package/esm2015/lib/components/commands/group/popup-menu.component.js.map +1 -0
  57. package/esm2015/lib/components/commands/group/popup-menu.component.metadata.json +1 -0
  58. package/esm2015/lib/components/commands/group/popup-menu.component.ngfactory.js.map +1 -0
  59. package/esm2015/lib/components/commands/group/registration.js +58 -0
  60. package/esm2015/lib/components/commands/group/registration.js.map +1 -0
  61. package/esm2015/lib/components/commands/group/registration.metadata.json +1 -0
  62. package/esm2015/lib/components/commands/group/tool-bar/tool-bar.component.js +55 -0
  63. package/esm2015/lib/components/commands/group/tool-bar/tool-bar.component.js.map +1 -0
  64. package/esm2015/lib/components/commands/group/tool-bar/tool-bar.component.metadata.json +1 -0
  65. package/esm2015/lib/components/commands/group/tool-bar/tool-bar.component.ngfactory.js.map +1 -0
  66. package/esm2015/lib/components/commands/group/tool-bar/tool-bar.component.scss.shim.ngstyle.js.map +1 -0
  67. package/esm2015/lib/components/commands/group/view-data.js +104 -0
  68. package/esm2015/lib/components/commands/group/view-data.js.map +1 -0
  69. package/esm2015/lib/components/commands/group/view-data.metadata.json +1 -0
  70. package/esm2015/lib/components/commands/separator.component.js +35 -0
  71. package/esm2015/lib/components/commands/separator.component.js.map +1 -0
  72. package/esm2015/lib/components/commands/separator.component.metadata.json +1 -0
  73. package/esm2015/lib/components/commands/separator.component.ngfactory.js.map +1 -0
  74. package/esm2015/lib/components/components.module.js +54 -14
  75. package/esm2015/lib/components/components.module.js.map +1 -1
  76. package/esm2015/lib/components/components.module.metadata.json +1 -1
  77. package/esm2015/lib/components/components.module.ngfactory.js.map +1 -1
  78. package/esm2015/lib/components/forms/abstract-input.component.js +12 -4
  79. package/esm2015/lib/components/forms/abstract-input.component.js.map +1 -1
  80. package/esm2015/lib/components/forms/abstract-input.component.metadata.json +1 -1
  81. package/esm2015/lib/components/forms/abstract-list-input.component.js +27 -14
  82. package/esm2015/lib/components/forms/abstract-list-input.component.js.map +1 -1
  83. package/esm2015/lib/components/forms/abstract-list-input.component.metadata.json +1 -1
  84. package/esm2015/lib/components/forms/abstract-value-input.component.js +31 -15
  85. package/esm2015/lib/components/forms/abstract-value-input.component.js.map +1 -1
  86. package/esm2015/lib/components/forms/abstract-value-input.component.metadata.json +1 -1
  87. package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.js +70 -0
  88. package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.js.map +1 -0
  89. package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.metadata.json +1 -0
  90. package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.ngfactory.js.map +1 -0
  91. package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.scss.shim.ngstyle.js.map +1 -0
  92. package/esm2015/lib/components/forms/checkbox-input/checkbox-input.component.js +1 -1
  93. package/esm2015/lib/components/forms/checkbox-input/checkbox-input.component.js.map +1 -1
  94. package/esm2015/lib/components/forms/checkbox-input/checkbox-input.component.metadata.json +1 -1
  95. package/esm2015/lib/components/forms/multiple-select-input/multiple-select-input.component.js +8 -9
  96. package/esm2015/lib/components/forms/multiple-select-input/multiple-select-input.component.js.map +1 -1
  97. package/esm2015/lib/components/forms/multiple-select-input/multiple-select-input.component.metadata.json +1 -1
  98. package/esm2015/lib/components/forms/number-input/number-input.component.js +1 -1
  99. package/esm2015/lib/components/forms/number-input/number-input.component.js.map +1 -1
  100. package/esm2015/lib/components/forms/number-input/number-input.component.metadata.json +1 -1
  101. package/esm2015/lib/components/forms/password-input/password-input.component.js +1 -1
  102. package/esm2015/lib/components/forms/password-input/password-input.component.js.map +1 -1
  103. package/esm2015/lib/components/forms/password-input/password-input.component.metadata.json +1 -1
  104. package/esm2015/lib/components/forms/select-input/select-input.component.js +2 -1
  105. package/esm2015/lib/components/forms/select-input/select-input.component.js.map +1 -1
  106. package/esm2015/lib/components/forms/select-input/select-input.component.metadata.json +1 -1
  107. package/esm2015/lib/components/forms/string-input/string-input.component.js +3 -3
  108. package/esm2015/lib/components/forms/string-input/string-input.component.js.map +1 -1
  109. package/esm2015/lib/components/forms/string-input/string-input.component.metadata.json +1 -1
  110. package/esm2015/lib/components/forms/text-input/text-input.component.js +1 -1
  111. package/esm2015/lib/components/forms/text-input/text-input.component.js.map +1 -1
  112. package/esm2015/lib/components/forms/text-input/text-input.component.metadata.json +1 -1
  113. package/esm2015/lib/components/icon/icon.component.js +17 -4
  114. package/esm2015/lib/components/icon/icon.component.js.map +1 -1
  115. package/esm2015/lib/components/icon/icon.component.metadata.json +1 -1
  116. package/esm2015/lib/components/index.js +17 -0
  117. package/esm2015/lib/components/index.js.map +1 -1
  118. package/esm2015/lib/components/index.metadata.json +1 -1
  119. package/esm2015/lib/components/table/column-model.js +44 -2
  120. package/esm2015/lib/components/table/column-model.js.map +1 -1
  121. package/esm2015/lib/components/table/column-model.metadata.json +1 -1
  122. package/esm2015/lib/components/table/mutable-cell-renderer.js +1 -0
  123. package/esm2015/lib/components/table/mutable-cell-renderer.js.map +1 -0
  124. package/esm2015/lib/components/table/mutable-cell-renderer.metadata.json +1 -0
  125. package/esm2015/lib/components/table/table-model.js +10 -7
  126. package/esm2015/lib/components/table/table-model.js.map +1 -1
  127. package/esm2015/lib/components/table/table-model.metadata.json +1 -1
  128. package/esm2015/lib/components/table/table-row-menu/table-row-menu.component.js +73 -0
  129. package/esm2015/lib/components/table/table-row-menu/table-row-menu.component.js.map +1 -0
  130. package/esm2015/lib/components/table/table-row-menu/table-row-menu.component.metadata.json +1 -0
  131. package/esm2015/lib/components/table/table-row-menu/table-row-menu.component.ngfactory.js.map +1 -0
  132. package/esm2015/lib/components/table/table.component.js +1 -1
  133. package/esm2015/lib/components/table/table.component.js.map +1 -1
  134. package/esm2015/lib/components/table/table.component.metadata.json +1 -1
  135. package/esm2015/lib/components/track-by.js +5 -0
  136. package/esm2015/lib/components/track-by.js.map +1 -0
  137. package/esm2015/lib/interaction/activity-ref.js +10 -2
  138. package/esm2015/lib/interaction/activity-ref.js.map +1 -1
  139. package/esm2015/lib/interaction/activity-ref.metadata.json +1 -1
  140. package/esm2015/lib/interaction/activity.js +18 -1
  141. package/esm2015/lib/interaction/activity.js.map +1 -1
  142. package/esm2015/lib/interaction/activity.metadata.json +1 -1
  143. package/esm2015/lib/interaction/components/activity-actions/activity-actions.component.js +1 -1
  144. package/esm2015/lib/interaction/components/activity-actions/activity-actions.component.metadata.json +1 -1
  145. package/esm2015/lib/interaction/components/activity-container/activity-container.component.js +24 -17
  146. package/esm2015/lib/interaction/components/activity-container/activity-container.component.js.map +1 -1
  147. package/esm2015/lib/interaction/components/activity-container/activity-container.component.metadata.json +1 -1
  148. package/esm2015/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.js +1 -1
  149. package/esm2015/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.js.map +1 -1
  150. package/esm2015/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.metadata.json +1 -1
  151. package/esm2015/lib/interaction/interaction.module.ngfactory.js.map +1 -1
  152. package/esm2015/lib/place/components/abstract-place-navigation.component.js +4 -3
  153. package/esm2015/lib/place/components/abstract-place-navigation.component.js.map +1 -1
  154. package/esm2015/lib/place/components/abstract-place-navigation.component.metadata.json +1 -1
  155. package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.js +1 -1
  156. package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.js.map +1 -1
  157. package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.metadata.json +1 -1
  158. package/esm2015/lib/place/components/place-outlet/place-outlet.component.js +56 -16
  159. package/esm2015/lib/place/components/place-outlet/place-outlet.component.js.map +1 -1
  160. package/esm2015/lib/place/components/place-outlet/place-outlet.component.metadata.json +1 -1
  161. package/esm2015/lib/place/components/side-place-navigation/side-place-navigation.component.js +2 -2
  162. package/esm2015/lib/place/components/side-place-navigation/side-place-navigation.component.js.map +1 -1
  163. package/esm2015/lib/place/components/side-place-navigation/side-place-navigation.component.metadata.json +1 -1
  164. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +1 -1
  165. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js.map +1 -1
  166. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.metadata.json +1 -1
  167. package/esm2015/lib/place/place-component.js +13 -1
  168. package/esm2015/lib/place/place-component.js.map +1 -1
  169. package/esm2015/lib/place/place-component.metadata.json +1 -1
  170. package/esm2015/lib/place/place-router.js +2 -8
  171. package/esm2015/lib/place/place-router.js.map +1 -1
  172. package/esm2015/lib/place/place-router.metadata.json +1 -1
  173. package/esm2015/lib/place/place.module.js +3 -3
  174. package/esm2015/lib/place/place.module.js.map +1 -1
  175. package/esm2015/lib/place/place.module.metadata.json +1 -1
  176. package/esm2015/lib/place/place.module.ngfactory.js.map +1 -1
  177. package/esm2015/lib/place/route/parameter-decorators.js +2 -3
  178. package/esm2015/lib/place/route/parameter-decorators.js.map +1 -1
  179. package/esm2015/lib/place/route/parameter-decorators.metadata.json +1 -1
  180. package/esm5/coolon-angular-ui-powerups.js +65 -52
  181. package/esm5/coolon-angular-ui-powerups.js.map +1 -1
  182. package/esm5/lib/angular-ui-powerups.module.ngfactory.js.map +1 -1
  183. package/esm5/lib/components/card-container/card-container.component.js +1 -1
  184. package/esm5/lib/components/commands/command/command.component.js +64 -0
  185. package/esm5/lib/components/commands/command/command.component.js.map +1 -0
  186. package/esm5/lib/components/commands/command/command.component.ngfactory.js.map +1 -0
  187. package/esm5/lib/components/commands/command-face/command-face.component.js +123 -0
  188. package/esm5/lib/components/commands/command-face/command-face.component.js.map +1 -0
  189. package/esm5/lib/components/commands/command-face/command-face.component.ngfactory.js.map +1 -0
  190. package/esm5/lib/components/commands/command-face/command-face.component.scss.ngstyle.js.map +1 -0
  191. package/esm5/lib/components/commands/command-face.js +145 -0
  192. package/esm5/lib/components/commands/command-face.js.map +1 -0
  193. package/esm5/lib/components/commands/flex.component.js +33 -0
  194. package/esm5/lib/components/commands/flex.component.js.map +1 -0
  195. package/esm5/lib/components/commands/flex.component.ngfactory.js.map +1 -0
  196. package/esm5/lib/components/commands/group/command-group/command-group.component.js +51 -0
  197. package/esm5/lib/components/commands/group/command-group/command-group.component.js.map +1 -0
  198. package/esm5/lib/components/commands/group/command-group/command-group.component.ngfactory.js.map +1 -0
  199. package/esm5/lib/components/commands/group/command-group-menu-renderer/command-group-menu-renderer.component.js +59 -0
  200. package/esm5/lib/components/commands/group/command-group-menu-renderer/command-group-menu-renderer.component.js.map +1 -0
  201. package/esm5/lib/components/commands/group/command-group-menu-renderer/command-group-menu-renderer.component.ngfactory.js.map +1 -0
  202. package/esm5/lib/components/commands/group/command-group-renderer/command-group-renderer.component.js +42 -0
  203. package/esm5/lib/components/commands/group/command-group-renderer/command-group-renderer.component.js.map +1 -0
  204. package/esm5/lib/components/commands/group/command-group-renderer/command-group-renderer.component.ngfactory.js.map +1 -0
  205. package/esm5/lib/components/commands/group/command-group-renderer/command-group-renderer.component.scss.shim.ngstyle.js.map +1 -0
  206. package/esm5/lib/components/commands/group/command-group.js +122 -0
  207. package/esm5/lib/components/commands/group/command-group.js.map +1 -0
  208. package/esm5/lib/components/commands/group/more-menu.component.js +58 -0
  209. package/esm5/lib/components/commands/group/more-menu.component.js.map +1 -0
  210. package/esm5/lib/components/commands/group/more-menu.component.ngfactory.js.map +1 -0
  211. package/esm5/lib/components/commands/group/popup-menu.component.js +68 -0
  212. package/esm5/lib/components/commands/group/popup-menu.component.js.map +1 -0
  213. package/esm5/lib/components/commands/group/popup-menu.component.ngfactory.js.map +1 -0
  214. package/esm5/lib/components/commands/group/registration.js +80 -0
  215. package/esm5/lib/components/commands/group/registration.js.map +1 -0
  216. package/esm5/lib/components/commands/group/tool-bar/tool-bar.component.js +58 -0
  217. package/esm5/lib/components/commands/group/tool-bar/tool-bar.component.js.map +1 -0
  218. package/esm5/lib/components/commands/group/tool-bar/tool-bar.component.ngfactory.js.map +1 -0
  219. package/esm5/lib/components/commands/group/tool-bar/tool-bar.component.scss.shim.ngstyle.js.map +1 -0
  220. package/esm5/lib/components/commands/group/view-data.js +131 -0
  221. package/esm5/lib/components/commands/group/view-data.js.map +1 -0
  222. package/esm5/lib/components/commands/separator.component.js +37 -0
  223. package/esm5/lib/components/commands/separator.component.js.map +1 -0
  224. package/esm5/lib/components/commands/separator.component.ngfactory.js.map +1 -0
  225. package/esm5/lib/components/components.module.js +54 -14
  226. package/esm5/lib/components/components.module.js.map +1 -1
  227. package/esm5/lib/components/components.module.ngfactory.js.map +1 -1
  228. package/esm5/lib/components/forms/abstract-input.component.js +12 -4
  229. package/esm5/lib/components/forms/abstract-input.component.js.map +1 -1
  230. package/esm5/lib/components/forms/abstract-list-input.component.js +27 -14
  231. package/esm5/lib/components/forms/abstract-list-input.component.js.map +1 -1
  232. package/esm5/lib/components/forms/abstract-value-input.component.js +31 -15
  233. package/esm5/lib/components/forms/abstract-value-input.component.js.map +1 -1
  234. package/esm5/lib/components/forms/autocomplete-input/autocomplete-input.component.js +73 -0
  235. package/esm5/lib/components/forms/autocomplete-input/autocomplete-input.component.js.map +1 -0
  236. package/esm5/lib/components/forms/autocomplete-input/autocomplete-input.component.ngfactory.js.map +1 -0
  237. package/esm5/lib/components/forms/autocomplete-input/autocomplete-input.component.scss.shim.ngstyle.js.map +1 -0
  238. package/esm5/lib/components/forms/checkbox-input/checkbox-input.component.js +1 -1
  239. package/esm5/lib/components/forms/checkbox-input/checkbox-input.component.js.map +1 -1
  240. package/esm5/lib/components/forms/multiple-select-input/multiple-select-input.component.js +8 -9
  241. package/esm5/lib/components/forms/multiple-select-input/multiple-select-input.component.js.map +1 -1
  242. package/esm5/lib/components/forms/number-input/number-input.component.js +1 -1
  243. package/esm5/lib/components/forms/number-input/number-input.component.js.map +1 -1
  244. package/esm5/lib/components/forms/password-input/password-input.component.js +1 -1
  245. package/esm5/lib/components/forms/password-input/password-input.component.js.map +1 -1
  246. package/esm5/lib/components/forms/select-input/select-input.component.js +2 -1
  247. package/esm5/lib/components/forms/select-input/select-input.component.js.map +1 -1
  248. package/esm5/lib/components/forms/string-input/string-input.component.js +3 -3
  249. package/esm5/lib/components/forms/string-input/string-input.component.js.map +1 -1
  250. package/esm5/lib/components/forms/text-input/text-input.component.js +1 -1
  251. package/esm5/lib/components/forms/text-input/text-input.component.js.map +1 -1
  252. package/esm5/lib/components/icon/icon.component.js +15 -3
  253. package/esm5/lib/components/icon/icon.component.js.map +1 -1
  254. package/esm5/lib/components/index.js +17 -0
  255. package/esm5/lib/components/index.js.map +1 -1
  256. package/esm5/lib/components/table/column-model.js +45 -2
  257. package/esm5/lib/components/table/column-model.js.map +1 -1
  258. package/esm5/lib/components/table/mutable-cell-renderer.js +1 -0
  259. package/esm5/lib/components/table/mutable-cell-renderer.js.map +1 -0
  260. package/esm5/lib/components/table/table-model.js +10 -8
  261. package/esm5/lib/components/table/table-model.js.map +1 -1
  262. package/esm5/lib/components/table/table-row-menu/table-row-menu.component.js +63 -0
  263. package/esm5/lib/components/table/table-row-menu/table-row-menu.component.js.map +1 -0
  264. package/esm5/lib/components/table/table-row-menu/table-row-menu.component.ngfactory.js.map +1 -0
  265. package/esm5/lib/components/table/table.component.js +1 -1
  266. package/esm5/lib/components/table/table.component.js.map +1 -1
  267. package/esm5/lib/components/track-by.js +5 -0
  268. package/esm5/lib/components/track-by.js.map +1 -0
  269. package/esm5/lib/interaction/activity-ref.js +14 -2
  270. package/esm5/lib/interaction/activity-ref.js.map +1 -1
  271. package/esm5/lib/interaction/activity.js +27 -1
  272. package/esm5/lib/interaction/activity.js.map +1 -1
  273. package/esm5/lib/interaction/components/activity-actions/activity-actions.component.js +1 -1
  274. package/esm5/lib/interaction/components/activity-container/activity-container.component.js +24 -17
  275. package/esm5/lib/interaction/components/activity-container/activity-container.component.js.map +1 -1
  276. package/esm5/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.js +1 -1
  277. package/esm5/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.js.map +1 -1
  278. package/esm5/lib/interaction/interaction.module.ngfactory.js.map +1 -1
  279. package/esm5/lib/place/components/abstract-place-navigation.component.js +4 -3
  280. package/esm5/lib/place/components/abstract-place-navigation.component.js.map +1 -1
  281. package/esm5/lib/place/components/list-place-nav/list-place-nav.component.js +1 -1
  282. package/esm5/lib/place/components/list-place-nav/list-place-nav.component.js.map +1 -1
  283. package/esm5/lib/place/components/place-outlet/place-outlet.component.js +56 -16
  284. package/esm5/lib/place/components/place-outlet/place-outlet.component.js.map +1 -1
  285. package/esm5/lib/place/components/side-place-navigation/side-place-navigation.component.js +2 -2
  286. package/esm5/lib/place/components/side-place-navigation/side-place-navigation.component.js.map +1 -1
  287. package/esm5/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +1 -1
  288. package/esm5/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js.map +1 -1
  289. package/esm5/lib/place/place-component.js +17 -1
  290. package/esm5/lib/place/place-component.js.map +1 -1
  291. package/esm5/lib/place/place-router.js +2 -8
  292. package/esm5/lib/place/place-router.js.map +1 -1
  293. package/esm5/lib/place/place.module.js +3 -3
  294. package/esm5/lib/place/place.module.js.map +1 -1
  295. package/esm5/lib/place/place.module.ngfactory.js.map +1 -1
  296. package/esm5/lib/place/route/parameter-decorators.js +2 -3
  297. package/esm5/lib/place/route/parameter-decorators.js.map +1 -1
  298. package/fesm2015/coolon-angular-ui-powerups.js +1475 -311
  299. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  300. package/fesm5/coolon-angular-ui-powerups.js +1641 -309
  301. package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
  302. package/lib/components/commands/command/command.component.d.ts +22 -0
  303. package/lib/components/commands/command-face/command-face.component.d.ts +34 -0
  304. package/lib/components/commands/command-face.d.ts +40 -0
  305. package/lib/components/commands/flex.component.d.ts +11 -0
  306. package/lib/components/commands/group/command-group/command-group.component.d.ts +11 -0
  307. package/lib/components/commands/group/command-group-menu-renderer/command-group-menu-renderer.component.d.ts +21 -0
  308. package/lib/components/commands/group/command-group-renderer/command-group-renderer.component.d.ts +13 -0
  309. package/lib/components/commands/group/command-group.d.ts +41 -0
  310. package/lib/components/commands/group/more-menu.component.d.ts +14 -0
  311. package/lib/components/commands/group/popup-menu.component.d.ts +17 -0
  312. package/lib/components/commands/group/registration.d.ts +32 -0
  313. package/lib/components/commands/group/tool-bar/tool-bar.component.d.ts +13 -0
  314. package/lib/components/commands/group/view-data.d.ts +40 -0
  315. package/lib/components/commands/separator.component.d.ts +12 -0
  316. package/lib/components/forms/abstract-input.component.d.ts +8 -2
  317. package/lib/components/forms/abstract-list-input.component.d.ts +4 -3
  318. package/lib/components/forms/abstract-value-input.component.d.ts +5 -4
  319. package/lib/components/forms/autocomplete-input/autocomplete-input.component.d.ts +25 -0
  320. package/lib/components/forms/multiple-select-input/multiple-select-input.component.d.ts +7 -2
  321. package/lib/components/forms/select-input/select-input.component.d.ts +1 -0
  322. package/lib/components/icon/icon.component.d.ts +15 -0
  323. package/lib/components/index.d.ts +18 -0
  324. package/lib/components/table/column-model.d.ts +15 -17
  325. package/lib/components/table/mutable-cell-renderer.d.ts +6 -0
  326. package/lib/components/table/table-model.d.ts +7 -3
  327. package/lib/components/table/table-row-menu/table-row-menu.component.d.ts +26 -0
  328. package/lib/components/track-by.d.ts +3 -0
  329. package/lib/interaction/activity-ref.d.ts +3 -0
  330. package/lib/interaction/activity.d.ts +6 -2
  331. package/lib/interaction/components/activity-container/activity-container.component.d.ts +4 -2
  332. package/lib/place/components/abstract-place-navigation.component.d.ts +2 -2
  333. package/lib/place/components/place-outlet/place-outlet.component.d.ts +8 -2
  334. package/lib/place/components/side-place-navigation/side-place-navigation.component.d.ts +1 -1
  335. package/lib/place/place-component.d.ts +6 -0
  336. package/package.json +7 -5
  337. package/schematics/bootstrap-app/index.d.ts +3 -0
  338. package/schematics/bootstrap-app/index.js +81 -0
  339. package/schematics/bootstrap-app/index.js.map +1 -0
  340. package/schematics/bootstrap-app/schema.d.ts +3 -0
  341. package/schematics/bootstrap-app/schema.js +3 -0
  342. package/schematics/bootstrap-app/schema.js.map +1 -0
  343. package/schematics/bootstrap-app/schema.json +19 -0
  344. package/schematics/bootstrap-app/templates/app/app-routing.module.ts +19 -0
  345. package/schematics/bootstrap-app/templates/app/auth/auth.guard.spec.ts +15 -0
  346. package/schematics/bootstrap-app/templates/app/auth/auth.guard.ts +23 -0
  347. package/schematics/bootstrap-app/templates/app/auth/auth.module.ts +13 -0
  348. package/schematics/bootstrap-app/templates/app/auth/auth.service.ts +13 -0
  349. package/schematics/bootstrap-app/templates/app/i18n.ts +9 -0
  350. package/schematics/bootstrap-app/templates/app/places/home/home.component.html +1 -0
  351. package/schematics/bootstrap-app/templates/app/places/home/home.component.scss +4 -0
  352. package/schematics/bootstrap-app/templates/app/places/home/home.component.spec.ts +25 -0
  353. package/schematics/bootstrap-app/templates/app/places/home/home.component.ts +25 -0
  354. package/schematics/bootstrap-app/templates/app/places/place-routes.ts +3 -0
  355. package/schematics/bootstrap-app/templates/app/places/places.json5 +3 -0
  356. package/schematics/bootstrap-app/templates/i18n/config.json +9 -0
  357. package/schematics/bootstrap-app/templates/i18n/notifications.yml +19 -0
  358. package/schematics/bootstrap-app/templates/i18n/places/home.yml +6 -0
  359. package/schematics/collection.json +10 -1
  360. package/schematics/ng-add/index.d.ts +1 -0
  361. package/schematics/ng-add/index.js +27 -4
  362. package/schematics/ng-add/index.js.map +1 -1
  363. package/schematics/package-util.d.ts +13 -0
  364. package/schematics/package-util.js +60 -0
  365. package/schematics/package-util.js.map +1 -0
  366. package/schematics/place-add/index.d.ts +3 -0
  367. package/schematics/place-add/index.js +26 -0
  368. package/schematics/place-add/index.js.map +1 -0
  369. package/schematics/place-add/schema.d.ts +2 -0
  370. package/schematics/place-add/schema.js +3 -0
  371. package/schematics/place-add/schema.js.map +1 -0
  372. package/schematics/place-add/schema.json +8 -0
@@ -1 +1 @@
1
- {"version":3,"file":"place-outlet.component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/place/components/place-outlet/place-outlet.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, EventEmitter, Inject, Input, OnInit, Optional, Output, SkipSelf, ViewChild } from '@angular/core';\nimport { ActivatedRoute, Router, RouterOutlet } from '@angular/router';\nimport {\n Constructable,\n DebugContext,\n Dsl,\n lang,\n ListModel,\n MutableValueModel,\n StoreInListModel,\n StoreInValueModel,\n TrackExternal,\n ValueModel,\n ValueModelChain\n} from '@coolon/pectin';\nimport * as _ from 'lodash';\nimport { DisposableComponent } from '../../../components/disposable-component';\nimport { PlaceComponent } from '../../place-component';\nimport { AUP_PLACE_CONFIG, PlaceConfig } from '../../place-config';\nimport { PlaceDefinition } from '../../place-definition';\nimport { PlaceRouter } from '../../place-router';\n\nimport { Visit } from '../../visit';\nimport { LEFT_RIGHT_PLACE_ANIMATION } from './route-animations';\n\n// Quick hack to avoid circular references between this and PlaceComponents.\ninterface PlaceRef {\n readonly placeDefinition: PlaceDefinition\n\n initialiseBindings(param: ValueModel<Visit>): void;\n\n onPlaceReady(): void;\n}\n\n@Component({\n selector: 'aup-place-outlet',\n templateUrl: './place-outlet.component.html',\n styleUrls: ['./place-outlet.component.scss'],\n animations: [LEFT_RIGHT_PLACE_ANIMATION]\n})\nexport class PlaceOutletComponent extends DisposableComponent implements OnInit {\n\n @Input() @StoreInValueModel('animateModel')\n animate: boolean;\n\n @Input() @TrackExternal({ defaultValue: true })\n animateModel: ValueModel<boolean>;\n\n // tslint:disable-next-line:no-input-rename\n @Input('placeAnimationOrderModel') @TrackExternal()\n customPlaceAnimationOrderModel: ListModel<Constructable<PlaceComponent>>;\n\n // tslint:disable-next-line:no-input-rename\n @Input('placeAnimationOrder') @StoreInListModel('customPlaceAnimationOrderModel')\n customPlaceAnimationOrder: Constructable<PlaceComponent>[];\n\n @Output()\n readonly placeChanged = new EventEmitter<PlaceComponent>();\n\n @ViewChild('routeOutlet', { static: true })\n routerOut: RouterOutlet;\n\n\n private outletActivated = new MutableValueModel(false);\n private readonly _activatedRouteModel = new MutableValueModel<ActivatedRoute>();\n private readonly _activePlaceModel = new MutableValueModel<PlaceComponent>();\n private readonly _activePlaceDefinition: ValueModelChain<PlaceDefinition>;\n\n private parentOutletModel: MutableValueModel<PlaceOutletComponent>;\n public readonly placeAnimationOrder: ValueModelChain<number>;\n\n private initialPlaceIndex: number = null;\n private routerVisitModel: ValueModelChain<Visit>;\n private _isPushingVisitToRoute = new MutableValueModel<boolean>(false);\n private navigationInProgress: ValueModelChain<boolean>;\n\n constructor(private readonly router: Router,\n private readonly placeRouter: PlaceRouter,\n @Optional() @Inject(AUP_PLACE_CONFIG) readonly placeConfig: PlaceConfig,\n @SkipSelf() @Optional() parentOutlet: PlaceOutletComponent) {\n super();\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);\n\n this.parentOutletModel = new MutableValueModel(parentOutlet);\n\n const defaultPlaceAnimationOrder = chain(this.parentOutletModel)\n .pullValueModel(o => o.activePlaceModel)\n .pluck('placeDefinition')\n .pluckList('children')\n .pluck('component');\n\n const activatePlaceType = chain(this.activePlaceModel).map(p => p.constructor as Constructable<PlaceComponent>);\n this.placeAnimationOrder = chain(this.customPlaceAnimationOrderModel)\n .otherwise(defaultPlaceAnimationOrder)\n .reduce((placesInOrder) => {\n let placeIndex = 0;\n if (activatePlaceType.value) {\n placeIndex = placesInOrder.indexOf(activatePlaceType.value);\n if (_.isNil(this.initialPlaceIndex)) {\n this.initialPlaceIndex = placeIndex;\n }\n }\n return _.isNil(this.initialPlaceIndex) ? 0 : placeIndex - this.initialPlaceIndex;\n }, { dependsOn: activatePlaceType });\n\n // Extract our visit model from the place router.\n this._activePlaceDefinition = chain(this._activePlaceModel).pluck('placeDefinition');\n this.routerVisitModel = this._activePlaceDefinition.findIn(chain(placeRouter.activeVisitsByPlaceDefinition));\n\n this.navigationInProgress = chain(this.placeRouter.navigationInProgress);\n when.valueOf(this.navigationInProgress).becomesFalsey(() => {\n this.checkStateAndInitialise();\n });\n when.valueOf(this.outletActivated).becomesTruthy(() => {\n this.checkStateAndInitialise();\n });\n\n chain(this._activePlaceModel)\n .postponeWhile(this.navigationInProgress)\n .subscribe(place => this.placeChanged.emit(place));\n\n }\n\n // @Trace()\n ngOnInit() {\n }\n\n // @Trace()\n getAnimationOrder() {\n return this.placeAnimationOrder.value;\n }\n\n get animationDuration() {\n return this.placeConfig && this.placeConfig.animationDuration ? this.placeConfig.animationDuration : '500ms';\n }\n\n // @Trace()\n navigate(visit: Visit) {\n // console.log({ activatedRoute: this._activatedRouteModel.value });\n this.placeRouter.navigate(visit, {\n relativeTo: this.parentOutlet ? this.parentOutlet.activatedRouteModel.value : null\n });\n }\n\n get parentOutlet(): PlaceOutletComponent {\n return this.parentOutletModel.value;\n }\n\n\n get activePlaceModel(): ValueModel<PlaceComponent> {\n return this._activePlaceModel.readonly;\n }\n\n get activatedRouteModel(): ValueModel<ActivatedRoute> {\n return this._activatedRouteModel.readonly;\n }\n\n // @Trace()\n onOutletActivated(routerOutlet: RouterOutlet, place: PlaceComponent) {\n this._activatedRouteModel.value = routerOutlet.activatedRoute;\n this._activePlaceModel.value = place;\n this.outletActivated.value = true;\n this.checkStateAndInitialise();\n }\n\n // @Trace()\n onOutletDeactivated() {\n this.outletActivated.value = false;\n this._activePlaceModel.value = null;\n this._activatedRouteModel.value = null;\n }\n\n // @Trace()\n private checkStateAndInitialise() {\n const routerVisit = this.routerVisitModel.value;\n const activePlace = this.activePlaceModel.value;\n if (routerVisit && activePlace && !activePlace.isInitialised()) {\n if (routerVisit.placeDefinition !== activePlace.placeDefinition) {\n lang.illegalState('wrong visit!!!');\n }\n this.initialisePlace(routerVisit, activePlace);\n }\n }\n\n // @Trace()\n private initialisePlace(routerVisit: Visit, activePlace: PlaceComponent) {\n const visitModel = new MutableValueModel<Visit>(routerVisit);\n DebugContext.tag(visitModel, `PlaceOutletComponent[${activePlace.constructor.name})].visitModel`);\n activePlace.initialiseVisit(routerVisit, (current, previous) => {\n this.pushVisitChangeToRoute(previous, current);\n });\n if (!this.animateModel.value) {\n // we're not animating so trigger any post animation callbacks now.\n this.animationDone();\n }\n const { when, chain, valueOf } = Dsl.disposeWith(activePlace);\n when.valueOf(this.routerVisitModel)\n .changes(visit => {\n activePlace.updateVisit(visit);\n }, {\n unless: valueOf.any(\n this._isPushingVisitToRoute,\n this.routerVisitModel.isNil()\n ).areTruthy()\n });\n }\n\n private pushVisitChangeToRoute(previous: Visit, current: Visit) {\n this._isPushingVisitToRoute.value = true;\n this.placeRouter.pushVisitChangesToRoute(previous, current).finally(() => {\n this._isPushingVisitToRoute.value = false;\n });\n }\n\n// @Trace()\n animationStarted() {\n // console.log({ activePlace: this._activePlaceModel.value });\n }\n\n // @Trace()\n animationDone() {\n if (this._activePlaceModel.value) {\n this._activePlaceModel.value.onPlaceReady();\n }\n }\n\n}\n"]}
1
+ {"version":3,"file":"place-outlet.component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/place/components/place-outlet/place-outlet.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, EventEmitter, Inject, Input, OnInit, Optional, Output, SkipSelf, ViewChild } from '@angular/core';\nimport { ActivatedRoute, Router, RouterOutlet } from '@angular/router';\nimport {\n BooleanValueModelChain,\n Constructable,\n DebugContext,\n Dsl,\n lang,\n ListModel, ListModelChain,\n MutableValueModel,\n StoreInListModel,\n StoreInValueModel, Trace,\n TrackExternal,\n ValueModel,\n ValueModelChain\n} from '@coolon/pectin';\nimport * as _ from 'lodash';\nimport { DisposableComponent } from '../../../components/disposable-component';\nimport { PlaceComponent } from '../../place-component';\nimport { AUP_PLACE_CONFIG, PlaceConfig } from '../../place-config';\nimport { PlaceDefinition } from '../../place-definition';\nimport { PlaceRouter } from '../../place-router';\n\nimport { Visit } from '../../visit';\nimport { LEFT_RIGHT_PLACE_ANIMATION } from './route-animations';\n\n// Quick hack to avoid circular references between this and PlaceComponents.\ninterface PlaceRef {\n readonly placeDefinition: PlaceDefinition\n\n initialiseBindings(param: ValueModel<Visit>): void;\n\n onPlaceReady(): void;\n}\n\n@Component({\n selector: 'aup-place-outlet',\n templateUrl: './place-outlet.component.html',\n styleUrls: ['./place-outlet.component.scss'],\n animations: [LEFT_RIGHT_PLACE_ANIMATION]\n})\nexport class PlaceOutletComponent extends DisposableComponent implements OnInit {\n\n @Input() @StoreInValueModel('animateModel')\n animate: boolean;\n\n @Input() @TrackExternal({ defaultValue: true })\n animateModel: ValueModel<boolean>;\n\n // tslint:disable-next-line:no-input-rename\n @Input('placeAnimationOrderModel') @TrackExternal()\n customPlaceAnimationOrderModel: ListModel<Constructable<PlaceComponent>>;\n\n // tslint:disable-next-line:no-input-rename\n @Input('placeAnimationOrder') @StoreInListModel('customPlaceAnimationOrderModel')\n customPlaceAnimationOrder: Constructable<PlaceComponent>[];\n\n @Output()\n readonly placeChanged = new EventEmitter<PlaceComponent>();\n\n @ViewChild('routeOutlet', { static: true })\n routerOut: RouterOutlet;\n\n private onAnimationFinishedJob: () => void;\n\n\n private outletActivated = new MutableValueModel(false);\n private readonly _activatedRouteModel = new MutableValueModel<ActivatedRoute>();\n private readonly _activePlaceModel = new MutableValueModel<PlaceComponent>();\n private readonly _activePlaceDefinition: ValueModelChain<PlaceDefinition>;\n\n private parentOutletModel: MutableValueModel<PlaceOutletComponent>;\n public readonly activePlaceAnimationPosition: ValueModelChain<number>;\n\n private initialPlaceIndex: number = null;\n private routerVisitModel: ValueModelChain<Visit>;\n private _isPushingVisitToRoute = new MutableValueModel<boolean>(false);\n private navigationInProgress: ValueModelChain<boolean>;\n\n private isVeryFirstLoad = true;\n private placesInAnimationOrder: ListModelChain<Constructable<PlaceComponent>>;\n private animationSupported: BooleanValueModelChain;\n readonly animationEnabled: BooleanValueModelChain;\n\n constructor(private readonly router: Router,\n private readonly placeRouter: PlaceRouter,\n @Optional() @Inject(AUP_PLACE_CONFIG) readonly placeConfig: PlaceConfig,\n @SkipSelf() @Optional() parentOutlet: PlaceOutletComponent) {\n super();\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);\n\n this.parentOutletModel = new MutableValueModel(parentOutlet);\n\n const defaultPlaceAnimationOrder = chain(this.parentOutletModel)\n .pullValueModel(o => o.activePlaceModel)\n .pluck('placeDefinition')\n .pluckList('children')\n .pluck('component');\n\n const activatePlaceType = chain(this.activePlaceModel).map(p => p.constructor as Constructable<PlaceComponent>);\n\n this.placesInAnimationOrder = chain(this.customPlaceAnimationOrderModel)\n .otherwise(defaultPlaceAnimationOrder);\n\n this.activePlaceAnimationPosition = this.placesInAnimationOrder\n .reduce((placesInOrder) => {\n let placeIndex = 0;\n if (activatePlaceType.value) {\n placeIndex = placesInOrder.indexOf(activatePlaceType.value);\n if (_.isNil(this.initialPlaceIndex)) {\n this.initialPlaceIndex = placeIndex;\n }\n }\n return _.isNil(this.initialPlaceIndex) ? 0 : placeIndex - this.initialPlaceIndex;\n }, { dependsOn: activatePlaceType });\n\n this.animationSupported = this.placesInAnimationOrder.count().isGreaterThan(0);\n this.animationEnabled = valueOf.all(\n this.animateModel,\n this.animationSupported\n ).areTruthy();\n\n // Extract our visit model from the place router.\n this._activePlaceDefinition = chain(this._activePlaceModel).pluck('placeDefinition');\n this.routerVisitModel = this._activePlaceDefinition.findIn(chain(placeRouter.activeVisitsByPlaceDefinition));\n\n this.navigationInProgress = chain(this.placeRouter.navigationInProgress);\n\n when(this.navigationInProgress).becomesFalsey(() => {\n this.checkStateAndInitialise();\n });\n when(this.outletActivated).becomesTruthy(() => {\n this.checkStateAndInitialise();\n });\n\n chain(this._activePlaceModel)\n .postponeWhile(this.navigationInProgress)\n .subscribe(place => this.placeChanged.emit(place));\n\n }\n\n // @Trace()\n ngOnInit() {\n }\n\n // @Trace()\n getAnimationOrder() {\n return this.activePlaceAnimationPosition.value;\n }\n\n get animationDuration() {\n return this.placeConfig && this.placeConfig.animationDuration ? this.placeConfig.animationDuration : '500ms';\n }\n\n // @Trace()\n navigate(visit: Visit) {\n // const place = this.placesInAnimationOrder.query().findMatching(p => visit.placeDefinition.component === p);\n // if (!place) {\n // lang.illegalState()\n // }\n this.placeRouter.navigate(visit, {\n relativeTo: this.parentOutlet ? this.parentOutlet.activatedRouteModel.value : null\n });\n }\n\n get parentOutlet(): PlaceOutletComponent {\n return this.parentOutletModel.value;\n }\n\n\n get activePlaceModel(): ValueModel<PlaceComponent> {\n return this._activePlaceModel.readonly;\n }\n\n get activatedRouteModel(): ValueModel<ActivatedRoute> {\n return this._activatedRouteModel.readonly;\n }\n\n @Trace()\n onOutletActivated(routerOutlet: RouterOutlet, place: PlaceComponent) {\n this._activatedRouteModel.value = routerOutlet.activatedRoute;\n this._activePlaceModel.value = place;\n this.validateAnimationState(place);\n this.outletActivated.value = true;\n this.checkStateAndInitialise();\n }\n\n private validateAnimationState(place: PlaceComponent) {\n if (this.animateModel.value) {\n if (this.placesInAnimationOrder.length < 1) {\n console.error('PlaceOutlet.animate === true but placeAnimationOrder has not been set. Animation is disabled.');\n } else {\n if (!this.placesInAnimationOrder.query().includes(place.placeDefinition.component)) {\n console.error(`PlaceOutlet.animate === true but placeAnimationOrder doesn't contain ${place.placeDefinition.component.name}.`);\n }\n }\n }\n }\n\n @Trace()\n onOutletDeactivated() {\n this.outletActivated.value = false;\n this._activePlaceModel.value = null;\n this._activatedRouteModel.value = null;\n }\n\n // @Trace()\n private checkStateAndInitialise() {\n const routerVisit = this.routerVisitModel.value;\n const activePlace = this.activePlaceModel.value;\n if (routerVisit && activePlace && !activePlace.isInitialised()) {\n if (routerVisit.placeDefinition !== activePlace.placeDefinition) {\n lang.illegalState('wrong visit!!!');\n }\n this.initialisePlace(routerVisit, activePlace);\n }\n }\n\n private initialisePlace(routerVisit: Visit, activePlace: PlaceComponent) {\n const visitModel = new MutableValueModel<Visit>(routerVisit);\n DebugContext.tag(visitModel, `PlaceOutletComponent[${activePlace.constructor.name})].visitModel`);\n activePlace.initialiseVisit(routerVisit, (current, previous) => {\n this.pushVisitChangeToRoute(previous, current);\n });\n const finishPlaceLoad = () => {\n this._activePlaceModel.value._notifyActive(true);\n }\n if (!this.animationEnabled.value || this.isVeryFirstLoad) {\n // if animation is disabled or this is the very first load then\n // we won't get our animation done callback so we finish the\n // process here and now.\n this.isVeryFirstLoad = false;\n finishPlaceLoad()\n } else {\n this.onAnimationFinishedJob = finishPlaceLoad;\n }\n const { when, chain, valueOf } = Dsl.disposeWith(activePlace);\n when.valueOf(this.routerVisitModel)\n .changes(visit => {\n activePlace.updateVisit(visit);\n }, {\n unless: valueOf.any(\n this._isPushingVisitToRoute,\n this.routerVisitModel.isNil()\n ).areTruthy()\n });\n }\n\n private pushVisitChangeToRoute(previous: Visit, current: Visit) {\n this._isPushingVisitToRoute.value = true;\n this.placeRouter.pushVisitChangesToRoute(previous, current).finally(() => {\n this._isPushingVisitToRoute.value = false;\n });\n }\n\n// @Trace()\n animationStarted() {\n // console.log({ activePlace: this._activePlaceModel.value });\n }\n\n // @Trace()\n animationDone() {\n if (this.onAnimationFinishedJob) {\n this.onAnimationFinishedJob();\n this.onAnimationFinishedJob = undefined;\n }\n }\n\n}\n"]}
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"PlaceOutletComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../../../components/disposable-component","name":"DisposableComponent","line":40,"character":42},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":34,"character":1},"arguments":[{"selector":"aup-place-outlet","animations":[{"__symbolic":"reference","module":"./route-animations","name":"LEFT_RIGHT_PLACE_ANIMATION","line":38,"character":15}],"template":"<ng-container *ngIf=\"animateModel.value\">\n <div class=\"router-outlet-container\" cdkScrollable\n [@routeAnimations]=\"{value: getAnimationOrder(), params:{duration: animationDuration}}\"\n (@routeAnimations.start)=\"animationStarted()\"\n (@routeAnimations.done)=\"animationDone()\"\n >\n <router-outlet #routerOutlet=\"outlet\"\n (activate)=\"onOutletActivated(routerOutlet, $event)\"\n (deactivate)=\"onOutletDeactivated()\">\n </router-outlet>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"!animateModel.value\">\n <div class=\"router-outlet-container\" cdkScrollable>\n <router-outlet #routerOutlet=\"outlet\"\n (activate)=\"onOutletActivated(routerOutlet, $event)\"\n (deactivate)=\"onOutletDeactivated()\">\n </router-outlet>\n </div>\n</ng-container>\n\n","styles":[":host{display:flex;flex-direction:column;min-height:0}.router-outlet-container{flex:1;display:block;position:relative;min-height:0;overflow-x:hidden;overflow-y:scroll}router-outlet{display:none}"]}]}],"members":{"animate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":42,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"StoreInValueModel","line":42,"character":12},"arguments":["animateModel"]}]}],"animateModel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":45,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"TrackExternal","line":45,"character":12},"arguments":[{"defaultValue":true}]}]}],"customPlaceAnimationOrderModel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":3},"arguments":["placeAnimationOrderModel"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"TrackExternal","line":49,"character":38}}]}],"customPlaceAnimationOrder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":53,"character":3},"arguments":["placeAnimationOrder"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"StoreInListModel","line":53,"character":33},"arguments":["customPlaceAnimationOrderModel"]}]}],"placeChanged":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":56,"character":3}}]}],"routerOut":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":59,"character":3},"arguments":["routeOutlet",{"static":true}]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":78,"character":15}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":78,"character":27},"arguments":[{"__symbolic":"reference","module":"../../place-config","name":"AUP_PLACE_CONFIG","line":78,"character":34}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":79,"character":15}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":79,"character":27}}]],"parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":76,"character":39},{"__symbolic":"reference","module":"../../place-router","name":"PlaceRouter","line":77,"character":44},{"__symbolic":"reference","module":"../../place-config","name":"PlaceConfig","line":78,"character":74},{"__symbolic":"reference","name":"PlaceOutletComponent"}]}],"ngOnInit":[{"__symbolic":"method"}],"getAnimationOrder":[{"__symbolic":"method"}],"navigate":[{"__symbolic":"method"}],"onOutletActivated":[{"__symbolic":"method"}],"onOutletDeactivated":[{"__symbolic":"method"}],"checkStateAndInitialise":[{"__symbolic":"method"}],"initialisePlace":[{"__symbolic":"method"}],"pushVisitChangeToRoute":[{"__symbolic":"method"}],"animationStarted":[{"__symbolic":"method"}],"animationDone":[{"__symbolic":"method"}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"PlaceOutletComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../../../components/disposable-component","name":"DisposableComponent","line":41,"character":42},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":35,"character":1},"arguments":[{"selector":"aup-place-outlet","animations":[{"__symbolic":"reference","module":"./route-animations","name":"LEFT_RIGHT_PLACE_ANIMATION","line":39,"character":15}],"template":"<ng-container *ngIf=\"animationEnabled.value\">\n <div class=\"router-outlet-container\" cdkScrollable\n [@routeAnimations]=\"{value: getAnimationOrder(), params:{duration: animationDuration}}\"\n (@routeAnimations.start)=\"animationStarted()\"\n (@routeAnimations.done)=\"animationDone()\"\n >\n <router-outlet #routerOutlet=\"outlet\"\n (activate)=\"onOutletActivated(routerOutlet, $event)\"\n (deactivate)=\"onOutletDeactivated()\">\n </router-outlet>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"!animationEnabled.value\">\n <div class=\"router-outlet-container\" cdkScrollable>\n <router-outlet #routerOutlet=\"outlet\"\n (activate)=\"onOutletActivated(routerOutlet, $event)\"\n (deactivate)=\"onOutletDeactivated()\">\n </router-outlet>\n </div>\n</ng-container>\n\n","styles":[":host{display:flex;flex-direction:column;min-height:0}.router-outlet-container{flex:1;display:block;position:relative;min-height:0;overflow-x:hidden;overflow-y:scroll}router-outlet{display:none}"]}]}],"members":{"animate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":43,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"StoreInValueModel","line":43,"character":12},"arguments":["animateModel"]}]}],"animateModel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":46,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"TrackExternal","line":46,"character":12},"arguments":[{"defaultValue":true}]}]}],"customPlaceAnimationOrderModel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":50,"character":3},"arguments":["placeAnimationOrderModel"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"TrackExternal","line":50,"character":38}}]}],"customPlaceAnimationOrder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":54,"character":3},"arguments":["placeAnimationOrder"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"StoreInListModel","line":54,"character":33},"arguments":["customPlaceAnimationOrderModel"]}]}],"placeChanged":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":57,"character":3}}]}],"routerOut":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":60,"character":3},"arguments":["routeOutlet",{"static":true}]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":86,"character":15}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":86,"character":27},"arguments":[{"__symbolic":"reference","module":"../../place-config","name":"AUP_PLACE_CONFIG","line":86,"character":34}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":87,"character":15}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":87,"character":27}}]],"parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":84,"character":39},{"__symbolic":"reference","module":"../../place-router","name":"PlaceRouter","line":85,"character":44},{"__symbolic":"reference","module":"../../place-config","name":"PlaceConfig","line":86,"character":74},{"__symbolic":"reference","name":"PlaceOutletComponent"}]}],"ngOnInit":[{"__symbolic":"method"}],"getAnimationOrder":[{"__symbolic":"method"}],"navigate":[{"__symbolic":"method"}],"onOutletActivated":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"Trace","line":178,"character":3}}]}],"validateAnimationState":[{"__symbolic":"method"}],"onOutletDeactivated":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"Trace","line":199,"character":3}}]}],"checkStateAndInitialise":[{"__symbolic":"method"}],"initialisePlace":[{"__symbolic":"method"}],"pushVisitChangeToRoute":[{"__symbolic":"method"}],"animationStarted":[{"__symbolic":"method"}],"animationDone":[{"__symbolic":"method"}]}}}}]
@@ -41,7 +41,7 @@ import { AbstractPlaceNavigationComponent } from '../abstract-place-navigation.c
41
41
  * (at)Place({
42
42
  * path: 'myPlace',
43
43
  * data: {
44
- * nav: I18n.places.myPlace.nav()
44
+ * nav: I18n.places.myPlace.nav
45
45
  * }
46
46
  * })
47
47
  */
@@ -76,7 +76,7 @@ __decorate([
76
76
  SidePlaceNavigationComponent = __decorate([
77
77
  Component({
78
78
  selector: 'aup-side-place-navigation',
79
- template: "<mat-nav-list>\n <a mat-list-item (click)=\"toggleMenu()\" class=\"home\">\n <aup-icon class=\"collapsed-only\" icon=\"mat:menu\"></aup-icon>\n <aup-icon class=\"expanded-only\" icon=\"mat:arrow_back\"></aup-icon>\n <span class=\"expanded-only\">Menu</span>\n </a>\n <a mat-list-item *ngFor=\"let placeDefinition of placeDefinitions.value\"\n [pectinCommand]=\"commandFactory.create(placeDefinition)\"\n [class.active]=\"isActive(placeDefinition)\"\n [matTooltip]=\"getNav(placeDefinition).tooltip()\">\n <aup-icon *ngIf=\"getNav(placeDefinition).icon()\" [icon]=\"getNav(placeDefinition).icon()\"></aup-icon>\n <span\n class=\"expanded-only\">{{getNav(placeDefinition).title()}}</span>\n </a>\n <span [style.flex]=\"1\"></span>\n <ng-container *ngIf=\"navEndTemplate\" [ngTemplateOutlet]=\"navEndTemplate\"></ng-container>\n</mat-nav-list>\n",
79
+ template: "<mat-nav-list>\n <a mat-list-item (click)=\"toggleMenu()\" class=\"home\">\n <aup-icon class=\"collapsed-only\" icon=\"mat:menu\"></aup-icon>\n <aup-icon class=\"expanded-only\" icon=\"mat:arrow_back\"></aup-icon>\n <span class=\"expanded-only\">Menu</span>\n </a>\n <a mat-list-item *ngFor=\"let placeDefinition of placeDefinitions.value\"\n [pectinCommand]=\"commandFactory.create(placeDefinition)\"\n [class.active]=\"isActive(placeDefinition)\"\n [matTooltip]=\"getNavigationFace(placeDefinition).tooltip()\">\n <aup-icon *ngIf=\"getNavigationFace(placeDefinition).icon()\" [icon]=\"getNavigationFace(placeDefinition).icon()\"></aup-icon>\n <span class=\"expanded-only\">{{getNavigationFace(placeDefinition).text()}}</span>\n </a>\n <span [style.flex]=\"1\"></span>\n <ng-container *ngIf=\"navEndTemplate\" [ngTemplateOutlet]=\"navEndTemplate\"></ng-container>\n</mat-nav-list>\n",
80
80
  styles: [":host{display:flex;flex-direction:column;--resolved-nav-item-width:var(--nav-width, 56px);--resolved-nav-item-height:var(--nav-item-height, var(--resolved-nav-item-width));--resolved-expanded-width:var(--nav-expanded-width, 235px);--resolved-color:var(--nav-color, rgba(255, 255, 255, 0.9));--resolved-background-color:var(--nav-background-color, #555);width:var(--resolved-nav-item-width);transition:width 125ms linear;background-color:var(--resolved-background-color);color:var(--resolved-color)}:host.expanded{width:var(--resolved-expanded-width);max-width:var(--resolved-expanded-width)}:host-context(.expanded) .expanded-only{max-width:100%}:host-context(.expanded) .collapsed-only{max-width:0}:host-context(.expanded) .mat-list-item aup-icon:not(.collapsed-only){margin-right:12px}:host-context(.expanded) .mat-list-item span{text-wrap:none;white-space:nowrap}.expanded-only{max-width:0;overflow:hidden}.collapsed-only{max-width:100%;overflow:hidden}mat-nav-list{flex:1;display:flex;flex-direction:column}.mat-list-item{width:var(--resolved-nav-item-width);height:var(--resolved-nav-item-height);color:inherit}.mat-list-item.active{background-color:#444}.mat-list-item.home{text-align:left}mat-icon{color:inherit}mat-icon.flip-horizontal{transform:scaleX(-1)}"]
81
81
  }),
82
82
  __metadata("design:paramtypes", [Router, PlaceRouter])
@@ -1 +1 @@
1
- {"version":3,"file":"side-place-navigation.component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/place/components/side-place-navigation/side-place-navigation.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAClF,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,gCAAgC,EAAE,MAAM,wCAAwC,CAAC;AAG1F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAMH,IAAa,4BAA4B,GAAzC,MAAa,4BAA6B,SAAQ,gCAAgC;IAQhF,YAAqB,MAAc,EAAE,WAAwB;QAC3D,KAAK,CAAC,WAAW,CAAC,CAAC;QADA,WAAM,GAAN,MAAM,CAAQ;QAL5B,aAAQ,GAAG,KAAK,CAAC;IAOxB,CAAC;IAED,UAAU;QACR,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,YAAY;QACV,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,UAAU;QACR,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;IACjC,CAAC;CACF,CAAA;;YAf8B,MAAM;YAAe,WAAW;;AAL7D;IADC,WAAW,CAAC,gBAAgB,CAAC;;8DACN;AAGxB;IADC,YAAY,CAAC,gBAAgB,CAAC;8BACf,WAAW;oEAAM;AANtB,4BAA4B;IALxC,SAAS,CAAC;QACT,QAAQ,EAAE,2BAA2B;QACrC,43BAAqD;;KAEtD,CAAC;qCAS6B,MAAM,EAAe,WAAW;GARlD,4BAA4B,CAuBxC;SAvBY,4BAA4B","sourcesContent":["import { Component, ContentChild, HostBinding, TemplateRef } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { PlaceRouter } from '../../place-router';\nimport { AbstractPlaceNavigationComponent } from '../abstract-place-navigation.component';\n\n\n/**\n * @example\n * // Usage\n * <aup-vertical-place-navigation [places]=\"placeConstructorArray\"\n * [placeOutlet]=\"placeOutletComponent\">\n * </aup-vertical-place-navigation>\n * <aup-place-outlet #placeOutletComponent></aup-place-outlet>\n *\n * // CSS overrides:\n * aup-side-place-navigation {\n * --nav-width: 56px\n * --nav-expanded-width: 235px\n * --nav-item-height: var(--nav-width)\n * --nav-background-color: #555;\n * --nav-color: rgba(255, 255, 255, 0.9);\n * }\n *\n * // Content Templates:\n * #navEndTemplate\n * <ng-template #navEndTemplate>\n * <a mat-list-item (click)=\"logout()\" matTooltip=\"Logout\">\n * <mat-icon>exit_to_app</mat-icon>\n * <span *ngIf=\"sideNav.expanded\">Logout</span>\n * </a>\n * </nav-template>\n *\n * // Place nav item in an i18n.yml\n * places:\n * myPlace:\n * nav(NavItem):\n * title: \"Activities\"\n * icon: \"build\"\n * tooltip: \"Alerts, confirms and dialogs\"\n *\n * // In your place\n * (at)Place({\n * path: 'myPlace',\n * data: {\n * nav: I18n.places.myPlace.nav()\n * }\n * })\n */\n@Component({\n selector: 'aup-side-place-navigation',\n templateUrl: './side-place-navigation.component.html',\n styleUrls: ['./side-place-navigation.component.scss']\n})\nexport class SidePlaceNavigationComponent extends AbstractPlaceNavigationComponent {\n\n @HostBinding('class.expanded')\n public expanded = false;\n\n @ContentChild('navEndTemplate')\n navEndTemplate: TemplateRef<any>;\n\n constructor(readonly router: Router, placeRouter: PlaceRouter) {\n super(placeRouter);\n }\n\n expandMenu() {\n this.expanded = true;\n }\n\n collapseMenu() {\n this.expanded = false;\n }\n\n toggleMenu() {\n this.expanded = !this.expanded;\n }\n}\n"]}
1
+ {"version":3,"file":"side-place-navigation.component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/place/components/side-place-navigation/side-place-navigation.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAClF,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,gCAAgC,EAAE,MAAM,wCAAwC,CAAC;AAG1F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAMH,IAAa,4BAA4B,GAAzC,MAAa,4BAA6B,SAAQ,gCAAgC;IAQhF,YAAqB,MAAc,EAAE,WAAwB;QAC3D,KAAK,CAAC,WAAW,CAAC,CAAC;QADA,WAAM,GAAN,MAAM,CAAQ;QAL5B,aAAQ,GAAG,KAAK,CAAC;IAOxB,CAAC;IAED,UAAU;QACR,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,YAAY;QACV,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,UAAU;QACR,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;IACjC,CAAC;CACF,CAAA;;YAf8B,MAAM;YAAe,WAAW;;AAL7D;IADC,WAAW,CAAC,gBAAgB,CAAC;;8DACN;AAGxB;IADC,YAAY,CAAC,gBAAgB,CAAC;8BACf,WAAW;oEAAM;AANtB,4BAA4B;IALxC,SAAS,CAAC;QACT,QAAQ,EAAE,2BAA2B;QACrC,g6BAAqD;;KAEtD,CAAC;qCAS6B,MAAM,EAAe,WAAW;GARlD,4BAA4B,CAuBxC;SAvBY,4BAA4B","sourcesContent":["import { Component, ContentChild, HostBinding, TemplateRef } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { PlaceRouter } from '../../place-router';\nimport { AbstractPlaceNavigationComponent } from '../abstract-place-navigation.component';\n\n\n/**\n * @example\n * // Usage\n * <aup-vertical-place-navigation [places]=\"placeConstructorArray\"\n * [placeOutlet]=\"placeOutletComponent\">\n * </aup-vertical-place-navigation>\n * <aup-place-outlet #placeOutletComponent></aup-place-outlet>\n *\n * // CSS overrides:\n * aup-side-place-navigation {\n * --nav-width: 56px\n * --nav-expanded-width: 235px\n * --nav-item-height: var(--nav-width)\n * --nav-background-color: #555;\n * --nav-color: rgba(255, 255, 255, 0.9);\n * }\n *\n * // Content Templates:\n * #navEndTemplate\n * <ng-template #navEndTemplate>\n * <a mat-list-item (click)=\"logout()\" matTooltip=\"Logout\">\n * <mat-icon>exit_to_app</mat-icon>\n * <span *ngIf=\"sideNav.expanded\">Logout</span>\n * </a>\n * </nav-template>\n *\n * // Place nav item in an i18n.yml\n * places:\n * myPlace:\n * nav(NavItem):\n * title: \"Activities\"\n * icon: \"build\"\n * tooltip: \"Alerts, confirms and dialogs\"\n *\n * // In your place\n * (at)Place({\n * path: 'myPlace',\n * data: {\n * nav: I18n.places.myPlace.nav\n * }\n * })\n */\n@Component({\n selector: 'aup-side-place-navigation',\n templateUrl: './side-place-navigation.component.html',\n styleUrls: ['./side-place-navigation.component.scss']\n})\nexport class SidePlaceNavigationComponent extends AbstractPlaceNavigationComponent {\n\n @HostBinding('class.expanded')\n public expanded = false;\n\n @ContentChild('navEndTemplate')\n navEndTemplate: TemplateRef<any>;\n\n constructor(readonly router: Router, placeRouter: PlaceRouter) {\n super(placeRouter);\n }\n\n expandMenu() {\n this.expanded = true;\n }\n\n collapseMenu() {\n this.expanded = false;\n }\n\n toggleMenu() {\n this.expanded = !this.expanded;\n }\n}\n"]}
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"SidePlaceNavigationComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../abstract-place-navigation.component","name":"AbstractPlaceNavigationComponent","line":53,"character":50},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":48,"character":1},"arguments":[{"selector":"aup-side-place-navigation","template":"<mat-nav-list>\n <a mat-list-item (click)=\"toggleMenu()\" class=\"home\">\n <aup-icon class=\"collapsed-only\" icon=\"mat:menu\"></aup-icon>\n <aup-icon class=\"expanded-only\" icon=\"mat:arrow_back\"></aup-icon>\n <span class=\"expanded-only\">Menu</span>\n </a>\n <a mat-list-item *ngFor=\"let placeDefinition of placeDefinitions.value\"\n [pectinCommand]=\"commandFactory.create(placeDefinition)\"\n [class.active]=\"isActive(placeDefinition)\"\n [matTooltip]=\"getNav(placeDefinition).tooltip()\">\n <aup-icon *ngIf=\"getNav(placeDefinition).icon()\" [icon]=\"getNav(placeDefinition).icon()\"></aup-icon>\n <span\n class=\"expanded-only\">{{getNav(placeDefinition).title()}}</span>\n </a>\n <span [style.flex]=\"1\"></span>\n <ng-container *ngIf=\"navEndTemplate\" [ngTemplateOutlet]=\"navEndTemplate\"></ng-container>\n</mat-nav-list>\n","styles":[":host{display:flex;flex-direction:column;--resolved-nav-item-width:var(--nav-width, 56px);--resolved-nav-item-height:var(--nav-item-height, var(--resolved-nav-item-width));--resolved-expanded-width:var(--nav-expanded-width, 235px);--resolved-color:var(--nav-color, rgba(255, 255, 255, 0.9));--resolved-background-color:var(--nav-background-color, #555);width:var(--resolved-nav-item-width);transition:width 125ms linear;background-color:var(--resolved-background-color);color:var(--resolved-color)}:host.expanded{width:var(--resolved-expanded-width);max-width:var(--resolved-expanded-width)}:host-context(.expanded) .expanded-only{max-width:100%}:host-context(.expanded) .collapsed-only{max-width:0}:host-context(.expanded) .mat-list-item aup-icon:not(.collapsed-only){margin-right:12px}:host-context(.expanded) .mat-list-item span{text-wrap:none;white-space:nowrap}.expanded-only{max-width:0;overflow:hidden}.collapsed-only{max-width:100%;overflow:hidden}mat-nav-list{flex:1;display:flex;flex-direction:column}.mat-list-item{width:var(--resolved-nav-item-width);height:var(--resolved-nav-item-height);color:inherit}.mat-list-item.active{background-color:#444}.mat-list-item.home{text-align:left}mat-icon{color:inherit}mat-icon.flip-horizontal{transform:scaleX(-1)}"]}]}],"members":{"expanded":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":55,"character":3},"arguments":["class.expanded"]}]}],"navEndTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":58,"character":3},"arguments":["navEndTemplate"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":61,"character":31},{"__symbolic":"reference","module":"../../place-router","name":"PlaceRouter","line":61,"character":52}]}],"expandMenu":[{"__symbolic":"method"}],"collapseMenu":[{"__symbolic":"method"}],"toggleMenu":[{"__symbolic":"method"}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"SidePlaceNavigationComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../abstract-place-navigation.component","name":"AbstractPlaceNavigationComponent","line":53,"character":50},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":48,"character":1},"arguments":[{"selector":"aup-side-place-navigation","template":"<mat-nav-list>\n <a mat-list-item (click)=\"toggleMenu()\" class=\"home\">\n <aup-icon class=\"collapsed-only\" icon=\"mat:menu\"></aup-icon>\n <aup-icon class=\"expanded-only\" icon=\"mat:arrow_back\"></aup-icon>\n <span class=\"expanded-only\">Menu</span>\n </a>\n <a mat-list-item *ngFor=\"let placeDefinition of placeDefinitions.value\"\n [pectinCommand]=\"commandFactory.create(placeDefinition)\"\n [class.active]=\"isActive(placeDefinition)\"\n [matTooltip]=\"getNavigationFace(placeDefinition).tooltip()\">\n <aup-icon *ngIf=\"getNavigationFace(placeDefinition).icon()\" [icon]=\"getNavigationFace(placeDefinition).icon()\"></aup-icon>\n <span class=\"expanded-only\">{{getNavigationFace(placeDefinition).text()}}</span>\n </a>\n <span [style.flex]=\"1\"></span>\n <ng-container *ngIf=\"navEndTemplate\" [ngTemplateOutlet]=\"navEndTemplate\"></ng-container>\n</mat-nav-list>\n","styles":[":host{display:flex;flex-direction:column;--resolved-nav-item-width:var(--nav-width, 56px);--resolved-nav-item-height:var(--nav-item-height, var(--resolved-nav-item-width));--resolved-expanded-width:var(--nav-expanded-width, 235px);--resolved-color:var(--nav-color, rgba(255, 255, 255, 0.9));--resolved-background-color:var(--nav-background-color, #555);width:var(--resolved-nav-item-width);transition:width 125ms linear;background-color:var(--resolved-background-color);color:var(--resolved-color)}:host.expanded{width:var(--resolved-expanded-width);max-width:var(--resolved-expanded-width)}:host-context(.expanded) .expanded-only{max-width:100%}:host-context(.expanded) .collapsed-only{max-width:0}:host-context(.expanded) .mat-list-item aup-icon:not(.collapsed-only){margin-right:12px}:host-context(.expanded) .mat-list-item span{text-wrap:none;white-space:nowrap}.expanded-only{max-width:0;overflow:hidden}.collapsed-only{max-width:100%;overflow:hidden}mat-nav-list{flex:1;display:flex;flex-direction:column}.mat-list-item{width:var(--resolved-nav-item-width);height:var(--resolved-nav-item-height);color:inherit}.mat-list-item.active{background-color:#444}.mat-list-item.home{text-align:left}mat-icon{color:inherit}mat-icon.flip-horizontal{transform:scaleX(-1)}"]}]}],"members":{"expanded":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":55,"character":3},"arguments":["class.expanded"]}]}],"navEndTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":58,"character":3},"arguments":["navEndTemplate"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":61,"character":31},{"__symbolic":"reference","module":"../../place-router","name":"PlaceRouter","line":61,"character":52}]}],"expandMenu":[{"__symbolic":"method"}],"collapseMenu":[{"__symbolic":"method"}],"toggleMenu":[{"__symbolic":"method"}]}}}}]
@@ -13,7 +13,7 @@ TabbedPlaceNavigationComponent.ctorParameters = () => [
13
13
  TabbedPlaceNavigationComponent = __decorate([
14
14
  Component({
15
15
  selector: 'aup-tabbed-place-navigation',
16
- template: "<nav mat-tab-nav-bar>\n <a mat-tab-link *ngFor=\"let placeDefinition of placeDefinitions.value\"\n [pectinCommand]=\"commandFactory.create(placeDefinition)\"\n [active]=\"isActive(placeDefinition)\"\n [matTooltip]=\"getNav(placeDefinition).tooltip()\">\n <aup-icon *ngIf=\"getNav(placeDefinition).icon()\" [icon]=\"getNav(placeDefinition).icon()\"></aup-icon>\n <span>{{getNav(placeDefinition).title()}}</span>\n </a>\n</nav>\n",
16
+ template: "<nav mat-tab-nav-bar>\n <a mat-tab-link *ngFor=\"let placeDefinition of placeDefinitions.value\"\n [pectinCommand]=\"commandFactory.create(placeDefinition)\"\n [active]=\"isActive(placeDefinition)\"\n [matTooltip]=\"getNavigationFace(placeDefinition).tooltip()\">\n <aup-command-face [face]=\"getNavigationFace(placeDefinition)\"></aup-command-face>\n </a>\n</nav>\n",
17
17
  styles: [""]
18
18
  }),
19
19
  __metadata("design:paramtypes", [PlaceRouter])
@@ -1 +1 @@
1
- {"version":3,"file":"tabbed-place-navigation.component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,gCAAgC,EAAE,MAAM,wCAAwC,CAAC;AAO1F,IAAa,8BAA8B,GAA3C,MAAa,8BAA+B,SAAQ,gCAAgC;IAClF,YAAY,WAAuB;QACjC,KAAK,CAAC,WAAW,CAAC,CAAC;IACrB,CAAC;CACF,CAAA;;YAHyB,WAAW;;AADxB,8BAA8B;IAL1C,SAAS,CAAC;QACT,QAAQ,EAAE,6BAA6B;QACvC,2cAAuD;;KAExD,CAAC;qCAEwB,WAAW;GADxB,8BAA8B,CAI1C;SAJY,8BAA8B","sourcesContent":["import { Component } from '@angular/core';\nimport { PlaceRouter } from '../../place-router';\nimport { AbstractPlaceNavigationComponent } from '../abstract-place-navigation.component';\n\n@Component({\n selector: 'aup-tabbed-place-navigation',\n templateUrl: './tabbed-place-navigation.component.html',\n styleUrls: ['./tabbed-place-navigation.component.scss']\n})\nexport class TabbedPlaceNavigationComponent extends AbstractPlaceNavigationComponent {\n constructor(placeRouter:PlaceRouter) {\n super(placeRouter);\n }\n}\n"]}
1
+ {"version":3,"file":"tabbed-place-navigation.component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,gCAAgC,EAAE,MAAM,wCAAwC,CAAC;AAO1F,IAAa,8BAA8B,GAA3C,MAAa,8BAA+B,SAAQ,gCAAgC;IAClF,YAAY,WAAuB;QACjC,KAAK,CAAC,WAAW,CAAC,CAAC;IACrB,CAAC;CACF,CAAA;;YAHyB,WAAW;;AADxB,8BAA8B;IAL1C,SAAS,CAAC;QACT,QAAQ,EAAE,6BAA6B;QACvC,2YAAuD;;KAExD,CAAC;qCAEwB,WAAW;GADxB,8BAA8B,CAI1C;SAJY,8BAA8B","sourcesContent":["import { Component } from '@angular/core';\nimport { PlaceRouter } from '../../place-router';\nimport { AbstractPlaceNavigationComponent } from '../abstract-place-navigation.component';\n\n@Component({\n selector: 'aup-tabbed-place-navigation',\n templateUrl: './tabbed-place-navigation.component.html',\n styleUrls: ['./tabbed-place-navigation.component.scss']\n})\nexport class TabbedPlaceNavigationComponent extends AbstractPlaceNavigationComponent {\n constructor(placeRouter:PlaceRouter) {\n super(placeRouter);\n }\n}\n"]}
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"TabbedPlaceNavigationComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../abstract-place-navigation.component","name":"AbstractPlaceNavigationComponent","line":9,"character":52},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"aup-tabbed-place-navigation","template":"<nav mat-tab-nav-bar>\n <a mat-tab-link *ngFor=\"let placeDefinition of placeDefinitions.value\"\n [pectinCommand]=\"commandFactory.create(placeDefinition)\"\n [active]=\"isActive(placeDefinition)\"\n [matTooltip]=\"getNav(placeDefinition).tooltip()\">\n <aup-icon *ngIf=\"getNav(placeDefinition).icon()\" [icon]=\"getNav(placeDefinition).icon()\"></aup-icon>\n <span>{{getNav(placeDefinition).title()}}</span>\n </a>\n</nav>\n","styles":[""]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"../../place-router","name":"PlaceRouter","line":10,"character":26}]}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"TabbedPlaceNavigationComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../abstract-place-navigation.component","name":"AbstractPlaceNavigationComponent","line":9,"character":52},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"aup-tabbed-place-navigation","template":"<nav mat-tab-nav-bar>\n <a mat-tab-link *ngFor=\"let placeDefinition of placeDefinitions.value\"\n [pectinCommand]=\"commandFactory.create(placeDefinition)\"\n [active]=\"isActive(placeDefinition)\"\n [matTooltip]=\"getNavigationFace(placeDefinition).tooltip()\">\n <aup-command-face [face]=\"getNavigationFace(placeDefinition)\"></aup-command-face>\n </a>\n</nav>\n","styles":[""]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"../../place-router","name":"PlaceRouter","line":10,"character":26}]}]}}}}]
@@ -16,13 +16,16 @@ let PlaceComponent = PlaceComponent_1 = class PlaceComponent extends DisposableC
16
16
  super();
17
17
  this.visitModel = new MutableValueModel();
18
18
  this._inVisitUpdate = new Guard();
19
+ this._active = new MutableValueModel(false);
20
+ const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
21
+ when(this._active).becomesTruthy(() => this.onPlaceReady());
19
22
  }
20
23
  // @Trace()
21
24
  initialiseVisit(visit, notifyVisitChanged) {
22
25
  assert.isNil(this.visitModel.value);
23
26
  const { when } = Dsl.disposeWith(this);
24
27
  this.visitModel.value = visit;
25
- DebugContext.get(this.visitModel).tag(`${this.placeDefinition.component.name}.visitModel`);
28
+ DebugContext.getOrCreate(this.visitModel).tag(`${this.placeDefinition.component.name}.visitModel`);
26
29
  this.placeDefinition.getVisitParameterDefs().forEach(parameterDef => this.installBinding(parameterDef));
27
30
  when.valueOf(this.visitModel).changes((current, previous) => {
28
31
  notifyVisitChanged(current, previous);
@@ -61,6 +64,15 @@ let PlaceComponent = PlaceComponent_1 = class PlaceComponent extends DisposableC
61
64
  get childPlaces() {
62
65
  return this.placeDefinition.children.map(d => d.component);
63
66
  }
67
+ get active() {
68
+ return this._active.readonly;
69
+ }
70
+ /**
71
+ * Called by the router when the place is ready to interact after any animations have run.
72
+ */
73
+ _notifyActive(active) {
74
+ this._active.value = active;
75
+ }
64
76
  onPlaceReady() {
65
77
  }
66
78
  };
@@ -1 +1 @@
1
- {"version":3,"file":"place-component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/place/place-component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Directive } from '@angular/core';\nimport {\n assert,\n Binding,\n Constructable,\n DebugContext,\n Dsl,\n Guard,\n IMutableHasValue,\n lang,\n MutableValueModel\n} from '@coolon/pectin';\nimport { Klass } from '@coolon/typescript-utilities';\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator';\nimport 'reflect-metadata';\nimport { DisposableComponent } from '../components/disposable-component';\nimport { InteractionContext } from '../interaction/interaction-context';\nimport { PlaceDefinition } from './place-definition';\nimport { ParameterDefinition } from './route/parameter-definition.class';\nimport { Visit } from './visit';\n\n// RAKE: making this Symbol(...) broke things.\nexport const DEFINITION_META_DATA_KEY = 'PLACE_DEFINITION_OPTIONS';\n// this one seems ok.\nexport const ROUTE_PARAMETER_LIST_KEY = Symbol('place:route:parameters');\n\n@Directive()\nexport class PlaceComponent extends DisposableComponent {\n\n private visitModel = new MutableValueModel<Visit>();\n private _inVisitUpdate = new Guard();\n\n interactionContext?: InteractionContext;\n\n canDeactivate?(interactionContext: InteractionContext): boolean | Promise<boolean>;\n\n constructor() {\n super();\n }\n\n // @Trace()\n public initialiseVisit(visit: Visit, notifyVisitChanged: (current: Visit, previous:Visit) => void) {\n assert.isNil(this.visitModel.value);\n\n const { when } = Dsl.disposeWith(this);\n\n this.visitModel.value = visit;\n DebugContext.get(this.visitModel).tag(`${this.placeDefinition.component.name}.visitModel`);\n this.placeDefinition.getVisitParameterDefs().forEach(parameterDef => this.installBinding(parameterDef));\n when.valueOf(this.visitModel).changes((current,previous) => {\n notifyVisitChanged(current, previous);\n }, {unless: this._inVisitUpdate});\n }\n\n public updateVisit(visit: Visit) {\n assert.isTruthy(this.isInitialised());\n assert.notNil(visit);\n this._inVisitUpdate.whileTrue(() => {\n this.visitModel.value = visit;\n });\n }\n\n isInitialised() {\n return !!this.visitModel.value;\n }\n\n // @Trace()\n private installBinding<T, S>(parameterDef: ParameterDefinition<T, S>) {\n const model = this[parameterDef.propertyName] as IMutableHasValue<S>;\n DebugContext.tag(model, `${this.placeDefinition.component.name}.${parameterDef.propertyName}`);\n const binding = this.registerDisposable(new Binding(this.visitModel, model, {\n toRight(visit: Visit): S {\n const value = visit.getParameter(parameterDef.name);\n // console.log('push to component', { name: parameterDef.name, value, visit });\n return value;\n },\n toLeft(value: S, currentVisit?: Visit): Visit {\n // console.log('push to route', { name: parameterDef.name, value, currentVisit });\n return currentVisit.replace(parameterDef, value);\n }\n }));\n\n binding.writeRight();\n }\n\n @Memoize()\n get placeDefinition(): PlaceDefinition {\n return PlaceComponent.getDefinition(this.constructor as any as Constructable<PlaceComponent>);\n }\n\n get childPlaces(): Constructable<PlaceComponent>[] {\n return this.placeDefinition.children.map(d => d.component);\n }\n\n onPlaceReady() {\n }\n\n}\n\nexport namespace PlaceComponent {\n\n export function isPlaceComponentConstructor(target: any): target is Constructable<PlaceComponent> {\n return lang.constructorChain(target as Constructable<any>).includes(PlaceComponent);\n }\n\n export function getRouteParameters(klass: Constructable<PlaceComponent>): ParameterDefinition<any>[] {\n return Klass.get(klass).getMetadataList(ROUTE_PARAMETER_LIST_KEY) as ParameterDefinition<any>[];\n }\n\n export function getDefinition(klass: Constructable<PlaceComponent>): PlaceDefinition {\n return Reflect.getMetadata(DEFINITION_META_DATA_KEY, klass);\n }\n\n export function injectDefinition(klass: Constructable<PlaceComponent>, definition: PlaceDefinition) {\n Reflect.defineMetadata(DEFINITION_META_DATA_KEY, definition, klass);\n }\n\n}\n"]}
1
+ {"version":3,"file":"place-component.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/place/place-component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Directive } from '@angular/core';\nimport {\n assert,\n Binding,\n Constructable,\n DebugContext,\n Dsl,\n Guard,\n IMutableHasValue,\n lang,\n MutableValueModel\n} from '@coolon/pectin';\nimport { Klass } from '@coolon/typescript-utilities';\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator';\nimport 'reflect-metadata';\nimport { DisposableComponent } from '../components/disposable-component';\nimport { InteractionContext } from '../interaction/interaction-context';\nimport { PlaceDefinition } from './place-definition';\nimport { ParameterDefinition } from './route/parameter-definition.class';\nimport { Visit } from './visit';\n\n// RAKE: making this Symbol(...) broke things.\nexport const DEFINITION_META_DATA_KEY = 'PLACE_DEFINITION_OPTIONS';\n// this one seems ok.\nexport const ROUTE_PARAMETER_LIST_KEY = Symbol('place:route:parameters');\n\n@Directive()\nexport class PlaceComponent extends DisposableComponent {\n\n private visitModel = new MutableValueModel<Visit>();\n private _inVisitUpdate = new Guard();\n private _active = new MutableValueModel<boolean>(false);\n\n interactionContext?: InteractionContext;\n\n canDeactivate?(interactionContext: InteractionContext): boolean | Promise<boolean>;\n\n constructor() {\n super();\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);\n when(this._active).becomesTruthy(() => this.onPlaceReady());\n }\n\n // @Trace()\n public initialiseVisit(visit: Visit, notifyVisitChanged: (current: Visit, previous:Visit) => void) {\n assert.isNil(this.visitModel.value);\n\n const { when } = Dsl.disposeWith(this);\n\n this.visitModel.value = visit;\n DebugContext.getOrCreate(this.visitModel).tag(`${this.placeDefinition.component.name}.visitModel`);\n this.placeDefinition.getVisitParameterDefs().forEach(parameterDef => this.installBinding(parameterDef));\n when.valueOf(this.visitModel).changes((current,previous) => {\n notifyVisitChanged(current, previous);\n }, {unless: this._inVisitUpdate});\n }\n\n public updateVisit(visit: Visit) {\n assert.isTruthy(this.isInitialised());\n assert.notNil(visit);\n this._inVisitUpdate.whileTrue(() => {\n this.visitModel.value = visit;\n });\n }\n\n isInitialised() {\n return !!this.visitModel.value;\n }\n\n // @Trace()\n private installBinding<T, S>(parameterDef: ParameterDefinition<T, S>) {\n const model = this[parameterDef.propertyName] as IMutableHasValue<S>;\n DebugContext.tag(model, `${this.placeDefinition.component.name}.${parameterDef.propertyName}`);\n const binding = this.registerDisposable(new Binding(this.visitModel, model, {\n toRight(visit: Visit): S {\n const value = visit.getParameter(parameterDef.name);\n // console.log('push to component', { name: parameterDef.name, value, visit });\n return value;\n },\n toLeft(value: S, currentVisit?: Visit): Visit {\n // console.log('push to route', { name: parameterDef.name, value, currentVisit });\n return currentVisit.replace(parameterDef, value);\n }\n }));\n\n binding.writeRight();\n }\n\n @Memoize()\n get placeDefinition(): PlaceDefinition {\n return PlaceComponent.getDefinition(this.constructor as any as Constructable<PlaceComponent>);\n }\n\n get childPlaces(): Constructable<PlaceComponent>[] {\n return this.placeDefinition.children.map(d => d.component);\n }\n\n get active() {\n return this._active.readonly;\n }\n\n /**\n * Called by the router when the place is ready to interact after any animations have run.\n */\n _notifyActive(active: boolean) {\n this._active.value = active;\n }\n\n onPlaceReady() {\n }\n\n}\n\nexport namespace PlaceComponent {\n\n export function isPlaceComponentConstructor(target: any): target is Constructable<PlaceComponent> {\n return lang.constructorChain(target as Constructable<any>).includes(PlaceComponent);\n }\n\n export function getRouteParameters(klass: Constructable<PlaceComponent>): ParameterDefinition<any>[] {\n return Klass.get(klass).getMetadataList(ROUTE_PARAMETER_LIST_KEY) as ParameterDefinition<any>[];\n }\n\n export function getDefinition(klass: Constructable<PlaceComponent>): PlaceDefinition {\n return Reflect.getMetadata(DEFINITION_META_DATA_KEY, klass);\n }\n\n export function injectDefinition(klass: Constructable<PlaceComponent>, definition: PlaceDefinition) {\n Reflect.defineMetadata(DEFINITION_META_DATA_KEY, definition, klass);\n }\n\n}\n"]}
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"DEFINITION_META_DATA_KEY":"PLACE_DEFINITION_OPTIONS","ROUTE_PARAMETER_LIST_KEY":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"Symbol"},"arguments":["place:route:parameters"]},"PlaceComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../components/disposable-component","name":"DisposableComponent","line":27,"character":36},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":26,"character":1}}],"members":{"canDeactivate":[{"__symbolic":"method"}],"__ctor__":[{"__symbolic":"constructor"}],"initialiseVisit":[{"__symbolic":"method"}],"updateVisit":[{"__symbolic":"method"}],"isInitialised":[{"__symbolic":"method"}],"installBinding":[{"__symbolic":"method"}],"placeDefinition":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@typescript-plus/fast-memoize-decorator","name":"Memoize","line":85,"character":3}}]}],"onPlaceReady":[{"__symbolic":"method"}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"DEFINITION_META_DATA_KEY":"PLACE_DEFINITION_OPTIONS","ROUTE_PARAMETER_LIST_KEY":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"Symbol"},"arguments":["place:route:parameters"]},"PlaceComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../components/disposable-component","name":"DisposableComponent","line":27,"character":36},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":26,"character":1}}],"members":{"canDeactivate":[{"__symbolic":"method"}],"__ctor__":[{"__symbolic":"constructor"}],"initialiseVisit":[{"__symbolic":"method"}],"updateVisit":[{"__symbolic":"method"}],"isInitialised":[{"__symbolic":"method"}],"installBinding":[{"__symbolic":"method"}],"placeDefinition":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@typescript-plus/fast-memoize-decorator","name":"Memoize","line":88,"character":3}}]}],"_notifyActive":[{"__symbolic":"method"}],"onPlaceReady":[{"__symbolic":"method"}]}}}}]
@@ -2,7 +2,7 @@ import { __awaiter, __decorate, __metadata } from "tslib";
2
2
  import { Location } from '@angular/common';
3
3
  import { Injectable } from '@angular/core';
4
4
  import { ActivatedRoute, NavigationCancel, NavigationEnd, NavigationError, NavigationExtras, NavigationStart, Router } from '@angular/router';
5
- import { assert, DebugContext, Dsl, GarbageCollector, lang, Logger, MutableListModel, MutableValueModel, Trace } from '@coolon/pectin';
5
+ import { assert, DebugContext, Dsl, GarbageCollector, lang, Logger, MutableListModel, MutableValueModel } from '@coolon/pectin';
6
6
  import { InteractionService } from '../interaction/services/interaction.service';
7
7
  import { NavigatingDuringInteraction } from './navigation/session/interactions/navigating-during-interaction';
8
8
  import { PopStateDuringInteractionNavigation } from './navigation/session/interactions/pop-state-during-interaction-navigation';
@@ -12,7 +12,6 @@ import { NavigationContext } from './navigation/session/navigation-context';
12
12
  import { PopStateNavigation } from './navigation/session/pop-state-navigation';
13
13
  import { PlaceHistory } from './place-history';
14
14
  import { UrlService } from './url-service';
15
- import { Visit } from './visit';
16
15
  import * as i0 from "@angular/core";
17
16
  import * as i1 from "@angular/router";
18
17
  import * as i2 from "@angular/common";
@@ -180,6 +179,7 @@ let PlaceRouter = class PlaceRouter extends GarbageCollector {
180
179
  get activeVisits() {
181
180
  return this._activeVisits.readonly;
182
181
  }
182
+ // @Trace()
183
183
  pushVisitChangesToRoute(previous, next) {
184
184
  return __awaiter(this, void 0, void 0, function* () {
185
185
  this.placeHistory.updateVisit(next);
@@ -276,12 +276,6 @@ PlaceRouter.ctorParameters = () => [
276
276
  { type: PlaceHistory }
277
277
  ];
278
278
  PlaceRouter.ɵprov = i0.ɵɵdefineInjectable({ factory: function PlaceRouter_Factory() { return new PlaceRouter(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i2.Location), i0.ɵɵinject(i3.InteractionService), i0.ɵɵinject(i4.UrlService), i0.ɵɵinject(i5.PlaceHistory)); }, token: PlaceRouter, providedIn: "root" });
279
- __decorate([
280
- Trace(),
281
- __metadata("design:type", Function),
282
- __metadata("design:paramtypes", [Visit, Visit]),
283
- __metadata("design:returntype", Promise)
284
- ], PlaceRouter.prototype, "pushVisitChangesToRoute", null);
285
279
  PlaceRouter = __decorate([
286
280
  Injectable({
287
281
  providedIn: 'root'
@@ -1 +1 @@
1
- {"version":3,"file":"place-router.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/place/place-router.ts"],"names":[],"mappings":"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","sourcesContent":["import { Location } from '@angular/common';\nimport { Injectable } from '@angular/core';\nimport {\n ActivatedRoute,\n NavigationCancel,\n NavigationEnd,\n NavigationError,\n NavigationExtras,\n NavigationStart,\n Router\n} from '@angular/router';\nimport {\n assert,\n DebugContext,\n Dsl,\n GarbageCollector,\n lang,\n ListModel,\n Logger, MapModelChain,\n MutableListModel,\n MutableValueModel,\n Trace,\n ValueModelChain\n} from '@coolon/pectin';\nimport { InteractionServiceRoutingAdapter } from '../interaction/services/interaction-service-routing-adapter';\nimport { InteractionService } from '../interaction/services/interaction.service';\nimport { NavigatingDuringInteraction } from './navigation/session/interactions/navigating-during-interaction';\nimport { PopStateDuringInteractionNavigation } from './navigation/session/interactions/pop-state-during-interaction-navigation';\nimport { SynchroniseInteractionContextIdsWithRoute } from './navigation/session/interactions/synchronise-interaction-context-ids-with-route';\nimport { Navigating } from './navigation/session/navigating';\nimport { NavigationContext } from './navigation/session/navigation-context';\nimport { NavigationSession } from './navigation/session/navigation-session';\nimport { PopStateNavigation } from './navigation/session/pop-state-navigation';\nimport { PlaceDefinition } from './place-definition';\nimport { PlaceHistory } from './place-history';\nimport { UrlService } from './url-service';\nimport { UrlSnapshot } from './url-snapshot';\nimport { Visit } from './visit';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PlaceRouter extends GarbageCollector {\n\n readonly navigationSessionModel = new MutableValueModel<NavigationSession>();\n readonly navigationInProgress: ValueModelChain<boolean>;\n readonly navigationSessionName: ValueModelChain<string>; // used by tests\n\n private readonly navigationContext: NavigationContext.Impl;\n\n private readonly _activeVisits = new MutableListModel<Visit>();\n readonly activeVisitsByPlaceDefinition: MapModelChain<PlaceDefinition, Visit>;\n private routerInteractionAdapter: InteractionServiceRoutingAdapter;\n private sessionFinishedJobs: (() => void)[] = [];\n\n constructor(private readonly angularRouter: Router,\n private readonly angularLocation: Location,\n private readonly interactionService: InteractionService,\n private readonly urlService: UrlService,\n private readonly placeHistory: PlaceHistory) {\n super();\n\n this.routerInteractionAdapter = interactionService.registerPlaceRouter(this);\n\n // TODO: Make this an interface and use 'this' instead.\n this.navigationContext = new NavigationContext.Impl(\n this.urlService,\n this.routerInteractionAdapter,\n (urlSnapshot: UrlSnapshot, options: { replaceUrl: boolean }) => {\n return this.navigateByUrl(urlSnapshot, options);\n },\n state => {\n this.transitionTo(state);\n },\n visits => {\n this.routingSessionFinished(visits);\n });\n\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);\n this.navigationInProgress = chain(this.navigationSessionModel).isNotNil();\n\n const idleStateName = chain(this.interactionService.active).map(active => active ? 'IdleDuringInteraction' : 'Idle');\n this.navigationSessionName = chain(this.navigationSessionModel)\n .pluck('name')\n .otherwise(idleStateName);\n\n DebugContext.tag(this._activeVisits, 'PlaceRouter.activeVisits');\n this.activeVisitsByPlaceDefinition = chain(this._activeVisits).indexBy('placeDefinition');\n\n // TODO: make setup the callbacks in during module initiation to make this testable.\n angularRouter.events.subscribe(event => {\n // Routing event sequence\n // ======================\n // NavigationStart -> .... -> NavigationCancel --> redirect, go around again in the same session\n // NavigationStart -> .... -> NavigationEnd --> navigation complete, end session.\n // NavigationStart -> .... -> NavigationError --> navigation aborted, end session.\n // =======================\n if (event instanceof NavigationStart) {\n // console.log(`---> NavigationStart[${event.id}]: ${event.url} (${event.navigationTrigger})`);\n if (event.navigationTrigger === 'popstate') {\n this.onPopState(event);\n } else {\n this.onRouterStarted(event);\n }\n // console.log(`<--- NavigationStart[${event.id}]: ${event.url} (${event.navigationTrigger})`);\n }\n if (event instanceof NavigationEnd) {\n // console.log(`---> NavigationEnd[${event.id}]: ${event.url}`);\n this.onRouterEnd(event);\n // console.log(`<--- NavigationEnd[${event.id}]: ${event.url}`);\n }\n if (event instanceof NavigationError) {\n // console.log(`---> NavigationError[${event.id}]: ${event.url}`);\n this.onRouterError(event);\n // console.log(`<--- NavigationError[${event.id}]: ${event.url}`);\n }\n if (event instanceof NavigationCancel) {\n // console.log(`---> NavigationCancel[${event.id}]: ${event.url}`);\n this.onRouterCancelled(event);\n // console.log(`<--- NavigationCancel[${event.id}]: ${event.url}`);\n }\n });\n\n // The router needs to know about url changes and in some cases they are the only way the router can know if\n // the back button was clicked.\n angularLocation.onUrlChange(url => this.onUrlChanged(url));\n\n }\n\n get navigationSession() {\n return this.navigationSessionModel.value;\n }\n\n get currentSession() {\n return this.navigationSessionModel.value;\n }\n\n // @Trace()\n onPopState(event: NavigationStart) {\n assert.isTruthy(event.navigationTrigger === 'popstate');\n if (this.currentSession) {\n this.currentSession.onPopState(event);\n } else {\n const poppedHistoryUrl = event.url;\n const currentRouterUrl = this.urlService.getCurrentRouterUrl();\n const session = this.interactionService.isActive() ?\n new PopStateDuringInteractionNavigation(this.navigationContext, currentRouterUrl, poppedHistoryUrl) :\n new PopStateNavigation(this.navigationContext, currentRouterUrl, poppedHistoryUrl);\n this.transitionTo(session);\n }\n }\n\n // @Trace()\n onRouterStarted(event: NavigationStart) {\n assert.isFalsey(event.navigationTrigger === 'popstate');\n const inInteraction = this.interactionService.isActive();\n if (this.currentSession) {\n this.currentSession.onRouterStarted(event);\n } else {\n this.transitionTo(this.createNavigationSession(this.urlService.getCurrentRouterUrl()));\n }\n }\n\n // @Trace()\n onUrlChanged(newUrl: string) {\n // the back button can trigger a url change without a navigation session in progress so we\n // console.log(`---> Url Changed ${newUrl}`);\n if (this.currentSession) {\n this.currentSession.onUrlChange(newUrl);\n } else {\n console.log('FYI: url changed without a navigation session in progress');\n }\n // console.log(`<--- Url Changed`);\n }\n\n // @Trace()\n onRouterCancelled(event: NavigationCancel) {\n this.currentSession.onRouterCancelled(event);\n }\n\n // @Trace()\n onRouterError(event: NavigationError) {\n this.currentSession.onRouterError(event);\n }\n\n // @Trace()\n onRouterEnd(event: NavigationEnd) {\n this.currentSession.onRouterEnd(event);\n }\n\n navigate(visit: Visit, options?: { relativeTo: ActivatedRoute }) {\n return this.doNavigation(visit, async router => {\n const commands = [\n visit.placeDefinition.path,\n ...this.createRouteParameters(visit)\n ];\n await this.angularRouter.navigate(commands, {\n relativeTo: options ? options.relativeTo : null\n });\n });\n }\n\n // @Trace()\n async doNavigation(visit: Visit, runNavigationCommands: (router: Router) => any) {\n if (this.navigationInProgress.value) {\n lang.illegalState('Navigation already in progress');\n }\n const navigation = this.createNavigationSession(this.urlService.getCurrentRouterUrl());\n navigation.storeVisit(visit);\n this.transitionTo(navigation);\n try {\n await runNavigationCommands(this.angularRouter);\n } finally {\n // Check if the router has finished (in the case where no router change required) and we're still in a\n // transient state and finish of the transition.\n if (!this.angularRouter.getCurrentNavigation() && this.currentSession) {\n this.currentSession.onRouterEnd(new NavigationEnd(-1, '', ''));\n }\n }\n }\n\n navigateByUrl(urlSnapshot: UrlSnapshot, navigationExtras?: NavigationExtras) {\n // console.log(`### navigationByUrl -> ${urlSnapshot.urlTree.toString()}`);\n return this.angularRouter.navigateByUrl(urlSnapshot.urlTree, navigationExtras);\n }\n\n get activeVisits(): ListModel<Visit> {\n return this._activeVisits.readonly;\n }\n\n @Trace()\n async pushVisitChangesToRoute(previous: Visit, next: Visit): Promise<void> {\n this.placeHistory.updateVisit(next);\n\n // FIXME: no route id -> route id duplicates route parameters\n if (next.hasRoutingChangedFrom(previous)) {\n return this.doNavigation(next, router => {\n const urlSnapshot = this.urlService.parseUrl(this.angularRouter.routerState.snapshot.url).updateVisitSegments(next);\n // console.log('### Push Changes to route Redirect', { commands: urlSnapshot.url });\n return this.navigateByUrl(urlSnapshot);\n });\n }\n }\n\n\n private createNavigationSession(currentRouterUrl: string): NavigationSession {\n const inInteraction = this.interactionService.isActive();\n return inInteraction ?\n new NavigatingDuringInteraction(this.navigationContext, currentRouterUrl) :\n new Navigating(this.navigationContext, currentRouterUrl);\n }\n\n // @Trace()\n protected transitionTo(next: NavigationSession) {\n const previous = this.navigationSessionModel.value;\n if (!previous) {\n this.placeHistory.notifyNavigationStarted();\n }\n assert.isTruthy(next !== previous);\n Logger.get(this).info(`### Router State Transition: ${previous ? previous.toString() : 'null'} -> ${next.toString()}`);\n this.navigationSessionModel.value = next;\n if (!!previous) {\n previous.dispose();\n }\n next.notifyActive();\n }\n\n // @Trace()\n private routingSessionFinished(visits: Visit[]) {\n if (visits && visits.length > 0) {\n assert.isTruthy(this.navigationInProgress.value);\n this.placeHistory.notifyNavigationFinished(visits);\n // We update the active visits before we finish the session so the\n // place outlets can ignore the incoming changes until things are\n // settled. TODO: can we removed the event'ness here and just do a push?\n this._activeVisits.value = visits;\n }\n const session = this.currentSession;\n session.dispose();\n this.navigationSessionModel.value = null;\n console.log(`### Router Session Finished (was ${session.toString()})`);\n this.sessionFinishedJobs.forEach(job => job());\n this.sessionFinishedJobs = [];\n }\n\n private runAfterRoutingSessionFinishes(func: () => void) {\n assert.isTruthy(this.navigationInProgress);\n this.sessionFinishedJobs.push(func);\n }\n\n\n /**\n * Sync's the current interaction state with the URL. We need to push something in the URL in order\n * to be able to capture the back button on the first page. If we don't then the back click will exit\n * the app directly and we don't get to ask.\n */\n // @Trace()\n syncInteractionContextIdsWithRouter(): Promise<unknown> {\n if (this.navigationSession) {\n // console.log(`Navigation active -> ${this.navigationSession.toString()}, sync delayed until finished.`);\n const session = this.navigationSession;\n return new Promise((resolve, reject) => {\n this.runAfterRoutingSessionFinishes(() => {\n this.runAfterRoutingSessionFinishes(resolve);\n const syncSession = new SynchroniseInteractionContextIdsWithRoute(this.navigationContext, this.urlService.getCurrentRouterUrl(), false);\n this.transitionTo(syncSession);\n });\n });\n } else {\n return new Promise<unknown>(((resolve, reject) => {\n // console.log(`No navigation in progress, starting synchronisation job`);\n this.runAfterRoutingSessionFinishes(resolve);\n const session = new SynchroniseInteractionContextIdsWithRoute(this.navigationContext, this.urlService.getCurrentRouterUrl(), false);\n this.transitionTo(session);\n }));\n\n }\n }\n\n\n private createRouteParameters(visit: Visit) {\n const def = visit.placeDefinition;\n return visit.hasRouteId() ?\n [def.getFormattedRouteId(visit), def.getFormattedRouteParameters(visit)] :\n [def.getFormattedRouteParameters(visit)];\n }\n\n}\n\nexport namespace NavigationStateMachine {\n export type VisitsUpdatedCallback = (visits: Visit[]) => void;\n}\n"]}
1
+ {"version":3,"file":"place-router.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/place/place-router.ts"],"names":[],"mappings":"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","sourcesContent":["import { Location } from '@angular/common';\nimport { Injectable } from '@angular/core';\nimport {\n ActivatedRoute,\n NavigationCancel,\n NavigationEnd,\n NavigationError,\n NavigationExtras,\n NavigationStart,\n Router\n} from '@angular/router';\nimport {\n assert,\n DebugContext,\n Dsl,\n GarbageCollector,\n lang,\n ListModel,\n Logger, MapModelChain,\n MutableListModel,\n MutableValueModel,\n Trace,\n ValueModelChain\n} from '@coolon/pectin';\nimport { InteractionServiceRoutingAdapter } from '../interaction/services/interaction-service-routing-adapter';\nimport { InteractionService } from '../interaction/services/interaction.service';\nimport { NavigatingDuringInteraction } from './navigation/session/interactions/navigating-during-interaction';\nimport { PopStateDuringInteractionNavigation } from './navigation/session/interactions/pop-state-during-interaction-navigation';\nimport { SynchroniseInteractionContextIdsWithRoute } from './navigation/session/interactions/synchronise-interaction-context-ids-with-route';\nimport { Navigating } from './navigation/session/navigating';\nimport { NavigationContext } from './navigation/session/navigation-context';\nimport { NavigationSession } from './navigation/session/navigation-session';\nimport { PopStateNavigation } from './navigation/session/pop-state-navigation';\nimport { PlaceDefinition } from './place-definition';\nimport { PlaceHistory } from './place-history';\nimport { UrlService } from './url-service';\nimport { UrlSnapshot } from './url-snapshot';\nimport { Visit } from './visit';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PlaceRouter extends GarbageCollector {\n\n readonly navigationSessionModel = new MutableValueModel<NavigationSession>();\n readonly navigationInProgress: ValueModelChain<boolean>;\n readonly navigationSessionName: ValueModelChain<string>; // used by tests\n\n private readonly navigationContext: NavigationContext.Impl;\n\n private readonly _activeVisits = new MutableListModel<Visit>();\n readonly activeVisitsByPlaceDefinition: MapModelChain<PlaceDefinition, Visit>;\n private routerInteractionAdapter: InteractionServiceRoutingAdapter;\n private sessionFinishedJobs: (() => void)[] = [];\n\n constructor(private readonly angularRouter: Router,\n private readonly angularLocation: Location,\n private readonly interactionService: InteractionService,\n private readonly urlService: UrlService,\n private readonly placeHistory: PlaceHistory) {\n super();\n\n this.routerInteractionAdapter = interactionService.registerPlaceRouter(this);\n\n // TODO: Make this an interface and use 'this' instead.\n this.navigationContext = new NavigationContext.Impl(\n this.urlService,\n this.routerInteractionAdapter,\n (urlSnapshot: UrlSnapshot, options: { replaceUrl: boolean }) => {\n return this.navigateByUrl(urlSnapshot, options);\n },\n state => {\n this.transitionTo(state);\n },\n visits => {\n this.routingSessionFinished(visits);\n });\n\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);\n this.navigationInProgress = chain(this.navigationSessionModel).isNotNil();\n\n const idleStateName = chain(this.interactionService.active).map(active => active ? 'IdleDuringInteraction' : 'Idle');\n this.navigationSessionName = chain(this.navigationSessionModel)\n .pluck('name')\n .otherwise(idleStateName);\n\n DebugContext.tag(this._activeVisits, 'PlaceRouter.activeVisits');\n this.activeVisitsByPlaceDefinition = chain(this._activeVisits).indexBy('placeDefinition');\n\n // TODO: make setup the callbacks in during module initiation to make this testable.\n angularRouter.events.subscribe(event => {\n // Routing event sequence\n // ======================\n // NavigationStart -> .... -> NavigationCancel --> redirect, go around again in the same session\n // NavigationStart -> .... -> NavigationEnd --> navigation complete, end session.\n // NavigationStart -> .... -> NavigationError --> navigation aborted, end session.\n // =======================\n if (event instanceof NavigationStart) {\n // console.log(`---> NavigationStart[${event.id}]: ${event.url} (${event.navigationTrigger})`);\n if (event.navigationTrigger === 'popstate') {\n this.onPopState(event);\n } else {\n this.onRouterStarted(event);\n }\n // console.log(`<--- NavigationStart[${event.id}]: ${event.url} (${event.navigationTrigger})`);\n }\n if (event instanceof NavigationEnd) {\n // console.log(`---> NavigationEnd[${event.id}]: ${event.url}`);\n this.onRouterEnd(event);\n // console.log(`<--- NavigationEnd[${event.id}]: ${event.url}`);\n }\n if (event instanceof NavigationError) {\n // console.log(`---> NavigationError[${event.id}]: ${event.url}`);\n this.onRouterError(event);\n // console.log(`<--- NavigationError[${event.id}]: ${event.url}`);\n }\n if (event instanceof NavigationCancel) {\n // console.log(`---> NavigationCancel[${event.id}]: ${event.url}`);\n this.onRouterCancelled(event);\n // console.log(`<--- NavigationCancel[${event.id}]: ${event.url}`);\n }\n });\n\n // The router needs to know about url changes and in some cases they are the only way the router can know if\n // the back button was clicked.\n angularLocation.onUrlChange(url => this.onUrlChanged(url));\n\n }\n\n get navigationSession() {\n return this.navigationSessionModel.value;\n }\n\n get currentSession() {\n return this.navigationSessionModel.value;\n }\n\n // @Trace()\n onPopState(event: NavigationStart) {\n assert.isTruthy(event.navigationTrigger === 'popstate');\n if (this.currentSession) {\n this.currentSession.onPopState(event);\n } else {\n const poppedHistoryUrl = event.url;\n const currentRouterUrl = this.urlService.getCurrentRouterUrl();\n const session = this.interactionService.isActive() ?\n new PopStateDuringInteractionNavigation(this.navigationContext, currentRouterUrl, poppedHistoryUrl) :\n new PopStateNavigation(this.navigationContext, currentRouterUrl, poppedHistoryUrl);\n this.transitionTo(session);\n }\n }\n\n // @Trace()\n onRouterStarted(event: NavigationStart) {\n assert.isFalsey(event.navigationTrigger === 'popstate');\n const inInteraction = this.interactionService.isActive();\n if (this.currentSession) {\n this.currentSession.onRouterStarted(event);\n } else {\n this.transitionTo(this.createNavigationSession(this.urlService.getCurrentRouterUrl()));\n }\n }\n\n // @Trace()\n onUrlChanged(newUrl: string) {\n // the back button can trigger a url change without a navigation session in progress so we\n // console.log(`---> Url Changed ${newUrl}`);\n if (this.currentSession) {\n this.currentSession.onUrlChange(newUrl);\n } else {\n console.log('FYI: url changed without a navigation session in progress');\n }\n // console.log(`<--- Url Changed`);\n }\n\n // @Trace()\n onRouterCancelled(event: NavigationCancel) {\n this.currentSession.onRouterCancelled(event);\n }\n\n // @Trace()\n onRouterError(event: NavigationError) {\n this.currentSession.onRouterError(event);\n }\n\n // @Trace()\n onRouterEnd(event: NavigationEnd) {\n this.currentSession.onRouterEnd(event);\n }\n\n navigate(visit: Visit, options?: { relativeTo: ActivatedRoute }) {\n return this.doNavigation(visit, async router => {\n const commands = [\n visit.placeDefinition.path,\n ...this.createRouteParameters(visit)\n ];\n await this.angularRouter.navigate(commands, {\n relativeTo: options ? options.relativeTo : null\n });\n });\n }\n\n // @Trace()\n async doNavigation(visit: Visit, runNavigationCommands: (router: Router) => any) {\n if (this.navigationInProgress.value) {\n lang.illegalState('Navigation already in progress');\n }\n const navigation = this.createNavigationSession(this.urlService.getCurrentRouterUrl());\n navigation.storeVisit(visit);\n this.transitionTo(navigation);\n try {\n await runNavigationCommands(this.angularRouter);\n } finally {\n // Check if the router has finished (in the case where no router change required) and we're still in a\n // transient state and finish of the transition.\n if (!this.angularRouter.getCurrentNavigation() && this.currentSession) {\n this.currentSession.onRouterEnd(new NavigationEnd(-1, '', ''));\n }\n }\n }\n\n navigateByUrl(urlSnapshot: UrlSnapshot, navigationExtras?: NavigationExtras) {\n // console.log(`### navigationByUrl -> ${urlSnapshot.urlTree.toString()}`);\n return this.angularRouter.navigateByUrl(urlSnapshot.urlTree, navigationExtras);\n }\n\n get activeVisits(): ListModel<Visit> {\n return this._activeVisits.readonly;\n }\n\n // @Trace()\n async pushVisitChangesToRoute(previous: Visit, next: Visit): Promise<void> {\n this.placeHistory.updateVisit(next);\n\n // FIXME: no route id -> route id duplicates route parameters\n if (next.hasRoutingChangedFrom(previous)) {\n return this.doNavigation(next, router => {\n const urlSnapshot = this.urlService.parseUrl(this.angularRouter.routerState.snapshot.url).updateVisitSegments(next);\n // console.log('### Push Changes to route Redirect', { commands: urlSnapshot.url });\n return this.navigateByUrl(urlSnapshot);\n });\n }\n }\n\n\n private createNavigationSession(currentRouterUrl: string): NavigationSession {\n const inInteraction = this.interactionService.isActive();\n return inInteraction ?\n new NavigatingDuringInteraction(this.navigationContext, currentRouterUrl) :\n new Navigating(this.navigationContext, currentRouterUrl);\n }\n\n // @Trace()\n protected transitionTo(next: NavigationSession) {\n const previous = this.navigationSessionModel.value;\n if (!previous) {\n this.placeHistory.notifyNavigationStarted();\n }\n assert.isTruthy(next !== previous);\n Logger.get(this).info(`### Router State Transition: ${previous ? previous.toString() : 'null'} -> ${next.toString()}`);\n this.navigationSessionModel.value = next;\n if (!!previous) {\n previous.dispose();\n }\n next.notifyActive();\n }\n\n // @Trace()\n private routingSessionFinished(visits: Visit[]) {\n if (visits && visits.length > 0) {\n assert.isTruthy(this.navigationInProgress.value);\n this.placeHistory.notifyNavigationFinished(visits);\n // We update the active visits before we finish the session so the\n // place outlets can ignore the incoming changes until things are\n // settled. TODO: can we removed the event'ness here and just do a push?\n this._activeVisits.value = visits;\n }\n const session = this.currentSession;\n session.dispose();\n this.navigationSessionModel.value = null;\n console.log(`### Router Session Finished (was ${session.toString()})`);\n this.sessionFinishedJobs.forEach(job => job());\n this.sessionFinishedJobs = [];\n }\n\n private runAfterRoutingSessionFinishes(func: () => void) {\n assert.isTruthy(this.navigationInProgress);\n this.sessionFinishedJobs.push(func);\n }\n\n\n /**\n * Sync's the current interaction state with the URL. We need to push something in the URL in order\n * to be able to capture the back button on the first page. If we don't then the back click will exit\n * the app directly and we don't get to ask.\n */\n // @Trace()\n syncInteractionContextIdsWithRouter(): Promise<unknown> {\n if (this.navigationSession) {\n // console.log(`Navigation active -> ${this.navigationSession.toString()}, sync delayed until finished.`);\n const session = this.navigationSession;\n return new Promise((resolve, reject) => {\n this.runAfterRoutingSessionFinishes(() => {\n this.runAfterRoutingSessionFinishes(resolve);\n const syncSession = new SynchroniseInteractionContextIdsWithRoute(this.navigationContext, this.urlService.getCurrentRouterUrl(), false);\n this.transitionTo(syncSession);\n });\n });\n } else {\n return new Promise<unknown>(((resolve, reject) => {\n // console.log(`No navigation in progress, starting synchronisation job`);\n this.runAfterRoutingSessionFinishes(resolve);\n const session = new SynchroniseInteractionContextIdsWithRoute(this.navigationContext, this.urlService.getCurrentRouterUrl(), false);\n this.transitionTo(session);\n }));\n\n }\n }\n\n\n private createRouteParameters(visit: Visit) {\n const def = visit.placeDefinition;\n return visit.hasRouteId() ?\n [def.getFormattedRouteId(visit), def.getFormattedRouteParameters(visit)] :\n [def.getFormattedRouteParameters(visit)];\n }\n\n}\n\nexport namespace NavigationStateMachine {\n export type VisitsUpdatedCallback = (visits: Visit[]) => void;\n}\n"]}
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"PlaceRouter":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@coolon/pectin","name":"GarbageCollector","line":42,"character":33},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":39,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":55,"character":46},{"__symbolic":"reference","module":"@angular/common","name":"Location","line":56,"character":48},{"__symbolic":"reference","module":"../interaction/services/interaction.service","name":"InteractionService","line":57,"character":51},{"__symbolic":"reference","module":"./url-service","name":"UrlService","line":58,"character":43},{"__symbolic":"reference","module":"./place-history","name":"PlaceHistory","line":59,"character":45}]}],"onPopState":[{"__symbolic":"method"}],"onRouterStarted":[{"__symbolic":"method"}],"onUrlChanged":[{"__symbolic":"method"}],"onRouterCancelled":[{"__symbolic":"method"}],"onRouterError":[{"__symbolic":"method"}],"onRouterEnd":[{"__symbolic":"method"}],"navigate":[{"__symbolic":"method"}],"doNavigation":[{"__symbolic":"method"}],"navigateByUrl":[{"__symbolic":"method"}],"pushVisitChangesToRoute":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"Trace","line":230,"character":3}}]}],"createNavigationSession":[{"__symbolic":"method"}],"transitionTo":[{"__symbolic":"method"}],"routingSessionFinished":[{"__symbolic":"method"}],"runAfterRoutingSessionFinishes":[{"__symbolic":"method"}],"syncInteractionContextIdsWithRouter":[{"__symbolic":"method"}],"createRouteParameters":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"PlaceRouter":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@coolon/pectin","name":"GarbageCollector","line":42,"character":33},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":39,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":55,"character":46},{"__symbolic":"reference","module":"@angular/common","name":"Location","line":56,"character":48},{"__symbolic":"reference","module":"../interaction/services/interaction.service","name":"InteractionService","line":57,"character":51},{"__symbolic":"reference","module":"./url-service","name":"UrlService","line":58,"character":43},{"__symbolic":"reference","module":"./place-history","name":"PlaceHistory","line":59,"character":45}]}],"onPopState":[{"__symbolic":"method"}],"onRouterStarted":[{"__symbolic":"method"}],"onUrlChanged":[{"__symbolic":"method"}],"onRouterCancelled":[{"__symbolic":"method"}],"onRouterError":[{"__symbolic":"method"}],"onRouterEnd":[{"__symbolic":"method"}],"navigate":[{"__symbolic":"method"}],"doNavigation":[{"__symbolic":"method"}],"navigateByUrl":[{"__symbolic":"method"}],"pushVisitChangesToRoute":[{"__symbolic":"method"}],"createNavigationSession":[{"__symbolic":"method"}],"transitionTo":[{"__symbolic":"method"}],"routingSessionFinished":[{"__symbolic":"method"}],"runAfterRoutingSessionFinishes":[{"__symbolic":"method"}],"syncInteractionContextIdsWithRouter":[{"__symbolic":"method"}],"createRouteParameters":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}}}}]
@@ -2,22 +2,22 @@ import { __decorate } from "tslib";
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { NgModule } from '@angular/core';
4
4
  import { FlexModule } from '@angular/flex-layout';
5
- import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
6
5
  import { MatIconModule } from '@angular/material/icon';
7
6
  import { MatListModule } from '@angular/material/list';
7
+ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
8
8
  import { MatTabsModule } from '@angular/material/tabs';
9
9
  import { MatTooltipModule } from '@angular/material/tooltip';
10
10
  import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
11
11
  import { RouterModule } from '@angular/router';
12
+ import { ComponentsModule } from '../components';
12
13
  import { DirectivesModule } from '../directives/directives.module';
13
14
  import { AbstractPlaceNavigationComponent } from './components/abstract-place-navigation.component';
14
15
  import { BusyOverlayComponent } from './components/busy-overlay/busy-overlay.component';
15
16
  import { EmptyStateComponent } from './components/empty-state/empty-state.component';
16
17
  import { ListPlaceNavComponent } from './components/list-place-nav/list-place-nav.component';
17
18
  import { PlaceOutletComponent } from './components/place-outlet/place-outlet.component';
18
- import { TabbedPlaceNavigationComponent } from './components/tabbed-place-navigation/tabbed-place-navigation.component';
19
19
  import { SidePlaceNavigationComponent } from './components/side-place-navigation/side-place-navigation.component';
20
- import { ComponentsModule } from '../components';
20
+ import { TabbedPlaceNavigationComponent } from './components/tabbed-place-navigation/tabbed-place-navigation.component';
21
21
  let PlaceModule = class PlaceModule {
22
22
  };
23
23
  PlaceModule = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"place.module.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/place/place.module.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,gCAAgC,EAAE,MAAM,kDAAkD,CAAC;AACpG,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AACxF,OAAO,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,sDAAsD,CAAC;AAC7F,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AACxF,OAAO,EAAE,8BAA8B,EAAE,MAAM,wEAAwE,CAAC;AACxH,OAAO,EAAE,4BAA4B,EAAE,MAAM,oEAAoE,CAAC;AAElH,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAuCjD,IAAa,WAAW,GAAxB,MAAa,WAAW;CAEvB,CAAA;AAFY,WAAW;IArCvB,QAAQ,CAAC;QACR,OAAO,EAAE;YACP,YAAY;YACZ,uBAAuB;YACvB,wBAAwB;YACxB,YAAY;YACZ,aAAa;YACb,aAAa;YACb,gBAAgB;YAChB,aAAa;YACb,gBAAgB;YAChB,UAAU;YACV,gBAAgB;SACjB;QACD,YAAY,EAAE;YACZ,mBAAmB;YACnB,oBAAoB;YACpB,oBAAoB;YACpB,8BAA8B;YAC9B,qBAAqB;YACrB,4BAA4B;YAC5B,gCAAgC;SACjC;QACD,eAAe,EAAE,CAAC,oBAAoB,CAAC;QACvC,OAAO,EAAE;YACP,oBAAoB;YACpB,oBAAoB;YACpB,mBAAmB;YACnB,8BAA8B;YAC9B,qBAAqB;YACrB,4BAA4B;YAC5B,gCAAgC;SACjC;QACD,SAAS,EAAE;QACT,uEAAuE;SACxE;KACF,CAAC;GACW,WAAW,CAEvB;SAFY,WAAW","sourcesContent":["import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FlexModule } from '@angular/flex-layout';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { RouterModule } from '@angular/router';\nimport { DirectivesModule } from '../directives/directives.module';\nimport { AbstractPlaceNavigationComponent } from './components/abstract-place-navigation.component';\nimport { BusyOverlayComponent } from './components/busy-overlay/busy-overlay.component';\nimport { EmptyStateComponent } from './components/empty-state/empty-state.component';\nimport { ListPlaceNavComponent } from './components/list-place-nav/list-place-nav.component';\nimport { PlaceOutletComponent } from './components/place-outlet/place-outlet.component';\nimport { TabbedPlaceNavigationComponent } from './components/tabbed-place-navigation/tabbed-place-navigation.component';\nimport { SidePlaceNavigationComponent } from './components/side-place-navigation/side-place-navigation.component';\nimport { UrlService } from './url-service';\nimport { ComponentsModule } from '../components';\n\n@NgModule({\n imports: [\n CommonModule,\n BrowserAnimationsModule,\n MatProgressSpinnerModule,\n RouterModule,\n MatTabsModule,\n MatListModule,\n MatTooltipModule,\n MatIconModule,\n DirectivesModule,\n FlexModule,\n ComponentsModule\n ],\n declarations: [\n EmptyStateComponent,\n BusyOverlayComponent,\n PlaceOutletComponent,\n TabbedPlaceNavigationComponent,\n ListPlaceNavComponent,\n SidePlaceNavigationComponent,\n AbstractPlaceNavigationComponent\n ],\n entryComponents: [BusyOverlayComponent],\n exports: [\n BusyOverlayComponent,\n PlaceOutletComponent,\n EmptyStateComponent,\n TabbedPlaceNavigationComponent,\n ListPlaceNavComponent,\n SidePlaceNavigationComponent,\n AbstractPlaceNavigationComponent\n ],\n providers: [\n // {provide: AUP_PLACE_CONFIG, useValue: {animationDuration: \"2000ms\"}}\n ]\n})\nexport class PlaceModule {\n\n}\n"]}
1
+ {"version":3,"file":"place.module.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/place/place.module.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,gCAAgC,EAAE,MAAM,kDAAkD,CAAC;AACpG,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AACxF,OAAO,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,sDAAsD,CAAC;AAC7F,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AACxF,OAAO,EAAE,4BAA4B,EAAE,MAAM,oEAAoE,CAAC;AAClH,OAAO,EAAE,8BAA8B,EAAE,MAAM,wEAAwE,CAAC;AAuCxH,IAAa,WAAW,GAAxB,MAAa,WAAW;CAEvB,CAAA;AAFY,WAAW;IArCvB,QAAQ,CAAC;QACR,OAAO,EAAE;YACP,YAAY;YACZ,uBAAuB;YACvB,wBAAwB;YACxB,YAAY;YACZ,aAAa;YACb,aAAa;YACb,gBAAgB;YAChB,aAAa;YACb,gBAAgB;YAChB,UAAU;YACV,gBAAgB;SACjB;QACD,YAAY,EAAE;YACZ,mBAAmB;YACnB,oBAAoB;YACpB,oBAAoB;YACpB,8BAA8B;YAC9B,qBAAqB;YACrB,4BAA4B;YAC5B,gCAAgC;SACjC;QACD,eAAe,EAAE,CAAC,oBAAoB,CAAC;QACvC,OAAO,EAAE;YACP,oBAAoB;YACpB,oBAAoB;YACpB,mBAAmB;YACnB,8BAA8B;YAC9B,qBAAqB;YACrB,4BAA4B;YAC5B,gCAAgC;SACjC;QACD,SAAS,EAAE;QACT,uEAAuE;SACxE;KACF,CAAC;GACW,WAAW,CAEvB;SAFY,WAAW","sourcesContent":["import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FlexModule } from '@angular/flex-layout';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { RouterModule } from '@angular/router';\nimport { ComponentsModule } from '../components';\nimport { DirectivesModule } from '../directives/directives.module';\nimport { AbstractPlaceNavigationComponent } from './components/abstract-place-navigation.component';\nimport { BusyOverlayComponent } from './components/busy-overlay/busy-overlay.component';\nimport { EmptyStateComponent } from './components/empty-state/empty-state.component';\nimport { ListPlaceNavComponent } from './components/list-place-nav/list-place-nav.component';\nimport { PlaceOutletComponent } from './components/place-outlet/place-outlet.component';\nimport { SidePlaceNavigationComponent } from './components/side-place-navigation/side-place-navigation.component';\nimport { TabbedPlaceNavigationComponent } from './components/tabbed-place-navigation/tabbed-place-navigation.component';\n\n@NgModule({\n imports: [\n CommonModule,\n BrowserAnimationsModule,\n MatProgressSpinnerModule,\n RouterModule,\n MatTabsModule,\n MatListModule,\n MatTooltipModule,\n MatIconModule,\n DirectivesModule,\n FlexModule,\n ComponentsModule\n ],\n declarations: [\n EmptyStateComponent,\n BusyOverlayComponent,\n PlaceOutletComponent,\n TabbedPlaceNavigationComponent,\n ListPlaceNavComponent,\n SidePlaceNavigationComponent,\n AbstractPlaceNavigationComponent\n ],\n entryComponents: [BusyOverlayComponent],\n exports: [\n BusyOverlayComponent,\n PlaceOutletComponent,\n EmptyStateComponent,\n TabbedPlaceNavigationComponent,\n ListPlaceNavComponent,\n SidePlaceNavigationComponent,\n AbstractPlaceNavigationComponent\n ],\n providers: [\n // {provide: AUP_PLACE_CONFIG, useValue: {animationDuration: \"2000ms\"}}\n ]\n})\nexport class PlaceModule {\n\n}\n"]}
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"PlaceModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":21,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":23,"character":4},{"__symbolic":"reference","module":"@angular/platform-browser/animations","name":"BrowserAnimationsModule","line":24,"character":4},{"__symbolic":"reference","module":"@angular/material/progress-spinner","name":"MatProgressSpinnerModule","line":25,"character":4},{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":26,"character":4},{"__symbolic":"reference","module":"@angular/material/tabs","name":"MatTabsModule","line":27,"character":4},{"__symbolic":"reference","module":"@angular/material/list","name":"MatListModule","line":28,"character":4},{"__symbolic":"reference","module":"@angular/material/tooltip","name":"MatTooltipModule","line":29,"character":4},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":30,"character":4},{"__symbolic":"reference","module":"../directives/directives.module","name":"DirectivesModule","line":31,"character":4},{"__symbolic":"reference","module":"@angular/flex-layout","name":"FlexModule","line":32,"character":4},{"__symbolic":"reference","module":"../components","name":"ComponentsModule","line":33,"character":4}],"declarations":[{"__symbolic":"reference","module":"./components/empty-state/empty-state.component","name":"EmptyStateComponent","line":36,"character":4},{"__symbolic":"reference","module":"./components/busy-overlay/busy-overlay.component","name":"BusyOverlayComponent","line":37,"character":4},{"__symbolic":"reference","module":"./components/place-outlet/place-outlet.component","name":"PlaceOutletComponent","line":38,"character":4},{"__symbolic":"reference","module":"./components/tabbed-place-navigation/tabbed-place-navigation.component","name":"TabbedPlaceNavigationComponent","line":39,"character":4},{"__symbolic":"reference","module":"./components/list-place-nav/list-place-nav.component","name":"ListPlaceNavComponent","line":40,"character":4},{"__symbolic":"reference","module":"./components/side-place-navigation/side-place-navigation.component","name":"SidePlaceNavigationComponent","line":41,"character":4},{"__symbolic":"reference","module":"./components/abstract-place-navigation.component","name":"AbstractPlaceNavigationComponent","line":42,"character":4}],"entryComponents":[{"__symbolic":"reference","module":"./components/busy-overlay/busy-overlay.component","name":"BusyOverlayComponent","line":44,"character":20}],"exports":[{"__symbolic":"reference","module":"./components/busy-overlay/busy-overlay.component","name":"BusyOverlayComponent","line":46,"character":4},{"__symbolic":"reference","module":"./components/place-outlet/place-outlet.component","name":"PlaceOutletComponent","line":47,"character":4},{"__symbolic":"reference","module":"./components/empty-state/empty-state.component","name":"EmptyStateComponent","line":48,"character":4},{"__symbolic":"reference","module":"./components/tabbed-place-navigation/tabbed-place-navigation.component","name":"TabbedPlaceNavigationComponent","line":49,"character":4},{"__symbolic":"reference","module":"./components/list-place-nav/list-place-nav.component","name":"ListPlaceNavComponent","line":50,"character":4},{"__symbolic":"reference","module":"./components/side-place-navigation/side-place-navigation.component","name":"SidePlaceNavigationComponent","line":51,"character":4},{"__symbolic":"reference","module":"./components/abstract-place-navigation.component","name":"AbstractPlaceNavigationComponent","line":52,"character":4}],"providers":[]}]}]}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"PlaceModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":20,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":22,"character":4},{"__symbolic":"reference","module":"@angular/platform-browser/animations","name":"BrowserAnimationsModule","line":23,"character":4},{"__symbolic":"reference","module":"@angular/material/progress-spinner","name":"MatProgressSpinnerModule","line":24,"character":4},{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":25,"character":4},{"__symbolic":"reference","module":"@angular/material/tabs","name":"MatTabsModule","line":26,"character":4},{"__symbolic":"reference","module":"@angular/material/list","name":"MatListModule","line":27,"character":4},{"__symbolic":"reference","module":"@angular/material/tooltip","name":"MatTooltipModule","line":28,"character":4},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":29,"character":4},{"__symbolic":"reference","module":"../directives/directives.module","name":"DirectivesModule","line":30,"character":4},{"__symbolic":"reference","module":"@angular/flex-layout","name":"FlexModule","line":31,"character":4},{"__symbolic":"reference","module":"../components","name":"ComponentsModule","line":32,"character":4}],"declarations":[{"__symbolic":"reference","module":"./components/empty-state/empty-state.component","name":"EmptyStateComponent","line":35,"character":4},{"__symbolic":"reference","module":"./components/busy-overlay/busy-overlay.component","name":"BusyOverlayComponent","line":36,"character":4},{"__symbolic":"reference","module":"./components/place-outlet/place-outlet.component","name":"PlaceOutletComponent","line":37,"character":4},{"__symbolic":"reference","module":"./components/tabbed-place-navigation/tabbed-place-navigation.component","name":"TabbedPlaceNavigationComponent","line":38,"character":4},{"__symbolic":"reference","module":"./components/list-place-nav/list-place-nav.component","name":"ListPlaceNavComponent","line":39,"character":4},{"__symbolic":"reference","module":"./components/side-place-navigation/side-place-navigation.component","name":"SidePlaceNavigationComponent","line":40,"character":4},{"__symbolic":"reference","module":"./components/abstract-place-navigation.component","name":"AbstractPlaceNavigationComponent","line":41,"character":4}],"entryComponents":[{"__symbolic":"reference","module":"./components/busy-overlay/busy-overlay.component","name":"BusyOverlayComponent","line":43,"character":20}],"exports":[{"__symbolic":"reference","module":"./components/busy-overlay/busy-overlay.component","name":"BusyOverlayComponent","line":45,"character":4},{"__symbolic":"reference","module":"./components/place-outlet/place-outlet.component","name":"PlaceOutletComponent","line":46,"character":4},{"__symbolic":"reference","module":"./components/empty-state/empty-state.component","name":"EmptyStateComponent","line":47,"character":4},{"__symbolic":"reference","module":"./components/tabbed-place-navigation/tabbed-place-navigation.component","name":"TabbedPlaceNavigationComponent","line":48,"character":4},{"__symbolic":"reference","module":"./components/list-place-nav/list-place-nav.component","name":"ListPlaceNavComponent","line":49,"character":4},{"__symbolic":"reference","module":"./components/side-place-navigation/side-place-navigation.component","name":"SidePlaceNavigationComponent","line":50,"character":4},{"__symbolic":"reference","module":"./components/abstract-place-navigation.component","name":"AbstractPlaceNavigationComponent","line":51,"character":4}],"providers":[]}]}]}}}]