@coolon/angular-ui-powerups 16.1.0-aplpha.16 → 16.1.0-aplpha.161

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/activities/activities.scss +5 -3
  2. package/assets/activities/input-activities.scss +14 -6
  3. package/assets/draw.scss +20 -0
  4. package/assets/form.scss +74 -27
  5. package/assets/icons.scss +1 -0
  6. package/assets/layout.scss +3 -0
  7. package/assets/styles.scss +2 -0
  8. package/assets/table.scss +48 -28
  9. package/assets/tabs.scss +15 -5
  10. package/esm2022/lib/animations/slide-animations.mjs +15 -10
  11. package/esm2022/lib/components/cards/card-container/card-container.component.mjs +4 -4
  12. package/esm2022/lib/components/commands/button-renderer/button-renderer.component.mjs +115 -0
  13. package/esm2022/lib/components/commands/command/command.component.mjs +34 -29
  14. package/esm2022/lib/components/commands/command-face/command-face.component.mjs +11 -3
  15. package/esm2022/lib/components/commands/command-face.mjs +12 -11
  16. package/esm2022/lib/components/commands/group/popup-aware.component.mjs +31 -8
  17. package/esm2022/lib/components/commands/group/popup-menu/abstract-popup-menu.component.mjs +25 -23
  18. package/esm2022/lib/components/commands/group/popup-menu/more-menu.component.mjs +11 -20
  19. package/esm2022/lib/components/commands/group/popup-menu/popup-menu-renderer/popup-menu-renderer.component.mjs +12 -7
  20. package/esm2022/lib/components/commands/group/popup-menu/popup-menu.component.mjs +11 -20
  21. package/esm2022/lib/components/commands/group/tool-bar/tool-bar.component.mjs +8 -6
  22. package/esm2022/lib/components/commands/separator.component.mjs +6 -12
  23. package/esm2022/lib/components/components.module.mjs +55 -30
  24. package/esm2022/lib/components/disposable-component.mjs +32 -7
  25. package/esm2022/lib/components/exports.mjs +13 -5
  26. package/esm2022/lib/components/file/file-download/file-download.component.mjs +78 -0
  27. package/esm2022/lib/components/forms/abstract-input.component.mjs +55 -12
  28. package/esm2022/lib/components/forms/autocomplete-input/autocomplete-input.component.mjs +4 -4
  29. package/esm2022/lib/components/forms/checkbox-input/checkbox-input.component.mjs +8 -6
  30. package/esm2022/lib/components/forms/form-field.mjs +2 -0
  31. package/esm2022/lib/components/forms/multiple-select-input/multiple-select-input.component.mjs +4 -4
  32. package/esm2022/lib/components/forms/number-input/number-input.component.mjs +84 -9
  33. package/esm2022/lib/components/forms/password-input/password-input.component.mjs +40 -3
  34. package/esm2022/lib/components/forms/search-input/search-input.component.mjs +33 -0
  35. package/esm2022/lib/components/forms/select-input/select-input.component.mjs +11 -10
  36. package/esm2022/lib/components/forms/string-input/string-input.component.mjs +30 -11
  37. package/esm2022/lib/components/forms/text-input/text-input.component.mjs +8 -4
  38. package/esm2022/lib/components/icon/icon.component.mjs +7 -4
  39. package/esm2022/lib/components/loadable-component.mjs +22 -4
  40. package/esm2022/lib/components/resize-aware.component.mjs +61 -24
  41. package/esm2022/lib/components/switch-case/switch-case.component.mjs +5 -7
  42. package/esm2022/lib/components/tables/abstract-table-model.mjs +112 -63
  43. package/esm2022/lib/components/tables/abstract-table.component.mjs +19 -5
  44. package/esm2022/lib/components/tables/column/column-manager.mjs +81 -0
  45. package/esm2022/lib/components/tables/column/column-model.mjs +16 -6
  46. package/esm2022/lib/components/tables/column/column-order-manager.mjs +19 -0
  47. package/esm2022/lib/components/tables/column/custom-template-column-model.mjs +3 -3
  48. package/esm2022/lib/components/tables/column/custom-value-column-model.mjs +3 -3
  49. package/esm2022/lib/components/tables/column/editor-controls-column-model.mjs +3 -3
  50. package/esm2022/lib/components/tables/column/list-propery-column-model.mjs +3 -3
  51. package/esm2022/lib/components/tables/column/property-column-model.mjs +3 -3
  52. package/esm2022/lib/components/tables/column/selection-column-model.mjs +35 -13
  53. package/esm2022/lib/components/tables/editor/edit-row-controls/edit-row-controls.component.mjs +2 -2
  54. package/esm2022/lib/components/tables/editor/edit-session.mjs +1 -1
  55. package/esm2022/lib/components/tables/filter/table-filter-model.mjs +4 -2
  56. package/esm2022/lib/components/tables/filter/text-search-predicate.mjs +16 -2
  57. package/esm2022/lib/components/tables/footer/footer-row-model.mjs +38 -0
  58. package/esm2022/lib/components/tables/paginator/paginator.component.mjs +1 -1
  59. package/esm2022/lib/components/tables/renderer/abstract-cell-renderer.mjs +7 -0
  60. package/esm2022/lib/components/tables/renderer/cell-portal-ref.mjs +23 -5
  61. package/esm2022/lib/components/tables/renderer/default-cell-renderer/default-cell-renderer.component.mjs +3 -3
  62. package/esm2022/lib/components/tables/renderer/select-header-cell/selection-header-cell.component.mjs +7 -4
  63. package/esm2022/lib/components/tables/renderer/table-action-column/menu-builder.mjs +2 -0
  64. package/esm2022/lib/components/tables/renderer/table-action-column/table-action-column.component.mjs +153 -0
  65. package/esm2022/lib/components/tables/renderer/table-body/table-body.component.mjs +150 -40
  66. package/esm2022/lib/components/tables/renderer/table-cell/table-cell.component.mjs +6 -6
  67. package/esm2022/lib/components/tables/renderer/table-custom-more-menu/table-custom-more-menu-popup.component.mjs +45 -0
  68. package/esm2022/lib/components/tables/renderer/table-custom-more-menu/table-custom-more-menu.component.mjs +71 -0
  69. package/esm2022/lib/components/tables/renderer/table-footer-row/table-footer-row.component.mjs +30 -0
  70. package/esm2022/lib/components/tables/table/table-model.mjs +12 -3
  71. package/esm2022/lib/components/tables/table/table.component.mjs +39 -61
  72. package/esm2022/lib/components/tables/tree-table/decorated-tree-node.mjs +5 -4
  73. package/esm2022/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.mjs +1 -1
  74. package/esm2022/lib/components/tables/tree-table/tree-label-column-model.mjs +3 -3
  75. package/esm2022/lib/components/tables/tree-table/tree-table-component.mjs +12 -5
  76. package/esm2022/lib/components/tables/tree-table/tree-table-model.mjs +4 -7
  77. package/esm2022/lib/components/text/markdown/markdown.component.mjs +2 -2
  78. package/esm2022/lib/directives/command.directive.mjs +18 -7
  79. package/esm2022/lib/directives/directives.module.mjs +1 -1
  80. package/esm2022/lib/directives/exports.mjs +2 -1
  81. package/esm2022/lib/directives/highlight.pipe.mjs +9 -7
  82. package/esm2022/lib/directives/resize-observer.directive.mjs +40 -0
  83. package/esm2022/lib/interaction/abstract-interaction-context.mjs +6 -7
  84. package/esm2022/lib/interaction/activity-context.mjs +4 -0
  85. package/esm2022/lib/interaction/activity.mjs +20 -21
  86. package/esm2022/lib/interaction/alert.mjs +2 -2
  87. package/esm2022/lib/interaction/components/abstract-confirm-dialog.component.mjs +11 -8
  88. package/esm2022/lib/interaction/components/abstract-dialog.component.mjs +1 -41
  89. package/esm2022/lib/interaction/components/activity-actions/activity-actions.component.mjs +28 -16
  90. package/esm2022/lib/interaction/components/activity-body/activity-body.component.mjs +8 -2
  91. package/esm2022/lib/interaction/components/activity-container/activity-container.component.mjs +37 -12
  92. package/esm2022/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.mjs +53 -15
  93. package/esm2022/lib/interaction/components/activity-title/activity-title.component.mjs +4 -4
  94. package/esm2022/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.mjs +1 -1
  95. package/esm2022/lib/interaction/components/add-card-activity/add-card-activity.component.mjs +1 -1
  96. package/esm2022/lib/interaction/components/add-item-interaction-context/add-item-interaction-context.component.mjs +1 -1
  97. package/esm2022/lib/interaction/components/alert-dialog/alert-dialog.component.mjs +10 -10
  98. package/esm2022/lib/interaction/components/alert-renderer/alert-renderer.component.mjs +55 -0
  99. package/esm2022/lib/interaction/components/confirm-renderer/confirm-renderer.component.mjs +54 -0
  100. package/esm2022/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.mjs +4 -8
  101. package/esm2022/lib/interaction/components/confirm-then-execute-dialog/confirm-then-execute-dialog.component.mjs +4 -8
  102. package/esm2022/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.mjs +7 -9
  103. package/esm2022/lib/interaction/components/editors/edit-context.mjs +1 -1
  104. package/esm2022/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.mjs +4 -4
  105. package/esm2022/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.mjs +21 -5
  106. package/esm2022/lib/interaction/components/input-activities/input-activity.mjs +2 -2
  107. package/esm2022/lib/interaction/components/input-activities/select-input-activity.mjs +4 -2
  108. package/esm2022/lib/interaction/components/input-activities/string-input-activity.mjs +8 -4
  109. package/esm2022/lib/interaction/components/slide-down-interaction-context/slide-down-interaction-context.component.mjs +134 -0
  110. package/esm2022/lib/interaction/confirm.mjs +26 -2
  111. package/esm2022/lib/interaction/directives/interaction-context-trigger-for.directive.mjs +2 -2
  112. package/esm2022/lib/interaction/exports.mjs +6 -1
  113. package/esm2022/lib/interaction/interaction-context-provider.mjs +17 -0
  114. package/esm2022/lib/interaction/interaction-context.mjs +3 -2
  115. package/esm2022/lib/interaction/interaction.module.mjs +22 -14
  116. package/esm2022/lib/interaction/services/interaction-service-routing-adapter.mjs +4 -4
  117. package/esm2022/lib/interaction/services/interaction.service.mjs +18 -6
  118. package/esm2022/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context.mjs +23 -4
  119. package/esm2022/lib/place/components/list-place-nav/list-place-nav.component.mjs +4 -5
  120. package/esm2022/lib/place/components/place-outlet/place-outlet.component.mjs +7 -9
  121. package/esm2022/lib/place/components/side-place-navigation/side-place-navigation.component.mjs +2 -2
  122. package/esm2022/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.mjs +1 -1
  123. package/esm2022/lib/place/guards/consolidated-param-map.mjs +4 -4
  124. package/esm2022/lib/place/guards/place.guard.mjs +6 -5
  125. package/esm2022/lib/place/navigation/place-component-deactivation-handler.mjs +2 -2
  126. package/esm2022/lib/place/navigation/session/interactions/synchronise-interaction-context-ids-with-route.mjs +3 -6
  127. package/esm2022/lib/place/navigation/session/navigation-session.mjs +2 -2
  128. package/esm2022/lib/place/place-auth-service.mjs +5 -5
  129. package/esm2022/lib/place/place-component.mjs +29 -19
  130. package/esm2022/lib/place/place-definition.mjs +15 -4
  131. package/esm2022/lib/place/place-history.mjs +2 -2
  132. package/esm2022/lib/place/place-router.mjs +22 -20
  133. package/esm2022/lib/place/place.decorator.mjs +2 -2
  134. package/esm2022/lib/place/place.module.mjs +1 -5
  135. package/esm2022/lib/place/route/formatter.mjs +2 -2
  136. package/esm2022/lib/place/route/parameter-decorators.mjs +54 -50
  137. package/esm2022/lib/place/route/parameter-definition.mjs +2 -2
  138. package/esm2022/lib/place/url-snapshot.mjs +3 -3
  139. package/esm2022/lib/place/visit-segment.mjs +2 -2
  140. package/esm2022/lib/place/visit.mjs +2 -2
  141. package/fesm2022/coolon-angular-ui-powerups.mjs +2434 -1079
  142. package/fesm2022/coolon-angular-ui-powerups.mjs.map +1 -1
  143. package/lib/animations/slide-animations.d.ts +1 -0
  144. package/lib/components/cards/card-container/card-container.component.d.ts +1 -1
  145. package/lib/components/commands/button-renderer/button-renderer.component.d.ts +30 -0
  146. package/lib/components/commands/command/command.component.d.ts +8 -8
  147. package/lib/components/commands/command-face/command-face.component.d.ts +2 -0
  148. package/lib/components/commands/command-face.d.ts +8 -9
  149. package/lib/components/commands/group/popup-aware.component.d.ts +9 -4
  150. package/lib/components/commands/group/popup-menu/abstract-popup-menu.component.d.ts +4 -4
  151. package/lib/components/commands/group/popup-menu/more-menu.component.d.ts +2 -4
  152. package/lib/components/commands/group/popup-menu/popup-menu-renderer/popup-menu-renderer.component.d.ts +2 -0
  153. package/lib/components/commands/group/popup-menu/popup-menu.component.d.ts +2 -4
  154. package/lib/components/commands/group/tool-bar/tool-bar.component.d.ts +1 -1
  155. package/lib/components/commands/separator.component.d.ts +2 -4
  156. package/lib/components/components.module.d.ts +60 -55
  157. package/lib/components/disposable-component.d.ts +16 -3
  158. package/lib/components/exports.d.ts +12 -4
  159. package/lib/components/file/file-download/file-download.component.d.ts +43 -0
  160. package/lib/components/forms/abstract-input.component.d.ts +13 -5
  161. package/lib/components/forms/checkbox-input/checkbox-input.component.d.ts +2 -0
  162. package/lib/components/forms/form-field.d.ts +5 -0
  163. package/lib/components/forms/number-input/number-input.component.d.ts +16 -4
  164. package/lib/components/forms/password-input/password-input.component.d.ts +7 -1
  165. package/lib/components/forms/search-input/search-input.component.d.ts +10 -0
  166. package/lib/components/forms/select-input/select-input.component.d.ts +4 -3
  167. package/lib/components/forms/string-input/string-input.component.d.ts +7 -1
  168. package/lib/components/forms/text-input/text-input.component.d.ts +3 -0
  169. package/lib/components/loadable-component.d.ts +9 -5
  170. package/lib/components/resize-aware.component.d.ts +24 -5
  171. package/lib/components/switch-case/switch-case.component.d.ts +2 -3
  172. package/lib/components/tables/abstract-table-model.d.ts +50 -25
  173. package/lib/components/tables/abstract-table.component.d.ts +4 -3
  174. package/lib/components/tables/column/column-manager.d.ts +19 -0
  175. package/lib/components/tables/column/column-model.d.ts +7 -3
  176. package/lib/components/tables/column/column-order-manager.d.ts +20 -0
  177. package/lib/components/tables/column/custom-template-column-model.d.ts +3 -2
  178. package/lib/components/tables/column/custom-value-column-model.d.ts +3 -2
  179. package/lib/components/tables/column/editor-controls-column-model.d.ts +3 -2
  180. package/lib/components/tables/column/list-propery-column-model.d.ts +3 -2
  181. package/lib/components/tables/column/property-column-model.d.ts +3 -2
  182. package/lib/components/tables/column/selection-column-model.d.ts +10 -4
  183. package/lib/components/tables/editor/edit-row-controls/edit-row-controls.component.d.ts +1 -1
  184. package/lib/components/tables/editor/edit-session.d.ts +1 -1
  185. package/lib/components/tables/filter/text-search-predicate.d.ts +9 -0
  186. package/lib/components/tables/footer/footer-row-model.d.ts +22 -0
  187. package/lib/components/tables/renderer/abstract-cell-renderer.d.ts +6 -0
  188. package/lib/components/tables/renderer/cell-portal-ref.d.ts +20 -12
  189. package/lib/components/tables/renderer/select-header-cell/selection-header-cell.component.d.ts +1 -1
  190. package/lib/components/tables/renderer/table-action-column/menu-builder.d.ts +7 -0
  191. package/lib/components/tables/renderer/table-action-column/table-action-column.component.d.ts +42 -0
  192. package/lib/components/tables/renderer/table-body/table-body.component.d.ts +40 -16
  193. package/lib/components/tables/renderer/table-cell/table-cell.component.d.ts +2 -3
  194. package/lib/components/tables/renderer/table-custom-more-menu/table-custom-more-menu-popup.component.d.ts +19 -0
  195. package/lib/components/tables/renderer/{table-more-menu/table-more-menu.component.d.ts → table-custom-more-menu/table-custom-more-menu.component.d.ts} +8 -7
  196. package/lib/components/tables/renderer/table-footer-row/table-footer-row.component.d.ts +11 -0
  197. package/lib/components/tables/table/table-model.d.ts +4 -4
  198. package/lib/components/tables/table/table.component.d.ts +14 -10
  199. package/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.d.ts +1 -1
  200. package/lib/components/tables/tree-table/tree-label-column-model.d.ts +3 -2
  201. package/lib/components/tables/tree-table/tree-table-component.d.ts +3 -0
  202. package/lib/components/tables/tree-table/tree-table-model.d.ts +4 -5
  203. package/lib/directives/command.directive.d.ts +6 -4
  204. package/lib/directives/exports.d.ts +1 -0
  205. package/lib/directives/resize-observer.directive.d.ts +16 -0
  206. package/lib/interaction/abstract-interaction-context.d.ts +1 -1
  207. package/lib/interaction/activity-context.d.ts +9 -0
  208. package/lib/interaction/activity.d.ts +7 -7
  209. package/lib/interaction/components/abstract-confirm-dialog.component.d.ts +2 -1
  210. package/lib/interaction/components/abstract-dialog.component.d.ts +5 -14
  211. package/lib/interaction/components/activity-actions/activity-actions.component.d.ts +12 -9
  212. package/lib/interaction/components/activity-body/activity-body.component.d.ts +2 -1
  213. package/lib/interaction/components/activity-container/activity-container.component.d.ts +10 -4
  214. package/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.d.ts +3 -3
  215. package/lib/interaction/components/activity-title/activity-title.component.d.ts +1 -1
  216. package/lib/interaction/components/alert-dialog/alert-dialog.component.d.ts +6 -1
  217. package/lib/interaction/components/alert-renderer/alert-renderer.component.d.ts +17 -0
  218. package/lib/interaction/components/confirm-renderer/confirm-renderer.component.d.ts +15 -0
  219. package/lib/interaction/components/editors/edit-context.d.ts +1 -1
  220. package/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.d.ts +5 -3
  221. package/lib/interaction/components/slide-down-interaction-context/slide-down-interaction-context.component.d.ts +53 -0
  222. package/lib/interaction/confirm.d.ts +4 -0
  223. package/lib/interaction/exports.d.ts +5 -0
  224. package/lib/interaction/interaction-context-provider.d.ts +11 -0
  225. package/lib/interaction/interaction-context.d.ts +7 -1
  226. package/lib/interaction/interaction.module.d.ts +35 -33
  227. package/lib/interaction/services/interaction-service-routing-adapter.d.ts +2 -2
  228. package/lib/interaction/services/interaction.service.d.ts +2 -1
  229. package/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context.d.ts +3 -1
  230. package/lib/place/components/place-outlet/place-outlet.component.d.ts +3 -4
  231. package/lib/place/place-auth-service.d.ts +4 -4
  232. package/lib/place/place-component.d.ts +7 -5
  233. package/lib/place/place-definition.d.ts +2 -0
  234. package/lib/place/place-router.d.ts +6 -2
  235. package/lib/place/place.module.d.ts +4 -5
  236. package/package.json +6 -4
  237. package/esm2022/lib/components/tables/column/column-list-model.mjs +0 -44
  238. package/esm2022/lib/components/tables/renderer/table-more-menu/table-more-menu-popup/table-more-menu-popup.component.mjs +0 -33
  239. package/esm2022/lib/components/tables/renderer/table-more-menu/table-more-menu.component.mjs +0 -60
  240. package/esm2022/lib/components/tables/table-row-menu/table-row-menu.component.mjs +0 -84
  241. package/lib/components/tables/column/column-list-model.d.ts +0 -13
  242. package/lib/components/tables/renderer/table-more-menu/table-more-menu-popup/table-more-menu-popup.component.d.ts +0 -15
  243. package/lib/components/tables/table-row-menu/table-row-menu.component.d.ts +0 -28
@@ -1,11 +1,16 @@
1
1
  import { ThemePalette } from "@angular/material/core";
2
- import { Proxified, SelectionModel } from "@coolon/pectin";
2
+ import { GarbageCollector, SelectionModel } from "@coolon/pectin";
3
3
  import { ColumnModel } from "./column-model";
4
- export declare class SelectionColumnModel<Row> extends ColumnModel<Row> {
5
- readonly selectionModel: Proxified<SelectionModel<Row>>;
4
+ import { ColumnOrderManager } from "./column-order-manager";
5
+ export declare class SelectionColumnModel<Row extends object> extends ColumnModel<Row> {
6
6
  private _enableHeaderControls;
7
7
  private _color;
8
- constructor(columnId: string, defaults: ColumnModel.TextPropertiesProvider, selectionModel: Proxified<SelectionModel<Row>>);
8
+ private readonly _selectionModelProxy;
9
+ private _isUsingTemporarySelection$;
10
+ private _userSelectionModel;
11
+ constructor(columnId: string, order: ColumnOrderManager, defaults: ColumnModel.TextPropertiesProvider);
12
+ get selectionModel(): SelectionModel<Row>;
13
+ get isUsingTemporarySelectionModel$(): import("@coolon/pectin").ValueModel<boolean>;
9
14
  useSelectionModel(selectionModel: SelectionModel<Row>): void;
10
15
  protected getDefaultHeaderText(): string;
11
16
  enableHeaderControls(enable: boolean): this;
@@ -15,4 +20,5 @@ export declare class SelectionColumnModel<Row> extends ColumnModel<Row> {
15
20
  color(color: ThemePalette): void;
16
21
  selectRow(row: Row): void;
17
22
  isSelected(row: Row): boolean;
23
+ withTemporarySelectionModel<S extends SelectionModel<Row>>(createSelectionModel: (garbage: GarbageCollector) => S, process: (selectionModel: S) => Promise<void>): Promise<void>;
18
24
  }
@@ -2,7 +2,7 @@ import { Command, DirtyTrackingForm } from '@coolon/pectin';
2
2
  import { DisposableComponent } from '../../../disposable-component';
3
3
  import { EditSession } from '../edit-session';
4
4
  import * as i0 from "@angular/core";
5
- export declare class EditRowControlsComponent<Row> extends DisposableComponent {
5
+ export declare class EditRowControlsComponent<Row extends object> extends DisposableComponent {
6
6
  row: Row;
7
7
  accessor editRowCommand: Command<void>;
8
8
  private _session;
@@ -1,5 +1,5 @@
1
1
  import { Command, DirtyTrackingForm, GarbageCollector } from '@coolon/pectin';
2
- export declare class EditSession<Row> extends GarbageCollector {
2
+ export declare class EditSession<Row extends object> extends GarbageCollector {
3
3
  readonly rowId: any;
4
4
  readonly form: DirtyTrackingForm<Row>;
5
5
  readonly saveCommand: Command<boolean | Promise<boolean>>;
@@ -1 +1,10 @@
1
+ import { AbstractConstructable } from "@coolon/restilence-plugin";
1
2
  export type TextSearchPredicate<Row> = (row: Row, regex: RegExp) => boolean;
3
+ export declare class TextSearchContext<Row> {
4
+ readonly row: Row;
5
+ readonly searchText: string;
6
+ readonly searchRegex: RegExp;
7
+ constructor(row: Row, searchText: string, searchRegex: RegExp);
8
+ getOrCreate<T>(type: AbstractConstructable<T>, create: () => T): void;
9
+ matchesText(text: string): boolean;
10
+ }
@@ -0,0 +1,22 @@
1
+ import { ComponentType } from "@angular/cdk/overlay";
2
+ import { ComponentPortal } from "@angular/cdk/portal";
3
+ declare class RowClass {
4
+ readonly className: string;
5
+ readonly matches: () => boolean;
6
+ constructor(className: string, matches: () => boolean);
7
+ }
8
+ export declare abstract class FooterRowModel<C> {
9
+ protected readonly _rowClasses: RowClass[];
10
+ noPadding(): void;
11
+ addClass(className: string, condition?: () => boolean): void;
12
+ }
13
+ export declare namespace FooterRowModel {
14
+ class Impl<C> extends FooterRowModel<C> {
15
+ protected readonly component: ComponentType<C>;
16
+ readonly onInit?: (component: C) => void;
17
+ readonly portal: ComponentPortal<C>;
18
+ constructor(component: ComponentType<C>, onInit?: (component: C) => void);
19
+ getActiveRowClasses(): string;
20
+ }
21
+ }
22
+ export {};
@@ -0,0 +1,6 @@
1
+ import { LoadableComponent } from "../../loadable-component";
2
+ import { CellRenderer } from "./cell-renderer";
3
+ export declare abstract class AbstractCellRenderer<T> extends LoadableComponent implements CellRenderer<T> {
4
+ abstract accessor value: T;
5
+ protected constructor();
6
+ }
@@ -1,52 +1,60 @@
1
1
  import { ComponentType } from '@angular/cdk/overlay';
2
- import { TemplateRef, ViewContainerRef } from '@angular/core';
2
+ import { Host, TemplateRef, ViewContainerRef } from '@angular/core';
3
3
  import { ColumnModel, RowData } from '../column/column-model';
4
4
  import { EditSession } from '../editor/edit-session';
5
5
  import { TableCellComponent } from './table-cell/table-cell.component';
6
6
  import { TableHeaderCellComponent } from './table-header-cell/table-header-cell.component';
7
7
  export declare const HEADER_CELL_RENDERER_PORTAL: unique symbol;
8
+ export declare const FOOTER_CELL_RENDERER_PORTAL: unique symbol;
8
9
  export declare const CELL_RENDERER_PORTAL: unique symbol;
9
10
  export declare const CELL_EDITOR_PORTAL: unique symbol;
10
11
  export declare const PORTAL_RENDERER_COMPONENT: unique symbol;
11
12
  export declare const PORTAL_EDITOR_COMPONENT: unique symbol;
12
- export declare abstract class CellPortalRef<Row, Host, Portal> {
13
- abstract initialiseHost(host: Host, columnModel: ColumnModel<Row>): void;
13
+ export declare abstract class CellPortalRef<Row extends object, Host, Portal> {
14
+ abstract initialiseHost(host: Host): void;
14
15
  abstract onPortalAttached(host: Host, portalComponent: Portal): void;
15
16
  }
16
- export declare class CellHeaderPortalRef<Row, C> extends CellPortalRef<Row, TableHeaderCellComponent, C> {
17
+ export declare class CellHeaderPortalRef<Row extends object, C> extends CellPortalRef<Row, TableHeaderCellComponent, C> {
17
18
  readonly componentType: ComponentType<C>;
18
19
  readonly initialiseHeader: (component: C, columnModel: ColumnModel<Row>) => void;
19
20
  constructor(componentType: ComponentType<C>, initialiseHeader: (component: C, columnModel: ColumnModel<Row>) => void);
20
- initialiseHost(host: TableHeaderCellComponent, columnModel: ColumnModel<Row>): void;
21
+ initialiseHost(host: Host): void;
21
22
  onPortalAttached(host: TableHeaderCellComponent, portalComponent: C): void;
22
23
  }
23
- export declare abstract class CellRendererPortalRef<Row, Portal> extends CellPortalRef<Row, TableCellComponent<Row>, Portal> {
24
+ export declare abstract class CellRendererPortalRef<Row extends object, Portal> extends CellPortalRef<Row, TableCellComponent<Row>, Portal> {
24
25
  abstract pushState(host: TableCellComponent<Row>): void;
25
26
  }
26
- export declare class ComponentCellRendererPortalRef<Row, Portal> extends CellRendererPortalRef<Row, Portal> {
27
+ export declare class ComponentCellRendererPortalRef<Row extends object, Portal> extends CellRendererPortalRef<Row, Portal> {
27
28
  readonly componentType: ComponentType<Portal>;
28
29
  readonly updateComponent: (component: Portal, rowData: RowData<Row>, firstTime: boolean) => void;
29
30
  constructor(componentType: ComponentType<Portal>, updateComponent: (component: Portal, rowData: RowData<Row>, firstTime: boolean) => void);
30
- initialiseHost(host: TableCellComponent<Row>, columnModel: ColumnModel<Row>): void;
31
+ initialiseHost(host: Host): void;
31
32
  onPortalAttached(host: TableCellComponent<Row>, portalComponent: Portal): void;
32
33
  pushState(host: TableCellComponent<Row>): void;
33
34
  }
34
- export declare class CellEditorPortalRef<Row, Portal> extends CellPortalRef<Row, TableCellComponent<Row>, Portal> {
35
+ export declare class CellEditorPortalRef<Row extends object, Portal> extends CellPortalRef<Row, TableCellComponent<Row>, Portal> {
35
36
  readonly componentType: ComponentType<Portal>;
36
37
  readonly initialiseEditorSession: (component: Portal, editSession: EditSession<Row>) => void;
37
38
  constructor(componentType: ComponentType<Portal>, initialiseEditorSession: (component: Portal, editSession: EditSession<Row>) => void);
38
- initialiseHost(host: TableCellComponent<Row>, columnModel: ColumnModel<Row>): void;
39
+ initialiseHost(host: Host): void;
39
40
  onPortalAttached(host: TableCellComponent<Row>, portalComponent: Portal): void;
40
41
  }
41
- export declare class TemplateCellRendererPortalRef<Row> extends CellRendererPortalRef<Row, undefined> {
42
+ export declare class TemplateCellRendererPortalRef<Row extends object> extends CellRendererPortalRef<Row, undefined> {
42
43
  private templateRef;
43
44
  private viewContainer;
44
45
  private fillCell;
45
46
  private padChild;
46
47
  constructor();
47
48
  registerPortal(templateRef: TemplateRef<any>, viewContainer: ViewContainerRef, fillCell: boolean, padChild: boolean): void;
48
- initialiseHost(host: TableCellComponent<Row>, columnModel: ColumnModel<Row>): void;
49
+ initialiseHost(host: Host): void;
49
50
  onPortalAttached(host: TableCellComponent<Row>, portalComponent: undefined): void;
50
51
  pushState(host: TableCellComponent<Row>): void;
51
52
  private createPortal;
52
53
  }
54
+ export declare class CellFooterPortalRef<Row extends object, C> extends CellPortalRef<Row, TableHeaderCellComponent, C> {
55
+ readonly componentType: ComponentType<C>;
56
+ readonly initialiseHeader: (component: C, columnModel: ColumnModel<Row>) => void;
57
+ constructor(componentType: ComponentType<C>, initialiseHeader: (component: C, columnModel: ColumnModel<Row>) => void);
58
+ initialiseHost(host: Host): void;
59
+ onPortalAttached(host: TableHeaderCellComponent, portalComponent: C): void;
60
+ }
@@ -1,4 +1,4 @@
1
- import { ThemePalette } from "@angular/material/core";
1
+ import { ThemePalette } from '@angular/material/core';
2
2
  import { Command, MultipleSelectionModel, SelectionModel } from '@coolon/pectin';
3
3
  import { DisposableComponent } from '../../../disposable-component';
4
4
  import * as i0 from "@angular/core";
@@ -0,0 +1,7 @@
1
+ import { Command, CommandFace } from '@coolon/pectin';
2
+ import { FileDownloadComponent } from '../../../file/file-download/file-download.component';
3
+ export interface MenuBuilder<Row extends object> {
4
+ addCommand(factory: Command.Factory<Row>, face: CommandFace): void;
5
+ addDownload(callback: (row: Row) => FileDownloadComponent.DownloadInfo): void;
6
+ addSeparator(): void;
7
+ }
@@ -0,0 +1,42 @@
1
+ import { MatMenuTrigger } from '@angular/material/menu';
2
+ import { Command } from '@coolon/pectin';
3
+ import { CommandFace } from '../../../commands/command-face';
4
+ import { DisposableComponent } from '../../../disposable-component';
5
+ import { FileDownloadComponent } from '../../../file/file-download/file-download.component';
6
+ import { CellRenderer } from '../cell-renderer';
7
+ import { MenuBuilder } from './menu-builder';
8
+ import * as i0 from "@angular/core";
9
+ declare class CommandData<T extends object> {
10
+ readonly factory: Command.Factory<T, void>;
11
+ readonly face: CommandFace;
12
+ constructor(factory: Command.Factory<T, void>, face: CommandFace);
13
+ }
14
+ declare class DownloadData<T extends object> {
15
+ private createInfo;
16
+ private cache;
17
+ constructor(createInfo: (value: T) => FileDownloadComponent.DownloadInfo);
18
+ createDownloadInfo(value: T): FileDownloadComponent.DownloadInfo;
19
+ }
20
+ type MenuItem<T extends object> = CommandData<T> | DownloadData<T> | null;
21
+ /**
22
+ *
23
+ */
24
+ export declare class TableActionColumnComponent<T extends object> extends DisposableComponent implements CellRenderer<T>, MenuBuilder<T> {
25
+ value: T;
26
+ menu: MatMenuTrigger;
27
+ readonly actions: MenuItem<T>[];
28
+ readonly moreActions: MenuItem<T>[];
29
+ readonly trackByIndex: import("@angular/core").TrackByFunction<any>;
30
+ constructor();
31
+ addCommand(commandFactory: Command.Factory<T, void>, properties: CommandFace): void;
32
+ addSeparator(): void;
33
+ addDownload(factory: (row: T) => FileDownloadComponent.DownloadInfo): void;
34
+ addMoreMenu(builder: (menu: MenuBuilder<T>) => void): void;
35
+ private closeMoreMenu;
36
+ isCommand(item: MenuItem<T>): item is CommandData<T>;
37
+ isDownload(item: MenuItem<T>): item is DownloadData<T>;
38
+ isSeparator(item: MenuItem<T>): boolean;
39
+ static ɵfac: i0.ɵɵFactoryDeclaration<TableActionColumnComponent<any>, never>;
40
+ static ɵcmp: i0.ɵɵComponentDeclaration<TableActionColumnComponent<any>, "aup-table-action-column", never, { "value": { "alias": "value"; "required": false; }; }, {}, never, never, false, never>;
41
+ }
42
+ export {};
@@ -1,36 +1,60 @@
1
- import { ElementRef, EventEmitter, NgZone, OnInit } from "@angular/core";
2
- import { ListModel, ListModelChain, ValueModel } from "@coolon/pectin";
1
+ import { CdkPortalOutletAttachedRef } from "@angular/cdk/portal";
2
+ import { CdkVirtualScrollViewport } from "@angular/cdk/scrolling";
3
+ import { AfterViewInit, ElementRef, InjectionToken, OnInit } from "@angular/core";
4
+ import { ListModel, ListModelChain, MutableValueModel, Proxify, ValueModel } from "@coolon/pectin";
5
+ import { TableVirtualScrollDataSource } from "ng-table-virtual-scroll";
3
6
  import { ResizeAwareComponent } from "../../../resize-aware.component";
4
7
  import { AbstractTableModel } from "../../abstract-table-model";
5
8
  import { ColumnModel } from "../../column/column-model";
9
+ import { FooterRowModel } from "../../footer/footer-row-model";
6
10
  import * as i0 from "@angular/core";
7
- export declare class TableBodyComponent<Row> extends ResizeAwareComponent implements OnInit {
11
+ export declare const AUP_TABLE_VIRTUAL_SCROLL_BUFFER_MULTIPLIER: InjectionToken<number>;
12
+ export declare class TableRowAttributesDirective implements OnInit {
13
+ protected readonly elementRef: ElementRef<HTMLElement>;
14
+ aupTableRowAttributes: Record<string, string>;
15
+ constructor(elementRef: ElementRef<HTMLElement>);
16
+ ngOnInit(): void;
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<TableRowAttributesDirective, never>;
18
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TableRowAttributesDirective, "[aupTableRowAttributes]", never, { "aupTableRowAttributes": { "alias": "aupTableRowAttributes"; "required": false; }; }, {}, never, never, false, never>;
19
+ }
20
+ export declare class TableBodyComponent<Row extends object> extends ResizeAwareComponent implements AfterViewInit {
21
+ protected bufferMultiplier: number;
8
22
  accessor data$: ListModel<Row>;
9
23
  accessor tableModel: AbstractTableModel<Row>;
24
+ accessor footerRow: FooterRowModel.Impl<any>;
10
25
  accessor showHeader$: ValueModel<boolean>;
11
26
  accessor showHeader: boolean;
12
- readonly visibleRowCount: EventEmitter<number>;
13
27
  trackBy: (index: number, item: Row) => any;
14
- /**
15
- * Set to true to enable scrolling. Once enabled the table will have 0 implicit height. You will either
16
- * need to set it explicitly e.g. height: 400px; or by using flex or grid layout to make it fill it's
17
- * containment area.
18
- */
19
- enableScrolling: boolean;
28
+ accessor scrollMode$: ValueModel<TableBodyComponent.ScrollMode>;
29
+ accessor scrollMode: TableBodyComponent.ScrollMode;
30
+ scrollViewport: CdkVirtualScrollViewport;
20
31
  columns$: ListModelChain<ColumnModel<Row>>;
21
32
  columnIds$: ListModelChain<string>;
22
33
  private columnsById$;
23
- readonly _visibleRowCount$: ValueModel<number>;
24
- private readonly headerHeight$;
25
- private readonly rowHeight$;
34
+ protected readonly headerHeight$: MutableValueModel<number>;
35
+ protected rowHeight$: MutableValueModel<number>;
26
36
  baseCssClass: string;
27
- constructor(elementRef: ElementRef, ngZone: NgZone);
37
+ protected virtualScrollDataSource: TableVirtualScrollDataSource<Row>;
38
+ private virtualScrollActive$;
39
+ private scrollTimeout;
40
+ constructor(bufferMultiplier?: number);
41
+ ngAfterViewInit(): void;
28
42
  get hideHeader(): boolean;
43
+ get headerHeightCssVar(): string;
44
+ get rowHeightCssVar(): string;
29
45
  isEditing(row: Row): boolean;
30
46
  notifyCellClicked(columnModel: ColumnModel<Row>, row: Row): void;
31
47
  isFirstVisibleColumn(columnId: string): boolean;
32
48
  isLastVisibleColumn(columnId: string): boolean;
33
49
  getColumnClasses(columnId: string): string[];
34
- static ɵfac: i0.ɵɵFactoryDeclaration<TableBodyComponent<any>, never>;
35
- static ɵcmp: i0.ɵɵComponentDeclaration<TableBodyComponent<any>, "aup-table-body", never, { "data$": { "alias": "data$"; "required": false; }; "tableModel": { "alias": "tableModel"; "required": false; }; "showHeader$": { "alias": "showHeader$"; "required": false; }; "showHeader": { "alias": "showHeader"; "required": false; }; "trackBy": { "alias": "trackBy"; "required": false; }; "enableScrolling": { "alias": "enableScrolling"; "required": false; }; }, { "visibleRowCount": "visibleRowCount"; }, never, never, false, never>;
50
+ private scheduleTableHeightCheck;
51
+ private notifyScrolled;
52
+ private clearScrollTimeout;
53
+ initialiseFooter($event: CdkPortalOutletAttachedRef): void;
54
+ protected readonly Proxify: typeof Proxify;
55
+ static ɵfac: i0.ɵɵFactoryDeclaration<TableBodyComponent<any>, [{ optional: true; }]>;
56
+ static ɵcmp: i0.ɵɵComponentDeclaration<TableBodyComponent<any>, "aup-table-body", never, { "data$": { "alias": "data$"; "required": false; }; "tableModel": { "alias": "tableModel"; "required": false; }; "footerRow": { "alias": "footerRow"; "required": false; }; "showHeader$": { "alias": "showHeader$"; "required": false; }; "showHeader": { "alias": "showHeader"; "required": false; }; "trackBy": { "alias": "trackBy"; "required": false; }; "scrollMode$": { "alias": "scrollMode$"; "required": false; }; "scrollMode": { "alias": "scrollMode"; "required": false; }; }, {}, never, never, false, never>;
57
+ }
58
+ export declare namespace TableBodyComponent {
59
+ type ScrollMode = "none" | "classic" | "virtual";
36
60
  }
@@ -6,18 +6,17 @@ import { ColumnModel, RowData } from "../../column/column-model";
6
6
  import { EditSession } from "../../editor/edit-session";
7
7
  import { CELL_EDITOR_PORTAL, CELL_RENDERER_PORTAL } from "../cell-portal-ref";
8
8
  import * as i0 from "@angular/core";
9
- export declare class TableCellComponent<Row> extends DisposableComponent implements OnChanges {
9
+ export declare class TableCellComponent<Row extends object> extends DisposableComponent implements OnChanges {
10
10
  row: Row;
11
11
  column: ColumnModel<Row>;
12
12
  editSession: EditSession<Row>;
13
13
  tableModel: AbstractTableModel<Row>;
14
- private editRowCommand;
14
+ private readonly editRowCommand;
15
15
  [CELL_RENDERER_PORTAL]: Portal<any>;
16
16
  [CELL_EDITOR_PORTAL]: Portal<any>;
17
17
  defaultClassNames: string;
18
18
  fillCell: boolean;
19
19
  padChild: boolean;
20
- private firstEditableColumn;
21
20
  constructor();
22
21
  hasActiveEditor(): boolean;
23
22
  initialiseRenderer(ref: CdkPortalOutletAttachedRef): void;
@@ -0,0 +1,19 @@
1
+ import { Command, ValueModel } from "@coolon/pectin";
2
+ import { PopupAwareComponent } from "../../../commands/group/popup-aware.component";
3
+ import { PopupContainer } from "../../../commands/group/popup-container";
4
+ import { LoadableComponent } from "../../../loadable-component";
5
+ import * as i0 from "@angular/core";
6
+ export declare class TableCustomMoreMenuPopupComponent<T> extends LoadableComponent implements PopupContainer {
7
+ private _value$;
8
+ private readonly _visible$;
9
+ private readonly _closeCommand;
10
+ constructor();
11
+ initialise(row$: ValueModel<T>, closeCommand: Command<void>): void;
12
+ protected visibleWhile(condition: ValueModel<boolean>): this;
13
+ get visible$(): ValueModel<boolean>;
14
+ get closeCommand(): Command<void>;
15
+ get value$(): ValueModel<T>;
16
+ register(comp: PopupAwareComponent): void;
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<TableCustomMoreMenuPopupComponent<any>, never>;
18
+ static ɵcmp: i0.ɵɵComponentDeclaration<TableCustomMoreMenuPopupComponent<any>, "aup-table-more-menu-popup", never, {}, {}, never, never, false, never>;
19
+ }
@@ -1,23 +1,24 @@
1
1
  import { CdkPortalOutletAttachedRef, ComponentPortal } from "@angular/cdk/portal";
2
2
  import { MatMenuTrigger } from "@angular/material/menu";
3
- import { ValueModelChain } from "@coolon/pectin";
3
+ import { ValueModelChain } from '@coolon/pectin';
4
4
  import { Constructable } from "@coolon/typescript-utilities";
5
5
  import { DisposableComponent } from "../../../disposable-component";
6
6
  import { CellRenderer } from "../cell-renderer";
7
- import { TableMoreMenuPopupComponent } from "./table-more-menu-popup/table-more-menu-popup.component";
7
+ import { TableCustomMoreMenuPopupComponent } from "./table-custom-more-menu-popup.component";
8
8
  import * as i0 from "@angular/core";
9
- export declare class TableMoreMenuComponent<T> extends DisposableComponent implements CellRenderer<T> {
9
+ export declare class TableCustomMoreMenuComponent<T> extends DisposableComponent implements CellRenderer<T> {
10
10
  private value$;
11
11
  accessor value: T;
12
12
  matMenuTrigger: MatMenuTrigger;
13
13
  private readonly popupType$;
14
- popupComponentPortal$: ValueModelChain<ComponentPortal<TableMoreMenuPopupComponent<T>>>;
14
+ popupComponentPortal$: ValueModelChain<ComponentPortal<TableCustomMoreMenuPopupComponent<T>>>;
15
15
  private readonly _visible$;
16
+ private initialiseCallback?;
16
17
  constructor();
17
- configurePopupComponentType(popupComponentType: Constructable<TableMoreMenuPopupComponent<T>>): void;
18
+ configurePopupComponentType(popupComponentType: Constructable<TableCustomMoreMenuPopupComponent<T>>, configureCallback?: (component: TableCustomMoreMenuPopupComponent<T>) => void): void;
18
19
  preventDefault($event: MouseEvent): void;
19
20
  initialise($event: CdkPortalOutletAttachedRef): void;
20
21
  get visible$(): import("@coolon/pectin").ValueModel<boolean>;
21
- static ɵfac: i0.ɵɵFactoryDeclaration<TableMoreMenuComponent<any>, never>;
22
- static ɵcmp: i0.ɵɵComponentDeclaration<TableMoreMenuComponent<any>, "aup-table-more-menu", never, {}, {}, never, never, false, never>;
22
+ static ɵfac: i0.ɵɵFactoryDeclaration<TableCustomMoreMenuComponent<any>, never>;
23
+ static ɵcmp: i0.ɵɵComponentDeclaration<TableCustomMoreMenuComponent<any>, "aup-table-custom-more-menu", never, {}, {}, never, never, false, never>;
23
24
  }
@@ -0,0 +1,11 @@
1
+ import { CdkPortalOutletAttachedRef } from "@angular/cdk/portal";
2
+ import { FooterRowModel } from "../../footer/footer-row-model";
3
+ import * as i0 from "@angular/core";
4
+ export declare class TableFooterRow {
5
+ row: FooterRowModel.Impl<any>;
6
+ defaultClassNames: string;
7
+ get rowClasses(): string;
8
+ initialise($event: CdkPortalOutletAttachedRef): void;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<TableFooterRow, never>;
10
+ static ɵcmp: i0.ɵɵComponentDeclaration<TableFooterRow, "aup-table-footer-row", never, { "row": { "alias": "row"; "required": false; }; }, {}, never, never, false, never>;
11
+ }
@@ -1,6 +1,5 @@
1
- import { ListModel, SelectionModel, ValueModel } from "@coolon/pectin";
1
+ import { ListModel, MultipleSelectionModel, ValueModel } from "@coolon/pectin";
2
2
  import { AbstractTableModel } from "../abstract-table-model";
3
- import { SelectionColumnModel } from "../column/selection-column-model";
4
3
  /**
5
4
  * Example:
6
5
  * @example
@@ -80,8 +79,9 @@ import { SelectionColumnModel } from "../column/selection-column-model";
80
79
  * table.columnTextProperties(I18n.table.columns); // <- configures all columns
81
80
  * });
82
81
  */
83
- export declare class TableModel<Row> extends AbstractTableModel<Row> {
82
+ export declare class TableModel<Row extends object> extends AbstractTableModel<Row> {
84
83
  constructor(sourceOfTruth?: ListModel<Row>, builder?: (table: TableModel<Row>) => void);
85
84
  bindToTable(filteredRows$: ListModel<Row>, visibleRows$: ListModel<Row>): void;
86
- addSelectionColumn(selectionModel?: SelectionModel<Row>, showSelectionColumn?: ValueModel<boolean> | boolean): SelectionColumnModel<Row>;
85
+ get isUsingTemporarySelectionModel$(): ValueModel<boolean>;
86
+ withTemporaryMultipleSelectionModel(process: (selectionModel: MultipleSelectionModel<Row, any>) => Promise<void>): Promise<void>;
87
87
  }
@@ -3,6 +3,7 @@ import { ValueModel } from "@coolon/pectin";
3
3
  import { AbstractTableModel } from '../abstract-table-model';
4
4
  import { AbstractTableComponent } from '../abstract-table.component';
5
5
  import { TableFilterModel } from "../filter/table-filter-model";
6
+ import { TableBodyComponent } from "../renderer/table-body/table-body.component";
6
7
  import { TableModel } from "./table-model";
7
8
  import * as i0 from "@angular/core";
8
9
  /**
@@ -65,23 +66,26 @@ import * as i0 from "@angular/core";
65
66
  * }
66
67
  * }
67
68
  */
68
- export declare class TableComponent<Row> extends AbstractTableComponent<Row> implements OnInit {
69
+ export declare class TableComponent<Row extends object> extends AbstractTableComponent<Row> implements OnInit {
69
70
  accessor tableModel: TableModel<Row>;
70
71
  accessor filterModel: TableFilterModel<Row>;
71
- accessor enablePaging$: ValueModel<boolean>;
72
- accessor enablePaging: boolean;
72
+ tableBody: TableBodyComponent<Row>;
73
+ /**
74
+ * Set to true to scroll mode to classic or virtual (default). Virtual scrolll performs better for large data sets but clamps the row height. Classic scroll
75
+ * renders all rows but allows row heights to grow.
76
+ */
77
+ accessor scrollMode$: ValueModel<TableComponent.ScrollMode>;
78
+ accessor scrollMode: TableComponent.ScrollMode;
73
79
  private _footerContentAdded;
74
80
  private readonly _filteredRows$;
75
- private _pageSize;
76
- private pagedListModel;
81
+ protected readonly tableBodyScrollMode$: ValueModel<TableBodyComponent.ScrollMode>;
77
82
  constructor(injector: Injector);
78
83
  ngOnInit(): void;
79
84
  protected getModel(): AbstractTableModel<Row>;
80
- get pageController(): import("@coolon/pectin").PageController;
81
- private configurePaging;
82
- private disposeOfPagedListModel;
83
85
  footerContentChanged($event: any): void;
84
- updatePageSize(count: number): void;
85
86
  static ɵfac: i0.ɵɵFactoryDeclaration<TableComponent<any>, never>;
86
- static ɵcmp: i0.ɵɵComponentDeclaration<TableComponent<any>, "aup-table", never, { "tableModel": { "alias": "tableModel"; "required": false; }; "filterModel": { "alias": "filterModel"; "required": false; }; "enablePaging$": { "alias": "enablePaging$"; "required": false; }; "enablePaging": { "alias": "enablePaging"; "required": false; }; }, {}, never, ["[footer]"], false, never>;
87
+ static ɵcmp: i0.ɵɵComponentDeclaration<TableComponent<any>, "aup-table", never, { "tableModel": { "alias": "tableModel"; "required": false; }; "filterModel": { "alias": "filterModel"; "required": false; }; "scrollMode$": { "alias": "scrollMode$"; "required": false; }; "scrollMode": { "alias": "scrollMode"; "required": false; }; }, {}, never, ["[footer], [slot=footer]"], false, never>;
88
+ }
89
+ export declare namespace TableComponent {
90
+ type ScrollMode = Omit<TableBodyComponent.ScrollMode, 'none'>;
87
91
  }
@@ -5,7 +5,7 @@ import { CellRenderer } from '../../renderer/cell-renderer';
5
5
  import { TreeInheritanceIconComponent } from '../tree-inheritance-icon/tree-inheritance-icon.component';
6
6
  import { TreeTableModel } from '../tree-table-model';
7
7
  import * as i0 from "@angular/core";
8
- export declare class TreeLabelCellRendererComponent<T> extends DisposableComponent implements CellRenderer<T>, OnInit {
8
+ export declare class TreeLabelCellRendererComponent<T extends object> extends DisposableComponent implements CellRenderer<T>, OnInit {
9
9
  private node$;
10
10
  accessor value: T;
11
11
  label: string;
@@ -1,13 +1,14 @@
1
1
  import { ComponentType } from '@angular/cdk/overlay';
2
2
  import { Types } from '@coolon/pectin';
3
3
  import { ColumnModel } from '../column/column-model';
4
+ import { ColumnOrderManager } from "../column/column-order-manager";
4
5
  import { TreeLabelCellRendererComponent } from './tree-label-cell-renderer/tree-label-cell-renderer.component';
5
6
  import { TreeTableModel } from './tree-table-model';
6
- export declare class TreeLabelColumnModel<Row> extends ColumnModel<Row> {
7
+ export declare class TreeLabelColumnModel<Row extends object> extends ColumnModel<Row> {
7
8
  readonly expansionModel: TreeTableModel<Row>;
8
9
  private labelFactory;
9
10
  private iconFactory;
10
- constructor(columnId: string, textPropertiesProvider: ColumnModel.TextPropertiesProvider, expansionModel: TreeTableModel<Row>);
11
+ constructor(columnId: string, order: ColumnOrderManager, textPropertiesProvider: ColumnModel.TextPropertiesProvider, expansionModel: TreeTableModel<Row>);
11
12
  pluck<P extends Types.StringValuePropertiesOf<Row>>(property: P): void;
12
13
  useLabel(factory: (row: Row) => string): void;
13
14
  /**
@@ -1,7 +1,9 @@
1
1
  import { Injector, OnInit } from "@angular/core";
2
+ import { ValueModel } from '@coolon/pectin';
2
3
  import { TreeNode } from '@coolon/typescript-utilities';
3
4
  import { AbstractTableModel } from '../abstract-table-model';
4
5
  import { AbstractTableComponent } from '../abstract-table.component';
6
+ import { TableBodyComponent } from "../renderer/table-body/table-body.component";
5
7
  import { TreeExpansionModel } from "./tree-expansion-model";
6
8
  import { TreeTableModel } from './tree-table-model';
7
9
  import * as i0 from "@angular/core";
@@ -68,6 +70,7 @@ import * as i0 from "@angular/core";
68
70
  export declare class TreeTableComponent<T extends TreeNode<T>> extends AbstractTableComponent<T> implements OnInit {
69
71
  accessor treeTableModel: TreeTableModel<T>;
70
72
  accessor expansionModel: TreeExpansionModel<T>;
73
+ protected readonly scrollMode$: ValueModel<TableBodyComponent.ScrollMode>;
71
74
  constructor(injector: Injector);
72
75
  ngOnInit(): void;
73
76
  getModel(): AbstractTableModel<T>;
@@ -1,26 +1,25 @@
1
- import { ListModel, MutableValueModel, SelectionModel, ValueModel } from '@coolon/pectin';
1
+ import { ChangeDetectorRef } from "@angular/core";
2
+ import { ListModel, MutableValueModel, ValueModel } from '@coolon/pectin';
2
3
  import { AbstractTableModel } from '../abstract-table-model';
3
- import { SelectionColumnModel } from "../column/selection-column-model";
4
4
  import { TreeExpansionModel } from './tree-expansion-model';
5
5
  import { TreeLabelColumnModel } from './tree-label-column-model';
6
6
  export type ChildArrayPropertiesOf<T> = {
7
7
  [K in keyof T]: T[K] extends T[] ? K : never;
8
8
  }[keyof T];
9
- export declare class TreeTableModel<Row> extends AbstractTableModel<Row> {
9
+ export declare class TreeTableModel<Row extends object> extends AbstractTableModel<Row> {
10
10
  private treeExpansionModel;
11
11
  private readonly flattenedDataSource;
12
12
  readonly childExtractor: (row: Row) => Row[];
13
13
  private _isExpandedPredicate$;
14
14
  constructor(source$: ListModel<Row>, childAccessor: ChildArrayPropertiesOf<Row> | ((node: Row) => Row[]), builder?: (model: TreeTableModel<Row>) => void);
15
15
  get isExpandedPredicate$(): ValueModel<(node: Row) => boolean>;
16
- bindToTable(expansionModel: TreeExpansionModel<Row>, filteredRows$: ListModel<Row>, visibleRows$: ListModel<Row>): void;
16
+ bindToTable(expansionModel: TreeExpansionModel<Row>, filteredRows$: ListModel<Row>, visibleRows$: ListModel<Row>, cdr: ChangeDetectorRef): void;
17
17
  treeControlColumn(builder: (column: TreeLabelColumnModel<Row>) => void): void;
18
18
  expand(node: Row): void;
19
19
  collapse(node: Row): void;
20
20
  isCollapsed(node: Row): boolean;
21
21
  ensureAncestorsAndSelfVisible(node: Row): void;
22
22
  isExpanded(row: Row): boolean;
23
- addSelectionColumn(selectionModel?: SelectionModel<Row>, showSelectionColumn?: ValueModel<boolean> | boolean): SelectionColumnModel<Row>;
24
23
  }
25
24
  export declare namespace TreeTableModel {
26
25
  interface Options<T, K extends keyof T> {
@@ -1,6 +1,6 @@
1
1
  import { AfterViewInit, ElementRef, OnDestroy, OnInit } from '@angular/core';
2
2
  import { MatButton } from '@angular/material/button';
3
- import { MatMenuItem } from '@angular/material/menu';
3
+ import { MatMenu, MatMenuItem } from '@angular/material/menu';
4
4
  import { Command, GarbageCollector, UnaryCommand } from '@coolon/pectin';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class CommandDirective<P = any> extends GarbageCollector implements OnInit, OnDestroy, AfterViewInit {
@@ -8,18 +8,20 @@ export declare class CommandDirective<P = any> extends GarbageCollector implemen
8
8
  private _command;
9
9
  private _commandEnabled;
10
10
  private matControl;
11
+ private isInPopupMenu;
11
12
  set pectinCommand(command: Command<any> | UnaryCommand<P>);
12
13
  get pectinCommand(): Command<any> | UnaryCommand<P>;
13
14
  private _commandParameter;
14
15
  private _commandParameterProvided;
15
16
  set commandParameter(value: P);
16
17
  get commandParameter(): P;
17
- constructor(elementRef: ElementRef, matButton: MatButton, matMenuItem: MatMenuItem);
18
+ preventDefault: boolean;
19
+ constructor(elementRef: ElementRef, matButton: MatButton, matMenuItem: MatMenuItem, matMenu?: MatMenu);
18
20
  ngOnInit(): void;
19
21
  ngAfterViewInit(): void;
20
22
  updateEnabledState(enabled: boolean): void;
21
23
  ngOnDestroy(): void;
22
24
  notifyClick($event: Event): void;
23
- static ɵfac: i0.ɵɵFactoryDeclaration<CommandDirective<any>, [null, { optional: true; host: true; }, { optional: true; host: true; }]>;
24
- static ɵdir: i0.ɵɵDirectiveDeclaration<CommandDirective<any>, "[pectinCommand]", never, { "pectinCommand": { "alias": "pectinCommand"; "required": false; }; "commandParameter": { "alias": "commandParameter"; "required": false; }; }, {}, never, never, false, never>;
25
+ static ɵfac: i0.ɵɵFactoryDeclaration<CommandDirective<any>, [null, { optional: true; host: true; }, { optional: true; host: true; }, { optional: true; }]>;
26
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CommandDirective<any>, "[pectinCommand]", never, { "pectinCommand": { "alias": "pectinCommand"; "required": false; }; "commandParameter": { "alias": "commandParameter"; "required": false; }; "preventDefault": { "alias": "preventDefault"; "required": false; }; }, {}, never, never, false, never>;
25
27
  }
@@ -9,3 +9,4 @@ export * from "./focus-binding";
9
9
  export * from "./garbage-collector.directive";
10
10
  export * from "./highlight-text-model.directive";
11
11
  export * from "./highlight.pipe";
12
+ export * from "./resize-observer.directive";
@@ -0,0 +1,16 @@
1
+ import { AfterViewInit, ElementRef, EventEmitter, NgZone } from '@angular/core';
2
+ import { ValueModel } from '@coolon/pectin';
3
+ import { DisposableComponent } from '../components/disposable-component';
4
+ import { Bounds } from '../components/types/bounds.class';
5
+ import * as i0 from "@angular/core";
6
+ export declare class ResizeObserverDirective extends DisposableComponent implements AfterViewInit {
7
+ aupOnResize: EventEmitter<Bounds>;
8
+ protected readonly elementRef: ElementRef<any>;
9
+ protected readonly ngZone: NgZone;
10
+ private _bounds$;
11
+ ngAfterViewInit(): void;
12
+ get bounds$(): ValueModel<Bounds>;
13
+ private _updateBounds;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<ResizeObserverDirective, never>;
15
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ResizeObserverDirective, "[aupOnResize]", never, {}, { "aupOnResize": "aupOnResize"; }, never, never, true, never>;
16
+ }
@@ -9,7 +9,7 @@ export declare abstract class AbstractInteractionContext implements InteractionC
9
9
  abstract dispose(): void;
10
10
  abstract registerDisposable<T extends Disposable>(disposable: T): T;
11
11
  abstract isActive(): boolean;
12
- protected abstract createAndLaunchActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data: D, disableClose: boolean): Promise<R>;
12
+ protected abstract createAndLaunchActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data: D, options?: InteractionContext.Options): Promise<R>;
13
13
  startActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data?: D, options?: InteractionContext.Options): Promise<R>;
14
14
  confirm(confirm: Confirm): Promise<boolean>;
15
15
  alert(alert: Alert): Promise<void>;
@@ -0,0 +1,9 @@
1
+ import { Command } from "@coolon/pectin";
2
+ import { InteractionContext } from "./interaction-context";
3
+ import { InteractionContextProvider } from "./interaction-context-provider";
4
+ export declare abstract class ActivityContext extends InteractionContextProvider {
5
+ abstract readonly interactionContext: InteractionContext;
6
+ abstract readonly confirmCommand: Command;
7
+ abstract readonly cancelCommand: Command;
8
+ abstract onActivityReady(callback: () => void): void;
9
+ }