@coolon/angular-ui-powerups 12.0.7 → 12.1.0
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.
- package/bundles/coolon-angular-ui-powerups.umd.js +300 -300
- package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
- package/coolon-angular-ui-powerups.metadata.json +1 -1
- package/esm2015/lib/components/exports.js +1 -1
- package/esm2015/lib/components/exports.js.map +1 -1
- package/esm2015/lib/components/exports.metadata.json +1 -1
- package/esm2015/lib/components/tables/abstract-table-model.js +11 -6
- package/esm2015/lib/components/tables/abstract-table-model.js.map +1 -1
- package/esm2015/lib/components/tables/abstract-table-model.metadata.json +1 -1
- package/esm2015/lib/components/tables/abstract-table.component.js.map +1 -1
- package/esm2015/lib/components/tables/table/table-model.js +18 -12
- package/esm2015/lib/components/tables/table/table-model.js.map +1 -1
- package/esm2015/lib/components/tables/table/table-model.metadata.json +1 -1
- package/esm2015/lib/components/tables/tree-table/decorated-tree-node.js +151 -146
- package/esm2015/lib/components/tables/tree-table/decorated-tree-node.js.map +1 -1
- package/esm2015/lib/components/tables/tree-table/decorated-tree-node.metadata.json +1 -1
- package/esm2015/lib/components/tables/tree-table/flattened-tree-list-model.js +29 -0
- package/esm2015/lib/components/tables/tree-table/flattened-tree-list-model.js.map +1 -0
- package/esm2015/lib/components/tables/tree-table/flattened-tree-list-model.metadata.json +1 -0
- package/esm2015/lib/components/tables/tree-table/tree-expansion-model.js +9 -8
- package/esm2015/lib/components/tables/tree-table/tree-expansion-model.js.map +1 -1
- package/esm2015/lib/components/tables/tree-table/tree-inheritance-icon/tree-inheritance-icon.component.js.map +1 -1
- package/esm2015/lib/components/tables/tree-table/tree-inheritance-icon/tree-inheritance-icon.component.metadata.json +1 -1
- package/esm2015/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.js +9 -9
- package/esm2015/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.js.map +1 -1
- package/esm2015/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.metadata.json +1 -1
- package/esm2015/lib/components/tables/tree-table/tree-label-column-model.js.map +1 -1
- package/esm2015/lib/components/tables/tree-table/tree-label-column-model.metadata.json +1 -1
- package/esm2015/lib/components/tables/tree-table/tree-table-component.js.map +1 -1
- package/esm2015/lib/components/tables/tree-table/tree-table-component.metadata.json +1 -1
- package/esm2015/lib/components/tables/tree-table/tree-table-model.js +9 -20
- package/esm2015/lib/components/tables/tree-table/tree-table-model.js.map +1 -1
- package/esm2015/lib/components/tables/tree-table/tree-table-model.metadata.json +1 -1
- package/fesm2015/coolon-angular-ui-powerups.js +240 -228
- package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
- package/lib/components/exports.d.ts +1 -1
- package/lib/components/tables/abstract-table-model.d.ts +6 -5
- package/lib/components/tables/table/table-model.d.ts +12 -7
- package/lib/components/tables/tree-table/decorated-tree-node.d.ts +26 -40
- package/lib/components/tables/tree-table/{tree-to-list-model.d.ts → flattened-tree-list-model.d.ts} +4 -4
- package/lib/components/tables/tree-table/tree-expansion-model.d.ts +10 -11
- package/lib/components/tables/tree-table/tree-inheritance-icon/tree-inheritance-icon.component.d.ts +1 -2
- package/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.d.ts +5 -5
- package/lib/components/tables/tree-table/tree-label-column-model.d.ts +4 -6
- package/lib/components/tables/tree-table/tree-table-component.d.ts +2 -3
- package/lib/components/tables/tree-table/tree-table-model.d.ts +9 -8
- package/package.json +1 -1
- package/esm2015/lib/components/tables/tree-table/tree-to-list-model.js +0 -25
- package/esm2015/lib/components/tables/tree-table/tree-to-list-model.js.map +0 -1
- package/esm2015/lib/components/tables/tree-table/tree-to-list-model.metadata.json +0 -1
|
@@ -64,12 +64,12 @@ export * from "./tables/table/table-cell-renderer/table-cell-renderer.component"
|
|
|
64
64
|
export * from "./tables/table/table-header-cell-renderer/table-header-cell-renderer.component";
|
|
65
65
|
export * from "./tables/table/table-row-menu/table-row-menu.component";
|
|
66
66
|
export * from "./tables/tree-table/decorated-tree-node";
|
|
67
|
+
export * from "./tables/tree-table/flattened-tree-list-model";
|
|
67
68
|
export * from "./tables/tree-table/tree-expansion-model";
|
|
68
69
|
export * from "./tables/tree-table/tree-label-column-model";
|
|
69
70
|
export * from "./tables/tree-table/tree-node";
|
|
70
71
|
export * from "./tables/tree-table/tree-table-component";
|
|
71
72
|
export * from "./tables/tree-table/tree-table-model";
|
|
72
|
-
export * from "./tables/tree-table/tree-to-list-model";
|
|
73
73
|
export * from "./tables/tree-table/visitable.class";
|
|
74
74
|
export * from "./tables/tree-table/tree-inheritance-icon/tree-inheritance-icon.component";
|
|
75
75
|
export * from "./tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component";
|
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
import { ComponentType } from '@angular/cdk/overlay';
|
|
2
|
-
import { BooleanValueModelChain,
|
|
2
|
+
import { BooleanValueModelChain, DirtyTrackingForm, Disposable, GarbageCollector, ListModel, ListModelChain, SelectionModel, Types, UnaryCommand, ValueModel, ValueModelChain } from '@coolon/pectin';
|
|
3
3
|
import { CellRenderer } from './table/cell-renderer';
|
|
4
4
|
import { CellRendererOptions, ColumnModel, CustomTemplateColumnModel, CustomValueColumnModel, EditorControlColumnModel, ListPropertyColumnModel, OnComponentInit, PropertyColumnModel, SelectionColumnModel } from './table/column-model';
|
|
5
5
|
import { ColumnTextProperties } from './table/column-text-properties';
|
|
6
6
|
import { EditSession } from './table/edit-session';
|
|
7
7
|
export declare class AbstractTableModel<Row> extends GarbageCollector {
|
|
8
|
-
private
|
|
8
|
+
private readonly _dataSource;
|
|
9
|
+
readonly dataSource: ListModelChain<Row>;
|
|
9
10
|
private readonly _columnList;
|
|
10
11
|
private _editorSessions;
|
|
11
12
|
private readonly _rowsBeingEdited;
|
|
12
13
|
private readonly rowClassNamePredicates;
|
|
13
14
|
private _columnTextPropertiesLookup;
|
|
14
|
-
readonly identityOf: CanIdentify<Row>['identityOf'];
|
|
15
15
|
private saveCommand;
|
|
16
16
|
private _editorSessionByRowId;
|
|
17
17
|
readonly editing: BooleanValueModelChain;
|
|
18
|
-
readonly dataSource: ListModelChain<Row>;
|
|
19
18
|
readonly firstEditableColumn: ValueModelChain<ColumnModel<Row>>;
|
|
20
19
|
private selectionColumnModel;
|
|
21
20
|
private rowSelectionDisabledOnAllColumns;
|
|
@@ -23,7 +22,9 @@ export declare class AbstractTableModel<Row> extends GarbageCollector {
|
|
|
23
22
|
readonly firstVisibleColumn: ValueModel<ColumnModel<Row>>;
|
|
24
23
|
readonly lastVisibleColumn: ValueModel<ColumnModel<Row>>;
|
|
25
24
|
private _createForm;
|
|
26
|
-
constructor(
|
|
25
|
+
constructor();
|
|
26
|
+
protected setDataSource(sourceOfTruth: ListModel<Row>): void;
|
|
27
|
+
identityOf(row: Row): any;
|
|
27
28
|
get rowsBeingEdited(): ListModel<Row>;
|
|
28
29
|
readonly trackBy: (index: number, item: Row) => any;
|
|
29
30
|
get columns(): ListModel<ColumnModel<Row>>;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ListModel, SelectionModel, ValueModel } from '@coolon/pectin';
|
|
2
2
|
import { AbstractTableModel } from '../abstract-table-model';
|
|
3
3
|
import { SelectionColumnModel } from './column-model';
|
|
4
4
|
/**
|
|
5
5
|
* Example:
|
|
6
6
|
* @example
|
|
7
|
-
* const model = TableModel
|
|
7
|
+
* const model = new TableModel(heroList, table => {
|
|
8
8
|
* table.pluck("firstName");
|
|
9
9
|
* table.pluck("lastName");
|
|
10
10
|
* table.addCustomColumn("fullName", hero => `${hero.firstName} ${hero.lastName}`);
|
|
@@ -36,7 +36,7 @@ import { SelectionColumnModel } from './column-model';
|
|
|
36
36
|
*
|
|
37
37
|
* Selection models
|
|
38
38
|
* @example
|
|
39
|
-
* const model = TableModel
|
|
39
|
+
* const model = new TableModel(heroList, table => {
|
|
40
40
|
* table.addSelectionColumn(selectionModel); // <- can be single or multiple selection model
|
|
41
41
|
* table.pluck("firstName");
|
|
42
42
|
* table.pluck("lastName");
|
|
@@ -44,7 +44,7 @@ import { SelectionColumnModel } from './column-model';
|
|
|
44
44
|
*
|
|
45
45
|
* Custom cell renderers and editors
|
|
46
46
|
* @example
|
|
47
|
-
* const model = TableModel
|
|
47
|
+
* const model = new TableModel(heroList, table => {
|
|
48
48
|
* table.pluck("favoriteColor")
|
|
49
49
|
* .cellHeaderRenderer(CellHeaderRendererComponent, (component, column) => {
|
|
50
50
|
* // configure your component with what ever you need.
|
|
@@ -56,7 +56,7 @@ import { SelectionColumnModel } from './column-model';
|
|
|
56
56
|
*
|
|
57
57
|
* Template columns
|
|
58
58
|
* @example
|
|
59
|
-
* const model = TableModel
|
|
59
|
+
* const model = new TableModel(heroList, table => {
|
|
60
60
|
* table.addSelectionColumn(selectionModel); // <- can be single or multiple selection model
|
|
61
61
|
* table.addTemplateColumn("myTemplate");
|
|
62
62
|
* });
|
|
@@ -73,7 +73,7 @@ import { SelectionColumnModel } from './column-model';
|
|
|
73
73
|
* fullName:
|
|
74
74
|
* headerText: "Full Name"
|
|
75
75
|
*
|
|
76
|
-
* const model = TableModel
|
|
76
|
+
* const model = new TableModel(heroList, table => {
|
|
77
77
|
* table.pluck("favoriteColor").cellRenderer(...).cellEditor(...);
|
|
78
78
|
* table.addCustomColumn("fullName", hero => `${hero.firstName} ${hero.lastName}`);
|
|
79
79
|
*
|
|
@@ -81,7 +81,12 @@ import { SelectionColumnModel } from './column-model';
|
|
|
81
81
|
* });
|
|
82
82
|
*/
|
|
83
83
|
export declare class TableModel<Row> extends AbstractTableModel<Row> {
|
|
84
|
+
constructor(sourceOfTruth: ListModel<Row>, builder?: (table: TableModel<Row>) => void);
|
|
85
|
+
/**
|
|
86
|
+
* @deprecated use new TableModel(sourceOfTruth, table => {...}); instead.
|
|
87
|
+
* @param sourceOfTruth
|
|
88
|
+
* @param builder
|
|
89
|
+
*/
|
|
84
90
|
static fromList<Row>(sourceOfTruth: ListModel<Row>, builder?: (tableModel: TableModel<Row>) => void): TableModel<Row>;
|
|
85
|
-
protected static _create<Row, M extends TableModel<Row>>(klass: Constructable<M>, sourceOfTruth: ListModel<Row>, builder?: (tableModel: TableModel<Row>) => void): M;
|
|
86
91
|
addSelectionColumn(selectionModel?: SelectionModel<Row>, showSelectionColumn?: ValueModel<boolean> | boolean): SelectionColumnModel<Row>;
|
|
87
92
|
}
|
|
@@ -1,43 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
declare class DecoratedTreeNodeMixin<T extends TreeNode<T>> {
|
|
5
|
-
readonly parent: DecoratedTreeNode<T> | undefined;
|
|
6
|
-
readonly node: T;
|
|
7
|
-
constructor(parent: DecoratedTreeNode<T> | undefined, node: T);
|
|
8
|
-
get decoratedSelf(): DecoratedTreeNode<T>;
|
|
9
|
-
get children(): DecoratedTreeNode<T>[];
|
|
10
|
-
descendants(): DecoratedTreeNode<T>[];
|
|
11
|
-
selfAndDescendants(): DecoratedTreeNode<T>[];
|
|
12
|
-
siblingsBefore(): DecoratedTreeNode<T>[];
|
|
13
|
-
siblingsAfter(): DecoratedTreeNode<T>[];
|
|
14
|
-
siblings(): DecoratedTreeNode<T>[];
|
|
15
|
-
isFirstChild(): boolean;
|
|
16
|
-
protected myIndex(): any;
|
|
17
|
-
isLastChild(): boolean;
|
|
18
|
-
hasSiblings(): boolean;
|
|
19
|
-
find(predicate: Predicate<DecoratedTreeNode<T>>): DecoratedTreeNode<T>;
|
|
20
|
-
select(predicate: Predicate<DecoratedTreeNode<T>>): DecoratedTreeNode<T>[];
|
|
21
|
-
flattenInto(array: DecoratedTreeNode<T>[]): DecoratedTreeNode<T>[];
|
|
22
|
-
ancestors(): DecoratedTreeNode<T>[];
|
|
23
|
-
ancestorsAndSelf(): DecoratedTreeNode<T>[];
|
|
24
|
-
pathToParent(parent: DecoratedTreeNode<T>): DecoratedTreeNode<T>[];
|
|
25
|
-
pathToParentAndSelf(parent: any): DecoratedTreeNode<T>[];
|
|
26
|
-
isRoot(): boolean;
|
|
27
|
-
get depth(): number;
|
|
28
|
-
isLeaf(): boolean;
|
|
29
|
-
hasChildren(): boolean;
|
|
30
|
-
depthFromParent(parent: any): number;
|
|
31
|
-
treeDepth(): number;
|
|
32
|
-
flatten(): DecoratedTreeNode<T>[];
|
|
33
|
-
visit<V extends Visitor<DecoratedTreeNode<T>>>(visitor: V): V;
|
|
34
|
-
visitChildren<V extends Visitor<DecoratedTreeNode<T>>>(visitor: V): V;
|
|
35
|
-
visitSelfAndDescendants(callback: (it: DecoratedTreeNode<T>) => void): void;
|
|
36
|
-
visitDescendants(callback: (it: DecoratedTreeNode<T>) => void): void;
|
|
37
|
-
protected memoize<V>(property: string, factory: () => V): any;
|
|
1
|
+
export declare const treeNodeDecorator: unique symbol;
|
|
2
|
+
export interface HasTreeNodeDecorator<T> {
|
|
3
|
+
[treeNodeDecorator]: DecoratedTreeNode.Decorator<T>;
|
|
38
4
|
}
|
|
39
|
-
export declare type DecoratedTreeNode<T
|
|
5
|
+
export declare type DecoratedTreeNode<T> = T & HasTreeNodeDecorator<T>;
|
|
40
6
|
export declare namespace DecoratedTreeNode {
|
|
41
|
-
function
|
|
7
|
+
function decorateRoot<T>(node: T, extractChildren: (node: T) => T[]): DecoratedTreeNode<T>;
|
|
8
|
+
function getDecorator<T>(node: T): Decorator<T>;
|
|
9
|
+
class Decorator<T> {
|
|
10
|
+
readonly parent: DecoratedTreeNode<T> | undefined;
|
|
11
|
+
private readonly node;
|
|
12
|
+
private readonly extractChildren;
|
|
13
|
+
constructor(parent: DecoratedTreeNode<T> | undefined, node: T, extractChildren: (node: T) => T[]);
|
|
14
|
+
get children(): DecoratedTreeNode<T>[];
|
|
15
|
+
get decoratedNode(): DecoratedTreeNode<T>;
|
|
16
|
+
siblingsBefore(): T[];
|
|
17
|
+
siblingsAfter(): T[];
|
|
18
|
+
siblings(): T[];
|
|
19
|
+
isFirstChild(): boolean;
|
|
20
|
+
protected myIndex(): number;
|
|
21
|
+
isLastChild(): boolean;
|
|
22
|
+
hasSiblings(): boolean;
|
|
23
|
+
ancestors(): T[];
|
|
24
|
+
isRoot(): boolean;
|
|
25
|
+
get depth(): number;
|
|
26
|
+
isLeaf(): boolean;
|
|
27
|
+
hasChildren(): boolean;
|
|
28
|
+
}
|
|
42
29
|
}
|
|
43
|
-
export {};
|
package/lib/components/tables/tree-table/{tree-to-list-model.d.ts → flattened-tree-list-model.d.ts}
RENAMED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ComputedListModel, ListModel } from '@coolon/pectin';
|
|
2
2
|
import { DecoratedTreeNode } from './decorated-tree-node';
|
|
3
3
|
import { TreeExpansionModel } from './tree-expansion-model';
|
|
4
|
-
|
|
5
|
-
export declare class TreeToListModel<T extends TreeNode<T>> extends ComputedListModel<DecoratedTreeNode<T>, T[]> {
|
|
4
|
+
export declare class FlattenedTreeListModel<T> extends ComputedListModel<DecoratedTreeNode<T>, T[]> {
|
|
6
5
|
private readonly source;
|
|
7
|
-
private readonly
|
|
8
|
-
|
|
6
|
+
private readonly childRef;
|
|
7
|
+
readonly expansionModel: TreeExpansionModel<DecoratedTreeNode<T>>;
|
|
8
|
+
constructor(source: ListModel<T>, childRef: (node: T) => T[], expansionModel: TreeExpansionModel<DecoratedTreeNode<T>>);
|
|
9
9
|
getIdentityOf(item: DecoratedTreeNode<T>): any;
|
|
10
10
|
compute(values: T[]): DecoratedTreeNode<T>[];
|
|
11
11
|
private addNodeAndVisibleChildren;
|
|
@@ -1,17 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
export declare class TreeExpansionModel<N extends DecoratedTreeNode<any>> {
|
|
1
|
+
export declare class TreeExpansionModel<T> {
|
|
3
2
|
private readonly identityOf;
|
|
4
3
|
private readonly collapsedIds;
|
|
5
4
|
private readonly _isExpandedPredicate;
|
|
6
|
-
constructor(identityOf: (node:
|
|
7
|
-
get isExpandedPredicate(): import("@coolon/pectin").ValueModel<(node:
|
|
8
|
-
expand(node:
|
|
9
|
-
collapse(node:
|
|
10
|
-
canExpand(node:
|
|
11
|
-
canCollapse(node:
|
|
12
|
-
isCollapsed(node:
|
|
13
|
-
isExpanded(node:
|
|
14
|
-
ensureAncestorsAndSelfVisible(node:
|
|
5
|
+
constructor(identityOf: (node: T) => any);
|
|
6
|
+
get isExpandedPredicate(): import("@coolon/pectin").ValueModel<(node: T) => boolean>;
|
|
7
|
+
expand(node: T): void;
|
|
8
|
+
collapse(node: T): void;
|
|
9
|
+
canExpand(node: T): boolean;
|
|
10
|
+
canCollapse(node: T): boolean;
|
|
11
|
+
isCollapsed(node: T): boolean;
|
|
12
|
+
isExpanded(node: T): boolean;
|
|
13
|
+
ensureAncestorsAndSelfVisible(node: T): void;
|
|
15
14
|
private updatePredicate;
|
|
16
15
|
}
|
|
17
16
|
export declare namespace TreeExpansionModel {
|
package/lib/components/tables/tree-table/tree-inheritance-icon/tree-inheritance-icon.component.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Enum } from 'typescript-string-enums';
|
|
2
|
-
|
|
3
|
-
export declare class TreeInheritanceIconComponent<T extends DecoratedTreeNode<any>> {
|
|
2
|
+
export declare class TreeInheritanceIconComponent<T> {
|
|
4
3
|
type: TreeInheritanceIconComponent.Type;
|
|
5
4
|
pixelWidth: number;
|
|
6
5
|
pixelHeight: number;
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { OnInit } from '@angular/core';
|
|
2
2
|
import { ListModelChain, ValueModelChain } from '@coolon/pectin';
|
|
3
3
|
import { DisposableComponent } from '../../../disposable-component';
|
|
4
|
+
import { CellRenderer } from '../../table/cell-renderer';
|
|
4
5
|
import { DecoratedTreeNode } from '../decorated-tree-node';
|
|
5
6
|
import { TreeExpansionModel } from '../tree-expansion-model';
|
|
6
7
|
import { TreeLabelColumnModel } from '../tree-label-column-model';
|
|
7
|
-
|
|
8
|
-
export declare class TreeLabelCellRendererComponent<T extends TreeNode<any>> extends DisposableComponent implements OnInit {
|
|
8
|
+
export declare class TreeLabelCellRendererComponent<T> extends DisposableComponent implements CellRenderer<T>, OnInit {
|
|
9
9
|
iconTypes: string[];
|
|
10
10
|
private nodeModel;
|
|
11
|
-
value:
|
|
11
|
+
value: T;
|
|
12
12
|
label: string;
|
|
13
13
|
iconFactory: TreeLabelColumnModel.LabelFactory<T>;
|
|
14
|
-
expansionModel: TreeExpansionModel<
|
|
14
|
+
expansionModel: TreeExpansionModel<T>;
|
|
15
15
|
readonly iconList: ListModelChain<string>;
|
|
16
16
|
canExpand: ValueModelChain<boolean>;
|
|
17
17
|
canCollapse: ValueModelChain<boolean>;
|
|
@@ -20,6 +20,6 @@ export declare class TreeLabelCellRendererComponent<T extends TreeNode<any>> ext
|
|
|
20
20
|
ngOnInit(): void;
|
|
21
21
|
get isRoot(): boolean;
|
|
22
22
|
get isLeaf(): boolean;
|
|
23
|
-
get node():
|
|
23
|
+
get node(): T;
|
|
24
24
|
expandOrCollapse(node: DecoratedTreeNode<T>): void;
|
|
25
25
|
}
|
|
@@ -1,20 +1,18 @@
|
|
|
1
1
|
import { ComponentType } from '@angular/cdk/overlay';
|
|
2
2
|
import { Types } from '@coolon/pectin';
|
|
3
3
|
import { ColumnModel } from '../table/column-model';
|
|
4
|
-
import { DecoratedTreeNode } from './decorated-tree-node';
|
|
5
4
|
import { TreeExpansionModel } from './tree-expansion-model';
|
|
6
5
|
import { TreeLabelCellRendererComponent } from './tree-label-cell-renderer/tree-label-cell-renderer.component';
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
readonly expansionModel: TreeExpansionModel<DecoratedTreeNode<Row>>;
|
|
6
|
+
export declare class TreeLabelColumnModel<Row> extends ColumnModel<Row> {
|
|
7
|
+
readonly expansionModel: TreeExpansionModel<Row>;
|
|
10
8
|
private labelProperty;
|
|
11
9
|
private iconFactory;
|
|
12
|
-
constructor(columnId: string, textPropertiesProvider: ColumnModel.TextPropertiesProvider, expansionModel: TreeExpansionModel<
|
|
10
|
+
constructor(columnId: string, textPropertiesProvider: ColumnModel.TextPropertiesProvider, expansionModel: TreeExpansionModel<Row>);
|
|
13
11
|
pluck<P extends Types.ValuePropertiesOf<Row>>(property: P): void;
|
|
14
12
|
addIcon<P extends Types.ValuePropertiesOf<Row>>(factory: TreeLabelColumnModel.LabelFactory<Row>): void;
|
|
15
13
|
protected cellRenderer<C extends TreeLabelCellRendererComponent<Row>>(componentType: ComponentType<C>): this;
|
|
16
14
|
_selectRowOnClick(selectOnRowClick: boolean): this;
|
|
17
15
|
}
|
|
18
16
|
export declare namespace TreeLabelColumnModel {
|
|
19
|
-
type LabelFactory<Row
|
|
17
|
+
type LabelFactory<Row> = (node: Row, expanded: boolean) => string;
|
|
20
18
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { ElementRef, NgZone } from '@angular/core';
|
|
2
2
|
import { AbstractTableModel } from '../abstract-table-model';
|
|
3
3
|
import { AbstractTableComponent } from '../abstract-table.component';
|
|
4
|
-
import { DecoratedTreeNode } from './decorated-tree-node';
|
|
5
4
|
import { TreeNode } from './tree-node';
|
|
6
5
|
import { TreeTableModel } from './tree-table-model';
|
|
7
6
|
/**
|
|
@@ -64,8 +63,8 @@ import { TreeTableModel } from './tree-table-model';
|
|
|
64
63
|
* }
|
|
65
64
|
* }
|
|
66
65
|
*/
|
|
67
|
-
export declare class TreeTableComponent<T extends TreeNode<T>> extends AbstractTableComponent<
|
|
66
|
+
export declare class TreeTableComponent<T extends TreeNode<T>> extends AbstractTableComponent<T> {
|
|
68
67
|
treeTableModel: TreeTableModel<T>;
|
|
69
68
|
constructor(elementRef: ElementRef, ngZone: NgZone);
|
|
70
|
-
getModel(): AbstractTableModel<
|
|
69
|
+
getModel(): AbstractTableModel<T>;
|
|
71
70
|
}
|
|
@@ -1,21 +1,22 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ListModel, MutableValueModel, SelectionModel, ValueModel } from '@coolon/pectin';
|
|
2
2
|
import { AbstractTableModel } from '../abstract-table-model';
|
|
3
3
|
import { SelectionColumnModel } from '../table/column-model';
|
|
4
4
|
import { DecoratedTreeNode } from './decorated-tree-node';
|
|
5
5
|
import { TreeExpansionModel } from './tree-expansion-model';
|
|
6
6
|
import { TreeLabelColumnModel } from './tree-label-column-model';
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
export declare type ChildArrayPropertiesOf<T> = {
|
|
8
|
+
[K in keyof T]: T[K] extends T[] ? K : never;
|
|
9
|
+
}[keyof T];
|
|
10
|
+
export declare class TreeTableModel<Row> extends AbstractTableModel<Row> {
|
|
11
|
+
readonly treeExpansionModel: TreeExpansionModel<Row>;
|
|
12
|
+
private readonly flattenedDataSource;
|
|
13
|
+
constructor(source: ListModel<Row>, childAccessor: ChildArrayPropertiesOf<Row> | ((node: Row) => Row[]), builder?: (model: TreeTableModel<Row>) => void);
|
|
13
14
|
treeControlColumn(builder: (column: TreeLabelColumnModel<Row>) => void): void;
|
|
14
15
|
expand(node: DecoratedTreeNode<Row>): void;
|
|
15
16
|
collapse(node: DecoratedTreeNode<Row>): void;
|
|
16
17
|
isCollapsed(node: DecoratedTreeNode<Row>): boolean;
|
|
17
18
|
ensureAncestorsAndSelfVisible(node: DecoratedTreeNode<Row>): void;
|
|
18
|
-
addSelectionColumn(selectionModel?: SelectionModel<
|
|
19
|
+
addSelectionColumn(selectionModel?: SelectionModel<Row>, showSelectionColumn?: ValueModel<boolean> | boolean): SelectionColumnModel<Row>;
|
|
19
20
|
}
|
|
20
21
|
export declare namespace TreeTableModel {
|
|
21
22
|
interface Options<T, K extends keyof T> {
|
package/package.json
CHANGED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { ComputedListModel } from '@coolon/pectin';
|
|
2
|
-
import { DecoratedTreeNode } from './decorated-tree-node';
|
|
3
|
-
export class TreeToListModel extends ComputedListModel {
|
|
4
|
-
constructor(source, expansionModel) {
|
|
5
|
-
super(source);
|
|
6
|
-
this.source = source;
|
|
7
|
-
this.expansionModel = expansionModel;
|
|
8
|
-
this.trackSource(this.expansionModel.isExpandedPredicate);
|
|
9
|
-
}
|
|
10
|
-
getIdentityOf(item) {
|
|
11
|
-
return this.source.identityOf(item.node);
|
|
12
|
-
}
|
|
13
|
-
compute(values) {
|
|
14
|
-
const result = [];
|
|
15
|
-
values.forEach(value => this.addNodeAndVisibleChildren(DecoratedTreeNode.createRoot(value), result));
|
|
16
|
-
return result;
|
|
17
|
-
}
|
|
18
|
-
addNodeAndVisibleChildren(node, result) {
|
|
19
|
-
result.push(node);
|
|
20
|
-
if (node.hasChildren() && !this.expansionModel.isCollapsed(node)) {
|
|
21
|
-
node.children.forEach(child => this.addNodeAndVisibleChildren(child, result));
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=tree-to-list-model.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tree-to-list-model.js","sourceRoot":"","sources":["../../../../../../../../libs/angular-ui-powerups/src/lib/components/tables/tree-table/tree-to-list-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA6D,MAAM,gBAAgB,CAAC;AAC9G,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAI1D,MAAM,OAAO,eAAuC,SAAQ,iBAA4C;IAEtG,YAA6B,MAAoB,EAAmB,cAAwD;QAC1H,KAAK,CAAC,MAAM,CAAC,CAAC;QADa,WAAM,GAAN,MAAM,CAAc;QAAmB,mBAAc,GAAd,cAAc,CAA0C;QAE1H,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;IAC5D,CAAC;IAED,aAAa,CAAC,IAA0B;QACtC,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,CAAC,MAAW;QACjB,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,iBAAiB,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QACrG,OAAO,MAAM,CAAC;IAChB,CAAC;IAGO,yBAAyB,CAAC,IAA0B,EAAE,MAA8B;QAC1F,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClB,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;YAChE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;SAC/E;IACH,CAAC;CAEF","sourcesContent":["import { ComputedListModel, Dsl, GarbageCollector, ListModel, MutableListModel, Trace } from '@coolon/pectin';\nimport { DecoratedTreeNode } from './decorated-tree-node';\nimport { TreeExpansionModel } from './tree-expansion-model';\nimport { TreeNode } from './tree-node';\n\nexport class TreeToListModel<T extends TreeNode<T>> extends ComputedListModel<DecoratedTreeNode<T>, T[]> {\n\n constructor(private readonly source: ListModel<T>, private readonly expansionModel: TreeExpansionModel<DecoratedTreeNode<T>>) {\n super(source);\n this.trackSource(this.expansionModel.isExpandedPredicate);\n }\n\n getIdentityOf(item: DecoratedTreeNode<T>): any {\n return this.source.identityOf(item.node);\n }\n\n compute(values: T[]): DecoratedTreeNode<T>[] {\n const result: DecoratedTreeNode<T>[] = [];\n values.forEach(value => this.addNodeAndVisibleChildren(DecoratedTreeNode.createRoot(value), result));\n return result;\n }\n\n\n private addNodeAndVisibleChildren(node: DecoratedTreeNode<T>, result: DecoratedTreeNode<T>[], ) {\n result.push(node);\n if (node.hasChildren() && !this.expansionModel.isCollapsed(node)) {\n node.children.forEach(child => this.addNodeAndVisibleChildren(child, result));\n }\n }\n\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[{"__symbolic":"module","version":4,"metadata":{"TreeToListModel":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@coolon/pectin","name":"ComputedListModel","line":5,"character":60},"arity":1,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@coolon/pectin","name":"ListModel","line":7,"character":39,"arguments":[{"__symbolic":"error","message":"Could not resolve type","line":7,"character":49,"context":{"typeName":"T"}}]},{"__symbolic":"reference","module":"./tree-expansion-model","name":"TreeExpansionModel","line":7,"character":86,"arguments":[{"__symbolic":"reference","module":"./decorated-tree-node","name":"DecoratedTreeNode","line":7,"character":105,"arguments":[{"__symbolic":"error","message":"Could not resolve type","line":7,"character":123,"context":{"typeName":"T"}}]}]}]}],"getIdentityOf":[{"__symbolic":"method"}],"compute":[{"__symbolic":"method"}],"addNodeAndVisibleChildren":[{"__symbolic":"method"}]}}}}]
|