@knotx/plugins-base-render 0.3.9 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -112,7 +112,7 @@ const _BaseRender = class _BaseRender extends (_a = core.BasePlugin, _nodes_dec
112
112
  const draftNode = core.use(() => this.draftNode, { node: id });
113
113
  return draftNode || this.getNode({ id });
114
114
  },
115
- getEdgeRenderer: (type) => this.getEdgeRenderer(type != null ? type : "default") || this.defaultEdgeType,
115
+ getEdgeRenderer: (type) => this.getEdgeRenderer(type != null ? type : "default") || this.getEdgeRenderer("default"),
116
116
  getEdgeWrapper: () => _BaseRender.DEFAULT_EDGE_WRAPPER
117
117
  });
118
118
  }
@@ -197,24 +197,72 @@ __publicField(_BaseRender, "DEFAULT_NODES_RENDERER", ({
197
197
  );
198
198
  });
199
199
  });
200
+ __publicField(_BaseRender, "EDGE_END_POINT_ORIGIN_CALCULATOR", {
201
+ "left": (x, y, _width, height) => ({ x, y: y + height / 2 }),
202
+ "right": (x, y, width, height) => ({ x: x + width, y: y + height / 2 }),
203
+ "top": (x, y, width, _height) => ({ x: x + width / 2, y }),
204
+ "bottom": (x, y, width, height) => ({ x: x + width / 2, y: y + height }),
205
+ "center": (x, y, width, height) => ({ x: x + width / 2, y: y + height / 2 }),
206
+ "left-top": (x, y, _width, _height) => ({ x, y }),
207
+ "left-bottom": (x, y, _width, height) => ({ x, y: y + height }),
208
+ "right-top": (x, y, width, _height) => ({ x: x + width, y }),
209
+ "right-bottom": (x, y, width, height) => ({ x: x + width, y: y + height })
210
+ });
211
+ __publicField(_BaseRender, "EDGE_END_POINT_POSITION_CALCULATOR", (x, y, width, height, xOffsetConf, yOffsetConf, position) => {
212
+ const { x: xOrigin, y: yOrigin } = _BaseRender.EDGE_END_POINT_ORIGIN_CALCULATOR[position](x, y, width, height);
213
+ let yOffset = 0;
214
+ let xOffset = 0;
215
+ if (typeof yOffsetConf === "number") {
216
+ yOffset = yOffsetConf;
217
+ } else if (yOffsetConf.endsWith("px")) {
218
+ yOffset = Number(yOffsetConf.replace("px", ""));
219
+ } else if (yOffsetConf.endsWith("%")) {
220
+ yOffset = Number(yOffsetConf.replace("%", "")) / 100 * height;
221
+ }
222
+ if (typeof xOffsetConf === "number") {
223
+ xOffset = xOffsetConf;
224
+ } else if (xOffsetConf.endsWith("px")) {
225
+ xOffset = Number(xOffsetConf.replace("px", ""));
226
+ } else if (xOffsetConf.endsWith("%")) {
227
+ xOffset = Number(xOffsetConf.replace("%", "")) / 100 * width;
228
+ }
229
+ return {
230
+ x: xOrigin + (xOffset || 0),
231
+ y: yOrigin + (yOffset || 0)
232
+ };
233
+ });
200
234
  __publicField(_BaseRender, "DEFAULT_EDGE_WRAPPER", ({
201
235
  id,
202
236
  useEdge,
203
237
  useNode,
204
238
  getEdgeRenderer
205
239
  }) => {
206
- var _a2, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;
240
+ var _a2, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v;
207
241
  const edge = useEdge(id);
208
- const EdgeRenderer = getEdgeRenderer(edge == null ? void 0 : edge.type);
242
+ const { renderer: EdgeRenderer, config } = getEdgeRenderer(edge == null ? void 0 : edge.type);
209
243
  const source = useNode((edge == null ? void 0 : edge.source) || "");
210
244
  const target = useNode((edge == null ? void 0 : edge.target) || "");
211
245
  if (!edge || !source || !target) {
212
246
  return null;
213
247
  }
214
- const sourceX = ((_b = (_a2 = source.position) == null ? void 0 : _a2.x) != null ? _b : 0) + ((_d = (_c = source.measured) == null ? void 0 : _c.width) != null ? _d : 0);
215
- const sourceY = ((_f = (_e = source.position) == null ? void 0 : _e.y) != null ? _f : 0) + ((_h = (_g = source.measured) == null ? void 0 : _g.height) != null ? _h : 0) / 2;
216
- const targetX = (_j = (_i = target.position) == null ? void 0 : _i.x) != null ? _j : 0;
217
- const targetY = ((_l = (_k = target.position) == null ? void 0 : _k.y) != null ? _l : 0) + ((_n = (_m = target.measured) == null ? void 0 : _m.height) != null ? _n : 0) / 2;
248
+ const { x: sourceX, y: sourceY } = _BaseRender.EDGE_END_POINT_POSITION_CALCULATOR(
249
+ (_b = (_a2 = source.position) == null ? void 0 : _a2.x) != null ? _b : 0,
250
+ (_d = (_c = source.position) == null ? void 0 : _c.y) != null ? _d : 0,
251
+ (_f = (_e = source.measured) == null ? void 0 : _e.width) != null ? _f : 0,
252
+ (_h = (_g = source.measured) == null ? void 0 : _g.height) != null ? _h : 0,
253
+ (_i = edge.sourceXOffset) != null ? _i : config.sourceXOffset,
254
+ (_j = edge.sourceYOffset) != null ? _j : config.sourceYOffset,
255
+ (_k = edge.sourcePosition) != null ? _k : config.sourcePosition
256
+ );
257
+ const { x: targetX, y: targetY } = _BaseRender.EDGE_END_POINT_POSITION_CALCULATOR(
258
+ (_m = (_l = target.position) == null ? void 0 : _l.x) != null ? _m : 0,
259
+ (_o = (_n = target.position) == null ? void 0 : _n.y) != null ? _o : 0,
260
+ (_q = (_p = target.measured) == null ? void 0 : _p.width) != null ? _q : 0,
261
+ (_s = (_r = target.measured) == null ? void 0 : _r.height) != null ? _s : 0,
262
+ (_t = edge.targetXOffset) != null ? _t : config.targetXOffset,
263
+ (_u = edge.targetYOffset) != null ? _u : config.targetYOffset,
264
+ (_v = edge.targetPosition) != null ? _v : config.targetPosition
265
+ );
218
266
  return /* @__PURE__ */ jsxRuntime.jsx(
219
267
  EdgeRenderer,
220
268
  {
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as _knotx_core from '@knotx/core';
2
- import { Node, NodeRenderType, NodePosition, NodeMeasured, Edge, EdgeRenderType, BasePlugin } from '@knotx/core';
2
+ import { Node, NodeRenderType, NodePosition, NodeMeasured, Edge, EdgeRender, BasePlugin, Position } from '@knotx/core';
3
3
  import { StraightEdge } from '@knotx/render';
4
4
 
5
5
  declare module '@knotx/core' {
@@ -25,7 +25,7 @@ interface BaseRenderEdgeWrapperProps {
25
25
  id: string;
26
26
  useEdge: (id: string) => Edge | undefined;
27
27
  useNode: (id: string) => Node | undefined;
28
- getEdgeRenderer: (type?: string) => EdgeRenderType;
28
+ getEdgeRenderer: (type?: string) => EdgeRender;
29
29
  }
30
30
  interface BaseRenderEdgesWrapperProps extends Omit<BaseRenderEdgeWrapperProps, 'id'> {
31
31
  useEdges: () => Edge[];
@@ -60,12 +60,20 @@ declare class BaseRender extends BasePlugin<'baseRender'> {
60
60
  useEdge: (id: string) => Edge<_knotx_core.IRecord> | undefined;
61
61
  useEdges: () => Edge<_knotx_core.IRecord>[];
62
62
  useNode: (id: string) => Node<_knotx_core.IRecord> | undefined;
63
- getEdgeRenderer: (type?: string) => typeof StraightEdge | EdgeRenderType<any, any>;
63
+ getEdgeRenderer: (type?: string) => EdgeRender<any, any>;
64
64
  getEdgeWrapper: () => ({ id, useEdge, useNode, getEdgeRenderer, }: BaseRenderEdgeWrapperProps) => JSX.Element | null;
65
65
  };
66
66
  edgesLayer(): JSX.Element[];
67
67
  static DEFAULT_NODE_WRAPPER: ({ id, useNode, getNodeRenderer, getNodePosition, getNodeMeasured, getNodeLevel, }: BaseRenderNodeWrapperProps) => JSX.Element | null;
68
68
  static DEFAULT_NODES_RENDERER: ({ useNode, useNodes, getNodeRenderer, getNodePosition, getNodeMeasured, getNodeLevel, getNodeWrapper, }: BaseRenderNodesWrapperProps) => JSX.Element[];
69
+ static EDGE_END_POINT_ORIGIN_CALCULATOR: Record<Position, (x: number, y: number, width: number, height: number) => {
70
+ x: number;
71
+ y: number;
72
+ }>;
73
+ static EDGE_END_POINT_POSITION_CALCULATOR: (x: number, y: number, width: number, height: number, xOffsetConf: string | number, yOffsetConf: string | number, position: Position) => {
74
+ x: number;
75
+ y: number;
76
+ };
69
77
  static DEFAULT_EDGE_WRAPPER: ({ id, useEdge, useNode, getEdgeRenderer, }: BaseRenderEdgeWrapperProps) => JSX.Element | null;
70
78
  static DEFAULT_EDGES_RENDERER: ({ useEdge, useEdges, useNode, getEdgeRenderer, getEdgeWrapper, }: BaseRenderEdgesWrapperProps) => JSX.Element[];
71
79
  }
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as _knotx_core from '@knotx/core';
2
- import { Node, NodeRenderType, NodePosition, NodeMeasured, Edge, EdgeRenderType, BasePlugin } from '@knotx/core';
2
+ import { Node, NodeRenderType, NodePosition, NodeMeasured, Edge, EdgeRender, BasePlugin, Position } from '@knotx/core';
3
3
  import { StraightEdge } from '@knotx/render';
4
4
 
5
5
  declare module '@knotx/core' {
@@ -25,7 +25,7 @@ interface BaseRenderEdgeWrapperProps {
25
25
  id: string;
26
26
  useEdge: (id: string) => Edge | undefined;
27
27
  useNode: (id: string) => Node | undefined;
28
- getEdgeRenderer: (type?: string) => EdgeRenderType;
28
+ getEdgeRenderer: (type?: string) => EdgeRender;
29
29
  }
30
30
  interface BaseRenderEdgesWrapperProps extends Omit<BaseRenderEdgeWrapperProps, 'id'> {
31
31
  useEdges: () => Edge[];
@@ -60,12 +60,20 @@ declare class BaseRender extends BasePlugin<'baseRender'> {
60
60
  useEdge: (id: string) => Edge<_knotx_core.IRecord> | undefined;
61
61
  useEdges: () => Edge<_knotx_core.IRecord>[];
62
62
  useNode: (id: string) => Node<_knotx_core.IRecord> | undefined;
63
- getEdgeRenderer: (type?: string) => typeof StraightEdge | EdgeRenderType<any, any>;
63
+ getEdgeRenderer: (type?: string) => EdgeRender<any, any>;
64
64
  getEdgeWrapper: () => ({ id, useEdge, useNode, getEdgeRenderer, }: BaseRenderEdgeWrapperProps) => JSX.Element | null;
65
65
  };
66
66
  edgesLayer(): JSX.Element[];
67
67
  static DEFAULT_NODE_WRAPPER: ({ id, useNode, getNodeRenderer, getNodePosition, getNodeMeasured, getNodeLevel, }: BaseRenderNodeWrapperProps) => JSX.Element | null;
68
68
  static DEFAULT_NODES_RENDERER: ({ useNode, useNodes, getNodeRenderer, getNodePosition, getNodeMeasured, getNodeLevel, getNodeWrapper, }: BaseRenderNodesWrapperProps) => JSX.Element[];
69
+ static EDGE_END_POINT_ORIGIN_CALCULATOR: Record<Position, (x: number, y: number, width: number, height: number) => {
70
+ x: number;
71
+ y: number;
72
+ }>;
73
+ static EDGE_END_POINT_POSITION_CALCULATOR: (x: number, y: number, width: number, height: number, xOffsetConf: string | number, yOffsetConf: string | number, position: Position) => {
74
+ x: number;
75
+ y: number;
76
+ };
69
77
  static DEFAULT_EDGE_WRAPPER: ({ id, useEdge, useNode, getEdgeRenderer, }: BaseRenderEdgeWrapperProps) => JSX.Element | null;
70
78
  static DEFAULT_EDGES_RENDERER: ({ useEdge, useEdges, useNode, getEdgeRenderer, getEdgeWrapper, }: BaseRenderEdgesWrapperProps) => JSX.Element[];
71
79
  }
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as _knotx_core from '@knotx/core';
2
- import { Node, NodeRenderType, NodePosition, NodeMeasured, Edge, EdgeRenderType, BasePlugin } from '@knotx/core';
2
+ import { Node, NodeRenderType, NodePosition, NodeMeasured, Edge, EdgeRender, BasePlugin, Position } from '@knotx/core';
3
3
  import { StraightEdge } from '@knotx/render';
4
4
 
5
5
  declare module '@knotx/core' {
@@ -25,7 +25,7 @@ interface BaseRenderEdgeWrapperProps {
25
25
  id: string;
26
26
  useEdge: (id: string) => Edge | undefined;
27
27
  useNode: (id: string) => Node | undefined;
28
- getEdgeRenderer: (type?: string) => EdgeRenderType;
28
+ getEdgeRenderer: (type?: string) => EdgeRender;
29
29
  }
30
30
  interface BaseRenderEdgesWrapperProps extends Omit<BaseRenderEdgeWrapperProps, 'id'> {
31
31
  useEdges: () => Edge[];
@@ -60,12 +60,20 @@ declare class BaseRender extends BasePlugin<'baseRender'> {
60
60
  useEdge: (id: string) => Edge<_knotx_core.IRecord> | undefined;
61
61
  useEdges: () => Edge<_knotx_core.IRecord>[];
62
62
  useNode: (id: string) => Node<_knotx_core.IRecord> | undefined;
63
- getEdgeRenderer: (type?: string) => typeof StraightEdge | EdgeRenderType<any, any>;
63
+ getEdgeRenderer: (type?: string) => EdgeRender<any, any>;
64
64
  getEdgeWrapper: () => ({ id, useEdge, useNode, getEdgeRenderer, }: BaseRenderEdgeWrapperProps) => JSX.Element | null;
65
65
  };
66
66
  edgesLayer(): JSX.Element[];
67
67
  static DEFAULT_NODE_WRAPPER: ({ id, useNode, getNodeRenderer, getNodePosition, getNodeMeasured, getNodeLevel, }: BaseRenderNodeWrapperProps) => JSX.Element | null;
68
68
  static DEFAULT_NODES_RENDERER: ({ useNode, useNodes, getNodeRenderer, getNodePosition, getNodeMeasured, getNodeLevel, getNodeWrapper, }: BaseRenderNodesWrapperProps) => JSX.Element[];
69
+ static EDGE_END_POINT_ORIGIN_CALCULATOR: Record<Position, (x: number, y: number, width: number, height: number) => {
70
+ x: number;
71
+ y: number;
72
+ }>;
73
+ static EDGE_END_POINT_POSITION_CALCULATOR: (x: number, y: number, width: number, height: number, xOffsetConf: string | number, yOffsetConf: string | number, position: Position) => {
74
+ x: number;
75
+ y: number;
76
+ };
69
77
  static DEFAULT_EDGE_WRAPPER: ({ id, useEdge, useNode, getEdgeRenderer, }: BaseRenderEdgeWrapperProps) => JSX.Element | null;
70
78
  static DEFAULT_EDGES_RENDERER: ({ useEdge, useEdges, useNode, getEdgeRenderer, getEdgeWrapper, }: BaseRenderEdgesWrapperProps) => JSX.Element[];
71
79
  }
package/dist/index.js CHANGED
@@ -110,7 +110,7 @@ const _BaseRender = class _BaseRender extends (_a = BasePlugin, _nodes_dec = [in
110
110
  const draftNode = use(() => this.draftNode, { node: id });
111
111
  return draftNode || this.getNode({ id });
112
112
  },
113
- getEdgeRenderer: (type) => this.getEdgeRenderer(type != null ? type : "default") || this.defaultEdgeType,
113
+ getEdgeRenderer: (type) => this.getEdgeRenderer(type != null ? type : "default") || this.getEdgeRenderer("default"),
114
114
  getEdgeWrapper: () => _BaseRender.DEFAULT_EDGE_WRAPPER
115
115
  });
116
116
  }
@@ -195,24 +195,72 @@ __publicField(_BaseRender, "DEFAULT_NODES_RENDERER", ({
195
195
  );
196
196
  });
197
197
  });
198
+ __publicField(_BaseRender, "EDGE_END_POINT_ORIGIN_CALCULATOR", {
199
+ "left": (x, y, _width, height) => ({ x, y: y + height / 2 }),
200
+ "right": (x, y, width, height) => ({ x: x + width, y: y + height / 2 }),
201
+ "top": (x, y, width, _height) => ({ x: x + width / 2, y }),
202
+ "bottom": (x, y, width, height) => ({ x: x + width / 2, y: y + height }),
203
+ "center": (x, y, width, height) => ({ x: x + width / 2, y: y + height / 2 }),
204
+ "left-top": (x, y, _width, _height) => ({ x, y }),
205
+ "left-bottom": (x, y, _width, height) => ({ x, y: y + height }),
206
+ "right-top": (x, y, width, _height) => ({ x: x + width, y }),
207
+ "right-bottom": (x, y, width, height) => ({ x: x + width, y: y + height })
208
+ });
209
+ __publicField(_BaseRender, "EDGE_END_POINT_POSITION_CALCULATOR", (x, y, width, height, xOffsetConf, yOffsetConf, position) => {
210
+ const { x: xOrigin, y: yOrigin } = _BaseRender.EDGE_END_POINT_ORIGIN_CALCULATOR[position](x, y, width, height);
211
+ let yOffset = 0;
212
+ let xOffset = 0;
213
+ if (typeof yOffsetConf === "number") {
214
+ yOffset = yOffsetConf;
215
+ } else if (yOffsetConf.endsWith("px")) {
216
+ yOffset = Number(yOffsetConf.replace("px", ""));
217
+ } else if (yOffsetConf.endsWith("%")) {
218
+ yOffset = Number(yOffsetConf.replace("%", "")) / 100 * height;
219
+ }
220
+ if (typeof xOffsetConf === "number") {
221
+ xOffset = xOffsetConf;
222
+ } else if (xOffsetConf.endsWith("px")) {
223
+ xOffset = Number(xOffsetConf.replace("px", ""));
224
+ } else if (xOffsetConf.endsWith("%")) {
225
+ xOffset = Number(xOffsetConf.replace("%", "")) / 100 * width;
226
+ }
227
+ return {
228
+ x: xOrigin + (xOffset || 0),
229
+ y: yOrigin + (yOffset || 0)
230
+ };
231
+ });
198
232
  __publicField(_BaseRender, "DEFAULT_EDGE_WRAPPER", ({
199
233
  id,
200
234
  useEdge,
201
235
  useNode,
202
236
  getEdgeRenderer
203
237
  }) => {
204
- var _a2, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;
238
+ var _a2, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v;
205
239
  const edge = useEdge(id);
206
- const EdgeRenderer = getEdgeRenderer(edge == null ? void 0 : edge.type);
240
+ const { renderer: EdgeRenderer, config } = getEdgeRenderer(edge == null ? void 0 : edge.type);
207
241
  const source = useNode((edge == null ? void 0 : edge.source) || "");
208
242
  const target = useNode((edge == null ? void 0 : edge.target) || "");
209
243
  if (!edge || !source || !target) {
210
244
  return null;
211
245
  }
212
- const sourceX = ((_b = (_a2 = source.position) == null ? void 0 : _a2.x) != null ? _b : 0) + ((_d = (_c = source.measured) == null ? void 0 : _c.width) != null ? _d : 0);
213
- const sourceY = ((_f = (_e = source.position) == null ? void 0 : _e.y) != null ? _f : 0) + ((_h = (_g = source.measured) == null ? void 0 : _g.height) != null ? _h : 0) / 2;
214
- const targetX = (_j = (_i = target.position) == null ? void 0 : _i.x) != null ? _j : 0;
215
- const targetY = ((_l = (_k = target.position) == null ? void 0 : _k.y) != null ? _l : 0) + ((_n = (_m = target.measured) == null ? void 0 : _m.height) != null ? _n : 0) / 2;
246
+ const { x: sourceX, y: sourceY } = _BaseRender.EDGE_END_POINT_POSITION_CALCULATOR(
247
+ (_b = (_a2 = source.position) == null ? void 0 : _a2.x) != null ? _b : 0,
248
+ (_d = (_c = source.position) == null ? void 0 : _c.y) != null ? _d : 0,
249
+ (_f = (_e = source.measured) == null ? void 0 : _e.width) != null ? _f : 0,
250
+ (_h = (_g = source.measured) == null ? void 0 : _g.height) != null ? _h : 0,
251
+ (_i = edge.sourceXOffset) != null ? _i : config.sourceXOffset,
252
+ (_j = edge.sourceYOffset) != null ? _j : config.sourceYOffset,
253
+ (_k = edge.sourcePosition) != null ? _k : config.sourcePosition
254
+ );
255
+ const { x: targetX, y: targetY } = _BaseRender.EDGE_END_POINT_POSITION_CALCULATOR(
256
+ (_m = (_l = target.position) == null ? void 0 : _l.x) != null ? _m : 0,
257
+ (_o = (_n = target.position) == null ? void 0 : _n.y) != null ? _o : 0,
258
+ (_q = (_p = target.measured) == null ? void 0 : _p.width) != null ? _q : 0,
259
+ (_s = (_r = target.measured) == null ? void 0 : _r.height) != null ? _s : 0,
260
+ (_t = edge.targetXOffset) != null ? _t : config.targetXOffset,
261
+ (_u = edge.targetYOffset) != null ? _u : config.targetYOffset,
262
+ (_v = edge.targetPosition) != null ? _v : config.targetPosition
263
+ );
216
264
  return /* @__PURE__ */ jsx(
217
265
  EdgeRenderer,
218
266
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@knotx/plugins-base-render",
3
- "version": "0.3.9",
3
+ "version": "0.4.0",
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.3.9"
31
+ "@knotx/jsx": "0.4.0"
32
32
  },
33
33
  "dependencies": {
34
34
  "rxjs": "^7.8.1",
35
- "@knotx/core": "0.3.9",
36
- "@knotx/decorators": "0.3.9",
37
- "@knotx/render": "0.3.9"
35
+ "@knotx/core": "0.4.0",
36
+ "@knotx/decorators": "0.4.0",
37
+ "@knotx/render": "0.4.0"
38
38
  },
39
39
  "devDependencies": {
40
- "@knotx/build-config": "0.3.9",
41
- "@knotx/eslint-config": "0.3.9",
42
- "@knotx/jsx": "0.3.9",
43
- "@knotx/typescript-config": "0.3.9"
40
+ "@knotx/build-config": "0.4.0",
41
+ "@knotx/eslint-config": "0.4.0",
42
+ "@knotx/jsx": "0.4.0",
43
+ "@knotx/typescript-config": "0.4.0"
44
44
  },
45
45
  "scripts": {
46
46
  "build": "unbuild",