uiconfig-blueprint 0.1.0-dev.4 → 0.1.0-dev.5
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/dist/{allPaths-B8LX_D5a.js → allPaths-By_mBgwU.js} +5 -5
- package/dist/{allPaths-B8LX_D5a.js.map → allPaths-By_mBgwU.js.map} +1 -1
- package/dist/{allPathsLoader-ChwV6s_m.js → allPathsLoader-DzKtBkYf.js} +4 -4
- package/dist/{allPathsLoader-ChwV6s_m.js.map → allPathsLoader-DzKtBkYf.js.map} +1 -1
- package/dist/bpComponents/BPTreeComponent.d.ts +4 -5
- package/dist/{index-B3lLOxQd.js → index-C2vRz8Oc.js} +2 -2
- package/dist/{index-B3lLOxQd.js.map → index-C2vRz8Oc.js.map} +1 -1
- package/dist/{index-CPVHSDA_.js → index-CIM_EzrF.js} +1111 -1100
- package/dist/{index-CPVHSDA_.js.map → index-CIM_EzrF.js.map} +1 -1
- package/dist/{index-DzfuAEGU.js → index-Dm8yRRlW.js} +2 -2
- package/dist/{index-DzfuAEGU.js.map → index-Dm8yRRlW.js.map} +1 -1
- package/dist/index.js +15 -15
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2 -2
- package/dist/{splitPathsBySizeLoader-WipJWyYS.js → splitPathsBySizeLoader-DWtVZ468.js} +5 -5
- package/dist/{splitPathsBySizeLoader-WipJWyYS.js.map → splitPathsBySizeLoader-DWtVZ468.js.map} +1 -1
- package/docs/classes/UI.html +3 -3
- package/docs/classes/UiConfigRendererBlueprint.html +3 -3
- package/lib/esm/bpComponents/BPTreeComponent.d.ts +4 -5
- package/lib/esm/bpComponents/BPTreeComponent.js +19 -4
- package/lib/esm/bpComponents/BPTreeComponent.js.map +1 -1
- package/package.json +5 -8
- package/src/bpComponents/BPTreeComponent.tsx +24 -8
|
@@ -42,6 +42,16 @@ export class BPTreeComponent extends BPComponent {
|
|
|
42
42
|
return res;
|
|
43
43
|
});
|
|
44
44
|
}
|
|
45
|
+
_getNodePath(id, nodes) {
|
|
46
|
+
let path1 = null;
|
|
47
|
+
this._forEachNode(nodes !== null && nodes !== void 0 ? nodes : this.state.nodes, (node, path) => {
|
|
48
|
+
if (!path1)
|
|
49
|
+
return;
|
|
50
|
+
if (node.id === id)
|
|
51
|
+
path1 = path;
|
|
52
|
+
});
|
|
53
|
+
return path1 !== null && path1 !== void 0 ? path1 : [];
|
|
54
|
+
}
|
|
45
55
|
_forEachNode(nodes, callback, path = []) {
|
|
46
56
|
if (nodes === undefined) {
|
|
47
57
|
return nodes;
|
|
@@ -52,9 +62,6 @@ export class BPTreeComponent extends BPComponent {
|
|
|
52
62
|
}
|
|
53
63
|
return nodes;
|
|
54
64
|
}
|
|
55
|
-
_forNodeAtPath(nodes, path, callback) {
|
|
56
|
-
callback(Tree.nodeFromPath(path, nodes));
|
|
57
|
-
}
|
|
58
65
|
_onNodeExpandCollapse(_id, expanded) {
|
|
59
66
|
return __awaiter(this, void 0, void 0, function* () {
|
|
60
67
|
const nodes = this._cloneNodes();
|
|
@@ -97,9 +104,17 @@ export class BPTreeComponent extends BPComponent {
|
|
|
97
104
|
const nodes = this._cloneNodes(n => n.isSelected = false);
|
|
98
105
|
return this.setStatePromise(Object.assign(Object.assign({}, this.state), { nodes }));
|
|
99
106
|
}
|
|
100
|
-
setSelected(id) {
|
|
107
|
+
setSelected(id, expand = false) {
|
|
101
108
|
return __awaiter(this, void 0, void 0, function* () {
|
|
102
109
|
const nodes = this._cloneNodes(n => n.isSelected = n.id === id);
|
|
110
|
+
if (expand && id !== undefined) {
|
|
111
|
+
const parents = this._getNodePath(id);
|
|
112
|
+
for (let i = 0; i < parents.length; i++) {
|
|
113
|
+
const node = this._infoMap.get(parents[i]);
|
|
114
|
+
if (node)
|
|
115
|
+
node.isExpanded = true;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
103
118
|
return this.setStatePromise(Object.assign(Object.assign({}, this.state), { nodes }));
|
|
104
119
|
});
|
|
105
120
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BPTreeComponent.js","sourceRoot":"","sources":["../../../src/bpComponents/BPTreeComponent.tsx"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,EAAC,WAAW,EAAkE,MAAM,eAAe,CAAC;AAC3G,OAAO,EAAC,IAAI,EAAe,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"BPTreeComponent.js","sourceRoot":"","sources":["../../../src/bpComponents/BPTreeComponent.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "uiconfig-blueprint",
|
|
3
3
|
"name:umd": "bpui",
|
|
4
|
-
"version": "0.1.0-dev.
|
|
4
|
+
"version": "0.1.0-dev.5",
|
|
5
5
|
"description": "Blueprint.js wrapper and custom components for web controls UI. To be used with uiconfig.",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"module": "dist/index.mjs",
|
|
@@ -37,11 +37,12 @@
|
|
|
37
37
|
},
|
|
38
38
|
"homepage": "https://github.com/repalash/uiconfig-blueprint#readme",
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"ts-browser-helpers": "^0.16.
|
|
40
|
+
"ts-browser-helpers": "^0.16.2",
|
|
41
41
|
"uiconfig.js": "^0.1.2",
|
|
42
42
|
"@blueprintjs/icons": "^5.11.0",
|
|
43
43
|
"@blueprintjs/select": "^5.2.2",
|
|
44
|
-
"blueprint-styler": "^5.0.2"
|
|
44
|
+
"blueprint-styler": "^5.0.2",
|
|
45
|
+
"react-colorful": "^5.6.1"
|
|
45
46
|
},
|
|
46
47
|
"peerDependencies": {
|
|
47
48
|
"@blueprintjs/core": "^5.11.0",
|
|
@@ -50,8 +51,7 @@
|
|
|
50
51
|
"@types/react": "^18.0.28",
|
|
51
52
|
"@types/react-dom": "^18.0.11",
|
|
52
53
|
"react": "^18.2.0",
|
|
53
|
-
"react-dom": "^18.2.0"
|
|
54
|
-
"react-colorful": "^5.6.1"
|
|
54
|
+
"react-dom": "^18.2.0"
|
|
55
55
|
},
|
|
56
56
|
"peerDependenciesMeta": {
|
|
57
57
|
"@blueprintjs/core": {
|
|
@@ -74,9 +74,6 @@
|
|
|
74
74
|
},
|
|
75
75
|
"react-dom": {
|
|
76
76
|
"optional": true
|
|
77
|
-
},
|
|
78
|
-
"react-colorful": {
|
|
79
|
-
"optional": true
|
|
80
77
|
}
|
|
81
78
|
},
|
|
82
79
|
"//": {
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import {BPComponent, BPComponentProps, BPComponentState, UiConfigRendererContextType} from "./BPComponent";
|
|
2
2
|
import {Tree, TreeNodeInfo} from "@blueprintjs/core";
|
|
3
|
-
import {PrimitiveVal} from "uiconfig.js";
|
|
4
3
|
|
|
5
4
|
export type BPTreeComponentState<T = {}> = BPComponentState & {
|
|
6
5
|
nodes: TreeNodeInfo<T>[]
|
|
7
6
|
}
|
|
8
7
|
|
|
9
8
|
// https://github.com/palantir/blueprint/blob/develop/packages/docs-app/src/examples/core-examples/treeExample.tsx
|
|
10
|
-
type NodePath = number[];
|
|
9
|
+
type NodePath = (string|number)[];
|
|
11
10
|
|
|
12
|
-
export abstract class BPTreeComponent<T = {}, TConfigVal extends PrimitiveVal|void = void> extends BPComponent<TConfigVal, BPTreeComponentState<T>> {
|
|
11
|
+
export abstract class BPTreeComponent<T = {}, TConfigVal extends any /*|PrimitiveVal|void*/ = void> extends BPComponent<TConfigVal, BPTreeComponentState<T>> {
|
|
13
12
|
constructor(props: BPComponentProps<TConfigVal>, context: UiConfigRendererContextType) {
|
|
14
13
|
super(props, context, {nodes: []});
|
|
15
14
|
}
|
|
@@ -51,19 +50,29 @@ export abstract class BPTreeComponent<T = {}, TConfigVal extends PrimitiveVal|vo
|
|
|
51
50
|
})
|
|
52
51
|
}
|
|
53
52
|
|
|
53
|
+
protected _getNodePath(id: string, nodes?: TreeNodeInfo<T>[]): NodePath {
|
|
54
|
+
let path1: NodePath|null = null
|
|
55
|
+
this._forEachNode(nodes ?? this.state.nodes, (node, path) => {
|
|
56
|
+
if(!path1) return
|
|
57
|
+
if (node.id === id) path1 = path
|
|
58
|
+
})
|
|
59
|
+
return path1 ?? []
|
|
60
|
+
}
|
|
61
|
+
|
|
54
62
|
protected _forEachNode<T>(nodes: TreeNodeInfo<T>[] | undefined, callback: (node: TreeNodeInfo<T>, path: NodePath) => void, path: NodePath = []) {
|
|
55
63
|
if (nodes === undefined) {
|
|
56
64
|
return nodes;
|
|
57
65
|
}
|
|
58
66
|
for (const node of nodes) {
|
|
59
67
|
callback(node, path);
|
|
60
|
-
this._forEachNode(node.childNodes, callback, [...path, node.id]
|
|
68
|
+
this._forEachNode(node.childNodes, callback, [...path, node.id]);
|
|
61
69
|
}
|
|
62
70
|
return nodes
|
|
63
71
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
72
|
+
|
|
73
|
+
// protected _forNodeAtPath<T>(nodes: TreeNodeInfo<T>[], path: NodePath, callback: (node: TreeNodeInfo<T>) => void) {
|
|
74
|
+
// callback(Tree.nodeFromPath(path, nodes));
|
|
75
|
+
// }
|
|
67
76
|
|
|
68
77
|
protected async _onNodeExpandCollapse(_id: string | number, expanded?: boolean) {
|
|
69
78
|
const nodes = this._cloneNodes()
|
|
@@ -104,8 +113,15 @@ export abstract class BPTreeComponent<T = {}, TConfigVal extends PrimitiveVal|vo
|
|
|
104
113
|
return this.setStatePromise({...this.state, nodes})
|
|
105
114
|
}
|
|
106
115
|
|
|
107
|
-
async setSelected(id?: string) {
|
|
116
|
+
async setSelected(id?: string, expand = false) {
|
|
108
117
|
const nodes = this._cloneNodes(n => n.isSelected = n.id === id)
|
|
118
|
+
if(expand && id!==undefined){
|
|
119
|
+
const parents = this._getNodePath(id)
|
|
120
|
+
for (let i = 0; i < parents.length; i++) {
|
|
121
|
+
const node = this._infoMap.get(parents[i])
|
|
122
|
+
if(node) node.isExpanded = true
|
|
123
|
+
}
|
|
124
|
+
}
|
|
109
125
|
return this.setStatePromise({...this.state, nodes})
|
|
110
126
|
}
|
|
111
127
|
|