@coolon/angular-ui-powerups 2.0.0-alpha.34 → 2.0.0-alpha.36

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 (244) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/assets/commands.scss +1 -1
  3. package/bundles/coolon-angular-ui-powerups.umd.js +808 -313
  4. package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
  5. package/bundles/coolon-angular-ui-powerups.umd.min.js +2 -2
  6. package/bundles/coolon-angular-ui-powerups.umd.min.js.map +1 -1
  7. package/coolon-angular-ui-powerups.d.ts +45 -42
  8. package/coolon-angular-ui-powerups.metadata.json +1 -1
  9. package/esm2015/coolon-angular-ui-powerups.js +43 -40
  10. package/esm2015/coolon-angular-ui-powerups.js.map +1 -1
  11. package/esm2015/coolon-angular-ui-powerups.metadata.json +1 -1
  12. package/esm2015/lib/angular-ui-powerups.module.ngfactory.js.map +1 -1
  13. package/esm2015/lib/components/card-container/card-container.component.js +1 -1
  14. package/esm2015/lib/components/card-container/card-container.component.metadata.json +1 -1
  15. package/esm2015/lib/components/commands/command/command.component.js +48 -0
  16. package/esm2015/lib/components/commands/command/command.component.js.map +1 -0
  17. package/esm2015/lib/components/commands/command/command.component.metadata.json +1 -0
  18. package/esm2015/lib/components/commands/command/command.component.ngfactory.js.map +1 -0
  19. package/esm2015/lib/components/commands/command-face/command-face.component.js +21 -20
  20. package/esm2015/lib/components/commands/command-face/command-face.component.js.map +1 -1
  21. package/esm2015/lib/components/commands/command-face/command-face.component.metadata.json +1 -1
  22. package/esm2015/lib/components/commands/command-face.js +39 -5
  23. package/esm2015/lib/components/commands/command-face.js.map +1 -1
  24. package/esm2015/lib/components/commands/flex.component.js +30 -0
  25. package/esm2015/lib/components/commands/flex.component.js.map +1 -0
  26. package/esm2015/lib/components/commands/flex.component.metadata.json +1 -0
  27. package/esm2015/lib/components/commands/flex.component.ngfactory.js.map +1 -0
  28. package/esm2015/lib/components/commands/group/command-group/command-group.component.js +47 -0
  29. package/esm2015/lib/components/commands/group/command-group/command-group.component.js.map +1 -0
  30. package/esm2015/lib/components/commands/group/command-group/command-group.component.metadata.json +1 -0
  31. package/esm2015/lib/components/commands/group/command-group/command-group.component.ngfactory.js.map +1 -0
  32. package/esm2015/lib/components/commands/group/command-group-menu-renderer/command-group-menu-renderer.component.js +55 -0
  33. package/esm2015/lib/components/commands/group/command-group-menu-renderer/command-group-menu-renderer.component.js.map +1 -0
  34. package/esm2015/lib/components/commands/group/command-group-menu-renderer/command-group-menu-renderer.component.metadata.json +1 -0
  35. package/esm2015/lib/components/commands/group/command-group-menu-renderer/command-group-menu-renderer.component.ngfactory.js.map +1 -0
  36. package/esm2015/lib/components/commands/group/command-group-renderer/command-group-renderer.component.js +39 -0
  37. package/esm2015/lib/components/commands/group/command-group-renderer/command-group-renderer.component.js.map +1 -0
  38. package/esm2015/lib/components/commands/group/command-group-renderer/command-group-renderer.component.metadata.json +1 -0
  39. package/esm2015/lib/components/commands/group/command-group-renderer/command-group-renderer.component.ngfactory.js.map +1 -0
  40. package/esm2015/lib/components/commands/group/command-group-renderer/command-group-renderer.component.scss.shim.ngstyle.js.map +1 -0
  41. package/esm2015/lib/components/commands/group/command-group.js +112 -0
  42. package/esm2015/lib/components/commands/group/command-group.js.map +1 -0
  43. package/esm2015/lib/components/commands/group/command-group.metadata.json +1 -0
  44. package/esm2015/lib/components/commands/group/more-menu.component.js +55 -0
  45. package/esm2015/lib/components/commands/group/more-menu.component.js.map +1 -0
  46. package/esm2015/lib/components/commands/group/more-menu.component.metadata.json +1 -0
  47. package/esm2015/lib/components/commands/group/more-menu.component.ngfactory.js.map +1 -0
  48. package/esm2015/lib/components/commands/group/popup-menu.component.js +65 -0
  49. package/esm2015/lib/components/commands/group/popup-menu.component.js.map +1 -0
  50. package/esm2015/lib/components/commands/group/popup-menu.component.metadata.json +1 -0
  51. package/esm2015/lib/components/commands/group/popup-menu.component.ngfactory.js.map +1 -0
  52. package/esm2015/lib/components/commands/group/registration.js +58 -0
  53. package/esm2015/lib/components/commands/group/registration.js.map +1 -0
  54. package/esm2015/lib/components/commands/group/registration.metadata.json +1 -0
  55. package/esm2015/lib/components/commands/group/tool-bar/tool-bar.component.js +55 -0
  56. package/esm2015/lib/components/commands/group/tool-bar/tool-bar.component.js.map +1 -0
  57. package/esm2015/lib/components/commands/group/tool-bar/tool-bar.component.metadata.json +1 -0
  58. package/esm2015/lib/components/commands/group/tool-bar/tool-bar.component.ngfactory.js.map +1 -0
  59. package/esm2015/lib/components/commands/group/tool-bar/tool-bar.component.scss.shim.ngstyle.js.map +1 -0
  60. package/esm2015/lib/components/commands/group/view-data.js +104 -0
  61. package/esm2015/lib/components/commands/group/view-data.js.map +1 -0
  62. package/esm2015/lib/components/commands/group/view-data.metadata.json +1 -0
  63. package/esm2015/lib/components/commands/separator.component.js +35 -0
  64. package/esm2015/lib/components/commands/separator.component.js.map +1 -0
  65. package/esm2015/lib/components/commands/separator.component.metadata.json +1 -0
  66. package/esm2015/lib/components/commands/separator.component.ngfactory.js.map +1 -0
  67. package/esm2015/lib/components/components.module.js +25 -29
  68. package/esm2015/lib/components/components.module.js.map +1 -1
  69. package/esm2015/lib/components/components.module.metadata.json +1 -1
  70. package/esm2015/lib/components/components.module.ngfactory.js.map +1 -1
  71. package/esm2015/lib/components/index.js +13 -7
  72. package/esm2015/lib/components/index.js.map +1 -1
  73. package/esm2015/lib/components/index.metadata.json +1 -1
  74. package/esm2015/lib/components/table/table-model.js +4 -2
  75. package/esm2015/lib/components/table/table-model.js.map +1 -1
  76. package/esm2015/lib/components/table/table-row-menu/table-row-menu.component.js +12 -21
  77. package/esm2015/lib/components/table/table-row-menu/table-row-menu.component.js.map +1 -1
  78. package/esm2015/lib/components/table/table-row-menu/table-row-menu.component.metadata.json +1 -1
  79. package/esm2015/lib/components/track-by.js +5 -0
  80. package/esm2015/lib/components/track-by.js.map +1 -0
  81. package/esm2015/lib/interaction/interaction.module.ngfactory.js.map +1 -1
  82. package/esm2015/lib/place/components/abstract-place-navigation.component.js +4 -3
  83. package/esm2015/lib/place/components/abstract-place-navigation.component.js.map +1 -1
  84. package/esm2015/lib/place/components/abstract-place-navigation.component.metadata.json +1 -1
  85. package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.js +1 -1
  86. package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.js.map +1 -1
  87. package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.metadata.json +1 -1
  88. package/esm2015/lib/place/components/side-place-navigation/side-place-navigation.component.js +2 -2
  89. package/esm2015/lib/place/components/side-place-navigation/side-place-navigation.component.js.map +1 -1
  90. package/esm2015/lib/place/components/side-place-navigation/side-place-navigation.component.metadata.json +1 -1
  91. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +1 -1
  92. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js.map +1 -1
  93. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.metadata.json +1 -1
  94. package/esm2015/lib/place/place.module.js +3 -3
  95. package/esm2015/lib/place/place.module.js.map +1 -1
  96. package/esm2015/lib/place/place.module.metadata.json +1 -1
  97. package/esm2015/lib/place/place.module.ngfactory.js.map +1 -1
  98. package/esm5/coolon-angular-ui-powerups.js +43 -40
  99. package/esm5/coolon-angular-ui-powerups.js.map +1 -1
  100. package/esm5/lib/angular-ui-powerups.module.ngfactory.js.map +1 -1
  101. package/esm5/lib/components/card-container/card-container.component.js +1 -1
  102. package/esm5/lib/components/commands/command/command.component.js +51 -0
  103. package/esm5/lib/components/commands/command/command.component.js.map +1 -0
  104. package/esm5/lib/components/commands/command/command.component.ngfactory.js.map +1 -0
  105. package/esm5/lib/components/commands/command-face/command-face.component.js +21 -20
  106. package/esm5/lib/components/commands/command-face/command-face.component.js.map +1 -1
  107. package/esm5/lib/components/commands/command-face.js +43 -5
  108. package/esm5/lib/components/commands/command-face.js.map +1 -1
  109. package/esm5/lib/components/commands/flex.component.js +33 -0
  110. package/esm5/lib/components/commands/flex.component.js.map +1 -0
  111. package/esm5/lib/components/commands/flex.component.ngfactory.js.map +1 -0
  112. package/esm5/lib/components/commands/group/command-group/command-group.component.js +51 -0
  113. package/esm5/lib/components/commands/group/command-group/command-group.component.js.map +1 -0
  114. package/esm5/lib/components/commands/group/command-group/command-group.component.ngfactory.js.map +1 -0
  115. package/esm5/lib/components/commands/group/command-group-menu-renderer/command-group-menu-renderer.component.js +59 -0
  116. package/esm5/lib/components/commands/group/command-group-menu-renderer/command-group-menu-renderer.component.js.map +1 -0
  117. package/esm5/lib/components/commands/group/command-group-menu-renderer/command-group-menu-renderer.component.ngfactory.js.map +1 -0
  118. package/esm5/lib/components/commands/group/command-group-renderer/command-group-renderer.component.js +42 -0
  119. package/esm5/lib/components/commands/group/command-group-renderer/command-group-renderer.component.js.map +1 -0
  120. package/esm5/lib/components/commands/group/command-group-renderer/command-group-renderer.component.ngfactory.js.map +1 -0
  121. package/esm5/lib/components/commands/group/command-group-renderer/command-group-renderer.component.scss.shim.ngstyle.js.map +1 -0
  122. package/esm5/lib/components/commands/group/command-group.js +134 -0
  123. package/esm5/lib/components/commands/group/command-group.js.map +1 -0
  124. package/esm5/lib/components/commands/group/more-menu.component.js +58 -0
  125. package/esm5/lib/components/commands/group/more-menu.component.js.map +1 -0
  126. package/esm5/lib/components/commands/group/more-menu.component.ngfactory.js.map +1 -0
  127. package/esm5/lib/components/commands/group/popup-menu.component.js +68 -0
  128. package/esm5/lib/components/commands/group/popup-menu.component.js.map +1 -0
  129. package/esm5/lib/components/commands/group/popup-menu.component.ngfactory.js.map +1 -0
  130. package/esm5/lib/components/commands/group/registration.js +80 -0
  131. package/esm5/lib/components/commands/group/registration.js.map +1 -0
  132. package/esm5/lib/components/commands/group/tool-bar/tool-bar.component.js +58 -0
  133. package/esm5/lib/components/commands/group/tool-bar/tool-bar.component.js.map +1 -0
  134. package/esm5/lib/components/commands/group/tool-bar/tool-bar.component.ngfactory.js.map +1 -0
  135. package/esm5/lib/components/commands/group/tool-bar/tool-bar.component.scss.shim.ngstyle.js.map +1 -0
  136. package/esm5/lib/components/commands/group/view-data.js +131 -0
  137. package/esm5/lib/components/commands/group/view-data.js.map +1 -0
  138. package/esm5/lib/components/commands/separator.component.js +37 -0
  139. package/esm5/lib/components/commands/separator.component.js.map +1 -0
  140. package/esm5/lib/components/commands/separator.component.ngfactory.js.map +1 -0
  141. package/esm5/lib/components/components.module.js +25 -29
  142. package/esm5/lib/components/components.module.js.map +1 -1
  143. package/esm5/lib/components/components.module.ngfactory.js.map +1 -1
  144. package/esm5/lib/components/index.js +13 -7
  145. package/esm5/lib/components/index.js.map +1 -1
  146. package/esm5/lib/components/table/table-model.js +4 -2
  147. package/esm5/lib/components/table/table-model.js.map +1 -1
  148. package/esm5/lib/components/table/table-row-menu/table-row-menu.component.js +5 -8
  149. package/esm5/lib/components/table/table-row-menu/table-row-menu.component.js.map +1 -1
  150. package/esm5/lib/components/track-by.js +5 -0
  151. package/esm5/lib/components/track-by.js.map +1 -0
  152. package/esm5/lib/interaction/interaction.module.ngfactory.js.map +1 -1
  153. package/esm5/lib/place/components/abstract-place-navigation.component.js +4 -3
  154. package/esm5/lib/place/components/abstract-place-navigation.component.js.map +1 -1
  155. package/esm5/lib/place/components/list-place-nav/list-place-nav.component.js +1 -1
  156. package/esm5/lib/place/components/list-place-nav/list-place-nav.component.js.map +1 -1
  157. package/esm5/lib/place/components/side-place-navigation/side-place-navigation.component.js +2 -2
  158. package/esm5/lib/place/components/side-place-navigation/side-place-navigation.component.js.map +1 -1
  159. package/esm5/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +1 -1
  160. package/esm5/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js.map +1 -1
  161. package/esm5/lib/place/place.module.js +3 -3
  162. package/esm5/lib/place/place.module.js.map +1 -1
  163. package/esm5/lib/place/place.module.ngfactory.js.map +1 -1
  164. package/fesm2015/coolon-angular-ui-powerups.js +660 -281
  165. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  166. package/fesm5/coolon-angular-ui-powerups.js +748 -257
  167. package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
  168. package/lib/components/commands/command/command.component.d.ts +18 -0
  169. package/lib/components/commands/command-face/command-face.component.d.ts +11 -6
  170. package/lib/components/commands/command-face.d.ts +17 -2
  171. package/lib/components/commands/flex.component.d.ts +11 -0
  172. package/lib/components/commands/group/command-group/command-group.component.d.ts +11 -0
  173. package/lib/components/commands/group/command-group-menu-renderer/command-group-menu-renderer.component.d.ts +21 -0
  174. package/lib/components/commands/group/command-group-renderer/command-group-renderer.component.d.ts +13 -0
  175. package/lib/components/commands/group/command-group.d.ts +44 -0
  176. package/lib/components/commands/group/more-menu.component.d.ts +14 -0
  177. package/lib/components/commands/group/popup-menu.component.d.ts +17 -0
  178. package/lib/components/commands/group/registration.d.ts +32 -0
  179. package/lib/components/commands/group/tool-bar/tool-bar.component.d.ts +13 -0
  180. package/lib/components/commands/group/view-data.d.ts +40 -0
  181. package/lib/components/commands/separator.component.d.ts +12 -0
  182. package/lib/components/index.d.ts +13 -7
  183. package/lib/components/table/table-model.d.ts +1 -1
  184. package/lib/components/table/table-row-menu/table-row-menu.component.d.ts +2 -1
  185. package/lib/components/track-by.d.ts +3 -0
  186. package/lib/place/components/abstract-place-navigation.component.d.ts +2 -2
  187. package/lib/place/components/side-place-navigation/side-place-navigation.component.d.ts +1 -1
  188. package/package.json +1 -1
  189. package/esm2015/lib/components/commands/command-bar.component.js +0 -51
  190. package/esm2015/lib/components/commands/command-bar.component.js.map +0 -1
  191. package/esm2015/lib/components/commands/command-bar.component.metadata.json +0 -1
  192. package/esm2015/lib/components/commands/command-bar.component.ngfactory.js.map +0 -1
  193. package/esm2015/lib/components/commands/command-container.js +0 -20
  194. package/esm2015/lib/components/commands/command-container.js.map +0 -1
  195. package/esm2015/lib/components/commands/command-container.metadata.json +0 -1
  196. package/esm2015/lib/components/commands/command.component.js +0 -38
  197. package/esm2015/lib/components/commands/command.component.js.map +0 -1
  198. package/esm2015/lib/components/commands/command.component.metadata.json +0 -1
  199. package/esm2015/lib/components/commands/command.component.ngfactory.js.map +0 -1
  200. package/esm2015/lib/components/commands/popup-menu/abstract-popup-menu.component.js +0 -57
  201. package/esm2015/lib/components/commands/popup-menu/abstract-popup-menu.component.js.map +0 -1
  202. package/esm2015/lib/components/commands/popup-menu/abstract-popup-menu.component.metadata.json +0 -1
  203. package/esm2015/lib/components/commands/popup-menu/abstract-popup-menu.component.ngfactory.js.map +0 -1
  204. package/esm2015/lib/components/commands/popup-menu/more-menu.component.js +0 -40
  205. package/esm2015/lib/components/commands/popup-menu/more-menu.component.js.map +0 -1
  206. package/esm2015/lib/components/commands/popup-menu/more-menu.component.metadata.json +0 -1
  207. package/esm2015/lib/components/commands/popup-menu/more-menu.component.ngfactory.js.map +0 -1
  208. package/esm2015/lib/components/commands/popup-menu/popup-menu.component.js +0 -49
  209. package/esm2015/lib/components/commands/popup-menu/popup-menu.component.js.map +0 -1
  210. package/esm2015/lib/components/commands/popup-menu/popup-menu.component.metadata.json +0 -1
  211. package/esm2015/lib/components/commands/popup-menu/popup-menu.component.ngfactory.js.map +0 -1
  212. package/esm2015/lib/components/commands/popup-menu-renderer/popup-menu-renderer.component.js +0 -62
  213. package/esm2015/lib/components/commands/popup-menu-renderer/popup-menu-renderer.component.js.map +0 -1
  214. package/esm2015/lib/components/commands/popup-menu-renderer/popup-menu-renderer.component.metadata.json +0 -1
  215. package/esm2015/lib/components/commands/popup-menu-renderer/popup-menu-renderer.component.ngfactory.js.map +0 -1
  216. package/esm2015/lib/components/commands/popup-menu-renderer/popup-menu-renderer.component.scss.shim.ngstyle.js.map +0 -1
  217. package/esm5/lib/components/commands/command-bar.component.js +0 -31
  218. package/esm5/lib/components/commands/command-bar.component.js.map +0 -1
  219. package/esm5/lib/components/commands/command-bar.component.ngfactory.js.map +0 -1
  220. package/esm5/lib/components/commands/command-container.js +0 -30
  221. package/esm5/lib/components/commands/command-container.js.map +0 -1
  222. package/esm5/lib/components/commands/command.component.js +0 -41
  223. package/esm5/lib/components/commands/command.component.js.map +0 -1
  224. package/esm5/lib/components/commands/command.component.ngfactory.js.map +0 -1
  225. package/esm5/lib/components/commands/popup-menu/abstract-popup-menu.component.js +0 -64
  226. package/esm5/lib/components/commands/popup-menu/abstract-popup-menu.component.js.map +0 -1
  227. package/esm5/lib/components/commands/popup-menu/abstract-popup-menu.component.ngfactory.js.map +0 -1
  228. package/esm5/lib/components/commands/popup-menu/more-menu.component.js +0 -35
  229. package/esm5/lib/components/commands/popup-menu/more-menu.component.js.map +0 -1
  230. package/esm5/lib/components/commands/popup-menu/more-menu.component.ngfactory.js.map +0 -1
  231. package/esm5/lib/components/commands/popup-menu/popup-menu.component.js +0 -45
  232. package/esm5/lib/components/commands/popup-menu/popup-menu.component.js.map +0 -1
  233. package/esm5/lib/components/commands/popup-menu/popup-menu.component.ngfactory.js.map +0 -1
  234. package/esm5/lib/components/commands/popup-menu-renderer/popup-menu-renderer.component.js +0 -66
  235. package/esm5/lib/components/commands/popup-menu-renderer/popup-menu-renderer.component.js.map +0 -1
  236. package/esm5/lib/components/commands/popup-menu-renderer/popup-menu-renderer.component.ngfactory.js.map +0 -1
  237. package/esm5/lib/components/commands/popup-menu-renderer/popup-menu-renderer.component.scss.shim.ngstyle.js.map +0 -1
  238. package/lib/components/commands/command-bar.component.d.ts +0 -10
  239. package/lib/components/commands/command-container.d.ts +0 -15
  240. package/lib/components/commands/command.component.d.ts +0 -15
  241. package/lib/components/commands/popup-menu/abstract-popup-menu.component.d.ts +0 -18
  242. package/lib/components/commands/popup-menu/more-menu.component.d.ts +0 -9
  243. package/lib/components/commands/popup-menu/popup-menu.component.d.ts +0 -14
  244. package/lib/components/commands/popup-menu-renderer/popup-menu-renderer.component.d.ts +0 -21
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core'), require('@angular/forms'), require('@angular/material/form-field'), require('@angular/material/input'), require('@angular/material/select'), require('@angular/material/tabs'), require('@angular/platform-browser/animations'), require('@angular/cdk/portal'), require('@angular/cdk/scrolling'), require('@angular/material/autocomplete'), require('@angular/material/button'), require('@angular/material/checkbox'), require('@angular/material/icon'), require('@angular/material/menu'), require('@angular/material/table'), require('@angular/material/tooltip'), require('@fortawesome/angular-fontawesome'), require('@fortawesome/free-solid-svg-icons'), require('@coolon/pectin'), require('@typescript-plus/fast-memoize-decorator/dist/src'), require('lodash'), require('typescript-string-enums'), require('@coolon/typescript-utilities'), require('immer'), require('@angular/flex-layout'), require('@angular/material/dialog'), require('@angular/router'), require('@angular/cdk/overlay'), require('resize-observer-polyfill'), require('@angular/material/progress-spinner'), require('@angular/material/list'), require('@typescript-plus/fast-memoize-decorator'), require('reflect-metadata'), require('@angular/animations'), require('rxjs')) :
3
- typeof define === 'function' && define.amd ? define('@coolon/angular-ui-powerups', ['exports', '@angular/common', '@angular/core', '@angular/forms', '@angular/material/form-field', '@angular/material/input', '@angular/material/select', '@angular/material/tabs', '@angular/platform-browser/animations', '@angular/cdk/portal', '@angular/cdk/scrolling', '@angular/material/autocomplete', '@angular/material/button', '@angular/material/checkbox', '@angular/material/icon', '@angular/material/menu', '@angular/material/table', '@angular/material/tooltip', '@fortawesome/angular-fontawesome', '@fortawesome/free-solid-svg-icons', '@coolon/pectin', '@typescript-plus/fast-memoize-decorator/dist/src', 'lodash', 'typescript-string-enums', '@coolon/typescript-utilities', 'immer', '@angular/flex-layout', '@angular/material/dialog', '@angular/router', '@angular/cdk/overlay', 'resize-observer-polyfill', '@angular/material/progress-spinner', '@angular/material/list', '@typescript-plus/fast-memoize-decorator', 'reflect-metadata', '@angular/animations', 'rxjs'], factory) :
4
- (global = global || self, factory((global.coolon = global.coolon || {}, global.coolon['angular-ui-powerups'] = {}), global.ng.common, global.ng.core, global.ng.forms, global.ng.material.formField, global.ng.material.input, global.ng.material.select, global.ng.material.tabs, global.ng.platformBrowser.animations, global.ng.cdk.portal, global.ng.cdk.scrolling, global.ng.material.autocomplete, global.ng.material.button, global.ng.material.checkbox, global.ng.material.icon, global.ng.material.menu, global.ng.material.table, global.ng.material.tooltip, global.angularFontawesome, global.freeSolidSvgIcons, global.pectin, global.src, global.___default, global.typescriptStringEnums, global.typescriptUtilities, global.produce, global.ng.flexLayout, global.ng.material.dialog, global.ng.router, global.ng.cdk.overlay, global.ResizeObserver, global.ng.material.progressSpinner, global.ng.material.list, global.fastMemoizeDecorator, null, global.ng.animations, global.rxjs));
5
- }(this, (function (exports, common, core, forms, formField, input, select, tabs, animations, portal, scrolling, autocomplete, button, checkbox, icon, menu, table, tooltip, angularFontawesome, freeSolidSvgIcons, pectin, src, ___default, typescriptStringEnums, typescriptUtilities, produce, flexLayout, dialog, router, overlay, ResizeObserver, progressSpinner, list, fastMemoizeDecorator, reflectMetadata, animations$1, rxjs) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core'), require('@angular/forms'), require('@angular/material/form-field'), require('@angular/material/input'), require('@angular/material/select'), require('@angular/material/tabs'), require('@angular/platform-browser/animations'), require('@angular/cdk/portal'), require('@angular/cdk/scrolling'), require('@angular/material/autocomplete'), require('@angular/material/button'), require('@angular/material/checkbox'), require('@angular/material/divider'), require('@angular/material/icon'), require('@angular/material/menu'), require('@angular/material/table'), require('@angular/material/tooltip'), require('@fortawesome/angular-fontawesome'), require('@fortawesome/free-solid-svg-icons'), require('@coolon/pectin'), require('@typescript-plus/fast-memoize-decorator/dist/src'), require('lodash'), require('typescript-string-enums'), require('@coolon/typescript-utilities'), require('immer'), require('@angular/flex-layout'), require('@angular/material/dialog'), require('@angular/router'), require('@angular/cdk/overlay'), require('resize-observer-polyfill'), require('@angular/material/list'), require('@angular/material/progress-spinner'), require('@typescript-plus/fast-memoize-decorator'), require('reflect-metadata'), require('@angular/animations'), require('rxjs')) :
3
+ typeof define === 'function' && define.amd ? define('@coolon/angular-ui-powerups', ['exports', '@angular/common', '@angular/core', '@angular/forms', '@angular/material/form-field', '@angular/material/input', '@angular/material/select', '@angular/material/tabs', '@angular/platform-browser/animations', '@angular/cdk/portal', '@angular/cdk/scrolling', '@angular/material/autocomplete', '@angular/material/button', '@angular/material/checkbox', '@angular/material/divider', '@angular/material/icon', '@angular/material/menu', '@angular/material/table', '@angular/material/tooltip', '@fortawesome/angular-fontawesome', '@fortawesome/free-solid-svg-icons', '@coolon/pectin', '@typescript-plus/fast-memoize-decorator/dist/src', 'lodash', 'typescript-string-enums', '@coolon/typescript-utilities', 'immer', '@angular/flex-layout', '@angular/material/dialog', '@angular/router', '@angular/cdk/overlay', 'resize-observer-polyfill', '@angular/material/list', '@angular/material/progress-spinner', '@typescript-plus/fast-memoize-decorator', 'reflect-metadata', '@angular/animations', 'rxjs'], factory) :
4
+ (global = global || self, factory((global.coolon = global.coolon || {}, global.coolon['angular-ui-powerups'] = {}), global.ng.common, global.ng.core, global.ng.forms, global.ng.material.formField, global.ng.material.input, global.ng.material.select, global.ng.material.tabs, global.ng.platformBrowser.animations, global.ng.cdk.portal, global.ng.cdk.scrolling, global.ng.material.autocomplete, global.ng.material.button, global.ng.material.checkbox, global.ng.material.divider, global.ng.material.icon, global.ng.material.menu, global.ng.material.table, global.ng.material.tooltip, global.angularFontawesome, global.freeSolidSvgIcons, global.pectin, global.src, global.___default, global.typescriptStringEnums, global.typescriptUtilities, global.produce, global.ng.flexLayout, global.ng.material.dialog, global.ng.router, global.ng.cdk.overlay, global.ResizeObserver, global.ng.material.list, global.ng.material.progressSpinner, global.fastMemoizeDecorator, null, global.ng.animations, global.rxjs));
5
+ }(this, (function (exports, common, core, forms, formField, input, select, tabs, animations, portal, scrolling, autocomplete, button, checkbox, divider, icon, menu, table, tooltip, angularFontawesome, freeSolidSvgIcons, pectin, src, ___default, typescriptStringEnums, typescriptUtilities, produce, flexLayout, dialog, router, overlay, ResizeObserver, list, progressSpinner, fastMemoizeDecorator, reflectMetadata, animations$1, rxjs) { 'use strict';
6
6
 
7
7
  var ___default__default = 'default' in ___default ? ___default['default'] : ___default;
8
8
  produce = produce && Object.prototype.hasOwnProperty.call(produce, 'default') ? produce['default'] : produce;
@@ -578,7 +578,7 @@
578
578
  core.Component({
579
579
  selector: 'aup-card-container',
580
580
  template: "<div class=\"card-container\">\n <ng-content></ng-content>\n\n <div class=\"add-card-container\" *ngIf=\"addCardCommand.enabled.value\" [pectinCommand]=\"addCardCommand\">\n <aup-icon icon=\"mat:add\"></aup-icon>\n </div>\n\n <div class=\"add-card-template\" *ngIf=\"addCardTemplate\">\n <ng-container [ngTemplateOutlet]=\"addCardTemplate\"></ng-container>\n </div>\n\n</div>\n",
581
- styles: [":root{--aup-default-padding:var(--default-padding, 18px);--aup-default-background:white;--command-face-icon-gap:8px;--aup-icon-width:24px;--aup-fa-icon-width:18px}.router-outlet-container>*{position:absolute;top:0;left:0;bottom:0;right:0}[no-tab-header]>mat-tab-header{display:none}[full-height-tabs] .mat-tab-body-wrapper,mat-tab-group.full-height-tabs .mat-tab-body-wrapper{flex:1}[full-height-tabs] .mat-tab-body-wrapper .mat-tab-body-content,[full-height-tabs] .mat-tab-body-wrapper mat-tab-body,mat-tab-group.full-height-tabs .mat-tab-body-wrapper .mat-tab-body-content,mat-tab-group.full-height-tabs .mat-tab-body-wrapper mat-tab-body{display:flex;flex-direction:column;justify-content:stretch}.dialog-interaction-context{max-width:95vw!important;max-height:95vh!important}.dialog-interaction-context mat-dialog-container{max-width:95vw!important;max-height:95vh!important;padding:0}.activity-outlet-wrapper{display:flex;flex-direction:column;align-items:stretch}.aup-popup-interaction-panel{background:var(--aup-default-background,#fff);box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12);transition:box-shadow 280ms cubic-bezier(.4,0,.2,1)}.aup-input-activity{padding:calc(var(--aup-default-padding)/2)}.aup-input-component{display:block}.aup-input-component input,.aup-input-component mat-form-field{width:100%}.aup-input-component input mat-hint.faux-error,.aup-input-component mat-form-field mat-hint.faux-error{color:#f44336}.aup-input-component.dense mat-form-field .mat-form-field-infix{border-top:none}.aup-input-component.dense mat-form-field .mat-form-field-flex{padding-top:0}.aup-input-component.dense mat-form-field .mat-form-field-wrapper{padding-bottom:0;border-bottom:0}.aup-input-component.dense mat-form-field .mat-form-field-underline{bottom:0}.aup-input-component.dense mat-form-field.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label-wrapper{display:none}.aup-input-component.dense mat-form-field.mat-form-field-appearance-standard.mat-form-field-has-label .mat-select:not(.mat-select-empty) .mat-select-arrow-wrapper{transform:translateY(0)}aup-table-cell-renderer>.aup-input-component .mat-form-field-flex{padding-top:0}aup-table-cell-renderer>.aup-input-component .mat-form-field-infix{width:0}aup-table-cell-renderer>.aup-input-component .mat-form-field-label-wrapper{display:none}aup-table{--default-column-gap:var(--column-gap, 24px);--resolved-row-hover-background-color:var(--row-hover-background-color, rgba(0, 0, 0, 0.05))}aup-table .mat-table td.mat-cell:first-of-type,aup-table .mat-table td.mat-footer-cell:first-of-type,aup-table .mat-table th.mat-header-cell:first-of-type{padding-left:0}aup-table .mat-table tr.enable-hover:hover{background-color:var(--resolved-row-hover-background-color)}aup-table .mat-table td.enable-cursor{cursor:pointer}aup-table aup-table-cell-renderer,aup-table aup-table-header-cell-renderer{display:flex;flex-direction:column;align-items:stretch;justify-content:center;height:100%;min-height:47px}aup-table aup-table-cell-renderer.first-column,aup-table aup-table-cell-renderer:not(.first-column),aup-table aup-table-header-cell-renderer.first-column,aup-table aup-table-header-cell-renderer:not(.first-column){padding-left:var(--default-column-gap)}aup-table aup-table-cell-renderer.fillCell{justify-content:stretch;padding-left:0!important}aup-table aup-table-cell-renderer.padChild>:first-child{padding-left:var(--default-column-gap);flex:1}aup-icon{--fa-icon-offset:calc((var(--aup-icon-width) - var(--aup-fa-icon-width)) / 2);position:relative}aup-icon fa-icon .svg-inline--fa{position:absolute;top:var(--fa-icon-offset);left:var(--fa-icon-offset);width:var(--aup-fa-icon-width)!important;height:var(--aup-fa-icon-width)!important}.mat-menu-panel aup-icon .svg-inline--fa{opacity:.54}:host{--resolved-card-gap:var(--card-gap, 16px);--resolved-card-width:var(--card-width, 300px);--resolved-card-height:var(--card-height, auto);--resolved-card-min-height:var(--card-min-height, auto);--resolved-card-background:var(--card-background, #fcfcfb);flex:1;display:block;background:var(--resolved-card-background)}.card-container{display:-ms-grid;display:grid;grid-template-columns:repeat(auto-fill,var(--resolved-card-width));grid-template-rows:repeat(auto-fit,minmax(0,var(--resolved-card-height)));grid-gap:var(--resolved-card-gap);box-sizing:border-box;padding:var(--resolved-card-gap);min-height:calc(var(--resolved-card-height) + 2 * var(--resolved-card-gap));min-width:calc(var(--resolved-card-width) + 2 * var(--resolved-card-gap));width:calc((var(--resolved-card-width) + var(--resolved-card-gap)) * 2 + var(--grid-gap));max-width:100%}.add-card-container{width:var(--resolved-card-width);height:var(--resolved-card-height);min-height:var(--resolved-card-min-height);display:flex;flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;border:2px dashed rgba(0,0,0,.1);border-radius:6px;font-weight:300;cursor:pointer;color:rgba(0,0,0,.54);background-color:rgba(255,255,255,.8);transition:280ms cubic-bezier(.4,0,.2,1)}.add-card-container mat-icon{font-size:200%}.add-card-container:hover{transition:280ms cubic-bezier(.4,0,.2,1);border-color:transparent;background-color:#fff;color:rgba(0,0,0,.54)}.add-card-container:hover:hover{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.add-card-template-container{width:var(--resolved-card-width);height:var(--resolved-card-height);display:flex;flex-direction:column;align-items:stretch;justify-content:stretch}"]
581
+ styles: [":root{--aup-default-padding:var(--default-padding, 18px);--aup-default-background:white;--aup-command-face-icon-gap:8px;--aup-icon-width:24px;--aup-fa-icon-width:18px}.router-outlet-container>*{position:absolute;top:0;left:0;bottom:0;right:0}[no-tab-header]>mat-tab-header{display:none}[full-height-tabs] .mat-tab-body-wrapper,mat-tab-group.full-height-tabs .mat-tab-body-wrapper{flex:1}[full-height-tabs] .mat-tab-body-wrapper .mat-tab-body-content,[full-height-tabs] .mat-tab-body-wrapper mat-tab-body,mat-tab-group.full-height-tabs .mat-tab-body-wrapper .mat-tab-body-content,mat-tab-group.full-height-tabs .mat-tab-body-wrapper mat-tab-body{display:flex;flex-direction:column;justify-content:stretch}.dialog-interaction-context{max-width:95vw!important;max-height:95vh!important}.dialog-interaction-context mat-dialog-container{max-width:95vw!important;max-height:95vh!important;padding:0}.activity-outlet-wrapper{display:flex;flex-direction:column;align-items:stretch}.aup-popup-interaction-panel{background:var(--aup-default-background,#fff);box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12);transition:box-shadow 280ms cubic-bezier(.4,0,.2,1)}.aup-input-activity{padding:calc(var(--aup-default-padding)/2)}.aup-input-component{display:block}.aup-input-component input,.aup-input-component mat-form-field{width:100%}.aup-input-component input mat-hint.faux-error,.aup-input-component mat-form-field mat-hint.faux-error{color:#f44336}.aup-input-component.dense mat-form-field .mat-form-field-infix{border-top:none}.aup-input-component.dense mat-form-field .mat-form-field-flex{padding-top:0}.aup-input-component.dense mat-form-field .mat-form-field-wrapper{padding-bottom:0;border-bottom:0}.aup-input-component.dense mat-form-field .mat-form-field-underline{bottom:0}.aup-input-component.dense mat-form-field.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label-wrapper{display:none}.aup-input-component.dense mat-form-field.mat-form-field-appearance-standard.mat-form-field-has-label .mat-select:not(.mat-select-empty) .mat-select-arrow-wrapper{transform:translateY(0)}aup-table-cell-renderer>.aup-input-component .mat-form-field-flex{padding-top:0}aup-table-cell-renderer>.aup-input-component .mat-form-field-infix{width:0}aup-table-cell-renderer>.aup-input-component .mat-form-field-label-wrapper{display:none}aup-table{--default-column-gap:var(--column-gap, 24px);--resolved-row-hover-background-color:var(--row-hover-background-color, rgba(0, 0, 0, 0.05))}aup-table .mat-table td.mat-cell:first-of-type,aup-table .mat-table td.mat-footer-cell:first-of-type,aup-table .mat-table th.mat-header-cell:first-of-type{padding-left:0}aup-table .mat-table tr.enable-hover:hover{background-color:var(--resolved-row-hover-background-color)}aup-table .mat-table td.enable-cursor{cursor:pointer}aup-table aup-table-cell-renderer,aup-table aup-table-header-cell-renderer{display:flex;flex-direction:column;align-items:stretch;justify-content:center;height:100%;min-height:47px}aup-table aup-table-cell-renderer.first-column,aup-table aup-table-cell-renderer:not(.first-column),aup-table aup-table-header-cell-renderer.first-column,aup-table aup-table-header-cell-renderer:not(.first-column){padding-left:var(--default-column-gap)}aup-table aup-table-cell-renderer.fillCell{justify-content:stretch;padding-left:0!important}aup-table aup-table-cell-renderer.padChild>:first-child{padding-left:var(--default-column-gap);flex:1}aup-icon{--fa-icon-offset:calc((var(--aup-icon-width) - var(--aup-fa-icon-width)) / 2);position:relative}aup-icon fa-icon .svg-inline--fa{position:absolute;top:var(--fa-icon-offset);left:var(--fa-icon-offset);width:var(--aup-fa-icon-width)!important;height:var(--aup-fa-icon-width)!important}.mat-menu-panel aup-icon .svg-inline--fa{opacity:.54}:host{--resolved-card-gap:var(--card-gap, 16px);--resolved-card-width:var(--card-width, 300px);--resolved-card-height:var(--card-height, auto);--resolved-card-min-height:var(--card-min-height, auto);--resolved-card-background:var(--card-background, #fcfcfb);flex:1;display:block;background:var(--resolved-card-background)}.card-container{display:-ms-grid;display:grid;grid-template-columns:repeat(auto-fill,var(--resolved-card-width));grid-template-rows:repeat(auto-fit,minmax(0,var(--resolved-card-height)));grid-gap:var(--resolved-card-gap);box-sizing:border-box;padding:var(--resolved-card-gap);min-height:calc(var(--resolved-card-height) + 2 * var(--resolved-card-gap));min-width:calc(var(--resolved-card-width) + 2 * var(--resolved-card-gap));width:calc((var(--resolved-card-width) + var(--resolved-card-gap)) * 2 + var(--grid-gap));max-width:100%}.add-card-container{width:var(--resolved-card-width);height:var(--resolved-card-height);min-height:var(--resolved-card-min-height);display:flex;flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;border:2px dashed rgba(0,0,0,.1);border-radius:6px;font-weight:300;cursor:pointer;color:rgba(0,0,0,.54);background-color:rgba(255,255,255,.8);transition:280ms cubic-bezier(.4,0,.2,1)}.add-card-container mat-icon{font-size:200%}.add-card-container:hover{transition:280ms cubic-bezier(.4,0,.2,1);border-color:transparent;background-color:#fff;color:rgba(0,0,0,.54)}.add-card-container:hover:hover{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.add-card-template-container{width:var(--resolved-card-width);height:var(--resolved-card-height);display:flex;flex-direction:column;align-items:stretch;justify-content:stretch}"]
582
582
  }),
583
583
  __metadata("design:paramtypes", [])
584
584
  ], CardContainerComponent);
@@ -586,12 +586,42 @@
586
586
  }(DisposableComponent));
587
587
 
588
588
 
589
+ (function (TrackBy) {
590
+ TrackBy.byIndex = function (data, index) { return index; };
591
+ })(exports.TrackBy || (exports.TrackBy = {}));
592
+
593
+
589
594
  (function (CommandFace) {
590
595
  var Position;
591
596
  (function (Position) {
592
597
  Position["START"] = "start";
593
598
  Position["END"] = "end";
594
599
  })(Position = CommandFace.Position || (CommandFace.Position = {}));
600
+ CommandFace.Style = typescriptStringEnums.Enum({
601
+ FLAT: 'flat',
602
+ STROKED: 'stroked',
603
+ RAISED: 'raised'
604
+ });
605
+ function getColorOf(face) {
606
+ return ___default__default.isFunction(face === null || face === void 0 ? void 0 : face.color) ? face.color() : undefined;
607
+ }
608
+ CommandFace.getColorOf = getColorOf;
609
+ function getStyleOf(face) {
610
+ return ___default__default.isFunction(face === null || face === void 0 ? void 0 : face.style) ? face.style() : undefined;
611
+ }
612
+ CommandFace.getStyleOf = getStyleOf;
613
+ function getIconOf(face) {
614
+ return ___default__default.isFunction(face === null || face === void 0 ? void 0 : face.icon) ? face.icon() : undefined;
615
+ }
616
+ CommandFace.getIconOf = getIconOf;
617
+ function getTooltipOf(face) {
618
+ return ___default__default.isFunction(face === null || face === void 0 ? void 0 : face.tooltip) ? face.tooltip() : undefined;
619
+ }
620
+ CommandFace.getTooltipOf = getTooltipOf;
621
+ function getTextOf(face) {
622
+ return ___default__default.isFunction(face === null || face === void 0 ? void 0 : face.text) ? face.text() : undefined;
623
+ }
624
+ CommandFace.getTextOf = getTextOf;
595
625
  var Adapter = /** @class */ (function () {
596
626
  function Adapter(face) {
597
627
  this.face = face;
@@ -605,7 +635,7 @@
605
635
  });
606
636
  Object.defineProperty(Adapter.prototype, "icon", {
607
637
  get: function () {
608
- return ___default__default.isFunction(this.face.icon) ? this.face.icon() : undefined;
638
+ return CommandFace.getIconOf(this.face);
609
639
  },
610
640
  enumerable: true,
611
641
  configurable: true
@@ -638,9 +668,16 @@
638
668
  enumerable: true,
639
669
  configurable: true
640
670
  });
641
- Object.defineProperty(Adapter.prototype, "destructive", {
671
+ Object.defineProperty(Adapter.prototype, "color", {
642
672
  get: function () {
643
- return ___default__default.isFunction(this.face.destructive) ? this.face.destructive() : false;
673
+ return CommandFace.getColorOf(this.face);
674
+ },
675
+ enumerable: true,
676
+ configurable: true
677
+ });
678
+ Object.defineProperty(Adapter.prototype, "style", {
679
+ get: function () {
680
+ return CommandFace.getStyleOf(this.face);
644
681
  },
645
682
  enumerable: true,
646
683
  configurable: true
@@ -677,75 +714,494 @@
677
714
  ], Adapter.prototype, "iconPositionEnd", null);
678
715
  __decorate([
679
716
  src.Memoize(),
680
- __metadata("design:type", Boolean),
717
+ __metadata("design:type", String),
718
+ __metadata("design:paramtypes", [])
719
+ ], Adapter.prototype, "color", null);
720
+ __decorate([
721
+ src.Memoize(),
722
+ __metadata("design:type", String),
681
723
  __metadata("design:paramtypes", [])
682
- ], Adapter.prototype, "destructive", null);
724
+ ], Adapter.prototype, "style", null);
683
725
  return Adapter;
684
726
  }());
685
727
  CommandFace.Adapter = Adapter;
686
728
  })(exports.CommandFace || (exports.CommandFace = {}));
687
729
 
688
- var CommandContainer = /** @class */ (function (_super) {
689
- __extends(CommandContainer, _super);
690
- function CommandContainer() {
730
+ exports.ViewData = /** @class */ (function () {
731
+ function ViewData() {
732
+ }
733
+ return ViewData;
734
+ }());
735
+ (function (ViewData) {
736
+ var FaceData = /** @class */ (function (_super) {
737
+ __extends(FaceData, _super);
738
+ function FaceData(face) {
739
+ var _this = _super.call(this) || this;
740
+ _this.faceAdapter = new exports.CommandFace.Adapter(face);
741
+ return _this;
742
+ }
743
+ return FaceData;
744
+ }(ViewData));
745
+ ViewData.FaceData = FaceData;
746
+ var GroupData = /** @class */ (function (_super) {
747
+ __extends(GroupData, _super);
748
+ function GroupData(face, xPosition, yPosition, children) {
749
+ var _this = _super.call(this, face) || this;
750
+ _this.xPosition = xPosition;
751
+ _this.yPosition = yPosition;
752
+ _this.children = children;
753
+ return _this;
754
+ }
755
+ Object.defineProperty(GroupData.prototype, "hasMixedIcons", {
756
+ get: function () {
757
+ var hasFaces = this.children.filter(function (c) { return ViewData.hasFace(c); });
758
+ var iconCount = hasFaces.filter(function (c) { return !!c.faceAdapter.icon; }).length;
759
+ return iconCount > 0 && hasFaces.length !== iconCount;
760
+ },
761
+ enumerable: true,
762
+ configurable: true
763
+ });
764
+ __decorate([
765
+ src.Memoize(),
766
+ __metadata("design:type", Boolean),
767
+ __metadata("design:paramtypes", [])
768
+ ], GroupData.prototype, "hasMixedIcons", null);
769
+ return GroupData;
770
+ }(FaceData));
771
+ ViewData.GroupData = GroupData;
772
+ var CommandData = /** @class */ (function (_super) {
773
+ __extends(CommandData, _super);
774
+ function CommandData(face, command) {
775
+ var _this = _super.call(this, face) || this;
776
+ _this.command = command;
777
+ return _this;
778
+ }
779
+ return CommandData;
780
+ }(FaceData));
781
+ ViewData.CommandData = CommandData;
782
+ var SeparatorData = /** @class */ (function (_super) {
783
+ __extends(SeparatorData, _super);
784
+ function SeparatorData() {
785
+ return _super !== null && _super.apply(this, arguments) || this;
786
+ }
787
+ return SeparatorData;
788
+ }(ViewData));
789
+ ViewData.SeparatorData = SeparatorData;
790
+ var FlexData = /** @class */ (function (_super) {
791
+ __extends(FlexData, _super);
792
+ function FlexData() {
793
+ return _super !== null && _super.apply(this, arguments) || this;
794
+ }
795
+ return FlexData;
796
+ }(ViewData));
797
+ ViewData.FlexData = FlexData;
798
+ function as(type, viewData) {
799
+ return viewData instanceof type ? viewData : pectin.lang.illegalState("expected instance of " + type.name + ", got " + viewData.constructor.name);
800
+ }
801
+ ViewData.as = as;
802
+ function getCommand(data) {
803
+ return as(CommandData, data).command;
804
+ }
805
+ ViewData.getCommand = getCommand;
806
+ function getTooltip(data) {
807
+ return as(FaceData, data).faceAdapter.tooltip;
808
+ }
809
+ ViewData.getTooltip = getTooltip;
810
+ function getStyle(data) {
811
+ return as(FaceData, data).faceAdapter.style;
812
+ }
813
+ ViewData.getStyle = getStyle;
814
+ function getColor(data) {
815
+ return as(FaceData, data).faceAdapter.color;
816
+ }
817
+ ViewData.getColor = getColor;
818
+ function hasText(data) {
819
+ return !!as(FaceData, data).faceAdapter.text;
820
+ }
821
+ ViewData.hasText = hasText;
822
+ function getFace(data) {
823
+ return as(FaceData, data).faceAdapter.face;
824
+ }
825
+ ViewData.getFace = getFace;
826
+ function asGroup(viewData) {
827
+ return as(GroupData, viewData);
828
+ }
829
+ ViewData.asGroup = asGroup;
830
+ function hasMixedIcons(data) {
831
+ return as(GroupData, data).hasMixedIcons;
832
+ }
833
+ ViewData.hasMixedIcons = hasMixedIcons;
834
+ function isGroup(data) {
835
+ return data instanceof GroupData;
836
+ }
837
+ ViewData.isGroup = isGroup;
838
+ function hasFace(data) {
839
+ return data instanceof FaceData;
840
+ }
841
+ ViewData.hasFace = hasFace;
842
+ function isCommand(data) {
843
+ return data instanceof CommandData;
844
+ }
845
+ ViewData.isCommand = isCommand;
846
+ function isSeparator(data) {
847
+ return data instanceof SeparatorData;
848
+ }
849
+ ViewData.isSeparator = isSeparator;
850
+ function isFlex(data) {
851
+ return data instanceof FlexData;
852
+ }
853
+ ViewData.isFlex = isFlex;
854
+ })(exports.ViewData || (exports.ViewData = {}));
855
+
856
+ var CommandGroupMenuRendererComponent = /** @class */ (function (_super) {
857
+ __extends(CommandGroupMenuRendererComponent, _super);
858
+ function CommandGroupMenuRendererComponent(parent) {
691
859
  var _this = _super.call(this) || this;
692
- _this._commandRegistrations = new pectin.MutableListModel();
860
+ _this.parent = parent;
861
+ _this.groupViewDataModel = new pectin.MutableValueModel();
862
+ _this.commandFired = new core.EventEmitter();
863
+ _this.ViewData = exports.ViewData;
864
+ _this.TrackBy = exports.TrackBy;
865
+ var _a = pectin.Dsl.disposeWith(_this), chain = _a.chain, valueOf = _a.valueOf, before = _a.before, when = _a.when, after = _a.after, observe = _a.observe, switchOn = _a.switchOn;
866
+ _this.children = chain(_this.groupViewDataModel).pluckList('children');
867
+ _this.hasMixedIcons = chain(_this.groupViewDataModel).pluck('hasMixedIcons');
693
868
  return _this;
694
869
  }
695
- Object.defineProperty(CommandContainer.prototype, "commandRegistrations", {
870
+ CommandGroupMenuRendererComponent.prototype.getCommand = function (data) {
871
+ var _this = this;
872
+ var command = exports.ViewData.getCommand(data);
873
+ var when = pectin.Dsl.disposeWith(this).when;
874
+ when(command.busy).becomesFalsey(function () { return _this.commandFired.emit(); });
875
+ return command;
876
+ };
877
+ CommandGroupMenuRendererComponent.ctorParameters = function () { return [
878
+ { type: CommandGroupMenuRendererComponent, decorators: [{ type: core.Optional }, { type: core.SkipSelf }] }
879
+ ]; };
880
+ __decorate([
881
+ core.ViewChild('menu', { static: true }),
882
+ __metadata("design:type", menu.MatMenu)
883
+ ], CommandGroupMenuRendererComponent.prototype, "menuComponent", void 0);
884
+ __decorate([
885
+ core.Input(), pectin.StoreInValueModel('groupViewDataModel'),
886
+ __metadata("design:type", exports.ViewData.GroupData)
887
+ ], CommandGroupMenuRendererComponent.prototype, "groupViewData", void 0);
888
+ __decorate([
889
+ core.Output(),
890
+ __metadata("design:type", Object)
891
+ ], CommandGroupMenuRendererComponent.prototype, "commandFired", void 0);
892
+ __decorate([
893
+ core.ViewChildren(menu.MatMenuTrigger),
894
+ __metadata("design:type", core.QueryList)
895
+ ], CommandGroupMenuRendererComponent.prototype, "triggers", void 0);
896
+ CommandGroupMenuRendererComponent = __decorate([
897
+ core.Component({
898
+ selector: 'aup-command-group-menu',
899
+ template: "<mat-menu #menu [xPosition]=\"groupViewData.xPosition\" [yPosition]=\"groupViewData.yPosition\">\n <ng-container *ngFor=\"let data of children.value; trackBy: TrackBy.byIndex\" >\n <button *ngIf=\"ViewData.isCommand(data)\"\n [pectinCommand]=\"getCommand(data)\"\n [matTooltip]=\"ViewData.getTooltip(data)\"\n mat-menu-item>\n <aup-command-face [face]=\"ViewData.getFace(data)\"\n [includeMissingIconInLayout]=\"hasMixedIcons.value\"></aup-command-face>\n </button>\n\n <ng-container *ngIf=\"ViewData.isGroup(data)\">\n <button mat-menu-item\n #trigger=\"matMenuTrigger\"\n [matMenuTriggerFor]=\"innerPanel.menuComponent\"\n >\n <aup-command-face [face]=\"ViewData.getFace(data)\"\n [includeMissingIconInLayout]=\"hasMixedIcons.value\"></aup-command-face>\n </button>\n <aup-command-group-menu #innerPanel\n [groupViewData]=\"ViewData.asGroup(data)\"\n (commandFired)=\"trigger.closeMenu()\"></aup-command-group-menu>\n </ng-container>\n\n <mat-divider *ngIf=\"ViewData.isSeparator(data)\"></mat-divider>\n\n </ng-container>\n</mat-menu>\n"
900
+ }),
901
+ __param(0, core.Optional()), __param(0, core.SkipSelf()),
902
+ __metadata("design:paramtypes", [CommandGroupMenuRendererComponent])
903
+ ], CommandGroupMenuRendererComponent);
904
+ return CommandGroupMenuRendererComponent;
905
+ }(DisposableComponent));
906
+
907
+ var CommandGroupRendererComponent = /** @class */ (function (_super) {
908
+ __extends(CommandGroupRendererComponent, _super);
909
+ function CommandGroupRendererComponent() {
910
+ var _this = _super.call(this) || this;
911
+ _this.renderRootNode = true;
912
+ _this.ViewData = exports.ViewData;
913
+ _this.TrackBy = exports.TrackBy;
914
+ var _a = pectin.Dsl.disposeWith(_this), chain = _a.chain, valueOf = _a.valueOf, before = _a.before, when = _a.when, after = _a.after, observe = _a.observe, switchOn = _a.switchOn;
915
+ _this.childViewDataModels = chain(_this.groupViewDataModel).pluckList('children');
916
+ return _this;
917
+ }
918
+ __decorate([
919
+ core.Input(), pectin.TrackExternal(),
920
+ __metadata("design:type", pectin.ValueModel)
921
+ ], CommandGroupRendererComponent.prototype, "groupViewDataModel", void 0);
922
+ __decorate([
923
+ core.Input(), pectin.StoreInValueModel('groupViewDataModel'),
924
+ __metadata("design:type", exports.ViewData.GroupData)
925
+ ], CommandGroupRendererComponent.prototype, "groupViewData", void 0);
926
+ __decorate([
927
+ core.Input(),
928
+ core.HostBinding('class.render-root'),
929
+ __metadata("design:type", Object)
930
+ ], CommandGroupRendererComponent.prototype, "renderRootNode", void 0);
931
+ CommandGroupRendererComponent = __decorate([
932
+ core.Component({
933
+ selector: 'aup-command-group-renderer',
934
+ template: "<ng-template #groupTemplate let-group>\n\n <ng-container *ngIf=\"ViewData.hasText(group)\" [ngSwitch]=\"ViewData.getStyle(group)\">\n <ng-container *ngSwitchCase=\"'stroked'\">\n <button #trigger=\"matMenuTrigger\"\n [matMenuTriggerFor]=\"subMenu.menuComponent\"\n [matTooltip]=\"ViewData.getTooltip(group)\"\n [color]=\"ViewData.getColor(group)\"\n mat-stroked-button>\n <aup-command-face [face]=\"ViewData.getFace(group)\"></aup-command-face>\n </button>\n <aup-command-group-menu #subMenu [groupViewData]=\"group\" (commandFired)=\"trigger.closeMenu()\"></aup-command-group-menu>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'raised'\">\n <button #trigger=\"matMenuTrigger\"\n [matMenuTriggerFor]=\"subMenu.menuComponent\"\n\n [matTooltip]=\"ViewData.getTooltip(group)\"\n [color]=\"ViewData.getColor(group)\"\n mat-raised-button>\n <aup-command-face [face]=\"ViewData.getFace(group)\"></aup-command-face>\n </button>\n <aup-command-group-menu #subMenu [groupViewData]=\"group\" (commandFired)=\"trigger.closeMenu()\"></aup-command-group-menu>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <button #trigger=\"matMenuTrigger\"\n [matMenuTriggerFor]=\"subMenu.menuComponent\"\n [matTooltip]=\"ViewData.getTooltip(group)\"\n [color]=\"ViewData.getColor(group)\"\n mat-button>\n <aup-command-face [face]=\"ViewData.getFace(group)\"></aup-command-face>\n </button>\n <aup-command-group-menu #subMenu [groupViewData]=\"group\" (commandFired)=\"trigger.closeMenu()\"></aup-command-group-menu>\n </ng-container>\n\n </ng-container>\n\n <ng-container *ngIf=\"!ViewData.hasText(group)\">\n <button #trigger=\"matMenuTrigger\"\n mat-icon-button\n [matMenuTriggerFor]=\"subMenu.menuComponent\"\n\n [matTooltip]=\"ViewData.getTooltip(group)\"\n [color]=\"ViewData.getColor(group)\"\n >\n <aup-command-face [face]=\"ViewData.getFace(group)\"></aup-command-face>\n </button>\n <aup-command-group-menu #subMenu [groupViewData]=\"group\" (commandFired)=\"trigger.closeMenu()\"></aup-command-group-menu>\n </ng-container>\n\n</ng-template>\n\n\n<ng-template #commandTemplate let-data>\n\n <ng-container *ngIf=\"ViewData.hasText(data)\" [ngSwitch]=\"ViewData.getStyle(data)\">\n <button *ngSwitchCase=\"'raised'\"\n [pectinCommand]=\"ViewData.getCommand(data)\"\n [matTooltip]=\"ViewData.getTooltip(data)\"\n [color]=\"ViewData.getColor(data)\"\n mat-raised-button>\n <aup-command-face [face]=\"ViewData.getFace(data)\"></aup-command-face>\n </button>\n <button *ngSwitchCase=\"'stroked'\"\n [pectinCommand]=\"ViewData.getCommand(data)\"\n [matTooltip]=\"ViewData.getTooltip(data)\"\n [color]=\"ViewData.getColor(data)\"\n mat-stroked-button>\n <aup-command-face [face]=\"ViewData.getFace(data)\"></aup-command-face>\n </button>\n <button *ngSwitchDefault\n [pectinCommand]=\"ViewData.getCommand(data)\"\n [matTooltip]=\"ViewData.getTooltip(data)\"\n [color]=\"ViewData.getColor(data)\"\n mat-button>\n <aup-command-face [face]=\"ViewData.getFace(data)\"></aup-command-face>\n </button>\n </ng-container>\n\n <button *ngIf=\"!ViewData.hasText(data)\"\n [pectinCommand]=\"ViewData.getCommand(data)\"\n [matTooltip]=\"ViewData.getTooltip(data)\"\n [color]=\"ViewData.getColor(data)\"\n mat-icon-button>\n <aup-command-face [face]=\"ViewData.getFace(data)\"></aup-command-face>\n </button>\n\n</ng-template>\n\n\n<ng-template *ngIf=\"renderRootNode\"\n [ngTemplateOutlet]=\"groupTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: groupViewDataModel.value }\">\n</ng-template>\n\n<ng-container *ngIf=\"!renderRootNode\">\n <ng-container *ngFor=\"let data of this.childViewDataModels.value; trackBy: TrackBy.byIndex\">\n <ng-template *ngIf=\"ViewData.isGroup(data)\"\n [ngTemplateOutlet]=\"groupTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: data }\">\n </ng-template>\n <ng-template *ngIf=\"ViewData.isCommand(data)\"\n [ngTemplateOutlet]=\"commandTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: data }\">\n </ng-template>\n\n <mat-divider *ngIf=\"ViewData.isSeparator(data)\" [vertical]=\"true\"></mat-divider>\n </ng-container>\n\n</ng-container>\n",
935
+ styles: [":host{display:inline-flex;flex-direction:row;align-items:center}:host:not(.render-root) mat-divider{-ms-grid-row-align:stretch;align-self:stretch;margin:4px 0}:host:not(.render-root)>*+*{margin-left:8px}:host span.flex{flex:1}"]
936
+ }),
937
+ __metadata("design:paramtypes", [])
938
+ ], CommandGroupRendererComponent);
939
+ return CommandGroupRendererComponent;
940
+ }(DisposableComponent));
941
+
942
+ exports.Registration = /** @class */ (function (_super) {
943
+ __extends(Registration, _super);
944
+ function Registration() {
945
+ return _super !== null && _super.apply(this, arguments) || this;
946
+ }
947
+ return Registration;
948
+ }(pectin.GarbageCollector));
949
+ (function (Registration) {
950
+ var FaceRegistration = /** @class */ (function (_super) {
951
+ __extends(FaceRegistration, _super);
952
+ function FaceRegistration(faceModel) {
953
+ var _this = _super.call(this) || this;
954
+ _this.faceModel = faceModel;
955
+ return _this;
956
+ }
957
+ return FaceRegistration;
958
+ }(Registration));
959
+ Registration.FaceRegistration = FaceRegistration;
960
+ var CommandRegistration = /** @class */ (function (_super) {
961
+ __extends(CommandRegistration, _super);
962
+ function CommandRegistration(faceModel, command) {
963
+ var _this = _super.call(this, faceModel) || this;
964
+ _this.command = command;
965
+ return _this;
966
+ }
967
+ CommandRegistration.prototype.toTemplate = function () {
968
+ return new exports.ViewData.CommandData(this.faceModel.value, this.command);
969
+ };
970
+ return CommandRegistration;
971
+ }(FaceRegistration));
972
+ Registration.CommandRegistration = CommandRegistration;
973
+ var GroupRegistration = /** @class */ (function (_super) {
974
+ __extends(GroupRegistration, _super);
975
+ function GroupRegistration(faceModel, group) {
976
+ var _this = _super.call(this, faceModel) || this;
977
+ _this.group = group;
978
+ return _this;
979
+ }
980
+ GroupRegistration.prototype.toTemplate = function () {
981
+ return new exports.ViewData.GroupData(this.faceModel.value, this.group.xPosition, this.group.yPosition, this.group.registrations.value.map(function (r) { return r.toTemplate(); }));
982
+ };
983
+ return GroupRegistration;
984
+ }(FaceRegistration));
985
+ Registration.GroupRegistration = GroupRegistration;
986
+ var SeparatorRegistration = /** @class */ (function (_super) {
987
+ __extends(SeparatorRegistration, _super);
988
+ function SeparatorRegistration() {
989
+ var _this = _super !== null && _super.apply(this, arguments) || this;
990
+ _this.template = new exports.ViewData.SeparatorData();
991
+ return _this;
992
+ }
993
+ SeparatorRegistration.prototype.toTemplate = function () {
994
+ return this.template;
995
+ };
996
+ return SeparatorRegistration;
997
+ }(Registration));
998
+ Registration.SeparatorRegistration = SeparatorRegistration;
999
+ var FlexRegistration = /** @class */ (function (_super) {
1000
+ __extends(FlexRegistration, _super);
1001
+ function FlexRegistration() {
1002
+ var _this = _super !== null && _super.apply(this, arguments) || this;
1003
+ _this.template = new exports.ViewData.FlexData();
1004
+ return _this;
1005
+ }
1006
+ FlexRegistration.prototype.toTemplate = function () {
1007
+ return this.template;
1008
+ };
1009
+ return FlexRegistration;
1010
+ }(Registration));
1011
+ Registration.FlexRegistration = FlexRegistration;
1012
+ function hasFace(entry) {
1013
+ return entry instanceof CommandRegistration || entry instanceof GroupRegistration;
1014
+ }
1015
+ Registration.hasFace = hasFace;
1016
+ })(exports.Registration || (exports.Registration = {}));
1017
+
1018
+ exports.ɵbo = /** @class */ (function (_super) {
1019
+ __extends(CommandGroup, _super);
1020
+ function CommandGroup(parent) {
1021
+ var _this = _super.call(this) || this;
1022
+ _this.parent = parent;
1023
+ _this._rootTemplate = new pectin.MutableValueModel();
1024
+ _this._registrations = new pectin.MutableListModel();
1025
+ _this._childFaceModels = new pectin.MutableListModel();
1026
+ _this._faceChangeCount = new pectin.MutableValueModel(0);
1027
+ var _a = pectin.Dsl.disposeWith(_this), chain = _a.chain, valueOf = _a.valueOf, before = _a.before, when = _a.when, after = _a.after, observe = _a.observe, switchOn = _a.switchOn;
1028
+ var childFaces = chain(_this._childFaceModels)
1029
+ .map(function (m) { return m.value; }, { dependsOn: _this._faceChangeCount })
1030
+ .rejectNil();
1031
+ var iconCount = childFaces
1032
+ .select(function (face) { return !!exports.CommandFace.getIconOf(face); })
1033
+ .count();
1034
+ _this.hasMixedIcons = valueOf.all(iconCount.isGreaterThan(0), iconCount.doesNotEqual(childFaces.length)).areTruthy();
1035
+ _this.childTemplates = chain(_this._rootTemplate).pluckList('children');
1036
+ _this.initialised = chain(_this._rootTemplate).isNotNil();
1037
+ return _this;
1038
+ }
1039
+ CommandGroup.prototype.initialise = function () {
1040
+ this.rebuildTemplates();
1041
+ };
1042
+ Object.defineProperty(CommandGroup.prototype, "rootTemplate", {
696
1043
  get: function () {
697
- return this._commandRegistrations.readonly;
1044
+ return this._rootTemplate.readonly;
698
1045
  },
699
1046
  enumerable: true,
700
1047
  configurable: true
701
1048
  });
702
- CommandContainer.prototype.registerCommand = function (command, face) {
703
- var _this = this;
704
- var registration = { command: command, faceAdapter: new exports.CommandFace.Adapter(face) };
705
- this._commandRegistrations.push(registration);
706
- return pectin.Disposable.disposableThatRuns(function () { return _this._commandRegistrations.remove(registration); });
1049
+ Object.defineProperty(CommandGroup.prototype, "registrations", {
1050
+ get: function () {
1051
+ return this._registrations.readonly;
1052
+ },
1053
+ enumerable: true,
1054
+ configurable: true
1055
+ });
1056
+ CommandGroup.prototype.notifyChanged = function () {
1057
+ if (this.parent) {
1058
+ this.parent.notifyChanged();
1059
+ }
1060
+ else {
1061
+ this.rebuildTemplates();
1062
+ }
707
1063
  };
708
- CommandContainer.prototype.getDefaultIconPosition = function () {
709
- return exports.CommandFace.Position.START;
1064
+ CommandGroup.prototype.notifyChildFaceChanged = function (is, was) {
1065
+ this.notifyChanged();
710
1066
  };
711
- return CommandContainer;
712
- }(pectin.GarbageCollector));
713
-
714
- /**
715
- *
716
- */
717
- var CommandBarComponent = /** @class */ (function (_super) {
718
- __extends(CommandBarComponent, _super);
719
- function CommandBarComponent() {
720
- return _super.call(this) || this;
721
- }
722
- CommandBarComponent_1 = CommandBarComponent;
723
- CommandBarComponent.prototype.ngOnInit = function () {
1067
+ CommandGroup.prototype.rebuildTemplates = function () {
1068
+ this._rootTemplate.value = new exports.ViewData.GroupData(this.faceModel.value, this.xPosition, this.yPosition, this.registrations.value.map(function (r) { return r.toTemplate(); }));
1069
+ };
1070
+ Object.defineProperty(CommandGroup.prototype, "depth", {
1071
+ get: function () {
1072
+ return this.isRoot() ? 0 : this.parent.depth + 1;
1073
+ },
1074
+ enumerable: true,
1075
+ configurable: true
1076
+ });
1077
+ CommandGroup.prototype.isRoot = function () {
1078
+ return false;
1079
+ };
1080
+ CommandGroup.prototype.registerCommand = function (command, faceModel) {
1081
+ return this.register(new exports.Registration.CommandRegistration(faceModel, command));
1082
+ };
1083
+ CommandGroup.prototype.registerGroup = function (group, faceModel) {
1084
+ return this.register(new exports.Registration.GroupRegistration(faceModel, group));
1085
+ };
1086
+ CommandGroup.prototype.registerFlex = function (component) {
1087
+ return this.register(new exports.Registration.FlexRegistration());
724
1088
  };
725
- CommandBarComponent.prototype.getButtonColor = function (registration) {
726
- return registration.faceAdapter.destructive ? 'warn' : undefined;
1089
+ CommandGroup.prototype.registerSeparator = function (component) {
1090
+ return this.register(new exports.Registration.SeparatorRegistration());
727
1091
  };
728
- var CommandBarComponent_1;
729
- CommandBarComponent = CommandBarComponent_1 = __decorate([
1092
+ CommandGroup.prototype.register = function (registration) {
1093
+ var _this = this;
1094
+ this._registrations.push(registration);
1095
+ if (registration instanceof exports.Registration.FaceRegistration) {
1096
+ this._childFaceModels.push(registration.faceModel);
1097
+ var when = pectin.Dsl.disposeWith(registration).when;
1098
+ when(registration.faceModel).changes(function (is, was) {
1099
+ _this.notifyChildFaceChanged(new exports.CommandFace.Adapter(is), new exports.CommandFace.Adapter(was));
1100
+ }, { asLongAs: this.initialised });
1101
+ registration.onDispose(function () { return _this._childFaceModels.remove(registration.faceModel); });
1102
+ }
1103
+ registration.onDispose(function () { return _this._registrations.remove(registration); });
1104
+ return registration;
1105
+ };
1106
+ return CommandGroup;
1107
+ }(pectin.GarbageCollector));
1108
+ (function (CommandGroup) {
1109
+ var Root = /** @class */ (function (_super) {
1110
+ __extends(Root, _super);
1111
+ function Root() {
1112
+ return _super !== null && _super.apply(this, arguments) || this;
1113
+ }
1114
+ Root.prototype.isRoot = function () {
1115
+ return true;
1116
+ };
1117
+ __decorate([
1118
+ pectin.TrackExternal(),
1119
+ __metadata("design:type", pectin.ValueModel)
1120
+ ], Root.prototype, "faceModel", void 0);
1121
+ __decorate([
1122
+ pectin.TrackExternal({ defaultValue: 'after' }),
1123
+ __metadata("design:type", pectin.ValueModel)
1124
+ ], Root.prototype, "xPositionModel", void 0);
1125
+ __decorate([
1126
+ pectin.StoreInValueModel('xPositionModel'),
1127
+ __metadata("design:type", String)
1128
+ ], Root.prototype, "xPosition", void 0);
1129
+ __decorate([
1130
+ pectin.TrackExternal({ defaultValue: 'below' }),
1131
+ __metadata("design:type", pectin.ValueModel)
1132
+ ], Root.prototype, "yPositionModel", void 0);
1133
+ __decorate([
1134
+ pectin.StoreInValueModel('yPositionModel'),
1135
+ __metadata("design:type", String)
1136
+ ], Root.prototype, "yPosition", void 0);
1137
+ return Root;
1138
+ }(CommandGroup));
1139
+ CommandGroup.Root = Root;
1140
+ function factory() {
1141
+ return new Root();
1142
+ }
1143
+ CommandGroup.factory = factory;
1144
+ })(exports.ɵbo || (exports.ɵbo = {}));
1145
+
1146
+ var CommandGroupComponent = /** @class */ (function (_super) {
1147
+ __extends(CommandGroupComponent, _super);
1148
+ function CommandGroupComponent(parent) {
1149
+ var _this = _super.call(this, parent) || this;
1150
+ _this.parent = parent;
1151
+ _this.xPosition = 'after';
1152
+ _this.yPosition = 'below';
1153
+ _this.parent.registerGroup(_this, _this.faceModel);
1154
+ return _this;
1155
+ }
1156
+ CommandGroupComponent_1 = CommandGroupComponent;
1157
+ var CommandGroupComponent_1;
1158
+ CommandGroupComponent.ctorParameters = function () { return [
1159
+ { type: exports.ɵbo, decorators: [{ type: core.SkipSelf }] }
1160
+ ]; };
1161
+ __decorate([
1162
+ core.Input(), pectin.TrackExternal(),
1163
+ __metadata("design:type", pectin.ValueModel)
1164
+ ], CommandGroupComponent.prototype, "faceModel", void 0);
1165
+ __decorate([
1166
+ core.Input(), pectin.StoreInValueModel('faceModel'),
1167
+ __metadata("design:type", Object)
1168
+ ], CommandGroupComponent.prototype, "face", void 0);
1169
+ __decorate([
1170
+ core.Input(),
1171
+ __metadata("design:type", String)
1172
+ ], CommandGroupComponent.prototype, "xPosition", void 0);
1173
+ __decorate([
1174
+ core.Input(),
1175
+ __metadata("design:type", String)
1176
+ ], CommandGroupComponent.prototype, "yPosition", void 0);
1177
+ CommandGroupComponent = CommandGroupComponent_1 = __decorate([
730
1178
  core.Component({
731
- selector: 'aup-command-bar',
732
- template: "\n <ng-container *ngFor=\"let registration of commandRegistrations.value\">\n <button *ngIf=\"registration.faceAdapter.icon && !registration.faceAdapter.text\"\n mat-icon-button\n [color]=\"getButtonColor(registration)\"\n [pectinCommand]=\"registration.command\"\n [matTooltip]=\"registration.faceAdapter.tooltip\"\n >\n <aup-command-face [face]=\"registration.faceAdapter.face\"></aup-command-face>\n </button>\n <button *ngIf=\"registration.faceAdapter.text\"\n [color]=\"getButtonColor(registration)\"\n mat-button\n [pectinCommand]=\"registration.command\"\n [matTooltip]=\"registration.tooltip\"\n >\n <aup-command-face [face]=\"registration.faceAdapter.face\"></aup-command-face>\n </button>\n </ng-container>\n ",
733
- providers: [{ provide: CommandContainer, useExisting: core.forwardRef(function () { return CommandBarComponent_1; }) }],
734
- styles: [":host {\n display: inline-flex;\n flex-direction: row;\n align-items: center;\n }"]
1179
+ selector: 'aup-command-group',
1180
+ template: '',
1181
+ providers: [
1182
+ { provide: exports.ɵbo, useExisting: CommandGroupComponent_1 }
1183
+ ]
735
1184
  }),
736
- __metadata("design:paramtypes", [])
737
- ], CommandBarComponent);
738
- return CommandBarComponent;
739
- }(CommandContainer));
1185
+ __param(0, core.SkipSelf()),
1186
+ __metadata("design:paramtypes", [exports.ɵbo])
1187
+ ], CommandGroupComponent);
1188
+ return CommandGroupComponent;
1189
+ }(exports.ɵbo));
740
1190
 
741
1191
  /**
742
- *
1192
+ * Custom CSS:
1193
+ * @example
1194
+ * root: { // globally
1195
+ * --aup-command-face-icon-gap: 8px;
1196
+ * }
1197
+ * aup-command-face { // per instance
1198
+ * --icon-gap: 4px;
1199
+ * }
743
1200
  */
744
1201
  var CommandFaceComponent = /** @class */ (function (_super) {
745
1202
  __extends(CommandFaceComponent, _super);
746
- function CommandFaceComponent(commandContainer) {
1203
+ function CommandFaceComponent() {
747
1204
  var _this = _super.call(this) || this;
748
- _this.commandContainer = commandContainer;
749
1205
  _this.faceModel = new pectin.MutableValueModel();
750
1206
  _this.ignoreIcon = false;
751
1207
  _this.ignoreText = false;
@@ -756,7 +1212,7 @@
756
1212
  _this.iconModel = faceAdapter.pluck('icon');
757
1213
  _this.textModel = faceAdapter.pluck('text');
758
1214
  _this.positionModel = faceAdapter.pluck('iconPosition');
759
- _this.destructiveModel = faceAdapter.pluck('destructive');
1215
+ _this.colorModel = faceAdapter.pluck('color');
760
1216
  return _this;
761
1217
  }
762
1218
  Object.defineProperty(CommandFaceComponent.prototype, "requiresMissingIconInLayout", {
@@ -770,8 +1226,8 @@
770
1226
  };
771
1227
  Object.defineProperty(CommandFaceComponent.prototype, "iconPosition", {
772
1228
  get: function () {
773
- var _a, _b, _c;
774
- return (_c = (_a = this.positionModel.value) !== null && _a !== void 0 ? _a : (_b = this.commandContainer) === null || _b === void 0 ? void 0 : _b.getDefaultIconPosition()) !== null && _c !== void 0 ? _c : exports.CommandFace.Position.START;
1229
+ var _a;
1230
+ return (_a = this.positionModel.value) !== null && _a !== void 0 ? _a : exports.CommandFace.Position.START;
775
1231
  },
776
1232
  enumerable: true,
777
1233
  configurable: true
@@ -804,16 +1260,13 @@
804
1260
  enumerable: true,
805
1261
  configurable: true
806
1262
  });
807
- Object.defineProperty(CommandFaceComponent.prototype, "destructive", {
1263
+ Object.defineProperty(CommandFaceComponent.prototype, "color", {
808
1264
  get: function () {
809
- return this.destructiveModel.value;
1265
+ return this.colorModel.value;
810
1266
  },
811
1267
  enumerable: true,
812
1268
  configurable: true
813
1269
  });
814
- CommandFaceComponent.ctorParameters = function () { return [
815
- { type: CommandContainer, decorators: [{ type: core.Optional }] }
816
- ]; };
817
1270
  __decorate([
818
1271
  core.Input('face'), pectin.StoreInValueModel('faceModel'),
819
1272
  __metadata("design:type", Object)
@@ -836,19 +1289,18 @@
836
1289
  __metadata("design:paramtypes", [])
837
1290
  ], CommandFaceComponent.prototype, "requiresMissingIconInLayout", null);
838
1291
  __decorate([
839
- core.HostBinding('class.destructive'),
840
- __metadata("design:type", Boolean),
1292
+ core.HostBinding('attr.color'),
1293
+ __metadata("design:type", String),
841
1294
  __metadata("design:paramtypes", [])
842
- ], CommandFaceComponent.prototype, "destructive", null);
1295
+ ], CommandFaceComponent.prototype, "color", null);
843
1296
  CommandFaceComponent = __decorate([
844
1297
  core.Component({
845
1298
  selector: 'aup-command-face',
846
1299
  template: "<aup-icon *ngIf=\"iconStart\" [icon]=\"iconModel.value\"></aup-icon>\n<span *ngIf=\"this.text\">{{this.text}}</span>\n<aup-icon *ngIf=\"iconEnd\" [icon]=\"iconModel.value\"></aup-icon>\n",
847
1300
  encapsulation: core.ViewEncapsulation.None,
848
- styles: ["aup-command-face{--icon-gap:var(--command-face-icon-gap);display:inline-flex;flex-direction:row;align-items:center}aup-command-face *+*{margin-left:var(--icon-gap)}aup-command-face.hide-icon aup-icon{visibility:hidden}"]
1301
+ styles: ["aup-command-face{--icon-gap:var(--aup-command-face-icon-gap);display:inline-flex;flex-direction:row;align-items:center}aup-command-face *+*{margin-left:var(--icon-gap)}aup-command-face.hide-icon aup-icon{visibility:hidden}"]
849
1302
  }),
850
- __param(0, core.Optional()),
851
- __metadata("design:paramtypes", [CommandContainer])
1303
+ __metadata("design:paramtypes", [])
852
1304
  ], CommandFaceComponent);
853
1305
  return CommandFaceComponent;
854
1306
  }(DisposableComponent));
@@ -858,31 +1310,41 @@
858
1310
  */
859
1311
  var CommandComponent = /** @class */ (function (_super) {
860
1312
  __extends(CommandComponent, _super);
861
- function CommandComponent(commandContainer) {
1313
+ function CommandComponent(parent) {
862
1314
  var _this = _super.call(this) || this;
863
- _this.commandContainer = commandContainer;
1315
+ _this.parent = parent;
1316
+ _this.CommandFace = exports.CommandFace;
1317
+ var _a = pectin.Dsl.disposeWith(_this), chain = _a.chain, valueOf = _a.valueOf, before = _a.before, when = _a.when, after = _a.after, observe = _a.observe, switchOn = _a.switchOn;
1318
+ _this.buttonStyle = chain(_this.faceModel).map(function (f) { return exports.CommandFace.getStyleOf(f); });
1319
+ if (parent) {
1320
+ _this.registerDisposable(_this.parent.registerCommand(_this.command, _this.faceModel));
1321
+ }
864
1322
  return _this;
865
1323
  }
866
1324
  CommandComponent.prototype.ngOnInit = function () {
867
- this.registerDisposable(this.commandContainer.registerCommand(this.command, this.face));
868
1325
  };
869
1326
  CommandComponent.ctorParameters = function () { return [
870
- { type: CommandContainer }
1327
+ { type: exports.ɵbo, decorators: [{ type: core.Optional }] }
871
1328
  ]; };
872
1329
  __decorate([
873
1330
  core.Input(), pectin.TrackExternal(),
874
1331
  __metadata("design:type", pectin.Command)
875
1332
  ], CommandComponent.prototype, "command", void 0);
876
1333
  __decorate([
877
- core.Input(),
1334
+ core.Input(), pectin.TrackExternal(),
1335
+ __metadata("design:type", pectin.ValueModel)
1336
+ ], CommandComponent.prototype, "faceModel", void 0);
1337
+ __decorate([
1338
+ core.Input(), pectin.StoreInValueModel('faceModel'),
878
1339
  __metadata("design:type", Object)
879
1340
  ], CommandComponent.prototype, "face", void 0);
880
1341
  CommandComponent = __decorate([
881
1342
  core.Component({
882
1343
  selector: 'aup-command',
883
- template: ""
1344
+ template: "<ng-container *ngIf=\"!parent\">\n <ng-container [ngSwitch]=\"buttonStyle.value\">\n <button *ngSwitchCase=\"CommandFace.Style.STROKED\" mat-stroked-button [pectinCommand]=\"command\" [color]=\"CommandFace.getColorOf(face)\">\n <aup-command-face [face]=\"face\"></aup-command-face>\n </button>\n <button *ngSwitchCase=\"CommandFace.Style.RAISED\" mat-raised-button [pectinCommand]=\"command\" [color]=\"CommandFace.getColorOf(face)\">\n <aup-command-face [face]=\"face\"></aup-command-face>\n </button>\n <button *ngSwitchDefault mat-button [pectinCommand]=\"command\" [color]=\"CommandFace.getColorOf(face)\">\n <aup-command-face [face]=\"face\"></aup-command-face>\n </button>\n </ng-container>\n</ng-container>\n"
884
1345
  }),
885
- __metadata("design:paramtypes", [CommandContainer])
1346
+ __param(0, core.Optional()),
1347
+ __metadata("design:paramtypes", [exports.ɵbo])
886
1348
  ], CommandComponent);
887
1349
  return CommandComponent;
888
1350
  }(DisposableComponent));
@@ -890,188 +1352,224 @@
890
1352
  /**
891
1353
  *
892
1354
  */
893
- var PopupMenuRendererComponent = /** @class */ (function (_super) {
894
- __extends(PopupMenuRendererComponent, _super);
895
- function PopupMenuRendererComponent() {
1355
+ var FlexComponent = /** @class */ (function (_super) {
1356
+ __extends(FlexComponent, _super);
1357
+ function FlexComponent(parent) {
896
1358
  var _this = _super.call(this) || this;
897
- _this.xPosition = 'after';
898
- _this.yPosition = 'below';
899
- _this.commandExecuted = new core.EventEmitter();
900
- var _a = pectin.Dsl.disposeWith(_this), chain = _a.chain, valueOf = _a.valueOf, before = _a.before, when = _a.when, after = _a.after, observe = _a.observe, switchOn = _a.switchOn;
901
- var registrations = chain(_this.commandRegistrations);
902
- var iconCount = registrations.select(function (r) { return !!r.faceAdapter.icon; }).count();
903
- _this.hasMixedIcons = valueOf.all(iconCount.isGreaterThan(0), iconCount.doesNotEqual(registrations.length)).areTruthy();
1359
+ _this.parent = parent;
1360
+ if (parent) {
1361
+ parent.registerFlex(_this);
1362
+ }
904
1363
  return _this;
905
1364
  }
906
- PopupMenuRendererComponent.prototype.ngOnInit = function () {
907
- };
908
- PopupMenuRendererComponent.prototype.getPopupMenuCommandFor = function (item) {
909
- var _this = this;
910
- var when = pectin.Dsl.disposeWith(this).when;
911
- when(item.command.busy).becomesFalsey(function () {
912
- _this.commandExecuted.emit();
913
- });
914
- return item.command;
915
- };
916
- PopupMenuRendererComponent.prototype.getButtonColor = function (registration) {
917
- return registration.faceAdapter.destructive ? 'warn' : undefined;
1365
+ FlexComponent.prototype.ngOnInit = function () {
918
1366
  };
919
- __decorate([
920
- core.Input(), pectin.TrackExternal(),
921
- __metadata("design:type", pectin.ListModel)
922
- ], PopupMenuRendererComponent.prototype, "commandRegistrations", void 0);
923
- __decorate([
924
- core.Input(),
925
- __metadata("design:type", String)
926
- ], PopupMenuRendererComponent.prototype, "xPosition", void 0);
927
- __decorate([
928
- core.Input(),
929
- __metadata("design:type", String)
930
- ], PopupMenuRendererComponent.prototype, "yPosition", void 0);
931
- __decorate([
932
- core.Output(),
933
- __metadata("design:type", Object)
934
- ], PopupMenuRendererComponent.prototype, "commandExecuted", void 0);
935
- __decorate([
936
- core.ViewChild(menu.MatMenu),
937
- __metadata("design:type", menu.MatMenu)
938
- ], PopupMenuRendererComponent.prototype, "matMenu", void 0);
939
- PopupMenuRendererComponent = __decorate([
1367
+ FlexComponent.ctorParameters = function () { return [
1368
+ { type: exports.ɵbo }
1369
+ ]; };
1370
+ FlexComponent = __decorate([
940
1371
  core.Component({
941
- selector: 'aup-popup-menu-renderer',
942
- template: "<mat-menu [xPosition]=\"xPosition\" [yPosition]=\"yPosition\" >\n <button *ngFor=\"let registration of commandRegistrations.value\"\n mat-menu-item\n [pectinCommand]=\"getPopupMenuCommandFor(registration)\"\n >\n <aup-command-face [face]=\"registration.faceAdapter.face\" [includeMissingIconInLayout]=\"hasMixedIcons.value\"></aup-command-face>\n </button>\n</mat-menu>\n",
943
- styles: [":host{display:inline-flex;flex-direction:row;align-items:center}"]
1372
+ selector: 'aup-flex',
1373
+ template: ""
944
1374
  }),
945
- __metadata("design:paramtypes", [])
946
- ], PopupMenuRendererComponent);
947
- return PopupMenuRendererComponent;
1375
+ __metadata("design:paramtypes", [exports.ɵbo])
1376
+ ], FlexComponent);
1377
+ return FlexComponent;
948
1378
  }(DisposableComponent));
949
1379
 
1380
+ var ɵ0 = exports.ɵbo.factory;
950
1381
  /**
951
1382
  *
952
1383
  */
953
- var AbstractPopupMenuComponent = /** @class */ (function (_super) {
954
- __extends(AbstractPopupMenuComponent, _super);
955
- function AbstractPopupMenuComponent(cdr) {
1384
+ var MoreMenuComponent = /** @class */ (function (_super) {
1385
+ __extends(MoreMenuComponent, _super);
1386
+ function MoreMenuComponent(group) {
956
1387
  var _this = _super.call(this) || this;
957
- _this.cdr = cdr;
958
- _this.xPosition = 'after';
959
- _this.yPosition = 'below';
1388
+ _this.group = group;
1389
+ _this.tooltipModel = new pectin.MutableValueModel();
1390
+ var _a = pectin.Dsl.disposeWith(_this), chain = _a.chain, valueOf = _a.valueOf, before = _a.before, when = _a.when, after = _a.after, observe = _a.observe, switchOn = _a.switchOn;
1391
+ group.xPosition = 'before'; // this should be the default unless overridden by the user.
1392
+ group.faceModel = chain(_this.tooltipModel).map(function (tooltip) {
1393
+ return {
1394
+ icon: function () { return 'mat:more_vert'; },
1395
+ tooltip: function () {
1396
+ return tooltip;
1397
+ }
1398
+ };
1399
+ }, { allowNil: true });
960
1400
  return _this;
961
1401
  }
962
- AbstractPopupMenuComponent.prototype.ngAfterViewInit = function () {
963
- this.cdr.detectChanges();
964
- };
965
- Object.defineProperty(AbstractPopupMenuComponent.prototype, "matMenuComponent", {
966
- get: function () {
967
- var _a;
968
- return (_a = this.popupMenu) === null || _a === void 0 ? void 0 : _a.matMenu;
969
- },
970
- enumerable: true,
971
- configurable: true
972
- });
973
- AbstractPopupMenuComponent.prototype.closeMenu = function () {
974
- this.menuTrigger.closeMenu();
1402
+ MoreMenuComponent.prototype.ngOnInit = function () {
975
1403
  };
976
- AbstractPopupMenuComponent.prototype.getButtonColor = function (registration) {
977
- return registration.faceAdapter.destructive ? 'warn' : undefined;
1404
+ MoreMenuComponent.prototype.ngAfterContentInit = function () {
1405
+ this.group.initialise();
978
1406
  };
979
- AbstractPopupMenuComponent.ctorParameters = function () { return [
980
- { type: core.ChangeDetectorRef }
1407
+ MoreMenuComponent.ctorParameters = function () { return [
1408
+ { type: exports.ɵbo }
981
1409
  ]; };
982
1410
  __decorate([
983
- core.Input(),
984
- __metadata("design:type", String)
985
- ], AbstractPopupMenuComponent.prototype, "xPosition", void 0);
986
- __decorate([
987
- core.Input(),
1411
+ core.Input(), pectin.StoreInValueModel('tooltipModel'),
988
1412
  __metadata("design:type", String)
989
- ], AbstractPopupMenuComponent.prototype, "yPosition", void 0);
990
- __decorate([
991
- core.ViewChild(PopupMenuRendererComponent),
992
- __metadata("design:type", PopupMenuRendererComponent)
993
- ], AbstractPopupMenuComponent.prototype, "popupMenu", void 0);
1413
+ ], MoreMenuComponent.prototype, "tooltip", void 0);
994
1414
  __decorate([
995
- core.ViewChild(menu.MatMenuTrigger),
996
- __metadata("design:type", menu.MatMenuTrigger)
997
- ], AbstractPopupMenuComponent.prototype, "menuTrigger", void 0);
998
- AbstractPopupMenuComponent = __decorate([
1415
+ pectin.Trace(),
1416
+ __metadata("design:type", Function),
1417
+ __metadata("design:paramtypes", []),
1418
+ __metadata("design:returntype", void 0)
1419
+ ], MoreMenuComponent.prototype, "ngAfterContentInit", null);
1420
+ MoreMenuComponent = __decorate([
999
1421
  core.Component({
1000
- selector: 'aup-abstract-popup-menu',
1001
- template: ''
1422
+ selector: 'aup-more-menu',
1423
+ template: '<aup-command-group-renderer [renderRootNode]="true" [groupViewDataModel]="group.rootTemplate"></aup-command-group-renderer>',
1424
+ providers: [{ provide: exports.ɵbo, useFactory: ɵ0 }]
1002
1425
  }),
1003
- __metadata("design:paramtypes", [core.ChangeDetectorRef])
1004
- ], AbstractPopupMenuComponent);
1005
- return AbstractPopupMenuComponent;
1006
- }(CommandContainer));
1426
+ __metadata("design:paramtypes", [exports.ɵbo])
1427
+ ], MoreMenuComponent);
1428
+ return MoreMenuComponent;
1429
+ }(DisposableComponent));
1007
1430
 
1431
+ var ɵ0$1 = exports.ɵbo.factory;
1008
1432
  /**
1009
1433
  *
1010
1434
  */
1011
1435
  var PopupMenuComponent = /** @class */ (function (_super) {
1012
1436
  __extends(PopupMenuComponent, _super);
1013
- function PopupMenuComponent(cdr) {
1014
- var _this = _super.call(this, cdr) || this;
1015
- _this.faceModel = new pectin.MutableValueModel();
1437
+ function PopupMenuComponent(group) {
1438
+ var _this = _super.call(this) || this;
1439
+ _this.group = group;
1016
1440
  var _a = pectin.Dsl.disposeWith(_this), chain = _a.chain, valueOf = _a.valueOf, before = _a.before, when = _a.when, after = _a.after, observe = _a.observe, switchOn = _a.switchOn;
1017
- var faceAdapterModel = chain(_this.faceModel).map(function (face) { return new exports.CommandFace.Adapter(face); });
1018
- _this.faceTooltipModel = faceAdapterModel.pluck('tooltip');
1441
+ group.faceModel = _this.faceModel;
1019
1442
  return _this;
1020
1443
  }
1021
- PopupMenuComponent_1 = PopupMenuComponent;
1022
- PopupMenuComponent.prototype.getTooltip = function () {
1023
- return this.faceTooltipModel.value;
1024
- };
1025
1444
  PopupMenuComponent.prototype.ngOnInit = function () {
1026
1445
  };
1027
- var PopupMenuComponent_1;
1446
+ PopupMenuComponent.prototype.ngAfterContentInit = function () {
1447
+ this.group.initialise();
1448
+ };
1449
+ PopupMenuComponent.prototype.ngAfterViewInit = function () {
1450
+ };
1028
1451
  PopupMenuComponent.ctorParameters = function () { return [
1029
- { type: core.ChangeDetectorRef }
1452
+ { type: exports.ɵbo }
1030
1453
  ]; };
1454
+ __decorate([
1455
+ core.Input(), pectin.TrackExternal(),
1456
+ __metadata("design:type", pectin.ValueModel)
1457
+ ], PopupMenuComponent.prototype, "faceModel", void 0);
1031
1458
  __decorate([
1032
1459
  core.Input(), pectin.StoreInValueModel('faceModel'),
1033
1460
  __metadata("design:type", Object)
1034
1461
  ], PopupMenuComponent.prototype, "face", void 0);
1035
- PopupMenuComponent = PopupMenuComponent_1 = __decorate([
1462
+ __decorate([
1463
+ pectin.Trace(),
1464
+ __metadata("design:type", Function),
1465
+ __metadata("design:paramtypes", []),
1466
+ __metadata("design:returntype", void 0)
1467
+ ], PopupMenuComponent.prototype, "ngOnInit", null);
1468
+ __decorate([
1469
+ pectin.Trace(),
1470
+ __metadata("design:type", Function),
1471
+ __metadata("design:paramtypes", []),
1472
+ __metadata("design:returntype", void 0)
1473
+ ], PopupMenuComponent.prototype, "ngAfterContentInit", null);
1474
+ __decorate([
1475
+ pectin.Trace(),
1476
+ __metadata("design:type", Function),
1477
+ __metadata("design:paramtypes", []),
1478
+ __metadata("design:returntype", void 0)
1479
+ ], PopupMenuComponent.prototype, "ngAfterViewInit", null);
1480
+ PopupMenuComponent = __decorate([
1036
1481
  core.Component({
1037
1482
  selector: 'aup-popup-menu',
1038
- template: "\n <!-- we can only render the button after th popup menu has initialised and rendered it's menu component -->\n <button *ngIf=\"matMenuComponent\" mat-icon-button [matMenuTriggerFor]=\"matMenuComponent\" [matTooltip]=\"getTooltip()\">\n <aup-command-face [face]=\"face\"></aup-command-face>\n </button>\n <aup-popup-menu-renderer [commandRegistrations]=\"commandRegistrations\" [yPosition]=\"yPosition\"\n [xPosition]=\"xPosition\"\n (commandExecuted)=\"closeMenu()\"></aup-popup-menu-renderer>\n ",
1039
- providers: [{ provide: CommandContainer, useExisting: core.forwardRef(function () { return PopupMenuComponent_1; }) }]
1483
+ template: '<aup-command-group-renderer [renderRootNode]="true" [groupViewDataModel]="group.rootTemplate"></aup-command-group-renderer>',
1484
+ providers: [{ provide: exports.ɵbo, useFactory: ɵ0$1 }]
1040
1485
  }),
1041
- __metadata("design:paramtypes", [core.ChangeDetectorRef])
1486
+ __metadata("design:paramtypes", [exports.ɵbo])
1042
1487
  ], PopupMenuComponent);
1043
1488
  return PopupMenuComponent;
1044
- }(AbstractPopupMenuComponent));
1489
+ }(DisposableComponent));
1045
1490
 
1046
1491
  /**
1047
1492
  *
1048
1493
  */
1049
- var MoreMenuComponent = /** @class */ (function (_super) {
1050
- __extends(MoreMenuComponent, _super);
1051
- function MoreMenuComponent(cdr) {
1052
- var _this = _super.call(this, cdr) || this;
1053
- _this.xPosition = "before"; // this should be the default unless overriden by the user.
1494
+ var SeparatorComponent = /** @class */ (function (_super) {
1495
+ __extends(SeparatorComponent, _super);
1496
+ function SeparatorComponent(parent) {
1497
+ var _this = _super.call(this) || this;
1498
+ _this.parent = parent;
1499
+ if (parent) {
1500
+ parent.registerSeparator(_this);
1501
+ }
1054
1502
  return _this;
1055
1503
  }
1056
- MoreMenuComponent_1 = MoreMenuComponent;
1057
- var MoreMenuComponent_1;
1058
- MoreMenuComponent.ctorParameters = function () { return [
1059
- { type: core.ChangeDetectorRef }
1504
+ SeparatorComponent.prototype.isVertical = function () {
1505
+ return this === null || this === void 0 ? void 0 : this.parent.isRoot();
1506
+ };
1507
+ SeparatorComponent.prototype.ngOnInit = function () {
1508
+ };
1509
+ SeparatorComponent.ctorParameters = function () { return [
1510
+ { type: exports.ɵbo, decorators: [{ type: core.Optional }] }
1511
+ ]; };
1512
+ SeparatorComponent = __decorate([
1513
+ core.Component({
1514
+ selector: 'aup-separator',
1515
+ template: "\n <mat-divider [vertical]=\"isVertical()\"></mat-divider>"
1516
+ }),
1517
+ __param(0, core.Optional()),
1518
+ __metadata("design:paramtypes", [exports.ɵbo])
1519
+ ], SeparatorComponent);
1520
+ return SeparatorComponent;
1521
+ }(DisposableComponent));
1522
+
1523
+ var ɵ0$2 = exports.ɵbo.factory;
1524
+ /**
1525
+ *
1526
+ */
1527
+ var ToolBarComponent = /** @class */ (function (_super) {
1528
+ __extends(ToolBarComponent, _super);
1529
+ function ToolBarComponent(group) {
1530
+ var _this = _super.call(this) || this;
1531
+ _this.group = group;
1532
+ return _this;
1533
+ }
1534
+ ToolBarComponent.prototype.ngOnInit = function () {
1535
+ };
1536
+ ToolBarComponent.prototype.ngAfterContentInit = function () {
1537
+ this.group.initialise();
1538
+ };
1539
+ ToolBarComponent.prototype.ngAfterViewInit = function () {
1540
+ };
1541
+ ToolBarComponent.ctorParameters = function () { return [
1542
+ { type: exports.ɵbo }
1060
1543
  ]; };
1061
1544
  __decorate([
1062
- core.Input(),
1063
- __metadata("design:type", String)
1064
- ], MoreMenuComponent.prototype, "tooltip", void 0);
1065
- MoreMenuComponent = MoreMenuComponent_1 = __decorate([
1545
+ pectin.Trace(),
1546
+ __metadata("design:type", Function),
1547
+ __metadata("design:paramtypes", []),
1548
+ __metadata("design:returntype", void 0)
1549
+ ], ToolBarComponent.prototype, "ngOnInit", null);
1550
+ __decorate([
1551
+ pectin.Trace(),
1552
+ __metadata("design:type", Function),
1553
+ __metadata("design:paramtypes", []),
1554
+ __metadata("design:returntype", void 0)
1555
+ ], ToolBarComponent.prototype, "ngAfterContentInit", null);
1556
+ __decorate([
1557
+ pectin.Trace(),
1558
+ __metadata("design:type", Function),
1559
+ __metadata("design:paramtypes", []),
1560
+ __metadata("design:returntype", void 0)
1561
+ ], ToolBarComponent.prototype, "ngAfterViewInit", null);
1562
+ ToolBarComponent = __decorate([
1066
1563
  core.Component({
1067
- selector: 'aup-more-menu',
1068
- template: "\n <!-- we can only render the button after th popup menu has initialised and rendered it's menu component -->\n <button *ngIf=\"matMenuComponent\" mat-icon-button [matMenuTriggerFor]=\"matMenuComponent\" [matTooltip]=\"tooltip\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <aup-popup-menu-renderer [commandRegistrations]=\"commandRegistrations\"\n [xPosition]=\"xPosition\"\n [yPosition]=\"yPosition\"\n (commandExecuted)=\"closeMenu()\"></aup-popup-menu-renderer>\n ",
1069
- providers: [{ provide: CommandContainer, useExisting: core.forwardRef(function () { return MoreMenuComponent_1; }) }]
1564
+ selector: 'aup-tool-bar',
1565
+ template: '<aup-command-group-renderer [renderRootNode]="false" [groupViewDataModel]="group.rootTemplate"></aup-command-group-renderer>',
1566
+ providers: [{ provide: exports.ɵbo, useFactory: ɵ0$2 }],
1567
+ styles: [":host{display:inline-flex;flex-direction:row;align-items:center}:host mat-divider{-ms-grid-row-align:stretch;align-self:stretch;margin:4px 0}:host span.flex{flex:1}:host>*+*{margin-left:8px}"]
1070
1568
  }),
1071
- __metadata("design:paramtypes", [core.ChangeDetectorRef])
1072
- ], MoreMenuComponent);
1073
- return MoreMenuComponent;
1074
- }(AbstractPopupMenuComponent));
1569
+ __metadata("design:paramtypes", [exports.ɵbo])
1570
+ ], ToolBarComponent);
1571
+ return ToolBarComponent;
1572
+ }(DisposableComponent));
1075
1573
 
1076
1574
  var FocusContainerComponent = /** @class */ (function (_super) {
1077
1575
  __extends(FocusContainerComponent, _super);
@@ -2358,7 +2856,7 @@
2358
2856
 
2359
2857
  var noop = function () {
2360
2858
  };
2361
- var ɵ0 = noop;
2859
+ var ɵ0$3 = noop;
2362
2860
  var CELL_RENDERER_COMPONENT_ROW_CACHE = Symbol("aup-cell-renderer:row-data-cache");
2363
2861
  var ColumnModel = /** @class */ (function () {
2364
2862
  function ColumnModel(columnId, defaults) {
@@ -2856,12 +3354,14 @@
2856
3354
  }
2857
3355
  return column;
2858
3356
  };
3357
+ // removeColumn(column: ColumnModel<Row>) {
3358
+ //
3359
+ // }
2859
3360
  TableModel.prototype.columnTextProperties = function (columnTextProperties) {
2860
3361
  this._columnTextPropertiesLookup = columnTextProperties;
2861
3362
  };
2862
3363
  TableModel.prototype.getColumnTextProperties = function (column) {
2863
- var factory = this._columnTextPropertiesLookup ? this._columnTextPropertiesLookup[column.columnId] : undefined;
2864
- return factory ? factory() : undefined;
3364
+ return this._columnTextPropertiesLookup ? this._columnTextPropertiesLookup[column.columnId] : undefined;
2865
3365
  };
2866
3366
  TableModel.prototype.startEditSession = function (row) {
2867
3367
  var _this = this;
@@ -3162,15 +3662,13 @@
3162
3662
  return TableHeaderCellRendererComponent;
3163
3663
  }());
3164
3664
 
3165
- var MenuItemData = /** @class */ (function (_super) {
3166
- __extends(MenuItemData, _super);
3665
+ var MenuItemData = /** @class */ (function () {
3167
3666
  function MenuItemData(factory, face) {
3168
- var _this = _super.call(this, face) || this;
3169
- _this.factory = factory;
3170
- return _this;
3667
+ this.factory = factory;
3668
+ this.face = face;
3171
3669
  }
3172
3670
  return MenuItemData;
3173
- }(exports.CommandFace.Adapter));
3671
+ }());
3174
3672
  /**
3175
3673
  *
3176
3674
  */
@@ -3213,7 +3711,7 @@
3213
3711
  TableRowMenuComponent = __decorate([
3214
3712
  core.Component({
3215
3713
  selector: 'aup-table-row-menu',
3216
- template: "\n <button mat-icon-button *ngFor=\"let action of actions\" [pectinCommand]=\"action.factory.create(value)\">\n <aup-icon [icon]=\"action.icon\"></aup-icon>\n </button>\n <ng-container *ngIf=\"moreActions.length > 0\">\n <button #trigger mat-icon-button [matMenuTriggerFor]=\"menu\">\n <aup-icon icon=\"mat:more_vert\"></aup-icon>\n </button>\n <mat-menu #menu=\"matMenu\" xPosition=\"before\" matTooltip=\"More options...\">\n <button *ngFor=\"let action of moreActions\"\n mat-menu-item\n [pectinCommand]=\"createMoreMenuCommand(action, value)\"\n >\n <aup-icon *ngIf=\"action.icon && action.iconPositionStart\" [icon]=\"action.icon\"></aup-icon>\n {{action.text}}\n <aup-icon *ngIf=\"action.icon && action.iconPositionEnd\" [icon]=\"action.icon\"></aup-icon>\n </button>\n </mat-menu>\n </ng-container>\n ",
3714
+ template: "\n <aup-tool-bar>\n <aup-command *ngFor=\"let action of actions\" [command]=\"action.factory.create(value)\"\n [face]=\"action.faceModel\"></aup-command>\n </aup-tool-bar>\n <ng-container *ngIf=\"moreActions.length > 0\">\n <aup-more-menu>\n <aup-command *ngFor=\"let action of moreActions\" [command]=\"action.factory.create(value)\"\n [face]=\"action.faceModel\"></aup-command>\n </aup-more-menu>\n </ng-container>\n ",
3217
3715
  styles: [":host {\n display: inline-flex;\n flex-direction: row;\n align-items: center;\n }"]
3218
3716
  }),
3219
3717
  __metadata("design:paramtypes", [])
@@ -3348,13 +3846,16 @@
3348
3846
  exports.ɵbk,
3349
3847
  SectionHeaderComponent,
3350
3848
  TableRowMenuComponent,
3351
- CommandBarComponent,
3849
+ ToolBarComponent,
3352
3850
  CommandComponent,
3353
3851
  PopupMenuComponent,
3852
+ CommandGroupComponent,
3354
3853
  CommandFaceComponent,
3355
- AbstractPopupMenuComponent,
3356
- PopupMenuRendererComponent,
3357
- MoreMenuComponent
3854
+ MoreMenuComponent,
3855
+ SeparatorComponent,
3856
+ FlexComponent,
3857
+ CommandGroupMenuRendererComponent,
3858
+ CommandGroupRendererComponent
3358
3859
  ],
3359
3860
  imports: [
3360
3861
  common.CommonModule,
@@ -3374,8 +3875,8 @@
3374
3875
  angularFontawesome.FontAwesomeModule,
3375
3876
  tooltip.MatTooltipModule,
3376
3877
  autocomplete.MatAutocompleteModule,
3377
- menu._MatMenuDirectivesModule,
3378
- menu.MatMenuModule
3878
+ menu.MatMenuModule,
3879
+ divider.MatDividerModule
3379
3880
  ],
3380
3881
  exports: [
3381
3882
  NumberInputComponent,
@@ -3401,28 +3902,17 @@
3401
3902
  exports.ɵbk,
3402
3903
  SectionHeaderComponent,
3403
3904
  TableRowMenuComponent,
3404
- CommandBarComponent,
3905
+ CommandGroupComponent,
3906
+ ToolBarComponent,
3405
3907
  CommandComponent,
3406
- AbstractPopupMenuComponent,
3407
3908
  PopupMenuComponent,
3408
3909
  CommandFaceComponent,
3409
- PopupMenuRendererComponent,
3410
- MoreMenuComponent
3910
+ MoreMenuComponent,
3911
+ SeparatorComponent,
3912
+ FlexComponent
3411
3913
  ],
3412
3914
  providers: [
3413
3915
  FocusBindingFactory
3414
- // {
3415
- // provide: CELL_EDITOR_REGISTRATION, useValue: {
3416
- // type: 'string',
3417
- // editorClass: StringInputComponent
3418
- // }, multi: true
3419
- // },
3420
- // {
3421
- // provide: CELL_EDITOR_REGISTRATION, useValue: {
3422
- // type: 'number',
3423
- // editorClass: NumberInputComponent
3424
- // }, multi: true
3425
- // }
3426
3916
  ]
3427
3917
  }),
3428
3918
  __metadata("design:paramtypes", [angularFontawesome.FaIconLibrary])
@@ -4108,7 +4598,7 @@
4108
4598
  }());
4109
4599
 
4110
4600
  var inplaceMonitorCount = 0;
4111
- exports.ɵcf = /** @class */ (function () {
4601
+ exports.ɵci = /** @class */ (function () {
4112
4602
  function InteractionService(modelInteractionContextFactory) {
4113
4603
  this.modelInteractionContextFactory = modelInteractionContextFactory;
4114
4604
  this.garbage = new pectin.GarbageCollector();
@@ -4253,7 +4743,7 @@
4253
4743
  return ApiAdapter;
4254
4744
  }());
4255
4745
  InteractionService.ApiAdapter = ApiAdapter;
4256
- })(exports.ɵcf || (exports.ɵcf = {}));
4746
+ })(exports.ɵci || (exports.ɵci = {}));
4257
4747
 
4258
4748
  var InPlaceInteractionContextComponent = /** @class */ (function (_super) {
4259
4749
  __extends(InPlaceInteractionContextComponent, _super);
@@ -4311,7 +4801,7 @@
4311
4801
  return this.activityContainerComponent.startActivity(activityType, data, options);
4312
4802
  };
4313
4803
  InPlaceInteractionContextComponent.ctorParameters = function () { return [
4314
- { type: exports.ɵcf },
4804
+ { type: exports.ɵci },
4315
4805
  { type: undefined, decorators: [{ type: core.Inject, args: [tabs.MAT_TABS_CONFIG,] }, { type: core.Optional }] }
4316
4806
  ]; };
4317
4807
  __decorate([
@@ -4329,7 +4819,7 @@
4329
4819
  styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}"]
4330
4820
  }),
4331
4821
  __param(1, core.Inject(tabs.MAT_TABS_CONFIG)), __param(1, core.Optional()),
4332
- __metadata("design:paramtypes", [exports.ɵcf, Object])
4822
+ __metadata("design:paramtypes", [exports.ɵci, Object])
4333
4823
  ], InPlaceInteractionContextComponent);
4334
4824
  return InPlaceInteractionContextComponent;
4335
4825
  }(DisposableComponent));
@@ -4868,7 +5358,7 @@
4868
5358
  AlertDialogComponent
4869
5359
  ],
4870
5360
  providers: [
4871
- exports.ɵcf
5361
+ exports.ɵci
4872
5362
  // {
4873
5363
  // provide: MAT_TABS_CONFIG, useValue: { animationDuration: "2s" }
4874
5364
  // }
@@ -6006,7 +6496,7 @@
6006
6496
  return PopStateNavigation;
6007
6497
  }(AbstractPopStateNavigation));
6008
6498
 
6009
- exports.ɵci = /** @class */ (function () {
6499
+ exports.ɵcl = /** @class */ (function () {
6010
6500
  function PlaceHistory() {
6011
6501
  this._archive = new Map();
6012
6502
  this.placeHistoryDepth = 4;
@@ -6143,7 +6633,7 @@
6143
6633
  // }
6144
6634
  //
6145
6635
  // }
6146
- })(exports.ɵci || (exports.ɵci = {}));
6636
+ })(exports.ɵcl || (exports.ɵcl = {}));
6147
6637
 
6148
6638
  exports.UrlSnapshot = /** @class */ (function () {
6149
6639
  // TODO: Update this accept a url Parser so it can be immutable and generate new trees on mutation using toString() are parseUrl.
@@ -6598,20 +7088,20 @@
6598
7088
  PlaceRouter.ctorParameters = function () { return [
6599
7089
  { type: router.Router },
6600
7090
  { type: common.Location },
6601
- { type: exports.ɵcf },
7091
+ { type: exports.ɵci },
6602
7092
  { type: UrlService },
6603
- { type: exports.ɵci }
7093
+ { type: exports.ɵcl }
6604
7094
  ]; };
6605
- PlaceRouter.ɵprov = core.ɵɵdefineInjectable({ factory: function PlaceRouter_Factory() { return new PlaceRouter(core.ɵɵinject(router.Router), core.ɵɵinject(common.Location), core.ɵɵinject(exports.ɵcf), core.ɵɵinject(UrlService), core.ɵɵinject(exports.ɵci)); }, token: PlaceRouter, providedIn: "root" });
7095
+ PlaceRouter.ɵprov = core.ɵɵdefineInjectable({ factory: function PlaceRouter_Factory() { return new PlaceRouter(core.ɵɵinject(router.Router), core.ɵɵinject(common.Location), core.ɵɵinject(exports.ɵci), core.ɵɵinject(UrlService), core.ɵɵinject(exports.ɵcl)); }, token: PlaceRouter, providedIn: "root" });
6606
7096
  PlaceRouter = __decorate([
6607
7097
  core.Injectable({
6608
7098
  providedIn: 'root'
6609
7099
  }),
6610
7100
  __metadata("design:paramtypes", [router.Router,
6611
7101
  common.Location,
6612
- exports.ɵcf,
7102
+ exports.ɵci,
6613
7103
  UrlService,
6614
- exports.ɵci])
7104
+ exports.ɵcl])
6615
7105
  ], PlaceRouter);
6616
7106
  return PlaceRouter;
6617
7107
  }(pectin.GarbageCollector));
@@ -6985,10 +7475,10 @@
6985
7475
  _this.activePlaceDefinition = chain(_this._activePlaceComponent).pluck('placeDefinition');
6986
7476
  return _this;
6987
7477
  }
6988
- AbstractPlaceNavigationComponent.prototype.getNav = function (placeDef) {
7478
+ AbstractPlaceNavigationComponent.prototype.getNavigationFace = function (placeDef) {
6989
7479
  var navItem = placeDef.getPlaceData('nav');
6990
7480
  return {
6991
- title: function () { return navItem ? navItem.title() : placeDef.searchPlaceData(['navTitle', 'title']); },
7481
+ text: function () { return navItem ? navItem.title() : placeDef.searchPlaceData(['navTitle', 'title']); },
6992
7482
  tooltip: function () { return navItem && navItem.tooltip ? navItem.tooltip() : placeDef.getPlaceData('navTooltip', null); },
6993
7483
  icon: function () { return navItem && navItem.icon ? navItem.icon() : placeDef.getPlaceData('navIcon', null); }
6994
7484
  };
@@ -7022,7 +7512,7 @@
7022
7512
  __metadata("design:type", Function),
7023
7513
  __metadata("design:paramtypes", [PlaceDefinition]),
7024
7514
  __metadata("design:returntype", Object)
7025
- ], AbstractPlaceNavigationComponent.prototype, "getNav", null);
7515
+ ], AbstractPlaceNavigationComponent.prototype, "getNavigationFace", null);
7026
7516
  AbstractPlaceNavigationComponent = __decorate([
7027
7517
  core.Component({
7028
7518
  template: ''
@@ -7083,7 +7573,7 @@
7083
7573
  ListPlaceNavComponent = __decorate([
7084
7574
  core.Component({
7085
7575
  selector: 'aup-list-place-nav',
7086
- template: "<mat-nav-list fxFlex>\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>{{getNav(placeDefinition).title()}}</span>\n </a>\n</mat-nav-list>\n",
7576
+ template: "<mat-nav-list fxFlex>\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-command-face [face]=\"getNavigationFace(placeDefinition)\"></aup-command-face>\n </a>\n</mat-nav-list>\n",
7087
7577
  styles: [":host{display:flex;flex-direction:column;--selected-border-color:#838383;--selected-color:inherit;--selected-background:#f1f1f1}mat-nav-list{padding-top:0}a.active{border-right:2px solid var(--selected-border-color);background:var(--selected-background);color:var(--selected-color)}"]
7088
7578
  }),
7089
7579
  __metadata("design:paramtypes", [PlaceRouter])
@@ -7091,25 +7581,6 @@
7091
7581
  return ListPlaceNavComponent;
7092
7582
  }(AbstractPlaceNavigationComponent));
7093
7583
 
7094
- var TabbedPlaceNavigationComponent = /** @class */ (function (_super) {
7095
- __extends(TabbedPlaceNavigationComponent, _super);
7096
- function TabbedPlaceNavigationComponent(placeRouter) {
7097
- return _super.call(this, placeRouter) || this;
7098
- }
7099
- TabbedPlaceNavigationComponent.ctorParameters = function () { return [
7100
- { type: PlaceRouter }
7101
- ]; };
7102
- TabbedPlaceNavigationComponent = __decorate([
7103
- core.Component({
7104
- selector: 'aup-tabbed-place-navigation',
7105
- 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",
7106
- styles: [""]
7107
- }),
7108
- __metadata("design:paramtypes", [PlaceRouter])
7109
- ], TabbedPlaceNavigationComponent);
7110
- return TabbedPlaceNavigationComponent;
7111
- }(AbstractPlaceNavigationComponent));
7112
-
7113
7584
  /**
7114
7585
  * @example
7115
7586
  * // Usage
@@ -7148,7 +7619,7 @@
7148
7619
  * (at)Place({
7149
7620
  * path: 'myPlace',
7150
7621
  * data: {
7151
- * nav: I18n.places.myPlace.nav()
7622
+ * nav: I18n.places.myPlace.nav
7152
7623
  * }
7153
7624
  * })
7154
7625
  */
@@ -7184,7 +7655,7 @@
7184
7655
  SidePlaceNavigationComponent = __decorate([
7185
7656
  core.Component({
7186
7657
  selector: 'aup-side-place-navigation',
7187
- 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",
7658
+ 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",
7188
7659
  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)}"]
7189
7660
  }),
7190
7661
  __metadata("design:paramtypes", [router.Router, PlaceRouter])
@@ -7192,6 +7663,25 @@
7192
7663
  return SidePlaceNavigationComponent;
7193
7664
  }(AbstractPlaceNavigationComponent));
7194
7665
 
7666
+ var TabbedPlaceNavigationComponent = /** @class */ (function (_super) {
7667
+ __extends(TabbedPlaceNavigationComponent, _super);
7668
+ function TabbedPlaceNavigationComponent(placeRouter) {
7669
+ return _super.call(this, placeRouter) || this;
7670
+ }
7671
+ TabbedPlaceNavigationComponent.ctorParameters = function () { return [
7672
+ { type: PlaceRouter }
7673
+ ]; };
7674
+ TabbedPlaceNavigationComponent = __decorate([
7675
+ core.Component({
7676
+ selector: 'aup-tabbed-place-navigation',
7677
+ 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",
7678
+ styles: [""]
7679
+ }),
7680
+ __metadata("design:paramtypes", [PlaceRouter])
7681
+ ], TabbedPlaceNavigationComponent);
7682
+ return TabbedPlaceNavigationComponent;
7683
+ }(AbstractPlaceNavigationComponent));
7684
+
7195
7685
  var PlaceModule = /** @class */ (function () {
7196
7686
  function PlaceModule() {
7197
7687
  }
@@ -7800,7 +8290,6 @@
7800
8290
  exports.AbstractListInputComponent = AbstractListInputComponent;
7801
8291
  exports.AbstractPlaceNavigationComponent = AbstractPlaceNavigationComponent;
7802
8292
  exports.AbstractPopStateNavigation = AbstractPopStateNavigation;
7803
- exports.AbstractPopupMenuComponent = AbstractPopupMenuComponent;
7804
8293
  exports.AbstractValueInputComponent = AbstractValueInputComponent;
7805
8294
  exports.Activity = Activity;
7806
8295
  exports.ActivityActionsComponent = ActivityActionsComponent;
@@ -7822,11 +8311,13 @@
7822
8311
  exports.CheckboxInputComponent = CheckboxInputComponent;
7823
8312
  exports.ColumnModel = ColumnModel;
7824
8313
  exports.ColumnTemplateDirective = ColumnTemplateDirective;
7825
- exports.CommandBarComponent = CommandBarComponent;
7826
8314
  exports.CommandComponent = CommandComponent;
7827
- exports.CommandContainer = CommandContainer;
7828
8315
  exports.CommandDirective = CommandDirective;
7829
8316
  exports.CommandFaceComponent = CommandFaceComponent;
8317
+ exports.CommandGroup = exports.ɵbo;
8318
+ exports.CommandGroupComponent = CommandGroupComponent;
8319
+ exports.CommandGroupMenuRendererComponent = CommandGroupMenuRendererComponent;
8320
+ exports.CommandGroupRendererComponent = CommandGroupRendererComponent;
7830
8321
  exports.ComponentCellRendererPortalRef = ComponentCellRendererPortalRef;
7831
8322
  exports.ComponentsModule = ComponentsModule;
7832
8323
  exports.ConfirmThenDialogComponent = ConfirmThenDialogComponent;
@@ -7848,6 +8339,7 @@
7848
8339
  exports.EditorControlColumnModel = EditorControlColumnModel;
7849
8340
  exports.EmptyStateComponent = EmptyStateComponent;
7850
8341
  exports.EventCleanUpSession = EventCleanUpSession;
8342
+ exports.FlexComponent = FlexComponent;
7851
8343
  exports.FocusBinding = FocusBinding;
7852
8344
  exports.FocusBindingDirective = FocusBindingDirective;
7853
8345
  exports.FocusBindingFactory = FocusBindingFactory;
@@ -7858,7 +8350,7 @@
7858
8350
  exports.InPlaceInteractionContextComponent = InPlaceInteractionContextComponent;
7859
8351
  exports.InteractionContextTriggerFor = InteractionContextTriggerFor;
7860
8352
  exports.InteractionModule = InteractionModule;
7861
- exports.InteractionService = exports.ɵcf;
8353
+ exports.InteractionService = exports.ɵci;
7862
8354
  exports.InteractionServiceRoutingAdapter = InteractionServiceRoutingAdapter;
7863
8355
  exports.LEFT_RIGHT_PLACE_ANIMATION = LEFT_RIGHT_PLACE_ANIMATION;
7864
8356
  exports.ListPlaceNavComponent = ListPlaceNavComponent;
@@ -7879,7 +8371,7 @@
7879
8371
  exports.PlaceComponentDeactivationHandler = PlaceComponentDeactivationHandler;
7880
8372
  exports.PlaceDefinition = PlaceDefinition;
7881
8373
  exports.PlaceGuard = PlaceGuard;
7882
- exports.PlaceHistory = exports.ɵci;
8374
+ exports.PlaceHistory = exports.ɵcl;
7883
8375
  exports.PlaceModule = PlaceModule;
7884
8376
  exports.PlaceOutletComponent = PlaceOutletComponent;
7885
8377
  exports.PlaceRouter = PlaceRouter;
@@ -7888,7 +8380,6 @@
7888
8380
  exports.PopStateNavigation = PopStateNavigation;
7889
8381
  exports.PopupInteractionContextComponent = PopupInteractionContextComponent;
7890
8382
  exports.PopupMenuComponent = PopupMenuComponent;
7891
- exports.PopupMenuRendererComponent = PopupMenuRendererComponent;
7892
8383
  exports.PropertyColumnModel = PropertyColumnModel;
7893
8384
  exports.ROUTE_PARAMETER_LIST_KEY = ROUTE_PARAMETER_LIST_KEY;
7894
8385
  exports.RemoveLastInteractionFromUrlNavigationSession = RemoveLastInteractionFromUrlNavigationSession;
@@ -7901,6 +8392,7 @@
7901
8392
  exports.SelectInputActivity = SelectInputActivity;
7902
8393
  exports.SelectInputComponent = SelectInputComponent;
7903
8394
  exports.SelectionColumnModel = SelectionColumnModel;
8395
+ exports.SeparatorComponent = SeparatorComponent;
7904
8396
  exports.SidePlaceNavigationComponent = SidePlaceNavigationComponent;
7905
8397
  exports.StringInputActivity = StringInputActivity;
7906
8398
  exports.StringInputComponent = StringInputComponent;
@@ -7917,6 +8409,7 @@
7917
8409
  exports.TableRowMenuComponent = TableRowMenuComponent;
7918
8410
  exports.TemplateCellRendererPortalRef = TemplateCellRendererPortalRef;
7919
8411
  exports.TextInputComponent = TextInputComponent;
8412
+ exports.ToolBarComponent = ToolBarComponent;
7920
8413
  exports.UrlService = UrlService;
7921
8414
  exports.VerticalFocusContainerComponent = VerticalFocusContainerComponent;
7922
8415
  exports.Visit = Visit;
@@ -7944,48 +8437,50 @@
7944
8437
  exports.ɵbj = TableHeaderCellRendererComponent;
7945
8438
  exports.ɵbl = SectionHeaderComponent;
7946
8439
  exports.ɵbm = TableRowMenuComponent;
7947
- exports.ɵbn = CommandBarComponent;
7948
- exports.ɵbo = CommandContainer;
8440
+ exports.ɵbn = ToolBarComponent;
7949
8441
  exports.ɵbp = CommandComponent;
7950
8442
  exports.ɵbq = PopupMenuComponent;
7951
- exports.ɵbr = AbstractPopupMenuComponent;
7952
- exports.ɵbs = PopupMenuRendererComponent;
7953
- exports.ɵbt = CommandFaceComponent;
7954
- exports.ɵbu = MoreMenuComponent;
7955
- exports.ɵbv = PlaceModule;
7956
- exports.ɵbw = ComponentsModule;
7957
- exports.ɵbx = EmptyStateComponent;
7958
- exports.ɵby = BusyOverlayComponent;
7959
- exports.ɵbz = PlaceOutletComponent;
8443
+ exports.ɵbr = CommandGroupComponent;
8444
+ exports.ɵbs = CommandFaceComponent;
8445
+ exports.ɵbt = MoreMenuComponent;
8446
+ exports.ɵbu = SeparatorComponent;
8447
+ exports.ɵbv = FlexComponent;
8448
+ exports.ɵbw = CommandGroupMenuRendererComponent;
8449
+ exports.ɵbx = CommandGroupRendererComponent;
8450
+ exports.ɵby = PlaceModule;
8451
+ exports.ɵbz = ComponentsModule;
7960
8452
  exports.ɵc = FocusBindingDirective;
7961
- exports.ɵca = leftRightPlaceAnimation;
7962
- exports.ɵcb = LEFT_RIGHT_PLACE_ANIMATION;
7963
- exports.ɵcc = AUP_PLACE_CONFIG;
7964
- exports.ɵce = PlaceRouter;
7965
- exports.ɵcg = ModalInteractionContextFactory;
7966
- exports.ɵch = UrlService;
7967
- exports.ɵcj = TabbedPlaceNavigationComponent;
7968
- exports.ɵck = AbstractPlaceNavigationComponent;
7969
- exports.ɵcl = ListPlaceNavComponent;
7970
- exports.ɵcm = SidePlaceNavigationComponent;
7971
- exports.ɵcn = InteractionModule;
7972
- exports.ɵco = ActivityContainerComponent;
7973
- exports.ɵcp = AbstractInteractionContext;
7974
- exports.ɵcq = ActivityOutletComponent;
7975
- exports.ɵcr = ConfirmationDialogComponent;
7976
- exports.ɵcs = ACTIVITY_DATA;
7977
- exports.ɵct = Activity;
7978
- exports.ɵcv = ConfirmThenDialogComponent;
7979
- exports.ɵcw = AlertDialogComponent;
7980
- exports.ɵcy = InPlaceInteractionContextComponent;
7981
- exports.ɵcz = AddItemInteractionContextComponent;
8453
+ exports.ɵca = EmptyStateComponent;
8454
+ exports.ɵcb = BusyOverlayComponent;
8455
+ exports.ɵcc = PlaceOutletComponent;
8456
+ exports.ɵcd = leftRightPlaceAnimation;
8457
+ exports.ɵce = LEFT_RIGHT_PLACE_ANIMATION;
8458
+ exports.ɵcf = AUP_PLACE_CONFIG;
8459
+ exports.ɵch = PlaceRouter;
8460
+ exports.ɵcj = ModalInteractionContextFactory;
8461
+ exports.ɵck = UrlService;
8462
+ exports.ɵcm = TabbedPlaceNavigationComponent;
8463
+ exports.ɵcn = AbstractPlaceNavigationComponent;
8464
+ exports.ɵco = ListPlaceNavComponent;
8465
+ exports.ɵcp = SidePlaceNavigationComponent;
8466
+ exports.ɵcq = InteractionModule;
8467
+ exports.ɵcr = ActivityContainerComponent;
8468
+ exports.ɵcs = AbstractInteractionContext;
8469
+ exports.ɵct = ActivityOutletComponent;
8470
+ exports.ɵcu = ConfirmationDialogComponent;
8471
+ exports.ɵcv = ACTIVITY_DATA;
8472
+ exports.ɵcw = Activity;
8473
+ exports.ɵcy = ConfirmThenDialogComponent;
8474
+ exports.ɵcz = AlertDialogComponent;
7982
8475
  exports.ɵd = DisposableComponent;
7983
- exports.ɵda = ActivityActionsComponent;
7984
- exports.ɵdb = PopupInteractionContextComponent;
7985
- exports.ɵdc = StringInputActivity;
7986
- exports.ɵdd = AbstractInputActivity;
7987
- exports.ɵde = SelectInputActivity;
7988
- exports.ɵdf = InteractionContextTriggerFor;
8476
+ exports.ɵdb = InPlaceInteractionContextComponent;
8477
+ exports.ɵdc = AddItemInteractionContextComponent;
8478
+ exports.ɵdd = ActivityActionsComponent;
8479
+ exports.ɵde = PopupInteractionContextComponent;
8480
+ exports.ɵdf = StringInputActivity;
8481
+ exports.ɵdg = AbstractInputActivity;
8482
+ exports.ɵdh = SelectInputActivity;
8483
+ exports.ɵdi = InteractionContextTriggerFor;
7989
8484
  exports.ɵe = FocusBindingFactory;
7990
8485
  exports.ɵf = ComponentsModule;
7991
8486
  exports.ɵg = AbstractInputComponent;