@pie-lib/graphing-solution-set 5.0.1-next.20261004165705 → 5.0.1-next.20261004173930
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/__tests__/coordinates-label.test.d.ts +1 -0
- package/dist/__tests__/mark-label-placement.test.d.ts +1 -0
- package/dist/coordinates-label.js +12 -13
- package/dist/mark-label.js +56 -41
- package/dist/tools/polygon/component.d.ts +1 -0
- package/dist/tools/polygon/component.js +27 -24
- package/package.json +6 -6
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -5,16 +5,16 @@ import { types as n } from "@pie-lib/plot";
|
|
|
5
5
|
import { color as r } from "@pie-lib/render-ui";
|
|
6
6
|
import { jsx as i } from "react/jsx-runtime";
|
|
7
7
|
import { styled as a } from "@mui/material/styles";
|
|
8
|
-
import o from "@mui/material/InputBase";
|
|
9
8
|
//#region src/coordinates-label.tsx
|
|
10
|
-
var
|
|
9
|
+
var o = a("div")(({ theme: e }) => ({
|
|
11
10
|
fontFamily: e.typography.fontFamily,
|
|
12
11
|
fontSize: e.typography.fontSize,
|
|
13
12
|
borderRadius: "8px",
|
|
14
13
|
background: e.palette.common.white,
|
|
15
14
|
color: r.defaults.BLACK,
|
|
16
|
-
"
|
|
17
|
-
|
|
15
|
+
lineHeight: "1.4375em",
|
|
16
|
+
whiteSpace: "nowrap"
|
|
17
|
+
})), s = (e, t, n, r) => {
|
|
18
18
|
let { scale: i, domain: a, range: o } = e, s = n === o.min ? 16 : n === o.max ? 0 : 8;
|
|
19
19
|
return i.x(t) + r + 10 >= i.x(a.max) ? {
|
|
20
20
|
left: i.x(t) - 10 - r,
|
|
@@ -23,24 +23,23 @@ var s = a(o)(({ theme: e }) => ({
|
|
|
23
23
|
left: i.x(t) + 10,
|
|
24
24
|
top: i.y(n) - s
|
|
25
25
|
};
|
|
26
|
-
},
|
|
27
|
-
let a = `(${e(t)}, ${e(n)})`,
|
|
28
|
-
return /* @__PURE__ */ i(
|
|
26
|
+
}, c = ({ x: t, y: n, graphProps: r }) => {
|
|
27
|
+
let a = `(${e(t)}, ${e(n)})`, c = (a.length || 0) * 6;
|
|
28
|
+
return /* @__PURE__ */ i(o, {
|
|
29
29
|
style: {
|
|
30
30
|
position: "absolute",
|
|
31
31
|
pointerEvents: "auto",
|
|
32
|
-
width:
|
|
32
|
+
width: c,
|
|
33
33
|
padding: 0,
|
|
34
|
-
...
|
|
34
|
+
...s(r, t, n, c)
|
|
35
35
|
},
|
|
36
|
-
|
|
37
|
-
inputProps: { ariaLabel: "naked" }
|
|
36
|
+
children: a
|
|
38
37
|
});
|
|
39
38
|
};
|
|
40
|
-
|
|
39
|
+
c.propTypes = {
|
|
41
40
|
graphProps: n.GraphPropsType,
|
|
42
41
|
x: t.number,
|
|
43
42
|
y: t.number
|
|
44
43
|
};
|
|
45
44
|
//#endregion
|
|
46
|
-
export {
|
|
45
|
+
export { c as CoordinatesLabel, c as default, s as getLabelPosition };
|
package/dist/mark-label.js
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
import { roundNumber as e } from "./utils.js";
|
|
2
2
|
import { AutosizeInput as t } from "./autosize-input.js";
|
|
3
3
|
import { useDebounce as n } from "./use-debounce.js";
|
|
4
|
-
import { useCallback as r, useEffect as i,
|
|
5
|
-
import
|
|
6
|
-
import { types as
|
|
7
|
-
import { color as
|
|
8
|
-
import
|
|
9
|
-
import { jsx as
|
|
10
|
-
import { styled as
|
|
4
|
+
import { useCallback as r, useEffect as i, useLayoutEffect as a, useState as o } from "react";
|
|
5
|
+
import s from "prop-types";
|
|
6
|
+
import { types as c } from "@pie-lib/plot";
|
|
7
|
+
import { color as l } from "@pie-lib/render-ui";
|
|
8
|
+
import u from "@pie-lib/translator";
|
|
9
|
+
import { jsx as d } from "react/jsx-runtime";
|
|
10
|
+
import { styled as f } from "@mui/material/styles";
|
|
11
11
|
//#region src/mark-label.tsx
|
|
12
|
-
var { translator:
|
|
12
|
+
var { translator: p } = u, m = f(t, { shouldForwardProp: (e) => e !== "markDisabled" })(({ theme: e, disabled: t, markDisabled: n }) => ({ "& input": {
|
|
13
13
|
float: "right",
|
|
14
14
|
padding: e.spacing(.5),
|
|
15
15
|
fontFamily: e.typography.fontFamily,
|
|
16
16
|
fontSize: e.typography.fontSize,
|
|
17
|
-
border: `solid 1px ${t ?
|
|
17
|
+
border: `solid 1px ${t ? l.defaults.PRIMARY_DARK : n ? l.disabled() : l.defaults.SECONDARY}`,
|
|
18
18
|
borderRadius: "3px",
|
|
19
|
-
color: n ?
|
|
19
|
+
color: n ? l.disabled() : l.defaults.PRIMARY_DARK,
|
|
20
20
|
background: t || n ? e.palette.background.paper : "transparent"
|
|
21
|
-
} })),
|
|
21
|
+
} })), h = (e, t, n) => {
|
|
22
22
|
n ||= {
|
|
23
23
|
width: 0,
|
|
24
24
|
height: 0
|
|
25
25
|
};
|
|
26
26
|
let { scale: r, domain: i, range: a } = e, o = r.x(t.x) + n.width + 10, s = r.y(t.y) + n.height + 10, c = o >= r.x(i.max) ? "left" : "right";
|
|
27
27
|
return `${s >= r.y(a.min) ? "top" : "bottom"}-${c}`;
|
|
28
|
-
},
|
|
28
|
+
}, g = (e, t, n, r) => {
|
|
29
29
|
let { scale: i } = e;
|
|
30
30
|
switch (n ||= {
|
|
31
31
|
width: 0,
|
|
@@ -48,45 +48,60 @@ var { translator: f } = l, p = d(t, { shouldForwardProp: (e) => !["disabled", "m
|
|
|
48
48
|
top: i.y(t.y) - 10 - n.height
|
|
49
49
|
};
|
|
50
50
|
}
|
|
51
|
-
},
|
|
52
|
-
let [
|
|
53
|
-
i(() => {
|
|
54
|
-
b(l.label);
|
|
55
|
-
}, [l.label]), i(() => {
|
|
56
|
-
typeof S == "string" && S !== l.label && t.onChange(S);
|
|
57
|
-
}, [S]);
|
|
58
|
-
let C = o ? o.getBoundingClientRect() : {
|
|
51
|
+
}, _ = (e) => {
|
|
52
|
+
let [t, n] = o({
|
|
59
53
|
width: 0,
|
|
60
54
|
height: 0
|
|
61
|
-
}
|
|
55
|
+
});
|
|
56
|
+
return a(() => {
|
|
57
|
+
if (!e) return;
|
|
58
|
+
let t = () => {
|
|
59
|
+
let { width: t, height: r } = e.getBoundingClientRect();
|
|
60
|
+
n((e) => e.width === t && e.height === r ? e : {
|
|
61
|
+
width: t,
|
|
62
|
+
height: r
|
|
63
|
+
});
|
|
64
|
+
};
|
|
65
|
+
if (t(), typeof ResizeObserver > "u") return;
|
|
66
|
+
let r = new ResizeObserver(t);
|
|
67
|
+
return r.observe(e), () => r.disconnect();
|
|
68
|
+
}, [e]), t;
|
|
69
|
+
}, v = (t) => {
|
|
70
|
+
let [a, s] = o(null), c = r((e) => s(e)), { mark: l, graphProps: u, disabled: f, inputRef: v, language: y } = t, [b, x] = o(l.label), S = (e) => x(e.target.value), C = n(b, 200);
|
|
71
|
+
i(() => {
|
|
72
|
+
x(l.label);
|
|
73
|
+
}, [l.label]), i(() => {
|
|
74
|
+
typeof C == "string" && C !== l.label && t.onChange(C);
|
|
75
|
+
}, [C]);
|
|
76
|
+
let w = _(a), T = {
|
|
62
77
|
position: "fixed",
|
|
63
78
|
pointerEvents: "auto",
|
|
64
|
-
...
|
|
65
|
-
},
|
|
66
|
-
return /* @__PURE__ */
|
|
79
|
+
...g(u, l, w, h(u, l, w))
|
|
80
|
+
}, E = f || l.disabled;
|
|
81
|
+
return /* @__PURE__ */ d(m, {
|
|
67
82
|
inputRef: (e) => {
|
|
68
|
-
c(e),
|
|
83
|
+
c(e), v(e);
|
|
69
84
|
},
|
|
70
|
-
"aria-label": Number.isFinite(l.x) && Number.isFinite(l.y) ?
|
|
71
|
-
lng:
|
|
85
|
+
"aria-label": Number.isFinite(l.x) && Number.isFinite(l.y) ? p.t("graphing.markLabel", {
|
|
86
|
+
lng: y,
|
|
72
87
|
x: e(l.x),
|
|
73
88
|
y: e(l.y)
|
|
74
|
-
}) :
|
|
75
|
-
disabled:
|
|
89
|
+
}) : p.t("graphing.label", { lng: y }),
|
|
90
|
+
disabled: E,
|
|
76
91
|
markDisabled: l.disabled,
|
|
77
|
-
value:
|
|
78
|
-
style:
|
|
79
|
-
onChange:
|
|
92
|
+
value: b,
|
|
93
|
+
style: T,
|
|
94
|
+
onChange: S
|
|
80
95
|
});
|
|
81
96
|
};
|
|
82
|
-
|
|
83
|
-
disabled:
|
|
84
|
-
onChange:
|
|
85
|
-
graphProps:
|
|
86
|
-
inputRef:
|
|
87
|
-
language:
|
|
88
|
-
mark:
|
|
89
|
-
theme:
|
|
97
|
+
v.propTypes = {
|
|
98
|
+
disabled: s.bool,
|
|
99
|
+
onChange: s.func,
|
|
100
|
+
graphProps: c.GraphPropsType,
|
|
101
|
+
inputRef: s.func,
|
|
102
|
+
language: s.string,
|
|
103
|
+
mark: s.object,
|
|
104
|
+
theme: s.object
|
|
90
105
|
};
|
|
91
106
|
//#endregion
|
|
92
|
-
export {
|
|
107
|
+
export { v as MarkLabel, v as default, g as coordinates, h as position };
|
|
@@ -50,6 +50,7 @@ export declare class RawBaseComponent extends React.Component {
|
|
|
50
50
|
middle: PropTypes.Requireable<object>;
|
|
51
51
|
labelNode: PropTypes.Requireable<object>;
|
|
52
52
|
labelModeEnabled: PropTypes.Requireable<boolean>;
|
|
53
|
+
language: PropTypes.Requireable<string>;
|
|
53
54
|
onChangeLabelProps: PropTypes.Requireable<(...args: any[]) => any>;
|
|
54
55
|
onChangeProps: PropTypes.Requireable<(...args: any[]) => any>;
|
|
55
56
|
};
|
|
@@ -9,17 +9,17 @@ import l from "prop-types";
|
|
|
9
9
|
import { chunk as u, isEmpty as d } from "@pie-element/shared-lodash";
|
|
10
10
|
import { types as f } from "@pie-lib/plot";
|
|
11
11
|
import p from "debug";
|
|
12
|
-
import { jsx as m } from "react/jsx-runtime";
|
|
13
|
-
import
|
|
12
|
+
import { jsx as m, jsxs as h } from "react/jsx-runtime";
|
|
13
|
+
import g from "react-dom";
|
|
14
14
|
//#region src/tools/polygon/component.tsx
|
|
15
|
-
var
|
|
15
|
+
var _ = /* @__PURE__ */ e(t(), 1), v = p("pie-lib:graphing-solution-set:polygon"), y = (e, ...t) => u(t, 2).reduce((e, t) => {
|
|
16
16
|
if (t.length === 2) {
|
|
17
17
|
let [n, r] = t;
|
|
18
|
-
(0,
|
|
18
|
+
(0, _.default)(Number.isFinite(n.index), "Index must be defined");
|
|
19
19
|
let i = n.index;
|
|
20
20
|
return i >= 0 && e.splice(i, 1, r), e;
|
|
21
21
|
} else return e;
|
|
22
|
-
}, [...e]),
|
|
22
|
+
}, [...e]), b = class extends c.Component {
|
|
23
23
|
static propTypes = {
|
|
24
24
|
className: l.string,
|
|
25
25
|
disabled: l.bool,
|
|
@@ -38,22 +38,23 @@ var g = /* @__PURE__ */ e(t(), 1), _ = p("pie-lib:graphing-solution-set:polygon"
|
|
|
38
38
|
middle: l.object,
|
|
39
39
|
labelNode: l.object,
|
|
40
40
|
labelModeEnabled: l.bool,
|
|
41
|
+
language: l.string,
|
|
41
42
|
onChangeLabelProps: l.func,
|
|
42
43
|
onChangeProps: l.func
|
|
43
44
|
};
|
|
44
45
|
static defaultProps = { points: [] };
|
|
45
46
|
dragPoint = (e, t, r) => {
|
|
46
|
-
|
|
47
|
+
v("[dragPoint] from, to:", t, r);
|
|
47
48
|
let { onChange: i, points: a } = this.props, o = [...a], s = !!(a || []).find((e) => n(e, r));
|
|
48
49
|
n(t, r) || s || (a[e].label && (r.label = a[e].label), o.splice(e, 1, r), i(o));
|
|
49
50
|
};
|
|
50
51
|
dragLine = (e, t) => {
|
|
51
|
-
|
|
52
|
+
v("[dragLine]: ", e, t);
|
|
52
53
|
let { onChange: n } = this.props;
|
|
53
|
-
e.from.label && (t.from.label = e.from.label), e.to.label && (t.to.label = e.to.label), n(
|
|
54
|
+
e.from.label && (t.from.label = e.from.label), e.to.label && (t.to.label = e.to.label), n(y(this.props.points, e.from, t.from, e.to, t.to));
|
|
54
55
|
};
|
|
55
56
|
dragPoly = (e, t) => {
|
|
56
|
-
|
|
57
|
+
v("[dragPoly] ", e, t);
|
|
57
58
|
let { onChange: n } = this.props;
|
|
58
59
|
t.forEach((n, r) => {
|
|
59
60
|
e[r].label && (t[r].label = e[r].label);
|
|
@@ -61,7 +62,7 @@ var g = /* @__PURE__ */ e(t(), 1), _ = p("pie-lib:graphing-solution-set:polygon"
|
|
|
61
62
|
};
|
|
62
63
|
close = () => {
|
|
63
64
|
let { points: e, onClosePolygon: t } = this.props;
|
|
64
|
-
|
|
65
|
+
v("[close] ..."), e.length >= 3 ? t() : v("[close] - nope");
|
|
65
66
|
};
|
|
66
67
|
labelChange = (e, t) => {
|
|
67
68
|
let { points: n, onChangeProps: r } = this.props, i = { ...e };
|
|
@@ -98,25 +99,26 @@ var g = /* @__PURE__ */ e(t(), 1), _ = p("pie-lib:graphing-solution-set:polygon"
|
|
|
98
99
|
};
|
|
99
100
|
input = {};
|
|
100
101
|
render() {
|
|
101
|
-
let { closed: e, graphProps: t, onChangeLabelProps: n, points: r, middle: i, labelNode: a, labelModeEnabled: l,
|
|
102
|
-
return a && i && Object.prototype.hasOwnProperty.call(i, "label") &&
|
|
103
|
-
inputRef: (e) => this.input[
|
|
102
|
+
let { closed: e, graphProps: t, onChangeLabelProps: n, points: r, middle: i, labelNode: a, labelModeEnabled: l, language: u, isSolution: d = !1 } = this.props, f = r && r.length || 0, p = null;
|
|
103
|
+
return a && i && Object.prototype.hasOwnProperty.call(i, "label") && (p = g.createPortal(/* @__PURE__ */ m(s, {
|
|
104
|
+
inputRef: (e) => this.input[f] = e,
|
|
104
105
|
disabled: !l,
|
|
105
106
|
mark: i,
|
|
106
107
|
graphProps: t,
|
|
108
|
+
language: u,
|
|
107
109
|
onChange: (e) => n({
|
|
108
110
|
...i,
|
|
109
111
|
label: e
|
|
110
112
|
})
|
|
111
|
-
}), a), /* @__PURE__ */ m("g", { children: /* @__PURE__ */
|
|
113
|
+
}), a)), /* @__PURE__ */ m("g", { children: /* @__PURE__ */ h(c.Fragment, { children: [/* @__PURE__ */ m(o, {
|
|
112
114
|
points: r,
|
|
113
115
|
closed: e,
|
|
114
|
-
isSolution:
|
|
116
|
+
isSolution: d,
|
|
115
117
|
graphProps: t,
|
|
116
|
-
onClick: this.clickPoint.bind(this, i,
|
|
117
|
-
}) }) });
|
|
118
|
+
onClick: this.clickPoint.bind(this, i, f)
|
|
119
|
+
}), p] }) });
|
|
118
120
|
}
|
|
119
|
-
},
|
|
121
|
+
}, x = b, S = class extends c.Component {
|
|
120
122
|
static propTypes = {
|
|
121
123
|
...a,
|
|
122
124
|
graphProps: f.GraphPropsType.isRequired
|
|
@@ -157,7 +159,7 @@ var g = /* @__PURE__ */ e(t(), 1), _ = p("pie-lib:graphing-solution-set:polygon"
|
|
|
157
159
|
});
|
|
158
160
|
};
|
|
159
161
|
closePolygon = () => {
|
|
160
|
-
|
|
162
|
+
v("[closePolygon] ...");
|
|
161
163
|
let { onComplete: e, mark: t } = this.props;
|
|
162
164
|
e(t, {
|
|
163
165
|
...t,
|
|
@@ -172,9 +174,9 @@ var g = /* @__PURE__ */ e(t(), 1), _ = p("pie-lib:graphing-solution-set:polygon"
|
|
|
172
174
|
});
|
|
173
175
|
};
|
|
174
176
|
render() {
|
|
175
|
-
let { coordinatesOnHover: e, mark: t, graphProps: n, onClick: r, isToolActive: i, labelNode: a, labelModeEnabled: o } = this.props, { mark:
|
|
176
|
-
return /* @__PURE__ */ m(
|
|
177
|
-
...
|
|
177
|
+
let { coordinatesOnHover: e, mark: t, graphProps: n, onClick: r, isToolActive: i, labelNode: a, labelModeEnabled: o, language: s } = this.props, { mark: c } = this.state;
|
|
178
|
+
return /* @__PURE__ */ m(x, {
|
|
179
|
+
...c || t,
|
|
178
180
|
coordinatesOnHover: e,
|
|
179
181
|
onChange: this.change,
|
|
180
182
|
onChangeLabelProps: this.changeLabelProps,
|
|
@@ -186,9 +188,10 @@ var g = /* @__PURE__ */ e(t(), 1), _ = p("pie-lib:graphing-solution-set:polygon"
|
|
|
186
188
|
graphProps: n,
|
|
187
189
|
isToolActive: i,
|
|
188
190
|
labelNode: a,
|
|
189
|
-
labelModeEnabled: o
|
|
191
|
+
labelModeEnabled: o,
|
|
192
|
+
language: s
|
|
190
193
|
});
|
|
191
194
|
}
|
|
192
195
|
};
|
|
193
196
|
//#endregion
|
|
194
|
-
export {
|
|
197
|
+
export { x as BaseComponent, b as RawBaseComponent, S as default, y as swap };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-lib/graphing-solution-set",
|
|
3
|
-
"version": "5.0.1-next.
|
|
3
|
+
"version": "5.0.1-next.20261004173930",
|
|
4
4
|
"description": "Graphing components",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -14,13 +14,13 @@
|
|
|
14
14
|
"@mapbox/point-geometry": "^1.1.0",
|
|
15
15
|
"@mui/icons-material": "^7.3.4",
|
|
16
16
|
"@mui/material": "^7.3.4",
|
|
17
|
-
"@pie-lib/drag": "5.0.1-next.
|
|
18
|
-
"@pie-lib/editable-html-tip-tap": "3.0.1-next.
|
|
17
|
+
"@pie-lib/drag": "5.0.1-next.20261004173930",
|
|
18
|
+
"@pie-lib/editable-html-tip-tap": "3.0.1-next.20261004173930",
|
|
19
19
|
"@pie-lib/graphing-utils": "4.0.1-next.20261002233132",
|
|
20
|
-
"@pie-lib/plot": "5.0.1-next.
|
|
20
|
+
"@pie-lib/plot": "5.0.1-next.20261004173930",
|
|
21
21
|
"@pie-lib/render-ui": "8.0.1-next.20261004165705",
|
|
22
22
|
"@pie-lib/tools": "3.0.1-next.20261002233132",
|
|
23
|
-
"@pie-lib/translator": "5.0.1-next.
|
|
23
|
+
"@pie-lib/translator": "5.0.1-next.20261004173930",
|
|
24
24
|
"@visx/axis": "^4.0.0",
|
|
25
25
|
"@visx/clip-path": "^4.0.0",
|
|
26
26
|
"@visx/curve": "^4.0.0",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"redux-undo": "^1.1.0",
|
|
41
41
|
"@pie-element/shared-lodash": "0.1.2-next.20261002215153",
|
|
42
42
|
"clsx": "^2.1.1",
|
|
43
|
-
"@pie-lib/config-ui": "14.0.1-next.
|
|
43
|
+
"@pie-lib/config-ui": "14.0.1-next.20261004173930",
|
|
44
44
|
"@dnd-kit/core": "^6.3.1",
|
|
45
45
|
"@dnd-kit/utilities": "^3.2.2",
|
|
46
46
|
"d3-shape": "^3.2.0"
|