@coolon/angular-ui-powerups 2.0.0-alpha.29 → 2.0.0-alpha.3

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 (262) hide show
  1. package/CHANGELOG.md +0 -177
  2. package/assets/form.scss +4 -5
  3. package/assets/styles.scss +0 -2
  4. package/bundles/coolon-angular-ui-powerups.umd.js +339 -1152
  5. package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
  6. package/bundles/coolon-angular-ui-powerups.umd.min.js +2 -2
  7. package/bundles/coolon-angular-ui-powerups.umd.min.js.map +1 -1
  8. package/coolon-angular-ui-powerups.d.ts +54 -64
  9. package/coolon-angular-ui-powerups.metadata.json +1 -1
  10. package/esm2015/coolon-angular-ui-powerups.js +52 -62
  11. package/esm2015/coolon-angular-ui-powerups.js.map +1 -1
  12. package/esm2015/coolon-angular-ui-powerups.metadata.json +1 -1
  13. package/esm2015/lib/angular-ui-powerups.module.ngfactory.js.map +1 -1
  14. package/esm2015/lib/components/card-container/card-container.component.js +1 -1
  15. package/esm2015/lib/components/card-container/card-container.component.metadata.json +1 -1
  16. package/esm2015/lib/components/components.module.js +14 -58
  17. package/esm2015/lib/components/components.module.js.map +1 -1
  18. package/esm2015/lib/components/components.module.metadata.json +1 -1
  19. package/esm2015/lib/components/components.module.ngfactory.js.map +1 -1
  20. package/esm2015/lib/components/forms/abstract-input.component.js +4 -12
  21. package/esm2015/lib/components/forms/abstract-input.component.js.map +1 -1
  22. package/esm2015/lib/components/forms/abstract-input.component.metadata.json +1 -1
  23. package/esm2015/lib/components/forms/abstract-list-input.component.js +6 -51
  24. package/esm2015/lib/components/forms/abstract-list-input.component.js.map +1 -1
  25. package/esm2015/lib/components/forms/abstract-list-input.component.metadata.json +1 -1
  26. package/esm2015/lib/components/forms/abstract-value-input.component.js +3 -47
  27. package/esm2015/lib/components/forms/abstract-value-input.component.js.map +1 -1
  28. package/esm2015/lib/components/forms/abstract-value-input.component.metadata.json +1 -1
  29. package/esm2015/lib/components/forms/checkbox-input/checkbox-input.component.js +6 -3
  30. package/esm2015/lib/components/forms/checkbox-input/checkbox-input.component.js.map +1 -1
  31. package/esm2015/lib/components/forms/checkbox-input/checkbox-input.component.metadata.json +1 -1
  32. package/esm2015/lib/components/forms/multiple-select-input/multiple-select-input.component.js +13 -8
  33. package/esm2015/lib/components/forms/multiple-select-input/multiple-select-input.component.js.map +1 -1
  34. package/esm2015/lib/components/forms/multiple-select-input/multiple-select-input.component.metadata.json +1 -1
  35. package/esm2015/lib/components/forms/number-input/number-input.component.js +6 -3
  36. package/esm2015/lib/components/forms/number-input/number-input.component.js.map +1 -1
  37. package/esm2015/lib/components/forms/number-input/number-input.component.metadata.json +1 -1
  38. package/esm2015/lib/components/forms/password-input/password-input.component.js +7 -4
  39. package/esm2015/lib/components/forms/password-input/password-input.component.js.map +1 -1
  40. package/esm2015/lib/components/forms/password-input/password-input.component.metadata.json +1 -1
  41. package/esm2015/lib/components/forms/select-input/select-input.component.js +5 -2
  42. package/esm2015/lib/components/forms/select-input/select-input.component.js.map +1 -1
  43. package/esm2015/lib/components/forms/select-input/select-input.component.metadata.json +1 -1
  44. package/esm2015/lib/components/forms/string-input/string-input.component.js +7 -3
  45. package/esm2015/lib/components/forms/string-input/string-input.component.js.map +1 -1
  46. package/esm2015/lib/components/forms/string-input/string-input.component.metadata.json +1 -1
  47. package/esm2015/lib/components/forms/text-input/text-input.component.js +6 -3
  48. package/esm2015/lib/components/forms/text-input/text-input.component.js.map +1 -1
  49. package/esm2015/lib/components/forms/text-input/text-input.component.metadata.json +1 -1
  50. package/esm2015/lib/components/icon/icon.component.js +4 -17
  51. package/esm2015/lib/components/icon/icon.component.js.map +1 -1
  52. package/esm2015/lib/components/icon/icon.component.metadata.json +1 -1
  53. package/esm2015/lib/components/index.js +1 -12
  54. package/esm2015/lib/components/index.js.map +1 -1
  55. package/esm2015/lib/components/index.metadata.json +1 -1
  56. package/esm2015/lib/components/table/cell-editors.js.map +1 -1
  57. package/esm2015/lib/components/table/{cell-portal-ref.js → cell-protal-ref.js} +3 -7
  58. package/esm2015/lib/components/table/cell-protal-ref.js.map +1 -0
  59. package/esm2015/lib/components/table/{cell-portal-ref.metadata.json → cell-protal-ref.metadata.json} +1 -1
  60. package/esm2015/lib/components/table/column-model.js +11 -66
  61. package/esm2015/lib/components/table/column-model.js.map +1 -1
  62. package/esm2015/lib/components/table/column-model.metadata.json +1 -1
  63. package/esm2015/lib/components/table/table-cell-renderer/table-cell-renderer.component.js +1 -1
  64. package/esm2015/lib/components/table/table-cell-renderer/table-cell-renderer.component.js.map +1 -1
  65. package/esm2015/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.js +1 -1
  66. package/esm2015/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.js.map +1 -1
  67. package/esm2015/lib/components/table/table-model.js +10 -11
  68. package/esm2015/lib/components/table/table-model.js.map +1 -1
  69. package/esm2015/lib/components/table/table-model.metadata.json +1 -1
  70. package/esm2015/lib/components/table/table.component.js +1 -1
  71. package/esm2015/lib/components/table/table.component.js.map +1 -1
  72. package/esm2015/lib/components/table/table.component.metadata.json +1 -1
  73. package/esm2015/lib/interaction/components/activity-container/activity-container.component.js +7 -2
  74. package/esm2015/lib/interaction/components/activity-container/activity-container.component.js.map +1 -1
  75. package/esm2015/lib/interaction/components/activity-container/activity-container.component.metadata.json +1 -1
  76. package/esm2015/lib/interaction/interaction.module.ngfactory.js.map +1 -1
  77. package/esm2015/lib/place/place-component.js +1 -1
  78. package/esm2015/lib/place/place-component.js.map +1 -1
  79. package/esm2015/lib/place/place-router.js +8 -2
  80. package/esm2015/lib/place/place-router.js.map +1 -1
  81. package/esm2015/lib/place/place-router.metadata.json +1 -1
  82. package/esm2015/lib/place/place.module.ngfactory.js.map +1 -1
  83. package/esm2015/lib/place/route/parameter-decorators.js +3 -2
  84. package/esm2015/lib/place/route/parameter-decorators.js.map +1 -1
  85. package/esm2015/lib/place/route/parameter-decorators.metadata.json +1 -1
  86. package/esm5/coolon-angular-ui-powerups.js +52 -62
  87. package/esm5/coolon-angular-ui-powerups.js.map +1 -1
  88. package/esm5/lib/angular-ui-powerups.module.ngfactory.js.map +1 -1
  89. package/esm5/lib/components/card-container/card-container.component.js +1 -1
  90. package/esm5/lib/components/components.module.js +14 -58
  91. package/esm5/lib/components/components.module.js.map +1 -1
  92. package/esm5/lib/components/components.module.ngfactory.js.map +1 -1
  93. package/esm5/lib/components/forms/abstract-input.component.js +4 -12
  94. package/esm5/lib/components/forms/abstract-input.component.js.map +1 -1
  95. package/esm5/lib/components/forms/abstract-list-input.component.js +6 -56
  96. package/esm5/lib/components/forms/abstract-list-input.component.js.map +1 -1
  97. package/esm5/lib/components/forms/abstract-value-input.component.js +3 -52
  98. package/esm5/lib/components/forms/abstract-value-input.component.js.map +1 -1
  99. package/esm5/lib/components/forms/checkbox-input/checkbox-input.component.js +6 -3
  100. package/esm5/lib/components/forms/checkbox-input/checkbox-input.component.js.map +1 -1
  101. package/esm5/lib/components/forms/multiple-select-input/multiple-select-input.component.js +13 -8
  102. package/esm5/lib/components/forms/multiple-select-input/multiple-select-input.component.js.map +1 -1
  103. package/esm5/lib/components/forms/number-input/number-input.component.js +6 -3
  104. package/esm5/lib/components/forms/number-input/number-input.component.js.map +1 -1
  105. package/esm5/lib/components/forms/password-input/password-input.component.js +7 -4
  106. package/esm5/lib/components/forms/password-input/password-input.component.js.map +1 -1
  107. package/esm5/lib/components/forms/select-input/select-input.component.js +5 -2
  108. package/esm5/lib/components/forms/select-input/select-input.component.js.map +1 -1
  109. package/esm5/lib/components/forms/string-input/string-input.component.js +7 -3
  110. package/esm5/lib/components/forms/string-input/string-input.component.js.map +1 -1
  111. package/esm5/lib/components/forms/text-input/text-input.component.js +6 -3
  112. package/esm5/lib/components/forms/text-input/text-input.component.js.map +1 -1
  113. package/esm5/lib/components/icon/icon.component.js +3 -15
  114. package/esm5/lib/components/icon/icon.component.js.map +1 -1
  115. package/esm5/lib/components/index.js +1 -12
  116. package/esm5/lib/components/index.js.map +1 -1
  117. package/esm5/lib/components/table/cell-editors.js.map +1 -1
  118. package/esm5/lib/components/table/{cell-portal-ref.js → cell-protal-ref.js} +3 -7
  119. package/esm5/lib/components/table/cell-protal-ref.js.map +1 -0
  120. package/esm5/lib/components/table/column-model.js +11 -67
  121. package/esm5/lib/components/table/column-model.js.map +1 -1
  122. package/esm5/lib/components/table/table-cell-renderer/table-cell-renderer.component.js +1 -1
  123. package/esm5/lib/components/table/table-cell-renderer/table-cell-renderer.component.js.map +1 -1
  124. package/esm5/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.js +1 -1
  125. package/esm5/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.js.map +1 -1
  126. package/esm5/lib/components/table/table-model.js +11 -11
  127. package/esm5/lib/components/table/table-model.js.map +1 -1
  128. package/esm5/lib/components/table/table.component.js +1 -1
  129. package/esm5/lib/components/table/table.component.js.map +1 -1
  130. package/esm5/lib/interaction/components/activity-container/activity-container.component.js +7 -2
  131. package/esm5/lib/interaction/components/activity-container/activity-container.component.js.map +1 -1
  132. package/esm5/lib/interaction/interaction.module.ngfactory.js.map +1 -1
  133. package/esm5/lib/place/place-component.js +1 -1
  134. package/esm5/lib/place/place-component.js.map +1 -1
  135. package/esm5/lib/place/place-router.js +8 -2
  136. package/esm5/lib/place/place-router.js.map +1 -1
  137. package/esm5/lib/place/place.module.ngfactory.js.map +1 -1
  138. package/esm5/lib/place/route/parameter-decorators.js +3 -2
  139. package/esm5/lib/place/route/parameter-decorators.js.map +1 -1
  140. package/fesm2015/coolon-angular-ui-powerups.js +240 -988
  141. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  142. package/fesm5/coolon-angular-ui-powerups.js +269 -1066
  143. package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
  144. package/lib/components/forms/abstract-input.component.d.ts +2 -8
  145. package/lib/components/forms/abstract-list-input.component.d.ts +3 -10
  146. package/lib/components/forms/abstract-value-input.component.d.ts +3 -9
  147. package/lib/components/forms/checkbox-input/checkbox-input.component.d.ts +2 -0
  148. package/lib/components/forms/multiple-select-input/multiple-select-input.component.d.ts +4 -8
  149. package/lib/components/forms/number-input/number-input.component.d.ts +2 -0
  150. package/lib/components/forms/password-input/password-input.component.d.ts +2 -0
  151. package/lib/components/forms/select-input/select-input.component.d.ts +2 -2
  152. package/lib/components/forms/string-input/string-input.component.d.ts +2 -1
  153. package/lib/components/forms/text-input/text-input.component.d.ts +2 -0
  154. package/lib/components/icon/icon.component.d.ts +0 -15
  155. package/lib/components/index.d.ts +1 -13
  156. package/lib/components/table/cell-editors.d.ts +3 -3
  157. package/lib/components/table/{cell-portal-ref.d.ts → cell-protal-ref.d.ts} +4 -4
  158. package/lib/components/table/column-model.d.ts +12 -18
  159. package/lib/components/table/table-cell-renderer/table-cell-renderer.component.d.ts +1 -1
  160. package/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.d.ts +1 -1
  161. package/lib/components/table/table-model.d.ts +4 -12
  162. package/package.json +4 -4
  163. package/assets/commands.scss +0 -3
  164. package/assets/icons.scss +0 -30
  165. package/esm2015/lib/components/commands/command-bar.component.js +0 -51
  166. package/esm2015/lib/components/commands/command-bar.component.js.map +0 -1
  167. package/esm2015/lib/components/commands/command-bar.component.metadata.json +0 -1
  168. package/esm2015/lib/components/commands/command-bar.component.ngfactory.js.map +0 -1
  169. package/esm2015/lib/components/commands/command-container.js +0 -20
  170. package/esm2015/lib/components/commands/command-container.js.map +0 -1
  171. package/esm2015/lib/components/commands/command-container.metadata.json +0 -1
  172. package/esm2015/lib/components/commands/command-face/command-face.component.js +0 -91
  173. package/esm2015/lib/components/commands/command-face/command-face.component.js.map +0 -1
  174. package/esm2015/lib/components/commands/command-face/command-face.component.metadata.json +0 -1
  175. package/esm2015/lib/components/commands/command-face/command-face.component.ngfactory.js.map +0 -1
  176. package/esm2015/lib/components/commands/command-face/command-face.component.scss.ngstyle.js.map +0 -1
  177. package/esm2015/lib/components/commands/command-face.js +0 -74
  178. package/esm2015/lib/components/commands/command-face.js.map +0 -1
  179. package/esm2015/lib/components/commands/command-face.metadata.json +0 -1
  180. package/esm2015/lib/components/commands/command.component.js +0 -38
  181. package/esm2015/lib/components/commands/command.component.js.map +0 -1
  182. package/esm2015/lib/components/commands/command.component.metadata.json +0 -1
  183. package/esm2015/lib/components/commands/command.component.ngfactory.js.map +0 -1
  184. package/esm2015/lib/components/commands/popup-menu/abstract-popup-menu.component.js +0 -57
  185. package/esm2015/lib/components/commands/popup-menu/abstract-popup-menu.component.js.map +0 -1
  186. package/esm2015/lib/components/commands/popup-menu/abstract-popup-menu.component.metadata.json +0 -1
  187. package/esm2015/lib/components/commands/popup-menu/abstract-popup-menu.component.ngfactory.js.map +0 -1
  188. package/esm2015/lib/components/commands/popup-menu/more-menu.component.js +0 -40
  189. package/esm2015/lib/components/commands/popup-menu/more-menu.component.js.map +0 -1
  190. package/esm2015/lib/components/commands/popup-menu/more-menu.component.metadata.json +0 -1
  191. package/esm2015/lib/components/commands/popup-menu/more-menu.component.ngfactory.js.map +0 -1
  192. package/esm2015/lib/components/commands/popup-menu/popup-menu.component.js +0 -49
  193. package/esm2015/lib/components/commands/popup-menu/popup-menu.component.js.map +0 -1
  194. package/esm2015/lib/components/commands/popup-menu/popup-menu.component.metadata.json +0 -1
  195. package/esm2015/lib/components/commands/popup-menu/popup-menu.component.ngfactory.js.map +0 -1
  196. package/esm2015/lib/components/commands/popup-menu-renderer/popup-menu-renderer.component.js +0 -62
  197. package/esm2015/lib/components/commands/popup-menu-renderer/popup-menu-renderer.component.js.map +0 -1
  198. package/esm2015/lib/components/commands/popup-menu-renderer/popup-menu-renderer.component.metadata.json +0 -1
  199. package/esm2015/lib/components/commands/popup-menu-renderer/popup-menu-renderer.component.ngfactory.js.map +0 -1
  200. package/esm2015/lib/components/commands/popup-menu-renderer/popup-menu-renderer.component.scss.shim.ngstyle.js.map +0 -1
  201. package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.js +0 -70
  202. package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.js.map +0 -1
  203. package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.metadata.json +0 -1
  204. package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.ngfactory.js.map +0 -1
  205. package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.scss.shim.ngstyle.js.map +0 -1
  206. package/esm2015/lib/components/table/cell-portal-ref.js.map +0 -1
  207. package/esm2015/lib/components/table/mutable-cell-renderer.js +0 -1
  208. package/esm2015/lib/components/table/mutable-cell-renderer.js.map +0 -1
  209. package/esm2015/lib/components/table/mutable-cell-renderer.metadata.json +0 -1
  210. package/esm2015/lib/components/table/table-row-menu/table-row-menu.component.js +0 -82
  211. package/esm2015/lib/components/table/table-row-menu/table-row-menu.component.js.map +0 -1
  212. package/esm2015/lib/components/table/table-row-menu/table-row-menu.component.metadata.json +0 -1
  213. package/esm2015/lib/components/table/table-row-menu/table-row-menu.component.ngfactory.js.map +0 -1
  214. package/esm5/lib/components/commands/command-bar.component.js +0 -31
  215. package/esm5/lib/components/commands/command-bar.component.js.map +0 -1
  216. package/esm5/lib/components/commands/command-bar.component.ngfactory.js.map +0 -1
  217. package/esm5/lib/components/commands/command-container.js +0 -30
  218. package/esm5/lib/components/commands/command-container.js.map +0 -1
  219. package/esm5/lib/components/commands/command-face/command-face.component.js +0 -122
  220. package/esm5/lib/components/commands/command-face/command-face.component.js.map +0 -1
  221. package/esm5/lib/components/commands/command-face/command-face.component.ngfactory.js.map +0 -1
  222. package/esm5/lib/components/commands/command-face/command-face.component.scss.ngstyle.js.map +0 -1
  223. package/esm5/lib/components/commands/command-face.js +0 -103
  224. package/esm5/lib/components/commands/command-face.js.map +0 -1
  225. package/esm5/lib/components/commands/command.component.js +0 -41
  226. package/esm5/lib/components/commands/command.component.js.map +0 -1
  227. package/esm5/lib/components/commands/command.component.ngfactory.js.map +0 -1
  228. package/esm5/lib/components/commands/popup-menu/abstract-popup-menu.component.js +0 -64
  229. package/esm5/lib/components/commands/popup-menu/abstract-popup-menu.component.js.map +0 -1
  230. package/esm5/lib/components/commands/popup-menu/abstract-popup-menu.component.ngfactory.js.map +0 -1
  231. package/esm5/lib/components/commands/popup-menu/more-menu.component.js +0 -35
  232. package/esm5/lib/components/commands/popup-menu/more-menu.component.js.map +0 -1
  233. package/esm5/lib/components/commands/popup-menu/more-menu.component.ngfactory.js.map +0 -1
  234. package/esm5/lib/components/commands/popup-menu/popup-menu.component.js +0 -45
  235. package/esm5/lib/components/commands/popup-menu/popup-menu.component.js.map +0 -1
  236. package/esm5/lib/components/commands/popup-menu/popup-menu.component.ngfactory.js.map +0 -1
  237. package/esm5/lib/components/commands/popup-menu-renderer/popup-menu-renderer.component.js +0 -66
  238. package/esm5/lib/components/commands/popup-menu-renderer/popup-menu-renderer.component.js.map +0 -1
  239. package/esm5/lib/components/commands/popup-menu-renderer/popup-menu-renderer.component.ngfactory.js.map +0 -1
  240. package/esm5/lib/components/commands/popup-menu-renderer/popup-menu-renderer.component.scss.shim.ngstyle.js.map +0 -1
  241. package/esm5/lib/components/forms/autocomplete-input/autocomplete-input.component.js +0 -73
  242. package/esm5/lib/components/forms/autocomplete-input/autocomplete-input.component.js.map +0 -1
  243. package/esm5/lib/components/forms/autocomplete-input/autocomplete-input.component.ngfactory.js.map +0 -1
  244. package/esm5/lib/components/forms/autocomplete-input/autocomplete-input.component.scss.shim.ngstyle.js.map +0 -1
  245. package/esm5/lib/components/table/cell-portal-ref.js.map +0 -1
  246. package/esm5/lib/components/table/mutable-cell-renderer.js +0 -1
  247. package/esm5/lib/components/table/mutable-cell-renderer.js.map +0 -1
  248. package/esm5/lib/components/table/table-row-menu/table-row-menu.component.js +0 -66
  249. package/esm5/lib/components/table/table-row-menu/table-row-menu.component.js.map +0 -1
  250. package/esm5/lib/components/table/table-row-menu/table-row-menu.component.ngfactory.js.map +0 -1
  251. package/lib/components/commands/command-bar.component.d.ts +0 -10
  252. package/lib/components/commands/command-container.d.ts +0 -15
  253. package/lib/components/commands/command-face/command-face.component.d.ts +0 -29
  254. package/lib/components/commands/command-face.d.ts +0 -24
  255. package/lib/components/commands/command.component.d.ts +0 -15
  256. package/lib/components/commands/popup-menu/abstract-popup-menu.component.d.ts +0 -18
  257. package/lib/components/commands/popup-menu/more-menu.component.d.ts +0 -9
  258. package/lib/components/commands/popup-menu/popup-menu.component.d.ts +0 -14
  259. package/lib/components/commands/popup-menu-renderer/popup-menu-renderer.component.d.ts +0 -21
  260. package/lib/components/forms/autocomplete-input/autocomplete-input.component.d.ts +0 -25
  261. package/lib/components/table/mutable-cell-renderer.d.ts +0 -6
  262. package/lib/components/table/table-row-menu/table-row-menu.component.d.ts +0 -25
@@ -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/icon'), require('@angular/material/menu'), require('@angular/material/table'), require('@angular/material/tooltip'), require('@fortawesome/angular-fontawesome'), require('@fortawesome/free-solid-svg-icons'), require('@coolon/pectin'), require('@typescript-plus/fast-memoize-decorator/dist/src'), require('lodash'), require('typescript-string-enums'), require('@coolon/typescript-utilities'), require('immer'), require('@angular/flex-layout'), require('@angular/material/dialog'), require('@angular/router'), require('@angular/cdk/overlay'), require('resize-observer-polyfill'), require('@angular/material/progress-spinner'), require('@angular/material/list'), require('@typescript-plus/fast-memoize-decorator'), require('reflect-metadata'), require('@angular/animations'), require('rxjs')) :
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/icon', '@angular/material/menu', '@angular/material/table', '@angular/material/tooltip', '@fortawesome/angular-fontawesome', '@fortawesome/free-solid-svg-icons', '@coolon/pectin', '@typescript-plus/fast-memoize-decorator/dist/src', 'lodash', 'typescript-string-enums', '@coolon/typescript-utilities', 'immer', '@angular/flex-layout', '@angular/material/dialog', '@angular/router', '@angular/cdk/overlay', 'resize-observer-polyfill', '@angular/material/progress-spinner', '@angular/material/list', '@typescript-plus/fast-memoize-decorator', 'reflect-metadata', '@angular/animations', 'rxjs'], factory) :
4
- (global = 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.icon, global.ng.material.menu, global.ng.material.table, global.ng.material.tooltip, global.angularFontawesome, global.freeSolidSvgIcons, global.pectin, global.src, global.___default, global.typescriptStringEnums, global.typescriptUtilities, global.produce, global.ng.flexLayout, global.ng.material.dialog, global.ng.router, global.ng.cdk.overlay, global.ResizeObserver, global.ng.material.progressSpinner, global.ng.material.list, global.fastMemoizeDecorator, null, global.ng.animations, global.rxjs));
5
- }(this, (function (exports, common, core, forms, formField, input, select, tabs, animations, portal, scrolling, autocomplete, button, checkbox, icon, menu, table, tooltip, angularFontawesome, freeSolidSvgIcons, pectin, src, ___default, typescriptStringEnums, typescriptUtilities, produce, flexLayout, dialog, router, overlay, ResizeObserver, progressSpinner, list, fastMemoizeDecorator, reflectMetadata, animations$1, rxjs) { '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/button'), require('@angular/material/checkbox'), require('@angular/material/icon'), require('@angular/material/table'), require('@coolon/pectin'), require('@coolon/typescript-utilities'), require('@typescript-plus/fast-memoize-decorator/dist/src'), require('lodash'), require('immer'), require('@fortawesome/angular-fontawesome'), require('@fortawesome/free-solid-svg-icons'), require('@angular/material/tooltip'), require('@angular/flex-layout'), require('@angular/material/dialog'), require('@angular/router'), require('@angular/cdk/overlay'), require('resize-observer-polyfill'), require('@angular/material/progress-spinner'), require('@angular/material/list'), require('@typescript-plus/fast-memoize-decorator'), require('reflect-metadata'), require('@angular/animations'), require('rxjs')) :
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/button', '@angular/material/checkbox', '@angular/material/icon', '@angular/material/table', '@coolon/pectin', '@coolon/typescript-utilities', '@typescript-plus/fast-memoize-decorator/dist/src', 'lodash', 'immer', '@fortawesome/angular-fontawesome', '@fortawesome/free-solid-svg-icons', '@angular/material/tooltip', '@angular/flex-layout', '@angular/material/dialog', '@angular/router', '@angular/cdk/overlay', 'resize-observer-polyfill', '@angular/material/progress-spinner', '@angular/material/list', '@typescript-plus/fast-memoize-decorator', 'reflect-metadata', '@angular/animations', 'rxjs'], factory) :
4
+ (global = 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.button, global.ng.material.checkbox, global.ng.material.icon, global.ng.material.table, global.pectin, global.typescriptUtilities, global.src, global.___default, global.produce, global.angularFontawesome, global.freeSolidSvgIcons, global.ng.material.tooltip, global.ng.flexLayout, global.ng.material.dialog, global.ng.router, global.ng.cdk.overlay, global.ResizeObserver, global.ng.material.progressSpinner, global.ng.material.list, global.fastMemoizeDecorator, null, global.ng.animations, global.rxjs));
5
+ }(this, (function (exports, common, core, forms, formField, input, select, tabs, animations, portal, scrolling, button, checkbox, icon, table, pectin, typescriptUtilities, src, ___default, produce, angularFontawesome, freeSolidSvgIcons, tooltip, flexLayout, dialog, router, overlay, ResizeObserver, progressSpinner, list, fastMemoizeDecorator, reflectMetadata, animations$1, rxjs) { 'use strict';
6
6
 
7
7
  var ___default__default = 'default' in ___default ? ___default['default'] : ___default;
8
8
  produce = produce && Object.prototype.hasOwnProperty.call(produce, 'default') ? produce['default'] : produce;
@@ -578,501 +578,13 @@
578
578
  core.Component({
579
579
  selector: 'aup-card-container',
580
580
  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-icon 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",
581
- styles: [":root{--aup-default-padding:var(--default-padding, 18px);--aup-default-background:white;--command-face-icon-gap:8px;--aup-icon-width:24px;--aup-fa-icon-width:18px}.router-outlet-container>*{position:absolute;top:0;left:0;bottom:0;right:0}[no-tab-header]>mat-tab-header{display:none}[full-height-tabs] .mat-tab-body-wrapper,mat-tab-group.full-height-tabs .mat-tab-body-wrapper{flex:1}[full-height-tabs] .mat-tab-body-wrapper .mat-tab-body-content,[full-height-tabs] .mat-tab-body-wrapper mat-tab-body,mat-tab-group.full-height-tabs .mat-tab-body-wrapper .mat-tab-body-content,mat-tab-group.full-height-tabs .mat-tab-body-wrapper mat-tab-body{display:flex;flex-direction:column;justify-content:stretch}.dialog-interaction-context{max-width:95vw!important;max-height:95vh!important}.dialog-interaction-context mat-dialog-container{max-width:95vw!important;max-height:95vh!important;padding:0}.aup-popup-interaction-panel{background:var(--aup-default-background,#fff);box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12);transition:box-shadow 280ms cubic-bezier(.4,0,.2,1)}.aup-input-activity{padding:calc(var(--aup-default-padding)/2)}.aup-input-component{display:block}.aup-input-component input,.aup-input-component mat-form-field{width:100%}.aup-input-component input mat-hint.faux-error,.aup-input-component mat-form-field mat-hint.faux-error{color:#f44336}.aup-input-component.dense mat-form-field .mat-form-field-infix{border-top:none}.aup-input-component.dense mat-form-field .mat-form-field-flex{padding-top:0}.aup-input-component.dense mat-form-field .mat-form-field-wrapper{padding-bottom:0;border-bottom:0}.aup-input-component.dense mat-form-field .mat-form-field-underline{bottom:0}.aup-input-component.dense mat-form-field.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label-wrapper{display:none}.aup-input-component.dense mat-form-field.mat-form-field-appearance-standard.mat-form-field-has-label .mat-select:not(.mat-select-empty) .mat-select-arrow-wrapper{transform:translateY(0)}aup-table-cell-renderer>.aup-input-component .mat-form-field-flex{padding-top:0}aup-table-cell-renderer>.aup-input-component .mat-form-field-infix{width:0}aup-table-cell-renderer>.aup-input-component .mat-form-field-label-wrapper{display:none}aup-table{--default-column-gap:var(--column-gap, 24px);--resolved-row-hover-background-color:var(--row-hover-background-color, rgba(0, 0, 0, 0.05))}aup-table .mat-table td.mat-cell:first-of-type,aup-table .mat-table td.mat-footer-cell:first-of-type,aup-table .mat-table th.mat-header-cell:first-of-type{padding-left:0}aup-table .mat-table tr.enable-hover:hover{background-color:var(--resolved-row-hover-background-color)}aup-table .mat-table td.enable-cursor{cursor:pointer}aup-table aup-table-cell-renderer,aup-table aup-table-header-cell-renderer{display:flex;flex-direction:column;align-items:stretch;justify-content:center;height:100%;min-height:47px}aup-table aup-table-cell-renderer.first-column,aup-table aup-table-cell-renderer:not(.first-column),aup-table aup-table-header-cell-renderer.first-column,aup-table aup-table-header-cell-renderer:not(.first-column){padding-left:var(--default-column-gap)}aup-table aup-table-cell-renderer.fillCell{justify-content:stretch;padding-left:0!important}aup-table aup-table-cell-renderer.padChild>:first-child{padding-left:var(--default-column-gap);flex:1}aup-icon{--fa-icon-offset:calc((var(--aup-icon-width) - var(--aup-fa-icon-width)) / 2);position:relative}aup-icon fa-icon .svg-inline--fa{position:absolute;top:var(--fa-icon-offset);left:var(--fa-icon-offset);width:var(--aup-fa-icon-width)!important;height:var(--aup-fa-icon-width)!important}.mat-menu-panel aup-icon .svg-inline--fa{opacity:.54}: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:-ms-grid;display:grid;grid-template-columns:repeat(auto-fill,var(--resolved-card-width));grid-template-rows:repeat(auto-fit,minmax(0,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:rgba(255,255,255,.8);transition:280ms cubic-bezier(.4,0,.2,1)}.add-card-container mat-icon{font-size:200%}.add-card-container:hover{transition:280ms 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}"]
581
+ styles: [":root{--aup-default-padding:var(--default-padding, 18px);--aup-default-background:white}.router-outlet-container>*{position:absolute;top:0;left:0;bottom:0;right:0}[no-tab-header]>mat-tab-header{display:none}[full-height-tabs] .mat-tab-body-wrapper,mat-tab-group.full-height-tabs .mat-tab-body-wrapper{flex:1}[full-height-tabs] .mat-tab-body-wrapper .mat-tab-body-content,[full-height-tabs] .mat-tab-body-wrapper mat-tab-body,mat-tab-group.full-height-tabs .mat-tab-body-wrapper .mat-tab-body-content,mat-tab-group.full-height-tabs .mat-tab-body-wrapper mat-tab-body{display:flex;flex-direction:column;justify-content:stretch}.dialog-interaction-context{max-width:95vw!important;max-height:95vh!important}.dialog-interaction-context mat-dialog-container{max-width:95vw!important;max-height:95vh!important;padding:0}.aup-popup-interaction-panel{background:var(--aup-default-background,#fff);box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12);transition:box-shadow 280ms cubic-bezier(.4,0,.2,1)}.aup-input-activity{padding:calc(var(--aup-default-padding)/2)}.aup-input-component{display:block}.aup-input-component input,.aup-input-component mat-form-field{width:100%}.aup-input-component input mat-hint.faux-error,.aup-input-component mat-form-field mat-hint.faux-error{color:#f44336}.aup-input-component.dense mat-form-field .mat-form-field-infix{border-top:none}.aup-input-component.dense mat-form-field .mat-form-field-flex{padding-top:0}.aup-input-component.dense mat-form-field .mat-form-field-wrapper{padding-bottom:0;border-bottom:0}.aup-input-component.dense mat-form-field .mat-form-field-underline{bottom:0}.aup-input-component.dense mat-form-field.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label-wrapper{display:none}aup-table-cell-renderer>.aup-input-component .mat-form-field-flex{padding-top:0}aup-table-cell-renderer>.aup-input-component .mat-form-field-infix{width:0}aup-table-cell-renderer>.aup-input-component .mat-form-field-label-wrapper{display:none}aup-table{--default-column-gap:var(--column-gap, 24px);--resolved-row-hover-background-color:var(--row-hover-background-color, rgba(0, 0, 0, 0.05))}aup-table .mat-table td.mat-cell:first-of-type,aup-table .mat-table td.mat-footer-cell:first-of-type,aup-table .mat-table th.mat-header-cell:first-of-type{padding-left:0}aup-table .mat-table tr.enable-hover:hover{background-color:var(--resolved-row-hover-background-color)}aup-table .mat-table td.enable-cursor{cursor:pointer}aup-table aup-table-cell-renderer,aup-table aup-table-header-cell-renderer{display:flex;flex-direction:column;align-items:stretch;justify-content:center;height:100%;min-height:47px}aup-table aup-table-cell-renderer.first-column,aup-table aup-table-cell-renderer:not(.first-column),aup-table aup-table-header-cell-renderer.first-column,aup-table aup-table-header-cell-renderer:not(.first-column){padding-left:var(--default-column-gap)}aup-table aup-table-cell-renderer.fillCell{justify-content:stretch;padding-left:0!important}aup-table aup-table-cell-renderer.padChild>:first-child{padding-left:var(--default-column-gap);flex:1}: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:-ms-grid;display:grid;grid-template-columns:repeat(auto-fill,var(--resolved-card-width));grid-template-rows:repeat(auto-fit,minmax(0,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:rgba(255,255,255,.8);transition:280ms cubic-bezier(.4,0,.2,1)}.add-card-container mat-icon{font-size:200%}.add-card-container:hover{transition:280ms 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}"]
582
582
  }),
583
583
  __metadata("design:paramtypes", [])
584
584
  ], CardContainerComponent);
585
585
  return CardContainerComponent;
586
586
  }(DisposableComponent));
587
587
 
588
-
589
- (function (CommandFace) {
590
- var Position;
591
- (function (Position) {
592
- Position["START"] = "start";
593
- Position["END"] = "end";
594
- })(Position = CommandFace.Position || (CommandFace.Position = {}));
595
- var Adapter = /** @class */ (function () {
596
- function Adapter(face) {
597
- this.face = face;
598
- }
599
- Object.defineProperty(Adapter.prototype, "text", {
600
- get: function () {
601
- return ___default__default.isFunction(this.face.text) ? this.face.text() : undefined;
602
- },
603
- enumerable: true,
604
- configurable: true
605
- });
606
- Object.defineProperty(Adapter.prototype, "icon", {
607
- get: function () {
608
- return ___default__default.isFunction(this.face.icon) ? this.face.icon() : undefined;
609
- },
610
- enumerable: true,
611
- configurable: true
612
- });
613
- Object.defineProperty(Adapter.prototype, "iconPosition", {
614
- get: function () {
615
- return ___default__default.isFunction(this.face.iconPosition) ? this.face.iconPosition() : undefined;
616
- },
617
- enumerable: true,
618
- configurable: true
619
- });
620
- Object.defineProperty(Adapter.prototype, "tooltip", {
621
- get: function () {
622
- return ___default__default.isFunction(this.face.tooltip) ? this.face.tooltip() : undefined;
623
- },
624
- enumerable: true,
625
- configurable: true
626
- });
627
- Object.defineProperty(Adapter.prototype, "iconPositionStart", {
628
- get: function () {
629
- return this.iconPosition === CommandFace.Position.START;
630
- },
631
- enumerable: true,
632
- configurable: true
633
- });
634
- Object.defineProperty(Adapter.prototype, "iconPositionEnd", {
635
- get: function () {
636
- return this.iconPosition === CommandFace.Position.END;
637
- },
638
- enumerable: true,
639
- configurable: true
640
- });
641
- Object.defineProperty(Adapter.prototype, "destructive", {
642
- get: function () {
643
- return ___default__default.isFunction(this.face.destructive) ? this.face.destructive() : false;
644
- },
645
- enumerable: true,
646
- configurable: true
647
- });
648
- __decorate([
649
- src.Memoize(),
650
- __metadata("design:type", Object),
651
- __metadata("design:paramtypes", [])
652
- ], Adapter.prototype, "text", null);
653
- __decorate([
654
- src.Memoize(),
655
- __metadata("design:type", Object),
656
- __metadata("design:paramtypes", [])
657
- ], Adapter.prototype, "icon", null);
658
- __decorate([
659
- src.Memoize(),
660
- __metadata("design:type", Object),
661
- __metadata("design:paramtypes", [])
662
- ], Adapter.prototype, "iconPosition", null);
663
- __decorate([
664
- src.Memoize(),
665
- __metadata("design:type", Object),
666
- __metadata("design:paramtypes", [])
667
- ], Adapter.prototype, "tooltip", null);
668
- __decorate([
669
- src.Memoize(),
670
- __metadata("design:type", Boolean),
671
- __metadata("design:paramtypes", [])
672
- ], Adapter.prototype, "iconPositionStart", null);
673
- __decorate([
674
- src.Memoize(),
675
- __metadata("design:type", Boolean),
676
- __metadata("design:paramtypes", [])
677
- ], Adapter.prototype, "iconPositionEnd", null);
678
- __decorate([
679
- src.Memoize(),
680
- __metadata("design:type", Boolean),
681
- __metadata("design:paramtypes", [])
682
- ], Adapter.prototype, "destructive", null);
683
- return Adapter;
684
- }());
685
- CommandFace.Adapter = Adapter;
686
- })(exports.CommandFace || (exports.CommandFace = {}));
687
-
688
- var CommandContainer = /** @class */ (function (_super) {
689
- __extends(CommandContainer, _super);
690
- function CommandContainer() {
691
- var _this = _super.call(this) || this;
692
- _this._commandRegistrations = new pectin.MutableListModel();
693
- return _this;
694
- }
695
- Object.defineProperty(CommandContainer.prototype, "commandRegistrations", {
696
- get: function () {
697
- return this._commandRegistrations.readonly;
698
- },
699
- enumerable: true,
700
- configurable: true
701
- });
702
- CommandContainer.prototype.registerCommand = function (command, face) {
703
- var _this = this;
704
- var registration = { command: command, faceAdapter: new exports.CommandFace.Adapter(face) };
705
- this._commandRegistrations.push(registration);
706
- return pectin.Disposable.disposableThatRuns(function () { return _this._commandRegistrations.remove(registration); });
707
- };
708
- CommandContainer.prototype.getDefaultIconPosition = function () {
709
- return exports.CommandFace.Position.START;
710
- };
711
- return CommandContainer;
712
- }(pectin.GarbageCollector));
713
-
714
- /**
715
- *
716
- */
717
- var CommandBarComponent = /** @class */ (function (_super) {
718
- __extends(CommandBarComponent, _super);
719
- function CommandBarComponent() {
720
- return _super.call(this) || this;
721
- }
722
- CommandBarComponent_1 = CommandBarComponent;
723
- CommandBarComponent.prototype.ngOnInit = function () {
724
- };
725
- CommandBarComponent.prototype.getButtonColor = function (registration) {
726
- return registration.faceAdapter.destructive ? 'warn' : undefined;
727
- };
728
- var CommandBarComponent_1;
729
- CommandBarComponent = CommandBarComponent_1 = __decorate([
730
- core.Component({
731
- selector: 'aup-command-bar',
732
- template: "\n <ng-container *ngFor=\"let registration of commandRegistrations.value\">\n <button *ngIf=\"registration.faceAdapter.icon && !registration.faceAdapter.text\"\n mat-icon-button\n [color]=\"getButtonColor(registration)\"\n [pectinCommand]=\"registration.command\"\n [matTooltip]=\"registration.faceAdapter.tooltip\"\n >\n <aup-command-face [face]=\"registration.faceAdapter.face\"></aup-command-face>\n </button>\n <button *ngIf=\"registration.faceAdapter.text\"\n [color]=\"getButtonColor(registration)\"\n mat-button\n [pectinCommand]=\"registration.command\"\n [matTooltip]=\"registration.tooltip\"\n >\n <aup-command-face [face]=\"registration.faceAdapter.face\"></aup-command-face>\n </button>\n </ng-container>\n ",
733
- providers: [{ provide: CommandContainer, useExisting: core.forwardRef(function () { return CommandBarComponent_1; }) }],
734
- styles: [":host {\n display: inline-flex;\n flex-direction: row;\n align-items: center;\n }"]
735
- }),
736
- __metadata("design:paramtypes", [])
737
- ], CommandBarComponent);
738
- return CommandBarComponent;
739
- }(CommandContainer));
740
-
741
- /**
742
- *
743
- */
744
- var CommandFaceComponent = /** @class */ (function (_super) {
745
- __extends(CommandFaceComponent, _super);
746
- function CommandFaceComponent(commandContainer) {
747
- var _this = _super.call(this) || this;
748
- _this.commandContainer = commandContainer;
749
- _this.faceModel = new pectin.MutableValueModel();
750
- _this.ignoreIcon = false;
751
- _this.ignoreText = false;
752
- _this.includeMissingIconInLayout = false;
753
- 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;
754
- // overkill /c: when all you have is a hammer...
755
- var faceAdapter = chain(_this.faceModel).map(function (face) { return new exports.CommandFace.Adapter(face); });
756
- _this.iconModel = faceAdapter.pluck('icon');
757
- _this.textModel = faceAdapter.pluck('text');
758
- _this.positionModel = faceAdapter.pluck('iconPosition');
759
- _this.destructiveModel = faceAdapter.pluck('destructive');
760
- return _this;
761
- }
762
- Object.defineProperty(CommandFaceComponent.prototype, "requiresMissingIconInLayout", {
763
- get: function () {
764
- return this.includeMissingIconInLayout && !this.iconModel.value;
765
- },
766
- enumerable: true,
767
- configurable: true
768
- });
769
- CommandFaceComponent.prototype.ngOnInit = function () {
770
- };
771
- Object.defineProperty(CommandFaceComponent.prototype, "iconPosition", {
772
- get: function () {
773
- var _a, _b, _c;
774
- return (_c = (_a = this.positionModel.value) !== null && _a !== void 0 ? _a : (_b = this.commandContainer) === null || _b === void 0 ? void 0 : _b.getDefaultIconPosition()) !== null && _c !== void 0 ? _c : exports.CommandFace.Position.START;
775
- },
776
- enumerable: true,
777
- configurable: true
778
- });
779
- Object.defineProperty(CommandFaceComponent.prototype, "shouldIncludeIcon", {
780
- get: function () {
781
- return (!this.ignoreIcon && this.iconModel.value) || this.includeMissingIconInLayout;
782
- },
783
- enumerable: true,
784
- configurable: true
785
- });
786
- Object.defineProperty(CommandFaceComponent.prototype, "iconStart", {
787
- get: function () {
788
- return this.shouldIncludeIcon && this.iconPosition === exports.CommandFace.Position.START;
789
- },
790
- enumerable: true,
791
- configurable: true
792
- });
793
- Object.defineProperty(CommandFaceComponent.prototype, "iconEnd", {
794
- get: function () {
795
- return this.shouldIncludeIcon && this.iconPosition === exports.CommandFace.Position.END;
796
- },
797
- enumerable: true,
798
- configurable: true
799
- });
800
- Object.defineProperty(CommandFaceComponent.prototype, "text", {
801
- get: function () {
802
- return this.ignoreText ? undefined : this.textModel.value;
803
- },
804
- enumerable: true,
805
- configurable: true
806
- });
807
- Object.defineProperty(CommandFaceComponent.prototype, "destructive", {
808
- get: function () {
809
- return this.destructiveModel.value;
810
- },
811
- enumerable: true,
812
- configurable: true
813
- });
814
- CommandFaceComponent.ctorParameters = function () { return [
815
- { type: CommandContainer, decorators: [{ type: core.Optional }] }
816
- ]; };
817
- __decorate([
818
- core.Input('face'), pectin.StoreInValueModel('faceModel'),
819
- __metadata("design:type", Object)
820
- ], CommandFaceComponent.prototype, "_rawFace", void 0);
821
- __decorate([
822
- core.Input(),
823
- __metadata("design:type", Object)
824
- ], CommandFaceComponent.prototype, "ignoreIcon", void 0);
825
- __decorate([
826
- core.Input(),
827
- __metadata("design:type", Object)
828
- ], CommandFaceComponent.prototype, "ignoreText", void 0);
829
- __decorate([
830
- core.Input(),
831
- __metadata("design:type", Object)
832
- ], CommandFaceComponent.prototype, "includeMissingIconInLayout", void 0);
833
- __decorate([
834
- core.HostBinding('class.hide-icon'),
835
- __metadata("design:type", Object),
836
- __metadata("design:paramtypes", [])
837
- ], CommandFaceComponent.prototype, "requiresMissingIconInLayout", null);
838
- __decorate([
839
- core.HostBinding('class.destructive'),
840
- __metadata("design:type", Boolean),
841
- __metadata("design:paramtypes", [])
842
- ], CommandFaceComponent.prototype, "destructive", null);
843
- CommandFaceComponent = __decorate([
844
- core.Component({
845
- selector: 'aup-command-face',
846
- template: "<aup-icon *ngIf=\"iconStart\" [icon]=\"iconModel.value\"></aup-icon>\n<span *ngIf=\"this.text\">{{this.text}}</span>\n<aup-icon *ngIf=\"iconEnd\" [icon]=\"iconModel.value\"></aup-icon>\n",
847
- encapsulation: core.ViewEncapsulation.None,
848
- styles: ["aup-command-face{--icon-gap:var(--command-face-icon-gap);display:inline-flex;flex-direction:row;align-items:center}aup-command-face *+*{margin-left:var(--icon-gap)}aup-command-face.hide-icon aup-icon{visibility:hidden}"]
849
- }),
850
- __param(0, core.Optional()),
851
- __metadata("design:paramtypes", [CommandContainer])
852
- ], CommandFaceComponent);
853
- return CommandFaceComponent;
854
- }(DisposableComponent));
855
-
856
- /**
857
- *
858
- */
859
- var CommandComponent = /** @class */ (function (_super) {
860
- __extends(CommandComponent, _super);
861
- function CommandComponent(commandContainer) {
862
- var _this = _super.call(this) || this;
863
- _this.commandContainer = commandContainer;
864
- return _this;
865
- }
866
- CommandComponent.prototype.ngOnInit = function () {
867
- this.registerDisposable(this.commandContainer.registerCommand(this.command, this.face));
868
- };
869
- CommandComponent.ctorParameters = function () { return [
870
- { type: CommandContainer }
871
- ]; };
872
- __decorate([
873
- core.Input(), pectin.TrackExternal(),
874
- __metadata("design:type", pectin.Command)
875
- ], CommandComponent.prototype, "command", void 0);
876
- __decorate([
877
- core.Input(),
878
- __metadata("design:type", Object)
879
- ], CommandComponent.prototype, "face", void 0);
880
- CommandComponent = __decorate([
881
- core.Component({
882
- selector: 'aup-command',
883
- template: ""
884
- }),
885
- __metadata("design:paramtypes", [CommandContainer])
886
- ], CommandComponent);
887
- return CommandComponent;
888
- }(DisposableComponent));
889
-
890
- /**
891
- *
892
- */
893
- var PopupMenuRendererComponent = /** @class */ (function (_super) {
894
- __extends(PopupMenuRendererComponent, _super);
895
- function PopupMenuRendererComponent() {
896
- var _this = _super.call(this) || this;
897
- _this.xPosition = 'after';
898
- _this.yPosition = 'below';
899
- _this.commandExecuted = new core.EventEmitter();
900
- 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;
901
- var registrations = chain(_this.commandRegistrations);
902
- var iconCount = registrations.select(function (r) { return !!r.faceAdapter.icon; }).count();
903
- _this.hasMixedIcons = valueOf.all(iconCount.isGreaterThan(0), iconCount.doesNotEqual(registrations.length)).areTruthy();
904
- return _this;
905
- }
906
- PopupMenuRendererComponent.prototype.ngOnInit = function () {
907
- };
908
- PopupMenuRendererComponent.prototype.getPopupMenuCommandFor = function (item) {
909
- var _this = this;
910
- var when = pectin.Dsl.disposeWith(this).when;
911
- when(item.command.busy).becomesFalsey(function () {
912
- _this.commandExecuted.emit();
913
- });
914
- return item.command;
915
- };
916
- PopupMenuRendererComponent.prototype.getButtonColor = function (registration) {
917
- return registration.faceAdapter.destructive ? 'warn' : undefined;
918
- };
919
- __decorate([
920
- core.Input(), pectin.TrackExternal(),
921
- __metadata("design:type", pectin.ListModel)
922
- ], PopupMenuRendererComponent.prototype, "commandRegistrations", void 0);
923
- __decorate([
924
- core.Input(),
925
- __metadata("design:type", String)
926
- ], PopupMenuRendererComponent.prototype, "xPosition", void 0);
927
- __decorate([
928
- core.Input(),
929
- __metadata("design:type", String)
930
- ], PopupMenuRendererComponent.prototype, "yPosition", void 0);
931
- __decorate([
932
- core.Output(),
933
- __metadata("design:type", Object)
934
- ], PopupMenuRendererComponent.prototype, "commandExecuted", void 0);
935
- __decorate([
936
- core.ViewChild(menu.MatMenu),
937
- __metadata("design:type", menu.MatMenu)
938
- ], PopupMenuRendererComponent.prototype, "matMenu", void 0);
939
- PopupMenuRendererComponent = __decorate([
940
- core.Component({
941
- selector: 'aup-popup-menu-renderer',
942
- template: "<mat-menu [xPosition]=\"xPosition\" [yPosition]=\"yPosition\" >\n <button *ngFor=\"let registration of commandRegistrations.value\"\n mat-menu-item\n [pectinCommand]=\"getPopupMenuCommandFor(registration)\"\n >\n <aup-command-face [face]=\"registration.faceAdapter.face\" [includeMissingIconInLayout]=\"hasMixedIcons.value\"></aup-command-face>\n </button>\n</mat-menu>\n",
943
- styles: [":host{display:inline-flex;flex-direction:row;align-items:center}"]
944
- }),
945
- __metadata("design:paramtypes", [])
946
- ], PopupMenuRendererComponent);
947
- return PopupMenuRendererComponent;
948
- }(DisposableComponent));
949
-
950
- /**
951
- *
952
- */
953
- var AbstractPopupMenuComponent = /** @class */ (function (_super) {
954
- __extends(AbstractPopupMenuComponent, _super);
955
- function AbstractPopupMenuComponent(cdr) {
956
- var _this = _super.call(this) || this;
957
- _this.cdr = cdr;
958
- _this.xPosition = 'after';
959
- _this.yPosition = 'below';
960
- return _this;
961
- }
962
- AbstractPopupMenuComponent.prototype.ngAfterViewInit = function () {
963
- this.cdr.detectChanges();
964
- };
965
- Object.defineProperty(AbstractPopupMenuComponent.prototype, "matMenuComponent", {
966
- get: function () {
967
- var _a;
968
- return (_a = this.popupMenu) === null || _a === void 0 ? void 0 : _a.matMenu;
969
- },
970
- enumerable: true,
971
- configurable: true
972
- });
973
- AbstractPopupMenuComponent.prototype.closeMenu = function () {
974
- this.menuTrigger.closeMenu();
975
- };
976
- AbstractPopupMenuComponent.prototype.getButtonColor = function (registration) {
977
- return registration.faceAdapter.destructive ? 'warn' : undefined;
978
- };
979
- AbstractPopupMenuComponent.ctorParameters = function () { return [
980
- { type: core.ChangeDetectorRef }
981
- ]; };
982
- __decorate([
983
- core.Input(),
984
- __metadata("design:type", String)
985
- ], AbstractPopupMenuComponent.prototype, "xPosition", void 0);
986
- __decorate([
987
- core.Input(),
988
- __metadata("design:type", String)
989
- ], AbstractPopupMenuComponent.prototype, "yPosition", void 0);
990
- __decorate([
991
- core.ViewChild(PopupMenuRendererComponent),
992
- __metadata("design:type", PopupMenuRendererComponent)
993
- ], AbstractPopupMenuComponent.prototype, "popupMenu", void 0);
994
- __decorate([
995
- core.ViewChild(menu.MatMenuTrigger),
996
- __metadata("design:type", menu.MatMenuTrigger)
997
- ], AbstractPopupMenuComponent.prototype, "menuTrigger", void 0);
998
- AbstractPopupMenuComponent = __decorate([
999
- core.Component({
1000
- selector: 'aup-abstract-popup-menu',
1001
- template: ''
1002
- }),
1003
- __metadata("design:paramtypes", [core.ChangeDetectorRef])
1004
- ], AbstractPopupMenuComponent);
1005
- return AbstractPopupMenuComponent;
1006
- }(CommandContainer));
1007
-
1008
- /**
1009
- *
1010
- */
1011
- var PopupMenuComponent = /** @class */ (function (_super) {
1012
- __extends(PopupMenuComponent, _super);
1013
- function PopupMenuComponent(cdr) {
1014
- var _this = _super.call(this, cdr) || this;
1015
- _this.faceModel = new pectin.MutableValueModel();
1016
- 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;
1017
- var faceAdapterModel = chain(_this.faceModel).map(function (face) { return new exports.CommandFace.Adapter(face); });
1018
- _this.faceTooltipModel = faceAdapterModel.pluck('tooltip');
1019
- return _this;
1020
- }
1021
- PopupMenuComponent_1 = PopupMenuComponent;
1022
- PopupMenuComponent.prototype.getTooltip = function () {
1023
- return this.faceTooltipModel.value;
1024
- };
1025
- PopupMenuComponent.prototype.ngOnInit = function () {
1026
- };
1027
- var PopupMenuComponent_1;
1028
- PopupMenuComponent.ctorParameters = function () { return [
1029
- { type: core.ChangeDetectorRef }
1030
- ]; };
1031
- __decorate([
1032
- core.Input(), pectin.StoreInValueModel('faceModel'),
1033
- __metadata("design:type", Object)
1034
- ], PopupMenuComponent.prototype, "face", void 0);
1035
- PopupMenuComponent = PopupMenuComponent_1 = __decorate([
1036
- core.Component({
1037
- selector: 'aup-popup-menu',
1038
- template: "\n <!-- we can only render the button after th popup menu has initialised and rendered it's menu component -->\n <button *ngIf=\"matMenuComponent\" mat-icon-button [matMenuTriggerFor]=\"matMenuComponent\" [matTooltip]=\"getTooltip()\">\n <aup-command-face [face]=\"face\"></aup-command-face>\n </button>\n <aup-popup-menu-renderer [commandRegistrations]=\"commandRegistrations\" [yPosition]=\"yPosition\"\n [xPosition]=\"xPosition\"\n (commandExecuted)=\"closeMenu()\"></aup-popup-menu-renderer>\n ",
1039
- providers: [{ provide: CommandContainer, useExisting: core.forwardRef(function () { return PopupMenuComponent_1; }) }]
1040
- }),
1041
- __metadata("design:paramtypes", [core.ChangeDetectorRef])
1042
- ], PopupMenuComponent);
1043
- return PopupMenuComponent;
1044
- }(AbstractPopupMenuComponent));
1045
-
1046
- /**
1047
- *
1048
- */
1049
- var MoreMenuComponent = /** @class */ (function (_super) {
1050
- __extends(MoreMenuComponent, _super);
1051
- function MoreMenuComponent(cdr) {
1052
- var _this = _super.call(this, cdr) || this;
1053
- _this.xPosition = "before"; // this should be the default unless overriden by the user.
1054
- return _this;
1055
- }
1056
- MoreMenuComponent_1 = MoreMenuComponent;
1057
- var MoreMenuComponent_1;
1058
- MoreMenuComponent.ctorParameters = function () { return [
1059
- { type: core.ChangeDetectorRef }
1060
- ]; };
1061
- __decorate([
1062
- core.Input(),
1063
- __metadata("design:type", String)
1064
- ], MoreMenuComponent.prototype, "tooltip", void 0);
1065
- MoreMenuComponent = MoreMenuComponent_1 = __decorate([
1066
- core.Component({
1067
- selector: 'aup-more-menu',
1068
- template: "\n <!-- we can only render the button after th popup menu has initialised and rendered it's menu component -->\n <button *ngIf=\"matMenuComponent\" mat-icon-button [matMenuTriggerFor]=\"matMenuComponent\" [matTooltip]=\"tooltip\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <aup-popup-menu-renderer [commandRegistrations]=\"commandRegistrations\"\n [xPosition]=\"xPosition\"\n [yPosition]=\"yPosition\"\n (commandExecuted)=\"closeMenu()\"></aup-popup-menu-renderer>\n ",
1069
- providers: [{ provide: CommandContainer, useExisting: core.forwardRef(function () { return MoreMenuComponent_1; }) }]
1070
- }),
1071
- __metadata("design:paramtypes", [core.ChangeDetectorRef])
1072
- ], MoreMenuComponent);
1073
- return MoreMenuComponent;
1074
- }(AbstractPopupMenuComponent));
1075
-
1076
588
  var FocusContainerComponent = /** @class */ (function (_super) {
1077
589
  __extends(FocusContainerComponent, _super);
1078
590
  function FocusContainerComponent(focusManager) {
@@ -1181,7 +693,6 @@
1181
693
  __extends(AbstractInputComponent, _super);
1182
694
  function AbstractInputComponent() {
1183
695
  var _this = _super.call(this) || this;
1184
- _this.onValueEditedListeners = new pectin.EventListenerList();
1185
696
  _this.dense = false;
1186
697
  // TODO: fix this.
1187
698
  // tslint:disable-next-line:no-output-native
@@ -1232,7 +743,7 @@
1232
743
  };
1233
744
  Object.defineProperty(AbstractInputComponent.prototype, "enabled", {
1234
745
  get: function () {
1235
- return this.formValueModel.enabled;
746
+ return this.inputModel.enabled;
1236
747
  },
1237
748
  enumerable: true,
1238
749
  configurable: true
@@ -1242,7 +753,7 @@
1242
753
  };
1243
754
  Object.defineProperty(AbstractInputComponent.prototype, "errorList", {
1244
755
  get: function () {
1245
- return this.formValueModel.errorList;
756
+ return this.inputModel.errorList;
1246
757
  },
1247
758
  enumerable: true,
1248
759
  configurable: true
@@ -1256,7 +767,7 @@
1256
767
  });
1257
768
  Object.defineProperty(AbstractInputComponent.prototype, "focusContext", {
1258
769
  get: function () {
1259
- return this.formValueModel.focusContext;
770
+ return this.inputModel.focusContext;
1260
771
  },
1261
772
  enumerable: true,
1262
773
  configurable: true
@@ -1275,13 +786,6 @@
1275
786
  enumerable: true,
1276
787
  configurable: true
1277
788
  });
1278
- /**
1279
- * Invokes the callback when this components value is changed by a user edit.
1280
- * @param callback
1281
- */
1282
- AbstractInputComponent.prototype.onValueEdited = function (callback) {
1283
- return this.onValueEditedListeners.add(callback);
1284
- };
1285
789
  __decorate([
1286
790
  core.Input(),
1287
791
  __metadata("design:type", String)
@@ -1371,7 +875,7 @@
1371
875
  var AbstractListInputComponent = /** @class */ (function (_super) {
1372
876
  __extends(AbstractListInputComponent, _super);
1373
877
  function AbstractListInputComponent() {
1374
- var _this = _super.call(this) || this;
878
+ var _this = _super !== null && _super.apply(this, arguments) || this;
1375
879
  /**
1376
880
  * A backing model for all our @Input() valueModel properties which should be defined as follows.
1377
881
  *
@@ -1383,61 +887,11 @@
1383
887
  * gets told it's an Object and can't scan for a base type annotated with @DelegateUsing(..).
1384
888
  */
1385
889
  // We have to register it as a disposable so it ditches any listeners when we're disposed.
1386
- _this.formValueModel = _this.registerDisposable(new pectin.Form.DelegatingListModel());
1387
- _this.componentListModel = new pectin.MutableListModel();
1388
- _this.setValueIsInProgress = new pectin.Guard();
1389
- _this.valueChange = new core.EventEmitter();
1390
- var _a = pectin.Dsl.disposeWith(_this), when = _a.when, valueOf = _a.valueOf, chain = _a.chain;
1391
- var binding = new pectin.Binding.Identity(_this.formValueModel, _this.componentListModel).writeRight();
1392
- var inExternalChange = valueOf.any(_this.setValueIsInProgress, chain(binding.direction).equals(pectin.Binding.Direction.RIGHT)).areTruthy();
1393
- when(_this.componentListModel).changes(function (is, was) {
1394
- _this.valueChange.emit(is);
1395
- _this.onValueEditedListeners.fire(function (l) { return l(is, was); });
1396
- }, {
1397
- initialValue: 'ignore',
1398
- // we never fire events during an external changes to the value. This allows
1399
- // the component to behave when used in the conventional angular
1400
- // fashion, i.e. [(value)]="..."
1401
- unless: inExternalChange
1402
- });
1403
- pectin.DebugContext.tag(_this.formValueModel, _this.constructor.name + ".formValueModel");
890
+ _this.inputModel = _this.registerDisposable(new pectin.Form.DelegatingListModel());
1404
891
  return _this;
1405
892
  }
1406
- Object.defineProperty(AbstractListInputComponent.prototype, "value", {
1407
- // We add support for simple direct display of values by allowing components to be used
1408
- // by `component.value = ...` This use of the component without a value model in tables
1409
- // and the like.
1410
- set: function (value) {
1411
- var _this = this;
1412
- this.setValueIsInProgress.whileTrue(function () {
1413
- if (!_this.listHolder) {
1414
- _this.listHolder = new pectin.MutableListModel(value);
1415
- _this.listModel = _this.listHolder;
1416
- }
1417
- else {
1418
- _this.listHolder.value = value;
1419
- }
1420
- });
1421
- },
1422
- enumerable: true,
1423
- configurable: true
1424
- });
1425
- __decorate([
1426
- core.Input(), pectin.TrackExternal({ delegateTo: 'formValueModel' }),
1427
- __metadata("design:type", Object)
1428
- ], AbstractListInputComponent.prototype, "listModel", void 0);
1429
- __decorate([
1430
- core.Input(),
1431
- __metadata("design:type", Array),
1432
- __metadata("design:paramtypes", [Array])
1433
- ], AbstractListInputComponent.prototype, "value", null);
1434
- __decorate([
1435
- core.Output(),
1436
- __metadata("design:type", Object)
1437
- ], AbstractListInputComponent.prototype, "valueChange", void 0);
1438
893
  AbstractListInputComponent = __decorate([
1439
- core.Component({ template: '' }),
1440
- __metadata("design:paramtypes", [])
894
+ core.Component({ template: '' })
1441
895
  ], AbstractListInputComponent);
1442
896
  return AbstractListInputComponent;
1443
897
  }(AbstractInputComponent));
@@ -1457,58 +911,9 @@
1457
911
  * gets told it's an Object and can't scan for a base type annotated with @DelegateUsing(..).
1458
912
  */
1459
913
  // We have to register it as a disposable so it ditches any listeners when we're disposed.
1460
- _this.formValueModel = _this.registerDisposable(new pectin.Form.DelegatingValueModel());
1461
- _this.setValueInProgress = new pectin.Guard();
1462
- _this.componentValueModel = new pectin.MutableValueModel();
1463
- _this.valueChange = new core.EventEmitter();
1464
- var _a = pectin.Dsl.disposeWith(_this), when = _a.when, chain = _a.chain, valueOf = _a.valueOf;
1465
- var binding = new pectin.Binding.Identity(_this.formValueModel, _this.componentValueModel).writeRight();
1466
- var inExternalChange = valueOf.any(_this.setValueInProgress, chain(binding.direction).equals(pectin.Binding.Direction.RIGHT)).areTruthy();
1467
- when(_this.componentValueModel).changes(function (is, was) {
1468
- _this.valueChange.emit(is);
1469
- _this.onValueEditedListeners.fire(function (l) { return l(is, was); });
1470
- }, {
1471
- initialValue: 'ignore',
1472
- // we never fire events during an external set value operation. This allows
1473
- // the component to behave when used in the conventional angular
1474
- // fashion, i.e. [(value)]="..."
1475
- unless: inExternalChange
1476
- });
1477
- pectin.DebugContext.tag(_this.formValueModel, _this.constructor.name + ".formValueModel");
914
+ _this.inputModel = _this.registerDisposable(new pectin.Form.DelegatingValueModel());
1478
915
  return _this;
1479
916
  }
1480
- Object.defineProperty(AbstractValueInputComponent.prototype, "value", {
1481
- // We add support for simple direct display of values by allowing components to be used
1482
- // by `component.value = ...` This use of the component without a value model in tables
1483
- // and the like.
1484
- set: function (value) {
1485
- var _this = this;
1486
- this.setValueInProgress.whileTrue(function () {
1487
- if (!_this.plainValueHolder) {
1488
- _this.plainValueHolder = new pectin.MutableValueModel(value);
1489
- _this.valueModel = _this.plainValueHolder;
1490
- }
1491
- else {
1492
- _this.plainValueHolder.value = value;
1493
- }
1494
- });
1495
- },
1496
- enumerable: true,
1497
- configurable: true
1498
- });
1499
- __decorate([
1500
- core.Input(), pectin.TrackExternal({ delegateTo: 'formValueModel' }),
1501
- __metadata("design:type", Object)
1502
- ], AbstractValueInputComponent.prototype, "valueModel", void 0);
1503
- __decorate([
1504
- core.Input(),
1505
- __metadata("design:type", Object),
1506
- __metadata("design:paramtypes", [Object])
1507
- ], AbstractValueInputComponent.prototype, "value", null);
1508
- __decorate([
1509
- core.Output(),
1510
- __metadata("design:type", Object)
1511
- ], AbstractValueInputComponent.prototype, "valueChange", void 0);
1512
917
  AbstractValueInputComponent = __decorate([
1513
918
  core.Component({ template: '' }),
1514
919
  __metadata("design:paramtypes", [])
@@ -1516,85 +921,20 @@
1516
921
  return AbstractValueInputComponent;
1517
922
  }(AbstractInputComponent));
1518
923
 
1519
- /**
1520
- * Using templates (not only supported for nil values:
1521
- * <aup-autocomplete-input [valueModel]="myModel" [options]="myOptions">
1522
- * <ng-template #nilOptionTemplate let-option>{{option.thePropertyYouWant}}</ng-template>
1523
- * </aup-autocomplete-input>
1524
- */
1525
- var AutocompleteInputComponent = /** @class */ (function (_super) {
1526
- __extends(AutocompleteInputComponent, _super);
1527
- function AutocompleteInputComponent() {
1528
- var _this = _super.call(this) || this;
1529
- _this.filterValue = new pectin.MutableValueModel();
1530
- _this.optionLabelFormat = function (option) { return (option && _this.optionLabel) ? option[_this.optionLabel] : option; };
1531
- 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;
1532
- var lowerCaseFilterValue = chain(_this.filterValue)
1533
- .map(function (v) { return ___default__default.isString(v) ? v.toLowerCase() : ''; });
1534
- _this.filteredOptions = chain(_this.optionsModel)
1535
- .select(function (option) {
1536
- return ___default__default.isEmpty(_this.filterValue.value) || _this.optionLabelFormat(option).toString().toLowerCase().includes(lowerCaseFilterValue.value);
1537
- }, { dependsOn: lowerCaseFilterValue });
1538
- return _this;
1539
- }
1540
- AutocompleteInputComponent.prototype.ngOnInit = function () {
1541
- };
1542
- AutocompleteInputComponent.prototype.formatOption = function (option) {
1543
- return this.optionLabelFormat(option);
1544
- };
1545
- AutocompleteInputComponent.prototype.updateFilter = function ($event) {
1546
- this.filterValue.value = $event;
1547
- };
1548
- AutocompleteInputComponent.prototype.onSelect = function ($event) {
1549
- this.valueModel.value = $event.option.value;
1550
- };
1551
- __decorate([
1552
- core.Input(), pectin.TrackExternal(),
1553
- __metadata("design:type", pectin.ListModel)
1554
- ], AutocompleteInputComponent.prototype, "optionsModel", void 0);
1555
- __decorate([
1556
- core.Input(), pectin.StoreInListModel('optionsModel'),
1557
- __metadata("design:type", Array)
1558
- ], AutocompleteInputComponent.prototype, "options", void 0);
1559
- __decorate([
1560
- core.Input(),
1561
- __metadata("design:type", Object)
1562
- ], AutocompleteInputComponent.prototype, "optionLabel", void 0);
1563
- __decorate([
1564
- core.Input(),
1565
- __metadata("design:type", Boolean)
1566
- ], AutocompleteInputComponent.prototype, "allowNil", void 0);
1567
- __decorate([
1568
- core.ContentChild('nilOptionTemplate'),
1569
- __metadata("design:type", core.TemplateRef)
1570
- ], AutocompleteInputComponent.prototype, "nilOptionTemplateRef", void 0);
1571
- __decorate([
1572
- core.Input(),
1573
- __metadata("design:type", Function)
1574
- ], AutocompleteInputComponent.prototype, "optionLabelFormat", void 0);
1575
- AutocompleteInputComponent = __decorate([
1576
- core.Component({
1577
- selector: 'aup-autocomplete-input',
1578
- 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",
1579
- styles: [":host{display:inline-block}mat-form-field{width:100%}"]
1580
- }),
1581
- __metadata("design:paramtypes", [])
1582
- ], AutocompleteInputComponent);
1583
- return AutocompleteInputComponent;
1584
- }(AbstractValueInputComponent));
1585
-
1586
924
  var CheckboxInputComponent = /** @class */ (function (_super) {
1587
925
  __extends(CheckboxInputComponent, _super);
1588
926
  function CheckboxInputComponent() {
1589
927
  var _this = _super.call(this) || this;
1590
- // @Input() @TrackExternal({ delegateTo: 'inputModel' })
1591
- // valueModel: Form.ValueModelBase<boolean> | IMutableValueModel<boolean>;
1592
928
  _this.color = 'accent';
1593
929
  _this.labelPosition = 'after';
1594
930
  return _this;
1595
931
  }
1596
932
  CheckboxInputComponent.prototype.ngOnInit = function () {
1597
933
  };
934
+ __decorate([
935
+ core.Input(), pectin.TrackExternal({ delegateTo: 'inputModel' }),
936
+ __metadata("design:type", Object)
937
+ ], CheckboxInputComponent.prototype, "valueModel", void 0);
1598
938
  __decorate([
1599
939
  core.Input(),
1600
940
  __metadata("design:type", String)
@@ -1606,7 +946,7 @@
1606
946
  CheckboxInputComponent = __decorate([
1607
947
  core.Component({
1608
948
  selector: 'aup-checkbox-input',
1609
- 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",
949
+ template: "<!-- TODO: add focus binding -->\n<mat-checkbox\n [(ngModel)]=\"valueModel.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",
1610
950
  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}"]
1611
951
  }),
1612
952
  __metadata("design:paramtypes", [])
@@ -1614,65 +954,20 @@
1614
954
  return CheckboxInputComponent;
1615
955
  }(AbstractValueInputComponent));
1616
956
 
1617
- /**
1618
- * Using templates:
1619
- * <aup-multiple-select-input [valueModel]="myModel" [options]="myOptions">
1620
- * <ng-template #optionTemplate let-option>{{option.thePropertyYouWant}}</ng-template>
1621
- * <ng-template #nilOptionTemplate let-option>{{option.thePropertyYouWant}}</ng-template>
1622
- * </aup-multiple-select_input>
1623
- */
1624
- var MultipleSelectInputComponent = /** @class */ (function (_super) {
1625
- __extends(MultipleSelectInputComponent, _super);
1626
- function MultipleSelectInputComponent() {
1627
- var _this = _super.call(this) || this;
1628
- _this.optionLabelFormat = function (option) { return (option && _this.optionLabel) ? option[_this.optionLabel] : option; };
1629
- return _this;
1630
- }
1631
- MultipleSelectInputComponent.prototype.ngOnInit = function () {
1632
- };
1633
- __decorate([
1634
- core.Input(), pectin.TrackExternal(),
1635
- __metadata("design:type", pectin.ListModel)
1636
- ], MultipleSelectInputComponent.prototype, "optionsModel", void 0);
1637
- __decorate([
1638
- core.Input(), pectin.StoreInListModel('optionsModel'),
1639
- __metadata("design:type", Array)
1640
- ], MultipleSelectInputComponent.prototype, "options", void 0);
1641
- __decorate([
1642
- core.Input(),
1643
- __metadata("design:type", Object)
1644
- ], MultipleSelectInputComponent.prototype, "optionLabel", void 0);
1645
- __decorate([
1646
- core.ContentChild('optionTemplate'),
1647
- __metadata("design:type", core.TemplateRef)
1648
- ], MultipleSelectInputComponent.prototype, "optionTemplateRef", void 0);
1649
- __decorate([
1650
- core.Input(),
1651
- __metadata("design:type", Function)
1652
- ], MultipleSelectInputComponent.prototype, "optionLabelFormat", void 0);
1653
- MultipleSelectInputComponent = __decorate([
1654
- core.Component({
1655
- selector: 'aup-multiple-select-input',
1656
- 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",
1657
- styles: [":host{display:inline-block}mat-form-field{width:100%}"]
1658
- }),
1659
- __metadata("design:paramtypes", [])
1660
- ], MultipleSelectInputComponent);
1661
- return MultipleSelectInputComponent;
1662
- }(AbstractListInputComponent));
1663
-
1664
957
  var NumberInputComponent = /** @class */ (function (_super) {
1665
958
  __extends(NumberInputComponent, _super);
1666
959
  function NumberInputComponent() {
1667
960
  var _this = _super.call(this) || this;
1668
- // @Input() @TrackExternal({ delegateTo: 'inputModel' })
1669
- // valueModel: Form.ValueModelBase<number> | IMutableValueModel<number>;
1670
961
  _this.min = Number.MIN_SAFE_INTEGER;
1671
962
  _this.max = Number.MAX_SAFE_INTEGER;
1672
963
  return _this;
1673
964
  }
1674
965
  NumberInputComponent.prototype.ngOnInit = function () {
1675
966
  };
967
+ __decorate([
968
+ core.Input(), pectin.TrackExternal({ delegateTo: 'inputModel' }),
969
+ __metadata("design:type", Object)
970
+ ], NumberInputComponent.prototype, "valueModel", void 0);
1676
971
  __decorate([
1677
972
  core.Input(),
1678
973
  __metadata("design:type", Object)
@@ -1684,7 +979,7 @@
1684
979
  NumberInputComponent = __decorate([
1685
980
  core.Component({
1686
981
  selector: 'aup-number-input',
1687
- template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input type=\"number\"\n 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 [min]=\"min\"\n [max]=\"max\"\n >\n <mat-hint *ngIf=\"hint && !dense\" >{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n",
982
+ template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input type=\"number\"\n matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"valueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [min]=\"min\"\n [max]=\"max\"\n >\n <mat-hint *ngIf=\"hint && !dense\" >{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n",
1688
983
  styles: [""]
1689
984
  }),
1690
985
  __metadata("design:paramtypes", [])
@@ -1694,17 +989,19 @@
1694
989
 
1695
990
  var PasswordInputComponent = /** @class */ (function (_super) {
1696
991
  __extends(PasswordInputComponent, _super);
1697
- // @Input() @TrackExternal({ delegateTo: 'inputModel' })
1698
- // valueModel: Form.ValueModelBase<string> | IMutableValueModel<string>;
1699
992
  function PasswordInputComponent() {
1700
993
  return _super.call(this) || this;
1701
994
  }
1702
995
  PasswordInputComponent.prototype.ngOnInit = function () {
1703
996
  };
997
+ __decorate([
998
+ core.Input(), pectin.TrackExternal({ delegateTo: 'inputModel' }),
999
+ __metadata("design:type", Object)
1000
+ ], PasswordInputComponent.prototype, "valueModel", void 0);
1704
1001
  PasswordInputComponent = __decorate([
1705
1002
  core.Component({
1706
1003
  selector: 'aup-password-input',
1707
- template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input type=\"password\"\n 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 >\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n\n",
1004
+ template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input type=\"password\"\n matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"valueModel.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</mat-form-field>\n\n",
1708
1005
  styles: [""]
1709
1006
  }),
1710
1007
  __metadata("design:paramtypes", [])
@@ -1716,7 +1013,6 @@
1716
1013
  * Using templates:
1717
1014
  * <aup-select-input [valueModel]="myModel" [options]="myOptions">
1718
1015
  * <ng-template #optionTemplate let-option>{{option.thePropertyYouWant}}</ng-template>
1719
- * <ng-template #nilOptionTemplate let-option>{{option.thePropertyYouWant}}</ng-template>
1720
1016
  * </aup-select_input>
1721
1017
  */
1722
1018
  var SelectInputComponent = /** @class */ (function (_super) {
@@ -1728,6 +1024,10 @@
1728
1024
  }
1729
1025
  SelectInputComponent.prototype.ngOnInit = function () {
1730
1026
  };
1027
+ __decorate([
1028
+ core.Input(), pectin.TrackExternal({ delegateTo: 'inputModel' }),
1029
+ __metadata("design:type", Object)
1030
+ ], SelectInputComponent.prototype, "valueModel", void 0);
1731
1031
  __decorate([
1732
1032
  core.Input(), pectin.TrackExternal(),
1733
1033
  __metadata("design:type", pectin.ListModel)
@@ -1759,7 +1059,7 @@
1759
1059
  SelectInputComponent = __decorate([
1760
1060
  core.Component({
1761
1061
  selector: 'aup-select-input',
1762
- 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",
1062
+ template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <mat-select placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"valueModel.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\">{{placeholder}}</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",
1763
1063
  styles: [":host{display:inline-block}mat-form-field{width:100%}"]
1764
1064
  }),
1765
1065
  __metadata("design:paramtypes", [])
@@ -1773,13 +1073,17 @@
1773
1073
  var _this = _super.call(this) || this;
1774
1074
  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;
1775
1075
  _this.clearCommand = pectin.Command.create(function () {
1776
- _this.componentValueModel.value = null;
1076
+ _this.valueModel.value = null;
1777
1077
  });
1778
- _this.clearCommand.disableWhile(chain.stringValue(_this.componentValueModel).isBlank());
1078
+ _this.clearCommand.disableWhile(chain.stringValue(_this.valueModel).isBlank());
1779
1079
  return _this;
1780
1080
  }
1781
1081
  StringInputComponent.prototype.ngOnInit = function () {
1782
1082
  };
1083
+ __decorate([
1084
+ core.Input(), pectin.TrackExternal({ delegateTo: 'inputModel' }),
1085
+ __metadata("design:type", Object)
1086
+ ], StringInputComponent.prototype, "valueModel", void 0);
1783
1087
  __decorate([
1784
1088
  core.Input(), pectin.TrackExternal({ defaultValue: false }),
1785
1089
  __metadata("design:type", pectin.ValueModel)
@@ -1791,7 +1095,7 @@
1791
1095
  StringInputComponent = __decorate([
1792
1096
  core.Component({
1793
1097
  selector: 'aup-string-input',
1794
- template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input 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 >\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\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",
1098
+ template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"valueModel.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 <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",
1795
1099
  styles: ["button[disabled]{visibility:hidden}"]
1796
1100
  }),
1797
1101
  __metadata("design:paramtypes", [])
@@ -1803,14 +1107,16 @@
1803
1107
  __extends(TextInputComponent, _super);
1804
1108
  function TextInputComponent() {
1805
1109
  var _this = _super.call(this) || this;
1806
- // @Input() @TrackExternal({ delegateTo: 'inputModel' })
1807
- // valueModel: Form.ValueModelBase<string> | IMutableValueModel<string>;
1808
1110
  _this.rows = 2;
1809
1111
  return _this;
1810
1112
  // const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
1811
1113
  }
1812
1114
  TextInputComponent.prototype.ngOnInit = function () {
1813
1115
  };
1116
+ __decorate([
1117
+ core.Input(), pectin.TrackExternal({ delegateTo: 'inputModel' }),
1118
+ __metadata("design:type", Object)
1119
+ ], TextInputComponent.prototype, "valueModel", void 0);
1814
1120
  __decorate([
1815
1121
  core.Input(),
1816
1122
  __metadata("design:type", Object)
@@ -1822,7 +1128,7 @@
1822
1128
  TextInputComponent = __decorate([
1823
1129
  core.Component({
1824
1130
  selector: 'aup-text-input',
1825
- 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",
1131
+ template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <textarea matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"valueModel.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",
1826
1132
  styles: ["button[disabled]{visibility:hidden}textarea{overflow:auto}"]
1827
1133
  }),
1828
1134
  __metadata("design:paramtypes", [])
@@ -1830,59 +1136,6 @@
1830
1136
  return TextInputComponent;
1831
1137
  }(AbstractValueInputComponent));
1832
1138
 
1833
- exports.ɵbk = /** @class */ (function () {
1834
- function IconComponent() {
1835
- this.allowedPrefixes = typescriptStringEnums.Enum.values(IconComponent_1.IconPrefix).map(function (p) { return p + ":"; });
1836
- this.iconPrefix = IconComponent_1.IconPrefix;
1837
- }
1838
- IconComponent_1 = IconComponent;
1839
- Object.defineProperty(IconComponent.prototype, "icon", {
1840
- get: function () {
1841
- return this._icon;
1842
- },
1843
- set: function (iconName) {
1844
- this._icon = iconName;
1845
- if (!iconName) {
1846
- this.errorMessage = 'icon is nil';
1847
- this.prefix = undefined;
1848
- return;
1849
- }
1850
- var colonIndex = iconName.indexOf(':');
1851
- if (colonIndex > 0) {
1852
- this.prefix = this.icon.slice(0, colonIndex);
1853
- this.suffix = this.icon.slice(colonIndex + 1);
1854
- }
1855
- if (this.prefix) {
1856
- this.errorMessage = "Unknown icon \"" + iconName + "\"";
1857
- }
1858
- this.errorMessage = "Unknown icon prefix, expected one of [" + this.allowedPrefixes.join(',') + "] got \"" + this.prefix + ":\"";
1859
- },
1860
- enumerable: true,
1861
- configurable: true
1862
- });
1863
- var IconComponent_1;
1864
- __decorate([
1865
- core.Input(),
1866
- __metadata("design:type", String),
1867
- __metadata("design:paramtypes", [String])
1868
- ], IconComponent.prototype, "icon", null);
1869
- IconComponent = IconComponent_1 = __decorate([
1870
- core.Component({
1871
- selector: 'aup-icon',
1872
- 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",
1873
- 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}"]
1874
- })
1875
- ], IconComponent);
1876
- return IconComponent;
1877
- }());
1878
- (function (IconComponent) {
1879
- IconComponent.IconPrefix = typescriptStringEnums.Enum({
1880
- SVG: 'svg',
1881
- FONT_AWESOME: 'fa',
1882
- MATERIAL: 'mat'
1883
- });
1884
- })(exports.ɵbk || (exports.ɵbk = {}));
1885
-
1886
1139
  var NoopComponent = /** @class */ (function () {
1887
1140
  function NoopComponent() {
1888
1141
  }
@@ -2093,7 +1346,6 @@
2093
1346
  typescriptUtilities.assert.isTruthy(host);
2094
1347
  host[HEADER_CELL_RENDERER_PORTAL] = new portal.ComponentPortal(this.componentType);
2095
1348
  };
2096
- // @Trace()
2097
1349
  CellHeaderPortalRef.prototype.onPortalAttached = function (host, portalComponent) {
2098
1350
  this.initialiseHeader(portalComponent, host.column);
2099
1351
  };
@@ -2117,15 +1369,13 @@
2117
1369
  ComponentCellRendererPortalRef.prototype.initialiseHost = function (host, columnModel) {
2118
1370
  host[CELL_RENDERER_PORTAL] = new portal.ComponentPortal(this.componentType);
2119
1371
  };
2120
- // @Trace()
2121
1372
  ComponentCellRendererPortalRef.prototype.onPortalAttached = function (host, portalComponent) {
2122
1373
  host[PORTAL_RENDERER_COMPONENT] = portalComponent;
2123
- this.updateComponent(portalComponent, host.getRowData(), true);
1374
+ this.updateComponent(portalComponent, host.getRowData());
2124
1375
  };
2125
- // @Trace()
2126
1376
  ComponentCellRendererPortalRef.prototype.pushState = function (host) {
2127
1377
  if (host[PORTAL_RENDERER_COMPONENT]) {
2128
- this.updateComponent(host[PORTAL_RENDERER_COMPONENT], host.getRowData(), false);
1378
+ this.updateComponent(host[PORTAL_RENDERER_COMPONENT], host.getRowData());
2129
1379
  }
2130
1380
  };
2131
1381
  return ComponentCellRendererPortalRef;
@@ -2167,7 +1417,6 @@
2167
1417
  TemplateCellRendererPortalRef.prototype.onPortalAttached = function (host, portalComponent) {
2168
1418
  // don't care
2169
1419
  };
2170
- // @Trace()
2171
1420
  TemplateCellRendererPortalRef.prototype.pushState = function (host) {
2172
1421
  host[CELL_RENDERER_PORTAL] = this.createPortal(host.getRowData());
2173
1422
  host.fillCell = this.fillCell;
@@ -2359,7 +1608,6 @@
2359
1608
  var noop = function () {
2360
1609
  };
2361
1610
  var ɵ0 = noop;
2362
- var CELL_RENDERER_COMPONENT_ROW_CACHE = Symbol("aup-cell-renderer:row-data-cache");
2363
1611
  var ColumnModel = /** @class */ (function () {
2364
1612
  function ColumnModel(columnId, defaults) {
2365
1613
  this.columnId = columnId;
@@ -2450,66 +1698,24 @@
2450
1698
  }());
2451
1699
  var PropertyColumnModel = /** @class */ (function (_super) {
2452
1700
  __extends(PropertyColumnModel, _super);
2453
- function PropertyColumnModel(id, property, defaults) {
2454
- var _this = _super.call(this, id, defaults) || this;
1701
+ function PropertyColumnModel(property, defaults) {
1702
+ var _this = _super.call(this, property.toString(), defaults) || this;
2455
1703
  _this.property = property;
2456
1704
  _this._format = function (value) { return value; };
2457
1705
  _this.cellRenderer(DefaultCellRendererComponent);
2458
1706
  return _this;
2459
1707
  }
2460
- PropertyColumnModel.prototype.cellRenderer = function (componentType, onComponentInitOrOptions) {
1708
+ PropertyColumnModel.prototype.cellRenderer = function (componentType) {
2461
1709
  var _this = this;
2462
- this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, function (component, rowData, firstTime) {
2463
- if (firstTime) {
2464
- if (___default__default.isFunction(onComponentInitOrOptions)) {
2465
- onComponentInitOrOptions(component);
2466
- }
2467
- else {
2468
- if (___default__default.isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onComponentInit)) {
2469
- onComponentInitOrOptions.onComponentInit(component);
2470
- }
2471
- }
2472
- }
1710
+ this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, function (component, rowData) {
2473
1711
  component.value = _this._format(rowData.row[_this.property]);
2474
- if (!___default__default.isFunction(onComponentInitOrOptions) && ___default__default.isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onRowUpdate)) {
2475
- onComponentInitOrOptions.onRowUpdate(component, rowData.row);
2476
- }
2477
- }));
2478
- return this;
2479
- };
2480
- PropertyColumnModel.prototype.mutableCellRenderer = function (componentType, options) {
2481
- var _this = this;
2482
- this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, function (component, rowData, firstTime) {
2483
- // keep a local copy most recent row value so it's available to teh
2484
- // edit callback without having to add/remove subscribers all the time.
2485
- component[CELL_RENDERER_COMPONENT_ROW_CACHE] = rowData.row;
2486
- var disableEditCallback = false;
2487
- if (firstTime) {
2488
- if (___default__default.isFunction(options === null || options === void 0 ? void 0 : options.onComponentInit)) {
2489
- options.onComponentInit(component);
2490
- }
2491
- // install our edit callback
2492
- component.onValueEdited(function (is, was) {
2493
- if (!disableEditCallback) {
2494
- options.onValueEdit(component[CELL_RENDERER_COMPONENT_ROW_CACHE], is, was);
2495
- }
2496
- });
2497
- }
2498
- // now push the value the component and disable the callback just incase the component misbehaves
2499
- // and fires a value change during the operation.
2500
- disableEditCallback = true;
2501
- component.value = rowData.row[_this.property];
2502
- disableEditCallback = false;
2503
- if (!___default__default.isFunction(options) && ___default__default.isFunction(options === null || options === void 0 ? void 0 : options.onRowUpdate)) {
2504
- options.onRowUpdate(component, rowData.row);
2505
- }
2506
1712
  }));
2507
1713
  return this;
2508
1714
  };
2509
- PropertyColumnModel.prototype.cellEditor = function (editor, validatorsOrInitialiser, onComponentInit) {
1715
+ PropertyColumnModel.prototype.cellEditor = function (editor, validatorsOrInitialiser, initialiseComponent) {
2510
1716
  var _this = this;
2511
1717
  var validators = Array.isArray(validatorsOrInitialiser) ? validatorsOrInitialiser : undefined;
2512
- var initialiser = ___default__default.isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : onComponentInit;
1718
+ var initialiser = ___default__default.isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : initialiseComponent;
2513
1719
  this.configureCellEditor(new CellEditorPortalRef(editor, function (component, editSession) {
2514
1720
  var formValueModel = editSession.form.pluck(_this.property);
2515
1721
  if (validators) {
@@ -2534,8 +1740,8 @@
2534
1740
  }(ColumnModel));
2535
1741
  var ListPropertyColumnModel = /** @class */ (function (_super) {
2536
1742
  __extends(ListPropertyColumnModel, _super);
2537
- function ListPropertyColumnModel(id, property, defaults) {
2538
- var _this = _super.call(this, id, defaults) || this;
1743
+ function ListPropertyColumnModel(property, defaults) {
1744
+ var _this = _super.call(this, property.toString(), defaults) || this;
2539
1745
  _this.property = property;
2540
1746
  _this._format = function (value) { return value.map(function (v) { return v === null || v === void 0 ? void 0 : v.toString(); }).join(', '); };
2541
1747
  _this.cellRenderer(DefaultCellRendererComponent);
@@ -2582,23 +1788,10 @@
2582
1788
  _this.cellRenderer(DefaultCellRendererComponent);
2583
1789
  return _this;
2584
1790
  }
2585
- CustomValueColumnModel.prototype.cellRenderer = function (componentType, onComponentInitOrOptions) {
1791
+ CustomValueColumnModel.prototype.cellRenderer = function (componentType) {
2586
1792
  var _this = this;
2587
- this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, function (component, rowData, firstTime) {
2588
- if (firstTime) {
2589
- if (___default__default.isFunction(onComponentInitOrOptions)) {
2590
- onComponentInitOrOptions(component);
2591
- }
2592
- else {
2593
- if (___default__default.isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onComponentInit)) {
2594
- onComponentInitOrOptions.onComponentInit(component);
2595
- }
2596
- }
2597
- }
1793
+ this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, function (component, rowData) {
2598
1794
  component.value = _this.getValue(rowData.row);
2599
- if (!___default__default.isFunction(onComponentInitOrOptions) && ___default__default.isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onRowUpdate)) {
2600
- onComponentInitOrOptions.onRowUpdate(component, rowData.row);
2601
- }
2602
1795
  }));
2603
1796
  return this;
2604
1797
  };
@@ -2771,9 +1964,6 @@
2771
1964
  this._editorSessions = new pectin.MutableListModel();
2772
1965
  this.rowClassNamePredicates = [];
2773
1966
  this._createForm = function (row) { return new pectin.DirtyTrackingForm(); };
2774
- this.trackBy = function (index, item) {
2775
- return _this.identityOf ? _this.identityOf(item) : index;
2776
- };
2777
1967
  this.identityOf = sourceOfTruth.identityOf;
2778
1968
  var _a = pectin.Dsl.disposeWith(this._garbage), chain = _a.chain, valueOf = _a.valueOf, before = _a.before, when = _a.when, after = _a.after, observe = _a.observe, switchOn = _a.switchOn;
2779
1969
  this._columnsById = chain(this._columns).indexBy('columnId');
@@ -2785,7 +1975,7 @@
2785
1975
  this.dataSource = chain(this.sourceOfTruth).replaceAll(this.rowsBeingEdited);
2786
1976
  this.firstEditableColumn = chain(this.columns).select(function (c) { return c.hasEditorPortal(); }).first();
2787
1977
  this.hasColumnsWithRowSelectionExplicitlyEnabled = chain(this._columns).findIndex(function (column) { return column.isRowSelectionExplicitlyEnabled(); }).isGreaterThanOrEqualTo(0);
2788
- this.addRowClass('enable-hover', function () { return _this.isRowSelectionEnabled(); });
1978
+ this.addRowClass("enable-hover", function () { return _this.isRowSelectionEnabled(); });
2789
1979
  }
2790
1980
  TableModel_1 = TableModel;
2791
1981
  TableModel.fromList = function (sourceOfTruth, builder) {
@@ -2800,6 +1990,12 @@
2800
1990
  enumerable: true,
2801
1991
  configurable: true
2802
1992
  });
1993
+ TableModel.prototype.getTrackByFunction = function () {
1994
+ var _this = this;
1995
+ return function (index, item) {
1996
+ return _this.identityOf ? _this.identityOf(item) : index;
1997
+ };
1998
+ };
2803
1999
  Object.defineProperty(TableModel.prototype, "columns", {
2804
2000
  get: function () {
2805
2001
  return this._columns.readonly;
@@ -2807,11 +2003,11 @@
2807
2003
  enumerable: true,
2808
2004
  configurable: true
2809
2005
  });
2810
- TableModel.prototype.pluck = function (property, options) {
2811
- return this.addColumn(new PropertyColumnModel((options === null || options === void 0 ? void 0 : options.columnId) || property.toString(), property, this));
2006
+ TableModel.prototype.pluck = function (property) {
2007
+ return this.addColumn(new PropertyColumnModel(property, this));
2812
2008
  };
2813
- TableModel.prototype.pluckList = function (property, options) {
2814
- return this.addColumn(new ListPropertyColumnModel((options === null || options === void 0 ? void 0 : options.columnId) || property.toString(), property, this));
2009
+ TableModel.prototype.pluckList = function (property) {
2010
+ return this.addColumn(new ListPropertyColumnModel(property, this));
2815
2011
  };
2816
2012
  TableModel.prototype.addSelectionColumn = function (selectionModel) {
2817
2013
  pectin.assert.isNil(this.selectionColumnModel);
@@ -2825,9 +2021,6 @@
2825
2021
  TableModel.prototype.addCustomColumn = function (columnId, dataAccessor) {
2826
2022
  return this.addColumn(new CustomValueColumnModel(columnId, this, dataAccessor));
2827
2023
  };
2828
- TableModel.prototype.addComponentColumn = function (columnId, component, onComponentInitOrOptions) {
2829
- return this.addColumn(new CustomValueColumnModel(columnId, this, function (row) { return row; })).cellRenderer(component, onComponentInitOrOptions);
2830
- };
2831
2024
  TableModel.prototype.addTemplateColumn = function (columnId) {
2832
2025
  return this.addColumn(new CustomTemplateColumnModel(columnId, this));
2833
2026
  };
@@ -2979,7 +2172,7 @@
2979
2172
  TableComponent = __decorate([
2980
2173
  core.Component({
2981
2174
  selector: 'aup-table',
2982
- template: "<table mat-table [dataSource]=\"tableModel.dataSource.value\" [trackBy]=\"tableModel.trackBy\">\n\n <ng-container *ngFor=\"let column of columns.value; index as index; first as first; last as last\" matColumnDef=\"{{column.columnId}}\">\n <th mat-header-cell *matHeaderCellDef>\n <aup-table-header-cell-renderer [column]=\"column\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class.first-column]=\"first\"\n [class.last-column]=\"last\"\n ></aup-table-header-cell-renderer>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"onCellClicked(column, row)\" [class.enable-cursor]=\"tableModel.isRowSelectionEnabledFor(column)\">\n <aup-table-cell-renderer [column]=\"column\"\n [row]=\"row\"\n [tableModel]=\"tableModel\"\n [editSession]=\"tableModel.getEditSessionFor(row)\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class.first-column]=\"first\"\n [class.last-column]=\"last\"\n ></aup-table-cell-renderer>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnIds.value\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: columnIds.value; let i = index\"\n [ngClass]=\"tableModel.getRowClasses(row)\" [attr.trackBy]=\"tableModel.trackBy(i, row)\"\n ></tr>\n\n</table>\n",
2175
+ template: "<table mat-table [dataSource]=\"tableModel.dataSource.value\" [trackBy]=\"tableModel.getTrackByFunction()\">\n\n <ng-container *ngFor=\"let column of columns.value; index as index; first as first; last as last\" matColumnDef=\"{{column.columnId}}\">\n <th mat-header-cell *matHeaderCellDef>\n <aup-table-header-cell-renderer [column]=\"column\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class.first-column]=\"first\"\n [class.last-column]=\"last\"\n ></aup-table-header-cell-renderer>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"onCellClicked(column, row)\" [class.enable-cursor]=\"tableModel.isRowSelectionEnabledFor(column)\">\n <aup-table-cell-renderer [column]=\"column\"\n [row]=\"row\"\n [tableModel]=\"tableModel\"\n [editSession]=\"tableModel.getEditSessionFor(row)\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class.first-column]=\"first\"\n [class.last-column]=\"last\"\n ></aup-table-cell-renderer>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnIds.value\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: columnIds.value;\"\n [ngClass]=\"tableModel.getRowClasses(row)\"\n ></tr>\n\n</table>\n",
2983
2176
  styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host table{flex:1}"]
2984
2177
  }),
2985
2178
  __metadata("design:paramtypes", [])
@@ -3138,88 +2331,29 @@
3138
2331
  };
3139
2332
  // @Trace()
3140
2333
  TableHeaderCellRendererComponent.prototype.initialiseHeader = function (instance) {
3141
- this.column.onHeaderAttached(this, instance);
3142
- };
3143
- TableHeaderCellRendererComponent.prototype.getPortal = function () {
3144
- return this[HEADER_CELL_RENDERER_PORTAL];
3145
- };
3146
- __decorate([
3147
- core.Input(),
3148
- __metadata("design:type", ColumnModel)
3149
- ], TableHeaderCellRendererComponent.prototype, "column", void 0);
3150
- __decorate([
3151
- core.HostBinding('class'),
3152
- __metadata("design:type", Object)
3153
- ], TableHeaderCellRendererComponent.prototype, "defaultClassNames", void 0);
3154
- TableHeaderCellRendererComponent = __decorate([
3155
- core.Component({
3156
- selector: 'aup-table-header-cell-renderer',
3157
- template: "<ng-container [cdkPortalOutlet]=\"getPortal()\" (attached)=\"initialiseHeader($event.instance)\"></ng-container>\n",
3158
- styles: [":host{display:flex;flex-direction:column;align-items:stretch;justify-content:center;height:100%}"]
3159
- }),
3160
- __metadata("design:paramtypes", [])
3161
- ], TableHeaderCellRendererComponent);
3162
- return TableHeaderCellRendererComponent;
3163
- }());
3164
-
3165
- var MenuItemData = /** @class */ (function (_super) {
3166
- __extends(MenuItemData, _super);
3167
- function MenuItemData(factory, face) {
3168
- var _this = _super.call(this, face) || this;
3169
- _this.factory = factory;
3170
- return _this;
3171
- }
3172
- return MenuItemData;
3173
- }(exports.CommandFace.Adapter));
3174
- /**
3175
- *
3176
- */
3177
- var TableRowMenuComponent = /** @class */ (function (_super) {
3178
- __extends(TableRowMenuComponent, _super);
3179
- function TableRowMenuComponent() {
3180
- var _this = _super.call(this) || this;
3181
- _this.actions = [];
3182
- _this.moreActions = [];
3183
- return _this;
3184
- }
3185
- TableRowMenuComponent.prototype.registerAction = function (commandFactory, properties) {
3186
- this.actions.push(new MenuItemData(commandFactory, properties));
3187
- };
3188
- TableRowMenuComponent.prototype.registerMoreAction = function (commandFactory, properties) {
3189
- this.moreActions.push(new MenuItemData(commandFactory, properties));
3190
- };
3191
- TableRowMenuComponent.prototype.ngOnInit = function () {
3192
- };
3193
- TableRowMenuComponent.prototype.createMoreMenuCommand = function (item, value) {
3194
- var _this = this;
3195
- var when = pectin.Dsl.disposeWith(this).when;
3196
- var command = item.factory.create(value);
3197
- when(command.busy).becomesFalsey(function () {
3198
- _this.closeMoreMenu();
3199
- });
3200
- return command;
2334
+ this.column.onHeaderAttached(this, instance);
3201
2335
  };
3202
- TableRowMenuComponent.prototype.closeMoreMenu = function () {
3203
- this.menu.closeMenu();
2336
+ TableHeaderCellRendererComponent.prototype.getPortal = function () {
2337
+ return this[HEADER_CELL_RENDERER_PORTAL];
3204
2338
  };
3205
2339
  __decorate([
3206
2340
  core.Input(),
3207
- __metadata("design:type", Object)
3208
- ], TableRowMenuComponent.prototype, "value", void 0);
2341
+ __metadata("design:type", ColumnModel)
2342
+ ], TableHeaderCellRendererComponent.prototype, "column", void 0);
3209
2343
  __decorate([
3210
- core.ViewChild(menu.MatMenuTrigger),
3211
- __metadata("design:type", menu.MatMenuTrigger)
3212
- ], TableRowMenuComponent.prototype, "menu", void 0);
3213
- TableRowMenuComponent = __decorate([
2344
+ core.HostBinding('class'),
2345
+ __metadata("design:type", Object)
2346
+ ], TableHeaderCellRendererComponent.prototype, "defaultClassNames", void 0);
2347
+ TableHeaderCellRendererComponent = __decorate([
3214
2348
  core.Component({
3215
- selector: 'aup-table-row-menu',
3216
- template: "\n <button mat-icon-button *ngFor=\"let action of actions\" [pectinCommand]=\"action.factory.create(value)\">\n <aup-icon [icon]=\"action.icon\"></aup-icon>\n </button>\n <ng-container *ngIf=\"moreActions.length > 0\">\n <button #trigger mat-icon-button [matMenuTriggerFor]=\"menu\">\n <aup-icon icon=\"mat:more_vert\"></aup-icon>\n </button>\n <mat-menu #menu=\"matMenu\" xPosition=\"before\" matTooltip=\"More options...\">\n <button *ngFor=\"let action of moreActions\"\n mat-menu-item\n [pectinCommand]=\"createMoreMenuCommand(action, value)\"\n >\n <aup-icon *ngIf=\"action.icon && action.iconPositionStart\" [icon]=\"action.icon\"></aup-icon>\n {{action.text}}\n <aup-icon *ngIf=\"action.icon && action.iconPositionEnd\" [icon]=\"action.icon\"></aup-icon>\n </button>\n </mat-menu>\n </ng-container>\n ",
3217
- styles: [":host {\n display: inline-flex;\n flex-direction: row;\n align-items: center;\n }"]
2349
+ selector: 'aup-table-header-cell-renderer',
2350
+ template: "<ng-container [cdkPortalOutlet]=\"getPortal()\" (attached)=\"initialiseHeader($event.instance)\"></ng-container>\n",
2351
+ styles: [":host{display:flex;flex-direction:column;align-items:stretch;justify-content:center;height:100%}"]
3218
2352
  }),
3219
2353
  __metadata("design:paramtypes", [])
3220
- ], TableRowMenuComponent);
3221
- return TableRowMenuComponent;
3222
- }(DisposableComponent));
2354
+ ], TableHeaderCellRendererComponent);
2355
+ return TableHeaderCellRendererComponent;
2356
+ }());
3223
2357
 
3224
2358
  var VerticalFocusContainerComponent = /** @class */ (function (_super) {
3225
2359
  __extends(VerticalFocusContainerComponent, _super);
@@ -3306,6 +2440,100 @@
3306
2440
  return VerticalFocusContainerComponent;
3307
2441
  }(FocusContainerComponent));
3308
2442
 
2443
+ var MultipleSelectInputComponent = /** @class */ (function (_super) {
2444
+ __extends(MultipleSelectInputComponent, _super);
2445
+ function MultipleSelectInputComponent() {
2446
+ var _this = _super.call(this) || this;
2447
+ _this.optionLabelFormat = function (option) { return (option && _this.optionLabel) ? option[_this.optionLabel] : option; };
2448
+ return _this;
2449
+ }
2450
+ MultipleSelectInputComponent.prototype.ngOnInit = function () {
2451
+ };
2452
+ __decorate([
2453
+ core.Input(), pectin.TrackExternal({ delegateTo: 'inputModel' }),
2454
+ __metadata("design:type", Object)
2455
+ ], MultipleSelectInputComponent.prototype, "listModel", void 0);
2456
+ __decorate([
2457
+ core.Input(), pectin.TrackExternal(),
2458
+ __metadata("design:type", pectin.ListModel)
2459
+ ], MultipleSelectInputComponent.prototype, "optionsModel", void 0);
2460
+ __decorate([
2461
+ core.Input(), pectin.StoreInListModel('optionsModel'),
2462
+ __metadata("design:type", Array)
2463
+ ], MultipleSelectInputComponent.prototype, "options", void 0);
2464
+ __decorate([
2465
+ core.Input(),
2466
+ __metadata("design:type", Object)
2467
+ ], MultipleSelectInputComponent.prototype, "optionLabel", void 0);
2468
+ __decorate([
2469
+ core.Input(),
2470
+ __metadata("design:type", Boolean)
2471
+ ], MultipleSelectInputComponent.prototype, "allowNil", void 0);
2472
+ __decorate([
2473
+ core.ContentChild('optionTemplate'),
2474
+ __metadata("design:type", core.TemplateRef)
2475
+ ], MultipleSelectInputComponent.prototype, "optionTemplateRef", void 0);
2476
+ __decorate([
2477
+ core.ContentChild('nilOptionTemplate'),
2478
+ __metadata("design:type", core.TemplateRef)
2479
+ ], MultipleSelectInputComponent.prototype, "nilOptionTemplateRef", void 0);
2480
+ __decorate([
2481
+ core.Input(),
2482
+ __metadata("design:type", Function)
2483
+ ], MultipleSelectInputComponent.prototype, "optionLabelFormat", void 0);
2484
+ MultipleSelectInputComponent = __decorate([
2485
+ core.Component({
2486
+ selector: 'aup-multiple-select-input',
2487
+ 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)]=\"listModel.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\">{{placeholder}}</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",
2488
+ styles: [":host{display:inline-block}mat-form-field{width:100%}"]
2489
+ }),
2490
+ __metadata("design:paramtypes", [])
2491
+ ], MultipleSelectInputComponent);
2492
+ return MultipleSelectInputComponent;
2493
+ }(AbstractListInputComponent));
2494
+
2495
+ var IconComponent = /** @class */ (function () {
2496
+ function IconComponent() {
2497
+ }
2498
+ Object.defineProperty(IconComponent.prototype, "icon", {
2499
+ get: function () {
2500
+ return this._icon;
2501
+ },
2502
+ set: function (iconName) {
2503
+ this._icon = iconName;
2504
+ if (!iconName) {
2505
+ this.errorMessage = 'icon is nil';
2506
+ this.prefix = undefined;
2507
+ return;
2508
+ }
2509
+ var colonIndex = iconName.indexOf(':');
2510
+ if (colonIndex > 0) {
2511
+ this.prefix = this.icon.slice(0, colonIndex);
2512
+ this.suffix = this.icon.slice(colonIndex + 1);
2513
+ }
2514
+ if (this.prefix) {
2515
+ this.errorMessage = "Unknown icon \"" + iconName + "\"";
2516
+ }
2517
+ this.errorMessage = "Unknown icon prefix \"" + this.prefix + "\"";
2518
+ },
2519
+ enumerable: true,
2520
+ configurable: true
2521
+ });
2522
+ __decorate([
2523
+ core.Input(),
2524
+ __metadata("design:type", String),
2525
+ __metadata("design:paramtypes", [String])
2526
+ ], IconComponent.prototype, "icon", null);
2527
+ IconComponent = __decorate([
2528
+ core.Component({
2529
+ selector: 'aup-icon',
2530
+ template: "<ng-container [ngSwitch]=\"prefix\">\n\n <mat-icon *ngSwitchCase=\"'svg'\"\n [svgIcon]=\"suffix\"\n class=\"svgIcon\">\n </mat-icon>\n\n <mat-icon *ngSwitchCase=\"'mat'\">\n {{suffix}}\n </mat-icon>\n\n <div *ngSwitchCase=\"'fab'\"\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",
2531
+ 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}"]
2532
+ })
2533
+ ], IconComponent);
2534
+ return IconComponent;
2535
+ }());
2536
+
3309
2537
  var ComponentsModule = /** @class */ (function () {
3310
2538
  function ComponentsModule(faIconLibrary) {
3311
2539
  faIconLibrary.addIconPacks(freeSolidSvgIcons.fas);
@@ -3324,8 +2552,6 @@
3324
2552
  TextInputComponent,
3325
2553
  PasswordInputComponent,
3326
2554
  SelectInputComponent,
3327
- MultipleSelectInputComponent,
3328
- AutocompleteInputComponent,
3329
2555
  CheckboxInputComponent,
3330
2556
  ScrollContainerComponent,
3331
2557
  NoopComponent,
@@ -3345,16 +2571,9 @@
3345
2571
  SelectHeaderCellRendererComponent,
3346
2572
  DefaultHeaderCellRendererComponent,
3347
2573
  TableHeaderCellRendererComponent,
3348
- exports.ɵbk,
3349
- SectionHeaderComponent,
3350
- TableRowMenuComponent,
3351
- CommandBarComponent,
3352
- CommandComponent,
3353
- PopupMenuComponent,
3354
- CommandFaceComponent,
3355
- AbstractPopupMenuComponent,
3356
- PopupMenuRendererComponent,
3357
- MoreMenuComponent
2574
+ MultipleSelectInputComponent,
2575
+ IconComponent,
2576
+ SectionHeaderComponent
3358
2577
  ],
3359
2578
  imports: [
3360
2579
  common.CommonModule,
@@ -3372,10 +2591,7 @@
3372
2591
  portal.PortalModule,
3373
2592
  scrolling.CdkScrollableModule,
3374
2593
  angularFontawesome.FontAwesomeModule,
3375
- tooltip.MatTooltipModule,
3376
- autocomplete.MatAutocompleteModule,
3377
- menu._MatMenuDirectivesModule,
3378
- menu.MatMenuModule
2594
+ tooltip.MatTooltipModule
3379
2595
  ],
3380
2596
  exports: [
3381
2597
  NumberInputComponent,
@@ -3384,8 +2600,6 @@
3384
2600
  PasswordInputComponent,
3385
2601
  CheckboxInputComponent,
3386
2602
  SelectInputComponent,
3387
- MultipleSelectInputComponent,
3388
- AutocompleteInputComponent,
3389
2603
  ScrollContainerComponent,
3390
2604
  NoopComponent,
3391
2605
  SwitchCaseComponent,
@@ -3398,31 +2612,12 @@
3398
2612
  TableComponent,
3399
2613
  EditRowControls,
3400
2614
  ColumnTemplateDirective,
3401
- exports.ɵbk,
3402
- SectionHeaderComponent,
3403
- TableRowMenuComponent,
3404
- CommandBarComponent,
3405
- CommandComponent,
3406
- AbstractPopupMenuComponent,
3407
- PopupMenuComponent,
3408
- CommandFaceComponent,
3409
- PopupMenuRendererComponent,
3410
- MoreMenuComponent
2615
+ MultipleSelectInputComponent,
2616
+ IconComponent,
2617
+ SectionHeaderComponent
3411
2618
  ],
3412
2619
  providers: [
3413
- FocusBindingFactory
3414
- // {
3415
- // provide: CELL_EDITOR_REGISTRATION, useValue: {
3416
- // type: 'string',
3417
- // editorClass: StringInputComponent
3418
- // }, multi: true
3419
- // },
3420
- // {
3421
- // provide: CELL_EDITOR_REGISTRATION, useValue: {
3422
- // type: 'number',
3423
- // editorClass: NumberInputComponent
3424
- // }, multi: true
3425
- // }
2620
+ FocusBindingFactory,
3426
2621
  ]
3427
2622
  }),
3428
2623
  __metadata("design:paramtypes", [angularFontawesome.FaIconLibrary])
@@ -3861,7 +3056,6 @@
3861
3056
  ActivityContainerComponent.prototype.registerDisposable = function (disposable) {
3862
3057
  return this.garbage.registerDisposable(disposable);
3863
3058
  };
3864
- // @Trace()
3865
3059
  ActivityContainerComponent.prototype.dispose = function () {
3866
3060
  // TODO: think about auto cancelling any outstanding activity on dispose.
3867
3061
  // See NavigationState.Navigating for a use-case.
@@ -4010,6 +3204,12 @@
4010
3204
  core.ViewChildren(ActivityOutletComponent),
4011
3205
  __metadata("design:type", core.QueryList)
4012
3206
  ], ActivityContainerComponent.prototype, "activityOutlets", void 0);
3207
+ __decorate([
3208
+ pectin.Trace(),
3209
+ __metadata("design:type", Function),
3210
+ __metadata("design:paramtypes", []),
3211
+ __metadata("design:returntype", void 0)
3212
+ ], ActivityContainerComponent.prototype, "dispose", null);
4013
3213
  ActivityContainerComponent = __decorate([
4014
3214
  core.Component({
4015
3215
  selector: 'aup-activity-container',
@@ -4058,7 +3258,7 @@
4058
3258
  }());
4059
3259
 
4060
3260
  var inplaceMonitorCount = 0;
4061
- exports.ɵcf = /** @class */ (function () {
3261
+ exports.ɵbv = /** @class */ (function () {
4062
3262
  function InteractionService(modelInteractionContextFactory) {
4063
3263
  this.modelInteractionContextFactory = modelInteractionContextFactory;
4064
3264
  this.garbage = new pectin.GarbageCollector();
@@ -4203,7 +3403,7 @@
4203
3403
  return ApiAdapter;
4204
3404
  }());
4205
3405
  InteractionService.ApiAdapter = ApiAdapter;
4206
- })(exports.ɵcf || (exports.ɵcf = {}));
3406
+ })(exports.ɵbv || (exports.ɵbv = {}));
4207
3407
 
4208
3408
  var InPlaceInteractionContextComponent = /** @class */ (function (_super) {
4209
3409
  __extends(InPlaceInteractionContextComponent, _super);
@@ -4261,7 +3461,7 @@
4261
3461
  return this.activityContainerComponent.startActivity(activityType, data, options);
4262
3462
  };
4263
3463
  InPlaceInteractionContextComponent.ctorParameters = function () { return [
4264
- { type: exports.ɵcf },
3464
+ { type: exports.ɵbv },
4265
3465
  { type: undefined, decorators: [{ type: core.Inject, args: [tabs.MAT_TABS_CONFIG,] }, { type: core.Optional }] }
4266
3466
  ]; };
4267
3467
  __decorate([
@@ -4279,7 +3479,7 @@
4279
3479
  styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}"]
4280
3480
  }),
4281
3481
  __param(1, core.Inject(tabs.MAT_TABS_CONFIG)), __param(1, core.Optional()),
4282
- __metadata("design:paramtypes", [exports.ɵcf, Object])
3482
+ __metadata("design:paramtypes", [exports.ɵbv, Object])
4283
3483
  ], InPlaceInteractionContextComponent);
4284
3484
  return InPlaceInteractionContextComponent;
4285
3485
  }(DisposableComponent));
@@ -4818,7 +4018,7 @@
4818
4018
  AlertDialogComponent
4819
4019
  ],
4820
4020
  providers: [
4821
- exports.ɵcf
4021
+ exports.ɵbv
4822
4022
  // {
4823
4023
  // provide: MAT_TABS_CONFIG, useValue: { animationDuration: "2s" }
4824
4024
  // }
@@ -5093,7 +4293,7 @@
5093
4293
  pectin.assert.isNil(this.visitModel.value);
5094
4294
  var when = pectin.Dsl.disposeWith(this).when;
5095
4295
  this.visitModel.value = visit;
5096
- pectin.DebugContext.getOrCreate(this.visitModel).tag(this.placeDefinition.component.name + ".visitModel");
4296
+ pectin.DebugContext.get(this.visitModel).tag(this.placeDefinition.component.name + ".visitModel");
5097
4297
  this.placeDefinition.getVisitParameterDefs().forEach(function (parameterDef) { return _this.installBinding(parameterDef); });
5098
4298
  when.valueOf(this.visitModel).changes(function (current, previous) {
5099
4299
  notifyVisitChanged(current, previous);
@@ -5940,7 +5140,7 @@
5940
5140
  return PopStateNavigation;
5941
5141
  }(AbstractPopStateNavigation));
5942
5142
 
5943
- exports.ɵci = /** @class */ (function () {
5143
+ exports.ɵby = /** @class */ (function () {
5944
5144
  function PlaceHistory() {
5945
5145
  this._archive = new Map();
5946
5146
  this.placeHistoryDepth = 4;
@@ -6077,7 +5277,7 @@
6077
5277
  // }
6078
5278
  //
6079
5279
  // }
6080
- })(exports.ɵci || (exports.ɵci = {}));
5280
+ })(exports.ɵby || (exports.ɵby = {}));
6081
5281
 
6082
5282
  exports.UrlSnapshot = /** @class */ (function () {
6083
5283
  // TODO: Update this accept a url Parser so it can be immutable and generate new trees on mutation using toString() are parseUrl.
@@ -6241,6 +5441,75 @@
6241
5441
  return UrlService;
6242
5442
  }());
6243
5443
 
5444
+ var Visit = /** @class */ (function () {
5445
+ function Visit(placeDefinition, visitParameters) {
5446
+ if (visitParameters === void 0) { visitParameters = {}; }
5447
+ this.placeDefinition = placeDefinition;
5448
+ this.visitParameters = visitParameters;
5449
+ }
5450
+ // @Trace()
5451
+ Visit.prototype.getRouteId = function () {
5452
+ return this.placeDefinition.getRouteIdFrom(this);
5453
+ };
5454
+ // @Trace()
5455
+ Visit.prototype.hasRouteId = function () {
5456
+ return !___default.isNil(this.getRouteId());
5457
+ };
5458
+ /**
5459
+ * Returns the value of the place parameter with the specified name. The parameter
5460
+ * name is taken from the `as` option, e.g. {as: 'aCustomName'} otherwise it is the
5461
+ * same as the the ValueModel property name.
5462
+ * @param parameterName the field name of the property model or the `as` option if specified.
5463
+ */
5464
+ Visit.prototype.getParameter = function (parameterName) {
5465
+ return this.visitParameters[parameterName];
5466
+ };
5467
+ // @Trace()
5468
+ Visit.prototype.hasParameter = function (parameterName) {
5469
+ return Object.keys(this.visitParameters).includes(parameterName);
5470
+ };
5471
+ Visit.prototype.replace = function (parameter, value) {
5472
+ var _a;
5473
+ return new Visit(this.placeDefinition, __assign(__assign({}, this.visitParameters), (_a = {}, _a[parameter.name] = value, _a)));
5474
+ };
5475
+ Visit.prototype.mergeRouteParameters = function (routeParams) {
5476
+ var _this = this;
5477
+ // todo: whitelist parameters.
5478
+ var routeParameterKeys = Object.keys(routeParams);
5479
+ var params = {};
5480
+ this.placeDefinition.getVisitParameterDefs().forEach(function (def) {
5481
+ if (def.isRouteId || def.isRouteParameter) {
5482
+ if (routeParameterKeys.includes(def.name)) {
5483
+ params[def.name] = routeParams[def.name];
5484
+ }
5485
+ }
5486
+ else {
5487
+ // copy non route params as is, but only if they already exist otherwise we'll inject nil values and break the
5488
+ // defaults and remember sanitisation process.
5489
+ var value = _this.getParameter(def.name);
5490
+ if (_this.hasParameter(def.name)) {
5491
+ params[def.name] = value;
5492
+ }
5493
+ }
5494
+ });
5495
+ return new Visit(this.placeDefinition, params);
5496
+ };
5497
+ Visit.prototype.hasRoutingChangedFrom = function (other) {
5498
+ var samePlace = other.placeDefinition === this.placeDefinition;
5499
+ var sameRouteParameters = ___default.isEqual(this.placeDefinition.getFormattedRouteParameters(this, true), this.placeDefinition.getFormattedRouteParameters(other, true));
5500
+ return !samePlace || !sameRouteParameters;
5501
+ };
5502
+ Visit.prototype.hasChangedFrom = function (other) {
5503
+ var sameNonRouteParameters = ___default.isEqual(this.placeDefinition.getNonRouteParameters(this), this.placeDefinition.getNonRouteParameters(other));
5504
+ return !sameNonRouteParameters || this.hasRoutingChangedFrom(other);
5505
+ };
5506
+ Visit.prototype.toDebugString = function () {
5507
+ var _this = this;
5508
+ return Object.keys(this.visitParameters).map(function (k) { return k + "=" + _this.visitParameters[k]; }).join(",");
5509
+ };
5510
+ return Visit;
5511
+ }());
5512
+
6244
5513
  var PlaceRouter = /** @class */ (function (_super) {
6245
5514
  __extends(PlaceRouter, _super);
6246
5515
  function PlaceRouter(angularRouter, angularLocation, interactionService, urlService, placeHistory) {
@@ -6436,7 +5705,6 @@
6436
5705
  enumerable: true,
6437
5706
  configurable: true
6438
5707
  });
6439
- // @Trace()
6440
5708
  PlaceRouter.prototype.pushVisitChangesToRoute = function (previous, next) {
6441
5709
  return __awaiter(this, void 0, void 0, function () {
6442
5710
  var _this = this;
@@ -6532,93 +5800,30 @@
6532
5800
  PlaceRouter.ctorParameters = function () { return [
6533
5801
  { type: router.Router },
6534
5802
  { type: common.Location },
6535
- { type: exports.ɵcf },
5803
+ { type: exports.ɵbv },
6536
5804
  { type: UrlService },
6537
- { type: exports.ɵci }
5805
+ { type: exports.ɵby }
6538
5806
  ]; };
6539
- PlaceRouter.ɵprov = core.ɵɵdefineInjectable({ factory: function PlaceRouter_Factory() { return new PlaceRouter(core.ɵɵinject(router.Router), core.ɵɵinject(common.Location), core.ɵɵinject(exports.ɵcf), core.ɵɵinject(UrlService), core.ɵɵinject(exports.ɵci)); }, token: PlaceRouter, providedIn: "root" });
5807
+ PlaceRouter.ɵprov = core.ɵɵdefineInjectable({ factory: function PlaceRouter_Factory() { return new PlaceRouter(core.ɵɵinject(router.Router), core.ɵɵinject(common.Location), core.ɵɵinject(exports.ɵbv), core.ɵɵinject(UrlService), core.ɵɵinject(exports.ɵby)); }, token: PlaceRouter, providedIn: "root" });
5808
+ __decorate([
5809
+ pectin.Trace(),
5810
+ __metadata("design:type", Function),
5811
+ __metadata("design:paramtypes", [Visit, Visit]),
5812
+ __metadata("design:returntype", Promise)
5813
+ ], PlaceRouter.prototype, "pushVisitChangesToRoute", null);
6540
5814
  PlaceRouter = __decorate([
6541
5815
  core.Injectable({
6542
5816
  providedIn: 'root'
6543
5817
  }),
6544
5818
  __metadata("design:paramtypes", [router.Router,
6545
5819
  common.Location,
6546
- exports.ɵcf,
5820
+ exports.ɵbv,
6547
5821
  UrlService,
6548
- exports.ɵci])
5822
+ exports.ɵby])
6549
5823
  ], PlaceRouter);
6550
5824
  return PlaceRouter;
6551
5825
  }(pectin.GarbageCollector));
6552
5826
 
6553
- var Visit = /** @class */ (function () {
6554
- function Visit(placeDefinition, visitParameters) {
6555
- if (visitParameters === void 0) { visitParameters = {}; }
6556
- this.placeDefinition = placeDefinition;
6557
- this.visitParameters = visitParameters;
6558
- }
6559
- // @Trace()
6560
- Visit.prototype.getRouteId = function () {
6561
- return this.placeDefinition.getRouteIdFrom(this);
6562
- };
6563
- // @Trace()
6564
- Visit.prototype.hasRouteId = function () {
6565
- return !___default.isNil(this.getRouteId());
6566
- };
6567
- /**
6568
- * Returns the value of the place parameter with the specified name. The parameter
6569
- * name is taken from the `as` option, e.g. {as: 'aCustomName'} otherwise it is the
6570
- * same as the the ValueModel property name.
6571
- * @param parameterName the field name of the property model or the `as` option if specified.
6572
- */
6573
- Visit.prototype.getParameter = function (parameterName) {
6574
- return this.visitParameters[parameterName];
6575
- };
6576
- // @Trace()
6577
- Visit.prototype.hasParameter = function (parameterName) {
6578
- return Object.keys(this.visitParameters).includes(parameterName);
6579
- };
6580
- Visit.prototype.replace = function (parameter, value) {
6581
- var _a;
6582
- return new Visit(this.placeDefinition, __assign(__assign({}, this.visitParameters), (_a = {}, _a[parameter.name] = value, _a)));
6583
- };
6584
- Visit.prototype.mergeRouteParameters = function (routeParams) {
6585
- var _this = this;
6586
- // todo: whitelist parameters.
6587
- var routeParameterKeys = Object.keys(routeParams);
6588
- var params = {};
6589
- this.placeDefinition.getVisitParameterDefs().forEach(function (def) {
6590
- if (def.isRouteId || def.isRouteParameter) {
6591
- if (routeParameterKeys.includes(def.name)) {
6592
- params[def.name] = routeParams[def.name];
6593
- }
6594
- }
6595
- else {
6596
- // copy non route params as is, but only if they already exist otherwise we'll inject nil values and break the
6597
- // defaults and remember sanitisation process.
6598
- var value = _this.getParameter(def.name);
6599
- if (_this.hasParameter(def.name)) {
6600
- params[def.name] = value;
6601
- }
6602
- }
6603
- });
6604
- return new Visit(this.placeDefinition, params);
6605
- };
6606
- Visit.prototype.hasRoutingChangedFrom = function (other) {
6607
- var samePlace = other.placeDefinition === this.placeDefinition;
6608
- var sameRouteParameters = ___default.isEqual(this.placeDefinition.getFormattedRouteParameters(this, true), this.placeDefinition.getFormattedRouteParameters(other, true));
6609
- return !samePlace || !sameRouteParameters;
6610
- };
6611
- Visit.prototype.hasChangedFrom = function (other) {
6612
- var sameNonRouteParameters = ___default.isEqual(this.placeDefinition.getNonRouteParameters(this), this.placeDefinition.getNonRouteParameters(other));
6613
- return !sameNonRouteParameters || this.hasRoutingChangedFrom(other);
6614
- };
6615
- Visit.prototype.toDebugString = function () {
6616
- var _this = this;
6617
- return Object.keys(this.visitParameters).map(function (k) { return k + "=" + _this.visitParameters[k]; }).join(",");
6618
- };
6619
- return Visit;
6620
- }());
6621
-
6622
5827
  var AUP_PLACE_CONFIG = new core.InjectionToken('AUP_PLACE_CONFIG');
6623
5828
 
6624
5829
  // Freezes the state of the components at the start of the animation.
@@ -7633,7 +6838,8 @@
7633
6838
  binding: null
7634
6839
  };
7635
6840
  var tag = tagPrefix + "(" + prototype.constructor.name + "." + propertyKey.toString() + ")";
7636
- pectin.DebugContext.getOrCreate(mechanics.backingModel).tag(tag);
6841
+ pectin.DebugContext.get(mechanics.backingModel).tag(tag);
6842
+ pectin.Logger.get(mechanics.backingModel).tag(tag);
7637
6843
  Object.defineProperty(prototype, propertyKey, {
7638
6844
  get: function () {
7639
6845
  return mechanics.backingModel;
@@ -7695,7 +6901,6 @@
7695
6901
  exports.AbstractListInputComponent = AbstractListInputComponent;
7696
6902
  exports.AbstractPlaceNavigationComponent = AbstractPlaceNavigationComponent;
7697
6903
  exports.AbstractPopStateNavigation = AbstractPopStateNavigation;
7698
- exports.AbstractPopupMenuComponent = AbstractPopupMenuComponent;
7699
6904
  exports.AbstractValueInputComponent = AbstractValueInputComponent;
7700
6905
  exports.Activity = Activity;
7701
6906
  exports.ActivityActionsComponent = ActivityActionsComponent;
@@ -7705,7 +6910,6 @@
7705
6910
  exports.AddItemInteractionContextComponent = AddItemInteractionContextComponent;
7706
6911
  exports.AlertDialogComponent = AlertDialogComponent;
7707
6912
  exports.AngularUiPowerupsModule = AngularUiPowerupsModule;
7708
- exports.AutocompleteInputComponent = AutocompleteInputComponent;
7709
6913
  exports.BusyOverlayComponent = BusyOverlayComponent;
7710
6914
  exports.CELL_EDITOR_PORTAL = CELL_EDITOR_PORTAL;
7711
6915
  exports.CELL_RENDERER_PORTAL = CELL_RENDERER_PORTAL;
@@ -7717,11 +6921,7 @@
7717
6921
  exports.CheckboxInputComponent = CheckboxInputComponent;
7718
6922
  exports.ColumnModel = ColumnModel;
7719
6923
  exports.ColumnTemplateDirective = ColumnTemplateDirective;
7720
- exports.CommandBarComponent = CommandBarComponent;
7721
- exports.CommandComponent = CommandComponent;
7722
- exports.CommandContainer = CommandContainer;
7723
6924
  exports.CommandDirective = CommandDirective;
7724
- exports.CommandFaceComponent = CommandFaceComponent;
7725
6925
  exports.ComponentCellRendererPortalRef = ComponentCellRendererPortalRef;
7726
6926
  exports.ComponentsModule = ComponentsModule;
7727
6927
  exports.ConfirmThenDialogComponent = ConfirmThenDialogComponent;
@@ -7749,17 +6949,16 @@
7749
6949
  exports.FocusContainerComponent = FocusContainerComponent;
7750
6950
  exports.FocusableComponent = FocusableComponent;
7751
6951
  exports.HEADER_CELL_RENDERER_PORTAL = HEADER_CELL_RENDERER_PORTAL;
7752
- exports.IconComponent = exports.ɵbk;
6952
+ exports.IconComponent = IconComponent;
7753
6953
  exports.InPlaceInteractionContextComponent = InPlaceInteractionContextComponent;
7754
6954
  exports.InteractionContextTriggerFor = InteractionContextTriggerFor;
7755
6955
  exports.InteractionModule = InteractionModule;
7756
- exports.InteractionService = exports.ɵcf;
6956
+ exports.InteractionService = exports.ɵbv;
7757
6957
  exports.InteractionServiceRoutingAdapter = InteractionServiceRoutingAdapter;
7758
6958
  exports.LEFT_RIGHT_PLACE_ANIMATION = LEFT_RIGHT_PLACE_ANIMATION;
7759
6959
  exports.ListPlaceNavComponent = ListPlaceNavComponent;
7760
6960
  exports.ListPropertyColumnModel = ListPropertyColumnModel;
7761
6961
  exports.ModalInteractionContextFactory = ModalInteractionContextFactory;
7762
- exports.MoreMenuComponent = MoreMenuComponent;
7763
6962
  exports.MultipleSelectInputComponent = MultipleSelectInputComponent;
7764
6963
  exports.Navigating = Navigating;
7765
6964
  exports.NavigatingDuringInteraction = NavigatingDuringInteraction;
@@ -7774,7 +6973,7 @@
7774
6973
  exports.PlaceComponentDeactivationHandler = PlaceComponentDeactivationHandler;
7775
6974
  exports.PlaceDefinition = PlaceDefinition;
7776
6975
  exports.PlaceGuard = PlaceGuard;
7777
- exports.PlaceHistory = exports.ɵci;
6976
+ exports.PlaceHistory = exports.ɵby;
7778
6977
  exports.PlaceModule = PlaceModule;
7779
6978
  exports.PlaceOutletComponent = PlaceOutletComponent;
7780
6979
  exports.PlaceRouter = PlaceRouter;
@@ -7782,8 +6981,6 @@
7782
6981
  exports.PopStateDuringInteractionNavigation = PopStateDuringInteractionNavigation;
7783
6982
  exports.PopStateNavigation = PopStateNavigation;
7784
6983
  exports.PopupInteractionContextComponent = PopupInteractionContextComponent;
7785
- exports.PopupMenuComponent = PopupMenuComponent;
7786
- exports.PopupMenuRendererComponent = PopupMenuRendererComponent;
7787
6984
  exports.PropertyColumnModel = PropertyColumnModel;
7788
6985
  exports.ROUTE_PARAMETER_LIST_KEY = ROUTE_PARAMETER_LIST_KEY;
7789
6986
  exports.RemoveLastInteractionFromUrlNavigationSession = RemoveLastInteractionFromUrlNavigationSession;
@@ -7809,7 +7006,6 @@
7809
7006
  exports.TableComponent = TableComponent;
7810
7007
  exports.TableHeaderCellRendererComponent = TableHeaderCellRendererComponent;
7811
7008
  exports.TableModel = TableModel;
7812
- exports.TableRowMenuComponent = TableRowMenuComponent;
7813
7009
  exports.TemplateCellRendererPortalRef = TemplateCellRendererPortalRef;
7814
7010
  exports.TextInputComponent = TextInputComponent;
7815
7011
  exports.UrlService = UrlService;
@@ -7827,60 +7023,51 @@
7827
7023
  exports.ɵ0 = ɵ0;
7828
7024
  exports.ɵa = DirectivesModule;
7829
7025
  exports.ɵb = CommandDirective;
7830
- exports.ɵba = CardContainerComponent;
7831
- exports.ɵbb = TableComponent;
7832
- exports.ɵbc = EditRowControls;
7833
- exports.ɵbd = ColumnTemplateDirective;
7834
- exports.ɵbe = DefaultCellRendererComponent;
7835
- exports.ɵbf = TableCellRendererComponent;
7836
- exports.ɵbg = SelectCellRendererComponent;
7837
- exports.ɵbh = SelectHeaderCellRendererComponent;
7838
- exports.ɵbi = DefaultHeaderCellRendererComponent;
7839
- exports.ɵbj = TableHeaderCellRendererComponent;
7840
- exports.ɵbl = SectionHeaderComponent;
7841
- exports.ɵbm = TableRowMenuComponent;
7842
- exports.ɵbn = CommandBarComponent;
7843
- exports.ɵbo = CommandContainer;
7844
- exports.ɵbp = CommandComponent;
7845
- exports.ɵbq = PopupMenuComponent;
7846
- exports.ɵbr = AbstractPopupMenuComponent;
7847
- exports.ɵbs = PopupMenuRendererComponent;
7848
- exports.ɵbt = CommandFaceComponent;
7849
- exports.ɵbu = MoreMenuComponent;
7850
- exports.ɵbv = PlaceModule;
7851
- exports.ɵbw = ComponentsModule;
7852
- exports.ɵbx = EmptyStateComponent;
7853
- exports.ɵby = BusyOverlayComponent;
7854
- exports.ɵbz = PlaceOutletComponent;
7026
+ exports.ɵba = EditRowControls;
7027
+ exports.ɵbb = ColumnTemplateDirective;
7028
+ exports.ɵbc = DefaultCellRendererComponent;
7029
+ exports.ɵbd = TableCellRendererComponent;
7030
+ exports.ɵbe = SelectCellRendererComponent;
7031
+ exports.ɵbf = SelectHeaderCellRendererComponent;
7032
+ exports.ɵbg = DefaultHeaderCellRendererComponent;
7033
+ exports.ɵbh = TableHeaderCellRendererComponent;
7034
+ exports.ɵbi = MultipleSelectInputComponent;
7035
+ exports.ɵbj = IconComponent;
7036
+ exports.ɵbk = SectionHeaderComponent;
7037
+ exports.ɵbl = PlaceModule;
7038
+ exports.ɵbm = ComponentsModule;
7039
+ exports.ɵbn = EmptyStateComponent;
7040
+ exports.ɵbo = BusyOverlayComponent;
7041
+ exports.ɵbp = PlaceOutletComponent;
7042
+ exports.ɵbq = leftRightPlaceAnimation;
7043
+ exports.ɵbr = LEFT_RIGHT_PLACE_ANIMATION;
7044
+ exports.ɵbs = AUP_PLACE_CONFIG;
7045
+ exports.ɵbu = PlaceRouter;
7046
+ exports.ɵbw = ModalInteractionContextFactory;
7047
+ exports.ɵbx = UrlService;
7048
+ exports.ɵbz = TabbedPlaceNavigationComponent;
7855
7049
  exports.ɵc = FocusBindingDirective;
7856
- exports.ɵca = leftRightPlaceAnimation;
7857
- exports.ɵcb = LEFT_RIGHT_PLACE_ANIMATION;
7858
- exports.ɵcc = AUP_PLACE_CONFIG;
7859
- exports.ɵce = PlaceRouter;
7860
- exports.ɵcg = ModalInteractionContextFactory;
7861
- exports.ɵch = UrlService;
7862
- exports.ɵcj = TabbedPlaceNavigationComponent;
7863
- exports.ɵck = AbstractPlaceNavigationComponent;
7864
- exports.ɵcl = ListPlaceNavComponent;
7865
- exports.ɵcm = SidePlaceNavigationComponent;
7866
- exports.ɵcn = InteractionModule;
7867
- exports.ɵco = ActivityContainerComponent;
7868
- exports.ɵcp = AbstractInteractionContext;
7869
- exports.ɵcq = ActivityOutletComponent;
7870
- exports.ɵcr = ConfirmationDialogComponent;
7871
- exports.ɵcs = ACTIVITY_DATA;
7872
- exports.ɵct = Activity;
7873
- exports.ɵcv = ConfirmThenDialogComponent;
7874
- exports.ɵcw = AlertDialogComponent;
7875
- exports.ɵcy = InPlaceInteractionContextComponent;
7876
- exports.ɵcz = AddItemInteractionContextComponent;
7050
+ exports.ɵca = AbstractPlaceNavigationComponent;
7051
+ exports.ɵcb = ListPlaceNavComponent;
7052
+ exports.ɵcc = SidePlaceNavigationComponent;
7053
+ exports.ɵcd = InteractionModule;
7054
+ exports.ɵce = ActivityContainerComponent;
7055
+ exports.ɵcf = AbstractInteractionContext;
7056
+ exports.ɵcg = ActivityOutletComponent;
7057
+ exports.ɵch = ConfirmationDialogComponent;
7058
+ exports.ɵci = ACTIVITY_DATA;
7059
+ exports.ɵcj = Activity;
7060
+ exports.ɵcl = ConfirmThenDialogComponent;
7061
+ exports.ɵcm = AlertDialogComponent;
7062
+ exports.ɵco = InPlaceInteractionContextComponent;
7063
+ exports.ɵcp = AddItemInteractionContextComponent;
7064
+ exports.ɵcq = ActivityActionsComponent;
7065
+ exports.ɵcr = PopupInteractionContextComponent;
7066
+ exports.ɵcs = StringInputActivity;
7067
+ exports.ɵct = AbstractInputActivity;
7068
+ exports.ɵcu = SelectInputActivity;
7069
+ exports.ɵcv = InteractionContextTriggerFor;
7877
7070
  exports.ɵd = DisposableComponent;
7878
- exports.ɵda = ActivityActionsComponent;
7879
- exports.ɵdb = PopupInteractionContextComponent;
7880
- exports.ɵdc = StringInputActivity;
7881
- exports.ɵdd = AbstractInputActivity;
7882
- exports.ɵde = SelectInputActivity;
7883
- exports.ɵdf = InteractionContextTriggerFor;
7884
7071
  exports.ɵe = FocusBindingFactory;
7885
7072
  exports.ɵf = ComponentsModule;
7886
7073
  exports.ɵg = AbstractInputComponent;
@@ -7891,18 +7078,18 @@
7891
7078
  exports.ɵl = TextInputComponent;
7892
7079
  exports.ɵm = PasswordInputComponent;
7893
7080
  exports.ɵn = SelectInputComponent;
7894
- exports.ɵo = MultipleSelectInputComponent;
7895
- exports.ɵp = AutocompleteInputComponent;
7896
- exports.ɵq = CheckboxInputComponent;
7897
- exports.ɵr = ScrollContainerComponent;
7898
- exports.ɵs = NoopComponent;
7899
- exports.ɵt = SwitchCaseOption;
7900
- exports.ɵu = SwitchCaseWhenDirective;
7901
- exports.ɵv = SwitchCaseDefaultDirective;
7902
- exports.ɵw = SwitchCaseComponent;
7903
- exports.ɵx = FocusContainerComponent;
7904
- exports.ɵy = VerticalFocusContainerComponent;
7905
- exports.ɵz = FocusableComponent;
7081
+ exports.ɵo = CheckboxInputComponent;
7082
+ exports.ɵp = ScrollContainerComponent;
7083
+ exports.ɵq = NoopComponent;
7084
+ exports.ɵr = SwitchCaseOption;
7085
+ exports.ɵs = SwitchCaseWhenDirective;
7086
+ exports.ɵt = SwitchCaseDefaultDirective;
7087
+ exports.ɵu = SwitchCaseComponent;
7088
+ exports.ɵv = FocusContainerComponent;
7089
+ exports.ɵw = VerticalFocusContainerComponent;
7090
+ exports.ɵx = FocusableComponent;
7091
+ exports.ɵy = CardContainerComponent;
7092
+ exports.ɵz = TableComponent;
7906
7093
 
7907
7094
  Object.defineProperty(exports, '__esModule', { value: true });
7908
7095