@knotx/plugins-base-render 0.4.9 → 0.4.11

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.cjs CHANGED
@@ -8,7 +8,9 @@ const rxjs = require('rxjs');
8
8
 
9
9
  var __create = Object.create;
10
10
  var __defProp = Object.defineProperty;
11
+ var __defProps = Object.defineProperties;
11
12
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
13
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
12
14
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
13
15
  var __hasOwnProp = Object.prototype.hasOwnProperty;
14
16
  var __propIsEnum = Object.prototype.propertyIsEnumerable;
@@ -28,6 +30,7 @@ var __spreadValues = (a, b) => {
28
30
  }
29
31
  return a;
30
32
  };
33
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
31
34
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
32
35
  var __decoratorStart = (base) => {
33
36
  var _a2;
@@ -71,39 +74,49 @@ var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use
71
74
  var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
72
75
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
73
76
  var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
74
- var _edgesLayer_dec, _nodesLayer_dec, _overrideEdgeRenderProps_dec, _overrideNodeRenderProps_dec, _registerNodeLevelGetter_dec, _defaultEdgeType_dec, _defaultNodeType_dec, _draftNode_dec, _getEdge_dec, _getNode_dec, _edgesVersion_dec, _nodesVersion_dec, _getEdgeRenderer_dec, _getNodeRenderer_dec, _edges_dec, _nodes_dec, _a, _init;
75
- const _BaseRender = class _BaseRender extends (_a = core.BasePlugin, _nodes_dec = [decorators.inject.nodes()], _edges_dec = [decorators.inject.edges()], _getNodeRenderer_dec = [decorators.inject.getNodeRenderer()], _getEdgeRenderer_dec = [decorators.inject.getEdgeRenderer()], _nodesVersion_dec = [decorators.inject((injectable) => injectable.nodesManager.patchVersion$.value + injectable.nodesManager.mapVersion$.value)], _edgesVersion_dec = [decorators.inject((injectable) => injectable.edgesManager.patchVersion$.value + injectable.edgesManager.mapVersion$.value + injectable.nodesManager.patchVersion$.value + injectable.nodesManager.mapVersion$.value)], _getNode_dec = [decorators.inject.getNode()], _getEdge_dec = [decorators.inject.getEdge()], _draftNode_dec = [decorators.inject((injectable, context) => {
77
+ var _edgesLayer_dec, _nodesLayer_dec, _forceRerender_dec, _overrideEdgeRenderProps_dec, _overrideNodeRenderProps_dec, _registerNodeLevelGetter_dec, _defaultEdgeType_dec, _defaultNodeType_dec, _draftNode_dec, _getEdge_dec, _getNode_dec, _edgesVersion_dec, _nodesVersion_dec, _getEdgeRenderer_dec, _getNodeRenderer_dec, _edges_dec, _nodes_dec, _edgeForceRerenderVersion_dec, _nodeForceRerenderVersion_dec, _a, _init;
78
+ const _BaseRender = class _BaseRender extends (_a = core.BasePlugin, _nodeForceRerenderVersion_dec = [decorators.observable()], _edgeForceRerenderVersion_dec = [decorators.observable()], _nodes_dec = [decorators.inject.nodes()], _edges_dec = [decorators.inject.edges()], _getNodeRenderer_dec = [decorators.inject.getNodeRenderer()], _getEdgeRenderer_dec = [decorators.inject.getEdgeRenderer()], _nodesVersion_dec = [decorators.inject((injectable) => injectable.nodesManager.patchVersion$.value + injectable.nodesManager.mapVersion$.value)], _edgesVersion_dec = [decorators.inject((injectable) => injectable.edgesManager.patchVersion$.value + injectable.edgesManager.mapVersion$.value + injectable.nodesManager.patchVersion$.value + injectable.nodesManager.mapVersion$.value)], _getNode_dec = [decorators.inject.getNode()], _getEdge_dec = [decorators.inject.getEdge()], _draftNode_dec = [decorators.inject((injectable, context) => {
76
79
  var _a2, _b;
77
80
  return ((_b = (_a2 = injectable.nodesManager.currentDraftDataMap$) == null ? void 0 : _a2.value) == null ? void 0 : _b.get(context.node)) || void 0;
78
- })], _defaultNodeType_dec = [decorators.nodeType("default")], _defaultEdgeType_dec = [decorators.edgeType("default")], _registerNodeLevelGetter_dec = [decorators.register("registerNodeLevelGetter")], _overrideNodeRenderProps_dec = [decorators.register("overrideNodeRenderProps")], _overrideEdgeRenderProps_dec = [decorators.register("overrideEdgeRenderProps")], _nodesLayer_dec = [decorators.layer(core.Layer.Nodes)], _edgesLayer_dec = [decorators.layer(core.Layer.Edges)], _a) {
81
+ })], _defaultNodeType_dec = [decorators.nodeType("default")], _defaultEdgeType_dec = [decorators.edgeType("default")], _registerNodeLevelGetter_dec = [decorators.register("registerNodeLevelGetter")], _overrideNodeRenderProps_dec = [decorators.register("overrideNodeRenderProps")], _overrideEdgeRenderProps_dec = [decorators.register("overrideEdgeRenderProps")], _forceRerender_dec = [decorators.register("forceRerender")], _nodesLayer_dec = [decorators.layer(core.Layer.Nodes)], _edgesLayer_dec = [decorators.layer(core.Layer.Edges)], _a) {
79
82
  constructor() {
80
83
  super(...arguments);
81
84
  __runInitializers(_init, 5, this);
82
85
  __publicField(this, "name", "baseRender");
83
- __publicField(this, "nodes", __runInitializers(_init, 8, this, [])), __runInitializers(_init, 11, this);
84
- __publicField(this, "edges", __runInitializers(_init, 12, this, [])), __runInitializers(_init, 15, this);
85
- __publicField(this, "getNodeRenderer", __runInitializers(_init, 16, this)), __runInitializers(_init, 19, this);
86
- __publicField(this, "getEdgeRenderer", __runInitializers(_init, 20, this)), __runInitializers(_init, 23, this);
87
- __publicField(this, "nodesVersion", __runInitializers(_init, 24, this)), __runInitializers(_init, 27, this);
88
- __publicField(this, "edgesVersion", __runInitializers(_init, 28, this)), __runInitializers(_init, 31, this);
89
- __publicField(this, "getNode", __runInitializers(_init, 32, this)), __runInitializers(_init, 35, this);
90
- __publicField(this, "getEdge", __runInitializers(_init, 36, this)), __runInitializers(_init, 39, this);
91
- __publicField(this, "draftNode", __runInitializers(_init, 40, this)), __runInitializers(_init, 43, this);
86
+ __publicField(this, "nodeForceRerenderVersion", __runInitializers(_init, 8, this, 0)), __runInitializers(_init, 11, this);
87
+ __publicField(this, "edgeForceRerenderVersion", __runInitializers(_init, 12, this, 0)), __runInitializers(_init, 15, this);
88
+ __publicField(this, "nodes", __runInitializers(_init, 16, this, [])), __runInitializers(_init, 19, this);
89
+ __publicField(this, "edges", __runInitializers(_init, 20, this, [])), __runInitializers(_init, 23, this);
90
+ __publicField(this, "getNodeRenderer", __runInitializers(_init, 24, this)), __runInitializers(_init, 27, this);
91
+ __publicField(this, "getEdgeRenderer", __runInitializers(_init, 28, this)), __runInitializers(_init, 31, this);
92
+ __publicField(this, "nodesVersion", __runInitializers(_init, 32, this)), __runInitializers(_init, 35, this);
93
+ __publicField(this, "edgesVersion", __runInitializers(_init, 36, this)), __runInitializers(_init, 39, this);
94
+ __publicField(this, "getNode", __runInitializers(_init, 40, this)), __runInitializers(_init, 43, this);
95
+ __publicField(this, "getEdge", __runInitializers(_init, 44, this)), __runInitializers(_init, 47, this);
96
+ __publicField(this, "draftNode", __runInitializers(_init, 48, this)), __runInitializers(_init, 51, this);
92
97
  __publicField(this, "nodeLevelGetter", new rxjs.BehaviorSubject([]));
93
- __publicField(this, "defaultNodeType", __runInitializers(_init, 44, this, (props) => props.node.id)), __runInitializers(_init, 47, this);
94
- __publicField(this, "defaultEdgeType", __runInitializers(_init, 48, this, render.StraightEdge)), __runInitializers(_init, 51, this);
95
- __publicField(this, "registerNodeLevelGetter", __runInitializers(_init, 52, this, (getter) => {
98
+ __publicField(this, "defaultNodeType", __runInitializers(_init, 52, this, (props) => props.node.id)), __runInitializers(_init, 55, this);
99
+ __publicField(this, "defaultEdgeType", __runInitializers(_init, 56, this, render.StraightEdge)), __runInitializers(_init, 59, this);
100
+ __publicField(this, "registerNodeLevelGetter", __runInitializers(_init, 60, this, (getter) => {
96
101
  this.nodeLevelGetter.next([...this.nodeLevelGetter.value, getter]);
97
102
  return () => {
98
103
  this.nodeLevelGetter.next(this.nodeLevelGetter.value.filter((g) => g !== getter));
99
104
  };
100
- })), __runInitializers(_init, 55, this);
101
- __publicField(this, "overrideNodeRenderProps", __runInitializers(_init, 56, this, (fn) => {
105
+ })), __runInitializers(_init, 63, this);
106
+ __publicField(this, "overrideNodeRenderProps", __runInitializers(_init, 64, this, (fn) => {
102
107
  this.nodeRenderProps = __spreadValues(__spreadValues({}, this.nodeRenderProps), fn(this.nodeRenderProps));
103
- })), __runInitializers(_init, 59, this);
104
- __publicField(this, "overrideEdgeRenderProps", __runInitializers(_init, 60, this, (fn) => {
108
+ })), __runInitializers(_init, 67, this);
109
+ __publicField(this, "overrideEdgeRenderProps", __runInitializers(_init, 68, this, (fn) => {
105
110
  this.edgeRenderProps = __spreadValues(__spreadValues({}, this.edgeRenderProps), fn(this.edgeRenderProps));
106
- })), __runInitializers(_init, 63, this);
111
+ })), __runInitializers(_init, 71, this);
112
+ __publicField(this, "forceRerender", __runInitializers(_init, 72, this, ({ node = true, edge = true }) => {
113
+ if (node) {
114
+ this.nodeForceRerenderVersion++;
115
+ }
116
+ if (edge) {
117
+ this.edgeForceRerenderVersion++;
118
+ }
119
+ })), __runInitializers(_init, 75, this);
107
120
  __publicField(this, "nodeRenderProps", {
108
121
  useNode: (id) => {
109
122
  const draftNode = core.use(() => this.draftNode, { node: id });
@@ -137,15 +150,23 @@ const _BaseRender = class _BaseRender extends (_a = core.BasePlugin, _nodes_dec
137
150
  });
138
151
  }
139
152
  nodesLayer() {
140
- return _BaseRender.DEFAULT_NODES_RENDERER(this.nodeRenderProps);
153
+ const renderVersion = core.use(() => this.nodeForceRerenderVersion);
154
+ return _BaseRender.DEFAULT_NODES_RENDERER(__spreadProps(__spreadValues({}, this.nodeRenderProps), {
155
+ renderVersion
156
+ }));
141
157
  }
142
158
  edgesLayer() {
143
- return _BaseRender.DEFAULT_EDGES_RENDERER(this.edgeRenderProps);
159
+ const renderVersion = core.use(() => this.edgeForceRerenderVersion);
160
+ return _BaseRender.DEFAULT_EDGES_RENDERER(__spreadProps(__spreadValues({}, this.edgeRenderProps), {
161
+ renderVersion
162
+ }));
144
163
  }
145
164
  };
146
165
  _init = __decoratorStart(_a);
147
166
  __decorateElement(_init, 1, "nodesLayer", _nodesLayer_dec, _BaseRender);
148
167
  __decorateElement(_init, 1, "edgesLayer", _edgesLayer_dec, _BaseRender);
168
+ __decorateElement(_init, 5, "nodeForceRerenderVersion", _nodeForceRerenderVersion_dec, _BaseRender);
169
+ __decorateElement(_init, 5, "edgeForceRerenderVersion", _edgeForceRerenderVersion_dec, _BaseRender);
149
170
  __decorateElement(_init, 5, "nodes", _nodes_dec, _BaseRender);
150
171
  __decorateElement(_init, 5, "edges", _edges_dec, _BaseRender);
151
172
  __decorateElement(_init, 5, "getNodeRenderer", _getNodeRenderer_dec, _BaseRender);
@@ -160,9 +181,11 @@ __decorateElement(_init, 5, "defaultEdgeType", _defaultEdgeType_dec, _BaseRender
160
181
  __decorateElement(_init, 5, "registerNodeLevelGetter", _registerNodeLevelGetter_dec, _BaseRender);
161
182
  __decorateElement(_init, 5, "overrideNodeRenderProps", _overrideNodeRenderProps_dec, _BaseRender);
162
183
  __decorateElement(_init, 5, "overrideEdgeRenderProps", _overrideEdgeRenderProps_dec, _BaseRender);
184
+ __decorateElement(_init, 5, "forceRerender", _forceRerender_dec, _BaseRender);
163
185
  __decoratorMetadata(_init, _BaseRender);
164
186
  __publicField(_BaseRender, "DEFAULT_NODE_WRAPPER", ({
165
187
  id,
188
+ renderVersion,
166
189
  useNode,
167
190
  getNodeRenderer,
168
191
  getNodePosition,
@@ -188,7 +211,7 @@ __publicField(_BaseRender, "DEFAULT_NODE_WRAPPER", ({
188
211
  zIndex: getNodeLevel(node)
189
212
  },
190
213
  "data-node-id": node.id,
191
- children: /* @__PURE__ */ jsxRuntime.jsx(Renderer, { node })
214
+ children: /* @__PURE__ */ jsxRuntime.jsx(Renderer, { renderVersion, node })
192
215
  },
193
216
  node.id
194
217
  );
@@ -200,7 +223,8 @@ __publicField(_BaseRender, "DEFAULT_NODES_RENDERER", ({
200
223
  getNodePosition,
201
224
  getNodeMeasured,
202
225
  getNodeLevel,
203
- getNodeWrapper
226
+ getNodeWrapper,
227
+ renderVersion
204
228
  }) => {
205
229
  const nodes = useNodes();
206
230
  const NodeWrapper = getNodeWrapper();
@@ -209,6 +233,7 @@ __publicField(_BaseRender, "DEFAULT_NODES_RENDERER", ({
209
233
  NodeWrapper,
210
234
  {
211
235
  id: data.id,
236
+ renderVersion,
212
237
  useNode,
213
238
  getNodeRenderer,
214
239
  getNodePosition,
@@ -255,6 +280,7 @@ __publicField(_BaseRender, "EDGE_END_POINT_POSITION_CALCULATOR", (x, y, width, h
255
280
  });
256
281
  __publicField(_BaseRender, "DEFAULT_EDGE_WRAPPER", ({
257
282
  id,
283
+ renderVersion,
258
284
  useEdge,
259
285
  useNode,
260
286
  getEdgeRenderer
@@ -288,6 +314,7 @@ __publicField(_BaseRender, "DEFAULT_EDGE_WRAPPER", ({
288
314
  return /* @__PURE__ */ jsxRuntime.jsx(
289
315
  EdgeRenderer,
290
316
  {
317
+ renderVersion,
291
318
  edge,
292
319
  sourceX,
293
320
  sourceY,
@@ -302,7 +329,8 @@ __publicField(_BaseRender, "DEFAULT_EDGES_RENDERER", ({
302
329
  useEdges,
303
330
  useNode,
304
331
  getEdgeRenderer,
305
- getEdgeWrapper
332
+ getEdgeWrapper,
333
+ renderVersion
306
334
  }) => {
307
335
  const edges = useEdges();
308
336
  const EdgeWrapper = getEdgeWrapper();
@@ -311,6 +339,7 @@ __publicField(_BaseRender, "DEFAULT_EDGES_RENDERER", ({
311
339
  EdgeWrapper,
312
340
  {
313
341
  id: data.id,
342
+ renderVersion,
314
343
  useEdge,
315
344
  useNode,
316
345
  getEdgeRenderer
package/dist/index.d.cts CHANGED
@@ -8,11 +8,16 @@ declare module '@knotx/core' {
8
8
  registerNodeLevelGetter: (getter: (node: Node) => number | undefined) => (() => void);
9
9
  overrideNodeRenderProps: (fn: (props: BaseRenderNodesWrapperProps) => Partial<BaseRenderNodesWrapperProps>) => void;
10
10
  overrideEdgeRenderProps: (fn: (props: BaseRenderEdgesWrapperProps) => Partial<BaseRenderEdgesWrapperProps>) => void;
11
+ forceRerender: (params: {
12
+ node?: boolean;
13
+ edge?: boolean;
14
+ }) => void;
11
15
  };
12
16
  }
13
17
  }
14
18
  interface BaseRenderNodeWrapperProps {
15
19
  id: string;
20
+ renderVersion?: number;
16
21
  useNode: (id: string) => Node | undefined;
17
22
  getNodeRenderer: (type?: string) => NodeRenderType;
18
23
  getNodePosition: (node: Node) => NodePosition;
@@ -25,6 +30,7 @@ interface BaseRenderNodesWrapperProps extends Omit<BaseRenderNodeWrapperProps, '
25
30
  }
26
31
  interface BaseRenderEdgeWrapperProps {
27
32
  id: string;
33
+ renderVersion?: number;
28
34
  useEdge: (id: string) => Edge | undefined;
29
35
  useNode: (id: string) => Node | undefined;
30
36
  getEdgeRenderer: (type?: string) => EdgeRender;
@@ -35,6 +41,8 @@ interface BaseRenderEdgesWrapperProps extends Omit<BaseRenderEdgeWrapperProps, '
35
41
  }
36
42
  declare class BaseRender extends BasePlugin<'baseRender'> {
37
43
  name: "baseRender";
44
+ nodeForceRerenderVersion: number;
45
+ edgeForceRerenderVersion: number;
38
46
  private nodes;
39
47
  private edges;
40
48
  private getNodeRenderer;
@@ -50,6 +58,10 @@ declare class BaseRender extends BasePlugin<'baseRender'> {
50
58
  registerNodeLevelGetter: (getter: (node: Node) => number | undefined) => (() => void);
51
59
  overrideNodeRenderProps: (fn: (props: BaseRenderNodesWrapperProps) => Partial<BaseRenderNodesWrapperProps>) => void;
52
60
  overrideEdgeRenderProps: (fn: (props: BaseRenderEdgesWrapperProps) => Partial<BaseRenderEdgesWrapperProps>) => void;
61
+ forceRerender: ({ node, edge }: {
62
+ node?: boolean;
63
+ edge?: boolean;
64
+ }) => void;
53
65
  nodeRenderProps: {
54
66
  useNode: (id: string) => Node<_knotx_core.IRecord> | undefined;
55
67
  useNodes: () => Node<_knotx_core.IRecord>[];
@@ -57,7 +69,7 @@ declare class BaseRender extends BasePlugin<'baseRender'> {
57
69
  getNodePosition: (node: Node) => NodePosition;
58
70
  getNodeMeasured: (node: Node) => NodeMeasured | undefined;
59
71
  getNodeLevel: (node: Node) => number | undefined;
60
- getNodeWrapper: () => ({ id, useNode, getNodeRenderer, getNodePosition, getNodeMeasured, getNodeLevel, }: BaseRenderNodeWrapperProps) => JSX.Element | null;
72
+ getNodeWrapper: () => ({ id, renderVersion, useNode, getNodeRenderer, getNodePosition, getNodeMeasured, getNodeLevel, }: BaseRenderNodeWrapperProps) => JSX.Element | null;
61
73
  };
62
74
  nodesLayer(): JSX.Element[];
63
75
  edgeRenderProps: {
@@ -65,11 +77,11 @@ declare class BaseRender extends BasePlugin<'baseRender'> {
65
77
  useEdges: () => Edge<_knotx_core.IRecord>[];
66
78
  useNode: (id: string) => Node<_knotx_core.IRecord> | undefined;
67
79
  getEdgeRenderer: (type?: string) => EdgeRender<any, any>;
68
- getEdgeWrapper: () => ({ id, useEdge, useNode, getEdgeRenderer, }: BaseRenderEdgeWrapperProps) => JSX.Element | null;
80
+ getEdgeWrapper: () => ({ id, renderVersion, useEdge, useNode, getEdgeRenderer, }: BaseRenderEdgeWrapperProps) => JSX.Element | null;
69
81
  };
70
82
  edgesLayer(): JSX.Element[];
71
- static DEFAULT_NODE_WRAPPER: ({ id, useNode, getNodeRenderer, getNodePosition, getNodeMeasured, getNodeLevel, }: BaseRenderNodeWrapperProps) => JSX.Element | null;
72
- static DEFAULT_NODES_RENDERER: ({ useNode, useNodes, getNodeRenderer, getNodePosition, getNodeMeasured, getNodeLevel, getNodeWrapper, }: BaseRenderNodesWrapperProps) => JSX.Element[];
83
+ static DEFAULT_NODE_WRAPPER: ({ id, renderVersion, useNode, getNodeRenderer, getNodePosition, getNodeMeasured, getNodeLevel, }: BaseRenderNodeWrapperProps) => JSX.Element | null;
84
+ static DEFAULT_NODES_RENDERER: ({ useNode, useNodes, getNodeRenderer, getNodePosition, getNodeMeasured, getNodeLevel, getNodeWrapper, renderVersion, }: BaseRenderNodesWrapperProps) => JSX.Element[];
73
85
  static EDGE_END_POINT_ORIGIN_CALCULATOR: Record<Position, (x: number, y: number, width: number, height: number) => {
74
86
  x: number;
75
87
  y: number;
@@ -78,8 +90,8 @@ declare class BaseRender extends BasePlugin<'baseRender'> {
78
90
  x: number;
79
91
  y: number;
80
92
  };
81
- static DEFAULT_EDGE_WRAPPER: ({ id, useEdge, useNode, getEdgeRenderer, }: BaseRenderEdgeWrapperProps) => JSX.Element | null;
82
- static DEFAULT_EDGES_RENDERER: ({ useEdge, useEdges, useNode, getEdgeRenderer, getEdgeWrapper, }: BaseRenderEdgesWrapperProps) => JSX.Element[];
93
+ static DEFAULT_EDGE_WRAPPER: ({ id, renderVersion, useEdge, useNode, getEdgeRenderer, }: BaseRenderEdgeWrapperProps) => JSX.Element | null;
94
+ static DEFAULT_EDGES_RENDERER: ({ useEdge, useEdges, useNode, getEdgeRenderer, getEdgeWrapper, renderVersion, }: BaseRenderEdgesWrapperProps) => JSX.Element[];
83
95
  }
84
96
 
85
97
  export { BaseRender, type BaseRenderEdgeWrapperProps, type BaseRenderEdgesWrapperProps, type BaseRenderNodeWrapperProps, type BaseRenderNodesWrapperProps };
package/dist/index.d.mts CHANGED
@@ -8,11 +8,16 @@ declare module '@knotx/core' {
8
8
  registerNodeLevelGetter: (getter: (node: Node) => number | undefined) => (() => void);
9
9
  overrideNodeRenderProps: (fn: (props: BaseRenderNodesWrapperProps) => Partial<BaseRenderNodesWrapperProps>) => void;
10
10
  overrideEdgeRenderProps: (fn: (props: BaseRenderEdgesWrapperProps) => Partial<BaseRenderEdgesWrapperProps>) => void;
11
+ forceRerender: (params: {
12
+ node?: boolean;
13
+ edge?: boolean;
14
+ }) => void;
11
15
  };
12
16
  }
13
17
  }
14
18
  interface BaseRenderNodeWrapperProps {
15
19
  id: string;
20
+ renderVersion?: number;
16
21
  useNode: (id: string) => Node | undefined;
17
22
  getNodeRenderer: (type?: string) => NodeRenderType;
18
23
  getNodePosition: (node: Node) => NodePosition;
@@ -25,6 +30,7 @@ interface BaseRenderNodesWrapperProps extends Omit<BaseRenderNodeWrapperProps, '
25
30
  }
26
31
  interface BaseRenderEdgeWrapperProps {
27
32
  id: string;
33
+ renderVersion?: number;
28
34
  useEdge: (id: string) => Edge | undefined;
29
35
  useNode: (id: string) => Node | undefined;
30
36
  getEdgeRenderer: (type?: string) => EdgeRender;
@@ -35,6 +41,8 @@ interface BaseRenderEdgesWrapperProps extends Omit<BaseRenderEdgeWrapperProps, '
35
41
  }
36
42
  declare class BaseRender extends BasePlugin<'baseRender'> {
37
43
  name: "baseRender";
44
+ nodeForceRerenderVersion: number;
45
+ edgeForceRerenderVersion: number;
38
46
  private nodes;
39
47
  private edges;
40
48
  private getNodeRenderer;
@@ -50,6 +58,10 @@ declare class BaseRender extends BasePlugin<'baseRender'> {
50
58
  registerNodeLevelGetter: (getter: (node: Node) => number | undefined) => (() => void);
51
59
  overrideNodeRenderProps: (fn: (props: BaseRenderNodesWrapperProps) => Partial<BaseRenderNodesWrapperProps>) => void;
52
60
  overrideEdgeRenderProps: (fn: (props: BaseRenderEdgesWrapperProps) => Partial<BaseRenderEdgesWrapperProps>) => void;
61
+ forceRerender: ({ node, edge }: {
62
+ node?: boolean;
63
+ edge?: boolean;
64
+ }) => void;
53
65
  nodeRenderProps: {
54
66
  useNode: (id: string) => Node<_knotx_core.IRecord> | undefined;
55
67
  useNodes: () => Node<_knotx_core.IRecord>[];
@@ -57,7 +69,7 @@ declare class BaseRender extends BasePlugin<'baseRender'> {
57
69
  getNodePosition: (node: Node) => NodePosition;
58
70
  getNodeMeasured: (node: Node) => NodeMeasured | undefined;
59
71
  getNodeLevel: (node: Node) => number | undefined;
60
- getNodeWrapper: () => ({ id, useNode, getNodeRenderer, getNodePosition, getNodeMeasured, getNodeLevel, }: BaseRenderNodeWrapperProps) => JSX.Element | null;
72
+ getNodeWrapper: () => ({ id, renderVersion, useNode, getNodeRenderer, getNodePosition, getNodeMeasured, getNodeLevel, }: BaseRenderNodeWrapperProps) => JSX.Element | null;
61
73
  };
62
74
  nodesLayer(): JSX.Element[];
63
75
  edgeRenderProps: {
@@ -65,11 +77,11 @@ declare class BaseRender extends BasePlugin<'baseRender'> {
65
77
  useEdges: () => Edge<_knotx_core.IRecord>[];
66
78
  useNode: (id: string) => Node<_knotx_core.IRecord> | undefined;
67
79
  getEdgeRenderer: (type?: string) => EdgeRender<any, any>;
68
- getEdgeWrapper: () => ({ id, useEdge, useNode, getEdgeRenderer, }: BaseRenderEdgeWrapperProps) => JSX.Element | null;
80
+ getEdgeWrapper: () => ({ id, renderVersion, useEdge, useNode, getEdgeRenderer, }: BaseRenderEdgeWrapperProps) => JSX.Element | null;
69
81
  };
70
82
  edgesLayer(): JSX.Element[];
71
- static DEFAULT_NODE_WRAPPER: ({ id, useNode, getNodeRenderer, getNodePosition, getNodeMeasured, getNodeLevel, }: BaseRenderNodeWrapperProps) => JSX.Element | null;
72
- static DEFAULT_NODES_RENDERER: ({ useNode, useNodes, getNodeRenderer, getNodePosition, getNodeMeasured, getNodeLevel, getNodeWrapper, }: BaseRenderNodesWrapperProps) => JSX.Element[];
83
+ static DEFAULT_NODE_WRAPPER: ({ id, renderVersion, useNode, getNodeRenderer, getNodePosition, getNodeMeasured, getNodeLevel, }: BaseRenderNodeWrapperProps) => JSX.Element | null;
84
+ static DEFAULT_NODES_RENDERER: ({ useNode, useNodes, getNodeRenderer, getNodePosition, getNodeMeasured, getNodeLevel, getNodeWrapper, renderVersion, }: BaseRenderNodesWrapperProps) => JSX.Element[];
73
85
  static EDGE_END_POINT_ORIGIN_CALCULATOR: Record<Position, (x: number, y: number, width: number, height: number) => {
74
86
  x: number;
75
87
  y: number;
@@ -78,8 +90,8 @@ declare class BaseRender extends BasePlugin<'baseRender'> {
78
90
  x: number;
79
91
  y: number;
80
92
  };
81
- static DEFAULT_EDGE_WRAPPER: ({ id, useEdge, useNode, getEdgeRenderer, }: BaseRenderEdgeWrapperProps) => JSX.Element | null;
82
- static DEFAULT_EDGES_RENDERER: ({ useEdge, useEdges, useNode, getEdgeRenderer, getEdgeWrapper, }: BaseRenderEdgesWrapperProps) => JSX.Element[];
93
+ static DEFAULT_EDGE_WRAPPER: ({ id, renderVersion, useEdge, useNode, getEdgeRenderer, }: BaseRenderEdgeWrapperProps) => JSX.Element | null;
94
+ static DEFAULT_EDGES_RENDERER: ({ useEdge, useEdges, useNode, getEdgeRenderer, getEdgeWrapper, renderVersion, }: BaseRenderEdgesWrapperProps) => JSX.Element[];
83
95
  }
84
96
 
85
97
  export { BaseRender, type BaseRenderEdgeWrapperProps, type BaseRenderEdgesWrapperProps, type BaseRenderNodeWrapperProps, type BaseRenderNodesWrapperProps };
package/dist/index.d.ts CHANGED
@@ -8,11 +8,16 @@ declare module '@knotx/core' {
8
8
  registerNodeLevelGetter: (getter: (node: Node) => number | undefined) => (() => void);
9
9
  overrideNodeRenderProps: (fn: (props: BaseRenderNodesWrapperProps) => Partial<BaseRenderNodesWrapperProps>) => void;
10
10
  overrideEdgeRenderProps: (fn: (props: BaseRenderEdgesWrapperProps) => Partial<BaseRenderEdgesWrapperProps>) => void;
11
+ forceRerender: (params: {
12
+ node?: boolean;
13
+ edge?: boolean;
14
+ }) => void;
11
15
  };
12
16
  }
13
17
  }
14
18
  interface BaseRenderNodeWrapperProps {
15
19
  id: string;
20
+ renderVersion?: number;
16
21
  useNode: (id: string) => Node | undefined;
17
22
  getNodeRenderer: (type?: string) => NodeRenderType;
18
23
  getNodePosition: (node: Node) => NodePosition;
@@ -25,6 +30,7 @@ interface BaseRenderNodesWrapperProps extends Omit<BaseRenderNodeWrapperProps, '
25
30
  }
26
31
  interface BaseRenderEdgeWrapperProps {
27
32
  id: string;
33
+ renderVersion?: number;
28
34
  useEdge: (id: string) => Edge | undefined;
29
35
  useNode: (id: string) => Node | undefined;
30
36
  getEdgeRenderer: (type?: string) => EdgeRender;
@@ -35,6 +41,8 @@ interface BaseRenderEdgesWrapperProps extends Omit<BaseRenderEdgeWrapperProps, '
35
41
  }
36
42
  declare class BaseRender extends BasePlugin<'baseRender'> {
37
43
  name: "baseRender";
44
+ nodeForceRerenderVersion: number;
45
+ edgeForceRerenderVersion: number;
38
46
  private nodes;
39
47
  private edges;
40
48
  private getNodeRenderer;
@@ -50,6 +58,10 @@ declare class BaseRender extends BasePlugin<'baseRender'> {
50
58
  registerNodeLevelGetter: (getter: (node: Node) => number | undefined) => (() => void);
51
59
  overrideNodeRenderProps: (fn: (props: BaseRenderNodesWrapperProps) => Partial<BaseRenderNodesWrapperProps>) => void;
52
60
  overrideEdgeRenderProps: (fn: (props: BaseRenderEdgesWrapperProps) => Partial<BaseRenderEdgesWrapperProps>) => void;
61
+ forceRerender: ({ node, edge }: {
62
+ node?: boolean;
63
+ edge?: boolean;
64
+ }) => void;
53
65
  nodeRenderProps: {
54
66
  useNode: (id: string) => Node<_knotx_core.IRecord> | undefined;
55
67
  useNodes: () => Node<_knotx_core.IRecord>[];
@@ -57,7 +69,7 @@ declare class BaseRender extends BasePlugin<'baseRender'> {
57
69
  getNodePosition: (node: Node) => NodePosition;
58
70
  getNodeMeasured: (node: Node) => NodeMeasured | undefined;
59
71
  getNodeLevel: (node: Node) => number | undefined;
60
- getNodeWrapper: () => ({ id, useNode, getNodeRenderer, getNodePosition, getNodeMeasured, getNodeLevel, }: BaseRenderNodeWrapperProps) => JSX.Element | null;
72
+ getNodeWrapper: () => ({ id, renderVersion, useNode, getNodeRenderer, getNodePosition, getNodeMeasured, getNodeLevel, }: BaseRenderNodeWrapperProps) => JSX.Element | null;
61
73
  };
62
74
  nodesLayer(): JSX.Element[];
63
75
  edgeRenderProps: {
@@ -65,11 +77,11 @@ declare class BaseRender extends BasePlugin<'baseRender'> {
65
77
  useEdges: () => Edge<_knotx_core.IRecord>[];
66
78
  useNode: (id: string) => Node<_knotx_core.IRecord> | undefined;
67
79
  getEdgeRenderer: (type?: string) => EdgeRender<any, any>;
68
- getEdgeWrapper: () => ({ id, useEdge, useNode, getEdgeRenderer, }: BaseRenderEdgeWrapperProps) => JSX.Element | null;
80
+ getEdgeWrapper: () => ({ id, renderVersion, useEdge, useNode, getEdgeRenderer, }: BaseRenderEdgeWrapperProps) => JSX.Element | null;
69
81
  };
70
82
  edgesLayer(): JSX.Element[];
71
- static DEFAULT_NODE_WRAPPER: ({ id, useNode, getNodeRenderer, getNodePosition, getNodeMeasured, getNodeLevel, }: BaseRenderNodeWrapperProps) => JSX.Element | null;
72
- static DEFAULT_NODES_RENDERER: ({ useNode, useNodes, getNodeRenderer, getNodePosition, getNodeMeasured, getNodeLevel, getNodeWrapper, }: BaseRenderNodesWrapperProps) => JSX.Element[];
83
+ static DEFAULT_NODE_WRAPPER: ({ id, renderVersion, useNode, getNodeRenderer, getNodePosition, getNodeMeasured, getNodeLevel, }: BaseRenderNodeWrapperProps) => JSX.Element | null;
84
+ static DEFAULT_NODES_RENDERER: ({ useNode, useNodes, getNodeRenderer, getNodePosition, getNodeMeasured, getNodeLevel, getNodeWrapper, renderVersion, }: BaseRenderNodesWrapperProps) => JSX.Element[];
73
85
  static EDGE_END_POINT_ORIGIN_CALCULATOR: Record<Position, (x: number, y: number, width: number, height: number) => {
74
86
  x: number;
75
87
  y: number;
@@ -78,8 +90,8 @@ declare class BaseRender extends BasePlugin<'baseRender'> {
78
90
  x: number;
79
91
  y: number;
80
92
  };
81
- static DEFAULT_EDGE_WRAPPER: ({ id, useEdge, useNode, getEdgeRenderer, }: BaseRenderEdgeWrapperProps) => JSX.Element | null;
82
- static DEFAULT_EDGES_RENDERER: ({ useEdge, useEdges, useNode, getEdgeRenderer, getEdgeWrapper, }: BaseRenderEdgesWrapperProps) => JSX.Element[];
93
+ static DEFAULT_EDGE_WRAPPER: ({ id, renderVersion, useEdge, useNode, getEdgeRenderer, }: BaseRenderEdgeWrapperProps) => JSX.Element | null;
94
+ static DEFAULT_EDGES_RENDERER: ({ useEdge, useEdges, useNode, getEdgeRenderer, getEdgeWrapper, renderVersion, }: BaseRenderEdgesWrapperProps) => JSX.Element[];
83
95
  }
84
96
 
85
97
  export { BaseRender, type BaseRenderEdgeWrapperProps, type BaseRenderEdgesWrapperProps, type BaseRenderNodeWrapperProps, type BaseRenderNodesWrapperProps };
package/dist/index.js CHANGED
@@ -1,12 +1,14 @@
1
1
  import { jsx } from '@knotx/jsx/jsx-runtime';
2
- import { Layer, BasePlugin, use, bem } from '@knotx/core';
3
- import { inject, nodeType, edgeType, register, layer } from '@knotx/decorators';
2
+ import { Layer, use, BasePlugin, bem } from '@knotx/core';
3
+ import { observable, inject, nodeType, edgeType, register, layer } from '@knotx/decorators';
4
4
  import { StraightEdge } from '@knotx/render';
5
5
  import { BehaviorSubject } from 'rxjs';
6
6
 
7
7
  var __create = Object.create;
8
8
  var __defProp = Object.defineProperty;
9
+ var __defProps = Object.defineProperties;
9
10
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
11
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
10
12
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
11
13
  var __hasOwnProp = Object.prototype.hasOwnProperty;
12
14
  var __propIsEnum = Object.prototype.propertyIsEnumerable;
@@ -26,6 +28,7 @@ var __spreadValues = (a, b) => {
26
28
  }
27
29
  return a;
28
30
  };
31
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
29
32
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
30
33
  var __decoratorStart = (base) => {
31
34
  var _a2;
@@ -69,39 +72,49 @@ var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use
69
72
  var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
70
73
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
71
74
  var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
72
- var _edgesLayer_dec, _nodesLayer_dec, _overrideEdgeRenderProps_dec, _overrideNodeRenderProps_dec, _registerNodeLevelGetter_dec, _defaultEdgeType_dec, _defaultNodeType_dec, _draftNode_dec, _getEdge_dec, _getNode_dec, _edgesVersion_dec, _nodesVersion_dec, _getEdgeRenderer_dec, _getNodeRenderer_dec, _edges_dec, _nodes_dec, _a, _init;
73
- const _BaseRender = class _BaseRender extends (_a = BasePlugin, _nodes_dec = [inject.nodes()], _edges_dec = [inject.edges()], _getNodeRenderer_dec = [inject.getNodeRenderer()], _getEdgeRenderer_dec = [inject.getEdgeRenderer()], _nodesVersion_dec = [inject((injectable) => injectable.nodesManager.patchVersion$.value + injectable.nodesManager.mapVersion$.value)], _edgesVersion_dec = [inject((injectable) => injectable.edgesManager.patchVersion$.value + injectable.edgesManager.mapVersion$.value + injectable.nodesManager.patchVersion$.value + injectable.nodesManager.mapVersion$.value)], _getNode_dec = [inject.getNode()], _getEdge_dec = [inject.getEdge()], _draftNode_dec = [inject((injectable, context) => {
75
+ var _edgesLayer_dec, _nodesLayer_dec, _forceRerender_dec, _overrideEdgeRenderProps_dec, _overrideNodeRenderProps_dec, _registerNodeLevelGetter_dec, _defaultEdgeType_dec, _defaultNodeType_dec, _draftNode_dec, _getEdge_dec, _getNode_dec, _edgesVersion_dec, _nodesVersion_dec, _getEdgeRenderer_dec, _getNodeRenderer_dec, _edges_dec, _nodes_dec, _edgeForceRerenderVersion_dec, _nodeForceRerenderVersion_dec, _a, _init;
76
+ const _BaseRender = class _BaseRender extends (_a = BasePlugin, _nodeForceRerenderVersion_dec = [observable()], _edgeForceRerenderVersion_dec = [observable()], _nodes_dec = [inject.nodes()], _edges_dec = [inject.edges()], _getNodeRenderer_dec = [inject.getNodeRenderer()], _getEdgeRenderer_dec = [inject.getEdgeRenderer()], _nodesVersion_dec = [inject((injectable) => injectable.nodesManager.patchVersion$.value + injectable.nodesManager.mapVersion$.value)], _edgesVersion_dec = [inject((injectable) => injectable.edgesManager.patchVersion$.value + injectable.edgesManager.mapVersion$.value + injectable.nodesManager.patchVersion$.value + injectable.nodesManager.mapVersion$.value)], _getNode_dec = [inject.getNode()], _getEdge_dec = [inject.getEdge()], _draftNode_dec = [inject((injectable, context) => {
74
77
  var _a2, _b;
75
78
  return ((_b = (_a2 = injectable.nodesManager.currentDraftDataMap$) == null ? void 0 : _a2.value) == null ? void 0 : _b.get(context.node)) || void 0;
76
- })], _defaultNodeType_dec = [nodeType("default")], _defaultEdgeType_dec = [edgeType("default")], _registerNodeLevelGetter_dec = [register("registerNodeLevelGetter")], _overrideNodeRenderProps_dec = [register("overrideNodeRenderProps")], _overrideEdgeRenderProps_dec = [register("overrideEdgeRenderProps")], _nodesLayer_dec = [layer(Layer.Nodes)], _edgesLayer_dec = [layer(Layer.Edges)], _a) {
79
+ })], _defaultNodeType_dec = [nodeType("default")], _defaultEdgeType_dec = [edgeType("default")], _registerNodeLevelGetter_dec = [register("registerNodeLevelGetter")], _overrideNodeRenderProps_dec = [register("overrideNodeRenderProps")], _overrideEdgeRenderProps_dec = [register("overrideEdgeRenderProps")], _forceRerender_dec = [register("forceRerender")], _nodesLayer_dec = [layer(Layer.Nodes)], _edgesLayer_dec = [layer(Layer.Edges)], _a) {
77
80
  constructor() {
78
81
  super(...arguments);
79
82
  __runInitializers(_init, 5, this);
80
83
  __publicField(this, "name", "baseRender");
81
- __publicField(this, "nodes", __runInitializers(_init, 8, this, [])), __runInitializers(_init, 11, this);
82
- __publicField(this, "edges", __runInitializers(_init, 12, this, [])), __runInitializers(_init, 15, this);
83
- __publicField(this, "getNodeRenderer", __runInitializers(_init, 16, this)), __runInitializers(_init, 19, this);
84
- __publicField(this, "getEdgeRenderer", __runInitializers(_init, 20, this)), __runInitializers(_init, 23, this);
85
- __publicField(this, "nodesVersion", __runInitializers(_init, 24, this)), __runInitializers(_init, 27, this);
86
- __publicField(this, "edgesVersion", __runInitializers(_init, 28, this)), __runInitializers(_init, 31, this);
87
- __publicField(this, "getNode", __runInitializers(_init, 32, this)), __runInitializers(_init, 35, this);
88
- __publicField(this, "getEdge", __runInitializers(_init, 36, this)), __runInitializers(_init, 39, this);
89
- __publicField(this, "draftNode", __runInitializers(_init, 40, this)), __runInitializers(_init, 43, this);
84
+ __publicField(this, "nodeForceRerenderVersion", __runInitializers(_init, 8, this, 0)), __runInitializers(_init, 11, this);
85
+ __publicField(this, "edgeForceRerenderVersion", __runInitializers(_init, 12, this, 0)), __runInitializers(_init, 15, this);
86
+ __publicField(this, "nodes", __runInitializers(_init, 16, this, [])), __runInitializers(_init, 19, this);
87
+ __publicField(this, "edges", __runInitializers(_init, 20, this, [])), __runInitializers(_init, 23, this);
88
+ __publicField(this, "getNodeRenderer", __runInitializers(_init, 24, this)), __runInitializers(_init, 27, this);
89
+ __publicField(this, "getEdgeRenderer", __runInitializers(_init, 28, this)), __runInitializers(_init, 31, this);
90
+ __publicField(this, "nodesVersion", __runInitializers(_init, 32, this)), __runInitializers(_init, 35, this);
91
+ __publicField(this, "edgesVersion", __runInitializers(_init, 36, this)), __runInitializers(_init, 39, this);
92
+ __publicField(this, "getNode", __runInitializers(_init, 40, this)), __runInitializers(_init, 43, this);
93
+ __publicField(this, "getEdge", __runInitializers(_init, 44, this)), __runInitializers(_init, 47, this);
94
+ __publicField(this, "draftNode", __runInitializers(_init, 48, this)), __runInitializers(_init, 51, this);
90
95
  __publicField(this, "nodeLevelGetter", new BehaviorSubject([]));
91
- __publicField(this, "defaultNodeType", __runInitializers(_init, 44, this, (props) => props.node.id)), __runInitializers(_init, 47, this);
92
- __publicField(this, "defaultEdgeType", __runInitializers(_init, 48, this, StraightEdge)), __runInitializers(_init, 51, this);
93
- __publicField(this, "registerNodeLevelGetter", __runInitializers(_init, 52, this, (getter) => {
96
+ __publicField(this, "defaultNodeType", __runInitializers(_init, 52, this, (props) => props.node.id)), __runInitializers(_init, 55, this);
97
+ __publicField(this, "defaultEdgeType", __runInitializers(_init, 56, this, StraightEdge)), __runInitializers(_init, 59, this);
98
+ __publicField(this, "registerNodeLevelGetter", __runInitializers(_init, 60, this, (getter) => {
94
99
  this.nodeLevelGetter.next([...this.nodeLevelGetter.value, getter]);
95
100
  return () => {
96
101
  this.nodeLevelGetter.next(this.nodeLevelGetter.value.filter((g) => g !== getter));
97
102
  };
98
- })), __runInitializers(_init, 55, this);
99
- __publicField(this, "overrideNodeRenderProps", __runInitializers(_init, 56, this, (fn) => {
103
+ })), __runInitializers(_init, 63, this);
104
+ __publicField(this, "overrideNodeRenderProps", __runInitializers(_init, 64, this, (fn) => {
100
105
  this.nodeRenderProps = __spreadValues(__spreadValues({}, this.nodeRenderProps), fn(this.nodeRenderProps));
101
- })), __runInitializers(_init, 59, this);
102
- __publicField(this, "overrideEdgeRenderProps", __runInitializers(_init, 60, this, (fn) => {
106
+ })), __runInitializers(_init, 67, this);
107
+ __publicField(this, "overrideEdgeRenderProps", __runInitializers(_init, 68, this, (fn) => {
103
108
  this.edgeRenderProps = __spreadValues(__spreadValues({}, this.edgeRenderProps), fn(this.edgeRenderProps));
104
- })), __runInitializers(_init, 63, this);
109
+ })), __runInitializers(_init, 71, this);
110
+ __publicField(this, "forceRerender", __runInitializers(_init, 72, this, ({ node = true, edge = true }) => {
111
+ if (node) {
112
+ this.nodeForceRerenderVersion++;
113
+ }
114
+ if (edge) {
115
+ this.edgeForceRerenderVersion++;
116
+ }
117
+ })), __runInitializers(_init, 75, this);
105
118
  __publicField(this, "nodeRenderProps", {
106
119
  useNode: (id) => {
107
120
  const draftNode = use(() => this.draftNode, { node: id });
@@ -135,15 +148,23 @@ const _BaseRender = class _BaseRender extends (_a = BasePlugin, _nodes_dec = [in
135
148
  });
136
149
  }
137
150
  nodesLayer() {
138
- return _BaseRender.DEFAULT_NODES_RENDERER(this.nodeRenderProps);
151
+ const renderVersion = use(() => this.nodeForceRerenderVersion);
152
+ return _BaseRender.DEFAULT_NODES_RENDERER(__spreadProps(__spreadValues({}, this.nodeRenderProps), {
153
+ renderVersion
154
+ }));
139
155
  }
140
156
  edgesLayer() {
141
- return _BaseRender.DEFAULT_EDGES_RENDERER(this.edgeRenderProps);
157
+ const renderVersion = use(() => this.edgeForceRerenderVersion);
158
+ return _BaseRender.DEFAULT_EDGES_RENDERER(__spreadProps(__spreadValues({}, this.edgeRenderProps), {
159
+ renderVersion
160
+ }));
142
161
  }
143
162
  };
144
163
  _init = __decoratorStart(_a);
145
164
  __decorateElement(_init, 1, "nodesLayer", _nodesLayer_dec, _BaseRender);
146
165
  __decorateElement(_init, 1, "edgesLayer", _edgesLayer_dec, _BaseRender);
166
+ __decorateElement(_init, 5, "nodeForceRerenderVersion", _nodeForceRerenderVersion_dec, _BaseRender);
167
+ __decorateElement(_init, 5, "edgeForceRerenderVersion", _edgeForceRerenderVersion_dec, _BaseRender);
147
168
  __decorateElement(_init, 5, "nodes", _nodes_dec, _BaseRender);
148
169
  __decorateElement(_init, 5, "edges", _edges_dec, _BaseRender);
149
170
  __decorateElement(_init, 5, "getNodeRenderer", _getNodeRenderer_dec, _BaseRender);
@@ -158,9 +179,11 @@ __decorateElement(_init, 5, "defaultEdgeType", _defaultEdgeType_dec, _BaseRender
158
179
  __decorateElement(_init, 5, "registerNodeLevelGetter", _registerNodeLevelGetter_dec, _BaseRender);
159
180
  __decorateElement(_init, 5, "overrideNodeRenderProps", _overrideNodeRenderProps_dec, _BaseRender);
160
181
  __decorateElement(_init, 5, "overrideEdgeRenderProps", _overrideEdgeRenderProps_dec, _BaseRender);
182
+ __decorateElement(_init, 5, "forceRerender", _forceRerender_dec, _BaseRender);
161
183
  __decoratorMetadata(_init, _BaseRender);
162
184
  __publicField(_BaseRender, "DEFAULT_NODE_WRAPPER", ({
163
185
  id,
186
+ renderVersion,
164
187
  useNode,
165
188
  getNodeRenderer,
166
189
  getNodePosition,
@@ -186,7 +209,7 @@ __publicField(_BaseRender, "DEFAULT_NODE_WRAPPER", ({
186
209
  zIndex: getNodeLevel(node)
187
210
  },
188
211
  "data-node-id": node.id,
189
- children: /* @__PURE__ */ jsx(Renderer, { node })
212
+ children: /* @__PURE__ */ jsx(Renderer, { renderVersion, node })
190
213
  },
191
214
  node.id
192
215
  );
@@ -198,7 +221,8 @@ __publicField(_BaseRender, "DEFAULT_NODES_RENDERER", ({
198
221
  getNodePosition,
199
222
  getNodeMeasured,
200
223
  getNodeLevel,
201
- getNodeWrapper
224
+ getNodeWrapper,
225
+ renderVersion
202
226
  }) => {
203
227
  const nodes = useNodes();
204
228
  const NodeWrapper = getNodeWrapper();
@@ -207,6 +231,7 @@ __publicField(_BaseRender, "DEFAULT_NODES_RENDERER", ({
207
231
  NodeWrapper,
208
232
  {
209
233
  id: data.id,
234
+ renderVersion,
210
235
  useNode,
211
236
  getNodeRenderer,
212
237
  getNodePosition,
@@ -253,6 +278,7 @@ __publicField(_BaseRender, "EDGE_END_POINT_POSITION_CALCULATOR", (x, y, width, h
253
278
  });
254
279
  __publicField(_BaseRender, "DEFAULT_EDGE_WRAPPER", ({
255
280
  id,
281
+ renderVersion,
256
282
  useEdge,
257
283
  useNode,
258
284
  getEdgeRenderer
@@ -286,6 +312,7 @@ __publicField(_BaseRender, "DEFAULT_EDGE_WRAPPER", ({
286
312
  return /* @__PURE__ */ jsx(
287
313
  EdgeRenderer,
288
314
  {
315
+ renderVersion,
289
316
  edge,
290
317
  sourceX,
291
318
  sourceY,
@@ -300,7 +327,8 @@ __publicField(_BaseRender, "DEFAULT_EDGES_RENDERER", ({
300
327
  useEdges,
301
328
  useNode,
302
329
  getEdgeRenderer,
303
- getEdgeWrapper
330
+ getEdgeWrapper,
331
+ renderVersion
304
332
  }) => {
305
333
  const edges = useEdges();
306
334
  const EdgeWrapper = getEdgeWrapper();
@@ -309,6 +337,7 @@ __publicField(_BaseRender, "DEFAULT_EDGES_RENDERER", ({
309
337
  EdgeWrapper,
310
338
  {
311
339
  id: data.id,
340
+ renderVersion,
312
341
  useEdge,
313
342
  useNode,
314
343
  getEdgeRenderer
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@knotx/plugins-base-render",
3
- "version": "0.4.9",
3
+ "version": "0.4.11",
4
4
  "description": "Base Render Plugin for Knotx",
5
5
  "author": "boenfu",
6
6
  "license": "MIT",
@@ -28,19 +28,19 @@
28
28
  "dist"
29
29
  ],
30
30
  "peerDependencies": {
31
- "@knotx/jsx": "0.4.9"
31
+ "@knotx/jsx": "0.4.11"
32
32
  },
33
33
  "dependencies": {
34
34
  "rxjs": "^7.8.1",
35
- "@knotx/core": "0.4.9",
36
- "@knotx/decorators": "0.4.9",
37
- "@knotx/render": "0.4.9"
35
+ "@knotx/core": "0.4.11",
36
+ "@knotx/decorators": "0.4.11",
37
+ "@knotx/render": "0.4.11"
38
38
  },
39
39
  "devDependencies": {
40
- "@knotx/build-config": "0.4.9",
41
- "@knotx/eslint-config": "0.4.9",
42
- "@knotx/typescript-config": "0.4.9",
43
- "@knotx/jsx": "0.4.9"
40
+ "@knotx/build-config": "0.4.11",
41
+ "@knotx/eslint-config": "0.4.11",
42
+ "@knotx/jsx": "0.4.11",
43
+ "@knotx/typescript-config": "0.4.11"
44
44
  },
45
45
  "scripts": {
46
46
  "build": "unbuild",