@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,6 +1,6 @@
1
1
  import { __decorate, __metadata, __param, __awaiter } from 'tslib';
2
2
  import { DOCUMENT, CommonModule, Location } from '@angular/common';
3
- import { ElementRef, Inject, Input, HostListener, Directive, NgZone, ɵɵdefineInjectable, ɵɵinject, Injectable, NgModule, ContentChild, TemplateRef, Component, forwardRef, Optional, HostBinding, ViewEncapsulation, EventEmitter, Output, ViewChild, ChangeDetectorRef, Self, ContentChildren, QueryList, ViewContainerRef, InjectionToken, Injector, ComponentFactoryResolver, ViewChildren, SkipSelf } from '@angular/core';
3
+ import { ElementRef, Inject, Input, HostListener, Directive, NgZone, ɵɵdefineInjectable, ɵɵinject, Injectable, NgModule, ContentChild, TemplateRef, Component, EventEmitter, Optional, SkipSelf, ViewChild, Output, ViewChildren, QueryList, HostBinding, ViewEncapsulation, Self, ChangeDetectorRef, ContentChildren, ViewContainerRef, InjectionToken, Injector, ComponentFactoryResolver } from '@angular/core';
4
4
  import { FormsModule } from '@angular/forms';
5
5
  import { MatFormFieldModule } from '@angular/material/form-field';
6
6
  import { MatInputModule } from '@angular/material/input';
@@ -12,13 +12,14 @@ import { CdkScrollableModule } from '@angular/cdk/scrolling';
12
12
  import { MatAutocompleteModule } from '@angular/material/autocomplete';
13
13
  import { MatButtonModule } from '@angular/material/button';
14
14
  import { MatCheckboxModule } from '@angular/material/checkbox';
15
+ import { MatDividerModule } from '@angular/material/divider';
15
16
  import { MatIconModule } from '@angular/material/icon';
16
- import { MatMenu, MatMenuTrigger, _MatMenuDirectivesModule, MatMenuModule } from '@angular/material/menu';
17
+ import { MatMenu, MatMenuTrigger, MatMenuModule } from '@angular/material/menu';
17
18
  import { MatTableModule } from '@angular/material/table';
18
19
  import { MatTooltipModule } from '@angular/material/tooltip';
19
20
  import { FaIconLibrary, FontAwesomeModule } from '@fortawesome/angular-fontawesome';
20
21
  import { fas } from '@fortawesome/free-solid-svg-icons';
21
- import { GarbageCollector, DelegatingValueModel, assert, UnaryCommand, lang, Dsl, Logger, TrackExternal, Command, MutableListModel, Disposable, MutableValueModel, StoreInValueModel, ListModel, FocusManager, EventListenerList, Form, Guard, Binding, DebugContext, StoreInListModel, ValueModel, MultipleSelectionModel, DirtyTrackingForm, DelegatingCommand, Deferred, Trace, Functions } from '@coolon/pectin';
22
+ import { GarbageCollector, DelegatingValueModel, assert, UnaryCommand, lang, Dsl, Logger, TrackExternal, Command, MutableValueModel, StoreInValueModel, ValueModel, MutableListModel, Trace, FocusManager, EventListenerList, Form, Guard, Binding, DebugContext, ListModel, StoreInListModel, MultipleSelectionModel, DirtyTrackingForm, DelegatingCommand, Deferred, Functions } from '@coolon/pectin';
22
23
  import { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';
23
24
  import ___default, { isEqual, isNil } from 'lodash';
24
25
  import { Enum } from 'typescript-string-enums';
@@ -29,8 +30,8 @@ import { MatDialogModule, MatDialog, MatDialogConfig, MAT_DIALOG_DEFAULT_OPTIONS
29
30
  import { RouterModule, UrlSegment, Router, UrlSerializer, NavigationStart, NavigationEnd, NavigationError, NavigationCancel, RouterOutlet } from '@angular/router';
30
31
  import { Overlay, CdkScrollable } from '@angular/cdk/overlay';
31
32
  import ResizeObserver from 'resize-observer-polyfill';
32
- import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
33
33
  import { MatListModule } from '@angular/material/list';
34
+ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
34
35
  import { Memoize as Memoize$1 } from '@typescript-plus/fast-memoize-decorator';
35
36
  import 'reflect-metadata';
36
37
  import { style, query, group, animate, trigger, transition } from '@angular/animations';
@@ -372,11 +373,16 @@ CardContainerComponent = __decorate([
372
373
  Component({
373
374
  selector: 'aup-card-container',
374
375
  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",
375
- 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}"]
376
+ 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}"]
376
377
  }),
377
378
  __metadata("design:paramtypes", [])
378
379
  ], CardContainerComponent);
379
380
 
381
+ var TrackBy;
382
+ (function (TrackBy) {
383
+ TrackBy.byIndex = (data, index) => index;
384
+ })(TrackBy || (TrackBy = {}));
385
+
380
386
  var CommandFace;
381
387
  (function (CommandFace) {
382
388
  let Position;
@@ -384,6 +390,31 @@ var CommandFace;
384
390
  Position["START"] = "start";
385
391
  Position["END"] = "end";
386
392
  })(Position = CommandFace.Position || (CommandFace.Position = {}));
393
+ CommandFace.Style = Enum({
394
+ FLAT: 'flat',
395
+ STROKED: 'stroked',
396
+ RAISED: 'raised'
397
+ });
398
+ function getColorOf(face) {
399
+ return ___default.isFunction(face === null || face === void 0 ? void 0 : face.color) ? face.color() : undefined;
400
+ }
401
+ CommandFace.getColorOf = getColorOf;
402
+ function getStyleOf(face) {
403
+ return ___default.isFunction(face === null || face === void 0 ? void 0 : face.style) ? face.style() : undefined;
404
+ }
405
+ CommandFace.getStyleOf = getStyleOf;
406
+ function getIconOf(face) {
407
+ return ___default.isFunction(face === null || face === void 0 ? void 0 : face.icon) ? face.icon() : undefined;
408
+ }
409
+ CommandFace.getIconOf = getIconOf;
410
+ function getTooltipOf(face) {
411
+ return ___default.isFunction(face === null || face === void 0 ? void 0 : face.tooltip) ? face.tooltip() : undefined;
412
+ }
413
+ CommandFace.getTooltipOf = getTooltipOf;
414
+ function getTextOf(face) {
415
+ return ___default.isFunction(face === null || face === void 0 ? void 0 : face.text) ? face.text() : undefined;
416
+ }
417
+ CommandFace.getTextOf = getTextOf;
387
418
  class Adapter {
388
419
  constructor(face) {
389
420
  this.face = face;
@@ -392,7 +423,7 @@ var CommandFace;
392
423
  return ___default.isFunction(this.face.text) ? this.face.text() : undefined;
393
424
  }
394
425
  get icon() {
395
- return ___default.isFunction(this.face.icon) ? this.face.icon() : undefined;
426
+ return CommandFace.getIconOf(this.face);
396
427
  }
397
428
  get iconPosition() {
398
429
  return ___default.isFunction(this.face.iconPosition) ? this.face.iconPosition() : undefined;
@@ -406,8 +437,11 @@ var CommandFace;
406
437
  get iconPositionEnd() {
407
438
  return this.iconPosition === CommandFace.Position.END;
408
439
  }
409
- get destructive() {
410
- return ___default.isFunction(this.face.destructive) ? this.face.destructive() : false;
440
+ get color() {
441
+ return CommandFace.getColorOf(this.face);
442
+ }
443
+ get style() {
444
+ return CommandFace.getStyleOf(this.face);
411
445
  }
412
446
  }
413
447
  __decorate([
@@ -442,84 +476,413 @@ var CommandFace;
442
476
  ], Adapter.prototype, "iconPositionEnd", null);
443
477
  __decorate([
444
478
  Memoize(),
445
- __metadata("design:type", Boolean),
479
+ __metadata("design:type", String),
446
480
  __metadata("design:paramtypes", [])
447
- ], Adapter.prototype, "destructive", null);
481
+ ], Adapter.prototype, "color", null);
482
+ __decorate([
483
+ Memoize(),
484
+ __metadata("design:type", String),
485
+ __metadata("design:paramtypes", [])
486
+ ], Adapter.prototype, "style", null);
448
487
  CommandFace.Adapter = Adapter;
449
488
  })(CommandFace || (CommandFace = {}));
450
489
 
451
- class CommandContainer extends GarbageCollector {
490
+ class ViewData {
491
+ }
492
+ (function (ViewData) {
493
+ class FaceData extends ViewData {
494
+ constructor(face) {
495
+ super();
496
+ this.faceAdapter = new CommandFace.Adapter(face);
497
+ }
498
+ }
499
+ ViewData.FaceData = FaceData;
500
+ class GroupData extends FaceData {
501
+ constructor(face, xPosition, yPosition, children) {
502
+ super(face);
503
+ this.xPosition = xPosition;
504
+ this.yPosition = yPosition;
505
+ this.children = children;
506
+ }
507
+ get hasMixedIcons() {
508
+ const hasFaces = this.children.filter(c => ViewData.hasFace(c));
509
+ const iconCount = hasFaces.filter(c => !!c.faceAdapter.icon).length;
510
+ return iconCount > 0 && hasFaces.length !== iconCount;
511
+ }
512
+ }
513
+ __decorate([
514
+ Memoize(),
515
+ __metadata("design:type", Boolean),
516
+ __metadata("design:paramtypes", [])
517
+ ], GroupData.prototype, "hasMixedIcons", null);
518
+ ViewData.GroupData = GroupData;
519
+ class CommandData extends FaceData {
520
+ constructor(face, command) {
521
+ super(face);
522
+ this.command = command;
523
+ }
524
+ }
525
+ ViewData.CommandData = CommandData;
526
+ class SeparatorData extends ViewData {
527
+ }
528
+ ViewData.SeparatorData = SeparatorData;
529
+ class FlexData extends ViewData {
530
+ }
531
+ ViewData.FlexData = FlexData;
532
+ function as(type, viewData) {
533
+ return viewData instanceof type ? viewData : lang.illegalState(`expected instance of ${type.name}, got ${viewData.constructor.name}`);
534
+ }
535
+ ViewData.as = as;
536
+ function getCommand(data) {
537
+ return as(CommandData, data).command;
538
+ }
539
+ ViewData.getCommand = getCommand;
540
+ function getTooltip(data) {
541
+ return as(FaceData, data).faceAdapter.tooltip;
542
+ }
543
+ ViewData.getTooltip = getTooltip;
544
+ function getStyle(data) {
545
+ return as(FaceData, data).faceAdapter.style;
546
+ }
547
+ ViewData.getStyle = getStyle;
548
+ function getColor(data) {
549
+ return as(FaceData, data).faceAdapter.color;
550
+ }
551
+ ViewData.getColor = getColor;
552
+ function hasText(data) {
553
+ return !!as(FaceData, data).faceAdapter.text;
554
+ }
555
+ ViewData.hasText = hasText;
556
+ function getFace(data) {
557
+ return as(FaceData, data).faceAdapter.face;
558
+ }
559
+ ViewData.getFace = getFace;
560
+ function asGroup(viewData) {
561
+ return as(GroupData, viewData);
562
+ }
563
+ ViewData.asGroup = asGroup;
564
+ function hasMixedIcons(data) {
565
+ return as(GroupData, data).hasMixedIcons;
566
+ }
567
+ ViewData.hasMixedIcons = hasMixedIcons;
568
+ function isGroup(data) {
569
+ return data instanceof GroupData;
570
+ }
571
+ ViewData.isGroup = isGroup;
572
+ function hasFace(data) {
573
+ return data instanceof FaceData;
574
+ }
575
+ ViewData.hasFace = hasFace;
576
+ function isCommand(data) {
577
+ return data instanceof CommandData;
578
+ }
579
+ ViewData.isCommand = isCommand;
580
+ function isSeparator(data) {
581
+ return data instanceof SeparatorData;
582
+ }
583
+ ViewData.isSeparator = isSeparator;
584
+ function isFlex(data) {
585
+ return data instanceof FlexData;
586
+ }
587
+ ViewData.isFlex = isFlex;
588
+ })(ViewData || (ViewData = {}));
589
+
590
+ let CommandGroupMenuRendererComponent = class CommandGroupMenuRendererComponent extends DisposableComponent {
591
+ constructor(parent) {
592
+ super();
593
+ this.parent = parent;
594
+ this.groupViewDataModel = new MutableValueModel();
595
+ this.commandFired = new EventEmitter();
596
+ this.ViewData = ViewData;
597
+ this.TrackBy = TrackBy;
598
+ const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
599
+ this.children = chain(this.groupViewDataModel).pluckList('children');
600
+ this.hasMixedIcons = chain(this.groupViewDataModel).pluck('hasMixedIcons');
601
+ }
602
+ getCommand(data) {
603
+ const command = ViewData.getCommand(data);
604
+ const { when } = Dsl.disposeWith(this);
605
+ when(command.busy).becomesFalsey(() => this.commandFired.emit());
606
+ return command;
607
+ }
608
+ };
609
+ CommandGroupMenuRendererComponent.ctorParameters = () => [
610
+ { type: CommandGroupMenuRendererComponent, decorators: [{ type: Optional }, { type: SkipSelf }] }
611
+ ];
612
+ __decorate([
613
+ ViewChild('menu', { static: true }),
614
+ __metadata("design:type", MatMenu)
615
+ ], CommandGroupMenuRendererComponent.prototype, "menuComponent", void 0);
616
+ __decorate([
617
+ Input(), StoreInValueModel('groupViewDataModel'),
618
+ __metadata("design:type", ViewData.GroupData)
619
+ ], CommandGroupMenuRendererComponent.prototype, "groupViewData", void 0);
620
+ __decorate([
621
+ Output(),
622
+ __metadata("design:type", Object)
623
+ ], CommandGroupMenuRendererComponent.prototype, "commandFired", void 0);
624
+ __decorate([
625
+ ViewChildren(MatMenuTrigger),
626
+ __metadata("design:type", QueryList)
627
+ ], CommandGroupMenuRendererComponent.prototype, "triggers", void 0);
628
+ CommandGroupMenuRendererComponent = __decorate([
629
+ Component({
630
+ selector: 'aup-command-group-menu',
631
+ 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"
632
+ }),
633
+ __param(0, Optional()), __param(0, SkipSelf()),
634
+ __metadata("design:paramtypes", [CommandGroupMenuRendererComponent])
635
+ ], CommandGroupMenuRendererComponent);
636
+
637
+ let CommandGroupRendererComponent = class CommandGroupRendererComponent extends DisposableComponent {
452
638
  constructor() {
453
639
  super();
454
- this._commandRegistrations = new MutableListModel();
640
+ this.renderRootNode = true;
641
+ this.ViewData = ViewData;
642
+ this.TrackBy = TrackBy;
643
+ const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
644
+ this.childViewDataModels = chain(this.groupViewDataModel).pluckList('children');
455
645
  }
456
- get commandRegistrations() {
457
- return this._commandRegistrations.readonly;
646
+ };
647
+ __decorate([
648
+ Input(), TrackExternal(),
649
+ __metadata("design:type", ValueModel)
650
+ ], CommandGroupRendererComponent.prototype, "groupViewDataModel", void 0);
651
+ __decorate([
652
+ Input(), StoreInValueModel('groupViewDataModel'),
653
+ __metadata("design:type", ViewData.GroupData)
654
+ ], CommandGroupRendererComponent.prototype, "groupViewData", void 0);
655
+ __decorate([
656
+ Input(),
657
+ HostBinding('class.render-root'),
658
+ __metadata("design:type", Object)
659
+ ], CommandGroupRendererComponent.prototype, "renderRootNode", void 0);
660
+ CommandGroupRendererComponent = __decorate([
661
+ Component({
662
+ selector: 'aup-command-group-renderer',
663
+ 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",
664
+ 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}"]
665
+ }),
666
+ __metadata("design:paramtypes", [])
667
+ ], CommandGroupRendererComponent);
668
+
669
+ class Registration extends GarbageCollector {
670
+ }
671
+ (function (Registration) {
672
+ class FaceRegistration extends Registration {
673
+ constructor(faceModel) {
674
+ super();
675
+ this.faceModel = faceModel;
676
+ }
458
677
  }
459
- registerCommand(command, face) {
460
- const registration = { command, faceAdapter: new CommandFace.Adapter(face) };
461
- this._commandRegistrations.push(registration);
462
- return Disposable.disposableThatRuns(() => this._commandRegistrations.remove(registration));
678
+ Registration.FaceRegistration = FaceRegistration;
679
+ class CommandRegistration extends FaceRegistration {
680
+ constructor(faceModel, command) {
681
+ super(faceModel);
682
+ this.command = command;
683
+ }
684
+ toTemplate() {
685
+ return new ViewData.CommandData(this.faceModel.value, this.command);
686
+ }
463
687
  }
464
- getDefaultIconPosition() {
465
- return CommandFace.Position.START;
688
+ Registration.CommandRegistration = CommandRegistration;
689
+ class GroupRegistration extends FaceRegistration {
690
+ constructor(faceModel, group) {
691
+ super(faceModel);
692
+ this.group = group;
693
+ }
694
+ toTemplate() {
695
+ return new ViewData.GroupData(this.faceModel.value, this.group.xPosition, this.group.yPosition, this.group.registrations.value.map(r => r.toTemplate()));
696
+ }
466
697
  }
467
- }
698
+ Registration.GroupRegistration = GroupRegistration;
699
+ class SeparatorRegistration extends Registration {
700
+ constructor() {
701
+ super(...arguments);
702
+ this.template = new ViewData.SeparatorData();
703
+ }
704
+ toTemplate() {
705
+ return this.template;
706
+ }
707
+ }
708
+ Registration.SeparatorRegistration = SeparatorRegistration;
709
+ class FlexRegistration extends Registration {
710
+ constructor() {
711
+ super(...arguments);
712
+ this.template = new ViewData.FlexData();
713
+ }
714
+ toTemplate() {
715
+ return this.template;
716
+ }
717
+ }
718
+ Registration.FlexRegistration = FlexRegistration;
719
+ function hasFace(entry) {
720
+ return entry instanceof CommandRegistration || entry instanceof GroupRegistration;
721
+ }
722
+ Registration.hasFace = hasFace;
723
+ })(Registration || (Registration = {}));
468
724
 
469
- var CommandBarComponent_1;
470
- /**
471
- *
472
- */
473
- let CommandBarComponent = CommandBarComponent_1 = class CommandBarComponent extends CommandContainer {
474
- constructor() {
725
+ class CommandGroup extends GarbageCollector {
726
+ constructor(parent) {
475
727
  super();
728
+ this.parent = parent;
729
+ this._rootTemplate = new MutableValueModel();
730
+ this._registrations = new MutableListModel();
731
+ this._childFaceModels = new MutableListModel();
732
+ this._faceChangeCount = new MutableValueModel(0);
733
+ const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
734
+ const childFaces = chain(this._childFaceModels)
735
+ .map(m => m.value, { dependsOn: this._faceChangeCount })
736
+ .rejectNil();
737
+ const iconCount = childFaces
738
+ .select(face => !!CommandFace.getIconOf(face))
739
+ .count();
740
+ this.hasMixedIcons = valueOf.all(iconCount.isGreaterThan(0), iconCount.doesNotEqual(childFaces.length)).areTruthy();
741
+ this.childTemplates = chain(this._rootTemplate).pluckList('children');
742
+ this.initialised = chain(this._rootTemplate).isNotNil();
743
+ }
744
+ initialise() {
745
+ this.rebuildTemplates();
746
+ }
747
+ get rootTemplate() {
748
+ return this._rootTemplate.readonly;
749
+ }
750
+ get registrations() {
751
+ return this._registrations.readonly;
752
+ }
753
+ notifyChanged() {
754
+ if (this.parent) {
755
+ this.parent.notifyChanged();
756
+ }
757
+ else {
758
+ this.rebuildTemplates();
759
+ }
476
760
  }
477
- ngOnInit() {
761
+ notifyChildFaceChanged(is, was) {
762
+ this.notifyChanged();
763
+ }
764
+ rebuildTemplates() {
765
+ this._rootTemplate.value = new ViewData.GroupData(this.faceModel.value, this.xPosition, this.yPosition, this.registrations.value.map(r => r.toTemplate()));
478
766
  }
479
- getButtonColor(registration) {
480
- return registration.faceAdapter.destructive ? 'warn' : undefined;
767
+ get depth() {
768
+ return this.isRoot() ? 0 : this.parent.depth + 1;
769
+ }
770
+ isRoot() {
771
+ return false;
772
+ }
773
+ registerCommand(command, faceModel) {
774
+ return this.register(new Registration.CommandRegistration(faceModel, command));
775
+ }
776
+ registerGroup(group, faceModel) {
777
+ return this.register(new Registration.GroupRegistration(faceModel, group));
778
+ }
779
+ registerFlex(component) {
780
+ return this.register(new Registration.FlexRegistration());
781
+ }
782
+ registerSeparator(component) {
783
+ return this.register(new Registration.SeparatorRegistration());
784
+ }
785
+ register(registration) {
786
+ this._registrations.push(registration);
787
+ if (registration instanceof Registration.FaceRegistration) {
788
+ this._childFaceModels.push(registration.faceModel);
789
+ const { when } = Dsl.disposeWith(registration);
790
+ when(registration.faceModel).changes((is, was) => {
791
+ this.notifyChildFaceChanged(new CommandFace.Adapter(is), new CommandFace.Adapter(was));
792
+ }, { asLongAs: this.initialised });
793
+ registration.onDispose(() => this._childFaceModels.remove(registration.faceModel));
794
+ }
795
+ registration.onDispose(() => this._registrations.remove(registration));
796
+ return registration;
797
+ }
798
+ }
799
+ (function (CommandGroup) {
800
+ class Root extends CommandGroup {
801
+ isRoot() {
802
+ return true;
803
+ }
804
+ }
805
+ __decorate([
806
+ TrackExternal(),
807
+ __metadata("design:type", ValueModel)
808
+ ], Root.prototype, "faceModel", void 0);
809
+ __decorate([
810
+ TrackExternal({ defaultValue: 'after' }),
811
+ __metadata("design:type", ValueModel)
812
+ ], Root.prototype, "xPositionModel", void 0);
813
+ __decorate([
814
+ StoreInValueModel('xPositionModel'),
815
+ __metadata("design:type", String)
816
+ ], Root.prototype, "xPosition", void 0);
817
+ __decorate([
818
+ TrackExternal({ defaultValue: 'below' }),
819
+ __metadata("design:type", ValueModel)
820
+ ], Root.prototype, "yPositionModel", void 0);
821
+ __decorate([
822
+ StoreInValueModel('yPositionModel'),
823
+ __metadata("design:type", String)
824
+ ], Root.prototype, "yPosition", void 0);
825
+ CommandGroup.Root = Root;
826
+ function factory() {
827
+ return new Root();
828
+ }
829
+ CommandGroup.factory = factory;
830
+ })(CommandGroup || (CommandGroup = {}));
831
+
832
+ var CommandGroupComponent_1;
833
+ let CommandGroupComponent = CommandGroupComponent_1 = class CommandGroupComponent extends CommandGroup {
834
+ constructor(parent) {
835
+ super(parent);
836
+ this.parent = parent;
837
+ this.xPosition = 'after';
838
+ this.yPosition = 'below';
839
+ this.parent.registerGroup(this, this.faceModel);
481
840
  }
482
841
  };
483
- CommandBarComponent = CommandBarComponent_1 = __decorate([
842
+ CommandGroupComponent.ctorParameters = () => [
843
+ { type: CommandGroup, decorators: [{ type: SkipSelf }] }
844
+ ];
845
+ __decorate([
846
+ Input(), TrackExternal(),
847
+ __metadata("design:type", ValueModel)
848
+ ], CommandGroupComponent.prototype, "faceModel", void 0);
849
+ __decorate([
850
+ Input(), StoreInValueModel('faceModel'),
851
+ __metadata("design:type", Object)
852
+ ], CommandGroupComponent.prototype, "face", void 0);
853
+ __decorate([
854
+ Input(),
855
+ __metadata("design:type", String)
856
+ ], CommandGroupComponent.prototype, "xPosition", void 0);
857
+ __decorate([
858
+ Input(),
859
+ __metadata("design:type", String)
860
+ ], CommandGroupComponent.prototype, "yPosition", void 0);
861
+ CommandGroupComponent = CommandGroupComponent_1 = __decorate([
484
862
  Component({
485
- selector: 'aup-command-bar',
486
- template: `
487
- <ng-container *ngFor="let registration of commandRegistrations.value">
488
- <button *ngIf="registration.faceAdapter.icon && !registration.faceAdapter.text"
489
- mat-icon-button
490
- [color]="getButtonColor(registration)"
491
- [pectinCommand]="registration.command"
492
- [matTooltip]="registration.faceAdapter.tooltip"
493
- >
494
- <aup-command-face [face]="registration.faceAdapter.face"></aup-command-face>
495
- </button>
496
- <button *ngIf="registration.faceAdapter.text"
497
- [color]="getButtonColor(registration)"
498
- mat-button
499
- [pectinCommand]="registration.command"
500
- [matTooltip]="registration.tooltip"
501
- >
502
- <aup-command-face [face]="registration.faceAdapter.face"></aup-command-face>
503
- </button>
504
- </ng-container>
505
- `,
506
- providers: [{ provide: CommandContainer, useExisting: forwardRef(() => CommandBarComponent_1) }],
507
- styles: [`:host {
508
- display: inline-flex;
509
- flex-direction: row;
510
- align-items: center;
511
- }`]
863
+ selector: 'aup-command-group',
864
+ template: '',
865
+ providers: [
866
+ { provide: CommandGroup, useExisting: CommandGroupComponent_1 }
867
+ ]
512
868
  }),
513
- __metadata("design:paramtypes", [])
514
- ], CommandBarComponent);
869
+ __param(0, SkipSelf()),
870
+ __metadata("design:paramtypes", [CommandGroup])
871
+ ], CommandGroupComponent);
515
872
 
516
873
  /**
517
- *
874
+ * Custom CSS:
875
+ * @example
876
+ * root: { // globally
877
+ * --aup-command-face-icon-gap: 8px;
878
+ * }
879
+ * aup-command-face { // per instance
880
+ * --icon-gap: 4px;
881
+ * }
518
882
  */
519
883
  let CommandFaceComponent = class CommandFaceComponent extends DisposableComponent {
520
- constructor(commandContainer) {
884
+ constructor() {
521
885
  super();
522
- this.commandContainer = commandContainer;
523
886
  this.faceModel = new MutableValueModel();
524
887
  this.ignoreIcon = false;
525
888
  this.ignoreText = false;
@@ -530,7 +893,7 @@ let CommandFaceComponent = class CommandFaceComponent extends DisposableComponen
530
893
  this.iconModel = faceAdapter.pluck('icon');
531
894
  this.textModel = faceAdapter.pluck('text');
532
895
  this.positionModel = faceAdapter.pluck('iconPosition');
533
- this.destructiveModel = faceAdapter.pluck('destructive');
896
+ this.colorModel = faceAdapter.pluck('color');
534
897
  }
535
898
  get requiresMissingIconInLayout() {
536
899
  return this.includeMissingIconInLayout && !this.iconModel.value;
@@ -538,8 +901,8 @@ let CommandFaceComponent = class CommandFaceComponent extends DisposableComponen
538
901
  ngOnInit() {
539
902
  }
540
903
  get iconPosition() {
541
- var _a, _b, _c;
542
- 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 : CommandFace.Position.START;
904
+ var _a;
905
+ return (_a = this.positionModel.value) !== null && _a !== void 0 ? _a : CommandFace.Position.START;
543
906
  }
544
907
  get shouldIncludeIcon() {
545
908
  return (!this.ignoreIcon && this.iconModel.value) || this.includeMissingIconInLayout;
@@ -553,13 +916,10 @@ let CommandFaceComponent = class CommandFaceComponent extends DisposableComponen
553
916
  get text() {
554
917
  return this.ignoreText ? undefined : this.textModel.value;
555
918
  }
556
- get destructive() {
557
- return this.destructiveModel.value;
919
+ get color() {
920
+ return this.colorModel.value;
558
921
  }
559
922
  };
560
- CommandFaceComponent.ctorParameters = () => [
561
- { type: CommandContainer, decorators: [{ type: Optional }] }
562
- ];
563
923
  __decorate([
564
924
  Input('face'), StoreInValueModel('faceModel'),
565
925
  __metadata("design:type", Object)
@@ -582,235 +942,268 @@ __decorate([
582
942
  __metadata("design:paramtypes", [])
583
943
  ], CommandFaceComponent.prototype, "requiresMissingIconInLayout", null);
584
944
  __decorate([
585
- HostBinding('class.destructive'),
586
- __metadata("design:type", Boolean),
945
+ HostBinding('attr.color'),
946
+ __metadata("design:type", String),
587
947
  __metadata("design:paramtypes", [])
588
- ], CommandFaceComponent.prototype, "destructive", null);
948
+ ], CommandFaceComponent.prototype, "color", null);
589
949
  CommandFaceComponent = __decorate([
590
950
  Component({
591
951
  selector: 'aup-command-face',
592
952
  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",
593
953
  encapsulation: ViewEncapsulation.None,
594
- 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}"]
954
+ 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}"]
595
955
  }),
596
- __param(0, Optional()),
597
- __metadata("design:paramtypes", [CommandContainer])
956
+ __metadata("design:paramtypes", [])
598
957
  ], CommandFaceComponent);
599
958
 
600
959
  /**
601
960
  *
602
961
  */
603
962
  let CommandComponent = class CommandComponent extends DisposableComponent {
604
- constructor(commandContainer) {
963
+ constructor(parent) {
605
964
  super();
606
- this.commandContainer = commandContainer;
965
+ this.parent = parent;
966
+ this.CommandFace = CommandFace;
967
+ const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
968
+ this.buttonStyle = chain(this.faceModel).map(f => CommandFace.getStyleOf(f));
969
+ if (parent) {
970
+ this.registerDisposable(this.parent.registerCommand(this.command, this.faceModel));
971
+ }
607
972
  }
608
973
  ngOnInit() {
609
- this.registerDisposable(this.commandContainer.registerCommand(this.command, this.face));
610
974
  }
611
975
  };
612
976
  CommandComponent.ctorParameters = () => [
613
- { type: CommandContainer }
977
+ { type: CommandGroup, decorators: [{ type: Optional }] }
614
978
  ];
615
979
  __decorate([
616
980
  Input(), TrackExternal(),
617
981
  __metadata("design:type", Command)
618
982
  ], CommandComponent.prototype, "command", void 0);
619
983
  __decorate([
620
- Input(),
984
+ Input(), TrackExternal(),
985
+ __metadata("design:type", ValueModel)
986
+ ], CommandComponent.prototype, "faceModel", void 0);
987
+ __decorate([
988
+ Input(), StoreInValueModel('faceModel'),
621
989
  __metadata("design:type", Object)
622
990
  ], CommandComponent.prototype, "face", void 0);
623
991
  CommandComponent = __decorate([
624
992
  Component({
625
993
  selector: 'aup-command',
626
- template: ``
994
+ 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"
627
995
  }),
628
- __metadata("design:paramtypes", [CommandContainer])
996
+ __param(0, Optional()),
997
+ __metadata("design:paramtypes", [CommandGroup])
629
998
  ], CommandComponent);
630
999
 
631
1000
  /**
632
1001
  *
633
1002
  */
634
- let PopupMenuRendererComponent = class PopupMenuRendererComponent extends DisposableComponent {
635
- constructor() {
1003
+ let FlexComponent = class FlexComponent extends DisposableComponent {
1004
+ constructor(parent) {
636
1005
  super();
637
- this.xPosition = 'after';
638
- this.yPosition = 'below';
639
- this.commandExecuted = new EventEmitter();
640
- const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
641
- const registrations = chain(this.commandRegistrations);
642
- const iconCount = registrations.select(r => !!r.faceAdapter.icon).count();
643
- this.hasMixedIcons = valueOf.all(iconCount.isGreaterThan(0), iconCount.doesNotEqual(registrations.length)).areTruthy();
1006
+ this.parent = parent;
1007
+ if (parent) {
1008
+ parent.registerFlex(this);
1009
+ }
644
1010
  }
645
1011
  ngOnInit() {
646
1012
  }
647
- getPopupMenuCommandFor(item) {
648
- const { when } = Dsl.disposeWith(this);
649
- when(item.command.busy).becomesFalsey(() => {
650
- this.commandExecuted.emit();
651
- });
652
- return item.command;
1013
+ };
1014
+ FlexComponent.ctorParameters = () => [
1015
+ { type: CommandGroup }
1016
+ ];
1017
+ FlexComponent = __decorate([
1018
+ Component({
1019
+ selector: 'aup-flex',
1020
+ template: ``
1021
+ }),
1022
+ __metadata("design:paramtypes", [CommandGroup])
1023
+ ], FlexComponent);
1024
+
1025
+ const ɵ0 = CommandGroup.factory;
1026
+ /**
1027
+ *
1028
+ */
1029
+ let MoreMenuComponent = class MoreMenuComponent extends DisposableComponent {
1030
+ constructor(group) {
1031
+ super();
1032
+ this.group = group;
1033
+ this.tooltipModel = new MutableValueModel();
1034
+ const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
1035
+ group.xPosition = 'before'; // this should be the default unless overridden by the user.
1036
+ group.faceModel = chain(this.tooltipModel).map(tooltip => {
1037
+ return {
1038
+ icon: () => 'mat:more_vert',
1039
+ tooltip() {
1040
+ return tooltip;
1041
+ }
1042
+ };
1043
+ }, { allowNil: true });
653
1044
  }
654
- getButtonColor(registration) {
655
- return registration.faceAdapter.destructive ? 'warn' : undefined;
1045
+ ngOnInit() {
1046
+ }
1047
+ ngAfterContentInit() {
1048
+ this.group.initialise();
656
1049
  }
657
1050
  };
1051
+ MoreMenuComponent.ctorParameters = () => [
1052
+ { type: CommandGroup }
1053
+ ];
658
1054
  __decorate([
659
- Input(), TrackExternal(),
660
- __metadata("design:type", ListModel)
661
- ], PopupMenuRendererComponent.prototype, "commandRegistrations", void 0);
662
- __decorate([
663
- Input(),
664
- __metadata("design:type", String)
665
- ], PopupMenuRendererComponent.prototype, "xPosition", void 0);
666
- __decorate([
667
- Input(),
1055
+ Input(), StoreInValueModel('tooltipModel'),
668
1056
  __metadata("design:type", String)
669
- ], PopupMenuRendererComponent.prototype, "yPosition", void 0);
670
- __decorate([
671
- Output(),
672
- __metadata("design:type", Object)
673
- ], PopupMenuRendererComponent.prototype, "commandExecuted", void 0);
1057
+ ], MoreMenuComponent.prototype, "tooltip", void 0);
674
1058
  __decorate([
675
- ViewChild(MatMenu),
676
- __metadata("design:type", MatMenu)
677
- ], PopupMenuRendererComponent.prototype, "matMenu", void 0);
678
- PopupMenuRendererComponent = __decorate([
1059
+ Trace(),
1060
+ __metadata("design:type", Function),
1061
+ __metadata("design:paramtypes", []),
1062
+ __metadata("design:returntype", void 0)
1063
+ ], MoreMenuComponent.prototype, "ngAfterContentInit", null);
1064
+ MoreMenuComponent = __decorate([
679
1065
  Component({
680
- selector: 'aup-popup-menu-renderer',
681
- 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",
682
- styles: [":host{display:inline-flex;flex-direction:row;align-items:center}"]
1066
+ selector: 'aup-more-menu',
1067
+ template: '<aup-command-group-renderer [renderRootNode]="true" [groupViewDataModel]="group.rootTemplate"></aup-command-group-renderer>',
1068
+ providers: [{ provide: CommandGroup, useFactory: ɵ0 }]
683
1069
  }),
684
- __metadata("design:paramtypes", [])
685
- ], PopupMenuRendererComponent);
1070
+ __metadata("design:paramtypes", [CommandGroup])
1071
+ ], MoreMenuComponent);
686
1072
 
1073
+ const ɵ0$1 = CommandGroup.factory;
687
1074
  /**
688
1075
  *
689
1076
  */
690
- let AbstractPopupMenuComponent = class AbstractPopupMenuComponent extends CommandContainer {
691
- constructor(cdr) {
1077
+ let PopupMenuComponent = class PopupMenuComponent extends DisposableComponent {
1078
+ constructor(group) {
692
1079
  super();
693
- this.cdr = cdr;
694
- this.xPosition = 'after';
695
- this.yPosition = 'below';
696
- }
697
- ngAfterViewInit() {
698
- this.cdr.detectChanges();
1080
+ this.group = group;
1081
+ const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
1082
+ group.faceModel = this.faceModel;
699
1083
  }
700
- get matMenuComponent() {
701
- var _a;
702
- return (_a = this.popupMenu) === null || _a === void 0 ? void 0 : _a.matMenu;
1084
+ ngOnInit() {
703
1085
  }
704
- closeMenu() {
705
- this.menuTrigger.closeMenu();
1086
+ ngAfterContentInit() {
1087
+ this.group.initialise();
706
1088
  }
707
- getButtonColor(registration) {
708
- return registration.faceAdapter.destructive ? 'warn' : undefined;
1089
+ ngAfterViewInit() {
709
1090
  }
710
1091
  };
711
- AbstractPopupMenuComponent.ctorParameters = () => [
712
- { type: ChangeDetectorRef }
1092
+ PopupMenuComponent.ctorParameters = () => [
1093
+ { type: CommandGroup }
713
1094
  ];
714
1095
  __decorate([
715
- Input(),
716
- __metadata("design:type", String)
717
- ], AbstractPopupMenuComponent.prototype, "xPosition", void 0);
1096
+ Input(), TrackExternal(),
1097
+ __metadata("design:type", ValueModel)
1098
+ ], PopupMenuComponent.prototype, "faceModel", void 0);
718
1099
  __decorate([
719
- Input(),
720
- __metadata("design:type", String)
721
- ], AbstractPopupMenuComponent.prototype, "yPosition", void 0);
1100
+ Input(), StoreInValueModel('faceModel'),
1101
+ __metadata("design:type", Object)
1102
+ ], PopupMenuComponent.prototype, "face", void 0);
722
1103
  __decorate([
723
- ViewChild(PopupMenuRendererComponent),
724
- __metadata("design:type", PopupMenuRendererComponent)
725
- ], AbstractPopupMenuComponent.prototype, "popupMenu", void 0);
1104
+ Trace(),
1105
+ __metadata("design:type", Function),
1106
+ __metadata("design:paramtypes", []),
1107
+ __metadata("design:returntype", void 0)
1108
+ ], PopupMenuComponent.prototype, "ngOnInit", null);
726
1109
  __decorate([
727
- ViewChild(MatMenuTrigger),
728
- __metadata("design:type", MatMenuTrigger)
729
- ], AbstractPopupMenuComponent.prototype, "menuTrigger", void 0);
730
- AbstractPopupMenuComponent = __decorate([
1110
+ Trace(),
1111
+ __metadata("design:type", Function),
1112
+ __metadata("design:paramtypes", []),
1113
+ __metadata("design:returntype", void 0)
1114
+ ], PopupMenuComponent.prototype, "ngAfterContentInit", null);
1115
+ __decorate([
1116
+ Trace(),
1117
+ __metadata("design:type", Function),
1118
+ __metadata("design:paramtypes", []),
1119
+ __metadata("design:returntype", void 0)
1120
+ ], PopupMenuComponent.prototype, "ngAfterViewInit", null);
1121
+ PopupMenuComponent = __decorate([
731
1122
  Component({
732
- selector: 'aup-abstract-popup-menu',
733
- template: ''
1123
+ selector: 'aup-popup-menu',
1124
+ template: '<aup-command-group-renderer [renderRootNode]="true" [groupViewDataModel]="group.rootTemplate"></aup-command-group-renderer>',
1125
+ providers: [{ provide: CommandGroup, useFactory: ɵ0$1 }]
734
1126
  }),
735
- __metadata("design:paramtypes", [ChangeDetectorRef])
736
- ], AbstractPopupMenuComponent);
1127
+ __metadata("design:paramtypes", [CommandGroup])
1128
+ ], PopupMenuComponent);
737
1129
 
738
- var PopupMenuComponent_1;
739
1130
  /**
740
1131
  *
741
1132
  */
742
- let PopupMenuComponent = PopupMenuComponent_1 = class PopupMenuComponent extends AbstractPopupMenuComponent {
743
- constructor(cdr) {
744
- super(cdr);
745
- this.faceModel = new MutableValueModel();
746
- const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
747
- const faceAdapterModel = chain(this.faceModel).map(face => new CommandFace.Adapter(face));
748
- this.faceTooltipModel = faceAdapterModel.pluck('tooltip');
1133
+ let SeparatorComponent = class SeparatorComponent extends DisposableComponent {
1134
+ constructor(parent) {
1135
+ super();
1136
+ this.parent = parent;
1137
+ if (parent) {
1138
+ parent.registerSeparator(this);
1139
+ }
749
1140
  }
750
- getTooltip() {
751
- return this.faceTooltipModel.value;
1141
+ isVertical() {
1142
+ return this === null || this === void 0 ? void 0 : this.parent.isRoot();
752
1143
  }
753
1144
  ngOnInit() {
754
1145
  }
755
1146
  };
756
- PopupMenuComponent.ctorParameters = () => [
757
- { type: ChangeDetectorRef }
1147
+ SeparatorComponent.ctorParameters = () => [
1148
+ { type: CommandGroup, decorators: [{ type: Optional }] }
758
1149
  ];
759
- __decorate([
760
- Input(), StoreInValueModel('faceModel'),
761
- __metadata("design:type", Object)
762
- ], PopupMenuComponent.prototype, "face", void 0);
763
- PopupMenuComponent = PopupMenuComponent_1 = __decorate([
1150
+ SeparatorComponent = __decorate([
764
1151
  Component({
765
- selector: 'aup-popup-menu',
1152
+ selector: 'aup-separator',
766
1153
  template: `
767
- <!-- we can only render the button after th popup menu has initialised and rendered it's menu component -->
768
- <button *ngIf="matMenuComponent" mat-icon-button [matMenuTriggerFor]="matMenuComponent" [matTooltip]="getTooltip()">
769
- <aup-command-face [face]="face"></aup-command-face>
770
- </button>
771
- <aup-popup-menu-renderer [commandRegistrations]="commandRegistrations" [yPosition]="yPosition"
772
- [xPosition]="xPosition"
773
- (commandExecuted)="closeMenu()"></aup-popup-menu-renderer>
774
- `,
775
- providers: [{ provide: CommandContainer, useExisting: forwardRef(() => PopupMenuComponent_1) }]
1154
+ <mat-divider [vertical]="isVertical()"></mat-divider>`
776
1155
  }),
777
- __metadata("design:paramtypes", [ChangeDetectorRef])
778
- ], PopupMenuComponent);
1156
+ __param(0, Optional()),
1157
+ __metadata("design:paramtypes", [CommandGroup])
1158
+ ], SeparatorComponent);
779
1159
 
780
- var MoreMenuComponent_1;
1160
+ const ɵ0$2 = CommandGroup.factory;
781
1161
  /**
782
1162
  *
783
1163
  */
784
- let MoreMenuComponent = MoreMenuComponent_1 = class MoreMenuComponent extends AbstractPopupMenuComponent {
785
- constructor(cdr) {
786
- super(cdr);
787
- this.xPosition = "before"; // this should be the default unless overriden by the user.
1164
+ let ToolBarComponent = class ToolBarComponent extends DisposableComponent {
1165
+ constructor(group) {
1166
+ super();
1167
+ this.group = group;
1168
+ }
1169
+ ngOnInit() {
1170
+ }
1171
+ ngAfterContentInit() {
1172
+ this.group.initialise();
1173
+ }
1174
+ ngAfterViewInit() {
788
1175
  }
789
1176
  };
790
- MoreMenuComponent.ctorParameters = () => [
791
- { type: ChangeDetectorRef }
1177
+ ToolBarComponent.ctorParameters = () => [
1178
+ { type: CommandGroup }
792
1179
  ];
793
1180
  __decorate([
794
- Input(),
795
- __metadata("design:type", String)
796
- ], MoreMenuComponent.prototype, "tooltip", void 0);
797
- MoreMenuComponent = MoreMenuComponent_1 = __decorate([
1181
+ Trace(),
1182
+ __metadata("design:type", Function),
1183
+ __metadata("design:paramtypes", []),
1184
+ __metadata("design:returntype", void 0)
1185
+ ], ToolBarComponent.prototype, "ngOnInit", null);
1186
+ __decorate([
1187
+ Trace(),
1188
+ __metadata("design:type", Function),
1189
+ __metadata("design:paramtypes", []),
1190
+ __metadata("design:returntype", void 0)
1191
+ ], ToolBarComponent.prototype, "ngAfterContentInit", null);
1192
+ __decorate([
1193
+ Trace(),
1194
+ __metadata("design:type", Function),
1195
+ __metadata("design:paramtypes", []),
1196
+ __metadata("design:returntype", void 0)
1197
+ ], ToolBarComponent.prototype, "ngAfterViewInit", null);
1198
+ ToolBarComponent = __decorate([
798
1199
  Component({
799
- selector: 'aup-more-menu',
800
- template: `
801
- <!-- we can only render the button after th popup menu has initialised and rendered it's menu component -->
802
- <button *ngIf="matMenuComponent" mat-icon-button [matMenuTriggerFor]="matMenuComponent" [matTooltip]="tooltip">
803
- <mat-icon>more_vert</mat-icon>
804
- </button>
805
- <aup-popup-menu-renderer [commandRegistrations]="commandRegistrations"
806
- [xPosition]="xPosition"
807
- [yPosition]="yPosition"
808
- (commandExecuted)="closeMenu()"></aup-popup-menu-renderer>
809
- `,
810
- providers: [{ provide: CommandContainer, useExisting: forwardRef(() => MoreMenuComponent_1) }]
1200
+ selector: 'aup-tool-bar',
1201
+ template: '<aup-command-group-renderer [renderRootNode]="false" [groupViewDataModel]="group.rootTemplate"></aup-command-group-renderer>',
1202
+ providers: [{ provide: CommandGroup, useFactory: ɵ0$2 }],
1203
+ 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}"]
811
1204
  }),
812
- __metadata("design:paramtypes", [ChangeDetectorRef])
813
- ], MoreMenuComponent);
1205
+ __metadata("design:paramtypes", [CommandGroup])
1206
+ ], ToolBarComponent);
814
1207
 
815
1208
  let FocusContainerComponent = class FocusContainerComponent extends DisposableComponent {
816
1209
  constructor(focusManager) {
@@ -1949,7 +2342,7 @@ SelectHeaderCellRendererComponent = __decorate([
1949
2342
 
1950
2343
  const noop = () => {
1951
2344
  };
1952
- const ɵ0 = noop;
2345
+ const ɵ0$3 = noop;
1953
2346
  const CELL_RENDERER_COMPONENT_ROW_CACHE = Symbol("aup-cell-renderer:row-data-cache");
1954
2347
  class ColumnModel {
1955
2348
  constructor(columnId, defaults) {
@@ -2412,12 +2805,14 @@ let TableModel = TableModel_1 = class TableModel {
2412
2805
  }
2413
2806
  return column;
2414
2807
  }
2808
+ // removeColumn(column: ColumnModel<Row>) {
2809
+ //
2810
+ // }
2415
2811
  columnTextProperties(columnTextProperties) {
2416
2812
  this._columnTextPropertiesLookup = columnTextProperties;
2417
2813
  }
2418
2814
  getColumnTextProperties(column) {
2419
- const factory = this._columnTextPropertiesLookup ? this._columnTextPropertiesLookup[column.columnId] : undefined;
2420
- return factory ? factory() : undefined;
2815
+ return this._columnTextPropertiesLookup ? this._columnTextPropertiesLookup[column.columnId] : undefined;
2421
2816
  }
2422
2817
  startEditSession(row) {
2423
2818
  const rowId = this.identityOf(row);
@@ -2706,10 +3101,10 @@ TableHeaderCellRendererComponent = __decorate([
2706
3101
  __metadata("design:paramtypes", [])
2707
3102
  ], TableHeaderCellRendererComponent);
2708
3103
 
2709
- class MenuItemData extends CommandFace.Adapter {
3104
+ class MenuItemData {
2710
3105
  constructor(factory, face) {
2711
- super(face);
2712
3106
  this.factory = factory;
3107
+ this.face = face;
2713
3108
  }
2714
3109
  }
2715
3110
  /**
@@ -2753,24 +3148,16 @@ TableRowMenuComponent = __decorate([
2753
3148
  Component({
2754
3149
  selector: 'aup-table-row-menu',
2755
3150
  template: `
2756
- <button mat-icon-button *ngFor="let action of actions" [pectinCommand]="action.factory.create(value)">
2757
- <aup-icon [icon]="action.icon"></aup-icon>
2758
- </button>
2759
- <ng-container *ngIf="moreActions.length > 0">
2760
- <button #trigger mat-icon-button [matMenuTriggerFor]="menu">
2761
- <aup-icon icon="mat:more_vert"></aup-icon>
2762
- </button>
2763
- <mat-menu #menu="matMenu" xPosition="before" matTooltip="More options...">
2764
- <button *ngFor="let action of moreActions"
2765
- mat-menu-item
2766
- [pectinCommand]="createMoreMenuCommand(action, value)"
2767
- >
2768
- <aup-icon *ngIf="action.icon && action.iconPositionStart" [icon]="action.icon"></aup-icon>
2769
- {{action.text}}
2770
- <aup-icon *ngIf="action.icon && action.iconPositionEnd" [icon]="action.icon"></aup-icon>
2771
- </button>
2772
- </mat-menu>
2773
- </ng-container>
3151
+ <aup-tool-bar>
3152
+ <aup-command *ngFor="let action of actions" [command]="action.factory.create(value)"
3153
+ [face]="action.faceModel"></aup-command>
3154
+ </aup-tool-bar>
3155
+ <ng-container *ngIf="moreActions.length > 0">
3156
+ <aup-more-menu>
3157
+ <aup-command *ngFor="let action of moreActions" [command]="action.factory.create(value)"
3158
+ [face]="action.faceModel"></aup-command>
3159
+ </aup-more-menu>
3160
+ </ng-container>
2774
3161
  `,
2775
3162
  styles: [`:host {
2776
3163
  display: inline-flex;
@@ -2906,13 +3293,16 @@ ComponentsModule = __decorate([
2906
3293
  IconComponent,
2907
3294
  SectionHeaderComponent,
2908
3295
  TableRowMenuComponent,
2909
- CommandBarComponent,
3296
+ ToolBarComponent,
2910
3297
  CommandComponent,
2911
3298
  PopupMenuComponent,
3299
+ CommandGroupComponent,
2912
3300
  CommandFaceComponent,
2913
- AbstractPopupMenuComponent,
2914
- PopupMenuRendererComponent,
2915
- MoreMenuComponent
3301
+ MoreMenuComponent,
3302
+ SeparatorComponent,
3303
+ FlexComponent,
3304
+ CommandGroupMenuRendererComponent,
3305
+ CommandGroupRendererComponent
2916
3306
  ],
2917
3307
  imports: [
2918
3308
  CommonModule,
@@ -2932,8 +3322,8 @@ ComponentsModule = __decorate([
2932
3322
  FontAwesomeModule,
2933
3323
  MatTooltipModule,
2934
3324
  MatAutocompleteModule,
2935
- _MatMenuDirectivesModule,
2936
- MatMenuModule
3325
+ MatMenuModule,
3326
+ MatDividerModule
2937
3327
  ],
2938
3328
  exports: [
2939
3329
  NumberInputComponent,
@@ -2959,28 +3349,17 @@ ComponentsModule = __decorate([
2959
3349
  IconComponent,
2960
3350
  SectionHeaderComponent,
2961
3351
  TableRowMenuComponent,
2962
- CommandBarComponent,
3352
+ CommandGroupComponent,
3353
+ ToolBarComponent,
2963
3354
  CommandComponent,
2964
- AbstractPopupMenuComponent,
2965
3355
  PopupMenuComponent,
2966
3356
  CommandFaceComponent,
2967
- PopupMenuRendererComponent,
2968
- MoreMenuComponent
3357
+ MoreMenuComponent,
3358
+ SeparatorComponent,
3359
+ FlexComponent
2969
3360
  ],
2970
3361
  providers: [
2971
3362
  FocusBindingFactory
2972
- // {
2973
- // provide: CELL_EDITOR_REGISTRATION, useValue: {
2974
- // type: 'string',
2975
- // editorClass: StringInputComponent
2976
- // }, multi: true
2977
- // },
2978
- // {
2979
- // provide: CELL_EDITOR_REGISTRATION, useValue: {
2980
- // type: 'number',
2981
- // editorClass: NumberInputComponent
2982
- // }, multi: true
2983
- // }
2984
3363
  ]
2985
3364
  }),
2986
3365
  __metadata("design:paramtypes", [FaIconLibrary])
@@ -6178,10 +6557,10 @@ let AbstractPlaceNavigationComponent = class AbstractPlaceNavigationComponent ex
6178
6557
  });
6179
6558
  this.activePlaceDefinition = chain(this._activePlaceComponent).pluck('placeDefinition');
6180
6559
  }
6181
- getNav(placeDef) {
6560
+ getNavigationFace(placeDef) {
6182
6561
  const navItem = placeDef.getPlaceData('nav');
6183
6562
  return {
6184
- title: () => navItem ? navItem.title() : placeDef.searchPlaceData(['navTitle', 'title']),
6563
+ text: () => navItem ? navItem.title() : placeDef.searchPlaceData(['navTitle', 'title']),
6185
6564
  tooltip: () => navItem && navItem.tooltip ? navItem.tooltip() : placeDef.getPlaceData('navTooltip', null),
6186
6565
  icon: () => navItem && navItem.icon ? navItem.icon() : placeDef.getPlaceData('navIcon', null)
6187
6566
  };
@@ -6216,7 +6595,7 @@ __decorate([
6216
6595
  __metadata("design:type", Function),
6217
6596
  __metadata("design:paramtypes", [PlaceDefinition]),
6218
6597
  __metadata("design:returntype", Object)
6219
- ], AbstractPlaceNavigationComponent.prototype, "getNav", null);
6598
+ ], AbstractPlaceNavigationComponent.prototype, "getNavigationFace", null);
6220
6599
  AbstractPlaceNavigationComponent = __decorate([
6221
6600
  Component({
6222
6601
  template: ''
@@ -6277,29 +6656,12 @@ ListPlaceNavComponent.ctorParameters = () => [
6277
6656
  ListPlaceNavComponent = __decorate([
6278
6657
  Component({
6279
6658
  selector: 'aup-list-place-nav',
6280
- 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",
6659
+ 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",
6281
6660
  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)}"]
6282
6661
  }),
6283
6662
  __metadata("design:paramtypes", [PlaceRouter])
6284
6663
  ], ListPlaceNavComponent);
6285
6664
 
6286
- let TabbedPlaceNavigationComponent = class TabbedPlaceNavigationComponent extends AbstractPlaceNavigationComponent {
6287
- constructor(placeRouter) {
6288
- super(placeRouter);
6289
- }
6290
- };
6291
- TabbedPlaceNavigationComponent.ctorParameters = () => [
6292
- { type: PlaceRouter }
6293
- ];
6294
- TabbedPlaceNavigationComponent = __decorate([
6295
- Component({
6296
- selector: 'aup-tabbed-place-navigation',
6297
- 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",
6298
- styles: [""]
6299
- }),
6300
- __metadata("design:paramtypes", [PlaceRouter])
6301
- ], TabbedPlaceNavigationComponent);
6302
-
6303
6665
  /**
6304
6666
  * @example
6305
6667
  * // Usage
@@ -6338,7 +6700,7 @@ TabbedPlaceNavigationComponent = __decorate([
6338
6700
  * (at)Place({
6339
6701
  * path: 'myPlace',
6340
6702
  * data: {
6341
- * nav: I18n.places.myPlace.nav()
6703
+ * nav: I18n.places.myPlace.nav
6342
6704
  * }
6343
6705
  * })
6344
6706
  */
@@ -6373,12 +6735,29 @@ __decorate([
6373
6735
  SidePlaceNavigationComponent = __decorate([
6374
6736
  Component({
6375
6737
  selector: 'aup-side-place-navigation',
6376
- 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",
6738
+ 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",
6377
6739
  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)}"]
6378
6740
  }),
6379
6741
  __metadata("design:paramtypes", [Router, PlaceRouter])
6380
6742
  ], SidePlaceNavigationComponent);
6381
6743
 
6744
+ let TabbedPlaceNavigationComponent = class TabbedPlaceNavigationComponent extends AbstractPlaceNavigationComponent {
6745
+ constructor(placeRouter) {
6746
+ super(placeRouter);
6747
+ }
6748
+ };
6749
+ TabbedPlaceNavigationComponent.ctorParameters = () => [
6750
+ { type: PlaceRouter }
6751
+ ];
6752
+ TabbedPlaceNavigationComponent = __decorate([
6753
+ Component({
6754
+ selector: 'aup-tabbed-place-navigation',
6755
+ 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",
6756
+ styles: [""]
6757
+ }),
6758
+ __metadata("design:paramtypes", [PlaceRouter])
6759
+ ], TabbedPlaceNavigationComponent);
6760
+
6382
6761
  let PlaceModule = class PlaceModule {
6383
6762
  };
6384
6763
  PlaceModule = __decorate([
@@ -6887,5 +7266,5 @@ function VisitParameterList(options) {
6887
7266
  * Generated bundle index. Do not edit.
6888
7267
  */
6889
7268
 
6890
- export { ACTIVITY_DATA, AUP_PLACE_CONFIG, AbstractInputActivity, AbstractInputComponent, AbstractInteractionContext, AbstractListInputComponent, AbstractPlaceNavigationComponent, AbstractPopStateNavigation, AbstractPopupMenuComponent, AbstractValueInputComponent, Activity, ActivityActionsComponent, ActivityContainerComponent, ActivityOutletComponent, ActivityRef, AddItemInteractionContextComponent, AlertDialogComponent, AngularUiPowerupsModule, AutocompleteInputComponent, Bounds, BusyOverlayComponent, CELL_EDITOR_PORTAL, CELL_RENDERER_PORTAL, CardContainerComponent, CellEditorPortalRef, CellHeaderPortalRef, CellPortalRef, CellRendererPortalRef, CheckboxInputComponent, ColumnModel, ColumnTemplateDirective, CommandBarComponent, CommandComponent, CommandContainer, CommandDirective, CommandFace, CommandFaceComponent, ComponentCellRendererPortalRef, ComponentsModule, ConfirmThenDialogComponent, ConfirmationDialogComponent, ConsolidatedParameterMap, CustomTemplateColumnModel, CustomValueColumnModel, DEFINITION_META_DATA_KEY, DIALOG_INTERACTION_SERVICE_DEFAULTS, DefaultCellRendererComponent, DefaultHeaderCellRendererComponent, DialogInteractionContext, DialogInteractionContextFactory, Dimension, DirectivesModule, DisposableComponent, EditRowControls, EditSession, EditorControlColumnModel, EmptyStateComponent, EventCleanUpSession, FocusBinding, FocusBindingDirective, FocusBindingFactory, FocusContainerComponent, FocusableComponent, Formatter, HEADER_CELL_RENDERER_PORTAL, IconComponent, InPlaceInteractionContextComponent, InteractionContextTriggerFor, InteractionModule, InteractionService, InteractionServiceRoutingAdapter, LEFT_RIGHT_PLACE_ANIMATION, ListPlaceNavComponent, ListPropertyColumnModel, ModalInteractionContextFactory, MoreMenuComponent, MultipleSelectInputComponent, Navigating, NavigatingDuringInteraction, NavigationContext, NavigationSession, NoopAuthGuard, NoopComponent, NumberInputComponent, PORTAL_EDITOR_COMPONENT, PORTAL_RENDERER_COMPONENT, ParameterDefinition, PasswordInputComponent, Place, PlaceComponent, PlaceComponentDeactivationHandler, PlaceDefinition, PlaceGuard, PlaceHistory, PlaceModule, PlaceOutletComponent, PlaceRouter, Point, PopStateDuringInteractionNavigation, PopStateNavigation, PopupInteractionContextComponent, PopupMenuComponent, PopupMenuRendererComponent, PropertyColumnModel, ROUTE_PARAMETER_LIST_KEY, RemoveLastInteractionFromUrlNavigationSession, ResizeAwareComponent, RouteId, ScrollContainerComponent, SectionHeaderComponent, SelectCellRendererComponent, SelectHeaderCellRendererComponent, SelectInputActivity, SelectInputComponent, SelectionColumnModel, SidePlaceNavigationComponent, StringInputActivity, StringInputComponent, SwitchCaseComponent, SwitchCaseDefaultDirective, SwitchCaseOption, SwitchCaseWhenDirective, SynchroniseInteractionContextIdsWithRoute, TabbedPlaceNavigationComponent, TableCellRendererComponent, TableComponent, TableHeaderCellRendererComponent, TableModel, TableRowMenuComponent, TemplateCellRendererPortalRef, TextInputComponent, UrlService, UrlSnapshot, VerticalFocusContainerComponent, Visit, VisitParameter, VisitParameterList, VisitSanitiser, WaitUntilLeavingInteractionTransitionCancelled, WaitUntilLinkTriggeredNavigationInteractionCancellationEventsFinish, WaitUntilPopStateDuringCanDeactivateInteractionFinishes, leftRightPlaceAnimation, slideDownOnEnterAnimation, slideRightOnEnterAnimation, ɵ0, DirectivesModule as ɵa, CommandDirective as ɵb, CardContainerComponent as ɵba, TableComponent as ɵbb, EditRowControls as ɵbc, ColumnTemplateDirective as ɵbd, DefaultCellRendererComponent as ɵbe, TableCellRendererComponent as ɵbf, SelectCellRendererComponent as ɵbg, SelectHeaderCellRendererComponent as ɵbh, DefaultHeaderCellRendererComponent as ɵbi, TableHeaderCellRendererComponent as ɵbj, IconComponent as ɵbk, SectionHeaderComponent as ɵbl, TableRowMenuComponent as ɵbm, CommandBarComponent as ɵbn, CommandContainer as ɵbo, CommandComponent as ɵbp, PopupMenuComponent as ɵbq, AbstractPopupMenuComponent as ɵbr, PopupMenuRendererComponent as ɵbs, CommandFaceComponent as ɵbt, MoreMenuComponent as ɵbu, PlaceModule as ɵbv, ComponentsModule as ɵbw, EmptyStateComponent as ɵbx, BusyOverlayComponent as ɵby, PlaceOutletComponent as ɵbz, FocusBindingDirective as ɵc, leftRightPlaceAnimation as ɵca, LEFT_RIGHT_PLACE_ANIMATION as ɵcb, AUP_PLACE_CONFIG as ɵcc, PlaceRouter as ɵce, InteractionService as ɵcf, ModalInteractionContextFactory as ɵcg, UrlService as ɵch, PlaceHistory as ɵci, TabbedPlaceNavigationComponent as ɵcj, AbstractPlaceNavigationComponent as ɵck, ListPlaceNavComponent as ɵcl, SidePlaceNavigationComponent as ɵcm, InteractionModule as ɵcn, ActivityContainerComponent as ɵco, AbstractInteractionContext as ɵcp, ActivityOutletComponent as ɵcq, ConfirmationDialogComponent as ɵcr, ACTIVITY_DATA as ɵcs, Activity as ɵct, ConfirmThenDialogComponent as ɵcv, AlertDialogComponent as ɵcw, InPlaceInteractionContextComponent as ɵcy, AddItemInteractionContextComponent as ɵcz, DisposableComponent as ɵd, ActivityActionsComponent as ɵda, PopupInteractionContextComponent as ɵdb, StringInputActivity as ɵdc, AbstractInputActivity as ɵdd, SelectInputActivity as ɵde, InteractionContextTriggerFor as ɵdf, FocusBindingFactory as ɵe, ComponentsModule as ɵf, AbstractInputComponent as ɵg, AbstractValueInputComponent as ɵh, AbstractListInputComponent as ɵi, NumberInputComponent as ɵj, StringInputComponent as ɵk, TextInputComponent as ɵl, PasswordInputComponent as ɵm, SelectInputComponent as ɵn, MultipleSelectInputComponent as ɵo, AutocompleteInputComponent as ɵp, CheckboxInputComponent as ɵq, ScrollContainerComponent as ɵr, NoopComponent as ɵs, SwitchCaseOption as ɵt, SwitchCaseWhenDirective as ɵu, SwitchCaseDefaultDirective as ɵv, SwitchCaseComponent as ɵw, FocusContainerComponent as ɵx, VerticalFocusContainerComponent as ɵy, FocusableComponent as ɵz };
7269
+ export { ACTIVITY_DATA, AUP_PLACE_CONFIG, AbstractInputActivity, AbstractInputComponent, AbstractInteractionContext, AbstractListInputComponent, AbstractPlaceNavigationComponent, AbstractPopStateNavigation, AbstractValueInputComponent, Activity, ActivityActionsComponent, ActivityContainerComponent, ActivityOutletComponent, ActivityRef, AddItemInteractionContextComponent, AlertDialogComponent, AngularUiPowerupsModule, AutocompleteInputComponent, Bounds, BusyOverlayComponent, CELL_EDITOR_PORTAL, CELL_RENDERER_PORTAL, CardContainerComponent, CellEditorPortalRef, CellHeaderPortalRef, CellPortalRef, CellRendererPortalRef, CheckboxInputComponent, ColumnModel, ColumnTemplateDirective, CommandComponent, CommandDirective, CommandFace, CommandFaceComponent, CommandGroup, CommandGroupComponent, CommandGroupMenuRendererComponent, CommandGroupRendererComponent, ComponentCellRendererPortalRef, ComponentsModule, ConfirmThenDialogComponent, ConfirmationDialogComponent, ConsolidatedParameterMap, CustomTemplateColumnModel, CustomValueColumnModel, DEFINITION_META_DATA_KEY, DIALOG_INTERACTION_SERVICE_DEFAULTS, DefaultCellRendererComponent, DefaultHeaderCellRendererComponent, DialogInteractionContext, DialogInteractionContextFactory, Dimension, DirectivesModule, DisposableComponent, EditRowControls, EditSession, EditorControlColumnModel, EmptyStateComponent, EventCleanUpSession, FlexComponent, FocusBinding, FocusBindingDirective, FocusBindingFactory, FocusContainerComponent, FocusableComponent, Formatter, HEADER_CELL_RENDERER_PORTAL, IconComponent, InPlaceInteractionContextComponent, InteractionContextTriggerFor, InteractionModule, InteractionService, InteractionServiceRoutingAdapter, LEFT_RIGHT_PLACE_ANIMATION, ListPlaceNavComponent, ListPropertyColumnModel, ModalInteractionContextFactory, MoreMenuComponent, MultipleSelectInputComponent, Navigating, NavigatingDuringInteraction, NavigationContext, NavigationSession, NoopAuthGuard, NoopComponent, NumberInputComponent, PORTAL_EDITOR_COMPONENT, PORTAL_RENDERER_COMPONENT, ParameterDefinition, PasswordInputComponent, Place, PlaceComponent, PlaceComponentDeactivationHandler, PlaceDefinition, PlaceGuard, PlaceHistory, PlaceModule, PlaceOutletComponent, PlaceRouter, Point, PopStateDuringInteractionNavigation, PopStateNavigation, PopupInteractionContextComponent, PopupMenuComponent, PropertyColumnModel, ROUTE_PARAMETER_LIST_KEY, Registration, RemoveLastInteractionFromUrlNavigationSession, ResizeAwareComponent, RouteId, ScrollContainerComponent, SectionHeaderComponent, SelectCellRendererComponent, SelectHeaderCellRendererComponent, SelectInputActivity, SelectInputComponent, SelectionColumnModel, SeparatorComponent, SidePlaceNavigationComponent, StringInputActivity, StringInputComponent, SwitchCaseComponent, SwitchCaseDefaultDirective, SwitchCaseOption, SwitchCaseWhenDirective, SynchroniseInteractionContextIdsWithRoute, TabbedPlaceNavigationComponent, TableCellRendererComponent, TableComponent, TableHeaderCellRendererComponent, TableModel, TableRowMenuComponent, TemplateCellRendererPortalRef, TextInputComponent, ToolBarComponent, TrackBy, UrlService, UrlSnapshot, VerticalFocusContainerComponent, ViewData, Visit, VisitParameter, VisitParameterList, VisitSanitiser, WaitUntilLeavingInteractionTransitionCancelled, WaitUntilLinkTriggeredNavigationInteractionCancellationEventsFinish, WaitUntilPopStateDuringCanDeactivateInteractionFinishes, leftRightPlaceAnimation, slideDownOnEnterAnimation, slideRightOnEnterAnimation, ɵ0, DirectivesModule as ɵa, CommandDirective as ɵb, CardContainerComponent as ɵba, TableComponent as ɵbb, EditRowControls as ɵbc, ColumnTemplateDirective as ɵbd, DefaultCellRendererComponent as ɵbe, TableCellRendererComponent as ɵbf, SelectCellRendererComponent as ɵbg, SelectHeaderCellRendererComponent as ɵbh, DefaultHeaderCellRendererComponent as ɵbi, TableHeaderCellRendererComponent as ɵbj, IconComponent as ɵbk, SectionHeaderComponent as ɵbl, TableRowMenuComponent as ɵbm, ToolBarComponent as ɵbn, CommandGroup as ɵbo, CommandComponent as ɵbp, PopupMenuComponent as ɵbq, CommandGroupComponent as ɵbr, CommandFaceComponent as ɵbs, MoreMenuComponent as ɵbt, SeparatorComponent as ɵbu, FlexComponent as ɵbv, CommandGroupMenuRendererComponent as ɵbw, CommandGroupRendererComponent as ɵbx, PlaceModule as ɵby, ComponentsModule as ɵbz, FocusBindingDirective as ɵc, EmptyStateComponent as ɵca, BusyOverlayComponent as ɵcb, PlaceOutletComponent as ɵcc, leftRightPlaceAnimation as ɵcd, LEFT_RIGHT_PLACE_ANIMATION as ɵce, AUP_PLACE_CONFIG as ɵcf, PlaceRouter as ɵch, InteractionService as ɵci, ModalInteractionContextFactory as ɵcj, UrlService as ɵck, PlaceHistory as ɵcl, TabbedPlaceNavigationComponent as ɵcm, AbstractPlaceNavigationComponent as ɵcn, ListPlaceNavComponent as ɵco, SidePlaceNavigationComponent as ɵcp, InteractionModule as ɵcq, ActivityContainerComponent as ɵcr, AbstractInteractionContext as ɵcs, ActivityOutletComponent as ɵct, ConfirmationDialogComponent as ɵcu, ACTIVITY_DATA as ɵcv, Activity as ɵcw, ConfirmThenDialogComponent as ɵcy, AlertDialogComponent as ɵcz, DisposableComponent as ɵd, InPlaceInteractionContextComponent as ɵdb, AddItemInteractionContextComponent as ɵdc, ActivityActionsComponent as ɵdd, PopupInteractionContextComponent as ɵde, StringInputActivity as ɵdf, AbstractInputActivity as ɵdg, SelectInputActivity as ɵdh, InteractionContextTriggerFor as ɵdi, FocusBindingFactory as ɵe, ComponentsModule as ɵf, AbstractInputComponent as ɵg, AbstractValueInputComponent as ɵh, AbstractListInputComponent as ɵi, NumberInputComponent as ɵj, StringInputComponent as ɵk, TextInputComponent as ɵl, PasswordInputComponent as ɵm, SelectInputComponent as ɵn, MultipleSelectInputComponent as ɵo, AutocompleteInputComponent as ɵp, CheckboxInputComponent as ɵq, ScrollContainerComponent as ɵr, NoopComponent as ɵs, SwitchCaseOption as ɵt, SwitchCaseWhenDirective as ɵu, SwitchCaseDefaultDirective as ɵv, SwitchCaseComponent as ɵw, FocusContainerComponent as ɵx, VerticalFocusContainerComponent as ɵy, FocusableComponent as ɵz };
6891
7270
  //# sourceMappingURL=coolon-angular-ui-powerups.js.map