@coolon/angular-ui-powerups 12.0.5 → 12.0.6
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 +10 -19
- package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
- package/coolon-angular-ui-powerups.metadata.json +1 -1
- package/esm2015/lib/components/tables/table/table-model.js +4 -1
- 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/tree-table-model.js +7 -19
- 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 +10 -19
- package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
- package/lib/components/tables/table/table-model.d.ts +3 -2
- package/lib/components/tables/tree-table/tree-table-model.d.ts +3 -4
- package/package.json +13 -13
|
@@ -80,7 +80,10 @@ import { AbstractTableModel } from '../abstract-table-model';
|
|
|
80
80
|
*/
|
|
81
81
|
export class TableModel extends AbstractTableModel {
|
|
82
82
|
static fromList(sourceOfTruth, builder) {
|
|
83
|
-
|
|
83
|
+
return TableModel._create(TableModel, sourceOfTruth, builder);
|
|
84
|
+
}
|
|
85
|
+
static _create(klass, sourceOfTruth, builder) {
|
|
86
|
+
const model = new klass(sourceOfTruth);
|
|
84
87
|
if (builder)
|
|
85
88
|
builder(model);
|
|
86
89
|
return model;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-model.js","sourceRoot":"","sources":["../../../../../../../../libs/angular-ui-powerups/src/lib/components/tables/table/table-model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8EG;AACH,MAAM,OAAO,UAAgB,SAAQ,kBAAuB;IAE1D,MAAM,CAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"table-model.js","sourceRoot":"","sources":["../../../../../../../../libs/angular-ui-powerups/src/lib/components/tables/table/table-model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8EG;AACH,MAAM,OAAO,UAAgB,SAAQ,kBAAuB;IAE1D,MAAM,CAAC,QAAQ,CAAM,aAA6B,EAAE,OAA+C;QACjG,OAAO,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;IAES,MAAM,CAAC,OAAO,CAAiC,KAAuB,EAAE,aAA6B,EAAE,OAA+C;QAC9J,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;QACvC,IAAI,OAAO;YAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,kBAAkB,CAAC,cAAoC,EAAE,mBAAmD;QAC1G,OAAO,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;IACvE,CAAC;CACF","sourcesContent":["import { Constructable, ListModel, SelectionModel, ValueModel } from '@coolon/pectin';\nimport { AbstractTableModel } from '../abstract-table-model';\nimport { SelectionColumnModel } from './column-model';\n\n/**\n * Example:\n * @example\n * const model = TableModel.fromList(heroList, table => {\n * table.pluck(\"firstName\");\n * table.pluck(\"lastName\");\n * table.addCustomColumn(\"fullName\", hero => `${hero.firstName} ${hero.lastName}`);\n * });\n *\n * Editable tables\n * @example\n * const saveCommand = UnaryCommand.create((form: Form<Hero>) => {\n * if (form.validate()) {\n * // normal form save stuff\n * return true; // finish editing\n * }\n * return false; // continue editiing\n * }\n * const colorsNames: ListModel<string> = ...;\n * const model = TableModel.fromList(heroList, table => {\n * table.pluck(\"firstName\").cellEditor(StringInputComponent); <-- interface CellEditor { valueModel: DirtyTrackingForm.ValueModel<string> | ValueModel<string>; }\n * table.pluck(\"lastName\").cellEditor(StringInputComponent, {\n * validators: [Validator.present(\"We need a last name\")]\n * });\n * table.pluck(\"age\").cellEditor(NumberInputComponent);\n * table.pluck(\"favoriteColor\").cellEditor(SelectInputComponent, {\n * initialiseComponent(component: SelectInputComponent) {\n * selectInput.optionsModel = colorsNames; // <- initialise our component\n * }\n * });\n * table.addEditControls(saveCommand); // <- required to enable editing\n * });\n *\n * Selection models\n * @example\n * const model = TableModel.fromList(heroList, table => {\n * table.addSelectionColumn(selectionModel); // <- can be single or multiple selection model\n * table.pluck(\"firstName\");\n * table.pluck(\"lastName\");\n * });\n *\n * Custom cell renderers and editors\n * @example\n * const model = TableModel.fromList(heroList, table => {\n * table.pluck(\"favoriteColor\")\n * .cellHeaderRenderer(CellHeaderRendererComponent, (component, column) => {\n * // configure your component with what ever you need.\n * });\n * .cellRenderer(CellRendererComponent) // <-- interface CellEditor { value: string; }\n * .cellEditor(CellEditorComponent.); // <-- interface CellEditor { valueModel: DirtyTrackingForm.ValueModel<string> | ValueModel<string>; }\n * table.addCustomColumn(\"fullName\", hero => `${hero.firstName} ${hero.lastName}`);\n * });\n *\n * Template columns\n * @example\n * const model = TableModel.fromList(heroList, table => {\n * table.addSelectionColumn(selectionModel); // <- can be single or multiple selection model\n * table.addTemplateColumn(\"myTemplate\");\n * });\n *\n * <div *aupColumnTemplate=\"let hero; columnId: 'myTemplate'\">{{hero.age}}</div>\n *\n * I18n\n * @example\n * [table.yml]\n * table:\n * columns(ColumnTextProperties[]):\n * firstName:\n * headerText: \"First Name\"\n * fullName:\n * headerText: \"Full Name\"\n *\n * const model = TableModel.fromList(heroList, table => {\n * table.pluck(\"favoriteColor\").cellRenderer(...).cellEditor(...);\n * table.addCustomColumn(\"fullName\", hero => `${hero.firstName} ${hero.lastName}`);\n *\n * table.columnTextProperties(I18n.table.columns); // <- configures all columns\n * });\n */\nexport class TableModel<Row> extends AbstractTableModel<Row> {\n\n static fromList<Row>(sourceOfTruth: ListModel<Row>, builder?: (tableModel: TableModel<Row>) => void): TableModel<Row> {\n return TableModel._create(TableModel, sourceOfTruth, builder);\n }\n\n protected static _create<Row, M extends TableModel<Row>>(klass: Constructable<M>, sourceOfTruth: ListModel<Row>, builder?: (tableModel: TableModel<Row>) => void): M {\n const model = new klass(sourceOfTruth);\n if (builder) builder(model);\n return model;\n }\n\n addSelectionColumn(selectionModel?: SelectionModel<Row>, showSelectionColumn?: ValueModel<boolean> | boolean): SelectionColumnModel<Row> {\n return this._addSelectionColumn(selectionModel, showSelectionColumn);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"__symbolic":"module","version":4,"metadata":{"TableModel":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../abstract-table-model","name":"AbstractTableModel","line":83,"character":37},"arity":1,"members":{"addSelectionColumn":[{"__symbolic":"method"}]}}}}]
|
|
1
|
+
[{"__symbolic":"module","version":4,"metadata":{"TableModel":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../abstract-table-model","name":"AbstractTableModel","line":83,"character":37},"arity":1,"members":{"addSelectionColumn":[{"__symbolic":"method"}]},"statics":{"fromList":{"__symbolic":"function","parameters":["sourceOfTruth","builder"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"TableModel"},"member":"_create"},"arguments":[{"__symbolic":"reference","name":"TableModel"},{"__symbolic":"reference","name":"sourceOfTruth"},{"__symbolic":"reference","name":"builder"}]}}}}}}]
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// import {T } from '@client/api/light-architect/model/area/area.class';
|
|
2
2
|
// import { SelfAndDescendantsVisitor } from '@client/api/light-architect/model/area/visitable.class';
|
|
3
3
|
// import { Zone } from '@client/api/light-architect/model/area/zone.class';
|
|
4
|
-
import {
|
|
4
|
+
import { GarbageCollector } from '@coolon/pectin';
|
|
5
5
|
import { AbstractTableModel } from '../abstract-table-model';
|
|
6
6
|
import { TreeExpansionModel } from './tree-expansion-model';
|
|
7
7
|
import { TreeLabelColumnModel } from './tree-label-column-model';
|
|
@@ -21,27 +21,15 @@ export class TreeTableModel extends AbstractTableModel {
|
|
|
21
21
|
super(source);
|
|
22
22
|
this.treeExpansionModel = treeExpansionModel;
|
|
23
23
|
}
|
|
24
|
-
static
|
|
25
|
-
|
|
26
|
-
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(garbage);
|
|
27
|
-
const children = chain(sourceOfTruth).mapToList(root => [root]);
|
|
28
|
-
const model = this.fromList(children, builder);
|
|
29
|
-
model.registerDisposable(garbage);
|
|
30
|
-
return model;
|
|
24
|
+
static fromList(sourceOfTruth, builder) {
|
|
25
|
+
return TreeTableModel._create(TreeTableModel, sourceOfTruth, builder);
|
|
31
26
|
}
|
|
32
|
-
static
|
|
27
|
+
static _create(klass, sourceOfTruth, builder) {
|
|
28
|
+
const treeExpansionModel = new TreeExpansionModel(sourceOfTruth.identityOf);
|
|
33
29
|
const garbage = new GarbageCollector();
|
|
34
|
-
const
|
|
35
|
-
const
|
|
36
|
-
const model = this.fromList(children, builder);
|
|
30
|
+
const nodes = garbage.registerDisposable(new TreeToListModel(sourceOfTruth, treeExpansionModel));
|
|
31
|
+
const model = new klass(nodes, treeExpansionModel);
|
|
37
32
|
model.registerDisposable(garbage);
|
|
38
|
-
return model;
|
|
39
|
-
}
|
|
40
|
-
static fromList(sourceOfTruth, builder) {
|
|
41
|
-
const treeExpansionModel = new TreeExpansionModel(sourceOfTruth.identityOf);
|
|
42
|
-
const nodes = new TreeToListModel(sourceOfTruth, treeExpansionModel);
|
|
43
|
-
const model = new this(nodes, treeExpansionModel);
|
|
44
|
-
model.registerDisposable(nodes);
|
|
45
33
|
if (builder)
|
|
46
34
|
builder(model);
|
|
47
35
|
return model;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree-table-model.js","sourceRoot":"","sources":["../../../../../../../../libs/angular-ui-powerups/src/lib/components/tables/tree-table/tree-table-model.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,sGAAsG;AACtG,4EAA4E;AAC5E,OAAO,
|
|
1
|
+
{"version":3,"file":"tree-table-model.js","sourceRoot":"","sources":["../../../../../../../../libs/angular-ui-powerups/src/lib/components/tables/tree-table/tree-table-model.ts"],"names":[],"mappings":"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","sourcesContent":["// import {T } from '@client/api/light-architect/model/area/area.class';\n// import { SelfAndDescendantsVisitor } from '@client/api/light-architect/model/area/visitable.class';\n// import { Zone } from '@client/api/light-architect/model/area/zone.class';\nimport {\n Constructable,\n Dsl,\n GarbageCollector,\n ListModel,\n MutableValueModel,\n SelectionModel,\n ValueModel\n} from '@coolon/pectin';\nimport { AbstractTableModel } from '../abstract-table-model';\nimport { SelectionColumnModel } from '../table/column-model';\nimport { DecoratedTreeNode } from './decorated-tree-node';\nimport { TreeExpansionModel } from './tree-expansion-model';\nimport { TreeLabelColumnModel } from './tree-label-column-model';\nimport { TreeNode } from './tree-node';\nimport { TreeToListModel } from './tree-to-list-model';\n\n// TODO:\n// Selection Models:\n// - as simple navigation tree\n// - as editable grid (selecte all, even hidden etc?)\n// - fixing selection on underlying model changes.\n// - rendering selection: row highlighting, checkboxes (in the tree renderer or in separate column), both.\n// Expansion Models:\n// - Add ability to auto show to depth\n// - Add a predicate to check default expansion (i.e. has children of a certain type)\n//\nexport class TreeTableModel<Row extends TreeNode<Row>> extends AbstractTableModel<DecoratedTreeNode<Row>> {\n\n constructor(source: ListModel<DecoratedTreeNode<Row>>, readonly treeExpansionModel: TreeExpansionModel<DecoratedTreeNode<Row>>) {\n super(source);\n }\n\n static fromList<Row extends TreeNode<Row>>(sourceOfTruth: ListModel<Row>, builder?: (tableModel: TreeTableModel<Row>) => void): TreeTableModel<Row> {\n return TreeTableModel._create(TreeTableModel, sourceOfTruth, builder);\n }\n\n protected static _create<Row extends TreeNode<Row>, M extends TreeTableModel<Row>>(klass: Constructable<M>, sourceOfTruth: ListModel<Row>, builder?: (tableModel: M) => void): M {\n const treeExpansionModel = new TreeExpansionModel<DecoratedTreeNode<Row>>(sourceOfTruth.identityOf);\n const garbage = new GarbageCollector();\n const nodes = garbage.registerDisposable(new TreeToListModel(sourceOfTruth, treeExpansionModel));\n const model = new klass(nodes, treeExpansionModel);\n model.registerDisposable(garbage);\n if (builder) builder(model);\n return model;\n }\n\n treeControlColumn(builder: (column: TreeLabelColumnModel<Row>) => void) {\n const columnId = 'tree-label';\n const column = new TreeLabelColumnModel<Row>(columnId, () => this.getColumnTextProperties(columnId), this.treeExpansionModel);\n builder(column);\n this.addColumn(column);\n }\n\n expand(node: DecoratedTreeNode<Row>) {\n this.treeExpansionModel.expand(node);\n }\n\n collapse(node: DecoratedTreeNode<Row>) {\n this.treeExpansionModel.expand(node);\n }\n\n isCollapsed(node: DecoratedTreeNode<Row>): boolean {\n return this.treeExpansionModel.isCollapsed(node);\n }\n\n ensureAncestorsAndSelfVisible(node: DecoratedTreeNode<Row>) {\n this.treeExpansionModel.ensureAncestorsAndSelfVisible(node);\n }\n\n addSelectionColumn(selectionModel?: SelectionModel<DecoratedTreeNode<Row>>, showSelectionColumn?: ValueModel<boolean> | boolean): SelectionColumnModel<DecoratedTreeNode<Row>> {\n return this._addSelectionColumn(selectionModel, showSelectionColumn);\n }\n\n // saveSelection() {\n // let ids: number[] = [];\n // const selectedArea = this._decoratedSelectionModel.leadSelection.value;\n // if (selectedArea) {\n // ids.push(selectedArea.id);\n // ids = ids.concat(selectedArea.siblingsAfter().map(a => a.id));\n // ids = ids.concat(selectedArea.siblingsBefore().reverse().map(a => a.id));\n // ids = ids.concat(selectedArea.ancestorsToZone().reverse().map(a => a.id));\n // }\n // this._storedSelection = ids;\n // }\n //\n //\n // restoreSelection() {\n // const all = this.rootNodeModel.value.selfAndDescendants();\n // for (let i = 0; i < this._storedSelection.length; i++) {\n // const id = this._storedSelection[i];\n // const found = all.find(area => area.id === id);\n // if (found) {\n // this.selectedAreaId.value = found.id;\n // break;\n // }\n // }\n // }\n //\n // collapseAll(areas: T[]) {\n // this.collapsedAreaIds.value = [].concat(this.collapsedAreaIds.value, areas.map(a => a.id));\n // }\n\n // disableSelection(disable: boolean = true) {\n // this._disableSelection.value = disable;\n // }\n\n\n}\n\n\nexport namespace TreeTableModel {\n\n export interface Options<T, K extends keyof T> {\n storeIdIn: MutableValueModel<K>\n }\n\n}\n\n\n// export class FlattenStrategy<T extends VisitableTree<any>> extends SelfAndDescendantsVisitor<T> {\n//\n// private _areas: T[] = [];\n// private _collapsed: Set<T>;\n//\n// constructor(private collapsedIds: T[]) {\n// super();\n// this._collapsed = new Set<T>(collapsedIds);\n// }\n//\n// protected onVisit(it: T) {\n// this._areas.push(it);\n// }\n//\n// protected shouldVisitChildrenOf(it: T): boolean {\n// return !this._collapsed.has(it);\n// }\n//\n// get flattenedAreas(): T[] {\n// return this._areas;\n// }\n//\n// }\n\n// class DecoratorCache {\n//\n// private map = new Map<number, T>();\n//\n// get(area:T): T {\n//\n// if (!area) return null;\n//\n// let decoratedArea = this.map.get(area.id);\n// if (!decoratedArea) {\n// decoratedArea = TreeModel.AreaDecorator.decorate(area);\n// this.map.set(area.id, decoratedArea);\n// }\n// return decoratedArea;\n// }\n//\n// clear() {\n// this.map.clear();\n// }\n//\n//\n// }\n\n\n\n\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"__symbolic":"module","version":4,"metadata":{"TreeTableModel":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../abstract-table-model","name":"AbstractTableModel","line":
|
|
1
|
+
[{"__symbolic":"module","version":4,"metadata":{"TreeTableModel":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"../abstract-table-model","name":"AbstractTableModel","line":30,"character":63},"arity":1,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@coolon/pectin","name":"ListModel","line":32,"character":22,"arguments":[{"__symbolic":"reference","module":"./decorated-tree-node","name":"DecoratedTreeNode","line":32,"character":32,"arguments":[{"__symbolic":"error","message":"Could not resolve type","line":32,"character":123,"context":{"typeName":"Row"}}]}]},{"__symbolic":"reference","module":"./tree-expansion-model","name":"TreeExpansionModel","line":32,"character":86,"arguments":[{"__symbolic":"reference","module":"./decorated-tree-node","name":"DecoratedTreeNode","line":32,"character":32,"arguments":[{"__symbolic":"error","message":"Could not resolve type","line":32,"character":123,"context":{"typeName":"Row"}}]}]}]}],"treeControlColumn":[{"__symbolic":"method"}],"expand":[{"__symbolic":"method"}],"collapse":[{"__symbolic":"method"}],"isCollapsed":[{"__symbolic":"method"}],"ensureAncestorsAndSelfVisible":[{"__symbolic":"method"}],"addSelectionColumn":[{"__symbolic":"method"}]},"statics":{"fromList":{"__symbolic":"function","parameters":["sourceOfTruth","builder"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"TreeTableModel"},"member":"_create"},"arguments":[{"__symbolic":"reference","name":"TreeTableModel"},{"__symbolic":"reference","name":"sourceOfTruth"},{"__symbolic":"reference","name":"builder"}]}}}}}}]
|
|
@@ -3651,27 +3651,15 @@ class TreeTableModel extends AbstractTableModel {
|
|
|
3651
3651
|
super(source);
|
|
3652
3652
|
this.treeExpansionModel = treeExpansionModel;
|
|
3653
3653
|
}
|
|
3654
|
-
static
|
|
3655
|
-
|
|
3656
|
-
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(garbage);
|
|
3657
|
-
const children = chain(sourceOfTruth).mapToList(root => [root]);
|
|
3658
|
-
const model = this.fromList(children, builder);
|
|
3659
|
-
model.registerDisposable(garbage);
|
|
3660
|
-
return model;
|
|
3654
|
+
static fromList(sourceOfTruth, builder) {
|
|
3655
|
+
return TreeTableModel._create(TreeTableModel, sourceOfTruth, builder);
|
|
3661
3656
|
}
|
|
3662
|
-
static
|
|
3657
|
+
static _create(klass, sourceOfTruth, builder) {
|
|
3658
|
+
const treeExpansionModel = new TreeExpansionModel(sourceOfTruth.identityOf);
|
|
3663
3659
|
const garbage = new GarbageCollector();
|
|
3664
|
-
const
|
|
3665
|
-
const
|
|
3666
|
-
const model = this.fromList(children, builder);
|
|
3660
|
+
const nodes = garbage.registerDisposable(new TreeToListModel(sourceOfTruth, treeExpansionModel));
|
|
3661
|
+
const model = new klass(nodes, treeExpansionModel);
|
|
3667
3662
|
model.registerDisposable(garbage);
|
|
3668
|
-
return model;
|
|
3669
|
-
}
|
|
3670
|
-
static fromList(sourceOfTruth, builder) {
|
|
3671
|
-
const treeExpansionModel = new TreeExpansionModel(sourceOfTruth.identityOf);
|
|
3672
|
-
const nodes = new TreeToListModel(sourceOfTruth, treeExpansionModel);
|
|
3673
|
-
const model = new this(nodes, treeExpansionModel);
|
|
3674
|
-
model.registerDisposable(nodes);
|
|
3675
3663
|
if (builder)
|
|
3676
3664
|
builder(model);
|
|
3677
3665
|
return model;
|
|
@@ -5447,7 +5435,10 @@ SelectInputActivity.decorators = [
|
|
|
5447
5435
|
*/
|
|
5448
5436
|
class TableModel extends AbstractTableModel {
|
|
5449
5437
|
static fromList(sourceOfTruth, builder) {
|
|
5450
|
-
|
|
5438
|
+
return TableModel._create(TableModel, sourceOfTruth, builder);
|
|
5439
|
+
}
|
|
5440
|
+
static _create(klass, sourceOfTruth, builder) {
|
|
5441
|
+
const model = new klass(sourceOfTruth);
|
|
5451
5442
|
if (builder)
|
|
5452
5443
|
builder(model);
|
|
5453
5444
|
return model;
|