@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,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core'), require('@angular/forms'), require('@angular/material/form-field'), require('@angular/material/input'), require('@angular/material/select'), require('@angular/material/tabs'), require('@angular/platform-browser/animations'), require('@angular/cdk/portal'), require('@angular/cdk/scrolling'), require('@angular/material/autocomplete'), require('@angular/material/button'), require('@angular/material/checkbox'), require('@angular/material/divider'), require('@angular/material/icon'), require('@angular/material/menu'), require('@angular/material/progress-spinner'), require('@angular/material/table'), require('@angular/material/tooltip'), require('@fortawesome/angular-fontawesome'), require('@fortawesome/free-solid-svg-icons'), require('@coolon/pectin'), require('@angular/platform-browser'), require('lodash'), require('@typescript-plus/fast-memoize-decorator/dist/src'), require('typescript-string-enums'), require('@coolon/typescript-utilities'), require('resize-observer-polyfill'), require('immer'), require('@angular/flex-layout'), require('@angular/material/dialog'), require('@angular/router'), require('@angular/cdk/overlay'), require('@angular/material/list'), require('@typescript-plus/fast-memoize-decorator'), require('reflect-metadata'), require('@angular/animations'), require('wake-event')) :
3
- typeof define === 'function' && define.amd ? define('@coolon/angular-ui-powerups', ['exports', '@angular/common', '@angular/core', '@angular/forms', '@angular/material/form-field', '@angular/material/input', '@angular/material/select', '@angular/material/tabs', '@angular/platform-browser/animations', '@angular/cdk/portal', '@angular/cdk/scrolling', '@angular/material/autocomplete', '@angular/material/button', '@angular/material/checkbox', '@angular/material/divider', '@angular/material/icon', '@angular/material/menu', '@angular/material/progress-spinner', '@angular/material/table', '@angular/material/tooltip', '@fortawesome/angular-fontawesome', '@fortawesome/free-solid-svg-icons', '@coolon/pectin', '@angular/platform-browser', 'lodash', '@typescript-plus/fast-memoize-decorator/dist/src', 'typescript-string-enums', '@coolon/typescript-utilities', 'resize-observer-polyfill', 'immer', '@angular/flex-layout', '@angular/material/dialog', '@angular/router', '@angular/cdk/overlay', '@angular/material/list', '@typescript-plus/fast-memoize-decorator', 'reflect-metadata', '@angular/animations', 'wake-event'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.coolon = global.coolon || {}, global.coolon['angular-ui-powerups'] = {}), global.ng.common, global.ng.core, global.ng.forms, global.ng.material.formField, global.ng.material.input, global.ng.material.select, global.ng.material.tabs, global.ng.platformBrowser.animations, global.ng.cdk.portal, global.ng.cdk.scrolling, global.ng.material.autocomplete, global.ng.material.button, global.ng.material.checkbox, global.ng.material.divider, global.ng.material.icon, global.ng.material.menu, global.ng.material.progressSpinner, global.ng.material.table, global.ng.material.tooltip, global.angularFontawesome, global.freeSolidSvgIcons, global.pectin, global.ng.platformBrowser, global._, global.src, global.typescriptStringEnums, global.typescriptUtilities, global.ResizeObserver, global.produce, global.ng.flexLayout, global.ng.material.dialog, global.ng.router, global.ng.cdk.overlay, global.ng.material.list, global.fastMemoizeDecorator, null, global.ng.animations, global.wakeEvent));
5
- }(this, (function (exports, i2, i0, forms, formField, input, select, tabs, animations, portal, scrolling, autocomplete, button, checkbox, divider, icon, menu, progressSpinner, table, tooltip, angularFontawesome, freeSolidSvgIcons, pectin, platformBrowser, _, src, typescriptStringEnums, typescriptUtilities, ResizeObserver, produce, flexLayout, i1, i1$1, overlay, list, fastMemoizeDecorator, reflectMetadata, animations$1, wakeEvent) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core'), require('@angular/forms'), require('@angular/material/form-field'), require('@angular/material/input'), require('@angular/material/select'), require('@angular/material/tabs'), require('@angular/platform-browser/animations'), require('@angular/cdk/portal'), require('@angular/cdk/scrolling'), require('@angular/material/autocomplete'), require('@angular/material/button'), require('@angular/material/checkbox'), require('@angular/material/divider'), require('@angular/material/icon'), require('@angular/material/menu'), require('@angular/material/progress-bar'), require('@angular/material/progress-spinner'), require('@angular/material/table'), require('@angular/material/tooltip'), require('@fortawesome/angular-fontawesome'), require('@fortawesome/free-solid-svg-icons'), require('@coolon/pectin'), require('@angular/platform-browser'), require('lodash'), require('@coolon/typescript-utilities'), require('@typescript-plus/fast-memoize-decorator/dist/src'), require('typescript-string-enums'), require('resize-observer-polyfill'), require('immer'), require('@angular/cdk/a11y'), require('@angular/flex-layout'), require('@angular/material/dialog'), require('@angular/router'), require('@angular/cdk/overlay'), require('@angular/material/list'), require('@typescript-plus/fast-memoize-decorator'), require('reflect-metadata'), require('@angular/animations'), require('wake-event')) :
3
+ typeof define === 'function' && define.amd ? define('@coolon/angular-ui-powerups', ['exports', '@angular/common', '@angular/core', '@angular/forms', '@angular/material/form-field', '@angular/material/input', '@angular/material/select', '@angular/material/tabs', '@angular/platform-browser/animations', '@angular/cdk/portal', '@angular/cdk/scrolling', '@angular/material/autocomplete', '@angular/material/button', '@angular/material/checkbox', '@angular/material/divider', '@angular/material/icon', '@angular/material/menu', '@angular/material/progress-bar', '@angular/material/progress-spinner', '@angular/material/table', '@angular/material/tooltip', '@fortawesome/angular-fontawesome', '@fortawesome/free-solid-svg-icons', '@coolon/pectin', '@angular/platform-browser', 'lodash', '@coolon/typescript-utilities', '@typescript-plus/fast-memoize-decorator/dist/src', 'typescript-string-enums', 'resize-observer-polyfill', 'immer', '@angular/cdk/a11y', '@angular/flex-layout', '@angular/material/dialog', '@angular/router', '@angular/cdk/overlay', '@angular/material/list', '@typescript-plus/fast-memoize-decorator', 'reflect-metadata', '@angular/animations', 'wake-event'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.coolon = global.coolon || {}, global.coolon["angular-ui-powerups"] = {}), global.ng.common, global.ng.core, global.ng.forms, global.ng.material.formField, global.ng.material.input, global.ng.material.select, global.ng.material.tabs, global.ng.platformBrowser.animations, global.ng.cdk.portal, global.ng.cdk.scrolling, global.ng.material.autocomplete, global.ng.material.button, global.ng.material.checkbox, global.ng.material.divider, global.ng.material.icon, global.ng.material.menu, global.ng.material.progressBar, global.ng.material.progressSpinner, global.ng.material.table, global.ng.material.tooltip, global.angularFontawesome, global.freeSolidSvgIcons, global.pectin, global.ng.platformBrowser, global._, global.typescriptUtilities, global.src, global.typescriptStringEnums, global.ResizeObserver, global.produce, global.ng.cdk.a11y, global.ng.flexLayout, global.ng.material.dialog, global.ng.router, global.ng.cdk.overlay, global.ng.material.list, global.fastMemoizeDecorator, null, global.ng.animations, global.wakeEvent));
5
+ })(this, (function (exports, i2, i0, forms, formField, input, select, tabs, animations, portal, scrolling, autocomplete, button, checkbox, divider, icon, menu, progressBar, progressSpinner, table, tooltip, angularFontawesome, freeSolidSvgIcons, pectin, platformBrowser, _, typescriptUtilities, src, typescriptStringEnums, ResizeObserver, produce, a11y, flexLayout, i1, i1$1, overlay, list, fastMemoizeDecorator, reflectMetadata, animations$1, wakeEvent) { 'use strict';
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
8
 
@@ -15,14 +15,12 @@
15
15
  var d = Object.getOwnPropertyDescriptor(e, k);
16
16
  Object.defineProperty(n, k, d.get ? d : {
17
17
  enumerable: true,
18
- get: function () {
19
- return e[k];
20
- }
18
+ get: function () { return e[k]; }
21
19
  });
22
20
  }
23
21
  });
24
22
  }
25
- n['default'] = e;
23
+ n["default"] = e;
26
24
  return Object.freeze(n);
27
25
  }
28
26
 
@@ -262,10 +260,16 @@
262
260
  r[k] = a[j];
263
261
  return r;
264
262
  }
265
- function __spreadArray(to, from) {
266
- for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
267
- to[j] = from[i];
268
- return to;
263
+ function __spreadArray(to, from, pack) {
264
+ if (pack || arguments.length === 2)
265
+ for (var i = 0, l = from.length, ar; i < l; i++) {
266
+ if (ar || !(i in from)) {
267
+ if (!ar)
268
+ ar = Array.prototype.slice.call(from, 0, i);
269
+ ar[i] = from[i];
270
+ }
271
+ }
272
+ return to.concat(ar || Array.prototype.slice.call(from));
269
273
  }
270
274
  function __await(v) {
271
275
  return this instanceof __await ? (this.v = v, this) : new __await(v);
@@ -681,7 +685,7 @@
681
685
  var _a;
682
686
  var model = searchModel !== null && searchModel !== void 0 ? searchModel : (_a = this.highlightContext) === null || _a === void 0 ? void 0 : _a.aupHighlightTextModel;
683
687
  var searchText = model === null || model === void 0 ? void 0 : model.value;
684
- if (___default['default'].isEmpty(searchText) || !___default['default'].isString(value)) {
688
+ if (___default["default"].isEmpty(searchText) || !___default["default"].isString(value)) {
685
689
  return value;
686
690
  }
687
691
  // Match in a case insensitive manner
@@ -751,7 +755,7 @@
751
755
  { type: i0.Component, args: [{
752
756
  selector: 'aup-busy-overlay',
753
757
  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",
754
- 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}"]
758
+ 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"]
755
759
  },] }
756
760
  ];
757
761
  BusyOverlayComponent.ctorParameters = function () { return []; };
@@ -768,6 +772,32 @@
768
772
  __metadata("design:type", Boolean)
769
773
  ], BusyOverlayComponent.prototype, "busy", void 0);
770
774
 
775
+ var AbstractCardContainerComponent = /** @class */ (function (_super) {
776
+ __extends(AbstractCardContainerComponent, _super);
777
+ function AbstractCardContainerComponent() {
778
+ return _super.call(this) || this;
779
+ }
780
+ AbstractCardContainerComponent.prototype.ngOnInit = function () {
781
+ };
782
+ return AbstractCardContainerComponent;
783
+ }(DisposableComponent));
784
+ AbstractCardContainerComponent.decorators = [
785
+ { type: i0.Component, args: [{
786
+ selector: 'aup-abstract-card-container',
787
+ template: ''
788
+ },] }
789
+ ];
790
+ AbstractCardContainerComponent.ctorParameters = function () { return []; };
791
+ AbstractCardContainerComponent.propDecorators = {
792
+ addCardCommand: [{ type: i0.Input }],
793
+ addCardFace: [{ type: i0.Input }],
794
+ addCardTemplate: [{ type: i0.ContentChild, args: ['addCardTemplate',] }]
795
+ };
796
+ __decorate([
797
+ pectin.TrackExternal(),
798
+ __metadata("design:type", pectin.Command)
799
+ ], AbstractCardContainerComponent.prototype, "addCardCommand", void 0);
800
+
771
801
  /**
772
802
  * @example
773
803
  * // basic usage
@@ -785,6 +815,13 @@
785
815
  * <my-card *ngFor="..."></my-card>
786
816
  * </aup-card-container>
787
817
  *
818
+ * // use the aup-add-card-activity to display as the new card place holder and to run
819
+ * // the activity inside teh card
820
+ * <aup-card-container [addCardCommand]="addCard" [addCardFace]="i18n.addCard" >
821
+ * <my-card *ngFor="..."></my-card>
822
+ * <aup-add-card-activity type="inline" renderAs="card" [face]="i18n.commands.addModal" [activityClass]="AddCardActivity"></aup-add-card-activity>
823
+ * </aup-card-container>
824
+ *
788
825
  * // adds an add card component using the specified template. The template
789
826
  * // will fill it's container in the grid.
790
827
  * <aup-card-container>
@@ -817,6 +854,7 @@
817
854
  * aup-card-container {
818
855
  * --card-gap: var(--card-gap, 16px);
819
856
  * --card-width: var(--card-width, 300px);
857
+ * --card-max-width: auto;
820
858
  * --card-height: var(--card-height, auto);
821
859
  * --card-min-height: var(--card-min-height, auto);
822
860
  * --card-background: var(--card-background, #fcfcfb);
@@ -824,30 +862,154 @@
824
862
  */
825
863
  var CardContainerComponent = /** @class */ (function (_super) {
826
864
  __extends(CardContainerComponent, _super);
827
- function CardContainerComponent() {
828
- return _super.call(this) || this;
865
+ function CardContainerComponent(elementRef) {
866
+ var _this = _super.call(this) || this;
867
+ _this.elementRef = elementRef;
868
+ /**
869
+ * Enable scrolling. If true the container will have height==0 so you must set it's height explicitly
870
+ * or place in a layout that will stretch it such as a grid or flex layout.
871
+ */
872
+ _this.enabledScroll = false;
873
+ return _this;
829
874
  }
875
+ Object.defineProperty(CardContainerComponent.prototype, "columnCount", {
876
+ get: function () {
877
+ return this._columnCount;
878
+ },
879
+ set: function (count) {
880
+ if (!___namespace.isNil(count) && (!___namespace.isInteger(count) || count < 1)) {
881
+ typescriptUtilities.lang.illegalState('columnCount must be a positive integer or nil');
882
+ }
883
+ this._columnCount = count;
884
+ this.updateColumnCountStyles();
885
+ },
886
+ enumerable: false,
887
+ configurable: true
888
+ });
830
889
  CardContainerComponent.prototype.ngOnInit = function () {
890
+ _super.prototype.ngOnInit.call(this);
891
+ this.updateColumnCountStyles();
892
+ };
893
+ Object.defineProperty(CardContainerComponent.prototype, "isAutoColumns", {
894
+ get: function () {
895
+ return ___namespace.isNil(this._columnCount);
896
+ },
897
+ enumerable: false,
898
+ configurable: true
899
+ });
900
+ Object.defineProperty(CardContainerComponent.prototype, "isSingleColumn", {
901
+ get: function () {
902
+ return this._columnCount === 1;
903
+ },
904
+ enumerable: false,
905
+ configurable: true
906
+ });
907
+ CardContainerComponent.prototype.updateColumnCountStyles = function () {
908
+ var el = this.elementRef.nativeElement;
909
+ if (___namespace.isNil(this._columnCount)) {
910
+ el.style.setProperty('--aup-card-container-column-count', '');
911
+ }
912
+ else {
913
+ el.style.setProperty('--aup-card-container-column-count', this._columnCount);
914
+ }
831
915
  };
832
916
  return CardContainerComponent;
833
- }(DisposableComponent));
917
+ }(AbstractCardContainerComponent));
834
918
  CardContainerComponent.decorators = [
835
919
  { type: i0.Component, args: [{
836
920
  selector: 'aup-card-container',
837
- 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",
838
- 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}"]
921
+ 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",
922
+ 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"]
839
923
  },] }
840
924
  ];
841
- CardContainerComponent.ctorParameters = function () { return []; };
925
+ CardContainerComponent.ctorParameters = function () { return [
926
+ { type: i0.ElementRef }
927
+ ]; };
842
928
  CardContainerComponent.propDecorators = {
843
- addCardCommand: [{ type: i0.Input }],
844
- addCardFace: [{ type: i0.Input }],
845
- addCardTemplate: [{ type: i0.ContentChild, args: ["addCardTemplate",] }]
929
+ columnCount: [{ type: i0.Input }],
930
+ enabledScroll: [{ type: i0.Input }],
931
+ isAutoColumns: [{ type: i0.HostBinding, args: ['class.auto-columns',] }],
932
+ isSingleColumn: [{ type: i0.HostBinding, args: ['class.single-column',] }]
846
933
  };
847
- __decorate([
848
- pectin.TrackExternal(),
849
- __metadata("design:type", pectin.Command)
850
- ], CardContainerComponent.prototype, "addCardCommand", void 0);
934
+
935
+ /**
936
+ * @deprecated deprecated, use `aup-card-container [columnCount]="1"` instead.
937
+ * @example
938
+ * // basic usage
939
+ * <aup-card-stack>
940
+ * <my-card *ngFor="..."></my-card>
941
+ * </aup-card-stack>
942
+ *
943
+ * // adds an add button with a the '+' icon to the end of the card list.
944
+ * <aup-card-stack [addCardCommand]="addCard">
945
+ * <my-card *ngFor="..."></my-card>
946
+ * </aup-card-stack>
947
+ *
948
+ * // adds an add button with the specified face
949
+ * <aup-card-stack [addCardCommand]="addCard" [addCardFace]="i18n.addCard" >
950
+ * <my-card *ngFor="..."></my-card>
951
+ * </aup-card-stack>
952
+ *
953
+ * // use the aup-add-card-activity to display as the new card place holder and to run
954
+ * // the activity inside teh card
955
+ * <aup-card-stack [addCardCommand]="addCard" [addCardFace]="i18n.addCard" >
956
+ * <my-card *ngFor="..."></my-card>
957
+ * <aup-add-card-activity type="inline" renderAs="card" [face]="i18n.commands.addModal" [activityClass]="AddCardActivity"></aup-add-card-activity>
958
+ * </aup-card-stack>
959
+ *
960
+ * // adds an add card component using the specified template. The template
961
+ * // will fill it's container in the grid.
962
+ * <aup-card-stack>
963
+ * <my-card *ngFor="..."></my-card>
964
+ * <ng-template #addCardTemplate>
965
+ * <div>This is a new card template, it will the the size of the other cards.</div>
966
+ * </ng-template>
967
+ * </aup-card-stack>
968
+ *
969
+ * // sing the default new card styles for your template
970
+ * @import "../../../../assets/styles";
971
+ * .my-new-card {
972
+ * @include aup-card-stack-new-card-style();
973
+ * // OR
974
+ * @include aup-card-stack-new-card-style(
975
+ * $color: rgba(0,0,0,0.54),
976
+ * $background-color: rgba(255,255,255,0.8),
977
+ * $hover-color: $color,
978
+ * $background-hover-color: white
979
+ * )
980
+ * }
981
+ * <aup-card-stack>
982
+ * <my-card *ngFor="..."></my-card>
983
+ * <ng-template #addCardTemplate>
984
+ * <div class="my-new-card" >This is a new card template, it will the the size of the other cards.</div>
985
+ * </ng-template>
986
+ * </aup-card-stack>
987
+ *
988
+ * // CSS Vars
989
+ * aup-card-stack {
990
+ * --card-gap: var(--card-gap, 16px);
991
+ * --card-height: var(--card-height, auto);
992
+ * --card-min-height: var(--card-min-height, auto);
993
+ * --card-background: var(--card-background, #fcfcfb);
994
+ * }
995
+ */
996
+ var CardStackComponent = /** @class */ (function (_super) {
997
+ __extends(CardStackComponent, _super);
998
+ function CardStackComponent() {
999
+ var _this = _super.call(this) || this;
1000
+ console.warn('<aup-card-stack></aup-card-stack> is deprecated. Use <aup-card-container [columnCount]="1"> instead.');
1001
+ return _this;
1002
+ }
1003
+ return CardStackComponent;
1004
+ }(AbstractCardContainerComponent));
1005
+ CardStackComponent.decorators = [
1006
+ { type: i0.Component, args: [{
1007
+ selector: 'aup-card-stack',
1008
+ 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",
1009
+ 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"]
1010
+ },] }
1011
+ ];
1012
+ CardStackComponent.ctorParameters = function () { return []; };
851
1013
 
852
1014
  exports.CommandFace = void 0;
853
1015
  (function (CommandFace) {
@@ -862,27 +1024,27 @@
862
1024
  RAISED: 'raised'
863
1025
  });
864
1026
  function getColorOf(face) {
865
- return ___default['default'].isFunction(face === null || face === void 0 ? void 0 : face.color) ? face.color() : undefined;
1027
+ return ___default["default"].isFunction(face === null || face === void 0 ? void 0 : face.color) ? face.color() : undefined;
866
1028
  }
867
1029
  CommandFace.getColorOf = getColorOf;
868
1030
  function getStyleOf(face) {
869
- return ___default['default'].isFunction(face === null || face === void 0 ? void 0 : face.style) ? face.style() : undefined;
1031
+ return ___default["default"].isFunction(face === null || face === void 0 ? void 0 : face.style) ? face.style() : undefined;
870
1032
  }
871
1033
  CommandFace.getStyleOf = getStyleOf;
872
1034
  function getIconOf(face) {
873
- return ___default['default'].isFunction(face === null || face === void 0 ? void 0 : face.icon) ? face.icon() : undefined;
1035
+ return ___default["default"].isFunction(face === null || face === void 0 ? void 0 : face.icon) ? face.icon() : undefined;
874
1036
  }
875
1037
  CommandFace.getIconOf = getIconOf;
876
1038
  function getIconPositionOf(face) {
877
- return ___default['default'].isFunction(face === null || face === void 0 ? void 0 : face.iconPosition) ? face.iconPosition() : undefined;
1039
+ return ___default["default"].isFunction(face === null || face === void 0 ? void 0 : face.iconPosition) ? face.iconPosition() : undefined;
878
1040
  }
879
1041
  CommandFace.getIconPositionOf = getIconPositionOf;
880
1042
  function getTooltipOf(face) {
881
- return ___default['default'].isFunction(face === null || face === void 0 ? void 0 : face.tooltip) ? face.tooltip() : undefined;
1043
+ return ___default["default"].isFunction(face === null || face === void 0 ? void 0 : face.tooltip) ? face.tooltip() : undefined;
882
1044
  }
883
1045
  CommandFace.getTooltipOf = getTooltipOf;
884
1046
  function getTextOf(face) {
885
- return ___default['default'].isFunction(face === null || face === void 0 ? void 0 : face.text) ? face.text() : undefined;
1047
+ return ___default["default"].isFunction(face === null || face === void 0 ? void 0 : face.text) ? face.text() : undefined;
886
1048
  }
887
1049
  CommandFace.getTextOf = getTextOf;
888
1050
  var Adapter = /** @class */ (function () {
@@ -1047,7 +1209,7 @@
1047
1209
  selector: 'aup-command-face',
1048
1210
  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",
1049
1211
  encapsulation: i0.ViewEncapsulation.None,
1050
- 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}"]
1212
+ 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"]
1051
1213
  },] }
1052
1214
  ];
1053
1215
  CommandFaceComponent.ctorParameters = function () { return []; };
@@ -1125,7 +1287,7 @@
1125
1287
  _this.colorModel = chain(_this.activeFace).map(function (f) { return exports.CommandFace.getColorOf(f); });
1126
1288
  _this.tooltipModel = chain(_this.activeFace).map(function (f) { return exports.CommandFace.getTooltipOf(f); });
1127
1289
  _this.iconOnly = _this.faces.select(function (face) {
1128
- return ___default['default'].isEmpty(exports.CommandFace.getTextOf(face)) && !___default['default'].isEmpty(exports.CommandFace.getIconOf(face));
1290
+ return ___default["default"].isEmpty(exports.CommandFace.getTextOf(face)) && !___default["default"].isEmpty(exports.CommandFace.getIconOf(face));
1129
1291
  }).count().equals(_this.faces.count());
1130
1292
  return _this;
1131
1293
  }
@@ -1146,7 +1308,7 @@
1146
1308
  { type: i0.Component, args: [{
1147
1309
  selector: 'aup-command',
1148
1310
  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",
1149
- 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}"]
1311
+ 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"]
1150
1312
  },] }
1151
1313
  ];
1152
1314
  CommandComponent.ctorParameters = function () { return [
@@ -1335,10 +1497,22 @@
1335
1497
  exports.TrackBy = void 0;
1336
1498
  (function (TrackBy) {
1337
1499
  TrackBy.byIndex = function (index, item) { return index; };
1500
+ /**
1501
+ * @deprecated use #track(MyType).by("property") instead.
1502
+ * @param property
1503
+ */
1338
1504
  function trackByProperty(property) {
1339
1505
  return function (index, item) { return item[property]; };
1340
1506
  }
1341
1507
  TrackBy.trackByProperty = trackByProperty;
1508
+ function track(type) {
1509
+ return {
1510
+ by: function (property) {
1511
+ return function (index, item) { return item[property]; };
1512
+ }
1513
+ };
1514
+ }
1515
+ TrackBy.track = track;
1342
1516
  })(exports.TrackBy || (exports.TrackBy = {}));
1343
1517
 
1344
1518
  exports.CommandContainer = /** @class */ (function (_super) {
@@ -1403,7 +1577,7 @@
1403
1577
  selector: 'aup-tool-bar',
1404
1578
  template: '<div class="toolbar-content"><ng-content></ng-content></div>',
1405
1579
  encapsulation: i0.ViewEncapsulation.None,
1406
- 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}"]
1580
+ 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"]
1407
1581
  },] }
1408
1582
  ];
1409
1583
  ToolBarComponent.ctorParameters = function () { return []; };
@@ -1429,8 +1603,7 @@
1429
1603
  { type: i0.Component, args: [{
1430
1604
  selector: 'aup-separator',
1431
1605
  template: "\n <mat-divider [vertical]=\"!isHorizontalContainer()\"></mat-divider>",
1432
- styles: [":host {\n }",
1433
- ":host(.horizontal-container) {\n display: inline-flex;\n flex-direction: row;\n align-items: stretch;\n }"]
1606
+ styles: [":host {\n }", ":host(.horizontal-container) {\n display: inline-flex;\n flex-direction: row;\n align-items: stretch;\n }"]
1434
1607
  },] }
1435
1608
  ];
1436
1609
  SeparatorComponent.ctorParameters = function () { return [
@@ -1587,7 +1760,7 @@
1587
1760
  { type: i0.Component, args: [{
1588
1761
  selector: 'aup-empty-state',
1589
1762
  template: "\n <div class=\"container\">\n <ng-content></ng-content>\n </div>\n ",
1590
- 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}"]
1763
+ 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"]
1591
1764
  },] }
1592
1765
  ];
1593
1766
  EmptyStateComponent.ctorParameters = function () { return []; };
@@ -1618,7 +1791,7 @@
1618
1791
  providers: [
1619
1792
  { provide: pectin.FocusManager }
1620
1793
  ],
1621
- styles: [":host{display:block}"]
1794
+ styles: [":host{display:block}\n"]
1622
1795
  },] }
1623
1796
  ];
1624
1797
  FocusContainerComponent.ctorParameters = function () { return [
@@ -1685,6 +1858,7 @@
1685
1858
  function AbstractInputComponent() {
1686
1859
  var _this = _super.call(this) || this;
1687
1860
  _this.onValueEditedListeners = new pectin.EventListenerList();
1861
+ _this.userFloatLabel = 'always'; // TODO: make this an injectable default
1688
1862
  _this.dense = false;
1689
1863
  // TODO: fix this.
1690
1864
  // tslint:disable-next-line:no-output-native
@@ -1966,10 +2140,10 @@
1966
2140
  _this.optionLabelFormat = function (option) { return (option && _this.optionLabel) ? option[_this.optionLabel] : option; };
1967
2141
  var _a = pectin.Dsl.disposeWith(_this), chain = _a.chain, valueOf = _a.valueOf, before = _a.before, when = _a.when, after = _a.after, observe = _a.observe, switchOn = _a.switchOn;
1968
2142
  var lowerCaseFilterValue = chain(_this.filterValue)
1969
- .map(function (v) { return ___default['default'].isString(v) ? v.toLowerCase() : ''; });
2143
+ .map(function (v) { return ___default["default"].isString(v) ? v.toLowerCase() : ''; });
1970
2144
  _this.filteredOptions = chain(_this.optionsModel)
1971
2145
  .select(function (option) {
1972
- return ___default['default'].isEmpty(_this.filterValue.value) || _this.optionLabelFormat(option).toString().toLowerCase().includes(lowerCaseFilterValue.value);
2146
+ return ___default["default"].isEmpty(_this.filterValue.value) || _this.optionLabelFormat(option).toString().toLowerCase().includes(lowerCaseFilterValue.value);
1973
2147
  }, { dependsOn: lowerCaseFilterValue });
1974
2148
  return _this;
1975
2149
  }
@@ -1990,7 +2164,7 @@
1990
2164
  { type: i0.Component, args: [{
1991
2165
  selector: 'aup-autocomplete-input',
1992
2166
  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",
1993
- styles: [":host{display:inline-block}mat-form-field{width:100%}"]
2167
+ styles: [":host{display:inline-block}mat-form-field{width:100%}\n"]
1994
2168
  },] }
1995
2169
  ];
1996
2170
  AutocompleteInputComponent.ctorParameters = function () { return []; };
@@ -2029,7 +2203,7 @@
2029
2203
  { type: i0.Component, args: [{
2030
2204
  selector: 'aup-checkbox-input',
2031
2205
  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",
2032
- 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}"]
2206
+ 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"]
2033
2207
  },] }
2034
2208
  ];
2035
2209
  CheckboxInputComponent.ctorParameters = function () { return []; };
@@ -2060,7 +2234,7 @@
2060
2234
  { type: i0.Component, args: [{
2061
2235
  selector: 'aup-multiple-select-input',
2062
2236
  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",
2063
- styles: [":host{display:inline-block}mat-form-field{width:100%}"]
2237
+ styles: [":host{display:inline-block}mat-form-field{width:100%}\n"]
2064
2238
  },] }
2065
2239
  ];
2066
2240
  MultipleSelectInputComponent.ctorParameters = function () { return []; };
@@ -2150,7 +2324,7 @@
2150
2324
  { type: i0.Component, args: [{
2151
2325
  selector: 'aup-select-input',
2152
2326
  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",
2153
- styles: [":host{display:inline-block}mat-form-field{width:100%}"]
2327
+ styles: [":host{display:inline-block}mat-form-field{width:100%}\n"]
2154
2328
  },] }
2155
2329
  ];
2156
2330
  SelectInputComponent.ctorParameters = function () { return []; };
@@ -2191,7 +2365,7 @@
2191
2365
  { type: i0.Component, args: [{
2192
2366
  selector: 'aup-string-input',
2193
2367
  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",
2194
- styles: ["button[disabled]{visibility:hidden}"]
2368
+ styles: ["button[disabled]{visibility:hidden}\n"]
2195
2369
  },] }
2196
2370
  ];
2197
2371
  StringInputComponent.ctorParameters = function () { return []; };
@@ -2228,7 +2402,7 @@
2228
2402
  { type: i0.Component, args: [{
2229
2403
  selector: 'aup-text-input',
2230
2404
  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",
2231
- styles: ["button[disabled]{visibility:hidden}textarea{overflow:auto}"]
2405
+ styles: ["button[disabled]{visibility:hidden}textarea{overflow:auto}\n"]
2232
2406
  },] }
2233
2407
  ];
2234
2408
  TextInputComponent.ctorParameters = function () { return []; };
@@ -2272,7 +2446,7 @@
2272
2446
  { type: i0.Component, args: [{
2273
2447
  selector: 'aup-icon',
2274
2448
  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",
2275
- 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}"]
2449
+ 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"]
2276
2450
  },] }
2277
2451
  ];
2278
2452
  exports.IconComponent.propDecorators = {
@@ -2286,6 +2460,54 @@
2286
2460
  });
2287
2461
  })(exports.IconComponent || (exports.IconComponent = {}));
2288
2462
 
2463
+ var LoadingContainerComponent = /** @class */ (function (_super) {
2464
+ __extends(LoadingContainerComponent, _super);
2465
+ function LoadingContainerComponent() {
2466
+ return _super.call(this) || this;
2467
+ }
2468
+ Object.defineProperty(LoadingContainerComponent.prototype, "state", {
2469
+ get: function () {
2470
+ return this.loadingModel.value ? "loaded" : "loading";
2471
+ },
2472
+ enumerable: false,
2473
+ configurable: true
2474
+ });
2475
+ LoadingContainerComponent.prototype.ngOnInit = function () {
2476
+ };
2477
+ return LoadingContainerComponent;
2478
+ }(pectin.GarbageCollector));
2479
+ LoadingContainerComponent.decorators = [
2480
+ { type: i0.Component, args: [{
2481
+ selector: 'aup-loading-container',
2482
+ 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",
2483
+ 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"]
2484
+ },] }
2485
+ ];
2486
+ LoadingContainerComponent.ctorParameters = function () { return []; };
2487
+ LoadingContainerComponent.propDecorators = {
2488
+ loadingModel: [{ type: i0.Input }],
2489
+ loading: [{ type: i0.Input }],
2490
+ messageModel: [{ type: i0.Input }],
2491
+ message: [{ type: i0.Input }],
2492
+ state: [{ type: i0.HostBinding, args: ["class",] }]
2493
+ };
2494
+ __decorate([
2495
+ pectin.TrackExternal(),
2496
+ __metadata("design:type", pectin.ValueModel)
2497
+ ], LoadingContainerComponent.prototype, "loadingModel", void 0);
2498
+ __decorate([
2499
+ pectin.StoreInValueModel("loadingModel"),
2500
+ __metadata("design:type", Boolean)
2501
+ ], LoadingContainerComponent.prototype, "loading", void 0);
2502
+ __decorate([
2503
+ pectin.TrackExternal(),
2504
+ __metadata("design:type", pectin.ValueModel)
2505
+ ], LoadingContainerComponent.prototype, "messageModel", void 0);
2506
+ __decorate([
2507
+ pectin.StoreInValueModel("messageModel"),
2508
+ __metadata("design:type", String)
2509
+ ], LoadingContainerComponent.prototype, "message", void 0);
2510
+
2289
2511
  var NoopComponent = /** @class */ (function () {
2290
2512
  function NoopComponent() {
2291
2513
  }
@@ -2295,7 +2517,7 @@
2295
2517
  { type: i0.Component, args: [{
2296
2518
  selector: 'aup-noop',
2297
2519
  template: "",
2298
- styles: [":host{display:block}"]
2520
+ styles: [":host{display:block}\n"]
2299
2521
  },] }
2300
2522
  ];
2301
2523
  NoopComponent.ctorParameters = function () { return []; };
@@ -2311,29 +2533,37 @@
2311
2533
  { type: i0.Component, args: [{
2312
2534
  selector: 'aup-scroll-container',
2313
2535
  template: "<div class=\"container\" cdkScrollable>\n <ng-content></ng-content>\n</div>\n",
2314
- 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}"]
2536
+ 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"]
2315
2537
  },] }
2316
2538
  ];
2317
2539
  ScrollContainerComponent.ctorParameters = function () { return []; };
2318
2540
 
2319
- var SectionHeaderComponent = /** @class */ (function () {
2541
+ var SectionHeaderComponent = /** @class */ (function (_super) {
2542
+ __extends(SectionHeaderComponent, _super);
2320
2543
  function SectionHeaderComponent() {
2321
- this.underline = false;
2544
+ var _this = _super.call(this) || this;
2545
+ // readonly i18n = I18nMarsUi.components.layout.header;
2546
+ _this.size = 'medium';
2547
+ _this.borderTop = false;
2548
+ _this.borderBottom = false;
2549
+ return _this;
2322
2550
  }
2323
2551
  SectionHeaderComponent.prototype.ngOnInit = function () {
2324
2552
  };
2325
2553
  return SectionHeaderComponent;
2326
- }());
2554
+ }(DisposableComponent));
2327
2555
  SectionHeaderComponent.decorators = [
2328
2556
  { type: i0.Component, args: [{
2329
2557
  selector: 'aup-section-header',
2330
- template: "<ng-content></ng-content>\n",
2331
- 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)}"]
2558
+ 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",
2559
+ 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"]
2332
2560
  },] }
2333
2561
  ];
2334
2562
  SectionHeaderComponent.ctorParameters = function () { return []; };
2335
2563
  SectionHeaderComponent.propDecorators = {
2336
- underline: [{ type: i0.Input }, { type: i0.HostBinding, args: ['class.underline',] }]
2564
+ size: [{ type: i0.Input }, { type: i0.HostBinding, args: ['class',] }],
2565
+ borderTop: [{ type: i0.Input }, { type: i0.HostBinding, args: ['class.border-top',] }],
2566
+ borderBottom: [{ type: i0.Input }, { type: i0.HostBinding, args: ['class.border-bottom',] }]
2337
2567
  };
2338
2568
 
2339
2569
  var SwitchCaseOption = /** @class */ (function () {
@@ -2454,7 +2684,7 @@
2454
2684
  { type: i0.Component, args: [{
2455
2685
  selector: 'aup-switch-case',
2456
2686
  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",
2457
- styles: [":host{display:flex;flex-direction:column;align-items:stretch}mat-tab-group{flex:1}"]
2687
+ styles: [":host{display:flex;flex-direction:column;align-items:stretch}mat-tab-group{flex:1}\n"]
2458
2688
  },] }
2459
2689
  ];
2460
2690
  SwitchCaseComponent.ctorParameters = function () { return [
@@ -2536,7 +2766,7 @@
2536
2766
  ResizeAwareComponent.prototype.ngAfterViewInit = function () {
2537
2767
  var _this = this;
2538
2768
  var element = this.elementRef.nativeElement;
2539
- var ro = new ResizeObserver__default['default'](function (entries, observer) {
2769
+ var ro = new ResizeObserver__default["default"](function (entries, observer) {
2540
2770
  _this.ngZone.run(function () { return _this._updateBounds(); });
2541
2771
  });
2542
2772
  ro.observe(element);
@@ -2766,7 +2996,7 @@
2766
2996
  { type: i0.Component, args: [{
2767
2997
  selector: 'aup-row-editor-controls',
2768
2998
  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",
2769
- styles: [":host{display:block;width:80px}.edit-button{visibility:hidden}:host-context(tr:hover) .edit-button{visibility:visible}"]
2999
+ styles: [":host{display:block;width:80px}.edit-button{visibility:hidden}:host-context(tr:hover) .edit-button{visibility:visible}\n"]
2770
3000
  },] }
2771
3001
  ];
2772
3002
  EditRowControls.ctorParameters = function () { return []; };
@@ -2976,17 +3206,17 @@
2976
3206
  var _this = this;
2977
3207
  this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, function (component, rowData, firstTime) {
2978
3208
  if (firstTime) {
2979
- if (___default['default'].isFunction(onComponentInitOrOptions)) {
3209
+ if (___default["default"].isFunction(onComponentInitOrOptions)) {
2980
3210
  onComponentInitOrOptions(component);
2981
3211
  }
2982
3212
  else {
2983
- if (___default['default'].isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onComponentInit)) {
3213
+ if (___default["default"].isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onComponentInit)) {
2984
3214
  onComponentInitOrOptions.onComponentInit(component);
2985
3215
  }
2986
3216
  }
2987
3217
  }
2988
3218
  component.value = _this._format(rowData.row[_this.property]);
2989
- if (!___default['default'].isFunction(onComponentInitOrOptions) && ___default['default'].isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onRowUpdate)) {
3219
+ if (!___default["default"].isFunction(onComponentInitOrOptions) && ___default["default"].isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onRowUpdate)) {
2990
3220
  onComponentInitOrOptions.onRowUpdate(component, rowData.row);
2991
3221
  }
2992
3222
  }));
@@ -3008,7 +3238,7 @@
3008
3238
  component[CELL_RENDERER_COMPONENT_ROW_CACHE] = rowData.row;
3009
3239
  var disableEditCallback = false;
3010
3240
  if (firstTime) {
3011
- if (___default['default'].isFunction(options === null || options === void 0 ? void 0 : options.onComponentInit)) {
3241
+ if (___default["default"].isFunction(options === null || options === void 0 ? void 0 : options.onComponentInit)) {
3012
3242
  options.onComponentInit(component);
3013
3243
  }
3014
3244
  // install our edit callback
@@ -3023,7 +3253,7 @@
3023
3253
  disableEditCallback = true;
3024
3254
  component.value = rowData.row[_this.property];
3025
3255
  disableEditCallback = false;
3026
- if (!___default['default'].isFunction(options) && ___default['default'].isFunction(options === null || options === void 0 ? void 0 : options.onRowUpdate)) {
3256
+ if (!___default["default"].isFunction(options) && ___default["default"].isFunction(options === null || options === void 0 ? void 0 : options.onRowUpdate)) {
3027
3257
  options.onRowUpdate(component, rowData.row);
3028
3258
  }
3029
3259
  }));
@@ -3032,7 +3262,7 @@
3032
3262
  PropertyColumnModel.prototype.cellEditor = function (editor, validatorsOrInitialiser, onComponentInit) {
3033
3263
  var _this = this;
3034
3264
  var validators = Array.isArray(validatorsOrInitialiser) ? validatorsOrInitialiser : undefined;
3035
- var initialiser = ___default['default'].isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : onComponentInit;
3265
+ var initialiser = ___default["default"].isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : onComponentInit;
3036
3266
  this.configureCellEditor(new CellEditorPortalRef(editor, function (component, editSession) {
3037
3267
  var formValueModel = editSession.form.pluck(_this.property);
3038
3268
  if (validators) {
@@ -3074,7 +3304,7 @@
3074
3304
  ListPropertyColumnModel.prototype.cellEditor = function (editor, validatorsOrInitialiser, initialiseComponent) {
3075
3305
  var _this = this;
3076
3306
  var validators = Array.isArray(validatorsOrInitialiser) ? validatorsOrInitialiser : undefined;
3077
- var initialiser = ___default['default'].isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : initialiseComponent;
3307
+ var initialiser = ___default["default"].isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : initialiseComponent;
3078
3308
  this.configureCellEditor(new CellEditorPortalRef(editor, function (component, editSession) {
3079
3309
  var formListModel = editSession.form.pluckList(_this.property);
3080
3310
  if (validators) {
@@ -3109,17 +3339,17 @@
3109
3339
  var _this = this;
3110
3340
  this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, function (component, rowData, firstTime) {
3111
3341
  if (firstTime) {
3112
- if (___default['default'].isFunction(onComponentInitOrOptions)) {
3342
+ if (___default["default"].isFunction(onComponentInitOrOptions)) {
3113
3343
  onComponentInitOrOptions(component);
3114
3344
  }
3115
3345
  else {
3116
- if (___default['default'].isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onComponentInit)) {
3346
+ if (___default["default"].isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onComponentInit)) {
3117
3347
  onComponentInitOrOptions.onComponentInit(component);
3118
3348
  }
3119
3349
  }
3120
3350
  }
3121
3351
  component.value = _this.getValue(rowData.row);
3122
- if (!___default['default'].isFunction(onComponentInitOrOptions) && ___default['default'].isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onRowUpdate)) {
3352
+ if (!___default["default"].isFunction(onComponentInitOrOptions) && ___default["default"].isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onRowUpdate)) {
3123
3353
  onComponentInitOrOptions.onRowUpdate(component, rowData.row);
3124
3354
  }
3125
3355
  }));
@@ -3497,7 +3727,7 @@
3497
3727
  { type: i0.Component, args: [{
3498
3728
  selector: 'aup-table-header-cell-renderer',
3499
3729
  template: "<ng-container [cdkPortalOutlet]=\"getPortal()\" (attached)=\"initialiseHeader($event.instance)\"></ng-container>\n",
3500
- styles: [":host{display:flex;flex-direction:column;align-items:stretch;justify-content:center;height:100%}"]
3730
+ styles: [":host{display:flex;flex-direction:column;align-items:stretch;justify-content:center;height:100%}\n"]
3501
3731
  },] }
3502
3732
  ];
3503
3733
  TableHeaderCellRendererComponent.ctorParameters = function () { return []; };
@@ -3618,7 +3848,7 @@
3618
3848
  // if (!this._liveRowValue.value[immerable]) {
3619
3849
  // console.warn()
3620
3850
  // }
3621
- _this._liveRowValue.value = produce__default['default'](_this._liveRowValue.value, function (draft) {
3851
+ _this._liveRowValue.value = produce__default["default"](_this._liveRowValue.value, function (draft) {
3622
3852
  _this.form.writeDirtyStateTo(draft);
3623
3853
  });
3624
3854
  });
@@ -3792,12 +4022,16 @@
3792
4022
  return this.isRowSelectionEnabled() && column.isRowSelectionEnabled();
3793
4023
  };
3794
4024
  AbstractTableModel.prototype.isRowSelectionEnabled = function () {
3795
- return this.hasSelectionModel() && !this.rowSelectionDisabledOnAllColumns.value;
4025
+ return this.hasUserSelectionModel() && !this.rowSelectionDisabledOnAllColumns.value;
3796
4026
  };
3797
- AbstractTableModel.prototype.hasSelectionModel = function () {
4027
+ AbstractTableModel.prototype.hasUserSelectionModel = function () {
3798
4028
  var _a;
3799
4029
  return !!((_a = this.selectionColumnModel) === null || _a === void 0 ? void 0 : _a.selectionModel.getDelegate());
3800
4030
  };
4031
+ AbstractTableModel.prototype.getSelectionModel = function () {
4032
+ var _a;
4033
+ return (_a = this.selectionColumnModel) === null || _a === void 0 ? void 0 : _a.selectionModel;
4034
+ };
3801
4035
  AbstractTableModel.prototype.isHoverEnabled = function () {
3802
4036
  return this.isRowSelectionEnabled() || this.rowClickListeners.listenerCount > 0;
3803
4037
  };
@@ -3897,7 +4131,7 @@
3897
4131
  providers: [
3898
4132
  { provide: AbstractTableComponent, useExisting: TableComponent }
3899
4133
  ],
3900
- 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}"]
4134
+ 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"]
3901
4135
  },] }
3902
4136
  ];
3903
4137
  TableComponent.ctorParameters = function () { return [
@@ -3950,7 +4184,7 @@
3950
4184
  { type: i0.Component, args: [{
3951
4185
  selector: 'aup-tree-inheritance-icon',
3952
4186
  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",
3953
- styles: [":host{position:relative;color:inherit}svg{color:var(--line-color);display:block}"]
4187
+ styles: [":host{position:relative;color:inherit}svg{color:var(--line-color);display:block}\n"]
3954
4188
  },] }
3955
4189
  ];
3956
4190
  exports.TreeInheritanceIconComponent.ctorParameters = function () { return []; };
@@ -4226,7 +4460,9 @@
4226
4460
  configurable: true
4227
4461
  });
4228
4462
  // @Trace()
4229
- TreeLabelCellRendererComponent.prototype.expandOrCollapse = function (node) {
4463
+ TreeLabelCellRendererComponent.prototype.expandOrCollapse = function ($event, node) {
4464
+ $event.preventDefault();
4465
+ $event.stopPropagation();
4230
4466
  this.expansionModel.isCollapsed(node) ? this.expansionModel.expand(node) : this.expansionModel.collapse(node);
4231
4467
  };
4232
4468
  return TreeLabelCellRendererComponent;
@@ -4234,8 +4470,8 @@
4234
4470
  exports.TreeLabelCellRendererComponent.decorators = [
4235
4471
  { type: i0.Component, args: [{
4236
4472
  selector: 'aup-tree-label-cell-renderer',
4237
- 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",
4238
- 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}"]
4473
+ 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",
4474
+ 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"]
4239
4475
  },] }
4240
4476
  ];
4241
4477
  exports.TreeLabelCellRendererComponent.ctorParameters = function () { return []; };
@@ -4252,22 +4488,29 @@
4252
4488
  __metadata("design:type", Object)
4253
4489
  ], exports.TreeLabelCellRendererComponent.prototype, "value", void 0);
4254
4490
  (function (TreeLabelCellRendererComponent) {
4255
- TreeLabelCellRendererComponent.DEFAULT_ICON_FACTORY = function (node, expanded, defaultIcon) { return expanded ? 'mat:expand_more' : 'mat:chevron_right'; };
4491
+ TreeLabelCellRendererComponent.DEFAULT_ICON_FACTORY = function (node, expanded, defaultIcon) {
4492
+ var isLeaf = exports.DecoratedTreeNode.getDecorator(node).isLeaf();
4493
+ return isLeaf ?
4494
+ undefined :
4495
+ expanded ?
4496
+ 'mat:expand_more' :
4497
+ 'mat:chevron_right';
4498
+ };
4256
4499
  })(exports.TreeLabelCellRendererComponent || (exports.TreeLabelCellRendererComponent = {}));
4257
4500
 
4258
4501
  var FlattenedTreeListModel = /** @class */ (function (_super) {
4259
4502
  __extends(FlattenedTreeListModel, _super);
4260
4503
  function FlattenedTreeListModel(source, childRef, expansionModel) {
4261
- var _this = _super.call(this, source) || this;
4504
+ var _this = _super.call(this, source, {
4505
+ initialValue: [],
4506
+ identifiedWith: function (row) { return source.identityOf(row); }
4507
+ }) || this;
4262
4508
  _this.source = source;
4263
4509
  _this.childRef = childRef;
4264
4510
  _this.expansionModel = expansionModel;
4265
4511
  _this.trackSource(expansionModel.isExpandedPredicate);
4266
4512
  return _this;
4267
4513
  }
4268
- FlattenedTreeListModel.prototype.getIdentityOf = function (item) {
4269
- return this.source.identityOf(item);
4270
- };
4271
4514
  FlattenedTreeListModel.prototype.compute = function (values) {
4272
4515
  var _this = this;
4273
4516
  var result = [];
@@ -4369,7 +4612,7 @@
4369
4612
  component.expansionModel = _this.expansionModel;
4370
4613
  }
4371
4614
  component.value = rowData.row;
4372
- component.label = ___default['default'].isNil(_this.labelProperty) ? undefined : rowData.row[_this.labelProperty];
4615
+ component.label = ___default["default"].isNil(_this.labelProperty) ? undefined : rowData.row[_this.labelProperty];
4373
4616
  component.iconFactory = _this.iconFactory;
4374
4617
  }));
4375
4618
  return this;
@@ -4400,6 +4643,7 @@
4400
4643
  var childExtractor = ___namespace.isFunction(childAccessor) ? childAccessor : function (row) { return row[childAccessor]; };
4401
4644
  _this.flattenedDataSource = _this.registerDisposable(new FlattenedTreeListModel(source, childExtractor, _this.treeExpansionModel));
4402
4645
  _this.setDataSource(_this.flattenedDataSource);
4646
+ _this.addRowClass('aup-node-collapsed', function (row) { return _this.isCollapsed(row); });
4403
4647
  return _this;
4404
4648
  }
4405
4649
  TreeTableModel.prototype.treeControlColumn = function (builder) {
@@ -4549,7 +4793,7 @@
4549
4793
  providers: [
4550
4794
  { provide: AbstractTableComponent, useExisting: TreeTableComponent }
4551
4795
  ],
4552
- 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}"]
4796
+ 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"]
4553
4797
  },] }
4554
4798
  ];
4555
4799
  TreeTableComponent.ctorParameters = function () { return [
@@ -4606,7 +4850,7 @@
4606
4850
  providers: [
4607
4851
  { provide: pectin.FocusManager }
4608
4852
  ],
4609
- styles: [":host{display:block}"]
4853
+ styles: [":host{display:block}\n"]
4610
4854
  },] }
4611
4855
  ];
4612
4856
  VerticalFocusContainerComponent.ctorParameters = function () { return [
@@ -4670,7 +4914,7 @@
4670
4914
  { type: i0.Component, args: [{
4671
4915
  selector: 'aup-paginator',
4672
4916
  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",
4673
- 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}"]
4917
+ 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"]
4674
4918
  },] }
4675
4919
  ];
4676
4920
  PaginatorComponent.ctorParameters = function () { return []; };
@@ -4682,6 +4926,28 @@
4682
4926
  __metadata("design:type", pectin.PageController)
4683
4927
  ], PaginatorComponent.prototype, "pageController", void 0);
4684
4928
 
4929
+ var LabelledValueComponent = /** @class */ (function (_super) {
4930
+ __extends(LabelledValueComponent, _super);
4931
+ function LabelledValueComponent() {
4932
+ return _super.call(this) || this;
4933
+ // const {chain} = Dsl.disposeWith(this);
4934
+ }
4935
+ LabelledValueComponent.prototype.ngOnInit = function () {
4936
+ };
4937
+ return LabelledValueComponent;
4938
+ }(DisposableComponent));
4939
+ LabelledValueComponent.decorators = [
4940
+ { type: i0.Component, args: [{
4941
+ selector: 'aup-labelled-value',
4942
+ template: "<label>{{label}}</label>\n<ng-content></ng-content>\n",
4943
+ 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"]
4944
+ },] }
4945
+ ];
4946
+ LabelledValueComponent.ctorParameters = function () { return []; };
4947
+ LabelledValueComponent.propDecorators = {
4948
+ label: [{ type: i0.Input }]
4949
+ };
4950
+
4685
4951
  var ComponentsModule = /** @class */ (function () {
4686
4952
  function ComponentsModule(faIconLibrary) {
4687
4953
  faIconLibrary.addIconPacks(freeSolidSvgIcons.fas);
@@ -4690,6 +4956,29 @@
4690
4956
  }());
4691
4957
  ComponentsModule.decorators = [
4692
4958
  { type: i0.NgModule, args: [{
4959
+ imports: [
4960
+ i2.CommonModule,
4961
+ animations.BrowserAnimationsModule,
4962
+ forms.FormsModule,
4963
+ input.MatInputModule,
4964
+ formField.MatFormFieldModule,
4965
+ select.MatSelectModule,
4966
+ tabs.MatTabsModule,
4967
+ DirectivesModule,
4968
+ icon.MatIconModule,
4969
+ button.MatButtonModule,
4970
+ checkbox.MatCheckboxModule,
4971
+ table.MatTableModule,
4972
+ portal.PortalModule,
4973
+ scrolling.CdkScrollableModule,
4974
+ angularFontawesome.FontAwesomeModule,
4975
+ tooltip.MatTooltipModule,
4976
+ autocomplete.MatAutocompleteModule,
4977
+ menu.MatMenuModule,
4978
+ divider.MatDividerModule,
4979
+ progressSpinner.MatProgressSpinnerModule,
4980
+ progressBar.MatProgressBarModule
4981
+ ],
4693
4982
  declarations: [
4694
4983
  AbstractInputComponent,
4695
4984
  AbstractValueInputComponent,
@@ -4738,29 +5027,11 @@
4738
5027
  BusyOverlayComponent,
4739
5028
  EmptyStateComponent,
4740
5029
  PaginatorComponent,
4741
- AbstractTableComponent
4742
- ],
4743
- imports: [
4744
- i2.CommonModule,
4745
- animations.BrowserAnimationsModule,
4746
- forms.FormsModule,
4747
- input.MatInputModule,
4748
- formField.MatFormFieldModule,
4749
- select.MatSelectModule,
4750
- tabs.MatTabsModule,
4751
- DirectivesModule,
4752
- icon.MatIconModule,
4753
- button.MatButtonModule,
4754
- checkbox.MatCheckboxModule,
4755
- table.MatTableModule,
4756
- portal.PortalModule,
4757
- scrolling.CdkScrollableModule,
4758
- angularFontawesome.FontAwesomeModule,
4759
- tooltip.MatTooltipModule,
4760
- autocomplete.MatAutocompleteModule,
4761
- menu.MatMenuModule,
4762
- divider.MatDividerModule,
4763
- progressSpinner.MatProgressSpinnerModule
5030
+ AbstractTableComponent,
5031
+ AbstractCardContainerComponent,
5032
+ CardStackComponent,
5033
+ LabelledValueComponent,
5034
+ LoadingContainerComponent
4764
5035
  ],
4765
5036
  exports: [
4766
5037
  NumberInputComponent,
@@ -4797,6 +5068,9 @@
4797
5068
  BusyOverlayComponent,
4798
5069
  EmptyStateComponent,
4799
5070
  PaginatorComponent,
5071
+ CardStackComponent,
5072
+ LabelledValueComponent,
5073
+ LoadingContainerComponent,
4800
5074
  ],
4801
5075
  providers: [
4802
5076
  FocusBindingFactory
@@ -4828,12 +5102,13 @@
4828
5102
  * <span>This content will be between the two commands</span>
4829
5103
  * </aup-activity-actions>
4830
5104
  */
4831
- var ActivityActionsComponent = /** @class */ (function (_super) {
5105
+ exports.ActivityActionsComponent = /** @class */ (function (_super) {
4832
5106
  __extends(ActivityActionsComponent, _super);
4833
5107
  function ActivityActionsComponent(cdr) {
4834
5108
  var _this = _super.call(this) || this;
4835
5109
  _this.cdr = cdr;
4836
- _this.align = 'stretch';
5110
+ _this.layout = ActivityActionsComponent.Layout.BLOCK;
5111
+ _this.align = ActivityActionsComponent.Align.STRETCH;
4837
5112
  return _this;
4838
5113
  }
4839
5114
  Object.defineProperty(ActivityActionsComponent.prototype, "faces", {
@@ -4854,20 +5129,6 @@
4854
5129
  enumerable: false,
4855
5130
  configurable: true
4856
5131
  });
4857
- Object.defineProperty(ActivityActionsComponent.prototype, "alignEnd", {
4858
- get: function () {
4859
- return this.align === 'end';
4860
- },
4861
- enumerable: false,
4862
- configurable: true
4863
- });
4864
- Object.defineProperty(ActivityActionsComponent.prototype, "alignStretch", {
4865
- get: function () {
4866
- return this.align === 'stretch';
4867
- },
4868
- enumerable: false,
4869
- configurable: true
4870
- });
4871
5132
  ActivityActionsComponent.prototype.ngOnInit = function () {
4872
5133
  };
4873
5134
  ActivityActionsComponent.prototype.hasConfirmFace = function () {
@@ -4883,35 +5144,45 @@
4883
5144
  };
4884
5145
  return ActivityActionsComponent;
4885
5146
  }(DisposableComponent));
4886
- ActivityActionsComponent.decorators = [
5147
+ exports.ActivityActionsComponent.decorators = [
4887
5148
  { type: i0.Component, args: [{
4888
5149
  selector: 'aup-activity-actions',
4889
5150
  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",
4890
- 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}"]
5151
+ 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"]
4891
5152
  },] }
4892
5153
  ];
4893
- ActivityActionsComponent.ctorParameters = function () { return [
5154
+ exports.ActivityActionsComponent.ctorParameters = function () { return [
4894
5155
  { type: i0.ChangeDetectorRef }
4895
5156
  ]; };
4896
- ActivityActionsComponent.propDecorators = {
5157
+ exports.ActivityActionsComponent.propDecorators = {
4897
5158
  confirmCommand: [{ type: i0.Input }],
4898
5159
  cancelCommand: [{ type: i0.Input }],
4899
5160
  faces: [{ type: i0.Input }],
4900
5161
  confirmFace: [{ type: i0.Input }],
4901
5162
  cancelFace: [{ type: i0.Input }],
4902
5163
  style: [{ type: i0.Input }],
4903
- align: [{ type: i0.Input }],
4904
- alignEnd: [{ type: i0.HostBinding, args: ['class.align-end',] }],
4905
- alignStretch: [{ type: i0.HostBinding, args: ['class.align-stretch',] }]
5164
+ layout: [{ type: i0.Input }, { type: i0.HostBinding, args: ['attr.layout',] }],
5165
+ align: [{ type: i0.Input }, { type: i0.HostBinding, args: ['attr.align',] }]
4906
5166
  };
4907
5167
  __decorate([
4908
5168
  pectin.TrackExternal(),
4909
5169
  __metadata("design:type", pectin.Command)
4910
- ], ActivityActionsComponent.prototype, "confirmCommand", void 0);
5170
+ ], exports.ActivityActionsComponent.prototype, "confirmCommand", void 0);
4911
5171
  __decorate([
4912
5172
  pectin.TrackExternal(),
4913
5173
  __metadata("design:type", pectin.Command)
4914
- ], ActivityActionsComponent.prototype, "cancelCommand", void 0);
5174
+ ], exports.ActivityActionsComponent.prototype, "cancelCommand", void 0);
5175
+ (function (ActivityActionsComponent) {
5176
+ ActivityActionsComponent.Layout = typescriptStringEnums.Enum({
5177
+ INLINE: 'inline',
5178
+ BLOCK: 'block'
5179
+ });
5180
+ ActivityActionsComponent.Align = typescriptStringEnums.Enum({
5181
+ START: 'start',
5182
+ END: 'end',
5183
+ STRETCH: 'stretch'
5184
+ });
5185
+ })(exports.ActivityActionsComponent || (exports.ActivityActionsComponent = {}));
4915
5186
 
4916
5187
  var ACTIVITY_DATA = new i0.InjectionToken('InteractionActivityData');
4917
5188
  var Activity = /** @class */ (function (_super) {
@@ -4994,7 +5265,7 @@
4994
5265
  ];
4995
5266
  Activity.ctorParameters = function () { return []; };
4996
5267
  Activity.propDecorators = {
4997
- activityActions: [{ type: i0.ViewChild, args: [ActivityActionsComponent,] }],
5268
+ activityActions: [{ type: i0.ViewChild, args: [exports.ActivityActionsComponent,] }],
4998
5269
  class: [{ type: i0.HostBinding, args: ['class',] }],
4999
5270
  isFocused: [{ type: i0.HostBinding, args: ['attr.focused',] }]
5000
5271
  };
@@ -5030,7 +5301,7 @@
5030
5301
  { type: i0.Component, args: [{
5031
5302
  selector: 'aup-alert-dialog',
5032
5303
  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",
5033
- 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}"]
5304
+ 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"]
5034
5305
  },] }
5035
5306
  ];
5036
5307
  AlertDialogComponent.ctorParameters = function () { return [
@@ -5086,7 +5357,7 @@
5086
5357
  { type: i0.Component, args: [{
5087
5358
  selector: 'aup-confirmation-dialog',
5088
5359
  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",
5089
- 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}"]
5360
+ 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"]
5090
5361
  },] }
5091
5362
  ];
5092
5363
  ConfirmThenDialogComponent.ctorParameters = function () { return [
@@ -5133,7 +5404,7 @@
5133
5404
  { type: i0.Component, args: [{
5134
5405
  selector: 'aup-confirmation-dialog',
5135
5406
  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",
5136
- 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}"]
5407
+ 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"]
5137
5408
  },] }
5138
5409
  ];
5139
5410
  ConfirmationDialogComponent.ctorParameters = function () { return [
@@ -5304,7 +5575,7 @@
5304
5575
  { type: i0.Component, args: [{
5305
5576
  selector: 'aup-activity-outlet',
5306
5577
  template: '',
5307
- styles: [":host{display:block}"]
5578
+ styles: [":host{display:block}\n"]
5308
5579
  },] }
5309
5580
  ];
5310
5581
  ActivityOutletComponent.ctorParameters = function () { return [
@@ -5375,7 +5646,7 @@
5375
5646
  if (!this.isActive()) {
5376
5647
  typescriptUtilities.lang.illegalState('no activity in progress');
5377
5648
  }
5378
- return ___default['default'].findLast(this.activityRefs, function (tab) { return !tab.isComplete(); });
5649
+ return ___default["default"].findLast(this.activityRefs, function (tab) { return !tab.isComplete(); });
5379
5650
  };
5380
5651
  /**
5381
5652
  * Cancels the current activity and returns true the context is no longer active, false if
@@ -5518,8 +5789,8 @@
5518
5789
  ActivityContainerComponent.decorators = [
5519
5790
  { type: i0.Component, args: [{
5520
5791
  selector: 'aup-activity-container',
5521
- 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",
5522
- styles: [":host{display:flex;flex-direction:column}aup-busy-overlay,mat-tab-group{flex:1}"]
5792
+ 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",
5793
+ styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}aup-busy-overlay{flex:1}\n"]
5523
5794
  },] }
5524
5795
  ];
5525
5796
  ActivityContainerComponent.ctorParameters = function () { return []; };
@@ -5558,7 +5829,7 @@
5558
5829
  }
5559
5830
  Object.defineProperty(ActivityTitleComponent.prototype, "hasTransparentBackground", {
5560
5831
  get: function () {
5561
- return ___default['default'].isNil(this._hasUserTransparentBackground) ? !this._color : this._hasUserTransparentBackground;
5832
+ return ___default["default"].isNil(this._hasUserTransparentBackground) ? !this._color : this._hasUserTransparentBackground;
5562
5833
  },
5563
5834
  /**
5564
5835
  * Adjusts layout to ensure the title and body are cleanly separated with even
@@ -5588,7 +5859,7 @@
5588
5859
  { type: i0.Component, args: [{
5589
5860
  selector: 'aup-activity-title',
5590
5861
  template: "<ng-content></ng-content>\n",
5591
- styles: [":host{display:block}"]
5862
+ styles: [":host{display:block}\n"]
5592
5863
  },] }
5593
5864
  ];
5594
5865
  ActivityTitleComponent.propDecorators = {
@@ -5615,6 +5886,13 @@
5615
5886
  });
5616
5887
  return _this;
5617
5888
  }
5889
+ Object.defineProperty(AbstractActivityTriggerComponent.prototype, "interactionContext", {
5890
+ get: function () {
5891
+ return typescriptUtilities.lang.abstractMethod(this.constructor);
5892
+ },
5893
+ enumerable: false,
5894
+ configurable: true
5895
+ });
5618
5896
  AbstractActivityTriggerComponent.prototype.ngOnInit = function () {
5619
5897
  };
5620
5898
  Object.defineProperty(AbstractActivityTriggerComponent.prototype, "isActive", {
@@ -5856,16 +6134,23 @@
5856
6134
  __extends(ModalActivityTriggerComponent, _super);
5857
6135
  function ModalActivityTriggerComponent(interactionService) {
5858
6136
  var _this = _super.call(this) || this;
5859
- _this.interactionContext = interactionService.createModalInteractionContextDisposedWith(_this);
6137
+ _this._interactionContext = interactionService.createModalInteractionContextDisposedWith(_this);
5860
6138
  return _this;
5861
6139
  }
6140
+ Object.defineProperty(ModalActivityTriggerComponent.prototype, "interactionContext", {
6141
+ get: function () {
6142
+ return this._interactionContext;
6143
+ },
6144
+ enumerable: false,
6145
+ configurable: true
6146
+ });
5862
6147
  return ModalActivityTriggerComponent;
5863
6148
  }(AbstractActivityTriggerComponent));
5864
6149
  ModalActivityTriggerComponent.decorators = [
5865
6150
  { type: i0.Component, args: [{
5866
6151
  selector: 'aup-modal-activity-trigger',
5867
6152
  template: "<aup-command [command]=\"startActivityCommand\" [faceModel]=\"faceModel\" [alignFace]=\"alignFace\"></aup-command>\n",
5868
- styles: [":host{display:inline-block}"]
6153
+ styles: [":host{display:inline-block}\n"]
5869
6154
  },] }
5870
6155
  ];
5871
6156
  ModalActivityTriggerComponent.ctorParameters = function () { return [
@@ -5904,6 +6189,13 @@
5904
6189
  enumerable: false,
5905
6190
  configurable: true
5906
6191
  });
6192
+ Object.defineProperty(InPlaceInteractionContextComponent.prototype, "active", {
6193
+ get: function () {
6194
+ return this.isActive();
6195
+ },
6196
+ enumerable: false,
6197
+ configurable: true
6198
+ });
5907
6199
  InPlaceInteractionContextComponent.prototype.ngAfterViewInit = function () {
5908
6200
  this.interactionService.registerInplaceInteractionContext(this);
5909
6201
  };
@@ -5944,7 +6236,7 @@
5944
6236
  { type: i0.Component, args: [{
5945
6237
  selector: 'aup-in-place-interaction-context',
5946
6238
  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",
5947
- styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}"]
6239
+ styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}\n"]
5948
6240
  },] }
5949
6241
  ];
5950
6242
  InPlaceInteractionContextComponent.ctorParameters = function () { return [
@@ -5953,9 +6245,96 @@
5953
6245
  ]; };
5954
6246
  InPlaceInteractionContextComponent.propDecorators = {
5955
6247
  activityContainerComponent: [{ type: i0.ViewChild, args: ['activityContainer', { static: true },] }],
5956
- animateFirstActivity: [{ type: i0.Input }]
6248
+ animateFirstActivity: [{ type: i0.Input }],
6249
+ active: [{ type: i0.HostBinding, args: ["class.active",] }]
5957
6250
  };
5958
6251
 
6252
+ /**
6253
+ *
6254
+ */
6255
+ exports.AddCardActivityComponent = /** @class */ (function (_super) {
6256
+ __extends(AddCardActivityComponent, _super);
6257
+ function AddCardActivityComponent(interactionService) {
6258
+ var _this = _super.call(this) || this;
6259
+ _this.interactionStyle = AddCardActivityComponent.InteractionType.MODAL;
6260
+ _this.renderAs = AddCardActivityComponent.RenderAs.CARD;
6261
+ _this.notCard = true;
6262
+ var chain = pectin.Dsl.disposeWith(_this).chain;
6263
+ _this.modalInteractionContext = interactionService.createModalInteractionContextDisposedWith(_this);
6264
+ _this.faceList = chain(_this.faceModel).mapToList(function (face) { return [face]; });
6265
+ return _this;
6266
+ }
6267
+ Object.defineProperty(AddCardActivityComponent.prototype, "renderAsClass", {
6268
+ get: function () {
6269
+ return "render-as-" + this.renderAs;
6270
+ },
6271
+ enumerable: false,
6272
+ configurable: true
6273
+ });
6274
+ Object.defineProperty(AddCardActivityComponent.prototype, "activityTypeClass", {
6275
+ get: function () {
6276
+ return this.interactionStyle + "-activity";
6277
+ },
6278
+ enumerable: false,
6279
+ configurable: true
6280
+ });
6281
+ AddCardActivityComponent.prototype.isRenderAsCard = function () {
6282
+ return this.renderAs === 'card';
6283
+ };
6284
+ AddCardActivityComponent.prototype.isRenderAsButton = function () {
6285
+ return this.renderAs === 'button';
6286
+ };
6287
+ AddCardActivityComponent.prototype.ngOnInit = function () {
6288
+ };
6289
+ Object.defineProperty(AddCardActivityComponent.prototype, "interactionContext", {
6290
+ get: function () {
6291
+ switch (this.interactionStyle) {
6292
+ case 'inline':
6293
+ return this.inlineInteractionContext;
6294
+ default:
6295
+ return this.modalInteractionContext;
6296
+ }
6297
+ },
6298
+ enumerable: false,
6299
+ configurable: true
6300
+ });
6301
+ AddCardActivityComponent.prototype.isModal = function () {
6302
+ return this.interactionStyle === 'modal';
6303
+ };
6304
+ AddCardActivityComponent.prototype.isInline = function () {
6305
+ return this.interactionStyle === 'inline';
6306
+ };
6307
+ return AddCardActivityComponent;
6308
+ }(AbstractActivityTriggerComponent));
6309
+ exports.AddCardActivityComponent.decorators = [
6310
+ { type: i0.Component, args: [{
6311
+ selector: 'aup-add-card-activity',
6312
+ 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",
6313
+ 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"]
6314
+ },] }
6315
+ ];
6316
+ exports.AddCardActivityComponent.ctorParameters = function () { return [
6317
+ { type: exports.InteractionService }
6318
+ ]; };
6319
+ exports.AddCardActivityComponent.propDecorators = {
6320
+ inlineInteractionContext: [{ type: i0.ViewChild, args: [InPlaceInteractionContextComponent, { static: true },] }],
6321
+ interactionStyle: [{ type: i0.Input }],
6322
+ renderAs: [{ type: i0.Input }, { type: i0.HostBinding, args: ['class',] }],
6323
+ notCard: [{ type: i0.HostBinding, args: ['class.not-card',] }],
6324
+ renderAsClass: [{ type: i0.HostBinding, args: ['class',] }],
6325
+ activityTypeClass: [{ type: i0.HostBinding, args: ['class',] }]
6326
+ };
6327
+ (function (AddCardActivityComponent) {
6328
+ AddCardActivityComponent.InteractionType = typescriptStringEnums.Enum({
6329
+ MODAL: 'modal',
6330
+ INLINE: 'inline'
6331
+ });
6332
+ AddCardActivityComponent.RenderAs = typescriptStringEnums.Enum({
6333
+ CARD: 'card',
6334
+ BUTTON: 'button'
6335
+ });
6336
+ })(exports.AddCardActivityComponent || (exports.AddCardActivityComponent = {}));
6337
+
5959
6338
  /**
5960
6339
  * Css Vars.
5961
6340
  * --link-color
@@ -6001,7 +6380,7 @@
6001
6380
  { type: i0.Component, args: [{
6002
6381
  selector: 'aup-add-item-interaction-context',
6003
6382
  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",
6004
- 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}"]
6383
+ 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"]
6005
6384
  },] }
6006
6385
  ];
6007
6386
  AddItemInteractionContextComponent.ctorParameters = function () { return []; };
@@ -6025,18 +6404,25 @@
6025
6404
  function InlineActivityTriggerComponent() {
6026
6405
  return _super.call(this) || this;
6027
6406
  }
6407
+ Object.defineProperty(InlineActivityTriggerComponent.prototype, "interactionContext", {
6408
+ get: function () {
6409
+ return this._interactionContext;
6410
+ },
6411
+ enumerable: false,
6412
+ configurable: true
6413
+ });
6028
6414
  return InlineActivityTriggerComponent;
6029
6415
  }(AbstractActivityTriggerComponent));
6030
6416
  InlineActivityTriggerComponent.decorators = [
6031
6417
  { type: i0.Component, args: [{
6032
6418
  selector: 'aup-inline-activity-trigger',
6033
6419
  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",
6034
- styles: [":host{display:inline-block}"]
6420
+ styles: [":host{display:inline-block}\n"]
6035
6421
  },] }
6036
6422
  ];
6037
6423
  InlineActivityTriggerComponent.ctorParameters = function () { return []; };
6038
6424
  InlineActivityTriggerComponent.propDecorators = {
6039
- interactionContext: [{ type: i0.ViewChild, args: [InPlaceInteractionContextComponent, { static: true },] }]
6425
+ _interactionContext: [{ type: i0.ViewChild, args: [InPlaceInteractionContextComponent, { static: true },] }]
6040
6426
  };
6041
6427
 
6042
6428
  /**
@@ -6074,6 +6460,7 @@
6074
6460
  var self = this;
6075
6461
  var overlayRef = this._overlay.create({
6076
6462
  hasBackdrop: false,
6463
+ disposeOnNavigation: true,
6077
6464
  panelClass: 'aup-popup-interaction-panel',
6078
6465
  positionStrategy: this._overlay.position()
6079
6466
  .flexibleConnectedTo(this._element)
@@ -6129,7 +6516,7 @@
6129
6516
  { type: i0.Component, args: [{
6130
6517
  selector: 'aup-popup-interaction-context',
6131
6518
  template: "<ng-content></ng-content>\n",
6132
- styles: [":host{display:inline-block}:host.interaction-active{background:rgba(0,0,0,.05)}"]
6519
+ styles: [":host{display:inline-block}:host.interaction-active{background:rgba(0,0,0,.05)}\n"]
6133
6520
  },] }
6134
6521
  ];
6135
6522
  PopupInteractionContextComponent.ctorParameters = function () { return [
@@ -6185,7 +6572,7 @@
6185
6572
  });
6186
6573
  };
6187
6574
  InteractionContextTriggerFor.prototype.prepareActivityData = function () {
6188
- return ___default['default'].isFunction(this.activityDataFactory()) ? this.activityDataFactory() : this.activityData;
6575
+ return ___default["default"].isFunction(this.activityDataFactory()) ? this.activityDataFactory() : this.activityData;
6189
6576
  };
6190
6577
  return InteractionContextTriggerFor;
6191
6578
  }(pectin.GarbageCollector));
@@ -6209,45 +6596,114 @@
6209
6596
  // @see https://github.com/ng-packagr/ng-packagr/issues/641 and https://github.com/angular/angular/issues/21123
6210
6597
  // we're getting a metadata error for D for no reason that I can find and only during the build (ng serve works fine)
6211
6598
  // @dynamic
6212
- var AbstractInputActivity = /** @class */ (function (_super) {
6213
- __extends(AbstractInputActivity, _super);
6214
- function AbstractInputActivity(data) {
6215
- var _this = _super.call(this) || this;
6599
+ exports.InputActivity = /** @class */ (function (_super) {
6600
+ __extends(InputActivity, _super);
6601
+ function InputActivity(data) {
6602
+ var _this = this;
6603
+ var _a, _b;
6604
+ _this = _super.call(this) || this;
6216
6605
  _this.data = data;
6217
6606
  _this.class = 'aup-input-activity';
6218
6607
  var form = new pectin.DirtyTrackingForm();
6219
6608
  _this.valueModel = form.valueModel(_this.data.initialValue);
6220
6609
  _this.valueModel.validateUsing(data.validators || []);
6221
- _this.confirmCommand = pectin.Command.create(function () {
6222
- if (_this.valueModel.validate()) {
6223
- if (data.save) {
6224
- return Promise.resolve(data.save(_this.valueModel, _this.interactionContext))
6225
- .then(function () { return _this.done(); });
6226
- }
6227
- else {
6228
- _this.done(_this.valueModel.value);
6610
+ // TODO: move to global configuration
6611
+ _this.confirmFace = (_a = data.confirmFace) !== null && _a !== void 0 ? _a : {
6612
+ icon: function () { return 'mat:check'; }
6613
+ };
6614
+ _this.cancelFace = (_b = data.cancelFace) !== null && _b !== void 0 ? _b : {
6615
+ icon: function () { return 'mat:clear'; }
6616
+ };
6617
+ _this.confirmCommand = pectin.Command.create(function () { return __awaiter(_this, void 0, void 0, function () {
6618
+ var self_1, allGood_1, result, e_1;
6619
+ return __generator(this, function (_c) {
6620
+ switch (_c.label) {
6621
+ case 0:
6622
+ if (!this.valueModel.validate()) return [3 /*break*/, 6];
6623
+ if (!data.save) return [3 /*break*/, 5];
6624
+ self_1 = this;
6625
+ _c.label = 1;
6626
+ case 1:
6627
+ _c.trys.push([1, 3, , 4]);
6628
+ allGood_1 = true;
6629
+ return [4 /*yield*/, data.save(this.valueModel.value, {
6630
+ injectError: function (error) {
6631
+ allGood_1 = false;
6632
+ self_1.valueModel.injectErrors([error]);
6633
+ }
6634
+ })];
6635
+ case 2:
6636
+ result = _c.sent();
6637
+ if (allGood_1) {
6638
+ this.done(this.valueModel.value);
6639
+ }
6640
+ return [3 /*break*/, 4];
6641
+ case 3:
6642
+ e_1 = _c.sent();
6643
+ console.error(e_1);
6644
+ return [3 /*break*/, 4];
6645
+ case 4: return [3 /*break*/, 6];
6646
+ case 5:
6647
+ this.done(this.valueModel.value);
6648
+ _c.label = 6;
6649
+ case 6: return [2 /*return*/];
6229
6650
  }
6230
- }
6231
- });
6651
+ });
6652
+ }); });
6232
6653
  _this.cancelCommand = pectin.Command.create(function () {
6233
6654
  _this.cancel();
6234
6655
  });
6656
+ _this.busyWhile(_this.confirmCommand.busy);
6235
6657
  return _this;
6236
6658
  }
6237
- AbstractInputActivity.prototype.onActivityReady = function () {
6659
+ Object.defineProperty(InputActivity.prototype, "layout", {
6660
+ get: function () {
6661
+ var _a, _b;
6662
+ return (_b = (_a = this.data) === null || _a === void 0 ? void 0 : _a.layout) !== null && _b !== void 0 ? _b : InputActivity.Layout.BLOCK;
6663
+ },
6664
+ enumerable: false,
6665
+ configurable: true
6666
+ });
6667
+ InputActivity.prototype.onActivityReady = function () {
6238
6668
  this.valueModel.focusContext.requestFocus();
6239
6669
  };
6240
- return AbstractInputActivity;
6670
+ Object.defineProperty(InputActivity.prototype, "additionalCssClassName", {
6671
+ get: function () {
6672
+ var _a;
6673
+ return (_a = this.data.cssClassName) !== null && _a !== void 0 ? _a : '';
6674
+ },
6675
+ enumerable: false,
6676
+ configurable: true
6677
+ });
6678
+ InputActivity.prototype.onEscape = function () {
6679
+ if (this.shouldCancelOnEscape() && this.cancelCommand.enabled.value) {
6680
+ this.cancelCommand.execute();
6681
+ }
6682
+ };
6683
+ InputActivity.prototype.shouldCancelOnEscape = function () {
6684
+ return ___namespace.isNil(this.data.cancelOnEscape) // we default to true..
6685
+ || this.data.cancelOnEscape;
6686
+ };
6687
+ return InputActivity;
6241
6688
  }(Activity));
6242
- AbstractInputActivity.decorators = [
6689
+ exports.InputActivity.decorators = [
6243
6690
  { type: i0.Component, args: [{ template: "" },] }
6244
6691
  ];
6245
- AbstractInputActivity.ctorParameters = function () { return [
6692
+ exports.InputActivity.ctorParameters = function () { return [
6246
6693
  { type: undefined, decorators: [{ type: i0.Inject, args: [ACTIVITY_DATA,] }] }
6247
6694
  ]; };
6248
- AbstractInputActivity.propDecorators = {
6249
- class: [{ type: i0.HostBinding, args: ['class',] }]
6695
+ exports.InputActivity.propDecorators = {
6696
+ class: [{ type: i0.HostBinding, args: ['class',] }],
6697
+ layout: [{ type: i0.Input }, { type: i0.HostBinding, args: ['attr.layout',] }],
6698
+ additionalCssClassName: [{ type: i0.HostBinding, args: ["class",] }],
6699
+ onEscape: [{ type: i0.HostListener, args: ['keydown.escape',] }]
6250
6700
  };
6701
+ (function (InputActivity) {
6702
+ InputActivity.Layout = typescriptStringEnums.Enum({
6703
+ INLINE: 'inline',
6704
+ BLOCK: 'block'
6705
+ });
6706
+ })(exports.InputActivity || (exports.InputActivity = {}));
6251
6707
 
6252
6708
  var StringInputActivity = /** @class */ (function (_super) {
6253
6709
  __extends(StringInputActivity, _super);
@@ -6255,11 +6711,11 @@
6255
6711
  return _super !== null && _super.apply(this, arguments) || this;
6256
6712
  }
6257
6713
  return StringInputActivity;
6258
- }(AbstractInputActivity));
6714
+ }(exports.InputActivity));
6259
6715
  StringInputActivity.decorators = [
6260
6716
  { type: i0.Component, args: [{
6261
6717
  selector: 'aup-string-input-activity',
6262
- template: "\n <aup-string-input [valueModel]=\"valueModel\"\n [label]=\"data.label\"\n [placeholder]=\"data.placeholder\"\n [command.enter]=\"confirmCommand\"\n [command.escape]=\"cancelCommand\"></aup-string-input>\n <aup-activity-actions align=\"end\"\n [faces]=\"data.buttonStyle\"></aup-activity-actions>\n "
6718
+ template: "\n <aup-string-input [valueModel]=\"valueModel\"\n [label]=\"data.label\"\n [placeholder]=\"data.placeholder\"\n [command.enter]=\"confirmCommand\"\n [command.escape]=\"cancelCommand\"></aup-string-input>\n <aup-activity-actions [layout]=\"layout\" align=\"end\"\n [confirmFace]=\"confirmFace\"\n [cancelFace]=\"cancelFace\"\n ></aup-activity-actions>\n "
6263
6719
  },] }
6264
6720
  ];
6265
6721
 
@@ -6289,11 +6745,11 @@
6289
6745
  configurable: true
6290
6746
  });
6291
6747
  return SelectInputActivity;
6292
- }(AbstractInputActivity));
6748
+ }(exports.InputActivity));
6293
6749
  SelectInputActivity.decorators = [
6294
6750
  { type: i0.Component, args: [{
6295
6751
  selector: 'aup-select-input-activity',
6296
- template: "\n <aup-select-input [valueModel]=\"valueModel\"\n [label]=\"data.label\"\n [placeholder]=\"data.placeholder\"\n [command.enter]=\"confirmCommand\"\n [command.escape]=\"cancelCommand\"\n [options]=\"options\"\n [optionLabelFormat]=\"optionLabelFormat\"\n ></aup-select-input>\n <aup-activity-actions align=\"end\" [faces]=\"data.buttonStyle\"\n ></aup-activity-actions>\n "
6752
+ template: "\n <aup-select-input [valueModel]=\"valueModel\"\n [label]=\"data.label\"\n [placeholder]=\"data.placeholder\"\n [command.enter]=\"confirmCommand\"\n [command.escape]=\"cancelCommand\"\n [options]=\"options\"\n [optionLabelFormat]=\"optionLabelFormat\"\n ></aup-select-input>\n <aup-activity-actions [layout]=\"layout\" align=\"end\"\n [confirmFace]=\"confirmFace\"\n [cancelFace]=\"cancelFace\"\n ></aup-activity-actions>\n "
6297
6753
  },] }
6298
6754
  ];
6299
6755
 
@@ -6400,36 +6856,6 @@
6400
6856
  return TableModel;
6401
6857
  }(AbstractTableModel));
6402
6858
 
6403
- exports.SelfAndDescendantsVisitor = /** @class */ (function () {
6404
- function SelfAndDescendantsVisitor() {
6405
- }
6406
- SelfAndDescendantsVisitor.prototype.visit = function (it) {
6407
- this.onVisit(it);
6408
- if (this.shouldVisitChildrenOf(it)) {
6409
- it.visitChildren(this);
6410
- }
6411
- };
6412
- SelfAndDescendantsVisitor.prototype.shouldVisitChildrenOf = function (it) {
6413
- return true;
6414
- };
6415
- return SelfAndDescendantsVisitor;
6416
- }());
6417
- (function (SelfAndDescendantsVisitor) {
6418
- var Each = /** @class */ (function (_super) {
6419
- __extends(Each, _super);
6420
- function Each(callback) {
6421
- var _this = _super.call(this) || this;
6422
- _this.callback = callback;
6423
- return _this;
6424
- }
6425
- Each.prototype.onVisit = function (it) {
6426
- this.callback(it);
6427
- };
6428
- return Each;
6429
- }(SelfAndDescendantsVisitor));
6430
- SelfAndDescendantsVisitor.Each = Each;
6431
- })(exports.SelfAndDescendantsVisitor || (exports.SelfAndDescendantsVisitor = {}));
6432
-
6433
6859
  /**
6434
6860
  * @file Automatically generated by barrelsby.
6435
6861
  */
@@ -6442,22 +6868,261 @@
6442
6868
  _this.anchorY = 'bottom';
6443
6869
  return _this;
6444
6870
  }
6871
+ Object.defineProperty(PopupActivityTriggerComponent.prototype, "interactionContext", {
6872
+ get: function () {
6873
+ return this._interactionContext;
6874
+ },
6875
+ enumerable: false,
6876
+ configurable: true
6877
+ });
6445
6878
  return PopupActivityTriggerComponent;
6446
6879
  }(AbstractActivityTriggerComponent));
6447
6880
  PopupActivityTriggerComponent.decorators = [
6448
6881
  { type: i0.Component, args: [{
6449
6882
  selector: 'aup-popup-activity-trigger',
6450
6883
  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",
6451
- styles: [":host{display:inline-block}"]
6884
+ styles: [":host{display:inline-block}\n"]
6452
6885
  },] }
6453
6886
  ];
6454
6887
  PopupActivityTriggerComponent.ctorParameters = function () { return []; };
6455
6888
  PopupActivityTriggerComponent.propDecorators = {
6456
6889
  anchorX: [{ type: i0.Input }],
6457
6890
  anchorY: [{ type: i0.Input }],
6458
- interactionContext: [{ type: i0.ViewChild, args: [PopupInteractionContextComponent, { static: true },] }]
6891
+ _interactionContext: [{ type: i0.ViewChild, args: [PopupInteractionContextComponent, { static: true },] }]
6459
6892
  };
6460
6893
 
6894
+ exports.InlineEditorModel = /** @class */ (function (_super) {
6895
+ __extends(InlineEditorModel, _super);
6896
+ function InlineEditorModel(valueModel, saveCallback) {
6897
+ var _this = _super.call(this) || this;
6898
+ _this.valueModel = valueModel;
6899
+ _this.saveCallback = saveCallback;
6900
+ _this.editing = new pectin.MutableValueModel(false);
6901
+ _this._validators = new pectin.MutableListModel();
6902
+ _this._editingEnabled = _this.registerDisposable(new pectin.DelegatingValueModel().withDefault(true));
6903
+ pectin.assert.notNil(valueModel);
6904
+ var when = pectin.Dsl.disposeWith(_this).when;
6905
+ when(_this.editingEnabled).becomesFalsey(function () { return _this.cancelEdit(); });
6906
+ return _this;
6907
+ }
6908
+ Object.defineProperty(InlineEditorModel.prototype, "editingEnabled", {
6909
+ get: function () {
6910
+ return this._editingEnabled.readonly;
6911
+ },
6912
+ enumerable: false,
6913
+ configurable: true
6914
+ });
6915
+ InlineEditorModel.prototype.disableWhile = function (condition) {
6916
+ var chain = pectin.Dsl.disposeWith(this).chain;
6917
+ this.enableWhile(chain(condition).isFalsey());
6918
+ return this;
6919
+ };
6920
+ InlineEditorModel.prototype.enableWhile = function (condition) {
6921
+ this._editingEnabled.setDelegate(condition);
6922
+ return this;
6923
+ };
6924
+ Object.defineProperty(InlineEditorModel.prototype, "validators", {
6925
+ get: function () {
6926
+ return this._validators.readonly;
6927
+ },
6928
+ enumerable: false,
6929
+ configurable: true
6930
+ });
6931
+ InlineEditorModel.prototype.validateUsing = function (validator) {
6932
+ this._validators.push(validator);
6933
+ return this;
6934
+ };
6935
+ InlineEditorModel.prototype.isEditing = function () {
6936
+ return this.editing.value;
6937
+ };
6938
+ InlineEditorModel.prototype.cancelEdit = function () {
6939
+ this.editing.value = false;
6940
+ };
6941
+ InlineEditorModel.prototype.startEditing = function () {
6942
+ this.editing.value = true;
6943
+ };
6944
+ return InlineEditorModel;
6945
+ }(pectin.GarbageCollector));
6946
+ (function (InlineEditorModel) {
6947
+ function create(valueModel, options) {
6948
+ return new InlineEditorModel(valueModel, options.save);
6949
+ }
6950
+ InlineEditorModel.create = create;
6951
+ })(exports.InlineEditorModel || (exports.InlineEditorModel = {}));
6952
+ pectin.TrackExternal.oneTimeBinding(exports.InlineEditorModel);
6953
+
6954
+ /**
6955
+ * @example
6956
+ * const source: ValueModel<string> = ...;
6957
+ * const model = InlineEditorModel.create(source, {
6958
+ * save(updated:string, context: EditContext) => {
6959
+ * try {
6960
+ * try and save the thing...
6961
+ * } catch(error) {
6962
+ * context.injectError(error)
6963
+ * }
6964
+ * }).validateUsing(Validator.present("We'll need a value");
6965
+ *
6966
+ * # in the view
6967
+ * <aup-inline-string-editor
6968
+ * label="My field"
6969
+ * placeHolder="I'm ready for a string..."
6970
+ * [editorModel]="model"></aup-inline-string-editor>
6971
+ */
6972
+ exports.InlineStringEditorComponent = /** @class */ (function (_super) {
6973
+ __extends(InlineStringEditorComponent, _super);
6974
+ function InlineStringEditorComponent(interactionService) {
6975
+ var _this = _super.call(this) || this;
6976
+ _this.editingEnabled = _this.registerDisposable(new pectin.DelegatingValueModel());
6977
+ var _a = pectin.Dsl.disposeWith(_this), chain = _a.chain, when = _a.when, valueOf = _a.valueOf;
6978
+ var modalIC = interactionService.createModalInteractionContextDisposedWith(_this);
6979
+ var resolvedFacesModel = chain(_this.facesModel).map(function (userFaces) {
6980
+ return Object.assign(Object.assign({}, InlineStringEditorComponent.DEFAULT_FACES), userFaces);
6981
+ }, { allowNil: true });
6982
+ _this.editFaceModel = resolvedFacesModel.pluck('edit');
6983
+ _this.saveFace = resolvedFacesModel.pluck('save');
6984
+ _this.cancelFace = resolvedFacesModel.pluck('cancel');
6985
+ var self = _this;
6986
+ _this.editCommand = pectin.Command.create(function () { return __awaiter(_this, void 0, void 0, function () {
6987
+ var e_1;
6988
+ return __generator(this, function (_a) {
6989
+ switch (_a.label) {
6990
+ case 0:
6991
+ this.editorModel.editing.value = true;
6992
+ _a.label = 1;
6993
+ case 1:
6994
+ _a.trys.push([1, 3, 4, 5]);
6995
+ return [4 /*yield*/, this.interactionContext.startActivity(StringInputActivity, this.createInputActivityData())];
6996
+ case 2:
6997
+ _a.sent();
6998
+ return [3 /*break*/, 5];
6999
+ case 3:
7000
+ e_1 = _a.sent();
7001
+ return [3 /*break*/, 5];
7002
+ case 4:
7003
+ this.editorModel.editing.value = false;
7004
+ return [7 /*endfinally*/];
7005
+ case 5: return [2 /*return*/];
7006
+ }
7007
+ });
7008
+ }); }).enableWhile(_this.editingEnabled);
7009
+ _this.onDispose(function () { return _this.cancelEdit(); });
7010
+ return _this;
7011
+ }
7012
+ InlineStringEditorComponent.prototype.ngOnInit = function () {
7013
+ var _this = this;
7014
+ // our editor model is a one time binding without delegates so we can only
7015
+ // use it once we've been initialised
7016
+ var _a = pectin.Dsl.disposeWith(this), chain = _a.chain, when = _a.when, valueOf = _a.valueOf;
7017
+ if (!this.editorModel) {
7018
+ typescriptUtilities.lang.illegalState('editorModel is required');
7019
+ }
7020
+ this.editingEnabled.setDelegate(this.editorModel.editingEnabled);
7021
+ when(this.editorModel.editing).becomesTruthy(function () {
7022
+ _this.editCommand.execute();
7023
+ }, { asLongAs: this.editCommand.enabled });
7024
+ when(this.editorModel.editing).becomesFalsey(function () { return _this.cancelEdit(); });
7025
+ this.empty = valueOf.any(chain.stringValue(this.editorModel.valueModel).isBlank()
7026
+ // deviceDescription.isNil()
7027
+ ).areTruthy();
7028
+ this.displayValue = chain(this.editorModel.valueModel).map(function (v) {
7029
+ return ___namespace.isEmpty(v) ? _this.placeHolderModel.value : v;
7030
+ }, { dependsOn: this.placeHolderModel, allowNil: true });
7031
+ };
7032
+ InlineStringEditorComponent.prototype.createInputActivityData = function () {
7033
+ var self = this;
7034
+ return {
7035
+ initialValue: self.editorModel.valueModel.value,
7036
+ confirmFace: self.saveFace.value,
7037
+ cancelFace: self.cancelFace.value,
7038
+ placeholder: self.placeHolderModel.value,
7039
+ label: self.label,
7040
+ layout: exports.InputActivity.Layout.INLINE,
7041
+ validators: self.editorModel.validators.value,
7042
+ save: function (value, inputContext) {
7043
+ return __awaiter(this, void 0, void 0, function () {
7044
+ return __generator(this, function (_a) {
7045
+ switch (_a.label) {
7046
+ case 0: return [4 /*yield*/, self.editorModel.saveCallback(value, inputContext)];
7047
+ case 1:
7048
+ _a.sent();
7049
+ return [2 /*return*/];
7050
+ }
7051
+ });
7052
+ });
7053
+ }
7054
+ };
7055
+ };
7056
+ InlineStringEditorComponent.prototype.cancelEdit = function () {
7057
+ if (this.isEditing()) {
7058
+ this.interactionContext.cancelActiveActivity();
7059
+ }
7060
+ };
7061
+ InlineStringEditorComponent.prototype.startEdit = function () {
7062
+ if (!this.isEditing() && this.editCommand.enabled.value) {
7063
+ this.editCommand.execute();
7064
+ }
7065
+ };
7066
+ InlineStringEditorComponent.prototype.isEditing = function () {
7067
+ return this.interactionContext.isActive();
7068
+ };
7069
+ InlineStringEditorComponent.prototype.isEmpty = function () {
7070
+ return this.empty.value;
7071
+ };
7072
+ return InlineStringEditorComponent;
7073
+ }(DisposableComponent));
7074
+ exports.InlineStringEditorComponent.decorators = [
7075
+ { type: i0.Component, args: [{
7076
+ selector: 'aup-inline-string-editor',
7077
+ 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"
7078
+ },] }
7079
+ ];
7080
+ exports.InlineStringEditorComponent.ctorParameters = function () { return [
7081
+ { type: exports.InteractionService }
7082
+ ]; };
7083
+ exports.InlineStringEditorComponent.propDecorators = {
7084
+ editorModel: [{ type: i0.Input }],
7085
+ facesModel: [{ type: i0.Input }],
7086
+ faces: [{ type: i0.Input }],
7087
+ interactionContext: [{ type: i0.ViewChild, args: [InPlaceInteractionContextComponent,] }],
7088
+ label: [{ type: i0.Input }],
7089
+ placeHolder: [{ type: i0.Input }],
7090
+ placeHolderModel: [{ type: i0.Input }]
7091
+ };
7092
+ __decorate([
7093
+ pectin.TrackExternal(),
7094
+ __metadata("design:type", exports.InlineEditorModel)
7095
+ ], exports.InlineStringEditorComponent.prototype, "editorModel", void 0);
7096
+ __decorate([
7097
+ pectin.TrackExternal(),
7098
+ __metadata("design:type", pectin.ValueModel)
7099
+ ], exports.InlineStringEditorComponent.prototype, "facesModel", void 0);
7100
+ __decorate([
7101
+ pectin.StoreInValueModel('facesModel'),
7102
+ __metadata("design:type", Object)
7103
+ ], exports.InlineStringEditorComponent.prototype, "faces", void 0);
7104
+ __decorate([
7105
+ pectin.StoreInValueModel('placeHolderModel'),
7106
+ __metadata("design:type", String)
7107
+ ], exports.InlineStringEditorComponent.prototype, "placeHolder", void 0);
7108
+ __decorate([
7109
+ pectin.TrackExternal(),
7110
+ __metadata("design:type", pectin.ValueModel)
7111
+ ], exports.InlineStringEditorComponent.prototype, "placeHolderModel", void 0);
7112
+ (function (InlineStringEditorComponent) {
7113
+ InlineStringEditorComponent.DEFAULT_FACES = {
7114
+ edit: {
7115
+ icon: function () { return 'mat:edit'; }
7116
+ },
7117
+ save: {
7118
+ icon: function () { return 'mat:check'; }
7119
+ },
7120
+ cancel: {
7121
+ icon: function () { return 'mat:clear'; }
7122
+ }
7123
+ };
7124
+ })(exports.InlineStringEditorComponent || (exports.InlineStringEditorComponent = {}));
7125
+
6461
7126
  var InteractionModule = /** @class */ (function () {
6462
7127
  function InteractionModule() {
6463
7128
  }
@@ -6476,7 +7141,11 @@
6476
7141
  DirectivesModule,
6477
7142
  flexLayout.FlexModule,
6478
7143
  flexLayout.GridModule,
6479
- ComponentsModule
7144
+ ComponentsModule,
7145
+ forms.FormsModule,
7146
+ input.MatInputModule,
7147
+ formField.MatFormFieldModule,
7148
+ a11y.A11yModule
6480
7149
  ],
6481
7150
  declarations: [
6482
7151
  ActivityContainerComponent,
@@ -6486,20 +7155,22 @@
6486
7155
  ActivityOutletComponent,
6487
7156
  InPlaceInteractionContextComponent,
6488
7157
  AddItemInteractionContextComponent,
6489
- ActivityActionsComponent,
7158
+ exports.ActivityActionsComponent,
6490
7159
  PopupInteractionContextComponent,
6491
7160
  StringInputActivity,
6492
7161
  SelectInputActivity,
6493
- AbstractInputActivity,
7162
+ exports.InputActivity,
6494
7163
  InteractionContextTriggerFor,
6495
7164
  Activity,
6496
7165
  ActivityTitleComponent,
6497
7166
  ActivityBodyComponent,
6498
- ActivityActionsComponent,
7167
+ exports.ActivityActionsComponent,
6499
7168
  AbstractActivityTriggerComponent,
6500
7169
  PopupActivityTriggerComponent,
6501
7170
  InlineActivityTriggerComponent,
6502
- ModalActivityTriggerComponent
7171
+ ModalActivityTriggerComponent,
7172
+ exports.AddCardActivityComponent,
7173
+ exports.InlineStringEditorComponent,
6503
7174
  ],
6504
7175
  exports: [
6505
7176
  ActivityContainerComponent,
@@ -6507,7 +7178,7 @@
6507
7178
  ActivityTitleComponent,
6508
7179
  InPlaceInteractionContextComponent,
6509
7180
  AddItemInteractionContextComponent,
6510
- ActivityActionsComponent,
7181
+ exports.ActivityActionsComponent,
6511
7182
  PopupInteractionContextComponent,
6512
7183
  InteractionContextTriggerFor,
6513
7184
  StringInputActivity,
@@ -6515,7 +7186,9 @@
6515
7186
  ActivityBodyComponent,
6516
7187
  PopupActivityTriggerComponent,
6517
7188
  InlineActivityTriggerComponent,
6518
- ModalActivityTriggerComponent
7189
+ ModalActivityTriggerComponent,
7190
+ exports.AddCardActivityComponent,
7191
+ exports.InlineStringEditorComponent,
6519
7192
  ],
6520
7193
  entryComponents: [
6521
7194
  ActivityContainerComponent,
@@ -6600,7 +7273,7 @@
6600
7273
  return _this;
6601
7274
  }
6602
7275
  RouteId.prototype.isEmptyValue = function (value) {
6603
- return ___default['default'].isNil(value);
7276
+ return ___default["default"].isNil(value);
6604
7277
  };
6605
7278
  RouteId.prototype.hasChanged = function (a, b) {
6606
7279
  return a !== b;
@@ -6618,7 +7291,7 @@
6618
7291
  return _this;
6619
7292
  }
6620
7293
  ValueParameter.prototype.isEmptyValue = function (value) {
6621
- return ___default['default'].isNil(value);
7294
+ return ___default["default"].isNil(value);
6622
7295
  };
6623
7296
  ValueParameter.prototype.hasChanged = function (a, b) {
6624
7297
  return a !== b;
@@ -6636,10 +7309,10 @@
6636
7309
  return _this;
6637
7310
  }
6638
7311
  ArrayParameter.prototype.isEmptyValue = function (value) {
6639
- return ___default['default'].isNil(value) || value.length < 1;
7312
+ return ___default["default"].isNil(value) || value.length < 1;
6640
7313
  };
6641
7314
  ArrayParameter.prototype.hasChanged = function (a, b) {
6642
- return !___default['default'].isEqual(a, b);
7315
+ return !___default["default"].isEqual(a, b);
6643
7316
  };
6644
7317
  return ArrayParameter;
6645
7318
  }(ParameterDefinition));
@@ -6688,13 +7361,13 @@
6688
7361
  };
6689
7362
  PlaceDefinition.prototype.getPlaceData = function (key, defaultValue) {
6690
7363
  return this.data ?
6691
- ___default['default'].isNil(this.data[key]) ? defaultValue : this.data[key] :
7364
+ ___default["default"].isNil(this.data[key]) ? defaultValue : this.data[key] :
6692
7365
  defaultValue;
6693
7366
  };
6694
7367
  PlaceDefinition.prototype.searchPlaceData = function (keys, defaultValue) {
6695
7368
  var _this = this;
6696
7369
  if (this.data) {
6697
- var found = keys.find(function (key) { return !___default['default'].isNil(_this.data[key]); });
7370
+ var found = keys.find(function (key) { return !___default["default"].isNil(_this.data[key]); });
6698
7371
  return found ? this.data[found] : defaultValue;
6699
7372
  }
6700
7373
  else {
@@ -6764,7 +7437,7 @@
6764
7437
  // because our id routes redirect if the id isn't present we always have a id
6765
7438
  // parameter in our params. This will bugger our remember and defaultvalue sanitisation
6766
7439
  // as it'll see that the id is present (event thought its a blank string).
6767
- if (!___default['default'].isEmpty(value)) {
7440
+ if (!___default["default"].isEmpty(value)) {
6768
7441
  result[def.name] = def.urlFormat.parse(value);
6769
7442
  }
6770
7443
  }
@@ -6827,17 +7500,28 @@
6827
7500
  _this.childPlaces = _this.placeDefinition.children.map(function (d) { return d.component; });
6828
7501
  return _this;
6829
7502
  }
6830
- // @Trace()
6831
7503
  PlaceComponent.prototype.initialiseVisit = function (visit, notifyVisitChanged) {
6832
7504
  var _this = this;
6833
7505
  pectin.assert.isNil(this.visitModel.value);
6834
7506
  var when = pectin.Dsl.disposeWith(this).when;
6835
7507
  this.visitModel.value = visit;
6836
7508
  pectin.DebugContext.getOrCreate(this.visitModel).tag(this.placeDefinition.component.name + ".visitModel");
6837
- this.placeDefinition.getVisitParameterDefs().forEach(function (parameterDef) { return _this.installBinding(parameterDef); });
7509
+ // we track if the any of the bindings updated the route. If so we remember it and update the
7510
+ // route in one go at the end.
7511
+ this.placeDefinition
7512
+ .getVisitParameterDefs()
7513
+ .forEach(function (parameterDef) { return _this.installAndInitialiseBinding(visit, parameterDef); });
6838
7514
  when(this.visitModel).changes(function (current, previous) {
6839
7515
  notifyVisitChanged(current, previous);
6840
7516
  }, { unless: this._inVisitUpdate });
7517
+ // TODO: this needs to do a replace url option so that the new url isn't put in the history.... for
7518
+ // now we're not doing it as it's a fair bit of effort and will only affect people if they're
7519
+ // cutting and pasting urls to each other.
7520
+ // // the binding process can update the visit (e.g. if a selection model has already selected during
7521
+ // // component construction) and there was no value specified in the route
7522
+ // if (visit.hasRoutingChangedFrom(this.visitModel.value)) {
7523
+ // notifyVisitChanged(this.visitModel.value, visit)
7524
+ // }
6841
7525
  };
6842
7526
  PlaceComponent.prototype.updateVisit = function (visit) {
6843
7527
  var _this = this;
@@ -6851,7 +7535,12 @@
6851
7535
  return !!this.visitModel.value;
6852
7536
  };
6853
7537
  // @Trace()
6854
- PlaceComponent.prototype.installBinding = function (parameterDef) {
7538
+ /**
7539
+ * Initialised the component bindings. If any binding has an initial model value (e.g. a selection model
7540
+ * initialised during the constructor) and the route has nothing, then the visit will be udpated and this
7541
+ * method will return ture to nofiy the the visit has changed.
7542
+ */
7543
+ PlaceComponent.prototype.installAndInitialiseBinding = function (initialVisit, parameterDef) {
6855
7544
  var model = this[parameterDef.propertyName];
6856
7545
  pectin.DebugContext.tag(model, this.placeDefinition.component.name + "." + parameterDef.propertyName);
6857
7546
  var binding = this.registerDisposable(new pectin.Binding(this.visitModel, model, {
@@ -6865,7 +7554,17 @@
6865
7554
  return currentVisit.replace(parameterDef, value);
6866
7555
  }
6867
7556
  }));
6868
- binding.writeRight();
7557
+ // Now we need to initialise the binding direction. If we have a value in the Url then we should always push
7558
+ // 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
7559
+ // component constructor) then we should push that to the route.
7560
+ var isInVisit = !___namespace.isNil(initialVisit.getParameterValue(parameterDef));
7561
+ var isInModel = !___namespace.isNil(model.value);
7562
+ if (!isInVisit && isInModel) {
7563
+ binding.writeLeft(); // push it to the route
7564
+ }
7565
+ else {
7566
+ binding.writeRight(); // push it to the model
7567
+ }
6869
7568
  };
6870
7569
  Object.defineProperty(PlaceComponent.prototype, "placeDefinition", {
6871
7570
  get: function () {
@@ -7416,7 +8115,7 @@
7416
8115
  var currentIds = this.interactionServiceAdapter.getActiveInteractionContextIds();
7417
8116
  var previousIds = this.urlService.getCurrentLocationUrlSnapshot().getInteractionIds();
7418
8117
  // console.log(`---> synchroniseInteractionIds`, { is: currentIds.join(','), was: previousIds.join(',') });
7419
- if (___default['default'].isEqual(currentIds, previousIds)) {
8118
+ if (___default["default"].isEqual(currentIds, previousIds)) {
7420
8119
  // console.log('### Activity context ids were the same, skipping');
7421
8120
  this.context.finishRoutingSession();
7422
8121
  }
@@ -7896,7 +8595,7 @@
7896
8595
  return !!((_a = this._previousVisits) === null || _a === void 0 ? void 0 : _a.getVisitFor(placeDef));
7897
8596
  };
7898
8597
  PlaceHistory.prototype.getMostRecentVisitFor = function (placeDef) {
7899
- return ___default['default'].first(this.getHistory(placeDef));
8598
+ return ___default["default"].first(this.getHistory(placeDef));
7900
8599
  };
7901
8600
  PlaceHistory.prototype.getHistory = function (placeDef) {
7902
8601
  var history = this._archive.get(placeDef);
@@ -7913,7 +8612,7 @@
7913
8612
  var _this = this;
7914
8613
  visits.forEach(function (state) {
7915
8614
  var history = _this.getHistory(state.placeDefinition);
7916
- var previousState = ___default['default'].first(history);
8615
+ var previousState = ___default["default"].first(history);
7917
8616
  if (!previousState || state.hasChangedFrom(previousState)) {
7918
8617
  history.unshift(state); // LIFO
7919
8618
  _this.setHistory(state.placeDefinition, history.slice(0, _this.placeHistoryDepth));
@@ -8037,7 +8736,7 @@
8037
8736
  };
8038
8737
  Object.defineProperty(ConsolidatedParameterMap.prototype, "keys", {
8039
8738
  get: function () {
8040
- return this.paramMaps.reduce(function (result, params) { return result.concat(params.keys); }, []);
8739
+ return ___namespace.uniq(this.paramMaps.reduce(function (result, params) { return result.concat(params.keys); }, []));
8041
8740
  },
8042
8741
  enumerable: false,
8043
8742
  configurable: true
@@ -8126,9 +8825,13 @@
8126
8825
  });
8127
8826
  return new Visit(this.placeDefinition, params);
8128
8827
  };
8828
+ // @Trace()
8129
8829
  Visit.prototype.hasRoutingChangedFrom = function (other) {
8130
8830
  var samePlace = other.placeDefinition === this.placeDefinition;
8131
- var sameRouteParameters = ___namespace.isEqual(this.placeDefinition.getFormattedRouteParameters(this, true), this.placeDefinition.getFormattedRouteParameters(other, true));
8831
+ var currentParams = this.placeDefinition.getFormattedRouteParameters(this, true);
8832
+ var otherParams = this.placeDefinition.getFormattedRouteParameters(other, true);
8833
+ // console.log({currentParams, otherParams});
8834
+ var sameRouteParameters = ___namespace.isEqual(currentParams, otherParams);
8132
8835
  return !samePlace || !sameRouteParameters;
8133
8836
  };
8134
8837
  Visit.prototype.hasChangedFrom = function (other) {
@@ -8152,6 +8855,7 @@
8152
8855
  this.url = url;
8153
8856
  this.urlTree = urlSerializer.parse(url);
8154
8857
  }
8858
+ // @Trace()
8155
8859
  UrlSnapshot.prototype.updateVisitSegments = function (visit) {
8156
8860
  var newUrlTree = this.urlSerializer.parse(this.url);
8157
8861
  // Ugly, but it works for now.
@@ -8203,7 +8907,7 @@
8203
8907
  return this.getInteractionIds().length > 0;
8204
8908
  };
8205
8909
  UrlSnapshot.prototype.hasInteractionIds = function (ids) {
8206
- return ___default['default'].isEqual(this.getInteractionIds(), ids);
8910
+ return ___default["default"].isEqual(this.getInteractionIds(), ids);
8207
8911
  };
8208
8912
  // @Trace()
8209
8913
  UrlSnapshot.prototype.updateInteractionIds = function (ids) {
@@ -8229,12 +8933,6 @@
8229
8933
  };
8230
8934
  return UrlSnapshot;
8231
8935
  }());
8232
- __decorate([
8233
- pectin.Trace(),
8234
- __metadata("design:type", Function),
8235
- __metadata("design:paramtypes", [Visit]),
8236
- __metadata("design:returntype", exports.UrlSnapshot)
8237
- ], exports.UrlSnapshot.prototype, "updateVisitSegments", null);
8238
8936
  __decorate([
8239
8937
  src.Memoize(),
8240
8938
  __metadata("design:type", Function),
@@ -8321,6 +9019,9 @@
8321
9019
  { type: i1$1.UrlSerializer }
8322
9020
  ]; };
8323
9021
 
9022
+ function asArray(item) {
9023
+ return Array.isArray(item) ? item : [item];
9024
+ }
8324
9025
  exports.PlaceRouter = /** @class */ (function (_super) {
8325
9026
  __extends(PlaceRouter, _super);
8326
9027
  function PlaceRouter(angularRouter, angularLocation, interactionService, urlService, placeHistory) {
@@ -8500,17 +9201,15 @@
8500
9201
  };
8501
9202
  PlaceRouter.prototype.navigate = function (visit, options) {
8502
9203
  var _this = this;
9204
+ var commands = asArray(visit).reduce(function (result, v) {
9205
+ return __spreadArray(__spreadArray(__spreadArray([], __read(result)), [v.placeDefinition.path]), __read(_this.createRouteParameters(v)));
9206
+ }, []);
8503
9207
  return this.doNavigation(visit, function (router) { return __awaiter(_this, void 0, void 0, function () {
8504
- var commands;
8505
9208
  return __generator(this, function (_a) {
8506
9209
  switch (_a.label) {
8507
- case 0:
8508
- commands = __spreadArray([
8509
- visit.placeDefinition.path
8510
- ], __read(this.createRouteParameters(visit)));
8511
- return [4 /*yield*/, this.angularRouter.navigate(commands, {
8512
- relativeTo: options ? options.relativeTo : null
8513
- })];
9210
+ case 0: return [4 /*yield*/, this.angularRouter.navigate(commands, {
9211
+ relativeTo: options ? options.relativeTo : null
9212
+ })];
8514
9213
  case 1:
8515
9214
  _a.sent();
8516
9215
  return [2 /*return*/];
@@ -8529,7 +9228,7 @@
8529
9228
  pectin.lang.illegalState('Navigation already in progress');
8530
9229
  }
8531
9230
  navigation = this.createNavigationSession(this.urlService.getCurrentRouterUrl());
8532
- navigation.storeVisit(visit);
9231
+ asArray(visit).forEach(function (v) { return navigation.storeVisit(v); });
8533
9232
  this.transitionTo(navigation);
8534
9233
  _a.label = 1;
8535
9234
  case 1:
@@ -8625,6 +9324,7 @@
8625
9324
  * to be able to capture the back button on the first page. If we don't then the back click will exit
8626
9325
  * the app directly and we don't get to ask.
8627
9326
  */
9327
+ // @Trace()
8628
9328
  PlaceRouter.prototype.syncInteractionContextIdsWithRouter = function () {
8629
9329
  var _this = this;
8630
9330
  if (this.navigationSession) {
@@ -8668,12 +9368,6 @@
8668
9368
  { type: UrlService },
8669
9369
  { type: exports.PlaceHistory }
8670
9370
  ]; };
8671
- __decorate([
8672
- pectin.Trace(),
8673
- __metadata("design:type", Function),
8674
- __metadata("design:paramtypes", []),
8675
- __metadata("design:returntype", Promise)
8676
- ], exports.PlaceRouter.prototype, "syncInteractionContextIdsWithRouter", null);
8677
9371
  (function (PlaceRouter) {
8678
9372
  var State = /** @class */ (function () {
8679
9373
  function State(activeVisits) {
@@ -8701,7 +9395,7 @@
8701
9395
  { type: i0.Component, args: [{
8702
9396
  selector: 'aup-not-authorised-notice',
8703
9397
  template: "<p>You are not authorised to access this page</p>\n",
8704
- styles: [":host{display:flex;flex-direction:column;align-items:center;justify-content:center}"]
9398
+ styles: [":host{display:flex;flex-direction:column;align-items:center;justify-content:center}\n"]
8705
9399
  },] }
8706
9400
  ];
8707
9401
  NotAuthorisedNoticeComponent.ctorParameters = function () { return []; };
@@ -8952,7 +9646,7 @@
8952
9646
  selector: 'aup-place-outlet',
8953
9647
  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",
8954
9648
  animations: [LEFT_RIGHT_PLACE_ANIMATION],
8955
- 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}"]
9649
+ 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"]
8956
9650
  },] }
8957
9651
  ];
8958
9652
  PlaceOutletComponent.ctorParameters = function () { return [
@@ -9087,7 +9781,7 @@
9087
9781
  { type: i0.Component, args: [{
9088
9782
  selector: 'aup-list-place-nav',
9089
9783
  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",
9090
- 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)}"]
9784
+ 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"]
9091
9785
  },] }
9092
9786
  ];
9093
9787
  ListPlaceNavComponent.ctorParameters = function () { return [
@@ -9158,7 +9852,7 @@
9158
9852
  { type: i0.Component, args: [{
9159
9853
  selector: 'aup-side-place-navigation',
9160
9854
  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",
9161
- 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)}"]
9855
+ 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"]
9162
9856
  },] }
9163
9857
  ];
9164
9858
  SidePlaceNavigationComponent.ctorParameters = function () { return [
@@ -9180,7 +9874,7 @@
9180
9874
  { type: i0.Component, args: [{
9181
9875
  selector: 'aup-tabbed-place-navigation',
9182
9876
  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",
9183
- styles: [":host{display:block}div.place-holder{border:1px solid green}"]
9877
+ styles: [":host{display:block}div.place-holder{border:1px solid green}\n"]
9184
9878
  },] }
9185
9879
  ];
9186
9880
  TabbedPlaceNavigationComponent.ctorParameters = function () { return [
@@ -9512,13 +10206,13 @@
9512
10206
  }
9513
10207
  _a.label = 2;
9514
10208
  case 2: return [4 /*yield*/, this.cleanInteractionState(activatedRoute, state, function () { return __awaiter(_this, void 0, void 0, function () {
9515
- var params, parsedParams, navigationSession, initialVisit, sanitiser, sanitisedVisit, urlSnapshot;
10209
+ var navigationSession, params, parsedParams, initialVisit, sanitiser, sanitisedVisit, urlSnapshot;
9516
10210
  return __generator(this, function (_a) {
9517
10211
  switch (_a.label) {
9518
10212
  case 0:
10213
+ navigationSession = this.placeRouter.navigationSession;
9519
10214
  params = new ConsolidatedParameterMap(activatedRoute.url, activatedRoute.paramMap);
9520
10215
  parsedParams = placeDefinition_1.parseRouteParams(params);
9521
- navigationSession = this.placeRouter.navigationSession;
9522
10216
  initialVisit = navigationSession.getVisitFor(placeDefinition_1) || new Visit(placeDefinition_1, parsedParams);
9523
10217
  sanitiser = new VisitSanitiser(navigationSession, activatedRoute, this.router, this.placeHistory, this.injector);
9524
10218
  return [4 /*yield*/, sanitiser.sanitise(initialVisit.mergeRouteParameters(parsedParams))];
@@ -9627,11 +10321,11 @@
9627
10321
  function NumberType() {
9628
10322
  }
9629
10323
  NumberType.prototype.format = function (value) {
9630
- return ___default['default'].isNumber(value) && !___default['default'].isNaN(value) ? "" + value : null;
10324
+ return ___default["default"].isNumber(value) && !___default["default"].isNaN(value) ? "" + value : null;
9631
10325
  };
9632
10326
  NumberType.prototype.parse = function (value) {
9633
10327
  var parsed = Number.parseFloat(value);
9634
- return ___default['default'].isNaN(parsed) ? null : parsed;
10328
+ return ___default["default"].isNaN(parsed) ? null : parsed;
9635
10329
  };
9636
10330
  return NumberType;
9637
10331
  }());
@@ -9807,7 +10501,7 @@
9807
10501
  exports.AUP_PLACE_CONFIG = AUP_PLACE_CONFIG;
9808
10502
  exports.AUP_UNAUTHORISED_PLACE_NOTICE_COMPONENT = AUP_UNAUTHORISED_PLACE_NOTICE_COMPONENT;
9809
10503
  exports.AbstractActivityTriggerComponent = AbstractActivityTriggerComponent;
9810
- exports.AbstractInputActivity = AbstractInputActivity;
10504
+ exports.AbstractCardContainerComponent = AbstractCardContainerComponent;
9811
10505
  exports.AbstractInputComponent = AbstractInputComponent;
9812
10506
  exports.AbstractInteractionContext = AbstractInteractionContext;
9813
10507
  exports.AbstractListInputComponent = AbstractListInputComponent;
@@ -9818,7 +10512,6 @@
9818
10512
  exports.AbstractTableModel = AbstractTableModel;
9819
10513
  exports.AbstractValueInputComponent = AbstractValueInputComponent;
9820
10514
  exports.Activity = Activity;
9821
- exports.ActivityActionsComponent = ActivityActionsComponent;
9822
10515
  exports.ActivityBodyComponent = ActivityBodyComponent;
9823
10516
  exports.ActivityContainerComponent = ActivityContainerComponent;
9824
10517
  exports.ActivityOutletComponent = ActivityOutletComponent;
@@ -9832,6 +10525,7 @@
9832
10525
  exports.CELL_EDITOR_PORTAL = CELL_EDITOR_PORTAL;
9833
10526
  exports.CELL_RENDERER_PORTAL = CELL_RENDERER_PORTAL;
9834
10527
  exports.CardContainerComponent = CardContainerComponent;
10528
+ exports.CardStackComponent = CardStackComponent;
9835
10529
  exports.CellEditorPortalRef = CellEditorPortalRef;
9836
10530
  exports.CellHeaderPortalRef = CellHeaderPortalRef;
9837
10531
  exports.CellPortalRef = CellPortalRef;
@@ -9881,8 +10575,10 @@
9881
10575
  exports.InteractionModule = InteractionModule;
9882
10576
  exports.InteractionServiceRoutingAdapter = InteractionServiceRoutingAdapter;
9883
10577
  exports.LEFT_RIGHT_PLACE_ANIMATION = LEFT_RIGHT_PLACE_ANIMATION;
10578
+ exports.LabelledValueComponent = LabelledValueComponent;
9884
10579
  exports.ListPlaceNavComponent = ListPlaceNavComponent;
9885
10580
  exports.ListPropertyColumnModel = ListPropertyColumnModel;
10581
+ exports.LoadingContainerComponent = LoadingContainerComponent;
9886
10582
  exports.ModalActivityTriggerComponent = ModalActivityTriggerComponent;
9887
10583
  exports.ModalInteractionContextFactory = ModalInteractionContextFactory;
9888
10584
  exports.MoreMenuComponent = MoreMenuComponent;
@@ -9961,9 +10657,9 @@
9961
10657
  exports.slideDownOnEnterAnimation = slideDownOnEnterAnimation;
9962
10658
  exports.slideRightOnEnterAnimation = slideRightOnEnterAnimation;
9963
10659
  exports.treeNodeDecorator = treeNodeDecorator;
9964
- exports.ɵ0 = ɵ0;
10660
+ exports["ɵ0"] = ɵ0;
9965
10661
 
9966
10662
  Object.defineProperty(exports, '__esModule', { value: true });
9967
10663
 
9968
- })));
10664
+ }));
9969
10665
  //# sourceMappingURL=coolon-angular-ui-powerups.umd.js.map