@coolon/angular-ui-powerups 12.0.0 → 12.0.1

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 (243) hide show
  1. package/assets/table.scss +1 -1
  2. package/bundles/coolon-angular-ui-powerups.umd.js +531 -429
  3. package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
  4. package/coolon-angular-ui-powerups.metadata.json +1 -1
  5. package/esm2015/lib/angular-ui-powerups.module.ngfactory.js.map +1 -1
  6. package/esm2015/lib/components/components.module.js +16 -14
  7. package/esm2015/lib/components/components.module.js.map +1 -1
  8. package/esm2015/lib/components/components.module.metadata.json +1 -1
  9. package/esm2015/lib/components/components.module.ngfactory.js.map +1 -1
  10. package/esm2015/lib/components/exports.js +32 -31
  11. package/esm2015/lib/components/exports.js.map +1 -1
  12. package/esm2015/lib/components/exports.metadata.json +1 -1
  13. package/esm2015/lib/components/{table → tables}/abstract-table-model.js +2 -2
  14. package/esm2015/lib/components/tables/abstract-table-model.js.map +1 -0
  15. package/esm2015/lib/components/{table/table.component.js → tables/abstract-table.component.js} +22 -25
  16. package/esm2015/lib/components/tables/abstract-table.component.js.map +1 -0
  17. package/esm2015/lib/components/tables/abstract-table.component.metadata.json +1 -0
  18. package/esm2015/lib/components/tables/abstract-table.component.ngfactory.js.map +1 -0
  19. package/esm2015/lib/components/tables/table/cell-editors.js.map +1 -0
  20. package/esm2015/lib/components/tables/table/cell-portal-ref.js.map +1 -0
  21. package/esm2015/lib/components/tables/table/cell-renderer.js.map +1 -0
  22. package/esm2015/lib/components/tables/table/column-model.js.map +1 -0
  23. package/esm2015/lib/components/{table → tables/table}/column-template/column-template.directive.js +2 -2
  24. package/esm2015/lib/components/tables/table/column-template/column-template.directive.js.map +1 -0
  25. package/esm2015/lib/components/{table → tables/table}/column-template/column-template.directive.metadata.json +1 -1
  26. package/esm2015/lib/components/tables/table/column-template/column-template.directive.ngfactory.js.map +1 -0
  27. package/esm2015/lib/components/tables/table/column-text-properties.js.map +1 -0
  28. package/esm2015/lib/components/tables/table/default-cell-renderer/default-cell-renderer.component.js.map +1 -0
  29. package/esm2015/lib/components/tables/table/default-cell-renderer/default-cell-renderer.component.ngfactory.js.map +1 -0
  30. package/esm2015/lib/components/tables/table/default-cell-renderer/default-cell-renderer.component.scss.shim.ngstyle.js.map +1 -0
  31. package/esm2015/lib/components/tables/table/default-header-cell-renderer/default-header-cell-renderer.component.js.map +1 -0
  32. package/esm2015/lib/components/tables/table/default-header-cell-renderer/default-header-cell-renderer.component.ngfactory.js.map +1 -0
  33. package/esm2015/lib/components/tables/table/default-header-cell-renderer/default-header-cell-renderer.component.scss.shim.ngstyle.js.map +1 -0
  34. package/esm2015/lib/components/{table → tables/table}/edit-row-controls/edit-row-controls.component.js +1 -1
  35. package/esm2015/lib/components/tables/table/edit-row-controls/edit-row-controls.component.js.map +1 -0
  36. package/esm2015/lib/components/tables/table/edit-row-controls/edit-row-controls.component.metadata.json +1 -0
  37. package/esm2015/lib/components/tables/table/edit-row-controls/edit-row-controls.component.ngfactory.js.map +1 -0
  38. package/esm2015/lib/components/tables/table/edit-row-controls/edit-row-controls.component.scss.shim.ngstyle.js.map +1 -0
  39. package/esm2015/lib/components/tables/table/edit-session.js.map +1 -0
  40. package/esm2015/lib/components/tables/table/mutable-cell-renderer.js.map +1 -0
  41. package/esm2015/lib/components/{table → tables/table}/paginator/paginator.component.js +1 -1
  42. package/esm2015/lib/components/tables/table/paginator/paginator.component.js.map +1 -0
  43. package/esm2015/lib/components/tables/table/paginator/paginator.component.metadata.json +1 -0
  44. package/esm2015/lib/components/tables/table/paginator/paginator.component.ngfactory.js.map +1 -0
  45. package/esm2015/lib/components/tables/table/paginator/paginator.component.scss.shim.ngstyle.js.map +1 -0
  46. package/esm2015/lib/components/{table → tables/table}/select-cell-renderer/select-cell-renderer.component.js +1 -1
  47. package/esm2015/lib/components/tables/table/select-cell-renderer/select-cell-renderer.component.js.map +1 -0
  48. package/esm2015/lib/components/tables/table/select-cell-renderer/select-cell-renderer.component.metadata.json +1 -0
  49. package/esm2015/lib/components/tables/table/select-cell-renderer/select-cell-renderer.component.ngfactory.js.map +1 -0
  50. package/esm2015/lib/components/tables/table/select-cell-renderer/select-cell-renderer.component.scss.shim.ngstyle.js.map +1 -0
  51. package/esm2015/lib/components/{table → tables/table}/select-header-cell-renderer/select-header-cell-renderer.component.js +1 -1
  52. package/esm2015/lib/components/tables/table/select-header-cell-renderer/select-header-cell-renderer.component.js.map +1 -0
  53. package/esm2015/lib/components/tables/table/select-header-cell-renderer/select-header-cell-renderer.component.metadata.json +1 -0
  54. package/esm2015/lib/components/tables/table/select-header-cell-renderer/select-header-cell-renderer.component.ngfactory.js.map +1 -0
  55. package/esm2015/lib/components/tables/table/select-header-cell-renderer/select-header-cell-renderer.component.scss.shim.ngstyle.js.map +1 -0
  56. package/esm2015/lib/components/{table → tables/table}/table-cell-renderer/table-cell-renderer.component.js +2 -2
  57. package/esm2015/lib/components/tables/table/table-cell-renderer/table-cell-renderer.component.js.map +1 -0
  58. package/esm2015/lib/components/tables/table/table-cell-renderer/table-cell-renderer.component.metadata.json +1 -0
  59. package/esm2015/lib/components/tables/table/table-cell-renderer/table-cell-renderer.component.ngfactory.js.map +1 -0
  60. package/esm2015/lib/components/tables/table/table-cell-renderer/table-cell-renderer.component.scss.shim.ngstyle.js.map +1 -0
  61. package/esm2015/lib/components/tables/table/table-def.js.map +1 -0
  62. package/esm2015/lib/components/tables/table/table-header-cell-renderer/table-header-cell-renderer.component.js.map +1 -0
  63. package/esm2015/lib/components/tables/table/table-header-cell-renderer/table-header-cell-renderer.component.ngfactory.js.map +1 -0
  64. package/esm2015/lib/components/tables/table/table-header-cell-renderer/table-header-cell-renderer.component.scss.shim.ngstyle.js.map +1 -0
  65. package/esm2015/lib/components/{table → tables/table}/table-model.js +1 -1
  66. package/esm2015/lib/components/tables/table/table-model.js.map +1 -0
  67. package/esm2015/lib/components/tables/table/table-model.metadata.json +1 -0
  68. package/esm2015/lib/components/{table → tables/table}/table-row-menu/table-row-menu.component.js +1 -1
  69. package/esm2015/lib/components/tables/table/table-row-menu/table-row-menu.component.js.map +1 -0
  70. package/esm2015/lib/components/tables/table/table-row-menu/table-row-menu.component.metadata.json +1 -0
  71. package/esm2015/lib/components/tables/table/table-row-menu/table-row-menu.component.ngfactory.js.map +1 -0
  72. package/esm2015/lib/components/tables/table/table.component.js +94 -0
  73. package/esm2015/lib/components/tables/table/table.component.js.map +1 -0
  74. package/esm2015/lib/components/tables/table/table.component.metadata.json +1 -0
  75. package/esm2015/lib/components/tables/table/table.component.ngfactory.js.map +1 -0
  76. package/esm2015/lib/components/tables/table.component.scss.shim.ngstyle.js.map +1 -0
  77. package/esm2015/lib/components/tables/tree-table/decorated-tree-node.js.map +1 -0
  78. package/esm2015/lib/components/tables/tree-table/tree-expansion-model.js.map +1 -0
  79. package/esm2015/lib/components/tables/tree-table/tree-inheritance-icon/tree-inheritance-icon.component.js.map +1 -0
  80. package/esm2015/lib/components/tables/tree-table/tree-inheritance-icon/tree-inheritance-icon.component.ngfactory.js.map +1 -0
  81. package/esm2015/lib/components/tables/tree-table/tree-inheritance-icon/tree-inheritance-icon.component.scss.shim.ngstyle.js.map +1 -0
  82. package/esm2015/lib/components/{tree-table → tables/tree-table}/tree-label-cell-renderer/tree-label-cell-renderer.component.js +1 -1
  83. package/esm2015/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.js.map +1 -0
  84. package/esm2015/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.metadata.json +1 -0
  85. package/esm2015/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.ngfactory.js.map +1 -0
  86. package/esm2015/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.scss.shim.ngstyle.js.map +1 -0
  87. package/esm2015/lib/components/tables/tree-table/tree-label-column-model.js.map +1 -0
  88. package/esm2015/lib/components/tables/tree-table/tree-node.js.map +1 -0
  89. package/esm2015/lib/components/tables/tree-table/tree-table-component.js +95 -0
  90. package/esm2015/lib/components/tables/tree-table/tree-table-component.js.map +1 -0
  91. package/esm2015/lib/components/tables/tree-table/tree-table-component.metadata.json +1 -0
  92. package/esm2015/lib/components/tables/tree-table/tree-table-component.ngfactory.js.map +1 -0
  93. package/esm2015/lib/components/{tree-table → tables/tree-table}/tree-table-model.js +24 -20
  94. package/esm2015/lib/components/tables/tree-table/tree-table-model.js.map +1 -0
  95. package/esm2015/lib/components/tables/tree-table/tree-table-model.metadata.json +1 -0
  96. package/esm2015/lib/components/tables/tree-table/tree-table.component.scss.shim.ngstyle.js.map +1 -0
  97. package/esm2015/lib/components/tables/tree-table/tree-to-list-model.js.map +1 -0
  98. package/esm2015/lib/components/tables/tree-table/visitable.class.js.map +1 -0
  99. package/esm2015/lib/interaction/interaction.module.ngfactory.js.map +1 -1
  100. package/esm2015/lib/place/place.module.ngfactory.js.map +1 -1
  101. package/fesm2015/coolon-angular-ui-powerups.js +399 -291
  102. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  103. package/lib/components/exports.d.ts +32 -31
  104. package/lib/components/{table → tables}/abstract-table-model.d.ts +4 -4
  105. package/lib/components/{table/table.component.d.ts → tables/abstract-table.component.d.ts} +4 -3
  106. package/lib/components/{table → tables/table}/column-template/column-template.directive.d.ts +3 -3
  107. package/lib/components/{table → tables/table}/edit-row-controls/edit-row-controls.component.d.ts +1 -1
  108. package/lib/components/{table → tables/table}/paginator/paginator.component.d.ts +1 -1
  109. package/lib/components/{table → tables/table}/select-cell-renderer/select-cell-renderer.component.d.ts +1 -1
  110. package/lib/components/{table → tables/table}/select-header-cell-renderer/select-header-cell-renderer.component.d.ts +1 -1
  111. package/lib/components/{table → tables/table}/table-cell-renderer/table-cell-renderer.component.d.ts +2 -2
  112. package/lib/components/{table → tables/table}/table-model.d.ts +1 -1
  113. package/lib/components/{table → tables/table}/table-row-menu/table-row-menu.component.d.ts +2 -2
  114. package/lib/components/tables/table/table.component.d.ts +67 -0
  115. package/lib/components/{tree-table → tables/tree-table}/tree-label-cell-renderer/tree-label-cell-renderer.component.d.ts +1 -1
  116. package/lib/components/tables/tree-table/tree-table-component.d.ts +71 -0
  117. package/lib/components/{tree-table → tables/tree-table}/tree-table-model.d.ts +1 -11
  118. package/package.json +1 -1
  119. package/esm2015/lib/components/table/abstract-table-model.js.map +0 -1
  120. package/esm2015/lib/components/table/cell-editors.js.map +0 -1
  121. package/esm2015/lib/components/table/cell-portal-ref.js.map +0 -1
  122. package/esm2015/lib/components/table/cell-renderer.js.map +0 -1
  123. package/esm2015/lib/components/table/column-model.js.map +0 -1
  124. package/esm2015/lib/components/table/column-template/column-template.directive.js.map +0 -1
  125. package/esm2015/lib/components/table/column-template/column-template.directive.ngfactory.js.map +0 -1
  126. package/esm2015/lib/components/table/column-text-properties.js.map +0 -1
  127. package/esm2015/lib/components/table/default-cell-renderer/default-cell-renderer.component.js.map +0 -1
  128. package/esm2015/lib/components/table/default-cell-renderer/default-cell-renderer.component.ngfactory.js.map +0 -1
  129. package/esm2015/lib/components/table/default-cell-renderer/default-cell-renderer.component.scss.shim.ngstyle.js.map +0 -1
  130. package/esm2015/lib/components/table/default-header-cell-renderer/default-header-cell-renderer.component.js.map +0 -1
  131. package/esm2015/lib/components/table/default-header-cell-renderer/default-header-cell-renderer.component.ngfactory.js.map +0 -1
  132. package/esm2015/lib/components/table/default-header-cell-renderer/default-header-cell-renderer.component.scss.shim.ngstyle.js.map +0 -1
  133. package/esm2015/lib/components/table/edit-row-controls/edit-row-controls.component.js.map +0 -1
  134. package/esm2015/lib/components/table/edit-row-controls/edit-row-controls.component.metadata.json +0 -1
  135. package/esm2015/lib/components/table/edit-row-controls/edit-row-controls.component.ngfactory.js.map +0 -1
  136. package/esm2015/lib/components/table/edit-row-controls/edit-row-controls.component.scss.shim.ngstyle.js.map +0 -1
  137. package/esm2015/lib/components/table/edit-session.js.map +0 -1
  138. package/esm2015/lib/components/table/mutable-cell-renderer.js.map +0 -1
  139. package/esm2015/lib/components/table/paginator/paginator.component.js.map +0 -1
  140. package/esm2015/lib/components/table/paginator/paginator.component.metadata.json +0 -1
  141. package/esm2015/lib/components/table/paginator/paginator.component.ngfactory.js.map +0 -1
  142. package/esm2015/lib/components/table/paginator/paginator.component.scss.shim.ngstyle.js.map +0 -1
  143. package/esm2015/lib/components/table/select-cell-renderer/select-cell-renderer.component.js.map +0 -1
  144. package/esm2015/lib/components/table/select-cell-renderer/select-cell-renderer.component.metadata.json +0 -1
  145. package/esm2015/lib/components/table/select-cell-renderer/select-cell-renderer.component.ngfactory.js.map +0 -1
  146. package/esm2015/lib/components/table/select-cell-renderer/select-cell-renderer.component.scss.shim.ngstyle.js.map +0 -1
  147. package/esm2015/lib/components/table/select-header-cell-renderer/select-header-cell-renderer.component.js.map +0 -1
  148. package/esm2015/lib/components/table/select-header-cell-renderer/select-header-cell-renderer.component.metadata.json +0 -1
  149. package/esm2015/lib/components/table/select-header-cell-renderer/select-header-cell-renderer.component.ngfactory.js.map +0 -1
  150. package/esm2015/lib/components/table/select-header-cell-renderer/select-header-cell-renderer.component.scss.shim.ngstyle.js.map +0 -1
  151. package/esm2015/lib/components/table/table-cell-renderer/table-cell-renderer.component.js.map +0 -1
  152. package/esm2015/lib/components/table/table-cell-renderer/table-cell-renderer.component.metadata.json +0 -1
  153. package/esm2015/lib/components/table/table-cell-renderer/table-cell-renderer.component.ngfactory.js.map +0 -1
  154. package/esm2015/lib/components/table/table-cell-renderer/table-cell-renderer.component.scss.shim.ngstyle.js.map +0 -1
  155. package/esm2015/lib/components/table/table-def.js.map +0 -1
  156. package/esm2015/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.js.map +0 -1
  157. package/esm2015/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.ngfactory.js.map +0 -1
  158. package/esm2015/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.scss.shim.ngstyle.js.map +0 -1
  159. package/esm2015/lib/components/table/table-model.js.map +0 -1
  160. package/esm2015/lib/components/table/table-model.metadata.json +0 -1
  161. package/esm2015/lib/components/table/table-row-menu/table-row-menu.component.js.map +0 -1
  162. package/esm2015/lib/components/table/table-row-menu/table-row-menu.component.metadata.json +0 -1
  163. package/esm2015/lib/components/table/table-row-menu/table-row-menu.component.ngfactory.js.map +0 -1
  164. package/esm2015/lib/components/table/table.component.js.map +0 -1
  165. package/esm2015/lib/components/table/table.component.metadata.json +0 -1
  166. package/esm2015/lib/components/table/table.component.ngfactory.js.map +0 -1
  167. package/esm2015/lib/components/table/table.component.scss.shim.ngstyle.js.map +0 -1
  168. package/esm2015/lib/components/tree-table/decorated-tree-node.js.map +0 -1
  169. package/esm2015/lib/components/tree-table/tree-expansion-model.js.map +0 -1
  170. package/esm2015/lib/components/tree-table/tree-inheritance-icon/tree-inheritance-icon.component.js.map +0 -1
  171. package/esm2015/lib/components/tree-table/tree-inheritance-icon/tree-inheritance-icon.component.ngfactory.js.map +0 -1
  172. package/esm2015/lib/components/tree-table/tree-inheritance-icon/tree-inheritance-icon.component.scss.shim.ngstyle.js.map +0 -1
  173. package/esm2015/lib/components/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.js.map +0 -1
  174. package/esm2015/lib/components/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.metadata.json +0 -1
  175. package/esm2015/lib/components/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.ngfactory.js.map +0 -1
  176. package/esm2015/lib/components/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.scss.shim.ngstyle.js.map +0 -1
  177. package/esm2015/lib/components/tree-table/tree-label-column-model.js.map +0 -1
  178. package/esm2015/lib/components/tree-table/tree-node.js.map +0 -1
  179. package/esm2015/lib/components/tree-table/tree-table-component.js +0 -80
  180. package/esm2015/lib/components/tree-table/tree-table-component.js.map +0 -1
  181. package/esm2015/lib/components/tree-table/tree-table-component.metadata.json +0 -1
  182. package/esm2015/lib/components/tree-table/tree-table-component.ngfactory.js.map +0 -1
  183. package/esm2015/lib/components/tree-table/tree-table-model.js.map +0 -1
  184. package/esm2015/lib/components/tree-table/tree-table-model.metadata.json +0 -1
  185. package/esm2015/lib/components/tree-table/tree-table.component.scss.ngstyle.js.map +0 -1
  186. package/esm2015/lib/components/tree-table/tree-to-list-model.js.map +0 -1
  187. package/esm2015/lib/components/tree-table/visitable.class.js.map +0 -1
  188. package/lib/components/tree-table/tree-table-component.d.ts +0 -16
  189. /package/esm2015/lib/components/{table → tables}/abstract-table-model.metadata.json +0 -0
  190. /package/esm2015/lib/components/{table → tables/table}/cell-editors.js +0 -0
  191. /package/esm2015/lib/components/{table → tables/table}/cell-editors.metadata.json +0 -0
  192. /package/esm2015/lib/components/{table → tables/table}/cell-portal-ref.js +0 -0
  193. /package/esm2015/lib/components/{table → tables/table}/cell-portal-ref.metadata.json +0 -0
  194. /package/esm2015/lib/components/{table → tables/table}/cell-renderer.js +0 -0
  195. /package/esm2015/lib/components/{table → tables/table}/cell-renderer.metadata.json +0 -0
  196. /package/esm2015/lib/components/{table → tables/table}/column-model.js +0 -0
  197. /package/esm2015/lib/components/{table → tables/table}/column-model.metadata.json +0 -0
  198. /package/esm2015/lib/components/{table → tables/table}/column-text-properties.js +0 -0
  199. /package/esm2015/lib/components/{table → tables/table}/column-text-properties.metadata.json +0 -0
  200. /package/esm2015/lib/components/{table → tables/table}/default-cell-renderer/default-cell-renderer.component.js +0 -0
  201. /package/esm2015/lib/components/{table → tables/table}/default-cell-renderer/default-cell-renderer.component.metadata.json +0 -0
  202. /package/esm2015/lib/components/{table → tables/table}/default-header-cell-renderer/default-header-cell-renderer.component.js +0 -0
  203. /package/esm2015/lib/components/{table → tables/table}/default-header-cell-renderer/default-header-cell-renderer.component.metadata.json +0 -0
  204. /package/esm2015/lib/components/{table → tables/table}/edit-session.js +0 -0
  205. /package/esm2015/lib/components/{table → tables/table}/edit-session.metadata.json +0 -0
  206. /package/esm2015/lib/components/{table → tables/table}/mutable-cell-renderer.js +0 -0
  207. /package/esm2015/lib/components/{table → tables/table}/mutable-cell-renderer.metadata.json +0 -0
  208. /package/esm2015/lib/components/{table → tables/table}/table-def.js +0 -0
  209. /package/esm2015/lib/components/{table → tables/table}/table-def.metadata.json +0 -0
  210. /package/esm2015/lib/components/{table → tables/table}/table-header-cell-renderer/table-header-cell-renderer.component.js +0 -0
  211. /package/esm2015/lib/components/{table → tables/table}/table-header-cell-renderer/table-header-cell-renderer.component.metadata.json +0 -0
  212. /package/esm2015/lib/components/{tree-table → tables/tree-table}/decorated-tree-node.js +0 -0
  213. /package/esm2015/lib/components/{tree-table → tables/tree-table}/decorated-tree-node.metadata.json +0 -0
  214. /package/esm2015/lib/components/{tree-table → tables/tree-table}/tree-expansion-model.js +0 -0
  215. /package/esm2015/lib/components/{tree-table → tables/tree-table}/tree-expansion-model.metadata.json +0 -0
  216. /package/esm2015/lib/components/{tree-table → tables/tree-table}/tree-inheritance-icon/tree-inheritance-icon.component.js +0 -0
  217. /package/esm2015/lib/components/{tree-table → tables/tree-table}/tree-inheritance-icon/tree-inheritance-icon.component.metadata.json +0 -0
  218. /package/esm2015/lib/components/{tree-table → tables/tree-table}/tree-label-column-model.js +0 -0
  219. /package/esm2015/lib/components/{tree-table → tables/tree-table}/tree-label-column-model.metadata.json +0 -0
  220. /package/esm2015/lib/components/{tree-table → tables/tree-table}/tree-node.js +0 -0
  221. /package/esm2015/lib/components/{tree-table → tables/tree-table}/tree-node.metadata.json +0 -0
  222. /package/esm2015/lib/components/{tree-table → tables/tree-table}/tree-to-list-model.js +0 -0
  223. /package/esm2015/lib/components/{tree-table → tables/tree-table}/tree-to-list-model.metadata.json +0 -0
  224. /package/esm2015/lib/components/{tree-table → tables/tree-table}/visitable.class.js +0 -0
  225. /package/esm2015/lib/components/{tree-table → tables/tree-table}/visitable.class.metadata.json +0 -0
  226. /package/lib/components/{table → tables/table}/cell-editors.d.ts +0 -0
  227. /package/lib/components/{table → tables/table}/cell-portal-ref.d.ts +0 -0
  228. /package/lib/components/{table → tables/table}/cell-renderer.d.ts +0 -0
  229. /package/lib/components/{table → tables/table}/column-model.d.ts +0 -0
  230. /package/lib/components/{table → tables/table}/column-text-properties.d.ts +0 -0
  231. /package/lib/components/{table → tables/table}/default-cell-renderer/default-cell-renderer.component.d.ts +0 -0
  232. /package/lib/components/{table → tables/table}/default-header-cell-renderer/default-header-cell-renderer.component.d.ts +0 -0
  233. /package/lib/components/{table → tables/table}/edit-session.d.ts +0 -0
  234. /package/lib/components/{table → tables/table}/mutable-cell-renderer.d.ts +0 -0
  235. /package/lib/components/{table → tables/table}/table-def.d.ts +0 -0
  236. /package/lib/components/{table → tables/table}/table-header-cell-renderer/table-header-cell-renderer.component.d.ts +0 -0
  237. /package/lib/components/{tree-table → tables/tree-table}/decorated-tree-node.d.ts +0 -0
  238. /package/lib/components/{tree-table → tables/tree-table}/tree-expansion-model.d.ts +0 -0
  239. /package/lib/components/{tree-table → tables/tree-table}/tree-inheritance-icon/tree-inheritance-icon.component.d.ts +0 -0
  240. /package/lib/components/{tree-table → tables/tree-table}/tree-label-column-model.d.ts +0 -0
  241. /package/lib/components/{tree-table → tables/tree-table}/tree-node.d.ts +0 -0
  242. /package/lib/components/{tree-table → tables/tree-table}/tree-to-list-model.d.ts +0 -0
  243. /package/lib/components/{tree-table → tables/tree-table}/visitable.class.d.ts +0 -0
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core'), require('@angular/forms'), require('@angular/material/form-field'), require('@angular/material/input'), require('@angular/material/select'), require('@angular/material/tabs'), require('@angular/platform-browser/animations'), require('@angular/cdk/portal'), require('@angular/cdk/scrolling'), require('@angular/material/autocomplete'), require('@angular/material/button'), require('@angular/material/checkbox'), require('@angular/material/divider'), require('@angular/material/icon'), require('@angular/material/menu'), require('@angular/material/progress-spinner'), require('@angular/material/table'), require('@angular/material/tooltip'), require('@fortawesome/angular-fontawesome'), require('@fortawesome/free-solid-svg-icons'), require('@coolon/pectin'), require('@angular/platform-browser'), require('lodash'), require('@typescript-plus/fast-memoize-decorator/dist/src'), require('typescript-string-enums'), require('resize-observer-polyfill'), require('@coolon/typescript-utilities'), require('immer'), require('@angular/flex-layout'), require('@angular/material/dialog'), require('@angular/router'), require('@angular/cdk/overlay'), require('@angular/material/list'), require('@typescript-plus/fast-memoize-decorator'), require('reflect-metadata'), require('@angular/animations'), require('wake-event')) :
3
- typeof define === 'function' && define.amd ? define('@coolon/angular-ui-powerups', ['exports', '@angular/common', '@angular/core', '@angular/forms', '@angular/material/form-field', '@angular/material/input', '@angular/material/select', '@angular/material/tabs', '@angular/platform-browser/animations', '@angular/cdk/portal', '@angular/cdk/scrolling', '@angular/material/autocomplete', '@angular/material/button', '@angular/material/checkbox', '@angular/material/divider', '@angular/material/icon', '@angular/material/menu', '@angular/material/progress-spinner', '@angular/material/table', '@angular/material/tooltip', '@fortawesome/angular-fontawesome', '@fortawesome/free-solid-svg-icons', '@coolon/pectin', '@angular/platform-browser', 'lodash', '@typescript-plus/fast-memoize-decorator/dist/src', 'typescript-string-enums', 'resize-observer-polyfill', '@coolon/typescript-utilities', 'immer', '@angular/flex-layout', '@angular/material/dialog', '@angular/router', '@angular/cdk/overlay', '@angular/material/list', '@typescript-plus/fast-memoize-decorator', 'reflect-metadata', '@angular/animations', 'wake-event'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.coolon = global.coolon || {}, global.coolon['angular-ui-powerups'] = {}), global.ng.common, global.ng.core, global.ng.forms, global.ng.material.formField, global.ng.material.input, global.ng.material.select, global.ng.material.tabs, global.ng.platformBrowser.animations, global.ng.cdk.portal, global.ng.cdk.scrolling, global.ng.material.autocomplete, global.ng.material.button, global.ng.material.checkbox, global.ng.material.divider, global.ng.material.icon, global.ng.material.menu, global.ng.material.progressSpinner, global.ng.material.table, global.ng.material.tooltip, global.angularFontawesome, global.freeSolidSvgIcons, global.pectin, global.ng.platformBrowser, global._, global.src, global.typescriptStringEnums, global.ResizeObserver, global.typescriptUtilities, global.produce, global.ng.flexLayout, global.ng.material.dialog, global.ng.router, global.ng.cdk.overlay, global.ng.material.list, global.fastMemoizeDecorator, null, global.ng.animations, global.wakeEvent));
5
- }(this, (function (exports, i2, i0, forms, formField, input, select, tabs, animations, portal, scrolling, autocomplete, button, checkbox, divider, icon, menu, progressSpinner, table, tooltip, angularFontawesome, freeSolidSvgIcons, pectin, platformBrowser, _, src, typescriptStringEnums, ResizeObserver, typescriptUtilities, produce, flexLayout, i1, i1$1, overlay, list, fastMemoizeDecorator, reflectMetadata, animations$1, wakeEvent) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core'), require('@angular/forms'), require('@angular/material/form-field'), require('@angular/material/input'), require('@angular/material/select'), require('@angular/material/tabs'), require('@angular/platform-browser/animations'), require('@angular/cdk/portal'), require('@angular/cdk/scrolling'), require('@angular/material/autocomplete'), require('@angular/material/button'), require('@angular/material/checkbox'), require('@angular/material/divider'), require('@angular/material/icon'), require('@angular/material/menu'), require('@angular/material/progress-spinner'), require('@angular/material/table'), require('@angular/material/tooltip'), require('@fortawesome/angular-fontawesome'), require('@fortawesome/free-solid-svg-icons'), require('@coolon/pectin'), require('@angular/platform-browser'), require('lodash'), require('@typescript-plus/fast-memoize-decorator/dist/src'), require('typescript-string-enums'), require('@coolon/typescript-utilities'), require('resize-observer-polyfill'), require('immer'), require('@angular/flex-layout'), require('@angular/material/dialog'), require('@angular/router'), require('@angular/cdk/overlay'), require('@angular/material/list'), require('@typescript-plus/fast-memoize-decorator'), require('reflect-metadata'), require('@angular/animations'), require('wake-event')) :
3
+ typeof define === 'function' && define.amd ? define('@coolon/angular-ui-powerups', ['exports', '@angular/common', '@angular/core', '@angular/forms', '@angular/material/form-field', '@angular/material/input', '@angular/material/select', '@angular/material/tabs', '@angular/platform-browser/animations', '@angular/cdk/portal', '@angular/cdk/scrolling', '@angular/material/autocomplete', '@angular/material/button', '@angular/material/checkbox', '@angular/material/divider', '@angular/material/icon', '@angular/material/menu', '@angular/material/progress-spinner', '@angular/material/table', '@angular/material/tooltip', '@fortawesome/angular-fontawesome', '@fortawesome/free-solid-svg-icons', '@coolon/pectin', '@angular/platform-browser', 'lodash', '@typescript-plus/fast-memoize-decorator/dist/src', 'typescript-string-enums', '@coolon/typescript-utilities', 'resize-observer-polyfill', 'immer', '@angular/flex-layout', '@angular/material/dialog', '@angular/router', '@angular/cdk/overlay', '@angular/material/list', '@typescript-plus/fast-memoize-decorator', 'reflect-metadata', '@angular/animations', 'wake-event'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.coolon = global.coolon || {}, global.coolon['angular-ui-powerups'] = {}), global.ng.common, global.ng.core, global.ng.forms, global.ng.material.formField, global.ng.material.input, global.ng.material.select, global.ng.material.tabs, global.ng.platformBrowser.animations, global.ng.cdk.portal, global.ng.cdk.scrolling, global.ng.material.autocomplete, global.ng.material.button, global.ng.material.checkbox, global.ng.material.divider, global.ng.material.icon, global.ng.material.menu, global.ng.material.progressSpinner, global.ng.material.table, global.ng.material.tooltip, global.angularFontawesome, global.freeSolidSvgIcons, global.pectin, global.ng.platformBrowser, global._, global.src, global.typescriptStringEnums, global.typescriptUtilities, global.ResizeObserver, global.produce, global.ng.flexLayout, global.ng.material.dialog, global.ng.router, global.ng.cdk.overlay, global.ng.material.list, global.fastMemoizeDecorator, null, global.ng.animations, global.wakeEvent));
5
+ }(this, (function (exports, i2, i0, forms, formField, input, select, tabs, animations, portal, scrolling, autocomplete, button, checkbox, divider, icon, menu, progressSpinner, table, tooltip, angularFontawesome, freeSolidSvgIcons, pectin, platformBrowser, _, src, typescriptStringEnums, typescriptUtilities, ResizeObserver, produce, flexLayout, i1, i1$1, overlay, list, fastMemoizeDecorator, reflectMetadata, animations$1, wakeEvent) { 'use strict';
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
8
 
@@ -3197,247 +3197,6 @@
3197
3197
  return SelectionColumnModel;
3198
3198
  }(ColumnModel));
3199
3199
 
3200
- var EditSession = /** @class */ (function (_super) {
3201
- __extends(EditSession, _super);
3202
- function EditSession(rowId, row, form, saveCommand) {
3203
- var _this = _super.call(this) || this;
3204
- _this.rowId = rowId;
3205
- _this.form = form;
3206
- _this.saveCommand = saveCommand;
3207
- _this._liveRowValue = new pectin.MutableValueModel();
3208
- _this.liveRowValue = _this._liveRowValue.readonly;
3209
- _this.form.load(row);
3210
- _this._liveRowValue.value = row;
3211
- _this.form.onEdit(function () {
3212
- // if (!this._liveRowValue.value[immerable]) {
3213
- // console.warn()
3214
- // }
3215
- _this._liveRowValue.value = produce__default['default'](_this._liveRowValue.value, function (draft) {
3216
- _this.form.writeDirtyStateTo(draft);
3217
- });
3218
- });
3219
- return _this;
3220
- }
3221
- return EditSession;
3222
- }(pectin.GarbageCollector));
3223
-
3224
- // export type StringPropertiesOf<T> = { [K in keyof T]: T[K] extends string ? K : never }[keyof T];
3225
- // export type NumberPropertiesOf<T> = { [K in keyof T]: T[K] extends number ? K : never }[keyof T];
3226
- var RowClass = /** @class */ (function () {
3227
- function RowClass(className, matches) {
3228
- this.className = className;
3229
- this.matches = matches;
3230
- }
3231
- return RowClass;
3232
- }());
3233
- var VisibleColumnListModel = /** @class */ (function (_super) {
3234
- __extends(VisibleColumnListModel, _super);
3235
- function VisibleColumnListModel() {
3236
- var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
3237
- _this.columns = [];
3238
- return _this;
3239
- }
3240
- VisibleColumnListModel.prototype.addColumn = function (column) {
3241
- var _this = this;
3242
- this.runInTransaction(function () {
3243
- _this.columns.push(column);
3244
- _this.trackSource(column.visible);
3245
- });
3246
- };
3247
- VisibleColumnListModel.prototype.doComputeValue = function () {
3248
- return this.columns.filter(function (c) { return c.visible.value; });
3249
- };
3250
- return VisibleColumnListModel;
3251
- }(pectin.AbstractComputedListModel));
3252
- var AbstractTableModel = /** @class */ (function (_super) {
3253
- __extends(AbstractTableModel, _super);
3254
- function AbstractTableModel(sourceOfTruth) {
3255
- var _this = _super.call(this) || this;
3256
- _this.sourceOfTruth = sourceOfTruth;
3257
- _this._columns = new pectin.MutableListModel();
3258
- _this._visibleColumnTracker = new VisibleColumnListModel();
3259
- _this._editorSessions = new pectin.MutableListModel();
3260
- _this.rowClassNamePredicates = [];
3261
- _this.rowClickListeners = new pectin.EventListenerList();
3262
- _this._createForm = function (row) { return new pectin.DirtyTrackingForm(); };
3263
- _this.trackBy = function (index, item) {
3264
- return _this.identityOf ? _this.identityOf(item) : index;
3265
- };
3266
- _this.identityOf = sourceOfTruth.identityOf;
3267
- var _b = pectin.Dsl.disposeWith(_this), chain = _b.chain, valueOf = _b.valueOf, before = _b.before, when = _b.when, after = _b.after, observe = _b.observe, switchOn = _b.switchOn;
3268
- _this._columnsById = chain(_this._columns).indexBy('columnId');
3269
- _this._rowsBeingEdited = new pectin.MutableListModel([], {
3270
- identifiedWith: _this.identityOf
3271
- });
3272
- _this._editorSessionByRowId = chain(_this._editorSessions).indexBy('rowId');
3273
- _this.editing = chain(_this._editorSessions).count().isGreaterThan(0);
3274
- _this.dataSource = chain(_this.sourceOfTruth).replaceAll(_this.rowsBeingEdited);
3275
- _this.firstEditableColumn = chain(_this.columns).select(function (c) { return c.hasEditorPortal(); }).first();
3276
- _this.firstVisibleColumn = chain(_this._visibleColumnTracker).first();
3277
- _this.lastVisibleColumn = chain(_this._visibleColumnTracker).last();
3278
- _this.rowSelectionDisabledOnAllColumns = chain(_this._visibleColumnTracker).select(function (column) { return column.isRowSelectionEnabled(); }).count().equals(0);
3279
- return _this;
3280
- }
3281
- Object.defineProperty(AbstractTableModel.prototype, "rowsBeingEdited", {
3282
- get: function () {
3283
- return this._rowsBeingEdited.readonly;
3284
- },
3285
- enumerable: false,
3286
- configurable: true
3287
- });
3288
- Object.defineProperty(AbstractTableModel.prototype, "columns", {
3289
- get: function () {
3290
- return this._columns.readonly;
3291
- },
3292
- enumerable: false,
3293
- configurable: true
3294
- });
3295
- Object.defineProperty(AbstractTableModel.prototype, "visibleColumns", {
3296
- get: function () {
3297
- return this._visibleColumnTracker.readonly;
3298
- },
3299
- enumerable: false,
3300
- configurable: true
3301
- });
3302
- AbstractTableModel.prototype.pluck = function (property, options) {
3303
- var _this = this;
3304
- var columnId = (options === null || options === void 0 ? void 0 : options.columnId) || property.toString();
3305
- return this.addColumn(new PropertyColumnModel(columnId, property, function () { return _this.getColumnTextProperties(columnId); }));
3306
- };
3307
- AbstractTableModel.prototype.pluckList = function (property, options) {
3308
- var _this = this;
3309
- var columnId = (options === null || options === void 0 ? void 0 : options.columnId) || property.toString();
3310
- return this.addColumn(new ListPropertyColumnModel(columnId, property, function () { return _this.getColumnTextProperties(columnId); }));
3311
- };
3312
- AbstractTableModel.prototype._addSelectionColumn = function (selectionModel, visible) {
3313
- var _this = this;
3314
- pectin.assert.isNil(this.selectionColumnModel);
3315
- var columnId = 'selection-column';
3316
- this.selectionColumnModel = new SelectionColumnModel(columnId, function () { return _this.getColumnTextProperties(columnId); }, selectionModel);
3317
- this.addRowClass('aup-row-selected', function (row) { return _this.selectionColumnModel.isSelected(row); });
3318
- var selectionColumnModel = this.addColumn(this.selectionColumnModel);
3319
- if (!___namespace.isNil(visible)) {
3320
- selectionColumnModel.visibleWhile(visible instanceof pectin.ValueModel ? visible : pectin.ValueModel.constant(visible));
3321
- }
3322
- return selectionColumnModel;
3323
- };
3324
- AbstractTableModel.prototype.addEditControls = function (saveCommand) {
3325
- var _this = this;
3326
- this.saveCommand = saveCommand;
3327
- var columnId = 'editControls';
3328
- return this.addColumn(new EditorControlColumnModel(columnId, saveCommand, function () { return _this.getColumnTextProperties(columnId); }));
3329
- };
3330
- AbstractTableModel.prototype.addCustomColumn = function (columnId, dataAccessor) {
3331
- var _this = this;
3332
- return this.addColumn(new CustomValueColumnModel(columnId, function () { return _this.getColumnTextProperties(columnId); }, dataAccessor));
3333
- };
3334
- AbstractTableModel.prototype.addComponentColumn = function (columnId, component, onComponentInitOrOptions) {
3335
- var _this = this;
3336
- return this.addColumn(new CustomValueColumnModel(columnId, function () { return _this.getColumnTextProperties(columnId); }, function (row) { return row; })).cellRenderer(component, onComponentInitOrOptions);
3337
- };
3338
- AbstractTableModel.prototype.addTemplateColumn = function (columnId) {
3339
- var _this = this;
3340
- return this.addColumn(new CustomTemplateColumnModel(columnId, function () { return _this.getColumnTextProperties(columnId); }));
3341
- };
3342
- AbstractTableModel.prototype.addRowClass = function (className, predicate) {
3343
- this.rowClassNamePredicates.push(new RowClass(className, predicate));
3344
- };
3345
- AbstractTableModel.prototype.getRowClasses = function (row) {
3346
- var classNames = [];
3347
- this.rowClassNamePredicates.forEach(function (i) {
3348
- if (i.matches(row)) {
3349
- classNames.push(i.className);
3350
- }
3351
- });
3352
- return classNames;
3353
- };
3354
- AbstractTableModel.prototype.useFormFactory = function (factory) {
3355
- this._createForm = factory;
3356
- return this;
3357
- };
3358
- AbstractTableModel.prototype.addColumn = function (column) {
3359
- if (this._columnsById.get(column.columnId)) {
3360
- pectin.lang.illegalState("Column with id=" + column.columnId + " already exists");
3361
- }
3362
- else {
3363
- this._columns.push(column);
3364
- this._visibleColumnTracker.addColumn(column);
3365
- }
3366
- return column;
3367
- };
3368
- // removeColumn(column: ColumnModel<Row>) {
3369
- //
3370
- // }
3371
- AbstractTableModel.prototype.columnTextProperties = function (columnTextProperties) {
3372
- this._columnTextPropertiesLookup = columnTextProperties;
3373
- };
3374
- AbstractTableModel.prototype.getColumnTextProperties = function (columnId) {
3375
- return this._columnTextPropertiesLookup ? this._columnTextPropertiesLookup[columnId] : undefined;
3376
- };
3377
- AbstractTableModel.prototype.startEditSession = function (row) {
3378
- var _this = this;
3379
- var rowId = this.identityOf(row);
3380
- if (this._rowsBeingEdited.query().indexOf(row) > -1) {
3381
- return pectin.lang.illegalState("Row with id=" + rowId + " already being edited");
3382
- }
3383
- else {
3384
- var editSession_1 = new EditSession(rowId, row, this._createForm(row), this.saveCommand);
3385
- var when = pectin.Dsl.disposeWith(editSession_1).when;
3386
- when(editSession_1.liveRowValue).changes(function (editedValue) {
3387
- _this._rowsBeingEdited.replaceOrPush(editedValue);
3388
- }, { initialValue: 'triggerChangeUnlessNil' });
3389
- this._editorSessions.push(editSession_1);
3390
- editSession_1.onDispose(function () {
3391
- _this._rowsBeingEdited.remove(editSession_1.liveRowValue.value);
3392
- _this._editorSessions.remove(editSession_1);
3393
- });
3394
- return editSession_1;
3395
- }
3396
- };
3397
- AbstractTableModel.prototype.getEditSessionFor = function (row) {
3398
- return this._editorSessionByRowId.get(this.identityOf(row));
3399
- };
3400
- AbstractTableModel.prototype.cancelAllEditorSessions = function () {
3401
- var _this = this;
3402
- this._editorSessions.runInTransaction(function (draft) {
3403
- _this._rowsBeingEdited.runInTransaction(function () {
3404
- draft.value.forEach(function (session) { return session.dispose(); });
3405
- });
3406
- });
3407
- };
3408
- AbstractTableModel.prototype.isRowSelectionEnabledFor = function (column) {
3409
- return this.isRowSelectionEnabled() && column.isRowSelectionEnabled();
3410
- };
3411
- AbstractTableModel.prototype.isRowSelectionEnabled = function () {
3412
- return this.hasSelectionModel() && !this.rowSelectionDisabledOnAllColumns.value;
3413
- };
3414
- AbstractTableModel.prototype.hasSelectionModel = function () {
3415
- var _a;
3416
- return !!((_a = this.selectionColumnModel) === null || _a === void 0 ? void 0 : _a.selectionModel.getDelegate());
3417
- };
3418
- AbstractTableModel.prototype.isHoverEnabled = function () {
3419
- return this.isRowSelectionEnabled() || this.rowClickListeners.listenerCount > 0;
3420
- };
3421
- AbstractTableModel.prototype.isCursorEnabled = function (column) {
3422
- return this.isRowSelectionEnabledFor(column) || this.rowClickListeners.listenerCount > 0;
3423
- };
3424
- AbstractTableModel.prototype.selectRow = function (row) {
3425
- var _a;
3426
- (_a = this.selectionColumnModel) === null || _a === void 0 ? void 0 : _a.selectRow(row);
3427
- };
3428
- AbstractTableModel.prototype.onRowClicked = function (callback) {
3429
- return this.rowClickListeners.add(callback);
3430
- };
3431
- AbstractTableModel.prototype._notifyCellClicked = function (columnModel, row) {
3432
- if (this.isRowSelectionEnabledFor(columnModel)) {
3433
- this.selectRow(row);
3434
- }
3435
- this.rowClickListeners.fire(function (l) { return l(row); });
3436
- };
3437
- return AbstractTableModel;
3438
- }(pectin.GarbageCollector));
3439
- pectin.TrackExternal.oneTimeBinding(AbstractTableModel);
3440
-
3441
3200
  /**
3442
3201
  * Create your model:
3443
3202
  * @example
@@ -3497,9 +3256,9 @@
3497
3256
  * }
3498
3257
  * }
3499
3258
  */
3500
- var TableComponent = /** @class */ (function (_super) {
3501
- __extends(TableComponent, _super);
3502
- function TableComponent(elementRef, ngZone) {
3259
+ var AbstractTableComponent = /** @class */ (function (_super) {
3260
+ __extends(AbstractTableComponent, _super);
3261
+ function AbstractTableComponent(elementRef, ngZone) {
3503
3262
  var _this = _super.call(this, elementRef, ngZone) || this;
3504
3263
  /**
3505
3264
  * Set to true to enable scrolling. Once enabled the table will have 0 implicit height. You will either
@@ -3510,6 +3269,7 @@
3510
3269
  // TODO: support user defined header and row heights via css vars.
3511
3270
  _this.headerHeight = new pectin.MutableValueModel(56);
3512
3271
  _this.rowHeight = new pectin.MutableValueModel(48);
3272
+ _this.baseCssClass = 'aup-table-component';
3513
3273
  var _b = pectin.Dsl.disposeWith(_this), chain = _b.chain, when = _b.when;
3514
3274
  var actualHeaderHeight = chain(_this.showHeaderModel).map(function (show) {
3515
3275
  return show ? _this.headerHeight.value : 0;
@@ -3517,51 +3277,52 @@
3517
3277
  _this.visibleRowCount = chain(_this.boundsModel).map(function (bounds) {
3518
3278
  // TODO: this doesn't take into account any css styling adjustments etc. Will invistigate if it's an issue.
3519
3279
  var rawRowCount = (bounds.height - actualHeaderHeight.value) / _this.rowHeight.value;
3520
- var rowCount = rawRowCount < 1 ? 0 : Math.floor(rawRowCount);
3521
- // console.log({rowCount})
3522
- return rowCount;
3280
+ return rawRowCount < 1 ? 0 : Math.floor(rawRowCount);
3523
3281
  }, {
3524
3282
  dependsOn: [actualHeaderHeight, _this.rowHeight],
3525
3283
  postponeWhile: chain(_this.boundsModel).pluckNumeric('height').isLessThan(1)
3526
3284
  });
3527
3285
  return _this;
3528
3286
  }
3529
- Object.defineProperty(TableComponent.prototype, "hideHeader", {
3287
+ Object.defineProperty(AbstractTableComponent.prototype, "hideHeader", {
3530
3288
  get: function () {
3531
3289
  return !this.showHeader;
3532
3290
  },
3533
3291
  enumerable: false,
3534
3292
  configurable: true
3535
3293
  });
3536
- TableComponent.prototype.ngOnInit = function () {
3294
+ AbstractTableComponent.prototype.getModel = function () {
3295
+ return typescriptUtilities.lang.abstractMethod(this.constructor);
3296
+ };
3297
+ AbstractTableComponent.prototype.ngOnInit = function () {
3537
3298
  var _b = pectin.Dsl.disposeWith(this), chain = _b.chain, valueOf = _b.valueOf, before = _b.before, when = _b.when, after = _b.after, observe = _b.observe, switchOn = _b.switchOn;
3538
- this.columns = chain(this.tableModel.columns);
3299
+ this.columns = chain(this.getModel().columns);
3539
3300
  this.columnIds = chain(this.columns).pluck('columnId');
3540
3301
  this.columnsById = chain(this.columns).indexBy('columnId');
3541
3302
  };
3542
- TableComponent.prototype.isEditing = function (row) {
3543
- return !!this.tableModel.getEditSessionFor(row);
3303
+ AbstractTableComponent.prototype.isEditing = function (row) {
3304
+ return !!this.getModel().getEditSessionFor(row);
3544
3305
  };
3545
- TableComponent.prototype.registerColumnTemplate = function (columnId, templateRef, viewContainer, fillCell, padChild) {
3306
+ AbstractTableComponent.prototype.registerColumnTemplate = function (columnId, templateRef, viewContainer, fillCell, padChild) {
3546
3307
  var column = this.columnsById.get(columnId);
3547
3308
  if (column instanceof CustomTemplateColumnModel) {
3548
3309
  column.setTemplate(templateRef, viewContainer, fillCell, padChild);
3549
3310
  }
3550
3311
  };
3551
- TableComponent.prototype.notifyCellClicked = function (columnModel, row) {
3552
- this.tableModel._notifyCellClicked(columnModel, row);
3312
+ AbstractTableComponent.prototype.notifyCellClicked = function (columnModel, row) {
3313
+ this.getModel()._notifyCellClicked(columnModel, row);
3553
3314
  };
3554
3315
  // @Trace()
3555
- TableComponent.prototype.isFirstVisibleColumn = function (columnId) {
3316
+ AbstractTableComponent.prototype.isFirstVisibleColumn = function (columnId) {
3556
3317
  var _a;
3557
- return ((_a = this.tableModel.firstVisibleColumn.query().value) === null || _a === void 0 ? void 0 : _a.columnId) === columnId;
3318
+ return ((_a = this.getModel().firstVisibleColumn.query().value) === null || _a === void 0 ? void 0 : _a.columnId) === columnId;
3558
3319
  };
3559
3320
  // @Trace()
3560
- TableComponent.prototype.isLastVisibleColumn = function (columnId) {
3321
+ AbstractTableComponent.prototype.isLastVisibleColumn = function (columnId) {
3561
3322
  var _a;
3562
- return ((_a = this.tableModel.lastVisibleColumn.query().value) === null || _a === void 0 ? void 0 : _a.columnId) === columnId;
3323
+ return ((_a = this.getModel().lastVisibleColumn.query().value) === null || _a === void 0 ? void 0 : _a.columnId) === columnId;
3563
3324
  };
3564
- TableComponent.prototype.getColumnClasses = function (columnId) {
3325
+ AbstractTableComponent.prototype.getColumnClasses = function (columnId) {
3565
3326
  var classes = ["aup-col-" + this.columnsById.get(columnId).dasherisedColumnId];
3566
3327
  if (this.isFirstVisibleColumn(columnId)) {
3567
3328
  classes.push('first-visible-column');
@@ -3571,38 +3332,33 @@
3571
3332
  }
3572
3333
  return classes;
3573
3334
  };
3574
- return TableComponent;
3335
+ return AbstractTableComponent;
3575
3336
  }(ResizeAwareComponent));
3576
- TableComponent.decorators = [
3337
+ AbstractTableComponent.decorators = [
3577
3338
  { type: i0.Component, args: [{
3578
- selector: 'aup-table',
3579
- template: "<div class=\"scroll-container\">\n <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\"\n matColumnDef=\"{{column.columnId}}\">\n <th mat-header-cell *matHeaderCellDef [class.flex]=\"column.isFlex()\" [class.hide]=\"!column.isVisible()\">\n <aup-table-header-cell-renderer [column]=\"column\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-header-cell-renderer>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"notifyCellClicked(column, row)\"\n [class.enable-cursor]=\"tableModel.isCursorEnabled(column)\"\n [class.flex]=\"column.isFlex()\"\n [class.hide]=\"!column.isVisible()\"\n >\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]=\"getColumnClasses(column.columnId)\"\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)\" [class.enable-hover]=\"tableModel.isHoverEnabled()\"\n [attr.trackBy]=\"tableModel.trackBy(i, row)\"\n ></tr>\n\n </table>\n</div>\n",
3580
- styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host table{width:100%}:host.enable-scrolling{min-height:0}:host.enable-scrolling .scroll-container{flex:1;flex-basis:0;overflow-y:auto;display:flex;flex-direction:column;align-items:stretch}"]
3339
+ selector: 'aup-abstract-table',
3340
+ template: ''
3581
3341
  },] }
3582
3342
  ];
3583
- TableComponent.ctorParameters = function () { return [
3343
+ AbstractTableComponent.ctorParameters = function () { return [
3584
3344
  { type: i0.ElementRef },
3585
3345
  { type: i0.NgZone }
3586
3346
  ]; };
3587
- TableComponent.propDecorators = {
3588
- tableModel: [{ type: i0.Input }],
3347
+ AbstractTableComponent.propDecorators = {
3589
3348
  showHeaderModel: [{ type: i0.Input }],
3590
3349
  showHeader: [{ type: i0.Input }],
3591
3350
  enableScrolling: [{ type: i0.Input }, { type: i0.HostBinding, args: ['class.enable-scrolling',] }],
3351
+ baseCssClass: [{ type: i0.HostBinding, args: ['class',] }],
3592
3352
  hideHeader: [{ type: i0.HostBinding, args: ['class.hide-header',] }]
3593
3353
  };
3594
- __decorate([
3595
- pectin.TrackExternal(),
3596
- __metadata("design:type", AbstractTableModel)
3597
- ], TableComponent.prototype, "tableModel", void 0);
3598
3354
  __decorate([
3599
3355
  pectin.TrackExternal({ defaultValue: true }),
3600
3356
  __metadata("design:type", pectin.ValueModel)
3601
- ], TableComponent.prototype, "showHeaderModel", void 0);
3357
+ ], AbstractTableComponent.prototype, "showHeaderModel", void 0);
3602
3358
  __decorate([
3603
3359
  pectin.StoreInValueModel('showHeaderModel'),
3604
3360
  __metadata("design:type", Boolean)
3605
- ], TableComponent.prototype, "showHeader", void 0);
3361
+ ], AbstractTableComponent.prototype, "showHeader", void 0);
3606
3362
 
3607
3363
  var ColumnTemplateDirective = /** @class */ (function () {
3608
3364
  function ColumnTemplateDirective(host, templateRef, viewContainer) {
@@ -3625,7 +3381,7 @@
3625
3381
  },] }
3626
3382
  ];
3627
3383
  ColumnTemplateDirective.ctorParameters = function () { return [
3628
- { type: TableComponent },
3384
+ { type: AbstractTableComponent },
3629
3385
  { type: i0.TemplateRef },
3630
3386
  { type: i0.ViewContainerRef }
3631
3387
  ]; };
@@ -3721,80 +3477,412 @@
3721
3477
  TableHeaderCellRendererComponent.prototype.ngOnInit = function () {
3722
3478
  this.column.attachHeaderCell(this);
3723
3479
  };
3724
- // @Trace()
3725
- TableHeaderCellRendererComponent.prototype.initialiseHeader = function (instance) {
3726
- this.column.onHeaderAttached(this, instance);
3480
+ // @Trace()
3481
+ TableHeaderCellRendererComponent.prototype.initialiseHeader = function (instance) {
3482
+ this.column.onHeaderAttached(this, instance);
3483
+ };
3484
+ TableHeaderCellRendererComponent.prototype.getPortal = function () {
3485
+ return this[HEADER_CELL_RENDERER_PORTAL];
3486
+ };
3487
+ return TableHeaderCellRendererComponent;
3488
+ }());
3489
+ TableHeaderCellRendererComponent.decorators = [
3490
+ { type: i0.Component, args: [{
3491
+ selector: 'aup-table-header-cell-renderer',
3492
+ template: "<ng-container [cdkPortalOutlet]=\"getPortal()\" (attached)=\"initialiseHeader($event.instance)\"></ng-container>\n",
3493
+ styles: [":host{display:flex;flex-direction:column;align-items:stretch;justify-content:center;height:100%}"]
3494
+ },] }
3495
+ ];
3496
+ TableHeaderCellRendererComponent.ctorParameters = function () { return []; };
3497
+ TableHeaderCellRendererComponent.propDecorators = {
3498
+ column: [{ type: i0.Input }],
3499
+ defaultClassNames: [{ type: i0.HostBinding, args: ['class',] }]
3500
+ };
3501
+
3502
+ var MenuItemData = /** @class */ (function () {
3503
+ function MenuItemData(factory, face) {
3504
+ this.factory = factory;
3505
+ this.face = face;
3506
+ }
3507
+ return MenuItemData;
3508
+ }());
3509
+ /**
3510
+ *
3511
+ */
3512
+ var TableRowMenuComponent = /** @class */ (function (_super) {
3513
+ __extends(TableRowMenuComponent, _super);
3514
+ function TableRowMenuComponent() {
3515
+ var _this = _super.call(this) || this;
3516
+ _this.actions = [];
3517
+ _this.moreActions = [];
3518
+ return _this;
3519
+ }
3520
+ TableRowMenuComponent.prototype.registerAction = function (commandFactory, properties) {
3521
+ this.actions.push(new MenuItemData(commandFactory, properties));
3522
+ };
3523
+ TableRowMenuComponent.prototype.registerMoreAction = function (commandFactory, properties) {
3524
+ this.moreActions.push(new MenuItemData(commandFactory, properties));
3525
+ };
3526
+ TableRowMenuComponent.prototype.ngOnInit = function () {
3527
+ };
3528
+ TableRowMenuComponent.prototype.createMoreMenuCommand = function (item, value) {
3529
+ var _this = this;
3530
+ var when = pectin.Dsl.disposeWith(this).when;
3531
+ var command = item.factory.create(value);
3532
+ when(command.busy).becomesFalsey(function () {
3533
+ _this.closeMoreMenu();
3534
+ });
3535
+ return command;
3536
+ };
3537
+ TableRowMenuComponent.prototype.closeMoreMenu = function () {
3538
+ this.menu.closeMenu();
3539
+ };
3540
+ return TableRowMenuComponent;
3541
+ }(DisposableComponent));
3542
+ TableRowMenuComponent.decorators = [
3543
+ { type: i0.Component, args: [{
3544
+ selector: 'aup-table-row-menu',
3545
+ template: "\n <aup-tool-bar>\n <aup-command *ngFor=\"let action of actions\" [command]=\"action.factory.create(value)\"\n [face]=\"action.face\"></aup-command>\n </aup-tool-bar>\n <ng-container *ngIf=\"moreActions.length > 0\">\n <aup-more-menu>\n <aup-command *ngFor=\"let action of moreActions\" [command]=\"action.factory.create(value)\"\n [face]=\"action.face\"></aup-command>\n </aup-more-menu>\n </ng-container>\n ",
3546
+ styles: [":host {\n display: inline-flex;\n flex-direction: row;\n align-items: center;\n }"]
3547
+ },] }
3548
+ ];
3549
+ TableRowMenuComponent.ctorParameters = function () { return []; };
3550
+ TableRowMenuComponent.propDecorators = {
3551
+ value: [{ type: i0.Input }],
3552
+ menu: [{ type: i0.ViewChild, args: [menu.MatMenuTrigger,] }]
3553
+ };
3554
+
3555
+ var EditSession = /** @class */ (function (_super) {
3556
+ __extends(EditSession, _super);
3557
+ function EditSession(rowId, row, form, saveCommand) {
3558
+ var _this = _super.call(this) || this;
3559
+ _this.rowId = rowId;
3560
+ _this.form = form;
3561
+ _this.saveCommand = saveCommand;
3562
+ _this._liveRowValue = new pectin.MutableValueModel();
3563
+ _this.liveRowValue = _this._liveRowValue.readonly;
3564
+ _this.form.load(row);
3565
+ _this._liveRowValue.value = row;
3566
+ _this.form.onEdit(function () {
3567
+ // if (!this._liveRowValue.value[immerable]) {
3568
+ // console.warn()
3569
+ // }
3570
+ _this._liveRowValue.value = produce__default['default'](_this._liveRowValue.value, function (draft) {
3571
+ _this.form.writeDirtyStateTo(draft);
3572
+ });
3573
+ });
3574
+ return _this;
3575
+ }
3576
+ return EditSession;
3577
+ }(pectin.GarbageCollector));
3578
+
3579
+ // export type StringPropertiesOf<T> = { [K in keyof T]: T[K] extends string ? K : never }[keyof T];
3580
+ // export type NumberPropertiesOf<T> = { [K in keyof T]: T[K] extends number ? K : never }[keyof T];
3581
+ var RowClass = /** @class */ (function () {
3582
+ function RowClass(className, matches) {
3583
+ this.className = className;
3584
+ this.matches = matches;
3585
+ }
3586
+ return RowClass;
3587
+ }());
3588
+ var VisibleColumnListModel = /** @class */ (function (_super) {
3589
+ __extends(VisibleColumnListModel, _super);
3590
+ function VisibleColumnListModel() {
3591
+ var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
3592
+ _this.columns = [];
3593
+ return _this;
3594
+ }
3595
+ VisibleColumnListModel.prototype.addColumn = function (column) {
3596
+ var _this = this;
3597
+ this.runInTransaction(function () {
3598
+ _this.columns.push(column);
3599
+ _this.trackSource(column.visible);
3600
+ });
3601
+ };
3602
+ VisibleColumnListModel.prototype.doComputeValue = function () {
3603
+ return this.columns.filter(function (c) { return c.visible.value; });
3604
+ };
3605
+ return VisibleColumnListModel;
3606
+ }(pectin.AbstractComputedListModel));
3607
+ var AbstractTableModel = /** @class */ (function (_super) {
3608
+ __extends(AbstractTableModel, _super);
3609
+ function AbstractTableModel(sourceOfTruth) {
3610
+ var _this = _super.call(this) || this;
3611
+ _this.sourceOfTruth = sourceOfTruth;
3612
+ _this._columns = new pectin.MutableListModel();
3613
+ _this._visibleColumnTracker = new VisibleColumnListModel();
3614
+ _this._editorSessions = new pectin.MutableListModel();
3615
+ _this.rowClassNamePredicates = [];
3616
+ _this.rowClickListeners = new pectin.EventListenerList();
3617
+ _this._createForm = function (row) { return new pectin.DirtyTrackingForm(); };
3618
+ _this.trackBy = function (index, item) {
3619
+ return _this.identityOf ? _this.identityOf(item) : index;
3620
+ };
3621
+ _this.identityOf = sourceOfTruth.identityOf;
3622
+ var _b = pectin.Dsl.disposeWith(_this), chain = _b.chain, valueOf = _b.valueOf, before = _b.before, when = _b.when, after = _b.after, observe = _b.observe, switchOn = _b.switchOn;
3623
+ _this._columnsById = chain(_this._columns).indexBy('columnId');
3624
+ _this._rowsBeingEdited = new pectin.MutableListModel([], {
3625
+ identifiedWith: _this.identityOf
3626
+ });
3627
+ _this._editorSessionByRowId = chain(_this._editorSessions).indexBy('rowId');
3628
+ _this.editing = chain(_this._editorSessions).count().isGreaterThan(0);
3629
+ _this.dataSource = chain(_this.sourceOfTruth).replaceAll(_this.rowsBeingEdited);
3630
+ _this.firstEditableColumn = chain(_this.columns).select(function (c) { return c.hasEditorPortal(); }).first();
3631
+ _this.firstVisibleColumn = chain(_this._visibleColumnTracker).first();
3632
+ _this.lastVisibleColumn = chain(_this._visibleColumnTracker).last();
3633
+ _this.rowSelectionDisabledOnAllColumns = chain(_this._visibleColumnTracker).select(function (column) { return column.isRowSelectionEnabled(); }).count().equals(0);
3634
+ return _this;
3635
+ }
3636
+ Object.defineProperty(AbstractTableModel.prototype, "rowsBeingEdited", {
3637
+ get: function () {
3638
+ return this._rowsBeingEdited.readonly;
3639
+ },
3640
+ enumerable: false,
3641
+ configurable: true
3642
+ });
3643
+ Object.defineProperty(AbstractTableModel.prototype, "columns", {
3644
+ get: function () {
3645
+ return this._columns.readonly;
3646
+ },
3647
+ enumerable: false,
3648
+ configurable: true
3649
+ });
3650
+ Object.defineProperty(AbstractTableModel.prototype, "visibleColumns", {
3651
+ get: function () {
3652
+ return this._visibleColumnTracker.readonly;
3653
+ },
3654
+ enumerable: false,
3655
+ configurable: true
3656
+ });
3657
+ AbstractTableModel.prototype.pluck = function (property, options) {
3658
+ var _this = this;
3659
+ var columnId = (options === null || options === void 0 ? void 0 : options.columnId) || property.toString();
3660
+ return this.addColumn(new PropertyColumnModel(columnId, property, function () { return _this.getColumnTextProperties(columnId); }));
3661
+ };
3662
+ AbstractTableModel.prototype.pluckList = function (property, options) {
3663
+ var _this = this;
3664
+ var columnId = (options === null || options === void 0 ? void 0 : options.columnId) || property.toString();
3665
+ return this.addColumn(new ListPropertyColumnModel(columnId, property, function () { return _this.getColumnTextProperties(columnId); }));
3666
+ };
3667
+ AbstractTableModel.prototype._addSelectionColumn = function (selectionModel, visible) {
3668
+ var _this = this;
3669
+ pectin.assert.isNil(this.selectionColumnModel);
3670
+ var columnId = 'selection-column';
3671
+ this.selectionColumnModel = new SelectionColumnModel(columnId, function () { return _this.getColumnTextProperties(columnId); }, selectionModel);
3672
+ this.addRowClass('aup-row-selected', function (row) { return _this.selectionColumnModel.isSelected(row); });
3673
+ var selectionColumnModel = this.addColumn(this.selectionColumnModel);
3674
+ if (!___namespace.isNil(visible)) {
3675
+ selectionColumnModel.visibleWhile(visible instanceof pectin.ValueModel ? visible : pectin.ValueModel.constant(visible));
3676
+ }
3677
+ return selectionColumnModel;
3678
+ };
3679
+ AbstractTableModel.prototype.addEditControls = function (saveCommand) {
3680
+ var _this = this;
3681
+ this.saveCommand = saveCommand;
3682
+ var columnId = 'editControls';
3683
+ return this.addColumn(new EditorControlColumnModel(columnId, saveCommand, function () { return _this.getColumnTextProperties(columnId); }));
3684
+ };
3685
+ AbstractTableModel.prototype.addCustomColumn = function (columnId, dataAccessor) {
3686
+ var _this = this;
3687
+ return this.addColumn(new CustomValueColumnModel(columnId, function () { return _this.getColumnTextProperties(columnId); }, dataAccessor));
3688
+ };
3689
+ AbstractTableModel.prototype.addComponentColumn = function (columnId, component, onComponentInitOrOptions) {
3690
+ var _this = this;
3691
+ return this.addColumn(new CustomValueColumnModel(columnId, function () { return _this.getColumnTextProperties(columnId); }, function (row) { return row; })).cellRenderer(component, onComponentInitOrOptions);
3692
+ };
3693
+ AbstractTableModel.prototype.addTemplateColumn = function (columnId) {
3694
+ var _this = this;
3695
+ return this.addColumn(new CustomTemplateColumnModel(columnId, function () { return _this.getColumnTextProperties(columnId); }));
3696
+ };
3697
+ AbstractTableModel.prototype.addRowClass = function (className, predicate) {
3698
+ this.rowClassNamePredicates.push(new RowClass(className, predicate));
3699
+ };
3700
+ AbstractTableModel.prototype.getRowClasses = function (row) {
3701
+ var classNames = [];
3702
+ this.rowClassNamePredicates.forEach(function (i) {
3703
+ if (i.matches(row)) {
3704
+ classNames.push(i.className);
3705
+ }
3706
+ });
3707
+ return classNames;
3708
+ };
3709
+ AbstractTableModel.prototype.useFormFactory = function (factory) {
3710
+ this._createForm = factory;
3711
+ return this;
3712
+ };
3713
+ AbstractTableModel.prototype.addColumn = function (column) {
3714
+ if (this._columnsById.get(column.columnId)) {
3715
+ pectin.lang.illegalState("Column with id=" + column.columnId + " already exists");
3716
+ }
3717
+ else {
3718
+ this._columns.push(column);
3719
+ this._visibleColumnTracker.addColumn(column);
3720
+ }
3721
+ return column;
3722
+ };
3723
+ // removeColumn(column: ColumnModel<Row>) {
3724
+ //
3725
+ // }
3726
+ AbstractTableModel.prototype.columnTextProperties = function (columnTextProperties) {
3727
+ this._columnTextPropertiesLookup = columnTextProperties;
3728
+ };
3729
+ AbstractTableModel.prototype.getColumnTextProperties = function (columnId) {
3730
+ return this._columnTextPropertiesLookup ? this._columnTextPropertiesLookup[columnId] : undefined;
3731
+ };
3732
+ AbstractTableModel.prototype.startEditSession = function (row) {
3733
+ var _this = this;
3734
+ var rowId = this.identityOf(row);
3735
+ if (this._rowsBeingEdited.query().indexOf(row) > -1) {
3736
+ return pectin.lang.illegalState("Row with id=" + rowId + " already being edited");
3737
+ }
3738
+ else {
3739
+ var editSession_1 = new EditSession(rowId, row, this._createForm(row), this.saveCommand);
3740
+ var when = pectin.Dsl.disposeWith(editSession_1).when;
3741
+ when(editSession_1.liveRowValue).changes(function (editedValue) {
3742
+ _this._rowsBeingEdited.replaceOrPush(editedValue);
3743
+ }, { initialValue: 'triggerChangeUnlessNil' });
3744
+ this._editorSessions.push(editSession_1);
3745
+ editSession_1.onDispose(function () {
3746
+ _this._rowsBeingEdited.remove(editSession_1.liveRowValue.value);
3747
+ _this._editorSessions.remove(editSession_1);
3748
+ });
3749
+ return editSession_1;
3750
+ }
3751
+ };
3752
+ AbstractTableModel.prototype.getEditSessionFor = function (row) {
3753
+ return this._editorSessionByRowId.get(this.identityOf(row));
3754
+ };
3755
+ AbstractTableModel.prototype.cancelAllEditorSessions = function () {
3756
+ var _this = this;
3757
+ this._editorSessions.runInTransaction(function (draft) {
3758
+ _this._rowsBeingEdited.runInTransaction(function () {
3759
+ draft.value.forEach(function (session) { return session.dispose(); });
3760
+ });
3761
+ });
3762
+ };
3763
+ AbstractTableModel.prototype.isRowSelectionEnabledFor = function (column) {
3764
+ return this.isRowSelectionEnabled() && column.isRowSelectionEnabled();
3765
+ };
3766
+ AbstractTableModel.prototype.isRowSelectionEnabled = function () {
3767
+ return this.hasSelectionModel() && !this.rowSelectionDisabledOnAllColumns.value;
3768
+ };
3769
+ AbstractTableModel.prototype.hasSelectionModel = function () {
3770
+ var _a;
3771
+ return !!((_a = this.selectionColumnModel) === null || _a === void 0 ? void 0 : _a.selectionModel.getDelegate());
3772
+ };
3773
+ AbstractTableModel.prototype.isHoverEnabled = function () {
3774
+ return this.isRowSelectionEnabled() || this.rowClickListeners.listenerCount > 0;
3775
+ };
3776
+ AbstractTableModel.prototype.isCursorEnabled = function (column) {
3777
+ return this.isRowSelectionEnabledFor(column) || this.rowClickListeners.listenerCount > 0;
3727
3778
  };
3728
- TableHeaderCellRendererComponent.prototype.getPortal = function () {
3729
- return this[HEADER_CELL_RENDERER_PORTAL];
3779
+ AbstractTableModel.prototype.selectRow = function (row) {
3780
+ var _a;
3781
+ (_a = this.selectionColumnModel) === null || _a === void 0 ? void 0 : _a.selectRow(row);
3730
3782
  };
3731
- return TableHeaderCellRendererComponent;
3732
- }());
3733
- TableHeaderCellRendererComponent.decorators = [
3734
- { type: i0.Component, args: [{
3735
- selector: 'aup-table-header-cell-renderer',
3736
- template: "<ng-container [cdkPortalOutlet]=\"getPortal()\" (attached)=\"initialiseHeader($event.instance)\"></ng-container>\n",
3737
- styles: [":host{display:flex;flex-direction:column;align-items:stretch;justify-content:center;height:100%}"]
3738
- },] }
3739
- ];
3740
- TableHeaderCellRendererComponent.ctorParameters = function () { return []; };
3741
- TableHeaderCellRendererComponent.propDecorators = {
3742
- column: [{ type: i0.Input }],
3743
- defaultClassNames: [{ type: i0.HostBinding, args: ['class',] }]
3744
- };
3783
+ AbstractTableModel.prototype.onRowClicked = function (callback) {
3784
+ return this.rowClickListeners.add(callback);
3785
+ };
3786
+ AbstractTableModel.prototype._notifyCellClicked = function (columnModel, row) {
3787
+ if (this.isRowSelectionEnabledFor(columnModel)) {
3788
+ this.selectRow(row);
3789
+ }
3790
+ this.rowClickListeners.fire(function (l) { return l(row); });
3791
+ };
3792
+ return AbstractTableModel;
3793
+ }(pectin.GarbageCollector));
3794
+ pectin.TrackExternal.oneTimeBinding(AbstractTableModel);
3745
3795
 
3746
- var MenuItemData = /** @class */ (function () {
3747
- function MenuItemData(factory, face) {
3748
- this.factory = factory;
3749
- this.face = face;
3750
- }
3751
- return MenuItemData;
3752
- }());
3753
3796
  /**
3797
+ * Create your model:
3798
+ * @example
3799
+ * this.heroTableModel = TableModel.fromList(heroList, table => {
3800
+ * table.pluck("firstName");
3801
+ * table.pluck("lastName");
3802
+ * table.addCustomColumn("fullName", hero => `${hero.firstName} ${hero.lastName}`);
3803
+ * });
3804
+ *
3805
+ * Create your table
3806
+ * @example
3807
+ * <aup-table [tableModel]="heroTableModel"></aup-table>
3808
+ *
3809
+ * Column templates
3810
+ * @example
3811
+ * this.heroTableModel = TableModel.fromList(heroList, table => {
3812
+ * table.pluck("firstName");
3813
+ * table.pluck("lastName");
3814
+ * table.addTemplateColumn("specialColumn");
3815
+ * });
3816
+ * <aup-table [tableModel]="heroTableModel">
3817
+ * <div *aupColumnTemplate="let hero; columnId: 'specialColumn'; fillCell: true; padChild:false">
3818
+ * {{hero.name}}
3819
+ * </div>
3820
+ * </aup-table>
3821
+ *
3822
+ * Styling
3823
+ * @example
3824
+ * // global settings
3825
+ * :root {
3826
+ * --aup-table-column-gap: 10px; // defaults to 24px
3827
+ * --aup-table-row-hover-background-color, rgba(0, 0, 0, 0.05)
3828
+ * --aup-table-row-selected-background-color: rebeccapurple; // defaults to transparent
3829
+ * --aup-table-first-column-padding-left: 18px // defaults to --column-gap
3830
+ * --aup-table-last-column-padding-right: 18px // defaults to --column-gap
3831
+ * }
3832
+ *
3833
+ * // per table settings.
3834
+ * aup-table {
3835
+ * --column-gap: 10px; // defaults to 24px
3836
+ * --row-hover-background-color, rgba(0, 0, 0, 0.05)
3837
+ * --row-selected-background-color: rebeccapurple; // defaults to transparent
3838
+ * --first-column-padding-left: 18px // defaults to --column-gap
3839
+ * --last-column-padding-right: 18px // defaults to --column-gap
3754
3840
  *
3841
+ * aup-table-header-cell-renderer,
3842
+ * aup-table-cell-renderer {
3843
+ * &.aup-col-my-dasherised-column-id {
3844
+ * // do stuff
3845
+ * }
3846
+ * &.first-visible-column {
3847
+ * // do stuff
3848
+ * }
3849
+ * &.last-visible-column {
3850
+ * // do stuff
3851
+ * }
3852
+ * }
3853
+ * }
3755
3854
  */
3756
- var TableRowMenuComponent = /** @class */ (function (_super) {
3757
- __extends(TableRowMenuComponent, _super);
3758
- function TableRowMenuComponent() {
3759
- var _this = _super.call(this) || this;
3760
- _this.actions = [];
3761
- _this.moreActions = [];
3762
- return _this;
3855
+ var TableComponent = /** @class */ (function (_super) {
3856
+ __extends(TableComponent, _super);
3857
+ function TableComponent(elementRef, ngZone) {
3858
+ return _super.call(this, elementRef, ngZone) || this;
3763
3859
  }
3764
- TableRowMenuComponent.prototype.registerAction = function (commandFactory, properties) {
3765
- this.actions.push(new MenuItemData(commandFactory, properties));
3766
- };
3767
- TableRowMenuComponent.prototype.registerMoreAction = function (commandFactory, properties) {
3768
- this.moreActions.push(new MenuItemData(commandFactory, properties));
3769
- };
3770
- TableRowMenuComponent.prototype.ngOnInit = function () {
3771
- };
3772
- TableRowMenuComponent.prototype.createMoreMenuCommand = function (item, value) {
3773
- var _this = this;
3774
- var when = pectin.Dsl.disposeWith(this).when;
3775
- var command = item.factory.create(value);
3776
- when(command.busy).becomesFalsey(function () {
3777
- _this.closeMoreMenu();
3778
- });
3779
- return command;
3780
- };
3781
- TableRowMenuComponent.prototype.closeMoreMenu = function () {
3782
- this.menu.closeMenu();
3860
+ TableComponent.prototype.getModel = function () {
3861
+ return this.tableModel;
3783
3862
  };
3784
- return TableRowMenuComponent;
3785
- }(DisposableComponent));
3786
- TableRowMenuComponent.decorators = [
3863
+ return TableComponent;
3864
+ }(AbstractTableComponent));
3865
+ TableComponent.decorators = [
3787
3866
  { type: i0.Component, args: [{
3788
- selector: 'aup-table-row-menu',
3789
- template: "\n <aup-tool-bar>\n <aup-command *ngFor=\"let action of actions\" [command]=\"action.factory.create(value)\"\n [face]=\"action.face\"></aup-command>\n </aup-tool-bar>\n <ng-container *ngIf=\"moreActions.length > 0\">\n <aup-more-menu>\n <aup-command *ngFor=\"let action of moreActions\" [command]=\"action.factory.create(value)\"\n [face]=\"action.face\"></aup-command>\n </aup-more-menu>\n </ng-container>\n ",
3790
- styles: [":host {\n display: inline-flex;\n flex-direction: row;\n align-items: center;\n }"]
3867
+ selector: 'aup-table',
3868
+ template: "<div class=\"scroll-container\">\n <table mat-table [dataSource]=\"getModel().dataSource.value\" [trackBy]=\"getModel().trackBy\">\n\n <ng-container *ngFor=\"let column of columns.value; index as index; first as first; last as last\"\n matColumnDef=\"{{column.columnId}}\">\n <th mat-header-cell *matHeaderCellDef [class.flex]=\"column.isFlex()\" [class.hide]=\"!column.isVisible()\">\n <aup-table-header-cell-renderer [column]=\"column\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-header-cell-renderer>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"notifyCellClicked(column, row)\"\n [class.enable-cursor]=\"getModel().isCursorEnabled(column)\"\n [class.flex]=\"column.isFlex()\"\n [class.hide]=\"!column.isVisible()\"\n >\n <aup-table-cell-renderer [column]=\"column\"\n [row]=\"row\"\n [tableModel]=\"getModel()\"\n [editSession]=\"getModel().getEditSessionFor(row)\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\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]=\"getModel().getRowClasses(row)\" [class.enable-hover]=\"getModel().isHoverEnabled()\"\n [attr.trackBy]=\"getModel().trackBy(i, row)\"\n ></tr>\n\n </table>\n</div>\n",
3869
+ providers: [
3870
+ { provide: AbstractTableComponent, useExisting: TableComponent }
3871
+ ],
3872
+ styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host table{width:100%}:host.enable-scrolling{min-height:0}:host.enable-scrolling .scroll-container{flex:1;flex-basis:0;overflow-y:auto;display:flex;flex-direction:column;align-items:stretch}"]
3791
3873
  },] }
3792
3874
  ];
3793
- TableRowMenuComponent.ctorParameters = function () { return []; };
3794
- TableRowMenuComponent.propDecorators = {
3795
- value: [{ type: i0.Input }],
3796
- menu: [{ type: i0.ViewChild, args: [menu.MatMenuTrigger,] }]
3875
+ TableComponent.ctorParameters = function () { return [
3876
+ { type: i0.ElementRef },
3877
+ { type: i0.NgZone }
3878
+ ]; };
3879
+ TableComponent.propDecorators = {
3880
+ tableModel: [{ type: i0.Input }]
3797
3881
  };
3882
+ __decorate([
3883
+ pectin.TrackExternal(),
3884
+ __metadata("design:type", AbstractTableModel)
3885
+ ], TableComponent.prototype, "tableModel", void 0);
3798
3886
 
3799
3887
  var SVG_HEIGHT = 60;
3800
3888
  exports.TreeInheritanceIconComponent = /** @class */ (function () {
@@ -4350,30 +4438,29 @@
4350
4438
  };
4351
4439
  return TreeTableModel;
4352
4440
  }(AbstractTableModel));
4353
- var FlattenStrategy = /** @class */ (function (_super) {
4354
- __extends(FlattenStrategy, _super);
4355
- function FlattenStrategy(collapsedIds) {
4356
- var _this = _super.call(this) || this;
4357
- _this.collapsedIds = collapsedIds;
4358
- _this._areas = [];
4359
- _this._collapsed = new Set(collapsedIds);
4360
- return _this;
4361
- }
4362
- FlattenStrategy.prototype.onVisit = function (it) {
4363
- this._areas.push(it);
4364
- };
4365
- FlattenStrategy.prototype.shouldVisitChildrenOf = function (it) {
4366
- return !this._collapsed.has(it);
4367
- };
4368
- Object.defineProperty(FlattenStrategy.prototype, "flattenedAreas", {
4369
- get: function () {
4370
- return this._areas;
4371
- },
4372
- enumerable: false,
4373
- configurable: true
4374
- });
4375
- return FlattenStrategy;
4376
- }(exports.SelfAndDescendantsVisitor));
4441
+ // export class FlattenStrategy<T extends VisitableTree<any>> extends SelfAndDescendantsVisitor<T> {
4442
+ //
4443
+ // private _areas: T[] = [];
4444
+ // private _collapsed: Set<T>;
4445
+ //
4446
+ // constructor(private collapsedIds: T[]) {
4447
+ // super();
4448
+ // this._collapsed = new Set<T>(collapsedIds);
4449
+ // }
4450
+ //
4451
+ // protected onVisit(it: T) {
4452
+ // this._areas.push(it);
4453
+ // }
4454
+ //
4455
+ // protected shouldVisitChildrenOf(it: T): boolean {
4456
+ // return !this._collapsed.has(it);
4457
+ // }
4458
+ //
4459
+ // get flattenedAreas(): T[] {
4460
+ // return this._areas;
4461
+ // }
4462
+ //
4463
+ // }
4377
4464
  // class DecoratorCache {
4378
4465
  //
4379
4466
  // private map = new Map<number, T>();
@@ -4397,83 +4484,97 @@
4397
4484
  //
4398
4485
  // }
4399
4486
 
4400
- //
4401
- // const template = `
4402
- // <table-component list-model="zoneTreeController.visibleAreas"
4403
- // selection-model="zoneTreeController.selectionModel"
4404
- // selection-command="zoneTreeController.selectionCommand"
4405
- // hover-model="zoneTreeController.decoratedHoverModel"
4406
- // no-hover="zoneTreeController.noHover"
4407
- // no-lines="true" no-scroll>
4408
- //
4409
- // <row-attr name="parent-id" value="{{item.parent.id}}"></row-attr>
4410
- // <row-attr name="area-id" value="{{item.id}}"></row-attr>
4411
- // <row-attr name="area-name" value="{{item.name}}"></row-attr>
4412
- // <row-attr name="area-depth" value="{{item.depthFromZone()}}"></row-attr>
4413
- // <row-attr name="collapsed" value="{{zoneTreeController.isCollapsed(item)}}"></row-attr>
4414
- //
4415
- // <column class="area" ng-class="{root: item.isZone(), parent: item.isGroup()}" class="allow-squish">
4416
- // <!--<label>Rooms in {{zoneTreeController.zoneModel.value.name}}</label>-->
4417
- // <label>Rooms</label>
4418
- // <div layout="row" layout-align="start center">
4419
- // <tree-icons tree-item="item"></tree-icons>
4420
- // <area-icon area="item"></area-icon>
4421
- // <span ng-if="item.isZone()">Zone ({{item.name}})</span>
4422
- // <span ng-if="!item.isZone()">{{item.name}}</span>
4423
- // </div>
4424
- // </column>
4425
- // <column class="expand-collapse" ng-class="{collapsed: zoneTreeController.isCollapsed(item)}">
4426
- // <md-button class="md-icon-button"
4427
- // ng-if="zoneTreeController.canCollapse(item)"
4428
- // ng-click="zoneTreeController.toggleCollapse(item)">
4429
- // <md-icon>keyboard_arrow_up</md-icon>
4430
- // </md-button>
4431
- // </column>
4432
- //
4433
- // </table-component>
4434
- // `;
4487
+ /**
4488
+ * Create your model:
4489
+ * @example
4490
+ * this.heroTableModel = TableTreeModel.fromList(heroList, table => {
4491
+ * table.pluck("firstName");
4492
+ * table.pluck("lastName");
4493
+ * table.addCustomColumn("fullName", hero => `${hero.firstName} ${hero.lastName}`);
4494
+ * table.addTemplateColumn("specialColumn");
4495
+ * });
4496
+ *
4497
+ * Create your table
4498
+ * @example
4499
+ * <aup-tree-table [treeTableModel]="heroTableModel"></aup-table>
4500
+ *
4501
+ * Column templates
4502
+ * @example
4503
+ * this.heroTableModel = TableModel.fromList(heroList, table => {
4504
+ * table.pluck("firstName");
4505
+ * table.pluck("lastName");
4506
+ * table.addTemplateColumn("specialColumn");
4507
+ * });
4508
+ * <aup-table [tableModel]="heroTableModel">
4509
+ * <div *aupColumnTemplate="let hero; columnId: 'specialColumn'; fillCell: true; padChild:false">
4510
+ * {{hero.name}}
4511
+ * </div>
4512
+ * </aup-table>
4513
+ *
4514
+ * Styling
4515
+ * @example
4516
+ * // global settings
4517
+ * :root {
4518
+ * --aup-table-column-gap: 10px; // defaults to 24px
4519
+ * --aup-table-row-hover-background-color, rgba(0, 0, 0, 0.05)
4520
+ * --aup-table-row-selected-background-color: rebeccapurple; // defaults to transparent
4521
+ * --aup-table-first-column-padding-left: 18px // defaults to --column-gap
4522
+ * --aup-table-last-column-padding-right: 18px // defaults to --column-gap
4523
+ * }
4524
+ *
4525
+ * // per table settings.
4526
+ * aup-table {
4527
+ * --column-gap: 10px; // defaults to 24px
4528
+ * --row-hover-background-color, rgba(0, 0, 0, 0.05)
4529
+ * --row-selected-background-color: rebeccapurple; // defaults to transparent
4530
+ * --first-column-padding-left: 18px // defaults to --column-gap
4531
+ * --last-column-padding-right: 18px // defaults to --column-gap
4532
+ *
4533
+ * aup-table-header-cell-renderer,
4534
+ * aup-table-cell-renderer {
4535
+ * &.aup-col-my-dasherised-column-id {
4536
+ * // do stuff
4537
+ * }
4538
+ * &.first-visible-column {
4539
+ * // do stuff
4540
+ * }
4541
+ * &.last-visible-column {
4542
+ * // do stuff
4543
+ * }
4544
+ * }
4545
+ * }
4546
+ */
4435
4547
  var TreeTableComponent = /** @class */ (function (_super) {
4436
4548
  __extends(TreeTableComponent, _super);
4437
- function TreeTableComponent() {
4438
- var _this = _super.call(this) || this;
4439
- /**
4440
- * Set to true to enable scrolling. Once enabled the table will have 0 implicit height. You will either
4441
- * need to set it explicitly e.g. height: 400px; or by using flex or grid layout to make it fill it's
4442
- * containment area.
4443
- */
4444
- _this.enableScrolling = false;
4445
- return _this;
4549
+ function TreeTableComponent(elementRef, ngZone) {
4550
+ return _super.call(this, elementRef, ngZone) || this;
4446
4551
  }
4552
+ TreeTableComponent.prototype.getModel = function () {
4553
+ return this.treeTableModel;
4554
+ };
4447
4555
  return TreeTableComponent;
4448
- }(DisposableComponent));
4556
+ }(AbstractTableComponent));
4449
4557
  TreeTableComponent.decorators = [
4450
4558
  { type: i0.Component, args: [{
4451
- selector: "aup-tree-table",
4452
- template: "<aup-table [tableModel]=\"treeTableModel\" [showHeaderModel]=\"showHeaderModel\" [enableScrolling]=\"enableScrolling\"></aup-table>\n",
4453
- encapsulation: i0.ViewEncapsulation.None // allow us to target nested table styles
4454
- ,
4455
- styles: ["td.mat-cell{border-top-width:0!important;border-bottom-width:0!important}td.mat-column-tree-label{width:1px}aup-table-cell-renderer[column-id=tree-label]{padding-left:8px!important}aup-tree-label-cell-renderer{flex:1}"]
4559
+ selector: 'aup-tree-table',
4560
+ template: "<div class=\"scroll-container\">\n <table mat-table [dataSource]=\"getModel().dataSource.value\" [trackBy]=\"getModel().trackBy\">\n\n <ng-container *ngFor=\"let column of columns.value; index as index; first as first; last as last\"\n matColumnDef=\"{{column.columnId}}\">\n <th mat-header-cell *matHeaderCellDef [class.flex]=\"column.isFlex()\" [class.hide]=\"!column.isVisible()\">\n <aup-table-header-cell-renderer [column]=\"column\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-header-cell-renderer>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"notifyCellClicked(column, row)\"\n [class.enable-cursor]=\"getModel().isCursorEnabled(column)\"\n [class.flex]=\"column.isFlex()\"\n [class.hide]=\"!column.isVisible()\"\n >\n <aup-table-cell-renderer [column]=\"column\"\n [row]=\"row\"\n [tableModel]=\"getModel()\"\n [editSession]=\"getModel().getEditSessionFor(row)\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\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]=\"getModel().getRowClasses(row)\" [class.enable-hover]=\"getModel().isHoverEnabled()\"\n [attr.trackBy]=\"getModel().trackBy(i, row)\"\n ></tr>\n\n </table>\n</div>\n",
4561
+ providers: [
4562
+ { provide: AbstractTableComponent, useExisting: TreeTableComponent }
4563
+ ],
4564
+ styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host table{width:100%}:host.enable-scrolling{min-height:0}:host.enable-scrolling .scroll-container{flex:1;flex-basis:0;overflow-y:auto;display:flex;flex-direction:column;align-items:stretch}", "td.mat-cell{border-top-width:0!important;border-bottom-width:0!important}td.mat-column-tree-label{width:1px}aup-table-cell-renderer[column-id=tree-label]{padding-left:8px!important}aup-tree-label-cell-renderer{flex:1}"]
4456
4565
  },] }
4457
4566
  ];
4458
- TreeTableComponent.ctorParameters = function () { return []; };
4567
+ TreeTableComponent.ctorParameters = function () { return [
4568
+ { type: i0.ElementRef },
4569
+ { type: i0.NgZone }
4570
+ ]; };
4459
4571
  TreeTableComponent.propDecorators = {
4460
- treeTableModel: [{ type: i0.Input }],
4461
- showHeaderModel: [{ type: i0.Input }],
4462
- showHeader: [{ type: i0.Input }],
4463
- enableScrolling: [{ type: i0.Input }, { type: i0.HostBinding, args: ['class.enable-scrolling',] }]
4572
+ treeTableModel: [{ type: i0.Input }]
4464
4573
  };
4465
4574
  __decorate([
4466
4575
  pectin.TrackExternal(),
4467
4576
  __metadata("design:type", TreeTableModel)
4468
4577
  ], TreeTableComponent.prototype, "treeTableModel", void 0);
4469
- __decorate([
4470
- pectin.TrackExternal({ defaultValue: true }),
4471
- __metadata("design:type", pectin.ValueModel)
4472
- ], TreeTableComponent.prototype, "showHeaderModel", void 0);
4473
- __decorate([
4474
- pectin.StoreInValueModel('showHeaderModel'),
4475
- __metadata("design:type", Boolean)
4476
- ], TreeTableComponent.prototype, "showHeader", void 0);
4477
4578
 
4478
4579
  var VerticalFocusContainerComponent = /** @class */ (function (_super) {
4479
4580
  __extends(VerticalFocusContainerComponent, _super);
@@ -4649,6 +4750,7 @@
4649
4750
  BusyOverlayComponent,
4650
4751
  EmptyStateComponent,
4651
4752
  PaginatorComponent,
4753
+ AbstractTableComponent
4652
4754
  ],
4653
4755
  imports: [
4654
4756
  i2.CommonModule,
@@ -9579,6 +9681,7 @@
9579
9681
  exports.AbstractPlaceNavigationComponent = AbstractPlaceNavigationComponent;
9580
9682
  exports.AbstractPopStateNavigation = AbstractPopStateNavigation;
9581
9683
  exports.AbstractPopupMenuComponent = AbstractPopupMenuComponent;
9684
+ exports.AbstractTableComponent = AbstractTableComponent;
9582
9685
  exports.AbstractTableModel = AbstractTableModel;
9583
9686
  exports.AbstractValueInputComponent = AbstractValueInputComponent;
9584
9687
  exports.Activity = Activity;
@@ -9627,7 +9730,6 @@
9627
9730
  exports.EditorControlColumnModel = EditorControlColumnModel;
9628
9731
  exports.EmptyStateComponent = EmptyStateComponent;
9629
9732
  exports.EventCleanUpSession = EventCleanUpSession;
9630
- exports.FlattenStrategy = FlattenStrategy;
9631
9733
  exports.FlexComponent = FlexComponent;
9632
9734
  exports.FocusBinding = FocusBinding;
9633
9735
  exports.FocusBindingDirective = FocusBindingDirective;