@pie-element/placement-ordering 14.1.2-next.5 → 14.1.3
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 +1312 -0
- package/CHANGELOG.md +2444 -0
- package/LICENSE.md +5 -0
- package/README.md +57 -0
- package/configure/CHANGELOG.json +952 -0
- package/configure/CHANGELOG.md +2139 -0
- package/configure/lib/choice-editor.js +252 -0
- package/configure/lib/choice-editor.js.map +1 -0
- package/configure/lib/choice-tile.js +205 -0
- package/configure/lib/choice-tile.js.map +1 -0
- package/configure/lib/defaults.js +211 -0
- package/configure/lib/defaults.js.map +1 -0
- package/configure/lib/design.js +427 -0
- package/configure/lib/design.js.map +1 -0
- package/configure/lib/help.js +14 -0
- package/configure/lib/help.js.map +1 -0
- package/configure/lib/index.js +155 -0
- package/configure/lib/index.js.map +1 -0
- package/configure/lib/utils.js +108 -0
- package/configure/lib/utils.js.map +1 -0
- package/configure/package.json +26 -0
- package/controller/CHANGELOG.json +517 -0
- package/controller/CHANGELOG.md +1518 -0
- package/controller/lib/defaults.js +29 -0
- package/controller/lib/defaults.js.map +1 -0
- package/controller/lib/index.js +285 -0
- package/controller/lib/index.js.map +1 -0
- package/controller/lib/scoring.js +109 -0
- package/controller/lib/scoring.js.map +1 -0
- package/controller/package.json +15 -0
- package/docs/config-schema.json +2964 -0
- package/docs/config-schema.json.md +2190 -0
- package/docs/demo/config.js +8 -0
- package/docs/demo/generate.js +50 -0
- package/docs/demo/index.html +1 -0
- package/docs/demo/session.js +7 -0
- package/docs/pie-schema.json +1613 -0
- package/docs/pie-schema.json.md +973 -0
- package/icon.png +0 -0
- package/lib/index.js +122 -0
- package/lib/index.js.map +1 -0
- package/lib/main.js +32 -0
- package/lib/main.js.map +1 -0
- package/lib/ordering.js +165 -0
- package/lib/ordering.js.map +1 -0
- package/lib/placement-ordering.js +419 -0
- package/lib/placement-ordering.js.map +1 -0
- package/lib/tile.js +259 -0
- package/lib/tile.js.map +1 -0
- package/lib/tiler.js +165 -0
- package/lib/tiler.js.map +1 -0
- package/lib/utils.js +18 -0
- package/lib/utils.js.map +1 -0
- package/package.json +21 -88
- package/configure.js +0 -2
- package/controller.js +0 -1
- package/dist/author/choice-editor.d.ts +0 -39
- package/dist/author/choice-editor.js +0 -156
- package/dist/author/choice-tile.d.ts +0 -40
- package/dist/author/choice-tile.js +0 -132
- package/dist/author/defaults.d.ts +0 -213
- package/dist/author/defaults.js +0 -159
- package/dist/author/design.d.ts +0 -21
- package/dist/author/design.js +0 -273
- package/dist/author/help.d.ts +0 -11
- package/dist/author/index.d.ts +0 -45
- package/dist/author/index.js +0 -85
- package/dist/author/utils.d.ts +0 -15
- package/dist/author/utils.js +0 -62
- package/dist/browser/author/index.js +0 -46600
- package/dist/browser/author/index.js.map +0 -1
- package/dist/browser/browser-DHPggtaA.js +0 -376
- package/dist/browser/browser-DHPggtaA.js.map +0 -1
- package/dist/browser/controller/index.js +0 -242
- package/dist/browser/controller/index.js.map +0 -1
- package/dist/browser/delivery/index.js +0 -1035
- package/dist/browser/delivery/index.js.map +0 -1
- package/dist/browser/dist-D9ARZhQk.js +0 -1426
- package/dist/browser/dist-D9ARZhQk.js.map +0 -1
- package/dist/browser/drag-provider-C1slTlsc.js +0 -10555
- package/dist/browser/drag-provider-C1slTlsc.js.map +0 -1
- package/dist/browser/placement-ordering.css +0 -2
- package/dist/controller/defaults.d.ts +0 -31
- package/dist/controller/defaults.js +0 -25
- package/dist/controller/index.d.ts +0 -29
- package/dist/controller/index.js +0 -123
- package/dist/controller/scoring.d.ts +0 -27
- package/dist/controller/scoring.js +0 -30
- package/dist/delivery/index.d.ts +0 -26
- package/dist/delivery/index.js +0 -70
- package/dist/delivery/main.d.ts +0 -19
- package/dist/delivery/main.js +0 -22
- package/dist/delivery/ordering.d.ts +0 -18
- package/dist/delivery/ordering.js +0 -93
- package/dist/delivery/placement-ordering.d.ts +0 -28
- package/dist/delivery/placement-ordering.js +0 -213
- package/dist/delivery/tile.d.ts +0 -28
- package/dist/delivery/tile.js +0 -165
- package/dist/delivery/tiler.d.ts +0 -42
- package/dist/delivery/tiler.js +0 -89
- package/dist/delivery/utils.d.ts +0 -9
- package/dist/delivery/utils.js +0 -8
- package/dist/index.d.ts +0 -1
- package/dist/index.iife.d.ts +0 -8
- package/dist/index.iife.js +0 -152
- package/dist/index.js +0 -2
- package/dist/runtime-support.d.ts +0 -12
- package/dist/runtime-support.js +0 -12
package/lib/tile.js
ADDED
|
@@ -0,0 +1,259 @@
|
|
|
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.Tile = void 0;
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
var _debug = _interopRequireDefault(require("debug"));
|
|
12
|
+
var _core = require("@dnd-kit/core");
|
|
13
|
+
var _styles = require("@mui/material/styles");
|
|
14
|
+
var _drag = require("@pie-lib/drag");
|
|
15
|
+
var _renderUi = require("@pie-lib/render-ui");
|
|
16
|
+
const log = (0, _debug.default)('pie-elements:placement-ordering:tile');
|
|
17
|
+
const StyledNumberContainer = (0, _styles.styled)('div')(({
|
|
18
|
+
theme
|
|
19
|
+
}) => ({
|
|
20
|
+
width: '100%',
|
|
21
|
+
fontSize: theme.typography.fontSize + 4,
|
|
22
|
+
textAlign: 'center',
|
|
23
|
+
color: `rgba(${theme.palette.common.black}, 0.6)`
|
|
24
|
+
}));
|
|
25
|
+
const Holder = ({
|
|
26
|
+
type,
|
|
27
|
+
index,
|
|
28
|
+
isOver,
|
|
29
|
+
disabled
|
|
30
|
+
}) => /*#__PURE__*/_react.default.createElement(_drag.PlaceHolder, {
|
|
31
|
+
type: type,
|
|
32
|
+
isOver: isOver,
|
|
33
|
+
disabled: disabled
|
|
34
|
+
}, type === 'target' && index !== undefined && /*#__PURE__*/_react.default.createElement(StyledNumberContainer, null, index));
|
|
35
|
+
Holder.propTypes = {
|
|
36
|
+
type: _propTypes.default.string,
|
|
37
|
+
index: _propTypes.default.number,
|
|
38
|
+
isOver: _propTypes.default.bool,
|
|
39
|
+
disabled: _propTypes.default.bool
|
|
40
|
+
};
|
|
41
|
+
const StyledTileContent = (0, _styles.styled)('div')(({
|
|
42
|
+
theme,
|
|
43
|
+
isDragging,
|
|
44
|
+
isOver,
|
|
45
|
+
disabled,
|
|
46
|
+
outcome,
|
|
47
|
+
label,
|
|
48
|
+
type
|
|
49
|
+
}) => ({
|
|
50
|
+
cursor: disabled ? 'not-allowed' : 'grab',
|
|
51
|
+
width: '100%',
|
|
52
|
+
height: '100%',
|
|
53
|
+
padding: '10px',
|
|
54
|
+
boxSizing: 'border-box',
|
|
55
|
+
overflow: 'hidden',
|
|
56
|
+
border: type === 'choice' || type === 'target' ? `1px solid ${theme.palette.grey[400]}` : '1px solid transparent',
|
|
57
|
+
backgroundColor: type === 'choice' || type === 'target' ? _renderUi.color.background() : 'transparent',
|
|
58
|
+
transition: type === 'choice' || type === 'target' ? 'background-color 150ms ease, border-color 150ms ease, opacity 150ms ease' : 'none',
|
|
59
|
+
pointerEvents: 'none',
|
|
60
|
+
userSelect: 'none',
|
|
61
|
+
...((type === 'choice' || type === 'target') && {
|
|
62
|
+
'&:hover': {
|
|
63
|
+
backgroundColor: disabled ? _renderUi.color.background() : _renderUi.color.secondary(),
|
|
64
|
+
borderColor: disabled ? theme.palette.grey[400] : theme.palette.primary.main,
|
|
65
|
+
transform: disabled ? 'none' : 'scale(1.02)'
|
|
66
|
+
}
|
|
67
|
+
}),
|
|
68
|
+
// Apply conditional styles based on props (only if not empty spacing tile)
|
|
69
|
+
...((type === 'choice' || type === 'target') && isOver && !disabled && {
|
|
70
|
+
opacity: 0.4,
|
|
71
|
+
backgroundColor: _renderUi.color.primaryLight(),
|
|
72
|
+
borderColor: theme.palette.primary.main,
|
|
73
|
+
borderStyle: 'dashed',
|
|
74
|
+
transform: 'scale(1.05)'
|
|
75
|
+
}),
|
|
76
|
+
...((type === 'choice' || type === 'target') && isDragging && !disabled && {
|
|
77
|
+
opacity: 0.6,
|
|
78
|
+
backgroundColor: _renderUi.color.secondaryLight(),
|
|
79
|
+
transform: 'scale(1.05) rotate(2deg)',
|
|
80
|
+
boxShadow: '0 8px 16px rgba(0,0,0,0.2)',
|
|
81
|
+
cursor: 'grabbing'
|
|
82
|
+
}),
|
|
83
|
+
...((type === 'choice' || type === 'target') && disabled && {
|
|
84
|
+
cursor: 'not-allowed',
|
|
85
|
+
'&:hover': {
|
|
86
|
+
backgroundColor: _renderUi.color.background(),
|
|
87
|
+
transform: 'none'
|
|
88
|
+
}
|
|
89
|
+
}),
|
|
90
|
+
...((type === 'choice' || type === 'target') && outcome === 'incorrect' && {
|
|
91
|
+
border: `1px solid ${_renderUi.color.incorrect()}`
|
|
92
|
+
}),
|
|
93
|
+
...((type === 'choice' || type === 'target') && outcome === 'correct' && {
|
|
94
|
+
border: `1px solid ${_renderUi.color.correct()}`
|
|
95
|
+
}),
|
|
96
|
+
...(!label && {
|
|
97
|
+
border: 'none',
|
|
98
|
+
'&:hover': {
|
|
99
|
+
backgroundColor: 'unset'
|
|
100
|
+
}
|
|
101
|
+
})
|
|
102
|
+
}));
|
|
103
|
+
const TileContent = props => {
|
|
104
|
+
const {
|
|
105
|
+
type,
|
|
106
|
+
isDragging,
|
|
107
|
+
empty,
|
|
108
|
+
isOver,
|
|
109
|
+
label,
|
|
110
|
+
disabled,
|
|
111
|
+
outcome,
|
|
112
|
+
guideIndex
|
|
113
|
+
} = props;
|
|
114
|
+
if (empty) {
|
|
115
|
+
return /*#__PURE__*/_react.default.createElement(Holder, {
|
|
116
|
+
type: type,
|
|
117
|
+
index: guideIndex,
|
|
118
|
+
isOver: isOver,
|
|
119
|
+
disabled: disabled
|
|
120
|
+
});
|
|
121
|
+
} else {
|
|
122
|
+
return /*#__PURE__*/_react.default.createElement(StyledTileContent, {
|
|
123
|
+
type: type,
|
|
124
|
+
isDragging: isDragging,
|
|
125
|
+
isOver: isOver,
|
|
126
|
+
disabled: disabled,
|
|
127
|
+
outcome: outcome,
|
|
128
|
+
label: label,
|
|
129
|
+
dangerouslySetInnerHTML: {
|
|
130
|
+
__html: label
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
const Tile = props => {
|
|
136
|
+
const {
|
|
137
|
+
label,
|
|
138
|
+
type,
|
|
139
|
+
id,
|
|
140
|
+
empty,
|
|
141
|
+
disabled,
|
|
142
|
+
outcome,
|
|
143
|
+
index,
|
|
144
|
+
guideIndex,
|
|
145
|
+
instanceId,
|
|
146
|
+
draggable,
|
|
147
|
+
tileIndex
|
|
148
|
+
} = props;
|
|
149
|
+
|
|
150
|
+
// Use type + tileIndex in the IDs to guarantee uniqueness in all modes.
|
|
151
|
+
// In includeTargets mode, a choice (id:'c1', type:'choice') and a target (id:'c1', type:'target')
|
|
152
|
+
// can coexist — the type differentiates them.
|
|
153
|
+
// tileIndex (array position from tiler) ensures empty placeholders are also unique.
|
|
154
|
+
const dragId = `tile-${type}-${id != null ? id : 'empty'}-${tileIndex}-${instanceId}`;
|
|
155
|
+
const dropId = `drop-${type}-${id != null ? id : 'empty'}-${tileIndex}-${instanceId}`;
|
|
156
|
+
const {
|
|
157
|
+
attributes,
|
|
158
|
+
listeners,
|
|
159
|
+
setNodeRef: setDragRef,
|
|
160
|
+
transform,
|
|
161
|
+
isDragging
|
|
162
|
+
} = (0, _core.useDraggable)({
|
|
163
|
+
id: dragId,
|
|
164
|
+
data: {
|
|
165
|
+
id,
|
|
166
|
+
type,
|
|
167
|
+
instanceId,
|
|
168
|
+
value: label,
|
|
169
|
+
index
|
|
170
|
+
},
|
|
171
|
+
disabled: !draggable || disabled
|
|
172
|
+
});
|
|
173
|
+
const {
|
|
174
|
+
setNodeRef: setDropRef,
|
|
175
|
+
isOver: dropIsOver
|
|
176
|
+
} = (0, _core.useDroppable)({
|
|
177
|
+
id: dropId,
|
|
178
|
+
data: {
|
|
179
|
+
id,
|
|
180
|
+
type,
|
|
181
|
+
instanceId,
|
|
182
|
+
value: label,
|
|
183
|
+
index
|
|
184
|
+
},
|
|
185
|
+
// Disable droppable on the tile currently being dragged so closestCenter
|
|
186
|
+
// cannot pick it as the drop target (prevents self-collision and wrong matches).
|
|
187
|
+
disabled: isDragging
|
|
188
|
+
});
|
|
189
|
+
const ref = _react.default.useRef(null);
|
|
190
|
+
_react.default.useEffect(() => {
|
|
191
|
+
const currentRef = ref.current;
|
|
192
|
+
const handleTouchStart = e => {
|
|
193
|
+
e.preventDefault(); // Prevent the default touch event behavior
|
|
194
|
+
};
|
|
195
|
+
if (currentRef) {
|
|
196
|
+
currentRef.addEventListener('touchstart', handleTouchStart, {
|
|
197
|
+
passive: false
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
return () => {
|
|
201
|
+
if (currentRef) {
|
|
202
|
+
currentRef.removeEventListener('touchstart', handleTouchStart);
|
|
203
|
+
}
|
|
204
|
+
};
|
|
205
|
+
}, []);
|
|
206
|
+
const setRefs = element => {
|
|
207
|
+
ref.current = element;
|
|
208
|
+
setDragRef(element);
|
|
209
|
+
setDropRef(element);
|
|
210
|
+
};
|
|
211
|
+
log('[render], props: ', props);
|
|
212
|
+
const style = {
|
|
213
|
+
transform: transform ? `translate3d(${transform.x}px, ${transform.y}px, 0)` : undefined,
|
|
214
|
+
boxSizing: 'border-box',
|
|
215
|
+
overflow: 'visible',
|
|
216
|
+
padding: 0,
|
|
217
|
+
margin: 0,
|
|
218
|
+
textAlign: 'center',
|
|
219
|
+
pointerEvents: 'auto',
|
|
220
|
+
cursor: disabled ? 'not-allowed' : isDragging ? 'grabbing' : 'grab',
|
|
221
|
+
zIndex: isDragging ? 1000 : 'auto',
|
|
222
|
+
willChange: isDragging ? 'transform' : 'auto'
|
|
223
|
+
};
|
|
224
|
+
return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
|
|
225
|
+
ref: setRefs,
|
|
226
|
+
style: style
|
|
227
|
+
}, draggable && !disabled ? {
|
|
228
|
+
...listeners,
|
|
229
|
+
...attributes
|
|
230
|
+
} : {}), /*#__PURE__*/_react.default.createElement(TileContent, {
|
|
231
|
+
label: label,
|
|
232
|
+
id: id,
|
|
233
|
+
empty: empty,
|
|
234
|
+
index: index,
|
|
235
|
+
guideIndex: guideIndex,
|
|
236
|
+
isOver: dropIsOver,
|
|
237
|
+
isDragging: isDragging,
|
|
238
|
+
disabled: disabled,
|
|
239
|
+
outcome: outcome,
|
|
240
|
+
type: type
|
|
241
|
+
}));
|
|
242
|
+
};
|
|
243
|
+
exports.Tile = Tile;
|
|
244
|
+
Tile.propTypes = {
|
|
245
|
+
id: _propTypes.default.any,
|
|
246
|
+
label: _propTypes.default.string,
|
|
247
|
+
isOver: _propTypes.default.bool,
|
|
248
|
+
type: _propTypes.default.string,
|
|
249
|
+
empty: _propTypes.default.bool,
|
|
250
|
+
disabled: _propTypes.default.bool,
|
|
251
|
+
outcome: _propTypes.default.string,
|
|
252
|
+
index: _propTypes.default.number,
|
|
253
|
+
guideIndex: _propTypes.default.number,
|
|
254
|
+
instanceId: _propTypes.default.any,
|
|
255
|
+
draggable: _propTypes.default.bool,
|
|
256
|
+
tileIndex: _propTypes.default.number
|
|
257
|
+
};
|
|
258
|
+
var _default = exports.default = Tile;
|
|
259
|
+
//# sourceMappingURL=tile.js.map
|
package/lib/tile.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tile.js","names":["_react","_interopRequireDefault","require","_propTypes","_debug","_core","_styles","_drag","_renderUi","log","debug","StyledNumberContainer","styled","theme","width","fontSize","typography","textAlign","color","palette","common","black","Holder","type","index","isOver","disabled","default","createElement","PlaceHolder","undefined","propTypes","PropTypes","string","number","bool","StyledTileContent","isDragging","outcome","label","cursor","height","padding","boxSizing","overflow","border","grey","backgroundColor","background","transition","pointerEvents","userSelect","secondary","borderColor","primary","main","transform","opacity","primaryLight","borderStyle","secondaryLight","boxShadow","incorrect","correct","TileContent","props","empty","guideIndex","dangerouslySetInnerHTML","__html","Tile","id","instanceId","draggable","tileIndex","dragId","dropId","attributes","listeners","setNodeRef","setDragRef","useDraggable","data","value","setDropRef","dropIsOver","useDroppable","ref","React","useRef","useEffect","currentRef","current","handleTouchStart","e","preventDefault","addEventListener","passive","removeEventListener","setRefs","element","style","x","y","margin","zIndex","willChange","_extends2","exports","any","_default"],"sources":["../src/tile.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport { useDraggable, useDroppable } from '@dnd-kit/core';\nimport { styled } from '@mui/material/styles';\n\nimport { PlaceHolder } from '@pie-lib/drag';\nimport { color } from '@pie-lib/render-ui';\n\nconst log = debug('pie-elements:placement-ordering:tile');\n\nconst StyledNumberContainer = styled('div')(({ theme }) => ({\n width: '100%',\n fontSize: theme.typography.fontSize + 4,\n textAlign: 'center',\n color: `rgba(${theme.palette.common.black}, 0.6)`,\n}));\n\nconst Holder = ({ type, index, isOver, disabled }) => (\n <PlaceHolder type={type} isOver={isOver} disabled={disabled}>\n {type === 'target' && index !== undefined && <StyledNumberContainer>{index}</StyledNumberContainer>}\n </PlaceHolder>\n);\n\nHolder.propTypes = {\n type: PropTypes.string,\n index: PropTypes.number,\n isOver: PropTypes.bool,\n disabled: PropTypes.bool,\n};\n\nconst StyledTileContent = styled('div')(({ theme, isDragging, isOver, disabled, outcome, label, type }) => ({\n cursor: disabled ? 'not-allowed' : 'grab',\n width: '100%',\n height: '100%',\n padding: '10px',\n boxSizing: 'border-box',\n overflow: 'hidden',\n border: (type === 'choice' || type === 'target') ? `1px solid ${theme.palette.grey[400]}` : '1px solid transparent',\n backgroundColor: (type === 'choice' || type === 'target') ? color.background() : 'transparent',\n transition: (type === 'choice' || type === 'target') ? 'background-color 150ms ease, border-color 150ms ease, opacity 150ms ease' : 'none',\n pointerEvents: 'none',\n userSelect: 'none',\n\n ...((type === 'choice' || type === 'target') && {\n '&:hover': {\n backgroundColor: disabled ? color.background() : color.secondary(),\n borderColor: disabled ? theme.palette.grey[400] : theme.palette.primary.main,\n transform: disabled ? 'none' : 'scale(1.02)',\n },\n }),\n\n // Apply conditional styles based on props (only if not empty spacing tile)\n ...((type === 'choice' || type === 'target') && isOver && !disabled && {\n opacity: 0.4,\n backgroundColor: color.primaryLight(),\n borderColor: theme.palette.primary.main,\n borderStyle: 'dashed',\n transform: 'scale(1.05)',\n }),\n\n ...((type === 'choice' || type === 'target') && isDragging && !disabled && {\n opacity: 0.6,\n backgroundColor: color.secondaryLight(),\n transform: 'scale(1.05) rotate(2deg)',\n boxShadow: '0 8px 16px rgba(0,0,0,0.2)',\n cursor: 'grabbing',\n }),\n\n ...((type === 'choice' || type === 'target') && disabled && {\n cursor: 'not-allowed',\n '&:hover': {\n backgroundColor: color.background(),\n transform: 'none',\n },\n }),\n\n ...((type === 'choice' || type === 'target') && outcome === 'incorrect' && {\n border: `1px solid ${color.incorrect()}`,\n }),\n\n ...((type === 'choice' || type === 'target') && outcome === 'correct' && {\n border: `1px solid ${color.correct()}`,\n }),\n\n ...(!label && {\n border: 'none',\n '&:hover': {\n backgroundColor: 'unset',\n },\n }),\n}));\n\nconst TileContent = (props) => {\n const { type, isDragging, empty, isOver, label, disabled, outcome, guideIndex } = props;\n\n if (empty) {\n return <Holder type={type} index={guideIndex} isOver={isOver} disabled={disabled} />;\n } else {\n return (\n <StyledTileContent\n type={type}\n isDragging={isDragging}\n isOver={isOver}\n disabled={disabled}\n outcome={outcome}\n label={label}\n dangerouslySetInnerHTML={{ __html: label }}\n />\n );\n }\n};\n\nexport const Tile = (props) => {\n const {\n label,\n type,\n id,\n empty,\n disabled,\n outcome,\n index,\n guideIndex,\n instanceId,\n draggable,\n tileIndex,\n } = props;\n\n // Use type + tileIndex in the IDs to guarantee uniqueness in all modes.\n // In includeTargets mode, a choice (id:'c1', type:'choice') and a target (id:'c1', type:'target')\n // can coexist — the type differentiates them.\n // tileIndex (array position from tiler) ensures empty placeholders are also unique.\n const dragId = `tile-${type}-${id != null ? id : 'empty'}-${tileIndex}-${instanceId}`;\n const dropId = `drop-${type}-${id != null ? id : 'empty'}-${tileIndex}-${instanceId}`;\n\n const {\n attributes,\n listeners,\n setNodeRef: setDragRef,\n transform,\n isDragging,\n } = useDraggable({\n id: dragId,\n data: {\n id,\n type,\n instanceId,\n value: label,\n index\n },\n disabled: !draggable || disabled,\n });\n\n const {\n setNodeRef: setDropRef,\n isOver: dropIsOver,\n } = useDroppable({\n id: dropId,\n data: {\n id,\n type,\n instanceId,\n value: label,\n index\n },\n // Disable droppable on the tile currently being dragged so closestCenter\n // cannot pick it as the drop target (prevents self-collision and wrong matches).\n disabled: isDragging,\n });\n\n const ref = React.useRef(null);\n\n React.useEffect(() => {\n const currentRef = ref.current;\n\n const handleTouchStart = (e) => {\n e.preventDefault(); // Prevent the default touch event behavior\n };\n\n if (currentRef) {\n currentRef.addEventListener('touchstart', handleTouchStart, { passive: false });\n }\n\n return () => {\n if (currentRef) {\n currentRef.removeEventListener('touchstart', handleTouchStart);\n }\n };\n }, []);\n\n const setRefs = (element) => {\n ref.current = element;\n setDragRef(element);\n setDropRef(element);\n };\n\n log('[render], props: ', props);\n\n const style = {\n transform: transform ? `translate3d(${transform.x}px, ${transform.y}px, 0)` : undefined,\n boxSizing: 'border-box',\n overflow: 'visible',\n padding: 0,\n margin: 0,\n textAlign: 'center',\n pointerEvents: 'auto',\n cursor: disabled ? 'not-allowed' : (isDragging ? 'grabbing' : 'grab'),\n zIndex: isDragging ? 1000 : 'auto',\n willChange: isDragging ? 'transform' : 'auto',\n };\n\n return (\n <div\n ref={setRefs}\n style={style}\n {...(draggable && !disabled ? { ...listeners, ...attributes } : {})}\n >\n <TileContent\n label={label}\n id={id}\n empty={empty}\n index={index}\n guideIndex={guideIndex}\n isOver={dropIsOver}\n isDragging={isDragging}\n disabled={disabled}\n outcome={outcome}\n type={type}\n />\n </div>\n );\n};\n\nTile.propTypes = {\n id: PropTypes.any,\n label: PropTypes.string,\n isOver: PropTypes.bool,\n type: PropTypes.string,\n empty: PropTypes.bool,\n disabled: PropTypes.bool,\n outcome: PropTypes.string,\n index: PropTypes.number,\n guideIndex: PropTypes.number,\n instanceId: PropTypes.any,\n draggable: PropTypes.bool,\n tileIndex: PropTypes.number,\n};\n\nexport default Tile;\n"],"mappings":"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","ignoreList":[]}
|
package/lib/tiler.js
ADDED
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.VerticalTiler = exports.HorizontalTiler = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
var _react = _interopRequireDefault(require("react"));
|
|
12
|
+
var _styles = require("@mui/material/styles");
|
|
13
|
+
var _tile = _interopRequireDefault(require("./tile"));
|
|
14
|
+
const types = {
|
|
15
|
+
choiceLabel: _propTypes.default.string,
|
|
16
|
+
targetLabel: _propTypes.default.string,
|
|
17
|
+
disabled: _propTypes.default.bool,
|
|
18
|
+
tiles: _propTypes.default.array.isRequired,
|
|
19
|
+
tileSize: _propTypes.default.string,
|
|
20
|
+
addGuide: _propTypes.default.bool
|
|
21
|
+
};
|
|
22
|
+
const defaults = {
|
|
23
|
+
tileSize: '1fr',
|
|
24
|
+
disabled: false,
|
|
25
|
+
addGuide: false
|
|
26
|
+
};
|
|
27
|
+
const buildTiles = props => {
|
|
28
|
+
const T = (tile, index) => {
|
|
29
|
+
tile.instanceId = props.instanceId;
|
|
30
|
+
tile.disabled = props.disabled;
|
|
31
|
+
tile.guideIndex = props.addGuide ? tile.index + 1 : undefined;
|
|
32
|
+
// unique key for dnd-kit IDs
|
|
33
|
+
tile.tileIndex = index;
|
|
34
|
+
if (props.includeTargets) {
|
|
35
|
+
return /*#__PURE__*/_react.default.createElement(_tile.default, (0, _extends2.default)({}, tile, {
|
|
36
|
+
key: index
|
|
37
|
+
}));
|
|
38
|
+
} else {
|
|
39
|
+
return tile.type === 'choice' ? /*#__PURE__*/_react.default.createElement(_tile.default, (0, _extends2.default)({}, tile, {
|
|
40
|
+
key: index
|
|
41
|
+
})) : /*#__PURE__*/_react.default.createElement(_tile.default, (0, _extends2.default)({}, tile, {
|
|
42
|
+
label: "",
|
|
43
|
+
key: index
|
|
44
|
+
}));
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
T.propTypes = {
|
|
48
|
+
...types
|
|
49
|
+
};
|
|
50
|
+
return T;
|
|
51
|
+
};
|
|
52
|
+
const StyledHTilerContainer = (0, _styles.styled)('div')(({
|
|
53
|
+
theme,
|
|
54
|
+
includeTargets
|
|
55
|
+
}) => ({
|
|
56
|
+
display: 'grid',
|
|
57
|
+
paddingBottom: theme.spacing(2),
|
|
58
|
+
...(includeTargets && {
|
|
59
|
+
gridGap: '10px'
|
|
60
|
+
})
|
|
61
|
+
}));
|
|
62
|
+
const StyledChoiceLabel = (0, _styles.styled)('div')({
|
|
63
|
+
textAlign: 'center'
|
|
64
|
+
});
|
|
65
|
+
const StyledTargetLabel = (0, _styles.styled)('div')({
|
|
66
|
+
textAlign: 'center',
|
|
67
|
+
gridRow: '3/4'
|
|
68
|
+
});
|
|
69
|
+
const StyledVTilerContainer = (0, _styles.styled)('div')(({
|
|
70
|
+
includeTargets
|
|
71
|
+
}) => ({
|
|
72
|
+
gridAutoFlow: 'column',
|
|
73
|
+
display: 'grid',
|
|
74
|
+
...(includeTargets && {
|
|
75
|
+
gridGap: '10px'
|
|
76
|
+
})
|
|
77
|
+
}));
|
|
78
|
+
const StyledVChoiceLabel = (0, _styles.styled)('div')({
|
|
79
|
+
gridColumn: '1/2',
|
|
80
|
+
textAlign: 'center'
|
|
81
|
+
});
|
|
82
|
+
const StyledVTargetLabel = (0, _styles.styled)('div')({
|
|
83
|
+
gridColumn: '2/3',
|
|
84
|
+
textAlign: 'center'
|
|
85
|
+
});
|
|
86
|
+
class HorizontalTiler extends _react.default.Component {
|
|
87
|
+
render() {
|
|
88
|
+
const {
|
|
89
|
+
includeTargets,
|
|
90
|
+
choiceLabelEnabled,
|
|
91
|
+
choiceLabel,
|
|
92
|
+
targetLabel,
|
|
93
|
+
tiles,
|
|
94
|
+
tileSize
|
|
95
|
+
} = this.props;
|
|
96
|
+
const rows = includeTargets ? `auto ${tileSize} auto ${tileSize}` : `auto ${tileSize} auto`;
|
|
97
|
+
const columns = includeTargets ? tiles.length / 2 : tiles.length;
|
|
98
|
+
const style = {
|
|
99
|
+
gridTemplateColumns: includeTargets ? `repeat(${columns}, ${tileSize})` : `auto repeat(${Math.floor(columns / 2) - 1}, ${tileSize} 10px) ${tileSize} auto`,
|
|
100
|
+
gridTemplateRows: rows
|
|
101
|
+
};
|
|
102
|
+
const labelStyle = {
|
|
103
|
+
gridColumn: `1/${columns + 1}`
|
|
104
|
+
};
|
|
105
|
+
return /*#__PURE__*/_react.default.createElement(StyledHTilerContainer, {
|
|
106
|
+
includeTargets: includeTargets,
|
|
107
|
+
style: style
|
|
108
|
+
}, /*#__PURE__*/_react.default.createElement(StyledChoiceLabel, {
|
|
109
|
+
style: labelStyle,
|
|
110
|
+
dangerouslySetInnerHTML: {
|
|
111
|
+
__html: choiceLabelEnabled ? choiceLabel : ''
|
|
112
|
+
}
|
|
113
|
+
}), includeTargets && /*#__PURE__*/_react.default.createElement(StyledTargetLabel, {
|
|
114
|
+
style: labelStyle,
|
|
115
|
+
dangerouslySetInnerHTML: {
|
|
116
|
+
__html: targetLabel
|
|
117
|
+
}
|
|
118
|
+
}), tiles.map(buildTiles(this.props)));
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
exports.HorizontalTiler = HorizontalTiler;
|
|
122
|
+
(0, _defineProperty2.default)(HorizontalTiler, "propTypes", {
|
|
123
|
+
...types
|
|
124
|
+
});
|
|
125
|
+
(0, _defineProperty2.default)(HorizontalTiler, "defaultProps", {
|
|
126
|
+
...defaults
|
|
127
|
+
});
|
|
128
|
+
class VerticalTiler extends _react.default.Component {
|
|
129
|
+
render() {
|
|
130
|
+
const {
|
|
131
|
+
includeTargets,
|
|
132
|
+
choiceLabelEnabled,
|
|
133
|
+
choiceLabel,
|
|
134
|
+
targetLabel,
|
|
135
|
+
tiles,
|
|
136
|
+
tileSize
|
|
137
|
+
} = this.props;
|
|
138
|
+
const columns = includeTargets ? 2 : 1;
|
|
139
|
+
const rows = includeTargets ? tiles.length / 2 : tiles.length;
|
|
140
|
+
const style = {
|
|
141
|
+
gridTemplateColumns: `repeat(${columns}, ${tileSize})`,
|
|
142
|
+
gridTemplateRows: includeTargets ? `auto repeat(${rows}, ${tileSize})` : `auto auto repeat(${Math.floor(rows / 2) - 1}, ${tileSize} 10px) ${tileSize} auto`
|
|
143
|
+
};
|
|
144
|
+
return /*#__PURE__*/_react.default.createElement(StyledVTilerContainer, {
|
|
145
|
+
includeTargets: includeTargets,
|
|
146
|
+
style: style
|
|
147
|
+
}, /*#__PURE__*/_react.default.createElement(StyledVChoiceLabel, {
|
|
148
|
+
dangerouslySetInnerHTML: {
|
|
149
|
+
__html: choiceLabelEnabled ? choiceLabel : ''
|
|
150
|
+
}
|
|
151
|
+
}), includeTargets && /*#__PURE__*/_react.default.createElement(StyledVTargetLabel, {
|
|
152
|
+
dangerouslySetInnerHTML: {
|
|
153
|
+
__html: targetLabel
|
|
154
|
+
}
|
|
155
|
+
}), tiles.map(buildTiles(this.props)));
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
exports.VerticalTiler = VerticalTiler;
|
|
159
|
+
(0, _defineProperty2.default)(VerticalTiler, "propTypes", {
|
|
160
|
+
...types
|
|
161
|
+
});
|
|
162
|
+
(0, _defineProperty2.default)(VerticalTiler, "defaultProps", {
|
|
163
|
+
...defaults
|
|
164
|
+
});
|
|
165
|
+
//# sourceMappingURL=tiler.js.map
|
package/lib/tiler.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tiler.js","names":["_propTypes","_interopRequireDefault","require","_react","_styles","_tile","types","choiceLabel","PropTypes","string","targetLabel","disabled","bool","tiles","array","isRequired","tileSize","addGuide","defaults","buildTiles","props","T","tile","index","instanceId","guideIndex","undefined","tileIndex","includeTargets","default","createElement","_extends2","key","type","label","propTypes","StyledHTilerContainer","styled","theme","display","paddingBottom","spacing","gridGap","StyledChoiceLabel","textAlign","StyledTargetLabel","gridRow","StyledVTilerContainer","gridAutoFlow","StyledVChoiceLabel","gridColumn","StyledVTargetLabel","HorizontalTiler","React","Component","render","choiceLabelEnabled","rows","columns","length","style","gridTemplateColumns","Math","floor","gridTemplateRows","labelStyle","dangerouslySetInnerHTML","__html","map","exports","_defineProperty2","VerticalTiler"],"sources":["../src/tiler.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport { styled } from '@mui/material/styles';\n\nimport Tile from './tile';\n\nconst types = {\n choiceLabel: PropTypes.string,\n targetLabel: PropTypes.string,\n disabled: PropTypes.bool,\n tiles: PropTypes.array.isRequired,\n tileSize: PropTypes.string,\n addGuide: PropTypes.bool,\n};\n\nconst defaults = {\n tileSize: '1fr',\n disabled: false,\n addGuide: false,\n};\n\nconst buildTiles = (props) => {\n const T = (tile, index) => {\n tile.instanceId = props.instanceId;\n tile.disabled = props.disabled;\n tile.guideIndex = props.addGuide ? tile.index + 1 : undefined;\n // unique key for dnd-kit IDs\n tile.tileIndex = index;\n\n if (props.includeTargets) {\n return <Tile {...tile} key={index} />;\n } else {\n return tile.type === 'choice' ? <Tile {...tile} key={index} /> : <Tile {...tile} label=\"\" key={index} />;\n }\n };\n\n T.propTypes = { ...types };\n return T;\n};\n\nconst StyledHTilerContainer = styled('div')(({ theme, includeTargets }) => ({\n display: 'grid',\n paddingBottom: theme.spacing(2),\n ...(includeTargets && {\n gridGap: '10px',\n }),\n}));\n\nconst StyledChoiceLabel = styled('div')({\n textAlign: 'center',\n});\n\nconst StyledTargetLabel = styled('div')({\n textAlign: 'center',\n gridRow: '3/4',\n});\n\nconst StyledVTilerContainer = styled('div')(({ includeTargets }) => ({\n gridAutoFlow: 'column',\n display: 'grid',\n ...(includeTargets && {\n gridGap: '10px',\n }),\n}));\n\nconst StyledVChoiceLabel = styled('div')({\n gridColumn: '1/2',\n textAlign: 'center',\n});\n\nconst StyledVTargetLabel = styled('div')({\n gridColumn: '2/3',\n textAlign: 'center',\n});\n\nexport class HorizontalTiler extends React.Component {\n static propTypes = { ...types };\n static defaultProps = { ...defaults };\n render() {\n const { includeTargets, choiceLabelEnabled, choiceLabel, targetLabel, tiles, tileSize } = this.props;\n\n const rows = includeTargets ? `auto ${tileSize} auto ${tileSize}` : `auto ${tileSize} auto`;\n const columns = includeTargets ? tiles.length / 2 : tiles.length;\n\n const style = {\n gridTemplateColumns: includeTargets\n ? `repeat(${columns}, ${tileSize})`\n : `auto repeat(${Math.floor(columns / 2) - 1}, ${tileSize} 10px) ${tileSize} auto`,\n gridTemplateRows: rows,\n };\n\n const labelStyle = {\n gridColumn: `1/${columns + 1}`,\n };\n\n return (\n <StyledHTilerContainer includeTargets={includeTargets} style={style}>\n <StyledChoiceLabel\n style={labelStyle}\n dangerouslySetInnerHTML={{ __html: choiceLabelEnabled ? choiceLabel : '' }}\n />\n {includeTargets && (\n <StyledTargetLabel style={labelStyle} dangerouslySetInnerHTML={{ __html: targetLabel }} />\n )}\n {tiles.map(buildTiles(this.props))}\n </StyledHTilerContainer>\n );\n }\n}\n\nexport class VerticalTiler extends React.Component {\n static propTypes = { ...types };\n static defaultProps = { ...defaults };\n render() {\n const { includeTargets, choiceLabelEnabled, choiceLabel, targetLabel, tiles, tileSize } = this.props;\n\n const columns = includeTargets ? 2 : 1;\n const rows = includeTargets ? tiles.length / 2 : tiles.length;\n\n const style = {\n gridTemplateColumns: `repeat(${columns}, ${tileSize})`,\n gridTemplateRows: includeTargets\n ? `auto repeat(${rows}, ${tileSize})`\n : `auto auto repeat(${Math.floor(rows / 2) - 1}, ${tileSize} 10px) ${tileSize} auto`,\n };\n\n return (\n <StyledVTilerContainer includeTargets={includeTargets} style={style}>\n <StyledVChoiceLabel\n dangerouslySetInnerHTML={{ __html: choiceLabelEnabled ? choiceLabel : '' }}\n />\n\n {includeTargets && <StyledVTargetLabel dangerouslySetInnerHTML={{ __html: targetLabel }} />}\n {tiles.map(buildTiles(this.props))}\n </StyledVTilerContainer>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/lib/utils.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.haveSameValuesButDifferentOrder = void 0;
|
|
7
|
+
const haveSameValuesButDifferentOrder = (arr1, arr2) => {
|
|
8
|
+
if (!Array.isArray(arr1) || !Array.isArray(arr2)) return false;
|
|
9
|
+
if (arr1.length !== arr2.length) return false;
|
|
10
|
+
const toSortedJson = arr => arr.map(item => JSON.stringify(item)).sort();
|
|
11
|
+
const sortedArr1 = toSortedJson(arr1);
|
|
12
|
+
const sortedArr2 = toSortedJson(arr2);
|
|
13
|
+
const hasSameValues = sortedArr1.every((val, i) => val === sortedArr2[i]);
|
|
14
|
+
const hasSameOrder = arr1.every((item, i) => JSON.stringify(item) === JSON.stringify(arr2[i]));
|
|
15
|
+
return hasSameValues && !hasSameOrder;
|
|
16
|
+
};
|
|
17
|
+
exports.haveSameValuesButDifferentOrder = haveSameValuesButDifferentOrder;
|
|
18
|
+
//# sourceMappingURL=utils.js.map
|
package/lib/utils.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","names":["haveSameValuesButDifferentOrder","arr1","arr2","Array","isArray","length","toSortedJson","arr","map","item","JSON","stringify","sort","sortedArr1","sortedArr2","hasSameValues","every","val","i","hasSameOrder","exports"],"sources":["../src/utils.js"],"sourcesContent":["export const haveSameValuesButDifferentOrder = (arr1, arr2) => {\n if (!Array.isArray(arr1) || !Array.isArray(arr2)) return false;\n if (arr1.length !== arr2.length) return false;\n\n const toSortedJson = (arr) =>\n arr\n .map((item) => JSON.stringify(item))\n .sort();\n\n const sortedArr1 = toSortedJson(arr1);\n const sortedArr2 = toSortedJson(arr2);\n\n const hasSameValues = sortedArr1.every((val, i) => val === sortedArr2[i]);\n const hasSameOrder = arr1.every((item, i) =>\n JSON.stringify(item) === JSON.stringify(arr2[i])\n );\n\n return hasSameValues && !hasSameOrder;\n};\n"],"mappings":";;;;;;AAAO,MAAMA,+BAA+B,GAAGA,CAACC,IAAI,EAAEC,IAAI,KAAK;EAC3D,IAAI,CAACC,KAAK,CAACC,OAAO,CAACH,IAAI,CAAC,IAAI,CAACE,KAAK,CAACC,OAAO,CAACF,IAAI,CAAC,EAAE,OAAO,KAAK;EAC9D,IAAID,IAAI,CAACI,MAAM,KAAKH,IAAI,CAACG,MAAM,EAAE,OAAO,KAAK;EAE7C,MAAMC,YAAY,GAAIC,GAAG,IACrBA,GAAG,CACEC,GAAG,CAAEC,IAAI,IAAKC,IAAI,CAACC,SAAS,CAACF,IAAI,CAAC,CAAC,CACnCG,IAAI,CAAC,CAAC;EAEf,MAAMC,UAAU,GAAGP,YAAY,CAACL,IAAI,CAAC;EACrC,MAAMa,UAAU,GAAGR,YAAY,CAACJ,IAAI,CAAC;EAErC,MAAMa,aAAa,GAAGF,UAAU,CAACG,KAAK,CAAC,CAACC,GAAG,EAAEC,CAAC,KAAKD,GAAG,KAAKH,UAAU,CAACI,CAAC,CAAC,CAAC;EACzE,MAAMC,YAAY,GAAGlB,IAAI,CAACe,KAAK,CAAC,CAACP,IAAI,EAAES,CAAC,KACpCR,IAAI,CAACC,SAAS,CAACF,IAAI,CAAC,KAAKC,IAAI,CAACC,SAAS,CAACT,IAAI,CAACgB,CAAC,CAAC,CACnD,CAAC;EAED,OAAOH,aAAa,IAAI,CAACI,YAAY;AACzC,CAAC;AAACC,OAAA,CAAApB,+BAAA,GAAAA,+BAAA","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,104 +1,37 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-element/placement-ordering",
|
|
3
|
-
"
|
|
3
|
+
"repository": "pie-framework/pie-elements",
|
|
4
|
+
"version": "14.1.3",
|
|
4
5
|
"description": "",
|
|
6
|
+
"publishConfig": {
|
|
7
|
+
"access": "public"
|
|
8
|
+
},
|
|
5
9
|
"dependencies": {
|
|
6
10
|
"@dnd-kit/core": "6.3.1",
|
|
7
11
|
"@emotion/react": "^11.14.0",
|
|
8
12
|
"@emotion/style": "^0.8.0",
|
|
9
13
|
"@mui/icons-material": "^7.3.4",
|
|
10
14
|
"@mui/material": "^7.3.4",
|
|
11
|
-
"@pie-
|
|
12
|
-
"@pie-lib/
|
|
13
|
-
"@pie-lib/
|
|
14
|
-
"@pie-lib/
|
|
15
|
+
"@pie-framework/pie-player-events": "^0.1.0",
|
|
16
|
+
"@pie-lib/correct-answer-toggle": "4.0.4",
|
|
17
|
+
"@pie-lib/drag": "4.0.4",
|
|
18
|
+
"@pie-lib/math-rendering": "5.0.2",
|
|
19
|
+
"@pie-lib/render-ui": "6.1.2",
|
|
20
|
+
"@pie-lib/translator": "4.0.2",
|
|
15
21
|
"debug": "^4.1.1",
|
|
16
22
|
"decimal.js": "^10.0.0",
|
|
23
|
+
"lodash-es": "^4.17.23",
|
|
17
24
|
"prop-types": "^15.8.1",
|
|
18
|
-
"react
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"@pie-lib/editable-html-tip-tap": "2.1.2-next.31",
|
|
22
|
-
"nested-property": "^4.0.0",
|
|
23
|
-
"pluralize": "^8.0.0",
|
|
24
|
-
"@pie-element/shared-configure-events": "0.1.0",
|
|
25
|
-
"@pie-element/shared-feedback": "0.1.0",
|
|
26
|
-
"@pie-element/shared-controller-utils": "0.1.1-next.1",
|
|
27
|
-
"js-combinatorics": "^2.1.2",
|
|
28
|
-
"@pie-element/shared-math-rendering-mathjax": "0.1.1-next.0",
|
|
29
|
-
"@pie-element/shared-player-events": "0.1.0"
|
|
30
|
-
},
|
|
31
|
-
"peerDependencies": {
|
|
32
|
-
"react": "^18.0.0",
|
|
33
|
-
"react-dom": "^18.0.0"
|
|
34
|
-
},
|
|
35
|
-
"exports": {
|
|
36
|
-
".": {
|
|
37
|
-
"types": "./dist/index.d.ts",
|
|
38
|
-
"default": "./dist/index.js"
|
|
39
|
-
},
|
|
40
|
-
"./delivery": {
|
|
41
|
-
"types": "./dist/delivery/index.d.ts",
|
|
42
|
-
"default": "./dist/delivery/index.js"
|
|
43
|
-
},
|
|
44
|
-
"./browser/delivery": {
|
|
45
|
-
"default": "./dist/browser/delivery/index.js"
|
|
46
|
-
},
|
|
47
|
-
"./author": {
|
|
48
|
-
"types": "./dist/author/index.d.ts",
|
|
49
|
-
"default": "./dist/author/index.js"
|
|
50
|
-
},
|
|
51
|
-
"./browser/author": {
|
|
52
|
-
"default": "./dist/browser/author/index.js"
|
|
53
|
-
},
|
|
54
|
-
"./configure": {
|
|
55
|
-
"types": "./dist/author/index.d.ts",
|
|
56
|
-
"default": "./dist/author/index.js"
|
|
57
|
-
},
|
|
58
|
-
"./controller": {
|
|
59
|
-
"types": "./dist/controller/index.d.ts",
|
|
60
|
-
"default": "./dist/controller/index.js"
|
|
61
|
-
},
|
|
62
|
-
"./controller.js": {
|
|
63
|
-
"types": "./dist/controller/index.d.ts",
|
|
64
|
-
"default": "./dist/controller/index.js"
|
|
65
|
-
},
|
|
66
|
-
"./browser/controller": {
|
|
67
|
-
"default": "./dist/browser/controller/index.js"
|
|
68
|
-
},
|
|
69
|
-
"./runtime-support": {
|
|
70
|
-
"types": "./dist/runtime-support.d.ts",
|
|
71
|
-
"default": "./dist/runtime-support.js"
|
|
72
|
-
}
|
|
73
|
-
},
|
|
74
|
-
"type": "module",
|
|
75
|
-
"main": "./dist/index.js",
|
|
76
|
-
"types": "./dist/index.d.ts",
|
|
77
|
-
"files": [
|
|
78
|
-
"configure.js",
|
|
79
|
-
"controller.js",
|
|
80
|
-
"dist"
|
|
81
|
-
],
|
|
82
|
-
"sideEffects": false,
|
|
83
|
-
"devDependencies": {
|
|
84
|
-
"vite": "^8.0.1",
|
|
85
|
-
"typescript": "^5.9.3",
|
|
86
|
-
"@vitejs/plugin-react": "^6.0.1",
|
|
87
|
-
"@types/react": "^18.2.0",
|
|
88
|
-
"@types/react-dom": "^18.2.0"
|
|
25
|
+
"react": "18.3.1",
|
|
26
|
+
"react-dom": "18.3.1",
|
|
27
|
+
"react-transition-group": "^4.4.5"
|
|
89
28
|
},
|
|
29
|
+
"author": "",
|
|
30
|
+
"license": "ISC",
|
|
31
|
+
"gitHead": "213c3a293da2591ffaf2ba5c5fb50f0fe7577cfa",
|
|
90
32
|
"scripts": {
|
|
91
|
-
"
|
|
92
|
-
"dev": "bun x vite",
|
|
93
|
-
"demo": "bun x vite --mode demo",
|
|
94
|
-
"test": "bun x vitest run"
|
|
33
|
+
"postpublish": "../../scripts/postpublish"
|
|
95
34
|
},
|
|
96
|
-
"
|
|
97
|
-
|
|
98
|
-
"configure": "@pie-element/placement-ordering/configure",
|
|
99
|
-
"browserSharedDependencies": {
|
|
100
|
-
"react": "18.2.0",
|
|
101
|
-
"react-dom": "18.2.0"
|
|
102
|
-
}
|
|
103
|
-
}
|
|
35
|
+
"main": "lib/index.js",
|
|
36
|
+
"module": "src/index.js"
|
|
104
37
|
}
|
package/configure.js
DELETED
package/controller.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './dist/controller/index.js';
|