@coolon/angular-ui-powerups 16.1.0-aplpha.9 → 16.1.0-aplpha.91

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 (145) hide show
  1. package/assets/activities/input-activities.scss +10 -2
  2. package/assets/form.scss +74 -27
  3. package/assets/table.scss +13 -24
  4. package/assets/tabs.scss +2 -6
  5. package/esm2022/lib/animations/slide-animations.mjs +6 -1
  6. package/esm2022/lib/components/cards/card-container/card-container.component.mjs +4 -4
  7. package/esm2022/lib/components/commands/command/command.component.mjs +24 -10
  8. package/esm2022/lib/components/commands/command-face/command-face.component.mjs +11 -3
  9. package/esm2022/lib/components/commands/command-face.mjs +11 -11
  10. package/esm2022/lib/components/commands/group/popup-menu/abstract-popup-menu.component.mjs +11 -11
  11. package/esm2022/lib/components/commands/group/tool-bar/tool-bar.component.mjs +6 -4
  12. package/esm2022/lib/components/components.module.mjs +22 -8
  13. package/esm2022/lib/components/disposable-component.mjs +19 -37
  14. package/esm2022/lib/components/exports.mjs +6 -2
  15. package/esm2022/lib/components/forms/abstract-input.component.mjs +55 -12
  16. package/esm2022/lib/components/forms/autocomplete-input/autocomplete-input.component.mjs +2 -2
  17. package/esm2022/lib/components/forms/checkbox-input/checkbox-input.component.mjs +3 -3
  18. package/esm2022/lib/components/forms/form-field.mjs +2 -0
  19. package/esm2022/lib/components/forms/multiple-select-input/multiple-select-input.component.mjs +2 -2
  20. package/esm2022/lib/components/forms/number-input/number-input.component.mjs +49 -10
  21. package/esm2022/lib/components/forms/password-input/password-input.component.mjs +40 -3
  22. package/esm2022/lib/components/forms/search-input/search-input.component.mjs +33 -0
  23. package/esm2022/lib/components/forms/select-input/select-input.component.mjs +11 -10
  24. package/esm2022/lib/components/forms/string-input/string-input.component.mjs +21 -9
  25. package/esm2022/lib/components/icon/icon.component.mjs +7 -4
  26. package/esm2022/lib/components/loadable-component.mjs +49 -0
  27. package/esm2022/lib/components/resize-aware.component.mjs +61 -24
  28. package/esm2022/lib/components/switch-case/switch-case.component.mjs +5 -7
  29. package/esm2022/lib/components/tables/abstract-table-model.mjs +42 -25
  30. package/esm2022/lib/components/tables/abstract-table.component.mjs +19 -5
  31. package/esm2022/lib/components/tables/column/column-manager.mjs +81 -0
  32. package/esm2022/lib/components/tables/column/column-model.mjs +13 -3
  33. package/esm2022/lib/components/tables/column/column-order-manager.mjs +19 -0
  34. package/esm2022/lib/components/tables/column/custom-template-column-model.mjs +3 -3
  35. package/esm2022/lib/components/tables/column/custom-value-column-model.mjs +3 -3
  36. package/esm2022/lib/components/tables/column/editor-controls-column-model.mjs +3 -3
  37. package/esm2022/lib/components/tables/column/list-propery-column-model.mjs +3 -3
  38. package/esm2022/lib/components/tables/column/property-column-model.mjs +3 -3
  39. package/esm2022/lib/components/tables/column/selection-column-model.mjs +3 -3
  40. package/esm2022/lib/components/tables/editor/edit-session.mjs +4 -2
  41. package/esm2022/lib/components/tables/filter/table-filter-model.mjs +4 -2
  42. package/esm2022/lib/components/tables/filter/text-search-predicate.mjs +16 -2
  43. package/esm2022/lib/components/tables/renderer/default-cell-renderer/default-cell-renderer.component.mjs +3 -3
  44. package/esm2022/lib/components/tables/renderer/table-body/table-body.component.mjs +132 -41
  45. package/esm2022/lib/components/tables/renderer/table-more-menu/table-more-menu.component.mjs +7 -2
  46. package/esm2022/lib/components/tables/table/table.component.mjs +19 -68
  47. package/esm2022/lib/components/tables/tree-table/decorated-tree-node.mjs +5 -4
  48. package/esm2022/lib/components/tables/tree-table/tree-label-column-model.mjs +3 -3
  49. package/esm2022/lib/components/tables/tree-table/tree-table-component.mjs +7 -4
  50. package/esm2022/lib/components/tables/tree-table/tree-table-model.mjs +3 -3
  51. package/esm2022/lib/components/text/markdown/markdown.component.mjs +2 -2
  52. package/esm2022/lib/directives/directives.module.mjs +1 -1
  53. package/esm2022/lib/directives/exports.mjs +2 -1
  54. package/esm2022/lib/directives/highlight.pipe.mjs +2 -2
  55. package/esm2022/lib/directives/resize-observer.directive.mjs +40 -0
  56. package/esm2022/lib/interaction/activity.mjs +3 -4
  57. package/esm2022/lib/interaction/alert.mjs +2 -2
  58. package/esm2022/lib/interaction/components/abstract-confirm-dialog.component.mjs +8 -4
  59. package/esm2022/lib/interaction/components/activity-actions/activity-actions.component.mjs +7 -9
  60. package/esm2022/lib/interaction/components/activity-container/activity-container.component.mjs +28 -11
  61. package/esm2022/lib/interaction/components/activity-title/activity-title.component.mjs +4 -4
  62. package/esm2022/lib/interaction/components/editors/edit-context.mjs +1 -1
  63. package/esm2022/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.mjs +2 -2
  64. package/esm2022/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.mjs +3 -3
  65. package/esm2022/lib/interaction/components/input-activities/input-activity.mjs +2 -2
  66. package/esm2022/lib/interaction/components/input-activities/select-input-activity.mjs +3 -1
  67. package/esm2022/lib/interaction/components/input-activities/string-input-activity.mjs +8 -4
  68. package/esm2022/lib/interaction/components/slide-down-interaction-context/slide-down-interaction-context.component.mjs +129 -0
  69. package/esm2022/lib/interaction/directives/interaction-context-trigger-for.directive.mjs +2 -2
  70. package/esm2022/lib/interaction/exports.mjs +2 -1
  71. package/esm2022/lib/interaction/interaction.module.mjs +7 -9
  72. package/esm2022/lib/place/components/list-place-nav/list-place-nav.component.mjs +3 -4
  73. package/esm2022/lib/place/components/place-outlet/place-outlet.component.mjs +7 -9
  74. package/esm2022/lib/place/components/side-place-navigation/side-place-navigation.component.mjs +2 -2
  75. package/esm2022/lib/place/guards/consolidated-param-map.mjs +4 -4
  76. package/esm2022/lib/place/navigation/place-component-deactivation-handler.mjs +2 -2
  77. package/esm2022/lib/place/navigation/session/interactions/synchronise-interaction-context-ids-with-route.mjs +3 -6
  78. package/esm2022/lib/place/place-component.mjs +7 -7
  79. package/esm2022/lib/place/place-definition.mjs +3 -3
  80. package/esm2022/lib/place/place-history.mjs +2 -2
  81. package/esm2022/lib/place/place.decorator.mjs +2 -2
  82. package/esm2022/lib/place/place.module.mjs +1 -5
  83. package/esm2022/lib/place/route/formatter.mjs +2 -2
  84. package/esm2022/lib/place/route/parameter-decorators.mjs +54 -50
  85. package/esm2022/lib/place/route/parameter-definition.mjs +2 -2
  86. package/esm2022/lib/place/url-snapshot.mjs +3 -3
  87. package/esm2022/lib/place/visit-segment.mjs +2 -2
  88. package/esm2022/lib/place/visit.mjs +2 -2
  89. package/fesm2022/coolon-angular-ui-powerups.mjs +1075 -485
  90. package/fesm2022/coolon-angular-ui-powerups.mjs.map +1 -1
  91. package/lib/animations/slide-animations.d.ts +1 -0
  92. package/lib/components/cards/card-container/card-container.component.d.ts +1 -1
  93. package/lib/components/commands/command/command.component.d.ts +2 -1
  94. package/lib/components/commands/command-face/command-face.component.d.ts +2 -0
  95. package/lib/components/commands/command-face.d.ts +5 -7
  96. package/lib/components/commands/group/popup-menu/abstract-popup-menu.component.d.ts +2 -2
  97. package/lib/components/commands/group/tool-bar/tool-bar.component.d.ts +1 -1
  98. package/lib/components/components.module.d.ts +55 -53
  99. package/lib/components/disposable-component.d.ts +11 -8
  100. package/lib/components/exports.d.ts +5 -1
  101. package/lib/components/forms/abstract-input.component.d.ts +13 -5
  102. package/lib/components/forms/form-field.d.ts +5 -0
  103. package/lib/components/forms/number-input/number-input.component.d.ts +8 -4
  104. package/lib/components/forms/password-input/password-input.component.d.ts +7 -1
  105. package/lib/components/forms/search-input/search-input.component.d.ts +10 -0
  106. package/lib/components/forms/select-input/select-input.component.d.ts +4 -3
  107. package/lib/components/forms/string-input/string-input.component.d.ts +3 -1
  108. package/lib/components/loadable-component.d.ts +17 -0
  109. package/lib/components/resize-aware.component.d.ts +24 -5
  110. package/lib/components/switch-case/switch-case.component.d.ts +2 -3
  111. package/lib/components/tables/abstract-table-model.d.ts +10 -5
  112. package/lib/components/tables/abstract-table.component.d.ts +3 -2
  113. package/lib/components/tables/column/column-manager.d.ts +19 -0
  114. package/lib/components/tables/column/column-model.d.ts +5 -1
  115. package/lib/components/tables/column/column-order-manager.d.ts +20 -0
  116. package/lib/components/tables/column/custom-template-column-model.d.ts +2 -1
  117. package/lib/components/tables/column/custom-value-column-model.d.ts +2 -1
  118. package/lib/components/tables/column/editor-controls-column-model.d.ts +2 -1
  119. package/lib/components/tables/column/list-propery-column-model.d.ts +2 -1
  120. package/lib/components/tables/column/property-column-model.d.ts +2 -1
  121. package/lib/components/tables/column/selection-column-model.d.ts +2 -1
  122. package/lib/components/tables/filter/text-search-predicate.d.ts +9 -0
  123. package/lib/components/tables/renderer/table-body/table-body.component.d.ts +35 -16
  124. package/lib/components/tables/renderer/table-more-menu/table-more-menu.component.d.ts +2 -1
  125. package/lib/components/tables/table/table.component.d.ts +5 -10
  126. package/lib/components/tables/tree-table/tree-label-column-model.d.ts +2 -1
  127. package/lib/components/tables/tree-table/tree-table-component.d.ts +3 -0
  128. package/lib/directives/exports.d.ts +1 -0
  129. package/lib/directives/resize-observer.directive.d.ts +16 -0
  130. package/lib/interaction/activity.d.ts +2 -2
  131. package/lib/interaction/components/abstract-confirm-dialog.component.d.ts +1 -0
  132. package/lib/interaction/components/activity-actions/activity-actions.component.d.ts +1 -3
  133. package/lib/interaction/components/activity-container/activity-container.component.d.ts +7 -3
  134. package/lib/interaction/components/activity-title/activity-title.component.d.ts +1 -1
  135. package/lib/interaction/components/editors/edit-context.d.ts +1 -1
  136. package/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.d.ts +1 -1
  137. package/lib/interaction/components/slide-down-interaction-context/slide-down-interaction-context.component.d.ts +53 -0
  138. package/lib/interaction/exports.d.ts +1 -0
  139. package/lib/interaction/interaction.module.d.ts +28 -28
  140. package/lib/place/components/place-outlet/place-outlet.component.d.ts +3 -4
  141. package/lib/place/place-component.d.ts +4 -4
  142. package/lib/place/place.module.d.ts +4 -5
  143. package/package.json +7 -5
  144. package/esm2022/lib/components/tables/column/column-list-model.mjs +0 -44
  145. package/lib/components/tables/column/column-list-model.d.ts +0 -13
@@ -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 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,6 +7,7 @@ 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
12
  export interface RowData<Row> {
12
13
  row: Row;
@@ -23,6 +24,7 @@ export interface MutableCellRendererOptions<Row, E, P extends keyof Row> extends
23
24
  }
24
25
  export declare class ColumnModel<Row> 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
+ import { ColumnOrderManager } from "./column-order-manager";
3
4
  export declare class CustomTemplateColumnModel<Row> 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
+ import { ColumnOrderManager } from "./column-order-manager";
3
4
  export declare class CustomValueColumnModel<Row, 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
+ import { ColumnOrderManager } from "./column-order-manager";
5
6
  export declare class EditorControlColumnModel<Row> extends ColumnModel<Row> {
6
- constructor(columnId: string, saveCommandFactory: Command.Factory<DirtyTrackingForm<Row>, boolean | Promise<boolean>>, defaults: ColumnModel.TextPropertiesProvider);
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
+ import { ColumnOrderManager } from "./column-order-manager";
6
7
  export declare class ListPropertyColumnModel<Row, 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
+ import { ColumnOrderManager } from "./column-order-manager";
7
8
  export declare class PropertyColumnModel<Row, 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;
@@ -1,11 +1,12 @@
1
1
  import { ThemePalette } from "@angular/material/core";
2
2
  import { Proxified, SelectionModel } from "@coolon/pectin";
3
3
  import { ColumnModel } from "./column-model";
4
+ import { ColumnOrderManager } from "./column-order-manager";
4
5
  export declare class SelectionColumnModel<Row> extends ColumnModel<Row> {
5
6
  readonly selectionModel: Proxified<SelectionModel<Row>>;
6
7
  private _enableHeaderControls;
7
8
  private _color;
8
- constructor(columnId: string, defaults: ColumnModel.TextPropertiesProvider, selectionModel: Proxified<SelectionModel<Row>>);
9
+ constructor(columnId: string, order: ColumnOrderManager, defaults: ColumnModel.TextPropertiesProvider, selectionModel: Proxified<SelectionModel<Row>>);
9
10
  useSelectionModel(selectionModel: SelectionModel<Row>): void;
10
11
  protected getDefaultHeaderText(): string;
11
12
  enableHeaderControls(enable: boolean): this;
@@ -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
+ }
@@ -1,36 +1,55 @@
1
- import { ElementRef, EventEmitter, NgZone, OnInit } from "@angular/core";
2
- import { ListModel, ListModelChain, ValueModel } from "@coolon/pectin";
1
+ import { CdkVirtualScrollViewport } from "@angular/cdk/scrolling";
2
+ import { AfterViewInit, ElementRef, InjectionToken, OnInit } from "@angular/core";
3
+ import { ListModel, ListModelChain, MutableValueModel, ValueModel } from "@coolon/pectin";
4
+ import { TableVirtualScrollDataSource } from "ng-table-virtual-scroll";
3
5
  import { ResizeAwareComponent } from "../../../resize-aware.component";
4
6
  import { AbstractTableModel } from "../../abstract-table-model";
5
7
  import { ColumnModel } from "../../column/column-model";
6
8
  import * as i0 from "@angular/core";
7
- export declare class TableBodyComponent<Row> extends ResizeAwareComponent implements OnInit {
9
+ export declare const AUP_TABLE_VIRTUAL_SCROLL_BUFFER_MULTIPLIER: InjectionToken<number>;
10
+ export declare class TableRowAttributesDirective implements OnInit {
11
+ protected readonly elementRef: ElementRef<HTMLElement>;
12
+ aupTableRowAttributes: Record<string, string>;
13
+ constructor(elementRef: ElementRef<HTMLElement>);
14
+ ngOnInit(): void;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<TableRowAttributesDirective, never>;
16
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TableRowAttributesDirective, "[aupTableRowAttributes]", never, { "aupTableRowAttributes": { "alias": "aupTableRowAttributes"; "required": false; }; }, {}, never, never, false, never>;
17
+ }
18
+ export declare class TableBodyComponent<Row> extends ResizeAwareComponent implements AfterViewInit {
19
+ protected bufferMultiplier: number;
8
20
  accessor data$: ListModel<Row>;
9
21
  accessor tableModel: AbstractTableModel<Row>;
10
22
  accessor showHeader$: ValueModel<boolean>;
11
23
  accessor showHeader: boolean;
12
- readonly visibleRowCount: EventEmitter<number>;
13
24
  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;
25
+ accessor scrollMode$: ValueModel<TableBodyComponent.ScrollMode>;
26
+ accessor scrollMode: TableBodyComponent.ScrollMode;
27
+ scrollViewport: CdkVirtualScrollViewport;
20
28
  columns$: ListModelChain<ColumnModel<Row>>;
21
29
  columnIds$: ListModelChain<string>;
22
30
  private columnsById$;
23
- readonly _visibleRowCount$: ValueModel<number>;
24
- private readonly headerHeight$;
25
- private readonly rowHeight$;
31
+ protected readonly headerHeight$: MutableValueModel<number>;
32
+ protected rowHeight$: MutableValueModel<number>;
26
33
  baseCssClass: string;
27
- constructor(elementRef: ElementRef, ngZone: NgZone);
34
+ protected virtualScrollDataSource: TableVirtualScrollDataSource<Row>;
35
+ private virtualScrollActive$;
36
+ private scrollTimeout;
37
+ constructor(bufferMultiplier?: number);
38
+ ngAfterViewInit(): void;
28
39
  get hideHeader(): boolean;
40
+ get headerHeightCssVar(): string;
41
+ get rowHeightCssVar(): string;
29
42
  isEditing(row: Row): boolean;
30
43
  notifyCellClicked(columnModel: ColumnModel<Row>, row: Row): void;
31
44
  isFirstVisibleColumn(columnId: string): boolean;
32
45
  isLastVisibleColumn(columnId: string): boolean;
33
46
  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>;
47
+ private scheduleTableHeightCheck;
48
+ private notifyScrolled;
49
+ private clearScrollTimeout;
50
+ static ɵfac: i0.ɵɵFactoryDeclaration<TableBodyComponent<any>, [{ optional: true; }]>;
51
+ 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; }; "scrollMode$": { "alias": "scrollMode$"; "required": false; }; "scrollMode": { "alias": "scrollMode"; "required": false; }; }, {}, never, never, false, never>;
52
+ }
53
+ export declare namespace TableBodyComponent {
54
+ type ScrollMode = "none" | "classic" | "virtual";
36
55
  }
@@ -13,8 +13,9 @@ export declare class TableMoreMenuComponent<T> extends DisposableComponent imple
13
13
  private readonly popupType$;
14
14
  popupComponentPortal$: ValueModelChain<ComponentPortal<TableMoreMenuPopupComponent<T>>>;
15
15
  private readonly _visible$;
16
+ private initialiseCallback?;
16
17
  constructor();
17
- configurePopupComponentType(popupComponentType: Constructable<TableMoreMenuPopupComponent<T>>): void;
18
+ configurePopupComponentType(popupComponentType: Constructable<TableMoreMenuPopupComponent<T>>, configureCallback?: (component: TableMoreMenuPopupComponent<T>) => void): void;
18
19
  preventDefault($event: MouseEvent): void;
19
20
  initialise($event: CdkPortalOutletAttachedRef): void;
20
21
  get visible$(): import("@coolon/pectin").ValueModel<boolean>;
@@ -1,8 +1,9 @@
1
1
  import { Injector, OnInit } from "@angular/core";
2
- import { ValueModel } from "@coolon/pectin";
2
+ import { ValueModelChain } 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
  /**
@@ -68,20 +69,14 @@ import * as i0 from "@angular/core";
68
69
  export declare class TableComponent<Row> 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
73
  private _footerContentAdded;
74
74
  private readonly _filteredRows$;
75
- private _pageSize;
76
- private pagedListModel;
75
+ protected readonly scrollMode$: ValueModelChain<TableBodyComponent.ScrollMode>;
77
76
  constructor(injector: Injector);
78
77
  ngOnInit(): void;
79
78
  protected getModel(): AbstractTableModel<Row>;
80
- get pageController(): import("@coolon/pectin").PageController;
81
- private configurePaging;
82
- private disposeOfPagedListModel;
83
79
  footerContentChanged($event: any): void;
84
- updatePageSize(count: number): void;
85
80
  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>;
81
+ static ɵcmp: i0.ɵɵComponentDeclaration<TableComponent<any>, "aup-table", never, { "tableModel": { "alias": "tableModel"; "required": false; }; "filterModel": { "alias": "filterModel"; "required": false; }; }, {}, never, ["[footer], [slot=footer]"], false, never>;
87
82
  }
@@ -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
7
  export declare class TreeLabelColumnModel<Row> 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>;
@@ -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
+ }
@@ -1,12 +1,12 @@
1
1
  import { AfterViewInit, InjectionToken } from "@angular/core";
2
2
  import { Command, Disposable, ValueModel } from "@coolon/pectin";
3
- import { DisposableComponent } from "../components/disposable-component";
3
+ import { LoadableComponent } from "../components/loadable-component";
4
4
  import { ActivityActionsComponent } from "./components/activity-actions/activity-actions.component";
5
5
  import { InteractionContext } from "./interaction-context";
6
6
  import * as i0 from "@angular/core";
7
7
  export declare const ACTIVITY_DATA: InjectionToken<any>;
8
8
  type OnActivityReadyParams<D, R, E = any> = (activity: Activity<D, R, E>) => void;
9
- export declare class Activity<D, R, E = any> extends DisposableComponent implements AfterViewInit {
9
+ export declare class Activity<D, R, E = any> extends LoadableComponent implements AfterViewInit {
10
10
  readonly activityData: D;
11
11
  private readonly activityReadyListeners;
12
12
  private readonly _busy$;
@@ -4,6 +4,7 @@ import { AbstractDialogComponent } from './abstract-dialog.component';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class AbstractConfirmDialogComponent<D, R, E = any> extends AbstractDialogComponent<D, R, E> {
6
6
  readonly cancelFace: CommandFace;
7
+ confirmClass: string;
7
8
  constructor(config: Confirm);
8
9
  static ɵfac: i0.ɵɵFactoryDeclaration<AbstractConfirmDialogComponent<any, any, any>, never>;
9
10
  static ɵcmp: i0.ɵɵComponentDeclaration<AbstractConfirmDialogComponent<any, any, any>, "ng-component", never, {}, {}, never, never, false, never>;
@@ -1,4 +1,3 @@
1
- import { ChangeDetectorRef } from "@angular/core";
2
1
  import { Command } from '@coolon/pectin';
3
2
  import { Enum } from 'typescript-string-enums';
4
3
  import { CommandFace } from '../../../components/commands/command-face';
@@ -27,7 +26,6 @@ import * as i0 from "@angular/core";
27
26
  * </aup-activity-actions>
28
27
  */
29
28
  export declare class ActivityActionsComponent extends DisposableComponent {
30
- private readonly cdr;
31
29
  protected confirmCommandComponent: CommandComponent;
32
30
  protected cancelCommandComponent: CommandComponent;
33
31
  /**
@@ -47,7 +45,7 @@ export declare class ActivityActionsComponent extends DisposableComponent {
47
45
  set style(style: ActivityActionsComponent.Style);
48
46
  layout: ActivityActionsComponent.Layout;
49
47
  align: ActivityActionsComponent.Align;
50
- constructor(cdr: ChangeDetectorRef);
48
+ constructor();
51
49
  hasConfirmFace(): boolean;
52
50
  hasCancelFace(): boolean;
53
51
  initCommands(activity: {
@@ -14,6 +14,7 @@ export declare class ActivityContainerComponent<D, R, E> extends AbstractInterac
14
14
  tabs: MatTabGroup;
15
15
  activityOutlets: QueryList<ActivityOutletComponent<any, any, any>>;
16
16
  activityRefs: ActivityRef<any, any, any>[];
17
+ animationDuration: string;
17
18
  private _identifier;
18
19
  private _deferredCleanUp;
19
20
  private interactionServiceApi;
@@ -26,6 +27,7 @@ export declare class ActivityContainerComponent<D, R, E> extends AbstractInterac
26
27
  readonly busy: DelegatingValueModel<boolean>;
27
28
  readonly syncTabsJob: () => void;
28
29
  readonly stable$: BooleanValueModelChain;
30
+ private wasActive;
29
31
  constructor(placeRouter: PlaceRouter);
30
32
  get started$(): import("@coolon/pectin").ValueModel<boolean>;
31
33
  get ready$(): import("@coolon/pectin").ValueModel<boolean>;
@@ -61,11 +63,13 @@ export declare class ActivityContainerComponent<D, R, E> extends AbstractInterac
61
63
  * Synchronises the selected tab index.
62
64
  */
63
65
  private synchroniseSelectedTabIndex;
64
- private finaliseActivityStates;
66
+ finaliseActivityStates(): void;
65
67
  private getSelectedOutlet;
66
- private getTabAnimationDuration;
68
+ protected getTabAnimationDuration(): string;
69
+ protected getTabAnimationDurationInMillis(): number;
67
70
  getSelectedTabIndex(): number;
68
71
  private triggerTabSynchronisation;
72
+ onAnimationDone(): void;
69
73
  static ɵfac: i0.ɵɵFactoryDeclaration<ActivityContainerComponent<any, any, any>, never>;
70
- static ɵcmp: i0.ɵɵComponentDeclaration<ActivityContainerComponent<any, any, any>, "aup-activity-container", never, { "dynamicHeight": { "alias": "dynamicHeight"; "required": false; }; }, {}, never, never, false, never>;
74
+ static ɵcmp: i0.ɵɵComponentDeclaration<ActivityContainerComponent<any, any, any>, "aup-activity-container", never, { "dynamicHeight": { "alias": "dynamicHeight"; "required": false; }; "animationDuration": { "alias": "animationDuration"; "required": false; }; }, {}, never, never, false, never>;
71
75
  }
@@ -13,5 +13,5 @@ export declare class ActivityTitleComponent extends DisposableComponent {
13
13
  set color(color: ThemePalette);
14
14
  get color(): ThemePalette;
15
15
  static ɵfac: i0.ɵɵFactoryDeclaration<ActivityTitleComponent, never>;
16
- static ɵcmp: i0.ɵɵComponentDeclaration<ActivityTitleComponent, "aup-activity-title", never, { "hasTransparentBackground": { "alias": "hasTransparentBackground"; "required": false; }; "color": { "alias": "color"; "required": false; }; }, {}, never, ["*"], false, never>;
16
+ static ɵcmp: i0.ɵɵComponentDeclaration<ActivityTitleComponent, "aup-activity-title", never, { "hasTransparentBackground": { "alias": "hasTransparentBackground"; "required": false; }; "color": { "alias": "color"; "required": false; }; }, {}, never, ["*", "[slot='title-end']"], false, never>;
17
17
  }
@@ -1,3 +1,3 @@
1
1
  export interface EditContext<T> {
2
- injectError(error: string): any;
2
+ injectError(error: string): void;
3
3
  }
@@ -16,7 +16,7 @@ import * as i0 from "@angular/core";
16
16
  * </aup-in-place-interaction-context>
17
17
  *
18
18
  * in your component
19
- * @ViewChild('inPlaceInteractionContext', { static: true })
19
+ * @ViewChild(InPlaceInteractionContextComponent)
20
20
  * interactionContext: InteractionContext;
21
21
  *
22
22
  *
@@ -0,0 +1,53 @@
1
+ import { AfterViewInit } from "@angular/core";
2
+ import { MatTabsConfig } from "@angular/material/tabs";
3
+ import { Constructable } from "@coolon/pectin";
4
+ import { DisposableComponent } from "../../../components/disposable-component";
5
+ import { Activity } from "../../activity";
6
+ import { Alert } from "../../alert";
7
+ import { Confirm } from "../../confirm";
8
+ import { InPlaceInteractionContext } from "../../in-place-interaction-context";
9
+ import { InteractionContext } from "../../interaction-context";
10
+ import { InteractionService } from "../../services/interaction.service";
11
+ import { ActivityContainerComponent } from "../activity-container/activity-container.component";
12
+ import * as i0 from "@angular/core";
13
+ /**
14
+ * This interaction context remains hidden (height: 0) until it is active.
15
+ * @example
16
+ * <aup-slide-down-interaction-context #inPlaceInteractionContext>
17
+ * </aup-slide-down-interaction-context>
18
+ *
19
+ * in your component
20
+ * @ViewChild(SlideDownInteractionContextComponent)
21
+ * interactionContext: InteractionContext;
22
+ *
23
+ *
24
+ */
25
+ export declare class SlideDownInteractionContextComponent<D, R, E> extends DisposableComponent implements InPlaceInteractionContext, AfterViewInit {
26
+ private readonly tabConfig;
27
+ activityContainerComponent: ActivityContainerComponent<any, any, any>;
28
+ dynamicHeight: boolean;
29
+ get active(): boolean;
30
+ protected clampShut: boolean;
31
+ readonly interactionService: InteractionService;
32
+ constructor(tabConfig: MatTabsConfig);
33
+ ngAfterViewInit(): void;
34
+ getAnimationState(): {
35
+ value: string;
36
+ params: {
37
+ duration: string;
38
+ };
39
+ };
40
+ onInplaceInteractionContextRegistered(id: string, api: InteractionService.Api): void;
41
+ get identifier(): string;
42
+ alert(alert: Alert): Promise<void>;
43
+ cancelActiveActivity(): Promise<boolean>;
44
+ confirm(confirm: Confirm): Promise<boolean>;
45
+ confirmOrReject(confirm: Confirm): Promise<void>;
46
+ confirmThen<D1, R1, E1>(confirm: Confirm, activityType: Constructable<Activity<D1, R1, E1>>, data?: D1): Promise<R1>;
47
+ confirmThenExecute<R1>(confirm: Confirm, operation: (interactionContext: InteractionContext) => (Promise<R1> | R1)): Promise<R1>;
48
+ isActive(): boolean;
49
+ startActivity<D1, R1, E1>(activityType: Constructable<Activity<D1, R1, E1>>, data?: D1, options?: InteractionContext.Options): Promise<R1>;
50
+ onAnimationDone(): void;
51
+ static ɵfac: i0.ɵɵFactoryDeclaration<SlideDownInteractionContextComponent<any, any, any>, [{ optional: true; }]>;
52
+ static ɵcmp: i0.ɵɵComponentDeclaration<SlideDownInteractionContextComponent<any, any, any>, "aup-slide-down-interaction-context", never, { "dynamicHeight": { "alias": "dynamicHeight"; "required": false; }; }, {}, never, never, false, never>;
53
+ }
@@ -35,6 +35,7 @@ export * from "./components/input-activities/input-activity";
35
35
  export * from "./components/input-activities/select-input-activity";
36
36
  export * from "./components/input-activities/string-input-activity";
37
37
  export * from "./components/popup-interaction-context/popup-interaction-context.component";
38
+ export * from "./components/slide-down-interaction-context/slide-down-interaction-context.component";
38
39
  export * from "./directives/interaction-context-trigger-for.directive";
39
40
  export * from "./services/interaction-service-routing-adapter";
40
41
  export * from "./services/interaction.service";