@rasamjs/connectors 0.1.0 → 0.2.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.
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"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"}
package/dist/routing.d.ts CHANGED
@@ -1,5 +1,8 @@
1
- import type { Point } from '@rasamjs/core';
2
- import type { ConnectorAnchor, ConnectorEndpoint, ConnectorPort, ConnectorRoute } from './types.js';
1
+ import type { Point, PortDefinition } from '@rasamjs/core';
2
+ import type { ConnectorAnchor, ConnectorEndpoint, ConnectorPort, ConnectorRoute, ConnectorTarget } from './types.js';
3
+ /** Reads ports structurally from `portDefinitions`, the way tools read `editRules`. */
4
+ export declare function portsOf(target: ConnectorTarget): readonly PortDefinition[];
5
+ export declare const findPort: (target: ConnectorTarget, name: string) => PortDefinition | undefined;
3
6
  export declare function validatePoint(point: Point, normalized?: boolean): void;
4
7
  export declare function validateAnchor(anchor: ConnectorAnchor): void;
5
8
  export declare function endpointCenter(endpoint: ConnectorEndpoint): Point | null;
@@ -1 +1 @@
1
- {"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../src/routing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,cAAc,EAEf,MAAM,YAAY,CAAC;AAEpB,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,UAAQ,GAAG,IAAI,CAUpE;AACD,wBAAgB,cAAc,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAK5D;AACD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,iBAAiB,GAAG,KAAK,GAAG,IAAI,CAMxE;AACD,wFAAwF;AACxF,wBAAgB,aAAa,CAAC,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,KAAK,GAAG,aAAa,GAAG,IAAI,CAsD9F;AACD,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,cAAc,GAAG,SAAS,KAAK,EAAE,CA4BxF;AACD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,GAAG,MAAM,CAOzD"}
1
+ {"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../src/routing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,cAAc,EAEd,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,uFAAuF;AACvF,wBAAgB,OAAO,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,cAAc,EAAE,CAG1E;AACD,eAAO,MAAM,QAAQ,WAAY,eAAe,QAAQ,MAAM,KAAG,cAAc,GAAG,SAC7B,CAAC;AAMtD,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,UAAQ,GAAG,IAAI,CAUpE;AACD,wBAAgB,cAAc,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAK5D;AACD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,iBAAiB,GAAG,KAAK,GAAG,IAAI,CAUxE;AACD,wFAAwF;AACxF,wBAAgB,aAAa,CAAC,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,KAAK,GAAG,aAAa,GAAG,IAAI,CAmD9F;AAaD,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,cAAc,GAAG,SAAS,KAAK,EAAE,CA4BxF;AACD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,GAAG,MAAM,CAOzD"}
package/dist/routing.js CHANGED
@@ -1,3 +1,13 @@
1
+ /** Reads ports structurally from `portDefinitions`, the way tools read `editRules`. */
2
+ export function portsOf(target) {
3
+ const ports = target.portDefinitions;
4
+ return Array.isArray(ports) ? ports : [];
5
+ }
6
+ export const findPort = (target, name) => portsOf(target).find((port) => port?.name === name);
7
+ const sideVector = (side) => ({
8
+ x: side === 'left' ? -1 : side === 'right' ? 1 : 0,
9
+ y: side === 'top' ? -1 : side === 'bottom' ? 1 : 0,
10
+ });
1
11
  export function validatePoint(point, normalized = false) {
2
12
  if (!point ||
3
13
  !Number.isFinite(point.x) ||
@@ -16,6 +26,10 @@ export function validateAnchor(anchor) {
16
26
  export function endpointCenter(endpoint) {
17
27
  if ('point' in endpoint)
18
28
  return endpoint.point;
29
+ if ('port' in endpoint) {
30
+ const port = findPort(endpoint.target, endpoint.port);
31
+ return port ? endpoint.target.toRoot(port) : null;
32
+ }
19
33
  const bounds = endpoint.target.bounds();
20
34
  if (!('box' in bounds))
21
35
  return null;
@@ -26,7 +40,13 @@ export function endpointCenter(endpoint) {
26
40
  export function connectorPort(endpoint, toward) {
27
41
  if ('point' in endpoint)
28
42
  return { point: endpoint.point, direction: { x: 0, y: 0 } };
29
- const { target, anchor = 'auto' } = endpoint;
43
+ const { target } = endpoint;
44
+ if ('port' in endpoint) {
45
+ // A port end sits exactly on the port and leaves in the direction of its side.
46
+ const port = findPort(target, endpoint.port);
47
+ return port ? place(target, port, sideVector(port.side)) : null;
48
+ }
49
+ const { anchor = 'auto' } = endpoint;
30
50
  const bounds = target.bounds();
31
51
  if (!('box' in bounds))
32
52
  return null;
@@ -62,14 +82,14 @@ export function connectorPort(endpoint, toward) {
62
82
  ? 'top'
63
83
  : 'bottom';
64
84
  }
65
- const root = target.toRoot(point);
66
- const localDirection = typeof anchor === 'object'
85
+ return place(target, point, typeof anchor === 'object'
67
86
  ? { x: point.x - center.x, y: point.y - center.y }
68
- : {
69
- x: side === 'left' ? -1 : side === 'right' ? 1 : 0,
70
- y: side === 'top' ? -1 : side === 'bottom' ? 1 : 0,
71
- };
72
- const offset = target.toRoot({ x: point.x + localDirection.x, y: point.y + localDirection.y });
87
+ : sideVector(side));
88
+ }
89
+ /** Maps a local point and outward direction into drawing units, snapped to an axis. */
90
+ function place(target, point, local) {
91
+ const root = target.toRoot(point);
92
+ const offset = target.toRoot({ x: point.x + local.x, y: point.y + local.y });
73
93
  const dx = offset.x - root.x, dy = offset.y - root.y;
74
94
  return {
75
95
  point: root,
@@ -1 +1 @@
1
- {"version":3,"file":"routing.js","sourceRoot":"","sources":["../src/routing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routing.js","sourceRoot":"","sources":["../src/routing.ts"],"names":[],"mappings":"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"}
package/dist/tool.d.ts CHANGED
@@ -8,7 +8,10 @@ export interface ConnectorToolOptions extends Pick<ConnectorOptions, 'routing' |
8
8
  readonly onError?: (error: unknown) => void;
9
9
  readonly onExit?: () => void;
10
10
  }
11
- /** Drag from a hinted anchor or free point. The document is written only on release. */
11
+ /**
12
+ * Drag from a hinted anchor, port or free point. Within twelve client pixels of a hint,
13
+ * the end snaps to it. The document is written only on release.
14
+ */
12
15
  export declare class ConnectorTool {
13
16
  readonly connectors: Connectors;
14
17
  private readonly surface;
@@ -1 +1 @@
1
- {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAS,MAAM,eAAe,CAAC;AAGjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIlD,OAAO,KAAK,EAEV,gBAAgB,EAEhB,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAChD,gBAAgB,EAChB,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,aAAa,CAChD;IACC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,OAAO,CAAC;IACzD,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACzC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CAC9B;AAYD,wFAAwF;AACxF,qBAAa,aAAa;IAOtB,QAAQ,CAAC,UAAU,EAAE,UAAU;IANjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,OAAO,CAAuB;IACtC,YACW,UAAU,EAAE,UAAU,EAC/B,OAAO,GAAE,oBAAyB,EAuEnC;IACD,IAAI,WAAW,IAAI,OAAO,CAEzB;IACD,IAAI,OAAO,IAAI,OAAO,CAErB;IACD,IAAI,KAAK,IAAI;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAKrE;IACD,IAAI,KAAK,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAYzE;IACD,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAWzB;IACD,MAAM,IAAI,IAAI,CAGb;IACD,OAAO,IAAI,IAAI,CAEd;IACD,MAAM,IAAI,IAAI,CASb;IACD,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,OAAO;IAaf,OAAO,CAAC,IAAI;IAiDZ,OAAO,CAAC,QAAQ,CAAC,IAAI,CAMnB;IACF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAmBnB;IACF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAOnB;IACF,OAAO,CAAC,QAAQ,CAAC,EAAE,CAYjB;IACF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAEnB;IACF,OAAO,CAAC,MAAM;CAgDf"}
1
+ {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,IAAI,EAAS,MAAM,eAAe,CAAC;AAG1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIlD,OAAO,KAAK,EAEV,gBAAgB,EAEhB,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAChD,gBAAgB,EAChB,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,aAAa,CAChD;IACC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,OAAO,CAAC;IACzD,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACzC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CAC9B;AAuBD;;;GAGG;AACH,qBAAa,aAAa;IAOtB,QAAQ,CAAC,UAAU,EAAE,UAAU;IANjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,OAAO,CAAuB;IACtC,YACW,UAAU,EAAE,UAAU,EAC/B,OAAO,GAAE,oBAAyB,EAuEnC;IACD,IAAI,WAAW,IAAI,OAAO,CAEzB;IACD,IAAI,OAAO,IAAI,OAAO,CAErB;IACD,IAAI,KAAK,IAAI;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAKrE;IACD,IAAI,KAAK,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAYzE;IACD,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAWzB;IACD,MAAM,IAAI,IAAI,CAGb;IACD,OAAO,IAAI,IAAI,CAEd;IACD,MAAM,IAAI,IAAI,CASb;IACD,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,OAAO;IAaf,OAAO,CAAC,IAAI;IAsDZ,OAAO,CAAC,QAAQ,CAAC,IAAI,CAMnB;IACF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAmBnB;IACF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAOnB;IACF,OAAO,CAAC,QAAQ,CAAC,EAAE,CAYjB;IACF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAEnB;IACF,OAAO,CAAC,MAAM;CAoDf"}
package/dist/tool.js CHANGED
@@ -1,10 +1,23 @@
1
1
  import { Guards, Registry } from '@rasamjs/core/advanced';
2
2
  import { observeChanges } from '@rasamjs/core/changes';
3
3
  import { isConnector } from './metadata.js';
4
- import { connectorPort, endpointCenter, pathData, routeConnector } from './routing.js';
4
+ import { connectorPort, endpointCenter, pathData, portsOf, routeConnector } from './routing.js';
5
5
  import { ToolSurface, svg } from './tool-surface.js';
6
6
  const sides = ['top', 'right', 'bottom', 'left'];
7
- /** Drag from a hinted anchor or free point. The document is written only on release. */
7
+ /** A target's ports replace its four side hints. */
8
+ const hints = (target) => {
9
+ const ports = portsOf(target);
10
+ return ports.length
11
+ ? ports.map((port) => ({ target, port: port.name }))
12
+ : sides.map((anchor) => ({ target, anchor }));
13
+ };
14
+ const same = (hint, endpoint) => 'port' in hint
15
+ ? 'port' in endpoint && endpoint.port === hint.port
16
+ : 'anchor' in hint && 'anchor' in endpoint && endpoint.anchor === hint.anchor;
17
+ /**
18
+ * Drag from a hinted anchor, port or free point. Within twelve client pixels of a hint,
19
+ * the end snaps to it. The document is written only on release.
20
+ */
8
21
  export class ConnectorTool {
9
22
  connectors;
10
23
  surface;
@@ -158,15 +171,19 @@ export class ConnectorTool {
158
171
  const point = drawing.fromClient({ x: event.clientX, y: event.clientY });
159
172
  if (!point)
160
173
  return null;
161
- const targets = drawing.el.ownerDocument
162
- .elementsFromPoint(event.clientX, event.clientY)
163
- .map((element) => Registry.wrapper(element));
164
- let target = targets.find((node) => Guards.isTransformable(node) &&
174
+ const accepts = (node) => Guards.isTransformable(node) &&
165
175
  node !== drawing &&
166
176
  drawing.el.contains(node.el) &&
167
177
  !isConnector(node) &&
168
178
  !node.descendants().some(isConnector) &&
169
- this.options.selectable?.(node) !== false);
179
+ this.options.selectable?.(node) !== false;
180
+ let target;
181
+ // Hit testing never reports groups, so a rejected hit such as a component's rendered
182
+ // child resolves to its nearest accepted ancestor.
183
+ for (const element of drawing.el.ownerDocument.elementsFromPoint(event.clientX, event.clientY))
184
+ for (let node = Registry.wrapper(element); node && !target; node = node.parent)
185
+ if (accepts(node))
186
+ target = node;
170
187
  // The outer half of an anchor hint can lie just outside its shape's hit area.
171
188
  const previous = this.hover?.target;
172
189
  if (!target &&
@@ -174,8 +191,8 @@ export class ConnectorTool {
174
191
  !previous.isDestroyed &&
175
192
  drawing.el.contains(previous.el) &&
176
193
  this.options.selectable?.(previous) !== false) {
177
- const nearHint = sides.some((anchor) => {
178
- const port = connectorPort({ target: previous, anchor }, point);
194
+ const nearHint = hints(previous).some((hint) => {
195
+ const port = connectorPort(hint, point);
179
196
  const client = port && drawing.toClient(port.point);
180
197
  return client && Math.hypot(client.x - event.clientX, client.y - event.clientY) < 12;
181
198
  });
@@ -187,15 +204,15 @@ export class ConnectorTool {
187
204
  return { point };
188
205
  let endpoint = { target, anchor: 'auto' };
189
206
  let nearest = 12;
190
- for (const anchor of sides) {
191
- const port = connectorPort({ target, anchor }, point);
207
+ for (const hint of hints(target)) {
208
+ const port = connectorPort(hint, point);
192
209
  const client = port && drawing.toClient(port.point);
193
210
  if (!client)
194
211
  continue;
195
212
  const distance = Math.hypot(client.x - event.clientX, client.y - event.clientY);
196
213
  if (distance < nearest) {
197
214
  nearest = distance;
198
- endpoint = { target, anchor };
215
+ endpoint = hint;
199
216
  }
200
217
  }
201
218
  this.hover = { target, endpoint };
@@ -262,19 +279,23 @@ export class ConnectorTool {
262
279
  return;
263
280
  const document = overlay.ownerDocument;
264
281
  if (this.hover)
265
- for (const anchor of sides) {
266
- const port = connectorPort({ target: this.hover.target, anchor }, { x: 0, y: 0 });
282
+ for (const hint of hints(this.hover.target)) {
283
+ const port = connectorPort(hint, { x: 0, y: 0 });
267
284
  const point = port && this.surface.fromRoot(port.point);
285
+ const active = same(hint, this.hover.endpoint);
268
286
  if (point)
269
287
  overlay.append(svg(document, 'circle', {
270
288
  cx: point.x,
271
289
  cy: point.y,
272
290
  r: 5,
273
- fill: 'white',
291
+ fill: active ? '#2563eb' : 'white',
274
292
  stroke: '#2563eb',
275
293
  'stroke-width': 1.5,
276
294
  'pointer-events': 'none',
277
- 'data-connector-anchor': anchor,
295
+ ...('port' in hint
296
+ ? { 'data-connector-port': hint.port }
297
+ : { 'data-connector-anchor': hint.anchor }),
298
+ ...(active ? { 'data-connector-active': '' } : {}),
278
299
  }));
279
300
  }
280
301
  if (!this.press)
package/dist/tool.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tool.js","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -3,9 +3,16 @@ export type ConnectorTarget = Shape | Group | Svg;
3
3
  export type ConnectorSide = 'top' | 'right' | 'bottom' | 'left';
4
4
  /** A point is normalized within the target's local geometric bounds. */
5
5
  export type ConnectorAnchor = 'auto' | ConnectorSide | Point;
6
+ /**
7
+ * A target with an anchor on its bounds, a target with a named port from its
8
+ * `portDefinitions` (for example a component's), or a loose point in drawing units.
9
+ */
6
10
  export type ConnectorEndpoint = {
7
11
  readonly target: ConnectorTarget;
8
12
  readonly anchor?: ConnectorAnchor;
13
+ } | {
14
+ readonly target: ConnectorTarget;
15
+ readonly port: string;
9
16
  } | {
10
17
  readonly point: Point;
11
18
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAEpE,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,KAAK,GAAG,GAAG,CAAC;AAClD,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAChE,wEAAwE;AACxE,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,aAAa,GAAG,KAAK,CAAC;AAC7D,MAAM,MAAM,iBAAiB,GACzB;IAAE,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAA;CAAE,GACvE;IAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC;AAC9B,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,OAAO,CAAC;AACpD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,QAAQ,CAAC,GAAG,EAAE,iBAAiB,CAAC;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;IAC1C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AACD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,QAAQ,CAAC,GAAG,EAAE,iBAAiB,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;CACpC;AACD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC;CAC3B;AACD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;CACpC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAEpE,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,KAAK,GAAG,GAAG,CAAC;AAClD,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAChE,wEAAwE;AACxE,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,aAAa,GAAG,KAAK,CAAC;AAC7D;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GACzB;IAAE,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAA;CAAE,GACvE;IAAE,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC3D;IAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC;AAC9B,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,OAAO,CAAC;AACpD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,QAAQ,CAAC,GAAG,EAAE,iBAAiB,CAAC;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;IAC1C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AACD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,QAAQ,CAAC,GAAG,EAAE,iBAAiB,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;CACpC;AACD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC;CAC3B;AACD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;CACpC"}
package/package.json CHANGED
@@ -1,63 +1,64 @@
1
- {
2
- "name": "@rasamjs/connectors",
3
- "version": "0.1.0",
4
- "type": "module",
5
- "license": "MIT",
6
- "description": "Attached straight and elbow connectors for rasam SVG drawings.",
7
- "files": [
8
- "dist",
9
- "src",
10
- "README.md",
11
- "API.md",
12
- "CHANGELOG.md",
13
- "RELEASING.md",
14
- "LICENSE"
15
- ],
16
- "types": "./dist/index.d.ts",
17
- "exports": {
18
- ".": {
19
- "rasam-source": "./src/index.ts",
20
- "types": "./dist/index.d.ts",
21
- "import": "./dist/index.js"
22
- },
23
- "./tool": {
24
- "rasam-source": "./src/tool.ts",
25
- "types": "./dist/tool.d.ts",
26
- "import": "./dist/tool.js"
27
- },
28
- "./editor": {
29
- "rasam-source": "./src/editor.ts",
30
- "types": "./dist/editor.d.ts",
31
- "import": "./dist/editor.js"
32
- }
33
- },
34
- "sideEffects": false,
35
- "peerDependencies": {
36
- "@rasamjs/core": "^0.2.0"
37
- },
38
- "devDependencies": {
39
- "@rasamjs/core": "0.2.0",
40
- "@rasamjs/history": "0.2.0",
41
- "@rasamjs/transformer": "0.5.0"
42
- },
43
- "scripts": {
44
- "build": "node scripts/build.mjs",
45
- "typecheck": "tsc -p tsconfig.check.json",
46
- "test": "vitest run",
47
- "test:browser": "playwright test",
48
- "dev": "vite --host 127.0.0.1",
49
- "format": "prettier --write src tests scripts fixtures *.json *.ts *.md",
50
- "format:check": "prettier --check src tests scripts fixtures *.json *.ts *.md",
51
- "check:consumer": "node scripts/check-consumer.mjs",
52
- "check:docs": "node scripts/check-docs.mjs",
53
- "check:size": "node scripts/check-size.mjs",
54
- "api:check": "node scripts/check-api.mjs",
55
- "api:update": "node scripts/check-api.mjs --update",
56
- "release:check": "node scripts/check-release.mjs"
57
- },
58
- "repository": {
59
- "type": "git",
60
- "url": "git+https://github.com/hdevlop/rasam.git",
61
- "directory": "packages/connectors"
62
- }
63
- }
1
+ {
2
+ "name": "@rasamjs/connectors",
3
+ "version": "0.2.0",
4
+ "type": "module",
5
+ "license": "MIT",
6
+ "description": "Attached straight and elbow connectors for rasam SVG drawings.",
7
+ "files": [
8
+ "dist",
9
+ "src",
10
+ "README.md",
11
+ "API.md",
12
+ "CHANGELOG.md",
13
+ "RELEASING.md",
14
+ "LICENSE"
15
+ ],
16
+ "types": "./dist/index.d.ts",
17
+ "exports": {
18
+ ".": {
19
+ "rasam-source": "./src/index.ts",
20
+ "types": "./dist/index.d.ts",
21
+ "import": "./dist/index.js"
22
+ },
23
+ "./tool": {
24
+ "rasam-source": "./src/tool.ts",
25
+ "types": "./dist/tool.d.ts",
26
+ "import": "./dist/tool.js"
27
+ },
28
+ "./editor": {
29
+ "rasam-source": "./src/editor.ts",
30
+ "types": "./dist/editor.d.ts",
31
+ "import": "./dist/editor.js"
32
+ }
33
+ },
34
+ "sideEffects": false,
35
+ "peerDependencies": {
36
+ "@rasamjs/core": "^0.3.0"
37
+ },
38
+ "devDependencies": {
39
+ "@rasamjs/core": "0.3.0",
40
+ "@rasamjs/history": "0.2.0",
41
+ "@rasamjs/transformer": "0.5.0"
42
+ },
43
+ "scripts": {
44
+ "build": "node scripts/build.mjs",
45
+ "typecheck": "tsc -p tsconfig.check.json",
46
+ "test": "vitest run",
47
+ "test:browser": "playwright test",
48
+ "dev": "vite --host 127.0.0.1",
49
+ "format": "prettier --write src tests scripts fixtures *.json *.ts *.md",
50
+ "format:check": "prettier --check src tests scripts fixtures *.json *.ts *.md",
51
+ "check:consumer": "node scripts/check-consumer.mjs",
52
+ "check:docs": "node scripts/check-docs.mjs",
53
+ "check:size": "node scripts/check-size.mjs",
54
+ "api:check": "node scripts/check-api.mjs",
55
+ "api:update": "node scripts/check-api.mjs --update",
56
+ "release:check": "node scripts/check-release.mjs",
57
+ "bench": "node scripts/benchmark.mjs"
58
+ },
59
+ "repository": {
60
+ "type": "git",
61
+ "url": "git+https://github.com/hdevlop/rasam.git",
62
+ "directory": "packages/connectors"
63
+ }
64
+ }