@pie-element/number-line 13.1.2-next.2 → 13.1.2
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/CHANGELOG.json +1247 -0
- package/CHANGELOG.md +2441 -0
- package/LICENSE.md +5 -0
- package/README.md +28 -0
- package/configure/CHANGELOG.json +827 -0
- package/configure/CHANGELOG.md +2088 -0
- package/configure/lib/arrows.js +89 -0
- package/configure/lib/arrows.js.map +1 -0
- package/configure/lib/card-bar.js +57 -0
- package/configure/lib/card-bar.js.map +1 -0
- package/configure/lib/defaults.js +177 -0
- package/configure/lib/defaults.js.map +1 -0
- package/configure/lib/domain.js +87 -0
- package/configure/lib/domain.js.map +1 -0
- package/configure/lib/index.js +176 -0
- package/configure/lib/index.js.map +1 -0
- package/configure/lib/main.js +815 -0
- package/configure/lib/main.js.map +1 -0
- package/configure/lib/number-text-field.js +26 -0
- package/configure/lib/number-text-field.js.map +1 -0
- package/configure/lib/point-config.js +84 -0
- package/configure/lib/point-config.js.map +1 -0
- package/configure/lib/size.js +66 -0
- package/configure/lib/size.js.map +1 -0
- package/configure/lib/ticks.js +234 -0
- package/configure/lib/ticks.js.map +1 -0
- package/configure/lib/utils.js +12 -0
- package/configure/lib/utils.js.map +1 -0
- package/configure/package.json +20 -0
- package/controller/CHANGELOG.json +332 -0
- package/controller/CHANGELOG.md +1360 -0
- package/controller/lib/defaults.js +56 -0
- package/controller/lib/defaults.js.map +1 -0
- package/controller/lib/index.js +430 -0
- package/controller/lib/index.js.map +1 -0
- package/controller/lib/tickUtils.js +294 -0
- package/controller/lib/tickUtils.js.map +1 -0
- package/controller/lib/utils.js +168 -0
- package/controller/lib/utils.js.map +1 -0
- package/controller/package.json +20 -0
- package/demo.gif +0 -0
- package/docs/config-schema.json +2532 -0
- package/docs/config-schema.json.md +1844 -0
- package/docs/demo/config.js +8 -0
- package/docs/demo/generate.js +39 -0
- package/docs/demo/index.html +1 -0
- package/docs/pie-schema.json +2461 -0
- package/docs/pie-schema.json.md +1228 -0
- package/docs/schemas/config.json +256 -0
- package/lib/data-converter.js +96 -0
- package/lib/data-converter.js.map +1 -0
- package/lib/draggable/index.js +114 -0
- package/lib/draggable/index.js.map +1 -0
- package/lib/index.js +196 -0
- package/lib/index.js.map +1 -0
- package/lib/number-line/colors.js +11 -0
- package/lib/number-line/colors.js.map +1 -0
- package/lib/number-line/feedback.js +92 -0
- package/lib/number-line/feedback.js.map +1 -0
- package/lib/number-line/graph/arrow.js +44 -0
- package/lib/number-line/graph/arrow.js.map +1 -0
- package/lib/number-line/graph/elements/base.js +20 -0
- package/lib/number-line/graph/elements/base.js.map +1 -0
- package/lib/number-line/graph/elements/builder.js +37 -0
- package/lib/number-line/graph/elements/builder.js.map +1 -0
- package/lib/number-line/graph/elements/line.js +259 -0
- package/lib/number-line/graph/elements/line.js.map +1 -0
- package/lib/number-line/graph/elements/point.js +204 -0
- package/lib/number-line/graph/elements/point.js.map +1 -0
- package/lib/number-line/graph/elements/ray.js +190 -0
- package/lib/number-line/graph/elements/ray.js.map +1 -0
- package/lib/number-line/graph/index.js +262 -0
- package/lib/number-line/graph/index.js.map +1 -0
- package/lib/number-line/graph/line.js +38 -0
- package/lib/number-line/graph/line.js.map +1 -0
- package/lib/number-line/graph/stacks.js +78 -0
- package/lib/number-line/graph/stacks.js.map +1 -0
- package/lib/number-line/graph/tick-utils.js +347 -0
- package/lib/number-line/graph/tick-utils.js.map +1 -0
- package/lib/number-line/graph/ticks.js +188 -0
- package/lib/number-line/graph/ticks.js.map +1 -0
- package/lib/number-line/index.js +384 -0
- package/lib/number-line/index.js.map +1 -0
- package/lib/number-line/point-chooser/button.js +49 -0
- package/lib/number-line/point-chooser/button.js.map +1 -0
- package/lib/number-line/point-chooser/img.js +8 -0
- package/lib/number-line/point-chooser/img.js.map +1 -0
- package/lib/number-line/point-chooser/index.js +197 -0
- package/lib/number-line/point-chooser/index.js.map +1 -0
- package/lib/number-line/point-chooser/styles.js +77 -0
- package/lib/number-line/point-chooser/styles.js.map +1 -0
- package/lib/number-line/transitions/fade.js +88 -0
- package/lib/number-line/transitions/fade.js.map +1 -0
- package/lib/number-line/transitions/index.js +14 -0
- package/lib/number-line/transitions/index.js.map +1 -0
- package/package.json +21 -86
- package/configure.js +0 -2
- package/controller.js +0 -1
- package/dist/_virtual/_rolldown/runtime.js +0 -11
- package/dist/author/arrows.d.ts +0 -28
- package/dist/author/arrows.js +0 -69
- package/dist/author/card-bar.d.ts +0 -20
- package/dist/author/card-bar.js +0 -41
- package/dist/author/defaults.d.ts +0 -178
- package/dist/author/defaults.js +0 -144
- package/dist/author/domain.d.ts +0 -15
- package/dist/author/domain.js +0 -54
- package/dist/author/index.d.ts +0 -23
- package/dist/author/index.js +0 -89
- package/dist/author/main.d.ts +0 -44
- package/dist/author/main.js +0 -485
- package/dist/author/number-text-field.d.ts +0 -13
- package/dist/author/number-text-field.js +0 -13
- package/dist/author/point-config.d.ts +0 -25
- package/dist/author/point-config.js +0 -69
- package/dist/author/size.d.ts +0 -24
- package/dist/author/size.js +0 -48
- package/dist/author/ticks.d.ts +0 -22
- package/dist/author/ticks.js +0 -115
- package/dist/author/utils.d.ts +0 -9
- package/dist/author/utils.js +0 -4
- package/dist/browser/author/index.js +0 -40259
- package/dist/browser/author/index.js.map +0 -1
- package/dist/browser/controller/index.js +0 -569
- package/dist/browser/controller/index.js.map +0 -1
- package/dist/browser/delivery/index.js +0 -2
- package/dist/browser/delivery-DWjDT9Sz.js +0 -17910
- package/dist/browser/delivery-DWjDT9Sz.js.map +0 -1
- package/dist/browser/dist-D5T-OaLo.js +0 -19038
- package/dist/browser/dist-D5T-OaLo.js.map +0 -1
- package/dist/browser/impureFunctionsAny.generated-Bqfato71.js +0 -10162
- package/dist/browser/impureFunctionsAny.generated-Bqfato71.js.map +0 -1
- package/dist/browser/number-line.css +0 -2
- package/dist/controller/defaults.d.ts +0 -58
- package/dist/controller/defaults.js +0 -50
- package/dist/controller/index.d.ts +0 -47
- package/dist/controller/index.js +0 -165
- package/dist/controller/tickUtils.d.ts +0 -21
- package/dist/controller/tickUtils.js +0 -252
- package/dist/controller/utils.d.ts +0 -9
- package/dist/controller/utils.js +0 -68
- package/dist/delivery/data-converter.d.ts +0 -64
- package/dist/delivery/data-converter.js +0 -70
- package/dist/delivery/draggable/index.d.ts +0 -33
- package/dist/delivery/draggable/index.js +0 -39
- package/dist/delivery/index.d.ts +0 -35
- package/dist/delivery/index.js +0 -109
- package/dist/delivery/number-line/colors.d.ts +0 -11
- package/dist/delivery/number-line/colors.js +0 -5
- package/dist/delivery/number-line/feedback.d.ts +0 -19
- package/dist/delivery/number-line/feedback.js +0 -57
- package/dist/delivery/number-line/graph/arrow.d.ts +0 -30
- package/dist/delivery/number-line/graph/arrow.js +0 -27
- package/dist/delivery/number-line/graph/elements/base.d.ts +0 -16
- package/dist/delivery/number-line/graph/elements/base.js +0 -11
- package/dist/delivery/number-line/graph/elements/builder.d.ts +0 -33
- package/dist/delivery/number-line/graph/elements/builder.js +0 -30
- package/dist/delivery/number-line/graph/elements/line.d.ts +0 -51
- package/dist/delivery/number-line/graph/elements/line.js +0 -188
- package/dist/delivery/number-line/graph/elements/point.d.ts +0 -43
- package/dist/delivery/number-line/graph/elements/point.js +0 -127
- package/dist/delivery/number-line/graph/elements/ray.d.ts +0 -43
- package/dist/delivery/number-line/graph/elements/ray.js +0 -130
- package/dist/delivery/number-line/graph/index.d.ts +0 -59
- package/dist/delivery/number-line/graph/index.js +0 -196
- package/dist/delivery/number-line/graph/line.d.ts +0 -46
- package/dist/delivery/number-line/graph/line.js +0 -27
- package/dist/delivery/number-line/graph/stacks.d.ts +0 -10
- package/dist/delivery/number-line/graph/stacks.js +0 -40
- package/dist/delivery/number-line/graph/tick-utils.d.ts +0 -80
- package/dist/delivery/number-line/graph/tick-utils.js +0 -295
- package/dist/delivery/number-line/graph/ticks.d.ts +0 -46
- package/dist/delivery/number-line/graph/ticks.js +0 -115
- package/dist/delivery/number-line/index.d.ts +0 -35
- package/dist/delivery/number-line/index.js +0 -215
- package/dist/delivery/number-line/point-chooser/button.d.ts +0 -31
- package/dist/delivery/number-line/point-chooser/button.js +0 -36
- package/dist/delivery/number-line/point-chooser/img.d.ts +0 -10
- package/dist/delivery/number-line/point-chooser/img.js +0 -4
- package/dist/delivery/number-line/point-chooser/index.d.ts +0 -37
- package/dist/delivery/number-line/point-chooser/index.js +0 -154
- package/dist/delivery/number-line/point-chooser/styles.d.ts +0 -192
- package/dist/delivery/number-line/transitions/fade.d.ts +0 -34
- package/dist/delivery/number-line/transitions/fade.js +0 -75
- package/dist/delivery/number-line/transitions/index.d.ts +0 -10
- package/dist/index.d.ts +0 -1
- package/dist/index.iife.d.ts +0 -8
- package/dist/index.iife.js +0 -197
- package/dist/index.js +0 -2
- package/dist/runtime-support.d.ts +0 -12
- package/dist/runtime-support.js +0 -12
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = exports.Point = void 0;
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
12
|
+
var _styles = require("@mui/material/styles");
|
|
13
|
+
var _renderUi = require("@pie-lib/render-ui");
|
|
14
|
+
var _draggable = require("../../../draggable");
|
|
15
|
+
const duration = '150ms';
|
|
16
|
+
const StyledCircle = (0, _styles.styled)('circle')(({
|
|
17
|
+
$selected,
|
|
18
|
+
$disabled,
|
|
19
|
+
$correct,
|
|
20
|
+
$empty
|
|
21
|
+
}) => ({
|
|
22
|
+
cursor: 'pointer',
|
|
23
|
+
transition: `r ${duration} linear,
|
|
24
|
+
opacity ${duration} linear,
|
|
25
|
+
fill ${duration} linear,
|
|
26
|
+
stroke ${duration} linear`,
|
|
27
|
+
stroke: _renderUi.color.primary(),
|
|
28
|
+
fill: _renderUi.color.primary(),
|
|
29
|
+
// was ".react-draggable-dragging"
|
|
30
|
+
'&.dnd-kit-dragging': {
|
|
31
|
+
opacity: 0.25,
|
|
32
|
+
r: '10px'
|
|
33
|
+
},
|
|
34
|
+
'&:hover': {
|
|
35
|
+
stroke: _renderUi.color.primaryDark()
|
|
36
|
+
},
|
|
37
|
+
...($selected && {
|
|
38
|
+
stroke: _renderUi.color.primaryDark()
|
|
39
|
+
}),
|
|
40
|
+
...($disabled && {
|
|
41
|
+
cursor: 'not-allowed',
|
|
42
|
+
opacity: 0.8
|
|
43
|
+
}),
|
|
44
|
+
...($correct === true && {
|
|
45
|
+
cursor: 'inherit',
|
|
46
|
+
stroke: _renderUi.color.correct(),
|
|
47
|
+
fill: _renderUi.color.correct()
|
|
48
|
+
}),
|
|
49
|
+
...($correct === false && {
|
|
50
|
+
cursor: 'inherit',
|
|
51
|
+
stroke: _renderUi.color.incorrect(),
|
|
52
|
+
fill: _renderUi.color.incorrect()
|
|
53
|
+
}),
|
|
54
|
+
...($empty && {
|
|
55
|
+
fill: 'white'
|
|
56
|
+
})
|
|
57
|
+
}));
|
|
58
|
+
class Point extends _react.default.Component {
|
|
59
|
+
render() {
|
|
60
|
+
const {
|
|
61
|
+
onDragStop,
|
|
62
|
+
onDragStart,
|
|
63
|
+
onDrag: onDragCallback,
|
|
64
|
+
onClick,
|
|
65
|
+
onMove,
|
|
66
|
+
interval,
|
|
67
|
+
y,
|
|
68
|
+
bounds,
|
|
69
|
+
selected,
|
|
70
|
+
position,
|
|
71
|
+
disabled,
|
|
72
|
+
correct,
|
|
73
|
+
empty
|
|
74
|
+
} = this.props;
|
|
75
|
+
const {
|
|
76
|
+
snapValue,
|
|
77
|
+
xScale
|
|
78
|
+
} = this.context;
|
|
79
|
+
|
|
80
|
+
// same as old `is`
|
|
81
|
+
const step = xScale(interval) - xScale(0);
|
|
82
|
+
const dragPosition = deltaX => {
|
|
83
|
+
const normalized = deltaX + xScale(0);
|
|
84
|
+
const inverted = xScale.invert(normalized);
|
|
85
|
+
return snapValue(position + inverted);
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
// bounds in px (same as old scaledBounds)
|
|
89
|
+
const scaledBounds = bounds ? {
|
|
90
|
+
left: bounds.left / interval * step,
|
|
91
|
+
right: bounds.right / interval * step
|
|
92
|
+
} : null;
|
|
93
|
+
const handleMouseDown = e => e.nativeEvent.preventDefault();
|
|
94
|
+
|
|
95
|
+
// called when drag starts (via LocalDraggableDndKit)
|
|
96
|
+
const handleDragStart = () => {
|
|
97
|
+
if (onDragStart) {
|
|
98
|
+
onDragStart();
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
// called continuously while dragging (snapped+clamped deltaX in px)
|
|
103
|
+
const handleDragMove = deltaX => {
|
|
104
|
+
const p = dragPosition(deltaX);
|
|
105
|
+
if (onDragCallback) {
|
|
106
|
+
onDragCallback(p);
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
// called when drag ends (snapped+clamped deltaX in px)
|
|
111
|
+
const handleDragEnd = deltaX => {
|
|
112
|
+
if (onDragStop) {
|
|
113
|
+
onDragStop();
|
|
114
|
+
}
|
|
115
|
+
const deltaAbs = Math.abs(deltaX);
|
|
116
|
+
|
|
117
|
+
// click vs drag, same threshold as before: is / 10
|
|
118
|
+
if (deltaAbs < step / 10) {
|
|
119
|
+
if (onClick) {
|
|
120
|
+
onClick();
|
|
121
|
+
}
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
const newPosition = dragPosition(deltaX);
|
|
125
|
+
onMove(newPosition);
|
|
126
|
+
};
|
|
127
|
+
const id = `point-${position}-${y}`;
|
|
128
|
+
return /*#__PURE__*/_react.default.createElement(_draggable.Draggable, {
|
|
129
|
+
id: id,
|
|
130
|
+
disabled: disabled,
|
|
131
|
+
grid: [step],
|
|
132
|
+
bounds: scaledBounds,
|
|
133
|
+
onMouseDown: handleMouseDown,
|
|
134
|
+
onDragStart: handleDragStart,
|
|
135
|
+
onDragMove: handleDragMove,
|
|
136
|
+
onDragEnd: handleDragEnd
|
|
137
|
+
}, ({
|
|
138
|
+
setNodeRef,
|
|
139
|
+
attributes,
|
|
140
|
+
listeners,
|
|
141
|
+
translateX,
|
|
142
|
+
isDragging,
|
|
143
|
+
onMouseDown
|
|
144
|
+
}) => /*#__PURE__*/_react.default.createElement("g", (0, _extends2.default)({
|
|
145
|
+
ref: setNodeRef,
|
|
146
|
+
onMouseDown: onMouseDown
|
|
147
|
+
// axis="x": only horizontal translate
|
|
148
|
+
,
|
|
149
|
+
transform: `translate(${translateX}, 0)`
|
|
150
|
+
}, attributes, listeners), /*#__PURE__*/_react.default.createElement("circle", {
|
|
151
|
+
r: "20",
|
|
152
|
+
strokeWidth: "3",
|
|
153
|
+
style: {
|
|
154
|
+
fill: 'transparent',
|
|
155
|
+
pointerEvents: 'visibleStroke'
|
|
156
|
+
},
|
|
157
|
+
cx: xScale(position),
|
|
158
|
+
cy: y,
|
|
159
|
+
stroke: selected ? _renderUi.color.primaryDark() : 'none'
|
|
160
|
+
}), /*#__PURE__*/_react.default.createElement(StyledCircle, {
|
|
161
|
+
r: "5",
|
|
162
|
+
strokeWidth: "3",
|
|
163
|
+
cx: xScale(position),
|
|
164
|
+
cy: y,
|
|
165
|
+
$selected: selected,
|
|
166
|
+
$disabled: disabled,
|
|
167
|
+
$correct: correct,
|
|
168
|
+
$empty: empty,
|
|
169
|
+
className: isDragging ? 'dnd-kit-dragging' : undefined
|
|
170
|
+
})));
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
exports.Point = Point;
|
|
174
|
+
(0, _defineProperty2.default)(Point, "defaultProps", {
|
|
175
|
+
y: 0,
|
|
176
|
+
selected: false,
|
|
177
|
+
empty: false,
|
|
178
|
+
disabled: false,
|
|
179
|
+
correct: undefined
|
|
180
|
+
});
|
|
181
|
+
(0, _defineProperty2.default)(Point, "propTypes", {
|
|
182
|
+
interval: _propTypes.default.number.isRequired,
|
|
183
|
+
position: _propTypes.default.number.isRequired,
|
|
184
|
+
bounds: _propTypes.default.shape({
|
|
185
|
+
left: _propTypes.default.number.isRequired,
|
|
186
|
+
right: _propTypes.default.number.isRequired
|
|
187
|
+
}),
|
|
188
|
+
selected: _propTypes.default.bool,
|
|
189
|
+
disabled: _propTypes.default.bool,
|
|
190
|
+
correct: _propTypes.default.bool,
|
|
191
|
+
empty: _propTypes.default.bool,
|
|
192
|
+
y: _propTypes.default.number,
|
|
193
|
+
onMove: _propTypes.default.func.isRequired,
|
|
194
|
+
onClick: _propTypes.default.func,
|
|
195
|
+
onDrag: _propTypes.default.func,
|
|
196
|
+
onDragStop: _propTypes.default.func,
|
|
197
|
+
onDragStart: _propTypes.default.func
|
|
198
|
+
});
|
|
199
|
+
(0, _defineProperty2.default)(Point, "contextTypes", {
|
|
200
|
+
xScale: _propTypes.default.func.isRequired,
|
|
201
|
+
snapValue: _propTypes.default.func.isRequired
|
|
202
|
+
});
|
|
203
|
+
var _default = exports.default = Point;
|
|
204
|
+
//# sourceMappingURL=point.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"point.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_renderUi","_draggable","duration","StyledCircle","styled","$selected","$disabled","$correct","$empty","cursor","transition","stroke","color","primary","fill","opacity","r","primaryDark","correct","incorrect","Point","React","Component","render","onDragStop","onDragStart","onDrag","onDragCallback","onClick","onMove","interval","y","bounds","selected","position","disabled","empty","props","snapValue","xScale","context","step","dragPosition","deltaX","normalized","inverted","invert","scaledBounds","left","right","handleMouseDown","e","nativeEvent","preventDefault","handleDragStart","handleDragMove","p","handleDragEnd","deltaAbs","Math","abs","newPosition","id","default","createElement","Draggable","grid","onMouseDown","onDragMove","onDragEnd","setNodeRef","attributes","listeners","translateX","isDragging","_extends2","ref","transform","strokeWidth","style","pointerEvents","cx","cy","className","undefined","exports","_defineProperty2","PropTypes","number","isRequired","shape","bool","func","_default"],"sources":["../../../../src/number-line/graph/elements/point.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { color } from '@pie-lib/render-ui';\n\nimport { Draggable } from '../../../draggable';\n\nconst duration = '150ms';\n\nconst StyledCircle = styled('circle')(({ $selected, $disabled, $correct, $empty }) => ({\n cursor: 'pointer',\n transition: `r ${duration} linear, \n opacity ${duration} linear, \n fill ${duration} linear,\n stroke ${duration} linear`,\n stroke: color.primary(),\n fill: color.primary(),\n // was \".react-draggable-dragging\"\n '&.dnd-kit-dragging': {\n opacity: 0.25,\n r: '10px',\n },\n '&:hover': {\n stroke: color.primaryDark(),\n },\n ...($selected && {\n stroke: color.primaryDark(),\n }),\n ...($disabled && {\n cursor: 'not-allowed',\n opacity: 0.8,\n }),\n ...($correct === true && {\n cursor: 'inherit',\n stroke: color.correct(),\n fill: color.correct(),\n }),\n ...($correct === false && {\n cursor: 'inherit',\n stroke: color.incorrect(),\n fill: color.incorrect(),\n }),\n ...($empty && {\n fill: 'white',\n }),\n}));\n\nexport class Point extends React.Component {\n static defaultProps = {\n y: 0,\n selected: false,\n empty: false,\n disabled: false,\n correct: undefined,\n };\n\n static propTypes = {\n interval: PropTypes.number.isRequired,\n position: PropTypes.number.isRequired,\n bounds: PropTypes.shape({\n left: PropTypes.number.isRequired,\n right: PropTypes.number.isRequired,\n }),\n selected: PropTypes.bool,\n disabled: PropTypes.bool,\n correct: PropTypes.bool,\n empty: PropTypes.bool,\n y: PropTypes.number,\n onMove: PropTypes.func.isRequired,\n onClick: PropTypes.func,\n onDrag: PropTypes.func,\n onDragStop: PropTypes.func,\n onDragStart: PropTypes.func,\n };\n\n static contextTypes = {\n xScale: PropTypes.func.isRequired,\n snapValue: PropTypes.func.isRequired,\n };\n\n render() {\n const {\n onDragStop,\n onDragStart,\n onDrag: onDragCallback,\n onClick,\n onMove,\n interval,\n y,\n bounds,\n selected,\n position,\n disabled,\n correct,\n empty,\n } = this.props;\n\n const { snapValue, xScale } = this.context;\n\n // same as old `is`\n const step = xScale(interval) - xScale(0);\n\n const dragPosition = (deltaX) => {\n const normalized = deltaX + xScale(0);\n const inverted = xScale.invert(normalized);\n return snapValue(position + inverted);\n };\n\n // bounds in px (same as old scaledBounds)\n const scaledBounds = bounds\n ? {\n left: (bounds.left / interval) * step,\n right: (bounds.right / interval) * step,\n }\n : null;\n\n const handleMouseDown = (e) => e.nativeEvent.preventDefault();\n\n // called when drag starts (via LocalDraggableDndKit)\n const handleDragStart = () => {\n if (onDragStart) {\n onDragStart();\n }\n };\n\n // called continuously while dragging (snapped+clamped deltaX in px)\n const handleDragMove = (deltaX) => {\n const p = dragPosition(deltaX);\n if (onDragCallback) {\n onDragCallback(p);\n }\n };\n\n // called when drag ends (snapped+clamped deltaX in px)\n const handleDragEnd = (deltaX) => {\n if (onDragStop) {\n onDragStop();\n }\n\n const deltaAbs = Math.abs(deltaX);\n\n // click vs drag, same threshold as before: is / 10\n if (deltaAbs < step / 10) {\n if (onClick) {\n onClick();\n }\n return;\n }\n\n const newPosition = dragPosition(deltaX);\n onMove(newPosition);\n };\n\n const id = `point-${position}-${y}`;\n\n return (\n <Draggable \n id={id}\n disabled={disabled}\n grid={[step]}\n bounds={scaledBounds}\n onMouseDown={handleMouseDown}\n onDragStart={handleDragStart}\n onDragMove={handleDragMove}\n onDragEnd={handleDragEnd}\n >\n {({\n setNodeRef,\n attributes,\n listeners,\n translateX,\n isDragging,\n onMouseDown,\n }) => (\n <g\n ref={setNodeRef}\n onMouseDown={onMouseDown}\n // axis=\"x\": only horizontal translate\n transform={`translate(${translateX}, 0)`}\n {...attributes}\n {...listeners}\n >\n <circle\n r=\"20\"\n strokeWidth=\"3\"\n style={{ fill: 'transparent', pointerEvents: 'visibleStroke' }}\n cx={xScale(position)}\n cy={y}\n stroke={selected ? color.primaryDark() : 'none'}\n />\n <StyledCircle\n r=\"5\"\n strokeWidth=\"3\"\n cx={xScale(position)}\n cy={y}\n $selected={selected}\n $disabled={disabled}\n $correct={correct}\n $empty={empty}\n className={isDragging ? 'dnd-kit-dragging' : undefined}\n />\n </g>\n )}\n </ Draggable>\n );\n }\n}\n\nexport default Point;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = exports.Ray = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var colors = _interopRequireWildcard(require("../../colors"));
|
|
10
|
+
var _renderUi = require("@pie-lib/render-ui");
|
|
11
|
+
var _react = _interopRequireDefault(require("react"));
|
|
12
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
|
+
var _styles = require("@mui/material/styles");
|
|
14
|
+
var _arrow = _interopRequireDefault(require("../arrow"));
|
|
15
|
+
var _point = _interopRequireDefault(require("./point"));
|
|
16
|
+
var _base = require("./base");
|
|
17
|
+
var _lodashEs = require("lodash-es");
|
|
18
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
19
|
+
const StyledRayGroup = (0, _styles.styled)('g')(({
|
|
20
|
+
$selected,
|
|
21
|
+
$correct
|
|
22
|
+
}) => ({
|
|
23
|
+
'& line': {
|
|
24
|
+
cursor: 'pointer',
|
|
25
|
+
strokeWidth: '5px',
|
|
26
|
+
stroke: _renderUi.color.primary()
|
|
27
|
+
},
|
|
28
|
+
'& line, & .arrow': {
|
|
29
|
+
transition: 'stroke 150ms linear, fill 150ms linear'
|
|
30
|
+
},
|
|
31
|
+
...($selected && {
|
|
32
|
+
'& line': {
|
|
33
|
+
stroke: colors.selected
|
|
34
|
+
},
|
|
35
|
+
'& .arrow': {
|
|
36
|
+
fill: colors.selected,
|
|
37
|
+
strokeWidth: '1px',
|
|
38
|
+
stroke: colors.selected
|
|
39
|
+
}
|
|
40
|
+
}),
|
|
41
|
+
...($correct === true && {
|
|
42
|
+
'& line': {
|
|
43
|
+
stroke: colors.correct
|
|
44
|
+
},
|
|
45
|
+
'& .arrow': {
|
|
46
|
+
fill: colors.correct,
|
|
47
|
+
strokeWidth: '1px',
|
|
48
|
+
stroke: colors.correct
|
|
49
|
+
}
|
|
50
|
+
}),
|
|
51
|
+
...($correct === false && {
|
|
52
|
+
'& line': {
|
|
53
|
+
stroke: colors.incorrect
|
|
54
|
+
},
|
|
55
|
+
'& .arrow': {
|
|
56
|
+
fill: colors.incorrect,
|
|
57
|
+
strokeWidth: '1px',
|
|
58
|
+
stroke: colors.incorrect
|
|
59
|
+
}
|
|
60
|
+
})
|
|
61
|
+
}));
|
|
62
|
+
const StyledArrow = (0, _styles.styled)(_arrow.default)(({
|
|
63
|
+
$correct,
|
|
64
|
+
$selected
|
|
65
|
+
}) => ({
|
|
66
|
+
fill: _renderUi.color.primary(),
|
|
67
|
+
...($correct === true && {
|
|
68
|
+
fill: colors.correct,
|
|
69
|
+
'--arrow-color': colors.correct
|
|
70
|
+
}),
|
|
71
|
+
...($correct === false && {
|
|
72
|
+
fill: colors.incorrect,
|
|
73
|
+
'--arrow-color': colors.incorrect
|
|
74
|
+
}),
|
|
75
|
+
...($selected && {
|
|
76
|
+
fill: colors.selected,
|
|
77
|
+
'--arrow-color': colors.selected
|
|
78
|
+
})
|
|
79
|
+
}));
|
|
80
|
+
class Ray extends _react.default.Component {
|
|
81
|
+
constructor(props) {
|
|
82
|
+
super(props);
|
|
83
|
+
this.state = {
|
|
84
|
+
dragPosition: null
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
drag(p) {
|
|
88
|
+
const {
|
|
89
|
+
domain
|
|
90
|
+
} = this.props;
|
|
91
|
+
if (p >= domain.min && p <= domain.max) {
|
|
92
|
+
this.setState({
|
|
93
|
+
dragPosition: p
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
stopDrag() {
|
|
98
|
+
this.setState({
|
|
99
|
+
dragPosition: null
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
render() {
|
|
103
|
+
/* eslint-disable */
|
|
104
|
+
const {
|
|
105
|
+
interval,
|
|
106
|
+
empty,
|
|
107
|
+
position,
|
|
108
|
+
direction,
|
|
109
|
+
domain,
|
|
110
|
+
y,
|
|
111
|
+
selected,
|
|
112
|
+
disabled,
|
|
113
|
+
width,
|
|
114
|
+
correct
|
|
115
|
+
} = this.props;
|
|
116
|
+
/* eslint-enable */
|
|
117
|
+
const {
|
|
118
|
+
xScale
|
|
119
|
+
} = this.context;
|
|
120
|
+
const drag = this.drag.bind(this);
|
|
121
|
+
const stopDrag = this.stopDrag.bind(this);
|
|
122
|
+
const finalPosition = (0, _lodashEs.isNumber)(this.state.dragPosition) ? this.state.dragPosition : position;
|
|
123
|
+
const positive = direction === 'positive';
|
|
124
|
+
const left = positive ? finalPosition : domain.min;
|
|
125
|
+
const right = positive ? domain.max : finalPosition;
|
|
126
|
+
// const triangleX = positive ? xScale(right) : xScale(left);
|
|
127
|
+
|
|
128
|
+
//const et the line run all the way to 0 or width.
|
|
129
|
+
const x1 = positive ? xScale(left) : 8;
|
|
130
|
+
const x2 = positive ? width - 8 : xScale(right);
|
|
131
|
+
const arrowX = positive ? width : 0;
|
|
132
|
+
const arrowDirection = positive ? 'right' : 'left';
|
|
133
|
+
const noop = () => {};
|
|
134
|
+
return /*#__PURE__*/_react.default.createElement(StyledRayGroup, {
|
|
135
|
+
$selected: selected,
|
|
136
|
+
$correct: correct,
|
|
137
|
+
transform: `translate(0, ${y})`
|
|
138
|
+
}, /*#__PURE__*/_react.default.createElement("line", {
|
|
139
|
+
onClick: disabled ? noop : this.props.onToggleSelect,
|
|
140
|
+
className: "line-handle",
|
|
141
|
+
x1: x1,
|
|
142
|
+
x2: x2
|
|
143
|
+
}), /*#__PURE__*/_react.default.createElement(_point.default, {
|
|
144
|
+
disabled: disabled,
|
|
145
|
+
correct: correct,
|
|
146
|
+
selected: selected,
|
|
147
|
+
empty: empty,
|
|
148
|
+
interval: interval,
|
|
149
|
+
bounds: {
|
|
150
|
+
left: domain.min - position,
|
|
151
|
+
right: domain.max - position
|
|
152
|
+
},
|
|
153
|
+
position: position,
|
|
154
|
+
onDrag: drag,
|
|
155
|
+
onDragStop: stopDrag,
|
|
156
|
+
onMove: this.props.onMove,
|
|
157
|
+
onClick: this.props.onToggleSelect
|
|
158
|
+
}), /*#__PURE__*/_react.default.createElement(StyledArrow, {
|
|
159
|
+
x: arrowX,
|
|
160
|
+
$correct: correct,
|
|
161
|
+
$selected: selected,
|
|
162
|
+
direction: arrowDirection
|
|
163
|
+
}));
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
exports.Ray = Ray;
|
|
167
|
+
(0, _defineProperty2.default)(Ray, "propTypes", {
|
|
168
|
+
...(0, _base.basePropTypes)(),
|
|
169
|
+
width: _propTypes.default.number.isRequired,
|
|
170
|
+
selected: _propTypes.default.bool,
|
|
171
|
+
disabled: _propTypes.default.bool,
|
|
172
|
+
empty: _propTypes.default.bool,
|
|
173
|
+
direction: _propTypes.default.oneOf(['positive', 'negative']),
|
|
174
|
+
y: _propTypes.default.number,
|
|
175
|
+
position: _propTypes.default.number.isRequired,
|
|
176
|
+
onMove: _propTypes.default.func.isRequired,
|
|
177
|
+
onToggleSelect: _propTypes.default.func.isRequired
|
|
178
|
+
});
|
|
179
|
+
(0, _defineProperty2.default)(Ray, "defaultProps", {
|
|
180
|
+
selected: false,
|
|
181
|
+
direction: 'positive',
|
|
182
|
+
y: 0,
|
|
183
|
+
disabled: false
|
|
184
|
+
});
|
|
185
|
+
(0, _defineProperty2.default)(Ray, "contextTypes", {
|
|
186
|
+
xScale: _propTypes.default.func.isRequired,
|
|
187
|
+
snapValue: _propTypes.default.func.isRequired
|
|
188
|
+
});
|
|
189
|
+
var _default = exports.default = Ray;
|
|
190
|
+
//# sourceMappingURL=ray.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ray.js","names":["colors","_interopRequireWildcard","require","_renderUi","_react","_interopRequireDefault","_propTypes","_styles","_arrow","_point","_base","_lodashEs","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","StyledRayGroup","styled","$selected","$correct","cursor","strokeWidth","stroke","color","primary","transition","selected","fill","correct","incorrect","StyledArrow","Arrow","Ray","React","Component","constructor","props","state","dragPosition","drag","p","domain","min","max","setState","stopDrag","render","interval","empty","position","direction","y","disabled","width","xScale","context","bind","finalPosition","isNumber","positive","left","right","x1","x2","arrowX","arrowDirection","noop","createElement","transform","onClick","onToggleSelect","className","bounds","onDrag","onDragStop","onMove","x","exports","_defineProperty2","basePropTypes","PropTypes","number","isRequired","bool","oneOf","func","snapValue","_default"],"sources":["../../../../src/number-line/graph/elements/ray.jsx"],"sourcesContent":["import * as colors from '../../colors';\nimport { color } from '@pie-lib/render-ui';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport Arrow from '../arrow';\nimport Point from './point';\nimport { basePropTypes } from './base';\nimport { isNumber } from 'lodash-es';\n\nconst StyledRayGroup = styled('g')(({ $selected, $correct }) => ({\n '& line': {\n cursor: 'pointer',\n strokeWidth: '5px',\n stroke: color.primary(),\n },\n '& line, & .arrow': {\n transition: 'stroke 150ms linear, fill 150ms linear',\n },\n ...($selected && {\n '& line': {\n stroke: colors.selected,\n },\n '& .arrow': {\n fill: colors.selected,\n strokeWidth: '1px',\n stroke: colors.selected,\n },\n }),\n ...($correct === true && {\n '& line': {\n stroke: colors.correct,\n },\n '& .arrow': {\n fill: colors.correct,\n strokeWidth: '1px',\n stroke: colors.correct,\n },\n }),\n ...($correct === false && {\n '& line': {\n stroke: colors.incorrect,\n },\n '& .arrow': {\n fill: colors.incorrect,\n strokeWidth: '1px',\n stroke: colors.incorrect,\n },\n }),\n}));\n\nconst StyledArrow = styled(Arrow)(({ $correct, $selected }) => ({\n fill: color.primary(),\n ...($correct === true && {\n fill: colors.correct,\n '--arrow-color': colors.correct,\n }),\n ...($correct === false && {\n fill: colors.incorrect,\n '--arrow-color': colors.incorrect,\n }),\n ...($selected && {\n fill: colors.selected,\n '--arrow-color': colors.selected,\n }),\n}));\n\nexport class Ray extends React.Component {\n static propTypes = {\n ...basePropTypes(),\n width: PropTypes.number.isRequired,\n selected: PropTypes.bool,\n disabled: PropTypes.bool,\n empty: PropTypes.bool,\n direction: PropTypes.oneOf(['positive', 'negative']),\n y: PropTypes.number,\n position: PropTypes.number.isRequired,\n onMove: PropTypes.func.isRequired,\n onToggleSelect: PropTypes.func.isRequired,\n };\n\n static defaultProps = {\n selected: false,\n direction: 'positive',\n y: 0,\n disabled: false,\n };\n\n static contextTypes = {\n xScale: PropTypes.func.isRequired,\n snapValue: PropTypes.func.isRequired,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n dragPosition: null,\n };\n }\n\n drag(p) {\n const { domain } = this.props;\n if (p >= domain.min && p <= domain.max) {\n this.setState({ dragPosition: p });\n }\n }\n\n stopDrag() {\n this.setState({ dragPosition: null });\n }\n\n render() {\n /* eslint-disable */\n const { interval, empty, position, direction, domain, y, selected, disabled, width, correct } = this.props;\n /* eslint-enable */\n const { xScale } = this.context;\n\n const drag = this.drag.bind(this);\n const stopDrag = this.stopDrag.bind(this);\n\n const finalPosition = isNumber(this.state.dragPosition) ? this.state.dragPosition : position;\n\n const positive = direction === 'positive';\n const left = positive ? finalPosition : domain.min;\n const right = positive ? domain.max : finalPosition;\n // const triangleX = positive ? xScale(right) : xScale(left);\n\n //const et the line run all the way to 0 or width.\n const x1 = positive ? xScale(left) : 8;\n const x2 = positive ? width - 8 : xScale(right);\n const arrowX = positive ? width : 0;\n const arrowDirection = positive ? 'right' : 'left';\n\n const noop = () => {};\n\n return (\n <StyledRayGroup $selected={selected} $correct={correct} transform={`translate(0, ${y})`}>\n <line onClick={disabled ? noop : this.props.onToggleSelect} className=\"line-handle\" x1={x1} x2={x2} />\n <Point\n disabled={disabled}\n correct={correct}\n selected={selected}\n empty={empty}\n interval={interval}\n bounds={{ left: domain.min - position, right: domain.max - position }}\n position={position}\n onDrag={drag}\n onDragStop={stopDrag}\n onMove={this.props.onMove}\n onClick={this.props.onToggleSelect}\n />\n <StyledArrow x={arrowX} $correct={correct} $selected={selected} direction={arrowDirection} />\n </StyledRayGroup>\n );\n }\n}\n\nexport default Ray;\n"],"mappings":"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","ignoreList":[]}
|