panelui-native 0.16.0 → 0.20.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/lib/module/components/bottom-sheet/index.js +38 -10
- package/lib/module/components/bottom-sheet/index.js.map +1 -1
- package/lib/module/components/checkbox/index.js +24 -11
- package/lib/module/components/checkbox/index.js.map +1 -1
- package/lib/module/components/field/index.js +337 -0
- package/lib/module/components/field/index.js.map +1 -0
- package/lib/module/components/flow/flow-paths.js +378 -0
- package/lib/module/components/flow/flow-paths.js.map +1 -0
- package/lib/module/components/flow/index.js +1598 -0
- package/lib/module/components/flow/index.js.map +1 -0
- package/lib/module/components/form/index.js +77 -0
- package/lib/module/components/form/index.js.map +1 -0
- package/lib/module/components/form/use-field.js +50 -0
- package/lib/module/components/form/use-field.js.map +1 -0
- package/lib/module/components/form/use-form.js +217 -0
- package/lib/module/components/form/use-form.js.map +1 -0
- package/lib/module/components/frame/index.js +124 -22
- package/lib/module/components/frame/index.js.map +1 -1
- package/lib/module/components/otp-input/index.js +303 -0
- package/lib/module/components/otp-input/index.js.map +1 -0
- package/lib/module/components/rating/index.js +339 -0
- package/lib/module/components/rating/index.js.map +1 -0
- package/lib/module/components/signature/index.js +500 -0
- package/lib/module/components/signature/index.js.map +1 -0
- package/lib/module/components/slider/index.js +14 -1
- package/lib/module/components/slider/index.js.map +1 -1
- package/lib/module/icons/index.js +247 -0
- package/lib/module/icons/index.js.map +1 -1
- package/lib/module/index.js +7 -1
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/components/bottom-sheet/index.d.ts +15 -1
- package/lib/typescript/src/components/bottom-sheet/index.d.ts.map +1 -1
- package/lib/typescript/src/components/checkbox/index.d.ts +8 -0
- package/lib/typescript/src/components/checkbox/index.d.ts.map +1 -1
- package/lib/typescript/src/components/field/index.d.ts +94 -0
- package/lib/typescript/src/components/field/index.d.ts.map +1 -0
- package/lib/typescript/src/components/flow/flow-paths.d.ts +89 -0
- package/lib/typescript/src/components/flow/flow-paths.d.ts.map +1 -0
- package/lib/typescript/src/components/flow/index.d.ts +310 -0
- package/lib/typescript/src/components/flow/index.d.ts.map +1 -0
- package/lib/typescript/src/components/form/index.d.ts +64 -0
- package/lib/typescript/src/components/form/index.d.ts.map +1 -0
- package/lib/typescript/src/components/form/use-field.d.ts +16 -0
- package/lib/typescript/src/components/form/use-field.d.ts.map +1 -0
- package/lib/typescript/src/components/form/use-form.d.ts +37 -0
- package/lib/typescript/src/components/form/use-form.d.ts.map +1 -0
- package/lib/typescript/src/components/frame/index.d.ts +39 -2
- package/lib/typescript/src/components/frame/index.d.ts.map +1 -1
- package/lib/typescript/src/components/otp-input/index.d.ts +141 -0
- package/lib/typescript/src/components/otp-input/index.d.ts.map +1 -0
- package/lib/typescript/src/components/rating/index.d.ts +122 -0
- package/lib/typescript/src/components/rating/index.d.ts.map +1 -0
- package/lib/typescript/src/components/signature/index.d.ts +254 -0
- package/lib/typescript/src/components/signature/index.d.ts.map +1 -0
- package/lib/typescript/src/components/slider/index.d.ts +6 -0
- package/lib/typescript/src/components/slider/index.d.ts.map +1 -1
- package/lib/typescript/src/icons/index.d.ts +25 -0
- package/lib/typescript/src/icons/index.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +8 -2
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +9 -1
- package/src/components/bottom-sheet/index.tsx +50 -12
- package/src/components/checkbox/index.tsx +40 -12
- package/src/components/field/index.tsx +329 -0
- package/src/components/flow/flow-paths.ts +348 -0
- package/src/components/flow/index.tsx +1924 -0
- package/src/components/form/index.tsx +85 -0
- package/src/components/form/use-field.ts +65 -0
- package/src/components/form/use-form.ts +252 -0
- package/src/components/frame/index.tsx +162 -14
- package/src/components/otp-input/index.tsx +396 -0
- package/src/components/rating/index.tsx +416 -0
- package/src/components/signature/index.tsx +681 -0
- package/src/components/slider/index.tsx +20 -1
- package/src/icons/index.tsx +185 -0
- package/src/index.ts +78 -0
|
@@ -0,0 +1,378 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Edge geometry for Flow.
|
|
5
|
+
*
|
|
6
|
+
* Every function here is a worklet, because all of it runs against node
|
|
7
|
+
* positions held in a shared value: an edge recomputes its `d` string on the UI
|
|
8
|
+
* thread as a node is dragged, and a worklet may only call another worklet.
|
|
9
|
+
* They take and return plain numbers for the same reason — crossing the bridge
|
|
10
|
+
* per frame is exactly what this design exists to avoid.
|
|
11
|
+
*
|
|
12
|
+
* Kept out of `index.tsx` so the component file stays about components. Named
|
|
13
|
+
* `flow-paths` rather than `paths` because the registry copies a component's
|
|
14
|
+
* whole directory into one flat `ui/` folder, where `paths.ts` would be a land
|
|
15
|
+
* grab on a very common name.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
/** Which face of a node an edge leaves from or arrives at. */
|
|
19
|
+
|
|
20
|
+
/** A node's box in graph coordinates. */
|
|
21
|
+
|
|
22
|
+
/** The outward unit normal of a face — which way an edge sets off. */
|
|
23
|
+
export function sideNormal(side) {
|
|
24
|
+
'worklet';
|
|
25
|
+
|
|
26
|
+
if (side === 'left') return {
|
|
27
|
+
x: -1,
|
|
28
|
+
y: 0
|
|
29
|
+
};
|
|
30
|
+
if (side === 'right') return {
|
|
31
|
+
x: 1,
|
|
32
|
+
y: 0
|
|
33
|
+
};
|
|
34
|
+
if (side === 'top') return {
|
|
35
|
+
x: 0,
|
|
36
|
+
y: -1
|
|
37
|
+
};
|
|
38
|
+
return {
|
|
39
|
+
x: 0,
|
|
40
|
+
y: 1
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Where on a face an edge attaches. `offset` runs 0–1 along the face, so two
|
|
46
|
+
* handles on the same side can sit apart without either knowing about the other.
|
|
47
|
+
*/
|
|
48
|
+
export function anchorOf(rect, side, offset) {
|
|
49
|
+
'worklet';
|
|
50
|
+
|
|
51
|
+
if (side === 'top') {
|
|
52
|
+
return {
|
|
53
|
+
x: rect.x + rect.width * offset,
|
|
54
|
+
y: rect.y
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
if (side === 'bottom') {
|
|
58
|
+
return {
|
|
59
|
+
x: rect.x + rect.width * offset,
|
|
60
|
+
y: rect.y + rect.height
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
if (side === 'left') {
|
|
64
|
+
return {
|
|
65
|
+
x: rect.x,
|
|
66
|
+
y: rect.y + rect.height * offset
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
return {
|
|
70
|
+
x: rect.x + rect.width,
|
|
71
|
+
y: rect.y + rect.height * offset
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* The faces two nodes should use when nobody has said. Whichever axis they are
|
|
77
|
+
* further apart on wins, so nodes side by side connect left-to-right and nodes
|
|
78
|
+
* stacked connect top-to-bottom — and the edge changes its mind as they are
|
|
79
|
+
* dragged past each other, which is what makes a hand-arranged graph stay
|
|
80
|
+
* readable without anyone re-specifying anything.
|
|
81
|
+
*/
|
|
82
|
+
export function autoSides(from, to) {
|
|
83
|
+
'worklet';
|
|
84
|
+
|
|
85
|
+
const dx = to.x + to.width / 2 - (from.x + from.width / 2);
|
|
86
|
+
const dy = to.y + to.height / 2 - (from.y + from.height / 2);
|
|
87
|
+
if (Math.abs(dx) > Math.abs(dy)) {
|
|
88
|
+
return dx >= 0 ? {
|
|
89
|
+
from: 'right',
|
|
90
|
+
to: 'left'
|
|
91
|
+
} : {
|
|
92
|
+
from: 'left',
|
|
93
|
+
to: 'right'
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
return dy >= 0 ? {
|
|
97
|
+
from: 'bottom',
|
|
98
|
+
to: 'top'
|
|
99
|
+
} : {
|
|
100
|
+
from: 'top',
|
|
101
|
+
to: 'bottom'
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/** A line, for a graph where the routing is not the point. */
|
|
106
|
+
export function straightPath(from, to) {
|
|
107
|
+
'worklet';
|
|
108
|
+
|
|
109
|
+
return `M${from.x},${from.y} L${to.x},${to.y}`;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* How far a bezier's control point sits from its anchor.
|
|
114
|
+
*
|
|
115
|
+
* With room between the two faces it is half the gap, which gives the familiar
|
|
116
|
+
* S. When they overlap — the target is *behind* the source — the gap is
|
|
117
|
+
* negative and half of it would fold the curve inside out, so the offset grows
|
|
118
|
+
* with the square root of the overlap instead: enough to bulge the curve clear
|
|
119
|
+
* of the node, never enough to run away as the overlap grows.
|
|
120
|
+
*/
|
|
121
|
+
function controlOffset(distance, curvature) {
|
|
122
|
+
'worklet';
|
|
123
|
+
|
|
124
|
+
if (distance >= 0) return 0.5 * distance;
|
|
125
|
+
return curvature * 25 * Math.sqrt(-distance);
|
|
126
|
+
}
|
|
127
|
+
function controlPoint(point, side, other, curvature) {
|
|
128
|
+
'worklet';
|
|
129
|
+
|
|
130
|
+
if (side === 'left') {
|
|
131
|
+
return {
|
|
132
|
+
x: point.x - controlOffset(point.x - other.x, curvature),
|
|
133
|
+
y: point.y
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
if (side === 'right') {
|
|
137
|
+
return {
|
|
138
|
+
x: point.x + controlOffset(other.x - point.x, curvature),
|
|
139
|
+
y: point.y
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
if (side === 'top') {
|
|
143
|
+
return {
|
|
144
|
+
x: point.x,
|
|
145
|
+
y: point.y - controlOffset(point.y - other.y, curvature)
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
return {
|
|
149
|
+
x: point.x,
|
|
150
|
+
y: point.y + controlOffset(other.y - point.y, curvature)
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
/** A cubic curve leaving and arriving perpendicular to each face. */
|
|
155
|
+
export function bezierPath(from, fromSide, to, toSide, curvature) {
|
|
156
|
+
'worklet';
|
|
157
|
+
|
|
158
|
+
const c1 = controlPoint(from, fromSide, to, curvature);
|
|
159
|
+
const c2 = controlPoint(to, toSide, from, curvature);
|
|
160
|
+
return `M${from.x},${from.y} C${c1.x},${c1.y} ${c2.x},${c2.y} ${to.x},${to.y}`;
|
|
161
|
+
}
|
|
162
|
+
function distanceBetween(a, b) {
|
|
163
|
+
'worklet';
|
|
164
|
+
|
|
165
|
+
const dx = b.x - a.x;
|
|
166
|
+
const dy = b.y - a.y;
|
|
167
|
+
return Math.sqrt(dx * dx + dy * dy);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* One corner of a stepped path, rounded.
|
|
172
|
+
*
|
|
173
|
+
* The radius is capped at half of the shorter of the two segments meeting here,
|
|
174
|
+
* so a corner between two short runs tucks in rather than overshooting into the
|
|
175
|
+
* segment beyond it and drawing a path that doubles back.
|
|
176
|
+
*/
|
|
177
|
+
function bend(a, b, c, radius) {
|
|
178
|
+
'worklet';
|
|
179
|
+
|
|
180
|
+
const size = Math.min(distanceBetween(a, b) / 2, distanceBetween(b, c) / 2, radius);
|
|
181
|
+
|
|
182
|
+
// Three collinear points are not a corner.
|
|
183
|
+
if (a.x === b.x && b.x === c.x || a.y === b.y && b.y === c.y) {
|
|
184
|
+
return `L${b.x},${b.y}`;
|
|
185
|
+
}
|
|
186
|
+
if (a.y === b.y) {
|
|
187
|
+
const xDir = a.x < c.x ? -1 : 1;
|
|
188
|
+
const yDir = a.y < c.y ? 1 : -1;
|
|
189
|
+
return `L${b.x + size * xDir},${b.y}Q${b.x},${b.y} ${b.x},${b.y + size * yDir}`;
|
|
190
|
+
}
|
|
191
|
+
const xDir = a.x < c.x ? 1 : -1;
|
|
192
|
+
const yDir = a.y < c.y ? -1 : 1;
|
|
193
|
+
return `L${b.x},${b.y + size * yDir}Q${b.x},${b.y} ${b.x + size * xDir},${b.y}`;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* An orthogonal route with rounded corners — the one that reads as wiring.
|
|
198
|
+
*
|
|
199
|
+
* Both ends first step `gap` points straight out along their own face, so the
|
|
200
|
+
* edge leaves the node square-on instead of grazing its corner. From there the
|
|
201
|
+
* two are joined by a single dog-leg, split across the axis they are further
|
|
202
|
+
* apart on.
|
|
203
|
+
*
|
|
204
|
+
* `radius` of 0 gives hard corners, which is the stepped variant.
|
|
205
|
+
*/
|
|
206
|
+
export function smoothStepPath(from, fromSide, to, toSide, radius, gap) {
|
|
207
|
+
'worklet';
|
|
208
|
+
|
|
209
|
+
const fromNormal = sideNormal(fromSide);
|
|
210
|
+
const toNormal = sideNormal(toSide);
|
|
211
|
+
let fromGap = {
|
|
212
|
+
x: from.x + fromNormal.x * gap,
|
|
213
|
+
y: from.y + fromNormal.y * gap
|
|
214
|
+
};
|
|
215
|
+
let toGap = {
|
|
216
|
+
x: to.x + toNormal.x * gap,
|
|
217
|
+
y: to.y + toNormal.y * gap
|
|
218
|
+
};
|
|
219
|
+
|
|
220
|
+
// The axis the two gap points are further apart on is the one the dog-leg
|
|
221
|
+
// travels along.
|
|
222
|
+
const horizontal = Math.abs(toGap.x - fromGap.x) > Math.abs(toGap.y - fromGap.y);
|
|
223
|
+
const facing = fromNormal.x !== 0 && toNormal.x !== 0 && fromNormal.x !== toNormal.x || fromNormal.y !== 0 && toNormal.y !== 0 && fromNormal.y !== toNormal.y;
|
|
224
|
+
let middle;
|
|
225
|
+
if (facing) {
|
|
226
|
+
// Faces pointing at each other: meet in the middle of the run between them.
|
|
227
|
+
const midX = (fromGap.x + toGap.x) / 2;
|
|
228
|
+
const midY = (fromGap.y + toGap.y) / 2;
|
|
229
|
+
middle = fromNormal.x !== 0 ? [{
|
|
230
|
+
x: midX,
|
|
231
|
+
y: fromGap.y
|
|
232
|
+
}, {
|
|
233
|
+
x: midX,
|
|
234
|
+
y: toGap.y
|
|
235
|
+
}] : [{
|
|
236
|
+
x: fromGap.x,
|
|
237
|
+
y: midY
|
|
238
|
+
}, {
|
|
239
|
+
x: toGap.x,
|
|
240
|
+
y: midY
|
|
241
|
+
}];
|
|
242
|
+
} else {
|
|
243
|
+
// Faces pointing the same way, or at right angles: one corner is enough.
|
|
244
|
+
// Which of the two possible corners depends on the travelling axis.
|
|
245
|
+
middle = horizontal ? [{
|
|
246
|
+
x: toGap.x,
|
|
247
|
+
y: fromGap.y
|
|
248
|
+
}] : [{
|
|
249
|
+
x: fromGap.x,
|
|
250
|
+
y: toGap.y
|
|
251
|
+
}];
|
|
252
|
+
|
|
253
|
+
// Two handles on the same face, closer together than the gap: the gap
|
|
254
|
+
// points sit between the anchors and the route folds back over itself.
|
|
255
|
+
// Push them out far enough to clear.
|
|
256
|
+
if (fromSide === toSide) {
|
|
257
|
+
const axis = fromNormal.x !== 0 ? 'x' : 'y';
|
|
258
|
+
const apart = Math.abs(from[axis] - to[axis]);
|
|
259
|
+
if (apart <= gap) {
|
|
260
|
+
const push = Math.min(gap - 1, gap - apart);
|
|
261
|
+
if (axis === 'x') {
|
|
262
|
+
fromGap = {
|
|
263
|
+
x: fromGap.x + fromNormal.x * push,
|
|
264
|
+
y: fromGap.y
|
|
265
|
+
};
|
|
266
|
+
toGap = {
|
|
267
|
+
x: toGap.x + toNormal.x * push,
|
|
268
|
+
y: toGap.y
|
|
269
|
+
};
|
|
270
|
+
middle = [{
|
|
271
|
+
x: Math.max(fromGap.x, toGap.x),
|
|
272
|
+
y: fromGap.y
|
|
273
|
+
}];
|
|
274
|
+
} else {
|
|
275
|
+
fromGap = {
|
|
276
|
+
x: fromGap.x,
|
|
277
|
+
y: fromGap.y + fromNormal.y * push
|
|
278
|
+
};
|
|
279
|
+
toGap = {
|
|
280
|
+
x: toGap.x,
|
|
281
|
+
y: toGap.y + toNormal.y * push
|
|
282
|
+
};
|
|
283
|
+
middle = [{
|
|
284
|
+
x: fromGap.x,
|
|
285
|
+
y: Math.max(fromGap.y, toGap.y)
|
|
286
|
+
}];
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
const points = [from, fromGap, ...middle, toGap, to];
|
|
292
|
+
|
|
293
|
+
// Drop points that repeat the one before them — a duplicate reads as a
|
|
294
|
+
// zero-length segment and makes the bend either side of it collapse.
|
|
295
|
+
const route = [];
|
|
296
|
+
for (let i = 0; i < points.length; i += 1) {
|
|
297
|
+
const point = points[i];
|
|
298
|
+
const previous = route[route.length - 1];
|
|
299
|
+
if (previous && previous.x === point.x && previous.y === point.y) continue;
|
|
300
|
+
route.push(point);
|
|
301
|
+
}
|
|
302
|
+
if (route.length < 2) return `M${from.x},${from.y}`;
|
|
303
|
+
let d = `M${route[0].x},${route[0].y}`;
|
|
304
|
+
for (let i = 1; i < route.length - 1; i += 1) {
|
|
305
|
+
d += radius > 0 ? bend(route[i - 1], route[i], route[i + 1], radius) : `L${route[i].x},${route[i].y}`;
|
|
306
|
+
}
|
|
307
|
+
const last = route[route.length - 1];
|
|
308
|
+
d += `L${last.x},${last.y}`;
|
|
309
|
+
return d;
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
/**
|
|
313
|
+
* The `d` string for an edge between two anchors, in whichever shape was asked
|
|
314
|
+
* for. One entry point, so an edge's animated props are a single call.
|
|
315
|
+
*/
|
|
316
|
+
export function edgePath(variant, from, fromSide, to, toSide, curvature, radius, gap) {
|
|
317
|
+
'worklet';
|
|
318
|
+
|
|
319
|
+
if (variant === 'straight') return straightPath(from, to);
|
|
320
|
+
if (variant === 'bezier') return bezierPath(from, fromSide, to, toSide, curvature);
|
|
321
|
+
return smoothStepPath(from, fromSide, to, toSide, variant === 'step' ? 0 : radius, gap);
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
/** Length of an edge's bounding diagonal — enough to size a dash cycle by. */
|
|
325
|
+
export function edgeSpan(from, to) {
|
|
326
|
+
'worklet';
|
|
327
|
+
|
|
328
|
+
return distanceBetween(from, to);
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
/**
|
|
332
|
+
* The arrowhead at an edge's target, as its own closed path.
|
|
333
|
+
*
|
|
334
|
+
* SVG has `marker-end` for exactly this, and it is the obvious way to do it.
|
|
335
|
+
* It is not used, because a path carrying a marker reference stops picking up
|
|
336
|
+
* new geometry on re-render — the arrow-bearing edges freeze where they were
|
|
337
|
+
* first drawn while arrow-less ones follow their nodes. Drawing the triangle
|
|
338
|
+
* as an ordinary path costs nine numbers and behaves.
|
|
339
|
+
*
|
|
340
|
+
* `dirX`/`dirY` is the unit direction of travel *into* the target.
|
|
341
|
+
*/
|
|
342
|
+
export function arrowHeadPath(tip, dirX, dirY, size) {
|
|
343
|
+
'worklet';
|
|
344
|
+
|
|
345
|
+
const length = Math.sqrt(dirX * dirX + dirY * dirY) || 1;
|
|
346
|
+
const ux = dirX / length;
|
|
347
|
+
const uy = dirY / length;
|
|
348
|
+
// The perpendicular, for the two back corners.
|
|
349
|
+
const px = -uy;
|
|
350
|
+
const py = ux;
|
|
351
|
+
const baseX = tip.x - ux * size;
|
|
352
|
+
const baseY = tip.y - uy * size;
|
|
353
|
+
const half = size * 0.45;
|
|
354
|
+
return `M${tip.x},${tip.y} ` + `L${baseX + px * half},${baseY + py * half} ` + `L${baseX - px * half},${baseY - py * half} Z`;
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
/**
|
|
358
|
+
* Which way an edge is travelling as it arrives. Every routing but `straight`
|
|
359
|
+
* comes in perpendicular to the target's face, so the face decides it; a
|
|
360
|
+
* straight line comes in along itself.
|
|
361
|
+
*/
|
|
362
|
+
export function arrivalDirection(variant, from, to, toSide) {
|
|
363
|
+
'worklet';
|
|
364
|
+
|
|
365
|
+
if (variant === 'straight') {
|
|
366
|
+
return {
|
|
367
|
+
x: to.x - from.x,
|
|
368
|
+
y: to.y - from.y
|
|
369
|
+
};
|
|
370
|
+
}
|
|
371
|
+
const normal = sideNormal(toSide);
|
|
372
|
+
// The face points outward; the edge arrives against it.
|
|
373
|
+
return {
|
|
374
|
+
x: -normal.x,
|
|
375
|
+
y: -normal.y
|
|
376
|
+
};
|
|
377
|
+
}
|
|
378
|
+
//# sourceMappingURL=flow-paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["sideNormal","side","x","y","anchorOf","rect","offset","width","height","autoSides","from","to","dx","dy","Math","abs","straightPath","controlOffset","distance","curvature","sqrt","controlPoint","point","other","bezierPath","fromSide","toSide","c1","c2","distanceBetween","a","b","bend","c","radius","size","min","xDir","yDir","smoothStepPath","gap","fromNormal","toNormal","fromGap","toGap","horizontal","facing","middle","midX","midY","axis","apart","push","max","points","route","i","length","previous","d","last","edgePath","variant","edgeSpan","arrowHeadPath","tip","dirX","dirY","ux","uy","px","py","baseX","baseY","half","arrivalDirection","normal"],"sourceRoot":"../../../../src","sources":["components/flow/flow-paths.ts"],"mappings":"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","ignoreList":[]}
|