@coolon/angular-ui-powerups 12.4.0-alpha.6 → 12.4.0-alpha.60

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 (439) hide show
  1. package/assets/activities/activities.scss +77 -0
  2. package/assets/activities/input-activities.scss +36 -0
  3. package/assets/cards.scss +17 -0
  4. package/assets/empty-state.scss +11 -0
  5. package/assets/form.scss +5 -2
  6. package/assets/forms/mixins.scss +6 -0
  7. package/assets/interaction/editor/inline-string-editor.scss +100 -0
  8. package/assets/interaction.scss +10 -7
  9. package/assets/mixins.scss +5 -7
  10. package/assets/styles.scss +8 -15
  11. package/bundles/coolon-angular-ui-powerups-cypress.umd.js +748 -329
  12. package/bundles/coolon-angular-ui-powerups-cypress.umd.js.map +1 -1
  13. package/bundles/coolon-angular-ui-powerups.umd.js +966 -270
  14. package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
  15. package/coolon-angular-ui-powerups.metadata.json +1 -1
  16. package/cypress/component-builder.d.ts +71 -0
  17. package/cypress/components/aup-abstract-activity.d.ts +31 -0
  18. package/cypress/components/aup-abstract-table.d.ts +18 -0
  19. package/cypress/components/aup-activity.d.ts +9 -0
  20. package/cypress/components/aup-alert-dialog.d.ts +27 -0
  21. package/cypress/components/aup-alert.d.ts +9 -0
  22. package/cypress/components/aup-command-face.d.ts +2 -8
  23. package/cypress/components/aup-command.d.ts +2 -1
  24. package/cypress/components/aup-confirm-dialog.d.ts +27 -0
  25. package/cypress/components/aup-confirm.d.ts +11 -0
  26. package/cypress/components/aup-empty-state.d.ts +4 -0
  27. package/cypress/components/aup-input.d.ts +11 -5
  28. package/cypress/components/aup-modal-activity.d.ts +24 -0
  29. package/cypress/components/aup-modal-mixin.d.ts +23 -0
  30. package/cypress/components/aup-table.d.ts +5 -18
  31. package/cypress/components/aup-tree-table.d.ts +16 -0
  32. package/cypress/components/button.d.ts +11 -7
  33. package/cypress/components/form-element-mixin.d.ts +22 -0
  34. package/cypress/components/mat-checkbox.d.ts +31 -0
  35. package/cypress/components/popup/aup-abstract-popup-menu.d.ts +15 -0
  36. package/cypress/components/popup/aup-more-menu.d.ts +5 -0
  37. package/cypress/components/popup/aup-popup-menu-panel.d.ts +3 -0
  38. package/cypress/components/popup/aup-popup-menu.d.ts +7 -0
  39. package/cypress/components/table/aup-table-cell.d.ts +9 -0
  40. package/cypress/components/table/aup-table-column.d.ts +10 -0
  41. package/cypress/components/table/aup-table-row.d.ts +17 -0
  42. package/cypress/components/table/aup-table-selection-cell.d.ts +5 -0
  43. package/cypress/components/table/aup-table-selection-column.d.ts +5 -0
  44. package/cypress/coolon-angular-ui-powerups-cypress.metadata.json +1 -1
  45. package/cypress/element-locator.d.ts +8 -0
  46. package/cypress/exports.d.ts +25 -4
  47. package/cypress/package.json +1 -1
  48. package/cypress/page-builder.d.ts +9 -0
  49. package/cypress/page-element.d.ts +12 -12
  50. package/cypress/page.d.ts +8 -33
  51. package/esm2015/cypress/component-builder.js +92 -0
  52. package/esm2015/cypress/component-builder.js.map +1 -0
  53. package/esm2015/cypress/component-builder.metadata.json +1 -0
  54. package/esm2015/cypress/components/aup-abstract-activity.js +12 -0
  55. package/esm2015/cypress/components/aup-abstract-activity.js.map +1 -0
  56. package/esm2015/cypress/components/aup-abstract-activity.metadata.json +1 -0
  57. package/esm2015/cypress/components/aup-abstract-table.js +50 -0
  58. package/esm2015/cypress/components/aup-abstract-table.js.map +1 -0
  59. package/esm2015/cypress/components/aup-abstract-table.metadata.json +1 -0
  60. package/esm2015/cypress/components/aup-activity.js +13 -0
  61. package/esm2015/cypress/components/aup-activity.js.map +1 -0
  62. package/esm2015/cypress/components/aup-activity.metadata.json +1 -0
  63. package/esm2015/cypress/components/aup-alert-dialog.js +8 -0
  64. package/esm2015/cypress/components/aup-alert-dialog.js.map +1 -0
  65. package/esm2015/cypress/components/aup-alert-dialog.metadata.json +1 -0
  66. package/esm2015/cypress/components/aup-alert.js +13 -0
  67. package/esm2015/cypress/components/aup-alert.js.map +1 -0
  68. package/esm2015/cypress/components/aup-alert.metadata.json +1 -0
  69. package/esm2015/cypress/components/aup-command-face.js +11 -22
  70. package/esm2015/cypress/components/aup-command-face.js.map +1 -1
  71. package/esm2015/cypress/components/aup-command-face.metadata.json +1 -1
  72. package/esm2015/cypress/components/aup-command.js +12 -6
  73. package/esm2015/cypress/components/aup-command.js.map +1 -1
  74. package/esm2015/cypress/components/aup-command.metadata.json +1 -1
  75. package/esm2015/cypress/components/aup-confirm-dialog.js +8 -0
  76. package/esm2015/cypress/components/aup-confirm-dialog.js.map +1 -0
  77. package/esm2015/cypress/components/aup-confirm-dialog.metadata.json +1 -0
  78. package/esm2015/cypress/components/aup-confirm.js +19 -0
  79. package/esm2015/cypress/components/aup-confirm.js.map +1 -0
  80. package/esm2015/cypress/components/aup-confirm.metadata.json +1 -0
  81. package/esm2015/cypress/components/aup-empty-state.js +7 -0
  82. package/esm2015/cypress/components/aup-empty-state.js.map +1 -0
  83. package/esm2015/cypress/components/aup-empty-state.metadata.json +1 -0
  84. package/esm2015/cypress/components/aup-input.js +17 -5
  85. package/esm2015/cypress/components/aup-input.js.map +1 -1
  86. package/esm2015/cypress/components/aup-input.metadata.json +1 -1
  87. package/esm2015/cypress/components/aup-modal-activity.js +5 -0
  88. package/esm2015/cypress/components/aup-modal-activity.js.map +1 -0
  89. package/esm2015/cypress/components/aup-modal-activity.metadata.json +1 -0
  90. package/esm2015/cypress/components/aup-modal-mixin.js +18 -0
  91. package/esm2015/cypress/components/aup-modal-mixin.js.map +1 -0
  92. package/esm2015/cypress/components/aup-modal-mixin.metadata.json +1 -0
  93. package/esm2015/cypress/components/aup-navigation.js +1 -1
  94. package/esm2015/cypress/components/aup-navigation.js.map +1 -1
  95. package/esm2015/cypress/components/aup-table.js +5 -33
  96. package/esm2015/cypress/components/aup-table.js.map +1 -1
  97. package/esm2015/cypress/components/aup-table.metadata.json +1 -1
  98. package/esm2015/cypress/components/aup-tree-table.js +34 -0
  99. package/esm2015/cypress/components/aup-tree-table.js.map +1 -0
  100. package/esm2015/cypress/components/aup-tree-table.metadata.json +1 -0
  101. package/esm2015/cypress/components/button.js +4 -10
  102. package/esm2015/cypress/components/button.js.map +1 -1
  103. package/esm2015/cypress/components/button.metadata.json +1 -1
  104. package/esm2015/cypress/components/form-element-mixin.js +11 -0
  105. package/esm2015/cypress/components/form-element-mixin.js.map +1 -0
  106. package/esm2015/cypress/components/form-element-mixin.metadata.json +1 -0
  107. package/esm2015/cypress/components/mat-checkbox.js +34 -0
  108. package/esm2015/cypress/components/mat-checkbox.js.map +1 -0
  109. package/esm2015/cypress/components/mat-checkbox.metadata.json +1 -0
  110. package/esm2015/cypress/components/popup/aup-abstract-popup-menu.js +33 -0
  111. package/esm2015/cypress/components/popup/aup-abstract-popup-menu.js.map +1 -0
  112. package/esm2015/cypress/components/popup/aup-abstract-popup-menu.metadata.json +1 -0
  113. package/esm2015/cypress/components/popup/aup-more-menu.js +8 -0
  114. package/esm2015/cypress/components/popup/aup-more-menu.js.map +1 -0
  115. package/esm2015/cypress/components/popup/aup-more-menu.metadata.json +1 -0
  116. package/esm2015/cypress/components/popup/aup-popup-menu-panel.js +4 -0
  117. package/esm2015/cypress/components/popup/aup-popup-menu-panel.js.map +1 -0
  118. package/esm2015/cypress/components/popup/aup-popup-menu-panel.metadata.json +1 -0
  119. package/esm2015/cypress/components/popup/aup-popup-menu.js +12 -0
  120. package/esm2015/cypress/components/popup/aup-popup-menu.js.map +1 -0
  121. package/esm2015/cypress/components/popup/aup-popup-menu.metadata.json +1 -0
  122. package/esm2015/cypress/components/table/aup-table-cell.js +14 -0
  123. package/esm2015/cypress/components/table/aup-table-cell.js.map +1 -0
  124. package/esm2015/cypress/components/table/aup-table-cell.metadata.json +1 -0
  125. package/esm2015/cypress/components/table/aup-table-column.js +19 -0
  126. package/esm2015/cypress/components/table/aup-table-column.js.map +1 -0
  127. package/esm2015/cypress/components/table/aup-table-column.metadata.json +1 -0
  128. package/esm2015/cypress/components/table/aup-table-row.js +28 -0
  129. package/esm2015/cypress/components/table/aup-table-row.js.map +1 -0
  130. package/esm2015/cypress/components/table/aup-table-row.metadata.json +1 -0
  131. package/esm2015/cypress/components/table/aup-table-selection-cell.js +6 -0
  132. package/esm2015/cypress/components/table/aup-table-selection-cell.js.map +1 -0
  133. package/esm2015/cypress/components/table/aup-table-selection-cell.metadata.json +1 -0
  134. package/esm2015/cypress/components/table/aup-table-selection-column.js +6 -0
  135. package/esm2015/cypress/components/table/aup-table-selection-column.js.map +1 -0
  136. package/esm2015/cypress/components/table/aup-table-selection-column.metadata.json +1 -0
  137. package/esm2015/cypress/element-locator.js +16 -0
  138. package/esm2015/cypress/element-locator.js.map +1 -0
  139. package/esm2015/cypress/element-locator.metadata.json +1 -0
  140. package/esm2015/cypress/exports.js +25 -4
  141. package/esm2015/cypress/exports.js.map +1 -1
  142. package/esm2015/cypress/exports.metadata.json +1 -1
  143. package/esm2015/cypress/page-builder.js +16 -0
  144. package/esm2015/cypress/page-builder.js.map +1 -0
  145. package/esm2015/cypress/page-builder.metadata.json +1 -0
  146. package/esm2015/cypress/page-element.js +26 -19
  147. package/esm2015/cypress/page-element.js.map +1 -1
  148. package/esm2015/cypress/page-element.metadata.json +1 -1
  149. package/esm2015/cypress/page.js +31 -19
  150. package/esm2015/cypress/page.js.map +1 -1
  151. package/esm2015/cypress/page.metadata.json +1 -1
  152. package/esm2015/cypress/path.js +3 -1
  153. package/esm2015/cypress/path.js.map +1 -1
  154. package/esm2015/lib/angular-ui-powerups.module.ngfactory.js.map +1 -1
  155. package/esm2015/lib/components/busy-overlay/busy-overlay.component.js +1 -1
  156. package/esm2015/lib/components/busy-overlay/busy-overlay.component.metadata.json +1 -1
  157. package/esm2015/lib/components/cards/abstract-card-container.component.js +29 -0
  158. package/esm2015/lib/components/cards/abstract-card-container.component.js.map +1 -0
  159. package/esm2015/lib/components/cards/abstract-card-container.component.metadata.json +1 -0
  160. package/esm2015/lib/components/cards/abstract-card-container.component.ngfactory.js.map +1 -0
  161. package/esm2015/lib/components/cards/card-container/card-container.component.js +123 -0
  162. package/esm2015/lib/components/cards/card-container/card-container.component.js.map +1 -0
  163. package/esm2015/lib/components/cards/card-container/card-container.component.metadata.json +1 -0
  164. package/esm2015/lib/components/cards/card-container/card-container.component.ngfactory.js.map +1 -0
  165. package/esm2015/lib/components/cards/card-container/card-container.component.scss.shim.ngstyle.js.map +1 -0
  166. package/esm2015/lib/components/cards/card-stack/card-stack.component.js +78 -0
  167. package/esm2015/lib/components/cards/card-stack/card-stack.component.js.map +1 -0
  168. package/esm2015/lib/components/cards/card-stack/card-stack.component.metadata.json +1 -0
  169. package/esm2015/lib/components/cards/card-stack/card-stack.component.ngfactory.js.map +1 -0
  170. package/esm2015/lib/components/cards/card-stack/card-stack.component.scss.shim.ngstyle.js.map +1 -0
  171. package/esm2015/lib/components/commands/command/command.component.js +1 -1
  172. package/esm2015/lib/components/commands/command/command.component.metadata.json +1 -1
  173. package/esm2015/lib/components/commands/command-face/command-face.component.js +1 -1
  174. package/esm2015/lib/components/commands/command-face/command-face.component.metadata.json +1 -1
  175. package/esm2015/lib/components/commands/group/tool-bar/tool-bar.component.js +1 -1
  176. package/esm2015/lib/components/commands/group/tool-bar/tool-bar.component.metadata.json +1 -1
  177. package/esm2015/lib/components/components.module.js +37 -24
  178. package/esm2015/lib/components/components.module.js.map +1 -1
  179. package/esm2015/lib/components/components.module.metadata.json +1 -1
  180. package/esm2015/lib/components/components.module.ngfactory.js.map +1 -1
  181. package/esm2015/lib/components/empty-state/empty-state.component.js +1 -1
  182. package/esm2015/lib/components/empty-state/empty-state.component.metadata.json +1 -1
  183. package/esm2015/lib/components/exports.js +5 -3
  184. package/esm2015/lib/components/exports.js.map +1 -1
  185. package/esm2015/lib/components/exports.metadata.json +1 -1
  186. package/esm2015/lib/components/focus-container/focus-container.component.js +1 -1
  187. package/esm2015/lib/components/focus-container/focus-container.component.metadata.json +1 -1
  188. package/esm2015/lib/components/forms/abstract-input.component.js +1 -0
  189. package/esm2015/lib/components/forms/abstract-input.component.js.map +1 -1
  190. package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.js +1 -1
  191. package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.metadata.json +1 -1
  192. package/esm2015/lib/components/forms/checkbox-input/checkbox-input.component.js +1 -1
  193. package/esm2015/lib/components/forms/checkbox-input/checkbox-input.component.metadata.json +1 -1
  194. package/esm2015/lib/components/forms/multiple-select-input/multiple-select-input.component.js +1 -1
  195. package/esm2015/lib/components/forms/multiple-select-input/multiple-select-input.component.metadata.json +1 -1
  196. package/esm2015/lib/components/forms/select-input/select-input.component.js +1 -1
  197. package/esm2015/lib/components/forms/select-input/select-input.component.metadata.json +1 -1
  198. package/esm2015/lib/components/forms/string-input/string-input.component.js +1 -1
  199. package/esm2015/lib/components/forms/string-input/string-input.component.metadata.json +1 -1
  200. package/esm2015/lib/components/forms/text-input/text-input.component.js +1 -1
  201. package/esm2015/lib/components/forms/text-input/text-input.component.metadata.json +1 -1
  202. package/esm2015/lib/components/icon/icon.component.js +1 -1
  203. package/esm2015/lib/components/icon/icon.component.metadata.json +1 -1
  204. package/esm2015/lib/components/labelled-value/labelled-value.component.js +22 -0
  205. package/esm2015/lib/components/labelled-value/labelled-value.component.js.map +1 -0
  206. package/esm2015/lib/components/labelled-value/labelled-value.component.metadata.json +1 -0
  207. package/esm2015/lib/components/labelled-value/labelled-value.component.ngfactory.js.map +1 -0
  208. package/esm2015/lib/components/{card-container/card-container.component.scss.shim.ngstyle.js.map → labelled-value/labelled-value.component.scss.shim.ngstyle.js.map} +1 -1
  209. package/esm2015/lib/components/loading-container/loading-container.component.js +45 -0
  210. package/esm2015/lib/components/loading-container/loading-container.component.js.map +1 -0
  211. package/esm2015/lib/components/loading-container/loading-container.component.metadata.json +1 -0
  212. package/esm2015/lib/components/loading-container/loading-container.component.ngfactory.js.map +1 -0
  213. package/esm2015/lib/components/loading-container/loading-container.component.scss.shim.ngstyle.js.map +1 -0
  214. package/esm2015/lib/components/noop/noop.component.js +1 -1
  215. package/esm2015/lib/components/noop/noop.component.metadata.json +1 -1
  216. package/esm2015/lib/components/scroll-container/scroll-container.component.js +1 -1
  217. package/esm2015/lib/components/scroll-container/scroll-container.component.metadata.json +1 -1
  218. package/esm2015/lib/components/section-header/section-header.component.js +12 -5
  219. package/esm2015/lib/components/section-header/section-header.component.js.map +1 -1
  220. package/esm2015/lib/components/section-header/section-header.component.metadata.json +1 -1
  221. package/esm2015/lib/components/switch-case/switch-case.component.js +1 -1
  222. package/esm2015/lib/components/switch-case/switch-case.component.metadata.json +1 -1
  223. package/esm2015/lib/components/tables/abstract-table-model.js +6 -2
  224. package/esm2015/lib/components/tables/abstract-table-model.js.map +1 -1
  225. package/esm2015/lib/components/tables/abstract-table-model.metadata.json +1 -1
  226. package/esm2015/lib/components/tables/table/column-model.js.map +1 -1
  227. package/esm2015/lib/components/tables/table/column-model.metadata.json +1 -1
  228. package/esm2015/lib/components/tables/table/edit-row-controls/edit-row-controls.component.js +1 -1
  229. package/esm2015/lib/components/tables/table/edit-row-controls/edit-row-controls.component.metadata.json +1 -1
  230. package/esm2015/lib/components/tables/table/paginator/paginator.component.js +1 -1
  231. package/esm2015/lib/components/tables/table/paginator/paginator.component.metadata.json +1 -1
  232. package/esm2015/lib/components/tables/table/table-header-cell-renderer/table-header-cell-renderer.component.js +1 -1
  233. package/esm2015/lib/components/tables/table/table-header-cell-renderer/table-header-cell-renderer.component.metadata.json +1 -1
  234. package/esm2015/lib/components/tables/table/table.component.js +1 -1
  235. package/esm2015/lib/components/tables/table/table.component.metadata.json +1 -1
  236. package/esm2015/lib/components/tables/tree-table/flattened-tree-list-model.js +4 -4
  237. package/esm2015/lib/components/tables/tree-table/flattened-tree-list-model.js.map +1 -1
  238. package/esm2015/lib/components/tables/tree-table/flattened-tree-list-model.metadata.json +1 -1
  239. package/esm2015/lib/components/tables/tree-table/tree-inheritance-icon/tree-inheritance-icon.component.js +1 -1
  240. package/esm2015/lib/components/tables/tree-table/tree-inheritance-icon/tree-inheritance-icon.component.metadata.json +1 -1
  241. package/esm2015/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.js +13 -4
  242. package/esm2015/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.js.map +1 -1
  243. package/esm2015/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.metadata.json +1 -1
  244. package/esm2015/lib/components/tables/tree-table/tree-table-component.js +1 -1
  245. package/esm2015/lib/components/tables/tree-table/tree-table-component.js.map +1 -1
  246. package/esm2015/lib/components/tables/tree-table/tree-table-component.metadata.json +1 -1
  247. package/esm2015/lib/components/tables/tree-table/tree-table-model.js +1 -0
  248. package/esm2015/lib/components/tables/tree-table/tree-table-model.js.map +1 -1
  249. package/esm2015/lib/components/track-by.js +12 -0
  250. package/esm2015/lib/components/track-by.js.map +1 -1
  251. package/esm2015/lib/components/vertical-focus-container/vertical-focus-container.component.js +1 -1
  252. package/esm2015/lib/components/vertical-focus-container/vertical-focus-container.component.metadata.json +1 -1
  253. package/esm2015/lib/directives/directives.module.ngfactory.js.map +1 -1
  254. package/esm2015/lib/interaction/components/activity-actions/activity-actions.component.js +17 -11
  255. package/esm2015/lib/interaction/components/activity-actions/activity-actions.component.js.map +1 -1
  256. package/esm2015/lib/interaction/components/activity-actions/activity-actions.component.metadata.json +1 -1
  257. package/esm2015/lib/interaction/components/activity-container/activity-container.component.js +2 -2
  258. package/esm2015/lib/interaction/components/activity-container/activity-container.component.js.map +1 -1
  259. package/esm2015/lib/interaction/components/activity-container/activity-container.component.metadata.json +1 -1
  260. package/esm2015/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.js +1 -1
  261. package/esm2015/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.metadata.json +1 -1
  262. package/esm2015/lib/interaction/components/activity-title/activity-title.component.js +1 -1
  263. package/esm2015/lib/interaction/components/activity-title/activity-title.component.metadata.json +1 -1
  264. package/esm2015/lib/interaction/components/activity-triggers/abstract-activity-trigger.component.js +4 -0
  265. package/esm2015/lib/interaction/components/activity-triggers/abstract-activity-trigger.component.js.map +1 -1
  266. package/esm2015/lib/interaction/components/activity-triggers/abstract-activity-trigger.component.metadata.json +1 -1
  267. package/esm2015/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.js +5 -2
  268. package/esm2015/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.js.map +1 -1
  269. package/esm2015/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.metadata.json +1 -1
  270. package/esm2015/lib/interaction/components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component.js +5 -2
  271. package/esm2015/lib/interaction/components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component.js.map +1 -1
  272. package/esm2015/lib/interaction/components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component.metadata.json +1 -1
  273. package/esm2015/lib/interaction/components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component.js +5 -2
  274. package/esm2015/lib/interaction/components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component.js.map +1 -1
  275. package/esm2015/lib/interaction/components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component.metadata.json +1 -1
  276. package/esm2015/lib/interaction/components/add-card-activity/add-card-activity.component.js +77 -0
  277. package/esm2015/lib/interaction/components/add-card-activity/add-card-activity.component.js.map +1 -0
  278. package/esm2015/lib/interaction/components/add-card-activity/add-card-activity.component.metadata.json +1 -0
  279. package/esm2015/lib/interaction/components/add-card-activity/add-card-activity.component.ngfactory.js.map +1 -0
  280. package/esm2015/lib/interaction/components/add-card-activity/add-card-activity.component.scss.shim.ngstyle.js.map +1 -0
  281. package/esm2015/lib/interaction/components/add-item-interaction-context/add-item-interaction-context.component.js +1 -1
  282. package/esm2015/lib/interaction/components/add-item-interaction-context/add-item-interaction-context.component.metadata.json +1 -1
  283. package/esm2015/lib/interaction/components/alert-dialog/alert-dialog.component.js +1 -1
  284. package/esm2015/lib/interaction/components/alert-dialog/alert-dialog.component.metadata.json +1 -1
  285. package/esm2015/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.js +1 -1
  286. package/esm2015/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.metadata.json +1 -1
  287. package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +1 -1
  288. package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.metadata.json +1 -1
  289. package/esm2015/lib/interaction/components/editors/edit-context.js +2 -0
  290. package/esm2015/lib/interaction/components/editors/edit-context.js.map +1 -0
  291. package/esm2015/lib/interaction/components/editors/edit-context.metadata.json +1 -0
  292. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-editor-model.js +50 -0
  293. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-editor-model.js.map +1 -0
  294. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-editor-model.metadata.json +1 -0
  295. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.js +161 -0
  296. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.js.map +1 -0
  297. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.metadata.json +1 -0
  298. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.ngfactory.js.map +1 -0
  299. package/esm2015/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.js +7 -3
  300. package/esm2015/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.js.map +1 -1
  301. package/esm2015/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.metadata.json +1 -1
  302. package/esm2015/lib/interaction/components/input-activities/input-activity.js +95 -0
  303. package/esm2015/lib/interaction/components/input-activities/input-activity.js.map +1 -0
  304. package/esm2015/lib/interaction/components/input-activities/input-activity.metadata.json +1 -0
  305. package/esm2015/lib/interaction/components/input-activities/input-activity.ngfactory.js.map +1 -0
  306. package/esm2015/lib/interaction/components/input-activities/select-input-activity.js +5 -3
  307. package/esm2015/lib/interaction/components/input-activities/select-input-activity.js.map +1 -1
  308. package/esm2015/lib/interaction/components/input-activities/select-input-activity.metadata.json +1 -1
  309. package/esm2015/lib/interaction/components/input-activities/string-input-activity.js +6 -4
  310. package/esm2015/lib/interaction/components/input-activities/string-input-activity.js.map +1 -1
  311. package/esm2015/lib/interaction/components/input-activities/string-input-activity.metadata.json +1 -1
  312. package/esm2015/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.js +2 -1
  313. package/esm2015/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.js.map +1 -1
  314. package/esm2015/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.metadata.json +1 -1
  315. package/esm2015/lib/interaction/exports.js +5 -3
  316. package/esm2015/lib/interaction/exports.js.map +1 -1
  317. package/esm2015/lib/interaction/exports.metadata.json +1 -1
  318. package/esm2015/lib/interaction/interaction.module.js +19 -5
  319. package/esm2015/lib/interaction/interaction.module.js.map +1 -1
  320. package/esm2015/lib/interaction/interaction.module.metadata.json +1 -1
  321. package/esm2015/lib/interaction/interaction.module.ngfactory.js.map +1 -1
  322. package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.js +1 -1
  323. package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.metadata.json +1 -1
  324. package/esm2015/lib/place/components/not-authorised-notice/not-authorised-notice.component.js +1 -1
  325. package/esm2015/lib/place/components/not-authorised-notice/not-authorised-notice.component.metadata.json +1 -1
  326. package/esm2015/lib/place/components/place-outlet/place-outlet.component.js +1 -1
  327. package/esm2015/lib/place/components/place-outlet/place-outlet.component.metadata.json +1 -1
  328. package/esm2015/lib/place/components/side-place-navigation/side-place-navigation.component.js +1 -1
  329. package/esm2015/lib/place/components/side-place-navigation/side-place-navigation.component.metadata.json +1 -1
  330. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +1 -1
  331. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.metadata.json +1 -1
  332. package/esm2015/lib/place/guards/consolidated-param-map.js +2 -1
  333. package/esm2015/lib/place/guards/consolidated-param-map.js.map +1 -1
  334. package/esm2015/lib/place/guards/consolidated-param-map.metadata.json +1 -1
  335. package/esm2015/lib/place/guards/place.guard.js +2 -1
  336. package/esm2015/lib/place/guards/place.guard.js.map +1 -1
  337. package/esm2015/lib/place/place-component.js +31 -4
  338. package/esm2015/lib/place/place-component.js.map +1 -1
  339. package/esm2015/lib/place/place-component.metadata.json +1 -1
  340. package/esm2015/lib/place/place-router.js +10 -13
  341. package/esm2015/lib/place/place-router.js.map +1 -1
  342. package/esm2015/lib/place/place-router.metadata.json +1 -1
  343. package/esm2015/lib/place/place.module.ngfactory.js.map +1 -1
  344. package/esm2015/lib/place/url-snapshot.js +1 -7
  345. package/esm2015/lib/place/url-snapshot.js.map +1 -1
  346. package/esm2015/lib/place/url-snapshot.metadata.json +1 -1
  347. package/esm2015/lib/place/visit.js +5 -1
  348. package/esm2015/lib/place/visit.js.map +1 -1
  349. package/esm2015/lib/place/visit.metadata.json +1 -1
  350. package/fesm2015/coolon-angular-ui-powerups-cypress.js +550 -237
  351. package/fesm2015/coolon-angular-ui-powerups-cypress.js.map +1 -1
  352. package/fesm2015/coolon-angular-ui-powerups.js +773 -178
  353. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  354. package/lib/components/cards/abstract-card-container.component.d.ts +11 -0
  355. package/lib/components/{card-container → cards/card-container}/card-container.component.d.ts +30 -9
  356. package/lib/components/cards/card-stack/card-stack.component.d.ts +65 -0
  357. package/lib/components/exports.d.ts +5 -3
  358. package/lib/components/labelled-value/labelled-value.component.d.ts +7 -0
  359. package/lib/components/loading-container/loading-container.component.d.ts +11 -0
  360. package/lib/components/section-header/section-header.component.d.ts +5 -2
  361. package/lib/components/tables/abstract-table-model.d.ts +4 -3
  362. package/lib/components/tables/table/column-model.d.ts +1 -1
  363. package/lib/components/tables/tree-table/flattened-tree-list-model.d.ts +0 -1
  364. package/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.d.ts +1 -1
  365. package/lib/components/tables/tree-table/tree-table-component.d.ts +1 -1
  366. package/lib/components/tables/tree-table/tree-table-model.d.ts +4 -5
  367. package/lib/components/track-by.d.ts +9 -0
  368. package/lib/interaction/components/activity-actions/activity-actions.component.d.ts +14 -3
  369. package/lib/interaction/components/activity-triggers/abstract-activity-trigger.component.d.ts +1 -1
  370. package/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.d.ts +2 -1
  371. package/lib/interaction/components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component.d.ts +2 -1
  372. package/lib/interaction/components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component.d.ts +2 -1
  373. package/lib/interaction/components/add-card-activity/add-card-activity.component.d.ts +39 -0
  374. package/lib/interaction/components/editors/edit-context.d.ts +3 -0
  375. package/lib/interaction/components/editors/inline-string-editor/inline-editor-model.d.ts +24 -0
  376. package/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.d.ts +57 -0
  377. package/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.d.ts +1 -0
  378. package/lib/interaction/components/input-activities/input-activity.d.ts +41 -0
  379. package/lib/interaction/components/input-activities/select-input-activity.d.ts +11 -3
  380. package/lib/interaction/components/input-activities/string-input-activity.d.ts +6 -2
  381. package/lib/interaction/exports.d.ts +5 -3
  382. package/lib/place/place-component.d.ts +6 -1
  383. package/lib/place/place-router.d.ts +2 -2
  384. package/package.json +16 -16
  385. package/schematics/activity/templates/component/__name@dasherize__.component.html.template +1 -1
  386. package/schematics/activity/templates/component/__name@dasherize__.component.ts.template +5 -3
  387. package/schematics/component/index.js +1 -1
  388. package/schematics/component/index.js.map +1 -1
  389. package/schematics/component/templates/component/__name@dasherize__.component.ts.template +1 -1
  390. package/schematics/place-routes/place-class-scanner.js +3 -1
  391. package/schematics/place-routes/place-class-scanner.js.map +1 -1
  392. package/schematics/utils/build-context.d.ts +6 -3
  393. package/schematics/utils/build-context.js +3 -3
  394. package/schematics/utils/build-context.js.map +1 -1
  395. package/schematics/utils/workspace.d.ts +1 -0
  396. package/schematics/utils/workspace.js +11 -3
  397. package/schematics/utils/workspace.js.map +1 -1
  398. package/assets/activities.scss +0 -70
  399. package/cypress/components/aup-more-menu.d.ts +0 -4
  400. package/cypress/components/aup-popup-menu.d.ts +0 -7
  401. package/cypress/components/button-mixin.d.ts +0 -19
  402. package/cypress/section.d.ts +0 -52
  403. package/esm2015/cypress/components/aup-more-menu.js +0 -7
  404. package/esm2015/cypress/components/aup-more-menu.js.map +0 -1
  405. package/esm2015/cypress/components/aup-more-menu.metadata.json +0 -1
  406. package/esm2015/cypress/components/aup-popup-menu.js +0 -19
  407. package/esm2015/cypress/components/aup-popup-menu.js.map +0 -1
  408. package/esm2015/cypress/components/aup-popup-menu.metadata.json +0 -1
  409. package/esm2015/cypress/components/button-mixin.js +0 -15
  410. package/esm2015/cypress/components/button-mixin.js.map +0 -1
  411. package/esm2015/cypress/components/button-mixin.metadata.json +0 -1
  412. package/esm2015/cypress/section.js +0 -72
  413. package/esm2015/cypress/section.js.map +0 -1
  414. package/esm2015/cypress/section.metadata.json +0 -1
  415. package/esm2015/lib/components/card-container/card-container.component.js +0 -84
  416. package/esm2015/lib/components/card-container/card-container.component.js.map +0 -1
  417. package/esm2015/lib/components/card-container/card-container.component.metadata.json +0 -1
  418. package/esm2015/lib/components/card-container/card-container.component.ngfactory.js.map +0 -1
  419. package/esm2015/lib/components/tables/tree-table/tree-node.js +0 -2
  420. package/esm2015/lib/components/tables/tree-table/tree-node.js.map +0 -1
  421. package/esm2015/lib/components/tables/tree-table/tree-node.metadata.json +0 -1
  422. package/esm2015/lib/components/tables/tree-table/visitable.class.js +0 -26
  423. package/esm2015/lib/components/tables/tree-table/visitable.class.js.map +0 -1
  424. package/esm2015/lib/components/tables/tree-table/visitable.class.metadata.json +0 -1
  425. package/esm2015/lib/interaction/components/input-activities/abstract-input-activity.js +0 -43
  426. package/esm2015/lib/interaction/components/input-activities/abstract-input-activity.js.map +0 -1
  427. package/esm2015/lib/interaction/components/input-activities/abstract-input-activity.metadata.json +0 -1
  428. package/esm2015/lib/interaction/components/input-activities/abstract-input-activity.ngfactory.js.map +0 -1
  429. package/esm2015/lib/interaction/components/input-activities/input-activity-data.js +0 -2
  430. package/esm2015/lib/interaction/components/input-activities/input-activity-data.js.map +0 -1
  431. package/esm2015/lib/interaction/components/input-activities/input-activity-data.metadata.json +0 -1
  432. package/esm2015/lib/interaction/components/input-activities/select-input-activity-data.js +0 -2
  433. package/esm2015/lib/interaction/components/input-activities/select-input-activity-data.js.map +0 -1
  434. package/esm2015/lib/interaction/components/input-activities/select-input-activity-data.metadata.json +0 -1
  435. package/lib/components/tables/tree-table/tree-node.d.ts +0 -3
  436. package/lib/components/tables/tree-table/visitable.class.d.ts +0 -22
  437. package/lib/interaction/components/input-activities/abstract-input-activity.d.ts +0 -12
  438. package/lib/interaction/components/input-activities/input-activity-data.d.ts +0 -11
  439. package/lib/interaction/components/input-activities/select-input-activity-data.d.ts +0 -8
@@ -1,7 +1,7 @@
1
1
  import * as i2 from '@angular/common';
2
2
  import { DOCUMENT, CommonModule, Location } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { Directive, ElementRef, Inject, Host, Optional, Input, HostListener, NgZone, Injectable, Pipe, NgModule, Component, ContentChild, ViewEncapsulation, HostBinding, InjectionToken, ViewChildren, SkipSelf, EventEmitter, ViewChild, Output, Self, TemplateRef, ChangeDetectorRef, ContentChildren, ViewContainerRef, Injector, ComponentFactoryResolver } from '@angular/core';
4
+ import { Directive, ElementRef, Inject, Host, Optional, Input, HostListener, NgZone, Injectable, Pipe, NgModule, Component, ContentChild, HostBinding, ViewEncapsulation, InjectionToken, ViewChildren, SkipSelf, EventEmitter, ViewChild, Output, Self, TemplateRef, ChangeDetectorRef, ContentChildren, ViewContainerRef, Injector, ComponentFactoryResolver } from '@angular/core';
5
5
  import { FormsModule } from '@angular/forms';
6
6
  import { MatFormFieldModule } from '@angular/material/form-field';
7
7
  import { MatInputModule } from '@angular/material/input';
@@ -16,21 +16,23 @@ import { MatCheckboxModule } from '@angular/material/checkbox';
16
16
  import { MatDividerModule } from '@angular/material/divider';
17
17
  import { MatIconModule } from '@angular/material/icon';
18
18
  import { MatMenuItem, MatMenuTrigger, MatMenuModule } from '@angular/material/menu';
19
+ import { MatProgressBarModule } from '@angular/material/progress-bar';
19
20
  import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
20
21
  import { MatTableModule } from '@angular/material/table';
21
22
  import { MatTooltipModule } from '@angular/material/tooltip';
22
23
  import { FontAwesomeModule, FaIconLibrary } from '@fortawesome/angular-fontawesome';
23
24
  import { fas } from '@fortawesome/free-solid-svg-icons';
24
- import { GarbageCollector, DelegatingValueModel, assert, UnaryCommand, lang, Dsl, Logger, TrackExternal, ValueModel, StoreInValueModel, Command, MutableListModel, StoreInListModel, Disposable, MutableValueModel, DelegatingListModel, FocusManager, EventListenerList, Form, Guard, Binding, DebugContext, ListModel, MultipleSelectionModel, DelegatingSelectionModel, AbstractComputedListModel, DirtyTrackingForm, ComputedListModel, PageController, Deferred, Trace, Functions } from '@coolon/pectin';
25
+ import { GarbageCollector, DelegatingValueModel, assert, UnaryCommand, lang, Dsl, Logger, TrackExternal, ValueModel, StoreInValueModel, Command, MutableListModel, StoreInListModel, Disposable, MutableValueModel, DelegatingListModel, FocusManager, EventListenerList, Form, Guard, Binding, DebugContext, ListModel, MultipleSelectionModel, DelegatingSelectionModel, AbstractComputedListModel, DirtyTrackingForm, ComputedListModel, PageController, Deferred, Functions } from '@coolon/pectin';
25
26
  import { __decorate, __metadata, __awaiter } from 'tslib';
26
27
  import { DomSanitizer } from '@angular/platform-browser';
27
28
  import * as _ from 'lodash';
28
29
  import ___default from 'lodash';
29
30
  import { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';
30
31
  import { Enum } from 'typescript-string-enums';
31
- import { assert as assert$1, Stringy, lang as lang$1, Opts, Klass } from '@coolon/typescript-utilities';
32
+ import { lang as lang$1, assert as assert$1, Stringy, Opts, Klass } from '@coolon/typescript-utilities';
32
33
  import ResizeObserver from 'resize-observer-polyfill';
33
34
  import produce from 'immer';
35
+ import { A11yModule } from '@angular/cdk/a11y';
34
36
  import { FlexModule, GridModule } from '@angular/flex-layout';
35
37
  import * as i1$1 from '@angular/material/dialog';
36
38
  import { MatDialogModule, MatDialog, MatDialogConfig, MAT_DIALOG_DEFAULT_OPTIONS } from '@angular/material/dialog';
@@ -401,7 +403,7 @@ BusyOverlayComponent.decorators = [
401
403
  { type: Component, args: [{
402
404
  selector: 'aup-busy-overlay',
403
405
  template: "<ng-content></ng-content>\n<div class=\"busy-overlay-backdrop\" *ngIf=\"busyModel.value\">\n <mat-progress-spinner mode=\"indeterminate\" [diameter]=\"52\"></mat-progress-spinner>\n</div>\n",
404
- styles: [":host{position:relative}div.busy-overlay-backdrop{position:absolute;background-color:rgba(0,0,0,.2);top:0;left:0;bottom:0;right:0;display:grid;grid-template-columns:auto;grid-template-rows:auto;place-content:center}"]
406
+ styles: [":host{position:relative}div.busy-overlay-backdrop{position:absolute;background-color:#0003;top:0;left:0;bottom:0;right:0;display:grid;grid-template-columns:auto;grid-template-rows:auto;place-content:center}\n"]
405
407
  },] }
406
408
  ];
407
409
  BusyOverlayComponent.ctorParameters = () => [];
@@ -526,6 +528,30 @@ var CommandFace;
526
528
  CommandFace.Adapter = Adapter;
527
529
  })(CommandFace || (CommandFace = {}));
528
530
 
531
+ class AbstractCardContainerComponent extends DisposableComponent {
532
+ constructor() {
533
+ super();
534
+ }
535
+ ngOnInit() {
536
+ }
537
+ }
538
+ AbstractCardContainerComponent.decorators = [
539
+ { type: Component, args: [{
540
+ selector: 'aup-abstract-card-container',
541
+ template: ''
542
+ },] }
543
+ ];
544
+ AbstractCardContainerComponent.ctorParameters = () => [];
545
+ AbstractCardContainerComponent.propDecorators = {
546
+ addCardCommand: [{ type: Input }],
547
+ addCardFace: [{ type: Input }],
548
+ addCardTemplate: [{ type: ContentChild, args: ['addCardTemplate',] }]
549
+ };
550
+ __decorate([
551
+ TrackExternal(),
552
+ __metadata("design:type", Command)
553
+ ], AbstractCardContainerComponent.prototype, "addCardCommand", void 0);
554
+
529
555
  /**
530
556
  * @example
531
557
  * // basic usage
@@ -543,6 +569,13 @@ var CommandFace;
543
569
  * <my-card *ngFor="..."></my-card>
544
570
  * </aup-card-container>
545
571
  *
572
+ * // use the aup-add-card-activity to display as the new card place holder and to run
573
+ * // the activity inside teh card
574
+ * <aup-card-container [addCardCommand]="addCard" [addCardFace]="i18n.addCard" >
575
+ * <my-card *ngFor="..."></my-card>
576
+ * <aup-add-card-activity type="inline" renderAs="card" [face]="i18n.commands.addModal" [activityClass]="AddCardActivity"></aup-add-card-activity>
577
+ * </aup-card-container>
578
+ *
546
579
  * // adds an add card component using the specified template. The template
547
580
  * // will fill it's container in the grid.
548
581
  * <aup-card-container>
@@ -575,35 +608,144 @@ var CommandFace;
575
608
  * aup-card-container {
576
609
  * --card-gap: var(--card-gap, 16px);
577
610
  * --card-width: var(--card-width, 300px);
611
+ * --card-max-width: auto;
578
612
  * --card-height: var(--card-height, auto);
579
613
  * --card-min-height: var(--card-min-height, auto);
580
614
  * --card-background: var(--card-background, #fcfcfb);
581
615
  * }
582
616
  */
583
- class CardContainerComponent extends DisposableComponent {
584
- constructor() {
617
+ class CardContainerComponent extends AbstractCardContainerComponent {
618
+ constructor(elementRef) {
585
619
  super();
620
+ this.elementRef = elementRef;
621
+ /**
622
+ * Enable scrolling. If true the container will have height==0 so you must set it's height explicitly
623
+ * or place in a layout that will stretch it such as a grid or flex layout.
624
+ */
625
+ this.enabledScroll = false;
626
+ }
627
+ set columnCount(count) {
628
+ if (!_.isNil(count) && (!_.isInteger(count) || count < 1)) {
629
+ lang$1.illegalState('columnCount must be a positive integer or nil');
630
+ }
631
+ this._columnCount = count;
632
+ this.updateColumnCountStyles();
633
+ }
634
+ get columnCount() {
635
+ return this._columnCount;
586
636
  }
587
637
  ngOnInit() {
638
+ super.ngOnInit();
639
+ this.updateColumnCountStyles();
640
+ }
641
+ get isAutoColumns() {
642
+ return _.isNil(this._columnCount);
643
+ }
644
+ get isSingleColumn() {
645
+ return this._columnCount === 1;
646
+ }
647
+ updateColumnCountStyles() {
648
+ const el = this.elementRef.nativeElement;
649
+ if (_.isNil(this._columnCount)) {
650
+ el.style.setProperty('--aup-card-container-column-count', '');
651
+ }
652
+ else {
653
+ el.style.setProperty('--aup-card-container-column-count', this._columnCount);
654
+ }
588
655
  }
589
656
  }
590
657
  CardContainerComponent.decorators = [
591
658
  { type: Component, args: [{
592
659
  selector: 'aup-card-container',
593
- 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-command-face *ngIf=\"addCardFace\" [faces]=\"[addCardFace]\"></aup-command-face>\n <aup-icon *ngIf=\"!addCardFace\" 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",
594
- styles: [":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:grid;grid-template-columns:repeat(auto-fill,var(--resolved-card-width));grid-auto-rows:minmax(var(--resolved-card-min-height),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:hsla(0,0%,100%,.8);transition:all .28s cubic-bezier(.4,0,.2,1)}.add-card-container mat-icon{font-size:200%}.add-card-container:hover{transition:box-shadow .28s cubic-bezier(.4,0,.2,1);transition:all .28s 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}"]
660
+ template: "<div class=\"header-container\">\n <ng-content select=\"[card-container-header]\"></ng-content>\n</div>\n\n<ng-template #content>\n <div class=\"card-container\">\n <ng-content></ng-content>\n\n <div class=\"add-card-container\" *ngIf=\"addCardCommand.enabled.value\" [pectinCommand]=\"addCardCommand\">\n <aup-command-face *ngIf=\"addCardFace\" [faces]=\"[addCardFace]\"></aup-command-face>\n <aup-icon *ngIf=\"!addCardFace\" 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 </div>\n</ng-template>\n\n<div class=\"no-scroll-container\" *ngIf=\"!enabledScroll\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</div>\n\n<aup-scroll-container *ngIf=\"enabledScroll\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</aup-scroll-container>\n\n<div class=\"footer-container\">\n <ng-content select=\"[card-container-footer]\"></ng-content>\n</div>\n\n",
661
+ styles: [":host{--resolved-card-gap: var(--card-gap, 16px);--resolved-card-width: var(--card-width, 300px);--resolved-card-max-width: var(--card-max-width, auto);--resolved-card-height: var(--card-height, auto);--resolved-card-min-height: var(--card-min-height, auto);--resolved-card-background: var(--card-background, var(--aup-card-container-default-background-color));flex:1;display:flex;flex-direction:column;align-items:stretch;background:var(--resolved-card-background)}:host.auto-columns .card-container{grid-template-columns:repeat(auto-fit,minmax(var(--resolved-card-width),var(--resolved-card-max-width)));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))}:host:not(.auto-columns) .card-container{grid-template-columns:repeat(var(--aup-card-container-column-count),1fr)}.card-container{display:grid;box-sizing:border-box;padding:var(--resolved-card-gap);min-height:calc(var(--resolved-card-height) + 2 * var(--resolved-card-gap));max-width:100%;grid-auto-rows:minmax(var(--resolved-card-min-height),var(--resolved-card-height));grid-gap:var(--resolved-card-gap)}aup-scroll-container,.no-scroll-container{flex:1}.add-card-container{height:var(--resolved-card-height);min-height:var(--resolved-card-min-height);display:flex;flex-direction:column;align-items:center;justify-content:center;transition:box-shadow .28s cubic-bezier(.4,0,.2,1);box-sizing:border-box;border:2px dashed rgba(0,0,0,.1);border-radius:6px;font-weight:300;cursor:pointer;color:#0000008a;background-color:#fffc}.add-card-container mat-icon{font-size:200%}.add-card-container:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.add-card-container:hover{border-color:transparent;background-color:#fff;color:#0000008a}.add-card-template-container{height:var(--resolved-card-height);min-height:var(--resolved-card-min-height);display:flex;flex-direction:column;align-items:stretch;justify-content:stretch}\n"]
595
662
  },] }
596
663
  ];
597
- CardContainerComponent.ctorParameters = () => [];
664
+ CardContainerComponent.ctorParameters = () => [
665
+ { type: ElementRef }
666
+ ];
598
667
  CardContainerComponent.propDecorators = {
599
- addCardCommand: [{ type: Input }],
600
- addCardFace: [{ type: Input }],
601
- addCardTemplate: [{ type: ContentChild, args: ["addCardTemplate",] }]
668
+ columnCount: [{ type: Input }],
669
+ enabledScroll: [{ type: Input }],
670
+ isAutoColumns: [{ type: HostBinding, args: ['class.auto-columns',] }],
671
+ isSingleColumn: [{ type: HostBinding, args: ['class.single-column',] }]
602
672
  };
603
- __decorate([
604
- TrackExternal(),
605
- __metadata("design:type", Command)
606
- ], CardContainerComponent.prototype, "addCardCommand", void 0);
673
+
674
+ /**
675
+ * @deprecated deprecated, use `aup-card-container [columnCount]="1"` instead.
676
+ * @example
677
+ * // basic usage
678
+ * <aup-card-stack>
679
+ * <my-card *ngFor="..."></my-card>
680
+ * </aup-card-stack>
681
+ *
682
+ * // adds an add button with a the '+' icon to the end of the card list.
683
+ * <aup-card-stack [addCardCommand]="addCard">
684
+ * <my-card *ngFor="..."></my-card>
685
+ * </aup-card-stack>
686
+ *
687
+ * // adds an add button with the specified face
688
+ * <aup-card-stack [addCardCommand]="addCard" [addCardFace]="i18n.addCard" >
689
+ * <my-card *ngFor="..."></my-card>
690
+ * </aup-card-stack>
691
+ *
692
+ * // use the aup-add-card-activity to display as the new card place holder and to run
693
+ * // the activity inside teh card
694
+ * <aup-card-stack [addCardCommand]="addCard" [addCardFace]="i18n.addCard" >
695
+ * <my-card *ngFor="..."></my-card>
696
+ * <aup-add-card-activity type="inline" renderAs="card" [face]="i18n.commands.addModal" [activityClass]="AddCardActivity"></aup-add-card-activity>
697
+ * </aup-card-stack>
698
+ *
699
+ * // adds an add card component using the specified template. The template
700
+ * // will fill it's container in the grid.
701
+ * <aup-card-stack>
702
+ * <my-card *ngFor="..."></my-card>
703
+ * <ng-template #addCardTemplate>
704
+ * <div>This is a new card template, it will the the size of the other cards.</div>
705
+ * </ng-template>
706
+ * </aup-card-stack>
707
+ *
708
+ * // sing the default new card styles for your template
709
+ * @import "../../../../assets/styles";
710
+ * .my-new-card {
711
+ * @include aup-card-stack-new-card-style();
712
+ * // OR
713
+ * @include aup-card-stack-new-card-style(
714
+ * $color: rgba(0,0,0,0.54),
715
+ * $background-color: rgba(255,255,255,0.8),
716
+ * $hover-color: $color,
717
+ * $background-hover-color: white
718
+ * )
719
+ * }
720
+ * <aup-card-stack>
721
+ * <my-card *ngFor="..."></my-card>
722
+ * <ng-template #addCardTemplate>
723
+ * <div class="my-new-card" >This is a new card template, it will the the size of the other cards.</div>
724
+ * </ng-template>
725
+ * </aup-card-stack>
726
+ *
727
+ * // CSS Vars
728
+ * aup-card-stack {
729
+ * --card-gap: var(--card-gap, 16px);
730
+ * --card-height: var(--card-height, auto);
731
+ * --card-min-height: var(--card-min-height, auto);
732
+ * --card-background: var(--card-background, #fcfcfb);
733
+ * }
734
+ */
735
+ class CardStackComponent extends AbstractCardContainerComponent {
736
+ constructor() {
737
+ super();
738
+ console.warn('<aup-card-stack></aup-card-stack> is deprecated. Use <aup-card-container [columnCount]="1"> instead.');
739
+ }
740
+ }
741
+ CardStackComponent.decorators = [
742
+ { type: Component, args: [{
743
+ selector: 'aup-card-stack',
744
+ template: "<div class=\"card-container\">\n <ng-content></ng-content>\n</div>\n<div class=\"footer\">\n <div class=\"add-card-container\" *ngIf=\"addCardCommand.enabled.value\" [pectinCommand]=\"addCardCommand\">\n <aup-command-face *ngIf=\"addCardFace\" [faces]=\"[addCardFace]\"></aup-command-face>\n <aup-icon *ngIf=\"!addCardFace\" 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 <ng-content select=\"[aup-card-stack-footer]\"></ng-content>\n</div>\n",
745
+ styles: [":host{--resolved-card-gap: var(--card-gap, 16px);--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:grid;grid-template-columns:1fr;grid-auto-rows:minmax(var(--resolved-card-min-height),var(--resolved-card-height));grid-gap:var(--resolved-card-gap);box-sizing:border-box;padding:var(--resolved-card-gap);max-width:100%}.footer{display:flex;flex-direction:column;align-items:stretch;padding:0 var(--resolved-card-gap) var(--resolved-card-gap)}.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;transition:box-shadow .28s cubic-bezier(.4,0,.2,1);box-sizing:border-box;border:2px dashed rgba(0,0,0,.1);border-radius:6px;font-weight:300;cursor:pointer;color:#0000008a;background-color:#fffc}.add-card-container mat-icon{font-size:200%}.add-card-container:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.add-card-container:hover{border-color:transparent;background-color:#fff;color:#0000008a}.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}\n"]
746
+ },] }
747
+ ];
748
+ CardStackComponent.ctorParameters = () => [];
607
749
 
608
750
  /**
609
751
  * Custom CSS:
@@ -651,7 +793,7 @@ CommandFaceComponent.decorators = [
651
793
  selector: 'aup-command-face',
652
794
  template: "<div class=\"face-container\" *ngFor=\"let face of faceAdapters.value\">\n <aup-icon *ngIf=\"hasIconStart(face)\" [icon]=\"face.icon\"></aup-icon>\n <span *ngIf=\"face.text\">{{face.text}}</span>\n <aup-icon *ngIf=\"hasIconEnd(face)\" [icon]=\"face.icon\"></aup-icon>\n</div>\n",
653
795
  encapsulation: ViewEncapsulation.None,
654
- styles: ["aup-command-face{--icon-gap:var(--aup-command-face-icon-gap);display:inline-grid}aup-command-face>.face-container{grid-column:1;grid-row:1;display:inline-flex;flex-direction:row;align-items:center}aup-command-face>.face-container:not(:first-child){visibility:hidden}aup-command-face>.face-container *+*{margin-left:var(--icon-gap)}aup-command-face.hide-icon aup-icon{visibility:hidden}aup-command-face.centered{justify-items:center}aup-command-face.start{justify-items:self-start}aup-command-face.end{justify-items:self-end}"]
796
+ styles: ["aup-command-face{--icon-gap: var(--aup-command-face-icon-gap);display:inline-grid}aup-command-face>.face-container{grid-column:1;grid-row:1;display:inline-flex;flex-direction:row;align-items:center}aup-command-face>.face-container:not(:first-child){visibility:hidden}aup-command-face>.face-container *+*{margin-left:var(--icon-gap)}aup-command-face.hide-icon aup-icon{visibility:hidden}aup-command-face.centered{justify-items:center}aup-command-face.start{justify-items:self-start}aup-command-face.end{justify-items:self-end}\n"]
655
797
  },] }
656
798
  ];
657
799
  CommandFaceComponent.ctorParameters = () => [];
@@ -740,7 +882,7 @@ CommandComponent.decorators = [
740
882
  { type: Component, args: [{
741
883
  selector: 'aup-command',
742
884
  template: "<ng-container *ngIf=\"iconOnly.value\">\n <button mat-icon-button [pectinCommand]=\"command\" [color]=\"colorModel.value\" [class.busy]=\"command.busy.value\"\n [matTooltip]=\"tooltipModel.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces.value\"></aup-command-face>\n </button>\n</ng-container>\n<ng-container *ngIf=\"!iconOnly.value\">\n <ng-container [ngSwitch]=\"buttonStyle.value\">\n <ng-container *ngSwitchCase=\"CommandFace.Style.STROKED\">\n <button mat-stroked-button [pectinCommand]=\"command\" [color]=\"colorModel.value\" [class.busy]=\"command.busy.value\"\n [matTooltip]=\"tooltipModel.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces.value\"></aup-command-face>\n </button>\n </ng-container>\n <ng-container *ngSwitchCase=\"CommandFace.Style.RAISED\">\n <button mat-raised-button [pectinCommand]=\"command\" [color]=\"colorModel.value\" [class.busy]=\"command.busy.value\"\n [matTooltip]=\"tooltipModel.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces.value\"></aup-command-face>\n </button>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <button mat-button [pectinCommand]=\"command\" [color]=\"colorModel.value\" [class.busy]=\"command.busy.value\"\n [matTooltip]=\"tooltipModel.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces.value\"></aup-command-face>\n </button>\n </ng-container>\n </ng-container>\n</ng-container>\n",
743
- styles: [":host{display:inline-flex;flex-direction:row;justify-content:stretch}:host.centered button{text-align:center}:host.start button{text-align:start}:host.end button{text-align:end}button{flex:1}"]
885
+ styles: [":host{display:inline-flex;flex-direction:row;justify-content:stretch}:host.centered button{text-align:center}:host.start button{text-align:start}:host.end button{text-align:end}button{flex:1}\n"]
744
886
  },] }
745
887
  ];
746
888
  CommandComponent.ctorParameters = () => [
@@ -912,10 +1054,22 @@ __decorate([
912
1054
  var TrackBy;
913
1055
  (function (TrackBy) {
914
1056
  TrackBy.byIndex = (index, item) => index;
1057
+ /**
1058
+ * @deprecated use #track(MyType).by("property") instead.
1059
+ * @param property
1060
+ */
915
1061
  function trackByProperty(property) {
916
1062
  return (index, item) => item[property];
917
1063
  }
918
1064
  TrackBy.trackByProperty = trackByProperty;
1065
+ function track(type) {
1066
+ return {
1067
+ by(property) {
1068
+ return (index, item) => item[property];
1069
+ }
1070
+ };
1071
+ }
1072
+ TrackBy.track = track;
919
1073
  })(TrackBy || (TrackBy = {}));
920
1074
 
921
1075
  class CommandContainer extends GarbageCollector {
@@ -963,7 +1117,7 @@ ToolBarComponent.decorators = [
963
1117
  selector: 'aup-tool-bar',
964
1118
  template: '<div class="toolbar-content"><ng-content></ng-content></div>',
965
1119
  encapsulation: ViewEncapsulation.None,
966
- styles: [":host{display:inline-block}.toolbar-content{display:inline-flex;flex-direction:row;align-items:center}.toolbar-content>aup-separator{align-self:stretch;margin:4px 0 4px 8px}.toolbar-content>aup-flex{flex:1}.toolbar-content>*+*{margin-left:8px}"]
1120
+ styles: [":host{display:inline-block}.toolbar-content{display:inline-flex;flex-direction:row;align-items:center}.toolbar-content>aup-separator{align-self:stretch;margin:4px 0 4px 8px}.toolbar-content>aup-flex{flex:1}.toolbar-content>*+*{margin-left:8px}\n"]
967
1121
  },] }
968
1122
  ];
969
1123
  ToolBarComponent.ctorParameters = () => [];
@@ -1138,7 +1292,7 @@ EmptyStateComponent.decorators = [
1138
1292
  <ng-content></ng-content>
1139
1293
  </div>
1140
1294
  `,
1141
- styles: [":host{display:flex;flex-direction:column;justify-content:center;align-items:center}.container{padding:var(--aup-default-padding);border:2px dashed rgba(0,0,0,.2);border-radius:5px;font-size:14px;font-weight:300}"]
1295
+ styles: [":host{display:flex;flex-direction:column;justify-content:center;align-items:center}.container{display:flex;flex-direction:column;align-items:stretch;padding:var(--aup-default-padding);border:2px dashed rgba(0,0,0,.2);border-radius:5px;font-size:14px;font-weight:300}\n"]
1142
1296
  },] }
1143
1297
  ];
1144
1298
  EmptyStateComponent.ctorParameters = () => [];
@@ -1166,7 +1320,7 @@ FocusContainerComponent.decorators = [
1166
1320
  providers: [
1167
1321
  { provide: FocusManager }
1168
1322
  ],
1169
- styles: [":host{display:block}"]
1323
+ styles: [":host{display:block}\n"]
1170
1324
  },] }
1171
1325
  ];
1172
1326
  FocusContainerComponent.ctorParameters = () => [
@@ -1222,6 +1376,7 @@ class AbstractInputComponent extends DisposableComponent {
1222
1376
  constructor() {
1223
1377
  super();
1224
1378
  this.onValueEditedListeners = new EventListenerList();
1379
+ this.userFloatLabel = 'always'; // TODO: make this an injectable default
1225
1380
  this.dense = false;
1226
1381
  // TODO: fix this.
1227
1382
  // tslint:disable-next-line:no-output-native
@@ -1482,7 +1637,7 @@ AutocompleteInputComponent.decorators = [
1482
1637
  { type: Component, args: [{
1483
1638
  selector: 'aup-autocomplete-input',
1484
1639
  template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input type=\"string\"\n matInput\n [matAutocomplete]=\"autocomplete\"\n placeholder=\"{{placeholder}}\"\n [ngModel]=\"componentValueModel.value\"\n (ngModelChange)=\"updateFilter($event)\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-autocomplete #autocomplete [displayWith]=\"optionLabelFormat\" [autoActiveFirstOption]=\"true\" (optionSelected)=\"onSelect($event)\">\n <mat-option *ngFor=\"let option of filteredOptions.value; let i = index\"\n [value]=\"option\"\n >{{formatOption(option)}}</mat-option>\n <mat-option *ngIf=\"allowNil\">{{placeholder}}</mat-option>\n </mat-autocomplete>\n\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n",
1485
- styles: [":host{display:inline-block}mat-form-field{width:100%}"]
1640
+ styles: [":host{display:inline-block}mat-form-field{width:100%}\n"]
1486
1641
  },] }
1487
1642
  ];
1488
1643
  AutocompleteInputComponent.ctorParameters = () => [];
@@ -1518,7 +1673,7 @@ CheckboxInputComponent.decorators = [
1518
1673
  { type: Component, args: [{
1519
1674
  selector: 'aup-checkbox-input',
1520
1675
  template: "<!-- TODO: add focus binding -->\n<mat-checkbox\n [(ngModel)]=\"componentValueModel.value\"\n [color]=\"color\"\n [labelPosition]=\"labelPosition\"\n [disabled]=\"!isEnabled()\"\n>{{label}}</mat-checkbox>\n<mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n<mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n",
1521
- styles: [":host{display:inline-flex;flex-direction:column;padding:24px 0 16px}:host.dense{padding:6px 0 2px}mat-error,mat-hint{margin-top:4px;margin-left:24px;font-size:12px;font-weight:400;line-height:13.5px}"]
1676
+ styles: [":host{display:inline-flex;flex-direction:column;padding:24px 0 16px}:host.dense{padding:6px 0 2px}mat-hint,mat-error{margin-top:4px;margin-left:24px;font-size:12px;font-weight:400;line-height:13.5px}\n"]
1522
1677
  },] }
1523
1678
  ];
1524
1679
  CheckboxInputComponent.ctorParameters = () => [];
@@ -1546,7 +1701,7 @@ MultipleSelectInputComponent.decorators = [
1546
1701
  { type: Component, args: [{
1547
1702
  selector: 'aup-multiple-select-input',
1548
1703
  template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <mat-select placeholder=\"{{placeholder}}\"\n multiple\n [(ngModel)]=\"componentListModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-option *ngFor=\"let option of optionsModel.value; let i = index\" [value]=\"option\">\n <ng-container *ngIf=\"!optionTemplateRef\">{{optionLabelFormat(option)}}</ng-container>\n <ng-container *ngIf=\"optionTemplateRef\"\n [ngTemplateOutlet]=\"optionTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: option, index: i }\"\n >\n </ng-container>\n </mat-option>\n </mat-select>\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n",
1549
- styles: [":host{display:inline-block}mat-form-field{width:100%}"]
1704
+ styles: [":host{display:inline-block}mat-form-field{width:100%}\n"]
1550
1705
  },] }
1551
1706
  ];
1552
1707
  MultipleSelectInputComponent.ctorParameters = () => [];
@@ -1628,7 +1783,7 @@ SelectInputComponent.decorators = [
1628
1783
  { type: Component, args: [{
1629
1784
  selector: 'aup-select-input',
1630
1785
  template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <mat-select placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"componentValueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-option *ngIf=\"allowNil\">\n <ng-container *ngIf=\"!nilOptionTemplateRef\">{{placeholder}}</ng-container>\n <ng-container *ngIf=\"nilOptionTemplateRef\" [ngTemplateOutlet]=\"nilOptionTemplateRef\"></ng-container>\n </mat-option>\n <mat-option *ngFor=\"let option of optionsModel.value; let i = index\" [value]=\"option\">\n <ng-container *ngIf=\"!optionTemplateRef\">{{optionLabelFormat(option)}}</ng-container>\n <ng-container *ngIf=\"optionTemplateRef\"\n [ngTemplateOutlet]=\"optionTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: option, index: i }\"\n >\n </ng-container>\n </mat-option>\n </mat-select>\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n",
1631
- styles: [":host{display:inline-block}mat-form-field{width:100%}"]
1786
+ styles: [":host{display:inline-block}mat-form-field{width:100%}\n"]
1632
1787
  },] }
1633
1788
  ];
1634
1789
  SelectInputComponent.ctorParameters = () => [];
@@ -1666,7 +1821,7 @@ StringInputComponent.decorators = [
1666
1821
  { type: Component, args: [{
1667
1822
  selector: 'aup-string-input',
1668
1823
  template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input matInput\n placeholder=\"{{placeholder}}\"\n [attr.autocomplete]=\"autocomplete\"\n [(ngModel)]=\"componentValueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n <aup-icon *ngIf=\"iconPrefix\" matPrefix [icon]=\"iconPrefix\"></aup-icon>\n <button mat-button mat-icon-button matSuffix *ngIf=\"enableClear\" [pectinCommand]=\"clearCommand\">\n <aup-icon icon=\"mat:close\"></aup-icon>\n </button>\n</mat-form-field>\n\n",
1669
- styles: ["button[disabled]{visibility:hidden}"]
1824
+ styles: ["button[disabled]{visibility:hidden}\n"]
1670
1825
  },] }
1671
1826
  ];
1672
1827
  StringInputComponent.ctorParameters = () => [];
@@ -1700,7 +1855,7 @@ TextInputComponent.decorators = [
1700
1855
  { type: Component, args: [{
1701
1856
  selector: 'aup-text-input',
1702
1857
  template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <textarea matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"componentValueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [rows]=\"rows\"\n [cols]=\"cols\"\n >\n </textarea>\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n\n",
1703
- styles: ["button[disabled]{visibility:hidden}textarea{overflow:auto}"]
1858
+ styles: ["button[disabled]{visibility:hidden}textarea{overflow:auto}\n"]
1704
1859
  },] }
1705
1860
  ];
1706
1861
  TextInputComponent.ctorParameters = () => [];
@@ -1739,7 +1894,7 @@ IconComponent.decorators = [
1739
1894
  { type: Component, args: [{
1740
1895
  selector: 'aup-icon',
1741
1896
  template: "<ng-container [ngSwitch]=\"prefix\">\n\n <mat-icon *ngSwitchCase=\"iconPrefix.SVG\"\n [svgIcon]=\"suffix\"\n class=\"svgIcon\">\n </mat-icon>\n\n <mat-icon *ngSwitchCase=\"iconPrefix.MATERIAL\">\n {{suffix}}\n </mat-icon>\n\n <div *ngSwitchCase=\"iconPrefix.FONT_AWESOME\"\n class=\"faIconWrapper\">\n <fa-icon [icon]=\"suffix\">\n </fa-icon>\n </div>\n\n <mat-icon *ngSwitchDefault\n [matTooltip]=\"errorMessage\">\n bug_report\n </mat-icon>\n\n</ng-container>\n\n",
1742
- styles: [":host{display:inline-flex;width:24px}fa-icon{vertical-align:middle}.faIconWrapper{text-align:center}.faIconWrapper,.svgIcon{width:24px;height:24px}:host(.mat-chip-remove) mat-icon{font-size:18px}mat-icon{width:inherit;height:inherit}"]
1897
+ styles: [":host{display:inline-flex;width:24px}fa-icon{vertical-align:middle}.faIconWrapper{text-align:center;width:24px;height:24px}.svgIcon{width:24px;height:24px}:host(.mat-chip-remove) mat-icon{font-size:18px}mat-icon{width:inherit;height:inherit}\n"]
1743
1898
  },] }
1744
1899
  ];
1745
1900
  IconComponent.propDecorators = {
@@ -1753,6 +1908,48 @@ IconComponent.propDecorators = {
1753
1908
  });
1754
1909
  })(IconComponent || (IconComponent = {}));
1755
1910
 
1911
+ class LoadingContainerComponent extends GarbageCollector {
1912
+ constructor() {
1913
+ super();
1914
+ }
1915
+ get state() {
1916
+ return this.loadingModel.value ? "loaded" : "loading";
1917
+ }
1918
+ ngOnInit() {
1919
+ }
1920
+ }
1921
+ LoadingContainerComponent.decorators = [
1922
+ { type: Component, args: [{
1923
+ selector: 'aup-loading-container',
1924
+ template: "<ng-content *ngIf=\"!loadingModel.value\"></ng-content>\n<section *ngIf=\"loadingModel.value\" class=\"loading-indicator-overlay\">\n <div class=\"loading-message\">\n <p>{{messageModel.value}}</p>\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n </div>\n</section>\n",
1925
+ styles: [":host{display:block;position:relative}section.loading-indicator-overlay{position:absolute;top:0;left:0;bottom:0;right:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.loading-message{display:inline-block;text-align:center;width:10em}\n"]
1926
+ },] }
1927
+ ];
1928
+ LoadingContainerComponent.ctorParameters = () => [];
1929
+ LoadingContainerComponent.propDecorators = {
1930
+ loadingModel: [{ type: Input }],
1931
+ loading: [{ type: Input }],
1932
+ messageModel: [{ type: Input }],
1933
+ message: [{ type: Input }],
1934
+ state: [{ type: HostBinding, args: ["class",] }]
1935
+ };
1936
+ __decorate([
1937
+ TrackExternal(),
1938
+ __metadata("design:type", ValueModel)
1939
+ ], LoadingContainerComponent.prototype, "loadingModel", void 0);
1940
+ __decorate([
1941
+ StoreInValueModel("loadingModel"),
1942
+ __metadata("design:type", Boolean)
1943
+ ], LoadingContainerComponent.prototype, "loading", void 0);
1944
+ __decorate([
1945
+ TrackExternal(),
1946
+ __metadata("design:type", ValueModel)
1947
+ ], LoadingContainerComponent.prototype, "messageModel", void 0);
1948
+ __decorate([
1949
+ StoreInValueModel("messageModel"),
1950
+ __metadata("design:type", String)
1951
+ ], LoadingContainerComponent.prototype, "message", void 0);
1952
+
1756
1953
  class NoopComponent {
1757
1954
  constructor() {
1758
1955
  }
@@ -1761,7 +1958,7 @@ NoopComponent.decorators = [
1761
1958
  { type: Component, args: [{
1762
1959
  selector: 'aup-noop',
1763
1960
  template: "",
1764
- styles: [":host{display:block}"]
1961
+ styles: [":host{display:block}\n"]
1765
1962
  },] }
1766
1963
  ];
1767
1964
  NoopComponent.ctorParameters = () => [];
@@ -1775,14 +1972,18 @@ ScrollContainerComponent.decorators = [
1775
1972
  { type: Component, args: [{
1776
1973
  selector: 'aup-scroll-container',
1777
1974
  template: "<div class=\"container\" cdkScrollable>\n <ng-content></ng-content>\n</div>\n",
1778
- styles: [":host{display:flex;flex-direction:column;min-height:0;align-items:stretch}.container{display:flex;flex-direction:column;flex:1;flex-basis:0;overflow-y:scroll;align-items:stretch}"]
1975
+ styles: [":host{display:flex;flex-direction:column;min-height:0;align-items:stretch}.container{display:flex;flex-direction:column;flex:1;flex-basis:0;overflow-y:scroll;align-items:stretch}\n"]
1779
1976
  },] }
1780
1977
  ];
1781
1978
  ScrollContainerComponent.ctorParameters = () => [];
1782
1979
 
1783
- class SectionHeaderComponent {
1980
+ class SectionHeaderComponent extends DisposableComponent {
1784
1981
  constructor() {
1785
- this.underline = false;
1982
+ super();
1983
+ // readonly i18n = I18nMarsUi.components.layout.header;
1984
+ this.size = 'medium';
1985
+ this.borderTop = false;
1986
+ this.borderBottom = false;
1786
1987
  }
1787
1988
  ngOnInit() {
1788
1989
  }
@@ -1790,13 +1991,15 @@ class SectionHeaderComponent {
1790
1991
  SectionHeaderComponent.decorators = [
1791
1992
  { type: Component, args: [{
1792
1993
  selector: 'aup-section-header',
1793
- template: "<ng-content></ng-content>\n",
1794
- styles: [":host{--def-border-bottom-color:var(--border-bottom-color,rgba(0,0,0,0.07));display:block;padding:8px 16px;font-size:12px;line-height:12px;color:rgba(0,0,0,.5)}:host.underline{border-bottom:1px solid var(--def-border-bottom-color)}"]
1994
+ template: "<span class=\"container-start\"><ng-content select=\"[header-start]\"></ng-content><ng-content></ng-content></span>\n<span class=\"container-middle\"><ng-content select=\"[header-center]\"></ng-content></span>\n<span class=\"container-end\"><ng-content select=\"[header-end]\"></ng-content></span>\n",
1995
+ styles: [":host{display:flex;flex-direction:row;align-items:center;--resolved-padding: var(--padding, var(--default-padding));--resolved-padding-right: var(--padding-right, calc(var(--default-padding)/2));padding-left:var(--resolved-padding);padding-right:var(--resolved-padding-right);box-sizing:border-box}:host.has-back-button{padding-left:0}:host.toolbar{height:56px;min-height:56px}:host.toolbar span{font-weight:500;font-size:18px;color:#000000ab}:host.large{height:48px;min-height:48px}:host.large span{font-weight:500;font-size:14px;color:#000000ab}:host.medium{height:48px;min-height:48px}:host.medium span{font-weight:500;font-size:13px;color:#000000ab}:host.small{height:30px;min-height:30px}:host.small span{font-weight:300;font-size:12px;color:#000000ab}:host.border-top{border-top:var(--pinstripe-border)}:host.border-bottom{border-bottom:var(--pinstripe-border)}span{white-space:nowrap;display:inline-flex;flex-direction:row;align-items:center}span.container-start{justify-content:flex-start}span.container-middle{justify-content:center;flex:1;width:0;overflow:hidden}span.container-end{justify-content:flex-end}\n"]
1795
1996
  },] }
1796
1997
  ];
1797
1998
  SectionHeaderComponent.ctorParameters = () => [];
1798
1999
  SectionHeaderComponent.propDecorators = {
1799
- underline: [{ type: Input }, { type: HostBinding, args: ['class.underline',] }]
2000
+ size: [{ type: Input }, { type: HostBinding, args: ['class',] }],
2001
+ borderTop: [{ type: Input }, { type: HostBinding, args: ['class.border-top',] }],
2002
+ borderBottom: [{ type: Input }, { type: HostBinding, args: ['class.border-bottom',] }]
1800
2003
  };
1801
2004
 
1802
2005
  class SwitchCaseOption {
@@ -1901,7 +2104,7 @@ SwitchCaseComponent.decorators = [
1901
2104
  { type: Component, args: [{
1902
2105
  selector: 'aup-switch-case',
1903
2106
  template: "<mat-tab-group class=\"content-wrapper\" no-tab-header full-height-tabs [selectedIndex]=\"selectedIndex\">\n <mat-tab *ngFor=\"let option of switchCaseOptions\">\n <ng-template [ngTemplateOutlet]=\"option.templateRef\"></ng-template>\n </mat-tab>\n</mat-tab-group>\n\n\n",
1904
- styles: [":host{display:flex;flex-direction:column;align-items:stretch}mat-tab-group{flex:1}"]
2107
+ styles: [":host{display:flex;flex-direction:column;align-items:stretch}mat-tab-group{flex:1}\n"]
1905
2108
  },] }
1906
2109
  ];
1907
2110
  SwitchCaseComponent.ctorParameters = () => [
@@ -2183,7 +2386,7 @@ EditRowControls.decorators = [
2183
2386
  { type: Component, args: [{
2184
2387
  selector: 'aup-row-editor-controls',
2185
2388
  template: "<button *ngIf=\"!editSession\" mat-icon-button [pectinCommand]=\"editRowCommand\" class=\"edit-button\"><aup-icon icon=\"mat:edit\"></aup-icon></button>\n<button *ngIf=\"editSession\" mat-icon-button [pectinCommand]=\"saveCommand\"><aup-icon icon=\"mat:done\"></aup-icon></button>\n<button *ngIf=\"editSession\" mat-icon-button [pectinCommand]=\"cancelCommand\"><aup-icon icon=\"mat:clear\"></aup-icon></button>\n",
2186
- styles: [":host{display:block;width:80px}.edit-button{visibility:hidden}:host-context(tr:hover) .edit-button{visibility:visible}"]
2389
+ styles: [":host{display:block;width:80px}.edit-button{visibility:hidden}:host-context(tr:hover) .edit-button{visibility:visible}\n"]
2187
2390
  },] }
2188
2391
  ];
2189
2392
  EditRowControls.ctorParameters = () => [];
@@ -2949,12 +3152,16 @@ class AbstractTableModel extends GarbageCollector {
2949
3152
  return this.isRowSelectionEnabled() && column.isRowSelectionEnabled();
2950
3153
  }
2951
3154
  isRowSelectionEnabled() {
2952
- return this.hasSelectionModel() && !this.rowSelectionDisabledOnAllColumns.value;
3155
+ return this.hasUserSelectionModel() && !this.rowSelectionDisabledOnAllColumns.value;
2953
3156
  }
2954
- hasSelectionModel() {
3157
+ hasUserSelectionModel() {
2955
3158
  var _a;
2956
3159
  return !!((_a = this.selectionColumnModel) === null || _a === void 0 ? void 0 : _a.selectionModel.getDelegate());
2957
3160
  }
3161
+ getSelectionModel() {
3162
+ var _a;
3163
+ return (_a = this.selectionColumnModel) === null || _a === void 0 ? void 0 : _a.selectionModel;
3164
+ }
2958
3165
  isHoverEnabled() {
2959
3166
  return this.isRowSelectionEnabled() || this.rowClickListeners.listenerCount > 0;
2960
3167
  }
@@ -3070,7 +3277,7 @@ TableHeaderCellRendererComponent.decorators = [
3070
3277
  { type: Component, args: [{
3071
3278
  selector: 'aup-table-header-cell-renderer',
3072
3279
  template: "<ng-container [cdkPortalOutlet]=\"getPortal()\" (attached)=\"initialiseHeader($event.instance)\"></ng-container>\n",
3073
- styles: [":host{display:flex;flex-direction:column;align-items:stretch;justify-content:center;height:100%}"]
3280
+ styles: [":host{display:flex;flex-direction:column;align-items:stretch;justify-content:center;height:100%}\n"]
3074
3281
  },] }
3075
3282
  ];
3076
3283
  TableHeaderCellRendererComponent.ctorParameters = () => [];
@@ -3216,7 +3423,7 @@ TableComponent.decorators = [
3216
3423
  providers: [
3217
3424
  { provide: AbstractTableComponent, useExisting: TableComponent }
3218
3425
  ],
3219
- styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host table{width:100%}:host.enable-scrolling{min-height:0}:host.enable-scrolling .scroll-container{flex:1;flex-basis:0;overflow-y:auto;display:flex;flex-direction:column;align-items:stretch}"]
3426
+ styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host table{width:100%}:host.enable-scrolling{min-height:0}:host.enable-scrolling .scroll-container{flex:1;flex-basis:0;overflow-y:auto;display:flex;flex-direction:column;align-items:stretch}\n"]
3220
3427
  },] }
3221
3428
  ];
3222
3429
  TableComponent.ctorParameters = () => [
@@ -3260,7 +3467,7 @@ TreeInheritanceIconComponent.decorators = [
3260
3467
  { type: Component, args: [{
3261
3468
  selector: 'aup-tree-inheritance-icon',
3262
3469
  template: "<svg xmlns=\"http://www.w3.org/2000/svg\" [attr.width]=\"pixelWidth\" [attr.height]=\"pixelHeight\" [attr.viewBox]=\"viewBox\">\n <g fill=\"none\" fill-rule=\"evenodd\">\n <rect *ngIf=\"hasHead()\" width=\"1\" height=\"32.5\" x=\"11.5\" fill=\"currentColor\"/>\n <rect *ngIf=\"hasTail()\" width=\"1\" height=\"32.5\" x=\"11.5\" y=\"31.5\" fill=\"currentColor\"/>\n\n <rect *ngIf=\"hasLeadIn()\" width=\"12\" height=\"1\" y=\"31.5\" fill=\"currentColor\"/>\n <rect *ngIf=\"hasTerminal()\" width=\"12\" height=\"1\" x=\"12\" y=\"31.5\" fill=\"currentColor\"/>\n </g>\n</svg>\n",
3263
- styles: [":host{position:relative;color:inherit}svg{color:var(--line-color);display:block}"]
3470
+ styles: [":host{position:relative;color:inherit}svg{color:var(--line-color);display:block}\n"]
3264
3471
  },] }
3265
3472
  ];
3266
3473
  TreeInheritanceIconComponent.ctorParameters = () => [];
@@ -3514,15 +3721,15 @@ class TreeExpansionModel {
3514
3721
 
3515
3722
  class FlattenedTreeListModel extends ComputedListModel {
3516
3723
  constructor(source, childRef, expansionModel) {
3517
- super(source);
3724
+ super(source, {
3725
+ initialValue: [],
3726
+ identifiedWith: row => source.identityOf(row)
3727
+ });
3518
3728
  this.source = source;
3519
3729
  this.childRef = childRef;
3520
3730
  this.expansionModel = expansionModel;
3521
3731
  this.trackSource(expansionModel.isExpandedPredicate);
3522
3732
  }
3523
- getIdentityOf(item) {
3524
- return this.source.identityOf(item);
3525
- }
3526
3733
  compute(values) {
3527
3734
  const result = [];
3528
3735
  values.forEach(rootNode => {
@@ -3593,6 +3800,7 @@ class TreeTableModel extends AbstractTableModel {
3593
3800
  const childExtractor = _.isFunction(childAccessor) ? childAccessor : row => row[childAccessor];
3594
3801
  this.flattenedDataSource = this.registerDisposable(new FlattenedTreeListModel(source, childExtractor, this.treeExpansionModel));
3595
3802
  this.setDataSource(this.flattenedDataSource);
3803
+ this.addRowClass('aup-node-collapsed', row => this.isCollapsed(row));
3596
3804
  }
3597
3805
  treeControlColumn(builder) {
3598
3806
  const columnId = 'tree-label';
@@ -3703,15 +3911,17 @@ class TreeLabelCellRendererComponent extends DisposableComponent {
3703
3911
  return this.nodeModel.value;
3704
3912
  }
3705
3913
  // @Trace()
3706
- expandOrCollapse(node) {
3914
+ expandOrCollapse($event, node) {
3915
+ $event.preventDefault();
3916
+ $event.stopPropagation();
3707
3917
  this.expansionModel.isCollapsed(node) ? this.expansionModel.expand(node) : this.expansionModel.collapse(node);
3708
3918
  }
3709
3919
  }
3710
3920
  TreeLabelCellRendererComponent.decorators = [
3711
3921
  { type: Component, args: [{
3712
3922
  selector: 'aup-tree-label-cell-renderer',
3713
- template: "<div class=\"tree-icons\">\n <aup-tree-inheritance-icon *ngFor=\"let iconClass of iconList.value\" [type]=\"iconClass\"></aup-tree-inheritance-icon>\n <aup-icon *ngIf=\"iconModel.value\"\n [icon]=\"iconModel.value\"\n [class.clickable]=\"canExpand.value || canCollapse.value\"\n (click)=\"expandOrCollapse(node)\" ></aup-icon>\n</div>\n<div class=\"label\">{{label}}</div>\n",
3714
- styles: [":host{--line-color:#ddd;--node-color:#999;display:inline-flex;flex-direction:row;align-items:stretch}:host div.label{display:flex;flex-direction:row;align-items:center;white-space:nowrap;padding-left:6px}:host div.tree-icons{display:grid;grid-auto-flow:column;grid-auto-columns:auto;grid-template-rows:1fr;align-items:stretch;justify-content:stretch}:host div.tree-icons aup-icon{align-self:center;color:var(--node-color)}:host div.tree-icons aup-icon.clickable{cursor:pointer}:host div.tree-icons aup-icon,:host div.tree-icons aup-tree-inheritance-icon{margin-left:4px}"]
3923
+ template: "<div class=\"tree-icons\">\n <aup-tree-inheritance-icon *ngFor=\"let iconClass of iconList.value\" [type]=\"iconClass\"></aup-tree-inheritance-icon>\n <aup-icon *ngIf=\"iconModel.value\"\n [icon]=\"iconModel.value\"\n [class.clickable]=\"canExpand.value || canCollapse.value\"\n (click)=\"expandOrCollapse($event, node)\" ></aup-icon>\n</div>\n<div class=\"label\">{{label}}</div>\n",
3924
+ styles: [":host{--line-color: #ddd;--node-color: #999;display:inline-flex;flex-direction:row;align-items:stretch}:host div.label{display:flex;flex-direction:row;align-items:center;white-space:nowrap;padding-left:6px}:host div.tree-icons{display:grid;grid-auto-flow:column;grid-auto-columns:auto;grid-template-rows:1fr;align-items:stretch;justify-content:stretch}:host div.tree-icons aup-icon{align-self:center;color:var(--node-color)}:host div.tree-icons aup-icon.clickable{cursor:pointer}:host div.tree-icons aup-tree-inheritance-icon,:host div.tree-icons aup-icon{margin-left:4px}\n"]
3715
3925
  },] }
3716
3926
  ];
3717
3927
  TreeLabelCellRendererComponent.ctorParameters = () => [];
@@ -3728,7 +3938,14 @@ __decorate([
3728
3938
  __metadata("design:type", Object)
3729
3939
  ], TreeLabelCellRendererComponent.prototype, "value", void 0);
3730
3940
  (function (TreeLabelCellRendererComponent) {
3731
- TreeLabelCellRendererComponent.DEFAULT_ICON_FACTORY = (node, expanded, defaultIcon) => expanded ? 'mat:expand_more' : 'mat:chevron_right';
3941
+ TreeLabelCellRendererComponent.DEFAULT_ICON_FACTORY = (node, expanded, defaultIcon) => {
3942
+ const isLeaf = DecoratedTreeNode.getDecorator(node).isLeaf();
3943
+ return isLeaf ?
3944
+ undefined :
3945
+ expanded ?
3946
+ 'mat:expand_more' :
3947
+ 'mat:chevron_right';
3948
+ };
3732
3949
  })(TreeLabelCellRendererComponent || (TreeLabelCellRendererComponent = {}));
3733
3950
 
3734
3951
  /**
@@ -3806,7 +4023,7 @@ TreeTableComponent.decorators = [
3806
4023
  providers: [
3807
4024
  { provide: AbstractTableComponent, useExisting: TreeTableComponent }
3808
4025
  ],
3809
- styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host table{width:100%}:host.enable-scrolling{min-height:0}:host.enable-scrolling .scroll-container{flex:1;flex-basis:0;overflow-y:auto;display:flex;flex-direction:column;align-items:stretch}", "td.mat-cell{border-top-width:0!important;border-bottom-width:0!important}td.mat-column-tree-label{width:1px}aup-table-cell-renderer[column-id=tree-label]{padding-left:8px!important}aup-tree-label-cell-renderer{flex:1}"]
4026
+ styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host table{width:100%}:host.enable-scrolling{min-height:0}:host.enable-scrolling .scroll-container{flex:1;flex-basis:0;overflow-y:auto;display:flex;flex-direction:column;align-items:stretch}\n", "td.mat-cell{border-top-width:0!important;border-bottom-width:0!important}td.mat-column-tree-label,td.mat-column-tree-label{width:1px}aup-table-cell-renderer[column-id=tree-label]{padding-left:8px!important}aup-tree-label-cell-renderer{flex:1}\n"]
3810
4027
  },] }
3811
4028
  ];
3812
4029
  TreeTableComponent.ctorParameters = () => [
@@ -3860,7 +4077,7 @@ VerticalFocusContainerComponent.decorators = [
3860
4077
  providers: [
3861
4078
  { provide: FocusManager }
3862
4079
  ],
3863
- styles: [":host{display:block}"]
4080
+ styles: [":host{display:block}\n"]
3864
4081
  },] }
3865
4082
  ];
3866
4083
  VerticalFocusContainerComponent.ctorParameters = () => [
@@ -3906,7 +4123,7 @@ PaginatorComponent.decorators = [
3906
4123
  { type: Component, args: [{
3907
4124
  selector: 'aup-paginator',
3908
4125
  template: "<p>Page {{pageNumber}} of {{totalPages}}</p>\n<button mat-icon-button [pectinCommand]=\"previousCommand\"><aup-icon icon=\"mat:keyboard_arrow_left\"></aup-icon></button>\n<button mat-icon-button [pectinCommand]=\"nextCommand\"><aup-icon icon=\"mat:keyboard_arrow_right\"></aup-icon></button>\n\n",
3909
- styles: [":host{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;font-size:12px;padding:0 8px;color:rgba(0,0,0,.6)}:host p{color:inherit;margin-right:8px}:host button.md-button.md-icon-button{padding:0;margin:0;width:30px;height:30px}"]
4126
+ styles: [":host{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;font-size:12px;padding:0 8px;color:#0009}:host p{color:inherit;margin-right:8px}:host button.md-button.md-icon-button{padding:0;margin:0;width:30px;height:30px}\n"]
3910
4127
  },] }
3911
4128
  ];
3912
4129
  PaginatorComponent.ctorParameters = () => [];
@@ -3918,6 +4135,26 @@ __decorate([
3918
4135
  __metadata("design:type", PageController)
3919
4136
  ], PaginatorComponent.prototype, "pageController", void 0);
3920
4137
 
4138
+ class LabelledValueComponent extends DisposableComponent {
4139
+ constructor() {
4140
+ super();
4141
+ // const {chain} = Dsl.disposeWith(this);
4142
+ }
4143
+ ngOnInit() {
4144
+ }
4145
+ }
4146
+ LabelledValueComponent.decorators = [
4147
+ { type: Component, args: [{
4148
+ selector: 'aup-labelled-value',
4149
+ template: "<label>{{label}}</label>\n<ng-content></ng-content>\n",
4150
+ styles: [":host{display:inline-flex;flex-direction:column;align-items:flex-start}label{font-weight:400;font-size:12px;color:#00000091;margin-bottom:6px;white-space:nowrap}\n"]
4151
+ },] }
4152
+ ];
4153
+ LabelledValueComponent.ctorParameters = () => [];
4154
+ LabelledValueComponent.propDecorators = {
4155
+ label: [{ type: Input }]
4156
+ };
4157
+
3921
4158
  class ComponentsModule {
3922
4159
  constructor(faIconLibrary) {
3923
4160
  faIconLibrary.addIconPacks(fas);
@@ -3925,6 +4162,29 @@ class ComponentsModule {
3925
4162
  }
3926
4163
  ComponentsModule.decorators = [
3927
4164
  { type: NgModule, args: [{
4165
+ imports: [
4166
+ CommonModule,
4167
+ BrowserAnimationsModule,
4168
+ FormsModule,
4169
+ MatInputModule,
4170
+ MatFormFieldModule,
4171
+ MatSelectModule,
4172
+ MatTabsModule,
4173
+ DirectivesModule,
4174
+ MatIconModule,
4175
+ MatButtonModule,
4176
+ MatCheckboxModule,
4177
+ MatTableModule,
4178
+ PortalModule,
4179
+ CdkScrollableModule,
4180
+ FontAwesomeModule,
4181
+ MatTooltipModule,
4182
+ MatAutocompleteModule,
4183
+ MatMenuModule,
4184
+ MatDividerModule,
4185
+ MatProgressSpinnerModule,
4186
+ MatProgressBarModule
4187
+ ],
3928
4188
  declarations: [
3929
4189
  AbstractInputComponent,
3930
4190
  AbstractValueInputComponent,
@@ -3973,29 +4233,11 @@ ComponentsModule.decorators = [
3973
4233
  BusyOverlayComponent,
3974
4234
  EmptyStateComponent,
3975
4235
  PaginatorComponent,
3976
- AbstractTableComponent
3977
- ],
3978
- imports: [
3979
- CommonModule,
3980
- BrowserAnimationsModule,
3981
- FormsModule,
3982
- MatInputModule,
3983
- MatFormFieldModule,
3984
- MatSelectModule,
3985
- MatTabsModule,
3986
- DirectivesModule,
3987
- MatIconModule,
3988
- MatButtonModule,
3989
- MatCheckboxModule,
3990
- MatTableModule,
3991
- PortalModule,
3992
- CdkScrollableModule,
3993
- FontAwesomeModule,
3994
- MatTooltipModule,
3995
- MatAutocompleteModule,
3996
- MatMenuModule,
3997
- MatDividerModule,
3998
- MatProgressSpinnerModule
4236
+ AbstractTableComponent,
4237
+ AbstractCardContainerComponent,
4238
+ CardStackComponent,
4239
+ LabelledValueComponent,
4240
+ LoadingContainerComponent
3999
4241
  ],
4000
4242
  exports: [
4001
4243
  NumberInputComponent,
@@ -4032,6 +4274,9 @@ ComponentsModule.decorators = [
4032
4274
  BusyOverlayComponent,
4033
4275
  EmptyStateComponent,
4034
4276
  PaginatorComponent,
4277
+ CardStackComponent,
4278
+ LabelledValueComponent,
4279
+ LoadingContainerComponent,
4035
4280
  ],
4036
4281
  providers: [
4037
4282
  FocusBindingFactory
@@ -4067,7 +4312,8 @@ class ActivityActionsComponent extends DisposableComponent {
4067
4312
  constructor(cdr) {
4068
4313
  super();
4069
4314
  this.cdr = cdr;
4070
- this.align = 'stretch';
4315
+ this.layout = ActivityActionsComponent.Layout.BLOCK;
4316
+ this.align = ActivityActionsComponent.Align.STRETCH;
4071
4317
  }
4072
4318
  set faces(faces) {
4073
4319
  this.confirmFace = faces.confirm;
@@ -4079,12 +4325,6 @@ class ActivityActionsComponent extends DisposableComponent {
4079
4325
  set style(style) {
4080
4326
  this.faces = style;
4081
4327
  }
4082
- get alignEnd() {
4083
- return this.align === 'end';
4084
- }
4085
- get alignStretch() {
4086
- return this.align === 'stretch';
4087
- }
4088
4328
  ngOnInit() {
4089
4329
  }
4090
4330
  hasConfirmFace() {
@@ -4103,7 +4343,7 @@ ActivityActionsComponent.decorators = [
4103
4343
  { type: Component, args: [{
4104
4344
  selector: 'aup-activity-actions',
4105
4345
  template: "<div class=\"content\">\n <ng-content></ng-content>\n</div>\n<ng-container *ngIf=\"hasConfirmFace()\">\n <aup-command class=\"confirm\" [command]=\"confirmCommand\" [face]=\"confirmFace\" data-cy=\"confirm-command\"></aup-command>\n</ng-container>\n<ng-container *ngIf=\"hasCancelFace()\">\n <aup-command class=\"cancel\" [command]=\"cancelCommand\" [face]=\"cancelFace\" data-cy=\"cancel-command\"></aup-command>\n</ng-container>\n",
4106
- styles: [":host{display:grid;grid-template-areas:\"cancel confirm content\";grid-template-columns:auto auto 1fr;grid-template-rows:auto;align-items:center;justify-content:end}:host.align-end{grid-template-areas:\"content cancel confirm\";grid-template-columns:1fr auto auto}:host.align-stretch{grid-template-areas:\"cancel content confirm\";grid-template-columns:auto 1fr auto}.cancel{grid-area:cancel}.confirm{grid-area:confirm}.content{grid-area:content;text-align:left}"]
4346
+ styles: [":host{display:grid;grid-template-rows:auto;align-items:center;justify-content:end;--resolved-activity-actions-gap: var(--activity-actions-gap, 8px)}:host[layout=block][align=start]{grid-template-areas:\"cancel confirm content\";grid-template-columns:auto auto 1fr}:host[layout=block][align=start] .confirm{margin-left:var(--resolved-activity-actions-gap)}:host[layout=block][align=end]{grid-template-areas:\"content cancel confirm\";grid-template-columns:1fr auto auto}:host[layout=block][align=end] .confirm{margin-left:var(--resolved-activity-actions-gap)}:host[layout=block][align=stretch]{grid-template-areas:\"cancel content confirm\";grid-template-columns:auto 1fr auto}:host[layout=inline]{grid-template-areas:\"confirm cancel content\";grid-template-columns:auto auto 1fr}:host[layout=inline] .cancel{margin-left:var(--resolved-activity-actions-gap)}.cancel{grid-area:cancel}.confirm{grid-area:confirm}.content{grid-area:content;text-align:left}\n"]
4107
4347
  },] }
4108
4348
  ];
4109
4349
  ActivityActionsComponent.ctorParameters = () => [
@@ -4116,9 +4356,8 @@ ActivityActionsComponent.propDecorators = {
4116
4356
  confirmFace: [{ type: Input }],
4117
4357
  cancelFace: [{ type: Input }],
4118
4358
  style: [{ type: Input }],
4119
- align: [{ type: Input }],
4120
- alignEnd: [{ type: HostBinding, args: ['class.align-end',] }],
4121
- alignStretch: [{ type: HostBinding, args: ['class.align-stretch',] }]
4359
+ layout: [{ type: Input }, { type: HostBinding, args: ['attr.layout',] }],
4360
+ align: [{ type: Input }, { type: HostBinding, args: ['attr.align',] }]
4122
4361
  };
4123
4362
  __decorate([
4124
4363
  TrackExternal(),
@@ -4128,6 +4367,17 @@ __decorate([
4128
4367
  TrackExternal(),
4129
4368
  __metadata("design:type", Command)
4130
4369
  ], ActivityActionsComponent.prototype, "cancelCommand", void 0);
4370
+ (function (ActivityActionsComponent) {
4371
+ ActivityActionsComponent.Layout = Enum({
4372
+ INLINE: 'inline',
4373
+ BLOCK: 'block'
4374
+ });
4375
+ ActivityActionsComponent.Align = Enum({
4376
+ START: 'start',
4377
+ END: 'end',
4378
+ STRETCH: 'stretch'
4379
+ });
4380
+ })(ActivityActionsComponent || (ActivityActionsComponent = {}));
4131
4381
 
4132
4382
  const ACTIVITY_DATA = new InjectionToken('InteractionActivityData');
4133
4383
  class Activity extends DisposableComponent {
@@ -4223,7 +4473,7 @@ AlertDialogComponent.decorators = [
4223
4473
  { type: Component, args: [{
4224
4474
  selector: 'aup-alert-dialog',
4225
4475
  template: "<aup-activity-title *ngIf=\"alert.title\">{{alert.title()}}</aup-activity-title>\n<aup-activity-body>\n <p *ngFor=\"let line of alert.content()\">{{line}}</p>\n</aup-activity-body>\n<aup-activity-actions [confirmFace]=\"confirmFace\"></aup-activity-actions>\n",
4226
- styles: [":host{display:block}.mat-dialog-content{margin:0;padding:0}.mat-dialog-actions{margin-bottom:0!important;padding:0;align-items:flex-end;justify-content:flex-end}"]
4476
+ styles: [":host{display:block}.mat-dialog-content{margin:0;padding:0}.mat-dialog-actions{margin-bottom:0!important;padding:0;align-items:flex-end;justify-content:flex-end}\n"]
4227
4477
  },] }
4228
4478
  ];
4229
4479
  AlertDialogComponent.ctorParameters = () => [
@@ -4268,7 +4518,7 @@ ConfirmThenDialogComponent.decorators = [
4268
4518
  { type: Component, args: [{
4269
4519
  selector: 'aup-confirmation-dialog',
4270
4520
  template: "<aup-activity-title *ngIf=\"confirm.title\" [color]=\"titleColor\">{{confirm.title()}}</aup-activity-title>\n<aup-activity-body>\n <p *ngFor=\"let line of confirm.content()\">{{line}}</p>\n</aup-activity-body>\n<aup-activity-actions [confirmFace]=\"confirmFace\" [cancelFace]=\"cancelFace\"></aup-activity-actions>\n",
4271
- styles: [":host{display:block}.mat-dialog-content{margin:0;padding:0}.mat-dialog-actions{margin-bottom:0!important;padding:0;align-items:flex-end;justify-content:flex-end}"]
4521
+ styles: [":host{display:block}.mat-dialog-content{margin:0;padding:0}.mat-dialog-actions{margin-bottom:0!important;padding:0;align-items:flex-end;justify-content:flex-end}\n"]
4272
4522
  },] }
4273
4523
  ];
4274
4524
  ConfirmThenDialogComponent.ctorParameters = () => [
@@ -4308,7 +4558,7 @@ ConfirmationDialogComponent.decorators = [
4308
4558
  { type: Component, args: [{
4309
4559
  selector: 'aup-confirmation-dialog',
4310
4560
  template: "<aup-activity-title *ngIf=\"confirm.title\" [color]=\"titleColor\">{{confirm.title()}}</aup-activity-title>\n<aup-activity-body>\n <p *ngFor=\"let line of confirm.content()\">{{line}}</p>\n</aup-activity-body>\n<aup-activity-actions [confirmFace]=\"confirmFace\" [cancelFace]=\"cancelFace\"></aup-activity-actions>\n\n",
4311
- styles: [":host{display:block}.mat-dialog-content{margin:0;padding:0}.mat-dialog-actions{margin-bottom:0!important;padding:0;align-items:flex-end;justify-content:flex-end}"]
4561
+ styles: [":host{display:block}.mat-dialog-content{margin:0;padding:0}.mat-dialog-actions{margin-bottom:0!important;padding:0;align-items:flex-end;justify-content:flex-end}\n"]
4312
4562
  },] }
4313
4563
  ];
4314
4564
  ConfirmationDialogComponent.ctorParameters = () => [
@@ -4450,7 +4700,7 @@ ActivityOutletComponent.decorators = [
4450
4700
  { type: Component, args: [{
4451
4701
  selector: 'aup-activity-outlet',
4452
4702
  template: '',
4453
- styles: [":host{display:block}"]
4703
+ styles: [":host{display:block}\n"]
4454
4704
  },] }
4455
4705
  ];
4456
4706
  ActivityOutletComponent.ctorParameters = () => [
@@ -4646,8 +4896,8 @@ class ActivityContainerComponent extends AbstractInteractionContext {
4646
4896
  ActivityContainerComponent.decorators = [
4647
4897
  { type: Component, args: [{
4648
4898
  selector: 'aup-activity-container',
4649
- template: "<mat-tab-group #tabs no-tab-header\n [dynamicHeight]=\"dynamicHeight\"\n [class.full-height-tabs]=\"!dynamicHeight\">\n <mat-tab *ngFor=\"let activityRef of activityRefs; let i = index; trackBy: activityIndex\">\n <aup-busy-overlay [busyModel]=\"busy\">\n <!--\n We have issues where angular is triggering a leave animation when an\n new activity is started, but is not running the enter animation\n when it is scrolled back into view. So we track the tab changes and\n disable all animations inside the tab while we're animating.\n -->\n <div class=\"activity-outlet-wrapper\" [@.disabled]=\"!activityRef.focused\">\n <aup-activity-outlet [nestedInteractionContext]=\"this\" [activityRef]=\"activityRef\"></aup-activity-outlet>\n </div>\n </aup-busy-overlay>\n </mat-tab>\n</mat-tab-group>\n",
4650
- styles: [":host{display:flex;flex-direction:column}aup-busy-overlay,mat-tab-group{flex:1}"]
4899
+ template: "<mat-tab-group #tabs no-tab-header\n [dynamicHeight]=\"dynamicHeight\"\n [class.full-height-tabs]=\"!dynamicHeight\">\n <mat-tab *ngFor=\"let activityRef of activityRefs; let i = index; trackBy: activityIndex\">\n <aup-busy-overlay [busyModel]=\"busy\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <!--\n We have issues where angular is triggering a leave animation when an\n new activity is started, but is not running the enter animation\n when it is scrolled back into view. So we track the tab changes and\n disable all animations inside the tab while we're animating.\n -->\n <div class=\"activity-outlet-wrapper\" [@.disabled]=\"!activityRef.focused\">\n <aup-activity-outlet [nestedInteractionContext]=\"this\" [activityRef]=\"activityRef\"></aup-activity-outlet>\n </div>\n </aup-busy-overlay>\n </mat-tab>\n</mat-tab-group>\n",
4900
+ styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}aup-busy-overlay{flex:1}\n"]
4651
4901
  },] }
4652
4902
  ];
4653
4903
  ActivityContainerComponent.ctorParameters = () => [];
@@ -4700,7 +4950,7 @@ ActivityTitleComponent.decorators = [
4700
4950
  { type: Component, args: [{
4701
4951
  selector: 'aup-activity-title',
4702
4952
  template: "<ng-content></ng-content>\n",
4703
- styles: [":host{display:block}"]
4953
+ styles: [":host{display:block}\n"]
4704
4954
  },] }
4705
4955
  ];
4706
4956
  ActivityTitleComponent.propDecorators = {
@@ -4725,6 +4975,9 @@ class AbstractActivityTriggerComponent extends DisposableComponent {
4725
4975
  });
4726
4976
  });
4727
4977
  }
4978
+ get interactionContext() {
4979
+ return lang$1.abstractMethod(this.constructor);
4980
+ }
4728
4981
  ngOnInit() {
4729
4982
  }
4730
4983
  get isActive() {
@@ -4946,14 +5199,17 @@ InteractionService.ctorParameters = () => [
4946
5199
  class ModalActivityTriggerComponent extends AbstractActivityTriggerComponent {
4947
5200
  constructor(interactionService) {
4948
5201
  super();
4949
- this.interactionContext = interactionService.createModalInteractionContextDisposedWith(this);
5202
+ this._interactionContext = interactionService.createModalInteractionContextDisposedWith(this);
5203
+ }
5204
+ get interactionContext() {
5205
+ return this._interactionContext;
4950
5206
  }
4951
5207
  }
4952
5208
  ModalActivityTriggerComponent.decorators = [
4953
5209
  { type: Component, args: [{
4954
5210
  selector: 'aup-modal-activity-trigger',
4955
5211
  template: "<aup-command [command]=\"startActivityCommand\" [faceModel]=\"faceModel\" [alignFace]=\"alignFace\"></aup-command>\n",
4956
- styles: [":host{display:inline-block}"]
5212
+ styles: [":host{display:inline-block}\n"]
4957
5213
  },] }
4958
5214
  ];
4959
5215
  ModalActivityTriggerComponent.ctorParameters = () => [
@@ -4986,6 +5242,9 @@ class InPlaceInteractionContextComponent extends DisposableComponent {
4986
5242
  var _a;
4987
5243
  return this.animateFirstActivity ? (((_a = this.tabConfig) === null || _a === void 0 ? void 0 : _a.animationDuration) || '500ms') : '0ms';
4988
5244
  }
5245
+ get active() {
5246
+ return this.isActive();
5247
+ }
4989
5248
  ngAfterViewInit() {
4990
5249
  this.interactionService.registerInplaceInteractionContext(this);
4991
5250
  }
@@ -5021,7 +5280,7 @@ InPlaceInteractionContextComponent.decorators = [
5021
5280
  { type: Component, args: [{
5022
5281
  selector: 'aup-in-place-interaction-context',
5023
5282
  template: "<mat-tab-group no-tab-header [selectedIndex]=\"isActive() ? 1 : 0\" full-height-tabs [dynamicHeight]=\"false\" [animationDuration]=\"animationDuration\">\n <mat-tab>\n <ng-content></ng-content>\n </mat-tab>\n <mat-tab>\n <aup-activity-container #activityContainer [dynamicHeight]=\"false\"></aup-activity-container>\n </mat-tab>\n</mat-tab-group>\n\n",
5024
- styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}"]
5283
+ styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}\n"]
5025
5284
  },] }
5026
5285
  ];
5027
5286
  InPlaceInteractionContextComponent.ctorParameters = () => [
@@ -5030,8 +5289,80 @@ InPlaceInteractionContextComponent.ctorParameters = () => [
5030
5289
  ];
5031
5290
  InPlaceInteractionContextComponent.propDecorators = {
5032
5291
  activityContainerComponent: [{ type: ViewChild, args: ['activityContainer', { static: true },] }],
5033
- animateFirstActivity: [{ type: Input }]
5292
+ animateFirstActivity: [{ type: Input }],
5293
+ active: [{ type: HostBinding, args: ["class.active",] }]
5294
+ };
5295
+
5296
+ /**
5297
+ *
5298
+ */
5299
+ class AddCardActivityComponent extends AbstractActivityTriggerComponent {
5300
+ constructor(interactionService) {
5301
+ super();
5302
+ this.interactionStyle = AddCardActivityComponent.InteractionType.MODAL;
5303
+ this.renderAs = AddCardActivityComponent.RenderAs.CARD;
5304
+ this.notCard = true;
5305
+ const { chain } = Dsl.disposeWith(this);
5306
+ this.modalInteractionContext = interactionService.createModalInteractionContextDisposedWith(this);
5307
+ this.faceList = chain(this.faceModel).mapToList(face => [face]);
5308
+ }
5309
+ get renderAsClass() {
5310
+ return `render-as-${this.renderAs}`;
5311
+ }
5312
+ get activityTypeClass() {
5313
+ return `${this.interactionStyle}-activity`;
5314
+ }
5315
+ isRenderAsCard() {
5316
+ return this.renderAs === 'card';
5317
+ }
5318
+ isRenderAsButton() {
5319
+ return this.renderAs === 'button';
5320
+ }
5321
+ ngOnInit() {
5322
+ }
5323
+ get interactionContext() {
5324
+ switch (this.interactionStyle) {
5325
+ case 'inline':
5326
+ return this.inlineInteractionContext;
5327
+ default:
5328
+ return this.modalInteractionContext;
5329
+ }
5330
+ }
5331
+ isModal() {
5332
+ return this.interactionStyle === 'modal';
5333
+ }
5334
+ isInline() {
5335
+ return this.interactionStyle === 'inline';
5336
+ }
5337
+ }
5338
+ AddCardActivityComponent.decorators = [
5339
+ { type: Component, args: [{
5340
+ selector: 'aup-add-card-activity',
5341
+ template: "<aup-in-place-interaction-context [animateFirstActivity]=\"false\" [pectinCommand]=\"startActivityCommand\">\n <aup-command *ngIf=\"isRenderAsButton()\" [command]=\"startActivityCommand\" [faceModel]=\"faceModel\" [alignFace]=\"alignFace\"></aup-command>\n <section *ngIf=\"isRenderAsCard()\" class=\"face-wrapper\">\n <aup-command-face class=\"mat-button\" [faces]=\"faceList.value\"></aup-command-face>\n </section>\n</aup-in-place-interaction-context>\n",
5342
+ styles: [":host{display:flex;flex-direction:column;align-items:stretch;background-color:#fff}:host[interactionStyle=inline][renderas=card]:not(.active){transition:box-shadow .28s cubic-bezier(.4,0,.2,1);box-sizing:border-box;border:2px dashed rgba(0,0,0,.1);border-radius:6px;font-weight:300;cursor:pointer;color:#0000008a;background-color:#fffc}:host[interactionStyle=inline][renderas=card]:not(.active):hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}:host[interactionStyle=inline][renderas=card]:not(.active):hover{border-color:transparent;background-color:#fff;color:#0000008a}:host[interactionStyle=modal][renderas=card]{transition:box-shadow .28s cubic-bezier(.4,0,.2,1);box-sizing:border-box;border:2px dashed rgba(0,0,0,.1);border-radius:6px;font-weight:300;cursor:pointer;color:#0000008a;background-color:#fffc}:host[interactionStyle=modal][renderas=card]:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}:host[interactionStyle=modal][renderas=card]:hover{border-color:transparent;background-color:#fff;color:#0000008a}:host-context(aup-card-container)[renderas=button]{align-self:start}section.face-wrapper{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}aup-in-place-interaction-context{flex:1}aup-in-place-interaction-context.active{border:3px solid #6273c7;border-radius:4px;overflow:hidden}\n"]
5343
+ },] }
5344
+ ];
5345
+ AddCardActivityComponent.ctorParameters = () => [
5346
+ { type: InteractionService }
5347
+ ];
5348
+ AddCardActivityComponent.propDecorators = {
5349
+ inlineInteractionContext: [{ type: ViewChild, args: [InPlaceInteractionContextComponent, { static: true },] }],
5350
+ interactionStyle: [{ type: Input }],
5351
+ renderAs: [{ type: Input }, { type: HostBinding, args: ['class',] }],
5352
+ notCard: [{ type: HostBinding, args: ['class.not-card',] }],
5353
+ renderAsClass: [{ type: HostBinding, args: ['class',] }],
5354
+ activityTypeClass: [{ type: HostBinding, args: ['class',] }]
5034
5355
  };
5356
+ (function (AddCardActivityComponent) {
5357
+ AddCardActivityComponent.InteractionType = Enum({
5358
+ MODAL: 'modal',
5359
+ INLINE: 'inline'
5360
+ });
5361
+ AddCardActivityComponent.RenderAs = Enum({
5362
+ CARD: 'card',
5363
+ BUTTON: 'button'
5364
+ });
5365
+ })(AddCardActivityComponent || (AddCardActivityComponent = {}));
5035
5366
 
5036
5367
  /**
5037
5368
  * Css Vars.
@@ -5071,7 +5402,7 @@ AddItemInteractionContextComponent.decorators = [
5071
5402
  { type: Component, args: [{
5072
5403
  selector: 'aup-add-item-interaction-context',
5073
5404
  template: "<aup-in-place-interaction-context [animateFirstActivity]=\"false\">\n <a part=\"link\" class=\"link\" [pectinCommand]=\"clickCommand\"><aup-icon [icon]=\"icon\"></aup-icon> {{label}}</a>\n</aup-in-place-interaction-context>\n",
5074
- styles: [":host{--def-link-color:var(--link-color,currentColor);--def-link-color-hover:var(--link-color-hover,currentColor);--def-link-background:var(--link-background,transparent);--def-link-background-hover:var(--link-background-hover,rgba(0,0,0,0.05));--def-link-border-radius:var(--link-border-radius,4px);--def-link-padding:var(--link-padding,calc(var(--aup-default-padding) / 2));display:flex;flex-direction:column;border-radius:var(--def-link-border-radius);box-sizing:border-box;outline:none}:host:hover a.link{color:var(--def-link-color-hover);background-color:var(--def-link-background-hover)}a.link,aup-in-place-interaction-context{border-radius:var(--def-link-border-radius)}a.link{display:flex;flex-direction:row;align-items:center;color:var(--def-link-color);background:var(--def-link-background);padding:var(--def-link-padding);cursor:pointer;text-decoration:none}a.link mat-icon{margin-right:8px}"]
5405
+ styles: [":host{--def-link-color: var(--link-color, currentColor);--def-link-color-hover: var(--link-color-hover, currentColor);--def-link-background: var(--link-background, transparent);--def-link-background-hover: var(--link-background-hover, rgba(0, 0, 0, .05));--def-link-border-radius: var(--link-border-radius, 4px);--def-link-padding: var(--link-padding, calc(var(--aup-default-padding) / 2));display:flex;flex-direction:column;border-radius:var(--def-link-border-radius);box-sizing:border-box;outline:none}:host:hover a.link{color:var(--def-link-color-hover);background-color:var(--def-link-background-hover)}aup-in-place-interaction-context{border-radius:var(--def-link-border-radius)}a.link{display:flex;flex-direction:row;align-items:center;border-radius:var(--def-link-border-radius);color:var(--def-link-color);background:var(--def-link-background);padding:var(--def-link-padding);cursor:pointer;text-decoration:none}a.link mat-icon{margin-right:8px}\n"]
5075
5406
  },] }
5076
5407
  ];
5077
5408
  AddItemInteractionContextComponent.ctorParameters = () => [];
@@ -5094,17 +5425,20 @@ class InlineActivityTriggerComponent extends AbstractActivityTriggerComponent {
5094
5425
  constructor() {
5095
5426
  super();
5096
5427
  }
5428
+ get interactionContext() {
5429
+ return this._interactionContext;
5430
+ }
5097
5431
  }
5098
5432
  InlineActivityTriggerComponent.decorators = [
5099
5433
  { type: Component, args: [{
5100
5434
  selector: 'aup-inline-activity-trigger',
5101
5435
  template: "<aup-in-place-interaction-context #interactionContext [animateFirstActivity]=\"false\">\n <aup-command [command]=\"startActivityCommand\" [faceModel]=\"faceModel\" [alignFace]=\"alignFace\"></aup-command>\n</aup-in-place-interaction-context>\n",
5102
- styles: [":host{display:inline-block}"]
5436
+ styles: [":host{display:inline-block}\n"]
5103
5437
  },] }
5104
5438
  ];
5105
5439
  InlineActivityTriggerComponent.ctorParameters = () => [];
5106
5440
  InlineActivityTriggerComponent.propDecorators = {
5107
- interactionContext: [{ type: ViewChild, args: [InPlaceInteractionContextComponent, { static: true },] }]
5441
+ _interactionContext: [{ type: ViewChild, args: [InPlaceInteractionContextComponent, { static: true },] }]
5108
5442
  };
5109
5443
 
5110
5444
  /**
@@ -5135,6 +5469,7 @@ class PopupInteractionContextComponent extends DisposableComponent {
5135
5469
  const self = this;
5136
5470
  const overlayRef = this._overlay.create({
5137
5471
  hasBackdrop: false,
5472
+ disposeOnNavigation: true,
5138
5473
  panelClass: 'aup-popup-interaction-panel',
5139
5474
  positionStrategy: this._overlay.position()
5140
5475
  .flexibleConnectedTo(this._element)
@@ -5189,7 +5524,7 @@ PopupInteractionContextComponent.decorators = [
5189
5524
  { type: Component, args: [{
5190
5525
  selector: 'aup-popup-interaction-context',
5191
5526
  template: "<ng-content></ng-content>\n",
5192
- styles: [":host{display:inline-block}:host.interaction-active{background:rgba(0,0,0,.05)}"]
5527
+ styles: [":host{display:inline-block}:host.interaction-active{background:rgba(0,0,0,.05)}\n"]
5193
5528
  },] }
5194
5529
  ];
5195
5530
  PopupInteractionContextComponent.ctorParameters = () => [
@@ -5265,44 +5600,93 @@ InteractionContextTriggerFor.propDecorators = {
5265
5600
  // @see https://github.com/ng-packagr/ng-packagr/issues/641 and https://github.com/angular/angular/issues/21123
5266
5601
  // we're getting a metadata error for D for no reason that I can find and only during the build (ng serve works fine)
5267
5602
  // @dynamic
5268
- class AbstractInputActivity extends Activity {
5603
+ class InputActivity extends Activity {
5269
5604
  constructor(data) {
5605
+ var _a, _b;
5270
5606
  super();
5271
5607
  this.data = data;
5272
5608
  this.class = 'aup-input-activity';
5273
5609
  const form = new DirtyTrackingForm();
5274
5610
  this.valueModel = form.valueModel(this.data.initialValue);
5275
5611
  this.valueModel.validateUsing(data.validators || []);
5276
- this.confirmCommand = Command.create(() => {
5612
+ // TODO: move to global configuration
5613
+ this.confirmFace = (_a = data.confirmFace) !== null && _a !== void 0 ? _a : {
5614
+ icon: () => 'mat:check'
5615
+ };
5616
+ this.cancelFace = (_b = data.cancelFace) !== null && _b !== void 0 ? _b : {
5617
+ icon: () => 'mat:clear'
5618
+ };
5619
+ this.confirmCommand = Command.create(() => __awaiter(this, void 0, void 0, function* () {
5277
5620
  if (this.valueModel.validate()) {
5278
5621
  if (data.save) {
5279
- return Promise.resolve(data.save(this.valueModel, this.interactionContext))
5280
- .then(() => this.done());
5622
+ const self = this;
5623
+ try {
5624
+ let allGood = true;
5625
+ const result = yield data.save(this.valueModel.value, {
5626
+ injectError(error) {
5627
+ allGood = false;
5628
+ self.valueModel.injectErrors([error]);
5629
+ }
5630
+ });
5631
+ if (allGood) {
5632
+ this.done(this.valueModel.value);
5633
+ }
5634
+ }
5635
+ catch (e) {
5636
+ console.error(e);
5637
+ }
5281
5638
  }
5282
5639
  else {
5283
5640
  this.done(this.valueModel.value);
5284
5641
  }
5285
5642
  }
5286
- });
5643
+ }));
5287
5644
  this.cancelCommand = Command.create(() => {
5288
5645
  this.cancel();
5289
5646
  });
5647
+ this.busyWhile(this.confirmCommand.busy);
5648
+ }
5649
+ get layout() {
5650
+ var _a, _b;
5651
+ return (_b = (_a = this.data) === null || _a === void 0 ? void 0 : _a.layout) !== null && _b !== void 0 ? _b : InputActivity.Layout.BLOCK;
5290
5652
  }
5291
5653
  onActivityReady() {
5292
5654
  this.valueModel.focusContext.requestFocus();
5293
5655
  }
5656
+ get additionalCssClassName() {
5657
+ var _a;
5658
+ return (_a = this.data.cssClassName) !== null && _a !== void 0 ? _a : '';
5659
+ }
5660
+ onEscape() {
5661
+ if (this.shouldCancelOnEscape() && this.cancelCommand.enabled.value) {
5662
+ this.cancelCommand.execute();
5663
+ }
5664
+ }
5665
+ shouldCancelOnEscape() {
5666
+ return _.isNil(this.data.cancelOnEscape) // we default to true..
5667
+ || this.data.cancelOnEscape;
5668
+ }
5294
5669
  }
5295
- AbstractInputActivity.decorators = [
5670
+ InputActivity.decorators = [
5296
5671
  { type: Component, args: [{ template: `` },] }
5297
5672
  ];
5298
- AbstractInputActivity.ctorParameters = () => [
5673
+ InputActivity.ctorParameters = () => [
5299
5674
  { type: undefined, decorators: [{ type: Inject, args: [ACTIVITY_DATA,] }] }
5300
5675
  ];
5301
- AbstractInputActivity.propDecorators = {
5302
- class: [{ type: HostBinding, args: ['class',] }]
5676
+ InputActivity.propDecorators = {
5677
+ class: [{ type: HostBinding, args: ['class',] }],
5678
+ layout: [{ type: Input }, { type: HostBinding, args: ['attr.layout',] }],
5679
+ additionalCssClassName: [{ type: HostBinding, args: ["class",] }],
5680
+ onEscape: [{ type: HostListener, args: ['keydown.escape',] }]
5303
5681
  };
5682
+ (function (InputActivity) {
5683
+ InputActivity.Layout = Enum({
5684
+ INLINE: 'inline',
5685
+ BLOCK: 'block'
5686
+ });
5687
+ })(InputActivity || (InputActivity = {}));
5304
5688
 
5305
- class StringInputActivity extends AbstractInputActivity {
5689
+ class StringInputActivity extends InputActivity {
5306
5690
  }
5307
5691
  StringInputActivity.decorators = [
5308
5692
  { type: Component, args: [{
@@ -5313,13 +5697,15 @@ StringInputActivity.decorators = [
5313
5697
  [placeholder]="data.placeholder"
5314
5698
  [command.enter]="confirmCommand"
5315
5699
  [command.escape]="cancelCommand"></aup-string-input>
5316
- <aup-activity-actions align="end"
5317
- [faces]="data.buttonStyle"></aup-activity-actions>
5700
+ <aup-activity-actions [layout]="layout" align="end"
5701
+ [confirmFace]="confirmFace"
5702
+ [cancelFace]="cancelFace"
5703
+ ></aup-activity-actions>
5318
5704
  `
5319
5705
  },] }
5320
5706
  ];
5321
5707
 
5322
- class SelectInputActivity extends AbstractInputActivity {
5708
+ class SelectInputActivity extends InputActivity {
5323
5709
  constructor() {
5324
5710
  super(...arguments);
5325
5711
  this.defaultOptionLabelFormat = (option) => {
@@ -5347,7 +5733,9 @@ SelectInputActivity.decorators = [
5347
5733
  [options]="options"
5348
5734
  [optionLabelFormat]="optionLabelFormat"
5349
5735
  ></aup-select-input>
5350
- <aup-activity-actions align="end" [faces]="data.buttonStyle"
5736
+ <aup-activity-actions [layout]="layout" align="end"
5737
+ [confirmFace]="confirmFace"
5738
+ [cancelFace]="cancelFace"
5351
5739
  ></aup-activity-actions>
5352
5740
  `
5353
5741
  },] }
@@ -5453,32 +5841,6 @@ class TableModel extends AbstractTableModel {
5453
5841
  }
5454
5842
  }
5455
5843
 
5456
- class SelfAndDescendantsVisitor {
5457
- constructor() {
5458
- }
5459
- visit(it) {
5460
- this.onVisit(it);
5461
- if (this.shouldVisitChildrenOf(it)) {
5462
- it.visitChildren(this);
5463
- }
5464
- }
5465
- shouldVisitChildrenOf(it) {
5466
- return true;
5467
- }
5468
- }
5469
- (function (SelfAndDescendantsVisitor) {
5470
- class Each extends SelfAndDescendantsVisitor {
5471
- constructor(callback) {
5472
- super();
5473
- this.callback = callback;
5474
- }
5475
- onVisit(it) {
5476
- this.callback(it);
5477
- }
5478
- }
5479
- SelfAndDescendantsVisitor.Each = Each;
5480
- })(SelfAndDescendantsVisitor || (SelfAndDescendantsVisitor = {}));
5481
-
5482
5844
  /**
5483
5845
  * @file Automatically generated by barrelsby.
5484
5846
  */
@@ -5489,21 +5851,223 @@ class PopupActivityTriggerComponent extends AbstractActivityTriggerComponent {
5489
5851
  this.anchorX = 'start';
5490
5852
  this.anchorY = 'bottom';
5491
5853
  }
5854
+ get interactionContext() {
5855
+ return this._interactionContext;
5856
+ }
5492
5857
  }
5493
5858
  PopupActivityTriggerComponent.decorators = [
5494
5859
  { type: Component, args: [{
5495
5860
  selector: 'aup-popup-activity-trigger',
5496
5861
  template: "<aup-popup-interaction-context [anchorX]=\"anchorX\" [anchorY]=\"anchorY\">\n <aup-command [command]=\"startActivityCommand\" [faceModel]=\"faceModel\" [alignFace]=\"alignFace\"></aup-command>\n</aup-popup-interaction-context>\n",
5497
- styles: [":host{display:inline-block}"]
5862
+ styles: [":host{display:inline-block}\n"]
5498
5863
  },] }
5499
5864
  ];
5500
5865
  PopupActivityTriggerComponent.ctorParameters = () => [];
5501
5866
  PopupActivityTriggerComponent.propDecorators = {
5502
5867
  anchorX: [{ type: Input }],
5503
5868
  anchorY: [{ type: Input }],
5504
- interactionContext: [{ type: ViewChild, args: [PopupInteractionContextComponent, { static: true },] }]
5869
+ _interactionContext: [{ type: ViewChild, args: [PopupInteractionContextComponent, { static: true },] }]
5505
5870
  };
5506
5871
 
5872
+ class InlineEditorModel extends GarbageCollector {
5873
+ constructor(valueModel, saveCallback) {
5874
+ super();
5875
+ this.valueModel = valueModel;
5876
+ this.saveCallback = saveCallback;
5877
+ this.editing = new MutableValueModel(false);
5878
+ this._validators = new MutableListModel();
5879
+ this._editingEnabled = this.registerDisposable(new DelegatingValueModel().withDefault(true));
5880
+ assert.notNil(valueModel);
5881
+ const { when } = Dsl.disposeWith(this);
5882
+ when(this.editingEnabled).becomesFalsey(() => this.cancelEdit());
5883
+ }
5884
+ get editingEnabled() {
5885
+ return this._editingEnabled.readonly;
5886
+ }
5887
+ disableWhile(condition) {
5888
+ const { chain } = Dsl.disposeWith(this);
5889
+ this.enableWhile(chain(condition).isFalsey());
5890
+ return this;
5891
+ }
5892
+ enableWhile(condition) {
5893
+ this._editingEnabled.setDelegate(condition);
5894
+ return this;
5895
+ }
5896
+ get validators() {
5897
+ return this._validators.readonly;
5898
+ }
5899
+ validateUsing(validator) {
5900
+ this._validators.push(validator);
5901
+ return this;
5902
+ }
5903
+ isEditing() {
5904
+ return this.editing.value;
5905
+ }
5906
+ cancelEdit() {
5907
+ this.editing.value = false;
5908
+ }
5909
+ startEditing() {
5910
+ this.editing.value = true;
5911
+ }
5912
+ }
5913
+ (function (InlineEditorModel) {
5914
+ function create(valueModel, options) {
5915
+ return new InlineEditorModel(valueModel, options.save);
5916
+ }
5917
+ InlineEditorModel.create = create;
5918
+ })(InlineEditorModel || (InlineEditorModel = {}));
5919
+ TrackExternal.oneTimeBinding(InlineEditorModel);
5920
+
5921
+ /**
5922
+ * @example
5923
+ * const source: ValueModel<string> = ...;
5924
+ * const model = InlineEditorModel.create(source, {
5925
+ * save(updated:string, context: EditContext) => {
5926
+ * try {
5927
+ * try and save the thing...
5928
+ * } catch(error) {
5929
+ * context.injectError(error)
5930
+ * }
5931
+ * }).validateUsing(Validator.present("We'll need a value");
5932
+ *
5933
+ * # in the view
5934
+ * <aup-inline-string-editor
5935
+ * label="My field"
5936
+ * placeHolder="I'm ready for a string..."
5937
+ * [editorModel]="model"></aup-inline-string-editor>
5938
+ */
5939
+ class InlineStringEditorComponent extends DisposableComponent {
5940
+ constructor(interactionService) {
5941
+ super();
5942
+ this.editingEnabled = this.registerDisposable(new DelegatingValueModel());
5943
+ const { chain, when, valueOf } = Dsl.disposeWith(this);
5944
+ const modalIC = interactionService.createModalInteractionContextDisposedWith(this);
5945
+ const resolvedFacesModel = chain(this.facesModel).map(userFaces => {
5946
+ return Object.assign(Object.assign({}, InlineStringEditorComponent.DEFAULT_FACES), userFaces);
5947
+ }, { allowNil: true });
5948
+ this.editFaceModel = resolvedFacesModel.pluck('edit');
5949
+ this.saveFace = resolvedFacesModel.pluck('save');
5950
+ this.cancelFace = resolvedFacesModel.pluck('cancel');
5951
+ const self = this;
5952
+ this.editCommand = Command.create(() => __awaiter(this, void 0, void 0, function* () {
5953
+ this.editorModel.editing.value = true;
5954
+ try {
5955
+ yield this.interactionContext.startActivity(StringInputActivity, this.createInputActivityData());
5956
+ }
5957
+ catch (e) {
5958
+ // don't care if they cancelled, just hiding the console errors
5959
+ }
5960
+ finally {
5961
+ this.editorModel.editing.value = false;
5962
+ }
5963
+ })).enableWhile(this.editingEnabled);
5964
+ this.onDispose(() => this.cancelEdit());
5965
+ }
5966
+ ngOnInit() {
5967
+ // our editor model is a one time binding without delegates so we can only
5968
+ // use it once we've been initialised
5969
+ const { chain, when, valueOf } = Dsl.disposeWith(this);
5970
+ if (!this.editorModel) {
5971
+ lang$1.illegalState('editorModel is required');
5972
+ }
5973
+ this.editingEnabled.setDelegate(this.editorModel.editingEnabled);
5974
+ when(this.editorModel.editing).becomesTruthy(() => {
5975
+ this.editCommand.execute();
5976
+ }, { asLongAs: this.editCommand.enabled });
5977
+ when(this.editorModel.editing).becomesFalsey(() => this.cancelEdit());
5978
+ this.empty = valueOf.any(chain.stringValue(this.editorModel.valueModel).isBlank()
5979
+ // deviceDescription.isNil()
5980
+ ).areTruthy();
5981
+ this.displayValue = chain(this.editorModel.valueModel).map(v => {
5982
+ return _.isEmpty(v) ? this.placeHolderModel.value : v;
5983
+ }, { dependsOn: this.placeHolderModel, allowNil: true });
5984
+ }
5985
+ createInputActivityData() {
5986
+ const self = this;
5987
+ return {
5988
+ initialValue: self.editorModel.valueModel.value,
5989
+ confirmFace: self.saveFace.value,
5990
+ cancelFace: self.cancelFace.value,
5991
+ placeholder: self.placeHolderModel.value,
5992
+ label: self.label,
5993
+ layout: InputActivity.Layout.INLINE,
5994
+ validators: self.editorModel.validators.value,
5995
+ save(value, inputContext) {
5996
+ return __awaiter(this, void 0, void 0, function* () {
5997
+ yield self.editorModel.saveCallback(value, inputContext);
5998
+ });
5999
+ }
6000
+ };
6001
+ }
6002
+ cancelEdit() {
6003
+ if (this.isEditing()) {
6004
+ this.interactionContext.cancelActiveActivity();
6005
+ }
6006
+ }
6007
+ startEdit() {
6008
+ if (!this.isEditing() && this.editCommand.enabled.value) {
6009
+ this.editCommand.execute();
6010
+ }
6011
+ }
6012
+ isEditing() {
6013
+ return this.interactionContext.isActive();
6014
+ }
6015
+ isEmpty() {
6016
+ return this.empty.value;
6017
+ }
6018
+ }
6019
+ InlineStringEditorComponent.decorators = [
6020
+ { type: Component, args: [{
6021
+ selector: 'aup-inline-string-editor',
6022
+ template: "<div class=\"container\" *ngIf=\"!editorModel.isEditing()\">\n <mat-form-field appearance=\"standard\" floatLabel=\"always\" (click)=\"startEdit()\"\n [class.editable]=\"editingEnabled.value\" [class.empty]=\"isEmpty()\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input matInput\n placeholder=\"{{placeHolder}}\"\n [ngModel]=\"editorModel.valueModel.value\"\n [disabled]=\"true\"\n >\n <!-- <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>-->\n <!-- <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>-->\n <!-- <aup-icon *ngIf=\"iconPrefix\" matPrefix [icon]=\"iconPrefix\"></aup-icon>-->\n </mat-form-field>\n <aup-command *ngIf=\"editCommand.enabled.value\" [command]=\"editCommand\" [faceModel]=\"editFaceModel\"></aup-command>\n</div>\n<aup-in-place-interaction-context [animateFirstActivity]=\"false\"></aup-in-place-interaction-context>\n"
6023
+ },] }
6024
+ ];
6025
+ InlineStringEditorComponent.ctorParameters = () => [
6026
+ { type: InteractionService }
6027
+ ];
6028
+ InlineStringEditorComponent.propDecorators = {
6029
+ editorModel: [{ type: Input }],
6030
+ facesModel: [{ type: Input }],
6031
+ faces: [{ type: Input }],
6032
+ interactionContext: [{ type: ViewChild, args: [InPlaceInteractionContextComponent,] }],
6033
+ label: [{ type: Input }],
6034
+ placeHolder: [{ type: Input }],
6035
+ placeHolderModel: [{ type: Input }]
6036
+ };
6037
+ __decorate([
6038
+ TrackExternal(),
6039
+ __metadata("design:type", InlineEditorModel)
6040
+ ], InlineStringEditorComponent.prototype, "editorModel", void 0);
6041
+ __decorate([
6042
+ TrackExternal(),
6043
+ __metadata("design:type", ValueModel)
6044
+ ], InlineStringEditorComponent.prototype, "facesModel", void 0);
6045
+ __decorate([
6046
+ StoreInValueModel('facesModel'),
6047
+ __metadata("design:type", Object)
6048
+ ], InlineStringEditorComponent.prototype, "faces", void 0);
6049
+ __decorate([
6050
+ StoreInValueModel('placeHolderModel'),
6051
+ __metadata("design:type", String)
6052
+ ], InlineStringEditorComponent.prototype, "placeHolder", void 0);
6053
+ __decorate([
6054
+ TrackExternal(),
6055
+ __metadata("design:type", ValueModel)
6056
+ ], InlineStringEditorComponent.prototype, "placeHolderModel", void 0);
6057
+ (function (InlineStringEditorComponent) {
6058
+ InlineStringEditorComponent.DEFAULT_FACES = {
6059
+ edit: {
6060
+ icon: () => 'mat:edit'
6061
+ },
6062
+ save: {
6063
+ icon: () => 'mat:check'
6064
+ },
6065
+ cancel: {
6066
+ icon: () => 'mat:clear'
6067
+ }
6068
+ };
6069
+ })(InlineStringEditorComponent || (InlineStringEditorComponent = {}));
6070
+
5507
6071
  class InteractionModule {
5508
6072
  }
5509
6073
  InteractionModule.decorators = [
@@ -5519,7 +6083,11 @@ InteractionModule.decorators = [
5519
6083
  DirectivesModule,
5520
6084
  FlexModule,
5521
6085
  GridModule,
5522
- ComponentsModule
6086
+ ComponentsModule,
6087
+ FormsModule,
6088
+ MatInputModule,
6089
+ MatFormFieldModule,
6090
+ A11yModule
5523
6091
  ],
5524
6092
  declarations: [
5525
6093
  ActivityContainerComponent,
@@ -5533,7 +6101,7 @@ InteractionModule.decorators = [
5533
6101
  PopupInteractionContextComponent,
5534
6102
  StringInputActivity,
5535
6103
  SelectInputActivity,
5536
- AbstractInputActivity,
6104
+ InputActivity,
5537
6105
  InteractionContextTriggerFor,
5538
6106
  Activity,
5539
6107
  ActivityTitleComponent,
@@ -5542,7 +6110,9 @@ InteractionModule.decorators = [
5542
6110
  AbstractActivityTriggerComponent,
5543
6111
  PopupActivityTriggerComponent,
5544
6112
  InlineActivityTriggerComponent,
5545
- ModalActivityTriggerComponent
6113
+ ModalActivityTriggerComponent,
6114
+ AddCardActivityComponent,
6115
+ InlineStringEditorComponent,
5546
6116
  ],
5547
6117
  exports: [
5548
6118
  ActivityContainerComponent,
@@ -5558,7 +6128,9 @@ InteractionModule.decorators = [
5558
6128
  ActivityBodyComponent,
5559
6129
  PopupActivityTriggerComponent,
5560
6130
  InlineActivityTriggerComponent,
5561
- ModalActivityTriggerComponent
6131
+ ModalActivityTriggerComponent,
6132
+ AddCardActivityComponent,
6133
+ InlineStringEditorComponent,
5562
6134
  ],
5563
6135
  entryComponents: [
5564
6136
  ActivityContainerComponent,
@@ -5839,16 +6411,27 @@ class PlaceComponent extends DisposableComponent {
5839
6411
  when(this._active).becomesTruthy(() => this._notifyPlaceReady());
5840
6412
  this.childPlaces = this.placeDefinition.children.map(d => d.component);
5841
6413
  }
5842
- // @Trace()
5843
6414
  initialiseVisit(visit, notifyVisitChanged) {
5844
6415
  assert.isNil(this.visitModel.value);
5845
6416
  const { when } = Dsl.disposeWith(this);
5846
6417
  this.visitModel.value = visit;
5847
6418
  DebugContext.getOrCreate(this.visitModel).tag(`${this.placeDefinition.component.name}.visitModel`);
5848
- this.placeDefinition.getVisitParameterDefs().forEach(parameterDef => this.installBinding(parameterDef));
6419
+ // we track if the any of the bindings updated the route. If so we remember it and update the
6420
+ // route in one go at the end.
6421
+ this.placeDefinition
6422
+ .getVisitParameterDefs()
6423
+ .forEach(parameterDef => this.installAndInitialiseBinding(visit, parameterDef));
5849
6424
  when(this.visitModel).changes((current, previous) => {
5850
6425
  notifyVisitChanged(current, previous);
5851
6426
  }, { unless: this._inVisitUpdate });
6427
+ // TODO: this needs to do a replace url option so that the new url isn't put in the history.... for
6428
+ // now we're not doing it as it's a fair bit of effort and will only affect people if they're
6429
+ // cutting and pasting urls to each other.
6430
+ // // the binding process can update the visit (e.g. if a selection model has already selected during
6431
+ // // component construction) and there was no value specified in the route
6432
+ // if (visit.hasRoutingChangedFrom(this.visitModel.value)) {
6433
+ // notifyVisitChanged(this.visitModel.value, visit)
6434
+ // }
5852
6435
  }
5853
6436
  updateVisit(visit) {
5854
6437
  assert.isTruthy(this.isInitialised());
@@ -5861,7 +6444,12 @@ class PlaceComponent extends DisposableComponent {
5861
6444
  return !!this.visitModel.value;
5862
6445
  }
5863
6446
  // @Trace()
5864
- installBinding(parameterDef) {
6447
+ /**
6448
+ * Initialised the component bindings. If any binding has an initial model value (e.g. a selection model
6449
+ * initialised during the constructor) and the route has nothing, then the visit will be udpated and this
6450
+ * method will return ture to nofiy the the visit has changed.
6451
+ */
6452
+ installAndInitialiseBinding(initialVisit, parameterDef) {
5865
6453
  const model = this[parameterDef.propertyName];
5866
6454
  DebugContext.tag(model, `${this.placeDefinition.component.name}.${parameterDef.propertyName}`);
5867
6455
  const binding = this.registerDisposable(new Binding(this.visitModel, model, {
@@ -5875,7 +6463,17 @@ class PlaceComponent extends DisposableComponent {
5875
6463
  return currentVisit.replace(parameterDef, value);
5876
6464
  }
5877
6465
  }));
5878
- binding.writeRight();
6466
+ // Now we need to initialise the binding direction. If we have a value in the Url then we should always push
6467
+ // that to the view. If we don't and the view already has a value (e.g. a selection model has already initialised in the
6468
+ // component constructor) then we should push that to the route.
6469
+ const isInVisit = !_.isNil(initialVisit.getParameterValue(parameterDef));
6470
+ const isInModel = !_.isNil(model.value);
6471
+ if (!isInVisit && isInModel) {
6472
+ binding.writeLeft(); // push it to the route
6473
+ }
6474
+ else {
6475
+ binding.writeRight(); // push it to the model
6476
+ }
5879
6477
  }
5880
6478
  get placeDefinition() {
5881
6479
  const definition = PlaceComponent.getDefinition(this.constructor);
@@ -6918,7 +7516,7 @@ class ConsolidatedParameterMap {
6918
7516
  return !!this.paramMaps.find(m => m.has(name));
6919
7517
  }
6920
7518
  get keys() {
6921
- return this.paramMaps.reduce((result, params) => result.concat(params.keys), []);
7519
+ return _.uniq(this.paramMaps.reduce((result, params) => result.concat(params.keys), []));
6922
7520
  }
6923
7521
  }
6924
7522
  __decorate([
@@ -6995,9 +7593,13 @@ class Visit {
6995
7593
  });
6996
7594
  return new Visit(this.placeDefinition, params);
6997
7595
  }
7596
+ // @Trace()
6998
7597
  hasRoutingChangedFrom(other) {
6999
7598
  const samePlace = other.placeDefinition === this.placeDefinition;
7000
- const sameRouteParameters = _.isEqual(this.placeDefinition.getFormattedRouteParameters(this, true), this.placeDefinition.getFormattedRouteParameters(other, true));
7599
+ const currentParams = this.placeDefinition.getFormattedRouteParameters(this, true);
7600
+ const otherParams = this.placeDefinition.getFormattedRouteParameters(other, true);
7601
+ // console.log({currentParams, otherParams});
7602
+ const sameRouteParameters = _.isEqual(currentParams, otherParams);
7001
7603
  return !samePlace || !sameRouteParameters;
7002
7604
  }
7003
7605
  hasChangedFrom(other) {
@@ -7019,6 +7621,7 @@ class UrlSnapshot {
7019
7621
  this.url = url;
7020
7622
  this.urlTree = urlSerializer.parse(url);
7021
7623
  }
7624
+ // @Trace()
7022
7625
  updateVisitSegments(visit) {
7023
7626
  const newUrlTree = this.urlSerializer.parse(this.url);
7024
7627
  // Ugly, but it works for now.
@@ -7095,12 +7698,6 @@ class UrlSnapshot {
7095
7698
  return `UrlSnapshot(${this.url})`;
7096
7699
  }
7097
7700
  }
7098
- __decorate([
7099
- Trace(),
7100
- __metadata("design:type", Function),
7101
- __metadata("design:paramtypes", [Visit]),
7102
- __metadata("design:returntype", UrlSnapshot)
7103
- ], UrlSnapshot.prototype, "updateVisitSegments", null);
7104
7701
  __decorate([
7105
7702
  Memoize(),
7106
7703
  __metadata("design:type", Function),
@@ -7181,6 +7778,9 @@ UrlService.ctorParameters = () => [
7181
7778
  { type: UrlSerializer }
7182
7779
  ];
7183
7780
 
7781
+ function asArray(item) {
7782
+ return Array.isArray(item) ? item : [item];
7783
+ }
7184
7784
  class PlaceRouter extends GarbageCollector {
7185
7785
  constructor(angularRouter, angularLocation, interactionService, urlService, placeHistory) {
7186
7786
  super();
@@ -7344,11 +7944,10 @@ class PlaceRouter extends GarbageCollector {
7344
7944
  this.currentSession.onRouterEnd(event);
7345
7945
  }
7346
7946
  navigate(visit, options) {
7947
+ const commands = asArray(visit).reduce((result, v) => {
7948
+ return [...result, v.placeDefinition.path, ...this.createRouteParameters(v)];
7949
+ }, []);
7347
7950
  return this.doNavigation(visit, (router) => __awaiter(this, void 0, void 0, function* () {
7348
- const commands = [
7349
- visit.placeDefinition.path,
7350
- ...this.createRouteParameters(visit)
7351
- ];
7352
7951
  yield this.angularRouter.navigate(commands, {
7353
7952
  relativeTo: options ? options.relativeTo : null
7354
7953
  });
@@ -7361,7 +7960,7 @@ class PlaceRouter extends GarbageCollector {
7361
7960
  lang.illegalState('Navigation already in progress');
7362
7961
  }
7363
7962
  const navigation = this.createNavigationSession(this.urlService.getCurrentRouterUrl());
7364
- navigation.storeVisit(visit);
7963
+ asArray(visit).forEach(v => navigation.storeVisit(v));
7365
7964
  this.transitionTo(navigation);
7366
7965
  try {
7367
7966
  yield runNavigationCommands(this.angularRouter);
@@ -7442,6 +8041,7 @@ class PlaceRouter extends GarbageCollector {
7442
8041
  * to be able to capture the back button on the first page. If we don't then the back click will exit
7443
8042
  * the app directly and we don't get to ask.
7444
8043
  */
8044
+ // @Trace()
7445
8045
  syncInteractionContextIdsWithRouter() {
7446
8046
  if (this.navigationSession) {
7447
8047
  // console.log(`Navigation active -> ${this.navigationSession.toString()}, sync delayed until finished.`);
@@ -7483,12 +8083,6 @@ PlaceRouter.ctorParameters = () => [
7483
8083
  { type: UrlService },
7484
8084
  { type: PlaceHistory }
7485
8085
  ];
7486
- __decorate([
7487
- Trace(),
7488
- __metadata("design:type", Function),
7489
- __metadata("design:paramtypes", []),
7490
- __metadata("design:returntype", Promise)
7491
- ], PlaceRouter.prototype, "syncInteractionContextIdsWithRouter", null);
7492
8086
  (function (PlaceRouter) {
7493
8087
  class State {
7494
8088
  constructor(activeVisits) {
@@ -7514,7 +8108,7 @@ NotAuthorisedNoticeComponent.decorators = [
7514
8108
  { type: Component, args: [{
7515
8109
  selector: 'aup-not-authorised-notice',
7516
8110
  template: "<p>You are not authorised to access this page</p>\n",
7517
- styles: [":host{display:flex;flex-direction:column;align-items:center;justify-content:center}"]
8111
+ styles: [":host{display:flex;flex-direction:column;align-items:center;justify-content:center}\n"]
7518
8112
  },] }
7519
8113
  ];
7520
8114
  NotAuthorisedNoticeComponent.ctorParameters = () => [];
@@ -7740,7 +8334,7 @@ PlaceOutletComponent.decorators = [
7740
8334
  selector: 'aup-place-outlet',
7741
8335
  template: "<ng-container *ngIf=\"animationEnabled.value\">\n <div class=\"router-outlet-container\"\n cdkScrollable\n [@routeAnimations]=\"{value: getAnimationOrder(), params:{duration: animationDuration}}\"\n (@routeAnimations.start)=\"animationStarted()\"\n (@routeAnimations.done)=\"animationDone()\"\n >\n <router-outlet #routerOutlet=\"outlet\"\n (activate)=\"onOutletActivated(routerOutlet, $event)\"\n (deactivate)=\"onOutletDeactivated()\">\n </router-outlet>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"!animationEnabled.value\">\n <div class=\"router-outlet-container\"\n cdkScrollable>\n <router-outlet #routerOutlet=\"outlet\"\n (activate)=\"onOutletActivated(routerOutlet, $event)\"\n (deactivate)=\"onOutletDeactivated()\">\n </router-outlet>\n </div>\n</ng-container>\n\n<div class=\"not-authorised-component-container\" *ngIf=\"!authorised.value\">\n <ng-template [cdkPortalOutlet]=\"notAuthorisedNoticePortal\"></ng-template>\n</div>\n",
7742
8336
  animations: [LEFT_RIGHT_PLACE_ANIMATION],
7743
- styles: [":host{display:flex;flex-direction:column;min-height:0}:host:not(.authorised) .router-outlet-container{display:none}.router-outlet-container{flex:1;display:block;position:relative;min-height:0;overflow-x:hidden;overflow-y:auto}router-outlet{display:none}.not-authorised-component-container{flex:1;display:grid;grid-template-columns:1fr;grid-template-rows:1fr}"]
8337
+ styles: [":host{display:flex;flex-direction:column;min-height:0}:host:not(.authorised) .router-outlet-container{display:none}.router-outlet-container{flex:1;display:block;position:relative;min-height:0;overflow-x:hidden;overflow-y:auto}router-outlet{display:none}.not-authorised-component-container{flex:1;display:grid;grid-template-columns:1fr;grid-template-rows:1fr}\n"]
7744
8338
  },] }
7745
8339
  ];
7746
8340
  PlaceOutletComponent.ctorParameters = () => [
@@ -7870,7 +8464,7 @@ ListPlaceNavComponent.decorators = [
7870
8464
  { type: Component, args: [{
7871
8465
  selector: 'aup-list-place-nav',
7872
8466
  template: "<mat-nav-list fxFlex>\n <a mat-list-item *ngFor=\"let item of menuItems.value; trackBy: trackByPlaceDef\"\n [pectinCommand]=\"commandFactory.create(item.place)\"\n [class.active]=\"item.active\"\n [matTooltip]=\"getNavigationFace(item.place).tooltip()\">\n <aup-command-face [faces]=\"[getNavigationFace(item.place)]\"></aup-command-face>\n </a>\n</mat-nav-list>\n",
7873
- styles: [":host{display:flex;flex-direction:column;--selected-border-color:#838383;--selected-color:inherit;--selected-background:#f1f1f1}mat-nav-list{padding-top:0}a{border-right:2px solid transparent}a.active{border-right:2px solid var(--selected-border-color);background:var(--selected-background);color:var(--selected-color)}"]
8467
+ styles: [":host{display:flex;flex-direction:column;--selected-border-color: #838383;--selected-color: inherit;--selected-background: #f1f1f1}mat-nav-list{padding-top:0}a{border-right:2px solid transparent}a.active{border-right:2px solid var(--selected-border-color);background:var(--selected-background);color:var(--selected-color)}\n"]
7874
8468
  },] }
7875
8469
  ];
7876
8470
  ListPlaceNavComponent.ctorParameters = () => [
@@ -7938,7 +8532,7 @@ SidePlaceNavigationComponent.decorators = [
7938
8532
  { type: Component, args: [{
7939
8533
  selector: 'aup-side-place-navigation',
7940
8534
  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 item of menuItems.value; trackBy: trackByPlaceDef\"\n [pectinCommand]=\"commandFactory.create(item.place)\"\n [class.active]=\"item.active\"\n [matTooltip]=\"getNavigationFace(item.place).tooltip()\">\n <aup-icon *ngIf=\"getNavigationFace(item.place).icon()\" [icon]=\"getNavigationFace(item.place).icon()\"></aup-icon>\n <span class=\"expanded-only\">{{getNavigationFace(item.place).text()}}</span>\n </a>\n <span [style.flex]=\"1\"></span>\n <ng-container *ngIf=\"navEndTemplate\" [ngTemplateOutlet]=\"navEndTemplate\"></ng-container>\n</mat-nav-list>\n",
7941
- 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,hsla(0,0%,100%,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)}"]
8535
+ 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, .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)}\n"]
7942
8536
  },] }
7943
8537
  ];
7944
8538
  SidePlaceNavigationComponent.ctorParameters = () => [
@@ -7958,7 +8552,7 @@ TabbedPlaceNavigationComponent.decorators = [
7958
8552
  { type: Component, args: [{
7959
8553
  selector: 'aup-tabbed-place-navigation',
7960
8554
  template: "<nav mat-tab-nav-bar>\n <ng-content select=\"[nav-start]\"></ng-content>\n <a mat-tab-link *ngFor=\"let item of menuItems.value; trackBy: trackByPlaceDef\"\n [pectinCommand]=\"commandFactory.create(item.place)\"\n [active]=\"item.active\"\n [matTooltip]=\"getNavigationFace(item.place).tooltip()\">\n <aup-command-face [faces]=\"[getNavigationFace(item.place)]\"></aup-command-face>\n </a>\n <ng-content select=\"[nav-end]\"></ng-content>\n</nav>\n",
7961
- styles: [":host{display:block}div.place-holder{border:1px solid green}"]
8555
+ styles: [":host{display:block}div.place-holder{border:1px solid green}\n"]
7962
8556
  },] }
7963
8557
  ];
7964
8558
  TabbedPlaceNavigationComponent.ctorParameters = () => [
@@ -8250,10 +8844,11 @@ class PlaceGuard {
8250
8844
  }
8251
8845
  }
8252
8846
  const result = yield this.cleanInteractionState(activatedRoute, state, () => __awaiter(this, void 0, void 0, function* () {
8847
+ const navigationSession = this.placeRouter.navigationSession;
8253
8848
  // Parse our route params.
8254
8849
  const params = new ConsolidatedParameterMap(activatedRoute.url, activatedRoute.paramMap);
8850
+ // console.log("RouteParams", params)
8255
8851
  const parsedParams = placeDefinition.parseRouteParams(params);
8256
- const navigationSession = this.placeRouter.navigationSession;
8257
8852
  const initialVisit = navigationSession.getVisitFor(placeDefinition) || new Visit(placeDefinition, parsedParams);
8258
8853
  const sanitiser = new VisitSanitiser(navigationSession, activatedRoute, this.router, this.placeHistory, this.injector);
8259
8854
  const sanitisedVisit = yield sanitiser.sanitise(initialVisit.mergeRouteParameters(parsedParams));
@@ -8505,5 +9100,5 @@ VisibilityService.ctorParameters = () => [
8505
9100
  * Generated bundle index. Do not edit.
8506
9101
  */
8507
9102
 
8508
- export { ACTIVITY_DATA, AUP_PLACE_CONFIG, AUP_UNAUTHORISED_PLACE_NOTICE_COMPONENT, AbstractActivityTriggerComponent, AbstractInputActivity, AbstractInputComponent, AbstractInteractionContext, AbstractListInputComponent, AbstractPlaceNavigationComponent, AbstractPopStateNavigation, AbstractPopupMenuComponent, AbstractTableComponent, AbstractTableModel, AbstractValueInputComponent, Activity, ActivityActionsComponent, ActivityBodyComponent, ActivityContainerComponent, ActivityOutletComponent, ActivityRef, ActivityTitleComponent, AddItemInteractionContextComponent, AlertDialogComponent, AngularUiPowerupsModule, AutocompleteInputComponent, Bounds, BusyOverlayComponent, CELL_EDITOR_PORTAL, CELL_RENDERER_PORTAL, CardContainerComponent, CellEditorPortalRef, CellHeaderPortalRef, CellPortalRef, CellRendererPortalRef, CheckboxInputComponent, ColumnListModel, ColumnModel, ColumnTemplateDirective, CommandComponent, CommandContainer, CommandDirective, CommandFace, CommandFaceComponent, ComponentCellRendererPortalRef, ComponentsModule, ConfirmThenDialogComponent, ConfirmationDialogComponent, ConsolidatedParameterMap, CustomTemplateColumnModel, CustomValueColumnModel, DEFINITION_META_DATA_KEY, DIALOG_INTERACTION_SERVICE_DEFAULTS, DecoratedTreeNode, DefaultCellRendererComponent, DefaultHeaderCellRendererComponent, DialogInteractionContext, DialogInteractionContextFactory, Dimension, DirectivesModule, DisposableComponent, EditRowControls, EditSession, EditorControlColumnModel, EmptyStateComponent, EventCleanUpSession, FlattenedTreeListModel, FlexComponent, FocusBinding, FocusBindingDirective, FocusBindingFactory, FocusContainerComponent, FocusableComponent, Formatter, HEADER_CELL_RENDERER_PORTAL, HighlightPipe, HighlightTextModelDirective, HorizontalAlignment, IconComponent, InPlaceInteractionContextComponent, InlineActivityTriggerComponent, InteractionContextTriggerFor, InteractionModule, InteractionService, InteractionServiceRoutingAdapter, LEFT_RIGHT_PLACE_ANIMATION, ListPlaceNavComponent, ListPropertyColumnModel, ModalActivityTriggerComponent, ModalInteractionContextFactory, MoreMenuComponent, MultipleSelectInputComponent, Navigating, NavigatingDuringInteraction, NavigationContext, NavigationSession, NoopAuthGuard, NoopComponent, NotAuthorisedNoticeComponent, NumberInputComponent, POPUP_CONTAINER, PORTAL_EDITOR_COMPONENT, PORTAL_RENDERER_COMPONENT, PaginatorComponent, ParameterDefinition, PasswordInputComponent, Place, PlaceAccessGuard, PlaceComponent, PlaceComponentDeactivationHandler, PlaceDefinition, PlaceGuard, PlaceHistory, PlaceModule, PlaceOutletComponent, PlaceRouter, Point, PopStateDuringInteractionNavigation, PopStateNavigation, PopupActivityTriggerComponent, PopupAwareComponent, PopupInteractionContextComponent, PopupMenuComponent, PopupMenuRendererComponent, PropertyColumnModel, ROUTE_PARAMETER_LIST_KEY, RemoveLastInteractionFromUrlNavigationSession, ResizeAwareComponent, RouteId, ScrollContainerComponent, SectionHeaderComponent, SelectCellRendererComponent, SelectHeaderCellRendererComponent, SelectInputActivity, SelectInputComponent, SelectionColumnModel, SelfAndDescendantsVisitor, SeparatorComponent, SidePlaceNavigationComponent, StringInputActivity, StringInputComponent, SwitchCaseComponent, SwitchCaseDefaultDirective, SwitchCaseOption, SwitchCaseWhenDirective, SynchroniseInteractionContextIdsWithRoute, TabbedPlaceNavigationComponent, TableCellRendererComponent, TableComponent, TableHeaderCellRendererComponent, TableModel, TableRowMenuComponent, TemplateCellRendererPortalRef, TextInputComponent, ToolBarComponent, TrackBy, TreeExpansionModel, TreeInheritanceIconComponent, TreeLabelCellRendererComponent, TreeLabelColumnModel, TreeTableComponent, TreeTableModel, UrlService, UrlSnapshot, VerticalFocusContainerComponent, VisibilityService, Visit, VisitParameter, VisitParameterList, VisitSanitiser, WaitUntilLeavingInteractionTransitionCancelled, WaitUntilLinkTriggeredNavigationInteractionCancellationTypeDetermined, WaitUntilPopStateDuringCanDeactivateInteractionFinishes, leftRightPlaceAnimation, slideDownOnEnterAnimation, slideRightOnEnterAnimation, treeNodeDecorator, ɵ0 };
9103
+ export { ACTIVITY_DATA, AUP_PLACE_CONFIG, AUP_UNAUTHORISED_PLACE_NOTICE_COMPONENT, AbstractActivityTriggerComponent, AbstractCardContainerComponent, AbstractInputComponent, AbstractInteractionContext, AbstractListInputComponent, AbstractPlaceNavigationComponent, AbstractPopStateNavigation, AbstractPopupMenuComponent, AbstractTableComponent, AbstractTableModel, AbstractValueInputComponent, Activity, ActivityActionsComponent, ActivityBodyComponent, ActivityContainerComponent, ActivityOutletComponent, ActivityRef, ActivityTitleComponent, AddCardActivityComponent, AddItemInteractionContextComponent, AlertDialogComponent, AngularUiPowerupsModule, AutocompleteInputComponent, Bounds, BusyOverlayComponent, CELL_EDITOR_PORTAL, CELL_RENDERER_PORTAL, CardContainerComponent, CardStackComponent, CellEditorPortalRef, CellHeaderPortalRef, CellPortalRef, CellRendererPortalRef, CheckboxInputComponent, ColumnListModel, ColumnModel, ColumnTemplateDirective, CommandComponent, CommandContainer, CommandDirective, CommandFace, CommandFaceComponent, ComponentCellRendererPortalRef, ComponentsModule, ConfirmThenDialogComponent, ConfirmationDialogComponent, ConsolidatedParameterMap, CustomTemplateColumnModel, CustomValueColumnModel, DEFINITION_META_DATA_KEY, DIALOG_INTERACTION_SERVICE_DEFAULTS, DecoratedTreeNode, DefaultCellRendererComponent, DefaultHeaderCellRendererComponent, DialogInteractionContext, DialogInteractionContextFactory, Dimension, DirectivesModule, DisposableComponent, EditRowControls, EditSession, EditorControlColumnModel, EmptyStateComponent, EventCleanUpSession, FlattenedTreeListModel, FlexComponent, FocusBinding, FocusBindingDirective, FocusBindingFactory, FocusContainerComponent, FocusableComponent, Formatter, HEADER_CELL_RENDERER_PORTAL, HighlightPipe, HighlightTextModelDirective, HorizontalAlignment, IconComponent, InPlaceInteractionContextComponent, InlineActivityTriggerComponent, InlineEditorModel, InlineStringEditorComponent, InputActivity, InteractionContextTriggerFor, InteractionModule, InteractionService, InteractionServiceRoutingAdapter, LEFT_RIGHT_PLACE_ANIMATION, LabelledValueComponent, ListPlaceNavComponent, ListPropertyColumnModel, LoadingContainerComponent, ModalActivityTriggerComponent, ModalInteractionContextFactory, MoreMenuComponent, MultipleSelectInputComponent, Navigating, NavigatingDuringInteraction, NavigationContext, NavigationSession, NoopAuthGuard, NoopComponent, NotAuthorisedNoticeComponent, NumberInputComponent, POPUP_CONTAINER, PORTAL_EDITOR_COMPONENT, PORTAL_RENDERER_COMPONENT, PaginatorComponent, ParameterDefinition, PasswordInputComponent, Place, PlaceAccessGuard, PlaceComponent, PlaceComponentDeactivationHandler, PlaceDefinition, PlaceGuard, PlaceHistory, PlaceModule, PlaceOutletComponent, PlaceRouter, Point, PopStateDuringInteractionNavigation, PopStateNavigation, PopupActivityTriggerComponent, PopupAwareComponent, PopupInteractionContextComponent, PopupMenuComponent, PopupMenuRendererComponent, PropertyColumnModel, ROUTE_PARAMETER_LIST_KEY, 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, TreeExpansionModel, TreeInheritanceIconComponent, TreeLabelCellRendererComponent, TreeLabelColumnModel, TreeTableComponent, TreeTableModel, UrlService, UrlSnapshot, VerticalFocusContainerComponent, VisibilityService, Visit, VisitParameter, VisitParameterList, VisitSanitiser, WaitUntilLeavingInteractionTransitionCancelled, WaitUntilLinkTriggeredNavigationInteractionCancellationTypeDetermined, WaitUntilPopStateDuringCanDeactivateInteractionFinishes, leftRightPlaceAnimation, slideDownOnEnterAnimation, slideRightOnEnterAnimation, treeNodeDecorator, ɵ0 };
8509
9104
  //# sourceMappingURL=coolon-angular-ui-powerups.js.map