@coolon/angular-ui-powerups 12.4.0-alpha.8 → 12.4.0-alpha.80

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 (542) 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/markdown.scss +10 -0
  10. package/assets/mixins.scss +5 -7
  11. package/assets/pills.scss +45 -0
  12. package/assets/styles.scss +11 -15
  13. package/bundles/coolon-angular-ui-powerups-cypress.umd.js +741 -336
  14. package/bundles/coolon-angular-ui-powerups-cypress.umd.js.map +1 -1
  15. package/bundles/coolon-angular-ui-powerups.umd.js +1435 -448
  16. package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
  17. package/coolon-angular-ui-powerups.metadata.json +1 -1
  18. package/cypress/component-builder.d.ts +71 -0
  19. package/cypress/components/aup-abstract-activity.d.ts +31 -0
  20. package/cypress/components/aup-abstract-table.d.ts +18 -0
  21. package/cypress/components/aup-activity.d.ts +9 -0
  22. package/cypress/components/aup-alert-dialog.d.ts +27 -0
  23. package/cypress/components/aup-alert.d.ts +9 -0
  24. package/cypress/components/aup-command-face.d.ts +2 -8
  25. package/cypress/components/aup-command.d.ts +2 -1
  26. package/cypress/components/aup-confirm-dialog.d.ts +27 -0
  27. package/cypress/components/aup-confirm.d.ts +11 -0
  28. package/cypress/components/aup-empty-state.d.ts +1 -2
  29. package/cypress/components/aup-input.d.ts +11 -5
  30. package/cypress/components/aup-modal-activity.d.ts +24 -0
  31. package/cypress/components/aup-modal-mixin.d.ts +23 -0
  32. package/cypress/components/aup-table.d.ts +5 -18
  33. package/cypress/components/aup-tree-table.d.ts +16 -0
  34. package/cypress/components/button.d.ts +11 -7
  35. package/cypress/components/form-element-mixin.d.ts +22 -0
  36. package/cypress/components/mat-checkbox.d.ts +31 -0
  37. package/cypress/components/popup/aup-abstract-popup-menu.d.ts +15 -0
  38. package/cypress/components/popup/aup-more-menu.d.ts +5 -0
  39. package/cypress/components/popup/aup-popup-menu-panel.d.ts +3 -0
  40. package/cypress/components/popup/aup-popup-menu.d.ts +7 -0
  41. package/cypress/components/table/aup-table-cell.d.ts +9 -0
  42. package/cypress/components/table/aup-table-column.d.ts +10 -0
  43. package/cypress/components/table/aup-table-row.d.ts +17 -0
  44. package/cypress/components/table/aup-table-selection-cell.d.ts +5 -0
  45. package/cypress/components/table/aup-table-selection-column.d.ts +5 -0
  46. package/cypress/coolon-angular-ui-powerups-cypress.metadata.json +1 -1
  47. package/cypress/element-locator.d.ts +8 -0
  48. package/cypress/exports.d.ts +24 -4
  49. package/cypress/package.json +1 -1
  50. package/cypress/page-builder.d.ts +9 -0
  51. package/cypress/page-element.d.ts +12 -12
  52. package/cypress/page.d.ts +8 -34
  53. package/esm2015/cypress/component-builder.js +92 -0
  54. package/esm2015/cypress/component-builder.js.map +1 -0
  55. package/esm2015/cypress/component-builder.metadata.json +1 -0
  56. package/esm2015/cypress/components/aup-abstract-activity.js +12 -0
  57. package/esm2015/cypress/components/aup-abstract-activity.js.map +1 -0
  58. package/esm2015/cypress/components/aup-abstract-activity.metadata.json +1 -0
  59. package/esm2015/cypress/components/aup-abstract-table.js +50 -0
  60. package/esm2015/cypress/components/aup-abstract-table.js.map +1 -0
  61. package/esm2015/cypress/components/aup-abstract-table.metadata.json +1 -0
  62. package/esm2015/cypress/components/aup-activity.js +13 -0
  63. package/esm2015/cypress/components/aup-activity.js.map +1 -0
  64. package/esm2015/cypress/components/aup-activity.metadata.json +1 -0
  65. package/esm2015/cypress/components/aup-alert-dialog.js +8 -0
  66. package/esm2015/cypress/components/aup-alert-dialog.js.map +1 -0
  67. package/esm2015/cypress/components/aup-alert-dialog.metadata.json +1 -0
  68. package/esm2015/cypress/components/aup-alert.js +13 -0
  69. package/esm2015/cypress/components/aup-alert.js.map +1 -0
  70. package/esm2015/cypress/components/aup-alert.metadata.json +1 -0
  71. package/esm2015/cypress/components/aup-command-face.js +11 -22
  72. package/esm2015/cypress/components/aup-command-face.js.map +1 -1
  73. package/esm2015/cypress/components/aup-command-face.metadata.json +1 -1
  74. package/esm2015/cypress/components/aup-command.js +12 -6
  75. package/esm2015/cypress/components/aup-command.js.map +1 -1
  76. package/esm2015/cypress/components/aup-command.metadata.json +1 -1
  77. package/esm2015/cypress/components/aup-confirm-dialog.js +8 -0
  78. package/esm2015/cypress/components/aup-confirm-dialog.js.map +1 -0
  79. package/esm2015/cypress/components/aup-confirm-dialog.metadata.json +1 -0
  80. package/esm2015/cypress/components/aup-confirm.js +19 -0
  81. package/esm2015/cypress/components/aup-confirm.js.map +1 -0
  82. package/esm2015/cypress/components/aup-confirm.metadata.json +1 -0
  83. package/esm2015/cypress/components/aup-empty-state.js +2 -2
  84. package/esm2015/cypress/components/aup-empty-state.js.map +1 -1
  85. package/esm2015/cypress/components/aup-empty-state.metadata.json +1 -1
  86. package/esm2015/cypress/components/aup-input.js +17 -5
  87. package/esm2015/cypress/components/aup-input.js.map +1 -1
  88. package/esm2015/cypress/components/aup-input.metadata.json +1 -1
  89. package/esm2015/cypress/components/aup-modal-activity.js +5 -0
  90. package/esm2015/cypress/components/aup-modal-activity.js.map +1 -0
  91. package/esm2015/cypress/components/aup-modal-activity.metadata.json +1 -0
  92. package/esm2015/cypress/components/aup-modal-mixin.js +18 -0
  93. package/esm2015/cypress/components/aup-modal-mixin.js.map +1 -0
  94. package/esm2015/cypress/components/aup-modal-mixin.metadata.json +1 -0
  95. package/esm2015/cypress/components/aup-navigation.js +1 -1
  96. package/esm2015/cypress/components/aup-navigation.js.map +1 -1
  97. package/esm2015/cypress/components/aup-table.js +5 -33
  98. package/esm2015/cypress/components/aup-table.js.map +1 -1
  99. package/esm2015/cypress/components/aup-table.metadata.json +1 -1
  100. package/esm2015/cypress/components/aup-tree-table.js +34 -0
  101. package/esm2015/cypress/components/aup-tree-table.js.map +1 -0
  102. package/esm2015/cypress/components/aup-tree-table.metadata.json +1 -0
  103. package/esm2015/cypress/components/button.js +4 -10
  104. package/esm2015/cypress/components/button.js.map +1 -1
  105. package/esm2015/cypress/components/button.metadata.json +1 -1
  106. package/esm2015/cypress/components/form-element-mixin.js +11 -0
  107. package/esm2015/cypress/components/form-element-mixin.js.map +1 -0
  108. package/esm2015/cypress/components/form-element-mixin.metadata.json +1 -0
  109. package/esm2015/cypress/components/mat-checkbox.js +34 -0
  110. package/esm2015/cypress/components/mat-checkbox.js.map +1 -0
  111. package/esm2015/cypress/components/mat-checkbox.metadata.json +1 -0
  112. package/esm2015/cypress/components/popup/aup-abstract-popup-menu.js +33 -0
  113. package/esm2015/cypress/components/popup/aup-abstract-popup-menu.js.map +1 -0
  114. package/esm2015/cypress/components/popup/aup-abstract-popup-menu.metadata.json +1 -0
  115. package/esm2015/cypress/components/popup/aup-more-menu.js +8 -0
  116. package/esm2015/cypress/components/popup/aup-more-menu.js.map +1 -0
  117. package/esm2015/cypress/components/popup/aup-more-menu.metadata.json +1 -0
  118. package/esm2015/cypress/components/popup/aup-popup-menu-panel.js +4 -0
  119. package/esm2015/cypress/components/popup/aup-popup-menu-panel.js.map +1 -0
  120. package/esm2015/cypress/components/popup/aup-popup-menu-panel.metadata.json +1 -0
  121. package/esm2015/cypress/components/popup/aup-popup-menu.js +12 -0
  122. package/esm2015/cypress/components/popup/aup-popup-menu.js.map +1 -0
  123. package/esm2015/cypress/components/popup/aup-popup-menu.metadata.json +1 -0
  124. package/esm2015/cypress/components/table/aup-table-cell.js +14 -0
  125. package/esm2015/cypress/components/table/aup-table-cell.js.map +1 -0
  126. package/esm2015/cypress/components/table/aup-table-cell.metadata.json +1 -0
  127. package/esm2015/cypress/components/table/aup-table-column.js +19 -0
  128. package/esm2015/cypress/components/table/aup-table-column.js.map +1 -0
  129. package/esm2015/cypress/components/table/aup-table-column.metadata.json +1 -0
  130. package/esm2015/cypress/components/table/aup-table-row.js +28 -0
  131. package/esm2015/cypress/components/table/aup-table-row.js.map +1 -0
  132. package/esm2015/cypress/components/table/aup-table-row.metadata.json +1 -0
  133. package/esm2015/cypress/components/table/aup-table-selection-cell.js +6 -0
  134. package/esm2015/cypress/components/table/aup-table-selection-cell.js.map +1 -0
  135. package/esm2015/cypress/components/table/aup-table-selection-cell.metadata.json +1 -0
  136. package/esm2015/cypress/components/table/aup-table-selection-column.js +6 -0
  137. package/esm2015/cypress/components/table/aup-table-selection-column.js.map +1 -0
  138. package/esm2015/cypress/components/table/aup-table-selection-column.metadata.json +1 -0
  139. package/esm2015/cypress/element-locator.js +16 -0
  140. package/esm2015/cypress/element-locator.js.map +1 -0
  141. package/esm2015/cypress/element-locator.metadata.json +1 -0
  142. package/esm2015/cypress/exports.js +24 -4
  143. package/esm2015/cypress/exports.js.map +1 -1
  144. package/esm2015/cypress/exports.metadata.json +1 -1
  145. package/esm2015/cypress/page-builder.js +16 -0
  146. package/esm2015/cypress/page-builder.js.map +1 -0
  147. package/esm2015/cypress/page-builder.metadata.json +1 -0
  148. package/esm2015/cypress/page-element.js +26 -19
  149. package/esm2015/cypress/page-element.js.map +1 -1
  150. package/esm2015/cypress/page-element.metadata.json +1 -1
  151. package/esm2015/cypress/page.js +31 -19
  152. package/esm2015/cypress/page.js.map +1 -1
  153. package/esm2015/cypress/page.metadata.json +1 -1
  154. package/esm2015/lib/angular-ui-powerups.module.ngfactory.js.map +1 -1
  155. package/esm2015/lib/components/busy-overlay/busy-overlay.component.js +1 -1
  156. package/esm2015/lib/components/busy-overlay/busy-overlay.component.metadata.json +1 -1
  157. package/esm2015/lib/components/cards/abstract-card-container.component.js +29 -0
  158. package/esm2015/lib/components/cards/abstract-card-container.component.js.map +1 -0
  159. package/esm2015/lib/components/cards/abstract-card-container.component.metadata.json +1 -0
  160. package/esm2015/lib/components/cards/abstract-card-container.component.ngfactory.js.map +1 -0
  161. package/esm2015/lib/components/cards/card-container/card-container.component.js +123 -0
  162. package/esm2015/lib/components/cards/card-container/card-container.component.js.map +1 -0
  163. package/esm2015/lib/components/cards/card-container/card-container.component.metadata.json +1 -0
  164. package/esm2015/lib/components/cards/card-container/card-container.component.ngfactory.js.map +1 -0
  165. package/esm2015/lib/components/cards/card-container/card-container.component.scss.shim.ngstyle.js.map +1 -0
  166. package/esm2015/lib/components/cards/card-stack/card-stack.component.js +78 -0
  167. package/esm2015/lib/components/cards/card-stack/card-stack.component.js.map +1 -0
  168. package/esm2015/lib/components/cards/card-stack/card-stack.component.metadata.json +1 -0
  169. package/esm2015/lib/components/cards/card-stack/card-stack.component.ngfactory.js.map +1 -0
  170. package/esm2015/lib/components/cards/card-stack/card-stack.component.scss.shim.ngstyle.js.map +1 -0
  171. package/esm2015/lib/components/commands/command/command.component.js +1 -1
  172. package/esm2015/lib/components/commands/command/command.component.metadata.json +1 -1
  173. package/esm2015/lib/components/commands/command-face/command-face.component.js +5 -1
  174. package/esm2015/lib/components/commands/command-face/command-face.component.js.map +1 -1
  175. package/esm2015/lib/components/commands/command-face/command-face.component.metadata.json +1 -1
  176. package/esm2015/lib/components/commands/group/popup-menu/abstract-popup-menu.component.js +1 -1
  177. package/esm2015/lib/components/commands/group/popup-menu/abstract-popup-menu.component.js.map +1 -1
  178. package/esm2015/lib/components/commands/group/popup-menu/popup-menu-renderer/popup-menu-renderer.component.js +1 -1
  179. package/esm2015/lib/components/commands/group/popup-menu/popup-menu-renderer/popup-menu-renderer.component.js.map +1 -1
  180. package/esm2015/lib/components/commands/group/tool-bar/tool-bar.component.js +1 -1
  181. package/esm2015/lib/components/commands/group/tool-bar/tool-bar.component.metadata.json +1 -1
  182. package/esm2015/lib/components/components.module.js +43 -25
  183. package/esm2015/lib/components/components.module.js.map +1 -1
  184. package/esm2015/lib/components/components.module.metadata.json +1 -1
  185. package/esm2015/lib/components/components.module.ngfactory.js.map +1 -1
  186. package/esm2015/lib/components/empty-state/empty-state.component.js +1 -1
  187. package/esm2015/lib/components/empty-state/empty-state.component.metadata.json +1 -1
  188. package/esm2015/lib/components/exports.js +8 -4
  189. package/esm2015/lib/components/exports.js.map +1 -1
  190. package/esm2015/lib/components/exports.metadata.json +1 -1
  191. package/esm2015/lib/components/focus-container/focus-container.component.js +1 -1
  192. package/esm2015/lib/components/focus-container/focus-container.component.metadata.json +1 -1
  193. package/esm2015/lib/components/forms/abstract-input.component.js +1 -0
  194. package/esm2015/lib/components/forms/abstract-input.component.js.map +1 -1
  195. package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.js +1 -1
  196. package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.metadata.json +1 -1
  197. package/esm2015/lib/components/forms/checkbox-input/checkbox-input.component.js +1 -1
  198. package/esm2015/lib/components/forms/checkbox-input/checkbox-input.component.metadata.json +1 -1
  199. package/esm2015/lib/components/forms/multiple-select-input/multiple-select-input.component.js +1 -1
  200. package/esm2015/lib/components/forms/multiple-select-input/multiple-select-input.component.metadata.json +1 -1
  201. package/esm2015/lib/components/forms/select-input/select-input.component.js +2 -2
  202. package/esm2015/lib/components/forms/select-input/select-input.component.js.map +1 -1
  203. package/esm2015/lib/components/forms/select-input/select-input.component.metadata.json +1 -1
  204. package/esm2015/lib/components/forms/string-input/string-input.component.js +1 -1
  205. package/esm2015/lib/components/forms/string-input/string-input.component.metadata.json +1 -1
  206. package/esm2015/lib/components/forms/text-input/text-input.component.js +1 -1
  207. package/esm2015/lib/components/forms/text-input/text-input.component.metadata.json +1 -1
  208. package/esm2015/lib/components/icon/icon.component.js +1 -1
  209. package/esm2015/lib/components/icon/icon.component.metadata.json +1 -1
  210. package/esm2015/lib/components/labelled-value/labelled-value.component.js +22 -0
  211. package/esm2015/lib/components/labelled-value/labelled-value.component.js.map +1 -0
  212. package/esm2015/lib/components/labelled-value/labelled-value.component.metadata.json +1 -0
  213. package/esm2015/lib/components/labelled-value/labelled-value.component.ngfactory.js.map +1 -0
  214. 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
  215. package/esm2015/lib/components/loading-container/loading-container.component.js +45 -0
  216. package/esm2015/lib/components/loading-container/loading-container.component.js.map +1 -0
  217. package/esm2015/lib/components/loading-container/loading-container.component.metadata.json +1 -0
  218. package/esm2015/lib/components/loading-container/loading-container.component.ngfactory.js.map +1 -0
  219. package/esm2015/lib/components/loading-container/loading-container.component.scss.shim.ngstyle.js.map +1 -0
  220. package/esm2015/lib/components/noop/noop.component.js +1 -1
  221. package/esm2015/lib/components/noop/noop.component.metadata.json +1 -1
  222. package/esm2015/lib/components/scroll-container/scroll-container.component.js +1 -1
  223. package/esm2015/lib/components/scroll-container/scroll-container.component.metadata.json +1 -1
  224. package/esm2015/lib/components/section-header/section-header.component.js +12 -5
  225. package/esm2015/lib/components/section-header/section-header.component.js.map +1 -1
  226. package/esm2015/lib/components/section-header/section-header.component.metadata.json +1 -1
  227. package/esm2015/lib/components/switch-case/switch-case.component.js +1 -1
  228. package/esm2015/lib/components/switch-case/switch-case.component.metadata.json +1 -1
  229. package/esm2015/lib/components/tables/abstract-table-model.js +34 -20
  230. package/esm2015/lib/components/tables/abstract-table-model.js.map +1 -1
  231. package/esm2015/lib/components/tables/abstract-table-model.metadata.json +1 -1
  232. package/esm2015/lib/components/tables/edit-session.js.map +1 -0
  233. package/esm2015/lib/components/tables/{table/edit-session.metadata.json → edit-session.metadata.json} +1 -1
  234. package/esm2015/lib/components/tables/table/cell-portal-ref.js.map +1 -1
  235. package/esm2015/lib/components/tables/table/cell-renderer.js.map +1 -1
  236. package/esm2015/lib/components/tables/table/column-model.js +35 -10
  237. package/esm2015/lib/components/tables/table/column-model.js.map +1 -1
  238. package/esm2015/lib/components/tables/table/column-model.metadata.json +1 -1
  239. package/esm2015/lib/components/tables/table/default-cell-renderer/default-cell-renderer.component.js.map +1 -1
  240. package/esm2015/lib/components/tables/table/default-cell-renderer/default-cell-renderer.component.metadata.json +1 -1
  241. package/esm2015/lib/components/tables/table/edit-row-controls/edit-row-controls.component.js +19 -12
  242. package/esm2015/lib/components/tables/table/edit-row-controls/edit-row-controls.component.js.map +1 -1
  243. package/esm2015/lib/components/tables/table/edit-row-controls/edit-row-controls.component.metadata.json +1 -1
  244. package/esm2015/lib/components/tables/table/paginator/paginator.component.js +1 -1
  245. package/esm2015/lib/components/tables/table/paginator/paginator.component.metadata.json +1 -1
  246. package/esm2015/lib/components/tables/table/table-cell-renderer/table-cell-renderer.component.js +1 -1
  247. package/esm2015/lib/components/tables/table/table-cell-renderer/table-cell-renderer.component.js.map +1 -1
  248. package/esm2015/lib/components/tables/table/table-header-cell-renderer/table-header-cell-renderer.component.js +1 -1
  249. package/esm2015/lib/components/tables/table/table-header-cell-renderer/table-header-cell-renderer.component.metadata.json +1 -1
  250. package/esm2015/lib/components/tables/table/table-row-menu/table-row-menu.component.js +0 -2
  251. package/esm2015/lib/components/tables/table/table-row-menu/table-row-menu.component.js.map +1 -1
  252. package/esm2015/lib/components/tables/table/table-row-menu/table-row-menu.component.metadata.json +1 -1
  253. package/esm2015/lib/components/tables/table/table.component.js +14 -13
  254. package/esm2015/lib/components/tables/table/table.component.js.map +1 -1
  255. package/esm2015/lib/components/tables/table/table.component.metadata.json +1 -1
  256. package/esm2015/lib/components/tables/table/text-search-predicate.js +2 -0
  257. package/esm2015/lib/components/tables/table/text-search-predicate.js.map +1 -0
  258. package/esm2015/lib/components/tables/table/text-search-predicate.metadata.json +1 -0
  259. package/esm2015/lib/components/tables/tree-table/flattened-tree-list-model.js +4 -4
  260. package/esm2015/lib/components/tables/tree-table/flattened-tree-list-model.js.map +1 -1
  261. package/esm2015/lib/components/tables/tree-table/flattened-tree-list-model.metadata.json +1 -1
  262. package/esm2015/lib/components/tables/tree-table/tree-inheritance-icon/tree-inheritance-icon.component.js +1 -1
  263. package/esm2015/lib/components/tables/tree-table/tree-inheritance-icon/tree-inheritance-icon.component.metadata.json +1 -1
  264. package/esm2015/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.js +21 -13
  265. package/esm2015/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.js.map +1 -1
  266. package/esm2015/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.metadata.json +1 -1
  267. package/esm2015/lib/components/tables/tree-table/tree-label-column-model.js +1 -1
  268. package/esm2015/lib/components/tables/tree-table/tree-label-column-model.js.map +1 -1
  269. package/esm2015/lib/components/tables/tree-table/tree-label-column-model.metadata.json +1 -1
  270. package/esm2015/lib/components/tables/tree-table/tree-table-component.js +1 -1
  271. package/esm2015/lib/components/tables/tree-table/tree-table-component.js.map +1 -1
  272. package/esm2015/lib/components/tables/tree-table/tree-table-component.metadata.json +1 -1
  273. package/esm2015/lib/components/tables/tree-table/tree-table-model.js +3 -2
  274. package/esm2015/lib/components/tables/tree-table/tree-table-model.js.map +1 -1
  275. package/esm2015/lib/components/tables/tree-table/tree-table-model.metadata.json +1 -1
  276. package/esm2015/lib/components/text/markdown/markdown.component.js +76 -0
  277. package/esm2015/lib/components/text/markdown/markdown.component.js.map +1 -0
  278. package/esm2015/lib/components/text/markdown/markdown.component.metadata.json +1 -0
  279. package/esm2015/lib/components/text/markdown/markdown.component.ngfactory.js.map +1 -0
  280. package/esm2015/lib/components/text/markdown/markdown.component.scss.shim.ngstyle.js.map +1 -0
  281. package/esm2015/lib/components/track-by.js +12 -0
  282. package/esm2015/lib/components/track-by.js.map +1 -1
  283. package/esm2015/lib/components/vertical-focus-container/vertical-focus-container.component.js +1 -1
  284. package/esm2015/lib/components/vertical-focus-container/vertical-focus-container.component.metadata.json +1 -1
  285. package/esm2015/lib/directives/command.directive.js +1 -1
  286. package/esm2015/lib/directives/command.directive.js.map +1 -1
  287. package/esm2015/lib/directives/directives.module.ngfactory.js.map +1 -1
  288. package/esm2015/lib/interaction/abstract-interaction-context.js +7 -0
  289. package/esm2015/lib/interaction/abstract-interaction-context.js.map +1 -1
  290. package/esm2015/lib/interaction/abstract-interaction-context.metadata.json +1 -1
  291. package/esm2015/lib/interaction/activity.js +2 -1
  292. package/esm2015/lib/interaction/activity.js.map +1 -1
  293. package/esm2015/lib/interaction/alert.js +17 -1
  294. package/esm2015/lib/interaction/alert.js.map +1 -1
  295. package/esm2015/lib/interaction/components/abstract-confirm-dialog.component.js +23 -0
  296. package/esm2015/lib/interaction/components/abstract-confirm-dialog.component.js.map +1 -0
  297. package/esm2015/lib/interaction/components/abstract-confirm-dialog.component.metadata.json +1 -0
  298. package/esm2015/lib/interaction/components/abstract-confirm-dialog.component.ngfactory.js.map +1 -0
  299. package/esm2015/lib/interaction/components/abstract-dialog.component.js +52 -0
  300. package/esm2015/lib/interaction/components/abstract-dialog.component.js.map +1 -0
  301. package/esm2015/lib/interaction/components/abstract-dialog.component.metadata.json +1 -0
  302. package/esm2015/lib/interaction/components/abstract-dialog.component.ngfactory.js.map +1 -0
  303. package/esm2015/lib/interaction/components/activity-actions/activity-actions.component.js +17 -11
  304. package/esm2015/lib/interaction/components/activity-actions/activity-actions.component.js.map +1 -1
  305. package/esm2015/lib/interaction/components/activity-actions/activity-actions.component.metadata.json +1 -1
  306. package/esm2015/lib/interaction/components/activity-container/activity-container.component.js +3 -3
  307. package/esm2015/lib/interaction/components/activity-container/activity-container.component.js.map +1 -1
  308. package/esm2015/lib/interaction/components/activity-container/activity-container.component.metadata.json +1 -1
  309. package/esm2015/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.js +1 -1
  310. package/esm2015/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.metadata.json +1 -1
  311. package/esm2015/lib/interaction/components/activity-title/activity-title.component.js +1 -1
  312. package/esm2015/lib/interaction/components/activity-title/activity-title.component.metadata.json +1 -1
  313. package/esm2015/lib/interaction/components/activity-triggers/abstract-activity-trigger.component.js +4 -0
  314. package/esm2015/lib/interaction/components/activity-triggers/abstract-activity-trigger.component.js.map +1 -1
  315. package/esm2015/lib/interaction/components/activity-triggers/abstract-activity-trigger.component.metadata.json +1 -1
  316. package/esm2015/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.js +5 -2
  317. package/esm2015/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.js.map +1 -1
  318. package/esm2015/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.metadata.json +1 -1
  319. package/esm2015/lib/interaction/components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component.js +5 -2
  320. package/esm2015/lib/interaction/components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component.js.map +1 -1
  321. package/esm2015/lib/interaction/components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component.metadata.json +1 -1
  322. package/esm2015/lib/interaction/components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component.js +5 -2
  323. package/esm2015/lib/interaction/components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component.js.map +1 -1
  324. package/esm2015/lib/interaction/components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component.metadata.json +1 -1
  325. package/esm2015/lib/interaction/components/add-card-activity/add-card-activity.component.js +77 -0
  326. package/esm2015/lib/interaction/components/add-card-activity/add-card-activity.component.js.map +1 -0
  327. package/esm2015/lib/interaction/components/add-card-activity/add-card-activity.component.metadata.json +1 -0
  328. package/esm2015/lib/interaction/components/add-card-activity/add-card-activity.component.ngfactory.js.map +1 -0
  329. package/esm2015/lib/interaction/components/add-card-activity/add-card-activity.component.scss.shim.ngstyle.js.map +1 -0
  330. package/esm2015/lib/interaction/components/add-item-interaction-context/add-item-interaction-context.component.js +1 -1
  331. package/esm2015/lib/interaction/components/add-item-interaction-context/add-item-interaction-context.component.metadata.json +1 -1
  332. package/esm2015/lib/interaction/components/alert-dialog/alert-dialog.component.js +8 -14
  333. package/esm2015/lib/interaction/components/alert-dialog/alert-dialog.component.js.map +1 -1
  334. package/esm2015/lib/interaction/components/alert-dialog/alert-dialog.component.metadata.json +1 -1
  335. package/esm2015/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.js +8 -31
  336. package/esm2015/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.js.map +1 -1
  337. package/esm2015/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.metadata.json +1 -1
  338. package/esm2015/lib/interaction/components/confirm-then-execute-dialog/confirm-then-execute-dialog.component.js +30 -0
  339. package/esm2015/lib/interaction/components/confirm-then-execute-dialog/confirm-then-execute-dialog.component.js.map +1 -0
  340. package/esm2015/lib/interaction/components/confirm-then-execute-dialog/confirm-then-execute-dialog.component.metadata.json +1 -0
  341. package/esm2015/lib/interaction/components/confirm-then-execute-dialog/confirm-then-execute-dialog.component.ngfactory.js.map +1 -0
  342. package/esm2015/lib/interaction/components/confirm-then-execute-dialog/confirm-then-execute-dialog.component.scss.shim.ngstyle.js.map +1 -0
  343. package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +7 -26
  344. package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js.map +1 -1
  345. package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.metadata.json +1 -1
  346. package/esm2015/lib/interaction/components/editors/edit-context.js +2 -0
  347. package/esm2015/lib/interaction/components/editors/edit-context.js.map +1 -0
  348. package/esm2015/lib/interaction/components/editors/edit-context.metadata.json +1 -0
  349. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-editor-model.js +50 -0
  350. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-editor-model.js.map +1 -0
  351. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-editor-model.metadata.json +1 -0
  352. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.js +161 -0
  353. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.js.map +1 -0
  354. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.metadata.json +1 -0
  355. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.ngfactory.js.map +1 -0
  356. package/esm2015/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.js +10 -3
  357. package/esm2015/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.js.map +1 -1
  358. package/esm2015/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.metadata.json +1 -1
  359. package/esm2015/lib/interaction/components/input-activities/input-activity.js +95 -0
  360. package/esm2015/lib/interaction/components/input-activities/input-activity.js.map +1 -0
  361. package/esm2015/lib/interaction/components/input-activities/input-activity.metadata.json +1 -0
  362. package/esm2015/lib/interaction/components/input-activities/input-activity.ngfactory.js.map +1 -0
  363. package/esm2015/lib/interaction/components/input-activities/select-input-activity.js +5 -3
  364. package/esm2015/lib/interaction/components/input-activities/select-input-activity.js.map +1 -1
  365. package/esm2015/lib/interaction/components/input-activities/select-input-activity.metadata.json +1 -1
  366. package/esm2015/lib/interaction/components/input-activities/string-input-activity.js +6 -4
  367. package/esm2015/lib/interaction/components/input-activities/string-input-activity.js.map +1 -1
  368. package/esm2015/lib/interaction/components/input-activities/string-input-activity.metadata.json +1 -1
  369. package/esm2015/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.js +2 -1
  370. package/esm2015/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.js.map +1 -1
  371. package/esm2015/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.metadata.json +1 -1
  372. package/esm2015/lib/interaction/exports.js +8 -4
  373. package/esm2015/lib/interaction/exports.js.map +1 -1
  374. package/esm2015/lib/interaction/exports.metadata.json +1 -1
  375. package/esm2015/lib/interaction/interaction-context.js.map +1 -1
  376. package/esm2015/lib/interaction/interaction.module.js +29 -9
  377. package/esm2015/lib/interaction/interaction.module.js.map +1 -1
  378. package/esm2015/lib/interaction/interaction.module.metadata.json +1 -1
  379. package/esm2015/lib/interaction/interaction.module.ngfactory.js.map +1 -1
  380. package/esm2015/lib/interaction/services/interaction.service.js +1 -1
  381. package/esm2015/lib/interaction/services/interaction.service.js.map +1 -1
  382. package/esm2015/lib/place/components/abstract-place-navigation.component.js +1 -1
  383. package/esm2015/lib/place/components/abstract-place-navigation.component.js.map +1 -1
  384. package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.js +1 -1
  385. package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.metadata.json +1 -1
  386. package/esm2015/lib/place/components/not-authorised-notice/not-authorised-notice.component.js +1 -1
  387. package/esm2015/lib/place/components/not-authorised-notice/not-authorised-notice.component.metadata.json +1 -1
  388. package/esm2015/lib/place/components/place-outlet/place-outlet.component.js +1 -1
  389. package/esm2015/lib/place/components/place-outlet/place-outlet.component.metadata.json +1 -1
  390. package/esm2015/lib/place/components/side-place-navigation/side-place-navigation.component.js +1 -1
  391. package/esm2015/lib/place/components/side-place-navigation/side-place-navigation.component.metadata.json +1 -1
  392. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +1 -1
  393. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.metadata.json +1 -1
  394. package/esm2015/lib/place/guards/consolidated-param-map.js +2 -1
  395. package/esm2015/lib/place/guards/consolidated-param-map.js.map +1 -1
  396. package/esm2015/lib/place/guards/consolidated-param-map.metadata.json +1 -1
  397. package/esm2015/lib/place/guards/place.guard.js +2 -1
  398. package/esm2015/lib/place/guards/place.guard.js.map +1 -1
  399. package/esm2015/lib/place/place-component.js +31 -4
  400. package/esm2015/lib/place/place-component.js.map +1 -1
  401. package/esm2015/lib/place/place-component.metadata.json +1 -1
  402. package/esm2015/lib/place/place-router.js +11 -14
  403. package/esm2015/lib/place/place-router.js.map +1 -1
  404. package/esm2015/lib/place/place-router.metadata.json +1 -1
  405. package/esm2015/lib/place/place.module.ngfactory.js.map +1 -1
  406. package/esm2015/lib/place/visit.js +5 -1
  407. package/esm2015/lib/place/visit.js.map +1 -1
  408. package/esm2015/lib/place/visit.metadata.json +1 -1
  409. package/esm2015/lib/services/exports.js +2 -0
  410. package/esm2015/lib/services/exports.js.map +1 -1
  411. package/esm2015/lib/services/exports.metadata.json +1 -1
  412. package/esm2015/lib/services/markdown/markdown.service.js +25 -0
  413. package/esm2015/lib/services/markdown/markdown.service.js.map +1 -0
  414. package/esm2015/lib/services/markdown/markdown.service.metadata.json +1 -0
  415. package/esm2015/lib/services/markdown/markdown.service.ngfactory.js.map +1 -0
  416. package/esm2015/lib/services/markdown/pill-plugin.js +38 -0
  417. package/esm2015/lib/services/markdown/pill-plugin.js.map +1 -0
  418. package/esm2015/lib/services/markdown/pill-plugin.metadata.json +1 -0
  419. package/fesm2015/coolon-angular-ui-powerups-cypress.js +546 -244
  420. package/fesm2015/coolon-angular-ui-powerups-cypress.js.map +1 -1
  421. package/fesm2015/coolon-angular-ui-powerups.js +1198 -353
  422. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  423. package/lib/components/cards/abstract-card-container.component.d.ts +11 -0
  424. package/lib/components/{card-container → cards/card-container}/card-container.component.d.ts +30 -9
  425. package/lib/components/cards/card-stack/card-stack.component.d.ts +65 -0
  426. package/lib/components/commands/command-face/command-face.component.d.ts +1 -0
  427. package/lib/components/exports.d.ts +8 -4
  428. package/lib/components/labelled-value/labelled-value.component.d.ts +7 -0
  429. package/lib/components/loading-container/loading-container.component.d.ts +11 -0
  430. package/lib/components/section-header/section-header.component.d.ts +5 -2
  431. package/lib/components/tables/abstract-table-model.d.ts +10 -7
  432. package/lib/components/tables/{table/edit-session.d.ts → edit-session.d.ts} +3 -3
  433. package/lib/components/tables/table/cell-portal-ref.d.ts +1 -1
  434. package/lib/components/tables/table/cell-renderer.d.ts +2 -0
  435. package/lib/components/tables/table/column-model.d.ts +14 -5
  436. package/lib/components/tables/table/default-cell-renderer/default-cell-renderer.component.d.ts +2 -1
  437. package/lib/components/tables/table/edit-row-controls/edit-row-controls.component.d.ts +4 -2
  438. package/lib/components/tables/table/table-cell-renderer/table-cell-renderer.component.d.ts +1 -1
  439. package/lib/components/tables/table/table-row-menu/table-row-menu.component.d.ts +2 -3
  440. package/lib/components/tables/table/table.component.d.ts +13 -12
  441. package/lib/components/tables/table/text-search-predicate.d.ts +1 -0
  442. package/lib/components/tables/tree-table/flattened-tree-list-model.d.ts +0 -1
  443. package/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.d.ts +2 -3
  444. package/lib/components/tables/tree-table/tree-label-column-model.d.ts +2 -3
  445. package/lib/components/tables/tree-table/tree-table-component.d.ts +1 -1
  446. package/lib/components/tables/tree-table/tree-table-model.d.ts +4 -5
  447. package/lib/components/text/markdown/markdown.component.d.ts +28 -0
  448. package/lib/components/track-by.d.ts +9 -0
  449. package/lib/interaction/abstract-interaction-context.d.ts +1 -0
  450. package/lib/interaction/alert.d.ts +7 -1
  451. package/lib/interaction/components/abstract-confirm-dialog.component.d.ts +7 -0
  452. package/lib/interaction/components/abstract-dialog.component.d.ts +17 -0
  453. package/lib/interaction/components/activity-actions/activity-actions.component.d.ts +14 -3
  454. package/lib/interaction/components/activity-triggers/abstract-activity-trigger.component.d.ts +1 -1
  455. package/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.d.ts +2 -1
  456. package/lib/interaction/components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component.d.ts +2 -1
  457. package/lib/interaction/components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component.d.ts +2 -1
  458. package/lib/interaction/components/add-card-activity/add-card-activity.component.d.ts +39 -0
  459. package/lib/interaction/components/alert-dialog/alert-dialog.component.d.ts +2 -7
  460. package/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.d.ts +2 -10
  461. package/lib/interaction/components/confirm-then-execute-dialog/confirm-then-execute-dialog.component.d.ts +12 -0
  462. package/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.d.ts +2 -9
  463. package/lib/interaction/components/editors/edit-context.d.ts +3 -0
  464. package/lib/interaction/components/editors/inline-string-editor/inline-editor-model.d.ts +24 -0
  465. package/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.d.ts +57 -0
  466. package/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.d.ts +2 -0
  467. package/lib/interaction/components/input-activities/input-activity.d.ts +41 -0
  468. package/lib/interaction/components/input-activities/select-input-activity.d.ts +11 -3
  469. package/lib/interaction/components/input-activities/string-input-activity.d.ts +6 -2
  470. package/lib/interaction/exports.d.ts +8 -4
  471. package/lib/interaction/interaction-context.d.ts +1 -0
  472. package/lib/place/place-component.d.ts +6 -1
  473. package/lib/place/place-router.d.ts +2 -2
  474. package/lib/services/exports.d.ts +2 -0
  475. package/lib/services/markdown/markdown.service.d.ts +6 -0
  476. package/lib/services/markdown/pill-plugin.d.ts +15 -0
  477. package/package.json +17 -16
  478. package/schematics/activity/index.js +1 -1
  479. package/schematics/activity/index.js.map +1 -1
  480. package/schematics/activity/templates/component/__name@dasherize__.component.html.template +1 -1
  481. package/schematics/activity/templates/component/__name@dasherize__.component.ts.template +5 -3
  482. package/schematics/aup-i18n/index.js +1 -1
  483. package/schematics/aup-i18n/index.js.map +1 -1
  484. package/schematics/component/index.js +1 -1
  485. package/schematics/component/index.js.map +1 -1
  486. package/schematics/component/templates/component/__name@dasherize__.component.ts.template +1 -1
  487. package/schematics/place-routes/place-class-scanner.js +3 -1
  488. package/schematics/place-routes/place-class-scanner.js.map +1 -1
  489. package/schematics/utils/build-context.d.ts +6 -3
  490. package/schematics/utils/build-context.js +3 -3
  491. package/schematics/utils/build-context.js.map +1 -1
  492. package/schematics/utils/workspace.d.ts +1 -0
  493. package/schematics/utils/workspace.js +11 -3
  494. package/schematics/utils/workspace.js.map +1 -1
  495. package/assets/activities.scss +0 -70
  496. package/cypress/components/aup-more-menu.d.ts +0 -4
  497. package/cypress/components/aup-popup-menu.d.ts +0 -7
  498. package/cypress/components/button-mixin.d.ts +0 -19
  499. package/cypress/section.d.ts +0 -55
  500. package/esm2015/cypress/components/aup-more-menu.js +0 -7
  501. package/esm2015/cypress/components/aup-more-menu.js.map +0 -1
  502. package/esm2015/cypress/components/aup-more-menu.metadata.json +0 -1
  503. package/esm2015/cypress/components/aup-popup-menu.js +0 -19
  504. package/esm2015/cypress/components/aup-popup-menu.js.map +0 -1
  505. package/esm2015/cypress/components/aup-popup-menu.metadata.json +0 -1
  506. package/esm2015/cypress/components/button-mixin.js +0 -15
  507. package/esm2015/cypress/components/button-mixin.js.map +0 -1
  508. package/esm2015/cypress/components/button-mixin.metadata.json +0 -1
  509. package/esm2015/cypress/section.js +0 -76
  510. package/esm2015/cypress/section.js.map +0 -1
  511. package/esm2015/cypress/section.metadata.json +0 -1
  512. package/esm2015/lib/components/card-container/card-container.component.js +0 -84
  513. package/esm2015/lib/components/card-container/card-container.component.js.map +0 -1
  514. package/esm2015/lib/components/card-container/card-container.component.metadata.json +0 -1
  515. package/esm2015/lib/components/card-container/card-container.component.ngfactory.js.map +0 -1
  516. package/esm2015/lib/components/tables/table/edit-session.js.map +0 -1
  517. package/esm2015/lib/components/tables/tree-table/tree-node.js +0 -2
  518. package/esm2015/lib/components/tables/tree-table/tree-node.js.map +0 -1
  519. package/esm2015/lib/components/tables/tree-table/tree-node.metadata.json +0 -1
  520. package/esm2015/lib/components/tables/tree-table/visitable.class.js +0 -26
  521. package/esm2015/lib/components/tables/tree-table/visitable.class.js.map +0 -1
  522. package/esm2015/lib/components/tables/tree-table/visitable.class.metadata.json +0 -1
  523. package/esm2015/lib/interaction/components/input-activities/abstract-input-activity.js +0 -43
  524. package/esm2015/lib/interaction/components/input-activities/abstract-input-activity.js.map +0 -1
  525. package/esm2015/lib/interaction/components/input-activities/abstract-input-activity.metadata.json +0 -1
  526. package/esm2015/lib/interaction/components/input-activities/abstract-input-activity.ngfactory.js.map +0 -1
  527. package/esm2015/lib/interaction/components/input-activities/input-activity-data.js +0 -2
  528. package/esm2015/lib/interaction/components/input-activities/input-activity-data.js.map +0 -1
  529. package/esm2015/lib/interaction/components/input-activities/input-activity-data.metadata.json +0 -1
  530. package/esm2015/lib/interaction/components/input-activities/select-input-activity-data.js +0 -2
  531. package/esm2015/lib/interaction/components/input-activities/select-input-activity-data.js.map +0 -1
  532. package/esm2015/lib/interaction/components/input-activities/select-input-activity-data.metadata.json +0 -1
  533. package/esm2015/lib/interaction/result.js +0 -4
  534. package/esm2015/lib/interaction/result.js.map +0 -1
  535. package/esm2015/lib/interaction/result.metadata.json +0 -1
  536. package/lib/components/tables/tree-table/tree-node.d.ts +0 -3
  537. package/lib/components/tables/tree-table/visitable.class.d.ts +0 -22
  538. package/lib/interaction/components/input-activities/abstract-input-activity.d.ts +0 -12
  539. package/lib/interaction/components/input-activities/input-activity-data.d.ts +0 -11
  540. package/lib/interaction/components/input-activities/select-input-activity-data.d.ts +0 -8
  541. package/lib/interaction/result.d.ts +0 -8
  542. /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('marked'), 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', 'marked', '@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.marked, 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, _, marked, 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
@@ -738,6 +742,67 @@
738
742
  },] }
739
743
  ];
740
744
 
745
+ var markdownPillExtension = function (renderPill) {
746
+ return {
747
+ name: 'aup-pill',
748
+ level: 'inline',
749
+ start: function (src) {
750
+ var _a;
751
+ var index = (_a = src.match(/\(\([^)]/)) === null || _a === void 0 ? void 0 : _a.index;
752
+ // if (index) {
753
+ // console.log({start:src})
754
+ // }
755
+ return index;
756
+ },
757
+ tokenizer: function (src) {
758
+ var rule = /^(\(\((([^)])+)\)\))/; // Regex for the complete token
759
+ var match = rule.exec(src);
760
+ if (match) {
761
+ var token = {
762
+ type: 'aup-pill',
763
+ raw: match[0],
764
+ text: match[2].trim(), // Additional custom properties
765
+ // tokens: [] // Array where child inline tokens will be generated
766
+ };
767
+ // console.log(token)
768
+ // this.lexer.inlineTokens(token.text, token.tokens); // Queue this data to be processed for inline tokens
769
+ return token;
770
+ }
771
+ else {
772
+ return undefined;
773
+ }
774
+ },
775
+ renderer: function (token) {
776
+ // @ts-ignore (until typings are up to date)
777
+ var url = token.text;
778
+ return renderPill(token.text);
779
+ }
780
+ };
781
+ };
782
+
783
+ var MarkdownService = /** @class */ (function () {
784
+ function MarkdownService() {
785
+ }
786
+ MarkdownService.prototype.render = function (content) {
787
+ return marked.marked.parse(content, {
788
+ smartLists: true
789
+ });
790
+ };
791
+ MarkdownService.prototype.renderInline = function (content) {
792
+ return marked.marked.parseInline(content);
793
+ };
794
+ MarkdownService.prototype.usePillExtension = function (renderer) {
795
+ marked.marked.use({
796
+ extensions: [markdownPillExtension(renderer !== null && renderer !== void 0 ? renderer : (function (text) { return "<span class='aup-pill'>" + text + "<span>"; }))]
797
+ });
798
+ };
799
+ return MarkdownService;
800
+ }());
801
+ MarkdownService.decorators = [
802
+ { type: i0.Injectable }
803
+ ];
804
+ MarkdownService.ctorParameters = function () { return []; };
805
+
741
806
  var BusyOverlayComponent = /** @class */ (function (_super) {
742
807
  __extends(BusyOverlayComponent, _super);
743
808
  function BusyOverlayComponent() {
@@ -751,7 +816,7 @@
751
816
  { type: i0.Component, args: [{
752
817
  selector: 'aup-busy-overlay',
753
818
  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}"]
819
+ 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
820
  },] }
756
821
  ];
757
822
  BusyOverlayComponent.ctorParameters = function () { return []; };
@@ -768,6 +833,32 @@
768
833
  __metadata("design:type", Boolean)
769
834
  ], BusyOverlayComponent.prototype, "busy", void 0);
770
835
 
836
+ var AbstractCardContainerComponent = /** @class */ (function (_super) {
837
+ __extends(AbstractCardContainerComponent, _super);
838
+ function AbstractCardContainerComponent() {
839
+ return _super.call(this) || this;
840
+ }
841
+ AbstractCardContainerComponent.prototype.ngOnInit = function () {
842
+ };
843
+ return AbstractCardContainerComponent;
844
+ }(DisposableComponent));
845
+ AbstractCardContainerComponent.decorators = [
846
+ { type: i0.Component, args: [{
847
+ selector: 'aup-abstract-card-container',
848
+ template: ''
849
+ },] }
850
+ ];
851
+ AbstractCardContainerComponent.ctorParameters = function () { return []; };
852
+ AbstractCardContainerComponent.propDecorators = {
853
+ addCardCommand: [{ type: i0.Input }],
854
+ addCardFace: [{ type: i0.Input }],
855
+ addCardTemplate: [{ type: i0.ContentChild, args: ['addCardTemplate',] }]
856
+ };
857
+ __decorate([
858
+ pectin.TrackExternal(),
859
+ __metadata("design:type", pectin.Command)
860
+ ], AbstractCardContainerComponent.prototype, "addCardCommand", void 0);
861
+
771
862
  /**
772
863
  * @example
773
864
  * // basic usage
@@ -785,6 +876,13 @@
785
876
  * <my-card *ngFor="..."></my-card>
786
877
  * </aup-card-container>
787
878
  *
879
+ * // use the aup-add-card-activity to display as the new card place holder and to run
880
+ * // the activity inside teh card
881
+ * <aup-card-container [addCardCommand]="addCard" [addCardFace]="i18n.addCard" >
882
+ * <my-card *ngFor="..."></my-card>
883
+ * <aup-add-card-activity type="inline" renderAs="card" [face]="i18n.commands.addModal" [activityClass]="AddCardActivity"></aup-add-card-activity>
884
+ * </aup-card-container>
885
+ *
788
886
  * // adds an add card component using the specified template. The template
789
887
  * // will fill it's container in the grid.
790
888
  * <aup-card-container>
@@ -817,6 +915,7 @@
817
915
  * aup-card-container {
818
916
  * --card-gap: var(--card-gap, 16px);
819
917
  * --card-width: var(--card-width, 300px);
918
+ * --card-max-width: auto;
820
919
  * --card-height: var(--card-height, auto);
821
920
  * --card-min-height: var(--card-min-height, auto);
822
921
  * --card-background: var(--card-background, #fcfcfb);
@@ -824,30 +923,154 @@
824
923
  */
825
924
  var CardContainerComponent = /** @class */ (function (_super) {
826
925
  __extends(CardContainerComponent, _super);
827
- function CardContainerComponent() {
828
- return _super.call(this) || this;
926
+ function CardContainerComponent(elementRef) {
927
+ var _this = _super.call(this) || this;
928
+ _this.elementRef = elementRef;
929
+ /**
930
+ * Enable scrolling. If true the container will have height==0 so you must set it's height explicitly
931
+ * or place in a layout that will stretch it such as a grid or flex layout.
932
+ */
933
+ _this.enabledScroll = false;
934
+ return _this;
829
935
  }
936
+ Object.defineProperty(CardContainerComponent.prototype, "columnCount", {
937
+ get: function () {
938
+ return this._columnCount;
939
+ },
940
+ set: function (count) {
941
+ if (!___namespace.isNil(count) && (!___namespace.isInteger(count) || count < 1)) {
942
+ typescriptUtilities.lang.illegalState('columnCount must be a positive integer or nil');
943
+ }
944
+ this._columnCount = count;
945
+ this.updateColumnCountStyles();
946
+ },
947
+ enumerable: false,
948
+ configurable: true
949
+ });
830
950
  CardContainerComponent.prototype.ngOnInit = function () {
951
+ _super.prototype.ngOnInit.call(this);
952
+ this.updateColumnCountStyles();
953
+ };
954
+ Object.defineProperty(CardContainerComponent.prototype, "isAutoColumns", {
955
+ get: function () {
956
+ return ___namespace.isNil(this._columnCount);
957
+ },
958
+ enumerable: false,
959
+ configurable: true
960
+ });
961
+ Object.defineProperty(CardContainerComponent.prototype, "isSingleColumn", {
962
+ get: function () {
963
+ return this._columnCount === 1;
964
+ },
965
+ enumerable: false,
966
+ configurable: true
967
+ });
968
+ CardContainerComponent.prototype.updateColumnCountStyles = function () {
969
+ var el = this.elementRef.nativeElement;
970
+ if (___namespace.isNil(this._columnCount)) {
971
+ el.style.setProperty('--aup-card-container-column-count', '');
972
+ }
973
+ else {
974
+ el.style.setProperty('--aup-card-container-column-count', this._columnCount);
975
+ }
831
976
  };
832
977
  return CardContainerComponent;
833
- }(DisposableComponent));
978
+ }(AbstractCardContainerComponent));
834
979
  CardContainerComponent.decorators = [
835
980
  { type: i0.Component, args: [{
836
981
  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}"]
982
+ 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",
983
+ 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
984
  },] }
840
985
  ];
841
- CardContainerComponent.ctorParameters = function () { return []; };
986
+ CardContainerComponent.ctorParameters = function () { return [
987
+ { type: i0.ElementRef }
988
+ ]; };
842
989
  CardContainerComponent.propDecorators = {
843
- addCardCommand: [{ type: i0.Input }],
844
- addCardFace: [{ type: i0.Input }],
845
- addCardTemplate: [{ type: i0.ContentChild, args: ["addCardTemplate",] }]
990
+ columnCount: [{ type: i0.Input }],
991
+ enabledScroll: [{ type: i0.Input }],
992
+ isAutoColumns: [{ type: i0.HostBinding, args: ['class.auto-columns',] }],
993
+ isSingleColumn: [{ type: i0.HostBinding, args: ['class.single-column',] }]
846
994
  };
847
- __decorate([
848
- pectin.TrackExternal(),
849
- __metadata("design:type", pectin.Command)
850
- ], CardContainerComponent.prototype, "addCardCommand", void 0);
995
+
996
+ /**
997
+ * @deprecated deprecated, use `aup-card-container [columnCount]="1"` instead.
998
+ * @example
999
+ * // basic usage
1000
+ * <aup-card-stack>
1001
+ * <my-card *ngFor="..."></my-card>
1002
+ * </aup-card-stack>
1003
+ *
1004
+ * // adds an add button with a the '+' icon to the end of the card list.
1005
+ * <aup-card-stack [addCardCommand]="addCard">
1006
+ * <my-card *ngFor="..."></my-card>
1007
+ * </aup-card-stack>
1008
+ *
1009
+ * // adds an add button with the specified face
1010
+ * <aup-card-stack [addCardCommand]="addCard" [addCardFace]="i18n.addCard" >
1011
+ * <my-card *ngFor="..."></my-card>
1012
+ * </aup-card-stack>
1013
+ *
1014
+ * // use the aup-add-card-activity to display as the new card place holder and to run
1015
+ * // the activity inside teh card
1016
+ * <aup-card-stack [addCardCommand]="addCard" [addCardFace]="i18n.addCard" >
1017
+ * <my-card *ngFor="..."></my-card>
1018
+ * <aup-add-card-activity type="inline" renderAs="card" [face]="i18n.commands.addModal" [activityClass]="AddCardActivity"></aup-add-card-activity>
1019
+ * </aup-card-stack>
1020
+ *
1021
+ * // adds an add card component using the specified template. The template
1022
+ * // will fill it's container in the grid.
1023
+ * <aup-card-stack>
1024
+ * <my-card *ngFor="..."></my-card>
1025
+ * <ng-template #addCardTemplate>
1026
+ * <div>This is a new card template, it will the the size of the other cards.</div>
1027
+ * </ng-template>
1028
+ * </aup-card-stack>
1029
+ *
1030
+ * // sing the default new card styles for your template
1031
+ * @import "../../../../assets/styles";
1032
+ * .my-new-card {
1033
+ * @include aup-card-stack-new-card-style();
1034
+ * // OR
1035
+ * @include aup-card-stack-new-card-style(
1036
+ * $color: rgba(0,0,0,0.54),
1037
+ * $background-color: rgba(255,255,255,0.8),
1038
+ * $hover-color: $color,
1039
+ * $background-hover-color: white
1040
+ * )
1041
+ * }
1042
+ * <aup-card-stack>
1043
+ * <my-card *ngFor="..."></my-card>
1044
+ * <ng-template #addCardTemplate>
1045
+ * <div class="my-new-card" >This is a new card template, it will the the size of the other cards.</div>
1046
+ * </ng-template>
1047
+ * </aup-card-stack>
1048
+ *
1049
+ * // CSS Vars
1050
+ * aup-card-stack {
1051
+ * --card-gap: var(--card-gap, 16px);
1052
+ * --card-height: var(--card-height, auto);
1053
+ * --card-min-height: var(--card-min-height, auto);
1054
+ * --card-background: var(--card-background, #fcfcfb);
1055
+ * }
1056
+ */
1057
+ var CardStackComponent = /** @class */ (function (_super) {
1058
+ __extends(CardStackComponent, _super);
1059
+ function CardStackComponent() {
1060
+ var _this = _super.call(this) || this;
1061
+ console.warn('<aup-card-stack></aup-card-stack> is deprecated. Use <aup-card-container [columnCount]="1"> instead.');
1062
+ return _this;
1063
+ }
1064
+ return CardStackComponent;
1065
+ }(AbstractCardContainerComponent));
1066
+ CardStackComponent.decorators = [
1067
+ { type: i0.Component, args: [{
1068
+ selector: 'aup-card-stack',
1069
+ 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",
1070
+ 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"]
1071
+ },] }
1072
+ ];
1073
+ CardStackComponent.ctorParameters = function () { return []; };
851
1074
 
852
1075
  exports.CommandFace = void 0;
853
1076
  (function (CommandFace) {
@@ -862,27 +1085,27 @@
862
1085
  RAISED: 'raised'
863
1086
  });
864
1087
  function getColorOf(face) {
865
- return ___default['default'].isFunction(face === null || face === void 0 ? void 0 : face.color) ? face.color() : undefined;
1088
+ return ___default["default"].isFunction(face === null || face === void 0 ? void 0 : face.color) ? face.color() : undefined;
866
1089
  }
867
1090
  CommandFace.getColorOf = getColorOf;
868
1091
  function getStyleOf(face) {
869
- return ___default['default'].isFunction(face === null || face === void 0 ? void 0 : face.style) ? face.style() : undefined;
1092
+ return ___default["default"].isFunction(face === null || face === void 0 ? void 0 : face.style) ? face.style() : undefined;
870
1093
  }
871
1094
  CommandFace.getStyleOf = getStyleOf;
872
1095
  function getIconOf(face) {
873
- return ___default['default'].isFunction(face === null || face === void 0 ? void 0 : face.icon) ? face.icon() : undefined;
1096
+ return ___default["default"].isFunction(face === null || face === void 0 ? void 0 : face.icon) ? face.icon() : undefined;
874
1097
  }
875
1098
  CommandFace.getIconOf = getIconOf;
876
1099
  function getIconPositionOf(face) {
877
- return ___default['default'].isFunction(face === null || face === void 0 ? void 0 : face.iconPosition) ? face.iconPosition() : undefined;
1100
+ return ___default["default"].isFunction(face === null || face === void 0 ? void 0 : face.iconPosition) ? face.iconPosition() : undefined;
878
1101
  }
879
1102
  CommandFace.getIconPositionOf = getIconPositionOf;
880
1103
  function getTooltipOf(face) {
881
- return ___default['default'].isFunction(face === null || face === void 0 ? void 0 : face.tooltip) ? face.tooltip() : undefined;
1104
+ return ___default["default"].isFunction(face === null || face === void 0 ? void 0 : face.tooltip) ? face.tooltip() : undefined;
882
1105
  }
883
1106
  CommandFace.getTooltipOf = getTooltipOf;
884
1107
  function getTextOf(face) {
885
- return ___default['default'].isFunction(face === null || face === void 0 ? void 0 : face.text) ? face.text() : undefined;
1108
+ return ___default["default"].isFunction(face === null || face === void 0 ? void 0 : face.text) ? face.text() : undefined;
886
1109
  }
887
1110
  CommandFace.getTextOf = getTextOf;
888
1111
  var Adapter = /** @class */ (function () {
@@ -1015,6 +1238,13 @@
1015
1238
  _this.activeColor = activeFace.pluck("color");
1016
1239
  return _this;
1017
1240
  }
1241
+ Object.defineProperty(CommandFaceComponent.prototype, "face", {
1242
+ set: function (face) {
1243
+ this.facesModel.value = [face];
1244
+ },
1245
+ enumerable: false,
1246
+ configurable: true
1247
+ });
1018
1248
  Object.defineProperty(CommandFaceComponent.prototype, "requiresMissingIconInLayout", {
1019
1249
  get: function () {
1020
1250
  return this.includeMissingIconInLayout && !this.activeIcon.value;
@@ -1047,12 +1277,13 @@
1047
1277
  selector: 'aup-command-face',
1048
1278
  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
1279
  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}"]
1280
+ 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
1281
  },] }
1052
1282
  ];
1053
1283
  CommandFaceComponent.ctorParameters = function () { return []; };
1054
1284
  CommandFaceComponent.propDecorators = {
1055
1285
  _rawFaces: [{ type: i0.Input, args: ['faces',] }],
1286
+ face: [{ type: i0.Input }],
1056
1287
  ignoreIcon: [{ type: i0.Input }],
1057
1288
  ignoreText: [{ type: i0.Input }],
1058
1289
  includeMissingIconInLayout: [{ type: i0.Input }],
@@ -1125,7 +1356,7 @@
1125
1356
  _this.colorModel = chain(_this.activeFace).map(function (f) { return exports.CommandFace.getColorOf(f); });
1126
1357
  _this.tooltipModel = chain(_this.activeFace).map(function (f) { return exports.CommandFace.getTooltipOf(f); });
1127
1358
  _this.iconOnly = _this.faces.select(function (face) {
1128
- return ___default['default'].isEmpty(exports.CommandFace.getTextOf(face)) && !___default['default'].isEmpty(exports.CommandFace.getIconOf(face));
1359
+ return ___default["default"].isEmpty(exports.CommandFace.getTextOf(face)) && !___default["default"].isEmpty(exports.CommandFace.getIconOf(face));
1129
1360
  }).count().equals(_this.faces.count());
1130
1361
  return _this;
1131
1362
  }
@@ -1146,7 +1377,7 @@
1146
1377
  { type: i0.Component, args: [{
1147
1378
  selector: 'aup-command',
1148
1379
  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}"]
1380
+ 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
1381
  },] }
1151
1382
  ];
1152
1383
  CommandComponent.ctorParameters = function () { return [
@@ -1210,7 +1441,7 @@
1210
1441
  function AbstractPopupMenuComponent(element, parent) {
1211
1442
  var _this = _super.call(this, element, parent) || this;
1212
1443
  _this._unorderedChildren = new pectin.MutableListModel();
1213
- _this.faceModelDelegate = new pectin.DelegatingValueModel();
1444
+ _this.faceModelDelegate = _this.registerDisposable(new pectin.DelegatingValueModel());
1214
1445
  _this.xPosition = 'after';
1215
1446
  _this.yPosition = 'below';
1216
1447
  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 +1566,22 @@
1335
1566
  exports.TrackBy = void 0;
1336
1567
  (function (TrackBy) {
1337
1568
  TrackBy.byIndex = function (index, item) { return index; };
1569
+ /**
1570
+ * @deprecated use #track(MyType).by("property") instead.
1571
+ * @param property
1572
+ */
1338
1573
  function trackByProperty(property) {
1339
1574
  return function (index, item) { return item[property]; };
1340
1575
  }
1341
1576
  TrackBy.trackByProperty = trackByProperty;
1577
+ function track(type) {
1578
+ return {
1579
+ by: function (property) {
1580
+ return function (index, item) { return item[property]; };
1581
+ }
1582
+ };
1583
+ }
1584
+ TrackBy.track = track;
1342
1585
  })(exports.TrackBy || (exports.TrackBy = {}));
1343
1586
 
1344
1587
  exports.CommandContainer = /** @class */ (function (_super) {
@@ -1403,7 +1646,7 @@
1403
1646
  selector: 'aup-tool-bar',
1404
1647
  template: '<div class="toolbar-content"><ng-content></ng-content></div>',
1405
1648
  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}"]
1649
+ 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
1650
  },] }
1408
1651
  ];
1409
1652
  ToolBarComponent.ctorParameters = function () { return []; };
@@ -1429,8 +1672,7 @@
1429
1672
  { type: i0.Component, args: [{
1430
1673
  selector: 'aup-separator',
1431
1674
  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 }"]
1675
+ styles: [":host {\n }", ":host(.horizontal-container) {\n display: inline-flex;\n flex-direction: row;\n align-items: stretch;\n }"]
1434
1676
  },] }
1435
1677
  ];
1436
1678
  SeparatorComponent.ctorParameters = function () { return [
@@ -1446,7 +1688,7 @@
1446
1688
  __extends(PopupMenuRendererComponent, _super);
1447
1689
  function PopupMenuRendererComponent() {
1448
1690
  var _this = _super.call(this) || this;
1449
- _this._childList = new pectin.DelegatingListModel();
1691
+ _this._childList = _this.registerDisposable(new pectin.DelegatingListModel());
1450
1692
  _this.commandFired = new i0.EventEmitter();
1451
1693
  _this.TrackBy = exports.TrackBy;
1452
1694
  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 +1829,7 @@
1587
1829
  { type: i0.Component, args: [{
1588
1830
  selector: 'aup-empty-state',
1589
1831
  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}"]
1832
+ 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
1833
  },] }
1592
1834
  ];
1593
1835
  EmptyStateComponent.ctorParameters = function () { return []; };
@@ -1618,7 +1860,7 @@
1618
1860
  providers: [
1619
1861
  { provide: pectin.FocusManager }
1620
1862
  ],
1621
- styles: [":host{display:block}"]
1863
+ styles: [":host{display:block}\n"]
1622
1864
  },] }
1623
1865
  ];
1624
1866
  FocusContainerComponent.ctorParameters = function () { return [
@@ -1685,6 +1927,7 @@
1685
1927
  function AbstractInputComponent() {
1686
1928
  var _this = _super.call(this) || this;
1687
1929
  _this.onValueEditedListeners = new pectin.EventListenerList();
1930
+ _this.userFloatLabel = 'always'; // TODO: make this an injectable default
1688
1931
  _this.dense = false;
1689
1932
  // TODO: fix this.
1690
1933
  // tslint:disable-next-line:no-output-native
@@ -1966,10 +2209,10 @@
1966
2209
  _this.optionLabelFormat = function (option) { return (option && _this.optionLabel) ? option[_this.optionLabel] : option; };
1967
2210
  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
2211
  var lowerCaseFilterValue = chain(_this.filterValue)
1969
- .map(function (v) { return ___default['default'].isString(v) ? v.toLowerCase() : ''; });
2212
+ .map(function (v) { return ___default["default"].isString(v) ? v.toLowerCase() : ''; });
1970
2213
  _this.filteredOptions = chain(_this.optionsModel)
1971
2214
  .select(function (option) {
1972
- return ___default['default'].isEmpty(_this.filterValue.value) || _this.optionLabelFormat(option).toString().toLowerCase().includes(lowerCaseFilterValue.value);
2215
+ return ___default["default"].isEmpty(_this.filterValue.value) || _this.optionLabelFormat(option).toString().toLowerCase().includes(lowerCaseFilterValue.value);
1973
2216
  }, { dependsOn: lowerCaseFilterValue });
1974
2217
  return _this;
1975
2218
  }
@@ -1990,7 +2233,7 @@
1990
2233
  { type: i0.Component, args: [{
1991
2234
  selector: 'aup-autocomplete-input',
1992
2235
  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%}"]
2236
+ styles: [":host{display:inline-block}mat-form-field{width:100%}\n"]
1994
2237
  },] }
1995
2238
  ];
1996
2239
  AutocompleteInputComponent.ctorParameters = function () { return []; };
@@ -2029,7 +2272,7 @@
2029
2272
  { type: i0.Component, args: [{
2030
2273
  selector: 'aup-checkbox-input',
2031
2274
  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}"]
2275
+ 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
2276
  },] }
2034
2277
  ];
2035
2278
  CheckboxInputComponent.ctorParameters = function () { return []; };
@@ -2060,7 +2303,7 @@
2060
2303
  { type: i0.Component, args: [{
2061
2304
  selector: 'aup-multiple-select-input',
2062
2305
  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%}"]
2306
+ styles: [":host{display:inline-block}mat-form-field{width:100%}\n"]
2064
2307
  },] }
2065
2308
  ];
2066
2309
  MultipleSelectInputComponent.ctorParameters = function () { return []; };
@@ -2149,8 +2392,8 @@
2149
2392
  SelectInputComponent.decorators = [
2150
2393
  { type: i0.Component, args: [{
2151
2394
  selector: 'aup-select-input',
2152
- 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%}"]
2395
+ 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<div class=\"width-strut\">\n <div *ngFor=\"let item of options\">{{optionLabelFormat(item)}}</div>\n</div>\n",
2396
+ styles: [":host{display:inline-block}mat-form-field{width:100%}.width-strut{height:0;max-height:0;width:auto;visibility:hidden;padding-right:12px}\n"]
2154
2397
  },] }
2155
2398
  ];
2156
2399
  SelectInputComponent.ctorParameters = function () { return []; };
@@ -2191,7 +2434,7 @@
2191
2434
  { type: i0.Component, args: [{
2192
2435
  selector: 'aup-string-input',
2193
2436
  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}"]
2437
+ styles: ["button[disabled]{visibility:hidden}\n"]
2195
2438
  },] }
2196
2439
  ];
2197
2440
  StringInputComponent.ctorParameters = function () { return []; };
@@ -2228,7 +2471,7 @@
2228
2471
  { type: i0.Component, args: [{
2229
2472
  selector: 'aup-text-input',
2230
2473
  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}"]
2474
+ styles: ["button[disabled]{visibility:hidden}textarea{overflow:auto}\n"]
2232
2475
  },] }
2233
2476
  ];
2234
2477
  TextInputComponent.ctorParameters = function () { return []; };
@@ -2272,7 +2515,7 @@
2272
2515
  { type: i0.Component, args: [{
2273
2516
  selector: 'aup-icon',
2274
2517
  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}"]
2518
+ 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
2519
  },] }
2277
2520
  ];
2278
2521
  exports.IconComponent.propDecorators = {
@@ -2286,6 +2529,54 @@
2286
2529
  });
2287
2530
  })(exports.IconComponent || (exports.IconComponent = {}));
2288
2531
 
2532
+ var LoadingContainerComponent = /** @class */ (function (_super) {
2533
+ __extends(LoadingContainerComponent, _super);
2534
+ function LoadingContainerComponent() {
2535
+ return _super.call(this) || this;
2536
+ }
2537
+ Object.defineProperty(LoadingContainerComponent.prototype, "state", {
2538
+ get: function () {
2539
+ return this.loadingModel.value ? "loaded" : "loading";
2540
+ },
2541
+ enumerable: false,
2542
+ configurable: true
2543
+ });
2544
+ LoadingContainerComponent.prototype.ngOnInit = function () {
2545
+ };
2546
+ return LoadingContainerComponent;
2547
+ }(pectin.GarbageCollector));
2548
+ LoadingContainerComponent.decorators = [
2549
+ { type: i0.Component, args: [{
2550
+ selector: 'aup-loading-container',
2551
+ 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",
2552
+ 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"]
2553
+ },] }
2554
+ ];
2555
+ LoadingContainerComponent.ctorParameters = function () { return []; };
2556
+ LoadingContainerComponent.propDecorators = {
2557
+ loadingModel: [{ type: i0.Input }],
2558
+ loading: [{ type: i0.Input }],
2559
+ messageModel: [{ type: i0.Input }],
2560
+ message: [{ type: i0.Input }],
2561
+ state: [{ type: i0.HostBinding, args: ["class",] }]
2562
+ };
2563
+ __decorate([
2564
+ pectin.TrackExternal(),
2565
+ __metadata("design:type", pectin.ValueModel)
2566
+ ], LoadingContainerComponent.prototype, "loadingModel", void 0);
2567
+ __decorate([
2568
+ pectin.StoreInValueModel("loadingModel"),
2569
+ __metadata("design:type", Boolean)
2570
+ ], LoadingContainerComponent.prototype, "loading", void 0);
2571
+ __decorate([
2572
+ pectin.TrackExternal(),
2573
+ __metadata("design:type", pectin.ValueModel)
2574
+ ], LoadingContainerComponent.prototype, "messageModel", void 0);
2575
+ __decorate([
2576
+ pectin.StoreInValueModel("messageModel"),
2577
+ __metadata("design:type", String)
2578
+ ], LoadingContainerComponent.prototype, "message", void 0);
2579
+
2289
2580
  var NoopComponent = /** @class */ (function () {
2290
2581
  function NoopComponent() {
2291
2582
  }
@@ -2295,7 +2586,7 @@
2295
2586
  { type: i0.Component, args: [{
2296
2587
  selector: 'aup-noop',
2297
2588
  template: "",
2298
- styles: [":host{display:block}"]
2589
+ styles: [":host{display:block}\n"]
2299
2590
  },] }
2300
2591
  ];
2301
2592
  NoopComponent.ctorParameters = function () { return []; };
@@ -2311,29 +2602,37 @@
2311
2602
  { type: i0.Component, args: [{
2312
2603
  selector: 'aup-scroll-container',
2313
2604
  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}"]
2605
+ 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
2606
  },] }
2316
2607
  ];
2317
2608
  ScrollContainerComponent.ctorParameters = function () { return []; };
2318
2609
 
2319
- var SectionHeaderComponent = /** @class */ (function () {
2610
+ var SectionHeaderComponent = /** @class */ (function (_super) {
2611
+ __extends(SectionHeaderComponent, _super);
2320
2612
  function SectionHeaderComponent() {
2321
- this.underline = false;
2613
+ var _this = _super.call(this) || this;
2614
+ // readonly i18n = I18nMarsUi.components.layout.header;
2615
+ _this.size = 'medium';
2616
+ _this.borderTop = false;
2617
+ _this.borderBottom = false;
2618
+ return _this;
2322
2619
  }
2323
2620
  SectionHeaderComponent.prototype.ngOnInit = function () {
2324
2621
  };
2325
2622
  return SectionHeaderComponent;
2326
- }());
2623
+ }(DisposableComponent));
2327
2624
  SectionHeaderComponent.decorators = [
2328
2625
  { type: i0.Component, args: [{
2329
2626
  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)}"]
2627
+ 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",
2628
+ 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
2629
  },] }
2333
2630
  ];
2334
2631
  SectionHeaderComponent.ctorParameters = function () { return []; };
2335
2632
  SectionHeaderComponent.propDecorators = {
2336
- underline: [{ type: i0.Input }, { type: i0.HostBinding, args: ['class.underline',] }]
2633
+ size: [{ type: i0.Input }, { type: i0.HostBinding, args: ['class',] }],
2634
+ borderTop: [{ type: i0.Input }, { type: i0.HostBinding, args: ['class.border-top',] }],
2635
+ borderBottom: [{ type: i0.Input }, { type: i0.HostBinding, args: ['class.border-bottom',] }]
2337
2636
  };
2338
2637
 
2339
2638
  var SwitchCaseOption = /** @class */ (function () {
@@ -2454,7 +2753,7 @@
2454
2753
  { type: i0.Component, args: [{
2455
2754
  selector: 'aup-switch-case',
2456
2755
  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}"]
2756
+ styles: [":host{display:flex;flex-direction:column;align-items:stretch}mat-tab-group{flex:1}\n"]
2458
2757
  },] }
2459
2758
  ];
2460
2759
  SwitchCaseComponent.ctorParameters = function () { return [
@@ -2536,7 +2835,7 @@
2536
2835
  ResizeAwareComponent.prototype.ngAfterViewInit = function () {
2537
2836
  var _this = this;
2538
2837
  var element = this.elementRef.nativeElement;
2539
- var ro = new ResizeObserver__default['default'](function (entries, observer) {
2838
+ var ro = new ResizeObserver__default["default"](function (entries, observer) {
2540
2839
  _this.ngZone.run(function () { return _this._updateBounds(); });
2541
2840
  });
2542
2841
  ro.observe(element);
@@ -2737,19 +3036,38 @@
2737
3036
  __extends(EditRowControls, _super);
2738
3037
  function EditRowControls() {
2739
3038
  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();
3039
+ _this.saveCommand = pectin.Command.create(function () { return __awaiter(_this, void 0, void 0, function () {
3040
+ var finished;
3041
+ return __generator(this, function (_b) {
3042
+ switch (_b.label) {
3043
+ case 0: return [4 /*yield*/, this.editSession.saveCommand.execute()];
3044
+ case 1:
3045
+ finished = _b.sent();
3046
+ if (finished) {
3047
+ this.editSession.dispose();
3048
+ }
3049
+ return [2 /*return*/];
2745
3050
  }
2746
3051
  });
2747
- });
3052
+ }); });
2748
3053
  _this.cancelCommand = pectin.Command.create(function () {
2749
3054
  _this.editSession.dispose();
2750
- });
3055
+ }).disableWhile(_this.saveCommand.busy);
2751
3056
  return _this;
2752
3057
  }
3058
+ Object.defineProperty(EditRowControls.prototype, "editSession", {
3059
+ get: function () {
3060
+ return this._session;
3061
+ },
3062
+ set: function (session) {
3063
+ if (session) {
3064
+ session.form.disableWhile(this.saveCommand.busy);
3065
+ }
3066
+ this._session = session;
3067
+ },
3068
+ enumerable: false,
3069
+ configurable: true
3070
+ });
2753
3071
  EditRowControls.prototype.ngOnInit = function () {
2754
3072
  };
2755
3073
  Object.defineProperty(EditRowControls.prototype, "form", {
@@ -2766,7 +3084,7 @@
2766
3084
  { type: i0.Component, args: [{
2767
3085
  selector: 'aup-row-editor-controls',
2768
3086
  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}"]
3087
+ styles: [":host{display:block;width:80px}.edit-button{visibility:hidden}:host-context(tr:hover) .edit-button{visibility:visible}\n"]
2770
3088
  },] }
2771
3089
  ];
2772
3090
  EditRowControls.ctorParameters = function () { return []; };
@@ -2843,16 +3161,23 @@
2843
3161
  };
2844
3162
  var ɵ0 = noop;
2845
3163
  var CELL_RENDERER_COMPONENT_ROW_CACHE = Symbol('aup-cell-renderer:row-data-cache');
2846
- var ColumnModel = /** @class */ (function () {
3164
+ var DEFAULT_TEXT_SEARCH_PREDICATE = function (row, text) { return false; };
3165
+ var ɵ1 = DEFAULT_TEXT_SEARCH_PREDICATE;
3166
+ var ColumnModel = /** @class */ (function (_super) {
3167
+ __extends(ColumnModel, _super);
2847
3168
  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();
3169
+ var _this = _super.call(this) || this;
3170
+ _this.columnId = columnId;
3171
+ _this.textPropertiesProvider = textPropertiesProvider;
3172
+ _this._enableRowSelection = true;
3173
+ _this._flex = false;
3174
+ _this._defaultVisibility = _this.registerDisposable(new pectin.DelegatingValueModel().withDefault(true));
3175
+ _this._visible = _this.registerDisposable(new pectin.DelegatingValueModel().withDefault(_this._defaultVisibility));
3176
+ _this._columnModelTextSearchPredicate = undefined;
3177
+ _this._cellRendererTextSearchPredicate = undefined;
3178
+ _this.installHeaderRenderer();
3179
+ _this.dasherisedColumnId = typescriptUtilities.Stringy.from(columnId).dasherize().toString();
3180
+ return _this;
2856
3181
  }
2857
3182
  ColumnModel.prototype.installHeaderRenderer = function () {
2858
3183
  this.cellHeaderRenderer(DefaultHeaderCellRendererComponent, function (component, column) {
@@ -2883,6 +3208,21 @@
2883
3208
  ColumnModel.prototype.getDefaultHeaderText = function () {
2884
3209
  return this.columnId;
2885
3210
  };
3211
+ Object.defineProperty(ColumnModel.prototype, "isTextMatch", {
3212
+ get: function () {
3213
+ return this._columnModelTextSearchPredicate || this._cellRendererTextSearchPredicate || DEFAULT_TEXT_SEARCH_PREDICATE;
3214
+ },
3215
+ enumerable: false,
3216
+ configurable: true
3217
+ });
3218
+ /**
3219
+ * Sets the predicate to use when checking if the specified row is a text match for this column.
3220
+ * @param predicate
3221
+ */
3222
+ ColumnModel.prototype.useTextSearchPredicate = function (predicate) {
3223
+ this._columnModelTextSearchPredicate = predicate;
3224
+ return this;
3225
+ };
2886
3226
  ColumnModel.prototype.getColumnTextProperties = function () {
2887
3227
  return this._columnTextProperties || this.textPropertiesProvider();
2888
3228
  };
@@ -2934,6 +3274,12 @@
2934
3274
  };
2935
3275
  ColumnModel.prototype.onRendererAttached = function (host, component) {
2936
3276
  this._cellRendererPortalRef.onPortalAttached(host, component);
3277
+ if (___default["default"].isFunction(component === null || component === void 0 ? void 0 : component.matches)) {
3278
+ this._cellRendererTextSearchPredicate = function (row, text) { return component.matches(row, text); };
3279
+ }
3280
+ else {
3281
+ this._cellRendererTextSearchPredicate = undefined;
3282
+ }
2937
3283
  };
2938
3284
  // @Trace()
2939
3285
  ColumnModel.prototype.onEditorAttached = function (host, component) {
@@ -2950,7 +3296,7 @@
2950
3296
  return this._enableRowSelection;
2951
3297
  };
2952
3298
  return ColumnModel;
2953
- }());
3299
+ }(pectin.GarbageCollector));
2954
3300
  __decorate([
2955
3301
  src.Memoize(),
2956
3302
  __metadata("design:type", Function),
@@ -2968,27 +3314,27 @@
2968
3314
  function PropertyColumnModel(id, property, defaults) {
2969
3315
  var _this = _super.call(this, id, defaults) || this;
2970
3316
  _this.property = property;
2971
- _this._format = function (value) { return value; };
3317
+ _this._format = function (value) { return value === null || value === void 0 ? void 0 : value.toString(); };
2972
3318
  _this.cellRenderer(DefaultCellRendererComponent);
3319
+ _this.useTextSearchPredicate(function (row, regex) {
3320
+ return regex.test(_this._format(row[_this.property]));
3321
+ });
2973
3322
  return _this;
2974
3323
  }
2975
3324
  PropertyColumnModel.prototype.cellRenderer = function (componentType, onComponentInitOrOptions) {
2976
3325
  var _this = this;
2977
3326
  this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, function (component, rowData, firstTime) {
2978
3327
  if (firstTime) {
2979
- if (___default['default'].isFunction(onComponentInitOrOptions)) {
3328
+ if (___default["default"].isFunction(onComponentInitOrOptions)) {
2980
3329
  onComponentInitOrOptions(component);
2981
3330
  }
2982
3331
  else {
2983
- if (___default['default'].isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onComponentInit)) {
3332
+ if (___default["default"].isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onComponentInit)) {
2984
3333
  onComponentInitOrOptions.onComponentInit(component);
2985
3334
  }
2986
3335
  }
2987
3336
  }
2988
3337
  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
3338
  }));
2993
3339
  return this;
2994
3340
  };
@@ -3008,7 +3354,7 @@
3008
3354
  component[CELL_RENDERER_COMPONENT_ROW_CACHE] = rowData.row;
3009
3355
  var disableEditCallback = false;
3010
3356
  if (firstTime) {
3011
- if (___default['default'].isFunction(options === null || options === void 0 ? void 0 : options.onComponentInit)) {
3357
+ if (___default["default"].isFunction(options === null || options === void 0 ? void 0 : options.onComponentInit)) {
3012
3358
  options.onComponentInit(component);
3013
3359
  }
3014
3360
  // install our edit callback
@@ -3023,7 +3369,7 @@
3023
3369
  disableEditCallback = true;
3024
3370
  component.value = rowData.row[_this.property];
3025
3371
  disableEditCallback = false;
3026
- if (!___default['default'].isFunction(options) && ___default['default'].isFunction(options === null || options === void 0 ? void 0 : options.onRowUpdate)) {
3372
+ if (!___default["default"].isFunction(options) && ___default["default"].isFunction(options === null || options === void 0 ? void 0 : options.onRowUpdate)) {
3027
3373
  options.onRowUpdate(component, rowData.row);
3028
3374
  }
3029
3375
  }));
@@ -3032,7 +3378,7 @@
3032
3378
  PropertyColumnModel.prototype.cellEditor = function (editor, validatorsOrInitialiser, onComponentInit) {
3033
3379
  var _this = this;
3034
3380
  var validators = Array.isArray(validatorsOrInitialiser) ? validatorsOrInitialiser : undefined;
3035
- var initialiser = ___default['default'].isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : onComponentInit;
3381
+ var initialiser = ___default["default"].isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : onComponentInit;
3036
3382
  this.configureCellEditor(new CellEditorPortalRef(editor, function (component, editSession) {
3037
3383
  var formValueModel = editSession.form.pluck(_this.property);
3038
3384
  if (validators) {
@@ -3062,6 +3408,9 @@
3062
3408
  _this.property = property;
3063
3409
  _this._format = function (value) { return value.map(function (v) { return v === null || v === void 0 ? void 0 : v.toString(); }).join(', '); };
3064
3410
  _this.cellRenderer(DefaultCellRendererComponent);
3411
+ _this.useTextSearchPredicate(function (row, regex) {
3412
+ return regex.test(_this._format(row[_this.property]));
3413
+ });
3065
3414
  return _this;
3066
3415
  }
3067
3416
  ListPropertyColumnModel.prototype.cellRenderer = function (componentType) {
@@ -3074,7 +3423,7 @@
3074
3423
  ListPropertyColumnModel.prototype.cellEditor = function (editor, validatorsOrInitialiser, initialiseComponent) {
3075
3424
  var _this = this;
3076
3425
  var validators = Array.isArray(validatorsOrInitialiser) ? validatorsOrInitialiser : undefined;
3077
- var initialiser = ___default['default'].isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : initialiseComponent;
3426
+ var initialiser = ___default["default"].isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : initialiseComponent;
3078
3427
  this.configureCellEditor(new CellEditorPortalRef(editor, function (component, editSession) {
3079
3428
  var formListModel = editSession.form.pluckList(_this.property);
3080
3429
  if (validators) {
@@ -3109,17 +3458,17 @@
3109
3458
  var _this = this;
3110
3459
  this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, function (component, rowData, firstTime) {
3111
3460
  if (firstTime) {
3112
- if (___default['default'].isFunction(onComponentInitOrOptions)) {
3461
+ if (___default["default"].isFunction(onComponentInitOrOptions)) {
3113
3462
  onComponentInitOrOptions(component);
3114
3463
  }
3115
3464
  else {
3116
- if (___default['default'].isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onComponentInit)) {
3465
+ if (___default["default"].isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onComponentInit)) {
3117
3466
  onComponentInitOrOptions.onComponentInit(component);
3118
3467
  }
3119
3468
  }
3120
3469
  }
3121
3470
  component.value = _this.getValue(rowData.row);
3122
- if (!___default['default'].isFunction(onComponentInitOrOptions) && ___default['default'].isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onRowUpdate)) {
3471
+ if (!___default["default"].isFunction(onComponentInitOrOptions) && ___default["default"].isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onRowUpdate)) {
3123
3472
  onComponentInitOrOptions.onRowUpdate(component, rowData.row);
3124
3473
  }
3125
3474
  }));
@@ -3132,7 +3481,7 @@
3132
3481
  }(ColumnModel));
3133
3482
  var EditorControlColumnModel = /** @class */ (function (_super) {
3134
3483
  __extends(EditorControlColumnModel, _super);
3135
- function EditorControlColumnModel(columnId, saveCommand, defaults) {
3484
+ function EditorControlColumnModel(columnId, saveCommandFactory, defaults) {
3136
3485
  var _this = _super.call(this, columnId, defaults) || this;
3137
3486
  _this.cellRenderer(EditRowControls);
3138
3487
  return _this;
@@ -3497,7 +3846,7 @@
3497
3846
  { type: i0.Component, args: [{
3498
3847
  selector: 'aup-table-header-cell-renderer',
3499
3848
  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%}"]
3849
+ styles: [":host{display:flex;flex-direction:column;align-items:stretch;justify-content:center;height:100%}\n"]
3501
3850
  },] }
3502
3851
  ];
3503
3852
  TableHeaderCellRendererComponent.ctorParameters = function () { return []; };
@@ -3530,8 +3879,6 @@
3530
3879
  TableRowMenuComponent.prototype.registerMoreAction = function (commandFactory, properties) {
3531
3880
  this.moreActions.push(new MenuItemData(commandFactory, properties));
3532
3881
  };
3533
- TableRowMenuComponent.prototype.ngOnInit = function () {
3534
- };
3535
3882
  TableRowMenuComponent.prototype.createMoreMenuCommand = function (item, value) {
3536
3883
  var _this = this;
3537
3884
  var when = pectin.Dsl.disposeWith(this).when;
@@ -3618,7 +3965,7 @@
3618
3965
  // if (!this._liveRowValue.value[immerable]) {
3619
3966
  // console.warn()
3620
3967
  // }
3621
- _this._liveRowValue.value = produce__default['default'](_this._liveRowValue.value, function (draft) {
3968
+ _this._liveRowValue.value = produce__default["default"](_this._liveRowValue.value, function (draft) {
3622
3969
  _this.form.writeDirtyStateTo(draft);
3623
3970
  });
3624
3971
  });
@@ -3640,7 +3987,7 @@
3640
3987
  __extends(AbstractTableModel, _super);
3641
3988
  function AbstractTableModel() {
3642
3989
  var _this = _super.call(this) || this;
3643
- _this._dataSource = new pectin.DelegatingListModel();
3990
+ _this._dataSource = _this.registerDisposable(new pectin.DelegatingListModel());
3644
3991
  _this._columnList = _this.registerDisposable(new ColumnListModel());
3645
3992
  _this._editorSessions = new pectin.MutableListModel();
3646
3993
  _this.rowClassNamePredicates = [];
@@ -3662,6 +4009,12 @@
3662
4009
  _this.rowSelectionDisabledOnAllColumns = chain(_this._columnList).select(function (column) { return column.isRowSelectionEnabled(); }).count().equals(0);
3663
4010
  return _this;
3664
4011
  }
4012
+ AbstractTableModel.prototype.findMatchingColumns = function (row, regex) {
4013
+ return this.columns.value.filter(function (c) { return c.isTextMatch(row, regex); });
4014
+ };
4015
+ AbstractTableModel.prototype.hasMatchingColumn = function (row, regex) {
4016
+ return !!this.columns.value.find(function (c) { return c.isTextMatch(row, regex); });
4017
+ };
3665
4018
  AbstractTableModel.prototype.setDataSource = function (sourceOfTruth) {
3666
4019
  this._dataSource.setDelegate(sourceOfTruth);
3667
4020
  };
@@ -3711,11 +4064,14 @@
3711
4064
  }
3712
4065
  return selectionColumnModel;
3713
4066
  };
3714
- AbstractTableModel.prototype.addEditControls = function (saveCommand) {
4067
+ AbstractTableModel.prototype.addEditControls = function (saveCommandFactory, formFactory) {
3715
4068
  var _this = this;
3716
- this.saveCommand = saveCommand;
4069
+ this.saveCommandFactory = saveCommandFactory;
4070
+ if (___namespace.isFunction(formFactory)) {
4071
+ this._createForm = formFactory;
4072
+ }
3717
4073
  var columnId = 'editControls';
3718
- return this.addColumn(new EditorControlColumnModel(columnId, saveCommand, function () { return _this.getColumnTextProperties(columnId); }));
4074
+ return this.addColumn(new EditorControlColumnModel(columnId, saveCommandFactory, function () { return _this.getColumnTextProperties(columnId); }));
3719
4075
  };
3720
4076
  AbstractTableModel.prototype.addCustomColumn = function (columnId, dataAccessor) {
3721
4077
  var _this = this;
@@ -3763,19 +4119,20 @@
3763
4119
  if (this._rowsBeingEdited.query().indexOf(row) > -1) {
3764
4120
  return pectin.lang.illegalState("Row with id=" + rowId + " already being edited");
3765
4121
  }
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
- }
4122
+ // todo: pass the factories to the edit session so we can make the whole lot pluggable?
4123
+ var form = this._createForm(row);
4124
+ var saveCommand = this.saveCommandFactory.create(form);
4125
+ var editSession = new EditSession(rowId, row, form, saveCommand);
4126
+ var when = pectin.Dsl.disposeWith(editSession).when;
4127
+ when(editSession.liveRowValue).changes(function (editedValue) {
4128
+ _this._rowsBeingEdited.replaceOrPush(editedValue);
4129
+ }, { initialValue: 'triggerChangeUnlessNil' });
4130
+ this._editorSessions.push(editSession);
4131
+ editSession.onDispose(function () {
4132
+ _this._rowsBeingEdited.remove(editSession.liveRowValue.value);
4133
+ _this._editorSessions.remove(editSession);
4134
+ });
4135
+ return editSession;
3779
4136
  };
3780
4137
  AbstractTableModel.prototype.getEditSessionFor = function (row) {
3781
4138
  return this._editorSessionByRowId.get(this.identityOf(row));
@@ -3792,12 +4149,16 @@
3792
4149
  return this.isRowSelectionEnabled() && column.isRowSelectionEnabled();
3793
4150
  };
3794
4151
  AbstractTableModel.prototype.isRowSelectionEnabled = function () {
3795
- return this.hasSelectionModel() && !this.rowSelectionDisabledOnAllColumns.value;
4152
+ return this.hasUserSelectionModel() && !this.rowSelectionDisabledOnAllColumns.value;
3796
4153
  };
3797
- AbstractTableModel.prototype.hasSelectionModel = function () {
4154
+ AbstractTableModel.prototype.hasUserSelectionModel = function () {
3798
4155
  var _a;
3799
4156
  return !!((_a = this.selectionColumnModel) === null || _a === void 0 ? void 0 : _a.selectionModel.getDelegate());
3800
4157
  };
4158
+ AbstractTableModel.prototype.getSelectionModel = function () {
4159
+ var _a;
4160
+ return (_a = this.selectionColumnModel) === null || _a === void 0 ? void 0 : _a.selectionModel;
4161
+ };
3801
4162
  AbstractTableModel.prototype.isHoverEnabled = function () {
3802
4163
  return this.isRowSelectionEnabled() || this.rowClickListeners.listenerCount > 0;
3803
4164
  };
@@ -3865,18 +4226,19 @@
3865
4226
  * --row-selected-background-color: rebeccapurple; // defaults to transparent
3866
4227
  * --first-column-padding-left: 18px // defaults to --column-gap
3867
4228
  * --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
- * }
4229
+ * ::ng-deep {
4230
+ * aup-table-header-cell-renderer,
4231
+ * aup-table-cell-renderer {
4232
+ * &.aup-col-my-dasherised-column-id {
4233
+ * // do stuff
4234
+ * }
4235
+ * &.first-visible-column {
4236
+ * // do stuff
4237
+ * }
4238
+ * &.last-visible-column {
4239
+ * // do stuff
4240
+ * }
4241
+ * }
3880
4242
  * }
3881
4243
  * }
3882
4244
  */
@@ -3897,7 +4259,7 @@
3897
4259
  providers: [
3898
4260
  { provide: AbstractTableComponent, useExisting: TableComponent }
3899
4261
  ],
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}"]
4262
+ 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
4263
  },] }
3902
4264
  ];
3903
4265
  TableComponent.ctorParameters = function () { return [
@@ -3950,7 +4312,7 @@
3950
4312
  { type: i0.Component, args: [{
3951
4313
  selector: 'aup-tree-inheritance-icon',
3952
4314
  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}"]
4315
+ styles: [":host{position:relative;color:inherit}svg{color:var(--line-color);display:block}\n"]
3954
4316
  },] }
3955
4317
  ];
3956
4318
  exports.TreeInheritanceIconComponent.ctorParameters = function () { return []; };
@@ -4192,17 +4554,17 @@
4192
4554
  var _this = this;
4193
4555
  var chain = pectin.Dsl.disposeWith(this).chain;
4194
4556
  this.canExpand = chain(this.nodeModel).map(function (node) {
4195
- return exports.DecoratedTreeNode.getDecorator(node).hasChildren() && _this.expansionModel.isCollapsed(node);
4196
- }, { dependsOn: this.expansionModel.isExpandedPredicate });
4557
+ return exports.DecoratedTreeNode.getDecorator(node).hasChildren() && _this.treeTableModel.isCollapsed(node);
4558
+ }, { dependsOn: this.treeTableModel.treeExpansionModel.isExpandedPredicate });
4197
4559
  this.canCollapse = chain(this.nodeModel).map(function (node) {
4198
- return exports.DecoratedTreeNode.getDecorator(node).hasChildren() && !_this.expansionModel.isCollapsed(node);
4199
- }, { dependsOn: this.expansionModel.isExpandedPredicate });
4560
+ return exports.DecoratedTreeNode.getDecorator(node).hasChildren() && !_this.treeTableModel.isCollapsed(node);
4561
+ }, { dependsOn: this.treeTableModel.treeExpansionModel.isExpandedPredicate });
4200
4562
  this.iconModel = chain(this.nodeModel).map(function (node) {
4201
4563
  var _a;
4202
- var expanded = _this.expansionModel.isExpanded(_this.node);
4564
+ var expanded = _this.treeTableModel.treeExpansionModel.isExpanded(_this.node);
4203
4565
  var iconFactory = (_a = _this.iconFactory) !== null && _a !== void 0 ? _a : TreeLabelCellRendererComponent.DEFAULT_ICON_FACTORY;
4204
4566
  return iconFactory(node, expanded, TreeLabelCellRendererComponent.DEFAULT_ICON_FACTORY(node, expanded, undefined));
4205
- }, { dependsOn: this.expansionModel.isExpandedPredicate });
4567
+ }, { dependsOn: this.treeTableModel.treeExpansionModel.isExpandedPredicate });
4206
4568
  };
4207
4569
  Object.defineProperty(TreeLabelCellRendererComponent.prototype, "isRoot", {
4208
4570
  get: function () {
@@ -4226,16 +4588,18 @@
4226
4588
  configurable: true
4227
4589
  });
4228
4590
  // @Trace()
4229
- TreeLabelCellRendererComponent.prototype.expandOrCollapse = function (node) {
4230
- this.expansionModel.isCollapsed(node) ? this.expansionModel.expand(node) : this.expansionModel.collapse(node);
4591
+ TreeLabelCellRendererComponent.prototype.expandOrCollapse = function ($event, node) {
4592
+ $event.preventDefault();
4593
+ $event.stopPropagation();
4594
+ this.treeTableModel.isCollapsed(node) ? this.treeTableModel.expand(node) : this.treeTableModel.collapse(node);
4231
4595
  };
4232
4596
  return TreeLabelCellRendererComponent;
4233
4597
  }(DisposableComponent));
4234
4598
  exports.TreeLabelCellRendererComponent.decorators = [
4235
4599
  { type: i0.Component, args: [{
4236
4600
  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}"]
4601
+ 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",
4602
+ 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
4603
  },] }
4240
4604
  ];
4241
4605
  exports.TreeLabelCellRendererComponent.ctorParameters = function () { return []; };
@@ -4243,7 +4607,7 @@
4243
4607
  value: [{ type: i0.Input }],
4244
4608
  label: [{ type: i0.Input }],
4245
4609
  iconFactory: [{ type: i0.Input }],
4246
- expansionModel: [{ type: i0.Input }],
4610
+ treeTableModel: [{ type: i0.Input }],
4247
4611
  isRoot: [{ type: i0.HostBinding, args: ['class.root',] }],
4248
4612
  isLeaf: [{ type: i0.HostBinding, args: ['class.leaf',] }]
4249
4613
  };
@@ -4252,22 +4616,29 @@
4252
4616
  __metadata("design:type", Object)
4253
4617
  ], exports.TreeLabelCellRendererComponent.prototype, "value", void 0);
4254
4618
  (function (TreeLabelCellRendererComponent) {
4255
- TreeLabelCellRendererComponent.DEFAULT_ICON_FACTORY = function (node, expanded, defaultIcon) { return expanded ? 'mat:expand_more' : 'mat:chevron_right'; };
4619
+ TreeLabelCellRendererComponent.DEFAULT_ICON_FACTORY = function (node, expanded, defaultIcon) {
4620
+ var isLeaf = exports.DecoratedTreeNode.getDecorator(node).isLeaf();
4621
+ return isLeaf ?
4622
+ undefined :
4623
+ expanded ?
4624
+ 'mat:expand_more' :
4625
+ 'mat:chevron_right';
4626
+ };
4256
4627
  })(exports.TreeLabelCellRendererComponent || (exports.TreeLabelCellRendererComponent = {}));
4257
4628
 
4258
4629
  var FlattenedTreeListModel = /** @class */ (function (_super) {
4259
4630
  __extends(FlattenedTreeListModel, _super);
4260
4631
  function FlattenedTreeListModel(source, childRef, expansionModel) {
4261
- var _this = _super.call(this, source) || this;
4632
+ var _this = _super.call(this, source, {
4633
+ initialValue: [],
4634
+ identifiedWith: function (row) { return source.identityOf(row); }
4635
+ }) || this;
4262
4636
  _this.source = source;
4263
4637
  _this.childRef = childRef;
4264
4638
  _this.expansionModel = expansionModel;
4265
4639
  _this.trackSource(expansionModel.isExpandedPredicate);
4266
4640
  return _this;
4267
4641
  }
4268
- FlattenedTreeListModel.prototype.getIdentityOf = function (item) {
4269
- return this.source.identityOf(item);
4270
- };
4271
4642
  FlattenedTreeListModel.prototype.compute = function (values) {
4272
4643
  var _this = this;
4273
4644
  var result = [];
@@ -4366,10 +4737,10 @@
4366
4737
  var _this = this;
4367
4738
  this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, function (component, rowData, firstTime) {
4368
4739
  if (firstTime) {
4369
- component.expansionModel = _this.expansionModel;
4740
+ component.treeTableModel = _this.expansionModel;
4370
4741
  }
4371
4742
  component.value = rowData.row;
4372
- component.label = ___default['default'].isNil(_this.labelProperty) ? undefined : rowData.row[_this.labelProperty];
4743
+ component.label = ___default["default"].isNil(_this.labelProperty) ? undefined : rowData.row[_this.labelProperty];
4373
4744
  component.iconFactory = _this.iconFactory;
4374
4745
  }));
4375
4746
  return this;
@@ -4400,12 +4771,13 @@
4400
4771
  var childExtractor = ___namespace.isFunction(childAccessor) ? childAccessor : function (row) { return row[childAccessor]; };
4401
4772
  _this.flattenedDataSource = _this.registerDisposable(new FlattenedTreeListModel(source, childExtractor, _this.treeExpansionModel));
4402
4773
  _this.setDataSource(_this.flattenedDataSource);
4774
+ _this.addRowClass('aup-node-collapsed', function (row) { return _this.isCollapsed(row); });
4403
4775
  return _this;
4404
4776
  }
4405
4777
  TreeTableModel.prototype.treeControlColumn = function (builder) {
4406
4778
  var _this = this;
4407
4779
  var columnId = 'tree-label';
4408
- var column = new TreeLabelColumnModel(columnId, function () { return _this.getColumnTextProperties(columnId); }, this.treeExpansionModel);
4780
+ var column = new TreeLabelColumnModel(columnId, function () { return _this.getColumnTextProperties(columnId); }, this);
4409
4781
  builder(column);
4410
4782
  this.addColumn(column);
4411
4783
  };
@@ -4413,7 +4785,7 @@
4413
4785
  this.treeExpansionModel.expand(node);
4414
4786
  };
4415
4787
  TreeTableModel.prototype.collapse = function (node) {
4416
- this.treeExpansionModel.expand(node);
4788
+ this.treeExpansionModel.collapse(node);
4417
4789
  };
4418
4790
  TreeTableModel.prototype.isCollapsed = function (node) {
4419
4791
  return this.treeExpansionModel.isCollapsed(node);
@@ -4549,7 +4921,7 @@
4549
4921
  providers: [
4550
4922
  { provide: AbstractTableComponent, useExisting: TreeTableComponent }
4551
4923
  ],
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}"]
4924
+ 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
4925
  },] }
4554
4926
  ];
4555
4927
  TreeTableComponent.ctorParameters = function () { return [
@@ -4606,7 +4978,7 @@
4606
4978
  providers: [
4607
4979
  { provide: pectin.FocusManager }
4608
4980
  ],
4609
- styles: [":host{display:block}"]
4981
+ styles: [":host{display:block}\n"]
4610
4982
  },] }
4611
4983
  ];
4612
4984
  VerticalFocusContainerComponent.ctorParameters = function () { return [
@@ -4670,7 +5042,7 @@
4670
5042
  { type: i0.Component, args: [{
4671
5043
  selector: 'aup-paginator',
4672
5044
  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}"]
5045
+ 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
5046
  },] }
4675
5047
  ];
4676
5048
  PaginatorComponent.ctorParameters = function () { return []; };
@@ -4682,36 +5054,155 @@
4682
5054
  __metadata("design:type", pectin.PageController)
4683
5055
  ], PaginatorComponent.prototype, "pageController", void 0);
4684
5056
 
4685
- var ComponentsModule = /** @class */ (function () {
4686
- function ComponentsModule(faIconLibrary) {
4687
- faIconLibrary.addIconPacks(freeSolidSvgIcons.fas);
5057
+ var LabelledValueComponent = /** @class */ (function (_super) {
5058
+ __extends(LabelledValueComponent, _super);
5059
+ function LabelledValueComponent() {
5060
+ return _super.call(this) || this;
5061
+ // const {chain} = Dsl.disposeWith(this);
4688
5062
  }
4689
- return ComponentsModule;
4690
- }());
4691
- ComponentsModule.decorators = [
4692
- { type: i0.NgModule, args: [{
4693
- declarations: [
4694
- AbstractInputComponent,
4695
- AbstractValueInputComponent,
4696
- AbstractListInputComponent,
4697
- NumberInputComponent,
4698
- StringInputComponent,
4699
- TextInputComponent,
4700
- PasswordInputComponent,
4701
- SelectInputComponent,
4702
- MultipleSelectInputComponent,
4703
- AutocompleteInputComponent,
4704
- CheckboxInputComponent,
4705
- ScrollContainerComponent,
4706
- NoopComponent,
4707
- SwitchCaseComponent,
4708
- SwitchCaseWhenDirective,
4709
- SwitchCaseDefaultDirective,
4710
- FocusContainerComponent,
4711
- VerticalFocusContainerComponent,
4712
- FocusableComponent,
4713
- CardContainerComponent,
4714
- TableComponent,
5063
+ LabelledValueComponent.prototype.ngOnInit = function () {
5064
+ };
5065
+ return LabelledValueComponent;
5066
+ }(DisposableComponent));
5067
+ LabelledValueComponent.decorators = [
5068
+ { type: i0.Component, args: [{
5069
+ selector: 'aup-labelled-value',
5070
+ template: "<label>{{label}}</label>\n<ng-content></ng-content>\n",
5071
+ 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"]
5072
+ },] }
5073
+ ];
5074
+ LabelledValueComponent.ctorParameters = function () { return []; };
5075
+ LabelledValueComponent.propDecorators = {
5076
+ label: [{ type: i0.Input }]
5077
+ };
5078
+
5079
+ /**
5080
+ * @example
5081
+ * <aup-markdown [content]="..."></aup-markdown>
5082
+ * <aup-markdown [content$]="stringValueModel$"></aup-markdown>
5083
+ * <aup-markdown ngPreserveWhitespaces>
5084
+ * # This is markdown content
5085
+ *
5086
+ * With a list
5087
+ * - a
5088
+ * - b
5089
+ * </aup-markdown>
5090
+ */
5091
+ var MarkdownComponent = /** @class */ (function (_super) {
5092
+ __extends(MarkdownComponent, _super);
5093
+ function MarkdownComponent(platform, element, markdownService) {
5094
+ var _this = _super.call(this) || this;
5095
+ _this.platform = platform;
5096
+ _this.element = element;
5097
+ _this.markdownService = markdownService;
5098
+ _this.inline = false;
5099
+ var chain = pectin.Dsl.disposeWith(_this).chain;
5100
+ return _this;
5101
+ }
5102
+ MarkdownComponent.prototype.ngOnInit = function () {
5103
+ var _this = this;
5104
+ var when = pectin.Dsl.disposeWith(this).when;
5105
+ when(this.content$).changes(function (content) { return _this.renderContent(content); }, { initialValue: 'triggerChangeUnlessNil' });
5106
+ if (___namespace.isNil(this.content) && !___namespace.isEmpty(this.element.nativeElement.innerHTML)) {
5107
+ this.renderContent(this.extractInnerContent(this.element.nativeElement.innerHTML));
5108
+ }
5109
+ };
5110
+ MarkdownComponent.prototype.extractInnerContent = function (content) {
5111
+ var lines = content.split("\n");
5112
+ var prefix = lines.reduce(function (maxPrefix, line) {
5113
+ return Math.max(maxPrefix, line.search(/\S/));
5114
+ }, 0);
5115
+ return lines.map(function (l) { return l.substr(prefix); }).join("\n");
5116
+ };
5117
+ MarkdownComponent.prototype.renderContent = function (content) {
5118
+ if (!___namespace.isNil(content)) {
5119
+ var markdown = this.inline ?
5120
+ this.markdownService.renderInline(content) :
5121
+ this.markdownService.render(content);
5122
+ this.element.nativeElement.innerHTML = markdown;
5123
+ }
5124
+ };
5125
+ return MarkdownComponent;
5126
+ }(DisposableComponent));
5127
+ MarkdownComponent.decorators = [
5128
+ { type: i0.Component, args: [{
5129
+ selector: 'aup-markdown, [aupMarkdown]',
5130
+ template: "<ng-content></ng-content>\n",
5131
+ styles: [":host{display:inline-block}\n"]
5132
+ },] }
5133
+ ];
5134
+ MarkdownComponent.ctorParameters = function () { return [
5135
+ { type: Object, decorators: [{ type: i0.Inject, args: [i0.PLATFORM_ID,] }] },
5136
+ { type: i0.ElementRef },
5137
+ { type: MarkdownService }
5138
+ ]; };
5139
+ MarkdownComponent.propDecorators = {
5140
+ content$: [{ type: i0.Input }],
5141
+ content: [{ type: i0.Input }],
5142
+ inline: [{ type: i0.Input }]
5143
+ };
5144
+ __decorate([
5145
+ pectin.TrackExternal(),
5146
+ __metadata("design:type", pectin.ValueModel)
5147
+ ], MarkdownComponent.prototype, "content$", void 0);
5148
+ __decorate([
5149
+ pectin.StoreInValueModel('content$'),
5150
+ __metadata("design:type", String)
5151
+ ], MarkdownComponent.prototype, "content", void 0);
5152
+
5153
+ var ComponentsModule = /** @class */ (function () {
5154
+ function ComponentsModule(faIconLibrary) {
5155
+ faIconLibrary.addIconPacks(freeSolidSvgIcons.fas);
5156
+ }
5157
+ return ComponentsModule;
5158
+ }());
5159
+ ComponentsModule.decorators = [
5160
+ { type: i0.NgModule, args: [{
5161
+ imports: [
5162
+ i2.CommonModule,
5163
+ animations.BrowserAnimationsModule,
5164
+ forms.FormsModule,
5165
+ input.MatInputModule,
5166
+ formField.MatFormFieldModule,
5167
+ select.MatSelectModule,
5168
+ tabs.MatTabsModule,
5169
+ DirectivesModule,
5170
+ icon.MatIconModule,
5171
+ button.MatButtonModule,
5172
+ checkbox.MatCheckboxModule,
5173
+ table.MatTableModule,
5174
+ portal.PortalModule,
5175
+ scrolling.CdkScrollableModule,
5176
+ angularFontawesome.FontAwesomeModule,
5177
+ tooltip.MatTooltipModule,
5178
+ autocomplete.MatAutocompleteModule,
5179
+ menu.MatMenuModule,
5180
+ divider.MatDividerModule,
5181
+ progressSpinner.MatProgressSpinnerModule,
5182
+ progressBar.MatProgressBarModule
5183
+ ],
5184
+ declarations: [
5185
+ AbstractInputComponent,
5186
+ AbstractValueInputComponent,
5187
+ AbstractListInputComponent,
5188
+ NumberInputComponent,
5189
+ StringInputComponent,
5190
+ TextInputComponent,
5191
+ PasswordInputComponent,
5192
+ SelectInputComponent,
5193
+ MultipleSelectInputComponent,
5194
+ AutocompleteInputComponent,
5195
+ CheckboxInputComponent,
5196
+ ScrollContainerComponent,
5197
+ NoopComponent,
5198
+ SwitchCaseComponent,
5199
+ SwitchCaseWhenDirective,
5200
+ SwitchCaseDefaultDirective,
5201
+ FocusContainerComponent,
5202
+ VerticalFocusContainerComponent,
5203
+ FocusableComponent,
5204
+ CardContainerComponent,
5205
+ TableComponent,
4715
5206
  EditRowControls,
4716
5207
  ColumnTemplateDirective,
4717
5208
  DefaultCellRendererComponent,
@@ -4738,29 +5229,12 @@
4738
5229
  BusyOverlayComponent,
4739
5230
  EmptyStateComponent,
4740
5231
  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
5232
+ AbstractTableComponent,
5233
+ AbstractCardContainerComponent,
5234
+ CardStackComponent,
5235
+ LabelledValueComponent,
5236
+ LoadingContainerComponent,
5237
+ MarkdownComponent
4764
5238
  ],
4765
5239
  exports: [
4766
5240
  NumberInputComponent,
@@ -4797,9 +5271,14 @@
4797
5271
  BusyOverlayComponent,
4798
5272
  EmptyStateComponent,
4799
5273
  PaginatorComponent,
5274
+ CardStackComponent,
5275
+ LabelledValueComponent,
5276
+ LoadingContainerComponent,
5277
+ MarkdownComponent
4800
5278
  ],
4801
5279
  providers: [
4802
- FocusBindingFactory
5280
+ FocusBindingFactory,
5281
+ MarkdownService
4803
5282
  ]
4804
5283
  },] }
4805
5284
  ];
@@ -4828,12 +5307,13 @@
4828
5307
  * <span>This content will be between the two commands</span>
4829
5308
  * </aup-activity-actions>
4830
5309
  */
4831
- var ActivityActionsComponent = /** @class */ (function (_super) {
5310
+ exports.ActivityActionsComponent = /** @class */ (function (_super) {
4832
5311
  __extends(ActivityActionsComponent, _super);
4833
5312
  function ActivityActionsComponent(cdr) {
4834
5313
  var _this = _super.call(this) || this;
4835
5314
  _this.cdr = cdr;
4836
- _this.align = 'stretch';
5315
+ _this.layout = ActivityActionsComponent.Layout.BLOCK;
5316
+ _this.align = ActivityActionsComponent.Align.STRETCH;
4837
5317
  return _this;
4838
5318
  }
4839
5319
  Object.defineProperty(ActivityActionsComponent.prototype, "faces", {
@@ -4854,20 +5334,6 @@
4854
5334
  enumerable: false,
4855
5335
  configurable: true
4856
5336
  });
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
5337
  ActivityActionsComponent.prototype.ngOnInit = function () {
4872
5338
  };
4873
5339
  ActivityActionsComponent.prototype.hasConfirmFace = function () {
@@ -4883,44 +5349,55 @@
4883
5349
  };
4884
5350
  return ActivityActionsComponent;
4885
5351
  }(DisposableComponent));
4886
- ActivityActionsComponent.decorators = [
5352
+ exports.ActivityActionsComponent.decorators = [
4887
5353
  { type: i0.Component, args: [{
4888
5354
  selector: 'aup-activity-actions',
4889
5355
  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}"]
5356
+ 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
5357
  },] }
4892
5358
  ];
4893
- ActivityActionsComponent.ctorParameters = function () { return [
5359
+ exports.ActivityActionsComponent.ctorParameters = function () { return [
4894
5360
  { type: i0.ChangeDetectorRef }
4895
5361
  ]; };
4896
- ActivityActionsComponent.propDecorators = {
5362
+ exports.ActivityActionsComponent.propDecorators = {
4897
5363
  confirmCommand: [{ type: i0.Input }],
4898
5364
  cancelCommand: [{ type: i0.Input }],
4899
5365
  faces: [{ type: i0.Input }],
4900
5366
  confirmFace: [{ type: i0.Input }],
4901
5367
  cancelFace: [{ type: i0.Input }],
4902
5368
  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',] }]
5369
+ layout: [{ type: i0.Input }, { type: i0.HostBinding, args: ['attr.layout',] }],
5370
+ align: [{ type: i0.Input }, { type: i0.HostBinding, args: ['attr.align',] }]
4906
5371
  };
4907
5372
  __decorate([
4908
5373
  pectin.TrackExternal(),
4909
5374
  __metadata("design:type", pectin.Command)
4910
- ], ActivityActionsComponent.prototype, "confirmCommand", void 0);
5375
+ ], exports.ActivityActionsComponent.prototype, "confirmCommand", void 0);
4911
5376
  __decorate([
4912
5377
  pectin.TrackExternal(),
4913
5378
  __metadata("design:type", pectin.Command)
4914
- ], ActivityActionsComponent.prototype, "cancelCommand", void 0);
5379
+ ], exports.ActivityActionsComponent.prototype, "cancelCommand", void 0);
5380
+ (function (ActivityActionsComponent) {
5381
+ ActivityActionsComponent.Layout = typescriptStringEnums.Enum({
5382
+ INLINE: 'inline',
5383
+ BLOCK: 'block'
5384
+ });
5385
+ ActivityActionsComponent.Align = typescriptStringEnums.Enum({
5386
+ START: 'start',
5387
+ END: 'end',
5388
+ STRETCH: 'stretch'
5389
+ });
5390
+ })(exports.ActivityActionsComponent || (exports.ActivityActionsComponent = {}));
4915
5391
 
4916
5392
  var ACTIVITY_DATA = new i0.InjectionToken('InteractionActivityData');
4917
5393
  var Activity = /** @class */ (function (_super) {
4918
5394
  __extends(Activity, _super);
4919
5395
  function Activity() {
4920
5396
  var _this = _super.call(this) || this;
4921
- _this._busyModel = new pectin.DelegatingValueModel().withDefault(false);
5397
+ _this._busyModel = _this.registerDisposable(new pectin.DelegatingValueModel().withDefault(false));
4922
5398
  _this._focusedModel = _this.registerDisposable(new pectin.DelegatingValueModel());
4923
5399
  _this.class = 'aup-activity';
5400
+ _this.busyWhile(_this.confirmCommand.busy);
4924
5401
  return _this;
4925
5402
  }
4926
5403
  Object.defineProperty(Activity.prototype, "isFocused", {
@@ -4994,7 +5471,7 @@
4994
5471
  ];
4995
5472
  Activity.ctorParameters = function () { return []; };
4996
5473
  Activity.propDecorators = {
4997
- activityActions: [{ type: i0.ViewChild, args: [ActivityActionsComponent,] }],
5474
+ activityActions: [{ type: i0.ViewChild, args: [exports.ActivityActionsComponent,] }],
4998
5475
  class: [{ type: i0.HostBinding, args: ['class',] }],
4999
5476
  isFocused: [{ type: i0.HostBinding, args: ['attr.focused',] }]
5000
5477
  };
@@ -5007,133 +5484,196 @@
5007
5484
  __metadata("design:type", pectin.Command)
5008
5485
  ], Activity.prototype, "cancelCommand", void 0);
5009
5486
 
5487
+ exports.Alert = void 0;
5488
+ (function (Alert) {
5489
+ function getContent(alert) {
5490
+ var content = alert.content();
5491
+ return Array.isArray(content) ? content : [content];
5492
+ }
5493
+ Alert.getContent = getContent;
5494
+ function getTitle(alert) {
5495
+ return ___namespace.isFunction(alert.title) ? alert.title() : undefined;
5496
+ }
5497
+ Alert.getTitle = getTitle;
5498
+ function getColor(alert) {
5499
+ return ___namespace.isFunction(alert.color) ? alert.color() : undefined;
5500
+ }
5501
+ Alert.getColor = getColor;
5502
+ })(exports.Alert || (exports.Alert = {}));
5503
+
5504
+ var ALERT_CONFIG = new i0.InjectionToken('AlertConfig');
5505
+ var AbstractDialogComponent = /** @class */ (function (_super) {
5506
+ __extends(AbstractDialogComponent, _super);
5507
+ function AbstractDialogComponent(config) {
5508
+ var _this = _super.call(this) || this;
5509
+ _this.config = config;
5510
+ pectin.assert.notNil(config);
5511
+ _this.title = exports.Alert.getTitle(config);
5512
+ _this.color = _this.checkColor(exports.Alert.getColor(config));
5513
+ _this.content = exports.Alert.getContent(config);
5514
+ _this.confirmFace = {
5515
+ text: function () { return config.ok(); },
5516
+ color: function () { return _this.color || 'primary'; },
5517
+ style: function () { return 'raised'; }
5518
+ };
5519
+ return _this;
5520
+ }
5521
+ AbstractDialogComponent.prototype.getConfig = function () {
5522
+ return typescriptUtilities.lang.abstractMethod(this.constructor);
5523
+ };
5524
+ AbstractDialogComponent.prototype.checkColor = function (rawColor) {
5525
+ if (this.isDestructive()) {
5526
+ return 'warn';
5527
+ }
5528
+ else {
5529
+ if (['primary', 'accent', 'warn'].includes(rawColor)) {
5530
+ return rawColor;
5531
+ }
5532
+ else {
5533
+ console.warn("Invalid color string " + rawColor);
5534
+ return undefined;
5535
+ }
5536
+ }
5537
+ };
5538
+ AbstractDialogComponent.prototype.isDestructive = function () {
5539
+ // @ts-ignore
5540
+ return ___namespace.isFunction(this.config['destructive']) && this.config.destructive();
5541
+ };
5542
+ return AbstractDialogComponent;
5543
+ }(Activity));
5544
+ AbstractDialogComponent.decorators = [
5545
+ { type: i0.Component, args: [{
5546
+ template: ''
5547
+ },] }
5548
+ ];
5549
+ AbstractDialogComponent.ctorParameters = function () { return [
5550
+ { type: undefined, decorators: [{ type: i0.Inject, args: [ALERT_CONFIG,] }] }
5551
+ ]; };
5552
+
5553
+ var AbstractConfirmDialogComponent = /** @class */ (function (_super) {
5554
+ __extends(AbstractConfirmDialogComponent, _super);
5555
+ function AbstractConfirmDialogComponent(config) {
5556
+ var _this = _super.call(this, config) || this;
5557
+ _this.cancelFace = {
5558
+ text: function () { return config.cancel(); }
5559
+ };
5560
+ _this.cancelCommand = pectin.Command.create(function () {
5561
+ return _this.cancel();
5562
+ });
5563
+ return _this;
5564
+ }
5565
+ return AbstractConfirmDialogComponent;
5566
+ }(AbstractDialogComponent));
5567
+ AbstractConfirmDialogComponent.decorators = [
5568
+ { type: i0.Component, args: [{
5569
+ template: ''
5570
+ },] }
5571
+ ];
5572
+ AbstractConfirmDialogComponent.ctorParameters = function () { return [
5573
+ { type: undefined, decorators: [{ type: i0.Inject, args: [ALERT_CONFIG,] }] }
5574
+ ]; };
5575
+
5010
5576
  var AlertDialogComponent = /** @class */ (function (_super) {
5011
5577
  __extends(AlertDialogComponent, _super);
5012
5578
  function AlertDialogComponent(alert) {
5013
- var _this = _super.call(this) || this;
5014
- _this.alert = alert;
5579
+ var _this = _super.call(this, alert) || this;
5015
5580
  _this.confirmCommand = pectin.Command.create(function () {
5016
5581
  _this.done();
5017
5582
  });
5018
- _this.confirmFace = {
5019
- text: function () { return alert.ok(); },
5020
- color: function () { return "primary"; },
5021
- style: function () { return "raised"; }
5022
- };
5023
5583
  return _this;
5024
5584
  }
5025
- AlertDialogComponent.prototype.ngOnInit = function () {
5026
- };
5027
5585
  return AlertDialogComponent;
5028
- }(Activity));
5586
+ }(AbstractDialogComponent));
5029
5587
  AlertDialogComponent.decorators = [
5030
5588
  { type: i0.Component, args: [{
5031
5589
  selector: 'aup-alert-dialog',
5032
- 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}"]
5590
+ template: "<aup-activity-title *ngIf=\"title\" [color]=\"color\"><aup-markdown [content]=\"title\" [inline]=\"true\"></aup-markdown></aup-activity-title>\n<aup-activity-body>\n <aup-markdown *ngFor=\"let line of content\" [content]=\"line\"></aup-markdown>\n</aup-activity-body>\n<aup-activity-actions [confirmFace]=\"confirmFace\"></aup-activity-actions>\n",
5591
+ 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
5592
  },] }
5035
5593
  ];
5036
5594
  AlertDialogComponent.ctorParameters = function () { return [
5037
- { type: undefined, decorators: [{ type: i0.Inject, args: [ACTIVITY_DATA,] }] }
5595
+ { type: exports.Alert, decorators: [{ type: i0.Inject, args: [ACTIVITY_DATA,] }] }
5038
5596
  ]; };
5039
5597
 
5040
5598
  var ConfirmThenDialogComponent = /** @class */ (function (_super) {
5041
5599
  __extends(ConfirmThenDialogComponent, _super);
5042
5600
  function ConfirmThenDialogComponent(config) {
5043
- var _this = _super.call(this) || this;
5044
- _this.config = config;
5045
- pectin.assert.notNil(config);
5601
+ var _this = _super.call(this, config.confirm) || this;
5046
5602
  _this.confirmCommand = pectin.Command.create(function () {
5047
- _this.interactionContext.startActivity(_this.config.activityType, _this.config.data)
5603
+ _this.interactionContext.startActivity(config.activityType, config.data)
5048
5604
  .then(function (result) { return _this.done(result); })
5049
5605
  .catch(function (error) { return _this.cancel(error); });
5050
5606
  });
5051
- _this.cancelCommand = pectin.Command.create(function () {
5052
- return _this.cancel();
5053
- });
5054
- _this.confirmFace = {
5055
- text: function () { return _this.confirm.ok(); },
5056
- color: function () { return _this.isDestructive() ? 'warn' : 'primary'; },
5057
- style: function () { return 'raised'; }
5058
- };
5059
- _this.cancelFace = {
5060
- text: function () { return _this.confirm.cancel(); },
5061
- };
5062
5607
  return _this;
5063
5608
  }
5064
- ConfirmThenDialogComponent.prototype.ngOnInit = function () {
5065
- };
5066
- Object.defineProperty(ConfirmThenDialogComponent.prototype, "confirm", {
5067
- get: function () {
5068
- return this.config.confirm;
5069
- },
5070
- enumerable: false,
5071
- configurable: true
5072
- });
5073
- Object.defineProperty(ConfirmThenDialogComponent.prototype, "titleColor", {
5074
- get: function () {
5075
- return this.isDestructive() ? 'warn' : undefined;
5076
- },
5077
- enumerable: false,
5078
- configurable: true
5079
- });
5080
- ConfirmThenDialogComponent.prototype.isDestructive = function () {
5081
- return this.confirm.destructive && this.confirm.destructive();
5082
- };
5083
5609
  return ConfirmThenDialogComponent;
5084
- }(Activity));
5610
+ }(AbstractConfirmDialogComponent));
5085
5611
  ConfirmThenDialogComponent.decorators = [
5086
5612
  { type: i0.Component, args: [{
5087
5613
  selector: 'aup-confirmation-dialog',
5088
- 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}"]
5614
+ template: "<aup-activity-title *ngIf=\"title\" [color]=\"color\"><aup-markdown [content]=\"title\" [inline]=\"true\"></aup-markdown></aup-activity-title>\n<aup-activity-body>\n <aup-markdown *ngFor=\"let line of content\" [content]=\"line\"></aup-markdown>\n</aup-activity-body>\n<aup-activity-actions [confirmFace]=\"confirmFace\" [cancelFace]=\"cancelFace\"></aup-activity-actions>\n",
5615
+ 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
5616
  },] }
5091
5617
  ];
5092
5618
  ConfirmThenDialogComponent.ctorParameters = function () { return [
5093
5619
  { type: undefined, decorators: [{ type: i0.Inject, args: [ACTIVITY_DATA,] }] }
5094
5620
  ]; };
5095
5621
 
5622
+ var ConfirmThenExecuteDialogComponent = /** @class */ (function (_super) {
5623
+ __extends(ConfirmThenExecuteDialogComponent, _super);
5624
+ function ConfirmThenExecuteDialogComponent(data) {
5625
+ var _this = _super.call(this, data.confirm) || this;
5626
+ _this.confirmCommand = pectin.Command.create(function () { return __awaiter(_this, void 0, void 0, function () {
5627
+ var result, e_1;
5628
+ return __generator(this, function (_a) {
5629
+ switch (_a.label) {
5630
+ case 0:
5631
+ _a.trys.push([0, 2, , 3]);
5632
+ return [4 /*yield*/, data.operation(this.interactionContext)];
5633
+ case 1:
5634
+ result = _a.sent();
5635
+ this.done(result);
5636
+ return [3 /*break*/, 3];
5637
+ case 2:
5638
+ e_1 = _a.sent();
5639
+ this.cancel(e_1);
5640
+ return [3 /*break*/, 3];
5641
+ case 3: return [2 /*return*/];
5642
+ }
5643
+ });
5644
+ }); });
5645
+ return _this;
5646
+ }
5647
+ return ConfirmThenExecuteDialogComponent;
5648
+ }(AbstractConfirmDialogComponent));
5649
+ ConfirmThenExecuteDialogComponent.decorators = [
5650
+ { type: i0.Component, args: [{
5651
+ selector: 'aup-confirmation-execute-dialog',
5652
+ template: "<aup-activity-title *ngIf=\"title\" [color]=\"color\"><aup-markdown [content]=\"title\" [inline]=\"true\"></aup-markdown></aup-activity-title>\n<aup-activity-body>\n <aup-markdown *ngFor=\"let line of content\" [content]=\"line\"></aup-markdown>\n</aup-activity-body>\n<aup-activity-actions [confirmFace]=\"confirmFace\" [cancelFace]=\"cancelFace\"></aup-activity-actions>\n",
5653
+ 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"]
5654
+ },] }
5655
+ ];
5656
+ ConfirmThenExecuteDialogComponent.ctorParameters = function () { return [
5657
+ { type: undefined, decorators: [{ type: i0.Inject, args: [ACTIVITY_DATA,] }] }
5658
+ ]; };
5659
+
5096
5660
  var ConfirmationDialogComponent = /** @class */ (function (_super) {
5097
5661
  __extends(ConfirmationDialogComponent, _super);
5098
5662
  function ConfirmationDialogComponent(confirm) {
5099
- var _this = _super.call(this) || this;
5663
+ var _this = _super.call(this, confirm) || this;
5100
5664
  _this.confirm = confirm;
5101
- pectin.assert.notNil(confirm);
5102
5665
  _this.confirmCommand = pectin.Command.create(function () {
5103
5666
  return _this.done();
5104
5667
  });
5105
- _this.cancelCommand = pectin.Command.create(function () {
5106
- return _this.cancel();
5107
- });
5108
- _this.confirmFace = {
5109
- text: function () { return confirm.ok(); },
5110
- color: function () { return _this.isDestructive() ? 'warn' : 'primary'; },
5111
- style: function () { return 'raised'; }
5112
- };
5113
- _this.cancelFace = {
5114
- text: function () { return confirm.cancel(); },
5115
- };
5116
5668
  return _this;
5117
5669
  }
5118
- ConfirmationDialogComponent.prototype.ngOnInit = function () {
5119
- };
5120
- Object.defineProperty(ConfirmationDialogComponent.prototype, "titleColor", {
5121
- get: function () {
5122
- return this.isDestructive() ? 'warn' : undefined;
5123
- },
5124
- enumerable: false,
5125
- configurable: true
5126
- });
5127
- ConfirmationDialogComponent.prototype.isDestructive = function () {
5128
- return this.confirm.destructive && this.confirm.destructive();
5129
- };
5130
5670
  return ConfirmationDialogComponent;
5131
- }(Activity));
5671
+ }(AbstractConfirmDialogComponent));
5132
5672
  ConfirmationDialogComponent.decorators = [
5133
5673
  { type: i0.Component, args: [{
5134
5674
  selector: 'aup-confirmation-dialog',
5135
- 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}"]
5675
+ template: "<aup-activity-title *ngIf=\"title\" [color]=\"color\"><aup-markdown [content]=\"title\" [inline]=\"true\"></aup-markdown></aup-activity-title>\n<aup-activity-body>\n <aup-markdown *ngFor=\"let line of content\" [content]=\"line\"></aup-markdown>\n</aup-activity-body>\n<aup-activity-actions [confirmFace]=\"confirmFace\" [cancelFace]=\"cancelFace\"></aup-activity-actions>\n\n",
5676
+ 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
5677
  },] }
5138
5678
  ];
5139
5679
  ConfirmationDialogComponent.ctorParameters = function () { return [
@@ -5172,6 +5712,12 @@
5172
5712
  data: data
5173
5713
  }, true);
5174
5714
  };
5715
+ AbstractInteractionContext.prototype.confirmThenExecute = function (confirm, operation) {
5716
+ return this.createAndLaunchActivity(ConfirmThenExecuteDialogComponent, {
5717
+ confirm: confirm,
5718
+ operation: operation
5719
+ }, true);
5720
+ };
5175
5721
  return AbstractInteractionContext;
5176
5722
  }());
5177
5723
 
@@ -5304,7 +5850,7 @@
5304
5850
  { type: i0.Component, args: [{
5305
5851
  selector: 'aup-activity-outlet',
5306
5852
  template: '',
5307
- styles: [":host{display:block}"]
5853
+ styles: [":host{display:block}\n"]
5308
5854
  },] }
5309
5855
  ];
5310
5856
  ActivityOutletComponent.ctorParameters = function () { return [
@@ -5325,7 +5871,7 @@
5325
5871
  _this.activityRefs = [];
5326
5872
  _this.garbage = new pectin.GarbageCollector();
5327
5873
  _this.inAnimation = new pectin.MutableValueModel(false);
5328
- _this.busy = new pectin.DelegatingValueModel().withDefault(false);
5874
+ _this.busy = _this.registerDisposable(new pectin.DelegatingValueModel().withDefault(false));
5329
5875
  _this.registerDisposable(_this.busy);
5330
5876
  return _this;
5331
5877
  }
@@ -5375,7 +5921,7 @@
5375
5921
  if (!this.isActive()) {
5376
5922
  typescriptUtilities.lang.illegalState('no activity in progress');
5377
5923
  }
5378
- return ___default['default'].findLast(this.activityRefs, function (tab) { return !tab.isComplete(); });
5924
+ return ___default["default"].findLast(this.activityRefs, function (tab) { return !tab.isComplete(); });
5379
5925
  };
5380
5926
  /**
5381
5927
  * Cancels the current activity and returns true the context is no longer active, false if
@@ -5518,8 +6064,8 @@
5518
6064
  ActivityContainerComponent.decorators = [
5519
6065
  { type: i0.Component, args: [{
5520
6066
  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}"]
6067
+ 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",
6068
+ styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}aup-busy-overlay{flex:1}\n"]
5523
6069
  },] }
5524
6070
  ];
5525
6071
  ActivityContainerComponent.ctorParameters = function () { return []; };
@@ -5558,7 +6104,7 @@
5558
6104
  }
5559
6105
  Object.defineProperty(ActivityTitleComponent.prototype, "hasTransparentBackground", {
5560
6106
  get: function () {
5561
- return ___default['default'].isNil(this._hasUserTransparentBackground) ? !this._color : this._hasUserTransparentBackground;
6107
+ return ___default["default"].isNil(this._hasUserTransparentBackground) ? !this._color : this._hasUserTransparentBackground;
5562
6108
  },
5563
6109
  /**
5564
6110
  * Adjusts layout to ensure the title and body are cleanly separated with even
@@ -5588,7 +6134,7 @@
5588
6134
  { type: i0.Component, args: [{
5589
6135
  selector: 'aup-activity-title',
5590
6136
  template: "<ng-content></ng-content>\n",
5591
- styles: [":host{display:block}"]
6137
+ styles: [":host{display:block}\n"]
5592
6138
  },] }
5593
6139
  ];
5594
6140
  ActivityTitleComponent.propDecorators = {
@@ -5615,6 +6161,13 @@
5615
6161
  });
5616
6162
  return _this;
5617
6163
  }
6164
+ Object.defineProperty(AbstractActivityTriggerComponent.prototype, "interactionContext", {
6165
+ get: function () {
6166
+ return typescriptUtilities.lang.abstractMethod(this.constructor);
6167
+ },
6168
+ enumerable: false,
6169
+ configurable: true
6170
+ });
5618
6171
  AbstractActivityTriggerComponent.prototype.ngOnInit = function () {
5619
6172
  };
5620
6173
  Object.defineProperty(AbstractActivityTriggerComponent.prototype, "isActive", {
@@ -5792,7 +6345,7 @@
5792
6345
  function ContextRegistry() {
5793
6346
  var _this = _super.call(this) || this;
5794
6347
  _this._interactions = new pectin.MutableListModel();
5795
- _this._disabledDelegate = new pectin.DelegatingValueModel().withDefault(false);
6348
+ _this._disabledDelegate = _this.registerDisposable(new pectin.DelegatingValueModel().withDefault(false));
5796
6349
  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
6350
  _this.active = chain(_this._interactions).isNotEmpty();
5798
6351
  _this.interactionContextIds = chain(_this._interactions).pluck("identifier");
@@ -5856,16 +6409,23 @@
5856
6409
  __extends(ModalActivityTriggerComponent, _super);
5857
6410
  function ModalActivityTriggerComponent(interactionService) {
5858
6411
  var _this = _super.call(this) || this;
5859
- _this.interactionContext = interactionService.createModalInteractionContextDisposedWith(_this);
6412
+ _this._interactionContext = interactionService.createModalInteractionContextDisposedWith(_this);
5860
6413
  return _this;
5861
6414
  }
6415
+ Object.defineProperty(ModalActivityTriggerComponent.prototype, "interactionContext", {
6416
+ get: function () {
6417
+ return this._interactionContext;
6418
+ },
6419
+ enumerable: false,
6420
+ configurable: true
6421
+ });
5862
6422
  return ModalActivityTriggerComponent;
5863
6423
  }(AbstractActivityTriggerComponent));
5864
6424
  ModalActivityTriggerComponent.decorators = [
5865
6425
  { type: i0.Component, args: [{
5866
6426
  selector: 'aup-modal-activity-trigger',
5867
6427
  template: "<aup-command [command]=\"startActivityCommand\" [faceModel]=\"faceModel\" [alignFace]=\"alignFace\"></aup-command>\n",
5868
- styles: [":host{display:inline-block}"]
6428
+ styles: [":host{display:inline-block}\n"]
5869
6429
  },] }
5870
6430
  ];
5871
6431
  ModalActivityTriggerComponent.ctorParameters = function () { return [
@@ -5904,6 +6464,13 @@
5904
6464
  enumerable: false,
5905
6465
  configurable: true
5906
6466
  });
6467
+ Object.defineProperty(InPlaceInteractionContextComponent.prototype, "active", {
6468
+ get: function () {
6469
+ return this.isActive();
6470
+ },
6471
+ enumerable: false,
6472
+ configurable: true
6473
+ });
5907
6474
  InPlaceInteractionContextComponent.prototype.ngAfterViewInit = function () {
5908
6475
  this.interactionService.registerInplaceInteractionContext(this);
5909
6476
  };
@@ -5932,6 +6499,9 @@
5932
6499
  InPlaceInteractionContextComponent.prototype.confirmThen = function (confirm, activityType, data) {
5933
6500
  return this.activityContainerComponent.confirmThen(confirm, activityType);
5934
6501
  };
6502
+ InPlaceInteractionContextComponent.prototype.confirmThenExecute = function (confirm, operation) {
6503
+ return this.activityContainerComponent.confirmThenExecute(confirm, operation);
6504
+ };
5935
6505
  InPlaceInteractionContextComponent.prototype.isActive = function () {
5936
6506
  return this.activityContainerComponent.isActive();
5937
6507
  };
@@ -5944,7 +6514,7 @@
5944
6514
  { type: i0.Component, args: [{
5945
6515
  selector: 'aup-in-place-interaction-context',
5946
6516
  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}"]
6517
+ styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}\n"]
5948
6518
  },] }
5949
6519
  ];
5950
6520
  InPlaceInteractionContextComponent.ctorParameters = function () { return [
@@ -5953,8 +6523,95 @@
5953
6523
  ]; };
5954
6524
  InPlaceInteractionContextComponent.propDecorators = {
5955
6525
  activityContainerComponent: [{ type: i0.ViewChild, args: ['activityContainer', { static: true },] }],
5956
- animateFirstActivity: [{ type: i0.Input }]
6526
+ animateFirstActivity: [{ type: i0.Input }],
6527
+ active: [{ type: i0.HostBinding, args: ["class.active",] }]
6528
+ };
6529
+
6530
+ /**
6531
+ *
6532
+ */
6533
+ exports.AddCardActivityComponent = /** @class */ (function (_super) {
6534
+ __extends(AddCardActivityComponent, _super);
6535
+ function AddCardActivityComponent(interactionService) {
6536
+ var _this = _super.call(this) || this;
6537
+ _this.interactionStyle = AddCardActivityComponent.InteractionType.MODAL;
6538
+ _this.renderAs = AddCardActivityComponent.RenderAs.CARD;
6539
+ _this.notCard = true;
6540
+ var chain = pectin.Dsl.disposeWith(_this).chain;
6541
+ _this.modalInteractionContext = interactionService.createModalInteractionContextDisposedWith(_this);
6542
+ _this.faceList = chain(_this.faceModel).mapToList(function (face) { return [face]; });
6543
+ return _this;
6544
+ }
6545
+ Object.defineProperty(AddCardActivityComponent.prototype, "renderAsClass", {
6546
+ get: function () {
6547
+ return "render-as-" + this.renderAs;
6548
+ },
6549
+ enumerable: false,
6550
+ configurable: true
6551
+ });
6552
+ Object.defineProperty(AddCardActivityComponent.prototype, "activityTypeClass", {
6553
+ get: function () {
6554
+ return this.interactionStyle + "-activity";
6555
+ },
6556
+ enumerable: false,
6557
+ configurable: true
6558
+ });
6559
+ AddCardActivityComponent.prototype.isRenderAsCard = function () {
6560
+ return this.renderAs === 'card';
6561
+ };
6562
+ AddCardActivityComponent.prototype.isRenderAsButton = function () {
6563
+ return this.renderAs === 'button';
6564
+ };
6565
+ AddCardActivityComponent.prototype.ngOnInit = function () {
6566
+ };
6567
+ Object.defineProperty(AddCardActivityComponent.prototype, "interactionContext", {
6568
+ get: function () {
6569
+ switch (this.interactionStyle) {
6570
+ case 'inline':
6571
+ return this.inlineInteractionContext;
6572
+ default:
6573
+ return this.modalInteractionContext;
6574
+ }
6575
+ },
6576
+ enumerable: false,
6577
+ configurable: true
6578
+ });
6579
+ AddCardActivityComponent.prototype.isModal = function () {
6580
+ return this.interactionStyle === 'modal';
6581
+ };
6582
+ AddCardActivityComponent.prototype.isInline = function () {
6583
+ return this.interactionStyle === 'inline';
6584
+ };
6585
+ return AddCardActivityComponent;
6586
+ }(AbstractActivityTriggerComponent));
6587
+ exports.AddCardActivityComponent.decorators = [
6588
+ { type: i0.Component, args: [{
6589
+ selector: 'aup-add-card-activity',
6590
+ 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",
6591
+ 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"]
6592
+ },] }
6593
+ ];
6594
+ exports.AddCardActivityComponent.ctorParameters = function () { return [
6595
+ { type: exports.InteractionService }
6596
+ ]; };
6597
+ exports.AddCardActivityComponent.propDecorators = {
6598
+ inlineInteractionContext: [{ type: i0.ViewChild, args: [InPlaceInteractionContextComponent, { static: true },] }],
6599
+ interactionStyle: [{ type: i0.Input }],
6600
+ renderAs: [{ type: i0.Input }, { type: i0.HostBinding, args: ['class',] }],
6601
+ notCard: [{ type: i0.HostBinding, args: ['class.not-card',] }],
6602
+ renderAsClass: [{ type: i0.HostBinding, args: ['class',] }],
6603
+ activityTypeClass: [{ type: i0.HostBinding, args: ['class',] }]
5957
6604
  };
6605
+ (function (AddCardActivityComponent) {
6606
+ AddCardActivityComponent.InteractionType = typescriptStringEnums.Enum({
6607
+ MODAL: 'modal',
6608
+ INLINE: 'inline'
6609
+ });
6610
+ AddCardActivityComponent.RenderAs = typescriptStringEnums.Enum({
6611
+ CARD: 'card',
6612
+ BUTTON: 'button'
6613
+ });
6614
+ })(exports.AddCardActivityComponent || (exports.AddCardActivityComponent = {}));
5958
6615
 
5959
6616
  /**
5960
6617
  * Css Vars.
@@ -6001,7 +6658,7 @@
6001
6658
  { type: i0.Component, args: [{
6002
6659
  selector: 'aup-add-item-interaction-context',
6003
6660
  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}"]
6661
+ 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
6662
  },] }
6006
6663
  ];
6007
6664
  AddItemInteractionContextComponent.ctorParameters = function () { return []; };
@@ -6025,18 +6682,25 @@
6025
6682
  function InlineActivityTriggerComponent() {
6026
6683
  return _super.call(this) || this;
6027
6684
  }
6685
+ Object.defineProperty(InlineActivityTriggerComponent.prototype, "interactionContext", {
6686
+ get: function () {
6687
+ return this._interactionContext;
6688
+ },
6689
+ enumerable: false,
6690
+ configurable: true
6691
+ });
6028
6692
  return InlineActivityTriggerComponent;
6029
6693
  }(AbstractActivityTriggerComponent));
6030
6694
  InlineActivityTriggerComponent.decorators = [
6031
6695
  { type: i0.Component, args: [{
6032
6696
  selector: 'aup-inline-activity-trigger',
6033
6697
  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}"]
6698
+ styles: [":host{display:inline-block}\n"]
6035
6699
  },] }
6036
6700
  ];
6037
6701
  InlineActivityTriggerComponent.ctorParameters = function () { return []; };
6038
6702
  InlineActivityTriggerComponent.propDecorators = {
6039
- interactionContext: [{ type: i0.ViewChild, args: [InPlaceInteractionContextComponent, { static: true },] }]
6703
+ _interactionContext: [{ type: i0.ViewChild, args: [InPlaceInteractionContextComponent, { static: true },] }]
6040
6704
  };
6041
6705
 
6042
6706
  /**
@@ -6074,6 +6738,7 @@
6074
6738
  var self = this;
6075
6739
  var overlayRef = this._overlay.create({
6076
6740
  hasBackdrop: false,
6741
+ disposeOnNavigation: true,
6077
6742
  panelClass: 'aup-popup-interaction-panel',
6078
6743
  positionStrategy: this._overlay.position()
6079
6744
  .flexibleConnectedTo(this._element)
@@ -6129,7 +6794,7 @@
6129
6794
  { type: i0.Component, args: [{
6130
6795
  selector: 'aup-popup-interaction-context',
6131
6796
  template: "<ng-content></ng-content>\n",
6132
- styles: [":host{display:inline-block}:host.interaction-active{background:rgba(0,0,0,.05)}"]
6797
+ styles: [":host{display:inline-block}:host.interaction-active{background:rgba(0,0,0,.05)}\n"]
6133
6798
  },] }
6134
6799
  ];
6135
6800
  PopupInteractionContextComponent.ctorParameters = function () { return [
@@ -6185,7 +6850,7 @@
6185
6850
  });
6186
6851
  };
6187
6852
  InteractionContextTriggerFor.prototype.prepareActivityData = function () {
6188
- return ___default['default'].isFunction(this.activityDataFactory()) ? this.activityDataFactory() : this.activityData;
6853
+ return ___default["default"].isFunction(this.activityDataFactory()) ? this.activityDataFactory() : this.activityData;
6189
6854
  };
6190
6855
  return InteractionContextTriggerFor;
6191
6856
  }(pectin.GarbageCollector));
@@ -6209,45 +6874,114 @@
6209
6874
  // @see https://github.com/ng-packagr/ng-packagr/issues/641 and https://github.com/angular/angular/issues/21123
6210
6875
  // 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
6876
  // @dynamic
6212
- var AbstractInputActivity = /** @class */ (function (_super) {
6213
- __extends(AbstractInputActivity, _super);
6214
- function AbstractInputActivity(data) {
6215
- var _this = _super.call(this) || this;
6877
+ exports.InputActivity = /** @class */ (function (_super) {
6878
+ __extends(InputActivity, _super);
6879
+ function InputActivity(data) {
6880
+ var _this = this;
6881
+ var _a, _b;
6882
+ _this = _super.call(this) || this;
6216
6883
  _this.data = data;
6217
6884
  _this.class = 'aup-input-activity';
6218
6885
  var form = new pectin.DirtyTrackingForm();
6219
6886
  _this.valueModel = form.valueModel(_this.data.initialValue);
6220
6887
  _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);
6888
+ // TODO: move to global configuration
6889
+ _this.confirmFace = (_a = data.confirmFace) !== null && _a !== void 0 ? _a : {
6890
+ icon: function () { return 'mat:check'; }
6891
+ };
6892
+ _this.cancelFace = (_b = data.cancelFace) !== null && _b !== void 0 ? _b : {
6893
+ icon: function () { return 'mat:clear'; }
6894
+ };
6895
+ _this.confirmCommand = pectin.Command.create(function () { return __awaiter(_this, void 0, void 0, function () {
6896
+ var self_1, allGood_1, result, e_1;
6897
+ return __generator(this, function (_c) {
6898
+ switch (_c.label) {
6899
+ case 0:
6900
+ if (!this.valueModel.validate()) return [3 /*break*/, 6];
6901
+ if (!data.save) return [3 /*break*/, 5];
6902
+ self_1 = this;
6903
+ _c.label = 1;
6904
+ case 1:
6905
+ _c.trys.push([1, 3, , 4]);
6906
+ allGood_1 = true;
6907
+ return [4 /*yield*/, data.save(this.valueModel.value, {
6908
+ injectError: function (error) {
6909
+ allGood_1 = false;
6910
+ self_1.valueModel.injectErrors([error]);
6911
+ }
6912
+ })];
6913
+ case 2:
6914
+ result = _c.sent();
6915
+ if (allGood_1) {
6916
+ this.done(this.valueModel.value);
6917
+ }
6918
+ return [3 /*break*/, 4];
6919
+ case 3:
6920
+ e_1 = _c.sent();
6921
+ console.error(e_1);
6922
+ return [3 /*break*/, 4];
6923
+ case 4: return [3 /*break*/, 6];
6924
+ case 5:
6925
+ this.done(this.valueModel.value);
6926
+ _c.label = 6;
6927
+ case 6: return [2 /*return*/];
6229
6928
  }
6230
- }
6231
- });
6929
+ });
6930
+ }); });
6232
6931
  _this.cancelCommand = pectin.Command.create(function () {
6233
6932
  _this.cancel();
6234
6933
  });
6934
+ _this.busyWhile(_this.confirmCommand.busy);
6235
6935
  return _this;
6236
6936
  }
6237
- AbstractInputActivity.prototype.onActivityReady = function () {
6937
+ Object.defineProperty(InputActivity.prototype, "layout", {
6938
+ get: function () {
6939
+ var _a, _b;
6940
+ return (_b = (_a = this.data) === null || _a === void 0 ? void 0 : _a.layout) !== null && _b !== void 0 ? _b : InputActivity.Layout.BLOCK;
6941
+ },
6942
+ enumerable: false,
6943
+ configurable: true
6944
+ });
6945
+ InputActivity.prototype.onActivityReady = function () {
6238
6946
  this.valueModel.focusContext.requestFocus();
6239
6947
  };
6240
- return AbstractInputActivity;
6948
+ Object.defineProperty(InputActivity.prototype, "additionalCssClassName", {
6949
+ get: function () {
6950
+ var _a;
6951
+ return (_a = this.data.cssClassName) !== null && _a !== void 0 ? _a : '';
6952
+ },
6953
+ enumerable: false,
6954
+ configurable: true
6955
+ });
6956
+ InputActivity.prototype.onEscape = function () {
6957
+ if (this.shouldCancelOnEscape() && this.cancelCommand.enabled.value) {
6958
+ this.cancelCommand.execute();
6959
+ }
6960
+ };
6961
+ InputActivity.prototype.shouldCancelOnEscape = function () {
6962
+ return ___namespace.isNil(this.data.cancelOnEscape) // we default to true..
6963
+ || this.data.cancelOnEscape;
6964
+ };
6965
+ return InputActivity;
6241
6966
  }(Activity));
6242
- AbstractInputActivity.decorators = [
6967
+ exports.InputActivity.decorators = [
6243
6968
  { type: i0.Component, args: [{ template: "" },] }
6244
6969
  ];
6245
- AbstractInputActivity.ctorParameters = function () { return [
6970
+ exports.InputActivity.ctorParameters = function () { return [
6246
6971
  { type: undefined, decorators: [{ type: i0.Inject, args: [ACTIVITY_DATA,] }] }
6247
6972
  ]; };
6248
- AbstractInputActivity.propDecorators = {
6249
- class: [{ type: i0.HostBinding, args: ['class',] }]
6973
+ exports.InputActivity.propDecorators = {
6974
+ class: [{ type: i0.HostBinding, args: ['class',] }],
6975
+ layout: [{ type: i0.Input }, { type: i0.HostBinding, args: ['attr.layout',] }],
6976
+ additionalCssClassName: [{ type: i0.HostBinding, args: ["class",] }],
6977
+ onEscape: [{ type: i0.HostListener, args: ['keydown.escape',] }]
6250
6978
  };
6979
+ (function (InputActivity) {
6980
+ InputActivity.Layout = typescriptStringEnums.Enum({
6981
+ INLINE: 'inline',
6982
+ BLOCK: 'block'
6983
+ });
6984
+ })(exports.InputActivity || (exports.InputActivity = {}));
6251
6985
 
6252
6986
  var StringInputActivity = /** @class */ (function (_super) {
6253
6987
  __extends(StringInputActivity, _super);
@@ -6255,11 +6989,11 @@
6255
6989
  return _super !== null && _super.apply(this, arguments) || this;
6256
6990
  }
6257
6991
  return StringInputActivity;
6258
- }(AbstractInputActivity));
6992
+ }(exports.InputActivity));
6259
6993
  StringInputActivity.decorators = [
6260
6994
  { type: i0.Component, args: [{
6261
6995
  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 "
6996
+ 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
6997
  },] }
6264
6998
  ];
6265
6999
 
@@ -6289,11 +7023,11 @@
6289
7023
  configurable: true
6290
7024
  });
6291
7025
  return SelectInputActivity;
6292
- }(AbstractInputActivity));
7026
+ }(exports.InputActivity));
6293
7027
  SelectInputActivity.decorators = [
6294
7028
  { type: i0.Component, args: [{
6295
7029
  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 "
7030
+ 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
7031
  },] }
6298
7032
  ];
6299
7033
 
@@ -6400,36 +7134,6 @@
6400
7134
  return TableModel;
6401
7135
  }(AbstractTableModel));
6402
7136
 
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
7137
  /**
6434
7138
  * @file Automatically generated by barrelsby.
6435
7139
  */
@@ -6442,21 +7146,260 @@
6442
7146
  _this.anchorY = 'bottom';
6443
7147
  return _this;
6444
7148
  }
7149
+ Object.defineProperty(PopupActivityTriggerComponent.prototype, "interactionContext", {
7150
+ get: function () {
7151
+ return this._interactionContext;
7152
+ },
7153
+ enumerable: false,
7154
+ configurable: true
7155
+ });
6445
7156
  return PopupActivityTriggerComponent;
6446
7157
  }(AbstractActivityTriggerComponent));
6447
7158
  PopupActivityTriggerComponent.decorators = [
6448
7159
  { type: i0.Component, args: [{
6449
7160
  selector: 'aup-popup-activity-trigger',
6450
7161
  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}"]
7162
+ styles: [":host{display:inline-block}\n"]
6452
7163
  },] }
6453
7164
  ];
6454
7165
  PopupActivityTriggerComponent.ctorParameters = function () { return []; };
6455
7166
  PopupActivityTriggerComponent.propDecorators = {
6456
7167
  anchorX: [{ type: i0.Input }],
6457
7168
  anchorY: [{ type: i0.Input }],
6458
- interactionContext: [{ type: i0.ViewChild, args: [PopupInteractionContextComponent, { static: true },] }]
7169
+ _interactionContext: [{ type: i0.ViewChild, args: [PopupInteractionContextComponent, { static: true },] }]
7170
+ };
7171
+
7172
+ exports.InlineEditorModel = /** @class */ (function (_super) {
7173
+ __extends(InlineEditorModel, _super);
7174
+ function InlineEditorModel(valueModel, saveCallback) {
7175
+ var _this = _super.call(this) || this;
7176
+ _this.valueModel = valueModel;
7177
+ _this.saveCallback = saveCallback;
7178
+ _this.editing = new pectin.MutableValueModel(false);
7179
+ _this._validators = new pectin.MutableListModel();
7180
+ _this._editingEnabled = _this.registerDisposable(new pectin.DelegatingValueModel().withDefault(true));
7181
+ pectin.assert.notNil(valueModel);
7182
+ var when = pectin.Dsl.disposeWith(_this).when;
7183
+ when(_this.editingEnabled).becomesFalsey(function () { return _this.cancelEdit(); });
7184
+ return _this;
7185
+ }
7186
+ Object.defineProperty(InlineEditorModel.prototype, "editingEnabled", {
7187
+ get: function () {
7188
+ return this._editingEnabled.readonly;
7189
+ },
7190
+ enumerable: false,
7191
+ configurable: true
7192
+ });
7193
+ InlineEditorModel.prototype.disableWhile = function (condition) {
7194
+ var chain = pectin.Dsl.disposeWith(this).chain;
7195
+ this.enableWhile(chain(condition).isFalsey());
7196
+ return this;
7197
+ };
7198
+ InlineEditorModel.prototype.enableWhile = function (condition) {
7199
+ this._editingEnabled.setDelegate(condition);
7200
+ return this;
7201
+ };
7202
+ Object.defineProperty(InlineEditorModel.prototype, "validators", {
7203
+ get: function () {
7204
+ return this._validators.readonly;
7205
+ },
7206
+ enumerable: false,
7207
+ configurable: true
7208
+ });
7209
+ InlineEditorModel.prototype.validateUsing = function (validator) {
7210
+ this._validators.push(validator);
7211
+ return this;
7212
+ };
7213
+ InlineEditorModel.prototype.isEditing = function () {
7214
+ return this.editing.value;
7215
+ };
7216
+ InlineEditorModel.prototype.cancelEdit = function () {
7217
+ this.editing.value = false;
7218
+ };
7219
+ InlineEditorModel.prototype.startEditing = function () {
7220
+ this.editing.value = true;
7221
+ };
7222
+ return InlineEditorModel;
7223
+ }(pectin.GarbageCollector));
7224
+ (function (InlineEditorModel) {
7225
+ function create(valueModel, options) {
7226
+ return new InlineEditorModel(valueModel, options.save);
7227
+ }
7228
+ InlineEditorModel.create = create;
7229
+ })(exports.InlineEditorModel || (exports.InlineEditorModel = {}));
7230
+ pectin.TrackExternal.oneTimeBinding(exports.InlineEditorModel);
7231
+
7232
+ /**
7233
+ * @example
7234
+ * const source: ValueModel<string> = ...;
7235
+ * const model = InlineEditorModel.create(source, {
7236
+ * save(updated:string, context: EditContext) => {
7237
+ * try {
7238
+ * try and save the thing...
7239
+ * } catch(error) {
7240
+ * context.injectError(error)
7241
+ * }
7242
+ * }).validateUsing(Validator.present("We'll need a value");
7243
+ *
7244
+ * # in the view
7245
+ * <aup-inline-string-editor
7246
+ * label="My field"
7247
+ * placeHolder="I'm ready for a string..."
7248
+ * [editorModel]="model"></aup-inline-string-editor>
7249
+ */
7250
+ exports.InlineStringEditorComponent = /** @class */ (function (_super) {
7251
+ __extends(InlineStringEditorComponent, _super);
7252
+ function InlineStringEditorComponent(interactionService) {
7253
+ var _this = _super.call(this) || this;
7254
+ _this.editingEnabled = _this.registerDisposable(new pectin.DelegatingValueModel());
7255
+ var _a = pectin.Dsl.disposeWith(_this), chain = _a.chain, when = _a.when, valueOf = _a.valueOf;
7256
+ var modalIC = interactionService.createModalInteractionContextDisposedWith(_this);
7257
+ var resolvedFacesModel = chain(_this.facesModel).map(function (userFaces) {
7258
+ return Object.assign(Object.assign({}, InlineStringEditorComponent.DEFAULT_FACES), userFaces);
7259
+ }, { allowNil: true });
7260
+ _this.editFaceModel = resolvedFacesModel.pluck('edit');
7261
+ _this.saveFace = resolvedFacesModel.pluck('save');
7262
+ _this.cancelFace = resolvedFacesModel.pluck('cancel');
7263
+ var self = _this;
7264
+ _this.editCommand = pectin.Command.create(function () { return __awaiter(_this, void 0, void 0, function () {
7265
+ var e_1;
7266
+ return __generator(this, function (_a) {
7267
+ switch (_a.label) {
7268
+ case 0:
7269
+ this.editorModel.editing.value = true;
7270
+ _a.label = 1;
7271
+ case 1:
7272
+ _a.trys.push([1, 3, 4, 5]);
7273
+ return [4 /*yield*/, this.interactionContext.startActivity(StringInputActivity, this.createInputActivityData())];
7274
+ case 2:
7275
+ _a.sent();
7276
+ return [3 /*break*/, 5];
7277
+ case 3:
7278
+ e_1 = _a.sent();
7279
+ return [3 /*break*/, 5];
7280
+ case 4:
7281
+ this.editorModel.editing.value = false;
7282
+ return [7 /*endfinally*/];
7283
+ case 5: return [2 /*return*/];
7284
+ }
7285
+ });
7286
+ }); }).enableWhile(_this.editingEnabled);
7287
+ _this.onDispose(function () { return _this.cancelEdit(); });
7288
+ return _this;
7289
+ }
7290
+ InlineStringEditorComponent.prototype.ngOnInit = function () {
7291
+ var _this = this;
7292
+ // our editor model is a one time binding without delegates so we can only
7293
+ // use it once we've been initialised
7294
+ var _a = pectin.Dsl.disposeWith(this), chain = _a.chain, when = _a.when, valueOf = _a.valueOf;
7295
+ if (!this.editorModel) {
7296
+ typescriptUtilities.lang.illegalState('editorModel is required');
7297
+ }
7298
+ this.editingEnabled.setDelegate(this.editorModel.editingEnabled);
7299
+ when(this.editorModel.editing).becomesTruthy(function () {
7300
+ _this.editCommand.execute();
7301
+ }, { asLongAs: this.editCommand.enabled });
7302
+ when(this.editorModel.editing).becomesFalsey(function () { return _this.cancelEdit(); });
7303
+ this.empty = valueOf.any(chain.stringValue(this.editorModel.valueModel).isBlank()
7304
+ // deviceDescription.isNil()
7305
+ ).areTruthy();
7306
+ this.displayValue = chain(this.editorModel.valueModel).map(function (v) {
7307
+ return ___namespace.isEmpty(v) ? _this.placeHolderModel.value : v;
7308
+ }, { dependsOn: this.placeHolderModel, allowNil: true });
7309
+ };
7310
+ InlineStringEditorComponent.prototype.createInputActivityData = function () {
7311
+ var self = this;
7312
+ return {
7313
+ initialValue: self.editorModel.valueModel.value,
7314
+ confirmFace: self.saveFace.value,
7315
+ cancelFace: self.cancelFace.value,
7316
+ placeholder: self.placeHolderModel.value,
7317
+ label: self.label,
7318
+ layout: exports.InputActivity.Layout.INLINE,
7319
+ validators: self.editorModel.validators.value,
7320
+ save: function (value, inputContext) {
7321
+ return __awaiter(this, void 0, void 0, function () {
7322
+ return __generator(this, function (_a) {
7323
+ switch (_a.label) {
7324
+ case 0: return [4 /*yield*/, self.editorModel.saveCallback(value, inputContext)];
7325
+ case 1:
7326
+ _a.sent();
7327
+ return [2 /*return*/];
7328
+ }
7329
+ });
7330
+ });
7331
+ }
7332
+ };
7333
+ };
7334
+ InlineStringEditorComponent.prototype.cancelEdit = function () {
7335
+ if (this.isEditing()) {
7336
+ this.interactionContext.cancelActiveActivity();
7337
+ }
7338
+ };
7339
+ InlineStringEditorComponent.prototype.startEdit = function () {
7340
+ if (!this.isEditing() && this.editCommand.enabled.value) {
7341
+ this.editCommand.execute();
7342
+ }
7343
+ };
7344
+ InlineStringEditorComponent.prototype.isEditing = function () {
7345
+ return this.interactionContext.isActive();
7346
+ };
7347
+ InlineStringEditorComponent.prototype.isEmpty = function () {
7348
+ return this.empty.value;
7349
+ };
7350
+ return InlineStringEditorComponent;
7351
+ }(DisposableComponent));
7352
+ exports.InlineStringEditorComponent.decorators = [
7353
+ { type: i0.Component, args: [{
7354
+ selector: 'aup-inline-string-editor',
7355
+ 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"
7356
+ },] }
7357
+ ];
7358
+ exports.InlineStringEditorComponent.ctorParameters = function () { return [
7359
+ { type: exports.InteractionService }
7360
+ ]; };
7361
+ exports.InlineStringEditorComponent.propDecorators = {
7362
+ editorModel: [{ type: i0.Input }],
7363
+ facesModel: [{ type: i0.Input }],
7364
+ faces: [{ type: i0.Input }],
7365
+ interactionContext: [{ type: i0.ViewChild, args: [InPlaceInteractionContextComponent,] }],
7366
+ label: [{ type: i0.Input }],
7367
+ placeHolder: [{ type: i0.Input }],
7368
+ placeHolderModel: [{ type: i0.Input }]
6459
7369
  };
7370
+ __decorate([
7371
+ pectin.TrackExternal(),
7372
+ __metadata("design:type", exports.InlineEditorModel)
7373
+ ], exports.InlineStringEditorComponent.prototype, "editorModel", void 0);
7374
+ __decorate([
7375
+ pectin.TrackExternal(),
7376
+ __metadata("design:type", pectin.ValueModel)
7377
+ ], exports.InlineStringEditorComponent.prototype, "facesModel", void 0);
7378
+ __decorate([
7379
+ pectin.StoreInValueModel('facesModel'),
7380
+ __metadata("design:type", Object)
7381
+ ], exports.InlineStringEditorComponent.prototype, "faces", void 0);
7382
+ __decorate([
7383
+ pectin.StoreInValueModel('placeHolderModel'),
7384
+ __metadata("design:type", String)
7385
+ ], exports.InlineStringEditorComponent.prototype, "placeHolder", void 0);
7386
+ __decorate([
7387
+ pectin.TrackExternal(),
7388
+ __metadata("design:type", pectin.ValueModel)
7389
+ ], exports.InlineStringEditorComponent.prototype, "placeHolderModel", void 0);
7390
+ (function (InlineStringEditorComponent) {
7391
+ InlineStringEditorComponent.DEFAULT_FACES = {
7392
+ edit: {
7393
+ icon: function () { return 'mat:edit'; }
7394
+ },
7395
+ save: {
7396
+ icon: function () { return 'mat:check'; }
7397
+ },
7398
+ cancel: {
7399
+ icon: function () { return 'mat:clear'; }
7400
+ }
7401
+ };
7402
+ })(exports.InlineStringEditorComponent || (exports.InlineStringEditorComponent = {}));
6460
7403
 
6461
7404
  var InteractionModule = /** @class */ (function () {
6462
7405
  function InteractionModule() {
@@ -6476,30 +7419,39 @@
6476
7419
  DirectivesModule,
6477
7420
  flexLayout.FlexModule,
6478
7421
  flexLayout.GridModule,
6479
- ComponentsModule
7422
+ ComponentsModule,
7423
+ forms.FormsModule,
7424
+ input.MatInputModule,
7425
+ formField.MatFormFieldModule,
7426
+ a11y.A11yModule
6480
7427
  ],
6481
7428
  declarations: [
6482
7429
  ActivityContainerComponent,
6483
7430
  ConfirmationDialogComponent,
6484
7431
  ConfirmThenDialogComponent,
7432
+ ConfirmThenExecuteDialogComponent,
6485
7433
  AlertDialogComponent,
6486
7434
  ActivityOutletComponent,
6487
7435
  InPlaceInteractionContextComponent,
6488
7436
  AddItemInteractionContextComponent,
6489
- ActivityActionsComponent,
7437
+ exports.ActivityActionsComponent,
6490
7438
  PopupInteractionContextComponent,
6491
7439
  StringInputActivity,
6492
7440
  SelectInputActivity,
6493
- AbstractInputActivity,
7441
+ exports.InputActivity,
6494
7442
  InteractionContextTriggerFor,
6495
7443
  Activity,
6496
7444
  ActivityTitleComponent,
6497
7445
  ActivityBodyComponent,
6498
- ActivityActionsComponent,
7446
+ exports.ActivityActionsComponent,
6499
7447
  AbstractActivityTriggerComponent,
6500
7448
  PopupActivityTriggerComponent,
6501
7449
  InlineActivityTriggerComponent,
6502
- ModalActivityTriggerComponent
7450
+ ModalActivityTriggerComponent,
7451
+ exports.AddCardActivityComponent,
7452
+ exports.InlineStringEditorComponent,
7453
+ AbstractDialogComponent,
7454
+ AbstractConfirmDialogComponent,
6503
7455
  ],
6504
7456
  exports: [
6505
7457
  ActivityContainerComponent,
@@ -6507,7 +7459,7 @@
6507
7459
  ActivityTitleComponent,
6508
7460
  InPlaceInteractionContextComponent,
6509
7461
  AddItemInteractionContextComponent,
6510
- ActivityActionsComponent,
7462
+ exports.ActivityActionsComponent,
6511
7463
  PopupInteractionContextComponent,
6512
7464
  InteractionContextTriggerFor,
6513
7465
  StringInputActivity,
@@ -6515,13 +7467,15 @@
6515
7467
  ActivityBodyComponent,
6516
7468
  PopupActivityTriggerComponent,
6517
7469
  InlineActivityTriggerComponent,
6518
- ModalActivityTriggerComponent
7470
+ ModalActivityTriggerComponent,
7471
+ exports.AddCardActivityComponent,
7472
+ exports.InlineStringEditorComponent,
6519
7473
  ],
6520
7474
  entryComponents: [
6521
- ActivityContainerComponent,
6522
- ConfirmationDialogComponent,
6523
- ConfirmThenDialogComponent,
6524
- AlertDialogComponent
7475
+ // ActivityContainerComponent,
7476
+ // ConfirmationDialogComponent,
7477
+ // ConfirmThenDialogComponent,
7478
+ // AlertDialogComponent
6525
7479
  ],
6526
7480
  providers: [
6527
7481
  exports.InteractionService
@@ -6600,7 +7554,7 @@
6600
7554
  return _this;
6601
7555
  }
6602
7556
  RouteId.prototype.isEmptyValue = function (value) {
6603
- return ___default['default'].isNil(value);
7557
+ return ___default["default"].isNil(value);
6604
7558
  };
6605
7559
  RouteId.prototype.hasChanged = function (a, b) {
6606
7560
  return a !== b;
@@ -6618,7 +7572,7 @@
6618
7572
  return _this;
6619
7573
  }
6620
7574
  ValueParameter.prototype.isEmptyValue = function (value) {
6621
- return ___default['default'].isNil(value);
7575
+ return ___default["default"].isNil(value);
6622
7576
  };
6623
7577
  ValueParameter.prototype.hasChanged = function (a, b) {
6624
7578
  return a !== b;
@@ -6636,10 +7590,10 @@
6636
7590
  return _this;
6637
7591
  }
6638
7592
  ArrayParameter.prototype.isEmptyValue = function (value) {
6639
- return ___default['default'].isNil(value) || value.length < 1;
7593
+ return ___default["default"].isNil(value) || value.length < 1;
6640
7594
  };
6641
7595
  ArrayParameter.prototype.hasChanged = function (a, b) {
6642
- return !___default['default'].isEqual(a, b);
7596
+ return !___default["default"].isEqual(a, b);
6643
7597
  };
6644
7598
  return ArrayParameter;
6645
7599
  }(ParameterDefinition));
@@ -6688,13 +7642,13 @@
6688
7642
  };
6689
7643
  PlaceDefinition.prototype.getPlaceData = function (key, defaultValue) {
6690
7644
  return this.data ?
6691
- ___default['default'].isNil(this.data[key]) ? defaultValue : this.data[key] :
7645
+ ___default["default"].isNil(this.data[key]) ? defaultValue : this.data[key] :
6692
7646
  defaultValue;
6693
7647
  };
6694
7648
  PlaceDefinition.prototype.searchPlaceData = function (keys, defaultValue) {
6695
7649
  var _this = this;
6696
7650
  if (this.data) {
6697
- var found = keys.find(function (key) { return !___default['default'].isNil(_this.data[key]); });
7651
+ var found = keys.find(function (key) { return !___default["default"].isNil(_this.data[key]); });
6698
7652
  return found ? this.data[found] : defaultValue;
6699
7653
  }
6700
7654
  else {
@@ -6764,7 +7718,7 @@
6764
7718
  // because our id routes redirect if the id isn't present we always have a id
6765
7719
  // parameter in our params. This will bugger our remember and defaultvalue sanitisation
6766
7720
  // as it'll see that the id is present (event thought its a blank string).
6767
- if (!___default['default'].isEmpty(value)) {
7721
+ if (!___default["default"].isEmpty(value)) {
6768
7722
  result[def.name] = def.urlFormat.parse(value);
6769
7723
  }
6770
7724
  }
@@ -6827,17 +7781,28 @@
6827
7781
  _this.childPlaces = _this.placeDefinition.children.map(function (d) { return d.component; });
6828
7782
  return _this;
6829
7783
  }
6830
- // @Trace()
6831
7784
  PlaceComponent.prototype.initialiseVisit = function (visit, notifyVisitChanged) {
6832
7785
  var _this = this;
6833
7786
  pectin.assert.isNil(this.visitModel.value);
6834
7787
  var when = pectin.Dsl.disposeWith(this).when;
6835
7788
  this.visitModel.value = visit;
6836
7789
  pectin.DebugContext.getOrCreate(this.visitModel).tag(this.placeDefinition.component.name + ".visitModel");
6837
- this.placeDefinition.getVisitParameterDefs().forEach(function (parameterDef) { return _this.installBinding(parameterDef); });
7790
+ // we track if the any of the bindings updated the route. If so we remember it and update the
7791
+ // route in one go at the end.
7792
+ this.placeDefinition
7793
+ .getVisitParameterDefs()
7794
+ .forEach(function (parameterDef) { return _this.installAndInitialiseBinding(visit, parameterDef); });
6838
7795
  when(this.visitModel).changes(function (current, previous) {
6839
7796
  notifyVisitChanged(current, previous);
6840
7797
  }, { unless: this._inVisitUpdate });
7798
+ // TODO: this needs to do a replace url option so that the new url isn't put in the history.... for
7799
+ // now we're not doing it as it's a fair bit of effort and will only affect people if they're
7800
+ // cutting and pasting urls to each other.
7801
+ // // the binding process can update the visit (e.g. if a selection model has already selected during
7802
+ // // component construction) and there was no value specified in the route
7803
+ // if (visit.hasRoutingChangedFrom(this.visitModel.value)) {
7804
+ // notifyVisitChanged(this.visitModel.value, visit)
7805
+ // }
6841
7806
  };
6842
7807
  PlaceComponent.prototype.updateVisit = function (visit) {
6843
7808
  var _this = this;
@@ -6851,7 +7816,12 @@
6851
7816
  return !!this.visitModel.value;
6852
7817
  };
6853
7818
  // @Trace()
6854
- PlaceComponent.prototype.installBinding = function (parameterDef) {
7819
+ /**
7820
+ * Initialised the component bindings. If any binding has an initial model value (e.g. a selection model
7821
+ * initialised during the constructor) and the route has nothing, then the visit will be udpated and this
7822
+ * method will return ture to nofiy the the visit has changed.
7823
+ */
7824
+ PlaceComponent.prototype.installAndInitialiseBinding = function (initialVisit, parameterDef) {
6855
7825
  var model = this[parameterDef.propertyName];
6856
7826
  pectin.DebugContext.tag(model, this.placeDefinition.component.name + "." + parameterDef.propertyName);
6857
7827
  var binding = this.registerDisposable(new pectin.Binding(this.visitModel, model, {
@@ -6865,7 +7835,17 @@
6865
7835
  return currentVisit.replace(parameterDef, value);
6866
7836
  }
6867
7837
  }));
6868
- binding.writeRight();
7838
+ // Now we need to initialise the binding direction. If we have a value in the Url then we should always push
7839
+ // 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
7840
+ // component constructor) then we should push that to the route.
7841
+ var isInVisit = !___namespace.isNil(initialVisit.getParameterValue(parameterDef));
7842
+ var isInModel = !___namespace.isNil(model.value);
7843
+ if (!isInVisit && isInModel) {
7844
+ binding.writeLeft(); // push it to the route
7845
+ }
7846
+ else {
7847
+ binding.writeRight(); // push it to the model
7848
+ }
6869
7849
  };
6870
7850
  Object.defineProperty(PlaceComponent.prototype, "placeDefinition", {
6871
7851
  get: function () {
@@ -7416,7 +8396,7 @@
7416
8396
  var currentIds = this.interactionServiceAdapter.getActiveInteractionContextIds();
7417
8397
  var previousIds = this.urlService.getCurrentLocationUrlSnapshot().getInteractionIds();
7418
8398
  // console.log(`---> synchroniseInteractionIds`, { is: currentIds.join(','), was: previousIds.join(',') });
7419
- if (___default['default'].isEqual(currentIds, previousIds)) {
8399
+ if (___default["default"].isEqual(currentIds, previousIds)) {
7420
8400
  // console.log('### Activity context ids were the same, skipping');
7421
8401
  this.context.finishRoutingSession();
7422
8402
  }
@@ -7896,7 +8876,7 @@
7896
8876
  return !!((_a = this._previousVisits) === null || _a === void 0 ? void 0 : _a.getVisitFor(placeDef));
7897
8877
  };
7898
8878
  PlaceHistory.prototype.getMostRecentVisitFor = function (placeDef) {
7899
- return ___default['default'].first(this.getHistory(placeDef));
8879
+ return ___default["default"].first(this.getHistory(placeDef));
7900
8880
  };
7901
8881
  PlaceHistory.prototype.getHistory = function (placeDef) {
7902
8882
  var history = this._archive.get(placeDef);
@@ -7913,7 +8893,7 @@
7913
8893
  var _this = this;
7914
8894
  visits.forEach(function (state) {
7915
8895
  var history = _this.getHistory(state.placeDefinition);
7916
- var previousState = ___default['default'].first(history);
8896
+ var previousState = ___default["default"].first(history);
7917
8897
  if (!previousState || state.hasChangedFrom(previousState)) {
7918
8898
  history.unshift(state); // LIFO
7919
8899
  _this.setHistory(state.placeDefinition, history.slice(0, _this.placeHistoryDepth));
@@ -8037,7 +9017,7 @@
8037
9017
  };
8038
9018
  Object.defineProperty(ConsolidatedParameterMap.prototype, "keys", {
8039
9019
  get: function () {
8040
- return this.paramMaps.reduce(function (result, params) { return result.concat(params.keys); }, []);
9020
+ return ___namespace.uniq(this.paramMaps.reduce(function (result, params) { return result.concat(params.keys); }, []));
8041
9021
  },
8042
9022
  enumerable: false,
8043
9023
  configurable: true
@@ -8126,9 +9106,13 @@
8126
9106
  });
8127
9107
  return new Visit(this.placeDefinition, params);
8128
9108
  };
9109
+ // @Trace()
8129
9110
  Visit.prototype.hasRoutingChangedFrom = function (other) {
8130
9111
  var samePlace = other.placeDefinition === this.placeDefinition;
8131
- var sameRouteParameters = ___namespace.isEqual(this.placeDefinition.getFormattedRouteParameters(this, true), this.placeDefinition.getFormattedRouteParameters(other, true));
9112
+ var currentParams = this.placeDefinition.getFormattedRouteParameters(this, true);
9113
+ var otherParams = this.placeDefinition.getFormattedRouteParameters(other, true);
9114
+ // console.log({currentParams, otherParams});
9115
+ var sameRouteParameters = ___namespace.isEqual(currentParams, otherParams);
8132
9116
  return !samePlace || !sameRouteParameters;
8133
9117
  };
8134
9118
  Visit.prototype.hasChangedFrom = function (other) {
@@ -8204,7 +9188,7 @@
8204
9188
  return this.getInteractionIds().length > 0;
8205
9189
  };
8206
9190
  UrlSnapshot.prototype.hasInteractionIds = function (ids) {
8207
- return ___default['default'].isEqual(this.getInteractionIds(), ids);
9191
+ return ___default["default"].isEqual(this.getInteractionIds(), ids);
8208
9192
  };
8209
9193
  // @Trace()
8210
9194
  UrlSnapshot.prototype.updateInteractionIds = function (ids) {
@@ -8316,6 +9300,9 @@
8316
9300
  { type: i1$1.UrlSerializer }
8317
9301
  ]; };
8318
9302
 
9303
+ function asArray(item) {
9304
+ return Array.isArray(item) ? item : [item];
9305
+ }
8319
9306
  exports.PlaceRouter = /** @class */ (function (_super) {
8320
9307
  __extends(PlaceRouter, _super);
8321
9308
  function PlaceRouter(angularRouter, angularLocation, interactionService, urlService, placeHistory) {
@@ -8332,7 +9319,7 @@
8332
9319
  * An observable model containing the authoriser function. This allows places to react to changes
8333
9320
  * in permissions when any underlying auth logic changes, e.g. a role being removed from a user.
8334
9321
  */
8335
- _this._accessGuard = new pectin.DelegatingValueModel().withDefault(new exports.PlaceAccessGuard.NoAuth());
9322
+ _this._accessGuard = _this.registerDisposable(new pectin.DelegatingValueModel().withDefault(new exports.PlaceAccessGuard.NoAuth()));
8336
9323
  if (window['Cypress']) {
8337
9324
  window['aup.PlaceRouter'] = _this;
8338
9325
  }
@@ -8495,17 +9482,15 @@
8495
9482
  };
8496
9483
  PlaceRouter.prototype.navigate = function (visit, options) {
8497
9484
  var _this = this;
9485
+ var commands = asArray(visit).reduce(function (result, v) {
9486
+ return __spreadArray(__spreadArray(__spreadArray([], __read(result)), [v.placeDefinition.path]), __read(_this.createRouteParameters(v)));
9487
+ }, []);
8498
9488
  return this.doNavigation(visit, function (router) { return __awaiter(_this, void 0, void 0, function () {
8499
- var commands;
8500
9489
  return __generator(this, function (_a) {
8501
9490
  switch (_a.label) {
8502
- case 0:
8503
- commands = __spreadArray([
8504
- visit.placeDefinition.path
8505
- ], __read(this.createRouteParameters(visit)));
8506
- return [4 /*yield*/, this.angularRouter.navigate(commands, {
8507
- relativeTo: options ? options.relativeTo : null
8508
- })];
9491
+ case 0: return [4 /*yield*/, this.angularRouter.navigate(commands, {
9492
+ relativeTo: options ? options.relativeTo : null
9493
+ })];
8509
9494
  case 1:
8510
9495
  _a.sent();
8511
9496
  return [2 /*return*/];
@@ -8524,7 +9509,7 @@
8524
9509
  pectin.lang.illegalState('Navigation already in progress');
8525
9510
  }
8526
9511
  navigation = this.createNavigationSession(this.urlService.getCurrentRouterUrl());
8527
- navigation.storeVisit(visit);
9512
+ asArray(visit).forEach(function (v) { return navigation.storeVisit(v); });
8528
9513
  this.transitionTo(navigation);
8529
9514
  _a.label = 1;
8530
9515
  case 1:
@@ -8620,6 +9605,7 @@
8620
9605
  * to be able to capture the back button on the first page. If we don't then the back click will exit
8621
9606
  * the app directly and we don't get to ask.
8622
9607
  */
9608
+ // @Trace()
8623
9609
  PlaceRouter.prototype.syncInteractionContextIdsWithRouter = function () {
8624
9610
  var _this = this;
8625
9611
  if (this.navigationSession) {
@@ -8663,12 +9649,6 @@
8663
9649
  { type: UrlService },
8664
9650
  { type: exports.PlaceHistory }
8665
9651
  ]; };
8666
- __decorate([
8667
- pectin.Trace(),
8668
- __metadata("design:type", Function),
8669
- __metadata("design:paramtypes", []),
8670
- __metadata("design:returntype", Promise)
8671
- ], exports.PlaceRouter.prototype, "syncInteractionContextIdsWithRouter", null);
8672
9652
  (function (PlaceRouter) {
8673
9653
  var State = /** @class */ (function () {
8674
9654
  function State(activeVisits) {
@@ -8696,7 +9676,7 @@
8696
9676
  { type: i0.Component, args: [{
8697
9677
  selector: 'aup-not-authorised-notice',
8698
9678
  template: "<p>You are not authorised to access this page</p>\n",
8699
- styles: [":host{display:flex;flex-direction:column;align-items:center;justify-content:center}"]
9679
+ styles: [":host{display:flex;flex-direction:column;align-items:center;justify-content:center}\n"]
8700
9680
  },] }
8701
9681
  ];
8702
9682
  NotAuthorisedNoticeComponent.ctorParameters = function () { return []; };
@@ -8947,7 +9927,7 @@
8947
9927
  selector: 'aup-place-outlet',
8948
9928
  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",
8949
9929
  animations: [LEFT_RIGHT_PLACE_ANIMATION],
8950
- 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}"]
9930
+ 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"]
8951
9931
  },] }
8952
9932
  ];
8953
9933
  PlaceOutletComponent.ctorParameters = function () { return [
@@ -8989,7 +9969,7 @@
8989
9969
  function AbstractPlaceNavigationComponent(placeRouter) {
8990
9970
  var _this = _super.call(this) || this;
8991
9971
  _this.placeRouter = placeRouter;
8992
- _this._activePlaceComponent = new pectin.DelegatingValueModel();
9972
+ _this._activePlaceComponent = _this.registerDisposable(new pectin.DelegatingValueModel());
8993
9973
  _this.trackByPlaceDef = function (data) { return data.place; };
8994
9974
  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;
8995
9975
  _this.placeDefinitions = chain(_this.placesModel)
@@ -9082,7 +10062,7 @@
9082
10062
  { type: i0.Component, args: [{
9083
10063
  selector: 'aup-list-place-nav',
9084
10064
  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",
9085
- 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)}"]
10065
+ 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"]
9086
10066
  },] }
9087
10067
  ];
9088
10068
  ListPlaceNavComponent.ctorParameters = function () { return [
@@ -9153,7 +10133,7 @@
9153
10133
  { type: i0.Component, args: [{
9154
10134
  selector: 'aup-side-place-navigation',
9155
10135
  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",
9156
- 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)}"]
10136
+ 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"]
9157
10137
  },] }
9158
10138
  ];
9159
10139
  SidePlaceNavigationComponent.ctorParameters = function () { return [
@@ -9175,7 +10155,7 @@
9175
10155
  { type: i0.Component, args: [{
9176
10156
  selector: 'aup-tabbed-place-navigation',
9177
10157
  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",
9178
- styles: [":host{display:block}div.place-holder{border:1px solid green}"]
10158
+ styles: [":host{display:block}div.place-holder{border:1px solid green}\n"]
9179
10159
  },] }
9180
10160
  ];
9181
10161
  TabbedPlaceNavigationComponent.ctorParameters = function () { return [
@@ -9286,9 +10266,6 @@
9286
10266
  * @file Automatically generated by barrelsby.
9287
10267
  */
9288
10268
 
9289
- // const r:Result<string, number> = null;
9290
- // r.catch(e => {}).then();
9291
-
9292
10269
  var DialogInteractionContext = /** @class */ (function (_super) {
9293
10270
  __extends(DialogInteractionContext, _super);
9294
10271
  function DialogInteractionContext(identifier, api, dialogService, config) {
@@ -9507,13 +10484,13 @@
9507
10484
  }
9508
10485
  _a.label = 2;
9509
10486
  case 2: return [4 /*yield*/, this.cleanInteractionState(activatedRoute, state, function () { return __awaiter(_this, void 0, void 0, function () {
9510
- var params, parsedParams, navigationSession, initialVisit, sanitiser, sanitisedVisit, urlSnapshot;
10487
+ var navigationSession, params, parsedParams, initialVisit, sanitiser, sanitisedVisit, urlSnapshot;
9511
10488
  return __generator(this, function (_a) {
9512
10489
  switch (_a.label) {
9513
10490
  case 0:
10491
+ navigationSession = this.placeRouter.navigationSession;
9514
10492
  params = new ConsolidatedParameterMap(activatedRoute.url, activatedRoute.paramMap);
9515
10493
  parsedParams = placeDefinition_1.parseRouteParams(params);
9516
- navigationSession = this.placeRouter.navigationSession;
9517
10494
  initialVisit = navigationSession.getVisitFor(placeDefinition_1) || new Visit(placeDefinition_1, parsedParams);
9518
10495
  sanitiser = new VisitSanitiser(navigationSession, activatedRoute, this.router, this.placeHistory, this.injector);
9519
10496
  return [4 /*yield*/, sanitiser.sanitise(initialVisit.mergeRouteParameters(parsedParams))];
@@ -9622,11 +10599,11 @@
9622
10599
  function NumberType() {
9623
10600
  }
9624
10601
  NumberType.prototype.format = function (value) {
9625
- return ___default['default'].isNumber(value) && !___default['default'].isNaN(value) ? "" + value : null;
10602
+ return ___default["default"].isNumber(value) && !___default["default"].isNaN(value) ? "" + value : null;
9626
10603
  };
9627
10604
  NumberType.prototype.parse = function (value) {
9628
10605
  var parsed = Number.parseFloat(value);
9629
- return ___default['default'].isNaN(parsed) ? null : parsed;
10606
+ return ___default["default"].isNaN(parsed) ? null : parsed;
9630
10607
  };
9631
10608
  return NumberType;
9632
10609
  }());
@@ -9799,10 +10776,13 @@
9799
10776
  */
9800
10777
 
9801
10778
  exports.ACTIVITY_DATA = ACTIVITY_DATA;
10779
+ exports.ALERT_CONFIG = ALERT_CONFIG;
9802
10780
  exports.AUP_PLACE_CONFIG = AUP_PLACE_CONFIG;
9803
10781
  exports.AUP_UNAUTHORISED_PLACE_NOTICE_COMPONENT = AUP_UNAUTHORISED_PLACE_NOTICE_COMPONENT;
9804
10782
  exports.AbstractActivityTriggerComponent = AbstractActivityTriggerComponent;
9805
- exports.AbstractInputActivity = AbstractInputActivity;
10783
+ exports.AbstractCardContainerComponent = AbstractCardContainerComponent;
10784
+ exports.AbstractConfirmDialogComponent = AbstractConfirmDialogComponent;
10785
+ exports.AbstractDialogComponent = AbstractDialogComponent;
9806
10786
  exports.AbstractInputComponent = AbstractInputComponent;
9807
10787
  exports.AbstractInteractionContext = AbstractInteractionContext;
9808
10788
  exports.AbstractListInputComponent = AbstractListInputComponent;
@@ -9813,7 +10793,6 @@
9813
10793
  exports.AbstractTableModel = AbstractTableModel;
9814
10794
  exports.AbstractValueInputComponent = AbstractValueInputComponent;
9815
10795
  exports.Activity = Activity;
9816
- exports.ActivityActionsComponent = ActivityActionsComponent;
9817
10796
  exports.ActivityBodyComponent = ActivityBodyComponent;
9818
10797
  exports.ActivityContainerComponent = ActivityContainerComponent;
9819
10798
  exports.ActivityOutletComponent = ActivityOutletComponent;
@@ -9827,6 +10806,7 @@
9827
10806
  exports.CELL_EDITOR_PORTAL = CELL_EDITOR_PORTAL;
9828
10807
  exports.CELL_RENDERER_PORTAL = CELL_RENDERER_PORTAL;
9829
10808
  exports.CardContainerComponent = CardContainerComponent;
10809
+ exports.CardStackComponent = CardStackComponent;
9830
10810
  exports.CellEditorPortalRef = CellEditorPortalRef;
9831
10811
  exports.CellHeaderPortalRef = CellHeaderPortalRef;
9832
10812
  exports.CellPortalRef = CellPortalRef;
@@ -9841,6 +10821,7 @@
9841
10821
  exports.ComponentCellRendererPortalRef = ComponentCellRendererPortalRef;
9842
10822
  exports.ComponentsModule = ComponentsModule;
9843
10823
  exports.ConfirmThenDialogComponent = ConfirmThenDialogComponent;
10824
+ exports.ConfirmThenExecuteDialogComponent = ConfirmThenExecuteDialogComponent;
9844
10825
  exports.ConfirmationDialogComponent = ConfirmationDialogComponent;
9845
10826
  exports.ConsolidatedParameterMap = ConsolidatedParameterMap;
9846
10827
  exports.CustomTemplateColumnModel = CustomTemplateColumnModel;
@@ -9876,8 +10857,12 @@
9876
10857
  exports.InteractionModule = InteractionModule;
9877
10858
  exports.InteractionServiceRoutingAdapter = InteractionServiceRoutingAdapter;
9878
10859
  exports.LEFT_RIGHT_PLACE_ANIMATION = LEFT_RIGHT_PLACE_ANIMATION;
10860
+ exports.LabelledValueComponent = LabelledValueComponent;
9879
10861
  exports.ListPlaceNavComponent = ListPlaceNavComponent;
9880
10862
  exports.ListPropertyColumnModel = ListPropertyColumnModel;
10863
+ exports.LoadingContainerComponent = LoadingContainerComponent;
10864
+ exports.MarkdownComponent = MarkdownComponent;
10865
+ exports.MarkdownService = MarkdownService;
9881
10866
  exports.ModalActivityTriggerComponent = ModalActivityTriggerComponent;
9882
10867
  exports.ModalInteractionContextFactory = ModalInteractionContextFactory;
9883
10868
  exports.MoreMenuComponent = MoreMenuComponent;
@@ -9953,12 +10938,14 @@
9953
10938
  exports.WaitUntilLinkTriggeredNavigationInteractionCancellationTypeDetermined = WaitUntilLinkTriggeredNavigationInteractionCancellationTypeDetermined;
9954
10939
  exports.WaitUntilPopStateDuringCanDeactivateInteractionFinishes = WaitUntilPopStateDuringCanDeactivateInteractionFinishes;
9955
10940
  exports.leftRightPlaceAnimation = leftRightPlaceAnimation;
10941
+ exports.markdownPillExtension = markdownPillExtension;
9956
10942
  exports.slideDownOnEnterAnimation = slideDownOnEnterAnimation;
9957
10943
  exports.slideRightOnEnterAnimation = slideRightOnEnterAnimation;
9958
10944
  exports.treeNodeDecorator = treeNodeDecorator;
9959
- exports.ɵ0 = ɵ0;
10945
+ exports["ɵ0"] = ɵ0;
10946
+ exports["ɵ1"] = ɵ1;
9960
10947
 
9961
10948
  Object.defineProperty(exports, '__esModule', { value: true });
9962
10949
 
9963
- })));
10950
+ }));
9964
10951
  //# sourceMappingURL=coolon-angular-ui-powerups.umd.js.map