@linkurious/ogma-linkurious-parser 3.0.11 → 3.1.1
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/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/ogma/features/captions.d.ts +1 -6
- package/dist/ogma/features/captions.js +0 -33
- package/dist/ogma/features/captions.js.map +1 -1
- package/dist/ogma/features/reactive.d.ts +5 -5
- package/dist/ogma/features/reactive.js +34 -34
- package/dist/ogma/features/reactive.js.map +1 -1
- package/dist/ogma/features/selectors.d.ts +1 -1
- package/dist/ogma/features/selectors.js.map +1 -1
- package/dist/ogma/features/styles.js +6 -16
- package/dist/ogma/features/styles.js.map +1 -1
- package/dist/ogma/features/transformations.d.ts +1 -1
- package/dist/ogma/features/transformations.js +1 -0
- package/dist/ogma/features/transformations.js.map +1 -1
- package/dist/ogma/index.d.ts +17 -7
- package/dist/ogma/index.js +63 -22
- package/dist/ogma/index.js.map +1 -1
- package/dist/styles/edgeAttributes.d.ts +4 -3
- package/dist/styles/edgeAttributes.js +12 -6
- package/dist/styles/edgeAttributes.js.map +1 -1
- package/dist/styles/itemAttributes.d.ts +14 -3
- package/dist/styles/itemAttributes.js +28 -3
- package/dist/styles/itemAttributes.js.map +1 -1
- package/dist/styles/nodeAttributes.d.ts +4 -3
- package/dist/styles/nodeAttributes.js +12 -6
- package/dist/styles/nodeAttributes.js.map +1 -1
- package/dist/tools/ogmaTool.d.ts +1 -1
- package/dist/tools/ogmaTool.js.map +1 -1
- package/dist/tools/tools.d.ts +1 -1
- package/dist/tools/tools.js.map +1 -1
- package/package.json +8 -8
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { Edge, EdgeList, Node, NodeList, EdgeId, NodeId, RawEdge, RawItem, RawNode, PropertyPath, Item, ItemId, EdgeStyle, PixelSize, EdgeExtremity, EdgeType, GeoModeOptions } from 'ogma';
|
|
1
|
+
export { Edge, EdgeList, Node, NodeList, EdgeId, NodeId, RawEdge, RawItem, RawNode, PropertyPath, Item, ItemId, EdgeStyle, PixelSize, EdgeExtremity, EdgeType, GeoModeOptions, EdgesDataEvent, NodesDataEvent, NodesDragEndEvent, NodesEvent } from '@linkurious/ogma';
|
|
2
2
|
export { Captions } from './captions/captions';
|
|
3
3
|
export { ItemAttributes, BASE_GREY } from './styles/itemAttributes';
|
|
4
4
|
export { EdgeAttributes } from './styles/edgeAttributes';
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,yCAsB0B;AArBxB,sBAAA,IAAI,CAAA;AACJ,0BAAA,QAAQ,CAAA;AACR,sBAAA,IAAI,CAAA;AACJ,0BAAA,QAAQ,CAAA;AAoBV,gDAA6C;AAArC,8BAAA,QAAQ,CAAA;AAChB,0DAAkE;AAA1D,0CAAA,cAAc,CAAA;AAAE,qCAAA,SAAS,CAAA;AACjC,0DAAuD;AAA/C,0CAAA,cAAc,CAAA;AACtB,0DAAuD;AAA/C,0CAAA,cAAc,CAAA;AACtB,gDAA4D;AAApD,gCAAA,SAAS,CAAA;AAAE,oCAAA,aAAa,CAAA;AAChC,kDAAkE;AAA1D,kCAAA,UAAU,CAAA;AAAE,iCAAA,SAAS,CAAA;AAC7B,iDAA+E;AAAvE,6BAAA,SAAS,CAAA;AAAgB,kCAAA,cAAc,CAAA;AAC/C,mEAAmE;AAA3D,+CAAA,kBAAkB,CAAA;AAC1B,qDAAmE;AAA3D,iCAAA,WAAW,CAAA;AAEnB,6CAA2C;AAAnC,+BAAA,SAAS,CAAA;AACjB,qDAAiD;AAAzC,qCAAA,WAAW,CAAA;AACnB,6CAA0C;AAAlC,4BAAA,OAAO,CAAA;AACf,uDASmC;AARjC,uCAAA,gBAAgB,CAAA;AAChB,wCAAA,iBAAiB,CAAA;AACjB,yCAAA,kBAAkB,CAAA;AAClB,uCAAA,gBAAgB,CAAA;AAChB,4CAAA,qBAAqB,CAAA;AACrB,6CAAA,sBAAsB,CAAA;AACtB,6CAAA,sBAAsB,CAAA;AACtB,6CAAA,sBAAsB,CAAA;AAExB,+BAAkD;AAA1C,wBAAA,MAAM,CAAA;AAAE,oCAAA,kBAAkB,CAAA","sourcesContent":["'use strict';\n\nexport {\n Edge,\n EdgeList,\n Node,\n NodeList,\n EdgeId,\n NodeId,\n RawEdge,\n RawItem,\n RawNode,\n PropertyPath,\n Item,\n ItemId,\n EdgeStyle,\n PixelSize,\n EdgeExtremity,\n EdgeType,\n GeoModeOptions,\n EdgesDataEvent,\n NodesDataEvent,\n NodesDragEndEvent,\n NodesEvent\n} from '@linkurious/ogma';\n\nexport {Captions} from './captions/captions';\nexport {ItemAttributes, BASE_GREY} from './styles/itemAttributes';\nexport {EdgeAttributes} from './styles/edgeAttributes';\nexport {NodeAttributes} from './styles/nodeAttributes';\nexport {StyleRule, StyleRuleType} from './styles/styleRule';\nexport {StyleRules, StyleType, Legend} from './styles/styleRules';\nexport {StylesViz, StylesConfig, FILTER_OPACITY} from './ogma/features/styles';\nexport {TransformationsViz} from './ogma/features/transformations';\nexport {CaptionsViz, CaptionState} from './ogma/features/captions';\nexport {OgmaState} from './ogma/features/reactive';\nexport {OgmaTools} from './tools/ogmaTool';\nexport {HTML_COLORS} from './tools/colorPalette';\nexport {Filters} from './filters/filters';\nexport {\n getSelectionSize,\n getSelectionState,\n getSelectionEntity,\n getUniqSelection,\n getUniqSelectionTypes,\n getUniqSelectionEntity,\n getSelectionProperties,\n hasSelectionProperties\n} from './ogma/features/selectors';\nexport {LKOgma, ANIMATION_DURATION} from './ogma';\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as Ogma from 'ogma';
|
|
1
|
+
import * as Ogma from '@linkurious/ogma';
|
|
2
2
|
import { ItemFieldsCaptions } from '@linkurious/rest-client';
|
|
3
3
|
import { LKOgma } from '../..';
|
|
4
4
|
export interface CaptionState {
|
|
@@ -12,7 +12,6 @@ export declare class CaptionsViz {
|
|
|
12
12
|
edgesCaptionsRule: Ogma.StyleRule;
|
|
13
13
|
private _ogma;
|
|
14
14
|
private _schema;
|
|
15
|
-
private _exportCaptionClass;
|
|
16
15
|
constructor(ogma: LKOgma, _nodeMaxTextLength: number | undefined, _edgeMaxTextLength: number | undefined);
|
|
17
16
|
/**
|
|
18
17
|
* Refresh the schema
|
|
@@ -30,8 +29,4 @@ export declare class CaptionsViz {
|
|
|
30
29
|
* Create or update edgeCaptionRule
|
|
31
30
|
*/
|
|
32
31
|
updateEdgeCaptions(schema?: ItemFieldsCaptions): Promise<void> | void;
|
|
33
|
-
/**
|
|
34
|
-
* Set the class for exported nodes and edges
|
|
35
|
-
*/
|
|
36
|
-
setExportCaptionClass(textWrappingLength?: boolean): void;
|
|
37
32
|
}
|
|
@@ -145,39 +145,6 @@ var CaptionsViz = /** @class */ (function () {
|
|
|
145
145
|
return this.edgesCaptionsRule.refresh();
|
|
146
146
|
}
|
|
147
147
|
};
|
|
148
|
-
/**
|
|
149
|
-
* Set the class for exported nodes and edges
|
|
150
|
-
*/
|
|
151
|
-
CaptionsViz.prototype.setExportCaptionClass = function (textWrappingLength) {
|
|
152
|
-
var _this = this;
|
|
153
|
-
if (!this._exportCaptionClass) {
|
|
154
|
-
this._exportCaptionClass = this._ogma.styles.createClass({
|
|
155
|
-
name: 'exportedCaption',
|
|
156
|
-
nodeAttributes: {
|
|
157
|
-
text: {
|
|
158
|
-
content: function (node) {
|
|
159
|
-
if (node === undefined) {
|
|
160
|
-
return "";
|
|
161
|
-
}
|
|
162
|
-
return __1.Captions.getText(node.getData(), _this._schema.node);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
},
|
|
166
|
-
nodeDependencies: { self: { data: true } },
|
|
167
|
-
edgeAttributes: {
|
|
168
|
-
text: {
|
|
169
|
-
content: function (edge) {
|
|
170
|
-
if (edge === undefined) {
|
|
171
|
-
return "";
|
|
172
|
-
}
|
|
173
|
-
return __1.Captions.getText(edge.getData(), _this._schema.edge);
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
},
|
|
177
|
-
edgeDependencies: { self: { data: true } }
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
};
|
|
181
148
|
return CaptionsViz;
|
|
182
149
|
}());
|
|
183
150
|
exports.CaptionsViz = CaptionsViz;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"captions.js","sourceRoot":"","sources":["../../../src/ogma/features/captions.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"captions.js","sourceRoot":"","sources":["../../../src/ogma/features/captions.ts"],"names":[],"mappings":"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","sourcesContent":["'use strict';\n\nimport * as Ogma from '@linkurious/ogma';\nimport {ItemFieldsCaptions} from '@linkurious/rest-client';\n\nimport {Captions, LKOgma} from '../..';\nimport {Tools} from '../../tools/tools';\n\nexport interface CaptionState {\n node: ItemFieldsCaptions;\n edge: ItemFieldsCaptions;\n}\n\nexport class CaptionsViz {\n public nodesCaptionsRule!: Ogma.StyleRule;\n public edgesCaptionsRule!: Ogma.StyleRule;\n private _ogma: LKOgma;\n private _schema: CaptionState = {node: {}, edge: {}};\n\n constructor(\n ogma: LKOgma,\n private _nodeMaxTextLength: number | undefined,\n private _edgeMaxTextLength: number | undefined\n ) {\n this._ogma = ogma;\n }\n\n /**\n * Refresh the schema\n */\n public refreshSchema(schema: CaptionState): void {\n this._schema = schema;\n }\n\n /**\n * Refresh visualization captions rules\n */\n public async initVizCaptions(schema: CaptionState): Promise<void> {\n if (this._ogma.LKCaptions.nodesCaptionsRule) {\n this._ogma.LKCaptions.refreshSchema(schema);\n await this._ogma.LKCaptions.updateNodeCaptions();\n } else {\n this._ogma.LKCaptions.updateNodeCaptions(schema.node);\n }\n if (this._ogma.LKCaptions.edgesCaptionsRule) {\n this._ogma.LKCaptions.refreshSchema(schema);\n await this._ogma.LKCaptions.updateEdgeCaptions();\n } else {\n this._ogma.LKCaptions.updateEdgeCaptions(schema.edge);\n }\n }\n\n /**\n * Create or update nodeCaptionRule\n */\n public updateNodeCaptions(schema?: ItemFieldsCaptions): Promise<void> | void {\n if (schema) {\n this._schema.node = schema;\n }\n if (!Tools.isDefined(this.nodesCaptionsRule)) {\n this.nodesCaptionsRule = this._ogma.styles.addRule({\n nodeAttributes: {\n text: {\n content: (node: Ogma.Node | undefined) => {\n if (node === undefined) {\n return ``;\n }\n const value = Captions.getText(node.getData(), this._schema.node);\n return Tools.isDefined(this._nodeMaxTextLength)\n ? Tools.truncate(value, 'middle', this._nodeMaxTextLength)\n : value;\n }\n }\n },\n nodeDependencies: {self: {data: true}}\n });\n } else {\n return this.nodesCaptionsRule.refresh();\n }\n }\n\n /**\n * Create or update edgeCaptionRule\n */\n public updateEdgeCaptions(schema?: ItemFieldsCaptions): Promise<void> | void {\n if (schema) {\n this._schema.edge = schema;\n }\n if (!Tools.isDefined(this.edgesCaptionsRule)) {\n this.edgesCaptionsRule = this._ogma.styles.addRule({\n edgeAttributes: {\n text: {\n content: (edge: Ogma.Edge | undefined) => {\n if (edge === undefined || edge.getData() === undefined) {\n return ``;\n }\n const value = Captions.getText(edge.getData(), this._schema.edge);\n return Tools.isDefined(this._edgeMaxTextLength)\n ? Tools.truncate(value, 'middle', this._edgeMaxTextLength)\n : value;\n }\n }\n },\n edgeSelector: (edge) => !edge.isVirtual() && edge.isVisible(),\n // ogma will trigger the rendering if data change or the shape change (to trigger the rendering when edges are grouped)\n edgeDependencies: {self: {data: true, attributes: ['shape.style']}}\n });\n } else {\n return this.edgesCaptionsRule.refresh();\n }\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { NodeList, EdgeList } from 'ogma';
|
|
1
|
+
import { NodeList, EdgeList } from '@linkurious/ogma';
|
|
2
2
|
import { LkEdgeData, LkNodeData } from '@linkurious/rest-client';
|
|
3
3
|
import { LKOgma } from '../index';
|
|
4
4
|
import { OgmaStore } from './OgmaStore';
|
|
@@ -21,6 +21,10 @@ export declare class RxViz {
|
|
|
21
21
|
private _animationThrottle;
|
|
22
22
|
constructor(ogma: LKOgma);
|
|
23
23
|
get store(): OgmaStore;
|
|
24
|
+
/**
|
|
25
|
+
* Listen to ogma events and update the state
|
|
26
|
+
*/
|
|
27
|
+
listenToSelectionEvents(): void;
|
|
24
28
|
/**
|
|
25
29
|
* Store new items in state
|
|
26
30
|
*/
|
|
@@ -33,10 +37,6 @@ export declare class RxViz {
|
|
|
33
37
|
* store new edge selection in state
|
|
34
38
|
*/
|
|
35
39
|
private storeEdgeSelection;
|
|
36
|
-
/**
|
|
37
|
-
* Listen to ogma events and update the state
|
|
38
|
-
*/
|
|
39
|
-
private listenToSelectionEvents;
|
|
40
40
|
}
|
|
41
41
|
export declare class DummyNodeList {
|
|
42
42
|
size: number;
|
|
@@ -31,34 +31,13 @@ var RxViz = /** @class */ (function () {
|
|
|
31
31
|
enumerable: true,
|
|
32
32
|
configurable: true
|
|
33
33
|
});
|
|
34
|
-
/**
|
|
35
|
-
* Store new items in state
|
|
36
|
-
*/
|
|
37
|
-
RxViz.prototype.storeItems = function (state) {
|
|
38
|
-
return __assign(__assign({}, state), { items: {
|
|
39
|
-
node: this._ogma.getNodes().getId(),
|
|
40
|
-
edge: this._ogma.getEdges().getId()
|
|
41
|
-
} });
|
|
42
|
-
};
|
|
43
|
-
/**
|
|
44
|
-
* Store new node selection in state
|
|
45
|
-
*/
|
|
46
|
-
RxViz.prototype.storeNodeSelection = function (state) {
|
|
47
|
-
return __assign(__assign({}, state), { selection: this._ogma.getSelectedNodes() });
|
|
48
|
-
};
|
|
49
|
-
/**
|
|
50
|
-
* store new edge selection in state
|
|
51
|
-
*/
|
|
52
|
-
RxViz.prototype.storeEdgeSelection = function (state) {
|
|
53
|
-
return __assign(__assign({}, state), { selection: this._ogma.getSelectedEdges() });
|
|
54
|
-
};
|
|
55
34
|
/**
|
|
56
35
|
* Listen to ogma events and update the state
|
|
57
36
|
*/
|
|
58
37
|
RxViz.prototype.listenToSelectionEvents = function () {
|
|
59
38
|
var _this = this;
|
|
60
39
|
var count = 0;
|
|
61
|
-
this._ogma.
|
|
40
|
+
this._ogma.events.on('animate', function (e) {
|
|
62
41
|
var animationEnd = ++count;
|
|
63
42
|
_this._store.dispatch(function (state) { return (__assign(__assign({}, state), { animation: true })); });
|
|
64
43
|
clearTimeout(_this._animationThrottle);
|
|
@@ -68,37 +47,37 @@ var RxViz = /** @class */ (function () {
|
|
|
68
47
|
}
|
|
69
48
|
}, e.duration + index_1.ANIMATION_DURATION + 100);
|
|
70
49
|
});
|
|
71
|
-
this._ogma.events.
|
|
50
|
+
this._ogma.events.on('dragStart', function () {
|
|
72
51
|
_this._store.dispatch(function (state) { return (__assign(__assign({}, state), { animation: true })); });
|
|
73
52
|
});
|
|
74
|
-
this._ogma.events.
|
|
53
|
+
this._ogma.events.on('dragEnd', function () {
|
|
75
54
|
_this._store.dispatch(function (state) { return (__assign(__assign({}, state), { animation: false })); });
|
|
76
55
|
});
|
|
77
|
-
this._ogma.events.
|
|
56
|
+
this._ogma.events.on('addNodes', function () {
|
|
78
57
|
_this._store.dispatch(_this.storeItems.bind(_this));
|
|
79
58
|
});
|
|
80
|
-
this._ogma.events.
|
|
59
|
+
this._ogma.events.on('removeNodes', function () {
|
|
81
60
|
_this._store.dispatch(_this.storeItems.bind(_this));
|
|
82
61
|
});
|
|
83
|
-
this._ogma.events.
|
|
62
|
+
this._ogma.events.on('addEdges', function () {
|
|
84
63
|
_this._store.dispatch(_this.storeItems.bind(_this));
|
|
85
64
|
});
|
|
86
|
-
this._ogma.events.
|
|
65
|
+
this._ogma.events.on('removeEdges', function () {
|
|
87
66
|
_this._store.dispatch(_this.storeItems.bind(_this));
|
|
88
67
|
});
|
|
89
|
-
this._ogma.events.
|
|
68
|
+
this._ogma.events.on('nodesSelected', function () {
|
|
90
69
|
_this._store.dispatch(_this.storeNodeSelection.bind(_this));
|
|
91
70
|
});
|
|
92
|
-
this._ogma.events.
|
|
71
|
+
this._ogma.events.on('edgesSelected', function () {
|
|
93
72
|
_this._store.dispatch(_this.storeEdgeSelection.bind(_this));
|
|
94
73
|
});
|
|
95
|
-
this._ogma.events.
|
|
74
|
+
this._ogma.events.on('nodesUnselected', function () {
|
|
96
75
|
_this._store.dispatch(_this.storeNodeSelection.bind(_this));
|
|
97
76
|
});
|
|
98
|
-
this._ogma.events.
|
|
77
|
+
this._ogma.events.on('edgesUnselected', function () {
|
|
99
78
|
_this._store.dispatch(_this.storeEdgeSelection.bind(_this));
|
|
100
79
|
});
|
|
101
|
-
this._ogma.events.
|
|
80
|
+
this._ogma.events.on('updateNodeData', function (evt) {
|
|
102
81
|
if (evt !== undefined) {
|
|
103
82
|
evt.changes.forEach(function (change) {
|
|
104
83
|
_this._store.dispatch(function (state) { return (__assign(__assign({}, state), { changes: {
|
|
@@ -109,7 +88,7 @@ var RxViz = /** @class */ (function () {
|
|
|
109
88
|
});
|
|
110
89
|
}
|
|
111
90
|
});
|
|
112
|
-
this._ogma.events.
|
|
91
|
+
this._ogma.events.on('updateEdgeData', function (evt) {
|
|
113
92
|
if (evt !== undefined) {
|
|
114
93
|
evt.changes.forEach(function (change) {
|
|
115
94
|
_this._store.dispatch(function (state) { return (__assign(__assign({}, state), { changes: {
|
|
@@ -121,6 +100,27 @@ var RxViz = /** @class */ (function () {
|
|
|
121
100
|
}
|
|
122
101
|
});
|
|
123
102
|
};
|
|
103
|
+
/**
|
|
104
|
+
* Store new items in state
|
|
105
|
+
*/
|
|
106
|
+
RxViz.prototype.storeItems = function (state) {
|
|
107
|
+
return __assign(__assign({}, state), { items: {
|
|
108
|
+
node: this._ogma.getNodes().getId(),
|
|
109
|
+
edge: this._ogma.getEdges().getId()
|
|
110
|
+
} });
|
|
111
|
+
};
|
|
112
|
+
/**
|
|
113
|
+
* Store new node selection in state
|
|
114
|
+
*/
|
|
115
|
+
RxViz.prototype.storeNodeSelection = function (state) {
|
|
116
|
+
return __assign(__assign({}, state), { selection: this._ogma.getSelectedNodes() });
|
|
117
|
+
};
|
|
118
|
+
/**
|
|
119
|
+
* store new edge selection in state
|
|
120
|
+
*/
|
|
121
|
+
RxViz.prototype.storeEdgeSelection = function (state) {
|
|
122
|
+
return __assign(__assign({}, state), { selection: this._ogma.getSelectedEdges() });
|
|
123
|
+
};
|
|
124
124
|
return RxViz;
|
|
125
125
|
}());
|
|
126
126
|
exports.RxViz = RxViz;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactive.js","sourceRoot":"","sources":["../../../src/ogma/features/reactive.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;;;;AAKb,kCAAoD;AAEpD,yCAAsC;AAStC;IAUE,eAAY,IAAY;QARhB,WAAM,GAAc,IAAI,qBAAS,CAAC;YACxC,SAAS,EAAE,IAAI,aAAa,EAAS;YACrC,KAAK,EAAE,EAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAC;YAC3B,OAAO,EAAE,SAAS;YAClB,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QAID,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACjC,CAAC;IAED,sBAAW,wBAAK;aAAhB;YACE,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;;;OAAA;IAED;;OAEG;
|
|
1
|
+
{"version":3,"file":"reactive.js","sourceRoot":"","sources":["../../../src/ogma/features/reactive.ts"],"names":[],"mappings":"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","sourcesContent":["'use strict';\n\nimport Ogma, {NodeList, EdgeList} from '@linkurious/ogma';\nimport {LkEdgeData, LkNodeData} from '@linkurious/rest-client';\n\nimport {ANIMATION_DURATION, LKOgma} from '../index';\n\nimport {OgmaStore} from './OgmaStore';\n\nexport interface OgmaState {\n selection: NodeList<LkNodeData, LkEdgeData> | EdgeList<LkEdgeData, LkNodeData>;\n items: {node: Array<string | number>; edge: Array<string | number>};\n changes: {entityType: 'node' | 'edge'; input: string | string[] | null; value: any} | undefined;\n animation: boolean;\n}\n\nexport class RxViz {\n private _ogma: Ogma;\n private _store: OgmaStore = new OgmaStore({\n selection: new DummyNodeList() as any,\n items: {node: [], edge: []},\n changes: undefined,\n animation: false\n });\n private _animationThrottle: any;\n\n constructor(ogma: LKOgma) {\n this._ogma = ogma;\n this.listenToSelectionEvents();\n }\n\n public get store(): OgmaStore {\n return this._store;\n }\n\n /**\n * Listen to ogma events and update the state\n */\n public listenToSelectionEvents(): void {\n let count = 0;\n this._ogma.events.on('animate', (e: {duration: number}) => {\n const animationEnd = ++count;\n this._store.dispatch((state) => ({...state, animation: true}));\n clearTimeout(this._animationThrottle);\n this._animationThrottle = setTimeout(() => {\n if (count === animationEnd) {\n this._store.dispatch((state) => ({...state, animation: false}));\n }\n }, e.duration + ANIMATION_DURATION + 100);\n });\n\n this._ogma.events.on('dragStart', () => {\n this._store.dispatch((state) => ({...state, animation: true}));\n });\n\n this._ogma.events.on('dragEnd', () => {\n this._store.dispatch((state) => ({...state, animation: false}));\n });\n\n this._ogma.events.on('addNodes', () => {\n this._store.dispatch(this.storeItems.bind(this));\n });\n this._ogma.events.on('removeNodes', () => {\n this._store.dispatch(this.storeItems.bind(this));\n });\n this._ogma.events.on('addEdges', () => {\n this._store.dispatch(this.storeItems.bind(this));\n });\n this._ogma.events.on('removeEdges', () => {\n this._store.dispatch(this.storeItems.bind(this));\n });\n\n this._ogma.events.on('nodesSelected', () => {\n this._store.dispatch(this.storeNodeSelection.bind(this));\n });\n\n this._ogma.events.on('edgesSelected', () => {\n this._store.dispatch(this.storeEdgeSelection.bind(this));\n });\n\n this._ogma.events.on('nodesUnselected', () => {\n this._store.dispatch(this.storeNodeSelection.bind(this));\n });\n\n this._ogma.events.on('edgesUnselected', () => {\n this._store.dispatch(this.storeEdgeSelection.bind(this));\n });\n\n this._ogma.events.on('updateNodeData', (evt) => {\n if (evt !== undefined) {\n evt.changes.forEach((change) => {\n this._store.dispatch((state) => ({\n ...state,\n changes: {\n entityType: 'node',\n input: change.property,\n value: change.newValues[0]\n }\n }));\n });\n }\n });\n\n this._ogma.events.on('updateEdgeData', (evt) => {\n if (evt !== undefined) {\n evt.changes.forEach((change) => {\n this._store.dispatch((state) => ({\n ...state,\n changes: {\n entityType: 'edge',\n input: change.property,\n value: change.newValues[0]\n }\n }));\n });\n }\n });\n }\n\n /**\n * Store new items in state\n */\n private storeItems(state: OgmaState): OgmaState {\n return {\n ...state,\n items: {\n node: this._ogma.getNodes().getId(),\n edge: this._ogma.getEdges().getId()\n }\n };\n }\n\n /**\n * Store new node selection in state\n */\n private storeNodeSelection(state: OgmaState): OgmaState {\n return {\n ...state,\n selection: this._ogma.getSelectedNodes()\n };\n }\n\n /**\n * store new edge selection in state\n */\n private storeEdgeSelection(state: OgmaState): OgmaState {\n return {\n ...state,\n selection: this._ogma.getSelectedEdges()\n };\n }\n}\n\nexport class DummyNodeList {\n public size = 0;\n public isNode = true;\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EntityType, LkEdgeData, LkNodeData } from '@linkurious/rest-client';
|
|
2
|
-
import { Edge, Node } from 'ogma';
|
|
2
|
+
import { Edge, Node } from '@linkurious/ogma';
|
|
3
3
|
import { OgmaState } from './reactive';
|
|
4
4
|
export declare type SelectionState = 'selection' | 'multiSelection' | 'noSelection';
|
|
5
5
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectors.js","sourceRoot":"","sources":["../../../src/ogma/features/selectors.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,uDAA2E;AAO3E;;GAEG;AACU,QAAA,gBAAgB,GAAG,UAAC,KAAgB;IAC/C,OAAQ,KAAK,CAAC,SAAkC,CAAC,IAAI,CAAC;AACxD,CAAC,CAAC;AAEF;;GAEG;AACU,QAAA,iBAAiB,GAAG,UAAC,KAAgB;IAChD,QAAS,KAAK,CAAC,SAAkC,CAAC,IAAI,EAAE;QACtD,KAAK,CAAC;YACJ,OAAO,WAAW,CAAC;QAErB,KAAK,CAAC;YACJ,OAAO,aAAa,CAAC;QAEvB;YACE,OAAO,gBAAgB,CAAC;KAC3B;AACH,CAAC,CAAC;AAEF;;GAEG;AACU,QAAA,kBAAkB,GAAG,UAAC,KAAgB;IACjD,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE;QAC9B,OAAO,SAAS,CAAC;KAClB;IACD,OAAQ,KAAK,CAAC,SAAkC,CAAC,MAAM,CAAC,CAAC,CAAC,wBAAU,CAAC,IAAI,CAAC,CAAC,CAAC,wBAAU,CAAC,IAAI,CAAC;AAC9F,CAAC,CAAC;AAEF;;GAEG;AACU,QAAA,gBAAgB,GAAG,UAC9B,KAAgB;IAEhB,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACzE,CAAC,CAAC;AAEF;;GAEG;AACU,QAAA,qBAAqB,GAAG,UAAC,KAAgB;IACpD,IAAM,aAAa,GAAG,wBAAgB,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,aAAa,KAAK,SAAS,EAAE;QAC/B,OAAO,SAAS,CAAC;KAClB;IACD,IAAI,aAAa,CAAC,MAAM,EAAE;QACxB,OAAO,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;KAC5C;SAAM;QACL,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;KACxC;AACH,CAAC,CAAC;AAEF;;GAEG;AACU,QAAA,sBAAsB,GAAG,UAAC,KAAgB;IACrD,IAAM,aAAa,GAAG,wBAAgB,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,aAAa,KAAK,SAAS,EAAE;QAC/B,OAAO,SAAS,CAAC;KAClB;IACD,IAAI,aAAa,CAAC,MAAM,EAAE;QACxB,OAAO,MAAM,CAAC;KACf;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF;;GAEG;AACU,QAAA,sBAAsB,GAAG,UAAC,KAAgB;IACrD,IAAM,aAAa,GAAG,wBAAgB,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,aAAa,KAAK,SAAS,EAAE;QAC/B,IAAM,YAAU,GAAG,aAAa,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC;QACtD,OAAO,MAAM,CAAC,IAAI,CAAC,YAAU,CAAC,CAAC,GAAG,CAAC,UAAC,OAAO;YACzC,OAAO;gBACL,GAAG,EAAE,OAAO;gBACZ,KAAK,EAAE,YAAU,CAAC,OAAO,CAAC;aAC3B,CAAC;QACJ,CAAC,CAAC,CAAC;KACJ;IACD,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF;;GAEG;AACU,QAAA,sBAAsB,GAAG,UAAC,KAAgB;IACrD,OAAO,8BAAsB,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AAClD,CAAC,CAAC","sourcesContent":["'use strict';\n\nimport {EntityType, LkEdgeData, LkNodeData} from '@linkurious/rest-client';\nimport {Edge, ItemList, Node} from 'ogma';\n\nimport {OgmaState} from './reactive';\n\nexport type SelectionState = 'selection' | 'multiSelection' | 'noSelection';\n\n/**\n * Return the current size of the selection\n */\nexport const getSelectionSize = (state: OgmaState): number => {\n return (state.selection as ItemList<LkNodeData>).size;\n};\n\n/**\n * Return the current state of the selection\n */\nexport const getSelectionState = (state: OgmaState): SelectionState => {\n switch ((state.selection as ItemList<LkNodeData>).size) {\n case 1:\n return 'selection';\n\n case 0:\n return 'noSelection';\n\n default:\n return 'multiSelection';\n }\n};\n\n/**\n * Get the entityType of the current selection\n */\nexport const getSelectionEntity = (state: OgmaState): EntityType | undefined => {\n if (state.selection.size === 0) {\n return undefined;\n }\n return (state.selection as ItemList<LkNodeData>).isNode ? EntityType.NODE : EntityType.EDGE;\n};\n\n/**\n * Return the item selection if there's only one item selected\n */\nexport const getUniqSelection = (\n state: OgmaState\n): Node<LkNodeData, LkEdgeData> | Edge<LkEdgeData, LkNodeData> | undefined => {\n return state.selection.size === 1 ? state.selection.get(0) : undefined;\n};\n\n/**\n * Return the types of the current selection (if only one item is selected)\n */\nexport const getUniqSelectionTypes = (state: OgmaState): Array<string> | undefined => {\n const uniqSelection = getUniqSelection(state);\n if (uniqSelection === undefined) {\n return undefined;\n }\n if (uniqSelection.isNode) {\n return uniqSelection.getData('categories');\n } else {\n return [uniqSelection.getData('type')];\n }\n};\n\n/**\n * Return the entityType of the current selection if there's only one item selected\n */\nexport const getUniqSelectionEntity = (state: OgmaState): 'node' | 'edge' | undefined => {\n const uniqSelection = getUniqSelection(state);\n if (uniqSelection === undefined) {\n return undefined;\n }\n if (uniqSelection.isNode) {\n return 'node';\n }\n return 'edge';\n};\n\n/**\n * Return the properties of the current selection if there's only one item selected\n */\nexport const getSelectionProperties = (state: OgmaState): Array<{key: string; value: any}> => {\n const uniqSelection = getUniqSelection(state);\n if (uniqSelection !== undefined) {\n const properties = uniqSelection.getData().properties;\n return Object.keys(properties).map((propKey) => {\n return {\n key: propKey,\n value: properties[propKey]\n };\n });\n }\n return [];\n};\n\n/**\n * Return true if the current selection has properties\n */\nexport const hasSelectionProperties = (state: OgmaState): boolean => {\n return getSelectionProperties(state).length > 0;\n};\n"]}
|
|
1
|
+
{"version":3,"file":"selectors.js","sourceRoot":"","sources":["../../../src/ogma/features/selectors.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,uDAA2E;AAO3E;;GAEG;AACU,QAAA,gBAAgB,GAAG,UAAC,KAAgB;IAC/C,OAAQ,KAAK,CAAC,SAAkC,CAAC,IAAI,CAAC;AACxD,CAAC,CAAC;AAEF;;GAEG;AACU,QAAA,iBAAiB,GAAG,UAAC,KAAgB;IAChD,QAAS,KAAK,CAAC,SAAkC,CAAC,IAAI,EAAE;QACtD,KAAK,CAAC;YACJ,OAAO,WAAW,CAAC;QAErB,KAAK,CAAC;YACJ,OAAO,aAAa,CAAC;QAEvB;YACE,OAAO,gBAAgB,CAAC;KAC3B;AACH,CAAC,CAAC;AAEF;;GAEG;AACU,QAAA,kBAAkB,GAAG,UAAC,KAAgB;IACjD,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE;QAC9B,OAAO,SAAS,CAAC;KAClB;IACD,OAAQ,KAAK,CAAC,SAAkC,CAAC,MAAM,CAAC,CAAC,CAAC,wBAAU,CAAC,IAAI,CAAC,CAAC,CAAC,wBAAU,CAAC,IAAI,CAAC;AAC9F,CAAC,CAAC;AAEF;;GAEG;AACU,QAAA,gBAAgB,GAAG,UAC9B,KAAgB;IAEhB,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACzE,CAAC,CAAC;AAEF;;GAEG;AACU,QAAA,qBAAqB,GAAG,UAAC,KAAgB;IACpD,IAAM,aAAa,GAAG,wBAAgB,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,aAAa,KAAK,SAAS,EAAE;QAC/B,OAAO,SAAS,CAAC;KAClB;IACD,IAAI,aAAa,CAAC,MAAM,EAAE;QACxB,OAAO,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;KAC5C;SAAM;QACL,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;KACxC;AACH,CAAC,CAAC;AAEF;;GAEG;AACU,QAAA,sBAAsB,GAAG,UAAC,KAAgB;IACrD,IAAM,aAAa,GAAG,wBAAgB,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,aAAa,KAAK,SAAS,EAAE;QAC/B,OAAO,SAAS,CAAC;KAClB;IACD,IAAI,aAAa,CAAC,MAAM,EAAE;QACxB,OAAO,MAAM,CAAC;KACf;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF;;GAEG;AACU,QAAA,sBAAsB,GAAG,UAAC,KAAgB;IACrD,IAAM,aAAa,GAAG,wBAAgB,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,aAAa,KAAK,SAAS,EAAE;QAC/B,IAAM,YAAU,GAAG,aAAa,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC;QACtD,OAAO,MAAM,CAAC,IAAI,CAAC,YAAU,CAAC,CAAC,GAAG,CAAC,UAAC,OAAO;YACzC,OAAO;gBACL,GAAG,EAAE,OAAO;gBACZ,KAAK,EAAE,YAAU,CAAC,OAAO,CAAC;aAC3B,CAAC;QACJ,CAAC,CAAC,CAAC;KACJ;IACD,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF;;GAEG;AACU,QAAA,sBAAsB,GAAG,UAAC,KAAgB;IACrD,OAAO,8BAAsB,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AAClD,CAAC,CAAC","sourcesContent":["'use strict';\n\nimport {EntityType, LkEdgeData, LkNodeData} from '@linkurious/rest-client';\nimport {Edge, ItemList, Node} from '@linkurious/ogma';\n\nimport {OgmaState} from './reactive';\n\nexport type SelectionState = 'selection' | 'multiSelection' | 'noSelection';\n\n/**\n * Return the current size of the selection\n */\nexport const getSelectionSize = (state: OgmaState): number => {\n return (state.selection as ItemList<LkNodeData>).size;\n};\n\n/**\n * Return the current state of the selection\n */\nexport const getSelectionState = (state: OgmaState): SelectionState => {\n switch ((state.selection as ItemList<LkNodeData>).size) {\n case 1:\n return 'selection';\n\n case 0:\n return 'noSelection';\n\n default:\n return 'multiSelection';\n }\n};\n\n/**\n * Get the entityType of the current selection\n */\nexport const getSelectionEntity = (state: OgmaState): EntityType | undefined => {\n if (state.selection.size === 0) {\n return undefined;\n }\n return (state.selection as ItemList<LkNodeData>).isNode ? EntityType.NODE : EntityType.EDGE;\n};\n\n/**\n * Return the item selection if there's only one item selected\n */\nexport const getUniqSelection = (\n state: OgmaState\n): Node<LkNodeData, LkEdgeData> | Edge<LkEdgeData, LkNodeData> | undefined => {\n return state.selection.size === 1 ? state.selection.get(0) : undefined;\n};\n\n/**\n * Return the types of the current selection (if only one item is selected)\n */\nexport const getUniqSelectionTypes = (state: OgmaState): Array<string> | undefined => {\n const uniqSelection = getUniqSelection(state);\n if (uniqSelection === undefined) {\n return undefined;\n }\n if (uniqSelection.isNode) {\n return uniqSelection.getData('categories');\n } else {\n return [uniqSelection.getData('type')];\n }\n};\n\n/**\n * Return the entityType of the current selection if there's only one item selected\n */\nexport const getUniqSelectionEntity = (state: OgmaState): 'node' | 'edge' | undefined => {\n const uniqSelection = getUniqSelection(state);\n if (uniqSelection === undefined) {\n return undefined;\n }\n if (uniqSelection.isNode) {\n return 'node';\n }\n return 'edge';\n};\n\n/**\n * Return the properties of the current selection if there's only one item selected\n */\nexport const getSelectionProperties = (state: OgmaState): Array<{key: string; value: any}> => {\n const uniqSelection = getUniqSelection(state);\n if (uniqSelection !== undefined) {\n const properties = uniqSelection.getData().properties;\n return Object.keys(properties).map((propKey) => {\n return {\n key: propKey,\n value: properties[propKey]\n };\n });\n }\n return [];\n};\n\n/**\n * Return true if the current selection has properties\n */\nexport const hasSelectionProperties = (state: OgmaState): boolean => {\n return getSelectionProperties(state).length > 0;\n};\n"]}
|
|
@@ -296,27 +296,17 @@ var StylesViz = /** @class */ (function () {
|
|
|
296
296
|
nodeAttributes: {
|
|
297
297
|
text: {
|
|
298
298
|
minVisibleSize: 0,
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
maxLineLength: textWrappingLength ? 30 : 0,
|
|
302
|
-
scale: 0.3,
|
|
303
|
-
margin: 0,
|
|
304
|
-
scaling: true,
|
|
305
|
-
tip: false
|
|
299
|
+
size: 8,
|
|
300
|
+
maxLineLength: textWrappingLength ? 30 : 0
|
|
306
301
|
},
|
|
307
302
|
halo: null
|
|
308
303
|
},
|
|
309
304
|
edgeAttributes: {
|
|
310
305
|
text: {
|
|
311
|
-
scaling: false,
|
|
312
|
-
font: 'arial',
|
|
313
|
-
backgroundColor: null,
|
|
314
306
|
minVisibleSize: 0,
|
|
315
|
-
size:
|
|
316
|
-
margin: 0
|
|
307
|
+
size: 8
|
|
317
308
|
},
|
|
318
|
-
halo: null
|
|
319
|
-
shape: 'tapered'
|
|
309
|
+
halo: null
|
|
320
310
|
}
|
|
321
311
|
});
|
|
322
312
|
}
|
|
@@ -413,8 +403,8 @@ var StylesViz = /** @class */ (function () {
|
|
|
413
403
|
self: { attributes: ['layoutable'] }
|
|
414
404
|
}
|
|
415
405
|
});
|
|
416
|
-
this._ogma.events.
|
|
417
|
-
this._ogma.events.
|
|
406
|
+
this._ogma.events.on('addNodes', function (nodesEvent) { return nodesEvent.nodes.addClass('degreeIndicator'); });
|
|
407
|
+
this._ogma.events.on('addNodes', function (nodesEvent) { return nodesEvent.nodes.addClass('pinnedIndicator'); });
|
|
418
408
|
};
|
|
419
409
|
/**
|
|
420
410
|
* Delete the rule to display badges
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/ogma/features/styles.ts"],"names":[],"mappings":"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","sourcesContent":["'use strict';\n\nimport * as o from 'ogma';\nimport {Edge, EdgeAttributesValue, NodeAttributesValue, StyleClass, StyleRule} from 'ogma';\nimport {\n GenericObject,\n IEdgeStyle,\n INodeStyle,\n IStyleRule,\n LkEdgeData,\n LkNodeData,\n OgmaEdgeShape,\n OgmaNodeShape,\n TextOptions\n} from '@linkurious/rest-client';\n\nimport {\n BASE_GREY,\n EdgeAttributes,\n LKOgma,\n NodeAttributes,\n OgmaTools,\n StyleRule as LKStyleRule,\n StyleRules,\n StyleType\n} from '../..';\nimport {Tools} from '../../tools/tools';\n\nexport interface StylesConfig {\n nodeColorStyleRules: Array<LKStyleRule>;\n nodeIconStyleRules: Array<LKStyleRule>;\n nodeSizeStyleRules: Array<LKStyleRule>;\n nodeShapeStyleRules?: Array<LKStyleRule>;\n edgeColorStyleRules: Array<LKStyleRule>;\n edgeWidthStyleRules: Array<LKStyleRule>;\n edgeShapeStyleRules?: Array<LKStyleRule>;\n}\n\nconst HOVERED_SELECTED_NODE_STYLE: NodeAttributesValue<LkNodeData, LkEdgeData> = {\n text: {\n style: 'bold',\n backgroundColor: '#fff',\n minVisibleSize: 0\n },\n outerStroke: {width: 2},\n outline: false\n};\n\nconst HOVERED_SELECTED_EDGE_STYLE: EdgeAttributesValue<LkEdgeData, LkNodeData> = {\n text: {\n style: 'bold',\n backgroundColor: '#fff',\n minVisibleSize: 0\n },\n outline: false\n};\n\nconst NODE_HALO_CONFIGURATION = {\n color: '#FFF',\n width: 7,\n scalingMethod: 'scaled',\n strokeWidth: 0,\n hideNonAdjacentEdges: false\n} as {\n color: '#FFF';\n width: 7;\n strokeWidth: 0;\n};\n\nconst EDGE_HALO_CONFIGURATION = {\n color: '#FFF',\n scalingMethod: 'scaled',\n width: 4\n} as {\n color: '#FFF';\n width: 4;\n};\n\nconst DEFAULT_OGMA_FONT = \"'roboto', sans-serif\";\nconst DARK_FONT_COLOR = '#000';\nconst CLEAR_FONT_COLOR = '#FFF';\nconst ITEM_DEFAULT_COLOR = '#7f7f7f';\nexport const FILTER_OPACITY = 0.2;\n\nexport class StylesViz {\n private _ogma: LKOgma;\n private _exportClass!: StyleClass;\n private _nodeDefaultStylesRules!: StyleRule<LkNodeData, LkEdgeData>;\n // @ts-ignore\n private _nodeDefaultHaloRules!: StyleRule<LkNodeData, LkEdgeData>;\n private _edgeDefaultStylesRules!: StyleRule<LkNodeData, LkEdgeData>;\n // @ts-ignore\n private _edgeDefaultHaloRules!: StyleRule<LkNodeData, LkEdgeData>;\n\n private _nodeAttributes: NodeAttributes = new NodeAttributes({});\n private _edgeAttributes: EdgeAttributes = new EdgeAttributes({});\n\n private _ogmaNodeColor!: StyleRule;\n private _ogmaNodeIcon!: StyleRule;\n private _ogmaNodeSize!: StyleRule;\n private _ogmaNodeShape!: StyleRule;\n private _ogmaEdgeColor!: StyleRule;\n private _ogmaEdgeWidth!: StyleRule;\n private _ogmaEdgeShape!: StyleRule;\n private _defaultConfiguration: {\n node: {\n nodeRadius?: number;\n shape?: OgmaNodeShape;\n text?: TextOptions & {\n nodePosition?: 'right' | 'left' | 'top' | 'bottom' | 'center';\n };\n };\n edge: {\n edgeWidth?: number;\n shape?: OgmaEdgeShape;\n text?: TextOptions;\n };\n };\n\n constructor(\n ogma: LKOgma,\n configuration: {\n node: {\n nodeRadius?: number;\n shape?: OgmaNodeShape;\n text?: TextOptions & {\n nodePosition?: 'right' | 'left' | 'top' | 'bottom' | 'center';\n };\n };\n edge: {\n edgeWidth?: number;\n shape?: OgmaEdgeShape;\n text?: TextOptions;\n };\n }\n ) {\n this._ogma = ogma;\n this._defaultConfiguration = configuration;\n }\n\n /**\n * Set nodes default styles based on the configuration\n */\n public setNodesDefaultStyles(): void {\n // setting selection and hover attributes\n this._ogma.styles.setHoveredNodeAttributes(HOVERED_SELECTED_NODE_STYLE);\n this._ogma.styles.setSelectedNodeAttributes(HOVERED_SELECTED_NODE_STYLE);\n // setting default styles\n this._nodeDefaultStylesRules = this._ogma.styles.addRule({\n nodeAttributes: {\n text: {\n minVisibleSize:\n this._defaultConfiguration.node.text !== undefined &&\n this._defaultConfiguration.node.text.minVisibleSize\n ? this._defaultConfiguration.node.text.minVisibleSize\n : 12,\n maxLineLength:\n this._defaultConfiguration.node.text !== undefined &&\n this._defaultConfiguration.node.text.maxLineLength !== undefined\n ? this._defaultConfiguration.node.text.maxLineLength\n : 30,\n position:\n this._defaultConfiguration.node.text !== undefined &&\n this._defaultConfiguration.node.text.nodePosition !== undefined\n ? this._defaultConfiguration.node.text.nodePosition\n : 'bottom',\n backgroundColor:\n this._defaultConfiguration.node.text !== undefined &&\n this._defaultConfiguration.node.text.backgroundColor !== undefined\n ? this._defaultConfiguration.node.text.backgroundColor\n : 'null',\n font:\n this._defaultConfiguration.node.text !== undefined &&\n this._defaultConfiguration.node.text.font !== undefined\n ? this._defaultConfiguration.node.text.font\n : \"'roboto', sans-serif\",\n color:\n this._defaultConfiguration.node.text !== undefined &&\n this._defaultConfiguration.node.text.color !== undefined\n ? this._defaultConfiguration.node.text.color\n : 'black',\n size:\n this._defaultConfiguration.node.text !== undefined &&\n this._defaultConfiguration.node.text.size !== undefined\n ? this._defaultConfiguration.node.text.size\n : 14,\n margin: 5\n },\n radius: this.defaultNodeRadius(this._defaultConfiguration.node),\n icon: {\n minVisibleSize: 15\n },\n color: ITEM_DEFAULT_COLOR,\n shape:\n this._defaultConfiguration.node.shape !== undefined\n ? this._defaultConfiguration.node.shape\n : ('circle' as OgmaNodeShape),\n innerStroke: {\n width: 3\n },\n outline: false\n }\n });\n }\n\n /**\n * Set edges default styles based on the configuration\n */\n public setEdgesDefaultStyles(): void {\n // setting selection and hover attributes\n this._ogma.styles.setHoveredEdgeAttributes(HOVERED_SELECTED_EDGE_STYLE);\n this._ogma.styles.setSelectedEdgeAttributes(HOVERED_SELECTED_EDGE_STYLE);\n // setting default styles\n this._edgeDefaultStylesRules = this._ogma.styles.addRule({\n edgeAttributes: {\n text: {\n minVisibleSize:\n this._defaultConfiguration.edge.text !== undefined &&\n this._defaultConfiguration.edge.text.minVisibleSize\n ? this._defaultConfiguration.edge.text.minVisibleSize\n : 3,\n maxLineLength:\n this._defaultConfiguration.edge.text !== undefined &&\n this._defaultConfiguration.edge.text.maxLineLength !== undefined\n ? this._defaultConfiguration.edge.text.maxLineLength\n : 30,\n backgroundColor:\n this._defaultConfiguration.edge.text !== undefined &&\n this._defaultConfiguration.edge.text.backgroundColor !== undefined\n ? this._defaultConfiguration.edge.text.backgroundColor\n : null,\n font:\n this._defaultConfiguration.edge.text !== undefined &&\n this._defaultConfiguration.edge.text.font !== undefined\n ? this._defaultConfiguration.edge.text.font\n : \"'roboto', sans-serif\",\n color:\n this._defaultConfiguration.edge !== undefined &&\n this._defaultConfiguration.edge.text !== undefined &&\n this._defaultConfiguration.edge.text.color !== undefined\n ? this._defaultConfiguration.edge.text.color\n : 'black',\n size:\n this._defaultConfiguration.edge.text !== undefined &&\n this._defaultConfiguration.edge.text.size !== undefined\n ? this._defaultConfiguration.edge.text.size\n : 14\n },\n width: this.defaultEdgeWidth(this._defaultConfiguration.edge),\n shape:\n this._defaultConfiguration.edge.shape !== undefined\n ? this._defaultConfiguration.edge.shape\n : 'arrow',\n color: ITEM_DEFAULT_COLOR\n }\n });\n }\n\n /**\n * Set nodes default styles based on the configuration\n */\n public setNodesDefaultHalo(): void {\n // setting default halo style\n this._nodeDefaultHaloRules = this._ogma.styles.addRule({\n nodeSelector: (node) => node && !node.hasClass('filtered'),\n nodeAttributes: {\n halo: (node) => {\n if (\n node !== undefined &&\n (node.isSelected() ||\n node.getAdjacentNodes({}).isSelected().includes(true) ||\n node.getAdjacentEdges().isSelected().includes(true))\n ) {\n return {\n ...NODE_HALO_CONFIGURATION,\n scalingMethod: this._ogma.geo.enabled() ? 'fixed' : 'scaled'\n };\n }\n return null;\n }\n },\n // recalculate the rule *only* when itself or adjacent\n // elements change their selection status\n nodeDependencies: {\n self: {\n selection: true\n },\n adjacentNodes: {\n selection: true\n },\n adjacentEdges: {\n selection: true\n }\n }\n });\n }\n\n /**\n * Set edges default styles based on the configuration\n */\n public setEdgesDefaultHalo(): void {\n // setting default halo styles\n this._edgeDefaultHaloRules = this._ogma.styles.addRule({\n edgeSelector: (edge: Edge) =>\n edge && edge.getSource() && edge.getTarget() && !edge.hasClass('filtered'),\n edgeAttributes: {\n halo: (edge) => {\n if (\n edge &&\n (edge.isSelected() || edge.getSource().isSelected() || edge.getTarget().isSelected())\n ) {\n return {\n ...EDGE_HALO_CONFIGURATION,\n scalingMethod: this._ogma.geo.enabled() ? 'fixed' : 'scaled'\n };\n }\n return null;\n }\n },\n // this rule will only be invoked when the selection status\n // of the edge or it's extremities is changed\n edgeDependencies: {\n self: {\n selection: true\n },\n extremities: {\n selection: true\n }\n }\n });\n }\n\n /**\n * Return the default node radius set in configuration or 5\n *\n * @returns {number}\n */\n private defaultNodeRadius(styles: any): number {\n return this.defaultStylesHas(styles, ['nodeRadius']) ? styles.nodeRadius : 5;\n }\n\n /**\n * Return the default edge width set in configuration or 1\n *\n * @returns {number}\n */\n private defaultEdgeWidth(styles: any): number {\n return this.defaultStylesHas(styles, ['edgeWidth']) ? styles.edgeWidth : 1;\n }\n\n /**\n * Check if a style property exists in the default styles object\n */\n private defaultStylesHas(styles: GenericObject<unknown>, propertyPath: Array<string>): boolean {\n if (!Tools.isDefined(styles)) {\n return false;\n }\n return Tools.getIn(styles, propertyPath) !== undefined;\n }\n\n /**\n * Set styles for the class \"filtered\"\n */\n public setFilterClass(): void {\n this._ogma.styles.createClass({\n name: 'filtered',\n nodeAttributes: {\n opacity: FILTER_OPACITY,\n layer: -1,\n detectable: false,\n badges: {\n topRight: {\n text: null\n },\n bottomRight: {\n text: null\n }\n },\n text: null,\n color: 'rgb(240, 240, 240)',\n innerStroke: {\n width: 1,\n color: BASE_GREY,\n minVisibleSize: 1\n },\n shape: 'circle',\n image: null,\n icon: null,\n radius: '100%'\n },\n edgeAttributes: {\n opacity: FILTER_OPACITY,\n layer: -1,\n detectable: false,\n text: null,\n color: BASE_GREY,\n shape: 'line',\n width: 0.2\n }\n });\n }\n\n /**\n * Set the class for exported nodes and edges\n */\n public setExportClass(textWrappingLength?: boolean): void {\n if (!this._exportClass) {\n this._exportClass = this._ogma.styles.createClass({\n name: 'exported',\n nodeAttributes: {\n text: {\n minVisibleSize: 0,\n font: 'arial',\n backgroundColor: null,\n maxLineLength: textWrappingLength ? 30 : 0,\n scale: 0.3,\n margin: 0,\n scaling: true,\n tip: false\n },\n halo: null\n },\n edgeAttributes: {\n text: {\n scaling: false,\n font: 'arial',\n backgroundColor: null,\n minVisibleSize: 0,\n size: 3,\n margin: 0\n },\n halo: null,\n shape: 'tapered'\n }\n });\n } else {\n this._exportClass.update({\n nodeAttributes: {\n text: {\n maxLineLength: textWrappingLength ? 30 : 0\n },\n halo: null\n }\n });\n }\n }\n\n /**\n * Set the rule to display badges\n */\n public setBadgeRule() {\n this._ogma.styles.createClass({\n name: 'degreeIndicator',\n nodeAttributes: {\n badges: {\n topRight: (node) => {\n if (node !== undefined) {\n const degree = Tools.getHiddenNeighbors(node.toList());\n const badgeContent = Tools.formatNumber(degree);\n if (degree > 0) {\n const nodeColor = Array.isArray(node.getAttribute('color'))\n ? node.getAttribute('color')![0]\n : node.getAttribute('color');\n const textColor = OgmaTools.isBright(nodeColor as o.Color)\n ? DARK_FONT_COLOR\n : CLEAR_FONT_COLOR;\n const isSupernode = node.getData(['statistics', 'supernode']);\n let content = null;\n if (+badgeContent !== 0) {\n content = isSupernode ? badgeContent + '+' : badgeContent;\n }\n return {\n color: 'inherit',\n minVisibleSize: 20,\n stroke: {\n width: 0,\n color: null\n },\n text: {\n font:\n this._defaultConfiguration.node.text !== undefined &&\n this._defaultConfiguration.node.text.font !== undefined\n ? this._defaultConfiguration.node.text.font\n : DEFAULT_OGMA_FONT,\n scale: 0.4,\n color: textColor,\n content: content\n }\n };\n }\n }\n }\n }\n }\n });\n this._ogma.styles.createClass({\n name: 'pinnedIndicator',\n nodeAttributes: {\n badges: {\n bottomRight: (node) => {\n if (node !== undefined && !node.getAttribute('layoutable')) {\n const nodeColor = Array.isArray(node.getAttribute('color'))\n ? node.getAttribute('color')![0]\n : node.getAttribute('color');\n const textColor = OgmaTools.isBright(nodeColor as o.Color)\n ? DARK_FONT_COLOR\n : CLEAR_FONT_COLOR;\n return {\n color: 'inherit',\n minVisibleSize: 20,\n stroke: {\n width: 0,\n color: null\n },\n text: {\n font: 'FontAwesome',\n scale: 0.4,\n color: textColor,\n content: node.getAttribute('layoutable') ? null : '\\uf08d'\n }\n };\n }\n }\n }\n },\n nodeDependencies: {\n self: {attributes: ['layoutable']}\n }\n });\n this._ogma.events.onNodesAdded((nodesEvent) => nodesEvent!.nodes.addClass('degreeIndicator'));\n this._ogma.events.onNodesAdded((nodesEvent) => nodesEvent!.nodes.addClass('pinnedIndicator'));\n }\n\n /**\n * Delete the rule to display badges\n */\n public deleteBadgeRule() {\n this._ogma.getNodes().removeClasses(['degreeIndicator', 'pinnedIndicator'], 0);\n }\n\n /**\n * set text overlap to true or false\n *\n * @param {boolean} overlap\n */\n public toggleTextOverlap(overlap?: boolean): void {\n this._ogma.setOptions({texts: {preventOverlap: overlap}});\n }\n\n /**\n * refresh nodes and edge rules\n *\n */\n public refreshRules(): void {\n this._nodeDefaultStylesRules.refresh();\n this._edgeDefaultStylesRules.refresh();\n }\n\n /**\n * Create / refresh an ogma rule for node colors\n */\n public refreshNodeColors(colorStyleRules: Array<LKStyleRule>): void {\n if (!Tools.isDefined(this._ogmaNodeColor)) {\n this._nodeAttributes.refresh({color: colorStyleRules});\n this._ogmaNodeColor = this._ogma.styles.addRule({\n nodeAttributes: {\n color: (node: o.Node | undefined) => {\n if (node !== undefined) {\n return this._nodeAttributes.color(node.getData());\n }\n }\n },\n nodeDependencies: {self: {data: true}}\n });\n } else {\n this._nodeAttributes.refresh({color: colorStyleRules});\n this._ogmaNodeColor.refresh();\n // TODO refresh node icons when moving the code from LKE\n // this.refreshIconsColor();\n }\n }\n\n /**\n * Return an array of StyleRules with only the style that need to be applied\n */\n public getStyleRule(\n state: Array<IStyleRule<INodeStyle | IEdgeStyle>>,\n styleType: StyleType\n ): LKStyleRule[] {\n return new StyleRules(state)[styleType];\n }\n\n public initNodeColors(nodeRules: Array<IStyleRule<INodeStyle | IEdgeStyle>>) {\n const nodeColorRules = this.getStyleRule(nodeRules, StyleType.COLOR);\n this.refreshNodeColors(nodeColorRules);\n }\n\n public initNodesIcons(nodeRules: Array<IStyleRule<INodeStyle | IEdgeStyle>>) {\n const nodeIconsRules = this.getStyleRule(nodeRules, StyleType.ICON);\n this.refreshNodeIcons(nodeIconsRules);\n }\n\n public initNodesSizes(nodeRules: Array<IStyleRule<INodeStyle | IEdgeStyle>>) {\n const nodeSizeRules = this.getStyleRule(nodeRules, StyleType.SIZE);\n this.refreshNodeSize(nodeSizeRules);\n }\n\n public initNodesShapes(nodeRules: Array<IStyleRule<INodeStyle | IEdgeStyle>>) {\n const nodeShapesRules = this.getStyleRule(nodeRules, StyleType.SHAPE);\n this.refreshNodeShape(nodeShapesRules);\n }\n\n public initEdgesWidth(edgeRules: Array<IStyleRule<INodeStyle | IEdgeStyle>>) {\n const edgesWidthRules = this.getStyleRule(edgeRules, StyleType.WIDTH);\n this.refreshEdgeWidth(edgesWidthRules);\n }\n\n public initEdgesShape(edgeRules: Array<IStyleRule<INodeStyle | IEdgeStyle>>) {\n const edgesShapeRules = this.getStyleRule(edgeRules, StyleType.SHAPE);\n this.refreshEdgeShape(edgesShapeRules);\n }\n\n public initEdgesColor(edgeRules: Array<IStyleRule<INodeStyle | IEdgeStyle>>) {\n const edgesColorRules = this.getStyleRule(edgeRules, StyleType.COLOR);\n this.refreshEdgeColors(edgesColorRules);\n }\n\n /**\n * Create / refresh an ogma rule for node icons\n *\n * @param {Array<any>} iconStyleRules\n */\n public refreshNodeIcons(iconStyleRules: Array<LKStyleRule>): void {\n if (!Tools.isDefined(this._ogmaNodeIcon)) {\n this._nodeAttributes.refresh({icon: iconStyleRules});\n this._ogmaNodeIcon = this._ogma.styles.addRule({\n nodeAttributes: {\n icon: (node: o.Node | undefined) => {\n if (node !== undefined) {\n return this._nodeAttributes.icon(node.getData()).icon;\n }\n },\n image: (node: o.Node | undefined) => {\n if (node !== undefined) {\n return this._nodeAttributes.icon(node.getData()).image;\n }\n }\n },\n nodeDependencies: {self: {data: true}}\n });\n } else {\n this._nodeAttributes.refresh({icon: iconStyleRules});\n this._ogmaNodeIcon.refresh();\n }\n }\n\n /**\n * Create / refresh an ogma rule for node sizes\n *\n * @param {Array<any>} sizeStyleRules\n */\n public refreshNodeSize(sizeStyleRules: Array<LKStyleRule>): void {\n if (!Tools.isDefined(this._ogmaNodeSize)) {\n this._nodeAttributes.refresh({size: sizeStyleRules});\n this._ogmaNodeSize = this._ogma.styles.addRule({\n nodeAttributes: {\n radius: (node: o.Node | undefined) => {\n if (node !== undefined) {\n return this._nodeAttributes.size(node.getData());\n }\n }\n },\n nodeDependencies: {self: {data: true}}\n });\n } else {\n this._nodeAttributes.refresh({size: sizeStyleRules});\n this._ogmaNodeSize.refresh();\n }\n }\n\n /**\n * Create / refresh an ogma rule for node images\n *\n * @param {Array<any>} shapeStyleRules\n */\n public refreshNodeShape(shapeStyleRules: Array<LKStyleRule>): void {\n if (!Tools.isDefined(this._ogmaNodeShape)) {\n this._nodeAttributes.refresh({shape: shapeStyleRules});\n this._ogmaNodeShape = this._ogma.styles.addRule({\n nodeAttributes: {\n shape: (node: o.Node | undefined) => {\n if (node !== undefined) {\n return this._nodeAttributes.shape(node.getData());\n }\n }\n },\n nodeDependencies: {self: {data: true}}\n });\n } else {\n this._nodeAttributes.refresh({shape: shapeStyleRules});\n this._ogmaNodeShape.refresh();\n }\n }\n\n /**\n * Create / refresh an ogma rule for edge colors\n */\n public refreshEdgeColors(colorStyleRules: Array<LKStyleRule>): void {\n if (!Tools.isDefined(this._ogmaEdgeColor)) {\n this._edgeAttributes.refresh({color: colorStyleRules});\n this._ogmaEdgeColor = this._ogma.styles.addRule({\n edgeAttributes: {\n color: (edge: o.Edge | undefined) => {\n if (edge !== undefined) {\n return this._edgeAttributes.color(edge.getData());\n }\n }\n },\n edgeDependencies: {self: {data: true}}\n });\n } else {\n this._edgeAttributes.refresh({color: colorStyleRules});\n this._ogmaEdgeColor.refresh();\n }\n }\n\n /**\n * Create / refresh an ogma rule for edge width\n *\n * @param {Array<LKStyleRule>} widthStyleRules\n */\n public refreshEdgeWidth(widthStyleRules: Array<LKStyleRule>): void {\n if (!Tools.isDefined(this._ogmaEdgeWidth)) {\n this._edgeAttributes.refresh({width: widthStyleRules});\n this._ogmaEdgeWidth = this._ogma.styles.addRule({\n edgeAttributes: {\n width: (edge: o.Edge | undefined) => {\n if (edge !== undefined) {\n return this._edgeAttributes.width(edge.getData());\n }\n }\n },\n edgeDependencies: {\n self: {data: true}\n }\n });\n } else {\n this._edgeAttributes.refresh({width: widthStyleRules});\n this._ogmaEdgeWidth.refresh();\n }\n }\n\n /**\n * Create / refresh an ogma rule for edge width\n *\n * @param {Array<LKStyleRule>} shapeStyleRules\n */\n public refreshEdgeShape(shapeStyleRules: Array<LKStyleRule>): void {\n if (!Tools.isDefined(this._ogmaEdgeShape)) {\n this._edgeAttributes.refresh({shape: shapeStyleRules});\n this._ogmaEdgeShape = this._ogma.styles.addRule({\n edgeAttributes: {\n shape: (edge: o.Edge | undefined) => {\n if (edge !== undefined) {\n return this._edgeAttributes.shape(edge.getData());\n }\n }\n },\n edgeDependencies: {self: {data: true}}\n });\n } else {\n this._edgeAttributes.refresh({shape: shapeStyleRules});\n this._ogmaEdgeShape.refresh();\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/ogma/features/styles.ts"],"names":[],"mappings":"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","sourcesContent":["'use strict';\n\nimport * as o from '@linkurious/ogma';\nimport {\n Edge,\n EdgeAttributesValue,\n NodeAttributesValue,\n StyleClass,\n StyleRule\n} from '@linkurious/ogma';\nimport {\n GenericObject,\n IEdgeStyle,\n INodeStyle,\n IStyleRule,\n LkEdgeData,\n LkNodeData,\n OgmaEdgeShape,\n OgmaNodeShape,\n TextOptions\n} from '@linkurious/rest-client';\n\nimport {\n BASE_GREY,\n EdgeAttributes,\n LKOgma,\n NodeAttributes,\n OgmaTools,\n StyleRule as LKStyleRule,\n StyleRules,\n StyleType\n} from '../..';\nimport {Tools} from '../../tools/tools';\n\nexport interface StylesConfig {\n nodeColorStyleRules: Array<LKStyleRule>;\n nodeIconStyleRules: Array<LKStyleRule>;\n nodeSizeStyleRules: Array<LKStyleRule>;\n nodeShapeStyleRules?: Array<LKStyleRule>;\n edgeColorStyleRules: Array<LKStyleRule>;\n edgeWidthStyleRules: Array<LKStyleRule>;\n edgeShapeStyleRules?: Array<LKStyleRule>;\n}\n\nconst HOVERED_SELECTED_NODE_STYLE: NodeAttributesValue<LkNodeData, LkEdgeData> = {\n text: {\n style: 'bold',\n backgroundColor: '#fff',\n minVisibleSize: 0\n },\n outerStroke: {width: 2},\n outline: false\n};\n\nconst HOVERED_SELECTED_EDGE_STYLE: EdgeAttributesValue<LkEdgeData, LkNodeData> = {\n text: {\n style: 'bold',\n backgroundColor: '#fff',\n minVisibleSize: 0\n },\n outline: false\n};\n\nconst NODE_HALO_CONFIGURATION = {\n color: '#FFF',\n width: 7,\n scalingMethod: 'scaled',\n strokeWidth: 0,\n hideNonAdjacentEdges: false\n} as {\n color: '#FFF';\n width: 7;\n strokeWidth: 0;\n};\n\nconst EDGE_HALO_CONFIGURATION = {\n color: '#FFF',\n scalingMethod: 'scaled',\n width: 4\n} as {\n color: '#FFF';\n width: 4;\n};\n\nconst DEFAULT_OGMA_FONT = \"'roboto', sans-serif\";\nconst DARK_FONT_COLOR = '#000';\nconst CLEAR_FONT_COLOR = '#FFF';\nconst ITEM_DEFAULT_COLOR = '#7f7f7f';\nexport const FILTER_OPACITY = 0.2;\n\nexport class StylesViz {\n private _ogma: LKOgma;\n private _exportClass!: StyleClass;\n private _nodeDefaultStylesRules!: StyleRule<LkNodeData, LkEdgeData>;\n // @ts-ignore\n private _nodeDefaultHaloRules!: StyleRule<LkNodeData, LkEdgeData>;\n private _edgeDefaultStylesRules!: StyleRule<LkNodeData, LkEdgeData>;\n // @ts-ignore\n private _edgeDefaultHaloRules!: StyleRule<LkNodeData, LkEdgeData>;\n\n private _nodeAttributes: NodeAttributes = new NodeAttributes({});\n private _edgeAttributes: EdgeAttributes = new EdgeAttributes({});\n\n private _ogmaNodeColor!: StyleRule;\n private _ogmaNodeIcon!: StyleRule;\n private _ogmaNodeSize!: StyleRule;\n private _ogmaNodeShape!: StyleRule;\n private _ogmaEdgeColor!: StyleRule;\n private _ogmaEdgeWidth!: StyleRule;\n private _ogmaEdgeShape!: StyleRule;\n private _defaultConfiguration: {\n node: {\n nodeRadius?: number;\n shape?: OgmaNodeShape;\n text?: TextOptions & {\n nodePosition?: 'right' | 'left' | 'top' | 'bottom' | 'center';\n };\n };\n edge: {\n edgeWidth?: number;\n shape?: OgmaEdgeShape;\n text?: TextOptions;\n };\n };\n\n constructor(\n ogma: LKOgma,\n configuration: {\n node: {\n nodeRadius?: number;\n shape?: OgmaNodeShape;\n text?: TextOptions & {\n nodePosition?: 'right' | 'left' | 'top' | 'bottom' | 'center';\n };\n };\n edge: {\n edgeWidth?: number;\n shape?: OgmaEdgeShape;\n text?: TextOptions;\n };\n }\n ) {\n this._ogma = ogma;\n this._defaultConfiguration = configuration;\n }\n\n /**\n * Set nodes default styles based on the configuration\n */\n public setNodesDefaultStyles(): void {\n // setting selection and hover attributes\n this._ogma.styles.setHoveredNodeAttributes(HOVERED_SELECTED_NODE_STYLE);\n this._ogma.styles.setSelectedNodeAttributes(HOVERED_SELECTED_NODE_STYLE);\n // setting default styles\n this._nodeDefaultStylesRules = this._ogma.styles.addRule({\n nodeAttributes: {\n text: {\n minVisibleSize:\n this._defaultConfiguration.node.text !== undefined &&\n this._defaultConfiguration.node.text.minVisibleSize\n ? this._defaultConfiguration.node.text.minVisibleSize\n : 12,\n maxLineLength:\n this._defaultConfiguration.node.text !== undefined &&\n this._defaultConfiguration.node.text.maxLineLength !== undefined\n ? this._defaultConfiguration.node.text.maxLineLength\n : 30,\n position:\n this._defaultConfiguration.node.text !== undefined &&\n this._defaultConfiguration.node.text.nodePosition !== undefined\n ? this._defaultConfiguration.node.text.nodePosition\n : 'bottom',\n backgroundColor:\n this._defaultConfiguration.node.text !== undefined &&\n this._defaultConfiguration.node.text.backgroundColor !== undefined\n ? this._defaultConfiguration.node.text.backgroundColor\n : 'null',\n font:\n this._defaultConfiguration.node.text !== undefined &&\n this._defaultConfiguration.node.text.font !== undefined\n ? this._defaultConfiguration.node.text.font\n : \"'roboto', sans-serif\",\n color:\n this._defaultConfiguration.node.text !== undefined &&\n this._defaultConfiguration.node.text.color !== undefined\n ? this._defaultConfiguration.node.text.color\n : 'black',\n size:\n this._defaultConfiguration.node.text !== undefined &&\n this._defaultConfiguration.node.text.size !== undefined\n ? this._defaultConfiguration.node.text.size\n : 14,\n margin: 5\n },\n radius: this.defaultNodeRadius(this._defaultConfiguration.node),\n icon: {\n minVisibleSize: 15\n },\n color: ITEM_DEFAULT_COLOR,\n shape:\n this._defaultConfiguration.node.shape !== undefined\n ? this._defaultConfiguration.node.shape\n : ('circle' as OgmaNodeShape),\n innerStroke: {\n width: 3\n },\n outline: false\n }\n });\n }\n\n /**\n * Set edges default styles based on the configuration\n */\n public setEdgesDefaultStyles(): void {\n // setting selection and hover attributes\n this._ogma.styles.setHoveredEdgeAttributes(HOVERED_SELECTED_EDGE_STYLE);\n this._ogma.styles.setSelectedEdgeAttributes(HOVERED_SELECTED_EDGE_STYLE);\n // setting default styles\n this._edgeDefaultStylesRules = this._ogma.styles.addRule({\n edgeAttributes: {\n text: {\n minVisibleSize:\n this._defaultConfiguration.edge.text !== undefined &&\n this._defaultConfiguration.edge.text.minVisibleSize\n ? this._defaultConfiguration.edge.text.minVisibleSize\n : 3,\n maxLineLength:\n this._defaultConfiguration.edge.text !== undefined &&\n this._defaultConfiguration.edge.text.maxLineLength !== undefined\n ? this._defaultConfiguration.edge.text.maxLineLength\n : 30,\n backgroundColor:\n this._defaultConfiguration.edge.text !== undefined &&\n this._defaultConfiguration.edge.text.backgroundColor !== undefined\n ? this._defaultConfiguration.edge.text.backgroundColor\n : null,\n font:\n this._defaultConfiguration.edge.text !== undefined &&\n this._defaultConfiguration.edge.text.font !== undefined\n ? this._defaultConfiguration.edge.text.font\n : \"'roboto', sans-serif\",\n color:\n this._defaultConfiguration.edge !== undefined &&\n this._defaultConfiguration.edge.text !== undefined &&\n this._defaultConfiguration.edge.text.color !== undefined\n ? this._defaultConfiguration.edge.text.color\n : 'black',\n size:\n this._defaultConfiguration.edge.text !== undefined &&\n this._defaultConfiguration.edge.text.size !== undefined\n ? this._defaultConfiguration.edge.text.size\n : 14\n },\n width: this.defaultEdgeWidth(this._defaultConfiguration.edge),\n shape:\n this._defaultConfiguration.edge.shape !== undefined\n ? this._defaultConfiguration.edge.shape\n : 'arrow',\n color: ITEM_DEFAULT_COLOR\n }\n });\n }\n\n /**\n * Set nodes default styles based on the configuration\n */\n public setNodesDefaultHalo(): void {\n // setting default halo style\n this._nodeDefaultHaloRules = this._ogma.styles.addRule({\n nodeSelector: (node) => node && !node.hasClass('filtered'),\n nodeAttributes: {\n halo: (node) => {\n if (\n node !== undefined &&\n (node.isSelected() ||\n node.getAdjacentNodes({}).isSelected().includes(true) ||\n node.getAdjacentEdges().isSelected().includes(true))\n ) {\n return {\n ...NODE_HALO_CONFIGURATION,\n scalingMethod: this._ogma.geo.enabled() ? 'fixed' : 'scaled'\n };\n }\n return null;\n }\n },\n // recalculate the rule *only* when itself or adjacent\n // elements change their selection status\n nodeDependencies: {\n self: {\n selection: true\n },\n adjacentNodes: {\n selection: true\n },\n adjacentEdges: {\n selection: true\n }\n }\n });\n }\n\n /**\n * Set edges default styles based on the configuration\n */\n public setEdgesDefaultHalo(): void {\n // setting default halo styles\n this._edgeDefaultHaloRules = this._ogma.styles.addRule({\n edgeSelector: (edge: Edge) =>\n edge && edge.getSource() && edge.getTarget() && !edge.hasClass('filtered'),\n edgeAttributes: {\n halo: (edge) => {\n if (\n edge &&\n (edge.isSelected() || edge.getSource().isSelected() || edge.getTarget().isSelected())\n ) {\n return {\n ...EDGE_HALO_CONFIGURATION,\n scalingMethod: this._ogma.geo.enabled() ? 'fixed' : 'scaled'\n };\n }\n return null;\n }\n },\n // this rule will only be invoked when the selection status\n // of the edge or it's extremities is changed\n edgeDependencies: {\n self: {\n selection: true\n },\n extremities: {\n selection: true\n }\n }\n });\n }\n\n /**\n * Return the default node radius set in configuration or 5\n *\n * @returns {number}\n */\n private defaultNodeRadius(styles: any): number {\n return this.defaultStylesHas(styles, ['nodeRadius']) ? styles.nodeRadius : 5;\n }\n\n /**\n * Return the default edge width set in configuration or 1\n *\n * @returns {number}\n */\n private defaultEdgeWidth(styles: any): number {\n return this.defaultStylesHas(styles, ['edgeWidth']) ? styles.edgeWidth : 1;\n }\n\n /**\n * Check if a style property exists in the default styles object\n */\n private defaultStylesHas(styles: GenericObject<unknown>, propertyPath: Array<string>): boolean {\n if (!Tools.isDefined(styles)) {\n return false;\n }\n return Tools.getIn(styles, propertyPath) !== undefined;\n }\n\n /**\n * Set styles for the class \"filtered\"\n */\n public setFilterClass(): void {\n this._ogma.styles.createClass({\n name: 'filtered',\n nodeAttributes: {\n opacity: FILTER_OPACITY,\n layer: -1,\n detectable: false,\n badges: {\n topRight: {\n text: null\n },\n bottomRight: {\n text: null\n }\n },\n text: null,\n color: 'rgb(240, 240, 240)',\n innerStroke: {\n width: 1,\n color: BASE_GREY,\n minVisibleSize: 1\n },\n shape: 'circle',\n image: null,\n icon: null,\n radius: '100%'\n },\n edgeAttributes: {\n opacity: FILTER_OPACITY,\n layer: -1,\n detectable: false,\n text: null,\n color: BASE_GREY,\n shape: 'line',\n width: 0.2\n }\n });\n }\n\n /**\n * Set the class for exported nodes and edges\n */\n public setExportClass(textWrappingLength?: boolean): void {\n if (!this._exportClass) {\n this._exportClass = this._ogma.styles.createClass({\n name: 'exported',\n nodeAttributes: {\n text: {\n minVisibleSize: 0,\n size: 8,\n maxLineLength: textWrappingLength ? 30 : 0\n },\n halo: null\n },\n edgeAttributes: {\n text: {\n minVisibleSize: 0,\n size: 8\n },\n halo: null\n }\n });\n } else {\n this._exportClass.update({\n nodeAttributes: {\n text: {\n maxLineLength: textWrappingLength ? 30 : 0\n },\n halo: null\n }\n });\n }\n }\n\n /**\n * Set the rule to display badges\n */\n public setBadgeRule() {\n this._ogma.styles.createClass({\n name: 'degreeIndicator',\n nodeAttributes: {\n badges: {\n topRight: (node) => {\n if (node !== undefined) {\n const degree = Tools.getHiddenNeighbors(node.toList());\n const badgeContent = Tools.formatNumber(degree);\n if (degree > 0) {\n const nodeColor = Array.isArray(node.getAttribute('color'))\n ? node.getAttribute('color')![0]\n : node.getAttribute('color');\n const textColor = OgmaTools.isBright(nodeColor as o.Color)\n ? DARK_FONT_COLOR\n : CLEAR_FONT_COLOR;\n const isSupernode = node.getData(['statistics', 'supernode']);\n let content = null;\n if (+badgeContent !== 0) {\n content = isSupernode ? badgeContent + '+' : badgeContent;\n }\n return {\n color: 'inherit',\n minVisibleSize: 20,\n stroke: {\n width: 0,\n color: null\n },\n text: {\n font:\n this._defaultConfiguration.node.text !== undefined &&\n this._defaultConfiguration.node.text.font !== undefined\n ? this._defaultConfiguration.node.text.font\n : DEFAULT_OGMA_FONT,\n scale: 0.4,\n color: textColor,\n content: content\n }\n };\n }\n }\n }\n }\n }\n });\n this._ogma.styles.createClass({\n name: 'pinnedIndicator',\n nodeAttributes: {\n badges: {\n bottomRight: (node) => {\n if (node !== undefined && !node.getAttribute('layoutable')) {\n const nodeColor = Array.isArray(node.getAttribute('color'))\n ? node.getAttribute('color')![0]\n : node.getAttribute('color');\n const textColor = OgmaTools.isBright(nodeColor as o.Color)\n ? DARK_FONT_COLOR\n : CLEAR_FONT_COLOR;\n return {\n color: 'inherit',\n minVisibleSize: 20,\n stroke: {\n width: 0,\n color: null\n },\n text: {\n font: 'FontAwesome',\n scale: 0.4,\n color: textColor,\n content: node.getAttribute('layoutable') ? null : '\\uf08d'\n }\n };\n }\n }\n }\n },\n nodeDependencies: {\n self: {attributes: ['layoutable']}\n }\n });\n this._ogma.events.on('addNodes', (nodesEvent) => nodesEvent.nodes.addClass('degreeIndicator'));\n this._ogma.events.on('addNodes', (nodesEvent) => nodesEvent.nodes.addClass('pinnedIndicator'));\n }\n\n /**\n * Delete the rule to display badges\n */\n public deleteBadgeRule() {\n this._ogma.getNodes().removeClasses(['degreeIndicator', 'pinnedIndicator'], 0);\n }\n\n /**\n * set text overlap to true or false\n *\n * @param {boolean} overlap\n */\n public toggleTextOverlap(overlap?: boolean): void {\n this._ogma.setOptions({texts: {preventOverlap: overlap}});\n }\n\n /**\n * refresh nodes and edge rules\n *\n */\n public refreshRules(): void {\n this._nodeDefaultStylesRules.refresh();\n this._edgeDefaultStylesRules.refresh();\n }\n\n /**\n * Create / refresh an ogma rule for node colors\n */\n public refreshNodeColors(colorStyleRules: Array<LKStyleRule>): void {\n if (!Tools.isDefined(this._ogmaNodeColor)) {\n this._nodeAttributes.refresh({color: colorStyleRules});\n this._ogmaNodeColor = this._ogma.styles.addRule({\n nodeAttributes: {\n color: (node: o.Node | undefined) => {\n if (node !== undefined) {\n return this._nodeAttributes.color(node.getData());\n }\n }\n },\n nodeDependencies: {self: {data: true}}\n });\n } else {\n this._nodeAttributes.refresh({color: colorStyleRules});\n this._ogmaNodeColor.refresh();\n // TODO refresh node icons when moving the code from LKE\n // this.refreshIconsColor();\n }\n }\n\n /**\n * Return an array of StyleRules with only the style that need to be applied\n */\n public getStyleRule(\n state: Array<IStyleRule<INodeStyle | IEdgeStyle>>,\n styleType: StyleType\n ): LKStyleRule[] {\n return new StyleRules(state)[styleType];\n }\n\n public initNodeColors(nodeRules: Array<IStyleRule<INodeStyle | IEdgeStyle>>) {\n const nodeColorRules = this.getStyleRule(nodeRules, StyleType.COLOR);\n this.refreshNodeColors(nodeColorRules);\n }\n\n public initNodesIcons(nodeRules: Array<IStyleRule<INodeStyle | IEdgeStyle>>) {\n const nodeIconsRules = this.getStyleRule(nodeRules, StyleType.ICON);\n this.refreshNodeIcons(nodeIconsRules);\n }\n\n public initNodesSizes(nodeRules: Array<IStyleRule<INodeStyle | IEdgeStyle>>) {\n const nodeSizeRules = this.getStyleRule(nodeRules, StyleType.SIZE);\n this.refreshNodeSize(nodeSizeRules);\n }\n\n public initNodesShapes(nodeRules: Array<IStyleRule<INodeStyle | IEdgeStyle>>) {\n const nodeShapesRules = this.getStyleRule(nodeRules, StyleType.SHAPE);\n this.refreshNodeShape(nodeShapesRules);\n }\n\n public initEdgesWidth(edgeRules: Array<IStyleRule<INodeStyle | IEdgeStyle>>) {\n const edgesWidthRules = this.getStyleRule(edgeRules, StyleType.WIDTH);\n this.refreshEdgeWidth(edgesWidthRules);\n }\n\n public initEdgesShape(edgeRules: Array<IStyleRule<INodeStyle | IEdgeStyle>>) {\n const edgesShapeRules = this.getStyleRule(edgeRules, StyleType.SHAPE);\n this.refreshEdgeShape(edgesShapeRules);\n }\n\n public initEdgesColor(edgeRules: Array<IStyleRule<INodeStyle | IEdgeStyle>>) {\n const edgesColorRules = this.getStyleRule(edgeRules, StyleType.COLOR);\n this.refreshEdgeColors(edgesColorRules);\n }\n\n /**\n * Create / refresh an ogma rule for node icons\n *\n * @param {Array<any>} iconStyleRules\n */\n public refreshNodeIcons(iconStyleRules: Array<LKStyleRule>): void {\n if (!Tools.isDefined(this._ogmaNodeIcon)) {\n this._nodeAttributes.refresh({icon: iconStyleRules});\n this._ogmaNodeIcon = this._ogma.styles.addRule({\n nodeAttributes: {\n icon: (node: o.Node | undefined) => {\n if (node !== undefined) {\n return this._nodeAttributes.icon(node.getData()).icon;\n }\n },\n image: (node: o.Node | undefined) => {\n if (node !== undefined) {\n return this._nodeAttributes.icon(node.getData()).image;\n }\n }\n },\n nodeDependencies: {self: {data: true}}\n });\n } else {\n this._nodeAttributes.refresh({icon: iconStyleRules});\n this._ogmaNodeIcon.refresh();\n }\n }\n\n /**\n * Create / refresh an ogma rule for node sizes\n *\n * @param {Array<any>} sizeStyleRules\n */\n public refreshNodeSize(sizeStyleRules: Array<LKStyleRule>): void {\n if (!Tools.isDefined(this._ogmaNodeSize)) {\n this._nodeAttributes.refresh({size: sizeStyleRules});\n this._ogmaNodeSize = this._ogma.styles.addRule({\n nodeAttributes: {\n radius: (node: o.Node | undefined) => {\n if (node !== undefined) {\n return this._nodeAttributes.size(node.getData());\n }\n }\n },\n nodeDependencies: {self: {data: true}}\n });\n } else {\n this._nodeAttributes.refresh({size: sizeStyleRules});\n this._ogmaNodeSize.refresh();\n }\n }\n\n /**\n * Create / refresh an ogma rule for node images\n *\n * @param {Array<any>} shapeStyleRules\n */\n public refreshNodeShape(shapeStyleRules: Array<LKStyleRule>): void {\n if (!Tools.isDefined(this._ogmaNodeShape)) {\n this._nodeAttributes.refresh({shape: shapeStyleRules});\n this._ogmaNodeShape = this._ogma.styles.addRule({\n nodeAttributes: {\n shape: (node: o.Node | undefined) => {\n if (node !== undefined) {\n return this._nodeAttributes.shape(node.getData());\n }\n }\n },\n nodeDependencies: {self: {data: true}}\n });\n } else {\n this._nodeAttributes.refresh({shape: shapeStyleRules});\n this._ogmaNodeShape.refresh();\n }\n }\n\n /**\n * Create / refresh an ogma rule for edge colors\n */\n public refreshEdgeColors(colorStyleRules: Array<LKStyleRule>): void {\n if (!Tools.isDefined(this._ogmaEdgeColor)) {\n this._edgeAttributes.refresh({color: colorStyleRules});\n this._ogmaEdgeColor = this._ogma.styles.addRule({\n edgeAttributes: {\n color: (edge: o.Edge | undefined) => {\n if (edge !== undefined) {\n return this._edgeAttributes.color(edge.getData());\n }\n }\n },\n edgeDependencies: {self: {data: true}}\n });\n } else {\n this._edgeAttributes.refresh({color: colorStyleRules});\n this._ogmaEdgeColor.refresh();\n }\n }\n\n /**\n * Create / refresh an ogma rule for edge width\n *\n * @param {Array<LKStyleRule>} widthStyleRules\n */\n public refreshEdgeWidth(widthStyleRules: Array<LKStyleRule>): void {\n if (!Tools.isDefined(this._ogmaEdgeWidth)) {\n this._edgeAttributes.refresh({width: widthStyleRules});\n this._ogmaEdgeWidth = this._ogma.styles.addRule({\n edgeAttributes: {\n width: (edge: o.Edge | undefined) => {\n if (edge !== undefined) {\n return this._edgeAttributes.width(edge.getData());\n }\n }\n },\n edgeDependencies: {\n self: {data: true}\n }\n });\n } else {\n this._edgeAttributes.refresh({width: widthStyleRules});\n this._ogmaEdgeWidth.refresh();\n }\n }\n\n /**\n * Create / refresh an ogma rule for edge width\n *\n * @param {Array<LKStyleRule>} shapeStyleRules\n */\n public refreshEdgeShape(shapeStyleRules: Array<LKStyleRule>): void {\n if (!Tools.isDefined(this._ogmaEdgeShape)) {\n this._edgeAttributes.refresh({shape: shapeStyleRules});\n this._ogmaEdgeShape = this._ogma.styles.addRule({\n edgeAttributes: {\n shape: (edge: o.Edge | undefined) => {\n if (edge !== undefined) {\n return this._edgeAttributes.shape(edge.getData());\n }\n }\n },\n edgeDependencies: {self: {data: true}}\n });\n } else {\n this._edgeAttributes.refresh({shape: shapeStyleRules});\n this._ogmaEdgeShape.refresh();\n }\n }\n}\n"]}
|