@coolon/angular-ui-powerups 12.4.0-alpha.7 → 12.4.0-alpha.70

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 (488) 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 +10 -2
  6. package/assets/forms/mixins.scss +6 -0
  7. package/assets/interaction/editor/inline-string-editor.scss +54 -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 -331
  12. package/bundles/coolon-angular-ui-powerups-cypress.umd.js.map +1 -1
  13. package/bundles/coolon-angular-ui-powerups.umd.js +1105 -341
  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/lib/angular-ui-powerups.module.ngfactory.js.map +1 -1
  153. package/esm2015/lib/components/busy-overlay/busy-overlay.component.js +1 -1
  154. package/esm2015/lib/components/busy-overlay/busy-overlay.component.metadata.json +1 -1
  155. package/esm2015/lib/components/cards/abstract-card-container.component.js +29 -0
  156. package/esm2015/lib/components/cards/abstract-card-container.component.js.map +1 -0
  157. package/esm2015/lib/components/cards/abstract-card-container.component.metadata.json +1 -0
  158. package/esm2015/lib/components/cards/abstract-card-container.component.ngfactory.js.map +1 -0
  159. package/esm2015/lib/components/cards/card-container/card-container.component.js +123 -0
  160. package/esm2015/lib/components/cards/card-container/card-container.component.js.map +1 -0
  161. package/esm2015/lib/components/cards/card-container/card-container.component.metadata.json +1 -0
  162. package/esm2015/lib/components/cards/card-container/card-container.component.ngfactory.js.map +1 -0
  163. package/esm2015/lib/components/cards/card-container/card-container.component.scss.shim.ngstyle.js.map +1 -0
  164. package/esm2015/lib/components/cards/card-stack/card-stack.component.js +78 -0
  165. package/esm2015/lib/components/cards/card-stack/card-stack.component.js.map +1 -0
  166. package/esm2015/lib/components/cards/card-stack/card-stack.component.metadata.json +1 -0
  167. package/esm2015/lib/components/cards/card-stack/card-stack.component.ngfactory.js.map +1 -0
  168. package/esm2015/lib/components/cards/card-stack/card-stack.component.scss.shim.ngstyle.js.map +1 -0
  169. package/esm2015/lib/components/commands/command/command.component.js +1 -1
  170. package/esm2015/lib/components/commands/command/command.component.metadata.json +1 -1
  171. package/esm2015/lib/components/commands/command-face/command-face.component.js +5 -1
  172. package/esm2015/lib/components/commands/command-face/command-face.component.js.map +1 -1
  173. package/esm2015/lib/components/commands/command-face/command-face.component.metadata.json +1 -1
  174. package/esm2015/lib/components/commands/group/popup-menu/abstract-popup-menu.component.js +1 -1
  175. package/esm2015/lib/components/commands/group/popup-menu/abstract-popup-menu.component.js.map +1 -1
  176. package/esm2015/lib/components/commands/group/popup-menu/popup-menu-renderer/popup-menu-renderer.component.js +1 -1
  177. package/esm2015/lib/components/commands/group/popup-menu/popup-menu-renderer/popup-menu-renderer.component.js.map +1 -1
  178. package/esm2015/lib/components/commands/group/tool-bar/tool-bar.component.js +1 -1
  179. package/esm2015/lib/components/commands/group/tool-bar/tool-bar.component.metadata.json +1 -1
  180. package/esm2015/lib/components/components.module.js +37 -24
  181. package/esm2015/lib/components/components.module.js.map +1 -1
  182. package/esm2015/lib/components/components.module.metadata.json +1 -1
  183. package/esm2015/lib/components/components.module.ngfactory.js.map +1 -1
  184. package/esm2015/lib/components/empty-state/empty-state.component.js +1 -1
  185. package/esm2015/lib/components/empty-state/empty-state.component.metadata.json +1 -1
  186. package/esm2015/lib/components/exports.js +7 -4
  187. package/esm2015/lib/components/exports.js.map +1 -1
  188. package/esm2015/lib/components/exports.metadata.json +1 -1
  189. package/esm2015/lib/components/focus-container/focus-container.component.js +1 -1
  190. package/esm2015/lib/components/focus-container/focus-container.component.metadata.json +1 -1
  191. package/esm2015/lib/components/forms/abstract-input.component.js +1 -0
  192. package/esm2015/lib/components/forms/abstract-input.component.js.map +1 -1
  193. package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.js +1 -1
  194. package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.metadata.json +1 -1
  195. package/esm2015/lib/components/forms/checkbox-input/checkbox-input.component.js +1 -1
  196. package/esm2015/lib/components/forms/checkbox-input/checkbox-input.component.metadata.json +1 -1
  197. package/esm2015/lib/components/forms/multiple-select-input/multiple-select-input.component.js +1 -1
  198. package/esm2015/lib/components/forms/multiple-select-input/multiple-select-input.component.metadata.json +1 -1
  199. package/esm2015/lib/components/forms/select-input/select-input.component.js +1 -1
  200. package/esm2015/lib/components/forms/select-input/select-input.component.metadata.json +1 -1
  201. package/esm2015/lib/components/forms/string-input/string-input.component.js +1 -1
  202. package/esm2015/lib/components/forms/string-input/string-input.component.metadata.json +1 -1
  203. package/esm2015/lib/components/forms/text-input/text-input.component.js +1 -1
  204. package/esm2015/lib/components/forms/text-input/text-input.component.metadata.json +1 -1
  205. package/esm2015/lib/components/icon/icon.component.js +1 -1
  206. package/esm2015/lib/components/icon/icon.component.metadata.json +1 -1
  207. package/esm2015/lib/components/labelled-value/labelled-value.component.js +22 -0
  208. package/esm2015/lib/components/labelled-value/labelled-value.component.js.map +1 -0
  209. package/esm2015/lib/components/labelled-value/labelled-value.component.metadata.json +1 -0
  210. package/esm2015/lib/components/labelled-value/labelled-value.component.ngfactory.js.map +1 -0
  211. 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
  212. package/esm2015/lib/components/loading-container/loading-container.component.js +45 -0
  213. package/esm2015/lib/components/loading-container/loading-container.component.js.map +1 -0
  214. package/esm2015/lib/components/loading-container/loading-container.component.metadata.json +1 -0
  215. package/esm2015/lib/components/loading-container/loading-container.component.ngfactory.js.map +1 -0
  216. package/esm2015/lib/components/loading-container/loading-container.component.scss.shim.ngstyle.js.map +1 -0
  217. package/esm2015/lib/components/noop/noop.component.js +1 -1
  218. package/esm2015/lib/components/noop/noop.component.metadata.json +1 -1
  219. package/esm2015/lib/components/scroll-container/scroll-container.component.js +1 -1
  220. package/esm2015/lib/components/scroll-container/scroll-container.component.metadata.json +1 -1
  221. package/esm2015/lib/components/section-header/section-header.component.js +12 -5
  222. package/esm2015/lib/components/section-header/section-header.component.js.map +1 -1
  223. package/esm2015/lib/components/section-header/section-header.component.metadata.json +1 -1
  224. package/esm2015/lib/components/switch-case/switch-case.component.js +1 -1
  225. package/esm2015/lib/components/switch-case/switch-case.component.metadata.json +1 -1
  226. package/esm2015/lib/components/tables/abstract-table-model.js +34 -20
  227. package/esm2015/lib/components/tables/abstract-table-model.js.map +1 -1
  228. package/esm2015/lib/components/tables/abstract-table-model.metadata.json +1 -1
  229. package/esm2015/lib/components/tables/edit-session.js.map +1 -0
  230. package/esm2015/lib/components/tables/{table/edit-session.metadata.json → edit-session.metadata.json} +1 -1
  231. package/esm2015/lib/components/tables/table/cell-portal-ref.js.map +1 -1
  232. package/esm2015/lib/components/tables/table/cell-renderer.js.map +1 -1
  233. package/esm2015/lib/components/tables/table/column-model.js +35 -10
  234. package/esm2015/lib/components/tables/table/column-model.js.map +1 -1
  235. package/esm2015/lib/components/tables/table/column-model.metadata.json +1 -1
  236. package/esm2015/lib/components/tables/table/default-cell-renderer/default-cell-renderer.component.js.map +1 -1
  237. package/esm2015/lib/components/tables/table/default-cell-renderer/default-cell-renderer.component.metadata.json +1 -1
  238. package/esm2015/lib/components/tables/table/edit-row-controls/edit-row-controls.component.js +19 -12
  239. package/esm2015/lib/components/tables/table/edit-row-controls/edit-row-controls.component.js.map +1 -1
  240. package/esm2015/lib/components/tables/table/edit-row-controls/edit-row-controls.component.metadata.json +1 -1
  241. package/esm2015/lib/components/tables/table/paginator/paginator.component.js +1 -1
  242. package/esm2015/lib/components/tables/table/paginator/paginator.component.metadata.json +1 -1
  243. package/esm2015/lib/components/tables/table/table-cell-renderer/table-cell-renderer.component.js +1 -1
  244. package/esm2015/lib/components/tables/table/table-cell-renderer/table-cell-renderer.component.js.map +1 -1
  245. package/esm2015/lib/components/tables/table/table-header-cell-renderer/table-header-cell-renderer.component.js +1 -1
  246. package/esm2015/lib/components/tables/table/table-header-cell-renderer/table-header-cell-renderer.component.metadata.json +1 -1
  247. package/esm2015/lib/components/tables/table/table-row-menu/table-row-menu.component.js +0 -2
  248. package/esm2015/lib/components/tables/table/table-row-menu/table-row-menu.component.js.map +1 -1
  249. package/esm2015/lib/components/tables/table/table-row-menu/table-row-menu.component.metadata.json +1 -1
  250. package/esm2015/lib/components/tables/table/table.component.js +14 -13
  251. package/esm2015/lib/components/tables/table/table.component.js.map +1 -1
  252. package/esm2015/lib/components/tables/table/table.component.metadata.json +1 -1
  253. package/esm2015/lib/components/tables/table/text-search-predicate.js +2 -0
  254. package/esm2015/lib/components/tables/table/text-search-predicate.js.map +1 -0
  255. package/esm2015/lib/components/tables/table/text-search-predicate.metadata.json +1 -0
  256. package/esm2015/lib/components/tables/tree-table/flattened-tree-list-model.js +4 -4
  257. package/esm2015/lib/components/tables/tree-table/flattened-tree-list-model.js.map +1 -1
  258. package/esm2015/lib/components/tables/tree-table/flattened-tree-list-model.metadata.json +1 -1
  259. package/esm2015/lib/components/tables/tree-table/tree-inheritance-icon/tree-inheritance-icon.component.js +1 -1
  260. package/esm2015/lib/components/tables/tree-table/tree-inheritance-icon/tree-inheritance-icon.component.metadata.json +1 -1
  261. package/esm2015/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.js +21 -13
  262. package/esm2015/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.js.map +1 -1
  263. package/esm2015/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.metadata.json +1 -1
  264. package/esm2015/lib/components/tables/tree-table/tree-label-column-model.js +1 -1
  265. package/esm2015/lib/components/tables/tree-table/tree-label-column-model.js.map +1 -1
  266. package/esm2015/lib/components/tables/tree-table/tree-label-column-model.metadata.json +1 -1
  267. package/esm2015/lib/components/tables/tree-table/tree-table-component.js +1 -1
  268. package/esm2015/lib/components/tables/tree-table/tree-table-component.js.map +1 -1
  269. package/esm2015/lib/components/tables/tree-table/tree-table-component.metadata.json +1 -1
  270. package/esm2015/lib/components/tables/tree-table/tree-table-model.js +3 -2
  271. package/esm2015/lib/components/tables/tree-table/tree-table-model.js.map +1 -1
  272. package/esm2015/lib/components/tables/tree-table/tree-table-model.metadata.json +1 -1
  273. package/esm2015/lib/components/track-by.js +12 -0
  274. package/esm2015/lib/components/track-by.js.map +1 -1
  275. package/esm2015/lib/components/vertical-focus-container/vertical-focus-container.component.js +1 -1
  276. package/esm2015/lib/components/vertical-focus-container/vertical-focus-container.component.metadata.json +1 -1
  277. package/esm2015/lib/directives/command.directive.js +1 -1
  278. package/esm2015/lib/directives/command.directive.js.map +1 -1
  279. package/esm2015/lib/directives/directives.module.ngfactory.js.map +1 -1
  280. package/esm2015/lib/interaction/activity.js +1 -1
  281. package/esm2015/lib/interaction/activity.js.map +1 -1
  282. package/esm2015/lib/interaction/components/activity-actions/activity-actions.component.js +17 -11
  283. package/esm2015/lib/interaction/components/activity-actions/activity-actions.component.js.map +1 -1
  284. package/esm2015/lib/interaction/components/activity-actions/activity-actions.component.metadata.json +1 -1
  285. package/esm2015/lib/interaction/components/activity-container/activity-container.component.js +3 -3
  286. package/esm2015/lib/interaction/components/activity-container/activity-container.component.js.map +1 -1
  287. package/esm2015/lib/interaction/components/activity-container/activity-container.component.metadata.json +1 -1
  288. package/esm2015/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.js +1 -1
  289. package/esm2015/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.metadata.json +1 -1
  290. package/esm2015/lib/interaction/components/activity-title/activity-title.component.js +1 -1
  291. package/esm2015/lib/interaction/components/activity-title/activity-title.component.metadata.json +1 -1
  292. package/esm2015/lib/interaction/components/activity-triggers/abstract-activity-trigger.component.js +4 -0
  293. package/esm2015/lib/interaction/components/activity-triggers/abstract-activity-trigger.component.js.map +1 -1
  294. package/esm2015/lib/interaction/components/activity-triggers/abstract-activity-trigger.component.metadata.json +1 -1
  295. package/esm2015/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.js +5 -2
  296. package/esm2015/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.js.map +1 -1
  297. package/esm2015/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.metadata.json +1 -1
  298. package/esm2015/lib/interaction/components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component.js +5 -2
  299. package/esm2015/lib/interaction/components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component.js.map +1 -1
  300. package/esm2015/lib/interaction/components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component.metadata.json +1 -1
  301. package/esm2015/lib/interaction/components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component.js +5 -2
  302. package/esm2015/lib/interaction/components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component.js.map +1 -1
  303. package/esm2015/lib/interaction/components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component.metadata.json +1 -1
  304. package/esm2015/lib/interaction/components/add-card-activity/add-card-activity.component.js +77 -0
  305. package/esm2015/lib/interaction/components/add-card-activity/add-card-activity.component.js.map +1 -0
  306. package/esm2015/lib/interaction/components/add-card-activity/add-card-activity.component.metadata.json +1 -0
  307. package/esm2015/lib/interaction/components/add-card-activity/add-card-activity.component.ngfactory.js.map +1 -0
  308. package/esm2015/lib/interaction/components/add-card-activity/add-card-activity.component.scss.shim.ngstyle.js.map +1 -0
  309. package/esm2015/lib/interaction/components/add-item-interaction-context/add-item-interaction-context.component.js +1 -1
  310. package/esm2015/lib/interaction/components/add-item-interaction-context/add-item-interaction-context.component.metadata.json +1 -1
  311. package/esm2015/lib/interaction/components/alert-dialog/alert-dialog.component.js +1 -1
  312. package/esm2015/lib/interaction/components/alert-dialog/alert-dialog.component.metadata.json +1 -1
  313. package/esm2015/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.js +1 -1
  314. package/esm2015/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.metadata.json +1 -1
  315. package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +1 -1
  316. package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.metadata.json +1 -1
  317. package/esm2015/lib/interaction/components/editors/edit-context.js +2 -0
  318. package/esm2015/lib/interaction/components/editors/edit-context.js.map +1 -0
  319. package/esm2015/lib/interaction/components/editors/edit-context.metadata.json +1 -0
  320. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-editor-model.js +50 -0
  321. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-editor-model.js.map +1 -0
  322. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-editor-model.metadata.json +1 -0
  323. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.js +161 -0
  324. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.js.map +1 -0
  325. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.metadata.json +1 -0
  326. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.ngfactory.js.map +1 -0
  327. package/esm2015/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.js +7 -3
  328. package/esm2015/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.js.map +1 -1
  329. package/esm2015/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.metadata.json +1 -1
  330. package/esm2015/lib/interaction/components/input-activities/input-activity.js +95 -0
  331. package/esm2015/lib/interaction/components/input-activities/input-activity.js.map +1 -0
  332. package/esm2015/lib/interaction/components/input-activities/input-activity.metadata.json +1 -0
  333. package/esm2015/lib/interaction/components/input-activities/input-activity.ngfactory.js.map +1 -0
  334. package/esm2015/lib/interaction/components/input-activities/select-input-activity.js +5 -3
  335. package/esm2015/lib/interaction/components/input-activities/select-input-activity.js.map +1 -1
  336. package/esm2015/lib/interaction/components/input-activities/select-input-activity.metadata.json +1 -1
  337. package/esm2015/lib/interaction/components/input-activities/string-input-activity.js +6 -4
  338. package/esm2015/lib/interaction/components/input-activities/string-input-activity.js.map +1 -1
  339. package/esm2015/lib/interaction/components/input-activities/string-input-activity.metadata.json +1 -1
  340. package/esm2015/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.js +2 -1
  341. package/esm2015/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.js.map +1 -1
  342. package/esm2015/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.metadata.json +1 -1
  343. package/esm2015/lib/interaction/exports.js +5 -3
  344. package/esm2015/lib/interaction/exports.js.map +1 -1
  345. package/esm2015/lib/interaction/exports.metadata.json +1 -1
  346. package/esm2015/lib/interaction/interaction.module.js +19 -5
  347. package/esm2015/lib/interaction/interaction.module.js.map +1 -1
  348. package/esm2015/lib/interaction/interaction.module.metadata.json +1 -1
  349. package/esm2015/lib/interaction/interaction.module.ngfactory.js.map +1 -1
  350. package/esm2015/lib/interaction/services/interaction.service.js +1 -1
  351. package/esm2015/lib/interaction/services/interaction.service.js.map +1 -1
  352. package/esm2015/lib/place/components/abstract-place-navigation.component.js +1 -1
  353. package/esm2015/lib/place/components/abstract-place-navigation.component.js.map +1 -1
  354. package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.js +1 -1
  355. package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.metadata.json +1 -1
  356. package/esm2015/lib/place/components/not-authorised-notice/not-authorised-notice.component.js +1 -1
  357. package/esm2015/lib/place/components/not-authorised-notice/not-authorised-notice.component.metadata.json +1 -1
  358. package/esm2015/lib/place/components/place-outlet/place-outlet.component.js +1 -1
  359. package/esm2015/lib/place/components/place-outlet/place-outlet.component.metadata.json +1 -1
  360. package/esm2015/lib/place/components/side-place-navigation/side-place-navigation.component.js +1 -1
  361. package/esm2015/lib/place/components/side-place-navigation/side-place-navigation.component.metadata.json +1 -1
  362. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +1 -1
  363. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.metadata.json +1 -1
  364. package/esm2015/lib/place/guards/consolidated-param-map.js +2 -1
  365. package/esm2015/lib/place/guards/consolidated-param-map.js.map +1 -1
  366. package/esm2015/lib/place/guards/consolidated-param-map.metadata.json +1 -1
  367. package/esm2015/lib/place/guards/place.guard.js +2 -1
  368. package/esm2015/lib/place/guards/place.guard.js.map +1 -1
  369. package/esm2015/lib/place/place-component.js +31 -4
  370. package/esm2015/lib/place/place-component.js.map +1 -1
  371. package/esm2015/lib/place/place-component.metadata.json +1 -1
  372. package/esm2015/lib/place/place-router.js +11 -14
  373. package/esm2015/lib/place/place-router.js.map +1 -1
  374. package/esm2015/lib/place/place-router.metadata.json +1 -1
  375. package/esm2015/lib/place/place.module.ngfactory.js.map +1 -1
  376. package/esm2015/lib/place/url-snapshot.js +1 -7
  377. package/esm2015/lib/place/url-snapshot.js.map +1 -1
  378. package/esm2015/lib/place/url-snapshot.metadata.json +1 -1
  379. package/esm2015/lib/place/visit.js +5 -1
  380. package/esm2015/lib/place/visit.js.map +1 -1
  381. package/esm2015/lib/place/visit.metadata.json +1 -1
  382. package/fesm2015/coolon-angular-ui-powerups-cypress.js +550 -239
  383. package/fesm2015/coolon-angular-ui-powerups-cypress.js.map +1 -1
  384. package/fesm2015/coolon-angular-ui-powerups.js +908 -268
  385. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  386. package/lib/components/cards/abstract-card-container.component.d.ts +11 -0
  387. package/lib/components/{card-container → cards/card-container}/card-container.component.d.ts +30 -9
  388. package/lib/components/cards/card-stack/card-stack.component.d.ts +65 -0
  389. package/lib/components/commands/command-face/command-face.component.d.ts +1 -0
  390. package/lib/components/exports.d.ts +7 -4
  391. package/lib/components/labelled-value/labelled-value.component.d.ts +7 -0
  392. package/lib/components/loading-container/loading-container.component.d.ts +11 -0
  393. package/lib/components/section-header/section-header.component.d.ts +5 -2
  394. package/lib/components/tables/abstract-table-model.d.ts +10 -7
  395. package/lib/components/tables/{table/edit-session.d.ts → edit-session.d.ts} +3 -3
  396. package/lib/components/tables/table/cell-portal-ref.d.ts +1 -1
  397. package/lib/components/tables/table/cell-renderer.d.ts +2 -0
  398. package/lib/components/tables/table/column-model.d.ts +14 -5
  399. package/lib/components/tables/table/default-cell-renderer/default-cell-renderer.component.d.ts +2 -1
  400. package/lib/components/tables/table/edit-row-controls/edit-row-controls.component.d.ts +4 -2
  401. package/lib/components/tables/table/table-cell-renderer/table-cell-renderer.component.d.ts +1 -1
  402. package/lib/components/tables/table/table-row-menu/table-row-menu.component.d.ts +2 -3
  403. package/lib/components/tables/table/table.component.d.ts +13 -12
  404. package/lib/components/tables/table/text-search-predicate.d.ts +1 -0
  405. package/lib/components/tables/tree-table/flattened-tree-list-model.d.ts +0 -1
  406. package/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.d.ts +2 -3
  407. package/lib/components/tables/tree-table/tree-label-column-model.d.ts +2 -3
  408. package/lib/components/tables/tree-table/tree-table-component.d.ts +1 -1
  409. package/lib/components/tables/tree-table/tree-table-model.d.ts +4 -5
  410. package/lib/components/track-by.d.ts +9 -0
  411. package/lib/interaction/components/activity-actions/activity-actions.component.d.ts +14 -3
  412. package/lib/interaction/components/activity-triggers/abstract-activity-trigger.component.d.ts +1 -1
  413. package/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.d.ts +2 -1
  414. package/lib/interaction/components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component.d.ts +2 -1
  415. package/lib/interaction/components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component.d.ts +2 -1
  416. package/lib/interaction/components/add-card-activity/add-card-activity.component.d.ts +39 -0
  417. package/lib/interaction/components/editors/edit-context.d.ts +3 -0
  418. package/lib/interaction/components/editors/inline-string-editor/inline-editor-model.d.ts +24 -0
  419. package/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.d.ts +57 -0
  420. package/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.d.ts +1 -0
  421. package/lib/interaction/components/input-activities/input-activity.d.ts +41 -0
  422. package/lib/interaction/components/input-activities/select-input-activity.d.ts +11 -3
  423. package/lib/interaction/components/input-activities/string-input-activity.d.ts +6 -2
  424. package/lib/interaction/exports.d.ts +5 -3
  425. package/lib/place/place-component.d.ts +6 -1
  426. package/lib/place/place-router.d.ts +2 -2
  427. package/package.json +16 -16
  428. package/schematics/activity/index.js +1 -1
  429. package/schematics/activity/index.js.map +1 -1
  430. package/schematics/activity/templates/component/__name@dasherize__.component.html.template +1 -1
  431. package/schematics/activity/templates/component/__name@dasherize__.component.ts.template +5 -3
  432. package/schematics/aup-i18n/index.js +1 -1
  433. package/schematics/aup-i18n/index.js.map +1 -1
  434. package/schematics/component/index.js +1 -1
  435. package/schematics/component/index.js.map +1 -1
  436. package/schematics/component/templates/component/__name@dasherize__.component.ts.template +1 -1
  437. package/schematics/place-routes/place-class-scanner.js +3 -1
  438. package/schematics/place-routes/place-class-scanner.js.map +1 -1
  439. package/schematics/utils/build-context.d.ts +6 -3
  440. package/schematics/utils/build-context.js +3 -3
  441. package/schematics/utils/build-context.js.map +1 -1
  442. package/schematics/utils/workspace.d.ts +1 -0
  443. package/schematics/utils/workspace.js +11 -3
  444. package/schematics/utils/workspace.js.map +1 -1
  445. package/assets/activities.scss +0 -70
  446. package/cypress/components/aup-more-menu.d.ts +0 -4
  447. package/cypress/components/aup-popup-menu.d.ts +0 -7
  448. package/cypress/components/button-mixin.d.ts +0 -19
  449. package/cypress/section.d.ts +0 -52
  450. package/esm2015/cypress/components/aup-more-menu.js +0 -7
  451. package/esm2015/cypress/components/aup-more-menu.js.map +0 -1
  452. package/esm2015/cypress/components/aup-more-menu.metadata.json +0 -1
  453. package/esm2015/cypress/components/aup-popup-menu.js +0 -19
  454. package/esm2015/cypress/components/aup-popup-menu.js.map +0 -1
  455. package/esm2015/cypress/components/aup-popup-menu.metadata.json +0 -1
  456. package/esm2015/cypress/components/button-mixin.js +0 -15
  457. package/esm2015/cypress/components/button-mixin.js.map +0 -1
  458. package/esm2015/cypress/components/button-mixin.metadata.json +0 -1
  459. package/esm2015/cypress/section.js +0 -72
  460. package/esm2015/cypress/section.js.map +0 -1
  461. package/esm2015/cypress/section.metadata.json +0 -1
  462. package/esm2015/lib/components/card-container/card-container.component.js +0 -84
  463. package/esm2015/lib/components/card-container/card-container.component.js.map +0 -1
  464. package/esm2015/lib/components/card-container/card-container.component.metadata.json +0 -1
  465. package/esm2015/lib/components/card-container/card-container.component.ngfactory.js.map +0 -1
  466. package/esm2015/lib/components/tables/table/edit-session.js.map +0 -1
  467. package/esm2015/lib/components/tables/tree-table/tree-node.js +0 -2
  468. package/esm2015/lib/components/tables/tree-table/tree-node.js.map +0 -1
  469. package/esm2015/lib/components/tables/tree-table/tree-node.metadata.json +0 -1
  470. package/esm2015/lib/components/tables/tree-table/visitable.class.js +0 -26
  471. package/esm2015/lib/components/tables/tree-table/visitable.class.js.map +0 -1
  472. package/esm2015/lib/components/tables/tree-table/visitable.class.metadata.json +0 -1
  473. package/esm2015/lib/interaction/components/input-activities/abstract-input-activity.js +0 -43
  474. package/esm2015/lib/interaction/components/input-activities/abstract-input-activity.js.map +0 -1
  475. package/esm2015/lib/interaction/components/input-activities/abstract-input-activity.metadata.json +0 -1
  476. package/esm2015/lib/interaction/components/input-activities/abstract-input-activity.ngfactory.js.map +0 -1
  477. package/esm2015/lib/interaction/components/input-activities/input-activity-data.js +0 -2
  478. package/esm2015/lib/interaction/components/input-activities/input-activity-data.js.map +0 -1
  479. package/esm2015/lib/interaction/components/input-activities/input-activity-data.metadata.json +0 -1
  480. package/esm2015/lib/interaction/components/input-activities/select-input-activity-data.js +0 -2
  481. package/esm2015/lib/interaction/components/input-activities/select-input-activity-data.js.map +0 -1
  482. package/esm2015/lib/interaction/components/input-activities/select-input-activity-data.metadata.json +0 -1
  483. package/lib/components/tables/tree-table/tree-node.d.ts +0 -3
  484. package/lib/components/tables/tree-table/visitable.class.d.ts +0 -22
  485. package/lib/interaction/components/input-activities/abstract-input-activity.d.ts +0 -12
  486. package/lib/interaction/components/input-activities/input-activity-data.d.ts +0 -11
  487. package/lib/interaction/components/input-activities/select-input-activity-data.d.ts +0 -8
  488. /package/esm2015/lib/components/tables/{table/edit-session.js → edit-session.js} +0 -0
@@ -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);
@@ -353,7 +357,7 @@
353
357
  function CommandDirective(elementRef, matButton, matMenuItem) {
354
358
  var _this = _super.call(this) || this;
355
359
  _this.elementRef = elementRef;
356
- _this._commandEnabled = new pectin.DelegatingValueModel().withDefault(false);
360
+ _this._commandEnabled = _this.registerDisposable(new pectin.DelegatingValueModel().withDefault(false));
357
361
  _this._commandParameterProvided = false;
358
362
  // Material buttons and menu items don't respond to the disabled binding so we
359
363
  // need to inject them from our host element and handle them manually.
@@ -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{z-index:10;z-index:var(--aup-busy-overlay-z-index, 10);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 () {
@@ -1015,6 +1177,13 @@
1015
1177
  _this.activeColor = activeFace.pluck("color");
1016
1178
  return _this;
1017
1179
  }
1180
+ Object.defineProperty(CommandFaceComponent.prototype, "face", {
1181
+ set: function (face) {
1182
+ this.facesModel.value = [face];
1183
+ },
1184
+ enumerable: false,
1185
+ configurable: true
1186
+ });
1018
1187
  Object.defineProperty(CommandFaceComponent.prototype, "requiresMissingIconInLayout", {
1019
1188
  get: function () {
1020
1189
  return this.includeMissingIconInLayout && !this.activeIcon.value;
@@ -1047,12 +1216,13 @@
1047
1216
  selector: 'aup-command-face',
1048
1217
  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
1218
  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}"]
1219
+ 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
1220
  },] }
1052
1221
  ];
1053
1222
  CommandFaceComponent.ctorParameters = function () { return []; };
1054
1223
  CommandFaceComponent.propDecorators = {
1055
1224
  _rawFaces: [{ type: i0.Input, args: ['faces',] }],
1225
+ face: [{ type: i0.Input }],
1056
1226
  ignoreIcon: [{ type: i0.Input }],
1057
1227
  ignoreText: [{ type: i0.Input }],
1058
1228
  includeMissingIconInLayout: [{ type: i0.Input }],
@@ -1125,7 +1295,7 @@
1125
1295
  _this.colorModel = chain(_this.activeFace).map(function (f) { return exports.CommandFace.getColorOf(f); });
1126
1296
  _this.tooltipModel = chain(_this.activeFace).map(function (f) { return exports.CommandFace.getTooltipOf(f); });
1127
1297
  _this.iconOnly = _this.faces.select(function (face) {
1128
- return ___default['default'].isEmpty(exports.CommandFace.getTextOf(face)) && !___default['default'].isEmpty(exports.CommandFace.getIconOf(face));
1298
+ return ___default["default"].isEmpty(exports.CommandFace.getTextOf(face)) && !___default["default"].isEmpty(exports.CommandFace.getIconOf(face));
1129
1299
  }).count().equals(_this.faces.count());
1130
1300
  return _this;
1131
1301
  }
@@ -1146,7 +1316,7 @@
1146
1316
  { type: i0.Component, args: [{
1147
1317
  selector: 'aup-command',
1148
1318
  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}"]
1319
+ 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
1320
  },] }
1151
1321
  ];
1152
1322
  CommandComponent.ctorParameters = function () { return [
@@ -1210,7 +1380,7 @@
1210
1380
  function AbstractPopupMenuComponent(element, parent) {
1211
1381
  var _this = _super.call(this, element, parent) || this;
1212
1382
  _this._unorderedChildren = new pectin.MutableListModel();
1213
- _this.faceModelDelegate = new pectin.DelegatingValueModel();
1383
+ _this.faceModelDelegate = _this.registerDisposable(new pectin.DelegatingValueModel());
1214
1384
  _this.xPosition = 'after';
1215
1385
  _this.yPosition = 'below';
1216
1386
  var _c = pectin.Dsl.disposeWith(_this), chain = _c.chain, valueOf = _c.valueOf, before = _c.before, when = _c.when, after = _c.after, observe = _c.observe, switchOn = _c.switchOn;
@@ -1335,10 +1505,22 @@
1335
1505
  exports.TrackBy = void 0;
1336
1506
  (function (TrackBy) {
1337
1507
  TrackBy.byIndex = function (index, item) { return index; };
1508
+ /**
1509
+ * @deprecated use #track(MyType).by("property") instead.
1510
+ * @param property
1511
+ */
1338
1512
  function trackByProperty(property) {
1339
1513
  return function (index, item) { return item[property]; };
1340
1514
  }
1341
1515
  TrackBy.trackByProperty = trackByProperty;
1516
+ function track(type) {
1517
+ return {
1518
+ by: function (property) {
1519
+ return function (index, item) { return item[property]; };
1520
+ }
1521
+ };
1522
+ }
1523
+ TrackBy.track = track;
1342
1524
  })(exports.TrackBy || (exports.TrackBy = {}));
1343
1525
 
1344
1526
  exports.CommandContainer = /** @class */ (function (_super) {
@@ -1403,7 +1585,7 @@
1403
1585
  selector: 'aup-tool-bar',
1404
1586
  template: '<div class="toolbar-content"><ng-content></ng-content></div>',
1405
1587
  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}"]
1588
+ 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
1589
  },] }
1408
1590
  ];
1409
1591
  ToolBarComponent.ctorParameters = function () { return []; };
@@ -1429,8 +1611,7 @@
1429
1611
  { type: i0.Component, args: [{
1430
1612
  selector: 'aup-separator',
1431
1613
  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 }"]
1614
+ styles: [":host {\n }", ":host(.horizontal-container) {\n display: inline-flex;\n flex-direction: row;\n align-items: stretch;\n }"]
1434
1615
  },] }
1435
1616
  ];
1436
1617
  SeparatorComponent.ctorParameters = function () { return [
@@ -1446,7 +1627,7 @@
1446
1627
  __extends(PopupMenuRendererComponent, _super);
1447
1628
  function PopupMenuRendererComponent() {
1448
1629
  var _this = _super.call(this) || this;
1449
- _this._childList = new pectin.DelegatingListModel();
1630
+ _this._childList = _this.registerDisposable(new pectin.DelegatingListModel());
1450
1631
  _this.commandFired = new i0.EventEmitter();
1451
1632
  _this.TrackBy = exports.TrackBy;
1452
1633
  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;
@@ -1587,7 +1768,7 @@
1587
1768
  { type: i0.Component, args: [{
1588
1769
  selector: 'aup-empty-state',
1589
1770
  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}"]
1771
+ 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
1772
  },] }
1592
1773
  ];
1593
1774
  EmptyStateComponent.ctorParameters = function () { return []; };
@@ -1618,7 +1799,7 @@
1618
1799
  providers: [
1619
1800
  { provide: pectin.FocusManager }
1620
1801
  ],
1621
- styles: [":host{display:block}"]
1802
+ styles: [":host{display:block}\n"]
1622
1803
  },] }
1623
1804
  ];
1624
1805
  FocusContainerComponent.ctorParameters = function () { return [
@@ -1685,6 +1866,7 @@
1685
1866
  function AbstractInputComponent() {
1686
1867
  var _this = _super.call(this) || this;
1687
1868
  _this.onValueEditedListeners = new pectin.EventListenerList();
1869
+ _this.userFloatLabel = 'always'; // TODO: make this an injectable default
1688
1870
  _this.dense = false;
1689
1871
  // TODO: fix this.
1690
1872
  // tslint:disable-next-line:no-output-native
@@ -1966,10 +2148,10 @@
1966
2148
  _this.optionLabelFormat = function (option) { return (option && _this.optionLabel) ? option[_this.optionLabel] : option; };
1967
2149
  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
2150
  var lowerCaseFilterValue = chain(_this.filterValue)
1969
- .map(function (v) { return ___default['default'].isString(v) ? v.toLowerCase() : ''; });
2151
+ .map(function (v) { return ___default["default"].isString(v) ? v.toLowerCase() : ''; });
1970
2152
  _this.filteredOptions = chain(_this.optionsModel)
1971
2153
  .select(function (option) {
1972
- return ___default['default'].isEmpty(_this.filterValue.value) || _this.optionLabelFormat(option).toString().toLowerCase().includes(lowerCaseFilterValue.value);
2154
+ return ___default["default"].isEmpty(_this.filterValue.value) || _this.optionLabelFormat(option).toString().toLowerCase().includes(lowerCaseFilterValue.value);
1973
2155
  }, { dependsOn: lowerCaseFilterValue });
1974
2156
  return _this;
1975
2157
  }
@@ -1990,7 +2172,7 @@
1990
2172
  { type: i0.Component, args: [{
1991
2173
  selector: 'aup-autocomplete-input',
1992
2174
  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%}"]
2175
+ styles: [":host{display:inline-block}mat-form-field{width:100%}\n"]
1994
2176
  },] }
1995
2177
  ];
1996
2178
  AutocompleteInputComponent.ctorParameters = function () { return []; };
@@ -2029,7 +2211,7 @@
2029
2211
  { type: i0.Component, args: [{
2030
2212
  selector: 'aup-checkbox-input',
2031
2213
  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}"]
2214
+ 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
2215
  },] }
2034
2216
  ];
2035
2217
  CheckboxInputComponent.ctorParameters = function () { return []; };
@@ -2060,7 +2242,7 @@
2060
2242
  { type: i0.Component, args: [{
2061
2243
  selector: 'aup-multiple-select-input',
2062
2244
  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%}"]
2245
+ styles: [":host{display:inline-block}mat-form-field{width:100%}\n"]
2064
2246
  },] }
2065
2247
  ];
2066
2248
  MultipleSelectInputComponent.ctorParameters = function () { return []; };
@@ -2150,7 +2332,7 @@
2150
2332
  { type: i0.Component, args: [{
2151
2333
  selector: 'aup-select-input',
2152
2334
  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%}"]
2335
+ styles: [":host{display:inline-block}mat-form-field{width:100%}\n"]
2154
2336
  },] }
2155
2337
  ];
2156
2338
  SelectInputComponent.ctorParameters = function () { return []; };
@@ -2191,7 +2373,7 @@
2191
2373
  { type: i0.Component, args: [{
2192
2374
  selector: 'aup-string-input',
2193
2375
  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}"]
2376
+ styles: ["button[disabled]{visibility:hidden}\n"]
2195
2377
  },] }
2196
2378
  ];
2197
2379
  StringInputComponent.ctorParameters = function () { return []; };
@@ -2228,7 +2410,7 @@
2228
2410
  { type: i0.Component, args: [{
2229
2411
  selector: 'aup-text-input',
2230
2412
  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}"]
2413
+ styles: ["button[disabled]{visibility:hidden}textarea{overflow:auto}\n"]
2232
2414
  },] }
2233
2415
  ];
2234
2416
  TextInputComponent.ctorParameters = function () { return []; };
@@ -2272,7 +2454,7 @@
2272
2454
  { type: i0.Component, args: [{
2273
2455
  selector: 'aup-icon',
2274
2456
  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}"]
2457
+ 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
2458
  },] }
2277
2459
  ];
2278
2460
  exports.IconComponent.propDecorators = {
@@ -2286,6 +2468,54 @@
2286
2468
  });
2287
2469
  })(exports.IconComponent || (exports.IconComponent = {}));
2288
2470
 
2471
+ var LoadingContainerComponent = /** @class */ (function (_super) {
2472
+ __extends(LoadingContainerComponent, _super);
2473
+ function LoadingContainerComponent() {
2474
+ return _super.call(this) || this;
2475
+ }
2476
+ Object.defineProperty(LoadingContainerComponent.prototype, "state", {
2477
+ get: function () {
2478
+ return this.loadingModel.value ? "loaded" : "loading";
2479
+ },
2480
+ enumerable: false,
2481
+ configurable: true
2482
+ });
2483
+ LoadingContainerComponent.prototype.ngOnInit = function () {
2484
+ };
2485
+ return LoadingContainerComponent;
2486
+ }(pectin.GarbageCollector));
2487
+ LoadingContainerComponent.decorators = [
2488
+ { type: i0.Component, args: [{
2489
+ selector: 'aup-loading-container',
2490
+ 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",
2491
+ 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"]
2492
+ },] }
2493
+ ];
2494
+ LoadingContainerComponent.ctorParameters = function () { return []; };
2495
+ LoadingContainerComponent.propDecorators = {
2496
+ loadingModel: [{ type: i0.Input }],
2497
+ loading: [{ type: i0.Input }],
2498
+ messageModel: [{ type: i0.Input }],
2499
+ message: [{ type: i0.Input }],
2500
+ state: [{ type: i0.HostBinding, args: ["class",] }]
2501
+ };
2502
+ __decorate([
2503
+ pectin.TrackExternal(),
2504
+ __metadata("design:type", pectin.ValueModel)
2505
+ ], LoadingContainerComponent.prototype, "loadingModel", void 0);
2506
+ __decorate([
2507
+ pectin.StoreInValueModel("loadingModel"),
2508
+ __metadata("design:type", Boolean)
2509
+ ], LoadingContainerComponent.prototype, "loading", void 0);
2510
+ __decorate([
2511
+ pectin.TrackExternal(),
2512
+ __metadata("design:type", pectin.ValueModel)
2513
+ ], LoadingContainerComponent.prototype, "messageModel", void 0);
2514
+ __decorate([
2515
+ pectin.StoreInValueModel("messageModel"),
2516
+ __metadata("design:type", String)
2517
+ ], LoadingContainerComponent.prototype, "message", void 0);
2518
+
2289
2519
  var NoopComponent = /** @class */ (function () {
2290
2520
  function NoopComponent() {
2291
2521
  }
@@ -2295,7 +2525,7 @@
2295
2525
  { type: i0.Component, args: [{
2296
2526
  selector: 'aup-noop',
2297
2527
  template: "",
2298
- styles: [":host{display:block}"]
2528
+ styles: [":host{display:block}\n"]
2299
2529
  },] }
2300
2530
  ];
2301
2531
  NoopComponent.ctorParameters = function () { return []; };
@@ -2311,29 +2541,37 @@
2311
2541
  { type: i0.Component, args: [{
2312
2542
  selector: 'aup-scroll-container',
2313
2543
  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}"]
2544
+ 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
2545
  },] }
2316
2546
  ];
2317
2547
  ScrollContainerComponent.ctorParameters = function () { return []; };
2318
2548
 
2319
- var SectionHeaderComponent = /** @class */ (function () {
2549
+ var SectionHeaderComponent = /** @class */ (function (_super) {
2550
+ __extends(SectionHeaderComponent, _super);
2320
2551
  function SectionHeaderComponent() {
2321
- this.underline = false;
2552
+ var _this = _super.call(this) || this;
2553
+ // readonly i18n = I18nMarsUi.components.layout.header;
2554
+ _this.size = 'medium';
2555
+ _this.borderTop = false;
2556
+ _this.borderBottom = false;
2557
+ return _this;
2322
2558
  }
2323
2559
  SectionHeaderComponent.prototype.ngOnInit = function () {
2324
2560
  };
2325
2561
  return SectionHeaderComponent;
2326
- }());
2562
+ }(DisposableComponent));
2327
2563
  SectionHeaderComponent.decorators = [
2328
2564
  { type: i0.Component, args: [{
2329
2565
  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)}"]
2566
+ 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",
2567
+ 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
2568
  },] }
2333
2569
  ];
2334
2570
  SectionHeaderComponent.ctorParameters = function () { return []; };
2335
2571
  SectionHeaderComponent.propDecorators = {
2336
- underline: [{ type: i0.Input }, { type: i0.HostBinding, args: ['class.underline',] }]
2572
+ size: [{ type: i0.Input }, { type: i0.HostBinding, args: ['class',] }],
2573
+ borderTop: [{ type: i0.Input }, { type: i0.HostBinding, args: ['class.border-top',] }],
2574
+ borderBottom: [{ type: i0.Input }, { type: i0.HostBinding, args: ['class.border-bottom',] }]
2337
2575
  };
2338
2576
 
2339
2577
  var SwitchCaseOption = /** @class */ (function () {
@@ -2454,7 +2692,7 @@
2454
2692
  { type: i0.Component, args: [{
2455
2693
  selector: 'aup-switch-case',
2456
2694
  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}"]
2695
+ styles: [":host{display:flex;flex-direction:column;align-items:stretch}mat-tab-group{flex:1}\n"]
2458
2696
  },] }
2459
2697
  ];
2460
2698
  SwitchCaseComponent.ctorParameters = function () { return [
@@ -2536,7 +2774,7 @@
2536
2774
  ResizeAwareComponent.prototype.ngAfterViewInit = function () {
2537
2775
  var _this = this;
2538
2776
  var element = this.elementRef.nativeElement;
2539
- var ro = new ResizeObserver__default['default'](function (entries, observer) {
2777
+ var ro = new ResizeObserver__default["default"](function (entries, observer) {
2540
2778
  _this.ngZone.run(function () { return _this._updateBounds(); });
2541
2779
  });
2542
2780
  ro.observe(element);
@@ -2737,19 +2975,38 @@
2737
2975
  __extends(EditRowControls, _super);
2738
2976
  function EditRowControls() {
2739
2977
  var _this = _super.call(this) || this;
2740
- _this.saveCommand = pectin.Command.create(function () {
2741
- _this.editSession.saveCommand.execute(_this.editSession.form)
2742
- .then(function (finished) {
2743
- if (finished) {
2744
- _this.editSession.dispose();
2978
+ _this.saveCommand = pectin.Command.create(function () { return __awaiter(_this, void 0, void 0, function () {
2979
+ var finished;
2980
+ return __generator(this, function (_b) {
2981
+ switch (_b.label) {
2982
+ case 0: return [4 /*yield*/, this.editSession.saveCommand.execute()];
2983
+ case 1:
2984
+ finished = _b.sent();
2985
+ if (finished) {
2986
+ this.editSession.dispose();
2987
+ }
2988
+ return [2 /*return*/];
2745
2989
  }
2746
2990
  });
2747
- });
2991
+ }); });
2748
2992
  _this.cancelCommand = pectin.Command.create(function () {
2749
2993
  _this.editSession.dispose();
2750
- });
2994
+ }).disableWhile(_this.saveCommand.busy);
2751
2995
  return _this;
2752
2996
  }
2997
+ Object.defineProperty(EditRowControls.prototype, "editSession", {
2998
+ get: function () {
2999
+ return this._session;
3000
+ },
3001
+ set: function (session) {
3002
+ if (session) {
3003
+ session.form.disableWhile(this.saveCommand.busy);
3004
+ }
3005
+ this._session = session;
3006
+ },
3007
+ enumerable: false,
3008
+ configurable: true
3009
+ });
2753
3010
  EditRowControls.prototype.ngOnInit = function () {
2754
3011
  };
2755
3012
  Object.defineProperty(EditRowControls.prototype, "form", {
@@ -2766,7 +3023,7 @@
2766
3023
  { type: i0.Component, args: [{
2767
3024
  selector: 'aup-row-editor-controls',
2768
3025
  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}"]
3026
+ styles: [":host{display:block;width:80px}.edit-button{visibility:hidden}:host-context(tr:hover) .edit-button{visibility:visible}\n"]
2770
3027
  },] }
2771
3028
  ];
2772
3029
  EditRowControls.ctorParameters = function () { return []; };
@@ -2843,16 +3100,23 @@
2843
3100
  };
2844
3101
  var ɵ0 = noop;
2845
3102
  var CELL_RENDERER_COMPONENT_ROW_CACHE = Symbol('aup-cell-renderer:row-data-cache');
2846
- var ColumnModel = /** @class */ (function () {
3103
+ var DEFAULT_TEXT_SEARCH_PREDICATE = function (row, text) { return false; };
3104
+ var ɵ1 = DEFAULT_TEXT_SEARCH_PREDICATE;
3105
+ var ColumnModel = /** @class */ (function (_super) {
3106
+ __extends(ColumnModel, _super);
2847
3107
  function ColumnModel(columnId, textPropertiesProvider) {
2848
- this.columnId = columnId;
2849
- this.textPropertiesProvider = textPropertiesProvider;
2850
- this._enableRowSelection = true;
2851
- this._flex = false;
2852
- this._defaultVisibility = new pectin.DelegatingValueModel().withDefault(true);
2853
- this._visible = new pectin.DelegatingValueModel().withDefault(this._defaultVisibility);
2854
- this.installHeaderRenderer();
2855
- this.dasherisedColumnId = typescriptUtilities.Stringy.from(columnId).dasherize().toString();
3108
+ var _this = _super.call(this) || this;
3109
+ _this.columnId = columnId;
3110
+ _this.textPropertiesProvider = textPropertiesProvider;
3111
+ _this._enableRowSelection = true;
3112
+ _this._flex = false;
3113
+ _this._defaultVisibility = _this.registerDisposable(new pectin.DelegatingValueModel().withDefault(true));
3114
+ _this._visible = _this.registerDisposable(new pectin.DelegatingValueModel().withDefault(_this._defaultVisibility));
3115
+ _this._columnModelTextSearchPredicate = undefined;
3116
+ _this._cellRendererTextSearchPredicate = undefined;
3117
+ _this.installHeaderRenderer();
3118
+ _this.dasherisedColumnId = typescriptUtilities.Stringy.from(columnId).dasherize().toString();
3119
+ return _this;
2856
3120
  }
2857
3121
  ColumnModel.prototype.installHeaderRenderer = function () {
2858
3122
  this.cellHeaderRenderer(DefaultHeaderCellRendererComponent, function (component, column) {
@@ -2883,6 +3147,21 @@
2883
3147
  ColumnModel.prototype.getDefaultHeaderText = function () {
2884
3148
  return this.columnId;
2885
3149
  };
3150
+ Object.defineProperty(ColumnModel.prototype, "isTextMatch", {
3151
+ get: function () {
3152
+ return this._columnModelTextSearchPredicate || this._cellRendererTextSearchPredicate || DEFAULT_TEXT_SEARCH_PREDICATE;
3153
+ },
3154
+ enumerable: false,
3155
+ configurable: true
3156
+ });
3157
+ /**
3158
+ * Sets the predicate to use when checking if the specified row is a text match for this column.
3159
+ * @param predicate
3160
+ */
3161
+ ColumnModel.prototype.useTextSearchPredicate = function (predicate) {
3162
+ this._columnModelTextSearchPredicate = predicate;
3163
+ return this;
3164
+ };
2886
3165
  ColumnModel.prototype.getColumnTextProperties = function () {
2887
3166
  return this._columnTextProperties || this.textPropertiesProvider();
2888
3167
  };
@@ -2934,6 +3213,12 @@
2934
3213
  };
2935
3214
  ColumnModel.prototype.onRendererAttached = function (host, component) {
2936
3215
  this._cellRendererPortalRef.onPortalAttached(host, component);
3216
+ if (___default["default"].isFunction(component === null || component === void 0 ? void 0 : component.matches)) {
3217
+ this._cellRendererTextSearchPredicate = function (row, text) { return component.matches(row, text); };
3218
+ }
3219
+ else {
3220
+ this._cellRendererTextSearchPredicate = undefined;
3221
+ }
2937
3222
  };
2938
3223
  // @Trace()
2939
3224
  ColumnModel.prototype.onEditorAttached = function (host, component) {
@@ -2950,7 +3235,7 @@
2950
3235
  return this._enableRowSelection;
2951
3236
  };
2952
3237
  return ColumnModel;
2953
- }());
3238
+ }(pectin.GarbageCollector));
2954
3239
  __decorate([
2955
3240
  src.Memoize(),
2956
3241
  __metadata("design:type", Function),
@@ -2968,27 +3253,27 @@
2968
3253
  function PropertyColumnModel(id, property, defaults) {
2969
3254
  var _this = _super.call(this, id, defaults) || this;
2970
3255
  _this.property = property;
2971
- _this._format = function (value) { return value; };
3256
+ _this._format = function (value) { return value === null || value === void 0 ? void 0 : value.toString(); };
2972
3257
  _this.cellRenderer(DefaultCellRendererComponent);
3258
+ _this.useTextSearchPredicate(function (row, regex) {
3259
+ return regex.test(_this._format(row[_this.property]));
3260
+ });
2973
3261
  return _this;
2974
3262
  }
2975
3263
  PropertyColumnModel.prototype.cellRenderer = function (componentType, onComponentInitOrOptions) {
2976
3264
  var _this = this;
2977
3265
  this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, function (component, rowData, firstTime) {
2978
3266
  if (firstTime) {
2979
- if (___default['default'].isFunction(onComponentInitOrOptions)) {
3267
+ if (___default["default"].isFunction(onComponentInitOrOptions)) {
2980
3268
  onComponentInitOrOptions(component);
2981
3269
  }
2982
3270
  else {
2983
- if (___default['default'].isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onComponentInit)) {
3271
+ if (___default["default"].isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onComponentInit)) {
2984
3272
  onComponentInitOrOptions.onComponentInit(component);
2985
3273
  }
2986
3274
  }
2987
3275
  }
2988
3276
  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)) {
2990
- onComponentInitOrOptions.onRowUpdate(component, rowData.row);
2991
- }
2992
3277
  }));
2993
3278
  return this;
2994
3279
  };
@@ -3008,7 +3293,7 @@
3008
3293
  component[CELL_RENDERER_COMPONENT_ROW_CACHE] = rowData.row;
3009
3294
  var disableEditCallback = false;
3010
3295
  if (firstTime) {
3011
- if (___default['default'].isFunction(options === null || options === void 0 ? void 0 : options.onComponentInit)) {
3296
+ if (___default["default"].isFunction(options === null || options === void 0 ? void 0 : options.onComponentInit)) {
3012
3297
  options.onComponentInit(component);
3013
3298
  }
3014
3299
  // install our edit callback
@@ -3023,7 +3308,7 @@
3023
3308
  disableEditCallback = true;
3024
3309
  component.value = rowData.row[_this.property];
3025
3310
  disableEditCallback = false;
3026
- if (!___default['default'].isFunction(options) && ___default['default'].isFunction(options === null || options === void 0 ? void 0 : options.onRowUpdate)) {
3311
+ if (!___default["default"].isFunction(options) && ___default["default"].isFunction(options === null || options === void 0 ? void 0 : options.onRowUpdate)) {
3027
3312
  options.onRowUpdate(component, rowData.row);
3028
3313
  }
3029
3314
  }));
@@ -3032,7 +3317,7 @@
3032
3317
  PropertyColumnModel.prototype.cellEditor = function (editor, validatorsOrInitialiser, onComponentInit) {
3033
3318
  var _this = this;
3034
3319
  var validators = Array.isArray(validatorsOrInitialiser) ? validatorsOrInitialiser : undefined;
3035
- var initialiser = ___default['default'].isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : onComponentInit;
3320
+ var initialiser = ___default["default"].isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : onComponentInit;
3036
3321
  this.configureCellEditor(new CellEditorPortalRef(editor, function (component, editSession) {
3037
3322
  var formValueModel = editSession.form.pluck(_this.property);
3038
3323
  if (validators) {
@@ -3062,6 +3347,9 @@
3062
3347
  _this.property = property;
3063
3348
  _this._format = function (value) { return value.map(function (v) { return v === null || v === void 0 ? void 0 : v.toString(); }).join(', '); };
3064
3349
  _this.cellRenderer(DefaultCellRendererComponent);
3350
+ _this.useTextSearchPredicate(function (row, regex) {
3351
+ return regex.test(_this._format(row[_this.property]));
3352
+ });
3065
3353
  return _this;
3066
3354
  }
3067
3355
  ListPropertyColumnModel.prototype.cellRenderer = function (componentType) {
@@ -3074,7 +3362,7 @@
3074
3362
  ListPropertyColumnModel.prototype.cellEditor = function (editor, validatorsOrInitialiser, initialiseComponent) {
3075
3363
  var _this = this;
3076
3364
  var validators = Array.isArray(validatorsOrInitialiser) ? validatorsOrInitialiser : undefined;
3077
- var initialiser = ___default['default'].isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : initialiseComponent;
3365
+ var initialiser = ___default["default"].isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : initialiseComponent;
3078
3366
  this.configureCellEditor(new CellEditorPortalRef(editor, function (component, editSession) {
3079
3367
  var formListModel = editSession.form.pluckList(_this.property);
3080
3368
  if (validators) {
@@ -3109,17 +3397,17 @@
3109
3397
  var _this = this;
3110
3398
  this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, function (component, rowData, firstTime) {
3111
3399
  if (firstTime) {
3112
- if (___default['default'].isFunction(onComponentInitOrOptions)) {
3400
+ if (___default["default"].isFunction(onComponentInitOrOptions)) {
3113
3401
  onComponentInitOrOptions(component);
3114
3402
  }
3115
3403
  else {
3116
- if (___default['default'].isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onComponentInit)) {
3404
+ if (___default["default"].isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onComponentInit)) {
3117
3405
  onComponentInitOrOptions.onComponentInit(component);
3118
3406
  }
3119
3407
  }
3120
3408
  }
3121
3409
  component.value = _this.getValue(rowData.row);
3122
- if (!___default['default'].isFunction(onComponentInitOrOptions) && ___default['default'].isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onRowUpdate)) {
3410
+ if (!___default["default"].isFunction(onComponentInitOrOptions) && ___default["default"].isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onRowUpdate)) {
3123
3411
  onComponentInitOrOptions.onRowUpdate(component, rowData.row);
3124
3412
  }
3125
3413
  }));
@@ -3132,7 +3420,7 @@
3132
3420
  }(ColumnModel));
3133
3421
  var EditorControlColumnModel = /** @class */ (function (_super) {
3134
3422
  __extends(EditorControlColumnModel, _super);
3135
- function EditorControlColumnModel(columnId, saveCommand, defaults) {
3423
+ function EditorControlColumnModel(columnId, saveCommandFactory, defaults) {
3136
3424
  var _this = _super.call(this, columnId, defaults) || this;
3137
3425
  _this.cellRenderer(EditRowControls);
3138
3426
  return _this;
@@ -3497,7 +3785,7 @@
3497
3785
  { type: i0.Component, args: [{
3498
3786
  selector: 'aup-table-header-cell-renderer',
3499
3787
  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%}"]
3788
+ styles: [":host{display:flex;flex-direction:column;align-items:stretch;justify-content:center;height:100%}\n"]
3501
3789
  },] }
3502
3790
  ];
3503
3791
  TableHeaderCellRendererComponent.ctorParameters = function () { return []; };
@@ -3530,8 +3818,6 @@
3530
3818
  TableRowMenuComponent.prototype.registerMoreAction = function (commandFactory, properties) {
3531
3819
  this.moreActions.push(new MenuItemData(commandFactory, properties));
3532
3820
  };
3533
- TableRowMenuComponent.prototype.ngOnInit = function () {
3534
- };
3535
3821
  TableRowMenuComponent.prototype.createMoreMenuCommand = function (item, value) {
3536
3822
  var _this = this;
3537
3823
  var when = pectin.Dsl.disposeWith(this).when;
@@ -3618,7 +3904,7 @@
3618
3904
  // if (!this._liveRowValue.value[immerable]) {
3619
3905
  // console.warn()
3620
3906
  // }
3621
- _this._liveRowValue.value = produce__default['default'](_this._liveRowValue.value, function (draft) {
3907
+ _this._liveRowValue.value = produce__default["default"](_this._liveRowValue.value, function (draft) {
3622
3908
  _this.form.writeDirtyStateTo(draft);
3623
3909
  });
3624
3910
  });
@@ -3640,7 +3926,7 @@
3640
3926
  __extends(AbstractTableModel, _super);
3641
3927
  function AbstractTableModel() {
3642
3928
  var _this = _super.call(this) || this;
3643
- _this._dataSource = new pectin.DelegatingListModel();
3929
+ _this._dataSource = _this.registerDisposable(new pectin.DelegatingListModel());
3644
3930
  _this._columnList = _this.registerDisposable(new ColumnListModel());
3645
3931
  _this._editorSessions = new pectin.MutableListModel();
3646
3932
  _this.rowClassNamePredicates = [];
@@ -3662,6 +3948,12 @@
3662
3948
  _this.rowSelectionDisabledOnAllColumns = chain(_this._columnList).select(function (column) { return column.isRowSelectionEnabled(); }).count().equals(0);
3663
3949
  return _this;
3664
3950
  }
3951
+ AbstractTableModel.prototype.findMatchingColumns = function (row, regex) {
3952
+ return this.columns.value.filter(function (c) { return c.isTextMatch(row, regex); });
3953
+ };
3954
+ AbstractTableModel.prototype.hasMatchingColumn = function (row, regex) {
3955
+ return !!this.columns.value.find(function (c) { return c.isTextMatch(row, regex); });
3956
+ };
3665
3957
  AbstractTableModel.prototype.setDataSource = function (sourceOfTruth) {
3666
3958
  this._dataSource.setDelegate(sourceOfTruth);
3667
3959
  };
@@ -3711,11 +4003,14 @@
3711
4003
  }
3712
4004
  return selectionColumnModel;
3713
4005
  };
3714
- AbstractTableModel.prototype.addEditControls = function (saveCommand) {
4006
+ AbstractTableModel.prototype.addEditControls = function (saveCommandFactory, formFactory) {
3715
4007
  var _this = this;
3716
- this.saveCommand = saveCommand;
4008
+ this.saveCommandFactory = saveCommandFactory;
4009
+ if (___namespace.isFunction(formFactory)) {
4010
+ this._createForm = formFactory;
4011
+ }
3717
4012
  var columnId = 'editControls';
3718
- return this.addColumn(new EditorControlColumnModel(columnId, saveCommand, function () { return _this.getColumnTextProperties(columnId); }));
4013
+ return this.addColumn(new EditorControlColumnModel(columnId, saveCommandFactory, function () { return _this.getColumnTextProperties(columnId); }));
3719
4014
  };
3720
4015
  AbstractTableModel.prototype.addCustomColumn = function (columnId, dataAccessor) {
3721
4016
  var _this = this;
@@ -3763,19 +4058,20 @@
3763
4058
  if (this._rowsBeingEdited.query().indexOf(row) > -1) {
3764
4059
  return pectin.lang.illegalState("Row with id=" + rowId + " already being edited");
3765
4060
  }
3766
- else {
3767
- var editSession_1 = new EditSession(rowId, row, this._createForm(row), this.saveCommand);
3768
- var when = pectin.Dsl.disposeWith(editSession_1).when;
3769
- when(editSession_1.liveRowValue).changes(function (editedValue) {
3770
- _this._rowsBeingEdited.replaceOrPush(editedValue);
3771
- }, { initialValue: 'triggerChangeUnlessNil' });
3772
- this._editorSessions.push(editSession_1);
3773
- editSession_1.onDispose(function () {
3774
- _this._rowsBeingEdited.remove(editSession_1.liveRowValue.value);
3775
- _this._editorSessions.remove(editSession_1);
3776
- });
3777
- return editSession_1;
3778
- }
4061
+ // todo: pass the factories to the edit session so we can make the whole lot pluggable?
4062
+ var form = this._createForm(row);
4063
+ var saveCommand = this.saveCommandFactory.create(form);
4064
+ var editSession = new EditSession(rowId, row, form, saveCommand);
4065
+ var when = pectin.Dsl.disposeWith(editSession).when;
4066
+ when(editSession.liveRowValue).changes(function (editedValue) {
4067
+ _this._rowsBeingEdited.replaceOrPush(editedValue);
4068
+ }, { initialValue: 'triggerChangeUnlessNil' });
4069
+ this._editorSessions.push(editSession);
4070
+ editSession.onDispose(function () {
4071
+ _this._rowsBeingEdited.remove(editSession.liveRowValue.value);
4072
+ _this._editorSessions.remove(editSession);
4073
+ });
4074
+ return editSession;
3779
4075
  };
3780
4076
  AbstractTableModel.prototype.getEditSessionFor = function (row) {
3781
4077
  return this._editorSessionByRowId.get(this.identityOf(row));
@@ -3792,12 +4088,16 @@
3792
4088
  return this.isRowSelectionEnabled() && column.isRowSelectionEnabled();
3793
4089
  };
3794
4090
  AbstractTableModel.prototype.isRowSelectionEnabled = function () {
3795
- return this.hasSelectionModel() && !this.rowSelectionDisabledOnAllColumns.value;
4091
+ return this.hasUserSelectionModel() && !this.rowSelectionDisabledOnAllColumns.value;
3796
4092
  };
3797
- AbstractTableModel.prototype.hasSelectionModel = function () {
4093
+ AbstractTableModel.prototype.hasUserSelectionModel = function () {
3798
4094
  var _a;
3799
4095
  return !!((_a = this.selectionColumnModel) === null || _a === void 0 ? void 0 : _a.selectionModel.getDelegate());
3800
4096
  };
4097
+ AbstractTableModel.prototype.getSelectionModel = function () {
4098
+ var _a;
4099
+ return (_a = this.selectionColumnModel) === null || _a === void 0 ? void 0 : _a.selectionModel;
4100
+ };
3801
4101
  AbstractTableModel.prototype.isHoverEnabled = function () {
3802
4102
  return this.isRowSelectionEnabled() || this.rowClickListeners.listenerCount > 0;
3803
4103
  };
@@ -3865,18 +4165,19 @@
3865
4165
  * --row-selected-background-color: rebeccapurple; // defaults to transparent
3866
4166
  * --first-column-padding-left: 18px // defaults to --column-gap
3867
4167
  * --last-column-padding-right: 18px // defaults to --column-gap
3868
- *
3869
- * aup-table-header-cell-renderer,
3870
- * aup-table-cell-renderer {
3871
- * &.aup-col-my-dasherised-column-id {
3872
- * // do stuff
3873
- * }
3874
- * &.first-visible-column {
3875
- * // do stuff
3876
- * }
3877
- * &.last-visible-column {
3878
- * // do stuff
3879
- * }
4168
+ * ::ng-deep {
4169
+ * aup-table-header-cell-renderer,
4170
+ * aup-table-cell-renderer {
4171
+ * &.aup-col-my-dasherised-column-id {
4172
+ * // do stuff
4173
+ * }
4174
+ * &.first-visible-column {
4175
+ * // do stuff
4176
+ * }
4177
+ * &.last-visible-column {
4178
+ * // do stuff
4179
+ * }
4180
+ * }
3880
4181
  * }
3881
4182
  * }
3882
4183
  */
@@ -3897,7 +4198,7 @@
3897
4198
  providers: [
3898
4199
  { provide: AbstractTableComponent, useExisting: TableComponent }
3899
4200
  ],
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}"]
4201
+ 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
4202
  },] }
3902
4203
  ];
3903
4204
  TableComponent.ctorParameters = function () { return [
@@ -3950,7 +4251,7 @@
3950
4251
  { type: i0.Component, args: [{
3951
4252
  selector: 'aup-tree-inheritance-icon',
3952
4253
  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}"]
4254
+ styles: [":host{position:relative;color:inherit}svg{color:var(--line-color);display:block}\n"]
3954
4255
  },] }
3955
4256
  ];
3956
4257
  exports.TreeInheritanceIconComponent.ctorParameters = function () { return []; };
@@ -4192,17 +4493,17 @@
4192
4493
  var _this = this;
4193
4494
  var chain = pectin.Dsl.disposeWith(this).chain;
4194
4495
  this.canExpand = chain(this.nodeModel).map(function (node) {
4195
- return exports.DecoratedTreeNode.getDecorator(node).hasChildren() && _this.expansionModel.isCollapsed(node);
4196
- }, { dependsOn: this.expansionModel.isExpandedPredicate });
4496
+ return exports.DecoratedTreeNode.getDecorator(node).hasChildren() && _this.treeTableModel.isCollapsed(node);
4497
+ }, { dependsOn: this.treeTableModel.treeExpansionModel.isExpandedPredicate });
4197
4498
  this.canCollapse = chain(this.nodeModel).map(function (node) {
4198
- return exports.DecoratedTreeNode.getDecorator(node).hasChildren() && !_this.expansionModel.isCollapsed(node);
4199
- }, { dependsOn: this.expansionModel.isExpandedPredicate });
4499
+ return exports.DecoratedTreeNode.getDecorator(node).hasChildren() && !_this.treeTableModel.isCollapsed(node);
4500
+ }, { dependsOn: this.treeTableModel.treeExpansionModel.isExpandedPredicate });
4200
4501
  this.iconModel = chain(this.nodeModel).map(function (node) {
4201
4502
  var _a;
4202
- var expanded = _this.expansionModel.isExpanded(_this.node);
4503
+ var expanded = _this.treeTableModel.treeExpansionModel.isExpanded(_this.node);
4203
4504
  var iconFactory = (_a = _this.iconFactory) !== null && _a !== void 0 ? _a : TreeLabelCellRendererComponent.DEFAULT_ICON_FACTORY;
4204
4505
  return iconFactory(node, expanded, TreeLabelCellRendererComponent.DEFAULT_ICON_FACTORY(node, expanded, undefined));
4205
- }, { dependsOn: this.expansionModel.isExpandedPredicate });
4506
+ }, { dependsOn: this.treeTableModel.treeExpansionModel.isExpandedPredicate });
4206
4507
  };
4207
4508
  Object.defineProperty(TreeLabelCellRendererComponent.prototype, "isRoot", {
4208
4509
  get: function () {
@@ -4226,16 +4527,18 @@
4226
4527
  configurable: true
4227
4528
  });
4228
4529
  // @Trace()
4229
- TreeLabelCellRendererComponent.prototype.expandOrCollapse = function (node) {
4230
- this.expansionModel.isCollapsed(node) ? this.expansionModel.expand(node) : this.expansionModel.collapse(node);
4530
+ TreeLabelCellRendererComponent.prototype.expandOrCollapse = function ($event, node) {
4531
+ $event.preventDefault();
4532
+ $event.stopPropagation();
4533
+ this.treeTableModel.isCollapsed(node) ? this.treeTableModel.expand(node) : this.treeTableModel.collapse(node);
4231
4534
  };
4232
4535
  return TreeLabelCellRendererComponent;
4233
4536
  }(DisposableComponent));
4234
4537
  exports.TreeLabelCellRendererComponent.decorators = [
4235
4538
  { type: i0.Component, args: [{
4236
4539
  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}"]
4540
+ 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",
4541
+ 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
4542
  },] }
4240
4543
  ];
4241
4544
  exports.TreeLabelCellRendererComponent.ctorParameters = function () { return []; };
@@ -4243,7 +4546,7 @@
4243
4546
  value: [{ type: i0.Input }],
4244
4547
  label: [{ type: i0.Input }],
4245
4548
  iconFactory: [{ type: i0.Input }],
4246
- expansionModel: [{ type: i0.Input }],
4549
+ treeTableModel: [{ type: i0.Input }],
4247
4550
  isRoot: [{ type: i0.HostBinding, args: ['class.root',] }],
4248
4551
  isLeaf: [{ type: i0.HostBinding, args: ['class.leaf',] }]
4249
4552
  };
@@ -4252,22 +4555,29 @@
4252
4555
  __metadata("design:type", Object)
4253
4556
  ], exports.TreeLabelCellRendererComponent.prototype, "value", void 0);
4254
4557
  (function (TreeLabelCellRendererComponent) {
4255
- TreeLabelCellRendererComponent.DEFAULT_ICON_FACTORY = function (node, expanded, defaultIcon) { return expanded ? 'mat:expand_more' : 'mat:chevron_right'; };
4558
+ TreeLabelCellRendererComponent.DEFAULT_ICON_FACTORY = function (node, expanded, defaultIcon) {
4559
+ var isLeaf = exports.DecoratedTreeNode.getDecorator(node).isLeaf();
4560
+ return isLeaf ?
4561
+ undefined :
4562
+ expanded ?
4563
+ 'mat:expand_more' :
4564
+ 'mat:chevron_right';
4565
+ };
4256
4566
  })(exports.TreeLabelCellRendererComponent || (exports.TreeLabelCellRendererComponent = {}));
4257
4567
 
4258
4568
  var FlattenedTreeListModel = /** @class */ (function (_super) {
4259
4569
  __extends(FlattenedTreeListModel, _super);
4260
4570
  function FlattenedTreeListModel(source, childRef, expansionModel) {
4261
- var _this = _super.call(this, source) || this;
4571
+ var _this = _super.call(this, source, {
4572
+ initialValue: [],
4573
+ identifiedWith: function (row) { return source.identityOf(row); }
4574
+ }) || this;
4262
4575
  _this.source = source;
4263
4576
  _this.childRef = childRef;
4264
4577
  _this.expansionModel = expansionModel;
4265
4578
  _this.trackSource(expansionModel.isExpandedPredicate);
4266
4579
  return _this;
4267
4580
  }
4268
- FlattenedTreeListModel.prototype.getIdentityOf = function (item) {
4269
- return this.source.identityOf(item);
4270
- };
4271
4581
  FlattenedTreeListModel.prototype.compute = function (values) {
4272
4582
  var _this = this;
4273
4583
  var result = [];
@@ -4366,10 +4676,10 @@
4366
4676
  var _this = this;
4367
4677
  this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, function (component, rowData, firstTime) {
4368
4678
  if (firstTime) {
4369
- component.expansionModel = _this.expansionModel;
4679
+ component.treeTableModel = _this.expansionModel;
4370
4680
  }
4371
4681
  component.value = rowData.row;
4372
- component.label = ___default['default'].isNil(_this.labelProperty) ? undefined : rowData.row[_this.labelProperty];
4682
+ component.label = ___default["default"].isNil(_this.labelProperty) ? undefined : rowData.row[_this.labelProperty];
4373
4683
  component.iconFactory = _this.iconFactory;
4374
4684
  }));
4375
4685
  return this;
@@ -4400,12 +4710,13 @@
4400
4710
  var childExtractor = ___namespace.isFunction(childAccessor) ? childAccessor : function (row) { return row[childAccessor]; };
4401
4711
  _this.flattenedDataSource = _this.registerDisposable(new FlattenedTreeListModel(source, childExtractor, _this.treeExpansionModel));
4402
4712
  _this.setDataSource(_this.flattenedDataSource);
4713
+ _this.addRowClass('aup-node-collapsed', function (row) { return _this.isCollapsed(row); });
4403
4714
  return _this;
4404
4715
  }
4405
4716
  TreeTableModel.prototype.treeControlColumn = function (builder) {
4406
4717
  var _this = this;
4407
4718
  var columnId = 'tree-label';
4408
- var column = new TreeLabelColumnModel(columnId, function () { return _this.getColumnTextProperties(columnId); }, this.treeExpansionModel);
4719
+ var column = new TreeLabelColumnModel(columnId, function () { return _this.getColumnTextProperties(columnId); }, this);
4409
4720
  builder(column);
4410
4721
  this.addColumn(column);
4411
4722
  };
@@ -4413,7 +4724,7 @@
4413
4724
  this.treeExpansionModel.expand(node);
4414
4725
  };
4415
4726
  TreeTableModel.prototype.collapse = function (node) {
4416
- this.treeExpansionModel.expand(node);
4727
+ this.treeExpansionModel.collapse(node);
4417
4728
  };
4418
4729
  TreeTableModel.prototype.isCollapsed = function (node) {
4419
4730
  return this.treeExpansionModel.isCollapsed(node);
@@ -4549,7 +4860,7 @@
4549
4860
  providers: [
4550
4861
  { provide: AbstractTableComponent, useExisting: TreeTableComponent }
4551
4862
  ],
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}"]
4863
+ 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
4864
  },] }
4554
4865
  ];
4555
4866
  TreeTableComponent.ctorParameters = function () { return [
@@ -4606,7 +4917,7 @@
4606
4917
  providers: [
4607
4918
  { provide: pectin.FocusManager }
4608
4919
  ],
4609
- styles: [":host{display:block}"]
4920
+ styles: [":host{display:block}\n"]
4610
4921
  },] }
4611
4922
  ];
4612
4923
  VerticalFocusContainerComponent.ctorParameters = function () { return [
@@ -4670,7 +4981,7 @@
4670
4981
  { type: i0.Component, args: [{
4671
4982
  selector: 'aup-paginator',
4672
4983
  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}"]
4984
+ 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
4985
  },] }
4675
4986
  ];
4676
4987
  PaginatorComponent.ctorParameters = function () { return []; };
@@ -4682,6 +4993,28 @@
4682
4993
  __metadata("design:type", pectin.PageController)
4683
4994
  ], PaginatorComponent.prototype, "pageController", void 0);
4684
4995
 
4996
+ var LabelledValueComponent = /** @class */ (function (_super) {
4997
+ __extends(LabelledValueComponent, _super);
4998
+ function LabelledValueComponent() {
4999
+ return _super.call(this) || this;
5000
+ // const {chain} = Dsl.disposeWith(this);
5001
+ }
5002
+ LabelledValueComponent.prototype.ngOnInit = function () {
5003
+ };
5004
+ return LabelledValueComponent;
5005
+ }(DisposableComponent));
5006
+ LabelledValueComponent.decorators = [
5007
+ { type: i0.Component, args: [{
5008
+ selector: 'aup-labelled-value',
5009
+ template: "<label>{{label}}</label>\n<ng-content></ng-content>\n",
5010
+ 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"]
5011
+ },] }
5012
+ ];
5013
+ LabelledValueComponent.ctorParameters = function () { return []; };
5014
+ LabelledValueComponent.propDecorators = {
5015
+ label: [{ type: i0.Input }]
5016
+ };
5017
+
4685
5018
  var ComponentsModule = /** @class */ (function () {
4686
5019
  function ComponentsModule(faIconLibrary) {
4687
5020
  faIconLibrary.addIconPacks(freeSolidSvgIcons.fas);
@@ -4690,6 +5023,29 @@
4690
5023
  }());
4691
5024
  ComponentsModule.decorators = [
4692
5025
  { type: i0.NgModule, args: [{
5026
+ imports: [
5027
+ i2.CommonModule,
5028
+ animations.BrowserAnimationsModule,
5029
+ forms.FormsModule,
5030
+ input.MatInputModule,
5031
+ formField.MatFormFieldModule,
5032
+ select.MatSelectModule,
5033
+ tabs.MatTabsModule,
5034
+ DirectivesModule,
5035
+ icon.MatIconModule,
5036
+ button.MatButtonModule,
5037
+ checkbox.MatCheckboxModule,
5038
+ table.MatTableModule,
5039
+ portal.PortalModule,
5040
+ scrolling.CdkScrollableModule,
5041
+ angularFontawesome.FontAwesomeModule,
5042
+ tooltip.MatTooltipModule,
5043
+ autocomplete.MatAutocompleteModule,
5044
+ menu.MatMenuModule,
5045
+ divider.MatDividerModule,
5046
+ progressSpinner.MatProgressSpinnerModule,
5047
+ progressBar.MatProgressBarModule
5048
+ ],
4693
5049
  declarations: [
4694
5050
  AbstractInputComponent,
4695
5051
  AbstractValueInputComponent,
@@ -4738,29 +5094,11 @@
4738
5094
  BusyOverlayComponent,
4739
5095
  EmptyStateComponent,
4740
5096
  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
5097
+ AbstractTableComponent,
5098
+ AbstractCardContainerComponent,
5099
+ CardStackComponent,
5100
+ LabelledValueComponent,
5101
+ LoadingContainerComponent
4764
5102
  ],
4765
5103
  exports: [
4766
5104
  NumberInputComponent,
@@ -4797,6 +5135,9 @@
4797
5135
  BusyOverlayComponent,
4798
5136
  EmptyStateComponent,
4799
5137
  PaginatorComponent,
5138
+ CardStackComponent,
5139
+ LabelledValueComponent,
5140
+ LoadingContainerComponent,
4800
5141
  ],
4801
5142
  providers: [
4802
5143
  FocusBindingFactory
@@ -4828,12 +5169,13 @@
4828
5169
  * <span>This content will be between the two commands</span>
4829
5170
  * </aup-activity-actions>
4830
5171
  */
4831
- var ActivityActionsComponent = /** @class */ (function (_super) {
5172
+ exports.ActivityActionsComponent = /** @class */ (function (_super) {
4832
5173
  __extends(ActivityActionsComponent, _super);
4833
5174
  function ActivityActionsComponent(cdr) {
4834
5175
  var _this = _super.call(this) || this;
4835
5176
  _this.cdr = cdr;
4836
- _this.align = 'stretch';
5177
+ _this.layout = ActivityActionsComponent.Layout.BLOCK;
5178
+ _this.align = ActivityActionsComponent.Align.STRETCH;
4837
5179
  return _this;
4838
5180
  }
4839
5181
  Object.defineProperty(ActivityActionsComponent.prototype, "faces", {
@@ -4854,20 +5196,6 @@
4854
5196
  enumerable: false,
4855
5197
  configurable: true
4856
5198
  });
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
5199
  ActivityActionsComponent.prototype.ngOnInit = function () {
4872
5200
  };
4873
5201
  ActivityActionsComponent.prototype.hasConfirmFace = function () {
@@ -4883,42 +5211,52 @@
4883
5211
  };
4884
5212
  return ActivityActionsComponent;
4885
5213
  }(DisposableComponent));
4886
- ActivityActionsComponent.decorators = [
5214
+ exports.ActivityActionsComponent.decorators = [
4887
5215
  { type: i0.Component, args: [{
4888
5216
  selector: 'aup-activity-actions',
4889
5217
  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}"]
5218
+ 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
5219
  },] }
4892
5220
  ];
4893
- ActivityActionsComponent.ctorParameters = function () { return [
5221
+ exports.ActivityActionsComponent.ctorParameters = function () { return [
4894
5222
  { type: i0.ChangeDetectorRef }
4895
5223
  ]; };
4896
- ActivityActionsComponent.propDecorators = {
5224
+ exports.ActivityActionsComponent.propDecorators = {
4897
5225
  confirmCommand: [{ type: i0.Input }],
4898
5226
  cancelCommand: [{ type: i0.Input }],
4899
5227
  faces: [{ type: i0.Input }],
4900
5228
  confirmFace: [{ type: i0.Input }],
4901
5229
  cancelFace: [{ type: i0.Input }],
4902
5230
  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',] }]
5231
+ layout: [{ type: i0.Input }, { type: i0.HostBinding, args: ['attr.layout',] }],
5232
+ align: [{ type: i0.Input }, { type: i0.HostBinding, args: ['attr.align',] }]
4906
5233
  };
4907
5234
  __decorate([
4908
5235
  pectin.TrackExternal(),
4909
5236
  __metadata("design:type", pectin.Command)
4910
- ], ActivityActionsComponent.prototype, "confirmCommand", void 0);
5237
+ ], exports.ActivityActionsComponent.prototype, "confirmCommand", void 0);
4911
5238
  __decorate([
4912
5239
  pectin.TrackExternal(),
4913
5240
  __metadata("design:type", pectin.Command)
4914
- ], ActivityActionsComponent.prototype, "cancelCommand", void 0);
5241
+ ], exports.ActivityActionsComponent.prototype, "cancelCommand", void 0);
5242
+ (function (ActivityActionsComponent) {
5243
+ ActivityActionsComponent.Layout = typescriptStringEnums.Enum({
5244
+ INLINE: 'inline',
5245
+ BLOCK: 'block'
5246
+ });
5247
+ ActivityActionsComponent.Align = typescriptStringEnums.Enum({
5248
+ START: 'start',
5249
+ END: 'end',
5250
+ STRETCH: 'stretch'
5251
+ });
5252
+ })(exports.ActivityActionsComponent || (exports.ActivityActionsComponent = {}));
4915
5253
 
4916
5254
  var ACTIVITY_DATA = new i0.InjectionToken('InteractionActivityData');
4917
5255
  var Activity = /** @class */ (function (_super) {
4918
5256
  __extends(Activity, _super);
4919
5257
  function Activity() {
4920
5258
  var _this = _super.call(this) || this;
4921
- _this._busyModel = new pectin.DelegatingValueModel().withDefault(false);
5259
+ _this._busyModel = _this.registerDisposable(new pectin.DelegatingValueModel().withDefault(false));
4922
5260
  _this._focusedModel = _this.registerDisposable(new pectin.DelegatingValueModel());
4923
5261
  _this.class = 'aup-activity';
4924
5262
  return _this;
@@ -4994,7 +5332,7 @@
4994
5332
  ];
4995
5333
  Activity.ctorParameters = function () { return []; };
4996
5334
  Activity.propDecorators = {
4997
- activityActions: [{ type: i0.ViewChild, args: [ActivityActionsComponent,] }],
5335
+ activityActions: [{ type: i0.ViewChild, args: [exports.ActivityActionsComponent,] }],
4998
5336
  class: [{ type: i0.HostBinding, args: ['class',] }],
4999
5337
  isFocused: [{ type: i0.HostBinding, args: ['attr.focused',] }]
5000
5338
  };
@@ -5030,7 +5368,7 @@
5030
5368
  { type: i0.Component, args: [{
5031
5369
  selector: 'aup-alert-dialog',
5032
5370
  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}"]
5371
+ 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
5372
  },] }
5035
5373
  ];
5036
5374
  AlertDialogComponent.ctorParameters = function () { return [
@@ -5086,7 +5424,7 @@
5086
5424
  { type: i0.Component, args: [{
5087
5425
  selector: 'aup-confirmation-dialog',
5088
5426
  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}"]
5427
+ 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
5428
  },] }
5091
5429
  ];
5092
5430
  ConfirmThenDialogComponent.ctorParameters = function () { return [
@@ -5133,7 +5471,7 @@
5133
5471
  { type: i0.Component, args: [{
5134
5472
  selector: 'aup-confirmation-dialog',
5135
5473
  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}"]
5474
+ 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
5475
  },] }
5138
5476
  ];
5139
5477
  ConfirmationDialogComponent.ctorParameters = function () { return [
@@ -5304,7 +5642,7 @@
5304
5642
  { type: i0.Component, args: [{
5305
5643
  selector: 'aup-activity-outlet',
5306
5644
  template: '',
5307
- styles: [":host{display:block}"]
5645
+ styles: [":host{display:block}\n"]
5308
5646
  },] }
5309
5647
  ];
5310
5648
  ActivityOutletComponent.ctorParameters = function () { return [
@@ -5325,7 +5663,7 @@
5325
5663
  _this.activityRefs = [];
5326
5664
  _this.garbage = new pectin.GarbageCollector();
5327
5665
  _this.inAnimation = new pectin.MutableValueModel(false);
5328
- _this.busy = new pectin.DelegatingValueModel().withDefault(false);
5666
+ _this.busy = _this.registerDisposable(new pectin.DelegatingValueModel().withDefault(false));
5329
5667
  _this.registerDisposable(_this.busy);
5330
5668
  return _this;
5331
5669
  }
@@ -5375,7 +5713,7 @@
5375
5713
  if (!this.isActive()) {
5376
5714
  typescriptUtilities.lang.illegalState('no activity in progress');
5377
5715
  }
5378
- return ___default['default'].findLast(this.activityRefs, function (tab) { return !tab.isComplete(); });
5716
+ return ___default["default"].findLast(this.activityRefs, function (tab) { return !tab.isComplete(); });
5379
5717
  };
5380
5718
  /**
5381
5719
  * Cancels the current activity and returns true the context is no longer active, false if
@@ -5518,8 +5856,8 @@
5518
5856
  ActivityContainerComponent.decorators = [
5519
5857
  { type: i0.Component, args: [{
5520
5858
  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}"]
5859
+ 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",
5860
+ styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}aup-busy-overlay{flex:1}\n"]
5523
5861
  },] }
5524
5862
  ];
5525
5863
  ActivityContainerComponent.ctorParameters = function () { return []; };
@@ -5558,7 +5896,7 @@
5558
5896
  }
5559
5897
  Object.defineProperty(ActivityTitleComponent.prototype, "hasTransparentBackground", {
5560
5898
  get: function () {
5561
- return ___default['default'].isNil(this._hasUserTransparentBackground) ? !this._color : this._hasUserTransparentBackground;
5899
+ return ___default["default"].isNil(this._hasUserTransparentBackground) ? !this._color : this._hasUserTransparentBackground;
5562
5900
  },
5563
5901
  /**
5564
5902
  * Adjusts layout to ensure the title and body are cleanly separated with even
@@ -5588,7 +5926,7 @@
5588
5926
  { type: i0.Component, args: [{
5589
5927
  selector: 'aup-activity-title',
5590
5928
  template: "<ng-content></ng-content>\n",
5591
- styles: [":host{display:block}"]
5929
+ styles: [":host{display:block}\n"]
5592
5930
  },] }
5593
5931
  ];
5594
5932
  ActivityTitleComponent.propDecorators = {
@@ -5615,6 +5953,13 @@
5615
5953
  });
5616
5954
  return _this;
5617
5955
  }
5956
+ Object.defineProperty(AbstractActivityTriggerComponent.prototype, "interactionContext", {
5957
+ get: function () {
5958
+ return typescriptUtilities.lang.abstractMethod(this.constructor);
5959
+ },
5960
+ enumerable: false,
5961
+ configurable: true
5962
+ });
5618
5963
  AbstractActivityTriggerComponent.prototype.ngOnInit = function () {
5619
5964
  };
5620
5965
  Object.defineProperty(AbstractActivityTriggerComponent.prototype, "isActive", {
@@ -5792,7 +6137,7 @@
5792
6137
  function ContextRegistry() {
5793
6138
  var _this = _super.call(this) || this;
5794
6139
  _this._interactions = new pectin.MutableListModel();
5795
- _this._disabledDelegate = new pectin.DelegatingValueModel().withDefault(false);
6140
+ _this._disabledDelegate = _this.registerDisposable(new pectin.DelegatingValueModel().withDefault(false));
5796
6141
  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;
5797
6142
  _this.active = chain(_this._interactions).isNotEmpty();
5798
6143
  _this.interactionContextIds = chain(_this._interactions).pluck("identifier");
@@ -5856,16 +6201,23 @@
5856
6201
  __extends(ModalActivityTriggerComponent, _super);
5857
6202
  function ModalActivityTriggerComponent(interactionService) {
5858
6203
  var _this = _super.call(this) || this;
5859
- _this.interactionContext = interactionService.createModalInteractionContextDisposedWith(_this);
6204
+ _this._interactionContext = interactionService.createModalInteractionContextDisposedWith(_this);
5860
6205
  return _this;
5861
6206
  }
6207
+ Object.defineProperty(ModalActivityTriggerComponent.prototype, "interactionContext", {
6208
+ get: function () {
6209
+ return this._interactionContext;
6210
+ },
6211
+ enumerable: false,
6212
+ configurable: true
6213
+ });
5862
6214
  return ModalActivityTriggerComponent;
5863
6215
  }(AbstractActivityTriggerComponent));
5864
6216
  ModalActivityTriggerComponent.decorators = [
5865
6217
  { type: i0.Component, args: [{
5866
6218
  selector: 'aup-modal-activity-trigger',
5867
6219
  template: "<aup-command [command]=\"startActivityCommand\" [faceModel]=\"faceModel\" [alignFace]=\"alignFace\"></aup-command>\n",
5868
- styles: [":host{display:inline-block}"]
6220
+ styles: [":host{display:inline-block}\n"]
5869
6221
  },] }
5870
6222
  ];
5871
6223
  ModalActivityTriggerComponent.ctorParameters = function () { return [
@@ -5904,6 +6256,13 @@
5904
6256
  enumerable: false,
5905
6257
  configurable: true
5906
6258
  });
6259
+ Object.defineProperty(InPlaceInteractionContextComponent.prototype, "active", {
6260
+ get: function () {
6261
+ return this.isActive();
6262
+ },
6263
+ enumerable: false,
6264
+ configurable: true
6265
+ });
5907
6266
  InPlaceInteractionContextComponent.prototype.ngAfterViewInit = function () {
5908
6267
  this.interactionService.registerInplaceInteractionContext(this);
5909
6268
  };
@@ -5944,7 +6303,7 @@
5944
6303
  { type: i0.Component, args: [{
5945
6304
  selector: 'aup-in-place-interaction-context',
5946
6305
  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}"]
6306
+ styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}\n"]
5948
6307
  },] }
5949
6308
  ];
5950
6309
  InPlaceInteractionContextComponent.ctorParameters = function () { return [
@@ -5953,9 +6312,96 @@
5953
6312
  ]; };
5954
6313
  InPlaceInteractionContextComponent.propDecorators = {
5955
6314
  activityContainerComponent: [{ type: i0.ViewChild, args: ['activityContainer', { static: true },] }],
5956
- animateFirstActivity: [{ type: i0.Input }]
6315
+ animateFirstActivity: [{ type: i0.Input }],
6316
+ active: [{ type: i0.HostBinding, args: ["class.active",] }]
5957
6317
  };
5958
6318
 
6319
+ /**
6320
+ *
6321
+ */
6322
+ exports.AddCardActivityComponent = /** @class */ (function (_super) {
6323
+ __extends(AddCardActivityComponent, _super);
6324
+ function AddCardActivityComponent(interactionService) {
6325
+ var _this = _super.call(this) || this;
6326
+ _this.interactionStyle = AddCardActivityComponent.InteractionType.MODAL;
6327
+ _this.renderAs = AddCardActivityComponent.RenderAs.CARD;
6328
+ _this.notCard = true;
6329
+ var chain = pectin.Dsl.disposeWith(_this).chain;
6330
+ _this.modalInteractionContext = interactionService.createModalInteractionContextDisposedWith(_this);
6331
+ _this.faceList = chain(_this.faceModel).mapToList(function (face) { return [face]; });
6332
+ return _this;
6333
+ }
6334
+ Object.defineProperty(AddCardActivityComponent.prototype, "renderAsClass", {
6335
+ get: function () {
6336
+ return "render-as-" + this.renderAs;
6337
+ },
6338
+ enumerable: false,
6339
+ configurable: true
6340
+ });
6341
+ Object.defineProperty(AddCardActivityComponent.prototype, "activityTypeClass", {
6342
+ get: function () {
6343
+ return this.interactionStyle + "-activity";
6344
+ },
6345
+ enumerable: false,
6346
+ configurable: true
6347
+ });
6348
+ AddCardActivityComponent.prototype.isRenderAsCard = function () {
6349
+ return this.renderAs === 'card';
6350
+ };
6351
+ AddCardActivityComponent.prototype.isRenderAsButton = function () {
6352
+ return this.renderAs === 'button';
6353
+ };
6354
+ AddCardActivityComponent.prototype.ngOnInit = function () {
6355
+ };
6356
+ Object.defineProperty(AddCardActivityComponent.prototype, "interactionContext", {
6357
+ get: function () {
6358
+ switch (this.interactionStyle) {
6359
+ case 'inline':
6360
+ return this.inlineInteractionContext;
6361
+ default:
6362
+ return this.modalInteractionContext;
6363
+ }
6364
+ },
6365
+ enumerable: false,
6366
+ configurable: true
6367
+ });
6368
+ AddCardActivityComponent.prototype.isModal = function () {
6369
+ return this.interactionStyle === 'modal';
6370
+ };
6371
+ AddCardActivityComponent.prototype.isInline = function () {
6372
+ return this.interactionStyle === 'inline';
6373
+ };
6374
+ return AddCardActivityComponent;
6375
+ }(AbstractActivityTriggerComponent));
6376
+ exports.AddCardActivityComponent.decorators = [
6377
+ { type: i0.Component, args: [{
6378
+ selector: 'aup-add-card-activity',
6379
+ 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",
6380
+ 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"]
6381
+ },] }
6382
+ ];
6383
+ exports.AddCardActivityComponent.ctorParameters = function () { return [
6384
+ { type: exports.InteractionService }
6385
+ ]; };
6386
+ exports.AddCardActivityComponent.propDecorators = {
6387
+ inlineInteractionContext: [{ type: i0.ViewChild, args: [InPlaceInteractionContextComponent, { static: true },] }],
6388
+ interactionStyle: [{ type: i0.Input }],
6389
+ renderAs: [{ type: i0.Input }, { type: i0.HostBinding, args: ['class',] }],
6390
+ notCard: [{ type: i0.HostBinding, args: ['class.not-card',] }],
6391
+ renderAsClass: [{ type: i0.HostBinding, args: ['class',] }],
6392
+ activityTypeClass: [{ type: i0.HostBinding, args: ['class',] }]
6393
+ };
6394
+ (function (AddCardActivityComponent) {
6395
+ AddCardActivityComponent.InteractionType = typescriptStringEnums.Enum({
6396
+ MODAL: 'modal',
6397
+ INLINE: 'inline'
6398
+ });
6399
+ AddCardActivityComponent.RenderAs = typescriptStringEnums.Enum({
6400
+ CARD: 'card',
6401
+ BUTTON: 'button'
6402
+ });
6403
+ })(exports.AddCardActivityComponent || (exports.AddCardActivityComponent = {}));
6404
+
5959
6405
  /**
5960
6406
  * Css Vars.
5961
6407
  * --link-color
@@ -6001,7 +6447,7 @@
6001
6447
  { type: i0.Component, args: [{
6002
6448
  selector: 'aup-add-item-interaction-context',
6003
6449
  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}"]
6450
+ 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
6451
  },] }
6006
6452
  ];
6007
6453
  AddItemInteractionContextComponent.ctorParameters = function () { return []; };
@@ -6025,18 +6471,25 @@
6025
6471
  function InlineActivityTriggerComponent() {
6026
6472
  return _super.call(this) || this;
6027
6473
  }
6474
+ Object.defineProperty(InlineActivityTriggerComponent.prototype, "interactionContext", {
6475
+ get: function () {
6476
+ return this._interactionContext;
6477
+ },
6478
+ enumerable: false,
6479
+ configurable: true
6480
+ });
6028
6481
  return InlineActivityTriggerComponent;
6029
6482
  }(AbstractActivityTriggerComponent));
6030
6483
  InlineActivityTriggerComponent.decorators = [
6031
6484
  { type: i0.Component, args: [{
6032
6485
  selector: 'aup-inline-activity-trigger',
6033
6486
  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}"]
6487
+ styles: [":host{display:inline-block}\n"]
6035
6488
  },] }
6036
6489
  ];
6037
6490
  InlineActivityTriggerComponent.ctorParameters = function () { return []; };
6038
6491
  InlineActivityTriggerComponent.propDecorators = {
6039
- interactionContext: [{ type: i0.ViewChild, args: [InPlaceInteractionContextComponent, { static: true },] }]
6492
+ _interactionContext: [{ type: i0.ViewChild, args: [InPlaceInteractionContextComponent, { static: true },] }]
6040
6493
  };
6041
6494
 
6042
6495
  /**
@@ -6074,6 +6527,7 @@
6074
6527
  var self = this;
6075
6528
  var overlayRef = this._overlay.create({
6076
6529
  hasBackdrop: false,
6530
+ disposeOnNavigation: true,
6077
6531
  panelClass: 'aup-popup-interaction-panel',
6078
6532
  positionStrategy: this._overlay.position()
6079
6533
  .flexibleConnectedTo(this._element)
@@ -6129,7 +6583,7 @@
6129
6583
  { type: i0.Component, args: [{
6130
6584
  selector: 'aup-popup-interaction-context',
6131
6585
  template: "<ng-content></ng-content>\n",
6132
- styles: [":host{display:inline-block}:host.interaction-active{background:rgba(0,0,0,.05)}"]
6586
+ styles: [":host{display:inline-block}:host.interaction-active{background:rgba(0,0,0,.05)}\n"]
6133
6587
  },] }
6134
6588
  ];
6135
6589
  PopupInteractionContextComponent.ctorParameters = function () { return [
@@ -6185,7 +6639,7 @@
6185
6639
  });
6186
6640
  };
6187
6641
  InteractionContextTriggerFor.prototype.prepareActivityData = function () {
6188
- return ___default['default'].isFunction(this.activityDataFactory()) ? this.activityDataFactory() : this.activityData;
6642
+ return ___default["default"].isFunction(this.activityDataFactory()) ? this.activityDataFactory() : this.activityData;
6189
6643
  };
6190
6644
  return InteractionContextTriggerFor;
6191
6645
  }(pectin.GarbageCollector));
@@ -6209,45 +6663,114 @@
6209
6663
  // @see https://github.com/ng-packagr/ng-packagr/issues/641 and https://github.com/angular/angular/issues/21123
6210
6664
  // 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
6665
  // @dynamic
6212
- var AbstractInputActivity = /** @class */ (function (_super) {
6213
- __extends(AbstractInputActivity, _super);
6214
- function AbstractInputActivity(data) {
6215
- var _this = _super.call(this) || this;
6666
+ exports.InputActivity = /** @class */ (function (_super) {
6667
+ __extends(InputActivity, _super);
6668
+ function InputActivity(data) {
6669
+ var _this = this;
6670
+ var _a, _b;
6671
+ _this = _super.call(this) || this;
6216
6672
  _this.data = data;
6217
6673
  _this.class = 'aup-input-activity';
6218
6674
  var form = new pectin.DirtyTrackingForm();
6219
6675
  _this.valueModel = form.valueModel(_this.data.initialValue);
6220
6676
  _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);
6677
+ // TODO: move to global configuration
6678
+ _this.confirmFace = (_a = data.confirmFace) !== null && _a !== void 0 ? _a : {
6679
+ icon: function () { return 'mat:check'; }
6680
+ };
6681
+ _this.cancelFace = (_b = data.cancelFace) !== null && _b !== void 0 ? _b : {
6682
+ icon: function () { return 'mat:clear'; }
6683
+ };
6684
+ _this.confirmCommand = pectin.Command.create(function () { return __awaiter(_this, void 0, void 0, function () {
6685
+ var self_1, allGood_1, result, e_1;
6686
+ return __generator(this, function (_c) {
6687
+ switch (_c.label) {
6688
+ case 0:
6689
+ if (!this.valueModel.validate()) return [3 /*break*/, 6];
6690
+ if (!data.save) return [3 /*break*/, 5];
6691
+ self_1 = this;
6692
+ _c.label = 1;
6693
+ case 1:
6694
+ _c.trys.push([1, 3, , 4]);
6695
+ allGood_1 = true;
6696
+ return [4 /*yield*/, data.save(this.valueModel.value, {
6697
+ injectError: function (error) {
6698
+ allGood_1 = false;
6699
+ self_1.valueModel.injectErrors([error]);
6700
+ }
6701
+ })];
6702
+ case 2:
6703
+ result = _c.sent();
6704
+ if (allGood_1) {
6705
+ this.done(this.valueModel.value);
6706
+ }
6707
+ return [3 /*break*/, 4];
6708
+ case 3:
6709
+ e_1 = _c.sent();
6710
+ console.error(e_1);
6711
+ return [3 /*break*/, 4];
6712
+ case 4: return [3 /*break*/, 6];
6713
+ case 5:
6714
+ this.done(this.valueModel.value);
6715
+ _c.label = 6;
6716
+ case 6: return [2 /*return*/];
6229
6717
  }
6230
- }
6231
- });
6718
+ });
6719
+ }); });
6232
6720
  _this.cancelCommand = pectin.Command.create(function () {
6233
6721
  _this.cancel();
6234
6722
  });
6723
+ _this.busyWhile(_this.confirmCommand.busy);
6235
6724
  return _this;
6236
6725
  }
6237
- AbstractInputActivity.prototype.onActivityReady = function () {
6726
+ Object.defineProperty(InputActivity.prototype, "layout", {
6727
+ get: function () {
6728
+ var _a, _b;
6729
+ return (_b = (_a = this.data) === null || _a === void 0 ? void 0 : _a.layout) !== null && _b !== void 0 ? _b : InputActivity.Layout.BLOCK;
6730
+ },
6731
+ enumerable: false,
6732
+ configurable: true
6733
+ });
6734
+ InputActivity.prototype.onActivityReady = function () {
6238
6735
  this.valueModel.focusContext.requestFocus();
6239
6736
  };
6240
- return AbstractInputActivity;
6737
+ Object.defineProperty(InputActivity.prototype, "additionalCssClassName", {
6738
+ get: function () {
6739
+ var _a;
6740
+ return (_a = this.data.cssClassName) !== null && _a !== void 0 ? _a : '';
6741
+ },
6742
+ enumerable: false,
6743
+ configurable: true
6744
+ });
6745
+ InputActivity.prototype.onEscape = function () {
6746
+ if (this.shouldCancelOnEscape() && this.cancelCommand.enabled.value) {
6747
+ this.cancelCommand.execute();
6748
+ }
6749
+ };
6750
+ InputActivity.prototype.shouldCancelOnEscape = function () {
6751
+ return ___namespace.isNil(this.data.cancelOnEscape) // we default to true..
6752
+ || this.data.cancelOnEscape;
6753
+ };
6754
+ return InputActivity;
6241
6755
  }(Activity));
6242
- AbstractInputActivity.decorators = [
6756
+ exports.InputActivity.decorators = [
6243
6757
  { type: i0.Component, args: [{ template: "" },] }
6244
6758
  ];
6245
- AbstractInputActivity.ctorParameters = function () { return [
6759
+ exports.InputActivity.ctorParameters = function () { return [
6246
6760
  { type: undefined, decorators: [{ type: i0.Inject, args: [ACTIVITY_DATA,] }] }
6247
6761
  ]; };
6248
- AbstractInputActivity.propDecorators = {
6249
- class: [{ type: i0.HostBinding, args: ['class',] }]
6762
+ exports.InputActivity.propDecorators = {
6763
+ class: [{ type: i0.HostBinding, args: ['class',] }],
6764
+ layout: [{ type: i0.Input }, { type: i0.HostBinding, args: ['attr.layout',] }],
6765
+ additionalCssClassName: [{ type: i0.HostBinding, args: ["class",] }],
6766
+ onEscape: [{ type: i0.HostListener, args: ['keydown.escape',] }]
6250
6767
  };
6768
+ (function (InputActivity) {
6769
+ InputActivity.Layout = typescriptStringEnums.Enum({
6770
+ INLINE: 'inline',
6771
+ BLOCK: 'block'
6772
+ });
6773
+ })(exports.InputActivity || (exports.InputActivity = {}));
6251
6774
 
6252
6775
  var StringInputActivity = /** @class */ (function (_super) {
6253
6776
  __extends(StringInputActivity, _super);
@@ -6255,11 +6778,11 @@
6255
6778
  return _super !== null && _super.apply(this, arguments) || this;
6256
6779
  }
6257
6780
  return StringInputActivity;
6258
- }(AbstractInputActivity));
6781
+ }(exports.InputActivity));
6259
6782
  StringInputActivity.decorators = [
6260
6783
  { type: i0.Component, args: [{
6261
6784
  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 "
6785
+ 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
6786
  },] }
6264
6787
  ];
6265
6788
 
@@ -6289,11 +6812,11 @@
6289
6812
  configurable: true
6290
6813
  });
6291
6814
  return SelectInputActivity;
6292
- }(AbstractInputActivity));
6815
+ }(exports.InputActivity));
6293
6816
  SelectInputActivity.decorators = [
6294
6817
  { type: i0.Component, args: [{
6295
6818
  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 "
6819
+ 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
6820
  },] }
6298
6821
  ];
6299
6822
 
@@ -6400,36 +6923,6 @@
6400
6923
  return TableModel;
6401
6924
  }(AbstractTableModel));
6402
6925
 
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
6926
  /**
6434
6927
  * @file Automatically generated by barrelsby.
6435
6928
  */
@@ -6442,21 +6935,260 @@
6442
6935
  _this.anchorY = 'bottom';
6443
6936
  return _this;
6444
6937
  }
6938
+ Object.defineProperty(PopupActivityTriggerComponent.prototype, "interactionContext", {
6939
+ get: function () {
6940
+ return this._interactionContext;
6941
+ },
6942
+ enumerable: false,
6943
+ configurable: true
6944
+ });
6445
6945
  return PopupActivityTriggerComponent;
6446
6946
  }(AbstractActivityTriggerComponent));
6447
6947
  PopupActivityTriggerComponent.decorators = [
6448
6948
  { type: i0.Component, args: [{
6449
6949
  selector: 'aup-popup-activity-trigger',
6450
6950
  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}"]
6951
+ styles: [":host{display:inline-block}\n"]
6452
6952
  },] }
6453
6953
  ];
6454
6954
  PopupActivityTriggerComponent.ctorParameters = function () { return []; };
6455
6955
  PopupActivityTriggerComponent.propDecorators = {
6456
6956
  anchorX: [{ type: i0.Input }],
6457
6957
  anchorY: [{ type: i0.Input }],
6458
- interactionContext: [{ type: i0.ViewChild, args: [PopupInteractionContextComponent, { static: true },] }]
6958
+ _interactionContext: [{ type: i0.ViewChild, args: [PopupInteractionContextComponent, { static: true },] }]
6959
+ };
6960
+
6961
+ exports.InlineEditorModel = /** @class */ (function (_super) {
6962
+ __extends(InlineEditorModel, _super);
6963
+ function InlineEditorModel(valueModel, saveCallback) {
6964
+ var _this = _super.call(this) || this;
6965
+ _this.valueModel = valueModel;
6966
+ _this.saveCallback = saveCallback;
6967
+ _this.editing = new pectin.MutableValueModel(false);
6968
+ _this._validators = new pectin.MutableListModel();
6969
+ _this._editingEnabled = _this.registerDisposable(new pectin.DelegatingValueModel().withDefault(true));
6970
+ pectin.assert.notNil(valueModel);
6971
+ var when = pectin.Dsl.disposeWith(_this).when;
6972
+ when(_this.editingEnabled).becomesFalsey(function () { return _this.cancelEdit(); });
6973
+ return _this;
6974
+ }
6975
+ Object.defineProperty(InlineEditorModel.prototype, "editingEnabled", {
6976
+ get: function () {
6977
+ return this._editingEnabled.readonly;
6978
+ },
6979
+ enumerable: false,
6980
+ configurable: true
6981
+ });
6982
+ InlineEditorModel.prototype.disableWhile = function (condition) {
6983
+ var chain = pectin.Dsl.disposeWith(this).chain;
6984
+ this.enableWhile(chain(condition).isFalsey());
6985
+ return this;
6986
+ };
6987
+ InlineEditorModel.prototype.enableWhile = function (condition) {
6988
+ this._editingEnabled.setDelegate(condition);
6989
+ return this;
6990
+ };
6991
+ Object.defineProperty(InlineEditorModel.prototype, "validators", {
6992
+ get: function () {
6993
+ return this._validators.readonly;
6994
+ },
6995
+ enumerable: false,
6996
+ configurable: true
6997
+ });
6998
+ InlineEditorModel.prototype.validateUsing = function (validator) {
6999
+ this._validators.push(validator);
7000
+ return this;
7001
+ };
7002
+ InlineEditorModel.prototype.isEditing = function () {
7003
+ return this.editing.value;
7004
+ };
7005
+ InlineEditorModel.prototype.cancelEdit = function () {
7006
+ this.editing.value = false;
7007
+ };
7008
+ InlineEditorModel.prototype.startEditing = function () {
7009
+ this.editing.value = true;
7010
+ };
7011
+ return InlineEditorModel;
7012
+ }(pectin.GarbageCollector));
7013
+ (function (InlineEditorModel) {
7014
+ function create(valueModel, options) {
7015
+ return new InlineEditorModel(valueModel, options.save);
7016
+ }
7017
+ InlineEditorModel.create = create;
7018
+ })(exports.InlineEditorModel || (exports.InlineEditorModel = {}));
7019
+ pectin.TrackExternal.oneTimeBinding(exports.InlineEditorModel);
7020
+
7021
+ /**
7022
+ * @example
7023
+ * const source: ValueModel<string> = ...;
7024
+ * const model = InlineEditorModel.create(source, {
7025
+ * save(updated:string, context: EditContext) => {
7026
+ * try {
7027
+ * try and save the thing...
7028
+ * } catch(error) {
7029
+ * context.injectError(error)
7030
+ * }
7031
+ * }).validateUsing(Validator.present("We'll need a value");
7032
+ *
7033
+ * # in the view
7034
+ * <aup-inline-string-editor
7035
+ * label="My field"
7036
+ * placeHolder="I'm ready for a string..."
7037
+ * [editorModel]="model"></aup-inline-string-editor>
7038
+ */
7039
+ exports.InlineStringEditorComponent = /** @class */ (function (_super) {
7040
+ __extends(InlineStringEditorComponent, _super);
7041
+ function InlineStringEditorComponent(interactionService) {
7042
+ var _this = _super.call(this) || this;
7043
+ _this.editingEnabled = _this.registerDisposable(new pectin.DelegatingValueModel());
7044
+ var _a = pectin.Dsl.disposeWith(_this), chain = _a.chain, when = _a.when, valueOf = _a.valueOf;
7045
+ var modalIC = interactionService.createModalInteractionContextDisposedWith(_this);
7046
+ var resolvedFacesModel = chain(_this.facesModel).map(function (userFaces) {
7047
+ return Object.assign(Object.assign({}, InlineStringEditorComponent.DEFAULT_FACES), userFaces);
7048
+ }, { allowNil: true });
7049
+ _this.editFaceModel = resolvedFacesModel.pluck('edit');
7050
+ _this.saveFace = resolvedFacesModel.pluck('save');
7051
+ _this.cancelFace = resolvedFacesModel.pluck('cancel');
7052
+ var self = _this;
7053
+ _this.editCommand = pectin.Command.create(function () { return __awaiter(_this, void 0, void 0, function () {
7054
+ var e_1;
7055
+ return __generator(this, function (_a) {
7056
+ switch (_a.label) {
7057
+ case 0:
7058
+ this.editorModel.editing.value = true;
7059
+ _a.label = 1;
7060
+ case 1:
7061
+ _a.trys.push([1, 3, 4, 5]);
7062
+ return [4 /*yield*/, this.interactionContext.startActivity(StringInputActivity, this.createInputActivityData())];
7063
+ case 2:
7064
+ _a.sent();
7065
+ return [3 /*break*/, 5];
7066
+ case 3:
7067
+ e_1 = _a.sent();
7068
+ return [3 /*break*/, 5];
7069
+ case 4:
7070
+ this.editorModel.editing.value = false;
7071
+ return [7 /*endfinally*/];
7072
+ case 5: return [2 /*return*/];
7073
+ }
7074
+ });
7075
+ }); }).enableWhile(_this.editingEnabled);
7076
+ _this.onDispose(function () { return _this.cancelEdit(); });
7077
+ return _this;
7078
+ }
7079
+ InlineStringEditorComponent.prototype.ngOnInit = function () {
7080
+ var _this = this;
7081
+ // our editor model is a one time binding without delegates so we can only
7082
+ // use it once we've been initialised
7083
+ var _a = pectin.Dsl.disposeWith(this), chain = _a.chain, when = _a.when, valueOf = _a.valueOf;
7084
+ if (!this.editorModel) {
7085
+ typescriptUtilities.lang.illegalState('editorModel is required');
7086
+ }
7087
+ this.editingEnabled.setDelegate(this.editorModel.editingEnabled);
7088
+ when(this.editorModel.editing).becomesTruthy(function () {
7089
+ _this.editCommand.execute();
7090
+ }, { asLongAs: this.editCommand.enabled });
7091
+ when(this.editorModel.editing).becomesFalsey(function () { return _this.cancelEdit(); });
7092
+ this.empty = valueOf.any(chain.stringValue(this.editorModel.valueModel).isBlank()
7093
+ // deviceDescription.isNil()
7094
+ ).areTruthy();
7095
+ this.displayValue = chain(this.editorModel.valueModel).map(function (v) {
7096
+ return ___namespace.isEmpty(v) ? _this.placeHolderModel.value : v;
7097
+ }, { dependsOn: this.placeHolderModel, allowNil: true });
7098
+ };
7099
+ InlineStringEditorComponent.prototype.createInputActivityData = function () {
7100
+ var self = this;
7101
+ return {
7102
+ initialValue: self.editorModel.valueModel.value,
7103
+ confirmFace: self.saveFace.value,
7104
+ cancelFace: self.cancelFace.value,
7105
+ placeholder: self.placeHolderModel.value,
7106
+ label: self.label,
7107
+ layout: exports.InputActivity.Layout.INLINE,
7108
+ validators: self.editorModel.validators.value,
7109
+ save: function (value, inputContext) {
7110
+ return __awaiter(this, void 0, void 0, function () {
7111
+ return __generator(this, function (_a) {
7112
+ switch (_a.label) {
7113
+ case 0: return [4 /*yield*/, self.editorModel.saveCallback(value, inputContext)];
7114
+ case 1:
7115
+ _a.sent();
7116
+ return [2 /*return*/];
7117
+ }
7118
+ });
7119
+ });
7120
+ }
7121
+ };
7122
+ };
7123
+ InlineStringEditorComponent.prototype.cancelEdit = function () {
7124
+ if (this.isEditing()) {
7125
+ this.interactionContext.cancelActiveActivity();
7126
+ }
7127
+ };
7128
+ InlineStringEditorComponent.prototype.startEdit = function () {
7129
+ if (!this.isEditing() && this.editCommand.enabled.value) {
7130
+ this.editCommand.execute();
7131
+ }
7132
+ };
7133
+ InlineStringEditorComponent.prototype.isEditing = function () {
7134
+ return this.interactionContext.isActive();
7135
+ };
7136
+ InlineStringEditorComponent.prototype.isEmpty = function () {
7137
+ return this.empty.value;
7138
+ };
7139
+ return InlineStringEditorComponent;
7140
+ }(DisposableComponent));
7141
+ exports.InlineStringEditorComponent.decorators = [
7142
+ { type: i0.Component, args: [{
7143
+ selector: 'aup-inline-string-editor',
7144
+ 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"
7145
+ },] }
7146
+ ];
7147
+ exports.InlineStringEditorComponent.ctorParameters = function () { return [
7148
+ { type: exports.InteractionService }
7149
+ ]; };
7150
+ exports.InlineStringEditorComponent.propDecorators = {
7151
+ editorModel: [{ type: i0.Input }],
7152
+ facesModel: [{ type: i0.Input }],
7153
+ faces: [{ type: i0.Input }],
7154
+ interactionContext: [{ type: i0.ViewChild, args: [InPlaceInteractionContextComponent,] }],
7155
+ label: [{ type: i0.Input }],
7156
+ placeHolder: [{ type: i0.Input }],
7157
+ placeHolderModel: [{ type: i0.Input }]
6459
7158
  };
7159
+ __decorate([
7160
+ pectin.TrackExternal(),
7161
+ __metadata("design:type", exports.InlineEditorModel)
7162
+ ], exports.InlineStringEditorComponent.prototype, "editorModel", void 0);
7163
+ __decorate([
7164
+ pectin.TrackExternal(),
7165
+ __metadata("design:type", pectin.ValueModel)
7166
+ ], exports.InlineStringEditorComponent.prototype, "facesModel", void 0);
7167
+ __decorate([
7168
+ pectin.StoreInValueModel('facesModel'),
7169
+ __metadata("design:type", Object)
7170
+ ], exports.InlineStringEditorComponent.prototype, "faces", void 0);
7171
+ __decorate([
7172
+ pectin.StoreInValueModel('placeHolderModel'),
7173
+ __metadata("design:type", String)
7174
+ ], exports.InlineStringEditorComponent.prototype, "placeHolder", void 0);
7175
+ __decorate([
7176
+ pectin.TrackExternal(),
7177
+ __metadata("design:type", pectin.ValueModel)
7178
+ ], exports.InlineStringEditorComponent.prototype, "placeHolderModel", void 0);
7179
+ (function (InlineStringEditorComponent) {
7180
+ InlineStringEditorComponent.DEFAULT_FACES = {
7181
+ edit: {
7182
+ icon: function () { return 'mat:edit'; }
7183
+ },
7184
+ save: {
7185
+ icon: function () { return 'mat:check'; }
7186
+ },
7187
+ cancel: {
7188
+ icon: function () { return 'mat:clear'; }
7189
+ }
7190
+ };
7191
+ })(exports.InlineStringEditorComponent || (exports.InlineStringEditorComponent = {}));
6460
7192
 
6461
7193
  var InteractionModule = /** @class */ (function () {
6462
7194
  function InteractionModule() {
@@ -6476,7 +7208,11 @@
6476
7208
  DirectivesModule,
6477
7209
  flexLayout.FlexModule,
6478
7210
  flexLayout.GridModule,
6479
- ComponentsModule
7211
+ ComponentsModule,
7212
+ forms.FormsModule,
7213
+ input.MatInputModule,
7214
+ formField.MatFormFieldModule,
7215
+ a11y.A11yModule
6480
7216
  ],
6481
7217
  declarations: [
6482
7218
  ActivityContainerComponent,
@@ -6486,20 +7222,22 @@
6486
7222
  ActivityOutletComponent,
6487
7223
  InPlaceInteractionContextComponent,
6488
7224
  AddItemInteractionContextComponent,
6489
- ActivityActionsComponent,
7225
+ exports.ActivityActionsComponent,
6490
7226
  PopupInteractionContextComponent,
6491
7227
  StringInputActivity,
6492
7228
  SelectInputActivity,
6493
- AbstractInputActivity,
7229
+ exports.InputActivity,
6494
7230
  InteractionContextTriggerFor,
6495
7231
  Activity,
6496
7232
  ActivityTitleComponent,
6497
7233
  ActivityBodyComponent,
6498
- ActivityActionsComponent,
7234
+ exports.ActivityActionsComponent,
6499
7235
  AbstractActivityTriggerComponent,
6500
7236
  PopupActivityTriggerComponent,
6501
7237
  InlineActivityTriggerComponent,
6502
- ModalActivityTriggerComponent
7238
+ ModalActivityTriggerComponent,
7239
+ exports.AddCardActivityComponent,
7240
+ exports.InlineStringEditorComponent,
6503
7241
  ],
6504
7242
  exports: [
6505
7243
  ActivityContainerComponent,
@@ -6507,7 +7245,7 @@
6507
7245
  ActivityTitleComponent,
6508
7246
  InPlaceInteractionContextComponent,
6509
7247
  AddItemInteractionContextComponent,
6510
- ActivityActionsComponent,
7248
+ exports.ActivityActionsComponent,
6511
7249
  PopupInteractionContextComponent,
6512
7250
  InteractionContextTriggerFor,
6513
7251
  StringInputActivity,
@@ -6515,7 +7253,9 @@
6515
7253
  ActivityBodyComponent,
6516
7254
  PopupActivityTriggerComponent,
6517
7255
  InlineActivityTriggerComponent,
6518
- ModalActivityTriggerComponent
7256
+ ModalActivityTriggerComponent,
7257
+ exports.AddCardActivityComponent,
7258
+ exports.InlineStringEditorComponent,
6519
7259
  ],
6520
7260
  entryComponents: [
6521
7261
  ActivityContainerComponent,
@@ -6600,7 +7340,7 @@
6600
7340
  return _this;
6601
7341
  }
6602
7342
  RouteId.prototype.isEmptyValue = function (value) {
6603
- return ___default['default'].isNil(value);
7343
+ return ___default["default"].isNil(value);
6604
7344
  };
6605
7345
  RouteId.prototype.hasChanged = function (a, b) {
6606
7346
  return a !== b;
@@ -6618,7 +7358,7 @@
6618
7358
  return _this;
6619
7359
  }
6620
7360
  ValueParameter.prototype.isEmptyValue = function (value) {
6621
- return ___default['default'].isNil(value);
7361
+ return ___default["default"].isNil(value);
6622
7362
  };
6623
7363
  ValueParameter.prototype.hasChanged = function (a, b) {
6624
7364
  return a !== b;
@@ -6636,10 +7376,10 @@
6636
7376
  return _this;
6637
7377
  }
6638
7378
  ArrayParameter.prototype.isEmptyValue = function (value) {
6639
- return ___default['default'].isNil(value) || value.length < 1;
7379
+ return ___default["default"].isNil(value) || value.length < 1;
6640
7380
  };
6641
7381
  ArrayParameter.prototype.hasChanged = function (a, b) {
6642
- return !___default['default'].isEqual(a, b);
7382
+ return !___default["default"].isEqual(a, b);
6643
7383
  };
6644
7384
  return ArrayParameter;
6645
7385
  }(ParameterDefinition));
@@ -6688,13 +7428,13 @@
6688
7428
  };
6689
7429
  PlaceDefinition.prototype.getPlaceData = function (key, defaultValue) {
6690
7430
  return this.data ?
6691
- ___default['default'].isNil(this.data[key]) ? defaultValue : this.data[key] :
7431
+ ___default["default"].isNil(this.data[key]) ? defaultValue : this.data[key] :
6692
7432
  defaultValue;
6693
7433
  };
6694
7434
  PlaceDefinition.prototype.searchPlaceData = function (keys, defaultValue) {
6695
7435
  var _this = this;
6696
7436
  if (this.data) {
6697
- var found = keys.find(function (key) { return !___default['default'].isNil(_this.data[key]); });
7437
+ var found = keys.find(function (key) { return !___default["default"].isNil(_this.data[key]); });
6698
7438
  return found ? this.data[found] : defaultValue;
6699
7439
  }
6700
7440
  else {
@@ -6764,7 +7504,7 @@
6764
7504
  // because our id routes redirect if the id isn't present we always have a id
6765
7505
  // parameter in our params. This will bugger our remember and defaultvalue sanitisation
6766
7506
  // as it'll see that the id is present (event thought its a blank string).
6767
- if (!___default['default'].isEmpty(value)) {
7507
+ if (!___default["default"].isEmpty(value)) {
6768
7508
  result[def.name] = def.urlFormat.parse(value);
6769
7509
  }
6770
7510
  }
@@ -6827,17 +7567,28 @@
6827
7567
  _this.childPlaces = _this.placeDefinition.children.map(function (d) { return d.component; });
6828
7568
  return _this;
6829
7569
  }
6830
- // @Trace()
6831
7570
  PlaceComponent.prototype.initialiseVisit = function (visit, notifyVisitChanged) {
6832
7571
  var _this = this;
6833
7572
  pectin.assert.isNil(this.visitModel.value);
6834
7573
  var when = pectin.Dsl.disposeWith(this).when;
6835
7574
  this.visitModel.value = visit;
6836
7575
  pectin.DebugContext.getOrCreate(this.visitModel).tag(this.placeDefinition.component.name + ".visitModel");
6837
- this.placeDefinition.getVisitParameterDefs().forEach(function (parameterDef) { return _this.installBinding(parameterDef); });
7576
+ // we track if the any of the bindings updated the route. If so we remember it and update the
7577
+ // route in one go at the end.
7578
+ this.placeDefinition
7579
+ .getVisitParameterDefs()
7580
+ .forEach(function (parameterDef) { return _this.installAndInitialiseBinding(visit, parameterDef); });
6838
7581
  when(this.visitModel).changes(function (current, previous) {
6839
7582
  notifyVisitChanged(current, previous);
6840
7583
  }, { unless: this._inVisitUpdate });
7584
+ // TODO: this needs to do a replace url option so that the new url isn't put in the history.... for
7585
+ // now we're not doing it as it's a fair bit of effort and will only affect people if they're
7586
+ // cutting and pasting urls to each other.
7587
+ // // the binding process can update the visit (e.g. if a selection model has already selected during
7588
+ // // component construction) and there was no value specified in the route
7589
+ // if (visit.hasRoutingChangedFrom(this.visitModel.value)) {
7590
+ // notifyVisitChanged(this.visitModel.value, visit)
7591
+ // }
6841
7592
  };
6842
7593
  PlaceComponent.prototype.updateVisit = function (visit) {
6843
7594
  var _this = this;
@@ -6851,7 +7602,12 @@
6851
7602
  return !!this.visitModel.value;
6852
7603
  };
6853
7604
  // @Trace()
6854
- PlaceComponent.prototype.installBinding = function (parameterDef) {
7605
+ /**
7606
+ * Initialised the component bindings. If any binding has an initial model value (e.g. a selection model
7607
+ * initialised during the constructor) and the route has nothing, then the visit will be udpated and this
7608
+ * method will return ture to nofiy the the visit has changed.
7609
+ */
7610
+ PlaceComponent.prototype.installAndInitialiseBinding = function (initialVisit, parameterDef) {
6855
7611
  var model = this[parameterDef.propertyName];
6856
7612
  pectin.DebugContext.tag(model, this.placeDefinition.component.name + "." + parameterDef.propertyName);
6857
7613
  var binding = this.registerDisposable(new pectin.Binding(this.visitModel, model, {
@@ -6865,7 +7621,17 @@
6865
7621
  return currentVisit.replace(parameterDef, value);
6866
7622
  }
6867
7623
  }));
6868
- binding.writeRight();
7624
+ // Now we need to initialise the binding direction. If we have a value in the Url then we should always push
7625
+ // 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
7626
+ // component constructor) then we should push that to the route.
7627
+ var isInVisit = !___namespace.isNil(initialVisit.getParameterValue(parameterDef));
7628
+ var isInModel = !___namespace.isNil(model.value);
7629
+ if (!isInVisit && isInModel) {
7630
+ binding.writeLeft(); // push it to the route
7631
+ }
7632
+ else {
7633
+ binding.writeRight(); // push it to the model
7634
+ }
6869
7635
  };
6870
7636
  Object.defineProperty(PlaceComponent.prototype, "placeDefinition", {
6871
7637
  get: function () {
@@ -7416,7 +8182,7 @@
7416
8182
  var currentIds = this.interactionServiceAdapter.getActiveInteractionContextIds();
7417
8183
  var previousIds = this.urlService.getCurrentLocationUrlSnapshot().getInteractionIds();
7418
8184
  // console.log(`---> synchroniseInteractionIds`, { is: currentIds.join(','), was: previousIds.join(',') });
7419
- if (___default['default'].isEqual(currentIds, previousIds)) {
8185
+ if (___default["default"].isEqual(currentIds, previousIds)) {
7420
8186
  // console.log('### Activity context ids were the same, skipping');
7421
8187
  this.context.finishRoutingSession();
7422
8188
  }
@@ -7896,7 +8662,7 @@
7896
8662
  return !!((_a = this._previousVisits) === null || _a === void 0 ? void 0 : _a.getVisitFor(placeDef));
7897
8663
  };
7898
8664
  PlaceHistory.prototype.getMostRecentVisitFor = function (placeDef) {
7899
- return ___default['default'].first(this.getHistory(placeDef));
8665
+ return ___default["default"].first(this.getHistory(placeDef));
7900
8666
  };
7901
8667
  PlaceHistory.prototype.getHistory = function (placeDef) {
7902
8668
  var history = this._archive.get(placeDef);
@@ -7913,7 +8679,7 @@
7913
8679
  var _this = this;
7914
8680
  visits.forEach(function (state) {
7915
8681
  var history = _this.getHistory(state.placeDefinition);
7916
- var previousState = ___default['default'].first(history);
8682
+ var previousState = ___default["default"].first(history);
7917
8683
  if (!previousState || state.hasChangedFrom(previousState)) {
7918
8684
  history.unshift(state); // LIFO
7919
8685
  _this.setHistory(state.placeDefinition, history.slice(0, _this.placeHistoryDepth));
@@ -8037,7 +8803,7 @@
8037
8803
  };
8038
8804
  Object.defineProperty(ConsolidatedParameterMap.prototype, "keys", {
8039
8805
  get: function () {
8040
- return this.paramMaps.reduce(function (result, params) { return result.concat(params.keys); }, []);
8806
+ return ___namespace.uniq(this.paramMaps.reduce(function (result, params) { return result.concat(params.keys); }, []));
8041
8807
  },
8042
8808
  enumerable: false,
8043
8809
  configurable: true
@@ -8126,9 +8892,13 @@
8126
8892
  });
8127
8893
  return new Visit(this.placeDefinition, params);
8128
8894
  };
8895
+ // @Trace()
8129
8896
  Visit.prototype.hasRoutingChangedFrom = function (other) {
8130
8897
  var samePlace = other.placeDefinition === this.placeDefinition;
8131
- var sameRouteParameters = ___namespace.isEqual(this.placeDefinition.getFormattedRouteParameters(this, true), this.placeDefinition.getFormattedRouteParameters(other, true));
8898
+ var currentParams = this.placeDefinition.getFormattedRouteParameters(this, true);
8899
+ var otherParams = this.placeDefinition.getFormattedRouteParameters(other, true);
8900
+ // console.log({currentParams, otherParams});
8901
+ var sameRouteParameters = ___namespace.isEqual(currentParams, otherParams);
8132
8902
  return !samePlace || !sameRouteParameters;
8133
8903
  };
8134
8904
  Visit.prototype.hasChangedFrom = function (other) {
@@ -8152,6 +8922,7 @@
8152
8922
  this.url = url;
8153
8923
  this.urlTree = urlSerializer.parse(url);
8154
8924
  }
8925
+ // @Trace()
8155
8926
  UrlSnapshot.prototype.updateVisitSegments = function (visit) {
8156
8927
  var newUrlTree = this.urlSerializer.parse(this.url);
8157
8928
  // Ugly, but it works for now.
@@ -8203,7 +8974,7 @@
8203
8974
  return this.getInteractionIds().length > 0;
8204
8975
  };
8205
8976
  UrlSnapshot.prototype.hasInteractionIds = function (ids) {
8206
- return ___default['default'].isEqual(this.getInteractionIds(), ids);
8977
+ return ___default["default"].isEqual(this.getInteractionIds(), ids);
8207
8978
  };
8208
8979
  // @Trace()
8209
8980
  UrlSnapshot.prototype.updateInteractionIds = function (ids) {
@@ -8229,12 +9000,6 @@
8229
9000
  };
8230
9001
  return UrlSnapshot;
8231
9002
  }());
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
9003
  __decorate([
8239
9004
  src.Memoize(),
8240
9005
  __metadata("design:type", Function),
@@ -8321,6 +9086,9 @@
8321
9086
  { type: i1$1.UrlSerializer }
8322
9087
  ]; };
8323
9088
 
9089
+ function asArray(item) {
9090
+ return Array.isArray(item) ? item : [item];
9091
+ }
8324
9092
  exports.PlaceRouter = /** @class */ (function (_super) {
8325
9093
  __extends(PlaceRouter, _super);
8326
9094
  function PlaceRouter(angularRouter, angularLocation, interactionService, urlService, placeHistory) {
@@ -8337,7 +9105,7 @@
8337
9105
  * An observable model containing the authoriser function. This allows places to react to changes
8338
9106
  * in permissions when any underlying auth logic changes, e.g. a role being removed from a user.
8339
9107
  */
8340
- _this._accessGuard = new pectin.DelegatingValueModel().withDefault(new exports.PlaceAccessGuard.NoAuth());
9108
+ _this._accessGuard = _this.registerDisposable(new pectin.DelegatingValueModel().withDefault(new exports.PlaceAccessGuard.NoAuth()));
8341
9109
  if (window['Cypress']) {
8342
9110
  window['aup.PlaceRouter'] = _this;
8343
9111
  }
@@ -8500,17 +9268,15 @@
8500
9268
  };
8501
9269
  PlaceRouter.prototype.navigate = function (visit, options) {
8502
9270
  var _this = this;
9271
+ var commands = asArray(visit).reduce(function (result, v) {
9272
+ return __spreadArray(__spreadArray(__spreadArray([], __read(result)), [v.placeDefinition.path]), __read(_this.createRouteParameters(v)));
9273
+ }, []);
8503
9274
  return this.doNavigation(visit, function (router) { return __awaiter(_this, void 0, void 0, function () {
8504
- var commands;
8505
9275
  return __generator(this, function (_a) {
8506
9276
  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
- })];
9277
+ case 0: return [4 /*yield*/, this.angularRouter.navigate(commands, {
9278
+ relativeTo: options ? options.relativeTo : null
9279
+ })];
8514
9280
  case 1:
8515
9281
  _a.sent();
8516
9282
  return [2 /*return*/];
@@ -8529,7 +9295,7 @@
8529
9295
  pectin.lang.illegalState('Navigation already in progress');
8530
9296
  }
8531
9297
  navigation = this.createNavigationSession(this.urlService.getCurrentRouterUrl());
8532
- navigation.storeVisit(visit);
9298
+ asArray(visit).forEach(function (v) { return navigation.storeVisit(v); });
8533
9299
  this.transitionTo(navigation);
8534
9300
  _a.label = 1;
8535
9301
  case 1:
@@ -8625,6 +9391,7 @@
8625
9391
  * to be able to capture the back button on the first page. If we don't then the back click will exit
8626
9392
  * the app directly and we don't get to ask.
8627
9393
  */
9394
+ // @Trace()
8628
9395
  PlaceRouter.prototype.syncInteractionContextIdsWithRouter = function () {
8629
9396
  var _this = this;
8630
9397
  if (this.navigationSession) {
@@ -8668,12 +9435,6 @@
8668
9435
  { type: UrlService },
8669
9436
  { type: exports.PlaceHistory }
8670
9437
  ]; };
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
9438
  (function (PlaceRouter) {
8678
9439
  var State = /** @class */ (function () {
8679
9440
  function State(activeVisits) {
@@ -8701,7 +9462,7 @@
8701
9462
  { type: i0.Component, args: [{
8702
9463
  selector: 'aup-not-authorised-notice',
8703
9464
  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}"]
9465
+ styles: [":host{display:flex;flex-direction:column;align-items:center;justify-content:center}\n"]
8705
9466
  },] }
8706
9467
  ];
8707
9468
  NotAuthorisedNoticeComponent.ctorParameters = function () { return []; };
@@ -8952,7 +9713,7 @@
8952
9713
  selector: 'aup-place-outlet',
8953
9714
  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
9715
  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}"]
9716
+ 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
9717
  },] }
8957
9718
  ];
8958
9719
  PlaceOutletComponent.ctorParameters = function () { return [
@@ -8994,7 +9755,7 @@
8994
9755
  function AbstractPlaceNavigationComponent(placeRouter) {
8995
9756
  var _this = _super.call(this) || this;
8996
9757
  _this.placeRouter = placeRouter;
8997
- _this._activePlaceComponent = new pectin.DelegatingValueModel();
9758
+ _this._activePlaceComponent = _this.registerDisposable(new pectin.DelegatingValueModel());
8998
9759
  _this.trackByPlaceDef = function (data) { return data.place; };
8999
9760
  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;
9000
9761
  _this.placeDefinitions = chain(_this.placesModel)
@@ -9087,7 +9848,7 @@
9087
9848
  { type: i0.Component, args: [{
9088
9849
  selector: 'aup-list-place-nav',
9089
9850
  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)}"]
9851
+ 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
9852
  },] }
9092
9853
  ];
9093
9854
  ListPlaceNavComponent.ctorParameters = function () { return [
@@ -9158,7 +9919,7 @@
9158
9919
  { type: i0.Component, args: [{
9159
9920
  selector: 'aup-side-place-navigation',
9160
9921
  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)}"]
9922
+ 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
9923
  },] }
9163
9924
  ];
9164
9925
  SidePlaceNavigationComponent.ctorParameters = function () { return [
@@ -9180,7 +9941,7 @@
9180
9941
  { type: i0.Component, args: [{
9181
9942
  selector: 'aup-tabbed-place-navigation',
9182
9943
  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}"]
9944
+ styles: [":host{display:block}div.place-holder{border:1px solid green}\n"]
9184
9945
  },] }
9185
9946
  ];
9186
9947
  TabbedPlaceNavigationComponent.ctorParameters = function () { return [
@@ -9512,13 +10273,13 @@
9512
10273
  }
9513
10274
  _a.label = 2;
9514
10275
  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;
10276
+ var navigationSession, params, parsedParams, initialVisit, sanitiser, sanitisedVisit, urlSnapshot;
9516
10277
  return __generator(this, function (_a) {
9517
10278
  switch (_a.label) {
9518
10279
  case 0:
10280
+ navigationSession = this.placeRouter.navigationSession;
9519
10281
  params = new ConsolidatedParameterMap(activatedRoute.url, activatedRoute.paramMap);
9520
10282
  parsedParams = placeDefinition_1.parseRouteParams(params);
9521
- navigationSession = this.placeRouter.navigationSession;
9522
10283
  initialVisit = navigationSession.getVisitFor(placeDefinition_1) || new Visit(placeDefinition_1, parsedParams);
9523
10284
  sanitiser = new VisitSanitiser(navigationSession, activatedRoute, this.router, this.placeHistory, this.injector);
9524
10285
  return [4 /*yield*/, sanitiser.sanitise(initialVisit.mergeRouteParameters(parsedParams))];
@@ -9627,11 +10388,11 @@
9627
10388
  function NumberType() {
9628
10389
  }
9629
10390
  NumberType.prototype.format = function (value) {
9630
- return ___default['default'].isNumber(value) && !___default['default'].isNaN(value) ? "" + value : null;
10391
+ return ___default["default"].isNumber(value) && !___default["default"].isNaN(value) ? "" + value : null;
9631
10392
  };
9632
10393
  NumberType.prototype.parse = function (value) {
9633
10394
  var parsed = Number.parseFloat(value);
9634
- return ___default['default'].isNaN(parsed) ? null : parsed;
10395
+ return ___default["default"].isNaN(parsed) ? null : parsed;
9635
10396
  };
9636
10397
  return NumberType;
9637
10398
  }());
@@ -9807,7 +10568,7 @@
9807
10568
  exports.AUP_PLACE_CONFIG = AUP_PLACE_CONFIG;
9808
10569
  exports.AUP_UNAUTHORISED_PLACE_NOTICE_COMPONENT = AUP_UNAUTHORISED_PLACE_NOTICE_COMPONENT;
9809
10570
  exports.AbstractActivityTriggerComponent = AbstractActivityTriggerComponent;
9810
- exports.AbstractInputActivity = AbstractInputActivity;
10571
+ exports.AbstractCardContainerComponent = AbstractCardContainerComponent;
9811
10572
  exports.AbstractInputComponent = AbstractInputComponent;
9812
10573
  exports.AbstractInteractionContext = AbstractInteractionContext;
9813
10574
  exports.AbstractListInputComponent = AbstractListInputComponent;
@@ -9818,7 +10579,6 @@
9818
10579
  exports.AbstractTableModel = AbstractTableModel;
9819
10580
  exports.AbstractValueInputComponent = AbstractValueInputComponent;
9820
10581
  exports.Activity = Activity;
9821
- exports.ActivityActionsComponent = ActivityActionsComponent;
9822
10582
  exports.ActivityBodyComponent = ActivityBodyComponent;
9823
10583
  exports.ActivityContainerComponent = ActivityContainerComponent;
9824
10584
  exports.ActivityOutletComponent = ActivityOutletComponent;
@@ -9832,6 +10592,7 @@
9832
10592
  exports.CELL_EDITOR_PORTAL = CELL_EDITOR_PORTAL;
9833
10593
  exports.CELL_RENDERER_PORTAL = CELL_RENDERER_PORTAL;
9834
10594
  exports.CardContainerComponent = CardContainerComponent;
10595
+ exports.CardStackComponent = CardStackComponent;
9835
10596
  exports.CellEditorPortalRef = CellEditorPortalRef;
9836
10597
  exports.CellHeaderPortalRef = CellHeaderPortalRef;
9837
10598
  exports.CellPortalRef = CellPortalRef;
@@ -9881,8 +10642,10 @@
9881
10642
  exports.InteractionModule = InteractionModule;
9882
10643
  exports.InteractionServiceRoutingAdapter = InteractionServiceRoutingAdapter;
9883
10644
  exports.LEFT_RIGHT_PLACE_ANIMATION = LEFT_RIGHT_PLACE_ANIMATION;
10645
+ exports.LabelledValueComponent = LabelledValueComponent;
9884
10646
  exports.ListPlaceNavComponent = ListPlaceNavComponent;
9885
10647
  exports.ListPropertyColumnModel = ListPropertyColumnModel;
10648
+ exports.LoadingContainerComponent = LoadingContainerComponent;
9886
10649
  exports.ModalActivityTriggerComponent = ModalActivityTriggerComponent;
9887
10650
  exports.ModalInteractionContextFactory = ModalInteractionContextFactory;
9888
10651
  exports.MoreMenuComponent = MoreMenuComponent;
@@ -9961,9 +10724,10 @@
9961
10724
  exports.slideDownOnEnterAnimation = slideDownOnEnterAnimation;
9962
10725
  exports.slideRightOnEnterAnimation = slideRightOnEnterAnimation;
9963
10726
  exports.treeNodeDecorator = treeNodeDecorator;
9964
- exports.ɵ0 = ɵ0;
10727
+ exports["ɵ0"] = ɵ0;
10728
+ exports["ɵ1"] = ɵ1;
9965
10729
 
9966
10730
  Object.defineProperty(exports, '__esModule', { value: true });
9967
10731
 
9968
- })));
10732
+ }));
9969
10733
  //# sourceMappingURL=coolon-angular-ui-powerups.umd.js.map