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

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 (504) 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 +1189 -348
  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/abstract-interaction-context.js +7 -0
  281. package/esm2015/lib/interaction/abstract-interaction-context.js.map +1 -1
  282. package/esm2015/lib/interaction/abstract-interaction-context.metadata.json +1 -1
  283. package/esm2015/lib/interaction/activity.js +2 -1
  284. package/esm2015/lib/interaction/activity.js.map +1 -1
  285. package/esm2015/lib/interaction/components/activity-actions/activity-actions.component.js +17 -11
  286. package/esm2015/lib/interaction/components/activity-actions/activity-actions.component.js.map +1 -1
  287. package/esm2015/lib/interaction/components/activity-actions/activity-actions.component.metadata.json +1 -1
  288. package/esm2015/lib/interaction/components/activity-container/activity-container.component.js +3 -3
  289. package/esm2015/lib/interaction/components/activity-container/activity-container.component.js.map +1 -1
  290. package/esm2015/lib/interaction/components/activity-container/activity-container.component.metadata.json +1 -1
  291. package/esm2015/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.js +1 -1
  292. package/esm2015/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.metadata.json +1 -1
  293. package/esm2015/lib/interaction/components/activity-title/activity-title.component.js +1 -1
  294. package/esm2015/lib/interaction/components/activity-title/activity-title.component.metadata.json +1 -1
  295. package/esm2015/lib/interaction/components/activity-triggers/abstract-activity-trigger.component.js +4 -0
  296. package/esm2015/lib/interaction/components/activity-triggers/abstract-activity-trigger.component.js.map +1 -1
  297. package/esm2015/lib/interaction/components/activity-triggers/abstract-activity-trigger.component.metadata.json +1 -1
  298. package/esm2015/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.js +5 -2
  299. package/esm2015/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.js.map +1 -1
  300. package/esm2015/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.metadata.json +1 -1
  301. package/esm2015/lib/interaction/components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component.js +5 -2
  302. package/esm2015/lib/interaction/components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component.js.map +1 -1
  303. package/esm2015/lib/interaction/components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component.metadata.json +1 -1
  304. package/esm2015/lib/interaction/components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component.js +5 -2
  305. package/esm2015/lib/interaction/components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component.js.map +1 -1
  306. package/esm2015/lib/interaction/components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component.metadata.json +1 -1
  307. package/esm2015/lib/interaction/components/add-card-activity/add-card-activity.component.js +77 -0
  308. package/esm2015/lib/interaction/components/add-card-activity/add-card-activity.component.js.map +1 -0
  309. package/esm2015/lib/interaction/components/add-card-activity/add-card-activity.component.metadata.json +1 -0
  310. package/esm2015/lib/interaction/components/add-card-activity/add-card-activity.component.ngfactory.js.map +1 -0
  311. package/esm2015/lib/interaction/components/add-card-activity/add-card-activity.component.scss.shim.ngstyle.js.map +1 -0
  312. package/esm2015/lib/interaction/components/add-item-interaction-context/add-item-interaction-context.component.js +1 -1
  313. package/esm2015/lib/interaction/components/add-item-interaction-context/add-item-interaction-context.component.metadata.json +1 -1
  314. package/esm2015/lib/interaction/components/alert-dialog/alert-dialog.component.js +1 -1
  315. package/esm2015/lib/interaction/components/alert-dialog/alert-dialog.component.metadata.json +1 -1
  316. package/esm2015/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.js +1 -1
  317. package/esm2015/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.metadata.json +1 -1
  318. package/esm2015/lib/interaction/components/confirm-then-execute-dialog/confirm-then-execute-dialog.component.js +51 -0
  319. package/esm2015/lib/interaction/components/confirm-then-execute-dialog/confirm-then-execute-dialog.component.js.map +1 -0
  320. package/esm2015/lib/interaction/components/confirm-then-execute-dialog/confirm-then-execute-dialog.component.metadata.json +1 -0
  321. package/esm2015/lib/interaction/components/confirm-then-execute-dialog/confirm-then-execute-dialog.component.ngfactory.js.map +1 -0
  322. package/esm2015/lib/interaction/components/confirm-then-execute-dialog/confirm-then-execute-dialog.component.scss.shim.ngstyle.js.map +1 -0
  323. package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +1 -1
  324. package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.metadata.json +1 -1
  325. package/esm2015/lib/interaction/components/editors/edit-context.js +2 -0
  326. package/esm2015/lib/interaction/components/editors/edit-context.js.map +1 -0
  327. package/esm2015/lib/interaction/components/editors/edit-context.metadata.json +1 -0
  328. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-editor-model.js +50 -0
  329. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-editor-model.js.map +1 -0
  330. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-editor-model.metadata.json +1 -0
  331. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.js +161 -0
  332. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.js.map +1 -0
  333. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.metadata.json +1 -0
  334. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.ngfactory.js.map +1 -0
  335. package/esm2015/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.js +10 -3
  336. package/esm2015/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.js.map +1 -1
  337. package/esm2015/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.metadata.json +1 -1
  338. package/esm2015/lib/interaction/components/input-activities/input-activity.js +95 -0
  339. package/esm2015/lib/interaction/components/input-activities/input-activity.js.map +1 -0
  340. package/esm2015/lib/interaction/components/input-activities/input-activity.metadata.json +1 -0
  341. package/esm2015/lib/interaction/components/input-activities/input-activity.ngfactory.js.map +1 -0
  342. package/esm2015/lib/interaction/components/input-activities/select-input-activity.js +5 -3
  343. package/esm2015/lib/interaction/components/input-activities/select-input-activity.js.map +1 -1
  344. package/esm2015/lib/interaction/components/input-activities/select-input-activity.metadata.json +1 -1
  345. package/esm2015/lib/interaction/components/input-activities/string-input-activity.js +6 -4
  346. package/esm2015/lib/interaction/components/input-activities/string-input-activity.js.map +1 -1
  347. package/esm2015/lib/interaction/components/input-activities/string-input-activity.metadata.json +1 -1
  348. package/esm2015/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.js +2 -1
  349. package/esm2015/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.js.map +1 -1
  350. package/esm2015/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.metadata.json +1 -1
  351. package/esm2015/lib/interaction/exports.js +6 -4
  352. package/esm2015/lib/interaction/exports.js.map +1 -1
  353. package/esm2015/lib/interaction/exports.metadata.json +1 -1
  354. package/esm2015/lib/interaction/interaction-context.js.map +1 -1
  355. package/esm2015/lib/interaction/interaction.module.js +25 -9
  356. package/esm2015/lib/interaction/interaction.module.js.map +1 -1
  357. package/esm2015/lib/interaction/interaction.module.metadata.json +1 -1
  358. package/esm2015/lib/interaction/interaction.module.ngfactory.js.map +1 -1
  359. package/esm2015/lib/interaction/services/interaction.service.js +1 -1
  360. package/esm2015/lib/interaction/services/interaction.service.js.map +1 -1
  361. package/esm2015/lib/place/components/abstract-place-navigation.component.js +1 -1
  362. package/esm2015/lib/place/components/abstract-place-navigation.component.js.map +1 -1
  363. package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.js +1 -1
  364. package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.metadata.json +1 -1
  365. package/esm2015/lib/place/components/not-authorised-notice/not-authorised-notice.component.js +1 -1
  366. package/esm2015/lib/place/components/not-authorised-notice/not-authorised-notice.component.metadata.json +1 -1
  367. package/esm2015/lib/place/components/place-outlet/place-outlet.component.js +1 -1
  368. package/esm2015/lib/place/components/place-outlet/place-outlet.component.metadata.json +1 -1
  369. package/esm2015/lib/place/components/side-place-navigation/side-place-navigation.component.js +1 -1
  370. package/esm2015/lib/place/components/side-place-navigation/side-place-navigation.component.metadata.json +1 -1
  371. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +1 -1
  372. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.metadata.json +1 -1
  373. package/esm2015/lib/place/guards/consolidated-param-map.js +2 -1
  374. package/esm2015/lib/place/guards/consolidated-param-map.js.map +1 -1
  375. package/esm2015/lib/place/guards/consolidated-param-map.metadata.json +1 -1
  376. package/esm2015/lib/place/guards/place.guard.js +2 -1
  377. package/esm2015/lib/place/guards/place.guard.js.map +1 -1
  378. package/esm2015/lib/place/place-component.js +31 -4
  379. package/esm2015/lib/place/place-component.js.map +1 -1
  380. package/esm2015/lib/place/place-component.metadata.json +1 -1
  381. package/esm2015/lib/place/place-router.js +11 -14
  382. package/esm2015/lib/place/place-router.js.map +1 -1
  383. package/esm2015/lib/place/place-router.metadata.json +1 -1
  384. package/esm2015/lib/place/place.module.ngfactory.js.map +1 -1
  385. package/esm2015/lib/place/url-snapshot.js +1 -7
  386. package/esm2015/lib/place/url-snapshot.js.map +1 -1
  387. package/esm2015/lib/place/url-snapshot.metadata.json +1 -1
  388. package/esm2015/lib/place/visit.js +5 -1
  389. package/esm2015/lib/place/visit.js.map +1 -1
  390. package/esm2015/lib/place/visit.metadata.json +1 -1
  391. package/fesm2015/coolon-angular-ui-powerups-cypress.js +550 -239
  392. package/fesm2015/coolon-angular-ui-powerups-cypress.js.map +1 -1
  393. package/fesm2015/coolon-angular-ui-powerups.js +970 -275
  394. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  395. package/lib/components/cards/abstract-card-container.component.d.ts +11 -0
  396. package/lib/components/{card-container → cards/card-container}/card-container.component.d.ts +30 -9
  397. package/lib/components/cards/card-stack/card-stack.component.d.ts +65 -0
  398. package/lib/components/commands/command-face/command-face.component.d.ts +1 -0
  399. package/lib/components/exports.d.ts +7 -4
  400. package/lib/components/labelled-value/labelled-value.component.d.ts +7 -0
  401. package/lib/components/loading-container/loading-container.component.d.ts +11 -0
  402. package/lib/components/section-header/section-header.component.d.ts +5 -2
  403. package/lib/components/tables/abstract-table-model.d.ts +10 -7
  404. package/lib/components/tables/{table/edit-session.d.ts → edit-session.d.ts} +3 -3
  405. package/lib/components/tables/table/cell-portal-ref.d.ts +1 -1
  406. package/lib/components/tables/table/cell-renderer.d.ts +2 -0
  407. package/lib/components/tables/table/column-model.d.ts +14 -5
  408. package/lib/components/tables/table/default-cell-renderer/default-cell-renderer.component.d.ts +2 -1
  409. package/lib/components/tables/table/edit-row-controls/edit-row-controls.component.d.ts +4 -2
  410. package/lib/components/tables/table/table-cell-renderer/table-cell-renderer.component.d.ts +1 -1
  411. package/lib/components/tables/table/table-row-menu/table-row-menu.component.d.ts +2 -3
  412. package/lib/components/tables/table/table.component.d.ts +13 -12
  413. package/lib/components/tables/table/text-search-predicate.d.ts +1 -0
  414. package/lib/components/tables/tree-table/flattened-tree-list-model.d.ts +0 -1
  415. package/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.d.ts +2 -3
  416. package/lib/components/tables/tree-table/tree-label-column-model.d.ts +2 -3
  417. package/lib/components/tables/tree-table/tree-table-component.d.ts +1 -1
  418. package/lib/components/tables/tree-table/tree-table-model.d.ts +4 -5
  419. package/lib/components/track-by.d.ts +9 -0
  420. package/lib/interaction/abstract-interaction-context.d.ts +1 -0
  421. package/lib/interaction/components/activity-actions/activity-actions.component.d.ts +14 -3
  422. package/lib/interaction/components/activity-triggers/abstract-activity-trigger.component.d.ts +1 -1
  423. package/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.d.ts +2 -1
  424. package/lib/interaction/components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component.d.ts +2 -1
  425. package/lib/interaction/components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component.d.ts +2 -1
  426. package/lib/interaction/components/add-card-activity/add-card-activity.component.d.ts +39 -0
  427. package/lib/interaction/components/confirm-then-execute-dialog/confirm-then-execute-dialog.component.d.ts +18 -0
  428. package/lib/interaction/components/editors/edit-context.d.ts +3 -0
  429. package/lib/interaction/components/editors/inline-string-editor/inline-editor-model.d.ts +24 -0
  430. package/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.d.ts +57 -0
  431. package/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.d.ts +2 -0
  432. package/lib/interaction/components/input-activities/input-activity.d.ts +41 -0
  433. package/lib/interaction/components/input-activities/select-input-activity.d.ts +11 -3
  434. package/lib/interaction/components/input-activities/string-input-activity.d.ts +6 -2
  435. package/lib/interaction/exports.d.ts +6 -4
  436. package/lib/interaction/interaction-context.d.ts +1 -0
  437. package/lib/place/place-component.d.ts +6 -1
  438. package/lib/place/place-router.d.ts +2 -2
  439. package/package.json +16 -16
  440. package/schematics/activity/index.js +1 -1
  441. package/schematics/activity/index.js.map +1 -1
  442. package/schematics/activity/templates/component/__name@dasherize__.component.html.template +1 -1
  443. package/schematics/activity/templates/component/__name@dasherize__.component.ts.template +5 -3
  444. package/schematics/aup-i18n/index.js +1 -1
  445. package/schematics/aup-i18n/index.js.map +1 -1
  446. package/schematics/component/index.js +1 -1
  447. package/schematics/component/index.js.map +1 -1
  448. package/schematics/component/templates/component/__name@dasherize__.component.ts.template +1 -1
  449. package/schematics/place-routes/place-class-scanner.js +3 -1
  450. package/schematics/place-routes/place-class-scanner.js.map +1 -1
  451. package/schematics/utils/build-context.d.ts +6 -3
  452. package/schematics/utils/build-context.js +3 -3
  453. package/schematics/utils/build-context.js.map +1 -1
  454. package/schematics/utils/workspace.d.ts +1 -0
  455. package/schematics/utils/workspace.js +11 -3
  456. package/schematics/utils/workspace.js.map +1 -1
  457. package/assets/activities.scss +0 -70
  458. package/cypress/components/aup-more-menu.d.ts +0 -4
  459. package/cypress/components/aup-popup-menu.d.ts +0 -7
  460. package/cypress/components/button-mixin.d.ts +0 -19
  461. package/cypress/section.d.ts +0 -52
  462. package/esm2015/cypress/components/aup-more-menu.js +0 -7
  463. package/esm2015/cypress/components/aup-more-menu.js.map +0 -1
  464. package/esm2015/cypress/components/aup-more-menu.metadata.json +0 -1
  465. package/esm2015/cypress/components/aup-popup-menu.js +0 -19
  466. package/esm2015/cypress/components/aup-popup-menu.js.map +0 -1
  467. package/esm2015/cypress/components/aup-popup-menu.metadata.json +0 -1
  468. package/esm2015/cypress/components/button-mixin.js +0 -15
  469. package/esm2015/cypress/components/button-mixin.js.map +0 -1
  470. package/esm2015/cypress/components/button-mixin.metadata.json +0 -1
  471. package/esm2015/cypress/section.js +0 -72
  472. package/esm2015/cypress/section.js.map +0 -1
  473. package/esm2015/cypress/section.metadata.json +0 -1
  474. package/esm2015/lib/components/card-container/card-container.component.js +0 -84
  475. package/esm2015/lib/components/card-container/card-container.component.js.map +0 -1
  476. package/esm2015/lib/components/card-container/card-container.component.metadata.json +0 -1
  477. package/esm2015/lib/components/card-container/card-container.component.ngfactory.js.map +0 -1
  478. package/esm2015/lib/components/tables/table/edit-session.js.map +0 -1
  479. package/esm2015/lib/components/tables/tree-table/tree-node.js +0 -2
  480. package/esm2015/lib/components/tables/tree-table/tree-node.js.map +0 -1
  481. package/esm2015/lib/components/tables/tree-table/tree-node.metadata.json +0 -1
  482. package/esm2015/lib/components/tables/tree-table/visitable.class.js +0 -26
  483. package/esm2015/lib/components/tables/tree-table/visitable.class.js.map +0 -1
  484. package/esm2015/lib/components/tables/tree-table/visitable.class.metadata.json +0 -1
  485. package/esm2015/lib/interaction/components/input-activities/abstract-input-activity.js +0 -43
  486. package/esm2015/lib/interaction/components/input-activities/abstract-input-activity.js.map +0 -1
  487. package/esm2015/lib/interaction/components/input-activities/abstract-input-activity.metadata.json +0 -1
  488. package/esm2015/lib/interaction/components/input-activities/abstract-input-activity.ngfactory.js.map +0 -1
  489. package/esm2015/lib/interaction/components/input-activities/input-activity-data.js +0 -2
  490. package/esm2015/lib/interaction/components/input-activities/input-activity-data.js.map +0 -1
  491. package/esm2015/lib/interaction/components/input-activities/input-activity-data.metadata.json +0 -1
  492. package/esm2015/lib/interaction/components/input-activities/select-input-activity-data.js +0 -2
  493. package/esm2015/lib/interaction/components/input-activities/select-input-activity-data.js.map +0 -1
  494. package/esm2015/lib/interaction/components/input-activities/select-input-activity-data.metadata.json +0 -1
  495. package/esm2015/lib/interaction/result.js +0 -4
  496. package/esm2015/lib/interaction/result.js.map +0 -1
  497. package/esm2015/lib/interaction/result.metadata.json +0 -1
  498. package/lib/components/tables/tree-table/tree-node.d.ts +0 -3
  499. package/lib/components/tables/tree-table/visitable.class.d.ts +0 -22
  500. package/lib/interaction/components/input-activities/abstract-input-activity.d.ts +0 -12
  501. package/lib/interaction/components/input-activities/input-activity-data.d.ts +0 -11
  502. package/lib/interaction/components/input-activities/select-input-activity-data.d.ts +0 -8
  503. package/lib/interaction/result.d.ts +0 -8
  504. /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;
@@ -4940,6 +5278,7 @@
4940
5278
  when(this._focusedModel).becomesTruthy(function () {
4941
5279
  _this.onActivityReady();
4942
5280
  });
5281
+ this.busyWhile(this.confirmCommand.busy);
4943
5282
  };
4944
5283
  Activity.prototype.ngAfterViewInit = function () {
4945
5284
  var _a;
@@ -4994,7 +5333,7 @@
4994
5333
  ];
4995
5334
  Activity.ctorParameters = function () { return []; };
4996
5335
  Activity.propDecorators = {
4997
- activityActions: [{ type: i0.ViewChild, args: [ActivityActionsComponent,] }],
5336
+ activityActions: [{ type: i0.ViewChild, args: [exports.ActivityActionsComponent,] }],
4998
5337
  class: [{ type: i0.HostBinding, args: ['class',] }],
4999
5338
  isFocused: [{ type: i0.HostBinding, args: ['attr.focused',] }]
5000
5339
  };
@@ -5030,7 +5369,7 @@
5030
5369
  { type: i0.Component, args: [{
5031
5370
  selector: 'aup-alert-dialog',
5032
5371
  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}"]
5372
+ 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
5373
  },] }
5035
5374
  ];
5036
5375
  AlertDialogComponent.ctorParameters = function () { return [
@@ -5086,13 +5425,81 @@
5086
5425
  { type: i0.Component, args: [{
5087
5426
  selector: 'aup-confirmation-dialog',
5088
5427
  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}"]
5428
+ 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
5429
  },] }
5091
5430
  ];
5092
5431
  ConfirmThenDialogComponent.ctorParameters = function () { return [
5093
5432
  { type: undefined, decorators: [{ type: i0.Inject, args: [ACTIVITY_DATA,] }] }
5094
5433
  ]; };
5095
5434
 
5435
+ var ConfirmThenExecuteDialogComponent = /** @class */ (function (_super) {
5436
+ __extends(ConfirmThenExecuteDialogComponent, _super);
5437
+ function ConfirmThenExecuteDialogComponent(data) {
5438
+ var _this = _super.call(this) || this;
5439
+ _this.data = data;
5440
+ pectin.assert.notNil(data);
5441
+ _this.confirmCommand = pectin.Command.create(function () { return __awaiter(_this, void 0, void 0, function () {
5442
+ var result, e_1;
5443
+ return __generator(this, function (_a) {
5444
+ switch (_a.label) {
5445
+ case 0:
5446
+ _a.trys.push([0, 2, , 3]);
5447
+ return [4 /*yield*/, data.operation()];
5448
+ case 1:
5449
+ result = _a.sent();
5450
+ this.done(result);
5451
+ return [3 /*break*/, 3];
5452
+ case 2:
5453
+ e_1 = _a.sent();
5454
+ this.cancel(e_1);
5455
+ return [3 /*break*/, 3];
5456
+ case 3: return [2 /*return*/];
5457
+ }
5458
+ });
5459
+ }); });
5460
+ _this.cancelCommand = pectin.Command.create(function () {
5461
+ return _this.cancel();
5462
+ });
5463
+ _this.confirmFace = {
5464
+ text: function () { return _this.confirm.ok(); },
5465
+ color: function () { return _this.isDestructive() ? 'warn' : 'primary'; },
5466
+ style: function () { return 'raised'; }
5467
+ };
5468
+ _this.cancelFace = {
5469
+ text: function () { return _this.confirm.cancel(); }
5470
+ };
5471
+ return _this;
5472
+ }
5473
+ Object.defineProperty(ConfirmThenExecuteDialogComponent.prototype, "confirm", {
5474
+ get: function () {
5475
+ return this.data.confirm;
5476
+ },
5477
+ enumerable: false,
5478
+ configurable: true
5479
+ });
5480
+ Object.defineProperty(ConfirmThenExecuteDialogComponent.prototype, "titleColor", {
5481
+ get: function () {
5482
+ return this.isDestructive() ? 'warn' : undefined;
5483
+ },
5484
+ enumerable: false,
5485
+ configurable: true
5486
+ });
5487
+ ConfirmThenExecuteDialogComponent.prototype.isDestructive = function () {
5488
+ return this.confirm.destructive && this.confirm.destructive();
5489
+ };
5490
+ return ConfirmThenExecuteDialogComponent;
5491
+ }(Activity));
5492
+ ConfirmThenExecuteDialogComponent.decorators = [
5493
+ { type: i0.Component, args: [{
5494
+ selector: 'aup-confirmation-execute-dialog',
5495
+ 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",
5496
+ 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"]
5497
+ },] }
5498
+ ];
5499
+ ConfirmThenExecuteDialogComponent.ctorParameters = function () { return [
5500
+ { type: undefined, decorators: [{ type: i0.Inject, args: [ACTIVITY_DATA,] }] }
5501
+ ]; };
5502
+
5096
5503
  var ConfirmationDialogComponent = /** @class */ (function (_super) {
5097
5504
  __extends(ConfirmationDialogComponent, _super);
5098
5505
  function ConfirmationDialogComponent(confirm) {
@@ -5133,7 +5540,7 @@
5133
5540
  { type: i0.Component, args: [{
5134
5541
  selector: 'aup-confirmation-dialog',
5135
5542
  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}"]
5543
+ 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
5544
  },] }
5138
5545
  ];
5139
5546
  ConfirmationDialogComponent.ctorParameters = function () { return [
@@ -5172,6 +5579,12 @@
5172
5579
  data: data
5173
5580
  }, true);
5174
5581
  };
5582
+ AbstractInteractionContext.prototype.confirmThenExecute = function (confirm, operation) {
5583
+ return this.createAndLaunchActivity(ConfirmThenExecuteDialogComponent, {
5584
+ confirm: confirm,
5585
+ operation: operation
5586
+ }, true);
5587
+ };
5175
5588
  return AbstractInteractionContext;
5176
5589
  }());
5177
5590
 
@@ -5304,7 +5717,7 @@
5304
5717
  { type: i0.Component, args: [{
5305
5718
  selector: 'aup-activity-outlet',
5306
5719
  template: '',
5307
- styles: [":host{display:block}"]
5720
+ styles: [":host{display:block}\n"]
5308
5721
  },] }
5309
5722
  ];
5310
5723
  ActivityOutletComponent.ctorParameters = function () { return [
@@ -5325,7 +5738,7 @@
5325
5738
  _this.activityRefs = [];
5326
5739
  _this.garbage = new pectin.GarbageCollector();
5327
5740
  _this.inAnimation = new pectin.MutableValueModel(false);
5328
- _this.busy = new pectin.DelegatingValueModel().withDefault(false);
5741
+ _this.busy = _this.registerDisposable(new pectin.DelegatingValueModel().withDefault(false));
5329
5742
  _this.registerDisposable(_this.busy);
5330
5743
  return _this;
5331
5744
  }
@@ -5375,7 +5788,7 @@
5375
5788
  if (!this.isActive()) {
5376
5789
  typescriptUtilities.lang.illegalState('no activity in progress');
5377
5790
  }
5378
- return ___default['default'].findLast(this.activityRefs, function (tab) { return !tab.isComplete(); });
5791
+ return ___default["default"].findLast(this.activityRefs, function (tab) { return !tab.isComplete(); });
5379
5792
  };
5380
5793
  /**
5381
5794
  * Cancels the current activity and returns true the context is no longer active, false if
@@ -5518,8 +5931,8 @@
5518
5931
  ActivityContainerComponent.decorators = [
5519
5932
  { type: i0.Component, args: [{
5520
5933
  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}"]
5934
+ 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",
5935
+ styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}aup-busy-overlay{flex:1}\n"]
5523
5936
  },] }
5524
5937
  ];
5525
5938
  ActivityContainerComponent.ctorParameters = function () { return []; };
@@ -5558,7 +5971,7 @@
5558
5971
  }
5559
5972
  Object.defineProperty(ActivityTitleComponent.prototype, "hasTransparentBackground", {
5560
5973
  get: function () {
5561
- return ___default['default'].isNil(this._hasUserTransparentBackground) ? !this._color : this._hasUserTransparentBackground;
5974
+ return ___default["default"].isNil(this._hasUserTransparentBackground) ? !this._color : this._hasUserTransparentBackground;
5562
5975
  },
5563
5976
  /**
5564
5977
  * Adjusts layout to ensure the title and body are cleanly separated with even
@@ -5588,7 +6001,7 @@
5588
6001
  { type: i0.Component, args: [{
5589
6002
  selector: 'aup-activity-title',
5590
6003
  template: "<ng-content></ng-content>\n",
5591
- styles: [":host{display:block}"]
6004
+ styles: [":host{display:block}\n"]
5592
6005
  },] }
5593
6006
  ];
5594
6007
  ActivityTitleComponent.propDecorators = {
@@ -5615,6 +6028,13 @@
5615
6028
  });
5616
6029
  return _this;
5617
6030
  }
6031
+ Object.defineProperty(AbstractActivityTriggerComponent.prototype, "interactionContext", {
6032
+ get: function () {
6033
+ return typescriptUtilities.lang.abstractMethod(this.constructor);
6034
+ },
6035
+ enumerable: false,
6036
+ configurable: true
6037
+ });
5618
6038
  AbstractActivityTriggerComponent.prototype.ngOnInit = function () {
5619
6039
  };
5620
6040
  Object.defineProperty(AbstractActivityTriggerComponent.prototype, "isActive", {
@@ -5792,7 +6212,7 @@
5792
6212
  function ContextRegistry() {
5793
6213
  var _this = _super.call(this) || this;
5794
6214
  _this._interactions = new pectin.MutableListModel();
5795
- _this._disabledDelegate = new pectin.DelegatingValueModel().withDefault(false);
6215
+ _this._disabledDelegate = _this.registerDisposable(new pectin.DelegatingValueModel().withDefault(false));
5796
6216
  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
6217
  _this.active = chain(_this._interactions).isNotEmpty();
5798
6218
  _this.interactionContextIds = chain(_this._interactions).pluck("identifier");
@@ -5856,16 +6276,23 @@
5856
6276
  __extends(ModalActivityTriggerComponent, _super);
5857
6277
  function ModalActivityTriggerComponent(interactionService) {
5858
6278
  var _this = _super.call(this) || this;
5859
- _this.interactionContext = interactionService.createModalInteractionContextDisposedWith(_this);
6279
+ _this._interactionContext = interactionService.createModalInteractionContextDisposedWith(_this);
5860
6280
  return _this;
5861
6281
  }
6282
+ Object.defineProperty(ModalActivityTriggerComponent.prototype, "interactionContext", {
6283
+ get: function () {
6284
+ return this._interactionContext;
6285
+ },
6286
+ enumerable: false,
6287
+ configurable: true
6288
+ });
5862
6289
  return ModalActivityTriggerComponent;
5863
6290
  }(AbstractActivityTriggerComponent));
5864
6291
  ModalActivityTriggerComponent.decorators = [
5865
6292
  { type: i0.Component, args: [{
5866
6293
  selector: 'aup-modal-activity-trigger',
5867
6294
  template: "<aup-command [command]=\"startActivityCommand\" [faceModel]=\"faceModel\" [alignFace]=\"alignFace\"></aup-command>\n",
5868
- styles: [":host{display:inline-block}"]
6295
+ styles: [":host{display:inline-block}\n"]
5869
6296
  },] }
5870
6297
  ];
5871
6298
  ModalActivityTriggerComponent.ctorParameters = function () { return [
@@ -5904,6 +6331,13 @@
5904
6331
  enumerable: false,
5905
6332
  configurable: true
5906
6333
  });
6334
+ Object.defineProperty(InPlaceInteractionContextComponent.prototype, "active", {
6335
+ get: function () {
6336
+ return this.isActive();
6337
+ },
6338
+ enumerable: false,
6339
+ configurable: true
6340
+ });
5907
6341
  InPlaceInteractionContextComponent.prototype.ngAfterViewInit = function () {
5908
6342
  this.interactionService.registerInplaceInteractionContext(this);
5909
6343
  };
@@ -5932,6 +6366,9 @@
5932
6366
  InPlaceInteractionContextComponent.prototype.confirmThen = function (confirm, activityType, data) {
5933
6367
  return this.activityContainerComponent.confirmThen(confirm, activityType);
5934
6368
  };
6369
+ InPlaceInteractionContextComponent.prototype.confirmThenExecute = function (confirm, operation) {
6370
+ return this.activityContainerComponent.confirmThenExecute(confirm, operation);
6371
+ };
5935
6372
  InPlaceInteractionContextComponent.prototype.isActive = function () {
5936
6373
  return this.activityContainerComponent.isActive();
5937
6374
  };
@@ -5944,7 +6381,7 @@
5944
6381
  { type: i0.Component, args: [{
5945
6382
  selector: 'aup-in-place-interaction-context',
5946
6383
  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}"]
6384
+ styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}\n"]
5948
6385
  },] }
5949
6386
  ];
5950
6387
  InPlaceInteractionContextComponent.ctorParameters = function () { return [
@@ -5953,8 +6390,95 @@
5953
6390
  ]; };
5954
6391
  InPlaceInteractionContextComponent.propDecorators = {
5955
6392
  activityContainerComponent: [{ type: i0.ViewChild, args: ['activityContainer', { static: true },] }],
5956
- animateFirstActivity: [{ type: i0.Input }]
6393
+ animateFirstActivity: [{ type: i0.Input }],
6394
+ active: [{ type: i0.HostBinding, args: ["class.active",] }]
6395
+ };
6396
+
6397
+ /**
6398
+ *
6399
+ */
6400
+ exports.AddCardActivityComponent = /** @class */ (function (_super) {
6401
+ __extends(AddCardActivityComponent, _super);
6402
+ function AddCardActivityComponent(interactionService) {
6403
+ var _this = _super.call(this) || this;
6404
+ _this.interactionStyle = AddCardActivityComponent.InteractionType.MODAL;
6405
+ _this.renderAs = AddCardActivityComponent.RenderAs.CARD;
6406
+ _this.notCard = true;
6407
+ var chain = pectin.Dsl.disposeWith(_this).chain;
6408
+ _this.modalInteractionContext = interactionService.createModalInteractionContextDisposedWith(_this);
6409
+ _this.faceList = chain(_this.faceModel).mapToList(function (face) { return [face]; });
6410
+ return _this;
6411
+ }
6412
+ Object.defineProperty(AddCardActivityComponent.prototype, "renderAsClass", {
6413
+ get: function () {
6414
+ return "render-as-" + this.renderAs;
6415
+ },
6416
+ enumerable: false,
6417
+ configurable: true
6418
+ });
6419
+ Object.defineProperty(AddCardActivityComponent.prototype, "activityTypeClass", {
6420
+ get: function () {
6421
+ return this.interactionStyle + "-activity";
6422
+ },
6423
+ enumerable: false,
6424
+ configurable: true
6425
+ });
6426
+ AddCardActivityComponent.prototype.isRenderAsCard = function () {
6427
+ return this.renderAs === 'card';
6428
+ };
6429
+ AddCardActivityComponent.prototype.isRenderAsButton = function () {
6430
+ return this.renderAs === 'button';
6431
+ };
6432
+ AddCardActivityComponent.prototype.ngOnInit = function () {
6433
+ };
6434
+ Object.defineProperty(AddCardActivityComponent.prototype, "interactionContext", {
6435
+ get: function () {
6436
+ switch (this.interactionStyle) {
6437
+ case 'inline':
6438
+ return this.inlineInteractionContext;
6439
+ default:
6440
+ return this.modalInteractionContext;
6441
+ }
6442
+ },
6443
+ enumerable: false,
6444
+ configurable: true
6445
+ });
6446
+ AddCardActivityComponent.prototype.isModal = function () {
6447
+ return this.interactionStyle === 'modal';
6448
+ };
6449
+ AddCardActivityComponent.prototype.isInline = function () {
6450
+ return this.interactionStyle === 'inline';
6451
+ };
6452
+ return AddCardActivityComponent;
6453
+ }(AbstractActivityTriggerComponent));
6454
+ exports.AddCardActivityComponent.decorators = [
6455
+ { type: i0.Component, args: [{
6456
+ selector: 'aup-add-card-activity',
6457
+ 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",
6458
+ 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"]
6459
+ },] }
6460
+ ];
6461
+ exports.AddCardActivityComponent.ctorParameters = function () { return [
6462
+ { type: exports.InteractionService }
6463
+ ]; };
6464
+ exports.AddCardActivityComponent.propDecorators = {
6465
+ inlineInteractionContext: [{ type: i0.ViewChild, args: [InPlaceInteractionContextComponent, { static: true },] }],
6466
+ interactionStyle: [{ type: i0.Input }],
6467
+ renderAs: [{ type: i0.Input }, { type: i0.HostBinding, args: ['class',] }],
6468
+ notCard: [{ type: i0.HostBinding, args: ['class.not-card',] }],
6469
+ renderAsClass: [{ type: i0.HostBinding, args: ['class',] }],
6470
+ activityTypeClass: [{ type: i0.HostBinding, args: ['class',] }]
5957
6471
  };
6472
+ (function (AddCardActivityComponent) {
6473
+ AddCardActivityComponent.InteractionType = typescriptStringEnums.Enum({
6474
+ MODAL: 'modal',
6475
+ INLINE: 'inline'
6476
+ });
6477
+ AddCardActivityComponent.RenderAs = typescriptStringEnums.Enum({
6478
+ CARD: 'card',
6479
+ BUTTON: 'button'
6480
+ });
6481
+ })(exports.AddCardActivityComponent || (exports.AddCardActivityComponent = {}));
5958
6482
 
5959
6483
  /**
5960
6484
  * Css Vars.
@@ -6001,7 +6525,7 @@
6001
6525
  { type: i0.Component, args: [{
6002
6526
  selector: 'aup-add-item-interaction-context',
6003
6527
  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}"]
6528
+ 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
6529
  },] }
6006
6530
  ];
6007
6531
  AddItemInteractionContextComponent.ctorParameters = function () { return []; };
@@ -6025,18 +6549,25 @@
6025
6549
  function InlineActivityTriggerComponent() {
6026
6550
  return _super.call(this) || this;
6027
6551
  }
6552
+ Object.defineProperty(InlineActivityTriggerComponent.prototype, "interactionContext", {
6553
+ get: function () {
6554
+ return this._interactionContext;
6555
+ },
6556
+ enumerable: false,
6557
+ configurable: true
6558
+ });
6028
6559
  return InlineActivityTriggerComponent;
6029
6560
  }(AbstractActivityTriggerComponent));
6030
6561
  InlineActivityTriggerComponent.decorators = [
6031
6562
  { type: i0.Component, args: [{
6032
6563
  selector: 'aup-inline-activity-trigger',
6033
6564
  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}"]
6565
+ styles: [":host{display:inline-block}\n"]
6035
6566
  },] }
6036
6567
  ];
6037
6568
  InlineActivityTriggerComponent.ctorParameters = function () { return []; };
6038
6569
  InlineActivityTriggerComponent.propDecorators = {
6039
- interactionContext: [{ type: i0.ViewChild, args: [InPlaceInteractionContextComponent, { static: true },] }]
6570
+ _interactionContext: [{ type: i0.ViewChild, args: [InPlaceInteractionContextComponent, { static: true },] }]
6040
6571
  };
6041
6572
 
6042
6573
  /**
@@ -6074,6 +6605,7 @@
6074
6605
  var self = this;
6075
6606
  var overlayRef = this._overlay.create({
6076
6607
  hasBackdrop: false,
6608
+ disposeOnNavigation: true,
6077
6609
  panelClass: 'aup-popup-interaction-panel',
6078
6610
  positionStrategy: this._overlay.position()
6079
6611
  .flexibleConnectedTo(this._element)
@@ -6129,7 +6661,7 @@
6129
6661
  { type: i0.Component, args: [{
6130
6662
  selector: 'aup-popup-interaction-context',
6131
6663
  template: "<ng-content></ng-content>\n",
6132
- styles: [":host{display:inline-block}:host.interaction-active{background:rgba(0,0,0,.05)}"]
6664
+ styles: [":host{display:inline-block}:host.interaction-active{background:rgba(0,0,0,.05)}\n"]
6133
6665
  },] }
6134
6666
  ];
6135
6667
  PopupInteractionContextComponent.ctorParameters = function () { return [
@@ -6185,7 +6717,7 @@
6185
6717
  });
6186
6718
  };
6187
6719
  InteractionContextTriggerFor.prototype.prepareActivityData = function () {
6188
- return ___default['default'].isFunction(this.activityDataFactory()) ? this.activityDataFactory() : this.activityData;
6720
+ return ___default["default"].isFunction(this.activityDataFactory()) ? this.activityDataFactory() : this.activityData;
6189
6721
  };
6190
6722
  return InteractionContextTriggerFor;
6191
6723
  }(pectin.GarbageCollector));
@@ -6209,45 +6741,114 @@
6209
6741
  // @see https://github.com/ng-packagr/ng-packagr/issues/641 and https://github.com/angular/angular/issues/21123
6210
6742
  // 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
6743
  // @dynamic
6212
- var AbstractInputActivity = /** @class */ (function (_super) {
6213
- __extends(AbstractInputActivity, _super);
6214
- function AbstractInputActivity(data) {
6215
- var _this = _super.call(this) || this;
6744
+ exports.InputActivity = /** @class */ (function (_super) {
6745
+ __extends(InputActivity, _super);
6746
+ function InputActivity(data) {
6747
+ var _this = this;
6748
+ var _a, _b;
6749
+ _this = _super.call(this) || this;
6216
6750
  _this.data = data;
6217
6751
  _this.class = 'aup-input-activity';
6218
6752
  var form = new pectin.DirtyTrackingForm();
6219
6753
  _this.valueModel = form.valueModel(_this.data.initialValue);
6220
6754
  _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);
6755
+ // TODO: move to global configuration
6756
+ _this.confirmFace = (_a = data.confirmFace) !== null && _a !== void 0 ? _a : {
6757
+ icon: function () { return 'mat:check'; }
6758
+ };
6759
+ _this.cancelFace = (_b = data.cancelFace) !== null && _b !== void 0 ? _b : {
6760
+ icon: function () { return 'mat:clear'; }
6761
+ };
6762
+ _this.confirmCommand = pectin.Command.create(function () { return __awaiter(_this, void 0, void 0, function () {
6763
+ var self_1, allGood_1, result, e_1;
6764
+ return __generator(this, function (_c) {
6765
+ switch (_c.label) {
6766
+ case 0:
6767
+ if (!this.valueModel.validate()) return [3 /*break*/, 6];
6768
+ if (!data.save) return [3 /*break*/, 5];
6769
+ self_1 = this;
6770
+ _c.label = 1;
6771
+ case 1:
6772
+ _c.trys.push([1, 3, , 4]);
6773
+ allGood_1 = true;
6774
+ return [4 /*yield*/, data.save(this.valueModel.value, {
6775
+ injectError: function (error) {
6776
+ allGood_1 = false;
6777
+ self_1.valueModel.injectErrors([error]);
6778
+ }
6779
+ })];
6780
+ case 2:
6781
+ result = _c.sent();
6782
+ if (allGood_1) {
6783
+ this.done(this.valueModel.value);
6784
+ }
6785
+ return [3 /*break*/, 4];
6786
+ case 3:
6787
+ e_1 = _c.sent();
6788
+ console.error(e_1);
6789
+ return [3 /*break*/, 4];
6790
+ case 4: return [3 /*break*/, 6];
6791
+ case 5:
6792
+ this.done(this.valueModel.value);
6793
+ _c.label = 6;
6794
+ case 6: return [2 /*return*/];
6229
6795
  }
6230
- }
6231
- });
6796
+ });
6797
+ }); });
6232
6798
  _this.cancelCommand = pectin.Command.create(function () {
6233
6799
  _this.cancel();
6234
6800
  });
6801
+ _this.busyWhile(_this.confirmCommand.busy);
6235
6802
  return _this;
6236
6803
  }
6237
- AbstractInputActivity.prototype.onActivityReady = function () {
6804
+ Object.defineProperty(InputActivity.prototype, "layout", {
6805
+ get: function () {
6806
+ var _a, _b;
6807
+ return (_b = (_a = this.data) === null || _a === void 0 ? void 0 : _a.layout) !== null && _b !== void 0 ? _b : InputActivity.Layout.BLOCK;
6808
+ },
6809
+ enumerable: false,
6810
+ configurable: true
6811
+ });
6812
+ InputActivity.prototype.onActivityReady = function () {
6238
6813
  this.valueModel.focusContext.requestFocus();
6239
6814
  };
6240
- return AbstractInputActivity;
6815
+ Object.defineProperty(InputActivity.prototype, "additionalCssClassName", {
6816
+ get: function () {
6817
+ var _a;
6818
+ return (_a = this.data.cssClassName) !== null && _a !== void 0 ? _a : '';
6819
+ },
6820
+ enumerable: false,
6821
+ configurable: true
6822
+ });
6823
+ InputActivity.prototype.onEscape = function () {
6824
+ if (this.shouldCancelOnEscape() && this.cancelCommand.enabled.value) {
6825
+ this.cancelCommand.execute();
6826
+ }
6827
+ };
6828
+ InputActivity.prototype.shouldCancelOnEscape = function () {
6829
+ return ___namespace.isNil(this.data.cancelOnEscape) // we default to true..
6830
+ || this.data.cancelOnEscape;
6831
+ };
6832
+ return InputActivity;
6241
6833
  }(Activity));
6242
- AbstractInputActivity.decorators = [
6834
+ exports.InputActivity.decorators = [
6243
6835
  { type: i0.Component, args: [{ template: "" },] }
6244
6836
  ];
6245
- AbstractInputActivity.ctorParameters = function () { return [
6837
+ exports.InputActivity.ctorParameters = function () { return [
6246
6838
  { type: undefined, decorators: [{ type: i0.Inject, args: [ACTIVITY_DATA,] }] }
6247
6839
  ]; };
6248
- AbstractInputActivity.propDecorators = {
6249
- class: [{ type: i0.HostBinding, args: ['class',] }]
6840
+ exports.InputActivity.propDecorators = {
6841
+ class: [{ type: i0.HostBinding, args: ['class',] }],
6842
+ layout: [{ type: i0.Input }, { type: i0.HostBinding, args: ['attr.layout',] }],
6843
+ additionalCssClassName: [{ type: i0.HostBinding, args: ["class",] }],
6844
+ onEscape: [{ type: i0.HostListener, args: ['keydown.escape',] }]
6250
6845
  };
6846
+ (function (InputActivity) {
6847
+ InputActivity.Layout = typescriptStringEnums.Enum({
6848
+ INLINE: 'inline',
6849
+ BLOCK: 'block'
6850
+ });
6851
+ })(exports.InputActivity || (exports.InputActivity = {}));
6251
6852
 
6252
6853
  var StringInputActivity = /** @class */ (function (_super) {
6253
6854
  __extends(StringInputActivity, _super);
@@ -6255,11 +6856,11 @@
6255
6856
  return _super !== null && _super.apply(this, arguments) || this;
6256
6857
  }
6257
6858
  return StringInputActivity;
6258
- }(AbstractInputActivity));
6859
+ }(exports.InputActivity));
6259
6860
  StringInputActivity.decorators = [
6260
6861
  { type: i0.Component, args: [{
6261
6862
  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 "
6863
+ 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
6864
  },] }
6264
6865
  ];
6265
6866
 
@@ -6289,11 +6890,11 @@
6289
6890
  configurable: true
6290
6891
  });
6291
6892
  return SelectInputActivity;
6292
- }(AbstractInputActivity));
6893
+ }(exports.InputActivity));
6293
6894
  SelectInputActivity.decorators = [
6294
6895
  { type: i0.Component, args: [{
6295
6896
  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 "
6897
+ 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
6898
  },] }
6298
6899
  ];
6299
6900
 
@@ -6400,36 +7001,6 @@
6400
7001
  return TableModel;
6401
7002
  }(AbstractTableModel));
6402
7003
 
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
7004
  /**
6434
7005
  * @file Automatically generated by barrelsby.
6435
7006
  */
@@ -6442,21 +7013,260 @@
6442
7013
  _this.anchorY = 'bottom';
6443
7014
  return _this;
6444
7015
  }
7016
+ Object.defineProperty(PopupActivityTriggerComponent.prototype, "interactionContext", {
7017
+ get: function () {
7018
+ return this._interactionContext;
7019
+ },
7020
+ enumerable: false,
7021
+ configurable: true
7022
+ });
6445
7023
  return PopupActivityTriggerComponent;
6446
7024
  }(AbstractActivityTriggerComponent));
6447
7025
  PopupActivityTriggerComponent.decorators = [
6448
7026
  { type: i0.Component, args: [{
6449
7027
  selector: 'aup-popup-activity-trigger',
6450
7028
  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}"]
7029
+ styles: [":host{display:inline-block}\n"]
6452
7030
  },] }
6453
7031
  ];
6454
7032
  PopupActivityTriggerComponent.ctorParameters = function () { return []; };
6455
7033
  PopupActivityTriggerComponent.propDecorators = {
6456
7034
  anchorX: [{ type: i0.Input }],
6457
7035
  anchorY: [{ type: i0.Input }],
6458
- interactionContext: [{ type: i0.ViewChild, args: [PopupInteractionContextComponent, { static: true },] }]
7036
+ _interactionContext: [{ type: i0.ViewChild, args: [PopupInteractionContextComponent, { static: true },] }]
7037
+ };
7038
+
7039
+ exports.InlineEditorModel = /** @class */ (function (_super) {
7040
+ __extends(InlineEditorModel, _super);
7041
+ function InlineEditorModel(valueModel, saveCallback) {
7042
+ var _this = _super.call(this) || this;
7043
+ _this.valueModel = valueModel;
7044
+ _this.saveCallback = saveCallback;
7045
+ _this.editing = new pectin.MutableValueModel(false);
7046
+ _this._validators = new pectin.MutableListModel();
7047
+ _this._editingEnabled = _this.registerDisposable(new pectin.DelegatingValueModel().withDefault(true));
7048
+ pectin.assert.notNil(valueModel);
7049
+ var when = pectin.Dsl.disposeWith(_this).when;
7050
+ when(_this.editingEnabled).becomesFalsey(function () { return _this.cancelEdit(); });
7051
+ return _this;
7052
+ }
7053
+ Object.defineProperty(InlineEditorModel.prototype, "editingEnabled", {
7054
+ get: function () {
7055
+ return this._editingEnabled.readonly;
7056
+ },
7057
+ enumerable: false,
7058
+ configurable: true
7059
+ });
7060
+ InlineEditorModel.prototype.disableWhile = function (condition) {
7061
+ var chain = pectin.Dsl.disposeWith(this).chain;
7062
+ this.enableWhile(chain(condition).isFalsey());
7063
+ return this;
7064
+ };
7065
+ InlineEditorModel.prototype.enableWhile = function (condition) {
7066
+ this._editingEnabled.setDelegate(condition);
7067
+ return this;
7068
+ };
7069
+ Object.defineProperty(InlineEditorModel.prototype, "validators", {
7070
+ get: function () {
7071
+ return this._validators.readonly;
7072
+ },
7073
+ enumerable: false,
7074
+ configurable: true
7075
+ });
7076
+ InlineEditorModel.prototype.validateUsing = function (validator) {
7077
+ this._validators.push(validator);
7078
+ return this;
7079
+ };
7080
+ InlineEditorModel.prototype.isEditing = function () {
7081
+ return this.editing.value;
7082
+ };
7083
+ InlineEditorModel.prototype.cancelEdit = function () {
7084
+ this.editing.value = false;
7085
+ };
7086
+ InlineEditorModel.prototype.startEditing = function () {
7087
+ this.editing.value = true;
7088
+ };
7089
+ return InlineEditorModel;
7090
+ }(pectin.GarbageCollector));
7091
+ (function (InlineEditorModel) {
7092
+ function create(valueModel, options) {
7093
+ return new InlineEditorModel(valueModel, options.save);
7094
+ }
7095
+ InlineEditorModel.create = create;
7096
+ })(exports.InlineEditorModel || (exports.InlineEditorModel = {}));
7097
+ pectin.TrackExternal.oneTimeBinding(exports.InlineEditorModel);
7098
+
7099
+ /**
7100
+ * @example
7101
+ * const source: ValueModel<string> = ...;
7102
+ * const model = InlineEditorModel.create(source, {
7103
+ * save(updated:string, context: EditContext) => {
7104
+ * try {
7105
+ * try and save the thing...
7106
+ * } catch(error) {
7107
+ * context.injectError(error)
7108
+ * }
7109
+ * }).validateUsing(Validator.present("We'll need a value");
7110
+ *
7111
+ * # in the view
7112
+ * <aup-inline-string-editor
7113
+ * label="My field"
7114
+ * placeHolder="I'm ready for a string..."
7115
+ * [editorModel]="model"></aup-inline-string-editor>
7116
+ */
7117
+ exports.InlineStringEditorComponent = /** @class */ (function (_super) {
7118
+ __extends(InlineStringEditorComponent, _super);
7119
+ function InlineStringEditorComponent(interactionService) {
7120
+ var _this = _super.call(this) || this;
7121
+ _this.editingEnabled = _this.registerDisposable(new pectin.DelegatingValueModel());
7122
+ var _a = pectin.Dsl.disposeWith(_this), chain = _a.chain, when = _a.when, valueOf = _a.valueOf;
7123
+ var modalIC = interactionService.createModalInteractionContextDisposedWith(_this);
7124
+ var resolvedFacesModel = chain(_this.facesModel).map(function (userFaces) {
7125
+ return Object.assign(Object.assign({}, InlineStringEditorComponent.DEFAULT_FACES), userFaces);
7126
+ }, { allowNil: true });
7127
+ _this.editFaceModel = resolvedFacesModel.pluck('edit');
7128
+ _this.saveFace = resolvedFacesModel.pluck('save');
7129
+ _this.cancelFace = resolvedFacesModel.pluck('cancel');
7130
+ var self = _this;
7131
+ _this.editCommand = pectin.Command.create(function () { return __awaiter(_this, void 0, void 0, function () {
7132
+ var e_1;
7133
+ return __generator(this, function (_a) {
7134
+ switch (_a.label) {
7135
+ case 0:
7136
+ this.editorModel.editing.value = true;
7137
+ _a.label = 1;
7138
+ case 1:
7139
+ _a.trys.push([1, 3, 4, 5]);
7140
+ return [4 /*yield*/, this.interactionContext.startActivity(StringInputActivity, this.createInputActivityData())];
7141
+ case 2:
7142
+ _a.sent();
7143
+ return [3 /*break*/, 5];
7144
+ case 3:
7145
+ e_1 = _a.sent();
7146
+ return [3 /*break*/, 5];
7147
+ case 4:
7148
+ this.editorModel.editing.value = false;
7149
+ return [7 /*endfinally*/];
7150
+ case 5: return [2 /*return*/];
7151
+ }
7152
+ });
7153
+ }); }).enableWhile(_this.editingEnabled);
7154
+ _this.onDispose(function () { return _this.cancelEdit(); });
7155
+ return _this;
7156
+ }
7157
+ InlineStringEditorComponent.prototype.ngOnInit = function () {
7158
+ var _this = this;
7159
+ // our editor model is a one time binding without delegates so we can only
7160
+ // use it once we've been initialised
7161
+ var _a = pectin.Dsl.disposeWith(this), chain = _a.chain, when = _a.when, valueOf = _a.valueOf;
7162
+ if (!this.editorModel) {
7163
+ typescriptUtilities.lang.illegalState('editorModel is required');
7164
+ }
7165
+ this.editingEnabled.setDelegate(this.editorModel.editingEnabled);
7166
+ when(this.editorModel.editing).becomesTruthy(function () {
7167
+ _this.editCommand.execute();
7168
+ }, { asLongAs: this.editCommand.enabled });
7169
+ when(this.editorModel.editing).becomesFalsey(function () { return _this.cancelEdit(); });
7170
+ this.empty = valueOf.any(chain.stringValue(this.editorModel.valueModel).isBlank()
7171
+ // deviceDescription.isNil()
7172
+ ).areTruthy();
7173
+ this.displayValue = chain(this.editorModel.valueModel).map(function (v) {
7174
+ return ___namespace.isEmpty(v) ? _this.placeHolderModel.value : v;
7175
+ }, { dependsOn: this.placeHolderModel, allowNil: true });
7176
+ };
7177
+ InlineStringEditorComponent.prototype.createInputActivityData = function () {
7178
+ var self = this;
7179
+ return {
7180
+ initialValue: self.editorModel.valueModel.value,
7181
+ confirmFace: self.saveFace.value,
7182
+ cancelFace: self.cancelFace.value,
7183
+ placeholder: self.placeHolderModel.value,
7184
+ label: self.label,
7185
+ layout: exports.InputActivity.Layout.INLINE,
7186
+ validators: self.editorModel.validators.value,
7187
+ save: function (value, inputContext) {
7188
+ return __awaiter(this, void 0, void 0, function () {
7189
+ return __generator(this, function (_a) {
7190
+ switch (_a.label) {
7191
+ case 0: return [4 /*yield*/, self.editorModel.saveCallback(value, inputContext)];
7192
+ case 1:
7193
+ _a.sent();
7194
+ return [2 /*return*/];
7195
+ }
7196
+ });
7197
+ });
7198
+ }
7199
+ };
7200
+ };
7201
+ InlineStringEditorComponent.prototype.cancelEdit = function () {
7202
+ if (this.isEditing()) {
7203
+ this.interactionContext.cancelActiveActivity();
7204
+ }
7205
+ };
7206
+ InlineStringEditorComponent.prototype.startEdit = function () {
7207
+ if (!this.isEditing() && this.editCommand.enabled.value) {
7208
+ this.editCommand.execute();
7209
+ }
7210
+ };
7211
+ InlineStringEditorComponent.prototype.isEditing = function () {
7212
+ return this.interactionContext.isActive();
7213
+ };
7214
+ InlineStringEditorComponent.prototype.isEmpty = function () {
7215
+ return this.empty.value;
7216
+ };
7217
+ return InlineStringEditorComponent;
7218
+ }(DisposableComponent));
7219
+ exports.InlineStringEditorComponent.decorators = [
7220
+ { type: i0.Component, args: [{
7221
+ selector: 'aup-inline-string-editor',
7222
+ 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"
7223
+ },] }
7224
+ ];
7225
+ exports.InlineStringEditorComponent.ctorParameters = function () { return [
7226
+ { type: exports.InteractionService }
7227
+ ]; };
7228
+ exports.InlineStringEditorComponent.propDecorators = {
7229
+ editorModel: [{ type: i0.Input }],
7230
+ facesModel: [{ type: i0.Input }],
7231
+ faces: [{ type: i0.Input }],
7232
+ interactionContext: [{ type: i0.ViewChild, args: [InPlaceInteractionContextComponent,] }],
7233
+ label: [{ type: i0.Input }],
7234
+ placeHolder: [{ type: i0.Input }],
7235
+ placeHolderModel: [{ type: i0.Input }]
6459
7236
  };
7237
+ __decorate([
7238
+ pectin.TrackExternal(),
7239
+ __metadata("design:type", exports.InlineEditorModel)
7240
+ ], exports.InlineStringEditorComponent.prototype, "editorModel", void 0);
7241
+ __decorate([
7242
+ pectin.TrackExternal(),
7243
+ __metadata("design:type", pectin.ValueModel)
7244
+ ], exports.InlineStringEditorComponent.prototype, "facesModel", void 0);
7245
+ __decorate([
7246
+ pectin.StoreInValueModel('facesModel'),
7247
+ __metadata("design:type", Object)
7248
+ ], exports.InlineStringEditorComponent.prototype, "faces", void 0);
7249
+ __decorate([
7250
+ pectin.StoreInValueModel('placeHolderModel'),
7251
+ __metadata("design:type", String)
7252
+ ], exports.InlineStringEditorComponent.prototype, "placeHolder", void 0);
7253
+ __decorate([
7254
+ pectin.TrackExternal(),
7255
+ __metadata("design:type", pectin.ValueModel)
7256
+ ], exports.InlineStringEditorComponent.prototype, "placeHolderModel", void 0);
7257
+ (function (InlineStringEditorComponent) {
7258
+ InlineStringEditorComponent.DEFAULT_FACES = {
7259
+ edit: {
7260
+ icon: function () { return 'mat:edit'; }
7261
+ },
7262
+ save: {
7263
+ icon: function () { return 'mat:check'; }
7264
+ },
7265
+ cancel: {
7266
+ icon: function () { return 'mat:clear'; }
7267
+ }
7268
+ };
7269
+ })(exports.InlineStringEditorComponent || (exports.InlineStringEditorComponent = {}));
6460
7270
 
6461
7271
  var InteractionModule = /** @class */ (function () {
6462
7272
  function InteractionModule() {
@@ -6476,30 +7286,37 @@
6476
7286
  DirectivesModule,
6477
7287
  flexLayout.FlexModule,
6478
7288
  flexLayout.GridModule,
6479
- ComponentsModule
7289
+ ComponentsModule,
7290
+ forms.FormsModule,
7291
+ input.MatInputModule,
7292
+ formField.MatFormFieldModule,
7293
+ a11y.A11yModule
6480
7294
  ],
6481
7295
  declarations: [
6482
7296
  ActivityContainerComponent,
6483
7297
  ConfirmationDialogComponent,
6484
7298
  ConfirmThenDialogComponent,
7299
+ ConfirmThenExecuteDialogComponent,
6485
7300
  AlertDialogComponent,
6486
7301
  ActivityOutletComponent,
6487
7302
  InPlaceInteractionContextComponent,
6488
7303
  AddItemInteractionContextComponent,
6489
- ActivityActionsComponent,
7304
+ exports.ActivityActionsComponent,
6490
7305
  PopupInteractionContextComponent,
6491
7306
  StringInputActivity,
6492
7307
  SelectInputActivity,
6493
- AbstractInputActivity,
7308
+ exports.InputActivity,
6494
7309
  InteractionContextTriggerFor,
6495
7310
  Activity,
6496
7311
  ActivityTitleComponent,
6497
7312
  ActivityBodyComponent,
6498
- ActivityActionsComponent,
7313
+ exports.ActivityActionsComponent,
6499
7314
  AbstractActivityTriggerComponent,
6500
7315
  PopupActivityTriggerComponent,
6501
7316
  InlineActivityTriggerComponent,
6502
- ModalActivityTriggerComponent
7317
+ ModalActivityTriggerComponent,
7318
+ exports.AddCardActivityComponent,
7319
+ exports.InlineStringEditorComponent
6503
7320
  ],
6504
7321
  exports: [
6505
7322
  ActivityContainerComponent,
@@ -6507,7 +7324,7 @@
6507
7324
  ActivityTitleComponent,
6508
7325
  InPlaceInteractionContextComponent,
6509
7326
  AddItemInteractionContextComponent,
6510
- ActivityActionsComponent,
7327
+ exports.ActivityActionsComponent,
6511
7328
  PopupInteractionContextComponent,
6512
7329
  InteractionContextTriggerFor,
6513
7330
  StringInputActivity,
@@ -6515,13 +7332,15 @@
6515
7332
  ActivityBodyComponent,
6516
7333
  PopupActivityTriggerComponent,
6517
7334
  InlineActivityTriggerComponent,
6518
- ModalActivityTriggerComponent
7335
+ ModalActivityTriggerComponent,
7336
+ exports.AddCardActivityComponent,
7337
+ exports.InlineStringEditorComponent,
6519
7338
  ],
6520
7339
  entryComponents: [
6521
- ActivityContainerComponent,
6522
- ConfirmationDialogComponent,
6523
- ConfirmThenDialogComponent,
6524
- AlertDialogComponent
7340
+ // ActivityContainerComponent,
7341
+ // ConfirmationDialogComponent,
7342
+ // ConfirmThenDialogComponent,
7343
+ // AlertDialogComponent
6525
7344
  ],
6526
7345
  providers: [
6527
7346
  exports.InteractionService
@@ -6600,7 +7419,7 @@
6600
7419
  return _this;
6601
7420
  }
6602
7421
  RouteId.prototype.isEmptyValue = function (value) {
6603
- return ___default['default'].isNil(value);
7422
+ return ___default["default"].isNil(value);
6604
7423
  };
6605
7424
  RouteId.prototype.hasChanged = function (a, b) {
6606
7425
  return a !== b;
@@ -6618,7 +7437,7 @@
6618
7437
  return _this;
6619
7438
  }
6620
7439
  ValueParameter.prototype.isEmptyValue = function (value) {
6621
- return ___default['default'].isNil(value);
7440
+ return ___default["default"].isNil(value);
6622
7441
  };
6623
7442
  ValueParameter.prototype.hasChanged = function (a, b) {
6624
7443
  return a !== b;
@@ -6636,10 +7455,10 @@
6636
7455
  return _this;
6637
7456
  }
6638
7457
  ArrayParameter.prototype.isEmptyValue = function (value) {
6639
- return ___default['default'].isNil(value) || value.length < 1;
7458
+ return ___default["default"].isNil(value) || value.length < 1;
6640
7459
  };
6641
7460
  ArrayParameter.prototype.hasChanged = function (a, b) {
6642
- return !___default['default'].isEqual(a, b);
7461
+ return !___default["default"].isEqual(a, b);
6643
7462
  };
6644
7463
  return ArrayParameter;
6645
7464
  }(ParameterDefinition));
@@ -6688,13 +7507,13 @@
6688
7507
  };
6689
7508
  PlaceDefinition.prototype.getPlaceData = function (key, defaultValue) {
6690
7509
  return this.data ?
6691
- ___default['default'].isNil(this.data[key]) ? defaultValue : this.data[key] :
7510
+ ___default["default"].isNil(this.data[key]) ? defaultValue : this.data[key] :
6692
7511
  defaultValue;
6693
7512
  };
6694
7513
  PlaceDefinition.prototype.searchPlaceData = function (keys, defaultValue) {
6695
7514
  var _this = this;
6696
7515
  if (this.data) {
6697
- var found = keys.find(function (key) { return !___default['default'].isNil(_this.data[key]); });
7516
+ var found = keys.find(function (key) { return !___default["default"].isNil(_this.data[key]); });
6698
7517
  return found ? this.data[found] : defaultValue;
6699
7518
  }
6700
7519
  else {
@@ -6764,7 +7583,7 @@
6764
7583
  // because our id routes redirect if the id isn't present we always have a id
6765
7584
  // parameter in our params. This will bugger our remember and defaultvalue sanitisation
6766
7585
  // as it'll see that the id is present (event thought its a blank string).
6767
- if (!___default['default'].isEmpty(value)) {
7586
+ if (!___default["default"].isEmpty(value)) {
6768
7587
  result[def.name] = def.urlFormat.parse(value);
6769
7588
  }
6770
7589
  }
@@ -6827,17 +7646,28 @@
6827
7646
  _this.childPlaces = _this.placeDefinition.children.map(function (d) { return d.component; });
6828
7647
  return _this;
6829
7648
  }
6830
- // @Trace()
6831
7649
  PlaceComponent.prototype.initialiseVisit = function (visit, notifyVisitChanged) {
6832
7650
  var _this = this;
6833
7651
  pectin.assert.isNil(this.visitModel.value);
6834
7652
  var when = pectin.Dsl.disposeWith(this).when;
6835
7653
  this.visitModel.value = visit;
6836
7654
  pectin.DebugContext.getOrCreate(this.visitModel).tag(this.placeDefinition.component.name + ".visitModel");
6837
- this.placeDefinition.getVisitParameterDefs().forEach(function (parameterDef) { return _this.installBinding(parameterDef); });
7655
+ // we track if the any of the bindings updated the route. If so we remember it and update the
7656
+ // route in one go at the end.
7657
+ this.placeDefinition
7658
+ .getVisitParameterDefs()
7659
+ .forEach(function (parameterDef) { return _this.installAndInitialiseBinding(visit, parameterDef); });
6838
7660
  when(this.visitModel).changes(function (current, previous) {
6839
7661
  notifyVisitChanged(current, previous);
6840
7662
  }, { unless: this._inVisitUpdate });
7663
+ // TODO: this needs to do a replace url option so that the new url isn't put in the history.... for
7664
+ // now we're not doing it as it's a fair bit of effort and will only affect people if they're
7665
+ // cutting and pasting urls to each other.
7666
+ // // the binding process can update the visit (e.g. if a selection model has already selected during
7667
+ // // component construction) and there was no value specified in the route
7668
+ // if (visit.hasRoutingChangedFrom(this.visitModel.value)) {
7669
+ // notifyVisitChanged(this.visitModel.value, visit)
7670
+ // }
6841
7671
  };
6842
7672
  PlaceComponent.prototype.updateVisit = function (visit) {
6843
7673
  var _this = this;
@@ -6851,7 +7681,12 @@
6851
7681
  return !!this.visitModel.value;
6852
7682
  };
6853
7683
  // @Trace()
6854
- PlaceComponent.prototype.installBinding = function (parameterDef) {
7684
+ /**
7685
+ * Initialised the component bindings. If any binding has an initial model value (e.g. a selection model
7686
+ * initialised during the constructor) and the route has nothing, then the visit will be udpated and this
7687
+ * method will return ture to nofiy the the visit has changed.
7688
+ */
7689
+ PlaceComponent.prototype.installAndInitialiseBinding = function (initialVisit, parameterDef) {
6855
7690
  var model = this[parameterDef.propertyName];
6856
7691
  pectin.DebugContext.tag(model, this.placeDefinition.component.name + "." + parameterDef.propertyName);
6857
7692
  var binding = this.registerDisposable(new pectin.Binding(this.visitModel, model, {
@@ -6865,7 +7700,17 @@
6865
7700
  return currentVisit.replace(parameterDef, value);
6866
7701
  }
6867
7702
  }));
6868
- binding.writeRight();
7703
+ // Now we need to initialise the binding direction. If we have a value in the Url then we should always push
7704
+ // 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
7705
+ // component constructor) then we should push that to the route.
7706
+ var isInVisit = !___namespace.isNil(initialVisit.getParameterValue(parameterDef));
7707
+ var isInModel = !___namespace.isNil(model.value);
7708
+ if (!isInVisit && isInModel) {
7709
+ binding.writeLeft(); // push it to the route
7710
+ }
7711
+ else {
7712
+ binding.writeRight(); // push it to the model
7713
+ }
6869
7714
  };
6870
7715
  Object.defineProperty(PlaceComponent.prototype, "placeDefinition", {
6871
7716
  get: function () {
@@ -7416,7 +8261,7 @@
7416
8261
  var currentIds = this.interactionServiceAdapter.getActiveInteractionContextIds();
7417
8262
  var previousIds = this.urlService.getCurrentLocationUrlSnapshot().getInteractionIds();
7418
8263
  // console.log(`---> synchroniseInteractionIds`, { is: currentIds.join(','), was: previousIds.join(',') });
7419
- if (___default['default'].isEqual(currentIds, previousIds)) {
8264
+ if (___default["default"].isEqual(currentIds, previousIds)) {
7420
8265
  // console.log('### Activity context ids were the same, skipping');
7421
8266
  this.context.finishRoutingSession();
7422
8267
  }
@@ -7896,7 +8741,7 @@
7896
8741
  return !!((_a = this._previousVisits) === null || _a === void 0 ? void 0 : _a.getVisitFor(placeDef));
7897
8742
  };
7898
8743
  PlaceHistory.prototype.getMostRecentVisitFor = function (placeDef) {
7899
- return ___default['default'].first(this.getHistory(placeDef));
8744
+ return ___default["default"].first(this.getHistory(placeDef));
7900
8745
  };
7901
8746
  PlaceHistory.prototype.getHistory = function (placeDef) {
7902
8747
  var history = this._archive.get(placeDef);
@@ -7913,7 +8758,7 @@
7913
8758
  var _this = this;
7914
8759
  visits.forEach(function (state) {
7915
8760
  var history = _this.getHistory(state.placeDefinition);
7916
- var previousState = ___default['default'].first(history);
8761
+ var previousState = ___default["default"].first(history);
7917
8762
  if (!previousState || state.hasChangedFrom(previousState)) {
7918
8763
  history.unshift(state); // LIFO
7919
8764
  _this.setHistory(state.placeDefinition, history.slice(0, _this.placeHistoryDepth));
@@ -8037,7 +8882,7 @@
8037
8882
  };
8038
8883
  Object.defineProperty(ConsolidatedParameterMap.prototype, "keys", {
8039
8884
  get: function () {
8040
- return this.paramMaps.reduce(function (result, params) { return result.concat(params.keys); }, []);
8885
+ return ___namespace.uniq(this.paramMaps.reduce(function (result, params) { return result.concat(params.keys); }, []));
8041
8886
  },
8042
8887
  enumerable: false,
8043
8888
  configurable: true
@@ -8126,9 +8971,13 @@
8126
8971
  });
8127
8972
  return new Visit(this.placeDefinition, params);
8128
8973
  };
8974
+ // @Trace()
8129
8975
  Visit.prototype.hasRoutingChangedFrom = function (other) {
8130
8976
  var samePlace = other.placeDefinition === this.placeDefinition;
8131
- var sameRouteParameters = ___namespace.isEqual(this.placeDefinition.getFormattedRouteParameters(this, true), this.placeDefinition.getFormattedRouteParameters(other, true));
8977
+ var currentParams = this.placeDefinition.getFormattedRouteParameters(this, true);
8978
+ var otherParams = this.placeDefinition.getFormattedRouteParameters(other, true);
8979
+ // console.log({currentParams, otherParams});
8980
+ var sameRouteParameters = ___namespace.isEqual(currentParams, otherParams);
8132
8981
  return !samePlace || !sameRouteParameters;
8133
8982
  };
8134
8983
  Visit.prototype.hasChangedFrom = function (other) {
@@ -8152,6 +9001,7 @@
8152
9001
  this.url = url;
8153
9002
  this.urlTree = urlSerializer.parse(url);
8154
9003
  }
9004
+ // @Trace()
8155
9005
  UrlSnapshot.prototype.updateVisitSegments = function (visit) {
8156
9006
  var newUrlTree = this.urlSerializer.parse(this.url);
8157
9007
  // Ugly, but it works for now.
@@ -8203,7 +9053,7 @@
8203
9053
  return this.getInteractionIds().length > 0;
8204
9054
  };
8205
9055
  UrlSnapshot.prototype.hasInteractionIds = function (ids) {
8206
- return ___default['default'].isEqual(this.getInteractionIds(), ids);
9056
+ return ___default["default"].isEqual(this.getInteractionIds(), ids);
8207
9057
  };
8208
9058
  // @Trace()
8209
9059
  UrlSnapshot.prototype.updateInteractionIds = function (ids) {
@@ -8229,12 +9079,6 @@
8229
9079
  };
8230
9080
  return UrlSnapshot;
8231
9081
  }());
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
9082
  __decorate([
8239
9083
  src.Memoize(),
8240
9084
  __metadata("design:type", Function),
@@ -8321,6 +9165,9 @@
8321
9165
  { type: i1$1.UrlSerializer }
8322
9166
  ]; };
8323
9167
 
9168
+ function asArray(item) {
9169
+ return Array.isArray(item) ? item : [item];
9170
+ }
8324
9171
  exports.PlaceRouter = /** @class */ (function (_super) {
8325
9172
  __extends(PlaceRouter, _super);
8326
9173
  function PlaceRouter(angularRouter, angularLocation, interactionService, urlService, placeHistory) {
@@ -8337,7 +9184,7 @@
8337
9184
  * An observable model containing the authoriser function. This allows places to react to changes
8338
9185
  * in permissions when any underlying auth logic changes, e.g. a role being removed from a user.
8339
9186
  */
8340
- _this._accessGuard = new pectin.DelegatingValueModel().withDefault(new exports.PlaceAccessGuard.NoAuth());
9187
+ _this._accessGuard = _this.registerDisposable(new pectin.DelegatingValueModel().withDefault(new exports.PlaceAccessGuard.NoAuth()));
8341
9188
  if (window['Cypress']) {
8342
9189
  window['aup.PlaceRouter'] = _this;
8343
9190
  }
@@ -8500,17 +9347,15 @@
8500
9347
  };
8501
9348
  PlaceRouter.prototype.navigate = function (visit, options) {
8502
9349
  var _this = this;
9350
+ var commands = asArray(visit).reduce(function (result, v) {
9351
+ return __spreadArray(__spreadArray(__spreadArray([], __read(result)), [v.placeDefinition.path]), __read(_this.createRouteParameters(v)));
9352
+ }, []);
8503
9353
  return this.doNavigation(visit, function (router) { return __awaiter(_this, void 0, void 0, function () {
8504
- var commands;
8505
9354
  return __generator(this, function (_a) {
8506
9355
  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
- })];
9356
+ case 0: return [4 /*yield*/, this.angularRouter.navigate(commands, {
9357
+ relativeTo: options ? options.relativeTo : null
9358
+ })];
8514
9359
  case 1:
8515
9360
  _a.sent();
8516
9361
  return [2 /*return*/];
@@ -8529,7 +9374,7 @@
8529
9374
  pectin.lang.illegalState('Navigation already in progress');
8530
9375
  }
8531
9376
  navigation = this.createNavigationSession(this.urlService.getCurrentRouterUrl());
8532
- navigation.storeVisit(visit);
9377
+ asArray(visit).forEach(function (v) { return navigation.storeVisit(v); });
8533
9378
  this.transitionTo(navigation);
8534
9379
  _a.label = 1;
8535
9380
  case 1:
@@ -8625,6 +9470,7 @@
8625
9470
  * to be able to capture the back button on the first page. If we don't then the back click will exit
8626
9471
  * the app directly and we don't get to ask.
8627
9472
  */
9473
+ // @Trace()
8628
9474
  PlaceRouter.prototype.syncInteractionContextIdsWithRouter = function () {
8629
9475
  var _this = this;
8630
9476
  if (this.navigationSession) {
@@ -8668,12 +9514,6 @@
8668
9514
  { type: UrlService },
8669
9515
  { type: exports.PlaceHistory }
8670
9516
  ]; };
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
9517
  (function (PlaceRouter) {
8678
9518
  var State = /** @class */ (function () {
8679
9519
  function State(activeVisits) {
@@ -8701,7 +9541,7 @@
8701
9541
  { type: i0.Component, args: [{
8702
9542
  selector: 'aup-not-authorised-notice',
8703
9543
  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}"]
9544
+ styles: [":host{display:flex;flex-direction:column;align-items:center;justify-content:center}\n"]
8705
9545
  },] }
8706
9546
  ];
8707
9547
  NotAuthorisedNoticeComponent.ctorParameters = function () { return []; };
@@ -8952,7 +9792,7 @@
8952
9792
  selector: 'aup-place-outlet',
8953
9793
  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
9794
  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}"]
9795
+ 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
9796
  },] }
8957
9797
  ];
8958
9798
  PlaceOutletComponent.ctorParameters = function () { return [
@@ -8994,7 +9834,7 @@
8994
9834
  function AbstractPlaceNavigationComponent(placeRouter) {
8995
9835
  var _this = _super.call(this) || this;
8996
9836
  _this.placeRouter = placeRouter;
8997
- _this._activePlaceComponent = new pectin.DelegatingValueModel();
9837
+ _this._activePlaceComponent = _this.registerDisposable(new pectin.DelegatingValueModel());
8998
9838
  _this.trackByPlaceDef = function (data) { return data.place; };
8999
9839
  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
9840
  _this.placeDefinitions = chain(_this.placesModel)
@@ -9087,7 +9927,7 @@
9087
9927
  { type: i0.Component, args: [{
9088
9928
  selector: 'aup-list-place-nav',
9089
9929
  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)}"]
9930
+ 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
9931
  },] }
9092
9932
  ];
9093
9933
  ListPlaceNavComponent.ctorParameters = function () { return [
@@ -9158,7 +9998,7 @@
9158
9998
  { type: i0.Component, args: [{
9159
9999
  selector: 'aup-side-place-navigation',
9160
10000
  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)}"]
10001
+ 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
10002
  },] }
9163
10003
  ];
9164
10004
  SidePlaceNavigationComponent.ctorParameters = function () { return [
@@ -9180,7 +10020,7 @@
9180
10020
  { type: i0.Component, args: [{
9181
10021
  selector: 'aup-tabbed-place-navigation',
9182
10022
  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}"]
10023
+ styles: [":host{display:block}div.place-holder{border:1px solid green}\n"]
9184
10024
  },] }
9185
10025
  ];
9186
10026
  TabbedPlaceNavigationComponent.ctorParameters = function () { return [
@@ -9291,9 +10131,6 @@
9291
10131
  * @file Automatically generated by barrelsby.
9292
10132
  */
9293
10133
 
9294
- // const r:Result<string, number> = null;
9295
- // r.catch(e => {}).then();
9296
-
9297
10134
  var DialogInteractionContext = /** @class */ (function (_super) {
9298
10135
  __extends(DialogInteractionContext, _super);
9299
10136
  function DialogInteractionContext(identifier, api, dialogService, config) {
@@ -9512,13 +10349,13 @@
9512
10349
  }
9513
10350
  _a.label = 2;
9514
10351
  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;
10352
+ var navigationSession, params, parsedParams, initialVisit, sanitiser, sanitisedVisit, urlSnapshot;
9516
10353
  return __generator(this, function (_a) {
9517
10354
  switch (_a.label) {
9518
10355
  case 0:
10356
+ navigationSession = this.placeRouter.navigationSession;
9519
10357
  params = new ConsolidatedParameterMap(activatedRoute.url, activatedRoute.paramMap);
9520
10358
  parsedParams = placeDefinition_1.parseRouteParams(params);
9521
- navigationSession = this.placeRouter.navigationSession;
9522
10359
  initialVisit = navigationSession.getVisitFor(placeDefinition_1) || new Visit(placeDefinition_1, parsedParams);
9523
10360
  sanitiser = new VisitSanitiser(navigationSession, activatedRoute, this.router, this.placeHistory, this.injector);
9524
10361
  return [4 /*yield*/, sanitiser.sanitise(initialVisit.mergeRouteParameters(parsedParams))];
@@ -9627,11 +10464,11 @@
9627
10464
  function NumberType() {
9628
10465
  }
9629
10466
  NumberType.prototype.format = function (value) {
9630
- return ___default['default'].isNumber(value) && !___default['default'].isNaN(value) ? "" + value : null;
10467
+ return ___default["default"].isNumber(value) && !___default["default"].isNaN(value) ? "" + value : null;
9631
10468
  };
9632
10469
  NumberType.prototype.parse = function (value) {
9633
10470
  var parsed = Number.parseFloat(value);
9634
- return ___default['default'].isNaN(parsed) ? null : parsed;
10471
+ return ___default["default"].isNaN(parsed) ? null : parsed;
9635
10472
  };
9636
10473
  return NumberType;
9637
10474
  }());
@@ -9807,7 +10644,7 @@
9807
10644
  exports.AUP_PLACE_CONFIG = AUP_PLACE_CONFIG;
9808
10645
  exports.AUP_UNAUTHORISED_PLACE_NOTICE_COMPONENT = AUP_UNAUTHORISED_PLACE_NOTICE_COMPONENT;
9809
10646
  exports.AbstractActivityTriggerComponent = AbstractActivityTriggerComponent;
9810
- exports.AbstractInputActivity = AbstractInputActivity;
10647
+ exports.AbstractCardContainerComponent = AbstractCardContainerComponent;
9811
10648
  exports.AbstractInputComponent = AbstractInputComponent;
9812
10649
  exports.AbstractInteractionContext = AbstractInteractionContext;
9813
10650
  exports.AbstractListInputComponent = AbstractListInputComponent;
@@ -9818,7 +10655,6 @@
9818
10655
  exports.AbstractTableModel = AbstractTableModel;
9819
10656
  exports.AbstractValueInputComponent = AbstractValueInputComponent;
9820
10657
  exports.Activity = Activity;
9821
- exports.ActivityActionsComponent = ActivityActionsComponent;
9822
10658
  exports.ActivityBodyComponent = ActivityBodyComponent;
9823
10659
  exports.ActivityContainerComponent = ActivityContainerComponent;
9824
10660
  exports.ActivityOutletComponent = ActivityOutletComponent;
@@ -9832,6 +10668,7 @@
9832
10668
  exports.CELL_EDITOR_PORTAL = CELL_EDITOR_PORTAL;
9833
10669
  exports.CELL_RENDERER_PORTAL = CELL_RENDERER_PORTAL;
9834
10670
  exports.CardContainerComponent = CardContainerComponent;
10671
+ exports.CardStackComponent = CardStackComponent;
9835
10672
  exports.CellEditorPortalRef = CellEditorPortalRef;
9836
10673
  exports.CellHeaderPortalRef = CellHeaderPortalRef;
9837
10674
  exports.CellPortalRef = CellPortalRef;
@@ -9846,6 +10683,7 @@
9846
10683
  exports.ComponentCellRendererPortalRef = ComponentCellRendererPortalRef;
9847
10684
  exports.ComponentsModule = ComponentsModule;
9848
10685
  exports.ConfirmThenDialogComponent = ConfirmThenDialogComponent;
10686
+ exports.ConfirmThenExecuteDialogComponent = ConfirmThenExecuteDialogComponent;
9849
10687
  exports.ConfirmationDialogComponent = ConfirmationDialogComponent;
9850
10688
  exports.ConsolidatedParameterMap = ConsolidatedParameterMap;
9851
10689
  exports.CustomTemplateColumnModel = CustomTemplateColumnModel;
@@ -9881,8 +10719,10 @@
9881
10719
  exports.InteractionModule = InteractionModule;
9882
10720
  exports.InteractionServiceRoutingAdapter = InteractionServiceRoutingAdapter;
9883
10721
  exports.LEFT_RIGHT_PLACE_ANIMATION = LEFT_RIGHT_PLACE_ANIMATION;
10722
+ exports.LabelledValueComponent = LabelledValueComponent;
9884
10723
  exports.ListPlaceNavComponent = ListPlaceNavComponent;
9885
10724
  exports.ListPropertyColumnModel = ListPropertyColumnModel;
10725
+ exports.LoadingContainerComponent = LoadingContainerComponent;
9886
10726
  exports.ModalActivityTriggerComponent = ModalActivityTriggerComponent;
9887
10727
  exports.ModalInteractionContextFactory = ModalInteractionContextFactory;
9888
10728
  exports.MoreMenuComponent = MoreMenuComponent;
@@ -9961,9 +10801,10 @@
9961
10801
  exports.slideDownOnEnterAnimation = slideDownOnEnterAnimation;
9962
10802
  exports.slideRightOnEnterAnimation = slideRightOnEnterAnimation;
9963
10803
  exports.treeNodeDecorator = treeNodeDecorator;
9964
- exports.ɵ0 = ɵ0;
10804
+ exports["ɵ0"] = ɵ0;
10805
+ exports["ɵ1"] = ɵ1;
9965
10806
 
9966
10807
  Object.defineProperty(exports, '__esModule', { value: true });
9967
10808
 
9968
- })));
10809
+ }));
9969
10810
  //# sourceMappingURL=coolon-angular-ui-powerups.umd.js.map