@coolon/angular-ui-powerups 16.1.0-aplpha.18 → 16.1.0-aplpha.181

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 (251) 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 +41 -19
  9. package/assets/tabs.scss +15 -5
  10. package/esm2022/lib/animations/slide-animations.mjs +15 -10
  11. package/esm2022/lib/components/cards/abstract-card-container.component.mjs +28 -5
  12. package/esm2022/lib/components/cards/card-container/card-container.component.mjs +4 -4
  13. package/esm2022/lib/components/commands/button-renderer/button-renderer.component.mjs +115 -0
  14. package/esm2022/lib/components/commands/command/command.component.mjs +34 -29
  15. package/esm2022/lib/components/commands/command-face/command-face.component.mjs +11 -3
  16. package/esm2022/lib/components/commands/command-face.mjs +12 -11
  17. package/esm2022/lib/components/commands/group/popup-aware.component.mjs +31 -8
  18. package/esm2022/lib/components/commands/group/popup-menu/abstract-popup-menu.component.mjs +25 -23
  19. package/esm2022/lib/components/commands/group/popup-menu/more-menu.component.mjs +11 -20
  20. package/esm2022/lib/components/commands/group/popup-menu/popup-menu-renderer/popup-menu-renderer.component.mjs +12 -7
  21. package/esm2022/lib/components/commands/group/popup-menu/popup-menu.component.mjs +11 -20
  22. package/esm2022/lib/components/commands/group/tool-bar/tool-bar.component.mjs +8 -6
  23. package/esm2022/lib/components/commands/separator.component.mjs +6 -12
  24. package/esm2022/lib/components/components.module.mjs +55 -30
  25. package/esm2022/lib/components/disposable-component.mjs +32 -7
  26. package/esm2022/lib/components/exports.mjs +14 -5
  27. package/esm2022/lib/components/file/file-download/file-download.component.mjs +78 -0
  28. package/esm2022/lib/components/forms/abstract-input.component.mjs +55 -12
  29. package/esm2022/lib/components/forms/autocomplete-input/autocomplete-input.component.mjs +4 -4
  30. package/esm2022/lib/components/forms/checkbox-input/checkbox-input.component.mjs +8 -6
  31. package/esm2022/lib/components/forms/form-field.mjs +2 -0
  32. package/esm2022/lib/components/forms/multiple-select-input/multiple-select-input.component.mjs +4 -4
  33. package/esm2022/lib/components/forms/number-input/number-input.component.mjs +86 -9
  34. package/esm2022/lib/components/forms/password-input/password-input.component.mjs +40 -3
  35. package/esm2022/lib/components/forms/search-input/search-input.component.mjs +33 -0
  36. package/esm2022/lib/components/forms/select-input/select-input.component.mjs +11 -10
  37. package/esm2022/lib/components/forms/string-input/string-input.component.mjs +36 -11
  38. package/esm2022/lib/components/forms/text-input/text-input.component.mjs +8 -4
  39. package/esm2022/lib/components/icon/icon.component.mjs +7 -4
  40. package/esm2022/lib/components/loadable-component.mjs +21 -10
  41. package/esm2022/lib/components/resize-aware.component.mjs +61 -24
  42. package/esm2022/lib/components/switch-case/switch-case.component.mjs +5 -7
  43. package/esm2022/lib/components/tables/abstract-table-model.mjs +112 -63
  44. package/esm2022/lib/components/tables/abstract-table.component.mjs +19 -5
  45. package/esm2022/lib/components/tables/column/column-manager.mjs +81 -0
  46. package/esm2022/lib/components/tables/column/column-model.mjs +16 -6
  47. package/esm2022/lib/components/tables/column/column-order-manager.mjs +19 -0
  48. package/esm2022/lib/components/tables/column/custom-template-column-model.mjs +3 -3
  49. package/esm2022/lib/components/tables/column/custom-value-column-model.mjs +3 -3
  50. package/esm2022/lib/components/tables/column/editor-controls-column-model.mjs +3 -3
  51. package/esm2022/lib/components/tables/column/list-propery-column-model.mjs +3 -3
  52. package/esm2022/lib/components/tables/column/property-column-model.mjs +3 -3
  53. package/esm2022/lib/components/tables/column/selection-column-model.mjs +35 -13
  54. package/esm2022/lib/components/tables/editor/edit-row-controls/edit-row-controls.component.mjs +2 -2
  55. package/esm2022/lib/components/tables/editor/edit-session.mjs +1 -1
  56. package/esm2022/lib/components/tables/filter/table-filter-model.mjs +4 -2
  57. package/esm2022/lib/components/tables/filter/text-search-predicate.mjs +16 -2
  58. package/esm2022/lib/components/tables/footer/footer-row-model.mjs +38 -0
  59. package/esm2022/lib/components/tables/paginator/paginator.component.mjs +1 -1
  60. package/esm2022/lib/components/tables/renderer/abstract-cell-renderer.mjs +7 -0
  61. package/esm2022/lib/components/tables/renderer/cell-portal-ref.mjs +23 -5
  62. package/esm2022/lib/components/tables/renderer/default-cell-renderer/default-cell-renderer.component.mjs +3 -3
  63. package/esm2022/lib/components/tables/renderer/select-header-cell/selection-header-cell.component.mjs +7 -4
  64. package/esm2022/lib/components/tables/renderer/table-action-column/menu-builder.mjs +2 -0
  65. package/esm2022/lib/components/tables/renderer/table-action-column/table-action-column.component.mjs +153 -0
  66. package/esm2022/lib/components/tables/renderer/table-body/table-body.component.mjs +150 -40
  67. package/esm2022/lib/components/tables/renderer/table-cell/table-cell.component.mjs +6 -6
  68. package/esm2022/lib/components/tables/renderer/table-custom-more-menu/table-custom-more-menu-popup.component.mjs +45 -0
  69. package/esm2022/lib/components/tables/renderer/table-custom-more-menu/table-custom-more-menu.component.mjs +71 -0
  70. package/esm2022/lib/components/tables/renderer/table-footer-row/table-footer-row.component.mjs +30 -0
  71. package/esm2022/lib/components/tables/table/table-model.mjs +12 -3
  72. package/esm2022/lib/components/tables/table/table.component.mjs +39 -61
  73. package/esm2022/lib/components/tables/tree-table/decorated-tree-node.mjs +5 -4
  74. package/esm2022/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.mjs +1 -1
  75. package/esm2022/lib/components/tables/tree-table/tree-label-column-model.mjs +3 -3
  76. package/esm2022/lib/components/tables/tree-table/tree-table-component.mjs +12 -5
  77. package/esm2022/lib/components/tables/tree-table/tree-table-model.mjs +4 -7
  78. package/esm2022/lib/components/text/markdown/markdown.component.mjs +2 -2
  79. package/esm2022/lib/directives/command.directive.mjs +18 -7
  80. package/esm2022/lib/directives/directives.module.mjs +1 -1
  81. package/esm2022/lib/directives/exports.mjs +2 -1
  82. package/esm2022/lib/directives/highlight.pipe.mjs +9 -8
  83. package/esm2022/lib/directives/resize-observer.directive.mjs +40 -0
  84. package/esm2022/lib/interaction/abstract-interaction-context.mjs +6 -7
  85. package/esm2022/lib/interaction/activity-context.mjs +4 -0
  86. package/esm2022/lib/interaction/activity.mjs +20 -21
  87. package/esm2022/lib/interaction/alert.mjs +2 -2
  88. package/esm2022/lib/interaction/components/abstract-confirm-dialog.component.mjs +11 -8
  89. package/esm2022/lib/interaction/components/abstract-dialog.component.mjs +1 -41
  90. package/esm2022/lib/interaction/components/activity-actions/activity-actions.component.mjs +28 -16
  91. package/esm2022/lib/interaction/components/activity-body/activity-body.component.mjs +8 -2
  92. package/esm2022/lib/interaction/components/activity-container/activity-container.component.mjs +46 -15
  93. package/esm2022/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.mjs +53 -15
  94. package/esm2022/lib/interaction/components/activity-title/activity-title.component.mjs +4 -4
  95. package/esm2022/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.mjs +1 -1
  96. package/esm2022/lib/interaction/components/add-card-activity/add-card-activity.component.mjs +1 -1
  97. package/esm2022/lib/interaction/components/add-item-interaction-context/add-item-interaction-context.component.mjs +1 -1
  98. package/esm2022/lib/interaction/components/alert-dialog/alert-dialog.component.mjs +10 -10
  99. package/esm2022/lib/interaction/components/alert-renderer/alert-renderer.component.mjs +55 -0
  100. package/esm2022/lib/interaction/components/confirm-renderer/confirm-renderer.component.mjs +54 -0
  101. package/esm2022/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.mjs +4 -8
  102. package/esm2022/lib/interaction/components/confirm-then-execute-dialog/confirm-then-execute-dialog.component.mjs +4 -8
  103. package/esm2022/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.mjs +7 -9
  104. package/esm2022/lib/interaction/components/editors/edit-context.mjs +1 -1
  105. package/esm2022/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.mjs +4 -4
  106. package/esm2022/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.mjs +21 -5
  107. package/esm2022/lib/interaction/components/input-activities/input-activity.mjs +2 -2
  108. package/esm2022/lib/interaction/components/input-activities/select-input-activity.mjs +4 -2
  109. package/esm2022/lib/interaction/components/input-activities/string-input-activity.mjs +8 -4
  110. package/esm2022/lib/interaction/components/slide-down-interaction-context/slide-down-interaction-context.component.mjs +134 -0
  111. package/esm2022/lib/interaction/confirm.mjs +26 -2
  112. package/esm2022/lib/interaction/directives/interaction-context-trigger-for.directive.mjs +2 -2
  113. package/esm2022/lib/interaction/exports.mjs +6 -1
  114. package/esm2022/lib/interaction/interaction-context-provider.mjs +17 -0
  115. package/esm2022/lib/interaction/interaction-context.mjs +3 -2
  116. package/esm2022/lib/interaction/interaction.module.mjs +22 -14
  117. package/esm2022/lib/interaction/services/interaction-service-routing-adapter.mjs +4 -4
  118. package/esm2022/lib/interaction/services/interaction.service.mjs +18 -6
  119. package/esm2022/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context-factory.mjs +2 -2
  120. package/esm2022/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context.mjs +23 -4
  121. package/esm2022/lib/place/components/list-place-nav/list-place-nav.component.mjs +4 -5
  122. package/esm2022/lib/place/components/place-outlet/place-outlet.component.mjs +7 -9
  123. package/esm2022/lib/place/components/side-place-navigation/side-place-navigation.component.mjs +2 -2
  124. package/esm2022/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.mjs +1 -1
  125. package/esm2022/lib/place/guards/consolidated-param-map.mjs +4 -4
  126. package/esm2022/lib/place/guards/place.guard.mjs +6 -5
  127. package/esm2022/lib/place/navigation/place-component-deactivation-handler.mjs +2 -2
  128. package/esm2022/lib/place/navigation/session/interactions/synchronise-interaction-context-ids-with-route.mjs +3 -6
  129. package/esm2022/lib/place/navigation/session/navigation-session.mjs +2 -2
  130. package/esm2022/lib/place/place-auth-service.mjs +7 -6
  131. package/esm2022/lib/place/place-component.mjs +29 -19
  132. package/esm2022/lib/place/place-definition.mjs +15 -4
  133. package/esm2022/lib/place/place-history.mjs +2 -2
  134. package/esm2022/lib/place/place-router.mjs +67 -53
  135. package/esm2022/lib/place/place.decorator.mjs +2 -2
  136. package/esm2022/lib/place/place.module.mjs +1 -5
  137. package/esm2022/lib/place/route/formatter.mjs +2 -2
  138. package/esm2022/lib/place/route/parameter-decorators.mjs +54 -50
  139. package/esm2022/lib/place/route/parameter-definition.mjs +2 -2
  140. package/esm2022/lib/place/url-snapshot.mjs +3 -3
  141. package/esm2022/lib/place/visit-segment.mjs +2 -2
  142. package/esm2022/lib/place/visit.mjs +2 -2
  143. package/esm2022/lib/services/exports.mjs +2 -1
  144. package/esm2022/lib/services/loading-monitor.mjs +83 -0
  145. package/fesm2022/coolon-angular-ui-powerups.mjs +2586 -1113
  146. package/fesm2022/coolon-angular-ui-powerups.mjs.map +1 -1
  147. package/lib/animations/slide-animations.d.ts +1 -0
  148. package/lib/components/cards/abstract-card-container.component.d.ts +6 -3
  149. package/lib/components/cards/card-container/card-container.component.d.ts +1 -1
  150. package/lib/components/commands/button-renderer/button-renderer.component.d.ts +30 -0
  151. package/lib/components/commands/command/command.component.d.ts +8 -8
  152. package/lib/components/commands/command-face/command-face.component.d.ts +2 -0
  153. package/lib/components/commands/command-face.d.ts +8 -9
  154. package/lib/components/commands/group/popup-aware.component.d.ts +9 -4
  155. package/lib/components/commands/group/popup-menu/abstract-popup-menu.component.d.ts +4 -4
  156. package/lib/components/commands/group/popup-menu/more-menu.component.d.ts +2 -4
  157. package/lib/components/commands/group/popup-menu/popup-menu-renderer/popup-menu-renderer.component.d.ts +2 -0
  158. package/lib/components/commands/group/popup-menu/popup-menu.component.d.ts +2 -4
  159. package/lib/components/commands/group/tool-bar/tool-bar.component.d.ts +1 -1
  160. package/lib/components/commands/separator.component.d.ts +2 -4
  161. package/lib/components/components.module.d.ts +60 -55
  162. package/lib/components/disposable-component.d.ts +16 -3
  163. package/lib/components/exports.d.ts +13 -4
  164. package/lib/components/file/file-download/file-download.component.d.ts +43 -0
  165. package/lib/components/forms/abstract-input.component.d.ts +13 -5
  166. package/lib/components/forms/checkbox-input/checkbox-input.component.d.ts +2 -0
  167. package/lib/components/forms/form-field.d.ts +5 -0
  168. package/lib/components/forms/number-input/number-input.component.d.ts +16 -4
  169. package/lib/components/forms/password-input/password-input.component.d.ts +7 -1
  170. package/lib/components/forms/search-input/search-input.component.d.ts +10 -0
  171. package/lib/components/forms/select-input/select-input.component.d.ts +4 -3
  172. package/lib/components/forms/string-input/string-input.component.d.ts +9 -1
  173. package/lib/components/forms/text-input/text-input.component.d.ts +3 -0
  174. package/lib/components/loadable-component.d.ts +10 -5
  175. package/lib/components/resize-aware.component.d.ts +24 -5
  176. package/lib/components/switch-case/switch-case.component.d.ts +2 -3
  177. package/lib/components/tables/abstract-table-model.d.ts +50 -25
  178. package/lib/components/tables/abstract-table.component.d.ts +4 -3
  179. package/lib/components/tables/column/column-manager.d.ts +19 -0
  180. package/lib/components/tables/column/column-model.d.ts +7 -3
  181. package/lib/components/tables/column/column-order-manager.d.ts +20 -0
  182. package/lib/components/tables/column/custom-template-column-model.d.ts +3 -2
  183. package/lib/components/tables/column/custom-value-column-model.d.ts +3 -2
  184. package/lib/components/tables/column/editor-controls-column-model.d.ts +3 -2
  185. package/lib/components/tables/column/list-propery-column-model.d.ts +3 -2
  186. package/lib/components/tables/column/property-column-model.d.ts +3 -2
  187. package/lib/components/tables/column/selection-column-model.d.ts +10 -4
  188. package/lib/components/tables/editor/edit-row-controls/edit-row-controls.component.d.ts +1 -1
  189. package/lib/components/tables/editor/edit-session.d.ts +1 -1
  190. package/lib/components/tables/filter/text-search-predicate.d.ts +9 -0
  191. package/lib/components/tables/footer/footer-row-model.d.ts +22 -0
  192. package/lib/components/tables/renderer/abstract-cell-renderer.d.ts +6 -0
  193. package/lib/components/tables/renderer/cell-portal-ref.d.ts +20 -12
  194. package/lib/components/tables/renderer/select-header-cell/selection-header-cell.component.d.ts +1 -1
  195. package/lib/components/tables/renderer/table-action-column/menu-builder.d.ts +7 -0
  196. package/lib/components/tables/renderer/table-action-column/table-action-column.component.d.ts +42 -0
  197. package/lib/components/tables/renderer/table-body/table-body.component.d.ts +40 -16
  198. package/lib/components/tables/renderer/table-cell/table-cell.component.d.ts +2 -3
  199. package/lib/components/tables/renderer/table-custom-more-menu/table-custom-more-menu-popup.component.d.ts +19 -0
  200. 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
  201. package/lib/components/tables/renderer/table-footer-row/table-footer-row.component.d.ts +11 -0
  202. package/lib/components/tables/table/table-model.d.ts +4 -4
  203. package/lib/components/tables/table/table.component.d.ts +14 -10
  204. package/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.d.ts +1 -1
  205. package/lib/components/tables/tree-table/tree-label-column-model.d.ts +3 -2
  206. package/lib/components/tables/tree-table/tree-table-component.d.ts +3 -0
  207. package/lib/components/tables/tree-table/tree-table-model.d.ts +4 -5
  208. package/lib/directives/command.directive.d.ts +6 -4
  209. package/lib/directives/exports.d.ts +1 -0
  210. package/lib/directives/resize-observer.directive.d.ts +16 -0
  211. package/lib/interaction/abstract-interaction-context.d.ts +1 -1
  212. package/lib/interaction/activity-context.d.ts +9 -0
  213. package/lib/interaction/activity.d.ts +7 -7
  214. package/lib/interaction/components/abstract-confirm-dialog.component.d.ts +2 -1
  215. package/lib/interaction/components/abstract-dialog.component.d.ts +5 -14
  216. package/lib/interaction/components/activity-actions/activity-actions.component.d.ts +12 -9
  217. package/lib/interaction/components/activity-body/activity-body.component.d.ts +2 -1
  218. package/lib/interaction/components/activity-container/activity-container.component.d.ts +10 -4
  219. package/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.d.ts +3 -3
  220. package/lib/interaction/components/activity-title/activity-title.component.d.ts +1 -1
  221. package/lib/interaction/components/alert-dialog/alert-dialog.component.d.ts +6 -1
  222. package/lib/interaction/components/alert-renderer/alert-renderer.component.d.ts +17 -0
  223. package/lib/interaction/components/confirm-renderer/confirm-renderer.component.d.ts +15 -0
  224. package/lib/interaction/components/editors/edit-context.d.ts +1 -1
  225. package/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.d.ts +5 -3
  226. package/lib/interaction/components/slide-down-interaction-context/slide-down-interaction-context.component.d.ts +53 -0
  227. package/lib/interaction/confirm.d.ts +4 -0
  228. package/lib/interaction/exports.d.ts +5 -0
  229. package/lib/interaction/interaction-context-provider.d.ts +11 -0
  230. package/lib/interaction/interaction-context.d.ts +7 -1
  231. package/lib/interaction/interaction.module.d.ts +35 -33
  232. package/lib/interaction/services/interaction-service-routing-adapter.d.ts +2 -2
  233. package/lib/interaction/services/interaction.service.d.ts +2 -1
  234. package/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context-factory.d.ts +1 -1
  235. package/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context.d.ts +3 -1
  236. package/lib/place/components/place-outlet/place-outlet.component.d.ts +3 -4
  237. package/lib/place/place-auth-service.d.ts +4 -4
  238. package/lib/place/place-component.d.ts +7 -5
  239. package/lib/place/place-definition.d.ts +2 -0
  240. package/lib/place/place-router.d.ts +8 -3
  241. package/lib/place/place.module.d.ts +4 -5
  242. package/lib/services/exports.d.ts +1 -0
  243. package/lib/services/loading-monitor.d.ts +29 -0
  244. package/package.json +6 -4
  245. package/esm2022/lib/components/tables/column/column-list-model.mjs +0 -44
  246. package/esm2022/lib/components/tables/renderer/table-more-menu/table-more-menu-popup/table-more-menu-popup.component.mjs +0 -33
  247. package/esm2022/lib/components/tables/renderer/table-more-menu/table-more-menu.component.mjs +0 -60
  248. package/esm2022/lib/components/tables/table-row-menu/table-row-menu.component.mjs +0 -84
  249. package/lib/components/tables/column/column-list-model.d.ts +0 -13
  250. package/lib/components/tables/renderer/table-more-menu/table-more-menu-popup/table-more-menu-popup.component.d.ts +0 -15
  251. package/lib/components/tables/table-row-menu/table-row-menu.component.d.ts +0 -28
@@ -1,8 +1,9 @@
1
1
  import { EventEmitter } from '@angular/core';
2
2
  import { ErrorStateMatcher } from '@angular/material/core';
3
3
  import { FloatLabelType } from "@angular/material/form-field";
4
- import { Command, Disposable, EventListenerList, FocusManager, IMutableHasValue, ListModel, ValueModel } from '@coolon/pectin';
4
+ import { Command, Disposable, EventListenerList, FocusManager, IMutableHasValue, ListModel, MutableValueModel, ValueModel } from '@coolon/pectin';
5
5
  import { DisposableComponent } from '../disposable-component';
6
+ import { FormField } from "./form-field";
6
7
  import * as i0 from "@angular/core";
7
8
  interface InputModel<T> extends IMutableHasValue<T>, Disposable {
8
9
  value: T;
@@ -23,10 +24,12 @@ export declare class AbstractInputComponent<T> extends DisposableComponent {
23
24
  * gets told it's an Object and can't scan for a base type annotated with @DelegateUsing(..).
24
25
  */
25
26
  protected readonly formValue$: InputModel<T>;
26
- label: string;
27
+ accessor i18n$: MutableValueModel<FormField>;
28
+ accessor i18n: FormField;
29
+ _label: string;
27
30
  userFloatLabel: FloatLabelType;
28
- hint: string;
29
- placeholder: string;
31
+ _hint?: string;
32
+ _placeholder?: string;
30
33
  dense: boolean;
31
34
  private readonly _enabled$;
32
35
  set enabled$(condition$: ValueModel<boolean>);
@@ -50,10 +53,14 @@ export declare class AbstractInputComponent<T> extends DisposableComponent {
50
53
  protected safelyInvoke(command: Command<any>): void;
51
54
  constructor(formValue$: InputModel<T>);
52
55
  isEnabled(): boolean;
56
+ get disabled(): boolean;
53
57
  hasErrors(): boolean;
54
58
  get errorList$(): ListModel<string>;
55
59
  get firstError(): string;
56
60
  get focusContext(): FocusManager.Context;
61
+ get label(): string;
62
+ get hint(): string;
63
+ get placeholder(): string;
57
64
  get floatLabel(): FloatLabelType;
58
65
  get showHint(): boolean;
59
66
  /**
@@ -61,7 +68,8 @@ export declare class AbstractInputComponent<T> extends DisposableComponent {
61
68
  * @param callback
62
69
  */
63
70
  onValueEdited(callback: (is: T, was: T) => void): Disposable;
71
+ protected hackyGetI18n(key: keyof FormField): string;
64
72
  static ɵfac: i0.ɵɵFactoryDeclaration<AbstractInputComponent<any>, never>;
65
- static ɵcmp: i0.ɵɵComponentDeclaration<AbstractInputComponent<any>, "ng-component", never, { "label": { "alias": "label"; "required": false; }; "userFloatLabel": { "alias": "floatLabel"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "dense": { "alias": "dense"; "required": false; }; "enabled$": { "alias": "enabled$"; "required": false; }; "focusCommand": { "alias": "command.focus"; "required": false; }; "blurCommand": { "alias": "command.blur"; "required": false; }; "enterCommand": { "alias": "command.enter"; "required": false; }; "escapeCommand": { "alias": "command.escape"; "required": false; }; "clickCommand": { "alias": "command.click"; "required": false; }; }, { "focus": "focus"; "blur": "blur"; "enterKey": "enterKey"; "escapeKey": "escapeKey"; }, never, never, false, never>;
73
+ static ɵcmp: i0.ɵɵComponentDeclaration<AbstractInputComponent<any>, "ng-component", never, { "i18n$": { "alias": "i18n$"; "required": false; }; "i18n": { "alias": "i18n"; "required": false; }; "_label": { "alias": "label"; "required": false; }; "userFloatLabel": { "alias": "floatLabel"; "required": false; }; "_hint": { "alias": "hint"; "required": false; }; "_placeholder": { "alias": "placeholder"; "required": false; }; "dense": { "alias": "dense"; "required": false; }; "enabled$": { "alias": "enabled$"; "required": false; }; "focusCommand": { "alias": "command.focus"; "required": false; }; "blurCommand": { "alias": "command.blur"; "required": false; }; "enterCommand": { "alias": "command.enter"; "required": false; }; "escapeCommand": { "alias": "command.escape"; "required": false; }; "clickCommand": { "alias": "command.click"; "required": false; }; }, { "focus": "focus"; "blur": "blur"; "enterKey": "enterKey"; "escapeKey": "escapeKey"; }, never, never, false, never>;
66
74
  }
67
75
  export {};
@@ -1,9 +1,11 @@
1
1
  import { AbstractValueInputComponent } from '../abstract-value-input.component';
2
+ import { MatCheckboxChange } from '@angular/material/checkbox';
2
3
  import * as i0 from "@angular/core";
3
4
  export declare class CheckboxInputComponent extends AbstractValueInputComponent<boolean> {
4
5
  color: 'primary' | 'warn' | 'accent';
5
6
  labelPosition: 'before' | 'after';
6
7
  constructor();
8
+ select($event: MatCheckboxChange): void;
7
9
  static ɵfac: i0.ɵɵFactoryDeclaration<CheckboxInputComponent, never>;
8
10
  static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxInputComponent, "aup-checkbox-input", never, { "color": { "alias": "color"; "required": false; }; "labelPosition": { "alias": "labelPosition"; "required": false; }; }, {}, never, never, false, never>;
9
11
  }
@@ -0,0 +1,5 @@
1
+ export interface FormField {
2
+ label(): string;
3
+ hint?(): string;
4
+ placeholder?(): string;
5
+ }
@@ -1,11 +1,23 @@
1
+ import { Command, ValueModel, ValueModelChain } from "@coolon/pectin";
1
2
  import { AbstractValueInputComponent } from '../abstract-value-input.component';
2
3
  import * as i0 from "@angular/core";
3
4
  export declare class NumberInputComponent extends AbstractValueInputComponent<number> {
4
5
  autocomplete: string;
5
- min: number;
6
- max: number;
7
- iconPrefix: string;
6
+ accessor min$: ValueModel<number>;
7
+ accessor min: number;
8
+ accessor max$: ValueModel<number>;
9
+ accessor max: number;
10
+ accessor significantDigits$: ValueModel<number>;
11
+ accessor significantDigits: number;
12
+ protected readonly incrementCommand: Command<void>;
13
+ protected readonly decrementCommand: Command<void>;
14
+ protected readonly displayValue$: ValueModel<number>;
15
+ protected readonly step$: ValueModelChain<number>;
8
16
  constructor();
17
+ private increment;
18
+ private decrement;
19
+ private clampSignificantDigits;
20
+ onValueChange(value: number): void;
9
21
  static ɵfac: i0.ɵɵFactoryDeclaration<NumberInputComponent, never>;
10
- static ɵcmp: i0.ɵɵComponentDeclaration<NumberInputComponent, "aup-number-input", never, { "autocomplete": { "alias": "autocomplete"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "iconPrefix": { "alias": "iconPrefix"; "required": false; }; }, {}, never, never, false, never>;
22
+ static ɵcmp: i0.ɵɵComponentDeclaration<NumberInputComponent, "aup-number-input", never, { "autocomplete": { "alias": "autocomplete"; "required": false; }; "min$": { "alias": "min$"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max$": { "alias": "max$"; "required": false; }; "max": { "alias": "max"; "required": false; }; "significantDigits$": { "alias": "significantDigits$"; "required": false; }; "significantDigits": { "alias": "significantDigits"; "required": false; }; }, {}, never, never, false, never>;
11
23
  }
@@ -1,8 +1,14 @@
1
+ import { Command, MutableValueModel, ValueModel } from "@coolon/pectin";
1
2
  import { AbstractValueInputComponent } from '../abstract-value-input.component';
2
3
  import * as i0 from "@angular/core";
3
4
  export declare class PasswordInputComponent extends AbstractValueInputComponent<string> {
4
5
  autocomplete: string;
6
+ accessor enableShowPassword$: ValueModel<boolean>;
7
+ accessor enableShowPassword: boolean;
8
+ protected readonly showPassword$: MutableValueModel<boolean>;
9
+ protected readonly toggleShowPasswordCommand: Command<void>;
5
10
  constructor();
11
+ get fieldType(): "text" | "password";
6
12
  static ɵfac: i0.ɵɵFactoryDeclaration<PasswordInputComponent, never>;
7
- static ɵcmp: i0.ɵɵComponentDeclaration<PasswordInputComponent, "aup-password-input", never, { "autocomplete": { "alias": "autocomplete"; "required": false; }; }, {}, never, never, false, never>;
13
+ static ɵcmp: i0.ɵɵComponentDeclaration<PasswordInputComponent, "aup-password-input", never, { "autocomplete": { "alias": "autocomplete"; "required": false; }; "enableShowPassword$": { "alias": "enableShowPassword$"; "required": false; }; "enableShowPassword": { "alias": "enableShowPassword"; "required": false; }; }, {}, never, never, false, never>;
8
14
  }
@@ -0,0 +1,10 @@
1
+ import { Command } from '@coolon/pectin';
2
+ import { AbstractValueInputComponent } from '../abstract-value-input.component';
3
+ import * as i0 from "@angular/core";
4
+ export declare class SearchInputComponent extends AbstractValueInputComponent<string> {
5
+ autocomplete: string;
6
+ readonly clearCommand: Command<void>;
7
+ constructor();
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<SearchInputComponent, never>;
9
+ static ɵcmp: i0.ɵɵComponentDeclaration<SearchInputComponent, "aup-search-input", never, { "autocomplete": { "alias": "autocomplete"; "required": false; }; }, {}, never, never, false, never>;
10
+ }
@@ -4,9 +4,10 @@ import { AbstractValueInputComponent } from '../abstract-value-input.component';
4
4
  import * as i0 from "@angular/core";
5
5
  /**
6
6
  * Using templates:
7
- * <aup-select-input [valueModel]="myModel" [options]="myOptions">
7
+ * <aup-select-input [value$]="myModel" [options]="myOptions">
8
8
  * <ng-template #optionTemplate let-option>{{option.thePropertyYouWant}}</ng-template>
9
- * <ng-template #nilOptionTemplate let-option>{{option.thePropertyYouWant}}</ng-template>
9
+ * <ng-template #selectedOptionTemplate let-option>{{option.thePropertyYouWant}} note, not used for nils (the placeholder is used)</ng-template>
10
+ * <ng-template #nilOptionTemplate>Uses the placeholder by default but you can customise it</ng-template>
10
11
  * </aup-select_input>
11
12
  */
12
13
  export declare class SelectInputComponent<T = any> extends AbstractValueInputComponent<T> implements OnInit {
@@ -27,5 +28,5 @@ export declare class SelectInputComponent<T = any> extends AbstractValueInputCom
27
28
  select(item: T): void;
28
29
  ngOnInit(): void;
29
30
  static ɵfac: i0.ɵɵFactoryDeclaration<SelectInputComponent<any>, never>;
30
- static ɵcmp: i0.ɵɵComponentDeclaration<SelectInputComponent<any>, "aup-select-input", never, { "options$": { "alias": "options$"; "required": false; }; "options": { "alias": "options"; "required": false; }; "optionLabel": { "alias": "optionLabel"; "required": false; }; "allowNil": { "alias": "allowNil"; "required": false; }; "optionLabelFormat": { "alias": "optionLabelFormat"; "required": false; }; }, {}, ["selectedOptionTemplateRef", "optionTemplateRef", "nilOptionTemplateRef"], never, false, never>;
31
+ static ɵcmp: i0.ɵɵComponentDeclaration<SelectInputComponent<any>, "aup-select-input", never, { "options$": { "alias": "options$"; "required": false; }; "options": { "alias": "options"; "required": false; }; "optionLabel": { "alias": "optionLabel"; "required": false; }; "allowNil": { "alias": "allowNil"; "required": false; }; "optionLabelFormat": { "alias": "optionLabelFormat"; "required": false; }; }, {}, ["selectedOptionTemplateRef", "optionTemplateRef", "nilOptionTemplateRef"], ["[select-option-footer]"], false, never>;
31
32
  }
@@ -1,3 +1,4 @@
1
+ import { ElementRef } from '@angular/core';
1
2
  import { Command, ValueModel } from '@coolon/pectin';
2
3
  import { AbstractValueInputComponent } from '../abstract-value-input.component';
3
4
  import * as i0 from "@angular/core";
@@ -6,8 +7,15 @@ export declare class StringInputComponent extends AbstractValueInputComponent<st
6
7
  accessor enableClear$: ValueModel<boolean>;
7
8
  accessor enableClear: boolean;
8
9
  iconPrefix: string;
10
+ accessor suffixCommand: Command;
11
+ inputMode: 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url';
12
+ trim: boolean;
9
13
  readonly clearCommand: Command<void>;
14
+ readonly elementRef: ElementRef<any>;
10
15
  constructor();
16
+ get hasSuffixCommand(): boolean;
17
+ select(): void;
18
+ protected onValueChange($event: string): void;
11
19
  static ɵfac: i0.ɵɵFactoryDeclaration<StringInputComponent, never>;
12
- static ɵcmp: i0.ɵɵComponentDeclaration<StringInputComponent, "aup-string-input", never, { "autocomplete": { "alias": "autocomplete"; "required": false; }; "enableClear$": { "alias": "enableClear$"; "required": false; }; "enableClear": { "alias": "enableClear"; "required": false; }; "iconPrefix": { "alias": "iconPrefix"; "required": false; }; }, {}, never, never, false, never>;
20
+ static ɵcmp: i0.ɵɵComponentDeclaration<StringInputComponent, "aup-string-input", never, { "autocomplete": { "alias": "autocomplete"; "required": false; }; "enableClear$": { "alias": "enableClear$"; "required": false; }; "enableClear": { "alias": "enableClear"; "required": false; }; "iconPrefix": { "alias": "iconPrefix"; "required": false; }; "suffixCommand": { "alias": "suffixCommand"; "required": false; }; "inputMode": { "alias": "inputMode"; "required": false; }; "trim": { "alias": "trim"; "required": false; }; }, {}, never, never, false, never>;
13
21
  }
@@ -1,9 +1,12 @@
1
+ import { ElementRef } from '@angular/core';
1
2
  import { AbstractValueInputComponent } from '../abstract-value-input.component';
2
3
  import * as i0 from "@angular/core";
3
4
  export declare class TextInputComponent extends AbstractValueInputComponent<string> {
4
5
  rows: number;
5
6
  cols: number;
7
+ readonly elementRef: ElementRef<any>;
6
8
  constructor();
9
+ select(): void;
7
10
  static ɵfac: i0.ɵɵFactoryDeclaration<TextInputComponent, never>;
8
11
  static ɵcmp: i0.ɵɵComponentDeclaration<TextInputComponent, "aup-text-input", never, { "rows": { "alias": "rows"; "required": false; }; "cols": { "alias": "cols"; "required": false; }; }, {}, never, never, false, never>;
9
12
  }
@@ -1,12 +1,17 @@
1
- import { ProviderToken } from '@angular/core';
2
- import { DisposableComponent } from "./disposable-component";
3
- import { Loadable } from "./types/loadable";
1
+ import { InjectOptions, OnInit, ProviderToken } from '@angular/core';
2
+ import { DisposableComponent } from './disposable-component';
3
+ import { Loadable } from './types/loadable';
4
4
  import * as i0 from "@angular/core";
5
- export declare class LoadableComponent extends DisposableComponent {
5
+ export declare class LoadableComponent extends DisposableComponent implements OnInit {
6
6
  #private;
7
+ constructor();
7
8
  get loaded$(): import("@coolon/pectin").ValueModel<boolean>;
8
9
  ngOnInit(): void;
9
- protected injectLoadable<T extends Loadable>(token: ProviderToken<T>, options?: {
10
+ private loadDependencies;
11
+ protected injectLoadable<T extends Loadable>(token: ProviderToken<T>, options?: InjectOptions & {
12
+ wait: boolean;
13
+ }): T;
14
+ registerLoadable<T extends Loadable>(loadable: T, options?: {
10
15
  wait: boolean;
11
16
  }): T;
12
17
  static ɵfac: i0.ɵɵFactoryDeclaration<LoadableComponent, never>;
@@ -1,14 +1,13 @@
1
1
  import { AfterViewInit, ElementRef, NgZone } from '@angular/core';
2
- import { ValueModel } from '@coolon/pectin';
2
+ import { GarbageCollector, ValueModel } from '@coolon/pectin';
3
3
  import { DisposableComponent } from './disposable-component';
4
4
  import { Bounds } from './types/bounds.class';
5
5
  import { Point } from './types/point.class';
6
6
  import * as i0 from "@angular/core";
7
7
  export declare class ResizeAwareComponent extends DisposableComponent implements AfterViewInit {
8
- protected readonly elementRef: ElementRef;
8
+ protected readonly elementRef: ElementRef<any>;
9
9
  protected readonly ngZone: NgZone;
10
- private _bounds$;
11
- constructor(elementRef: ElementRef, ngZone: NgZone);
10
+ protected boundsTracker: ResizeAwareComponent.ResizeTracker;
12
11
  ngAfterViewInit(): void;
13
12
  get bounds$(): ValueModel<Bounds>;
14
13
  get nativeElement(): any;
@@ -17,9 +16,29 @@ export declare class ResizeAwareComponent extends DisposableComponent implements
17
16
  y: number;
18
17
  } | MouseEvent): Point;
19
18
  get bounds(): Bounds;
20
- private _updateBounds;
21
19
  static ɵfac: i0.ɵɵFactoryDeclaration<ResizeAwareComponent, never>;
22
20
  static ɵdir: i0.ɵɵDirectiveDeclaration<ResizeAwareComponent, never, never, {}, {}, never, never, false, never>;
23
21
  }
24
22
  export declare namespace ResizeAwareComponent {
23
+ class ResizeTracker extends GarbageCollector {
24
+ protected readonly elementRef: ElementRef;
25
+ protected readonly ngZone: NgZone;
26
+ private _bounds$;
27
+ readonly width$: ValueModel<number>;
28
+ readonly height$: ValueModel<number>;
29
+ readonly top$: ValueModel<number>;
30
+ readonly left$: ValueModel<number>;
31
+ readonly bottom$: ValueModel<number>;
32
+ readonly right$: ValueModel<number>;
33
+ constructor(elementRef: ElementRef, ngZone: NgZone);
34
+ notifyViewReady(): void;
35
+ get bounds$(): ValueModel<Bounds>;
36
+ get nativeElement(): any;
37
+ relativePositionOf(point: {
38
+ x: number;
39
+ y: number;
40
+ } | MouseEvent): Point;
41
+ get bounds(): Bounds;
42
+ private _updateBounds;
43
+ }
25
44
  }
@@ -1,4 +1,4 @@
1
- import { AfterContentInit, ChangeDetectorRef, QueryList, TemplateRef } from '@angular/core';
1
+ import { AfterContentInit, QueryList, TemplateRef } from '@angular/core';
2
2
  import { ValueModel } from '@coolon/pectin';
3
3
  import { DisposableComponent } from '../disposable-component';
4
4
  import * as i0 from "@angular/core";
@@ -32,12 +32,11 @@ export declare class SwitchCaseDefaultDirective<T> extends SwitchCaseOption<T> {
32
32
  * </aup-switch-case>
33
33
  */
34
34
  export declare class SwitchCaseComponent<T> extends DisposableComponent implements AfterContentInit {
35
- private cdr;
36
35
  accessor switch$: ValueModel<T>;
37
36
  accessor switch: T;
38
37
  switchCaseOptions: QueryList<SwitchCaseOption<T>>;
39
38
  selectedIndex: number;
40
- constructor(cdr: ChangeDetectorRef);
39
+ constructor();
41
40
  ngAfterContentInit(): void;
42
41
  private updateSelection;
43
42
  static ɵfac: i0.ɵɵFactoryDeclaration<SwitchCaseComponent<any>, never>;
@@ -1,32 +1,38 @@
1
- import { ComponentType } from "@angular/cdk/overlay";
2
- import { Injector } from "@angular/core";
3
- import { BooleanValueModelChain, Command, Constructable, DelegatingListModel, DirtyTrackingForm, Disposable, GarbageCollector, ListModel, SelectionModel, Types, ValueModel, ValueModelChain } from "@coolon/pectin";
4
- import { CellRendererOptions, ColumnModel, OnComponentInit } from "./column/column-model";
5
- import { ColumnTextProperties } from "./column/column-text-properties";
6
- import { CustomTemplateColumnModel } from "./column/custom-template-column-model";
7
- import { CustomValueColumnModel } from "./column/custom-value-column-model";
8
- import { EditorControlColumnModel } from "./column/editor-controls-column-model";
9
- import { ListPropertyColumnModel } from "./column/list-propery-column-model";
10
- import { PropertyColumnModel } from "./column/property-column-model";
11
- import { SelectionColumnModel } from "./column/selection-column-model";
12
- import { EditSession } from "./editor/edit-session";
13
- import { TextSearchPredicate } from "./filter/text-search-predicate";
14
- import { CellRenderer } from "./renderer/cell-renderer";
15
- import { TableMoreMenuPopupComponent } from "./renderer/table-more-menu/table-more-menu-popup/table-more-menu-popup.component";
16
- export declare abstract class AbstractTableModel<Row> extends GarbageCollector {
1
+ import { ComponentType } from '@angular/cdk/overlay';
2
+ import { Injector } from '@angular/core';
3
+ import { BooleanValueModelChain, Command, Constructable, DelegatingListModel, DependsOnOptions, DirtyTrackingForm, Disposable, GarbageCollector, HasValue, ListModel, SelectionModel, Types, ValueModel, ValueModelChain } from '@coolon/pectin';
4
+ import { ColumnManager } from './column/column-manager';
5
+ import { CellRendererOptions, ColumnModel, OnComponentInit } from './column/column-model';
6
+ import { ColumnOrderManager } from './column/column-order-manager';
7
+ import { ColumnTextProperties } from './column/column-text-properties';
8
+ import { CustomTemplateColumnModel } from './column/custom-template-column-model';
9
+ import { CustomValueColumnModel } from './column/custom-value-column-model';
10
+ import { EditorControlColumnModel } from './column/editor-controls-column-model';
11
+ import { ListPropertyColumnModel } from './column/list-propery-column-model';
12
+ import { PropertyColumnModel } from './column/property-column-model';
13
+ import { SelectionColumnModel } from './column/selection-column-model';
14
+ import { EditSession } from './editor/edit-session';
15
+ import { TextSearchPredicate } from './filter/text-search-predicate';
16
+ import { FooterRowModel } from './footer/footer-row-model';
17
+ import { CellRenderer } from './renderer/cell-renderer';
18
+ import { MenuBuilder } from './renderer/table-action-column/menu-builder';
19
+ import { TableActionColumnComponent } from './renderer/table-action-column/table-action-column.component';
20
+ import { TableCustomMoreMenuPopupComponent } from './renderer/table-custom-more-menu/table-custom-more-menu-popup.component';
21
+ export declare abstract class AbstractTableModel<Row extends object> extends GarbageCollector {
17
22
  protected readonly _dataSource$: DelegatingListModel<Row>;
18
23
  protected readonly _filteredRows$: DelegatingListModel<Row>;
19
24
  protected readonly _visibleRows$: DelegatingListModel<Row>;
20
- private readonly _columnList;
25
+ protected readonly columnManager: ColumnManager<Row>;
21
26
  private _editorSessions;
22
27
  private readonly _rowsBeingEdited$;
23
28
  private saveCommandFactory;
24
29
  private _editorSessionByRowId;
25
30
  private readonly rowClassNamePredicates;
31
+ private readonly rowAttributeGenerators;
26
32
  private _columnTextPropertiesLookup;
27
33
  readonly editing$: BooleanValueModelChain;
28
34
  readonly firstEditableColumn$: ValueModelChain<ColumnModel<Row>>;
29
- private selectionColumnModel;
35
+ readonly selectionColumnModel: SelectionColumnModel<Row>;
30
36
  private rowSelectionDisabledOnAllColumns$;
31
37
  private readonly rowClickListeners;
32
38
  readonly firstVisibleColumn$: ValueModel<ColumnModel<Row>>;
@@ -35,10 +41,11 @@ export declare abstract class AbstractTableModel<Row> extends GarbageCollector {
35
41
  readonly textSearchPredicate$: ValueModel<TextSearchPredicate<Row>>;
36
42
  protected identityOf: (item: Row) => any;
37
43
  readonly dataSourceEmpty$: ValueModel<boolean>;
38
- private readonly selectionModelProxy;
39
44
  readonly selectedItems$: ListModel<Row>;
40
45
  readonly leadSelection$: ValueModel<Row>;
41
46
  readonly hasSelection$: BooleanValueModelChain;
47
+ footerRowModel: FooterRowModel.Impl<any>;
48
+ private readonly _viewDependencies;
42
49
  constructor();
43
50
  protected setDataSource(dataSource$: any): void;
44
51
  /**
@@ -48,6 +55,16 @@ export declare abstract class AbstractTableModel<Row> extends GarbageCollector {
48
55
  * @param rest
49
56
  */
50
57
  initialise(injector: Injector, identityOf: (item: Row) => any): void;
58
+ /**
59
+ * Adds additional models that will trigger a table repaint. This is required if the table
60
+ * needs to be redrawn outside of changes to the rows of filters. i.e. some eternal state is used
61
+ * to assign row classes etc.
62
+ *
63
+ * Note: This function must be called before the table is bound to the model.
64
+ * @param hasValues
65
+ */
66
+ viewStateDependsOn(...hasValues: ReadonlyArray<HasValue<any>>): void;
67
+ get viewStateDependencies(): ReadonlyArray<HasValue<any>>;
51
68
  get dataSource$(): ListModel<Row>;
52
69
  /**
53
70
  * Gets the rows that are visible after any filters are applied. If there are
@@ -63,24 +80,32 @@ export declare abstract class AbstractTableModel<Row> extends GarbageCollector {
63
80
  startEditSession(row: Row): EditSession<Row>;
64
81
  getEditSessionFor(row: Row): EditSession<Row>;
65
82
  cancelAllEditorSessions(): void;
66
- get columns(): ListModel<ColumnModel<Row>>;
67
- get visibleColumns(): ListModel<ColumnModel<Row>>;
83
+ get columns$(): ListModel<ColumnModel<Row>>;
84
+ get visibleColumns$(): ListModel<ColumnModel<Row>>;
68
85
  pluck<P extends Types.ValuePropertiesOf<Row>>(property: P, options?: {
69
86
  columnId: string;
70
87
  }): PropertyColumnModel<Row, P>;
71
88
  pluckList<P extends Types.ArrayPropertiesOf<Row>>(property: P, options?: {
72
89
  columnId: string;
73
90
  }): ListPropertyColumnModel<Row, P>;
74
- protected _addSelectionColumn(selectionModel?: SelectionModel<Row>, visible?: ValueModel<boolean> | boolean): SelectionColumnModel<Row>;
91
+ useSelectionModel(selectionModel?: SelectionModel<Row>): void;
75
92
  addEditControls(saveCommandFactory: Command.Factory<DirtyTrackingForm<Row>, boolean | Promise<boolean>>, formFactory?: (row: Row) => DirtyTrackingForm<Row>): EditorControlColumnModel<Row>;
76
93
  addCustomColumn<V>(columnId: string, dataAccessor: (row: Row) => V): CustomValueColumnModel<Row, V>;
77
94
  addComponentColumn<C extends CellRenderer<Partial<Row>>>(columnId: string, component: ComponentType<C>, onInit?: OnComponentInit<C>): CustomValueColumnModel<Row, Row>;
78
95
  addComponentColumn<C extends CellRenderer<Partial<Row>>>(columnId: string, component: ComponentType<C>, options?: CellRendererOptions<Row, C>): CustomValueColumnModel<Row, Row>;
79
- addMoreMenu(componentClass: Constructable<TableMoreMenuPopupComponent<Row>>): CustomValueColumnModel<Row, Row>;
96
+ addMoreMenu<C extends TableCustomMoreMenuPopupComponent<Row>>(builder: (menu: MenuBuilder<Row>) => void): CustomValueColumnModel<Row, Row>;
97
+ /**
98
+ * Use this method if the more menu popup needs custom components
99
+ */
100
+ addCustomMoreMenu<C extends TableCustomMoreMenuPopupComponent<Row>>(componentClass: Constructable<C>, initialiseCallback?: (component: C) => void): CustomValueColumnModel<Row, Row>;
101
+ addActionColumn(builder: (menu: TableActionColumnComponent<Row>) => void): CustomValueColumnModel<Row, Row>;
102
+ addFooterRow<C>(component: ComponentType<C>, initialiseCallback?: (component: C) => void): FooterRowModel<C>;
80
103
  addTemplateColumn<V>(columnId: string): CustomTemplateColumnModel<Row>;
81
- addRowClass(className: string, predicate: (row: Row) => boolean): void;
104
+ addRowClass(className: string, predicate: (row: Row) => boolean, options?: DependsOnOptions): void;
105
+ addRowAttribute(attributeName: string, getValue: (row: Row) => string): void;
82
106
  getRowClasses(row: Row): string[];
83
- protected addColumn<C extends ColumnModel<Row>>(column: C, index?: number): C;
107
+ getRowAttributes(row: Row): Record<string, string>;
108
+ protected addColumn<C extends ColumnModel<Row>>(column: C, position?: ColumnOrderManager.Position): C;
84
109
  columnTextProperties(columnTextProperties: {
85
110
  [columnName: string]: ColumnTextProperties;
86
111
  }): void;
@@ -63,7 +63,7 @@ import * as i0 from "@angular/core";
63
63
  * }
64
64
  * }
65
65
  */
66
- export declare class AbstractTableComponent<Row> extends DisposableComponent implements OnInit {
66
+ export declare class AbstractTableComponent<Row extends object> extends DisposableComponent implements OnInit {
67
67
  readonly injector: Injector;
68
68
  accessor showHeader$: ValueModel<boolean>;
69
69
  accessor showHeader: boolean;
@@ -72,7 +72,8 @@ export declare class AbstractTableComponent<Row> extends DisposableComponent imp
72
72
  * need to set it explicitly e.g. height: 400px; or by using flex or grid layout to make it fill it's
73
73
  * containment area.
74
74
  */
75
- enableScrolling: boolean;
75
+ accessor enableScrolling$: ValueModel<boolean>;
76
+ accessor enableScrolling: boolean;
76
77
  columns: ListModelChain<ColumnModel<Row>>;
77
78
  columnIds: ListModelChain<string>;
78
79
  private columnsById;
@@ -91,5 +92,5 @@ export declare class AbstractTableComponent<Row> extends DisposableComponent imp
91
92
  protected getModel(): AbstractTableModel<Row>;
92
93
  registerColumnTemplate(columnId: string, templateRef: TemplateRef<any>, viewContainer: ViewContainerRef, fillCell: boolean, padChild: boolean): void;
93
94
  static ɵfac: i0.ɵɵFactoryDeclaration<AbstractTableComponent<any>, never>;
94
- static ɵcmp: i0.ɵɵComponentDeclaration<AbstractTableComponent<any>, "aup-abstract-table", never, { "showHeader$": { "alias": "showHeader$"; "required": false; }; "showHeader": { "alias": "showHeader"; "required": false; }; "enableScrolling": { "alias": "enableScrolling"; "required": false; }; }, {}, never, never, false, never>;
95
+ static ɵcmp: i0.ɵɵComponentDeclaration<AbstractTableComponent<any>, "aup-abstract-table", never, { "showHeader$": { "alias": "showHeader$"; "required": false; }; "showHeader": { "alias": "showHeader"; "required": false; }; "enableScrolling$": { "alias": "enableScrolling$"; "required": false; }; "enableScrolling": { "alias": "enableScrolling"; "required": false; }; }, {}, never, never, false, never>;
95
96
  }
@@ -0,0 +1,19 @@
1
+ import { GarbageCollector, ListModel, WatchList } from '@coolon/pectin';
2
+ import { ColumnModel } from './column-model';
3
+ import { ColumnOrderManager } from "./column-order-manager";
4
+ export declare class ColumnManager<Row extends object> extends GarbageCollector implements ColumnOrderManager {
5
+ private readonly _columnRefs$;
6
+ private readonly orderedColumnRefs$;
7
+ private readonly _columnsById$;
8
+ readonly allColumns$: ListModel<ColumnModel<Row>>;
9
+ readonly columnVisibilities$: WatchList<boolean>;
10
+ readonly visibleColumns$: ListModel<ColumnModel<Row>>;
11
+ constructor();
12
+ position(column: ColumnModel<any>, newPosition: ColumnOrderManager.Position): void;
13
+ getColumn(id: string): ColumnModel<Row>;
14
+ hasColumn(id: string): boolean;
15
+ hasMatchingColumn(row: Row, regex: RegExp): boolean;
16
+ addColumn<C extends ColumnModel<Row>>(column: C, position?: ColumnOrderManager.Position): C;
17
+ computePosition(position?: ColumnOrderManager.Position): string;
18
+ doComputeValue(): ColumnModel<Row>[];
19
+ }
@@ -7,8 +7,9 @@ import { ColumnTextSearchFormatter } from "../filter/column-text-search-formatte
7
7
  import { CellEditorPortalRef, CellHeaderPortalRef, CellRendererPortalRef } from "../renderer/cell-portal-ref";
8
8
  import { TableCellComponent } from "../renderer/table-cell/table-cell.component";
9
9
  import { TableHeaderCellComponent } from "../renderer/table-header-cell/table-header-cell.component";
10
+ import { ColumnOrderManager } from "./column-order-manager";
10
11
  import { ColumnTextProperties } from "./column-text-properties";
11
- export interface RowData<Row> {
12
+ export interface RowData<Row extends object> {
12
13
  row: Row;
13
14
  editSession?: EditSession<Row>;
14
15
  editRowCommand: Command<void>;
@@ -21,8 +22,9 @@ export interface CellRendererOptions<Row, E> {
21
22
  export interface MutableCellRendererOptions<Row, E, P extends keyof Row> extends CellRendererOptions<Row, E> {
22
23
  onValueEdit: (row: Row, is: Row[P], was: Row[P]) => void;
23
24
  }
24
- export declare class ColumnModel<Row> extends GarbageCollector {
25
+ export declare class ColumnModel<Row extends object> extends GarbageCollector {
25
26
  readonly columnId: string;
27
+ private readonly order;
26
28
  private textPropertiesProvider;
27
29
  private _columnTextProperties;
28
30
  private _columnHeaderPortalRef;
@@ -36,7 +38,7 @@ export declare class ColumnModel<Row> extends GarbageCollector {
36
38
  readonly dasherisedColumnId: string;
37
39
  private readonly textSearchDelegate;
38
40
  readonly visible$: ValueModel<boolean>;
39
- constructor(columnId: string, textPropertiesProvider: ColumnModel.TextPropertiesProvider);
41
+ constructor(columnId: string, order: ColumnOrderManager, textPropertiesProvider: ColumnModel.TextPropertiesProvider);
40
42
  protected installHeaderRenderer(): void;
41
43
  getHeaderText(): string;
42
44
  isVisible(): boolean;
@@ -51,6 +53,8 @@ export declare class ColumnModel<Row> extends GarbageCollector {
51
53
  */
52
54
  textProperties(columnTextProperties: ColumnTextProperties): this;
53
55
  columnTextProperties(columnTextProperties: ColumnTextProperties): this;
56
+ positionAfter(column: ColumnModel<any>): this;
57
+ positionBefore(column: ColumnModel<any>): this;
54
58
  getSearchTextFor(row: Row): string;
55
59
  configureColumnTextSearch(formatter: ColumnTextSearchFormatter<Row>): this;
56
60
  configureColumnTextSearch<T>(formatter: ColumnTextSearchFormatter<T>, mapper: (row: Row) => T): this;
@@ -0,0 +1,20 @@
1
+ import { ColumnModel } from "./column-model";
2
+ export interface ColumnOrderManager {
3
+ position(column: ColumnModel<any>, position: ColumnOrderManager.Position): void;
4
+ }
5
+ export declare namespace ColumnOrderManager {
6
+ interface Before {
7
+ before: ColumnModel<any> | null;
8
+ }
9
+ interface After {
10
+ after: ColumnModel<any> | null;
11
+ }
12
+ export type Position = Before | After;
13
+ export function processPosition(position: Position | undefined, callback: {
14
+ before(col: ColumnModel<any> | null): string;
15
+ after(col: ColumnModel<any> | null): string;
16
+ first(): string;
17
+ last(): string;
18
+ }): string;
19
+ export {};
20
+ }
@@ -1,8 +1,9 @@
1
1
  import { TemplateRef, ViewContainerRef } from "@angular/core";
2
2
  import { ColumnModel } from "./column-model";
3
- export declare class CustomTemplateColumnModel<Row> extends ColumnModel<Row> {
3
+ import { ColumnOrderManager } from "./column-order-manager";
4
+ export declare class CustomTemplateColumnModel<Row extends object> extends ColumnModel<Row> {
4
5
  private readonly config;
5
- constructor(columnId: string, defaults: ColumnModel.TextPropertiesProvider);
6
+ constructor(columnId: string, order: ColumnOrderManager, defaults: ColumnModel.TextPropertiesProvider);
6
7
  setTemplate(templateRef: TemplateRef<any>, viewContainer: ViewContainerRef, fillCell: boolean, padChild: boolean): void;
7
8
  selectRowOnClick(selectOnRowClick: boolean): this;
8
9
  }
@@ -1,8 +1,9 @@
1
1
  import { ComponentType } from "@angular/cdk/overlay";
2
2
  import { CellRendererOptions, ColumnModel, OnComponentInit } from "./column-model";
3
- export declare class CustomValueColumnModel<Row, V> extends ColumnModel<Row> {
3
+ import { ColumnOrderManager } from "./column-order-manager";
4
+ export declare class CustomValueColumnModel<Row extends object, V> extends ColumnModel<Row> {
4
5
  private getValue;
5
- constructor(columnId: string, defaults: ColumnModel.TextPropertiesProvider, getValue: (row: Row) => V);
6
+ constructor(columnId: string, order: ColumnOrderManager, defaults: ColumnModel.TextPropertiesProvider, getValue: (row: Row) => V);
6
7
  cellRenderer<C extends {
7
8
  value: Partial<V>;
8
9
  }>(componentType: ComponentType<C>, onComponentInitOrOptions?: CellRendererOptions<Row, C> | OnComponentInit<C>): this;
@@ -2,8 +2,9 @@ import { ComponentType } from "@angular/cdk/overlay";
2
2
  import { Command, DirtyTrackingForm } from "@coolon/pectin";
3
3
  import { EditSession } from "../editor/edit-session";
4
4
  import { ColumnModel } from "./column-model";
5
- export declare class EditorControlColumnModel<Row> extends ColumnModel<Row> {
6
- constructor(columnId: string, saveCommandFactory: Command.Factory<DirtyTrackingForm<Row>, boolean | Promise<boolean>>, defaults: ColumnModel.TextPropertiesProvider);
5
+ import { ColumnOrderManager } from "./column-order-manager";
6
+ export declare class EditorControlColumnModel<Row extends object> extends ColumnModel<Row> {
7
+ constructor(columnId: string, order: ColumnOrderManager, saveCommandFactory: Command.Factory<DirtyTrackingForm<Row>, boolean | Promise<boolean>>, defaults: ColumnModel.TextPropertiesProvider);
7
8
  cellRenderer(componentType: ComponentType<{
8
9
  row: Row;
9
10
  editSession: EditSession<Row>;
@@ -3,11 +3,12 @@ import { Types, Validator } from "@coolon/pectin";
3
3
  import { CellListEditorComponent } from "../renderer/cell-editors";
4
4
  import { CellRenderer } from "../renderer/cell-renderer";
5
5
  import { ColumnModel } from "./column-model";
6
- export declare class ListPropertyColumnModel<Row, P extends Types.ArrayPropertiesOf<Row>> extends ColumnModel<Row> {
6
+ import { ColumnOrderManager } from "./column-order-manager";
7
+ export declare class ListPropertyColumnModel<Row extends object, P extends Types.ArrayPropertiesOf<Row>> extends ColumnModel<Row> {
7
8
  readonly property: P;
8
9
  private _userFormat;
9
10
  private _defaultSearchTextFormat;
10
- constructor(id: string, property: P, defaults: ColumnModel.TextPropertiesProvider);
11
+ constructor(id: string, order: ColumnOrderManager, property: P, defaults: ColumnModel.TextPropertiesProvider);
11
12
  cellRenderer(componentType: ComponentType<CellRenderer<Types.ArrayElementType<Row, P>[]>>): Omit<this, "format">;
12
13
  cellEditor<C extends CellListEditorComponent<Types.ArrayElementType<Row, P>>>(editor: ComponentType<C>, validators?: Validator<Types.ArrayElementType<Row, P>[]>[], initialiseComponent?: (component: C) => void): this;
13
14
  cellEditor<C extends CellListEditorComponent<Types.ArrayElementType<Row, P>>>(editor: ComponentType<C>, initialiseComponent?: (component: C) => void): this;
@@ -4,11 +4,12 @@ import { EditableCellRenderer } from "../editor/editable-cell-renderer";
4
4
  import { CellEditorComponent } from "../renderer/cell-editors";
5
5
  import { CellRenderer } from "../renderer/cell-renderer";
6
6
  import { CellRendererOptions, ColumnModel, MutableCellRendererOptions, OnComponentInit } from "./column-model";
7
- export declare class PropertyColumnModel<Row, P extends Types.ValuePropertiesOf<Row>> extends ColumnModel<Row> {
7
+ import { ColumnOrderManager } from "./column-order-manager";
8
+ export declare class PropertyColumnModel<Row extends object, P extends Types.ValuePropertiesOf<Row>> extends ColumnModel<Row> {
8
9
  readonly property: P;
9
10
  private _userFormat;
10
11
  private _defaultSearchTextFormatter;
11
- constructor(id: string, property: P, defaults: ColumnModel.TextPropertiesProvider);
12
+ constructor(id: string, order: ColumnOrderManager, property: P, defaults: ColumnModel.TextPropertiesProvider);
12
13
  cellRenderer<E extends CellRenderer<Row[P]>>(componentType: ComponentType<E>, options?: CellRendererOptions<Row, E>): Omit<this, "format">;
13
14
  cellRenderer<E extends CellRenderer<Row[P]>>(componentType: ComponentType<E>, onComponentInit?: OnComponentInit<E>): Omit<this, "format">;
14
15
  liveEditCellRenderer<E extends EditableCellRenderer<Row[P]>>(componentType: ComponentType<E>, options: MutableCellRendererOptions<Row, E, P>): this;